From 260edaa752b37737db66bb45d9894604d846e4a7 Mon Sep 17 00:00:00 2001 From: Tim Huang Date: Wed, 21 Aug 2024 11:26:36 +0800 Subject: [PATCH 01/32] [SWDEV-463402] - Support retrieving connection type and P2P capabilities between two GPUs 1. Add a API interface amdsmi_topo_get_p2p_status to retrieve connection type and P2P capabilities between 2 GPUs. 2. Add getting p2p status test in hw_topology_read to print P2P capability information. 3. Add below tables for cli topology sub commands: - CACHE COHERANCY TABLE - ATOMICS TABLE - DMA TABLE - BI-DIRECTIONAL TABLE Change-Id: I199173030d4170115cea27c472958a4826e4e1bf Signed-off-by: Tim Huang --- CHANGELOG.md | 157 ++++++++++++ amdsmi_cli/amdsmi_commands.py | 242 +++++++++++++++++- amdsmi_cli/amdsmi_parser.py | 8 + include/amd_smi/amdsmi.h | 41 +++ py-interface/__init__.py | 1 + py-interface/amdsmi_interface.py | 34 +++ py-interface/amdsmi_wrapper.py | 25 +- rocm_smi/include/rocm_smi/rocm_smi.h | 42 +++ rocm_smi/include/rocm_smi/rocm_smi_io_link.h | 10 +- rocm_smi/src/rocm_smi.cc | 75 ++++++ rocm_smi/src/rocm_smi_io_link.cc | 43 +++- src/amd_smi/amd_smi.cc | 20 ++ .../functional/hw_topology_read.cc | 155 ++++++++++- 13 files changed, 842 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a0ff6d473..7fe1b40c5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,163 @@ Added `amdsmi_get_gpu_mem_overdrive_level()` function to amd-smi C and Python Li - **Added Subsystem Device ID to `amd-smi static --asic`**. No underlying changes to amdsmi_get_gpu_asic_info +- **Added retrieving connection type and P2P capabilities between two GPUs**. + - Added `amdsmi_topo_get_p2p_status` function to amd-smi C and Python Libraries. + - Added retrieving P2P link capabilities to CLI `amd-smi topology`. + +```shell +$ amd-smi topology -h +usage: amd-smi topology [-h] [--json | --csv] [--file FILE] [--loglevel LEVEL] + [-g GPU [GPU ...]] [-a] [-w] [-o] [-t] [-b] + +If no GPU is specified, returns information for all GPUs on the system. +If no topology argument is provided all topology information will be displayed. + +Topology arguments: + -h, --help show this help message and exit + -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: + ID: 0 | BDF: 0000:0c:00.0 | UUID: 5fff74a1-0000-1000-808c-324a4d24b37e + ID: 1 | BDF: 0000:22:00.0 | UUID: 06ff74a1-0000-1000-80d3-f5e97636ae62 + ID: 2 | BDF: 0000:38:00.0 | UUID: 87ff74a1-0000-1000-80a0-d0a45576c5ed + ID: 3 | BDF: 0000:5c:00.0 | UUID: 5dff74a1-0000-1000-8054-a29c595fd7f3 + ID: 4 | BDF: 0000:9f:00.0 | UUID: a8ff74a1-0000-1000-805b-92615ca9e7b4 + ID: 5 | BDF: 0000:af:00.0 | UUID: ddff74a1-0000-1000-809e-5a98a60013bd + ID: 6 | BDF: 0000:bf:00.0 | UUID: 9aff74a1-0000-1000-80e8-cbefaf9f72c3 + ID: 7 | BDF: 0000:df:00.0 | UUID: 48ff74a1-0000-1000-806e-3c0b30d78e00 + all | Selects all devices + + + -a, --access Displays link accessibility between GPUs + -w, --weight Displays relative weight between GPUs + -o, --hops Displays the number of hops between GPUs + -t, --link-type Displays the link type between GPUs + -b, --numa-bw Display max and min bandwidth between nodes + -c, --coherent Display cache coherant (or non-coherant) link capability between nodes + -n, --atomics Display 32 and 64-bit atomic io link capability between nodes + -d, --dma Display P2P direct memory access (DMA) link capability between nodes + -z, --bi-dir Display P2P bi-directional link capability between nodes + + +Command Modifiers: + --json Displays output in JSON format (human readable by default). + --csv Displays output in CSV format (human readable by default). + --file FILE Saves output into a file on the provided path (stdout by default). + --loglevel LEVEL Set the logging level from the possible choices: + DEBUG, INFO, WARNING, ERROR, CRITICAL +``` + +```shell +$ amd-smi topology +ACCESS TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED +0000:22:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED +0000:38:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED +0000:5c:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED +0000:9f:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED +0000:af:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED +0000:bf:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED +0000:df:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED + +WEIGHT TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 0 15 15 15 15 15 15 15 +0000:22:00.0 15 0 15 15 15 15 15 15 +0000:38:00.0 15 15 0 15 15 15 15 15 +0000:5c:00.0 15 15 15 0 15 15 15 15 +0000:9f:00.0 15 15 15 15 0 15 15 15 +0000:af:00.0 15 15 15 15 15 0 15 15 +0000:bf:00.0 15 15 15 15 15 15 0 15 +0000:df:00.0 15 15 15 15 15 15 15 0 + +HOPS TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 0 1 1 1 1 1 1 1 +0000:22:00.0 1 0 1 1 1 1 1 1 +0000:38:00.0 1 1 0 1 1 1 1 1 +0000:5c:00.0 1 1 1 0 1 1 1 1 +0000:9f:00.0 1 1 1 1 0 1 1 1 +0000:af:00.0 1 1 1 1 1 0 1 1 +0000:bf:00.0 1 1 1 1 1 1 0 1 +0000:df:00.0 1 1 1 1 1 1 1 0 + +LINK TYPE TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 SELF XGMI XGMI XGMI XGMI XGMI XGMI XGMI +0000:22:00.0 XGMI SELF XGMI XGMI XGMI XGMI XGMI XGMI +0000:38:00.0 XGMI XGMI SELF XGMI XGMI XGMI XGMI XGMI +0000:5c:00.0 XGMI XGMI XGMI SELF XGMI XGMI XGMI XGMI +0000:9f:00.0 XGMI XGMI XGMI XGMI SELF XGMI XGMI XGMI +0000:af:00.0 XGMI XGMI XGMI XGMI XGMI SELF XGMI XGMI +0000:bf:00.0 XGMI XGMI XGMI XGMI XGMI XGMI SELF XGMI +0000:df:00.0 XGMI XGMI XGMI XGMI XGMI XGMI XGMI SELF + +NUMA BW TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 N/A 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 +0000:22:00.0 50000-50000 N/A 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 +0000:38:00.0 50000-50000 50000-50000 N/A 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 +0000:5c:00.0 50000-50000 50000-50000 50000-50000 N/A 50000-50000 50000-50000 50000-50000 50000-50000 +0000:9f:00.0 50000-50000 50000-50000 50000-50000 50000-50000 N/A 50000-50000 50000-50000 50000-50000 +0000:af:00.0 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 N/A 50000-50000 50000-50000 +0000:bf:00.0 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 N/A 50000-50000 +0000:df:00.0 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 N/A + +CACHE COHERANCY TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 SELF C NC NC C C C NC +0000:22:00.0 C SELF NC C C C NC C +0000:38:00.0 NC NC SELF C C NC C NC +0000:5c:00.0 NC C C SELF NC C NC NC +0000:9f:00.0 C C C NC SELF NC NC C +0000:af:00.0 C C NC C NC SELF C C +0000:bf:00.0 C NC C NC NC C SELF NC +0000:df:00.0 NC C NC NC C C NC SELF + +ATOMICS TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 SELF 64,32 64,32 64 32 32 N/A 64,32 +0000:22:00.0 64,32 SELF 64 32 32 N/A 64,32 64,32 +0000:38:00.0 64,32 64 SELF 32 N/A 64,32 64,32 64,32 +0000:5c:00.0 64 32 32 SELF 64,32 64,32 64,32 32 +0000:9f:00.0 32 32 N/A 64,32 SELF 64,32 32 32 +0000:af:00.0 32 N/A 64,32 64,32 64,32 SELF 32 N/A +0000:bf:00.0 N/A 64,32 64,32 64,32 32 32 SELF 64,32 +0000:df:00.0 64,32 64,32 64,32 32 32 N/A 64,32 SELF + +DMA TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 SELF T T F F T F T +0000:22:00.0 T SELF F F T F T T +0000:38:00.0 T F SELF T F T T T +0000:5c:00.0 F F T SELF T T T F +0000:9f:00.0 F T F T SELF T F F +0000:af:00.0 T F T T T SELF F T +0000:bf:00.0 F T T T F F SELF F +0000:df:00.0 T T T F F T F SELF + +BI-DIRECTIONAL TABLE: + 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 +0000:0c:00.0 SELF T T F F T F T +0000:22:00.0 T SELF F F T F T T +0000:38:00.0 T F SELF T F T T T +0000:5c:00.0 F F T SELF T T T F +0000:9f:00.0 F T F T SELF T F F +0000:af:00.0 T F T T T SELF F T +0000:bf:00.0 F T T T F F SELF F +0000:df:00.0 T T T F F T F SELF + + +Legend: + SELF = Current GPU + ENABLED / DISABLED = Link is enabled or disabled + N/A = Not supported + T/F = True / False + C/NC = Coherant / Non-Coherant io links + 64,32 = 64 bit and 32 bit atomic support + - +``` + ### Removals - N/A diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index b955f8b4ab..c3b1a158da 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -2822,7 +2822,8 @@ class AMDSMICommands(): def topology(self, args, multiple_devices=False, gpu=None, access=None, - weight=None, hops=None, link_type=None, numa_bw=None): + weight=None, hops=None, link_type=None, numa_bw=None, + coherent=None, atomics=None, dma=None, bi_dir=None): """ Get topology information for target gpus params: args - argparser args to pass to subcommand @@ -2833,6 +2834,10 @@ class AMDSMICommands(): hops (bool) - Value override for args.hops type (bool) - Value override for args.type numa_bw (bool) - Value override for args.numa_bw + coherent (bool) - Value override for args.coherent + atomics (bool) - Value override for args.atomics + dma (bool) - Value override for args.dma + bi_dir (bool) - Value override for args.bi_dir return: Nothing """ @@ -2849,6 +2854,14 @@ class AMDSMICommands(): args.link_type = link_type if numa_bw: args.numa_bw = numa_bw + if coherent: + args.coherent = coherent + if atomics: + args.atomics = atomics + if dma: + args.dma = dma + if bi_dir: + args.bi_dir = bi_dir # Handle No GPU passed if args.gpu == None: @@ -2858,8 +2871,10 @@ class AMDSMICommands(): args.gpu = [args.gpu] # Handle all args being false - if not any([args.access, args.weight, args.hops, args.link_type, args.numa_bw]): - args.access = args.weight = args.hops = args.link_type= args.numa_bw = True + if not any([args.access, args.weight, args.hops, args.link_type, args.numa_bw, + args.coherent, args.atomics, args.dma, args.bi_dir]): + args.access = args.weight = args.hops = args.link_type= args.numa_bw = \ + args.coherent = args.atomics = args.dma = args.bi_dir = True # Clear the table header self.logger.table_header = ''.rjust(12) @@ -2890,6 +2905,10 @@ class AMDSMICommands(): # "num_hops": num_hops - # of hops between devices # "bandwidth": numa_bw - The NUMA "minimum bandwidth-maximum bandwidth" beween src and dest nodes # "N/A" - self node or not connected devices + # "coherent": coherent - Coherant / Non-Coherant io links + # "atomics": atomics - 32 and 64-bit atomic io link capability between nodes + # "dma": dma - P2P direct memory access (DMA) link capability between nodes + # "bi_dir": bi_dir - P2P bi-directional link capability between nodes # } for dest_gpu_index, dest_gpu in enumerate(args.gpu): @@ -2928,6 +2947,42 @@ class AMDSMICommands(): else: link_status = "DISABLED" + link_coherent = "SELF" + link_atomics = "SELF" + link_dma = "SELF" + link_bi_dir = "SELF" + + if src_gpu != dest_gpu: + try: + cap = amdsmi_interface.amdsmi_topo_get_p2p_status(src_gpu, dest_gpu)['cap'] + link_coherent = ( + "C" if cap['is_iolink_coherent'] == 1 else + "NC" if cap['is_iolink_coherent'] == 0 else + "N/A" + ) + link_atomics = ( + "64,32" if cap['is_iolink_atomics_32bit'] == 1 and cap['is_iolink_atomics_64bit'] == 1 else + "32" if cap['is_iolink_atomics_32bit'] == 1 else + "64" if cap['is_iolink_atomics_64bit'] == 1 else + "N/A" + ) + link_dma = ( + "T" if cap['is_iolink_dma'] == 1 else + "F" if cap['is_iolink_dma'] == 0 else + "N/A" + ) + link_bi_dir = ( + "T" if cap['is_iolink_bi_directional'] == 1 else + "F" if cap['is_iolink_bi_directional'] == 0 else + "N/A" + ) + except amdsmi_exception.AmdSmiLibraryException as e: + logging.debug("Failed to get link status for %s to %s | %s", + self.helpers.get_gpu_id_from_device_handle(src_gpu), + self.helpers.get_gpu_id_from_device_handle(dest_gpu), + e.get_error_info()) + + # link_status = amdsmi_is_P2P_accessible(src,dest) dest_gpu_links = { "gpu": self.helpers.get_gpu_id_from_device_handle(dest_gpu), @@ -2937,6 +2992,10 @@ class AMDSMICommands(): "link_type": link_type, "num_hops": num_hops, "bandwidth": numa_bw, + "coherent": link_coherent, + "atomics": link_atomics, + "dma": link_dma, + "bi_dir": link_bi_dir } if not args.access: del dest_gpu_links['link_status'] @@ -2948,6 +3007,14 @@ class AMDSMICommands(): del dest_gpu_links['num_hops'] if not args.numa_bw: del dest_gpu_links['bandwidth'] + if not args.coherent: + del dest_gpu_links['coherent'] + if not args.atomics: + del dest_gpu_links['atomics'] + if not args.dma: + del dest_gpu_links['dma'] + if not args.bi_dir: + del dest_gpu_links['bi_dir'] links.append(dest_gpu_links) dest_end = dest_gpu_index+1 == len(args.gpu) isEndOfSrc = src_gpu_index+1 == len(args.gpu) @@ -3165,6 +3232,175 @@ class AMDSMICommands(): self.logger.table_title = "NUMA BW TABLE" self.logger.print_output(multiple_device_enabled=True, tabular=True) + if args.coherent: + tabular_output = [] + for src_gpu_index, src_gpu in enumerate(args.gpu): + src_gpu_bdf = amdsmi_interface.amdsmi_get_gpu_device_bdf(src_gpu) + if self.logger.is_human_readable_format(): + tabular_output_dict = {'gpu' : f"{src_gpu_bdf} "} + else: + tabular_output_dict = {'gpu' : src_gpu_bdf} + src_gpu_coherent = {} + for dest_gpu in args.gpu: + dest_gpu_id = self.helpers.get_gpu_id_from_device_handle(dest_gpu) + dest_gpu_key = f'gpu_{dest_gpu_id}' + + if src_gpu == dest_gpu: + src_gpu_coherent[dest_gpu_key] = "SELF" + continue + try: + iolink_coherent = amdsmi_interface.amdsmi_topo_get_p2p_status(src_gpu, dest_gpu)['cap']['is_iolink_coherent'] + src_gpu_coherent[dest_gpu_key] = "C" if iolink_coherent == 1 else "NC" if iolink_coherent == 0 else "N/A" + except amdsmi_exception.AmdSmiLibraryException as e: + src_gpu_coherent[dest_gpu_key] = "N/A" + logging.debug("Failed to get link coherent for %s to %s | %s", + self.helpers.get_gpu_id_from_device_handle(src_gpu), + self.helpers.get_gpu_id_from_device_handle(dest_gpu), + e.get_error_info()) + + topo_values[src_gpu_index]['coherent'] = src_gpu_coherent + + tabular_output_dict.update(src_gpu_coherent) + tabular_output.append(tabular_output_dict) + + if self.logger.is_human_readable_format(): + self.logger.multiple_device_output = tabular_output + self.logger.table_title = "CACHE COHERANCY TABLE" + self.logger.print_output(multiple_device_enabled=True, tabular=True) + + if args.atomics: + tabular_output = [] + for src_gpu_index, src_gpu in enumerate(args.gpu): + src_gpu_bdf = amdsmi_interface.amdsmi_get_gpu_device_bdf(src_gpu) + if self.logger.is_human_readable_format(): + tabular_output_dict = {'gpu' : f"{src_gpu_bdf} "} + else: + tabular_output_dict = {'gpu' : src_gpu_bdf} + src_gpu_atomics = {} + for dest_gpu in args.gpu: + dest_gpu_id = self.helpers.get_gpu_id_from_device_handle(dest_gpu) + dest_gpu_key = f'gpu_{dest_gpu_id}' + + if src_gpu == dest_gpu: + src_gpu_atomics[dest_gpu_key] = "SELF" + continue + try: + cap = amdsmi_interface.amdsmi_topo_get_p2p_status(src_gpu, dest_gpu)['cap'] + src_gpu_atomics[dest_gpu_key] = ( + "64,32" if cap['is_iolink_atomics_32bit'] == 1 and cap['is_iolink_atomics_64bit'] == 1 else + "32" if cap['is_iolink_atomics_32bit'] == 1 else + "64" if cap['is_iolink_atomics_64bit'] == 1 else + "N/A" + ) + except amdsmi_exception.AmdSmiLibraryException as e: + src_gpu_atomics[dest_gpu_key] = "N/A" + logging.debug("Failed to get link atomics for %s to %s | %s", + self.helpers.get_gpu_id_from_device_handle(src_gpu), + self.helpers.get_gpu_id_from_device_handle(dest_gpu), + e.get_error_info()) + + topo_values[src_gpu_index]['atomics'] = src_gpu_atomics + + tabular_output_dict.update(src_gpu_atomics) + tabular_output.append(tabular_output_dict) + + if self.logger.is_human_readable_format(): + self.logger.multiple_device_output = tabular_output + self.logger.table_title = "ATOMICS TABLE" + self.logger.print_output(multiple_device_enabled=True, tabular=True) + + if args.dma: + tabular_output = [] + for src_gpu_index, src_gpu in enumerate(args.gpu): + src_gpu_bdf = amdsmi_interface.amdsmi_get_gpu_device_bdf(src_gpu) + if self.logger.is_human_readable_format(): + tabular_output_dict = {'gpu' : f"{src_gpu_bdf} "} + else: + tabular_output_dict = {'gpu' : src_gpu_bdf} + src_gpu_dma = {} + for dest_gpu in args.gpu: + dest_gpu_id = self.helpers.get_gpu_id_from_device_handle(dest_gpu) + dest_gpu_key = f'gpu_{dest_gpu_id}' + + if src_gpu == dest_gpu: + src_gpu_dma[dest_gpu_key] = "SELF" + continue + try: + iolink_dma = amdsmi_interface.amdsmi_topo_get_p2p_status(src_gpu, dest_gpu)['cap']['is_iolink_dma'] + src_gpu_dma[dest_gpu_key] = "T" if iolink_dma == 1 else "F" if iolink_dma == 0 else "N/A" + except amdsmi_exception.AmdSmiLibraryException as e: + src_gpu_dma[dest_gpu_key] = "N/A" + logging.debug("Failed to get link dma for %s to %s | %s", + self.helpers.get_gpu_id_from_device_handle(src_gpu), + self.helpers.get_gpu_id_from_device_handle(dest_gpu), + e.get_error_info()) + + topo_values[src_gpu_index]['dma'] = src_gpu_dma + + tabular_output_dict.update(src_gpu_dma) + tabular_output.append(tabular_output_dict) + + if self.logger.is_human_readable_format(): + self.logger.multiple_device_output = tabular_output + self.logger.table_title = "DMA TABLE" + self.logger.print_output(multiple_device_enabled=True, tabular=True) + + if args.bi_dir: + tabular_output = [] + for src_gpu_index, src_gpu in enumerate(args.gpu): + src_gpu_bdf = amdsmi_interface.amdsmi_get_gpu_device_bdf(src_gpu) + if self.logger.is_human_readable_format(): + tabular_output_dict = {'gpu' : f"{src_gpu_bdf} "} + else: + tabular_output_dict = {'gpu' : src_gpu_bdf} + src_gpu_bi_dir = {} + for dest_gpu in args.gpu: + dest_gpu_id = self.helpers.get_gpu_id_from_device_handle(dest_gpu) + dest_gpu_key = f'gpu_{dest_gpu_id}' + + if src_gpu == dest_gpu: + src_gpu_bi_dir[dest_gpu_key] = "SELF" + continue + try: + iolink_bi_dir = amdsmi_interface.amdsmi_topo_get_p2p_status(src_gpu, dest_gpu)['cap']['is_iolink_bi_directional'] + src_gpu_bi_dir[dest_gpu_key] = "T" if iolink_bi_dir == 1 else "F" if iolink_bi_dir == 0 else "N/A" + except amdsmi_exception.AmdSmiLibraryException as e: + src_gpu_bi_dir[dest_gpu_key] = "N/A" + logging.debug("Failed to get link bi-directional for %s to %s | %s", + self.helpers.get_gpu_id_from_device_handle(src_gpu), + self.helpers.get_gpu_id_from_device_handle(dest_gpu), + e.get_error_info()) + + topo_values[src_gpu_index]['bi_dir'] = src_gpu_bi_dir + + tabular_output_dict.update(src_gpu_bi_dir) + tabular_output.append(tabular_output_dict) + + if self.logger.is_human_readable_format(): + self.logger.multiple_device_output = tabular_output + self.logger.table_title = "BI-DIRECTIONAL TABLE" + self.logger.print_output(multiple_device_enabled=True, tabular=True) + + if self.logger.is_human_readable_format(): + # Populate the legend output + legend_parts = [ + "\n\nLegend:", + " SELF = Current GPU", + " ENABLED / DISABLED = Link is enabled or disabled", + " N/A = Not supported", + " T/F = True / False", + " C/NC = Coherant / Non-Coherant io links", + " 64,32 = 64 bit and 32 bit atomic support", + " -" + ] + legend_output = "\n".join(legend_parts) + + if self.logger.destination == 'stdout': + print(legend_output) + else: + with self.logger.destination.open('a', encoding="utf-8") as output_file: + output_file.write(legend_output + '\n') + self.logger.multiple_device_output = topo_values if self.logger.is_csv_format(): diff --git a/amdsmi_cli/amdsmi_parser.py b/amdsmi_cli/amdsmi_parser.py index 0a85ee7b01..ae1432526f 100644 --- a/amdsmi_cli/amdsmi_parser.py +++ b/amdsmi_cli/amdsmi_parser.py @@ -972,6 +972,10 @@ class AMDSMIParser(argparse.ArgumentParser): hops_help = "Displays the number of hops between GPUs" link_type_help = "Displays the link type between GPUs" numa_bw_help = "Display max and min bandwidth between nodes" + coherent_help = "Display cache coherant (or non-coherant) link capability between nodes" + atomics_help = "Display 32 and 64-bit atomic io link capability between nodes" + dma_help = "Display P2P direct memory access (DMA) link capability between nodes" + bi_dir_help = "Display P2P bi-directional link capability between nodes" # Create topology subparser topology_parser = subparsers.add_parser('topology', help=topology_help, description=topology_subcommand_help) @@ -989,6 +993,10 @@ class AMDSMIParser(argparse.ArgumentParser): topology_parser.add_argument('-o', '--hops', action='store_true', required=False, help=hops_help) topology_parser.add_argument('-t', '--link-type', action='store_true', required=False, help=link_type_help) topology_parser.add_argument('-b', '--numa-bw', action='store_true', required=False, help=numa_bw_help) + topology_parser.add_argument('-c', '--coherent', action='store_true', required=False, help=coherent_help) + topology_parser.add_argument('-n', '--atomics', action='store_true', required=False, help=atomics_help) + topology_parser.add_argument('-d', '--dma', action='store_true', required=False, help=dma_help) + topology_parser.add_argument('-z', '--bi-dir', action='store_true', required=False, help=bi_dir_help) def _add_set_value_parser(self, subparsers, func): diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 9e5b988614..e9c415339d 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -690,6 +690,17 @@ typedef struct { uint32_t reserved[4]; } amdsmi_proc_info_t; +/** + * @brief IO Link P2P Capability + */ +typedef struct { + uint8_t is_iolink_coherent; // 1 = true, 0 = false, UINT8_MAX = Not defined. + uint8_t is_iolink_atomics_32bit; + uint8_t is_iolink_atomics_64bit; + uint8_t is_iolink_dma; + uint8_t is_iolink_bi_directional; +} amdsmi_p2p_capability_t; + //! Guaranteed maximum possible number of supported frequencies #define AMDSMI_MAX_NUM_FREQUENCIES 33 @@ -4283,6 +4294,36 @@ amdsmi_is_P2P_accessible(amdsmi_processor_handle processor_handle_src, amdsmi_processor_handle processor_handle_dst, bool *accessible); + +/** + * @brief Retrieve connection type and P2P capabilities between 2 GPUs + * + * @platform{gpu_bm_linux} @platform{host} @platform{guest_1vf} @platform{guest_mvf} + * + * @details Given a source processor handle @p processor_handle_src and + * a destination processor handle @p processor_handle_dst, a pointer to an amdsmi_io_link_type_t @p type, + * and a pointer to amdsmi_p2p_capability_t @p cap. This function will write the connection type, + * and io link capabilities between the device + * @p processor_handle_src and @p processor_handle_dst to the memory + * pointed to by @p cap and @p type. + * + * @param[in] processor_handle_src the source processor handle + * + * @param[in] processor_handle_dst the destination processor handle + * + * @param[in,out] type A pointer to an ::amdsmi_io_link_type_t to which the + * type for the connection should be written. + * + * @param[in,out] type A pointer to an ::amdsmi_p2p_capability_t to which the + * io link capabilities should be written. + * + * @return ::amdsmi_status_t | ::AMDSMI_STATUS_SUCCESS on success, non-zero on fail + */ +amdsmi_status_t +amdsmi_topo_get_p2p_status(amdsmi_processor_handle processor_handle_src, + amdsmi_processor_handle processor_handle_dst, + amdsmi_io_link_type_t *type, amdsmi_p2p_capability_t *cap); + /** @} End HWTopo */ /*****************************************************************************/ diff --git a/py-interface/__init__.py b/py-interface/__init__.py index 5e208aadcc..9dc45527b6 100644 --- a/py-interface/__init__.py +++ b/py-interface/__init__.py @@ -211,6 +211,7 @@ from .amdsmi_interface import amdsmi_topo_get_numa_node_number from .amdsmi_interface import amdsmi_topo_get_link_weight from .amdsmi_interface import amdsmi_get_minmax_bandwidth_between_processors from .amdsmi_interface import amdsmi_topo_get_link_type +from .amdsmi_interface import amdsmi_topo_get_p2p_status from .amdsmi_interface import amdsmi_is_P2P_accessible from .amdsmi_interface import amdsmi_get_xgmi_info diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index a7214776b4..c91319662a 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -2540,6 +2540,40 @@ def amdsmi_topo_get_link_type( return {"hops": hops.value, "type": type.value} +def amdsmi_topo_get_p2p_status( + processor_handle_src: amdsmi_wrapper.amdsmi_processor_handle, + processor_handle_dst: amdsmi_wrapper.amdsmi_processor_handle, +): + if not isinstance(processor_handle_src, amdsmi_wrapper.amdsmi_processor_handle): + raise AmdSmiParameterException( + processor_handle_src, amdsmi_wrapper.amdsmi_processor_handle + ) + + if not isinstance(processor_handle_dst, amdsmi_wrapper.amdsmi_processor_handle): + raise AmdSmiParameterException( + processor_handle_dst, amdsmi_wrapper.amdsmi_processor_handle + ) + + type = ctypes.c_uint32() + cap = amdsmi_wrapper.struct_amdsmi_p2p_capability_t() + + _check_res( + amdsmi_wrapper.amdsmi_topo_get_p2p_status( + processor_handle_src, processor_handle_dst, ctypes.byref(type), ctypes.byref(cap) + ) + ) + + return { + 'type' : type, + 'cap': { + 'is_iolink_coherent': cap.is_iolink_coherent, + 'is_iolink_atomics_32bit': cap.is_iolink_atomics_32bit, + 'is_iolink_atomics_64bit': cap.is_iolink_atomics_64bit, + 'is_iolink_dma': cap.is_iolink_dma, + 'is_iolink_bi_directional': cap.is_iolink_bi_directional + } + } + def amdsmi_is_P2P_accessible( processor_handle_src: amdsmi_wrapper.amdsmi_processor_handle, diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index 805d8d88d8..8d8b0aa739 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -1065,6 +1065,19 @@ struct_amdsmi_proc_info_t._fields_ = [ ] amdsmi_proc_info_t = struct_amdsmi_proc_info_t +class struct_amdsmi_p2p_capability_t(Structure): + pass + +struct_amdsmi_p2p_capability_t._pack_ = 1 # source:False +struct_amdsmi_p2p_capability_t._fields_ = [ + ('is_iolink_coherent', ctypes.c_ubyte), + ('is_iolink_atomics_32bit', ctypes.c_ubyte), + ('is_iolink_atomics_64bit', ctypes.c_ubyte), + ('is_iolink_dma', ctypes.c_ubyte), + ('is_iolink_bi_directional', ctypes.c_ubyte), +] + +amdsmi_p2p_capability_t = struct_amdsmi_p2p_capability_t # values for enumeration 'amdsmi_dev_perf_level_t' amdsmi_dev_perf_level_t__enumvalues = { @@ -2201,6 +2214,9 @@ amdsmi_topo_get_link_type.argtypes = [amdsmi_processor_handle, amdsmi_processor_ amdsmi_is_P2P_accessible = _libraries['libamd_smi.so'].amdsmi_is_P2P_accessible amdsmi_is_P2P_accessible.restype = amdsmi_status_t amdsmi_is_P2P_accessible.argtypes = [amdsmi_processor_handle, amdsmi_processor_handle, ctypes.POINTER(ctypes.c_bool)] +amdsmi_topo_get_p2p_status = _libraries['libamd_smi.so'].amdsmi_topo_get_p2p_status +amdsmi_topo_get_p2p_status.restype = amdsmi_status_t +amdsmi_topo_get_p2p_status.argtypes = [amdsmi_processor_handle, amdsmi_processor_handle, ctypes.POINTER(amdsmi_io_link_type_t), ctypes.POINTER(struct_amdsmi_p2p_capability_t)] amdsmi_get_gpu_compute_partition = _libraries['libamd_smi.so'].amdsmi_get_gpu_compute_partition amdsmi_get_gpu_compute_partition.restype = amdsmi_status_t amdsmi_get_gpu_compute_partition.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_char), uint32_t] @@ -2726,9 +2742,9 @@ __all__ = \ 'amdsmi_memory_partition_type_t', 'amdsmi_memory_type_t', 'amdsmi_mm_ip_t', 'amdsmi_name_value_t', 'amdsmi_od_vddc_point_t', 'amdsmi_od_volt_curve_t', 'amdsmi_od_volt_freq_data_t', - 'amdsmi_pcie_bandwidth_t', 'amdsmi_pcie_info_t', - 'amdsmi_power_cap_info_t', 'amdsmi_power_info_t', - 'amdsmi_power_profile_preset_masks_t', + 'amdsmi_p2p_capability_t', 'amdsmi_pcie_bandwidth_t', + 'amdsmi_pcie_info_t', 'amdsmi_power_cap_info_t', + 'amdsmi_power_info_t', 'amdsmi_power_profile_preset_masks_t', 'amdsmi_power_profile_status_t', 'amdsmi_power_type_t', 'amdsmi_proc_info_t', 'amdsmi_process_handle_t', 'amdsmi_process_info_t', 'amdsmi_processor_handle', @@ -2761,7 +2777,7 @@ __all__ = \ 'amdsmi_temp_range_refresh_rate_t', 'amdsmi_temperature_metric_t', 'amdsmi_temperature_type_t', 'amdsmi_topo_get_link_type', 'amdsmi_topo_get_link_weight', 'amdsmi_topo_get_numa_node_number', - 'amdsmi_utilization_counter_t', + 'amdsmi_topo_get_p2p_status', 'amdsmi_utilization_counter_t', 'amdsmi_utilization_counter_type_t', 'amdsmi_vbios_info_t', 'amdsmi_version_t', 'amdsmi_voltage_metric_t', 'amdsmi_voltage_type_t', 'amdsmi_vram_info_t', @@ -2785,6 +2801,7 @@ __all__ = \ 'struct_amdsmi_name_value_t', 'struct_amdsmi_od_vddc_point_t', 'struct_amdsmi_od_volt_curve_t', 'struct_amdsmi_od_volt_freq_data_t', + 'struct_amdsmi_p2p_capability_t', 'struct_amdsmi_pcie_bandwidth_t', 'struct_amdsmi_pcie_info_t', 'struct_amdsmi_power_cap_info_t', 'struct_amdsmi_power_info_t', 'struct_amdsmi_power_profile_status_t', diff --git a/rocm_smi/include/rocm_smi/rocm_smi.h b/rocm_smi/include/rocm_smi/rocm_smi.h index a9dcaa18ce..47edd8cc09 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi.h +++ b/rocm_smi/include/rocm_smi/rocm_smi.h @@ -866,6 +866,17 @@ typedef struct { typedef rsmi_frequencies_t rsmi_frequencies; /// \endcond +/** + * @brief IO Link P2P Capability + */ +typedef struct { + uint8_t is_iolink_coherent; // 1 = true, 0 = false, UINT8_MAX = Not defined. + uint8_t is_iolink_atomics_32bit; + uint8_t is_iolink_atomics_64bit; + uint8_t is_iolink_dma; + uint8_t is_iolink_bi_directional; +} rsmi_p2p_capability_t; + /** * @brief This structure holds information about the possible PCIe * bandwidths. Specifically, the possible transfer rates and their @@ -4326,6 +4337,37 @@ rsmi_status_t rsmi_is_P2P_accessible(uint32_t dv_ind_src, uint32_t dv_ind_dst, bool *accessible); +/** + * @brief Retrieve connection type and P2P capabilities between 2 GPUs + * + * @platform{gpu_bm_linux} @platform{host} @platform{guest_1vf} @platform{guest_mvf} + * + * @details Given a source processor handle @p processor_handle_src and + * a destination processor handle @p processor_handle_dst, a pointer to an amdsmi_io_link_type_t @p type, + * and a pointer to rsmi_p2p_capability_t @p cap. This function will write the connection type, + * and io link capabilities between the device + * @p processor_handle_src and @p processor_handle_dst to the memory + * pointed to by @p cap and @p type. + * + * @param[in] dv_ind_src the source device index + * + * @param[in] dv_ind_dst the destination device index + * + * @param[inout] type A pointer to an ::RSMI_IO_LINK_TYPE to which the + * type for the connection should be written. + * + * @param[in,out] cap A pointer to an ::rsmi_p2p_capability_t to which the + * io link capabilities should be written. + * + * @retval ::RSMI_STATUS_SUCCESS call was successful + * @retval ::RSMI_STATUS_INVALID_ARGS the provided arguments are not valid + * @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not + * support this function + */ +rsmi_status_t +rsmi_topo_get_p2p_status(uint32_t dv_ind_src, uint32_t dv_ind_dst, + RSMI_IO_LINK_TYPE *type, rsmi_p2p_capability_t *cap); + /** @} */ // end of HWTopo /*****************************************************************************/ diff --git a/rocm_smi/include/rocm_smi/rocm_smi_io_link.h b/rocm_smi/include/rocm_smi/rocm_smi_io_link.h index 191d5c96f2..e7bc35ebc2 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_io_link.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_io_link.h @@ -85,7 +85,8 @@ typedef enum _LINK_DIRECTORY_TYPE { class IOLink { public: explicit IOLink(uint32_t node_indx, uint32_t link_indx, LINK_DIRECTORY_TYPE link_dir_type) : - node_indx_(node_indx), link_indx_(link_indx), link_dir_type_(link_dir_type) {} + node_indx_(node_indx), link_indx_(link_indx), link_dir_type_(link_dir_type), + link_cap_{UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX} {} ~IOLink(); int Initialize(); @@ -96,23 +97,28 @@ class IOLink { IO_LINK_TYPE type(void) const {return type_;} uint32_t node_from(void) const {return node_from_;} uint32_t node_to(void) const {return node_to_;} + uint32_t flag(void) const {return flags_;} uint64_t weight(void) const {return weight_;} LINK_DIRECTORY_TYPE get_directory_type(void) const {return link_dir_type_;} uint64_t min_bandwidth(void) const {return min_bandwidth_;} uint64_t max_bandwidth(void) const {return max_bandwidth_;} + const rsmi_p2p_capability_t& get_link_capability(void) const {return link_cap_;} - + protected: + virtual int UpdateP2pCapability(void); private: uint32_t node_indx_; uint32_t link_indx_; IO_LINK_TYPE type_; uint32_t node_from_; uint32_t node_to_; + uint32_t flags_; uint64_t weight_; uint64_t min_bandwidth_; uint64_t max_bandwidth_; std::map properties_; LINK_DIRECTORY_TYPE link_dir_type_; + rsmi_p2p_capability_t link_cap_; }; int diff --git a/rocm_smi/src/rocm_smi.cc b/rocm_smi/src/rocm_smi.cc index 3830f63986..7672e8b58c 100755 --- a/rocm_smi/src/rocm_smi.cc +++ b/rocm_smi/src/rocm_smi.cc @@ -5285,6 +5285,81 @@ rsmi_is_P2P_accessible(uint32_t dv_ind_src, uint32_t dv_ind_dst, CATCH } +rsmi_status_t +rsmi_topo_get_p2p_status(uint32_t dv_ind_src, uint32_t dv_ind_dst, + RSMI_IO_LINK_TYPE *type, rsmi_p2p_capability_t *cap) { + TRY + + uint32_t dv_ind = dv_ind_src; + GET_DEV_AND_KFDNODE_FROM_INDX + DEVICE_MUTEX + + if (type == nullptr || cap == nullptr) { + return RSMI_STATUS_INVALID_ARGS; + } + + // If source device is same as destination, return invalid args + if (dv_ind_src == dv_ind_dst) { + return RSMI_STATUS_INVALID_ARGS; + } + + uint32_t node_ind_src, node_ind_dst; + // Fetch the source and destination node index + if (smi.get_node_index(dv_ind_src, &node_ind_src) || + smi.get_node_index(dv_ind_dst, &node_ind_dst)) { + return RSMI_STATUS_INVALID_ARGS; + } + + bool node_is_find = false; + std::map> io_link_map_tmp; + std::map>::iterator it; + // Iterate over P2P links + if (DiscoverP2PLinksPerNode(node_ind_src, &io_link_map_tmp) == 0) { + for (it = io_link_map_tmp.begin(); it != io_link_map_tmp.end(); it++) { + if (it->first == node_ind_dst) { + node_is_find = true; + break; + } + } + io_link_map_tmp.clear(); + } else { + return RSMI_STATUS_FILE_ERROR; + } + + if (!node_is_find) { + // Iterate over IO links + if (DiscoverIOLinksPerNode(node_ind_src, &io_link_map_tmp) == 0) { + for (it = io_link_map_tmp.begin(); it != io_link_map_tmp.end(); it++) { + if (it->first == node_ind_dst) { + node_is_find = true; + break; + } + } + io_link_map_tmp.clear(); + } else { + return RSMI_STATUS_FILE_ERROR; + } + } + + if (node_is_find) { + amd::smi::IO_LINK_TYPE io_link_type = it->second->type(); + if (io_link_type == amd::smi::IOLINK_TYPE_PCIEXPRESS) { + *type = RSMI_IOLINK_TYPE_PCIEXPRESS; + } else if (io_link_type == amd::smi::IOLINK_TYPE_XGMI) { + *type = RSMI_IOLINK_TYPE_XGMI; + } else { + // Unexpected IO Link type read + return RSMI_STATUS_NOT_SUPPORTED; + } + *cap = it->second->get_link_capability(); + return RSMI_STATUS_SUCCESS; + } + + return RSMI_STATUS_NOT_SUPPORTED; + + CATCH +} + static rsmi_status_t get_compute_partition(uint32_t dv_ind, std::string &compute_partition) { TRY diff --git a/rocm_smi/src/rocm_smi_io_link.cc b/rocm_smi/src/rocm_smi_io_link.cc index da3795fafa..93b4ae238a 100755 --- a/rocm_smi/src/rocm_smi_io_link.cc +++ b/rocm_smi/src/rocm_smi_io_link.cc @@ -57,6 +57,15 @@ #include "rocm_smi/rocm_smi_utils.h" #include "rocm_smi/rocm_smi_io_link.h" + +#define CRAT_IOLINK_FLAGS_ENABLED (1 << 0) +#define CRAT_IOLINK_FLAGS_NON_COHERENT (1 << 1) +#define CRAT_IOLINK_FLAGS_NO_ATOMICS_32_BIT (1 << 2) +#define CRAT_IOLINK_FLAGS_NO_ATOMICS_64_BIT (1 << 3) +#define CRAT_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA (1 << 4) +#define CRAT_IOLINK_FLAGS_BI_DIRECTIONAL (1 << 31) +#define CRAT_IOLINK_FLAGS_RESERVED_MASK 0x7fffffe0 + namespace amd { namespace smi { @@ -76,7 +85,7 @@ static const char *kIOLinkPropMIN_BANDWIDTHStr = "min_bandwidth"; static const char *kIOLinkPropMAX_BANDWIDTHStr = "max_bandwidth"; // static const char *kIOLinkPropRECOMMENDED_TRANSFER_SIZEStr = // "recommended_transfer_size"; -// static const char *kIOLinkPropFLAGSStr = "flags"; +static const char *kIOLinkPropFLAGSStr = "flags"; static bool is_number(const std::string &s) { return !s.empty() && std::all_of(s.begin(), s.end(), ::isdigit); @@ -380,6 +389,12 @@ IOLink::Initialize(void) { ret = get_property_value(kIOLinkPropWEIGHTStr, &weight_); if (ret) {return ret;} + ret = get_property_value(kIOLinkPropFLAGSStr, reinterpret_cast(&flags_)); + if (ret) {return ret;} + + ret = UpdateP2pCapability(); + if (ret) {return ret;} + ret = get_property_value(kIOLinkPropMIN_BANDWIDTHStr, &min_bandwidth_); if (ret) {return ret;} @@ -401,5 +416,31 @@ IOLink::get_property_value(std::string property, uint64_t *value) { return 0; } +int IOLink::UpdateP2pCapability(void) { + const uint8_t cap_true = 1; + const uint8_t cap_false = 0; + + if (!(flags_ & CRAT_IOLINK_FLAGS_ENABLED)) { + return 0; + } + + link_cap_.is_iolink_coherent = + (flags_ & CRAT_IOLINK_FLAGS_NON_COHERENT) ? cap_false : cap_true; + + link_cap_.is_iolink_atomics_32bit = + (flags_ & CRAT_IOLINK_FLAGS_NO_ATOMICS_32_BIT) ? cap_false : cap_true; + + link_cap_.is_iolink_atomics_64bit = + (flags_ & CRAT_IOLINK_FLAGS_NO_ATOMICS_64_BIT) ? cap_false : cap_true; + + link_cap_.is_iolink_bi_directional = + (flags_ & CRAT_IOLINK_FLAGS_BI_DIRECTIONAL) ? cap_true : cap_false; + + link_cap_.is_iolink_dma = + (flags_ & CRAT_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA) ? cap_false : cap_true; + + return 0; +} + } // namespace smi } // namespace amd diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index c2650c8dcf..5fe6398f26 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -1053,6 +1053,26 @@ amdsmi_is_P2P_accessible(amdsmi_processor_handle processor_handle_src, return amd::smi::rsmi_to_amdsmi_status(rstatus); } +amdsmi_status_t +amdsmi_topo_get_p2p_status(amdsmi_processor_handle processor_handle_src, + amdsmi_processor_handle processor_handle_dst, + amdsmi_io_link_type_t *type, amdsmi_p2p_capability_t *cap) { + AMDSMI_CHECK_INIT(); + + amd::smi::AMDSmiGPUDevice* src_device = nullptr; + amd::smi::AMDSmiGPUDevice* dst_device = nullptr; + amdsmi_status_t r = get_gpu_device_from_handle(processor_handle_src, &src_device); + if (r != AMDSMI_STATUS_SUCCESS) + return r; + r = get_gpu_device_from_handle(processor_handle_dst, &dst_device); + if (r != AMDSMI_STATUS_SUCCESS) + return r; + auto rstatus = rsmi_topo_get_p2p_status(src_device->get_gpu_id(), dst_device->get_gpu_id(), + reinterpret_cast(type), + reinterpret_cast(cap)); + return amd::smi::rsmi_to_amdsmi_status(rstatus); +} + // Compute Partition functions amdsmi_status_t amdsmi_get_gpu_compute_partition(amdsmi_processor_handle processor_handle, diff --git a/tests/amd_smi_test/functional/hw_topology_read.cc b/tests/amd_smi_test/functional/hw_topology_read.cc index 7f1e095758..b69385a12a 100755 --- a/tests/amd_smi_test/functional/hw_topology_read.cc +++ b/tests/amd_smi_test/functional/hw_topology_read.cc @@ -60,6 +60,7 @@ typedef struct { uint64_t hops; uint64_t weight; bool accessible; + amdsmi_p2p_capability_t cap; } gpu_link_t; TestHWTopologyRead::TestHWTopologyRead() : TestBase() { @@ -136,9 +137,11 @@ void TestHWTopologyRead::Run(void) { gpu_links[dv_ind_src][dv_ind_dst].hops = 0; gpu_links[dv_ind_src][dv_ind_dst].weight = 0; gpu_links[dv_ind_src][dv_ind_dst].accessible = true; + gpu_links[dv_ind_src][dv_ind_dst].cap = + {UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX, UINT8_MAX}; } else { amdsmi_io_link_type_t type; - err = amdsmi_topo_get_link_type(processor_handles_[dv_ind_src], + err = amdsmi_topo_get_link_type(processor_handles_[dv_ind_src], processor_handles_[dv_ind_dst], &gpu_links[dv_ind_src][dv_ind_dst].hops, &type); if (err != AMDSMI_STATUS_SUCCESS) { @@ -170,6 +173,34 @@ void TestHWTopologyRead::Run(void) { } } } + err = amdsmi_topo_get_p2p_status(processor_handles_[dv_ind_src], + processor_handles_[dv_ind_dst], + &type, &gpu_links[dv_ind_src][dv_ind_dst].cap); + if (err != AMDSMI_STATUS_SUCCESS) { + if (err == AMDSMI_STATUS_NOT_SUPPORTED) { + IF_VERB(STANDARD) { + std::cout << + "\t**Link Type. read: Not supported on this machine" + << std::endl; + return; + } + } else { + CHK_ERR_ASRT(err) + } + } else { + switch (type) { + case AMDSMI_IOLINK_TYPE_PCIEXPRESS: + case AMDSMI_IOLINK_TYPE_XGMI: + // Do nothing, the type is printed by the previous test for amdsmi_topo_get_link_type + break; + default: + gpu_links[dv_ind_src][dv_ind_dst].type = "XXXX"; + IF_VERB(STANDARD) { + std::cout << "\t**Invalid IO LINK type. type=" << type << + std::endl; + } + } + } err = amdsmi_topo_get_link_weight(processor_handles_[dv_ind_src], processor_handles_[dv_ind_dst], &gpu_links[dv_ind_src][dv_ind_dst].weight); @@ -286,6 +317,7 @@ void TestHWTopologyRead::Run(void) { std::cout << std::endl; } std::cout << std::endl; + std::cout << "**Access between two GPUs**" << std::endl; std::cout << " "; for (i = 0; i < num_devices; ++i) { @@ -303,4 +335,125 @@ void TestHWTopologyRead::Run(void) { std::cout << std::endl; } std::cout << std::endl; + + std::cout << "**Cache coherency between two GPUs**" << std::endl; + std::cout << " "; + for (i = 0; i < num_devices; ++i) { + tmp = "GPU" + std::to_string(i); + std::cout << std::setw(12) << std::left << tmp; + } + std::cout << std::endl; + for (i = 0; i < num_devices; i++) { + tmp = "GPU" + std::to_string(i); + std::cout << std::setw(6) << std::left << tmp; + for (j = 0; j < num_devices; j++) { + if (i == j) { + std::cout << std::setw(12) << std::left << "X"; + continue; + } + + if (gpu_links[i][j].cap.is_iolink_coherent == UINT8_MAX) { + std::cout << std::setw(12) << std::left << "N/A"; + continue; + } + + std::cout << std::setw(12) << std::left + << (gpu_links[i][j].cap.is_iolink_coherent ? "C" : "NC"); + } + std::cout << std::endl; + } + std::cout << std::endl; + + std::cout << "**Atomics between two GPUs**" << std::endl; + std::cout << " "; + for (i = 0; i < num_devices; ++i) { + tmp = "GPU" + std::to_string(i); + std::cout << std::setw(12) << std::left << tmp; + } + std::cout << std::endl; + for (i = 0; i < num_devices; i++) { + tmp = "GPU" + std::to_string(i); + std::cout << std::setw(6) << std::left << tmp; + for (j = 0; j < num_devices; j++) { + if (i == j) { + std::cout << std::setw(12) << std::left << "X"; + continue; + } + + if (gpu_links[i][j].cap.is_iolink_atomics_64bit == UINT8_MAX || + gpu_links[i][j].cap.is_iolink_atomics_32bit == UINT8_MAX) { + std::cout << std::setw(12) << std::left << "N/A"; + continue; + } + + tmp = gpu_links[i][j].cap.is_iolink_atomics_64bit ? "64" : ""; + if (gpu_links[i][j].cap.is_iolink_atomics_32bit) { + if (!tmp.empty()) { + tmp += ","; + } + tmp += "32"; + } + std::cout << std::setw(12) << std::left << (tmp.empty() ? "N/A" : tmp); + } + std::cout << std::endl; + } + std::cout << std::endl; + + std::cout << "**DMA between two GPUs**" << std::endl; + std::cout << " "; + for (i = 0; i < num_devices; ++i) { + tmp = "GPU" + std::to_string(i); + std::cout << std::setw(12) << std::left << tmp; + } + std::cout << std::endl; + for (i = 0; i < num_devices; i++) { + tmp = "GPU" + std::to_string(i); + std::cout << std::setw(6) << std::left << tmp; + for (j = 0; j < num_devices; j++) { + if (i == j) { + std::cout << std::setw(12) << std::left << "X"; + continue; + } + + if (gpu_links[i][j].cap.is_iolink_dma == UINT8_MAX) { + std::cout << std::setw(12) << std::left << "N/A"; + continue; + } + + std::cout << std::boolalpha; + std::cout << std::setw(12) << std::left + << static_cast(gpu_links[i][j].cap.is_iolink_dma); + } + std::cout << std::endl; + } + std::cout << std::endl; + + std::cout << "**BI-Directional between two GPUs**" << std::endl; + std::cout << " "; + for (i = 0; i < num_devices; ++i) { + tmp = "GPU" + std::to_string(i); + std::cout << std::setw(12) << std::left << tmp; + } + std::cout << std::endl; + for (i = 0; i < num_devices; i++) { + tmp = "GPU" + std::to_string(i); + std::cout << std::setw(6) << std::left << tmp; + for (j = 0; j < num_devices; j++) { + if (i == j) { + std::cout << std::setw(12) << std::left << "X"; + continue; + } + + if (gpu_links[i][j].cap.is_iolink_dma == UINT8_MAX) { + std::cout << std::setw(12) << std::left << "N/A"; + continue; + } + + std::cout << std::boolalpha; + std::cout << std::setw(12) << std::left + << static_cast(gpu_links[i][j].cap.is_iolink_bi_directional); + } + std::cout << std::endl; + } + std::cout << std::endl; } From a33e4c9e14219376a9a85ea58c96e11d983fec06 Mon Sep 17 00:00:00 2001 From: Charis Poag Date: Wed, 11 Sep 2024 09:42:32 -0500 Subject: [PATCH 02/32] [SWDEV-483526] Fix MI3x partitions not showing all logical nodes Changes: - Updates to amdsmi_asic_info_t structure to include: target_graphics_version, kfd_id, node_id, partition_id - Updates to amd-smi static --asic to display new samdsmi_asic_info_t fields - Updates to gpu enumeration during amdsmi_init() to discover all logical GPUs when in a non-SPX mode (ex. DPX, TPX, QPX, or CPX) - Updates to amdsmi_get_gpu_bdf_id(..) to include partition_id details when in BDF or optional bits. - bits [63:32] = domain - bits [31:28] or bits [2:0] = partition id - bits [27:16] = reserved - bits [15:8] = Bus - bits [7:3] = Device - bits [2:0] = Function (partition id maybe in bits [2:0]) <-- Fallback for non SPX modes - C++/Python tests updated to reflect these outputs Change-Id: I4be0ea35bb98f3109ae2ca9e82f6b21baa38de29 Signed-off-by: Charis Poag --- CHANGELOG.md | 147 +- include/amd_smi/amdsmi.h | 46 +- py-interface/amdsmi_interface.py | 6 +- py-interface/amdsmi_wrapper.py | 26 +- pytest/integration_test.py | 8 + rocm_smi/example/rocm_smi_example.cc | 242 +-- rocm_smi/include/rocm_smi/rocm_smi.h | 1157 ++--------- rocm_smi/include/rocm_smi/rocm_smi_kfd.h | 5 + rocm_smi/include/rocm_smi/rocm_smi_utils.h | 4 + rocm_smi/src/rocm_smi.cc | 1742 +++-------------- rocm_smi/src/rocm_smi_device.cc | 2 +- rocm_smi/src/rocm_smi_kfd.cc | 71 +- rocm_smi/src/rocm_smi_main.cc | 158 +- rocm_smi/src/rocm_smi_utils.cc | 24 +- src/amd_smi/amd_smi.cc | 40 +- src/amd_smi/amd_smi_drm.cc | 34 +- .../amd_smi_test/functional/sys_info_read.cc | 30 +- tests/amd_smi_test/functional/temp_read.cc | 3 +- 18 files changed, 971 insertions(+), 2774 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fe1b40c5e..40fc986d49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -175,6 +175,98 @@ Legend: 64,32 = 64 bit and 32 bit atomic support - ``` +- **Added Target_Graphics_Version, KFD_ID, Node_id, and partition id to `amd-smi static --asic`**. +Due to fixes needed to properly enumerate all logical GPUs in CPX, new device identifiers +were placed within the `amdsmi_asic_info_t` struct. These new fields are only available for BM/Guest Linux +devices at this time. + +```C +typedef struct { + char market_name[AMDSMI_256_LENGTH]; + uint32_t vendor_id; //< Use 32 bit to be compatible with other platform. + char vendor_name[AMDSMI_MAX_STRING_LENGTH]; + uint32_t subvendor_id; //< The subsystem vendor id + uint64_t device_id; //< The device id of a GPU + uint32_t rev_id; + char asic_serial[AMDSMI_NORMAL_STRING_LENGTH]; + uint32_t oam_id; //< 0xFFFF if not supported + uint32_t num_of_compute_units; //< 0xFFFFFFFF if not supported + uint64_t target_graphics_version; //< 0xFFFFFFFFFFFFFFFF if not supported + uint64_t kfd_id; //< 0xFFFFFFFFFFFFFFFF if not supported + uint32_t node_id; //< 0xFFFFFFFF if not supported + uint32_t partition_id; //< 0xFFFFFFFF if not supported + uint32_t reserved[17]; +} amdsmi_asic_info_t; +``` + +```shell +$ amd-smi static --asic --board --bus --partition +GPU: 0 + ASIC: + MARKET_NAME: MI308X + VENDOR_ID: 0x1002 + VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] + SUBVENDOR_ID: 0x1002 + DEVICE_ID: 0x74a2 + TARGET_GRAPHICS_VERSION: gfx942 + KFD_ID: 24248 + NODE_ID: 2 + PARTITION_ID: 0 + SUBSYSTEM_ID: 0x74a2 + REV_ID: 0x00 + ASIC_SERIAL: + OAM_ID: 5 + NUM_COMPUTE_UNITS: 20 + BUS: + BDF: 0000:0A:00.0 + MAX_PCIE_WIDTH: 16 + MAX_PCIE_SPEED: 32 GT/s + PCIE_INTERFACE_VERSION: Gen 5 + SLOT_TYPE: PCIE + BOARD: + MODEL_NUMBER: 102-G30218-00 + PRODUCT_SERIAL: 692432000576 + FRU_ID: 113-AMDG302180002-0000000000000 + PRODUCT_NAME: AMD Instinct MI308X OAM + MANUFACTURER_NAME: AMD + PARTITION: + COMPUTE_PARTITION: CPX + MEMORY_PARTITION: NPS4 + +GPU: 1 + ASIC: + MARKET_NAME: MI308X + VENDOR_ID: 0x1002 + VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] + SUBVENDOR_ID: 0x1002 + DEVICE_ID: 0x74a2 + TARGET_GRAPHICS_VERSION: gfx942 + KFD_ID: 41657 + NODE_ID: 3 + PARTITION_ID: 1 + SUBSYSTEM_ID: 0x74a2 + REV_ID: 0x00 + ASIC_SERIAL: + OAM_ID: 5 + NUM_COMPUTE_UNITS: 20 + BUS: + BDF: 0000:0A:00.1 + MAX_PCIE_WIDTH: 16 + MAX_PCIE_SPEED: 32 GT/s + PCIE_INTERFACE_VERSION: Gen 5 + SLOT_TYPE: PCIE + BOARD: + MODEL_NUMBER: 102-G30218-00 + PRODUCT_SERIAL: 692432000576 + FRU_ID: 113-AMDG302180002-0000000000000 + PRODUCT_NAME: AMD Instinct MI308X OAM + MANUFACTURER_NAME: AMD + PARTITION: + COMPUTE_PARTITION: CPX + MEMORY_PARTITION: NPS4 +... +``` + ### Removals @@ -186,7 +278,58 @@ Legend: ### Resolved issues -- N/A +- **Fixed CPX not showing total number of logical GPUs**. +Updates were made to `amdsmi_init()` and `amdsmi_get_gpu_bdf_id(..)`. In order to display all logical devices, we needed a way to provide order to GPU's enumerated. This was done +by adding a partition_id within the BDF optional pci_id bits. + +Due to driver changes in KFD, some devices may report bits [31:28] or [2:0]. With the newly added `amdsmi_get_gpu_bdf_id(..)`, we provided this fallback to properly retreive partition ID. We +plan to eventually remove partition ID from the function portion of the BDF (Bus Device Function). See below for PCI ID description. + + - bits [63:32] = domain + - bits [31:28] or bits [2:0] = partition id + - bits [27:16] = reserved + - bits [15:8] = Bus + - bits [7:3] = Device + - bits [2:0] = Function (partition id maybe in bits [2:0]) <-- Fallback for non SPX modes + +Previously in non-SPX modes (ex. CPX/TPX/DPX/etc) some MI3x ASICs would not report all logical GPU devices within AMD SMI. + +```shell +$ amd-smi monitor -p -t -v +GPU POWER GPU_TEMP MEM_TEMP VRAM_USED VRAM_TOTAL + 0 248 W 55 °C 48 °C 283 MB 196300 MB + 1 247 W 55 °C 48 °C 283 MB 196300 MB + 2 247 W 55 °C 48 °C 283 MB 196300 MB + 3 247 W 55 °C 48 °C 283 MB 196300 MB + 4 221 W 50 °C 42 °C 283 MB 196300 MB + 5 221 W 50 °C 42 °C 283 MB 196300 MB + 6 222 W 50 °C 42 °C 283 MB 196300 MB + 7 221 W 50 °C 42 °C 283 MB 196300 MB + 8 239 W 53 °C 46 °C 283 MB 196300 MB + 9 239 W 53 °C 46 °C 283 MB 196300 MB + 10 239 W 53 °C 46 °C 283 MB 196300 MB + 11 239 W 53 °C 46 °C 283 MB 196300 MB + 12 219 W 51 °C 48 °C 283 MB 196300 MB + 13 219 W 51 °C 48 °C 283 MB 196300 MB + 14 219 W 51 °C 48 °C 283 MB 196300 MB + 15 219 W 51 °C 48 °C 283 MB 196300 MB + 16 222 W 51 °C 47 °C 283 MB 196300 MB + 17 222 W 51 °C 47 °C 283 MB 196300 MB + 18 222 W 51 °C 47 °C 283 MB 196300 MB + 19 222 W 51 °C 48 °C 283 MB 196300 MB + 20 241 W 55 °C 48 °C 283 MB 196300 MB + 21 241 W 55 °C 48 °C 283 MB 196300 MB + 22 241 W 55 °C 48 °C 283 MB 196300 MB + 23 240 W 55 °C 48 °C 283 MB 196300 MB + 24 211 W 51 °C 45 °C 283 MB 196300 MB + 25 211 W 51 °C 45 °C 283 MB 196300 MB + 26 211 W 51 °C 45 °C 283 MB 196300 MB + 27 211 W 51 °C 45 °C 283 MB 196300 MB + 28 227 W 51 °C 49 °C 283 MB 196300 MB + 29 227 W 51 °C 49 °C 283 MB 196300 MB + 30 227 W 51 °C 49 °C 283 MB 196300 MB + 31 227 W 51 °C 49 °C 283 MB 196300 MB +``` ### Known issues @@ -829,7 +972,7 @@ $ /opt/rocm/bin/amd-smi topology -a -t --json Previously our reset could attempting to reset non-amd GPUS- resuting in "Unable to reset non-amd GPU" error. Fix updates CLI to target only AMD ASICs. -- **Fix for `amd-smi metric --pcie` and `amdsmi_get_pcie_info()`Navi32/31 cards**. +- **Fix for `amd-smi static --pcie` and `amdsmi_get_pcie_info()`Navi32/31 cards**. Updated API to include `amdsmi_card_form_factor_t.AMDSMI_CARD_FORM_FACTOR_CEM`. Prevously, this would report "UNKNOWN". This fix provides the correct board `SLOT_TYPE` associated with these ASICs (and other Navi cards). diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index e9c415339d..1a8f5637a2 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -281,16 +281,16 @@ typedef enum { */ typedef enum { AMDSMI_COMPUTE_PARTITION_INVALID = 0, - AMDSMI_COMPUTE_PARTITION_CPX, //!< Core mode (CPX)- Per-chip XCC with - //!< shared memory - AMDSMI_COMPUTE_PARTITION_SPX, //!< Single GPU mode (SPX)- All XCCs work - //!< together with shared memory - AMDSMI_COMPUTE_PARTITION_DPX, //!< Dual GPU mode (DPX)- Half XCCs work - //!< together with shared memory - AMDSMI_COMPUTE_PARTITION_TPX, //!< Triple GPU mode (TPX)- One-third XCCs - //!< work together with shared memory - AMDSMI_COMPUTE_PARTITION_QPX //!< Quad GPU mode (QPX)- Quarter XCCs - //!< work together with shared memory + AMDSMI_COMPUTE_PARTITION_SPX, //!< Single GPU mode (SPX)- All XCCs work + //!< together with shared memory + AMDSMI_COMPUTE_PARTITION_DPX, //!< Dual GPU mode (DPX)- Half XCCs work + //!< together with shared memory + AMDSMI_COMPUTE_PARTITION_TPX, //!< Triple GPU mode (TPX)- One-third XCCs + //!< work together with shared memory + AMDSMI_COMPUTE_PARTITION_QPX, //!< Quad GPU mode (QPX)- Quarter XCCs + //!< work together with shared memory + AMDSMI_COMPUTE_PARTITION_CPX, //!< Core mode (CPX)- Per-chip XCC with + //!< shared memory } amdsmi_compute_partition_type_t; /** @@ -589,7 +589,11 @@ typedef struct { char asic_serial[AMDSMI_NORMAL_STRING_LENGTH]; uint32_t oam_id; //< 0xFFFF if not supported uint32_t num_of_compute_units; //< 0xFFFFFFFF if not supported - uint32_t reserved[17]; + uint64_t target_graphics_version; //< 0xFFFFFFFFFFFFFFFF if not supported + uint64_t kfd_id; //< 0xFFFFFFFFFFFFFFFF if not supported + uint32_t node_id; //< 0xFFFFFFFF if not supported + uint32_t partition_id; //< 0xFFFFFFFF if not supported + uint32_t reserved[11]; } amdsmi_asic_info_t; typedef enum { @@ -2233,16 +2237,18 @@ amdsmi_get_gpu_pci_bandwidth(amdsmi_processor_handle processor_handle, * * The format of @p bdfid will be as follows: * - * BDFID = ((DOMAIN & 0xffffffff) << 32) | ((BUS & 0xff) << 8) | - * ((DEVICE & 0x1f) <<3 ) | (FUNCTION & 0x7) + * BDFID = ((DOMAIN & 0xFFFFFFFF) << 32) | ((Partition & 0xF) << 28) + * | ((BUS & 0xFF) << 8) | ((DEVICE & 0x1F) <<3 ) + * | (FUNCTION & 0x7) * - * | Name | Field | - * ---------- | ------- | - * | Domain | [64:32] | - * | Reserved | [31:16] | - * | Bus | [15: 8] | - * | Device | [ 7: 3] | - * | Function | [ 2: 0] | + * | Name | Field | KFD property KFD -> PCIe ID (uint64_t) + * -------------- | ------- | ---------------- | ---------------------------- | + * | Domain | [63:32] | "domain" | (DOMAIN & 0xFFFFFFFF) << 32 | + * | Partition id | [31:28] | "location id" | (LOCATION & 0xF0000000) | + * | Reserved | [27:16] | "location id" | N/A | + * | Bus | [15: 8] | "location id" | (LOCATION & 0xFF00) | + * | Device | [ 7: 3] | "location id" | (LOCATION & 0xF8) | + * | Function | [ 2: 0] | "location id" | (LOCATION & 0x7) | * * @param[in] processor_handle a processor handle * diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index c91319662a..07188e7902 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -1664,7 +1664,11 @@ def amdsmi_get_gpu_asic_info( "rev_id": _padHexValue(hex(asic_info_struct.rev_id), 2), "asic_serial": asic_info_struct.asic_serial.decode("utf-8"), "oam_id": asic_info_struct.oam_id, - "num_compute_units": asic_info_struct.num_of_compute_units + "num_compute_units": asic_info_struct.num_of_compute_units, + "target_graphics_version": "gfx" + str(asic_info_struct.target_graphics_version), + "kfd_id": asic_info_struct.kfd_id, + "node_id": asic_info_struct.node_id, + "partition_id": asic_info_struct.partition_id } string_values = ["market_name", "vendor_name"] diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index 8d8b0aa739..15fc5f2ac7 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -380,18 +380,18 @@ amdsmi_clk_type_t = ctypes.c_uint32 # enum # values for enumeration 'amdsmi_compute_partition_type_t' amdsmi_compute_partition_type_t__enumvalues = { 0: 'AMDSMI_COMPUTE_PARTITION_INVALID', - 1: 'AMDSMI_COMPUTE_PARTITION_CPX', - 2: 'AMDSMI_COMPUTE_PARTITION_SPX', - 3: 'AMDSMI_COMPUTE_PARTITION_DPX', - 4: 'AMDSMI_COMPUTE_PARTITION_TPX', - 5: 'AMDSMI_COMPUTE_PARTITION_QPX', + 1: 'AMDSMI_COMPUTE_PARTITION_SPX', + 2: 'AMDSMI_COMPUTE_PARTITION_DPX', + 3: 'AMDSMI_COMPUTE_PARTITION_TPX', + 4: 'AMDSMI_COMPUTE_PARTITION_QPX', + 5: 'AMDSMI_COMPUTE_PARTITION_CPX', } AMDSMI_COMPUTE_PARTITION_INVALID = 0 -AMDSMI_COMPUTE_PARTITION_CPX = 1 -AMDSMI_COMPUTE_PARTITION_SPX = 2 -AMDSMI_COMPUTE_PARTITION_DPX = 3 -AMDSMI_COMPUTE_PARTITION_TPX = 4 -AMDSMI_COMPUTE_PARTITION_QPX = 5 +AMDSMI_COMPUTE_PARTITION_SPX = 1 +AMDSMI_COMPUTE_PARTITION_DPX = 2 +AMDSMI_COMPUTE_PARTITION_TPX = 3 +AMDSMI_COMPUTE_PARTITION_QPX = 4 +AMDSMI_COMPUTE_PARTITION_CPX = 5 amdsmi_compute_partition_type_t = ctypes.c_uint32 # enum # values for enumeration 'amdsmi_memory_partition_type_t' @@ -902,7 +902,13 @@ struct_amdsmi_asic_info_t._fields_ = [ ('asic_serial', ctypes.c_char * 32), ('oam_id', ctypes.c_uint32), ('num_of_compute_units', ctypes.c_uint32), + ('PADDING_0', ctypes.c_ubyte * 4), + ('target_graphics_version', ctypes.c_uint64), + ('kfd_id', ctypes.c_uint64), + ('node_id', ctypes.c_uint32), + ('partition_id', ctypes.c_uint32), ('reserved', ctypes.c_uint32 * 17), + ('PADDING_1', ctypes.c_ubyte * 4), ] amdsmi_asic_info_t = struct_amdsmi_asic_info_t diff --git a/pytest/integration_test.py b/pytest/integration_test.py index 71de1f7114..2a3367323c 100755 --- a/pytest/integration_test.py +++ b/pytest/integration_test.py @@ -509,6 +509,14 @@ def walk_through(self): asic_info['asic_serial'])) print(" asic_info['oam_id'] is: {}\n".format( asic_info['oam_id'])) + print(" asic_info['target_graphics_version'] is: {}\n".format( + asic_info['target_graphics_version'])) + print(" asic_info['kfd_id'] is: {}\n".format( + asic_info['kfd_id'])) + print(" asic_info['node_id'] is: {}\n".format( + asic_info['node_id'])) + print(" asic_info['partition_id'] is: {}\n".format( + asic_info['partition_id'])) print("###Test amdsmi_get_power_cap_info \n") power_info = amdsmi.amdsmi_get_power_cap_info(processors[i]) print(" power_info['dpm_cap'] is: {}".format( diff --git a/rocm_smi/example/rocm_smi_example.cc b/rocm_smi/example/rocm_smi_example.cc index fa54728b5e..247bdd2aba 100755 --- a/rocm_smi/example/rocm_smi_example.cc +++ b/rocm_smi/example/rocm_smi_example.cc @@ -53,6 +53,7 @@ #include #include #include +#include #include "rocm_smi/rocm_smi.h" #include "rocm_smi/rocm_smi_utils.h" @@ -730,30 +731,6 @@ template constexpr float convert_mw_to_w(T mw) { return static_cast(mw / 1000.0); } -template -auto print_error_or_value(rsmi_status_t status_code, const T& metric) { - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - if constexpr (std::is_array_v) { - auto idx = uint16_t(0); - auto str_values = std::string(); - const auto num_elems = static_cast(std::end(metric) - std::begin(metric)); - str_values = ("\n\t\t num of values: " + std::to_string(num_elems) + "\n"); - for (const auto& el : metric) { - str_values += "\t\t [" + std::to_string(idx) + "]: " + std::to_string(el) + "\n"; - ++idx; - } - return str_values; - } - else if constexpr ((std::is_same_v) || - (std::is_same_v) || - (std::is_same_v)) { - return std::to_string(metric); - } - } - else { - return ("\n\t\tStatus: [" + std::to_string(status_code) + "] " + "-> " + amd::smi::getRSMIStatusString(status_code)); - } -}; template std::string print_unsigned_int(T value) { @@ -780,6 +757,7 @@ int main() { uint32_t num_monitor_devs = 0; rsmi_gpu_metrics_t gpu_metrics; std::string val_str; + RSMI_POWER_TYPE power_type = RSMI_INVALID_POWER; rsmi_num_monitor_devices(&num_monitor_devs); @@ -791,13 +769,23 @@ int main() { ret = rsmi_dev_revision_get(i, &val_ui16); CHK_RSMI_RET_I(ret) std::cout << "\t**Dev.Rev.ID: 0x" << std::hex << val_ui16 << "\n"; - ret = amd::smi::rsmi_get_gfx_target_version(i , &val_str); - std::cout << "\t**Target Graphics Version: " << val_str << "\n"; - - char pcie_vendor_name[256]; - ret = rsmi_dev_pcie_vendor_name_get(i, pcie_vendor_name, 256); - CHK_RSMI_RET_I(ret) - std::cout << "\t**PCIe vendor name: " << pcie_vendor_name << std::endl; + ret = rsmi_dev_target_graphics_version_get(i, &val_ui64); + std::cout << "\t**Target Graphics Version: " << std::dec + << static_cast(val_ui64) << "\n"; + ret = rsmi_dev_guid_get(i, &val_ui64); + std::cout << "\t**GUID: " << std::dec + << static_cast(val_ui64) << "\n"; + ret = rsmi_dev_node_id_get(i, &val_ui32); + std::cout << "\t**Node ID: " << std::dec + << static_cast(val_ui32) << "\n"; + char vbios_version[256]; + ret = rsmi_dev_vbios_version_get(i, vbios_version, 256); + if (ret == RSMI_STATUS_SUCCESS) { + std::cout << "\t**VBIOS Version: " << vbios_version << "\n"; + } else { + std::cout << "\t**VBIOS Version: " + << amd::smi::getRSMIStatusString(ret, false) << "\n"; + } char current_compute_partition[256]; current_compute_partition[0] = '\0'; @@ -848,8 +836,9 @@ int main() { // std::cout << "\n"; print_test_header("GPU METRICS: Using static struct (Backwards Compatibility) ", i); - print_function_header_with_rsmi_ret(ret, "rsmi_dev_gpu_metrics_info_get(" + std::to_string(i) + ", &gpu_metrics)"); - rsmi_dev_gpu_metrics_info_get(i, &gpu_metrics); + ret = rsmi_dev_gpu_metrics_info_get(i, &gpu_metrics); + print_function_header_with_rsmi_ret(ret, "rsmi_dev_gpu_metrics_info_get(" + + std::to_string(i) + ", &gpu_metrics)"); std::cout << "\t**.common_header.format_revision : " << print_unsigned_int(gpu_metrics.common_header.format_revision) << "\n"; @@ -988,173 +977,58 @@ int main() { for (const auto& dclk : gpu_metrics.current_dclk0s) { std::cout << "\t -> " << std::dec << dclk << "\n"; } - std::cout << " ** Note: Values MAX'ed out (UINTX MAX are unsupported for the version in question) ** " << "\n"; + + std::cout << "\n"; + std::cout << "\t ** -> Checking metrics with constant changes ** " << "\n"; + constexpr uint16_t kMAX_ITER_TEST = 10; + rsmi_gpu_metrics_t gpu_metrics_check; + for (auto idx = uint16_t(1); idx <= kMAX_ITER_TEST; ++idx) { + rsmi_dev_gpu_metrics_info_get(i, &gpu_metrics_check); + std::cout << "\t\t -> firmware_timestamp [" << idx + << "/" << kMAX_ITER_TEST << "]: " << gpu_metrics_check.firmware_timestamp << "\n"; + } + + std::cout << "\n"; + for (auto idx = uint16_t(1); idx <= kMAX_ITER_TEST; ++idx) { + rsmi_dev_gpu_metrics_info_get(i, &gpu_metrics_check); + std::cout << "\t\t -> system_clock_counter [" << idx + << "/" << kMAX_ITER_TEST << "]: " << gpu_metrics_check.system_clock_counter << "\n"; + } + + std::cout << "\n\n"; + std::cout << " ** Note: Values MAX'ed out " + "(UINTX MAX are unsupported for the version in question) ** " << "\n"; + std::cout << "\n\n"; print_test_header("GPU METRICS: Using direct APIs (newer)", i); metrics_table_header_t header_values; - GPUMetricTempHbm_t hbm_values; - GPUMetricVcnActivity_t vcn_values; - GPUMetricXgmiReadDataAcc_t xgmi_read_values; - GPUMetricXgmiWriteDataAcc_t xgmi_write_values; - GPUMetricCurrGfxClk_t curr_gfxclk_values; - GPUMetricCurrSocClk_t curr_socclk_values; - GPUMetricCurrVClk0_t curr_vclk0_values; - GPUMetricCurrDClk0_t curr_dclk0_values; ret = rsmi_dev_metrics_header_info_get(i, &header_values); std::cout << "\t[Metrics Header]" << "\n"; - std::cout << "\t -> format_revision : " << print_unsigned_int(header_values.format_revision) << "\n"; - std::cout << "\t -> content_revision : " << print_unsigned_int(header_values.content_revision) << "\n"; + std::cout << "\t -> format_revision : " + << print_unsigned_int(header_values.format_revision) << "\n"; + std::cout << "\t -> content_revision : " + << print_unsigned_int(header_values.content_revision) << "\n"; std::cout << "\t--------------------" << "\n"; - std::cout << "\n"; - std::cout << "\t[Temperature]" << "\n"; - ret = rsmi_dev_metrics_temp_edge_get(i, &val_ui16); - std::cout << "\t -> temp_edge(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_temp_hotspot_get(i, &val_ui16); - std::cout << "\t -> temp_hotspot(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_temp_mem_get(i, &val_ui16); - std::cout << "\t -> temp_mem(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_temp_vrgfx_get(i, &val_ui16); - std::cout << "\t -> temp_vrgfx(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_temp_vrsoc_get(i, &val_ui16); - std::cout << "\t -> temp_vrsoc(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_temp_vrmem_get(i, &val_ui16); - std::cout << "\t -> temp_vrmem(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_temp_hbm_get(i, &hbm_values); - std::cout << "\t -> temp_hbm(): " << print_error_or_value(ret, hbm_values) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Power/Energy]" << "\n"; - ret = rsmi_dev_metrics_curr_socket_power_get(i, &val_ui16); - std::cout << "\t -> current_socket_power(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_energy_acc_get(i, &val_ui64); - std::cout << "\t -> energy_accum(): " << print_error_or_value(ret, val_ui64) << "\n"; - ret = rsmi_dev_metrics_avg_socket_power_get(i, &val_ui16); - std::cout << "\t -> average_socket_power(): " << print_error_or_value(ret, val_ui16) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Utilization]" << "\n"; - ret = rsmi_dev_metrics_avg_gfx_activity_get(i, &val_ui16); - std::cout << "\t -> average_gfx_activity(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_avg_umc_activity_get(i, &val_ui16); - std::cout << "\t -> average_umc_activity(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_avg_mm_activity_get(i, &val_ui16); - std::cout << "\t -> average_mm_activity(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_vcn_activity_get(i, &vcn_values); - std::cout << "\t -> vcn_activity(): " << print_error_or_value(ret, vcn_values) << "\n"; - ret = rsmi_dev_metrics_mem_activity_acc_get(i, &val_ui32); - std::cout << "\t -> mem_activity_accum(): " << print_error_or_value(ret, val_ui32) << "\n"; - ret = rsmi_dev_metrics_gfx_activity_acc_get(i, &val_ui32); - std::cout << "\t -> gfx_activity_accum(): " << print_error_or_value(ret, val_ui32) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Average Clock]" << "\n"; - ret = rsmi_dev_metrics_avg_gfx_clock_frequency_get(i, &val_ui16); - std::cout << "\t -> average_gfx_clock_frequency(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_avg_soc_clock_frequency_get(i, &val_ui16); - std::cout << "\t -> average_soc_clock_frequency(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_avg_uclock_frequency_get(i, &val_ui16); - std::cout << "\t -> average_uclock_frequency(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_avg_vclock0_frequency_get(i, &val_ui16); - std::cout << "\t -> average_vclock0_frequency(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_avg_dclock0_frequency_get(i, &val_ui16); - std::cout << "\t -> average_dclock0_frequency(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_avg_vclock1_frequency_get(i, &val_ui16); - std::cout << "\t -> average_vclock1_frequency(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_avg_dclock1_frequency_get(i, &val_ui16); - std::cout << "\t -> average_dclock1_frequency(): " << print_error_or_value(ret, val_ui16) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Current Clock]" << "\n"; - ret = rsmi_dev_metrics_curr_vclk1_get(i, &val_ui16); - std::cout << "\t -> current_vclock1(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_curr_dclk1_get(i, &val_ui16); - std::cout << "\t -> current_dclock1(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_curr_uclk_get(i, &val_ui16); - std::cout << "\t -> current_uclock(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_curr_dclk0_get(i, &curr_dclk0_values); - std::cout << "\t -> current_dclk0(): " << print_error_or_value(ret, curr_dclk0_values) << "\n"; - ret = rsmi_dev_metrics_curr_gfxclk_get(i, &curr_gfxclk_values); - std::cout << "\t -> current_gfxclk(): " << print_error_or_value(ret, curr_gfxclk_values) << "\n"; - ret = rsmi_dev_metrics_curr_socclk_get(i, &curr_socclk_values); - std::cout << "\t -> current_soc_clock(): " << print_error_or_value(ret, curr_socclk_values) << "\n"; - ret = rsmi_dev_metrics_curr_vclk0_get(i, &curr_vclk0_values); - std::cout << "\t -> current_vclk0(): " << print_error_or_value(ret, curr_vclk0_values) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Throttle]" << "\n"; - ret = rsmi_dev_metrics_indep_throttle_status_get(i, &val_ui64); - std::cout << "\t -> indep_throttle_status(): " << print_error_or_value(ret, val_ui64) << "\n"; - ret = rsmi_dev_metrics_throttle_status_get(i, &val_ui32); - std::cout << "\t -> throttle_status(): " << print_error_or_value(ret, val_ui32) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Gfx Clock Lock]" << "\n"; - ret = rsmi_dev_metrics_gfxclk_lock_status_get(i, &val_ui32); - std::cout << "\t -> gfxclk_lock_status(): " << print_error_or_value(ret, val_ui32) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Current Fan Speed]" << "\n"; - ret = rsmi_dev_metrics_curr_fan_speed_get(i, &val_ui16); - std::cout << "\t -> current_fan_speed(): " << print_error_or_value(ret, val_ui16) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Link/Bandwidth/Speed]" << "\n"; - ret = rsmi_dev_metrics_pcie_link_width_get(i, &val_ui16); - std::cout << "\t -> pcie_link_width(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_pcie_link_speed_get(i, &val_ui16); - std::cout << "\t -> pcie_link_speed(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_pcie_bandwidth_acc_get(i, &val_ui64); - std::cout << "\t -> pcie_bandwidth_accum(): " << print_error_or_value(ret, val_ui64) << "\n"; - ret = rsmi_dev_metrics_pcie_bandwidth_inst_get(i, &val_ui64); - std::cout << "\t -> pcie_bandwidth_inst(): " << print_error_or_value(ret, val_ui64) << "\n"; - ret = rsmi_dev_metrics_pcie_l0_recov_count_acc_get(i, &val_ui64); - std::cout << "\t -> pcie_l0_recov_count_accum(): " << print_error_or_value(ret, val_ui64) << "\n"; - ret = rsmi_dev_metrics_pcie_replay_count_acc_get(i, &val_ui64); - std::cout << "\t -> pcie_replay_count_accum(): " << print_error_or_value(ret, val_ui64) << "\n"; - ret = rsmi_dev_metrics_pcie_replay_rover_count_acc_get(i, &val_ui64); - std::cout << "\t -> pcie_replay_rollover_count_accum(): " << print_error_or_value(ret, val_ui64) << "\n"; - ret = rsmi_dev_metrics_xgmi_link_width_get(i, &val_ui16); - std::cout << "\t -> xgmi_link_width(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_xgmi_link_speed_get(i, &val_ui16); - std::cout << "\t -> xgmi_link_speed(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_xgmi_read_data_get(i, &xgmi_read_values); - std::cout << "\t -> xgmi_read_data(): " << print_error_or_value(ret, xgmi_read_values) << "\n"; - ret = rsmi_dev_metrics_xgmi_write_data_get(i, &xgmi_write_values); - std::cout << "\t -> xgmi_write_data(): " << print_error_or_value(ret, xgmi_write_values) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Voltage]" << "\n"; - ret = rsmi_dev_metrics_volt_soc_get(i, &val_ui16); - std::cout << "\t -> voltage_soc(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_volt_gfx_get(i, &val_ui16); - std::cout << "\t -> voltage_gfx(): " << print_error_or_value(ret, val_ui16) << "\n"; - ret = rsmi_dev_metrics_volt_mem_get(i, &val_ui16); - std::cout << "\t -> voltage_mem(): " << print_error_or_value(ret, val_ui16) << "\n"; - - std::cout << "\n"; - std::cout << "\t[Timestamp]" << "\n"; - ret = rsmi_dev_metrics_system_clock_counter_get(i, &val_ui64); - std::cout << "\t -> system_clock_counter(): " << print_error_or_value(ret, val_ui64) << "\n"; - ret = rsmi_dev_metrics_firmware_timestamp_get(i, &val_ui64); - std::cout << "\t -> firmware_timestamp(): " << print_error_or_value(ret, val_ui64) << "\n"; - std::cout << "\n"; std::cout << "\t[XCD CounterVoltage]" << "\n"; ret = rsmi_dev_metrics_xcd_counter_get(i, &val_ui16); - std::cout << "\t -> xcd_counter(): " << print_error_or_value(ret, val_ui16) << "\n"; + std::cout << "\t -> xcd_counter(): " << val_ui16; std::cout << "\n\n"; - ret = rsmi_dev_perf_level_get(i, &pfl); CHK_AND_PRINT_RSMI_ERR_RET(ret) std::cout << "\t**Performance Level:" << perf_level_string(pfl) << "\n"; ret = rsmi_dev_overdrive_level_get(i, &val_ui32); - CHK_AND_PRINT_RSMI_ERR_RET(ret) - std::cout << "\t**OverDrive Level:" << val_ui32 << "\n"; + std::cout << "\t**OverDrive Level: "; + if (ret == RSMI_STATUS_SUCCESS) { + std::cout << val_ui32 << "\n"; + } else { + CHK_RSMI_NOT_SUPPORTED_OR_UNEXPECTED_DATA_RET(ret) + } print_test_header("GPU Clocks", i); for (int clkType = static_cast(RSMI_CLK_TYPE_SYS); @@ -1271,9 +1145,6 @@ int main() { } for (uint32_t i = 0; i < num_monitor_devs; ++i) { - ret = test_set_overdrive(i); - CHK_AND_PRINT_RSMI_ERR_RET(ret) - ret = test_set_perf_level(i); CHK_AND_PRINT_RSMI_ERR_RET(ret) @@ -1294,6 +1165,9 @@ int main() { ret = test_set_memory_partition(i); CHK_AND_PRINT_RSMI_ERR_RET(ret) + + ret = test_set_overdrive(i); + CHK_RSMI_NOT_SUPPORTED_RET(ret) } return 0; diff --git a/rocm_smi/include/rocm_smi/rocm_smi.h b/rocm_smi/include/rocm_smi/rocm_smi.h index 47edd8cc09..e8109a03a7 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi.h +++ b/rocm_smi/include/rocm_smi/rocm_smi.h @@ -361,7 +361,6 @@ typedef enum { RSMI_EVT_NOTIF_NONE = KFD_SMI_EVENT_NONE, //!< Unused RSMI_EVT_NOTIF_VMFAULT = KFD_SMI_EVENT_VMFAULT, //!< VM page fault RSMI_EVT_NOTIF_FIRST = RSMI_EVT_NOTIF_VMFAULT, - RSMI_EVT_NOTIF_THERMAL_THROTTLE = KFD_SMI_EVENT_THERMAL_THROTTLE, RSMI_EVT_NOTIF_GPU_PRE_RESET = KFD_SMI_EVENT_GPU_PRE_RESET, RSMI_EVT_NOTIF_GPU_POST_RESET = KFD_SMI_EVENT_GPU_POST_RESET, @@ -415,8 +414,6 @@ typedef rsmi_clk_type_t rsmi_clk_type; */ typedef enum { RSMI_COMPUTE_PARTITION_INVALID = 0, - RSMI_COMPUTE_PARTITION_CPX, //!< Core mode (CPX)- Per-chip XCC with - //!< shared memory RSMI_COMPUTE_PARTITION_SPX, //!< Single GPU mode (SPX)- All XCCs work //!< together with shared memory RSMI_COMPUTE_PARTITION_DPX, //!< Dual GPU mode (DPX)- Half XCCs work @@ -425,6 +422,8 @@ typedef enum { //!< work together with shared memory RSMI_COMPUTE_PARTITION_QPX, //!< Quad GPU mode (QPX)- Quarter XCCs //!< work together with shared memory + RSMI_COMPUTE_PARTITION_CPX //!< Core mode (CPX)- Per-chip XCC with + //!< shared memory } rsmi_compute_partition_type_t; /// \cond Ignore in docs. typedef rsmi_compute_partition_type_t rsmi_compute_partition_type; @@ -797,7 +796,6 @@ typedef struct { uint16_t fine_value_count; } rsmi_utilization_counter_t; - /** * @brief Reserved Memory Page Record */ @@ -905,7 +903,7 @@ typedef rsmi_pcie_bandwidth_t rsmi_pcie_bandwidth; */ typedef struct { /* Utilization */ - uint16_t average_gfx_activity; + uint16_t average_gfx_activity; //!< Average graphics activity uint16_t average_umc_activity; //!< memory controller uint16_t average_mm_activity; //!< UVD or VCN } rsmi_activity_metric_counter_t; @@ -1038,10 +1036,6 @@ struct metrics_table_header_t { typedef struct metrics_table_header_t metrics_table_header_t; /// \endcond -/** - * @brief The following structure holds the gpu metrics values for a device. - */ - /** * @brief Unit conversion factor for HBM temperatures */ @@ -1098,7 +1092,7 @@ typedef struct { */ struct metrics_table_header_t common_header; - // Temperature + // Temperature (C) uint16_t temperature_edge; uint16_t temperature_hotspot; uint16_t temperature_mem; @@ -1106,19 +1100,19 @@ typedef struct { uint16_t temperature_vrsoc; uint16_t temperature_vrmem; - // Utilization + // Utilization (%) uint16_t average_gfx_activity; uint16_t average_umc_activity; // memory controller uint16_t average_mm_activity; // UVD or VCN - // Power/Energy + // Power (W) /Energy (15.259uJ per 1ns) uint16_t average_socket_power; uint64_t energy_accumulator; // v1 mod. (32->64) // Driver attached timestamp (in ns) uint64_t system_clock_counter; // v1 mod. (moved from top of struct) - // Average clocks + // Average clocks (MHz) uint16_t average_gfxclk_frequency; uint16_t average_socclk_frequency; uint16_t average_uclk_frequency; @@ -1127,7 +1121,7 @@ typedef struct { uint16_t average_vclk1_frequency; uint16_t average_dclk1_frequency; - // Current clocks + // Current clocks (MHz) uint16_t current_gfxclk; uint16_t current_socclk; uint16_t current_uclk; @@ -1139,10 +1133,10 @@ typedef struct { // Throttle status uint32_t throttle_status; - // Fans + // Fans (RPM) uint16_t current_fan_speed; - // Link width/speed + // Link width (number of lanes) /speed (0.1 GT/s) uint16_t pcie_link_width; // v1 mod.(8->16) uint16_t pcie_link_speed; // in 0.1 GT/s; v1 mod. (8->16) @@ -1158,7 +1152,7 @@ typedef struct { /* * v1.2 additions */ - // PMFW attached timestamp (10ns resolution) + // PMFW attached timestamp (10ns resolution) uint64_t firmware_timestamp; @@ -1181,19 +1175,19 @@ typedef struct { uint16_t current_socket_power; // Utilization (%) - uint16_t vcn_activity[RSMI_MAX_NUM_VCNS]; // VCN instances activity percent (encode/decode) + uint16_t vcn_activity[RSMI_MAX_NUM_VCNS]; // VCN instances activity percent (encode/decode) // Clock Lock Status. Each bit corresponds to clock instance uint32_t gfxclk_lock_status; - // XGMI bus width and bitrate (in Gbps) + // XGMI bus width and bitrate (in GB/s) uint16_t xgmi_link_width; uint16_t xgmi_link_speed; // PCIE accumulated bandwidth (GB/sec) uint64_t pcie_bandwidth_acc; - // PCIE instantaneous bandwidth (GB/sec) + // PCIE instantaneous bandwidth (GB/sec) uint64_t pcie_bandwidth_inst; // PCIE L0 to recovery state transition accumulated count @@ -1447,7 +1441,7 @@ rsmi_status_t rsmi_dev_revision_get(uint32_t dv_ind, uint16_t *revision); * @retval ::RSMI_STATUS_INVALID_ARGS the provided arguments are not valid * */ -rsmi_status_t rsmi_dev_sku_get(uint32_t dv_ind, char *sku); +rsmi_status_t rsmi_dev_sku_get(uint32_t dv_ind, uint16_t *sku); /** * @brief Get the device vendor id associated with the device with provided @@ -1830,13 +1824,62 @@ rsmi_status_t rsmi_dev_unique_id_get(uint32_t dv_ind, uint64_t *id); * * @param[in] dv_ind a device index * - * @param[inout] revision a pointer to uint32_t to which the XGMI physical id + * @param[inout] id a pointer to uint32_t to which the XGMI physical id * will be written * * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. * */ -rsmi_status_t rsmi_dev_oam_id_get(uint32_t dv_ind, uint16_t *id); +rsmi_status_t rsmi_dev_xgmi_physical_id_get(uint32_t dv_ind, uint16_t *id); + +/** + * @brief Get the GUID, also known as the GPU device id, + * associated with the provided device index indicated by KFD. + * + * @details Given a device index @p dv_ind and a pointer to a uint64_t + * @p guid, this function will write the KFD GPU id value to the + * uint64_t pointed to by @p guid. + * + * @param[in] dv_ind a device index + * + * @param[inout] guid a pointer to uint64_t to which the KFD gpu id will be + * written. If the @p guid parameter is nullptr, this function will return + * ::RSMI_STATUS_INVALID_ARGS. If the GPU ID is not supported with + * the device index queried, gpu_id will return MAX UINT64 value an + * arguments and ::RSMI_STATUS_NOT_SUPPORTED as a response. + * + * @retval ::RSMI_STATUS_SUCCESS call was successful + * @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not + * support this function with the given arguments + * @retval ::RSMI_STATUS_INVALID_ARGS the provided arguments are not valid + * + */ +rsmi_status_t rsmi_dev_guid_get(uint32_t dv_ind, uint64_t *guid); + +/** + * @brief Get the node id associated with the provided device index + * indicated by KFD. + * + * @details Given a device index @p dv_ind and a pointer to a uint32_t + * @p node_id, this function will write the KFD node id value to the + * uint32_t pointed to by @p node_id. + * + * @param[in] dv_ind a device index + * + * @param[inout] node_id a pointer to uint64_t to which the KFD gpu id will be + * written. If the @p node_id parameter is nullptr, this function will return + * ::RSMI_STATUS_INVALID_ARGS. If @p node_id is not supported with + * the device index queried, @p node_id will return MAX UINT64 value as an + * argument and ::RSMI_STATUS_NOT_SUPPORTED as a response. + * + * @retval ::RSMI_STATUS_SUCCESS call was successful + * @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not + * support this function with the given arguments + * @retval ::RSMI_STATUS_INVALID_ARGS the provided arguments are not valid + * + */ +rsmi_status_t rsmi_dev_node_id_get(uint32_t dv_ind, uint32_t *node_id); + /** @} */ // end of IDQuer @@ -1877,16 +1920,18 @@ rsmi_dev_pci_bandwidth_get(uint32_t dv_ind, rsmi_pcie_bandwidth_t *bandwidth); * * The format of @p bdfid will be as follows: * - * BDFID = ((DOMAIN & 0xffffffff) << 32) | ((BUS & 0xff) << 8) | - * ((DEVICE & 0x1f) <<3 ) | (FUNCTION & 0x7) + * BDFID = ((DOMAIN & 0xFFFFFFFF) << 32) | ((Partition & 0xF) << 28) + * | ((BUS & 0xFF) << 8) | ((DEVICE & 0x1F) <<3 ) + * | (FUNCTION & 0x7) * - * | Name | Field | - * ---------- | ------- | - * | Domain | [64:32] | - * | Reserved | [31:16] | - * | Bus | [15: 8] | - * | Device | [ 7: 3] | - * | Function | [ 2: 0] | + * | Name | Field | KFD property KFD -> PCIe ID (uint64_t) + * -------------- | ------- | ---------------- | ---------------------------- | + * | Domain | [63:32] | "domain" | (DOMAIN & 0xFFFFFFFF) << 32 | + * | Partition id | [31:28] | "location id" | (LOCATION & 0xF0000000) | + * | Reserved | [27:16] | "location id" | N/A | + * | Bus | [15: 8] | "location id" | (LOCATION & 0xFF00) | + * | Device | [ 7: 3] | "location id" | (LOCATION & 0xF8) | + * | Function | [ 2: 0] | "location id" | (LOCATION & 0x7) | * * @param[in] dv_ind a device index * @@ -2033,6 +2078,11 @@ rsmi_status_t rsmi_dev_pci_bandwidth_set(uint32_t dv_ind, uint64_t bw_bitmask); * @p power, this function will write the current average power consumption * (in microwatts) to the uint64_t pointed to by @p power. * + * @deprecated ::rsmi_dev_power_get() is preferred due to providing + * backwards compatibility, which looks at both average and current power + * values. Whereas ::rsmi_dev_power_ave_get only looks for average power + * consumption. Newer ASICs will support current power only. + * * @param[in] dv_ind a device index * * @param[in] sensor_ind a 0-based sensor index. Normally, this will be 0. @@ -2101,7 +2151,10 @@ rsmi_dev_current_socket_power_get(uint32_t dv_ind, uint64_t *socket_power); * @param[inout] type a pointer to RSMI_POWER_TYPE object. Returns the type * of power retrieved from the device. Current power is ::RSMI_CURRENT_POWER * and average power is ::RSMI_AVERAGE_POWER. If an error occurs, - * returns an invalid power type ::RSMI_INVALID_POWER. + * returns an invalid power type ::RSMI_INVALID_POWER - example device + * neither supports average power or current power. + * If this parameter is nullptr, this function will return + * ::RSMI_STATUS_INVALID_ARGS. * * @retval ::RSMI_STATUS_SUCCESS call was successful * @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not @@ -3079,7 +3132,6 @@ rsmi_status_t rsmi_dev_clk_extremum_set(uint32_t dv_ind, rsmi_freq_ind_t level, uint64_t clkvalue, rsmi_clk_type_t clkType); - /** * @brief This function sets the clock frequency information * @@ -3625,6 +3677,29 @@ rsmi_status_t rsmi_dev_firmware_version_get(uint32_t dv_ind, rsmi_fw_block_t block, uint64_t *fw_version); +/** + * @brief Get the target graphics version for a GPU device + * + * @details Given a device ID @p dv_ind and a uint64_t pointer + * @p gfx_version, this function will write the graphics version. + * + * @param[in] dv_ind a device index + * + * @param[inout] gfx_version The device graphics version number indicated by + * KFD. If this parameter is nullptr, this function will return + * ::RSMI_STATUS_INVALID_ARGS. If device does not support this value, + * will return ::RSMI_STATUS_NOT_SUPPORTED and a maximum UINT64 value as + * @p gfx_version. + * + * @retval ::RSMI_STATUS_SUCCESS call was successful + * @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not + * support this function with the given arguments + * @retval ::RSMI_STATUS_INVALID_ARGS the provided arguments are not valid + * + */ +rsmi_status_t rsmi_dev_target_graphics_version_get(uint32_t dv_ind, + uint64_t *gfx_version); + /** @} */ // end of VersQuer /*****************************************************************************/ @@ -4456,6 +4531,30 @@ rsmi_dev_compute_partition_set(uint32_t dv_ind, */ rsmi_status_t rsmi_dev_compute_partition_reset(uint32_t dv_ind); +/** + * @brief Retrieves the partition_id for a desired device + * + * @details + * Given a device index @p dv_ind and a uint32_t pointer @p partition_id , + * this function will attempt to obtain the device's partition ID. + * Upon successful retreival, the obtained device's partition will be stored + * in the passed @p partition_id uint32_t variable. If device does + * not support partitions or is in SPX, a @p partition_id ID of 0 shall + * be returned. + * + * @param[in] dv_ind a device index + * + * @param[inout] partition_id a uint32_t variable, + * which the device's partition_id will be written to. + * + * @retval ::RSMI_STATUS_SUCCESS call was successful + * @retval ::RSMI_STATUS_INVALID_ARGS the provided arguments are not valid + * @retval ::RSMI_STATUS_NOT_SUPPORTED installed software or hardware does not + * support this function + * + */ +rsmi_status_t rsmi_dev_partition_id_get(uint32_t dv_ind, uint32_t *partition_id); + /** @} */ // end of ComputePartition /*****************************************************************************/ @@ -4897,995 +4996,6 @@ rsmi_status_t rsmi_event_notification_stop(uint32_t dv_ind); * @{ */ -/** - * Metric multi-valued counter types - */ -typedef uint16_t GPUMetricTempHbm_t[RSMI_NUM_HBM_INSTANCES]; -typedef uint16_t GPUMetricVcnActivity_t[RSMI_MAX_NUM_VCNS]; -typedef uint16_t GPUMetricJpegActivity_t[RSMI_MAX_NUM_JPEG_ENGS]; -typedef uint64_t GPUMetricXgmiReadDataAcc_t[RSMI_MAX_NUM_XGMI_LINKS]; -typedef uint64_t GPUMetricXgmiWriteDataAcc_t[RSMI_MAX_NUM_XGMI_LINKS]; -typedef uint16_t GPUMetricCurrGfxClk_t[RSMI_MAX_NUM_GFX_CLKS]; -typedef uint16_t GPUMetricCurrSocClk_t[RSMI_MAX_NUM_CLKS]; -typedef uint16_t GPUMetricCurrVClk0_t[RSMI_MAX_NUM_CLKS]; -typedef uint16_t GPUMetricCurrDClk0_t[RSMI_MAX_NUM_CLKS]; - - -/****** - * Metric single-valued counter types - */ - -/** - * @brief Get the 'temp_hotspot' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'temp_hotspot' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] hotspot_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_temp_hotspot_get(uint32_t dv_ind, uint16_t* hotspot_value); - -/** - * @brief Get the 'temp_mem' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'temp_mem' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] mem_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_temp_mem_get(uint32_t dv_ind, uint16_t* mem_value); - -/** - * @brief Get the 'temp_vrsoc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'temp_vrsoc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] vrsoc_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_temp_vrsoc_get(uint32_t dv_ind, uint16_t* vrsoc_value); - -/** - * @brief Get the 'curr_socket_power' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'socket_power' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] socket_power_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_socket_power_get(uint32_t dv_ind, uint16_t* socket_power_value); - -/** - * @brief Get the 'avg_gfx_activity' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'gfx_activity' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] gfx_activity_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_gfx_activity_get(uint32_t dv_ind, uint16_t* gfx_activity_value); - -/** - * @brief Get the 'avg_umc_activity' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'umc_activity' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] umc_activity_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_umc_activity_get(uint32_t dv_ind, uint16_t* umc_activity_value); - -/** - * @brief Get the 'energy_acc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'energy_acc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] energy_acc_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_energy_acc_get(uint32_t dv_ind, uint64_t* energy_acc_value); - -/** - * @brief Get the 'system_clock_counter' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'system_clock_counter' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] system_clock_counter_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_system_clock_counter_get(uint32_t dv_ind, uint64_t* system_clock_counter_value); - -/** - * @brief Get the 'firmware_timestamp' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'firmware_timestamp' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] firmware_timestamp_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_firmware_timestamp_get(uint32_t dv_ind, uint64_t* firmware_timestamp_value); - -/** - * @brief Get the 'throttle_status' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint32_t in which - * the 'throttle_status' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] throttle_status_value a pointer to uint32_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_throttle_status_get(uint32_t dv_ind, uint32_t* throttle_status_value); - -/** - * @brief Get the 'pcie_link_width' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'pcie_link_width' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] pcie_link_width_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_pcie_link_width_get(uint32_t dv_ind, uint16_t* pcie_link_width_value); - -/** - * @brief Get the 'pcie_link_speed' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'pcie_link_speed' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] pcie_link_speed_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_pcie_link_speed_get(uint32_t dv_ind, uint16_t* pcie_link_speed_value); - -/** - * @brief Get the 'xgmi_link_width' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'xgmi_link_width' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] xgmi_link_width_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_xgmi_link_width_get(uint32_t dv_ind, uint16_t* xgmi_link_width_value); - -/** - * @brief Get the 'xgmi_link_speed' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'xgmi_link_speed' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] xgmi_link_speed_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_xgmi_link_speed_get(uint32_t dv_ind, uint16_t* xgmi_link_speed_value); - -/** - * @brief Get the 'gfxclk_lock_status' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint32_t in which - * the 'gfxclk_lock_status' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] gfxclk_lock_status_value a pointer to uint32_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_gfxclk_lock_status_get(uint32_t dv_ind, uint32_t* gfxclk_lock_status_value); - -/** - * @brief Get the 'gfx_activity_acc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint32_t in which - * the 'gfx_activity_acc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] gfx_activity_acc_value a pointer to uint32_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_gfx_activity_acc_get(uint32_t dv_ind, uint32_t* gfx_activity_acc_value); - -/** - * @brief Get the 'mem_activity_acc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint32_t in which - * the 'mem_activity_acc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] mem_activity_acc_value a pointer to uint32_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_mem_activity_acc_get(uint32_t dv_ind, uint32_t* mem_activity_acc_value); - -/** - * @brief Get the 'pcie_bandwidth_acc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'pcie_bandwidth_acc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] pcie_bandwidth_acc_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_pcie_bandwidth_acc_get(uint32_t dv_ind, uint64_t* pcie_bandwidth_acc_value); - -/** - * @brief Get the 'pcie_bandwidth_inst' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'pcie_bandwidth_inst' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] pcie_bandwidth_inst_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_pcie_bandwidth_inst_get(uint32_t dv_ind, uint64_t* pcie_bandwidth_inst_value); - -/** - * @brief Get the 'pcie_l0_recov_count_acc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'pcie_l0_recov_count_acc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] pcie_count_acc_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_pcie_l0_recov_count_acc_get(uint32_t dv_ind, uint64_t* pcie_count_acc_value); - -/** - * @brief Get the 'pcie_replay_count_acc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'pcie_replay_count_acc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] pcie_count_acc_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_pcie_replay_count_acc_get(uint32_t dv_ind, uint64_t* pcie_count_acc_value); - -/** - * @brief Get the 'pcie_replay_rover_count_acc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'pcie_replay_rover_count_acc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] pcie_count_acc_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_pcie_replay_rover_count_acc_get(uint32_t dv_ind, uint64_t* pcie_count_acc_value); - -/** - * @brief Get the 'curr_uclk' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'curr_uclk' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] uclk_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_uclk_get(uint32_t dv_ind, uint16_t* uclk_value); - - -/****** - * Metric multi-valued counter types - */ - -/** - * @brief Get the 'temp_hbm' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'temp_hbm' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] temp_hbm_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - This is a multi-valued counter holding a 4 (RSMI_NUM_HBM_INSTANCES) - * element array (GPUMetricTempHbm_t) - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_temp_hbm_get(uint32_t dv_ind, GPUMetricTempHbm_t* temp_hbm_value); - -/** - * @brief Get the 'vcn_activity' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'vcn_activity' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] vcn_activity_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - This is a multi-valued counter holding a 4 (RSMI_MAX_NUM_VCNS) - * element array (GPUMetricVcnActivity_t) - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_vcn_activity_get(uint32_t dv_ind, GPUMetricVcnActivity_t* vcn_activity_value); - -/** - * @brief Get the 'xgmi_read_data' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'xgmi_read_data' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] xgmi_read_data_acc_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - This is a multi-valued counter holding an 8 (RSMI_MAX_NUM_XGMI_LINKS) - * element array (GPUMetricXgmiReadDataAcc_t) - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_xgmi_read_data_get(uint32_t dv_ind, GPUMetricXgmiReadDataAcc_t* xgmi_read_data_acc_value); - -/** - * @brief Get the 'xgmi_write_data' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'xgmi_write_data' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] xgmi_write_data_acc_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - This is a multi-valued counter holding an 8 (RSMI_MAX_NUM_XGMI_LINKS) - * element array (GPUMetricXgmiWriteDataAcc_t) - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_xgmi_write_data_get(uint32_t dv_ind, GPUMetricXgmiWriteDataAcc_t* xgmi_write_data_acc_value); - -/** - * @brief Get the 'curr_gfxclk' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'curr_gfxclk' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] current_gfxclk_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - This is a multi-valued counter holding an 8 (RSMI_MAX_NUM_GFX_CLKS) - * element array (GPUMetricCurrGfxClk_t) - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_gfxclk_get(uint32_t dv_ind, GPUMetricCurrGfxClk_t* current_gfxclk_value); - -/** - * @brief Get the 'curr_socclk' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'curr_socclk' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] current_socclk_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - This is a multi-valued counter holding a 4 (RSMI_MAX_NUM_CLKS) - * element array (GPUMetricCurrSocClk_t) - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_socclk_get(uint32_t dv_ind, GPUMetricCurrSocClk_t* current_socclk_value); - -/** - * @brief Get the 'curr_vclk0' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'curr_vclk0' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] current_vclk_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - This is a multi-valued counter holding a 4 (RSMI_MAX_NUM_CLKS) - * element array (GPUMetricCurrVClk0_t) - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_vclk0_get(uint32_t dv_ind, GPUMetricCurrVClk0_t* current_vclk_value); - -/** - * @brief Get the 'curr_dclk0' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'curr_dclk0' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] current_dclk_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - This is a multi-valued counter holding a 4 (RSMI_MAX_NUM_CLKS) - * element array (GPUMetricCurrDClk0_t) - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_dclk0_get(uint32_t dv_ind, GPUMetricCurrDClk0_t* current_dclk_value); - -/** - * @brief Get the 'temp_edge' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'temp_edge' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] edge_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_temp_edge_get(uint32_t dv_ind, uint16_t* edge_value); - -/** - * @brief Get the 'temp_vrgfx' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'temp_vrgfx' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] vrgfx_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_temp_vrgfx_get(uint32_t dv_ind, uint16_t* vrgfx_value); - -/** - * @brief Get the 'temp_vrmem' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'temp_vrmem' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] vrmem_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_temp_vrmem_get(uint32_t dv_ind, uint16_t* vrmem_value); - -/** - * @brief Get the 'avg_mm_activity' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_mm_activity' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] mm_activity_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_mm_activity_get(uint32_t dv_ind, uint16_t* mm_activity_value); - -/** - * @brief Get the 'curr_vclk1' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'curr_vclk1' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] current_vclk_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_vclk1_get(uint32_t dv_ind, uint16_t* current_vclk_value); - -/** - * @brief Get the 'curr_dclk1' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'curr_dclk1' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] current_dclk_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_dclk1_get(uint32_t dv_ind, uint16_t* current_dclk_value); - -/** - * @brief Get the 'indep_throttle_status' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint64_t in which - * the 'indep_throttle_status' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] throttle_status_value a pointer to uint64_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_indep_throttle_status_get(uint32_t dv_ind, uint64_t* throttle_status_value); - -/** - * @brief Get the 'avg_socket_power' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_socket_power' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] socket_power_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_socket_power_get(uint32_t dv_ind, uint16_t* socket_power_value); - -/** - * @brief Get the 'curr_fan_speed' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'curr_fan_speed' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] fan_speed_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_curr_fan_speed_get(uint32_t dv_ind, uint16_t* fan_speed_value); - -/** - * @brief Get the 'avg_gfx_clock_frequency' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_gfx_clock_frequency' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] clock_frequency_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_gfx_clock_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value); - -/** - * @brief Get the 'avg_soc_clock_frequency' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_soc_clock_frequency' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] clock_frequency_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_soc_clock_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value); - -/** - * @brief Get the 'avg_uclock_frequency' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_uclock_frequency' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] clock_frequency_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_uclock_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value); - -/** - * @brief Get the 'avg_vclock0_frequency' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_vclock0_frequency' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] clock_frequency_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_vclock0_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value); - -/** - * @brief Get the 'avg_dclock0_frequency' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_dclock0_frequency' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] clock_frequency_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_dclock0_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value); - -/** - * @brief Get the 'avg_vclock1_frequency' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_vclock1_frequency' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] clock_frequency_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_vclock1_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value); - -/** - * @brief Get the 'avg_dclock1_frequency' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'avg_dclock1_frequency' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] clock_frequency_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_avg_dclock1_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value); - -/** - * @brief Get the 'volt_soc' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'volt_soc' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] voltage_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_volt_soc_get(uint32_t dv_ind, uint16_t* voltage_value); - -/** - * @brief Get the 'volt_gfx' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'volt_gfx' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] voltage_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_volt_gfx_get(uint32_t dv_ind, uint16_t* voltage_value); - -/** - * @brief Get the 'volt_mem' from the GPU metrics associated with the device - * - * @details Given a device index @p dv_ind and a pointer to a uint16_t in which - * the 'volt_mem' will stored - * - * @param[in] dv_ind a device index - * - * @param[inout] voltage_value a pointer to uint16_t to which the device gpu - * metric unit will be stored - * - * @retval ::RSMI_STATUS_SUCCESS is returned upon successful call. - * ::RSMI_STATUS_NOT_SUPPORTED is returned in case the metric unit - * does not exist for the given device - * - */ -rsmi_status_t -rsmi_dev_metrics_volt_mem_get(uint32_t dv_ind, uint16_t* voltage_value); - /** * @brief Get the 'metrics_header_info' from the GPU metrics associated with the device * @@ -5938,6 +5048,7 @@ rsmi_dev_metrics_xcd_counter_get(uint32_t dv_ind, uint16_t* xcd_counter_value); rsmi_status_t rsmi_dev_metrics_log_get(uint32_t dv_ind); +/** @} */ // end of DevMetricsHeaderInfoGet #ifdef __cplusplus } diff --git a/rocm_smi/include/rocm_smi/rocm_smi_kfd.h b/rocm_smi/include/rocm_smi/rocm_smi_kfd.h index 81a76400ce..87338d8d7c 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_kfd.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_kfd.h @@ -94,6 +94,11 @@ class KFDNode { int32_t get_simd_per_cu(uint64_t* simd_per_cu) const; int32_t get_simd_count(uint64_t* simd_count) const; + // Get gpu_id (AKA GUID) version from kfd + int get_gpu_id(uint64_t *gpu_id); + // Get node id from kfd + int get_node_id(uint32_t *node_id); + private: uint32_t node_indx_; uint32_t amdgpu_dev_index_; diff --git a/rocm_smi/include/rocm_smi/rocm_smi_utils.h b/rocm_smi/include/rocm_smi/rocm_smi_utils.h index 36261d89e6..e4130c46ee 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_utils.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_utils.h @@ -48,8 +48,11 @@ #include #include #include +#include #include +#include #include +#include #include #include #include @@ -594,6 +597,7 @@ class TagTextContents_t } } } + }; using TextFileTagContents_t = TagTextContents_t: <|*>" @@ -783,7 +783,7 @@ rsmi_dev_ecc_count_get(uint32_t dv_ind, rsmi_gpu_block_t block, } ss << __PRETTY_FUNCTION__ << " | ======= end =======" - << ", reporting " << amd::smi::getRSMIStatusString(ret);; + << ", reporting " << amd::smi::getRSMIStatusString(ret); LOG_TRACE(ss); return ret; CATCH @@ -806,16 +806,30 @@ rsmi_dev_pci_id_get(uint32_t dv_ind, uint64_t *bdfid) { kfd_node->get_property_value("domain", &domain); - // Replace the 16 bit domain originally set like this: - // BDFID = (( & 0xffff) << 32) | (( & 0xff) << 8) | - // ((device& 0x1f) <<3 ) | (function & 0x7) - // with this: - // BDFID = (( & 0xffffffff) << 32) | (( & 0xff) << 8) | - // ((device& 0x1f) <<3 ) | (function & 0x7) - + /** + * Add domain to full pci_id: + * BDFID = ((DOMAIN & 0xFFFFFFFF) << 32) | ((PARTITION_ID & 0xF) << 28) | + * ((BUS & 0xFF) << 8) | ((DEVICE & 0x1F) <<3 ) | (FUNCTION & 0x7) + * + * bits [63:32] = domain + * bits [31:28] or bits [2:0] = partition id + * bits [27:16] = reserved + * bits [15:8] = Bus + * bits [7:3] = Device + * bits [2:0] = Function (partition id maybe in bits [2:0]) <-- Fallback for non SPX modes + */ assert((domain & 0xFFFFFFFF00000000) == 0); - (*bdfid) &= 0xFFFF; // Clear out the old 16 bit domain - *bdfid |= (domain & 0xFFFFFFFF) << 32; + (*bdfid) &= 0xFFFFFFFF; // keep bottom 32 bits of pci_id + *bdfid |= (domain & 0xFFFFFFFF) << 32; // Add domain to top of pci_id + uint64_t pci_id = *bdfid; + uint32_t node = UINT32_MAX; + rsmi_dev_node_id_get(dv_ind, &node); + ss << __PRETTY_FUNCTION__ << " | kfd node = " + << std::to_string(node) << "\n" + << " returning pci_id = " + << std::to_string(pci_id) << " (" + << amd::smi::print_int_as_hex(pci_id) << ")"; + LOG_INFO(ss); ss << __PRETTY_FUNCTION__ << " | ======= end =======" << ", reporting RSMI_STATUS_SUCCESS"; @@ -957,7 +971,7 @@ rsmi_dev_id_get(uint32_t dv_ind, uint16_t *id) { } rsmi_status_t -rsmi_dev_oam_id_get(uint32_t dv_ind, uint16_t *id) { +rsmi_dev_xgmi_physical_id_get(uint32_t dv_ind, uint16_t *id) { std::ostringstream ss; rsmi_status_t ret; ss << __PRETTY_FUNCTION__ << "| ======= start ======="; @@ -1561,6 +1575,7 @@ rsmi_status_t rsmi_dev_clk_extremum_set(uint32_t dv_ind, rsmi_freq_ind_t level, if (ret != RSMI_STATUS_SUCCESS) { return ret; } + // For clock frequency setting, enter a new value by writing a string that // contains "s/m index clock" to the file. The index should be 0 if to set // minimum clock. And 1 if to set maximum clock. E.g., "s 0 500" will update @@ -1585,7 +1600,6 @@ rsmi_status_t rsmi_dev_clk_extremum_set(uint32_t dv_ind, rsmi_freq_ind_t level, CATCH } - rsmi_status_t rsmi_dev_clk_range_set(uint32_t dv_ind, uint64_t minclkvalue, uint64_t maxclkvalue, rsmi_clk_type_t clkType) { @@ -2067,7 +2081,8 @@ rsmi_status_t rsmi_dev_process_isolation_get(uint32_t dv_ind, // the enforce_isolation sysfs is in this format // Get the partition_id. For SPX, the partition_id will be 0. - int partition_id = dev->get_partition_id(); + uint32_t partition_id = 0; + rsmi_dev_partition_id_get(dv_ind, &partition_id); DEVICE_MUTEX @@ -2126,7 +2141,8 @@ rsmi_status_t rsmi_dev_process_isolation_set(uint32_t dv_ind, // To set the values,need to specify the setting for all of the partitions // For two partition // echo "1 0" | sudo tee  /sys/class/drm/cardX/device/enforce_isolation - int partition_id = dev->get_partition_id(); + uint32_t partition_id = 0; + rsmi_dev_partition_id_get(dv_ind, &partition_id); std::string str_val; rsmi_status_t ret = get_dev_value_line(amd::smi::kDevProcessIsolation, dv_ind, &str_val); if (ret == RSMI_STATUS_FILE_ERROR) { @@ -5360,9 +5376,12 @@ rsmi_topo_get_p2p_status(uint32_t dv_ind_src, uint32_t dv_ind_dst, CATCH } -static rsmi_status_t -get_compute_partition(uint32_t dv_ind, std::string &compute_partition) { +static rsmi_status_t get_compute_partition(uint32_t dv_ind, + std::string &compute_partition) { TRY + std::ostringstream ss; + ss << __PRETTY_FUNCTION__ << " | ======= start =======, " << dv_ind; + LOG_TRACE(ss); CHK_SUPPORT_NAME_ONLY(compute_partition.c_str()) std::string compute_partition_str; @@ -5386,6 +5405,8 @@ get_compute_partition(uint32_t dv_ind, std::string &compute_partition) { return RSMI_STATUS_UNEXPECTED_DATA; } compute_partition = compute_partition_str; + ss << __PRETTY_FUNCTION__ << " | ======= END =======, " << dv_ind; + LOG_TRACE(ss); return RSMI_STATUS_SUCCESS; CATCH } @@ -5395,7 +5416,7 @@ rsmi_dev_compute_partition_get(uint32_t dv_ind, char *compute_partition, uint32_t len) { TRY std::ostringstream ss; - ss << __PRETTY_FUNCTION__ << "| ======= start =======, dv_ind = " + ss << __PRETTY_FUNCTION__ << " | ======= start =======, dv_ind = " << dv_ind; LOG_TRACE(ss); if ((len == 0) || (compute_partition == nullptr)) { @@ -5431,7 +5452,7 @@ rsmi_dev_compute_partition_get(uint32_t dv_ind, char *compute_partition, return ret; } - std::size_t length = returning_compute_partition.copy(compute_partition, len); + std::size_t length = returning_compute_partition.copy(compute_partition, len-1); compute_partition[length]='\0'; if (len < (returning_compute_partition.size() + 1)) { @@ -5465,20 +5486,47 @@ static rsmi_status_t is_available_compute_partition(uint32_t dv_ind, std::string new_compute_partition) { TRY + std::ostringstream ss; + ss << __PRETTY_FUNCTION__ << " | ======= start =======, " << dv_ind; + LOG_TRACE(ss); DEVICE_MUTEX std::string availableComputePartitions; rsmi_status_t ret = get_dev_value_line(amd::smi::kDevAvailableComputePartition, dv_ind, &availableComputePartitions); if (ret != RSMI_STATUS_SUCCESS) { + ss << __PRETTY_FUNCTION__ + << " | ======= end ======= " + << " | FAIL " + << " | Device #: " << dv_ind + << " | Type: " + << amd::smi::Device::get_type_string(amd::smi::kDevAvailableComputePartition) + << " | Data: could not retrieve requested data" + << " | Returning = " + << getRSMIStatusString(ret) << " |"; + LOG_ERROR(ss); return ret; } bool isComputePartitionAvailable = amd::smi::containsString(availableComputePartitions, new_compute_partition); - return (isComputePartitionAvailable) ? RSMI_STATUS_SUCCESS : - RSMI_STATUS_SETTING_UNAVAILABLE; + + ret = ((isComputePartitionAvailable) ? RSMI_STATUS_SUCCESS : + RSMI_STATUS_SETTING_UNAVAILABLE); + ss << __PRETTY_FUNCTION__ + << " | ======= end ======= " + << " | Success " + << " | Device #: " << dv_ind + << " | Type: " + << amd::smi::Device::get_type_string(amd::smi::kDevAvailableComputePartition) + << " | Data: available_partitions = " << availableComputePartitions + << " | Data: isComputePartitionAvailable = " + << (isComputePartitionAvailable ? "True" : "False") + << " | Returning = " + << getRSMIStatusString(ret) << " |"; + LOG_INFO(ss); + return ret; CATCH } @@ -5487,16 +5535,14 @@ rsmi_dev_compute_partition_set(uint32_t dv_ind, rsmi_compute_partition_type_t compute_partition) { TRY std::ostringstream ss; - ss << __PRETTY_FUNCTION__ << "| ======= start ======="; + ss << __PRETTY_FUNCTION__ << " | ======= start =======, " << dv_ind; LOG_TRACE(ss); REQUIRE_ROOT_ACCESS if (!amd::smi::is_sudo_user()) { return RSMI_STATUS_PERMISSION; } - DEVICE_MUTEX - std::string newComputePartitionStr - = mapRSMIToStringComputePartitionTypes.at(compute_partition); - std::string currentComputePartition; + std::string currentComputePartition = ""; + std::string newComputePartitionStr = ""; switch (compute_partition) { case RSMI_COMPUTE_PARTITION_CPX: @@ -5504,9 +5550,13 @@ rsmi_dev_compute_partition_set(uint32_t dv_ind, case RSMI_COMPUTE_PARTITION_DPX: case RSMI_COMPUTE_PARTITION_TPX: case RSMI_COMPUTE_PARTITION_QPX: + newComputePartitionStr = + mapRSMIToStringComputePartitionTypes.at(compute_partition); break; case RSMI_COMPUTE_PARTITION_INVALID: default: + newComputePartitionStr = + mapRSMIToStringComputePartitionTypes.at(RSMI_COMPUTE_PARTITION_INVALID); ss << __PRETTY_FUNCTION__ << " | ======= end ======= " << " | Fail " @@ -5583,8 +5633,8 @@ rsmi_dev_compute_partition_set(uint32_t dv_ind, << "| sizeof string = " << std::dec << sizeof(newComputePartitionStr); LOG_DEBUG(ss); - GET_DEV_FROM_INDX + DEVICE_MUTEX int ret = dev->writeDevInfo(amd::smi::kDevComputePartition, newComputePartitionStr); rsmi_status_t returnResponse = amd::smi::ErrnoToRsmiStatus(ret); @@ -5599,7 +5649,6 @@ rsmi_dev_compute_partition_set(uint32_t dv_ind, << getRSMIStatusString(returnResponse) << " |"; LOG_TRACE(ss); - // TODO(charpoag): investigate providing GPU busy state occurred with return returnResponse; CATCH } @@ -5607,6 +5656,9 @@ rsmi_dev_compute_partition_set(uint32_t dv_ind, static rsmi_status_t get_memory_partition(uint32_t dv_ind, std::string &memory_partition) { TRY + std::ostringstream ss; + ss << __PRETTY_FUNCTION__ << " | ======= start =======, " << dv_ind; + LOG_TRACE(ss); CHK_SUPPORT_NAME_ONLY(memory_partition.c_str()) std::string val_str; @@ -5630,6 +5682,8 @@ static rsmi_status_t get_memory_partition(uint32_t dv_ind, return RSMI_STATUS_UNEXPECTED_DATA; } memory_partition = val_str; + ss << __PRETTY_FUNCTION__ << " | ======= END =======, " << dv_ind; + LOG_TRACE(ss); return RSMI_STATUS_SUCCESS; CATCH } @@ -5639,7 +5693,7 @@ rsmi_dev_memory_partition_set(uint32_t dv_ind, rsmi_memory_partition_type_t memory_partition) { TRY std::ostringstream ss; - ss << __PRETTY_FUNCTION__ << "| ======= start ======="; + ss << __PRETTY_FUNCTION__ << " | ======= start =======, " << dv_ind; LOG_TRACE(ss); REQUIRE_ROOT_ACCESS DEVICE_MUTEX @@ -5774,7 +5828,7 @@ rsmi_dev_memory_partition_get(uint32_t dv_ind, char *memory_partition, uint32_t len) { TRY std::ostringstream ss; - ss << __PRETTY_FUNCTION__ << "| ======= start ======="; + ss << __PRETTY_FUNCTION__ << " | ======= start =======, " << dv_ind; LOG_TRACE(ss); if ((len == 0) || (memory_partition == nullptr)) { ss << __PRETTY_FUNCTION__ @@ -5844,7 +5898,7 @@ rsmi_dev_memory_partition_get(uint32_t dv_ind, char *memory_partition, rsmi_status_t rsmi_dev_compute_partition_reset(uint32_t dv_ind) { TRY std::ostringstream ss; - ss << __PRETTY_FUNCTION__ << "| ======= start ======="; + ss << __PRETTY_FUNCTION__ << " | ======= start =======, " << dv_ind; LOG_TRACE(ss); REQUIRE_ROOT_ACCESS DEVICE_MUTEX @@ -5883,7 +5937,7 @@ rsmi_status_t rsmi_dev_compute_partition_reset(uint32_t dv_ind) { rsmi_status_t rsmi_dev_memory_partition_reset(uint32_t dv_ind) { TRY std::ostringstream ss; - ss << __PRETTY_FUNCTION__ << "| ======= start ======="; + ss << __PRETTY_FUNCTION__ << "| ======= start =======, " << dv_ind; LOG_TRACE(ss); REQUIRE_ROOT_ACCESS DEVICE_MUTEX @@ -5919,6 +5973,168 @@ rsmi_status_t rsmi_dev_memory_partition_reset(uint32_t dv_ind) { CATCH } +rsmi_status_t +rsmi_dev_partition_id_get(uint32_t dv_ind, uint32_t *partition_id) { + TRY + std::ostringstream ss; + ss << __PRETTY_FUNCTION__ << "| ======= start =======, " << dv_ind; + LOG_TRACE(ss); + if (partition_id == nullptr) { + ss << __PRETTY_FUNCTION__ + << " | ======= end ======= " + << " | FAIL" + << " | Device #: " << dv_ind + << " | Type: partition_id" + << " | Data: nullptr" + << " | Returning = " + << getRSMIStatusString(RSMI_STATUS_INVALID_ARGS) << " |"; + LOG_ERROR(ss); + return RSMI_STATUS_INVALID_ARGS; + } + DEVICE_MUTEX + std::string strCompPartition = "UNKNOWN"; + const uint32_t PARTITION_LEN = 10; + char compute_partition[PARTITION_LEN]; + rsmi_status_t ret = rsmi_dev_compute_partition_get(dv_ind, compute_partition, PARTITION_LEN); + if (ret == RSMI_STATUS_SUCCESS) { + strCompPartition = compute_partition; + } + uint64_t pci_id = UINT64_MAX; + *partition_id = UINT32_MAX; + ret = rsmi_dev_pci_id_get(dv_ind, &pci_id); + if (ret == RSMI_STATUS_SUCCESS) { + *partition_id = static_cast((pci_id >> 28) & 0xf); + } + + /** + * Fall back is required due to driver changes within KFD. + * Some devices may report bits [31:28] or [2:0]. + * With the newly added rsmi_dev_partition_id_get(..), + * we provided this fallback to properly retrieve the partition ID. We + * plan to eventually remove partition ID from the function portion of the + * BDF (Bus Device Function). See below for PCI ID description. + * + * bits [63:32] = domain + * bits [31:28] or bits [2:0] = partition id + * bits [27:16] = reserved + * bits [15:8] = Bus + * bits [7:3] = Device + * bits [2:0] = Function (partition id maybe in bits [2:0]) <-- Fallback for non SPX modes + */ + if (*partition_id != UINT32_MAX && *partition_id == 0 && + (strCompPartition == "DPX" || strCompPartition == "TPX" + || strCompPartition == "CPX" || strCompPartition == "QPX")) { + *partition_id = static_cast(pci_id & 0x7); + } + ss << __PRETTY_FUNCTION__ + << " | ======= end ======= " + << " | Success" + << " | Device #: " << dv_ind + << " | Type: partition_id" + << " | Data: " << *partition_id + << " | Returning = " + << getRSMIStatusString(RSMI_STATUS_SUCCESS) << " |"; + LOG_INFO(ss); + return ret; + CATCH +} + +rsmi_status_t rsmi_dev_target_graphics_version_get(uint32_t dv_ind, + uint64_t *gfx_version) { + TRY + std::ostringstream ss; + ss << __PRETTY_FUNCTION__ << " | ======= start =======" + << " | Device #: " << dv_ind; + LOG_TRACE(ss); + rsmi_status_t ret = RSMI_STATUS_NOT_SUPPORTED; + std::string version = ""; + const uint64_t undefined_gfx_version = std::numeric_limits::max(); + if (gfx_version == nullptr) { + ret = RSMI_STATUS_INVALID_ARGS; + } else { + *gfx_version = undefined_gfx_version; + ret = amd::smi::rsmi_get_gfx_target_version(dv_ind , &version); + } + if (ret == RSMI_STATUS_SUCCESS) { + version = amd::smi::removeString(version, "gfx"); + *gfx_version = std::stoull(version); + } + ss << __PRETTY_FUNCTION__ + << " | ======= end ======= " + << " | Returning: " << getRSMIStatusString(ret, false) + << " | Device #: " << dv_ind + << " | Type: Target_graphics_version" + << " | Data: " + << ((gfx_version == nullptr) ? "nullptr" : + amd::smi::print_unsigned_hex_and_int(*gfx_version)); + LOG_TRACE(ss); + return ret; + CATCH +} + +rsmi_status_t rsmi_dev_guid_get(uint32_t dv_ind, uint64_t *guid) { + TRY + std::ostringstream ss; + ss << __PRETTY_FUNCTION__ << " | ======= start =======" + << " | Device #: " << dv_ind; + LOG_TRACE(ss); + GET_DEV_AND_KFDNODE_FROM_INDX + uint64_t kgd_gpu_id = 0; + rsmi_status_t resp = RSMI_STATUS_NOT_SUPPORTED; + int ret = kfd_node->KFDNode::get_gpu_id(&kgd_gpu_id); + resp = amd::smi::ErrnoToRsmiStatus(ret); + + if (guid == nullptr) { + resp = RSMI_STATUS_INVALID_ARGS; + } else { + *guid = kgd_gpu_id; + } + + ss << __PRETTY_FUNCTION__ + << " | ======= end ======= " + << " | Returning: " << getRSMIStatusString(resp, false) + << " | Device #: " << dv_ind + << " | Type: GUID (gpu_id)" + << " | Data: " << ((guid == nullptr) ? "nullptr" : + amd::smi::print_unsigned_hex_and_int(*guid)); + LOG_INFO(ss); + return resp; + CATCH +} + +rsmi_status_t rsmi_dev_node_id_get(uint32_t dv_ind, uint32_t *node_id) { + TRY + std::ostringstream ss; + ss << __PRETTY_FUNCTION__ << " | ======= start =======" + << " | Device #: " << dv_ind; + LOG_TRACE(ss); + GET_DEV_AND_KFDNODE_FROM_INDX + uint32_t kfd_node_id = std::numeric_limits::max(); + rsmi_status_t resp = RSMI_STATUS_NOT_SUPPORTED; + int ret = kfd_node->KFDNode::get_node_id(&kfd_node_id); + resp = amd::smi::ErrnoToRsmiStatus(ret); + + if (node_id == nullptr) { + resp = RSMI_STATUS_INVALID_ARGS; + } else { + *node_id = kfd_node_id; + if (kfd_node_id == std::numeric_limits::max()) { + resp = RSMI_STATUS_NOT_SUPPORTED; + } + } + + ss << __PRETTY_FUNCTION__ + << " | ======= end ======= " + << " | Returning: " << getRSMIStatusString(resp, false) + << " | Device #: " << dv_ind + << " | Type: node_id" + << " | Data: " << ((node_id == nullptr) ? "nullptr" : + amd::smi::print_unsigned_hex_and_int(*node_id)); + LOG_INFO(ss); + return resp; + CATCH +} + enum iterator_handle_type { FUNC_ITER = 0, VARIANT_ITER, @@ -6379,1455 +6595,6 @@ rsmi_status_t rsmi_event_notification_stop(uint32_t dv_ind) { CATCH } -// -// NOTE: APIs related to new 'GPU Metrics' related work are added here -// so they can be used/tested. -// -rsmi_status_t -rsmi_dev_metrics_temp_edge_get(uint32_t dv_ind, uint16_t* edge_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(edge_value != nullptr); - if (edge_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTempEdge); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *edge_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_temp_hotspot_get(uint32_t dv_ind, uint16_t* hotspot_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(hotspot_value != nullptr); - if (hotspot_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTempHotspot); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *hotspot_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_temp_mem_get(uint32_t dv_ind, uint16_t* mem_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(mem_value != nullptr); - if (mem_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTempMem); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *mem_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_temp_vrgfx_get(uint32_t dv_ind, uint16_t* vrgfx_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(vrgfx_value != nullptr); - if (vrgfx_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTempVrGfx); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *vrgfx_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_temp_vrsoc_get(uint32_t dv_ind, uint16_t* vrsoc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(vrsoc_value != nullptr); - if (vrsoc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTempVrSoc); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *vrsoc_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_temp_vrmem_get(uint32_t dv_ind, uint16_t* vrmem_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(vrmem_value != nullptr); - if (vrmem_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTempVrMem); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *vrmem_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_socket_power_get(uint32_t dv_ind, uint16_t* socket_power_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(socket_power_value != nullptr); - if (socket_power_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrSocketPower); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *socket_power_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_socket_power_get(uint32_t dv_ind, uint16_t* socket_power_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(socket_power_value != nullptr); - if (socket_power_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgSocketPower); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *socket_power_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_gfx_activity_get(uint32_t dv_ind, uint16_t* gfx_activity_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(gfx_activity_value != nullptr); - if (gfx_activity_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgGfxActivity); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *gfx_activity_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_umc_activity_get(uint32_t dv_ind, uint16_t* umc_activity_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(umc_activity_value != nullptr); - if (umc_activity_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgUmcActivity); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *umc_activity_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_mm_activity_get(uint32_t dv_ind, uint16_t* mm_activity_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(mm_activity_value != nullptr); - if (mm_activity_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgMmActivity); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *mm_activity_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_energy_acc_get(uint32_t dv_ind, uint64_t* energy_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(energy_acc_value != nullptr); - if (energy_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricEnergyAccumulator); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *energy_acc_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_system_clock_counter_get(uint32_t dv_ind, uint64_t* system_clock_counter_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(system_clock_counter_value != nullptr); - if (system_clock_counter_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTSClockCounter); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *system_clock_counter_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_firmware_timestamp_get(uint32_t dv_ind, uint64_t* firmware_timestamp_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(firmware_timestamp_value != nullptr); - if (firmware_timestamp_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTSFirmware); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *firmware_timestamp_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_indep_throttle_status_get(uint32_t dv_ind, uint64_t* throttle_status_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(throttle_status_value != nullptr); - if (throttle_status_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricIndepThrottleStatus); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *throttle_status_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_throttle_status_get(uint32_t dv_ind, uint32_t* throttle_status_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(throttle_status_value != nullptr); - if (throttle_status_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricThrottleStatus); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *throttle_status_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_fan_speed_get(uint32_t dv_ind, uint16_t* fan_speed_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(fan_speed_value != nullptr); - if (fan_speed_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrFanSpeed); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *fan_speed_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_pcie_link_width_get(uint32_t dv_ind, uint16_t* pcie_link_width_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(pcie_link_width_value != nullptr); - if (pcie_link_width_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricPcieLinkWidth); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *pcie_link_width_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_pcie_link_speed_get(uint32_t dv_ind, uint16_t* pcie_link_speed_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(pcie_link_speed_value != nullptr); - if (pcie_link_speed_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricPcieLinkSpeed); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *pcie_link_speed_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_xgmi_link_width_get(uint32_t dv_ind, uint16_t* xgmi_link_width_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(xgmi_link_width_value != nullptr); - if (xgmi_link_width_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricXgmiLinkWidth); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *xgmi_link_width_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_xgmi_link_speed_get(uint32_t dv_ind, uint16_t* xgmi_link_speed_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(xgmi_link_speed_value != nullptr); - if (xgmi_link_speed_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricXgmiLinkSpeed); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *xgmi_link_speed_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_gfxclk_lock_status_get(uint32_t dv_ind, uint32_t* gfxclk_lock_status_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(gfxclk_lock_status_value != nullptr); - if (gfxclk_lock_status_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricGfxClkLockStatus); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *gfxclk_lock_status_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_gfx_activity_acc_get(uint32_t dv_ind, uint32_t* gfx_activity_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(gfx_activity_acc_value != nullptr); - if (gfx_activity_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricGfxActivityAccumulator); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *gfx_activity_acc_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_mem_activity_acc_get(uint32_t dv_ind, uint32_t* mem_activity_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(mem_activity_acc_value != nullptr); - if (mem_activity_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricMemActivityAccumulator); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *mem_activity_acc_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_pcie_bandwidth_acc_get(uint32_t dv_ind, uint64_t* pcie_bandwidth_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(pcie_bandwidth_acc_value != nullptr); - if (pcie_bandwidth_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricPcieBandwidthAccumulator); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *pcie_bandwidth_acc_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_pcie_bandwidth_inst_get(uint32_t dv_ind, uint64_t* pcie_bandwidth_inst_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(pcie_bandwidth_inst_value != nullptr); - if (pcie_bandwidth_inst_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricPcieBandwidthInst); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *pcie_bandwidth_inst_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_pcie_l0_recov_count_acc_get(uint32_t dv_ind, uint64_t* pcie_count_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(pcie_count_acc_value != nullptr); - if (pcie_count_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricPcieL0RecovCountAccumulator); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *pcie_count_acc_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_pcie_replay_count_acc_get(uint32_t dv_ind, uint64_t* pcie_count_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(pcie_count_acc_value != nullptr); - if (pcie_count_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricPcieReplayCountAccumulator); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *pcie_count_acc_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_pcie_replay_rover_count_acc_get(uint32_t dv_ind, uint64_t* pcie_count_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(pcie_count_acc_value != nullptr); - if (pcie_count_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricPcieReplayRollOverCountAccumulator); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *pcie_count_acc_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_uclk_get(uint32_t dv_ind, uint16_t* uclk_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(uclk_value != nullptr); - if (uclk_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrUClock); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *uclk_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_temp_hbm_get(uint32_t dv_ind, GPUMetricTempHbm_t* temp_hbm_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(temp_hbm_value != nullptr); - if (temp_hbm_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricTempHbm); - amd::smi::GPUMetricTempHbmTbl_t tmp_hbl_tbl{}; - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, tmp_hbl_tbl); - const auto max_num_elems = - static_cast(std::end(*temp_hbm_value) - std::begin(*temp_hbm_value)); - const auto copy_size = - static_cast((max_num_elems < tmp_hbl_tbl.size()) ? max_num_elems : tmp_hbl_tbl.size()); - ostrstream << __PRETTY_FUNCTION__ - << "\n | ======= end ======= " - << "\n | End Result " - << "\n | Device #: " << dv_ind - << "\n | Metric Type: " << static_cast(gpu_metric_unit) - << "\n | Metric Size: " << tmp_hbl_tbl.size() - << "\n | Max num of elements: " << max_num_elems - << "\n | Copy size: " << copy_size - << "\n | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - std::memset(temp_hbm_value, 0, sizeof(*temp_hbm_value)); - std::copy_n(std::begin(tmp_hbl_tbl), copy_size, *temp_hbm_value); - } - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_vcn_activity_get(uint32_t dv_ind, GPUMetricVcnActivity_t* vcn_activity_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(vcn_activity_value != nullptr); - if (vcn_activity_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricVcnActivity); - amd::smi::GPUMetricVcnActivityTbl_t tmp_vcn_tbl{}; - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, tmp_vcn_tbl); - const auto max_num_elems = - static_cast(std::end(*vcn_activity_value) - std::begin(*vcn_activity_value)); - const auto copy_size = - static_cast((max_num_elems < tmp_vcn_tbl.size()) ? max_num_elems : tmp_vcn_tbl.size()); - ostrstream << __PRETTY_FUNCTION__ - << "\n | ======= end ======= " - << "\n | End Result " - << "\n | Device #: " << dv_ind - << "\n | Metric Type: " << static_cast(gpu_metric_unit) - << "\n | Metric Size: " << tmp_vcn_tbl.size() - << "\n | Max num of elements: " << max_num_elems - << "\n | Copy size: " << copy_size - << "\n | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - std::memset(vcn_activity_value, 0, sizeof(*vcn_activity_value)); - std::copy_n(std::begin(tmp_vcn_tbl), copy_size, *vcn_activity_value); - } - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_xgmi_read_data_get(uint32_t dv_ind, GPUMetricXgmiReadDataAcc_t* xgmi_read_data_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(xgmi_read_data_acc_value != nullptr); - if (xgmi_read_data_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricXgmiReadDataAccumulator); - amd::smi::GPUMetricXgmiAccTbl_t tmp_xgmi_acc_tbl{}; - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, tmp_xgmi_acc_tbl); - const auto max_num_elems = - static_cast(std::end(*xgmi_read_data_acc_value) - std::begin(*xgmi_read_data_acc_value)); - const auto copy_size = - static_cast((max_num_elems < tmp_xgmi_acc_tbl.size()) ? max_num_elems : tmp_xgmi_acc_tbl.size()); - ostrstream << __PRETTY_FUNCTION__ - << "\n | ======= end ======= " - << "\n | End Result " - << "\n | Device #: " << dv_ind - << "\n | Metric Type: " << static_cast(gpu_metric_unit) - << "\n | Metric Size: " << tmp_xgmi_acc_tbl.size() - << "\n | Max num of elements: " << max_num_elems - << "\n | Copy size: " << copy_size - << "\n | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - std::memset(xgmi_read_data_acc_value, 0, sizeof(*xgmi_read_data_acc_value)); - std::copy_n(std::begin(tmp_xgmi_acc_tbl), copy_size, *xgmi_read_data_acc_value); - } - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_xgmi_write_data_get(uint32_t dv_ind, GPUMetricXgmiWriteDataAcc_t* xgmi_write_data_acc_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(xgmi_write_data_acc_value != nullptr); - if (xgmi_write_data_acc_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricXgmiWriteDataAccumulator); - amd::smi::GPUMetricXgmiAccTbl_t tmp_xgmi_acc_tbl{}; - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, tmp_xgmi_acc_tbl); - const auto max_num_elems = - static_cast(std::end(*xgmi_write_data_acc_value) - std::begin(*xgmi_write_data_acc_value)); - const auto copy_size = - static_cast((max_num_elems < tmp_xgmi_acc_tbl.size()) ? max_num_elems : tmp_xgmi_acc_tbl.size()); - ostrstream << __PRETTY_FUNCTION__ - << "\n | ======= end ======= " - << "\n | End Result " - << "\n | Device #: " << dv_ind - << "\n | Metric Type: " << static_cast(gpu_metric_unit) - << "\n | Metric Size: " << tmp_xgmi_acc_tbl.size() - << "\n | Max num of elements: " << max_num_elems - << "\n | Copy size: " << copy_size - << "\n | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - std::memset(xgmi_write_data_acc_value, 0, sizeof(*xgmi_write_data_acc_value)); - std::copy_n(std::begin(tmp_xgmi_acc_tbl), copy_size, *xgmi_write_data_acc_value); - } - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_gfxclk_get(uint32_t dv_ind, GPUMetricCurrGfxClk_t* current_gfxclk_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(current_gfxclk_value != nullptr); - if (current_gfxclk_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrGfxClock); - amd::smi::GPUMetricCurrGfxClkTbl_t tmp_curr_gfxclk_tbl{}; - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, tmp_curr_gfxclk_tbl); - const auto max_num_elems = - static_cast(std::end(*current_gfxclk_value) - std::begin(*current_gfxclk_value)); - const auto copy_size = - static_cast((max_num_elems < tmp_curr_gfxclk_tbl.size()) ? max_num_elems : tmp_curr_gfxclk_tbl.size()); - ostrstream << __PRETTY_FUNCTION__ - << "\n | ======= end ======= " - << "\n | End Result " - << "\n | Device #: " << dv_ind - << "\n | Metric Type: " << static_cast(gpu_metric_unit) - << "\n | Metric Size: " << tmp_curr_gfxclk_tbl.size() - << "\n | Max num of elements: " << max_num_elems - << "\n | Copy size: " << copy_size - << "\n | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - std::memset(current_gfxclk_value, 0, sizeof(*current_gfxclk_value)); - std::copy_n(std::begin(tmp_curr_gfxclk_tbl), copy_size, *current_gfxclk_value); - } - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_socclk_get(uint32_t dv_ind, GPUMetricCurrSocClk_t* current_socclk_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(current_socclk_value != nullptr); - if (current_socclk_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrSocClock); - amd::smi::GPUMetricCurrSocClkTbl_t tmp_curr_socclk_tbl{}; - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, tmp_curr_socclk_tbl); - const auto max_num_elems = - static_cast(std::end(*current_socclk_value) - std::begin(*current_socclk_value)); - const auto copy_size = - static_cast((max_num_elems < tmp_curr_socclk_tbl.size()) ? max_num_elems : tmp_curr_socclk_tbl.size()); - ostrstream << __PRETTY_FUNCTION__ - << "\n | ======= end ======= " - << "\n | End Result " - << "\n | Device #: " << dv_ind - << "\n | Metric Type: " << static_cast(gpu_metric_unit) - << "\n | Metric Size: " << tmp_curr_socclk_tbl.size() - << "\n | Max num of elements: " << max_num_elems - << "\n | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - std::memset(current_socclk_value, 0, sizeof(*current_socclk_value)); - std::copy_n(std::begin(tmp_curr_socclk_tbl), copy_size, *current_socclk_value); - } - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_vclk0_get(uint32_t dv_ind, GPUMetricCurrVClk0_t* current_vclk_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(current_vclk_value != nullptr); - if (current_vclk_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrVClock0); - amd::smi::GPUMetricCurrVClkTbl_t tmp_curr_vclk0_tbl{}; - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, tmp_curr_vclk0_tbl); - const auto max_num_elems = - static_cast(std::end(*current_vclk_value) - std::begin(*current_vclk_value)); - const auto copy_size = - static_cast((max_num_elems < tmp_curr_vclk0_tbl.size()) ? max_num_elems : tmp_curr_vclk0_tbl.size()); - ostrstream << __PRETTY_FUNCTION__ - << "\n | ======= end ======= " - << "\n | End Result " - << "\n | Device #: " << dv_ind - << "\n | Metric Type: " << static_cast(gpu_metric_unit) - << "\n | Metric Size: " << tmp_curr_vclk0_tbl.size() - << "\n | Max num of elements: " << max_num_elems - << "\n | Copy size: " << copy_size - << "\n | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - std::memset(current_vclk_value, 0, sizeof(*current_vclk_value)); - std::copy_n(std::begin(tmp_curr_vclk0_tbl), copy_size, *current_vclk_value); - } - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_vclk1_get(uint32_t dv_ind, uint16_t* current_vclk_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(current_vclk_value != nullptr); - if (current_vclk_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrVClock1); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *current_vclk_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_dclk0_get(uint32_t dv_ind, GPUMetricCurrDClk0_t* current_dclk_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(current_dclk_value != nullptr); - if (current_dclk_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrDClock0); - amd::smi::GPUMetricCurrDClkTbl_t tmp_curr_dclk0_tbl; - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, tmp_curr_dclk0_tbl); - const auto max_num_elems = - static_cast(std::end(*current_dclk_value) - std::begin(*current_dclk_value)); - const auto copy_size = - static_cast((max_num_elems < tmp_curr_dclk0_tbl.size()) ? max_num_elems : tmp_curr_dclk0_tbl.size()); - ostrstream << __PRETTY_FUNCTION__ - << "\n | ======= end ======= " - << "\n | End Result " - << "\n | Device #: " << dv_ind - << "\n | Metric Type: " << static_cast(gpu_metric_unit) - << "\n | Metric Size: " << tmp_curr_dclk0_tbl.size() - << "\n | Max num of elements: " << max_num_elems - << "\n | Copy size: " << copy_size - << "\n | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - std::memset(current_dclk_value, 0, sizeof(*current_dclk_value)); - std::copy_n(std::begin(tmp_curr_dclk0_tbl), copy_size, *current_dclk_value); - } - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_curr_dclk1_get(uint32_t dv_ind, uint16_t* current_dclk_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(current_dclk_value != nullptr); - if (current_dclk_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricCurrDClock1); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *current_dclk_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_gfx_clock_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(clock_frequency_value != nullptr); - if (clock_frequency_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgGfxClockFrequency); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *clock_frequency_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_soc_clock_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(clock_frequency_value != nullptr); - if (clock_frequency_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgSocClockFrequency); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *clock_frequency_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_uclock_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(clock_frequency_value != nullptr); - if (clock_frequency_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgUClockFrequency); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *clock_frequency_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_vclock0_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(clock_frequency_value != nullptr); - if (clock_frequency_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgVClock0Frequency); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *clock_frequency_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_dclock0_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(clock_frequency_value != nullptr); - if (clock_frequency_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgDClock0Frequency); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *clock_frequency_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_vclock1_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(clock_frequency_value != nullptr); - if (clock_frequency_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgVClock1Frequency); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *clock_frequency_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_avg_dclock1_frequency_get(uint32_t dv_ind, uint16_t* clock_frequency_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(clock_frequency_value != nullptr); - if (clock_frequency_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricAvgDClock1Frequency); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *clock_frequency_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_volt_soc_get(uint32_t dv_ind, uint16_t* voltage_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(voltage_value != nullptr); - if (voltage_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricVoltageSoc); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *voltage_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_volt_gfx_get(uint32_t dv_ind, uint16_t* voltage_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(voltage_value != nullptr); - if (voltage_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricVoltageGfx); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *voltage_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - -rsmi_status_t -rsmi_dev_metrics_volt_mem_get(uint32_t dv_ind, uint16_t* voltage_value) -{ - TRY - std::ostringstream ostrstream; - ostrstream << __PRETTY_FUNCTION__ << "| ======= start ======="; - LOG_TRACE(ostrstream); - - assert(voltage_value != nullptr); - if (voltage_value == nullptr) { - return rsmi_status_t::RSMI_STATUS_INVALID_ARGS; - } - - const auto gpu_metric_unit(AMDGpuMetricsUnitType_t::kMetricVoltageMem); - auto status_code = rsmi_dev_gpu_metrics_info_query(dv_ind, gpu_metric_unit, *voltage_value); - ostrstream << __PRETTY_FUNCTION__ - << " | ======= end ======= " - << " | End Result " - << " | Device #: " << dv_ind - << " | Metric Type: " << static_cast(gpu_metric_unit) - << " | Returning = " << status_code << " " << getRSMIStatusString(status_code) << " |"; - LOG_INFO(ostrstream); - - return status_code; - CATCH -} - rsmi_status_t rsmi_dev_metrics_header_info_get(uint32_t dv_ind, metrics_table_header_t* header_value) { @@ -7871,10 +6638,13 @@ rsmi_dev_metrics_xcd_counter_get(uint32_t dv_ind, uint16_t* xcd_counter_value) } auto xcd_counter = uint16_t(0); - GPUMetricCurrGfxClk_t curr_gfxclk_table{}; - auto status_code = rsmi_dev_metrics_curr_gfxclk_get(dv_ind, &curr_gfxclk_table); + rsmi_gpu_metrics_t gpu_metrics; + auto status_code = rsmi_dev_gpu_metrics_info_get(dv_ind, &gpu_metrics); if (status_code == rsmi_status_t::RSMI_STATUS_SUCCESS) { - for (const auto& gfxclk : curr_gfxclk_table) { + for (const auto& gfxclk : gpu_metrics.current_gfxclks) { + if (gfxclk == UINT16_MAX) { + break; + } if ((gfxclk != 0) && (gfxclk != UINT16_MAX)) { xcd_counter++; } @@ -7916,10 +6686,6 @@ rsmi_dev_metrics_log_get(uint32_t dv_ind) CATCH } -// -// End of: new GPU Metrics related work. -// - // UNDOCUMENTED FUNCTIONS // This functions are not declared in rocm_smi.h. They are either not fully diff --git a/rocm_smi/src/rocm_smi_device.cc b/rocm_smi/src/rocm_smi_device.cc index e0ebe8a055..ce3bf33eb2 100755 --- a/rocm_smi/src/rocm_smi_device.cc +++ b/rocm_smi/src/rocm_smi_device.cc @@ -490,7 +490,7 @@ static const std::map kDevFuncDependsMap = { // Functions with only mandatory dependencies {"rsmi_dev_vram_vendor_get", {{kDevVramVendorFName}, {}}}, {"rsmi_dev_id_get", {{kDevDevIDFName}, {}}}, - {"rsmi_dev_oam_id_get", {{kDevXGMIPhysicalIDFName}, {}}}, + {"rsmi_dev_xgmi_physical_id_get", {{kDevXGMIPhysicalIDFName}, {}}}, {"rsmi_dev_revision_get", {{kDevDevRevIDFName}, {}}}, {"rsmi_dev_vendor_id_get", {{kDevVendorIDFName}, {}}}, {"rsmi_dev_name_get", {{kDevVendorIDFName, diff --git a/rocm_smi/src/rocm_smi_kfd.cc b/rocm_smi/src/rocm_smi_kfd.cc index b319a1fcd4..a21e619c4a 100755 --- a/rocm_smi/src/rocm_smi_kfd.cc +++ b/rocm_smi/src/rocm_smi_kfd.cc @@ -526,7 +526,7 @@ int GetProcessInfoForPID(uint32_t pid, rsmi_process_info_t *proc, // Collect count of compute units cu_count += kfd_node_map[gpu_id]->cu_count(); } else { - //Some GFX revisions do not provide cu_occupancy debugfs method + // Some GFX revisions do not provide cu_occupancy debugfs method proc->cu_occupancy = CU_OCCUPANCY_INVALID; cu_count = 0; } @@ -1067,18 +1067,18 @@ int KFDNode::get_gfx_target_version(uint64_t *gfx_target_version) { *gfx_target_version = gfx_version; ss << __PRETTY_FUNCTION__ << " | File: " << properties_path - << " | Successfully read node #" << std::to_string(this->node_indx_) + << " | Read node: " << std::to_string(this->node_indx_) << " for gfx_target_version" - << " | Data (gfx_target_version) *gfx_target_version = " + << " | Data (*gfx_target_version): " << std::to_string(*gfx_target_version) - << " | return = " << std::to_string(ret) + << " | Return: " + << getRSMIStatusString(amd::smi::ErrnoToRsmiStatus(ret), false) << " | "; LOG_DEBUG(ss); return ret; } -int32_t KFDNode::get_simd_per_cu(uint64_t* simd_per_cu) const -{ +int32_t KFDNode::get_simd_per_cu(uint64_t* simd_per_cu) const { const std::string properties_path("/sys/class/kfd/kfd/topology/nodes/" + std::to_string(this->node_indx_) + "/properties"); @@ -1090,8 +1090,7 @@ int32_t KFDNode::get_simd_per_cu(uint64_t* simd_per_cu) const return ret; } -int32_t KFDNode::get_simd_count(uint64_t* simd_count) const -{ +int32_t KFDNode::get_simd_count(uint64_t* simd_count) const { const std::string properties_path("/sys/class/kfd/kfd/topology/nodes/" + std::to_string(this->node_indx_) + "/properties"); @@ -1103,6 +1102,62 @@ int32_t KFDNode::get_simd_count(uint64_t* simd_count) const return ret; } +// Public interface for device +// /sys/class/kfd/kfd/topology/nodes/*/gpu_id +int KFDNode::get_gpu_id(uint64_t *gpu_id) { + std::ostringstream ss; + std::string gpuid_path = "/sys/class/kfd/kfd/topology/nodes/" + + std::to_string(this->node_indx_) + "/gpu_id"; + const uint64_t undefined_gpu_id = std::numeric_limits::max(); + std::string gpu_id_string = ""; + *gpu_id = undefined_gpu_id; + int ret = ReadSysfsStr(gpuid_path, &gpu_id_string); + if (ret != 0 || gpu_id_string.empty()) { + ss << __PRETTY_FUNCTION__ + << " | File: " << gpuid_path + << " | Data (*gpu_id): empty or nullptr" + << " | Issue: Could not read node #" << std::to_string(this->node_indx_) + << ". KFD node was an unsupported node or value read was empty." + << " | Return: " + << getRSMIStatusString(amd::smi::ErrnoToRsmiStatus(ret), false) + << " | "; + LOG_ERROR(ss); + return ret; + } + *gpu_id = std::stoull(gpu_id_string); + if (*gpu_id == 0) { // CPU node - return not supported + *gpu_id = undefined_gpu_id; + ret = ENOENT; // map to RSMI_STATUS_NOT_SUPPORTED + } + ss << __PRETTY_FUNCTION__ + << " | File: " << gpuid_path + << " | Read node #: " << std::to_string(this->node_indx_) + << " | Data (*gpu_id): " << std::to_string(*gpu_id) + << " | Return: " + << getRSMIStatusString(amd::smi::ErrnoToRsmiStatus(ret), false) + << " | "; + LOG_DEBUG(ss); + return ret; +} + +// Public interface for device +// /sys/class/kfd/kfd/topology/nodes/ +int KFDNode::get_node_id(uint32_t *node_id) { + std::ostringstream ss; + int ret = 0; + std::string nodeid_path = "/sys/class/kfd/kfd/topology/nodes/" + + std::to_string(this->node_indx_); + ss << __PRETTY_FUNCTION__ + << " | File: " << nodeid_path + << " | Read node #: " << std::to_string(this->node_indx_) + << " | Data (*node_id): " << std::to_string(*node_id) + << " | Return: " + << getRSMIStatusString(amd::smi::ErrnoToRsmiStatus(ret), false) + << " | "; + *node_id = this->node_indx_; + LOG_DEBUG(ss); + return ret; +} } // namespace smi } // namespace amd diff --git a/rocm_smi/src/rocm_smi_main.cc b/rocm_smi/src/rocm_smi_main.cc index 25c32b1f94..eb43d663c1 100755 --- a/rocm_smi/src/rocm_smi_main.cc +++ b/rocm_smi/src/rocm_smi_main.cc @@ -235,15 +235,7 @@ RocmSMI::Initialize(uint64_t flags) { int i_ret; std::ostringstream ss; - LOG_ALWAYS("=============== ROCM SMI initialize ================"); - ROCmLogging::Logger::getInstance()->enableAllLogLevels(); - // Leaving below to allow developers to check current log settings - // std::string logSettings = Logger::getInstance()->getLogSettings(); - // std::cout << "Current log settings:\n" << logSettings << std::endl; - if (ROCmLogging::Logger::getInstance()->isLoggerEnabled()) { - logSystemDetails(); - } assert(ref_count_ == 1); if (ref_count_ != 1) { @@ -259,6 +251,15 @@ RocmSMI::Initialize(uint64_t flags) { // To help debug env variable issues // debugRSMIEnvVarInfo(); + if (ROCmLogging::Logger::getInstance()->isLoggerEnabled()) { + ROCmLogging::Logger::getInstance()->enableAllLogLevels(); + LOG_ALWAYS("=============== ROCM SMI initialize ================"); + logSystemDetails(); + } + // Leaving below to allow developers to check current log settings + // std::string logSettings = ROCmLogging::Logger::getInstance()->getLogSettings(); + // std::cout << "Current log settings:\n" << logSettings << std::endl; + while (!std::string(kAMDMonitorTypes[i]).empty()) { amd_monitor_types_.insert(kAMDMonitorTypes[i]); ++i; @@ -283,6 +284,7 @@ RocmSMI::Initialize(uint64_t flags) { << " | [before] device->path() = " << device->path() << "\n | bdfid = " << bdfid << "\n | device->bdfid() = " << device->bdfid() + << " (" << print_int_as_hex(device->bdfid()) << ")" << "\n | (xgmi node) setting to setting " << "device->set_bdfid(device->bdfid())"; LOG_TRACE(ss); @@ -293,6 +295,7 @@ RocmSMI::Initialize(uint64_t flags) { << " | [before] device->path() = " << device->path() << "\n | bdfid = " << bdfid << "\n | device->bdfid() = " << device->bdfid() + << " (" << print_int_as_hex(device->bdfid()) << ")" << "\n | (legacy/pcie card) setting device->set_bdfid(bdfid)"; LOG_TRACE(ss); device->set_bdfid(bdfid); @@ -301,6 +304,7 @@ RocmSMI::Initialize(uint64_t flags) { << " | [after] device->path() = " << device->path() << "\n | bdfid = " << bdfid << "\n | device->bdfid() = " << device->bdfid() + << " (" << print_int_as_hex(device->bdfid()) << ")" << "\n | final update: device->bdfid() holds correct device bdf"; LOG_TRACE(ss); } @@ -312,8 +316,11 @@ RocmSMI::Initialize(uint64_t flags) { for (uint32_t dv_ind = 0; dv_ind < devices_.size(); ++dv_ind) { dev = devices_[dv_ind]; uint64_t bdfid = dev->bdfid(); + bdfid = bdfid & 0xFFFFFFFF0FFFFFFF; // clear out partition id in bdf + // NOTE: partition_id is not part of bdf (but is part of pci_id) + // which is why it is removed in sorting dv_to_id.push_back({bdfid, dev}); - } + } ss << __PRETTY_FUNCTION__ << " Sort index based on BDF."; LOG_DEBUG(ss); @@ -734,7 +741,7 @@ uint32_t RocmSMI::DiscoverAmdgpuDevices(void) { continue; sscanf(&dentry->d_name[strlen(kDeviceNamePrefix)], "%d", &cardId); if (cardId > max_cardId) - max_cardId = cardId; + max_cardId = cardId; count++; } dentry = readdir(drm_dir); @@ -748,23 +755,47 @@ uint32_t RocmSMI::DiscoverAmdgpuDevices(void) { uint64_t s_gpu_id = 0; uint64_t s_unique_id = 0; uint64_t s_location_id = 0; + uint64_t s_bdf = 0; + uint64_t s_domain = 0; + uint8_t s_bus = 0; + uint8_t s_device = 0; + uint8_t s_function = 0; + uint8_t s_partition_id = 0; + uint64_t padding = 0; // padding added in case new changes in future }; // allSystemNodes[key = unique_id] => {node_id, gpu_id, unique_id, - // location_id} + // location_id, bdf, domain, bus, device, + // partition_id} std::multimap allSystemNodes; uint32_t node_id = 0; + static const int BYTE = 8; while (true) { - uint64_t gpu_id = 0, unique_id = 0, location_id = 0; + uint64_t gpu_id = 0, unique_id = 0, location_id = 0, domain = 0; int ret_gpu_id = get_gpu_id(node_id, &gpu_id); int ret_unique_id = read_node_properties(node_id, "unique_id", &unique_id); int ret_loc_id = read_node_properties(node_id, "location_id", &location_id); - if (ret_gpu_id == 0 || ret_unique_id == 0 || ret_loc_id == 0) { + int ret_domain = + read_node_properties(node_id, "domain", &domain); + if (ret_gpu_id == 0 && + ~(ret_unique_id != 0 || ret_loc_id != 0 || ret_unique_id != 0)) { + // Do not try to build a node if one of these fields + // do not exist in KFD (0 as values okay) systemNode myNode; myNode.s_node_id = node_id; myNode.s_gpu_id = gpu_id; myNode.s_unique_id = unique_id; myNode.s_location_id = location_id; + myNode.s_domain = domain & 0xFFFFFFFF; + myNode.s_bdf = (myNode.s_domain << 32) | (myNode.s_location_id); + myNode.s_location_id = myNode.s_bdf; + myNode.s_bdf |= ((domain & 0xFFFFFFFF) << 32); + myNode.s_location_id = myNode.s_bdf; + myNode.s_domain = myNode.s_location_id >> 32; + myNode.s_bus = ((myNode.s_location_id >> 8) & 0xFF); + myNode.s_device = ((myNode.s_location_id >> 3) & 0x1F); + myNode.s_function = myNode.s_location_id & 0x7; + myNode.s_partition_id = ((myNode.s_location_id >> 28) & 0xF); if (gpu_id != 0) { // only add gpu nodes, 0 = CPU allSystemNodes.emplace(unique_id, myNode); } @@ -780,6 +811,12 @@ uint32_t RocmSMI::DiscoverAmdgpuDevices(void) { << "; gpu_id = " << std::to_string(i.second.s_gpu_id) << "; unique_id = " << std::to_string(i.second.s_unique_id) << "; location_id = " << std::to_string(i.second.s_location_id) + << "; bdf = " << print_int_as_hex(i.second.s_bdf) + << "; domain = " << print_int_as_hex(i.second.s_domain, true, 2*BYTE) + << "; bus = " << print_int_as_hex(i.second.s_bus, true, BYTE) + << "; device = " << print_int_as_hex(i.second.s_device, true, BYTE) + << "; function = " << std::to_string(i.second.s_function) + << "; partition_id = " << std::to_string(i.second.s_partition_id) << "], "; } ss << "}"; @@ -817,13 +854,67 @@ uint32_t RocmSMI::DiscoverAmdgpuDevices(void) { rsmi_status_t ret_unique_id = rsmi_dev_unique_id_get(cardAdded, &device_uuid); auto temp_numb_nodes = allSystemNodes.count(device_uuid); - auto it = allSystemNodes.lower_bound(device_uuid); - if (it != allSystemNodes.end() && doesDeviceSupportPartitions && temp_numb_nodes > 1 + auto primaryBdfId = + allSystemNodes.lower_bound(device_uuid)->second.s_location_id; + auto i = allSystemNodes.lower_bound(device_uuid); + if (doesDeviceSupportPartitions && temp_numb_nodes > 1 && ret_unique_id == RSMI_STATUS_SUCCESS) { - auto primaryBdfId = it->second.s_location_id; // helps identify xgmi nodes (secondary nodes) easier + ss << __PRETTY_FUNCTION__ << " | secondary node add ; " + << " BDF = " << std::to_string(primaryBdfId) + << " (" << print_int_as_hex(primaryBdfId) << ")"; + LOG_DEBUG(ss); + if (doesDeviceSupportPartitions && strCompPartition != "SPX" + && i->second.s_partition_id == 0) { + i->second.s_partition_id = i->second.s_function; + ss << __PRETTY_FUNCTION__ << " | (secondary node add) fall back - " + << "detected !SPX && partition_id == 0" + << "; function = " << std::to_string(i->second.s_function) + << "; partition_id = " << std::to_string(i->second.s_partition_id); + LOG_DEBUG(ss); + } + ss << __PRETTY_FUNCTION__ + << " | (secondary node add) B4 AddToDeviceList() -->" + << "\n[node_id = " << std::to_string(i->second.s_node_id) + << "; gpu_id = " << std::to_string(i->second.s_gpu_id) + << "; unique_id = " << std::to_string(i->second.s_unique_id) + << "; location_id = " << std::to_string(i->second.s_location_id) + << "; bdf = " << print_int_as_hex(i->second.s_bdf) + << "; domain = " << print_int_as_hex(i->second.s_domain, true, 2*BYTE) + << "; bus = " << print_int_as_hex(i->second.s_bus, true, BYTE) + << "; device = " << print_int_as_hex(i->second.s_device, true, BYTE) + << "; function = " << std::to_string(i->second.s_function) + << "; partition_id = " << std::to_string(i->second.s_partition_id) + << "], "; + LOG_DEBUG(ss); AddToDeviceList(d_name, primaryBdfId); } else { + ss << __PRETTY_FUNCTION__ << " | primary node add ; " + << " BDF = " << std::to_string(UINT64_MAX); + if (doesDeviceSupportPartitions && strCompPartition != "SPX" + && i->second.s_partition_id == 0) { + i->second.s_partition_id = i->second.s_function; + ss << __PRETTY_FUNCTION__ << " | (primary node add) fall back - " + << "detected !SPX && partition_id == 0" + << "; function = " << std::to_string(i->second.s_function) + << "; partition_id = " << std::to_string(i->second.s_partition_id); + LOG_DEBUG(ss); + } + LOG_DEBUG(ss); + ss << __PRETTY_FUNCTION__ + << " | (primary node add) After AddToDeviceList() -->" + << "\n[node_id = " << std::to_string(i->second.s_node_id) + << "; gpu_id = " << std::to_string(i->second.s_gpu_id) + << "; unique_id = " << std::to_string(i->second.s_unique_id) + << "; location_id = " << std::to_string(i->second.s_location_id) + << "; bdf = " << print_int_as_hex(i->second.s_bdf) + << "; domain = " << print_int_as_hex(i->second.s_domain, true, 2*BYTE) + << "; bus = " << print_int_as_hex(i->second.s_bus, true, BYTE) + << "; device = " << print_int_as_hex(i->second.s_device, true, BYTE) + << "; function = " << std::to_string(i->second.s_function) + << "; partition_id = " << std::to_string(i->second.s_partition_id) + << "], "; + LOG_DEBUG(ss); AddToDeviceList(d_name, UINT64_MAX); } @@ -834,6 +925,12 @@ uint32_t RocmSMI::DiscoverAmdgpuDevices(void) { << "; gpu_id = " << std::to_string(i.second.s_gpu_id) << "; unique_id = " << std::to_string(i.second.s_unique_id) << "; location_id = " << std::to_string(i.second.s_location_id) + << "; bdf = " << print_int_as_hex(i.second.s_bdf) + << "; domain = " << print_int_as_hex(i.second.s_domain, true, 2*BYTE) + << "; bus = " << print_int_as_hex(i.second.s_bus, true, BYTE) + << "; device = " << print_int_as_hex(i.second.s_device, true, BYTE) + << "; function = " << std::to_string(i.second.s_function) + << "; partition_id = " << std::to_string(i.second.s_partition_id) << "], "; } ss << "}"; @@ -909,6 +1006,7 @@ uint32_t RocmSMI::DiscoverAmdgpuDevices(void) { auto removalGpuId = it->second.s_gpu_id; auto removalUniqueId = it->second.s_unique_id; auto removalLocId = it->second.s_location_id; + auto removaldomain = it->second.s_domain; auto nodesErased = 1; primary_location_id = removalLocId; allSystemNodes.erase(it++); @@ -919,6 +1017,7 @@ uint32_t RocmSMI::DiscoverAmdgpuDevices(void) { << "; gpu_id = " << std::to_string(removalGpuId) << "; unique_id = " << std::to_string(removalUniqueId) << "; location_id = " << std::to_string(removalLocId) + << "; removaldomain = " << std::to_string(removaldomain) << "]"; LOG_DEBUG(ss); } @@ -926,15 +1025,34 @@ uint32_t RocmSMI::DiscoverAmdgpuDevices(void) { break; } auto myBdfId = it->second.s_location_id; - AddToDeviceList(secNode, myBdfId); + ss << __PRETTY_FUNCTION__ << " | secondary node add #2; " + << " BDF = " << std::to_string(myBdfId) + << " (" << print_int_as_hex(myBdfId) << ")"; + LOG_DEBUG(ss); + if (doesDeviceSupportPartitions && strCompPartition != "SPX" + && it->second.s_partition_id == 0) { + it->second.s_partition_id = it->second.s_function; + ss << __PRETTY_FUNCTION__ << " | (secondary node add #2) fall back - " + << "detected !SPX && partition_id == 0" + << "; function = " << std::to_string(it->second.s_function) + << "; partition_id = " << std::to_string(it->second.s_partition_id); + LOG_DEBUG(ss); + } ss << __PRETTY_FUNCTION__ - << "\nSECONDARY --> After adding new node; ERASING -> [node_id = " - << std::to_string(it->second.s_node_id) + << " | (secondary node add #2) B4 AddToDeviceList() -->" + << "\n[node_id = " << std::to_string(it->second.s_node_id) << "; gpu_id = " << std::to_string(it->second.s_gpu_id) << "; unique_id = " << std::to_string(it->second.s_unique_id) << "; location_id = " << std::to_string(it->second.s_location_id) - << "]"; + << "; bdf = " << print_int_as_hex(it->second.s_bdf) + << "; domain = " << print_int_as_hex(it->second.s_domain, true, 2*BYTE) + << "; bus = " << print_int_as_hex(it->second.s_bus, true, BYTE) + << "; device = " << print_int_as_hex(it->second.s_device, true, BYTE) + << "; function = " << std::to_string(it->second.s_function) + << "; partition_id = " << std::to_string(it->second.s_partition_id) + << "], "; LOG_DEBUG(ss); + AddToDeviceList(secNode, myBdfId); allSystemNodes.erase(it++); numb_nodes--; cardAdded++; diff --git a/rocm_smi/src/rocm_smi_utils.cc b/rocm_smi/src/rocm_smi_utils.cc index 32f0209654..4bb045c6d7 100755 --- a/rocm_smi/src/rocm_smi_utils.cc +++ b/rocm_smi/src/rocm_smi_utils.cc @@ -1113,6 +1113,7 @@ static std::string print_pnt(rsmi_od_vddc_point_t *pt) { ss << "\t\t** Voltage: " << pt->voltage << " mV\n"; return ss.str(); } + static std::string pt_vddc_curve(rsmi_od_volt_curve *c) { std::ostringstream ss; if (c == nullptr) { @@ -1182,16 +1183,31 @@ bool is_sudo_user() { return isRunningWithSudo; } -rsmi_status_t rsmi_get_gfx_target_version(uint32_t dv_ind, - std::string *gfx_version) { +// string output of gfx_ +rsmi_status_t rsmi_get_gfx_target_version(uint32_t dv_ind, std::string *gfx_version) { std::ostringstream ss; uint64_t kfd_gfx_version = 0; GET_DEV_AND_KFDNODE_FROM_INDX int ret = kfd_node->get_gfx_target_version(&kfd_gfx_version); + uint64_t orig_target_version = 0; + uint64_t major = 0; + uint64_t minor = 0; + uint64_t rev = 0; if (ret == 0) { - ss << "gfx" << kfd_gfx_version; - *gfx_version = ss.str(); + orig_target_version = std::stoull(std::to_string(kfd_gfx_version)); + // separate out parts -> put back into normal graphics version format + major = static_cast((orig_target_version / 10000) * 100); + minor = static_cast((orig_target_version % 10000 / 100) * 10); + if (minor == 0) major *= 10; // 0 as a minor is correct, but bump up by 10 + rev = static_cast(orig_target_version % 100); + *gfx_version = "gfx" + std::to_string(major + minor + rev); + ss << __PRETTY_FUNCTION__ + << " | " << std::dec << "kfd_target_version = " << orig_target_version + << "; major = " << major << "; minor = " << minor << "; rev = " + << rev << "\nReporting rsmi_get_gfx_target_version = " << *gfx_version + << "\n"; + LOG_INFO(ss); return RSMI_STATUS_SUCCESS; } else { *gfx_version = "Unknown"; diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index 5fe6398f26..de2507cab6 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -753,18 +753,54 @@ amdsmi_get_gpu_asic_info(amdsmi_processor_handle processor_handle, amdsmi_asic_i // default to 0xffff as not supported info->oam_id = std::numeric_limits::max(); uint16_t tmp_oam_id = 0; - status = rsmi_wrapper(rsmi_dev_oam_id_get, processor_handle, &(tmp_oam_id)); + status = rsmi_wrapper(rsmi_dev_xgmi_physical_id_get, processor_handle, &(tmp_oam_id)); info->oam_id = tmp_oam_id; // default to 0xffffffff as not supported info->num_of_compute_units = std::numeric_limits::max(); auto tmp_num_of_compute_units = uint32_t(0); status = rsmi_wrapper(amd::smi::rsmi_dev_number_of_computes_get, processor_handle, - &tmp_num_of_compute_units); + &(tmp_num_of_compute_units)); if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS) { info->num_of_compute_units = tmp_num_of_compute_units; } + // default to 0xffffffffffffffff as not supported + info->target_graphics_version = std::numeric_limits::max(); + auto tmp_target_gfx_version = uint64_t(0); + status = rsmi_wrapper(rsmi_dev_target_graphics_version_get, processor_handle, + &(tmp_target_gfx_version)); + if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS) { + info->target_graphics_version = tmp_target_gfx_version; + } + + // default to 0xffffffffffffffff as not supported + info->kfd_id = std::numeric_limits::max(); + auto tmp_kfd_id = uint64_t(0); + status = rsmi_wrapper(rsmi_dev_guid_get, processor_handle, + &(tmp_kfd_id)); + if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS) { + info->kfd_id = tmp_kfd_id; + } + + // default to 0xffffffff as not supported + info->node_id = std::numeric_limits::max(); + auto tmp_node_id = uint32_t(0); + status = rsmi_wrapper(rsmi_dev_node_id_get, processor_handle, + &(tmp_node_id)); + if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS) { + info->node_id = tmp_node_id; + } + + // default to 0xffffffff as not supported + info->partition_id = std::numeric_limits::max(); + auto tmp_partition_id = uint32_t(0); + status = rsmi_wrapper(rsmi_dev_partition_id_get, processor_handle, + &(tmp_partition_id)); + if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS) { + info->partition_id = tmp_partition_id; + } + return AMDSMI_STATUS_SUCCESS; } diff --git a/src/amd_smi/amd_smi_drm.cc b/src/amd_smi/amd_smi_drm.cc index a17ed40843..f68fd96aa6 100644 --- a/src/amd_smi/amd_smi_drm.cc +++ b/src/amd_smi/amd_smi_drm.cc @@ -52,6 +52,8 @@ #include "amd_smi/impl/amd_smi_common.h" #include "rocm_smi/rocm_smi.h" #include "rocm_smi/rocm_smi_main.h" +#include "rocm_smi/rocm_smi_utils.h" +#include "rocm_smi/rocm_smi_logger.h" namespace amd { namespace smi { @@ -173,10 +175,26 @@ amdsmi_status_t AMDSmiDrm::init() { } has_valid_fds = true; - bdf.function_number = device->businfo.pci->func; - bdf.device_number = device->businfo.pci->dev; - bdf.bus_number = device->businfo.pci->bus; - bdf.domain_number = device->businfo.pci->domain; + std::ostringstream ss; + uint64_t bdf_rocm = 0; + rsmi_dev_pci_id_get(i, &bdf_rocm); + ss << __PRETTY_FUNCTION__ << " | " + << "bdf_rocm | Received bdf: " + << "\nWhole BDF: " << amd::smi::print_unsigned_hex_and_int(bdf_rocm) + << "\nDomain = " + << amd::smi::print_unsigned_hex_and_int((bdf_rocm & 0xFFFFFFFF00000000) >> 32) + << "; \nBus# = " << amd::smi::print_unsigned_hex_and_int((bdf_rocm & 0xFF00) >> 8) + << "; \nDevice# = "<< amd::smi::print_unsigned_hex_and_int((bdf_rocm & 0xF8) >> 3) + << "; \nFunction# = " << amd::smi::print_unsigned_hex_and_int((bdf_rocm & 0x7)); + LOG_INFO(ss); + bdf.function_number = ((bdf_rocm & 0x7)); + bdf.device_number = ((bdf_rocm & 0xF8) >> 3); + bdf.bus_number = ((bdf_rocm & 0xFF00) >> 8); + bdf.domain_number = ((bdf_rocm & 0xFFFFFFFF00000000) >> 32); + ss << __PRETTY_FUNCTION__ << " | " << "Received bdf: Domain = " << bdf.domain_number + << "; Bus# = " << bdf.bus_number << "; Device# = "<< bdf.device_number + << "; Function# = " << bdf.function_number; + LOG_INFO(ss); vendor_id = device->deviceinfo.pci->vendor_id; @@ -309,6 +327,14 @@ amdsmi_status_t AMDSmiDrm::get_drm_fd_by_index(uint32_t gpu_index, uint32_t *fd_ amdsmi_status_t AMDSmiDrm::get_bdf_by_index(uint32_t gpu_index, amdsmi_bdf_t *bdf_info) const { if (gpu_index + 1 > drm_bdfs_.size()) return AMDSMI_STATUS_NOT_SUPPORTED; *bdf_info = drm_bdfs_[gpu_index]; + std::ostringstream ss; + ss << __PRETTY_FUNCTION__ << " | gpu_index = " << gpu_index + << "; \nreceived bdf: Domain = " << bdf_info->domain_number + << "; \nBus# = " << bdf_info->bus_number + << "; \nDevice# = " << bdf_info->device_number + << "; \nFunction# = " << bdf_info->function_number + << "\nReturning = AMDSMI_STATUS_SUCCESS"; + LOG_INFO(ss); return AMDSMI_STATUS_SUCCESS; } diff --git a/tests/amd_smi_test/functional/sys_info_read.cc b/tests/amd_smi_test/functional/sys_info_read.cc index aa337bc210..1dcc38aebe 100755 --- a/tests/amd_smi_test/functional/sys_info_read.cc +++ b/tests/amd_smi_test/functional/sys_info_read.cc @@ -48,6 +48,7 @@ #include #include +#include #include #include "amd_smi/amdsmi.h" @@ -58,7 +59,9 @@ TestSysInfoRead::TestSysInfoRead() : TestBase() { set_title("AMDSMI System Info Read Test"); set_description("This test verifies that system information such as the " - "BDFID, AMDSMI version, VBIOS version, etc. can be read properly."); + "BDFID, AMDSMI version, VBIOS version, " + "vendor_id, unique_id, target_gfx_version, kfd_id, node_id, partition_id, etc. " + "can be read properly."); } TestSysInfoRead::~TestSysInfoRead(void) { @@ -150,22 +153,39 @@ void TestSysInfoRead::Run(void) { ASSERT_EQ(err, AMDSMI_STATUS_INVAL); - // vendor_id, unique_id - amdsmi_asic_info_t asci_info; - err = amdsmi_get_gpu_asic_info(processor_handles_[0], &asci_info); + // vendor_id, unique_id, target_gfx_version, kfd_id, node_id, partition_id + amdsmi_asic_info_t asci_info = {}; + err = amdsmi_get_gpu_asic_info(processor_handles_[i], &asci_info); if (err == AMDSMI_STATUS_NOT_SUPPORTED) { std::cout << "\t**amdsmi_dev_unique_id() is not supported" " on this machine" << std::endl; + EXPECT_EQ(asci_info.target_graphics_version, std::numeric_limits::max()); + EXPECT_EQ(asci_info.kfd_id, std::numeric_limits::max()); + EXPECT_EQ(asci_info.node_id, std::numeric_limits::max()); + EXPECT_EQ(asci_info.partition_id, std::numeric_limits::max()); // Verify api support checking functionality is working err = amdsmi_get_gpu_asic_info(processor_handles_[i], nullptr); ASSERT_EQ(err, AMDSMI_STATUS_NOT_SUPPORTED); } else { if (err == AMDSMI_STATUS_SUCCESS) { IF_VERB(STANDARD) { - std:: cout << "\t**GPU PCIe Vendor : " + std:: cout << "\t**GPU PCIe Vendor : " << asci_info.vendor_name << std::endl; + std::cout << "\t**Target GFX version: " << std::dec + << asci_info.target_graphics_version << "\n"; + std::cout << "\t**KFD ID: " << std::dec + << asci_info.kfd_id << "\n"; + std::cout << "\t**Node ID: " << std::dec + << asci_info.node_id << "\n"; + std::cout << "\t**Partition ID: " << std::dec + << asci_info.partition_id << "\n"; } + EXPECT_EQ(err, AMDSMI_STATUS_SUCCESS); + EXPECT_NE(asci_info.target_graphics_version, std::numeric_limits::max()); + EXPECT_NE(asci_info.kfd_id, std::numeric_limits::max()); + EXPECT_NE(asci_info.node_id, std::numeric_limits::max()); + EXPECT_NE(asci_info.partition_id, std::numeric_limits::max()); // Verify api support checking functionality is working err = amdsmi_get_gpu_asic_info(processor_handles_[i], nullptr); ASSERT_EQ(err, AMDSMI_STATUS_INVAL); diff --git a/tests/amd_smi_test/functional/temp_read.cc b/tests/amd_smi_test/functional/temp_read.cc index 5169047767..097771c653 100755 --- a/tests/amd_smi_test/functional/temp_read.cc +++ b/tests/amd_smi_test/functional/temp_read.cc @@ -137,8 +137,7 @@ void TestTempRead::Run(void) { ASSERT_EQ(err, AMDSMI_STATUS_INVAL); IF_VERB(STANDARD) { - std::cout << "\t**" << label << ": " << val_i64/1000 << - "C" << std::endl; + std::cout << "\t**" << label << ": " << val_i64 << "C" << std::endl; } }; for (type = AMDSMI_TEMPERATURE_TYPE_FIRST; type <= AMDSMI_TEMPERATURE_TYPE__MAX; ++type) { From 397d8d933983bbe2ae626ccfe0c9e3b0ff6e1d5d Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Wed, 11 Sep 2024 14:24:37 -0500 Subject: [PATCH 03/32] Bump Version to 24.6.4.0 Signed-off-by: Maisam Arif Change-Id: I75b6039c221ecea1e36a451d93bb52b5406bd106 --- CMakeLists.txt | 2 +- amdsmi_cli/README.md | 2 +- docs/doxygen/Doxyfile | 2 +- docs/how-to/using-AMD-SMI-CLI-tool.md | 2 +- include/amd_smi/amdsmi.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 78098d2298..ba28bf6324 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ find_program(GIT NAMES git) ## Setup the package version based on git tags. set(PKG_VERSION_GIT_TAG_PREFIX "amdsmi_pkg_ver") -get_package_version_number("24.6.3" ${PKG_VERSION_GIT_TAG_PREFIX} GIT) +get_package_version_number("24.6.4" ${PKG_VERSION_GIT_TAG_PREFIX} GIT) message("Package version: ${PKG_VERSION_STR}") set(${AMD_SMI_LIBS_TARGET}_VERSION_MAJOR "${CPACK_PACKAGE_VERSION_MAJOR}") set(${AMD_SMI_LIBS_TARGET}_VERSION_MINOR "${CPACK_PACKAGE_VERSION_MINOR}") diff --git a/amdsmi_cli/README.md b/amdsmi_cli/README.md index 378755bae7..b221400972 100644 --- a/amdsmi_cli/README.md +++ b/amdsmi_cli/README.md @@ -81,7 +81,7 @@ AMD-SMI reports the version and current platform detected when running the comma ~$ amd-smi usage: amd-smi [-h] ... -AMD System Management Interface | Version: 24.6.3.0 | ROCm version: 6.2.1 | Platform: Linux Baremetal +AMD System Management Interface | Version: 24.6.4.0 | ROCm version: 6.2.2 | Platform: Linux Baremetal options: -h, --help show this help message and exit diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index 0b62c6bc91..03b9e18e86 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -48,7 +48,7 @@ PROJECT_NAME = AMD SMI # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "24.6.3.0" +PROJECT_NUMBER = "24.6.4.0" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/docs/how-to/using-AMD-SMI-CLI-tool.md b/docs/how-to/using-AMD-SMI-CLI-tool.md index e35f0a7c6e..c3f17904ba 100644 --- a/docs/how-to/using-AMD-SMI-CLI-tool.md +++ b/docs/how-to/using-AMD-SMI-CLI-tool.md @@ -8,7 +8,7 @@ AMD-SMI reports the version and current platform detected when running the comma ~$ amd-smi usage: amd-smi [-h] ... -AMD System Management Interface | Version: 24.6.3.0 | ROCm version: 6.2.1 | Platform: Linux Baremetal +AMD System Management Interface | Version: 24.6.4.0 | ROCm version: 6.2.2 | Platform: Linux Baremetal options: -h, --help show this help message and exit diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 1a8f5637a2..81564d9c29 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -154,7 +154,7 @@ typedef enum { #define AMDSMI_LIB_VERSION_MAJOR 6 //! Minor version should be updated for each API change, but without changing headers -#define AMDSMI_LIB_VERSION_MINOR 3 +#define AMDSMI_LIB_VERSION_MINOR 4 //! Release version should be set to 0 as default and can be updated by the PMs for each CSP point release #define AMDSMI_LIB_VERSION_RELEASE 0 From 8b3d45e3011e7deb797e8acd952041c685102d54 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Thu, 5 Sep 2024 09:45:02 -0500 Subject: [PATCH 04/32] Udpated amdsmi_quick_start.py with cpus preloaded Signed-off-by: Maisam Arif Change-Id: I4a5ca0d30d2fce3b4fa3a6a13599a18b0dd16ce7 --- tools/amdsmi_quick_start.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/amdsmi_quick_start.py b/tools/amdsmi_quick_start.py index 2108e29f91..caa3bece26 100644 --- a/tools/amdsmi_quick_start.py +++ b/tools/amdsmi_quick_start.py @@ -45,6 +45,8 @@ signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) atexit.register(amdsmi_shut_down) -devices = amdsmi_get_processor_handles() +gpus = amdsmi_get_socket_handles() +cpus = amdsmi_get_cpusocket_handles() -print(f"devices variable populated with:{devices}") +print(f"gpus variable populated with:{gpus}") +print(f"cpus variable populated with:{cpus}") From 787d4462fa02a82c29745049b9ba2a84b749631f Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Wed, 11 Sep 2024 23:26:30 -0500 Subject: [PATCH 05/32] [SWDEV-482412] Optimized PCIe Bandwidth gpu_metrics calls Signed-off-by: Maisam Arif Change-Id: Ib37d232b94a080e9b490dd065628d2567aaf4642 --- CHANGELOG.md | 5 +- amdsmi_cli/amdsmi_commands.py | 205 +++++++++++++------------ amdsmi_cli/amdsmi_logger.py | 2 +- docs/how-to/using-amdsmi-for-python.md | 2 +- py-interface/README.md | 2 +- py-interface/amdsmi_interface.py | 8 +- tools/amdsmi_quick_start.py | 2 +- 7 files changed, 123 insertions(+), 103 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 40fc986d49..3099351e99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -274,7 +274,8 @@ GPU: 1 ### Optimizations -- N/A +- **Adjusted ordering of gpu_metrics calls to ensure that pcie_bw values remain stable in `amd-smi metric` & `amd-smi monitor`**. +With this change additional padding was added to PCIE_BW `amd-smi monitor --pcie` ### Resolved issues @@ -331,6 +332,8 @@ GPU POWER GPU_TEMP MEM_TEMP VRAM_USED VRAM_TOTAL 31 227 W 51 °C 49 °C 283 MB 196300 MB ``` +- **Fixed incorrect implementation of the Python API `amdsmi_get_gpu_metrics_header_info()`**. + ### Known issues - N/A diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index c3b1a158da..82964f4776 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -361,7 +361,6 @@ class AMDSMICommands(): static_dict["asic"] = "N/A" logging.debug("Failed to get asic info for gpu %s | %s", gpu_id, e.get_error_info()) -# static["asic"] = "N/A" try: subsystem_id = amdsmi_interface.amdsmi_get_gpu_subsystem_id(args.gpu) if static_dict["asic"] != "N/A": @@ -1299,13 +1298,19 @@ class AMDSMICommands(): # Get gpu_id for logging gpu_id = self.helpers.get_gpu_id_from_device_handle(args.gpu) - # Put the metrics table in the debug logs - try: - gpu_metric_debug_info = amdsmi_interface.amdsmi_get_gpu_metrics_info(args.gpu) - gpu_metric_str = json.dumps(gpu_metric_debug_info, indent=4) - logging.debug("GPU Metrics table for %s | %s", gpu_id, gpu_metric_str) - except amdsmi_exception.AmdSmiLibraryException as e: - logging.debug("Unabled to load GPU Metrics table for %s | %s", gpu_id, e.err_info) + if args.loglevel == "DEBUG": + try: + # Get GPU Metrics table version + gpu_metric_version_info = amdsmi_interface.amdsmi_get_gpu_metrics_header_info(args.gpu) + gpu_metric_version_str = json.dumps(gpu_metric_version_info, indent=4) + logging.debug("GPU Metrics table Version for GPU %s | %s", gpu_id, gpu_metric_version_str) + + # Get GPU Metrics table + gpu_metric_debug_info = amdsmi_interface.amdsmi_get_gpu_metrics_info(args.gpu) + gpu_metric_str = json.dumps(gpu_metric_debug_info, indent=4) + logging.debug("GPU Metrics table for GPU %s | %s", gpu_id, gpu_metric_str) + except amdsmi_exception.AmdSmiLibraryException as e: + logging.debug("Unabled to load GPU Metrics table for %s | %s", gpu_id, e.err_info) logging.debug(f"Metric Arg information for GPU {gpu_id} on {self.helpers.os_info()}") logging.debug(f"Args: {current_platform_args}") @@ -1319,6 +1324,88 @@ class AMDSMICommands(): # Add timestamp and store values for specified arguments values_dict = {} + # Populate the pcie_dict first due to multiple gpu metrics calls incorrectly increasing bandwidth + if "pcie" in current_platform_args: + if args.pcie: + pcie_dict = {"width": "N/A", + "speed": "N/A", + "bandwidth": "N/A", + "replay_count" : "N/A", + "l0_to_recovery_count" : "N/A", + "replay_roll_over_count" : "N/A", + "nak_sent_count" : "N/A", + "nak_received_count" : "N/A", + "current_bandwidth_sent": "N/A", + "current_bandwidth_received": "N/A", + "max_packet_size": "N/A"} + + try: + pcie_metric = amdsmi_interface.amdsmi_get_pcie_info(args.gpu)['pcie_metric'] + logging.debug("PCIE Metric for %s | %s", gpu_id, pcie_metric) + + pcie_dict['width'] = pcie_metric['pcie_width'] + + if pcie_metric['pcie_speed'] != "N/A": + if pcie_metric['pcie_speed'] % 1000 != 0: + pcie_speed_GTs_value = round(pcie_metric['pcie_speed'] / 1000, 1) + else: + pcie_speed_GTs_value = round(pcie_metric['pcie_speed'] / 1000) + pcie_dict['speed'] = pcie_speed_GTs_value + + pcie_dict['bandwidth'] = pcie_metric['pcie_bandwidth'] + pcie_dict['replay_count'] = pcie_metric['pcie_replay_count'] + pcie_dict['l0_to_recovery_count'] = pcie_metric['pcie_l0_to_recovery_count'] + pcie_dict['replay_roll_over_count'] = pcie_metric['pcie_replay_roll_over_count'] + pcie_dict['nak_received_count'] = pcie_metric['pcie_nak_received_count'] + pcie_dict['nak_sent_count'] = pcie_metric['pcie_nak_sent_count'] + + pcie_speed_unit = 'GT/s' + pcie_bw_unit = 'Mb/s' + if self.logger.is_human_readable_format(): + if pcie_dict['speed'] != "N/A": + pcie_dict['speed'] = f"{pcie_dict['speed']} {pcie_speed_unit}" + if pcie_dict['bandwidth'] != "N/A": + pcie_dict['bandwidth'] = f"{pcie_dict['bandwidth']} {pcie_bw_unit}" + if self.logger.is_json_format(): + if pcie_dict['speed'] != "N/A": + pcie_dict['speed'] = {"value" : pcie_dict['speed'], + "unit" : pcie_speed_unit} + if pcie_dict['bandwidth'] != "N/A": + pcie_dict['bandwidth'] = {"value" : pcie_dict['bandwidth'], + "unit" : pcie_bw_unit} + except amdsmi_exception.AmdSmiLibraryException as e: + logging.debug("Failed to get pcie link status for gpu %s | %s", gpu_id, e.get_error_info()) + + try: + pcie_bw = amdsmi_interface.amdsmi_get_gpu_pci_throughput(args.gpu) + sent = pcie_bw['sent'] * pcie_bw['max_pkt_sz'] + received = pcie_bw['received'] * pcie_bw['max_pkt_sz'] + + bw_unit = "Mb/s" + packet_size_unit = "B" + if sent > 0: + sent = sent // 1024 // 1024 + if received > 0: + received = received // 1024 // 1024 + + if self.logger.is_human_readable_format(): + sent = f"{sent} {bw_unit}" + received = f"{received} {bw_unit}" + pcie_bw['max_pkt_sz'] = f"{pcie_bw['max_pkt_sz']} {packet_size_unit}" + if self.logger.is_json_format(): + sent = {"value" : sent, + "unit" : bw_unit} + received = {"value" : received, + "unit" : bw_unit} + pcie_bw['max_pkt_sz'] = {"value" : pcie_bw['max_pkt_sz'], + "unit" : packet_size_unit} + + pcie_dict['current_bandwidth_sent'] = sent + pcie_dict['current_bandwidth_received'] = received + pcie_dict['max_packet_size'] = pcie_bw['max_pkt_sz'] + except amdsmi_exception.AmdSmiLibraryException as e: + logging.debug("Failed to get pcie bandwidth for gpu %s | %s", gpu_id, e.get_error_info()) + if "usage" in current_platform_args: if args.usage: try: @@ -1648,89 +1735,12 @@ class AMDSMICommands(): "unit" : temp_unit_json} values_dict['temperature'] = temperatures + + # Since pcie bw may increase based on frequent metrics calls, we add it to the output here, but the populate the values first if "pcie" in current_platform_args: if args.pcie: - pcie_dict = {"width": "N/A", - "speed": "N/A", - "bandwidth": "N/A", - "replay_count" : "N/A", - "l0_to_recovery_count" : "N/A", - "replay_roll_over_count" : "N/A", - "nak_sent_count" : "N/A", - "nak_received_count" : "N/A", - "current_bandwidth_sent": "N/A", - "current_bandwidth_received": "N/A", - "max_packet_size": "N/A"} - - try: - pcie_metric = amdsmi_interface.amdsmi_get_pcie_info(args.gpu)['pcie_metric'] - logging.debug("PCIE Metric for %s | %s", gpu_id, pcie_metric) - - pcie_dict['width'] = pcie_metric['pcie_width'] - - if pcie_metric['pcie_speed'] != "N/A": - if pcie_metric['pcie_speed'] % 1000 != 0: - pcie_speed_GTs_value = round(pcie_metric['pcie_speed'] / 1000, 1) - else: - pcie_speed_GTs_value = round(pcie_metric['pcie_speed'] / 1000) - pcie_dict['speed'] = pcie_speed_GTs_value - - pcie_dict['bandwidth'] = pcie_metric['pcie_bandwidth'] - pcie_dict['replay_count'] = pcie_metric['pcie_replay_count'] - pcie_dict['l0_to_recovery_count'] = pcie_metric['pcie_l0_to_recovery_count'] - pcie_dict['replay_roll_over_count'] = pcie_metric['pcie_replay_roll_over_count'] - pcie_dict['nak_received_count'] = pcie_metric['pcie_nak_received_count'] - pcie_dict['nak_sent_count'] = pcie_metric['pcie_nak_sent_count'] - - pcie_speed_unit = 'GT/s' - pcie_bw_unit = 'Mb/s' - if self.logger.is_human_readable_format(): - if pcie_dict['speed'] != "N/A": - pcie_dict['speed'] = f"{pcie_dict['speed']} {pcie_speed_unit}" - if pcie_dict['bandwidth'] != "N/A": - pcie_dict['bandwidth'] = f"{pcie_dict['bandwidth']} {pcie_bw_unit}" - if self.logger.is_json_format(): - if pcie_dict['speed'] != "N/A": - pcie_dict['speed'] = {"value" : pcie_dict['speed'], - "unit" : pcie_speed_unit} - if pcie_dict['bandwidth'] != "N/A": - pcie_dict['bandwidth'] = {"value" : pcie_dict['bandwidth'], - "unit" : pcie_bw_unit} - - except amdsmi_exception.AmdSmiLibraryException as e: - logging.debug("Failed to get pcie link status for gpu %s | %s", gpu_id, e.get_error_info()) - - try: - pcie_bw = amdsmi_interface.amdsmi_get_gpu_pci_throughput(args.gpu) - sent = pcie_bw['sent'] * pcie_bw['max_pkt_sz'] - received = pcie_bw['received'] * pcie_bw['max_pkt_sz'] - - bw_unit = "Mb/s" - packet_size_unit = "B" - if sent > 0: - sent = sent // 1024 // 1024 - if received > 0: - received = received // 1024 // 1024 - - if self.logger.is_human_readable_format(): - sent = f"{sent} {bw_unit}" - received = f"{received} {bw_unit}" - pcie_bw['max_pkt_sz'] = f"{pcie_bw['max_pkt_sz']} {packet_size_unit}" - if self.logger.is_json_format(): - sent = {"value" : sent, - "unit" : bw_unit} - received = {"value" : received, - "unit" : bw_unit} - pcie_bw['max_pkt_sz'] = {"value" : pcie_bw['max_pkt_sz'], - "unit" : packet_size_unit} - - pcie_dict['current_bandwidth_sent'] = sent - pcie_dict['current_bandwidth_received'] = received - pcie_dict['max_packet_size'] = pcie_bw['max_pkt_sz'] - except amdsmi_exception.AmdSmiLibraryException as e: - logging.debug("Failed to get pcie bandwidth for gpu %s | %s", gpu_id, e.get_error_info()) - values_dict['pcie'] = pcie_dict + if "ecc" in current_platform_args: if args.ecc: ecc_count = {} @@ -4360,6 +4370,15 @@ class AMDSMICommands(): self.logger.store_output(args.gpu, 'timestamp', int(time.time())) self.logger.table_header = 'TIMESTAMP'.rjust(10) + ' ' + self.logger.table_header + # Store the pcie_bw values due to possible increase in bandwidth due to repeated gpu_metrics calls + if args.pcie: + try: + pcie_info = amdsmi_interface.amdsmi_get_pcie_info(args.gpu)['pcie_metric'] + except amdsmi_exception.AmdSmiLibraryException as e: + pcie_info = "N/A" + logging.debug("Failed to get pci bandwidth on gpu %s | %s", gpu_id, e.get_error_info()) + + # Resume regular ordering of values if args.power_usage: try: gpu_metrics_info = amdsmi_interface.amdsmi_get_gpu_metrics_info(args.gpu) @@ -4601,15 +4620,13 @@ class AMDSMICommands(): self.logger.table_header += 'VRAM_USED'.rjust(11) self.logger.table_header += 'VRAM_TOTAL'.rjust(12) if args.pcie: - try: - pcie_info = amdsmi_interface.amdsmi_get_pcie_info(args.gpu)['pcie_metric'] + if pcie_info != "N/A": pcie_bw_unit = 'Mb/s' monitor_values['pcie_bw'] = self.helpers.unit_format(self.logger, pcie_info['pcie_bandwidth'], pcie_bw_unit) - except amdsmi_exception.AmdSmiLibraryException as e: - monitor_values['pcie_bw'] = "N/A" - logging.debug("Failed to get pci bandwidth on gpu %s | %s", gpu_id, e.get_error_info()) + else: + monitor_values['pcie_bw'] = pcie_info - self.logger.table_header += 'PCIE_BW'.rjust(10) + self.logger.table_header += 'PCIE_BW'.rjust(12) self.logger.store_output(args.gpu, 'values', monitor_values) diff --git a/amdsmi_cli/amdsmi_logger.py b/amdsmi_cli/amdsmi_logger.py index 12fdd0faf8..08e0070852 100644 --- a/amdsmi_cli/amdsmi_logger.py +++ b/amdsmi_cli/amdsmi_logger.py @@ -121,7 +121,7 @@ class AMDSMILogger(): table_values += string_value.rjust(7) elif key in ('gfx_clock', 'mem_clock', 'encoder_clock', 'decoder_clock', 'vram_used'): table_values += string_value.rjust(11) - elif key == 'vram_total' or 'ecc' in key: + elif key == 'vram_total' or 'ecc' in key or key == 'pcie_bw': table_values += string_value.rjust(12) elif key in ['pcie_replay']: table_values += string_value.rjust(13) diff --git a/docs/how-to/using-amdsmi-for-python.md b/docs/how-to/using-amdsmi-for-python.md index 7a454b1025..6cec1385a2 100644 --- a/docs/how-to/using-amdsmi-for-python.md +++ b/docs/how-to/using-amdsmi-for-python.md @@ -810,7 +810,7 @@ except AmdSmiException as e: ### amdsmi_get_pcie_info -Description: Returns the pcie metric and static information for the given GPU. +Description: Returns the pcie metric and static information for the given GPU. For accurate PCIe Bandwidth measurements it is recommended to use this function once per 1000ms It is not supported on virtual machine guest Input parameters: diff --git a/py-interface/README.md b/py-interface/README.md index 7a454b1025..6cec1385a2 100644 --- a/py-interface/README.md +++ b/py-interface/README.md @@ -810,7 +810,7 @@ except AmdSmiException as e: ### amdsmi_get_pcie_info -Description: Returns the pcie metric and static information for the given GPU. +Description: Returns the pcie metric and static information for the given GPU. For accurate PCIe Bandwidth measurements it is recommended to use this function once per 1000ms It is not supported on virtual machine guest Input parameters: diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index 07188e7902..212571f2bd 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -4073,12 +4073,12 @@ def amdsmi_get_gpu_metrics_header_info( header_info = amdsmi_wrapper.amd_metrics_table_header_t() _check_res( amdsmi_wrapper.amdsmi_get_gpu_metrics_header_info( - ctypes.byref(header_info) + processor_handle, ctypes.byref(header_info) ) ) return { - "structure_size": header_info.structure_size.value, - "format_revision": header_info.format_revision.value, - "content_revision": header_info.content_revision.value + "structure_size": header_info.structure_size, + "format_revision": header_info.format_revision, + "content_revision": header_info.content_revision } diff --git a/tools/amdsmi_quick_start.py b/tools/amdsmi_quick_start.py index caa3bece26..fb08e6d1e6 100644 --- a/tools/amdsmi_quick_start.py +++ b/tools/amdsmi_quick_start.py @@ -45,7 +45,7 @@ signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) atexit.register(amdsmi_shut_down) -gpus = amdsmi_get_socket_handles() +gpus = amdsmi_get_processor_handles() cpus = amdsmi_get_cpusocket_handles() print(f"gpus variable populated with:{gpus}") From f34eb94ef29f87c47620f50597ee49b7c5f2f652 Mon Sep 17 00:00:00 2001 From: Ryo Ficano Date: Mon, 9 Sep 2024 13:43:03 -0500 Subject: [PATCH 06/32] [SWDEV-482963] [Test updates] Add new tests for p0 items - BM Change-Id: I3266ff7ab14959f1824f408a44e82b861d88d61f Signed-off-by: Ryo Ficano --- pytest/integration_test.py | 163 +++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) diff --git a/pytest/integration_test.py b/pytest/integration_test.py index 2a3367323c..4c160f6589 100755 --- a/pytest/integration_test.py +++ b/pytest/integration_test.py @@ -399,6 +399,169 @@ class TestAmdSmiPythonInterface(unittest.TestCase): def test_walkthrough(self): walk_through(self) + # Not supported in Navi21 + @handle_exceptions + def test_block_ecc_ras(self): + processors = amdsmi.amdsmi_get_processor_handles() + self.assertGreaterEqual(len(processors), 1) + self.assertLessEqual(len(processors), 32) + gpu_blocks = { + "INVALID": amdsmi.AmdSmiGpuBlock.INVALID, + "UMC": amdsmi.AmdSmiGpuBlock.UMC, + "SDMA": amdsmi.AmdSmiGpuBlock.SDMA, + "GFX": amdsmi.AmdSmiGpuBlock.GFX, + "MMHUB": amdsmi.AmdSmiGpuBlock.MMHUB, + "ATHUB": amdsmi.AmdSmiGpuBlock.ATHUB, + "PCIE_BIF": amdsmi.AmdSmiGpuBlock.PCIE_BIF, + "HDP": amdsmi.AmdSmiGpuBlock.HDP, + "XGMI_WAFL": amdsmi.AmdSmiGpuBlock.XGMI_WAFL, + "DF": amdsmi.AmdSmiGpuBlock.DF, + "SMN": amdsmi.AmdSmiGpuBlock.SMN, + "SEM": amdsmi.AmdSmiGpuBlock.SEM, + "MP0": amdsmi.AmdSmiGpuBlock.MP0, + "MP1": amdsmi.AmdSmiGpuBlock.MP1, + "FUSE": amdsmi.AmdSmiGpuBlock.FUSE, + "MCA": amdsmi.AmdSmiGpuBlock.MCA, + "VCN": amdsmi.AmdSmiGpuBlock.VCN, + "JPEG": amdsmi.AmdSmiGpuBlock.JPEG, + "IH": amdsmi.AmdSmiGpuBlock.IH, + "MPIO": amdsmi.AmdSmiGpuBlock.MPIO, + "RESERVED": amdsmi.AmdSmiGpuBlock.RESERVED + } + for i in range(0, len(processors)): + bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) + print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) + print("\n###Test amdsmi_get_gpu_ecc_count \n") + for block_name, block_code in gpu_blocks.items(): + ecc_count = amdsmi.amdsmi_get_gpu_ecc_count( + processors[i], block_code, ) + print(" Number of uncorrectable errors for {}: {}".format( + block_name, ecc_count['uncorrectable_count'])) + print(" Number of correctable errors for {}: {}".format( + block_name, ecc_count['correctable_count'])) + print(" Number of deferred errors for {}: {}".format( + block_name, ecc_count['deferred_count'])) + self.assertGreaterEqual(ecc_count['uncorrectable_count'], 0) + self.assertGreaterEqual(ecc_count['correctable_count'], 0) + self.assertGreaterEqual(ecc_count['deferred_count'], 0) + print("\n###Test amdsmi_get_gpu_ras_block_features_enabled \n") + ras_enabled = amdsmi.amdsmi_get_gpu_ras_block_features_enabled( + processors[i], block_code) + print(" RAS enabled for {}: {}".format( + block_name, ras_enabled)) + print() + print() + + # TO DO + @handle_exceptions + def test_gpu_utilization(self): + processors = amdsmi.amdsmi_get_processor_handles() + self.assertGreaterEqual(len(processors), 1) + self.assertLessEqual(len(processors), 32) + utilization_counter = { + "COARSE_GRAIN_GFX_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY, + "COARSE_GRAIN_MEM_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.COARSE_GRAIN_MEM_ACTIVITY, + "COARSE_DECODER_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.COARSE_DECODER_ACTIVITY, + "FINE_GRAIN_GFX_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.FINE_GRAIN_GFX_ACTIVITY, + "FINE_GRAIN_MEM_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.FINE_GRAIN_MEM_ACTIVITY, + "FINE_DECODER_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.FINE_DECODER_ACTIVITY, + "UTILIZATION_COUNTER_FIRST": amdsmi.AmdSmiUtilizationCounterType.UTILIZATION_COUNTER_FIRST, + "UTILIZATION_COUNTER_LAST": amdsmi.AmdSmiUtilizationCounterType.UTILIZATION_COUNTER_LAST + } + for i in range(0, len(processors)): + bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) + print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) + print("\n###Test amdsmi_get_utilization_count \n") + # for counter_name, counter_code in utilization_counter.items(): + utilization_count = amdsmi.amdsmi_get_utilization_count( + processors[i], utilization_counter["COARSE_GRAIN_GFX_ACTIVITY"]) + print(" Utilization count for {} is: {} %".format( + "UTILIZATION_COUNTER_FIRST", utilization_count)) + print() + + def test_process_list(self): + processors = amdsmi.amdsmi_get_processor_handles() + self.assertGreaterEqual(len(processors), 1) + self.assertLessEqual(len(processors), 32) + for i in range(0, len(processors)): + bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) + print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) + print("\n###Test amdsmi_get_gpu_process_list \n") + process_list = amdsmi.amdsmi_get_gpu_process_list(processors[i]) + print(" Process list: {}".format(process_list)) + print() + + def test_socket_info(self): + sockets = amdsmi.amdsmi_get_socket_handles() + for i in range(0, len(sockets)): + print("\n\n###Test Socket {}".format(i)) + print("\n###Test amdsmi_get_socket_handles and amdsmi_get_socket_info \n") + socket_name = amdsmi.amdsmi_get_socket_info(sockets[i]) + print(" Socket: {}".format(socket_name)) + print() + + def test_processor_type(self): + processors = amdsmi.amdsmi_get_processor_handles() + self.assertGreaterEqual(len(processors), 1) + self.assertLessEqual(len(processors), 32) + for i in range(0, len(processors)): + bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) + print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) + print("\n###Test amdsmi_get_processor_type \n") + processor_type = amdsmi.amdsmi_get_processor_type(processors[i]) + print(" Processor type is: {}".format(processor_type['processor_type'])) + print() + + def test_clk_frequency(self): + processors = amdsmi.amdsmi_get_processor_handles() + self.assertGreaterEqual(len(processors), 1) + self.assertLessEqual(len(processors), 32) + for i in range(0, len(processors)): + bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) + print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) + print("\n###Test amdsmi_get_clk_freq \n") + clock_frequency = amdsmi.amdsmi_get_clk_freq( + processors[i], amdsmi.AmdSmiClkType.SYS) + print(" Clock frequency for SYS is: {}".format(clock_frequency)) + clock_frequency = amdsmi.amdsmi_get_clk_freq( + processors[i], amdsmi.AmdSmiClkType.DF) + print(" Clock frequency for DF is: {}".format(clock_frequency)) + clock_frequency = amdsmi.amdsmi_get_clk_freq( + processors[i], amdsmi.AmdSmiClkType.DCEF) + print(" Clock frequency for DCEF is: {}".format(clock_frequency)) + print() + + def test_memory(self): + processors = amdsmi.amdsmi_get_processor_handles() + self.assertGreaterEqual(len(processors), 1) + self.assertLessEqual(len(processors), 32) + for i in range(0, len(processors)): + bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) + print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) + print("\n###Test amdsmi_get_gpu_memory_usage \n") + memory_usage = amdsmi.amdsmi_get_gpu_memory_usage( + processors[i], amdsmi.AmdSmiMemoryType.VRAM) + print(" Memory usage for VRAM is: {}".format(memory_usage)) + memory_usage = amdsmi.amdsmi_get_gpu_memory_usage( + processors[i], amdsmi.AmdSmiMemoryType.VIS_VRAM) + print(" Memory usage for VIS_VRAM is: {}".format(memory_usage)) + memory_usage = amdsmi.amdsmi_get_gpu_memory_usage( + processors[i], amdsmi.AmdSmiMemoryType.GTT) + print(" Memory usage for GTT is: {}".format(memory_usage)) + print() + + def test_vendor_name(self): + processors = amdsmi.amdsmi_get_processor_handles() + self.assertGreaterEqual(len(processors), 1) + self.assertLessEqual(len(processors), 32) + for i in range(0, len(processors)): + bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) + print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) + print("\n###Test amdsmi_get_gpu_vendor_name \n") + vendor_name = amdsmi.amdsmi_get_gpu_vendor_name(processors[i]) + print(" Vendor name is: {}".format(vendor_name)) + print() + # Unstable on workstation cards # @handle_exceptions # def test_walkthrough_multiprocess(self): From 91199279b0d23b967e993e85ab7fd2ab82ce314a Mon Sep 17 00:00:00 2001 From: danzimm Date: Fri, 17 May 2024 15:32:59 -0500 Subject: [PATCH 07/32] Explicitly specify data_type in capture Change-Id: I3a49ee3acc235df88c2df1d150803b2db2143aee Signed-off-by: Galantsev, Dmitrii --- rocm_smi/src/rocm_smi_gpu_metrics.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocm_smi/src/rocm_smi_gpu_metrics.cc b/rocm_smi/src/rocm_smi_gpu_metrics.cc index f6d7f80e5f..253bcb6450 100755 --- a/rocm_smi/src/rocm_smi_gpu_metrics.cc +++ b/rocm_smi/src/rocm_smi_gpu_metrics.cc @@ -453,7 +453,7 @@ AMDGpuDynamicMetricTblValues_t format_metric_row(const T& metric, const std::str value = (metric); } - auto amdgpu_dynamic_metric_value = [&]() { + auto amdgpu_dynamic_metric_value = [&, data_type=data_type]() { AMDGpuDynamicMetricsValue_t amdgpu_dynamic_metric_value_init{}; amdgpu_dynamic_metric_value_init.m_value = value; amdgpu_dynamic_metric_value_init.m_info = (value_title + " : " + std::to_string(idx)); From d9ccc441466a6edfee0e6a497b46c6959b2a0725 Mon Sep 17 00:00:00 2001 From: Michael John Date: Sun, 2 Jun 2024 12:56:14 +0200 Subject: [PATCH 08/32] Use correct regex to avoid SyntaxWarning: invalid escape sequence '\.' Change-Id: I1c6179be294bf21c0897a3abf7e8ab1d270ae238 Signed-off-by: Galantsev, Dmitrii --- amdsmi_cli/BDF.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amdsmi_cli/BDF.py b/amdsmi_cli/BDF.py index f9ffe338e5..d8d23ffa80 100644 --- a/amdsmi_cli/BDF.py +++ b/amdsmi_cli/BDF.py @@ -123,7 +123,7 @@ class BDF(): """Overrided the 'in' comparator in python""" passed_bdf = str(BDF(passed_bdf)) - bdf_regex = "(?:[0-6]?[0-9a-fA-F]{1,4}:)?[0-2]?[0-9a-fA-F]{1,2}:[0-9a-fA-F]{1,2}\.[0-7]" + bdf_regex = "(?:[0-6]?[0-9a-fA-F]{1,4}:)?[0-2]?[0-9a-fA-F]{1,2}:[0-9a-fA-F]{1,2}\\.[0-7]" for match in re.findall(bdf_regex, passed_bdf): if self == match: return True From d75d127864723ee6da055d07c72da564c292243f Mon Sep 17 00:00:00 2001 From: Michael John Date: Sun, 2 Jun 2024 13:27:47 +0200 Subject: [PATCH 09/32] Proper escape Windows path \include in generator.py Change-Id: I9042de7e9cb08c247b7bf21a8de2b8cbceb483da Signed-off-by: Galantsev, Dmitrii --- tools/generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/generator.py b/tools/generator.py index d9b6459d6e..6825b84340 100644 --- a/tools/generator.py +++ b/tools/generator.py @@ -111,7 +111,7 @@ def main(): os_platform = platform.system() if os_platform == "Windows": - clang_include_dir += "\include" + clang_include_dir += "\\include" if "Program Files(x86)" in clang_include_dir: clang_include_dir = clang_include_dir.replace("Program Files(x86)", "Progra~2") elif "Program Files" in clang_include_dir: From a3b0bc53907fbdf49e7dcc5b21ba0b7df5b361a3 Mon Sep 17 00:00:00 2001 From: Broderick Gardner Date: Thu, 15 Aug 2024 10:34:47 -0600 Subject: [PATCH 10/32] Fix amdsmi_get_clk_freq list size Python list slice is exclusive for the end index, so this -1 is cutting off an element. Change-Id: I309a0a41447405b1aac465472871e169f2c405e8 Signed-off-by: Galantsev, Dmitrii --- py-interface/amdsmi_interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index 212571f2bd..bdc034ee8d 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -3534,7 +3534,7 @@ def amdsmi_get_clk_freq( return { "num_supported": freq.num_supported, "current": freq.current, - "frequency": list(freq.frequency)[: freq.num_supported - 1], + "frequency": list(freq.frequency)[: freq.num_supported], } From 105db1afcd761149a7f15fd12367452a67728bf9 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Wed, 4 Sep 2024 10:57:10 -0500 Subject: [PATCH 11/32] Udpated License Dates Signed-off-by: Maisam Arif Change-Id: I8ca199c129c06508bc3e23745ab5ac2d20dce928 --- amdsmi_cli/BDF.py | 2 +- amdsmi_cli/README.md | 2 +- amdsmi_cli/amdsmi_cli.py | 2 +- amdsmi_cli/amdsmi_cli_exceptions.py | 2 +- amdsmi_cli/amdsmi_commands.py | 2 +- amdsmi_cli/amdsmi_helpers.py | 2 +- amdsmi_cli/amdsmi_init.py | 2 +- amdsmi_cli/amdsmi_logger.py | 2 +- amdsmi_cli/amdsmi_parser.py | 2 +- cmake_modules/utils.cmake | 2 +- example/amd_smi_drm_example.cc | 2 +- example/amd_smi_nodrm_example.cc | 2 +- example/amdsmi_esmi_intg_example.cc | 2 +- include/amd_smi/amdsmi.h | 2 +- include/amd_smi/impl/amd_smi_common.h | 2 +- include/amd_smi/impl/amd_smi_drm.h | 2 +- include/amd_smi/impl/amd_smi_gpu_device.h | 2 +- include/amd_smi/impl/amd_smi_processor.h | 2 +- include/amd_smi/impl/amd_smi_socket.h | 2 +- include/amd_smi/impl/amd_smi_system.h | 2 +- include/amd_smi/impl/amd_smi_utils.h | 2 +- include/amd_smi/impl/amd_smi_uuid.h | 2 +- py-interface/__init__.py | 2 +- py-interface/amdsmi_exception.py | 2 +- py-interface/amdsmi_interface.py | 2 +- py-interface/amdsmi_wrapper.py | 2 +- rocm_smi/example/rocm_smi_example.cc | 2 +- rocm_smi/include/rocm_smi/rocm_smi.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_binary_parser.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_common.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_counters.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_device.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_exception.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_gpu_metrics.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_kfd.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_logger.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_main.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_monitor.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_power_mon.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_properties.h | 2 +- rocm_smi/include/rocm_smi/rocm_smi_utils.h | 2 +- rocm_smi/python_smi_tools/README.md | 2 +- rocm_smi/src/rocm_smi.cc | 2 +- rocm_smi/src/rocm_smi64Config.in | 2 +- rocm_smi/src/rocm_smi_binary_parser.cc | 2 +- rocm_smi/src/rocm_smi_counters.cc | 2 +- rocm_smi/src/rocm_smi_device.cc | 2 +- rocm_smi/src/rocm_smi_gpu_metrics.cc | 2 +- rocm_smi/src/rocm_smi_kfd.cc | 2 +- rocm_smi/src/rocm_smi_logger.cc | 2 +- rocm_smi/src/rocm_smi_main.cc | 2 +- rocm_smi/src/rocm_smi_monitor.cc | 2 +- rocm_smi/src/rocm_smi_power_mon.cc | 2 +- rocm_smi/src/rocm_smi_utils.cc | 2 +- src/amd_smi/amd_smi.cc | 2 +- src/amd_smi/amd_smi_common.cc | 2 +- src/amd_smi/amd_smi_drm.cc | 2 +- src/amd_smi/amd_smi_gpu_device.cc | 2 +- src/amd_smi/amd_smi_lib_loader.cc | 2 +- src/amd_smi/amd_smi_socket.cc | 2 +- src/amd_smi/amd_smi_system.cc | 2 +- src/amd_smi/amd_smi_utils.cc | 2 +- src/amd_smi/amd_smi_uuid.cc | 2 +- src/amd_smi/fdinfo.cc | 2 +- src/amd_smiConfig.in | 2 +- src/rocm_smi_properties.cc | 2 +- tests/amd_smi_test/functional/api_support_read.cc | 2 +- tests/amd_smi_test/functional/api_support_read.h | 2 +- tests/amd_smi_test/functional/err_cnt_read.cc | 2 +- tests/amd_smi_test/functional/err_cnt_read.h | 2 +- tests/amd_smi_test/functional/evt_notif_read_write.cc | 2 +- tests/amd_smi_test/functional/evt_notif_read_write.h | 2 +- tests/amd_smi_test/functional/fan_read.cc | 2 +- tests/amd_smi_test/functional/fan_read.h | 2 +- tests/amd_smi_test/functional/fan_read_write.cc | 2 +- tests/amd_smi_test/functional/fan_read_write.h | 2 +- tests/amd_smi_test/functional/frequencies_read.cc | 2 +- tests/amd_smi_test/functional/frequencies_read.h | 2 +- tests/amd_smi_test/functional/frequencies_read_write.cc | 2 +- tests/amd_smi_test/functional/frequencies_read_write.h | 2 +- tests/amd_smi_test/functional/gpu_busy_read.cc | 2 +- tests/amd_smi_test/functional/gpu_busy_read.h | 2 +- tests/amd_smi_test/functional/gpu_metrics_read.cc | 2 +- tests/amd_smi_test/functional/gpu_metrics_read.h | 2 +- tests/amd_smi_test/functional/hw_topology_read.cc | 2 +- tests/amd_smi_test/functional/hw_topology_read.h | 2 +- tests/amd_smi_test/functional/id_info_read.cc | 2 +- tests/amd_smi_test/functional/id_info_read.h | 2 +- tests/amd_smi_test/functional/init_shutdown_refcount.cc | 2 +- tests/amd_smi_test/functional/init_shutdown_refcount.h | 2 +- tests/amd_smi_test/functional/mem_page_info_read.cc | 2 +- tests/amd_smi_test/functional/mem_page_info_read.h | 2 +- tests/amd_smi_test/functional/mem_util_read.cc | 2 +- tests/amd_smi_test/functional/mem_util_read.h | 2 +- tests/amd_smi_test/functional/metrics_counter_read.cc | 2 +- tests/amd_smi_test/functional/metrics_counter_read.h | 2 +- tests/amd_smi_test/functional/mutual_exclusion.cc | 2 +- tests/amd_smi_test/functional/mutual_exclusion.h | 2 +- tests/amd_smi_test/functional/overdrive_read.cc | 2 +- tests/amd_smi_test/functional/overdrive_read.h | 2 +- tests/amd_smi_test/functional/overdrive_read_write.cc | 2 +- tests/amd_smi_test/functional/overdrive_read_write.h | 2 +- tests/amd_smi_test/functional/pci_read_write.cc | 2 +- tests/amd_smi_test/functional/pci_read_write.h | 2 +- tests/amd_smi_test/functional/perf_cntr_read_write.cc | 2 +- tests/amd_smi_test/functional/perf_cntr_read_write.h | 2 +- tests/amd_smi_test/functional/perf_determinism.h | 2 +- tests/amd_smi_test/functional/perf_level_read.cc | 2 +- tests/amd_smi_test/functional/perf_level_read.h | 2 +- tests/amd_smi_test/functional/perf_level_read_write.cc | 2 +- tests/amd_smi_test/functional/perf_level_read_write.h | 2 +- tests/amd_smi_test/functional/power_cap_read_write.cc | 2 +- tests/amd_smi_test/functional/power_cap_read_write.h | 2 +- tests/amd_smi_test/functional/power_read.cc | 2 +- tests/amd_smi_test/functional/power_read.h | 2 +- tests/amd_smi_test/functional/power_read_write.cc | 2 +- tests/amd_smi_test/functional/power_read_write.h | 2 +- tests/amd_smi_test/functional/process_info_read.cc | 2 +- tests/amd_smi_test/functional/process_info_read.h | 2 +- tests/amd_smi_test/functional/sys_info_read.cc | 2 +- tests/amd_smi_test/functional/sys_info_read.h | 2 +- tests/amd_smi_test/functional/temp_read.cc | 2 +- tests/amd_smi_test/functional/temp_read.h | 2 +- tests/amd_smi_test/functional/version_read.cc | 2 +- tests/amd_smi_test/functional/version_read.h | 2 +- tests/amd_smi_test/functional/volt_freq_curv_read.cc | 2 +- tests/amd_smi_test/functional/volt_freq_curv_read.h | 2 +- tests/amd_smi_test/functional/volt_read.cc | 2 +- tests/amd_smi_test/functional/volt_read.h | 2 +- tests/amd_smi_test/functional/xgmi_read_write.cc | 2 +- tests/amd_smi_test/functional/xgmi_read_write.h | 2 +- tests/amd_smi_test/main.cc | 2 +- tests/amd_smi_test/test_base.cc | 2 +- tests/amd_smi_test/test_base.h | 2 +- tests/amd_smi_test/test_common.cc | 2 +- tests/amd_smi_test/test_common.h | 2 +- tests/amd_smi_test/test_utils.cc | 2 +- tests/amd_smi_test/test_utils.h | 2 +- third_party/shared_mutex/shared_mutex.cc | 1 + third_party/shared_mutex/shared_mutex.h | 2 +- tools/generator.py | 4 ++-- 141 files changed, 142 insertions(+), 141 deletions(-) diff --git a/amdsmi_cli/BDF.py b/amdsmi_cli/BDF.py index d8d23ffa80..7f7ce37cab 100644 --- a/amdsmi_cli/BDF.py +++ b/amdsmi_cli/BDF.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/amdsmi_cli/README.md b/amdsmi_cli/README.md index b221400972..1cc711df49 100644 --- a/amdsmi_cli/README.md +++ b/amdsmi_cli/README.md @@ -1225,4 +1225,4 @@ The information contained herein is for informational purposes only, and is subj AMD, the AMD Arrow logo, and combinations thereof are trademarks of Advanced Micro Devices, Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies. -Copyright (c) 2014-2023 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2014-2024 Advanced Micro Devices, Inc. All rights reserved. diff --git a/amdsmi_cli/amdsmi_cli.py b/amdsmi_cli/amdsmi_cli.py index 0cf7aaa80b..1e61fa44f1 100755 --- a/amdsmi_cli/amdsmi_cli.py +++ b/amdsmi_cli/amdsmi_cli.py @@ -2,7 +2,7 @@ # PYTHON_ARGCOMPLETE_OK # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/amdsmi_cli/amdsmi_cli_exceptions.py b/amdsmi_cli/amdsmi_cli_exceptions.py index fe6cc79ff9..1fcf1c5677 100644 --- a/amdsmi_cli/amdsmi_cli_exceptions.py +++ b/amdsmi_cli/amdsmi_cli_exceptions.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index 82964f4776..c1b0361bdb 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/amdsmi_cli/amdsmi_helpers.py b/amdsmi_cli/amdsmi_helpers.py index d1f1da1184..b9dcca61ba 100644 --- a/amdsmi_cli/amdsmi_helpers.py +++ b/amdsmi_cli/amdsmi_helpers.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/amdsmi_cli/amdsmi_init.py b/amdsmi_cli/amdsmi_init.py index a5852293a4..1fd6de03f5 100644 --- a/amdsmi_cli/amdsmi_init.py +++ b/amdsmi_cli/amdsmi_init.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/amdsmi_cli/amdsmi_logger.py b/amdsmi_cli/amdsmi_logger.py index 08e0070852..a3122124a6 100644 --- a/amdsmi_cli/amdsmi_logger.py +++ b/amdsmi_cli/amdsmi_logger.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/amdsmi_cli/amdsmi_parser.py b/amdsmi_cli/amdsmi_parser.py index ae1432526f..92bb034c22 100644 --- a/amdsmi_cli/amdsmi_parser.py +++ b/amdsmi_cli/amdsmi_parser.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/cmake_modules/utils.cmake b/cmake_modules/utils.cmake index 7131761b67..40a1cfc9de 100755 --- a/cmake_modules/utils.cmake +++ b/cmake_modules/utils.cmake @@ -3,7 +3,7 @@ ## The University of Illinois/NCSA ## Open Source License (NCSA) ## -## Copyright (c) 2014-2017, Advanced Micro Devices, Inc. All rights reserved. +## Copyright (c) 2014-2024, Advanced Micro Devices, Inc. All rights reserved. ## ## Developed by: ## diff --git a/example/amd_smi_drm_example.cc b/example/amd_smi_drm_example.cc index e8ef3d80d9..8be267e6f6 100644 --- a/example/amd_smi_drm_example.cc +++ b/example/amd_smi_drm_example.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/example/amd_smi_nodrm_example.cc b/example/amd_smi_nodrm_example.cc index 19e8cf5947..bcfca83681 100644 --- a/example/amd_smi_nodrm_example.cc +++ b/example/amd_smi_nodrm_example.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/example/amdsmi_esmi_intg_example.cc b/example/amdsmi_esmi_intg_example.cc index 0041e0b11f..03d1f4454d 100644 --- a/example/amdsmi_esmi_intg_example.cc +++ b/example/amdsmi_esmi_intg_example.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 81564d9c29..6b75e7e475 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/include/amd_smi/impl/amd_smi_common.h b/include/amd_smi/impl/amd_smi_common.h index 6d4be4b364..9b85445243 100644 --- a/include/amd_smi/impl/amd_smi_common.h +++ b/include/amd_smi/impl/amd_smi_common.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/include/amd_smi/impl/amd_smi_drm.h b/include/amd_smi/impl/amd_smi_drm.h index 4f25838ad8..7f81aad4b6 100644 --- a/include/amd_smi/impl/amd_smi_drm.h +++ b/include/amd_smi/impl/amd_smi_drm.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/include/amd_smi/impl/amd_smi_gpu_device.h b/include/amd_smi/impl/amd_smi_gpu_device.h index b50159e89c..5c7c928071 100644 --- a/include/amd_smi/impl/amd_smi_gpu_device.h +++ b/include/amd_smi/impl/amd_smi_gpu_device.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/include/amd_smi/impl/amd_smi_processor.h b/include/amd_smi/impl/amd_smi_processor.h index 8188438e96..baafc2d77f 100644 --- a/include/amd_smi/impl/amd_smi_processor.h +++ b/include/amd_smi/impl/amd_smi_processor.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/include/amd_smi/impl/amd_smi_socket.h b/include/amd_smi/impl/amd_smi_socket.h index 282859cbea..3011585329 100644 --- a/include/amd_smi/impl/amd_smi_socket.h +++ b/include/amd_smi/impl/amd_smi_socket.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/include/amd_smi/impl/amd_smi_system.h b/include/amd_smi/impl/amd_smi_system.h index 18f93e7ab1..3c0e544a23 100644 --- a/include/amd_smi/impl/amd_smi_system.h +++ b/include/amd_smi/impl/amd_smi_system.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/include/amd_smi/impl/amd_smi_utils.h b/include/amd_smi/impl/amd_smi_utils.h index 712767287c..af270252c5 100644 --- a/include/amd_smi/impl/amd_smi_utils.h +++ b/include/amd_smi/impl/amd_smi_utils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2023 Advanced Micro Devices. All rights reserved. + * Copyright (C) 2024 Advanced Micro Devices. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/include/amd_smi/impl/amd_smi_uuid.h b/include/amd_smi/impl/amd_smi_uuid.h index 0027936473..6b8e37c3a6 100644 --- a/include/amd_smi/impl/amd_smi_uuid.h +++ b/include/amd_smi/impl/amd_smi_uuid.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. + * Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/py-interface/__init__.py b/py-interface/__init__.py index 9dc45527b6..e56cf2a1eb 100644 --- a/py-interface/__init__.py +++ b/py-interface/__init__.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/py-interface/amdsmi_exception.py b/py-interface/amdsmi_exception.py index e77e9a9d88..ab7c33e576 100644 --- a/py-interface/amdsmi_exception.py +++ b/py-interface/amdsmi_exception.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index bdc034ee8d..f86c0f0723 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index 15fc5f2ac7..c7f994f804 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -1,6 +1,6 @@ # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in diff --git a/rocm_smi/example/rocm_smi_example.cc b/rocm_smi/example/rocm_smi_example.cc index 247bdd2aba..0aed74aec6 100755 --- a/rocm_smi/example/rocm_smi_example.cc +++ b/rocm_smi/example/rocm_smi_example.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi.h b/rocm_smi/include/rocm_smi/rocm_smi.h index e8109a03a7..3eef23ce24 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi.h +++ b/rocm_smi/include/rocm_smi/rocm_smi.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_binary_parser.h b/rocm_smi/include/rocm_smi/rocm_smi_binary_parser.h index 6c48f5e7b5..4fa3aaa7f4 100644 --- a/rocm_smi/include/rocm_smi/rocm_smi_binary_parser.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_binary_parser.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_common.h b/rocm_smi/include/rocm_smi/rocm_smi_common.h index f29e427789..601e2255f9 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_common.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_common.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2018-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2018-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_counters.h b/rocm_smi/include/rocm_smi/rocm_smi_counters.h index 091c89d90d..e3ada60097 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_counters.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_counters.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_device.h b/rocm_smi/include/rocm_smi/rocm_smi_device.h index 426a9ad017..72fbdd8a96 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_device.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_device.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_exception.h b/rocm_smi/include/rocm_smi/rocm_smi_exception.h index 7c898fb958..847bed37db 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_exception.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_exception.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2018, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_gpu_metrics.h b/rocm_smi/include/rocm_smi/rocm_smi_gpu_metrics.h index b6cccdc6a2..70067b10ae 100644 --- a/rocm_smi/include/rocm_smi/rocm_smi_gpu_metrics.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_gpu_metrics.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_kfd.h b/rocm_smi/include/rocm_smi/rocm_smi_kfd.h index 87338d8d7c..f0d981b593 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_kfd.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_kfd.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_logger.h b/rocm_smi/include/rocm_smi/rocm_smi_logger.h index f83240fbf4..d42d795a28 100644 --- a/rocm_smi/include/rocm_smi/rocm_smi_logger.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_logger.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_main.h b/rocm_smi/include/rocm_smi/rocm_smi_main.h index 0a66ea227c..73ee8d8bbf 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_main.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_main.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_monitor.h b/rocm_smi/include/rocm_smi/rocm_smi_monitor.h index ad284646b3..1dbfbf6e81 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_monitor.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_monitor.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_power_mon.h b/rocm_smi/include/rocm_smi/rocm_smi_power_mon.h index 71e4c0865e..122eb19a73 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_power_mon.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_power_mon.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_properties.h b/rocm_smi/include/rocm_smi/rocm_smi_properties.h index 67d285cbbc..e260f82006 100644 --- a/rocm_smi/include/rocm_smi/rocm_smi_properties.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_properties.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/include/rocm_smi/rocm_smi_utils.h b/rocm_smi/include/rocm_smi/rocm_smi_utils.h index e4130c46ee..ed560ce8ed 100755 --- a/rocm_smi/include/rocm_smi/rocm_smi_utils.h +++ b/rocm_smi/include/rocm_smi/rocm_smi_utils.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2018-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2018-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/python_smi_tools/README.md b/rocm_smi/python_smi_tools/README.md index 5d9cb9fd06..1fa833a8d1 100644 --- a/rocm_smi/python_smi_tools/README.md +++ b/rocm_smi/python_smi_tools/README.md @@ -424,4 +424,4 @@ The information contained herein is for informational purposes only, and is subj AMD, the AMD Arrow logo, and combinations thereof are trademarks of Advanced Micro Devices, Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies. -Copyright (c) 2014-2023 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2014-2024 Advanced Micro Devices, Inc. All rights reserved. diff --git a/rocm_smi/src/rocm_smi.cc b/rocm_smi/src/rocm_smi.cc index cff0c34e20..baeb6a85c9 100755 --- a/rocm_smi/src/rocm_smi.cc +++ b/rocm_smi/src/rocm_smi.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi64Config.in b/rocm_smi/src/rocm_smi64Config.in index a3b26311d5..c593bc9fcc 100755 --- a/rocm_smi/src/rocm_smi64Config.in +++ b/rocm_smi/src/rocm_smi64Config.in @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_binary_parser.cc b/rocm_smi/src/rocm_smi_binary_parser.cc index 805be841c2..be4569bb2a 100755 --- a/rocm_smi/src/rocm_smi_binary_parser.cc +++ b/rocm_smi/src/rocm_smi_binary_parser.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_counters.cc b/rocm_smi/src/rocm_smi_counters.cc index a08819568e..2f7e60c13d 100755 --- a/rocm_smi/src/rocm_smi_counters.cc +++ b/rocm_smi/src/rocm_smi_counters.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_device.cc b/rocm_smi/src/rocm_smi_device.cc index ce3bf33eb2..c32c81f156 100755 --- a/rocm_smi/src/rocm_smi_device.cc +++ b/rocm_smi/src/rocm_smi_device.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_gpu_metrics.cc b/rocm_smi/src/rocm_smi_gpu_metrics.cc index 253bcb6450..3bc078216d 100755 --- a/rocm_smi/src/rocm_smi_gpu_metrics.cc +++ b/rocm_smi/src/rocm_smi_gpu_metrics.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_kfd.cc b/rocm_smi/src/rocm_smi_kfd.cc index a21e619c4a..12bc946bd9 100755 --- a/rocm_smi/src/rocm_smi_kfd.cc +++ b/rocm_smi/src/rocm_smi_kfd.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_logger.cc b/rocm_smi/src/rocm_smi_logger.cc index 593d4ff3e5..d4951769c1 100644 --- a/rocm_smi/src/rocm_smi_logger.cc +++ b/rocm_smi/src/rocm_smi_logger.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_main.cc b/rocm_smi/src/rocm_smi_main.cc index eb43d663c1..42b778f233 100755 --- a/rocm_smi/src/rocm_smi_main.cc +++ b/rocm_smi/src/rocm_smi_main.cc @@ -2,7 +2,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_monitor.cc b/rocm_smi/src/rocm_smi_monitor.cc index d7d9f4d6dc..40d7e8e4ac 100755 --- a/rocm_smi/src/rocm_smi_monitor.cc +++ b/rocm_smi/src/rocm_smi_monitor.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_power_mon.cc b/rocm_smi/src/rocm_smi_power_mon.cc index 454851651b..92317720d5 100755 --- a/rocm_smi/src/rocm_smi_power_mon.cc +++ b/rocm_smi/src/rocm_smi_power_mon.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/rocm_smi/src/rocm_smi_utils.cc b/rocm_smi/src/rocm_smi_utils.cc index 4bb045c6d7..7c9ece9be1 100755 --- a/rocm_smi/src/rocm_smi_utils.cc +++ b/rocm_smi/src/rocm_smi_utils.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2018-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2018-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index de2507cab6..b8195d7a6b 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/amd_smi/amd_smi_common.cc b/src/amd_smi/amd_smi_common.cc index 2751d8efb9..b745afdc41 100644 --- a/src/amd_smi/amd_smi_common.cc +++ b/src/amd_smi/amd_smi_common.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/amd_smi/amd_smi_drm.cc b/src/amd_smi/amd_smi_drm.cc index f68fd96aa6..35dbd11484 100644 --- a/src/amd_smi/amd_smi_drm.cc +++ b/src/amd_smi/amd_smi_drm.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/amd_smi/amd_smi_gpu_device.cc b/src/amd_smi/amd_smi_gpu_device.cc index 650227d9fd..0c648baeb9 100644 --- a/src/amd_smi/amd_smi_gpu_device.cc +++ b/src/amd_smi/amd_smi_gpu_device.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/amd_smi/amd_smi_lib_loader.cc b/src/amd_smi/amd_smi_lib_loader.cc index ad3dba1fd0..fc56640390 100644 --- a/src/amd_smi/amd_smi_lib_loader.cc +++ b/src/amd_smi/amd_smi_lib_loader.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/amd_smi/amd_smi_socket.cc b/src/amd_smi/amd_smi_socket.cc index 5f7029fc16..e21363d8fe 100644 --- a/src/amd_smi/amd_smi_socket.cc +++ b/src/amd_smi/amd_smi_socket.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/amd_smi/amd_smi_system.cc b/src/amd_smi/amd_smi_system.cc index 3a1149b810..6ba65fc48f 100644 --- a/src/amd_smi/amd_smi_system.cc +++ b/src/amd_smi/amd_smi_system.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/amd_smi/amd_smi_utils.cc b/src/amd_smi/amd_smi_utils.cc index 25e1a52235..018a358234 100644 --- a/src/amd_smi/amd_smi_utils.cc +++ b/src/amd_smi/amd_smi_utils.cc @@ -1,4 +1,4 @@ -/* * Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +/* * Copyright (C) 2024 Advanced Micro Devices. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/src/amd_smi/amd_smi_uuid.cc b/src/amd_smi/amd_smi_uuid.cc index d75844eb25..507b193ddb 100644 --- a/src/amd_smi/amd_smi_uuid.cc +++ b/src/amd_smi/amd_smi_uuid.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. + * Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/src/amd_smi/fdinfo.cc b/src/amd_smi/fdinfo.cc index 29fd3f2c03..297ff39c8a 100644 --- a/src/amd_smi/fdinfo.cc +++ b/src/amd_smi/fdinfo.cc @@ -1,4 +1,4 @@ -/* * Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +/* * Copyright (C) 2024 Advanced Micro Devices. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/src/amd_smiConfig.in b/src/amd_smiConfig.in index 28fa592fb2..ceb68cace5 100755 --- a/src/amd_smiConfig.in +++ b/src/amd_smiConfig.in @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/src/rocm_smi_properties.cc b/src/rocm_smi_properties.cc index d73f974286..affd255c30 100644 --- a/src/rocm_smi_properties.cc +++ b/src/rocm_smi_properties.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2017-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/api_support_read.cc b/tests/amd_smi_test/functional/api_support_read.cc index 78cf468af1..34bffe145e 100755 --- a/tests/amd_smi_test/functional/api_support_read.cc +++ b/tests/amd_smi_test/functional/api_support_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/api_support_read.h b/tests/amd_smi_test/functional/api_support_read.h index 6bdf3a89b6..f16b0e1ee5 100755 --- a/tests/amd_smi_test/functional/api_support_read.h +++ b/tests/amd_smi_test/functional/api_support_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/err_cnt_read.cc b/tests/amd_smi_test/functional/err_cnt_read.cc index fa8b3676af..1e298816ba 100755 --- a/tests/amd_smi_test/functional/err_cnt_read.cc +++ b/tests/amd_smi_test/functional/err_cnt_read.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/err_cnt_read.h b/tests/amd_smi_test/functional/err_cnt_read.h index 701fde4e31..f7de2e8f5a 100755 --- a/tests/amd_smi_test/functional/err_cnt_read.h +++ b/tests/amd_smi_test/functional/err_cnt_read.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/evt_notif_read_write.cc b/tests/amd_smi_test/functional/evt_notif_read_write.cc index 47a2ae12eb..64e5276a81 100755 --- a/tests/amd_smi_test/functional/evt_notif_read_write.cc +++ b/tests/amd_smi_test/functional/evt_notif_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/evt_notif_read_write.h b/tests/amd_smi_test/functional/evt_notif_read_write.h index b1e0271007..16154f6304 100755 --- a/tests/amd_smi_test/functional/evt_notif_read_write.h +++ b/tests/amd_smi_test/functional/evt_notif_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/fan_read.cc b/tests/amd_smi_test/functional/fan_read.cc index 78e257e895..16d685013b 100755 --- a/tests/amd_smi_test/functional/fan_read.cc +++ b/tests/amd_smi_test/functional/fan_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/fan_read.h b/tests/amd_smi_test/functional/fan_read.h index ac5156f6dc..619b40af54 100755 --- a/tests/amd_smi_test/functional/fan_read.h +++ b/tests/amd_smi_test/functional/fan_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/fan_read_write.cc b/tests/amd_smi_test/functional/fan_read_write.cc index e3d7c962ad..6beaeb00a4 100755 --- a/tests/amd_smi_test/functional/fan_read_write.cc +++ b/tests/amd_smi_test/functional/fan_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/fan_read_write.h b/tests/amd_smi_test/functional/fan_read_write.h index 07fe17f8a5..126681c53d 100755 --- a/tests/amd_smi_test/functional/fan_read_write.h +++ b/tests/amd_smi_test/functional/fan_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/frequencies_read.cc b/tests/amd_smi_test/functional/frequencies_read.cc index 92975be224..e6f94479be 100755 --- a/tests/amd_smi_test/functional/frequencies_read.cc +++ b/tests/amd_smi_test/functional/frequencies_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/frequencies_read.h b/tests/amd_smi_test/functional/frequencies_read.h index 7d58403ef6..4fcad59bab 100755 --- a/tests/amd_smi_test/functional/frequencies_read.h +++ b/tests/amd_smi_test/functional/frequencies_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/frequencies_read_write.cc b/tests/amd_smi_test/functional/frequencies_read_write.cc index bea412a366..0d21b4f47d 100755 --- a/tests/amd_smi_test/functional/frequencies_read_write.cc +++ b/tests/amd_smi_test/functional/frequencies_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/frequencies_read_write.h b/tests/amd_smi_test/functional/frequencies_read_write.h index 0757a35cd5..25c11a1926 100755 --- a/tests/amd_smi_test/functional/frequencies_read_write.h +++ b/tests/amd_smi_test/functional/frequencies_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/gpu_busy_read.cc b/tests/amd_smi_test/functional/gpu_busy_read.cc index 2d20c6eead..0dc9eb566e 100755 --- a/tests/amd_smi_test/functional/gpu_busy_read.cc +++ b/tests/amd_smi_test/functional/gpu_busy_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/gpu_busy_read.h b/tests/amd_smi_test/functional/gpu_busy_read.h index 8d734d2012..6624607aac 100755 --- a/tests/amd_smi_test/functional/gpu_busy_read.h +++ b/tests/amd_smi_test/functional/gpu_busy_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/gpu_metrics_read.cc b/tests/amd_smi_test/functional/gpu_metrics_read.cc index ea86c2982f..f19d6a2768 100644 --- a/tests/amd_smi_test/functional/gpu_metrics_read.cc +++ b/tests/amd_smi_test/functional/gpu_metrics_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/gpu_metrics_read.h b/tests/amd_smi_test/functional/gpu_metrics_read.h index de75bf1d96..85b6a8740a 100644 --- a/tests/amd_smi_test/functional/gpu_metrics_read.h +++ b/tests/amd_smi_test/functional/gpu_metrics_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/hw_topology_read.cc b/tests/amd_smi_test/functional/hw_topology_read.cc index b69385a12a..56860aa7c0 100755 --- a/tests/amd_smi_test/functional/hw_topology_read.cc +++ b/tests/amd_smi_test/functional/hw_topology_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/hw_topology_read.h b/tests/amd_smi_test/functional/hw_topology_read.h index 5e04a3b950..4938e45904 100755 --- a/tests/amd_smi_test/functional/hw_topology_read.h +++ b/tests/amd_smi_test/functional/hw_topology_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/id_info_read.cc b/tests/amd_smi_test/functional/id_info_read.cc index 322da175c3..2f7236a1b2 100755 --- a/tests/amd_smi_test/functional/id_info_read.cc +++ b/tests/amd_smi_test/functional/id_info_read.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/id_info_read.h b/tests/amd_smi_test/functional/id_info_read.h index 4fcff497e7..1d7f3b5eab 100755 --- a/tests/amd_smi_test/functional/id_info_read.h +++ b/tests/amd_smi_test/functional/id_info_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/init_shutdown_refcount.cc b/tests/amd_smi_test/functional/init_shutdown_refcount.cc index 222486be6a..59f9839ae9 100755 --- a/tests/amd_smi_test/functional/init_shutdown_refcount.cc +++ b/tests/amd_smi_test/functional/init_shutdown_refcount.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/init_shutdown_refcount.h b/tests/amd_smi_test/functional/init_shutdown_refcount.h index 9c5a7183ee..7507235c75 100755 --- a/tests/amd_smi_test/functional/init_shutdown_refcount.h +++ b/tests/amd_smi_test/functional/init_shutdown_refcount.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/mem_page_info_read.cc b/tests/amd_smi_test/functional/mem_page_info_read.cc index 3d4dd866e5..f4605f8d58 100755 --- a/tests/amd_smi_test/functional/mem_page_info_read.cc +++ b/tests/amd_smi_test/functional/mem_page_info_read.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/mem_page_info_read.h b/tests/amd_smi_test/functional/mem_page_info_read.h index e17e127b15..c5121f00e3 100755 --- a/tests/amd_smi_test/functional/mem_page_info_read.h +++ b/tests/amd_smi_test/functional/mem_page_info_read.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/mem_util_read.cc b/tests/amd_smi_test/functional/mem_util_read.cc index 3a467d272a..1513b97be6 100755 --- a/tests/amd_smi_test/functional/mem_util_read.cc +++ b/tests/amd_smi_test/functional/mem_util_read.cc @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/mem_util_read.h b/tests/amd_smi_test/functional/mem_util_read.h index f9ea38ad9a..86becb48aa 100755 --- a/tests/amd_smi_test/functional/mem_util_read.h +++ b/tests/amd_smi_test/functional/mem_util_read.h @@ -3,7 +3,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/metrics_counter_read.cc b/tests/amd_smi_test/functional/metrics_counter_read.cc index 5e6be28a0e..f12f4b1c87 100644 --- a/tests/amd_smi_test/functional/metrics_counter_read.cc +++ b/tests/amd_smi_test/functional/metrics_counter_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/metrics_counter_read.h b/tests/amd_smi_test/functional/metrics_counter_read.h index 3c59d58e6c..bd507fdaa4 100644 --- a/tests/amd_smi_test/functional/metrics_counter_read.h +++ b/tests/amd_smi_test/functional/metrics_counter_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/mutual_exclusion.cc b/tests/amd_smi_test/functional/mutual_exclusion.cc index b9a0fd8afa..48c692fcdd 100755 --- a/tests/amd_smi_test/functional/mutual_exclusion.cc +++ b/tests/amd_smi_test/functional/mutual_exclusion.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/mutual_exclusion.h b/tests/amd_smi_test/functional/mutual_exclusion.h index c650876ca8..0e04770439 100755 --- a/tests/amd_smi_test/functional/mutual_exclusion.h +++ b/tests/amd_smi_test/functional/mutual_exclusion.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/overdrive_read.cc b/tests/amd_smi_test/functional/overdrive_read.cc index 57e362a502..e12fc033d7 100755 --- a/tests/amd_smi_test/functional/overdrive_read.cc +++ b/tests/amd_smi_test/functional/overdrive_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/overdrive_read.h b/tests/amd_smi_test/functional/overdrive_read.h index acc6bb4973..1ffb87469e 100755 --- a/tests/amd_smi_test/functional/overdrive_read.h +++ b/tests/amd_smi_test/functional/overdrive_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/overdrive_read_write.cc b/tests/amd_smi_test/functional/overdrive_read_write.cc index 23837d293d..dd877ea0b5 100755 --- a/tests/amd_smi_test/functional/overdrive_read_write.cc +++ b/tests/amd_smi_test/functional/overdrive_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/overdrive_read_write.h b/tests/amd_smi_test/functional/overdrive_read_write.h index af46e4374a..15782159cc 100755 --- a/tests/amd_smi_test/functional/overdrive_read_write.h +++ b/tests/amd_smi_test/functional/overdrive_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/pci_read_write.cc b/tests/amd_smi_test/functional/pci_read_write.cc index 5d6d43d0f2..f0ed27adbe 100755 --- a/tests/amd_smi_test/functional/pci_read_write.cc +++ b/tests/amd_smi_test/functional/pci_read_write.cc @@ -2,7 +2,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/pci_read_write.h b/tests/amd_smi_test/functional/pci_read_write.h index c34dd0832b..6c31e1bfd1 100755 --- a/tests/amd_smi_test/functional/pci_read_write.h +++ b/tests/amd_smi_test/functional/pci_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/perf_cntr_read_write.cc b/tests/amd_smi_test/functional/perf_cntr_read_write.cc index 8a4901be1c..a00ded6315 100755 --- a/tests/amd_smi_test/functional/perf_cntr_read_write.cc +++ b/tests/amd_smi_test/functional/perf_cntr_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/perf_cntr_read_write.h b/tests/amd_smi_test/functional/perf_cntr_read_write.h index bea0988d28..3c9592a967 100755 --- a/tests/amd_smi_test/functional/perf_cntr_read_write.h +++ b/tests/amd_smi_test/functional/perf_cntr_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/perf_determinism.h b/tests/amd_smi_test/functional/perf_determinism.h index 1d7cb5dbff..65e8762850 100644 --- a/tests/amd_smi_test/functional/perf_determinism.h +++ b/tests/amd_smi_test/functional/perf_determinism.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/perf_level_read.cc b/tests/amd_smi_test/functional/perf_level_read.cc index 414b4422ea..6fac8b3229 100755 --- a/tests/amd_smi_test/functional/perf_level_read.cc +++ b/tests/amd_smi_test/functional/perf_level_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/perf_level_read.h b/tests/amd_smi_test/functional/perf_level_read.h index 1a686cf228..255829e841 100755 --- a/tests/amd_smi_test/functional/perf_level_read.h +++ b/tests/amd_smi_test/functional/perf_level_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/perf_level_read_write.cc b/tests/amd_smi_test/functional/perf_level_read_write.cc index fde494dbc3..2d0f0ada39 100755 --- a/tests/amd_smi_test/functional/perf_level_read_write.cc +++ b/tests/amd_smi_test/functional/perf_level_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/perf_level_read_write.h b/tests/amd_smi_test/functional/perf_level_read_write.h index 9fa74f19d1..2b8e73dcf2 100755 --- a/tests/amd_smi_test/functional/perf_level_read_write.h +++ b/tests/amd_smi_test/functional/perf_level_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/power_cap_read_write.cc b/tests/amd_smi_test/functional/power_cap_read_write.cc index 5e1a065a61..7166d0ad9d 100755 --- a/tests/amd_smi_test/functional/power_cap_read_write.cc +++ b/tests/amd_smi_test/functional/power_cap_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/power_cap_read_write.h b/tests/amd_smi_test/functional/power_cap_read_write.h index c913cec99a..0e0c92149c 100755 --- a/tests/amd_smi_test/functional/power_cap_read_write.h +++ b/tests/amd_smi_test/functional/power_cap_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/power_read.cc b/tests/amd_smi_test/functional/power_read.cc index 98f2b1ffd0..6db23773a9 100755 --- a/tests/amd_smi_test/functional/power_read.cc +++ b/tests/amd_smi_test/functional/power_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2019-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/power_read.h b/tests/amd_smi_test/functional/power_read.h index 49d3a4cb43..4050171437 100755 --- a/tests/amd_smi_test/functional/power_read.h +++ b/tests/amd_smi_test/functional/power_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019-2023, Advanced Micro Devices, Inc. + * Copyright (c) 2019-2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/power_read_write.cc b/tests/amd_smi_test/functional/power_read_write.cc index 24e496c14b..fc93a96359 100755 --- a/tests/amd_smi_test/functional/power_read_write.cc +++ b/tests/amd_smi_test/functional/power_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/power_read_write.h b/tests/amd_smi_test/functional/power_read_write.h index 4edb21cfb5..6b7bc43697 100755 --- a/tests/amd_smi_test/functional/power_read_write.h +++ b/tests/amd_smi_test/functional/power_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/process_info_read.cc b/tests/amd_smi_test/functional/process_info_read.cc index d88bbe498a..220b683222 100755 --- a/tests/amd_smi_test/functional/process_info_read.cc +++ b/tests/amd_smi_test/functional/process_info_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/process_info_read.h b/tests/amd_smi_test/functional/process_info_read.h index 6b78411d7a..3cc808cdb2 100755 --- a/tests/amd_smi_test/functional/process_info_read.h +++ b/tests/amd_smi_test/functional/process_info_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/sys_info_read.cc b/tests/amd_smi_test/functional/sys_info_read.cc index 1dcc38aebe..b64d37f1e7 100755 --- a/tests/amd_smi_test/functional/sys_info_read.cc +++ b/tests/amd_smi_test/functional/sys_info_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/sys_info_read.h b/tests/amd_smi_test/functional/sys_info_read.h index d241378476..c6e75a1e21 100755 --- a/tests/amd_smi_test/functional/sys_info_read.h +++ b/tests/amd_smi_test/functional/sys_info_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/temp_read.cc b/tests/amd_smi_test/functional/temp_read.cc index 097771c653..4ed866ecca 100755 --- a/tests/amd_smi_test/functional/temp_read.cc +++ b/tests/amd_smi_test/functional/temp_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/temp_read.h b/tests/amd_smi_test/functional/temp_read.h index eaca3b3b05..e9df5b21fb 100755 --- a/tests/amd_smi_test/functional/temp_read.h +++ b/tests/amd_smi_test/functional/temp_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/version_read.cc b/tests/amd_smi_test/functional/version_read.cc index 1a11263185..5b97e3acf2 100755 --- a/tests/amd_smi_test/functional/version_read.cc +++ b/tests/amd_smi_test/functional/version_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/version_read.h b/tests/amd_smi_test/functional/version_read.h index 5b8bbdc988..d9dcc5b421 100755 --- a/tests/amd_smi_test/functional/version_read.h +++ b/tests/amd_smi_test/functional/version_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/volt_freq_curv_read.cc b/tests/amd_smi_test/functional/volt_freq_curv_read.cc index 3d061698b2..9b875bf3ec 100755 --- a/tests/amd_smi_test/functional/volt_freq_curv_read.cc +++ b/tests/amd_smi_test/functional/volt_freq_curv_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/volt_freq_curv_read.h b/tests/amd_smi_test/functional/volt_freq_curv_read.h index ee9de3a1dd..5626f7e313 100755 --- a/tests/amd_smi_test/functional/volt_freq_curv_read.h +++ b/tests/amd_smi_test/functional/volt_freq_curv_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/volt_read.cc b/tests/amd_smi_test/functional/volt_read.cc index c28070dfa7..003ac394c9 100644 --- a/tests/amd_smi_test/functional/volt_read.cc +++ b/tests/amd_smi_test/functional/volt_read.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/volt_read.h b/tests/amd_smi_test/functional/volt_read.h index 135dfccd56..0020bc0f90 100644 --- a/tests/amd_smi_test/functional/volt_read.h +++ b/tests/amd_smi_test/functional/volt_read.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/xgmi_read_write.cc b/tests/amd_smi_test/functional/xgmi_read_write.cc index 4685ece760..48b7042a68 100755 --- a/tests/amd_smi_test/functional/xgmi_read_write.cc +++ b/tests/amd_smi_test/functional/xgmi_read_write.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/functional/xgmi_read_write.h b/tests/amd_smi_test/functional/xgmi_read_write.h index 87353d8298..300fe49d32 100755 --- a/tests/amd_smi_test/functional/xgmi_read_write.h +++ b/tests/amd_smi_test/functional/xgmi_read_write.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/main.cc b/tests/amd_smi_test/main.cc index cd13497a92..91842153c0 100644 --- a/tests/amd_smi_test/main.cc +++ b/tests/amd_smi_test/main.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2023, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/test_base.cc b/tests/amd_smi_test/test_base.cc index a242711e5e..968b970124 100644 --- a/tests/amd_smi_test/test_base.cc +++ b/tests/amd_smi_test/test_base.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/test_base.h b/tests/amd_smi_test/test_base.h index ffd6a55116..514be909dc 100644 --- a/tests/amd_smi_test/test_base.h +++ b/tests/amd_smi_test/test_base.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2018, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/test_common.cc b/tests/amd_smi_test/test_common.cc index 9335626893..0776da9eec 100644 --- a/tests/amd_smi_test/test_common.cc +++ b/tests/amd_smi_test/test_common.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2017, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/test_common.h b/tests/amd_smi_test/test_common.h index ba00fad2ce..767cb60323 100644 --- a/tests/amd_smi_test/test_common.h +++ b/tests/amd_smi_test/test_common.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2018, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/test_utils.cc b/tests/amd_smi_test/test_utils.cc index b1f461ffdc..c3be08ccb6 100644 --- a/tests/amd_smi_test/test_utils.cc +++ b/tests/amd_smi_test/test_utils.cc @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/tests/amd_smi_test/test_utils.h b/tests/amd_smi_test/test_utils.h index b85841d808..5fe2e57512 100644 --- a/tests/amd_smi_test/test_utils.h +++ b/tests/amd_smi_test/test_utils.h @@ -5,7 +5,7 @@ * The University of Illinois/NCSA * Open Source License (NCSA) * - * Copyright (c) 2019, Advanced Micro Devices, Inc. + * Copyright (c) 2024, Advanced Micro Devices, Inc. * All rights reserved. * * Developed by: diff --git a/third_party/shared_mutex/shared_mutex.cc b/third_party/shared_mutex/shared_mutex.cc index 54b0584887..97426cbd85 100755 --- a/third_party/shared_mutex/shared_mutex.cc +++ b/third_party/shared_mutex/shared_mutex.cc @@ -21,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + #include "shared_mutex.h" // NOLINT(build/include) #include // errno, ENOENT #include // O_RDWR, O_CREATE diff --git a/third_party/shared_mutex/shared_mutex.h b/third_party/shared_mutex/shared_mutex.h index d04d1d0984..0d83c11826 100755 --- a/third_party/shared_mutex/shared_mutex.h +++ b/third_party/shared_mutex/shared_mutex.h @@ -1,5 +1,5 @@ /* -Modifications Copyright © 2019 – 2020 Advanced Micro Devices, Inc. All Rights +Modifications Copyright 2019 - 2024 Advanced Micro Devices, Inc. All Rights Reserved. Copyright (c) 2018 Oleg Yamnikov diff --git a/tools/generator.py b/tools/generator.py index 6825b84340..b170d4924a 100644 --- a/tools/generator.py +++ b/tools/generator.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in @@ -31,7 +31,7 @@ from ctypeslib.clang2py import main as clangToPy HEADER = \ """ # -# Copyright (C) 2023 Advanced Micro Devices. All rights reserved. +# Copyright (C) 2024 Advanced Micro Devices. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in From 37847165c388751d62f3c1593360d8b478bcf0ae Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Mon, 16 Sep 2024 15:13:20 -0500 Subject: [PATCH 12/32] Revert "[SWDEV-482963] [Test updates] Add new tests for p0 items - BM" This reverts commit f34eb94ef29f87c47620f50597ee49b7c5f2f652. Change-Id: Icf9fedaca2976b8ff1bc17aff8b598bfce18f095 Signed-off-by: Maisam Arif --- pytest/integration_test.py | 163 ------------------------------------- 1 file changed, 163 deletions(-) diff --git a/pytest/integration_test.py b/pytest/integration_test.py index 4c160f6589..2a3367323c 100755 --- a/pytest/integration_test.py +++ b/pytest/integration_test.py @@ -399,169 +399,6 @@ class TestAmdSmiPythonInterface(unittest.TestCase): def test_walkthrough(self): walk_through(self) - # Not supported in Navi21 - @handle_exceptions - def test_block_ecc_ras(self): - processors = amdsmi.amdsmi_get_processor_handles() - self.assertGreaterEqual(len(processors), 1) - self.assertLessEqual(len(processors), 32) - gpu_blocks = { - "INVALID": amdsmi.AmdSmiGpuBlock.INVALID, - "UMC": amdsmi.AmdSmiGpuBlock.UMC, - "SDMA": amdsmi.AmdSmiGpuBlock.SDMA, - "GFX": amdsmi.AmdSmiGpuBlock.GFX, - "MMHUB": amdsmi.AmdSmiGpuBlock.MMHUB, - "ATHUB": amdsmi.AmdSmiGpuBlock.ATHUB, - "PCIE_BIF": amdsmi.AmdSmiGpuBlock.PCIE_BIF, - "HDP": amdsmi.AmdSmiGpuBlock.HDP, - "XGMI_WAFL": amdsmi.AmdSmiGpuBlock.XGMI_WAFL, - "DF": amdsmi.AmdSmiGpuBlock.DF, - "SMN": amdsmi.AmdSmiGpuBlock.SMN, - "SEM": amdsmi.AmdSmiGpuBlock.SEM, - "MP0": amdsmi.AmdSmiGpuBlock.MP0, - "MP1": amdsmi.AmdSmiGpuBlock.MP1, - "FUSE": amdsmi.AmdSmiGpuBlock.FUSE, - "MCA": amdsmi.AmdSmiGpuBlock.MCA, - "VCN": amdsmi.AmdSmiGpuBlock.VCN, - "JPEG": amdsmi.AmdSmiGpuBlock.JPEG, - "IH": amdsmi.AmdSmiGpuBlock.IH, - "MPIO": amdsmi.AmdSmiGpuBlock.MPIO, - "RESERVED": amdsmi.AmdSmiGpuBlock.RESERVED - } - for i in range(0, len(processors)): - bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) - print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) - print("\n###Test amdsmi_get_gpu_ecc_count \n") - for block_name, block_code in gpu_blocks.items(): - ecc_count = amdsmi.amdsmi_get_gpu_ecc_count( - processors[i], block_code, ) - print(" Number of uncorrectable errors for {}: {}".format( - block_name, ecc_count['uncorrectable_count'])) - print(" Number of correctable errors for {}: {}".format( - block_name, ecc_count['correctable_count'])) - print(" Number of deferred errors for {}: {}".format( - block_name, ecc_count['deferred_count'])) - self.assertGreaterEqual(ecc_count['uncorrectable_count'], 0) - self.assertGreaterEqual(ecc_count['correctable_count'], 0) - self.assertGreaterEqual(ecc_count['deferred_count'], 0) - print("\n###Test amdsmi_get_gpu_ras_block_features_enabled \n") - ras_enabled = amdsmi.amdsmi_get_gpu_ras_block_features_enabled( - processors[i], block_code) - print(" RAS enabled for {}: {}".format( - block_name, ras_enabled)) - print() - print() - - # TO DO - @handle_exceptions - def test_gpu_utilization(self): - processors = amdsmi.amdsmi_get_processor_handles() - self.assertGreaterEqual(len(processors), 1) - self.assertLessEqual(len(processors), 32) - utilization_counter = { - "COARSE_GRAIN_GFX_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY, - "COARSE_GRAIN_MEM_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.COARSE_GRAIN_MEM_ACTIVITY, - "COARSE_DECODER_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.COARSE_DECODER_ACTIVITY, - "FINE_GRAIN_GFX_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.FINE_GRAIN_GFX_ACTIVITY, - "FINE_GRAIN_MEM_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.FINE_GRAIN_MEM_ACTIVITY, - "FINE_DECODER_ACTIVITY": amdsmi.AmdSmiUtilizationCounterType.FINE_DECODER_ACTIVITY, - "UTILIZATION_COUNTER_FIRST": amdsmi.AmdSmiUtilizationCounterType.UTILIZATION_COUNTER_FIRST, - "UTILIZATION_COUNTER_LAST": amdsmi.AmdSmiUtilizationCounterType.UTILIZATION_COUNTER_LAST - } - for i in range(0, len(processors)): - bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) - print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) - print("\n###Test amdsmi_get_utilization_count \n") - # for counter_name, counter_code in utilization_counter.items(): - utilization_count = amdsmi.amdsmi_get_utilization_count( - processors[i], utilization_counter["COARSE_GRAIN_GFX_ACTIVITY"]) - print(" Utilization count for {} is: {} %".format( - "UTILIZATION_COUNTER_FIRST", utilization_count)) - print() - - def test_process_list(self): - processors = amdsmi.amdsmi_get_processor_handles() - self.assertGreaterEqual(len(processors), 1) - self.assertLessEqual(len(processors), 32) - for i in range(0, len(processors)): - bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) - print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) - print("\n###Test amdsmi_get_gpu_process_list \n") - process_list = amdsmi.amdsmi_get_gpu_process_list(processors[i]) - print(" Process list: {}".format(process_list)) - print() - - def test_socket_info(self): - sockets = amdsmi.amdsmi_get_socket_handles() - for i in range(0, len(sockets)): - print("\n\n###Test Socket {}".format(i)) - print("\n###Test amdsmi_get_socket_handles and amdsmi_get_socket_info \n") - socket_name = amdsmi.amdsmi_get_socket_info(sockets[i]) - print(" Socket: {}".format(socket_name)) - print() - - def test_processor_type(self): - processors = amdsmi.amdsmi_get_processor_handles() - self.assertGreaterEqual(len(processors), 1) - self.assertLessEqual(len(processors), 32) - for i in range(0, len(processors)): - bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) - print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) - print("\n###Test amdsmi_get_processor_type \n") - processor_type = amdsmi.amdsmi_get_processor_type(processors[i]) - print(" Processor type is: {}".format(processor_type['processor_type'])) - print() - - def test_clk_frequency(self): - processors = amdsmi.amdsmi_get_processor_handles() - self.assertGreaterEqual(len(processors), 1) - self.assertLessEqual(len(processors), 32) - for i in range(0, len(processors)): - bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) - print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) - print("\n###Test amdsmi_get_clk_freq \n") - clock_frequency = amdsmi.amdsmi_get_clk_freq( - processors[i], amdsmi.AmdSmiClkType.SYS) - print(" Clock frequency for SYS is: {}".format(clock_frequency)) - clock_frequency = amdsmi.amdsmi_get_clk_freq( - processors[i], amdsmi.AmdSmiClkType.DF) - print(" Clock frequency for DF is: {}".format(clock_frequency)) - clock_frequency = amdsmi.amdsmi_get_clk_freq( - processors[i], amdsmi.AmdSmiClkType.DCEF) - print(" Clock frequency for DCEF is: {}".format(clock_frequency)) - print() - - def test_memory(self): - processors = amdsmi.amdsmi_get_processor_handles() - self.assertGreaterEqual(len(processors), 1) - self.assertLessEqual(len(processors), 32) - for i in range(0, len(processors)): - bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) - print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) - print("\n###Test amdsmi_get_gpu_memory_usage \n") - memory_usage = amdsmi.amdsmi_get_gpu_memory_usage( - processors[i], amdsmi.AmdSmiMemoryType.VRAM) - print(" Memory usage for VRAM is: {}".format(memory_usage)) - memory_usage = amdsmi.amdsmi_get_gpu_memory_usage( - processors[i], amdsmi.AmdSmiMemoryType.VIS_VRAM) - print(" Memory usage for VIS_VRAM is: {}".format(memory_usage)) - memory_usage = amdsmi.amdsmi_get_gpu_memory_usage( - processors[i], amdsmi.AmdSmiMemoryType.GTT) - print(" Memory usage for GTT is: {}".format(memory_usage)) - print() - - def test_vendor_name(self): - processors = amdsmi.amdsmi_get_processor_handles() - self.assertGreaterEqual(len(processors), 1) - self.assertLessEqual(len(processors), 32) - for i in range(0, len(processors)): - bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i]) - print("\n\n###Test Processor {}, bdf: {}".format(i, bdf)) - print("\n###Test amdsmi_get_gpu_vendor_name \n") - vendor_name = amdsmi.amdsmi_get_gpu_vendor_name(processors[i]) - print(" Vendor name is: {}".format(vendor_name)) - print() - # Unstable on workstation cards # @handle_exceptions # def test_walkthrough_multiprocess(self): From 5fdcaf1248dc258fd37658f6adeb35603b68d338 Mon Sep 17 00:00:00 2001 From: Eisuke Kawashima Date: Tue, 28 May 2024 15:52:43 +0900 Subject: [PATCH 13/32] fix(python): fix comparison to True/False from PEP8 (https://peps.python.org/pep-0008/#programming-recommendations): > Comparisons to singletons like None should always be done with is or > is not, never the equality operators. Change-Id: I710d64c380eaf420f0ad29e65623ee677b094051 Signed-off-by: Galantsev, Dmitrii --- amdsmi_cli/amdsmi_commands.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index c1b0361bdb..aa4e54e9c1 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -3954,9 +3954,9 @@ class AMDSMICommands(): break # Only allow one device's arguments to be set at a time - if gpu_args_enabled == cpu_args_enabled == core_args_enabled == False: + if not any([gpu_args_enabled, cpu_args_enabled, core_args_enabled]): raise ValueError('No GPU, CPU, or CORE arguments provided, specific arguments are needed') - elif gpu_args_enabled == cpu_args_enabled == core_args_enabled == True: + elif all([gpu_args_enabled, cpu_args_enabled, core_args_enabled]): raise ValueError('Cannot set GPU, CPU, and CORE arguments at the same time') elif not (gpu_args_enabled ^ cpu_args_enabled ^ core_args_enabled): raise ValueError('Cannot set GPU, CPU, or CORE arguments at the same time') From 1b6ec8df0774ea63de77e5a5cb50370a8b4f4181 Mon Sep 17 00:00:00 2001 From: Eisuke Kawashima Date: Tue, 28 May 2024 12:30:31 +0900 Subject: [PATCH 14/32] chore: unset executable permission Change-Id: I06727774f3b1657a7955b172a40d0dfc9c76d6b9 Signed-off-by: Galantsev, Dmitrii --- CMakeLists.txt | 0 README.md | 0 cmake_modules/utils.cmake | 0 rocm_smi/CMakeLists.txt | 0 rocm_smi/example/rocm_smi_example.cc | 0 rocm_smi/include/rocm_smi/kfd_ioctl.h | 0 rocm_smi/include/rocm_smi/rocm_smi.h | 0 rocm_smi/include/rocm_smi/rocm_smi_common.h | 0 rocm_smi/include/rocm_smi/rocm_smi_counters.h | 0 rocm_smi/include/rocm_smi/rocm_smi_device.h | 0 rocm_smi/include/rocm_smi/rocm_smi_exception.h | 0 rocm_smi/include/rocm_smi/rocm_smi_io_link.h | 0 rocm_smi/include/rocm_smi/rocm_smi_kfd.h | 0 rocm_smi/include/rocm_smi/rocm_smi_main.h | 0 rocm_smi/include/rocm_smi/rocm_smi_monitor.h | 0 rocm_smi/include/rocm_smi/rocm_smi_power_mon.h | 0 rocm_smi/include/rocm_smi/rocm_smi_utils.h | 0 rocm_smi/src/rocm_smi.cc | 0 rocm_smi/src/rocm_smi64Config.in | 0 rocm_smi/src/rocm_smi_binary_parser.cc | 0 rocm_smi/src/rocm_smi_counters.cc | 0 rocm_smi/src/rocm_smi_device.cc | 0 rocm_smi/src/rocm_smi_gpu_metrics.cc | 0 rocm_smi/src/rocm_smi_io_link.cc | 0 rocm_smi/src/rocm_smi_kfd.cc | 0 rocm_smi/src/rocm_smi_main.cc | 0 rocm_smi/src/rocm_smi_monitor.cc | 0 rocm_smi/src/rocm_smi_power_mon.cc | 0 rocm_smi/src/rocm_smi_utils.cc | 0 src/amd_smiConfig.in | 0 tests/amd_smi_test/functional/api_support_read.cc | 0 tests/amd_smi_test/functional/api_support_read.h | 0 tests/amd_smi_test/functional/err_cnt_read.cc | 0 tests/amd_smi_test/functional/err_cnt_read.h | 0 tests/amd_smi_test/functional/evt_notif_read_write.cc | 0 tests/amd_smi_test/functional/evt_notif_read_write.h | 0 tests/amd_smi_test/functional/fan_read.cc | 0 tests/amd_smi_test/functional/fan_read.h | 0 tests/amd_smi_test/functional/fan_read_write.cc | 0 tests/amd_smi_test/functional/fan_read_write.h | 0 tests/amd_smi_test/functional/frequencies_read.cc | 0 tests/amd_smi_test/functional/frequencies_read.h | 0 tests/amd_smi_test/functional/frequencies_read_write.cc | 0 tests/amd_smi_test/functional/frequencies_read_write.h | 0 tests/amd_smi_test/functional/gpu_busy_read.cc | 0 tests/amd_smi_test/functional/gpu_busy_read.h | 0 tests/amd_smi_test/functional/hw_topology_read.cc | 0 tests/amd_smi_test/functional/hw_topology_read.h | 0 tests/amd_smi_test/functional/id_info_read.cc | 0 tests/amd_smi_test/functional/id_info_read.h | 0 tests/amd_smi_test/functional/init_shutdown_refcount.cc | 0 tests/amd_smi_test/functional/init_shutdown_refcount.h | 0 tests/amd_smi_test/functional/mem_page_info_read.cc | 0 tests/amd_smi_test/functional/mem_page_info_read.h | 0 tests/amd_smi_test/functional/mem_util_read.cc | 0 tests/amd_smi_test/functional/mem_util_read.h | 0 tests/amd_smi_test/functional/mutual_exclusion.cc | 0 tests/amd_smi_test/functional/mutual_exclusion.h | 0 tests/amd_smi_test/functional/overdrive_read.cc | 0 tests/amd_smi_test/functional/overdrive_read.h | 0 tests/amd_smi_test/functional/overdrive_read_write.cc | 0 tests/amd_smi_test/functional/overdrive_read_write.h | 0 tests/amd_smi_test/functional/pci_read_write.cc | 0 tests/amd_smi_test/functional/pci_read_write.h | 0 tests/amd_smi_test/functional/perf_cntr_read_write.cc | 0 tests/amd_smi_test/functional/perf_cntr_read_write.h | 0 tests/amd_smi_test/functional/perf_level_read.cc | 0 tests/amd_smi_test/functional/perf_level_read.h | 0 tests/amd_smi_test/functional/perf_level_read_write.cc | 0 tests/amd_smi_test/functional/perf_level_read_write.h | 0 tests/amd_smi_test/functional/power_cap_read_write.cc | 0 tests/amd_smi_test/functional/power_cap_read_write.h | 0 tests/amd_smi_test/functional/power_read.cc | 0 tests/amd_smi_test/functional/power_read.h | 0 tests/amd_smi_test/functional/power_read_write.cc | 0 tests/amd_smi_test/functional/power_read_write.h | 0 tests/amd_smi_test/functional/process_info_read.cc | 0 tests/amd_smi_test/functional/process_info_read.h | 0 tests/amd_smi_test/functional/sys_info_read.cc | 0 tests/amd_smi_test/functional/sys_info_read.h | 0 tests/amd_smi_test/functional/temp_read.cc | 0 tests/amd_smi_test/functional/temp_read.h | 0 tests/amd_smi_test/functional/version_read.cc | 0 tests/amd_smi_test/functional/version_read.h | 0 tests/amd_smi_test/functional/volt_freq_curv_read.cc | 0 tests/amd_smi_test/functional/volt_freq_curv_read.h | 0 tests/amd_smi_test/functional/xgmi_read_write.cc | 0 tests/amd_smi_test/functional/xgmi_read_write.h | 0 third_party/shared_mutex/shared_mutex.cc | 0 third_party/shared_mutex/shared_mutex.h | 0 90 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 CMakeLists.txt mode change 100755 => 100644 README.md mode change 100755 => 100644 cmake_modules/utils.cmake mode change 100755 => 100644 rocm_smi/CMakeLists.txt mode change 100755 => 100644 rocm_smi/example/rocm_smi_example.cc mode change 100755 => 100644 rocm_smi/include/rocm_smi/kfd_ioctl.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_common.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_counters.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_device.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_exception.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_io_link.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_kfd.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_main.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_monitor.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_power_mon.h mode change 100755 => 100644 rocm_smi/include/rocm_smi/rocm_smi_utils.h mode change 100755 => 100644 rocm_smi/src/rocm_smi.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi64Config.in mode change 100755 => 100644 rocm_smi/src/rocm_smi_binary_parser.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_counters.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_device.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_gpu_metrics.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_io_link.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_kfd.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_main.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_monitor.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_power_mon.cc mode change 100755 => 100644 rocm_smi/src/rocm_smi_utils.cc mode change 100755 => 100644 src/amd_smiConfig.in mode change 100755 => 100644 tests/amd_smi_test/functional/api_support_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/api_support_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/err_cnt_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/err_cnt_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/evt_notif_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/evt_notif_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/fan_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/fan_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/fan_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/fan_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/frequencies_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/frequencies_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/frequencies_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/frequencies_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/gpu_busy_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/gpu_busy_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/hw_topology_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/hw_topology_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/id_info_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/id_info_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/init_shutdown_refcount.cc mode change 100755 => 100644 tests/amd_smi_test/functional/init_shutdown_refcount.h mode change 100755 => 100644 tests/amd_smi_test/functional/mem_page_info_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/mem_page_info_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/mem_util_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/mem_util_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/mutual_exclusion.cc mode change 100755 => 100644 tests/amd_smi_test/functional/mutual_exclusion.h mode change 100755 => 100644 tests/amd_smi_test/functional/overdrive_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/overdrive_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/overdrive_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/overdrive_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/pci_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/pci_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/perf_cntr_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/perf_cntr_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/perf_level_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/perf_level_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/perf_level_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/perf_level_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/power_cap_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/power_cap_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/power_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/power_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/power_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/power_read_write.h mode change 100755 => 100644 tests/amd_smi_test/functional/process_info_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/process_info_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/sys_info_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/sys_info_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/temp_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/temp_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/version_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/version_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/volt_freq_curv_read.cc mode change 100755 => 100644 tests/amd_smi_test/functional/volt_freq_curv_read.h mode change 100755 => 100644 tests/amd_smi_test/functional/xgmi_read_write.cc mode change 100755 => 100644 tests/amd_smi_test/functional/xgmi_read_write.h mode change 100755 => 100644 third_party/shared_mutex/shared_mutex.cc mode change 100755 => 100644 third_party/shared_mutex/shared_mutex.h diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/cmake_modules/utils.cmake b/cmake_modules/utils.cmake old mode 100755 new mode 100644 diff --git a/rocm_smi/CMakeLists.txt b/rocm_smi/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/rocm_smi/example/rocm_smi_example.cc b/rocm_smi/example/rocm_smi_example.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/kfd_ioctl.h b/rocm_smi/include/rocm_smi/kfd_ioctl.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi.h b/rocm_smi/include/rocm_smi/rocm_smi.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_common.h b/rocm_smi/include/rocm_smi/rocm_smi_common.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_counters.h b/rocm_smi/include/rocm_smi/rocm_smi_counters.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_device.h b/rocm_smi/include/rocm_smi/rocm_smi_device.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_exception.h b/rocm_smi/include/rocm_smi/rocm_smi_exception.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_io_link.h b/rocm_smi/include/rocm_smi/rocm_smi_io_link.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_kfd.h b/rocm_smi/include/rocm_smi/rocm_smi_kfd.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_main.h b/rocm_smi/include/rocm_smi/rocm_smi_main.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_monitor.h b/rocm_smi/include/rocm_smi/rocm_smi_monitor.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_power_mon.h b/rocm_smi/include/rocm_smi/rocm_smi_power_mon.h old mode 100755 new mode 100644 diff --git a/rocm_smi/include/rocm_smi/rocm_smi_utils.h b/rocm_smi/include/rocm_smi/rocm_smi_utils.h old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi.cc b/rocm_smi/src/rocm_smi.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi64Config.in b/rocm_smi/src/rocm_smi64Config.in old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_binary_parser.cc b/rocm_smi/src/rocm_smi_binary_parser.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_counters.cc b/rocm_smi/src/rocm_smi_counters.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_device.cc b/rocm_smi/src/rocm_smi_device.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_gpu_metrics.cc b/rocm_smi/src/rocm_smi_gpu_metrics.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_io_link.cc b/rocm_smi/src/rocm_smi_io_link.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_kfd.cc b/rocm_smi/src/rocm_smi_kfd.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_main.cc b/rocm_smi/src/rocm_smi_main.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_monitor.cc b/rocm_smi/src/rocm_smi_monitor.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_power_mon.cc b/rocm_smi/src/rocm_smi_power_mon.cc old mode 100755 new mode 100644 diff --git a/rocm_smi/src/rocm_smi_utils.cc b/rocm_smi/src/rocm_smi_utils.cc old mode 100755 new mode 100644 diff --git a/src/amd_smiConfig.in b/src/amd_smiConfig.in old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/api_support_read.cc b/tests/amd_smi_test/functional/api_support_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/api_support_read.h b/tests/amd_smi_test/functional/api_support_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/err_cnt_read.cc b/tests/amd_smi_test/functional/err_cnt_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/err_cnt_read.h b/tests/amd_smi_test/functional/err_cnt_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/evt_notif_read_write.cc b/tests/amd_smi_test/functional/evt_notif_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/evt_notif_read_write.h b/tests/amd_smi_test/functional/evt_notif_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/fan_read.cc b/tests/amd_smi_test/functional/fan_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/fan_read.h b/tests/amd_smi_test/functional/fan_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/fan_read_write.cc b/tests/amd_smi_test/functional/fan_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/fan_read_write.h b/tests/amd_smi_test/functional/fan_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/frequencies_read.cc b/tests/amd_smi_test/functional/frequencies_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/frequencies_read.h b/tests/amd_smi_test/functional/frequencies_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/frequencies_read_write.cc b/tests/amd_smi_test/functional/frequencies_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/frequencies_read_write.h b/tests/amd_smi_test/functional/frequencies_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/gpu_busy_read.cc b/tests/amd_smi_test/functional/gpu_busy_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/gpu_busy_read.h b/tests/amd_smi_test/functional/gpu_busy_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/hw_topology_read.cc b/tests/amd_smi_test/functional/hw_topology_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/hw_topology_read.h b/tests/amd_smi_test/functional/hw_topology_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/id_info_read.cc b/tests/amd_smi_test/functional/id_info_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/id_info_read.h b/tests/amd_smi_test/functional/id_info_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/init_shutdown_refcount.cc b/tests/amd_smi_test/functional/init_shutdown_refcount.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/init_shutdown_refcount.h b/tests/amd_smi_test/functional/init_shutdown_refcount.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/mem_page_info_read.cc b/tests/amd_smi_test/functional/mem_page_info_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/mem_page_info_read.h b/tests/amd_smi_test/functional/mem_page_info_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/mem_util_read.cc b/tests/amd_smi_test/functional/mem_util_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/mem_util_read.h b/tests/amd_smi_test/functional/mem_util_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/mutual_exclusion.cc b/tests/amd_smi_test/functional/mutual_exclusion.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/mutual_exclusion.h b/tests/amd_smi_test/functional/mutual_exclusion.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/overdrive_read.cc b/tests/amd_smi_test/functional/overdrive_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/overdrive_read.h b/tests/amd_smi_test/functional/overdrive_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/overdrive_read_write.cc b/tests/amd_smi_test/functional/overdrive_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/overdrive_read_write.h b/tests/amd_smi_test/functional/overdrive_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/pci_read_write.cc b/tests/amd_smi_test/functional/pci_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/pci_read_write.h b/tests/amd_smi_test/functional/pci_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/perf_cntr_read_write.cc b/tests/amd_smi_test/functional/perf_cntr_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/perf_cntr_read_write.h b/tests/amd_smi_test/functional/perf_cntr_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/perf_level_read.cc b/tests/amd_smi_test/functional/perf_level_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/perf_level_read.h b/tests/amd_smi_test/functional/perf_level_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/perf_level_read_write.cc b/tests/amd_smi_test/functional/perf_level_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/perf_level_read_write.h b/tests/amd_smi_test/functional/perf_level_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/power_cap_read_write.cc b/tests/amd_smi_test/functional/power_cap_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/power_cap_read_write.h b/tests/amd_smi_test/functional/power_cap_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/power_read.cc b/tests/amd_smi_test/functional/power_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/power_read.h b/tests/amd_smi_test/functional/power_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/power_read_write.cc b/tests/amd_smi_test/functional/power_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/power_read_write.h b/tests/amd_smi_test/functional/power_read_write.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/process_info_read.cc b/tests/amd_smi_test/functional/process_info_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/process_info_read.h b/tests/amd_smi_test/functional/process_info_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/sys_info_read.cc b/tests/amd_smi_test/functional/sys_info_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/sys_info_read.h b/tests/amd_smi_test/functional/sys_info_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/temp_read.cc b/tests/amd_smi_test/functional/temp_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/temp_read.h b/tests/amd_smi_test/functional/temp_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/version_read.cc b/tests/amd_smi_test/functional/version_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/version_read.h b/tests/amd_smi_test/functional/version_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/volt_freq_curv_read.cc b/tests/amd_smi_test/functional/volt_freq_curv_read.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/volt_freq_curv_read.h b/tests/amd_smi_test/functional/volt_freq_curv_read.h old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/xgmi_read_write.cc b/tests/amd_smi_test/functional/xgmi_read_write.cc old mode 100755 new mode 100644 diff --git a/tests/amd_smi_test/functional/xgmi_read_write.h b/tests/amd_smi_test/functional/xgmi_read_write.h old mode 100755 new mode 100644 diff --git a/third_party/shared_mutex/shared_mutex.cc b/third_party/shared_mutex/shared_mutex.cc old mode 100755 new mode 100644 diff --git a/third_party/shared_mutex/shared_mutex.h b/third_party/shared_mutex/shared_mutex.h old mode 100755 new mode 100644 From 639daa3d90b48d59f61adb181a8b9ae7686dd765 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Tue, 17 Sep 2024 13:20:04 -0500 Subject: [PATCH 15/32] Fixed amdsmi_get_utilization_count() wrapper generation Signed-off-by: Maisam Arif Change-Id: Ifd59fca042c4b3b0fc53e100b6892c6b4f7b3e95 --- CHANGELOG.md | 2 ++ docs/how-to/using-amdsmi-for-python.md | 18 ++++++++++------- py-interface/README.md | 18 ++++++++++------- py-interface/amdsmi_interface.py | 8 ++++++++ py-interface/amdsmi_wrapper.py | 28 +++++++++++++------------- tools/generator.py | 25 +++++++++++++++++++---- 6 files changed, 67 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3099351e99..a5ac39f1ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ Full documentation for amd_smi_lib is available at [https://rocm.docs.amd.com/pr ### Changes +- **Added more supported utilization count types to `amdsmi_get_utilization_count()`**. + - **Added Pytest functionality to test amdsmi API calls in Python**. - **Changed the `power` parameter in `amdsmi_get_energy_count()` to `energy_accumulator`**. diff --git a/docs/how-to/using-amdsmi-for-python.md b/docs/how-to/using-amdsmi-for-python.md index 6cec1385a2..797486ca8e 100644 --- a/docs/how-to/using-amdsmi-for-python.md +++ b/docs/how-to/using-amdsmi-for-python.md @@ -1925,19 +1925,19 @@ except AmdSmiException as e: ### amdsmi_get_utilization_count -Description: Get coarse grain utilization counter of the specified device +Description: Get coarse/fine grain utilization counter of the specified device Input parameters: * `processor_handle` handle for the given device -* `counter_types` variable number of counter types desired +* `counter_types` List of AmdSmiUtilizationCounterType counters requested Output: List containing dictionaries with fields Field | Description ---|--- `timestamp` | The timestamp when the counter is retreived - Resolution: 1 ns -`Dictionary for each counter` |
Subfield Description
`type`Type of utilization counter
`value`Value gotten for utilization counter
+`Dictionary for each counter` |
Subfield Description
`type`Counter that was requested
`value`Value gotten for utilization counter
Exceptions that can be thrown by `amdsmi_get_utilization_count` function: @@ -1957,13 +1957,17 @@ try: utilization = amdsmi_get_utilization_count( device, AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY - ) + ) print(utilization) utilization = amdsmi_get_utilization_count( device, - AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY, - AmdSmiUtilizationCounterType.COARSE_GRAIN_MEM_ACTIVITY - ) + [AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY, + AmdSmiUtilizationCounterType.COARSE_GRAIN_MEM_ACTIVITY, + AmdSmiUtilizationCounterType.COARSE_DECODER_ACTIVITY, + AmdSmiUtilizationCounterType.FINE_GRAIN_GFX_ACTIVITY, + AmdSmiUtilizationCounterType.FINE_GRAIN_MEM_ACTIVITY, + AmdSmiUtilizationCounterType.FINE_DECODER_ACTIVITY] + ) print(utilization) except AmdSmiException as e: print(e) diff --git a/py-interface/README.md b/py-interface/README.md index 6cec1385a2..797486ca8e 100644 --- a/py-interface/README.md +++ b/py-interface/README.md @@ -1925,19 +1925,19 @@ except AmdSmiException as e: ### amdsmi_get_utilization_count -Description: Get coarse grain utilization counter of the specified device +Description: Get coarse/fine grain utilization counter of the specified device Input parameters: * `processor_handle` handle for the given device -* `counter_types` variable number of counter types desired +* `counter_types` List of AmdSmiUtilizationCounterType counters requested Output: List containing dictionaries with fields Field | Description ---|--- `timestamp` | The timestamp when the counter is retreived - Resolution: 1 ns -`Dictionary for each counter` |
Subfield Description
`type`Type of utilization counter
`value`Value gotten for utilization counter
+`Dictionary for each counter` |
Subfield Description
`type`Counter that was requested
`value`Value gotten for utilization counter
Exceptions that can be thrown by `amdsmi_get_utilization_count` function: @@ -1957,13 +1957,17 @@ try: utilization = amdsmi_get_utilization_count( device, AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY - ) + ) print(utilization) utilization = amdsmi_get_utilization_count( device, - AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY, - AmdSmiUtilizationCounterType.COARSE_GRAIN_MEM_ACTIVITY - ) + [AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY, + AmdSmiUtilizationCounterType.COARSE_GRAIN_MEM_ACTIVITY, + AmdSmiUtilizationCounterType.COARSE_DECODER_ACTIVITY, + AmdSmiUtilizationCounterType.FINE_GRAIN_GFX_ACTIVITY, + AmdSmiUtilizationCounterType.FINE_GRAIN_MEM_ACTIVITY, + AmdSmiUtilizationCounterType.FINE_DECODER_ACTIVITY] + ) print(utilization) except AmdSmiException as e: print(e) diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index f86c0f0723..13ddbc1312 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -3402,6 +3402,14 @@ def amdsmi_get_utilization_count( raise AmdSmiParameterException( processor_handle, amdsmi_wrapper.amdsmi_processor_handle ) + + # Enforce List typing + if not isinstance(counter_types, list): + counter_types = [counter_types] + + counter_types = list(set(counter_types)) + + # Validate Inputs if len(counter_types) == 0: raise AmdSmiLibraryException(amdsmi_wrapper.AMDSMI_STATUS_INVAL) counters = [] diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index c7f994f804..c2b3f8f5b3 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -759,6 +759,19 @@ amdsmi_card_form_factor_t = ctypes.c_uint32 # enum class struct_amdsmi_pcie_info_t(Structure): pass +class struct_pcie_static_(Structure): + pass + +struct_pcie_static_._pack_ = 1 # source:False +struct_pcie_static_._fields_ = [ + ('max_pcie_width', ctypes.c_uint16), + ('PADDING_0', ctypes.c_ubyte * 2), + ('max_pcie_speed', ctypes.c_uint32), + ('pcie_interface_version', ctypes.c_uint32), + ('slot_type', amdsmi_card_form_factor_t), + ('reserved', ctypes.c_uint64 * 10), +] + class struct_pcie_metric_(Structure): pass @@ -777,19 +790,6 @@ struct_pcie_metric_._fields_ = [ ('reserved', ctypes.c_uint64 * 13), ] -class struct_pcie_static_(Structure): - pass - -struct_pcie_static_._pack_ = 1 # source:False -struct_pcie_static_._fields_ = [ - ('max_pcie_width', ctypes.c_uint16), - ('PADDING_0', ctypes.c_ubyte * 2), - ('max_pcie_speed', ctypes.c_uint32), - ('pcie_interface_version', ctypes.c_uint32), - ('slot_type', amdsmi_card_form_factor_t), - ('reserved', ctypes.c_uint64 * 10), -] - struct_amdsmi_pcie_info_t._pack_ = 1 # source:False struct_amdsmi_pcie_info_t._fields_ = [ ('pcie_static', struct_pcie_static_), @@ -2069,7 +2069,7 @@ amdsmi_set_gpu_fan_speed.restype = amdsmi_status_t amdsmi_set_gpu_fan_speed.argtypes = [amdsmi_processor_handle, uint32_t, uint64_t] amdsmi_get_utilization_count = _libraries['libamd_smi.so'].amdsmi_get_utilization_count amdsmi_get_utilization_count.restype = amdsmi_status_t -amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, struct_amdsmi_utilization_counter_t * 0, uint32_t, ctypes.POINTER(ctypes.c_uint64)] +amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_utilization_counter_t), uint32_t, ctypes.POINTER(ctypes.c_uint64)] amdsmi_get_gpu_perf_level = _libraries['libamd_smi.so'].amdsmi_get_gpu_perf_level amdsmi_get_gpu_perf_level.restype = amdsmi_status_t amdsmi_get_gpu_perf_level.argtypes = [amdsmi_processor_handle, ctypes.POINTER(amdsmi_dev_perf_level_t)] diff --git a/tools/generator.py b/tools/generator.py index b170d4924a..6014746094 100644 --- a/tools/generator.py +++ b/tools/generator.py @@ -70,12 +70,23 @@ def parseArgument(): return args['output'], args['input'], args['library'], args['extra_args'] -def replace_line(full_path_file_name, string_to_repalce, new_string): +def replace_line(full_path_file_name, string_to_replace, new_string): + """ + Replaces a specific string in a file with a new string. + + Args: + full_path_file_name (str): The full path of the file to modify. + string_to_replace (str): The string to be replaced. + new_string (str): The new string to replace the old string with. + + Returns: + None + """ fh, abs_path = tempfile.mkstemp() with os.fdopen(fh, 'w') as new_file: with open(full_path_file_name, 'r+', encoding='UTF-8') as old_file: for line in old_file: - new_file.write(line.replace(string_to_repalce, new_string)) + new_file.write(line.replace(string_to_replace, new_string)) shutil.copymode(full_path_file_name, abs_path) os.remove(full_path_file_name) @@ -179,8 +190,14 @@ except OSError as error: struct_amdsmi_bdf_t_line = "'struct_amdsmi_bdf_t'," replace_line(output_file, struct_anon_all_line, struct_amdsmi_bdf_t_line) - struct_anon_all_line = f"amdsmi.h:{line_number}:3)', " - replace_line(output_file, struct_anon_all_line, "") + struct_anon_all_line_to_remove = f"amdsmi.h:{line_number}:3)', " + replace_line(output_file, struct_anon_all_line_to_remove, "") + + # Custom handling to ensure amdsmi_get_utilization_count doesn't multiply the struct by 0 + print(f"Replacing amdsmi_get_utilization_count line in {output_file}") + utilization_count_line_bad = "amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, struct_amdsmi_utilization_counter_t * 0, uint32_t, ctypes.POINTER(ctypes.c_uint64)]" + utilization_count_line_good = "amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_utilization_counter_t), uint32_t, ctypes.POINTER(ctypes.c_uint64)]" + replace_line(output_file, utilization_count_line_bad, utilization_count_line_good) if __name__ == "__main__": main() From 0d4b332fe4abad892565dc1ee735d512a41979a2 Mon Sep 17 00:00:00 2001 From: gabrpham Date: Mon, 16 Sep 2024 16:07:44 -0500 Subject: [PATCH 16/32] Removed _validate_positive function and replaced with _positive_int or _not_negative_int as appropriate Signed-off-by: gabrpham Change-Id: I01effcdf9bae31fd8bc926c5d4bdf58274838618 --- CHANGELOG.md | 3 ++- amdsmi_cli/amdsmi_parser.py | 31 +++++++++++-------------------- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5ac39f1ab..0a1c356156 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -272,7 +272,8 @@ GPU: 1 ### Removals -- N/A +- **Removed usage of _validate_positive in Parser and replaced with _positive_int and _not_negative_int as appropriate** +This will allow 0 to be a valid input for several options in setting CPUs where appropriate (for example, as a mode or NBIOID) ### Optimizations diff --git a/amdsmi_cli/amdsmi_parser.py b/amdsmi_cli/amdsmi_parser.py index 92bb034c22..85f0307305 100644 --- a/amdsmi_cli/amdsmi_parser.py +++ b/amdsmi_cli/amdsmi_parser.py @@ -398,15 +398,6 @@ class AMDSMIParser(argparse.ArgumentParser): return value - def _validate_positive(self, value): - i_value = int(value) - if i_value < 0: - outputformat = self.helpers.get_output_format() - raise amdsmi_cli_exceptions.AmdSmiInvalidParameterValueException(i_value, outputformat) - - return i_value - - def _add_device_arguments(self, subcommand_parser, required=False): # Device arguments help text gpu_help = f"Select a GPU ID, BDF, or UUID from the possible choices:\n{self.gpu_choices_str}" @@ -834,7 +825,7 @@ class AMDSMIParser(argparse.ArgumentParser): cpu_group.add_argument('--cpu-prochot', action='store_true', required=False, help=cpu_proc_help) cpu_group.add_argument('--cpu-freq-metrics', action='store_true', required=False, help=cpu_freq_help) cpu_group.add_argument('--cpu-c0-res', action='store_true', required=False, help=cpu_c0_res_help) - cpu_group.add_argument('--cpu-lclk-dpm-level', action='append', required=False, type=self._validate_positive, + cpu_group.add_argument('--cpu-lclk-dpm-level', action='append', required=False, type=self._not_negative_int, nargs=1, metavar=("NBIOID"), help=cpu_lclk_dpm_help) cpu_group.add_argument('--cpu-pwr-svi-telemtry-rails', action='store_true', required=False, help=cpu_pwr_svi_telemtry_rails_help) @@ -1068,20 +1059,20 @@ class AMDSMIParser(argparse.ArgumentParser): if self.helpers.is_baremetal(): # Optional CPU Args cpu_group = set_value_parser.add_argument_group("CPU Arguments") - cpu_group.add_argument('--cpu-pwr-limit', action='append', required=False, type=self._validate_positive, nargs=1, metavar=("PWR_LIMIT"), help=set_cpu_pwr_limit_help) - cpu_group.add_argument('--cpu-xgmi-link-width', action='append', required=False, type=self._validate_positive, nargs=2, metavar=("MIN_WIDTH", "MAX_WIDTH"), help=set_cpu_xgmi_link_width_help) - cpu_group.add_argument('--cpu-lclk-dpm-level', action='append', required=False, type=self._validate_positive, nargs=3, metavar=("NBIOID", "MIN_DPM", "MAX_DPM"), help=set_cpu_lclk_dpm_level_help) - cpu_group.add_argument('--cpu-pwr-eff-mode', action='append', required=False, type=self._validate_positive, nargs=1, metavar=("MODE"), help=set_cpu_pwr_eff_mode_help) - cpu_group.add_argument('--cpu-gmi3-link-width', action='append', required=False, type=self._validate_positive, nargs=2, metavar=("MIN_LW", "MAX_LW"), help=set_cpu_gmi3_link_width_help) - cpu_group.add_argument('--cpu-pcie-link-rate', action='append', required=False, type=self._validate_positive, nargs=1, metavar=("LINK_RATE"), help=set_cpu_pcie_link_rate_help) - cpu_group.add_argument('--cpu-df-pstate-range', action='append', required=False, type=self._validate_positive, nargs=2, metavar=("MAX_PSTATE", "MIN_PSTATE"), help=set_cpu_df_pstate_range_help) + cpu_group.add_argument('--cpu-pwr-limit', action='append', required=False, type=self._positive_int, nargs=1, metavar=("PWR_LIMIT"), help=set_cpu_pwr_limit_help) + cpu_group.add_argument('--cpu-xgmi-link-width', action='append', required=False, type=self._not_negative_int, nargs=2, metavar=("MIN_WIDTH", "MAX_WIDTH"), help=set_cpu_xgmi_link_width_help) + cpu_group.add_argument('--cpu-lclk-dpm-level', action='append', required=False, type=self._not_negative_int, nargs=3, metavar=("NBIOID", "MIN_DPM", "MAX_DPM"), help=set_cpu_lclk_dpm_level_help) + cpu_group.add_argument('--cpu-pwr-eff-mode', action='append', required=False, type=self._not_negative_int, nargs=1, metavar=("MODE"), help=set_cpu_pwr_eff_mode_help) + cpu_group.add_argument('--cpu-gmi3-link-width', action='append', required=False, type=self._not_negative_int, nargs=2, metavar=("MIN_LW", "MAX_LW"), help=set_cpu_gmi3_link_width_help) + cpu_group.add_argument('--cpu-pcie-link-rate', action='append', required=False, type=self._not_negative_int, nargs=1, metavar=("LINK_RATE"), help=set_cpu_pcie_link_rate_help) + cpu_group.add_argument('--cpu-df-pstate-range', action='append', required=False, type=self._not_negative_int, nargs=2, metavar=("MAX_PSTATE", "MIN_PSTATE"), help=set_cpu_df_pstate_range_help) cpu_group.add_argument('--cpu-enable-apb', action='store_true', required=False, help=set_cpu_enable_apb_help) - cpu_group.add_argument('--cpu-disable-apb', action='append', required=False, type=self._validate_positive, nargs=1, metavar=("DF_PSTATE"), help=set_cpu_disable_apb_help) - cpu_group.add_argument('--soc-boost-limit', action='append', required=False, type=self._validate_positive, nargs=1, metavar=("BOOST_LIMIT"), help=set_soc_boost_limit_help) + cpu_group.add_argument('--cpu-disable-apb', action='append', required=False, type=self._not_negative_int, nargs=1, metavar=("DF_PSTATE"), help=set_cpu_disable_apb_help) + cpu_group.add_argument('--soc-boost-limit', action='append', required=False, type=self._positive_int, nargs=1, metavar=("BOOST_LIMIT"), help=set_soc_boost_limit_help) # Optional CPU Core Args core_group = set_value_parser.add_argument_group("CPU Core Arguments") - core_group.add_argument('--core-boost-limit', action='append', required=False, type=self._validate_positive, nargs=1, metavar=("BOOST_LIMIT"), help=set_core_boost_limit_help) + core_group.add_argument('--core-boost-limit', action='append', required=False, type=self._positive_int, nargs=1, metavar=("BOOST_LIMIT"), help=set_core_boost_limit_help) # Add command modifiers to the bottom self._add_command_modifiers(set_value_parser) From ac593f9fa0fbcf4ca7be2190a8101945b6e32975 Mon Sep 17 00:00:00 2001 From: Juan Castillo Date: Tue, 3 Sep 2024 16:45:56 -0500 Subject: [PATCH 17/32] [SWDEV-482966/ SWDEV-482967] Removing pytest dependency + install path change Signed-off-by: Juan Castillo Change-Id: I7aace93fcad18d67443e6849c10a1fbbc65d0fa8 Signed-off-by: Juan Castillo --- CHANGELOG.md | 4 + CMakeLists.txt | 4 +- DEBIAN/postinst.in | 13 +- DEBIAN/prerm.in | 13 ++ RPM/post.in | 13 +- RPM/preun.in | 11 ++ .../python_unittest}/CMakeLists.txt | 2 +- {pytest => tests/python_unittest}/README.md | 131 +++++++----------- {pytest => tests/python_unittest}/__init__.py | 0 .../python_unittest}/integration_test.py | 0 .../python_unittest}/unit_tests.py | 0 11 files changed, 80 insertions(+), 111 deletions(-) rename {pytest => tests/python_unittest}/CMakeLists.txt (91%) rename {pytest => tests/python_unittest}/README.md (90%) rename {pytest => tests/python_unittest}/__init__.py (100%) rename {pytest => tests/python_unittest}/integration_test.py (100%) rename {pytest => tests/python_unittest}/unit_tests.py (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a1c356156..59de456980 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ Full documentation for amd_smi_lib is available at [https://rocm.docs.amd.com/pr ## amd_smi_lib for ROCm 6.3.0 ### Changes +- **Moved python tests directory path install location.** + - `/opt//share/amd_smi/pytest/.. to /opt//share/amd_smi/tests/python_unittest/..` +- **On amd-smi-lib-tests uninstall, the amd_smi tests folder is removed.** +- **Removed pytest dependency, our python testing depends only on unittest framework.** - **Added more supported utilization count types to `amdsmi_get_utilization_count()`**. diff --git a/CMakeLists.txt b/CMakeLists.txt index ba28bf6324..0f4a40ab1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -185,12 +185,12 @@ if(BUILD_TESTS) set(TESTS_COMPONENT "tests") #add_subdirectory("tests/rocm_smi_test") add_subdirectory("tests/amd_smi_test") + add_subdirectory("tests/python_unittest") endif() # python interface, CLI, and py-test depend on shared libraries if(BUILD_SHARED_LIBS) add_subdirectory("py-interface") - add_subdirectory("pytest") if(BUILD_CLI) add_subdirectory("amdsmi_cli") endif() @@ -252,7 +252,7 @@ install( #Debian package specific variables set(CPACK_DEBIAN_PACKAGE_PROVIDES "amd-smi") -set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "python3-argcomplete, libdrm-dev, python3-yaml") +set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "python3-argcomplete, libdrm-dev, python3-PyYAML") set(CPACK_DEBIAN_ASAN_PACKAGE_RECOMMENDS ${CPACK_DEBIAN_PACKAGE_RECOMMENDS}) set(CPACK_DEBIAN_DEV_PACKAGE_RECOMMENDS ${CPACK_DEBIAN_PACKAGE_RECOMMENDS}) set(CPACK_DEBIAN_ASAN_PACKAGE_PROVIDES "${AMD_SMI_PACKAGE}-asan") diff --git a/DEBIAN/postinst.in b/DEBIAN/postinst.in index 474cebc1b8..45443b55a1 100755 --- a/DEBIAN/postinst.in +++ b/DEBIAN/postinst.in @@ -133,6 +133,7 @@ do_install_amdsmi_python_lib() { local PREVIOUS_PIP_BREAK_SYSTEM_PACKAGES="$PIP_BREAK_SYSTEM_PACKAGES" export PIP_BREAK_SYSTEM_PACKAGES=1 + # Remove old python library local pip_list_output pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check) @@ -188,22 +189,10 @@ do_install_amdsmi_python_lib() { fi } -do_install_amdsmi_pytest() { - echo -n "Installing pytest... " - pip install -U pytest >/dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "[WARNING] Detected pytest could not be installed. Running pytest may not work as documented." - else - echo -n "[SUCCESS]" - echo "" - fi - return -} case "$1" in ( configure ) do_install_amdsmi_python_lib - do_install_amdsmi_pytest do_ldconfig do_updatepciids do_configureLogrotate || exit 0 diff --git a/DEBIAN/prerm.in b/DEBIAN/prerm.in index 28af94f143..3decc72093 100755 --- a/DEBIAN/prerm.in +++ b/DEBIAN/prerm.in @@ -1,5 +1,7 @@ #!/bin/bash + +# Other prerm actions rm_ldconfig() { # left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build if [ "@ENABLE_LDCONFIG@" == "ON" ]; then @@ -8,6 +10,7 @@ rm_ldconfig() { fi } + rm_leftovers() { # remove pyc files generated by python rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/__pycache__" @@ -27,6 +30,15 @@ rm_logFolder() { rm -rf /var/log/amd_smi_lib } + +rm_rocm_tests_dir(){ + if [ -d "@CPACK_PACKAGING_INSTALL_PREFIX@/share/amd_smi/tests/" ]; then + rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/share/amd_smi/tests/" + echo "Removed ROCm tests directory." + fi +} + + return_logrotateToOrigConfig() { local logrotateConfFile=/etc/logrotate.d/amd_smi.conf if [ -f $logrotateConfFile ]; then @@ -86,6 +98,7 @@ case "$1" in rm_ldconfig rm_leftovers rm_logFolder + rm_rocm_tests_dir return_logrotateToOrigConfig ;; ( purge ) diff --git a/RPM/post.in b/RPM/post.in index 78c71864ed..e33e9c0de7 100755 --- a/RPM/post.in +++ b/RPM/post.in @@ -132,6 +132,7 @@ do_install_amdsmi_python_lib() { local PREVIOUS_PIP_BREAK_SYSTEM_PACKAGES="$PIP_BREAK_SYSTEM_PACKAGES" export PIP_BREAK_SYSTEM_PACKAGES=1 + # Remove old python library local pip_list_output pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check) @@ -187,22 +188,10 @@ do_install_amdsmi_python_lib() { fi } -do_install_amdsmi_pytest() { - echo -n "Installing pytest... " - pip install -U pytest >/dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "[WARNING] Detected pytest could not be installed. Running pytest may not work as documented." - else - echo -n "[SUCCESS]" - echo "" - fi - return -} # post install or upgrade, $i is 1 or 2 -> do these actions if [ "$1" -ge 1 ]; then do_install_amdsmi_python_lib - do_install_amdsmi_pytest do_ldconfig do_updatepciids do_configureLogrotate || exit 0 diff --git a/RPM/preun.in b/RPM/preun.in index bc2376161c..43e58c93f3 100755 --- a/RPM/preun.in +++ b/RPM/preun.in @@ -15,10 +15,20 @@ rm_leftovers() { fi } + rm_logFolder() { rm -rf /var/log/amd_smi_lib } + +rm_rocm_tests_dir(){ + if [ -d "@CPACK_PACKAGING_INSTALL_PREFIX@/share/amd_smi/tests/" ]; then + rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/share/amd_smi/tests/" + echo "Removed ROCm tests directory." + fi +} + + return_logrotateToOrigConfig() { local logrotateConfFile=/etc/logrotate.d/amd_smi.conf if [ -f $logrotateConfFile ]; then @@ -77,5 +87,6 @@ if [ "$1" -le 1 ]; then rm_python_lib rm_leftovers rm_logFolder + rm_rocm_tests_dir return_logrotateToOrigConfig fi diff --git a/pytest/CMakeLists.txt b/tests/python_unittest/CMakeLists.txt similarity index 91% rename from pytest/CMakeLists.txt rename to tests/python_unittest/CMakeLists.txt index 693d3b9f57..94bf6b93f9 100644 --- a/pytest/CMakeLists.txt +++ b/tests/python_unittest/CMakeLists.txt @@ -18,7 +18,7 @@ message("--------CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY: " ${CPACK_COMPONENT # copy python test files into shared directory install( DIRECTORY ./ - DESTINATION ${SHARE_INSTALL_PREFIX}/tests/pytest/ + DESTINATION ${SHARE_INSTALL_PREFIX}/tests/python_unittest/ COMPONENT dev USE_SOURCE_PERMISSIONS FILES_MATCHING diff --git a/pytest/README.md b/tests/python_unittest/README.md similarity index 90% rename from pytest/README.md rename to tests/python_unittest/README.md index aaee9d0852..26e9fb7dbd 100644 --- a/pytest/README.md +++ b/tests/python_unittest/README.md @@ -13,72 +13,35 @@ Follow our install/build guides to ensure the Python API is installed correctly ## How to Run ### Basic How To The 2 tests are in this PATH: -```/opt/rocm/share/amd_smi/tests/pytest/integration_test.py``` -```/opt/rocm/share/amd_smi/tests/pytest/unit_tests.py``` +```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py``` +```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py``` - -The recommended method to run the tests: -Pytest verbose -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -s -v``` -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -s -v``` - -Pytest only (not verbose) -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -v``` -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -v``` +The recommended method to run the tests: Unittest verbose -```/opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -v``` -```/opt/rocm/share/amd_smi/tests/pytest/integration_test.py -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v``` Unittest only (not verbose) -```/opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -b -v``` -```/opt/rocm/share/amd_smi/tests/pytest/integration_test.py -b -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -b -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -b -v``` See sections below for more detailed options with examples. -### Unittest or Pytest Run -The Unittest Run calls the tests directly, assuming pytest is correctly installed in the PATH. -This is more straightforward and intuitive but with less control for options. For example, the cache provider will always be used. - -```/opt/rocm/share/amd_smi/tests/pytest/*``` - -options: - - -h, --help show this help message and exit - - -v, --verbose Verbose output - - -q, --quiet Quiet output - - -b, --buffer Buffer stdout and stderr during tests - - -k "TESTNAME" Only run tests which match the given substring - -The Pytest Run could be more reliable and consistent, especially if pytest is not in the PATH. -This offers more options and flexibility, such as the option to disable the cache provider, ensuring completely independent runs. - -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/*``` - -options: - - -h, --help show this help message and exit - - --co Collect and list tests - - -p no:cacheprovider Disable cache provider - - -v, --verbose Verbose output - - -q, --quiet Quiet output - - -s, --capture=no Disables output capturing, stdout output - - -k "TESTNAME" Only run tests which match the given substring - -The complete list of options can be accessed here [Pytest command-line flags](https://docs.pytest.org/en/latest/reference/reference.html#command-line-flags). - ## Unittest Run Options ### Unittest Run: Verbose on Helpful to see print outs of Python. -```/opt/rocm/share/amd_smi/tests/pytest/integration_test.py -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v``` -```/opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v``` ex.
Click for example: Unittest run: verbose on ~~~shell -/opt/rocm/share/amd_smi/tests/pytest/integration_test.py -v +/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v test_init (__main__.TestAmdSmiInit) ... ok test_bad_page_info (__main__.TestAmdSmiPythonInterface) ... ###Test amdsmi_get_gpu_bad_page_info @@ -403,16 +366,16 @@ OK ### Unittest Run: Verbose on + Filter (or exclude) a test -```/opt/rocm/share/amd_smi/tests/pytest/integration_test.py -k "test_walkthrough" -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "test_walkthrough" -v``` -```/opt/rocm/share/amd_smi/tests/pytest/integration_test.py -k "not test_walkthrough" -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "not test_walkthrough" -v``` ex.
Click for example: Unittest Run: Verbose on + Filter (or exclude) a Test ~~~shell -> /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -k "test_bdf_device_id" -v +> /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "test_bdf_device_id" -v test_bdf_device_id (__main__.TestAmdSmiPythonInterface) ... ###Test Processor 0, bdf: 0000:08:00.0 ###Test amdsmi_get_gpu_vbios_info @@ -453,16 +416,16 @@ OK Runs all tests. Silence print statements to stdout. Lists tests results. This is also the best way to list all tests available. -```/opt/rocm/share/amd_smi/tests/pytest/integration_test.py -b -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -b -v``` -```/opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -b -v``` +```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -b -v``` ex.
Click for example: Unittest Run: Silence stdout (print statements) and run all tests ~~~shell -/opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -b -v +/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -b -v test_check_res (__main__.TestAmdSmiPythonBDF) ... ok test_format_bdf (__main__.TestAmdSmiPythonBDF) ... ok test_parse_bdf (__main__.TestAmdSmiPythonBDF) ... ok @@ -477,16 +440,16 @@ OK ## Pytest Run Options ### Pytest: List tests -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py --co``` +```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py --co``` -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/unit_tests.py --co``` +```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py --co``` ex.
Click for example: Pytest: List tests ~~~shell -python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py --co +python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py --co ===================================================== test session starts ===================================================== platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 rootdir: /opt/rocm/share/amd_smi @@ -511,53 +474,53 @@ collected 6 items
### Pytest Run: Verbose on -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -v``` +```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v``` -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -v``` +```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v``` ex.
Click for example: Pytest Run: verbose on ~~~shell - python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -v + python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v ===================================================== test session starts ===================================================== platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3 rootdir: /opt/rocm/share/amd_smi configfile: pyproject.toml collected 3 items -../../opt/rocm/share/amd_smi/tests/pytest/unit_tests.py::TestAmdSmiPythonBDF::test_check_res PASSED [ 33%] -../../opt/rocm/share/amd_smi/tests/pytest/unit_tests.py::TestAmdSmiPythonBDF::test_format_bdf PASSED [ 66%] -../../opt/rocm/share/amd_smi/tests/pytest/unit_tests.py::TestAmdSmiPythonBDF::test_parse_bdf PASSED [100%] +../../opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py::TestAmdSmiPythonBDF::test_check_res PASSED [ 33%] +../../opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py::TestAmdSmiPythonBDF::test_format_bdf PASSED [ 66%] +../../opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py::TestAmdSmiPythonBDF::test_parse_bdf PASSED [100%] ====================================================== 3 passed in 0.04s ====================================================== ~~~
### Pytest Run: Verbose on + stdout (print statements) -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -s -v``` +```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -s -v``` -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -s -v``` +```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -s -v``` ex.
Click for example: Pytest Run: verbose on + stdout (print statements) ~~~shell -python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -s -v +python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -s -v ===================================================== test session starts ===================================================== platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3 rootdir: /opt/rocm/share/amd_smi configfile: pyproject.toml collected 6 items -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiInit::test_init PASSED -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info ###Test amdsmi_get_gpu_bad_page_info +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiInit::test_init PASSED +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info ###Test amdsmi_get_gpu_bad_page_info **** [ERROR] | Test: test_bad_page_info | Caught AmdSmiLibraryException PASSED -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_bdf_device_id ###Test Processor 0, bdf: 0000:08:00.0 +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_bdf_device_id ###Test Processor 0, bdf: 0000:08:00.0 ###Test amdsmi_get_gpu_vbios_info @@ -584,13 +547,13 @@ PASSED uuid is: 1fff73a3-0000-1000-8075-223e5e64eac1 PASSED -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_ecc ###Test Processor 0, bdf: 0000:08:00.0 +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_ecc ###Test Processor 0, bdf: 0000:08:00.0 ###Test amdsmi_get_gpu_ras_feature_info **** [ERROR] | Test: test_ecc | Caught AmdSmiLibraryException PASSED -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_gpu_performance ###Test Processor 0, bdf: 0000:08:00.0 +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_gpu_performance ###Test Processor 0, bdf: 0000:08:00.0 ###Test amdsmi_get_gpu_activity engine_usage['gfx_activity'] is: 1 % @@ -725,7 +688,7 @@ PASSED pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A PASSED -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_walkthrough ###Test amdsmi_get_processor_handles() +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_walkthrough ###Test amdsmi_get_processor_handles() ###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 0 ###Test Processor 0, bdf: 0000:08:00.0 @@ -871,27 +834,27 @@ PASSED ### Pytest Run: Verbose on + Filter (or exclude) a Test Use [Pytest: List tests](###-Pytest:-List-tests) then either exclude (with "not") or only run the specified test. -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -k "test_gpu_performance" -v``` +```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "test_gpu_performance" -v``` -```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -k "not test_gpu_performance" -v``` +```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "not test_gpu_performance" -v``` ex.
Click for example: Pytest Run: Verbose on + Filter (or exclude) a Test ~~~shell -python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -k "not test_gpu_performance" -v +python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "not test_gpu_performance" -v ===================================================== test session starts ===================================================== platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3 rootdir: /opt/rocm/share/amd_smi configfile: pyproject.toml collected 6 items / 1 deselected / 5 selected -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiInit::test_init PASSED [ 20%] -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info PASSED [ 40%] -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_bdf_device_id PASSED [ 60%] -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_ecc PASSED [ 80%] -../../opt/rocm/share/amd_smi/tests/pytest/integration_test.py::TestAmdSmiPythonInterface::test_walkthrough PASSED [100%] +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiInit::test_init PASSED [ 20%] +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info PASSED [ 40%] +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_bdf_device_id PASSED [ 60%] +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_ecc PASSED [ 80%] +../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_walkthrough PASSED [100%] =============================================== 5 passed, 1 deselected in 0.09s =============================================== ~~~ @@ -902,14 +865,14 @@ collected 6 items / 1 deselected / 5 selected Please refer to Python's UnitTest documentation for better overview of commands to run. ```shell -python3 /opt/rocm/share/amd_smi/tests/pytest/unit_tests.py -v +python3 /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v test_check_res (tests.amd_smi_test.py-test.unit_tests.TestAmdSmiPythonBDF) ... ok test_format_bdf (tests.amd_smi_test.py-test.unit_tests.TestAmdSmiPythonBDF) ... ok test_parse_bdf (tests.amd_smi_test.py-test.unit_tests.TestAmdSmiPythonBDF) ... ok ``` ```shell -python3 /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -v +python3 /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v test_init (__main__.TestAmdSmiInit) ... ok test_bad_page_info (__main__.TestAmdSmiPythonInterface) ... ###Test amdsmi_get_gpu_bad_page_info @@ -1229,7 +1192,7 @@ OK ``` ```shell -(Tue Jul-7 12:07:47am)-(CPU 0.3%:0:Net 18)-(charpoag@mlsetools2:/opt/rocm/share/amd_smi/tests/pytest)-(44K:3) +(Tue Jul-7 12:07:47am)-(CPU 0.3%:0:Net 18)-(charpoag@mlsetools2:/opt/rocm/share/amd_smi/tests/python_unittest)-(44K:3) > python3 -m pytest -s -ra -vvv -p no:cacheprovider ==================================== test session starts ===================================== platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3 @@ -1553,7 +1516,7 @@ PASSED ``` ```shell -$ python3 /opt/rocm/share/amd_smi/tests/pytest/integration_test.py -k "*test_init" -vvv +$ python3 /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "*test_init" -vvv test_init (__main__.TestAmdSmiInit) ... ok ---------------------------------------------------------------------- @@ -1564,7 +1527,7 @@ OK ``` ```shell -(Tue Jul-7 12:10:10am)-(CPU 0.3%:0:Net 16)-(charpoag@mlsetools2:/opt/rocm/share/amd_smi/tests/pytest)-(44K:3) +(Tue Jul-7 12:10:10am)-(CPU 0.3%:0:Net 16)-(charpoag@mlsetools2:/opt/rocm/share/amd_smi/tests/python_unittest)-(44K:3) > python3 -m pytest -ra -vvv -p no:cacheprovider ==================================== test session starts ===================================== platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3 diff --git a/pytest/__init__.py b/tests/python_unittest/__init__.py similarity index 100% rename from pytest/__init__.py rename to tests/python_unittest/__init__.py diff --git a/pytest/integration_test.py b/tests/python_unittest/integration_test.py similarity index 100% rename from pytest/integration_test.py rename to tests/python_unittest/integration_test.py diff --git a/pytest/unit_tests.py b/tests/python_unittest/unit_tests.py similarity index 100% rename from pytest/unit_tests.py rename to tests/python_unittest/unit_tests.py From b7f779182deb871ae2b5391846e03da98020c8d9 Mon Sep 17 00:00:00 2001 From: gabrpham Date: Thu, 12 Sep 2024 13:54:18 -0500 Subject: [PATCH 18/32] [SWDEV-448738] Added rocmsmi extremum command as 'set -L' Change-Id: I997c630bd20cc61673813a2301eb5e3002619a32 Signed-off-by: gabrpham Change-Id: Ifa884303f9a0fa058af093a23f5be449bba54f29 --- CHANGELOG.md | 19 +++++++++++-------- amdsmi_cli/amdsmi_commands.py | 28 +++++++++++++++++++++------- amdsmi_cli/amdsmi_parser.py | 24 ++++++++++++++++++++++++ py-interface/__init__.py | 1 + py-interface/amdsmi_interface.py | 30 ++++++++++++++++++++++++++++++ 5 files changed, 87 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59de456980..817b77109a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,25 +7,28 @@ Full documentation for amd_smi_lib is available at [https://rocm.docs.amd.com/pr ## amd_smi_lib for ROCm 6.3.0 ### Changes -- **Moved python tests directory path install location.** - - `/opt//share/amd_smi/pytest/.. to /opt//share/amd_smi/tests/python_unittest/..` -- **On amd-smi-lib-tests uninstall, the amd_smi tests folder is removed.** -- **Removed pytest dependency, our python testing depends only on unittest framework.** +- **Moved python tests directory path install location**. + - `/opt//share/amd_smi/pytest/..` to `/opt//share/amd_smi/tests/python_unittest/..` + - On amd-smi-lib-tests uninstall, the amd_smi tests folder is removed. + - Removed pytest dependency, our python testing now only depends on the unittest framework. - **Added more supported utilization count types to `amdsmi_get_utilization_count()`**. +- **Added `amd-smi set -L/--clk-limit ...` command**. +Equivalent to rocm-smi's '--extremum' command which sets sclk's or mclk's soft minimum or soft maximum clock frequency. + - **Added Pytest functionality to test amdsmi API calls in Python**. - **Changed the `power` parameter in `amdsmi_get_energy_count()` to `energy_accumulator`**. Changes propagate forwards into the python interface as well, however we are maintaing backwards compatibility and keeping the `power` field in the python API until ROCm 6.4. -- **Added GPU memory overdrive percentage to `amd-smi metric -o`**. +- **Added GPU memory overdrive percentage to `amd-smi metric -o`**. Added `amdsmi_get_gpu_mem_overdrive_level()` function to amd-smi C and Python Libraries. -- **Added Subsystem Device ID to `amd-smi static --asic`**. +- **Added Subsystem Device ID to `amd-smi static --asic`**. No underlying changes to amdsmi_get_gpu_asic_info -- **Added retrieving connection type and P2P capabilities between two GPUs**. +- **Added retrieving connection type and P2P capabilities between two GPUs**. - Added `amdsmi_topo_get_p2p_status` function to amd-smi C and Python Libraries. - Added retrieving P2P link capabilities to CLI `amd-smi topology`. @@ -276,7 +279,7 @@ GPU: 1 ### Removals -- **Removed usage of _validate_positive in Parser and replaced with _positive_int and _not_negative_int as appropriate** +- **Removed usage of _validate_positive in Parser and replaced with _positive_int and _not_negative_int as appropriate**. This will allow 0 to be a valid input for several options in setting CPUs where appropriate (for example, as a mode or NBIOID) ### Optimizations diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index aa4e54e9c1..086c8bd104 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -3665,7 +3665,7 @@ class AMDSMICommands(): def set_gpu(self, args, multiple_devices=False, gpu=None, fan=None, perf_level=None, profile=None, perf_determinism=None, compute_partition=None, memory_partition=None, power_cap=None, soc_pstate=None, xgmi_plpd = None, - process_isolation=None): + process_isolation=None, clk_limit=None): """Issue reset commands to target gpu(s) Args: @@ -3712,6 +3712,8 @@ class AMDSMICommands(): args.xgmi_plpd = xgmi_plpd if process_isolation: args.process_isolation = process_isolation + if clk_limit: + args.clk_limit = clk_limit # Handle No GPU passed if args.gpu == None: @@ -3734,7 +3736,8 @@ class AMDSMICommands(): args.power_cap is not None, args.soc_pstate is not None, args.xgmi_plpd is not None, - args.process_isolation is not None]): + args.process_isolation is not None, + args.clk_limit is not None]): command = " ".join(sys.argv[1:]) raise AmdSmiRequiredCommandException(command, self.logger.format) @@ -3860,6 +3863,17 @@ class AMDSMICommands(): raise ValueError(f"Unable to set process isolation to {status_string} on {gpu_string}") from e self.logger.store_output(args.gpu, 'process_isolation', result) + if isinstance(args.clk_limit, tuple): + try: + clk_type = args.clk_limit.clk_type + lim_type = args.clk_limit.lim_type + val = args.clk_limit.val + amdsmi_interface.amdsmi_set_gpu_clk_limit(args.gpu, clk_type, lim_type, val) + except amdsmi_exception.AmdSmiLibraryException as e: + if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM: + raise PermissionError('Command requires elevation') from e + raise ValueError(f"Unable to set {args.clk_limit.lim_type} of {args.clk_limit.clk_type} to {args.clk_limit.val} on {gpu_string}") from e + self.logger.store_output(args.gpu, 'clk_limit', f"Successfully changed {args.clk_limit.lim_type} of {args.clk_limit.clk_type} to {args.clk_limit.val}") if multiple_devices: self.logger.store_multiple_device_output() @@ -3875,7 +3889,7 @@ class AMDSMICommands(): cpu_pwr_eff_mode=None, cpu_gmi3_link_width=None, cpu_pcie_link_rate=None, cpu_df_pstate_range=None, cpu_enable_apb=None, cpu_disable_apb=None, soc_boost_limit=None, core=None, core_boost_limit=None, soc_pstate=None, xgmi_plpd=None, - process_isolation=None): + process_isolation=None, clk_limit=None): """Issue reset commands to target gpu(s) Args: @@ -3926,8 +3940,8 @@ class AMDSMICommands(): # Check if a GPU argument has been set gpu_args_enabled = False gpu_attributes = ["fan", "perf_level", "profile", "perf_determinism", "compute_partition", - "memory_partition", "power_cap", "soc_pstate", "xgmi_plpd", "process_isolation", - ] + "memory_partition", "power_cap", "soc_pstate", "xgmi_plpd", + "process_isolation", "clk_limit"] for attr in gpu_attributes: if hasattr(args, attr): if getattr(args, attr) is not None: @@ -3983,7 +3997,7 @@ class AMDSMICommands(): self.set_gpu(args, multiple_devices, gpu, fan, perf_level, profile, perf_determinism, compute_partition, memory_partition, power_cap, soc_pstate, xgmi_plpd, - process_isolation) + process_isolation, clk_limit) elif self.helpers.is_amd_hsmp_initialized(): # Only CPU is initialized if args.cpu == None and args.core == None: raise ValueError('No CPU or CORE provided, specific target(s) are needed') @@ -4003,7 +4017,7 @@ class AMDSMICommands(): self.set_gpu(args, multiple_devices, gpu, fan, perf_level, profile, perf_determinism, compute_partition, memory_partition, power_cap, soc_pstate, xgmi_plpd, - process_isolation) + process_isolation, clk_limit) def reset(self, args, multiple_devices=False, gpu=None, gpureset=None, diff --git a/amdsmi_cli/amdsmi_parser.py b/amdsmi_cli/amdsmi_parser.py index 85f0307305..54008b8a3f 100644 --- a/amdsmi_cli/amdsmi_parser.py +++ b/amdsmi_cli/amdsmi_parser.py @@ -26,6 +26,7 @@ import errno import os import sys import time +import collections from pathlib import Path @@ -172,6 +173,27 @@ class AMDSMIParser(argparse.ArgumentParser): raise amdsmi_cli_exceptions.AmdSmiInvalidParameterValueException(string_value, outputformat) + def _limit_select(self): + """Custom action for setting clock limits""" + output_format = self.helpers.get_output_format() + + class AMDSMILimitArgs(argparse.Action): + def __call__(self, parser: AMDSMIParser, namespace: argparse.Namespace, + values: str | list | None, option_string: str | None = None) -> None: + # valid values + valid_clk_types = ('sclk', 'mclk') + valid_lim_types = ('min', 'max') + clk_type, lim_type, val = values + if clk_type not in valid_clk_types: + raise amdsmi_cli_exceptions.AmdSmiInvalidParameterValueException(clk_type, output_format) + if lim_type not in valid_lim_types: + raise amdsmi_cli_exceptions.AmdSmiInvalidParameterValueException(lim_type, output_format) + val = int(val) + clk_limit_args = collections.namedtuple('clk_limit_args', ['clk_type', 'lim_type', 'val']) + setattr(namespace, self.dest, clk_limit_args(clk_type, lim_type, val)) + return AMDSMILimitArgs + + def _check_output_file_path(self): """ Argument action validator: Returns a path to a file from the output file path provided. @@ -1014,6 +1036,7 @@ class AMDSMIParser(argparse.ArgumentParser): set_soc_pstate_help = "Set the GPU soc pstate policy using policy id\n" set_xgmi_plpd_help = "Set the GPU XGMI per-link power down policy using policy id\n" set_process_isolation_help = "Enable or disable the GPU process isolation: 0 for disable and 1 for enable.\n" + set_clk_limit_help = "Sets the sclk (aka gfxclk) or mclk minimum and maximum frequencies. \nOf form: amd-smi set -L (sclk | mclk) (min | max) value" # Help text for CPU set options set_cpu_pwr_limit_help = "Set power limit for the given socket. Input parameter is power limit value." @@ -1052,6 +1075,7 @@ class AMDSMIParser(argparse.ArgumentParser): set_value_parser.add_argument('-o', '--power-cap', action='store', type=self._positive_int, required=False, help=set_power_cap_help, metavar='WATTS') set_value_parser.add_argument('-p', '--soc-pstate', action='store', required=False, type=self._not_negative_int, help=set_soc_pstate_help, metavar='POLICY_ID') set_value_parser.add_argument('-x', '--xgmi-plpd', action='store', required=False, type=self._not_negative_int, help=set_xgmi_plpd_help, metavar='POLICY_ID') + set_value_parser.add_argument('-L', '--clk-limit', action=self._limit_select(), nargs=3, required=False, help=set_clk_limit_help, metavar=('CLK_TYPE', 'LIM_TYPE', 'VALUE')) set_value_parser.add_argument('-R', '--process-isolation', action='store', choices=[0,1], type=self._not_negative_int, required=False, help=set_process_isolation_help, metavar='STATUS') diff --git a/py-interface/__init__.py b/py-interface/__init__.py index e56cf2a1eb..13e3221401 100644 --- a/py-interface/__init__.py +++ b/py-interface/__init__.py @@ -124,6 +124,7 @@ from .amdsmi_interface import amdsmi_set_gpu_pci_bandwidth from .amdsmi_interface import amdsmi_set_power_cap from .amdsmi_interface import amdsmi_set_gpu_power_profile from .amdsmi_interface import amdsmi_set_gpu_clk_range +from .amdsmi_interface import amdsmi_set_gpu_clk_limit from .amdsmi_interface import amdsmi_set_gpu_od_clk_info from .amdsmi_interface import amdsmi_set_gpu_od_volt_info from .amdsmi_interface import amdsmi_set_gpu_perf_level diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index 13ddbc1312..dd5c676a01 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -3190,6 +3190,36 @@ def amdsmi_set_gpu_clk_range( ) +def amdsmi_set_gpu_clk_limit( + processor_handle: amdsmi_wrapper.amdsmi_processor_handle, + clk_type: str, + limit_type: str, + value: int + ) -> None: + if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): + raise AmdSmiParameterException( + processor_handle, amdsmi_wrapper.amdsmi_processor_handle + ) + if not isinstance(value, int): + raise AmdSmiParameterException(value, int) + if clk_type.lower() == "sclk": + clk_type_conversion = amdsmi_wrapper.AMDSMI_CLK_TYPE_SYS + elif clk_type.lower() == "mclk": + clk_type_conversion = amdsmi_wrapper.AMDSMI_CLK_TYPE_MEM + if limit_type.lower() == "min": + limit_type_conversion = amdsmi_wrapper.CLK_LIMIT_MIN + elif limit_type.lower() == "max": + limit_type_conversion = amdsmi_wrapper.CLK_LIMIT_MAX + _check_res( + amdsmi_wrapper.amdsmi_set_gpu_clk_limit( + processor_handle, + amdsmi_wrapper.amdsmi_clk_type_t(clk_type_conversion), + amdsmi_wrapper.amdsmi_clk_limit_type_t(limit_type_conversion), + ctypes.c_uint64(value), + ) + ) + + def amdsmi_get_gpu_memory_total(processor_handle: amdsmi_wrapper.amdsmi_processor_handle, mem_type: AmdSmiMemoryType): if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): raise AmdSmiParameterException( From d263b53797db492f9d6305e334fa7b9788dc5cc9 Mon Sep 17 00:00:00 2001 From: Harkirat Gill Date: Wed, 18 Sep 2024 09:59:43 -0400 Subject: [PATCH 19/32] Fix for GitHub Issue #24: Update Event Stop Behavior amd-smi event is failing to exit as it waits for all threads to complete before exiting. Each thread has to listen for a maximum of 10 seconds prior to exiting in the current implementation. Lowered individual listen time for _event_thread allowing for a quicker exit while still capturing all events (Looped until escape sequence detected). Added logging for escape character, not sure if needed but helps confirm that key press was registered. Change-Id: I916608754798f966980a558342c7c62693252d7f --- amdsmi_cli/amdsmi_commands.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index 086c8bd104..21a7d73753 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -2816,16 +2816,20 @@ class AMDSMICommands(): args.gpu = [args.gpu] print('EVENT LISTENING:\n') - print('Press q and hit ENTER when you want to stop (listening will stop within 10 seconds)') - + print('Press q and hit ENTER when you want to stop.') + self.stop = False threads = [] for device_handle in range(len(args.gpu)): x = threading.Thread(target=self._event_thread, args=(self, device_handle)) threads.append(x) x.start() - while self.stop!= 'q': - self.stop = input("") + while True: + user_input = input() + if user_input == 'q': + print("Escape Sequence Detected; Exiting") + self.stop = True + break for thread in threads: thread.join() @@ -4956,9 +4960,9 @@ class AMDSMICommands(): amdsmi_interface.AmdSmiEvtNotificationType) values_dict = {} - while self.stop!='q': + while not self.stop: try: - events = listener.read(10000) + events = listener.read(2000) for event in events: values_dict["event"] = event["event"] values_dict["message"] = event["message"] @@ -4970,4 +4974,4 @@ class AMDSMICommands(): except Exception as e: print(e) - listener.stop() + listener.stop() \ No newline at end of file From 5c778cadf1f298d451ce1f2d92ce0137c4e233dd Mon Sep 17 00:00:00 2001 From: Charis Poag Date: Wed, 18 Sep 2024 16:59:12 -0500 Subject: [PATCH 20/32] Fix amd-smi CLI calls returning TypeError $ amd-smi version TypeError: unsupported operand type(s) for |: 'type' and 'type' --------------- Python3 --versions lower than 3.10 do not support str | None Using typing Optional and Union, we can create equivalent logic for str | none and str | list | none Change-Id: I1f4a7ab67333914b33639dc62652881e1127411e Signed-off-by: Charis Poag --- amdsmi_cli/amdsmi_parser.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/amdsmi_cli/amdsmi_parser.py b/amdsmi_cli/amdsmi_parser.py index 54008b8a3f..917f9731c4 100644 --- a/amdsmi_cli/amdsmi_parser.py +++ b/amdsmi_cli/amdsmi_parser.py @@ -27,6 +27,8 @@ import os import sys import time import collections +from typing import Optional +from typing import Union from pathlib import Path @@ -179,7 +181,7 @@ class AMDSMIParser(argparse.ArgumentParser): class AMDSMILimitArgs(argparse.Action): def __call__(self, parser: AMDSMIParser, namespace: argparse.Namespace, - values: str | list | None, option_string: str | None = None) -> None: + values: Union[str, list, None], option_string: Optional[str] = None) -> None: # valid values valid_clk_types = ('sclk', 'mclk') valid_lim_types = ('min', 'max') From ede0e6318d0287ade1acd8185ab3c2443f457689 Mon Sep 17 00:00:00 2001 From: Charis Poag Date: Wed, 18 Sep 2024 19:25:48 -0500 Subject: [PATCH 21/32] Fix python unittest not installing amd-smi-lib-test package install Moving to TESTS_COMPONENT allows files to be placed within the amd-smi-lib-test package. Previously, was put within the amd-smi-lib package, which will never be triggered for installation with latest changes. Change-Id: Id49dbe69bfc7d5bd1af403c28b946fe1edf64d8e Signed-off-by: Charis Poag --- tests/python_unittest/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/python_unittest/CMakeLists.txt b/tests/python_unittest/CMakeLists.txt index 94bf6b93f9..9dcedabcd8 100644 --- a/tests/python_unittest/CMakeLists.txt +++ b/tests/python_unittest/CMakeLists.txt @@ -19,7 +19,7 @@ message("--------CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY: " ${CPACK_COMPONENT install( DIRECTORY ./ DESTINATION ${SHARE_INSTALL_PREFIX}/tests/python_unittest/ - COMPONENT dev + COMPONENT ${TESTS_COMPONENT} USE_SOURCE_PERMISSIONS FILES_MATCHING PATTERN "*.py" From f2f02aa3172ff3c74b231fb905c6578981a20998 Mon Sep 17 00:00:00 2001 From: Justin Williams Date: Mon, 16 Sep 2024 18:42:37 -0500 Subject: [PATCH 22/32] [SWDEV-469278] Lowered PyYAML post install script dependency Signed-off-by: Justin Williams Change-Id: I764c8bf01e6cb6acb0b3fc1db396707099e5ed12 --- DEBIAN/postinst.in | 36 +++++++++++++++++++++++++++++----- RPM/post.in | 31 +++++++++++++++++++++++++++-- amdsmi_cli/amdsmi_logger.py | 19 ++++++++++++++++-- py-interface/pyproject.toml.in | 2 +- py-interface/setup.cfg.in | 2 +- 5 files changed, 79 insertions(+), 11 deletions(-) diff --git a/DEBIAN/postinst.in b/DEBIAN/postinst.in index 45443b55a1..97ea7a7518 100755 --- a/DEBIAN/postinst.in +++ b/DEBIAN/postinst.in @@ -149,7 +149,7 @@ do_install_amdsmi_python_lib() { return fi - # upgrade pip if it's an ancient version + # upgrade pip if it's an ancient version, typically should not execute # otherwise the amdsmi install will fail local pip_version pip_version=$(python3 -m pip --version | grep -Eo '^[^\ ]+ ([0-9]+)' | grep -Eo '[0-9]+$') @@ -159,18 +159,44 @@ do_install_amdsmi_python_lib() { fi unset pip_version - # Check PyYAML dependency - local pyyaml_version + # Check PyYAML dependency, typically should not execute pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') - if [[ "$pyyaml_version" -lt 5 ]]; then + if [[ "$pyyaml_version" -lt 3 ]]; then echo "Detected ancient pyyaml version ($pyyaml_version)... Upgrading..." python3 -m pip install 'PyYAML>=5.1' --quiet --disable-pip-version-check --ignore-installed fi unset pyyaml_version +# Install setuptools wheel (offline install) +# Function to find the tarball + find_tarball() { + find / -name "amdsmi_offline.tar.gz" 2>/dev/null | head -n 1 + } + + # Locate the tarball + tarball_path=$(find_tarball) + + if [ -z "$tarball_path" ]; then + echo "Error: amdsmi_offline.tar.gz not found." + exit 1 + fi + + # Extract directory from tarball path + base_dir=$(dirname "$tarball_path") + + # Navigate to the directory containing the tarball + cd "$base_dir" || exit + + # Unpack the tarball + tar -xzvf amdsmi_offline.tar.gz + + # Install setuptools offline (if needed) + cd offline_packages || exit + python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links=. setuptools + # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ - python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check + python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation export PIP_ROOT_USER_ACTION="$PREVIOUS_PIP_ROOT_USER_ACTION" export PIP_BREAK_SYSTEM_PACKAGES="$PREVIOUS_PIP_BREAK_SYSTEM_PACKAGES" diff --git a/RPM/post.in b/RPM/post.in index e33e9c0de7..d98316b4b8 100755 --- a/RPM/post.in +++ b/RPM/post.in @@ -161,15 +161,42 @@ do_install_amdsmi_python_lib() { # Check PyYAML dependency local pyyaml_version pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') - if [[ "$pyyaml_version" -lt 5 ]]; then + if [[ "$pyyaml_version" -lt 3 ]]; then echo "Detected ancient pyyaml version ($pyyaml_version)... Upgrading..." python3 -m pip install 'PyYAML>=5.1' --quiet --disable-pip-version-check --ignore-installed fi unset pyyaml_version +# Install setuptools wheel (offline install) +# Function to find the tarball + find_tarball() { + find / -name "amdsmi_offline.tar.gz" 2>/dev/null | head -n 1 + } + + # Locate the tarball + tarball_path=$(find_tarball) + + if [ -z "$tarball_path" ]; then + echo "Error: amdsmi_offline.tar.gz not found." + exit 1 + fi + + # Extract directory from tarball path + base_dir=$(dirname "$tarball_path") + + # Navigate to the directory containing the tarball + cd "$base_dir" || exit + + # Unpack the tarball + tar -xzvf amdsmi_offline.tar.gz + + # Install setuptools offline (if needed) + cd offline_packages || exit + python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links=. setuptools + # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ - python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check + python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation export PIP_ROOT_USER_ACTION="$PREVIOUS_PIP_ROOT_USER_ACTION" export PIP_BREAK_SYSTEM_PACKAGES="$PREVIOUS_PIP_BREAK_SYSTEM_PACKAGES" diff --git a/amdsmi_cli/amdsmi_logger.py b/amdsmi_cli/amdsmi_logger.py index a3122124a6..6fb6e5a327 100644 --- a/amdsmi_cli/amdsmi_logger.py +++ b/amdsmi_cli/amdsmi_logger.py @@ -27,10 +27,19 @@ import time from typing import Dict from enum import Enum import yaml +import inspect from amdsmi_helpers import AMDSMIHelpers import amdsmi_cli_exceptions +### Custom YAML Functions +# Dumper class to preserve order of yaml.dump +class CustomDumper(yaml.Dumper): + def represent_dict_preserve_order(self, data): + return self.represent_dict(data.items()) +def has_sort_keys_option(): # to check if sort_keys is available + return 'sort_keys' in inspect.signature(yaml.dump).parameters + class AMDSMILogger(): def __init__(self, format='human_readable', destination='stdout') -> None: self.output = {} @@ -202,9 +211,15 @@ class AMDSMILogger(): capitalized_json["AMDSMI_SPACING_REMOVAL"] = tabbed_dictionary json_string = json.dumps(capitalized_json, indent=4) - yaml_data = yaml.safe_load(json_string) - yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) + if has_sort_keys_option(): + yaml_data = yaml.safe_load(json_string) + yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) + else: + CustomDumper.add_representer(dict, CustomDumper.represent_dict_preserve_order) + yaml_data = yaml.safe_load(json_string) + yaml_output = yaml.dump(yaml_data, Dumper=CustomDumper, allow_unicode=True, default_flow_style=False) + # Remove a key line if it is a spacer yaml_output = yaml_output.replace("AMDSMI_SPACING_REMOVAL:\n", "") yaml_output = yaml_output.replace("'", "") # Remove '' diff --git a/py-interface/pyproject.toml.in b/py-interface/pyproject.toml.in index 149fc21a1b..e4d451aa82 100644 --- a/py-interface/pyproject.toml.in +++ b/py-interface/pyproject.toml.in @@ -16,7 +16,7 @@ readme = {file = "amdsmi/README.md", content-type = "text/markdown"} description = "AMDSMI Python LIB - AMD GPU Monitoring Library" requires-python = ">=3.6" dependencies = [ - "PyYAML >= 5.0", + "PyYAML >= 3.12", ] [project.urls] diff --git a/py-interface/setup.cfg.in b/py-interface/setup.cfg.in index 3e8b8c8732..ba56f2ac05 100644 --- a/py-interface/setup.cfg.in +++ b/py-interface/setup.cfg.in @@ -18,7 +18,7 @@ include_package_data = True packages = find: python_requires = >=3.6 install_requires= - PyYAML >= 5.0 + PyYAML >= 3.12 [options.package_data] * = *.so From 2cfae0656061a46e1546b2016d3d41180ba28cb6 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Thu, 19 Sep 2024 23:55:12 -0500 Subject: [PATCH 23/32] [SWDEV-482058] Updated Packaging for offline installs Signed-off-by: Maisam Arif Change-Id: I8908451c013fc944645b5b5df3104a2ff73e72bd --- CHANGELOG.md | 2 ++ DEBIAN/postinst.in | 45 ++++++++++++----------------- DEBIAN/prerm.in | 6 +++- RPM/post.in | 47 +++++++++++++------------------ RPM/preun.in | 6 +++- amdsmi_cli/CMakeLists.txt | 3 ++ amdsmi_cli/amdsmi_logger.py | 10 +++---- amdsmi_cli/amdsmi_offline.tar.gz | Bin 0 -> 939752 bytes 8 files changed, 57 insertions(+), 62 deletions(-) create mode 100644 amdsmi_cli/amdsmi_offline.tar.gz diff --git a/CHANGELOG.md b/CHANGELOG.md index 817b77109a..5f1e04f8ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -289,6 +289,8 @@ With this change additional padding was added to PCIE_BW `amd-smi monitor --pcie ### Resolved issues +- **Improved Offline install process & lowered dependency for PyYAML**. + - **Fixed CPX not showing total number of logical GPUs**. Updates were made to `amdsmi_init()` and `amdsmi_get_gpu_bdf_id(..)`. In order to display all logical devices, we needed a way to provide order to GPU's enumerated. This was done by adding a partition_id within the BDF optional pci_id bits. diff --git a/DEBIAN/postinst.in b/DEBIAN/postinst.in index 97ea7a7518..8ecd91db0c 100755 --- a/DEBIAN/postinst.in +++ b/DEBIAN/postinst.in @@ -159,6 +159,24 @@ do_install_amdsmi_python_lib() { fi unset pip_version + # Install setuptools wheel (offline install) + echo "Checking for amdsmi_offline.tar.gz..." + offline_packages_tar_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/amdsmi_offline.tar.gz + + if [ -z "$offline_packages_tar_path" ]; then + echo "Error: amdsmi_offline.tar.gz not found. Not installing amdsmi offline packages..." + else + echo "Extracting amdsmi_offline.tar.gz..." + offline_packages_target_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/ + tar -xzvf $offline_packages_tar_path -C $offline_packages_target_path + offline_packages_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/offline_packages + echo "Installing/Upgrading amdsmi offline packages..." + python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links="$offline_packages_path" setuptools + unset offline_packages_path + unset offline_packages_target_path + fi + unset offline_packages_tar_path + # Check PyYAML dependency, typically should not execute pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') if [[ "$pyyaml_version" -lt 3 ]]; then @@ -167,33 +185,6 @@ do_install_amdsmi_python_lib() { fi unset pyyaml_version -# Install setuptools wheel (offline install) -# Function to find the tarball - find_tarball() { - find / -name "amdsmi_offline.tar.gz" 2>/dev/null | head -n 1 - } - - # Locate the tarball - tarball_path=$(find_tarball) - - if [ -z "$tarball_path" ]; then - echo "Error: amdsmi_offline.tar.gz not found." - exit 1 - fi - - # Extract directory from tarball path - base_dir=$(dirname "$tarball_path") - - # Navigate to the directory containing the tarball - cd "$base_dir" || exit - - # Unpack the tarball - tar -xzvf amdsmi_offline.tar.gz - - # Install setuptools offline (if needed) - cd offline_packages || exit - python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links=. setuptools - # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation diff --git a/DEBIAN/prerm.in b/DEBIAN/prerm.in index 3decc72093..88573f33d3 100755 --- a/DEBIAN/prerm.in +++ b/DEBIAN/prerm.in @@ -13,9 +13,13 @@ rm_ldconfig() { rm_leftovers() { # remove pyc files generated by python - rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/__pycache__" rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi/__pycache__" + # remove CLI folder packages folder + if test -e "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli*"; then + rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli*" + fi + # remove build and egg files rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi.egg-info" rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/build" diff --git a/RPM/post.in b/RPM/post.in index d98316b4b8..94d3921481 100755 --- a/RPM/post.in +++ b/RPM/post.in @@ -158,7 +158,25 @@ do_install_amdsmi_python_lib() { fi unset pip_version - # Check PyYAML dependency + # Install setuptools wheel (offline install) + echo "Checking for amdsmi_offline.tar.gz..." + offline_packages_tar_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/amdsmi_offline.tar.gz + + if [ -z "$offline_packages_tar_path" ]; then + echo "Error: amdsmi_offline.tar.gz not found. Not installing amdsmi offline packages..." + else + echo "Extracting amdsmi_offline.tar.gz..." + offline_packages_target_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/ + tar -xzvf $offline_packages_tar_path -C $offline_packages_target_path + offline_packages_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/offline_packages + echo "Installing/Upgrading amdsmi offline packages..." + python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links="$offline_packages_path" setuptools + unset offline_packages_path + unset offline_packages_target_path + fi + unset offline_packages_tar_path + + # Check PyYAML dependency, typically should not execute local pyyaml_version pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') if [[ "$pyyaml_version" -lt 3 ]]; then @@ -167,33 +185,6 @@ do_install_amdsmi_python_lib() { fi unset pyyaml_version -# Install setuptools wheel (offline install) -# Function to find the tarball - find_tarball() { - find / -name "amdsmi_offline.tar.gz" 2>/dev/null | head -n 1 - } - - # Locate the tarball - tarball_path=$(find_tarball) - - if [ -z "$tarball_path" ]; then - echo "Error: amdsmi_offline.tar.gz not found." - exit 1 - fi - - # Extract directory from tarball path - base_dir=$(dirname "$tarball_path") - - # Navigate to the directory containing the tarball - cd "$base_dir" || exit - - # Unpack the tarball - tar -xzvf amdsmi_offline.tar.gz - - # Install setuptools offline (if needed) - cd offline_packages || exit - python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links=. setuptools - # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation diff --git a/RPM/preun.in b/RPM/preun.in index 43e58c93f3..fbfde6b5af 100755 --- a/RPM/preun.in +++ b/RPM/preun.in @@ -2,9 +2,13 @@ rm_leftovers() { # remove pyc files generated by python - rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/__pycache__" rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi/__pycache__" + # remove CLI folder packages folder + if test -e "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli*"; then + rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli*" + fi + # remove build and egg files rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi.egg-info" rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/build" diff --git a/amdsmi_cli/CMakeLists.txt b/amdsmi_cli/CMakeLists.txt index d0cba22c50..6fdd442321 100644 --- a/amdsmi_cli/CMakeLists.txt +++ b/amdsmi_cli/CMakeLists.txt @@ -24,6 +24,7 @@ add_custom_command( ${PY_PACKAGE_DIR}/amdsmi_cli_exceptions.py ${PY_PACKAGE_DIR}/rocm_version.py ${PY_PACKAGE_DIR}/BDF.py + ${PY_PACKAGE_DIR}/amdsmi_offline.tar.gz ${PY_PACKAGE_DIR}/README.md ${PY_PACKAGE_DIR}/Release_Notes.md DEPENDS amdsmi_cli @@ -38,6 +39,7 @@ add_custom_command( COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_cli_exceptions.py ${PY_PACKAGE_DIR}/ COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/rocm_version.py ${PY_PACKAGE_DIR}/ COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/BDF.py ${PY_PACKAGE_DIR}/ + COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_offline.tar.gz ${PY_PACKAGE_DIR}/ COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${PY_PACKAGE_DIR}/ COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/Release_Notes.md ${PY_PACKAGE_DIR}/) @@ -56,6 +58,7 @@ add_custom_target( ${PY_PACKAGE_DIR}/amdsmi_cli_exceptions.py ${PY_PACKAGE_DIR}/rocm_version.py ${PY_PACKAGE_DIR}/BDF.py + ${PY_PACKAGE_DIR}/amdsmi_offline.tar.gz ${PY_PACKAGE_DIR}/README.md ${PY_PACKAGE_DIR}/Release_Notes.md) diff --git a/amdsmi_cli/amdsmi_logger.py b/amdsmi_cli/amdsmi_logger.py index 6fb6e5a327..8234f99eac 100644 --- a/amdsmi_cli/amdsmi_logger.py +++ b/amdsmi_cli/amdsmi_logger.py @@ -37,7 +37,7 @@ import amdsmi_cli_exceptions class CustomDumper(yaml.Dumper): def represent_dict_preserve_order(self, data): return self.represent_dict(data.items()) -def has_sort_keys_option(): # to check if sort_keys is available +def has_sort_keys_option(): # to check if sort_keys is available return 'sort_keys' in inspect.signature(yaml.dump).parameters class AMDSMILogger(): @@ -212,14 +212,14 @@ class AMDSMILogger(): json_string = json.dumps(capitalized_json, indent=4) - if has_sort_keys_option(): + if has_sort_keys_option(): yaml_data = yaml.safe_load(json_string) - yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) - else: + yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) + else: CustomDumper.add_representer(dict, CustomDumper.represent_dict_preserve_order) yaml_data = yaml.safe_load(json_string) yaml_output = yaml.dump(yaml_data, Dumper=CustomDumper, allow_unicode=True, default_flow_style=False) - + # Remove a key line if it is a spacer yaml_output = yaml_output.replace("AMDSMI_SPACING_REMOVAL:\n", "") yaml_output = yaml_output.replace("'", "") # Remove '' diff --git a/amdsmi_cli/amdsmi_offline.tar.gz b/amdsmi_cli/amdsmi_offline.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9484090fd4800ea390c15d99b7fbbbc68356d318 GIT binary patch literal 939752 zcmV(#K;*w4iwFP!000001LXZ<%y3N*HVEFfZQHhOJ-2P!wr$(CZQHhOW8QBvJ3HDR zo9t{h*-AQT3b6?6IugX4>~t<>;JcH{11TH*jWBA@n>dbU}0fm z{h#q?WMp7vWBniavokTX0}wF$-|)TvC;9(#{1v2uK~VnF5CAhJ(f^8&N{ERX#&@|BD&fxZ zV-mfBhuYnMl~dvxnf`fZMmxG+PC5^P;yt(o=4a)tGR5lluA7-)=Utgp80>fnqE)O!q&oBPmj*tqeN}XcAE{sXRnUn z8r)(Dc5OF?-ik#4dL0m`T{7M!GmIslGNKVex==vLHMsC^7gK3%#|1Ipx1KV>iJRHX zlqO2bLR!YibP-?0Z?Ta3gTEuX6MarQtV8B)a>)2>26PvbdoorQ?HokX+FM(TO_oFTTr` zUQ)&PW%YDloJa{B@`{zI-BiS4=p$u`^dHhQKClwiR>-L^lUk1?t#!?mT%~YGT13|` zNi*P)Olk#DU!r{v0s52Rd%CwJA1jGUX7vSU#guwVgov9*E<5e7X}GswG?C&z2cz&A zk+isk-s#OrZQ8U7rcl$u#%?7@+7O*Wz2CJfljJIM%!sL#Q)eHv5%P(VjT2KR#G1L; zIr&+&tQoQJDf5=zZgo++R0V*#s!`KQ?bGlu(Qnos)pv1$0Li^CM1x0@0Kwb$5zeulU;td8E>7-{dAQsaqxs zi2>|H=-lWR4bXk^L5UgS_-K*QyyC@B0n^}BdmsbR_oPI~Oy>NZbWQ)R-yI1xoB6w4 zTn<6l&29|@#Z0Wg7EJI@fjY5T7IxIhjsBb~2O4>+ke=EX1hIIh`Y|4clIr@wKgnxvweVe-5U$mnyh$pATE z*)wc5RB;@)bS#my=6ujL2eeE5Wsbm*F8;q;=a>=2yM1$_#|9y@8!zY}3dH+j=)d#v zqc5-ADzkpJFk|7ya4B(C1XhAqk`^jxbLQg+s|cxcks&9tBN)Sfp{;2bLG=dpJsn?< z7q>@aTeM$|JqBxcZEkwEyL+~T>HX^<=a}x+Jl#2X=hGdL9(d2bMyw2Pw)|0E6FD>9 z;vZBtr&5h(_xOX4Zb;{ah#X@BqFx5Oj`+n(~%xFVxS>)L<>;Ik>m=_6{;iU zbQk*&qS&C42*O|`5>pW#pnJK3~NdXKoCVthgBh;=WRmIM~8rk+T!~j0mOmyVahZ zaRjCJ(=a5AAiAZ{iK`y5%DVB9Th@X!YyI_Y_{x-GasgHEm=8myp?YC)MQp2m)F3cp z!#AAm@CAZk{`Gy_UVk7c76Uf#mnqPoMCo_oK_u^kH7hku#5K@~PefAhDNd&G){u90 zt|~DBZ*(y61&a>x+|+m{irS4$#%Y7h0$j93l3qY%_vFv=R&u)C6 z9w>WJ+1%@lfgioH55V{7>d)}t)`yO)TcYlfATReqbA}ypKFc;}Uj5VXq@{@~wo+V` z`|?u`^6Q9YdCZDPI%yo-JClWw=7l{tiJOcVyLfuK*?C;1mbY)Df#PZui?KMQ|GffOvDyD< z&A+_vbIZIA^9Z-uM4_u*=<}h5dUJvbcxrU+6t}@lDgBNEl)W=%y8>B<{}}e~_WarV zJYg#E&EpQ)=3s+WfG^%~+s7C@71hfR9z)6JXS*%CJ|+cRs;KY4NM>9)T}GhTzniLM_grTOR%6dJ?uBFm241Bn`?}@&Ppe;k4p~FAVYa^4i zqovy5M%9;S54wNV?BSuePqJD*_3-cbIP)i1uQFs5am?HJzo=qv^%{4%IL7zHb`L9p z9|o$mY#Y#?&YimKR<=&bJ-Y+Gs~cw@X7vct@8&Lww3Rcnf&PAtg(ebszxevSW%&99 znn2}y?vUUk-h`GZImUInj$c8<{W~kBU8Vov!VqUiN8sjESAkM>S@8A8JO*W}gg20w zIv7Rl(%1#OM*WT5HOK5t(NuhdVf(zE4tFk&Z`$hg`aGZDz#eRSXy2-(V8<+Avr5Sg zvTIgnL>(H|0TnpNH}Lav$qs%2V+}nJ;;!5V+NY!zc}`CX*9mEpKxxd@1im*- zva;&H@1G_>)ZCaZbb3X|)ics$YoLMOxfP){PVJQ^U22FaRH@a&UT;HXs1QZT0)LVw z?Bg#Jx=J~<;b?K52hNSS4kT;nsLwwgepXN5wc4T5OnN@XbEgb_hVr<}=@Pmx`^i;& zHjMvLVfpdR^rGE6)!a6VK7EORNZwDV)EuQ zqP*r0qz4ABbn%E`^ZIpb-I7#*neSpj%~Aq`*nx91W}^}ziugi1n!Pn0vg;q639qCL z1pq`RA+zT{h<>C#z}ZZrA=`nW#SPPr*dEoEAGKGuI*>SZv^be_4>=4-eQ7)`zxbw7b5_$deay=D#hJ( z26q(9a)z@0MqUbAg+e=TbeHdcjQs<@`>Hhsz9vtvHy*=$7#b{sMT7R8VBSP%Mt=L=L=(?#Y!&YW# zM|%drTL`o^0+f#ja*fA`Y&T!t;I;8Uz`O7LQ`J?y@P7MbJ2fY35WDjbz>2!l73(D8 zlwL|VS{58LAP1I3csYOOgV>}3?||Q9#Rc#KwKv7y1;7eh05rPFAFAwLlPU$A;-)O8 zV0*Uo=5bKiM){_3QRg@)~TFD{;}k%j37$5KUKc!93fOCDU$(z$e1zkph6= z--Y>h2U-JRG^vFST%K{W8B2C&XeqtI(fV@&cb#Zv?x0g5@xYGMgQ2`ewQY)bW2c9= z#=D|}QBeFeTc1368ahG}-v+Qi5b0_A<2ccV?sW8xAVZ%OKE=cky&8`M@yvX58b>X7fqw7!gB{&A5)B||&b`_FlMy;Bsnj3eF2V=a zE>J41W$e=arYpx#c8l>$VjrM)b{D6pBVzSflCUEx=I(v`>NZxSRB(!Lb^=dkqs`x#wh7Y}GD^w9e{)r^E$M=Jsk1tYca30n1Z`apH^5r)79pp-CGtR1trt&H`Y2eZ13nfi!M*SK(P{k ztpecQCU6Q71{y3jQ*o&yRNns6&8|20Zl6SlU>5d-MVLHFx^+uB=|lO9PksZ$hav?{ zG?x}Xy_)Q-lL#Y$&GuKO1Mx3hZrk{SjMePF8$+&F`|)EiXo;hV`soi2Vd!cU&DbX< z4La6j%<=D1{NHO=P{tX!lh)8k!R9!aj3uN+EB!Kv{7<-Z`?T@`8^v~!Smw#t?@#(q z4H?KS_jCWY$JU|&ZAl@2B&UQ45FP^o<_-F79SieVUr6Wq1C9Bg8#lfS02?&GA8cZd zYxzb>3hO#qk;6YP?v%YmcYt)aX;AH9B`#CU9~KZ1LFyn05;~2idBGn~)blFCqp&r! znLOM1x25}>ZXbtfUE4~%Wa8aaAcGNxdlC^rTu}TCnFTSy#PBIx7};Vtq3pZUGji*V zqvWOB>qW%`@h^lhT+CT)+9d+YayfpO0uQjeKE)~BD;2IsO~S?v)1Df0Q^MTC{h2G+ zBYpk8kB&d0+U^k6@ASI8KTqv$=i2IeeV(qDe?G3|%jSN+FSp!o2cDMtvVDIpTfS@b z_`GS8FBynG-jQO-wj~Y_5o&Hby9XT>i^8HxJ2q++OlX9?9%MTx6`npf=X=pTNv?&L z8!e1>;@0Z%elca9FR9+0IySFqqLJ`1n5GnTZPB5(pz_!G^PW1|;(m)Xdt&|XSpxbS z6{bMs@m!8K_i3w2$SKs^3ts@s71T~uHft;Acc0qS-kC5+?j}Empx;3tqMpLxtu8}$ zwe59iqax*Ymfl2LDE47^;UTXEI*`YRH<_KAC!X5m=`{<`9Q^T#F#QTT=2%}*JHR&#^d6)?TI@%qC@d1 z5poN8fo?}WZrcZwTGf+v!*d~{Q#&}1!4slWZbsRWUhiv+HvRv0m7T}Wdb7fCaa?#* z0F?txZo!Kp`t``lJN4=nJl~0B@#saAfZpW+?xXd9w)22gu!26^IM}NkX+52`L4zCZ z!0jXE@N(Ws^0 zU&EO1*nWFBSYR`5Y2hOaVqRfDQG*lcqbVw^9q#iS-PuNo20MB@HuW13&sp-}Ha45S z-g466Shr}22z(U)GTfGHdycVqBjhIjhA!+qctp&h)5ARecPe2S3Z?=s29ZshKswvV zyvKB^pp^%6zI6k!ZB0uBe5m~zF&$}DIgGeZib3lrSEr85<(MZz$DjQm$=e+T<0QEcB zMKOYh!Lfi5htuRJIo7}?Xho%7#-Fd@3Lgt(Cz+}tY+m5cOO~~#`l=KBNai0-ExQwM z-5mti!#lz{=o*};K|xH#S5>58%e9QsON6mqt1E-=o)kmLG(f02AD zG^{p?H2*OinwKG2NW_g-tQdM(MHuAU0+w1@1RE0I5=t6mIF{KF4THX*jmag#ai${e z1}Y)-Ds40+=rWhMz;!%+2p+_;hec%5a3?0Qf}oK9mdKbJ-y8jBJ}1-Ww4jv8cQtoH zw`htfT=lam9(Yz`AWNXR0E!k*A7>yitOfh)}$r`;K_*p-$}V#HW~ReFU9t_H@@OwkGmzR#)!hh_T)K`97<~IXhDXU}ZXR{>9xWw*go7 z2*JrODND)B^g$y?gKc>u{DrDQ2RBqhBo;EfenN@*Ty5B)3F4-MFHX0u?bOSaSrGY# zeoN*-kF-2l{nvTNs_s=*-aJ&H!e~Yy^Dwz;@SaHsVh!qHCLb@F^aIU)jizpF-|tJ^ z26HPKjVp{Sg>RIp(|%v+Qco!MGoT1&jUlj@PU=(Y4^}PU#Yf^tXJs4yITHb?n?&}+ z4#+v+WZ6o}OSR*zA$YXWEEmEC=&&Mj$!=NP;m1fCr-B-X7lj$DN|haBrxDS ze`t}z{XQel`Lo1<`T8YsG;(`)eV)0bpj;NLrgv z+RW=E7xJ6zf{r*=XFN!041o?e!gYV=w4$ss?c{-Gn(O<|_tL@}=Z_Q5G=8)`x%;q} zms3){8_03^tXy#(SN(ZLv&qDU+=W+|qtQ&y{@vVH6OanW(;_44q}oi`E(Ca15~4V0 z9cr-OPZ#jQI0Jo)hMn~Gb|X}b4{EMQxAuei)Yvx0L?vW=l;|zwxHQ*uL1-*Y`NM-* z(_w2Z-*uy!-4t6f2m@LUGF+gwTW%0!Zig#5`EAeGR#7#LCWg>LDr29>ZdjqIu@kML zc=J7qB|4yg_?lOAjIEdR_V!2|z?d62OwQnWe{_~PeZ$zg)^k-~REb~!9=>wPZe-F! z>U>E)nc1+Eb7?@B2?)6R#7(5PX_NTJ-*{7*eQJ^K2x&*j!in&!2+utt#`7cDZCiIr ziK*W8Ahp1?Bd-~gV0eIeUVYYcPaX09sE*t;>e$U-h5RL z5oe|w}0Pf$EQ7Wb37js`A7wbmt?L7 z2_lRc00O>U_t9`f!yEq?^&w+I;kG)U9oAcqCO<5C4zZ+dBzM*mMId-db%V$3yl-5E zj!P_V<++KOj2SVEd5ogrn97)%W5!hFmCfZNL^eN=Fptn%tz~t{&iD+AR(xN z2Vd;hOX1|IoI}>{fwJl2oaD}RUpceKYK^~t1m%HD^b$b!`w7b@_~c8bEo&!kyEaf< zVt>L);3nVzUD4&&O&Q85;cYq}Akd6AeRpowpWxp~5@ajj4ZZyNFu4cA#mxuz>{d#r9isb8I`T zVAE}MSYLC=c1qveDj=x`#mn|n7t#pcRhSi(0{KnGHlmvt3n1*VkqKNBG!`9MemI4TUE6lvHA(Rf&R@k9;W>u)ER`~jfAwoJtrTEej(4?{lM$6r<`xh# z=G(MXqm5+VM%Y^>L4E>8@Vd!ti>kDy$|unC15blbl88}0Cg*Pn*5Q3-I?sg`{%|ii zL|2DFVn(!FNV>Z2`ZQ(f14P4HIMCCd%N~x%STh1GNZEfzBwy@i51dHTO41+RPEm?7A40j&M;Z*+OD82$F=Ijr)13AQ5zmo7F$mv%Hxa3Pl zjJDOJEN>vMNL^if1VIB{t@BrHsp{Z`y3*;0x}WN7!0cA4G0lWxmB0uX^eXQZz7EylAdlun$6!MO&8f3vOdb(d)su&bI z0^B^(h+KEE!;fxJ(_gY+#|tduBE!Yd_LN9(qaAZII2uo{h&P?VLNHjl4;z_2uFcs| z?@@LWVbD(`FzbK2AoU#rq(W;0)uyv1KAj6qqF$(gP@%e(q#QE<)pM(@eP{MA)BJE$ z&6o1#TDkF;oQYJZCz+w_JOgI53ZF*R{o7n_T9hTgi1FkCt>-n%zZA$#B6l|*h5S4& zB0&we-NvDang`q=@$$WysbO;!)bbK~#@KCmx~Nh{L0pV?&J6gfwk3#Nw2aPMMTEsE)YYdkl4!}-N1sLgFr;bL=KblB}Vi2wC>*9pca zp8`K@EIBaWX13-CdHM){=;aKi+hf9JTNgvNM66OYncu%C=}R@C6wIhxjH5?|5pzRK zb*^+s#xdX=P3gVEFfk6kNa|Hr{V@aen2om{6P4mG~q)$=Y0u7yZ zOjg!Q8alR4G~^{dUTu&tYAw|<0yHFO@jMWzv(R65;j=R^lsK{M`v37^&rom54F9KYlpwGg|W9NT+n=dvDi9 zc~KM?5({4OzkD<&2|?DuMuD4auaUd0D1s8^RU9mYR!D4=r)TLn4hyxN8S-Gj8Y)Nu zua7o{9KbY6dtD|HHTqq$zUR+Ai>)$b~>PWW11?dFV15(exHkvV{7$R4*%%q z4upRIQXg&M0skT8L;kmVEKZH!!KYjVgj61Jy%kmiV%iLdhkBvj$3k&df8BIGl;Ezm!&Ju(XA#ufYRI`GRSGm;$z}fQsLEXe>@V*9c)ork^fe44m<* zhui^$qAj(Ll6Dk+B&=5{Qq^66Rjzw;>B)NunZ6Zu%eKx&ZLk__7;MJN7?sT3|LglBo zLs3Yq)sUJuQPe?oIdK;{9E%De=ClZV#TxvLbXHw;CZt=gY&8l5-OpxOmZm3z`*15> z0o+|w#A{jzMf3b9e?iG;e8%^)Kpe|95rZRFk;f$hvWRrPyQ_KxXnc5h5T;ud`%OPa zsY8smU$p8G`UdbYdJm0hxr(>l@dETmz(fx~HWRumWN}XXBIr7ma3cAc3~Y0Bx6>Pr zbW@sEzjn^Yc7?0naJ+~ zG21iSIP5;qmp^#MWHr4>(jy?A0lijVpDNyt=r4N3Rfq1|!NUA3Dg+k@Pi`GZV54D* zYNV+|ILxeZBr4S{=hUWUkFeHyRVxpcs&gp@3j;I#CXzD__8#8CpS&4S_{-Y)^?2gp z=m|nuSU1CblYGd0Q0PbxJo*o@VQNe-RJ`!JYC_a9UT ze}hG|6Jd8UC7hVyC=5m`!~*vzt+A+2CuH&@UHqd>ZQO(jnIVhsxZL1VqowMQI4&nX zb|YvkI}NE?kAAOdYu14B#+5G|3l!rT+*z(+sysXacZG)vImT?jdD)sXQ9cc<(z98( zgvCgPw_1vs4qY<26qhOwX>j5It~iU0oU>AKkV(U(e|sHKotaE~>yShSIiv*_yS#k! zPEF&~MB8v=-<@8dS6#}FU^sbz;tUkTMLpjoIL?OexOn>Oau&GsAEeyZ1PnNyB}vv@ zmZdK^N4GtFo7H2S+%XU1lovQb6gGYbhw7@t&pezbTW4F3;3u;n0}Aeb5GP-jy}HO< z*?IO(YiQeTXyiw$&M5f<%|;)4^^-5eDHEc*V`#EUTuRKdtSkA6E0Y=M3tI%-VeKhW zBa>og`7`C-!x@FwO10)JykoeQQ+kW6tA?{eJ;OwBXR)Ymf$$pqf#LpZo*UP8$=X~{ zHWT2xqJ-|j>qhGuoi4dP7FJCw0u$Ohunjq4kf2bBr9=b`R7u=BOw*IMheP1F0Zb#a zLfSC_r+UIEUAW2R`7hCad)~uaXO>kPp{0-9s6=*gd6fD`4iF)`0XWcI6O9swnw!zm zt<|mfP-l2^(R52Wak$cGcLxhA2L2`qdDX}()VYX+th(`;8ZrU5(Ib7{v-AztjV}_W zU5*R#F+3)~!yxX{^s?V{_*NM{lroL|O z?eHgskmxZQ$az`RWudI6-afph(Y1a45eJSN43;j?!_I^?QFDKM-~cm{>Uc^e7Er4A;1&3BFbf}lTmg*xg5;w#*G zz)}H{;|xps&$<<7pyFBeg{vNlbd_2_N1XKVQ*<^Kpi5g87@c-?3otdIrH%5$XB3Vq zV|{6pXR3ewCJ<@@k!2xC??w&Cb|Vc3GSp{Ewc9B8G6Q~qS6HR0rgC;Zwr_ExMGXy} zCCL04dOCHqvm<@>A!dm-(j>hr-59E$_KUmjLvZPoLCjwKT2eLFd>G! zVznr1h6Dsg7a%q(G^e~%b;oH4tcE85QXyM*K{oSEzcNlFg{SRY!1Vg-pedpxAJ^^; zAYP9|*s_64*#(Y(v2Y=oQsQk|E3_z0Hy7*%T=*9rMwNg1i4>kXi-2M>xWG{CyC!l^ z3~$+7y_eArtM>>2|x&au9RJofl#{vehn8(lUvMw8o$a9|4vbG4cD@;s-c8RWw; z+tfPcAh57GO0q>%z#Mm&!9&H|D7wba>K@)Vx zzK)}2DKdnic~~w5Q9+K$*svEbU(ad{rZ5V?d|tR^1mLR&WHZPg({B@@;qgKjUm={Y z7^ap#2FOS*3si@ZZ?A5fdB+NGmB_IaOW2lz*s{?@znbhO9h0@0K0^Fdo3=<%yI&K! z)-G8&<6!>$2edgfmj;5*HaDq6b))A!q3nPc)%9$spOi&(bGyZ^tcmx98)ME9r<+4{ zp-T~zc@Gp(9?pZD*aE~ElM<)y2;=?+0NJ4cC|TzDyBRbra|v~I;k-{@7!MpIk>3EJ zRi!pn(E1csjzBn^$ax*(73+uU+XQY{!l)WMmmPb^Wpm_oyt=fn0H$&?>&RUU7O>rb zOX{xM&JzZnUF{^k%#oSzi4e@HlOB4@4~A$~R^*wqt;a?AwsXhAveQwYLhtmdj^DS> z*og^w$jEr%IXU zK#32BRoBKBMhCMx)hUunEX3SQXLe&3GqaHwQovPx8_r+u?5n#!nK;T4m06!C~V(%c; zV6ebT0XpkJ^5ok> zqUxBNptU*#y7XIlAwp7_xGiGzS;%@l*u|gNN2m@M=0QS@J0T`b1Ou>CvdyxII%_^A zJ_@cMP#-eMDO2+ahUMOcRkaId4Tge@vK-H;Ou>(Hdl@y)Gl47`Q6A>Y0!jrGU((oHMPW-HFa ziV#nqQgH>b(Jz2u!IvGF(4h;W36Ca)g_#ZWRtCm7;J9~F(|2P@mRspmZ(Ne5aKzPHj|22U zh$u0*Xr8KYQf==&e)++cF2=nmt}&(6TLJxkSFI=hMo^H15qGLT5Xz^7pL@~<;y9XP zcnjl6ZZd0t!HrKdnZ@fG!3DbUhogD$4*QNCfvQ`Z1_PiZn8iCqf*2q&y0gMKi4SOn z5DhsZZ57%i+tvl)ZTs;#6PPi3MMUT3ae$mahq5HklXoQX5Z>X#^BB|M_rKv|NG6!g z?%WD|`CwiLQ%DHO`dvE_R0otW4K1Vf_+X?b!$b2*y*~?QOTW3ZVWtT;br@x;c7oa4 zozm7_&~#Mpb=w8Z3q#^>x2}(ef$sWbzt`;>5-(UWo4+~X638V2`>eCuEZx@j=B;+D z&A=F@wxhat|Jc*wM0hF)j4pv9=@69VLz}yb{=|(ii40amgS+aI{!H7zLy?`Q<;^w2 zYK{c-sH3}ro)~yoYAcyk`4=YHw9#k8f!`oiOe-y1s%_@eCQe`kaLkmV9kgn2dO;bX{88$+3g7Aj{GnwAVvG_=lu<>2GOCzk zSDjz-HHI64<{;PWg@Xf^ZixbD31Wrqv77Ha85?-~ecQ|}ma!ua4_F0KjlsLaR1lp4 z7Sw~Mf7)dNF@cNdzc3)CXNy(}h?R%l=#+8o2%uaB@9zSXEB}=@ZsV(@bQB6tt?W{S1~e?%SVh zFQF5NOZJN8K9*hE9s9s}Hw(pmkF8{%_90tR=impJ83k4x6L+#jKHtM)3nOZRC@v<5 zzv>xD%YkrW+(e#bx3`8z1;i0^&ks{C+&VXO5Ry?s)dJ`=WzQ6h>G@4p@Tv>X8)iO_ zN>hhJQYoi9C`IFVJvM3I-bmuf9uoNf$morglFCKoOcDzceE1|@1S_h)(vW)B16?x@ zLAZ~L+qEPkCvq;}s0D~=pf z77NyK)E3d#1h)jph(h`3q1q0MS>Op-9?KBqH^MGEK~kU~A!gH6)?$1SBy^hL1V=Tx zQ;M(6IETpR0+w4tvqC=uJvct^ghq^dvI8ke;{ZM%Rh zPQ4)_UU3xL=m2Kne@H^K+&T0$0>>6L;7SX!%`2XLFI-&b%6uQ}Te_o910-Qko=IaP zYT3q;0yx*2%+nvm6rey$F3`!8$?SVM5gf%CEqajTD$^y#PY+yTZyQ4>83O1k+VoSPPum7uG31ftAMvT;*?P6 zN?!a3sT~AYMJ`-N7N)Vb6)bUHqq3|K93{IJEj%TSvCnmiP^Pvhanxy|7eo=gcDV{ z)7-}y7!DJA3=)W5hqp>5OWFUWOIRiw$IkoRr`SsZZDmio zn#&cE&t2QpTJ;%S%i}IEuU;sz3N=km--+m49_RO}bvu)OeM|}b=x~xVbCHW&e$xSv zZ2z7r>*I%h@>{?fKli(U(nmVe>jc`t9ECjn!)zK!_$}P9G(5`V)sebFD65vscEyjn zmxgbL`#6eiFL-jsCgr%|SJfU*t+UZDW!x71;1xJAv8uBlzB0J_$9g2+ln&gJ7XgIj zd!z|j#Ek55a;K6eK-w9&AEX=T2*1hA9kK zJ46cia2Y9%$i*JYBQe}%|IISKl(^0egbjccAz2-DYlREGhi}s1dl^f7YsCSlJlv5O zfs?Tra*fUj^xLVehhBv?Q*G6Z%BJ<)y;MD(3>2vJlsWx5jPn6a1rP?NH%a8Fv#gfL zON4a?8sk`WS-9rs^;V`vPp;nkzOiKH#|7K3ar^1hP|IQfXm)S(n+dMkU`~z?dF25} z6#WRQ63!syxUO()M!bvaK&dFhb)HH+g)zc=R0WWQOheoXxgk)!GX8Zt0WiUG&o*6k zHvs7&R0W%@sFi-Zp$CPpgp z>YUv<^-VG$m5mL(Fge9PDk5MF@5vBcbdS~@!?fvHv6c81P0=JeG!cIg4x>>K=xGQ! z62Z&v{pF`j4f08S#4vPQlI#XJ{$>D20M8r=o`OT($YP{L%n%O8tlhxQvp6|VpsN1P z%)PxTum|tKqox+L+IZS2%iAFQNE;dGgxSh5t$d5Fr@rNJqS;k^tVWpI^rWZ?f_yJM zF}&UwMSF^00W7fSLldF#5QlAQS2u}OL#X)~L?0^_OLfX!-Btw?)mHcB9yP2&wF{D+DjE^lHJz0mj9EVFqu0?3K7APv?3*%znUgkL*SldOC&6`doo7 zPh0IC=uMmD6`KM|P_vd~vxAm)LZTU~ujC+3ot2Yu5JCyW%COd#2J&$Jtub>5^Y8^G z93;`j*o$!IK-q4opa8o$Si_9|~{qG;UF;kz$^$ z)1ZakIc{S`%NxNy21Y!t_-r@*%?g6ekJ3E?hdSx;szbO^ zDxm$A$h(=}nAO?wa>NGGeiZfE%8~&*d42xm_Y*iO1&H$G7$le8g9qrplgZ?wUb3I7U1ZB~bHtQeS}N!( z{uIhhpp6^U)Ed2gG&48iJ~^ix3D3Bgd6equM~vHpx=AO;i`1bq|74|A|Kdf~w62bZ4>34WUwd%}R= z8`+TbNv>0!um|W=9cR}SvQ7?I-jQDxRo|MjPBV79gsXF{|0%hgbU70})-Ijh<-XCi`C$sNO7)`7Q|FF0QXY=FED>$P-GPuI~>!WeN3yHiol>(u0Nz zZDrJ2W?U5iz<@BfE4KH?C9WUfg#FDXMp5!8EHyI4s%sr#qgto3DecZBhR>p5QP>3jc4)HW%2d)^&4d+Y}Q=`(P zce5teiA%0#5n_!6bi@t-HnIEdg{|rg8y!Kb97U@IYN|a`}I{*fW_y9sj0lsLk2p z5@U63t#tbpM8zvQ0R_*MvJEyJ1o|>0L}TP7uKYdl_>>5@E0ffO$f&;$Ue4xbpn|tX z(3((}Jm%ubHIp-0Dz7>XcWQ>T*?1D^i8U2$tWh8}G)N!N(8DOL4KodcCUy_*J6{eZ zkkAE*T(*><1!K{^$i#VCp*fPSGbKrgnmTF6aCPYoI0`D1yzjU}xE$r&d&IQIStjLl z4=#_lQO{zGZ%^Z0CdSIt)NTy$V9JoqFHJ-p@$rU*aoiUJ@-%Dqt88M65KKrnN%t91 zO)%5prNwKmWIlnJRzp;>^BTTbWDR{3ZO(V&ImkwtW^hnAbmM1&^z{V>Jf}3k>w`f{ zWGW8mKpS2RZmEABSt$qqw3Ch?;oxJzCtNhsIJZlN1~&eDJ-_is9{BNa|JeBdoEb*p z3|wq7^Ew%)`VgtM{VFfVCh36*0(_yEQ-?-+%6|viSug>ygK{9rct!|^3 zlK`ocTLdyWW)j;NKlVBx{6BgUuF}^GnBo-<5}v-#R@PZ|FL#{cv#V5(p7P_p8!aTZ zYJTFTTve;n&uM=u`|*aM_haM_l=>Nxkc+}W|I1T&2y+BS+*uANwh1$z3!NU(z2gw) z-(zLR>*V#!^msmH1!yt*(>@ima3lMbZ?)(ir_DBJzu;3w$-s%5&5my1)}P_&&|@D| zsh!IHi$y}FaHx~lWWTk+^fph92sm|Xmi0kctFLP0hC$=*v>LZ{Wkg*USlq=e(O6qH zC6k+pT-Zyc`w_y-(~1|*-6r#9x#O$m(94wdl699iS`V+8)o&OO!M*+biLP85?2?Y5 z$wL(+yS;y9yKPJ@j_#lEGRyLVPko3L9|v^njw0X%+0GW9XAQ1M?>(qEI$}J>@HTBR zVaDQ;hf&?js&*Dww`b?@eZ(@h^v&hK6?JuF4TFcw58|KokpmBh> zE@3+`@vb2IvIqvCa4{;#*`sTi`D%odo_UY%ce(J{J&x~hdtgq#0p71U~Rwt1`jsl zFXJ$Yt`=mj49st?F{EpLY4g&WOyOYqU7b9>vjoS)K5cXkzRs2>_e$|i8(yD5&jJtQ z>5!B~ePOdx6>dUUS~|Byf7q`~p_Nd_$6$ADtC?3n7mM5N17v4K-I}yg3T_~G0p<~h2dZux)l;o)9({e0fC%5I&Q$+LXhzJ>25Wj@1{GC!2xWl)~4 zRU~7shKb}XLrs-uT;*W(L*n1t-3$r7R@|f(vl0@Pj3#(wWE4?27z=s4r}q631AnZ1 zl7EIz8D6;;0Bxx1BIStu5IcWSFJQ{-mK6?y#J6ER*wFW7=R#x|}O5ScDaSG)gHuBCcFO_KJRT z#7*|jt`~-kiacf&pB}jn8=)*rZRn#UY&)`v0DyVW;(cM4ATx_Zb1X_yZb+JB4}-E` z;PG)ri885<+8sP@z*y9ABVP*&2f;lEdGzBqX@aTm6?)J~Z#2c8 z#KqlBnLY`HBs=DE3>JRrMZo5Oh{VRJVXwBbiIR#&_gAgt>2Lr;K)k=_GMpav4TT%( zJ^aBLbuNc%Hy^*~Im`UpjiMWgf*(E=1&VvEpcA&A*rK{`IAY|1@VpRo=Q!6@TlcN& z(wOsqbIhIKZuAW4<&Euv1y7TGx-V2e%Yx5>psMr_9ks+48P%fh~nQbg$@e&`=uU>)a&?ew+r``|3jhYL9^L(R8jCnTBqn%Q~X{Tx~%Cu%!*XTgjRGJj=7ZG9^Ce`wNFc23>!_C0lm&`_&YrqI}i?r6`Yy+kIT*x#a}#k zJeOifZc9~9;mBdq)fBQ48#~DkG{2>*NHiL`YfLIobW-zJa#UzN)8xD&MaE|hG;-2Kw zwfeHZ1N`6OZwHuHt7M{i1t=h@_*swoS5o9`F{YPgrSjazdWgLAYS_074YXyJAl<#H zaS8QOtZ^RJhB@T`astM%HDO?NMFP?UBp80QD6txFt$d2UQIfQi#Q6Pqwu(E$2 z;>PH8e-Bm&7HoD{;1p3o^P2SHgoT3=acQh&pNoT^u)1`|9yo_5eK~oO+eN~VHy~dl zX9xjoG2iy+kGUW=X$(r=P1u-JId;@Qp|Lx9F}AOm?k{Nu0ItI`Y4A)xiSpGdCk!Q1 z<_Xc1Q`q3mpta~kC|J1xa*c!9Sf2U&XZ>XD6tKtV=Hr(5+z40*;1@;%p~tB0Oq0!Z zXe+AEG?melOad-irJQ?AQV@4=ou!C_L@r|=`o}h+k&DF32;ZRf!`V`od+0Y(kv6gk z;nfKvUFW6HFu>uR=eIh9r5o7|nO}_#ZmlZ!dMHxSpNO8`?}s0Ez8*vs^cmjAhYVcq zeJ1`f)I+XDM8b8A`$fyarB2hI_$gP}MRs-$i%O(WzKgdE0*k>mM%lE?U+UYAB$`Xp zhBeoDDO2^0sT%aOwrZ+I8P<5Bymy}~=YW@7$#SVwcMQ4mIl(K!@2UZ+5xMDwP959~%u)4u_NPxAdo4Qiyfc5cxW(@5W3AvkC zNkOpWsGo`N?+j`frcrrq>|b~j>uTRiAo=G414s;}`zndnMwy1Z+=fK&MwIJ=IU_8O z;k@_!DNEmeSf7*-^G*c8cNqUPN}4pxsI~dsk(YlNMpsGct zMmCW#(6W7DSCo4bSQg@a>(r{?y2ScgVW~b2{s5E8Zqvs1UF^a|q$Ab6#b-hJM&M_J zW8Jr6^iflag4j5=T<@1wl#>KoV$6tvsi5G_)+3mYQk;k_P}RCUn{_nBhBCZk3R?bI zfj!Nex)mW8Ir*mLeiKUSjmOW44k{2$`nTOFKww^J;Ft#=mKTF0E`#d(jLX^}YF>r5?yy?QnL{;T)z_JlAK zB|+DQe2Sk`&lrAac?V~9Rq>XZhkQ|zWXX=lEzogj*IGCg)QBUH+i`ISbX;kKO-(3h zk(eBlk8thP^1AhnEoYx@Yu@fGbUd-!^Ir#~e~}$T-QoUwSf1&S_%W%&_xj<~(cbSV zV)mkRG@eSXg>BAZ1GB$oVFj|^TpIiP+`Ql|P1Y4-sl~$~j)|Z9!_q@FEa(w zW``EX1Rbs4%=V}OqT#Gk;*Xgzs-@}_kjXt0Mb7#biA8P!O6lRHq9oiXs`NQsCn7-J zp|&`Zu_T+~YaGE_*6itSL5cABnx-B>P;)AWSd)LE^QZOHqd<sKq{dv;Ef zos7o;B(U7M=VLmIW*Ba;dNvUN57na^^8^)NtU#q-=1z&`e*8)HH;E_Rn1pxN)SGD0 zXCzOy;IR&1)tXX<=Yl27&VSx03wgx&1U`zh@r@R$@TO2yl!&f6v$pjzi=t1xGSvJS zSfN}?hMFIpUHXW=r3M|>;!lnNA0OU0>;UR_i9Hl9p2?vVey=iI(@b}mj(d22*OFM` zPFNp&&jOlqhq{6fBV%b-mDOkc2%#F)58?}+dT3270SHK)fZ|}XY#KYPx*jOl*&gXi| zuj5W-mk$5B#?s>6uN#>7#x0~>*nseMdbm1*Dm!&|0gPHVGz_%xK!X*pR6qHN!7UY(>8Pip`9 z46<|M$jePoo$U}HK*B{7Lklr6FChaaq3|E4a5fJIi&?Fqe+`X6+*)6vF6E7bQyxoP zdZ^p{OXJ+nJ|S^M5Bq1Et6o;DUX;&&IZ`jT0)nhAAtfhLRbXmtE>Fi`(I~U2eyOI& zV)HiwKtI=h(Se32 zW9uH|G6+86%<=+m7$Ir-_a?d%rj^bwr`|5UOv6)ME7=r8kKIsQq5L6xp=S;^%cJLmLces;Ry9FLq z`cOiIt6S-=i=?Vtqpg!n66~w0SKFc_PQjp2XgV@pQKb+Q-M@Mg^dt-~Kc0zToU+n1 z4$(l8k_U>ih6y2>s1++1NzU`}i`ew;Jj5Psp>}SiHRDVIKJB&0q(ZUo^shm2@inw* zMUQ*Rmw~*g927Fojd$FX80U7C49BamPz^G?3QNa3&>^#uYBSi+;~a_a>-3C=*JA~m z(J)G~Nqvhjzr!HO5AOggbc%9HJj*)UUJwrhHue=gWkaYD+axQNfnuU_#HYVs{y#VU ziHl~&0KbFdVyOOuINJ=JVehJT<;vz_B((8930%8@b^aDMik<+#oZC?A z&a<8+wd~%8eP)VYBKS#7QTu8ZcIvXnrtoS?5hjl<@%q3Myjq6-(y}m53j3T&y4y_C zAGPtZ&BhjbFU~M1E^Y+ytPNKKUA*Wanw%C?5V`C@9X+nQFOaF-&Ggxwra-qHkPyiB zF1|u*V8qH@-No8yxB{F7jjSyaFn3ADA+RxjTV&TR@ty5CRhxTA6X3wUki(Q28#)2y zhJi80_FqR9$o$9d3%^KT!}-zy76kIRxT}+GhfVj*w~2p@hyR;`l45yN+N! zQnJ7r!jEVcwzy&>4*M+%Hp|dHUi&! zxz(#K9P)dPr-)GFv8#+La^!~Y#i2@Js2 z*`7O^p2d#9COv0$@q@l!Jq=dW#na_c&cz1#$Zkc_my+LB-wKRRlV7r%vbg9pDrzKH zmVu}%lLUfJWbC^UtwjAYqZW734s@0IY{bj$o?v=2u*RCMJ7{M@pS9D>Y5i*&r$(Ag z*BimLcR4s|6P4T0otI(twrOG6FoFxCU@tJBg4_A3Ii^VpNsU!E>CZ!pPSz73{v{cH zDfBX7UA+mJw_4H&-d;Ai-kN7cL9LYXaLvS@C!o}$Xd#D5QBtJn;70#)N&~<w zp<;x(f@MYElgbx_kNzYynmf^%c6+?=bSlqC=$^N`3)rhrgLbZeG^cN!fSw8$pJ7;C z4YJWeMJ~5nLj;i2+?ajzoyOrGTl1DELbyyWg$|bA1^a$@ov_{j?uNuEAQ&s;9U+YY{ zOpTOYW$zZl*Om>-3SKeey^vqR{^-4_VRj*}A1ERSoTPv5{pc%|Oan!0vh&ASRz}>q zLI)1Z%ST|FSjZ-+Anpu%QX+<14Ll3R`R{0b4P&btXFOfw4C+0@^;yZ-lL%%(dRp)t zTDSzz5^_;~lgOS_C?AvU;AXT6I0o^fm7hPwnHQs8RLiNJr^LDRCx*UM z;%oAn-)5?sbl$(|L!AK`QU7GaAJ_xoNHKH;N)b8RZIxbh>MAv4dLT#ruq*lkd@64o zkxZZ9`GDQmM<;^@76myVMtW!HXoj_Bk@=J8fq)F-$j$<#u22pf4^oTjQy5(=%BiWa z4vJ39K3(WTEBB&S>?^J=!;R+yv<+Ww*iRO4O@(kmmkG^{ccSu}bqpvT?WAef&(T1> zED987*g&)L;yQt3I*9c$M4J)w;tWUbBji=qB4_40kM05dhUCB#pXv@oNR!-#b|-BaET_{GpV;Nk3x+tHHuDr&6nFe> zF>CIN*Vs*07JW6cBV$g@M!3~v#e`#y$fyF8=fasc0dnAaq%x#^+{e%~iqBHK!ow|?u&vxxn(%V2x{kN0q z4DC+J`J@Uv<`;WW@8e=h?Jl>^UHDY!`{|;|tjumlk6tgQ*E?;JehG0mx$z~NuPZ8% zhp_eQJq1o%o){(m4FenHZV^JZE6z|&6sq9$6VLp|WOY}$%3e;fWE_tf>PrM883JYB zhsjb7(1ko^)1b&3VnD$Wr^)NeGPl>_C5+ z_?INxF@UXBCvE~q`;cT-Jd`uVTA@xY5JtyiA)%>zZz<6%T1&^xZi7Bg`!w7EP7?N% z08kZicDb(4efr|7zVM8(!~iAeQH0HvLfmfoM4a37cU!OxnhnVhV9NZpLk=G>ww7Wi z*OS`hiFQSp!xM(T7I)`lw!k9v_6PZg8BRo|teCetyo?v7?lG70K@%j&@sjeQ(GB?C zPGb&PDdqv+X4ZrPMj4PQhFjpDz$^@ah?&S0+h3?|uQ2-ZEI3c`cFq<7ng3!&LzYYM z&!lE#c{zJgh3C+HHE0|!v;)O#OT3g9<1%^JQS}p`i|vhiMb{Z;tD+aPI{b~P5PG(G z)?HwXgUn%iVu%(&f6)uHZWX@wn8Z0oK(?PWQR-H(i=>83eS$nrkJ)i0INDYgLIYf~ zsZNDavcJ+9gICZ;X54a55WR9@qE!qEHk}ZaC39!hybvkUZnXw*k1lJ=gpN*4Pw2W< z({t9n6t43u5|!aXuogLbQgh_6QwV|WRW+!j7ErI%D*H%gwm8D|0(u@VQKb9x$k81C z>}~=6%#FB?aDg{jhaJ=?X?)U*y~0Y`YI#6}$^?B;<<9bJ2_kz47o~}NgTfXVZIv`r z1nDzMtIjNmg65nTNGS(AwatYCP2K?4(DNgp$rM9A?{Y+FsX7N)MMSlWVOm%DVuZWH z0Hlk@)gb4(tzj(arks*AUu4&AK+fjlwho#~6`b_Yxj>Ah21}%5kC)$TusUi$I?_Ei z$POzSXm~heY%rMdSkC9!U~?2SsuLsdl5@Ydb6ADjH8c~A2P3c;d~c`*ODN=N08liJ zjCM_Me3+q%K6(xm45~LW3m;eMT5-NEja2?ZT}$G zoDRK~ZFsrH_4CBP0G>YwLB(^u?J(Mz{BB|-G3)cM3){PQ~EXV z_l0dD)~I9<)5D;n^Q@|>G@*l^t&`xk(IbR`;<8JQc?!p6bYB4zAn(Y?ycP?%dxtUk z1z*0BZeK`=57^9VZL?I;ER;(-hzeH)_)9upBLs6a~dK`sQq{kdGyHP!J_~>MRjg|zM zNuJVth%NQUR&bx^wCO;XyKMi0J#J|U7}yX8ip&dtECq6HNRGtcc=R4{PRx;5%V}^* zs_iYP@~cwTb%InM2g!r+XQ21WP;oz)HTCofiw(Lo!p=e9wQ;fEcTB-?aSDpv@9)yK zJV$-ACEn0Zx-BCBkj=4?qTq3g{M2#cPYKZPr?ao1-)D zVsTMADSmglCv^h7vN`HN)l%Tm1f|W-nPMj1C#M=}83fa-U?-SQs4ueA=K6jGSll69zM#5oq%E= zP_-?0*q>cnhTc$oGHnm^2~_^5{#YEBzjp+mtGrsE8vAC+&ibt+}$ z9oWSTF+o*Cg65PKFX2uM(bZsw^48eZG7)-vsvBzeM(BhqZcFj;I*4pV_jO&zuMmwR z-;FvD(UC5@Nd8pa;%{b?O7P@mMIi&6%L{7P@Li%^r<(4h;7Ur)N!q2$wjDAJVvDF% ziJjoPg|^82$tM0307}{zl(U_uE-f$zX+1Fj8m4p$PET70C;QR@x+5FgQf{ zQA!~;Pr1q!*L8?+!4}e1Tw_o%upR$s(X=hEOEpa>dY(Mffj@($)WeGwiFZot0Ba72 zibP#^bF4r_%}p7m9bhHRkK<#$^Fh_7&y0R!HCO#f!LT&RF?ccu_P<^S`oAyId%lqAEmiNVWE}$QL$4kimvJl$@uVwQjd2(^OP80iJXwnCO=( zhOv!vur3+|5`~TkTNvGhNWhhIdL$^l5O~2utVR4g;NYEA-!+W=YXbb^V{q`9oLIE_ zHnO)ZHlb9nwNoEkp22|9GkWLH>ApRO&t?0iY(w+QQFOMuXw%;h-u&k7aBu+ydt&k^ z0|WjAB>Ngo;y<7P$B##B)r(k9!@(bI-E(h3+Wap~Gv09t+@MS+m+p&YPRM)1Kj-3@ zTxK4KiIfnnyQ7s+v`Q&yuQJoSmx6VS(A0COa?Ae{-=k5xZ9X_OLLPzIf)Qp=rKwWM zzUi40unzmf0jY)ZFzR9ovsD2#G+qN+H+uwINhR}$XKq$@yCc*UX%50sw+E*TT`hOG zxYonA$$ywrXm65jE<_R)te`$WZ4xO+a+c6s;ta!1g7$?S0&!vJ9EQ_cF18<$gX2`D zMLHx&`jLVjmJD3*iQ+FmuDi7Hh}&UfSH7a4cLcR=O$CK@%NlbV{CgFZA1ATY438V? z@&Ol5dyUS`+j1fx$@lu~(f|hZw}fX!Sr$bDC#QqjFVA6vW1IsiN6DDF4`EPrRb5SHdRHB!oIyfv@JgVQL&u`cHuMO3T7W`^?*&6<4FOp~j#e#u>Yizs)b zrTAyh{uxd~?v^l*89A2E&F7eEkpjI9%2i(pY9i9 zRvQ(>u#Im(taY(0x@2(erU2$LH-Z{Exo}eA7sDLWdZiCqX<H?P9M!vdj(OIP@ubn+sRjacpMk+A`RzVg?s2G%ANjBT0mJmxHrU?v~Mtt6RKZ@Pi;)Nt3y>`9V zp7M(;K*bNYD9K-56^Fg7=0)JMo!`63T>coQt1!5PrJAE@zEKXDusczV9Pu{zVGSw+ z$XVK`Rbu=D9I;|fH+??jNL)dgbDg2&b9Pz&xf-xAUgNgb|0F4P4m+w|?uvqWe~8bW z3uJ0YX+tJtHd^imG`^#yrSFOc-^Pk&Yi7rG8iK|hAvV=yt$t#{cM1Z!<8B0?dTl;F z4lSV&<_O_AuUr&8B#@K#DBW{Hb)f90?ErVKugv7OdSaimkF@{irk+PYEBP$@tvNR? zY?)d)E})mJHe$WT{#f^Sh{I$3 zT2oiCq(|fnV+vu46VDCBzvkC>_NVx|!;0RX2m=-Rww>H`)tQM%g`N>D zwilKPu4bE(!hnMCaV4JXvG3I2KNPZ3XR9FF*U$>)W^C#%qTUAGSD+9or9z9QchJ3V zCR?D5j?EnlD~Rw>?-H@AkP-Hj)J`e6e0oJJ-b6@lX|2^k1E9>y?zQDUG-Si6PSZ%8 zoFmylqN)fCo|X_I-&C3DLz<*dPlK_H(Ns-)S!sB*OPl=tHtw(+$dWquP`C$E!w2RE z#=lwg@sI6WG5?RHkRv$?34A1dg!9^cY-p+{RC4^5%%qa%ORI_0Q>-I7>jMV>7_tV- z6>1QHF!mobbxY5_i1mtfSHJcjwpweTQKY?qh`zze)wSX;MVK_jv6+@S#`>3u#$3nc zbz`UI(kTlZ{=|lJP{)drk=+pC08p$l)@%vRfc?EsOt+OOv96GlySl(WZ#DT6Ai{zH z1_KnM^c&JG-ep6c``F>O&yY$qjD}?a^V|{`G|qU51!)G@3WtJVPaI@5loV5aqBrYF zCBV5VyCJZsW+BHnSkfLqBiwJHWy*DD@w$OPLm0yxz8_R#8czVY&Rt-_tr7!D)*Gq% zO>+$JTRHNGkt=ySMW+{UMjEwJ|Lp^a`=xWO@db#p7;t?lC$3{`zM?*^i%$-r2j0C! zZa<+zVRtgfH*pb5hIBHeH_u%@FYahPmW(XLceJprOU9=ZahKpdSJ@SQ*#6m6?#pU3 zBY>?aUr3r|L7@l^#ve$avS@(11a7@~L!S5lT+23PP95zETZ&V0PIM?OL0+H-y1%{G zxJ=kVlU)p;*llEGX%st>X0lM!*aTdL{xEo<+vM4QIWsP zvDmVRKlHX?A!XCHK9%fyrWzk?QL=>ZTOYjaOgbxsl>-1VC!M})6^@k`cDY1Q8lGwK zA@5)rmoCNwl);~qrO8>c6Q%5;)_~*YHaX*>^*B<^;EoC87IT!GnP*53TG88xS5zG; zO2QzheLu%wRXNnxb`G7ER-U`m{@yK^^j+i({ArAUlP~mm4V#wPWYStt6TH?^vr z=**X|;2%!~xsV>R&qsE~)I1-E*KMWE&QmS75PD^&acZK|Q>j!&Ok-&)=`u@#0!S3S zRdg`50`wWYk4=C6 zg#vPQ=CK}I<8&U!R)Tz8ddi1NYXpQN#gR!>ooigtj178pwK#%8kwGBI z8^cQO#2st5t7>J@L4V_HxI$@l(z=QW8&sm!QCysUYkB~MWzLgTZ9fyJTxwl3atn4W zQ5w(;$x;gM=Og;Or?Lw)&s*_=KQ3gkRYT2&Uco*>J5y&%zG zXCG1h;6nqag?z9`Z3wnj5nR#IIL<~2S8(QTCqn{gJW4m&1(2x=JiGl+$AEss21EsH{QXud8?5F_q@ z7y0qSy*5P!sJF>F517gRYe}4z^q(%Ug_)Rpf3l58^km$k!PuRTo>fuAx>D z*+pfk`RB^3q2f$Av}6+r=xNTQ9b(1cX#nsz3E$#$aEK7o$g%Ufei!8LVyecv1(4H% zl`JtJBNts3p>`huyC@sZbslwdxxkE{QXAX?A-l$;yMG^t(itX9NNS;FF^62WS{zQ> z95^$LvVbojpR;=(yMG(o8|mRl-tYYJLVMQjTDMc_C4jcMGMk%?)k%>rlaBFHMS@G| zzg3weBtS-1vi)>)q>VXWy`E&wjy^*PYm))%aFJ_yxleiXL*%dX4A9R8g`=ID&iTf* zYAtuB?WC^7;O?hj{ctxeH7LeGa8k(}u-F8G2)T-@fa}TpRrre# z8u*U=1iN3=#l4&Q3EcsjMO@!*Bqm4zT(d#|zD$!a`;v6dAdbONM%`BhrYq;n*C$6W zeEAUAH)q1PzfgOrhj=%nMm8sV0`$(KjR}?(3oND`no0PL`-d}PcJaAQuYzFhfyG2f-&$K=id^G4->>tAoZfND zf;epNjs_y)-|lvp0ImvBqL8umMWMxKwvQ;E6XM$*vO1OhLyX%10*-@{+{LTGl5rJbQn(8 zrsU}Suh){z^HqSq!8G}HPC-t?b@11NVOH4r-9++7ce}&~N<8J6`p#-Zo;PfVgjyh7 z@EFS(Fivd;z*J==36yeKONk^jB){{I^^-QLtD8m<=KK2CM(;_K4&PPC86rw&XrVGv zo4mWpU*`;rp9P^jf?l;WZm};y(nE(Xezmx7G~f)+eESGpSmhK#vMn)EdUtoz-DY~@ zjJO@QjS!TbtS%=`$BM4v^1*bJ+VEg7kP)530mv)i5dU7EkC%(BwoAf6lmnnEV?`?A zVT&{I*dds5JIlUMQ&A3Lc0vj=L{S2>D)O_79?9xt|Lr=|MSM*GfyIrOrN)`ePe(+s zu8X+hHc>1_?S-5bn}6alm&R2H;9c!*b&%VB_g}HWxOYXv#f#uUOJWX&6LM*_LyJ;X z*v-`I7QKwN(lwerXoFgY3nd$An4ZfE8&oqBj`Ow?9~E9|q_T{xj$xhT>160{!0B)@ z{aMXJ&y*tfWzw9BQOxw{f$cAs*_=4vv<~sLQF<JwHt4G8lMzU4EG7MI&IWaY)o76>Ttvon?znOs1^54+4p~*m8kY7v+$eG28k0VZ##`2gjj#I6q2MSxGHVNvXs=1qn`-MOicnyTiJ+ zB+*laF$Qc6qwKT)4r3WKOK-23Ok2(x%D2U<2Squ*TgAda4CgM=ae!WgW!pG9N`}{p zo7fk%g~QPNF^GmmBRMCVJ2y+V(>HHKyDHeU9IuK8DY)~^MSVcC0Fw_}HRdSeWVKyV zD-pm8)GGtnPJz(}_C?UKx@hk2 z5J{0$F^mCT zOFo5#Z{G}P?^Bt~heA!J0v}ft4^h@Y!za8bNUymfp1o-fSu z{9d;jDQcdYJa`k!z|Sl{DtEwA5(`6r{DOyTEz&^g*w$ zqp)4U$o1k}|1}bjwWQXPXvns6iM(HbhS;K00P0hOayf{%6nH(NX|VtJ)K<86bhLgI zk@$2iJ3t<4-vy0uZGVOJD>>nVanE|os;FP?5Jhsg9yIJ__j-MPUv!npc*y;&UHnBR zfxyl6;>XT0#!cOSdHnh-^~21K?#0cDhxM505ktn4+FK4fPlkGk5xJv*KP=|ny&$OU zKg2Z2b6Q2xxNcLve!zw4iTn+lDAKAYbj@1OVPwhr6-6i;kkQwgzx!CNA7#DyP20GR zMvRlMR5$-r7zeL+vM+#;86fIu+!FeoT)uF9Cm zag`N=pTq93v+t%Tx@NnS8sNyob1|-kH!deWf$&2b;s0RQCj5|$z*tc0NqtE^c4Fdx zlVmUn-EJLYC-0CUqKJ*I!bE4ZYqFsC+m}sp<2We5?e$){4n-gULPN>6gN1zp>hA%o zXL3qKl~PyK)*Po>R51MuPGIU3bx^1_8puMZv;SO=59OVtCuh?9zE=qc;%Sn1vGgiN zQS;)28D`YL166(Hkf^EXh(KvwFAkKRXz9eKxBeb$lp7C$nV#s!EDNJ292`Z^< z5RkEmQug(u0kS(7l3R(3Z;V(!7H9FGbu#?MD%xfj-*9S&Vvg+ybm8C&UC?i?o$wuB zkz~M${uhP1(Pq~RXSf5lu^b8S4fffJ@- zlfGoeOFY(-PtOL}3S0=zNB;h{H`W=iuRWHRL+*Gq-^~O?N-|X(s#mLt6R@$5%@7HVAQrewdo>@Q7 z-^I!keT0;Yj(}KSV>eWnNQUYzv6NUcM$}!5+Fq+Gq+aqJWFq66X_$lT(KfA)JbG+9 zoZdBTPpNJ)9Nb40K*cyDnRu;gIrwh{A4~JdaZnL^SA2(~4<1llqByenHQil<4Rd5@ zh{zG<=y#c;R&mom>$Rxif9%coIcA{O1ckqs2IPt&au>8R7^H|WNr0kF``&09lF1#1 z8p$1o@_eDjfpNC3U|xoS<0rR)n%Zf_Zi8_1(%$}9{ei-i$$ zwLhl98{5*svLptt!!wRCn7SHm+8@w0cT`w8uL4ooki5nqCtB(^0*VjZj99m(IIl_0 z)vLv(3OiEIHD%-{i;*Fl7kY)ZR|bf15!WQ$mb~Ds&(##8 zl;|U?bHNh~(5+<-SSikg)}qM8b$Q__EKeWZ5#k3U(;KBIk=FYX~&UW}}@q=J%zsXLs{rHwdh2Z1S%9+;j4{_V^ z5C^nSilG%L_pN|2m*d=W!hqxi9N(lb=k?`E%`W;Xgu}Jh@YlvZ zyr>tDB1|TSGd?nE0cl6^D4zdO#!mpd(VZL$$$vdeUxd;f2fHwZ8z!@(IMv(ow z5@1-L%Qez)*O|&j0E{Fd==~3srf0+CQGVYvGfUsyolJg~w1u3`YJ%Xz3QDQy3)dWN zRi9G?RZP_6xS|n&C<2#V-7+p}#aNfC@G}1;R+zKnNYtZZ)N=v+{v84b zD~^twg0{Fv2Z|@)5CIEGS_cgIm$2z2v$vP0+h$xm-r97!JIu_XFfSIs%^iSz=E)isCOgT|`d7C)N+YQ&kZ|MZ+lg`*LW`Ml(^40X z{)=i~yOg@t904!&lF7b!7)Rm;wIcg1gvCpjt}-go z!=b_)tPj6!T_S6M)1*It??Y#nHKS*o{n$(4gTaD^ z?yDdy(ers9lrcL)5|hbtjIm;yn&!#T5Esb;_jWkBLB=QP!+7c3@)OGuCy}` z)4O~vmd4u+OcQ7x+?060H5`M1McUW1Ywsf$*y2zhaNL$)*WQvyGQ<}HL3z~{sFS|o zLZlF`L}Z=N5?`Ijs+UHnrtOY7dLXrnAYxfmE>}+5aG60lQ1mf{YmqkfL1+*8ws$B^ zSGVpT6Pw3lj)hCZ46uhhb;i2^=b5Yj*YGf?o})WcOYEsSk-892Q=qUO8~S z?+@CE2z2GU#zl>e^3E5*)%Qeb&i8LSzmIiQ>PN-q%(BS##mMwPfbaZn_Ys;gsUD;S z^}p^}r3UHY-2EfmPb$eVPR7e`4xro-=8>-AhI+K-SRnng7JSx1HOLZ^0`VJa>1NJg z5v-zV;CT7#fAQ#l#)-%nt|DDpsHllR1iZ(Ujc z{FZoPoXkg}GgmGLv#lN%U(WjO_(idNa*+ZG31g`Qt)QmTU4}=TPmxb`4HW>1pdvcA zt()8GZ-N4d0>$!+aKQ2CUS>pirVhRN<9=w2*#iR%6}GjNQ&fk+95mP$O~jWL|2}TJ zA4;rQ0z1ZN_37%y?d$7O&CX4ZjqCa7F09>%+_VPu^%yew;Wdr@O(G+=*LCq)R)aL2 z`0n4YJcbHYs!2~2?_LxyojQNCdfXTfmIok1fA+)rn>P9DpuTi;$JGmO+Do^@dWuw( z)2kuI*wK%v)Bea%u~pYWd4^FLXb0AyGq?k#6H&PF`C z><^)Kjl2E!HwRoR;{9uP_VxCO92;M=u1@#nhR3h5sjI1}s}1;Z0Q%ic%ki-Nx^RT= z`YOWnJM`-yU7QUnbjm`A9rJ;JjF8n}T=Yu#i2_EOFBW;s?$_M|3Z~7J=(MO5{rPC_THJ{MvWeBQENS182*C#oQHlK(M?R?r1C(o(R36 zSogx&)}6$^Bo_U7NG=Swep4=p*P_11vlj7A?WXdF^f_>I9CJ+shgIFdzDKu0xf>BG zBO+ryt)N_)&Tj`8$$n`T{-gaT0vD&A7h}b2-lPv`(@=6hz`*GmUwk?EXtbZb+Ru0> zvq)X0KiP7Hem3S`&6I&9+fLkVNFg!@F-Z#C7~!~E&9B29G6TWbtBYFDx0iwl2Oap^C}1p+ABLtxJi6|2490E#|jWH(#U$g{wbfD$rFc4*IQ zpm8KjOX7ZE2zr@56n|@Mlrx)p)EHx@70)w>XY|R@x=z%<96@x(+EMJD{tk#U+B~G)CtgU;@L9C{z`J2WQDcVM6&ZyW z*p9$Se<6id?{TYUL5W&)D-UV?02Bu+2t1w(1B!G1v(@k{nO~i&9^T zVx^wqxqv=4PBs@qQe!Pd;Jg+dxnlok#9dPZGQ47FyHGYI`WwS%e=-RIk_#P=kiar@ z6N)s6FNts}ln`@g)ApW5o+MZw34tz7AqYTIfc21hXfe@Y;+wS*S%-GiibPYt1AI`~ zqJ7UekTy1R8OS`ECmt1KHHb|GwoopG4rNzn%mJ3nFu}=)XQRE)1aRTeI;1HJJB$#M z4+g3FnnRu9u#_Cz7pu(rIO9YNE+GabR2Pty9D4P5lv9=3Bq=91AoSRH?vYiAw2EV% zk-O@XL-Ucn9L)N^2Eh%-!*N8&+1Tiyq`CZ*+c<(McZA;;ox@L6aD5a=8rfQ0V%pUeOx})Eb z1hbXAqMLM=yMPS?IR6s>M}WA0XdiHiW`({b&{UmLY5|WYVRVhNCu16*>5rq3Ab=Da z(UGn>@xXn%reeh`aI54IemL;Jb^)~*9W;W8xjTe83mAgnLeuxUkrU0DuKVo!@1Oke zy!O6j?`+ozS-do;QK&>?brV4*2-e^Uk#M2ngL0i5*IG;nzaaeXr}Q%PVgCKQ`C9RF zm^meDNet9{0XNS<=^0<|0&iNRA?etD2)s1K5a!JWV%r9W1216z0SKjYe0X)(d3EvT zq=9Y#M&dybO38!rAaSx9<{71;I!<@A-#%8*NMb&fq(u7#E*=f@WjnuuV~|E0xj3YN z^s+s_6g^jd9=7gWuW_+i%N?eE#!8p@4lTK`Dxyd;u1U9KNek(|m30-V4>C; zx?7XEY&e;m%Ki)Gmm{OPN-`40QEvrkg%|U?0a^(~fYL1?ElQ^M2xuPx?KcEyQ(u@9 z-`I&@R1AnKOi8+W5u1=DO-6^FJH&ONd2oeT(F$NXuwLeSato}zM=&v@wH2UeYTfL| zG=DaTP#*??ZJ|H(qj1F1sCInzw#5o^(_|WG&{ZlKmL}k8qnMA1WGN>Bo;Hyv2A^9X z(XRlXi+RVTQETCT0r*Kmi^1L@#5xI@ZVB#w0hKz6&DyEs`F{iSu;0Fn!U0$g5|B2< zhF%XWoeCVFz0F)WgNcZWT{oD1rl^|K%GqIvyI;`^vQ{&RKsRKkG61q?b`jl4U&dXK ztpD&Fm_xN=Ax;-U<=FR!Z_m%pf7)lqAsIv(5wajlyCfn;OWHz-U|;n7@P<+fr2r?ZSrDpz%9#z0q_BU$K9&f0YDb7O#x-bz3F>uP?-V!C z)K!4g<66c+{nI)IIfpOxpU#2>m8jbVw7FmjnH;968b1~I#_pdgc~(=^EHjXlw5E|U zGVcLusP3xE_V{PuWK&l6jK8U%3>&?^H+bNZvYhl0gFj;MZv%rr7M1Dmk1Q%@A?0>u zWkGROn5S#&6p`hGX8qVKARk?vpPv1+yo9`2LcN@&JJvUIOsuSM7MHZJxCxAZR9Lsc zEQ!giPje}$^u*Etj7Bn9zZRBT)Z%KGT+Lsm5O&8z{8$QmOv8_9SPJi#tA{MASwO7dw?<0g*bDF%?!RtdvA`)Gkrs+K7-F?XHTqaZ^>sZV{~qB-{r8CE#22^$6F0j zvZpnOE3x8S4!4NdF9$?wxpZS5Xstel``SmY+Qf7zRJr5BR*GUp+DH2IGdU@mi%13o zE{H8yA>O8U5PG32q%#BRrGo+lkhByw2sJvx?w?B@HTrDUsw5=x(Bw&{%20wZ*iyTG zqGs4k4SVRMuj3xpDn1(ph0hZ0)NKX}7MZsY!Eq96(?PN#9C7(##byHj7i|(31MdbL z1*gO&uutg4_|zGV=~WA@3fs2ZZ^GX^-*?)lu(*CWMaW2nv-S&hRi;B6c<7FJyOoT2 z1YFAY_Kv+Rm2!D@es*!bufk&zxTFl}ZKCL0<{xX z=j(wF&}hy_IQj@jzYRG0cz#BIf8_aD8c|l_?6ptKvL}-1tyuGcuiQCV>+108WUXVe zTc3=9PL6rk1LFZrjY9#eB_Rut^2EFL>>jn!8>Ya@kFb9^)~3=@!IlEe2CYE~7;KME zW3FBeTzvGFtxF4h<;w-8p#HSyZ`sOLK8%hl`YW8lk*vTkAGWLn6Fz3~$1MJBWbu0| zD!mQ|V!fJDL%szCZe*1yfySDpTg(yi{A8W#lk(5o)Si&}TUVZ%IFZbXRG(1i9O+(Z z@f(Q0dszzCbFWn?B6yEQDI!IMsr8CdHT>wtK0B*o9*sG^+7ITf%38YmgHAWWxv+8s zXijqJV4(>;SYj(snn23>EO1pl$FS>CK8cJx1G&Atur5>bk#`0uq zMy{ph2NXxO-Y8~|g%5wv6{OaNIdey0I-VaCP6ij1W|ov?NU2MpQ~8P2gRzI!@;gE& z*T=pow_oc_0BPUkJoI@POT3z zR%LYgCvIVQ6wgu#nTC(!bIVbBn(t$$CTK2c$y)?Dn>@%bGAm={*H&M|ulYnlIluFL z?v>w6{ie7V@?3mKeuJbqQPP>!B+OCpYGE`0(^B`i5Xw)Gq&P6XR7&JoNJ z7;?i1@gXEeF;O`R=3^3~Z4wz|Ow7Tf^dn#C_qt$xFe6r}I`VQ38mNxCneK`q_kArF zm4W^{+gh2QdDv%`0@_xi*r)IkAap$nM(J(CN>7mf=6$@apH2Upq(d-o8CKzv{eeoxIH$h%Ei#zV;hk>TD~_+dfJ_B|-d) zG_dx`bnJ%_kJ>Gi6gwqJ38@DOOu(uexV_~$uKqLO(d-w*(8~Zsm%>XHqD{cOg~(VhIFM_#Ru&0x7~X66OZL`F7Z5cyMge?iDU55 zbZBnE27?~klIsn21$GU4fsu2q$_h^Uxj8}+UG6%#VJXZ4`zbCI3Hr2)iV$k3`e>Ql z^T%{Gt#I zFSByR&=DP^-a*oHNE;)7i;D!V=gyhKsE6N`e93m7KAk_pEfU7U;9RF}#GUIrt~W-R zL=BmyL(*uox9g0(xppag-E4#QTPR{wK5oOMHu3}b6hGa_&WP?w6ot|Jq*y_#P7>cN>gInahx7 zfX$V>$)`h?*!`ElS!nc56sh7hWfn>*SnHLoFmkTVhMVapBaP^g+G|I6zi}NDY{;|6 zyl=lb{Lr~Pyn4kp*>29Ti2?gJ4oSIIb*qhZd_99JDXEq+=(F?I)#3TkN!Dd9yGeW2 z2~H39FS=g}NltdmcR*UFmz}F$FHba{P;P`R74AYPI(9Px?)20zYdvGHgK2CHt1ReWr-b}$M$4M{8!7aE@SyPW%mE4y>j9h@3>#`;{#i8q9 zjn$-$?PIzD#ce6WFGAzj#5w7{LqP>U`V89dbVd%)=qLlo3Vzm`8SHs1eK)Q1!Tlq7 z?r2HN!o9b^4@+A{am^}ho2^1oXhFNKW0W_im4xzUwVR)7G^%LjtvSZ(dR?%2uUQ~N zI&QMmOaCz)~ZF}1`vgr3dPyYj}+^(pEQf#N~wr-qV$8lQU zIxjbNx837-_0SS+vzADer0jT8?{B~J1`q&2Np{jbd+x2e8%rcG00x7>U@$NDf@waU zPm*AEJ&TJn&CUk1>rX$q2mcFp^4WEfo}E`gIO+u(Yip1C8*A%d2f^!jJ_!y7!Hdy% z^R!5$`0J#Yre&GtS&){&c~T@N*TGp4XH_zeg3}^Ng8VcXoyWyl5(QNr#MyN)ONtUI zZsSGrPP-ckVN-##PU!CVudq{w;(|M6W!^xP&odf!)(O;5LC4jKTX+D|cS1?Ry zI2)%pv~p7>@(|v~C;4SUBV!84@(Oy*y}?PD)sro+%JUe8aYE>4BtjPe<*_li0((+c zKoTj;$1E?XU3bs})sOFYgM(Mk4}aQzvm5Lk1h3z``rF>K-Dg2(`v87-qTr{!!|z}H zco;y5H`^}{{~o-09&Eq-d+@{F%V&i7-Jf5-**!Q2UcCwSUcBDl+kF-VdoOqPe|)z0 z^1I+ERDJpCFxcOFv3Ce?4_{H60&Q;>>ODs&FLvMTd=F2ypYHAN9sWHEp6?yLM6k~R z?so8c`_19r&X4=sZ-Uo9zIpxXU>7>^3?RSUd-?ngG_?C-_vImu3fhLp!S3JScX06i z_WnLKxcwsx;|=w4=hf@KzuEil`@`V-SNqR);o;L==->9!{atSD<=<&(?r-nCh=OO^ zFSftirHZcr&>Jc#ef;VBU3vsfZo~g}4)*o}hi zH+u(&oab*|K?{gosPu~9K-HJK3oja z0^gZV;rpkbY<wUa7_Y~;3wc+ zbw8uvI-h^~$vDrtu$U9(4wEDI2xB!+}0K=MGBL{hX4Ktn% z5cl6F%;e$#8o{y%0ozZ4&iBAZf!F<%7nAX4ogjox;|_BM8xLVyxD1SN8hrZ6&il^e zGM>zttv`u^$MJZK151)8pLK3v+c=r0lPZ|cprcrQ|2;q+-$d|bKZR+ICpXNU_up@4 z$Z)Qy5}g#XYR{PJ1%Sixp0gT;jS z)MAAYjY1BP-mh~&Jrs+_@yP@>Xx>GE46z(+<)?j^l1ZH541**^WFKVlG$~~>uNN*5 z3H0H&ElbV6S$E|OG5J$kW zPJqBhBcyv2u80|wNM<0sRM25qh$I-nA||#IXPKR@B=+ihmX1JVxDGCpcUb%CJjsHqBBdoLupx}#`QNHdb(K@bH@K0$y_lWH{RQG376bHt9U zPwv9>BpIWyGs>sL0T2bBe)3&XQJ)X0nAUCo(@*;D=hILAmX;}VKE)rM$-EIBW0L`p z8!#%WcM_M0&0ME>Sp_+~E9zMgLWCk|1}~sZq?|$UW64lp6IMJ2w}9kbj9U|lX6N}8 zw8!YKne~Jj5bq1trXVD#ITZJQ2f7IWOZ`~-e8{#lU&12&;EGp=Z9 z5JP4_1O`#Uz2zMjm+1`n812VRAp7tCD=G3<#f!X1R5xE`iF#mm5Em>nb>P)cXcK^S z`}hS8{&`xIl|1`L_wlRZiQX8xf9gKog&o^q`X%pq(-Y*mA^@0O1Fo3E3>GMSJ?x0Wx{d;w4fTPX>!VnrR34mk|P-ail=8#L>@UUp<%AArs zh%zGVeOR01#LmWGW3b*a9v`ODgkQnw^dOl9bWB}a+x+62;K#!qDhj(O42Mh6`Be_D z!Q)vq9i9Dkjyz>h0yakptbns*kR{a6vULT)+LiBx=#1}<46Ae8-Bigp`#Hi)-i?x373|T&-J-|~vkq4=L=CBB0>7uW z*hfZ1V_<{$WTdL^A(J>kVRBi?7a+kw!51JL)9keNQ#Zdc__H7EYK^xw+`yx!&Z}Y! z0_^x1?5RjDL*w^?p4V_S?3^p&=DZSYtk?=4KW1@QA}?W4ja+%p|N};cg^;K9nI@%i(-fCWk5 zzsnEvoqRH%60GlV^T97h2lfH@Zl=G|=FUH)LjbqpPyDxMf6RZFr*=yC^i zFl>TU`wBkzKO_~gT#3KmzzG*-`7-&Awt_IERoPOkac z92KS8MG^Dw*~|qxKAG5vh6do-0qm9MW-)V4&l%ROq0Q$DJGd_r|CQ3a4|R8g<7#OF$ka3cm$i4lIDvQ_5wCiMzAdvVsSd7 z!#-3cQ?-4-PEpN4JPvVtQrio3A@3b+K7#VE|2}*KW$a2vYsbOX7Rn##X@DhU1025C z{&~3f@{lVGrt!Nn{ikgIc)Vi#;@hg=r-;t;0-nIX0%Hy@RS_j|pbCkP(s+=S58CpI~V&*c!#3awbldkBl`ZWm`yr6z8b<$M|ilO&5kgfHlp1=dG`M}bJr z?}Q_Go#0tMyGG^DB!aUtRDn?vUXw|gwBmsTOngO@2hZQp7d65$h`luMFhBXFXNVIZ zxIZiMSwAI(3KBUk6*^j~(mZm&Y(hsO82*n;qafj=2^`L^2Ox>TkplKnE>?p_ga{ZY zbjqMk<8&g2qFBM&&FEhgb`aG`7Nn|8SrH0IWkIK+k44SGdL}8aG%&vf3BfKAA~j0K z=;Rd678Sokn)xjl3(Q;X96h`JI{IX{ho>;hp5lA--Z13-+{6mm)82WLqo6QSlIgi&?hO(&>cfFqjFWVdHStqTBf zl2XE=`=@(v#}B@3FN)`CgV~0YczQC9gK9JAzI{9I1`pt9{Vs%s6js20jy5*?>&Lww z{5|e@k!C;!MxK?ZuNG}6l<3`#x#W`sFJQ5NoPLBAei-99=67=P7!IYy;ZTl0u*^^K zFpr1*4sa=CQo^G&i{hRWgF^m9G=+DCz?_gbbq3{Zl2)O)5SrxP=-mL0W57H@AOTcL zhDP5a>Qb-Qphdmy`REYN;!t~@*iYfaa+YK)I~>9>8@D6)6Nc9`c)GSAP8qKEsKrk| zAzlfSJ50(^3`OAt9;?9tPuQiW!JnewaTGj>f)47cN%2URsG@zqiNuNn(Tp%9#8bQ! zrpqx{=s2N5;A3W=^`UfFUQbW*2~J}7Pfs3q-gdik#>|aZVfRnn2jzqAw_WDgG>y^Z#x*f z5q@Ky#i0m}&M5+W0L47 zCvem)fgk30yFNduRrtOx3qygCg|lS9*nuyEAovS7qQ4e~dzR=slx?P_xtO*+2TLWe z8s7Zsi?ZP4n)Kax>*Y{GKj70dd@%)3e2Bc`Bq`MWS-nv4X3T{$$|nwp5$U#W1%z7l zbOiTBHrZMT#F2JGK@gn6Iy}fu&?4&c>rgMu$XE&H9zLm|0t*Z~Fh;z`whR(dn+~m&HJw>~koG&Dmq8fw4O;N|7zExByR`ZF7%kK$ z@VAHB*td4;_z5-tiQNA4B*+h;o}Sq$ye?nVD?WMPTcg@EE-v=6*}ST87SY3`I8aCJ z&Xdm`cie@vi?_Wax%jV1jtEljA&?3Hvh0O?5r?4d(<6~FDkzLQ{u-W~AAvePlp^ zlS!{Jk*eST5jzVlA{eJg12oAVx)f%H+=v#C5*k4gf{G!@%~aQwR%%J5DZCgW3xBD1 zkm|h1uQE0q-~)|${m2$jd}~c@eJkgj6?yarGUpHD${);*6|U%Ze{?^F0<8z8So~=?qAu#G<%-dQSOI zYm1`N7}V}NSiluop;EVN_PD0G<2p0PbpxVmcHN;cb)qmR)V@PmOs06j+$Y*3xjpgH zYnq|l3kPEq=9qYKW|OR*Lp1Tt=h^sMU~&1Zv;^~XI!(rCAuzdK)NSWVC-jWP==d*q zrW6AJPstm!l&jPzlo&X<<^iF-kaT?iJ?(7=&}+1!7!38#CpU29?APW`JpeOKQGF~H zEqZ*UD#UTua-uP2IQfoZG}VZ+V4mS!IBpjggm1BLOt4K-f}JGLJ;G!IRrmfS2cI{| zY*j`Cb!dZvA*5uLJ`oswTdP7U7vA$pO=r*n@JQ^v9vOhFZ&=}N!M$m0a>k;9Dt)zm zkwJP&G?3*g4eX)n?7-=5rFf$BIOdZaLoEZ`na)YM%}VHLY-%%kR`m=Ur%WZbKo1mV z@%{$TwhxEMo;@eD??Xuhu)0KS#M_4VOkcTaRWNjR98k86CXorE_jf@nTA9r=GDW z07vPuN8oM|w(xDJYpxv|jlw8oEX^j(&Kk9$kh60LVjOg6GB}{M4u|ovEMl=pBOe?w z3lFC7Bt@<7G>O^ygAGuX4Xqfnp`NeqVxNsuNoO4Hyq_dlD6o4sJ);zmHkHB4%Xe5( zO5tc!Z;sZFZ)%%Pqo$VpjEaNDMQt<(8x>m_F0rlCCpV9zrG$|!L&CB&p-R*brKAHq z>|7@?h+rT-cOP~QeTn;d5VQf9f=F@xK@i6Ab;p##?gh!O^Awnf-11FL{$~zK06K$s zP(Qc(X1t&#&6}iqfgyxyi8!_hRc`Cdb%M`X*UaY`OOjpx=9_OGu5Ubiv~IVB3ka>A zLLlYSYzvo}s|FCE6;9#(C&FyFbeI5M!m`&h5k|l|NUB1|y-wpTzW~Z@ebpswbz2Jz z1Znm=sYQ1bRLoZ-&F}=Yu#jqFK85pOhnyCAEuwf}j+8C(5!HC%{}BIK-_Tzlt#^;z z`NE5PsKj*|FBKNJ$VQ_8Vu9WP==xm)3s~f^FmHN1SinNh$tyS(@ zBw&;w1mK+p{l*veJxmv-GDpB7!8`XW3ivPN#YV@auC*O`X9k{6R^+L9}xz+MnX^7Yt@UU)fXb6xxsS{oJ&gH_@sT@KQT2WcE1ZZ>dr0EXsDc78<__|aKfNs56y?_TkHnF0sP^BapT`yV! z_{Tfe&^N`bi9}4H^Pe{R5~}KnC$`XR7EsBk+l`Knd%i*X38{wbtAih7_VxE;FL+*g zEnxi3o3c?`2NWLlJhz>R1n2<$9Kv3-*7L(_A@*A}WgR}$;)UZ)Yoj&PMdYxgdrhTi zYsc$8wIG3YqTvt8HCv-08{uzzcvPXUE6<4Dcl~Ed*`?A2n|qK(bijy8j7HFUOJ;K< zeH3lM8#bYB5nQ(68C#u%Xu^S8t{bphF}!Pzm?-=74(Sk{ltrEJrqFiU%#$VFpmuu7jM z_M(YW8xBmhp~=;^%rX9{srM z==#(o+iNdr*r6+pUIW!1j^m95LoR+VJTGkY_r`T=6aG^Vg_w}XIOh1jBF zlIIs}SkC53tj!^VU~~lGm_&6%3yKV3k5k5odwFxKvL_2iI?HEDV7ZS5(eUT~#T9;Q zHEDiB@*PJVQ^Q9j2GD=94HWANx@i=Lqph9ylenyIdWN~+0h^YU(AVlbfC4&r#?E`} z?+x^8iZSs1R;f>L7Sn;wf0@ zqN}G3>+We8?07sjo!ZQStkAICrrqi!K1n7{FfpfJAo1cM5etT${q3i_`*b1f?Wu1_ z2*9yW+8zM0lY(^f!u|s&8k5pOz?zW>&!bHfl+$bs?#qwh< zMk_55I##14g}PRy8JBG$zh(9b+=n6Ds#dy7=BNwR7Sn7$pk8bSP|}^hCDmQWTRbl! z|93he-ZH3ztY7e9o|K8aX|(7E0PF?23Ur0vbUibq+;Q+PnWbE=c00tTb6Rg4c9>Gn za2ROsm?(4C3l3LOv$yW&Wf$!cE_xOM%v%uM8B`qM#?r2fz%x4Sn>f(*#bpJoI+!)k zMSJI#D%KEUM3Z<#<&NDoF=>BU-ykp1chD^HQk8D3`$3sSO$q8u8B`(KBUS8gSd8w3 z7f2T@QCQqWN7*D3y!0~37%a+sbg5kkOEI^r5r^RuUvJYioFTy0W%TMMAQ1!mcEih{ zhUJ#T=*vpbvG%-!bedwwQDBO)F(MvlV^l?!Zjg%&p$NYp&2Gp5>T-=+Sp=CCne~bF z2M%BQCcB_(tm3b7p3e((S0d$=LUj$pdb}DiRoA}VcbOkhm0FbT`lBN#wfM%zUL1dO z7YDGHq^Pt;9TzJ8DG$&qs%>HHQKgb>dnKr95ZA`Y!ZgId*e|R4sL&!=y0?_xttQTW zY(dNw3CL`{A#rdQYqLlb3mpBl$l1N$u$&YbqA5Z!v?0LALi{HRmdX)=qc!py&2Ax_ zIwFM8^m2SbYl~!8i&|{`s_L&rYL=biEp7`w=%(PKsQ>S*_J3fh{RtcP!C%58sFjJQ z+SUcRJszv@5^6mHX+m}FzN@S))oN6+kpDXtmI-^cMTUVk=M_5?V6X~%HOWRI(R+cc zDTEB0DgzFhtBg@Q1W3!pbeRS$JB?>_si@YZ|7f$)Vyk;_2NXuZ7him_;%bxbBl%d= zmAtDQ>ME08mk?O;>s)DobSUkQNoIVgbnqwVPwz#pb3zEd1yYnlQd}J+n5^G1 z>KOrD4rIE02A8Oxe1-U3Msy##&Ez4v9H^ zb?9tTUW|VU%JJmlm(yT!Q5q5rz2Z0cVq9KKPJg+WjLTof7v-eeLLtumHWO47EWG$f zjplBF{uTs;Z>=DMy_p3_{F&Ybz&R0`1>kv)dR7+itNq}jj=v(Xh^b1r$wntf%^{YqpavX$TNb4_jv>C)q+QS!|kg_yn|6 z7v}g^@usSemWq$p2th&ofFC*yRp<5fnbRjFUU_Pe%qF#t@HV(rIzr8c?j!uf2wbi$ zj_-rh4}dRe$Vdi8Pc>;=dMtDeeUaVO76V(a@s&)HXsX zqejtsZ4Tx$JUxfHieW+C3?+coZBi|mR1HdPx4oj*WLZp1mFaqGt6|f0PsJd|xxl1M z6sH((4J=uLW2K`2)>DDgS~+85L3$SbJ-HN%uSH=O*D5=79wR4HPdGb@?nh&JAPBOj zXti(~osc6hQ>c%S-2of+D^cS)nUPB<=DM*Z&X(OH)U%-2$PxsbbEmzgF`7lO%m}Cl zDcfzNHiPBG29S@tR)6A>#S1igR$Q%2W?S8^)jQ1BWjhQ|8+gKLG}GLIur`tv0QQ~7 z=33^30=-6U%fJ>|w1?ifAXeQKDP>>}aW$>5(IqjcCu!WX?4YD|0xWApwu>@v3~i$2 z(%DEBg2HdDz9eZflH^}?>KY{ye{6|eEAg5)5#?lj@k=l%@n8Dx>hbOc32I3()7#m( zi1P%EFDdH4YJCcVfHyUClZk1FM%A2R9mIxvx;f=Oahlu=#1&5Yq>6O>m|bn_Ah-i7 zBsU({Xb2Qxxs)&bWXZ`FZ?|zqAVJ|2tLVi|A&t zZoErs@rR`6UPcgV(~)1R(tCL1xKC=QN^JBv3f^~N5Zz6X|CH0^7d?2~MO?^ZtiMJN z+2fO*5~z*d@y!b3ABvZiUINd=-D>d?AX5};*!;*DJ3fPvs)1;zN0x4(?3VF4^^c_Qm%aLA1Tb%P0w-@@_g#bYld~h7%5;N0^SC8wckJ9q za9@#~b3R0sf;J9zyeZh)^f!Ebw{!^$oIs$o<;dx(cbW~$@-vVaURtHui2layOvFVC#;WT`P zN%<(9KyR@`3SAilm|237$+3_#W_2hVxuI;2lOTbmh|l?r4O{w>q3u%VZDu@bo;d1} zE9YENIz$(}rb@woo3vavvFKy#CJbO%@~+y4&0?}gvp~`VeR&XcV4!w*4NPDZ&rq#B zucTawTt%i$0&*eq9w%j5B*tBcnAhkD_Sk(;>#o|c*}q1Ki9EE`5isWsk9Oz;)1&DH z?a};lT`szqrJtG$qeYd&(5wa2z>AdgYe4HI)6OYftSoRS=l*o|4tHNzSd)Y25nxm; zO4uJCcOq2_em&^~)>So~q$81^>sw6c?7nd8YRKkoUTV-njg6MQM~{II1IUQ#I!Ea$ z;V{+5#ys(fns|tx-2#?P#kZ)b7mVu#iJt|Vum=&h?el;3_*=$)k8biW(=i@liN!}0 zpUE_qiuqoFwLrcVRr;8R`m9Wg8jeMQUVz8~xOlts{!&h$KK=v+>a)c8UUypY2e-hx z>EvlXzLuDEX8rv0@k(SELt@prZgpv9u&S4t!?Unyp(|!we%D%w8WciSjonzC_Oz*NZd7p_)gQa za}~rF69=OpSfwM%f^Nit{0MrMvdo6qa-9&S^LC8?_4PmapQ}cJlX#g7IijzsukzT1 z-Fw}hN}P>NN=j}|>lib3D9JHGN=FzrAos}bPe1GQ7MSDy7BCPsDyR!zeHP+w4Z##t zh|iLayX2{#n0?FA*XrJ{reo4TZ2j%VMzFrV-rv~hKY~wiZ)0QqsoP^y!_V+M^v)^- zQnV{-#;ib_UA9oEqb2IX4Fh!;d$1X7Y&2*Do*JEOrv<9L{QQq?inK`Bg%G>6J8E1HnyVGy2($h{)XyWSq#Zz*O)2@oSSD-pS2gpeJ1p{ zE)TRfUk@`dt&=%=xEA%-8?hUtx2=%GnQ^6if0u=l6GUwZ3uoYN7Y)W|)j1|80Vc@7 z!dj2P&(ioT%S&K%%I6O0ej;hO@_D5~?pAbC^C>TkQ|fyU+hW%5N(y;0mrUi}c)fS&181hXbr% zNc2E6q#(bL2!b0eq}5bmyxhkeQE#)ZRY+eoGMzlA(>v(980+d0wFN-eE$8S(s!3(o z!CAw?5Zk%vp|gys?W=XMUSC~DFW4r!^S$q)@Ei5WU%DPpKJ0WpFF!B)!RO^>Ko{{M zLx$ZT=-#Il4KM3auKo3+lBAdcIy>GI2`hs9O)#7uv-vIZZeXFmYV^CT0a- z1|YgZX~3aPB+jl)H>OJmSu7`OQt=`0QZ`0E^`sHku9Y2^Z8PA^+UnD0jI{GML()0= ze0;pgUnP>PML{8xP%la&&vTf=9`w3pazA)7K3W%rJT4oS&MTj)X3S}C=hgihfL7Oi zs+w>(LECSljx-&Kbr5c=JMX!*8_9L<+eydcR5ns&d=Fod1=S9D1YIedmHT@QO0_c3 zjnPIw2*MxVpI6mv^WnpBJ}L*ChIo({XAd7eoTMj3TwFhts+hg`o(-nA%C;*CSHsGp z{a^x*7VOWb^9&=`OJa3b&;+bwWp3{`0;NtF-4M5Est)^g&)rz*#pB1S?gOc%a;Aq? z=IapK@kEo7O&wv`2aVG#4&vw}3Qx0>U=)p`jkUF2w7$0HiV3o_3-w*4V-VoJSX*I> zhZef7w&JMUd=_+1n$L~^IUo=~=itv#m(o{L-fie6-h>0Xn)=S}I=*Z(rLc&^-o=~i z$w)Ve=K6fA%*!VoT}%>;?_TAjd}3-n;GhNk5X7g}i1qI6m`|JInyRUYlU{yh9da7+ zPn{zWuFiJlX5+qWVKKI{ZWz(o7>MXcBlf--^p#3jw##nxC!-fI5c6l6ZF@Uwbg`$K zSZ~^uw?_VLHTg7Kv;{vrb1uGkX5QtoYmg;U8o zjCFO2dzn|srj_?v*}zF+=|VF0B=2SvJvTlnmE)qBl!kzvB*04&&OD7O?OsTc={_)}V(k=G7Jysu5 zkr07kcG!1_kF7^WzCBVdW}FtC+|##6{fu4!d7iKg&y>8^h$E;`4aq8Xb)Le(Y29@p`d3Tjc^-)zUb)#L zg1>p}QR}z^uyd?5u~WEic{($nVY2H5ke({!ZK;XEgH_#ni)IPi#x>yu$`BuH1?%3| zw%J2H3Yiq9Y`U~S=V*$UQ5qo?`$*rTA}`B6y8pu_M<&M~g@_kZu+9>picAVRaG(E!ZL`rMGKVMf%rOt~sM)Sauk+ zReJ1*DHdwlk=CqGowSU@rew_PdY+U>msfaCd8P7IazBBFfecz24Pv=6MVbMERxr^L zpEA5$^g`gC9e~b3P_s_ zJW199?RsUBQDQm~|5?D7Eg$MA=Z(%|lXE>0dEcH?v%JI$5jmyHdeGqznB8LJH|mi` z8&vEK6bxBuvOa1jFn>o%0VcI%=o*+TXUnL*DfJoIYL&XBnXY#Gq$FabJYT^CjZ>Lr z7dpfh!Ksf+&vu`0|G0lR{OS9>!`&h9={E<6>fmkmwt8DgA&?|a@-kumSV=}>IXG~M zzoP0r9kGU{=6E0&Jmb^mPvRUqPcqI!;PU<#naOFn|>< z0PnR{CTAM@9R;Lv;#6|1La~9gcx&4?ZSlzn+j^Uwou|Ps7ZZ%nDAB0k6ji*#1Az=l9fWoVlq?x;Lo7cnZQGDrrkvOp?efqD1e4Ox6$zPBjONq% z1h$~dBnZi(0m#>jLS8@=3Y~2*jDLe(aBl<~IUIycRd?ASbw7pUl6hSujE=^b;>$cm zYp*e!onn;qlwuD!C6TcQ+B4Fk9~RfHK)0%Q`3sK!sNBj)Gr4157~Tv5OuZicSnD9WX3Ol2-erug0H?<`ytr)@~an}6%5F~T;EuWuv!#+_2rk3zJk9S zUw!?>qc6Ys@+)IE-Tif*Ud9uoCY5ty=RMwD2}UUBJIT=e7@o9Dy@Ab-h)8SEjAppr zuww&rjadbp{o38at>~Fp+~)8u)3=H%J9Y0~hHL8^ zj|PK5F9qWS2WXa|_-4}1Vc}8t+LkQ{!6?Sgf0mZ^rYrGi;*_&3{*===W z9f|8Vu!}n>9;1$)lSX1khOAx>xB;WN20giP76D&xYT3}FE6#DgJ(=*0dFc_27gAf1 z&;~W)5Q|m}I4cSkjx#-(R|W!PL(r`aHeO#IM8=IQDuS&?4 zZ)<1-2OXNUcT)nSpOW4u&Xj;2qk1SEsqHc1TpN^&&6q)^qDVsgG9nTR5C`iDMv>0Y zICc_a^msH#G4^v6X{3hs_k2!00Q~1TVUFxo+oQ)PCq;6ZQhXECl*aE2drx8A9jw$r zmY#733~uibgD%>)LV~hc(~z~Y!<)zI+mqE&VAZEgwf!~PwN9Pw`bK^1Yyhy2r+0xs z=U7iRsKnkX+Xwg2oY3q@GszWgcP+tyB}Tv?$;Ks;RoJ=TU>OF7I@)aL=$$ohpS+}X z=QL?EFIC1lLZGtWhTULIQq$p1PvP)%!F=!pzdoN(Yyyu{*Qhx2c*Il^5*K~%Uc=Twk8_5~8$}M2y zw8XbjWr=PKlqO+IVeVgr8;{R0U@fiCy_3)7G}uf23W9WyW#a$D{6P7M5t^8R2Q5 zcVq2Vr<9LIz2OJy2WDI6;|NA|g9ld_*u|Wdet@Z)w`>_eRMRJk9^)AOC@8*s0*@#8 zRnLNfR*eip=h!jRIdGKd6T>uERV35HEi;9ykpe;m!kxvVi};LjfnM4BwqLdqQEI?@ z3`bcXk%jVUMyi+e^qLKh1UB6uqtKwz`kiBr($bKtYOqEE%~P@JrS2ls)QIFO!W(7l zED{zTO#B+u@d~}WuTqTd2DCBG6ZZK~p(LeK78SK1Tos$h(CtHg+J zdYsY+W7?*tw&g~7u1!MbnKFmOI0o@~5|23~Ts%Qt3D(xP?S|<2F%8P;b33bY%Z_|S z%W?XAbn|ige0&>n`mAb5PM!=y)25Bl zqOspqHTU6Ix);zDsx0zgk{4_wh%Fz`2xTnGl~ek26Z1o5y&#_4D$3bZf@|oUS)9DoE6Q*-={Vm73L20M~W!KaEzxA30wG+cs zqQ089ApT+li^zQneYEV}Si>6!!TnZ;d`XmZI6^9^1aJL-qQbp2F*X?8zgzAwx5(hy z)CMo@@LklyteZ9Yj35X@kmFhaYD6RBzKR5)*Mx~4w68=DVs)9|kRfJqHCiA#)*Os2 z*xTrictR#e3Rka%fi>cg91U86v*J#TD?GHk9I~ENYK=5bYe9{Q3In3tfP2n1pu&#K z;{P^g56kVjHuz8*GN8}l@p2NcMK*Q#mIDc0;RBp9P~o(UFo+fsur-9^J8joH2I;No zR)<|tgk4&YjAJ)>s3k?wyJ?=F13pA=`A*GlF+L~jGcv(4Mk3xZS9s2?s$@DNy+14_ zCVLl}#73-73kD<_VN10_)vE8Xs`Dbhva=E#8YgIdZII=15QRf_MTwfIW_>8P*V)aD z1rnqDP*@3xdA(>i7&HYO%W~*6TS|LFG{o7%`$?SrvQDLJDA_DRMEsS{(JZ`SOvBdm zbpeM0teTGL3Vx7j)M@;TJ5$ecZ?_=#oA8?-B-ZhKI>j}eh-NKxN8Db00RrkGWLjl& z$Ce(ko22@soU!te6^BTan#*TL-6*$XkCzuK72UaS;GhZEw%c-GU+JU)^-Z-aZa@o@ zgpNWf`R>p*a#ug^h7LY#Sc0KM*{W}M z3O4Q;T+0w?#kzCQ0f0>VFmI&T#8`&)>R!l$TKs7=EFx|54XaqmK_6aoIj4k|i?;Jt z(V-`qwrnvLP~CZMDza(Dg(W<)wpCmx)Y+`m!j#EIBGX>MKW8Ryei|DOJMYq(;~(X}4f`LxMif46 zyIPD&#z3DqJK6t#3(Al44;fkw&4EzwtiCsYMPTPvhmM5$_8VhFDAS%Koz=MGyMe)P81*wv7R zP<>=+hh?kt!}7~p8-969eLmi%haZotZVPL=^+Ne5i{!QoX+iI~y6Y zRZCt6N2}GIyMgsa{E9tMhd*W~s8mYEe5kiw%GKz#uOZ>abrHadPFz(zXy75|Q zW58uR{MiEzD-3l8k@itz5&swo?PnAv1n(ot0o&_gbdC@nTl8(!DgAZIMRjOszFPF6 zz1|SVNTCm!H5CeUZLSZzaQLbiCq**GbgnJinNaof^fYfHXoYKwsG+g+pI$on05aAj zfTo^C-~A<5B6@=aZbSGA{;I^Ud+sa%UpY~mYJv=&5H1%<{|f`L=(geDHN*TCp?jg_ zeuQ!UkX$c1fvS&+5a>Q%zMSix=_TC)X6Z7<&(fugpSvt)UGJ7lTGzY7vetF)u(X{G z>pyl4yE`0yV0{cvQ%VtriDeTpX&EQK&Xe%ySo-w;=6Y9SUt!7X1+6RL4|HkAp!~?h zTh_NOE*IvAr;oOJ7dH6E8vmGU{9c`Vi92wtP9c7I&BNYpxLXzSYI(-e3980r;e1 z9@HZfaEwZT%4<)1LlEXM65yMC_^XJ^E`c#@@LYYg76og^HD;)7@i)NK5*itkYvpSo z_T3gn$TdMb$ZJc9ps(OwC1gL(=)iD-W+~E$W1jFF(3wmw#o(d>ETch2eu|OZ)a}2@ zz!sBPPmTEcfW)V`k9RZp{oY{|yx2RyNI>WSUccd7eRyH$ZN>y^G-{AC;m!7AZq8)O zA!k7~y8?S8Y#Cge``tX@b4j28E^6|14^vsxZ=$awL|R+awsy%&_18F(tBc;%T%T^M zA)K{s7xx6&W>g8oASR;uQ)vNp2+T$NzSP){pxJ?r=oa3GUu4$0x^j=k)gEK8*e_!yO~9C zOM-rxT-oT}0xUFl{N*UyJSI+k9Neefduau8O!RV>_ZZvisAWjJAF1s~pn^m-)oIeQu||_- zI;D*(>jzK<;06Q>*XF4oxDyGF3>Pn$)teqXqI`eaDp+p^vm(Dt$F7lJzy{b1jwS}f zDrsjWA_i{vTLer|hf-zYPX0@o3y@<4j}$C|kEZ5IGf05e94Jx)3%l?zhwAAmo`f!O zX2pAWY@^V|;UT4Aoh8W_c6PK~B#&3Xzhr?0Tp;O4bST%6h#y-3&rz}|0eyY$3Ob%W zR{=x-c8ME_LYKC2EOlo|0JR`q=X1%>qMVDbr5=Dj%&9Av0a@ z&hid*tnPyaZ0Ehz;Ei(c!-DK+N1zAjc&mCt;Kn&==EgZ;+g`)s%uX~mD&q27=H(9Hkl8QcgyA9g3YZV^SU<%tJ!7Ts)btfBt(b6DIb2_Bv?=Yr*nB+K&(gTqm`cr#}IreEi2kFQ!UBjI42kR|JfdF7Lwf-)XBMI7iufV zyE$xP*v);7wmZ(%3WArB!<>9(#~@WveA>!9fqEPsnAM}$1)>@z!@!@kO~!4$&oqc8 zQ0oZUH}?Z<=qH#wj6_MurVUAruepC1b7w8=urz(dHN?l(&nGu_qyurB<2}%HGp?fx zA-O`kR>X$dZ!of_CJ2nUM~ykHftqb~k>tvHj;sy>DFSsOaVn2`O0U9R_0(-=xtZv4 zwq`%-Ovcn6)T|qK?T}*K7(XZQ|E>|m89#1(>ZSD!)=9Bh7Q`t74xkd8wQyIPkDJH7 z#%{{0&^k=1?*hJl?QU8sx~&yL*4|WCbrVTinlbySg0(iBB4y^c^w)vOz6`F>P~({9 zh?Ww^v~^hXSdy#hYH?_|ogplv8Y)pp+mPZR)-2ptcDWODB%Upkb`Eg&XmCPW8IGeI`d|mUuvV4d90y!c zaa?MUPFOw3gy#g;Ku)2a;He(Zhl$dRldzDBn{^F%=Y2iWnjceAIgqMmgd>US>H_zjeS#5rK?ycaxCFi}e2gu!J*?vZzx?N&olM`;!&=m=~}FtxzN<90{Ool(`{ zi-aH+`LG#)rQYxF9%;o0u;On166!AjF=#waI3~<0A@fSu-6-C6r<{y`IbGj)G%3fw z{Bm*n=!-Am$;B_HU;p`=$;B__>G+$k|J<=FOCE0m;bwQDjAleRguo~vcP%s9dv9PY z2La+W*2hM=LH9n-#Dk#wkM8{t;PvT&Pg&cn!+k*~b>F7k3~}pVX$9QaHU5Dg4-mi7 z_8p5wr_I+sC@|U|X@^-yu zk{i3ZJkQ*1+$dugaAWhWB7rGpXSLmwPz>+NE!(|P0eEa|PPcMF(2h3sh*$Ki#Z0vO zrpt(@y7CpV?ki=dY(l+_6Rz$we0kuxnptqqBnfx-(G>{cEHJ%L=xxvAgr94ST~x<) zlQByh?bV(D?-qhjeR;;KS{+XhHVqDnf#y)z>ys;*LCCR2-r;b&P% z<06u^XtCslRfhnQbXot0hXfKUneQ0-HKu|(>Y|P&i3pU$4j}Q4Mj*WzmzH!{8JMB- z43G+K-j1r+7(8ISTp+Nj;GIJ7U5!=LB9SlM*9+qqNr<6Al~$9a;qT#-djX(3vJOR; z<6&LV8bL)0Dv-u$iONP)|?^)g63vBN@)!qTO_w<^z+y~GeRQWr$*Rt+#P%ajKblhMI09FNHo`Tx~j}gv(9vD6SdT+$DaG z)3fsmR&I5LdUaUbxd4{F0{`2meF4KN_A+knv?9RJ1ID{@BR_Wy2g7qw`zn zvlfJr%qWf>=4@TG$Cq@Ebb75c{4w2isqIMicG3_T3))Pe&KG{}h2Te1T@gZ->8@_E zrQIX5n^{^>B6R2%1}Y?#hUj}>N1tON(h;W>#f>_GW+s#TiZfCFGbwT%oD-j#MV(+g z(9)1vu(r_wHGsz8@|&Qnv_mR@1B+5Rn4Sm)pDfrbC{>L9y`RKm^Y?c-9DVjU*yApm z@E3TA=+B-&YPb0`?C}L_n$eY-ip+>qkbqpIt%)RcB(8x;VmZ_{LSxqhLioSqpq3|H zI_hFO-Qy@Y>S8TpmW&O4~l3Je1 zM?tmXZfdfRpcfqf!G1mL7g%A_ zx^JvuU!zuhxZyA!kF}>9%R#Mc6XWF&AJa#s2LT$w&~okTb2W-i+u8W$W`Gg8QzIZh z?RpkRtbt3+_mVR@K*|00lHK>FL}5bK&21!@vmzlkDDzwnUG7AfpUi#unRCB%o`4{O zcT?Zvmk7&G#%>`A<8aPJD0~CAYFR?i>*eQZt06YGphrl?5&lDO@XKedRBfN5ctRse z{N8d>d(dJcL;3aE0z%OBEC(aPeD4(97B1>gwK`Rgp z2>f~J@y)@Ad=yxh8f**VaX`7ke&XgL-sUFBWir{?a9Em140d`|dAN-y=%c_~BFA-9 z3|>XW$67|@;)WiO{D{Js5SEQZDhdf^wAMeU;CH419`}Q0(Ar@+Ke4C&7Bk=1Gaohi zr(CO3kT(pw`^Rkm+h!YQ6DAv`VKAid0SAD8GF_s^oyFgvfZHto{vV6~Kb{TkRD?;C4BMy*LncRV_6B@}pMrL#1ZK~&&DVEjQ}i{0A!nH**)v*t8WsX0^D z%f!J(U#AyPAglQdQ~i~2=9#eh_s;wG(=>}fpaoW>A+Vuyk(|x3nBi@Ww^RtjQ0(X~ zh*S$85xqBfPD`!(@4gJ_ewan%_kV+mqxu=AYOamN-N~lzQsE5HvH$+Rk|O6^)HfkM z?lpomgavwyK}RU!Z-Sz87APt%>sh$5k~q};r2Orf+b^Rd;TpbfZ*~pK-o8n}j;GZn zqpsnsF9f2qc-Js$D7AT70}nbG8Y>LYq})i~U=W2?M)A?TWQVRs60sznek+-j%0{|Z zU%N@h*FZ5I$I|J1Y8>0KP7Na;jphZJaF+uy&d1}Uk>E@M-isCARgs#G6;2m`;QmF^ zwh}{T_6W<*Wr?uXgtNgZI-gbQ2cF8Qj&Uq?FHE=qE#Wrq9x4HbyUo!xdPkcZ%`+&K zL?_pF-yjWjO?JGab@vv;(?j(7#gUWJL{(eRirJSfIF~ODr%_XX*b=6~f!7w8U*Og0 z>|4MsxMniMi2J(92TQu>omC5GjhE}kK2pNZGIH|FsZprEWdc}98Oh5Y!+nszgc(R^ zQoK~o!GML3nS0~fNP+q9z~lbSqepo6Ayfa4wk7|n_+xti zjnn(8SiZzR)v_Sdooe>FKpH1HPhHb1vfTLnrAlNVoOrAJxeA2 zNB4gBhH?m#U_a>eJI!)sJ}Q$@mb+=DTiR&_ zY(g^O1nt}eAuY%qW1e%JUSrKADmp;qhXH!0}@LnMoUB44W z?dDrV+UcCsV&v_itjLrdWes>VnWOzOSt8DAk11}T&5uRKbl`N}9M~j@FOxc*>9X-X zD$Vw@6U@Y*)4upgE~G{hORRh=PAde z;*x=$?MdPHiQ(Nw4qDpibefOnc+q$==X}H`30WhvDPx%fS=9sRmuQer>QNOVvJJsZ zYF0wnW@g{^oY!?NN))R+3J_Uk`y9LiK3}9`nFO&=GbdnVXPsT4$F@Tdm8tXBV&q^O zqFyA=xbdINva5~W3ZJx$>go}z(dt_>4By2OjCS6W=haQg#=9|IZVD+XDsbb4n5Md- zu@+lhsp!P?BB`hbqFf(!OszyI1??D+?2MuMXRL*VWYy}g)q+uu4iE+_34fAF-Ao0Z zlZ7t<83$o9I2&M^*{Nt=*=2s5b5IXjmd*g-&9`c82^QAayc{e+eGm*WJ7SFqo7Vzl^&*9ghl&xbdhw zaAitH2i5f?*3tLCrgs22;RiPnUtD8@j%vVZl?iNwb zZ>lemDZk%t&LVRu?%W@v}(9A5=fJ{efh_Z1?V_n3?D& zJDbE5T)a*sJq3XA8HVj?t~unzWJrEi_M1r z3=Mz1+GqfUD~@J;9dYDpDsD9%sO=1B{n2V8TK^Io|LTJp|FY5eR~FeF*2lH-Jip2~ zs6k9&SI6@a+c25}H}fAA9km~fK!VJt&SQ4SG&q-v)F%F9q~S1kn41CmX|P}`aqlhH zEX%id=l#|A#t`Bn>7c`=pd6?C3?5@yJPSWjsC}G02_GX`o?JS~(KaCPjhxNE_&>TjOK_XarCi_@a<^x{sR4Cvll_Bwma)U7+*> z>xa0Sl7%9ZH0oxkAESbk8IV^O%^GrFbKZ0sky;C+M@edf&QF`+_S2nbgTVkMsBPbe z`N1v58(z$nV_NtBMH~9U{W(}cI#YZ0YG=gZ5Cm1PLeo^%AdVd^crsg9jia2EW=bfM z5$X_X&8lt;H~*m-3cP{F;bp6Rzu6+Jn9;=>P9lY=U|BYy^(ER6ivMc%!^{|nASBU* zKKH5Lhv-(jb#&Y=-|S%HTGe8hR1=|cA_^GKe8lmHsjouwrhr~fG7&?WXZD}xa>@+j4Y9YH(R&#g$CL1?4^i3JAd z1~k}ARfjL95~%rwGYKkw3-XaiPBNP0Wvy}$T}2xjJ;7QKMH2ajGITpA8(>Rj3>0xE z->yKOIsp{<5><+?a*~D38R!(99;&QQJ;%33XBw?9PQYvmdKRpD;{R}rZ#u>ghsm$4 z4k2DOfQ5*bT+YMGP#&@a4F>=jA0^OM@k|kanZ&QrD2r!(5aV#v z!TC>Olf1A@R70y1g0W>rVYYaB_el9gfiqU82`3-gML2 zBU)2Eyvx$U!>|F5V@f2>z6}EI*01;oi5`3wGu4>tBB3MW3@V(+c_!j9RrC7Y54+w=upWcyjE{(=sYSI5&ydXdn9 z50`!OaHUvjSad3}KjVsT-x{HtOS55o^N1Vs-%EyOsvQNhh_7^@XSQ`VlA)?77APPn zlI#}U!GfHgW>8~33bpHBSa{hYNrPemLow82r!zT64GQ`d_Bi4mjm=INZnr3+>!LQ5 zbh{Nuur*c501ASYk|OO;+*-J{A1nFHmn@CLJm6rO8bQ?;!>p9Gviw{hoh!Mf@8Qu! z_W?^{HD3s8RcKMvXO#5P%#$&-9jLE@#D4C+&AJ@aSsQM_Bp!Q_@8S=BZ)#>tX~A9M3$({G zpMv)^u7D?R1)cEu_Tlz^uj7#ZED^=(b1YaVt{17J(}W215tT%rEgsPZO6YECmJB$< zo(~UB1UW#r%LVEoUn&fY!trH-TV|bo3IF3UamGoi z*Bnb0piRd$hi;G9p(LJM#n&bG_fCDJ7TrF&26J?W3CxQMyEn7b_?nd=^wxj74Q2K) z$uC_P*0=cez+dKM2GTZk$?rnK4~;uZE|cN|hAr)_I&dle5r=M-Ns3}xqIE;($Bf2A znmihFr*X-RURccx0>s$Ixmam54HWtE&rawSI@OK7@DGbNmB8hnqC=h_w5g9NJ22ZC z#m2q2WjW9PdUQ;xneNFXK6g{}@-v;?mwq1KqV8#)e;|nNqGZ4wtkf|F_#8z(kP!NS zYV8}MxJyK)N&D}2puhw;o{Aqla3NeI*JP8X*;2@n!|34&9850MArtow&Zkfrsfk3E z7V`pb^aqAXaqH?XsHe*pRm9K_n*Nx)!elVZRv44XmI=&PVqfPBGzu=X4WPOdF^HBf z`k2_wSmCH;tFKq;Vqeb;Q*g_!hG`MwFO*j>F#M zgKYug1m5hNB~_{XLE_;4B(LtPy6LHL29|TaRsad>k?GMYa*iJ5l+u~K?%{=6QT0b@ zF`8ra{*v#ifs>(3pOId#PncYB00T?W-vUgwq=##0d=1x7mJC(42{u8bnmDV4QPN_=axa*2 zmcE$e>DhUlK|hOhRAQL@VTYD{=YMsKK8<9zyisv*7i{s$=$ou@U1#%FDM-&5tdBYY^Uj3t4nEe;c(q&SG^@FCR z^qoZ!Ya~sbcxcEfl-;-?G6ct}|5}c*5YubQG4u&3W3rPsyl;ax#G9i=!*#osPic*$ zMGa&8P#1iEeK|;9kk8u*Q~o%Tca#WeJa?7~{op=$UT!xZi>BjuoQAvWPp~$*Y@kVu zYyCSSy>D}~QuZ^t+~6+TkPK1li2qvR9r1`WmDN2X7ax*R1g^xC@J5sH$B_8J5Ov!E zNG$Ah9V$YJ@{U$SDHPg;`Zi%c;-CPyp;10ZG>YPsjv}$(#ps%BjDnZ14jY9z_ygX2Yd>9&>{q+6x+v)Eym;2>Invx{Iu77@urnR6uXVJi zKRiM|f8&oK6Y#fiC(o(^GYN3w7VZiu#68ko?}JrB&TtxMk{6?Dca+d!*1omu@v%1B+i#`x>UM{B|48r7@9fp9P9pNR zv3gax0N6??QN?QIW)qNShe`t`Do} zy|Tkzzv+2$o=kOdR;%#IbCl1siuG~Eq{!B9SU!`FT&ymSF*F*xEYKFN%%aUbo(#~a zmK)ruRvD8@51$}k*J6Q%6>E&O*)_RY33mU~h+!**(qEcTQZGh}@mS#u{ zeU1$$zin75b@NCxjI~>mJvtMC6k5<60&3XQJu?nP!Wrt02UjtdKn1FG|Jur@C8mK5G*5l}I21iHV9K+MD!WBO1 zTJ3g^Z|;% z)w1A0ZWx2S#k_MGT3yr92CX<9GSr_J62cczusSXHw{K(j9xA49cYfWod+U*}Xl7u- z_h|~%N?%ga=oS?ZOOr{;varkO55 zG$+fo+(H4@X)`K^Q+>K_TqWaN2y0s>Wgz zd`7h1Vy0FPTUnSny>2mcOix+eZgA!&Hkw)*#1ENU*soix9(k(V$$Jp2`*cytUYTS} zv3d)SG=hozP}n|p)0P?4k7^Egyqv16iU!NXsy=>R*HMzQc6c)h=)(<-ep+^ctLc+O zC@5W$&_l5>(4}02$NH+jOmvd@XA-r9-6wbfigZYlAL)CzKE)-$OHB9j5ab_y!|4UV z*TDJs+PtC+F{YseZ`Ld=rfHW;&_;vUadGl9+nho{5S=5Xb|OKViao@1StL3DfuB|9 z1D27MmX1?wafECDLgL;!NF@S@!Ahye@J1}#={mLdt)=jzLZyNgzq<)Ik}9<>SHdWT zuE9o`#DthE*FwM3O{62hBk}G58ak?>ijDxFk|%>)1MBk%1<4|b+r0{&rf28m2|}_o zaxMl{3&T6_ae@S*@~EwYDoe!Cm~E_>s@U$8q8KwYxmrUc-~k@}1+H?FUaUw@mY}@< zzAWPGjKefZvz8^Q1O>BbK_Bm|k_t&~Y^XAlP+`OQkG-Yyb+NKweHC76jA;*ArO zkmR6eP+xZ&)k&1~zQBKyF0bEi*&QezrVyo$Q7)SJdR=P(NZr)Xh?&t}XmOOmc`}*d z>={I&BVQmYjf3m{dyf5hV?4nt`5U){`|vz@=Pg%$eUet_T!ueRk_u+uj@-R{u(P)( zq`1EEb${c_FY&+(r}d1&*;mj}{5zjc;yFD@s*!e8!geskxwL}THMeX@GN@j|hI2hV z$tM^>0mbxkRHQR>bQ-5Id>r~$j+M9!uz^cJWr?O`GY^wRiC zRL6Q(6e}B$3bxkiw7azyF~hfkF7($Szp{cbC#%sA9<8&h=$e6}X~ ztu&^8FDfey>fbAbWpvx|463yqb6`y+#(}=YB^?Hw(AJu{ZBa^f75i;zU0EtY+e{_s zitq_A*se+EKczL*>tQ3v2K!QwSY3)9eg(_%9Z%2Gj19WrOH(U=qwt{-UP-O^-EySs z(!&?qKM(g_9y$%NRI#inD&;GnMj!?Jx+*IYrd8nfrddlhLz>y3^`QFh47v;dS(iWN za(mz*R!ZlL+-+-}z9Wa*T9Zhw$mO=yJW=U=RKMkEu`NJ-k?0%g&e7-P@dMPU4U-bK zQ#kgYCGXzg?#%`mO{fkFqmX%8BW0ItOE25##pfmV<39G|ZM)jT{)9y`;6D4BUKYMx ze-@3~!f`KZjNGeo@uK(+!&`kq{taVQRHrF_g@G5Hw{%&zKp+m>nwCK;fp zs>7<*O}O*nxXLbs$`Niqidt9Urf5caH2uk89CYTY6;Vy?pt#O+#kOdkceVgiA65#A zhdQb({Xy>x?b_h1$mg@r)iFa~?W_3UxXJq(x85H-2Cp8S^qO0yVsp7>9cg}~r2%sh zEYQ9iJD8^wF!NA;MRgC1HaQw3speHJN>FIoQi^al^2mktIP2%td68e$F5-<13^_DZ z>&qA(o13f~P{RdfyOSzfw}d0?KMzO`_*O$&vCTH#gC-#~uqSJFyYvuEGR?N>kc!40 zk5}xh@8Y1P$5x;1G9P^rn2Xe-qF*f%d3!kH=2?khG~*Yy4N=AVZcbz=amH(32fHQ* z7YE#Imj@`|`DQ=~9la-Cv|N;^ksNJ)0TRw&Fz^JhSP&~hRrka;2z`gC&s-KlPrbKJ zCJsP8_-Qlzyo^4Vt4(XD-rl$yo8kf?#q9%iU~%&v3N%5PS12T9*mo$!qDvH| zGGyJksBt;Qc~eom;3h@RSgB-8^C+1qHX-_bVhs5FEKC1c=f_AhR99BP>+9+qGd(1d zd`}wOGc0Zqbn>pwpT_n%v{RN8?~%I3>hGQR;a^@qrrZ^n1>vR_NyJA<$r;SVtdx>* za$5|KEr{fjYmqG?M%>EgnCylzUv!Qh^pF4YcKqP&;O+RnsR+Ul`*pc4cI`Teizjc# z@4vX|_3`%!L0^P_LRd3c^*^~ZVtI-mDxj{E5N*C*vxpA=YqQHYg&oYa2YmkI3G6WCOF zsS&?;zZQLQ6YjkDZRgo<&;GIlKOf!n!k>43`+5Jj{lEMyzxRIrZSQZt{p~M%{JWu^ z5_xm{W|z|DZgGBGLlEs8ZTJ7{SgSUD>MV)c!O5CR`y2-i9dZa@gdR4A8zvKF%4;tm-{2l?7!fz*z$J@_*ZV)9yBIWMTOGJ?H+1 zPJ0|SttKtXb{0iat}NS$pR3p&Te-7P3Qvn{NsPFKOd51HR z$!?%fC;){*p_V-0n-`$G)<$b0;NIa60q!Ll=P=z@4>y1xmB>J9rYdF_HQ#jCus_!< zovVk>4)I~IvL!Nxg5tuVI0@b~knb1j*~(f(>KSFJBzI{{RjHkub90lTwfY#MS`#69 z{Z!@m2&fBx4{cgS)S8cS9>3kOd(n~m!=>~^N9~?{LqbEZ-<`?#AYb{$IPPiO?S+3V zLS}!CvQ9`>1F+lYXl2ube}ab!`1(=K5bj3tzK00W&x#|2tmR9$uX7{bVs<5mq25NM z{p)-TlV4ebzNci1J9-az*RVfhsq+^A>RH4yq=1O)8ibc^Wm<1^o831|&Tu$%~8+jBk^#X`@CL^HZkV(U5 z0!ze2lu>@q1`3%X2N9COvzSK6I9$c5SB1Ej7zF(c<>xnl-LDlOWmQy)>x+@Gf&ClN z@pwGQvylvxe{q(R6$W>f?0+zPs?7|{;m*qu-(?%~5mmRL<`*Lc6qy9D}k#W9aR=kon2H!qGT{q z2$^~d?GwyQPBjx$)(M7Y%2+{j4{ep;E_Ick#TjlDOQd2^loA{9#wrJI;Xw?~=tDS_ z^Wxy-@@#;|L}3khBf5YiKi)569+u0COoa2YJIc2G&S935vM6OrEDrKvfvU^#V?MaD z;}5fzICT#R3(g2Et8sA_m;KYI!v({FgHuHGb)lT@Rgyo;G!k@@1(%<>oK`*x#a5si z2|~fquPS3B$%HsRpNB9&M3Br*%orA|t7*HSq(wqLEgfr=D6_5CbNM~XB->_*dnLS0 zeA`>zpwFHClsADD^cz*bC|KR!l^A}Gk5P$Q@%Y)th{e>soY3**2 ze7o8H>27hiII4v&s*}jOa<@YqJmN39Zk7WB!yX2Z=ppjMn^!_Pqoj;m?HVYCakXo8`o`vKXzBq}Jfgb}k5*2H zH~SSmUiev=o&deVGspjs`8=MZ*`_s2qDCuSPaCZ|g(t5Evch;KhKipoqw1812uIf% z9bGlGboF`(YG5y^1llY^rM`r8SnAzt4x|6dE(~u36^OMsY1aKn#V!u@dv^=B{W4XZ zy{IAv*?THWS5uU(tR#I;1*wB-~KsV3z@23i6 zRo_Ben}EPkx;UpiL;y=bw7-3H2{}=P*Vp z^G4u2UyQs%uy8%Nt-HLwW!tuG+qP}nwr$(CZQHi(^Pf}qHg<2PmsDEslVprhnKQI9 zAH=W}c_4+BVD*yRmF=B<OY8*3HH15NKQ)iq?}O zr79z~gK-W>o#bFY8lDQy7F~E1wyXi9Lxd0rd(2f~JH-M9@(4qeI`#);-1e$`$k^-? ze^oM+>1t?CN5!665(|#^&Q&c)MIRg1BF}vArBw^{QVw&9+tH3To)*H`Pat8=o~ZVp*{mT3 zN3qX0)AL!tfR{b0f&~#Et!S$Ki&3zlAAF{7D5qdT&5UR(-UR)VTG%Os>Z z$dwdBFiGBdO>vn}di?czo&*wLBX>XM$Sf8%!*RK#|IV7YE<~>cy7|8}hAhw9Cs-b^ z)JE;(@%{keTU44;=cP`RQJf1QLBAPs^iUa#+3)18bF~TJEJ5~Lem}E5=EE7Ny%y(L zB^y`$zAbovIRIb250sqs#>@rTeYzjVzUe|1SO=X;I(Y}LYP14s`&Z%LqC zWuiSUGh68xnbksPNlH@CM%6y(ET+9X7>#{>p`IT3!giYU0~YM4+$C_bbD_)qpfEVT z1UJo$hoeqQL|gI&@?n~x^hLV%=c*0r*#y!iZ7Jg+Z{bh`x3FB6?1F$4QPd)tzNC#yut+2F*aGCiDN60-78t(mm?GPD zyEnHIPLm%Fs7KGhyW)Dzh&+4$roFgJ#=Po!#>k%EGqgTQ@ptZF?G>zn8%+5t6|@QV zL9qK9tf)$Y3lsVMq5eq0jXkK|>O(Qa)gI?c8-*oO{fpCD*CMfu-}Sydo1M&Np0Ty!hetFlR!H-Ob7;V*#HN&JskeV8IP_OWTd9gjrRmVo>JnfiFCddw%Tp<2cnpqov+8HxfYPd?naxZx^h91y#E?F4jc_TV8FCsV&a6c zK3+x%=3RZ7VA=W_G%v6QUH%IO)>oTKy@8`tCzI8O)M8<3D5el(0(aq^mHR46Xe6B( ze^dd>G(BUn5W!wPh&Y&px;Cy+MLJvF+0l`0VLzX`;`E+YXq2jZKY7Ro4}@fA^NEu& zVRb1v_Bbf?k39YxPOvvel9K3r2KP6=_Q#w`BYUsC-IOq#`~JyRiD>F99<1``g*PZu zn0Zw`g{ZH?FnmtBNp5ZX6SOW10H7W^t0 zcuF9Y6YGgGF3fE|pMcQ0pnLsw z%EnkJ+r;J_{YFLi{bweK@N^_AhV1+ee2UX~P1JRy;b)nx%wEcIq75MV6P=+Qk{e!3 zop>o6zUHX4EJ78m>AW^%G0JP-`Ki5t?n${y{BL4XE{1w zSayy2GG5%%R|kX2Kf*e)BZ~|L@Vdio&pr~rv4;*EH@(K!=wmEh7unB8zV%8WPLNe> z?pke!?X8rxOegC1@ha<(9QzZN*2E1ldxA_{-)WO}WuwwK;CoGxe@P2{snt7g8Xdl< z>wE4umn&8JmlQedV%?6fZARvZb&`=E3~ONtj+OSL0k`h%)znM=iS?sqF%!`Fx@Pwt1>RKPY9)P7;s zEk{9olu=(e@Uv*c`;Yt=fe)3^r}^w*Ll`%~Lv#B+aAVO)4_27ZfaUtHD}bL|LRohS z6+6$64QA-dBV6|y0u?MGlyzkB52|UE6wK%sL%e(KrUkXzAOifY*ZO*B@mBm9xP91y zP!}!-sCp&&XghD~@ENQiE5lZeFqQFRcBjdN0}z+`kNH7{A`E)&V=wF>b{cbd;gF~_#3AfHCYD5vEZN1!Do*-{($qtC!mupdE5 z7%`qy0*A!}Wx#%(zJWw!uivLEVvfES5Ng$s_Sp9QioDhF9#y$Q>yXGlOTo{@C{bX6`-#-2b6v{>HG2DjH{ip*hJ zffu~gU&T-WDp?iF;?0U2YPOv6)YMQ%v1CoYw%@8Cp$X{g{O%Z#eRhOpdro66^UOf1 znm5b~(3r3FI>}Hzu3JcY9LNLiC?H0=f&v!5t<&bLt*h(f3A*+nYN1-YsoZN_j{Sop z_)%;>-vF_VpKe|gx)NX)NR}ypfV)L&>)Vo-rMm!{j2WC$-RAVpc0Q6}cNDfZeraxr z*$_!=MOaYTaxhh~b%vi^2cV}`$;tCi7(zXjWVOnFkzDsQC)6R`Ckj$DO4PKf0=D@Mf_lmY#X>}0Fbj1n z8F!L+>*fs^L+gcB#yPZdEWV|5%?pYxUTGlsoKbgUbz>jXmhj|tktK$<&A}^)VWqSH zWen1M~*q5?4+!Nvbl9ssghr82cgq2MwZi;Q0 z=zz~^x6Z33Epl0Ac?)%SN=Vnsbtitt0!n%!eZq*+B#NF(Hg(!czdRdgkBCHl+l9c9 zOR%OR|CM5fE^>>QE*-qa(<1`{$@)v`L0n;X+6QF(@cZBCaNd`C2w72y=*|H(6hnnR zct=jnAv*&ZL~fH?VzwI_W=oC+l!n=Z=xZW;Eq|4%r+7A|vA_pF%-h=Ff?Debo6^Q? zvmh@IMX>4w>Hi3jNctW32_S*%umG@Dn=%Ox!`64A*IcI|(iV%zi)j&-K$^7TgTwnO zw~H$}^kr5#n&noZlH z*gM{|rexKNl1$)1kCR=9)}n#UIWUIRx`}N3maC=Kqj1=3!1u?61Y2fJ5h~M(pNjig z9_179a;~WWarA9RUCA_Gw82X$QclcA+^ds=1k z+G23gn*A6wgv)Oiz#{IZ#jpd@b|@A;6ep^e2@`2YF+o7x%(T8X`=>-8?G6$c88yie zfby*GhAK%n3A&s4v4`15X#}aZJ<(E*6z?pEqq!faLV&(guu@_Z7;1zvBQ{fxJV)Dq zT$UDUG#GSf%`Kvqz{sp30|j~x-2h14uYwhCMw9Y%zt92&kmt|d!ZRK^)k2f*YaUE1 z&W=^Ds`l?Z_grwXx4I#Isn*a5Id1e6k{3%~yVZKtFDuD2u2h&h+9ikPa>xC%48Bw# zP?K8f&j55XkGEF5;_J(dn@c@lUDx0@H;}<9A3ibm-n~%wdHmDAk&{xYCcZLp7-dc zeY(8|nnwor$b35}XPc&9{t-dWpAFX=`xroa$*#|4Q9usW9|vLg9>ReS9I*G+o3CJE z_fXQD9R>H#8Tx&|7{G+VxaJvhF~{qzkW8vE1LdYt zLsLkVp-aYM*&<^HB43p86lAbH;`wrHt?o5%@NK8(FNWNj|M~r8s;?*BqAaS(I?+v8(ggH*M$d2C=ZAUI>(>*m z60h4A_WochD`;nJ;Z5$Z_iJYgZDFbh_**Sd)7okP=Ad$*L%NTZLNP-C|DX)<*jPJS z8s}R;rMF1`d-U-D2SadqF_Ss09pr(gfD#c`VGf{J4_D?N<={tY16u}$O z3k#NnBXk3uguB;Mo(SDA1tpGEGk7y>BZSw}(3j)UPY`55mWPOuHRqA|w#1TBp5M1W zNcU1bn55IloNQb98sD2X{Hp_I&Wb`gEe?iYJG>Ii)rk`i2Y`tVF>>axo&obxT!yl= zBQuG)P{GQFCq@&?w-v9pl$2nB*R$F7YUum)GH!LLuDeq^Tn%VtTV3sb+PJh6>*_+N z&JyBhGAr=yT&-&~g`N?5ZOBd=rBA`;TM)p~*;i9<44mQ@P+gX@Cv>UOd-flQ6R#2GoUZE10%W#t7&=W<=A=ftp(2{@7 z;mW!@h!w1p#h&PdDWlcW)G!CBXQz-~w8ve2SpjKwMJVBWVdMqJ{8;J_4ssKuzu8No z;>E!-g(Ds6CxIfQ(QSbzS*O7DFkq^nWz5p; zXo-2s^#MinH0LBAu=uZ5%eLY}0Up1`4_Ysec^}TxrzIu6n&+NYeJl_y7nbO)P_2-L z5w;Pe+5Ec9EyXo0H~eEjD3VfxP1RX2WM7=9c~8i}AG*yqt(WZJ{21o~#Z&18PLK-` zuOtw*hSQbR%xM0Ws@ML+#xqOaqSDYGY9X!vIzkBH zV@CqLL{thVK0Jcb8C!vfp)U=?I+4!|dW+rpda3Pne`cujh6aY9dta@NF}3V_^(%A;(@ z>`i;4XYXG3{((-o6kQ9ESrcv>@=9BeB!esU$ZpEs%2?!66ns-48|VFr38<>Z_aMUX z;p8kx`^D`ON$QnS?RYo76R8@)u{TPXQI|>Gq4^sZkY-L=Ayy+o4MmI{N27baP^(!a zQTHYa`kBO2YW@qN1wA(;e~h4s7$w%0{-sVSdyAHh(M3)8~yd!|32)4idI0>ZY7x2sS z8@nhJcJ}M*eMEEHCf(C|>|{AmMI2&2;0&&%C0pEiadYI{u8;o^@;Tz+TT50`jybbvQF%yJ&Oa>*b^Ifw=Pel#HIjV zy!liY+t?@UqDH1Euw~AK1M`l>mzo_(O>;-ED!_O`i9X4|IRi!-E8{b=QbagquC$5N z;#a5C06!AB%(6kj>QB}8-zq%L#5VLNg*@s|2gljZvaanlWwomW=(7$w14$}GpzK7XpMH*|14AM6oU4HEc^l$WI_LX{~IyyclOe$HsDw#HmkdeF5Ye|9j z-1UoP>XbTttMq^xIwO=k;)&Jm=Eir$3=LlLQ_d1W+X&w-AzgYP<|-MVwYIt_v+UN< z9Wq01Hsuw(*NjOPeaP(l@eORE$6gR?KGf|8+-6DsUXK8pq}rPe<;%={(NnVppd$IL zu9R0{u<-4VqE&}>PH6~lppi#-)D0&GXMEv+SuY-ddIc1#IFg<89(D`fHeO-KmgG2a z^{J@=Y6?Vzm-_q%gmq;O|9422JRRJt{*W3wB5Crrz{-$_#;F-}LKV>6I4;ZSleA3> zdDh*Oa=vcRdHSOAJWbGDuH1TaC$8B6Fe8hNn0PBJH2nwUz4IU-IS-$V6QK;50ma&J z#LvP`u@4$*I03#VZr(nuFE;qq^ZBKJ*MLLde3+hbkGuP?r%$%lI~o}GX}gj+zXn7M z`0r^2CzmpWZsNyTU#iQGi}7DPZ6S)hKy$qW`j1EF@DmmvRBZ*!d7=}juY0%tn3lmf z`XZtmQtw&IfyQ)P$bv?AqqdpN)+$9#50V?5RLyK}GQ%8K%v8-ZxGkYcdQtdPDKP66 z5_C&UBmSr#qT19fg!*`$cHEyJp8nVn@*d_Hn3PhCV>7h&3$@{-s_9R`ff7v5JQiae zXk$rMClmtRNaMdvoYw^(AYs87EaD49&cIA6$COH;v}oGVCjq#cK)_LCqY;=GuKi_2 z5uj%D<(nbU#xuMNlnO7mRrjDjS8Vu+O(W8FCyenr_W-j z^HnELrcE84;kGxwsSXx43`7`6(i3`s{dWCzIi|lq=&s7oVLs9!Al3SRlhln_C@kPo zu@ZyrO!k6|DIa+#C}y{k-}BZBQFkaHzn9@=Ta}i@-b?kJ%}-{WLt-p)xzH|T z%P7^gd7t!wI*=}8pA)~ntzX`LNIiy97n%zFg~b62MV^rrwEk8t;~oxAQJro7s@mv# zyuwud@EdbqweMY+aTNiic&gj6m)FLzJP`jC!LfK2my_ddONbcXK@}XYl>HmRClgP8g9e^k8i+qbH^ zT4>{eOgEmH^Ey=Fmz;d~$PulQ7z5he2WQ#one_`?!JXD~a)6;}q}T@lP7=`U zO@eBH>f5uQ6ArWkg&9tr@3ZgW8xr1K$AlhnE2umw{XAKhE{+P34i!l^Z`h?_gUBrp zsbYg61+*l@h>D2in#h${3At4f1z2QBJ3>or7{0*3BbDs1&&Z5i%;2%>Rth#+o@6lDf}jzpyt=AI>-{s&Wydk}R;t4BI>es(?h)0R>pyQ*F&G3}GZ{p+( zo|889y*+s0amwBg|YL@#e>^X{p7QG4GNht&Yt3iy? zgSsXK;IXP+L>lgmO)m=fhMK~a0&FOnL7V~#!uj1Fqx-C}=*%k~G>u``>f zi~@a`>=@B*B0PM!Q#UBk!(bmSZF*k##gtY$Y(`&V@S;?gpIpk9KjAir0~n)=xc~Z@ zx#r9?{j7#^^4TPJ0|JWc$=Cx8B!~p#6t~4JHYOH4a9i|_-oI>R84d6ZV>dPtCVv_A8LIsQzKszGlC1W zf*2xJH-;4IPo{5;6o5w4AwVq&n9$>Xt})nvvO$<`#CR-~GgSdo&X@%n1>`*PaiMnF zL!0nvs^o!9DkQqua3=9RN$<>H${{ofu}D}7%qhXK(Jj)duZup3fl)IgdrMRup8Y2z zPfDVdRqm#>720eNBOFf{wc~SZ?}?Onnn7y<{3iJ$QrhO7cv(-7&9E zeU;66laoJ@gt$H|QLbIG*$vLO@<4iCgF8s+Jk<;VTqOS1Fc_asC9)PBv~khSAaZ^#!$1?N+g$|lR+pDHRc|v!rE9K2Q&8cn;!;_USf7g zkJt(_r$Cy&?-q{kB)_Ap#q=)oem71t`6;AFQV{@hVvIFCVLMKMLN_nzfkYRLn?Rcr z4J4ON2GBa0KZTmSE4>tDy{RREP&PT}3+Ymp(TY5dZ94ghQj>yZY)mxxB9Z1S2+^A2 zm%l&;=;-7O&)>3U;S2o)oHioyhx5o|DPd9d8wymE#sJZN^kMGJAeq7k{|wcRc;(41 zTsHU(Mmo_Pw;H&(?q@}%fAa?f8=SR3%{8{gvR_JE&Zv*7LZW;;a}Uyz81(RtEd$Wy zK{xgi6KV(98k=_?szWO7k-B*C5xwkGo|ie~Ns2GBWh*_THW9D?b`k=v}D-Zsd$jc;gv)_hIaC||I@A9B15`Pfexvoo@mtn|)O zC0y!rXKqi#zVM?s!w}RG7`$C6FnP z*}WNdxSRA*`oKNIY_vuAz|6B*k{yOqMHxpFIe$?mW0pX-lQQWBIfW5eT^Uw z`~Zlk7Lh3|=kw5*H$3#ip8KRer9X;eUjEi=%B8g2Di2|a$(I=urmxyJmQ*3Kr4OBH z##nx2@#7RV2=rK=HQFY*nWWKJ1r-Poe^fL$fE5%A>wP`tQU8!Gzg zFe`6|kyBP*>t$#x_;6Q#7lB41ZLnv?pUBp0T7_AXLM*x?m+u}EYt6dOvcuepi>CyG zTqmEZgB*M2KoxK}7jt4O7@mnRt+P(m6b+9-KYc4K-$7ovj|d2ct{Ixq0j`pzq(5oc z=53B+aNg|L6CvcgnO{+eOZwI%Bz(_k95^;iKu;4L!so6E&D9Syw_kC%cGm(x4AQfq zoteHL@EI**e8)tpX_Z&?(faY#wN!FGgb%nS+&yH0gu*NZO_K32bsiDP{i;ziFbejP zb?o=PxoqWDOe(AP<<*zTo@U9?jH6kLWB6RA^Dp5QXm>$Yp$P$m@W@S<<%{L&g)+i|7DAn24d+))thb5JCzf-W=VNbRz30qyW|7p`}O$E5K`LPU~aww+>Odq_l=8AG+S*iZIV8)8fR+i{qFDm2r1ih zww+tMU^WA|NnO`1hYVm6(C?s*oKE z5cAbrNla%NoHGZRb#rZ(Y9mv$%C!PiQxXa{ZMz-uZodKg4Krq}*M@#pT=M&i3x0YP zF1SIAcwmuW$>N#PLbZ)OuO>U8YJUHqtC!JV!i&aMS_@q2k1 z;gcbIi?4BS{(M|PR|+pWDLs;>i?Pv-zF>`>}|{LA>&Pup6EYJ-Yo#i$5nql>fm;F_ds-rOimFKfg-@*Vc;%8Dj@`i;M@zS&Knc<*Vr1+!=nw@{BwXDE(!XSR9njo9=$I=SH(#kSt@3JO*rejs5AkY@| zZ2q22+DJ}m-XPa@j$?e@Js3?Jp<};AxTAjb90lH}Cx4hYW{iSF9jq6^)YHvNBdeyi zu)#nxA7u-*f4yarz)B0K14-`I76BLf(hw_<$XP)w_H*BhnHim&tbdtN@RhHG*Jc0S zKNB{=XHBsR5X{TPOLuaA6YaoEZDU)zlr5}f<*~B!SSQj)0|k-wKk1W2b%@PO!I!z# zBGkrJVduSW7YhDl#=GkYa|8D5lyM_0=oib3t+ks>fJS*Ls5pO>Fdng79sfMu;)_GZ z<6;CkRn!2Bf};Z+snSfZg_+jHD=_T}U_&E@Tset51T%b^G6l992#3o;&CKp|mwKY~ zuxlU^354N5rC{A>Nv*!xqkj<50aO^f0lCxjM*Mh{rGrA^I3`|C6|06y!Km&}Oq50% zjBd56L{-ros5x z$9ulreLXF0Yo6`dQmE@pLwIGlWF?)q0>z8HUly7CFP4YI+Ip(o&A{VOIT%vT)VQ-@ zkiqTNGk!l(B15(gK(_|U*eH@qPC4r-$KPXcDP*+6SghGz+C7^7joqSuJVMK{T;rgK zI#^NlIuM#O-KqH&bsLBpUpZGy>&lo%D<&~FLJ6sXr1$xJ@cqI|n$XVvlO9~Xm|5_L z4xX1ytF}wWMyXuF%xeh1E7Z{lRFdRVe7U@(byyghu#+o7GZ_&=j|0%7?FQHhdfJ^6 zQHJ(>$NRnjJPPFF%Nt&a_B0!l&X4?E5)OQlB5~edzp_YfRzcvrhW5O~`$e0q^ebS` zeyz1Vrtq|q!U7Cc2=^yu;xBM}eEP_b$INT>J+;D+q;7QLWD{Hvpn=~nhKgiu00->=9Bi&-p^!+vvEo@;GyZ+K2TEKK(SRLQWP z;pd_>x)%GOgFd&ti@r-ESw6VciMO1X`YRaOPBR}35f7LfmdFsFAe@2Tx4A$u2PG1v zQzJk`#joIDXf3Bq)JI6v4*VA<3x0HD4WDxY9RCl}Gn{EjWi0ES^xmFJ_DK0eaf*is zjOn6}%ziM7w+a43*2Mdey`ByEO!cv{6$>8_>9`p(2q@6lk#*5yQnI@oy!1NCx$2u0 zucKgDiF!`IWsjGtyCei~lSA&S2ltw@UJoB*qo3amPb2{H2ngi+dpNacpa%J!3QJi@ zWR6mBk1M4RgM16pbI!ko+M@6{%GZkQ&+gsyu~6@L3d^wmbrNdCof5@XXsS4>jo%G% zqGw*}Jl^Eu!C_N`OxGnSsR4U7&|NL^95CPPgR2vIiK#i1W8?(hW9H`8me;qtqpj`Z zc;a-atX1L7BO>Vy%sHnbg|@g+C#tB`b*yOgA;LFbvYg&Dl8>r;Qn9Eq*;N85#p%0J>1Pv)jkMd#zHEfmJVc=yMQa#$ogyNg1Kv%8gLaAQ=-FlD{9>z z2+q@^rzo8>7t$Oju1nvbg$Z3v)(;tp;ou6C5D_UwzG$vuVMpgJsQon4!cFl z123LO6can4jq?+6tT~8s487u!F~#4q<^{9+vcP)O68rot^tD!Bi;#=7l{9D*E6H|N zyJ>Azt0nQC>;K(%2hL!bY-3P%7Q#?at16DuLbY+kIo73wwenRDd0!6sH6q79*G64b^ zq&{O=jL1uP%6xdH4{4}hW*K1?w8XYMG`5I zfaS0VC{4*&L4=>al$#PtUg#^b=qs@dnQ)N-8@m)4>%n17^=Gyh_Y80J=w0+L$_c%p z0El`?q_ciHA`eBX<#cx3y{c|J5{?cd=*c{_{XBHrE4I__!HJTXuF#q5$UV_=%39oY zCS9m+G|4Lyn$~2Zye*^~6vD#;D8VGSlYCa8q=srJ3w?!It15Z!IsTAx09}63kI_Uy z!w!bBi@*lrQM&maWbzI~najBc}D$jj^d#mw+Xwc+k<&&)Z989`sO^ zZ8h6fSjvrZjv$~CHz0yMJW<@rd!7+ajpo)F1_x9cdL~INe&I#yE$N>wF-{G!7o)hj zIXj_sA`PJi;LJ+4@uuvKTS|yDDY63oWEdbI_yI; zmxacUk=Ktf^9F}CbPo4=2_Z2g$*-sNJoMsk*C$6gJB@+xjA4qUmX z=bX7mpBUrwv_yj&;af0RksryuQ^K&7InN4}^q(91xAM(bD5=MVH)8n!uaijwhEC|h za~=?6YAiW>h01K#cYQK23(rO#UC`>y*G0aN$Bf z*2Y2>R9-NG)sp(MQ(F=V%4tNdT2vM`@~<)KKc{!-iwA_uGjgsP#UC2{twqOC4!6oZ zA!yJ8_A2YqI`*QwG6(zS@JOhr5J-L&FDy4nS}>H1aa^_6n;EMDlvF%mosxsv9Y+={ zqgCRCB1Kn=`aUw39MQaY1~DYLwgv=9us*XgolV4#d^?yJOPDanz0|2lpoLg((v1?? zAW4m^f!JC-i<56&@J?5qgTY4Q0q3uZBL8E3Wv0wBXpybxH^mIRrwc{gepZ&i^MKGEkLs?hCNX8>_#_|ZlIA8 zv*Bgo#TF~Zw?%5rA=@Z|WCFQe4g)v=NC(fAzLM@Lp;N{pt%52SNSD_J77E)?NP?k^ zRMCZv9R)zU-QZ3{;Di-TZ&a$6Ye@TJp$8bl10eB?l?s$Y2w}tn&rNSHc{&4mfZGX1 zlKM&9j7vhw64;qZyN4ZMhoW?l=FeH=1hR;3;(*Si09cVN#ny7?L1nTy zd}lWnr5bHpK-RUe#sPulM&znSL_z@BEK4o$-v_k@qHfMv)%dsQ;}@dA*bgc(0`70( z-Slk9-(_LzlU|hd`ejMc(1A#RmIf4==!sl9imqO}lf$3;NGXFDMAk646OP5?u*V!) zokXLy;8;jQ7^VsFJ`bWn;*I`rMP}nS7l;Eo=33hw(cQe1=7pM9ml7Jp3p;$-Is~t^ zc3P&iqmL@;mM-guRe0Rg6>HwpFD_@E%8Z^2VZGHY@(^>!8rW^mu+BYBK!942tO_7Z z-N&R52vP&{MQw!U>bv=?p^?89ct}l_M!Fw2-QyIj^U6w2cO~jdm6yioXSdq*Ea5UsRN)jZ}?8n4r%@r-!%3%fUkCw6h6~ zf>*tUD4Kq<=C>n-O&CoFPOXZta&vW8ceZ*xbDjKDzg1C|iw9$kJUZ$>;Rg7|xpPf--lC zJ!Lq8{5SQ}@awlv+tT=ze23%$6-UW8RInKs{uw(1>aZT(3Y&guc^7_}pt2+VRfeu{ z4zTIYnp?RXy2+5oqPyZ1b8o!nuPE)|e_i!gHJd+(d863Leq_gmb*0Fb?7QqkR zzRbfkD(zV$NP=MZZ&7@@JYpF^RAg9(ev)mP#N$-8ii7swuHw8Bl%gdUuC{*wR z+loeRa?{4j%sK|EQT(cd2dxV$f;cR^t=DBT?g)s*4ATRL6s%2Vdz!`Af<<-1!DvR% z$%qp-_3#$pzrC)I3w!b6k~dLm^Ea8*-%1zagvK9KLu);4-Q*+95KI~dCRkHM%mz+G zvPmeZeoJ^HL=`x;0gN8o;!_GzWi5p2`6Ru-$hzv5RbCU_8tXIWXt?9$hV zWU~`iMzqZjCe49?6^*@0kt&6VH)gR-2kI~s3}~Nz4Lb^IQ7Z2ed3Ax$MT1y=l>;ST zI8c;1hJy|{36y;jG;ly$+3O*1?!>QN%L~b=BL)>UX;Y{w0kq~M+D)@j3q87nCypKL zTfQ|8nH3jk2sFn^geA>|_hRhxw9`?X5b~|hIOrs-Tb%JIvAr;S11}X7!?B$Std1Id z*05rAPC@w(yt%*K5S$ue^VZ-j^0oS+rGp|5;JzsT6|4;cu>H`ryeFd9%f{M-F_)O7 zu0qqN=^03~dgZ0pru-N#(Y*5(4F!H8fM2b zWI|MOCFRlAZQ03=!C(qwBLQdwE<}J?{Ww~q2n>Tc#qJ-38eK8A)R4-nB$KYhHie_b zgjdy$W73qQtN=&y1s#*^E_y)N!uUfje+JdXqyWbZ2yiLrG)0qcoqbV6NA}uo1i&$Z z9I7rkHc-|KIWWXotW&y3h!$5_*UgDbL3WMBxAUAM%Gw50bJ@n5QLJhVp_HC3G6ENC z*X-`f>cH($4pvr+#2xKM$p%NfmU~tM1d2#Z(cYDSE40_s&9~1p)i&b$Yd4>xDQMUB z_*B5aoXA~q%Y(kX?z8W2Mqkd~x098TQBiXYy%pM#`EFBwevMp>m(NPLJ=Y!MRrlN?50s6ch(;oDljA179vsQ`{b{}@TG$4L% zb+f1&yZTYN9N=izBuJBf*_cCt(>iAdQ8*kq5c`hdmw;!CG#-!o?)+i+IVJy3qKOQG z&MyUZ*m!c7p6^9jcftLkPf_YF)|XW3f6|F#E3o#UNiSkp7`JHjs@uQ@KeHviBUk30 zvcqe+ZS`w%Q)ZX+*;lB3#=9Gi8prt9=L)5fZ@cfMdMt=l-48M!cD2{K_w!TUv-{3z zm3_^ci&HZaH83mobGyO3u$n&u2+o0|vq|LM-16H5o_10I%X%sV3Oa7?C9 zrhC9=}zT>p4j>34BHTGRG~fo%ogDxq#B*H`PK{qd(>#7nDD6JPLX~@0*IL2 z5`wi3QgWBvH$d9Fx;QEK<|`i-%c|xH$<$4$h}!xNW6)K-62qlnM>xbJYMr8HUdk~B zhHAuoJ^MNuWUTB$t54>6(qDJ$g#G8E3MTWUcluLde^;bjGASqCaa%d>K1&ghtfM=H zoXnT^Do2aJr2d&)XcnxH06ABT$xr$WE48vvIN!$xEyhPrZ#0$^=>(RA@9XB}e#Pl% zA{vxYTHF{T^ns1!Xm}Wd5*~4zTii*Rpm-9?0*IKRliFeIC8;cuf;FVtpgf)(a|lC; zwDLp6P8tW6=Klpl}cjN&v_Ye-~moM;n zipT2gNOmT^plal6duev$VXv-M9$5vBbj&z61T`Hv0^tJY!URl* z*}ye!9D}(THt}o0iq_^gydrPhsGFA9f_4PeQ}P${e46ZM!5fqN48{FB$Xtc-S*yP7 zv?|mgrI_4ERkYs|FB-*#08Kxzf0dWNN0l5)Rhr2Oz^rNNnjt)n9?BYXYeHy0M3|;# zR*O^Anp@;!hK%S|su)qAJK5ftR1~lcHc?sik^S~ky|y%_W{b>FATe_JzPwwJS0B(d z13${fS8C9V+cN)bBRT+>S3Rm{l0OT{`T`D7byRY_%DbMjQB>fKc_1r_5P)C&mpA2&W5ZmuTWb#tc z4yOAPC^{@{fn&Y~oGR}Qd2Uqp6*cM}2xmhO+U#coAI=CpT*U|)5Otrs@p^yI0GwwC zR^R2-F*=fg1TW8!7h8}45>;4tlNeGjw(LwrNNII|21jdop`}-vXd6IFZ!j)KEN&l* z*9U;F*Z%#Hv9ryJ?;Dt|^6%{<>MpnY8?cYp>m!po@L}$aPOs17veU#5v$8otg^%uh zx;*`ED(Spr$h!y+{?-li7Ay4YJ+Wog4uDqq1H7LG+$djq?BomXCNdfuwrok9$+9;+ z2%H!c3#eTTxLPDZML#$9lxcEwc)Pchs1^WWr{ImR#FMgHw#K%wm70%PTo@8mTCRQ? z0<;L~5|#o;n$ep+FJGe60hw`X>a(>9pwPuA>Syl{lvy_SI6VhJF6t$JeAvPu-6@Nj z-kKtShLs2k;KC=d2WP2yvyZWj4JUOd3vnz<9VclNttf?|%sLS-l!L6eo92`@mCe+a za*nWjbw#bSexi7x>wte8YR;uGiHV32{RUMB;c5zZxoLjH$Mtg8>OnVm0csMJH2Txz zUB#By+6Q)infb_2aJ_8r{?PA9Y8zUbE&2-_ccWfzAWIU@UP)HbJ$N8enH!~nsQ4Mq zw!zAwtbxK-9Z7%(@bGUrMB&c;UX6mKG7D&rV}ny;sKR{2>?$(u)pJr zIMnar&A{U&sUoiaS;13zL!x46XVsqO7hRhB-{z(5-B`uzufq13A}9y}4rA-5RR(3zE;y?X-+Jrqb#$iMop!U} z-EwG+Wm##p3R>r?093Me+m4|54dL~p?xHc4XU-@9?$QR`T@n(^-Lw3LZFYt9KEEeD zBSpTjZZI&95+-u@3P#1<)Jej$X_($Vd0^|NJ5QKYXp7oen(}wZWuTPT{ z8{Oxbk1Zbi6#XuPUF)qG7eX)S#6I(0C!GF>z(K5#gOMOQWSug)(>J7H)x8{6%m((S z@z(gF^oAIF5!RigD#v-;Y|DY0=}mXJY0ho*9G5tzX81F+GrKT!1NjE7d3fy#U*7aald<9kBpQsr`qVKk`HgHrb-Q0O3m@-7D+kv z-75Hj@{~g1OEP99X8;&j;b=Cf;FivM<8)_4(-a#tRcfl81708%AvaQ-C!k z&;QctzLE@>PjLS^-7i1|0&^F>CVAfT9>kSt>_FlbKYe+$wJ2*ORgfw$srA`>i<7eb zF0Id{>xO?51UH|78wZZ}K`<%7%LA$8zbOViexq;S0DB!V=gqPSiCHH$*InG`m5^+g z(njL(J-`MPeiaza_I49bnvL=1T}boW-gmLHKi4-uZ_lFa;nXl{?kt#vgYx3nt;?6a z+xEEK{`y311zL<5TCxvUZ_b;y!yMITdd)b^h0oO=M))#kR*s;_Z#gZtv=4c}TOa<_Uu2|){%gw>@6q|p88o4j)ZCe1&BG}oO z244~idb;Ob%e_RduhM6=B`-Xk+M+}9@<<1D5P(*7KXk3 zf?p`-Z8yiy+}x!Z94A)rCUY)2>Q?fmZIO$@A0*D9 zCavHLRT#jb7W*gv6i{2{T8kn(MovwF<+Ox22OmoxYv!BF4TjwhBd4v|{kvNohxF`s zb*tUp_#z5CAP$xbuS7xxTRc?O+EVCD55tG9m1MUr!ZDe?&RlC$6T|oNLm)=(MrNAi zOI19hS|0acq9jeBA1YJPVa(hu=0l=0y?&CCe9?07V^y@-n!1uY(uw#FoDDIq*w)1% zqE_4#mA+lIF3y5B*zS*>mNwWtwMfMKW_l?jX?I{eDwEj;_;y^|FMUUFe&<+E9sx3Q z#{K1EeB0#5V3^&Q#6o@}-UYzoFYAx!sqUD4?`zWPR!b_&spX8gp$ zN=kcVdF*cad|dbKIe!jcp6+`2{@wTg{)1(qOXiUmJjIZku=C*FC?g&OW!#T&>P#~6&bOrG=3Vbmp>H=Ett6f zSGLS)6qJnwmS;QdLfo1gnL-=*0(5$$bV$6LI!k!5S_jm!1S+>y$=aiP(Ea^P`-I?1MmV4s74uLb2 zQwR|J2=(uW?d2G2LeoJqy~55ZRsE>$NPBOjDL}JSM-7{P99jhpJ`KErpIV8y|5q=1 z=gJ`@3navZT1X!C!P6Np-p7jIAAVMez^QuRIy%oOYW%k+J`%EqN!0v^DkK&lV-&ax z;1&+lPN1ZPKV(KzcC99{OF?oGW)VE95sH#1eSvbZ4%^VGJ@@U0(azy(Ew-p%(IL=; z%|R)}Jety&bbKSP+EH$Rv`ubw1qwL9xmJ$Q#0U)Xjj-I z=InK20M@g1W~NHj4RO@6Ft=C>eYOI-a;}inzTkD&frQ|jtmsP?`GZEbmSlV5e&_`w z;Ss;2Y+w7ExF}s=Am>&!0EZ5AqFX}={S|c6SVLAPtZaBV{WTZiwZz8BR7RgKn;94M|N+iU^+@Bz_9F8L9KSt zL;LD}kGZMMo0+0jz8H-oWkdO;Zb|UWgVkH%7df)c`eFNarDUB*42mQkD5%@k5U6Tm z+$!$&*PsTa+5;e*AQ}|{Rg^K>A%^K44zBqG!3;Dn_rA5!~t~WV$n}eC6 ztBQSlex7^lyw)kiOu&>mR4W&+`ZkT^$nfXVNn0BcUlx9M6BYxBe_@SzF$mlv#AdlN zc*1K4;tC1F-FAz#@3aQT*e51CgviTMqxXSkn1hk5(6r3W~fUT{BCSd z&kc3IKc*ZKZL+=~7@jS3p%zbHHwrM8-n9L;R1IdIxNWrh&uCxoX(YOta7 zU-Bys|LepT>#lo;wI`eSiqV6kT8pJvZ8yXzIQ1ncgTGp<&TI>F38qW!EVW#XFD9|P zEioO{3_5YP2kHCYqA!Oj5P4-9}%m{-ZVK9RyLSw!;*dt>@RyR zSwj;#n7ymy)XeQkavU4XjeDo9f>b*M*MKZi-Xl?7h;$D|`UGkYK;{a7d~^#ql@h%Q zI%TOU_&AuQXc+XtUOynZipBsiyUV?HH8_Ev8ViY$LThxb6&0<@y-t#o54A4r_($L`eml<*KW*q_`;fTBcyrMG4X z6U|N>c>Z-@&MbH_5hi)87gb`sMf|v@4Uyb9kX`8ciA@`zD^JrGK1!{j9xACiEV8Sx z&VvL`4aRGskV?pMGu!3xRCl7YIaD0+peID45Pi|Jj6&I9ze1PKPa2pgQ8<8t} z*qoq<#MUq75&M=&OxJ(Fn`SP>H;7IR*1}x7Qxz;YsT{?^%|tl*h@)P6Iat=);$e}B zrCh7NOeJ2DOkxH83M<$Z6xMZc&-B#NrLlkuDlA$kRERH3I5Dct#iWd^s+I~T(R91WGIzaO>L?|W$IV$;Cv?A2swTg#W62WG=M15 z-%M~zEVgR?JAN%+oIWsqQM`ZIQAU;x zn`h{D6f(S;Jqdu)i zsI1`;ccjPLU|mN#jche&F0FOZx1`64a-vj|Og)klb4GXv`&XMct}wm_hhAsKko89A zXkwH49)t??VHt_Zttnf3%AAB@v85yi{3Fi-5~6pS<{5OVWFy^&IqdN(-@_|Z3jTHn z4l*_oh|wk?a;-q)mCnJ#7LgEOyvh$fZEZrE48y~c!c!~)opSv{&$jw2Z>uJ1lRnPZLXKU3|BA&cClePeEllJ$G(;eG)Fh(~_>{d{IL5Y#hAiJRlYU zpAzwbM1oHO1~)%l&lQ}C3lVZ`uTqA(=W~6|=L$S_Yu7|bdB3Yq=W;AgK*8T`#FLer z{fI>^45iJ#3QfAGB`g#>O{gB+k<)D_UK=W>y{e@YB~=a9^}s|=E&uG-lwUUS&)z4m z7^)+K9I{w{Oi`PGMQlbHT~tfEw52*Qujf3O6kBwh+)DV3xnz;WpLUN1+P!kIkM`J@ z*jo?OA7~)b+=C!CpW{L}ECeHw|E#C<*;BDwG>U7_h)tgK`{cbuOA^mJIg}n2qgA>P z#Uv(mtRK`a^Q(C3(VdhHCZDP#moV10Y8Mo|6S1VokSvlSCTBEKLQ0BR5tL3(_=NbD{W^dDE4Us zu=DCgkT*;>DGn0G<+7{GMrpZ-rJj>(fsdf_BeR%9u5~()Obyy)BX!PlLhK`MNc%bs zcWaG!gdzgg)=rA<_7`qLl}3JE`hPvISzq5B5=+J`)@&XgjLIZv+q2#m&mJ6BDS0-? zc@S#uHtOWGh4m-klH4v#E__2BGqQ70c~zFjIztb`!YShR9ARw4Y%-u)(qVdF2AA~e zA=0tj$0_NHwE(egbNeT7*-3* znMQw$3rfuBxfvpnq8>B-&*SwgldRpj%E827FEDeLwCb{K=`gHyTzr1O$;tmIM`<>{!B_lNz`FL59&6se*R#o_ zC|Sx!!c1&I+hu|Q2%&hy*(4O6?iB~@hIqNbB7mL6&6|D5UYE0@ULySSdnBohZoYs< z!NXUdu0q`Sc$Ub)M8^pKv-4`|jaSwO*w2GJ9)G%PhCkYAfv+*Kbjcy6)nVi26L z5S|=um5qo}15tP3{NgOP21A2O^j0Gtn5gOcW5oea1Um)C6tfL(ZO>&5>%Q#`^!Ed@ zFL!?p>DSXScnYM+GOW^+hT7RXP^EA9P!E>@ZbCGTP9>S+z0*wSgd=xGWr3Y7#6%qC zNO!t%3G+l$uxzsoUvY-kZ=4jtOkURaMlSIkc~-u@J1oiES=)a5ojfZ#N3B;`i-Tvo0&vD^jglaI%l(PFZ|A6wJbpro#3`jilJ>AHv6;*WC!oTE$1oy z#jFJ=i8x{A%0jllHBwv8U+fx@E6;F9sT;^v{{0OTdu#7>Nh*ZUgoiAQn>-Z`jQLdE z9^J&Q=@%f!P9NadMX%rS^7nwJ5x3LLIcATyOHNgY9rx{4imQgF|I$(4URZMsv(jEA z*y!cQOQC5a`gW&}fQykh)JB)B>qVnzftMO~4}0gUbzwaLSSnd>7g{hsG@r9A7$R0L zcYhNFhNXb*7rCJyhyj&FN-2EP`gCFDM>uqB7(%yOJ_rl&e*tk*uc26&a@eSet zWN3XzwMw&w>2+t~SSa+8^N~KysI9ft{aG1WJmmB@g~_5?AY^S2hUk}RnibBej&6P( zt68$xSPo#vr>b9CeCrHwQKxUoxx9uYh-!A63u;`p6iOpOZeCpierF0%-)PA&lWp=z zVDMjdqb1elXANxt{^$b1h==w~Ccob_i%|CH<)(m*O13*T%9jW0Ff1u<({!#7oY6>9 z6C0-+vImQu*C$MXb^k0Z)0jkK$!4i3SF8#q$3pcIVoai0`=@0lm6&QpZHR&8!7!Gg zyS$Juq=(|Z6Pr_18gx{HQBfZ7D`C7FTu%ycAX0v8z>dJoZ47Hd4=^@*j17lBr5S9Z z=0<3vOrf|fO!RSSU{8DuZFk_!X`s{UV1B_^m+RwA6@3w@F-SD#$}<8r)nyrUJiU?^ zM)RIN*>gSxx|l_AcU95(*@yiiJpu9x?Z(jL(S&?>-mzqk+!r#9r+Pk9^vCF7 z7P5FG4^`_u-5+hIkLs#CyM>~zP zNIx?9`a(ARmw}s|Rk{n;CBf0d_sUk7*3ZONSjm{){t?}^QPk2C8(rV0VGrntCp{KG zh+%Z!f+YE#0l1Yf%N3l{84WMI`K{j1`_U7b){{ry8F$IWYP}Lh*_Ns~?4_oxF(eo3 zu;~WepZ<4tn2@lnvo4>|Qe$PB93!-j@(=9SNl#go2v*~g$C)vhy`D$G8yd-JO+A;^ zK7d!)U}u2_0!gUg2#AV=jiLxjB0TK(5<@)}bGtAS23l;{H2AiZ+^VG9|9kf;uGbaM zcR_n^oDJ7~|4DReY2ph)P11+&Lp+BJYKYIm6SZ*$NCv{&**A{AP zE#!Ok&I`wuyZ!Gz^#<8K@zm;+7h-$1Jt(Hseo$ky+dFG7YfV1DJW7}kj#5kfG zR*`*ycieq34yJbte+nmozs=%o9_|I+T5#7>`L9h+AsuCeh=$k01m^{;S^f!$aXS)* zN&W&Q1oC~SKgsfLyOwZ~FPiCrJ~uDhuJ`By6$5fl>@weNr2R{5=@2=hB};~PA6dIENQ>k=eWb39$nx~U9J!)?La z53Mdk0eGr^);WpHJiJh#PvNag0#_|oN(F1+kf@SM>+KQsvR+{O#Awm0=h4E#3)uJ5 z{lA>axLU2f#Xhwf=cCeGY}PciNVV>@hsGNUi}TqIk48TzNts z@8OP7<4Ps-lBV^~;#v#qoRcie9>#%kxC7u`lxM{jV0OWUcJBQzrm~3XJJ$q2YK4;R z&#KLvA477c_0}h%ce^OO9!p*O#(uhPs|5=(Yt!ej*d)A~HrOk@;QDsBtvli_)o!Q% z4BYC1OWaX=yxJ&!@kmJfuQXm+$ILy4IWk!e3T@X8{_-7M`=)dOzr&$3iv!s?FlJki zy8g_!aaeC(4J|~B(-C}uB1%Z7<~YkW*A_^wJ;bQCv))B;876G*SygC*&AIvtwz0aI8O!1OQFlTY|l4;%S)npBo)Lux4YG$cO1 zW(6r(I|E2%w2xNT^!#AJPe+4Nk3_Up{SL}*<~asBDY7@0&IP3M>ZOLHpN?*-ofs*# zIuFKVcB}a&>kFCDAtE0rV)b(z?sG2LahhE82WP%+Xb?4pgOU?j`dk`Qshr#K+BBep zo0{-pZ+-hb-oj?O>@wZtct;NNDZ1PP_S5zZ6WDchYzC%PHEEZf?I)&pjRxk?Rj4yJ z21%UiAM~FV*6#mExjSDz3tUeyC5vLfEuPP+1equP)!TCH>_2a+YNoie zZn0nW>#Bxu*ZaljW1E=VUDui7JU2-A{DpFyNaxqu|83mv91=hlrrldWhsEg1iRb<{ zSB*}IO^%fNz~dYQH9dGw%CS~>`!VO8RH8ixBTXzM1AJt_A2Fx?#KO(4}oFUyPPX}37T?etR>L*Bh#VU!p^F6XyTk$E6obJ zA@>`%hF3IiXeTr(=Sq(aofGnvO1FP!^N_3Qx4WSe)rL%HqO>DC{s5ZYyu44^Wsaw5 zUY9iK()-N~AnncgONVkoj%AE@4Z%xt1~>{ka`2N%z>Hd7cWih(AZ;>IgU!|oe0XqB z!NB)4AgxFaHxaZ!b6BD{37U0M=1gQ)Yz41yQQAYTiQB{0xKsh@*h07U|60$?9pW}7 zQ`sS_;9Yo&m1b=k+L~~&1tT`*d=#(RCRlY7HFM_8PRp2276-s+CP1|s(TQGf^fHaj zpqCPsV7EK~!0W^gu;m?A5xQU`4%B7!U@KQoDb#(;e@)!q}I@fcj*4y%6D^7V=ZYwH` zEPX`Ptm43(4k3hio>>BxEip%CA)_X!l6qZzSxd_XcEV|HcwOdeHv(#v-%49~YYxK_ zM~|1r5BnP;AMm&8e+n;cIA0XKPWYG7syt61C+Zmf7JC)jz1WL+Kdt%1l&2G0+QfMd zKT(5%IGp#2%_Xv+v2En5&b;aG#Wn**L00?Y4vf=N%pTse-@TBl?#~Mg_mi(jqPUA| zX`!2$wFf~U%Zr+EbI=1yTJ$_bGd`z7EDx^NOZ1sh4vYm!_Ik43*AP0lhvJqsLAQ8jkKu;5aP}`@)0Y212*a~) z0NT(H(PIaM*i8NV0($4wPXFhB7+vF;0ER-3aYnBi7#~$7#`p7#RQN<24m-_&g>Rj~ zP|8GrBZR)zJ;riEv2l|u?aXb29kEmslaQ*V@(bIeKJ(sy$zY*Me2^Ob%sbC-7vYc_ zwO?GWdjlgY12YR-Gdevz14BC(XFWYydk>jJ8LJ_B=+L_l6vC1=)*t;e7_hBP zTrd-8PFD<~_K3uA4%hkuk#DBllIq~=vf+h`MWtPnS zI6y@gH0Pwcx!?*PN9-Xq`$#b)HH{e7Q7=Hjl}77R7Jg9_`@!f34=!%*TsXC$D#oH# zxsG1oVBj_pEf_w%qFCk5eB#Ezm>TiTBB?1Q@r~362)&H=a=NL~)D6^6BQWY~Z-dbk zj-iWJCXG3S2klFwBl)+nvq^=S*0lgVaet8;h&(H*6zqirYqkwyj8v zVaQx%h8(ntEj#76eM(TUIJx@#)qghq=2sNnjEidVaghFEh=ku`=-Q@okY@?sZAM+A*+c-e43t)2@#{&w)`v6=vxo1jeO`2d-?E`bDW3C{`z6gPuUO%ooJ$243&*PiA zdw6m5v7Nabq+=jW9OlsKXOpWFtStS>*D@j`EE47oVG?0eslarP;!g)Aq9$cTUi_wH4?04OeR{cn=w>^IDo_+DZ2y1 zNJx+VdiHj4aKRTFw@=3$5iUx%F*TmKi0~lfn~=)rKAkKFJCC9@AAGs>ITz&v0ca(L%|dylDl< z79*&ja#!hSjhYRVz;xA8R2*X~iuAg{QW^)>E(GeVYHyL8BnKJoXa+hD8r1!{DH??8 z<5CKq@3Xfc>LNg7;>M7Hks?*eWQ@lS-G)sl&BH{8g4kb+7BS9S{xGsgk&VwAUnSHU zseyoVPwJ4J`e%$acRa3b$p?um>v}c39DF936?~9Jx~bItHA)y!YwPOBVML*GNUhbC z-Q3%|s1<%>b|$oh6F=4J)=Mj|5?;gpWeWZ^wksnQhu^{Lpi(1p4NO=$C3qgxL{@xn zX1HsI#pI2K)o-P7N9;FmMaZ7=P%ZcBlgxJQQV~PT7ROptE1>28JqmBoJ6ZZ~ z8-TQKSyNRzXGosgynLQ-U~67Ur=NLqus|(K0R$W*iTmd#8(BqFeG~z5a%7iG?zrFH zkG6UU(ywet*|~bSJ#e~sJzo+@3ubV}k+g_Ts343fD)8+k;b*yuR|JOFo~@O_9!#cM zeDzV(C^<6b3OT3T-7aSmF5&{!<;I#W!p{|vDLz6qrzl~>%`tMcx0l%aLw7@pzog-3 z?%l1`@FqA$Oel+M>yt*kcYFRx8haAQ6+G6chrGxhNp{`>x~;UD111z;2K#ods##tH z@V^xa51x)pmU)S?J_zN>2*ln5LgLoKF23weoV<>`5$|$z&pQQ3TZ4aUfm&S`{nx@? zAO6Ofsg2}~n|Cqpq=DR~JM8OU&tg%Q*yjw1l#2!VGVpGRtOVa-QJ)IPBqi4~i<-q6 z6K0PL!T4X0tsHUH`d*t07sq(i58EHVElnC8bh`BgyXoNtsApkov+*g))w8|1D;t3~2{v;K7f(*7YztVoc+VJYF9`cmh!*mI)Gp>Y9S!2X)5{bL1qCI%Nm0DRMlHXX_Q zTwYsIHnRkGx3PI*PYa!pVW`T)<0w3o09IIF7%bV2#*js5lz;kbHJWowJ!U$s7j%EF zN1voO8&g@wZ}Xq55F1e_|8T0Ewwg4sozMNOXxacOHCb_Q^^KPK^s8`_e->kbC86?a zJgT_eUFn@y|GL0E)90>iC-@=(08@#MmG9V+Xk7+%nC2@GJqyK}gM!+>- zrZK>)@Ou*j^nUfZzx=*FakxLdK78CMz+62~h4Cvlxr&MMen$#3L$G2youEDpgO9VU z!a(ijOlvyIduiCVoi&0?W*jA8SWPPi@!3E&V>AS=2WlsSguyX*arbVsdrY z8V4yWnNXre6wbsQFdk(Cv)0gA+^c?u@!Kym^lwZlYADGB)I&_SsxQd8K>P`l z$G6CnF8vEZ?=}V1SX^E{&e=c^8U1T!})uDIpiEu8>otc3wXpsj;(5%g3`ywS&|23 zsw9=67ZW>=<@338PRa{V(Dlyn=|YAji?kdUxU_8p<$s3YUJY=~+NFC^SFMd1ibXbq z$AETK4scafgCVtY*c@d@FDYce@EYPsj{hb~Yry2_%nx)b08~!kc=hp1=M9UW%|1Gq zSJ?d+85h`zGUK1pL*pEMp^;6kOGl_Ly`p-T=3#FD=lU_i3}fZOChFAg4hmQTxZlx*n-Qomjx#BtVy z2O&7*ibM&S?2}q>6mkbzqlL_6Ck?!NucSaChwdyMe@3++oLpYfQQcNVO`i(M86WWNqv;zh}HEb1Sh!Ix$`01Cg>sMoh7d&ZjgwCQKH;XYK;CQaIoGxoCxjw?%&e z-;g{k7qf;HE1MjIU))JZZ2oBQsUCiXCR0poKRXs252>J4C>h3}RPlV8E?UL4DUWx?{IRyjnTDdZGXH*SMP9#f( zElP71e#||kcBDC0f>6L>Gri4;8ExQ7SzBWFxW6q{?u^rjSWjv5jan-~1JlN4hVAH9Do%CBiMtOS z_8Sl11((CP2I>-%~n#IwO{8|1s!;j z1Q+Th7#8gc8cH#))frYz9QNkSh5oHVtt5>olYpl6c;_>3VaZpo$@d2ZqU3}kfGQH> zWWpb)%k94$0C(pSQ36%)HVE!F@d4Ty-;+4d#k(j?W) z^Y^s2-v~RqgVa7YhEQZ5kCEKQE}PXE^z4x8=0sI+c((?C0=anM^QKgKk4+a%Dg^b0w z4Trl;slw8R2%=1JOOKcI%4(-cD)MN5Dt|o7?39_CJvoBN7)6=a$wvGrq8!|dF^;QP z7yYrKn(g}o3UanW);mzm2EyYrF{ z*N*91AnlI>!C&$sG%hdjF7Vav{gOv?E-fi8~3~tg;ld zEwNMl@tM}qXCJOU!=_htAyl3z5z(9{(KD;UnOJ(_KMA_QP)787PWCR( zbry9}iy%xn z2|QZ80oTtO5(rD*xs|#E@p}s~T$hL(aNeW9S>3m$9t??g?S?u9_vtEb*Hb))s-Hp= zHa`PkSW_3B+n!JSRW?VNR#7iAm|-q0F5GxkJ#?1!MjW_5;QuqyR$kd{(1Qa2U?Ti) zBdv>*_5UAfbJVn)wpdYp*Xr1(xT!bB?XTBmD>ZJeT`#Lywn%43o9G%tL&fC>GeI-} zq>D`-_q<>MB8%y4%s5`dLF{k$I`AV4ucoZp+4}&NSY>KxvZQTW7x`7rY$*6uWhf{M zsskE#$DyrZI_e3V@S*Cp05z&uZqvNxYZMi2_C4*|T7WD_OO)RT!FvxBF`!heCMoPw zhSF%>^6oXviFPc^W5zd#BMT=$Mha=;S0*EKXihq{C^St zXViC0U+-6Hv2@G^v1K!RGLSoK`){!r@u}%}r40;tz9_oSQpW8xoyU-QnNeL%&7-x_ zrAa%;@mB)REUGYb3sxK$gkYy$b|ITG1r;_hC=&Y@_IOqlDY-yL*DYBAy_@T6R0T9n zH-^PSo1@vs49Jd5OpogVUlWNhg4wjO5>h=RZDl61m6J!rp~$+Hd?Ky`jh#Q@cuQ%C z&u^iNavV7SUGczMJwkBV<+0o7J-9J4=G0{d|H=V+svik4_jMRH8w5$picjD!0VITPFwN11M)PE zWe@!*VwWZ0?06@5L^e!|C=EhJ(p>92gBN`7RUND`h-5FF+Sq{nWdxUUh+A8@xs?e( z6`g?I2c=#%)1AbojD=tYRncP1m8?8 zU{-3Mnja>gu~sH#Ww8d>nPgMFHW?4nnG$?ZXHx3yXAv_}B)PmqZc1S|lMh1xwcX@Ei zPxB6I?8wg1INtR@P{_$#fH6DvU}S_{o0xlbr}><$@~q$Mb&z~rr{mZ+X5HH>fp%v{ z`{%?niZudCmEmsgROVJUO+Wq*ZU{0ds(Q8o{C#yEBb^wUB~=D{r#CXOKo=q9bsPol z`P=^hPisY>qAY`(n=`|hgbi#lPhrx}$0gz`7UNL!;jaKKBH=H&@(cTgeyv|HBJygL z^(Nm1cXLf%`P^t7t-gNRpaOeT+$3D(UVO36BX^p)q&b#U7V$Ab(?z8VnbMUD;u}U5 z5MpQTaix;#WH)avC|gk!D%6BwYm^f*QqViAPue!)YoPP6BeyzHmVTtnGuP@Jw`0S@ zB~~|@s&&C-YnV*AG}}#Vs?1mOeas-#u*7x=8Y?Iq2@ha8rs3<0_wP(_J`ORgUfz@huR<%24Bhf4QASW<`-_XSru#7bm* z;|-yLcMV+BM207VGY&YDDi#+C7OPunvVm~9941JFp}1sXU8bQK)x2-nCSwQ_rH0C& zjkqTH&5$(<`*3|u<>B^5#M5E*%rq<-$#qf|u8I%rs8;CeXCeYmhEdPH8B==v+L7#r zOiIWIXgmM+oztsV67`?FTPTF&HM4zW!w2+GtdD$M(O8JX!@=X+im>y{_s4}Z$Ty=O z?gw*Y(rDO04ng9fNyd@24fUt!9Jtq7)YTM4v!tT1M+W7?NXh26Xd59$$s!UG8=Hl!hW3Yi)T#)vwhGO@Xg*Xr^m&vF5l+<1C85yGp69@ogDCk9h{+QtX#OW zf2ZoRTamPO@0`X(BXl*)>>2IZ9+G~IRy_4zDzci zijY3>pjo{r=;KA4>*;*~U3H--pa&%E|AANtAix@TZwzU5@V@Bn|6EzQ<&{jK!!j zcbD?R?4BH)kr!6XJ%VRk;bG_|z%be->k7;F0RE@+IsiFCTL1z8=zswL(Ee|v*U8z@ z#mL#^zd8SD?@7{}RS-S$*xfG*oL7Us$+h~rJ|8D}vaY5pOa(6sk&N~u_H&=!vg>;h zSFkSF6JpHWm&D^Ydyo$W^|2sfJ400m2!*0DDpR>iC|J2LKC>7UryX7{Wp1azQp(7E z>?mYSAjUSC8-smHi^*Kqnv@I>*RZQ&ldp!2Th&uwWe$_3(wHk3y}AXJcvjNU$tHhg zT#B&Zczk<2D?}iE%C@F@l{UFR*-yow3Bc_nJ@_d0AU&!^@&`6*oc@G!UDg!-il~4) zM3?}bhNISNlHdaI#uAXcAdsEtei@yh zdI7aVis3S;q4^<%kxdZ>7Pg|toqWgLRm*tS3v&uv-Xy3wHDv*)AJR}_!Hx8dt@CvNfC!@A5FbW@F%JW#agMfz@c}*=?~S`n{Fur-X@zQ#O0G ztq+z%wd>pwtTRuLTG+D>!K-J)wj_wqh>*;bbj;nDcbEt>HdI0Em8W@#Fuiju7&CO37S4KbaNzTi z)ENp+wGevweN>f5jFT8y-XFgY9X>l6pi-}-?`vCbm_+n3%k-lfVkAp7VwPb1~TfMy~DiRz?7+*_VMw)z(hWRv4;-$GYkFTY< z5|Z8=87G$RH!+hiH7W}N3;iTSYLNoIb3fd#c zyf6yn`<{^umlP6niAdfWsIg+h3Q1>T`Y79ZC{+_Ev$=D#bLeF!<>~cEXmYqtAfS1# z4RSUb?5%7nOSV?&=RrWrJB9)6*UL++X0MzO47({+=uDk3aXx$hL=zSVf9x*mpPGff z)^(K-bdnh8?f3hiy7Zco3XxOH+QOu8o>-Nlfu4wGo|@1uF;{CeM6?7bapxd-e88GZ z2~`21izD6yW|U^LJL>PnppQV-;gsn&B9O#}VbX z${iGBdU8hZg63%d%fNPh*|W~m&s>A9P994?pVzBbYp1Dct0i!zZx?dbV*c@+=p9KQ zf|vdiu*e$X*TTSVeVncQ3$k2$iaPrEN&>yMDo-**KVBudWG;65EQKIs`9qJ^5$x1K0uG19ryt`vlh-m2;k4s6m`p9 z15R?!IVb3jz?bOx-rDnf1tH1FS3u;-Y4+rnTitx;-pH-NG~1Me!pJa-;iZSSZ>%6D z{?0_c4mE|#`PZHgdNV9k8k%M2>&V@wtu0v3b9rr?!$ML+HS=@CVJZ2IL(dE>Co@4$ z{n@;#LtBG$wG{g`aDrV{@93NUQ^AuC@vbfq?-A-`AmEm_mb}aWm`+@#lgZdCW19|r z@`$oM{LUA-pR7kmOB**Qy99?fx8uZ{HKQNYdjL^DuD>bv^<3-Yxy9S_e;E6RVBwlz zT^F6UZQHhO+qP}nwr%s9wr$(C=e++ur*qc2o!zKLju;UYqmeb9_syy-i~QfEg;o=U z?}pK_kCD6R=w}#phc#su57U#?Vyu?{saoj7> zVRU7@6olN@z8Q=y|%S=XUidU*&3x_E>@z!x-Rs9o< zFib(}*zKq+SQ88=YqT;LD&^RO7sl1ORf^K~u!E`~Eh2#k$s`hL=sEVzij~U6(p9Aa z*ZaFv0EIO{Fj5=^FyVl$jk@$`NsWpi*-Iu^4x-=-xN*`w#>_i_ie2WWQg@hnW&{>Y zjp2gn9#fM}kyy23zie~unt(tcHiT&9jzq{ww!zzWnRBdFQh+!eqM*Qh;fjPi>5*iC z)E5LxG@U`MmT(tuo`sqdijyV2(px zHk?QxXNS?+#W*aF3e=WuQd~VejpnG=d?{JLaHiH7gmJ3%v3b)5+5~mn>4}F`cF(SL zp-Tj9gFy0Bu(q;#gZc^H60cQ4f9Mpo;F1J4ms8m6IFQ}@S%$AEn7;ckY3ZL?>|V?8 z9>qwGkrFbnP}~k;8U^hWFg?RG#!ut0{_UU*u`lH)@bcao4X|CSE?h$c_DJp!}~EXh$oXTkG=-P4!?UpYS)_vS78&?cW9BJaTj2;~%gp{pS0 z8urEuF6QGzb^2lCvMlj=2z*9D9;lZb5HV3>KsuC7jL5Ja@ScuGpkb>eI;Ja$`^zJ z{#N#%as>vU+bp{NM;8pa2B#G$qdFPWi3G&Gswtlj;e(P+g!z86PT zk#enf8_3B~%Fap%W79R+U zMG%Nfm>Mkd1p64x40#)9FU$v zIJP$uN4zRxA0I<1WbRN^v7QjRM{lS$*~8l^L$f$(n!r_FcbV?YAf-R?{t^GChYSg0Un&_5Sag4f=@``v?AuSjXM5KMZSG zPZjt8!NVdKf*5|51PXRw#Mfay6G=hlCQ{FLh@QQ~J4+H1u z7|^iOyIu+vqHBI~!Y#qxyF+4BlR*ZCAV^j`*)Hk_p=yv<-p9r$%R})sXa}k6R<~eI zF`#lGy9AHvwu<#c1A&3J(N;tyQaYUyNZ zYij56e{eQc-PU=D1L5~ppKu$#wR`}WeH#Y34ka0jPFT-Na&pQvN<21od4F9{iGugs zzfU~rW?T;A_K`Hr?dAHmc*V+9#EiX?V2Z^Ulx4#K zpn0}XNz=Z2zcyM9P1FmSaZ+N4WR@9`Lyk)iWk-nB3n_{GlPc@xBaL)@FziVXr?g&8 zWcQYUoYV&aYLoCNHe@*>9jb{MESG}{m)XMU6V<5Ad3yz4V5qx=)(}v?WQ;C7>hxxVI$u~nzcO;qP^RLk&p)f5q>PQ&v zqN&vd+2G@P%hBF!_YS8mjJ&SZQy z1~Fy}ms{&9d3%AKCIKwB33UqnVcEKwlzAmmGXeSn=*Q2(QUREAj)TL4ImbVoB;}a` z^9YCvjS|ZkktC?Il4Ej-{t}dZ^Lr)(vSw(vuoG`IPOR2JjhCOWf(UX7XvX&ZL4@I0eIy!M)%~KAmYgaDEw?iBb zzUBUSv1UK&zO4(z&JfmNehBvIT6v-S!39!NVEu!&36~mQ&&S#SR#T8*=-d zoVv{Ks6F|zgJI*2bmYF%=feAr?!SpTxgEV{ha$!UCng2m`2!@+IKT|C;6Igz!~Lw? zj5zriik1#gs`b0q$)6HlXjxEwn@$>Ilt(K4fM>QWnL&9NmT$)s#hXi9Kfow3GQ$#e za7ioyzf+7=JMgUMeR#3tiu5^Rey}VNdf`3rtO{2#Kjs}+_B=`^?c3k~(Y4i$A;+hI zZ6%)w+oB*7Eoh%GAF3taiueVJXUt)~PZ7n(<1^}vg71Ld^o4EBBqT&k^~h3m1^5)} zhn{DI+x;fHO>o{DViT$}I)T7PZGE88|l?d8mad`Y*M&4FhSkBu#Z(H9| zq)wh&T5C4Gt(QK8%e_hqyeqZfB-PK zz$axl%&ANS$XQTs6~F|daMf!p6SsIpo!ZT#zV@titFd)_aq~sF@m(e2&Lf#7Kr;id z!f)e(M_Bk_o-Wax|Auio+AFhc#QfEQGWGo{+xE*kRJ{${gmx7?#b#d^%mo0UH!*Yp zRV8-nN25Y8aIJx5+b1?*=Ut|lcHSx{>dScfi0=U8&RrW>8BFQj+$j2Swku>9Wt*GY zkJRDkVCW&WlQ`5OQOEKOHkypXv9am8qLlM_eB{JLXJyWcD7w)q&^Z}+q$+y0jxF^ARQ@~ug@#>oit7;mi-e2I^4bk7s_rXphlyxJN*mc>GA5n+oAiI z4Qkcc!Ds(3jqs@IfJ95kz!ibD*|D$nM@~*go0V-??$}c{q5lPw6q;r#N-pU2z?<;hJISjyLF*)BkLjux z23_Fk)YK7Xm6&s7UaqRhO+q82watY!F)9`8<>%^?rev(SP5e&S4=#zeY`g21QEg#a zeQGy@7)VFsmR%rJ8^rWHmE&62xwxu_3G$i-&xL{x;xK$gU0$01MS1Jx*He%2DYD7K z8m*WLJg`Y0CL!a*#9>#wE+TvQH4Qhfe)@e$NF{V_6x0f0P4~4g+`h(y)6C=@kNboZvHg>ZM*)0{?ETCi%D)E5;g$9v&a8k{mj|H)Y#I@^8dAj zZg}sUx7eEYe$*KrXGEM(dP(kjdHTjXS!Q-T$kI)+beQdN^5e@4GFe40B_^Y=%Kg8# z@Bumi1U03Wti9A{SXw0v8Z~I#(7U2n{GMN#s*9s()Dge^|H(X3%qgiZTVc^gS5_6B zDv8Ecow};%&8L?~lZ5{D?3*2(d#kQ!YF^)n#~*?pQBamGUuU!LWwALvi&1*LAHHuq zrQ7FS0YZDJrJ4>k00v9ZPI6gKTEX7aO;SlseGsX~MwL}bHg(6ny*7Om)nrj{%FpDZ zPZ8NpGS$xn!!WqvsZ4&iN>ve2o4xFcs?HXh^#sr-`mt|E??2H@JRS3>8-Kpqrm=mm zF#_1;FR=@x^!1Ee?Od)D0a}r8`g`ZH%-8MH+o#w)xpgua?AD=Qeu)TwXankwc^C7F z(dn@<7zgWQp_nF?O6L7k%+|3kbmsn=Y4s{JljvT#HbS$+p-HM%_w=m2_f`5~$$Bg! zZ%tnK{(EaTY83u*RAFDa$onlL2lsu}9}4_3V~CrT-fxa%pR|~x8LS3P#x%$fCnukU z@sI#fIW710_O{Ghc6HIw0WK}GN28jdV^W3flYcDr(o;2MHu*AHDZfPV~s&xNk3uA2g29g&!Z?_o6{Hf|2_&{4`KrLPhPIVb%oQBo+IzCdswp1 z`$5IC0Qn7xPjc?(lf<_0(3HFQP|+1JH@|}Ri0_0vf7lI zhj3RYwNhn)d@S72KqFn>Q>UVu^H;D$UV3dWc*dDa1wPiw%-tIt#}c7&L)bKuOPBPe zBu_=1Ih7WLqcf}uA(cpS0;Rh3k;PfL1z;XPcm*2hP@`D$cEo3%!b5Vk zB%+@Z3S9uNy`MVj4GdpIYV%aX7#4J$g;z|9IjMo`Nd<6>Vg467)vId3X#y%kWQ@oJ z?5H%4VPSt>XvkCzbE|h-?I_(kYM?pWh){YIZqP*ytuV4u&8^Mcp(SMLC>` z0rLqDrtO^B6?iI{tT$+_B+SEeJy9Y>9}eMff(^8H5LWbR>;A1Gsa9Q=>%hqIS{pcY zek=a{cyVjca@L^kGuliTJX<(Dj~N{nZ?4*@0|Opb5UdCj+dSgHa%*2B+ohl#IOX>Y z22fSE?bcGddMBAxB}#m8J0sa0m^todB&(?Zj72eDE*uQ)UQ3Q|$?$M2_hPyK9MF12 z1j0O6xgl%GM-{$;!Y!{*P6Ubwi|7B%@(oe!^UcDAHEbXUP#VrNh-n+$%=}(0aay2k zN$BYo@+vXwn`~1mb*kES{1gOMaJ&bZlPSe1O8sP>UNbKihby`P`xmI z5)D6m^UHTPxZ>=q$u{P3oD)o0Qr4C_*-8Sre?xF6O9;c-9YSYYJP~qs*_XhwH}L(H zdrFvvTzaP=<^7ynIeN)2ddg)^WW;y)+VZNrIj>4?|?(#@JQJJS;3WOm13s)ZyF1bhTdFrl3WsFmW%hngN8klx)_IOSd(@= zKhEH@!&Z~7MDjQ1xHXBzD~rv+Dad%UrNo#v`mzSh#o(qaDJaDHte@Io!db_<`fIy0 zSLgus)}nUZr%P8IhBwMm)jIS^-FdSOxSlyx-jHAZnJM$^xc4PwXToyp&MFjqJb?N7^11Q89=Q?jckVrU~+}D~1*_`ts5>jhxq_;*qfD>U%D#}$w zH^Tlnr9k)qqkK}{uu+g|7o-+^FnOayM_%hB8wJSr3F_Av>NQ=1ql<$>E0$~Rzn^oA z=f|eYts)$fpqXB!O=AeJSP>GbegKX}7z%1ssi-c2|aVaD6YX>9}2l5?a!LZys5uX9R07G&8_Z#4rt7ap8AYz~%9yr{jXJ$9G46zWVWU@bitS z0|$eTj!3XhgYNUUn{1~xWoU=wI=C){fcV9+fTz>&Q&`30CrIfV3^V^Jy8+3b{bxpW zbR$lu&G&XHPeN+NY+1^rw=4LT}jFyhnN-k}0RAvfQxKstv&wmtIP(g4(F- zQQKWT2?~k~nn*3Or;%Z)tnP_nVYXJFzz0#SKI?TUFP%?CM?uvXu(>cbAy)V98WVyp z@=e3M29O?~;R6`iet+Lx_If>@csu*)M}6HsFFQ}>@_Rh^A9kk8gEs}qkQN7kq6uKM zrC{#ojMoXxv(;nIRO+t2VPYoj1Bk2{s!*sR^4Vi>Fy-xgntk8TQ(PT^ng;Z7hiGg9 zt_F~%woX_^-$SaR!R8TMk1B_FT=SLUMEGR@3d%`^B)1AKfcc%h>w=}H1cv3KUX;t= z&sBd4M#Gs1SRFAxwP8@gJ;u*mc~^7K5*$nGlf(zl=dQvWwd3uk&sS#oA$efj))CFm zG-#@k)nSCsLvmRmhDpD|t>qZu(a$d^16#Z0RwNCM00F8gCA6Hm8<7Wv9FlGTS&L1w0@ zVURdn(bG80{ewefulq<`u>*u4(^DX3Sz^wq1x6=B8f8nJ*Uyy2%+<;qk>t#d=azxF z!57eOhP}hY;7IT)A6bvGI##actUiw(LC|3edWO9~$PvmdK++3<1ap9=&OmIW>)#=p z+_w2&qwgFxu5TKHFwwSqsO57CZlKRZ*${#IP(wo4DLbA2#ILexIUP0n(@16($Kv|o zlr?UnWb3+Rk`aitmhySmPKTLCR1lr1Nd1pM^PB?jSx+oM30gTUvhmTe{#6C(D0E%x{)gk=;YhQ`d=ZA#x@_5|;{ma?yV)h~eSB+LG8O(rZ59PZv{&jW{ zsBM+S3cBTwY6-7whmUpsyY}_j97!`EV?SfRkWJks`8Y)Ctsv_J40zvjEmPBdo3=%; zq|&vD4O)hpE3e6pMGlI4V;!+eIF6Y?_}T&3WM7fsH`4j%3}6D}^XgB4)QX~A(VxaVYXT@&E`#wJR#cA@u#M2*=~VjeSP8F6hz7@9ut^ClbStA> zw?%GaUwHWCO+N914~xx2@nsUS|LXn9?q?Syzc+RVF9D%-xN=n_$yWdrWq%Sqm#k@` z&Wc%DfeBh4hQ*P^~Z9wC!w$ z4!eihXW$aQ%Kp#95y9QXHuK2ZoTy~X|(w$t+k<^?s1dp6z@l?DU5`Yx$L zKSwzZ_}wTp#oX=uc^zhniT%Z0+Cc20pKW2KKR=AvsEb?_fIGS%9bEbFQv-XV|P~XU}wMQ9gejpfX7avU|iEv+%>A27@U;%@FKpR04TvDtc+q!`fk~ zxy_13R+Ag$&#vW%j;Al@@x591oIifIW2JDh@;lS9!P*AGT{+uaCRNpX74)Z^A761b zYZZy;WM+Gi*2r-qKBu)b90uZ=gD@ws;hGfu5{x$OskT0)A&%UnOODJ_L(bGiTD?K} zuym~W4bcZlKyVay|KI`ihj;GWJB^;?ATwJGmxcPD?p0G}^H76cA_WPt6KBJi0T0rx z<{~prgkPwEXFvn^1eq%=opl7vqE+T>pYLxZIpwCE-U{a9ByZ4Rs^HgIO_6}vS6X>d;bF9uYW%XReyys|w zQKuI$Zr*cZ;o|K6yH}9_3|wEjP^r*V*_+0IEk~>jqLGlvHRwx@f8Z7QFqluCx;*~b z_rrnhlH)V#Q}}{xb3fmAd8G+nnDwq-`|8_j^Dh6GSx3r25yNyIVQDX6eT{M{F-pg< z&^cmsiU@iBF8f+wY{n=}NI~aguynS-Gp45YSav*QA62GSC()ysd!oVhI0A~nP%*!{ETOG*{)&OPJahy@nu4HpB;Q6 zBwMSzAY29S^>>lN8@QuT8(#yfCYeffaj?6|EiXxNtg~aZh0l`?nagMcw+BYtE`70F zP;p8XFP{CSTQ8ri3#URK8j;=Hcvy0z+42id}L^7ff@0aFRIdsdA92P1w^W6`G zstZYvk}%n)tf&-^g7cJvL;N$G;x1Os$EjERpphI)@GqP#t1?rci-#iE_*l?9!Fh)G z!k`W1@sOdnrzcyYB&ZHP{~pm6@vtIRz^!f=@yE&QG6&|;mp!ItxE3)o<907fT(a?wfT{lm)tmLqj`QpG4G;hA=noKV=JSJ&O=M$Dm zJ$A*!GtSnnC^m8mVsyR5n{7`Y9AJGix;N_2Mcp6G_=Y1CjKw;Wb$VB^TJP=Hh0Cx* zY}%8x?E5}t@FM&{-EB>Rj^@|%{Dpw3V$?LrIoX{QM$TUv{^I(3Z>YKqO$zn_r)ZiJOEf@^LhS2uMPm6Fdh#_IjvD~x3uJU&KbJ*#=RRw`A8=v1>xCIQO^ znCNF`;6e+76&kG|qVPuml|L^7!&E_ON&Nty_aQA`=9(-gy`+Bulo2t&V7Yuy<4!0{ zM!h0!AeajeaXrf#)z03j&5h&GWXfojWDE;@ImTs150U5xiMVUFc_t_ zrq^_@kw#o&HH2$Mb2+4oc0+FCfK}y*E*|^Cfqwf?%ioC=R}JQpdTGHn+2wu#Wu~d*Yp-V`Fqg zdKo>JksI5JE4y+|;g%RZD!0Cb9+7h=_kS@?_R|TKNSe7%m z6l)t@wlgbyX>|bTs~02a>Tn4G`^I$}5xwBYhO>I!n3rOjdPZZ=8eJ@V53GAZ#XYZy zH5X{&c@6W~ZYyl<#+IS2bKg~pon}i&64Hv%X3v7PJ@@)lW}Ma(orsV*Vs1gcpUgrV zBk0K}$~m@k!u9eSmSKa~7p;b20o^hekcXa!`9&OCr|iPV>DO}1=h+Yr&I8^2M{HzG zZni&?AqLh1=_ck)_XJ>kej3&%{Ufz|ZkTHAwnKtmLCuBMg%*fOD|l&XG+f!lpmnZg zrz;iP#&D3Tb|3*B)W92k)m?-8sNG&3#Ir*9LiiAQI2p4+N&b(aLGpvHczaK&F$tQQ zAg`r0ifWbK>5So5hP}ZNbqXd~nK?#qAe_+zO4)3Ba8Kp)NGbF%P-vA8A{^toorj@X z%4$_O(N_1B!^+RI=$0EvPr&zP!U!ZZTE1|j(j_Ss>5+7n|nF#e)xt4tBsy^2Y~DBp;3#zQLCw(V+ti83b`p4p8+R zs5pTbnH@2?vOO=bhf`2s{OigDaKXcYC4Jg+#Aif$Te8?mN5#wpEHF4(KPAF=#mGHj z&FKEXJ_}cX?t|gG0Zu5vUi?1}u=5VYGWMab!a%Xx9VCCz#VHc%FmT!uL^`X6SO6J? zpDjvzm8D8!i{Z*1=?hK`?JI+J>+IUO)R6{-cbqK{TCvwRPK_ebf||O_|MnjckQ55{ukq$Xt7Uv_%g3y220#L0a1Xs4Ry94i{|3HgwN>fJ~>yh3FPM==``6NSmhHre${@5KG{uWI`#Mlac$jK_Pzup zwrQ?{MsI*ubF{VR+)3L=YTaPI>xG!p6P2yHT4rUg$E1I36BeqSIhoPKLE60y>`xl% za>LbBZ7{0V=Nnp9O`uh;DA$5abqeE`NcK3W$A=z=-I_|FLHv1D~)99W`7Drf#Va_-eQF#;(egwP84n!+T zk_xIZ)m!Tl_rFO5w4dk|LSNFU!oKJdGNw&36-{;V{T z;S6UxDhB5w9N*)V+c1f#bb&gvOJBN&bA{3%wXP9r+OMK6?bEYKQOH>68o$^{+F1+I zANJ<%3oRn{v&&QoKbD5O6&gB-5J!y;ARF*msF{)7Q5$oSkUP;y@=2|+R!?3R3LWeQ zIO5GF{3_RE7(r~T)CIi$BsN)Tm(4n>uA2JlYDmd8@iwHKR^3~EO1iBSOIA$LkzS{s zY_N|Q;!hnu(VEwVez(*!m6LOYLf{OhKe*IjZt}dog*cup+(s)-kYMr!K5gl6n-?~5u2#%mwz*+eTJ)5JV4!=ZDVF?mj^Q?M5^5LF<{C&UqttzjWVT{{`iHoFGI}gso^?H{oPejTJljSHVu{Ww@5sO z5JKl)d$+psy802`Fa&gv)T=c4XSO;5%wR|B87!;*2Zh!QC+k~XwTE3zYb{VRH4O&C zHYjf&d8gYs40H18o)yKyO{T7B)vTGK=3JUSU)4OTORs(CRmtpRqR($dG=W&>WJ~95 zw_5(rhzjcqF_5ieHsAC2zYeF}ns}tAAOZmB@d5yl|6df>Tnx?sPg!k;+uD9hB5Ci1 z8jA(35Gb;-)`rYnq|+72d`y6hZFF|_786W3nzoA>Wx_DItu^rPOI4MBT~^8OdUpF@ zR)U1Ds=E40ccqrr&5M*oJ1U0xT`rr%I8)RU+vww{o zl+DopC>2GNZ_}u2;WdQRQ_A2@jt?UvBG*9_ipq-xq@MsxB?#DobecDRbBD$8`_q;#Bq#x|3b6-Fb|yEAR}q-Z?-(5a;+ z3RPL2*%7hUfRyNLMT_4U+@Bxx6E2=_j9j13kLUYqAQDTdUOHn^Ae0!)AAh(gZ+>O0 z>YaQ}zN42H#Eldk)BV;!@bWe}0qe4&CeT{4>{jmG9(E4hYuZvd>pyKAhZZ1gm*d9T^PYtl_!4 zmVm;d$pD@nDDr6Ax;|%vJ`K@}-vSWLq=69_AOl>Zyol;CZArsi--h`fz|XlI3)V>U z&il@R<#htoaez?3wSDP3xw-wRO**gttXUU8?>G|WhNV+yIRhA=?_IH;n$BaloPyOT z%H?s=N-98GLLJ%lY19*pN(xB+6c?bJRGJFTGe4(TiZLTE6zipD@i6zhK*DTw>+^lvF>o=bd=U8Bh5WcgrG<_P|*Rh2JY}g zXo0;kxl6D!*qN2jWO{(`aZ%in!lR9(5gW%V#sqT1IdyQj-I&d1nlGJG-FujS1ff$U zKvPZ^1+|?3@))j1KfJ?z=Rr>>^PGfpnZLEjbuPqOt7;-tA-=Eqi^amgVZBd4dWCEa;u4cvC6nTC=DHs zzbQ4GREC@YDoBhzsr7JFf50P@4wVJKKP7a^X+lL;Co*)&yy9|6jZ7V<65N^(b;(Om zzc+Och=QVCp`GM_UNLw#$q-J8nIq@lx)YmdblOHskTQ(stzmYhHyf)%7 zx~o)q3s7)kHV8PvokRj7_x*(7^no`#SNEkmH`~`uhC@0B^L~t{d6WTcA;+=b!E++C zi=8b3Arnbi;WMem=c!H!RH6OB2p9HBlK277ko&%u9kx)y_5<-gV;rIh_W(*AVH9b~ z$55VsG3#qiyxFJwpXCW*KDfl<&<^_2LJ@IDJ{bEZVu7V_@%&3cDfPk(QonxIAY$Vv zI4A~%n9!6Xp#=^SyKBR`FyU0RKzCq`npRZ+>c@%laZYh_t}zZJ#FRx7Y*~aPFcBt@ z%wYp83c?Ckx~akI2S$whiu>y%rXU6L80H3Xf*8Q&W$}oci%pIZnrbN}mJrjhy!6t) zD@Higs2HfMMuHF0#VCv=VU1FWM^`0KjNHqHzhsqUNplFw!B^P~ zsT)l{?%^fqTu9MAiYlla+T;ES2xGDwHbhl0&Q2_KFixV+fCUYOpH{JBSXGV$&wN1M zvq<;r1pL#jL5^Q0Rrwi|0w&EIl!DtjVN|WL^{R(GW8Ek{$iy*8{sIg21!;nLMUm$# z)+A(>DHS-(wt-{dV>Yj!qzpLJ{ZgwMiW&WZQ5BBUMY?-M&rHmD?iRSs?Ka}3ts2zN zd$XDx*$ui~cDeUQpN>1&tKEvwjah?S!q$4x0JR#*^Rsc0gdJrtkD^Rmz|n9ZE)YeT zT4YGUoX?#~=FtlVK%o-Rn}WV=?cRK=aX8B;&Py*)XPW({%?b1e(#>$n?dt-rGjtq! zWB72pz8}^FYBdf*1VQr+Iw-It<|#U)uCNpHSlem<7?(wIOuz*{D`;P$#|e#slKKvr z{M8d9SkDH{p|!LTs9L=9>d1~MOhU1FRyN;lVD*7E8iJ!4f-DGB1Ue21*+Ehp5<_|` zu9R;z*x4AOpOz8jo~iErM7W#&K)CgfG7~1IsIMEZ;;v zrw%USA0GJqHvgV4&U?t!)7_#0D<1LBLEnG(G8r^L>Durbo8`_eoEj;V985L7;Hvl2 z=fdye`EZ8G!~b08i#6tsiZh$jhu`%Q9{Y7P&!Kes#9_ADxwr5S=7ty%-eP!Jt#){j zwam5WX&u5TMx(_{6l?@li>c0PB$Uu7-0_}WxttKb2e%9(hpoUL9bQjvSVX*9$JpSoo5K~jb@{b2dsj2h1{)zm2JyYC=4>pwgu9@;0F{nUA!n=h0l880`1O(MCX)&C310} zgQPVb9-}(O?szBwPGa(}4f-4zThLoTuky zpuxaOZ))Ze&dn`cu&}&M&9tPH5rCNZvk>@J(H5{op&0(L0^Ny>q(4byYljbGh>MqA(Q&12hxUk*fJr~3LG~R3;ID%+zKrh2p3dR zx{V3YF8p&q!O9Pea79D~i-15jA3jVIac#Xt2Ag=T>NqWo9@U(_2})=E!an@~S5;NX z1%T%BKjtQAZg~yVZcpULX&)(4e*Zu{a40>Slk=LwtGbFI+E(Y`kWrGbyeiOV!dh)x zzavze@!{t~S}1bvdHiQ>>mIwAv{pZbrAh?tD3H6ApcW36qHQ*B;7Ho64@YgxiAm`9`rUa0DUh&?} z4Pv-Vht8mKou8s=+3NkbX;mDIAtN|!O9v=lF^HqId*NJ$T(x-&+=&#@1CqKEO_X@+ z!tx1qk(GY$y0Tp=n5{%0s#37?_Ui$bu50PW(U_o!P)m!%h1-49rX9mG^pJ>g5TRH1lq2Mh&uTR1u|6%*Pd=x5)X)w=EcZ^yk-fqVJq+2aSs2 zifqkU9`23h&0JTKzmugK1I9diktCKBAP=l>Eb6vUWvXXta3; zT5$`-WPd-ZZ_U6x>_tF2+;S7(u}vc+TVhpGRa)hRfnq9DTQGA+)Q87On?Eq4#}Bn5 zML&Y4a<%c1hN&g4fR~EJFuE!7<}i%w#ft?k9_)2{-U`n^nW4k?hsy7T=^jd_e4w+L z*N{H^ZNOFaavDu>j2?ClD8(wwNt2A#Kpnk#XJ03sXj$d?oPg~+P^JI)@(>S8fCG=Z zZT(^)yqNbj^Jvw40PTD^DY~d~!^RzoYalLuk6L&rasR!lsI%LMdu!p=ACC5EFsl8n)-0niD@tA7{G0%P$8(^f4_vZUiD~VhYkRvRq%2)R70DJXo8giK znU*M-n9OBRUUCLLb9CnL^$Hb-t&fHGs(6*gHvC{M;-kQZ4-RDkN&Q?nf-r=yrp0=@d9Ov^DE?br{;6lUsNt_nh8?U+~rji~{bF(vs zz)6F#O@Dfjo2! zM+^%Xp?S?7R(UE4TB^JU5vAU8Lb@!~iOL#>d61MFFt@sHO?+xHc9JWqHy0*mlaTOf;J4s9Lr-#)FOJlMFJ0o2b?gw7FOAP0dR_JYkkIZ} z*HYj;2^t^oA$*JQ%BFET*IQbTLuID7Td++-UEzTtP+wclff8_Cn9_In3K*&=8)?;5 z)Dg96QYqOArRGq|(Y@{tMF^3oaZTki4M_JEutxh;teTMoNqFnnaEP?uKXpqkYSqu? zpRx0p6(leMs{Z1;tJP>0OgmpiSjQ27WYlk9*A*y=@&aW?6EKmIdEb9cSM>IoQ`?#;nMKS-GMJ z)v;8>##8v=nN6JNwey)wVsPq}T{%bD=9cAb0p^SkY~AgBCwD#Bb(?;(`@6_pv_C)c zBSsPajez?*cNU^=<*?(Wm|n9d0H&tdfLw2|ZR41s;M*Xzk&9NA;l+L60}3keo#0HBp$PT$ zE(ZEakeedOc@z9WVAP`*_{>2Rc^M+pW0@6XR|a)xdG}pMKf%; zeAQw7};DFjA6jZ|3##5i3PS$uCVckJqWG z2y{b%aQ*8G3s}ua$=iYDckNUqE*lKEw6F48$UJvGY>$fDN^Zac!is~j;u5*}R=G#l z7fAIva|CxcKy{@%IJmb=j~4ua|EIAd_;k)Z3km>WfdBwN@qc0LxVl){{6A;t)wk@n z#1MSX)MYLJh>W8gbihGDIt1w84Eh~{Hzn~@O0`z!a~Op&v~npaGVm23K@f|#uWlJ2{BZxVVw;7x+#-Wc4w^`A^3_H zh0u2Ka7MuqNkq*?cJ;dLO^iAOTEflC@8o9b<#L7w^C&50ZL^6KG^A)_RN77K2~kU& zbWbf1m{=mmU9UZjbfrusmbEE5!JM_Dj395HgOl7fbP6K(aoE$_Nku(06C)w`P*Kc4 zEQ?~*t4GN+FU6jiG{qFiq>ggpa{FC#b%>p{bjUl$btZLhcekXDF*O5@HfNSUbHEO! zJM*K0gcikS%yv6fteKp{H$0oflpGVme(xjgQHAE77I_x_J^Y%6X803;Kqo=+k$Z-c zOG%>2@f4)reZBs`it1ALhq2O}*8pXQNYPbxBdTOE0rVuP<{=hA({+Tzlj9$p-?w+P zwxbS+lC^wPLaA?0N_P{|ppI@cA5$v) zy70uCfB8ww96Mzxj1lWNb{15us+)M|Dq3uksO-fuP)iUXOB)*5+l_Q!yJ^Gsntd4} z^uhSnDTYB~h?oo<@FQ!BVf?`jeXd&EthguqW*&2+8DPg3`}*En=iagc%gnly;9Ol& z-H$C(UQ@(4cM770sL2*qsu+IpVsOP-C36?M;o^6^MP8k?opgrU(mfk$+>*gAc7xKc z63N@p=34ROCr|p|A%23XEdw?Q6uiSa3X-9zc+x1fl-b~RfU`}|LZs0(;keGAXBZbr zBBxu^$nZo6(og^?DzHwdBn$h-UK)IuF5A9^>c6gsuPwQ;2YL8HgAEgMtIyVTX5yf@~jDxm&&Na0<EjTKrX_yQQ_T5GEeGl5|Y<)RLG;;I$b5};oI7B5?6-Fd}_{ALtC!Q*`dwTJE z6lV|hOtzEpLA>cJOnrXyzaH5up#W~c*a=O2u=8N)Sk!GAu8+Pd9<1lund(q+k6=7G zU)G8*zUI40hhAfNKPU&QL(RDhEIcS*o&z;o>JgV7yF*xT=Y8PQIy=rN- z)n~jx8ZTQKq4RcOQGCEE8^^MCygzl$MYzC?gEY=^F%6-91(=y@*=jiXyh1-%;q>1JisJ$h|LvFJkeM`+ znvxxZ1hm}{q(AqlG*JbsA7lu^kB9fHYG^%}x3%eFo%|K!xb?&AD2mCh;<#)ci7C+K ztVtcWf{&c98^lF~F&N-!jWFs4ZQ-~>(AhOIW~t26QACVeEeXm zy|)3c3)aK@4e==>zOU(PkeivnL0UJ z+S~mfzhB$dd5aC{w@yEBo*lU{(bH|S%bK-uiRHnSC*7IHk?v>zTqPpNWEEv1DaDp_ z*1yjj9Y8c8#YUcKY1WddQR12oE!r2ng?Lw2Bs4>`5$T;|_1PcuUxhjN5oAHR=>i<6rP zne3ZReo1Kw47_u4k%(%^2h^*X1>Nx9xRELqqiSi)A<_9uk!ac}so0@LC}|npbu~mx znkAMxy_0F5?i5dClIKG9$%Rl#H4OYn#~V{7`Xn~QTts$nFPK_KRS$<;oe7Stwf!!B4==Z$GZUZh!|l$(7P9^F zRVF9OjA8&={h<$c__NzG_soi=R!aRcDlfYts~~ZXvxIQ~E}eMs?uOGN7p!SFEG1DR zkomH8@GA(PE)J}R$lRFzh4N5iJ{K^sxyTXM(X=SK3OP934VKo8H3G;d;GI}cdi1rv zRcPzVdK^_Q*I9i(25boRO;LK52-86Kq7I34MoAyB zM#@%cefl{$u3yN1hYUQuD%A&UvNwzvma`r{gwfFt9r_g>qf)>}mbBRh7(@h%y<&Ta zN-0c`EA>E%EZr;|WN2s$u;M(nk)Z)xlyE~}Hkrdv z*4m}gAqo_EApvS6V4kT$R!&u|V2fP}PE=-7A+j?4bQCUi>FDWZj=+gYi*SZ6tbv~0 zW=vZzMTHTNL@!>TzN0uCNw48?XDmTnl2gV|N6@JPP(5Wh)QC~$S=fFRcVacaIoEhL z`|3Zt$LiUy_`_!dWPE4-a-Dc~$8U3$ZQ1fEI`;iS<)HmUj7W(3jF@Oi1E>5ihe>qz5IThJTG{^Q3m8!o71l>$3j4Sk6Jue;l z>R=FscnbIHP!zNOt~w~9Z$Gb-5% zAwi4{dx1D-Kia_ec79~X&GJ{z>zvfok}G13Ci)<-FV4{mh}(aFY-R)d0Qjj!HGHK* z>YABcekqTPs0kqsuM~o0@I)%iaibQR8A(+&T$Kh>_U)Ze=d&SD#cyBuW%47m9qHWp z^}QV8fmN9E_AR7>h|-MgMc zVB|)-URCk95L6EKKg4$lc~V9DG`7?2{|6kwnUInBoqr< zS^(MU-SLG zcJ_XMw)+3K)jqEbg%7c?@x~ z*Q!f2PE{Z$mBu-`68v*3lzv%77$VCcsD+GNiu&V`y4!oWSpAMRYF&G`i=!qJFiE8IXLgRG|!W+XuhkZYS! z88r!s3SQ6Ja!W@Lvri!2Pm5%5i_`rTMgnnXTmq}C24<#}^oY)#o$0!AgdL+@GQ+DN zaG0xR;M(y^Ra7>!YJ7AGN~Ai$ExPhEVdzhC9%DGNj+yi=?bb2Ew^>b|it~0VY=d;s zY@nYxdel7k-oj;tAqa#4^u$j@@wG14V+G7zxh`uWxTjsS(NZgQ7{Yp9(Y+$n@ zIaS)4+syfJyImhk^(SMn=zg-mn{jcKngZv0D8owYM&Xk9uK7H*nV_AV$JglzJ}5Wf z(H~n(r|}`QcNTDq0S9ObaugU62Ju82gp`u)oqKXp4Y0v6s{BKm#gNkv(`_?#c+dEM z&aPe#z5hNgn9Y9feeB=D7m)uF|GKTKt70|3KxGe}|5Iwh04)3P3qap>g=g1?AGhzq3|_b0%+F&FhWfj5c0*e{-KJ+g(z73E!tG=LU%x$( zq-u6o2b=0)LRQXytTzsF6#rI1CT_KYj!gFCt{=U&L@X)Y*Q_qPh4`M&(26={e!`2% z<+q3m?Pqu6 zNH*VfE$^4X$#5Z7BYEnm`f{hNvwHmswCs}ECNVt2vS`N*kdDEX@kYB@B7mc9Fg`9j z+qMtD$-MGWn~2Y6W#9C)3bidqQSiDfErUzC+KBJ?sX>nU9cwQ4E@sx-lG955S!hSI zl>4c;_f3)f!nwyufpNX80~w^4U_-omUNN*8ZgGTk*k+Wr6mGcAg{_RLt?bY;=K?xq z>275alP3mxGEMzc^Kc<})fqc7@n^nU!g_xqUK{G(N!aB;F(@0bw@i7i-197s{R)f8 zzR3D{#Qj%}TN!tP)g|rDfWB$A*wX+J!^4y?yngJgE z+yqq=_rqSk4Dn{?!*+|ZOvY9)L?#g(dpfEqcKrog!-1>f9evvE$yzdsfDo1qsBHt- zJ%ZG;H5|8;R9i;4xrM!4vv#%|k>v_=&f$M&b}M`eYIN3O!r(r;X#u4EREHhxTJ3=A zb%wa)Hg}4&zN*zF|Mtx%jHXyf+`;`z|)-^>0P^c49Q9`Hyo_ne^SpWa;7Qb(=e zn~EGbYw*k}2k}p>DUvS#%a%W^>JH>No`pnBYorRc=;_*58QCU>N(zr<<@dBQZ?x{u39y0QmA&_FQmp7A87@BLrMSr2`A$`5Apn@YWVV zB#|zqL+;7auoMxPx=^TWTtx;~lP>)uE&woPqD3rrZdkcNup8wN>zG6dT|v7(06Q0z z6Q*=3Cxl1Yv+i=3CV`l*s|5JK5xst4tXA!M;-#@CN>{|{+jcnH<;c+V%;mkUSJ^`D zMl2iRhklPc|H2rnZ z97k6uD4Ag$e$pCssS``r6TDq?h3v{3pdbfCsvwYOuO|>Qlcu%{i?O#f60Fd(s2XOrtI|P=T}EJL4qM+jSyUUTLSP%&|*E_O(7sTcO#>OQRMv5Nw>7 z0>`T#U9cf^53{Tm>)=qiXRLq)zh6aiJ1!fx3=4+>+^9~jud$p#L7D1rI@{A#hM5o} z<>KWl_82VdbsmBj_O9@Q2=qCnY~XjX_|@4IGH0FBbVQ$){gVSc7sHGxTJz@U7@?c% zTbyv=j#<-J#%o;lCghyab}G51-dPoPB%URsqpe3EzMqIlH1WuVn==;?z#MLF(CB3smFLp4yHj2z_uXa2y8+N1#}ds9+M@n61B$OG+-0{ax=U2 zZm01gwn`mNcYB!aW=Ha1+VYM&Tpssc_gu3*pl$E7Wy|hBp6z2-iEVY=1KeD}&NuGZ z4SnGHc>O`@^>{#%KLf?wk0Bz`wq*S(u`1yTVAHoE>9X_uq24z@0+It(}3*zUP@r;XkV;(0|EcoW%Rzut!O z7KBHDEzXG2t$81J-x|>4G#Wg2@ts0jZN@`=zc65ow7ilofTQ0#;W*cZO95Kqo@WI_ukxmr+=T%RlJWGFCc`Ug`R zYwf&Qc={W5wq+XilIv@AHQ-kJ{X*bdv)~!=``FjEr4L|UW0^a-SZ{vstG^*gcrjM{3#|cwdyY@H&E%<|R=6y!Kdi#51uT9fF*&SX<8XGJw|^ zfL?(cqO#uOE^Br6M#mb56zt*xT(jPZaoL~rnlq(tHJ!wMd~YzDS)V-;(H=?Rw~7`y zS0R`;=v5li$QI}lkuy;TC!ulp40C}-vr~5{)NKTctBpvQUv7gAggP=(p82>X%<_%Z zMpiO2Dkw}XBM`8Jv`CBQr+{7<&|#JzVrn?{TRfR+7oL>&+D^~(W#4Q&0r3VNWgx0e zV4vM9E1%G1#e`&=^{Fgp1Z|#o6-4cU+MX8_6@Rh;U+oq?u4OM{2srHjHi1dCrtnaO zGNzn%=za!diaDb}O7on0T7g|U*>w}fhk+TjN%A{CQjt_wxi#vEa+VgYfB&y8Ia4b{ zG%Ei^7XJ;7|Gy-4F?DuvrZ+KkF{HQkr2Rh;?f+}@nbQ8huh2W2y0|+0m%LNcwBz(t ziWG9Rl(ZBRb90oZLJTkcGO%=@1mn`vvaPChZRBco8j1*qVNF)}1A8BKcq~>#H=@Oy< z$`0m|5Td5}zb0DB=~a#BzHF!mjFZw9wQd(2y?}ZvJ52~Eug^Dc)k?88DG9|S{Asa( zC=X97_j_FgSj}bCP>xHta_Rsy2H?j6&X<<=Bl+puf&lG%u|l?>7TL$ex?#t1tk$?C z57OoE?rW%4xisoR>OWllvFek>iL;B|pkGB9>0Q}&QH9U?3YI}pEZ z%i|x#;DOwr71QK9m4Ojr2dU6^>8<2u?xj>vV0TwtD*$O|PIOP>8eg6CCeTMiLZsX( zmG9?E`*>S#sud*#GCx|EsckPWf@5XW6d%lF*PV=i3&(kj$4w?WhVrV^{3XOI-K?6N zkQaOIRg4B=Mm3-!)J_{H_ps7~=hPKY#I4*LL}9U# zf`PQBmPy`VUoP%F(FEWFV?=_zg#c}SmD<&lGfp*;@u71I!@)_~Yy_xVf$p_VJ%Q3{ zgDNMLYXulZWFDKylwedOd!$k*-gK*cq9zIfHqh~HO6tW0iv9Z>7&0*VZB>F#pQXYP z>0b3<;bliU7}LugH3c~mpR%8XGmAD#&P=d}$^>9It)U^z#+_Nfh^<|4K|yAcE=Dhm zPo^k%I>(5VHeD+Cg78V~@hqh;cnx5)LA zqba4FY5z92UgBlh)k6K$4>K#}WrCH9Tw8NaVQJJz6iAl~?Qmtd1k3COGOYQ0oWI7MiR;v@m7;nV^<(Oi^lnaI$`zSWY#d`=kGs>)#tQ{% zyqN^VaA#GKA~aQr?Up<+XBz5$qGMmDarHA8hJhDqwt_C7Jv)Jl;$D3x#X~=NQ>rxE(tX%!{r0L#I|65MC?qZsb8pRRPs#lmQ9%eZD zd_&;^%V|kHm?nVHryav4WZN~1Vi<`-Yd?#vvmwoM?Yr`&?W0uJ@YYyrFan$Yp#f{l=ije)-LBUIn?!%ooAKrYhqi z$XP1lshGc63@|@sCK~b2!P#^GXB{oG65haW;$Uxl3F68&oITZVTCRJ6{;KKo{9eXf zM(Ln72l&!~#xaQ>6+g|D6R#$=EqgbN@ZOM0d2yHLN2_3Por>Er<>exGfoLW2JIRsR z85pttfg8*1aAbtR&jC|+1~ffGPIXPZys!xRCwTvZFKWe2U7zq4eUbIp2F60SLzhCm z4I4AmE*_1@sC+m4TPh6@^wH&t&Zv|~Si)qSf=YhU9wdEtkhvrM{Qyq5g(cmoV!NWM zL#*PEcY)_kG44wQ;o7AF{&QfsFL~OwP2#ob-1vdl~N>T)mkrooBnWhMdWX4 zqyUYUFS46{RK=il1f z>rXI?=#6ExID!53(W&w19CSKKL%Hk*9S0b$$8d+rWO!a;2N5|3aQgGn>F&Wf{ImDr z+>#GISpz`Vs8_=y z8}gmA-*`#Zl%0hi>G=I)`)AII!a`2k(w;MAj}yL;Rqk|Kk@fp#&T|sJUlzIDbN|3C zBmUGG0m+cpUx-+|sc4S1&Ct2LbAWWD=L{A}p|$-BY|nd3#^HULi9kRyXm~u%X;o6! zhaz{ET}@!0p*4<#vY22DtDr*o56?f25&+#<^x?ZAKMbR|9472EJH8r+Usa&(Hgz1z z?-4#pu0S`NltD&_$L;IO2VqRIG0(fvU*K?~4$<0=*@+4^(Y;?J3^Qs{?N8sGg4$o1l)J+}^Q|u9<6!biqcA zvS!luQ+IWj3tML<95P0KBpxg|e%&bg1ZSMS_Yg~Gj~t!((FAFnyrYjBb8iRU)q*xI zZ|kNv|Imv67ylmL0V6Ji4Yn*h>r}8 zdwQrJ$dlB7dX-uSoB#MNq##ka00PVo-De z`*cP<3=Yl&9!}?seE^0!7>%AO6Rn5cl{z|2?|2GQU|wv0`pWi7EJ^0Lx@^PqP+DMd zpK+(3^;GSCrrWx_@??dSa*Z6z2ttFhMf<4ddNIFiISd%^{SD=FU^JG*R4EebsVJGLc1mjz*qcIX983-??nk>G2kgv)1=+J2 z7bigdbS68viyU;TWo=EG^k;;lMVH#$m-axE5r^wT2}gmm9^o$IkGIqu3xThg)e`z| zY;d;sW0TU?xDOsXy3;8 z)$iAt>^9|j&aTGNbfS;KSnD%po``__yYTkc{S?^InSIS`i zvpHi$oE30_CJZ;@zi|!AYl|D$3NOM{OV^-?EN=1{sEBPuhCfi94ZZfTo(0~A zzyYYCc?9bDlw^UeU1yxrkdXUeEn0gKG>mY>39vo93t<=@>}6j8d_RR+4EKk$oJL^= zKLfSKq2U2S;{YvZOAv0Hv;{sKHj^ucAxDEnhS{p#(kGBIeFov{;-G;1PqCKO?cji7 zLSm<4T*%>7+IqyXXP2a%o!eAI+_mi}rWp)->6ZAyZY*jnrUAS;A!st%4X+f0>tcup zB-2?8JZ%oV)#uSL;0BjGFbOrVP(;;7kF=3Y*6*lSg=K*T4EASSBB-L#fHE6psEi6q zJ&bGMk!2kd@v`eo?VwmA;PSI^sJIBP;9D;i7_t@z(V&K;S_J1ZDj=p)`LK07&})1~ zs?*3wA*3MF(F_2Xrjg))Wn^v?pyV&+R~#U@@u_I7BHg8yVS7EQCFH*15~8cjIk0Cv8euaMcHuh}pX5taUCo(}Eg|mjb9^ zqPlgPwCFfY>Kz)Tyq!Gy+&Q zW&`nYs!4~cb5weYp-ND$@ln)Ne8;0x<_+!(*+tWZVeMf=gi%vdry8wJ76LXK#va1e zt#q@IF_w}_U|Cf}vSNSwe^0zFRk|p%%P;$XFf4pReC8H-i}9c6OjrW^kDpCo?9+Jr z@!!4T!1!Ww8JH<3PLn@?r(X#1`YATZcRW7;tNjdLST22L^E%9E6M_6F(cLQNp$KDk z1m*HT2eh;*7ypi93?qY;O!bIXAI~n+jMm;g1!q#d-~+WGXdaRHp90x6pLAx}PX^hy zQn6Q`gk04@5`2uXkr^q<-Kfw?%jkNj`e=H;oW4OE;1sNaSTat735fkSV`V7T*d>5OC5);Q^yht_w;c63gK+9 z7jZ&;@~VyE=Mt%8QCFLKGqMzgu?&*u34<9g8L{4{zw*RjF?gWlTfz zB8C;Iw5NwC*)|&0$tKBZL?oPheKDkuq*^QwUCmZ?a?G!fF|-dxm*N10yCr2lCP^aG z6u*|RhrM98Ff_fBYF85W&H^=38!s3gg2X6G&uuVEE<6r1pre7#}(6%*pt>MFVY(*p82laTr#r5#!s@t4>8Em=FgN}|+ z*CQOS$vKu1bUXCy$CoQ~RcL|%0HB}*0KoX47-HmVX=9>qYwBY7e<&WyI)1zD zq00}n`Ii84L;2&C~CQB_s33NbwBCq3I#ZxDFC~qYs zNsdu6B&1qK1+~^$=@AP(DoKRYT3D1xD=nlQpoyvkVB57fDmbe#=cGee6d$uY?SWU55oyTHxvBRU-()IIe|rd(5)+FEmVUr{^-aSPP>EvNNq4%tJwKNUO-JP zgOhqc5U9yX4@GA1x5Vg1?>J0^*ox%4f2(K6OQ^RzKppHRZ#9b!1j|ALkZ+<1&Go>s z_;q~T6#?Oqim<(gb=g(P-WCngb2%v#{Rp^+pAJV<#DbTbO`B6Q(LIt$JYC8Pt@~fP}`BI9nAGX);TwU*dFnSm$%|6fh7xPf+zXR60K@Y87i}d zTa9e(K{X1Syl*$RH4eNMJMb~^W>^@DhCn%NDh+6JDW~lPr_Ab^m<}C3)Q;IP_;CpQ zFF4Fg1U)lK_pTswJL(c5t`1k zy3mXIC5KMiVdBa+GPd4LS6cdyZkXQJcA5`&e{Y#qkI&)TMX$fx8kErd<%hxKtI2CRoI7z(kMttVVDe0A1vGKZ`_Gk!y)% ziH2rPq?N`f^lV8J1KDJ%C{r)sL>&82uRbtxl0Ek@J|`l6ru26D>?x>qb5AOc38`yZ z#IIqM@W2hnJtO5O!C515rh$&RNUTwv=%%)J5{%K9OYlJA_sgtzYb=ldf ziVzwkQEieQMxZfJTzX!Dk-_#K5{4IXZ5t!ZNHaIa&EaW0K5KYuBrY4n zj#JeUCpqo3D!Z*UpMr>pG6!?m{<0nK>2|I4PoTwS1;|eh0WFU?4$nY<{gJN_>X3^& zKeTQ(=v6FL9DA=UhN05)8cGeya}?qOg{ZoT`*|fb!w3P<-2{tg6j@_NLWh1PBuEf6 zNDIA#u!RV1;9=(jVn^%ssy)>{11{o(zNIE(E`YduGMPAgB6*$z@WLPW7)68F(DO?k z!n^sbLft{Gm%{pPe2H`723M$eGw&8Tp#LT@R4=$5r0|m%Twf`!BdX~Jea~w}N|oGg zN%S@@ordm_ujhM(QK=>s`0gQS*Ig3GDZm)ERBsc$Vt^V&7!-BdDq8COqq|i5C*tU{ zOl$osLPJlTEl&f+VCa%wL0`5?A`&;qI>6s3e{`Zy5#V%>oXWR)s8EiO*>C2ecWzub zOYD1*YGMIl>5t8+gdrfXKK~9wK)APpP#M_oU{Uc&Q0xubOguH@aroq$n9w^=@j=V* zJ33q|VdD=r#l{;{D*^SJ1LP07x8c>lT~Nk&+llG=2$sBf49T(7_v;JA7YJQ_M$!F` z>1H!^o)yW#voEq-E1$rjVl=>nDw7bDR;lmx-)nRC`M)XDF%<-3Mc`IXp_5xk^^K{o zD|PHgQj`JTKK#QQ`8;$vgxz{FAq`tOa}QftyG1#f8RRd6EG`ofw^hwz#VWR68g%1~ z{fzi&RNRlpu!iAU5%PbJTS0n?#F%aCF5TB=4OjEfQ1}J)><<_HF2(ek-~)(WiM=ow zU~t;2co@vhuqOo`)FeU6`vn}Tfj(*um0G&m0u|tv>fgzghf)rNoHVksT9RKrwvw*9 z#%POoh1L}Xh#`4~DWR*2LM7J=qZB8HUPh>#z%B($Vowxd{QuNqP2Q8gA#s7}F6SHh zUZ@<{;B|*=PsGi56URcN`uSH;?EXbw9^LR(a)nttV8U5On4C;DAM5p^ltqqf9_*a$sW$l3ZR z3bwQ}f$T)iu*ULj85nQp-`*YIMX~*j*>0;Rk+&x%;BCcX}Y z6jKIOJz0m)g9t_2E__T!>FFb(e*fZ_6>f+66H`uDZ&larD}GSqT^ebeOyp3xvKn2_ zXskjLVs$1{Y{1To9YA8;g48xi>GEjNx$QEAiKKTI|l1QHX zsh--~?msH!oi8YR@T_}*6eI^{Y;$*apuhhG8Yn%u?k{AfrJ#otA@)qrnVTsXt`qfr z5uV9UE`rZ$BTYN1?B2%Gev#rNrw^~6+n>l=Hwdhh z-_QzW?~+Hj4j7v|qm?lbZTdo)t^8g|b?#=c`N-yzz7(fxCY)&K#yE@u=^V`k*ZXnaq|dCsmq{)mI^;XEY;w5$oty?_%I8foIK z?W_uO^qqn8x&WHySX+Atu`}KA@Z4JcyS<_e(r(c^@s>l0>x+2pOB|@`78qv#n%K%?kyR5q+ zARFXdT)6Gg2{^;G{#ooNPJSA(i{pJY0HgBa?FM3O4*+s@QUE&vWlZ8H%}_}FkP-w^ zLcinpc`^!$L6I|^D+dokXv=_^8^I+F2#ZT7r!(fDGnnu9CXEJj5Ny|)NHipgJHzB4aHCk36AD!`OQ?}J4iY6-2-Pib zT(+(?@eoZGK@pLZ6$ae~`qM;+0&5qTs|BGr0wj|#qXR-?Y=ij%T%qZ?v;jZ-94;uK z7A&aMitK{Ha~)2lMbgrLmjf1R5Hp@*JYMO&t#2RmV*#&UQ&$TJ`wBL30gA-{;;L6j zV-p9t$X>tq`?3>W--wlqixe=Gn~ieGYUb$#cZ-7bG%{;Sf<@QC0_%*Z8w4v?lN~&5 z;Uak%YSoL0Y0Bjzawxe{4|cf!zcvNFgn3!|#rzin00N-?Pn~0IV@b=*L}%(@dfnsi zqcXC>;lu8oyiJn54a$Z<(hnrKP*5bzGDX(FxPg$eAC?M>n6yv4=qgPc<_(As3369A zGt-dTwz*lpDb=_Kp1*n4C@b|IBY^_ed|5Dy+dM<|90`U z_VxP^2LCp;&CF~*o8x?%lgZq?@^-r)gERJUufN1$$6x-(+4=WV5B+;4^J5IxPJT3F z`2`!jm*W_x7^_znzks ztC>JiJj;BX?{fv`{rK12Tj2}k{hQc>bUVjdzCk{?(=ln(-t1kaYx3s!de_)BkO%)( z3cq_d^sRn$?&i2{6r32{BVr|X&xX|mgNfq~qnCDWnLiT}&AC8f!^>ChpkqZO|2WGD z%hk9Kf4({hfavzl=VR>OOz*f|;~$jvx212rr|P>{TKvfWvqQq$AQ|NSvj8HruJ$X1 zK|NOcuhR0xchUFWU}fsKZ0N7OE+p71m;J(E`#^|ht{{Emi?-vQf3N88@9q!UpS7e& z0HPDtHi+3lrT19#l$J+D+M?o6taxv~?24IFj+17cWs9@5sDFDv7QU7lBUCMmVa(QsLdNw=4*!j^IEQ{C%=Ep5#Nr@<1}lA5}hk}Y;Sc>YLhX_6Y( ze`6c2fD>jp8wAv5Iu_S*iJJ;mNBAe|->WUUOn)o4_Gp@8+mKa(Kma@ahH?VM#=c9Jhr^(f*J{czBv!+G!@MlF>=3MlCV-4Xc9~^=P@332 zufdmFN3!s>Wrkliw1*sCS8{Wjqk=+MzO!|wPI~fI{A362dDk}Dt9nNvEtw7ccYFUI z&-s&&J2^?w{5x(W&-;&RV0^$)IY#T+stsUPz}F6 zmf^i?ZWzvO7e%xsHqeki-UPTN(OBYlRJTjE6)UGWTRil2UX;nG#GcV_C0H?$aCrV{0+s+hP@gK^97>4FKAXNHLvjuOaWFY@5 zxx7}fe(O5OY$S?t@cpyt_nNgTK1~IH_Emuan%oAU%k~SfW%~g^gc?o(Q)-qvfM?AC zQ;7&bHmdXO0y1+?U)}i`Uhlv#ynVJMrbnXz8w^tf~pDh5OBJaeYA7hG}0??}Q0Rrm`E*4wd|VlQjoPX~L! zP&5Q3Kq%%F8rP+${F1_#K8|8J2LYxJ!-4K!a!KTOoDSx#q zQ1~BImQuOYqn{J9^6mv;`wW;nDVbz4%0@y<9!|v09H}@8e7RVk3^Nwqmu*;69hR5W za>3EhDX6x|HR5v-kk$m^MCnSYwPgwQtVH;WfG^B~<^s{la_(}S$c-1s>8dW)u5H@6 z`}q-uganOoQ#WtcjpM?n*OH2MfmiM}T`h1-w!Re$X!e#R|9rq#i3=Qs-JBGuHQC^ULWrxP zJ3_7-5p6L#k4Tz^S5B|&GJ9+-P*?lzux{1y2mnDqzP~)iwfQ*#a$9X9A@)+btV$P+ z9xXdOiq0^v9)Lrnl#Ei(ZX~v@3w-E=fHGTEE}no68L9Ql)#jLE16p^Htg^JG{~rJk zfbf3`^R}%rX~s{)ulM@P(^;~-@wl$YQs=|NipAP;jOW_c_8r1&!@+<&*LX!*Ffzs2KP$^0Ip8=s=en21c`- z1;vQLAiPGeYfDo)49PmBLNIA>)*_VQ>;`lNT6JkEv%;N zb;$kD2r;-(x3n16thY5ePm?X0Y=+MEYuMe^nJC|RNp7g|*v@%t)%uvdUXYqewaM{@ zoNli-%MV9W;U@X*^%hLXlUHFvo>XVA&&LF-d^aXor7C-Ufjr+{KTDnuf@2Fii>F9w zRh5qRjr}e2=gCEmH>7KnX0uUz>}zO*KLwERYc+J{wM-vZspjW|i*jqacUp|%ee9&4k0A>JJD97#ctPL|jfyNP{fG*V`dP49O3)xyI3wGJMaSaG3l#XQG z!0NK-Z+ZG#zW!#_-wO1%S@=fJPCB|DMRmrJ8ekAoZNU_HA=SVqi5I{bKAH#4 zObRPq#-y_7WMgANeY+zYb+VjtvAt&#Dv*R0^OCPRDov=-@25q#0?$?oq-w32L#ll0 z5}xEZve!*2GZ@+0GCE8c}MDwiSTheflR~S1zK?(mcv78zjIxR zY*DJ#r9dTyXeJS$WG9awI~wW_@j4pH1?2WnbuV3m;^694_P+={V%Rb+P;y%7g=@MF+%K{lOev)WpwHy7&_I&C3K{^wWdK~? z4!#4F7KD20>JlQQT(E*n+3QX6WSTbt>@NJ%M`QZj_@s#tt%ky&cg}lN7gb$dI23yj zZC97O)71?HZtZkkxC1kdXKsyItL`Sfo6?D^t2Hmm;5>BITpUE9@yXt0+TBCy&B1eW zx-H!EZ%{z3GRQZ{p-1CEZNoz#;ZSj#Sqbw>ga`GrbY4wdu5NRG1J5P%YQB+gZ*vd9 z^R@G8hU95&ZVjHz^MDny6jz+LH^-X}MHh%KJ2mm;MOw5Ho`&FQC|Uwf-@wy1(Ocmu z4o~suEWNg<*k*=OEc3?5W@nk^ireesO&5SE0c-JPPJB6|FcSSc!@u@53R<;R%PoKr z3rMTwTH#?^C#G)GR(;NK8`0DJpfN#g`n}sY)&+l@i$i%U@FacsMliQgVQMF!ixYsp z3NWel(jb4XZ!WyTz&J~PPsOTE)F*YOK#yRLvifHO#Bsks|DKNq0z8QMqb!BqXckF> z0#cwZux(|bsW)i_c$qegiXaPSk`p`%Fee#|sp&!zMk(D>h$H1hAKqzhv98`SSHr2uVo6!FKPWaNv7gQj?{Q#hp?#E*5q)9$}pa*W( z%Qb<&n}Y5xrrN^5zIi_L*O2K|3utD6=3vv1gKX!@?UReaN)iLFIuPUEco4ZxHOZkF_XU9NOE$xI) z_B82l@N%bi8;umAElPi1h-yH4FHz`kS!$xNUluZPwKsRmsdiVFl!Ik9p8>gHHIU{r z(O>!2LG$;oMjAAN>00O8gzpl*-;M7{i*_nH63u2#o~5!TLc2?@0bH@$(AM9fL+%X<2ChmynX>a?fZNNG$;24q(;Fmetf~1efhdqvJCjS zH4i^eRQ5}7&)HzM9ksVocod(CsMXz3UU{G!T28$S7<<9!lTRN){-nx{Xh1@Onbxy} zQq;G=SoFhe{L(D=Cs9WnWh{3N2-vRYmro)~=br3R=QQ$Dsb{_7$pp8(ZV*PRxOaXX*1+2hm7(#`VNp&DZW7#$=fe2psTS! zXv)@i8df9<+je2o@LbgEsw)nopGnufwWJwM-%#jzkN|b>9=sknkJsRScI{=?5KtQ1IMU{R*OlW+7@=>A3dF;&vYMn2>>}MlLTKx>uA-wZ*U6WNG8Yi zSAwVC;H6Gr`no@&gFedLM^B&hMut+EyT6xt@hRjO^Ywo;+Sf-%|5EBGUq6K$LPuW= zeg~*wJL)(q22je{#;Kt*hr-FCHE>D{Oa*+(l>-RCsm~sUo47p-(%KHq zww5g4I7U2pNIclG9EL@uOSJWatI=-@iw6UdO_1bIkHq*oHTWcCb40`+{4N8OOhNFk zw*qtsDF@`;!HCRAx0jK0FC*q&M&!Ln%$^O94eC*-Rk~B5M(H+%3ewD~Dk&G<#9%E> zw}%j3=(%h7neSOJ{A}p4;p7~9Zb4t6VE9u?PaZtCT)sh`4K9)1&tz-dF{BljR>~r2S<7XgRMB#It(4btd7~J-Ur4rxgQuQ*5X`Yw9$%hF1WDCz()0dT4y0q_?DSS<$L z!TW<^;7z=L9|nKC%VOXF-ZzPXy?9?P27Z^0(BJdMDH8OW0`87DUdg zlctjp3SMaM8TJu0b(^tVuQm`C1J8pNzXIYhfas}C*BK?YT6}_nUK9h5;PhS0BR=tW z4qvhJ6M4E`8~vz9~F&LFZPx{^Bg>x6RJS$Bq>?Sm_ut5TosW^(=< z>&Gfc>12I{bCNy3f!6`1Am#vl#UOh8qxwnZMt_zwM?Mk83(6%;PJIPw3|ylFnvtcF z{G%Sgy2ZfndGK|IQlc^u(4{znMtw8nn0VindBZUz$a2=G5ZT=;G z{B{-69C6>mxZ8*A3_}hvXntyyGotu3k5`U3`sGLkKNdeqMO!WNcI;dX302Obg(A^UfW^?RC=z zG<$pA!b$nqI`N4?*5M!H#Bb~Yar>(*{X60h=c4%(dr*2p zj<$dkHTNZY1Lq@`k=uuHrtjU3R)iS1`Ld?z*{qUj4GALStx?mWg8rzcjS!~i|L{ps zbLv%OqQA%z1|le9V&DZ_FH9%3ywWN3yo1B|n3l`mksr|6iIKO?&YriV>FQt`Qy#nE z%a#R%@#VITdIMT{Q?fvs8QX%oMGX%9WY!6#?nO=|XQG*U!I<6Fk9{Jj!B+gVFs=r- zj|ip4bTY`1#;VYX0IAP05X|8LQ)ziV7)hl#{i&TG2e4hr;rwl%p@d0RU1;RIM2Q}) zXf=Z8=-_pAEe8$t1>+{`q>g83B=-D`ZS~G8Uc1 z6xNQb6jn5SQA;r=r6TOtI;>uiasXusD83TKgkiDUDc$-4QcKFvyXwYh-flzkr7)Vc zJ4G6!zgYF|L#h!rY8O7+#jcpDvw=yTpfTev#H82bx6*ZAGn-#yCI~q&@-Y;`Lg|LD zlbHo@lJzHE9$V}2&(Y!NO?nB+0aRI>PH$;VFudho$lg)I#=bNygb!|iTFBK0I`(OJ zsdQJ;ZAA$!E6=jCM9He{eR>3s>OT5a9})+1b9M6GXuiU%Hx1a1^?*Bp$uR({OBimO zlekKVt2F`fSYHBH)EAsIPTPwQlt&}sH!Q7=umQKt*vdv_4C^4FCmC&!soPHUd|jD6oR>UkI#*s z<^!NRZJOE~54oOkYq?JF^b#(V-|4r4VJxSi6XEC-1Gt*E3$0tVXa`(FtvH@U=X5xE zP7$;YXKJRpN$7AEa2?K>nH|n+;kCHKITzOkNjB!&7Qq~jNYn8(_U5<5KqhjV>jajK zUN9*RE$2hLLv?i@WPn4PQ^-)KtBc9w3dDzgmYVR{yrjA-WMam)YEV)UA!}#{!{~-l z7%8g+u4Pq0OA;kzRWX;uX^in*$DyWEnybrRiupG`8%-nZNqL})3u;@wM_k=R06RhQ zDwl?&nl>Xyz+JlqIjcs?Ezzf?N{HM=I&cB#)2We9(~NWV^)ATBscF!emAvmca7#j! zCO2)lK}TK;U~HOJDL~cbimRKqH+OCRiR~P@h$R%U0@BdE$U^rbtz`+{5^d_JM!&9q9;xvz1i`(S}cY4@aoMjyCEGoY_10xOR@h=Vq&%=`+ zT=%J;Fe#0rkk4WgJLemH3L!XqSgWZa=14xp?1g9l{LQex!@P|(+nWXK}xf(nKw zEq6Ik&(D!FTJAj%>_B$M|Ak#1Z!PQXTU>G5 z>u&V{s>w0piYK^Bb;Uxi-qmPH0f$xhu2!@0v97VPVFmf5z9zZknV8tm)8`h}3$`LG zvzDZFxHM2{eau>Z)Ql39O_uP+w{50kdiGPmd5MWs3i|s|e0K@`PJWFT9FOX$+8kO& zRZpC(FySgd^#x^cNNNl%;zIliviNaJsN!+6>gok)cg2E7B@20v7C;w3rG{X5vvcc0 z;);F3mcm1#*f*#QpL+7O3g^0Jfo`{L-4$A8pGG&dGjnbZ{E$xw*yYmOvssP#MyB#kg!O) z9#!}%UE7SOR;;R5%Uy{&hMpKipQ?`j0#e)kX5S9PW>Flc+SU4Qzk&V~3sURjeq*EB z+~p|60FmZeG7$MRg++oGJM4K<1>yRgCPfn6)L)v2oH1&yZbh?fp2ffjpQeX9R6w;X zMVp&Ozro3WJ)k5%ZDI76S4Xy_GOP^r_LSju9S_bQl1dXf((<9vcCO`8itKzrKzr2= z(p*dC7sg-&pIz(r(g!X<>2CUi3bsJu=#)js7YIKhDqY{Gm8NLAvczOn-q0E$qq2sF zal3)EuNbvN6zrEXyc9K8UG!!z-K^=e+Nn5@O~tudCsb?k(s&GAlBXiNn*1`IEZTk3MKh#N7aKqZV2A^s(MvDAW?VW&Gu!2JjPA$M9h%rQ-J8viS}kew)96*us?22e3FeBuJceU zMSrd`8n6MsbtO9DB`>XJm9!^2U@T)O!2q2g8HwvWee|;46TjowQk#KJ#d2}E1jOOB zl-BI7?ef&I`Ba!XJYfv(Hegyt>bjzu}_g_Gh)!c_z8D*_ZJOil4LA9_mfKDZeC2SNCWW2yRH_Xm@u|f>`hx+q zuq?K4&pYVN|5vq%e5J~QV?Z|A`YV~9P=>lTKA2QocPSmB@@cOs76&3mdV8_1%uYN@L)2t%u%rj+u3izsmP{{X$ZStww|B3?weLm$pEP zWb@J=Pi1zH7;Iw8KW6kQ+*+~;JuaMw2VOS;258OIwL|u71}CNIFa+!!Xk$CGBY41& zG~*B&=}BKBei@Dmi9pvKYs9UPvUQ;uFIK$F!HW|wZoI6*%ev5OI6t#UK0%-)7|Qjq z2Q1bl{G7yWmkTc|pNV*bF{1Xe^ol6;9g7yjC(P;7y6YfGaHW-o>=PVYUmbL7IsAf z9pHhye&B)C{qO;XmNnw6NT;it`C2n@&5a{mDGaz_DYJAk-i)?zd&2O?MaAKTwr;ux zibw`lYEW;r=hg!^sW&pvZ+;Yn#~&9kdDUYOgnKw9-Z3 zB>TtLv4{@fPl29bp0|Z`u!v9SaNzcKX<{2UuU#7FPieF_o5aU)rMxw*vLkI?C8@TM zh~o{(Sv*lH0Y3$(waf&HA?~=m{*g9w>-b7%ah^=wHFP_u{WcKdlA9%S$x6wz(9vvK z?`1naSTJ#-Go7C}-8bK#S+EK^Z%Qcwa6l3REkqb!#?{{2(e@jkhxSX; z70OE!6q+rWs+d6S=W&zD{;}+evqA0q$MDRR_STYKpTU5$Goi}-S~o3x7c^K{+;@aT z)Ga)&CvP!DJ~U@VLR-wg{q1jG!J&=?%I6op^%`buvlv><&b#G-(BqTg^&rR61V~#V z4>UF;J0?H%ily1wP>^0m$8-a)<@x~k*DxPWS`4xQtu>H}g70*6HubdyzW~sVASPG? zVd{+HT@BT zl+&^}ZL+y-dny(i9fS5!E+$zq2?}c6o`&R#3LOFVz+qDlM!h-}JA>U&&ac?2?)B`M zJcZX#AO}AiPlWEZDuWX@npzg;KrJU*4q2n3a(Uv$989o6!spgjbJW7M2bxWDc8n-H>$gJ*YFXR?46FTW zv)~w#b6_;zhyF{r=ULpMfm;LY`=6eO@lrp+n!zgx&nd-?oK2r?)95$2K(Wq%A#6SD zc{MI^?dt>q-pnWmzAkR=a8Y1DCKs4w!)+rdYoYRd@WxtCL4~L8zG|Rf7nC~8)1I|I{_q+AJ ziQdpwiLuYK#Fyt|oClDstF7fp_$X93CPQh4g^t*U&%p|)tZV@@@Fet`=IR1VSZVI! zp@60y(g~<_mZPV{(eHqD=}%M3O`&pgNPPy%xpxh@rEHBlr_AZRQ@%(p()Vz!cOS4q z%VOhX-sy;J=!dem;9|jCT=XcP^2!i4P!ODp2J`X8HsnFi*uUwZR20zCIu2hsvgBbh^#!P2ZsV^yh z<@~Pm&^}Tw?CN57)2{9Uv|7N@Rbr{l<~3w-xp|Fha-D!=XOyxprN{uy*=>vS@>^S5 zC*X%3{R2uvGiard~j^8K-P9eyoebV5-L;tz9X7sgOn4`oE!G7O<(-fH&|~2EPFGUdCM1QN{vh zAK!BY!22Tr?>G@adl}24hep!(eZjo5$HRKY3drarj~|A&8<9ob^rrwo9zPDx%rr0T zbW?>Tok+aNtT4<^{a-NKCUo%6$RX*at@+T13HGNED;fOhKg|anayu<&b%wUMJ6!?> zC2ZRo+W}l5jUnlPLKdI^eK7@r?2U1-!4~o($?2F3mb+Fh$emsq19q=#9FCa+LKY#* z)q*tFYVVRCU~|!4bK}eY(Jy;Ozl29#LXE>{J*uOXL5zuS%A;{yMJnf$@9hi^C;%Ir zibX=|2s(&HP!j_KO?*;wBm)TG-1&gLa^90SsB~0 z-gsIca5wbefNP?U^(G`fRJoRvV$?i+kj+?kUmuGD#0To8Zeds1oRh^Y9cl0qB28c!CWnqb;fVI82ym^%wf|2XUFy%C$H_vlBT7p0y2Y zsUbdUz9$zIQ3kZ29nb?@q4*+H63BbA|CXG0)2DE?A|wil(H~*f6O6)3e7Ix_Udit% z&h^%zV9fLCkXn%iNs3EYb*#7Z{G6A*j^b0NmPK21zzivhHNNM(T@2s{Q0BbBrDH>3VGSAYAO zvbPfb?KAz&slT1o-zxOCH}tnE{q2DMwz3qv5))p;1Rz(}h2)sL#RuBrn%Yrzu%-`s zwR9^TMe|y{m;U{Np2mV2wycG`GivEYu=DF2Owc9EHjOD2ld^!5p%5)Ls*ouh#tB`A z<%I+9)@$%=qW);I2fxjrKY5GICZfV^z*VRsJOQUv6rY^Bt~9&i_C!A_J(R>V$}qs~;!xcY7< zIOYh&^6H|zDfZeD?#K51BSzkYai^Z6ojvK^B1Ynp_BYS7%F|kKt>T=ES zr5|5r11_tKzSzSie;)8HuR+#k1(XglR^63U3sp((KK;osch9|&yE6xq+&u}o`?JBT zxf>^!(&>)}(N9Qv#JGltA<5O09z6yn*9)O?1GB+4io`|r-ALj-etA?@>xD?OAfQtK z3XiR|yXnGli7D=}Z7#u|(&~z})?eyyUB->5wxg}}u@2WIt_(`@8?<#6Z5@vrJ!?X) zm^*}NU@qK-UaJ*1r4+mR&;ja22gnwVTEu;>_zah+rMZvI*Yu)OHN39~BgegTV;7D< zCQ@mt+x?h4ffj#+#vD!^vt^DWTF=eUl-*7#n@(n*rsEj(F?e&k4bphEf!}Qw13y5v zUm_@7Lu!s%iG?X$Un)mZ;29v)`uGbh6n-}SS$iUIUNTYAo(!7L##y5mM19Kvu=7ET zv>&K6q1REXM~31CviYGZgPKE@6%JTMlS1N*H2xs#hSND7JrJzQ$ue6wL9YwFcz}ROsKW3T4)ub z<3Xd=hFk)x?t8=4*_-21MuJXJA=#&mD;knCt^t2jz_kt*GvmnrrWKVz2F?#E+JvSr z;36s;p_zUo{Z}Vj0yBt#xq8BbPMsnkecQ*P>kycP4(A{`A!48m2by)D!2VM+C=*XF*y9S8+L(W0w>ghYGHRs-jo1trzeGo|{@ zzgzu%iRhLyjt`^)Wl)o*`Z*>kbHBmzwA<+G7`N}%Zu4llPvhW(Q=&lXq4_%PrCfOV zYQ9eQsR_Ev<9$eSdOav>ePL%R8~27Mm1`3loR0OQj>7Ft=zhlOANzGp;}{ShLqnK+ zQ25tSIj_X{rj51qo%w9TemP&~h^?>M&qA1D>r+UlvD4AnBm%3&>G}^7d&9@KgN9)`)t|S#px@DY6t0PBhk>9*0;i%#1Bu$}(u zNOGzlVfO(5#vu)ysjEUi!Mne!&&eIcOD%~xI@XIMJ+bqylXna?eZ_RFcRxia`oBQc z+O*ICzs7gRf+M4xUbCO@rwH%PP3h=4OIwv!Tt@CNVADlnH-mzGRShlc-Ar4 zlzE2|p5=JAi888RQJh|$f5;~cfaI}Qmz}s;M{h67w;w%6Um(JU&9pu#5~ZtJ2q zu<3O4e3k)TH?pl>`WLsp5CmTw#90ubQwL5cU54Ze%&3?cJ!nMVF=eowV(T}o>7&B6 zY~gR`0HbXd;7x1KLyudL%blB`w(*Q9PDInM4EUlyD*>5V2e9qF>=lshI-E(|g*u}> zsVBX3)z`XtsL#X@@5-H0ei?IT$uW=JF6EFj-#uqiA|~VejyIaV_-@!_JmfgCUa;F` zo6PZAI7;X|d-fJ%S?okujvQk-X7vKZ?JQ+XVVf-r~5uU} z9p2l}qS~<9FKDOh)Ge!{>Db5`?KE-4>eR|rFe0sJOpZesGFJ@b-c^DZCtfOMm5n;8 zf@CAHy>>S*iR7#A_M42dpoC41j;0IHbYr#9;E1eG#m^}yHd+yuLErz1c^6h+6*9w} z?+?c-oPkkK8O++cSjr{s{*=1Hh%_Dk3-Et+VMMN=>o4NuE8AWwv*T6n!{G^0+=-Xy zDsAIRa+>WlB)v+9K+>Z3l6HlPQi(#-q{1q2wtsjwIqj4jrz~gnLFPXXB6>UV5*>dK z+q@Gm(aeL`>YaE=EM28i7ZmF6zsj5CmGcXi3>FcAFxbxpIoy3s@E=t7?+ zjPZqof|Lo3lTwvIUYs?Q^1)vi=4#t540eDoaM(#tk0jPmHPl&RXr)gEnGS6y@>P?j{G!KfVx z*VOL$D|P|4h^%b&MRb_zD)-wfxH0mF(4T_W7`Lzjr37 z@=a_f^K&qGg4U1ToLKq=655WIPGI^YLLw;r+nT%Z9h?_I_XMw625!6pnN=gTYeo1% zH-D*58i;I?pf0hvTi?#~c9L(oZN)6g?FMC&*(etfr=`@I`jd%LZs|0<<&;jxTY4$y z{JB9+rRB_Y$8!aIKWua+*5+*C;hD-*S_N*FmlWZiRTxq502O4<=b$4>N+rWWFI6z4 z7*FhKOACbM&;9(uTH10J*}1MxEyW$H;QhU!m*9!s;iXG44DC#L%ly(h=@!4iLzkXq zGs-xKE%AEXbn{K$vbd(Rl`jj7VaAI%GyjUl%A-b*F=Zw`a>{k!c|AWoomvOd4swb0 z)4!k`%*C6I+j$MJ+`n{O(%aR%S@d(eGHr~NEs-sE`e9a0e82|pDvqiVY@5- zhw0*z;YzfrOSJUhDM@HcYfZUBU1n;VBEH=2uB1~w()(wemX3QtLHAah+R`+asnt*k z6+m@?bJDF!bDWc3Xc@FhsV##U@~@yIzT*y!Z5@V|iGdzKqb;q(D)A*5a$05d;*#jc z>;ulSvOTUDc=`?^Xx0q2bLF<9(Ui)vmia5CONi~Y{SgD0YPckA3RN0fil@VP&>PLR zg>C1c8F*ZtD}J&kcvKp@h*h4l@(yUwQTZ!u3-qD1jNvE%3U`%cNDG7Kq*C!<*bTrl zsQp8|k=bo&&^*0yTKY&!quF$P0>lU(;L|cwWsetw5l%_z9Vr}A3^SN}av0wW4J!~< zv2vPWc!A2qj%=|{MkWLvJWRpRWCptr1i|ZRoxGOCv7ouW6ZciCMYEuD@mLXPTXCLj zROL8X7DrRp;|VqQ(M*izbzy*EDb%`P{hg$`4}78ZcaT`*vy>1oIwDQCxvBClGf*8D zrRx*fjYG9wEa2!j$pWf&;ht-i?Y{<}5@QiZ0tt4m1H=%25ScwV#cMl<@e=Y)+PfIs zB$+x>5kij=(Py5N*d{sCpR#-xeu$>(C4kox!~qiHq4cb50LQafN#`2-R4K>lTw~9Z zFX^|xlcJZPD38Ze*y%YLbGmCi9@W*Sy{o!nK$V-_^o4hrS&B!%O!I($9s|R<51?@J z0aaL>?td2{VA!sY*J`;hqTA3OU8%%UBpw>@n3lVn%{)3TiUAA}DxM-`Vt~aUUiu3= zoNlO#-ti6-d_dRa)pDPQ94vAO>hspp7xW_z5+5*fGf6fSFwow>n?BsSu+RbK2z zE%!LqDaUPcOv^ojTCP{0$-w(zcE__*wA?Vlx%zCbUR$qYKu$k+Hf5CRe^!ZBIQpd=L}FcvvB^+f`e_cXv(Lbo&=4mhxH=}eduH& zFf4jaawjy=cV>WRE*`8f@Jg4np}t*j@ezaVs6BNPP(~kEhVAFY1^hsSo#Ir`W>6xy z&bdTSkiTSy5GUfVlIJfP*pW?%1Dljc;mNw2z>uHVnXsqM=xV(=L#V-0axUO_i>jU%$*HjrHr zYRanhcxmw-=EYIz1op=bNbCpUk#PFLxW1^)xDayP>KNQOn=ZoIrw`YD>TOm#z>9%L zG+hO(TK7%Q_b`MgO~*d1lgTrKnK=q(BChXNn`%6@UcVt!ZK?67^(Ji{ujQhwLPm?d z-XsPa^tgY=8`1&Q5Pc=76#i8V;)VhgH{3$v7!)6GggZ9tzCW;L_1v8d6~8KUXfr#6 z!!jZ(iL-*{?PIY`!WEHBGjW6GKMY`E?(8dxbAOI|@p#j$usjPo*^I{zVz47QgXe(3 zy_d8PtcLU>qyz89lhK9nyb@CI7&U-7*>m#T$0A&G)iURY%r^b^_ zISzo^C^U%q!2z#x~ITmI|ok!JedaGA2_4D&yi!~G&zg)G#oN>%FGrF){uBq`^9~|B@kvz#0id(JDWD-zOFbCWtfSzreNY`U3qP2Kxi?0*tQbT`M!*R?HUq;pz2uo`;slY<_Bo25vByfI{uN7_GZEvEj+l_PZ zjv^L^I^ECH!+%b!4FE%CT^WX&obw31i3@!^eeLwf`WY0W40VY=K=0mDOG;O>2r$(2 z7&5#K*Pf=(x1-6KrRsgie>+k4!=NbV1p6f(bOA=)xuf~G9V^RAJ&9P|@nD`BD)qS8 zk(mAWFrGoa$!}_~r?P0*Tx9HD_a&@pK&a7xinZO2C< zk{g&4up0^EJI>~}q4XS_2c3jy^c+VHk@2WOlZW2_HYV-EjazzHuNeG^LEkah&B)M( zQ=2^9cv@f8^3dB@Si7qW<8Ob77JyFiMQ9l3r6&#JRE%*h^3u;Tbjrh^cO5B@SAm0? zLOSr6t!_FG^t^|DitBBzF34?4Va$mq3{}CvmS*d(RAtj}lrhfQjf4m5Wm>N;^V1m| zMuBwE*Yv$;$sWIn*`{5be9NdVz(PGETPOa^_Sr?p0&#$7(CFPK8Cx`W2Q@MH8d~3a zH1cdO|6_%?;f=nk3`3i zWkR9bwCysUyx)|ege_p|Mu&Yy7#%Ruxy+1XbuAexd;~Zm9{ExvZ$EgH$DF6$%SxVkJxmi58#)_=$#OOea`oyz3}8;t%1_maDK z$6bPa2QF{5D3`74Cz4~QqoKtq{J`mHEB99nWymuCfoT(?`Jp?zhQBh>}&6voZ z8Fef6S7hWxuV+AJAnPcoIv(Et$lgB>1sL8LV3ozyG__(*9Ly?B5Q7(Syxh!;Z+!xY zWN*ezwMDPuGAeG@iF_y;t4x1F+rd)<4hs9uvLwpRa0~2}IL-P;<@wgbT(Vq99jYqV zAFIqQkCbzAhO&wuVkycdL6aXqxrO2JU6ur+p1VS~R^qOSPCxJCtZeey zjK=|5g*)XwKTigk&lUMhG(KYTVUH$|!Pp9% z>%rju(9gJapaho19hWzjlVgQ%M|w=5h2}D)DyAu|7jS=4Xh$4wsu}KIg7$RAd-2uH zceYS?z?W34XOa8{xYl4Jr($GC=x&o*#j9mP=uUVL)G}UK{mTj#PV(w6kzd*>%iE3& zMFL@r;9pWM8#6ZXjKx4CKOZK%-5Fd@hn>S8239 za(5htsYQ;jLYwVzGF7cMga0f3a2b5c@ z1$8)G-pD%|1-V?;Z6@w*aN7_`s8` zg8B#;>gK|?4ApU*j}d?P8x+LmIBu!Y_`5@kZ;2}!Q+JJ|zAuzNsMec7L1O-Tvsx#p zck!rE?h@eYs1xMcw#Dh7MaH2PN#_;Kx<0?9c^qnyw?}J{P{oc4@^;k9zL`UJU!^<( z3~5MC%DI_MZN)$S_%#j3TSctQysdyg1w9H^ShS zolF5#3!svWsi1)Ox{jrinVv$Xm%|EckzbISVjniCCBjEPLv8bI$zQyq!luo5 zOCFmj7z*`U8$oX#T^KwHdJ{nIxx|yqLa=+jO0WZn`xfK~$AB1Me&C(F<4!?d39`hv zvH4o^HVR5Sw7D2~POZN%V`XcF3jc>h*+!}_z`#E(D>@sbM+e)^hD05D+QcCda>!Y@ zpizBc+Fg9YP>4Z20{K^7eT0V!$-kmv5Cb7*HY7RoPC*5L8U#>lgalp zx`Q8Kaux#(W3Tdt27XFD-Fr~e*dEHnIT)n}ncbY#9=)T#(xgbYd+DrpT%|Ze56{Ao zjX%7K8;PUWCC;a5PKAQ*v)j)w<72}Y{^%*nAqUKHuD`phwf)sa&S1*e%}QeGN3M_=eG2iHOVOwe_pPxu4+48^!E82d;M6%%rC$4ZOn+`8vA$ z0CQY_cwl&5k&$WqFpfP3)0nf}ERfDfEH#ukWF<}iQ2}FT+wy{xb0-GXy|bYB)@QGS zYs+8?E>IZcIWPzfoWwPSYv}?g5ipuVXIxd)Z(n6q^^`+BEP7}R9>S~7Al*MvKie4| z-~C+o>H^P#Fp{+Xigdn34D7&-2T`1PcdoS^wO3g}!F<3#d@|xDY1-U$HDvt+_mXub zHjS(Tcz|Q6k`Op22Hdz|Dfc|uh0ii-u>x#iHCTf5a+$@)??}aiL@GYP6SS~>0q`xq zgB!ZC2y3-1+;S-s*G7U^ECHe@n~FIpx6M7bby;6)_1AdvjXwoXK#JZa9*nr@dlz)i zaUKa_orP~0tIeRR9Y@5+e}kr0N+{_31kWF%CA0LO8i^%N!zq`X{V$fT%yv3+_sCjggfERD{@)9}|g z7?H%F59?utrX=u`uJ>mzcdP6>jTMXrb}&4O86I=k2^?lSt51CF5;)X7*I{gWPTM#g zru80iF3C|V#NwVDBk~ur0I)Lf=WEEUx)idG0FDddLQI0Ys)4(#M*Lk6os&oila=3K zRa_zCjZm-(u8wN+dOLZlgkgl&wy|X`mosIvj$a3t?bN%r)tq?Pc7XNtIF4&NM9%1? z6rRCenT@^T(NlCO8R?BX7`_N$U`=zhi`(b1G_16cwZs83@fhwT@4;<9x?q6Fi@}pP z4TDXpP8r>#3f82Of7GN(@)Y~3_ocXRY+2bF1)4QpVa-bMXRlbJ<~f}Tt3D-hTcett z&TWimhOm8m|M~X)i{abtyVsCp?NRMpfbGNII%Eynj3D1`2+C>IB~5Fw@%!9C;nKn(mWA!Mw%q`k1i9SRg-=6@u>lF7Ii0UaM~eIshp=bm)Vhm@70TdxZM zH9*S0G^0T#9=Emt>Ih+0{J8^dFM?=uhKtSBiK+Ysi{kXWSC+3Fz%))?s~li3(vAMq z20N2b*+R$fORjd&Df@6FiY`bQe}eFOm1V%j(irw{3$?bU;2jU(2pJ= z#{P;qyg?d2vi5RQEO8WfcXT|B?;WNL&niXR;_69qAADgyJERn_GeOKgA%^k)BW)W; z|FCy-oBjjabk5N}+@@>jkB0%+1S7pB(U=o@V@j@Uj0la%VU6i<)3r17!!<~He?=NJ z<`%@IYdQ-H&FxNXSxImMw92T~ciZc`rHS;Gy=n5UIXU zrDm@ar2HzoOW2qxzHIKV$ehf}z4#kP(C)&omXMCoi-5zn=kQ@k%e2wQ--F+UAqil% z;g7}Oa;6!7{sIR4p3gw9B+pNnLNoSUv3mLAKO|322%{c?ynO4F=ux&LIw((RokGw2 z;ff6U+McBce+iAPcV3{%FB0pWf}9KTR;yu{`mRj9a|$`_;848IC@N~v14Mg9U&Ft+A79jC=0E&&!##goe|2DvD-iG^ejHBAY*F1U#+ zF22mU>73URp|yfm9k)r~8|H;Jrwysi7ARwyUWSF0 zapB-d85X;2fihes@^)dh1^1Klty80X>&i5(xITu#`hB=~>US?^zcB*@+V|gAtjIe5 zJFy}=0!%uhtI3hVx0FjMo2x^c5-3a=jlzT9Mgf{(*=>;WTc^@{piFYaf5URsfaOlW z;1JwyoinxuD4!0w20yZD{ffUQAE!JLK1OLiCIe;EevB!h4 z^S;%eJM|wD^k})giQQjnDS||EM+Js-reYHAgM*&iG96FXaG4hs=ShOo@rK;590k^} z6h^8XE=#k)sk$sX11x?dMGU-%jM***o<|nJfD&ApVn2gql?9T9zbfOhlA;SN;>%uN zfMFpPaClIX_}5u9pe9@O=o2yU1SD)J*Vi)!p!}xWLlp~zQv7M)jpOJKLA1$XN4u2Y z$sIoqmctk~HFe{5pLQvulS3LQVL^5Eq5kNz*Y}Bm`M8-ull%0gYy5QytG*NFW7Hc( zy)2$Z2Vfy~?~)_nfIHsMw|)<}Ojxyay}dqP46v=S)%oHR|BkT=az04T=$t(}@cSEE zT#4lvMBg5&$Vi|+p1uw0j`V>P`#aMReWgQ)UgM^BetdNcNH0e017H~oX&I>_*@x3T z9{lwv-s6d;>4+ep2OG!6ebp87>RYHGFa0k)s;I7~j&)6+THlL0k@b#6bqQB=75ix` zD_ifofcuWo2b_j|?6Qi1b4>MPlmQSE`;E@GvgJOYIke! zALQOrs>HfB7DFSGRC#3@P$ljdl>XA0&ZyGKs51AXZ&4+NztIbTd!VtNS{nYbem1Qf zt7X00cV&&dtv@;wh!b)_EArg6NF4bB4Nb*8q^jHtSPy(KsecA!ry<L)CzBlJKQ#%ZGkL9hGi@Bxq`hrUevDTXM` zf=5j*VAxzy8=ZwmW*xTvqbP}*nh`Rz3c!H7UP%+yTmOCzp_4$|dAC511mIF-6{p{93Vd%}jnxBl4S&H@F~!d079% zbawa9qnC9qkIJ@w6b^dIL{4{1+a?BG8A}-9*>0yO}nyyM=n$J&!KI`)za~d$rO9>|Q``XZKn3 zW_F)VuVeQ)bSk^gr4!gapNi~WOw-xDglhkZ7&^5LPTKdMm{dV8uzMBlX7|PPJiEK; zpV|E$dYs*t)5Gk(lD^9BtLPqfUrk?RcOQM8-Ph7**nJ&+lHDb`o!vLl0K0Fdn-eI! zj1%_sAxwQ4Ct&IQ>=93qpv&3gb{5pZ9#JXNJJ{os_;@>e#9twxv)LmCchPC=@i{i3 z#UAnZwrLi7+>MVMt9y3C6$cJVMI_CU%1%xIJ@A*`vHh*QBXw~i<&FQVy>9`CvPv6% z=K_p4I%A@tqK=7XVMd__jMN|uVmUh8WfgUVL72ETyswuM9UN#G-exl^)3&Y5F7|EP z*Ix3n-9TLMwu<>7aO29h&(LHxAGNA?GGC!342~AWTPXJ z()+i+?vavPz!UORUK8s2ly8on$jTQk<52YUo7&Me!3&ds7?dsJE&=tat_c->g4q!3 zdKX=9``yaHRuHAH;fF^$i#JiPoH zz8>bwRlfVVFf00z&Nqpr;iu}U)X9B*mCD%Xsnnl5l=E>uL#;ha9?uZ67ir#LAaWN% zy{16DTob&nie)}Due2r~C5RR!dy#fT*5@{Wxt$Tvku-8a|{+dNmJXrrGP#Ba7g zes90#!7tL&=o6sP&k(`zq}YbRhMpi?d~L9R`fFT&Iw_joR`ebwBAW|%X{>~s1C2T} z)+FI(1h=!3>jiaeyp)>&o?~K7GEQx;m)j4^gWI_ed3RJ@!}dvaXWHy_l7`;HMB*&8 zRtkLu*<64Qf<&#ohmnwEU(V+t0P{ZuzKxjwA0Yqt?DbMtjRzmpS%K^qD%Pt|@b&x| zS)+CUzL-AMHl!#kFB40sQ$3bY$7f~QFR1KatF!~FR&$C~t8+SLPxP7)9arBWwSOtI zUshOezx0Yb{OR;3bj)_X>Gv3F?~q%S_BNU9s5`v6V7rcShdc8y99#ijw{L|1UIsV{ zFddsWs5VJbvq(~#B!zry7D?@mGJ6xr{iHW{7?<9-B$mY9D7809G1jYtIM6sSa1p~M z35M4A=J5bH(EyPEvj8*zp#W+C#S>_C{b%it#K+sg6~Gn1?F6?I+%9mt!0iUN8{9r{ z`@ro7x8Es8{)Ult$@;{?csEwM2w)??W9XxYc0AUw9WnHMrnMJ+@VoSF5oiuiTqk>1 zKOSw1oe)0Q38SuDdZi!A?b?Cm_I?5_{o)Q%Ur(Q0rhO8DebW5|=@X2+T@L@v0x$y9 zCdsCssaYhme?waDThe;J@yQx-6XOi_)i)56^g@kK%W!p1EJ$I^rw&u0ppnSgkpn; zV<~Nl3So`HioHmKpC)ShMT69IBgvThgPDnqsL*MGiXmd>z?(pU&%zKG$=d}_ITb>;+q6Jmo z%4f6*J6;kuy?&+kZhBEWctqMpnD8<#`38j}9(NK(*%vDnP4S@^ zHwqcV|2gpAgZ}~LvMgpYMq?Klh2I{;YvK6DcL}c^BwDBXfZUp0?Pg~YE@Fby(3fIS zIt`sE7KzdQF?a>`=({D{h)RPR^`W|A_B=)NjWi0m2kA-N3{;)d4-a8`cG1AGMj=TI z1oohxguCZqHHA5%zuJd?fCxS}!YL7ew>M60o?^c&-J-N#mT@6_&cjt6R;iVQb{JOumlTHxRoXZ|AA;2QCP+cN_fnsQGjcuCu9E|_9HmC zQ!jUj2E4phB#8AUUe|9iQd2$DtOXjmh~4ISBZe&o?Oa$GYGz^_!{{7uw-YNEX!hb7 zh9xXA;YzLBP3LF$<}!%*yka-8+$&_>!Z10WOXEZ3{qH7M5t93(jtal2Ci4Dj-Z(3j zH-@JQA-KXGQCubNkCzw{!_^r^%Rqs8_t3iwMrUHUoZfwhShMi%0^VA1v$6Kg;j`Ur zpq34vz5Wj8-1WTjw~i&@O1!qP`L}Y0yP4iwNc^orSj>nIs4Loa0MQmNvx^rOqU!Q^ z@?N<~jyP~?K1Io=Dq~U4&%jpE$N22PcC_FwdPN8< zfE6Lq&Bx&X@U0EJp);*^3fkb=BC#K$hOlqO-Cx!I28+Tdm=EEZKqobZ{RFxAvcExf zK)%r4hLdkV?bJoCCfg5paDjG1sMHl;`yqmpfhVsIfr;|52gLo;s)ghsT=jU2gxK)7 z-S$HyJEBP+g7(r}b8CYZY-C3*SWdi9J-llgJfP_=SFpWL&5ecV+-MR@zF;{gUxY>c z8qvY|&>i(*FBhWPe?oOYxwNNV&MH*zpRjjCx+eA3%b+~=uG$l}4wLQj1n}P=vv+9h z^~bb^kn#zDv?4~|Z@rb1Ymcv=2Cs5r{C7I94_&rT!D)#8Vi_Z!D^Rb3ZNmttWkd|uzka3=`E$3sM;|Jo3U63w zs(!ai1wK*>vm7QfStAiyL8E(8M>P7gvfiA2zYgT}{jN|?oX8=4J9s-E$RO{e9206Xc#}81Z0MG`|0?-U_6rc{^;4gkGegzBT-B{@`fLQpFAiz<8))#&xe#N^vmX#^ICl@W0821p4U;wDI9vklZNw|^r z0Vx;Oqf3;quxF&x>A zK&GQU0cDo(hn;x;49Fxxu~E$oNM)Vf=_3^2+(}su>rUST^q*bLapdhJ48#39{TYT2 zpT1$CfN;4#FEJV^gcG7RAeTz`_UY>#lCRw<@(ZL{1{<1BQtq>}Q}!v?iMX{qcDLJI znXl|6Y8$d0foLW>Nxo{xwP-@L0pS`m?=9RAi8F~vPjNpfYK`KY9V%5prn8TaCw0x(N*A^xi&7l*Z%*l{sAYE~UR z1+`n_UE6@DWBCq6R2@?2gmvu_@-};}19MYpq@aA&{?QQ4SN%0=symJsyjA-Hjlx$) z#N*%!RGMA$2AM!4TV})<)SER?AI9V;R8JpHh3-hnw2UBEb~_0-46%V6GN`pAiB%K5 zO2SU!ZTLd2|C-5NUUEjzk&WH^{ga-X$G*tm7>p&Vgh)xa+$kVyi^RV)RW(L({oX5> z;9*S94Ty#VeAd4dCtkijI;pO=dHPZQ$PA{-?baT(2J`jVPw|XH9^P;Va+lSNtHW#Y zB&)h^b2j}1%2UV)CqvsKE~0`lZeIZ7c%G>E3zda)Q|to6s?i=XH#W`E?NX#!zH`aa zEIsaVp~z$eIl=;AHFu2{uI%vg%K=Y%1be&&py&px_C#jZ<`vpe1cx-f9>4gD&IMFJ zHAplH*w~|k4{9FDhDUmIkWG#_!KxRtip9fVVOIu1`?|&n8wRo13XhIZs<2^jZyjff zP$72*ohg!c_{6I!qjtC9DFC^GFv zvrHp}|9FPp#U)pVP*e~6cJHFRtD~aD?$)WCcqN3N`yOVC=Vy550r!dI#3z6#e(O@% zQ8=zA3EFn0eT#zOVgN%UW)$^V0yG8j3ma?;vI&3%2RL$CT{375q;`c_L`bC-SRm&r zWg4wGX39=VqcyQN>Rj9SiWZ)0g964O_6;P#*NqU(KH42Y5v?Bxgw|{ekaYpKZLer| zbDI`*M7XJ)PvP+$ZjVxQ*5p*a=Vw=wA5(dlRO)c~%|mQ!+UsMa)i86XjD%s$3Ogh(BBpqhIP=~$+SfezDzL{q-9r{)nELqU~hLetp zHb=!dtzN0BT21zxP|v^9Af%uQ>&bLdV^`TL1PQksm44!MhTA<45HCH?wKnO`;m8N3 z7H7H^Vdi^8Axo0Bcgu>(0djVo=1iO~o?YK55F3L>fS`yL&#v#t0!FhHlH!rH!hM!U z9Uj2bcA#LZQP_y0{}A0*CIw~MD%xWz+SwMTd_IaJvW`_jP+wd8Yb!c;%>%2$X1`hkoZ#__;u$xL&Kk3-W z`s|KRFQZVZ=o{qmJ#yJiyIFxBDA$K96k0)2*LMWD0-Zlc!ZKe~8VImd4gY0o;J;Oo zq7kQMXv8TCjX13auhM)S{8wUx|JJX8|F)Dtz&bSSREmb3HlSgrtz}MfO6)Q3w3ml6 zeJnhMIV!pV4Wfuf$v5ogkD>|A;}OT9Cg}K^e&WxJ{Fu9+hei36{rpykLC{`g$3|Sl z%ksCny%w7cLiI6r1D}I;)nsQQ&NwnUWi1iF|90_QCtuM85iY%qrl8War@48(pV;fw z4nw=ACE6j(ppbzFq|RuEZy-Y7ZcI%fmbhpMu8H1e{liYE{*rh#V84Z>q}OZWIcdBm9c@7lNF}dz6!SDGS_5*xIoh z=LI~oWKR&@K891TpCyzGN#0X?RdT-3wML|+CIh*VMZ{8Ne(PRMCD)6|F*TK}MrR2LB2m7hS;;vL7CH z9yJO9aoRu#;7ooVavsRQAO%3QoNr{rd#4)&ON8t`D# zghmBv{AcmH42#r$^5f^0v~8w5FN*j!6r5eB{HwZGkc>P z4e@bjDObb8sv9kFbpvhQU+K{ucHPJ8yHVUZ z1W-v4ziyxlaZYi~hjv9j07ZcWDVj1R@^!*5o)-F9H<}pLR^#8oa9+ZIK*AAx8M#j6nB{3#Z(?vMB(A3G?nRw2aQCrohLaDy%?$xjEaB5$d|h4l{ejmoT_cNX7oWdviBG z3bV0ama3{QV>hWSJDtA0bF zPEmnPBp%gi!0iJTAK{hgbJ{OdRc;uAA0TC0{n-{Bl~ulkvdVLviIWuCrVV3-nW$U% z2p(|`%4)v6pPpp;(zI>V@(`-zQC01OY*A?s8SJe{$%fG*;2jKJKf{}Dqt`it5S8Q&CvpcZ zS;7m=L@>Hd*okV|^ex#PZZV zsYhYx)=U&Gy#ph)*pGywb*rbyIUq&|g$V5=f|4lV#RzWH-Sk>D>TY@vPb}eEK#nhz zumfts5m3xEBi0pe!~4^@-%>_(^gsFyVVP2n}9PTwdbQm1?d%yJqcdrAdQ ziPY&Da%vfREvZwVDY_7{;4^TFK6}*^-Q=C3*H`+_vIDkZrs$`JOwk{~6df}paXn4! zdVm--SHs#c4rkv~aTdLs=uKCH zfrQr~!x&W;y;?$4xAyJ9Drf`3kPrRD)*0e(ngR>AA5G#F8Kl4Qg$gZUg`;o4#GI`&3e7gEVGEjjCD5&JiT+u_ z#XpH-j2%T~K6h`XB(0&3Z;EJ?={sveb-kZVI@Wt;`q30v8E4VmbCuoD?H2kgJhWk! zkX=ce1kVNfg$F9hAw@Q{slL0T07+u-o#*w14>)Z=)b1!=ltZQ?o*bhK>Njv)CS?k* zzvadI76{195_Cfm79ODpH;IxhIli+9xiUB1OiINYh1@J5xx#;(HgCRawg5!fOrGn; z-N;y!%ok9}R(7^4UbX*BPvYH^(47j9*;37xsl1P$*Kcq zVltHMC|$m4zXHPZVGd~m7sE$mF*kd-%+daZUVTUJZqFS(ppTsk-76YADo*plfl80y$~Cl7myb6G0CC#=2Ek<+C;tEy5!E9Rkd4A*QI-Eb>Y&w z=Dr&Jfa?9aWQ#nT4NK-m^M`wz_eo&h|8l^Qp+>u4@JXTaWE#Lt6Mjm|Dt_2A57JNL zyG?X0o68?QBRC9dZM{_n1S)dF4{s*KDo))~gn18pdEPkks1RGHfShZl5wn<^QGtcZ zkvMu5N;Di%JJLtb=2fy&J@N8nmaSbJV7na57U6N$x*7$q(zy-lCVdx@&W(wq1A?P- z2H2&%s&>if85l7EBi`$YXsZ~IKx8S6JR=yW28=lqV@|-BAwF5kXsnsRX}I%>x54-z z_uN4DxY_6F{rN|5c`*pu6RO9`WO#2*t@`OY^b3+0x}1rD@*c*fszSYyP%hBkQ|@6xuY>?p|zEMu)?!9-QnoA9z=6sxR} zCB#GHk~?@1KUsUU{AOpo#1o6+2EsUsgpp)Fi>Vn3b>rq-+y#de94V^IecWd=Zyod7k!(>~z)803rs^%r6 zzdG#HY2c6&XJ2G~Xf}JH`71>Yw zg!7(Gp6BoYv7-=amustUOfFhgOk{Qy)Z)ht)^9 zF}?MSE{Nd*V)SjS+-7jw&_bFlq5)4Q>xeQec2P1rCz+io+{2P{Mr=Eeh(Ql(+?lQO#^K`F*Uzc%SOWbKU>?xPL0D&7+`iG zMH~Y;sj79*z)kv2lG&Z`AjgN9@IcC$9EX^*syHSPoHg3Rs%jNYAfexI6U>D;1vatc z`B4fWr-AM@gu*l!1R)q_pN_q$($Ec0@=60#SHjp0UGmpa^njI(sOa9O@q{Z}A&@Uo zhxO_{H5){I)xzHM#8_9Ko0}+{vU(c&*H#=bp%8=21bD6zhdcT>%TfL7Zm!d*Z-$u< zIO#qda~~6P(Qd97=t;C=R5$%7%(D?Nb|mbKN^>8MW=syLAni30&gJJ1cjsZiGmGA5 zMQP}==~)>!{TWYeRaib82Gac>C?4`FRl3fHw476Mqw z3~rrk1TFzMG!+cko# zwBr-EyW@NKZgI`-H@fH7hBYyi4xzL2Ew zy#KaG?*;@S0f7(jOFV>nW~(dIcwMh;dJ`8g!k~7^M(9y9;`AnMJ)0PZ!;8Hwj?sa0 z3%p6`o0PuE8Di%~&Tx|(^#c;u&G@xTV4Rb2FarFfE*VT8y?Ql%pQ@_2QSYbTt#jlE zs_K1Y+3Pz*22On(ez>Zt1LQ-(sbGV)UR7O1;&j5Y_~<4g8!TNv8VG>(k@mg-RdqgU zynJ6j5amu*Rn3H#WL0%4I8A!NJ%A4R3OgneWnrW-qEC_)X5?YEDUEpC3LYNoi>j)h zVJpkX=H-0h&Ti7gB!DAJhLn8}28gQqSCDIEh4Ae=A23`t*1V&Y@#2Zc;CQ?I(Y568 zL9Y5K8b=e$KX^hcUsaXhCe%H4KlKDOps4C65aj@3O+}c2;$v|G@ELq?h%@RCI3r3pRqS=YwotZVf(O zqlnJA!cBuOK*3JJMAwjkk=qm+zJg9E{An_nHj_zZz4s#)rxl9~XO+qeIMYxefiQaH zI7o%Li^(^9?Q&q2m@l0E6t^LF{Q&Xi^QU|&L1q(&e6*+l*Ah~ozKrsZ#iBq?kArK& zQ$7Vf8=Nc@7kid!y6}Hj&)R$wIa+Sj4zLS^ z$;Bu$>G~k5Cx&ZdBVxE#b~3EnIN=%E{e)PYi3(C1u3h-WXJjph%u9*rBc0eo;tV*i5wIhv2zw3z@;8CJKvG$OypMxS#J5{)}f2 zT%Yi#QnIVcH?A7or6Xz)qdr5`H$QM1VR4Z^i+$!nFIRhBLe%B7;&EmJ`zIbZ#ZCj4 zeInDcGD`>n62x*R&?G{zlAKh**G5hFT%rojJsK_3C>%UI1gSNJBFg)_}5v6yEsq&CPV?N{*IxFfkk-rCW%aPM9>}*8qcmkP|9T}*Gh0P|DCs3&mH=-7y z>Bn)pzU*e>iAab#qHEIks+vYJtq*O6V#^;) z8>H>G{=s*hLc2BS`*Xag23bc!3DnGK@^0vW>4zN|-8c!}CVW=l$zJ%XV9=t1BM@+% z&UKUXoF0051zjm%rXhYseL{Gnj!!&$rI|#r>Md9>mY^0k75FekE(0FBk?lkAwkv#b zZgP-=#fmmFl}4ekK$I_Tvnn3;(#&@WTa1Mi4e3fTg*s+>~-D<(lj z*1*d|3zBtY7w$s7{|sB2@10@agmFo1iaC=d(G%E!Mn=Qe!@DcflDI0)?&X)?^VZSd(mhN>Vd2kwpnvdoSq zrTNAO>jLa`@_dK>xavS1p5iwZ&{O=Ac!r=Rn%#hs(VuiC%blAe<&K=bEiriAS){24 zO=s5{P)eh4j?lB6d%-Cd3eJiYYyHKqTDpR5}QWv2ol!S+%!`IE7 zh%8~R86^jn+ba~nL8J+DQ{f{aLQi;{Fd4VRT7g_a5lua^Kky>Q>~cC? zfsjVd1)<+ZsD`=~4{JYyd1kaQ%j}t+@N%oqbgA=^BQT&)9890@Z-fQRS<&^%EBUWD z4CjbAiNnyw8$w>TNFDm4d>^!yLBR9XoK8p1kyS3WQMemr#hc`4Qj!nKhNYzw78?h5 zQn-B`-U4ld{s{!%=|F+PaN3pUoi1O@^WB`i6UawAnuN;1uzB}W&#@8^3gfwl=yGym zE#3N9OC(4R?I1!=i?SUR%`rKhcv90Tyu1U+O!VUQ=kOl01r}16lo8V!lo@Y?kr5=} z0|};k7SN-(1mQm)cf0qBZ}R|a_k6r9E~Ks_q_bm6wj;E|EG5!Mj!?ehC?CYnN0Q+p zpr6!{LG*#O19dU0R>61KF2}J`GlkF{)d-hAQa08x`RYk=y;OyT}4t7t~quw7=cM|kK&38IfjGLYiIeB1|` zB7DEr+dI-+q)S`H9_lD0oX`=nnejU#--w54CyklH*540V@^3X!!r>la0-%JW0tSa` zz7e=Wp7EqwJT%qCHJ(&oZHEr*f;5eRnxt$#2>JuaPoZX&yJiX>8IyC4>N-XdaA<_n z5l2&K`^b)_WC}fyZ$w2qWG(CEE6%y*^ZGidtNR`(SOVpqIW(l)P2O@JMEPD3-I%Fd zV@%EwZXI9IjBT2gDLgYY<$W||!J4mh41`M$4hf%1!*O6vfq@B8zBn)>O8;sSMb-Zen9FON_^FogP7uZsHP3PG~iE3hC^ z=HbFZ6WQ;ZW%6Go-df{bB{F*T%FDR)pCwCbw8-m>_wYJnO~@c#Sc623Yt}wBcgsEr zJEcdjl(M11S8H&j;C7Jkhc({ak2Agt4w8K^fjA8?RrCu*$)epnZkF)m8viwA(weK3 zL`K!Q9)d->3lA+Pp!}F%ks=j@ak4xLAD3p;j#2GDtlHn#lX%Z$IXf-Bc1-M9cARSe z_b8j!6r)#itUrmTOq;rIaHtfvl3C} zw^P`@$gA>m<{*{TM2;_%P>8Ckm>47>SQA^($i--XAX-SdIf8w)e|wBveN}rn^1c*R4M@4+O@p?yaHlR?cg)f6|OpfXYkUV_{nN^6y)HTjGH0{j=5y21IIBB zp2O7wLPogtN{WFO0X?6gti8#DL)IV;G%7(MnV^tNP)H^yBoh>p2@1(KgaYPsikp@X zU(E=VzOHrwIq5%k$U--%&fX?X#(*x*fVps$9O3k9+|BaHZz88zXFult>znp^N$)52 zZzZ*QvJ6TkxSFuuYiX{zynIfuZ@gTq*~FTC!!$F>8TiK}lyXIRnvzn?$DE74;Abj9kNm=tJdJS^ zTTog;0y);Sw#W=oQ0Kw)X=Nm24umk|-J7no%v?fZ-BF%vEi7Z_lx@Otta?DyNHJiT zVy2wQWl9+bc z^CB4|iL8k>E)P;L_e4f!8H1pb8l*QE#hQXO@MD;bWgFqAfEY{=qfmgOfIoa?_Dzdt zm|NmWITEQ%9uOF$7!f>DIcl^@J?5sdA>+p196Dj*q_D|TrfR0$GCh38%v)#Oc6-F^ zJLcROdDq=hbLY*!CpsopyCCk~`*iUO6B6}Fi;@@L|G*N%(q+b!)U@=B%&g_vKUuLd zXVvO8rnR|w=KOU9g_Z}4ic3n%9Q; zqi0f?rSSg}CW^TmS}YNsmJoas&HizdiprC$W;42JW;WAQ#F6JkKF{$*MWwlz*2D2Va@A#Y-3YyfTT)4DpMX4*I0dkBpi-DmcDGV=5~v zD$F&pg)n3aOy!zl6AVie__M6JxQxZ2SX63)Az5J7BxpQk7Zt9xnyi~Ng-~a!)tt)~ zZJHBoEHazQ%`mV_SW_-bQuyS4Yq_SJD=RCtLWtQ^tjP!Di%YF$$O9gWNt`(pTZ&)Q zsNg#^@q=h^khdXi@e-dehb<^9*ObRk>bV$Dqrkg)(x^gz} zI_c(Nx-t%GzrN7Qa;Boe4#J)!5i#D}Ve?;IT7uK|ozPG?dy|RPoBv%g{`DsFDfV?K zyyuzM7v}oJ72C+Xu?)T&7%|u~zTYawxo1e6ViaI>xa7ThW^d+{#_k*^j7pzB$qoMbrr+lC zC%wTxPg>1Cy7~VJepmNt!T`=YH}0 z3oq_@Y46Lgy!zU{*Z=L8Z~W@be}C)OzxnO&-rj%U;Gy5Y^X_}^e^6I{xZ%hj8k>$D zJAUHiA5WcbKJ($(bAS5i!i0|MK+(q2oVXo&WjGw_O+ida3)n zp5DI8-~Z5mWx)M+GepBPJU7G;{iEyuk1qeeogp1Q{GX!zlaphMi(_%ufMN3BH(O(X zp9UW`!H+Q*?##=(a}%MZj0T2@HxQl}_&CB2GfPX?d!Ls9w}g*r<}%jf8PBcb%2|fF zpDQAH+z+%ey76V!Lfn%un5?;|P9Vv=*2;-A+x?~z@(AT%{+KW3iFsi@muDnreo0iYeAIiOXbaiEQ$ zsi4KM;oz6BZ0WL$^l)Yl@Vxl$*-x6YmSh9|#d*YC31w{puA(@#w3MZ*WAfjzvf_bd zbGHs9W0~fAV5KbtGIsa1`-h+O34eWtj(Kl}fB0iQ z;S1*J7~MSo@S){@73&|~JS6AvB^C&%lUnE30b zzhlw$@%-Wb>!*Kk>Gi{ZWgM*AyFSk?L*kXD4u(CFI(&P~%l0qNH=oabqGP`O$?)NK ztk5xct?&=88jPt{*)k@7jK6ODiiZq22s|1Pjy;?rf&9czOZDw~mbcs{)uM!=%V! zs^nRPdFF%ylQq56fIGztH?d~s@U`=S(fTs!2l~}8j7gqJ_rysHWXn=GvvrfvY$XI| zNiH3h(AySl>-56h2gPyv%d5u{G)@{BpM>m7FNE)_oQzy}VxE845l(#P3VcK zGH+X?mwFnA5qx7oTj=Qbgm3tLLAnHgABfXI#xywqCV<(0e4(Ela{g@J1~#Y(IVm>&phi>n`InZ#<8T1ezCHcK>YH2W`RxOEQf{0 zGieM=B4sA4*<0I8e;>fQ1#$H0|4fs$5DzHgnFsW#OZ7{DAIK{LW~oG$3gem#X68>c zP2RG6`aV-S$em#QVAb->M)52Zw3cJdbQ8%>1wG5 z|8VJ#h}*w@|NDPSzt+9;>j@tu{s-{aIJSzu)G;doQ2x{w{C}S>=7lnIo-rvCT|7g> z>!&E8h@y#T=moD81OcFYt3q@~h;FbLHqs|-yqFeUm6)$u^cw?klL+WPP4u59zQ>F2 z3F5m^Op_}5r-^Qsn18ldc9H0h8!H+Bm~er1W*Do8YoHk4CgNNvy4%EXyBJ<2=7Sdi zQ55HS@qLeo&&y(YuZjK#MEp*P;UA0Pp+U4QJZ z_#gFM!d#6j+N<{b3S2s->suXDc2URFgvB$vCQ?PK=we^H#UHM%eS(gxr6<9~HTy+y zaSd01iyv|81sz$7-vAfsiyCmpg1Zu2q-nyzod9nC*E(h*xJSU91ny(tBCU`I?i6qn z!JP_j+h25qme>a_jzH0z3z>9bhv+ z8NdknV4q{3&cQZ?K7Z`CzYSZ(U$ST|XU>rEgYBdVcyaJ%TT&_14HEE7}Pn1H{1UTfR{b*1TX*;{VyN@|CXGJbjVL8{ygc6x^+w*z)FC0 zfT82({{T=+0|XQR000O8yQPd%VsOse1(^T<03-nb6#xJLb7gdOaCC2PY;!MTY-uev zG%jU$W$e9qd{jlYIDR|bO*$JlEDd3k1{#b8A=)kp4ceDRCm%unD@TF z&-c$SAJVsOt*5F^ovlvQExBj8WR)bz27jh0NvkCB&nNxQ|61X%_wY5nrGKVv8L`R| z+%jU?oQKO@^A|k+lLhxb>MFbcvBw_QTn{|tTA)AXdiXJy|JK`Gk3Rn3L*uft(%tbo z`d!Ae?t1#!nTfyotIy4xM&X~&Oo!*;{Op;x!!vMI%FJ?l_M3SxJ?%3m&~xC-JK^~s z50}ls@;zZJEtaGQpS4NZ|6sQz;@YH9QbtOeB<+EhM?~D>Jow2LUAIW_aEc_^@ki=@ zO7ksZu;3qzTScN!;_<`x3xd+O*%m1`8NgW<>1^8nVzB?Ge{GVqJmu2K z#i{YSt-)u`Smp>d>))x7kQ+%vF!G$+mx52f+owjRx$^-uHSBl0_)UF)GAwcDOLEoU zBntXw$f4J9xc^PzZK7}r6c&T7MxY>!IOXZsp_)yq*{oWdDhg-l4hX_ibBa`N(}Ii! z=m|yYv7~CTAs|#ifUOa#$2sBKvLuP7b2YA5z9bz1dx7%B`X(imVFLSDS%q&ZYf@P! zeG^ae=FG0#w3!n-2QKa4`ugHT}U+9STW1qZk z3(pmq?Zs7JY5`xxIYh+9*ggo2)Cc(58!dWoPYoo>FVy(1IpSxnJIpFm>l_e9c!qP6a%E>4Gf3OJr&2B`IdH6euf(iD(FfuWi6WV*q&mYBqt3NIkZ6w@>bX?x)FMQ|8KEw`#!@5{2D8DWvCnl*=Kr|G=@6X4u9Z;(B=8`tH*wYNJxrlNWD*Da=>ToVUY)5Q! zzVjJA)LHxi8v=&-({C3G@H)T`;zHWzF4Rcf97~Zr+n30 zyD&!{E>#qa)3T{#17rt^<*i#3YoMusvQ*Nu6Us9CgimoGuxNOSDX+9&1MjoLQ&Qy> z_A4M*Jtd9DR!S0UF*;3sB!Ay3s3lM|=h08%lRO3>jucs=CoF=3<-=1z48$t@7dJ{o z{A!@Vz^c^92bq}8Hu3v@-kn`FH>zfx>fKu|%PUesHJW2$x@Mc0rAHf5B&42{DdH^u z1gk~~i#vMLVjc~hC?QDVnZg!k_d`TjaX=?-giy7TiDTi$EY~1KJ#rdWx*+!jDr*6v z&mTF3i=V52#V)=jg&Nz6>kNo2_Hilr6x=SGo%&a>Y{*zn98H0WzD=ChQ zy-OA9T;>r=ali_9;0&x$4(Mj<)gFMnR@dQ@hgWJP){41}k}^T6@YKjM(>HVUdi_ zhpTgUP7hf7114u(mu`__eIPJ49pxRM754WaQ~TtCr}fcT%V4aw|Y3?}~In)V}Z7SOf%jpBi zupA@b$00$MRRGjxCe45vvH#9)k?MW7BNb)#d0vaOw!cI~J9QN*RWZA_UJlj+sD!;? zdjPWVn$ZZCeOMlJ53;&JGyw4`JZvl`zAh4_cw*|R!H7JIJ33{2lW^RrgOIIUP^G#>jF5>{H5;{1^A{g?Ng-G-K=G6;uUU{o za7-2%34}FW8RPIi==KSDnBR9Lj#>-O?T|u<(472(krK|emcieH5Xb<&Fd#&IS066? zH+!}`JS6lRRvR!n9Sd%kSL_U|w#5GhrH{$XfM4`yrja5RqHc*_Uz@$)o>rgs({(7pDY1*(yRNZW^KT1(%b9h;XVm7!T&(z zDQT!AmFHvr@NFPb+?EaHKv24^1^!y0JUlr3wZUJf-V%FZHp#Q9T;B)&palGgA`oc7 zA1VY-jz4Yq)2VN7tH^Xq(P@B`7w>}S<kGfXmxH|qi zx+}x*cuYT$AzQr4RTFWUVt=d~RnJbC>+A)^?X{^|I?PseAIK6r2K{p_7?eCg;oEXx z#9f$B{ta}=MMIDlpK~lxfII*a>W5a~yw*Sq`kXAZu2PFFKWW$rfZgw0;Wn zIZDb(Z5=H^>kgoC!BIN`W%W0+{@E%k%4VuVwN7=kD^^*{lvgNLqqR+a5eM3{F~FJ$ zyQ9AY$%ocb2~&VqLBb9mhVES;@C!bMGBZeTxxsMI?J7apvQ7p0nXkK?au(DJeIN*V za_+eEE}@8lG-!OAk39BGN$}VgY2lm#Sm=!_(aJRqtsnJ?K5I%Rz6QCa=cU zqaUCy3$Mq5-i>;uTKIx{IYjH9!y=D|wLL-aVUhF-CN+vA3~OtH-p@tSyO{JBk%VFG z7129(u%MroL7Hzpijv1Fyc6`X0EIRJ=F}=b<3)*Yb&4e9CFpAaG_q~EAaL$fBTrgl z4$Ny+st2g3VIIc{2Wk(YO7M(Gbb>es}YvK$oZQ?i`_{E8sO^wV&U9F&> zzD@NW*2V{61V#rzqRQJAEPRf7CqMgka?{)RG|@CWhb^DRmItZ;!ELIyV?hu`LK_ie zTjLer7%cp0SK%#uAQgr|(Mr|4&(y+~X)G4rg4zZ0Rm`=SAA`w^jie?%5F6>8n68CT z(H#=j*gG*z3#o3v41F{oJPdK{L6HB}qEOK-Pk_okZYau1vA%#Ld-*YVSv?Y2y#r(u zP*)ZMYUZQRMq0|ud+WRPFb$Pg<6BT;Kvq62M0=GTL&2{?Pebrj?C8B0@cITN2N>8+x#}5IA&y;( z5=;>gf#o$Mf%Q{a^(qQY1=^eC%s~FTLmR*KbHoLIQWKZFblwGFGpdau*jhe zAwp73*|HwOY-#+@S5Wm1OlqeZQgo+5c~TmRa$s4UkRMMuAwO+N=Ai_u&zSV{K{(1~ z`*Z-$J{JT`d8KW-(dvlZi8_JHvy+b@g9WIG#;Q!nYgsw~8MliBI1mU=Tqj9>))IsA z6=?19%PWUY2eRm>SmG{_v`j3TZ@hxwoKpw@AIVQJ6M{Ao{X%GF!H@xNts9)ct!}gu zvMc|15XsiDJJhOXZ4b^lO?*CD*a$^Xje#PKes=*t{WLt)$yo3nP#BDP?g9&IS)7hm zh5QB(5J_Ll2O-#dJ&E_m`dR;0zCam32N5j@ba`!pB_g94zRWUtS^qR(6BFw6yO2fQ z0?OshYDX<9Mf#zeBmL86SAK5Fvnx+`%8PcW%mQ2?4Tzk+fg}uIJ%Kd|-n$SuP@5UF z?hJV90#)@|Edc7NsaFAgjTW;$v{So0)UJ(EYY%5bcnE|C#=|m%Gepo9YS*i=SYobS zY#+}kq$&I4dJt05O)j}PsjO;Ddg(G$V)kh{ z(9`E3%-2jHZQp@_FU5#sg`~kQ+k}s-AH#z$g^oc}_rUw_A(j7#vJ4wfStjMfBi8$3 z9WW+&usM)oB3V~r-6f(i8F9Q>iIk?8&b|8c)9S zGSJM7Nq@_-NESJC7NQ#MFX0P>{MDnMhhWtKxoR7c(yZmf0D`0AFx-Y>L_WYPhyExM z=VIbcO6(*kQdz`C^XMR_MaX?~KFdIWR(rlaq%;F!Q zz8`T85>e^!;BP_Ha}pO|RIafK zX!v zI|G1E8lT8IIG(i}v*Jc2SGuykk6BZIQZ45p84Em-zIq5IjDrNzxqJil{vV)w^G|#f z{t&nqZ@DR+m!>`iE7>qH9);VI{OD<*OWXL#Gq{SiRMx~lJ&jf;`;AaM7`ER;Mi!?F z9xQ7BR{6#eDA9@7S9L(g0w)1qcq+_nY#{42mVhd&J0Lm=(VMx6*oS*2XfFp@2iGv# z3T~Jz1o-Hkgd}96nhuL-PL3L$??QXk1#7#6J>e)}BLeKF1todkv@5pRB`69V4zj3R z^@&9LC1JHG81`*1yitBOk1TC7Gg(n*(Az3M^WQitMQ1T={2s!_lQu~Xp;TyiE!rR; zPh^c{y93rnb2}{kYMkz+a;#*8- z9z?ULHYF~<{(HmiAJvFh}0rrH;b0m;w7LHpu4Z4-hrk)IX4=uP+bg%q+)q83|rt0l1PgUBB zZ7zMh;gz&B=#{rq8x2}4G zVq=WS4s&sq%2KKws+l6MsEs+~b4_aUgFQk6xu%z&|& zK(_RW-2hN{mX%1NC1~a{lyS`s(2_ooPl6FO3a-@qh~$6V#7$VT0Kk?@06_c9$trf` zx7)>r%graH#D+^#irAythZ5@?6kA{gE)KBmB`k{jaDLVbk7<6^1`pbv!+kpb<_Xg* z_UsIJ_v;FO9gxp+pr=?&CSAU=wr}Zna^krCj5E-@W(2`x-X&2V)7izIo`{aTOP2qccU%D@`tV{Pr zVU5wNQ&H!HK{>6h^er2&;6Bzgw-0~(3IpBm1u|fDalrIv8(r-As>jUHYCZ#Qoz{Y2zcwX@hY1Rf&JPTMPBn|hWwFK-uHK)E0rSQ$gA7Y8SM)t za5PJ!4%%26_UbXH=a?0Suw#8bbPm>$yyn}C0J~Qz_I4<&VKwSovcDGFfIQg_>;@Xf zp`Aq4s_Y*&>lk5N^tkkcy1GkhV~gdLC7rl!R})w3{3WcOXZUE|73jk-sB}6Jx_-*C z;!b$;<6CtoUgBkXMoR!>+|tH0U&RKOVr=#m!{o=)6?Q_7T!q_6>w01Kxisz%$GK3V)Ol zbSNC*D9Ni(qeOb4kib+N`tpfcw%Z!~?qI$Wx$Sth-(3>BT_NcQ)BIQ{EjB5@o}%gJ zuS`q~p&VL#7T4{1mu8s>S#c-5XO(#Co^k{_S`apes5qS}USKU| zH84F-Ih1uYw;77@Wk<31M6rD92|qBhS-5orbN3N0_9Vxhb|CJ#(-M#_Yb7+1e+ zpwxpXmR8}-mqQt}Z@kHbqy}q#6!j{-x3A*dPjn>?WMLdYrSd$w{VcsgiLASqtSa01 z6Sz|e)Ss-ZC~t!F&pKkgly$F5Vo`z~^yO)ZMiYp@Ikl`E^CPw5r6UCHFZQFq5Xfu7 zn%96x%K&0axB6eU%QfXRCuq_9W*&;i3RphUr0!U!{aZU=AJHBO~o<7$-Ei|&QYF<7Gx%Trm#Qh}?4;^3geYn%ke(0qL2*ZlSBbAlm>e*Tr{r zfKZMRH~>M6-OKxT623aLf$(d)pg=x<9ST6zeosvykQ+_+b}s#?%3^*XB((oulOlHS z(YmRu!qskWQ;iKNe1$i$BJ^vRuzmtn*Tw{y-#sS|!gExd|EhzSvEn_g|2Kgj8$}P` zN$4398`K5SUL3XuMRusi2emI5j8JR+FX-lxcFKZ04p9WDb3fb(SJDZn1SeCOU{)w~ zz-pWUOm}<}34XzCvvD6gtk6;#TMdMeBSlwqv&nWM$q;(?JbDjpr*3lA^0UM@8GApor#IJ704ABXqs7q7eca(ND{N`yR z;rA-7AN=OaRXL&tM^uhi740PgmgqUOUclIz>#nR9GvS$@F!{aOhaWnqpS%pq#!-6TgMq#0gU3N=t45dPr;eyBiu z7}T@#%svR=wyqD`vmp?OFwyqDa^(krD-~r06&Hs*z-;Hc!QQ~^^|%vnHhSxqgaA>7 z{S#hesQ?VdE6h~92bV5YjT=pEF8rR?9s=c8vS>5$;ef@&dYjG{|0zWHK(Oo^^algs z8+hpOlDS`k*zN`*&kQE#On6m6OuYg{`w_YhqrYgYeGGjDLyOB&b22gQs zaCpxwd8U{_tw1^ss&fxaSFOXYK!^>mi5j8zywY<(XlpPEY0Y&>NW^E)X3C0 ztRv&F+RdWOST=46jKjQYqZM5?6mz|bRt3{4KX)6Np|c+8g)W8j-bWQIW`+F0h)^#; z{Rh>vJU76e%r9YO1zje9u6@?3W_>ijGUbwc5;s}Io`jVtL&df$=!02zcS__3Q~7Nx z;0~0WPpd-%=CSGp;_U~KzoDfOWRYx(;7$1KaIZU5i;qLhKr>g{C_5 zJ>ohzGC#hA{tjAp6oiw$9Vnyk3$RX=9p}Cr(e1%O=rAbEn}mXnes8$1XKs&;rrlxQ z;lU2i=$Qvq%Q@$N=zc4#belH=SH0pZM3Dg7;g9$n-gGU`tO;1R8=Y4zI37`s7@d6< z^;!kWsZ?KC>&I<*L;>SeZ$+Y09H>^BX;lCFyc1VsL7@+d`iD7 zDSdb%y+5UQ?V)&*@|^i9ktdwP2j?J>a(?kud^I-z9GsD-ob#U3o06;_fKlBW z72WnsXl#BC@CTPLnqh;-VK#v=ndDT4bHN|()z$Qsg?0}%JrbLK_3z0|4-ri(@|3fR z_pDx%-1rily>1B5x^-z7+G(4JU{Fyu+rnSy?)!MP%G3agzn&y0w!*q2DE<(K;@2lh zQ3NPXD&CX&y8i)+OZydj+6j>lD=_{+c8D-@H}aPQKLp0r12am(8zx z?}>&n-_sts#ljx}$zXY8rWKcycUW~li}cjP!Ll!a4bQMzq??V2t&&!HGs|pkS8@z3 zn~(7bU&mf%161WU&h%e$HDn%-nIV_(Bs=z3+ISi)A`fxJM4SAubaTi#fPGU zF1tP3&l;igcTNBSpi!4uQBJ7l3E5~p7cR<)r5aOnT*g+&H#OTRb5OGy`oCvfxUbml z=LZZUmE%dN*jWAu?G5}N$XJ`$!_ne4=V16j zcTTs@j-MSX_IxR(0QG|rr+=sLwXZ_)enLZlwRR7V5<^h4wB*pT9?c6|V3N`ZMCERq%3 z-+^0!Ds#@GTKXS`iqGxEvjYeaDF9-c(0GM)Ly?nW+{96bAbSv4RhJ(~y>Kr|A-}fn zImAK85$iV?87&>6vqxrtePTT6u;`=JvIdd`%mx+2X&{j2(T)+vix( z8I|3jR<&zGjHewI4JH>>tot2I*~*uocZqR1x>IMX-g8TK#doJOsRzAG=b5(!Z0OAY z#l?-wWO=lwV3XEnl|lE+(evJxq@LqM1V$~}w@x^UO}dW^6$5$BAW4ecGK}*9iH)^; zS`q8ds8*0au6pYrnjV&%gN0#Z4Y4Oz<9S71Pj2c&k7Pa$UK*uLiDajH$RNaL!_RV2 zP9IOxfLQ&UOVAYzSK!XuiO#N~?Xm1Yc*Z#?mWHVhoFP2S+ISG9gO}e*Ea#q+a&LXo zetp?KH8QCa&wN-9sK&&DlHP}-`!4|Xq17^{M};$uaNNVpc^99)Aw zW0PCej$^8~vE0qoPMoWr5*~ui@9m&nse4uV@23R%RGF&m@5D80wk|?5%kk4N%B2pV z=%#b&TY_m{WlTDJ8ddQ@=q~;4a2lIUYSjVly+$im9D5sIdWn|=>CW%o^Y0-KArl42 z<{LhX7Kv&_LPS1+>wRCyD}X(QuVa~rJV&<9O)}(l`*++TW2BF2VF2d zJNY|1&?a<1jXagDM5gvq=W+*Mfx)y3(7mU%r;!0vGJWnKdwe1 z!=R=$*vDnI!fFd(w`v^5luPd+Ccvruw!%&$lhM+(eK?HGAt9e80@^zOwQkJELYV?oUk1|QQL<8A;L>2ZU8>mwPRRA7q{8%ZPjqoU|d=u%p zJ_+)%J2S~?2lGK5bmS4P%5)f!)x%OnU981>@ggZbizsw>Bwp$@FX}!o69g)-Hc+YC ztrjh_A}xDas6V!c`wrF=t#3t|3uB;YbtR5eEVZFhARSDGSr;(sQ}D!y{!#2E8|){A%C&sJb>OL2Uw@KUe7{t%nssMG=~miUv>4T=n1K^Sb%L%(6L=AERaK& zqrht29I$?i?i|J``+{ht$j1Mt-k*%s0{UT=o?AcXGnW~HXhkP zk+%#*lMhlAe(x60u9n)uGc)~#K-}eLBXLqZreKD9jCNJQbc>cNuPBgLs21<3Mb5l! zQ0EQ90HBI=Tfn+2khfX?9so-z$k9JmBR{%q^?77I4oAScp3>MYw#w+AU|DFnM%1Pa zHKJKsw&L9kqFsG#@G6@PcS~2{-fk>&mCb?2u~zkgxA2cL{o&b;m^D1pp+=Tw1DRWm z8zeyAqOCYI!zKfPm8(|bHfNI=-P5yYpjMk|WZt7NvctCFxn1iKWesw*l8FCEHhK>f zD%xKMv3*4 zlDu8|S{S&>qu4iuRC60gZCZ|TG)v1w!@%IRqHk+O-`0x0t);%r%v2+HW(Oimj@YPE z^2$^sa(RTkq@gR==nX90fEGAwaF?wp6li z@@(=f{{t>Mkp9-eo1e9Mi)?b}c^I+PF5FI<@g0fTAi|+#dI@o!--u<}q^zPWcY{(I z_TssGwwdGEMnB__xyntMe}S3X42!7`j=zAWG++1t^Rq`y6Ya;Nt$T3I|3T!o zTH2o_=Ww|y4Qgq(4}}@C$W^E?2vSge5?$DeY+?J%7`l-;!uGos!=KP>hV(Jus|C74%N)vM7KGQi^)& zbkbArC7Ycw>3$Ts_5Q2Rp#$bI_-(XLJuV0qY4Eu{Z4fG}%%!Q?hjzLrKyGP7`s=OL z9#xq^c3+6U-zbpu87gBgifGmb7=@_acnLum*1%ViODM~^Fvp;z93>(LR?00&@!z9+ z8Z+|ajZMMECPQKYMpQ~a}>EvPo+5d%7P2rR_t*^>t>`OZK#m-B}jqd4A>2 zM^cK1QW{+(TYZREZ*=R5$ep5nkD%NPD*-rKWnxrqg2Pq1dc5cKc+bD!J)%q(+rw(a zN%B`=X&bVjY*4u{ONvD`76XjHQc4|3add#pqJxfJiM?(!DsU_;WJg1-jU1AUX0y$2 zNxJ|@zr}F@km5b3$9w(-@5w;U-unX}{g(6}07-E@f%IFdXAyeVCfl&~V+jSve`1jJ z33_*GY}Tef}s4J`q+!M9~?8uJSwSJW7km@acC+QcM4BLTc%< zUz(!_y(CGSK}0o2%P-M61PEol6hC9fvexWH^S!BMnNCbMvfhLUliYO8BVy09=h1|S z{f*a=npVC7?Kdhz5#bvvu}c_gsKiZ@qK3*2d_d;v?UZ>{7jey_E-^z8V<}FpoX`)^ zqYO$9udNY=2He)OpCI~eh*6-y;MwSAEK2M@|Oou-Lxa$U(G%<>qr>f#@oOqiq z-dy5sj(F=U-sX!pn|NC+-rA{qjHnt#d?g}Y5!7h!tAcph`4)&5v+?sIG)GLx+bB;% z!C}N`2SSm5ZcP%id+}d$oC+#<%eRSX^ouGI)2QX45$MDjXxTf-4a`Uz3>B@#W6|DD zt+#QLgy#@}=AP=B))e$125xmd7t>qN!`95-0CeY@50iy?7I2oo(iGkITU475?Gi?J zm8MuI#&>_+HP2VGtdDlZ=ehT9$yRz9dZBEhvk<1U?{B;2S$Gqt@=a$+K##jAMGA;P3KX8X}U4`7skWBa^H(O%;Ft%F6hAEb9ROy)bG9b*Fg!J}!63`H=a1R|>c{lBU8gjz!{C{{9!dgFaWCke8nNtWK(n0vbOfxXY_&mvoBEaz_SRnwE*(;wJ3(w`m`)w zM`>j4`rKo-*IKke;U^vKwb^ngOpCuL+c7dlyUyNb{UA#Dr*3a)c+fFo{c;HHcwZr znRT&LK+t)O&`-tT(gu2VvaO(Or|>Wyo&rRbLq}<2c53!An6zq3Y`}+>xKfo5S=k1@ z(uGZX&&gFAAg8G6wL8{L|#4-SC2)=vmAPf`#~1*zfxl4_DX)>ARS&R!E$u(mZ!PFKKT%-#*2PQ4PFgZ zoqd@sUSlBJnlnhT|NBxEE~5&w&K`tJz5Ak}16FM3#DzbC$Zs(6R3DNV_Iyq-{*fvU z7JQ~qC)KVOkdg{k*t9KQnO`hL~MEX9W|k4UEq}oy^mR8IxXF50ec7Kh87% z6VOJnhw>6`oF?68L5E=@H|Oy0X>*0ncr8VPO4xq+*JS_9!3PK`_DE4qtQVfINV-d; z=bl&hm3+r|eS_F4IrtT{dn0;9vQ~I)!q@Q~M9~A@_3|^qO|UbNcQzP#+z~L&Ipk;X zOb_lapC}}yG~nG(K5Y#h81dGr^5pHRb-U`_zMv20`KT3{x$3Rg2ZQK#0F-8z>fN*8 zN0|0H_R3qY6{@wSRgDboL>I+Bv{V14e1&an<Fn&Q+8;oT2{R1A_Xin@uk1WZn1-^_i)hLkRsZ-{2*Ye>V+l^LB zTvX5PnuD8g{uqj`Br@5|9Wjtc3Z(cA6ygq#p=BiTSED2rEVHMPShb^Yg4Pe+yp6hSwYJr!T5AzUqjYIc;D=wo^8vpE(4huN+5Qn33%Ek~q%D_K~~7d`~;uVH{48 zLuh)Uz-v-GP>~2Mr+`%s{hR_et;9IoOB-vPwrKb9SN12&HtGoNf}5;X>=V|>9pvFT zIu&7LSrR-Fp6K(VZwnLI8M<3A>*Rstv|os{y&`RUa#~F1Z(`qA8!0l_%3Q*t<)lQg zjexyVH%U_A-8Qu1*JgJiYaQO!$uD>^6>tmd;X_-Mh`R9j; zoFBV7$kx$?FLZaK@n;N6kX`TRXDbjP8lT1A=MXjQR0Ib~({lSA0@@>x~^WQu*v!)-u-!ZtU6mkQur4-&ygh=JaNdKUW)xw3Cl z%-u0N+XN5qK`kBOwgcRH-(Z+vg{-OmFhS?3Nu1Rz0J+=u!*iNhh5G>&;i+8kG`=k` zowJwG1r>C9eDI`!xH>XuHJHv(%W&iMfFJjj#N8AH@%qyCONo2TNF~kc+z0&jqoaa& zX45eVJkHU5)-vf{FqK&<3+NPWp0PN`rjKSm*CdzySA#U?q!IY&J!vF9QYT5i-&yot z{O6}(CNHGHKwtksvQI~KPut=JegVd$EuSKxvGaS#r+?VWE#wpcqQ(%!(`HDVI0-mi zBZ~Z|=|ajGR?9MLs7C)LGQ~oY3*I2;ZNcK5K+CV&B1}y{4u(Ap;R>&$J%pt{NX3^) zk@*&_NGv7z7->ZbE{@OROVu$EW`&O%i?^ne zSQYM$h9@ng%S;a7$V$2uUD?qaf==ZShIZZT{2>bYWylBda3lU3u6mD^&rr*PsBE4x z%WqR7{g0{M9Sc-6jz)Hg6$ITc2u5se-Sv{sX}s2-&?XLDSu|;FGxFq3o*I96*gFs= z*YpcqM}*(XCHz`_EbFIxkb->~V4o-v&7GonH|y7!&fimqQ7_Ok8|{HTV*SKMn9dy` zlx@6w#4$zx)^OJNJ@I3xcosO|{X}<~&L4M`C$`g%c-@)V{=!jOU)6dZ0+;I@iNJU0 zs91nM`D)%7bq8>)de2UOl@exa7NYAM+ABn5hTL_4jsr@O#)Y0M{X?V*ZrCO0>nOV7R=EEl+BG%$>4sCl z*w2mRJD%hBm=iCucl?W3t~*~+Kf30%gIE1757oIwEmQ3PY0lpIFO)Rtb_dg0ZwT!d zg6|r{1p}S~rt{jQ@N$Dp04OMkh((6*oi7N2oW4rnJ;aP^QCE55%>}&&gR;LR7#{Wr zv=-?27(#RYl~A-3R+x+2pH=y73v{-`Q&WOoBY+in0aPyk%`KR=9@F9l&n5|A;=XW@aR$pu+zhV2u90KVIk>IwtDYPK2|0nz+`04lKcV(dmS+d92X#9G_ z#r(wL*I{k$>0j~g|L>aq?fsZ)$3FEfJVLC=vzIT!6%pF0-S=jyej>0casO2J-Bv2g zE@4gR-W9ZNR6BMCJUakYK&rn2qdwNS%1S$-+-<};W z5JHPtkH6>X_Zg;_7}kR;$&LjIZU$73va+(~9< z&k=Dngsy;|D>>bj;oFAsGPNRto3#m#em*&2ObRuu0~i+1}cPLDl;`5J&I1g;_z? zh|75^pZ5+Z$Vayz8se8V_?K9_V?noQZAzGHi|g!gM~k6xqzrh7R+vZDl@XJkI9sEg8xbYU9BtOYR!XQ^rZ;XBd%@#l0hu;SryLHi$kA!&Ftjfiw z0M81y(VOn#M?rjEeHl*EhtY(YZ#*r+tp3~R+DAM(@#<4#NkcVoY@t148*W^p)VkvY z$$VL{clh~D38!a%qAQ3zsxN;Ba`DeLb^BBI*vI~Xk1B1(vQr3QI*J&07hmiVyeBV} zUj}F#o1q$~TNf1pkdJRou#Bn$DpF?zIEd_OLpRKi7uxTFd|D~OJWRlxry6Hk7viou z&p`NY{5SCN5u4&CMyi+4iIL`wcw!{Bn>!K-kBfwNDFM5^wnv}x(Peo*UhD`m<<;nT zH>FkWI1%vHl#k-IP)r@MBw4YKkLBKG^1_}JkpJF-Mkxm$Hdk-@$Xa$iYgoks48>$OZJV!icG2^H(mFMO>3 zxq;k%(~C4GeHUTeZU{gCJkd+lQ7o&vllL{GkEP=#Qq7WZh_kKcE$K+_{}V{ zEeI%6S~Az1t}N5!0$)nIZ~J*rnNmn`vgm0F+t9K7O^dc%Y4^(xmzL$($u`lp(o2`o zMTbW_5X0rrF*@I9Ujp^t%xrCtJ=IYmhxX%M%I$~9?j4ziVqA3%5qvKS3!_AJRaVlS98vL2+#^BtbWWAco_`J;hZ={qca`ZHJ>9UMsQ1ecutC6etCW_lFDe?;qim_y1sie7-W&VM|>Y)2x@ezV*zk7ya zJP1h$=8RYXuUFbcebcTDunlTneZab2#T~0(Y_kZic==cAs0;pR9vLRBE2bHqG?!VasM&Zk3x1Esw&mc>%nzYPe=6OpgSE%rFr6nC;^qCZ-_ZN3fX1vD5k9kx z)(0T`M)aaS5MbXDI&P=o1yntYU)H!i%TG4n$Uoh#R65wZLG++}%reyBH%v^|GpYwD zW`m0VYw>RFUKp%AW%iS#1>1>Uq9}pI{j9;CR|6n8n$cxb!y7N4541Ojw{c*e#OgAg z?=K`%(REflP8qL3&1+N3@R)+PL4FRmeA$LIh!BZky#***RJc5x)v@2vSLhan^C@!G zu0+p9LeHqwrTTWYyb?NRY)C;A(B;|T0gBO(qS9Y2{ml;dqSwk(=dqg`F5b-%P5+B- zZq@}(-V8urva9>g{h+J3%^t0Tc@zp>Mm$XUg_i-k=I1d{#hU0$7M=Z;Q4C;|z1#j3wb#{p==9#sHv zc-FFe;g@ZN{%2zDV)O~fk{Y|ofa=d{5F@fiqlwS30!Q|H+n@e0=74%NoKAR^pKk*6 zXXiw3fj%hSbMiC2a5VmY7Ht5TGI1BGQ+!Rtbp9k>B_7T79Ed)D7BOUhIbp~%SluT6 zavjvL6wkOt>~k8Dc!E#MP%0+62g@Nm^v18P!{taLH}YBJ;fPg6r-*5#sI1H?bG9R{R`R**f{)1$=dFmy-x^NyKN5 z={+bv_bM93hy8v7NZW?^n8*p>oyatUkx4H@wDI+Db#D9gsm#_PuM6foj6)VZk1vDj zpw_akTIurEB|AJe=6S5EuSNy{*`D)oI!#uC|u9z;!bVM<2y^e{{*V53lPQA8}9?FezytytG>_aPwb$bTLB(Nm;M2Bbj+2 zO4@tzj^yKH7(y4V($|GfTc8+EIwXBi1uPe!0!5~#k}Fl>%*F&Ya=VG&P4b>zlp(K3 znG7Q^%!WSmo7B9GFov6F0(}HW1zx_QgcIzxs+8FY#{BZ-NjHue*p&Pu@TL4y3H!#)8ojY2%_m2*APp2vH9eRm|0=~-$7 zoy@}bma1WWx*C3J7HCC}y@KR_gBmW*@iV9GBS~79LUg)>?F)uWvi;#=V2{VccQ^o_ z{gKB^zjv>GYcOKJe=#z}Eo;Qb)`UG}2{P2+W9XcxWfrsD{_s`rt&^nK5Yu_tqsV5R zudgGUyhcD8QFi#f-{`3- zv-;UATgQLlLMefE*ybTSyC63{cPQ4~rZe;?`cHKFy`V}=M3rl8o3J0t%DPWKMc+95 z3hmM#i=)?pjt-pQ1;MG2;7!@Ex)+U8BZ{ngYZqC`MYy$%-!nt#p!ji273Aj7S1@Lc zshc?_8roAx$*Pk@bpUlI7_twfGyvB~*A<;!S zXjWt;j$&Nvji&RXd2}dOEo)P}ZE|P?)p-YA!uWZ5xtCR;y-x9h?1SHGgB;JJ#R$ri zqbVz1Eb39%&bYMnIMf$CK!w_t&PtpJ%+4QS8xGz3@vU`CKsq+D)P(08W_p0Jg^O z3Cj1@>KR?b63a^TiaG_oSRhfD(h-8ax3fs!(xNwX)p4mZj!g6x!d1^6EBOZ{Ni0kD* zFj6v~ZD-r)mUuc4TICYg_MAb#ts*$^4I`%C}@5W`-_yU+zJzsY>PRtiHF}R;NIzBPk zydu`+Xx%+4B{tlXw|Nf4jFPfi;cPwi*SHsWuPqKWOcuH#f-0Q*V+J6vo7@xtaY zW8=hR!3fx3ns7?kUIi~U0<7jw4~O}93KCj9HF)i}zcVp6x%|Xx(~OM}rQ>a3X&9oQ zSP^v(qjN2~|DC`iQd@Z~lmNbicXgiC9Owi1_tnB~RFb25w(w&wVHbfOGN6YH=waj` zS3-Wf$TwZ)qluo*+5->Xr?5`G9V%cU_bP(u<*sX9OK||uS-Sud(e;B4sk2c0b49d= znhUS5P`O67hxSx&J#CsGgv^NxA+wU4wdVuR&jx;<6L;1Yy9ddxNl4rCfwlvE*HxhH z&?oyZUrNw+ho5DQT^)DI@f;{&ZGLt-$fA)&7DS{;Fd67j8(ARW*=9O_GY8LqYL4)v zlhC`^^`>*iPcSj-t5pdKzSSSj+PezTZ>t;{Bk)iT4Wqy|xeEQ+m_EmQLQlmTLfL#< z$GwYT-lmtZh9NrzUIWb~9I@^-otbkGxm*3-F9bDGJ|vW$qpphM?9+e{i|(F^cfBPr z`?>_7N$<)f6TSK7&MuOh51dupdD}&D-{6AeLI*Sb;anuSF)Q9Cf;ky6hxLft==RI! z{Swiez$P-xw$grZoC@Fh6B;LHkd@5xqr2{2`Ub;YKS3c{P?9TvlH9No#kXiRP549e zp)KgA?!bWomel{kal%uQBZtQC9S5QD4sV0zhABc2fM|461YSB+7>@yhy+M>Zi)Y0_ zRS=NPajIQAo2Z=k3@(dp{OuJ;)?g7ha1ng_TUrD@SOg$61L8y;%1&Mc7p{R>U2DK6 zt~BGDe@koNmG~NXGqK@>YoLG*FNm!dL43tk3gSjHwnsPH&D$YA^9SJ{=~!?-e$3{2Ja&+=%$6Q7n@DVJuT9b9*$g5Ko-iV`*V?o!5oMzo z8-6~oHfq;z69KE%Uxjp)66q6qZTNM)67-+LFR9`8^PmlC0Kce5pI4hL{w3f``o12J z`0~kEVUSHrci@NH)UeVT#Lwz6e|j6ncG7qDl(ry#V{aEUHav=_kCN+Ku2!DL&G-fX zTIIqGs~lUpoa0aTsg<=z8Uc)N)ygR5SmmSf$rSAc<@&TBeyA_Vg6Y{9l>@JVY>dmn zI2Xp{;uridz7^v+#tXpACX8(h(pUW64pee%AyC!cf(L>S2?Klu*|Bl+N5gpsW9PyW$$5RPvbVY+vEy$B=w z<*P&(`85BF2qUlNuZS>`8~%a_qdl2di*O5umxypHhUbegx>)lEMHs)$&8LenUa7!? zB8++w_lYnbPU6>!Fdb~p6=6Ic%ZG|E9-ZacB1{LKZ6Zu3l{??1FrIbh--%|7h?wCbrT}98B4V;cj1OX7 z6ESE0E)WZ1UKBCWzjt>}_?+YiSu=Jt3ynk$T>fMI)fQgx*Gpfr6#NTavSh5!|8YIu zC6(5FxlPqh-L6#kiG8FjlLBT9k@rvy8Z^)tg2^%@^ZkEG-0JiSaOr<_!BWCnN~)Um z-m3W7NtU0R5WIm1USCYK`>WGpybI9h|8i+SUw@|?&>-6pWOX3on|hA2%o;H3mFkp$ zSqIRKr9;t&W9}aDnHaD2qEG*RiA`IJtJ9%jxoS3kaTKe{@K^i$m`cP~8hf$9B5_Ni zW6?*&XIe$SE;7J--?=p0vA2`qZWd#yR9gZ`gLxQ-r#Fn{FWyOv<-cICHvT*RANq71 zvXCL-gLMXX`%d{#;$qx)Z-wM{Hhvu&yyCCq7o^ zsX?Z({D1$=I+paMyNke2TyP|Iq5tgV%PbRY>H1h9K|q}TU7WS)!|_HmS)^yiC5&VE zHM}7;Sn+bml%m}L{ZYM;qO0MP2}n?Z760cP)KI#1n0yB=w*iLZmAv1Ym?p&m4opX26z{G;IU zuU%I>=y04vlUKnHzm505*{2xBC%hHkr|5G5oMep`8x?OzxKVNZFUUcEC-vBj$8tqD;|w+SQJku|5G_sPS%+wzH1#Fz^tMSTh*|==xwZH*mRNn zFOhspSMpd&K7W@;{*6eMyON!hd@!Dj=aGY;(1q<;ZwtTI5sq$ zLvNv)2^x6ITjHFaecM}f$KCd~gqv$w(0fpui6yRCN6uL*-}?XB`x3CIj%?xT1!y+A zQBZL0M2r}s;*tbyO}eEqjW&vcOEP8xLL)?kPIIq86(_UX4*N_v!fivWt#KQ7&KzA@!fA? ze7E5_9Gcu=VWfQEJ$B|JL22S^I{o4M2>!jh{0jeWpl3qZ#fCcgDzD`qOm^u|I&MyW zNPVambGcD+m|Zc*w+iWbmCAi(X745KvPkbGo!Cj29)@&?tNDG46DiBKiMXJ!$8jr2jPRJ&!1M0FFcIJ+qb zwFVUf3#k#pm_E?zor)r#+s85-_708sd$67lx&ypvg?q3TkU*7~J7)5&7StX^+0fLL zSdkU+7%$T%XT|O4Bov2^A%v)q?6w@RrF4oAja{3I-;7)J4sWvoiOE`> zh>|)xBz6M>UIifrc^kF9V7wbb3})XUdE@F#T=DT<*07rn5Dnu)w=>+t1iU>$Fxa+Z zE%}nmEoDMvxn(xGARfLOY}@e`AyjgA*(AoIZ?QZ23IbmuU@>2V;xOsb!-(Uk4}eZ= z7k;oy4Tx?k;5*57zE&@UT8%pnd0Ucvy=@n2QQTCxsU~$DI*yCGUk7tRZ{0qdlY}*SNyqIjb{?(6cH#r{@&NTPGq$}^wW;)4c1pj} z`(uLo027YN+#^RmLQjqDlc%Y2tARYhCF!tyHi+>8!ky3u?t;;jHbUGM47FBl!|9k9 zX1OHxJ8#X_2)*R@g1D9sJbAtu!&-I;{UM%>LA=)=kfm-@ADXUiQ^R)@x_9DU`C+`> z&4#<=H8GhlQeln#>GMCDJ)zznXF!3s2-MsA0^1Y!UoPlBFU`*7`1uC5W6z};B3|I! z!WZiUx9<1(nT01Pv#@6)G7Hrzv+zY)-DO}FhSqNkU>5ABNq|_xo9pS&y=Hw^L-&St z4Bs5Uy?+p879a-3Erf&Hs;g9@p_`o6h8blKo(kfk3>hqmAzdbM`?`RwdVY&|5@QVb zor$(sFK`9I^qO@Dn{q0E0g80CWV`)IDA_L#qVn>_Eg|_;I%_AJ z+!Vpr{Cm)vMn$pgF;+ZF7{W<*sVahY!Iw14l5CdmmLy7PdT9^DYJ9xbDeZk1>4z@n zvfZ7m3?9(3N9^v%U4elemR3)KHMvA1TrW`vE8C?Wt#sHXABd;#*FL8nF6abbdg~(< zoMUyx@BqFC^;EMpWy%ZzE|Np9#O#@h;{3)+JUi*zco1ba_O(>7D~*|cflkl$p9Ger z&=MK)0wJY2(0Ms(hW2=YZu@!93_t-K$9!eB0|gcx-fv~<-H$It z74R&zMBW2^aOr%iOnm74^%(n4*y+_NLG(%+$$o_}A)h+{-B?AiddELgj_3|)hi;!v z&_%ZC#1x9~707IaPN5io^Nb&3ZD$y>K9rwZijhBkhWe4W_=EZG2GmDbA~&uB)Q327 zfqRMEybjX|yk8S$cXj9OCId>BNP3g+CiyWQQ_(YB9%WkbG@skhF{lgOmN-pq>yK|) z=NG1$ED5LC&X{+}s0bpCs+k%pPuhS-(WyNS8rmp+WlssPh!;-u`C#CWihWcBV;cv+ zz)-0Orpc1?G_rGXCMD*<$%G5W2PlI_O^gn%5gzD}mcVPzcUA%ri^=3r2011ZRY(3c zcPUuY@GcVRZ0e}pd@L6Pp72ta=Ne%Wk1g|?@CPGBo;F?cWR#lcAtZ03OwCj51*V>1D!QN z5==-ZCjy?^ekTokSKc5Eb6oJj1TwAeiXP?0>*U*=I$7FV*BoTm$#xXY@x?jtPA$w2 zMhF?72$8gy=><+_jg`;gz_6E>Ng{s2BSrM4teQy;^0}vQ8pp1a7X(M{alj(zIeMva zlQ-yd=qiC@ifF=Bd|FO*rM>H|2I8zT*IPrwyx9?`Onf$t!S`X^nIL+{eC}bC2jXiO z^Y@_)Uv0hJV9)^n;<$pvW;5C^+of;OH>H*He9kkBKY^3lv2~KjE7VZ{d#NpUe4Yaq-?%cFVo@vLa;Lq|23x@i#AF5GYCi zp0LBxV0`dV8j&;9zb{smAI($0{6I@2B}YjrTK;L?*o zYRVqDm0ki}k208o0q9I`IUyWQJki-iaF;sOxrT>S&l-ta5mUYS#+3Q$>}0YLaEyA(z*0ln)h9{ zS`~{UVFnY~IV^X76|)4NaXEG+*Wg*^ZPqYFI4f}r)wo5U+=6?%ekm+_e735we{aiY zgrDD1*TZg+zNOb#)LlW{pNHfvwKSgttgBy*$6*W=e4>7=`igi|bw%FA#SfoZ-taIl zNNCE4_3sck5Ups@k;KI6h>v%YJAudD+7__4a*!umfL+i#t^0Pzp-)s7xXB*YBb1 zgzmGBmz8CFU=;K|_d{<&V{Su?%?TBPc9f6=Qt_6RufLs3799JE<)BUR&Zp zZ=;eND}<)$c3TdJ-%5>AePW$m*I=(=ex=IIG{`O#KW}i*AZ`A?SN+%8tEfj`G{k4O zG%l?N%6^evXIQ`F2ODbedmV5>_y@d*+HzF<)GqyziiTQzD2>$3E)}BOt`G`|87p5w z?%C3S^R-26o$q?=(G2+k(f4$2^BwS(Zpcu2DmJA*8WlF;GKW z-~&AH=jnXq2U)*1iR4+g;WV<pnx|&t2bzu9?c`5KbT!YIcT+q0Q(-xmJ?$Y6 z+2NNx_2;Bb{8X6f$1c^tX9$M^_c?}gtm1$q|lT-59p(%!^Nx^n0Biarv*Dk%t==KYw+h9C2VUzaDzxfUexz$o{ ztRQ$vw`I5Ba@MGYE;Zp5*nZK}x4%>KX{`9*GMn{)=gl-rAGY&a%@hPW*cCU27xtcJNJrd4C4$1FHT-Y@MCmTu;oopm` zm~3<@_QuI*)99bCv&mF#|)R^fp*;qDzj{!$s&4!EepEk)*i9BhA8 z^mBvlPCnR%o>vE8=*&LmhAFq{S*_m?}RIW2h>ywjuXryrASZ$!c&g z_eOQd?Ks{(#qKyX$r~S3wLi2hLhhu~@wba|i3KLdG-GCap^j1CP+l`yoJg3z9RTHj% zkk2AegRwZ^9lCNkc!5GSYc$A*=vDF|RHdMI4~)&J1pR&KtQw9iu$%6)SKa*UC8*!* z9NYS^S-ug*IL8dV6C8ykIsXDXPIj+sU8R;WU8MEv4{5E;+ZrrMI{1QBD!Zz+b5d3u`)UeSEB2V+jWit3s# zoPuh`gVSqJyQg!^0tm5^7VHHF>JyMZ#7c(@pJ8Ckt zvf~7!hUgA$K~AKS3dd2cd*V@tE-T(`UwxxP*$FvGGo~I>Vt%{@bF)Y6<~^Xu=e+9X z4ECxet5`9IV}f(R0=U9Z^3)aVY!AvA%%$b`SNvyWRed>3D~&Kw9`_a-%4-}Nx$jp0 z*|(vNnwc8fuQbRt$Gey?x>un8z3Pm*of4e(>19BAtlOjqg$K{0NBb?GigtORH?V)8 z3T#;inDO~SPsQKqv!8t_=V1)ROcE#di=Mq!k33+`(4 z(*t2DyR6BhgeQ$#bjGdw>OM1sH&`ygxL1>+__iCj)>$qJR8i(0YBp9vXWto44k-0} zDx8UDl2OH)Poo&Z(G6l)E`=*ZWFZ(2%#J5(1yN+35+F3sKgERFX&b4txou>iM(V3a;v)< zKE&IW_X;5Aj-p$m?uW%51V! zLG$FSnv-NzEoss*+cw-s!F_)R+pn#5CWYF@HW(`&BB*JY>6*5!PA6(0n|Hrr)16GK znW3@O6kM>cwkL(!$11{H)dR#Z24WDVSxyP*tHb=^bSE9S%vx{}gN(72D;jZFK$x)@ zrXPffYYW2yT!Nq&W~^E<$S)+>v0X=u;5_Pvk!-2|Fb=r6S@B7hgl}>J*He#dt8=<;IFd@D0$>8Y^%%19jHTR=$*ki6Q0AB!k`;RGyb)_{otA z1I{Pu(&;qa9x93Dw8%#9SPj?4W2@H3kLzu$2*Zu(v3rC_dgW=Fvb)8{mw2oWr2$6% z(mrW5_IOQsa+nyJ=H0DrVQgJ<%X|qMAlEJ4U$LJ|fh2N1Ejm(WrV8gX(o* zzEPZ7LfJy zfX_DFap>_TByT6C(HbIr0UhH6AC1 zyc&8q%PvPvQ090=nZ%K{8Xw=Q`=)A1lA{F+%yRr)Y|28neA}2AqzmGmQZp_g9m?7J zfS+)UTlMkz-ituHsTx$(v_~-I(~BImlsxGb0X27A^^>kPe~gKeuAa^dkaU0SjC8m8 zNf(z0FfLBJ7lu)a?WV-sJ(M=uN>ovT^lPj@y_7&sMdLcs@I;!q{4p$EVRC*|Vl_J? zt0s(u3{LN~cN(KcvpOqjtZx?5d33v|#Gw4D9x&Tr_2<~T69*RPKy`A-`@k86F@!#{ zD2hMv7+-|yz6;%}5~(Pl<&1IVYe@FjcS`mVtfX1dQp%^*suBp)3LYmuBxlo_zkJnh zw4b&~yM2X9%*{99x>OK!{(oBRmzZdxMiek=>3;=RWEY4*cIk}oHI!S1Z!LH!Ca~f| zg@JTg8}3se6@`DGT`yU4E|utVslSZH4{aH27vDhidF zpK#u8Mg>21+;2DrUrJHI&k0|QJl2nfJe5YxRM&VvrRq_K(C?65k1nwtQucQg{O~)o zoK@CXN0q}cqus_iGKHfQ+gs%}oWh^nYuywJE;S{ZsN^To;Y=1_c*Qc{fKSFzK#@=Z=U6XAw2{+-tf%q>D{~5iPtfFMM{3snZ zK33;5*`x+vxJ^3f3ziP~w9;Xz{#}R?^;b9s?i41D$JvySJRWb$7H%9*@G9W`<8i$W zZP18>8^)7h>^&_zg+49A6%>*<>x)9^QQ`}G54ks=&L+uFLE<83aU52E}`x; zX$_YTUxGSoo$=W)l46_*d#Nl0&fk=n2}9UI(`cMEhsn~2OTponiH_*g>nLL7~O)0I^l;>Lu}3`PlagOm4*3a zS3RV?gOK)c5zT6>z#E;>SS~C1IBB7R$E_?}O4XuDXo3 zkzdgpAN-o4&2slbgTijp{**b=uxlDv4#i};+=9h|*xR=2Xac}CLSV?Y-fmCaBTw1P z^Sl83>SVj+^zx7R>>xMXTKy^;eP|P~mY-gJZ8NYMiVVq)+#c z`)se{gyPNqn5tc>+-EaBUW=NA6XaLjU1~k9D`8v_lVhuhFQ=Yr4R*{dmX;I~Jz-b|Er6t>DGs1(GJh7(D3Z$VF{ac+PS!<{tRp6oFl6$z=~|=j+p> zU@9<0#m9gdrk2X{LWHaUMpa4lkOYJWUh|$`x1F_4mzsboxSHu3ew&GzssEkPjPJPxqk{Nx;c2Sv^8eipXbz7-d-TM9BB|@!>(1sfnL0 zR?mFmR#5CUn*-<5*`ZIV#UXu{W@&_)xW1(Q20_~bU^2(Ir57p>OCBK{Nwa(?G&&@0 znx$T-wad(++N4TL6!r4Q zvW|NxKXYD>A29fOl!A+WcW9*VHoV%PHe; z>IfcTDIb8;g$HkIW&th@bi?zbeppv@rE!EjrO3b1m{NqyWtZ0w-9yiIy^FI2NOU1x zvS_wTyV5MD9MZ8=WBOijetiQSK7MyqISnY@XUl@dS=)qXgO`+=J(rDy`{>U%Tn*dubT9aK3~7W9rSt zq|;;S?T!Kj-jU$Ug^s-6OU2l_8f@O?0ckJ-rO&UOJxPij14b$=&Z5K}VsU1XM(h`J7V9pHutRNE~ z-C5Y>fN;D(QMUD@^E4@FElkF$H0m8RP8=NQCPLQ4oPsH&;)>V^D?5a*nDx76>;BD$J%t_UY6!f;e9o4daw$D^+W zp2%PTiaDU{hk4A$ctCKM2KOcI>x;`OTd4#hlQGY)Yu42`WA*t}YvSLa+~+>ogJoF7 zR?R3YxC;5`Q&q7Ju5Zqn`;nu@p--#H(&?AYa!Pwqr&dkBUl$=MK?hlD<7`_x@H6SU z=v}tz35HE3F>JLaP0~85w7wAQ>M;&)m;za*s!w(rsE&}jfE4UwzZFK>EFb$*vKyUW z*ez$4^|DF3d2kF!!^;}+tZfI~JZ+wbO?6E?Dzbqps7l5YcNy3TAeTbbbmO2$4@pC6 z$r@HO$@ItsmD@pPhn@9{k41?VCFbK;q_s6%*hT z!!$)XX!%x5WD*7Y6(#0)FZDPc>NBSu)pm5s-A--3P`c-1kx>8zd?_(o;_wnlCVa{` z(~WV2>RK?$pXd88M8Vae6}y`Q8ADu)vu4h?_6&s-q?znLr%?vh#Y3@l&ZDkiVCD)^ zYx1?}z@}7bja!5AhvJGeB%EJ0!B8D^=TNNHi>oJup}LMLx-f7a3n~eR&}1}?#*6=? z%S@W!IEwFkcNuDyglHU+4n|{9miBUCSXv3PX&zo~8G@g##}mSGxIbI6IbYqZLT0E% z$5aj!&?~lpEwCM7Bl!UD#h%8>>UOI~Y)Idm3l$=u{{ngP6O3(3w$+T&V>M?08wNb) zC~((Z)f3JKL(;PuDu5(da`JdUAbCPUEFnxY_0 zTJ9c4O@yghV;fs9ev&GkOUpgv8*WX$Pa`CiFVc<`Z%n>ZCl0dJOw>Da8yvd*vYW*a zN@Ea$gVJ&v!8tij*l$Cbqfcy!d+fSq-1M|M#)w21%t~Yo4Myjv1x~3}J{Ls!l<8C` zbId65FLvD-8$Tf;7q~dri(2SlCNUXuD4)s4zU@5ZP|nKpS6d+%A@h8jF;q(@&!g#q z&&{}iorJ|<2c94aZxTqtOH%XLrQ+FX(g3GK^`_C?=VV+~aUe&k*+$u{=#CfFp3XtE zjPioVU<9rOHbHlSiEq#wG-uMC`825)y~6x}Bk_ns_o4ju)-G7KCwXLMdhh@*)r8{x zOTEsF(J8wy+ixPqcp2>M`V@uK>wsaq-GMg=pe%N3BGeV~Zw_6|k~@JCazCZ_<-ATy z$)WqniKRc;CVlLr1a<_yCLT}I^^&jK+67mtr#Php-|;9Swa376c@d)$x7o))i!)ZP zr4#Bocv%9r51eitksG&k5#@hmQ;vRYEa&JC%eTMXh1XTtywPA=8BCR0&;Z@K3NQl$ z=zj9yO(4kKcT2O}j%vAYbtrrBzZ97}8=FX@5G22p$0K)E-JI@seKe0r$~mEP8g)=U znyO&mwz~bK_gCyZc#?Dy$NHi2`5bmSvoS{<^RH20E`Od)7u+*0?7RfDA|6m;wna1T zmOYi2pdNI-j^X919OPVmgJGDuZj(mncYc>vh?O7BQ8!QIf*k*1;0Kg%fazZ+avy#L z@uL)ZXeyJIyG2e!6g$1g$CiyU7M&JxdI06Kuhf0l4%3c2k> zJ!TlUggd17C!Duy`ssy1K(*E375jwlb)OrITk67_EZ>Vg9W@UqKGg1vN`!y%1zWyz z80|lS*NS~&ZL+hYo^yUXW1!&4K_>5E=tKv7hqL5P%O0wKm|oYTo)kCRRekxW5xxh# z6_N_DTsQz6Q7S#T{fRhECfV&pWZFdNdfvlsGwXP&oJtPTOUW%)gg;|hD2plaHVOM^5L%z*2+2rYlp!@wH`8M6;Xx|XD_4Hhi zAol(~=-AsAZQNQ%mG+y2&U%WBja!3eupwL~s!gFt|c!A&L=2y7>FgWz7 z^)_pj2J5vt>pMSvh35%IqokOGWnInG>(`3s9m>8m%RWJ$93}pc9OX3H>wuwarvNoT zpP2Wo$ypU0??ie?N7d3<@v+XtrgY|@i}QtuXzTwQ`(>l z1y`}vDM47|;Q=SpE|l|U;#yxr=a((79ZS!0CEdNtI)hJSy>v^32w_Yr(45DV@dfxm z9z}XzGEn)K4&T`ELSOE+fpXK$ctTc+If=7U1W#;Mzb`uacbA$p;$3lG_234gvdI8&Liz+?i?Lwlvl%64%*LC8Y z&F9bU(qTup$IZRAT$u!z%5U->9W=S?}IO{{8%~e>UOmZ1C*n@Fa(=9BQK(?9E{khYk+2 zITSct!r^Z?e3rx4INZ)*BZr@Ic$UMf9QKT1@J0@A%PdWUW z!}Adhzr)9Lb@B!?_%m zakz@Z^&D>Iu%5$a4*$yGRSr$D490Ufn!`yP-o;@Nhs!v8n8OVmzQ*Bp4i9qpIfvhK zsEy<4a(F$5qdAf|6qDK@@W47P-J%822~uIye0~48AgZyYMA$ zS26WHv^3XK=oW^#7pdubQUUo4h7}}iqlnUa)`^y$B zeqhPcWy|UIIzAq;SSVcJGP^vU5|5dXNM0dX&Z(K1%#}K2rcJpcz)I{>(`{)}+FYjJ zk~C^`WSFhkoa1&E73Ss$g;3Q6Ii=J^+lZ12LYn7_^T2LiR3dr;aUEt(6U^XsK}o3qd7bZq z*fBdESE*P8(jMSY9JKl$Ss6E>?Nd zvsifx1%Px(ajt9FFE5Y4bdoR~j16&YOC*ouKQbA=i^a6ZXpcsLE62@ZLVvgZOg`@~ zEa^~pZQ*X|GF+*U_cP&c#&B*CN?>83M-X$0+A0ZalX^sdqq~g%o|0nhdWS<{VGm3@ zMSuJw#^QocCbI%!5&;*zN&mhISiD#RpqNzmPZE#!3bPgSqX?IC6#BCuZGby zVQ_NBta2D%VGz#9z%@m4Liy@)2t{BRE+{B47(&Y2?)%;DYsTOI>yP=GUxNR4?YC=x z4&aP_?pM*tuf2~I0YA+z`~`+z8SvBo!k-$}{I4$l{{hdnbz1P>O#zy=-!FaIQGllH zr~QS$HVXJhe}6Ck_=|>Lpe^v*FU~U0cYFIU&2L-2JGyAvO$Wj};;ngIQ)^Z&0-|G#_! z+V%JU5#{f2j9su`Y^l0TLGs|a$(#<484Zizq3-GF!}IcnGfPG~A+~hp-|otVIiky> zhM!Whu$_G>%*fE1>2eF|2b(xgEENcuBo@*5CIJtQ(B}3O;u=MIjwiQ(ho9)0>k&Ec zNB!m$Q!Av4X<_^rH^zzaVO$V?5ypk_V0a8eGIIpclb1u|ndm9xCYawBh@MivjgVQc zykb{?Lzc*F=_SR~F;nC)N5FV6JcdDk=m)>kaCf-WwU}8j4J^4oQ=rT@y3Z(ed8W?2 z7v>ykZCtsHrw8AiIi-Rv7iYB@C2rB}cV})aI+6}C=gf0WC@EthXJn>MA2o8A-RWfh z0S`b2uma=&M?e)ZrsW4k0wn_l1my(91*Has2W1FF2_=dJ3s1__DN|=;#gkz$|3r?&`ZGYh7dln7l8yzL%M{|M4w2q*pX!btzDP||<2f%G5QyE(S0 zXKmboAQCzHVG^lXLxLgyn+5>Q0aLDtME3#U-j}*-V#7!*gpY;ru@F9XWOP&aT9X@> z%vxgzIoXqtaUmLlb~L}%i;x6rhscgP2-%(1-o0-y=?m`B;BLs9)c%`6OAJ}l+r=Aa z4kq0+lSxQxP_xdhO+q}Aw1hA`+KTW^GV1M}0LF{sgN zh<*YWU15>9%J&Lh1vcM(%-x8{hZuv&vVBs(~R)oBBiRj4_Vn0Ln!vk(hu_JZ_! z60@c|iEHiE9MjZRcG+VIDH_Yn20W4zsw1JA?L?cz%TWj=agcr-q#p#;bjzs@$8O(xWXZ>Fn_(Ef0UmOu|wYk?_uu0 zF@=zOac@+u&lm%V5#Y@WAu)hM%*d!(O|*eT176X9S2Vaqk2JZXuJzZX;xu(4%qiiG z{hY^1>&-yxjl~rPafL!$V4iMrYm7h-dEr18VZ`VOcWWZFBtjEK;^IR{_q?}A_t9^X z?wZXcoVO!4%p;>{oFP~?ep=W8{dun`gpB6t#tne78V&rKr>)j7e6qispo|27P_A)+ z3zU^V4@0LDa%Os4Tv42U{d6~zkVEjMtKTU;!G3(OtgB}c@;JQt+|SEkejnadYM35+ z(gX6)W2Dg^X4svC%(=5I%za?qbZ1)_R#qlr%rX+=8&Fog45Sy}-zy6s#MNtL4>zsD zqv23LVNf?YHlatP@?7bg6l zGuZL_7;qaumzfbp^$G+0On{q_^z!s*jcPVFMb?J<>#P}i z%_HQ>=L~B4MUZ|#+x>us`T-5~gS_+`8Q0va3ED~^9ZiR_p?QvkJVSfPg1QFxI1l(U zXoz7#09}p@rX!RlL`y<6&#*oO^UysQXwO8tztPPdnH`bA;tz%R4K)5J+Lwh=vx@Hp z5#T~X27JM3a5&&P`aWGhO}?(P{=?h{%BW8m>66!u^cfvV`b_WD%4){wkMpKwgxn49 z6dq?(R4|De9YLa|V@ZZ(tNw0ZPKX!YTfYcwcM&9PEwnp2&X}NYGeY0ijl`~HeQn&( z$kYKsG^F1H>Zm*Ek<#sruvSBJaFf1P%W<6Tr@JV~FVNlx;qJH*kv9(%Ok@D`-+dsy zUZc8uy0u0$hcy{$)x0J9!vU>=A4;#?w4~d}Fg6}c*CzeFynpxv(8O=s@~-I_MtVXX zdP00XJ>8p4P2FlE+~L`*?%w9~5e4*N0{SpQ*>@xT)^hp?XrocI-9$p3BS^35?bFn) zgYj}*TRFz{0D9QT$8f^OnC?7p&?oxGGuo#>`+|NkF3;bG`}>sn8wru%b*c48{dZ$D z3U~l*w(F~FUL@pAc$abiqrrUo_k=tjh}T?(R|47xho{D+L_^OR*&5y)+7wb7zQW%peD^9LfB7Tyb%FGh6-B~6Q2TM17eg6GLm9&u z&-(GK2q=$m+KIFo+Uj2uq$NS4HAK@ll=KDuE+7XP;edbKKp6Kr)=mcFxyt-)B@*I;GF%(Z z%NWWwD-y~$f<&)1xnrZ+rv6iK-?^1^`TSchg28{wMKJiUmW#;L+~F#Ad2$3-3fuWg z5j;hy3th!9-`We`1l;{kDamvBB>+77SviHm#1cc}b1D}s6YIgB;EBu^}IO)M;OP03l{0^c8z)MCNqN%0g4g}FIJnJ&7|2j#4F zx^fn}u5tgdEfy9r@NmQRnME#`vtO^}vt(Odo`>QbtO*oixDUgolq^^P0iA`#ko@zy z=|a(r;`?C^oLWYHK+IXJDJ3G7#BCU3rjW-Rp$Eno5c{k}ZWkHHzUFuY(T!7Y8>uCB zSCLD&25pNzOWlX_m**=K8`0x|GFKg)`WeLqG%dg<*X72*keq9}J&VUge>yE=~tsQqPH z?vU$%)gD4NQdia%p>^w~i7wBg43~#`Db8gC4W)W7)=5@j?tD(+uU<=qP+*yqvgr~` zRw1<0QcCk+A}`T&rn^{SRw|D9?Oni63#C^oe8CzdIg9jxsjFl~USZ`2 zHB5+|q!g8u@}7h|%qWB7ZzInHhvk8&QT+WS%AbOJe%_@gUEw`MbW_``7*_{Qvv; z_w(=P+Gpg3Q$wGE`PZSl%^&0+RTSqCChzKRi$5@X>)#mU3Y3-dur8zghaOA=k2b08 zTgM^F)S$91Ja~p@K=4L2R1kp27x2u7fx}P^!}z!GfNwo{ScFC%uZg=w!P}j`=zbk{ zznR-@+@8Yi89dB%?w-lvEFS-zJnbUxj+-E6!qx%$!t3F<26O-A9Oo4ruH@gn{CfqD z2d^YSaogv){RNKCMxNduxcgR)UnBp1oPUoEVP&C~Szx($tcRa_{@MQjv*G`%@tC@N*mrZ6&%YGyf7;Wv@CEzcwQ#_{7Vm%N^M9QNIz0cslSG1gZbMIppN%lU zXRlne@;d(c_oo|O9hF^6Z|FRdTX&Nvj(@y^Sq?z1v^4^mpul0ZA#HY=d2pO@Ah5X?v^ywyWmdlB8vb3!U{ex<89ZGztZG;3QsMQY zKI$BE_Kz%Hm1j!e_E2uWc!}9nwm6&H)v0d+w@0b|FEV>~Zg1lD9^Ag3+he)CfZOA^ z-OBB~x!u6+ebo3aFneEa-^A_xxqUUa58!q)x0|_LKF{oGyKFtj?ANR1#_eS)KHRR# zJtcAbVl{qlzs&8i+^!b3f!mXx{^vrRKj1uIJz;gzaVbKjm+yJI%m`w1;N;N3p`Al3 zhvPU*<}iuF1P;v{nm8mJ{-9@2=I~1nn>qZL!xJ1H<*!Jz& z9Jri6YJZ`osp6u}FV&~q&AzpM$NGVc%q;ScJQ?z7 z@FRGSf>{Q5Hw=nd;J*OiBp47kg4qeMv=75U0Cadw%s&iZW|SS+Gl2PN0QfD+s6;?s06q=_@YE0%wi)34i7@`4JHYBhhCj++3>`{HG?An0ley9`66kAJOFPkx&z#v#>xR<@MIVZ!QBAx>B%hqX8|rx2Oa>-*am(YP`BG%ynO+j0n??k;65AR={dmb zVLSjM?}2V29NIg;%zIc`Spc87hlPC-;B(o8#Dkyp0Jml{KidGdW-}Zp%wcAPzvkv< zfY;3hnt-tJ0Plcz378!K^X9U63IN`c$I3Pj;IVvYYv899;GlU>reID2ICmazYXD!I z$7v5>EjJ_lwt&@XE5JYB3;BhxwE(xwhkgy}bQ{2X7eKv$xd`Akc$3f_;QV43AHZCW z`?si@7R+A)%q(H_kOlCm5>~&@0{nuTYk?aW$q?`Pr>^Zn4blB-=oYd06fjjs~?BH;t5voW`MJRk=YLJvjM*HTUK|k0$l$T z)C;&HY<-IN$pCM8nwjkYPs6K+cw~V0J_q%SbPn*@=a?Uav!7>aA#|^U_625ye^|%+ ze}LQ916_eT!l4_W%|iKG0e-uI(OWCPXMYEI20sYR8(I7a>)~CEv<)!g4?rtmMtBdr z7r~qj@bpVSS4L>pF9VyRruK`%y2s8%%*8p5}7}^M! zmjH}vV)Y&k@bM4$cnUBH7}q)A2VwnDo=1RB90UBp{3O8R$5^^20RHX-^k3LU0G59O zc!L?C=~EUz!YiLLoDHW4Ind0?+4LFoGw`~xEZ=1QY-O00;oPrHoUR zwy92<`v3p{7y8Lb1!3TX)R%LZ8kJ6Wq4)my?b0#*SR;o_TF4( z22i;pYG%+Rg)vE^f4A^Ftn!`B{kJ^4w^JQ z%(OWtX|N~LHWjpQU(}|J+N76XdjgvDfTXR)sEiTk{eIWln;8a7a?a`d`~C5I`8e*q z*It)rt@W(uwx0Fu4}bDeVF)3T@QX%;cwVSKQ@s11Lla__`-ihcpYz3{=e1j2EUNc4 zZ}8l8_ZL2QchjAo^-Z7u{1-NQ)_ulv_dTEYG=JW6!$;S8?)<{-pSdO@!*#h;hxVOs z9=!2?jepDjt@+;DkKZh>6OSL3*9(u=%4_8Dn`EBIw+e7w)SLXRDqQowKk@iy<@Lhj z_44}mv?&tYhLeT{g>*?-`ps~?V)6G(~myhWT%}J3q_hfYk~N@HaRf9 z68twu4Us0SdtHbW{wHEr@i)2}RQwsDag$xhzD$3faw{IasEOiu0I$_Wd0O1Fsf(Hv z!1!lP%)jIeq0YZ(qFjqh@N42;{nGib+4z}zH{$y3J2eFm`<^s4k4K2cYwo_iX(LAJ z_g__YicVbb)~4h$@$VXyO_+rQ1`WG#JwGj9|2221jIxjDt4PN+NuOTd-JiMR3+sjK zJI6pcta_*BtG;v(|LE@D9_{J#l|kFupGS%|U&buD~4B=N5Cu zs!$j6Ox*vI;Dmv6>%D|&p~@%QzF7;7riyMMKJ=^j`c4=kT56DxUD2voHBR!-175iw7z@42li_@&0` zV7qT+@cz4Q2sRa)5mQtGKW;?c8&GB?%2uO}s^IChKkNNJRi`~(hR_am2z_k7OVsbz zL|>8cM;bih6#5ogsEhh_V$O1pCz{dd*_*LWIF@?^?gj6~@`b{zz_sF?=7i&CB#U}p z*C&bkB9A{(Ewoen4N+g2ZoUbUSl@wbBj()WdG(gd@hdX@k)lR_q|wuJ%kB783;onW z%+EUg+T|eGIi4i*>4oW4PhXx>{q&XdS3X@N^uT19B=PjRbnWTebM&V_JKuPEJ>IeW zx{D|;u3gSHSnoPfyxg-3_q%xSS?;+D_jmEWfcNRRPyg@soqvF>tLS9UILFk${br2m z6R5XnjySv?KaZyo^?Nd&K>bAyq~YfgNE05_&V`2Zbr;;_muiROdfXacj&sq;o#Px| zBWddR_G5gDgogIaTX?;k*OS}Fi%xDEUytWTkGO@`+i~T1J%RC>jj;y&hdIU^YmDV# zjyuQSF3U0ISaZxd_V!pmfw5*g>#a6f{}UMVB0u_wpJx}+b}`Mfya=>mJ$|0Mkaic- z3YHgnkmiwTm3Ed;QCvJ7CK|- zp|ge&I)-0LG`fAr$PNt~Ie5+u9XIkqYq8dD#ajC~*4ihq);@)`_P1DT0&9(R2)oQ| z6FBZaa^|9XetW}BX!Az2eFI=v30SIwl_#z; zw>I=wp87fPY1c;c7Ol7K^9#k5mo3yp=~Jc%JoUx{TS?z`ZG3g|-4oGh8QvWp(8WK9 z#~VK)<`;cL^xpM(9q+0gq7HQPkeTG~B21i<;nYosp19n+cb^cYMM>Z}Sc7jwqxnob z#=0=>EF&&dZDW~KNQcP~rhw;y5)feqPOPW|?k@s9K55~h4g1%S#(6((7>DBfpuZhO zdk-IaN*G-%yApj|bYbPT_`d9mL`y+WPBj6hB8P?Fz?We|JM>hNb|^mYy76c!_;t>1 zA^He=_4%mmPcO>G!!Kb;eOUH+VMOH-k!U^JxdVCsfWAW*JQ6==n4j{^X=;8rH>T>} zo9tgYXxy&5*smq3UvYD@>#kQP)9ra_lJnxR=H*&7FX^K0DbNkV$#$PgQe!?jN9gYp zIc9lvG&(s)qkwbvtc>(Dm(!7&lAL6qVZv8wPMZe_=N<9$5C`vO&Vw-2Jec-8+^{Vk zc8=xbJlJ%`g6k>pmiWBK;^zS{KM|Qa50i5MIOO|r_1-@on}dH(n1eMg$W9yHKX!82 zqdO?Ot+eE=IltJrbxDeOxDv8er9NkDcQnSs87I)8>o%RT=%iE5XmyoMS_&J%!?O|0h|m@nv(o7(eD40u1ZZ`+w&^ zzDCG1Q}W$lK3|OAWIhM-IcLa+{ukpnE&Z?E4sg8~zYeA|UlQ^q|9=n9rQopV{y*F9 zCEK&=xn%kG+RlG>eBPzs|Ji!}tMe&kUtP)*hvRV{>#)87I9~*s7N6c^sPraP=2Q!K zKdu3;t2I&#g3Cj50mt9-?S>&4Wn zaV3NQD0l{P#If0W@U?s+_(ykA@Ga2P)07(^|Brz8Lz{{iz|Uir-0&LYhHEoL_nG@C zcmGc*ck8Hg8))F^wLgx@^!FP<$`3xhzhV?+$5E#b@DwlTFGsy)9xeNjrumO7NfF&{ zLxj&F4;l(BgY43XGC8O-AHOKt@}peiW&PzBaNm!z_vH1LKW2#1AtTp&4rwOd=i_@g$9yD80I zHw1a;6BnY}U#TwbV*4*&h?c&bC(2(#U5WWV8kg@?H9TSQwE z#;k|=kRI!Eb|?#d-eC3lUi6vv1K#&yK3+)?YkWxi;zYEJWnWAvYglF50n3n)AL>XE z6*Kjjcr5WUUN^iyDY*ab==SKtg@=L9FF7*I2>Rtc51e}2(7n3HUpKs750H)$$4A!h zs~E*|{1}bkxl(hCm7s4Ya9^yU?_tq~HBw&*y&gLA;Y!UlR)aOnHe8!B0!*K&uHIyS zT`}G*)?9~bkXF;YxO@=lTw_DXn>Al_V;y;WQpA!Xv}YpSohrInuQreoIEFk$SX)fb z)kF^9KQg@D6&S*Jy?vSJ9>IO~fTxSk+dS&o3HSgbV9FkY>{>732OcNQU3Fj5+z;PZ zWWlXzvn1S<)rU~-w{x&QG)V_uauv-A)M#d84C%E_Gwjnuq-IHfMYB_ceM>~e@LCZV zYIOx>0XE{=bC5Hdfg>ZBKPT#V1as*i3@?Z_+JIcA+~rQd(Tu*owtiON`1&mLEhR9# z67`_WI;`!HmB8^Nf${&D#5KtK_0#fVJU-66$a4Z|9P1iutZUJ4*;kZ>j8$JV{Aziv zQyk{AkaL+5;JiI)&13PztK|}>F&;@6gX4fB)=pj^AM4^Yu3RI2jC&@YH*@@v?=1TK zBF5`un%Kj+VgH{^vF5F5R)93{xr=Jv{+aYH-wcz6jqBNIjt+Ah6otSKBxyPA2fn)q*p$e6m&a9#F4@D1iqt zj4TsjNn!Z1Uzaw5>=633mAqeQ=J&a#J~CT$I{>3w zh&J)8zc5}FApM@Wf3LI)`{tVwr)Gv1-*Z`3@nGwC3-F^>a~$$&T9;WQ4z~bC$|Do^ z4=A`Gzu0A&{u8Xlf7L|yCv!x15Ld_(-i%z)oh?L|?~edC9P`E6Uhw{TI$?s`v%50z zN#yOpZ!7t%F3NV{KCCJJEAuoh4;)6_yX<`U{U}FWSzitE8QG%yYfQ%vJfcikaGthg zry)FlU!!e1*59r2Io2OL{pUz;$M0Yc?dt<^eC{W~Gif4X+tJyluULI5hW?$4=e;XM z1=mkD(jbGJ>~yUPyOTv*qf6BL(6?gb>2$fmLEu7BQCfgFA(~u)Q(2ThWutmdNtA4W5HDedb0s(e*s=d z{QO{*Tqnf+D$1C+HtLnHd@ip1AavtzSmn8X8phcZMozEY*K5yV74q|1si{2QweoJy=3J@y`vux~40JhhUVn-*jk+iuF|tCC$xl8~ zRUAmedaapg7zA(KvwFfg7zCXH&gFDK_MnZ6dE|Q$d%yQO<7M!IJ@L3B*M+nT#PI6` z+NfFLtKhmT!TS=ev#@qaam6vfw?>~FUx}-1b6>7X>$K8tL!Jogj9+sK4^h9>hQzUj z%@rI=pCQV~x3IqIw{ZP%?m>S>xXs#B94O9JYePN{6bCNPRe9J}2I(7h59A|_E5Umg z=!mOC1ikpVKz}i55sAMGODb%bPOnvP?ZWf#guTAh`Uur_)q(E61X%>~o7wKxT&-F% z_|*r^uy^39uC!2R9psy^TT5%Lf}Bya1bMD@v<(CPG~ql{f;`0~X1hakcDb5Fpdnxe~UZud>2b6nR;F}D3!7tdK^=>U$nCwc~n7x6SFzMRYl zTwwVUi)LYMml1bAlB;m|_o&yCK)2+4$JHbGPsWYXUJSbOEOmi@0-Yl4T!S9W-;eQ3 zoNLs3cEs0Z*YO6{2Hu|<%I^8(bi8^YhF4hkkY8?dLx!!wyh-{|qy?h0MZ`Jr>fjJ~ zt%p1p{El?0MAHHzm>0-&gOV3x?K&SYkCteTgR<-};7?O!J#p`cz{4i<3{1^4y2uQV zftQYCn-SM0=fP2wsnMJV9a`E!=L_am%GaHmxXqz$*#W&VGHMiuIM$HAL8tdm;wSCU zOP_f4>TfL;VwrX29NTMGjX|fp%JorIB57}Nl@?I2xL>iyNxt7y5=i8q4(LoRTxHqecF@Pz{Cfvwd0L;}rOrAgT$vMt4oeAv4GI&gpehC7Em$=l`% z^IO^^--dn~w-%pqXz5%_&y*FV2eOMWclf!r+_7r3Ntt#dWZFLP!NCtzfp=1ts(i%{ zKG~t?jxB<&LO7I+wr{F@kl0R@Z0FIkrWxCL=D*So{RxI3%Tlf+F4%qocDq8Od>fNp zto-32!wkpgm-tt*O5tB>4F9I-^NWbLiY}ZpjL^tu&EObi&&$lnIOcT>>(!;rJ=Ci! zn(Ayfx0Y#hyGEB*Rn%mP!*8u3j)}HUYMnbAsb=^j4WJP z+%;^Zg-Dw|G#=gFm^{9MwD3;w7YF)ZGD{Q?_Xdc2XR9Kh9es^Y%nt1T8_-_zOQaD7 z%1M-&I3LtUhKzy`a?9hC)!}MdwW1tP{(yuQxBd_I|ks{>rMHM}q zi+t?Y7|OEGwBfMdn=uamQ|&28*>5DvjC>F8voWSUdV1^TROrn{y7yl&9?+@0gUMV6;SGsiYXn|F7k6pWi?<0et#m;1@LzX(AYiR=|T_VSf`#ve-(dt|;%dce*D-C`^A0hTi8U`OVmZfy?uAMUB2 z+4(6m*=3%?xJr2mIkBY7&@;2Ib6t-6a;A87yc$a%>P z&B!0({AlRR{&mRMAE=D?S`X%%G%WG+$#QOycXlLoKaKE5&wGG!Iyjm|5pf{=esosenjT?5`V&E~u68Q*Q1#dj-be78G8 z)I--lau##WenXcpL{zbPvg zAY`R!mTj4ML3|)yP{!sw()aY7kth94e}gtyW@I8-_Be3E@1mU*_&dvt7zS`yGsa4Q z8#ZkJ3b@Wd4x&!I1$nm!l^6PMAMO27%&#Bv%}~~@=htHlWL=Pxj_azf1LtCO{R8Uq z7n+fNj8i9M&HZ}5%o9AzJoz%uHsm4SwCmY#)wAVHte!`ZXG@_4%VjZGh+9sjH_Ndn zAG~>fY(4ANdY1S%DTBoD&nZ-$j-*(fPKTA29+x)9O3R5$E3ne$$I@bS_JoGbBnc*=_?!_|B>j;xZ?fDJQ3-@JLF%> zbeRS@z6WWO&x=Lm{nAeMvnld`;={&No)k${a`C2w^oi6+qP!&2n<@iSo;Sswr|gqL zzlh^aCw)?f5M>Ti*<;)pqOBSA7eCus$h{ljb67lRZmXOpy2q)9r-}&WiF+_tkbi0W z+~XrJvhp_KT`BU~`C6@fK4lA{O*}{P*iFi|vZ5*@K>nVG-$v9^==2|{Kt7wlHSWV) zEKqd>FW$5*lxJ=|+EP3|a$oa!ZBgOQ#kr{42^|l#9rIe>4qmzkYv>j3BdyZ{kaySg zVJ+EoZK`~$_Ee?p1$by1aiu}#D01yo`v6nrs?WPcck^XR1|eU}wqOSDJPExi(%9k~ z{~Yr0z8Uu+@Jr8t2$-0=4Sdq)lez_EZNhNUO7wn1f?Mt*pKT~r{I(dn zh4bs$niC6Xvv##m&rY)JjkYailAc^!O`5RB*{B78|3@ee7PBE&IKZKG145Dn~^lqC0xm`oM?kSd|RNyIR8e3T}ZD<#vEK8JG=01 z@Mc)>W}wV032#Q|qrmAnn9uje!TeFwMVJ>mez~LhE3Yu00mqow>6l z+*es}rzgNY0=R?k0QXFC!&%4+^tB*9tN_f!S>nWpp}T>XWP)Yh65{ z>^zA)W+plGEx<{Cjk6YcmI*hQJpuK1 ztP>TG1^S9FH-o;L32XaIA1>?xkMR`JfSQSts|kLeuq+7XYso zJj3w-jNa4H?a`H4hwXi<9PY=0kAD$!-~&y|#o8M}J`L#yKx10IQx&AGnR&0$2$LCE ztmT>cQx05svOp8jr3_9zTJ$qWeXAbOX|kY8BB+JrZ51M@DYeBV*4Q z!RWT6FmOTAvZ0mLk)wt5i!dvghjx(@2JjDkbhclXRg1oHUzUDQT~{c20{8<0{Wz0N zno<>{E^qg@n0Dg_0UzXd!gq_-U*Ul4HVS!e#Bh2mwRCBpaX{W@nh)}GS`zd#$b3F4 z@1N#@J}v+a%GK6XY8fq!T=xt5%bB+s>&1(F4FgK%^G>{4&ino-bP2p`K>b%`cJA=y z_Lp}q5YlIcuw4zf(gD-IY%wE9Uwhzyue|axtqpo~{dWOp`h1yxZS!w^_XeZ+D<<;{ zYtj!T-2vDfkZy9a9kdPKMye1dW)_vNGDDFXd_{4%-U9HvZ*aoID7a(@(R_DOxY8-wcFj^cdd@&fprcNNJFXGo+tD`i1X{dixEb)ANFQHu zN6J7&=O!Z)ba8EEv(`r4v=efYbCWo{cMAle{D)jQL~oZ{N=mKQr6@?4iZM_}949HQ)jxiMLJ#ayY^XT{s+ zX-nvMD5b>rP-;nsu2po@X%%G_?|l*VT#Ngjpz`TzI--1#Fwfh)NN<6TFk-k4fxd3_ zYOb!;MIz9eB_elhYIy#R(3~Wdi z-5;R5FawU1T4Q_z%D#UF9N`(4lK&=-6k0ek_rHK63O~doe!OAfM`0X(e8$3$-Z!V? z$Ch`%kE%Bne#Eb%r~mDR{#Sl8`i3KEpu)WgV*#1T{dLeMUY}NL*1bna`s)V$)+ke5 z%YE<#OVc^V^8T`=&dGbRG-dLB-cn=o-o4a$t+M?k+6_6M#LWc>w)R}&A@H>kbDJn1 zF`e>J5V+ig`_C?l$woe}l8u_ZN;Z;qNAJvb$3(e=Z4pmc*BI+ck$y{(hp+x^)(sjK9Pa{K<$Hil&LjAenn%dT7=!By;_QF<%C@On^8LH@qsi(=<&6Dkn$i#Y z$JlG<+ewgbW`Lz24wj?u0E-QS6Zlj)SCjj_+@tPHFIX{3o5)on{A=22G0(I;RaR)y z$C!D1X$32sn#yw_Ki1yAS?$sG$^GSG@axK;*7inwZ?u>)d%B3wZ{~xjvliFuXji4acfAN#kgnl=Ij`wTZfJN> zv<=9zsONx?e$uNnwI9^*TeZh5-yK%@TJWwIy1EPXv8~H#Z*9`nNVF{ zK0CFqTdet_y~BBZY%SRPI@+Ag9xcue|4#FFqxSCe_qDkByZQgl-~Vg#m*__*c|K@? zD_L99@CU%14LLI#{PYu{=bbvP2|N{zbYE`qnSaDQ7g_hFA-XTK?gx-gIf(qvsm+&s zuSz3)s*W$|(qAH{8Sjg8lck?uu{L+95BW6YJB$8upIZZdyoGz+@^5qE*@ySd3sXzR zExz}b#p`M^Kv(suiotYIb_ePmSxH|9(Viy!N8COcV7OSIcf`2T*WdV~zVPVdcR%GCz2? z>m#6xAx)Hx0v1OKU~eud-`k|MQE%FtthG62`|GHaIMV!eqc=l0#QRnNaX^m0;8gQ+ zGknHK^ZM${a8L4Ocb906)umeQYU15`&|#jH&}f?nJ$~cu==MY&L)|Nm$Lx_jMaxYi zPhp>LhYqaj$@NkvVLcZxe{w!D3|YR|sjsD;J=tE0YVReqXX8Q@%CPQYZG45CYm_;F zF-e4x=P{=G?@aZr#N0-|Lfo{je71jley_jtGvuFbUC+HkUGeRU8QK>!lqnD@G)c}3 z?Hh4vSyuUXTX&tApkrB=UUwU{*t***V(V_59$R`+&k12-+tmc zYPZ%wVww1Ll-Rxzmo|MJ#bnt@oyj>>XS!!o!}u9Z^z}iu?Zb85hs-eL-bUSwEIl9H zzVS*C3F>CM)Ri>p&rs)sOkDDywwAm$B*ddNT7JNXe6_gRXGxd_+&Dz}xw$UJYvbo4 zejkE9aB{t4ZcCB37PdggBP?FvGwFr<9~B@NCL6>e^rv+Y$M7PVc0W7yv>hybTJGt)~WhZyule~sHWHa&? zCs#+fr(CRc?qGi}HKuoMYPisZ`c7tx3ADW@DXz{W)QL5^M@L!{>Ri9h8A!I?jT(;7 zqNJLxg~;={g{HKHzLh4zpFy8Ki}4sSL}a}i>wx%=HBS7e9Rzfttcm+cSDF!xyv`o0 z1!}B@sk>NZw#4Oq3G>@>C2g$z6&=t|?R=|fk3j#NTA>_&zV}^W$!(8;4$}usS8^N1 zY()p;SG#QMEPq`qbRK8>{4BdH&l$BQoHO!SI6+^>_=-C@pv*#&zxa@L#|Qu@0_7|Z$qCNt`=>@vqgRF9NKL{lXjbp`$T~I z7Ry2Zo!}e3EV;i?>I6*9fT;v9l>xt3P!6`z$~HBWFT*p-a?Du%V^(?9FO;9&w|jF@ z&lOS+m_{@1btlx9r^VGb1C7Z}$ZzMRuU(=Y=blYH&!>D@RWNvXN=rKq#KWj@#S((ux?pTF>tX8ed*+WGv?^Xcy#+?zzGRQdtnyKl1{z4 zkTH!4yvO7oO?HSj_hBP9bPaILkbVfc-YCk-atl(|j#7rKQ~s5{E0qnYazO1X^4XOl zeX9;P0|!8xDwtQ=EiBw8Y}q+69q$*}G2g4iy{2b32cCTje`lY1_NhdB|KDp({*!+Q#_Nk0e#qnHScGvv}CcQ zOzSM%hVkqgSF{`JkLNu0K!$&`cpxv(iFeCzC7in-!klAXIhUXPb96iVH<=gwN#@0s z`Ix64c|c>motNNOll$B`N{?_rkKkF{M=-{J=3bjaWYX99PpCib0dpJu<69De7(P7kTC|VvX?5e*edf~l<}Q0D@Gt2emQRJ zE3>EDlWcn95@w`!w;6P6&N2G**EE?G#Mv65@Ud3J>}WN(ryW8d594UX=V3iHPVT9S zK&?|mV2~o+s{qh7rgup?h9J{zOJeQ`ng<3wA;RzBHq>><({!czp4&=}Ym4pNVfikT=Z%d`-&0H+r{9fD9Ved4w8x42 z-tRU}r3La#rW~hrfHSe*c?ta|M3MHTmqco}Jb+>g=3|mhIK^$0!fVeu1`8pJF>f-I3NT_XIEHzc{lWRK!RM zEi<^EDMH}ap>gz!{s`RL?8#Dln~b|LzOTH?-rtPs1!MkXQC|oc2I-5C*I%A!^B%PP z6-o@zH-P)i3zW@!H)yuUPJyyoSQS48{k}sI5%!2hfV{g6>%`VnMqyWpY>_LRF82g16;$HTdtj_ z&PBKXTJLx>y3Kh0+b;8b^r&$!eMq6TRRG2c`XY<~?lWuk;1J*(`M4g5&ZAFGQZU*| z|AdtB=*rabsG+q-x8ZrMUJ?B$@~qV(XBUac>Ep@4=yOTo(Q$Pq_tq5A_f1_a@7Bbg z4Opu~YpWx@S(dK?$_$>5PV-eb9F69W%mZK4a%AkCWl7^JdiE_FI|kZt67T3M+znjX z0C|W$%-l<}^Ao3f^_(vEDR(*PTlWRbiS>?WZ)E${`>)2qF_X{4GK?YpRo%^H2D~n!M)I&t9kadSeO;Hc=l+H)u-^BsP{a9 zc`Om)P;v86xg$rE)3#HcBo1$mM)&Lk-qzqAYrgN8;qcO4^1un@!#7>;i1+&wUdRxS z(pP9B=zk6PM30^%ZSsRWcUD^!asGD0y&i2rR=j>T8$5+}9QqFNEa_o9kI3^uNphc> zzB)6Nb2!yGFvj5E*>>8}hzAGe^Bi2fU!k(uO!YII$$_YaW133CKKaAYK1^yPv+?!k3$o;XDw1o)&3!#(-pDsfoG zJW3I#tTQoLpF;YVz+bq|0TUMfuk}Bdvnv5sM^Fp;Q zQSikqbrxw5IA`K_z^Tr;`GG@Qtb6(>)>`-UZE;%nZy9;sBH(oK9DiLYe$>eZas3s3 z3(3oH-H0D`vKn0L@taSZA+FtXl;7onl(_a%;@V4zYcD0%-fo^j%keUiTFW#?BP3dq>Ctn$EZjBMwm--=|{0usu!c+yTf?5!SOOpNS2y7|pScCcP`;yha z_`Z9i(K0{Ug^X7E7-T26U$i9^)Josq)!-fMZzIb2tur^lxbb6~mm0(PHkj`K`cD`- zW_bS$-hB-3Ud6Z+Tj?ARDZhcoPm7B-<=oqatvpk>PM7lX)@sY=*Wui^qY~-hMfD{Q z=sQPddqUJF8UM?ZA-Wi^sCu@d#q`H+pCkPzt(fTkBU8@1P5KAEV4n%{-jgOudsD<3 z@`zE4|BJI@a#|5#Pb2hUKmZK%zJWKCj)A|C=li~Hj#CC1ge<_eno&2) zNLpgGn}_mtJK1xj%v+~?<@ZnVg-nQB@@VHba3|uqr4+&=WY@4e^W>um2kW@Tj9i;@|xpKq<@#-^C7N-6M&t4r@rkzBic%mx6t-H z8P`n4jbqF>&40v$@#vYQ;5?cn`WOpw3+mXCL|HT^)Er+<%Q=)!8SacaBTyu9AV2ht zS=QMDjdB&^=j4a(&OjdxQTDQ~&Z>~+>_uPRf}BjhH2N*SrOp8N4S`NQPu%%?bG#RG z!+!V8mO9Xp@6VQVaD?~&YK_TE{Eo4q3~AF*xXS#^e}TS`U`OLzXMf9#WYa&DdN2BH z$JAmxEvud^$cG_K%|%@i<}vpHbK5;UE~xlBNfJMDLify$`JX19&q(B}j@{^sFy)yL`p&J@ zRKMcKwkct3|8};Dr!WIV;DKF!kcW{xkiH_qo>*&Uu!=c>Yg@F;qoD&!f9aMY8i_e|fnl@wg~C;GF2`q`jw8S25v&x+oiDOiKDDLUxqAFi3sgCHqz@<Vcj>?zt3A|T#(K1Yw7?czJymIeuVLP0nwGB8 zhSLIn$F!7K8QSH0*CkhUx=iVN=F~(*B27p#RGb3TRRCF})sDSm$CXg)@5hsR?6JSo zOV$|*p8u2ab;vW93EDQ~es#r2zKD#j6#@Elj4m>QjQ>VIy3r?%lH(gh;MkLp3m_j1 z-7Es_7>AL3xmR0CJI7?)JJhLLak&!oey`sn?R9NKlqHO;kYfqP@dY#NEpn`d%&PjU zB~709l+RU3b_@b5)-I7t8Fj-#5j|#jgd4Z^4+}MSmMB7GB*Z+yBOT ze$ev4;rsincuV#=_&H-_1!MYDE8~4&Jy4f$UUg`P7kbqrRy&{5MUHOO>r05+1f<(j zk`a?fUrSf#j!E<6dVIN7?FU)s924VrIOdpZ-1p46n=+yMT2r3qmgUyGFCeUSY{xm9 z9oNpm^w{}kX+r_OuAF1Gacy5+l@UmvxM|z0Tytx0`yJz{PXCbuMX5Wz!)C?e*ZV6z zs?E)k{-7SS&4X*P2^iXE-_3Yzm7=O`6Vht5xl4D(^e%NJBb6L$-)rb;bC3w9dkr<$oizCtK0U zZICe;qmkp2GrR!nASVPQc(B~GCzAN5+pxPzRiBSikJ$sQ-NjYio(smcznj z*QR8~Q|vS+oSg@(Sc;5K5Wk-&>klLcX5xDZ=ZV8^w~}w?iOKWCVbdLpA30rKo4KA0 ztDg3_dak)-J=6Uw7&mtW_>uv-aCN%q`whk~9lCK)`tzqB3?`eAF3^aNT}`@xXQvtY zh;{#ATwm2P#&$Eto|bngdt&7_;NdB!=|57uY1#C**2zPLOgvLoQVThK2TXy7W)KN(YjeZKnO zj@9VfAx%V>kMEhU7I{uE#^^N%cBJ9`V37!bN6Pn$t-Q>~x}2zkc^4yJjg==YS>@?O zo*K;|>k3{yxWmqq<`fajCXjWhxD7MMH;e5fa&IdQb+uYC0xD78?=YXYpxtI`KASP0 ze-9XLz4{kwK2yZu$_(*rJ)Ub)M190a51qsKk7I0if){l!6o-5C+_5JOxi<#7GItCz zY`qg@zXf{YtE`GFLs^@jk(Y4~lWi{6R9oEpb|JqHZGRYf_iFiLd|r+FM(wuqLl>g; z=ZuWd8T`hLG~jny=$NuGKg<0|>R^j8_pEbJ$yt%B?7dB%+r-$)eN&z_bxIvn@`g*r z;Tq;xS@Ilh!#2GoT^j!jYZ?;OBxrOmqu&6rH{RX=Ux^4-L3eU zjJNFYh@iuvV2j_Un`}2#4<6e;wcSy`G4j5c{KU4$F0$>P+Va3ljw+Y3@4R3{?DJ3Y zIurZ&8%s~3tom|vYAobEp@1QXm+v8IDDeG_i!OF;EDAVx+BO;%FxH1yp^AF|oGmUTF9Qit*-%M4{XK#*d z;q%#8?2wuIM;T63%?oHEDe(S<>O9M(;kS%(swah`tgg=KJq9BuC#FvPDD%X?>#(yz33iJ z_Sc<}vGB7)!RyH{vP1qPvFBy{s!~YD;~DqaHlyo##y(k;9XIBM7%xcKPz$}LP;l{_X{YQ% zPC}geoI`oJgd;D+etg>*ixZNAvE~^7WwXoUS^m(M34f9(dtT4$TH#Wt;eO_X-$i9nB@H@5p?RMP1I7j3fst=#ushc>AyMe$igqDTaV!j4AdO`k5Su zWBpErV?O{aW;EK@kwuwX)W7MJafZX(V?GWV8wK7TGqeD-n@GSqPf5Ssp?ov)b;1Sw z+(AU&r$UXmM;SME=%Z$2c)d2M)6%DSXc=hLr~HiP_pJ20Vcvn5-aGU@^o{S5r@t#! zwDHmS7>u96II+%mt#5{R*}xI{dT@OCO(w>t9+Gm0BP9DAm-j8y(*wDrKcODG&$P#J z4x@wzbH#bQ;Edr=#HsK-Q|!%V3E!yB2xLHa_D$S$w6onO{Vhw1GNc~; z2xt!G{V?R}!`ad3p5niM_z3mS{piaT&Z)7Dcy`kFA+gq(;YcG*@@9(6TR&(X<=TJ1 zA>)znDTph>J($HPlQu^L`2B@DwCt`wK_+D!^tHO^`wzgC0=Q}b*T}uT@mj!jO;O6u zUjnXg2+xWyG<(YjbNMYP%qQ--S4Y47UdaCqj0X-nMH?IXT~P};qGOgg#rR~trJYh& za3X(4t|*7had->L&=$;bTW0A89*or^DN63l)zp5+mz}W~OXp^rkwiN_V>D9cG==(p z$I?kV?^L_1{cQ}!^eLqs`3Y0T;cEoEt!Sg;2~pAUkQM}y-LdF&z&F|U4EB&{8$jfv6o>bK5qWmh_{|Ndsb)O_BR3!aV z^1OTIs(lhLgguFCaWm%iNr(Ez0(~-?0pDKTIo1pvKOV;A7L2>jcO1R$5-zK17=y}Ht&3laBv&7om1-bs;H1&<9KIH4oH^a|mn_-@b@5ZnB zA#(uPn{1EmTK*8;6143d?yoqJHNO0w98u7r=eE#B zN44n|tKj{dypv-;LlzW4ql>l+0JtL{5(Y%7$0qv$8c!tD@kLyT>a zF52j82VJ?9@iN&z#)hd@c2w@8dQ091+Lt8y^tiOk-zQ~{XW8eYscQZ3yh`vP_ga2G z)$u`*bs*YPXUDrfm>R=Vp1B--RlO@xzGSrh%6ey6^)^mKf;}XasGHAbqX1hZ({B2HbB0K65|&4902qzS6FBdd_Or9l2b|Q~pS_ zJ_lr-vAohJ_low-=r=o){CDaoJZH*BSjjI#a~mXRr=QM}Lj+ zp>2`8G$V^pa*WQ>zaExnC?V$|8`pFrDamQd&G>E~Oi<*4)fT7f#h zug#a&k6AEfrOG&9GUgg#2wLYCXfthgf#y`BFThp$3~`O^-KS!z?A5h4zl_VP%a|(F zR(%&!R3GV+;FRmZ*-Cm!+osRbHEXQ-EVkNW><;G~ti$hUB^`Mp+%3wNQ*Ux;^Ow^1 zrcb+fMNO(G=+PbW935%H`ABqof3l(r?jlp3HI!wV=E^cTnz@{I1V`qo@TgJj^=f&p z7E!)Jo}I}O;d<@b<-R;K+`_(VDNCEtE_g?{Mw_#g0Jc`5tUEj-q9l6+6RdoMl(^}sovyCdFB*PDg6S<%#INK;8qZQ5NT zWu>&84ku(8(C`k;(bAM8>Q^U~FSlsG){-lg4n$d!`)V)BIl{PQ=yGn4rl|E#pEK_3 zKu2k}zIW&Sqye2^k=ZW4i{<>}eFO45mh`jnzTb-DCoV?oV{1Iyn{lOD6O*(=Vvxg`PTx6~kZp3O%XLZhvc$JWEiTZQ1hv2z~W+W3Kl#qriI{ zv@BkC&amw5BkQXw)E;O~NKdupz@N=X*JietJa6HX;XP~ZyGJlStmhcUW*B2ceRDs? z{{*gQDzP4}FoR?3MPQW^a#f00;=4iwTbzRDjq0yUnfzv&Jg-(|;n4;3C#z6&gI>rO z>Kxl^6Y?(SvtgY9kp9>Hx)V2>Vb0wk-t*n?wwp>uRzrt$Z}2)bku|c?43Ba*T+31E!onI=1Se@?baJhUQ4^7gnJHA;QavB#OMk$oDN!BoJ^jb-pUwI zr!}$MF2B58WU-DLjd@!uYzOn;wd=L(Bd^_}`@{B{s@+Tnt`LZ4QI4QXF_~r&WK9CMxo++|A}(VgXXrE0do+# zT^itU0fu70Lik2k_E)S1JiU0={Q7iQd1i3S8H{Vy+Erf0asbUu)41p0TGe?*RJaXi z3uVj=TETLT4eLq7i^Uj^X3mW^Z>bOCF$nq5DP={-S&-wlC0qD7sp~6zh{y4P`$QIT z+s0GksEwbbyTr{z+$p#4<{e=Iz7Qsk@x7SebjG&5L>bPjC)d_-1}|w>otX~(WYTV1 z(_wBqfcYo~j^v~Mxy0l9za(`8(x;L|X*;ijj(yDX#dVh`yetO14)ACxN8rB24O*hP zT;J67F7AudPIv}%l6%+dT%taRvX#xEt=}Q)ds9T9vP?*s0eWJ^8OU?j6X&%&dCr7( zU%Q=JP42}U(UrV%Bv;GrVj23LvYZ^}Dm5?i+pN&T$OjbvoG0hROcJH^J8|G@_l^A` z&!&x|0X&;N0VjZe4JB$%nroAC4D&OucT`l+Zp3fT61GOY{ycr8YmhJ9;@c|jeWCa2 z%hfk(*$(qkJ|p~mw(F&z)?SR!%5zcqEt<)8q|N2p6*Zb$`WJ9~Ym8W#M#$Ra=YQ?_ zPM@6b^tkzk-0^PnoucO3o@>tg<}}W?+0OYMa$+o9Q|7y!^LFEu`Hr>2`R=slyCyc@ z?G^7Z-_;58-I%QAn`dh6zOi5N^G%tmk-9>OlBnP8o0~2e^|*znl9u zj?Y6M4lbOxv-b7=iW2DAj{TmlY@YeYnr{~4E2yt={tof{2Iy)DX!ljrIS!1Lmq3Rp0qt?N!ugO zH9)T59Bin*s*C4;YA|->6a1DJ=ljE$&sMCX9_WU&VG{mko|8)!0oe!4Z%>Ab-8StV z=6XZbRfniUjTq^x8AD~E+#|{N(!XJYUaS97?iuQ@V%3Tq*2HJ?$wf|p+ZQ_sb`?Vb`# z%KIF2c*^Q$pf7j0)ZRzXP{V6-Lai_qH43Hq-f!8P~;+ZGQ{zFvjs! zjMuFXm`6EgpSIe$J+7TB4eb}j#_Uz}|CmSA4_fQy0~{}mT>-|d_Wt&9+T305%hX_YN)qjgMW?=L=w_YYn7hmRBQ522#)#TET8@kq$dhk*e1#FSHguSf^HBor^Mddgh7<`_6uIT}Jao_#AXH zu2Zg2?g7<|DjxggLi0XPviv5o^v@eXUe>i5?O123*09dSSkrGCqLlCW?ERDCH8g*vM>axzNggQ5) zKX>fUBhK;VTY%4mSANeB>*?DUtBxKsobvn19E;CglxK&$RZ?CuD;UeE7i04VWQ9@4 z(_{EW_4F~U?RqbGe?zn4!3~fRs%S6fw@I}0v14MYY_KXpHgIart`<$S^IIlk;4zgb z^YBEpUfQ^bV}M!eVc?t8!+cu4q}EcdDNyw5>b`4!KuB#fy$N5Rvo$JY4& zu*RA3Ir*Gp`3<`JRE(`0>zv*7x}t5&OPd4N9ch$H`F%+r(bc+IpKIglpQYQh>Zk9* z$1m;IF_0^|=@%+AGwgg|a^K<6#C->4`>A+|r& z5Y`6tSjkUvt$rn)17*O?w?^J@QpBrsF93xk`vbHO-^t#kuMneo>M*yeS&p zqiHH%j~4qj*e5mhow&qr^4jfho~ypk$hHD=<#&QkI+j$2YlLGtzXRLI@qH`0y6*0*xhKHW1}Z(HZ4FED<|hhv~2T^K3J6b*c!I8vPY_>LT)n zkr5iy%*d9@#9G&Ho9{g+3YLElvSS})NbYOjfjk_;o*#&|5#7D?Tvlfx@A-`!?nCta zi=uN^p-d^tFhAtX5MiSYg?j-_DWd)j(7MiQD>nWWqRmJDgneQSebzf4(pCCrtn~k( zt&!)iFUHb4|6Q!9wPV5X9H6FTvah4fF0{?Kd7ycb_?VhQ>KlM<`~d*9QjR?*M;iqZd`w@6|A6bx}D=TgZ;Ug-?tL#99psRC8%2>c@S-z`Q94K zFK7fZ!7oK@{d@^D2e_6cziWf~w`-2&@2&o4WXyy2m^X{@{yvVib=JsReJMM9Vmb0o z($$&e>8W&<=Uqk&|5k^ye+R#h^)SCT`+&BS-ytO3-Sy@TGS1*K#tW3+2v<5j{p}bh zL+bVPd*F9A@y-F7(5Oi|7+O%E{L@$m^LJi+b&zFf=k323?ITaSPfR_-oJcFlgT#yP z{Qaf3tav(SV|yB*FG5BJp7mw_zABQf^ShT*;~cyO9Z>BjG`lDAom#`ReM_5n)GLoF@LU%&v)3$=NAFyndy4~g>m_XRWD|4+V_Iz z#OJf>jsLE&8Yg~7HTKhYD^J_NwZolzo{NQZLF7e4UIOm^e*RT%!=A*{tBO-CgW+g=*~kX@?C1( z#eX~5?%$Ju5o>A>WD$ABnC%TQ&J}*^Eq=}KNiVc`@(<(sa}Vz0&s2?}-=paF3CNJQ zfVX!*7NQ*2**sS61CM9STYk5U-v%X4Or~4k4JAzg9vxnV_pA6#I}JL=+tEF&XSbxs znv9_&T>iS_-0uK9-vkUcja!3z$_T%geA}iQll zPhX&g{N5~S$*CJ6O72UxeI+Fg^UR>T|Hu&a`0aUBFBlU}xnJ>;bJG<8T%U2F z&e6qMuod_BHzfsrb(8u0>H9X0vpyNCgg%jwLuex^Yu`Aoi%oSk*0-mJtnfj3mmh`_;NtQ8OM<6!?E;rIqHnPtOsy8?C&@yw8c54 zJ>)3xZ)8?Z7k&Gj6Fq~3nYPpuNUND>7+gEy9JJ4Lb&{7wXR2JcqND9zA4#n_ClokLc55*3{0P+vU<+2fY>?v!&mOs*}FOyf(+3 zOJaWdFgh?tX$hNrRxJ{K^s`oXzkfZh{0%~H8>yjd080e7BV*xujLKI?XYF|GV?ye7z=;&OmgCFX z<%l23clXjZ+ZpF?*cwmmgKGZJFX}=UE~+ujo?-rM*+RzBmgk~V;?5RdIxd84uj+%U zy`~RJ{>}FM?B~VFI52VTe#cr=DWy;y=OT|-A^JlfUJJud>ukNS+nf8j_ zslBQ4ry5h$7WcW-*nTL$cKgxpchtUjsBB8RlQF!c&6zO}Qth^@QmixP>Yd&G^tc{V z{eJ1ErpEh2Q}MS+!D50hKWxEr>kP0!_Ve2KI0c^JWE&o@O_yel&+s1C*Kh)STIJ;W z^6S&r*T*jY_19Ony}kzi8tZEYe5k6FeLOQc2bBsR(7%Ni9+u94hm3(u_=t=4x73cz zSMfs<=RXMk>(!k6UiC{nuUS)-6u2eHf22Wkj4_ta8xMbN2V)nl{)!l<{gP)^ZJWkS za7!Ig`9Gb^20tWUECY|;2>##rRdXD~xli(U?q6M0Jhx-Bd)$uOF;h(Esd%bvinL?y zrT;JF{=du?-Sqo}pn38K_&t{|!hbsURf9H9_aCCbMcoziGzuQr@)7CTnZ?{d&s=%Q$AT&)oBEQRfL%JZa5}!#hjHw90bg*^e@7 zht;|IX>n2H{MdeXR$tu8=KIyz%668mVlba9*8Jfw&T@1;$Foa%-q@}r?xUEIUd&C1 zXPbf7&bYqTXw&;j9pHetZACo1j48lxO@`3_Ao|jay1u(!1ilM8()&IU2`)zc@5eo4 zaLjF_H(x}ad{_jYFtot#Cqd(}R(FCIL%+(WUHKsycjsr*=FQ%FlXhP_&IoP4>s6c) z+M%LRy@Ym~nPQFfG1kaR%ul|G6+JS~40|#=3+?l?iSgr`^X$1(W58Il9D^YP<93Z1 z%+bk55JEB0rpaY%E;_p9R} z!E-GMdQPIf_IaC5KjYY>&XZ9GlzUbGY_|8($K(B2yUC(2hxjSJT$h_E0zEFXZQJ*^ z6p|;evDO6l8~XN@c9CA?4Qwj}(Jtj0;r=!2&o4@r-=&}H^dIqqhLV0tKXQk7mNt^0 zZdL>}v3!dtSTSPJRK_dxUA$?V<9^>baA&KxXztD}n;XU<|8q@LaKDNBgnRIVz_R9J z6VWpIY0YFSdpEw!KIB`l&fRTDnqLl>NuxgidEEuLubbnq`zC#q0n^BRzVQQqX<3nL zCt!s#N4I6W9pp3{kYPu$$bveTp_`i8SMcCk994a$OhVr+ zH|pZqN{5wh+xB-chU0vZbx)p%a1CvmY_D+XYt;KQg!GkHX$zL}`*ys)5BZsgFi9I& zva&N4w|{Z`f3x@QaZz2@9{4_U1~@YVC@?%6lmV>?j4^2x5Slg|G-*K6hd^F!5;5K; zgCxDhMAD=ms1DcV%%pc{pD6^^!j0)74hZU> zW+M5;$ZCJc?=|F_GLGTNaq5ST#kAT!p!#)RGwSaqyweHnE_!eG-t57nh`Sx#SqR-& zCZ)lD7ka1Q_d!QSW$NV|rE<1h^yj^M(cc_wy95k#^xyuxtl4v3seghm;nooS*q=0= zrQ|+3jn&cKGlVe!PCLc~YrR5XqjKL&_!fa?I{v@+3H1-V4ay*}aCTe_=mx)iQRoI| z@G&#G5r1h~AII(D_WI}#bjMi7{nOOCBScsK1c9sh2+_AfV7q$k6Itye(X8^nFG6>! zdSHtH>_NrIc5;7)QMq;>@mRF`mp1hx+KaK*{o;Sn>u>&H5S>)|^d8mpbxGm+x<7}| zYdN)Hg%R_E6~d2H#A{(5?2o{6gw4ruk}GsfM~o9Nj!^f1TezK;uowNrpQrZ+H0%@l z^br3?yH~2+bJ0I;KfXcz_~ylct~2GL&~@$~^Wz&IFE1f(3~SEkxK;J>y%cg-&|X?a zGStktNH}`q+Xq~V74`wZ_^6ss^O|JAw}}MBAKtI`seaub8G5rU30R7%@8=pWpfC2{EAOwd0Xk(8oq(^P zd?K(!lurU!B3+E1o3<;Gz!6cYKO1N~Q0G6x>KuLIWg&k8qlMHoy%G_XFEa#i=gviX%r!Ufn1# zU`Y1&otVJs&)Zi<^BO!S`&N-&4c%g$REPIW-%nl|Z=f}RJ0PqH z(?l*m^7Vl9Pg@g@k-WK)*2FT7F`DGgi-^a1g&tx`dt`2B)C2ogpi#Q0dHtJ~e24nm}#YLbAHvry3C_#Es{@TA!k|KK+8)m&o@llAE+X zY31~cYFI@Vw3wtOtxqm`XNNXc!Q*t#g)8xeKg&4%_2Q?G(?2eTj#GYwaXN5Ow68j7 zoZh?`I!;{|L&xdhW%16vtFLF=x+)MIL! z=P81pCC)1o1lHlzi-%576vQmH+?B7X`?7^!dQ zsiX9TIk$hD9!+Nk>c}XNeW0W603nZiE!S9&kq!SNU zR*C%^G0U@MQHE*1`gCbD>oA~fsjmmRmq&Qa9^{qQ&!Fed>3dsDUt$$A_OOH{^ttdD ztF7if7%3Jr{Vtiv7QlAb@FkXnK4g7zOD}A9pB?q*KOm3HIZE^dttRSmis^iSd;3%A z4doA0TN+^lH3>FQaeRI}F>Eiuyswv1`5bDc`npcA1jrJNB%7ItKGl-&(QpnO2DV6o zbI4wRw(sY%p@{8^ap-;9-@I&YZj+bJOV3B~c$u{&HR%;KiO;l{Xgp93X#X&s-!TVF zQd+knE8RsB8**%IY{4gDBe%WKXmduf!i8HW3~i=&2IW|{1+h$4HT0Ck?Q4Nem$}`v zS)sO>h)(M$PrVd7i2f{eNkhoHE>`3X&WHNp`+&T+nC4%!a17<~^OXesuBY~ZPmCwC z3!VM=cbbv>{?Ex#jz%*}fW3m5>Z_8}(S?$6aG1-35}ns%_q-ebs|9D*hG>?6^>%^Q zn`~p7;HQ4)hLFGfk(p zMg6hAmNSUG0d|VSKODny6z3sy{;mA-g#f>hE(m_XZLuQwBKONN{OtY0KmE=5G{0&6 zc+huX!Z;*r6Y710+q8-}wa&0OwT39*bei2NeZER_7Vi(ze)31m*_}dP4BU$*jy*2o z8#$w>ERs>3hz+Z)Z3mUVWC|Wfq$6<%$$*`Qc7ey3+7kNgInA9%bI&v9eJ3QnpmyTJEkgl1;J+&c#XUpS z3mWLe<0H#$F)BN7u-*pgVz*@LMgcx!(7Ra%p8UW+tyeRhJzdQ2erDSP#|qqi$Tg-T zp;GL1t7L_7CaUEjP`{x?gu77cB%PVQbjRyBzZC5AlLdcSKlXjXb+6npeqNN<&9-qI z|EI8VYk$G*E84cv1Nv%s{P(VO9yaf7@x9NC=sGPA_=~u&4y}BnXd6*_kw~hH?alQl zjGgxkjqlPrg+2}~=>wZxUKJ&(Z^n*l7(Jp&ZE>4XBFQLw?NsC}-klw_+Wfn#O{4IR zwME^!#$R>q7XURt%D?I;0_$^G*LOqMa?qhu!{e7p2^8+@{#GM@lm$}>4c?63elz?` zp+djo%wFB6b8sOzHgu30m(hrB!}2WZZ-$&%2!F1|5$4@_^=BFsZ)kZSNUpM^r2I$3 zBR$*tMNjv#hWs}nYu9a6zEarmpVvyIS(lSbrB4H98S5zNvgK`g53^0v&${c|5o`tt zs1E_aaVox?ofmbXxEO4Z!9L00OyH4#A+bdQ$GZiBjrPg5XJWxnfocvOrvw}Ub_=!^ zg4|C`$D_x|2VMkAWaqG7&xZsBkB(oNl|b$}&XYst#x8R>AqVa4S)_}c;QX#BYO-6_ zX4*^tZmpp7dDQcfBa^uE^tC4e91q4l_{cLc$IE&7txh+f`5OqO7ui`;$5Bi|gU-C9 zvMFaa)@4*6No}4v?eFI#Qh4KXeuS)ern5tW0fWP$+U;)8DA!r#fyXHSlE* zJnU3|IN;w$B$YnN`u;;wlUw%@j4Md3gKTs@+mzHg#hxF1sG><5Yv1%mg_{(8>;>HA zFR|$j&py1YPfU;Zyp>{sKN`(Y=EL+oBmpVCf#%ou4*OmFR-3x*^lWjPuczGg;}zAx zxzOkM7qO|mAE3%XYla7C-?98)mV1PVYLih_z#$|TL zd@)g2r<>BgF(h{(o3$lN`RikLzG+$^>IQc&0|bHiinb!4Ch53=M(HS!t#A~7wz)`1 zt3b9Jv?sL1<+gan`>0( zr<{grlcO$7kVlm&X9OGa3DVG|qJ53p}y!RfHL4LP%vfbWmG}cV|j0`zf64G<17I{tOd^gbL*aX=6R;#2$KuSo=?(hC|Un5iSgNbB+fU6 z%4EAFQAqOt1S%q}rVK@BF2U}{&(=a7WcOyAml0LQ;M5(N_o$*CngHK`l6%AbE@VWO zNw;9uE;E9=N*ywYl+5Mi&8gCUcz!~C)_2_?t!wPED9>t#Mi7iOeC&3;H;@;C#?HmXn(J`x{*;UmFSpHNi8| zZ7I985^w%jqLuziXb(wxpObLJX6Z~>tIOR^|IWhQaJ&}AP~6C-#iZmh2WbC1&*44$1zWZ4`0$@2JNe! z6m9}kl&tqWj4oJnmDXf*U@&F%chf64+6*)^ubh$O@S?PMed6qDsSsx|sbn>8;6JBJ zu3ENU{`a!|pw&3fwWq26`%d4{Z4=R5wG`VLcjV|XFGVEgi0EYa?3}%=?xPL;s~$)^ zsc(ZVyZ{y*crB7uV_kWsmAu(ecGIKxrvRauQnW7HecGS>Chn5s`B*%I24PvwnQaPjy6~pvP zLa(UiheOMC9A*x+gRP_KBF8CxiJetFTBvn!>e${O&XzBE%KvJW7oh?VBh@jylm5M0 z&=+cyQYT1*YLK__xT|Q=@wG)wH3x_e`nfOQJy>@YlCQsBaIdv_e%t9$z2f@miOQ4e zS?fJzkCugR&Z^t+8liZ4Y%(aU>p=VvoDjx7WtunO9r+LfRA`V=Y4%}c3;2t+BkT&6 zEwR-JxNLBcyeMC6`2GCu)R|+8Bx!X{_ksU(z7L3E-iMC1N zMUD4ONUf&V`2nq2*CYEIZHyQR6Q^aY@yH!3r*7ulrL$dSZ}9N9{*j}SrGTrV6FI{-5lqF4_vsb zB2Y@U3BjftstY#Z<`g$r2G!_NplDNN7rCaf_9nV zCrDm6C_;5@P)p(Q0mr1WDG1P^d5*S!X;Me?^ zz&{bO(%`ISsIfw-KfUkxESw)29q%GQjzQ zx{L&=v?;$j*9)mkGLWDj`=U>YnIrk#vw4LWkDQjjkQ~gsJ%7^3zHgI_=x2Jbfy1BG z3vW(2e?Z|^MCWv7ix9TF?Tsap0Z#x~x9)oKW_>rM8KI0b8IXf^@$k7`BeqMdm+c4^ zH4)-@l>u3v;yA7h0D29<)NN5j3eY~k@A7z^Jp0KF2cl+#6_(d+8S`9&d_?}uZ`gMj z^5AM#qAo;lagnBE<4flkO##PnWw_5-UL48OO8qgCF?@s!!vZQcY#&kFHY<@H*T}94 zp$k}VPmjweDL$QlxyM;<`t^OI>4v&F9@U^X35|(n78k|vtaEAS#Gyl3r$FA+E&4iTPwl2>4k~w>XIl-u#C%=(i{dQ6 zd`?90kD$RHMZfjsmfpM|VU9=Am3hb(`(A12=@BQa>Pn;AOY09Kp4C&9(^W_Wl5+KR z(tV4*I+i;zkO&^&rz(J#LqfJknZEX+geYX`F5#Q2A)ZA0KihL)sT7Odc%6h@Jmop039Q~NIyO7~)xxIvA|tfsi2=yM2sGlH8>A{Mj9bb%M%3YtQB-{sJ6xSo9G1*H-O z&arMrWCwAfh*<4AYrAK+^M#3|7a5jaL$`l5**E(~7E!oRepN%xZ-zH}K)wMLB`ttYdatPNu0n`_>c|Y{-e+WhC6}J9t5$TrFqc5V1~*YdrDKD-puDj~!+x5gYrww;U>(b!}NCl1a_C+p<& z^K)@e5lQ=2>IAOj)jNrNk!`O~uAl#9L)5}-&|CEyvgq*1;dAl;WelE~Q)}jz?|dR} zyuQvOd*ms&d#Vp+LLD#CCN`ancyH9CZ(Bv#>l?puzkVpruQP6U_zA0C`h z=`Uw{Y`%oOdM}fsdbWdN(M;ZzB%)sD(x)d>oTGTA*DR`m^kU3HSm%a9 zQIY{p4YgkA%qOq6qn+85K9-H;I!TE6Av`~_ZIRbH^?*Yy~9%5a}Rka_M<}#3s7+X zF?P)qZrtV~VMHL&CUgrCGbhxGzm3T2zRBh*?j@F&4Sq_myn+S}pmi2?gn($2dQ{bb++Fy>>*QGOOWTEn(de8N^Enr#)B&e;IKUVn4g^Wai6- z39MmLG^4+iHO(#fs|m1<@q?+U@5|hSat&Nq#JbK{+?h{qzEA3>4jQ6D6Y?L+GnBJ= z)A?6B-{KEEaCca`ob8|^LZ{oI5IM6AjT;%KXa`yK8&fsmVf7Z$;B#`YEH9VK`YHB( z2TOky+@IB2U1VEkY^pNU&wTB5)vF;o-1`2ipeQ!?`?;}+)DOYdo2@~u-Q`gNqT*~# z)iHY=x~iulnHi46(zvG@*Wwy24TJg*@qQZ5a!ZJ*d&qTHb)nBXRKJn=zIf;dWME~S zuz2yB8~0|{7-_z(M{YrKTnjv`ZKUBp`v#SJ zsEXDW9Xy9IIZ?i1;1iRK8zdavZU)X#K8p@FIDxa5gDlsZ@0IE0p67^!Hc9&b;|Dq7 zX8^wsmgr~xJ8UW0JPq;TgL<)dv4?=1t1iVG&3eVb_Uj$?tzMby-ABFA4+Cw(2pDyw zo|89i5l&rXx0bbjdFM+a%bhY1JnlbAC`GSF#O}^%RZok}aOjN1H+>^GF+2As~O3cyxp+Q&p8e5R~xhyC~M5XqO6k8E>Hd7jvcxrEI0+!qCEM(UT* zv&nu|+7N{G^W)oBPoYUPqc2VEt>`BO5k;5_-BoM1Y!cnb@j-eoiWRb|{)b|;MEV%R z=FP**HN=TEc^&Y5WKq@Ml&%;!Emc`6z94f5KS@@Atwjt>F(L|Ne2Aif0>L}it_kjy zUOwS@L`MQ_zY7L2Da)f2#ZG(IBJi*23uK58u)UEMC)$_8po9Y5b0WQcw9?KXN}0e6w!wLiT~PYemf)t@?poKJd>& zQiGM=+f)T-!$}~K5yUv$Md|J=Ce^?7W)Uvx% ze4Z7S9wkyGcO$2Xd*V@m=i1km3ofuj&hIF>y1`Z@PBLfM2 zXxVFm><@Q-q}xnAtPbO;{!Qs?Mh@ed1k!7i2!#uA(EBiQaWhj>AdP5K?b9nm4VZ1T zph>!aZO!klH}t9*H=uYeff?K1-7@_GpT!w0Sl8M9k@bRq9&XA;a!;SuKmt^U4)wM; z9?zV7k=_GYwir~Is9QfI*_ByV@k&Ku-tIH3+nkYIFRzdCSJMRe%uvT%We6^|JQ;CC z9hZ6@K7Y$+ZJJYYbZ*TuyGOkELWZcae$WiAf_6E92FXZ)%VWt9A2w74T(=FBflVsFIVqoN+U!8T6th*l|5 zxBQNG*>d{Dpq0b2jZ*!g5mmowg5Bxe9U!=2O&R_uw6^It$Yynb!2OFmL)4Dv_-?Gi z2-U!IGqcY!dtxI{4I4TmRNCtssCZNd8q{us$&;^JMG?Y)IDbc}TK?zbZu}KbOgiZG-dtDjXlR>^EAp zQ?u&M0#hA=zcf}|$mLe6EKy8f%IEHQClIYF8aLXrjF9PN^e4 za4C_wi%ZVnZWH1^fdzRI2T~836$C`qNXPlNfDS$EP^Sx_A^zyGZ;PEVJ&3_Om~iYq zqaDKO*<1XZa&`Iq2eC3KE`r$o^Sw$2$%qLq%$M2V{Z&0X>zZe8JH8_ZnV*O+_rW(M z8_ntzc^`Tq;zkaQshyU{kM-NjzY@lt9BbRRSG>*Jf%|QeM0O2mS?jUs7+SnOVV>4` z!^4&!5-UVovV>!An~)}FPaV=ISFBOeSRT?ylITNJVnVKbq+}>lvWq{BjcVlkv`mR( zk6=ErQSA^d)Eo07cHhcg#7e#G=pj+rZc>sNmWabAC;d@-l*^kJ!sJu=8 z(&7{X=?zBtleZ4BC+Rj%0ULi8++cr*jf)X7^l07YHep7ILAIs+aFR&_@nv_6tJf)O zTPLgHr2(Fcyfg9E`6t>2G8*Uh`1gxNxNz8^eqhuJoj5}Y`Zega&6s4L(F*T8IxCtQ zZ8BlJwp<^!^F}gT?D1LxQo#i+>L+G2x=X(NEN!|C(!x4*joYKjh5wIr{Q=@=m(tZp)@`7K6O zcKSnO?w>Um?rz!LO<283vw(#;+uSr1rw(Q9?s}v5Ebw|-6-f)_HH|(_?!LQD^}}fu#o^_uzsc*^-0RYgXbQpLp)a#5krRovA)c#m_Y^^ZuVT^s#0g`X}B&FI?LvhPB zfYF?f(CNwkG@=m67-mL(cIWzp-R9W>hZjvW@t;%h$asGqzPJO))Jt$=#}mNg(>G}v z*7!MnlJ8(&KZzq^Q&}#^=#*kd3I&M8$}A8~#MKb)Eh_w5qo1f`?*qefQPdRwmPl8}o1W2Y25ZJRppm0mgw7H(r7zw_WVi~W@6#l=^X zG{Qo?mJCz@8$F_<>nlC^DgBA2VmHIj?BzNCN$QrAeYerw0NtQ?N1|n(*^!08m^CrB zE7Dz(NmGe4dxhW}aluU$5eu7x60Xj%Tzzfw0d+$edzfjt^ej%)la^U-^g#XHw7qEG zo;;b{5!|blc>l^;@3$3Q#BlR(+EYtZ=zyxIN(#@WId%(UK>YG@fOLgI?Bsm50^R6< zfm1irkd7y0ypa!?@uy^r0&{EJ%s?)3@xGWI5M(YP3`|knGpbdwZ6%0z_w&O z%wM9$%Vd~+NS1en-R|htuLgge*k!wPBPIJLGT&ZME`TZOMXo`R_1bv~QdfL-r?T)k zIxL-KnC*U<=dA3!mbFm$4d+eEC3&#*GXx`wE@WNNQ46ouXy5Zj_8m!0EV%KFoiRHj zr3`&fFA)g*Q!+}CRPv87g=ExK8D`9Du2r>U5cjHbVEZrpVWd?x@nk+#b5jtH5huwY zNI^jU&J$R=(tBb~J8}=L`+zX~nju(Fuu2X4By$G1S?hbYvQ0CxVsYRrc)vdMY+;+a zB=?%1i@N~*#L$2#NVPNDfayXJcV#2{uQ3O(_gRQ8(wMn>bQG^4K_4g^b#QUqjgnMVP%cx+u;V*n zre+;EoFGV;tI|Nkau?NjfufbZU4M|FnSZeKsnbhA}*&f{UzHYjxoTZa6YP?U$uEO9YRop>_=#wbY>b7wW3AYW1X7u4mB!L@n>H8$?pz zBU{807_q&OL$yM!ZoK+}!)!m}7CqbQ6(5jm4Z}emqNb*I;w>FiekM^DqwmT8cr?W}OpwZumk?q|FMw7U6_08=A8TM-iEBmvya-lSo%=1)X*h2zrjs0&8 zodox_jyc%AjK6`}Jk;(atvH3f&#CXanmNl>u}%s-HxNIcTqV)+no>kmC>*y4n_I=W zLih=GN)kq_GU=6c`)+u}XoKXvH)47jr;GbS)mAw8b=bfT-g%{zN<)($R{mbo-}NJ1 zva;pb#?ejN>!jR%#9+|0xuiSya7HLU=IqHhV=3@MAk1)hw+6fjOdJ@3eMI8KB?s5l zx#`Ed-`OR_Dz8~GtW2Ri6IdQ$3h}zN9;dV-} zRccNL`_lp0`X2>i&Vv42AsbjQb3?1p?Q2{{md1L+05Fsu*V&a6 zEAV+C({jsH?RtcfY9Wnzkyi@yrGP`hi8V>fmx6&DP2WF=gB;{we2T&KBfSJ^8bo^% zA)tBuCR-VdbdvcU^2*(XL?+OW?-3x1P> zSs*d5XvS_bhZ(xb(Fb>R-_UD9ns|TcQ6Cf~1b!LZwHhz@Ur_6vpj{kK+B4eq7k+$t zW4Z3fcb9Ftn1UV`>TJn>F9aUXHcdm0{qJ1JcVddlzS$z`Zw&jD`agy;4eRO7h zyB-7iE#Y7*$@w<583`7p_qu|b_`Tj5+bMRyLTNkC0K^{@<+n8Auba&~ZUYG^FCAwo zmpc6cRl6HkIp|>;56N{6e$UvmupzW}Ao;e<2EufAcE?ZSs%F73w$jkZFg95}Y9Go` zZOssB(pRe}>G6yHSyS(A_Wl+1#}$s}xe4b|gluZ#Ams_(?;1bDzD)e`jPKiod|y6T z6>PBocKCCg*o?zseD5!@m#;tt4~zJynr-14Sw&oGQaf5HhH7kRrD<^A<9hbP41^qS zK^H5pV{CAgclU>#>pDGThr5IpqdAF|6Q6L;1+~#sXt~`kktKn_MF7Gpsvfc|6%;OT zjN{zY!&a{RrS0Zbua2t5HYDc<&9%}ClTV_@=NgUp;8q(PCv_7-K;;?NXNp5s23WlQ zbOgCR&#{xrL_PK4+^iecGq93Bz?H3Y%1#yS*D9GQx@N zKzDMjlq3c%_Q|T&&zOe_*hN~VcG3Z1?;EK$d`Cn@`s687{$atR*?hR~0ra2?V*gvI zrRDBbC@k_1+o{-NSV+)UDehBC9Siq}$Lp*eiY`w<+PPc%Fp4wFW5GIOzLSt%mEX2e za-8z3hpL=Q9xgbj|F#{nqjtKfD}97(4I>%-Z5t%IjyF8&*4yIcxI_iRM@s5x&Z9bl zX*g0c)lpU%^LYC>UC0I@rLJy_$8D737m#WYu?&3`87)qHt3kH>?Yr*ZP>N1GsUB%@ zjZmTVv`MJ|%hY!Ff|rtF%AKv+^@g3FWiIgC4XHtsQbPE9<~V!k=Mtj%+?|N|^_EXE z`)?AVe@`^H8=LhvgKoOwm!;qD5=(Gr=k}ffhBLzW;fn|6Qh8RNN%r@1%T78J%zfoq zk3w5W`8ZG=AeKLS!3}dujYh6{AJON`kNF{uck5Lk6Qm@-@^A9 zmU^1qX2n@j2|nzy&>Wkob)g{4_M60ahj+sCJfB1=MqAbUS!R?et5#=n5CHa?)vzPV zUMDU8>5@Sn|0cOFgNOpKT8Sr<1=-UFPqM7-gjOzs^9^LC93`%t;=bZn=cgLtKc9GQ zIA_iIk&ArFLBgnf#^L)qe$_9;+Hg@nZA04xPl^px#--+kkXn>-L*cI-nn{harLF(Q z*Reub^nfK8UH*b2xZM>ShYXHe?-GvmiQDd@fXi^ubae`JZ|}N$9JB9nvfgOKh43*2 zO2*v;Cf=aye`e^Z#Q*8utEOXpxwG~lS<30hWFu{ zVLRb9#+bOM%j<%BfmXt2dWqroTr!_+H!<2X`-S7SL1>eDSs<9gC}t+x&Y2B3?Vwz3 zpyvIBR%i4{1vwkm0luYYag>pa2j2PgiZ`RY25=j!|$sG)pHUB>T zHHl@f)2I14a9}a#CO;s}!CQ&Y$ezAv#(eH>`Ru+FwY3^0co=Gkb;VCj^!)fuS1z1h z3l!MopDFKkIZBoepNQ6{j`!8kKXpo4gF9ZPG7=1(x*Gzzaq~hFIz(1KHrCoB!KkRg zw%kp;B($cw#)`3jWkcMYt{$pnr`am*QH?3<|h4%jxSJ!J)(@Xt_9>wp498 z+uG*MxHiy3npH@9o4>{+(Kk&Nmv&itPtWPsRUBxV%rC@dMb$ga0C%UE)ACGVgGOJ_ zq@O-dBYv3x)CIpHEEbf}2Y&-XDttAElKTU2T7^KrIUnyRsEQy`KLsh*I-geCB78 zJBV62ccs1S^V|iiG$qH?ng65+xGL~`2CA_=oxo~YH{dNv;S%TojT`CCFT(LTX+aiD zQmG!;)JkYyBo$ZhXY1LW(cyb0=A@HZ9aGwNYKR@IKqU>GH(_MvahIM4odFDsC|ij> z)yso>`+kaGik1jzi7Gpit)zzrh}f%9v^T0kL6!NGhBGq@92a@ncEqw%d>59~cgAf6 zbi07t{O&dxLwcNQ>iON-Dq3e8IPVfEd|^lb(3M8otXZ^y_TU%p^^6~hKhcWF@^eGe zoEpR-K14iMCAl9GU>3ZgeisKUKn-M`aRZx(uO5K+DqfL72)br%SPZ*1E!t;_BD z#7~<(%w7u+J6W#mAGiG6*ZlyOUDWaHjCd{G7cefn%X1>Qs7ZMh)J^0dde@V|^vKMjaz&&q({a0rJl`#8%XilG%VlM?(X~3ppaWqny_5W!#s5$v@J-$DJ_Y+^b1>> z?Km@q7xpdZfplR6aw@q?=hBj;grb=MEBM8U_2G4H{~vI`rjljt{Mb+RfuBT;QOLkD zGQKLGQ=Q^Oai4T!LR#XP-yEV7Wx&*z&`tN#P{eX|ABLzY7;pUm00@zm*0>N(MDTOI zMHfAbFT!7&zEuh%5gN?Be!qGGC%(z9xu-m(S3*{0K?r>MzqH~O2psADj2j)V3wS=J z?9*oHnY@Dg{&a}MVP$gjdr(ogWcZ4orIP|UJXtFDP)rN8qZdr!95~Kshp2hrw)zEP z?h}3nlD&97+@?uNI}_R#DqaL-9HSqj9b*KXX4tO#s;J{wfYsthd?X`GN1J)x z>fTB_s;7^CCkiC%mpHT|aV>aI`z&Kck`?GbDHx(9S=8^kU*Z>wCpgSbR+0O*rSbKX zC+RJ}#viPwE^JuMz7ErE|Fuk?c3dV!@MICCPG@As%;7y-F@^|c(SP#TlhmAKm{-0( zQxr|fMkr@?VFQ}U8s!aHauFh#=9Y=GKks~vkq9XcE|=@@Gf5tal}w>P-Xy@$3l^LM zGy`$eCHqy9yVudx?>vRuhl#M~M-2t=fVbd@I{#Yn?2`R=^r5O|M9VDT=!D~ z+_!Xw((`Rag65S@ns7gEV}=9`zHz;>HcF$=&GPl~Ei_4Tcp>jfkY_8D0!|q}b>dPJ z;>i+nH1W2Pn@^s4B^zmh&v13?E5Sx!+wh@}@jY#w;u*C!p7UVK!-A!OrP=y`&(15E z%(9F83IOR)a~1k`zIKrh0fbP8#f5+HU)It8W6Wao{l+3nu_NS2OQ6?bt4(S5%^>O0 zzMo?6N5!#CA49c#p5s4AQZ9=Nw~%|PspqW>vlC9L+d?;l+xok4Q#geFCPJw12)=@5 zV;-0OLOXX?L3h3P^G}`sK&ftG<17fDl=G!grNQ6*&I{AtdR{_B zic5M!-X9m(v4PZ7$HAL?$uZKCuc-%FkA82M_nYGz$q(1ppLx%f(01;R^%Z;NuJaJYCIldp$X6?-=R zUZ@Y-bpx{>dQ#u*M{30cY*+tkF^#UWS2s_UP2sk#(lH(<5TEBCI**-=`_=JNrl#!X z9DoC0NMoOUUy2t$_hAGiNhvxPBmORZx}YPzq28EpirC$-+N{kgU5^xo+Lv5@oKqr7 zCedBM3gz1lAaroF{*bIuaPe~3u$jPfJ4?Q~x-zu+h^@cQ^H46^%)IHgw!1&N-sY3R z#6g79uueU05L$0G{=l8Z)08FPE~{UkxM49%@B^PFAPVc0xn5RYKF2&)b`}an+VUDx*RL8lWd$Cr3c8pnTu5;5+@Jq7h-Rr(j`~e zJS307t8UE8yeg44bFK)Wo}jL7;!DwMit~O4E)!4yI<-G5?!_TgK7KLBPFA@ zKjOY^DT`b8)@}3aethHg)^b1<&I<%7A*?B(b^>bTS!16k7Jl*Wzn&UM?sM$e?<$^C z(dcFl=+=CINgP23B^f%OurD2I*GYicsAy?ll{S;chYsyw`m4@0Te=Uu71_pIDQXGxc^X8^ph$VKwxPVYX{jD}E5qrZG7M zI$yij#m$tsPuflO$^fAwUTcKM`|4e^*t}Ve%}jQW!!6OO4=T0*wn=8Y=Y@_&NBLHp z``2c&nY!*m(PG94c-QDE;)Pl)zoM2 zTB`aUT5`(DqKDQm+OHO-JA3?;)cCDG+iLmDAMt1l`Qrb2&Qbet>VEn+7opNtaEI&P z-up4AmbI6`S^iXER+TNw?@7;d#{RAazw>I60 z;>~7|FzdEQ`cY;}xn}hRNh?6LblYz2s+;XmO=bkSHAj&?`g+f%NG_h26-3$Tee~Bd zUUBHqEuyx79G!&Zc`!~@Kdpau9_!Rc_N;IvC{D%>q^UL8S3X64&sXlKPG&FOvEll& z-b*5PcK@-27XY-QokWl(`|3;GUU}Kihn;u=UVo0*d)danNlm*)zNa@lXGeDV zz_0NYAd=Ncs$p6Rb9{zp>TDa)?N4%UM0>Xm8#F-~8(Mlwv-#FGg014l>;r#0H^g1- z1s?7`gR-W@WIQoxoR1bsHg3P6rnOM|3*)i9Y^q*jFHtEw_h>L|Wj5t8_QaO2E6Ug7 zHQs%}AM~i<+LXc66AA^V<*BjjCOg!N?2?+`KY{zduTcE90qDE`gKX_$jT^3U#}?QU zef^4|8jfOzM3|d!o$3lHI-_Tgb-wnyh)}|X+7Ov_g!-A6Iu06~O|pcZqKP|nhv3|K zvC}}!Ny(DN@Psr~fBsY1e2K~6F3njvOY2LehGh|l8N8*P_mJX%Cf~Q?q@f`b%0i;= zl-zg^7xpM8#3kYw3xSd_lEn=z!a|f27;MRX(O);>yNv^QcEMr4itUUN6u!UerrSNA zUj2)f`^|W77_@yufz5`5PLSAj%lcY25FzjD`n*NPXwS;b25MLF5!kD0JBd&__9c6g zaa2eHXEkpQ`m_z0o<7o@c!O(jo9oBUId3|^g^Xk%x=yzEhJO-JQ4`V}1)e~B$>D&+{7##poJbSH!8G^yr zjK>bdY6DqSELhb_Z$PdYfB5J18TtZCKOlbGk}Qtpbwu#vffqqm|6R#aq;5Z_98t|g z$Oo^xJ6+c|t{>*Ihh3ttE!J+}SYjs{0G2vV{YcF7(#j{151NcqyI z{o4ApGCn$nj+8Zc9x8~pRTe{>J!!hYs`o(kvzV4Ye0Mw>l;aN+-F`NMRNa1(WZgpt zkz;&bkQ=Tzv(Kd6t%5mbpUjwNgeM;k`|`03li0FPre`zkzi~Ui)Q~$yFMnfe%WgT4 zIw#!8t~!rlNfKH3#hq(ryhtjs08!~i5M?=*U))iVEu7>JJO|0hWg|#gF z6{lP$v%=Z40KKzkHySY9PUbMbel78uYr^yBmvMS`;y?9@XD^guF8!W*JUx#_ea2S4 zGd*8>VVa0^J&&&D2v+N~P}E)UuIuA+d2PzS`OMVabo-Urj31txskRoYDZg@eMU>t~ zC!rxvfvs3z-okbN<2W;`w~v5zS=V?2ZU|ku&JT>TZxOfV+oIR_!KmSG`~igM#l6%x z^%(h(CaZk>c{JgZ67I`ZSuN^qa$lnni!o~rr8~W|sLT2da-*C3RM``B1TqTx4y;zv z6O{K>ArA`YyVaeV_q^cT6Kog}BcBP7`rwIcUr`R;e-IfEx#at5447eEpd@w7yUvx) zo^vVj2a{`@Fk^K!Yy}rT^2V4~i^dh)uINSKM~MtZG>MD!gzlW9opM_=p1ZP?oQvqJ z50=O6%j2Ho^|^+}2~4c0a;UlKtW5IOm|W(5=lT2+Y1`^%e2Bla0$~iUXaL-%6@GUi&#zoQPd6v>o=3110$Sbk>gahF`G>!PVVc zj2sHpt<|n-ANN_f6nYJ1O!6_>R*4K{Oke~FzioGB?~DKq9i79AT~chp6X70qbPZ^s zW>%HI>AxR-bWd|tgiX?h2Is`tH!-DAw>X=P8Q&KE9RD7C;$59cS?z)#9rlIugSs=j zraZ_m1a4tLsPUmz={w%sK`Fyh3>VVRpKOKt68*ip9VK0WAYRBsh}0H@_eIAD4RVog zleR}OPPZ$rl1NhwzG%AV_r{UV%SvQCZi=h}w{4j_Zkr@sAcDK08U9Q4bnzu4?SmX0@0^bVwE{Hp`6 zzb`P^73w#2?25JhEywhsu8eRS{{SM9;!X57+^_s>4AqBbXuh(Xfcb=|TI2SftcBw^ zD|N~&YP+qv#%p|pQbxi5YJOS#{72ULn;}2QBuoVV^a>rm!5X%$v5#IeBcfKj)%mu~ z7r^J{D#@_smL8aGgPRYl*=8ud>*|pqKQLJY>?6F~$J$xZp1@#FK;aP7QhgfulS(f` z{_b8P(86sk#N(uaxpYB;cop85Y}UJQeW%S+&1Px*kfr7LpKk&YHFvpk z2keoIMlqyQ6+obc`b5)}?Po0&dw$u}wX(?}_{dM2E}~aSYK!?iOqw;@1St9qw&9-+ z_q=z$o%5e9O24N^PX;Ic4bShL5UIzl?Sgznu~$i0qt1l-h3`lmBOn0cy;P?okxb$y zx12R@k!dK2DN%*_F7mLPmR1|K!aZ4VyEgB?7SV?9w&Cx-MYF z-X%4b0?l5fx>UK)ma|OuYeD2IUl4_+j!EP$U3rId<9@_Fdu0RprFYq@p+EwR0(Z`A?AWY;J{~VX!0ueh+i`@ zw}Lxm;|{%e%kn-nI_)9gXF=Y!+Sii9mWaD6fz$WNPpm`N%dAA-X-}3#5Djl%5oB;> zlZiHe%j=SJ+)h&1ZB6Tu?|kolTYjpevK?&ptVT9<0p`C1j-g`f9KWNd1rhmK2P$A? zMnD1T9y;g^6Niq4Z%0oaPD*_#M#@*4ulNl~&SC;AXgu%F1Dzfph3t?s?x#Pym%T(W zPgN!?#|m{e2<+$5%OUdB`y}WKZfc6|{1_V-#Z&32I%Ar2vAF4We7Wv@57Uf9zg^kJ z5%%Uj4$|F}kOZ-sKg9Ems%!d--s`}%f-9r z;LP{w9xBG~stIJ|vdythiF4TiM?kp0k1DQMMsng9Uy9A?)~jENvG!g6P-i(idp-Dy zqq2dXO?>ZZcbSTJr^hNx>cj1_Dv!^J;c@@vC2c7G`Mfkr9aFZsMIS78ZIV+2QW=;Cv7Cvj-?i%Ws1^!A62kIE6AVP@!X(#;yxHa1EmfY0cN1V_VQkNw==VY|;b za9yTZ@lUg_x;U(gB-OcFCeJSKf^JrwmCOB;cW#XAP9LW~TJ1VROE2GYS?DvoBVEpW zR`RFp@I{4_&;$VzWjvhMD_Stq#pQQD(MP)!2& zpG7mL`o?arhYyMatjClXAs9LosTh?IobOEBwYZH@!9%Zcn|u5|JpF#$>&ZD?nLmRo(%&jSZMr@<(P|QwLOrurjF->l;WoAy&*Khum7D|CCpqs;u#CNQTU3TpUuUGu2{FQlp}@4vfycayTHix2f8O99daj9p&FPX8WskdHA zC{+9d`yPrh^_is^7KZUe)8EM6c#b{+QrP+H_SNlT`D^&o(V)-O(jNj#?Wu?l5?4?h zjkbm_!sY!S8&}0jb|h%DhP&(y`{4bU?)6&q)*-m+=4J#3E8MFTLkQKTagr@~m<-;I z2ZZf;VzH9>aTLkP>i{(U+I-XPvmmstkc&h!*B&Uaz1?E~KAXy>&5SiTa7f!IMzqwJ z+E$bzls%`>PgFQVdH2kJhh8n?dh*@+KG~kU)XvoXv9}b6AI8%awX!X^=-_NC-*T;f zre!AW1Kjp|thacs(BmCyhCfhqg238rcslQNSDiipBUa9hjuvVuRjn3T$mmVbh6 zp7)zY#TGFxgUqWKBaIC3j2X@x4|`YeafKWu-dvELy;{<+l~`O#GTxB%HTXuoX9sy6 zsUh&b+gu4g>sF$;iOXitpUQl+KW=Se^2X|FlMP0S*Rip_x-{_$r9bRUgHce;|Z5*_GK@3o(} z4`=2mtVdBNr^l`3N3-<>s=0jVd~wnVBd_M0Mr-YpicCxD zRf4RVzJ-6`x$dqe0X*cZfFqi87=%vUgQ}dg`V2X*ZZVMB1kO-X3AMZAD2Nr+m%a&i$(xw@xb!`UAi=NMww8V<>evE+$U4_m#}9B*)ze~%@uid1#INB zMq=Q1Ya4G1VGA>^K{$a2A}6;$qpEmFNSy_uA^_yJ$6`(KR`H!KDm+14&-^OzJRyol z)}Ji$0*0RPSMd<$!}&`%mf12_BL9RFKz>ZL4o6+hF`t;PX>ysX76L%VD~$5CCaNd_ zrWP(8Cj*gO(QoMj^7R>7!*#@qfopmB6ayOOudI6>UD-px>|Z-}Gq(oKV*YliIE~X_ zsRhLnFuiHrsyd?c*GFE>vMyHDyhU-#*1t?X!i#yi)Ed?6#qP$0-pq&-h=hx^G^vPN zThD@5G%AUA(+BF>HTyVhSbJ6f4s_69-TGT*HA}RtnVYhA-jN%b$LsxGJNwVcsGJ)wKN;zx=++}5T4V#-x7lQEOzP&<`$3E8(@E{E}Q?7%U(iSXV&><6MtR5`8%BxnF+&JJNAGmcriQ zlT-E!X={CHx|o;|nSJ=J0Yh!enNbQfXoiVvAliE zPB@ZgByh0|7>iv~#XQ7J!i*dGlC9+G}aE=zkipBmhz3ass!v)R%ho8{qp1<^;^BOQmn~b zGx}COs*E)(=?aB(>jPV)GlAWbXqVfes8>F;U1lx@soHuz;QPFY(-yrc*|W`8@@7zT ziHFTR4gby>+rp?dwG$7HPZ-&F`#0U^gs|b(^|KAW=gTJc3s_h5gwA3Y#jpsM`BpEr zi6rBJ$*b{GfW8j5))ZXvAS4!WNhEDrXmB;Q;;UZlafL}kPb9FXd;w|d{}+hB86oFT zi9G6(OSEbInvrh9IxmeRcrcM#vA+Ks9b2QMZQ#pW3zGvkT|C4(8w_~dsPk1cLJNSo z;J^s!%=LqNq{$UZ(FfsyvZNj-S-0%o&`&fs@+-S{x$r&*TzOnH9Rno?1IB*>v+5+F ztX^B5UddTOt(qBJX2_>p^&3JH*i=qxhna?ZSY)U+j0WAO12}<3yH+E50`gP#$&YFF!(6 zK`GLHW`p%lE-LWbrtaU7s1+&)_+tlKsV2erWqaEL zH95JuVe4A;8oVbr=j52RMINL z2x=*u%%nr+`lXQ}$J$bMr%ywc@wv z-q;lj$P$4qnvA~n9^MRYy|^#>p2`rRo(tFmggWXtQ~$ur zDEym|Qpu}`n=syI{yw^SSuej*SC$ofDxPZXKR0z%uGUU&3pPE;);?>nZCZ#DT-B#r z-?FCzM+`!S8taW4QCzhKEt6PfBvj;@Y_*tTqMHCH$KArM%F{Rrm%$CnpZm+4Bu8gp z4az3tgsCT)hg7M0Ve7;!0j2dGJCpUx9FIr-u49VzEwkduZpL2vrm=c?k?_Cpl^$#A0iTba+=zM? zlH7^ZYhHj5#wHx?y{|2rpGp6kXQ=8TQ2NR6IWB*OXfC@{lHruplVtY;LdfV@Tw?u~ znF#Fu_efNLaPGb@$p13t@&wcK#RkH`-OB!8J8kz zI^2DSZD>_k+rHslgky1|!4qtzD&no$fx2i#^g0|E+f%2G!<$?G*pm+U;izQzm7N~f zut-3MVM%PAPm`+d!1CN%4b$j)7h60`Z2$Q5ZA4dgVyv9CY}Gq!fXGS9;E!Yb6sj~I zdfok;QMy0%-@sCTHVfLMUz@?*l*d-t`?I>=%1u}ZXEy42k&cgn@&V-y#GodYFv!t~ zTAsIG<=WSqiN=e^Hw=R_9fi|E?IxUB1nrr^|9{$q*hCbil;D2kN`a@U+oUd+BuL5M zZzI){W!->HqtSFKd`}pfSQ6Pj*rJHlMiJi}WP<8~Rc!mLL0XzW&CVsAm`l=k$Pot^ zJgo@zpI(XwW>DAs3-GyDpv7}7y*Kx#cdxhw!HGHBTTlTq-)V$K2A0kA2A4MjT+JT*3jjc38y-_XM7R-vaTcK z0LS3HhaAbxUd2}46aIs$3)zdTo2SceHrbn`8#%dZwt1vmZ1O%LhOwTa=Ogzu9{1lE z+_g;z(~gkQj}en5DdOk$a@`ut3p-GRN-nnapRW|@3&z_Y7IMQmNp zk=@xT+pi4*umlnaW2K{-#CiK{l^w}(RO*!v6YS?kkggwuSJ%xSrQn~o5kyTo!bQH@ z{}|q&^akOhotLxy+Ej?vx>L#1Dn>CPNvuli<0uc!_{Zg!JkA!M48zmXC{k<|rUgQ$ zskG#2$Gl7xq!PpWf;aWr60ThtElgfK;5AbRD{TRf8@>f^O=mH}h>^?BXNG)OV|QB+%@VCXN_VjW6J2AdDdRr_wZe zMZ?ED!6%ogH5|2i*C++%;7jHcz+Gu)$uffS4dMsh@vF1f`>YMy#|^m#7MeQZMPSjo zsXFv01hY0Dvd}3nIB`hJI&M9qSFxMv*uSNh@jD_J^_ab)b+p+7lb3G)gVD)GW?}7? zA+SAb;yp8uhFYM|8|T8bX682SnL1nn&jqlV0Xg?VD9<<5-rc9jJiGNn z;S(W=gIr4e(?`EwF0@lpUQeuwdnOxG0AOhUb@(k1=6S33fPrT2j%5mZ!q+obX(6(7 z(^G*#cUZ-~wU>|mF3e)=ruykWB70gy~S%IHw~ zHGDJtu6ecKH5h3}# z7EedxXlv8@5<@-ZL<*}C7HJOW)Ex%H<>?P3L+v5C^KrFPcXVgej}OXbq<#*q*mae= z=)TvZ|JL~8+>Z8oQaJioo|WSDbheGgL4)hISHXP|!G{&4l}L2uY6OD=AJ*k6mF+C# zXiQJ$$5Eg0ZZXT-t+BL&E z8SGE;mdxw~Q>*9pADb(FhDxNgBrXfrt^z*sI_ol~@Kk%62NwZZzCQ?+V=<8JYu6ji zL)j@`n_9sB)_U8=Yle95VyveOE3$cWL$9-XR?jYQvU$JOr8Vw`hzE2iPK9*k_!uPq zG$?YuOZ_YQ(WmNE$jXZoQ_2lW+=o^nNt$ZBKfGGh%e&Pj&^J!_KK`V~WOzQA&vysD zYkdAjZV1h2{_E{*9!uBGYxAy&yvp^l+l|wyG$rr&diYi0c5&HSk>i0N%uYJ(`}nb) z;H!Pu`5q;??e`PA0Q$xF`Ivcv<2shRXU-VlGUMVY_zeYu$R%EYpG(_*#yosG}8 zg>@+>qc>5XudLh;+VrAnUuZ%BQmbTJBxSd!jFp`i-07TO)S=ijfM3Sd->%n3vzf-f z*2kUBx47%E@iBZmI-kv?Qfd8yf6QkOsJPo)&zfs_pAdje&o)KQwgMBoe?!_$_$M^i z${kno2K=oSgpmh*Td|#rGV8qWT7LNFq7_dxwK&cJwJg`D3$JU)MGyRdXn#pDNH6H~ z0t3DGg+ao?Q1%`g)ig2?00hK|UEF`Hs!mlRNgD)n)G!R7PCOz25izKOghjPnK~ zymKLSza+dfyWn|#@5*SVMp7GbKm(LRLyy}O1J)Tw`=oJ%JF;4%5tpRJU24Cky{ z3z6Ng-}cr9^*xGYAuW5o9%ZLs9NzlGo!)}~U;GHtZiUYlk_ybk@99FtXx;g@p7nW0 zhDGu*oqpI+G7*}3_Gop5F9TInz()v`Z*$<@qLb^}i_z08GyL;+JjOsOcW>l;M=5K{ zLb&9&N#^0ph~a&K@{{|$x@QVHhiWX9e)qGdF#2uCr<(sxS2b-k z!$~-blfQe6+wpgnVu^(zv*hvG%P~z+flB&`L)hJ$hKM9RKc4NX#J3AiMp+UgSU?{p zMnS3W^vLF+WUB++#FnjqksTLmX!1ci9~U&HlL$#;aO0bRvgAX4+PSR1qfI~waU^&m zE{FY!xPi&)*rr&~QNNh6^#TyyXetN~4*SZkH|%F?aHmX-;N5oEX>||1NEykCXfVkndb%4T7NU-|nxf2^oS97w}eA zBJL!1#svVMwH`0XKJjOC;oIqIg9x-yV&3l%X+4I+kRNNiX8mK)AFAaU!lY<1|K-Ud zX%iQA@j!z_Ly~7V{{~>>c~T`wJY$=T*u&!GA8d&kqZ6YfvRZH0Oa?MM$l?Ex2Es?4 ztDHXg>tip6D0x&xBs9ubgL-szG&sM$@0iN8XuRpot^U06HL7EbqD=PNRH0DO%&VdF zOdaD)Vg?+Hp}0Zgkd=C~GKROMxQ&8{?N3lf-wE&F5b1Z~`iTa8ofb;4V+*4G4;gY66%KuI zeNk}mdWvc&pD)Oa0Nk-@sh`HKX@66I4YwW^(2QFIQ5lQ-=-SYbus?BRe>$s~K4q<< zU1m#7UtT!&e%wM0J!qu3LR*QmY0wyQbM98xmeKY)L@JzVF2!c7etIc4j&PQ9UfniL zes=sl;E!M2MMm&9kC>RHPP0!Ky_aeprPw)-f^%+SJqms1xvfT{IL^}N$>Svx@0R_g zHEb@;eldf56;g3_7CsLrB-umTvZn0B4a#|&dUr-V7W-@j)F(-M$Ces6@LMW&Uj4Zn zq1JtX1LLqzPJSz!MQ(>fc}>F0XQ41@CJpPYQF3#Ejyw3_eSi&wVoGC*4L@?Y^&|{vG(J4(I+ltKVd= zW+5KHCW%$R%H6M7hsQL`es|%EvpqEJnw67c^GtMaoBGlF>!plMWjJQkiAryFTjN+@ zye2<@u1cwMZr|&P@*l&)U!yzj#1Z`XGj~6>3)@S11y_{(iWFGg*y56DX1BTL%C7W7GF;0=w$A+8n0||SV-8!LE z3_)v!gF!}D{Ie&v`YnVAEy(z!B)izdjcauf<1|YLqaokS$|>%J5&Qk2){ZisjYk1XbCf_CV5kr~+C9z)klvs5y!_7dO39})tft8aJMG-3DfY|IMYbzOj38|I?bokcjw!(*tcD;ASLg) zxs<;~de^;=`p2?fRn2`@5a(7Uwa>ZKYnM& zK+G>B{RS`w(*)x(apn&O*T@KU=|0y8tsSkx>KzzF;ySpqojgbYn(ZDH%`*35zuw#X zW2KyW>fdX2Welp|9U!^(y>{>HmR}BqHvc5#{(JJFY2?3At0<8@$WEuK$$|L~nl|21 zS^eJ6PlcoNvWR6e2{^H~7`*umBf(Zmym{GFZh5ZfB>UxReVtBcFq)T|YFlt*#R@2V znTeZxYnslE&^pSVk1y;o?5PHj%}hhhH9R+DuJf zYOu9dLa?;upAxRsD6w7X<~(vl{z7KTTmTQL!oFZ!Bs|Ir66Jc=DIBhq#=Ejje@0Xd zu>CVv$TsuDdWPlkHd~*T;4)hk&fkOGdQMVaCRP}ghZx1^BvRo=fUbR?yH z0f^N2|AmTQUMhTMQe^&3TJ*y5g(azXLeYg`lsg&Xvk#!o%&^ z0o$XUGQuzu!vY9~sKH!!p8D!_Bc?8!BZ|8f%q|d-?NDkTX;OC)D1b z43zx@D;O81l`X<5?5#{(!>$r$nGirj=WxTufv+I3c0x_vB8j;oXkE{TQ!4Z2!S@GF zxj&@l;6LapxP-r`P4&|(J3lZ;EGufTN#j#Pz_}UAUj9Wk;DwQL21jtGq{B%pcc(M{ zoR|LB5OuEc4nIGDs^76t%sqVAFP;iC=Nav%7c$cDZT>wrr)0+w&D}WdUj$< zJsb{Z+sk4}-G2I1?lvZ8f^q53NQ*K&@GFG#z3cA?S?L)LwH)6UDtscY77MTTDGT#5 zb*N_a7-EhX=@^tU8um#u*Jp-a)Y`wjgAz<~yn1*-+C&wBEiXx+yDRGUol9IPNO^v( zWsAIf7lq0c-@4?MrU(TT7R(3iaP?*SNbN)8*|sYEfBVrNr$Z@fLLWSP!~jcXDHpzN z$4FWFv9#(-bk8g756ep8YjW(K*|!_vN5RqEn8BIf4{Li5EsUpgj;FyJevB0*D|7Asg~feB9L*rbYO`Ov$>KuqZ*=@?MF~V*(I)SxuBjqi zQj*ORlddo5lzCM`T*l?Nggnl9MM$ykjb`qh+eKFzdm{i3r#BBBqYsQLvM$DV*97Do z2kcszS?_q<+kpdP1`Y7B+;pJ_O`C^`(TAGaV2T{3eSV5tT(ED&x)n+uBJ(OL2d1aT z0(X3*J%nl3G@3IqQ zrpN06T+55dLFkSsO`zHQ6MR3MDomiqzp%h>e>x<ML6Fp$PKJ3)-5 z&pjYlbTK(*`i}n=xBXwpYzEBh9hIS?MA`%rITuA4vNn2*^S|5%nSEIp!=xzNp7=9( z1ihmkR;pGwm1BrljgeyT7e<~BIVNa*G>r)&`(I*=YSKu~A=(5jg;V(nxWC3w8H=mp z1U!sq2+qvWK?O&>XG2QoK{0Sbx+;J9-qk8rn&Y zq=A8Z zZUZEsx31)Xge@e<^-k>2?b*%3)^*PjsFSfq7K#05!9TlUVH`RF1-gSDKN@AmqV`dr}7Ljoz$2&zz?hA*C#_?hLl+JSQcJ`i{{pS<# zPqRh-n@ayT<=@$r2pe9ZZHu~9|x-Eee5|Gh?rEBO4-(I)@jdy5vFhkpkfr)%_ zrZL7n1Ye~8u}ztO8zIU<0w=HSvLo4f`!7~SqOUwdXpoQxJ(6uGIe}12PLPE}Aup~| z_+N<4Ayk{pP?s^|j_^P6{wGA8K{*@3=g7pCGh`wctRI=E#0+}R5Z1|q)ZbZ4I7$F1 zy1eJz_&GI!Qaatkut2vlEa_21b8D5R@Yy zVHsrnpAHj=Qnez(KZY~N7;*_ePdxGu+IjNN@0Snnza)_S`oaJ1n;ty#;L*edk9hLw zfC+E?;0f|tYz~URivH$7wNe)8GBh_7=cgrP&`GG?*F}7>foAjegA3px>`M!!UfE`` zcQ!bZA>NXoLqw#fBk>Y>++K|Wm_?PzV4;_EDtnr&c2ai#MY76|zJ~8dLv%Y7b$7!_G8FDj!2*Ey zAiu>vBw5LY$S=~}yPHwok;|l2-cm-6RKyF!C^ThDvJYvix|^*4@YV@BjF<)LvO!+@ z<)p}7s=b9@xorY~xqbA^aEx`7G2gDzecHThC#xBAwcz#2DC?oD*<0w_w80ZcvLjKs zx3IT|$*)aZ4Hf)G!O%OEsq*xHu=ngFwk z4A4qG+$CF3J54!EO~&h=UmmihkTs%O!~~%OlV&?>tdsg7*1NJwvaAUx%7(m zLEYl5@Cj(tZ3c({6Mx?hA(PHCFREbLOkDbl8Q>dAvCf@9ohc%QTs44knFD0QG5Oe zoEJv|Y||Lya|?2dx`!e-Dt!VBI_iNZjDtA0a-DYMTmyo5m%)3s+pK~3HyYn0Tv`bH z;L%IgKX!tTJFAl8I^2`i$28rOVEmGpmBb}ZQ-_G20MqL3?mS~Y>G{Zm)Yq4^r3>6D zTBUj)zB4rEdt{m>;|wq=eG1I1lfDnI>7n}zv#7i~PkN|DmZ_W!kD@^l&98$6H!)+u zK##`<*|8_Dd<|{|rETz*%njdn>38S6_#AJVRAwFoG@Is}Lm@q4)8~AfcVyX@#70J_ z`Q~Kb!8UxXF;9+UO=uPjAi6lMx>6+S2}tX_G3n3}Fykk)`H4UGLNf39M39fmz-$;& zHCfGh%>d3|is0xJ#u!=2o`>AR2k7%?@QZwshLz6zYx3f&Z|7xChMX-h?fKW|)Bbt= zpyVbrUAc^+Q^dwaKxR;QCH)}YER=KE*5$NRX6?dMxPIH450r$bcP2CN$H-V}C)Uym1Ii ztn2m-6Kwb>B8U%3wZoC{ul-&vu*iO2{eI`{LbBsMlx%hM#wA4-B*lm!+X-4LL^nC4IEpU zT*Wm|*qJbzSOdTMFmXQ@duP3~G&I^Kvk&eJ-YE>?@#u1*7i8QG%4Jt+u0BxkCq>fi zFutylhtT`uA^}6$39?b0c$lNrJSFPj^nZO1|6eE7YU@f^@C;;v!_lleO{=CuvWhMV zRWmk4cd!37LTD=>fpPQdJp{ahi{V;j81nTDd<`ezcl=;Fb`sM0V`ZCayR20@LAL)S zWOeW)}HKZt?3 z>)~0k{S@i}#O@r;-#udTeq$D!Q`3O*#)NO*L8uQoR$3;1dH`v8wVFW%c)MCGdU@Y+ z%ocV=uf#tV=74J&td9==?Sic{0B@e&a`G=m&$QP=E$L2X>bxVEpd>`-=B*V{djj5V zx`UCD-2pMx$YXJkPj*as(@#3=KZtj`z;B(}U%SeQgBei(azCToH(CPN*GT0ZqeLYp zI9kFo(e=Xw`s55CBay=QFSV&NfT+qFxNIRm3+#VCZ5ejjhAP^m6Bpb9nIG_5IFRUn zg?k%+_z9A56oI~kGP}OVNd7A?*w&RqzaOU-=uVu$tht7hVwd(GQbWOO&H%!_ZGcY@ zoPS`taQEs1rf3KwLjyr@(C)gJGGb(2r_?A;ptV(?T=JMTW7!>%ognZlSo)Vxq(V;7 z-PaxOH-pwM?O~}|M-fP?ogf$m3_kbM1J?tBuzS3~xNFqf6%-2#%|Uc*-8L3}iU(yg z*9{5&LkK~P-^h@HL*qlJ1X~uq_jxgQZ2u6`XhPsW6s;pXbTYJbzw~MvlVk#=DZ!9$ z4^IaTMRwa6llEy$V?x|xyt;<3Ey^LWe2D{Q164YKZh7Q=f>t-ys&JBl^pTy3Q9m~z z?{GI2l;9WQSsnHwShWX`-s9%j17PrBlr0U428x@#y#;Lq6C0k#M|YY&Nw_ z+KY4QVppga?C8$sU5cuL6{{|k90N18vm*FUA99u6VgpuR_EjaBdE~LV`^bvnDp@o$ zr0|Ygs$WY^R=&>TK5+aCyQi_15|1n!ZB>{Co%icVW}o@i{=ux2-0+_!9YX!mth5I7 zhAs@4Fiaf?i|4->9m~dE=P{dzy78vtmuaOAYfJ-hCUWJZq~8aRj3>d~qffZkxedaFuUX z334eQTN`QC%wU(e$K)hE%Y4u~FL`%qxyp>ey)~J(uwS(~vO7rXT5Mk+D-Y&QjFSwy zkBF#+@$)2J*dAG_6}yi{cc1yH1Z57j1=n6O1_xUm{iL4u>zi-5+imC=pnkN3a%l*u6(O4;aCwfrmJ_{L=-<$7zT_p_ z%rS;hg@-FtPJU*HnvE-EJU-Bc0?KC-g%8#;7OQbnUVSy2=X5Wt77e{3Tr9aVUr+R2 z>STE*RSR(f1ZNgA8bzRwdgqDu{kBrv^C?KMA@-d=6GzCAw_p-sZV<-6pnmb-3Q2tX;%Pz@uWLYv{aw zsQCnEEZ4lV4z@b?1)PdshunAQss-3VRy!j#8fl#=(LuGXC)xJB0kJf6g&A(P;52zP zxTe1?v~K<)^KWR^$aVV2SD&Lc&D+f)*=CFz0{4D7sL2BwF7qn+Anrfs7HIr9aITFk(VEa0q)efi4lHDFuh{UriDNlX56_n4{7Y+0P0%XeH?boKmC(u%K?2Xd2VB#OK=b0v-8!Si0X zOUwIanQq4QE*=hvGrB*_yN@nL*k*tzt_+$F&r6~<-Hh zm!|)9L2+}*!@gtA?b-brB?5b}S!u1YjSmnSCU0R=Z_}DN^w!c{Q-bf!VtsB(&j0$( zp??QT-ii@dLq5&uQ~LlMoss*mW)N?&Zhoto2h`Ljf!KFJr*KcnlT*}jVof2#^g5 z23_2oHoyqYobOJ((izuPX-_BC+_P;yjjtSOxgdV4-ygVbZK<`Gw)nXOz;g$iZk0%e zL}X>1hNpZhfWVm~RacNGwsGh_aPE&d%x_LN&ovY6w(B;kv?{@F0t{{7&rOyX$PN*FvK*t3zrDmhnh2p$ z+K!JHK~h}M2nXqYJ$j|P00zJ8y8Ge0E$*C6d(|wp^mVRtKZ1B(8Zc1RRqKkn5t;a% zn*Ns|Hom6WiYS)hqNh`5&R6;{%BTMp%&{QEGvWLRkoO?B*5S#ZJ?`%fyx%nG<{&cB zC7<^G@L}i|V5Z%L192s$o1LJ$u`YV^?IH$l6kxsDb)L8wNYlO-w6A|*^xWq=KMA~$VhFbF6_kbPn=W1w3!2oZb+tMyBuoNy zE4ne5i@Lra965u%w4wk>>8>@x1=rh)R6StZX{J8>#+NRNhhvCpS$)T^z2Q$`~if*)%s>1@QM#w)zG}uiLtLYYWa3t)KPjTgxnvq*BDHP ztTfz)oz0P#a=W~dtQXj9^w1qf8L;}Qvvib|0g$zax05FEvqQ}tN-}qW{yuQ*7eOr5 z<*^>18bqBjx!0cXW6F|Ou?wqoiY&h75$=z(%thS2bGHW8A4OeBcQDihHQAl1yO zF}I-kIV0ioiAP|d-v|DUEn9NgpibX1;HwB1|EeR}f?@(6SHvaG*T5e)9t zH|uVPLs;~ay!yuWlg+GkSYyE36Rwq=>dZmL;J1!(N2iIj&In=vkLymycH!at?&m8R zPTsNNfs^%&+hNbpEs&2SoR?1ODxJ;Jlf5Pi=EG|{LK%FuZ1*sWUQ@d5jejYNO-n7# z17JQ{L}?uGEDCHA=&c=l2ag3py*JMCvfP_ficrMde!KH1N=bt_!7Cq0?9EJ#lja@d zeemhus1kHZBg6IIgyig{IP*Cc*EMOIQ|D3W0L8uK@dZ!BSCVCIsA zyYM7?9=mwcQsXJR1i955kHG)U&fXQU60Sjv{283L@kg!}Np=NDNob+92f7O4y1?5p8prvrs?S3FKiP?qepn%8 zs$?NGR3KBR$c`%XW-R=qnEYb5ij~z^{sXfYtB?gdfwLzifwLo%xpRZEeupsYak~`R zJQi>IH-OE)WLd$``#Q4mbc3Zz68qlJ_ZfLgE;HWl<HGZ0~r;vv-ib5)M#XHjFlWJMZ%dv>;{`SPHmB!Qa7Gd zOWp25Cc4xCgaDkE{nQtvpT0M|;NXbo_!H4`Mc{7mHh7$nnZ2z!nu=VTZ7Z=gT|sL0 z?sp`$7KGR02-xwl6RpgnfF3J@kz#u60}XD}5YgAlnA^g;iOk!N5X9g;^TTBnZU!`h zS@HBP(!v>07@!S#cb`ABeZxqG$z&&OA}C>u*>sGH=s$~g0Y_fX%aN+A$%CVjEJg8= zox5tJYrUc(kwLx1MTK{1j0#@CT?ZK%h?;FsOwh6(^E~#ZkAVMfs}|bl6+;s9iykh) zxkXN|6?LBc`{Tvf@iuv{Ffl10-h{b5__-|4UW;vWWFB906n;X^_iE|`gN#rB}zNZl(FEwG}6qh-M@qFvPLUH-FFwO#k##| zc82W_XS$Zb6*kzoGB0nEav^^AQJ=AUPPt^+yE)l#KOLdbzv(+^K=Zz!G&`FK&VY+3 ze>I`t<4QwA(UD&&_n++U&pFt~Tl4VE0#L@`?3dwvcivae$A_2@VDPuhBJt+@@)u`5Kg@sVUr?9YxaH$8HvX8kKYcB!VPXrB7&hL2Bg%FvA4 zyRGYhxha|irS9j7GqW`-_SG%?{4qV+Ax86dKgAoG>I_YO^``0tuNgJHPVFqeA#<`O zxqIAmKfY|z%$fDee9e+1O~>u0zZ|5SsTq@V>vyAmvuUiE=|k!GL3a|;J&|+BY-tU7 z;v4hC%SO5fU?mKW?q&fxC7X%G3UW{SCmkyG9xnNjy+*iVxODuh^!X2oR(jP47p zhOkI~n7CE2E;yc8MtxA2UM!23UTAqV3s{0-4sL% zl^>jp&vlDYkXTy2ok#fVqa#r(KOHv!u1y#w2{G#0#ljKgzK8aO)~y-Pc=qgB4_vK! zFI~FSifEN##7%_8M$!gK22L7caxf!%Xz5 zg_Pf4zos_?RL8JAnawaaitNw)pQ0WOoM*?#c7m-xL`V^8>gJ$_Gtd})0K6TMQ@|G{33 zJnzoXGEwm9yh0Fh9HgV`^0bPr(Kd=k1-<4K^ME{Kt|QuzGZ9nvqdf;T27LW1In6T^ z_3emxjza8&s6*^ew6Rc+ko|4_fTEvxYmt9gx=$fi9EfpRow%1iidf-)Vd>U2HCc(75F*MWTW6~cyHA*_Sg7JhrFVAj%|e(qr-XgHM93fm$YDAb*F zhfiPl3=n;Tmam0mRF{KbgT9U3Asg;Pw}LE&${uDs9(+n8#`XIYE$K}dWCvxz{2R*6 z%c6VHg7q?k+zuZt>eZ9jRi_`U3(6xehmaHS$;CMGx*6^v#CnfE54qe6vK;~Pc0?uB zgU6|X3+npS>^sF2Vt_aYLuhR_5p84#v2KT?t|%{~1=57B@t3h5>`V7`pDyUt*p7I* zo?dQG+<{!t9NVB9bmhp3U-(*6wz27(@u zq8;{$dc;Crov=^bO55%J;C55jK-us~!2E{FZ3eR3oqnGjP4ieAoX1{}yIzO(#XLIF zII_0$?V`_60YAYwPSA6L=$p(JhhV?F4RHYCt%%UyR3ig?cQDjz0QSM_Wjg2YfjaH+ zw{s_%+`gASU%)T#E|b@S?2iC>51G6f@{SFV4+C8y(8lYa-NiBUL4UiC75%jC9jf>3 zbR4Kt+|S381{ep-0e<{Aq<4#U@%wQqgt77Vpp@q^qK~9|v`-(*Wh2xhjna8%+!e~0 zB9>7v>QGF_wS$+BYr|lCh`z%3knj!oJbbFL?cltm8Yt?>{NR3ZYzr=L?iGCP@E2ga zbAG$M3-zjz_1RI7cWW_>rJV~p^=AD@^k;q^9PYA`AF673hAuB zfsKCi$E$(w^#MGS#Hddnir9x%UCZl~4|Tc`#)K~DbCNG91@ZuV>aXGZ8`=n@8a~Y! zXCt&-AJIpG#{#O~iFN{c>^hjEtwP^yFOZn_e%@K;i;a*kX)8!JHG)m&$i|%$P~JyZ z@s(j$XuFA58K>UtC6E^Q@Nw$EHEcCPxVkLyD*l%s`fczza?v%)xSF0jqQKTsem!r3 zc55RW%VP!!WDI;_(XP?*F#=>?!-tQvi@~lF#XS7J3geGT70_SOL-lIz3^e(EiBwl=nJO;pZv6IG|mYJGm72h&JU(W!c=R;?i zAf?TjX*I>W99EstmTEOQ$jibcla0Qv&=eq?u*_t0(dUHC$TB%{^d?7IrX#~>OMy69 zHW#GoM$3rLayTF!mOMF?+#C=(TYP&W1d{VKbXJbjWy+Xs0bQI_EBcKjhxp$>F)P91 zbm<@ov4w%Ab8Kc&!PE)aDJDC8Z3LvECD)6&xr`21mVL4#Qr;D6u779sGR8ZQWe zZ_?N-@b_;F7bZ}v$X=pB$ZH`9CgU>s%QXmD6mqRMZ*&yKi!TM0Cz~HS(`a#;B!j?t zRiO6H%z&mzO|aOYnUBgs=8;3pUa8D9FqddG5Aqc~gSamD6tG>_%iES1guoY|Jr>4a z=i&Fm3W1s;!IJEt58z)eZ<7hx^XT}6F9eB8O?8N=9wG78Oee-6O~JlAkN(1rg;4e8 zk?AzO=sh`h6ImQO6Wm3t2#m0kB=3e|AtYUtVi4psJ_MZ0&YD#xeixgL+2D44LeNaxJOim|#pdksZ_$aq)UWo~72BK4BXD zzDKl=o^}}06f!N#>avW>ahYak&a|_}xfsU3&d!wNBvu@AY|AW;OdEY)EmM@X z%yzN8uO#YB`%{2muF+wk@70}0rcz0OFCJmONz>65ok!o?=YM4kZ6iYBd7H<%AYyWs z%j6U-p-}i+e0rA4p5>zTRI##Cr>8N$xP@~1RiA00U6j7QrU3eFmeWi_$7Q9ZnH=DU z(|9SfzzrbMG|@vSfw4sVKGVb+zXR((e#iRH@t4Q2!c)=D4J71)yVQr$4qp-vI^&{v zwKRhIU!#jc{jXW>p!q8PGS>eehwvANLUx4U!P8Sa^7ldhSB^_~aPB4%5fL&u#ab_0 z5959i=nwxD-)QM{?RBYtw_JW`yIwiIww&3cb~~;U7W~C};Z=^jj+lREhVg$9|9^g{ zu6i)J`l`pjT($p|`i{5Zr{A^t~&jfLIF=Y>s$ z3$7YpdvAgGZAKV;j@^AsO%@$nd~Dd|@jq@j>AL_|ruVXx4LEK$^#AAJeR!O}d{6ZM z@8MwlT*UM0MLhpz<&)q8dR@Yg0#O4d0qOzGbe$gX0AMa)17Iy+%ugWi2y#FxpbO9r zxDs$L;3hzNL$eOh4OmaHGo%Of0r~*x5Br+{YXP%c1hTRV%mn}qk%Z&|D!anD3eX4W zz6kksgK)seo9SAWhv;r*`v~#@X9)ciO+5(tnel z6tsirGl`5s?jV+*cMyGMPO`!mP1mq|#4wmXbIC_q0DDtA457bSY!sRh^)a+uH!;Ux z`N-)#(*lJhG-)`!XY3>S!|Agze54jImgX~p#m`5q2Yi$233$EGC@4qLXKNS*_eiE^ z-AMXu2_I44Mt{?0Qd9$$2qs0+D9}%lrid9s;~PS}V`zLIQH>>}r_iL(Y3Of(8ii&+ z>(2s-y@Nh8=B$txN1vUQridNK^7D?P&$=)QI+#$5hj{u4^jSWs3i<=^-oVv5$WM_h z)J&nzU;w*KrRzXOL771BFc^hAz*hvYcOpX-Tq!=SNKxd@0y_cL&!y#^73g*4^@=k> z{(SmuFQZ_G;qO+^zj`4pFIh0(MV~ozR*1TrK8pzKzX<#R%Fi``UsJt|v|N)SGMSM6 zP(N)7t)C&Z2Cyy2^U|oDj6xG&K5$PuA>j&>B5E=9hh(7|aE9WXg8smADJ>uHIiXRZ z%%ts{EaU=KL%M1^eKyot!M&8`mn<|O#yG@x;R$XBeYRDypmMT&vz;_QlcGuFje^ca zNa!!1H{c1HUl#O3T90Kg2LxNSMa0OmbF$k%{14->K- z(C`TO0r+jxqi{{}E7W%_=n0s=4*VTZwVpnU>5R|>*h2Gp66z6)8S@NB1hN?;s8Y}roZB`drY zFz!LT+)DaPpR+81g62Y+~pKC=YIkC*89WeIV=O#4%^(EKv>hh)L9 zgJJy++HcMZNw3iM1UtRL;`?5u{(Dx)e~spMR-g|IIRWK1&$H4> zqWN{&FOmiC8#KOAhLeksx*$-!hmba-t z7=)-=C|5YE@a_gbf_T|`2-yKx57_wv^s~K$9H!+1{zUV6mp%*4r)YSWriXt29<{qc z(efUvularGZxAo34(0+h{ysuJr{(QqeyiKh#$ES*=705w>VJTJLM)+qAJXyQbA|aM zIEO>|o`Zz!6w*SHJ_dgf(nGQj6EXtAwVx0&8!+}$@E=90!rZ{d>E;I34!Wb%uE~P- z7`88<0pfd)!+8!+_Zf5nKsU^1HUO$lgT9nE!ugHH`<#%yfYo1s|NaK`X`Oa0GE2r}_Lz?Qc>TF4A!b z##@*jL<>+pTwOm-{S9yi*k3IOke^X#2Bht7R?xhl|Am1Z^r~(pi08jpr9iqvxEC-7 z(yPM-@RvrR7H}vXHzEWWmraUVKqG|5w4wPY3vNIyq^kq;0J_@>;`h)7_hdpKu#+xZ9H9|&jL3`3M5=e3AJ~HHu?kdycyC1X7_-(1)x_AeE=}3 zmq0?P{1$->0<`xPNCk|4>L`J12Ois>>Y1WY4iLoib}ryfu$y+E0R0%oalpe6Pd^Au z52%c$_4EneXj(6$LOGb)a|hH$#Su@>fCbe|%D`3>Du zxDb%;OM2{Qw*P@*Dq=1o-K#a|SGE`6fnV8rJ`GPmZbhDlyc)3{u^Ex>zo6yQ{Q{IH zA<{K$SHK$e|MQ0%`UO-cyD+!VQ|K+MF03i6Eo>aDd~>$m#0Hg6?fl~?VJ@oK$#ufc2gy1jW`kGI-e>#g_tyv<&+O|?zEEoPf`n|_;N zn|+&mTi!O$w(4!Q+v>OZwl!}fWvViDSxlL>OkZXwvzNKc^2$7A)n&D1^<_T#;G#T1 z{4EmGrUmp-f<}>`Q`FX2&`Jk-C4pvU&@Fds{#GyORs-7AZ8dB&LwVUyVlI@K52bpc z+!`pk4$5wT(wm_C7W%MR5BM(FS?!7P#CT#oT93}7_au1?9<#^p$@aKCxt=^vzK0Yj z3seP>1?qyRf|!EX0&Rh=KwpqlU??yb*bA}?+y%J>c?J0eo&s+{bwN!*Z9!c@eL+Kk zub`=*xuB(h6ep{`J0Xecxn+6%J_-O$Q;h4}$3T~}C-t=(MM zQb>xFMXI96B6U$zQA|;6k+w)zq%TS;G8CDM>_yo{?xNhHyrTRfPm#B%x~Qh8p`xjx zr9xR5Ss7IsTdAu|sx((-SLRmcS9&XJD(fm6Dw`@>DwS1{RZ&&3Rl2IADsxqKRc=*& zmA9&Q;z7wq5#8`MGlo1pGWsCN|9Syz|@^`#!25B02pIyON4S_+j=vnZ&Q4r*kE+T=n_ zyikj}q6YBumLg?wWN}n+Y_YC5sn}ecU7TB-U+gWeDXuGSC~hilDOQ$5mPD1rmgq{7 zO3WqMCAlT}CEk*nlDd+HlBSZD5@l&*X;f)!sjf7s)Lfcfnp>J*>MgA)tt)LPZ34ei zf=^M8(t$Ubw`QX+)qo#0Y;D@wvQ_Dg^hSAOy*h7_*X+&q=6dtJUT=-J&fDN^^0s)D z+ak9`ZHwKe+m-}=mkmCb5B^pIzSaPK*0N1m7FiZm7F(t(ODZ#$WtZia<(GNOYRc-$ z8p@i=TFR8=k>ye4vE{n*q;hk4c6n}jez~{2ro67ap}eWQrCdoLVq43`gMU?TYc3<@ zs&aLCOu4pPUv4P3m%GdJ%01=P<+bJY<-YRfayp6@plt+KUW^~la|6r=pjkaH&`F1P7gj8INHg_x_`^L z>p#c;`1n6iO9KQH000080K27(Q}u>=X?~0V0000101^NI0CQz@b#QcVZ)|ffV{BHF9F{_%zn_s85bGiT16bLO0xGqctA?%<3Z$MNuA(>QKFr~f&*|NXBE{^v~n zV-B|`kfPJ|Gd7aeF}U2k-ZY`&o!snC&Jyh%3`;(d#YVz_i^^` zvAe;Z5BH@H-tWWwSL5h*aol2qk&C@VYDVxj8nO%-9Cr*}mgs4p&4i0N(I{*^KBsV8 zY9dea&N&S_vEUEr*1`Z0cKAMgV}G+Raontbf|mc=Uu)l0ebS|)@<09EBt5W6f_weZ z1VY$W{z@1t$E~`lY4v^5eeht_%jBlR|F^D$gL<7e>0sR9LM+dqm)ZL*xbQ#UqW}Nz z{|kRLq@q9wxeaZCGjLSC9X&q@RE2AkkjogFK z<66_oD;jP13!mH$bcDZLQk@cdY;hY0!xjTHb6#rw?gI- z$`u}J+019H3{~)1a%NRa@k%Kd@qr3Wjzdiu9UO;=@|S+DcBCvQJs-5lQhEsp;5Ybq zsFG>|khPaR1NyV!yW30mWFWG$qLY(QX90>mk=|M_eTsdy5NIY4q>*$q*pAZ_z;oMS zq+k2-cH}Df!ii6Yk;6_72G2=m4>CoWpfklq+d1f%d`|jB8`RL6QyKj+J^-AB z!A%4>NSKv?1s=0>q;Z;yBQCB|o%7)4QN>aOmLf~ zX~2S(M&LbQ`*ygKL+ojoewzz;P9D3HvzBpCP==p#Yq?yPliQEVxE<)b+!pp%xS=g3 zY!Cdm!2dkx^L%$FB%;vJHR-Hr(3f+@IXOtquYhDN*9-+g{VRbvc;wZ*rGAe6GvL+j z2M`m00KWOY-5)wRIt9ihCG2$5OGaH#!^+|1?LYz^1k>c#ma5r^sg^5X$xv#DFL2jr zxx8LVx~~OFiS8$S0p^4DC78p)m?N}^OYjE)1}HrA3bxU4Hnc8f%Z;Ju*$@uc<`KR% zw8^0BgEq4>a0>XTv&`{ENJ=wo{s2q!8@zN@8cHnn9f2B`(MPi&Z|7AKbdZ(*0f}vy zhkAure!n!t-|RaKIoxzn7SlEbg#SH|4zfj!Blr~_s&rfoZB93A?r3Zvuh*|gcG$KH zc`2jyhXvk9puh?@ABPeK_0;$|>?SSO0#rfa9E}qQv<0<>*toXR%O!k zJt)V}f69<1&xP{x+`c@3qw|f4{+*b@I3`qSYyct0R)By{%Rm9g2DaDgt=V2+MXlwf zKmRT0$=^S%@!0W#mNt^ofzFJ5>U0 zRDMa*)U?--V*p2`gLnLOOFq$nL#)K|%2GOmeP0ODjo$`0f66MRrqS8hr!Ti$qca<1 z`XV+u(>I$xRbDNa3rKMFooU#+Ds_5ljNnhF*5t8%w3OzH*42jWvRxsY=(>NLQMX59xsW8KASEMari;r(B8I^$E2OiVuO>rWvS>T;24qP(-^X z3v@BIqJ2MSF5}vFh8<;`*KcV+rMDjq`)Hb@qdA>)?7}a|TtBe_c-^j73sJGlQ~bPF zEy8c~U$6L(>c3`rL%Z$ND_CwcbtfjPrW7S&RSxmnE}^2?{JDRq0U*o(QA-X*VyT1= zV%y1O<+G`g&(a8=jwBL*;5hcAsJB4&JGNa~2N^cM)o2Shw9|i|0rp7g98lhzluFl4 zgW;hF>!R-=I_*STMlN`XEU@-DdYh(i8(IZ*Z@h-QRmg}QG1t(~KqqZmVnR2iE}E%y zSiM?q9w@nndc6SR5|o&wdAt%fyXhYbkbtIbRXRL?xJ*je>ejQ2+bv&*3nfNteR|sgA1xm_A2G%$?&PWhRuD;3?@rTNrE*0nEbj+b*NF zY|2qeTW??l?s;G)j!u`9%Y4%<180>FjgqPGWNW(8X;69$azF5Kmtc(G%?!6=%16dX zPl}Xw@wZTLrVjTx!a)U%?QrFj@(ROnZSbfV_%ZUhhnxl7VHxN^mm3B~vz!IRh`}Jd zMz3p2Q#uUEI;BD|X>Zmc=xq zNu;yTCD>hg8=Bp$TA&4ekrBYGHVe@V;<7l}p{6|Iio?U54wum6f(A+xSw8CqS2ABd zmGpejS}_1-09Po-?eeS*GeCjH5u$)D)ggL9@D&T$S||&4*}8EJ2q%<|WZl5(vgmJl z`dhyKX4T&c^tV~~M$hD7NrF7yKfb|(f9f2%GEa9(I-)n&>tpgK{^@lfpOI+3cNo>9 z1q>0rFet|sZfsa_G^sA~2F^}8x*tV##*rFe5K?Wy6nG)kz$b|pz!^T82hL0iD_zE< zvgl-EV?lkpBO7(HoN}?fXA>%rgckFXuR1DCsL}7IMYjUaRtltQt(rrseCiUOW+!JRZc8p;La_E2>%U4!D_>Q(l?2t8uhGA`umb^8Tu$M@$lYa(hU zEk{skR14xhzDns5TAJgWluoK+%6;p;Nsvq_r3IkR*!H_4$#<3Vl1Lm=T$ahq8Q^GbvV^|N$dO&k#BEv55e=b^J<3V zX>D!|p3U=s6|xjpoVPc}n+`=6h%Y-e@#RHYv=W|%;AtpY0#Dz-(>Kvu;VBMJ@#rkQ zwy4-i%8ndXYy>*GxqfGGiM@nueYIioNV{X4_I_B9GxwN}e5fDsEwtL0kZ zVOuArZqrtM&T$*j)BK<@L2UZH+c?$*f1Ha$c`NWFefUN&w^3ngC!mWHfW8VasrAwz zf39yXyu!dZOMg$rs!r4=b*4a%V2`r;X9L7>zd-+PHu-ZELum{dpaz8zY# z3QS>N723l)8LL5=clb8d!TX!g{{2q)(#aQ8Ai(_qpp@>%V(X+yK761DZr95-fxnxA z?k=X2L6I zr*<2S6rwFke_x1dKzlDy=x`PM=6 z_pe48G=k|`=i7wu629M!?@5bxDmoI)W=@`^vL-^iORfQ2vD@RI-k|OHSrXvG4E)ee zKN^SL1$G!t7$9K#5c3i0hf@uh`nzPRKC?id9ZGl-227woOuP~eoP`_E>H^c;0R{}+ zGY_wKjlt{B*>iwh*B0Y7^>(~|0X^;ed%KU z5>h~~`$pGJev5AocJ|w2fn}=i<+wHWRGeOxi+7g5ZQFi)!I^#ex>vFc__;L?KTlNl zOK{KGV748#w^Dc%pNgo}-BDh7pc`6Fy$cw7!RV7uA42}5%8h71LV}srvxHLAx4>BR z!)*N0Echo;M;v7=cMb^HuIHEyUdnO1N}wHdY-s{Ypt%S|)p?1849a5y)cPm9<4l;F zeg!UG-OfD7xho$oZmr0S(=$aTEX(?LMs?s7rMa7v!HT#Q`hnKLC3+KaT_6Il9Vy%d^S2)L{q@$NotyAfs?KS z3{6lKmMcy4QZW~_>Kc>w1t7F0k5jJYlr;iZ2YLF-Oin3Hc?2>QXp8twS!7IWie?aB z4o6Mm!ElY6esUu=5F9Sqn32}5rHyFBabQNYxdg4+ME9aHny*1gpfk39mPDq1p~>k1 zP;yqfRoNIVqC_UqtI@)w*wR3gAd4$Msi&r{CbE zPGI`FKca&^%H2m#pY%qCQklEImwE9iB?HM@Ros>L_17g&aahUkrW+s9`(m zI4cHF%G$=Mp)-hisEb`+g=_0mU&1wTN(@W|e9Dyr2*9b&9)_E^Jqyy>4$ZcfEZ;ar zJa|Yv*s>gkMWsu$^@FR?ZwreD1CdRT1Z_YuquU9zblw&?RBG#DQlq zspm7Cm}lMp-EgLO@K~rqIH9vc&vE#q?!}h%Le@ zYtJ;Cs5h3}CQoj8)G$|`P@c@%GMse?EXWcY1Gtp|{00GVsvrUI7X(->2HwH@gJR%K zyni1Cf4s|L-~iq?iGjU%UoHlImyYB?ZU_ZYxZL8)hunH6)8|XrXwVi!&a0EAlMo7C zXzv;J5j1t1v0Se<5EcW^gBHI6;xT~esZQ4!CAM08f`VQY1CQYJUCbjs@pleivGWyL zCYgbGmcxIcs!9z07>2W!L)Ok9vLd>YI``{@a@tvUhMw(%E1RoQpY3LH{v7MaDoE*M zeT8$9J->n10j4140DZ+EdiBWA z!0&nRb%*4volk;tP=lCA*tL_XALb8l<*}_m_4ffMXzL?|5ixKbl#OlvC4T&N71A7W z-@>@thwTgnvB~aG5Y>X4em0M}6EHMQ?PQt`D~XP4TNrO;fSn8u6ZMQbRy{>f5lJ7G z0Y``AAXU8MEorV^H@01TjZ;GiEm?kEc<5woR3mzg$T3U{;C%DW9mDN)(*`tqd)~rH z`Pe$~i9y!kALGPt>;ZB6t1SIH;t%Jd`4oFldRU1)B+XJ{-xq_=!MA=^eT$B^fD<+M zC3*wrBbSlehjFIw-Huj-7`XYers>(Nl4%VIBIB)5)1rd@sHTk&rsx0gNl|m^Rb-;S z$Pxx3C}U#a1zayoC$+rNDfGO9!}yq%%iob7(AkNRx6aOj2&yWq=~1%&bC zwvKuOT6t5lK$;obg1SWw4*g`-38n5uP9yP-PVtNBB;Su{IoEx2Dgt0rN(qJ z$dSgX(1`%4&oL0p;Q>==c|I6Pr8xbmogfFWUCQD7ZJ(ipNmgBGjNv8G_RsUaMcqXi0GF9u$Y zGxiRs*ylJlylg=6M2PFStNPr`G{S=b*~S3)nvUR~Q8HVD?=XJGaR^rpdR#-S)66K) zcVWq$e1F6$<>{2^kATS|zP2zPPj~O_l zoZ<%FA8A}d7#;4HArVxyPP(SAsv!0>cfe~ zlu9tXH4Q&YHxkzHpD%TLYH15FwGx@5T(YarG6so}_qU`O88usTmP8MPTo(&FDiesI z-eZ~7y-ZN=LkpU`)ncC`c{L`xgk3ufbDYuni`GDTn$zicOYSRVOn5RDoy8Q^j;j<_ zG<{J^F(;)W?AJQ1UXgMDWeF(062*jJvD+!#`T|l*%Fw&&#%SJdL-M6CnzcJc8l%5h z_3lHe5jJWUKHJ5vn5wgZNuHoF<1WOc*W+#Rg;pk0z3CaOfS)5L9X-zP^|Vs_lJx1dr-I`c)qi2Xk|E^4@5^!mKw9*pBspJAuhD0IN$FZkv<1N{Fj9 z0r6O00$0=*oHS0`iw~4XBjGnJt&Xq(x6RnfMr91^AfYE2ZIG$kPV{^T?fnOqtgaAA zb-b~`_T~zjc0tpQw(t1-1}7Jt<>V$^@8lkV|F6UU6YzgLq*oMzxp+E|lNtw}N3Tr=b(!=oACEnzswBTeWBhTtlrmoR#dhkllt@Y%eix+`R2#hNPM{ zBS^qqy9GI`M$0YHr=?1W+(kNY0qE1Ikx$c%bM^Hu$jGT_(3zFI?>TTwLX{>rZMi{5 zUJPJtnpP=5)#Zw-o3}T2ZT^Yv9Jz=k6tM!*(7nh)_ad!j3EvWJ>Zs(m1<%Q;{{H3B zOwwM(W_`n7L!T96ghNaL{w)t`(t_Gy+~%tDXCh&hSc;6LIHMU#%qa8lD2!nB`Sl5s z-VPW=GZC&cZHReygGO;XIxrgRa4mN(lnegx81RYF1y3*vxKi}~l;rda&M@2h9Ubyy zdccra-Aqiax(vfpt4889k6Me{>XXaD@ou)o8+jWye!im_Yh0=qqXgx!LN+3h!B zcKaQQ<}*()fhI0KRLys?nhc;B6aHuj4KT7Ou3J@|45k%m?=v={{LVIq3?(ks=TJGX5HUnCP9b6qp>7GSVy7f8GA|x8U zHZQT>Qm=JE_W!`_^*#TcobUkRg8Rw8c?QTSjVn_w-PrV1sOoRZr7;_G{MpNa=KP!I z$0G4lD^Tcj>KsQVg=a*Ruu$JlpP9%eiPH8vEoEFgq_tBunN*=CnG&-K^dp>hsTOKf zfj)*4N~D**ieBd&=;!0dkNZyC?&MZ$MTyuMv%0px9D@IaT^?^O>+M@yaog)|^#Q8M zG2)6RxJz}#LayG`Xh{KwRrjt|v+=R6v9VzV`J}!kx#XFc*w54F7S;>4A}q6(q;bQ^0wNiBt;u`%!#%3H?rfjTjt{>Z#fsT1Hh*oUAb6 zDnRuGWpGGp3@ze9{0g%8aZ9M;akJ{`1!;H1f=49_d5;!A7eJ+kV0g20>q6p+kuy-M z{8mddDDDE3?9nKA6DW8Y3iD_sL!nP^T{|F-t&JW9%5JmYzy5n&^7TsTcD8nF_2Hc= z(~`kmB3UN*4NJ9LOjiyIq}oI~=diVH`*M>s)~8eCG&w?#>B*!zrdFA*MydUiD^dEx zCv1&|R0+_!ddT@l>=?VpBnFnkL!#I>s0^Qa^0nktTdl1hXE|TTs$z9PO}@^adJnMd zhN)hC@gVd#t{FJ=L?fsL(u%!vYDzjXvPDAD}SmUuuf(Qopt!_oLXbhTw6*e}USX#jfBD3|+r zI+0II`g`enx8gjbs~bb`ylxu9*Wr2dEH-c6&B?a|PSH%rnQFw@aW9atNV**Ic7quSi%D8&Gg z=2|ik`80(^f*3pOc~S-8`kf|465Z5anuwe+YOZcYvuvKlzzCnFhdWe2wJb%On?}FE z$$vedBtLCo^p{shwxlww4D|Mt;dLDk&L5IW6FJiIq0x4(-N$IE8+QXu7h*WL4hK8X=>yhKF&xfwZp} zwL}!`movN+HCJ8qW-r~W>9g9YIFL=nxmqVwYw^-}3|-|xsHbk=Ox>h#Vsh7S@x6rP zybLZanp)jz^Lc1Y1vUl@FN|C2a}M^dmqZccoXjTx@pXq*vfdNF*f3QpLj{{pfhEz{(5@6PNVF}!BASOxM(*$) z#5CwhFlxprTX=(%U8|k0r6+(Hlxu;xI)rUQzFe@|&NIkHw#t`*kh0OOogVrAX~T+P zOGBIcIszx-Z9wqOVBa)c!oFDuont#^pNyg+=g~bd)cL2-l)U6JP0Pnf9pH%2T!yfH zio}!7=tKTInt|&ZB<2{DMfy7MK__Qo^U%>6exh4iK=^Er8(n@-oc6l{tyRQd>) zac&z9fr3`Yu+_d88?tShBj=xG{;B&2q-gb_eb&kKv_j&z7Qi-ibgXjz-F1DApK#FAZ(jQM{ zc90lsV#_~f^eWt1vI#vdoQDTqHvtA{&DFI-_G|_xrRgvP>>X%hJF_Erz>qZK5E|)8 zUn71QjtYrD*Bxubt&p;Hp&2h$yv)Ii6EAMOtisE>&}%q9vq(Ncpd=W|^{@vl)+PL$ z#B7%fFDsvkc!M#c1Pl#wQu%1Bx~$J}Od4Bwtj0~(qj3$xxJw|*`huqbI-%fROa_d5F}WA|l`JzGj})F*>gQ_c7FHH^MFJh*fxLd; zfz|!+0fv?};;cxgtDE^+GjPp~BU~vAxM3-?bTZzIws3pG@W(~P;f1ztx(13!23F+R z!X7Z%RaYP2>3L>3IZ}lCZQRd3b8q2EX==^0wy^kX{8~@dWf#=yUKTzMNy{KlY{h^p z4zIkFLsx2SVl5S_L_NCVXgmEmB<;euHNZp=SM2!^`5LHz45Gy~l?-=A5q3Oa8}DFSdn5(6zn7+=QK-rLdk8=r^vOVbs~OA{2D zEt#sAK<(#olgj?F?25BN?fb{@%$4@ml3t&|fU`59%KTb4EqoU=SXkV5ghbRWJgz5i zF-1N!XGKC=%)kBZZ(qTojs?o+7rylxW^A(N9N9R&FyeHFp3KJYe(O@|dxt5Z@-}06AS|B&T5d3ff^o?eOPX$mF4y??CpdNC3n~1F#hp2J{XCDnP1jcVRXC5rdS|vN&zB zxovwY78@Od_E9b-SuqI;YTcfOH|IutLJ;)>d=W*uimSj<=f*;k+F>_IIB_ z#~ze&F)HP^dtoqqIum`0oh-_3;W}xuvUM#dO&}Y6V2=uZEB)pBXmWJW&w9}u$fg$u z(8L2(4j`)B?I>cQdbfcyaSb>j>vY3k)NLXu-AjLP5v^_nQWyFNgNAGXx^`p|kmB~w z=nsk94HfL~AGS9@;dr2XP~$xR9=HyZj~4*<4GqatI#clx>89mwf`W?cO>=gPC_C%7LkVhG+yM-${c5w|7?N{f zG~b8*OStD*+@gV71MK^so`~^MKf;>9D+$jj#f_XzpKa6VH@HBt&VV6oJ?wckE^+Pa z1OeX6CX@-T4*oM!+3aG4X0W zsCAa3r^M0kfOY9lQ_D@Ea&t(12Fkg24Y{RkjXI~y>AX|ENG{U%aIJSAutLjX<7D3H zh-~PGvbW%3!CYMQD4+7m5H?T{oQvd3q@1T?(UmMWsU9I}RM!g$m8EN{M^RHnciW4w zkHz5fAvSwBJa>KPJ4^^HzU3$c$NmOitGhJ%L^=urcuf?QGHLWde^VJJ-@vde=fyxR zb_4EgqK|!vGI1t&P7G8+;w!B<=5O?o!Hd69W^f)Hm~hdh4vfw&G#1g?Ao6)_gKtsm7nHZY9#%O8Ig zlfW)(m%d+GH5m%`k;h-cpz(I8!Ja4IOCH~^zfFKQ@Ky%D0Q6qQT+~s<0%jlIa|OWr zBLMF>5kPwx%cF-z()WGAytBu{dd3RK=p>IHhPNA$McwqL06-o;4$sUqFYI(vg(aOx zyveLE%uoGaFxw_{@XyF0>7}jt(1;24rx7a|{OLc<2OV-dEoXIxwzxZ80tO{)+Zx*e zTp^7i>3~8Opa6X_1%d31aj?M_@*~OVm<*P?RxQY#UK#^-uWKBRnF2x&eRb`z?Z`+GnzX0r`;`dC}J4(zloFxKYNTuffKHZkDd zcv>HDH}v3uYod?!CL}&oxt5e-)I5EV%~*F|A#V`?ZDx8&?oLc9X+;5mCPgi%Q{II( zOxxKqNe?}n;MPBC?`kLDgFsqv%SH6MgVM)N&YKL6mb1L{p;P)iRGx43$D<>q1r{j{ zx)GcPboM#=gOQ1X|7TUl|A(qCo=jG~>XY*{pz`KY}1Z=RS>{`}k*? zb`|=-26GX8=q6BAos}zh^f)=3``KcF78K~jB$Kg4+G+K1q&{n<24g9_BT3XP>pC7s zSE{_@@w+fwqO;P6Dijp!Lti9#f(l>&Q#2}`fevU z<_N{|>Y}_WA#-8?M^RmX-Ka&xz@Ly=Uq6A1#h9Ir8^lKhV3<-PduQb_u}5O+a?S9i zA75qzE~|{b*uy4&9`G%%LDpsklnydh-IY`eRY~qX{mC$Q&%KhnGY6C0Jqfw{v%#ym z8z-02>5m7|Pe^*ixQ2)!$<>q|Jq9J$3!!oYv%xls#6|VpNa8+zc~n;Gg-Ej?pi=+} zkFB-4>B4b|DekdtF2SGD>Wa12U+QpO#*L`9qpkI^4%a2F3`+7Fv~?D39giD5YeKG= zJA`RqF5HG*s}(n;6ubJ+0qR8u$QF)T#C@*#440{;xsT1)^rBNWysro&$Gvo87mh$C zQfaE&{g^y~7Jr1s98MjxWsW0S&&|-3-A*Z+PG+B`;~4cZcyqfA(s;Fj-)$BHKR~u$ zA}C!$YK~fog(+QMDo0Y_86ed9_zNr)em4DCdm?aNGEvf=44TizS)&(3eaiu`^FfTX zAE-2;*HNoShT;aY`JpOA7P8DtsI{$HXceO4 zL8I1&Tmq}^d&AY)o8wYOf=*E(*{6*w8j>`w0e@4#wGI|DB<12G#m2tj%ppe2NHE!C^I1-1)F}8jk zjT*g(Xo{`h=LR@WEj8bE6{#;I939KhG9C@pSQfBUAdOSZT4UwQ5>cp0P@rD5q%8+>xvEOw$as#PTK&mo&M@b za;hI;_W=OLAq||Vt3p4)yT7Z?$sNQ?Er~fg){7)PvGcBzcMLUs#dNH9KSe0|zd+U6 zw9r0hKI`RV%1VrpZN+Sh)R(qXiA_>fdE%3Y z$f5dC+vATXm(563iSdZIugv1{iu)c;vz@99RS0>({tc5zvx!uh9G99h$a2AW)-l+W zd5037<#@M=GOAxuoL-)P$R`YdEGmnj!Y3bY>!LTX z>2&mbmH}QjvaMeF7q`9;1YaD)SrDO92TmwmhU5y&sF)Z%Xhh#JWw4!M>o=_Fqr$ap z;cw>vqiq)8O>56Xk6V$;otvPx@r)@>MANSf_@X~60hw6`uq z_Cdv@bS+*_8ZSBCYcBZiQ4`s+Qdw;m-~;PfA&^kc z=&W3g0v~NC-I09XhVM&Cf0TR=;QRd2pCsSe(FQk_hLZ1(;ro=*Cz9`v<9kl&kMTVn z-rLZk+OXO$Xs7GcEvuvH*vJ~~G;zi1)XG&bBCTjljzbtSR}AFdRe~2MUMgmljXJ7= zWFxV?b~i7HtGQ*wk z563HWO<5lj%;R#XPiI?aq zZR1LEn(Z_sy-J5b(xUg0c7=*ki9*w)!YXjKe|R=I?UWp+ENAsW=06W2dOPtF9e)tp zyb~|c%!AnKop?zsUApP`uh9PKs45d8ghO|!eY(L?CyLZ2p# z@r8qelnITKQk6kooPIC8ZwfaQo!qwXurwQ^+Iyb4+=SenWs9bzC z9yN%Qh>F^60RXsoKWX9&K4yU34N)mNcKis2vH{ z)b9B!b^-f#C1PWUD~VMaah*^XuC|5gg)>QYj2yA}3KrP4{L0sr?A34f`LJ`pcP6Rw zO>8Igb1-;<){owtSo#GL+K!e^VEQ9MA}Iaan!E5FoEJg&1g}~KZoC4SRU@@)MfgHD zf2mIzh-{LeF0r^<-_G=Ql5e?f#VpG024$1kC>Ic?rPP}GlZjGp=`_6MlupN6dMW4p zxj{~)<;--)a|L`qY;-2p=4|2NnaWgJ1#Xs?6ycs#7*X&56=cunpd(63CBs55RWPI& zPwZ+-3xws*{rtjO+Hw}zxvowv#T~2Q{k@@=;ECShrAsjk?M!*g{L(t<7Qewmm!4%a z$~cHE@p{~J^G)BfxTdp}FAI!e#)~*J|BA-SqehT1WhOpy%5~s*JwH61S_je&a*6fR zzn~n<%wtesn0D(rmQO z>Ee^&O0=mPfgV7kEv>{V@g*5@T4nU&lIX|m z1J1ItJ+2ve`VJy!)(p0D<+h{Il*+P}`75PMi0!rg5d)ZNxFl@~RT^4~r^9&A8_l+b zZRemFcwC+yF3xnsRQt@Ee4Zt&~ z{X@Nx*==diJiT#R`bbNo*>rpY#0VeY(=tl4|HL$zKk;OIBW0;+c5o@T=NkJ|DaYwtW6zT> z>9@a=qL-j3kH=Hk={Xs5x@$ci)zzoHtGZ%9m7Cr4g?E@)ibudq^MHRI1H-uwpm6d5 zRal(ve-|NO*shP)YPm0>+t40esl-ww9vbkNmb;tHJUT9l0Spl;o+4#pfW;tQ`U^Xp zZm5gi@eUJwK-c8ea-WABEOH3y^VZTA^dk-uA24z=Nj4NP(B8nCKHR$G)^hjbYzamy z;W1aJa6GlIE&0^>r$6CQ#EwoWJJ>E|44l}7kqFUMUhGFL z_c+!m$8B;<%RPcxu2-MQ!24l#$Fozk+%Uqq`fRRVTd!k4PCs}zlpM_pUX;^GN2JS~ z)vL15=z(|DBCMdHam9#Lfq}{*61dXbP^&<#<=wu== zEP73HCp6J_W`Jid9;`6%N|&>tzFlwe5rgfhJ#`aMMju#)?dQb>{6K`A;#AOPP$Ia_ zxkOKpzhs9HC*rS?=Pw%AkxhvMo0Lf6xF$-<;*j&!K(|!z0z0s2+zV(}Nh#4cLuGhM z9$y$~50woKKYcU&6i+-2uW;jxitQYjtY*hW+2R=7VAfBBNm28FnVAR3-i?Z&VK9ug zb;Bguc>*JlhR*_WpGd?XMZLI5uez76-_OFS?aM7<@EIs$4RKjsK{s@bBeLN(kX;dK z%BuBvY4INB#Zl=5_QwrK><8hIaQecyzNpT)5OUq>7~D9UF2dTU57&O`ZB{$Li-AWp zT?MRK_f60DFoY;g$3Cr-$uonQISOVXuJ2ZxYCN@Gzadm@sqv`wCT$(B<)W-YMvJ}P zBnBJwxPQkR(gD>FeI=??_Le~x?cc+;$~JPSJ6jK>dRup>Ex=YYYz zm$VP8hV&z(1MkL@(S`855>oIOHGnzUbMoBD&rhDoIx6=KTqL~!WdVqa0`tJ9#*Hy?-H@@Q5I#)0r@&%62TuY#nFih;IHSDJkz?dEIg9l)95Qpt%oYsgXXlT4 zYoRX0%z~#fE?erZsqtAK9NsgLJjoM^TdmGy5>Qbv2izloo^6{*)|r%{A@C3HDVVEV z9s-^B_YF6N=57eB{DYZfsZ}QBQJ#~JvnT^nF3^-)IF6laiZ2#;iN3V@2_|OB;k-r+ zm_>Ok<8hgeh3H8(b^>FSU^_y8y;lPY`|`APzz=3^orTWV!wc&f3^YSc*^iRjz6^>H z$o1O8`P##I+QYMGZUPW2wq@R05BVI2b=xVNP}5GXVA1uTldnj`Z=j8HQ2)T!qwrnR zK4pudwRmcauM_A}Lw{Doam){2M%ESxOKUW#z(V&V4tO~vaDJ1o6>Z&ZZ=$W+jdSph zA{K`_-Otm*e@?6o07GV78HSpi^9a3(3w=C&?exg{85E)nb%{Sf@7_~ON>{T8Fx2!I zGQ17fo~F>Zqsf`2>V3$6J5l$;peW}A`z0Q90Y=@qqxrZUE6YngiCEq7V4fN(^|;xQ znEm%KofqX^ikT3^-j(A!v8yQ>T1Z-0pvfKKs6Xc*_ECk^9NjBzgV($6w<%EO>{9Vw4jfrFYt zI`EjSZaNS2yoY{@>us(s$Zbkt%!wxqRl&fPX6vt1Wz%q!G0xhJga_+oTCXni(-|B_ zfppQ=^u1`w9>0m%rd^zT%cw5ELOml}C;rU#*+s_!ae!#h=-nq7TQqkEH8J=aTHks! z@@y~VFS6bdgQxIdnmxzB?`-ap*N$wsXgr1lON%yQUK~m26FQLO(>p5qFvH~A2!My} zO)$b-Fa5>ebvBp^y|LjUA9xpF(}-;KA-*#z!FELVbN4RnjHAc#Q&-`g97^sk0{Jyr*q-1 zLUINVyrZFSbZ-j$D2wBR_2$Bhz}&{adg$`s=|RbzBXI`cUIV-ATnm@)9<>;cM8}Y2 zLZREV?J}Oc-;|+*Enw z%*a`!R>#4+5QC@TgC~@K3mK;_>m%N{x-3SP^}+Dgf5;$9k<0v@%H;(cjQ$1plDl}v zU4ncEE^oCcm#yn3l4GZ%p~Wfu!0Bl#_g4&M$TI+eX%nOQp*y>VzdW-a<4)jX8h)(f zNxg}91hRrB)p28WpL#Ek9u-`d3aUo{v~VS3RIT+f3ei+@e{-MVV;#DkVQNm3CKz$iv)Fv07Q-&(Z6i&0}spbequ4F zx;JDxN$LPv!1W=3UIJGEu8t*wys8a|(poJJMOxtji8!;RS>)s#a*UDnbQCJhn8=

VvE_X##)!Pl4# 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

;2@$k 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

#+k^~=WVCobXLUP7MWd!QA3Tw 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 rzw%f9%3t{_f90?ImA~>={>oqZD}Uv${FT4*zw& Date: Tue, 17 Sep 2024 04:54:41 -0500 Subject: [PATCH 24/32] Moved KFD information to separate structure and API Signed-off-by: Maisam Arif Change-Id: If6eaea589edc704cf408d6391b5f2154134035e7 --- CHANGELOG.md | 103 ++++++++---------- amdsmi_cli/amdsmi_commands.py | 48 +++++--- amdsmi_cli/amdsmi_parser.py | 5 +- docs/how-to/using-amdsmi-for-python.md | 47 ++++++-- include/amd_smi/amdsmi.h | 29 ++++- py-interface/README.md | 47 ++++++-- py-interface/__init__.py | 1 + py-interface/amdsmi_interface.py | 74 ++++++++----- py-interface/amdsmi_wrapper.py | 25 ++++- src/amd_smi/amd_smi.cc | 49 ++++++--- tests/amd_smi_test/functional/id_info_read.cc | 6 +- .../functional/mutual_exclusion.cc | 4 +- .../amd_smi_test/functional/sys_info_read.cc | 49 ++++++--- tests/python_unittest/integration_test.py | 10 +- tools/amdsmi_quick_start.py | 6 +- 15 files changed, 328 insertions(+), 175 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f1e04f8ff..45d8ceb3a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Full documentation for amd_smi_lib is available at [https://rocm.docs.amd.com/pr ## amd_smi_lib for ROCm 6.3.0 ### Changes + - **Moved python tests directory path install location**. - `/opt//share/amd_smi/pytest/..` to `/opt//share/amd_smi/tests/python_unittest/..` - On amd-smi-lib-tests uninstall, the amd_smi tests folder is removed. @@ -43,14 +44,14 @@ If no topology argument is provided all topology information will be displayed. Topology arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:0c:00.0 | UUID: 5fff74a1-0000-1000-808c-324a4d24b37e - ID: 1 | BDF: 0000:22:00.0 | UUID: 06ff74a1-0000-1000-80d3-f5e97636ae62 - ID: 2 | BDF: 0000:38:00.0 | UUID: 87ff74a1-0000-1000-80a0-d0a45576c5ed - ID: 3 | BDF: 0000:5c:00.0 | UUID: 5dff74a1-0000-1000-8054-a29c595fd7f3 - ID: 4 | BDF: 0000:9f:00.0 | UUID: a8ff74a1-0000-1000-805b-92615ca9e7b4 - ID: 5 | BDF: 0000:af:00.0 | UUID: ddff74a1-0000-1000-809e-5a98a60013bd - ID: 6 | BDF: 0000:bf:00.0 | UUID: 9aff74a1-0000-1000-80e8-cbefaf9f72c3 - ID: 7 | BDF: 0000:df:00.0 | UUID: 48ff74a1-0000-1000-806e-3c0b30d78e00 + ID: 0 | BDF: 0000:0c:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 1 | BDF: 0000:22:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 2 | BDF: 0000:38:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 3 | BDF: 0000:5c:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 4 | BDF: 0000:9f:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 5 | BDF: 0000:af:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 6 | BDF: 0000:bf:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 7 | BDF: 0000:df:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx all | Selects all devices @@ -184,7 +185,37 @@ Legend: 64,32 = 64 bit and 32 bit atomic support - ``` -- **Added Target_Graphics_Version, KFD_ID, Node_id, and partition id to `amd-smi static --asic`**. + +- **Created new amdsmi_kfd_info_t and added information under `amd-smi list`**. + - Due to fixes needed to properly enumerate all logical GPUs in CPX, new device identifiers were added in to a new `amdsmi_kfd_info_t` which gets populated via the API `amdsmi_get_gpu_kfd_info`. + - This info has been added to the `amd-smi list`. + - These new fields are only available for BM/Guest Linux devices at this time. + +```C +typedef struct { + uint64_t kfd_id; //< 0xFFFFFFFFFFFFFFFF if not supported + uint32_t node_id; //< 0xFFFFFFFF if not supported + uint32_t reserved[13]; +} amdsmi_kfd_info_t; +``` + +```shell +$ amd-smi list +GPU: 0 + BDF: 0000:23:00.0 + UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + KFD_ID: 45412 + NODE_ID: 1 + +GPU: 1 + BDF: 0000:26:00.0 + UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + KFD_ID: 59881 + NODE_ID: 2 +``` + +- **Added Target_Graphics_Version and partition id to `amd-smi static --asic`**. + Due to fixes needed to properly enumerate all logical GPUs in CPX, new device identifiers were placed within the `amdsmi_asic_info_t` struct. These new fields are only available for BM/Guest Linux devices at this time. @@ -201,15 +232,13 @@ typedef struct { uint32_t oam_id; //< 0xFFFF if not supported uint32_t num_of_compute_units; //< 0xFFFFFFFF if not supported uint64_t target_graphics_version; //< 0xFFFFFFFFFFFFFFFF if not supported - uint64_t kfd_id; //< 0xFFFFFFFFFFFFFFFF if not supported - uint32_t node_id; //< 0xFFFFFFFF if not supported uint32_t partition_id; //< 0xFFFFFFFF if not supported - uint32_t reserved[17]; + uint32_t reserved[14]; } amdsmi_asic_info_t; ``` ```shell -$ amd-smi static --asic --board --bus --partition +$ amd-smi static --asic --partition GPU: 0 ASIC: MARKET_NAME: MI308X @@ -226,57 +255,11 @@ GPU: 0 ASIC_SERIAL: OAM_ID: 5 NUM_COMPUTE_UNITS: 20 - BUS: - BDF: 0000:0A:00.0 - MAX_PCIE_WIDTH: 16 - MAX_PCIE_SPEED: 32 GT/s - PCIE_INTERFACE_VERSION: Gen 5 - SLOT_TYPE: PCIE - BOARD: - MODEL_NUMBER: 102-G30218-00 - PRODUCT_SERIAL: 692432000576 - FRU_ID: 113-AMDG302180002-0000000000000 - PRODUCT_NAME: AMD Instinct MI308X OAM - MANUFACTURER_NAME: AMD PARTITION: COMPUTE_PARTITION: CPX MEMORY_PARTITION: NPS4 - -GPU: 1 - ASIC: - MARKET_NAME: MI308X - VENDOR_ID: 0x1002 - VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] - SUBVENDOR_ID: 0x1002 - DEVICE_ID: 0x74a2 - TARGET_GRAPHICS_VERSION: gfx942 - KFD_ID: 41657 - NODE_ID: 3 - PARTITION_ID: 1 - SUBSYSTEM_ID: 0x74a2 - REV_ID: 0x00 - ASIC_SERIAL: - OAM_ID: 5 - NUM_COMPUTE_UNITS: 20 - BUS: - BDF: 0000:0A:00.1 - MAX_PCIE_WIDTH: 16 - MAX_PCIE_SPEED: 32 GT/s - PCIE_INTERFACE_VERSION: Gen 5 - SLOT_TYPE: PCIE - BOARD: - MODEL_NUMBER: 102-G30218-00 - PRODUCT_SERIAL: 692432000576 - FRU_ID: 113-AMDG302180002-0000000000000 - PRODUCT_NAME: AMD Instinct MI308X OAM - MANUFACTURER_NAME: AMD - PARTITION: - COMPUTE_PARTITION: CPX - MEMORY_PARTITION: NPS4 -... ``` - ### Removals - **Removed usage of _validate_positive in Parser and replaced with _positive_int and _not_negative_int as appropriate**. @@ -1022,7 +1005,7 @@ Use the watch arguments to run continuously Monitor Arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 4eff74a0-0000-1000-802d-1d762a397f73 + ID: 0 | BDF: 0000:01:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index 21a7d73753..4915354fa9 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -157,6 +157,9 @@ class AMDSMICommands(): args.gpu = device_handle + # Get gpu_id for logging + gpu_id = self.helpers.get_gpu_id_from_device_handle(args.gpu) + try: bdf = amdsmi_interface.amdsmi_get_gpu_device_bdf(args.gpu) except amdsmi_exception.AmdSmiLibraryException as e: @@ -167,13 +170,25 @@ class AMDSMICommands(): except amdsmi_exception.AmdSmiLibraryException as e: uuid = e.get_error_info() + try: + kfd_info = amdsmi_interface.amdsmi_get_gpu_kfd_info(args.gpu) + kfd_id = kfd_info['kfd_id'] + node_id = kfd_info['node_id'] + except amdsmi_exception.AmdSmiLibraryException as e: + kfd_id = node_id = e.get_error_info() + logging.debug("Failed to get kfd info for gpu %s | %s", gpu_id, e.get_error_info()) + # CSV format is intentionally aligned with Host if self.logger.is_csv_format(): self.logger.store_output(args.gpu, 'gpu_bdf', bdf) self.logger.store_output(args.gpu, 'gpu_uuid', uuid) + self.logger.store_output(args.gpu, 'kfd_id', kfd_id) + self.logger.store_output(args.gpu, 'node_id', node_id) else: self.logger.store_output(args.gpu, 'bdf', bdf) self.logger.store_output(args.gpu, 'uuid', uuid) + self.logger.store_output(args.gpu, 'kfd_id', kfd_id) + self.logger.store_output(args.gpu, 'node_id', node_id) if multiple_devices: self.logger.store_multiple_device_output() @@ -354,28 +369,35 @@ class AMDSMICommands(): # Populate static dictionary for each enabled argument static_dict = {} if args.asic: + asic_dict = { + "market_name" : "N/A", + "vendor_id" : "N/A", + "vendor_name" : "N/A", + "subvendor_id" : "N/A", + "device_id" : "N/A", + "subsystem_id" : "N/A", + "rev_id" : "N/A", + "asic_serial" : "N/A", + "oam_id" : "N/A", + "num_compute_units" : "N/A", + "target_graphics_version" : "N/A", + "partition_id" : "N/A" + } + try: asic_info = amdsmi_interface.amdsmi_get_gpu_asic_info(args.gpu) - static_dict["asic"] = asic_info + for key, value in asic_info.items(): + asic_dict[key] = value except amdsmi_exception.AmdSmiLibraryException as e: - static_dict["asic"] = "N/A" logging.debug("Failed to get asic info for gpu %s | %s", gpu_id, e.get_error_info()) try: subsystem_id = amdsmi_interface.amdsmi_get_gpu_subsystem_id(args.gpu) - if static_dict["asic"] != "N/A": - # Reorder asic to include subsystem_id after device_id - static_dict["asic"]["subsystem_id"] = subsystem_id - static_dict["asic"]["rev_id"] = static_dict["asic"].pop("rev_id") - static_dict["asic"]["asic_serial"] = static_dict["asic"].pop("asic_serial") - static_dict["asic"]["oam_id"] = static_dict["asic"].pop("oam_id") - static_dict["asic"]["num_compute_units"] = static_dict["asic"].pop("num_compute_units") - else: - static_dict["asic"]["subsystem_id"] = subsystem_id + asic_dict["subsystem_id"] = subsystem_id except amdsmi_exception.AmdSmiLibraryException as e: - if static_dict["asic"] != "N/A": - static_dict["asic"]["subsystem_id"] = "N/A" logging.debug("Failed to get asic info for gpu %s | %s", gpu_id, e.get_error_info()) + + static_dict['asic'] = asic_dict if args.bus: bus_info = { 'bdf': "N/A", diff --git a/amdsmi_cli/amdsmi_parser.py b/amdsmi_cli/amdsmi_parser.py index 917f9731c4..be58f7b0fe 100644 --- a/amdsmi_cli/amdsmi_parser.py +++ b/amdsmi_cli/amdsmi_parser.py @@ -566,9 +566,8 @@ class AMDSMIParser(argparse.ArgumentParser): # Subparser help text list_help = "List GPU information" - list_subcommand_help = "Lists all the devices on the system and the links between devices.\ - \nLists all the sockets and for each socket, GPUs and/or CPUs associated to\ - \nthat socket alongside some basic information for each device.\ + list_subcommand_help = "Lists all detected devices on the system\ + \nLists the BDF, UUID, KFD_ID, and NODE_ID for each GPU and/or CPUs\ \nIn virtualization environments, it can also list VFs associated to each\ \nGPU with some basic information for each VF." diff --git a/docs/how-to/using-amdsmi-for-python.md b/docs/how-to/using-amdsmi-for-python.md index 797486ca8e..40edc84f8c 100644 --- a/docs/how-to/using-amdsmi-for-python.md +++ b/docs/how-to/using-amdsmi-for-python.md @@ -377,6 +377,8 @@ Field | Content `rev_id` | revision id `asic_serial` | asic serial `oam_id` | oam id +`num_of_compute_units` | number of compute units on asic +`target_graphics_version` | hardware graphics version Exceptions that can be thrown by `amdsmi_get_gpu_asic_info` function: @@ -394,13 +396,44 @@ try: else: for device in devices: asic_info = amdsmi_get_gpu_asic_info(device) - print(asic_info['market_name']) - print(hex(asic_info['vendor_id'])) - print(asic_info['vendor_name']) - print(hex(asic_info['device_id'])) - print(hex(asic_info['rev_id'])) - print(asic_info['asic_serial']) - print(asic_info['oam_id']) + print(asic_info) +except AmdSmiException as e: + print(e) +``` + +### amdsmi_get_gpu_kfd_info + +Description: Returns KFD(kernel fusion driver) information for the given GPU +This correlates to GUID in rocm-smi + +Input parameters: + +* `processor_handle` device which to query + +Output: Dictionary with fields + +Field | Content +---|--- +`kfd_id` | KFD's unique GPU identifier +`node_id` | KFD's internal GPU index + +Exceptions that can be thrown by `amdsmi_get_gpu_kfd_info` function: + +* `AmdSmiLibraryException` +* `AmdSmiRetryException` +* `AmdSmiParameterException` + +Example: + +```python +try: + devices = amdsmi_get_processor_handles() + if len(devices) == 0: + print("No GPUs on machine") + else: + for device in devices: + kfd_info = amdsmi_get_gpu_kfd_info(device) + print(kfd_info) except AmdSmiException as e: print(e) ``` diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 6b75e7e475..cd0dceff70 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -590,11 +590,15 @@ typedef struct { uint32_t oam_id; //< 0xFFFF if not supported uint32_t num_of_compute_units; //< 0xFFFFFFFF if not supported uint64_t target_graphics_version; //< 0xFFFFFFFFFFFFFFFF if not supported + uint32_t partition_id; //< 0xFFFFFFFF if not supported + uint32_t reserved[14]; +} amdsmi_asic_info_t; + +typedef struct { uint64_t kfd_id; //< 0xFFFFFFFFFFFFFFFF if not supported uint32_t node_id; //< 0xFFFFFFFF if not supported - uint32_t partition_id; //< 0xFFFFFFFF if not supported - uint32_t reserved[11]; -} amdsmi_asic_info_t; + uint32_t reserved[13]; +} amdsmi_kfd_info_t; typedef enum { AMDSMI_LINK_TYPE_PCIE, @@ -4716,6 +4720,25 @@ amdsmi_get_gpu_driver_info(amdsmi_processor_handle processor_handle, amdsmi_driv amdsmi_status_t amdsmi_get_gpu_asic_info(amdsmi_processor_handle processor_handle, amdsmi_asic_info_t *info); +/** + * @brief Returns the KFD (Kernel Fusion Driver) information for the device + * + * @platform{gpu_bm_linux} @platform{guest_1vf} @platform{guest_mvf} + * + * @details This function returns KFD information populated into the amdsmi_kfd_info_t. + * This contains the kfd_id and node_id which allow for the ID and + * index of this device in the KFD. + * + * @param[in] processor_handle Device which to query + * + * @param[out] info Reference to kfd information structure. + * Must be allocated by user. + * + * @return ::amdsmi_status_t | ::AMDSMI_STATUS_SUCCESS on success, non-zero on fail + */ +amdsmi_status_t +amdsmi_get_gpu_kfd_info(amdsmi_processor_handle processor_handle, amdsmi_kfd_info_t *info); + /** * @brief Returns vram info * diff --git a/py-interface/README.md b/py-interface/README.md index 797486ca8e..40edc84f8c 100644 --- a/py-interface/README.md +++ b/py-interface/README.md @@ -377,6 +377,8 @@ Field | Content `rev_id` | revision id `asic_serial` | asic serial `oam_id` | oam id +`num_of_compute_units` | number of compute units on asic +`target_graphics_version` | hardware graphics version Exceptions that can be thrown by `amdsmi_get_gpu_asic_info` function: @@ -394,13 +396,44 @@ try: else: for device in devices: asic_info = amdsmi_get_gpu_asic_info(device) - print(asic_info['market_name']) - print(hex(asic_info['vendor_id'])) - print(asic_info['vendor_name']) - print(hex(asic_info['device_id'])) - print(hex(asic_info['rev_id'])) - print(asic_info['asic_serial']) - print(asic_info['oam_id']) + print(asic_info) +except AmdSmiException as e: + print(e) +``` + +### amdsmi_get_gpu_kfd_info + +Description: Returns KFD(kernel fusion driver) information for the given GPU +This correlates to GUID in rocm-smi + +Input parameters: + +* `processor_handle` device which to query + +Output: Dictionary with fields + +Field | Content +---|--- +`kfd_id` | KFD's unique GPU identifier +`node_id` | KFD's internal GPU index + +Exceptions that can be thrown by `amdsmi_get_gpu_kfd_info` function: + +* `AmdSmiLibraryException` +* `AmdSmiRetryException` +* `AmdSmiParameterException` + +Example: + +```python +try: + devices = amdsmi_get_processor_handles() + if len(devices) == 0: + print("No GPUs on machine") + else: + for device in devices: + kfd_info = amdsmi_get_gpu_kfd_info(device) + print(kfd_info) except AmdSmiException as e: print(e) ``` diff --git a/py-interface/__init__.py b/py-interface/__init__.py index 13e3221401..12822f7f77 100644 --- a/py-interface/__init__.py +++ b/py-interface/__init__.py @@ -89,6 +89,7 @@ from .amdsmi_interface import amdsmi_get_gpu_driver_info # # ASIC and Bus Static Information from .amdsmi_interface import amdsmi_get_gpu_asic_info +from .amdsmi_interface import amdsmi_get_gpu_kfd_info from .amdsmi_interface import amdsmi_get_power_cap_info from .amdsmi_interface import amdsmi_get_gpu_vram_info from .amdsmi_interface import amdsmi_get_gpu_cache_info diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index dd5c676a01..9fb9a83173 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -575,7 +575,7 @@ def _make_amdsmi_bdf_from_list(bdf): amdsmi_bdf.struct_amdsmi_bdf_t.domain_number = bdf[0] return amdsmi_bdf -def _padHexValue(value, length): +def _pad_hex_value(value, length): """ Pad a hexadecimal value with a given length of zeros :param value: A hexadecimal value to be padded with zeros @@ -590,23 +590,23 @@ def _padHexValue(value, length): return '0x' + value[2:].zfill(length) return value -class UIntegerTypes(IntEnum): +class MaxUIntegerTypes(IntEnum): UINT8_T = 0xFF UINT16_T = 0xFFFF UINT32_T = 0xFFFFFFFF UINT64_T = 0xFFFFFFFFFFFFFFFF -def _validateIfMaxUint(valToCheck, uintType: UIntegerTypes): +def _validate_if_max_uint(value, uint_type: MaxUIntegerTypes): return_val = "N/A" - if not isinstance(valToCheck, list): - if valToCheck == uintType: + if not isinstance(value, list): + if value == uint_type: return return_val else: - return valToCheck + return value else: - return_val = valToCheck - for idx, v in enumerate(valToCheck): - if v == uintType: + return_val = value + for idx, v in enumerate(value): + if v == uint_type: return_val[idx] = "N/A" return return_val @@ -1656,18 +1656,16 @@ def amdsmi_get_gpu_asic_info( ) asic_info = { - "market_name": _padHexValue(asic_info_struct.market_name.decode("utf-8"), 4), + "market_name": _pad_hex_value(asic_info_struct.market_name.decode("utf-8"), 4), "vendor_id": asic_info_struct.vendor_id, "vendor_name": asic_info_struct.vendor_name.decode("utf-8"), "subvendor_id": asic_info_struct.subvendor_id, "device_id": asic_info_struct.device_id, - "rev_id": _padHexValue(hex(asic_info_struct.rev_id), 2), + "rev_id": _pad_hex_value(hex(asic_info_struct.rev_id), 2), "asic_serial": asic_info_struct.asic_serial.decode("utf-8"), "oam_id": asic_info_struct.oam_id, "num_compute_units": asic_info_struct.num_of_compute_units, "target_graphics_version": "gfx" + str(asic_info_struct.target_graphics_version), - "kfd_id": asic_info_struct.kfd_id, - "node_id": asic_info_struct.node_id, "partition_id": asic_info_struct.partition_id } @@ -1705,6 +1703,28 @@ def amdsmi_get_gpu_asic_info( return asic_info +def amdsmi_get_gpu_kfd_info( + processor_handle: amdsmi_wrapper.amdsmi_processor_handle, +) -> Dict[str, Any]: + if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): + raise AmdSmiParameterException( + processor_handle, amdsmi_wrapper.amdsmi_processor_handle + ) + + kfd_info_struct = amdsmi_wrapper.amdsmi_kfd_info_t() + _check_res( + amdsmi_wrapper.amdsmi_get_gpu_kfd_info( + processor_handle, ctypes.byref(kfd_info_struct)) + ) + + kfd_info = { + "kfd_id": _validate_if_max_uint(kfd_info_struct.kfd_id, MaxUIntegerTypes.UINT32_T), + "node_id": _validate_if_max_uint(kfd_info_struct.node_id, MaxUIntegerTypes.UINT64_T) + } + + return kfd_info + + def amdsmi_get_power_cap_info( processor_handle: amdsmi_wrapper.amdsmi_processor_handle, ) -> Dict[str, Any]: @@ -1999,10 +2019,10 @@ def amdsmi_get_gpu_board_info( ) board_info_dict = { - "model_number": _padHexValue(board_info.model_number.decode("utf-8").strip(), 4), + "model_number": _pad_hex_value(board_info.model_number.decode("utf-8").strip(), 4), "product_serial": board_info.product_serial.decode("utf-8").strip(), "fru_id": board_info.fru_id.decode("utf-8").strip(), - "product_name": _padHexValue(board_info.product_name.decode("utf-8").strip(), 4), + "product_name": _pad_hex_value(board_info.product_name.decode("utf-8").strip(), 4), "manufacturer_name": board_info.manufacturer_name.decode("utf-8").strip() } @@ -2301,20 +2321,20 @@ def amdsmi_get_pcie_info( pcie_info_dict = { "pcie_static": { - "max_pcie_width": _validateIfMaxUint(pcie_info.pcie_static.max_pcie_width, UIntegerTypes.UINT16_T), - "max_pcie_speed": _validateIfMaxUint(pcie_info.pcie_static.max_pcie_speed, UIntegerTypes.UINT32_T), - "pcie_interface_version": _validateIfMaxUint(pcie_info.pcie_static.pcie_interface_version, UIntegerTypes.UINT32_T), + "max_pcie_width": _validate_if_max_uint(pcie_info.pcie_static.max_pcie_width, MaxUIntegerTypes.UINT16_T), + "max_pcie_speed": _validate_if_max_uint(pcie_info.pcie_static.max_pcie_speed, MaxUIntegerTypes.UINT32_T), + "pcie_interface_version": _validate_if_max_uint(pcie_info.pcie_static.pcie_interface_version, MaxUIntegerTypes.UINT32_T), "slot_type": pcie_info.pcie_static.slot_type, }, "pcie_metric": { - "pcie_width": _validateIfMaxUint(pcie_info.pcie_metric.pcie_width, UIntegerTypes.UINT16_T), - "pcie_speed": _validateIfMaxUint(pcie_info.pcie_metric.pcie_speed, UIntegerTypes.UINT32_T), - "pcie_bandwidth": _validateIfMaxUint(pcie_info.pcie_metric.pcie_bandwidth, UIntegerTypes.UINT32_T), - "pcie_replay_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_replay_count, UIntegerTypes.UINT64_T), - "pcie_l0_to_recovery_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_l0_to_recovery_count, UIntegerTypes.UINT64_T), - "pcie_replay_roll_over_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_replay_roll_over_count, UIntegerTypes.UINT64_T), - "pcie_nak_sent_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_nak_sent_count, UIntegerTypes.UINT64_T), - "pcie_nak_received_count": _validateIfMaxUint(pcie_info.pcie_metric.pcie_nak_received_count, UIntegerTypes.UINT64_T), + "pcie_width": _validate_if_max_uint(pcie_info.pcie_metric.pcie_width, MaxUIntegerTypes.UINT16_T), + "pcie_speed": _validate_if_max_uint(pcie_info.pcie_metric.pcie_speed, MaxUIntegerTypes.UINT32_T), + "pcie_bandwidth": _validate_if_max_uint(pcie_info.pcie_metric.pcie_bandwidth, MaxUIntegerTypes.UINT32_T), + "pcie_replay_count": _validate_if_max_uint(pcie_info.pcie_metric.pcie_replay_count, MaxUIntegerTypes.UINT64_T), + "pcie_l0_to_recovery_count": _validate_if_max_uint(pcie_info.pcie_metric.pcie_l0_to_recovery_count, MaxUIntegerTypes.UINT64_T), + "pcie_replay_roll_over_count": _validate_if_max_uint(pcie_info.pcie_metric.pcie_replay_roll_over_count, MaxUIntegerTypes.UINT64_T), + "pcie_nak_sent_count": _validate_if_max_uint(pcie_info.pcie_metric.pcie_nak_sent_count, MaxUIntegerTypes.UINT64_T), + "pcie_nak_received_count": _validate_if_max_uint(pcie_info.pcie_metric.pcie_nak_received_count, MaxUIntegerTypes.UINT64_T), } } @@ -2407,7 +2427,7 @@ def amdsmi_get_gpu_subsystem_id(processor_handle: amdsmi_wrapper.amdsmi_processo processor_handle, ctypes.byref(id)) ) - return _padHexValue(hex(id.value), 4) + return _pad_hex_value(hex(id.value), 4) def amdsmi_get_gpu_subsystem_name(processor_handle: amdsmi_wrapper.amdsmi_processor_handle): diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index c2b3f8f5b3..24c59370c4 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -904,14 +904,23 @@ struct_amdsmi_asic_info_t._fields_ = [ ('num_of_compute_units', ctypes.c_uint32), ('PADDING_0', ctypes.c_ubyte * 4), ('target_graphics_version', ctypes.c_uint64), - ('kfd_id', ctypes.c_uint64), - ('node_id', ctypes.c_uint32), ('partition_id', ctypes.c_uint32), - ('reserved', ctypes.c_uint32 * 17), + ('reserved', ctypes.c_uint32 * 14), ('PADDING_1', ctypes.c_ubyte * 4), ] amdsmi_asic_info_t = struct_amdsmi_asic_info_t +class struct_amdsmi_kfd_info_t(Structure): + pass + +struct_amdsmi_kfd_info_t._pack_ = 1 # source:False +struct_amdsmi_kfd_info_t._fields_ = [ + ('kfd_id', ctypes.c_uint64), + ('node_id', ctypes.c_uint32), + ('reserved', ctypes.c_uint32 * 13), +] + +amdsmi_kfd_info_t = struct_amdsmi_kfd_info_t # values for enumeration 'amdsmi_link_type_t' amdsmi_link_type_t__enumvalues = { @@ -2265,6 +2274,9 @@ amdsmi_get_gpu_driver_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(s amdsmi_get_gpu_asic_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_asic_info amdsmi_get_gpu_asic_info.restype = amdsmi_status_t amdsmi_get_gpu_asic_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_asic_info_t)] +amdsmi_get_gpu_kfd_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_kfd_info +amdsmi_get_gpu_kfd_info.restype = amdsmi_status_t +amdsmi_get_gpu_kfd_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_kfd_info_t)] amdsmi_get_gpu_vram_info = _libraries['libamd_smi.so'].amdsmi_get_gpu_vram_info amdsmi_get_gpu_vram_info.restype = amdsmi_status_t amdsmi_get_gpu_vram_info.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_vram_info_t)] @@ -2696,7 +2708,8 @@ __all__ = \ 'amdsmi_get_gpu_ecc_enabled', 'amdsmi_get_gpu_ecc_status', 'amdsmi_get_gpu_event_notification', 'amdsmi_get_gpu_fan_rpms', 'amdsmi_get_gpu_fan_speed', 'amdsmi_get_gpu_fan_speed_max', - 'amdsmi_get_gpu_id', 'amdsmi_get_gpu_mem_overdrive_level', + 'amdsmi_get_gpu_id', 'amdsmi_get_gpu_kfd_info', + 'amdsmi_get_gpu_mem_overdrive_level', 'amdsmi_get_gpu_memory_partition', 'amdsmi_get_gpu_memory_reserved_pages', 'amdsmi_get_gpu_memory_total', 'amdsmi_get_gpu_memory_usage', @@ -2742,7 +2755,7 @@ __all__ = \ 'amdsmi_init', 'amdsmi_init_flags_t', 'amdsmi_init_gpu_event_notification', 'amdsmi_io_bw_encoding_t', 'amdsmi_io_link_type_t', 'amdsmi_is_P2P_accessible', - 'amdsmi_is_gpu_power_management_enabled', + 'amdsmi_is_gpu_power_management_enabled', 'amdsmi_kfd_info_t', 'amdsmi_link_id_bw_type_t', 'amdsmi_link_metrics_t', 'amdsmi_link_type_t', 'amdsmi_memory_page_status_t', 'amdsmi_memory_partition_type_t', 'amdsmi_memory_type_t', @@ -2802,7 +2815,7 @@ __all__ = \ 'struct_amdsmi_freq_volt_region_t', 'struct_amdsmi_frequencies_t', 'struct_amdsmi_frequency_range_t', 'struct_amdsmi_fw_info_t', 'struct_amdsmi_gpu_cache_info_t', 'struct_amdsmi_gpu_metrics_t', - 'struct_amdsmi_hsmp_metrics_table_t', + 'struct_amdsmi_hsmp_metrics_table_t', 'struct_amdsmi_kfd_info_t', 'struct_amdsmi_link_id_bw_type_t', 'struct_amdsmi_link_metrics_t', 'struct_amdsmi_name_value_t', 'struct_amdsmi_od_vddc_point_t', 'struct_amdsmi_od_volt_curve_t', diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index b8195d7a6b..47144f4ee4 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -774,24 +774,6 @@ amdsmi_get_gpu_asic_info(amdsmi_processor_handle processor_handle, amdsmi_asic_i info->target_graphics_version = tmp_target_gfx_version; } - // default to 0xffffffffffffffff as not supported - info->kfd_id = std::numeric_limits::max(); - auto tmp_kfd_id = uint64_t(0); - status = rsmi_wrapper(rsmi_dev_guid_get, processor_handle, - &(tmp_kfd_id)); - if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS) { - info->kfd_id = tmp_kfd_id; - } - - // default to 0xffffffff as not supported - info->node_id = std::numeric_limits::max(); - auto tmp_node_id = uint32_t(0); - status = rsmi_wrapper(rsmi_dev_node_id_get, processor_handle, - &(tmp_node_id)); - if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS) { - info->node_id = tmp_node_id; - } - // default to 0xffffffff as not supported info->partition_id = std::numeric_limits::max(); auto tmp_partition_id = uint32_t(0); @@ -804,6 +786,37 @@ amdsmi_get_gpu_asic_info(amdsmi_processor_handle processor_handle, amdsmi_asic_i return AMDSMI_STATUS_SUCCESS; } +amdsmi_status_t amdsmi_get_gpu_kfd_info(amdsmi_processor_handle processor_handle, + amdsmi_kfd_info_t *info) { + AMDSMI_CHECK_INIT(); + + if (info == nullptr) { + return AMDSMI_STATUS_INVAL; + } + + amdsmi_status_t status; + // default to 0xffffffffffffffff as not supported + info->kfd_id = std::numeric_limits::max(); + auto tmp_kfd_id = uint64_t(0); + status = rsmi_wrapper(rsmi_dev_guid_get, processor_handle, &(tmp_kfd_id)); + if (status != AMDSMI_STATUS_SUCCESS) { + return status; + } else { + info->kfd_id = tmp_kfd_id; + } + + // default to 0xffffffff as not supported + info->node_id = std::numeric_limits::max(); + auto tmp_node_id = uint32_t(0); + status = rsmi_wrapper(rsmi_dev_node_id_get, processor_handle, &(tmp_node_id)); + if (status != AMDSMI_STATUS_SUCCESS) { + return status; + } else { + info->node_id = tmp_node_id; + } + + return AMDSMI_STATUS_SUCCESS; +} amdsmi_status_t amdsmi_get_gpu_subsystem_id(amdsmi_processor_handle processor_handle, uint16_t *id) { diff --git a/tests/amd_smi_test/functional/id_info_read.cc b/tests/amd_smi_test/functional/id_info_read.cc index 2f7236a1b2..de92faf5cd 100644 --- a/tests/amd_smi_test/functional/id_info_read.cc +++ b/tests/amd_smi_test/functional/id_info_read.cc @@ -123,8 +123,8 @@ void TestIdInfoRead::Run(void) { } // vendor_id, unique_id - amdsmi_asic_info_t asci_info; - err = amdsmi_get_gpu_asic_info(processor_handles_[0], &asci_info); + amdsmi_asic_info_t asic_info; + err = amdsmi_get_gpu_asic_info(processor_handles_[0], &asic_info); CHK_ERR_ASRT(err) // device name, brand, serial_number @@ -215,7 +215,7 @@ void TestIdInfoRead::Run(void) { IF_VERB(STANDARD) { std::cout << "\t**Sub-system Vendor ID: 0x" << std::hex << - asci_info.subvendor_id << std::endl; + asic_info.subvendor_id << std::endl; } err = amdsmi_get_gpu_vendor_name(processor_handles_[i], buffer, kBufferLen); diff --git a/tests/amd_smi_test/functional/mutual_exclusion.cc b/tests/amd_smi_test/functional/mutual_exclusion.cc index 48c692fcdd..f7bef7ce5d 100644 --- a/tests/amd_smi_test/functional/mutual_exclusion.cc +++ b/tests/amd_smi_test/functional/mutual_exclusion.cc @@ -200,8 +200,8 @@ void TestMutualExclusion::Run(void) { ret = amdsmi_get_gpu_id(processor_handles_[0], &dmy_ui16); // vendor_id, unique_id - amdsmi_asic_info_t asci_info; - ret = amdsmi_get_gpu_asic_info(processor_handles_[0], &asci_info); + amdsmi_asic_info_t asic_info; + ret = amdsmi_get_gpu_asic_info(processor_handles_[0], &asic_info); CHECK_RET(ret, AMDSMI_STATUS_BUSY); // device name, brand, serial_number diff --git a/tests/amd_smi_test/functional/sys_info_read.cc b/tests/amd_smi_test/functional/sys_info_read.cc index b64d37f1e7..6c4a4b7717 100644 --- a/tests/amd_smi_test/functional/sys_info_read.cc +++ b/tests/amd_smi_test/functional/sys_info_read.cc @@ -153,17 +153,15 @@ void TestSysInfoRead::Run(void) { ASSERT_EQ(err, AMDSMI_STATUS_INVAL); - // vendor_id, unique_id, target_gfx_version, kfd_id, node_id, partition_id - amdsmi_asic_info_t asci_info = {}; - err = amdsmi_get_gpu_asic_info(processor_handles_[i], &asci_info); + // vendor_id, unique_id, target_gfx_version, partition_id + amdsmi_asic_info_t asic_info = {}; + err = amdsmi_get_gpu_asic_info(processor_handles_[i], &asic_info); if (err == AMDSMI_STATUS_NOT_SUPPORTED) { std::cout << "\t**amdsmi_dev_unique_id() is not supported" " on this machine" << std::endl; - EXPECT_EQ(asci_info.target_graphics_version, std::numeric_limits::max()); - EXPECT_EQ(asci_info.kfd_id, std::numeric_limits::max()); - EXPECT_EQ(asci_info.node_id, std::numeric_limits::max()); - EXPECT_EQ(asci_info.partition_id, std::numeric_limits::max()); + EXPECT_EQ(asic_info.target_graphics_version, std::numeric_limits::max()); + EXPECT_EQ(asic_info.partition_id, std::numeric_limits::max()); // Verify api support checking functionality is working err = amdsmi_get_gpu_asic_info(processor_handles_[i], nullptr); ASSERT_EQ(err, AMDSMI_STATUS_NOT_SUPPORTED); @@ -171,21 +169,15 @@ void TestSysInfoRead::Run(void) { if (err == AMDSMI_STATUS_SUCCESS) { IF_VERB(STANDARD) { std:: cout << "\t**GPU PCIe Vendor : " - << asci_info.vendor_name << std::endl; + << asic_info.vendor_name << std::endl; std::cout << "\t**Target GFX version: " << std::dec - << asci_info.target_graphics_version << "\n"; - std::cout << "\t**KFD ID: " << std::dec - << asci_info.kfd_id << "\n"; - std::cout << "\t**Node ID: " << std::dec - << asci_info.node_id << "\n"; + << asic_info.target_graphics_version << "\n"; std::cout << "\t**Partition ID: " << std::dec - << asci_info.partition_id << "\n"; + << asic_info.partition_id << "\n"; } EXPECT_EQ(err, AMDSMI_STATUS_SUCCESS); - EXPECT_NE(asci_info.target_graphics_version, std::numeric_limits::max()); - EXPECT_NE(asci_info.kfd_id, std::numeric_limits::max()); - EXPECT_NE(asci_info.node_id, std::numeric_limits::max()); - EXPECT_NE(asci_info.partition_id, std::numeric_limits::max()); + EXPECT_NE(asic_info.target_graphics_version, std::numeric_limits::max()); + EXPECT_NE(asic_info.partition_id, std::numeric_limits::max()); // Verify api support checking functionality is working err = amdsmi_get_gpu_asic_info(processor_handles_[i], nullptr); ASSERT_EQ(err, AMDSMI_STATUS_INVAL); @@ -195,6 +187,27 @@ void TestSysInfoRead::Run(void) { } } + // kfd_id, node_id + amdsmi_kfd_info_t kfd_info = {}; + err = amdsmi_get_gpu_kfd_info(processor_handles_[i], &kfd_info); + if (err != AMDSMI_STATUS_SUCCESS) { + EXPECT_EQ(kfd_info.kfd_id, std::numeric_limits::max()); + EXPECT_EQ(kfd_info.node_id, std::numeric_limits::max()); + } else { + IF_VERB(STANDARD) { + std::cout << "\t**KFD ID: " << std::dec + << kfd_info.kfd_id << "\n"; + std::cout << "\t**Node ID: " << std::dec + << kfd_info.node_id << "\n"; + } + EXPECT_EQ(err, AMDSMI_STATUS_SUCCESS); + EXPECT_NE(kfd_info.kfd_id, std::numeric_limits::max()); + EXPECT_NE(kfd_info.node_id, std::numeric_limits::max()); + } + // Verify api support checking functionality is working + err = amdsmi_get_gpu_kfd_info(processor_handles_[i], nullptr); + ASSERT_EQ(err, AMDSMI_STATUS_NOT_SUPPORTED); + err = amdsmi_get_lib_version(&ver); CHK_ERR_ASRT(err) diff --git a/tests/python_unittest/integration_test.py b/tests/python_unittest/integration_test.py index 2a3367323c..9e1f12bbe3 100755 --- a/tests/python_unittest/integration_test.py +++ b/tests/python_unittest/integration_test.py @@ -511,12 +511,14 @@ def walk_through(self): asic_info['oam_id'])) print(" asic_info['target_graphics_version'] is: {}\n".format( asic_info['target_graphics_version'])) - print(" asic_info['kfd_id'] is: {}\n".format( - asic_info['kfd_id'])) - print(" asic_info['node_id'] is: {}\n".format( - asic_info['node_id'])) print(" asic_info['partition_id'] is: {}\n".format( asic_info['partition_id'])) + print("\n###Test amdsmi_get_gpu_kfd_info \n") + kfd_info = amdsmi.amdsmi_get_gpu_kfd_info(processors[i]) + print(" kfd_info['kfd_id'] is: {}\n".format( + kfd_info['kfd_id'])) + print(" kfd_info['node_id'] is: {}\n".format( + kfd_info['node_id'])) print("###Test amdsmi_get_power_cap_info \n") power_info = amdsmi.amdsmi_get_power_cap_info(processors[i]) print(" power_info['dpm_cap'] is: {}".format( diff --git a/tools/amdsmi_quick_start.py b/tools/amdsmi_quick_start.py index fb08e6d1e6..4cec5be4a1 100644 --- a/tools/amdsmi_quick_start.py +++ b/tools/amdsmi_quick_start.py @@ -23,15 +23,13 @@ # This is not meant to serve best practices for development. # Run this post install with python3 -i quick_start.py - -from amdsmi import * -from pathlib import Path - import atexit import logging import signal import sys +from amdsmi import * +from pathlib import Path # Make exit & quit work without parens because it's annoying type(exit).__repr__ = sys.exit From c9a489d437200a495745dc747c709da290e3cbed Mon Sep 17 00:00:00 2001 From: gabrpham Date: Wed, 18 Sep 2024 19:53:32 -0500 Subject: [PATCH 25/32] Moved partition_id from `static --asic-info` to `static --partition`. partition_id also removed from the `amdsmi_asic_info_t` struct and supporting API has been added for querying partition information. Signed-off-by: gabrpham Change-Id: Id5a6291a77d11bb97a1c7a200fc465898e86e081 --- CHANGELOG.md | 206 ++++++++++-------- amdsmi_cli/amdsmi_commands.py | 26 ++- include/amd_smi/amdsmi.h | 50 ++++- py-interface/README.md | 41 +++- py-interface/__init__.py | 1 + py-interface/amdsmi_interface.py | 37 +++- py-interface/amdsmi_wrapper.py | 104 ++++++--- src/amd_smi/amd_smi.cc | 31 ++- .../amd_smi_test/functional/sys_info_read.cc | 8 +- tests/python_unittest/integration_test.py | 2 - 10 files changed, 351 insertions(+), 155 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45d8ceb3a1..1135bd1838 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,18 +16,15 @@ Full documentation for amd_smi_lib is available at [https://rocm.docs.amd.com/pr - **Added more supported utilization count types to `amdsmi_get_utilization_count()`**. - **Added `amd-smi set -L/--clk-limit ...` command**. -Equivalent to rocm-smi's '--extremum' command which sets sclk's or mclk's soft minimum or soft maximum clock frequency. + - Equivalent to rocm-smi's '--extremum' command which sets sclk's or mclk's soft minimum or soft maximum clock frequency. - **Added Pytest functionality to test amdsmi API calls in Python**. - **Changed the `power` parameter in `amdsmi_get_energy_count()` to `energy_accumulator`**. -Changes propagate forwards into the python interface as well, however we are maintaing backwards compatibility and keeping the `power` field in the python API until ROCm 6.4. + - Changes propagate forwards into the python interface as well, however we are maintaing backwards compatibility and keeping the `power` field in the python API until ROCm 6.4. - **Added GPU memory overdrive percentage to `amd-smi metric -o`**. -Added `amdsmi_get_gpu_mem_overdrive_level()` function to amd-smi C and Python Libraries. - -- **Added Subsystem Device ID to `amd-smi static --asic`**. -No underlying changes to amdsmi_get_gpu_asic_info + - Added `amdsmi_get_gpu_mem_overdrive_level()` function to amd-smi C and Python Libraries. - **Added retrieving connection type and P2P capabilities between two GPUs**. - Added `amdsmi_topo_get_p2p_status` function to amd-smi C and Python Libraries. @@ -44,14 +41,14 @@ If no topology argument is provided all topology information will be displayed. Topology arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:0c:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - ID: 1 | BDF: 0000:22:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - ID: 2 | BDF: 0000:38:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - ID: 3 | BDF: 0000:5c:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - ID: 4 | BDF: 0000:9f:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - ID: 5 | BDF: 0000:af:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - ID: 6 | BDF: 0000:bf:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - ID: 7 | BDF: 0000:df:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 0 | BDF: 0000:0c:00.0 | UUID: + ID: 1 | BDF: 0000:22:00.0 | UUID: + ID: 2 | BDF: 0000:38:00.0 | UUID: + ID: 3 | BDF: 0000:5c:00.0 | UUID: + ID: 4 | BDF: 0000:9f:00.0 | UUID: + ID: 5 | BDF: 0000:af:00.0 | UUID: + ID: 6 | BDF: 0000:bf:00.0 | UUID: + ID: 7 | BDF: 0000:df:00.0 | UUID: all | Selects all devices @@ -75,62 +72,7 @@ Command Modifiers: ``` ```shell -$ amd-smi topology -ACCESS TABLE: - 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 -0000:0c:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED -0000:22:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED -0000:38:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED -0000:5c:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED -0000:9f:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED -0000:af:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED -0000:bf:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED -0000:df:00.0 ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED - -WEIGHT TABLE: - 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 -0000:0c:00.0 0 15 15 15 15 15 15 15 -0000:22:00.0 15 0 15 15 15 15 15 15 -0000:38:00.0 15 15 0 15 15 15 15 15 -0000:5c:00.0 15 15 15 0 15 15 15 15 -0000:9f:00.0 15 15 15 15 0 15 15 15 -0000:af:00.0 15 15 15 15 15 0 15 15 -0000:bf:00.0 15 15 15 15 15 15 0 15 -0000:df:00.0 15 15 15 15 15 15 15 0 - -HOPS TABLE: - 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 -0000:0c:00.0 0 1 1 1 1 1 1 1 -0000:22:00.0 1 0 1 1 1 1 1 1 -0000:38:00.0 1 1 0 1 1 1 1 1 -0000:5c:00.0 1 1 1 0 1 1 1 1 -0000:9f:00.0 1 1 1 1 0 1 1 1 -0000:af:00.0 1 1 1 1 1 0 1 1 -0000:bf:00.0 1 1 1 1 1 1 0 1 -0000:df:00.0 1 1 1 1 1 1 1 0 - -LINK TYPE TABLE: - 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 -0000:0c:00.0 SELF XGMI XGMI XGMI XGMI XGMI XGMI XGMI -0000:22:00.0 XGMI SELF XGMI XGMI XGMI XGMI XGMI XGMI -0000:38:00.0 XGMI XGMI SELF XGMI XGMI XGMI XGMI XGMI -0000:5c:00.0 XGMI XGMI XGMI SELF XGMI XGMI XGMI XGMI -0000:9f:00.0 XGMI XGMI XGMI XGMI SELF XGMI XGMI XGMI -0000:af:00.0 XGMI XGMI XGMI XGMI XGMI SELF XGMI XGMI -0000:bf:00.0 XGMI XGMI XGMI XGMI XGMI XGMI SELF XGMI -0000:df:00.0 XGMI XGMI XGMI XGMI XGMI XGMI XGMI SELF - -NUMA BW TABLE: - 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 -0000:0c:00.0 N/A 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 -0000:22:00.0 50000-50000 N/A 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 -0000:38:00.0 50000-50000 50000-50000 N/A 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 -0000:5c:00.0 50000-50000 50000-50000 50000-50000 N/A 50000-50000 50000-50000 50000-50000 50000-50000 -0000:9f:00.0 50000-50000 50000-50000 50000-50000 50000-50000 N/A 50000-50000 50000-50000 50000-50000 -0000:af:00.0 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 N/A 50000-50000 50000-50000 -0000:bf:00.0 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 N/A 50000-50000 -0000:df:00.0 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 50000-50000 N/A - +$ amd-smi topology -cndz CACHE COHERANCY TABLE: 0000:0c:00.0 0000:22:00.0 0000:38:00.0 0000:5c:00.0 0000:9f:00.0 0000:af:00.0 0000:bf:00.0 0000:df:00.0 0000:0c:00.0 SELF C NC NC C C C NC @@ -203,22 +145,40 @@ typedef struct { $ amd-smi list GPU: 0 BDF: 0000:23:00.0 - UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + UUID: KFD_ID: 45412 NODE_ID: 1 + PARTITION_ID: 0 GPU: 1 BDF: 0000:26:00.0 - UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + UUID: KFD_ID: 59881 NODE_ID: 2 + PARTITION_ID: 0 ``` -- **Added Target_Graphics_Version and partition id to `amd-smi static --asic`**. +- **Added Subsystem Device ID to `amd-smi static --asic`**. + - No underlying changes to amdsmi_get_gpu_asic_info -Due to fixes needed to properly enumerate all logical GPUs in CPX, new device identifiers -were placed within the `amdsmi_asic_info_t` struct. These new fields are only available for BM/Guest Linux -devices at this time. +```shell +$ amd-smi static --asic +GPU: 0 + ASIC: + MARKET_NAME: MI308X + VENDOR_ID: 0x1002 + VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] + SUBVENDOR_ID: 0x1002 + DEVICE_ID: 0x74a2 + SUBSYSTEM_ID: 0x74a2 + REV_ID: 0x00 + ASIC_SERIAL: + OAM_ID: 5 + NUM_COMPUTE_UNITS: 20 + TARGET_GRAPHICS_VERSION: gfx942 +``` + +- **Added Target_Graphics_Version to `amd-smi static --asic` and `amdsmi_get_gpu_asic_info()`**. ```C typedef struct { @@ -232,13 +192,12 @@ typedef struct { uint32_t oam_id; //< 0xFFFF if not supported uint32_t num_of_compute_units; //< 0xFFFFFFFF if not supported uint64_t target_graphics_version; //< 0xFFFFFFFFFFFFFFFF if not supported - uint32_t partition_id; //< 0xFFFFFFFF if not supported - uint32_t reserved[14]; + uint32_t reserved[15]; } amdsmi_asic_info_t; ``` ```shell -$ amd-smi static --asic --partition +$ amd-smi static --asic GPU: 0 ASIC: MARKET_NAME: MI308X @@ -246,47 +205,102 @@ GPU: 0 VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] SUBVENDOR_ID: 0x1002 DEVICE_ID: 0x74a2 - TARGET_GRAPHICS_VERSION: gfx942 - KFD_ID: 24248 - NODE_ID: 2 - PARTITION_ID: 0 SUBSYSTEM_ID: 0x74a2 REV_ID: 0x00 ASIC_SERIAL: OAM_ID: 5 NUM_COMPUTE_UNITS: 20 + TARGET_GRAPHICS_VERSION: gfx942 +``` + +- **Udpated Partition APIs and struct information and added and partition_id to `amd-smi static --partition` & `amd-smi list`**. + - As part of an overhaul to partition information, some partition information will be made available in the `amdsmi_accelerator_partition_profile_t`. + - This struct will be filled out by a new API, `amdsmi_get_gpu_accelerator_partition_profile()`. + - Future data from these APIs wil will eventually get added to `static --partition`. + +```C +#define AMDSMI_MAX_ACCELERATOR_PROFILE 32 +#define AMDSMI_MAX_CP_PROFILE_RESOURCES 32 +#define AMDSMI_MAX_ACCELERATOR_PARTITIONS 8 + +/** + * @brief Accelerator Partition. This enum is used to identify + * various accelerator partitioning settings. + */ +typedef enum { + AMDSMI_ACCELERATOR_PARTITION_INVALID = 0, + AMDSMI_ACCELERATOR_PARTITION_SPX, //!< Single GPU mode (SPX)- All XCCs work + //!< together with shared memory + AMDSMI_ACCELERATOR_PARTITION_DPX, //!< Dual GPU mode (DPX)- Half XCCs work + //!< together with shared memory + AMDSMI_ACCELERATOR_PARTITION_TPX, //!< Triple GPU mode (TPX)- One-third XCCs + //!< work together with shared memory + AMDSMI_ACCELERATOR_PARTITION_QPX, //!< Quad GPU mode (QPX)- Quarter XCCs + //!< work together with shared memory + AMDSMI_ACCELERATOR_PARTITION_CPX, //!< Core mode (CPX)- Per-chip XCC with + //!< shared memory +} amdsmi_accelerator_partition_type_t; + +typedef struct { + amdsmi_accelerator_partition_type_t profile_type; // SPX, DPX, QPX, CPX and so on + uint32_t num_partitions; // On MI300X, SPX: 1, DPX: 2, QPX: 4, CPX: 8, the length of resources array + uint32_t profile_index; // The index in the profiles array in amdsmi_compute_partition_profile_t + uint32_t num_resources; // length of index_of_resources_profile + uint32_t resources[AMDSMI_MAX_ACCELERATOR_PARTITIONS][AMDSMI_MAX_CP_PROFILE_RESOURCES]; + uint32_t reserved[12]; +} amdsmi_accelerator_partition_profile_t; +``` + +```shell +$ amd-smi static --partition +GPU: 0 PARTITION: COMPUTE_PARTITION: CPX MEMORY_PARTITION: NPS4 + PARTITION_ID: 0 + +$ amd-smi list +GPU: 0 + BDF: 0000:23:00.0 + UUID: + KFD_ID: 45412 + NODE_ID: 1 + PARTITION_ID: 0 + +GPU: 1 + BDF: 0000:26:00.0 + UUID: + KFD_ID: 59881 + NODE_ID: 2 + PARTITION_ID: 0 ``` ### Removals - **Removed usage of _validate_positive in Parser and replaced with _positive_int and _not_negative_int as appropriate**. -This will allow 0 to be a valid input for several options in setting CPUs where appropriate (for example, as a mode or NBIOID) + - This will allow 0 to be a valid input for several options in setting CPUs where appropriate (for example, as a mode or NBIOID) ### Optimizations - **Adjusted ordering of gpu_metrics calls to ensure that pcie_bw values remain stable in `amd-smi metric` & `amd-smi monitor`**. -With this change additional padding was added to PCIE_BW `amd-smi monitor --pcie` + - With this change additional padding was added to PCIE_BW `amd-smi monitor --pcie` ### Resolved issues - **Improved Offline install process & lowered dependency for PyYAML**. - **Fixed CPX not showing total number of logical GPUs**. -Updates were made to `amdsmi_init()` and `amdsmi_get_gpu_bdf_id(..)`. In order to display all logical devices, we needed a way to provide order to GPU's enumerated. This was done + - Updates were made to `amdsmi_init()` and `amdsmi_get_gpu_bdf_id(..)`. In order to display all logical devices, we needed a way to provide order to GPU's enumerated. This was done by adding a partition_id within the BDF optional pci_id bits. - -Due to driver changes in KFD, some devices may report bits [31:28] or [2:0]. With the newly added `amdsmi_get_gpu_bdf_id(..)`, we provided this fallback to properly retreive partition ID. We + - Due to driver changes in KFD, some devices may report bits [31:28] or [2:0]. With the newly added `amdsmi_get_gpu_bdf_id(..)`, we provided this fallback to properly retreive partition ID. We plan to eventually remove partition ID from the function portion of the BDF (Bus Device Function). See below for PCI ID description. - - bits [63:32] = domain - - bits [31:28] or bits [2:0] = partition id - - bits [27:16] = reserved - - bits [15:8] = Bus - - bits [7:3] = Device - - bits [2:0] = Function (partition id maybe in bits [2:0]) <-- Fallback for non SPX modes + - bits [63:32] = domain + - bits [31:28] or bits [2:0] = partition id + - bits [27:16] = reserved + - bits [15:8] = Bus + - bits [7:3] = Device + - bits [2:0] = Function (partition id maybe in bits [2:0]) <-- Fallback for non SPX modes Previously in non-SPX modes (ex. CPX/TPX/DPX/etc) some MI3x ASICs would not report all logical GPU devices within AMD SMI. @@ -329,6 +343,8 @@ GPU POWER GPU_TEMP MEM_TEMP VRAM_USED VRAM_TOTAL - **Fixed incorrect implementation of the Python API `amdsmi_get_gpu_metrics_header_info()`**. +- **`amd-smi static --partition` will have updates with additional partition information from `amdsmi_get_gpu_accelerator_partition_profile()`**. + ### Known issues - N/A @@ -1005,7 +1021,7 @@ Use the watch arguments to run continuously Monitor Arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + ID: 0 | BDF: 0000:01:00.0 | UUID: all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index 4915354fa9..6bd534413f 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -175,20 +175,29 @@ class AMDSMICommands(): kfd_id = kfd_info['kfd_id'] node_id = kfd_info['node_id'] except amdsmi_exception.AmdSmiLibraryException as e: - kfd_id = node_id = e.get_error_info() + kfd_id = node_id = "N/A" logging.debug("Failed to get kfd info for gpu %s | %s", gpu_id, e.get_error_info()) + try: + partition_info = amdsmi_interface.amdsmi_get_gpu_accelerator_partition_profile(args.gpu) + partition_id = partition_info['partition_id'] + except amdsmi_exception.AmdSmiLibraryException as e: + partition_id = "N/A" + logging.debug("Failed to get partition ID for gpu %s | %s", gpu_id, e.get_error_info()) + # CSV format is intentionally aligned with Host if self.logger.is_csv_format(): self.logger.store_output(args.gpu, 'gpu_bdf', bdf) self.logger.store_output(args.gpu, 'gpu_uuid', uuid) self.logger.store_output(args.gpu, 'kfd_id', kfd_id) self.logger.store_output(args.gpu, 'node_id', node_id) + self.logger.store_output(args.gpu, 'partition_id', partition_id) else: self.logger.store_output(args.gpu, 'bdf', bdf) self.logger.store_output(args.gpu, 'uuid', uuid) self.logger.store_output(args.gpu, 'kfd_id', kfd_id) self.logger.store_output(args.gpu, 'node_id', node_id) + self.logger.store_output(args.gpu, 'partition_id', partition_id) if multiple_devices: self.logger.store_multiple_device_output() @@ -380,8 +389,7 @@ class AMDSMICommands(): "asic_serial" : "N/A", "oam_id" : "N/A", "num_compute_units" : "N/A", - "target_graphics_version" : "N/A", - "partition_id" : "N/A" + "target_graphics_version" : "N/A" } try: @@ -679,8 +687,16 @@ class AMDSMICommands(): memory_partition = "N/A" logging.debug("Failed to get memory partition info for gpu %s | %s", gpu_id, e.get_error_info()) + try: + partition_info = amdsmi_interface.amdsmi_get_gpu_accelerator_partition_profile(args.gpu) + partition_id = partition_info['partition_id'] + except amdsmi_exception.AmdSmiLibraryException as e: + partition_id = "N/A" + logging.debug("Failed to get partition ID for gpu %s | %s", gpu_id, e.get_error_info()) + static_dict['partition'] = {"compute_partition": compute_partition, - "memory_partition": memory_partition} + "memory_partition": memory_partition, + "partition_id": partition_id} if 'soc_pstate' in current_platform_args: if args.soc_pstate: try: @@ -4996,4 +5012,4 @@ class AMDSMICommands(): except Exception as e: print(e) - listener.stop() \ No newline at end of file + listener.stop() diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index cd0dceff70..0c681ee62b 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -87,6 +87,9 @@ typedef enum { #define AMDSMI_MAX_CONTAINER_TYPE 2 #define AMDSMI_MAX_CACHE_TYPES 10 #define AMDSMI_MAX_NUM_XGMI_PHYSICAL_LINK 64 +#define AMDSMI_MAX_ACCELERATOR_PROFILE 32 +#define AMDSMI_MAX_CP_PROFILE_RESOURCES 32 +#define AMDSMI_MAX_ACCELERATOR_PARTITIONS 8 #define AMDSMI_GPU_UUID_SIZE 38 @@ -275,6 +278,24 @@ typedef enum { AMDSMI_CLK_TYPE__MAX = AMDSMI_CLK_TYPE_DCLK1 } amdsmi_clk_type_t; +/** + * @brief Accelerator Partition. This enum is used to identify + * various accelerator partitioning settings. + */ +typedef enum { + AMDSMI_ACCELERATOR_PARTITION_INVALID = 0, + AMDSMI_ACCELERATOR_PARTITION_SPX, //!< Single GPU mode (SPX)- All XCCs work + //!< together with shared memory + AMDSMI_ACCELERATOR_PARTITION_DPX, //!< Dual GPU mode (DPX)- Half XCCs work + //!< together with shared memory + AMDSMI_ACCELERATOR_PARTITION_TPX, //!< Triple GPU mode (TPX)- One-third XCCs + //!< work together with shared memory + AMDSMI_ACCELERATOR_PARTITION_QPX, //!< Quad GPU mode (QPX)- Quarter XCCs + //!< work together with shared memory + AMDSMI_ACCELERATOR_PARTITION_CPX, //!< Core mode (CPX)- Per-chip XCC with + //!< shared memory +} amdsmi_accelerator_partition_type_t; + /** * @brief Compute Partition. This enum is used to identify * various compute partitioning settings. @@ -590,8 +611,7 @@ typedef struct { uint32_t oam_id; //< 0xFFFF if not supported uint32_t num_of_compute_units; //< 0xFFFFFFFF if not supported uint64_t target_graphics_version; //< 0xFFFFFFFFFFFFFFFF if not supported - uint32_t partition_id; //< 0xFFFFFFFF if not supported - uint32_t reserved[14]; + uint32_t reserved[15]; } amdsmi_asic_info_t; typedef struct { @@ -600,6 +620,15 @@ typedef struct { uint32_t reserved[13]; } amdsmi_kfd_info_t; +typedef struct { + amdsmi_accelerator_partition_type_t profile_type; // SPX, DPX, QPX, CPX and so on + uint32_t num_partitions; // On MI300X, SPX: 1, DPX: 2, QPX: 4, CPX: 8, the length of resources array + uint32_t profile_index; // The index in the profiles array in amdsmi_accelerator_partition_profile_t + uint32_t num_resources; // length of index_of_resources_profile + uint32_t resources[AMDSMI_MAX_ACCELERATOR_PARTITIONS][AMDSMI_MAX_CP_PROFILE_RESOURCES]; + uint64_t reserved[6]; +} amdsmi_accelerator_partition_profile_t; + typedef enum { AMDSMI_LINK_TYPE_PCIE, AMDSMI_LINK_TYPE_XGMI, @@ -4517,6 +4546,23 @@ amdsmi_status_t amdsmi_reset_gpu_memory_partition(amdsmi_processor_handle proces /** @} */ // end of memory_partition +/*****************************************************************************/ +/** @defgroup accelerator_partition_profile Accelerator Partition Profile Functions + * These functions are used to configure and query the device's + * accelerator parition profile setting. + * @{ + */ +// TODO: declare rest of partition profile functions and complete doc commentary. +/* + Get the current accelerator partition profile. The function will return current profile. +*/ +amdsmi_status_t +amdsmi_get_gpu_accelerator_partition_profile(amdsmi_processor_handle processor_handle, + amdsmi_accelerator_partition_profile_t *profile, + uint32_t *partition_id); + +/** @} */ // end of accelerator_partition_profile + /*****************************************************************************/ /** @defgroup EvntNotif Event Notification Functions * These functions are used to configure for and get asynchronous event diff --git a/py-interface/README.md b/py-interface/README.md index 40edc84f8c..dc4001403e 100644 --- a/py-interface/README.md +++ b/py-interface/README.md @@ -2102,6 +2102,7 @@ except AmdSmiException as e: ``` ### amdsmi_set_gpu_process_isolation + Description: Enable/disable the system Process Isolation for the given device handle. Input parameters: @@ -2132,6 +2133,7 @@ except AmdSmiException as e: ``` ### amdsmi_clean_gpu_local_data + Description: Clear the SRAM data of the given device. This can be called between user logins to prevent information leak. Input parameters: @@ -2160,7 +2162,6 @@ except AmdSmiException as e: print(e) ``` - ### amdsmi_get_gpu_overdrive_level Description: Get the overdrive percent associated with the device with provided @@ -3826,6 +3827,44 @@ except AmdSmiException as e: print(e) ``` +### amdsmi_get_gpu_accelerator_partition_profile + +**Note: CURRENTLY HARDCODED TO RETURN EMPTY VALUES** + +Description: Get partition information for target device + +Input parameters: + +* `processor_handle` the device handle + +Output: Dictionary with fields: + +Field | Description +---|--- +`partition_id` | ID of the partition on the GPU provided +`partition_profile` | Dict containing partition data (TBD) + +Exceptions that can be thrown by `amdsmi_get_gpu_accelerator_partition_profile` function: + +* `AmdSmiLibraryException` +* `AmdSmiRetryException` +* `AmdSmiParameterException` + +Example: + +```python +try: + devices = amdsmi_get_processor_handles() + if len(devices) == 0: + print("No GPUs on machine") + else: + for device in devices: + partition_id = amdsmi_get_gpu_accelerator_partition_profile(device)["partition_id"] + print(partition_id) +except AmdSmiException as e: + print(e) +``` + ### amdsmi_get_xgmi_info Description: Returns XGMI information for the GPU. diff --git a/py-interface/__init__.py b/py-interface/__init__.py index 12822f7f77..e0ffcd2c28 100644 --- a/py-interface/__init__.py +++ b/py-interface/__init__.py @@ -224,6 +224,7 @@ from .amdsmi_interface import amdsmi_reset_gpu_compute_partition from .amdsmi_interface import amdsmi_get_gpu_memory_partition from .amdsmi_interface import amdsmi_set_gpu_memory_partition from .amdsmi_interface import amdsmi_reset_gpu_memory_partition +from .amdsmi_interface import amdsmi_get_gpu_accelerator_partition_profile # # Individual GPU Metrics Functions from .amdsmi_interface import amdsmi_get_gpu_metrics_header_info diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index 9fb9a83173..43bffa1d92 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -1665,8 +1665,7 @@ def amdsmi_get_gpu_asic_info( "asic_serial": asic_info_struct.asic_serial.decode("utf-8"), "oam_id": asic_info_struct.oam_id, "num_compute_units": asic_info_struct.num_of_compute_units, - "target_graphics_version": "gfx" + str(asic_info_struct.target_graphics_version), - "partition_id": asic_info_struct.partition_id + "target_graphics_version": "gfx" + str(asic_info_struct.target_graphics_version) } string_values = ["market_name", "vendor_name"] @@ -1746,6 +1745,7 @@ def amdsmi_get_power_cap_info( "min_power_cap": power_info.min_power_cap, "max_power_cap": power_info.max_power_cap} + def amdsmi_get_gpu_pm_metrics_info( processor_handle: amdsmi_wrapper.amdsmi_processor_handle, ) -> Dict[str, Any]: @@ -1773,6 +1773,7 @@ def amdsmi_get_gpu_pm_metrics_info( amdsmi_wrapper.amdsmi_free_name_value_pairs(pm_metrics) return results + def amdsmi_get_gpu_reg_table_info( processor_handle: amdsmi_wrapper.amdsmi_processor_handle, reg_type: amdsmi_wrapper.amdsmi_reg_type_t, @@ -1801,6 +1802,7 @@ def amdsmi_get_gpu_reg_table_info( amdsmi_wrapper.amdsmi_free_name_value_pairs(pm_metrics) return results + def amdsmi_get_gpu_vram_info( processor_handle: amdsmi_wrapper.amdsmi_processor_handle, ) -> Dict[str, Any]: @@ -2564,6 +2566,7 @@ def amdsmi_topo_get_link_type( return {"hops": hops.value, "type": type.value} + def amdsmi_topo_get_p2p_status( processor_handle_src: amdsmi_wrapper.amdsmi_processor_handle, processor_handle_dst: amdsmi_wrapper.amdsmi_processor_handle, @@ -2716,6 +2719,36 @@ def amdsmi_reset_gpu_memory_partition(processor_handle: amdsmi_wrapper.amdsmi_pr _check_res(amdsmi_wrapper.amdsmi_reset_gpu_memory_partition(processor_handle)) +def amdsmi_get_gpu_accelerator_partition_profile( + processor_handle: amdsmi_wrapper.amdsmi_processor_handle + ) -> Dict[str, Any]: + if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): + raise AmdSmiParameterException( + processor_handle, amdsmi_wrapper.amdsmi_processor_handle + ) + partition_id = ctypes.c_uint32() + profile = amdsmi_wrapper.amdsmi_accelerator_partition_profile_t() + + _check_res( + amdsmi_wrapper.amdsmi_get_gpu_accelerator_partition_profile(processor_handle, + ctypes.byref(profile), + ctypes.byref(partition_id)) + ) + + partition_profile_dict = { + "profile_type" : profile.profile_type, + "num_partitions" : profile.num_partitions, + "profile_index" : profile.profile_index, + "num_resources" : profile.num_resources, + "resources" : "N/A" + } + + return { + "partition_id" : partition_id.value, + "partition_profile" : partition_profile_dict + } + + def amdsmi_get_xgmi_info(processor_handle: amdsmi_wrapper.amdsmi_processor_handle): if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): raise AmdSmiParameterException( diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index 24c59370c4..8089a2abbf 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -377,6 +377,23 @@ AMDSMI_CLK_TYPE_DCLK1 = 9 AMDSMI_CLK_TYPE__MAX = 9 amdsmi_clk_type_t = ctypes.c_uint32 # enum +# values for enumeration 'amdsmi_accelerator_partition_type_t' +amdsmi_accelerator_partition_type_t__enumvalues = { + 0: 'AMDSMI_ACCELERATOR_PARTITION_INVALID', + 1: 'AMDSMI_ACCELERATOR_PARTITION_SPX', + 2: 'AMDSMI_ACCELERATOR_PARTITION_DPX', + 3: 'AMDSMI_ACCELERATOR_PARTITION_TPX', + 4: 'AMDSMI_ACCELERATOR_PARTITION_QPX', + 5: 'AMDSMI_ACCELERATOR_PARTITION_CPX', +} +AMDSMI_ACCELERATOR_PARTITION_INVALID = 0 +AMDSMI_ACCELERATOR_PARTITION_SPX = 1 +AMDSMI_ACCELERATOR_PARTITION_DPX = 2 +AMDSMI_ACCELERATOR_PARTITION_TPX = 3 +AMDSMI_ACCELERATOR_PARTITION_QPX = 4 +AMDSMI_ACCELERATOR_PARTITION_CPX = 5 +amdsmi_accelerator_partition_type_t = ctypes.c_uint32 # enum + # values for enumeration 'amdsmi_compute_partition_type_t' amdsmi_compute_partition_type_t__enumvalues = { 0: 'AMDSMI_COMPUTE_PARTITION_INVALID', @@ -759,19 +776,6 @@ amdsmi_card_form_factor_t = ctypes.c_uint32 # enum class struct_amdsmi_pcie_info_t(Structure): pass -class struct_pcie_static_(Structure): - pass - -struct_pcie_static_._pack_ = 1 # source:False -struct_pcie_static_._fields_ = [ - ('max_pcie_width', ctypes.c_uint16), - ('PADDING_0', ctypes.c_ubyte * 2), - ('max_pcie_speed', ctypes.c_uint32), - ('pcie_interface_version', ctypes.c_uint32), - ('slot_type', amdsmi_card_form_factor_t), - ('reserved', ctypes.c_uint64 * 10), -] - class struct_pcie_metric_(Structure): pass @@ -790,6 +794,19 @@ struct_pcie_metric_._fields_ = [ ('reserved', ctypes.c_uint64 * 13), ] +class struct_pcie_static_(Structure): + pass + +struct_pcie_static_._pack_ = 1 # source:False +struct_pcie_static_._fields_ = [ + ('max_pcie_width', ctypes.c_uint16), + ('PADDING_0', ctypes.c_ubyte * 2), + ('max_pcie_speed', ctypes.c_uint32), + ('pcie_interface_version', ctypes.c_uint32), + ('slot_type', amdsmi_card_form_factor_t), + ('reserved', ctypes.c_uint64 * 10), +] + struct_amdsmi_pcie_info_t._pack_ = 1 # source:False struct_amdsmi_pcie_info_t._fields_ = [ ('pcie_static', struct_pcie_static_), @@ -904,8 +921,7 @@ struct_amdsmi_asic_info_t._fields_ = [ ('num_of_compute_units', ctypes.c_uint32), ('PADDING_0', ctypes.c_ubyte * 4), ('target_graphics_version', ctypes.c_uint64), - ('partition_id', ctypes.c_uint32), - ('reserved', ctypes.c_uint32 * 14), + ('reserved', ctypes.c_uint32 * 15), ('PADDING_1', ctypes.c_ubyte * 4), ] @@ -921,6 +937,20 @@ struct_amdsmi_kfd_info_t._fields_ = [ ] amdsmi_kfd_info_t = struct_amdsmi_kfd_info_t +class struct_amdsmi_accelerator_partition_profile_t(Structure): + pass + +struct_amdsmi_accelerator_partition_profile_t._pack_ = 1 # source:False +struct_amdsmi_accelerator_partition_profile_t._fields_ = [ + ('profile_type', amdsmi_accelerator_partition_type_t), + ('num_partitions', ctypes.c_uint32), + ('profile_index', ctypes.c_uint32), + ('num_resources', ctypes.c_uint32), + ('resources', ctypes.c_uint32 * 32 * 8), + ('reserved', ctypes.c_uint64 * 6), +] + +amdsmi_accelerator_partition_profile_t = struct_amdsmi_accelerator_partition_profile_t # values for enumeration 'amdsmi_link_type_t' amdsmi_link_type_t__enumvalues = { @@ -2250,6 +2280,9 @@ amdsmi_set_gpu_memory_partition.argtypes = [amdsmi_processor_handle, amdsmi_memo amdsmi_reset_gpu_memory_partition = _libraries['libamd_smi.so'].amdsmi_reset_gpu_memory_partition amdsmi_reset_gpu_memory_partition.restype = amdsmi_status_t amdsmi_reset_gpu_memory_partition.argtypes = [amdsmi_processor_handle] +amdsmi_get_gpu_accelerator_partition_profile = _libraries['libamd_smi.so'].amdsmi_get_gpu_accelerator_partition_profile +amdsmi_get_gpu_accelerator_partition_profile.restype = amdsmi_status_t +amdsmi_get_gpu_accelerator_partition_profile.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_accelerator_partition_profile_t), ctypes.POINTER(ctypes.c_uint32)] amdsmi_init_gpu_event_notification = _libraries['libamd_smi.so'].amdsmi_init_gpu_event_notification amdsmi_init_gpu_event_notification.restype = amdsmi_status_t amdsmi_init_gpu_event_notification.argtypes = [amdsmi_processor_handle] @@ -2447,7 +2480,12 @@ amdsmi_get_esmi_err_msg = _libraries['libamd_smi.so'].amdsmi_get_esmi_err_msg amdsmi_get_esmi_err_msg.restype = amdsmi_status_t amdsmi_get_esmi_err_msg.argtypes = [amdsmi_status_t, ctypes.POINTER(ctypes.POINTER(ctypes.c_char))] __all__ = \ - ['AGG_BW0', 'AMDSMI_AVERAGE_POWER', + ['AGG_BW0', 'AMDSMI_ACCELERATOR_PARTITION_CPX', + 'AMDSMI_ACCELERATOR_PARTITION_DPX', + 'AMDSMI_ACCELERATOR_PARTITION_INVALID', + 'AMDSMI_ACCELERATOR_PARTITION_QPX', + 'AMDSMI_ACCELERATOR_PARTITION_SPX', + 'AMDSMI_ACCELERATOR_PARTITION_TPX', 'AMDSMI_AVERAGE_POWER', 'AMDSMI_CACHE_PROPERTY_CPU_CACHE', 'AMDSMI_CACHE_PROPERTY_DATA_CACHE', 'AMDSMI_CACHE_PROPERTY_ENABLED', @@ -2651,21 +2689,23 @@ __all__ = \ 'AMDSMI_XGMI_STATUS_MULTIPLE_ERRORS', 'AMDSMI_XGMI_STATUS_NO_ERRORS', 'CLK_LIMIT_MAX', 'CLK_LIMIT_MIN', 'RD_BW0', 'WR_BW0', 'amd_metrics_table_header_t', - 'amdsmi_asic_info_t', 'amdsmi_bdf_t', 'amdsmi_bit_field_t', - 'amdsmi_board_info_t', 'amdsmi_cache_property_type_t', - 'amdsmi_card_form_factor_t', 'amdsmi_clean_gpu_local_data', - 'amdsmi_clk_info_t', 'amdsmi_clk_limit_type_t', - 'amdsmi_clk_type_t', 'amdsmi_compute_partition_type_t', - 'amdsmi_container_types_t', 'amdsmi_counter_command_t', - 'amdsmi_counter_value_t', 'amdsmi_cpu_apb_disable', - 'amdsmi_cpu_apb_enable', 'amdsmi_cpusocket_handle', - 'amdsmi_ddr_bw_metrics_t', 'amdsmi_dev_perf_level_t', - 'amdsmi_dimm_power_t', 'amdsmi_dimm_thermal_t', - 'amdsmi_dpm_level_t', 'amdsmi_dpm_policy_entry_t', - 'amdsmi_dpm_policy_t', 'amdsmi_driver_info_t', - 'amdsmi_engine_usage_t', 'amdsmi_error_count_t', - 'amdsmi_event_group_t', 'amdsmi_event_handle_t', - 'amdsmi_event_type_t', 'amdsmi_evt_notification_data_t', + 'amdsmi_accelerator_partition_profile_t', + 'amdsmi_accelerator_partition_type_t', 'amdsmi_asic_info_t', + 'amdsmi_bdf_t', 'amdsmi_bit_field_t', 'amdsmi_board_info_t', + 'amdsmi_cache_property_type_t', 'amdsmi_card_form_factor_t', + 'amdsmi_clean_gpu_local_data', 'amdsmi_clk_info_t', + 'amdsmi_clk_limit_type_t', 'amdsmi_clk_type_t', + 'amdsmi_compute_partition_type_t', 'amdsmi_container_types_t', + 'amdsmi_counter_command_t', 'amdsmi_counter_value_t', + 'amdsmi_cpu_apb_disable', 'amdsmi_cpu_apb_enable', + 'amdsmi_cpusocket_handle', 'amdsmi_ddr_bw_metrics_t', + 'amdsmi_dev_perf_level_t', 'amdsmi_dimm_power_t', + 'amdsmi_dimm_thermal_t', 'amdsmi_dpm_level_t', + 'amdsmi_dpm_policy_entry_t', 'amdsmi_dpm_policy_t', + 'amdsmi_driver_info_t', 'amdsmi_engine_usage_t', + 'amdsmi_error_count_t', 'amdsmi_event_group_t', + 'amdsmi_event_handle_t', 'amdsmi_event_type_t', + 'amdsmi_evt_notification_data_t', 'amdsmi_evt_notification_type_t', 'amdsmi_first_online_core_on_cpu_socket', 'amdsmi_free_name_value_pairs', 'amdsmi_freq_ind_t', @@ -2695,6 +2735,7 @@ __all__ = \ 'amdsmi_get_cpu_socket_temperature', 'amdsmi_get_cpucore_handles', 'amdsmi_get_cpusocket_handles', 'amdsmi_get_energy_count', 'amdsmi_get_esmi_err_msg', 'amdsmi_get_fw_info', + 'amdsmi_get_gpu_accelerator_partition_profile', 'amdsmi_get_gpu_activity', 'amdsmi_get_gpu_asic_info', 'amdsmi_get_gpu_available_counters', 'amdsmi_get_gpu_bad_page_info', 'amdsmi_get_gpu_bdf_id', @@ -2804,6 +2845,7 @@ __all__ = \ 'amdsmi_vram_vendor_type_t', 'amdsmi_xgmi_info_t', 'amdsmi_xgmi_status_t', 'processor_type_t', 'size_t', 'struct__links', 'struct_amd_metrics_table_header_t', + 'struct_amdsmi_accelerator_partition_profile_t', 'struct_amdsmi_asic_info_t', 'struct_amdsmi_board_info_t', 'struct_amdsmi_clk_info_t', 'struct_amdsmi_counter_value_t', 'struct_amdsmi_ddr_bw_metrics_t', 'struct_amdsmi_dimm_power_t', diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index 47144f4ee4..7b7eda3a2d 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -774,15 +774,6 @@ amdsmi_get_gpu_asic_info(amdsmi_processor_handle processor_handle, amdsmi_asic_i info->target_graphics_version = tmp_target_gfx_version; } - // default to 0xffffffff as not supported - info->partition_id = std::numeric_limits::max(); - auto tmp_partition_id = uint32_t(0); - status = rsmi_wrapper(rsmi_dev_partition_id_get, processor_handle, - &(tmp_partition_id)); - if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS) { - info->partition_id = tmp_partition_id; - } - return AMDSMI_STATUS_SUCCESS; } @@ -1168,6 +1159,24 @@ amdsmi_reset_gpu_memory_partition(amdsmi_processor_handle processor_handle) { return rsmi_wrapper(rsmi_dev_memory_partition_reset, processor_handle); } +amdsmi_status_t +amdsmi_get_gpu_accelerator_partition_profile(amdsmi_processor_handle processor_handle, + amdsmi_accelerator_partition_profile_t *profile, + uint32_t *partition_id) { + AMDSMI_CHECK_INIT(); + // TODO: also fill out profile later + // default to 0xffffffff if not supported + *partition_id = std::numeric_limits::max(); + auto tmp_partition_id = uint32_t(0); + + amdsmi_status_t status = rsmi_wrapper(rsmi_dev_partition_id_get, processor_handle, &tmp_partition_id); + if (status == amdsmi_status_t::AMDSMI_STATUS_SUCCESS){ + *partition_id = tmp_partition_id; + } + + return status; +} + // TODO(bliu) : other xgmi related information amdsmi_status_t amdsmi_get_xgmi_info(amdsmi_processor_handle processor_handle, amdsmi_xgmi_info_t *info) { @@ -1303,8 +1312,8 @@ void amdsmi_free_name_value_pairs(void *p) { amdsmi_status_t amdsmi_get_power_cap_info(amdsmi_processor_handle processor_handle, - uint32_t sensor_ind, - amdsmi_power_cap_info_t *info) { + uint32_t sensor_ind, + amdsmi_power_cap_info_t *info) { AMDSMI_CHECK_INIT(); if (info == nullptr) diff --git a/tests/amd_smi_test/functional/sys_info_read.cc b/tests/amd_smi_test/functional/sys_info_read.cc index 6c4a4b7717..7c9b7fd6b7 100644 --- a/tests/amd_smi_test/functional/sys_info_read.cc +++ b/tests/amd_smi_test/functional/sys_info_read.cc @@ -60,7 +60,7 @@ TestSysInfoRead::TestSysInfoRead() : TestBase() { set_title("AMDSMI System Info Read Test"); set_description("This test verifies that system information such as the " "BDFID, AMDSMI version, VBIOS version, " - "vendor_id, unique_id, target_gfx_version, kfd_id, node_id, partition_id, etc. " + "vendor_id, unique_id, target_gfx_version, kfd_id, node_id, etc. " "can be read properly."); } @@ -153,7 +153,7 @@ void TestSysInfoRead::Run(void) { ASSERT_EQ(err, AMDSMI_STATUS_INVAL); - // vendor_id, unique_id, target_gfx_version, partition_id + // vendor_id, unique_id, target_gfx_version amdsmi_asic_info_t asic_info = {}; err = amdsmi_get_gpu_asic_info(processor_handles_[i], &asic_info); if (err == AMDSMI_STATUS_NOT_SUPPORTED) { @@ -161,7 +161,6 @@ void TestSysInfoRead::Run(void) { "\t**amdsmi_dev_unique_id() is not supported" " on this machine" << std::endl; EXPECT_EQ(asic_info.target_graphics_version, std::numeric_limits::max()); - EXPECT_EQ(asic_info.partition_id, std::numeric_limits::max()); // Verify api support checking functionality is working err = amdsmi_get_gpu_asic_info(processor_handles_[i], nullptr); ASSERT_EQ(err, AMDSMI_STATUS_NOT_SUPPORTED); @@ -172,12 +171,9 @@ void TestSysInfoRead::Run(void) { << asic_info.vendor_name << std::endl; std::cout << "\t**Target GFX version: " << std::dec << asic_info.target_graphics_version << "\n"; - std::cout << "\t**Partition ID: " << std::dec - << asic_info.partition_id << "\n"; } EXPECT_EQ(err, AMDSMI_STATUS_SUCCESS); EXPECT_NE(asic_info.target_graphics_version, std::numeric_limits::max()); - EXPECT_NE(asic_info.partition_id, std::numeric_limits::max()); // Verify api support checking functionality is working err = amdsmi_get_gpu_asic_info(processor_handles_[i], nullptr); ASSERT_EQ(err, AMDSMI_STATUS_INVAL); diff --git a/tests/python_unittest/integration_test.py b/tests/python_unittest/integration_test.py index 9e1f12bbe3..7c829e87bc 100755 --- a/tests/python_unittest/integration_test.py +++ b/tests/python_unittest/integration_test.py @@ -511,8 +511,6 @@ def walk_through(self): asic_info['oam_id'])) print(" asic_info['target_graphics_version'] is: {}\n".format( asic_info['target_graphics_version'])) - print(" asic_info['partition_id'] is: {}\n".format( - asic_info['partition_id'])) print("\n###Test amdsmi_get_gpu_kfd_info \n") kfd_info = amdsmi.amdsmi_get_gpu_kfd_info(processors[i]) print(" kfd_info['kfd_id'] is: {}\n".format( From 6a76f8a7050303704a967baada724848c3fd7998 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Fri, 20 Sep 2024 02:53:45 -0500 Subject: [PATCH 26/32] Bump Version to 24.6.5.0 Signed-off-by: Maisam Arif Change-Id: I93d6d397bd8d647f472017c28101dabe9ff8199b --- CMakeLists.txt | 2 +- amdsmi_cli/README.md | 2 +- docs/doxygen/Doxyfile | 2 +- docs/how-to/using-AMD-SMI-CLI-tool.md | 2 +- include/amd_smi/amdsmi.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f4a40ab1e..8958577b8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ find_program(GIT NAMES git) ## Setup the package version based on git tags. set(PKG_VERSION_GIT_TAG_PREFIX "amdsmi_pkg_ver") -get_package_version_number("24.6.4" ${PKG_VERSION_GIT_TAG_PREFIX} GIT) +get_package_version_number("24.6.5" ${PKG_VERSION_GIT_TAG_PREFIX} GIT) message("Package version: ${PKG_VERSION_STR}") set(${AMD_SMI_LIBS_TARGET}_VERSION_MAJOR "${CPACK_PACKAGE_VERSION_MAJOR}") set(${AMD_SMI_LIBS_TARGET}_VERSION_MINOR "${CPACK_PACKAGE_VERSION_MINOR}") diff --git a/amdsmi_cli/README.md b/amdsmi_cli/README.md index 1cc711df49..ab95062473 100644 --- a/amdsmi_cli/README.md +++ b/amdsmi_cli/README.md @@ -81,7 +81,7 @@ AMD-SMI reports the version and current platform detected when running the comma ~$ amd-smi usage: amd-smi [-h] ... -AMD System Management Interface | Version: 24.6.4.0 | ROCm version: 6.2.2 | Platform: Linux Baremetal +AMD System Management Interface | Version: 24.6.5.0 | ROCm version: 6.2.2 | Platform: Linux Baremetal options: -h, --help show this help message and exit diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index 03b9e18e86..a322c17a14 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -48,7 +48,7 @@ PROJECT_NAME = AMD SMI # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "24.6.4.0" +PROJECT_NUMBER = "24.6.5.0" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/docs/how-to/using-AMD-SMI-CLI-tool.md b/docs/how-to/using-AMD-SMI-CLI-tool.md index c3f17904ba..0ad610a81b 100644 --- a/docs/how-to/using-AMD-SMI-CLI-tool.md +++ b/docs/how-to/using-AMD-SMI-CLI-tool.md @@ -8,7 +8,7 @@ AMD-SMI reports the version and current platform detected when running the comma ~$ amd-smi usage: amd-smi [-h] ... -AMD System Management Interface | Version: 24.6.4.0 | ROCm version: 6.2.2 | Platform: Linux Baremetal +AMD System Management Interface | Version: 24.6.5.0 | ROCm version: 6.2.2 | Platform: Linux Baremetal options: -h, --help show this help message and exit diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 0c681ee62b..2625b07f40 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -157,7 +157,7 @@ typedef enum { #define AMDSMI_LIB_VERSION_MAJOR 6 //! Minor version should be updated for each API change, but without changing headers -#define AMDSMI_LIB_VERSION_MINOR 4 +#define AMDSMI_LIB_VERSION_MINOR 5 //! Release version should be set to 0 as default and can be updated by the PMs for each CSP point release #define AMDSMI_LIB_VERSION_RELEASE 0 From b40b405332abb46ffac3df1a3e4a6f667d555692 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Fri, 20 Sep 2024 03:01:03 -0500 Subject: [PATCH 27/32] [SWDEV-456049] & [SWDEV-442181] Fix early exiting loop while enumerating GPU stats Skip missing vram_str_path and sdma_str_path if sysfs files not created when passing some, but not all, GPUs to a docker image. Signed-off-by: Maisam Arif Change-Id: I83b7a62331672810688a94e4023b0ae740436e6d --- rocm_smi/src/rocm_smi_kfd.cc | 53 ++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/rocm_smi/src/rocm_smi_kfd.cc b/rocm_smi/src/rocm_smi_kfd.cc index 12bc946bd9..df421a3d9c 100644 --- a/rocm_smi/src/rocm_smi_kfd.cc +++ b/rocm_smi/src/rocm_smi_kfd.cc @@ -434,6 +434,13 @@ int GetProcessGPUs(uint32_t pid, std::unordered_set *gpu_set) { return 0; } +static int CheckValidProcessInfoData(const std::string& s, int sysfs_ret){ + if(sysfs_ret==0 && !is_number(s)){ + return EINVAL; + } + return sysfs_ret; +} + int GetProcessInfoForPID(uint32_t pid, rsmi_process_info_t *proc, std::unordered_set *gpu_set) { assert(proc != nullptr); @@ -483,30 +490,31 @@ int GetProcessInfoForPID(uint32_t pid, rsmi_process_info_t *proc, vram_str_path += std::to_string(gpu_id); err = ReadSysfsStr(vram_str_path, &tmp); - if (err) { - return err; - } + auto sysfs_data_errcode = CheckValidProcessInfoData(tmp, err); - if (!is_number(tmp)) { - return EINVAL; + // Report all errors, except ENOENT (2), which should be ignored + // and the proc->vram_usage should be unmodified + if (!(sysfs_data_errcode == 0 || sysfs_data_errcode == ENOENT)){ + return sysfs_data_errcode; + } + // Do not store any invalid values + else if (sysfs_data_errcode == 0) { + proc->vram_usage += std::stoull(tmp); } - - proc->vram_usage += std::stoull(tmp); std::string sdma_str_path = proc_str_path; sdma_str_path += "/sdma_"; sdma_str_path += std::to_string(gpu_id); err = ReadSysfsStr(sdma_str_path, &tmp); - if (err) { - return err; - } + sysfs_data_errcode = CheckValidProcessInfoData(tmp, err); - if (!is_number(tmp)) { - return EINVAL; + if (!(sysfs_data_errcode == 0 || sysfs_data_errcode == ENOENT)){ + return sysfs_data_errcode; + } + else if (sysfs_data_errcode == 0) { + proc->sdma_usage += std::stoull(tmp); } - - proc->sdma_usage += std::stoull(tmp); // Build the path and read from Sysfs file, info that // encodes Compute Unit usage by a process of interest @@ -516,17 +524,20 @@ int GetProcessInfoForPID(uint32_t pid, rsmi_process_info_t *proc, cu_occupancy_path += "/cu_occupancy"; err = ReadSysfsStr(cu_occupancy_path, &tmp); - if (err == 0) { - if (!is_number(tmp)) { - return EINVAL; - } + sysfs_data_errcode = CheckValidProcessInfoData(tmp, err); + + if (!(sysfs_data_errcode == 0 || sysfs_data_errcode == ENOENT)){ + return sysfs_data_errcode; + } + else if(sysfs_data_errcode==0){ // Update CU usage by the process proc->cu_occupancy += std::stoi(tmp); - // Collect count of compute units cu_count += kfd_node_map[gpu_id]->cu_count(); - } else { - // Some GFX revisions do not provide cu_occupancy debugfs method + } + else { + // Some GFX revisions do not provide cu_occupancy debugfs method + // which may cause ENOENT proc->cu_occupancy = CU_OCCUPANCY_INVALID; cu_count = 0; } From 66c98fd722727e36b56ee75e26d2dc9f26f7adcc Mon Sep 17 00:00:00 2001 From: muthusamy Date: Sun, 15 Sep 2024 11:01:28 +0000 Subject: [PATCH 28/32] amdsmi: Adding GO wrappers for amd_smi_exporter Adding GO wrappers as part of amdsmi library, so that amd_smi_exporter can fetch the cpu, gpu data directly from amdsmi library. Signed-off-by: muthusamy Change-Id: I8fba57c1d20d21758a1aed38ed2c00c9d5c9ecfa --- CMakeLists.txt | 3 + goamdsmi.go | 185 ++++++ goamdsmi_shim/CMakeLists.txt | 142 +++++ goamdsmi_shim/goamdsmi_shim64Config.in | 14 + goamdsmi_shim/smiwrapper/CMakeLists.txt | 21 + goamdsmi_shim/smiwrapper/amdsmi_go_shim.c | 734 ++++++++++++++++++++++ goamdsmi_shim/smiwrapper/amdsmi_go_shim.h | 574 +++++++++++++++++ goamdsmi_shim/smiwrapper/goamdsmi.h | 78 +++ 8 files changed, 1751 insertions(+) create mode 100644 goamdsmi.go create mode 100644 goamdsmi_shim/CMakeLists.txt create mode 100644 goamdsmi_shim/goamdsmi_shim64Config.in create mode 100644 goamdsmi_shim/smiwrapper/CMakeLists.txt create mode 100644 goamdsmi_shim/smiwrapper/amdsmi_go_shim.c create mode 100644 goamdsmi_shim/smiwrapper/amdsmi_go_shim.h create mode 100644 goamdsmi_shim/smiwrapper/goamdsmi.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 8958577b8b..b5c692cc7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -250,6 +250,9 @@ install( DESTINATION share/doc/${AMD_SMI} COMPONENT dev) +# Make for goamdsmi_shim library +add_subdirectory(goamdsmi_shim) + #Debian package specific variables set(CPACK_DEBIAN_PACKAGE_PROVIDES "amd-smi") set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "python3-argcomplete, libdrm-dev, python3-PyYAML") diff --git a/goamdsmi.go b/goamdsmi.go new file mode 100644 index 0000000000..4dffe3784c --- /dev/null +++ b/goamdsmi.go @@ -0,0 +1,185 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright (c) 2022, Advanced Micro Devices, Inc. + * All rights reserved. + * + * Developed by: + * + * AMD Research and AMD Software Development + * + * Advanced Micro Devices, Inc. + * + * www.amd.com + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sellcopies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * - The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * Except as contained in this notice, the name of the Advanced Micro Devices, + * Inc. shall not be used in advertising or otherwise to promote the sale, use + * or other dealings in this Software without prior written authorization from + * the Advanced Micro Devices, Inc. + * + */ + +package goamdsmi + +/* +#cgo CFLAGS: -Wall -I/opt/rocm/include +#cgo LDFLAGS: -L/opt/rocm/lib -L/opt/rocm/lib64 -lgoamdsmi_shim64 -Wl,--unresolved-symbols=ignore-in-object-files +#include +#include +*/ +import "C" + +//GPU ROCM or AMDSMI calls +func GO_gpu_init() (bool) { + return bool(C.goamdsmi_gpu_init()) +} + +func GO_gpu_shutdown() (bool) { + return bool(C.goamdsmi_gpu_shutdown()) +} + +func GO_gpu_num_monitor_devices() (uint) { + return uint(C.goamdsmi_gpu_num_monitor_devices()) +} + +func GO_gpu_dev_name_get(i int) (*C.char) { + return C.goamdsmi_gpu_dev_name_get(C.uint(i)) +} + +func GO_gpu_dev_id_get(i int) (C.uint16_t) { + return C.uint16_t(C.goamdsmi_gpu_dev_id_get(C.uint(i))) +} + +func GO_gpu_dev_pci_id_get(i int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_pci_id_get(C.uint(i)) +} + +func GO_gpu_dev_vbios_version_get(i int) (*C.char) { + return C.goamdsmi_gpu_dev_vbios_version_get(C.uint(i)) +} + +func GO_gpu_dev_vendor_name_get(i int) (*C.char) { + return C.goamdsmi_gpu_dev_vendor_name_get(C.uint(i)) +} + +func GO_gpu_dev_power_cap_get(i int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_power_cap_get(C.uint(i)) +} + +func GO_gpu_dev_power_get(i int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_power_get(C.uint(i)) +} + +func GO_gpu_dev_temp_metric_get(i int, sensor int, metric int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_temp_metric_get(C.uint(i), C.uint(sensor), C.uint(metric)) +} + +func GO_gpu_dev_perf_level_get(i int) (C.uint32_t) { + return C.goamdsmi_gpu_dev_perf_level_get(C.uint(i)) +} + +func GO_gpu_dev_overdrive_level_get(i int) (C.uint32_t) { + return C.goamdsmi_gpu_dev_perf_level_get(C.uint(i)) +} + +func GO_gpu_dev_mem_overdrive_level_get(i int) (C.uint32_t) { + return C.goamdsmi_gpu_dev_overdrive_level_get(C.uint(i)) +} + +func GO_gpu_dev_gpu_clk_freq_get_sclk(i int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_gpu_clk_freq_get_sclk(C.uint(i)) +} + +func GO_gpu_dev_gpu_clk_freq_get_mclk(i int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_gpu_clk_freq_get_mclk(C.uint(i)) +} + +func GO_gpu_od_volt_freq_range_min_get_sclk(i int) (C.uint64_t) { + return C.goamdsmi_gpu_od_volt_freq_range_min_get_sclk(C.uint(i)) +} + +func GO_gpu_od_volt_freq_range_min_get_mclk(i int) (C.uint64_t) { + return C.goamdsmi_gpu_od_volt_freq_range_min_get_mclk(C.uint(i)) +} + +func GO_gpu_od_volt_freq_range_max_get_sclk(i int) (C.uint64_t) { + return C.goamdsmi_gpu_od_volt_freq_range_max_get_sclk(C.uint(i)) +} + +func GO_gpu_od_volt_freq_range_max_get_mclk(i int) (C.uint64_t) { + return C.goamdsmi_gpu_od_volt_freq_range_max_get_mclk(C.uint(i)) +} + +func GO_gpu_dev_gpu_busy_percent_get(i int) (C.uint32_t) { + return C.goamdsmi_gpu_dev_gpu_busy_percent_get(C.uint(i)) +} + +func GO_gpu_dev_gpu_memory_busy_percent_get(i int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_gpu_memory_busy_percent_get(C.uint(i)) +} + +func GO_gpu_dev_gpu_memory_usage_get (i int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_gpu_memory_usage_get(C.uint(i)) +} + +func GO_gpu_dev_gpu_memory_total_get (i int) (C.uint64_t) { + return C.goamdsmi_gpu_dev_gpu_memory_total_get(C.uint(i)) +} + +//CPU ESMI or AMDSMI calls +func GO_cpu_init() (bool) { + return bool(C.goamdsmi_cpu_init()) +} + +func GO_cpu_number_of_sockets_get() (uint) { + return uint(C.goamdsmi_cpu_number_of_sockets_get()) +} + +func GO_cpu_number_of_threads_get() (uint) { + return uint(C.goamdsmi_cpu_number_of_threads_get()) +} + +func GO_cpu_threads_per_core_get() (uint) { + return uint(C.goamdsmi_cpu_threads_per_core_get()) +} + +func GO_cpu_core_energy_get(i int) (C.uint64_t) { + return C.goamdsmi_cpu_core_energy_get(C.uint(i)) +} + +func GO_cpu_core_boostlimit_get(i int) (C.uint32_t) { + return C.goamdsmi_cpu_core_boostlimit_get(C.uint(i)) +} + +func GO_cpu_socket_energy_get(i int) (C.uint64_t) { + return C.goamdsmi_cpu_socket_energy_get(C.uint(i)) +} + +func GO_cpu_socket_power_get(i int) (C.uint32_t) { + return C.goamdsmi_cpu_socket_power_get(C.uint(i)) +} + +func GO_cpu_socket_power_cap_get(i int) (C.uint32_t) { + return C.goamdsmi_cpu_socket_power_cap_get(C.uint(i)) +} + +func GO_cpu_prochot_status_get(i int) (C.uint32_t) { + return C.goamdsmi_cpu_prochot_status_get(C.uint(i)) +} diff --git a/goamdsmi_shim/CMakeLists.txt b/goamdsmi_shim/CMakeLists.txt new file mode 100644 index 0000000000..7a4a202bb0 --- /dev/null +++ b/goamdsmi_shim/CMakeLists.txt @@ -0,0 +1,142 @@ +# SPDX-License-Identifier: MIT +# Copyright (c) 2024, Advanced Micro Devices, Inc. + +# +# Minimum version of cmake required +# +cmake_minimum_required(VERSION 3.5.0) + +message("*******************************************************************") +message(" CMake AMD goamdsmi_shim Library ") +message("*******************************************************************") + +option(WITH_AMDSMI "Support unified cpu and gpu" ON) + +set(AMDSMI_DIR "" CACHE PATH "path to amdsmi installation") + +if(WITH_AMDSMI) +add_definitions(-DAMDSMI_BUILD) +add_definitions(-DENABLE_ESMI_LIB) +#include(deps/SetupAmdsmi.cmake) +endif() + +if(ENABLE_DEBUG_LEVEL) +add_definitions(-DENABLE_DEBUG_LEVEL=${ENABLE_DEBUG_LEVEL}) +message("**** Enabling Debug Level=${ENABLE_DEBUG_LEVEL} ****") +else() +add_definitions(-DENABLE_DEBUG_LEVEL=0) +endif() + +set(GOAMDSMI_SHIM "goamdsmi_shim") +set(GOAMDSMI_SHIM_LIB "goamdsmi") +set(GOAMDSMI_SHIM_COMPONENT "lib${GOAMDSMI_SHIM}") +set(GOAMDSMI_SHIM_TARGET "${GOAMDSMI_SHIM}64") + +# The following default version values should be updated as appropriate for +# ABI breaks (update MAJOR and MINOR), and ABI/API additions (update MINOR). +# Until ABI stabilizes VERSION_MAJOR will be 0. This should be over-ridden +# by git tags (through "git describe") when they are present. +set(VERSION_MAJOR 1) +set(VERSION_MINOR 0) +set(VERSION_PATCH 0) +set(VERSION_NUM_COMMIT 0) + +set(SO_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}") + +set(${GOAMDSMI_SHIM}_VERSION_MAJOR "${VERSION_MAJOR}") +set(${GOAMDSMI_SHIM}_VERSION_MINOR "${VERSION_MINOR}") +set(${GOAMDSMI_SHIM}_VERSION_PATCH "0") +set(${GOAMDSMI_SHIM}_VERSION_BUILD "0") +message("SOVERSION: ${SO_VERSION_STRING}") + +project(${GOAMDSMI_SHIM_TARGET}) + +# Create a configure file to get version info from within library +configure_file( + "${PROJECT_SOURCE_DIR}/${GOAMDSMI_SHIM_TARGET}Config.in" + "${PROJECT_SOURCE_DIR}/include/${GOAMDSMI_SHIM_TARGET}Config.h") + +if (NOT DEFINED CPACK_PACKAGE_VENDOR) + set(CPACK_PACKAGE_VENDOR "AMD") +endif() + +if (NOT DEFINED CPACK_PACKAGE_CONTACT) + set(CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc.") +endif() + +if (NOT DEFINED CPACK_PACKAGE_DESCRIPTION_SUMMARY) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY + "AMD CGO wrapper") +endif() + +if (NOT GOAMDSMI_SHIM_PACKAGE) + set(GOAMDSMI_SHIM_PACKAGE goamdsmi_shim_lib64) +endif() + +set(CPACK_PACKAGE_FILE_NAME "${GOAMDSMI_SHIM_PACKAGE}-${SO_VERSION_STRING}") +## Verbose output. +set(CMAKE_VERBOSE_MAKEFILE on) + +## Compiler flags +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fpic -fno-rtti -m64") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -std=c++11 ") +# Use this instead of above for 32 bit +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") + +if ("${CMAKE_BUILD_TYPE}" STREQUAL Release) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") +else () + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG") +endif () + +set(go_amd_smi_headers) + +set(go_amd_smi_sources) + +set(go_amd_smi_includes) + + +add_subdirectory(smiwrapper) +list(APPEND go_amd_smi_headers smiwrapper/goamdsmi.h ${go_amd_smi_headers}) +list(APPEND go_amd_smi_headers smiwrapper/amdsmi_go_shim.h ${go_amd_smi_headers}) +list(APPEND go_amd_smi_sources smiwrapper/amdsmi_go_shim.c) +list(APPEND go_amd_smi_includes ${CMAKE_CURRENT_SOURCE_DIR}/smiwrapper) + +add_library(${GOAMDSMI_SHIM_TARGET} SHARED + ${go_amd_smi_sources} + ${go_amd_smi_headers} + ${go_amd_smi_includes}) + +target_link_libraries(${GOAMDSMI_SHIM_TARGET} pthread rt m) + +if(WITH_AMDSMI) + target_link_libraries(${GOAMDSMI_SHIM_TARGET} amd_smi) + target_link_libraries(${GOAMDSMI_SHIM_TARGET} -L${AMDSMI_DIR}/lib) + target_link_libraries(${GOAMDSMI_SHIM_TARGET} -L${AMDSMI_DIR}/lib64) +endif() + +## Set the VERSION and SOVERSION values +set_property(TARGET ${GOAMDSMI_SHIM_TARGET} PROPERTY + SOVERSION "${VERSION_MAJOR}") +set_property(TARGET ${GOAMDSMI_SHIM_TARGET} PROPERTY + VERSION "${SO_VERSION_STRING}") + +## If the library is a release, strip the target library +if ("${CMAKE_BUILD_TYPE}" STREQUAL Release) + add_custom_command( + TARGET ${GOAMDSMI_SHIM_TARGET} + POST_BUILD COMMAND ${CMAKE_STRIP} lib${GOAMDSMI_SHIM_TARGET}.so) +endif () + +set(go_amd_smi_install_headers + smiwrapper/goamdsmi.h + smiwrapper/amdsmi_go_shim.h +) + +## Add the install directives for the runtime library. +install(TARGETS ${GOAMDSMI_SHIM_TARGET} + LIBRARY DESTINATION lib COMPONENT ${GOAMDSMI_SHIM_COMPONENT}) +install(FILES ${go_amd_smi_install_headers} + DESTINATION include) + +include_directories(${go_amd_smi_includes}) diff --git a/goamdsmi_shim/goamdsmi_shim64Config.in b/goamdsmi_shim/goamdsmi_shim64Config.in new file mode 100644 index 0000000000..b12a6f0b59 --- /dev/null +++ b/goamdsmi_shim/goamdsmi_shim64Config.in @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: MIT +# Copyright (c) 2024, Advanced Micro Devices, Inc. + +#ifndef INCLUDE_GOAMDSMI_SHIM64CONFIG_H_ +#define INCLUDE_GOAMDSMI_SHIM64CONFIG_H_ + +// This file is generated on build. + +#define goamdsmi_shim_VERSION_MAJOR @goamdsmi_shim_VERSION_MAJOR@ +#define goamdsmi_shim_VERSION_MINOR @goamdsmi_shim_VERSION_MINOR@ +#define goamdsmi_shim_VERSION_PATCH @goamdsmi_shim_VERSION_PATCH@ +#define goamdsmi_shim_VERSION_BUILD "@goamdsmi_shim_VERSION_BUILD@" + +#endif // INCLUDE_GOAMDSMI_SHIM_SMI64CONFIG_H_ diff --git a/goamdsmi_shim/smiwrapper/CMakeLists.txt b/goamdsmi_shim/smiwrapper/CMakeLists.txt new file mode 100644 index 0000000000..8274335abb --- /dev/null +++ b/goamdsmi_shim/smiwrapper/CMakeLists.txt @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: MIT +# Copyright (c) 2024, Advanced Micro Devices, Inc. + +set(go_amd_smi_headers + ${CMAKE_CURRENT_SOURCE_DIR}/goamdsmi.h + ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_go_shim.h + CACHE INTERNAL "") + +set(go_amd_smi_sources + ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_go_shim.c + CACHE INTERNAL "") + +include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${go_amd_smi_amdsmi_includes}) + +add_library(go_amd_smi_ OBJECT + ${go_amd_smi_sources} + ${go_amd_smi_headers}) + +### Shared libraries need PIC +set_property(TARGET ${go_amd_smi_} PROPERTY POSITION_INDEPENDENT_CODE 1) + diff --git a/goamdsmi_shim/smiwrapper/amdsmi_go_shim.c b/goamdsmi_shim/smiwrapper/amdsmi_go_shim.c new file mode 100644 index 0000000000..599b44a307 --- /dev/null +++ b/goamdsmi_shim/smiwrapper/amdsmi_go_shim.c @@ -0,0 +1,734 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright (c) 2024, Advanced Micro Devices, Inc. + * All rights reserved. + * + * Developed by: + * + * AMD Research and AMD Software Development + * + * Advanced Micro Devices, Inc. + * + * www.amd.com + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sellcopies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * - The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * Except as contained in this notice, the name of the Advanced Micro Devices, + * Inc. shall not be used in advertising or otherwise to promote the sale, use + * or other dealings in this Software without prior written authorization from + * the Advanced Micro Devices, Inc. + * + */ + +#include +#include +#include "amdsmi_go_shim.h" +#ifdef AMDSMI_BUILD +#include +#endif +#include +#define nullptr ((void*)0) + +#ifdef AMDSMI_BUILD +#define MAX_SOCKET_ACROSS_SYSTEM 4 +#define CPU_0 0 +#define GPU_SENSOR_0 0 +#define MAX_CPU_PER_SOCKET 4 +#define MAX_PHYSICALCORE_ACROSS_SYSTEM 384 +#define MAX_LOGICALCORE_ACROSS_SYSTEM 768 +#define MAX_GPU_DEVICE_ACROSS_SYSTEM 24 +#define MAX_GPU_POWER_FROM_DRIVER 0xFFFF + +#define AMDSMI_DRIVER_NAME "AMDSMI" +#define AMDSMI_LIB_FILE "/opt/rocm/lib/libamd_smi.so" +#define AMDSMI_LIB64_FILE "/opt/rocm/lib64/libamd_smi.so" + +#define AMDGPU_DRIVER_NAME "AMDGPUDriver" +#define AMDGPU_INITSTATE_FILE "/sys/module/amdgpu/initstate" + +#define AMDHSMP_DRIVER_NAME "AMDHSMPDriver" +#define AMDHSMP_INITSTATE_FILE "/sys/module/amd_hsmp/initstate" + +static uint32_t num_apuSockets = GOAMDSMI_VALUE_0; +static uint32_t num_cpuSockets = GOAMDSMI_VALUE_0; +static uint32_t num_gpuSockets = GOAMDSMI_VALUE_0; +static uint32_t cpuInitCompleted = false; +static uint32_t gpuInitCompleted = false; +static uint32_t apuInitCompleted = false; + +static uint32_t num_cpu_inAllSocket = GOAMDSMI_VALUE_0; +static uint32_t num_cpu_physicalCore_inAllSocket = GOAMDSMI_VALUE_0; +static uint32_t num_gpu_devices_inAllSocket = GOAMDSMI_VALUE_0; + +static amdsmi_socket_handle amdsmi_apusocket_handle_all_socket[MAX_SOCKET_ACROSS_SYSTEM+MAX_GPU_DEVICE_ACROSS_SYSTEM] = {0}; +static amdsmi_socket_handle amdsmi_cpusocket_handle_all_socket[MAX_SOCKET_ACROSS_SYSTEM] = {0}; +static amdsmi_socket_handle amdsmi_gpusocket_handle_all_socket[MAX_GPU_DEVICE_ACROSS_SYSTEM] = {0}; +static amdsmi_processor_handle amdsmi_processor_handle_all_cpu_across_socket[MAX_SOCKET_ACROSS_SYSTEM*MAX_CPU_PER_SOCKET] = {0}; +static amdsmi_processor_handle amdsmi_processor_handle_all_cpu_physicalCore_across_socket[MAX_PHYSICALCORE_ACROSS_SYSTEM] = {0}; +static amdsmi_processor_handle amdsmi_processor_handle_all_gpu_device_across_socket[MAX_GPU_DEVICE_ACROSS_SYSTEM] = {0}; + +goamdsmi_status_t is_file_present(const char* driver_name, const char* file_name) +{ + if(0 == access(file_name, F_OK)) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Success, %s found \"%s\" and returns:%d\n", driver_name, file_name, GOAMDSMI_STATUS_SUCCESS);} + return GOAMDSMI_STATUS_SUCCESS; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Status, %s not found, missing \"%s\" and returns:%d\n", driver_name, file_name, GOAMDSMI_STATUS_FAILURE);} + return GOAMDSMI_STATUS_FAILURE; +} + +goamdsmi_status_t go_shim_amdsmi_present() +{ + if((GOAMDSMI_STATUS_SUCCESS == is_file_present(AMDSMI_DRIVER_NAME, AMDSMI_LIB_FILE)) || (GOAMDSMI_STATUS_SUCCESS == is_file_present(AMDSMI_DRIVER_NAME, AMDSMI_LIB64_FILE))) + { + return GOAMDSMI_STATUS_SUCCESS; + } + return GOAMDSMI_STATUS_FAILURE; +} + +goamdsmi_status_t check_amdgpu_driver() +{ + return is_file_present(AMDGPU_DRIVER_NAME, AMDGPU_INITSTATE_FILE); +} + +goamdsmi_status_t check_hsmp_driver() +{ + return is_file_present(AMDHSMP_DRIVER_NAME, AMDHSMP_INITSTATE_FILE); +} + +goamdsmi_status_t go_shim_amdsmiapu_init(goamdsmi_Init_t goamdsmi_Init) +{ + if((GOAMDSMI_CPU_INIT == goamdsmi_Init) && (true == cpuInitCompleted)) + { + if((GOAMDSMI_VALUE_0 == num_cpuSockets)||(GOAMDSMI_VALUE_0 == num_cpu_inAllSocket)||(GOAMDSMI_VALUE_0 == num_cpu_physicalCore_inAllSocket)) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Failed, Returns previous enumurated AMDSMICPUInit:%d, CpuSocketCount:%d, CpuCount:%d, CpuPhysicalCoreCount:%d\n", GOAMDSMI_STATUS_FAILURE, num_cpuSockets, num_cpu_inAllSocket, num_cpu_physicalCore_inAllSocket);} + return GOAMDSMI_STATUS_FAILURE; + } + else + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Success, Returns previous enumurated AMDSMICPUInit:%d, CpuSocketCount:%d, CpuCount:%d, CpuPhysicalCoreCount:%d\n", GOAMDSMI_STATUS_SUCCESS, num_cpuSockets, num_cpu_inAllSocket, num_cpu_physicalCore_inAllSocket);} + return GOAMDSMI_STATUS_SUCCESS; + } + } + + if((GOAMDSMI_GPU_INIT == goamdsmi_Init) && (true == gpuInitCompleted)) + { + if((GOAMDSMI_VALUE_0 == num_gpuSockets)||(GOAMDSMI_VALUE_0 == num_gpu_devices_inAllSocket)) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Failed, Returns previous enumurated AMDSMIGPUInit:%d, GpuSocketCount:%d, GpuCount:%d\n", GOAMDSMI_STATUS_FAILURE, num_gpuSockets, num_gpu_devices_inAllSocket);} + return GOAMDSMI_STATUS_FAILURE; + } + else + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Success, Returns previous enumurated AMDSMIGPUInit:%d, GpuSocketCount:%d, GpuCount:%d\n", GOAMDSMI_STATUS_SUCCESS, num_gpuSockets, num_gpu_devices_inAllSocket);} + return GOAMDSMI_STATUS_SUCCESS; + } + } + +#if 0 + if(GOAMDSMI_STATUS_FAILURE == go_shim_amdsmi_present()) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Failed, AMDSMI not present in the System, missing \"%s\" (or) \"%s\"\n", AMDSMI_LIB_FILE, AMDSMI_LIB64_FILE);} + return GOAMDSMI_STATUS_FAILURE; + } +#endif + + if ((GOAMDSMI_STATUS_SUCCESS == check_amdgpu_driver()) && (GOAMDSMI_STATUS_SUCCESS == check_hsmp_driver())) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Status, Identified APU machine and going to enumurate APU\n");} + + if( (AMDSMI_STATUS_SUCCESS == amdsmi_init(AMDSMI_INIT_AMD_APUS)) && + (AMDSMI_STATUS_SUCCESS == amdsmi_get_socket_handles(&num_apuSockets, nullptr)) && + (AMDSMI_STATUS_SUCCESS == amdsmi_get_socket_handles(&num_apuSockets, &amdsmi_apusocket_handle_all_socket[0])) && + (GOAMDSMI_VALUE_0 != num_apuSockets)) + { + cpuInitCompleted = true; + gpuInitCompleted = true; + apuInitCompleted = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Success, Identified APU machine ApuNumSockets=%d\n",num_apuSockets);} + for(uint32_t socket_counter = 0; socket_counter < num_apuSockets; socket_counter++) + { + uint32_t num_cpu = GOAMDSMI_VALUE_0; + uint32_t num_cpu_physicalCores = GOAMDSMI_VALUE_0; + uint32_t num_gpu_devices = GOAMDSMI_VALUE_0; + + //CPU + processor_type_t cpu_processor_type = AMDSMI_PROCESSOR_TYPE_AMD_CPU; + processor_type_t cpu_core_processor_type = AMDSMI_PROCESSOR_TYPE_AMD_CPU_CORE; + if( (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_apusocket_handle_all_socket[socket_counter], cpu_processor_type, nullptr, &num_cpu)) && + (GOAMDSMI_VALUE_0 != num_cpu) && + (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_apusocket_handle_all_socket[socket_counter], cpu_processor_type, &amdsmi_processor_handle_all_cpu_across_socket[num_cpu_inAllSocket], &num_cpu))) + { + if( (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_apusocket_handle_all_socket[socket_counter], cpu_core_processor_type, nullptr, &num_cpu_physicalCores)) && + (GOAMDSMI_VALUE_0 != num_cpu_physicalCores) && + (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_apusocket_handle_all_socket[socket_counter], cpu_core_processor_type, &amdsmi_processor_handle_all_cpu_physicalCore_across_socket[num_cpu_physicalCore_inAllSocket], &num_cpu_physicalCores))) + { + num_cpu_physicalCore_inAllSocket = num_cpu_physicalCore_inAllSocket+num_cpu_physicalCores; + } + num_cpu_inAllSocket = num_cpu_inAllSocket+num_cpu; + num_cpuSockets = num_cpuSockets+1; + } + + //GPU + processor_type_t gpu_device_processor_type = AMDSMI_PROCESSOR_TYPE_AMD_GPU; + if( (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_apusocket_handle_all_socket[socket_counter], gpu_device_processor_type, nullptr, &num_gpu_devices)) && + (GOAMDSMI_VALUE_0 != num_gpu_devices) && + (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_apusocket_handle_all_socket[socket_counter], gpu_device_processor_type, &amdsmi_processor_handle_all_gpu_device_across_socket[num_gpu_devices_inAllSocket], &num_gpu_devices))) + { + num_gpu_devices_inAllSocket = num_gpu_devices_inAllSocket+num_gpu_devices; + num_gpuSockets = num_gpuSockets+1; + } + } + } + } + else if(GOAMDSMI_CPU_INIT == goamdsmi_Init) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Status, Going to enumurate only CPU\n");} + cpuInitCompleted = true; + + if (GOAMDSMI_STATUS_SUCCESS == check_hsmp_driver()) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Status, Identified CPU Driver and going to enumurate only CPU\n");} + + if( (AMDSMI_STATUS_SUCCESS != amdsmi_init(AMDSMI_INIT_AMD_CPUS)) || + (AMDSMI_STATUS_SUCCESS != amdsmi_get_socket_handles(&num_cpuSockets, nullptr)) || + (AMDSMI_STATUS_SUCCESS != amdsmi_get_socket_handles(&num_cpuSockets, &amdsmi_cpusocket_handle_all_socket[0])) || + (GOAMDSMI_VALUE_0 == num_cpuSockets)) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Failed, AMDSMICPUInit:0, CpuNumSockets=0\n");} + return GOAMDSMI_STATUS_FAILURE; + } + } + else + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_3)) {printf("AMDSMI, Status, Missing CPU Driver and not going to enumurate only CPU\n");} + } + //CPU + for(uint32_t cpu_socket_counter = 0; cpu_socket_counter < num_cpuSockets; cpu_socket_counter++) + { + uint32_t num_cpu = GOAMDSMI_VALUE_0; + uint32_t num_cpu_physicalCores = GOAMDSMI_VALUE_0; + + processor_type_t cpu_processor_type = AMDSMI_PROCESSOR_TYPE_AMD_CPU; + processor_type_t cpu_core_processor_type = AMDSMI_PROCESSOR_TYPE_AMD_CPU_CORE; + if( (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_cpusocket_handle_all_socket[cpu_socket_counter], cpu_processor_type, nullptr, &num_cpu)) && + (GOAMDSMI_VALUE_0 != num_cpu) && + (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_cpusocket_handle_all_socket[cpu_socket_counter], cpu_processor_type, &amdsmi_processor_handle_all_cpu_across_socket[num_cpu_inAllSocket], &num_cpu))) + { + if( (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_cpusocket_handle_all_socket[cpu_socket_counter], cpu_core_processor_type, nullptr, &num_cpu_physicalCores)) && + (GOAMDSMI_VALUE_0 != num_cpu_physicalCores) && + (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_cpusocket_handle_all_socket[cpu_socket_counter], cpu_core_processor_type, &amdsmi_processor_handle_all_cpu_physicalCore_across_socket[num_cpu_physicalCore_inAllSocket], &num_cpu_physicalCores))) + { + num_cpu_physicalCore_inAllSocket = num_cpu_physicalCore_inAllSocket+num_cpu_physicalCores; + } + num_cpu_inAllSocket = num_cpu_inAllSocket+num_cpu; + } + } + } + else if(GOAMDSMI_GPU_INIT == goamdsmi_Init) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Status, Going to enumurate only GPU\n");} + gpuInitCompleted = true; + + if (GOAMDSMI_STATUS_SUCCESS == check_amdgpu_driver()) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Status, Identified GPU Driver and going to enumurate only GPU\n");} + + if( (AMDSMI_STATUS_SUCCESS != amdsmi_init(AMDSMI_INIT_AMD_GPUS)) || + (AMDSMI_STATUS_SUCCESS != amdsmi_get_socket_handles(&num_gpuSockets, nullptr)) || + (AMDSMI_STATUS_SUCCESS != amdsmi_get_socket_handles(&num_gpuSockets, &amdsmi_gpusocket_handle_all_socket[0])) || + (GOAMDSMI_VALUE_0 == num_gpuSockets)) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Failed, AMDSMIGPUInit:0, GpuNumSockets=0\n");} + return GOAMDSMI_STATUS_FAILURE; + } + } + else + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_3)) {printf("AMDSMI, Status, Missing GPU Driver and not going to enumurate only GPU\n");} + } + + //GPU + for(uint32_t gpu_socket_counter = 0; gpu_socket_counter < num_gpuSockets; gpu_socket_counter++) + { + uint32_t num_gpu_devices = GOAMDSMI_VALUE_0; + + processor_type_t gpu_device_processor_type = AMDSMI_PROCESSOR_TYPE_AMD_GPU; + if( (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_gpusocket_handle_all_socket[gpu_socket_counter], gpu_device_processor_type, nullptr, &num_gpu_devices)) && + (GOAMDSMI_VALUE_0 != num_gpu_devices) && + (AMDSMI_STATUS_SUCCESS == amdsmi_get_processor_handles_by_type(amdsmi_gpusocket_handle_all_socket[gpu_socket_counter], gpu_device_processor_type, &amdsmi_processor_handle_all_gpu_device_across_socket[num_gpu_devices_inAllSocket], &num_gpu_devices))) + { + num_gpu_devices_inAllSocket = num_gpu_devices_inAllSocket+num_gpu_devices; + } + } + } + + //CPU + if((GOAMDSMI_CPU_INIT == goamdsmi_Init) && ((GOAMDSMI_VALUE_0 == num_cpuSockets)||(GOAMDSMI_VALUE_0 == num_cpu_inAllSocket)||(GOAMDSMI_VALUE_0 == num_cpu_physicalCore_inAllSocket))) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Failed, CPU Enumuration Failed AMDSMICPUInit:%d, CpuSocketCount:%d, CpuCount:%d, CpuPhysicalCoreCount:%d,\n", GOAMDSMI_STATUS_FAILURE, num_cpuSockets, num_cpu_inAllSocket, num_cpu_physicalCore_inAllSocket);} + return GOAMDSMI_STATUS_FAILURE; + } + + //GPU + if((GOAMDSMI_GPU_INIT == goamdsmi_Init) && ((GOAMDSMI_VALUE_0 == num_gpuSockets)||(GOAMDSMI_VALUE_0 == num_gpu_devices_inAllSocket))) + { + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Failed, GPU Enumuration Failed AMDSMIGPUInit:%d, GpuSocketCount:%d, GpuCount:%d\n", GOAMDSMI_STATUS_FAILURE, num_gpuSockets, num_gpu_devices_inAllSocket);} + return GOAMDSMI_STATUS_FAILURE; + } + + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) + { + if((GOAMDSMI_CPU_INIT == goamdsmi_Init) || apuInitCompleted) printf("AMDSMI, Status, AMDSMICPUInit:%d, CpuSocketCount:%d, CpuCount:%d, CpuPhysicalCoreCount:%d,\n", GOAMDSMI_STATUS_SUCCESS, num_cpuSockets, num_cpu_inAllSocket, num_cpu_physicalCore_inAllSocket); + if((GOAMDSMI_GPU_INIT == goamdsmi_Init) || apuInitCompleted) printf("AMDSMI, Status, AMDSMIGPUInit:%d, GpuSocketCount:%d, GpuCount:%d\n", GOAMDSMI_STATUS_SUCCESS, num_gpuSockets, num_gpu_devices_inAllSocket); + } + + return GOAMDSMI_STATUS_SUCCESS; +} +////////////////////////////////////////////////------------CPU------------//////////////////////////////////////////////// +bool goamdsmi_cpu_init() +{ + bool cpu_init_success = false; + if(GOAMDSMI_STATUS_SUCCESS == go_shim_amdsmiapu_init(GOAMDSMI_CPU_INIT)) + { + if((num_cpu_inAllSocket) && (num_cpu_physicalCore_inAllSocket)) cpu_init_success = true; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s, InitAMDSMICPUInit:%d, CpuSocketCount:%d, CpuCount:%d, CpuPhysicalCoreCount:%d,\n", cpu_init_success?"Success":"Failed", cpu_init_success?1:0, num_cpuSockets, num_cpu_inAllSocket, num_cpu_physicalCore_inAllSocket);} + return cpu_init_success; +} + +uint32_t goamdsmi_cpu_threads_per_core_get() +{ + bool readSuccess = false; + uint32_t threads_per_core_temp = GOAMDSMI_VALUE_0; + + if((AMDSMI_STATUS_SUCCESS == amdsmi_get_threads_per_core(&threads_per_core_temp))) readSuccess = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s, CpuThreadsPerCore:%lu\n", readSuccess?"Success":"Failed", (unsigned long)(threads_per_core_temp));} + + return threads_per_core_temp; +} + +uint32_t goamdsmi_cpu_number_of_threads_get() +{ + bool readSuccess = false; + uint32_t number_of_threads = GOAMDSMI_VALUE_0; + uint32_t num_threads_per_core = goamdsmi_cpu_threads_per_core_get(); + if(0 != num_threads_per_core) + { + readSuccess = true; + number_of_threads = num_cpu_physicalCore_inAllSocket*num_threads_per_core; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s, CpuNumThreads:%lu\n", readSuccess?"Success":"Failed", (unsigned long)(number_of_threads));} + return number_of_threads; +} + +uint32_t goamdsmi_cpu_number_of_sockets_get() +{ + uint32_t number_of_sockets = num_cpuSockets; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Success, CpuNumSockets:%lu\n", (unsigned long)(number_of_sockets));} + return number_of_sockets; +} + +uint64_t goamdsmi_cpu_core_energy_get(uint32_t thread_index) +{ + bool readSuccess = false; + uint64_t core_energy_temp = GOAMDSMI_UINT64_MAX; + uint32_t physicalCore_index = thread_index%num_cpu_physicalCore_inAllSocket; + + if (AMDSMI_STATUS_SUCCESS == amdsmi_get_cpu_core_energy(amdsmi_processor_handle_all_cpu_physicalCore_across_socket[physicalCore_index], &core_energy_temp)) readSuccess = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Thread:%d PC:%d, CpuCoreEnergy:%llu, CpuCoreEnergyJoules:%.6f, CpuCoreEnergyKJoules:%.9f\n", readSuccess?"Success":"Failed", thread_index, physicalCore_index, (unsigned long long)(core_energy_temp), ((double)(core_energy_temp))/1000000, ((double)(core_energy_temp))/1000000000);} + + return core_energy_temp; +} + +uint64_t goamdsmi_cpu_socket_energy_get(uint32_t socket_index) +{ + bool readSuccess = false; + uint64_t socket_energy_temp = GOAMDSMI_UINT64_MAX; + if ((AMDSMI_STATUS_SUCCESS == amdsmi_get_cpu_socket_energy(amdsmi_processor_handle_all_cpu_across_socket[socket_index], &socket_energy_temp))) readSuccess = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Socket:%d, CpuSocketEnergy:%llu, CpuSocketEnergyJoules:%.6f, CpuSocketEnergyKJoules:%.9f\n", readSuccess?"Success":"Failed", socket_index, (unsigned long long)(socket_energy_temp), ((double)(socket_energy_temp))/1000000, ((double)(socket_energy_temp))/1000000000);} + + return socket_energy_temp; +} + +uint32_t goamdsmi_cpu_prochot_status_get(uint32_t socket_index) +{ + bool readSuccess = false; + uint32_t prochot_temp = GOAMDSMI_UINT32_MAX; + if ((AMDSMI_STATUS_SUCCESS == amdsmi_get_cpu_prochot_status(amdsmi_processor_handle_all_cpu_across_socket[socket_index], &prochot_temp))) readSuccess = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Socket:%d, CpuProchotStatus:%lu\n", readSuccess?"Success":"Failed", socket_index, (unsigned long)(prochot_temp));} + + return prochot_temp; +} + +uint32_t goamdsmi_cpu_socket_power_get(uint32_t socket_index) +{ + bool readSuccess = false; + uint32_t socket_power_temp = GOAMDSMI_UINT32_MAX; + if ((AMDSMI_STATUS_SUCCESS == amdsmi_get_cpu_socket_power(amdsmi_processor_handle_all_cpu_across_socket[socket_index], &socket_power_temp))) readSuccess = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Socket:%d, CpuSocketPower:%lu, CpuSocketPowerWatt:%.3f\n", readSuccess?"Success":"Failed", socket_index, (unsigned long)(socket_power_temp), ((double)(socket_power_temp))/1000);} + + return socket_power_temp; +} + +uint32_t goamdsmi_cpu_socket_power_cap_get(uint32_t socket_index) +{ + bool readSuccess = false; + uint32_t socket_power_cap_temp = GOAMDSMI_UINT32_MAX; + if ((AMDSMI_STATUS_SUCCESS == amdsmi_get_cpu_socket_power_cap(amdsmi_processor_handle_all_cpu_across_socket[socket_index], &socket_power_cap_temp))) readSuccess = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Socket:%d, CpuSocketPowerCap:%lu, CpuSocketPowerCapWatt:%.3f\n", readSuccess?"Success":"Failed", socket_index, (unsigned long)(socket_power_cap_temp), ((double)(socket_power_cap_temp))/1000);} + + return socket_power_cap_temp; +} + +uint32_t goamdsmi_cpu_core_boostlimit_get(uint32_t thread_index) +{ + bool readSuccess = false; + uint32_t core_boostlimit_temp = GOAMDSMI_UINT32_MAX; + uint32_t physicalCore_index = thread_index%num_cpu_physicalCore_inAllSocket; + + if (AMDSMI_STATUS_SUCCESS == amdsmi_get_cpu_core_boostlimit(amdsmi_processor_handle_all_cpu_physicalCore_across_socket[physicalCore_index], &core_boostlimit_temp)) readSuccess = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Thread:%d PC:%d, CpuCoreBoostLimit:%lu\n", readSuccess?"Success":"Failed", thread_index, physicalCore_index, (unsigned long)(core_boostlimit_temp));} + + return core_boostlimit_temp; +} + +////////////////////////////////////////////////------------GPU------------//////////////////////////////////////////////// +bool goamdsmi_gpu_init() +{ + bool gpu_init_success = false; + if(GOAMDSMI_STATUS_SUCCESS == go_shim_amdsmiapu_init(GOAMDSMI_GPU_INIT)) + { + if((num_gpu_devices_inAllSocket)) gpu_init_success = true; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s, InitAMDSMIGPUInit:%d, GpuSocketCount:%d, GpuCount:%d\n", gpu_init_success?"Success":"Failed", gpu_init_success?1:0, num_gpuSockets, num_gpu_devices_inAllSocket);} + + return gpu_init_success; +} + +bool goamdsmi_gpu_shutdown() +{ + return false; +} + +uint32_t goamdsmi_gpu_num_monitor_devices() +{ + uint32_t gpu_num_monitor_devices = num_gpu_devices_inAllSocket; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Success, GpuNumMonitorDevices:%lu\n", (unsigned long)(gpu_num_monitor_devices));} + return gpu_num_monitor_devices; +} + +char* goamdsmi_gpu_dev_name_get(uint32_t dv_ind) +{ + uint32_t len = 256; + char* dev_name = (char*)malloc(sizeof(char)*len);dev_name[0] = '\0'; + strcpy(dev_name, GOAMDSMI_STRING_NA); + + return dev_name; +} + +uint16_t goamdsmi_gpu_dev_id_get(uint32_t dv_ind) +{ + bool readSuccess = false; + uint16_t gpu_dev_id_temp = GOAMDSMI_UINT16_MAX; + + if((dv_ind < num_gpu_devices_inAllSocket) && (AMDSMI_STATUS_SUCCESS == amdsmi_get_gpu_id(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], &gpu_dev_id_temp))) readSuccess = true; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d, GpuDevId:%d\n", readSuccess?"Success":"Failed", dv_ind, gpu_dev_id_temp);} + + return gpu_dev_id_temp; +} + +uint64_t goamdsmi_gpu_dev_pci_id_get(uint32_t dv_ind) +{ + uint64_t gpu_pci_id = GOAMDSMI_UINT64_MAX; + return gpu_pci_id; +} + +char* goamdsmi_gpu_dev_vendor_name_get(uint32_t dv_ind) +{ + uint32_t len = 256; + char* gpu_vendor_name = (char*)malloc(sizeof(char)*len);gpu_vendor_name[0] = '\0'; + strcpy(gpu_vendor_name, GOAMDSMI_STRING_NA); + + return gpu_vendor_name; +} + +char* goamdsmi_gpu_dev_vbios_version_get(uint32_t dv_ind) +{ + uint32_t len = 256; + char* vbios_version = (char*)malloc(sizeof(char)*len);vbios_version[0] = '\0'; + strcpy(vbios_version, GOAMDSMI_STRING_NA); + + return vbios_version; +} + +uint64_t goamdsmi_gpu_dev_power_cap_get(uint32_t dv_ind) +{ + bool readSuccess = false; + uint64_t gpu_power_cap = GOAMDSMI_UINT64_MAX; + amdsmi_power_cap_info_t amdsmi_power_cap_info_temp = {0}; + + if((dv_ind < num_gpu_devices_inAllSocket) && (AMDSMI_STATUS_SUCCESS == amdsmi_get_power_cap_info(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], GPU_SENSOR_0, &amdsmi_power_cap_info_temp))) + { + readSuccess = true; + gpu_power_cap = amdsmi_power_cap_info_temp.power_cap; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d, GpuPowerCap:%llu, GpuPowerCapInWatt:%.6f\n", readSuccess?"Success":"Failed", dv_ind, (unsigned long long)(gpu_power_cap), ((double)(gpu_power_cap))/1000000);} + return gpu_power_cap; +} + +uint64_t goamdsmi_gpu_dev_power_get(uint32_t dv_ind) +{ + uint64_t gpu_power = GOAMDSMI_UINT64_MAX; + uint64_t gpu_power_temp = GOAMDSMI_UINT64_MAX; + amdsmi_power_info_t amdsmi_power_info_temp = {0}; + + if((dv_ind < num_gpu_devices_inAllSocket) && (AMDSMI_STATUS_SUCCESS == amdsmi_get_power_info(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], &amdsmi_power_info_temp))) + { + gpu_power_temp = amdsmi_power_info_temp.average_socket_power; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Success for Gpu:%d, GpuPowerAverage:%llu, GpuPowerAverageinWatt:%.6f\n", dv_ind, (unsigned long long)(gpu_power_temp), ((double)(gpu_power_temp))/1000000);} + + if(MAX_GPU_POWER_FROM_DRIVER == gpu_power_temp) + { + gpu_power_temp = amdsmi_power_info_temp.current_socket_power; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Success for Gpu:%d, GpuPowerCurrent:%llu, GpuPowerCurrentinWatt:%.6f\n", dv_ind, (unsigned long long)(gpu_power_temp), ((double)(gpu_power_temp))/1000000);} + } + gpu_power = gpu_power_temp; + gpu_power = (gpu_power)*1000000;//to maintain backward compatibity with old ROCM SMI + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Success for Gpu:%d, GpuPower:%llu, GpuPowerinWatt:%.6f\n", dv_ind, (unsigned long long)(gpu_power), ((double)(gpu_power))/1000000);} + return gpu_power; + } + + amdsmi_gpu_metrics_t metrics = {0}; + if((dv_ind < num_gpu_devices_inAllSocket) && (AMDSMI_STATUS_SUCCESS == amdsmi_get_gpu_metrics_info(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], &metrics))) + { + gpu_power_temp = metrics.average_socket_power; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Success for Gpu:%d, GpuPowerAverageFromMetrics:%llu, GpuPowerAverageFromMetricsinWatt:%.6f\n", dv_ind, (unsigned long long)gpu_power_temp, ((double)(gpu_power_temp))/1000000);} + + if(MAX_GPU_POWER_FROM_DRIVER == gpu_power_temp) + { + gpu_power_temp = metrics.current_socket_power; + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_2)) {printf("AMDSMI, Success for Gpu:%d, GpuPowerCurrentFromMetrics:%llu, GpuPowerCurrentFromMetricsinWatt:%.6f\n", dv_ind, (unsigned long long)gpu_power_temp, ((double)(gpu_power_temp))/1000000);} + } + gpu_power = gpu_power_temp; + gpu_power = (gpu_power)*1000000;//to maintain backward compatibity with old ROCM SMI + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Success for Gpu:%d, GpuPowerFromMetrics:%llu, GpuPowerFromMetricsinWatt:%.6f\n", dv_ind, (unsigned long long)(gpu_power), ((double)(gpu_power))/1000000);} + return gpu_power; + } + + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, Failed for Gpu:%d, GpuPower:%llu, GpuPowerinWatt:%.6f\n", dv_ind, (unsigned long long)(gpu_power), ((double)(gpu_power))/1000000);} + return gpu_power; +} + +uint64_t goamdsmi_gpu_dev_temp_metric_get(uint32_t dv_ind, uint32_t sensor, uint32_t metric) +{ + bool readSuccess = false; + uint64_t gpu_temperature = GOAMDSMI_UINT64_MAX; + uint64_t gpu_temperature_temp = GOAMDSMI_UINT64_MAX; + + if((dv_ind < num_gpu_devices_inAllSocket) && (AMDSMI_STATUS_SUCCESS == amdsmi_get_temp_metric(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], sensor, metric, &gpu_temperature_temp))) + { + readSuccess = true; + gpu_temperature = gpu_temperature_temp; + gpu_temperature = (gpu_temperature)*1000;//to maintain backward compatibity with old ROCM SMI + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d Sensor:%d Metric:%d, GpuTemperature:%llu, GpuTemperatureInDegree:%.3f\n", readSuccess?"Success":"Failed", dv_ind, sensor, metric, (unsigned long long)(gpu_temperature), ((double)(gpu_temperature))/1000);} + } + return gpu_temperature; +} + +uint32_t goamdsmi_gpu_dev_overdrive_level_get(uint32_t dv_ind) +{ + uint32_t gpu_overdrive_level = GOAMDSMI_UINT32_MAX; + return gpu_overdrive_level; +} + +uint32_t goamdsmi_gpu_dev_mem_overdrive_level_get(uint32_t dv_ind) +{ + uint32_t gpu_mem_overdrive_level = GOAMDSMI_UINT32_MAX; + return gpu_mem_overdrive_level; +} + +uint32_t goamdsmi_gpu_dev_perf_level_get(uint32_t dv_ind) +{ + uint32_t gpu_perf = GOAMDSMI_UINT32_MAX; + return gpu_perf; +} + +uint64_t goamdsmi_gpu_dev_gpu_clk_freq_get_sclk(uint32_t dv_ind) +{ + bool readSuccess = false; + uint64_t gpu_sclk_freq = GOAMDSMI_UINT64_MAX; + amdsmi_frequencies_t freq = {0}; + + if((dv_ind < num_gpu_devices_inAllSocket) && (AMDSMI_STATUS_SUCCESS == amdsmi_get_clk_freq(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], AMDSMI_CLK_TYPE_SYS, &freq))) + { + readSuccess = true; + gpu_sclk_freq = freq.frequency[freq.current]; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d, GpuSclkFreq:%llu, GpuSclkFreqMhz:%.6f\n", readSuccess?"Success":"Failed", dv_ind, (unsigned long long)(gpu_sclk_freq), ((double)(gpu_sclk_freq))/1000000);} + + return gpu_sclk_freq; +} + +uint64_t goamdsmi_gpu_dev_gpu_clk_freq_get_mclk(uint32_t dv_ind) +{ + bool readSuccess = false; + uint64_t gpu_memclk_freq = GOAMDSMI_UINT64_MAX; + amdsmi_frequencies_t freq = {0}; + + if((dv_ind < num_gpu_devices_inAllSocket) && (AMDSMI_STATUS_SUCCESS == amdsmi_get_clk_freq(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], AMDSMI_CLK_TYPE_MEM, &freq))) + { + readSuccess = true; + gpu_memclk_freq = freq.frequency[freq.current]; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d, GpuMclkFreq:%llu, GpuMclkFreqMhz:%.6f\n", readSuccess?"Success":"Failed", dv_ind, (unsigned long long)(gpu_memclk_freq), ((double)(gpu_memclk_freq))/1000000);} + + return gpu_memclk_freq; +} + +uint64_t goamdsmi_gpu_od_volt_freq_range_min_get_sclk(uint32_t dv_ind) +{ + uint64_t gpu_min_sclk = GOAMDSMI_UINT64_MAX; + return gpu_min_sclk; +} + +uint64_t goamdsmi_gpu_od_volt_freq_range_min_get_mclk(uint32_t dv_ind) +{ + uint64_t gpu_min_memclk = GOAMDSMI_UINT64_MAX; + return gpu_min_memclk; +} + +uint64_t goamdsmi_gpu_od_volt_freq_range_max_get_sclk(uint32_t dv_ind) +{ + uint64_t gpu_max_sclk = GOAMDSMI_UINT64_MAX; + return gpu_max_sclk; +} + +uint64_t goamdsmi_gpu_od_volt_freq_range_max_get_mclk(uint32_t dv_ind) +{ + uint64_t gpu_max_memclk = GOAMDSMI_UINT64_MAX; + return gpu_max_memclk; +} + +uint32_t goamdsmi_gpu_dev_gpu_busy_percent_get(uint32_t dv_ind) +{ + bool readSuccess = false; + uint32_t gpu_busy_percent = GOAMDSMI_UINT32_MAX; + amdsmi_engine_usage_t amdsmi_engine_usage_temp; + + if(AMDSMI_STATUS_SUCCESS == amdsmi_get_gpu_activity(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], &amdsmi_engine_usage_temp)) + { + readSuccess = true; + gpu_busy_percent = amdsmi_engine_usage_temp.gfx_activity; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d, GpuBusyPerc:%lu\n", readSuccess?"Success":"Failed", dv_ind, (unsigned long)(gpu_busy_percent));} + + return gpu_busy_percent; +} + +uint64_t goamdsmi_gpu_dev_gpu_memory_busy_percent_get(uint32_t dv_ind) +{ + bool readSuccess = false; + uint64_t gpu_memory_busy_percent = GOAMDSMI_UINT64_MAX; + uint64_t gpu_memory_usage_temp = GOAMDSMI_UINT64_MAX; + uint64_t gpu_memory_total_temp = GOAMDSMI_UINT64_MAX; + + if( (AMDSMI_STATUS_SUCCESS == amdsmi_get_gpu_memory_usage(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], AMDSMI_MEM_TYPE_VRAM, &gpu_memory_usage_temp))&& + (AMDSMI_STATUS_SUCCESS == amdsmi_get_gpu_memory_total(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], AMDSMI_MEM_TYPE_VRAM, &gpu_memory_total_temp))) + { + readSuccess = true; + gpu_memory_busy_percent = (uint64_t)(gpu_memory_usage_temp*100)/gpu_memory_total_temp; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d, GpuMemoryBusyPerc:%llu\n", readSuccess?"Success":"Failed", dv_ind, (unsigned long long)(gpu_memory_busy_percent));} + + return gpu_memory_busy_percent; +} + +uint64_t goamdsmi_gpu_dev_gpu_memory_usage_get(uint32_t dv_ind) +{ + bool readSuccess = false; + uint64_t gpu_memory_usage = GOAMDSMI_UINT64_MAX; + uint64_t gpu_memory_usage_temp = GOAMDSMI_UINT64_MAX; + + if(AMDSMI_STATUS_SUCCESS == amdsmi_get_gpu_memory_usage(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], AMDSMI_MEM_TYPE_VRAM, &gpu_memory_usage_temp)) + { + readSuccess = true; + gpu_memory_usage = (uint64_t)gpu_memory_usage_temp; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d, GpuMemoryUsage:%llu\n", readSuccess?"Success":"Failed", dv_ind, (unsigned long long)(gpu_memory_usage));} + + return gpu_memory_usage; +} + +uint64_t goamdsmi_gpu_dev_gpu_memory_total_get(uint32_t dv_ind) +{ + bool readSuccess = false; + uint64_t gpu_memory_total = GOAMDSMI_UINT64_MAX; + uint64_t gpu_memory_total_temp = GOAMDSMI_UINT64_MAX; + + if(AMDSMI_STATUS_SUCCESS == amdsmi_get_gpu_memory_total(amdsmi_processor_handle_all_gpu_device_across_socket[dv_ind], AMDSMI_MEM_TYPE_VRAM, &gpu_memory_total_temp)) + { + readSuccess = true; + gpu_memory_total = (uint64_t)gpu_memory_total_temp; + } + if (enable_debug_level(GOAMDSMI_DEBUG_LEVEL_1)) {printf("AMDSMI, %s for Gpu:%d, GpuMemoryTotal:%llu\n", readSuccess?"Success":"Failed", dv_ind, (unsigned long long)(gpu_memory_total));} + + return gpu_memory_total; +} +#else +////////////////////////////////////////////////------------CPU------------//////////////////////////////////////////////// +bool goamdsmi_cpu_init() {return false;} +uint32_t goamdsmi_cpu_threads_per_core_get() {return GOAMDSMI_VALUE_0;} +uint32_t goamdsmi_cpu_number_of_threads_get() {return GOAMDSMI_VALUE_0;} +uint32_t goamdsmi_cpu_number_of_sockets_get() {return GOAMDSMI_VALUE_0;} +uint64_t goamdsmi_cpu_core_energy_get(uint32_t thread_index) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_cpu_socket_energy_get(uint32_t socket_index) {return GOAMDSMI_UINT64_MAX;} +uint32_t goamdsmi_cpu_prochot_status_get(uint32_t socket_index) {return GOAMDSMI_UINT32_MAX;} +uint32_t goamdsmi_cpu_socket_power_get(uint32_t socket_index) {return GOAMDSMI_UINT32_MAX;} +uint32_t goamdsmi_cpu_socket_power_cap_get(uint32_t socket_index) {return GOAMDSMI_UINT32_MAX;} +uint32_t goamdsmi_cpu_core_boostlimit_get(uint32_t thread_index) {return GOAMDSMI_UINT32_MAX;} + +////////////////////////////////////////////////------------GPU------------//////////////////////////////////////////////// +bool goamdsmi_gpu_init() {return false;} +bool goamdsmi_gpu_shutdown() {return false;} +uint32_t goamdsmi_gpu_num_monitor_devices() {return GOAMDSMI_VALUE_0;} +char* goamdsmi_gpu_dev_name_get(uint32_t dv_ind) {return NULL;} +uint16_t goamdsmi_gpu_dev_id_get(uint32_t dv_ind) {return GOAMDSMI_UINT16_MAX;} +uint64_t goamdsmi_gpu_dev_pci_id_get(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +char* goamdsmi_gpu_dev_vendor_name_get(uint32_t dv_ind) {return NULL;} +char* goamdsmi_gpu_dev_vbios_version_get(uint32_t dv_ind) {return NULL;} +uint64_t goamdsmi_gpu_dev_power_cap_get(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_dev_power_get(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_dev_temp_metric_get(uint32_t dv_ind, uint32_t sensor, uint32_t metric) {return GOAMDSMI_UINT64_MAX;} +uint32_t goamdsmi_gpu_dev_overdrive_level_get(uint32_t dv_ind) {return GOAMDSMI_UINT32_MAX;} +uint32_t goamdsmi_gpu_dev_mem_overdrive_level_get(uint32_t dv_ind) {return GOAMDSMI_UINT32_MAX;} +uint32_t goamdsmi_gpu_dev_perf_level_get(uint32_t dv_ind) {return GOAMDSMI_UINT32_MAX;} +uint64_t goamdsmi_gpu_dev_gpu_clk_freq_get_sclk(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_dev_gpu_clk_freq_get_mclk(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_od_volt_freq_range_min_get_sclk(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_od_volt_freq_range_min_get_mclk(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_od_volt_freq_range_max_get_sclk(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_od_volt_freq_range_max_get_mclk(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint32_t goamdsmi_gpu_dev_gpu_busy_percent_get(uint32_t dv_ind) {return GOAMDSMI_UINT32_MAX;} +uint64_t goamdsmi_gpu_dev_gpu_memory_busy_percent_get(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_dev_gpu_memory_usage_get(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +uint64_t goamdsmi_gpu_dev_gpu_memory_total_get(uint32_t dv_ind) {return GOAMDSMI_UINT64_MAX;} +#endif diff --git a/goamdsmi_shim/smiwrapper/amdsmi_go_shim.h b/goamdsmi_shim/smiwrapper/amdsmi_go_shim.h new file mode 100644 index 0000000000..14457d1a95 --- /dev/null +++ b/goamdsmi_shim/smiwrapper/amdsmi_go_shim.h @@ -0,0 +1,574 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright (c) 2024, Advanced Micro Devices, Inc. + * All rights reserved. + * + * Developed by: + * + * AMD Research and AMD Software Development + * + * Advanced Micro Devices, Inc. + * + * www.amd.com + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sellcopies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * - The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * Except as contained in this notice, the name of the Advanced Micro Devices, + * Inc. shall not be used in advertising or otherwise to promote the sale, use + * or other dealings in this Software without prior written authorization from + * the Advanced Micro Devices, Inc. + * + */ + +#include "goamdsmi.h" +////////////////////////////////////////////////------------CPU------------//////////////////////////////////////////////// +/** + * @brief Go language stub to initialize the AMDSMI library + * + * @retval ::bool value of true upon success + * @retval false is returned upon failure. + * + */ +bool goamdsmi_cpu_init(); + +/** + * @brief Go language stub to get the core energy for a given core + * + * @details Given a core index @p num, this function will call the + * esmi_core_energy_get() function to update the @p penergy in micro Joules. + * This value is then passed as a uint64_t val to the Go routine that called it. + * + * @param[in] num is the core index + * + * @retval ::uint64_t value of the penergy in micro Joules. + * @retval zero is returned upon failure. + * + */ +uint64_t goamdsmi_cpu_core_energy_get(uint32_t num); + +/** + * @brief Go language stub to get the socket energy for a given socket + * + * @details Given a socket index @p socket_idx, this function will call the + * esmi_socket_energy_get() function to get the socket energy counter of an + * online cpu in that socket. This value is then passed as a uint64_t val to + * the Go routine that called it. + * + * @param[in] socket_idx is the socket index + * + * @retval ::uint64_t value of the socket energy counter + * @retval zero is returned upon failure. + * + */ +uint64_t goamdsmi_cpu_socket_energy_get(uint32_t socket_idx); + +/** + * @brief Go language stub to get normalized status of + * the processor's PROCHOT status. + * 1 - PROCHOT active, 0 - PROCHOT inactive + * + * @details Given a socket index @p socket_idx and this function will get + * PROCHOT at @p prochot. + * + * @param[in] socket_idx a socket index + * + * @retval ::uint32_t value of the prochot status + * @retval -1 is returned upon failure or if status is inactive. + * + */ +uint32_t goamdsmi_cpu_prochot_status_get(uint32_t socket_idx); + +/** + * @brief Go language stub to get the instantaneous power + * consumption of the provided socket. + * + * @details Given a socket index @p sock_ind this function will + * get the current power consumption (in milliwatts). + * + * @param[in] sock_ind a socket index + * + * @retval ::uint32_t value of the socket power + * @retval -1 is returned upon failure. + * + */ +uint32_t goamdsmi_cpu_socket_power_get(uint32_t sock_ind); + +/** + * @brief Go language stub to get the current power cap value + * for a given socket. + * + * @details This function will return the valid power cap @p pcap for a given + * socket @p sock_ind, this value will be used by the system to limit + * the power usage (in milliwatts). + * + * @param[in] sock_ind a socket index + * + * @retval ::uint32_t value of the socket power cap + * @retval -1 is returned upon failure. + * + */ +uint32_t goamdsmi_cpu_socket_power_cap_get(uint32_t sock_ind); + +/** + * @brief Go language stub to get the boostlimit value for a given core + * + * @details This function will return the core's current boost limit + * @p boostlimit for a particular @p socket + * + * @param[in] socket a socket index + * + * @retval ::uint32_t value of the boostlimit + * @retval -1 is returned upon failure.. + * + */ +uint32_t goamdsmi_cpu_core_boostlimit_get(uint32_t socket); + +/** + * @brief Go stub to get the number of threads per core in the system + * + * @retval ::Number of threads per core + * @retval Zero is returned upon failure. + */ +uint32_t goamdsmi_cpu_threads_per_core_get(); + +/** + * @brief Go stub to get the number of threads available in the system + * + * @retval ::Number of threads + * @retval Zero is returned upon failure. + */ +uint32_t goamdsmi_cpu_number_of_threads_get(); + +/** + * @brief Go stub to get the total number of processor sockets + * available in the system + * + * @retval ::Number of threads per core + * @retval Zero is returned upon failure. + */ +uint32_t goamdsmi_cpu_threads_per_core_get(); + +/** + * @brief Go stub to get the number of threads available in the system + * + * @retval ::Number of threads + * @retval Zero is returned upon failure. + */ +uint32_t goamdsmi_cpu_number_of_threads_get(); + +/** + * @brief Go stub to get the total number of processor sockets + * available in the system + * + * @retval ::uint32_t value of the socket number + * @retval Zero is returned upon failure. + */ +uint32_t goamdsmi_cpu_number_of_sockets_get(); + +////////////////////////////////////////////////------------GPU------------//////////////////////////////////////////////// +/** + * @brief Go language stub to initialize the ROCm-SMI library + * + * @retval ::bool value of true upon success + * @retval false is returned upon failure. + * + */ +bool goamdsmi_gpu_init(); + +/** + * @brief Go language stub to shut down the ROCm-SMI library + * and do necessary clean up + * + * @retval ::bool value of true upon success + * @retval false is returned upon failure. + * + */ +bool goamdsmi_gpu_shutdown(); + +/** + * @brief Go language stub to get the number of GPU devices + * + * @details This function will call the rsmi_num_monitor_devices() + * function to return the number of GPU devices to be monitored. + * This value is then passed as a uint val to the Go routine that + * called it. + * + * @retval ::uint32_t value of num GPUs + * @retval zero is returned upon failure. + * + */ +uint32_t goamdsmi_gpu_num_monitor_devices(); + +/** + * @brief Go language stub to get the gpu device name string + * + * @details This function will call the rsmi_dev_name_get() + * function to write the gpu device name string (up to len characters) + * for device dv_ind and return a char pointer. This value is then + * passed as char * to the Go routine that called it. The caller of this + * function must free the allocated buffer for the device name. + * + * @param[in] ::uint32_t device index + * + * @retval ::char* VBIOS identifier + * @retval NA is returned upon failure. + * + */ +char* goamdsmi_gpu_dev_name_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU device id + * + * @details This function will call the rsmi_dev_id_get() + * function to return the GPU device id. This value is then + * passed as a uint16_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint16_t value of num GPUs + * @retval -1 is returned upon failure. + * + */ +uint16_t goamdsmi_gpu_dev_id_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU unique pci id + * + * @details This function will call the rsmi_dev_pci_id_get() + * function to return the unique PCI device identifier + * associated for a device. This value is then passed as + * a uint64_t val to the Go routine that called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint64_t value of pci id + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_pci_id_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the VBIOS identifier string + * + * @details This function will call the rsmi_dev_vbios_ver_get() + * function to write the VBIOS char array (up to len characters) + * for device dv_ind and return a char pointer. This value is then + * passed as char pointer to the Go routine that called it. The caller + * of this funcion must free the allocated buffer for the vbios + * identifier + * + * @param[in] ::uint32_t device index + * @param[in] ::char* vbios buffer of length + * + * @retval ::char* VBIOS identifier + * @retval NA is returned upon failure + * + */ +char* goamdsmi_gpu_dev_vbios_version_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the vendor + * + * @details This function will call the rsmi_dev_vendor_name_get() + * function to write the name of the vendor char array (up to len + * characters) for a device dv_ind and return a char pointer. This + * value is then passed as a char pointer to the Go routine that + * called it. The caller of this funcion must free the allocated + * buffer for the vbios identifier + * + * @param[in] ::uint32_t device index + * + * @retval ::char* vendor name + * @retval NA is returned upon failure. + * + */ +char* goamdsmi_gpu_dev_vendor_name_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU power cap + * + * @details This function will call the rsmi_dev_power_cap_get() + * function to return the gpu power cap. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint64_t GPU power cap + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_power_cap_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU power + * + * @details This function will call the rsmi_dev_power_get() + * function to return the gpu power. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint64_t GPU power + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_power_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU current temperature + * + * @details This function will call the rsmi_dev_temp_metric_get() + * function to return the gpu current temperature. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index, uint32_t sensor, uint32_t metric + * + * @retval ::uint64_t GPU current temperature + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_temp_metric_get(uint32_t dv_ind, uint32_t sensor, uint32_t metric); + +/** + * @brief Go language stub to get the overdrive level of the device + * + * @details This function will call the rsmi_dev_overdrive_level_get() + * function to return the overdrive percentage. This value is then + * passed as a uint32_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint32_t overdrive level + * @retval -1 is returned upon failure. + * + */ +uint32_t goamdsmi_gpu_dev_overdrive_level_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the memory overdrive level of the device + * + * @details This function will call the rsmi_dev_mem_overdrive_level_get() + * function to return the memory overdrive percentage. This value is then + * passed as a uint32_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint32_t memory overdrive level + * @retval -1 is returned upon failure. + * + */ +uint32_t goamdsmi_gpu_dev_mem_overdrive_level_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the performance level of the device + * + * @details This function will call the rsmi_dev_perf_level_get() + * function to return the rsmi_dev_perf_level_t. This value is then + * passed as a uint32_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint32_t performance level (rsmi_dev_perf_level_t) + * @retval -1 is returned upon failure. + * + */ +uint32_t goamdsmi_gpu_dev_perf_level_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU SCLK limit + * + * @details This function will call the rsmi_dev_gpu_clk_freq_get() + * function to return the gpu SCLK Limit. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index, flag, ptr to rsmi_frequencies_t + * + * @retval ::uint64_t GPU SCLK Limit + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_gpu_clk_freq_get_sclk(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU MCLK limit + * + * @details This function will call the rsmi_dev_gpu_clk_freq_get() + * function to return the gpu MCLK Limit. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index, flag, ptr to rsmi_frequencies_t + * + * @retval ::uint64_t GPU MCLK Limit + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_gpu_clk_freq_get_mclk(uint32_t dv_ind); + +/** + * @brief Go language stub to get the minimum supported SCLK frequency + * + * @details This function will call the rsmi_od_volt_freq_data_get() + * function to return the minium supported SCLK frequency. + * This value is then passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint64_t mimimum supported sclk frequency + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_od_volt_freq_range_min_get_sclk(uint32_t dv_ind); + +/** + * @brief Go language stub to get the minimum supported MCLK frequency + * + * @details This function will call the rsmi_od_volt_freq_data_get() + * function to return the minium supported MCLK frequency. + * This value is then passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint64_t mimimum supported mclk sfrequency + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_od_volt_freq_range_min_get_mclk(uint32_t dv_ind); + +/** + * @brief Go language stub to get the maximum supported SCLK frequency + * + * @details This function will call the rsmi_od_volt_freq_data_get() + * function to return the maxium supported SCLK frequency. + * This value is then passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint64_t maximum supported sclk frequency + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_od_volt_freq_range_max_get_sclk(uint32_t dv_ind); + +/** + * @brief Go language stub to get the maximum supported MCLK frequency + * + * @details This function will call the rsmi_od_volt_freq_data_get() + * function to return the maxium supported MCLK frequency. + * This value is then passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index + * + * @retval ::uint64_t maximum supported mclk sfrequency + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_od_volt_freq_range_max_get_mclk(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU Activity + * + * @details This function will call the rsmi_dev_gpu_activity_get() + * function to return the current GPU use. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index, flag, ptr to rsmi_frequencies_t + * + * @retval ::uint32_t GPU Activity use + * @retval -1 is returned upon failure. + * + */ +uint32_t goamdsmi_gpu_dev_gpu_busy_percent_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU Memory Use percent + * + * @details This function will call the rsmi_dev_memory_busy_percent_get() + * function to return the current device memory use percent. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index, flag, ptr to rsmi_frequencies_t + * + * @retval ::uint32_t GPU Activity use + * @retval -1 is returned upon failure. + * + */ +uint32_t goamdsmi_gpu_dev_gpu_busy_percent_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU Memory Use percent + * + * @details This function will call the rsmi_dev_memory_busy_percent_get() + * function to return the current device memory use percent. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index, flag, ptr to rsmi_frequencies_t + * + * @retval ::uint64_t GPU memory use percent + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_gpu_memory_busy_percent_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the GPU Memory Usage + * + * @details This function will call the rsmi_dev_memory_usage_get() + * function to return the amount of memory currently being used. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index, flag, ptr to rsmi_frequencies_t + * + * @retval ::uint64_t GPU memory usage + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_gpu_memory_usage_get(uint32_t dv_ind); + +/** + * @brief Go language stub to get the Total amount of GPU Memory + * + * @details This function will call the rsmi_dev_memory_total_get() + * function to return the total amount of memory. This value is then + * passed as a uint64_t val to the Go routine that + * called it. + * + * @param[in] ::uint32_t device index, flag, ptr to rsmi_frequencies_t + * + * @retval ::uint64_t Total GPU memory + * @retval -1 is returned upon failure. + * + */ +uint64_t goamdsmi_gpu_dev_gpu_memory_total_get(uint32_t dv_ind); diff --git a/goamdsmi_shim/smiwrapper/goamdsmi.h b/goamdsmi_shim/smiwrapper/goamdsmi.h new file mode 100644 index 0000000000..cad497285c --- /dev/null +++ b/goamdsmi_shim/smiwrapper/goamdsmi.h @@ -0,0 +1,78 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright (c) 2024, Advanced Micro Devices, Inc. + * All rights reserved. + * + * Developed by: + * + * AMD Research and AMD Software Development + * + * Advanced Micro Devices, Inc. + * + * www.amd.com + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sellcopies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * - The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * Except as contained in this notice, the name of the Advanced Micro Devices, + * Inc. shall not be used in advertising or otherwise to promote the sale, use + * or other dealings in this Software without prior written authorization from + * the Advanced Micro Devices, Inc. + * + */ + +#ifndef GO_AMD_SMI_H_ +#define GO_AMD_SMI_H_ + +#include +#include + +#define GOAMDSMI_VALUE_0 0 +#define GOAMDSMI_UINT16_MAX 0xFFFF +#define GOAMDSMI_UINT32_MAX 0xFFFFFFFF +#define GOAMDSMI_UINT64_MAX 0xFFFFFFFFFFFFFFFF +#define GOAMDSMI_STRING_NA "NA" + +/** + * @brief Go language stub to initialize the Debug Level prints + * -DENABLE_DEBUG_LEVEL=1 (or) -DENABLE_DEBUG_LEVEL= must be passed at cmake time + * + * @retval ::bool value of true upon enabling logs + * @retval false is returned upon if user does not want to enable logs. + * + */ +#define enable_debug_level(debug_level) ((ENABLE_DEBUG_LEVEL >= debug_level)?true:false) + +typedef enum { + GOAMDSMI_STATUS_SUCCESS = 0x0, //!< Operation successful + GOAMDSMI_STATUS_FAILURE = 0x1, //!< Operation failed +} goamdsmi_status_t; + +typedef enum { + GOAMDSMI_CPU_INIT = 0x0, //!< CPU Init + GOAMDSMI_GPU_INIT = 0x1, //!< GPU Init +} goamdsmi_Init_t; + +typedef enum { + GOAMDSMI_DEBUG_LEVEL_0 = 0x0, //!< Debug Level as 0 + GOAMDSMI_DEBUG_LEVEL_1 = 0x1, //!< Debug Level as 1 + GOAMDSMI_DEBUG_LEVEL_2 = 0x2, //!< Debug Level as 2 + GOAMDSMI_DEBUG_LEVEL_3 = 0x3, //!< Debug Level as 3 +} goamdsmi_Enable_Debug_Level_t; + +#endif From 9924574cbed1370df8841fdaf31617217d0151c8 Mon Sep 17 00:00:00 2001 From: Dmitrii Galantsev Date: Fri, 20 Sep 2024 14:17:20 -0400 Subject: [PATCH 29/32] Revert "[SWDEV-482058] Updated Packaging for offline installs" Revert submission 1125402 Reason for revert: Packaging a tar archive of 3rd party sources Reverted Changes: I8908451c0:[SWDEV-482058] Updated Packaging for offline insta... I764c8bf01:[SWDEV-469278] Lowered PyYAML post install script ... Change-Id: Ib32fa5b9351b1cfc2a8d453e744c0d00209359eb --- CHANGELOG.md | 2 -- DEBIAN/postinst.in | 45 +++++++++++++++++------------ DEBIAN/prerm.in | 6 +--- RPM/post.in | 47 ++++++++++++++++++------------- RPM/preun.in | 6 +--- amdsmi_cli/CMakeLists.txt | 3 -- amdsmi_cli/amdsmi_logger.py | 10 +++---- amdsmi_cli/amdsmi_offline.tar.gz | Bin 939752 -> 0 bytes 8 files changed, 62 insertions(+), 57 deletions(-) delete mode 100644 amdsmi_cli/amdsmi_offline.tar.gz diff --git a/CHANGELOG.md b/CHANGELOG.md index 1135bd1838..18c9e0abf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -287,8 +287,6 @@ GPU: 1 ### Resolved issues -- **Improved Offline install process & lowered dependency for PyYAML**. - - **Fixed CPX not showing total number of logical GPUs**. - Updates were made to `amdsmi_init()` and `amdsmi_get_gpu_bdf_id(..)`. In order to display all logical devices, we needed a way to provide order to GPU's enumerated. This was done by adding a partition_id within the BDF optional pci_id bits. diff --git a/DEBIAN/postinst.in b/DEBIAN/postinst.in index 8ecd91db0c..97ea7a7518 100755 --- a/DEBIAN/postinst.in +++ b/DEBIAN/postinst.in @@ -159,24 +159,6 @@ do_install_amdsmi_python_lib() { fi unset pip_version - # Install setuptools wheel (offline install) - echo "Checking for amdsmi_offline.tar.gz..." - offline_packages_tar_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/amdsmi_offline.tar.gz - - if [ -z "$offline_packages_tar_path" ]; then - echo "Error: amdsmi_offline.tar.gz not found. Not installing amdsmi offline packages..." - else - echo "Extracting amdsmi_offline.tar.gz..." - offline_packages_target_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/ - tar -xzvf $offline_packages_tar_path -C $offline_packages_target_path - offline_packages_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/offline_packages - echo "Installing/Upgrading amdsmi offline packages..." - python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links="$offline_packages_path" setuptools - unset offline_packages_path - unset offline_packages_target_path - fi - unset offline_packages_tar_path - # Check PyYAML dependency, typically should not execute pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') if [[ "$pyyaml_version" -lt 3 ]]; then @@ -185,6 +167,33 @@ do_install_amdsmi_python_lib() { fi unset pyyaml_version +# Install setuptools wheel (offline install) +# Function to find the tarball + find_tarball() { + find / -name "amdsmi_offline.tar.gz" 2>/dev/null | head -n 1 + } + + # Locate the tarball + tarball_path=$(find_tarball) + + if [ -z "$tarball_path" ]; then + echo "Error: amdsmi_offline.tar.gz not found." + exit 1 + fi + + # Extract directory from tarball path + base_dir=$(dirname "$tarball_path") + + # Navigate to the directory containing the tarball + cd "$base_dir" || exit + + # Unpack the tarball + tar -xzvf amdsmi_offline.tar.gz + + # Install setuptools offline (if needed) + cd offline_packages || exit + python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links=. setuptools + # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation diff --git a/DEBIAN/prerm.in b/DEBIAN/prerm.in index 88573f33d3..3decc72093 100755 --- a/DEBIAN/prerm.in +++ b/DEBIAN/prerm.in @@ -13,13 +13,9 @@ rm_ldconfig() { rm_leftovers() { # remove pyc files generated by python + rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/__pycache__" rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi/__pycache__" - # remove CLI folder packages folder - if test -e "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli*"; then - rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli*" - fi - # remove build and egg files rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi.egg-info" rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/build" diff --git a/RPM/post.in b/RPM/post.in index 94d3921481..d98316b4b8 100755 --- a/RPM/post.in +++ b/RPM/post.in @@ -158,25 +158,7 @@ do_install_amdsmi_python_lib() { fi unset pip_version - # Install setuptools wheel (offline install) - echo "Checking for amdsmi_offline.tar.gz..." - offline_packages_tar_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/amdsmi_offline.tar.gz - - if [ -z "$offline_packages_tar_path" ]; then - echo "Error: amdsmi_offline.tar.gz not found. Not installing amdsmi offline packages..." - else - echo "Extracting amdsmi_offline.tar.gz..." - offline_packages_target_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/ - tar -xzvf $offline_packages_tar_path -C $offline_packages_target_path - offline_packages_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/offline_packages - echo "Installing/Upgrading amdsmi offline packages..." - python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links="$offline_packages_path" setuptools - unset offline_packages_path - unset offline_packages_target_path - fi - unset offline_packages_tar_path - - # Check PyYAML dependency, typically should not execute + # Check PyYAML dependency local pyyaml_version pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') if [[ "$pyyaml_version" -lt 3 ]]; then @@ -185,6 +167,33 @@ do_install_amdsmi_python_lib() { fi unset pyyaml_version +# Install setuptools wheel (offline install) +# Function to find the tarball + find_tarball() { + find / -name "amdsmi_offline.tar.gz" 2>/dev/null | head -n 1 + } + + # Locate the tarball + tarball_path=$(find_tarball) + + if [ -z "$tarball_path" ]; then + echo "Error: amdsmi_offline.tar.gz not found." + exit 1 + fi + + # Extract directory from tarball path + base_dir=$(dirname "$tarball_path") + + # Navigate to the directory containing the tarball + cd "$base_dir" || exit + + # Unpack the tarball + tar -xzvf amdsmi_offline.tar.gz + + # Install setuptools offline (if needed) + cd offline_packages || exit + python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links=. setuptools + # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation diff --git a/RPM/preun.in b/RPM/preun.in index fbfde6b5af..43e58c93f3 100755 --- a/RPM/preun.in +++ b/RPM/preun.in @@ -2,13 +2,9 @@ rm_leftovers() { # remove pyc files generated by python + rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/__pycache__" rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi/__pycache__" - # remove CLI folder packages folder - if test -e "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli*"; then - rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli*" - fi - # remove build and egg files rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi.egg-info" rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/build" diff --git a/amdsmi_cli/CMakeLists.txt b/amdsmi_cli/CMakeLists.txt index 6fdd442321..d0cba22c50 100644 --- a/amdsmi_cli/CMakeLists.txt +++ b/amdsmi_cli/CMakeLists.txt @@ -24,7 +24,6 @@ add_custom_command( ${PY_PACKAGE_DIR}/amdsmi_cli_exceptions.py ${PY_PACKAGE_DIR}/rocm_version.py ${PY_PACKAGE_DIR}/BDF.py - ${PY_PACKAGE_DIR}/amdsmi_offline.tar.gz ${PY_PACKAGE_DIR}/README.md ${PY_PACKAGE_DIR}/Release_Notes.md DEPENDS amdsmi_cli @@ -39,7 +38,6 @@ add_custom_command( COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_cli_exceptions.py ${PY_PACKAGE_DIR}/ COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/rocm_version.py ${PY_PACKAGE_DIR}/ COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/BDF.py ${PY_PACKAGE_DIR}/ - COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_offline.tar.gz ${PY_PACKAGE_DIR}/ COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${PY_PACKAGE_DIR}/ COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/Release_Notes.md ${PY_PACKAGE_DIR}/) @@ -58,7 +56,6 @@ add_custom_target( ${PY_PACKAGE_DIR}/amdsmi_cli_exceptions.py ${PY_PACKAGE_DIR}/rocm_version.py ${PY_PACKAGE_DIR}/BDF.py - ${PY_PACKAGE_DIR}/amdsmi_offline.tar.gz ${PY_PACKAGE_DIR}/README.md ${PY_PACKAGE_DIR}/Release_Notes.md) diff --git a/amdsmi_cli/amdsmi_logger.py b/amdsmi_cli/amdsmi_logger.py index 8234f99eac..6fb6e5a327 100644 --- a/amdsmi_cli/amdsmi_logger.py +++ b/amdsmi_cli/amdsmi_logger.py @@ -37,7 +37,7 @@ import amdsmi_cli_exceptions class CustomDumper(yaml.Dumper): def represent_dict_preserve_order(self, data): return self.represent_dict(data.items()) -def has_sort_keys_option(): # to check if sort_keys is available +def has_sort_keys_option(): # to check if sort_keys is available return 'sort_keys' in inspect.signature(yaml.dump).parameters class AMDSMILogger(): @@ -212,14 +212,14 @@ class AMDSMILogger(): json_string = json.dumps(capitalized_json, indent=4) - if has_sort_keys_option(): + if has_sort_keys_option(): yaml_data = yaml.safe_load(json_string) - yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) - else: + yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) + else: CustomDumper.add_representer(dict, CustomDumper.represent_dict_preserve_order) yaml_data = yaml.safe_load(json_string) yaml_output = yaml.dump(yaml_data, Dumper=CustomDumper, allow_unicode=True, default_flow_style=False) - + # Remove a key line if it is a spacer yaml_output = yaml_output.replace("AMDSMI_SPACING_REMOVAL:\n", "") yaml_output = yaml_output.replace("'", "") # Remove '' diff --git a/amdsmi_cli/amdsmi_offline.tar.gz b/amdsmi_cli/amdsmi_offline.tar.gz deleted file mode 100644 index 9484090fd4800ea390c15d99b7fbbbc68356d318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 939752 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 z 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%0A|a6vEzq(zuGrK)5LVgK=k7hXk$rqQSv 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

VvE_X##)!Pl4# zBsvv_VZU%qV{uZ7FCGmCjn4{O!J+Zfr4@2$phz+<1a2TGRc}H=B!hacpKs|>5Vi!0 zSL=BecIE1(UInYc+upy1=>`a=maCFb1wUqk74F-mFMw}~u`4bA)@Xp)ZtkXLeOiGL zNdPZE(7*NATU`nhQeW=Q)%`&rNmHduK?{(CExhvOi4g=NmdC;vShblo)`=92{2{2p zz$}$1Iz*KbxRD(OINQ{Pj>uY*;8~QD*TZP>?R=%gTPm)y${CV5)lDP*bRl zVHYu@937^S6$9!_Td@_LKcuRIHbx-*KW+8YI@E;mc1_SWe&Nvgtf>8Qmk)Dm)}}TG z_r6CZaT^OGFmaqX`rp(wT2S5Rp?>H!ZdgvZ}0n5qXUXRlLd!VSzW5a#1?mVMJ)4>a8;f|s$Kx<734WXIBkDbfcsFtLC{KztJA0lc=)CX{X-#TL`6T^wf0Jyl|1zJ=j z4x>wSyqX2NWgIV&E*oQM*XDa{J8RZSrcCxwFOum-b7uyCRAl4fQoqoSTxr$WE%XWy z3aJs^Bmox#+iFtQ7d8*7G$ab*zk;K7f-HPvp_~U~*48r5P1fffb{Zds~JLEh$~>8y8I+;P1a z1i-FaOB$+)uYv&VNj+$D#l7^BEGNmN(m7-H0F|*{NqY;k^$0&6k&cc8R(`rL6wA&nuikf(+z(2 zqwYuJ!byXC#D(AkP#7qBP=FV}b1|R|H~~9Mn6;b6Q3>G3O$l=U3_Kwgs5OaKyq8Vh zl}{9pvKxvZ{$p_za|vA|lyZ)t%%{&+nUxKKg7wKKP;Z`FI-@ueYVWSHU=D?(uY;vpY?I zwJ15f5hJJ`XI{OZm{scK8GZ1TVa&m23rN{SblOS%5tnd5Vw0-z^LYFrwmpjygLXs4 zD&92Og*sJ2_%rIZVB!x5-2wtmGpOB2{Y4#;x!(iPl8<|0A@)bk;|H4zhs3;egtLL6 zF*ax76}#Y+IC=!d!V%p=>xWj9OoNfI%YHz@j8{wwZjC7?R znOr`X&-*$2OwQ!^e9J!1V^95pt40cJ_sk|!43sc!G}r4%{ZREIg$fPI?8b1aOpfUfFJQ0+YQya z0_6fq)sU=fWXs&-rrALfJPt6PtbXjDnK9;z>ZX%qO{BzYGN50=Q_mTPB4s{~V(DT(Yc?F=kh|jodqV6|mrLF?PCc4DTzsBQ7Hl@tBo* z{lsAc#bzKrG6tD^k90S3@LPN6vMYf%8U1_h;fbA`;5eqc-w8mRf0m@~y&uYYx2K?I zA#j9ko|~MMP4*G;m9|`rz?DC0Cn_$oUY&`xZk7qrTfV;k45t{J5n`o&XGot&AVSEQ zWfDcoJC&F;&ZlN29xNvB0y-Kji=nnD?i2@!*HLDpRAlT#vTXCyT7k)vBBp?v6MW<1 zZMPS4Ce_*93(zSW;UEPEf7L1h&8}< ztdT}OpK($&+tWHI0+t(z-XH3WqzJAX?inM>0L4|<~*tVH8D8Y~CVB62|z;K`_g zFyhfCQJyVl&*RW8YHEWgesV+pX~jV9HgHZx!eZo~#i$~e<~U}N=T0j?<<}$BCQe;| z4{*aJ+avxXYY!pqa{dZJxfmF1sI%vQS1oYg1JrVF)XK0d3*0bd(r82|-?L!4Dqa>c zH@F%eN6l5=L#|mhblA=Tu=zY1u==av1069plB_|cihO+A#*b|gn` z*ktgF!7$eBXubhKpQd2|cav{JI}Q4{yF5;&YLOWslUeh|)CLR^8k;4|9*&xXSSzQcG$*y6o^`!nZen5cOt{+J zLN8GVEkAljWbk6i6DzTV(Xgs>N}*(v?U;ENU`u@|}5$Zgu11aA!Ua~N$oc+1Xn zh#hAfcN&K)aGEU!Mx@Y~%CV`T--5JFk1OzGGHIRA`U#Z`NkuFOv&>1R>)>ZccSA8u zy9&F8^u*gwnI?7Gg@P6~GW5S5}T@iheG zoM(+JkLWu9Wm-o-NbMgcX~ zFKYVE@!+I+HU&inW69^M{tmn7Mz9PRD+FKzWMH4$LR0o`#ds&+_u z2?IT_Ro2~S*G;u~a$vV^Ir4Oa1DYuh|IwSh@%k!=T!FnU^PKpnqQw(ptg1R~kwLD`vF`4#GGG zW@jYwfX%jQcw#vLCoII?-A(KyZ6Mp97}_hw3lVP0 z6^U85FO43iFx5~DQUTB5DB+_iVKksvruw1-A4v}VA}Kx?QvU?EL+;nF*AK8SJ?DKE z2lj(@Ib__J<6>5JYg#IYr3r4<`}Oo}_GW!&}=#oiqpE=!WJS*ZFA7cRz&g zBg3R4)2~3LSai=W?n3SijWsp__d<7|dXx~1S4m@p!3{!WC`p&3w@L<&aI z0;$}xWd{d!Z!RC)vu2o~6qYGRkLL&|$WoJK!3DdwM4#h26jzes5NPH`jAUVCy zC4=K`4jp7b0qm6evkNeO@KugY1pTU40D~W&2)tb=JMuq=N!v3y^1UhN&oMC-WGGZb zR(3bAPIv>0hHvqnPZzSh(Uq9LZzsi?KQc3KKYUFF1lqX#Ip1Vslh3&$Ir-7$N7K-Z zbwjDIx5LTt4~UeW%Xq}b)g4A2q6aX{EZM1(Uj;vxTT+)D2D#Cr91dDPKFx{7g2y$){u4h;JbECqa zFhgn5fh5B9+=WXZF6aKRc0LXgA>=0qRP>YPZc3_%r~2u*GH2KIWt;a~`vf?XIOkq> zF;s1q1N#jd=maL-$5-ige4zUBr%148e?=PVpJrl0q3H{q~44WF(ynf-)>Eyw^v{>cY*i>pwB9$vL)-YV(7s?uYJ4V$ju4@ z8g*{o40i*0lI1CFvgM#HrhBi0gNfXk^#+F3N<^Dp@rkI;tPj7g&`j4=mQ~PQ|E_Un zDvjsWR~VdL?8?vg$wdz<^kUC5cY^KPZ9M`c$?JzXgW*0~6oT`r{L3j~N~{nLL=FKk zWY{OVex0=6ENQGH>g;qtqrNeg+jUjCG2`N5|0&%GS><15iqarxaTddwsL*T23RWeH z4kmTnfhJ&@=kLl-L;W*^8%Z=ecbBCPv$2|b{!!P~r%}cqe3>6)X`7CKH52NXO91ZU zNNJ)H(vqJYL|FWu(ek?L_LAMt7%2Koq|oOqNl_>M`$-_32$Tr3EHQd&$PU;VX(G~S zAwh%}w^*ET)%bPcq8cuSP(lOS*4o;807y$M;*EA|Rn&G}9MAyMU>>7T5Qlez1)si{Kt?5S#=SEQ zYi)ZN3A%-!TBCW>_!SakD!x+w;R(zb=y|T!b;Gfccl$G;-;QK_Gt% z$Yt9=Ym;7u$IKj^DRJ>jAc@gy*tMP{*Oi@AOo8IulAU(vj$uB?6s!zK3ieEPJ*%iBq$~_SRE*ClVDumi>SJ<;)%>RLdvldaRTpN_Id=^Ud%u<@5}n2P zG6m?EzTP`!E{Hf>##{!gfSOU?le5=_dX@q{e=_t#UHCe^$`>h(&3Hu&g7!+Bda*b?`bGg@(OBi2k-XS%&v%8ScI8 z23%sWe>QJ=ht$Os@naX2=l*iZ(S(ocoUy}*=Nah1hp}^*wEI+ngVaZPuZ#Ec4)7)~ zyXRCL41^@;_yw4?kJw^5i49442%y;Z(CqpN&VansElj(pt~r~IjEMz;+{fdPTbjzb z01t%S2lHs0NXd%Bxt?yDiuez(?aN@}k+~83Jl>ZEMl3I^{WcDK=$Y@-zpo%4+lNnd z#p4tpE?gMsZ)MN$C#bGxdZ35*?xC_Yh#o7iWwEk&x~xzHm~T7v$j0n*wT3c;psWjgVI~dDx|#${87pN&EROhMYKqnLI!?UXpmk1 z5lte&BqRX6OK>FbX?q#RlYXUZ2?GfSc!FI_#*xc7dsBx%Wwr4Pd^&uO)ps8*D#s`% z4%hxeH{OI*fzQC1ZY4HVdA!3VUtGx5f| zEII%AY7F|BQ;cWyFvgsr7^$s`1|-WRjeg+NW?e%Xx|ZLR4f4@VAA33e6OJ}T4R`W; zOEuKOsSTL%d%uf>h4m>LGK*dK0fC{y0ZK$>;3pXt0 zt`6H8?5f26l77#*%L0NyEIr3-PwHP)c%9+4f*sdAcDPS)i-IJp6k{c?Q?M-hC)O9f z&kcM2wUlcIoq~h`Gos#EN>QzzvSk0~)nf7F#w`szNoOT9+mq}S!tx*d6&PB0Q zi8=z`O#T<+z(?uIM9FJLq5s_+z1!+==<9&7<$5Yh7ZOH;#sM<<&6GfNm?m4fVi0Dexq&iO)mMVgMYu|ClGhAM&xB~QUHblNuk+V^F%ye>U&1u<0DlPs-YRbx;9mne$>g=cbFBp7{aF}spB zE|p$x?>|6+o^z%SBgyr`#XuK(iJzHKL9u4O+-!JchTtjrWQy$v85~Uvm)h@w{m71y zsdq915a+U|$1k?dD)(V@wi{7O^D`LH+58mG^$7K#=I~Q>Weu)+?u@~ zuj(Vm!cd7sJ($F3(t#pPC_UJ<6m!e2G`6doWv%gj9UQLhDPn!%qo9iy)UMyAJOsZ| zszP0Z)BIQ9s20IXw|=g)R4~f{ntY~J5n^eNaGi7pafec>qq~qwc?8luVq3~&@P9~C zKhu9G1mp^GgV&j{#`729=npYoRvCT>ifrPbIf0moKt3>XhL)sYFAySXoS=z1j@F~| z-m4h4WHhniV8{vw`LdXc{KaKPca?BiKCZixu%xS~_M0o&W2S(05~(Y=BXgAx@v`Qt zx&vnFi*CCT`&RQwhG!E14RsVH0|kr-iWffV;b;g_8CVk5`$^*Rq46J377G!TxT>NX zy5IT%{o_#P@s33Cv-4XWx4EVsI=`)Xf6y8Kis8F9$2BVaT9QyuZx(fVf9GB~cYlk! z|4gUXjUrofWaHIhcier_)%5}PaAj1IqG>tPeQXt#H$?Kv^$wEJTZFqx16^lumv#pW zAy~nP_6E)RZX$|Z!0XVgvdgZT_1%|j>d_J0x?tUz+tB602gO2sG>xznc$`gag;qCK2CNDpaFakbC4uoTcGUhU z`P$z*V+m8bAtX-8hNa$R+h(>WSGvabN^mdn&?VQ=sM{;*YG@>Jg5~!Y0hP|= zf#)YFoFvcEya_eJ83&2FxO#^435L8hd}?MdM2tI&s0W_Vj`0~#O>yQv!qNgoK~D|h zGYyu~)68)fk;siE>*1wydtZGv1kpwzv9erxE`IjXI|I_( z&&CS`-1T*JX8V7K`9Xi{zx~#GJ$^p!?&MIDr?T9hI}+OC-JRAC|DDMfY#$@*?fzih z+Q*VJS0-(T0g!!t?vo`)b4Q z1PF)!`uM%v_u`F54dYu)vU7ULNj$XDuA0`%h3!nyowWthZI#`{G*8Nz83kW^ln!~x z;RQ=7Cr#8ZjS;0oK5r)1R8%1jPK`Hk_cN!ac1^=~`Ghl*&EQPe{O61E=goqClwbkT zydFs&8Zc|KQeLGj2fSmv2EQ|!oDu0h&9lD=Wwmj0O>p5r_l=#GOl-ZM4HDi3Z|Tnr z6|v(>b(w1mPzt1*iLdq3DlX=D{xx$ey>eVmbRAAL+9c|$FtTW(MgG1bhcf@_3bly4 zW*3FJ1!+Z{<||K34+_Dv>>6+Fz)^h=NV%*DV?@FxW%Wp5>di;YM-`Y-?KoCX;qlSn zqYJq|GMO3xDV`q@2^|)4#E-hjD=m4_XvIPSnyo)2Q;ksmJ<%U+wl{Aam(Q0U-H#^A zU%$FsjOA0LX9x!l8Mk99%J>yTna^~)90``72cDb>T~*H;5FC->%kdWo&$aCo5Z;+D zUGR(RX?{LQ_%KX#)>mypMkP0QS!5$+wjL>`+sXy0j<-_OIej`gzP=qj&2CQ1?T3x! z-&ujfVWD$)edBTcJU-33o2N57YfXc%H?$?|Q!%Yp%tfp4j_d${ZW`k>*pn!QJ67{^-v6c3w4|0+NF>bVAg_2<{mV^TYMl6Azj zPqB>{OG&R7Xr$)stY5%JN|H7NT~^`MK>CBo80jE?pHn>AJ-SODEm<|t$ynpJlzdoG zj2^E#_=6vqIKJNB`+GclJq~BP-=nLio8R~QKfj4{5drfHn@Wv}a~2Xo4L|Yw*eGO6 zv^Orn7K#muwmsauPPg0Z_3Gs4_G;&-r_JI;P6- z#~(i~3Jtwzi_(dpX?er^4os)}cX@o@t!A%JDx}9i-iLq-Rqq7+ad3=7bZ_d5%*DLO zm&5;||L+kRx;qd=4kQ2odjS9d%KvhN#=(=$!E;pm{~a&x>kld)7F^1`y*oWF+a{Wj zcD6{OUb4nEXlAg;Y)VZf6-}8t2m8Fw#q5hHvAEYmD)=^Zw@n;A?BQcBNg~-)bHWI( zN~S4tLt7~UCkC&j}Eo~n+)qU(9bBOVKr7VGb5FBa#h9cYQxu{p7p!<-N(zAmZX1CdFw2~hePz;e_Mj_!sHv%95U(nbRm!pR=#4!}zfYrTMDDu4*%Er}<6#z#IFAZ+ycmgEQ- z3vfHwx86amNU=8n9L8Vjh06dz0*x#cX*?*mQqFIQ0@;8-sL#TkuF?%gi{LgJs7e6l zcVTj`+@s%& zFag6z9ob}smmZ8V>}6x%u^Lf}TZuEpI{D1+#W01m%I-Un&*96&_(eWnf75e*V{cTz z5p`Hz&qf@IWXw672Okr>I>^@vVp=%3t-yoGc$_Y+28_FwCSxs_#GgUmI;XA}T1dHI zo{swc5cDfTwmFV&dwyfZa*(9@`&8|#m70E`@*7)Df?_ZXk1)&d6wIuf*HZ=Nn4sy$ zyzDZuf~(XEzP2-ybXdQ$4`F9pdsLP-04L+}#r8aNEc@61kfcl62BUGZYRAtorLGE$ zSW&l##E4{0Y9FC3XqT9^B54L<5E#Gr^Bur@VZ?oT% zH;Nt+o@T?G1(!uSpSTO8Q3`yr=l14+rcoMK?4dB$U>*9+Yj7ZjPx6Tp?bR4LEdTr_ z9N$l1H&>$3#@UDqzOfE{V9EPMPKNZP82rb6bR*lo-w!%Y9}q6F?vFt1rNlQio}srD z8Ujo}_QiW|&;vm6+byK0RWON*%0Qt4D_m(@5Mxxs83EQDi6-aq7H|n_3mpK;t-v&{ z2Qwxy@R2eaS1VkBehP~KqET$yLYg^niDLp4?-gSd3kyWU%Hd2nqGGB_!8me2EG5I( z@utOzo*-MQvFnRt63CTd>bQ^UEyg|fpqJ!E^aNLFyie3oPN-K<`J8Go7|m<2eYy=$ zMxjy{XZsHjjGKf8CHOT2ZKnX;`F*h6pX-gn9)KTZD^Z7-uS4h&1OjN35J@OHZr3l5 zLSgz~ILhjDNl;<6$nk|%pdc7zdTOswmGZVIw85WsHN5mjB+x3LcS^CwX>9LSeErEl zdU%7FnN&K~hp`V>g!4{RIBH=@*bdmG+d)F`hC;*!0ZJ=QcU=l01u5raAR4g5ZzYI} zyx3TEJz#Yke8LGH$N`H3vB3s|l$(I>93B)eC=rakOWm%77|ChXruu!=?WFY- zl2J(4ze?8z!yquKKqx0D6HLQuGMrRj>7X-wQVO7sUl(%>%L6Uq;$wQ;0sU13?`{Ely?7`kuzClIK1FYyMD|)fA4UK{k_B`HLPW64IO3boj3PugU=2T{pTlk1hdm*%d`3!j0HcM9yD2eETFLPzcssCt zh0g^M9b|t7!>n3Wq;V6|?`PsHJbV<}_k3Y`0U7qSJ_CuX(p&YDBJr1?6h-Deq zQr8$yOe-<$%!L_G3@i_LG_0|?i7IDjax^%26EHJ2nZdzKqU`)klg3tiJGW)G+0e85 zMYRZU9Q*#GRun-gx92!?(V{`&R~eeSFrq*#ORx|jRGUTSQ~q>*bYbI2f-lNsOqO)6 zR+LhdbOA8FU{Oeb`XY<(+F(CrbL>j6Waui2Eag6@+8C#GTarUh1)344XC2i_77R-3 z)RLc^Yj=_d@c^nhIXQ9#ZhZEKs<&a{KL7(V3T$J_EkpuC4uX-}ssJ98pPlTJRcV=>reoeF3;Yt=DCUT(ob{aVaRO64g?u&u0pQYHzr`*gb$v zS)oe$Hbfx0>na*83ZNTuoBbH2k3isguPZ7kD`z9hDpJ!-D!_6N18b+cxq+>|EkpXO z-tjtR8~xHnnAIkQTvyt*X|?7?^B;lYtWMFw=VKIt$fiM`SHw3=;&9+&l01vf59dAk zvJRtQ|3>uDV90-j0WKj2uWNlgF2j(hlD9f;2sqYnjrXF=9EWxPy%fauQKn&fE^M^MesXj_ExkwRv% zQ;7CPaRVpRLA`MW|~Ii)}?K>6P^bVAh#{hyH)3axzeCNCo< zQf>RTX&i4zBpE>)yWfybSO?smrG6LqvQ-IX zTgF^PmGEcuf!5;S%;^NWqvKvh@)8^LB-0BEF3BIDCwkOhBihS853?fnK?a|o1Lfhp z*W!pS05QB-aRAPCGHx55>_9UuG z&%na0F11k%^*STKi1F6?c>+$lVrdlSay4Rn-LDzh-X&}QL=vl@DCTNI*mRNrhp|3) zUvUnzh>tYWCpPRe`9UkF2qR}ZwB32}9!UdMt`iq7pd%Sqb|-44*vrTJ5YA0qi|7xF!g;z7(KMvLKB3g;@?XqXYe;;T3eyxDVUH>_HX{AbO- z)Z58%qV_GQ<2t$;HHcjh`kfX$09+&fz-fxmH?&lM(^Q*t>Pl9^)!_UvSBHS^LwQ%6 zrY>$@9ON$ zY~je&6rLs7xqkZOYNV0h3n~Li?_c=+q9>#K_bl0jXbD_bie`+im=hH>PlJFpU8UdF)c^< z%`szkUxjSsYbqLjw5~M3!I&TLl4#Zz*`~6&>i|)aQN!9|we&ST2~71CJJi0UNOLS8 zFD>MQZ>Jfye+tUgV+9-IrS_+f=}g5z(G#KdR=DEzW-O_253Vg@Ok+@q$-tbS0l5DG zyVf!;X)-+=ikPz^-wgu$i5hX8n{UD_o!CjXaDu8M-heny61F2)gay!~dQv%twkfbl ztg|Y?Z=6yNAxM+OrlE1ZVfDy)p^Wmo#ST(v=j+IxSG(nw?^$_#ZSws6EH_+9vHmX++mDPaeGrnC3hUb?>gamCj~z!cYs~qNny5NV zAX@ii7s7tpY%fe19`+_WWS1otD-CD%5`Uq){r)qY?-#f>AvKn-AL=HEzbM|}M;YbnjFqzYa###2zIy>&0Y z^C9QX!~#A0Vq_1M0b~79ii$gyWwo)XDt#bl`WaMHQtqbE$4dm!4OL zQf}dJ9=0fJi0@2~tp8du&!)}$a_I+!h8uY-{3ryozL=A&(FFO}xu(DBzD_Y~2PE|^ z)nz4^t$m5k(3yQs>^wpfSK^OeM&xZ%yMzrAd?BSDDK9u-pj9@^i~SBwu3iwt!H)(P9h5Z_TXgW4;EGYd|tXfU21jM{V0K}K*ZkoWn>}OJJ$V8 z<~pkdvv!?#+9h*!L3NWN*2zRCJ#SAjJ6|mfCs>zqt+2bdQ#_FCZ>@)^a^)Vad#)GnmXXIj(MwqcH>Ol0zhhfLpaRTStO5-{GN2L``S&ap54C?+Xc13T za7K4gIoPguy?pZ|dj+{+dx;NXl3&ZIE}4UVhV&fvHS|J03tLtj;NV(;6|@RRD@&rP zQ;roPsPXmX@KA4&Q?JS+HVH-(1s>sW2u9k=?#0~;*}X8-t?G|vvz@>8TQLprYq;0T zpZvqYG}tFv!M9h z*FTiNNV;uXcxnJfgMr)-%mQ~?&|8#d7CIrDTam>QZyRdS{mZ@QcxStWdkDd=BI7%M z?#w^-$V-brZCo;CZs#xhO?}}CD4mE5l^JPp`;Un~Iu8Zz z^K0{I`r=K}Vb<=(_J!o<44FS?_9zB>7)%brsyKw+j5#bd!U{MXaIgCj=QVcR$_s6z zYJ=H9U`B*HW zha==VQ)q-~H<ghe@ zJZLoxIgtVn4x=hGMQr(S}=(s#H`XFoUydrZ5cYiSjuiOTujxziZlXFf=8aN8;R zD}s)Z!m0Nlk*FxGz|dbEr#JgE^IQs%s_7I-@?7;4{!;S%B!;{{ZNOgII{H*jWO0#5 zRO%Q$ainz3Lfh8$j+EEM3t`SoF61*+yYvb5c9lrO=@Y<| z9m6PqZ6L%`bIcUbF{2S|QKL$P$!v9D08q?1gk;`ACOAVX*y2I$>bG%r$%)X!Zr1#= zwS7hB#wd{DDgq7NF=N>S@QKB+?}S6(KQyy^j~q-3YA;yPv54_3deU7p3NGH9!2Fp`&w zlUU75$AKM0cDJYsYkF$3NlxgR!5mjck67jyvoVUDLYDj-TkZ-=n2Nu8zay^4zHYCV z=j#|ZFZOEe%g%ss#IXU^-T5@TeZ5})7sTH2X!no9W$2;D6wVeAYaLfa!8V3D3wGmK zL>F}1n}vnPR=5`z#7{Xv=VY&9h9@%?iq3J-vJA0ZoWSClY&R`z=*PD^KTW>@X%kPj zKyq3apcF*5y6D}gUAwTM!aK`#kMO=F$i9R7j24b-7+fv8G$o1IZgYhjXV*+-Hn9$AtZ}=l!c3POE_yaADvTp#DKUQeg8vw&@e0O zOq$5|lB3K^yIJSksNb2UredBPW&M4^K|J%Xy2NY#%m$_*kAoJ(d*^`V;o?Lv7WPU6 zG9kaYx~1u-7Xpjw{74S$xARQR7*Nw?QigW{VtxQuT(FhGU%TDyeqdo-NN5} z9v-v8!?^yT?FGjE{?TA^Wmf;ckSIZj0dugcf_%>lvdC zjrjJ>$Y4i`*%VHk!LjZ`e$m30`LTezblGn)w>bNQ07?r^*KscV~f;9s_0sKIV3{@gkvK07*+?ypF_T7VmB?4FnIK)Cq z0oq$%MTXL8n3}}^ff$nhvJ{v}9uhn0T*o2zJTl0tnW*a01dy7D)p<#NN%s-9(~Gks0^X!COz)l<{PQ&kG#NKX6mWx}m%ms`oPlAhxh|#aqp)f%fZ$M-?Fir#DczNsX?Q| zq}jC6QFW|4ZCcqj?b37W)L=)DTCmwU>2eGUw)aBQ5n^vL=tw9uy{d$rs*vAg6KJQU zNvxxua6yCmOT;;{*XhX-wi4^npb1WyLP^6G^lTrZ7l{+a@Dc4{nYm{)&HQ4B?P%r#3oljq zp^C=k3ghJkx}9*i_0tF|Sdv4fZHehzk;yOvjD^>E&~u+9l>rgk*+g1+%rWRAicBnn zYE*O7KiI&8T4Y5?fpp_%MX)T_R5ETgSB(A(yCcRX1k|&}OpepopspQd%-N2i_9$@o2a5>@E2SY zZ`AAK=)Cz}n<1YBDYv75)q3v35=dmxnKw{KN^=4?nWr*gi+lTZ2!EI`c+c#!MxtF<79gfhEv^oHP@i!NN$2!gh<`KDn)m zu@9i`n6fEl>?Iild=J*Piqyp$$OgfC1TkVLWiFyXV6ljp%uyapWi|4~M`%ypwW|=Z zd>H9tFG|45TSvbOYQ|V0^P>SzlwM>g+PmZR7IH{`R~+8}w0CEkuulaL*+gaCXjWKQ z_KaID16vN2Qmku2jaahn!-ELS4x;>e{*eeWA4e08pzH=Y`$fPpy*t)$ENES+2ZllR znn|4iV2r=(K%#L!LFVnFxsg39Md#9mJ58I|Ki(?-HEA<|^q)Rv))M)Qz>acOybl>j z6Rqt7$qL4x%EmpIv)1HQ7eA3t8D#l38O#-u1}#mg%GD>pdAOa@=M)I4ufmxi+M|dU z0C1*#v|`hRYWOHV1iHygEhHzg7^2O5SoBD6IdN4Yh)m9N+!Z&VV;}btjhNG@5kak$ z!(~1JbrVUwT#T1Ama_PLbIH*<%t%B zjq929d!7fNZ@`_=kLcGtIAazsGKnKk9LkiVUI{QEYH6NcBpEz9Ck>T%c4%1|12TMW zc1pt!uPvbe7zwj+*=t9-N^Armt7ZdMo}kEplLF6+D!PztPEf7Vt$${Q6a%x%rrZz6 zKte>m55ZB#Fo)@?+lO7u`?sB)-53CJ)}58VW&4Y!S{`b4;r9{jii0NX;*mtbhphPL z!*HeE7Q+(2S*;3{8%67p-CLxTv7P!9piSQO_cjpA$ zuS@bqY0tbwXDN3Sk1itueJ+Z^$Mu@U2$Of5N^wX4m8#xXG=yu3|4EvsFx}WDa3>^^ zPkxR9?9vks9|P^$A|SK3fkY`jJ8mblZ<8=E{+qzP`SGeXV|t zUY8`Q(!vJcA}d`)9ihVtv3nP`_JcbdviVhpXV$pf?{Eck1iM94x=$)en9+hrq~$t0 z%_afV!m%|JxeZZs0JaX8jXKgtQUpW zKc6|0Z7W*dwAu(+@ed0isE0+9OKt=mPhwr_y|l3vi?Ye2Qx`u`I?4O4R^uSde@xo~ zNJgTX#m1k*MD8 zTMAu*qCG(7EhRPWWwR-g)y@`tWdqpl=yIf1*czN4>#7)g8t!6C$r?g*KIpKXW?tV? zH__1_+|t$WC50fZKrj7>=Cv|ZOj9}NrT%MOHN}p)BNOqn%6|GcQ1|{Gc*{phj;PoB zyw)qR`%YM=R54!MbkP<|#GxzfBjDzXWqSN`H89w|P;$KeBni^z9`;LJmlK?kB$iK80QmB~D-YuHN+l=WT`(AzjcmP$iuCO5Bdizo6vE+<2?<;ro@x_+8 zg?Eypmk4wVaz@{%s8wjdc>6h?#Akgtec*^V|8j4Xb!zkQ0J2rjVGaD&=<|BbVgLK| z*=;WNYyZ{7DwZhnigo9m52pX_P2(3>mYp3ISRBH^dl`lN57ZHOmsrK9-MzuwB?xL1 z@@p9Bg&C!f%D2Dhcno@N}(CPfrePOEOVdKI!%(@E->Kece5j*TArYoQdPt5j=wAm45n z6Gps5W@chT9NKA0t)l%#MK#-g9>YsP)U6isJ*G#15EN=pJyc$6Qf=rmuHUS%h?v{& zGOI+h@SamrnXaJ*6WYo5hN_yBU@vGrb4Gw;EMq=lR#qVLDguX*T-TEdMGtVqzyqwR3B*vSvAT)XG)l-BHwzyKwt~WPK;}h;;W)}C?n9&4qA8-#qI+sg zfp@Ax1~*0v6G@*50ZL{PtZ7F)A}p{VuNZ=9DEhn+F5N$@c=TSSqS<65xmTx{{-tkV z7LF;01%`qk{5{OZ`|tU_KLT$z=@+p8#o8z(@JQ|Vt@7jH73rfx10gO$)54xtSC0k_ zk|R^uK4CEes}yx1vf4}he$&x6NyH0L-<#AHwwbcOAn;Fn95`c>--v5Qj`SHPhS|s` zV2(Am)r+=B`5;|3lS40h~ za|5XG$W$b_kimJ9MqIQ5E?S3eS(#9!06~$;V@sO6#w19o4=NKqJwHb*gg|Bz?X%-- zk}HV{Nb$53ReAu@8H5v-64l>raN5f|mw1&o;R9KvtFpGkCB0dwGpYaP$jU$203paj zI!haGg=~QIUsr|LvSp)keCAe&m0e7E)taoA7=>~4nTjh$hP5MbKC_fW`9&+{|p}pksi?tkb4az#X&z$A35*?;1%@Vf4zF<73Nj7H*n@ zbKL0oZG$i0M$7~D!+Sz51Vlt1Vjn6^I!go%06O=>;TM0pjahsw6?1jaW62*qjaAKU z^dzi0!b0f|iVbZVO;J&cOOCgGdC zKxe~RO~iJYfYk!pi^GElUPxlikGysE448iMnzmP0(XAi}k2I*X5fm`s$1}mTm zpMiFo)gupGUlR^Z{*rIR?R~C=C1e4RC%~T};8Ha{qCf2X;U`c_=i;Ct(75bTG0vy0 zav^g`?nkFsN6Ij14f3f+OPvZrEN-T2TjmgLMev+N1_MA=k8F~<7GfZ`l)9ynGK90! z|9!8dvynqbf`Z`vngD13l;qj_kwkQ=*!1gxx|CsBQwVW*(Mjpaen3Ikq*%EBeOUHn z>korPp3@kB#|JGLmwcNy-^b^VA=5+M7)Wm~;+41y?L=At5vZ8?8a=5%2!htf;gLBI zd{L7dfJnhK{n1S{)g496r$27EYWK&K9KYBAPDY^`cIHNU9n(ffxL-5)gs z&dzpDYB$F4v6GqjdldhD%u^ZJ&+M$afZAilz<_(uD~cmW9}Z`~uD9PXFTl>^As!%o zinZt}Yo2;07w)F&(BIkH@ zLxpQ)d;w)P7NTr>#xqkjCHpX7AN{k2h1I(HE!1Bxgu4JpO3lQ<$ob)EiuLuLgj ze|BB6f4Ygs=g-37=2zPo7+?cFF}9u<-zYpFn8kFqu;H2<`TirnX#${v3sa!yb~{sr z=6q$y{qlzFRZQqXOAu082N6+Q0p)Edyp^Ig6^3kuWF6G^eln+s(gx<&aF-bC#_}hu z&zQkxYI9za5{AmFt_y$~Fv)0?n-v7aWf%+>gVav*4Al))ok&Qov*j|3!UG`u@U3jd zW=ODn6#xYAF@)Z58y0-vC`JoBo(RwyFu73y(xmBy?{QQL77$Fu?FYOe3^9FWH?ErDwx}Xt_IgF^mIjIXq3L*g1*zX zih^Za|ABgg|BWD$Nf9fqf`I`NDu+O>_bn5RPxPBf!>QI+p~fgaHNgCU;&|vmN^t%? zecf(fiPTRdXgrKKgTKY;KaYxH@Zs_w%!F9QnJ2{B#Fa0h={JTl``68er3ozrg~z2~ z{^VU<1)Lf!18~tQ`f3m`g86T_I`8tYm-;?U%t8e9hFl|6jqy>>&48Q&L-5w6V?f(@ z{Kc;M$@S|;N%7y>If$SGcKWg&od@{g9WaDlzKl^)*@3A${YI*6%@ZedfLiOMsV8_^-jdCxv`iFgk}zDBmlc5Om@{)KLt-GVbYWHsEakVQCc;lb09GlKFE_J(mN%#VgN&hjw_8(bA7TEM&{Pk~NY0|2$47M;T=Qi)DaAX7TnkK2W`27G~teIO5$>~RJ6 zO0vF{a1ThSbaWG~-@63dIZr?4kv^n`uK`^A1;ufIo)NO$9H_6b^t3VM#>aoCb#1|b zRt=ZK)rZ{n`R0R}YHFeJW@QE0P>Sv>0G}%PhtTcSjSz1`C;dN56 z$j9sIYLtcg^Pi4nOGe+SK%H)Y{=)WuYh~LB<%H-fNRf})GT<5S2IN~(Z@jKr6>o%! zxw}0h;VbJAz5DpZybpHeQN;1&bp z0eJOn%T+o;V|b^k(p-9VMXTIanVWF|bZZUN1zlZX;BLJIv4N;@np*1-sl5`CXQkg! z5*;AmmYaxS+0!9D@JifTAag|PWh*k**!e51D>A_)`^T=SMe;MRoYku2czdj&LhFX( zE7>7{iifR$#Xtq!APJ)r<*PZ*&OR~`07YmkX7&$)wbZk4_qYZBIz50RfDH9iUkwA` zxcdeutVm&;IczSBlNt9Z+H`t{gYi%pOVD9NXa^PEq)~F{3uoeK1`Pr=zkmq-jr5dv ze6eOl#D}MKWy^vW+|d39qOM%aeI&B=``dLl7Rd~e^s*={!)C!c3Ebvrc#@G6X&lAh zwzIdzjgA8b6;)QcfvkYC8^z;D`?c|^-C)?<=m{fTMh0!mt_s=gws>wIie?s01bl=I zI_8<@7a8;t?Ki@vF}rWQkD&nS3AmJ19*&z_Qf@>yWZH3G_rP}|hXcO^!M*)Kk$Jm} zgJ&srTiRTL`l=yQS{&h~2CFw$2C(jQH!ZG)#wWn!sEq4vARNE+$fG6+KeVkm><9+B z=nyH`ks(}W@GW7-$Et}&Xx@0&`_etZ?q>aB_0D0~#R{|^x)SB`9N>Gi9uaN`ZoI8z0q?^IH5EDaRw>@?!IzQ)D=MC}M%r5J{&C$L!(qPh|OgZwh`=p@#tfW^ zv`s9AQfWGTTxJEuV-e&o)`)wQ>}i#b!KsmHRLjXvwMYRhh! zDf`@XxlGj2?ais1`a~_wmUt@`WqwwIaaFi%XeLvJ%-sCbO?|c2;w|>Gxyiq_swowJ zi%7r8@Zp%NpOOEhwr0DEDyzBKRo6CjROSLu)b*GbFvr>wk6*dtLzt=a#%?C#oWAel zu>KDsIug^BcsumV^pUR?+rOvgx~fe>v&l!j*Gbh*!b1QF>dJD9diMB}9oxExV;BF}ka2OBld`k~?-I^4g=-`ngJ_T0t30U=`;3 z@HP4#U7yGI*XU&NI^A9`$M^N+b;u7n{YZ9qvbh;w-|zcpHNGCbKHvBC2>a*rI5S}0 zWqlP1!`O?k3_snH_#V$cmmZ(^WRp&}SK8i$S@uOiV=7XZooUu&x1o@JT6NL%=~0|y zut=u;X%5Ct&9%?^^I-i8otHp*+Xc#h1MuMhPUK{J-9FFnw^eV+x~;5glAp${Rp%TZ zpz6!jr1jzUaeN0tJ8DHAWwo~Ep6~7rdgC9Mza^W%arc21c*$Tt>P`IDIZge&UwAr9 zWEOT&9>lkC*UY-8*YXbNo1qDPn&%{V$lDN4k2J?G`>NWX*HygYyUEla+SG613Z-_& zeN=JbwqHBHSYxur!^8sc$p>*KkXn1e=s$ang6beST@s5@=S9{gwXRN0+ko}~xcboI zRCXBE1#6M6n!RZd zfWYVo;?*FgNpq~S^&$wLLbk&A_jl~e|;YdQUr{#Qr$(Y+u}8w zK8o?hzNNWxelU~ZUJTNT09BtAB~F4Q!UX9y@pzucQBv(7-=1h>`;UXxW8}LVeLPRY zpjf-JgU)l)6T?Ipbi8q~eCnp-wGJY?2zaCx$!wGjav+MxHfOP`XD40R@Ew+4yMMcW zQvFf}@e9vx%Bjj8zf}_1V-l(*$20*F%1o6f0H(J}GA|UQk+)>@_A7q$-8}$(6V{zp z)n4`P*r?-0MUx$i>S&S9k6LI9EHu*th62igRO3N0Z~sz(7imBc44(Sv1^N1Gr6%88 zj{sDM$!ze8D}M;on;$UtP8wku7Gka&=CxeM(<4ps{?Hj2Rqd72~Bs`h%fFNO_l0geY@n5zaSs zt2`4S#qYkGfLTzHA0f%}g3-2n6?YgM_y(|Y{0CtG%G zLE4Ex_V@i6?p$+&>4J9OBqXkaeyh;1xwBV`D{jAe7k%D7Hp%lLc-ed0ZfSRr8}_7m zIbkq!sS9cE+5=07A<}z->VPu`lj}8i6%I z{i_*CbrY@A-AY}p$(Id5PKK$$E!*)T0DO&o**N=0q|4^ZdinxJU){6}Y0R5J;Yny# z&qo^cYuu#V&E@?X580C*n9=(+gD+$p5vtESs2Ye-BJB~Vi818sbZdLe?%ABw@LF2a z6_zvGMKz<>v^vnOCeq*9jP$jsszPFz(n4ad>jz*-avVqUyLMrjy0JAWj^}c~Ao0#zvo6&behWyAde`Bd7uWk>Qx<}emI1UJIhzDSu34=Vlf3bA@@nY@Vbnna(5Nk9b4okBpvmdT-QJTAg zQHX~fF&!zY{waI524JmS$*)k=q4?**6!dEXesJ;AX~nh-H%V`rh{^d@S{EsDSNy`7 z7LJEpo$V!H!k;qFVbO1xk?fekAp_xbUUW|md+|0!oNQIC4K=u=XLP^^S4gC~u1>He z$`{C30NBRR89T7iqY=FHSc~b5FQdi2s5e?9`wT?(Dwojj26177+e1S`xnTG;O7gAC?C!<}6S zBDTX9MhwBh&Z2)fphcKNWa1Hh*qIlE#gH+qB4lPU63MKWOJ?ZE3L(X8F*rsX@30V% zY#coJ3+v!QVv1M4DXD;a#Y3_X9Sfd%;Buby0j@I%_|4v)dbG4Lcoqm zZ{n=Mzn~Ri?7S^Xj<^yDW>}d{Oj<)tJsoLytMz%QN$LL74nf!f?(H|a&Q+k5_ELfy z$H2A1GCOR=rphM|t}lAKYY24sN*8pnY|qZ5vc-W?oq>Gyq^q`zNO%O$?TrBKD08(r zM6jg{h(hB^l#aOb8c_gif8X28(YdJnFc@6@L( z7g_KhOB|Tgf+4LV^HxhApyQ45DqSPMrDp5c0Ze;vPfqBQ6Ug6gL>IMmu{imQiP0A& zN3DT*6K|irzUz^$=B`y!Fl9r@IQmYRYbU^7Zj{8QjlhC9!xbX?!;})0aw3I53a1jI zW^v7BQWa1<3=^yqDI<|Ns0+|KBba~F-Wlnc2YXV>5-kXS0JPZ-cXh92AweOG2)%g+ zT54$CahgYVWf0;EN>09a5L`Z{*2nkP7+C3v&O(v$1`i9rCb)G|5Z9`9sbv9fECMut z)>{aXcPb@S&>n>V&Xqew3=~eL|A|Wk^JiU+N{0|r@Zu^hQ5r-{g5uF&t97eHEw_{I zI<8H4PO!&d)EiEUk#OHEESij(<$A)F(VkMGBl2882J3#605s>2?A{Pm%eu%>oT77= zUh(|dl7uWXuh1RZD+pv%h1bruKwtE}(HyJ}gi4IJ4Dj_S;Bh5FUdhNATm(GlK4%~v zfWg$ZB0R=`XGbS6Ll8GlP!PR8=v2D$VTz|)nM3w$h*dvet5VT$JoHA8jw)uEf!v3M zz#_Jc%FsW8Ako4drDB!OKB~QGnM&`LlL{O5A!)kx?4G%q zXm`uqyIm9#4%bqT{58%qA{oARM0QT9B@`78vU!;AwM)EWX`{uSok9?nhD~aW`WU`7@(Ec;BMbE0Y#VjDbv%xI(Xx za4C1jD&Mlwu(c~R)*VO29LZk1pyuY~htmMf-Zrn3)A<4Yl}L}$2ymv*6Z7gEoS4tU z`HtAopY+SYr6$F zD^+;d^vpwY3&g)hc#o^A{AhUGr2Lf z2&eZU8Lwu@7G1tW(-)g6vR?`%$-&Z-GJZ4&AlP>)gnZf)+u?cMnXcQoV*;`)fTlAw z!%v92s3C8sbIUPds`d1)-ZbmaWk8MVwvE9%Xi0_-w-C7kNIi-SS&BDM=h0VINK~3- z)Tytd?nu){7w7{g0KN0KR&`kSJ+P+aJ;0ai2X3Oemwk(H$fz(P_$_hA1AZpun9?#j z{8n6-JyBg0t;pSo<112_lx4xI;V>?GTcnkDbxzJiXUl-WE8{W`@3{R0su)w&_RnA+ zjIl@6XgCUJF3!1!X0hE+*H#ge^IlKlLz z7$TmdgFP|<#Rp$)02{vO$>)`1i#MRY7_#|i%8m%l>7X3y>G-<&aPeCAsXY3zaAYp$ z)hzV*f(ClUh<)ZB(Blj_c;46Nm~EhwXY$9_OyCIya15aK05^Hi+V&sKphXL3& zTsg|i#Wm-1*}!fH61c~OVo^dLkE7pLS5~MiNVzp8IRF9D7>58JBF$%2+G#g2nk>g_ zb`5&Y!-B}mSn}FjgI>}cgL26DTc{6mEQLz}m=$WqfnZ;KRH*f2he@0#SaVEh4jhU+ zoeY|8Ni;MN>_AT3$eq7Y;LW@FU~}J{IYWz{ck95!*Kl-{_j43qphbvy59xXQwPd4y zUPE+JC+U$L2TU3Lh9wwNZyyV01Yun8&7c{#m}wk4drBCYd@Im%%GiQnBnbkGoYhry zBXiJw)9d#hNn{&_Tkk)H6ApyHy9vj;>;1e!w?R(8x|y9)FBw81W8yG!1b8uq5vm@Q zyp5szUaMJeusDn`AYL||?^;n=MUlFAQ=v}U0;CxO<=`rJ@VD*(89gV_83qz)a7elA z2FOH-SLs+9i#~#?L}96=^*5?s4+nHlH-%Xp%=Z>1`5}|G%9+DYS31?$OCy6MbCu)G zV|PkfTVdF|8&L3Nip3RcmD*JljoQ`)%tD6KZ-C=xS(4lPPVgWeR<5y5^uqo}bzlLtfB!QUSxih9U+2g>)nV49E8?VT>4hau@_G zxmF`Ji%}BG)xmx-fqzFl-Z$)ID9?(|$rg^(YI*o92ZRThlTawMkP_(5^0x7OakOrU zJlKol=)nh++5RJSi#1d?ipNeP22aJU(VsIDTBN;I9fCWfC?5M9tu%k5Iug`JzJ3Ra z1hLuJ=|F8fXAqzSTHc?eo{;mDX^jo#p>}nc_&eDTNJy*Z6$9A7v9x!gus^sy0)Eh^ z&k%JjwzG`@kbjKKa9D?)6h@fZLuCBEDGCly6@vbEatYrH!+c=%cFAhiOO~Eo=;~Zp z@hDGcFowYrjd>5o3*pZ2HO14z2b#-yQQRa5B?iYEe!2fnnO5!iZqp)hV?fZ!Jhb-b zE^v^N{?5aIctps-1fMO*&n75Qm_=_&Do^oI#l|S()I^gsemcAaw%lH98s}KLqrL|8 zw^tA$mT%yG%xiYRC&o+6r!~O%8+C>{K9)T;q&%*iTsUYpq5WR-2U+hjP88VZwZ5%q zQ;u1U(`jxh^G!7-D3xR!>|8ICfsl-^pv{dL*lQ?)o#8Df*zx|67o;KatoJ1RO=z? zpS-o2x-iZXD7n<=#t~2qKZOWd1iZQNxk+-lmkSvoA^wmZ|`G z_OUe@J#`-4-qd{=VO&gK+E*FBcSBNW>2$Be>n4SHjHR#xH$|mr^4zO|U0)b|cb68L zQ+0ENxACYFLPLy$=fEf*msh^%!tbke)OZ<<5Z z9bEJ;7;C*e(0vltkm_M#uk96x^k8{IR_l{6{V%n8-OdIA>m_$2c;#m;o1QLSgr%O5 zh#{2L39dE%`nB^gGczL}Np&G)q}V?wJ;zxO$3kjEjygkUEHO(dks7pxOcOB73_=fW*e&bgmOsoXzfV_nTLowGb|*Dp3~w$riXS9>EL}X6T)+8^6HC6 z1?`4uA2j3z6pk6@R^h&r`gkB9tmaTy<)2|)@MMy`En_YF%BZil`GNjbTt9nn0{dV~ z95(`*im@NT^gu7|e;ycb-4DZGV9Hu6Bb)|tlg@gdWy$%! zpY-{Eq59K|?&9z&CVLBH>C~s_4XFmuHnk6q-9oQ)@MQHD z5kd7>LEV_v%Y34k`GHebb?5we{Om%|e5I=DiN0+VnQIijl||7wv`WV=BD7N24h}sP zvSK;ED(!f#-Okpq_65yY++INIYhsbJnnRtRtN?ttPG8gV{k|p-EaWJF@?REYw9Vj; z_#fM-Rmn^pA}CU*BxfBByf0jn*R;9XqB_TPQ`2evo~hD(0N?E0BbsCWpqZh1+S~`o z78(@u^B7dlpC>UWOt}~y{WBUb&=EI_%#fb0J2o*|GC+Jn4TYh1v&sA*Rhz_=VDwm} z_l*x3YzCgQf0!bV0Z)-eY08*Jc6vScrfPdd6AjByEVI{Yp=56qv4=K$IPDD*5iQ#h zMP)@(Lha0hEHwhj(4mV*MR+RzeoiD~6o~;b2M(B16cv~^0!4lC2}ns&LA&<@MZ23_ z)xp@Fzw1^CNxH4~c=*xl)9xR6!1B&kf8naUdQz-;o+`MHeuV3MuD^pv0P_JHv@X!I zshn;o`_ip_p!uv-50vg)p*tk4GU1*odEsu|XsVGIfs z(3725+~>L%+AN`sA7+ZVID^I!UO7KH=>bI`x*>eni>G9e+Gbd!oUo)tzH5=?9JxG#REJEmAM@BS-q$mBt>H4-fmVV#e7SbC3u0$=?BC^(6!_d{jsS8wnD3fDFFy5Qlah7!kwKwo0i#;P%YvSJl~e zCqbO=on(J=eEUvr6hxmp0_@9X5MW?+$hTyJmJ~rvkJG_NvGP_|6b|d<0yeX#>~&>f zi9b(}jA&h{JE>zZ^ZKo4guUK-UxCr(r*jDJ{%5&7LF+oT{K#cXEnuA~CuL`X`>&y$ zTHUViXDen-7(XC^6oWsaHv#adEn`X7;y)o_w*cztTYT>bA zrLu1ySbAAyL+x2VzHD$@7r=PfO(e;GmSNV_Lb_RTX9rGFAqaam!9oN4 z7{|v&O&`vf+ruS|FT9{}*j~JRA{%>EG$Dd$m##VG?E>f@wd-N$y7~Xz&#WJZ=??@3 z004sq0HFPE`g2mFc&7RjF^F2tr{p1Kp9h zn{wSZ%l9$J!a_i|T0{arv-j-GZaCwiEp@I@D37T9UxwpI8wF+`$<;_tf>w!ReBPt2Ei{1a2g;|nuWS!jyR(5By~B7-D`$` z-N-)3Ym$Wr;-N}~G$Od7O?EAg1-2?!y2A^O!3+0&Zgx7tAD9H+#R}j%Shc!yZu^TJ zw!}M(QE#aYXkme+y+byrq5{Y1If#V^ zVW)52q{e-7;lFgUNWP2U=1`}|C<`Zeot|j)A(! zZd;k?BaL`@wvM;V1a{1*A*169bcK9@)SOISR%bP2k;yt2^+pOviolmEXqh3yY~rns zt=w>Gg_SU>3T+FpS5-(tE2wnGF5Wi@JlXQ-AIU%AkjJwHjv8@9#PHzYp2xf!dHjfk z&ablqE^{bb_2aZ@T42m&o*Sw85%FCelv;dr7^WJNsG;3Ih(!`_@s)4`Ee|Hs!-#!J ziUS%_S(z-5#%#0K)On8Q)aA1^w=mIf(P6fvsNL91CC)x?U&3DKYgI`qo-<@))Chq( z3hyoRao{XB55U$A-#rC%0!+U?gXwu>&1L%rv?tl4xr9J}QS9Q|=NOe-gXnX8FobrM z=G;GoA(_kRq>U`>5#Y+?! zVLHFAb3RN74^>ZWs^TvpUjK6s|K8F^s}Ri$@(k|bxvJ9n++BHWuyd!J-la(E_I%>? z!aD)y8Y?LRATQ4;Y&0Wt#-dnzHKW-#y{HR15PA8()>;m7S}FKJ000J|000>OYhN}s zH`lkcGqeAn1yMCy>m4zKzdC)!35;AUNy^U^EErZg%Cdws7E*-cC|*mK_Qn=!H+5IK z{=WIETNkcwO4M+#Zzo zwYj8i=3kyng_gBg3lYhRr7*EZm2LqA>L~HX7l&ia9$1b&66(hW`XW|{x550 zQ7+KgYl^~(5!gv)9S&Q#la~>=c*C5RH2CCb)Q}}f#p!yULwlO_)rlSbKi4_lfW|-W zT91H_O4csZV>spmH4U|*L)IAhnHL}B^)Jh{7e2epmwlTU8fmo_UWLYVS4m&5rp-Iv zhizeMz4^>Ok7VBNAj5S`(Zf>NM{D?W)3AM%%>+72=IgKN%N=oV2OX81c@(Dpw8ZT> zaPsX&Y!OGEu_sZGg+>NXK$E1rL!a=i88J)!n0Ix1JhRx3j83U4`}0|&N;yGYDmwF7 zPwzD+Y|?Rc6Lu-Ny`vA5c}U=UMW8LST8HnO<}~8bP)#NZc}P9Oi@Da^>uZm|&I-xp zO4dxz-Oy2*l+~NK77ah<3FDixq!c%3O0BtLl0L4;?-eqpVOS|f_b|^D5qQRM96eq5 zP8_|snhrgW0sRE4?;osQPXEIq=bk{p@*e(4GeN4zf*zrScS>Lsy`_ zMmu6WOs$K+^Gfa1<4M##EHt}^8=J{Z7+v=3Zi|n_3BB*7Fv!}<7?CtW-q$b5F5bfK z3QpKX%=XxWAtVwqL?1-~F1pxgNfK_h%K)ApM;7_-?;xyQ!;svKR=Mjfu@iMR8&`8E3bw8r28kbx z?gAiWfY}8H?dTxseW>ux(?&+~EWle7!RjDMt|Y${R9E$;@T4kynYGl7Gfe~!ukpP# z`x(!^U8~T%@vrA zKPfL{)wv;!S1Lw5BW<-cMJyg{A`sH^z%HI#zP_Zy4(^JCnB|E+`p2K3G%#jNC%y@F zBAop*$6R!GtQy#%D7i^nR;M;(ww$Lr zNzwPJ@QPKbMT`!QX&Do5x5)bYj$@Du1f?kl?f29(<~S4P;`gf5S;_9RYpE!4?^CGe zHzHc#8t;D#8pdyNKbVKuTLLw~vIJ)qgV-DJg&e0JFC&XUT$c!;%KHXRyo44!99C6 zd6>amAYN!ugVRrr0e%oqGiaV6%Fnd1A@3~?)bpr5WX|9>Au%PUB0t?7u6s;7rD46~ zp~sg$+eBf2bm<0mhED9rWI74^{xmKTALv&pUA0%J-ca<8+aFxr#e)@4OUKY|zHyzOoI}h&7f|90E5yxxye;y-1SP+z4Rj zi{+{N(R?jhwb7ON<74^HwR=<6Q9Nbbm8`@^I&aB9x+dbZnRTofs(OZ`yIa$%Jy+kV z%`z0A1vYoAK8bxNdtvP$|D1OS*N005x* zuWiJ}(&#_-(W_}|zti!5go z7aDo5Q%S7GC-Qf#lE9{wj7-%teWf1uw}ZDH^KLwO-DJ-G^IWakjo+aVBK?m38Na{= zVS_gnyi%m!#D@Vh;H6zais;cdm(DHdLdKmd}c zHAiG0rs+1n4a8^Uq45W}xVa)2ooV+iMk4BUrA22?n>~bQW^!IKLLODEof-;n`!`b& z|H0Vz8$QkZk~*g&^?)Gip|88Zq-Z05fIAkKn^n@kSs6Us#DT9PQzJYPjq&e)Zb|VY zIe3Yn<4676t-q_v+vwgAlaMFx%(!)Pi-aQ(b6>;OxH(qqLMei8yiV?0)=63^D%F`> zB`(IN}bPwmPd#t;*)G-qzCkh zT_7EV_^-l0lRCCkS86*Y2X$C}f~CkcN;)_QW2VJNl6`O_?Z(@yYIM6r8Gb@!hcGaM zDOn5+V5f{QIXa^b=U{{{37D9lp6vMu=ki>0q>Piz`HhB&|S)Fb=|V%>Li7^Cwf1Pp~kTD=UFK2^sXy@QeetQ zQQPv6H`oFw?ds2@Ua(*Sj^2@Kg1qG##W{u%-ki;HesgzSm*v1^8a1e)X}OpKBqPu$?jZ-N$-Jj)hGh zNWbb?#SQhn+F5P>W0d?%%iar&w(wQAv8VAcae=Fbf1tNZtt$W$%pf9|@7jX{fzW<* zP}oeFgn*wX2d)68Y%?gR@G_y*Hos4#cNC*+%=-+gal9Qxx0<)T2dvOecQ5g^YFUAT z9bdz;&&;F3Q0;jbyX^upp>qEm>ohdhZt~BgzVKS$z7{)&lqI@A+VkgtCe-~Dw?`%c ze-Vg(xP&rG=W{VO5d-E6mLUX_enFuaqFXLF6)Y;_>*_VoAZrMXRPl(Z96R`!T>D@n zMkPKICldd(689VftA9Mue-K+zV}2xs?(---I|6)bF;v!X>RYfg{d)6g^##}}q+R%> zdxE|dshUhph^Qs`R7n`$#zim8zc4eH($FcmxxYqT&_n}@AS&25T6B4>vzN1 z6RCrN%?fc-W+LX?mouLgF_YYoTQfIWW;}57@QJ8yEu=77@DPIVj=_NS)fHglk8>>A ziHB_6RMIpKq_sDjeF%je=%{YGj> z=CQP;q7akI1tBt@^FR}27d3@rY#lmZWW&6V1>=|4nAQ=)gtPM7fo1ag&43Z0Y25)G zZMf631FLq+QV}#XWrWPWXNzl&h6_~~jAusH#C6P@QUyJABI3oVzGx)-(ZEw-QYcg& zze+MK9V7!HVJXc%U10NqA#fg?2y|CA__KAZ5A5A5k*ILb{>7(_l8F*>s7opYop8YD zT1#Z>9raodQ;}$DfElz9(?0NHKu;0`kobx!!t4S@rB{Y0U{}P`_2OP%=7AE_h@-D= zB;@q}pm>{;Uxh&#lVbtn;B1kSfZbppOyJ@dQd~8r2z7i+y0RcgfrrQL_5Nmte4;Aw zp;upEpzjF~NQ(zwQ}*Kk&#-rVkQ_$H^Fxu?o@aef-aSED6>DzKj{L2!?Xnk+$xo~w zDF}HoK)eb2l{DKA`je#Z7kJE={<(_@(C;}}BHo0*LM{j8Jpm>ah1zw2FU?;+V@Yl( z`(RSM6U%v$qC^;~EU5w2%(d{>$ZAto^On&6G&K)pWvn)HS#`&z_UcVIK0W$DQNjPZ zD14cI$}Fu~_X_}XaGzDr?m$vkC=qG1P#d6}!AMKkA_VPks@P0I{{nbLn+S_2JLu<} z|38$yQ>-vN^zONB+qP}nwr$(CZJY15ZQHhO?>*niTulBalgyc3G)`zyz&2mjk8S1SsAT=c7mtD`)pHmsZVfeZ5tYh) zcz*A@cpsto1^QHjv6(_7Lbj9OP8$Ovf*1q=**De!xR!4TT+FJB@U{#1PXzz$O5ByHLV{6bkP{ z`LbhOU8QlFi+GN|w>utyfEwYb3)|^X?JwiKAkmh;k#qI}%g4uwF6YpmgAKLTtsaO= z-qH@cab(e?R#TkahTSrYp1Es@_4Th@6e*_(rVU_1cF;EJ5)7&W#d!+p=2vqt~ipdshUr3C1CZM1Y<(`XBRvg~}qs3huZ^BWL*VSv7*0?8E5MIVs2)k@B zQg}!OnjiORxHRl(``&T%XPm|7eT%}k>ACyZQs|H7W`U7a)B0MwqPXFeOYMGX}_Xd>{6en_LxBd`s@O@wh( zEb5%2k&ihuN6dy?S5Ew>NE73yDsr#wv79_YSsg$tKK8e2L$UJ!0l764de**!@m|m? zE$kHTfD`p#ND|lf8>?ZZ?|*}UN3LC8Dh8iwJvT3oBx><(&z9}@NjLff?aDk*r^6~H~$>NT*ESNDC zE=5Ik)hE3OOV~`e&^nch*Z@aBxWBogcHMoWaixj}Y!LB;KuDO^KzPL9U@7m_2-z3X zdp43l?%E=bIHLZoYh#hF1`lAZdV45a5lcbhYoQ>C>bfbCbmpZ1E-DsR1S_{f4QTJh zwaw}TwUo|S7_yP!@cGg5`T2REiz=?9X${dNFAJN!DS~uc;lKtZYY1KU2=gU;esfqF zMJ~%(Odm43%vV4;6=oUdZx`xXCft>wS!Et4EPoGyDr#UVc{6}KMZ=6}`UTbFiD-Yl zo7fKRK;j54;yw*1(^QMHg&tU`T41uE4c-KKUpUEKfSZ?w2=<$!WmrSSS}4v1Ji9OK zaX`U5N0Kn*@H)pbD=mR};})qEi&+<;NqbT)B`!gpQmGUhdIe>dqVh9}lwxg#L8Gm& z-xOwQB8aubl)W;pk#5Vy@3{KIHpWCTV%zi0TZMeHQ^uBIkaRg`uYu2zoS*i=)kU## z+)FlI6Vc?mJJHNSQ}cR{e>~WBNz;dLz9xRPvs_o0SG4Wvf+XOss0Zgj(_tl;oVs@9 z?{g84q51jDKrlL5Nf zY;CXeCG9zQJNEwcGc$JaSA&%wY+JR^YxFyVcXF zq|IDZ9u*SS`Ur8onE6)D!%Rlo{55X>5%ledR-mXKTC$2lg?a#9&Sx9H+y76Y2xD1P z+W$w(`TvQ9`u|fX4xY^H|BW3CUH;REtCF_$AOnW)UETYsfo-Xa@)#XcXw)rGR3feb9~weD0PzGx8lH&Cg^F^S0ksku;E8ma7{)W!8Y`*r0Bz#5Z-z09 zWM08k+5PwK-vdS>5noYh>}KhH$Ui9<(*BW!!oESSnzREj$+5hXgJV_Elf+e&tSkniVje9{O-nxXwNh743RYoB2M({GUtJF_mZ008~8|0mU!oJ`ICn=^I# z&ug_>w$58@NWcH|1INz@H^yUbIMT7*d2-nru-hbW8kVM9apI*C6GFm>R1;!~cAxw9 zZi4^-d&e!kJ`*zfjT*W%uKBu-J$U3q6xB*4q8Vn@t0|;~CeRs1Pb^$Iw90)(ni>sG zlA6-9QarOpjbErvuLxTaPm<0__0K{noI79#7d&|IVqZ0AJXIb;aPjf*_&K?JoP1ae z*@^VTm<;)kG3mvK8???EO`!Gu6&KCN6Rr8HGRcn6=!iG&BmaF6f+6w?>+f zHHr>gqQ3JeDYteeSqEL+yqwHLqf4c-5vDVxhpnmCTJq+dMlVpv2^y8r9&px7>jC7)Sj?QNAv$+W;6KYeMq0V3l>)B6{^3)Z-3pWE4Hih_Ofe+VGwdb4;*8;fB z#uYMuWb7~4w|EFQo-ha75mC$EH!#QDU-7#=U6)_qh;z=i@+3J>^qH9{^M3YkV4A-|8b((qQ zJdMVMDLztyomP=3Zl6T@l)PPMb}X#k3->8Zz(6a234 zIH3NWW)1eKaL!tJU7sR%f(+vGqd|?6n_|SRxY{kV)=;fLcN3>ZfXZpG_Ej)9CC284 zW%C&iRGDTAP<0(fz<~}{UxoG)hOa=Ftbui$8s3Al%4rE(lnJj43T;MF?ud0orO@&( zm#x6B^$ljYXrOn5bR0RsEyWG(ToBAlOnfCt={~fcGMUF)S5pYd(Rm{VcXtxjg;P0^ zK&{K$WY@k^4+LRJ{!3KJHzHs)MJ7CkYX!jD;Is(u1Kg>;Kx=;kJ)OPn1mKlFj<4Bq zbhV{~b5Qp$m9K5X_Q)CD_PT{=l3$Ae4~p3!-`iXuTfW-l`<{4RfIp~o3M{E4H-x(- zIfbzXoY7LHH1tB=j!lfTD?##rI3!CiZnP#g7ZA7VOT0n*59aa2hDF8P&T7iLo?hc! zcS*$m){g@?u$*|8#dr5HtOc3Z`$(kJ;aGXz5b27ItYQKzO~!H;*5;GIlSzjm_k@ct z5I!Hj54ZC5`*L@4^!0c2dV4xQN>Lf_$%z5;e(or0-#LMB_O|F%ZfB^S9MGzQ@7Mjj zxAqAeW@j^!D!S~~ih!B;4XUFdu8l=usBfP+u0ZLHLrWo6j%R_yBH+je%n9ILyQlzU zX>EvqjqkFTD8%~st-;64NOgKxOTeGy&}+l)GwM7~hyG$^0VRP5GS2+2P=Vh^@S zp515A;&A$W$Cg|Mkwp3DmRR-#tQ_n|6vruioLV)hgkp3P(#cGOFvf8{kLnq_gl0ga z*WDEfjnGt27K2M5($8(BQ=kb4p4by+_E!VJ&ehG>V^ZX0G)lhiW~D;u!Mhu7VQ9rb>^u4^Zfx5ub`|VI5e9nZJ=W zKyF~)#7t-_U~f&Olpbqh>@Bh(r%I(iSxQLiZiRd`2s}V0NTvHj5hD8OJTiPxBbOy? zI?TB99Hz+&jBo(Ib%pLZBC3-#XfA8PzER6)#Hi$5?(LI>D`VW&4%QIv9)XlB+{H(NxOw|iA47kr+NuO*BQMh<+|$wj5?bQP`3|LtOczI z48KRwB3+^yVFCoFeL3piirwpjoVjk`HG2ukcTQ2!?g50HTEnz85uR{maes1F)b(AF$hyNui*E10N5P6MpmtPQE}-0B%$Q zf&>Q65J|w@T>PW_I19U-K9)vQ=l$J?wAEWht>uNasj}$4F#8$(ThO+_eY zB?BE?xqEbMFhmOe5c0Xk>XvX6GH;m-;8Jji%P73j-MFDvNiTZZ-mlDv!}B?*_PSIo z+lSRSL2Yf&RzJW*^3>Pm40hw3nfOnb9N5-@w+*B*s-itba53+T0~NODGtRP|S!*OD z8hPK5Kb5)?naACtbTKgH5t}~Yr4~W%|DLaG%U2NY`L+uM#9i#OUs8r~S6!RCMd8Vs zs8xS%lJkS?yZt)u-vn+i)QPXuhf1J|fy-iU;2y5>$n%1451vQp+v+Szi;vLkt8DAF zb=24KK-`6R{N2WHc~&j~onF?Pou?550li+k@xWZ>PNE?0QAY*58r`q5ib$uGirre3TZ(mF?7;s$h`M3UuUxr5&T)ACC}&vL z*osWF=s~>ro~FV`?Rk7y@POFh(BnAej!IhZ1!g|6GpsT$nwQv_Yyg(0yyL-=^wOUf zuTOm;OAn#kw??fcjp_J^cxV#4R6Q@+t{*{~b=>JH0GEbwSLMoHfK=lLy>~Gsiq|1~ zR_Y5@xw%@jC2k^KT$qcH+?cKB9+}$PV8!tGuW?rRDT09zKmwus;j@2m-!!wS4C9i^ zY)o0z++4hdT^J2KAZGA7c-vkzQvp~T&?b=pb%<1sfQ}58Asf+1z(Ho){`U+lF3=Egof)y$1x34N($cv+;7+)=*mCUpI;Wj zStv!SwH9XbU#Rp~TK*O75mE45qhtGxnY zMRl##KRb>;*)%Ax!TUt7HPxeEG{8M@#Y#PsXKTc}R^FKP)i(Y>HP?#vP9Pi>x8yE0 zj&4Q2uD^V+dV9GnCaIp{gIe5R!NfcCy?c45Z;Xo1Nb#;} z++A5f?g}aUCDNH&8Ep8+jmQwvxto#daFpBAjD2OD@dM;u2W^Ngd0Q16?tk+;lwi~8@=7-0pGvuq7v8nT+%rwe1joByu=!}ssw3T6IDQ69R%s3?dtUPm zBlMo;0EqhRM=Sn*NyEIEd^6=W`OyEo{V0>CxH9b;1n z^mT+Q*5sSOs_T@`*04$}fAsdYkgc>21I1Wyj#`&=9kZ*Lf7=fE)*7UoKWr^He+|h+ zVqWM#ENHRUc04!4fhFKsy1suvS}}otFqBU;QSEtSZOtU2>A{cj^>tvFyCZhb{I2Oi zE(vgBpj}G1d--{7XJCOBu;f2qyPz9zH%ZUixhPP=Cv#e`ap$w z&rNs_h_QIxCb}iwA^pS^IN`BazwU24)fxC77Pmes;v>;nXC;5wva>WE>7{qWe>`^< zWEX0n)?rODMZS7qQ8@P+U5Dvc3CZym^ZNGsvR#sIKiMSO0Wy28biZHBg|=_^2woCl z_tvsnyd#yHph~7iI|lL6Gt^6~jDI<7nM#pSsh8*%9jhn0x-aAd4bRa=94ORewd(G2 zZHa>HZ}KPQ_$F&xuQkrx#<=;d3M@+}K|H}Ib*TGuUh)?128vt}ava)sLKNJIinOGD{lN??^6Xq+ zEf1&jsg=lzQR)5h2mC+L?c1ed*9{c_fLH4OBnzzb|C;(=Szvi|legHC?w+XYvz!tq zC0!alvzL!&SzDd|bq>>QrSq)wp^6A0F{4Znk0+i?{l4AU`5*uYdUlsr$&esfuzYr5 z!_uQg7p45nr>9Ooo_ZX+CQACaxV~Jjs~u8Y>NWlntUEKuk+KjNdhtj<$=&NQ%$hK} zbQrvMQnxX5R;F(lHMDn9#oI2u)Fhr}^GsFiuHkI-TD8jX58qv0M7q0b-j#X=_th;^ zqaVm+0J=kE8bo+%r|f{?Pj~O8rnW!lxqlS;M8HjWJ#_3505HGv@_0b@4Fz(P1?ijN z#C_10xcJOeZGDP^()oGic@b+|e zQVqvV2s>|HXWfo_XVTgK!|(}+weM^MGg3jd#-^O2z5WPP4^Ds?O-dl~QX0epnp_l& z3bLI80TQQKy$Y__Y{6@1P-^}+sdcV7HC-d|2Y)es_1(P@jR&T!b=ahTu4ofA#m{`Q zvDNkG^YRrvGqq;#@B8|jn^l%z)OI~Y{v^O}Vu~v_aXYe+G?tn7(2DAsSO)#G?>6u& z+o#j8m!(y6opO&%^B_3$`FwDfpC*kyA~T4m^fJETQ>9Pegyz{Is8sIO02+mD?H0p- z-*`CQ7crVeYKJC`5Z-;L#I*RXa)oi7A%G@ys$2Q)GliC310e0aYb)rab}hY;)LWZz z{$$g^Q13>=AMuTs;^&OQOYbqKOj(sHtd9`E9UvHytb^H5oGAmh)zV<7?zWg6b;j^a zz_m>~d&MR-O)}*BH=wizXQ1+f;nw`fDZujUEziOdd!JM|~9cFomz4O+o*SA>Bw zi)(=N?BSuXWk(?z0%s$tdpnhLd?7P(4hknIL4H6oqT9YxsbCB^6`Ywv1++Rl&o;D; zmwJmp^TLh7P-PD?;iAp`E^qhe7Y;XW8R^%e6Jb)hX!=G(F$CThcoWMeV(sh~pb7;& z-&I-N9Hnp+xsV^+z=-^{2n{!?bWF$P`5vGd=sKpY6a~gAltsH(ac*RDTJy8|i{9}g zw~eP4Jm0A|LTI+@cDld70n&=&p6bcLlTK@&aGJ(0z?R(Kk8;30_g#~V8f61SvT+^J z3;QfUjNIyQ{I#akf>Y4!{2CZ*8+zfN;+^By+wSW_YLYcNg%oNC{tSTkS(lzm%rs4X zTA;FHnKin2QO=}+CP)WZB1xB`#}rl}e^amF%{($x!_5UK02`H`OqsofkVRwjk52MW zOu~yOZMYmo=+Jx-@*g*V94Io`r${xJ!Yah5c1E!zzE(;vk+Hu(#P}rcBp-JgLjLmC zG*&-A^(n|TxfKi^tKN~bSZfN-G$iS+QV#RIQK8{X_&;El2}+Ra>p*+j+Qv7v577KS z>uLlE`%L*sa@*`Oq;9tzC5!D?*&JxTvR6Wtjg8Da9dMd82qOxnBbJ>21|mWfmUu#G z8a2(D?hIF{Jgw`%P6QyMd5@{zxhFPu8Uj_9{9@W(#uAf1g?Ylq_4D!I*EBM*O>)K= zCF1ATk*2f0UJvl%B@tio#Y%h4zYcdlSAowH46;<$jr4A+J_zAi2Dwf%HaN*~E3MhV zIk;{W@_ASy-m0f47Q9eI)|tSA4LR&;0uK7o@oSW*^y_}@!{Wb1xn+9Ym_T6caN>e- zUv_|h8_L1e!9C0sTD?q#ccYS1}8ywnSzgA5BCa4p? z&=l^E6Zip}O@f26fyMRq{bKSIV)n9n!Vl6phkEZ^JIt7a=Q52fyNwh+U5&jIUj1zO zOZzT}gR$jGg$y(@E}a}jW5yl$G^E(`d89~|!8DMVSm<%nHP7?<7=CN+Po7Z#5qWYDj}nj;&*gn6lX zo`;-3Vv4oN@qt_-G|`mC20!Juo|@H<3Z=@@q*2E+lD6^Rc-=UnY;Y;$ZVEiC162qr%zzt%o1zB=aP_N z2(QG9YCz`=vBC%|tQ`r9fQgslj>%D{8Nx2=!q0H^3?K}~YH$d_!%W5^xGfB$&7OQX z;ZZ_z>t2V6Opw#eiy>9IDsG*z@D=8^C5(Hp+Q);Q```v|`0w5@ovC&mJVX6?)r4Wqc z2J(75Q#(R|Ym~~IQCFtJV``{rDp0>LDERLOD{V8hs4KMLj{`l9wMPN_}tlf6cF@dNtDoc#OW;ALMJfP{R7S);`{D24c3P4VG0lVl3LbV5wT z0ikEQByUW5#D)dE#&#fSu%xDK9l@%Mh+G9#%;->YJ?lmyZASw6Q%G(S#41=jcH*qN z5N~H$aVa=e|Jj05L74=SYRuE}fP>^z-X|qdkM$k08Bz;px0u6FSIQ;fd-R}-)>CYt zjzIUL28|a5fSNilm!c0jOu8+&duWFg5@2f^4i{roI^Mu6*UFx=%I=HCsn zyC8+aoy>Ib2kh{$jRa^IY(UhMMTJ96^5&&?#O!U z&B}z#q*$@%mHP0oJd|Ek7aX%&Y~FOp*%>aAP#waG+K50y6zu z+F+Gdgm2J*F-pKUpc2z4O7_Qo3vCD%8IUoS(UP<2p{xHX=>}WLqNP!klv+!Mh7!YVN{pz>6gAz8sU+t^BbWGp|Q?6 z03TE98#qFoM5)WJBO2sIYLGGz2TH~@@NWVEOM@>pkg#;PIVgC(ggc@}aE2Q3J}9E1 z%B;)l(G0#pM$)otteO(e=gzXNy1Q9)!u zHF`7=%eW|%ur12O;Sf&V(QdkuXu?W)sqm(>U&6N@C+7#!k4hAY&UbrZU+&?*Hh)l18iYoNa39mP9*l1u>?wz;Qcok`Sn-!~?*>`_)9|k6T;dxB0N+!YH}r3) ze>wg|eK{q?ieO4wkd4!#03#@SC)-Urxibrrb>4BYFoBA(LzqC!qDNrNpB++iTf>aT zKFif^Cn#a|&X$yhaR{kS1SFV}deve+YN4pOMG_oNdlV~3j5F&z1cfEK8VV0oWK?== z!7-Q(ztWm3%@$l2rzt^vE?zO;7bmSPy_aO?Zs699b5&a13(1!?On33eXZ<+_#gyiPb5U;OJEoG?G&Z?U?t~o$>kb_Wmbi9$t|qb70M1$nL;dmk zOh%nGSY#TR`Su6_Qk&ix4qz-dkOt5Ar{#4wbJQahod0fsp747RAh6S7Vs)w0 zm*il+hhMBBE*vSzx3IRs4|ohv?-+1#*-)daYh3xMYE$@%yKE=J%Z-Px zeM44tAE$U@8SW;1RuUn-_8}qL$M!FP{O!R&>){LUZ?^^a{EKb9aR!+h)M})k%WQl! z!(&;M2lWV8;Lh*92%0ZCjwT>xU}T1gj4aj*?cOG?@(O%@sj@aCmq781WzE-Z7G#b5 z-RaJnj2e^Rs*lgaT9C15W<~m8K4o5&MLce30tY*M(5J~t18cq|xp*H^pz|>*o}4l> z4nuUD7{?cG_UH?X&2m{&!6`|nD=D4`YT%IwdnHKd81JP8?HrD=;}Vfu;9sd3@?DxJ}I9|+{@!7-@`{t)w;V?$NqAni+7 z%V}k(x3Deaj2$=*adQ)A9|smZ426s928n&Rb`}SoDdB2RYS1DWB%zD}AXl0m6mSq+o$so&mwP zp2P~^fzrR5Vc`uJB(rll-K{IJ#h7xBt+HU>&uC-x!>ulNYPUD;?}=k!Sbz8gev_}p z@V+g2f&>Is_YM=eBgbXDYF_?9aIRkasRxtbPp-qUzOKS51&=d%bQk6av9n&vmlHxk zx05q%EqdiRl(j7G&~_LRV$7V_9Kr;U4}qxxJ9|whsw@1zypTxaXhXqto}a6uvEgc7 zad0yEWXHsCox{c|Qt0-O6X1R1?>cEdqPpj{Aw7SzH@ zzwZ|jI^`ezSKXj8ki_7Yzr_~Z;58>v3;wh+vs_e(XRvHmK5h3fD!iO08P;!j9E3bL z`Pt=$Skdu=@dk11Wo$i_6jg7i+x(1+*CBk1Jl{^P zQFe{QM)4omqT-@@Vv?lwEf5QuLo&~ULc6U7o)G%{2BR;O*5_S0Ich?%ABQJO90&^O z`@oAg0){oK6@9($*Tb8pH~Ku{2Ai!3C>YAGn-_1gs6|+oywq$Xewl7)_- z13cDt^Eb3gXmYq>@e#Ihu*D^pu&!hT8*r`~9IiCfEe#nA*CmE!j&lG~@WVa3zR*AX zD-sDaIt(BwGcvDTn;NbVynbLZuH?iumld|m#%oPRNg?ODpQkC%wIN+A{g zGSFI7adqZm6brO(ta=KplyD1Ci`b|zbEZh|eKAQHA1FY(Pyf;*yt8!3UHGCKl^7tJvM{IMZch!s9RDcA{{y19}JD zmcFtWUt!2P-kO(ph?8WG`eX>*rlTM^t$f)TDX}kwTxb}vCDe{U$sxetJ?sEk+QmCh zW0%|#fPk;Hb3@@5yRzzWQSR{Lg1&^LuH^)F#9jMIcG)b>!=NMr1@Ica zq}_R|s!cH{ju5kiiG)>4^Dq4rJVGr@KV1;DqkLcs#UNE~RA)dh0>2^iqB!1FS-85IxB z6q8l_cPWerl;8-s*u%;%>*Ih(2cCd)QId8u^x*UgTez=QsSses?R5G!Ts)?V3&|82 z601a6h~BgY9Z_hHMUB>)$zBQJemXY}P-&RFi2>#(p8Hg9tWH?EENK;kgO$#=2GM;p@hh|dIo8+j8o(<=Y@w(#=X8$RV*Gu+W4 z#L2}9lJOKD6CCdxIm|QCw92_hNnx;y!kNx5Rdq`2#1x2i1=`k@_^Pq~?MzIRcVxb7 zYYbu(gZuKC$x)WULMPV4{fWTgh{fDMvW)q?7BabC1DMkAw0dZ(U3?kCtwFmwj&Mgk z)s8N^CqD>?+0cwq1BsB9eQAFqlO5?j8*7cZj_>Z?v5WK&#J1vXSv%&7dAp-;T`5=E zVYx)?Nw&|tb0Ik#>KEQIk}pXZW+nvI=@Q)X%0rLz3{YuWRWDN*MS4$x4dQCExm)tf(@8D$e*_rO zX3ep2wf4Sv{n4dXjuP@4d^mF2QxbSQ1)){GOxf(QVi}DsY?d!IU#^r$>V`2L(+l~! zpHT0yE_hSKY5R1l!+Ci`>3WVut z673RSBU@d)0+QeRZ#mcWC8YN=ZNWH~7c38BUg8WODw&;n<&O#R{Y?b>Kw(fw@WD@B zr@$V-M`*KO@l6x_(2LNBh27LgHQw|ncJ2QYFaM!N%UugwDY;7Sq}} zo9ng9KQv7ad_CGSi|j^s?;)HoiS4abmTY3@C&7&e$V6KkrUpdP*Zp(v4F@t1WLSHy zneniDPyCg~KFv{+opsJMC#?&Ywz0kPG0CiHW8~lDMjUDj$xB+IJ6OUy)*yMKq!tO% zIkVEjGxiRHQhG>MI3_*QD{qWB-hK9iu4+_P%A(Iv=|^j+Q}&ZdE80mMiArNSd5JHn z^}dj3tCU_|JrON)Ss_*;uo%s{KNguaFl@Q$NK}N*)l-B|druD+auEugmT0I6T9Vf) zLXR#+ktFa+rl4Z<=h;-%sj1;ZJuNjCo%&aG^i`XE%SKp0V-dV)ITIfY!E{&m_Ow|O zc@)+MI;xE}TS24^l@IMixqCTc$H)EW`?IOYJioouXDn_qfujGJ10K+4>p$uak5?K? zHl}~CFRe6(N;Y|pl-O=g&yVE|`1a|! z|Co9KvAv-i4Owfg5u5#DmaXZD@~47A6U7p=p{C&vEFu82(!5{%6G;+jBM1st!MI)((8|*KM)5fKRUh z+hrt*YQ8PLggg*aq}wz$g23fW#>m4i^UC~w=zMjf+_xBm7S@-(#a#F2Bgp3o7oaoJ zMzih(V5UeINN3en`HqNUad0o%ou^@CPROLu&4JjdxKf*l0bGn2#s&q~dvUO&>a(rbv{gLCHC2?H@S=-N?dH z`n@yTWEbTI6o9uL^H}J8T3e9+z@|wVY{JFSV543+YKEzG7a0YU^*rqZj>6dU%^5&R zwpG1W0bjo4xj`@1!_tUJ8gXpn(#Q2tu|09NXPi3M6bY;k;HPlopaTmNW=ZtRT&pV} zq;cUt2OFn2=bc%2tG-#tPT*h&u_<$mHsMxqsnY{cgns1kFhmHkI%t@5B0G!{^P;c4PZvg-Z-@WUPPF#wLo(GZGwrpy0tn&|p%WEh zoexza4)bdnJR`tyxWsgExIqkpdoLUwZKTV5MHmMmwE=D39c_=MOw)yo)~YCkfl#=k zMp;ei59EC9$?&zskrHo;DYmuT1<#cpW0FLyh@j z16r;_B(OEmL}Ek10s%Ti97jbV$dm8CLMN`tDTguB#1_OYHEz@X|)A0ns^W4%6#u3Y^)%(5lt(nHgY>oBVmuh<+?okVUDv@tESmCmQ(mb`#a(;m0)H z<}FDc+RTZ4Hv--t1Z6WP-e*dz$5^3rapwT}V|1>X%#Ftk%zRO;V^EuDZc01{Rp(-k z<5Tv;&kRRVXRa7druLe)4$E_tCT=DG*Q{zW-;Pi~(PObg#X>!mW0vMxo-snq;6k+D zaQDS)PsaPoYpf#sEAbps!Nz~`D6$LFYP1q4cuQbG35Twi1)_b#W+?;#e`rQ*e^ntZ zner2XBsXzC&#-%e@80c{g&KvRFJl_Pqer4AQAv6sKD}>%CRWrM(kb8eEl7DyDGxin zh_?)p`x>P!sZ=Q+Eeif2DV5t&LPxd$P8ru-7l;VWO1-8fj(O45-VgT4(U$#$>;PrE z=2l@SGH?i{T0@?Obkp{LY)ESWNeicGt>~tEg?FjDYnTL5qs%hmkSM~anwOWl7bPdh z!MO0^8b`FZ+f|rQ=6#I4g$|bcV3^IQP9>es4m-iNk+^fU#oxCk!<&$Ut(cEo2TcHuXM(7qvEGx^JgC4@Kk@uNlb- z_L56S$q;#Z*$Fn$x3a+(J|YYIvHu6Ev{ecBi!F#w$EyM6vkn$8RFGpoU@2g;cFbD0 z51oL7vr2626^R(Y5+*833!8*~?q-oFbscfca1nZhvm!O%Qrp|E%;I#JqNYFk-VZO1 zGebJu9~R1%4{$y61igONW=DHYQ$Vqe>zg~wVq{ftW=xPaC7yw$BGIEZNoSMg#rwAc zFK&SW_W-;srvvjf&k0fCf~~|Ck?4Uz`aZ`EQ68En+ubn4g9FwS6r5KxpZlS|W9Y#y z+j#WZdRE!_-%VxN7a7B@A}rWbAPQJR*dL%5l79a%a`q%$?nhGPXHehT$Ln&}s?cEg zh)IjyE1BhH_v-qttjOQQG4G`UE@+RYQ85~x9xF05O_I?(uI-Gt(R1XKS_&bc;T-31u zVp?D~zlen+EHrYy9|!qL<9f6w6sY`VRaKsJYffzQ7Ho2rQLpiX$10g6tJu@+nNo&q zdd{QKqEe8ntFNyozn$2zBtyNJgoBTZTXen002qyYaXTGc&ZL8Ys~t#&+@ci{&a-(I z;JXQ{_S*B^uCj9N&D-mAivVc4UElzYZwKK7I zqSx2Aw6k>4*Z(g(1P1t@)*?exz!`7=09f1r0EGYV*7i;&rcS0N`u{Ecx513|l|6O` z;@`i%paet_DRv=riB*w63&Jo!_@v7<}nl;iTLW z4#N6cQcj%N@6(AH4<5XpiH*KVkrbj11k~gxN3^vnDyCOu-3L>ud&ibjRBBPO#!?E@ z@|aW4jN!YR8aY;T2S#urVe>GdrJ{5`&NN|@0)ksB5;XQ>-y6bA*V6xBr%fyz8{7OI1hM?|uqHX6tGGIP?y z_AMB(`xAEdot#jwr-WxIW#$C;c`onYyGI-I6?a?D;M)sDI?xvb4w4HP2 z`Y%em(ylHKM_cy2+T9-y;%>7jdG3$SiP0Ap4FEk98hsl5P z7$US2I1Y^9+zE_bCzi1^9FQV3^epUZVOFENLmen{AYF6@Ou5aw{SqNSk&1Xgn1}@v zGSrEL76*=$2CW2M^{Fx#n~5lC`U!b_E_BU!LYi9p_0?SIj)@V}NSYvHk)E{%`~i&h zASe+yk#Hqj)xddotv>9~{R&Z4bk1yr^jSfJs1ex_v9y^F%d-8>fgu1U5HN7%YtE{w zczGg9OG{+{s~jg%o_tn|=76^EerV-lCF2bZ-W+T?&pWtt`v`U0n)-cyH~0sSEJpWt zp2M^IXWfaC)^KtR#U3oN{tS8uo^;hCMnxi>Q8*BD6X)5wjxJ!qnLtN3ak=!gy!judviN7`Q<9dVWjck)kxpn!~~Q=wtB_u3x)tzf{`#j?qEh> zqQ@+S^F;x;)rrOPh&8Bm*Srs*?D=xRoO5vhI7nqfs`K9PhSq_REJ%1>NF8aZeAX!- z5Sa;5@FAisN{N7lK`QiwhnXp|S;hUkjMSg6rGT@xeTLmcXIhzLF|Q}maK3>6lf@J} zhjm0|rxPbfR)sh7c$>57C(6y4PD+=!ZNJxTt_}r*Nr7~AQc4xDA(k=3sG6&Qeh_`) zTgF0k_wz~Nn8$Vb)nZH3_A%VFFa%6$c4!o8mnMr+z*p^h@SwCb`cuQ5aiC|qG#+D8HklI$>42myszl7pW0KLlX^v-%1ECQN@6L)G-IgV z(Zf(h_U9cpzmVu=Gy5FdHPv~%6h$!X7Oba?8VW2x+-lK7xsWQ6g0EhJ7Vfu`qy=ug zBeqk}qc_K)AoH#|2F|}4(SDW^k7l3mI3Yaq!R;?nLROrPps3^RRDeM= z-}puK@tsDIR!Mu|;y%h`1V1Y(6q6%1;~x++^E3Cfa(CGES{eTI~>ZP>$5nSdGZ+6d@$~ z)jXDO4WlfjSai;{$_#@IxVO{@(Taao6gIX{2`-q`*(tF&b8ejY;8P#y^rX(gq7a~h z?;W>yAa(&l`_U7ePpT&KN+k10y3So+pscmfw5Mh+hWWm}J+`-i$0E)~rr6kRj)#y> z2r70#6Q|+Rr{h#VEDrNGH$fgy3nK| zV97Pa=@j0;2#K0H^Im&JG$O&PJO#?wo56W|inSa{e|{9PevAY+-$~7-6OI5tYV>9B zBwqHD-L>>Ed=+-beaqhtZ_ES(1(i6m*!Wy_Nble}ODgDxJ>$cKbBSJFGx{m(t(9QG zlufckc-*Gat^wSLLm`vdB+1}J0BPZduuZcYl+=OqCR5*?A1~uCL6oEkiG&xCY0vH+ zqHtyY8^NbuGaG~t5d)3pskf9j^+MRCti)TOCDDc56oSNNsK-PrvFS>Cz(S+$D@trV zRMbnJTea2)Inj!m8(LU8s4Ao65z6$QWHJp`lkXY!3{m`H&&&Omu~v;o<}&O{8L5@2 zXU&96?-*ARLKBBGO`hK6Vh6l9B%(Fq=!3~yV3+dNhS)^O{=xK8+rA_#JWB(D7tu93 zI^_B37M51L&Nn*SH~As3$Y`9WFP7y|r)t8=Vtlm~G+!|vM09dW*eXJKZ!}%f;P8;0 zl-UK;vldOGnJAW2L9@hn<)XHnnn*D%(n6Okf!$j04yxTF-@OHipdIB}Tcd|v>o@;Z z*$&)Lb^)&R#Z1w##hDCT*ljs)vmaVt=_9|77t&cA~aAQ#OYVTb-Bn55T?6xz|_Z3%n%2mEoYd zP33NIgTQ)Ug5Aj#3i#ro`3-~+3T(@Hyo|ftAEXX2L3r0>djQ#H8@4^zKFS6%t&Tz~ z6I#snB{tHD!rz6!84XTbqWfC&wt}-ciS&4LJ!+rS=u{AlZ;7YP2GrV9cWtgbk?r17 z1ns?M3=wB#u|Y&XiS#vb!4}l$?2#Vv%gc|aCE|s~;p`{Zm&5n<0dH6?AJ#3&3HPU?QX7fxyW80V_|wLLtYP95P_}-q?QnrW=!tOLk{N z;Rb|j-)}LtNueKhv>y2p5L-`a)Rx&>?j*1$`l0KhN0mAN7?`(*!UT55TG=BwoOTRM z>5mH!YOkiBOt@u48@QRWgkg#44YquIsSHr6?ij*Y)G*Ks{t5E^P4Q*AN7zu-qTsY$ zT-v5x`hYP|Ey^H|y~~Z;neU-+9WSW|-dTUz&M(F^aXs!W<^Ix@)~OU|Vq}{R#+A-K zUlsLg^;G7V5j4#ko$pzZo4puLn$-S?7r zm1*}mNav6)l5VXQlwL(ijI*`}QOVj7XAeWg_vx;;Z#BwA`u=l;AM65w6-QbWH=ep) zS_G-@!7aJUI#hZoXCEELJ;hAx;WoM)B`<5*I z_05I4_pamPnh&fpr7rII^Zb`WkCZJa^!Iy+tKy5R#7nek`1l%S!VrN-D+Bf^ig;dj zhnL0bpjEjK(IeUJqElbY;@Sc9&X?OAulW$?4%x|Pt@mpN8Q<&Qn$Y|xA&F(m(H8F~ zD=(4C`r#ZgEF>3MzuI2~G?|gY?Qs}WOSc@5{Ou^rJ z`YK(JJK?Ko+pTEC{rpT%{Mrn;G0h9LAsqou>e22Mt3Z(V8;#(vgrGr1hAsPU8FrVZLNbuLX z$ao>WLEY|$jz+!a)VILqBd5Z=s|g^)J=U1wfh5wdzE_?cIhA&Si~^he_IILUqkK_* zKw7Y6D6=EV8Rr$z;CsP5qe9oh04L7Q#kv3g#9A}>kOtjl008$W zU;zC8cdT{rbTD*swzM<<4{EP{ZN0bH8qeSO4OhkdGJBPfe%D4 zxIZ;Zl)PV+WR#g^o@yqf4R|V%kgpABBATl*#RV-9Nd|qhVC0UCXd;2C;tg-OGDt@u zQ5}=3=9tZM0YwEPHphfkI|rzomanMlkSO@!44Y=gFJcIQ9r>{2lWC%=uOC}-Nlp^f z%r`5_*)#~S-DSJx<{9E!&6dan!7|jL#tXR-bQX~ziAGPGmJXU9r zvEaZi=V*3PCVNEK9V7oR6(Tl<8h?cHn&}yk%v?#Pt($zp2y+xVHzyH72RLb9YzOjI zQWHR;oF1d0uh4a$2VRN4a}N$ypM&?`^lQSt#s#U{>;Bx@ZQ3yxH2(tdb1&L2?-{z& z|M9>Oh-BZQhyTOt_QJF2`}V#c+MO~F`Pj+V@7v(zfY9rKeAVmT-P`g-1NEkNfA#li zeS7TMr&RI%xMW!0^KNj5aDdlW%m%WxN5AA1r=WM+yY_*XZ_U5Gxx@YCh043b?G>q? z1H5&+_xhSS*qx34+OiK?g(J1y8Rm3|5E>&b2~U#(mmgMUHZ|ryE)mjw7j*y>xl?5 z-=c5r+bWH!1DMCAqV)Z~_|o+Pk+mE8bAx-+>k;|B?)LJ02lGSngVXQfTyF8-r zx?%SQkH|T**As+}(5-lm+80YzYPpX_%4I2nQ)w_{$!cSph$L~fLK*8 zr~=x{lsot;&$scNhJVFK7cY*dbc3_#k&1%B0IkXOV55HYaEZgkMTO)ES#(u@P|uVz zS5SXJH9Ky^nOCZa%0MTjNtS%PJ#gj0vW!5aBcTD^249m)%$Xr~1Pn0mpLCD~O4%ph z*LCGD-sj5q|D52M>#WZ}K7~srp(|Lr|DvL(3ry|>?p0vWk|i4 zgGG4TBcDD#1i%_-gaF)<51M`J7YkhbNkLD3FwZ3jkvoEO2E&Fo)NY4~alrEVoS6NZ zJz~n6&aCB+3>tgzhyj*PBF}fVGuYzDEKjD&m@6pO@crWzz}pkKH{}ntj3Z~C&VAdn zH$TcI$RugUP6goJ_TTfJ_x;BDQoVkB8gPJsg$b9p3&P1T*AaZ14Um)4?Hi?Luvw>X zWX2%3^M0bb15Tq$E|T(KuIMsQyRx+-iUWGjL91t87J+gB>qb)q=62-C%pEJG@|3S7 z3iT9Fu1Op&$%_FK8&2XvFW zfwAC%hXDNUTw9uwBg1_?-oSA;a3-%7w{Jmz&Ib|K^;(V%vJ3f}$NqlQeA5^(qY54g zd0#dPMTixGOW3V*7T`sR9($MoVYAp34TNdHu{kOC%}A2WIe-Z!5jDX#d0?S5Wv)Y~ zLx6lfXrtr3`z@}fEXJwOyXhmR@=8v5l2iq{xfjzTLA7}jfMr=wl1R=992l#$4?qy_ zZ6I2IVA2jpm+Y?bb;&akR83S$szZ85rFRP|McwbeFNlcj zFJu`qIrN;;gh7IY0w$WE7~-57#DXM0snc0(p)A3iv?quFD#IrjAfIf-a<1szH|snc zS0jHr_)LOXT+cjNJ`9Ken(z0htE89@UzM?H`?nC88RpF7cwh-aJ( zn1IbdRppM99yy~^?x_jN*-d?^i69h0WC=!JAX}0ncyBzRV1TT~1Kt*JtQ(_^9BFp; zf!aKF{x9<-1QX#7dbNyzq>>Zm%^$oI5244M=){bxCMFBx9a&0?+e<4eLG`s>1wqg`Y41pfmiZC=fYr?oeah9rT2A z!=>~1gax@pXpw%7!ej-eUGUoi1+X7)SF3>HS>QngEIP;l6L7Dy}i;Kye zB%TN+qHAA`?Bn6tQ3K=pT}C|ovZWCHfs1E?Oi&jYUG1&!!|eUBAzUh`E((}%>4gtf zxVnKOO;+68AJ;e@Qw1P4ambp0CX)ox6=W+tH+en$d_SRQ-_&7rQKu?5wQs2HC#d`j zC=ahHYyI?3ZX72jGyG03-G35c%{WGfBv{KPNeIOM@@FidSNH?rIKn_rdL`xxJw@UN|6+gP{zi_2%L zjbMPT-!ZQ%CFq2Y-h%Sh99XY&s1HxOk!)(#q44?595smO4Hb_PZhxR5-4)dC8!`6T zazX^b*)%pcw|V)XOa#I5gX^C>KiIB7^1%xme2Cp=UW4%J9M+#K9r1iWCDA=-pv0`E z-U&NKXZn3ex*&LiaEpC1)x9x)jAoKYOK^B*eXd(lDS+TWEi-sxlsx<}KWRW!crz!qWF&ciIFi2IU8^zC^ zz+D(@f>ges_}=+RP#bh2`}X=F(ak=XKH^Tyx-!`(G#}xjadk?Xgp(#astD5jEtc`7 z&6hpD{WA1PGJhM1!-@Klb2>Zu3(v_9e>8qjGu~B&YubD-;c@jEKT@>zlVyHxu98zO z`xTwclhP*)eaQIrXOd+6V&ST;BpZhw@p;EHQ5?*p4aI>9#oT25qQ7?D!s%b#nG@vx zeQe;MmTrk6KHY6hgL3g@u1AD{?QZ~Hr=FQHIwzNb*CXiVF1CGBVFQvPzFH(e(nl3| z=XD#S0L(vGaWMk?BI%FX>60~%lf8IlWLyFIn{WzdkD^1yp*o1l9^U28XM{e^3f+cVZ+a?jGm#Y(qzk%%_Sv&Y`jV+R%dA@DW6Z-V3Sh*PAXvn;E^7Q zpds4UjBjJ&HhHosnJ^Ud4v&o1!Tq35pvd8}Xp;VgAsP>N9BP z$!?pfqB**a(qFv*IY@aAB#;PLH;WDONQ-}PR2t5hvk?|BbkxQ_GiN#%!A4#59CpjWtx>=aPK=XvTuZHH83(lw&It0rIeIH?LAwy%;o9;AJ=Xp4`GA;SONm>L4XmO~;$K(>keUGF z^sfJUw!b|lP{WixbTR#u+x&TS8+{*cRqdBY%sv6-_4ff8!_liEk~$VZMaD0BBn&DB zHshn4*Jw*AE(w#faYoFYAk0G5YD{=TL|@sVo6DDy*`=QNV1Xu+L<@w_pQnMYiU)}Y zO3dDc5PRhAYw~r8oy?I0H8H6KDkAA6OJ+7727<`=h^Bzg?Jc0Q4l+jcu-r57f0UX> zAQQCnQ$K3*lZHYeanhl3X;m%qIQ82Ii4$S`#>*5F9F#!f%+`SuL=GeZy(-eF1&fD3 zU{JVB7RVjB5QP_M3~bJv>!Y|KtVp7jRLN>0LP?kkmKVi~&J22yQP#0A^npSS&><4B zN{yW#qs*eA_6cWw&|<)V4I~GKW_^Os8$u~ZFaAb!B1tlnF+u(11 zU`o)Sm%?=B6$7-gtf~xXLMQm)5ew5MT&f_JkfBq=C8~^(6P)QM=&^dHH=;!B;Cgsh z6J+V4Q8sh(#|B;l8A2r${)hn!#H^w?NgjfmOOhfNo)U&Ay6(x6SLg*0XU&_mnG4rK z12`lp4HkWsd)tq}_uA4&ommBMge7};F~tR2F`xJPa^Hc$?_2!Pg@mH0_4~)Mv3*^Q z_27N;-g+jQ34n>^rB>9T*;1sO@5FT+Cxg%%Gz8@Mg`oOj9C4nyJ3V5+m5v-J#PQcp z%Rey0hyTDiP?{(W7PCYj<{<|Q{fe-Jx`+1XB(S@Jo!BI)6?PzG9q*p+0K^&h^9T_D zsz`;2?Garn)vXnX_S}4&Bg`Huc;~Il9}GLCnb2_K3^HQ35x*mct+9A?wi3u;{(Gw! zk>@AWgG}a@nN)-kJpjS09srbIFD)O)FWPrR;fV}_yR4FYkVvm6^6iftjsjkYVIUn= z?nWt_V$?Y2C=}W^Hp_o0bkWe0mw$wmGkTMk$8+Cx>v9^Mj#W2&livY93BGO9JzZys zotJP>1MS~d*n~XP)Vt)o#C(dY6#;;w{$b7yHET*-h~sSFAhAdnBhx+eQV}ee`s^3t za8av)cTf38VlrCOKPwUVd_hh#qD-wFG%TnSx99>f7F8lZ2$5Ft0yG!)e7Gd9;FiK? z2b$aR5-YCn^RbfO_Y0Ol55(M8WDg%S`?{2C-ZgiWj5zHkj&-J_?Q{oJdJl*&FBuuc zy#~%m^lerg?rtviJPgJitpCUYEgrIgXr#hb6@385G)V1nWLgV!w-RBMM(SjD%q)1$}(6B9$9!88~l~r-AV5bU;(ap zIv|=fZLz0h;PR2fUQX!-Aof9lc2$6u-X-b)899GDo|WYWJLNFPG*4$V>2hZg3YcFvt*TUOSQ(aH-h zOn}_eFuerZQU24Y|zmPgQS!VSDVV3tLdBY%AKDsi17rgb^n0@vWw8w{PBT7 zyG(Z97QVUO=63ZC$@&+${rf~R4qup;w?WxWr@u_i=ee(4yvagG_u9D8UFC?jFjT^! zAbvBOJcsAL9oih-)#`_00q!^9qNM^UU0KSoXAK;5ySn9m6t;}rO713 z&5EY68RxM6t}y!xWjd=ZxSbX{>Q`@f$29tmi^Q0vKqOd^hii)^iz7a>;mU8uoe1V@ zA`qA?S;v@IwGV*E4NXggQ7!?@GJ)5LVivX?ftG-TC5RLhML02|vX-i5C0R<@jX?zM zU+JE3**#vz#D=pE9P9Zrj;7#aEox@Zw&`IcLwA62tZsm=Pey{zMii+RiyxX8+Fr;x$5h=F3cS6EY~%wu4ie3PVu z_hHdGt8g0{+!*CF!^6=mxh7ATxI&;(fZ?Uxih zpMAncRSd+{A~=Y!#3Ypu5yMxzT8IjL_eoOLd>-&#;<^V9GoZ#^$w)F4=?>``&hqt~z|gsL%7dxyW<^(ok{bR9WlXyPtAllNxCTx8 zeNm%9krACG;e-nIy72P4|H8J^qv)CAG#N*j7I-^zRfF-CirG``1qQoZhO|`x z9>wh87i_*2K72fnm%RB-Sds|8n@=z`uxg!#61hjdd;!a&g)JpGY)cc#wuHu2J(Q}(k8t1SS70)qOt1UTD z8?gz~N3ZDp%6@I0Jkx#OgYoV18Ksq9yu$=GU5r~h-V8eyQ0)m5xBH^h*-qxcNXn`_ zuYm$U{Gvg8-wv_$-nPQ}A1-$6AcYCd4B5;qR!d<*lQV=7j*A5oM?ni*_(KDYQG*0A zJ`N)^eAzvTXzd+KcG^L zyM~g~frW~F+-khNRkmDlS=x6@RPdOnEekj{sx~HFL+uhddwfZ0NFuH9U?WSR)G~Z& z2{6yK4mo3l0Rf*oz8kD>f(46Ml^ckjflJ4JWwmsfIdmf)=yS7kh zh}t|Mf|Dg1==98LFoZ%>xq~0_L7R4$3;?~s#x-U{v3@RzDxt9+xg**>fJs~56;c~l zZD<$}%UAA7QFj!TX?2pBdywY(1S?~{&?kfN95gT5A`gSO6xv6`6_0~Igg?!_d42p^ z_xPQU!D#P_VOK1ARJ8VSv0?zDz+J%ePhDVWjpKR-doLc1exbReNWxN3G%P#jRz8G- z7qfed9UqaNprNs_4+L~*9^eYNp%Y#}5y*8UF`quCzzQ@~c09ckYn?;8&QM?y{SgnL zy;|Mn-dHpRL@Ehw7d@rn%`k(JfyYBvc81SYXKC2^7w9(y3cDj+d$Ux>y`OxSCI@XA zaWK8M%R0J8%PUol2VF!A4Cjb>ior`M#)Ic>@USs;&{|Rh{ycg8q}UI%oZcT(ixQ7o z)mv>6gA_uL{amo$7U_bN2??7Ht$}zd#XSz}72lMozs?e?=khS}y*M`9_KJrWq1HNY zb*o^FyzlFd8J6XKJp}Q`m-T2p4^A^@-EU+qY&4i))k9KUxW!0tOB{SVHit-2i=<6% z)umy?L5?uBHMAK>v?v4g`$8#-6xX4W3%Fa#wVdkrP8FB{yB^J+0B}CGhN5bPQW8vE zdM%*$G49oQ_K})M5t+iLe6}y7s>?|7)_EH=g^7x-*tj_FUcpbu%CM{IV0`1(mp5a2 z4?Ry>gYTK_Mn!FK6ucLnw%kaNbATV5LA~bHry*;?S8Y~PT)ySQ&?8yvV%BBRV604aViYe2_kk)%clGo26m~Y46-|QDe(` zseH26qDUodIGL8hiIukL8|$#@+~W_CYJSz)1UB67zCJ1m0MFOClJSWl8Nh}(cU2{i z&fs|TH*w9Te;OYa$TR-52pZQ!9dx`}wi>l(j*@OQY*fVs#Z|6px7$%U9jTHO$<=xv_gMqRCs+Kse0BDPxbOJ7!^;#z}i zMP1H}T-yAgpXhcNv=_^SNcEXud8QOx+f%)1t{StF_F9$}xzmLY#_+_jleGXJeoiG6 z94C^0xnm?ru%Z)(UKfQp0iFm(mf+^}efyN$iH)Ga7@tcs{BeYdMySnL%IfXff&+9y z*Ncpk&d_Z%W>2MRW(b1~TtE&oL|jFnqhJiPs!g5;FF%OyWdkyJ!HwqR5L)3ZGcr^94c_1LaZ?2Ztb5yFl`keTp&m3j>@47)yQdR3PXfCfKj*Bb`3p;y`QK;zj~xp|k%7Fn0E z^!a&@-oZY?pdJ$Tr1H>U$@=IeLLb}mWyB+29$7|Znu9u5f+p~G^2Zpyp9TnMjk zD(xj8`WqCs{j}Vb|6O{`1ha_=7h%3)6EULMh~W)32zzA3t7!h+wie3`ii|gJQ&8cK zJQ~xAQPU!FsTGrkcB++PrrQ$rnZ819hZAmBsdY-9RzRpm1J;hErE+YP&r%MZZC$^Fjlf)<)RDRKYnIUHli_&&+j`%`yKnVhUQr zmBBhM>V1|*wTfUQlI$UJ61T(3Xz8!HM?k;eK2P(YlxkP=C73BH3wbGnsY19(ta@#) z5px@YE`d&?sIe^~zCnWA{me9hK{M&&QmG3e&Dd6r7=D1PZ@V>b?P=@hH236hDL z`4ag84yXS~)>U9#b6Dq;HwW#aPIQtgt!495by+8Bm6m%*YX{ADUbbIc@po7A>Tgi_1Bv}Qpg%}b zks4XPxeD6Bi&uS*WW@_)Ddc+7TU|rDVx`iM@W+jo2I<`*8WzZQhRTg%P!HwJIw3~1 z;2l^)83L0{1q_!}9izw%A~7}Mk_kq`9c%7VS+QF3XVJ81RPF5mjv_XIuJ6-uXq9|R z{GqX&+FgxvNtLXhj-c^)rDGZ3LU9u>Y35Vma!-CHeqe0}swM9Z z7s=`CdTyhn7vm2(`EY!gzGUE}h=l~(bIAT~q@yPz=iiYLGo?R@ep0d}L^%7yhOB}@ z)BP?Udm2nD>I*%B5ncmYr?gabjW{~}RxJ(7hy|TEtFFv+g&@15BCQ)Q8DLp*e$Bg` zYbpqd#R!=dCR?^Ft|kW7yY3>XN%ukBiDmIsLOc86cE)QKp>Z306JGJv*93`(ZG>Cr zlBuP?djG6|1;EORvoqMSTf;lDP(SMjiX!V;Q~p_F-I`2i34tI7uWe33z9B@TX_Mvh z4$`cGe)_KdP*xS678Sn+At?AAfX@Z1diL^?xkOH?=V_HNP1X{3&(^NWB{UOuOZ+_y zq4SS6?k;!HQa=n>b0iEIx;2Y86LhQ9 zP1gLSSZu+|7Veaphc~=4%203@hBRQsR*5!41y;(ot*2z z8lnQ6a?7@aE%;;vEFr#2&HpfI1e(Q5O{Z4IOnc|w3itGyDL0G)w#T3)%hGmGJzEkg zz-#W-1HR6m+lbNFsMf!Yo#rKthDBWrE_0x4q!x#f1#bwPgZ}63<-;u~q?IJ& z($+>t#1lv?J>_M;l`m9K06VKoa-?O1*h-EO?r@lQC+7*DW7amzFsj@~NtDZXhOX@u zK|3%t2|M1J1q6y=M+*J7$;1S@eXGf+x0oNyw5F&rgbkejkqgBvM3K1)LmEts)y2XC zy?4aB#R}lZ?N2;F^KER?>%Qvo31_!8`adjjHV0>0gZuZb8raptwz>qZzGkS4KW^2d z=yS6MyKZT#hwzd!Juw8Ur9}PeMQ@Mec6qCEDVt{ws9kqMgdN$0zm%mDbY72bQJrz) znm#f3jicl|q>9+xhZ(3N{HXL)J)pVa9jgZ<0%a8I_3v>^Zoc5esz8f9Ma;k$eOFv= zzolioY@F$b0J_u{NVZ{`n4cSBsc)e`97bI14X%o5hciaAdg#%MaYHDi$Cq@bIiI7k zGnXxGE@oR0qxr*mvJo*f_?AE4`%BWAHlkSa3;wHXZ0Y{135A<(bgMlWuK3jlBT!2m zKLWJ}@><02o`nue%~e@pMX#t?z;dpLbmP4<=P*kZhgcw6FJkm3ANZ*Df#yYEA$@ie=_>$C^Xm-v#q^qx->5C(f!AaZ;CH{IZ;rNta;Wr*={c z_v>v52mQocXFieCAT~I+Zp!t|XLcW-HWx_f9D#!7lktlx_be!YClzzf=gv}|@}@Fx zd*IggNld?#DHK@8kEdu~()jo%MbvyuzXju*Vx%Q*o5V4uJs`6cHE=az@Ry*QhKne> z0~Vh!$q$NL0s96KC|yjD49%dViG~DbGgk`ijzXLGWP-rbh`EngSnbcG!W*SCTQeT3 zJdVpm>N6cBE)n#eGN}Ro>}DPIhI8X9G8hBR$A6pQGe(W#O#+L+zMcp!1_f>&urdZH za|*S*btO8HI-+H=Ku&~Dc;u#9B%`_!8EfZ|uj{@FSN}HaH~PdPBYB!v5E;&3(u6rG>tj14m^{nQFVq?>K#Nz|ufyW~* zxx_E14j5L(MtL40vpgd5cYxAlN7^bX(POSaBlAJC>%kG*Zl3&K-?c~m;_V*kml*L3 zBS*wh@+Vl*qCWHjTLgMhRX;PrKWk*7vEoDn^#aC$+C93SewE}3_B^(okoo>xg00>D@f~@kQ+})q~NYL*Jpt z23CLsSOJ(L0j;(i(rB>~m9db<;i2>**V$WOX7L#5M!UDTuc-Ldv*sxfDIjln;c_^*GE$-(nJz5>L7%BJ07?u(cMgbWX_E{Dxg>X~IkxuVqj{%%iM)FyL!wWGbPVK-oxwACgIXF8U8`=^H{A&b~TLYwc~p~H@vuW*u4 z0FsRl3~I#>%q_mtOi3HKOrF7A_z_vQKYEr5-Kx1LJyFufDBrw7usR*jr%Nv?Qq1sn zRr-QY>L9fczNL|fB(X}7^07m3FthHS*dQgth2F7JcFq0qPuf${>_h#dkAB{E(~QK{ z2nVjwmv|OnE+ObkfC$2-Em=`9?A{*3QM7ORrz)Y(%9P7fvBZ7eg>iL>*a9lBMtgQH zS|w?^KA<@?h_KahUf2{7xBpkLwaK2lP3Qyc&!7At&3{{KO0)5#6>D8;J$K)t=R-p~QioQ8Q!zs%F%iyT< zNoEFW07lR$WZ7RROEUXUmc2|GT$6^}TIqrCPKiy7|D^PZ%zrhsE!VQN>xVBM;>fh+hi*> zl={$Q(T@R8JlgeK`4bHBnzWIt`aDRDv8ml1J5Z?{<_)ejU#mLcE)h%#k zsZ&|F+UXU-)`LiLk}R&_26*fe4cy^536y+OvH?nLacoPAUUP5jX%u8*6ZDI2sWHNS zuZFf^bU0e)zt+QwEgv)&`K-A(08Rn~fwTQN#q>pWgg$RTwNKYm^;0bVjm+b-u(j5Z-n9U)rgndn+*BvqpYgRh-5uK zQ(Pyk2l-rLgnzScCuT>zHinF?jdmCd8yFGi;>54Ln9r$F8m&`y&*a7E3SAbrt~1B<2{3o?~0PrnZbuS?|Y zhahURbF=RWQ(MjxaR2QJZvIAYF%DlKR-CMT6shK26R){HULr z3Yc4>8(+XYaKjwtqWMWIE!m&bfKdf|btFc~6|sBcNJ-u%9Tb>We0w|iMV5|gtGNl= ziyDXe7&i13KEWZMl>CX=aa%aw0(A{XQ92!&%aRQ$ND#wKZ+=AzyewGW(nV81jOaSj zzB|eCDkMLic!Cit%SNzetysqUwOHU)pnA-?QO@RqnO5Z1gKZUv{gKbcTC zTX)|^LBU6HqNh1!iqy}U49d{N?1=NiCNH6zXeL7t4%boweTS#kE@VxGHGqTFTlkmXP#Y6Ec*m2RtDqS|`I-#|&w<_ZZ% zh*u3?DG?#iz-`?1M?4PA6OJtR76*koo z1%-(D7*{PIPvLdI*0Lh?LD=(Sl|ZV5;ap1hS_E;0BJ2c}t83oifaQ)W;itOvu_s<6 zj$X$GaZsPX*b`F%kU~U+3QtnK;=PerN=`a{Vk)8_@?{ zxvpsY=d^|F7b4=nZbfmA>F7*@AQ@Yg==AAQsXa1E#4#L;$Ax`qBT#}&nMHpxz?Gp8 zJ7g3Z4ueuWB~RTV(0>F!7S2Z)?w$9F&!rtgBoY8*&UirZn7Sb>5w)!9@?P@hhGBTI zyeeCSpw}2olrhr}J@cN;mvguc(#iUzoL#eG+>eXS}rgJ`swj zWsZRvD-t;GVT)&@c=L6?UUw1xU&Ye6n)Qg*V}2&8%ZD|(g*&2ANCRQ`aBxG9`6Y}UdTK;`+gq5 zgMdWyZt;Gbp-bWV_F(mHe|;q80GFA0;e48!diwBjdZF_E-kr$Ty*=x}Yrmh(zFw|& z*b^7>(bt!kcJ@c8-#gmAu9@E%Fpdj_krLawrQM3vm&R%Eh={^+XmHHIVAWYbpcvHu zwD|oBxD704wAj`D{4Vxrez-|p2D&s?X^?k*x7emybDdIck*r>F5&TNmDfPgQTx6n{ z)}u+fE&1q8ya!CY?Fe)~6DV63ZrHHt|Iob8y4jl<0$m5Suo8RZ)~%f&%kw$d=*f*P z3vG?8r-b>X?Xa~+!|*x$3aw9p05Gh8HzLuSqO^j>w8|_2OQk^@SOEdqueU*?HmGI~f zfW#_inxb~My|g{IW+y5Y9j(&-Bpi*m_HNuRiu z4lo3u(gEDHsF9gted26};EvY$VYY?#BMAlg3V1))}zi8LJ;3o+?oRHep8tuPfl%{4pO{;mX2~n=B@{&tj;>bNm zYPG!T@pnY*L7!`irs)f^&8WzUgR%KjOb0fENYm!zCoB?|)B7((;&tW|jvTkdPxvGw zEOzR0^s+prenS@kv8jHpg~GPWjCN6L>JJl;F}27hxUJyPLuaHaXOiL~t5$X3xsf@t zR(rpbGjE}ao3k`_!@H3)gEkudH=ZW z!gL+w{-E*ss7`NxkRdnOIid#)u0-aW^jJ|a$StP4MS*XMRKwPef=`yX$Cv~`ji;w% zCYSo14&+-M}^E(jyYZW z0BJ3lB7vAF0vun97Sa78z7YR!JOvh;C5NnZQT0^RD=n!IOAsaVO}N;-_}v675+#>( zx6TF(1rNBlFhBIltH0i_!kxI`-mzFt3jlQe=cOf<-obtGmo*n(M^Lt)x7`~!Pfd@8 z4d4B! z&EDDq1ROW3*{Qb19*vaVUH2aw~a7$zY{irsaoqvqdiV=2Oh~+6JILzT7=f z;7miFtzvkWY76{rA!q(tf_Vbf)}3}BfK;rXU}BUsNp-zr&j1rFoNLqO{5+S{KEJ!f z^^C=mnO=32Q>dVEFKov^R%z)#PX6HDWx(eiq>nFO!3HQ^`55}uzXS#|z2DqIa=i53 z#)s$&M++-Y*??smMzk(_lPl#t1czL5V#LfESjq3Edrh}}V9h10z~kAX7JCA-d6L%P zsCl@}wjtPHl10J1ENr!eaC0d%r5$1tq zfxGdIT6s#mSkD3YCAgXP*%5@8YcRMv#`;K3nqNR=cAE{RfXWhiB;FCm4+TZ94^TY$ zhw5BVpjs@9@Yy=!5~oATIr0#ThAPR@5G`|Pbs~@u=wR+harAqPW1!x~SF3(2lA=|= zH;lL@eq!jOrC3$^^K%w#90=PELGgUS;%BaL+~Q(FwNQs} z(J9AIAD5^9Iv;GO&l)QUxqR-*^0W#2e;%j5zqs^%GW9w3qeO;MN+OEQn#Y3XOJ%VO zMGbqZtZxSzo#@M$N~)*^tjUb})aD=9x`R_Bg}lr%m3`h)5WiB-6d_?crzj= z>i3R^96c_NO&+VlNI5A?kD7K}MT~UvUk3?&4n*s7hQJbS4 zi6P*8oQx{NZC)VA=Ncq##sn>49y52fmo89Fk;|N&erU%!1uZK8P1lyb`(Cm@TabrT zih8r!2!4%#qsM)re4DR#HHNUk2Y%GTeI!$yIfSSxLF|75iUxaF7}+p(`m}Eu+Q#=c zm%-?7?sb=kYO+~BVhA9F6OOb1tVD>9dZR!J*Fqxkn(IX1ja)PL69~;5S+xkbR&ioz z*SF5&JcP)^q15X_16dCfaA389nhxb+sd<{aaT@bftYTT@tOaAEpn!|E1H5P13I^k* z5C7QA;HPdn*xnVenF{6(9-NTsMA=;5(|{p$4}f!+6b_nW7$VS+>RCgMxNX-Cu*fZZZ4*wM5JH9BL?g2*%zP=@);4Bh zL6M5T6*M3tJ$o$JF<3xxrku`Mw57a-S%x=;z9e&g8s$oDC^l$>M7~q!7HGN+WrkLt zTmi#@YO>-kp!^anmo2|zxRvLe?Ar+5vhTC;Nmd_xxJFoWBg|-B#JBZ)0f8=wOteg$ z$I|c`vP(Woa~d8KQNtxtvZl<%cPQG7h|lJi1=kyN0GEzmLJkTM^;08jcg0tev)2>{|54kO0KW^vQoYeX6!r=I9G=d66HmdC1 zq1bLQb*2z3M>?J70Rv>d80<^dhc&`pF7?KPwZ1J`Xozf|V5>DI1o8EpIm<)Rqg$WU z77EETTWuK86m~rAs2VLtLrHlWTUB)^mN#ma2U8}*h?evQ_|3`e{jjhF6pLX|fAGd{ zW?vE29%JMgWupJFZTeLBh|VZtIb%*Zi6fc{cGX7DTRko(aNjLv9pRt!!G7WQh@tS= zc4@^(jSA#*aBuwiLr=y(!DDK{&IBsl)%5bNR6=uK7FOBmg@t|^O|c3@kc1wj8IR&M z2tKMUVGOjUTU1~qt`B)xSOquFM&`MYc}e%6GOmQ%wc$tS(4vOPZE*_3j)NLGR^2^s z8aH<2mohiEdwrENHn@WxmxHH?UTM@UYEzeJiBwu?8A1HJ*9<&dK7-T7@_TMwU0+EE zQ}8vh3^%R*zW^_Q(0}v8^2=KretAoMKHjE>ACIeU3v0UdLis3*Zb9X|R`I+4b89j0lO^Thh9=ZW=py4HsahlKnmOKV~PWR7%EtsJC6p)#$aaA>qb#5x|O0Tva`2 z;5blssLD7$xwWuiq$;U-1ko2sLs~J$M6gH^4&@@N1uxvvgd4HW)CZm*96=e3n?a>~ z(8#gCixv%Iz-2uA*#izM40Q&P_EBRI{}>7FXA~s_?<2|q+v{O;ju0MO^ljBC{dLMk zb!ce5TJ)m5-Vnz~p%0oh6$*51t`EF$_^KEuMKZ>8t}WY{Q1$clG;bqlg=>qbp|SLz zUOM;yGS(!3rk+OM{Uui-dV>URL--2*s>H8*?koUbIZ>Nxf()JzE*DAv3j?v}w&CD4 z!~7PZd!gligmM0mTrWC-s*j2g=ssV*oa>(HCEWsM=`zO8(xr@_yDVp2@0Lqi*So{A z)^+c&w4Dv>KXwhfI~;yseGE@iN)d*MWfL)J87IHalkn(R`t<+idRJp#Vae+Stt;UV zbZN(+{K&*x*0(M$7v_kkkG6UjHu%RH|Cnq1UY&c3mlGa`B`g5m;uOh@vs$y;I$8Fg zNVuU3HYP6e`Pq3O5fCoTJ9WA4Lu>RRu7>q`4er%Gaeybbd^x!mcbD;Nt`PRV)y3%E zU-{1g_@rVU)FTscj7osYYfpPa5auxw;G2E;tBA`kfiZ0GTz#|_1#8DOW~goPH^9^q z8X1#o9O+d20W+~E$W1jFF(3wmw#o(d> zETch2eu|OZ)a}2@z!sBPPmTEcfW)V`k9RZp{oY{|yx2RyNI>WSUccd7eRyH$ZN>y^ zG-{AC;m!7AZq8)OA!k7~y8?S8Y#Cge``tX@b4j28E^6|14^vsxZ=$awL|R+awsy%& z_18F(tBc;%T%T^MA)K{s7xx6&W>g8oASR;uQ)vNp2+T$NzSP){pxJ?r=oa3GUu4$0 zx^j=k)gEK8*e_!yO~9COM-rxT-oT}0xUFl{N*UyJSI+k9Neefduau8O!RV>_ZZvisAWjJ zAF1s~pn^m-)oIeQu||_-I;D*(>jzK<;06Q>*XF4oxDyGF3>Pn$)teqXqI`eaDp+p^vm(Dt z$F7lJzy{b1jwS}fDrsjWA_i{vTLer|hf-zYPX0@o3y@<4j}$C|kEZ5IGf05e94Jx) z3%l?zhwAAmo`f!OX2pAWY@^V|;UT4Aoh8W_c6PK~B#&3Xzhr?0Tp;O4bST%6h#y-3 z&rz}|0eyY$3Ob%WR{=x-c8ME_LYKC2EOlo|0JR`q=X1%>qMVDbr5=Dj%&9Av0a@&hid*tnPyaZ0Ehz;Ei(c!-DK+N1zAjc&mCt;Kn&==EgZ;+g`)s z%uX~mD&q27=H(9Hkl8QcgyA9g3YZV^SU<%tJ!7Ts)btfBt(b6DIb2_Bv?=Yr*nB+K&(gTqm`cr#}IreEi2kFQ!UBjI42kR|JfdF z7Lwf-)XBMI7iufVyE$xP*v);7wmZ(%3WArB!<>9(#~@WveA>!9fqEPsnAM}$1)>@z z!@!@kO~!4$&oqc8Q0oZUH}?Z<=qH#wj6_MurVUAruepC1b7w8=urz(dHN?l(&nGu_ zqyurB<2}%HGp?fxA-O`kR>X$dZ!of_CJ2nUM~ykHftqb~k>tvHj;sy>DFSsOaVn2` zO0U9R_0(-=xtZv4wq`%-Ovcn6)T|qK?T}*K7(XZQ|E>|m89#1(>ZSD!)=9Bh7Q`t7 z4xkd8wQyIPkDJH7#%{{0&^k=1?*hJl?QU8sx~&yL*4|WCbrVTinlbySg0(iBB4y^c z^w)vOz6`F>P~({9h?Ww^v~^hXSdy#hYH?_|ogplv8Y)pp+mPZR)-2ptcDWODB%Upkb`Eg&XmCPW8IGeI z`d|mUuvV4d90y!caa?MUPFOw3gy#g;Ku)2a;He(Zhl$dRldzDBn{^F%=Y2iWnjceA zIgqMmgd>US>H_zjeS#5rK?ycaxCFi}e2gu!J*?vZzx?N&olM`;!&=m=~} zFtxzN<90{Ool(`{i-aH+`LG#)rQYxF9%;o0u;On166!AjF=#waI3~<0A@fSu-6-C6 zr<{y`IbGj)G%3fw{Bm*n=!-Am$;B_HU;p`=$;B__>G+$k|J<=FOCE0m;bwQDjAleR zguo~vcP%s9dv9PY2La+W*2hM=LH9n-#Dk#wkM8{t;PvT&Pg&cn!+k*~b>F7k3~}pV zX$9QaHU5Dg4-mi7_8p5wr z_I+sC@|U|X@^-yuk{i3ZJkQ*1+$dugaAWhWB7rGpXSLmwPz>+NE!(|P0eEa|PPcMF z(2h3sh*$Ki#Z0vOrpt(@y7CpV?ki=dY(l+_6Rz$we0kuxnptqqBnfx-(G>{cEHJ%L z=xxvAgr94ST~x<)lQByh?bV(D?-qhjeR;;KS{+XhHVqDnf#y)z>y zs;*LCCR2-r;b&P%<06u^XtCslRfhnQbXot0hXfKUneQ0-HKu|(>Y|P&i3pU$4j}Q4 zMj*WzmzH!{8JMB-43G+K-j1r+7(8ISTp+Nj;GIJ7U5!=LB9SlM*9+qqNr<6Al~$9a z;qT#-djX(3vJOR;<6&LV8bL)0Dv-u$iONP)|?^)g63vBN@)!qTO_w<^z+y~GeRQWr$ z*Rt+#P%ajKblhMI09FNHo`Tx~j} zgv(9vD6SdT+$DaG)3fsmR&I5LdUaUbxd4{F0{`2meF4KN_A+knv?9RJ1ID z{@BR_Wy2g7qw`znvlfJr%qWf>=4@TG$Cq@Ebb75c{4w2isqIMicG3_T3))Pe&KG{} zh2Te1T@gZ->8@_ErQIX5n^{^>B6R2%1}Y?#hUj}>N1tON(h;W>#f>_GW+s#TiZfCF zGbwT%oD-j#MV(+g(9)1vu(r_wHGsz8@|&Qnv_mR@1B+5Rn4Sm)pDfrbC{>L9y`RKm z^Y?c-9DVjU*yApm@E3TA=+B-&YPb0`?C}L_n$eY-ip+>qkbqpIt%)RcB(8x;VmZ_{ zLSxqhLioSqpq3|HI_hFO-Qy@Y>S8TpmW&O4~l3Je1M?tmXZfdfRpcfqf!G1mL7g%A_x^JvuU!zuhxZyA!kF}>9%R#Mc6XWF&AJa#s2LT$w&~okTb2W-i z+u8W$W`Gg8QzIZh?RpkRtbt3+_mVR@K*|00lHK>FL}5bK&21!@vmzlkDDzwnUG7Af zpUi#unRCB%o`4{OcT?Zvmk7&G#%>`A<8aPJD0~CAYFR?i>*eQZt06YGphrl?5&lDO z@XKedRBfN5ctRse{N8d>d(dJcL;3aE0z%OBEC(aPe zD4(97B1>gwK`Rgp2>f~J@y)@Ad=yxh8f**VaX`7ke&XgL-sUFBWir{?a9Em140d`| zdAN-y=%c_~BFA-93|>XW$67|@;)WiO{D{Js5SEQZDhdf^wAMeU;CH419`}Q0(Ar@+ zKe4C&7Bk=1Gaohir(CO3kT(pw`^Rkm+h!YQ6DAv`VKAid0SAD8GF_s^oyFgvfZHto z{vV6~Kb{TkRD?;C4BMy*LncRV_6B@}pMrL#1ZK~&&DVEjQ}i{0A! znH**)v*t8WsX0^D%f!J(U#AyPAglQdQ~i~2=9#eh_s;wG(=>}fpaoW>A+Vuyk(|x3 znBi@Ww^RtjQ0(X~h*S$85xqBfPD`!(@4gJ_ewan%_kV+mqxu=AYOamN-N~lzQsE5H zvH$+Rk|O6^)HfkM?lpomgavwyK}RU!Z-Sz87APt%>sh$5k~q};r2Orf+b^Rd;Tpbf zZ*~pK-o8n}j;GZnqpsnsF9f2qc-Js$D7AT70}nbG8Y>LYq})i~U=W2?M)A?TWQVRs z60sznek+-j%0{|ZU%N@h*FZ5I$I|J1Y8>0KP7Na;jphZJaF+uy&d1}Uk>E@M-isCA zRgs#G6;2m`;QmF^wh}{T_6W<*Wr?uXgtNgZI-gbQ2cF8Qj&Uq?FHE=qE#Wrq9x4Hb zyUo!xdPkcZ%`+&KL?_pF-yjWjO?JGab@vv;(?j(7#gUWJL{(eRirJSfIF~ODr%_XX z*b=6~f!7w8U*Og0>|4MsxMniMi2J(92TQu>omC5GjhE}kK2pNZGIH|FsZprEWdc}9 z8Oh5Y!+nszgc(R^QoK~o!G zML3nS0~fNP+q9z~lbSqepo6 zAyfa4wk7|n_+xtijnn(8SiZzR)v_Sdooe>FKpH1HPhHb1vfTL znrAlNVoOrAJxeA2NB4gBhH?m#U_a>eJI!)s zJ}Q$@mb+=DTiR&_Y(g^O1nt}eAuY%qW1e%JUSrKADmp;qh zXH!0}@LnMoUB44W?dDrV+UcCsV&v_itjLrdWes>VnWOzOSt8DAk11}T&5uRKbl`N} z9M~j@FOxc*>9X-XD$Vw@6U@Y*)4up zgE~G{hORRh=PAde;*x=$?MdPHiQ(Nw4qDpibefOnc+q$==X}H`30WhvDPx%fS=9sR zmuQer>QNOVvJJsZYF0wnW@g{^oY!?NN))R+3J_Uk`y9LiK3}9`nFO&=GbdnVXPsT4 z$F@Tdm8tXBV&q^OqFyA=xbdINva5~W3ZJx$>go}z(dt_>4By2OjCS6W=haQg#=9|I zZVD+XDsbb4n5Md-u@+lhsp!P?BB`hbqFf(!OszyI1??D+?2MuMXRL*VWYy}g)q+uu z4iE+_34fAF-Ao0ZlZ7t<83$o9I2&M^*{Nt=*=2s5b5IXjmd*g-&9`c82^QAayc{e+eGm*WJ7SFqo7V zzl^&*9ghl&xbdhwaAitH2i5f?*3tLCrgs22;RiPnU ztD8@j%vVZl?iNwbZ>lemDZk%t&LVRu?%W@v}(9A5=fJ z{efh_Z1?V_n3?D&JDbE5T)a*sJq3XA8HVj?t~unzWJrEi_M1r3=Mz1+GqfUD~@J;9dYDpDsD9%sO=1B{n2V8TK^Io|LTJp|FY5e zR~FeF*2lH-Jip2~s6k9&SI6@a+c25}H}fAA9km~fK!VJt&SQ4SG&q-v)F%F9q~S1k zn41CmX|P}`aqlhHEX%id=l#|A#t`Bn>7c`=pd6?C3?5@yJPSWjsC}G02_GX`o?JS~(KaCPjhxNE_&>TjOK_XarCi_@a<^x{sR4 zCvll_Bwma)U7+*>>xa0Sl7%9ZH0oxkAESbk8IV^O%^GrFbKZ0sky;C+M@edf&QF`+ z_S2nbgTVkMsBPbe`N1v58(z$nV_NtBMH~9U{W(}cI#YZ0YG=gZ5Cm1PLeo^%AdVd^ zcrsg9jia2EW=bfM5$X_X&8lt;H~*m-3cP{F;bp6Rzu6+Jn9;=>P9lY=U|BYy^(ER6 zivMc%!^{|nASBU*KKH5Lhv-(jb#&Y=-|S%HTGe8hR1=|cA_^GKe8lmHsjouwrhr~fG7&?WXZD}xa>@+j4Y9YH(R z&#g$CL1?4^i3JAd1~k}ARfjL95~%rwGYKkw3-XaiPBNP0Wvy}$T}2xjJ;7QKMH2aj zGITpA8(>Rj3>0xE->yKOIsp{<5><+?a*~D38R!(99;&QQJ;%33XBw?9PQYvmdKRpD z;{R}rZ#u>ghsm$44k2DOfQ5*bT+YMGP#&@a4F>=jA0^OM@k|k zanZ&QrD2r!(5aV#v!TC>Olf1A@R70y1g0W>rVYYaB_el z9gfiqU82`3-gML2BU)2Eyvx$U!>|F5V@f2>z6}EI*01;oi5`3wGu4>tBB3MW3@V(+c_!j9RrC7Y54+w=upW zcyjE{(=sYSI5&ydXdn950`!OaHUvjSad3}KjVsT-x{HtOS55o^N1Vs-%EyOsvQNhh_7^@ zXSQ`VlA)?77APPnlI#}U!GfHgW>8~33bpHBSa{hYNrPemLow82r!zT64GQ`d_Bi4m zjm=INZnr3+>!LQ5bh{Nuur*c501ASYk|OO;+*-J{A1nFHmn@CLJm6rO8bQ?;!>p9G zviw{hoh!Mf@8Qu!_W?^{HD3s8RcKMvXO#5P%#$&-9jLE@#D4C+&AJ@aSsQM_Bp!Q_ z@8S=B zZ)#>tX~A9M3$({GpMv)^u7D?R1)cEu_Tlz^uj7#ZED^=(b1YaVt{17J(}W215tT%r zEgsPZO6YECmJB$UW#r%LVEoUn&fY!trH- zTV|bo3IF3UamGoi*Bnb0piRd$hi;G9p(LJM#n&bG_fCDJ7TrF&26J?W3CxQMyEn7b z_?nd=^wxj74Q2K)$uC_P*0=cez+dKM2GTZk$?rnK4~;uZE|cN|hAr)_I&dle5r=M- zNs3}xqIE;($Bf2AnmihFr*X-RURccx0>s$Ixmam54HWtE&rawSI@OK7@DGbNmB8hn zqC=h_w5g9NJ22ZC#m2q2WjW9PdUQ;xneNFXK6g{}@-v;?mwq1KqV8#)e;|nNqGZ4w ztkf|F_#8z(kP!NSYV8}MxJyK)N&D}2puhw;o{Aqla3NeI*JP8X*;2@n!|34&9850M zArtow&Zkfrsfk3E7V`pb^aqAXaqH?XsHe*pRm9K_n*Nx)!elVZRv44XmI=&PVqfPB zGzu=X4WPOdF^HBf`k2_wSmCH;tFKq;Vqeb;Q*g_!hG`MwFO*j>F#MgKYug1m5hNB~_{XLE_;4B(LtPy6LHL29|TaRsad>k?GMYa*iJ5 zl+u~K?%{=6QT0b@F`8ra{*v#ifs>(3pOId#PncYB00T?W-v zUgwq=##0d=1x7mJC(42{u8b znmDV4QPN_=axa*2mcE$e>DhUlK|hOhRAQL@VTYD{=YMsKK8<9zyisv*7i{s$=$ou@ zU1#%FDM-&5tdBYY^Uj3t4 znEe;c(q&SG^@FCR^qoZ!Ya~sbcxcEfl-;-?G6ct}|5}c*5YubQG4u&3W3rPsyl;ax z#G9i=!*#osPic*$MGa&8P#1iEeK|;9kk8u*Q~o%Tca#WeJa?7~{op=$UT!xZi>Bju zoQAvWPp~$*Y@kVuYyCSSy>D}~QuZ^t+~6+TkPK1li2qvR9r1`WmDN2X7ax*R1g^xC z@J5sH$B_8J5Ov!ENG$Ah9V$YJ@{U$SDHPg;`Zi%c;-CPyp;10ZG>YPsjv}$(#ps%BjDnZ14jY9z_ygX2Yd>9&>{q+6x+v)Eym;2>Invx{ zIu77@urnR6uXVJiKRiM|f8&oK6Y#fiC(o(^GYN3w7VZiu#68ko?}JrB&TtxMk{6?Dca+d!*1omu@v%1B+i#`x>UM{B z|48r7@9fp9P9pNRv3gax0N6??QN?QIW)qNShe`t`Do}y|Tkzzv+2$o=kOdR;%#IbCl1siuG~Eq{!B9SU!`FT&ymSF*F*x zEYKFN%%aUbo(#~amK)ruRvD8@51$}k*J6Q%6>E&O*)_RY33mU~h+!**( zqEcTQZGh}@mS#u{eU1$$zin75b@NCxjI~>mJvtMC6k5<60&3XQJu?nP!Wrt02Ujtd zKn1FG|Jur@C8mK5G*5l}I z21iHV9K+MD!WBO1TJ3g^Z|;%)w1A0ZWx2S#k_MGT3yr92CX<9GSr_J62cczusSXHw{K(j9xA49 zcYfWod+U*}Xl7u-_h|~%N?%ga=oS?ZOOr{;varkO55G$+fo+(H4@X)`K^Q+> zK_TqWaN2y0s>Wgzd`7h1Vy0FPTUnSny>2mcOix+eZgA!&Hkw)*#1ENU*soix9(k(V z$$Jp2`*cytUYTS}v3d)SG=hozP}n|p)0P?4k7^Egyqv16iU!NXsy=>R*HMzQc6c)h z=)(<-ep+^ctLc+OC@5W$&_l5>(4}02$NH+jOmvd@XA-r9-6wbfigZYlAL)CzKE)-$ zOHB9j5ab_y!|4UV*TDJs+PtC+F{YseZ`Ld=rfHW;&_;vUadGl9+nho{5S=5Xb|OKV ziao@1StL3DfuB|91D27MmX1?wafECDLgL;!NF@S@!Ahye@J1}#={mLdt)=jzLZyNg zzq<)Ik}9<>SHdWTuE9o`#DthE*FwM3O{62hBk}G58ak?>ijDxFk|%>)1MBk%1<4|b z+r0{&rf28m2|}_oaxMl{3&T6_ae@S*@~EwYDoe!Cm~E_>s@U$8q8KwYxmrUc-~k@} z1+H?FUaUw@mY}@BbK_Bm|k_t&~Y^XAlP+`OQkG-Yyb+ zNKweHC76jA;*ArOkmR6eP+xZ&)k&1~zQBKyF0bEi*&QezrVyo$Q7)SJdR=P(NZr)X zh?&t}XmOOmc`}*d>={I&BVQmYjf3m{dyf5hV?4nt`5U){`|vz@=Pg%$eUet_T!ueR zk_u+uj@-R{u(P)(q`1EEb${c_FY&+(r}d1&*;mj}{5zjc;yFD@s*!e8!geskxwL}T zHMeX@GN@j|hI2hV$tM^>0mbxkRHQR>bQ-5Id>r~$j+M9!uz^cJWr z?O`GY^wRiCRL6Q(6e}B$3bxkiw7azyF~hfkF7($Szp{cbC# z%sA9<8&h=$e6}X~tu&^8FDfey>fbAbWpvx|463yqb6`y+#(}=YB^?Hw(AJu{ZBa^f z75i;zU0EtY+e{_sitq_A*se+EKczL*>tQ3v2K!QwSY3)9eg(_%9Z%2Gj19WrOH(U= zqwt{-UP-O^-EySs(!&?qKM(g_9y$%NRI#inD&;GnMj!?Jx+*IYrd8nfrddlhLz>y3 z^`QFh47v;dS(iWNa(mz*R!ZlL+-+-}z9Wa*T9Zhw$mO=yJW=U=RKMkEu`NJ-k?0%g z&e7-P@dMPU4U-bKQ#kgYCGXzg?#%`mO{fkFqmX%8BW0ItOE25##pfmV<39G|ZM)jT z{)9y`;6D4BUKYMxe-@3~!f`KZjNGeo@uK(+!&`kq{taVQRHrF_g@G5Hw{ z%&zKp+m>nwCK;fps>7<*O}O*nxXLbs$`Niqidt9Urf5caH2uk89CYTY6;Vy?pt#O+ z#kOdkceVgiA65#AhdQb({Xy>x?b_h1$mg@r)iFa~?W_3UxXJq(x85H-2Cp8S^qO0y zVsp7>9cg}~r2%shEYQ9iJD8^wF!NA;MRgC1HaQw3speHJN>FIoQi^al^2mktIP2%t zd68e$F5-<13^_DZ>&qA(o13f~P{RdfyOSzfw}d0?KMzO`_*O$&vCTH#gC-#~uqSJF zyYvuEGR?N>kc!40k5}xh@8Y1P$5x;1G9P^rn2Xe-qF*f%d3!kH=2?khG~*Yy4N=AV zZcbz=amH(32fHQ*7YE#Imj@`|`DQ=~9la-Cv|N;^ksNJ)0TRw&Fz^JhSP&~hRrka; z2z`gC&s-KlPrbKJCJsP8_-Qlzyo^4Vt4(XD-rl$yo8kf?#q9%iU~%&v3N%5P zS12T9*mo$!qDvH|GGyJksBt;Qc~eom;3h@RSgB-8^C+1qHX-_bVhs5FEKC1c=f_Ah zR99BP>+9+qGd(1dd`}wOGc0Zqbn>pwpT_n%v{RN8?~%I3>hGQR;a^@qrrZ^n1>vR_ zNyJA<$r;SVtdx>*a$5|KEr{fjYmqG?M%>EgnCylzUv!Qh^pF4YcKqP&;O+RnsR+Ul z`*pc4cI`Teizjc#@4vX|_3`%!L0^P_LRd3c^*^~ZVtI-mDxj{E5N*C*vxpA=YqQHYg& zoYa2YmkI3G6WCOFsS&?;zZQLQ6YjkDZRgo<&;GIlKOf!n!k>43`+5Jj{lEMyzxRIr zZSQZt{p~M%{JWu^5_xm{W|z|DZgGBGLlEs8ZTJ7{SgSUD>MV)c!O5CR`y2-i9dZa< zv2mkReN@gdR4A8zvKF%4;tm-{2l?7!fz*z$J@_*ZV z)9yBIWMTOGJ?H+1PJ0|SttKtXb{0iat}NS$pR3p&Te-7P3Qvn{NsPFKOd51HR$!?%fC;){*p_V-0n-`$G)<$b0;NIa60q!Ll=P=z@4>y1xmB>J9 zrYdF_HQ#jCus_!4)I~IvL!Nxg5tuVI0@b~knb1j*~(f(>KSFJBzI{{RjHku zb90lTwfY#MS`#69{Z!@m2&fBx4{cgS)S8cS9>3kOd(n~m!=>~^N9~?{LqbEZ-<`?# zAYb{$IPPiO?S+3VLS}!CvQ9`>1F+lYXl2ube}ab!`1(=K5bj3tzK00W&x#|2tmR9$ zuX7{bVs<5mq25NM{p)-TlV4ebzNci1J9-az*RVfhsq+^A>RH4yq=1O)8ibc^Wm<1^o831|&Tu$%~8+jBk z^#X`@CL^HZkV(U50!ze2lu>@q1`3%X2N9COvzSK6I9$c5SB1Ej7zF(c<>xnl-LDlO zWmQy)>x+@Gf&ClN@pwGQvylvxe{q(R6$W>f?0+zPs?7|{;m*qu-(?%~5mmRL<`*Lc6qy9D}k#W z9aR=kon2H!qGT{q2$^~d?GwyQPBjx$)(M7Y%2+{j4{ep;E_Ick#TjlDOQd2^loA{9 z#wrJI;Xw?~=tDS_^Wxy-@@#;|L}3khBf5YiKi)569+u0COoa2YJIc2G&S935vM6Or zEDrKvfvU^#V?MaD;}5fzICT#R3(g2Et8sA_m;KYI!v({FgHuHGb)lT@Rgyo;G!k@@ z1(%<>oK`*x#a5si2|~fquPS3B$%HsRpNB9&M3Br*%orA|t7*HSq(wqLEgfr=D6_5C zbNM~XB->_*dnLS0eA`>zpwFHClsADD^cz*bC|KR!l^A}Gk5P$Q@ z%Y)th{e>soY3**2e7o8H>27hiII4v&s*}jOa<@YqJmN39Zk7WB!yX2Z=ppjMn^!_Pqoj;m?HVYCakXo8`o`vK zXzBq}Jfgb}k5*2HH~SSmUiev=o&deVGspjs`8=MZ*`_s2qDCuSPaCZ|g(t5Evch;K zhKipoqw1812uIf%9bGlGboF`(YG5y^1llY^rM`r8SnAzt4x|6dE(~u36^OMsY1aKn z#V!u@dv^=B{W4XZy{IAv*?THWS5uU(tR#I;1*wB-~KsV3z@23i6Ro_Ben}EPkx;UpiM16D#IZ;QOl46dUnYBwo+h!vqMU|2vxhi*n zlvdy8Fh(l#M&LYOE=~C)4k@1mqG|@PN<6B#y1yto!)yXQy{hK$Q`96xn-TuAV4Ip%5ejQ9tbn984fFsde_f8cG9AC|qpF#l zG05ly;WyxKu46dWSN8_SysExKaZ&QgWpLUt_utMZccD+4ag{|M(X64<_VyZ#GzE;g zoSpS`qBYfntlFnZOgSi1QiU2N_&#PHGZnpnU%m4|kq(O9`Ohb5(b|X}JWT)RvpeZV z>p{Fg`&q+k=(x!>@f%mhZ%`lq0T8uSw3g6I zV}EW}h%SL9;(G2S40cV7dFqUk&R|eEwy z9Ue{(4@dD0G_^Y@#wseJ3BST}TB>BM)Dg05mJ1y#M&0N`Zz-QBS&{B@WQ!XniJv!t zPzNcda8J=O{BJXgx8A(k+mYs!@!>4S=Lfrwz2_r(zW>a7Jf+8buf4}7^!S-u`X(UV z@D6ZMYy+`oK&nw(A>afYz_Dv9rG%oAK!6MXCI@7BEBCO58Aw<1&!)0ONtS@5m$ui6 z8)W!j{CbdQZ*$vFRmiqPH%&#GX6V|$&0SnXdx7nDX&SjzgAQAu|E7Y|hl?YNJmi6!0!sB+?g3^Tj2@!aFwF=&sz1ll6rd&X5q2xfrCRMI+3Xi;TT&UvffG8* zB62$FhX~Oax~#`8uaCrQF-4yl#1eweIO(E0Rf7}c9zHJd0a|F9SS)Iv|(6nS%uv zjVv1tL>H0UvkXG}p~3T!B2P!XkF#i$MfEDn<@VzSST5Du297Uorc0e3=WpLXKX}T? zam>9Kp6Sv!u9q};fytnH`jMvsI`2EXV_At(G7zAXXn6+`DH!1Bh=o>ClYFQk&OviH ziPWN=xai3VUFk3O{&Soe)u-AVKF0hO7=8$6LJ{-hPDd1U`~&74y6hvn<5_=doK!fb zIptgcO8tzPT!o&9q%4x^M2OdNThv7>gj#gh!)eAoaJu?j)txaPn=gL6nX&>etY%uD zV3uqxUhIDWrlKJ1tO($f^CZ+!-j*X#G~AU%R*G?A^8u-gVOU$;yr&W=k3~fW@ow5!X6&q077Tk+y0pH&y=H8XeF+VbIkNG5k@g+ zv3PN#6UG%L#&5ab3{u21KF*axVS!O^(Ra8~zF&CoR(e@Y5A?4#1PI6CT#1`YfEc#X z{H|WkFYtPQruwKDKZl&HSkxbn^ZU6mRR|)lC*x_EQ3tQ$+p zMF^A8zm}}s_gT4q7TDi-?dsL5VCpHII7hs4_P1kb60b^%`7zgrk#eeVCV}pFc&seb zfReDrXN}2pjQP&&tOf}e_(bVaF{Gl!C5K_qv$r`VQBbofAkul=@u#zf;0?SrR@O~* zPV*6_j~P!7Fu0FDCR7S16WVprj|EX}G)!v*U4qABr+~J-b9P6C-Dh!i56P}zM)k-S z%mVE`$J!XQXQf`q0(V%6teop%sCAG6ZMq2jWtvU+f?K5lD6N!iFh~Se*p3t6hb9a@ zRl3md3edO?vq`d)JZi=SeN-0pIUt)Zh`{53(gWgCn9M(L4uvw>2Zo-%`5ulKCgIgI z=L1i`?5P9ub%r+HB2v2N6k*LTsEKypv4T-)iBw%qAmOYoQ&DFy(uI7!Z_Gkmw+VrO zY}dcNE+5r^F+6=YgBH>1!7F}aOcpQ}Bjzve^6-<cDG%#V)$;uOKmN3aW?JV;WQ-jo!>BM1d01z~n## z!--+N@Q#UDv%l47t0|3NX+Et^7E2!4S&3B}x7#J2p6`$4Y8bALUByVgx2amyuK4@- z3EVA=xtJnF`7SyYcBV|wdIf=`HJK(9Jj$~nO30PEpD;;8#kzl?vutHn)xCqa5`%04 z+-a1P{r~Q$S1YsYrx>tF+l@p%*mlU%Dq1`RuhNy>Tdk?x7Ai9i)@`u71GWb^Izk-L!&(IwO=0t388uCTY1)J(eovt%)JmUquz z=iT{~4&71P+5Ro=BsUTzZbdZ~H=P<*99<-hmMugSG5N5M`;gaSNk#A)^M6e_HM&y9 z?Ol15Zj^zuO?qhKC6A{)n86Io)+i{TIxTb>nt5F{?9=;4Hsf;USI zIc)&TD76C5+;+s|;IGQ+kvP+v*?5u=f0NTYpv1hFO;6!eckkZ$1%4}OPiQFs6`B^V zuleyo1VmJ2Dea_gGcN<@uG{FV%4wc8&OV}E-K8ejs9wqa$AP82ihYM8mr0}arP^J$ zru%xaF5@Fcez-#i6r~%?iU_6}hSEGmX4B#JkT4Vh0#1NRUkU3Rx^RJ+{Xl^4T{`fl zc|&U}MPAPWv7`%z@qCKQ&lGe5VT#-+Y8tp?Vw_6Gfu@IW1YlYb`_%iVSe1IRmo*T9 z3D9nB9tCV*gk~;{+%*)`!-+OsgJAtZB}#wfzd;iRT{QqUtY$Mr#162!7_ID=5-y}g zP)A!Lr3z)XAO{eBRJfEyfF5T;Ay4z7Ds;dEugGQ(r=YiXj%@U+U#IVzD{l~ z0Va8MU#$$dsE5IJI;ltHoS9th}BjujOr?5OIouhaa-^8-XB_T0hmQD!O@;V2e#;6LoZQ}X4EVpBq zNM;wAPA`cTj9V=Zo#A8-TkVRn{7ii^rIfdFVgm%kPCV0RWuFUkepn)%-vzba!2SKP_9s1uNMLLFM*k5wTU z-J#W`ZGwhl70pM@s1(mGz~rZwhGW8m;%q!cSCKL_RZR;8=nSy|EWlM8kY_EG^YGEN z3jm*hIJG^Zx4PAXy^g>Jp7C404ZeYiNk!kninE6;mHq}As> z6K}QoZ_9dXz#AX|O@wVNjhHwauvS+H=$`08(!Q**kkhVWa}2NU8h#XFNMtf!JPQ{+@y{YoHL4jtIv> zF+QQzNF1gLD+w%- zqv*8(ue2_u2esK^{$xJIJh8Kdt73JT(x=igxe`B%WXlSKY_*RlVHZ`FrjSVf zq=M%4e+134p!qcGo_zvaiIgn<(9vmh`DslhK3`Fy?2ZQ%`Uj@V%abI2{q#xn^7ZbE z@192gc)Gv;@^8_1ub)1B5k21j@oDtx$Jej+pThUuz5k6UY(Vt*^~=A#kZGrjvuu)g zR7zz9^vz#?+A%bSDU*U|S+|GxX(%NNnhy#xGLf?8~A!42W6 z!MRMoHYrk>K_KC$669oDj7%N;K~=t^VEo4N;T;)5)Y6(XhqwgsEuktB9#PK#q+bM) zz9sy?p-%r-fiwJ|(xwr75_=mCB{_!K7$rQudQc-6VwDw-Hd=(*huMWbdSZS#@_#}E z(M~-hGB%y^B<`hZDo{Xvz=K}uScE0IV`wMbRO}#pE{OZN4bN*SRF{tpA>4?n26l5g z9~}TQFA|E);;=Cq>PSs0rn#DvG@?;!eLam@8-BJQuBIj-(LQ>#ZtKJR=IW2u)33a` zT!>c!)!bND@XTbUx*O~1L$7KH{mPqy_vlx<#+5KK4A;YNTou1jZTvz2YIJ^DU&jY2 z{sCA{I=zO|s(j7}1ZvB^HBiwACERD1n=Z}`x1(0G^dW;J3Bi>qpf=XWFOSxJy8QUm zCCek*udgbJ^5fGGO}wfliaaV4c2}Pg^rkwk(rK>J0Bx&Lbe4BsJ=s` z4eE#`q=w~EYQuK-VFjfKbcj@5-4dxb%A|T2B9+FhOe_uImgnXQ`!3|Wzng)VZ=)56 z--jrnqn+iS{K4Ufar5TfaKb^T`i78kBn;|eh)|#kpwg)^ed;<+kRHg8 zeVsQk9q(iXG2G2zp92EGSthMkBB;6^nu}FOxH-i?DDX0Yx#0)O{EgH$8cu8jLz^L-%D|$6j#CZy@t*hx7?C&Ls5*_jP#MKR1xOJ zL1Pq)fj1gRv#H5aYc$RdP0fDqkA`VhF9-$6b))P+<(XDp{n?-zh%p(dKj zYZ9yy3&V-WAqGNyi1lMnZ(SH#T((U?KN7>*ayDStfp>8yq4+eaWAWP20mX~-DYoQtQ6^!MX z9p?iR$EQDIYf=&BG^%ZiTR>PUSqI}q>YHs98^D%efZL+vnjB()CJN)ZSO*>8n{2MW zW;SoC0KaWW0s|QHJdY6!Gmh3(w%-<;GolrwJIsmO02z zW-(M{TgpYgR0L35cap&*!L|3D^bEn{Biq30HkE!r+RiA_)KU$vDCdftDIGrCLW_o{gd!{;JO<2{aEygVRw8is_^e^i@A7uks1 zr6$wyBs-9li!N9Ubd|A)u`N&$@?MB22Qu|J4cMf?3-$p= zspC${e8hKz++@`;oJu+2c73g_0<(e=5KH<90vqdS5dY#Yl+1*_Sn-yQ#Y$!O(Ka!X z7dl#lJNNBjkU`N9Hz54rL@39>rbmEwq@E+a> zy}wSbe2fDg^W3U5psfT)1OM~Y9iA$MFUkFMU`xAyJ2D86E}|7sLA0<*82x#=#Pb_J z3$CdR=#p~21`?oaJ$Z1+t}^x(g96#j*(69rn?E0z^X18zkuxI)a)ja+Rt>my9mP z^Fa@-f&s=9W5o@PJK)q(MFO-K)a}CsvgaS^WV`SzE7%ie@-znI`lRX~PMxEx2q(Vu z1dQPA!4~;9J2zseGG&okqulL)Hmz5D4l{9tXmM}ZQ_ws3GD0Q)M-r-eP8oY}4g#zZ zC5!R5<9?4&z?sCYlw+geyg;;mKTX4Jse8wDt_oo4?17>?DjdmE8fp0P>JR?4QqH zQ7_ywt&Il{AGwcwAW(7bAti+ zT@b&TgET*&{Z)G)xZA6{wJwkXX4&*KpSe~L({p`4C=zRvGJ&^v!p=A_G+?222Xok+ zodXOlOE|#*<&hU~kgIZQnBo-=zRLdEImpnth1=p@qp3_81UsB7sUyQ%(2a)jOl|L^0-c@SN}vv61+8$3yZSsVjM^e|k34 z>Eogk;!-Bs?Kn&hgD7g^D~^N;L0d^jBcmiwvnW$GB0N?SK{ZY$xrU`}G5ZDwic@bK z=O<%zXAm4O6?8&E#LBuZ*si5$Fw=olf39o`yAS4@#i{(Y-b>){G=4aPhJL~(Ax*XJWT*Q4fV78RGpEFVVQX;z$taMhnLd5F4xYMX~T?X6d5e!?TD}fo(Z(1$a^KumzcbjpO+t zW8tk3caHu)7u|Ei@bLsMT{7W`3F|g{^WkKH%~=iBKZTW03;@4Z zasYh!Ma_wcV7jm=c|e0^#%47ykwwi2VR(&}d;>$UX;_m)`s;^;vtlpsJzmORVvOnW zuo8L6Yc%#tVOI3w>xbn|C{$%9zWf?HLEMbg_^a|ViZAhHWlto3Gd)=qc14fA{JPX5 z!h3}Ssq(Z?J3gP03==>>B2^*={Ro^+74t}yFfNX#;T*sAf*tq(|G1qRR+n*nu|j?? zs!wzn!?yURS18j*V-JFB3Bx2p4Mna%>n0XpM-bu4q=7s-9Isyz;qq9g6ubR~Y}n7WxWog!t0X_3={ouwUZUZY#E zuZ-o54Oe0(_mWn`&Im(LCM8>&sCQf2hO}XgM35qj-F@zGdJ~f7nJ#4m_e%XmsJ+Aq zvJfyT)E|{rCG;xXxzJ!N>zp?2ouJ8+64=B^s9dGmyazwk@h0f49>OYg%d`mtt4t5I zpz#1X-Ctqcg{h8@oLu{ALntfK!f7OYU0PJFOvBF|3}C8aTk8=+N}@|2p%l;;F|F6O zBTt!KnIb`p$9RfWHoRoy8&GvQ8GkB(-if9e-UpxfiVtZePS)e&`OIFxIIZLI@pMw} zX>lvh4af8Tpoa$-rDx(W61D`-Q6`|^cZe8sP~BczGx$yT@5n96`a@qOseuILWE;%M zZpa}OFVISP6EBP&kuIH#0#BGH0Jh4Y%NCU0Ow)^O+FMBxr^>>93U#NMwiL)5X3F{% zt(6;OWFx}$Ntbj&3AUAgpwTA*a&vSLK(*Itehl*im&Hl{9r8VDNolM8h61CPF$uWi z`DlDGN|iql^b5EW>v}jur^5UOCdssq)`HU5e`_mX?f(J}gqzVUJIC8K;HD&~GGG=} zB~;|i@C3DzgYozrO#r)jFUR$bhHnbCj-T*`T_#9*meT3@jMQ_epPI_LaK0W9dgin( zPfI5kJ=%J=wxI5HbPWHgc}_=YI8M(=JqM$ahvI|H;Q(=l{uXlB8i zJdgIT}{_!1FZB4;&|<$H)TI?ytCYl ze0!=pFqh`X$1wi5*CC$=;Q}MB5;KRL`r>3hh=%!aJms*Jz>7K1Q0{xnb*89mpApkD zel!{lzpQ?aCQ*vDzZf&kWKhM@`Q{db1>|5hjBS*(C9-5y76Jhv#zusJHU%3S_}G>D zRwB&pMhowr4HiyZ3ykyPo1fh>I!<6)^~1-6;@(i+5iLoV!oAIaBW`=lRWwQ|M~u0i zKkynG*KDt9xoB%UJ*62aU7#zuC>+hrF=6`YKqo_2)OdWU z&5TlOslc>DgL+I#fF_69?wxXkpU%hgA`19tf1`zUnA^$<5WU8a2OJH7y|XV7`rcJ7 z>-`Kof24?9yU_rR6ZB$lXJCH==PojkxyhDht9z{D*yQW%OO&7qeFtg}@Cu-%NjTBXy?a%Z)2h|ijI{vzuIyrG+- zWg!Vf#qGOl^=j72?{AyQdTZkWFpAX;`Os&C+t`j{RAH& zku`$%GQ>>>en2V!2E3XAH0$@Jjk=c)bU7z%w642WvNMcT>`@D|lNCHJxNjuhz+o8e zG#ZY3*|a?AkDD9nGCs6!FgJ1~FWP(hJzjBPPe)+G6-F|6 zH)JI(sKyU}<^@K7y8<->4k`^bDipdLbYDSIzVUnTSD_vHb+IPB{qJLjKZdW83w z@|kh>a`Rc5dC&U|$t3g)^Dy9GO)qtNDKt{jhL$LkX-RIHpTL$5(zXmW!(j|cj-BDIkBGnXX-3MqiOM3H?9JrzfFPmUh zv?;uzEjWUtB1Ed0ORLM4;K8JFb##2f*GhJu&&CbDHi_^Q?;Q5k)mjjk?L)|^w=4rA zti^r9++DyJ5Q`qHjeO7}lH&S}V5v^~m_i;ctLC!_-*Mopa7)_Z`KVrQ$-yWqsCOEt zkj~!aLlZa*&_!1}(QDa=>Yba$tg zjZsOj4to*H^X>JrHdcAv+k;!!`m%=b?@q^uP6I zXD?4qfTv@G>wZal>cHO!Wj8|fT1Tk_8tT&Ocqo8nT!NZhWNvSj+Z)tW$EWCyb0+d( zQAODQOy$y83EG-M_0P7W7P8hvbl<#nDL|Am@9fEFVK|(X$YUD}^=g^h*X^1BvQR4v zkAPK&Jx88hfS*33>Ebfvq!CY67J+G@6(23)BFVq-C$Pf70)XCN)7 zQ8(=gaq6O4n!M;ff85yXO1gkJPYTfeU32nmdVD;eH_p3Kl=Kp(26!b32ta=kvD}LBP z&k5L|Rfg440$osx%W-ZJ-{>Zbbdb)f z?!g&EiKm#1LlUoqAqBLh29fejxlu={^h4%($oLN%h;{m2>CSZOuv4J0=U0H%tNh3Oa(Zk7aPoo!Q z#X}g60ADV=0NsQ0-p@r;40`w<{OJMXf#MO*?XU9ySivH6?g7Zrybl}+QX_T~8 z5jyM)dg>qk7s{%Cp*WoOu5RQhdTUD?0fteCfFv_Op?C80`Jj**pSFJHYZ*^GPIn?! z{;$csNwzyZb;cBz*)!Iao*0V&!55G}QKks2*ls+K8h<5^Dxf&)nV^-YrU~!rQtZ)RLC|LW;O8(2NO?0iK7F zF_4i&nHay?(J9XhMT=dnK_e?bQF&r)PgEnnA|tp1|Bp@wAxp%!ka#`5cy7JeBwB;Hx%bq@~XBQAOREPv7J?2B}({5BuCq100>&tSFRJ}bPXg#p?*Py4+d>^iVtAQ{=fKzAQSfePaS z1pNHOmc7BP6!dYzq>HyecM{3H&`ao$W$E#8+C?W`b%T?!9L|DxSBmHXplA6zx(w4Zw1zpw zBq_SO$qqcU(qsH-xexORIFlLHB zE4<25ytcq#g_m9N_w6ex#}ubSx*6A$`8Y;8D)4sR|%KeK3E3@Lc4A zOiYMnsQ9G1!Ym&QpgBrCL2{p}su>f@iw3pQEwRqLfUq;9jP6wE8d)MhgwWSv-ipGu z1P4(>W)7mWP>>5qaYn%$DI(hBQXl61z;2W2xHs=28AqnytaMtic%9L%Uc0r8C_9e2 zy(mAa*$dc=7jCZ{wM%&)kUd5k9Fey=`Vz;qgDS@usq!+FfNHJv8ocVEY{qIF=;wy^ zu3%dtJ0`X!gW4ODZq8h@*VbFLlJGmohR3}ug3TLc+!-pmq75l5R#M0=3%5Csa;^1c zq;nP%^+fqsdlr~xbv{FlyzE5jT#P=vGe?(c;i8kth_+F_nc5xok~U7JqkE%z9gjxp z`U{-}0*QEaq$kv3GXVl&mh>BG#ZXClP5FA5!&zABn`0WIpJ{d$Q&0CX?1Nh%>p3(F zQj%RIpODt0nYdU{f{2WjiMWWObutUk@A0 zz?!(Ey~NqQU+KWoPeb<=07iRBm^S)y6vK*Fow~X2_Ey>QBF4lKUrqD3{qekTQn)VP z4@M9{z)Lp_-yJ6;hL!p`z_Kntn4JwSV=s-7P9I zTAQu-hJ{tsanX~F_y*8@oOd&J1nUNiX+^U1hODPpLr`FC?b7S2M5|_WP$2V52 zr3RFhc`q+8&~Qqc;k_%T+q7?~YEQ;G#Ss=Hu@VIF^C|97dgmg`#-6WYgn_DJdXr1i z`yY&7(_rS)GRwm_q!o8}baNNF6T=pP9nMO(K9%0cYDq=2QZ@nonPCwWANA^+sVEiB zMZSjt@?br8W-|^BG-EYAf?2kF2?jZLX|m-(j#nb%LVh<9Obw@1iL3d%ViM#PI63~q zD7FJc`5m~#@ui&~#^9JBI*HAe@`!IN^`#t*BAIp0r9Pw_&JR_(sKL#MhZJM3kMLrW zc=bEx82H?BqL0i{@{LGmy%ur=uOfJ{aZAQS6g$vyFc&X-S{$%|$cY}#8AZ+&%TN_{ zb%B)_3h+Cp&S%>axe))WNN~MwuPy{Dkh~<=ix4-7{tyhQlNa4=lD~$d$Gg|r=u|nn z8jb9oe*uP6gb7IT--^xXr-qQnD6qveK7@y{yu!iDr6x2sK=r}($x^^9K6Vz)2Kxy{IrAZ@=qNl-&XR4?)YEI}RaV_tAiT}Orh+x=zU@17gB ziaMyAj_bk&K2qCK!RvUKo#%Lrnse=;57 z0~%(>45_lzU8N17J01-3u8sa=sXLG=zSgJxNtnAxiqB(bTg_X)&e8IqSHv zXJl3YrK#~7<|qYk<1P5QgE5nKwt<03HuN?#=gE-8{BdPu zNo6#T^{-V)7lmxvFUBKn6HCR{1a52eNGRIrKFq7=1`doL1EAJM6z%SAZ#;+|Z*A}H z!uOrl#)7-CcDwc%)dJgO%)Y^9io3h!(Z&OQM1{8K5xf1cYkB>Xb}#A*dTwK54Jbzh9qQ@!Kjus)i1`JWz+D5K6GbYYj81)S3laKgPQ_T zZ^*M-cTO=e_*J_v4sN(5{G76*mSfy$3a_;`j{*jsiJn%8iU|U3)JxGo@PoF37TV8i zt$?*)AfguyaKckE0pQvn?Y-Mj@0%Q8Ch4cXf167!F9b;irh%hnUq$M2M%L_jC=lp< zOH>45imfqtBFBxLIE~_K<%|}!9cfGnVwXcc^uiYkAIAMViku*{p-2I8o@{U9FYWcF zpN43xrXpdGL~;9WafH{lx@wiU7{*dwrqp1Esd??Mq+0MW($t#fO~&QJ8~3l$JtRDi zVQ<{cHqY|O2?c8<)o618=w^8DA8Nh&g54zR?|^7goa z1{V4! zn_knUpgMWk#GA^y3utqW<}u?62+RGk{(s;uwX*w^?-O+kk19XIq1u9o`i{*7aoC8q z4w&j{?}+M=RozVcrx;o20NQvqo~qP_+A*IsUe$Yz@MPD3QcQV(?5qE)&Y;2??NYip z<8M0~>t4XJQ#KRIm|wYjaU9I=4}RF^c+t@;JGEg9r`ZKPpvE{J1u0D|T=c?-3XJrC ziUy^jC)I7(P%AnHi9iRq)IBrCOnRe2B@u53(n!pxiPRBBMc2?fih-tjsCE=HU--*& zFOS{cl^&8Cdu$@3hC=xqYb{U8+HGrRY>gYTNb9*h7rPsYB!`H%zIDov;{r8j8hITi z2DeSz%r#_bHCEYiW6eTyV>%v|;_d)F-i%S64(auEpUI|e|H_-dwl9Tq7eIrpE^N$f zvwci4geHduLan1DHwPmn+9FC=?jqwuD}u+_0~n6AeWnDfY(o}$^Gwk)Hr98WsI82) zj&~xE0DI9^e+P-Qb-%w8ZQX~bBiuj+OgR}Fj2zY}mP-;J$7$Rz1#!cK0dSb?4#ov( zrciZ?>**jnEfT2foeNN+!K0eT9T*DA0-WW8!Qn2dzIjk+b3j7wg#2}s z*byp7uaBf)-fn+|uec$2+4A1D_%*Z+FE<{PZVsp;bDnR{`Wla%X{wXYn$drd)e(9&Yq445;qn6$q`%9J=g=`&eLD%tGFhydb zkJ4lIUa>b2&D%)bPp5d5-9BpEYyM^Jr*D(`zoJ;@KHi8Hk23PVb_-dcZs2=X)*ED{r#xD-uOCeoa{E99j(QS!Olnh?%6ca)}YM+2RfM64%gq+>S^l>a&6O1 zzU8M;yN>+6+9w*7>xlHkFUGUyBSibCrYYJ&;K-dw zn{2`b$@YY{CvMPk5O1;iG=B`t?L61Uu-aZMZpThS>-Z<`|7+`+pTwj56!;MpR@CzXk7A5<)7XjPbxL3T#g|`w9S4eL zjbCli?6?b{PtW>4pAUwk@#L3jF`K`=cz5}0Mb*D_u=3)nf9dGNuzng6IvruYgAob) zWZDLOEsRZ-l_OM*exc898RjZrxHg#~p0rSprc)AxBf1)0YvHtvfU$MjR*!QlMi?lj zA^U2i>}q-f3zBv+V_=3Se_}~dqLXIqT^%-VP@w={j&AB9aA*0uYLI(ZwZnI{n<#<$ z?>1U+M87!esB(=|KLRhHFj5}Ck{oS2AHzs8*Dy+%dmTgV|Su`e77HhNqaevUC zT^bk;j^i$+v|ohfy25h(;W8`*xp|V4isn*V&}7Hsw-mLKRW9WEoJBn%E5^!g{91zs z@>#bj$$66SUR1*c%aO3@92qV&q9;UXrgZp#U1y= z3zI@gwzMm=;?Ui?u)Cr)g&WuerSFu#!6vlU(#lWweo%*wHdlHIGrTHN7Pj~eVY{r= zjXP0qBEvIAY?W7Nra8w37GpH*&i2NGWK?x7U?+Ozz_0Fe9RGb*22Jx{=KZN~@1spF5}MuVBAq_T}e`5Y5+V&aVzh>7l=q`E4RQss^{0TPv6mbqkm zN>oLa8^czyRLGo-;teVj)%`0tCXWidV&K`b<(?|Mw>vjU{brG3%8&Y4b^e4=Qr=1! z3f8*K5RA-PQoXpp8@<>q3qz8gFgj<=QRdtaDRZe&<_8$H->mRJF+5$z%Lf||;Uw`e z!uH``<9P|s@rVI`ph5cPA2xJyC+A4fR%3o-=L0(J{}of*dWN(9bZ~+>a9CHUimL|` zle=9GVF zK8>FA3q1b9G^-iz|9HB9~WZt{tPco}+zd6cTr)Qi-8n%DA$Vqk-H8$*QaQocHyt*VD&W zZWJ-0NyX~;)ZVF|uz|bH5XLt@reU-mwb1l!M!^A}tj1qupw0?5^#=*7Dn zqoI5n;YrO1Go1gLHETBLl$u7A!5Yb8T~;|DCmPWK9Dnge%IZ>i`DPSq*5s^0ce$&D zJlM&)rTXW_M{&BjLO;vkn$!8{ATMS`Qp$M0z8vp=K3KE1&Na&&E#n7K`u#9oa$*XZ_hA4`UdJ zRbvbR7T`Rx?BK#-2R*|MV0HF#jEXTOAD?1A96~V)7DQg!Bnn@Sr{`5eQ`W&P9b44V zwZ2Rv+yGl&!jFwdkKh|VeE>hcaQN~vy0>dT`~xql|M&Te@1DH;0lz+b`I;<(@z3`! zU%z?kx@CVFs0=P#5tVNMkV4j}lGs?!q+`gtGt^g6;q4z(fdMdn5 zt!|>WEI%|zL<$8=Pq54h1)~e<4k-dmGJG(fph>226f(=p`nIb8qIF}7{onruG)|u6 zn4J+%i}j$$#A#uebDJzMY$<^)HX{oF>3x#D9n-YhzcRNs9hSqJ633fZ9h1fvqm?nI zY?2>_IVYsNE#@wkH)d`s&mz3m)mOT($)wS{;Xud>&vmksGb1t>?G{}T>&qV0v(UwT zcIw`1@m`+M3(6KIjQVBxRc=0PeGbsnG~;4I*r(s{;(zl?+zd=NjQa;3*|1N+n@S&W zQ%+KNgu#kbJQcAcr1TGNv1@Usu_ut)`Ikg zv63cf@fImF8T%xLf9dyOdG(X2kFfMndQ{m-sl(mYa4r5AOgsqM>Td7HsrLS9(}ng? zSp%ysD3+?|x3_Ee$==Q)wG)Sjk+w55`7idN-0R(AREMCIgwmdLts=%2CH;U-)Mr5l zhV7SIj~N_2X}$yz`|U>5$I|5m%SLm_Z1^M12h#E~A$5eJ&OVUxzMv)Q{C8p_>RHmO zZzaU|rf)4aw(P_!tgqu{oW>C#P9h*q33iI9iwmu-yTuObh*aG&w)$(CDx=;9Hhn+X zw(jhVnpf{!v_kLHhOKI+rmR&Ly4FDplw7ynLTK$G?DAgHWE*;&#sD7E*)Q*t6Akb5 zP}y#rsZ8KNdN496phRAT13gn36ui|Lsqf3}vXoJEZEM!s!R3hgvd57!;NAiWc$%MV z$7i$IWb^)gvr9KG`saOaA2`b}-Z5{s?q@p@z6HtPG~c=pV8ubwM!?@CrV=#S2|;df^3yr^cK?u^enNE%v*^fYuhL=3Sg z*&b+!uGImVF?-6}J90Rc-gs+whvr8z=%43NjAV~71l7eTLgS7)X&g9T4Ce@-q}hdQ ze(yHJHVlYY)AR>~<_7vJ(o<}t@?>Slq_Gn%8UL`B#|mkY7H>ojX}$dZ{^?fV-&b9H z6oy$11ed2pcwdOF{t}W_@cUPCrd8N12dJSv^_dvBhE0^ogbr5ey?Z!QaK~Ik7|JLM zT~w)a{kse-qm%X!qcEn$g-$KbAdQAyjLVI>5cK+Z(?p|Ycpl5d@Hl6 zS#~N~$n>>JPgvfo5W%RGqD1N^G*ff{4Gu(%Hw%Qdy0B!JXovJ%!O(ey}F#8$!N%Q zjzF{CUc}BI8lQXju3|b^!-l;FC&BSBpQ1A%p$X3z&zl>IqX{{PO*YujjM%d2WfCRv zsAz36TmWVO*He16vB}_5O$L30!00dj0I3l)yC7O9pY-1e>t>F@lIuV)sElkzHi|2Q zRs$w%=g_rtRB+xded>1EfU^laKVf${9em-0CL#6lCQ1m)F<(Gq{Csw1bbxW$JDD+~)2Tf~ZoZix0GnV*naa2eG@3RL|<#!pN0v2*O#O z_1L%D0CYthoEl;KNl{;3=)2UuBX;&o=dPvoJ-S>*!%$EY;jgGk36MHeadmQ5EEp%O z5Yo<)*EDh~660G-VGVLs0^8b>zGY#~EHyb<#Y6MRt}##CKzQ98J73jC^Prin+z+WrR;#Lps9prt+=Ow5Vakc;br8 zY&d|twsON?aNb_5clSSup?L}6)S~M}hC;P@RoAzbFJ|J1!|YQ|+v$iJGyCUutyYqV z-=KvF#qY(laqcIogj`?TsO13lew59 zK;d*^8S6LLNC}J8cT!XQc3bJ^gV{Imp`KP{$24cQZ$Y{)zZO29WBo<1j1lG=A^OLf(uFN4gQ2JOBH? z#*^Km7^BU9M~9`Ry-q!E?mvBY;BY$q;`Q_IzCQ@?!2SphH7}GsP(tPzPswk2JlUrt z!UH(xZ(B$Iqz31Tsr#&6t5-(Ra18gf@i%ZpU=zb3reyIlNzhI8d;*V+R+bK*>@m-Q z#yN^-H}8>e$XOpsz!bS`qJCYMW>e;9P60afSyx3OCvWfu9-HVKh-qKP-9AOdYpP`P z#;{Q4MTVit@Cc{WI%9*J69%7d%ylHTo{E(&g7pIC<5P6$CQ%X@zB%us0nCWv6w=Uqq6J*_qJr9GLZ)!JNk;fySSa_T#T6KoNBh_Mc*|l~~G1 zk_SLcnI@1A9&elaAc-!WPdkVR$$JL?p!lP}S9K@n}$ z5P*8t!dKy$HqFVYcr?>))59^!BU#b!nzYwi0X%}!wH{c2!jm6e;dC|)rD;I7L#&fy z?(D#@L=^kROT#B{Qq%q$20&18n-^&jbfsiG;e|Mw4-fL`5E`f1x({=gmb6NA%>25Z zvWK4Kbl3?U!=0i4gz^gr{WtaG8_8O6N|>o{bCy`+uj5?b#j}B0rd?MYFvtv57Z8^R zsX#1KB*6Y(jNR*Tg_{J0Wh_Hb7V&y?ACP@(AqXIwr9tLcg4h^6<`$6rdLR=NS!IjR z#a0R%0WymRbphKQ3*CZBX@Cluvz)G4Bz2*bqZ*?S7Go7tMlhjNq+K_|)^I%T`D5MU z_O2X8f1~08$!+1LDbN>F$4rp2K3C(Uw7RlsmuKtDG!8MvJWITRblajSFwALi6yF{X z`!low`9`~k${Nn>vVj})T$-9ytL-F<)I>Z-wJ@AfI8>fPOW;E6yWvSf_fAIjn<(*F zoLfq`vfzg4G9u$ZN>0DH_ee%BqJlcxtN=M(43c-Tr7-IZv+~$*M@85%n+j48xN*ap zn@(XC0P_U~sv~}AW%RU9X(7GT>DJ1$WPO9-pz@x!L$y@^lrlUiRe`M#m^qxjrb3t% zngGO3%b~7Zqw%=b;Js*OZTDwVYoJFhaw@T?>RzRU&GBpZqWdTmZP?+rtG`l8@FN-21|78=lquhmDO!qt$Ys0We^^a}3lxoN(0PN=e#lr`>*(MzuAl z-v$<6y9ZysI687H6-#KeZKVfCwvw#lV+mDga5k_!e&L_3)=|mBnG6YH$;dQ%lRuQ)QbCnPS5@RKYh$n%KWvnf?z>TTB(^x#M|ptUH$%qnTU z-rjsD9Jg_2Qg&5vxS*eSw$NMV3C)4aXbZMGK3Lo>O2x$b)8)6fBR`uUyt5lIC4i!> zXru%W@(J3gR0omvg%Z^zG4JrSr*7NrU2A^=eA(OUV^5jI09qQ-23exG9Yc2RC(|(& z9-4-AhY;S5y}j)$zy$BsZXpr<1#la}v}8Zm%*1rb z6)^acpK=#ggkA1dIMQfoVH#0PuSGr%CoR~3_$(YH8+8uwg~qJ-`$1hUN1|Z$%AtMn zmP_Xj8g1KK`2E*9MIlOO7@&r(I)n4wb2Zf`ByCj}3J8lIHB+~(`JGyvE6)cm-&8S$ zH1iSj(kuqUnEoj1Ie_ev^=!NFao6*0kg3Lud_#;d46x+bwr$(CZQHhO+qP}nwr$%p z-~R7qFMHcgDxK<69r{q6bn5W9&T=_U#~o=JUSk>B@L!#ESB|BHB=eO{wtAlCH?w&D zwz#fZCcOmvBTc9>Aru&8B!`k9Y+3}=Exja{<@sG5H zS3+@Pq}ztW?0slsL)4&Bbh17BHvedN@$lv0;Ueo#)G^nevxkKJ9sPOq zZ!Oxol%h?}26FEs&U~zij8u?;V;4wjhZyV{2vzGAlgiPTmQFN!agmX(hKk>(3Q1?3 z2^D^8JltQ6l9KPpHCp}yMz-P3wDj)n4S6ePW;%Gyuc&oZU%EUg8#`=`QR#pt&bI@% zoRKL#?EZC1TGq}K1+FdD=7aNgVVXUnTVOUB-?11UWQHdbLm~|)AWJ1c0fr^KYN>uD zy^3@-LOkqp3@pY_pFa?NWm6!S{ndVlI=tX-t)=8>kqw6Ss;YL?ei!NKr}~mu;wEUM z)6~=|VV4CmxcWug4F$Nt5qB3qe8%wWzSsdWvYG^mqvEVqqOgZ35-W*2(9}*K6W{e?1 zh9I{Xl&AYbVgO5Y+q_5zgIp{OcU(^;Icn8)bGw>wxyE$|IKSx*Vy=H>N$l%0Eg-7Q z4>SBStDSnlu7B${moKdU1cPys1+6RAsN^oI$B1lcu=^KA*T@}VEA>lwUnS?a$dOFT zb;Y-t8|TEkN8PG!18(u!UK~$IGR6Q+K(fETu~#W|!_`6(vi{itN=fu#zbQdRo4}_Z zz)1lmd;C?#&PPkZJOYsvtAH@9t%xGLt0bu1td3v!%9Q9wpRHN$7H4pourCzsZsxmJ zg>byyYH@YI6BnpccXxIJcE|nwl<4$qfG2me<2lR;z80Xl2m21%7t+%84Dp&ay=cCF zInl;eja%!j4z!V^pg{#-SUJ2nX%X?PhI3eJrUzQr)_fznAs9d!l33vn6B-UAib9CS zS7W|y$7pO3k@sXLJ7C?%x=rl0=&o(`F?VDqO7ddVQ_Q_mlk>*-hX>bNw{Eb0hezJ$ zCQuE=7wFiF?Lzs-<~Iz&Aa*U@Lm4iexHNOb9?XI_4_4VMP{VjEcl~^8Q3}b zEOU4& z2+lvIt{H2hf*rHje$CKYfJJS`m|WG$x^<*Gv2NzQn3Y;}o!v_XOt|GxB%b$<2Rpp; zaE|xcnK{}HH6Cdp(>;PAw_f5yIW2{vQ2yCW8*rrIv}%^ros*b88}uu9iDoN1UlmmIHefib7*0J`OD$urZ`Um<`XpgXlOtOuM^4RZriPZ5upz3* z)nO<@!bWabyJf^SE$qTIXEr`2T$0*fCh5m<8Z>TmRVtk+vq%_4PuNokF)oDc zHd7wZ1>)p4h@xzoZBZU3PRQrfl#kJIlSsd$)Bztu7er+^9n}>uCJdK-ybaAg(;8zz7G6(-LSoVI3|^jTdvzaJ{p%x(sg8iES*0( zu2J!BQt%?y-fz~+>xdXk!Y8|5nqK;aIc4VLq4BA%jCX|{g-1}v?>oWTirZ#Fw`Rch z!VWF#H$Y}!drVLYkP|68`|;3kGd`&>8q9c)&RergeLNEsWmTS;YSaQh^8vwk%!! z!CKS7v(K>vmdc1yC-Xc@@C>h8la?4ZZh*&rG5^)s4W zPQOq{tLW)xKwl|gaxzEkXsT;W@YQv^x?EmQOz*4!8K>I?6c_eTEM|oW!uwV97f-Jv z^Yz6;uABpt8W<_}T-5%E{!RKjoa-++T>hk4sUoQ8OpD|NUlyL07$l%WBH?C$6f(cm zemMkARD?i*zQ#^WrHQ1scyW22SBt61Eq14w08HF`^SSDXFN%|jYlhVhzrOFfj{VU7 z4*K^A)t`5;j{N846fzCcY!zN*MoZ)36QtTda-@&P2tO&7POqB6`O#%Ae9D;;KL3boF=0+l1HU?h?Dt*DbFm%z^iQC(T{UJ8

;2@$k zj#cHL8e;tV>#f+l8FRPWPsq(g5@xH%-u?-L|-q2rQkVzXu~!5LUp| z9s(JspLei@3d>r^etP57##$qS1zsVBeBto`)+vB_`u#q+cIDu*`*-Q!5@OP1aJR1? z%JdF-2r|4etX8d6%lx)Gc_JKk#r4FHZrtA1=JBEeBN2M`m&$BeBN)0q1WWwKJi`X> zTu;BSf!!iiVj>T)>svh_Be8uBxTM>^>{3z78caPm!3{kjR|c(_D8HZ~iLg73WMI5( zl*K;vEI0&_(_}?`^;Jt3NHDfYIO?f$n0CRJv7W#vP}M#kp9sj1-$>-tlFXMJ=vYSr=+( zbvS};`E4&R#!9E4mD7q}}pdl$==*b9t<5o^mC zKxGb>q_r8=BwHk52OD!z7Sx*%OV<;0dluxpHdIhJ-tG2uTg^~RW&#p}wfcfcLw!{a zlfakudi6L%T(o!ne^T=P^x z)3%bHn~fq7#Y^4xK>v@f%U5kpfx}WM(0;HPF1>-uB9uF3(naRVCW_erg?Az9v(MNV zDDDXpEOY>cVq-A};oH#N-a5mT`-<@R@n>~AT>E!&JG^vU|KOPZ#yEQUnVr7>%cvK0 z)QbTdAk-+Pe^H8J-w@o|kM$bf`J9#y!QxK;_v84PT>IIx|D31va;-rbvwU040`5vn z&IF2^ZNzL7{-425PPnj$oQod6@N!dCx;zt%uF5am_i1l=wJ3Jevgf%8n1jA&;X69% zS#1Ni_5px*_)u4&CL(E=&?tziq^*)DY7zq6&oW~JHcN*HGA4Rl`3(4uwEUWs{Qu@& z#rL`4`z`A1Pq5>896XCnFHe3$s!RFue@f(%Ll5)&*o)>Bh4P9e6W^IOmdMZN?WP?l z>)AnXuZRAu-FxHO@pSxqNV|pqzOPCC5hAHDA*E^`t7*mA{6kna7n@i|djZf_KZ7hv zpTIpG6~q`R>g%RJ_@a8Y2JUCsvH#Moa9{D0to+Bw5ygzY{V?t7?5@xL^KKnooxWzM z&Fd(Yie{FbS7XcL5alV|D%;1HW#rlBt})0=A!QuJ2oe6`Qb4uVz2D8nXgZOWUahAiJg zy@qSCDgAE#;i&tkZ;kQYa(|Yc4{SC(6E@YYTMm0&5C|d$K+V?o7eH; z;w#wC^8-ZgRD7NG{!+hst;=y)9u8YNdX+wJN20H2Y_{4==H67eVv{@Q6ZaoH1~$Zy z?Bl-du1q-GSR zU;xBws9!$UNsnfbty`37EXnmHx{XVF=cUGZt(qbf{)uQ8QQXA$y91_|Ht7wZWHhff zryFnR(*yhoT6~#Qe)5dLd3;+@y-TuH`QrpoE>9r*tIC}CBJ3Wx@a{vv<#aX)L)W?> zNS$zs!+DKG%Ts9XjQ+-C%w9L8_fwf$|M+kBU5!v-R$azCHoK&E^Cm}?H+=stk4!&!+!;iZvE4GfIks1StUUn zoS1WM$KC%dc5vD5-i$0oO)?PufFeuDrsugTwAL3%Z#>1Rcd|c3@fas<3nH+DW`TiL z5MXyHD;{JzJ*yuIFY*cm1&NV=jzXjucDo!~3;X@(x_cJ z@Y^+ELYkWi;O_kTJ>SD;yX~{w<@rXB3Mjih0uR#njS@L@b!`V{)U@bUTpT86_KXJ? zFjQ%>Hit-^8y*dw7uO&Dk@0lBeigc%Vo4Rpf?K{^SpUK6)zsJjd%M1R*H&h^YUYvaVR3lh*E`PZXoT~lvAG}2vJjEWUQB|2i(V!#pp zJ6K@vr$|Kz@If6Kr)qS~p2F?I06(iTzKvZ<5Uq>?8yK72vMUnbM>lfz4)ZqVV5L0lI)sfF5s`1A{Ce*5|{ zWuG;Xu60w|tjFL#KZv|P8z2+L1vQ>I(LIbH#TDoz;>0OHCJ8%cbJMx$`G~y5L<2Tg zC-~{fNezq8+lag>HPTGj4#R1M>MUg5MU^|5Q@I_o%1z|}y)NMZSL<30q-zJ$KJaHV zJAZ`NltOKfqKbd%BVLxhWn^c{%^rf(l>1q-W|wH)L)^lZKQ|+5F;x->tCa}dW=t=3 zv)RWyK8sOCREpF32!Nm)zeqtS`AD8zmV%rD1*5~Aw|yXB=F~nSNFu4q@$>HgDqkcA zPJ7OU8`Fg3&NW=af8}x{TTCzq?&&UuaU`E{fyqY&#oXN)g2!tTROZsalh$Czi=#B{ zQ?;X{IJ*29UAu-0e>RL5>UC}fSiZ~>m5qXys7B^}{cR&77t{r>wds9Tpwk4XU2!L4 z?V~jUM-nqpmM{`vgmNg*X7DAlyyw%upid~7!6eufHye7Ksk5xz;XXdp?0t!A~Ha+ z5ryg@p{gC6E|8+3{8|G{ zzN@8)Qnf&(%z6>z-T0l|*N0v#Ammoszi*%qKAjARfTNgNuS76Z2F!B?wV;IPYH|MG7v!R6x(K)# zMr;C`OvW;1LR?{t^`3FoQ_9WT6d4yDW1Pt4+StT2ZPh=xUX9t0Ml424HIl=$m>0eU z0sBbDyy%147%zptpv?j%6W7=y%Y`A{Oo*moO*+*Li7cr<$vgZI&ONu-M7V(D1N&CLB%+qJs?IQl5)e}PPpTYZ%*#oB+2q*cdLts zgGed_i2}g@Xel{8_3wMRy1Nz&D#|hG`+c||Wr2KY>i$>rKFze%WSz3rMD%r6S)&M@0&*JD5>ijw@{#LmFbN8R)d-TqsJpqj;lq&VuEn6kqe~KmTnN|go zC)4wvZ(VfJ)HPvS!FWz&w{)@>&D^&Yo1_3`Pyx+a>7+GkT|Gxl4FTOUDSy10Z2>U; zh0cGtrlLuM0QH~i6Mv!qi9_5)`KYR4)9KnZQ-$Wqcn0jAQCUOqvvFVa?#+r%q7qDW z9b&!qhF-h6z0*}&4IonF?5%#zGlh}uZy?%D71>M?=|hOcRof)mH#;~2%)4O+E?DIb zL73FGS?cYcwf1bKwJ#X2aUeXiXP^w2W*vGk)o^({nQ+OjUth9t%F|WI+@Iobnatcc zw(52HKtrgoyuE+1_12e12wnQ*g2q!@@vGCHb&txLS<@E`dv;pV9-@6z4p|Rc-|LC%js?@w<2jpDCHEPD^;>kcZ&lbyS?aDM8 zSz>FRRjaBUj=9NSk%jkih4wPdN2gE-UXvQko2|F#t9|;cSG4V&N`FMleV%R@gK zq}BuKEZ^8A+G4*qRNcaF`YeMfbcmg>(i^yMnmLtNUDJRGoec6;{&P2 zzP8kqbrJiNqz!rNq$+Htil|JYD;I&D8ERJ4Uwc3MX49b(L@0Pe!)`ll`E|`UVaNK( z;P)OvZMO0Ia;W0vROvE?iuPI6*|uMrU1!w?-^~EN?t8jfPXoNkG7mU_gKODvv+E35 zDgzyMyJ1)E)jgYKu?^mgx)bnzWY0Of zC12QM>Yl#ACh1&u?VCiUgHp7avP`3^+g;ArMQ>k#NmwcUhUF-(T<3=du;}`ef-w5+ zs>10yQWUFy4R&g+!j)vfCBO|dwMLQDmG=xdo9uRhEiN_QB0@H%mtR9jHBGXgGEp~|%o<2+ z;G2pLQ2;W~Wp^+e-ZH_A{ejt>XvV~a)?}5=D8+Cl*5~zegLDv|Oi;&zR^)Ep%(hCO zH3PW@^7~_l3w!WqGnSZVHmC_;*CdkxzNu0GZXsGIu1SD_Pl!Y>M4Y?M>3a)ByhD}` zj*yU_T>u9LSUnw}!G~9+g(`AR1+>cF6#oDZHlhK?*uwiIS|SRFMt4d0Ipv|;GJS|A z%jV#C@iy~OoIpF?D_DgS3nAD03;8ZK;Z{MHe|y~{P2 zOw&p4E~B<|LPZVY2m!f3q>0XI1r$)+M5aa6-gK{aHxa z?$UMGm{{Uk!~lmN@HLbOCHARZ+)AniF<)cj58zON+(S5!Whf6?oTN<%gjS$@`DK%6f0nB8cAkyn3t+4s*eVdUb=p&3X7UjqJHeD_y_!9Uvc$o?m zP6cp-p%l<{4Fq;d7e|)v_8UG4fBFh645Gc=)M=Mx`|GAS{;a#&tEbn#ZrVskO&$N# zwRc*M-`DSHM{Q<}A?ms%jM}9%Y$1E<7FDCs(q2H}q8pkA>G!z%c==d9KE9tPER$(B?oIs>dY%h`-W0-a{kcxYhB8T9#Z} zNm+n;@-hDVhfPjTCz!!rnkYQn-6?m88JyXOpjUJUDBhY(ga4wmcSFQ;9?_+WMU3c| z74LFhJd}i9+n@K>BQDTFwnf$lIFU>%Q#arl#XIN@U`HJQ_aPY%Q;-bL6PuS&3+!Fp zGA>I4&V9D2k6Z7xjxo*85t|IJLByIXB(OGMcJh|wBi209kLD2X`5TwM4!OJ`p62R` zJf>r1VG8<-R#`cs=Y3I2ye1~A`)>Y$Sg25P^5C9mCeFS7N@RcUWnM*M&zHCVS zo^3lx5f16IZg8=@{j$^qpv*&_xv28czR)e3Wn2_VzQx*UomR)K5rb>;o^Wiw8>d^k zKI$h`c<70?1MKM%wKHcpHlIs#$6#%E3np72U}pQfm=cY>!D$t4j(rQ=y|BkY&UPN5 zuqijtorEpr4|e?ci#@cyZMI>u%hJc})g%ATQ)zeC0=fxMnR0+9bMD)6$ z4`be0Y$DbMkszertn*xQX%{d)d?KTqMYUsIXrycrRhTgWN0F=>tHHEuGQJVt+ zg|{PcVHqZcqo0I8rAHB4<$&$+1?X<_NzkQT(g%6$jM)+@4hjt;G-sr1o7LDvu!m?Q zbYm>0or#HN%mIQDF18x*KakNCtFH!YTET|5V;AX=+%xkAvx8`3JUv3pNnxHgUG5yC zYuSN&u=v%CM1n5T^yEl&UkQYF^zU#oP$_d>Dl_DOCLscTQ9q`trqO4WWqTc~C~M~TPfqIf_pt#k_>O9lmqg+-Uj!nm1rvM7_B!8cCj+4$|BO}?k%}q-t638bJlQ=q zl=e0Qgl&_(Q8?Te3*YGQ?5Am6Su7^qeT_=E!lI{A?p2(g2>%s{JqSL@YT7Qj{xRP> zP;CqUomri~V6j}13A1D!6nwADWZ(f>`2&*}3J67w^gfV9g6flu4{olNpysuY>m`5C z?2+|AUZryoF(y1cYY186ZDgN@Ws znLC&CrD6clGvMqEh(1->MUpIs*cxq^$=mW9RBG@7;vO7h#TU8cmRPq;cJUustz=zW zU{t|Lywef#CN8?&lMW|1X^%BvauE zF30!FxvvkOlwGq;^bUO12*-L-h@2f+R)cM`tmbZfl0Os?%`+s%9Sqw;L~HXVZbn0F z;6cS=5k!DG&h8LTmO)s6ARwffmD^7esZ({YBCm#kMK+9m^EW}3MzI9Gq-oC#x+CWJ zRajYId~-^uG#XSvgqXrws>{6@hq1#+7(L?Q(yTAUluwvD!jD%#=mj_qv$fC0XhZ>P zkrphkX;bQ5NbiNL11|X(4-51~?qVFoUm*Vcp})OGQLk&uaQYueDo%4j;26mWv5P{^ahB08rtGybRTWfy@XRr zZhW3!Bm@9taUyAGPWRkW_Jh(xnykZkXi{O*iY9jaW7JYL56a<#C?|nZPt>fB!$x4! z#tPO&+~ltC%Y&=w)+Z70xR>DVP5dr$A2yG|OEmRJWD<#vE&k@%2dDIFNMo-tf?${R z6zoeY0Z&V04F-!`WA{l;u6;)zi%Yka5cB@4F<{_T{D8p`y^%Nd0MNd4+X*}xU7NCn4S^b;5Ppf3 zPhWwRpgdr1Yc9O+Czoam^B+xr(0sttdw4{3Z86Hfx`^fhty-Zrm{=I7Hkas!o5(%# zrQ93HmaJRwp;3XtiG*fy1O>u!YM6y&t#0BX$8gZemKJ`_GX5^v9l)y`vh#o>sp)wC zc@c`36p4hMH@GT9yTWS}`#Q)hvY{juO@VN}gD-}`s*z=k)uw@Q2FM&>NI@*-`KVFW zs5+|_rq0pig23-%uKvjnlk_q*hj%sguvgVeKeJU|i{ z2Gg0Rrb#Blod|lxTG71O3r?-}S+fum9XVbF`Af#TQ*yJ#<2bY#_bnk8H7i|87%7hM z?&cE{2pA43S@Llq84(7s@RRZf6aY7OWp4BT2wiDPys{LjeiR|!Vp3qP&b=Kx@!Sbq*QXkzDMa< z-^Iciuk;$CHOmOw?^R^2F^=Kf-d%Hwdywv)KTKujzks$${9`ilC>PbO>ts zrTKoY_WM8IzSo!6|DCU1-|zXn-m)*#>-BqnuCB-Ba_DGPbKY8~Eg?bD;> z_QndS7GDV0-U=52FMwZ;CSYxa3qsiUm>zw-{^4A_Y!$?KC~GQM&KQOML)97Z1ZyMB zgUse15Ojq7p%nDp8R7#$2srRIU8st1f@r}O%f-HfmdCab)Vhj58V z2^lMpEYx$37BcVBt~I*;|Py`jhdB-y!J#DgAOK$?w}Wt8bO`GDg`bmDQ&m zn8;2G5(cpEF82W#MgiLkm1U)!kzYAiY7|x-c>jTa9_StgYJjy3k^zpi8_;p7d9mD= zjW@OU{g6oTB)68QeY$F%q;UH5^`zH-To=&zT<5=a%Am6I*x;;)xBptyd=eE&FzMVL zng#lp*Q#O4SV#W{V*O9^5SFf2_I`W>WpFV#$6U|G-9mTJZIku+@FKQB*qO|Ea$c?4 zC$ZR@8~z1)xfFi5g-AEf;l_y6D7^h8z`8Dr2Y{K8jSIqlckV`jCn>6*1fTS``|^Z- zlA$v@?|`4ecMyM6AB@?=xbdGRBQu%3>}HAedebSlH6CC-AjxRnuB@|mY+cF_5>^jm zceov?#wVn`d064mKPsc22|K$Jk@JTSiJT^&3)8^pmE#9k#eXHCE?~znU9fcU_F1GD z<-vDp@rxy!_kn)-6Zgn>j0ws;I{K-o5BS;4)(igJeY5sY@qg5_wH6joIsdx;Ddl=J zQq#3hWao^G+5t`4iV@M&)9hDa2~5Fk`60DDmoD-wy)}4^<6Mrj;+NCYKTV(5f52ZQ z()EHp(^qbBIL^T!+c8D(G{L%#v62+mC!pDwh?iLc4?Ub>SfMicn z?Co^T=xZxS`S+Z|h0JfCK#iH}q#c-p=-6);cx?lr22kSz=2)J*oG+HObn*vgBtP zCD%exSdXG>xqo{ngX3663;hHjF{227lpztDw-~@2IT%Bz3z}U;I0zcYB))>>+M3)O zJj!~d+q+?hH@E~4n#6yQ1w_g3!&qhaQ)^Zx)bswM{Bbs^Yz12M4FmP4R%{MeBH@Lz zJnDs%#h!_Prln{nKw%Ni=1Dcei)C^qnRYKgIOcG*GBiLj0CC+|rVrQxvc8G<1%#krDD}e&s{~h9 zKHu@#hF1sQ2Ef~&#vDk^+}VOWzB?WUUcZBpRL`G+`O&i&_M;Fsl+xp5s>?=`x&s_o z$M4e2!+havzHm-Ez@X7vgy#^7+cu=0AP4%L%IL0)W@-y6jFrhW zCO}YqV)xr>DlmVG)h1nTgksemdmZ# zQqaYel5UYG3FtPGHH)E7I?jt!H>i?h@jg6)f91rI!|&aol_C?TN5UB0MX^KOjOdp; z*+-_m{SrX2@%4~kw`iLVxq@G3-7t;We2bf4#Y1fOcsAt0aO4Tk8goi4Hd2ssb*+H|wYNK4yw*#)x#Kx1cZ zj{RNWnF=DU>SzK2nfIF88%_;HppLA9kryYmrI;*Zqrh1fPin?6=z{tPSW{fsX4Bm% zQMWJ>{+$+_qz@exWA^NzIC1Erg`1H;H`rgb%g(cnHDsn>+J7JFN8n z5WQd5uhjqyS24vtxR6XEKW5D0-sQIJo>)xsVQ-jv^51kbW5$B-zM9a+K0YmdJYWoy z77cr1j?r`!xha3Xlf3TIIUzY9G;ru9KhYuLms`vgq2w`ZR^Q=+6kWJMx2IO~rh3&R zW6t(Pq`l7KgHAyOl(V$3Cg9$rfVtOuyM> zsN_br%_6lGEQT1ip+Q3xzAvm(ZZT00*C9p0+`eCsn2PJv4YtlVGx0w zi9Crx@n&@#9ph5DsHNhj(q$^{9%EUIyxq+LEB<L%iD|cdhw$cA=zS=#i}&D^IsEUU zF<4lnPuUU(L&rf}4Hg#Q_vr%Sh9!ch`ydhVSRM_vC_$D(T74^?1bJaMTF?HcZDjDN zQXnSqsxo}4B@YQv=Y`GVAkF7$NL;K8^`*N6Je8;NBk?m86CJkvh<@rQf?J8E!R*g~ z0LO<-g|<;V5xXqX7TJp4bNtZ^d30Wc+NVTId;NJVjDRPL!h=D`l%I2$gik70k4p!; z(%`4F@q$3Z#)|{1qRsQu(OkoDB1P3}O!KllFtq@?yjkYNn4@T@l0r_bi*L$11v04q zL-90@gltaJBwp|y-7~1D5I*^+DKuA1WXvYyu?zypiOWYdf-2~%M~MAQrzj8IAQvXwC#GA_aEjMg&WzSefaW{h64FIbt&+uQOMZ{K4Nb!2!y z$vUy7y{}#}1nxLFj8l)E4^)%C%n>eLU z?5Um}GVp>rd9vPeIpll%%^w8x215shGLG#|o0OWFOvK+fQxjr{AyupNRe z>P{gpsCg2kGIG7A5&B8sz6axV9SD|lIJdNrR8=`a=3OierZE{_?fw&4T#=@O0a3`T z+1lMyocabA%*^IWu>eFQ_!{CVd4$9BXK(ZpjhVX%uTGS5m;ow1C!difY-|P7yhPg+ z=6jT2_kG`OPhsNEbMGY$>Bt<=3xvI*ST9XZ8a&E-giSOMTx3=ox-~D0fpCYOp=|oQ zY=#T#70@8LeuHccc6g$il2Ix(j7xIoE?1Y!;A&{>s}()qylGOq$dmfXlZ}1kk}N$S zr4QfjOK@0#(N9yMkRMJ^>%SZIC+ToN1?<*lk9a%P>l98W-kfdwKhlekIP&ia__yMO zeTfXBKfN)PINLA%0B-Bi_ zZTK%cYq~fD+cx|(Vg7m?q~B$z6cHL>&gjv{L0d`-{__K}wx|_vWan}r(WMUrGoc{q zQv`R&pZm{n_W|*69#8Q$y{8p$Gw>Ag&Tkc@+78zW!sN$fwgEt}niRz`8@0!+9`;V0 zPb6Voa%Pd8&@vA#DK)V;K!%nZJ2Z>SdC^`AyKC4bS9iV5BH2g!T=5Q=NZJ4@7*~pS zshec*sJnAc0H$pwPw#Z($$a2=aRdj&Q&df1w!STgSK8ILM1vp0i+~I^FVMIaO|2>( zUL~khc&UI~>}gB{G6_Y9vLxugWO`O`i!1K6L7&lK+f4>gZYlU9gV#R=5!z?+lbS}l zTF6$?13}w`>V~JQoa~P;U0-h870nVmNMU82Z5hWBY1e#4r)GaW04QxkrT*Wm;zBGL zx$ewKpq9vk!3XafkvM#S;HGocB|{zr%~#;J(8bw5Z^lA5FkMCg6hqWxw@$MAd)B!Y zDp~$cBkGomh)Q@MoEI~FCPpR9${4IgY$5_erN$>(=eVxZz(v)e${Qfxz{U)_Ss#Kh zT49Q=$WYbaD?INQR$?hDiBP5ZO(Y@=%bTKPVbNK;qKsl#7O#Qn~XL?-v0)^E7 zpa#rBzOD)Zcr8$0>zMvPMN?!AXC(xbh<&sV$5T7?G5D!a>hGacnxX#L<$}Q;*re!A z1tZO5%s_|-ujSmlyvtC)Ort=DqKrR@=tJPcihcM$ns9 zoLPR)WJ9MpIoxpgCuRvbl2cYRne<#CsX*!WKA9$~W{UOyIv zIKqqNMAX}xono>zzK-BoN2JKa($YluX*o}-G2qo0Jq-_rrb~j8W>#eT7Ut#pBEnP1 z=m!7GqG1mVTx4D{$$c2TTGG@giHvNamoZf%)`rxzVMtdr8%DZD+r;+jvuJWRY@M|1%I#>{G1oqw^B}Do6!bDbg+M=?6&iqCMoFqw`=^^JlRW!kcXtc9fQ8+f?mGhjG1i;1aAMeGG z<2fA3=ZVk-krb=sB1kM<#@bBgP)FaP0?6YOw@G;TBI}3?VWVv=?vsKpm;GJ4_*8!w zqp=>yy_If5eahLe?ARAL%p`6XSWO5LRYR7k$d9cbD;^e%@HcR_LxcxxOQR?plSN=2 z0%TnI4nbY}b{3S<8$gd9!RqMSlI)YY zD5^BsT0tjSOd?Wrxos21?jY}_ekT1KRHWfJAd>SkG1V95rYa=bN8cvuSFo?mz}#?U zm{qyA%KA68UnDy-ys!WvV0|Qd73ET}g}&H_$y^K|`A#`hgt37bN$`|G7F|=60Hg9U zLn++zN~#tF>@CJ$^KpINK!Vw_+~k? z1RTpj2GK3M&i-4ZlLhx<9dHl6eLvlnv^(>bn(`AW{wM^784_0JLCmH_ilG@SCXpy4DX4Mv=M(cX9yr21(aB4Ti<$(_KLt(z~FhZ z=bdYkGPyzUv1m3fKMFqxr;-nuT4z)SuwQ)?s>JtMT}HAP*$1bEN(5Gwuw z*z5!N-ndNz|3bpK zZT9%BI8ubOBxDVzd0E35dk3ajyu_0=bne8 zv&bB0-D}@&HEz&cFyQ%P27|ZQ$cT=>DQ$cTuv> z+S0#!5wTTINbwV2SoxB90N`?OcQ{w8nA$Oikm~N{1s=(-KDg?fTJ(9_Px=EL3;i>( z&4v;t5)B+G#I2`&d|uU-9*0x#@XYaGyCsDP{9o^ueHYW*Md(!PREZg^50Pe{>1C| zfy_tT?}E<(HR^NmE*?h;KN%x^a9wKVdODy2_nO@`Kr=16N9+tzBRraChjd5M)&v`* zD687aY!i!;bfMMul41ttOB zriq`PSyJMz3Ayp*xY$&YJa^#)LO4rHAsTFuxUJf(kHlGT#<5`;E%)5~W75^>t{5z! z9(nGH{~)}QcYln#AyFrs4f?325{bX8+=TPUH3+c2eog{RoG9f(AmsqP3_5*w2$44| z>_K=B8x69ilh{G3AFYJ3aR%`J!~8Cofd>eGTAUcN`})CtFbJ6 zBC<2fPVs&a99?x*BG~DuQLlCzPGJa@=^1a|wnT>$zAR%2M-+}J7zOyV>W-w9d9TUA4AvOYspzJ%=Oiz zTvruVf5X~!#Myp!?`Lzbha9{u94u8k?8I&lYb6SwGkoVyZ3v?M*rayfzip4LFs7rg zM%4r1l}2ynX%w%0w9V}8B||UYw3XwYw1W;lJ^yG4od&5Cg%4Q2epB^OUK6FSD-t54 z_bpI*zE6R)4b7Gv4cp+zSq=euIfMs}tt3LuO zgxznC!X?1@sjhVBlvU>X2Dp-!A0a4~rMGB(UF>fp+ z$YLLcs3CRGV3K+p3v3hm;>9o0c5PPUh{}_?T(!D!h)O+1#(k8S0`hcKH!=L#r#Q=k z+i;cX6);=k8y1{7Q=cmvOb$yRJW817p2;ezT|E<<-b7jt$^7iCo(^wq zMRO9ye_IKcBr>}SLw0`tRV$(qJcy4*>axzJ7CssiClHU!u$=G8Q(v9&?~JNqbr*&1 z6~h_?+c)?F;G-Aq*<$EEm)&dAVI_!{*+j7vdv)4(m19n#CZiZ{)N@#rn9K}>ID^0) zBx3PJlL=Y}&`)Ngbw!$wD-!^b@?z!1=Edj5@t--N`RROF&}!Z_;q+y-?$~LIO6e(z zbTC^LB%M)<%-(tuP5Cl=)YqBa84=_0IXd1}gP_NSnxSnukCKfMyzPdhM3;rTfCqAP zFa|>8;s;foTdESMm6T>VwPl#jW-iD=@L+C^hu3+ht3@19nn9P=3aUoB(USyAp4Aj8 z*pbwsGf56xT^E@+lszrowUBLzsM7|8wT!rBoGh6t8pRxLk--a0PXm?5Pw{-1zFc26 zE;JSlMIJcbj)UDcMp%4-QLtC`UyDIphHc*0Eav&@!ZPtdBTw96JHsFV%@B9=9SJ4HJ8Y@k}A3Lzvi&WI-n zBo_5eC}?rwqG+xet=UV~avhJ@*Z@EbsN2MRI_LpxSfXq2Xh$1);FPr75PnLL3qjFPHa z4^JN8y6s4=@bG^Ht_gM4NQSW_SK&D17>Hxb>0ye=P|x(Ga!IT4*A!cWM?7DuMe-oQ zN})tpoeir!4X|PXDDN=j6=Lm8aMe1QL0vPif9PShF<4Sd)E^Eko)@z*5KYUEml=|A zd`k*Bs_d;OSO?ikA;fO$1hQ0Nh7^q(EE&{vbMnFq;YyCR7_N)nFFz)7GWPHDki+Z^ z&JTi?f*{_}Y*$`e&Mh6{Gtk8g7Yodz!iqjRD+JL*$k?As#(s6ju^igDb)ekfg^?YO%(ZU!=W>vbs26+a4*?tpmxhGYq*!UYfT?i$5S_ z?)0^({t2YhnQz5wgPQY%h9tfJ`V^{VG+#Jmpn?S(plc%$|IVF7=fw8OZjV0UOsRxH zkjHu>?DFOW3v@0vB{>qzJ#wG^>^-v(=;_YR5eH=~W|0gKHX}LuZI1yWo0Hi{3wtXI z-lBI&7e)k5^(&n?a7G77VG3SCed}|kh3N8u?}>OBd|F!JAkfk@z+#N1^yM7L>_Es3 z8?;S!iN!3IqU5XPj>}A!5~-%y_u{!}*?C~Z@BkBlVabH3;|{nEv>rC3%ykRxK|Yb{ zWuski4{$aY)KZ952Txgm&|iih1&0;k&~YM72gRg!vY?bn|A_J}5C<&3!&X4y?(ed^M;Ax3)Z}+xYZ-L@+<;Nwu2@T1J>yDW!qMPZ_^}4pS-V-7=r-P3EuMihH0{ z_;NIgjdX}SPBl|S;D0xuI9p&oPr}!y!CFZ`%nrEXxWJ64M;KC;OF2p#s?1yuSA8iH z??hM(>#xXyQ=LVWemGe|^A=8q$Me))hzRI&PXKGrOdx>w$R487^P*#oM5gyLNlrM*d^(+){+_P;Cy(|0Ui06<#_9`5De zkE#2H3F*@@r) zJv=fo(2e^y3{HN3fJQ5zkv{%SD7)Q*6HWMtUK$*pnCt7ho-je5*}|Z}KWT|Q^?p@a zcRtGO0#o9{l`N;wVmlud_B#WaN{WEnTylgTCWhz3}Hj{tyOY--m9 zwWdx=QNiv>k!hpCI9T?4P>8IHZE)B`%EHDVI<#L`O>(vTTTp7z*MRetYt@JWzeA4a zBsrlvX#P`4(Mk?Tj_*XRkbH?FCoe~_PC4p-@zL`;Vt(p9&LjQcjZ>c5m*0rU?8|Qg z+z{9gXpJU2T)=Af+%?NFhEXO(q4e?~s{R-z`geyHi{IuzF2}jg!tnXdAMHeKOJNSR z>-Nbc8dG|aM3YrwBG4#TZ{WM0llp?iK5T4{(WpSgH2^lt=oO2g5}|IRj~oJf!6x88 zQgz!Yz+(k#d-1bZ^-kW$6=5B_T_a)f+G-d-adgRk+dxPX%P5TgB}{T(8EHPB-e!Xd zMu_jYVNX(TdxZdk{mcyGF^feEy~fpYyoZkpEJs`f2W|B<8Z1k7DP_n^)v2ZhNTK~I zt3w3BMXVW};;_~g_J$ANSZ#D={G--3;QlAquV>m+|W1I6lM}UcQUGgTU{j9HN9nq1H7b2=7-Ui3WIb|QKlh9 zax_(nTTIjr824JTjY4QEC`iy94)<#!J4fl75=!S?8@36Fmyn5(Uw7nX4=Y9cNAIz!MsFj7aWO|)@a2NBb#A> zqB8~Ls=G%fOE-|Eek!YW13poS{DmWp=7C%!I(q<+aRJK$iE}9$VNxP9j`vYYoofj; z$k@M5Rz5Tl3Whp`f_6%cM35_40huJ1NM(ZqxhL(NCDa`bH7qiKI2>(gT52{a6oKX- zDPZySfubYuxfWI$<1p(j|CxI6>O3fa&#FX+;km_5L!J6=pPgla_0NK?-Tar%;(?f% z&$6S>hL&7e1SfbLz$0P^Xb3qqS=iKUE1Mx84aZ`EsrpbzHh}#S@GVAnni4q0)g;@P zr<>6I_8)^e1ZU1}`|AgO1j1<6yb&e(%nm^mYklHotvM^rI^Zr&h3cUB#!0GMS0<=D5$k(a0Vki?rnOGJI0tz>7My^cw&9 zFp0S#M$;30sDMs}v6w>n(IxgE?hEOz=u(eZ&Lk9PHfq-Ba_T}mN?cFI$AV`X+ihF$ z(r_v$_M!t$qmqZzo;q{;U`Cr3JD!=~DR9g^(K!#)E9s&}JC7~rma$;04q~Syw5FBG zQPYv_Z4$g%X=*X(Kkvtj2Tll;gG-b#jWgQf$^eZXdWLNthcEz#Ri#U6-?4yg^b=?4 z)IcT|M?!xF8ka;8r1Y&52RjTzJHp;HNgOjUZPpMIT9OOs6tE;8mVKLQr)<>#89Qgn z;V8ut&=gl;zY&jq$)j*@BV=Q#l}|2iNzFWBBPLVZSpK+`kPN0zR2;S-`?fYjg-Pf9 zD^Wc}$IIdPSBcPy3Avr4?hT}SV1mBp8T(=(SE z8u-)pq=eNTTsU~!%=N~X+9wvG09!SiDC%KHFQuZ$7!#PsgP6$_lLdNaNTNv-V{YVB zlI;Ldh9ADM*FPE_OZ%glIZeA$^tm@n=Tkr0aOuraY6CM!~|lV82gRb_ZW*!X$m{Dy{1;&Oj(c@d~j@>xez^v_X4ev01a8v~{W zA|U@DNM+aCFMV%;0)gENh?%_yy>&q}2-p=8C}NHEbl?VeIxZBD?6T$PP$UGAbA!kx z8+NgDMgoOAWikX2(b~bpda$UWgR3F!(5rCpk4_$iqhY2voj4>uV=P*nYhE1w1u7jA z6?J6s^L2RO;Pk3$iZLPb0U%YC4jd81BFBz_ye8GCh&~5y7eNEv9+T;4qDWEC|7uV5 zkn$M}hKx0S{s6VtGAA$n9a1Jf{f4o5)q4k18c)+AIa?zOpDX5*9h*R zQi-mIVz!~_P!%LyD5<2zM*fRK11DjZX8bd5)X5GmD(o`>tmwVJ%eICIqZX*?y`I&J z;l<$}q56 zje67aeJKiW#=75#%R1zY8ICrxbWwhI2NCo+ohGt&BwbZM1(PbfYOTO1dWj7WyI*BKY&V>f=)m_0(VLC($DhP9rT=4^L@9Yu#=Q*I#(OFbDYdiHZ z$exaBH3k(qGIfNRV)Rf&qX{G?d2p>OTB+qAp;Sy#4}x{joul)0S`|2@WF>u8WKxLs zZ4791j#CpQv_r#$-6N>I;q9K(C|DIUPT|A3i*o+H45rp7Hhs1^5jNyZ<(g<(Q4Mmx zomAf(1GGiEJDo}9&2JX|1c(Kg(hlbwcgfakCLJi|)CA#6Fxo>h$yhyesk3CeFLfiM z+}9}aZD%muS_d(H7L`!^dm~9;ejK-8n~p0;57A4XTzH$=>7IPAu5|WNIu;>TZOLp0 z<~eDb-OFY>RcQrwJqQ`IHEk40x9a;_stm-Iic2p}T;PNcaER{Um^B}*SB!anbMNmJaWuip30O7=6OB=@M7oM>{L zzgUE($#xp2IXb3R!`uk6_9;v2C(SHbhmGjP#j=#Eh9YC}Y;xgj-3mIWtz%FqJed?D z)@O`kMcE|m)uxgt?j^6beTd-5&<1uXx)8=lhj2H%GV1!`JS`NK5n|5cVVk^VA%%#}I>+qegzX6jQ_wX60jpdf6Y2S*} zW-f+enyaSnH`3&}3UQj*Q=TTB+T%`{OO`cn3}H~*;!b^*NACW!RX;op-!r}rB$u9#w4ks69E%s^eL7RvzM0opY$cH9)#f(yr#6%nExKnhE2ClHb?r0-p=aVt{V zC!=t7C7KiH%4gny{Nwx)qI3?)57+pXzPHq6usD7L2N_hma8zlS`uraWS4?%rdkK+88c=zJn0-! zVbj27Dx@Ie*i4}vLwd&P5cp2z#{5zv7?8kzIS1pHA0JFi_*lI$t-S0QzT*>>rNH9x zz9SO5NL^b8l=CTf(0`Yy%t9KT>-V`a-P?#xcHd0_qd zhxV}YnP(CQ97@;u6x$VL-m|9@4hh+_9&h+$8#32ek_0-3n?jfkAQAdg!4xR7(rk0X z+e7d#U>3(G#mN{dwz21BW7a%ZStp*=K5emY4^thv;k-Bcsfeu=>tps_C$6lE{qn)@ zCLQG>xjhsDm;Q5APAFw~f#*4{COJOAZtNb@BUnaKGg-$ro&#<;h7U3y{x_r0e68F` zZ)c6WY5C?9oE0_y5J5Lg!f^3x*Gfx}iW~HeY@h6%MA3n-SLk|KjF4tAp3zqX3>Q{( zTWb~8%wQ_anL7YXWcwz^&Z1)})!U!4TQA2T=D|hpB3{*EkH(p_*(+^XSs2V-SW$~E zwy})d|@hvSUcN<>YbW=l#et%I1|c+zl`+_ zb0Ht>Z!#RWV&qdt5BFga{sa$0qI!w{xbfnE?O9DTAyE%TdThucnS*(Pw)3PC zB7`Gm>2x`UrB(Nvx}3=2V(wHLzrtbV{!Rjn1rzGb%#3rtl&eNN)>(~}ol`FI1~Cp4 zl9ki2A`ipah(0pxurPeJ(-11-_AC5?omws*)xESaMZuX;f6p1{kq@F|n6GC)*+bF3 z*V=ZULF+2R&SaEoaRsNJ1cz6o1&6uIt@awaWgWa$R`e?;_q);E=Usvodk_|TI4)4Q z%o6AE#uWLNATVG|Bo{y;kFn^EXCaaG`6bA&K-!6NWib>hLOKjv~DgB0y~# z2vBZU7}^Hlpn*V~x;_r2@KiK9ZHvi?7_k!+=v!6P-GXPqtp{RbxD1r-vXZ=^RY#Q)ih;84cyNiX_gu0}9X!;D%k?J%N8H(UVP8C3t_U`;1b3~MZxdtR;T`RA z9@wqom8BYckDrEP@Tw&PrtzWCHJ=d-b>1Gk>g>t2NX{+0{+lu$1-Cu)IH%dRt?k}Y zdIk@%liv@e6fR$bPUP#P*U=(@=V z3po5J9jZXG1H$WTcz3HF(#E!A{Xy?N39KNbJ*m6&dpZO{G zjacu4c}jTO2m6)$fVLE>|M_cnnBIbtd!DXe3)xmeG}F5oV-&o=t@Eas#7F>Fk9NDs z#DTru-pQeqL5ud@P{Qka&bsD*)uc@(2pv*L%jtr_Fyv|UHty=suj%C& z3LKrI_Q_{iSMBUx(t9aXB{$a*M5jR6T_eWk%EPkifzh@IX`WL65bIr+j0&{daG1_I zj8UBmQc6PVIAA30+;&vR=Sr&?sA73x@uug$zvOwWi1gn~e!%ISua){M{eA0Ho$YVg z=d&M|aVP_4q(^8Za%7t$gu?zd@*&H#Uyz9TJw@4G3*byQ&mXr<_O+ArqVh zRDVGPlBtgx=1 zTuU+FwXU=8{XMe%!qgvaTndI_dSJSJeU-`Pcs`hb+UG&ejXjando6A=Vh@t&Dzpb{gWTv9`*|nqU;(ebFRIG|IKE+3d&xe^2!;kNql5>N2^{|u( z5ZHa;+#Jjc?J`a&LOwq3#|%{AEN;9K1){4}G@d#H80*OK%Tv|o4o^Og->&1h+U4%0 zMo6v!NWPBlz@hAM8hQUy=aLNn@#&-(hp}_}C=Jj)_6+B%D&F{UDgP!1*lEWLdmY{? z20v-rAYD|#o7aZZD_H^A^ijNS!k(df8Vbw0Ao?mCh3^ICm|@K%Y!|e0Y4R?u4!Q5u znf)L!qRdJ439bzP=XcfXjWBB1|8vy3aV?rdeSBb>%hHG_qI*nfhp8i5H>FFv7yx5y zRmJ$uh8?-A4@5DLsk;6?Bu&ZQQ^z5C>%p>~>PQe_y0F-ZN*w*yDEyN(|$llc+; zD`-IyX#KB80tLKUs3;uF6@iM9=Lk-iL<2xRopap(i__HKrw8*$-f>?2{xB+A?Tz)f z$=VZrUd>F2dLMMB@eV=n4iV|{$4`TD2`07#|G4trCa;hmAic7SG_J;mKFuG*thot~ z&d%R%#}CEVhXzl4absi3dEOC-_Me8a7hD|=>GOwa8_$k=40Y6XMn>n_Ky?HpjdjIM z7=v2=+RbJrx4XDQad)+=KqRImc(HmiuUA-EOP;vbT5-j}gQF=C=8wRa;#o*=VYi1F z#w2z-8YH(`ZEXM&VqSSKYbiU%Vd{?0v`I4hCm3e&nCWVe8An;vr77k%*u}k}6G@4k zPYHJ+A@LJBO;ocY_g*q|e9$tJW-{cCA>TKQz?CQ3^6}(j`Nt!pAJ1?+GSUh}$UpHj z0ls<^jNGPAG}3K6a_NkpBF%6{FBCKaXK_cFuFMZQ77QJkxOusQehD1#Sq1$UG8AJ! zA;eSi`HN@cub-CklK2-=qob<@Iu^IvsXeLt34rD|$exX(&P#byr}a%Q>DdTEnf&f8 zY)D=kYJ0r34C=%-IvGn1#LWDtO>isT z2N_K0P8KTnJ5W8jo8LLB65DpOg>jd{x0!+yquJy|Y4ey^pi>wwCj~hBsQNh9^h>T3)(o5-fLzBqz$JnZZjyIjY`U+x*#8$(<2KfPe-3f;1e~=mvQ+Z z#y%aX6kZ&J1uKBdwi;)WX1&Rriv`_%w`W5ltf6B;^XyYM`{ZhoZKc*$JNr$Eysu}y zq}G(iPOdoh5aIIqFVAHW16Rye8z1a!GPb2W(%hVuGFv{BTZBEMxl@NB&?+-x;x!@D z=X26I6jLZ^1t56N$7VQ|5G_r(US2D5My@SlmX^N|E%OHiF5#B@V=hMqF8+lNE@5TvvDeR(Sj zaii!1HkIiXS|Gn(LSlmQJ&u5;UQ}CY0~0k_2kgOqotIw=j@>f<+ftR<=^(x=}F2WL}FE$+YPGP$K`)U1Rloca?2N z4g);FJc*=zvpaoOQBS)yITI&})%Iz8y`v0W1pL`d{0FiH$_{7Y!6YiAi%)_BV}yd% zb}~gX7~vG|1<6R_VV7d|FnVNyk{^2?EHzZkOYM|_HhkBn*nh9#lV+ahXuC=1(jHqnUD z8#HRiHG#}Y3O;`Kw;KzrZ$af{TtGf}Yp2R~3OvU7txIgOhCnYBnHcg1}x*xj5X3Z>y!{Pkd^FwhR7g+=adYasJQ&CbY0IDB$TgCuS%~J+x^*Cy<7kSI z=Zs?xyv(QeFr&aald{n^%VJ`QEV^<5%XYpz2`?uvt$J_vkXT;XVnSn5be`(Am{8=X zzcE}*WLk8+kkqvF7*Z59Lb{E+U+C^FToKn5JK<~}=;Tr#Q}&P30NgSv$c6ngYQTl5 z3;b7X3T*YkIP%s=UpN%Uv7(}Pqun53N48f*_n?fhzUJF5tOPH=!a?^VScN_x<8VI> z!E=MPse*;kvVW??y*)4mWOv}mBK;sfsU39;s-&X*L$_*tBtuEkG}EGY@|j{};tAtL zO|$OPsH1y&Evsnvt09I)KQ}x!#xnD+h1H&p*D3Lx6t2VZ+3KC*-M^+`5R4xhJJ5A| zIibTArs@5iG&TqtaE5%2)rL0~!0XXYDI3H;4^xKGoZblIC}M$n}9s2pMqr&8cF29^>m8V|KKD9+IB!>5c+!8C&j=d zfk=GT&md}DDVBAyM&fQp5WJ+d3dTkd&nMDiyfG5hsw)N0tX?jTcuNx=LT_`91t3hLl$Z&@Zru0P zHVzVw!2$_=23+qdq8DtYCV7}gQ3hVk%*8P?^!8#YT53GdbaY?`qsUQ*2PO*Qga#KT zr*2oL<&S&b?)yxf8;0Zbj;koZ8l!3>0?%g5-cbfq$X~!9_U|X=izE9|PDh07D6f?k za6J5el?@Ir9%y*gcw;W=+fRy7)@pOAA)A6zK8xl)+9jF(=0l0QE6*hQpnHu>8X8+* zgOq}udDE8hOF{MtU`oVjh&ddSlQMN2lpHAkU|bR*D<911P8dVky9H_!TyL@9QgEZ2 zv&p->_uU$aPtF@`TZXercl$IqD520tj6Rit?+371vif;81)oANMj^#7A(U8AF=efj3%CFNwt% zW<4ci-UXJs8Nn0Rta5*knZk+{elx_U^UmHa`Wg^iF4iQcm>#i|*FK+Mn3D^RQsi_-smIzy zrUt;yRBFYPs}&HKM_lc4Sdq(E)z)%5UbXAB97cZ?M^b4jDe?!@1HJ zoiFcItDuDKw9R?1ctgI**wcW>R>_Wy7dpwBg(jOKE$3HDl8^Hc$diZ3n{Er#W)`cD zjNY>Khv*?IMoL?R5Mbpwp8t~t0A+M`$zZ?_4`{_11U|FNHwZr;EWoO@GDzsKO@xsB zQO^W22$Myn%^R(HTL&eGTdd76#9xdohfQrSf2>ne28}3J(9jSs+2y~5sR(Gw?t>T2 zXrUOgFEdrs3uSXRey+x+f5D@%Oi}Bz-^R1Ynws&1WxNuy1v&`_ui;D!P0Tk(N=@4$ zu7}ydyl3iAu1QoR826dCK~>c_J_*Mq&Btis1@t6QlF_dIBYY=QZ>dBBk!oD?L45(hJDe^`1M3=}u{qRC2+`wWLX`^E`s{NxK_;S0eyb!rel% zY6mzx-NtXO2QYaKAk}Q0bm%r0#bl8AL@(T(43d2|L1-)J7FO>znrg!LjxO_$y$tr{ z4eLyswlT{!Zr17+WdsHrl`Zn7k}KS4?5xL9+gg#TpHI}QF-$x?KpXP}h1YP(D}P{i z=|5ZME5;eq;XW8OSTXaFUK^i7j~+$(Biiw?cJtNUowgJIQj)R|mr|ZG7td0bGGEtz zW5~{hklSj|HiO~*VTa;H(*?RVMoB+%tRh>6Gyv5hFEaoWV^C~eIvhI#ygk^w1E!Gg z#0M{5;^Rhb`PK--FLa;Tw|2SFr0C_d)zBM`2wE9i?hMS0(5B2<5(e6h9K-f07vhw?#aXRKn< z4$qQ8k8UC&hHmUx@#G9P;Wt~{RiNiUh>H4ij`UdemG&vPBI$u~TX{{1$@%zQfq#2s z$K4&mO|WNSsQFTefe46U`NTR54-3!0Q3n+xTp+AdBq+0)l#19YnP*LRIXIhMaE_}Z zP;{3Pk$SnfR*pw00Qj7ja8vIPE5h|QgsFXsA}W@-zV=xiA>z}Fg|}1e8k0y3ss5m{ zKs~3l$)azXcd4L7<})!Nj+6jXKu;EN(w968%rAA9g`(dNkqHhJ2xZK ze)c*T(%&^v-YF&#xy+tETp`I5e&*xznvW+oXktZXx-{mVEL@*j$k=a9{#10vE|^K# zS6lpGECY1Wg^zU&q(2Qc9$;BV?r!+0k}$N$oSL*oe4ip6Azco21-p)PS9A$-QJ+g< z|EH{Wt87o9;FWb^jFEn|oWQZ9tOd=A6n$5x0dM1!)_Ox8D-y?48YK|7<&0cJQ-d4j z!pME01;D9-zTOSg(Ne*{jkhOi^)ZgiTRnj|IgCoVGlW$CwqNR{kBG)XUht6Qfy>;u zvxUZ`MQ&s~R>dZ9M2~dtIOL*HBDWxIncKh9Dnxwf(LgW53$bQ1kIp3I8_|} zE5*``UvNW092LEe4rdZkmE1Va`*hVQ3~I- zHL}36Z8iH7S^MqTWQA&%`U=L)I^OpFQYdxY0}ur84kF3{gK4>r`tvNe2Vl00vEWk= ziLI$Vft9GYn1xGk_-GXp%S+B{h&#j@mJ z&dN~p?46F`hH^q@W|}Dn!rep%c4OPNZL>u6k2Cq`*?W1mS49;vM%G0zl~*(SS(J8n z@+Fc)s9T71Z`6%pM=t?SGgUAhnY%}2w6~z<4ba#2lwa&`f7;(hN~=Y^nzATJFQIBh zrIK+Bwt4Ht~gz{Zdi$>V*xZTnT1BQ0DSRY*1 zh|Y2U{0peFPnTzNN5$mHP5FKTz70FaB-$+K`O=Ib>6M9_GkchSwr#`+2PRaY z;IB4qLe6H^d9HEH1O2{OvxUlzs^`fYcn5$dmMpD2AEetiFJYx!k>FOvr|`c{+SXi_9J`%ZwWUN@E2n&AZH6?!MY0JTW>cZr{hKoSk}N80XZ|1-5DG9*_bNyW=k%d zGaH+U)opWvd=xY&yEV7t?EzJ7iA!uvR4(OAgS?To8iOe1)B(1W8`~RT_qJh+Or@AS zh`0^nY%)%U;NLX29OP^bCO#=ln5I4LjS3GkdTjfQB1)kHSXN9j=0QW()nDtq#opUu z+x0v8XqUbIij>c3UH3rg<(Y93`lTwS)~{x`$;7(L;(mG{$c@qIW%ZN8L-a`DRst){ z?h-v;P0@)_EFV;(_2yYpfOV4>nSz!r+D-TM-df<>mzH-8=aE>a^T%ikyjelYdFU?6 zZ$SY(Rrxe3QEt;`X-S5;)+)LPCk!s%um_m~4Uh4|Kfq|=wiKQO3xw^%uLk)1lN6q# z5LHgS1~7oT`WstJJi5nKJ_7V9WP5dk|{$tSW50cw?PFga0=TH2-!jXcJd%mpOlpCd@G=m}3GMW-JaCjF?j4ntr%#vG z2tHNf;W~vnAtsK;y5ER(jYn)oG4*%~#4TX(#3+r!X)#Bh2e+?xhP|% zuj==gdf3oS5-D1bKu}t*9RMGDcWtbudb2Jq0Wu>yt#e94lhiL_IoyTEOuOz;q&3|9 z-{hfexT&yAU>2twL#IL`EZ>7`)n~Vs ztUhxlM!b0N+e8wsRiG74$3>uTv2uPyO5|KBtxsdYn*)nN?Ts(CH`UA^nB~K991FXn z%19ZG=fm3qQ>%%_;9Xd(vb}MUo)?ayJBp*TLaGKOo4}cT#t5lxq#y*SbW6ub`0+uBR+C}i$a4l=1={t&U~FrSJtiM}N+CS` zoo%o}I06m14*ITo#PF?5B^XiR?IyCgoX-Q|mY=CA_nTT1tP2))#c?>jH?KF)N)67g zjl94QMR_`}-p6euiCB}}-K?pjV+TQ9oveG3GWGsZs#$;gyhxlVp?8w*qNz2Lv5UJ) zw*B*D8)6E=u@VyyMXo&EUS)1O)_ZcQt0lC*^v=Ts73NC!$EL z1M6mcUa~SdclCzn6}Ol&dveXWc^Yg_>*;?2P&8i1v|ftOa^#gi>)$?d3?4uJLlS*& zd0HnC^C$dW2Vp=UHag{hhHrx>@&b{{Zb5GI*W*kr-=H7|= zQ~fEe*Edg*;dY3MtxrqXj&=1Ho)a)a??(KV!#@L2V_5jGyX9|aF|Z#mY*bAM#;b&@ z*=v{#xYJ$}J6QT$o?)(0{anB_5pxK3J}xYJ>3ShRxyo$SF%WSqmStelu0qP zawm+JL^F%1#ypj*zK0l}WkodEyQnRS* zHk=c!&+Fnd~%>mlP^S3poL#fHgc#TaKk5w1~$3J689c47- z7@!OXR=&SOu3F8zHIeKLPP-abP~X7Qjz%zQ6Vio+E}SsaR-G}n8D!#yC=wZQ*r6Tb zOjk_9xKFe5S-JCOaHfF>^R?owMI9jEE|jf^5Nw{Yh-V<-xAO&Ike%$1`NV_7hPzEV z1&X(tPlxLN{$|_v`}6w#`0Mrj-_NS;`!oF>zh%CNXj$m5q%E&f3wyjW-K3sX|mk z^0%&?q@c*C&Kh;Iv4(5D&_ni!6|d6!Rr=#jn$O!;#2AssC1!n3WTzEnOic%|^&b$@ zC31xrK+WF*SVUQAP3X|=L2t>=Ahym2fOlH%jw+1WvQ!!GXu{}HK%Ve>X2@1bA3FqS zh_BNJkcXe3j)E<;%}FS)!j9T%B0`y}zz#)!7fVjoGK)SFAf04Y7Gq|SX&G2aSf6s5 zKpJ)vO?Z}Z?t85<;?XTcvFt&gZJJ`rI*~y`q`8iThK&mRW1KE-eBmG;4Q!4fEKnMT zYjS7(-ewrHqbV0EMqfbqG^O;^D{YC17`}T?}9jA1DFW43rIif6FekWXt1Zh z*{)Sfgf1asOIVSF-f@zJO~oS9ku#ubY2@)-E#Zg1hBwwEbXCSBm|^_0HOTd%-tI37 zUgT3yiR0kbS86`OY&dBYS)lAi~nZbT%NQrkt7_R8Lkl{ys`GNoiJYt2$wSvdEI7KR#A zfVs76pG4t~t+u^Y{$NXexhrpCL7JN|57p)+@GBts=Mjq|yLc-&6txS~)o?HJkKgcQ zrq*;5hjYqo`V gyGo;9dn#<<1}eBMHj`UHMC^CnPfIztYK;EYLDXByRJRsE1_Gs zXVcw_O|0AMtHUe<@Q_=FR!2;f1c@l|4izgnn!0dV3D_5*t3uIYwPi&+Xi=mGkyIH8 zk?TX&)6yiufOuJ*8dqQRj`cg7YJpao+H=r>bPx+-kzTbc3tsfCKetDH8pZ--wm8f9 zZSwd|TZOe3d?p!TaUrp`zLk6%eB+r;390$E8|Dxc&B*k8h_MkOJ2@p{?4$1Vy+r?uSv_bUvQ!p8Tp5`0ZXqKJ259SfWyW3#@qUHOp&U}YcyUs(I1 zQ}BcPXSVpheHqt#`)~v3 z<@M_p`O7-@Nc8z#%OI2I`Mkky{|{sD6eJAPBn!4}+qU_&ZQHhO+qP}nwr$&X_x`hp zjk&QKbI;p(t&FJ3%&LkSLd7z8#{W1y$LDSb@XN_c&GnVj+-Itb_3f`+2<&GQfjPlO zq3xw=7~_6s`EJ#FCdaRxs`_QeM-3X-zgS;q_K9FJo7Nmv?b@c%jKvT`w2mcLhtGy3 zmufX*XMUQsMzPq>Hd5NAsA#%)*oz6qiTBme+#)ER;Auz^G)>4MQnbJqb4dC|eqWpD zFaAn+?M+>DwvnMAf~_BoV!mq3Mm^g4CfhTe`iGmgvLg0=RbKp7}=C;KP z6e+fb50e-t4nC68^8nLxErV#MF(0I$bdCWJMR6QHbR+4shyu<9W?QmtER#ZiUMhd` zge#Wu9v}eV<*)RfUf^K<_$X=JFClGXXu1Qy+^CtxpFA|Ne<$IX{B2(NUY;F7mLm{v zp-kN5c6Bs6tFm@5BX{Z>K&(%CI0Nv(doe*xyFX)VK==qOPneN%b@Dux5r=qsH)g!v zk=dCIgw3E1KN#(JV=0k$L9)i@B%fyPo`Ix z2hy1xgDi#an@l&eS_$id0MaDn^7VK1csY*Cha!W#hC9T%ubX*h^{7ntMUB;AuX7#( z_U!h9Sc9-9Ti%bNuG3fsXE0u;qGTLEvH#vPp1?9RgSQ}WpOhX$g-5lf(K(~`7Hv?! zGMcjtT@$$6?VL?mNlg106m!V7ljz9$OgLs zO(XqYBDwzEzL#stQsdpkxeNejkGKuQvA5rgQ(D)Ty&+s^hSuY5hlb#eddX8MyW2>YL12!if5+vIg&^b+sU5$Rbg@M zDbWQN#+Mjk7k)#Y)He-*Erv(XUZf>&+^ePU|z5x+{=&A zAgHLKDZ9fVG`LxzC`?cdA^KouUR+ovo@vU1hGE7$VDtb-S8`)GvUehzh)ZdEO;Tx~ z9`C7LSa0CqT53$>X#ooNE;0*9#0zPR!E=v+uqQ4jy@&PcEP(4F>;N@D%D?aZlDk*Z z8_F#rZei)u$Q6n`Ei%o3W2V60M!a_+IbEMFEviXq%mj{=qt0>N#~K+GL&G4%p6tA3 zAvZ}&!l~9p<}qnbKQS*lQ7(6&ubll|8B|m9rlsFhJKaq6#_+AffMGfVFxa-qD!MG& zBKq2nGlMGuV@^-aX<62x?fV#U6Ao-=l`sg~OTCKb(1Bn!}(dBHbefzbY5sYAzky@}lwD-iWAe z?cYeQuFF=mESBef;d`;n0?vH7*neGX=*~M~@m%nvLXkLkiAK8j%){vZRkK zMVDOx0_PNxVu_(!7+z|KKvgI4k1a8ZoE|bvD|n_m^&pXxI3T+!sZWFvhH)MhN#dKj ze6D!Xz(`9P56JN$5damL??f@^Akh`x1$3%gc(}NO6;MiUE*tBau#y;n45(8egSFn1JGRY$YaOG(dZw2+8#qiAJTSuY+o0Yh^Bz}k7| z43`zYoo@BBU}CPBw$9`yk0GY9#}m6$CnDq>bzoR|Ik1Ca9^o?xaQ6*BK{n6iKm{~N znlIqL221nhDG)2Yc$Lz0^4J=~^A3{Ns56tx#y_JQT;Dok(i*BzjsSS(YLcm%*<2yr#5|V4R>dibIm&K;spoNF`*k~5hf)6s<4^U2 zuqWo`fH313Da7UYeuzd%C{CY9{R|n>B~%>HKn;x1%CZHTYEmvXj)@> zzz7|69SMwd)zkq(g>M6oE|^WjTomXEqo{`wRZS$eHCOvPb)_`CFObF{CR|>FQ%o;_ z%TP-|vVwdL4?by;@TZLtJEdZ4Up3>XeQcq#q#FtnHVBtFGy*cQb1 z%O5!G)ZRWHm^R%jBK#UnXZbxXcn^vX7{CmadhAzMgy!SZK2t}uE?)!Ma!c%TbkDL> z@@_oyiqiCgUf0np5UxCjxOZe__7WS_sO z@>t(1c2nwJ0z_R+Fi+WFQab@x&l&8Y%r_k|qA69l(oX}p*N>!>{>W1QV;vQ426X_Z zotxjtJ8kdXWtD0V|1A2(o$iFKLrQlM$|F1P5gVVtfIzEdwu+{)V__ZZH74z3L;UeI z`|BE+*H0IF?Q`9j zogGhZ!fJEDiUWlbTU?1gEbwCi^IW{QhBM5M3fXEI9^Lgp zX6LzNxVmIVF7V!QZhN(F({yCUgr*Ik9-+oqLQlu|3oJv|?2mXY@FvPXcGRuV++kJ0{s z@JF?OJ!6=e{AW0~qJWmT0lKwv`%Gp%tYV|WA;|1AZN|^E>GxmPWKYSfcMc z66tTE&>^Nb^sa}^U|XEnuTLWInF$caQ1K2HN?w77$yF-S(c2loi+j+h1AjWgNy9Wi7<3fxJWgB`{S zuNt%6)D=oDo&lD4bu4PW=E1syO^=-0`4)rMBNa5QXl&VvgizHqPk)zZv{?cUg%@8^ zS0|JIsbwwr5TL$S&#!r2LZMhZ?%YH?ZR~(_TyqC7;Ozw%iG6}Yr%zq^;POWrk2@q6 zfIB&vsxJQGbJgEf*d8xNaDhWT;feUahzQlLTg=MqaXmBb3*|!p9(j|T_Y*G7*6+xe zK%N+<0jmxkt$>ummZ2KF0m|0NgRXPV*FVApjofU}5|GuT$?N>tl%X2wA!;($*?bl| z5B-r4Y z0NJue&HEZ}-n+ezYF`NKh*zVRc1;v*@y9+as^xh(zWJ1Vg~AO1>-Vwc$SQ)(jJJg;F;|2%V+KP|JGxH zP{OG-BnZU(13@yfkiuUP0~`mFJ-HYQ2?b3&S83Is^kV?wJw2ntar0%S^F05SWIBSO z;i4m2Ghs!{rh1{0fE~>SpS$$SEX9nD-f2Yj0${C!7r?D1%6oJl791EcDf<;m_At@m2UTY2^qt&IV7u%)h+^y{7Mk`mC~GC_=ya`i;ANV zrM)r`M@y+vImX?->7nL$qqWqSeTi*%acE+1+h82 z)fT-N>_NiKVM#c(vqRq36jEt0p5TS$w!ysg%e#Mi05`6Hq^&6hR&;&WJ6m9(42ZV0 zvR!d+R_vIB=C*0UTn~IISueRVHi`zXk*Nu?#lPelgnpO-F|r#aNkC<6=Gsg>V;5-;LvpaiW3~bJ@!aqTBecp!1TNi-x1B=b zYbk-7I5$X#-9f$vfd2H zedA(FcZ4k0veTwsBSH;yi)U3}pbCv(Uhb1pxm#g<O5*=B4T2v&0@cjm$j9_XlId2#(IbERnViZrM zx{0fku|}sEW1wGzIqt)pkw$96blWz40b)#S;M#tSC0Xy;a|6s|tVEeEy~TJoc=hef zNBsr)xEXcRa@$q0I>l^kJCLtn);JkSw-?*l$+O`7n?7G#t*sv&KHu@H5wO{VvzRy5 zm{-a1GDpnydB(wnQzqMR=N#-45G=#s0jz~=i}iAlpyo3qugKo@ZYaE>YfY=6?jy+? zgw5NYGSK%6$v7CqH&}D%Qnwbz4@kky^)OtGYl)-TL0Fodj(2)OK=Z$KA==Tz$im*liO$|*hTF>N zh%IsNhuU6NCqmIYhGfo|z1F?*G$V7fW=55)&CQE04C5!Oodo^X%*_ueGbwLWOWurU&&V2PtOqMHbUQdH1pt=_NDNr7E+vR*E>1 zYtK&QKNO0Ghucdj)v%||ycMygTWzHepk}#Bluazya@O{=ZR%p<%(H4(^7JjPk&^Dw zvn!}ZwFJqFSgmvUM&bOXwgMle&|o;n+y4Wqb!So#P;{vRK>V=Q#!Zc0m*Du~c6}GH z)uqY9z|H%>A$_-H>k&KZVq@du<0FHt6@ov1ab+|ck;g+Pbu!U{9OW|4Ys3y%;#J3y zY+uip+$H64&9iF}wPB_`!DnT&Zme7R+hu9_Yv*ztelwY?jUKB-X>pdl#=6yU48Eq3 zx%YghvAQaTiNWT2yxgra!Dfe{Fs2%6IBo9$`MXb{g2Ay17zf}4tMwnZ7M+O(UD~1M zHo`q3FVH|E&Vy|c4h5i2I3E7x;{YGJ3$!8CtH+h-YA54Oqs^=DY-h4f71f(~bJZvh zky6@ad{qv(0%BRTpY>f~-BkFPtvh*CWv%ja`!(;?sY2FyhlPuo&rdm4(LW$=6d{#% zv3;?X%a;WnW-lY*)Hp1LAeEA736s3sO)uc=_1mohcAefv(|puVMERP+3cz}7ixW%u zY1IRbw1cl6{JsCAF3$?Q_)7vz?(euBi<|qKjSY>0RpUpAltfVR`lScd8UXH3jg~L4 zZa_&L=}Ji1jm&k(eQ&~;_D%5Bcw^(+?tk_JBc4 z6(#P0b!3CvD_@NOc~FiH<%B|7gig&O>kUA4TA0-La%_xDbsiBEfyRw-N*5s08~-n8YkqAO!`p- ze^v^UH50vpA3N#_zy>8 z3kunRF%ajBc|S1q%wFsWh%aBfJr%3&_&zE?h05&=)z|Hd8b^qbxU&~H4V zu@7L5pO18OzSi28dpAL4eJ90SrVSt%6E6pVmY_X747!2ySDoDz|12bfAdh_JqZzWd8~nHd?h zu|1+1|65g?PUop)$?>Tc5_2lp>6ecUoR#54P}uZ;s%1mTjF_x5DHRi=>B9YIqC_@G-R?D<6aH^9!a?upH z-o(<91NM|MlsR8b|Wa^)<7|U{o%#n6Id^*Rx;e-){q8K-hs4soO zznd*}e|T2)q~#1mH=l@MRC9lHyk);FQY^!0r^iKtET!8OX3aw(maP^%% zK9oG5Y;eZ)(Hz&ZCW?IF0rCRYRPX^~-X$Q{nyw+@$C<@bbyK?--Mx1{8Wl)3d1x|~%GRI#%QNA-Jh zQy*#QA$}Vj=>PH{8`L)qr~s`2&{G5E!5B&=_<)&mJHc}rVWKwvMY$%fL0Y%LMvjmn zy6qK4w@c=Zf%Nnh5mFHOm@Z1#XvB1SM)y_^p*V|4>eWmha?QIS)dk55s(W8Q!US$_ zv*Q@Jo0!$2?-qGQcUnnJNTta+;$T8;53aK(lKa_-zC#qi06{rlrBoo+4Q!t35^I&P z|CbK+wReLsv)h!b7)_p7<{4f|F6j`Id_X5O9H2ORR_6QN#iANpKDkDU98_00t2IAT zWykk-v7`sQ11)L)CvFL!NACp(We6sELt^dBHis%%mA+~rGX1m35>@F2E2UQ9b;^Hj zJnbGVIIn5H8=r_36mrYovm{?oi`@eVn4)lLo#fkxPkwic(Je8L>fa|bkH4?y4E2uw ze0{Rscu^+#onkqA=*X3~5J02m52zVRRti|#xSYNX(6|~FoY}n9?RP9OF2vZPR*8n^<^-i7Tq>Bx-kG?-zxCCtA)_^!C29s%H+M zHh`q-X6dwf4kcZBSq$WFIV|aB#W+GQk!%D+5LGA-Zog7-A-IWxxO@$G9f6^1U z&Qiwm#D`fPhK6ITJOIQg>}~2}Lhm93Nv7H}gU5cKvbadI&AC zAo1q5OnL^>TCJQsFubDouIUinsdz)Yi)TRTPQexKDl}1Ou5O7h_P{yN2>a-L6=iv+ zZT|+H*-KyU$Y6pD11ydH(z|1jFyZbe513h!2tVmSUc`kWFyx6mjaA=HDIA9z21v;@hQoPNY$T1APIrCz#EU`#J^1xAc-e&IoVWQU6j@ znH7VSck@Cut4s5O+D`PZc$?$>pT%1F$Q~Y{+mOm0mF{IZ z3pmbkf(TDFEz7Wb264_E{Y^lcp2QyZ{SII8{_BckC~!P593oJ`tW!;A%+bkSmNLp; zK0{rY3CIECj0Kb}+HD%cjPsx#fRUez=pOnC5l+nOf2m-nfE7dYfX3c$sC>aY(q=4#Lc`3ChMVsd z|InGtm@KsYLd8kEIh1Q#=0y7suJ@upOL1YdaI?#IRv0&EwDL))2D(83wZjrS5oMpU zf_H5WFXoe6b7Na)g=fYm{R3q0!|C+>*6>f`j^5`6lh*UXW+y(x<>(qOXO3VsYa$%Z z=+YtkMM#W=qc;|>vJ@@_`_MH74lCIw#;use{>oCk2KKY6(7TUxL<2@E-(;kF2(D6OcEFjh zs4P1KIBIylG3G5S+oy;MiwPBP;CNH@yhk%Z3|UzC6ulIj(qgpnzfe}(n5$1{ktG3; zc5|FKTG9}wSBpzYhj(c%fZNwrW+d8tI{c2I_4LyIS*d=M-NUjQ^a4fnG>UtsfE+;_ ztYCzrTs1P+MGSa5aO5g@+m|H`V4C(a9l&1F3l_U@3c1@c@;c6%b32o#NWEBYR8+~_ zO>|D??gpcSHMiS${k4jhYWUUyDeu^%z7PsWr4`suz55}})CI_`D$nOOuSr;VcPVR` zgNCiT0q;e`Jb$01hhbnH&h)&JLMPk+vW5Z_u7RZ@Oj@OUY&vDc^iq{K>A+ zj_b`93aW6fDnU>@Ut`gyl&W(J{Q)j()XN5q-2%mK|u8&7S77y5Vm zkEUKRJD~^;C4>9aK1I@&2!l3g^~4K8V2Auf&|H(nxikJAv`9N#5skI3-vC_2oDu)N z7*0)Dw--9pyh=gbaoa;=H^z0x6-G-2npq!WyG2$SEvsP(1x)`bn5TgXb)mK#XzS%% zVue;<#HOy1N1NINsF5GAS1?ZkyvV!LbQq8!8So#nQG0Nul^hForClT0qgp?5*QW{o z)k}92)3BZn-_ROn_tdQ<6N)o*9uF}bjB~S0KbKk)d2J?l+_x?7H);Zo(70Bt#70YI zERathfJ<`TosfoAb&hK_ds$6}PMyw);5+8^*}5}<<2&q+^Q+`W7j(e_!;8f+*@QB` zu#GJn619(U)~a5RW6{5tw?8}{rW%XOyTv8DFr2(;M`->Bf%1%N4+5s+f-TV zo2Z>bN2g%}p{4wn#TgJ@d5D1ak!avRB+sW9UtQAinW}`j5&J6dxt=HZ_ zeRWWXKGk4#xn1?eSL__v@9`f$#`yK&*dmz*7e)n@TWJG=t)vcUG}-boRjCfio7t5> ze^^1P`?fqAViO+V6?(+3R5Br@1$B`<=^SQh95Z=D453Rx>;yj6QjWOaFk>&M zf(WnqS3Ky+Mv0!5+h(@M&0IX&k~;1- z>)mR*1rN}}+<2nzjOdvT-6H+D_stKzwvzl{a#PSm^6!?VZqJ zJ?b~-Ff}RPRd_T;9jk}fneNzsaMOSL5xx(Z7(Ern5iW&b z&=d+{h;rwy;Ii(WH$&IGh7dl!Pe3%`ThP3bE?#{62PNa5Qkg9H`kzV|V$yxbwS8&d z)FC5o-#;lQ-+Gs-IwBGkQa~SA0nnNJFbr_r{x+?Qw`c+4M%<%O^)*z@!?MnQNjRMt zjQs~mfz9NxF1v+3PA)D66VA4?y#`-k%+>e@pno_gVBD!cb*tX+iG7}?7TmMzy2BZ) zvku#aBKA2xctB6>x-8qb)8QqqjP~DtfdAcr)aY95Hw6R$NC5%>p#1-KAngr|tPIR7 zY|ZHP^b8E`T%7gv=d(_q22Hu1nrV7Oc{iQ6L*!#Q2+ zPXvE|tjl(?g`)G$Q*uS^4BVu*#`W9Zwaa!_W8-fc_qO)mZ-Zzfg=#7KFh}Uv!`8 zA_nJVLhL0N>jF63#_@mx z@&74HP41b}S(7H1Rr|o4>R2m?vM)lQrq_?_PEVaP%ku=L?jBy8ee7p02kDr|6Nfo; z`q>ofgtv4O7Xgb3SfpcRVr;PGuD1! zln_3RRE{#*{NcOUxzGsIx25t;-qAWk5$N2>0?FjBIkzn;BaTs-i_#_iKF zN2CmZ*Z;han?RMHbIuX$;$Gf${x)Y61Q$~ zlTHe;Cn72JmPv82*BxF3?CNh7lq3ilLLysrI-@ZB{Jnt!etNd*61(>oclVsh)- zsw^`~XeNax7OM?C5`2;q^gX7lJXA@fOP}G(Qlf>DJ$cg#P%K8!K;^E|(Hk`zsDSCK zrKmZ_Ruma@gQYYMu3ZS#+0@=5xkwK(+R+Vk9yDnBb5k^k)W@Y1Jl|(;LDWTn$iuY*dB$Tcuy=ak@k&=6bky_w;y9TrnG8dkrR#vO6o zycMB%%0su@t534nwM#_|En6IGQLliS2eFIQ&Bg{r!Q1KPb{o;JAOBul?EdaP>6lLv~&fTDP64&;Mv}=wE1#*`ZYWGzBI~}-u5WG!R%z|zij~0xn)gN?VKTdZu9ba zzJaZIC7pie&A|b+ECmp9k|yq-pKN3mRrOH@$jOmkGP~n_dq3LhAxgipBWLI8;q}1l z;`e+>BrTZ18%NS1IiZ0trKljZmxQ0?Dqay9UVFAy3VSe{YVp-a(V*tYm@DL*{_A!* zlW-9is4h3wbP;~8h)nSjsyRgsBWaG2qr1Jt*&n(aQv4+gKXdPHtwu1xHDX3xTw9+s z>b=|ZPtw?vIIiHaMmyw1@kp}s7SL^_(;P6N1T)yTb5+gqB1HJDNO1?2UMrqkrBhK;9bsQw!AUy6C?a_WJNQ&P;8jXxzMuaVHD> zXS&0&{`D*tWr=gnm`Jr)kS~MamdHl<9TxSefI?bwJ+r7;tTAEs$QVrU1=Y$KSFP{0 zxo~lePxG+-@!Qg*;X$ukU$C1VUVwHMwl*7|qFg=Oo4c}sRi%eo)#t}k)mPUrDFGPc zpXJjrR!0dEsY5(1-_}oDxa3XGr0mNJ6xaQp*F%!9>7lRPe;x-Zb|!#tM)%fh)Y!kI-8)S0jnU>NMYy%K|s z;CXWvpPg$&J>@}GRVwv_$OX{<2ad&an$mPO9kI26S*Z=PxRKrd>=UGPzavczN)Zrx z$ZTe9thgBujCm!7zrWmV2Xf(DAXPwGoq1oRG24n~dLF1*J`sIk_1~<2U4XQIh!Ptz z6mVEdIG4WE`7F+y=yGUWKo_vTrfUCK0ltaBg%AMWbfQg1GC#N1R+P;w;oWU)p4ihu zCsY`kGRZh94;6qFHW(&rwxcmr5jxeM{#uRZ9CMGEPU{8zpX<>l+0DjO*74i?CmZBO z6eakEU+YWUX4f9KX+FK=heS1aL@F) zE87XaNC3c8;$!7I_9Qx&K^^A#3M9`$vF4zl_V0HV*VX3cRIXLk!~{IevY7QWbz0K> zv+b(aNdevyXC=Rxr}{TiwC5J#BG)@_MdY9+POV`_G^T*V=|NIC^z&>JmB!#dZt8T( zjq@r{DbPi=l!h&qE}^`bZ&3+owwiv38y_**oJxy7m)|NA97@YY(`e;!Lk-pBH+LNN zDoK3rc}3uD`D`8lSTVtFcM916T;Cfi0AT`38 z&ub=F(DZ=_5A_vGpoU{kNu=N!C-*dYEfK{TclQP$Y?an!2w_?S{0hG}F+lHEpZm-2 z>l26j)9b^>odT@Y^Hf;Ba+9l=DDQXVFf&9e_R|TP!!U$6%PLH?ZmzVZqr8`fZQEHR zsAQ&5LdMm!Vi2DV6f>s(kV~L;ayXbZnX`8;ij{VwODASmcdc=dvXTiU8YJONyaD4; zb}(xVoyEQCXIQ^I!`I@s;Kz}=mSA1ZtN|9Mcc|^^z^sP&{r@lmXW!eVrpvi{37D{m ziSveT)Q3s?prL`}CZaA>go^%+DMbw>nSgr8=~ndxSr^DZVT$+`d9o#l5R7h9P>sdq zWmAMyV}%%719@$923H;>R#vs5=9~F%?x?1X*MHe^MH9wuY%j32>L>L76MbWEjN6&SUv}E}fI| z0u*$;Gkm&G;K(B_#|18J+d%oBA^)ugxMuCrKdGzM#tg-xm?2=oxGD#@s;a?~SvhQu zGNzXlGGclSaVE!q6Q?y`adzehIu!saCvd*{_@(oP#m{CR9n352evFI@>_nOIPwAm^ zjlR&zrq-n+)|XyUzf1FQG=Ove7-5C6apMqoYIpLLY7<5(pZv@0Nu`NI#prvt_vID+ zlqMG3r~0V?4^!D(6>@>e;x+-%k zu|qyFUEu?fvP3~jv5n5BGCC$o7Qbid0<%&$-}<>|g+s8#cmdy#JS-Qph7&8B97I^$ zNl0w|Xz-~XeuW`dOl&_p790<$pi?Lr#-vj5im4c_Y-TJVrmzJ&!;Ch=$hapWt8bQ&9d4tXcjlwgE!`tS;@5OVffNA3RS_w|^perb3M5qN0zuz|cK!d3Yh2Gc2T& z!1w`nBkNzNqE5uIc%gITXAE~jMr64^0V8#hd@RsiDV(VG>&cI`2Q~g6)jYQBSvR82 zCqGkw51|R5TqJ<2+>T?M z)t)X03Q@mlu=UlJr>3DGQ;d&$)eQzCq@ zBkvP_TLASef8k-)T<#!nMCX|!W|CyRm@RUKW7Ac-&f+tIE>FzCqm7#deB4bDB6A6M zQ#iZiRVP5u!Ly)csGm2srYY1ZY8WttVn}%FBpNDkT68UvsY(C>z<4YS3f_ApE;0_B zKqDlHDUS3xKF&P;@2_@AYcMax0+)i4k$0_J8KyI;hBhaXwZay)Ig23Xo=Q8?96LcM zV6mCO=ERIHaHXs*v3uO#7CU#wX+*52wE0G@m9T+%V>3hg?fYUG^XpoYpKq#W=f`Z$ zdY^xZhh#YT*a3R%=i%n9QtSP|v+?Eol>W%?;}Q+Gy5q#%haTsRhwlRRdV0ztuh%&V zrsZwIr?yO^6}r;YLJSn`AA?P&xZcezCmVe0c%{&*%tgK3=b<~=N*7m+G0|^<$wh8V zn1#93<-uRC+t9%FupWv=PFHN=5N2G@fDIB%+rhY>jo!(Zg912Vn8(4v&H2*n?VMLr z4k|D5R?Otra9&nT`=`0;+FwaHcGc-`vgOTIQk%73=T!wgc#;G++9en^-3mHtF`m^K zc1;}4=FElutwOCNtthjAruBH|GjCzZSFg$U2PKl^gd%_{GSg(jAE?VML=J$vbBQRS zDtH^@zc=v#x*6Y-IMBtrC`}eadJjlt`F33P{QXxixv*GPNjBzs+mt>F8KZ`)37M*! ztBV-6z?a@R`|B3-pfq<)N2aJMi#4EPze+TNZVVVa*MF^h+~eq|3_sCep-eW4!hSal z1Zmt1}qsRf?leXPG8W^#RARX3U)R>DL%!a%DVZ+(KkYgh@ZV zNj^hHom&sQy<5si&w@V82X6sbpndvlXjNIY zI%Typ(QdTkv21k zFdI6OtBo}R=ETufD?iA{teX<&=vE_^`2dx9F@+L5_Su1=-?c4Sb@;Z70I)Hvo;ek| zHTI0v+&Er(Z|!?9=$KodP#j{lH&{I(x_;(%61G`oDP~(@rv&3Ot)tIA+-T8ei*DCs>Oh%sB}>TD<|+&l(blOW(Pb zx`gq23o+c6NSyHAqrh3+x27J9iFWOVItBOXDsI70}kDkp@({kEk zL-Sp$V>XB* zo7t0r(plSoi_JtpL(eO1V8HW5*?pEWZl~!yhQiB&=5lHtt(7iK)d z;=m{bH}$d$)s!iyuz^XL*uSvHv!Y1F4LZ7R$p+}%TwkLqpmDk}EFRh%%`s*`eq>^L zTo?G7NOBR(u8p0L>LF<>Gm)*FJR%NF-nHZtaUE#v{1L}nN=I^j3saQizy)!|gJAUt z9l{Nwb}hWB*-Hls6zcxn&*&*%g=t-5GkyK;P8?%`ZP9jQd!cMpX53 ziebaEd*AZU%Ol%nF8zMk+N!FtY2gQL8o~j;PjWkL#p@2p(>RtR^rMJFmXNFCo$wLG zFfF1q2nAVlt@8{)@V!@cu*M*gqjYLx1L~IvT*@JCZQ|+Ow7t+ zBm6VDoX_`rUCGZ`E}u7N&?CQ>16#>Y>ysg`MpY>OTkD$M51*irrEt$?F@^xZl{H3! zno4^R3&rn@M%H^+x1ZY)_kkv++H)@nIEW-7WJ^T>br~0wJEu@9iC9nRR1gR^nG>w&P4 zi=_Z_cI?5(2&XnN_v%jbIa%ddzt`&^`MOTWv2V<}w^suF&W`TSiDwjh1e7|%-Q20n zt!|oO90Gm_Dk-XZwgLQobsjUF1co(L24|-?GO<7xG39j}75(|!{{UZWMWCWA6dUHF@Q8qjmK9 z`e}m-oKbO;aFu)U#X67NX_k`aSTb3p#{^9ml`a%2S8m8}SXn^Gowdi6O6rr{yt$xk zMN#Nb6UMDkE~rRB@2oy)+l;S)&clw}>O@(FkuuL*t9QJP4G))C-Dv981(&U1a^=!& zH?gTQU(NS1gHXc~+a(z6pm1b-fa#cquP@%eGr{>dq_B?r@+{~b`v81Z)k6VjM`H5d z6LSg~oN`6iy%?P3XA?q)?(>!p>f9Y_-2-7sAu_xdJmnB8k@1Z;#0uUua8VN(o(Qfu z;7saRJZL!VZl%cvqUCbfAQ8sml8JShhGsPLzGa(?AuQAyYJ)bCn&dY_wk({(^*NP? z+Zz#2ht)IFuxMo0Nm=+RKCq)&p{t*X2z(hPJ^N-X>G5kv@*8p~AtRve{NHyjuU<(s z2zj?qNXcs!`^bh5n4wr7`MRR95Qm3@$GH_@=b7)13ulmTCO^Cnmd2#fu!9`J#6y#e zBWoL)PtiGWueGSFDavL^MPZK&s)v!1&2P~*BFvISWY(~DhPh_!x~xR4Kvm0+(P3?~ zEnfUi?m_p$-!%DV8tvSO&=&B`-Y%!d#jY;j=KceX+j=wR;OCtj@Pi%Pp=s<~_%n!8_1UdRI=go+_G}MHzeX#b`mb{K4(1u|z3KftmO}Tp1Oec)=$%o~`7!9MC=9|Yg^59#)uT6n zdSKX1(Q?Nf&TUf&?}F@mB)dkrZ7uxRqcDlll?~s_i(!T~-jE{XPkb0QFG_}Z5$AgP zpUowC%D+@!m*#h=hQH9Y1IWv~((*iUrF5ewi6tl%sikp^1@qpDcbFM|a9=o+!oDp- zQ*_589y!KBmP=L4jyh=V>zt4T^vy8jCV&Fd^5x+KcrqPEqO_W4OwiU$EE!=EW^1eG zEEx82uFdx$^O$mqdtp*#-Z+A3W;mDQI|oU_x{>cO*)C%->df7x{4l#G2WOOp6?2c^ z8CL{Y`Ux=1w#mA}^1c6MVA}!68O8z-06+%}0D$^`th-LmjxI*dE{^}_y!J`boK+A5 z%Glj6D!f;NzR9)vx;`HlMY67@D{KWXE3u6BBhGW5-m>d^5qGdI*b`FB-Iv7UH%E{U zCC#xQQ9EN*2MDF2G8%KaN+?*lFae7gG?yKIE>&))!BWb|ee5VyO(5nrxf`Q>N{h){ z*P4_J5cjaFW0S9jja$`IU}X-orqY-zH-owbwRl$2(a9!%Wn7A|;COs{JR4*nLCUtK zdX+YXK-o{lpb5b3Bm?*;&L9JtM)C&^TAcobb6wUH!HTGWJ7kyuy@sRKYm(ps$;Ptq z43f@9cV3#a>{$NJ#5B_L0kD##0eH)V# zCN_?u$DMq~-Brtfq}f4eecL?)1AFEl zgb(Zu?dxG&I?ruc-@4JD-?QhV(^nLaz_;P+awlH#*~7Zx*%PZn&f4C8M@;<{Siv0% z0DzVd0D$~|Ld?d%(aOZ}ztF1Du(8|XK>EGa8>qx5BCMRh-7$nFrrUSz3DbXSmB7N8 zWdKnvHL@{Lkdlyavbb&AgV__7bljw-!#9k`#+-!-8!{86pLk)bn;@gd2-tIxf>u1n zq_%1$v*|DmWYH4EB6DRu!2V#WGY8`%kE9`EmtN+iC#Ro~o487!cch)z)%&qDM{*oV z$N9(kThGy@c@8SYNycH9Y(39kAGzi+Gy*)nWiPR0BC^lJ%Rf4vQfI zjj_X)I{RC_FhWvtCbQL&1KeaC-Cia`86Fjs+__LlP&YC0Po(Vl`X)<{4CL4M=rA|Z zg+}j}&|RxyED6Whf6qcjc6l5W!YGO!Gf9)fD6QHys#KNOuesacs!FuK)ACqP`rgT5 z5>)A~C0i@m>g}bnpfG|wfsL$!I`t$Ahi!qvPkVQPNKY>#B7J>qf<$J(z(Ug0m@)(` z^D{YeP8!6rWS=;AmW+Pm6WAIb)njIAV7ah+3Y6Zh+IsdpHp4>?VP27e(*&1Mx`r&t zspl&{d}Htgi6(ksT1A?7;1^(ngxXvOS#IJ!6pdC3VnBpNWeOzVJ0}exIWh5?gt8+{ zXTzQYlF`EIS)u2|rXiGLXMbb=*w8`1*Y}65!Eri~nC`tcL`8k5cdEr=sa^;4OIqJQ zksAeoJcP}7MneaW-@YwnyQSMhG%U9+Pa!y&VNVNd`g?f(*QJd`*iC31or5;tBd0Dy z7G5#3NlU0?_C2#gM1V7~)FXr40&BH;eR#5;5^pBF+Y`LGq%;K(h9tsqKw3c-hqL}p zGuk+0Emo;N0hKg1Bqx6SBy{*m=2gc2nPOu}IWw{JKKNI1sqCI#mIqh(E>M;(SQ@VD z)2>yHVa5tfm2E8jWL~dct(|sNiyeUrW1Fy(Hq*Dyc<*o=5u)@jzj;O=zZwRvy8G$! zFMo69`_cXP*BI~%tFjmativJVAM8a=r)i-0te*%}(%I5w!3I#o+=1e&@j28*}h|-6I@vcxaD1`u&&?g5 zS74&-JViu?Y&G6ok_L7j`Bsz4k@S}ZA@NhS3ixP8yu^U5#p`^8KeXn&>_216_K#EY zv8SpLRFJKrN!d{iB}1KxJN!8XrNcY_QcQPC$xwrZGS*v1iy8Gi*KK&ZGmemir=e@P zSADX5BS?W$%-Imo9Uo04#W4^DMdq8uNfcVp7Lf4qAj|nkpbviicAYjT}Y;FiRqPUB#*^cz*l_B*`GJ`N z*H-e;OHe6p4A1)1kS+TH3HbyEGNx2RoBsV<{%gF-JkLt1$P(}?lZOV7>n6evQP zHc^QlRG74rB_u#W=|mC@O!wXi5n8#F%BEDL+91C=Q2$OiCh-G*CJdnMS=SbA=|MqN ztC-3Kf8xdTThfk0?$u*%fXcUM>kC}qXBZG0Ff_(;2R`OT?Ltv%$G({++SERNKU`VE{F1onnW`p?`!QsZMod@6zr8?x4G}56~5| zAud2{Toc#f1qK3vNAkHTdAcRWkB2*^U_hJ)JnUHE0A7wGRZ20~f5xD+ZW3W>;H%Yz zKV^yv{RPr8dj7)=5YWr2odIg;Ce6R; zgbZ!^tqQ-^!$C@Vsx-iM8@6H?=`x2YT~dmhl45*GKA8eb#Yvh1zngtg?WTzi{n`jz z(owG0=$1Bhe!4;>7EQ4aw5OIRM zM*TK>=>WTJ%zcLKC@Jpc`xnxB?5hYOh)}x=0%!aqT#sj`RNrF`8>EKiav#R0Hqq zcHYl{@Z2+IV_Rmq5w6hw4Ig8gy~YmF8d46?{7pn*?zCyws!GCV6e)X6lT~&;O~Grg z3H9A|pm5=))$LXzX{uCfhkbSLYv6TA{C+vI{!a9tQU&;Am*#^&2(v`ubP5`sNq+v~20#-% zm%(2sSQ9#W?i4$ZuS#&ZoK5vLn=He(@Z_TLMR)Wr@yRJU<5n}$1+x&tZL}>!ke}|Y9iheKag*eXwXFgLOsNn*Qz*({( z)T!gJkSCP*yTbQHyH+DXa(~Zj2II6d;+@uT!dn5>k53opff%BP1(}@D57tSd*HFBV zmX7%3A+b{<7%&U}9h+n5iJW!XkMmAm;Kld>GRhCw)q;o8aK1TX5$0|`kp!`K%-rzQFuMSEdF!ofK29VY`NvMpgR zI8=S@e}Kjfdm_B&#@RLrhA#U?i1~2tGkqu3E3~^q&LQmuE8O*ji~9_PBhjD+k<}Yd zlAs!3R$Ys@BKxYg*ogx9=JxDqSFbMv1v34^xlPDvUcqYH67fwE0DuE1LJxXK-#35M z`|srSJWKuSt|HWWa)V3VA*bscq)bgK$CK?7M zxGtncD~=eLk}M0Os3$sjk8#5G(f%qGA#{PDJ{fqe}Z$;>d{6{u+f<|r+{ikb{ z1X3+VA%2r!XT($K)ald(**pe064s){N7VvRq5y)2}#nQ5N-wfM!=i#7ze7{M%?aG*GHsMoEYvlUQbi z_c<;sb?hM*E~UhCPt{h;hni@5U{;f%PiZ_Fh#qZYToh~J6$!bGyHgpkZWRSgSMq^{ zN{rYb$=IzlP~<0U1^Dr*?@&rZju9RC9}lrzAbfiaT{2Fqi@<|Wv|v8_r z7kh$({Rpy6vtuuK>oX(?Te2h zUVGElHnZl)gGqj2E)UK&0w{gR=TphXXb)u#JtA&Wrpgvvu7dw6?@i1NDc!D%#o2V2 z;y`8S|3Hu_%_kRK=kfb(Zf%D9BRI7r618_hC)W!Wc+(f zEz+AdW@iz)4E<^-YiF1u%df9(lbb8TV_rM)HYwE{vetTl@!Socb`yf8=>M-K$)a7} zT~|~s4U)7_D1OEyZ9Jb1r~}z!(6G9>I7P7sjJLb|so;wHPwM4+1GHHq!ZnV`YUQb5 z+StOp5p6T_*`TE*1LZb?^IvT;fu}rhxM@MIkq1zdCFl|aOIT9_Q>`rD2~nwQaqRVE z!wC~k&ge@i*uW|eGteg+JA3(6kC?1k{E|D;kMC}tu+TBo_+@pYlgCQWi)Q;)|As73 zGo%@+6#q5VzfD!OW|F^k)bMZl!kB|-GU0hr&s5koXb&nSl=i-Ix>sS8W3VVt2~vaS z$cJmVq-a1sRKub1fu^!K8)g}1qub20-C25Nl(dr7$_5vml>xzW9k~Ve6(4Zb+QmB> zyJf8-QtOmSI)QveqV{1^hnh}|ly=6-t6ovyz0w0_3nl{OOsLkn?Svpel_BIIslil|SQY(|26FY*>-F2w(5c$P zWpX*)1cd}uXObnAs z6%vBkp1q^ZY*38`epBW@vEz{ux$l9SL@%`J;gul+;5E0)fh*TDijd}KAA!0lT&z<9eNJIA2Dk%tMn zv9FnLwb30%S#q5m@a@t8njlC{Jd@qp9V(2PjckeeyQ;}fuS6(AK0&LId=@$DwF)s@ z%}qQ)AW2O;P1}nkHD{YWFQ?#s(29s{QP$72+ufPU-+emPp$X%@TF-x~;pNC&Sd+uz zA)YRtzNp%!npcER(0!0<t0pwfMj6pBtV#r!BU|y&pA(#~EQqlwOj%-hX}L9V|0D z?qq4kncB>DIC*iU`WdVum*SI=SY>`+TlfI&00J74OIDt0Gb}CQ`VHzduIOD+E56UK zOjSiuG-`<7ex1^f6myCy%a&NQQ5BVir-~vmm8UMsy7OseQ6wRMJ^Q9d=Uyr+8XDI( zVsVGyM--H$%hy@#dzoww&!Uu`?}zUjPic0!SAfu-swpNz^?*T=w3A#`la{debdyw) zQy)ZXF_EQ}5{=!lZ?BCXh1Ho9oN_aH=u<>ClT39pK`;!ic*>LCEs~W))TS@HA}X^* zrak`j3BK&xQTtCc6Hmwg)Qmn~ZBp63*BAk8@|M{7llywcEq5+g3IQ!iIQ_hGSmtZ@ z>FttjpIkc_^ml8~FTaF^KC}RJ#=MGnMCo+d7>t6nGf_+uN+fcB%4cg?7dmo&O*MPv zn@Du7TpFNRV$md2s(O0X-uo(iv1Htrk+&u$>L9F*BtE^>cM$-#Y|^@akz zOc`QlrS_X5*eA{BXa=i5lQ8wu#mLELVcf+*luygNyu2)OmtCB-wSh}Y?a-)Z=$KSs z`{W)=Jatt}Sh+|H;lY4E|CI8v*<&r2u-ZXfK@HhrQ(2>tSJFrY z{JxKZ)&rS<{gRd|ab4iFrRK={Yaf>Ea(__q%t3yG;}V_vc_pyT-8Ez{K9qHY&CKrK zudUUqz70`!_y##0=_9y&dzEGysVp}o=ONtWODt7bARh~M)X_-S_tdDU=KSO>ke6QD z@}F_$Qh<*&GjjF@$FYQIToE=6Wz!^lD9KY$XHF$Z5nUr{9d5*Ntkb7z$IJaJl}8mI zo2uYg2?k*@F4&gqVEE5v`0i|=NeD3;e) zp{;vYq|sC$wYoI6I{NQZfRrs&+HeeuFCcGjXPh45!Q9_q`zZ!0YUvCrgGt2`9YLvX zy=8D#ZULAF5MF@>+Eppmyd3bEr|^(mEQsi*1Va|UYwo9xdIQ21ky<@eF@^7amQby#&9P_Xc&!N-I=>bBe!RHVZ$7J6^B!#?44N&Np2v&|jWbi} z(1rmI%@0z5iD??KXSubjmg$n$3YhYJ1_P+9-F9s*S-q3UtP~->xSf&c4#*gHHIz}% zd&Z)eFB1xacB>)Bw_tcUmVL31tC4QQ(WI^cR8vH6g>yu<-3ibstv@QUrX^N>~b9m9m zY_+e{h1NZ$ol~H>P7cqX9x@9lv~YS*!JHPumVpPjWsX3X2v>{?L#4h^4VJS+B2pQ; zoJq#+*k-O&vjhHKuDqro=jew-adSzOwhGTA}` zxqm}&C_@Ot+8s=1Q#28LcG(xtvN!Pkm2*m%iCl80F6s50Q!#qUCv*x*Nl#SoCvLOA zkfVRmK4DPC7?0c^G+M3AIWeRSGduqRc=;U-YEl&@H#u@aPI=xP;WCPbEGeZ@QmYQ2 zmC}bR`b&v(cAnjWYx}5rx`{IuX7D#Ou2o`nC7&-K^Ec}pT~#Dz%{8?|9gB;(0WPU% zf-Mg3MR?Hy%@e3SOiHF%l(C7x&`8@yV-fjrP(KB0Xp2*ed3bAb0w^YjUB?#48l znQ0KFksQugo>QSYDhtU6dz8x*n=%#WW&@M%;r=LbmR+BOh+g5L29fc1gKV(m{HmGQ#NTACHDrn$2TApEX z3mMR`0fhBFsQ#E*$)D-KYiQ?)>1QZe%>C3!2Xf49a3qyf5J)Is_JXIBS-K6_13&*-MdRi4TdMuLd7cNNzG}q6}XN$ zMb3av?wKj$?6~(OcxS?5>&`L+d_BONfy4QulNe!oAP64YuBzno*d7$(jB}l*A4oV1 zO!jNdoovqO5DBTJCBjQR4#1HxItAsbyc=PEoRU9mfKe_nci1pcr3+FMK8U-oe@4z6Hyrrt{|<0fvGa zRWh=Re>oGb2Xkr|=Uj)7P;q+`0M&Jc1|WJhc3jes{MsIg#GZVISRgbfSJ-=i*WW-) z@BIe2`8ed2gHsj_T1C2xOo@By3^U`J#wXorhZMkD^B{H;jHH_iD1KdMAKE82SI4kU zLseh6M(SU&v%Ba`?ug9t-Z1MgMqb)U{cGo>9X=wG$P$yhDM>8Pi6g}TAo zLoZHN41_VEC&Em+!UZ>53JJk&mgrPSmzhLN4U_&Hru}n?WGTqV?LKU0WkWFGS$^L& z9c|BzpVSqAL<@DiOu}k3LDbVuiJ6>r%8sa&27a0zmwt z7{JqM_$jQS@e`!94Tc%XDX;;Fp8aP=baX=(NN;ueM3fM0>t_#FKH8_o{IsXyPQf?q zES@7>cZuXv6B%yUX_fjQ^Gi>~76C2P^~mk6o_Ki$1`VWUnbU~S6jrx{&`=voP~d~e z7Vq`il)>R`)zH}wetXSv2<9(_pn&#(cEEZ@KHE<4>G54@fIw4=Um z@0Xn?Gr7Hg_#d_=%Y!%hNs#6TfFki=v?X9}=Zx3!O|w;F&s1tIKB1z(hTlUfB0*;1T#w3!cwF-pVnq0* z0P;$S1thof&VYFxz3T!crvwINqn?z@;LnwR@`l412w3gWKQ*CHLOn*$T)9_s&*B_Q z>yyL>&*v^e95v%@CeK%9?G}Z;gN03eg6dG+=R=iA-|QTRmVSc!(lP-eCQ^80S$e4YkL1NiD4&f5KB|3 z7gRUW!Z|1$|YgXi3Z;x6PkP33>_rR z2RzZ@m6xUWELIn-Hs=GAZs_ZCS8&OonNJmYjFCggy8!AhC1(1GFOH^1TO(ioqbOop zJwf7MPIKNLJDGU8B{a`dqLHXNlngXANeP9-;fk8ZVeTIsB75CO;))p{1eu-!G0hZp zO361o8B#A@>bQQUEMl%w;)oz;b~v{P$O*cDb~Wf7CI&}>SN_O+l+m_yF=O?9bPt3M zmDe@s1wsy2Y6g;803?_LJaqzMBVGRv-sHB)`x<@cuy%P z0?l;{xMw}F03~SQFweqA$Lg#M)Ru3@{zSucy%+~QrR9)mZmmW5?QC0#)Z>GM@pOOO z|NYC}?PB&M0#}JrEFMgUXAj}MGx~LM=C5gy!3wMbYh0Q7&~b17BTd7HLDu%Obhj0s$Znk%c$ia`#HePbQ5jX#c_LHODM z*koT3=QGsqbOJC2@_zLrKx#qJD)gE*dIoWS!P1c%e&{)K;pk6go;3!PEtAH04K1w0 z@!v+M_i!wEcc_3@Aw+}Y&fla27QB_#s@)>DwktUN@*sK92qSK%Xc8 znBHQ43*G7Y0`r6##XTEuj!cDtU455Ork|r62mEdjoMP^F`n(Rcz{LLIE~zJW*2^-t z)SDkhY|ue2^v4}tkP0e!mC-ZC2bwq6QnYMOkZ`d#+B0aVb^qS1ea;)d+p(0t zSoxi4-(YP8;jWl%DwV8kxeEMK%8M(%nzf8TbTqX&NNwP_5u4Lo8V&_<$wrvt-*8C` zdI>_C_E24)QWryR)FDUyS53~;MOw8%`LJ}X@D0%iNkDKEd;j1L^oMuu)H{uyXfHim z1eb|=`y!*N#OAIFy+jHUY%9iwF#{f`Q^iGQlmNd_4bOlE@Ch(-! zNamr+F60%$V$0uEP3KURYr^WWih0k`2%|>NZ`8Es$il_h{dcb{4j8b$bfH|Xp}aSZ z0b7Px5lAC0oul8E6!*X*{GmUeGtwy3tGxtP;>%q}2V0!qKot_>2aN*Saij`9cAkG>|v}-M{>g>i{aMcGO zTRhF!P5Bwe=)7Icu$}e}&f>#_?lwF4L`b$)aY48W-s|Tqi8pXZp*p?>Rz)(E;B0Su zlT%il>`-gVXak=s6+D;T3T_9CxLxvMv7qdjB33jz%-E-Z+M{Hql!HN#0UT9f7-}20 z`4}8$Zh>S-A=WR&r+ny|E-@@vYU;Be096~D7AbDLPg!0e776De3y1h;FvVS@l!sHN z@IfOn7VlRuTUu$VHWvp)u<@~=af0&<@r6Mf^3PqG-j1GZiISiy==^&`OW56#SRS{k ze#8$ax62HeOHbyQn&Dd5(3IN+xom!$0)V>|=|%uIV;m|&>-wQmQsi{+ZAV=X`gh$d z#iD}4M*52bN5HJSxH2oWnP#^~DOvdqD*>b(NeHSj>7O`?CCHcl+SzUjW+KOJoty&6kjnx3I3C;PCF3J_Tl>=7gUsTc9 zA1>dr#1>F)&jH@Rm3w6^{{4ZvnOl|`{P{|`kS-Ux%hTpbtkZ7iFgQU0k0%`L3>Z$q zZSwSG?@bT-rpCNc(l`$_c4NMjrfj#H-~_^E$l}ncITw_^PHkHZy#6mZZCjUAEiPs3 zNylF7QsC7%lceh(C)6RImb8WBw<^iXf*L`^WaoyWG9*TUZr3;!U}VXv0(A?H#tXq{ z!QkK}V&4`)&Hf9S!%FY(%kj#Spje4^;8lLUm4L^DNox1(VP`O&Qvik|Zq;++{DMG- z+$avdQ)2tMp%%B3sF1eZ7kk2;fI~x6cv>kvm!T{2Lo7mDK~y}*-pTSAcbZ}Mv^J~- zXt^Qe=D_KJ?Aj8yWuOkwYF9b0`BvD-pfG z$A*(y?wF@Ss#Fdk?Hze)&C*u@x6+!g)3G*=`GL&Bm62jZ@!MvaLpQa3a!* z;bzZ*l^yr`R7R}k6rHf38DdU;p0D&mDa3;=+)uY<+iCs2jMPyKwR%o>%^gJ%AX;_6_8(Q|zBIf1qT7u-fa+{mkF=cIjBBFj|Ds^qF#HRFSp8B_((EN*WGZh$20_^Wp z<>RYj@W1e^`;^u|{l3-GLV~?O{tKc+=4J*wcv0hmjMg&8#A}c9Jap+mYQuSzsOris zW1fFO+{cZc81%hCOrcTH1&h!__(Nyazt>7}M^1VV?w37u7 z<&4(-241w2g74dg=0KHx43GsspkP-x(B1X*i z8{i-*J)|@7wULe{SLl&U2DNHWzI8pOg{(J$ulBYF!T`F2cD3^3mq>OvsK$qq!yixcy!Fx6UW6ZXGJ__dzsl6{>?CqK9*rye7*#r4F+NapENPON&X0{gNG&PMsF1wH^k6FX6XfN;>`kVQ0q z<^jn&xf-^nRl$NiB$l&jfDet-`1C&p!CJXTzC?td2+7a>MXR!j`_lPc1B1#$^tl~A z!uy@8#mACii8|(rrkzBpgT$+6T=oDAHgkrt9TkCd5svS1%5E4(S2#nR*`_Vs!?{4I zlUh{^Htttam-OjcC(EZVbd6u^B<`#Q>J58w_k|P^``TtGhaF47-3ksJgo~j@`I8NJ zFI3OS?5K`8i_4y9Cwiw;Td5_j3x*7K103;W5q_0vFpMBJROkR+e-az7w8>kOK)+k)n#jt!K%wuHN!LA}N6P7JIXSOg!mfLa?p-=qul-n@^&ecSGdFr%-$EQu7Hp#x#fvlf0G~Fu zyUq(4J5?!UEnD9(D=vCSKynBR%UJ5jEiafbc~vQXhArj`C5#V=Y-J`(AvD_k2s5kn zlZad-)h-2g6=h`)dhDj!1U23yev}xqJ6~hS;TFyBfXlL;3~Bj#Hx5aVnc~p7&KN%@ z*2>$7>Wj#e?5GV(o&C%f_O<3oq$D+)e zx|Jek_EdA7rTp$HD=vA<7ny`e`dz)q&Dp^0zj|sr+*Wp5;)#1N)L1NN1wauEHP&Qi!W}M1W@G$hY@@TYx0ql; zQM6smC=&)rtt|n6Un(km>oSVI*R$IPv*IMYl~q+&Ix97_uAZbMT9MJr@3L7WMj7h& z+K?%npb(`lLi>E1G;p;C_6dpKx)!W8`|g zzW=_z1|qN&>!i{r`9p}o{P2ehbLUsaD&NWH{G7t0|{T0)qK*nOlB8$i6k?Rt@b0WGsa{66}nLF`f;`s>rIt-MZ zC$8k4X`+w*X*_U%X^&lfR*tv80InlAl0ANUKPxqw>mjPVdk>zUoZmlP49t!3;rE+) zKOQa2l|7vOS&KjJ%Y4Xc28V}&(LOs_$~m^OzIng z0W!cf$O)?)(-zmy^=+8#0sNfXvS5ug?Y!?CSX{?L9s3LVU)zWlrew-`rH-is%k%W%gS4hqFf#)uA~68#@CWvpGH2xC?|vDO>qIrN~S8~ zJaeQ0T|-_=R;$XyKo#1QC?KdsbPtvxa=*h~%P(7jxwgKey5KwnxR7Mfq+3fSbITD+ z5$g;$Oh;;tGSb}BgbN6F0~H=1tK$w&gyh>9kvj)Dft^`;Pp0_`9T&zP$v;|47_xD^ zVoV^{pHl~g*^XI%ruxu1*1m`Og%dhf05oQIQBd3RBah*__ru%YcO3L&p!!dnz&k=` zV}+IMANpexQ2WNP(FG*+JLf*2LLlwP0bT0m1+>p?#Edh!0@~FjRZIAHMF%+oT1Wqx(pCdR_}ieO@4Xk2DWi)dw6qT=o*>|Xp4UE-5yqtF$6>YU&o<{p zeIf{vU2@2Y=~N2ZNuN*J)Rrr>87US~+p{c%l%vIzZ~RXDHYf_~(gNxc3BVJ<<8w9F zTUDUdrM#9h8vmf-+_DLJ`i{if=e81$(Osp;nS+88vq8WS?j#Txy6wjgrwzQ}xwtLe zx!SyLG91#`oAqNn&7%xp3p$Mb4xSUCUF>WT2pUVs2%SkbJWq9qqYCa1hC8!Yki-pm z1mE|)?68FpwjGG|8Q~C3xcO6R3!z9+K8F13j9y=Jk51eMq*G7Y^*TzOPoVc3cAW-NZDxoaSJO(=R%6|R!~Oe&>HuPM;MdguqLX6 zadKp-g>e*l2F$N7__T}}!>V*3c;*H2nnk)_C*YfI33T`}uFOlPcl$2MQ67+7$3pe7hpl4BG9&%&kB^>5FgTAaiM(E?QRb)VM9mM_XH%>ek?>efhIH=I*Ho2 zezA_KJ)phZay|>&xUIt1{TZv(VUmupj#?_$E(5GQ;&-Uc2_I5Xmpv3L{yoI1FOdwAgU-TZsLIPW1>OLL6^EPup52YvtD z%V1CkrEA4&Xp%iQcWj_gv^P=zf~(q3n+v;(!5BqbOFH)a7D#~a|8-CY~f9%)R zIET{i6NA}mXh5c#Gy?wcPoKtZAk-Pir4WF&ZUmEN?BKQbcuDEv|@0;fD9@ z!sUqYJ-B5MF>DF`X#aZhGm)%n37W5jwtV2q5#n`!`cH1iq@JSBDq-8=s`xD)UO-`? z(b~(9eur?+!p3cHCfaQ;0nm-@rvR}a1d5@P73fZQB>98cl9@Q?Jf?nlwPXae4`n&#rUG=Uyk z8c}rT5_ktA-P3Bi2WDtQQX`bkbVSjFvgaIto~_uVmwbg&mL1SZ%!P*!oEb~F5Si2` zEr2%I-G&K~mjAekSil#0;#P1uUnswV(shiVcA?WA1uHKg+yxO8EF1#aZ1^x$*rnwb z8EoRUvi-CmYE)zTCNPcl3;Xl~Tt!7W2LPJa@0gpQsrfZPt1W>Kr){KA>HP!sz`o>c zPS$e@uktFIXj|O_j5i-I(n8S#j{{{mlx0p~BN+I3B}w14 zDvlZV**=mR*}Glm(|KoCp7V3eYUuL-zxA&)|1E}V+Vss+L|^_xdsywCaZu*7$%g7j z^G2XH+>ibGs(dA2UxO>WY;3<4xX~E2i%PW~ebNaf77V1#@BR(rI!4`F%rAW@jAw+L z6y`3+Jn%*!ZY@kyCKlNwDdi|fd`Njk@)*a7yBe|&_)*5xH(Thu&?eFIoAr4@(?TKO zR{7cBWf>up>u!aow-pr8_CLtEY!7nW?X%iJ*kB&y*?+KqYCmuG1VJ6FPpC&+y*o1> zF8-hRuwa|R1;0)q`q_s*GsS@9^9uL2t`Nhe+I0FA>wFZI%a-rIjjLi{4Cz6kTiQT* z3V|FY-3#Z^L;Etq_?vT_SXd=X07Zy*bi>&l}*A;D&L2SkRkre_Rw_gvibX`j~ z4n_opgqoTp&fIRJ)@@kc^agCr9fURLv!y~0*B4e$JU}iGSX(tfmr*M~+oydRw>*m@ zd;<=A1I$uB`2ovdIdz*uCA1z*ye&nU>5Ya4E6AheEt&^7%*m8izG3m0J&g& zW0AK7%5w!i&r|^bDzvqN-}75Ef}>44&me_ zDpJZX3=~r#S^^n6BHsTTwfF+kdwfybll8*?Rjf8V(l9m0=JQao7(_Kj+#H5-y?C;q z#euzU&s*Z@D>1bD{80J6Fx^9Gmko3@@fgsDy$!giTu!4YjM2l+0VP|8I%<%y>Z_qQ z?d)r(5iKh}pA)cs2PpR+UmoIN@pIr&x2|6-gcb3;W*n`W4WOMbCq@-kY*@QNaSg=A z?NJL2CG5Xf7It(Sa&Il%`oYnj)M!rTjZHHKlh@6W2t>BM)tIIiWJapVnVl2h?|2N9 z_kl~aC^D^ey0o=9K+4d?SCVYOvKcIilWB^OiArAv<|d`%Ge>0%U$0Pc*m#?Jt%_Bu zZ^IAPAa1HpBoo4g>?{yJ@ok2&k8x&8f{Sx;4WuhRr63dZS$6gw8UTx*S`6V}2fxTL zq5@RCo;o+{WI0JdW!d1P1;-(Iij#gliCNNV>zEMAg2BE`R8z*&odl)*wZ?;j^lK` z!ezrU23%k;KZ(;UbK_Z?$W+|pVP<;95HP7fw#jfpVC!=N79Y?kMOzqSZfYXb&RUP2 zHon+4<_@tW9Ruor<>iXd@8UU@!k>$d;ecTdBRH?o!zxEbK}(hUAgtJ1Mo5>bGEq@& zKM#_81Lj)Wt)at@Tco^hXJVw1W6VCGS$O9yja@0T&Q5Yg_2$gPY#bam4g3~VYv4hS z^2L#I@TEgsypA1=@}>USL$9OO9~{yh<5B{=Cr;z-HH2>-R?#?4=WQ_*l-FzJhO=twRS#}K@3j4vMcK#)6~42 z#m}7nfvvN>@93s0vu@pQdVd$Oi}vSBe#9uux8Z+(=f*!0HV zwrvzW6m+|#^R1W2nnP=0a}xJv9fvZW6#PIUus#a%V?R#GgtwE7K|u(C4tJ54`}~@E zt?}uwHFD9yGQ7ACd_X}3z7v$8JQS|B-o-#)0di9)F>j1N2#k940-rI6A}38GbtkQg zD|Fklw1r{gmx=m8%ktw?v#RGFG;P<;71TNZ>8AU;t4rM@lep0=)uuuBdECAS;+^mO zPnC9BW`y`>JuWubOk*(@&-pX6l}Qm5RXSYpD_)tM$Zfd9%A}8r?PN@pB`@B^hlU3l zqtXcG8eojI>{H8B_iUC%F~?sGr*MW1m$ypv2W)(c-x>Tehtv9W6S*rg;#Ihb%yEeR zS$^;mgU!{`Tt3gSDd5ff=wZuC?O6CjjCPXKY-`8KwvBRmG=w+#{FQN9^Yp!RqL(4eFJEuGba<|h7lkHi$cM)O#|cYI<(#J!aD3c zk6v2-mN!AfMHgl)MdCZr4^t{IXu3OY17H znapG7!{(@{wfF|iKeQ+aD>i|fca?i|eSuVuGh1MH15`(VU_`kb40#E16 zv!DO~<_G`)r2mtv#{eN!Ct8LkCiT>A~k@N)skx`_*HaI9qJ3k$qe!qRtrUV{} zO8!JbGvtVgTUsjpeV?0YM>l2TRX!?`l;-Tq^mWDpo_1|;XvjF?IZst0j$?vh0b@|* zxO{*HA%?OQtfN6+H)T@t?yO}41aHxzAlfb-&L}t{iHPaQu5P!Tv0*!ZbC_A#o$M^V zZ1&J#E+wUmO%{>7x+HD1a+|RoA!@Os&Z#*96HCOn%e9B0j--kBvKB=Ln3GndA>{3I zP@28Oz6_ZoghDW2QqC*1M?|pT!XVoi%Vv8?q-&`r`Wg{1 zUxYJD#qlBHwE9jVQr(0!sH5A=$CUEF&i~@fzI?@JjvX`Q$B4BZI`Yd`)r{SB6wEhC zl=os7sKp78r3?)1Y)9I$UA5qQO}`8f`e1x&6+)pggpCId_>i?kG5+9&K3C0eR@~x$ zGmg2@^s(cLe0=V$a&B3HrDxqpaIP+??#GrXuPLIPIs{OIRb>h)lnuUkFt}nZlemjq zaq-*VBCgI_PdY+u=$;MKZ^>X6yFqDJiR7$lb1eVmB~5zcA%23XE(135=l>s!{bR5& zUCb?tF59+k+qP}nwr$(CZJW=sZQE;|cc1&`?yvT)dw+CQcXe0wteIqHWF(cm!#WC* zp{aP%D7BQ?;C6tsP0~W7(KX??&Z1`+7fB+gThqw!LMLQ3=PVYVzi+#*J@%Eq zDjfdc)ib7(9>Z|!p1l9`)RVaHTe|q*NOoz?2E$Tmc}mjGJbT~hzpHMs(;;VH*D4Lu zyUesQU+BpM2wbu1(+rB?k*0oW**>jK^UD&%c1`w^(l>9GOhzhSz=)%?m^DFqe=tk^ z;zcUhEd|@-R04N*Imo}wD+1ib*tEk?;TAm4ieI0k$Qke@e%Wsy!%?dJb^LPV!o;7w z9;R8OUhWlVv8@_n7!H^9lM7oase_Fp^7!d5YgJ6DYsrpvQe+=k;$#h37OS1s$?&4< zbQpKgFdvvds}Xoqv-e_f&YjXO!d`mS(rT;Ec!M-vwlqTL?Z%?`fK@h*W$k!>>YR^o zftvtnoa17=i1IkAzgU}Hqsg1s>vK5zCnZYrbn*SXgMTM4)CV;D>JKyzH{{0wT+o$5 zxwSJL2wRk9eQUuUZWW+6+ZOHb15@9Pam8vHaB*OBRVfo_huKjSlU>De**qFkpvzg4I$;GLxllKRiwMVYzlYgy)TxUjE^X7( zbG3vcy|^2C1-Lhm!S`}(4i_dqvm5#N!B%^316~)bhxr@g5t7yB$9iqD%@vBM|BCoU z_W9C2!z-%meE>H=$iELtsMw?Ss|z^_lDtgf;GP`yv>(B733F%c1tHV7n9ad z7#bNFe-Wh_<;R3cjS8O`|Efr{rDjQI7j0GZE`mW8!1vH>ujGSP5O3HqD)*O|_le2l zh$(dUKiZ~4GeMW$!24fZkyfK ztc^=753W4v&ODBEKl|q@5kV%aD3eJkwxo0Z{pRQZq6sNB@=Qx}mQ0Nj*K}ynzThpy zySgHw8KR9y@7%gm8Y7AoNkX!tOqo?WDdc|(@sgn4mCna%jmAFA!5=jvDE3EO#5}Gc_NcM7qd?;gi@+u;D=&* zQygi?8CRWPfRLKu2fP&FMzUkhr#%Sf(l7_n#v%3kwaq|&@heYnG)-Ilp$S1h$s>X%V@ z*%es@iF2GKj014##EW+~oF2JgO?zM|i5h{-m#u?eLHKlWU_C_U$Mr9iha2;`fPu|L zj<}9yMA22q!QpPOv~H{sKt2KQ#Cp@Cul21$TUXZOsB*c^>IX1jL#S`M^QqYwqE}NReaud^jK${ zM`X78pmSJLKddw;D-L!Y3{Os;I=UcL#qw%yHMA<`m{vi&c=gPHyZ`jYq+L_aEN{D$ z`~pKQ7pzFvkQOOLNw6YJ1Ko={B+?lreZ(3mTc!2s=jFJ5A-fJ4c=}YT57=aH7%?p8 zJbVbFqaQl-D?G-efR8L`vkfqa2>$hn?ID)elpQKn#sD~0 zGMf&Ol^LL;aH&g2Pd9S}PE7g-XXwHj=-Fe&wDnR{7y(K2;sxqEhQpEc8XkAX62v7r zZ47k;ohks;TZTi87-gP??N@OpR`Z*4jc2p3{*L=`lsy9eTzWS#kG1qm~K@oi`lIJqQelo8wb;x^ zs;c3tG?cP$?}WOL4S_0t`@%1iAEE6?=guE@J{`WVcKula0TBB6QO<5I?w3s@!<0tI zz4IVsM(`eDzwo45QkU!A{Tu=#H`e{CipPbZat3#ZXefFbrpLhb_-zh?BimU7~TS0y(8L!O@-IpIf2y%PPVUSq4EZ zWaLsb5RcT;-pj@6ceGLKa->V0vpStrnEQtws*xr?>=IRpbVFR}*w#JoDny{y0ws7K zhQ*`@_y8q=HJ*^IJa7z_e;lRwBe%o9jN~173*{7`(u|pUp$;X|WLnwn@xs8&a9l@E z)DTQmyC52$HHk1nk(n7}J%cbS2~vPu+lE+){mjv;=DGJ4E-MT{APk@R30jH|K7cU^29aF~2faErMubxmxcD z9KOVqt|&wFUGdnmpj|@ZhK%Z0(y?d*n-$5a($?H&&WGFM`dF$z6@x|hlLg+4i>uTW zxX?=(R$4a(m&A9?=c&yE?c_YMPEYVbxdD&<*kU?^523xYh+7OeNK=rbz>qM6C)yyS zlx*+Zo0DpQ4USReAJQy_oPL;Yo2kQl#{YA6^>XO__i@2&_H*xJ{}#T8{FnIGV_jVp ztN8^gd+_{Um?jLs!VeO*%I=2_T5TJem2Ar0QVU@G5I9xf<}zhltX#hvyse<}WCJ1L?7B1~`uA11 z-&1V)C~xqH@fn?*N~AtI{4h^$zl+!FGpI?W*yrD?H)$x|Q{F~R%6MF1W5e>>N}w(( zszKExK^UUu0j=qTuqujMPeG9~quA4W>6?teBvl+wNG!8>jx>L5xtjGco8YG4y6Bs|%c? z62;rDXwdQ{0FGRQ`EmV9ECq|h)V8#r-Gd|9eAm6aUj`?`g;$0>A zF6n9`zT>9`Iqr9?x!m_Jv)-1RR`Sn6JDR23PsP1|n&cPGJx&UY>t!9tAjJe5;??tt zq0MlMBc#JNqqL=P!*xDvWlU{lhn6`P&?!rID~p&sG0>A~x=YQ&h2T|Z{K&+g`ECj8 z{fT&OxMwF}mjlJ1Y|!2^<+*atvpDuEEGGLR>*o=-s~op7?gXn_+!cmXwmo(!&tt2H zU?~H6tItzOO68XQYR33n9(C7T-K-v^YK(>0vsI`&H*V;+*BtnsJbESL%9R(a-EDHN zjQGX(%=^(Y_E^UJc};3(6_n+SH(N}w8xXRWDEfzEE`bU2C!!osdsB6ZYim@jBs-cd%0%qY&jy!73Q47 z|IX}I_!QLWti^=EeQwhNNd2h}JJ_|_0oUscamj7|6lr}`t6Tocd- zaBuWLJy})q4ZwPhM!dH>NPIq{q)@lHP9G(g8YQuFAj_HAcF5M*icg&Ia)XzNMAM!v zvsGiQ!P$SWsZJkJ#Z&0O5NrMsPtCc$iXyC zIYZ4T1^N~yI)NhuTtlS;3*q@0eM|7x7C|JDE~P{6$X)I*BHq4F=y=H9flSOI|D+LTot&QdeVX=8Q%Ptm;jd2mZ>A_x8p+4`m zwJFz&TN$OgB!#`GKFE{cHMn=jx4*UsUc;fDt*+O3o_2LSG^n_+c&=!JpZgCX#$7yb z&p|@2vVJM23RR6W%&^As6UCEt9xap!3tmWfqT zl{oW>yDd~y$KJH&Dl-u9j*j{H{55B9K*07EM2MpwdF%ie^&!dnO$RCWJdfIOoM+;W0du7Ae2SRkjA;0a@4T4-Kyxs^ZmV;n*m#EESD zE$N@NFno>7+HsmB=4hC9oY(P-;Us{B0w(gpKn6Rm-~&8^iXxU44)jaUzCY2hbnQF{ zTA9N>A?~SsEId=VhCv!?>K<*hRj!Mi9F#cV0LyTNe%Z|cS^~p|EHw5 z!1UR0zaI^HawQ78Fv+mPyLT|FTq<%la>}I=ov3E%{29->qsPUCgz0V?{MSfYOTVgWm_TZ+Z5}Qra=hQ*m1%jW>MZ_S>vXy4|Bx?l7 z-hmmvbp+^P#t#?%iSs8f^I}F@Gg8+qSyk!Dv_|IeH}tha4a-`NTn2CKY?+8o$JViE z`=2b7Uhn#P<07fg6+6*vzAT2A>{-15aiLppcI3<%lUA4ii;UujZtjLPexmiaWH=Mbcc~?f1S)9Zbb5nV@wqNcx(j;(M zPw1XyE#cZI8?+1Zn%N$PI(h2;IXRtHnAvRPGroV8QQKk=%~U zhAqS5p#V3klk00NXHZb4`kT)7OqF3K#AvyA`HDRT%X*!M;Dx;_{15_tPAMDsT`Yce zHigVt=L{Xur{%!ZAkW1JV~W;-IXXt@=K2;VT)1P_%$4yPSG@^2XSAJ4uBmrcg&m1! z$=F!y5s2?6A`(qJa^dFeMFeoaWXR`@{?^L;PKF2VWTiRh>1#NwD)1{5u&phy+Hv4P z-5dY^&KW2H&_4(N_q6ffh4;U62FCWbwuW{l|KFqOT;mwwh6!Lq-Sda0gos3O3Y6{^ zdaH=E2tFWBfb3xqc&OUz zpqO9O_^>vWWy@&GgXsf&{Y2e4{q|ACNk5vNVuo$4?WZcZi{KYwm-NA{m7}KJP}V>U zba|qhzu!Us_vP~rp#{?e0|3ZE0svtDpOB=Sk!=Au8}<>9s*@YN+B1){`n3BQsGttd3AGM9SIVkfH7 z1SpLy$jSphj=xPyvUhXhn4--LimER;=s>no3+t{)QOECD9KeHsa$o7rFf9p-h%zKDBGe=Ab=<|a z!uifitgH6=rf4YZh-znwgFw0?4TOH?P-TfODzHaXBfoTB*FG;%(*q`kpxFt* zEQ!r1@~9f}e{^opmh+9gOfunJ-^n(Hv2706ZsK@E-1^)$Oi~{Ebj$pyyF+FWhTQi` z#=A1i&tKtiQI$oqxw50sjP;iBQ)cPJ%w!qhB+hjAl-`RNz-dRbh&rpV*zC_Cpuu5} zE-=$>XFHPe$YtlF*tv7hHspR6sbDLMNh{(7^Cio(i*BPk?_CO(}7&?@Iv5coJ3K1pPK zwFaa&j;h}q{ndf-*Vp4UC5;2oE1l-AU=G8X60DP!h|o)a5y3xreT-Syhnvq=X6{1e z-Lh=38;NI;bTkGNkxZ8+)8&GaEUq)EFU;)shnbq#i(83!($)-e)L5Kb6nOg*BikU5 zL+v@%`&ftL{Tlc>zI==R&%vVzW3DbS$N&J_0ssK`|7SZhGO=`a(Kj_W|6f@qZfoal z4yU~{_5BJbi9E_WUrAf4u54${w(AP3wX3F9O?#8jX+lQgIu4TfeF?1c+y3(I2Lgeh zrmM@-;1TeyMT_U|K>`R6e7K#3wpNK~xBmHTrk#{j45q%VTD3pVip!)@huM2WeOox; z6*eM>pcSjFc5g43d4QgpPndd**1JtV1Kz!McOGo7Ipntfo5uq)pd#_r8@WErI9zsl z{Z`Wc5O8W&`Zyu|w$m#1dhlO{?KjWzyEjjIyGO0Wjh)-3yy({j^dlHoSajhnd{U-pa|X(oz(%Yy_?5ExGvIMi#CTNIhLR%Nww1Xu z2+Y)p>LZ6Gwhi1n$FLPE)koUtb65pc^=t}0ZN~Q(2KhaVa|(sKU=6^7tS+0qwD2tP zt*TSmzB8zf%_as|%@u|pA-?f^zoFHECltr>qH5~nmx$BLjaIRe{L&uEQD4xK5T}0( zuS6^9>gMHp`diYA^ejIEIC^Gpp1#2F zE(h@7r4nu^+|c>FJZd;9Hes5y-+ka_<^}ZG64CZUUBqyT$&1r47UGy0VEO(n>f0$|?6Hqt?iw{5pI#|j+S%pDTpOB26b(!Z4-H%$xe$?a@Z#19} z@gzAVH9YXgXwYq}FASuTP-RQbAeU;yrxlkw5oS7qB{1npnMlz=XQFZfO~FAc;0z|P zUpWH?^MS{W1G)t=f&*wRAjJR{QVYqUEVGms0$d?b?1xN_6$74IEz~j_M@r&Z%vY}0 z9fo%<4o8Gyt+_{QiI;J|AzKE`O(Me59)7~oE9SU&@A1@>u&_xq_OI8T(M1Z>J__;X z){zmx2Sz%LBaOm|eifF(lk%nX@{`7ZH7WXDyGo%=J$0K~xT%tfc}ZzJN>JW!>fY0y zZc#eJp!-}sBI_Y~kiQk$%2kQMG6G0)3Y*P5_wcfkPP7{mX$<6P_eH~i6&#g!9MfUU zrKQ7T9Ek%zb_@eXSq(fAtb?(w2g*7$Mr~Jek-T|nhSLc~p0OZL_IU?m4^2aem>mM4 z-|IpMyK!|!u|8T+6cw7Y&SKT2bo;nm-rJYOV%pGo<`hm`UqY?F6Zc>eVcHggXO%Af@-;c= znU3O}rBUQ^FO$RSn^DQdF3gyyHrob!$kFkEJ4BB2Xl4c?)W~S)LKdyRgg>%+osC;2 zo>IpwAr7=YEZMFcEZ^C#h!7({{j)eOXy+4Cjy*fN_QMB**v|vgQ->M~EmyRW!)3DFG-^!!HI-qcMuGp1@q&4VXb|Se4)hI8#>kJ31A3sQ9(jCCjTFQpIe3 zUcU;_)r}7!%%+-wVwkFzRzDDUrWS;@fx~$Dr-J zmrukSITQ5g!K1DyLPRd8S7BwK5W=X&5ie1}BY?VQN|Q z_ddSm4UKusj6SRDJq>t+L7OTg*u00bZ_hN}c{1)ju|oL04avPIx&n$O<-gGo?T$~c z|9da|`gu6~Q9Yf{_np<-)AN15XgYqw>m`CZEe_@7sl0t~fWaR+$x@^RLiJ_5ijM_b zXg7YK24m7ZeE;vH$T}Br(M5-6huMSg773uDR&>^4v;V~Wdc~i|JI;N7CA@7^7XbQg zpy=!m?dXUdJ>QR~y=PiGHK~CY-wEl)b|u;{lR+QGeaP=X0;YLqJZw14$t;@3LrCv9 zL5XScHkE8AKnoID*&U!9%n)ou=Q+=&VzS^G(&c3dzqN!q0A}0-F`YKEU@vsS=~<6)#d3m#hVE_<#U&T@gHv+*i|=O*R>1? zsu}}vLN0oWijZ|+r0hGgja807Y4)j$Qx1n8HZ1V5`0BlLRo`ECq(<$LoCbVnhY*X( zxxGH#UXQoa@7jj>*5`%v zU#l7o<-~-8BoVDL4OraThQYttz~nqy%pa)ra>PX*SQmfU><7CapDcBBTlbk3@R_jH z;Wn^ms1CR^MH*+~2C>rNVFV7Fc9|oko=B^(8lqo~iC@6jT(_YjQ5O*)p4k@PVWk#U ztgA)gcZe7&+3@^qg~{`dfA3rSc-X4Twfkws0VMzCMjc|BJ4jEJ9AEQCbTfVz0#x?8 zY*>#{dS}{wILx-V_BuIN+bvt5RQdvh1!d5nb$}}xAHWwZ5odprOY58J#r|QA;i(la z<(~x)($n+zbbGwL&WHjK@`_kb)WVLd2~M(!cZYw{{QSb_XL~a8y=yv<=Usj5!4Xs( zayNYPj__UT9S)s?H-Tc!JTbXGd_-yIJ(i6p_)m7rbP+WgjI7LMsC#=P4!R{w$TpRS zbbfh^f5A@NWQA2`gFcm%*w{wv1np3Q_8!T)4KJpPHySI(Q>m{t#v$dT zRuGZ9wF>Fi^ZuJ+vXih;-MFsJBN;CCeJ{8fZgFL{H`5IBZJdqaHM<;=ZHkp-h!Vw2 zef9!D^-pF>q7hh%Vaj+)ts>*~jiUJh#nRz_Q7hVKt^YXpOPiJ{en>X<0U-!P1H^3T zpNPiJGnEb@sH-Wp1HAzs*3&a$r zN79Uudizk=7J(`@J0&uO?a#LxGHM`n45IAbR2R%bPhTy$iP2$a=c_NX2&ru>GC&D`D%CoNyuZ-ee7f=ye zyI;}@FsTO3DiT|55Uw202^N@C8rJYmfAX>^IzCA$NE}vzuE?l!^w5H8W)UFDfX6{5 zjIui}WaC}0q}n>kjtl@5yiYqSBLZ$PTz|?sG%iY2>Q|q^86;-6Y(KHZy>DWX$%vL8pU)Uvahi9 z^bgA_e=3?|Z?Pwj_1C=kwt7*EJAz+|LE8v^5!jCrWX(f+xvN=`4@r#VlkP&;FG#J= z0?zN<#=F#Nog1%gExSnP5Wb98ta-}B^YA5-C(atKmN8OWXV$jcs&1%}PZ#R2pA@CN zGri~k$KCR*1N}v@%dFn1;G0vzZ-hzCb&67j9mecH)45S5 zF)v1Z8fHC<#X^Im0ym^QRF=Z9=FW9n1=L}Q=y(xAJ&A=i=Twc1V<+kYRkKZ{wh5_2WiqfEIB zo^1#>tFW9zWX}ZXU*xItLRP;*NrdX6_bRp3pGVSlSYn9hNCz#6r>t=MT>xTk^nYy3Y2X@gro}B1m@HJtV{fc)xoHyOE4p;CZ&xq)F9u~FH z#rU^EL<;|8!Q*Cdi!;+kUGye-4?zO`lDZ#ZC zVWo`Eh*LR$cAQhrFkfDE13uBFolNY-$DXlzz5=(IFW19Q_FvHPObi4a?#cbOPX!TW zvE$ASTrLkmd51nWtf!CJE~PZ;-pc0rGG9#WJ-!`-pBPXRvXZC~TA5rwDx!E|l~cA% z-S1G5zwCPd)+8I=sc!R`{}Ac|Y^uq6zX5apF#n`b#DtpCGe|zLKR@to=l%~ay*>>g z7U|-%+pu1H&jW>+o>+t;UqLf~_0J$;?s0sZSIv%XMwX-FwtYh#FD!0=zHixopYY<{ z43m{BU#b`Wf&tE(nLTg7>*#aqNyn;YphZ0mB0HA3qdfBMK7sKk7G>r7#3<=^VU?>f zc~QW?6L{PZyh8LkZ?zn=o52KGR zJwM#s+f8np&z?+S)az5OC+Tx1oCS+i0zy}HGxQ(a|A#0*DVZ8P3xqWZK5kCk3l!G( zBriCC_sT`3W8E2JuV+3qK9hi*iUz?7!G{pdsdF&FMWbn&VJhOvU<*l8}QTH^2eyyShOLVEf8_=PA~ zP>upgrw{9OEi*O776**QW)`Zge0mpb29? zxrC?SP7W_gp87U-U_mSM;b22oDiFtJeE?+{)q{jC} zd~-z~&NPnaPcAr81@_wk_WNG04WSZ~Da#SbfMs(xW49Cj0RfKV8-#NLtmiWxD{{-p z^0sPF;wdGxE=J!A4D0HxP*kK~6O4drod0!t$R_{}-(65eWINUvQPM-ASIwpIX<3z0 zR05|FNN6CZ_mUT!1FJ7M zTjfcgr0a`Sl}=O0v{5J(^mh_RsbW*6P;gx004O)|38R4CkIgs{6`RADIzpwa;ikV{;tfYDnSix0)2V(kxB41%xSo~1ZXScNPyXhtbI}LGr>F`_BEW!Ti}x{ zz!#hGQ%tiUrX{OK`T=uKBcvxKOv7Qj%?a^zf_ae2q8T}1UIz;8}r+pFJqG*bNF9_=o2q-Q4o)S!+SZO@b(0Ru!Vt|HK$}wAl@$= zjremAAYYG6On*j3KY&RHD6ktn`xQKH1h$F5W#&Y2Hm$c68{&AhX1%Xn=4i%DW9yRG^ zy8dQ|^bS0?8H7IiEokfQHdThJ-!{yCzQv3qQ?T0PE6eLm-8e5_5A4daX7<HjHO(Tb_9 zv)TLm>8wLbQ&sGXg47u{ed;u{vZ_$}M`2>sHo6p^00)Cwo|?FIRUoOBbqz2k@%Q%6 zFZpNLZ|E8sTy80oEyZ}+E=H89QLlONoY)cbrY~)YZyMYixpkITs}`yh2e`Tg5WY$;^yF!+M8;ew?d8Pc8YQ%#tT)%qj z5L7ETU>hZ=Kgugm9v>%t)#oh%PFjm_Y?p|x&VX*tI2B02IHp9zniiEzbBLQzIkJ2s z3xQxv;-kTjFdTmxsmd4;&*3N|Q&_6Vx)MGtXhLYZ7;>0xJE#xz>Aj;o0?u||bz{Q# zG-{%VIC*nG5l1s28lIMj>FziN?=KB*N3*4hq{!l8eYX(lWfnydKIBo;SM&2(z&2t( z=!2BDr6M7|L;#Uu04H5HoZ{L2?&7J4imLbFiuP`Lypz%?!7?-v3Lxp?J}(_dzXDfH5`8zf9CLhZ49IN8q2g>nv_QIVoswG7I1} z6?1}@6=UuoL{HZS?DaG9XUl(eBpVZYc;4tz*Vx60Rah+#&#G4c8tE8pY1v@LKVTIC zsb-pPVgRTs=+dM3bdRlM&m=yBNeryaxNtU`3X;}9+<~u5&wfP|SW~E#jBOV~gO*MI zwqVb!gUF>^tUX|HuQp)qHrkCzwPRx{;!k9}y5JxUbRQWveRNl|1@9A&sNaQolnhx^ zjtYM(mnSltkWfu&)64spGvvQNk@^+WT_zS-DvaAR$N@9zB_`YnTdxOw?pK4(Nksm2 zW4{c`#~aXf+fi@Bsp|YO5hLM{?X~o(BcTU<`#%evn-Qt&R zzQg)12wvM8fAL8+dP{b>z@>ZeljM9<>h0!M%2c3IgOUsPhHz>1I1sImz~0e-@xdVw zx_sQeM{dZmHL~?(oCqfTX={JHG4V|f%j-}P$`_(5Vp-IWjXu-PaT)(P*tXwLniyOXRPL8SZfdG_?k!4ZM-d>AC$?)<@4OI$=I_olVMY%y&w|U(GdIfDM=C5|B1*E4(z3=-2YaIHKoK*i#u;6a#{Epf6e(5X?%;^j2d^wClis! zho|@8yB*$r{gUM>Z^9xqgD$;yJ$xx`>PBGNBVwgpHQsj?AoIuDc^V=?1y%U2y0?{O$sit2TOLl zsicX!3>wwEP>zsk@x((uf{PaP;tgfMC%a&?@7^$<6Cj1MN~3%3NT^96r(01bB6pay z=ioWmjXQMa=V&-+Ow)HOYt3+L-(u6hMDKe{@rAQ2i?N9ymUQza~PQ} zE6u}F9>MIBgE?!L$$pBtDs?&Ts<0ywxr;Dr-r@*>@JvM7L&Ie%cNX?s8}_E<2ZY6r z618BhnZwlAUZfCp2KqDM)ze+P1^;U`AM(`Uyu>IPsIidDH(`OfHk|kCfQ5l&~3k z7zvvxDbu%w!c!TqSqGO9*tV9&9gGR>EmJcaNEqyyY%gVd+O^>8Y~Oc#0|n$(6rZxf zhB+S*VOQNn$)LaGs{X+vz$$?1tXrX9QW1Yk$temOt(7KQYoM2Q9rrFSdUPMR9u3BK zZsVCR{j2T#XBcjY0e##L90Hqcxr*khw%Nr*NGkRi|5MYU^#ZaIK^YWvYZ0Fbx;YB1 zh++ya!@jDk41iEjd4u2h1O8ym=bNl!1xPn_HI&;7bnGnkM#**XdPB2)|JN-&C9Qep zVUDR|$*6bXMakd3DQ+#=As>3f6FZ3brmB?VVdHclJnh_i-X0Vge6B$rY?~bEC7V zL6^+!zRswbWoa8|8L*zE_5+^5>-A$2E%feA>WdN}g{@X|`6yyVgWR_x1vg-k1~F%} z4OL$%49@A#N;&?zT!7kbh&YUIHDEqePbEvOCjM>Q=1a_3Plg@$OHK2)Zb(@&r1l~-e%An5!f&#fuiKWd2WhPqX4sMf*sWQ zs5JzJ5nx<$U~+A#ZeZ@qxZ1#*#D{E)29Jk@4-GE;s$|i`v4Qu|wUf6@9vik3-x|gA=@anK*mCIP(rLI97LQqk8yr{t)SfUCJHL4K zfLbRo0IDtoX7Z-q@>1AnB@zt6lA+Flj`7Y}Dke*H7Y5f^^PB?^HCX2r^H77X*ueaMo1Z z4*6$irm%Kt(8Z+R)&aSCau`mMFYNcwf7U~NjT~}Q%Ts3lI1BgZUtDi#!^qO-Diocy zroPFOrwb=Qa`mdyJPQJvQd$dvyNF(RqR=zNnRL&G69J-nGJxzwNX2RyaoQBmrwXbr zSiEom*_kgGs-gHp`@y@sk!5Sf!T3djiT@t`z%@?aRE8AKk0@e=CeqH@eWV}AV*l-B zH^s3&zKnjfvnLN=cEA&0*d{3K$~XSv9HI$vH7;HvECfUwT^N!VZ!>?HOVo5OPc0m) z6IySaH0MZGTahDpAy+%xh@Qev4PVCLlXj{MjhJ(=cvMYhH{1f*m!?2Bg1bZY1)E9* zkyi_={m6tKt+9PRA<{x@ie_xtVl&Pi_c0|cP(gmt zbh#3bl3I%TV`7(_$6@AJftL1z2o!z_%Aap*(uxpLcI(8H3MskcwwQzLbAtf;222Xz zp5sbT6_T9gJ}p)XI7Pnr-W5!Xr7sI0Hi-Oi#?|ThexIDh-|hAHP7%PKgY4rXH!&CK z&fv}t6!+zDI8nc*mK~UaQkp?}9Xu8GhUVF|u~YmM8yNr2+2}k1X|$c$Qe+Wb{`uJ= z*aHdF;4`RFAy$|W1dHy+t9F8ap<&ujTYyS-VUWKU?qN6?hd-p4@(B$D!8iUJyfnKu z?sGcbm{Y*lR+!e9YD(j+cP?zJ!rop9nQ${1-zvPlkWe%Am9|t=-#5;Lc4+mYco;qeBL}h&5p~52gkoaXC3$kOyBaovEbc@jA(C?fv-AA7DLl%)9w<&TeK2SizBJuMQ z6#b1Br0_PbhnGG+DYB-xA_J}Y9I8m#l2V+ZinrQ;s67URpLqbemu zke3WKua7a6%=NriZzz$$}*!RJsIK5 z_@sDJwaEPfvZ)5If4Z#R&xV@m;{v+ zak)cwVu1oOlHFwmj9S36Fy`z7fe4ivdms-$teJzBXD;>_wYmL#ODt)8aEj&?`S?a} z|JQ$*%oY{d|2Q_4&zRj*%8u*po6UZ@15_R@K5+kgdzc%`+!ibcCw^&{bsMH>Mpmwt zQl7K`lN_=?N+CeOXT?;tVW@{eTc#OS$cvq)zDE16H-_hSO_tPE{>02mi#MM7#uYcZ zk&%SE#zkCrCk94txv;G4xMT#Z6`fVsv>0qCwj3fGVvup>3)n8E7Ib&8 zFzOSKln(Z7B+ac~csE1|SaF|#oimAJj|Cymu});k6K4*dBGCNB)UU49M35F`LIjkt zqA9?LeKdPo+cD*VRd3517k~_|7P3C@;AkJ&Yvqcf3)8i_hi^>c zoSGQpv6;yVbEb=WjlvNGv4ZpYrVzh1cBzmEU`!IkPT@ZXbVU;|ZgP1B*v#B@x?4|e z>X%c@R4qODlA8)NXK4@6f!ySC2 zc)7C}R+&C@qg^#;%u)6%{bogC%YDB1$oKk|^M0z3^@{c6!TLyOwGzn=Cn7^12Oaqf zhfTUm>>M`|GrltbiwVGJ<1oCdR=t0FQ^M)5P~M+efS zNJym!{eme00Jv%I6DG>W##9?84GRo1`W8%GnCmOH9-(N@3Rk$E9JNX1x63X|?-kd+ z5Jp>NqN81J-{qbk+G(gshZ^LuQDN8IT(RuJR&$Zez!~E!~)*-}Ei0?i^A-nt;EHqS^ zLD!Mmdtyn~_Kl1P(xwX*~q7QrhDY9|5hXoWJBxDIy^z{pP>V2FnYt%QyPY~8_EvfehL zUou1TBz-TZ!%Ur-smCZcuPD@;kp$nOvm!Jk2MX^r6=nEw7U_%n%WQj{*GT_#7`PrH zuTAtN&5A2>>(-oaBPngbjkV1V?=ncwt#hNM>r8FQ@^5k#QyJbf><(fjUQitqPHz@s za7hdJ_XthZGm4&@e1ebwuF|8oRR8D8pSc?AicHlWskz5ikC}S%D3g0hYMJ?>$+5bhr55k5hW;Ot^C&3XAvTj zzThF3GPa$D^3OnyXGPIg_dJ2_GCS!D@{TpE9q?7m(X(Htv?4<9u!1m-0u=7fw&0LL zTdbdP;iRnRPcZgszklme!6yC^7b)&-Mw-FLjgMehP&zxdAlx`g27~0e@BSt4*W>4B zbe1S4o^w5^%Y)~pB4x}yOOdoPH@D^IEpIqm zLeiKU_7dDX?3k114SPq@ktkg68j?R&$m+>+?Z9d}HIL;^HMIZ7k2s88=F+R=v%}f? zX;Lgl&c&koXXL95k3NKoh=l(=S?EK4$DybTl7i){YCb9MmmA&sSVoEv7^p4~hVZkY zfMq4kY4n*Ts~2j4iBpA~P!pGchkj|`kFzlgP&lg5uzjnwhM4?w()EXnhIV9 z{mvc455&QPCvvqmts`LVQ~AC$%vS8zwxW`6W$*82{LcSV0pPN%Tndps1E&;ekzA!H9%UUb%g-v4h;}8#r6)Yzye{6PWEPp1p_RG9kE`h&BsHcY zk+tV2;0wAuBxy!)*@G^aIQ(J+Od*sYGtofLBvtS=lCj++G>WS77owkJFW71%AyG~u zNQjJf2_@BZ^4+&y1Tw@~RAIs)B?7LmnfBLWFS?lsoskeWZ5w(6nt^2`H5MJ^7UUbC z)nS(zK>x!afy&EB?Moy^MyaIsv8WZLFpQgTA@6U-it!LKm3q}(4qR-u(XQ%d>43qn z+DI{pyL(j(ND8i`;JRAT;)f_|Hkjbm|A(C57m;`BDpQm?if^Yc zJ`i7t>BJa{nN>ic)>OCq>7BGKD(`m& z*F8DTSf$81gvi}JlGQ%KYxe~&_-*a!QRs6OEv=z@)Qu{Lnr4<~yzNkKo&LAJlQhF0 z$DGWzeE^+-ZjZL^w=}~TQY!_UNt?q-bUYE(_SS+@ZAij0Mx{65dGqIQ1}tVU<{4pZ zfu(s{QHyFrU?#Ej1c9G032>;LiV5fe8}u`rdQ&_UNek-PgwjCLIt}#OJV%ECB!xoNV#r z!a?xJxO~yXk{sS-NK8&9Fz=sL@)-MZaflOmQ_n|i;HaAF2#VYiz+^Iy7mgZ4Jfe%8 zRYG&dKHJ2!Odh95L9b+&i9cbyG%hb4QmH&EDnLNb#qt%8^xd?SgykRjiroN5xt8}S z_M`e@0o@LoB7!0|+gVvAb+snG{|qi)gL5YMT8x7KnNj|DuY`9ZDu?mlKmk=vN3}l$ z-*NkgZ;H5ApFhE#mrW{`Hyl%K(?Cz}3o^z(jy)sPxRqZ#BKd|f00cFLC33})WFpOY ze`jpG9Grh1(W-=Y;X)u*m27GKZ}F_}!~X!%#HTg+Ohx>4j$74LdG#~iALC!EGTluE z0!<_*VPQ<+MA5j{BYr8vS@2_dR{}0nzIJ?Y(~hhPWZHNqDPxd@G;&D8xl~!dxP%-{ zlAyd`>Cytbh?=77#znRH!3lzaGguVITC~<-3>BDlwN1!h+1jDfL&>1INT!E{~Q`oF@7Q14|H(_)TIs`-)2E=l7B^#29%FFfSn;_MXQPaI?Br~78hpd|_@K>43*sq& zql<-N4GfiRJrtnRFfapUr={^6tql)}Q7i!7f-y9*+`iBrTqh4dBFa{?_&P}Uwlyuj zU~Pd`PL8|XbljD@Hv#@_vEJNlu6CCqx9#iedcoB+`{u!M7%~W87d2dl9-8);gc=qP z(;;Z;2Or22gUyCV7A`u%Qf7t0L2k&G(f*z-kB*u%^uG?80PewK&gxu2r}=RmTEO4@ zYB@&(X|$G=WQUE#RSfYaY-N$#KTKzlI)#W92~ZdvGUq_Xl`~mPd<+!svaN14m4(0d z!+{?i7oM0>vz6THVSj3P-=UpS!8Q>Dw;j`8KLTP$p`cEYXB85NCTyhL+*W(;<@DBC z4i^pRwQ7$^$pb-{a=U;bh6>J=IjFtMCU|hoe7vL+h>8QOcOz^>jD|6rRo2?S=h{Q2 zy<69>ON-^3)jmh{#yKzxpB5n*{B&;7N|L>uM<_s)Yb@Lq__M5Fu>iHqCLav*X=iGk z9wmb7CWtmB>dbx4CT!4P6i=yd?|wJ5ct%(O{d>CL^@P?72Q)lEE4`? zZMQ^g0*IX6G+!49X29an(=_X?y62aZ)M(-10ec-F1O(Dd~wSABj?DLUZ)%Tui%eC+O>(Ao9$giFdx{ zQq-r#5{$g&_ul*0DZS$r{O-C_b#ZnXjItDQe0;0h;3QjseZ!Fir5|#De*9e;wtA5J zwW|KoQh#G+ylD>gx{Q|2rTQizcrv7pP6jAFqcRPMYFX~cTgL{a z$76bWOU4iMiOVPccslZ|*b*JNE_L(%`1-Ge#HY^z?50BeagLXXtxXBeEv7_~(%af0AH}Se%|onWMob*gbn&Bw%mR9SzV79N1=&jjO35X~lC}f5+J)Q9|M!6pPOj zH{tv@C%Yl(NW!Y#wbr9Z>WA!i9kOgfy-7~yx}xZ-aZ}{|D@FX8oSY;{dF*gd?Efq8 zqZ9M@+qtCEa(XefgF5xM$!>Jy@7(yv-#zY2nu*lA&18B)RrVzZ4H(pZ=uu*;%TzUo zYM)v*YasP*BXxe)@;sp;p4jTmw5wUGwiQMtYV|sTwP<>D@>uNq+9j<66>d)PxkK z0%%(yhMC(-`W6PjulcY2R!J$LWW4_Gom>RJgJ|_gFO-BH$f#{^k4Ruu;4Rq#Q=z!< zGvMtd&_a+6hP7JJ)klX&a(GL;>1cM~W-zM((4KiyugS;@Cafg*v-0R5KmpKC72dF_ zV*Bl!#^jBDlR|8Qnh0PkX)VU4!f5w}o9K&8xn`rY;~@MFf{zkh@CeawW~0%br9Pmv z$?;3~)yB_yU!m|v)9+?1qG2Bo_yoPg8*4xXHGr6aWlc_{&0$xvtu$+8H`>9LA-`S6 zdGo%1-GS>ttcENjN-T)jBDSGHfjm zfrqdF-lTI{K6u!c-kMIl*}bRNisfivLt>j*_hSo!5tua@%wR)~#1jI0Y&sStzNYru z6NhIuP8YavK;#cJ0Cpk;23THCdIslxmjQx`48i_Q_*8f(+y-EeOxfdN6a~777)g>7 zBD&g{t>S63Atz)=veVs2K{nl?d7ZA?87S!tE*Yg6UZ}84!*x8lSiR(EOPr<{45Qt_ z<}#9!G%BKvb1zYC9Sa%LHlqs)%xm?!Q$>5zY~4!gd+Hy%MCz%h0m^!0rq<2oVm}$5 zJ)n7CT&eSO_G4REoEnkKG(SkYs_BG^LJ!1-d~G=L^9;p`N+p1nW07Fu*s%r$tRS72 z?YY>&9?d?^dJW;6!oZqiJFPZhJX={9+drmwoYN9r()eeeLFq)y;tGz%p6%>b=KWi& z?cf7qHBkP^n_7FT<8|uTpJ*XHA+vk(wH2A#L9KorEkEoY#mK-Pi2sUZl&{ChcB>);i{V2+)Sy+1SBWDQfxfKtK(b_5F$n6}2HK*5Xfd+@q{8ecO3 z5D6*_{S-j1NemdSGrCo@Yj8=BV0im1<@lq1s1(1q)b$>n73_H`S{mR6hE7!JNrG$Z zO)&R`8tMtpx>@N+gKMVm+%n4MAka8QBYUi?x{ zgH?ZjTrC)jM5|Xqj94LiJp{fDynjJfFSxeK>lpKG3I}@o|5*eh##5=%NlaDR_P)N*t;Q(w6CvJvCvn19(w}Q{62;0 zD#Y$C7KA)Uqk$N%hFwAj&>_mwZbI$enYs%GBoL_#IKG;?hBeDE^i9>EQpB0}|l>uf>P4!djy1L9OOpVI*w4^L{ z@fS6BR5^Vlo!{6ZCYXPYt$Ab2ov`WhE$jeq4%1$~6SLs~GKlTS%R$qC(-y=i*%$Y_ zaYB$BsNaS!NLqN%2z(T!72YG~?SgYhr}-rOc}-(uznZ&o1jG&mq%^O`qIDvDihWI! za&3J%lpn#IFSmig;3&OQqdhEF26-Xr`wt*s25|wY5Rmo6#(uts$}<&RM%-9%r%NYd zw3jHK@2AMJ;IqQ9WiiMG9tMmmhJ^$4%+XjVU!$EFL+jkHq=lRKTv5C9z`2FN5gFcm zkU-(x!MRWJ@l#pot`mCfM(E@xN8${?yz0J)2LtQXS0lwh+5o@ll8`h+66O-iYA>q zF1dw*bs2(!5hseQEhnrvhMlx2yPLuTQ2;~P8$9xe)+Thf^Sd1n^vLlC5_0jt1jsZd z-xLt$M-RWF;${=t_RucKC;l1drJW@Pi$ib_H^ab!*9B>@dmZVd4L*blt&kaLWJ}JV zH&&r&L^tS5|Lczhu$KVR+!1asgQz_DyZuToU}xbUa_RWprS7g zU0*wm-jsyfs1}!ql@333j%f82rk?9BpnAApNJ>NYBCYAb_2Y{j6#H8>w0kFYaXsWz za^OVcWApmKpX&bq!E61Uzb3{30sssE|6fZj{@?mWOFJ|B{{V`w^0Zwr147RiwOSuW zHDov*@rlCAE`9{naYm>H5Pef@Roi9%nj2II!U{OU>&*2v@EoVNYXwkH(B``W=9a=X z=W^gSx%Y#Du`$i60Zj<>&^Tx#Fn>?FLQ;ayK*=L{*z+((++$Rk?*wTkmvhaJi zUumCuTVJqDJ8o+X;|}E=I`=5PI37lDht>0DCZT8;F$C`iJ+g7XoPZ8xvADWo+4}_N z$#4r)plvrlb-Z{ZaNxtBIg>?`Af~kqwCPZ73#=F46^{l^lm-{8+W|lzSOMAE{L(p# zkV8b$w62;*K9aRjsw_hlvp&ZMEsvY*jPF0${7KnVopF=hiNm4z-p_R2k$-d+?3>;K zN^_og^@&b(+k6Vrc9C!8p+P>J6%Ldu8|CheP;{jx&Hp&{b^l`j zpxuLeDtBfrnSOKlqGj#6T|bk4fc|$;UU8-LnQ8+7gv$W}5dEJ;X=>=~`JX7AT?}n( z{#VsuucbHkcq7HPZod%_o-T|DfY!B*R0fV{nemRXG*=N0dHN|c9+0q;5J2z@jKpGJ zU;j^SZFhA#ASJoyT=Y0vVCL;*ZC6)SSK6Y*^M1v(U9)<29ld%rIP;6={l4fb`z#f= z{ie;va&~mh_RDP7^%dxM-$qTA(?`eWLie?A%nHmYKc% z*Rf{pGY5Xnp#uQF|R5uYfJvQcZPLO@B?3Q=`S|mXmYztPy%? z_|vcO-#(6&9CLt^uDh%JNx!;j)3lkcskX(7IS}SvBLWPsZ>|pHsA%vu>+G+cmu*nwz<7EpQ={1QB=Blx-U7B+y>QbnBef(bk`(^dv`$@XEK0dBI z^RLqP+TvauFhbc>RcFS~Qrkee@GJr!>P}H@dvC3$UONMQwU;ugE$ZrZ+sW)$>NZXE zrEu%|%gIKS7eRdY)|`*+bvyngt$%YVU8VVBb^WUL2#2c9pAD{qfYBGq*g_3%1pJSz zw%zPqcGC`k(H0&68a2g@o#6q1p23N#ui4(+T$^ok1(*7lld3NR|D~8JZ#{imfQags zfCBp1d_1e)BeGCCB{2;_VWk0kOr@huz7O3OD8jWi-hx4CdQa8Cl_xm-d=`9}M)wxV zGaD6!g(1{Xw%L|=>6DwJroMXUu4XrEQl5~WsA>q^pqaiJ{p8_N;qbrmEjRuj0=hDq)RRF98?Ppo9X;;8iT(9+2Gj6ic zrqCxM0RN`Wnr-vofqb*O9UYFX6j}PQ|XBE1}^Eth^ey^vt&+p|s?_8Tq5IZwG9*)VK`wf{j+s0OLd%o}M zv3B#uOkMWy>rM6Q_l)@TWzTl)=OT;nr9Ysv)A?YIcL1435ddh2@d*QWVP0IflP;km zhJ14)ANT#+)~`~0V=Agw`O5GCsIx@`;uFL?OO+njYqI96HBHE zt+ZG{JDQt8`93qt`v_yNSY(!2u_e4*zRZ5ySu(n@hz*p@r%)D~=i!Oe_FQSH4fL?o zN9sDjlr`pSGCqx$S-+I^1^?W(2JyPeZ0W=e;jqb>OL+ylZ$!1}sB3;;e}T726OcW# zPIN=fnGk~8+wJue69#=c09R#w9GHSIadg5V>@u;?p0A$N@4lmY4BGU{uQ0)wRpA%h zTea1gDT7z|_WASKCCY&y{8pS?m3Q5mMVos^u}FWPko-(EjFkbw=xL)2w!ko+8F5$` z@SAnJi|W?i;iFV1+zJ{<*U56E#A>480puSruPdwL2y&F&)26W=%5(^E)=$Or|M(nLPXi69i|DJ4KPbpu%x);;Vj9*W=uXBMIy`N}kgiI4o=XZGqApz9DMMJMe z)&WDlj+gI9VtOsp-LR{`9Pn-LQ$iMZbygXYTSOZ?+J=&$)uh!hSMj95kI+*#Yz>qT zQNHsT4?DuGyyl6D(*tSX!r5EYU-=kNC>$!evSy7zOt}ov8o*|N^_pv&KG4ikyhOy? z;VXeu1}zEeKo2koySLP$KYLaqV1(I69h=tpN@SUVA+y)>*B;jQRYBLgHJ2YoYO=C7 zOo7L_Vo#-OdP)=RA>0k0G5f|Y?wVfU#vqZKJDvw?unZE+cFMNh(q;DmZAA>K0Tv4? zV;az2;0B7_F&Xz%IDxHNJFMIYPoa99T0Eg++DMHtojz`|AX$sB9ngJQnC-I39HJrN zZfj;zgE52gQElnFfy_}~w+=J+VDRV{0fSZ^Kqm{Bg~i6{Wv#h(qRQm#t0w8JAc2>1d!vh!EDw5V|rrj)49BGWKieT|e zxuQkA)LkA2{CEkN__7fX?0BMZt@xk>>CjnEzN z$oG;aX1bYQvRt)ZL1fba=NNQ1a^lO{o!UyGu+XHXnB>qqDrbl{(?SasC^6C!q+?~3 z_uZTs0+rB2Qj%A;$}VIzPvuYv3|1BG%jpsm{tl5}=V-4K7p>ct#FRS4m3#=(q(5G!TL3KSozmG}s%pPg==j_`mJa;+O zr83r|VL?awC5G3dN&=sabZ=+`_D=V0SLH$Z@O5xD8HD z0t4jL>eR4NUG05P_}KguWv7YAG4C~|deP4eJEm9omBgUc!E;Gf%dsV6ajWAdacPe> zt2Sbsgo9KuGg`|GTo)n0Bj9$ed{t=^yx`^;pR9_=DzQ3%^QLoWeb)<#-4RFjX)9Ggx7@)_Z_qDN^M%uLBc}kDwCr89 zkj4++rbi?s8Csr9EImt&Y=J@ZDj5gLneMJ(*vs8Y#0+~1u#+pN?CGX^4-HI=XV0Rs zTIi{Qhia_*|F9czb$&eGc+o^Szep}1>Qe<-EpTzLe22!;$+^@Hs;{=H6uO3cL%lPQ zqz>M{Y=e70Z`)S8y2x0oHIQn)c7sGGqnjNt>M&Ih1m0iyp3N%sD=3k(((Gikb{FgQ z2p!q5#k7Mn+|;7n%iFjb7m@GURnv!A1_aEC20}y2Jdo*PtiSiA@A3RGXSBvg@f}-p z4~Q;3N9IP87e|kIz^0~~6rm5lUQsmp-Wk6UE3kKY8NYW-rb1rc8BxL~Vw5jSrnY?v zq8Y@Bn+swi-EJQy#cI{n29oi1UH#g4zJj7XLxLQB%E}3yvKL9!!QiPa2IDUI;aa#Rt*pL-X&)w873RkS1zB#$%Bi#N6)XGh zG69txS(0T}elTfNg7ubO_1ELcCwcjBYMU%mWHpXizQz9h&=o_`Ss)(vD|D8IH`>*; z>USM_KZV!4lYr{Y8aw92HD50OS4h1*lM_wfJ}Ua}CqtV&Ab||uuA@LY*%jz_J~iuy zWTNJ`GZR#%yck$(PCiz0_X(F>V1Tw9Faa^Zs99EV@V=++Fmd<`B(c3dkGId2D}H|P zw5q5TF5OcT`DMz6A!knfP;WSoIrz||OlShF<#M3G6T^qgVKh&8B}Ra)O!=hx6V(Nz z{%6nNMk}nf*~rUx>V%?kLNcsd_Zn4nxJtcTVDIpzJVl}R^7z~W>;cy5qa3YN&>X3( z;F7#bE#Kj;aT$DVvy+r5z%u-g0g$LsFGyBwc%qCx6DAn86ocd4S=f{6DLGJ9xUGoe zf6ZGm(6wp6W~A&4HY3d(918HCfq%mfR~gR&<)c||eLY02j5AnRJ~wQ=KrGpli-KIA zn3%2y>LEfxK+fCIZtXA`wk8qo*o*OHnum>8$ONi*MLEBjM#P4Fm(`bGaaWYHNh=ne zE5(KJz=pc?r|)NPo0js$dDXK>j`vuO5nSuZ{0p_$h!w~Yl&O4R>81cye6uifW8_=$%^Qi9Rt&<&QIgls{Cf0_+$>1 z`vmN=Zo$C1s9%0%nRj2H9Hv1k`32^-7yYx*YqFIJlyz%=(9X^#{qWHEQ7Ic+;5bGh4pcKhaq`}^r15wJT%#Jtc6RNq zJeTx%Zmm*O@#2GOeKqN_vxV9ec(Rhu;JV*8yZUMNPqG+j3N#B1b?^`>00s@Pa5x0R z8k8Su!bux|RkzOM%iy$vP^?Wq_sQ70UXi;wZ+2q}Dt6AxD8x{poxUx6uwJMdVsMUW zglNf*!n>%V*@NSel^b~rD7j(I9Hw@7O8kBG=m)s^pqX|Q%A!0&tA%>-L1vrI}W)V#-0co>CT@LHn{b3~@o^`UlK?--D$V7JJaHhh`Ou$o(jj_dDk zXm#pT9UgpxUUmINwBzJ-5)23L`o&Xfci5DjqkJqFEb?@-*UMkB)v-aC<&CmvWzFTA z^z*}94hNe9hhyW@`%|iOx8*)TMcU?iN3Rk_2JaisS1j6?eTkK!3?Ku3cu7&+nLiY= z81mIdwI}upvP4ZS<60B|yl`88V;<(k^^MgvdbmM9;_UfzGt%Ve$}V()+F~mpb7yDn z#(+^ojG6WX|8(Md@0bYu>#AI_bZ2p%veSu7wEzi!J5OJ+;*Ko2H(RrJ@3nC(cio}S z25$q?GX4aeP>RYo<9xQ29(ntvS}nJ7uH98EdU0TPY5q~_np~G zr%n^lz&9Io4~bKQhK9pKRT>k68k=mI;pA+bZ};h#h2X@G^PuMq8NF+|H?I4`M=Z?{F1SQ9giE_s^fRJk&tFTM%*u;t9iU}x zD3CM*oiJAZK=GT2XhI@$eoI<9?N~qnq3Rk)JGOAeTR$>pbl$3(3{!zV-KTOV_a@60 zX=#VFwIhZA%2AVTba7nG3Gcq27 z24l8nt7}mezN2|TowQ}f4wj`{w=e)fk8WVF!lumz`<;HuON`V|n?8dGVDVl@YL*rq zcP=kt-HFG2HunGzWiPLR-c85vlJ|`E?(x%GX-e&7Rf_moGm|hk6B9l)3};(jNZaZl ztbs(c-*(NVPPx#u^EUQ((L55%KXayEg*Hms#S`iB2>>!XYZmP!t%MB=m+AMYMtJ8A z3{~AI$6uZwR#iH3@jcu4 zKHBdktRL3G0nLJ91hg{jMuIcX3w@#P0iBk*N&!ocxc7VWlWwoq@B8pOP5Do1TaY(0 ze86e}KB>&%^6z|XR}+N56j;7j>60_mg2k|_jy%-+wf`3ZJ|OguI4N*yJ8Wo!iP#UisWwX0%+YwEhAR=1wm=re_E*VJ&xefLI?QPo0Vbjtg!h7y}4$DQ+V z{MX-bFzbZ?-6g1D7K(h$IbemQj41=jBgVZr#&)yFRd}37ke8o_w;A;e)yW@I+f0z% zhN~b5!WLSBGs}IXgnIvAM|a2n&Dh-=7~22Qcz0JN@TRT|2P4l47sz=ku43DpL{Ec( z&LRQiE5`&0BIo6#_8(V^Sf9$~fKJq`oA~uVq(k$x-3G?nSHCuGyLANAGTJ*T3+OHT zBr%G#aV|W8mfu%DdGDiY*SMRoa#`CgkS~C~5qxW=w~ve`=G*%=F1~%3jsvErU3mqg zlwV{2yNOe{#?FkJucU{t-st$PmTGPKfCp=#Lr-V@#L24LUdHVl-)&6N>NF8+F6}@W zDA+Bs#%yj{0Fm;lSt{6YbK$SvW-SPH*KIq_V|3>RFjle@m;H{q4(f21z;u0Llz) z56US5ob<~m#3k!mP2_arH~g1W*9z)_fWQka}lk4#Yvo;vdiZ7 zTKx=4kjPYyPUA65cDE!O{Wg6C@Hn(xB-6)a@b;KU$FUJ7<)Ek2`PHZfo zJk&wfGx|#)PWLI-A|EUE$TG#b@9@}QNEC!;vEg~B?LPbd2G{pDU=%l!fhUK4Ccix zuQqle0%NpsGW%o$|3!P93#s3SU=e(!%Nvq!U@xq75&tJo>W8$9r6!1PkSGJ2nsI#v z)*&sT6vZuBZY#XV&rr5ZKw}?UxS|2rOK(B&BXM5y;OKW~Fg!IAr%;qbd#}H|5qqHG z%@lbx7H4e+4v)=(REdXkc>c5a@O6C?eRNbjpAS4aHry|ChH-oolGZIu;#h3lP1dA# zsq4i${4RHzylg*xKEHH?v)hl)ZS0=#k7WW-kuA&;I_!H=_Y>AUQ|jtvG+JGM(kl_- z{&V*0*lKjV9-kaK-ysE(?{v{f+K%&t56N-sjIGaV`-R9OHxUx)|r>&1AFW=AA#_6 z8@vWT;UhcYGp0}cP~XBv#zA#v``PpK5b_N0^eb7~PQp~|^oi^i?^0IrVys$Xv4BL$ z1uATPz``g5wrn2mYVu&qF+0uF<$&oTK9Zwq9{xFef)j7U$+YU}Se`je+nCV~)&9Jf z*)_yeA&P((#EYQQ_Sc<-I8Cz1TekE5yPW(wZt?QsaU2`oeW4dzwg7I)v9i=0(vg>- zaS?z-M#!jkzS__6Vq8ulLdr|WhI(eOqKt1cP7}r4_r_>jhIl+KVE00Q2nKGiF|zPp z`tfb}^nMwLPDhTFm#IhrUK=V9Tv*C>xuO0-6lv#>V%nS;bvsUDNUqw9bQcD93B%n1 zDL;SsQ(QOd75u@gLUPPH5|onB<^H;(9()5wD>reTF1-Knio1&y0i^8wU^h;1ME0px zX-FKMuy&-5X)eA`5cYyX%zJ}h8aZMkmaY{S%stzB5$xi=eTM|CvZII(I%FagdsW2% z8q-^AeHS;Q1J(@PUwHyQm3J@RHV`%x*HPJ2J^K_aj*x4E^Y}a`33PyZ)4hkhbJ-Ih zwpz28tI^}xRPM2#6st3m;tJ9+3kf-9WMIiKaLa~l1c5o;637D#x2tO$E$$vLUYMKi zVL-$%_^i}Tkp1Dvj$?Pz8@+FiLBb%Vz-q%6JC0YnHN_h$zK&JY z@|165$>k|Telr>xKLz*QvZwymqMO^(2`lj$;tHHs;Fb~i^?nzj1~8n%l|rKl_k9Rq z2QG!Tc<~&gSgC|YpAqJ9gO*BBy?sn$AjL4FuQ-^11a0`MyDAi)!FxcUhBSAOmhx4? z*aeJ-^YsK>&R2-QFfpiylf301#|M}hObA~te5(9t9_o{HA~pEMLO>L58TzAWJv3an z{Dx6nN;O03O}+r~NRh~_Z2qSQT`~l#97gqqi%fB$-8J^!t?K9UnXOQ|-trZ~5~w)~ z3O9sSx9DpF4Ib#9mZv?j{YpWC*jhpyQs4-tltq|ICnq*Ssn%NQVVf`&ip8GNs7izQ z8t;GZtG9_oWsQW29#H#f#AFHPORjA>{=;;GQnWbs)|WbN?k7Bt*$!qJFi+g^->FT$ zv?B<+lE2eXPGKJ`1QyYnGKJ3kvZDeLf@{i$ou(V8%Mp z!#}}g&5%Ljg>mRL@@*aepDTUaW$EiMM(pOG1=y^eHjisI6Ap(unnoq#LPrcQ`tdd@ zq(=c9k>{`$p>A4hjTYX7$T%^}7&Qx~P&9t_6^uSTmOdMSpSoW{4_c1b>Xn4#TP%S z2c@A%9!l3k5>@1@FI)jQB=#M2ijP5}+( z0CAe|O;%~#lcM_iMF4AhXkgaxPUG!fE;9+4&^H|s52{HLqVk4E=$7H`nzSjDKfd#e z4vMHC6@~4uXVD@}pvZo{iR%p=kzP9dyqv)gfKqb|tA6VF>iZ&k*DIR|2bc@vf|7c* zwUZl7)rE~~OF)Y2Vx4q_h5DT|9D7yaX*#CUjw3I@cnSq8x^4y08K|20PHTuGBA(-j zDHhLw7xf11a3CU#?;_$b*uytHQ4i&$EUz~%R*T4|5^_$iCt2UZ`?h_&Oo>*56>L3h zib1Z4FPhdMFPuxb)G?31B?mI*gg+v8l&+u+3}JTXT3!~-1w)q|medM=`6D~e+(^f{ zfxOLC!JsW`49B4Zgo}(4GHeyht8B5 zXS%Ny*llVP5^-7%I9;Q=Qoq2BVLi3@B5DIJ@RY*}9!;Z`r{*ePCb=1kzWLxb4=pt# zWb?XTe8a_%E+xHgy{|HWQ}A7&A{&=k#k2&wFQmu(YT1>h>anUW3iNiej?$U=fxo^siU zF>VX`_N_zPHBU1u?JK;+;>c$fa&p-4=5E;0k#ZYh+>Lc+OYLc2qgGl*DgJ9Kk-J>E z&BJQRxaz5_9(@4q{^99!)-fOIRLJk6t}8dyxA%+kd_)1M$jbl&9-cAuf2qSZNt^^x zlC!g5na@bB0}w%`;Ya;FUo)%hn}}eH;z$1)#Yma+`N$+``5B0Vg7i1MsZ3lz91TQ9-abVZ?PVq{ua&Zl4qf(=#*}DcIkL&aQXv@J z>-Ybznuc}64yjbH@7vjG;NV4x|>tKpebK)4I>j3 zZzd7q=@e!76bmfvnnZ-Gqg^{=hi8^{R-PoD*kGl7D~goxs~VPPPpD`_IrCj@oTB3r zwF6!62o#5}+;KKnvbl_ZeVM*!B904@|Iy}Ndq7|+=`o@%*A$;?Cgan7v%}^ z@Ddwc_lpRE^$m)QeKnt+L~)gCd9L1f|5cwWqK^X18zOGziJQ_CQUGE%VQ_4*r}nm2 z8Le)Eg~2(eEk^IRnd{$e$Z16`yF)BtF*9`1;fufHrI9`3k7=dlW;jw^+nbg6S z4wV#E`4b9t&F;HcS-zSlsbu5aKp#}c?z@*8jWC@nSOk=}VPXn^v5)*X9vyebv?ib0 zAFnuMhyd*Q*|a#7d8q7Hyg547+IwQ=`+Ukbuh;W`FzZ?4(008!KOB0!4)>ad6L9{j zRT_@YaINLYFCN=4%Ev0Pyjt+t@Yk>Eh#FzNP&2kIS&c zKi^u=NT$Z*#LSxivqwMM=u7SN4$g(QsbRszqUb5RMuO*F^ePy0UQd4JOYy0Q>y_z* zHb-hW3^IxlmJpzGf&7B~zAnXlA6#F*L_jwPXAIj}ss1qp0sp*Cya=poNOj0Eha)nf zR#kG!Vtqo_{t`7W8t3(?SdJa^yP0YfO1v6Y?F?wv)w3exJr;`VWD(rI9MF`_)UWJ@``2 z!KiQB7JyGm?uS{bX^;~s8zA9bA*ZN6NPX|f`TJs8dpH9-&fttgJcWu<-=G11q_0d@ z&?GZQrV^25OtnJVn3oRM1r|(j$MSigtt^vPbi!9wLgz@$!cWr1&j#cw+z{X}Oj}Lu;G53T2IPpkQtLAL>dJh5{h- z!!T;rD@7D;v*B-sqN0l~J!PUL3AJLrtvH!c&51IE23C)jkS4+UIMATBs@i9^9xoek zw=k*E7#fAQEd-)pFMUlE=BmtfP@cK`nS9??$mrs+YnE>Def)Zi9Y*fZSxfgeYSv_| zX6yB%RoOh)Qhqq@=YeqxJ_m07Hm2fUSE}l3WKrs9A?@CLpa~1eKc~L-# zcX>7O+}i1t@jL`=Ap~f};8TJL^&L zB22HkhWnOXzhv`f-sJGA%|F6GTw+m7)()9coZ8boIqk;gC4^0-p{DDuss6aq3Hg?N zx@Tl+Pw$?_WR>WJ^)lmPeevpdUDKq+gNm8r!XsQUTBX4J0t?~5Lxv*%gw6{4woxeE zeI_Zf`e*P}CZ4-Z&}>(bC{2^$tCYRs@QYU_mIXF^)Aka4Y+clX z6g&j5*|@K~3AhK%nDt3pF2c@ zk|K9n!#{MJ1q>2)t43&5%2WTb4dm?eZ99}B96&F@*>+O?fB5>RDB+r*OBXHMwr$(C zZQHhO+f{Gbwr$(C&GYR(Mo&a(aYXcJmXrfW!W)1|_8;GP zv5!P}duYtvtPU&Noc=sydWQnGNw~@Wz>bPilJtFo{mHSbhXj5>`j!pxf zJBYOdQTw{vx^Jk!75Eq_$+mywb-XAU{wJx!{NA_^j_QbCEhXNy1h<`j?Pn`Pc>cLR zy2vF+#}r-bT<3f}FtqEpN{3=lI-#$YKj-2V_T<9J$uYf8bqnFY+$i~?4ZU;;z=M`M z_)TB(D@DWg8b}e^UjwPRlf*1XI-tx~d2VWeJ9RP+v~Ad&^(6QwxssM~e1AzGP)!cD z<6rG;2b2h4+?Ec*cF;C7^9mskBDO*-u;~ z;h_Bz{-l$&DDyzWfGXmK^JGp{W`s?bRxlywBe(mUB5mOjr6K7JiK4W3Nq<9xc=)*xFYbCpCu9Rhr9? z)(i;wltA1nMHAU}xjRnHj?H>`^4*xx#ZhHB(KY;S4@Ls=bHc)iRVU+Z2EUD3wsY>( z{->)1)cdta_B}V1B-%nv8w|0AW$HpiK)!9B8OGMg384v9K)a@k1MDcSTmrDZ?W2zT zzWn>L#K2LyZABPIaWtXZ2IJNk?t`u!u!9*gx_YNB!^P#Q;bnHjPX)1O)e9rkEi;?# zXC8<`Hh|2iN@UwHJjoVO{G|@r_I&=tX!WC1QBcQjFT`4N4aYTaVK$t`GOqD9FhvqW zQ_#qx^S4jV8g5Y`BjUA?{XB}0TzUtf7(@!`oYnw4K*Ya(Q4_oFc@LY*Ie@E)DZB+Z zx0Mp|#7w25J9?+BT8h3?K5t2y@O$Dzq z>EJPE8mYBIk_NXNeEW=r`6XHtW3OyZbj)0BOl0GhuV2UJ08Hx8#%ihapo!Yfi|6=C zaxpo%qtn?8nrHZp=6nn7qr6_cvv{U@OtUs=ye}WZA<-aEBvjM+?0E+&`rtl&;D>L9 z+K3VUF-Li1q=n_BXf#WR&Ej_+$b{N6pL8wVHBGbDbdkt7d%!`h!N}!^w zAdbVw#@oS3u-9ULJjh_Vlb(eyA_Rh>9&ACZ=n^R?0o$ol`WAq1ueV|sxx zc7_tUBLMbJ(n?!6x+UJ*3*t0b3A=$>))Y z{QK85ZKfYpI5=Cq{%&eQqa}s=G25syGDtF>yt+wNp@&&?CCV)&$cZlIwZP1UPjq8J zIyu%);~d4bgK*f5TXvCwqFGUySuOSlygN|``v#T>q2$-_E$rwRx`@K5`lU4r(MQFp zrJzPRXSj`6aG<+$zhz^hz^bsAg%YhPI)H^RpFo8M+3|*}Zjgkx**9vSF_R4RC}yo% z6=B)3^O2&E?Is%MW<(y-WX6mq*}@wtnYAttgSqxi114h=SgTovNEQLZ*< ziDv&nt@g-t+{~+*Ib2#sm6=!ZJ-jjcW5l^IS-1<3I2-vrtQEAs< z<3;!KxnY%=)49-UuTc<_Xf*Y<7n54UYQ#*jDn*I|%>$Zz*x(zNGf`kw!3(l$uG9V^ zj8qu+@@@jL^Tuu`LS4!e0OvqZQ=?zqvz*dR0@bOPCR`64Mce38^Z)`(-Wehajy0+} ze8FiYc1IXXi?8BzMU-0U5b`!L>iv=k)&AGNe=xX87a8@8wlcb?w=vaPn_)Zt3$_1h zI}z{~E11`dx8kWP;FEaEkrH*?KwCd|!>!z}o(G%F89CI>@k>U{gquap(=V$s6K)%I z25X~!CTKNO2ZdT4jMkbxvWj+2v}Z%5h0inA&AyzcBXs{c=8?`I+G3d+qJfZsRM1k2xkJsE@@jC4#>O^E!Y#{pWAv@U%lZf>!2csR(Espl;Y+L4HGl z0tb%Q9|Beqp{<=sKJ^C((zm@hf@D3`O2ddY239hHuc`s-w9YQ^uxU8W-NnPl*inid z<`;JKp_m-3t59_x!K`iV`Edo`ctc~WQMEa6P3-@{$f?0c3plcucbYXi4AE3I?TGSy zj&{4aOF+4llL;0RM>RKeqSiAPj50fa%?3_xROHD4aL5Bn7AI1OCydk6`W~>G5Qoh% z8UXOS1`%ro<-%hI5*`-kIu3S^X-rZa(RmyGa+oqW!++thkw0RS3{f_gJ?6X5C=hc@ z4v;Cqop^RfS&<53M#-yc=$$9qk0NXAk*HfiHTlY0#~x3lmYAiah7-+?-y?HbFGm1n zM<;QBjZDmulfS$BefPe9&YX#tC13xU$!F>RKBgyM`zta;>i;sC!BZR#bB+lqZp~r? z7FS?}*Os}XZkcJ$ZxIoabdRW+*CB%lxS1Z z0UqfJ!RUWbBk&&<0PAqn+pr>e}H}H5e4NPI~ z@htebz?x0AgVl*Au=ST$(WKDg2;js0n6vPaOXJ4<0kt$1HJEboc*^#=LDw&1t<($uQz z6_@as;~>)AA)YeKx3xkM#}uKtHVwl7#0w6>SfxBQsLgJ2H9XIrsgFT>nm<3*yLNBmzWOw{klDL9gnl4yhoM)$ene@;dgx|( zEc951OS%$*gD>@32orkRggI`m1IJOu@CssCJl^(4!=G<8OcGdDQ;Sba(nf#_(2dMb;#ySIw$mw5Ue%NMC#JtdGNz;9C$u}4MV0f$X?EaXNaQaB7Bo{^A9$wLJHYqP`g>oph(lI>{UFYv zaDGoDoDnefABGHM@=M7ZNX-+xT%aiTt}J7oWbioyfs>u%?KDPrsTU@+Dopd#Y-M*n zcf&P40j%=ZDzLQpH;G2B`wF2NAJ0%4gebvaOx3SrM&GJ!y5^do`Rbn6)2xJTN!O;z zEu6&;TJ9UhBck2-kyH8m?z&<;_4*RzvSOavVs87)F-8+VZ5uy!ins6ArGT-XVB`03 zdR6RL!aOwi2B_h()icmlFN5HyB8FY>$kcgHc@y{G>ptcYp{SfS6i_`*&<;R=&-gmp zmQjA^(PbSNlVi9I^@6|YXh9-I8L$zC~DH;&aNbQc|`5O#P9WUD6fx;`u|

#+k^~=WVCobXLUP7MWd!QA3Tw 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 rzw%f9%3t{_f90?ImA~>={>oqZD}Uv${FT4*zw& Date: Fri, 20 Sep 2024 14:17:20 -0400 Subject: [PATCH 30/32] Revert "[SWDEV-469278] Lowered PyYAML post install script dependency" Revert submission 1125402 Reason for revert: Packaging a tar archive of 3rd party sources Reverted Changes: I8908451c0:[SWDEV-482058] Updated Packaging for offline insta... I764c8bf01:[SWDEV-469278] Lowered PyYAML post install script ... Change-Id: I3886b5370e352fc33a249c4657d7ed0c1ee75baf --- DEBIAN/postinst.in | 36 +++++----------------------------- RPM/post.in | 31 ++--------------------------- amdsmi_cli/amdsmi_logger.py | 19 ++---------------- py-interface/pyproject.toml.in | 2 +- py-interface/setup.cfg.in | 2 +- 5 files changed, 11 insertions(+), 79 deletions(-) diff --git a/DEBIAN/postinst.in b/DEBIAN/postinst.in index 97ea7a7518..45443b55a1 100755 --- a/DEBIAN/postinst.in +++ b/DEBIAN/postinst.in @@ -149,7 +149,7 @@ do_install_amdsmi_python_lib() { return fi - # upgrade pip if it's an ancient version, typically should not execute + # upgrade pip if it's an ancient version # otherwise the amdsmi install will fail local pip_version pip_version=$(python3 -m pip --version | grep -Eo '^[^\ ]+ ([0-9]+)' | grep -Eo '[0-9]+$') @@ -159,44 +159,18 @@ do_install_amdsmi_python_lib() { fi unset pip_version - # Check PyYAML dependency, typically should not execute + # Check PyYAML dependency + local pyyaml_version pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') - if [[ "$pyyaml_version" -lt 3 ]]; then + if [[ "$pyyaml_version" -lt 5 ]]; then echo "Detected ancient pyyaml version ($pyyaml_version)... Upgrading..." python3 -m pip install 'PyYAML>=5.1' --quiet --disable-pip-version-check --ignore-installed fi unset pyyaml_version -# Install setuptools wheel (offline install) -# Function to find the tarball - find_tarball() { - find / -name "amdsmi_offline.tar.gz" 2>/dev/null | head -n 1 - } - - # Locate the tarball - tarball_path=$(find_tarball) - - if [ -z "$tarball_path" ]; then - echo "Error: amdsmi_offline.tar.gz not found." - exit 1 - fi - - # Extract directory from tarball path - base_dir=$(dirname "$tarball_path") - - # Navigate to the directory containing the tarball - cd "$base_dir" || exit - - # Unpack the tarball - tar -xzvf amdsmi_offline.tar.gz - - # Install setuptools offline (if needed) - cd offline_packages || exit - python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links=. setuptools - # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ - python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation + python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check export PIP_ROOT_USER_ACTION="$PREVIOUS_PIP_ROOT_USER_ACTION" export PIP_BREAK_SYSTEM_PACKAGES="$PREVIOUS_PIP_BREAK_SYSTEM_PACKAGES" diff --git a/RPM/post.in b/RPM/post.in index d98316b4b8..e33e9c0de7 100755 --- a/RPM/post.in +++ b/RPM/post.in @@ -161,42 +161,15 @@ do_install_amdsmi_python_lib() { # Check PyYAML dependency local pyyaml_version pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') - if [[ "$pyyaml_version" -lt 3 ]]; then + if [[ "$pyyaml_version" -lt 5 ]]; then echo "Detected ancient pyyaml version ($pyyaml_version)... Upgrading..." python3 -m pip install 'PyYAML>=5.1' --quiet --disable-pip-version-check --ignore-installed fi unset pyyaml_version -# Install setuptools wheel (offline install) -# Function to find the tarball - find_tarball() { - find / -name "amdsmi_offline.tar.gz" 2>/dev/null | head -n 1 - } - - # Locate the tarball - tarball_path=$(find_tarball) - - if [ -z "$tarball_path" ]; then - echo "Error: amdsmi_offline.tar.gz not found." - exit 1 - fi - - # Extract directory from tarball path - base_dir=$(dirname "$tarball_path") - - # Navigate to the directory containing the tarball - cd "$base_dir" || exit - - # Unpack the tarball - tar -xzvf amdsmi_offline.tar.gz - - # Install setuptools offline (if needed) - cd offline_packages || exit - python3 -m pip install --upgrade --upgrade-strategy only-if-needed --no-index --find-links=. setuptools - # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ - python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation + python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check export PIP_ROOT_USER_ACTION="$PREVIOUS_PIP_ROOT_USER_ACTION" export PIP_BREAK_SYSTEM_PACKAGES="$PREVIOUS_PIP_BREAK_SYSTEM_PACKAGES" diff --git a/amdsmi_cli/amdsmi_logger.py b/amdsmi_cli/amdsmi_logger.py index 6fb6e5a327..a3122124a6 100644 --- a/amdsmi_cli/amdsmi_logger.py +++ b/amdsmi_cli/amdsmi_logger.py @@ -27,19 +27,10 @@ import time from typing import Dict from enum import Enum import yaml -import inspect from amdsmi_helpers import AMDSMIHelpers import amdsmi_cli_exceptions -### Custom YAML Functions -# Dumper class to preserve order of yaml.dump -class CustomDumper(yaml.Dumper): - def represent_dict_preserve_order(self, data): - return self.represent_dict(data.items()) -def has_sort_keys_option(): # to check if sort_keys is available - return 'sort_keys' in inspect.signature(yaml.dump).parameters - class AMDSMILogger(): def __init__(self, format='human_readable', destination='stdout') -> None: self.output = {} @@ -211,15 +202,9 @@ class AMDSMILogger(): capitalized_json["AMDSMI_SPACING_REMOVAL"] = tabbed_dictionary json_string = json.dumps(capitalized_json, indent=4) + yaml_data = yaml.safe_load(json_string) + yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) - if has_sort_keys_option(): - yaml_data = yaml.safe_load(json_string) - yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) - else: - CustomDumper.add_representer(dict, CustomDumper.represent_dict_preserve_order) - yaml_data = yaml.safe_load(json_string) - yaml_output = yaml.dump(yaml_data, Dumper=CustomDumper, allow_unicode=True, default_flow_style=False) - # Remove a key line if it is a spacer yaml_output = yaml_output.replace("AMDSMI_SPACING_REMOVAL:\n", "") yaml_output = yaml_output.replace("'", "") # Remove '' diff --git a/py-interface/pyproject.toml.in b/py-interface/pyproject.toml.in index e4d451aa82..149fc21a1b 100644 --- a/py-interface/pyproject.toml.in +++ b/py-interface/pyproject.toml.in @@ -16,7 +16,7 @@ readme = {file = "amdsmi/README.md", content-type = "text/markdown"} description = "AMDSMI Python LIB - AMD GPU Monitoring Library" requires-python = ">=3.6" dependencies = [ - "PyYAML >= 3.12", + "PyYAML >= 5.0", ] [project.urls] diff --git a/py-interface/setup.cfg.in b/py-interface/setup.cfg.in index ba56f2ac05..3e8b8c8732 100644 --- a/py-interface/setup.cfg.in +++ b/py-interface/setup.cfg.in @@ -18,7 +18,7 @@ include_package_data = True packages = find: python_requires = >=3.6 install_requires= - PyYAML >= 3.12 + PyYAML >= 5.0 [options.package_data] * = *.so From 8bc4abc88b9a54c17b664b503cfb2ea635aa3c68 Mon Sep 17 00:00:00 2001 From: gabrpham Date: Fri, 20 Sep 2024 16:01:09 -0500 Subject: [PATCH 31/32] Corrected partition changes in header and wrapper Signed-off-by: gabrpham Change-Id: Iafd7de8f08924873da841ee6eca62100a17b2b6c --- CHANGELOG.md | 29 ++++-- include/amd_smi/amdsmi.h | 29 +++++- py-interface/amdsmi_interface.py | 1 + py-interface/amdsmi_wrapper.py | 89 ++++++++++++------- .../amd_smi_test/functional/sys_info_read.cc | 2 +- tools/generator.py | 7 ++ 6 files changed, 114 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18c9e0abf3..f9b898cf90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -238,16 +238,34 @@ typedef enum { AMDSMI_ACCELERATOR_PARTITION_QPX, //!< Quad GPU mode (QPX)- Quarter XCCs //!< work together with shared memory AMDSMI_ACCELERATOR_PARTITION_CPX, //!< Core mode (CPX)- Per-chip XCC with - //!< shared memory + //!< shared memory } amdsmi_accelerator_partition_type_t; +/** + * @brief Possible Memory Partition Modes. + * This union is used to identify various memory partitioning settings. + */ +typedef union { + struct { + uint32_t nps1_cap :1; // bool 1 = true; 0 = false; Max uint32 means unsupported + uint32_t nps2_cap :1; // bool 1 = true; 0 = false; Max uint32 means unsupported + uint32_t nps4_cap :1; // bool 1 = true; 0 = false; Max uint32 means unsupported + uint32_t nps8_cap :1; // bool 1 = true; 0 = false; Max uint32 means unsupported + uint32_t reserved :28; + } amdsmi_nps_flags_t; + + uint32_t nps_cap_mask; +} amdsmi_nps_caps_t; + + typedef struct { amdsmi_accelerator_partition_type_t profile_type; // SPX, DPX, QPX, CPX and so on - uint32_t num_partitions; // On MI300X, SPX: 1, DPX: 2, QPX: 4, CPX: 8, the length of resources array - uint32_t profile_index; // The index in the profiles array in amdsmi_compute_partition_profile_t + uint32_t num_partitions; // On MI300X, SPX: 1, DPX: 2, QPX: 4, CPX: 8, length of resources array + uint32_t profile_index; + amdsmi_nps_caps_t memory_caps; // Possible memory partition capabilities uint32_t num_resources; // length of index_of_resources_profile uint32_t resources[AMDSMI_MAX_ACCELERATOR_PARTITIONS][AMDSMI_MAX_CP_PROFILE_RESOURCES]; - uint32_t reserved[12]; + uint64_t reserved[6]; } amdsmi_accelerator_partition_profile_t; ``` @@ -288,8 +306,7 @@ GPU: 1 ### Resolved issues - **Fixed CPX not showing total number of logical GPUs**. - - Updates were made to `amdsmi_init()` and `amdsmi_get_gpu_bdf_id(..)`. In order to display all logical devices, we needed a way to provide order to GPU's enumerated. This was done -by adding a partition_id within the BDF optional pci_id bits. + - Updates were made to `amdsmi_init()` and `amdsmi_get_gpu_bdf_id(..)`. In order to display all logical devices, we needed a way to provide order to GPU's enumerated. This was done by adding a partition_id within the BDF optional pci_id bits. - Due to driver changes in KFD, some devices may report bits [31:28] or [2:0]. With the newly added `amdsmi_get_gpu_bdf_id(..)`, we provided this fallback to properly retreive partition ID. We plan to eventually remove partition ID from the function portion of the BDF (Bus Device Function). See below for PCI ID description. diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 2625b07f40..4326f47115 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -293,7 +293,7 @@ typedef enum { AMDSMI_ACCELERATOR_PARTITION_QPX, //!< Quad GPU mode (QPX)- Quarter XCCs //!< work together with shared memory AMDSMI_ACCELERATOR_PARTITION_CPX, //!< Core mode (CPX)- Per-chip XCC with - //!< shared memory + //!< shared memory } amdsmi_accelerator_partition_type_t; /** @@ -620,10 +620,31 @@ typedef struct { uint32_t reserved[13]; } amdsmi_kfd_info_t; +/** + * @brief Possible Memory Partition Modes. + * This union is used to identify various memory partitioning settings. + */ +typedef union { + struct nps_flags_ { + uint32_t nps1_cap :1; // bool 1 = true; 0 = false; Max uint32 means unsupported + uint32_t nps2_cap :1; // bool 1 = true; 0 = false; Max uint32 means unsupported + uint32_t nps4_cap :1; // bool 1 = true; 0 = false; Max uint32 means unsupported + uint32_t nps8_cap :1; // bool 1 = true; 0 = false; Max uint32 means unsupported + uint32_t reserved :28; + } amdsmi_nps_flags_t; + + uint32_t nps_cap_mask; +} amdsmi_nps_caps_t; + +/** + * @brief Possible Memory Partition Modes. + * This union is used to identify various memory partitioning settings. + */ typedef struct { amdsmi_accelerator_partition_type_t profile_type; // SPX, DPX, QPX, CPX and so on - uint32_t num_partitions; // On MI300X, SPX: 1, DPX: 2, QPX: 4, CPX: 8, the length of resources array - uint32_t profile_index; // The index in the profiles array in amdsmi_accelerator_partition_profile_t + uint32_t num_partitions; // On MI300X, SPX: 1, DPX: 2, QPX: 4, CPX: 8, length of resources array + uint32_t profile_index; + amdsmi_nps_caps_t memory_caps; // Possible memory partition capabilities uint32_t num_resources; // length of index_of_resources_profile uint32_t resources[AMDSMI_MAX_ACCELERATOR_PARTITIONS][AMDSMI_MAX_CP_PROFILE_RESOURCES]; uint64_t reserved[6]; @@ -4772,7 +4793,7 @@ amdsmi_get_gpu_asic_info(amdsmi_processor_handle processor_handle, amdsmi_asic_i * @platform{gpu_bm_linux} @platform{guest_1vf} @platform{guest_mvf} * * @details This function returns KFD information populated into the amdsmi_kfd_info_t. - * This contains the kfd_id and node_id which allow for the ID and + * This contains the kfd_id and node_id which allow for the ID and * index of this device in the KFD. * * @param[in] processor_handle Device which to query diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index 43bffa1d92..cae4a2d1b7 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -2739,6 +2739,7 @@ def amdsmi_get_gpu_accelerator_partition_profile( "profile_type" : profile.profile_type, "num_partitions" : profile.num_partitions, "profile_index" : profile.profile_index, + "memory_caps" : "N/A", "num_resources" : profile.num_resources, "resources" : "N/A" } diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index 8089a2abbf..f7acf2026e 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -776,6 +776,19 @@ amdsmi_card_form_factor_t = ctypes.c_uint32 # enum class struct_amdsmi_pcie_info_t(Structure): pass +class struct_pcie_static_(Structure): + pass + +struct_pcie_static_._pack_ = 1 # source:False +struct_pcie_static_._fields_ = [ + ('max_pcie_width', ctypes.c_uint16), + ('PADDING_0', ctypes.c_ubyte * 2), + ('max_pcie_speed', ctypes.c_uint32), + ('pcie_interface_version', ctypes.c_uint32), + ('slot_type', amdsmi_card_form_factor_t), + ('reserved', ctypes.c_uint64 * 10), +] + class struct_pcie_metric_(Structure): pass @@ -794,19 +807,6 @@ struct_pcie_metric_._fields_ = [ ('reserved', ctypes.c_uint64 * 13), ] -class struct_pcie_static_(Structure): - pass - -struct_pcie_static_._pack_ = 1 # source:False -struct_pcie_static_._fields_ = [ - ('max_pcie_width', ctypes.c_uint16), - ('PADDING_0', ctypes.c_ubyte * 2), - ('max_pcie_speed', ctypes.c_uint32), - ('pcie_interface_version', ctypes.c_uint32), - ('slot_type', amdsmi_card_form_factor_t), - ('reserved', ctypes.c_uint64 * 10), -] - struct_amdsmi_pcie_info_t._pack_ = 1 # source:False struct_amdsmi_pcie_info_t._fields_ = [ ('pcie_static', struct_pcie_static_), @@ -937,6 +937,28 @@ struct_amdsmi_kfd_info_t._fields_ = [ ] amdsmi_kfd_info_t = struct_amdsmi_kfd_info_t +class union_amdsmi_nps_caps_t(Union): + pass + +class struct_nps_flags_(Structure): + pass + +struct_nps_flags_._pack_ = 1 # source:False +struct_nps_flags_._fields_ = [ + ('nps1_cap', ctypes.c_uint32, 1), + ('nps2_cap', ctypes.c_uint32, 1), + ('nps4_cap', ctypes.c_uint32, 1), + ('nps8_cap', ctypes.c_uint32, 1), + ('reserved', ctypes.c_uint32, 28), +] + +union_amdsmi_nps_caps_t._pack_ = 1 # source:False +union_amdsmi_nps_caps_t._fields_ = [ + ('amdsmi_nps_flags_t', struct_nps_flags_), + ('nps_cap_mask', ctypes.c_uint32), +] + +amdsmi_nps_caps_t = union_amdsmi_nps_caps_t class struct_amdsmi_accelerator_partition_profile_t(Structure): pass @@ -945,8 +967,10 @@ struct_amdsmi_accelerator_partition_profile_t._fields_ = [ ('profile_type', amdsmi_accelerator_partition_type_t), ('num_partitions', ctypes.c_uint32), ('profile_index', ctypes.c_uint32), + ('memory_caps', amdsmi_nps_caps_t), ('num_resources', ctypes.c_uint32), ('resources', ctypes.c_uint32 * 32 * 8), + ('PADDING_0', ctypes.c_ubyte * 4), ('reserved', ctypes.c_uint64 * 6), ] @@ -1076,6 +1100,16 @@ amdsmi_process_handle_t = ctypes.c_uint32 class struct_amdsmi_proc_info_t(Structure): pass +class struct_engine_usage_(Structure): + pass + +struct_engine_usage_._pack_ = 1 # source:False +struct_engine_usage_._fields_ = [ + ('gfx', ctypes.c_uint64), + ('enc', ctypes.c_uint64), + ('reserved', ctypes.c_uint32 * 12), +] + class struct_memory_usage_(Structure): pass @@ -1087,16 +1121,6 @@ struct_memory_usage_._fields_ = [ ('reserved', ctypes.c_uint32 * 10), ] -class struct_engine_usage_(Structure): - pass - -struct_engine_usage_._pack_ = 1 # source:False -struct_engine_usage_._fields_ = [ - ('gfx', ctypes.c_uint64), - ('enc', ctypes.c_uint64), - ('reserved', ctypes.c_uint32 * 12), -] - struct_amdsmi_proc_info_t._pack_ = 1 # source:False struct_amdsmi_proc_info_t._fields_ = [ ('name', ctypes.c_char * 32), @@ -2800,11 +2824,12 @@ __all__ = \ 'amdsmi_link_id_bw_type_t', 'amdsmi_link_metrics_t', 'amdsmi_link_type_t', 'amdsmi_memory_page_status_t', 'amdsmi_memory_partition_type_t', 'amdsmi_memory_type_t', - 'amdsmi_mm_ip_t', 'amdsmi_name_value_t', 'amdsmi_od_vddc_point_t', - 'amdsmi_od_volt_curve_t', 'amdsmi_od_volt_freq_data_t', - 'amdsmi_p2p_capability_t', 'amdsmi_pcie_bandwidth_t', - 'amdsmi_pcie_info_t', 'amdsmi_power_cap_info_t', - 'amdsmi_power_info_t', 'amdsmi_power_profile_preset_masks_t', + 'amdsmi_mm_ip_t', 'amdsmi_name_value_t', 'amdsmi_nps_caps_t', + 'amdsmi_od_vddc_point_t', 'amdsmi_od_volt_curve_t', + 'amdsmi_od_volt_freq_data_t', 'amdsmi_p2p_capability_t', + 'amdsmi_pcie_bandwidth_t', 'amdsmi_pcie_info_t', + 'amdsmi_power_cap_info_t', 'amdsmi_power_info_t', + 'amdsmi_power_profile_preset_masks_t', 'amdsmi_power_profile_status_t', 'amdsmi_power_type_t', 'amdsmi_proc_info_t', 'amdsmi_process_handle_t', 'amdsmi_process_info_t', 'amdsmi_processor_handle', @@ -2876,7 +2901,7 @@ __all__ = \ 'struct_amdsmi_vram_info_t', 'struct_amdsmi_vram_usage_t', 'struct_amdsmi_xgmi_info_t', 'struct_cache_', 'struct_engine_usage_', 'struct_fw_info_list_', - 'struct_memory_usage_', 'struct_pcie_metric_', - 'struct_pcie_static_', 'struct_amdsmi_bdf_t', - 'uint32_t', 'uint64_t', 'uint8_t', - 'union_amdsmi_bdf_t'] + 'struct_memory_usage_', 'struct_nps_flags_', + 'struct_pcie_metric_', 'struct_pcie_static_', + 'struct_amdsmi_bdf_t','uint32_t', 'uint64_t', 'uint8_t', + 'union_amdsmi_bdf_t', 'union_amdsmi_nps_caps_t'] diff --git a/tests/amd_smi_test/functional/sys_info_read.cc b/tests/amd_smi_test/functional/sys_info_read.cc index 7c9b7fd6b7..35d40e0818 100644 --- a/tests/amd_smi_test/functional/sys_info_read.cc +++ b/tests/amd_smi_test/functional/sys_info_read.cc @@ -202,7 +202,7 @@ void TestSysInfoRead::Run(void) { } // Verify api support checking functionality is working err = amdsmi_get_gpu_kfd_info(processor_handles_[i], nullptr); - ASSERT_EQ(err, AMDSMI_STATUS_NOT_SUPPORTED); + ASSERT_EQ(err, AMDSMI_STATUS_INVAL); err = amdsmi_get_lib_version(&ver); CHK_ERR_ASRT(err) diff --git a/tools/generator.py b/tools/generator.py index 6014746094..dd32cc03dc 100644 --- a/tools/generator.py +++ b/tools/generator.py @@ -190,6 +190,13 @@ except OSError as error: struct_amdsmi_bdf_t_line = "'struct_amdsmi_bdf_t'," replace_line(output_file, struct_anon_all_line, struct_amdsmi_bdf_t_line) + struct_anon_all_line = ", 'struct_struct" + replace_line(output_file, struct_anon_all_line, ",") + + struct_anon_all_line = "(anonymous at " + struct_amdsmi_bdf_t_line = "'struct_amdsmi_bdf_t'," + replace_line(output_file, struct_anon_all_line, struct_amdsmi_bdf_t_line) + struct_anon_all_line_to_remove = f"amdsmi.h:{line_number}:3)', " replace_line(output_file, struct_anon_all_line_to_remove, "") From 09c95744547c01ed0121c6337a7f98a747017fb7 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Fri, 20 Sep 2024 15:55:32 -0500 Subject: [PATCH 32/32] [SWDEV-469278] - Lowered PyYAML dependency Signed-off-by: Maisam Arif Change-Id: Icfee09b84cf1071ec82b65fc2877be69e0283489 --- CHANGELOG.md | 2 ++ DEBIAN/postinst.in | 11 +++++------ RPM/post.in | 10 +++++----- amdsmi_cli/amdsmi_logger.py | 19 +++++++++++++++++-- py-interface/pyproject.toml.in | 2 +- py-interface/setup.cfg.in | 2 +- 6 files changed, 31 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9b898cf90..f09568d169 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -305,6 +305,8 @@ GPU: 1 ### Resolved issues +- **Improved Offline install process & lowered dependency for PyYAML**. + - **Fixed CPX not showing total number of logical GPUs**. - Updates were made to `amdsmi_init()` and `amdsmi_get_gpu_bdf_id(..)`. In order to display all logical devices, we needed a way to provide order to GPU's enumerated. This was done by adding a partition_id within the BDF optional pci_id bits. - Due to driver changes in KFD, some devices may report bits [31:28] or [2:0]. With the newly added `amdsmi_get_gpu_bdf_id(..)`, we provided this fallback to properly retreive partition ID. We diff --git a/DEBIAN/postinst.in b/DEBIAN/postinst.in index 45443b55a1..8312a77830 100755 --- a/DEBIAN/postinst.in +++ b/DEBIAN/postinst.in @@ -149,7 +149,7 @@ do_install_amdsmi_python_lib() { return fi - # upgrade pip if it's an ancient version + # upgrade pip if it's an ancient version, typically should not execute # otherwise the amdsmi install will fail local pip_version pip_version=$(python3 -m pip --version | grep -Eo '^[^\ ]+ ([0-9]+)' | grep -Eo '[0-9]+$') @@ -159,10 +159,9 @@ do_install_amdsmi_python_lib() { fi unset pip_version - # Check PyYAML dependency - local pyyaml_version - pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') - if [[ "$pyyaml_version" -lt 5 ]]; then + # Check PyYAML dependency, typically should not execute + pyyaml_version=$(python3 -m pip show pyyaml | grep -Po '(?<=Version: )[0-9]') + if [[ "$pyyaml_version" -lt 3 ]]; then echo "Detected ancient pyyaml version ($pyyaml_version)... Upgrading..." python3 -m pip install 'PyYAML>=5.1' --quiet --disable-pip-version-check --ignore-installed fi @@ -170,7 +169,7 @@ do_install_amdsmi_python_lib() { # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ - python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check + python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation export PIP_ROOT_USER_ACTION="$PREVIOUS_PIP_ROOT_USER_ACTION" export PIP_BREAK_SYSTEM_PACKAGES="$PREVIOUS_PIP_BREAK_SYSTEM_PACKAGES" diff --git a/RPM/post.in b/RPM/post.in index e33e9c0de7..fd182ef414 100755 --- a/RPM/post.in +++ b/RPM/post.in @@ -149,7 +149,7 @@ do_install_amdsmi_python_lib() { fi # upgrade pip if it's an ancient version - # otherwise the amdsmi install will fail + # otherwise amdsmi install will fail local pip_version pip_version=$(python3 -m pip --version | grep -Eo '^[^\ ]+ ([0-9]+)' | grep -Eo '[0-9]+$') if [[ "$pip_version" -lt 19 ]]; then @@ -158,10 +158,10 @@ do_install_amdsmi_python_lib() { fi unset pip_version - # Check PyYAML dependency + # Check PyYAML dependency, typically should not execute local pyyaml_version - pyyaml_version=$(pip show pyyaml | grep -Po '(?<=Version: )[0-9]') - if [[ "$pyyaml_version" -lt 5 ]]; then + pyyaml_version=$(python3 -m pip show pyyaml | grep -Po '(?<=Version: )[0-9]') + if [[ "$pyyaml_version" -lt 3 ]]; then echo "Detected ancient pyyaml version ($pyyaml_version)... Upgrading..." python3 -m pip install 'PyYAML>=5.1' --quiet --disable-pip-version-check --ignore-installed fi @@ -169,7 +169,7 @@ do_install_amdsmi_python_lib() { # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ - python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check + python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check --no-build-isolation export PIP_ROOT_USER_ACTION="$PREVIOUS_PIP_ROOT_USER_ACTION" export PIP_BREAK_SYSTEM_PACKAGES="$PREVIOUS_PIP_BREAK_SYSTEM_PACKAGES" diff --git a/amdsmi_cli/amdsmi_logger.py b/amdsmi_cli/amdsmi_logger.py index a3122124a6..8234f99eac 100644 --- a/amdsmi_cli/amdsmi_logger.py +++ b/amdsmi_cli/amdsmi_logger.py @@ -27,10 +27,19 @@ import time from typing import Dict from enum import Enum import yaml +import inspect from amdsmi_helpers import AMDSMIHelpers import amdsmi_cli_exceptions +### Custom YAML Functions +# Dumper class to preserve order of yaml.dump +class CustomDumper(yaml.Dumper): + def represent_dict_preserve_order(self, data): + return self.represent_dict(data.items()) +def has_sort_keys_option(): # to check if sort_keys is available + return 'sort_keys' in inspect.signature(yaml.dump).parameters + class AMDSMILogger(): def __init__(self, format='human_readable', destination='stdout') -> None: self.output = {} @@ -202,8 +211,14 @@ class AMDSMILogger(): capitalized_json["AMDSMI_SPACING_REMOVAL"] = tabbed_dictionary json_string = json.dumps(capitalized_json, indent=4) - yaml_data = yaml.safe_load(json_string) - yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) + + if has_sort_keys_option(): + yaml_data = yaml.safe_load(json_string) + yaml_output = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True) + else: + CustomDumper.add_representer(dict, CustomDumper.represent_dict_preserve_order) + yaml_data = yaml.safe_load(json_string) + yaml_output = yaml.dump(yaml_data, Dumper=CustomDumper, allow_unicode=True, default_flow_style=False) # Remove a key line if it is a spacer yaml_output = yaml_output.replace("AMDSMI_SPACING_REMOVAL:\n", "") diff --git a/py-interface/pyproject.toml.in b/py-interface/pyproject.toml.in index 149fc21a1b..e4d451aa82 100644 --- a/py-interface/pyproject.toml.in +++ b/py-interface/pyproject.toml.in @@ -16,7 +16,7 @@ readme = {file = "amdsmi/README.md", content-type = "text/markdown"} description = "AMDSMI Python LIB - AMD GPU Monitoring Library" requires-python = ">=3.6" dependencies = [ - "PyYAML >= 5.0", + "PyYAML >= 3.12", ] [project.urls] diff --git a/py-interface/setup.cfg.in b/py-interface/setup.cfg.in index 3e8b8c8732..ba56f2ac05 100644 --- a/py-interface/setup.cfg.in +++ b/py-interface/setup.cfg.in @@ -18,7 +18,7 @@ include_package_data = True packages = find: python_requires = >=3.6 install_requires= - PyYAML >= 5.0 + PyYAML >= 3.12 [options.package_data] * = *.so

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 z zTgI1hw!>F3mQl|W zT2f%G@zQ$82;qFlJlb=GhgvrCnJYsTe5RaH)l$4t%0YafLbKygQ+fx-VWj+}pYx5D z1*PYK^u3>6f)4N-8hNOa@*t5&ANvOM=RvyLOJ7MxWambwC80hLfLZa2^!dE>8J27% z&`ju%2GUV)J4RCg&uxdX|Jsiw|0x#)7-JvVT#!dP$71j2-LwtLBx?)ivcb+%>o~Po zJecMtgX+qHJo+!Jzs$j~G+sP-pJ8zgZDlchFf4!3CN6GWQjizulD;h-Jb6F;ZZb(q zQ#Kb^IB7{66p3U~9z6|YGI^lgAdk0&?MPLS!ii6Zk-|<613(|FoWuzl zu-LHJO*_pa4QN>eL~y&NX+VP32B1A4`*wJfL+op$|27x!oIHLfmtV#~LFstjt zPHsO6;dbcX<+iZD!VPUPV|(Dw3V*pU=6UW;h(xBLYtmTLU@YfPaB>ixR{_yljs*&W z`d0#R@JOq<_xm~a-+)iIA3)3i0{G@N?*7op(b+H`DPgCZ4jXkw4J(J2w?h~3z?f#g zcE6g1m})r!mJFqa_yTv0mc#3%q&2ocDbf9eFTi}zz65bt8F7T}<`VQlfB*^)y^3vg zoDHo@*>Y3pMK*;4wz-6F4Q(>$@}SM)44eXb>MU~{4M`@$<`1wmzrjmyG9ky(#v@SU zGWvKXyI@JD4o6RweqQt;&EIV5B!2~`^FfwK{H;Ocql$ko`YcAwsa zrwj7ob-$M`_%#T}&};lW6cFV^mmdZ!!;-|$>F8WbwRFC)J$m9({Dk1CpQsr z^5Q@G*>pB#C`Yv3Hz5*4v213r(%WjC;Gw^S_SC9!e4yOyls9^4%`^xrF-@AP#D=Ab zODnK+wquY9&V^mr|AP8If+2kq_yB z`x&6Kphe1~N2XtmnLB}5b&qD3d*s<3x*lc|5(~L3Zm%YrJ@jlgP@JpBb8>Kdyp>*VXwVYg#boF(50mLOJF>CWgC2Voij|;E^&D*MUcmQ#km2kdW z&oY{WwcHVDno-Is%-y!itZmh_!U!~!6?AAe%dY3m8N_PGY4mDIxs%7;eDTzIlIP3bf!y#{#z zNVr=tM(|~U*Bi=Tjgj6I$#n5Qq2LT1?lXjg3L4ts$tU;~IoucQ5(7U$^7fFkAUmvs z9cXgH#AuN-p%^h3gkbdgHj~m}NY*J8f=YXf4k>?3&H|kLkn)jHnlK6m5O*k1gZw$F z%`55~+6OxkT$-3HL<~F&VLevO}(v)5VVA4F5(CHd`jR*cA%S7Ai1RBNxx!-#zOK8(nhs_bh|(i&1>yYiNW&1(5J-HFVi^OdeONvJjnwxes-^ zVmN{HqJ0dRQd%ctd74@mhZ2{G2Tg7&K&DzCN@HboVw~j9b zHNclpI(F*@R+m)|sc}GyaRKO6?3xjfO;fDGZT}eriJ9u_#*M4Nx*+*)CKuEO}V<14Pfld+u zz!?%PgJ-6Om2P8FPIR(~v7oNqk%i(|PPy3LyBlRkLV$V6R~?mR6y^`pM{Wa}trSSr zS~Z(gHL6Q_lI_S^H?@qD#*?h=Q$Xfdt&`IzcMHIoNG0z`-7y&wClbgsk}go`dMt;B z*a7Fd6xpg&txJJQ4ABfCK*>%X6Fchb4)Hn~$_1qMP<0<&gY4kyQ}%-f#~HRv2)X*) zegWI@%LPoEh+0U?5fmELg1C>bQo4nf<~S#%k?NT8(7G#$E>lWr0mw6XJT#DGt%3#s za2WvCwS(;dr3Im$+S&w5DHrmAr|flRc^a*l1gaPQ(kFgoYGs*9?w zZk&ZZh_MX%?a+)pN`!7&{PZ{EyUmu>!Pey)?+5)3^ZjaV=-A9!|xoPSho3ra+J2h_d?U0mL!CKxd(%)(#(w^2R6$ zebG!}f&x;YF3@ddp{Xya0C<@+jEcYu7Lpz80+^Ew#@uuv38R$0QiwC<ccx3sX>`{HSVs3@D*tPekY`K@&y$L@Gt-rzK)$(+maicbwSr_8=t687QjqOjxqVtOC`e-9PdM{TTL9l} zF3Z26(xfz-!Ki;8JGkiASp58Xkd4ID<}*P}+N2fj#>lBGvQL%ItIa*C+^u}U!?$Cw z$wvnZL8_Ug&mnM+c02v55YTgt{Vo6i8> zuo_77ndmPY*Fp35uf{%T0IjvQaTA6m4Bv<0q%u1L4T)w8C(l(`6QSK}rvR=v>~Rop z&~{9g1W52;LOad2qIH1-h6@G=*gnh*gu0Pf1IGSWGFD$%pwH`J3_=9`Q6fk*FTHpp zDqLP#>i`9Y_S}ijjpOjy#lBx*&tDYdv*-?dPDeucY&JBA8t^a0e za;3>$Iw1!n@EWuB1t7F0ms76elr;iZ3wZ|0%udOqJO-Hxw7dCDnPgmRie?b^hNEWj zV7SIjdvC%9f?XyX(@pJ~X;gYn0F|T7C1}-Vx(5ZzbPWwnRs>z|yi@+`Fo>%aB;5-JrnfEZ#((s5w!SKU;AH^hqzn@LHEL3;)?LAsf+HCmH&AJI%Jp9A1YW59 z1KROpRt0cDfb>O%Q`xG(9%k&PkT=+pz>mi+3E+CbrPMJ?0x9GWt_O(0Z$od`x*TW4 zKplLwO;AH;5c5zsd%gzG)@QziXW*0=m;v~dD+dsOQ=dN!FL8S&#I+romtV4c<2do) zA@N|#a+pGuZqYUXX32mpEFKI*HbIm>EfV8v)!@^R%@GlQ_+RNDkP3pCHh>Oc&q4R@ zV4cjmZV&6yJ*+eLuuk5Co!PqqvOzrx&6n;`s8PCIp@KB0s!Ga%kQnsg(tHTvh2DEd zzWLroBj1Kz8?NcG?-sNx3PzGrdUN5s zoRxC7w5;WFqg2syd99S&a(SZ|d{{`fhl8))2N2A$R-Ra%hy+g6N2}L9g1@ErrjhUb z-kG?lZ!Ec8p4RfXVSzlUJejp+BknUGOJOL2B)oD7R#8!(>QILyb;4xh4i+RMS{>EVt2VbFO zk_CuoIs6G#RbucbFw3m$ ztZ@CZ_az7pG669k`d19%>cE(BQn|6oa>i&9VYHxJ(&W@vv5$djbU+J|RFZzw16a2h z_$?21@vxk^^Jx$cY7ip{dv-GM!))iRJhl~j{e8d*+WJ^wL=0RHWn-KF6%)T%g*0E> zw>a)@#CC>)*kpGoh+@G_?{zTK1E!`KolMeUCD93Oi{q^fu#>@Iq@Gd7s<#L#B55N$ z028u82*mm)CP7NWnWPPsi(8<`CM)VnxVwe>87(RFI7-_GY9zqql_bpt@ zkF67*8e#+f5iSzP9uc>{#^S#%{%8TJTCqo^A1JZ!NpqFh_r>4~kT$@oZ_&{fa8c)> z#Ax8M9uotcf>{b8k5Pu zM;fa_?*xc_fq`HSk6SBRo(FnZ87|stC&&S8mvT67+o#B3QohbKa&DqTk5;rA!N=?1 zwY4n=5Y=zXc|gQtfL0;U=QEN(j+^9hi7|mjmg|h?={2IB#hQY{riO4*jut3%y%^XV zXXG7Fam;aU*lR%cM2PFTYsTEdB*LQr*~S3)nvUSx$eFFdcNjh6JcK(8y{HSqpjnWi z@5Pck`GH8jl&km5Km=4C@%6>=D38qZ94Io2;}~gt4m7D#qd-#~?{1y6nRj%oA2)bL zImHdWKiaqiGwcA0c%Q`N6x%t4jWyS79zzaO6efWOnH;*BG)QM=yKI`tkPgWg_31=o zLM0g9YQkjcCc+y2-2HBkkM@8Kp+x2@m+b2Ej6h=K{VgUV>&@2erO^W+*Tuq)$^>F4 z_gH3i4`bAaaNn7{)ncD7c{RqnggrY9^PSO!cdvnXlhf&VOYSdZM0he5oy!E)j%x%~ zH0|z|Vopj$*spb1y&~lR@)Gp;N@Np;#cro`+pn;iLp8vnB_?tQ|>~Hdp-Vqy6$Ucm1#@`AqPeiLm@1bZumNxSpb7t z|KjEGK97IC4o7d+OHdA=$l~<=mevHrTfRm1jF~p}nY0joxc#P(s~=?Svk<6sSJID* z5>i&4YiE&CzP9JtQ9P>q=~w;OIhdQPmG?yR6sEmtKz3{d+zCwH0I=GG;t_s3g3^;%W(-aNCTnY*t1W5E6Qt^$ikr+lk%}p}l`clhp+x zsg5_)+umG3-;ZiqSNo2Mg-&kL4Nh(`{JjK!U%_7-{_eWb$*qGl{{xN7(JFleWTy?S zuaN5(39B?=MERZmd{B%ZGocaT=oACE^S2ANTeWBhJVUKGpG4<(IC)MHv<_!#hPp}U za29YK&N&$!&g&pp+~Hh+`-mh9^KFY@4o9Tv*cyBDTVfyssm*l)%SMBZ6o;1cA>N_7 zdJZzc;ms*zxYO0m_;Cf|L!+q)o6SqAyF+HCY^w$(6%oo0?O+()I0hqSmB6*EDriZf zq^v6Dk~obszUw&DbV>tbv=sAiem-g<>`Qs1n+s}NzDry^L;yWO@+y~xrJ6P)aKOF0 z1v#@u%W>*USS3X6CLOp>^vR6KCnnLJP%*!ZE&%NacLZxd@keI`D{`& ztHF6AQcVppL-HA>FFgPDl@WV~SsQD%KNDlG&;|B-{s?;o53|=xVfOkjWX)eZ#Tc5n z_)s<9$!aoyWK7tjAymM~-Em#3>SRbw;<<1qLl#LFL@<15Im>ayha+dSoCnY~gCP#X z=hnSf%rLluKZRD`2E);aC1^QIy4h-J6%KH99JxFGDRQ^IURs2mMsLhb?9J3^-H<&S zv)A?hF1g?VoeSnC|K=I!PH94!a_Od~uR>LyE0@M?%=Tw3hd$@uJU<>gKeYmxKD*X& zWNLVJL4Ug;n>hRTqcw*7}*o{I~_V zDvK=TjmK@~V*0C30Pm${QYq-+=P>LN2AupFF*p%LRJA3vjH;eESz*RqgX#;)(6H1H zx|<8}E69>3t)Yr1Evl;zINlWtc1c$99u3^eaZsrt7~bsMx|q0Px3j(8{6>6JWoFVDOeD($ zzu|r@2ji8)0;x9B>u+V-;P&NaX?&yJBd5s`dZQjqs$*)E`C62I`tj8$DIc>v9a1Gg z>kiE4xIf_F*ga-3a6fz`iako-fu!C%ExFw0vkl;?=p3vnRvXmh>+Puz0NHMs;ng=A zLQmozgF}xrf@mOpxM1}L>1-HT(T75C`Iqg4xl*wt+%f-$%WA)-tVBsGbes^Wd3Kjs z`Ugvke4{i=qQE(}QPiMB%RgG;0lh@Oxp5QD$fwcVmWAMeBrBx>7)7I8?&s-bKCwyQ zrFYnHt$#b@oiQ&fdexcK}Y&49J;k#MN{!bYYQn1B&rgy2P1C^RTKu zEoUXl8G398?W$V(Gl*^XTNF>JPBuo()uU+E&2t$T;Z3?{L2CUI1>4YYbjl*+3xppNmF_EQr8%0WEH&pVN3{mXsI1{(?ye{8E5>Xo1qbAG zFGcB98@6!zK*NtQI;3XWJ#V|OwbM|S-DsnD;1*SXybefWz+}3e_guMe45n8|ywojLM(i#1p zKbNNC-Uo>}hGdaOfDSr2Gh2&}*7!4MEvGY&eY!l4b%u{h`FcmllYDfT?VFI1T)=VB zOm$&2%||~P8nca-WQV`Sa1b)++(h3eG_R1}G-V+tPjJ&&I+cQ6F^*RJ6?b@UAMuug zRs&sebajkP+cwQ{e8bKD?&Y>qgI_sZ=BZ()JcAAmCh_s%KdKC(mSwetd*4Be{x{WT z@|7wJjzQUI8>nP*LK*Jf_-Ima-K%tn$|rrQjQi1!)O8TK@eUA4OAs-jKopx*x9id@ z*}?{FVO@{oFVZ+j_Iar398>Kae~};Z`h}zrTa8N58HikBFKvMs$>ya$nZa}+G1$cR zg)C@UxV2;xdR@2{543Iu3{a!1ZHMex3{EoXFr=M63vFy?dIS#`l4hJjBfV*B#4p29 zA>nwsV~w~KVzw@};3FR&^YP)thZ`TO@UbrRI&EuSDz5=`Z~n*9N*6(;j8ejNEjhn7V1skSumq3>F2Tw^Zqsvlw2ow!lm^8;o zb^pcxz^(q92mhjULcx6)4H)-fbRUc>S!OXFDLiq%pR1u;SXnp}33Px4@{tBs4L|}+ zEo;QNkxo|+v$tmBW*kSjQkZbVQby@Cd>L)w_Js1UJkrCB?7;QVZ$S}BM~qxs*aM2Y z>goqPJ-=8^juhd!9QX6Tc(CxKG^6HuTUh)zOs%8pvI}Z;A9FW{sAZ5Rwqno~hafLy z)0G-qTuX&2QI4+YYNyXZ)GqXM159++3pNYb&iNb{rBr*Jd1F3xfuZc5Sj#*>fIbC! zj9K4S(!rcVVZedf+oj2E+@0;x1b<3{z1b{2i9749rpgY}ot328N+OP35EVUd(357i%YwZcWW(zG zdmcD`o^88>e#81*Ic%xBD#6duZCA&0BW`cV+8-}s2H#bN-L98s!F-VQYkcPH#^2ao#5nhMt@T!Gj!&6CiG>JlIg59GJY+tF~u- zp&-4C#_0xL%V`AMU&nm7a52OtwAMf>GQQK%+0@?_`~pBbf*6q>2unAIp8xVP(%%tr zuhDU27+ z#$@A((1ZEP(BzHgmL=Ix%gL5Q`B721Jb7a_M&v`pXZfv`sIi0N${fd=4&mAz8uv5K zpm7gE*@;5=Xdg_5&t{-av6Fe_EnX*0Q?{<OTO7qemUPP@Mfz-u~gh4|#09`w}5J>Tu zX!J)!?tu#S4~*y=AaFb|JScIb_rP?RcB}xXZ+KXq-kFM@*l$|SCMc-5E-tweq9t0Q z3}2DQj|GtcBzjI6j-#tzA93=diP6KDHw_GEw$#}%D(v#V=}zEdz6UU^4yet7V_43H z*?b?`FX7(j@l*$%BCzj&b~5@`{TOQot0X+X6c2nheY#DfS8$VJodI3mdfE4C+~(TX z2@JfM^&Hr`cpk(>fdCm_V3ZBdnINx)%Ja|~I|UVuzg#8WM#H$22I-u-FmX@EK?Um6a`^2A+g*(_G!42`kOrJQUE>OF99y z&T_PrIQnhSF8wC8+#D*mgw$U^IS;NOx0bC@=a)I1_sAE?Mfx7@_wEByXjx*M#ycI6 z4Fgd27ThpcfEyp>(_bCN1`2}nZut@^=jnJfCCkmKM~E8L^+G~q>5}SklvL5(_97f( zF}Qq~tssu9Ur%|5F@d#l6*57`=a5?6t5_>wZ4^WemU8!xq>batb%h}s5`&ubeRM>u30 zscbCOdBja0?n7m@zR^QUkt?+K1}fL3h{4ZrlPeWD(;x=_j6T*`RO(N%Upc?)JhYFL z3%k16+q|o%0JRp-bd^|Yvtm*F*)f12# znn7aaqJ(K}-I0rFpJF+UoehS8w8Yt@3>>7_9s_u7ULzbWX*A|yE6ObT~7CfR6z5bx|k(2W#-KphFFI{*_Ux&(VT>a5l&uW2rR)cH=qXCV5j{b0T zq2T{p)$#wK>h_b#s(1XqRjuU&Af6o(NYtz4V7;UddUUE*WSIk9_K3b=Fapqu03G%1 zBWO(ov~m&B!92uIC|Q^SdU_%~8|vSVdUzHqp!W~JNHDlB;NU*-sis|nK9B*A=)*99 zsOqd-xue&~;o8p@E3}|M?@TfcTcn*7S5&YPFoFu{)RYnre!sduct;d#!B%YT5zucqX6uQ*T9utB>)9 zg?@OP@kV{SUuZmnJuiHcSjrXyr~#460(4~nLI5d zI;)2&^w3c~RHcUw=%JORIFuOiYm9*I>b{VileaX2w3y->qX%pHr01hs>6kwE>7(@T z7xXyh*sx_S4YKtL;!{c^Ep_AKQX2iq5ZVbz zix~G1(Ji@}(&yfQlIw&}xq<0m8%5%x`spQcAHO^*t93%8SrE`D0D;H$+uiivCnT1* z$G5oze@d$>)>?O|!*vtY?QOI#V05TrqbDQ$E9MSAkFIS`IL}LFx~e_tIG=^9MuJ5@i~!_3-HBTwm1eX$e7bii z9ynVVsxqkAWNB_;>~6=9x|H8C&4;JnXo-II1kAf=wQ?jMYQ?RV$4Ipq9Wth(L&iiB zQMzZ4lab51>-95NoyO+#C96NhVO)nFF=9RST^`bRtMpU&tk}>fXFD zS)IK(E~O{>DJmq#v|&YkvX5)P-V|`JgZa%k@~*U^Fi6MsK}DO?^aVUbWg|4xZ=~-# z*%p{V3@p$ix}18C0QYSlkETOlDjJ+aXoQG?GMs4EfdKoX6|@e|>-j*zKDwhgd3`~a zey05G57>GpyD{aUeGZ-j=Q>hLuPZ}q+Nw*C>l&9sIgLXpD2A4flprQu<9Fy~07qnV zoD*;?*--4I@1w)~7Y<{G-}vf+xn*4A15ileks3Gk-oe)Lponp{0UeEMy@+UvZJ^N& za2_9Bcl$M{-k`$}S6o~0r|r;D0CexQKzyP-mV5)(I2TIt(c*>rNx|Fv{Rt13Gma0W z0%b^(X81YADGRP(dD`uC4j^6Y)^7J`InUzcgiE5()%Al?;w;(3&|(Y3I$3O8B38OJGL!<1 zdzQZQHN@;fB-jzquW@%)>EONeHI~3oatXD#hMQOg_WF5HQ9HX4Loa)Vykcl0xF z&|2sOZEh0As7}-|LPEUPlJC!&;Rh26~eTW>Y`-Z;=ZiiHr z7>|hi%B&u*xbFuh+bLhDLdXpcY?w-#&7{igxYU$RmJ7zSj-jTEyOi);$Gc6G_4-xC z>E-!{8!dytdCcEsC+-%x@t&d)CzqJ*Pwo+q7L|EX;g^0o>PEJlj+W0d!0RS<3QSLN z>l;Ck;vmj~2%Rx_Lg_XncVNc&#pq5W`cW!_?G)R;VND<7vSkZ@GY2Sb^8s(_IS(VA zk5um51hq|ML~$aTcD2(N9V`K!Sqrf3jioCf+x57TxC>=Qds0q%>8h`F^-y1lA>Nfc zrMxm`&XPAgcDs~K&V1*bS&5j9?>mk*ees>J*?7otWW8Xw%RGrBb|*5R>tVV{9IeF_ zXk{o>Hlu4F;MDsWivU6T0h_Q^sns!=}$162H`f;s5Y$j3)<;gb<65# z8aA>>S*iR7#A4493w zpoGnij;0IHbYrzp?})5V#pD!Z8?6Y-pznXhtc(0cHxfhT`y>7eXJFP-hBCJSyNTr?oSqQHo%o2Z(l)Lnr)eEC8I%rzn4%Ao zc7=*ki9$_MVHFtLZD*6qPRV)7a#o*Y{`(-Jw-X=Hi3hRGJMj_CIEby@iI2qArJGLt zik&g6wS|@DZlH`a5NmgJ%V{tX9Qu={*#*Sf_$@1O=|UdlEnxr2ZP2p?A7O+CzI;)NLap=YQ;D~ zbDfW#qg(pefrT*^9hNdf+ql}JE$gn0PKKT(&1cYSN5Va|2mXRXz|yWpY#ebVu`&_Y z33c&mTbR-_NpXx6vE(We*tPuX;7S(sTN>Bl;68dLDe}$ij3Yk@-wQEHfpqszc7Y#(VNKl*D+^uV8ayv=4 z+_qxo<#wa8$zqfXh|^k{pZe3uQcmeid}Wu;!dF@;=X?&2-j*}f9q%D%JlNn&?9H*Y zNSr_HY`qe}z}6x~FC^x{gWm!(sm)Z9zfr(VD=_W~N@mIFwl1)@ps|<4y63y~|5I=;d~%yk%i&t#qs3;Gq}Kumx+JBbRzT zZrXhFHx#5`CF8sf$vGVAP$Ut-OlT)q-!|uhA)!JGRCcySsKi$Hhav2op zy*;`JC)E~@E$mg($lu5^b0@A&10xAiI?4i9VOZdU0v=BbI=Rxa=5hI^F|> z2wF6Q?OeI7E1FVS*0OM=bP2J&ZXjX+O%Qjy&7n#|OYtn2Zu+8Gwy^CSGy`w%bHz{g z2D_y3ceBbXN_0w!j!l%NULVpm1+Vy0kcWPAU}-hTQ->o4((zH!`cu1kKYM zr=^XyG@3>CB|waj07=WtmAzi{bvPxZb)<0EW0=9xo6Xots9%AwN;@V8 zv;=iOLP3vZ_CO=>nb*@gZ7p+?L2F0vJ_6oPW{XO3%vl1H2NJbgr?_kg}c5HTGQjlK%P|DS8=-@_0Oj zot~31r`zZ8sIGqPUDXwXUb)3h?|Fx5y?7(dOb?j^5XDm>hsM8}W3MTg%yxi!ta7g%@t22zBm4ud9*! zP%KR0R33>j#_{-GU;2sjkAK9QksX~pyf}_p&M~Z0j@#szmU9G! zXrI1Ng73rZjaRv7Ibnoz_1j#1wm!$8oObX&C^?!LyeOxUj!3s9vrlE7*Msk>MOZ<7 z!-`R*1^u8!y7OdmNdiSbJ29|XaIkY6O?gy-)WpdF1fiKH6MkpWDapguL_hoihQD~Q z!oVxt&icA`y~Rfiwk~_>Cg>S`-Wt`BA?`!)fGhq6^0p z{!LLY9t5oJqaW>K?%MX{Rx$VsC}RzASzkpnca0;m;dWqN5o*fxdAxM@@0pcIEhlh5 zZe+{N@JTp*<6YmhXJiPuZgUK6oJT)CjxI^E#xEkV*kPdtsPevER z_ezMtYuy0mWbesyCqFxRCbLWKAG}EV0Llsw6$O^TPmCvu0psXt`llsPSURDj)w>h(cgh?y0yBwcpDyQZe` z2WO&7lPwLMwl7 zA(?8GS$Ul2fs_k0~K!;r9$1)zb0htS+WMlV8 zRtdHvbo?F-dblxHTL<)D(bie%Lfw6_j=?}P)Rg_mx$Vo?EtWTEKgiR5kgNS*F3m{* zf=0N^>+_J$a9+2a!Ua3+Nq_2`m36Zf{J)9*)z!O0~HB{<;xua(S-a~&0`DVYl-k!?5 zX>*XU@9Ixz>wr-28w==hS zS2z0i{wt~gdXL|YnsIJgQZr6PAL=46{WM+gd6@OCC*|=fFo07?2VVQtL+=DR@1dXI zex9ova+^~aapH|fRWP%eYy*|5Y##Aq##O;l_hY@x{A*l4ihY zY>7KzI-OhA=TQ~F5?8lj(R5r_a^^1+e^YG%0rnMMnV89L3&WF(i1?OrX87_PbC?X#DQY6P8?c(wJhV6z5Bq5kHvhP-_<6vHh!PAi7 z3FX~NCaBB$i8rn;i;-phFue^NGRRWoGJlV9dC>-=f6;^FUfyx9Am4@CXD!O*{PmN` z8>ge8B`N&i>6t6{R}81ivjKsblcRZ|d%8zbez70@S|HJciM2ebGZT+MR`8@cZmjNC zALP-bg6I8$>Jb1f+$kATYh6tF$e`Bsi@~SR_eG9DOk{}nF9Mppx8Cu=h7|IFu{x&b zg6xiWA?97j`%*pLFZTo9@dH729Ar2T<*%Paj-LKv@ZFgb;Jd`g%QF$FTccA#_ja@R zS9EMKiQ)SLo|PhyyLr5#kd;X87SyEzbaK>)24-_Vm{^YY6PrcVeIfHnQVY-m?mq$a zQg{mRbSxF*Rc+8It<~aiq!m7}6X&!vi=3QI-eBE&ItrDhPiEh&cPsW+q~}I&U_ch= z)-h1EJcR$i!k>i#4DWQ%%Hpa?t(YGNwMrAj;6@zy6VP{Nk)gspC^2=n>IN)tyX zyHsnFl8U)3dahlJ`39^;2H$wN3@^gFO14(wsfN>Pk4r<;Q6ib+6Ien zY-^)GSC$Hzx=`K1YpGZTskDH~OgfT#x-~V7i3QNOe_#QlGio%3%Y)(OOQikLFyrFD zeB@%Fe^=~5)hVb>UI`2L$o+nv3^AiC@~LQi%-o10nm`79H*m2B4-bTX#;pS(uq^Jl zys@0TQFuJkYYr{8lqpp)O=-P==bu75;_y-}@ct5{r!(G%K{wyoLg51gsaVh5@=>s@ zK}SwS&y&!7X0?h}%Y@K9@FA#Wyt4XVE10{=YyXP$(pFjCc4Rmb2;&KXrRB0QeG|_} z3|R8B!BaEc0%;$6PQa{7Gc-LcKHTAWudoIr+N8*5B6;H)iPlf zP^&Fq0E<6b2B`z>Am;E;xA82f;7>W&S=o5x5)U#krd(RI!Q@|5i_7s1yrV&o%XRs7 zDS!PGu zq=6KffKnulSG4@~c`eNoP>LKMD@8&TJ1WTWXg*7`gzmdWcmx>I5S`?63tQWYhbnH1 ztAe`35C{3T3|F4iyW(oaZL!`G)OW(Y#prJw!o7Kr*`3tz;S&{6D~)1(>t)iYS;w0yidSALP6>ku&|Ow6l z;BkU8D$|&8Ju4m62znp!=sjO0$N|`W3sQt*Pz*3T@E+cAk07rEUSibPd>uKCj1muRE(V%Y z>n_Y**;=8(->@j#Nc9Dn_-AHD=K=TVVB6W0s6)@3JS;*EITJTbsxQpEmrp1PF{no% z|HP}0@lYZ8Clm}~AjH&$BxT+sr~pud0BVhpz^h)T%*^2kP$d#)^X!)9Ois>Zqz7E{ zWx8Vwk;cRh4MS`!4yl%msLq~8I8EZ8Mwsu}8%ame%_3*|oJ zN#tvYx((R6pJay~GpGxLUGfyiG@NIlyFu4t`hc9K%)u!A9{A8*{3ww#A8VL9^6C5d%|I$p9#Z+JdM6}Ah~y^ z9~SlMDByO28LwHC%vczhythLM?OvMsf^N@w*{=6k+n60Vd52xqS^L6>S-ihz3N)+{#cvt=j+cPI?TP|hb=135W zCD19#reaRYX>%`VUDn@P{WadM<4?g`mZJBH2P1C!-UZ!qypx2m&cdU{Y759}#}V<# zmr&J82?d=W;~i(TWUl_}C$Yqhd*vEKBs$e^@aRBb+K+(=@%k3AKQ&a{U*k7~LI_ji z*7jht61nwNMBM>lC1mh(A=X;A7jYy(Y!u<3`*g=4?6@274n3BcgpiPo5&NDJ)?G+k z;`SW8YwiHHpA!RknslU0z+p_G9j^YYs|r4WcjO&FNQ1cjI0UpHmanmL**b5DLE=kN zew&u*Kb!?ZpiE+E-zg;?C1ZAAJ) z5&%*L`g|RURp&xB5I}K3+=)q0S2a*qz7c<-M5iPY!f53stcojSv=Itc!P8M~S#KxL zlrW6&**3nc<#L8>(edlxvYh(RwptP&+YYdip1^TUhsYVdl)^JOD)VquJbH}IC8MKp z7sD4J46JF6c5(ZiEDkFzWG!(3PdtGq)qC++kDJDy&&4{;U;i)Lf@iVb!N3UTai~)47e&%rLfZ&p+P2ZyCPX zz6T9S(jL>kMc6+4%|+Ir%?R?%h9I9-UDC9AY)gsW7HEWF4}KWmVok}`+hFW4Fn-aW z&;nzJ-h$mA_L^Qt*TKeR_>*&?z9{f(D1_w}M%Z1HZW3{O8}aB}f^p9{J`e*xOE4L0 zE@?09aEAg#nECH9uw*vwK|sd`TaQM~`r4CD`4F>mZ0mJ~W_^%>SGp~NIzpHge||yR zgCN@ckz#Z7&QxB)qBuS8)#WP(FpiVgDhC*hbdx`|-p)8ww$k72O>TG5KkUVsD7q-Y zy$5meHhOD=AU5#w$$Zog*7?GieSYSxkraB;gYGKkU(+ak|*A zAcgYS798o*?>-}$;=v`i^2&z>>2)`?7wA`;5aU3_eBK~U9Nl}lIi}y$4BEDP&q&)Q(EIj`ZPR~Xo6b4fN7^)n-aG=p z78vQ?SMK^7bz?+mOg3vwhnudQtzX_j(grF_(3o2hm+o22?KGz+aU>=|4KBQl zy{^Yz*CS1)Z@$8gajF7+`IQm${!RmD?@2W9-)4_oZ=;{D#or;xqfM`jEQ>N_;_~m4 z%c6cz`U!&L{sgu(1c{Pkh!$?(T<-ZQvIPy&0Z@=c~y3ourWj2YZ<7> zn8wR}_;X9p?!vE@l8&*PfFru+$Yo5+w6WLmgWZKb381#&kJsRKrUieF119|5PeHCE z?`N1!U;6!3yO%frK6yJs808S;BI zeCv!T-@4MI71zb^FhDB!J2YG&X)sF1>-zIisM}bL4bTv6r_?B`hWpj0C zQv!wQV^K)|CJN9D>u!UT*E)mtL7C);|HkF20n43)-XVCLJ9}&`SN-CR3!PQRD^%E4 z{O3P&93FSf1u`G~!4~V7Bivrx1OLiCEr1qKvB!hH`HibTbLu~A=+Sce5~s`5QUrpQQ7DlQZE^D*Fsk*E?1I&RWMGX8J z3A0@cyoe-%9woRl#eSA4Ulxc7f91xNPl_%uk1~5*0s4hl!Qeqo;{U|F4K+DmcRvvW zPeH_%a(zEz5Xx`5BUG_SD8-*B-Z+8&2w0mOcC<@*o!qfwpgD|lQ*#d4b&bDvk*}Y$`3U7kQ6F;;Zm`$oi2-)>wmMII>fg~4+ep2OG!cebp87 z>PNI8Fa3?~R#e+t%Z8?3t?NUX$VSJix`eBS3Z+thKHKlRfajXg2Aqjw?8+Ad=a}e6 zF9YaI95=c!pKbR+pF<1YCPkEWDD<{F*)7aF2#Oi#-3Ph1lq#|Ajm6N&WUstB6M7}? z7?S?nnZ|mhll2OoxVffRV)&cE0Qd?t*5jk|f1=-iE603nbo;Nak+%&*=RoI#T+oVK zw+}lDsdlG3p+pZzT^Bf0tj zGqc^5i%zgX7S$1Yq#OOfQG=jAduHU4$DtxwaoZd@>ycTdguChxkt zzcI#Vg6E`1L;NDQpYzbAJJ<;OJc-|dGq9TQ01XnDhmB86CwC9+x~x-qRJIKub1>wA zyz{PV3I57hS>mTFnP#}y0i!q_iP{20ZN|pXN2lpODwqo_cwR+97()>-YB~LEj~7zY zy!6T6u+z|?M=p#E|Fb{+JH!8zpW^Tru;Ks4*iU5s5P5%Z?7fNepWAS*-oVp|zrl-M z1e(p>W@=(@3myJ%d|T-Nd*{+G@O?Y|lm+wYU)Z~VzQ^8k>2da+M?2YjK7F0N7tnp| zokxGe-o^Ca*}H`P^1l&7r?$aKpJq`NbUS-j(Exidp_|#;O(phzfUafl<#aWBucRy4 zdlh|vy;svE?A=H!*n2H4VefTx0eeey9(!-11?;_<<|RTaE_l;bZ{VL zIGIMxrzTC4m|ty^rs-|sCutH83;yaSnuJ7~V8Trf9hzVzfC=Hewe~(U%%E8BYwqoR z_jPc&&)MI#KWFc?_Fj7}q4ziVh;rt_U&$j*%ED*l@lkyIkUXNL1K|XDMBy%>fjmBo zkNe0Y+W!__CXagwW&Im0d*-SDg@)`LK3E?_G&8_FQ285je^#jvS|s_bCq5fg`Z?x_ z($#tN8I;LZK2@y`S|+8ro93d`2Q8O;rcs}8eb7qDXB72`&iCHpgG_!v?4gA`puLu6(6h|J}w3LgKFo+31R)^nTM`uaw+8 zo{*=?+6d3b{OP#ytaAPm4rNcjsvA)oIzJVNLB$g8GEkq|+6bY0FA`U1?eCK3jeuJ} z*b0*PHT>{MXCYH34@C`xhh&3ow^8h)zYN)_%6sMMujdMow5mvTPFXKM9l$>SM9_9D$23PkRFsMjQ@muH;s zRkg&A=9Sk*K$UqyuWEq&w3(6QT;9G31^FfkU;T2R9kzR~UeQKBK7ikmUk2cp?!zy} z+vww<(a#Xc@YICHfrcI@xcv%fxW@IW6Ot)#RnH+JvN?~JC&;*2(5TZBEHZ9dXd64R zLC_{7$+>ahIWobb;Iz&LrSp(7w2ga@7h~%icTA{1)9S33HTE1L5@!*0a_B3_=1b@x zNOYm+5E7E?3k5s`VE!k;w+ZwABjo?KvqA2u_2Pp%F_8U2#eJ13zJWiZXwvt?7t^cR zjud6p6=Ionvez=}nCvX)mm2368h!t&)tqY8>fH93<9#MgM>n*~ou4V3S5)@fF25*7 zJ=V6a(7`kxSP;b!GE&>mIF-1<_)P!mDMhg z)uqZI-`WLoXOqI&OmaWr%N@q0FD{8Cb2iDH&2o(O(f|%L4h&qxuvvzowf=dW2j>Vt zJ-`8g*8uhcJPWXUCt893X`3tM;Wlsua0PHX!0iCH6WmU4yTI)Nw-?-AaQndRb1RX* zVHBN;Ua2r%#7g%8sCF5c$XzIh4DEQdaR*}P|4eHy`QUfy-y+Z)-nee|&OSWamO3G7 zpcBHrzx-k!lvQD#TXfuX;ZB;t*g+XQLo;w56Zu1) z6=tDa8@Q1d86ZdfD?<8dUB(Np%vR5M;piUUcHWsibUW_?(ctCX@giDQjTiXLR$3+Xx4r$0gsSawXwTLYQ-*TGgBsfkB>;@S=1lg+mZ{;f&2Eshk!i zc7a*QIDpsA@r~~kQV$TVR=q%O&8!jG8H9@%=Qj1G+thATN4iaB z7C!{9;BI4=j2l*E(xSdqPyC)oX}&RLL2-bd#7#rhJbmyGxo0;G9Ay^1*iQq2J?JCh z;vB4|a8mNu`tc7C!SBX7B?9pJ#>p*{oLA&q)y^vlE_@G~#q`V|jw_73Ob}juCh$OX z?la!AS1K-S#;@Z2XUOg3Ts&F+)O)hbJ`;Gd-1oHaWI4mDYBzWWm&As7Al;58zp3aeVAx4QQ5`_ufSstjRIUNJsJD2uu;J&-A1KL zG7{#qR6#66@rFK|nVJKlrZdox#;>cqZ^U@UfGrIhLrqzXW*CF(jW%Lw15ImO!+3>F zA(YgKBAuV%o698P^ShrQmV||@n;9n8dntXey#HO~DneRc>=EJS8Y1tn<;^pe^5&?e zXd4#|7+fXpkCzxyqO_T2TYurRPYk}hV0NcODe2vMh&2Q6F5s;Nkxg)JiJB?0!Fo1o z=7!tdvp4YS-@6t?sqxyvmftHGZY;gGkn($#u#k}+P#3jlKcX#NmX|Ir#MbBY9J)G+s0-2K(;YqY7%0$Rd@IMg`zPIB>OU!!Kfa=x<_ zC*PpD$qPKqj_+>gf}N%axhKf+T{NcvPu>^~6XiqqN&BbO^T|V$=HYl5u@iEejVPP|b4yk`nLpm{J)sIyngje_Xh2og&JKJMC6M7mHP#$|{-El{|#c^dE_-|A=+jY){qk2<# z#W+A(6>sdb-@+;N$2LrXS0ynij!+^J=e>o3K~LB|2N>?69gz)Z5_LI1FkT9nbY`m@b@nQWU$55i+V!hlQr<6FnO6 zk=vN%FqtWuh{y^W_LIBf(4STGo~+y6iY`6lJ~AT*TDg%oa@ z00T~D7GC~dy4-Xk@b?4oD_g>b=2sqldI)}H?=J{#{KC_eUzvgK0q|=BP(6Kv{0ip& z_xTlq!;t)nlm`#aCV+B)LVz^@%K^*)X;1%9{0bJvi&*Jb01g10c>2GCUx|6v$FH@4AJrDOrcyoYcE{Xm^{J8;)e#tnD&%elyILyC+Y z1Ej?+luwfJy@E?g4X&|~Swf|f9x7Bl+L+|;mBzMG948PsIvvj z<9PoJ$Rt9sQOyrXWtBbdClqk&c`m5Ty*{ zB}O2Ha9q+h#mr2q zbm)(8+8^tjiI`ZMkD#4(#9O^B&7vCI&S&|#^pAWh?tiQ~Tj?dMy+PF!mJsa=Z2E`sN zaH(SJkwPb|Yo~DT$KLC}++-Rlq(HN81Vr;!uZ^1Uj^Pb&&Awo>@cCisIJgp(a@W2> zCJ@=yY4IlQ7G3On@wqC^V~3VPccf?8hLJ0~9fTW(*gy`Mw0e@nu8UhGV<+$qd?D9= zt>i8*IU{J#!R~$h5%0}oe`IhBCJdZsP8#F^$34>8q+C?`XlyGz9HvPo^dIo8gEDLvWD@r`z)$t*VJ#xp`SoS zIvL?)XnVy)G%&`U^I#m$kra!eGIDN`Q(#yv+C1h)W!SnrstnsV9z}+&TO1vMOh$++ zG8k5K&lur}T|Rz!&n~ZEkI%pq-C)%p&&uAiLLWwO$lx3Bi@)TaM+HbuhHAXS6VC0E-Fm=!&2k8wU2)ai)k6#GQ1eXxr&G zQ+RLh-z+uKHE!rD8W1@yN_b}{k-~jpXW;eznLB;_oSc`8)9k=`su=>j61jX&fQdy( z*-z~G_*E)yF7RBvyQy*pd>=nx-cWN;(zb>|Iby2HJE_DFae+2=BFUUe`AYMsJ0(tS zriOBG+WE;&KQTS30+< z7%m<#?8MAt&nH7u5WmQQwji4TSa6Ul_ku?Ot%208FoOuGTmTlxy-J-yD~_466EbK` zoJ|JLcD}NO=USnFH*isDBniG~f@sbWVl+jxp+6W}vo%Q33EZ}`vQ6YRFKCYzsV!0A zj$NWx={jq1tKSZ=-N}!vIz%dUsAB9O`<>2u10?eNx#7zoS7jR=3#XhHCpTR5c34x2 zN-4`0n!cyas=U_X(eNgWoafY=4n-nEfJL#ui|WGF-;fJd@=zUVy=p4c%`#;i_zPRi4uu)tc(n zWX}oh2)Io`I;zN?NGCORm9tWiam!JuC{Aa%-E$xDGV=`M}iTOxGezf17Az zN!9mkT~XCf&aN}uDRZT>>pKKu!|*T=6mino_3hcfXkLJ%cqFY7&+@3m19;kY6l^sM zn^5#0qWjCFpiEn3TYP03+u~NvMR9~Sq4a*TYmkLXk^Qp+WVi9TC-k4P6S1Jk42*#i zS#qQm{tt@F9+Cx0S?w=!JS)eHk23V|x|FU%O->MkNNYoNE5|xcc zqE>@fS%CrmD>cJ^8`i*oTgxF}9U6`*L&H%U(QwqZayL08_L`4+o`*91EJ#JVD!Tv; zqKQV$H$K51K{KDnqK`pM&YU)c!}F28`LrZV)WxH&x^IUBStQ=7LX+91rN zQh*1f&TNBkAllewUYbrUebEv;<9*G>p8-bT@{2s+t00-8rai1;7uh8uOL-{08KJop zC}OCkYL9ZYn(Ft79222$y6mEeLP4{Hg?yk8GU2%&?L@47lU-{e^%(NYtE+{h+ksS0v40i&gO?VRYLUYdOj(v4?%}TMDbn-Nnc_uXf*d z)1E^oO2!a6u~&Ow8Lg|mw~?^MFO&@h#~&2A!8@i(ZF}XnmN~}L_jp$%Y z_CH;4#o)cjq za0Z)_zmmhuZ;IVKUi)nUc|UFE48-$vdoMbey2r~p*H+0$*Z3+FV?Mde1$Z2CWYY`E zhpfA6Kd66%?eO#5cid&8S8XMVg5?jLb**n+Wk-C-A;uZF_G)~Di?tebW$%vE6TAm)8x_oDTFSHq_1 zg%B9aj$x`+yi$Ds?7p1Gh34XKsA3H4AZyObIkS&vO*aHFT=zre+9pl*N|=R|in&=x znSu3mX^&)w^JUCUzza|F7ijN1BJI`vGHmbC$ZD2z3?^ z_*MK3L6vRCe&^oDkSb99w>xGIA#09p>iruxu(Pv%=*b{|tP%v*sKlNdmdjz02;+}r zRb0spZ=Gp2Gl4vNpl^=S3EP~pt0SHI$bTmh!dSCvg)-d9gdUaEZlgCgJs>(hi zRufC+u}W{iP1(O*H6+x=w*VXNq`@IpHVT;|=b&6iDaG>zdDG%JxTn1UO+d20?sy-U zGJe)hS*|}33#~R+8X3_@LpU~R>Mn%NeSpcn_SZ4#(}W22>MVqHw}NFcw`5RAF+$pW&?!X4r8cyU4qOFre9H^=OOl7B39y>dP`=2iGt zi~>_VkmQNLCL5ICS5Y7AVY1ZmUpi7wW)@?knh$s&Ot5m+ZiH6H8{^c7yJ$^$Pr&Xk zmFzQ_L;6;pz<@VkO2mr{8YM=M4W~qc5*j@dfsIYxpgmo)iL<9GJ8@7+zOd2!8`zP#au`nL1v7Rpis&LJ%?TXQ9)nvc z6c{~*I3o0ArEdhsHEZLb75gUfm>F3^}N+VH*Z>-QIP4a^dzg|-*}Z6LsW7m4k0^F(1-fnL&9iJFMHJwz&pS@XO_k}^oV5xyhcjlzZ)qBcev>G%Y?KMH@_{~9f~iu`_@9-xYr0 ze+Im`A8Xc*PXj!2f%eF%^y5z7Lu|UWMSoy)&O8Ungb2Y_wqV3#X(Q%hn`<^nZ)fea zH7-P{URKQpL)o?9Zmy*-1a|ji6N7sCz_1}7HZO_ADqLeg9jtlhrs4{KyyFLJXyv_S zfi=Iq(FswRhY%qm#HySI!uQO3Z+^6*cPct8PfBWDgyoTpKj+eU2WVS@@9oJfcVXW=9|_u^`w?RS1TZ+6fouO3;U;`zLLY^8xM z5Uzcd^Bu#f_E&iDSdeH7v_KP5a{%oRD|X|SqAFJ{ zG%{kGb(vX%fKyXgYN6_+SFZ~l!c`7S{0tcLFnqOW6b`*9_TnV=^-NVIZhdGdFh zV??6xP385K-H4I~ciy|FFa&mDy+zv!9h9Lm;>cWL7)`Z%Z8FoyKF=8lx0ytQG+Kjn=tOEK_~R7C2hl<{A#*Kcc3J4Q?G`Nnku}Z515{7kN?GK4*taE7lo>{Y`SA z2VnHz&A~AS#r2pByZ@bp^$FGX6uPFq#^BG5-n<_~h}A|ceo^KjU-%(U>}mOxous-S zTddDJ=ToA1X7QUl2!t9~J>YVb%)@sVy=j8STv{RQtA1uI*1)ExHak(ee{s z`wHy&DyqVO(xmvfM@k8V;wEnscl`ox3Seyc_Jl*MoG3oy%;gah;BOmhH^ytFl?v#? z?e_IEU`}af3@blU>RwFLY)XHsN;JXRojAtW*a{MAq+M6B3XYyjJuRcZGh8ngttN2U znWJ&~2`;$0)xaNrOuuVn=r-^I<)ND?76CR9jL9i%S3tMC5(3fLndh49nF3B?cIizY z;GMvb%10riwnRhJa@&bPEScWCx8g?%WX*C!T&q)rCLFDKz%bD?#zU}4W}H>dbT~|j ztCVss6jY1qEjIdbhfPtdR_GV~yzz>Co*8306(lO4z-w6&M z43M8j*$|Rx?sl?N9}}I=Fo;>4JCp*Fx1)rWqCH6R|K)X$5<+=r!5zwK$GrWeAIn$t zK!x9S^|Ha3I*Jfet64F=T52`Rq8x{!HO#i!ag%+nyklmFQdy-=NX)Yz$KwslEfG*; zTFEAL913>Gm&9Bsf_%1{yU9VGFKcE>s&>U07VPSV7`ih8-N@9x&BsVtT(c7|#+<;n zQVhB$awe~LQLu|M&ERj1gdqo--7sQDQfE3VL@yB2k?u-H6u^4zxJ&s0<~7Bc4xQV; zsf%%t|Cj?X#3Ibc#5{At5g)=HlhoVrG9uAdDrvb+zuZj?aY?0@$2`VRz zr|`OOYcL&y9hF_((}7-pD9s&XG=jMlR1W?{I~;^OWb{8_F?oTO`^4LL_L3j!49Nyt z$ovO2dC*$>Mv|oMe$F7VF}@1m9HRPy@$DHGgRVF|Qy5LrmqpGQS8k2*eINr*q=m6= zvW$!@pCexG4Ye1PM{Bd9$r8G&VQs;j$3%NZ2d9&s=*Qf41$iaElY1&5QYyi?&x3jG z4(=CCX87)fdZG!=AtkKPz#tk%a|&G90H`lgX$Q~jXRJl^URjSZQW1X*8|H z8i2Z zqB~G}$~lM(O)l~S+syN92}`b8&(|^4e@!nk*T=)#pg^YRizJK)DP*I8u-n$x{xElf z;3vH?;^9khp`ai+swR$s1~!WMN+=cPLm55c*o3qrmiC#rz!H=IJ7AybD1piZ5+MfI zzhJLrR>)}I6;(0+aW;-xTq^%Ui@>jo&`;L(bl$N`roeq5yQtIIs5BNXt5tRTA!Y(! zp>a3_%iP|aBjIfUn(bzJu29DiwtBR@C=k>$h?(~c0%Wf4yUmyzPGWI#Y0ZD{g+ayA!Lme_fS8WTGsN z^OwVnB=y0SMNrG6^OhnL-&z?}$~WCpR^3}*1-;mgZ+1`!K$9-X>K3w(>?f=gTz?AP zDDbD6`pcZR^p`yhfr1^_5nD6RQ4h-rH#xs$t#V+TtA}?Y-*G9U$5p*ozLG6mdEUSk zg!Z#HFdm4G)bzG>JiBzrit@xg*@*w|9Eam!5W<9LJvDqXcRe|z^{)i#W^eE<`sx*b zBWEjntNhw?bSfLcZP^vhED!@NFA&Z0zx{Q+1T5GYvAoO^=yK}Y&)d#uVnRd^$gW7; zgFhnxkZQ%q)o0C8cE>-1GMcdlX-I4&a@H#xbyVS;U29q>SRkAngPB=9%klj{#YYs@9`a=0y*A~Z z5^fFBB|aB{XHeF>vW)C72Slb)Vj1E4`XQgUSR4o>fp0{CU<|2Zo&+x?Pkv=Oq{|6W zleHs6WA{716qckr3hy|P2+5*9ITU&Bh|cCxz)gjj(>F;Xisq;fcO|ZZ9-_8h#-lBd zjAOB|5*2%P6a&->&J~?9-!YM!2Fk+2f)*;9b2Zhymtnr}1~Z~HIbogZN5~f8XzD6c@d>aQ+*VIA$L1fvyajmVIn|?>6LVY*I}h7c z*|~E%`{aV0aVU6|wEPewc|=7m2AiRJIptRz#=P9ZS94T7xbeXpsr%+Naos?_R-gHC zZ-+tlQJ@-7oYNDEbl+JEl{YwUQaZgzHL!vokoNtq%-Pls9vN-H3iS2ifpfLXl@!d_};l z(}N@?(^c8xHkCha5(l7dKbV_iqIM*PbZ|`MTjcz80PHsXffr5Z7Tv6(&9`ea8gMlM zx8d3U4#q98?hULeOftAcS$UF1)iV9mK%S%E{Q(u_f>e;Bj2}=ahlqdm$P}AohJk>G z6RN2FE7UG8F)HJMmfX!X0FJ{aeB)Qn-XT5@r7SXPv^2R*HX^uu73jDw?)V2rOz4KO z939(KGPR+ip%P6|75_yB*@^wimJVSGuGFQR@u6_n^D@A8m`vn_K6GtRG)Xn-?=ca` ziq{yGlgpKRcrS#*Wb!5%?@rLlD=0HXC$j<^Or|ioe4ZkKnGl_jQtZByx2REKm_!(R zhvPtN#s;}rnl&{hG{O&1&W?}+CCK#DbV)+v(t!{`RjOfd7xAvm-~+K0-h(sB@Rm9> zc2u9^$PTu>^cj2cPlNV2hsT^C2;SQO4TI;Ygv$+z`bWv0wW(zXN6rBmusB&!0xw}t z^nJdc$B5x9ijHbqR5dQf5F7?SX>rrh=f&B%NJ`^i=Fb?4`j(|mTr|@BKN_J zelP?V{x*pz8F7rWRLL{o zb%QWoELW9`^x+Cjt{Jp8xHwBgXK&zcuSV;Ns>bcnoh(xW?ZI&{t(g>^@e*7*CWYJO zcl-CH-zy`t|Pg-jkYyAp6gR2;&8V_gL2T1 z+NkA6PhIvTWkc@<=t)`TBRO&gJ*U{!CG-`=WGodbx}n6x!lDq!({9qmV-FI7V?ssm z-OsJz_2_1XHxCAOp&`$&GLjA>%vvYHpW zvtww&ua0Pm3^3YRcTRLj6XO%M8dd0(w6?>74!6LRhs`YRMMmjT>sxu)$5Gm}a5GWE zw@@(^O!jAaBp1;0Xae6DWiFXpD6w(v!>=TF){w2O4%;0gbkvNyO_|N3)Cm34(}pr> zqTmu(%^S(fY`#cuW+NsRDRIzElRbh$<&ua#+(<#F?h0q@Ws&i9FE6u8>#Osj%n+I} zkmSx7*QeaJr#SZYH=rC->aM5%Nc$XOOL1<|MS&#QDfjK&O|gNfjj`+~!$6ced@6eP zfN zef{yeN)LY=Q!s;26u=X*;m`NcgM6;mLHjI48~8To_Xi7Sjz#9z5PtcDuZ8+YhF*PN zjhxOW_Kf!LV>W?|P42*X#LYc>x8@J{d^>nJ_H0zQ=FLervx{P@0-Y&IkhP^<(Vk13 zp2p$kH|JsR9^pC!O4uf-l4!1-zP}MiY$nlGJ-MCidhZ7{S$zF-&ZmC-&5-bC!7?tuN#yP=fcCIB(&*<`Z|+n4X+$R4n$dz&deZ*2W& z-!Br5ElBQt4&}5DZ(yn`h3ry;eq5j>u}#F4z=eX@3&9|-8@w6}Bo;aLGAalGuo%CR zwre6r=oJvInR0*-_8+3?yg0GH5+syGNT>@okYH1%q#VV7o(z3TZ|y@M2WGpgxL_Nh z?nafI5TNWGpvPkshaja|dyYw(-ta7w?#HsXR<&%nhMd?e-N}oni`)Hb4Rnlw1EAh4 z+Z!!!RJKa^AHHY0L0kYQ)ExL693ybp5T&0xU=jcgGy&8Cas_aM-*fgO_d@_|06qXs z-f{4KfI8?t_&U73Qh+>g7w8>)9|WKpfCu;nT-;)j1M6`M!ukOb!syZY;q6KKtpdpb zynyB)7)uByfZJg7kou$mJbl7|P9PoNHHbOTIpDefx^{_Uj2s|S;1Xc!@OmI?fWL5e zlzp{8JD{B4bHH~Pe*AuvgvEvcSb+5SiQQf;$v~f1ijm&KEeqrKq(7#P;a%|dD-OtG zqwR80Dx9sK_)bNC=fabsBF;R6UF8TjuZ)%kbSOBTJfM z2+3?~LdOi{aYW=f2|g&OA&Lc-C?g8(Ds{A&A>z-;5TgmQ28O8)eu2SFO!zo^s34hh zTMtVGTd?KcC}ZXXN54E6QyQXJF|at8@7u&xb^>U2mdHf>INC(s9^!J{-2O!!68802 zrdV(+J`20S)*Dnj3We;7Y`eR~Qqy_sRNHgQS$gYi2g%7yr-A8gx~J z66@{mfqT`+jl-$T_YZ(_iyaLOOhbdolP_qGkB3Fw(OV!xWb%uJ)C~Of&4GMVnp2V* zIZ-1gX&FgjsymFbTdxiZnq4Bj8*3mhtXj1m*AAu|g{Fs9rGwGHU8pR_4JDy_w`|Mj zRP2tAja?w?HKm-u{JbR7x1rtp457kVA`PVPBjI4WwNqLBz#-f-nbGMVJ{{Hu3ZS!# z3kEbBTHG4xa~m;|YZjA*RB@_URTa#Uw2Y|eJ^YLaI$#e6IRYp(h>C6KTH$w`GbcGa z1!@|dU^MVV=%_07@@p=u<9Jj@ZL0So_8qC_jx{18>lw|chR$EQ8WJ2H&S%<4YS(-! zYy4=YNvx&rnqUc4H2XK&dC{p6ekJsz?CZxBMJ{8WdtfeQ`EM7PZM5@i3bqnV$)>?T z`V?{J^nR|LPxD?LmbayNY|oiDcC3g9wN*1rvz-sG_lN1gC;PGxd;NhQitjoP7_(@| z8s!L~gH@%uhS3kVy|cM(XsL0QY(dUX;L~dYrhDZ&xYBB}0yk_a8yd5U-SPtKC?rLq zI6TL`)KZfVn!F)cQD=6H44#jDO}+HG$GsxFwZU)SSKvh5ee8?b8*HdUZ^6Z2TcUnj zBkXVRQAk;v1Ad#`1|7 zd6H3+4}_G1zM}`TX^yGufH*XL`sDF15K#n-@T!XEERBoFRus_<47b{d4mGbXIiu9~ zCsV!T!5G8q-}+Myvo3{U8vD+pWAs9p(2mz9sVAV-wN;VIjUAktYWdLTB@qsTg|0Lj zO_(0_ymd@NE0Q${fz>*Cnyd`ZWApw|g(G#EOPQ6Wi%HK(J^}2gp9hOi!|$q+atK~M zT?QMaJbub|9|wJAdA@R7KlpARJbi|4xz_gG<`jbCj{?3wo$(KaE4D?sI#>M1ZVFe(*svd70blanAThrZu`TetRl zv3hzd2Wx($L8Q(-e3w_>V4@U`Unx5K1%974zkiN6-cDsJKTSD)fBklsy*1x<`GAc; zd^tW~Fo7EU1>WI);G+C|pKfoL34RCmXMd*!u0kqlmwE2K#V&dN-uCk|4={39wD43~ z;(tk2SH}2`eJ_T(UTr;(6~^-YG;YiDzCV`w+&{6*-nieqW9WFDr+WH6U#9B5PgnMO zU%USPe6H@Uwf^??bL@T$Zr*lj?b?;y-w|YH#NzU~d=2Hw<#2nSbT^*v{O%2=#Paj| z?$73WZFt-_&Tjr3MluAy^ty5Xd@QeKr~bIKUuNFq?9lA`tiF2pz9F!P2($2V3?Y6u zUjEL~|Mq4P;c>5wKJpSFN&yYmKVZ!8$Ui$vm`Sm>D}IPF#z&QRp|UJ>Grz zR5({>Cz`c*(iI;eP4s^;=}w_M4tOylNVH--_C2McFEV1Gr!<~wN#K{i5I;0k#Wku) z_^hvdDONr;L>0=HG$zU39~$yT1@6N#zAxZQv)36I?v_Z!w5rf%e70gMalc^xUd--&z-8WdwkER|7reJVx$9zYfr5m>7p0VONI@llU3G zp7QP@0|(?`p>=c3?v|f#L7)g6H+A7@S9pg~yNhv)X&5lygAbp$AXK`Mab24>e}0@>9%8erX_M*d zQZ%p8S2AQ=rxG+g>+J)ZQCFhKAr0?QiLqKIyD5;0C#STUYs3%V&s>?-(SB6uNX@-8%m=0{b8oI;iCK^#q z)yIDb2c5<-H0W@u)ZTr0;$WsZaZY%Q#p=<_A~KH`Dsqx?Z7Db*#=j7hCYY=pG$f%& z|0yd&56=#w);(=%)Zk)#l9r&Mv~Nvx!6eDnCwD{7 zcP3AEb-MMSf3Z>JHg4u8cjuT-Of3i{IQG~p;Uj9rVKP%dpe82!O~&;TjA5u2sjoU* zu4r7Fl+n9vr!t3&5ozf$W*nLSM+vSYy&RI+CqYB9{-G!plOIamFg`z=td+0eVs{ry zC@e6zpC7?sw{I3kYsH3i{egPp6inH-E$B6)|1kG3o(2RR_8#w$zN<08>y;>{bklFT z8!k=UgM`{ycl}-GyIk9y5|6hWEO_`OlMZJsJA$}Kr>kr-p4tMb&)N;e>B-Rx@hqWe z?jz=|Ky|(JX{4TKuNTS^IIIMV+4F34rHj@_i%l%bu2elmKha8#p?NhqA=75a>&s$k z46n^YfLYBD=aZ)kH>jSZ;bfcDBp5@S-MGP#S?wa^mU1%x2eR9Guti5TsZ|F%nL(E? zCC{FDOr7j#w}JSrhkA@NnBqioSh0n((TU`5`BW_=xO8(g)HTCVWP)spgQo0R_&Bt#7A?&qJ0i*3Xg~|&oGr}m zon?U2xIaH)X?B#k1EjEk!ih94g?h&=<*l(|A?%s+o>|(_K?Ah8iynSKq3D1>xcfpa zyEJD@mZ2mbh=DOn|J(7q_hV+U20V$^1c*{9PxAoV{gr*HGTlGgv7(~N0WCDr!y z{#w1w{jH3ZduV6&jR(J8w!hbzUsgo$-+v%LZ1w&AdHqHA)pxseJ=~Ffhq+tjbcqlE z`M?Go^Wo+HzP=xDiejFr5w~%6H3?hSifu~JwJ8t%Fs_slk4;ZK;sd8(|w> zC)SR>sqgY12xvdK(E`eEzdN}uV+3%kaPOa`1>b?+A^c8x`@*&nzmE4mM83bhu|Vgq zzi)pjap9cO{*`+Gp;xhOa@gh)zxO^-Ilp#EY*(1tr9!kNR>L3M1i!(}`hIoUgn3nd zlv~Daao8~WBplrYzLn-!dfM>%U#NKvr|E#CT zYt}MOWowyF9P}>mbsAB9^;+EQF!7&5c&9R{9Y(z5clQd#`k#Mo^d;#sGd9OdPTkxq z*Hd+@trk2DHaDv=#x*~IwzZiEz|hz1Q`_B>^xPHuR}I(tMLvnrwH5YhL(wm=D(uC8 zwBEviu;6bE?#TgOiR|K4#~@sh+o<;Bz+0aMV1rWDVCZ8SS2tjXpi|MeWW#vd++3F5 z+x`1%OVR$}T4D4JPtT$3)ogeh`aNMRD5Np0j8E$5eXix*y6Uns#sdF0KtkrB=VA8& z)j{Rq<{|2l`C$>l>ER3F_F4I1`lSO{00jUiKs*2mun*7#u=ye9z1q%E00wr=zEthB z0CFI>;BO#(mH-9-FU%ckAG{wO;21EN1mYdz%?-1O`tg;o^~-OS=wqJXoS_jog3yvk ze->{)h1lEwm0Xxra@!^HS~`t286xE&EZ{gHkn+R2B+U~ZV_BQ~%i?qRy^uCqUk1^a zjxh?Rc_KJmbqb&di3*As2GD}{MN;jsLctbCaxja~$Na&QcT4=T1-P|8zynYO?|*@T z?{3G-#~{8@7iKei+9vysK&n91SB%>%zP zqRp;}HULZ0`7{*D!7=KV?)kNKrQaSB!lDl!N^<{_jer8S_ zFG8hBsXcPs-0P%&lv;Tu$HOnBKna52;J*6WXjR&Qs#5+{0F) zF{vtnH2&+1=rCLq-(25CFXA*1MLNjzG|#BMYK1r^qa>Lrmkr7x)>ru}D79}%W-=2} zuEyyHBUc+l$Nt`stdbu2%w3$B@#jO|V_=O&wGzT-;OFglnyFiI5K&0AjBYPi!{ci) zDP=d;_p|Nn;4ue)CCFUi)pVc?{=%U4+Qjx;0u= zs3C@6PEb%7hDr~wLdJ@37>%r>*aB;I0?h?;CIA4v9^m|vxW*IPlZ@L%@eXk4=^Tr)U37P??6-TJ4UF-61={zFAlyA2BA84!t@LVBRzZ2 zAxccfqma2sl4sfn3|C;zmAY3gS ziza$jC%vKP)xPujwXYxV0}J`&n=Iu)F+jHgA_f#xsZA?9L{#F70S;vN?$#ivZ*0u> z@s^VKSShN=rT=ntPfjsRBW>SPD+RDPrC@x$xpe=@?=p2Fbrw|sCy`a24fLCW&hY>b z!t&bZ7sEV;9PB`6lGnrRZy=_F+FnrYQX0wv$Kr}5J^dqQ7*S!8)r0PIjBqSu z`g^2XkWc`rZ# z$A(-f+{|T#@Dr!spUvFO)$ZIQc9~txhpy3YV^bIa1UE{OM9+$BXLaffp;ahHm_rw| zfPp3ytX>NjRz`(NZrQeNqHXf?_QVA2W~g*6vp4OMF^c9!OgXs^(e5-}P@_DCmX5CAG=Leg)<1C4#&S>xauH7WF=(f>x7Ou zm_9x~WNN^%S@@Tke4(^J(io2oK9#9(vWLXtdqVFAPc!uHM}W$E_U{NGfw|$(Ix>{L zD&>pkJeabWLQrO2tEFDxbK%GhsKD8_Q6)HJ`3Kk5hw@FW?O42 zEx%VA=C(=gxlidnt)&NTblXgYl&N5k#QE@9N;UjyqV) z`iFTEk@6jC2r==`zMhzSA3-uL9^`y24)DKxR_GFIvvFB5SLq(qWuCYN3z45Byz#@< z=Xt#CDq8lQz7B;9HF+=7yV_7m4wMkA+D7#BpdLf8D>~)I%W6F>WhLp;`1S@HO`PeF z!!dCbUV25G_!yQLMJ7%x=X*qTE4d%A{{;!N(kNyI5CA|60sx@?FG#HPoox)w{-cPB zV!zELA!64fTIG|TxC33cCFyU!lFIXjNSGdOZ3Iw1_ielG?l5QdB}`o-3r`dmF8o1l zMmD~`7)UKl^v<6JBoLrm2Zc{_#Ttmn89(eXk$Bi?|E^Xj#{OkbDO456l29J%KB_l~ zYRU7+0307BQ3ikpi&>n189f$>wJ_Iy6Ep`w%tvMbm3pbK8WdjkAk# zEzOt4L6j4MKZBfKtg()o35W$8AVcfRqlti@hUu=J>EnS-RHycCm3tT8Uq_%}7YM-s zg=fppWz5!$uRRz}QAgz!`fCPBs#+FJq12*(Frr%AY*=S6A2b=0RFv8E_-xCT&5&?r z(Mj8KdF%P_Q)XnxMRSrG*Zn(|BRXB1l%od6OkYm##>Y-bG&h0v2}nOm5tJ*jv^ZtV z%50Y6^Bq$R`V|H8)AhY9e3HWiC^H8A@_P*ksaK*hwoVss_s;< z*PmI)0yBO6OFaH21k8?8zJ(l$J1gnyUn1T|5d8u#NJLI}Uq$L!wYH*OK>w>Hp6JXS zD+B(%Ah!Et}P?|4RgjKR3Gl#gwEB84axC9pICp#M1t-lh{Vv5&D>r zng!PMNoDa#O1G=GF{oq<_6;|K&`mAFp6)kqTag}ic8r}0*L=GPG3yp|8)ypBiZF(r zG(}XV5QI!9vZYOACYA%Mk_J?ysdqG4P6_M93$kz4t#|~>Dc)Kd#YO3K%@$$4)WZgE z>|S$X%iTwRB%4YOle6{gHeGinq7=!=ijM-menJO5n)f{{wFw8}@i90w!7@?IN)1KPNF#9reH2Kx)N+Su0;{`!Q%!$NQ+<8AUDfyt~~UjyrQMzkcEV= zDJ~7I&Gg5@!sNP39|hG4u8S5to{XFKF|t8iJm2q&CYcAgda!}yY-v=m6p0-_`H-x)0pN6|xL>L`?CW=t18V%BTlP&FcK@g)qyB!_-&h)gl;LH-mH=ppF>9IG+ z8r($|P^qvdbe1$XPcUk9jswN}@?|j`4@oUlyKuw=_?rn;8cR`mPh9Vk%|Ax?qnG`k zb}wKT{iRF2%M%8o^=QH(dKZ=T*@RFdHvVO7sS(RvFHOEQ(ZpSB-6!g7Q^48bz+`yl z_ws#2feIWo8gPFVH*@NQa55D^li5(~d$*2MEB;KH!#`7PH1&uB`NbrkgdgyrGGac| zR=Wc(PS!=%tnkTJ&^Q{>s@`=?Cf^}QaFj+w@+_!ZiiXc#>ii_NF={3YPXy2xN= zw2&V_r%#Ic2^kXo*iif~>6$>It=bnf&vC8Dtpxvqz+^F5wZ8l9gSq>Cm{^;9Yp|kL zfOkNG6ma&RwJ&saDa!_4?-O4f?dMZ~feLAlFCMDx`gn#UXekMqio^e%r$>8-zqv0W zGzH^IpB2J(eJWAz1{in+^jgEcjTh+dv&n}~)`R_l2moPeidQ^Ow&j^w5(ykltc7(+ z^a}~a$AL!^CdfOjQMp}XjK8xtBlT5@TLt6dPv4^E^BHcFKP7CDN126wm`;o^{X{#o z@;HfElF66niY^=%LI~{#48w6<1x@B1(WqL-Ht?MXj@O}9KDc;#db@J{^L_tb?riP- zdh_4W-tPH*{}}x2-0k}~8xJhV2{)6B6pcM9hHI@dNjV0&!>~!)FZLn`|1;?K-T|!T zqI>HHzgNkiFCM-dfrpGiwO&}@1U@ljIRLXH9pehriDpc>RXO+evOMpW#*LY2{GRlJ zA3n?G%eGnrrnKpLI%XW4o4;9ngBFH<_J77`tK+OhSuE#93ll zVu@0M49#T8Rzf?gn5prnVThF9j>Vi&JoF&C^v@*0S%^Lguw+x#ZCs7rPsxZLczx0t z6q_x$uTC>0|H-&WUo`0|?n>Q6wRT+yA9hNH!08}=HhbZMNE1-b_}%wbRf#IzjL>!KuRFaC6hISPfVP5{mrUtlnQEH7H& zPMGPOgIH;Gy=)fjwFUa4zHO3dl-I8grq@v&@)EEaN{yE~nGpKuA+g*td}$8DW@%Z_ zjV$*DQ6*=A*SF-F+jw+Y6SIZ+c$DqPd?KFxMbos z7$BrP#ZTR=-6+AdVII?o9TeT}F3iH=yyeQF3oP|&aEK5iZ=Ql}4~!AsKS))fXb^e% z5M}Zx!cgJdq$M*#&SfRv$$`zt=b_;jyri|c3N1csgY-H*ZM(1FC}}$bL@i-KkNVZu zqjqd5^DXJlt#}7Vi2r+89E8*OSIOP$U6gk%TdFL?s>hI^&6`t`pa0voL|f%Hqs0S9 z>C@%ZnAo3XLUiy{nj+q`&0$eCm=6WL+=|~9A2_Wz9Duu4Km6_fyg z|1bc6{C_Cx=wkREW3Roxl{VEI&ThZZG?g^g!wUt4BtkS_tViPTsB;leOm3r<=-2td z=~|AGjX>C3e_mI&Pqny_QzX;cRc4h?1o;WJy+58-&-pEyHMJ-nMKh|_h9*-YMH5bT zSS7m=<~d~>j50h=6YAVFWVT!xuumfNq_Y+eJ$p)N}Gv%3(NWT z;tEeNI8_Utd6G{jZ#Mi=W*b>qH%@YYyjy`W)hNJ}x(`X!7K;S4n{-anT{vWn6=P9N zvjLMWBn4-;1oE{Jb;Lg2)j+nDT{OD+gK|%+!FW$Qe$=Rubeu?e?ZNnFJc9o43HVKk z{>c_$s*+>}YrCUx_VYckn>h+vw@CbH=0cWu)``*6 zjn*j1kpa{h<4-sE6`LoR;MPSQPl7$e>Vc<>08ZbiyTT441rddSzjL&M4mTZt>MCA& zCD;G{A?c()JQI*+H{v7)$++K{0Q$@^5+#{$qfu-m$J4GPa< z{JU{XLCdZ!3Dyk!-)e)rvOqpOEYPWPFjK4`a-4D1CZ@Trdy^}qjj2l5&F~J+! z4h?bkvCk2T!z<}o&)Xepq!}Bq@&oz!xVwJo4l;ZnF7~*ddCM4>_%41rczAr>M`?26 zbp0-QKKi`v%ig9Y#*W?)?ew0%#(oYi%ID4)fmjgLa|N*xoLaA84!XBs|FRC@#RE&j zazO|Nwh%&kGjKpN8eN_0v_ThYgnb55vY0~OM|or;YRA}@-K02Xu|_ecxQiz|@<;wG zjYhte6_f%zW)65^y7&!uUT$t~F8zAwA8hvU8#=+-PR_6WPe8UC{fJFtl=iS(SWF_f z92dh7n*GprHa0Tqs7CEL!SHcwMk*Pn2iB|TT%b>UnuDqz;EK`Fju+C%jOiY9!48bjk11v!Trz(?{EzmwjLWRQ zl>WZ;WzHlps^RP>eVam|$ZT;&%0Z`irH_p4Jz1udTCl><1Fve%F1v9;>wCj@FWn9* zuj)^L$1<}$?}b&z6fF0tNB0+I>$zSixuQCUTEvO#Y`%6Pi_`$nE+6Rb(~IT(3G7M% z>!yTqe+B?F{V1fR1p@QW3B{WHerLI~qh+CbVte-h<4fu+It`q>GY>i@Vpg;J@?mnf zQ5$m#b4J=U&VRNhjlloJbZ75A7jUZ;J`%-tYVbt zbc%_ZzeJ`Bd$=eaAy~!0c2=T0L~~XEeR}_9TU8=s;6$ao%0o{D!%9;WtvZ9`#U%-( zh5UPDZLN`lLl)j1<{&Pi!oE0V7?|Jg-!8CyEvY-94_hT_Bobkw{8_77DEp7dnrN!1Gez&M zZ)v+l&pj0g0q0Cwtj(Tgjv|JDSMDxnNQ9)lz7qNyD%z|Q<$n7$6-ViGc^Uiq5}lSH zY;5T$9Dvg8mJm$!E96}SLldd+wB?jr49-u?AK3$c10kAam{Q8fH8>m)xBFmOc~ACw zYzifQ0}QIj%LKHQV9S-3L+gwc+BNnY8FtQ^4&xjrpe{k9i!(B}bI&oivh{RiMv ztOt8P*UdW|*^$+GbraT!pfbWtQ&)K@)Tf&bO+-kVebKuOM3C9CSY(jMP4slQwres9 zt){(&9IerQ3cEBx)KM%)4)3|{T1}VU>>5kG)THlSEyC?~Yy$uX|h{wd|_r_a%nA9CZt2d~M<2D0T1&$v64Xofsc8N*s9jGn>44 ze57Nuppp8Af&lx5s7IGS)=8)=KC0TvRYmct?IoY~U0J!7Dp>0o&Cne0SjDtm4LJkk zTJfNxl1sFuqrbQ>znM9S(wirFP7@^D`V?u zL_TwoF$ZKc-r;Lu?!P`~*EjZ4M<|wb+a#HE9Vg6{rdh}(2ClE=TdB1-^$fDhN$%C# zsl1&2aLnf`%ziXlGY-o23SCk)5)vk>X5Id_v*F;xOmaobp$i_+QC#QHNqT18aGG8V zEST!SNX+wyC!qG&H3?=1bcbpBNyIXR>(v}Ru!gXFh=Pm8yke5%Wg&B5JCbrh_)e1y z2cT$e4zg~3!Cpwff69yi8-2p;e`BEMepWy-#O;$76|-L5^Cs>rKu4^Q)vwY^AsvKA*Gozkd-+PvKxjsc!Qquk#3*_mt$)~^qA;U z+&?RaYmJ%@aP?|cK{qw;mcs=(h6P|Znz>sjt@*&RL8CUQ`N1K$jak6AR6eMWUDRI4 zd#b-`i~}&zi1`H>&>@iq4|N2Q`T=3MTUWQ%%p0|m9$>^K$X^~#Ucx%PAjw8R25&9J zcu|P&M=Umk;)YI;W)q_$t-IX)LDBu4=8c#>fIxzllR~DJLyMm}uoE)O@M<}~URtZd zJnJf(*ta{DUuj5wqPEVRRL%j77_*uJ%Bnr`e!;DL|6QP`M||Qt6L*y90!FeWD$q*z zF`_Z(z&R-k`L z%y^1SBZxfxf;A_)%YM6@^5u+Wj*tZm0{~1wv%mX}5hSSCq*qg^V*NDr%_Bw<%;PEz zV08+JO-sF9NY^v`r){ILFgz1qYjGQ%9j%?OoM+iN%TBiCKb@XD{h+w2*2+m$NLX<> zWF(jE?PhPre!op*J!KH1(sRxiKV_SRn8oz@g^01O$<>GmNIFx8n1rF(+ES7eDvYgOpfxfW9 z@|yG*2Q6(77P}33pG}D`Q>{Z!HFp z)*nx=E;Y7tuZ#q%KwCL!`PcyxP>;fMt&;zPieNf#miD)_YWoed&m?2OF3Y}T9_~4X z3Vl!f=&bQ{71rxnwJVFk287KZ@{teH0k=Sv-m1x*b?>CSM9N&dm%l~WYT5zJpmDcd}48~7pzy6uDn@m(rpPVGhKD4*w*5z%*X1`j3$ zFB~Mx9=$KB$JykcWidx^L-yV3X@kDK_p!;&=dR%S(aKb*aJZCqT?FY^+@Q%PD6Mfl{Xb|syehnK-UWQ!A z2PT0!*-V=9D~@I z+M*t7)Umse=o!FtKj^s@l&1zZs5>K~*(X*lV{*;kBaF^$;3S{zmjj)?OV?rLPw#8R zF-1AFzt^IvPhK;y{N-~hDllgqX&Yiqm+dQCIYW2p5nC71^0WIpqDy%4Noq4!@(2+Y z*W_|^gDA4#fjC!&Wg}Sc%vTgumkLpA%f90oK}vWIk##Nj&u<1O$nQ(W;D(Mgo7?$P z3-T{g-}Qtj#n%uhUW2EVCM30T3{hA>p`h?9WGpkml1+UlJan>=7)g(`EH)(9%kR4! zNhAJlc%T9-2|rk%f#{PviLoLI6k6z-54QW^J+ zGg4Seg9Y#}36Du_6IPL52AJ+iP;kHe6Cqso1GG+*- zs0+$k=jaonj^0Q>@T!s2m0M4h7gt>q#e+p8%{Fd5_2(r#Y~bZ6gFWdihid!D+eVpr zi@oOpwCql}GL|MapjWJZMH{J_(Ktk*^snx>%LKt#RbYgmfF;7Fd5i4VU$d+aXU^!* zy6+I)mL<3DD9+8mg0zq0hWrWb5@4o5D~D$M2+U~@b$9*gY?T9t=|SsDL*fI+*&-cx zwr=!$=9m6Wp~Wwk3w zY|K9&@E`7_Yq$BX1yKEhCH-=ov|^mX@giy9Nn(2qw|M?I)NV0wRV)h2d3M%TCx-8W zbPK%Wi4Shw8VUcfVo10lhHGr+K}*i$@vL^;;SP)jUS8*rSH+%)p`rbmxT}>`+BG=O zc(~M;%>(GBP0z3&#!HJ?Wd4KxetKmD+B+Id1ea$K8|5?z$y^EFx2cA{NZwZJ1^F3I z`fStv#D)eNxj&#rf8y+^{;zXk#vUAW4K&fR93evcx3QnK4 zzoN!pM~EqHXwua`JwV_ON*Z>D{BYG*2O@G;4*jUV7?IfSOmniHMXvNEKvrSF6}(Bg zR4GHVxOsXHRVo9<`lOg?c?P)1{)j zcvn}SDofZJs;Bzc`&hiAN@>VQsU=S9;1n3e(cxN9%(W0}|0&DYldwH(*LJ3{&r5K0 zi;RYCa%4h^beDh}8@x_8`&X(^MhIL)puoxe(kWKpxYRwXPYg`HzW!ZX6hm2$t-H(y zvLj=*;t+Yo!DaXWw}6!foJtW^QGNRQmMV-$bAUkWrB%)Cc)>0i?%V)pJptJs19wg` zEp!dAs)_IVV9a&032*MZv+Mm{1hZ4Gfq_0#5UH*+<+zioyAHUEKOVxBcMcB!3L8!9 z4y$%6U=;XEP!WUxM0zq|RyxxJmydxeY3go+~-i_%%do7xG zYJ33WyujWmd9fy~Ii$fCA&9Q%tnhBcZKd?bh8eyU*=K9)n z{8u?KAH7?ot#hTFnvwW6ia8+y*3r&-6Ph7*;AxFnJj_Y>^-oocpWb0gblx(iGD7jc zG4@LP)x};M1(d^j$rqWLDYa_3V)Nx>`sf-pbZ0vYZsv{-;27tLH1U~=`-XZIMjDQm z_ACnl$Fh7fCD7#)p5mv-ZIy6W>=BHrX^3*hq9JYL2jDuv9eJZ9 z{?# zY9Jh?a!@D$Z?CuD!&@RT@BRrnm_{UgT`9grB6I>}tZc0IOe)1_0l)ZX z^}Ni09`d={f?LFM+`1n=T&iT_WEZiNMH;26;0MeQ#KwJ_44xPz28z1pN3oat3Z8Vx z)#v2YyJ+t}KRf@apoP#)?>?^qBstE_%VmpcBD~S^;J$vMRMaF%Y=!Zw6$+if*~V_B z!c$mjbK?N%)^|*;`8UKj{x+&IXl?^9*vWLKOHX-Uy!@viivBv=caL-)6Zdk`sNg#U zS>tLFaDNC15{fBa$iv;fjo>I1 zw`hfZP)wzo81Cj~hFgHz^*ix!<`5nx7`RJ9xfsi7t4ZHt@1B-2x&V|<97*Lyjw+Gf zmdBpR)o;W>yuXD5c)th&YE8wgbAa;1q0d)=diq|Khqh0!!I18Ha%4LZhka?>kCN)a zwP}7NhW(mqjGTxd5VudvR@$9<4k_m*J1-Wcg`x`9hI`+oFkA`fna;M!WrW z&PXM90M%)ag$Cx*=n|6z6wMLmpoUJhQsys5I6sW+D#);x49Gl?>pHFwJ zMm!cfH+;zE#N?+|95dXn=<7gcnTBI*sz)6GPn%bB6h7hhFc_()1~)z7)t)wA4Ja-= z?#MIM@J)(PI`;8FyV{eS@~NBjy$TBM5We*4SMe+pFCfy{<{PqEMy%yxti8oQaDPVZ z^a|VVAj%pJb$}F6h*C(;E546A&lb)mzJJgUR6B?@95J5?oal4AaP;Dy$)@7^7DXMS$w6j^?6Q3LsTA|nh z39YWS?8S@WVN3pa4LaciGaLaRD`De9oMFLVuH!yWr|CjuRnBc3XWX4 zWLI5J3{fuQm;_fbG`{&`oJP+M+t{=1<40L(eXm}uM%C&D?(LPiws-APYHsG}+3A_6p&5v@v_!6-JHI(-!KSK8Dvi5)m7VSLYpk``7SGtD+q# zk@dw7&g5Qh_`BGb-nOj^uHv78Xi|W|T3eDN^CJR0(mkIDqS`fqIHp#LOY3*{p2{8W zE5c6$jn6&aKj_(4<4Nyzhu(r?>Gg+VtM`TY!@s>+xBv2+gEI`BfA-FVtDpD7DA&lv z6FGsQ6K*l2)hBP%l0v{d?!5}hJnnII8(;2DH@--XJgnz)OGjK~~=zop-^5=jY0 zWU|dot}$k5j$M%sJ?#&3Aq+kE8i(o&;22E%H%C?``xx@B1YNqHD6{SXg`Vgm)U>D! zrzBOB=@B6eIV7j-ZRF-ko56E%qg)+kL6uSTILTlm*#FWX&Rwtnn0=T9tgysuMH8*q{LM|mkpbZ|eOlMzyfmska0H|9OsbXwxNHf_petvY$)iYYAG;R4@5>D+Wt zYiDa>o;gno@(la8(K?iJq@>1vZbl}_7UFn2JH`8ot_34U2V+RqAT+3wI)uDW>!DT@ zpC&;syZtKe6*aZ@`~_F3fPtd(9?o}tl{#3byM;!TJVyg9)M5g6-c)YZ>Q|`rfnazI zaSvg&tS^#9-th?A{NvLP27Cj?Za&$C16`at>&=|ZK9#BvGk>l}UFW#tHx{Q){x=h) zuPaFEhn#`el*4^ttzV#guR=2JB|NA%BMB?B=-g@DGSV~Cwk zvmhwJ!*z#&4!7=avSvUl#yOE&?2S@NZEm6G=#c0O;V2bR#Y1(Ap74Hl&jT6cA*<%m zPTI|52~FA{XV$i&Y6Jd&h$F0=gj2nYXj;OBwCOyWuBUzM`zj%1&%7l{hYk!VSse4( zG{x69m(w|Y?Z5$DfL?XM9{B41PU%-_uTUJl&8^2ivphL%YAuBLy&g4+HUlinOyL^a zWhiCL$>jU*Mus7s>7*L4R&$qjAY>@d%;o6R<;unjkFN83t;Xs$x;M-R#;Qp@CL5HQjBM1+944SHs66u z+V;Z=s=Lf0qiuvhdpz({Z*JI4($w7EyLxk`>d8Tu&8>?!+Go#kubiP;a0>BJ{*Uczu2_pkUZRADSj{C7L|CT?D{j?+Q_;pd~5OfQGsz#2CH!W>{AoC}a zf5AA1wIheEl+JA@#jlmpJp1AeS((@_8UBF5+oZ#Bwr$1V>Ge+pTThVX?hqe6^y0k4 z9uA=8I)S)=7`QiwZaA~8PR$+rW1~PG2qq5uQd(uNJTY@a%*&&Xj{H2PR|;5;vAUJo zcay7aTNcIOeX2}$Q}O@|zYONMD8rXf#<|^!Mw95K2sTJl+J3=8}=@cY0#fUi#Okx zgN2cEW!urgit8|!TI@^uA8n- z5UO}|%dwLl9kI>$zlb|GY-WlE)pE-WGVP!rf^^^YPH0d=EcLQu*}&xqG~gm=+o5X}qY8yBSmp0)JdsXttw;67VsDCn4%Bdc#Y6pkIBkar6aa(HLg=1Q6P?*mL_Ho%Y^zsSTTAl~1mZrnBr{7V@li?+>QGH6DI)RRh zoRHOUJ3!TfWhQHEl%uv!M@@)74o$+Z*+0X;63Zl84}0Cmw5;u2aa5zfWaG8yH~P7I z3T8;YoAyXQYQ7Wn!pw&|#)nDRJ`7OSBZ4@rr6{AN_scI|E9T-W+XN9?q+vz(fW4Vmn0pLld+XMF8 z4|sXa0QfPWtz-IqcPHR!;Vd04BZ=Q)hrG;HQzp58>6_9tcxg*P7n&T)DK!2Wo2JT+ z;+n?+U)3iZG>W;?eP(8biRV(?2bxLi{UojuR;W+(t8k{!Szn(wE0jT$;oswu!rwWK zbXDSgqw?P6zvj8keUA0P$E_cxZLj|GA^dA9v!I1wZE=A&ilOi&Tv$$qUOth@4(c)< z=knoN$9&Q8?@#+cvk@Gf*{i>X#%{Yw%gttG&WeoKs+#tlGtQmCas1QyhHBCvD!v7z z)P%BWF?7uX)DCydc+0CvKrQK{No)P;=F1Ot>&UD=dUUrAvo1i}`ic`EPfggj1`Bt} ztzS^1QuQ^t9{So_w|<}&XR>bGP{J44&3kn+?t?I~uEOECO|>7;KCI~Ce}bFX*h)K?57fKcTX{ns$3*)Od1)U<^m)VYR&=|wE_f!{C}Nw8q@QtHP$>$m zpz9RI({5^Oc%;1JrK3w8{TQ-$>l0et>Jyj@&SO}1WUcSr$7+}GnS8$QuTr3;nXBTV zS@zX7t;~dI;J=m%YdVJ3f`D$B=!a^^rYY|iu5|I|76iw1KR{%@mD6qShL}8E7 z5o#Zup7_0yYi&oFi6FJb3TS5+T+oUd>L%Iyd>No~gLV4uSfhrvuB8V_zMGd6j$&7n zN^FH|ZPQ(MFYK2sXAeBIcS>M#sHY_w+xv_fxYZnr?*rt-rfS4DJ{-wK?G~zD?{VX( z4k9%6YEPFIe{qjp)B#5w1UZhmhZQbAc4G(0lwb$8zWbY4t zgh^mmk~jB_IMmU~YKng>tBkZ*C%P%Sp~nE5;doy137{)e0x$;g`K=`A4(lilHMM%K)SM+E5wAc0LD-MxMY$H7p6_DPpS|z zH5P({A+PHS4$uTQeq7ewf=`wrfIhs;^e_zF?mg@21Bms+jMx0jd|b`c|K{eyF9=ST zB-72`{e_w#?J1wsK%BKz7o>Go;FVpY3qXH3wYo?Bfe7@|A)3||0z=21g+;!_4K&^8 zj4u4myZJ98VxDRn--RJf@Aj~;9q%35i0lE z6{AGvmN@?Y3^$(7GVbX0($}-)iC}j1FU0?DHriPeq04~+0BEoP0OtR0 zHrnW08#~(R8yY+Qe>ViG(y^E1s5_@>glb50_VE=LHa2X9^cAYw$`uuznK6hche7b* zpl;0XuY7*iS5t-EktT_tJ&zwVfra3v-XiQ*9<~rm<%pwYPJ$Kx%sjVb1yqvwH7f^g zS}&W!6tJDNqy_PtAc4M3gitl5f8AS!@0j}e@Y=n?^MHI)f0;1k z+qPU9#49B1NWihOIL8D7miWH2kP_kJHCkTj~R zfJU(xdq`)5vl_>k5oDlu`>Tk7-#H=L*w5S1xum^43tNkFn?6QFC#-sd{h%@UAeE`5T=R|;vEsq^@vc{8bd zF@zDbFN@)3fy<2r*p}cUV2n9;wIw;g(5v)Gg7QC=uK@;giV-HTa|#4q!@lMUaA9#rZ6Cobxz3!90fk1x> zWGMJ9_bbP`O>ccnx|H~rq3xgi6*U!}2Kyk4zE{PvEQ7yukaYK6y&hwhO(cTHOC*u(TWSA}0(zUa|SHyCS9)kZ!| zSN80Iq^V`z^a-LKkvQd)k^Xh! z@0UO;8!J3t7lO{w0dea4y3VN7k;i+ID?Jq<`+KW&&|6w{x`7`A|H|3d7Z}lppyhoT zN^EJZAf>GWrwz?IG;f}speaVt4_ixa>|p)~ZAx(IZQ|rp0$rh~O=k?R31~w%h6l=) z@n{QAZ?kgc^NyTynW?GT?qXMC_MFE3K}v;E38va86vEFx1K;n3?U@*QuCY%}D)ArJ zA!l@Ix_Uqfw?bg3(qY!#rT0^#&WV9hF~@nlu$Q@S1nW_!lYO!{F^x3Zn3K?kLx$6k zoN@H){~PcDrAbsVNO(Bz!Zrma*P>GI@}l;fW!c8Qa-_|Mj5%?8j2y)L7Tt z#>m+1KO0*1wshSTYuI!BhK6Z7+<~UUg=f>O^e^j+o zMUze3xd>pvJ>MNvmaXTku%DY3b}jOIj+1TL)LY&2e=AB-3siiyi=y8S{68$?*&~U2 z=Lj_wT2)lc&Q{H}fssFM%~fU|-l?l`6f7~X8yI&tRha1<6fS^Poq-5t+hUGk554a z$YqHS)U}lkP>#6Zja^gZ>0s4Z;IiB(iOky2@6S?8a52K&n-!qKWQqzO21R4*8zI%tIqG^bL9BzEWc~#V#Ct@AgdtZA&?W^mEoxP z-8GSyyIUN;hi;GUO?Pab!qZ#Z^rlc01SAy4oFD#3KIqV2x!>ovtDVo$(R0*xgDu*M z%W>w4^y5m13&(JD&c!t?cV0sA)&dd z=#JR^&W=$6`mhmjwwyWnzGaFS!-R~NACr*5V@3K@g$J-FnyP%u!jBeKzVdu*(Llm z86OxO+YM2b7XMOmpjtxQ-wz4#kVw9kM4bjA@sRk`fIpZ14PaFTygT+(Ygwr(~^6)F1`B;lBcY4ej6sKQ?ag2BCN zDvL)L!H|NQVSxTT9}+=PXF3aY<}apv0pgMHzJm@Ry*G>@lqTY~m0v6|enZA^%El9J zTMUITkl_0Kf?6n<%f><*VYVib^Cveax8EsuY6Ylr&oY8=q1gF89m{M5u}ZkB%=vwc z?07d1i>mowPJBMj&EN@)UJNwXjzXt&@B2M;C7(KHTyXnJb4Mkv=fY24n+x$xwSF;4 zn>PMOi574;;mv=NjgUWyVbzG90CO#RsIPt;^i73ElMck9L(%EJ@qd0|eiUK+jG%&t z%Q$sN7fwA!?jm`wRg&$7NxfB-sv?k*6UTRiQS#!Uru7H5_;i?qQR{O+U#G-WqBsd; z<97Sy4Mc;7glh;sKkuh|xtHh1I-zB)IKN|21UI37W}Nt3{J0*62vCE()t?93dMPW~ z|HZ|){NY9b$ur6*w&o^BDj=H?a8xjA3!*ekgY~x#0$U#L?a#3ZZ~>aCpE`wM^a7K} zWBW^)%#2JHi{Z{-`Bw>5pA%lOZ=|)XgeqoIf<-X6WB3|J2#1H-qC!Cyr)6}+-x|N( zAXfQs4c+8vZ2K>JiVoeC1>6^7J(4nWZRImHchoejUwJ8LeAZ0MjZ9nb zSccgJj8Y8Up+M&yBo$1BVxV#*9I283m!<)~c;;A2NJYAlDU}a?*1pRCl3Jg30Bt!A zAe8BP%C5*2o}C%w8YE|!oKU+ZL>%MYOS>AU(M2S?hRWXJlM$-oYEyxge>3>zxu6Y7 z+XZao3QXjpeK3h^jcAE>JQGT@#t+WyyKIoyg4~qn^u(buV?%v*ei__37*^1V-vsq4 zcWY!pG5#8tW4dZO(m@jjHKmff_M$5|SO^IAa)UHG|CwB2M$3+Yll9I;si!dVPqysG z1WdGwDhXfaR3{>|R2)YWWm{&KrJXdFKIY_}X*g7P`Jp^bleR|v=#aOXZI<;vurtw= zHh5XY{T=LtOyCzQ9$6y>x`=$bhBA9MT$WmSBeUCjmk&?eEk_Ga7f-3{E&G-m99S)e5iDA=#GSVWR=>w6;k^{Qf%Ql9F@d4uzX5=0j0BB zCXBlzTfH9bCKVa+&$MkIOM({zjwX3BVZ}#2;Q?C_s*5JHKbm@kAR%4IcvxGY%dlt1 z4z$EWHxO;Q2bdbS|MIA(AXpW(e_<>T8gr6yy9J?M+5yjEs)sMPMj?c-_j8hfVz*qg+u(&WHw6FGq$`_VxZ^WGz!3A(R82gYC1# z+)bD2ZjeX+)2JC(a&~?zM#qj>@Q#bFYScHEkVQCLSJ@`ysUBD%3b{m^0nKO-1RilB z>{{l}!WB#gX+Ey@31qIXPVUm!PahJkYZKrAr#w^I0rBPSPmC)W#}Nf;ztKVaAgy49 z>XO`~yeKGUFG+k#w@?h$l!-nPQcAOiVhl4GR)Ljb7M`Yd`5rJ5H+S?D39a6)lja2=ww1R#i{J zun(Cjp%5uA5d-MzBBr>h)S0NicF}>pU{K!=I|@8<9`wAOkRwyAB`CO^;i)^i z8U5AgUw;;NN?QEnNhL}4^s1aZS)OM}pdu!7hF5TY1NndwFv-aIZtjIsumi>{f?af) zCMDHkf*hA(68bbYX4*fIBbK<1%K~Hb2{=g9^%KlilMOZpJFBK7^t>2-Z_!hfD8z5S zu>)Hg1##C!4|s#Ko9#)v(r zXNYlT3i1uetj$6zU@J^S<|mPegzD?HTGQ6?=VY0D#mxYs9(Jn(pasr?Hw~UqpeA{_TumqX}4Zi$mw>8n*Y#qH0Ad=lwGi z!J%7J0mY#tVuxnz74;`w@PcrF50mF=0U6qI;$ATCNPbRHZ* zor%twDA^#(w8KTh?^&r4Q)=YAQ~BSwBb48+f7QadV+Ao<$s^*1wj@G0O@U7q#Pg} z#>DrxYr(L1(cKaLok{r>6b31xjBu}qBdUvXz65l)0fZghjD$O0ft`r=D_2N`hCo)4 zY*sMzV*HSRjDpAv2Fm?iQRJCNTLH=rVn@soF<7mX>%0_^pmb6Ay*^=S@s^Ke8bzVK z1HUmb_S!*6anPkDZ zTTi-S2wo|8!)_;gc6|iv?~^9*q{;{ZJb3We#07eybF+{RpKII=32af(_e0LG4p!p> zUFjuzT>m0r6pi3Q7wCdlIS;gK*-fF`b3jquabVM1wAn@>AS$P+kRqj7srP?rl5%mvGq_-8mEiQBbX*s>L8=_$AtRg<};iYkRVlSXJ(cm z2cgq$UjzF42|4-1T$Xz^^(O=8A`*~rN%g6itwO>3OLwnt z*qAR*LQHFt>jZ4eMLD>>*u+B=B3`r@_Da%65VfE*0A1 zN*6&foN<)X^QqhZnM_wEr(bzAyUUVOm9kS9v;*qZy{g@@t$apwats_Pr;Ws2S5onV>Zv-dm*qdqMX>jf?8yx*uE|93ORW1y@ z1qn$IFYtG`At|69$@}Cg8@&B+1`u1Nz-+}M-hgugmm^(#tSmxH=;UDfaNX%zOXV9L zi){+kVPf`&x6SuV1F7UPk&V`7{RB7ffC>cyIH55}#_u|)MD+Fg6w!N-QSTev4!zEU z&^?js?LFUVOYGW&jB%STD!Fj?elgKp!Cw-qap*8hJwho^1ZXAcfN*RxTZYt;8B#5% zNn#%0XOe|)wL+kgiM`@yz0^oUH_=D~H&7VJlw&zT+Ofx?8N|grS^}mD)JWMT$0S`< zomdmszFhHQJn3UMFkTjkDqNSRhFB0nVhri`J*Q_0;IMW9@3w?`K zSzd~@?vs`*jJOB)1~=hWH$~O#txT{$*F`}+M<<*5y9`8nEXY1z^%U+dV;xIrm~fQ8 zWZbw=S#php`qTx4irCh|>ISTR(R7AhAy=ml!_ROHJ5)+x5Pk(5tpGvnW_7tP=R+b4 zM|}8@7862vNF>Q8El#sJ;JfmV`|6;c+GC{;{owlVQ3gQ~eM{At#zu)~EDYjy%(iiz z5jG*pf+nknBc;78mi-!eQ)$V^zGS;SeF5Hnz+mIrWi5|paQB*=#m#4ed}!}Z8H?83 zg4ybPo?d%i>jT*yQGov@%C`6&KEne$6+47@qkas?M^_Z?YnqcA#u^p|5@n3g+`6a@Mqp&XCQ0d$ z&D`{JNpGy#?EJm%_7lD$!7lx!1-HeT+Cnp3lW#R z%?MJ6307XO(ecs`b}TNTiqlE8#M|61&yVY)>+wlf2AzfS{A4lPYC?Kg_|8G~yNQ7v zNE3yn{SH-FIbU6R=GiaQ_Hv$=^yC67cB3t0A$Qmq8HpAAQ-;U#=l%8D?0$ZfH8T30 zN9srPx70^+${e%xk4kA}$PdjlUgln36T4$jx6c;!BE~B>HaS09e>^}|LO>^GKcUnn zT%dgKaH&LF&M1kg*|yMN%-rA)*xx&KE2~9~hz`S1cyN&6Bqzebot;zX7|0!-O0Ik^C3Pv!dLKloIk}?>(Fh>uW(1p%1 zR;Vg(0vJXS>M9D>QTw!eFV@fruG}I-{Yev(`9}|`HM6S+YZq-o8zcJ&Ph z`SeFY;z}YtLj$WiKEz4RVYZ2Hx;H!vCU3{$-mq}ih+_RKja1XXpB~nP0z+~oPJ)-Pu9Flp zT<^#HntT1I{;K3qT34QME~niQE}VG#0vzJBwDLJO^-4pjM?0+p?e3YtR*TMuFNGTP z;P5+9QfkJT)sj?9jb0r9kzuM#y{WM>>aJqV3Ky}BAzKLl;35Z9xAZmy=2jz*zr*ST zVon_JtrT-?!(dz%+_9pShrX-LFV`3XKD1~kSg?!9Y)^)Bff!r?ax^^|kG zeiNeP3>9=Afsh&)fTl3PCqagN{sY-7<|hk~2^FrmmaXW%33Hk;p=g$<@6t&H8%TMR zG4a{dY$Qidbh6c30fs+iOzljD0%xPl){9qp&|u^YWMjL2D$45wrqxU-Vr@EVX{Q&J z7;-%ljtB25VWcF%g|c?qBplhe^P*N=9pY`Tcf4*JUF&BzMLnP91q9#BxoFax50V`F zbM@Fw1QdfJDIjo6%dI3e4JyA&R&5+JJtt*gYg$Q{&O=QUs;IT?6{3BOl1^6_On5`| zz9*g@8?=v_huUwpBCW~j&YX9H@5E7oEl*e5|&MJ17(fC(-C+vqy0#s zfu40Zdum}>h`T=>OLf-vdVE52Osf$SK5_z(hId!7$c>m$=;2KvCa?}MWpG-GLw6Hv zfC6{)Qr({j=N~@OFsA5}PoiWM3=47|GEV62t~K7YI9e=S&Wo zXoy^FTcMx~efWXEgg6K{MB4q0Zs@V15m#L4nmW0&uHh|n+mXn}1f)V6I+2~gNqk|r zb{Hxhu34C}}2Y&ABC zn|4&qC!9u_9;osONohN1#Ig`8E9;K(J|f9&(NA6)ac19z!T;myAEHHzmTggR*|u%l zwvD}P+qP}nwr$(CZ7a|HS^4+8d|4QUsP$;Q%`u~ghI(CjcqqzAgv5Iy61x{TYO2 z>AOjw4jQYjJkS_&_8tqsaozpv;s>W_7GRiD_p%v9t1Y#R*eJDk7C;?TQApOIYAM+q z2zIAqfT9}UZ-fSKdcC#)Q_^?xMyD%TqVrHCj0d>mYmIS*m~Ka+!;PhB>2N3++`+MA zCdsyQC^&>#3X=z*VuMY#brvBbs&0A1)YAG`2R0>nIy{B)qPfN>&Uiar8FcqmGHDND z`6ujK>p9$bNjkV(*4QCc)55X~bJ`7OVSmx!KmJnhJvp`2Lmjhu;U#+Ej%=zcn)1>m z*5>KeW>2(Y@2G^YJk=w>c{wr&(>qTrdh2{_HeKfYn^^3wD#;XG~csS(^fyY)b@TQ;V!ps zorJpA9%4c105PM;=)hkH@y1zL(Agl3fV9^6W6Q8dwjxEq)Xqd-bnKZ&4no5^id8wV zEjdcE!6RJVB1$M}w5src*gY1SC~lFZ%3)IR-FsW6t6>T058EIJMdmB$m$ONp{HhS= zh~G?G(4w}ofSIaR(JkZ~dl76zg3KH%Y}mU+=@5xm5I(hWOAcI~`*PGZT`KTgdkvd~ zv>(pgJmR_soMttLYCxex&Z4GrXZRK6dBM`|d0_VRzy>F{YHD(vXmA!O%S99ZH8&3P{T zX4ZVG2q)KbEkkPy^H)RT)Cb>;ps|b&b!ZAr_ExBghWY(-cCbl?hQmr~3UhS*-0>8C zQZ)Ye_!j_0K)Sy$tF^u-#O1ioJlP9^qBx&dKwMiJ3McmB7t1J+;!O8y%` zYpN!3Xg=~hldhQ}vSMzzY8;IB&KP>G)p-12G;UaaSA}i1sF>EL-L~`4*Owx#;I|bO zO70l;?z41}%+pTmU=ty0`nqP&Y9s$=dinPgNpkxZpLy(Y$Eu3W|6ILKI#&02B+sry z*YPAlX(@0Ca-3oj{~g@R}qpwCF((X-b)(z&M5s;a@*DE4RaI zD{ZtLsnzqnVv|C)7ro5QTN`Uy*CvnFzGXSz*T*ke zNoDf8IXquX{hA!s-0t5HQ-(w9R9N{$qSB`xCOj%UU!bq!K&q~E^pCE@zyytSNF|HL z-f6}8S8!?)!%V9*MasE&T8JUDs7iw&M=Gz#$X59Zv3t`AT83FqE<=wnUXz2H0^Cu( zoSFGoNLWS?8zUSuOnQ1@pkBLA_|+yAj*BK5gzGM4wcGm2;1V}bqINe7Rl1sG<)nK? z0#Fs$saV^Xw(d_)kQVV5{S3H>xdX4>dY+(O_NhL{60=G(LeiM)4TB3z>qyrT$Tdvr?Fub@!cvuH3^8sT$r_y2cIvXD`i>`c+zeIpQJ=K zY{(a6m0b6*0s=DLrZ5}4j~y+68cVPq74Us$0Hazqv0S*{1_Y?f*hbiCw_1&rE7!uP zKd_A74!BC8tU1>&69I&~S6p_yFUSwf=kwI{d#3lj*Z6WuaJ4WRlS zGK9%`jNus=r1Fy;sTQmb(Wp@g6#AZ(B2`DH*6Glb&audQlwE)}y4<&- zwzk;m)ccMmPj1xq4gqWkmq-uA$mZ=A>BxpuGVJ$$GxBS6j4= zXt%y@gT%h7Rxi8Qn3{&p>!r&BI%}bE80^r2w_}kI^*C~G#ho}^P-B?U>r4h0&$)q0 z&YZ3}6TzGjEWR=+bD_iNAmo9Iant!w6c+LZ#pNcnQFRw z;l{Mgp*e(F$wy4QgwO}%1iWa8l0b%E3_MLVh@9?>%=^HoJqASeechjMZCb13KDecv zA%QgpPEoYeDQeENnNfQ4VY;Lk+P&9^@PW>avrlb zj9uJ9(p*%BL>RgaBIN`u(uAAr+a8Y(OxzsK>|~28BOSe zxp#T&+G4=tY&r3oyGPvN?nk~;>(QUKN}Ew?t) z7v)BwzkNh=TJ3@RlhK1P%kvmL3o!H;rc!1=HVTFDe;bIw6~NZESKRc(eQZ11mNY81pjloB`Q=doq(Hj4?9P(0jacV<@~NkrEElDz(<;y~ZGYw~c7ps} z7F^WDajV$>`JhgAiS$NmRI{%Hs+a3+v%~meD$#b|0CjZ5wVxvk9Zcb(0JOz(awwGJ zj8`Jx0O|ehGg{MVQ@A8yXCk40;(ES<>nPVcMc#3hw7!2Xg%@}@iPlf8X6N3g&u{OB zqO}&ZDe4TxuPYR|UyCdHEK|V+E-mS=LuK@d@eG;k#LW$kmp`Htmz7ttE3E$G&>6BO{Rwak7==d{ zvgYc!lIG|UYQAT0=F#>msA8YeQf;8=-kC)`%t2E@jjuqbaE;Ed1Uzg zvcK^9%X6j`W8%LDRxgYqsoYeZ(8MHM7*R+Mo2T9Q2Vdszj8xpAv1CQ|=c46hRZdBG=%t>qwC*LHFxp>DsdMJMSpo>;bnIEMb11yYF)(OrWM+ z;{opG{-F2*v*^+1aXDr4z>7lK-s;?zQWcwhr{n$o-=Gu*;6(kmcViY~z zxG9*B8-Xf})J}fu!GT~1tcL2R8iR~|Z_NN>{@0p?&KZVX1Jth7g+P9_a(LoV)G4k} z%lNxZI^7j7KbII8j$xx=_1pOr)v1D7C7&nkJ5f7x~S zXcYpc6~?T6zQT!p&zdwB@O$nD08q`>J&DN>cLESP`FOca`>?y85)*5}T z+6hgbxbkNhMx)$r@!I#3)#n!4I2&MFGRtSI+<*eh_nTm#-BU%`uB%e4L&%MVG^Ku; z;gU$1CpnSPxevr1BY4ro1D(D5C{L09&0yb`D?V#IEnV486OogkSxPGANYvn8X|oz9 zxz+uzPj07Io5tyUF(zN4V4$i_jsBetiwos4fS0x5=?1AY@wsXaEV<6PE9cGI(ro;< znmio|OA6+DBV8B>@=Ku0<0HFggEHSwO9ft)d;6{H>JsO3BCQUNX<&vfgaK2D+lOtQ zzs}jlO$oHAJa=1ReMm>WuT^#px)Cg`#Zg7+3DAmlg&>^WrD3yXpLCn={<8idH*@1# zY&URJCOUMiTu1h(C8_^GNuxBdF!0CcNHnd=)hd-8wkm%J^`a$>v0`R(3&BU7slM=% zsRRQ{oku%Y!P=m!yy|C%RB0H!lXCBI%_@D!n+dT4(PFz_b2xmo&68yaseiE{ACz$y zVV^b#D;6e8#gijyji$u4G5gqXTk!IO4Yn+M{uqO5>N+!(Xcdur=Q1w7_x#VpMOB;1 zthROpirtW|wed-kPvmNXat!krR-`v-w!CcGM7EXC(g3P1q~8_x$h( zMAWqN0FB#xl@joXKy}ypSo~5>wusfe%O=1JWB*>;t;>-ufL@{(c-m!csFxtiL9RVAkX z8)wXdJxJhnxcZ|6-ARJ>B(d&PQO%-Nt5hd;K4;)pf1oK0?tzGu{3L!s$5V`J18t=~Zu$}OQ zk48M<{E8ti`voS{3xU4d%E<*P^h07kWk6iIxZ6uvT#N*lYaSbk zf7<~(AWoeEYq8vR?hnr@J=}KYMEDb(yPHqMrpZ^L-zf^A31^SNPCJ2Vq}3-Sg7Rv7 zzI2t=MmuHeiF$|MmnwNoD4UP7<(R59{19Fs<|>GC%Gkfia=&c@#J_2gL*&{WA$0_^ z)lP@M5#8Rr1!t8T!X)cOVdegK6F3F({oo8he+M0MulN31#6EaFMBW9QKcI04+x;ae zBqT%y_MwEMpD1ORM*5@GO+GuJ%xPf*NK>>6Rx`1;d-z~M>VFvS%XVci3a~%>zd?kl zZQx`SD_Ek2G-i~Y&N{!Fs;$4smcSVkm7BhtzqDcvRJt5NERd=cD8 z6G=hzbqvmms~V=O01vx=VE?;OJXUR9#Q#6m3&8&|tYYuM%wl9`V{hP0XYXMWEei!q z2ov(gDVmxS15V+*Ad1c#!eImk#3dCyzuT)y3G+&eFr)-d*Rf_kfa7 ziQ}(}Z8Bo!hEF6Z#@(f~-yA!!Cg7TeVl&ZvU_+GA@gTgX8nRaDT z`r-D6nhh-DcxiqSStuMpjYYCXEAZ5R(pU`v2SmGIw$fOfn21Y1{?~i=^^QO}aVDK* zz-;fUa6ESRLsYlU+G4FyV;b^X8hdL+?K;y*5%QzMF7()%`uf&c)!14q-Ii}20s~g8 zm9?Tu&DU(w&`2zsVB@v^eox?GDAb~(l}v@G zw5r6&{E~s&H*CPm{?C>i&$5HIa!Vxw?Nx*LMpF6FRcA`4P?Ju}gHxhf-)Fk;twoBe7n!|D z4Q~eLm~)zFH3~k%T=NyF6oK_1In9OClybZz5dWPqYi2Py%_MWM-z$^buTiPySmP^H z{iE`iLGSXwEChvs&jTkqEANlSa$iJI-BsHam8sH7e;@31VkEQVFlZbh4P!4pmb8oZ z3YC5(F~tQe4?VodV8@%UY;J9s{T24H5rtc^r5U+uZ5l`>5VW6$ggvn;+_y+2T-Q!7 zyGbAxxFzuJIrd#CgT_Au{ZtUh&ZB$2Q5%~^qaZxvhl<(P;GzILW0bhc4Hl_}kX|EB zB=}t%i^Dg@VI-U!T7NIDN0j9BDpvhlP2#Zn&?~{wqbsh&Tq-Z(orGN~7A;AIdtlrGO|HL_96w9W<`LujsKy*z z2~^X7f%_kH(B1}^|JFvI@G>08jNsOUR4s~^)&;_#dPzG8J0u^8>mC@Bj}oH+KH(ez z2EdqtInJ~RF^LnkM%MvG16Mz^tOcn|{iIi&h@P*?d3$3HfLm#T`0X(+g}RqD2o#6b zbMQYEh@8j%I4A@QZVg7cDF1+l4f6p6fc#YA=wM#)x%7r;^@O;&#et#qh)Z>qC2zo1 zsTH!Mc96sVv;nCgNd#6=5ZcrOjKnjvOoW1kj^kzw83>P<9q6$zdAL8^`=z|J8{Ax`wh%igjokR81o| zQH?~RplweREuh=ReUk^fcyvh=75Kwi00%@Ch$bO8mZ(50C@3o9%u%UiEBQDWTn?=1 zUxjAV$3)JbpgL+hS`kPU3wH+6$6P&l31UgI*u>qBK{QEASzjf9iGC6YTuTwBGzi4pVSt>FGhjkQ$-sTkl z{Ar-klKEY>gge-O79-K)TpFr#>?N*Rn5 zDq26lxpfmIsMvWO!pc!)i-|q;LC@-(sH>#a=>eDG966 zQ_NkkmpC0ar#+QL`eP-Se#3MPFy%y+ka6Lse$LwZw-3kwcE4}yy zjBdt1DHkBMt7^877P?Abyk%4l@<*6s9QwfsU^B+tee&~PtDp@>e6OPsb20d!$`nWp zTeWmwtxEZ7`zq%~&f|@WHQ=0RXnKQwN7t2OWxZ$-oMPGp%(%QgU}SWk(Cbnm|s zC!6wqy>8Ff*Rv`1iy9ip|Ndf)(=n|)=f^qab6S}Aq}F8%i; z))lF695HBTfCknY!SMHkFnloNF%qS8UPjL0`|oc&_s!%T8^sJ(enC?2I8l8E(U6Q8 z-qy&6a3k zIW_k9-qv1G(rZs;0Gb4w%ELA|h=qe%B>%|6M~SWLE21#+${-t6@Cu0Gd+GlNRT`eeaH zKnFrRY-ATXZ7*{OgT^kV^yG6IV%01|^sMvEGGqluVM|nS&(`OM%;+_rYO){u8IB_i z8*(V``b(FS%A&!X>j!u?_Zr$bCMlX6kM(o5+K+u~- zG^i)lpVS<~jGHRxu*J`fsodoP^|d;UdfY3WK-0_TL9?w(UvBF#g5Y-3v21bWdfnmI z3qU3{UqY?8tEcDQ-cJg(DDsjV=X);s_f)pTpMoXj)SSDmN*!d~NwIpo`_KvX7R;~h zi=O$brTX|K9|WvKRzs+^CX>EUZ?-=%VKl1$JQLw|@J9KN@LqwdK;WaWSETHkhGS!Q zGxsxQ(BI7U&v|jgcn8nz6|V+!ZZs4O<#?YRx$rP$8O;bip>o1uh7Ch7*^t0?kQHv0 zQQs(&J8->ST0Z}+7KD1^vAQ8Mi2^gmqLkPLJEsWZ5*x2O4O1W-*bjG7p(AN`y!_<9 z_!7@^Ts!h^z=!eA2QXQ!@YV@^K65H{yUUj_UrtyU1S2UEJSjz&(c;GZ z8Y~F}-%=yIU>*+7{Kiut_6tOdt~l2Wc*Fe3Vamzy)AltWZVjy|Z%5yA9w)HOkvOep z%F_;2QZH*CQPoJX(XUr^Ny z>}K!iBa-BF>C19%Qf!TP!a-swNeIGgU=p>{t-5e1g@_Oa5#DHj8SxAOjYN9`Msb_S zEU}5>>ecA$jmrMU-9YK>Y6OQUxY@uT!WDf5ieX_$2ZMi?XD3`_4J4gUL3)vlD6A^L zO&z5n-dPL`zJB!+j**8rtAWo-D%`PB()^t7Ixc_@k)+U*p~UUv;s8_uW&L&5ZD32M zWAKIy!c^)}07qEESh^Cn9JWB=u?5D4O)%KUp2p^}Z#*fb-w_^cC5Z{@`ecgo24nMh{rVk7G20Swv#ij2dSMoWNeSHZYbf<2Dwi9BfoC0+o&&0$1Bc zT&<4-I26=S_|O`Z)iK(DFjJqAdt%g*wm-`S((|NXq4vH~iS6N4TXsyfBh~Ul474xn zu2XE@Qwb1{blwZ5H_^lMVF#Wzua4mgdgDNEVpg4AzP#b6Wb}mSS>se^@+BPeF&5rL z+Mc@eAKKnNRvoHrGf$>1cLWEaj#r%QtKz+(OYfMn3eJu~bQD%#{;*4W*@tk=8-O`w zD@szRS>;OQnhUt>wys<@_vQ#-!KjpiSIyXmcURJp>s8N}8(q}z?vI}@CsStk zCl@OxNmlROy`Eo>l)k#X?mw586D#yiPN2d=T^h5WUOh$8l;3s*y>OmL+2Bmh6vttV zU0}8-SHvgFjsq3N^_M>Iw0w78cDPw0r6Z#+A5RrIfgi{2Q0CwU!v+oJ%*?CY1t4|74-#ybsdQh z7s9*f2zxNnUwB$lUwhstN;{>9GBPwm-9VlX4Ka4^31nXgTEGp|Vy{ygT)R*boB;U0 z-|3a=5)~8g8?4zX5CfI~lH>63NZTFAOPtVE`->4EWgCP5Up;67q`9acjHLfkZN6*% z5>Yll*#$neqJ)lyRpev&)XIzBkOd9gCBb4ZkAOrR+kD>_*i_M){{7d$`Vta;RndQ} z&Ho&n|5Efuju!UL1Qf<5u9S4nHul!M(*sb03@~8(U%5mCi(qW{`uhgwa6yEJq5Bod znH_~%R$CQub|Ev_LcjEXP?Lon#w!IDQJu4|C!AKUWtZ!x^{2auLTRI-oHjuiCj#e4 zggCt9H{;NNTYXV(y#I~@5wbVFXsPVT%Epgpro)uK_?-*O0x*alo-VXEp_;WbcAYsaOr=T(E<7)O8W4CbqTt0A)q?)Q6f4~F>;ydDO%$3fS}B>e@c~)Sv>&? z@W0W4sZhuH0s;Wk0RJDm0$gk@jO>g}^jw@Rtp8_aNs1D$-5>+P&J(qq0YGtoG*tuO zWwM%OMnZ~qza@wGYe(|$r!G=h@O;6GzVzF}?MKhj+2lVkc`jzo(@53gt@y4^ib%5i zZm*!VMechz+~ai23GQiwzh15CLYyc*jw+PAQ+dSk1yJ*{iH5>zS(5$rP-`EW#x|Dh z9ulLu%H=(dtkSL-mH@E&3w^H}tt*D=EHe%Hxsm~=hJUhWN16PCaf%6eiVxI7kp_E2 zwl%D-5)+*Mkj0@vEJ6IM@r9qy+pu4LtKSdpNPbM+!sJ30IF9+X;=} z1}qf?dlQ$7xr9T%HmWKkU@0hgOsZikkg6YmA|H+l!B%Nq+f>+hi$V(ZIKcgv5ybfa zH*FFPGKMDqvEl*#j~tk*iKCN+o$Y@Jvx%05@@Ie%dE*pyTZsWj(Dsb=$0{zDl~m$y zYYWF7*xS&&(D9$z^0cGgWv?mScjsS}dul>@TkqK2+NMbOimO4qHAve-p zS)1Vo;S!fR{RA(0=YHj+ONcu^_^*s2bUG}{0we%{J^=s#^8d!=W^Q6){U1~%m_Kn_ ztuJnWsKHGFN>{{-KP<)$O~DaV374D%EnQx8A+rm#kaHS&whJeam6H3jY-a6 ziAfi4KR@Lk-oL)|A_WW0jQzdLM2_dKN{7K;7IXA(QS47NPQn+CD zc*W(e%x@HM88qMM7Qsxas^)$QE%GiUCptM9J^TuT{5w;g)X7}jBlBEFSQ>tcCQO{x&v{j3PF7Ddf0q&%AO*1a7Nhh&c)@y~AMRE^cXAMBo){Tu+ zCuG#eJrYyb1Y+-5m-ge6*-<-mDJQLu>1|Nepj6+h5~Og2ES_vxJ%0`@pPW6N-YtgG z^$0|3`kC&d`$hdue=&KzzDiY>N$VJgZ@ho67LEaBayNJU$KP3HkOsqyKaIA=30+Ue zl(;M6cBQcbt*JZc_<+tr!-??Uu6o~~!TX3fNXUzDr2@m-B_GpU-S9%jfdt_>!EV0A_fr~-Tjg*cjvlfC`MRAmzvB>fzBQ!K=TWcs6 z;v3emSKzf&fiid|=e6c8LkELZh9Ai*vGsBhF(#BQ{q(1bLj$PxOo zOc(=Q4*8c1i$Tjw^hzd`cszA7+oyXA7`ffp$V4044qU-v2wU7g2mA`tXk$d>V(bA* zCn7T_FydGcL&FTL(U30CvKl}n?x0*%T1=mOPX~vQ860Onm)WYSgJP5X)AcETDb07_>7@w15oDLLi^gQX_lFPgjT~0-M(TdHB(!u6g;bvu^iYl6)9GoT&aRH z@d#FFKWnQf5IT(46h>tT&z;e^4WiM(54P}agmAkC?HU9|O8G9QDw{JE6M+mD@|AyN z5D%S%S(J^7z7NI3sLR0hl*#}z%t)pLk0Wbvz-W4-L7>p6Ki4D_l`CnFk>8L1Z|DKilh_YTvGBNa zpcAEX1s^1JmAnTTLh#D$D+#_XK5)qo(#NKR36{qe^kG z*96fwhRX#JK1>43UpsXB?Zp>>5`r~_M~AX{K6#*ea}iVg7&T!~7#8}ho3ab&NCxV52Iej+XHx`pX}LRZos>cW#iCUC zzU|4XF5=LF1I3_Ki)4&yNuON?9A%m9G{066&>kA-FReOHT3u-KF^3@L>!uz9ScEIy zjs{cIpf1g)KqzRxWc;-ThKS0uoF32en#V|;_8&ibQaqT3rv>3)a>pK=z|*vGD(aZH zFh3uPH;-?Z_!tIbkobftFnr48Hw6!<4;W zobYctVn50p-L6J>`C0*P#hw3TzBm|5(cL?7`HFlh@UDEQz28Zkqr+2qnI1!?A@4H{ zKXXQGH)2j@`>rNKyV3`Q$Tha7id&o5lwOXFg?M1^N%B<7cd6pOd4{?(rhP zwan8>rh40Ih9G_9(jSD7Is*@dwSE5Zv@KD1JSMG73E+bpHQUTU?TbqUEn&$fEmAqo z&wrWMbQmd>mN^xDO&)|(r?$6dtFETPx5p}(yD;a-prTSHZSHp{Lw$lCfylO`V0QZg z9PcTW5UEfiH;V%!@nrIJ<8i8X9asl1LqqA$E?==B8G;TEW`2$t8+8gd= zuCDt-)7W%cU1%9RTRgo!t{-ns>>ap4|31n0KG2at<7%0e(@J`}W|p!bYX?0gzaG~s zfw}3zz>lWV7}!z|))2gv0>H0p`m@GlCJw{lChWV4BSS{uEd`)8Rl1h11tWb_k1-}! zV#~UKlxig&I(};61_mf_)uPGo==Zc;fG}KeWPpmU_8JPfnwB`uZ4;L)e<)+S??T~5 z;Z1MfpOde8RysPEg)Mua1v7~XBUIu&oZ|3Ra zd$s1F;o~;(bNi~5Lx|12k}qMG-HOK0v)}+|t^^A89Wi#5;UM9p8r_yDeUaC~&%nMU zE3}>0Eeyu(3+n?$;%+Mup?iABdFsG?@#@)ua%NY>g@LaMZ-V|A7|2$J1U_#I$D_N{sS3m8?e*Y`;5>g!n>lVu?+V-{By^6QB$>$zId{#S|I z157U?x0p+H0vu1T&o%oX`CTABR}`lQg;R=)qutrwhWok`63{~g^90Jh)apr@6jv0Z z%Q=i_(}B?AweGH;KRDK@SQu~R8N30G@3r*V-|#z=;1_0Zy2zVU3|we*l}+#AXXVjI_jK5>M>p@ITxbj=73AUpJCOFs3* z4zShLg;&O~IM{|QY#0lUvD)|Juf){gD&LpkxLyVwS2KinOvRDd({>guq(sJ})I3i95#EGJp(y$rzq=^0-M*2{ZUT)D`CPRa@`=zjtGSVd} z4L=m6GLRwvMhG8^_e(|Ayg5#+$8t~y%6P542cq)#OQ)lO$(-;r5nfTsXLH|s`HJO8 zj}XwN5ge4FzkKmK9WjUn(zpfzYOuC}fKm>wT0NN*Sv|RwS8deCTsV)4$l?1m#jMV9$IuZ5q=w zKshrbyLw&vvZ1(_b+4>gv7-)yX1N-;D&Li3x62WHHvFd>%c0=nY`+#MzO{cFj9F}I zQdCo>|0N_|cbYzg{zDhWf9N9o-*o92TR1uYKjM#GPtU^E!dXx6Ka{B|HpmVAM+N?% z${Uz>VGQ&uL;zO6zz_uM3sE>GQa4<_S2rm`=*20wp~|@Rdfn}Q=%}jZ#8}9zik9el z4eD2mGu+I2Bel{1_ajf~XJ;*AR1B%P`wJGc zfDNlzOE74FQq(ln+iF0#LeNz7!{-ZWTh^#oR#KJ7g;VA(B4yhoS6=Z-PGhgI+L}f4 z_3o|t;cb4#_NGD8sNqXhkSuwo4ualhAJJQvH;fLw!x_9`mW(9!WT{C+yGBQVe+fT5 ziwq^KE7-lJiXMfuLMSt&o#p9hrz!qLsk48M``p-w%ykRL;(`{e7F+MgJi^TGLXY3o z)Z>qrxgU?@imwrF!DLO=H=%YKzu0rEIx6OcTs6LJYgD87v?bF&+6(MO)uT`cMkxLO z{TBhKlb?(j006Rz003nFcLM(BS@i$u$FQ(Aar~dXeLPl9TO5gdFVyzVCX%E~Pw5%c z)pg!ou{AQ?N5gbmlBR1%hKeL44l)Tmfyp&fCw+QuzyyGajX66Vom^_9iIDjVJLl{G zoUzE{g_Tt#sJ`_`R}_=#qKS`=EL_t~R5DBhyL#SSJSuhMG}HeYsg!yT=e0>aMjtt= zQnN#t6;ljU8cLa?78Sx5c<492NT{3==BQsO5na+7qbg&QvU@xq9>M)sI)fjocxshr zkp>XJ0eFM@Y?CY}_;eKb)45D7{yi+3`OR6O0a87I>^+EL*rb<75z$j;(#spA`^`uL zVnC%DSC=49d^eRQ`ES~EPT+IKGGpD;&zUHx@)$M2avzy=03JWFgoK)4?A&AQ<()C7 zAHjz8k&aK9^g@ApjVWgrPika0#m{g6P;K0Oz_fz_U?9dDL%R;IMUv{a&^&oIkd&r+ z1GcARF*=JK>a+Qa!gvs367~HBOW@E+pJxMT?LHWfi2A`WIE0=*v6_j0(9$u}kUbl8 z%Yv4!s1l=sgD-`Ez*+R2M8TSMZh)P^sjx6BO~t zQ7uxOKBE!nfLukSt0;4aG;Cap_Zech)_Yjtr*(gY-jliGiK4B1*`Z(R11B#F11BH& z3L0`7!!Jdy(z?+0KO9Va+QVY~m91<*+1R7IrStuAelIeLgC<5P^kIdTbL8XYF#MZ| zX3vx7@B8I@zeV-78;!ld?u&9)Y*>QUj7w$MFT#J)=()!+k%G(P6|PD+Nl`-AeO$+6 zCzjG(F&X7M#>|`lBeu*8=mwh<0;tk$ravkUMqgHLgdE0v-#GL~BNHqVqAvWX!?(hH zZpy89364K#vQ#(CT&a>b&~$<)ORqP!hTR?o{+X7-+x=&k#Hp2}(Jz^)F&bKbqFU}HlD$|vB|9K{a>r-RlvsV* zBUUUm^M(I)ee#wl^fRhCVK8nQ7tt|3!#x3sRefyYE+hZryF3LydzdW-b=v)HFc?1r zmlXnZO`lI$(^0+zg=?Bv^Mu{}W#!NX;_>p4L-OSg7YH*`2(^SV;t5BDCXb>7(1~g! zKFRngHv@f6&n=aOU;9J?c9iX~JX|lc2pg4Z(AuAYSm2Q(YTk^p6P_~{OWg{^F2E>_ zrUBPE3?M2AuvqK@t9UPtWf26oL#Q1li4};Rm%jwqO1e)Pp0SAjQ_dwNPC$9uP?tgJ zFzK|67O$CGlf*RV&5)eyq;?v`q}>AwOw-+!ryG~UC|u_!&u)T{*ujDV;C4p{Z9oZ_ z&}-)|&aWBR1^?JdbvfD9cr0hNap#ff!Lb(1sU<`Jo*9e!K>BN7zlgbowz4sDFRmi@ z#@fD?ScYRzSegyK%YE<%Ix|mZLrBZz>MK9KKMlD zx8ypiF$wvVQ5t}U|M1;!?a*4ox}|q@@_@bnXNgeBUSW^a0x4DGD~n6=NUhkqDpKzY z*)od(%Vyy4`gotIog)hmEUj$dV+=lR?5@mz0sZoBFtXiR-d8SDU9de;&yOB^f61Cc z{TYk@X05XCo9)w5tJ&orlzvTEg9HH-9;J}$diA(l-`7PL|6lvq><5)zkj_7G(szCc zR#r}{=GSHZ`sr#Ldht@SOI_N&RxB&-a}R(>L~`$OL7OBfSwv<-FdLSMK|UOMmhKCw zh+J$J^|uEz0~4)mHIY;O*zVFZcZ3sipe1a{3?chP!+U~SPtIq69Wm;d0I4{t|A@9uOkbn!k8pNe0@3myNs6wkbvJPR*SiNWv=!Ut z$c?8=-njIqld7R!Zxg>yWaMr~pJ4#t^3>5(ysgYgD5Ootz4ZIT$MfeSlPxQl#-P_( zrz^|euSb{3ozdz}Qt*C6H(D>xI!=@L9wB}$F34=~Iv>gN_k`;dgn=T_d8h{P`U3Pa z3sVB;{q=tixWh$^f$-t~h;;?24P=Yb$PnsK3^WuG4m-YX)5Z3^kVZNmMH9$SdjSNk zEr1IKog)KhO$X~zO94|$aY3a5;OJm`*Tqk+#3B|C^y5<%Lqr|IhU?=Uq9SYQrh=oy zSSVqVZo*sqReC{!#HOfU^W`ZCHvJ)0bwUN^K|GW94KQg*Eu)!an-=fyXo8x3gzoyw zAIc{kd{K)Ru9||T++-?fQv>{|O#;KeP@qCL#Ab7XM7B>)Vq$d*Li&T56Utml1}7{r z)i5A;jX!KcjUTxMhSdw~g~y}XJKvO$ic`B}f7i`B| zg)&`CzO=nhVoL$Fiy?B% zQu_sa88!{T5h~FsavEVw)DXKHPEsTTm)WPMqas5AVAdL4YviYI_NKuQ3 z!sw6iA$<67eYrUL%!%bY7xI!65=C#B$NQXLUsLCZW0mV=AlgI0Iui+oWjXDPAl^jXZ5KcO3^4UaHGsnsT zNn#gH%JT!WvHqPH9xUQkDBRfP6QAn?U{IuvYx&cusT-I~V!dFchD1$=5D?RxlBZ&cHH{O7Ao)ffC*m85~Rpf-j=na|LV04p{G zhKjRyG3+EvQCd$;CWO96rre9E)@-a3@R_}08J&j!@-e(;0&#$fV50#rNg41%QjvhX z^~4B>s6_{2olWJmK1 zn9hYL?Mm?iJ|vg0W-=V1FPqH*4mfP==HEr5ao0q>7PoD+qJr`>3W3ApjS}+R-L=#+ z#aG-2*mB8UTd%123|J5Tec}m_>5s3eT)C*CLR;QF6akOaxV@3%pyAH`QR` zC;-nP^HqPm9L#9MRpn{chbWgKT40cCe%>qQxKY6vQU8Yof@fgq1EeVplVkk{9T_bx z3jm4n8!DdI-ON4S6_N$ORM>p9YN5ss2ozGHa@<@5t3FHwMGP=#HI$t{%Wt`)(a z$S7P<#YVG&0;P1qF97GJsm*}OUD|1@+}>6{gE3{;MYT+|F^X6~Ko}uXE1GX!&OD?T zp@&qAK#C_=0YdrT-W#?)K^IOnf@d{dZ2Ylg5(W7nC$tQXeP2n8#Xyx-w2-k)nJv@E z>n4~aQLrQ%lpPe83ccg0C}abEJzpMV{igQFr)8Km2I@sn#*GE{!e~#x_bnaJ7O6h< zGn0OhYBU?llAVupz1~Vc@7$!b)Ww>LC6cZR9?t?Mi1`TACg>BNj13|m4v7*}k{KSfv- zu*Q9Sn40CCXhAKY9WZAU)(-YlHo0UaA0<+boY{DR1GaKjfV~}V;&N^^sH-1fi-^ zlLGWnhx~j4m&qVMU&^XV0EB=T{9!PiUHl+O0V={-FAU@hCaGE~WKZ>$EADE~V!3}R zl|sD~yZ)x+h^22B)0n_}tEidMstoAnU9)Tm3&z*ne{f(&y-}0O^_%L!R0qjLS&gCirMoxC0f3hwXj^EAy zN+R>a#M;LBTIT=6B$&jm3mu(_)cfGiQ(k_L1_&Jwbl2YqKfz~&8|pZRdT`qamvt)h zQ<%F>w@=T0pVux9#-@VU$(1$k@$O#GEFaSwP(ps206Rd$zk=weJk6^OpV%PK@8D+3 z#0M_2`efnh!y3|{-~T}bv3O&L6H3WYdP2-jJY+ouJ@wfYgsS~55QI*Auweu}V+gGS zeQqN1aZ3tvaOv#snB+Yn4dLdX-uWIanR3SmK9)l{PtqFCHu09HKFDtU_12!-EPMzh zw)dpbTq?8Qf7Gytb+hzy8L7YI^8EnGMi#kB@s@e|kxDPmTbBLmk#8NWYj~l{(Lbcw zscYq9LvJ93iEh5ar}w*T*|sB8-G?5j$>m$Nx@rf3#zGRVpm|a91gh&A;D-dXmmB=_ zf8f%jGz;9zYfHfQIm-bBJim<{kyXJ4-iJ>a^MZ&F2E+1=`)EK$CwG@hz$UC02cVRq zikfP{Est9~99^F5wyc=lU(dsRy{zfIt&^s{-#bU}U<;IqT`|eA)66u5L}&X{3rCWc z+$Mj*0Sr~c7yAMRR5A5wG8c!4;92?PQoxvFAH#O0B7LC8);z5 zRtQziNoOqBK-X~6NE2FM1p+DZDr>+Ja*Dp-2AnJzP&hEh*GQy|fkjjvS&Sn!>xEYhZC)XmH_drptnAsfMF?_)wc+uy^S6 zLN!p-{W36-{zQ5Y#`gq+(hUJPqU`71R_~sat4E;;4K%fH{9U2Jch-)eMaoqvVk|EB zB+fjM#h~{O5Y2Zpj3_T!B)P{SpYvyyWaiSf(3*NuT}*i560*`UkO$B+^9TTsXEjHA zq8RF(8#Cg-zOKCJtMk(!2+sN7b*NQ@rY@S+vBr9fU)#*(Xqx*-fB%!vG<_II=1`ih zpUQoohkV_*Yo?~<{0K)b-8X1aCpy&~n7<-q4kix>vzgxqoHlqpXbS3RPymOdRIW`` z!5qe=?*OL=JKXTyMeo4vI0BY*^`#zAxC>zkoUv`&WdKxz^B1U!HKj#i|5P!eB?;Dm zv_FxPR)T$)vd{JmLfgeMm0Yj`B`_^sIFn2)*d1sDvOfDTIo1zX62mpy4YIiL>h(DfvRpR%xg=c0w_NR0 zujVJ2)tZ`*Q@dB2P(Hn-YalvPD&WajfDU8L|{w#6^z?nG%7{W;b?nb)>_ zD$iNuhj{*Xx!GlL6UZU^ZL)G0jXjOX-#Tv9pCm*l+g$v&=fv+0mb@A1Gc^a zqd%mONZ&ahh+WBZD2sjg zFIVti05r&i8+jtqcTq6El*<#)I0ggQ`*=1T#^ibD1}3pBOi)0Cc?4IP|MNGMV*bv% z0RRc$#!<{I0XhQ$1I)EZk;~45_4{|;zrg}+SMf5ad~*jX))@2OslIH-eZ9EtoaG5f zP-TiS+*Cz?&biv9=|Gezx<>~ z#V)~bVxeiZ#p`zbJiD}F8>QtLC{-BiQtx;u6&~|A4IULLE2hM+&hdS~{Dp^sFfX=> zV_uy$vVLq)h|mf62;STa2z$G_u(r_><&Hrob}6qF2pEi=vod`8H*FPEuV)wafVN|SWI#oS zsGUQ?eo?pu_)!EukAFFvPrtX#oLDzJh;Uv+{ZfA#E!awi0yEm}IrmRy-19(GZ#`zGe>jRY%8@v?rFjT!% zp_+gE>7?f{rUDf%+`3cUYt{S1nssAaB?YS1WqV-0_89u>g;ouYf@cXaku=@TduZW*& zvC&%eXjc4^TazZ!o_)_Pi78|tNkMmsrn-pK(9-+hj`@_xMBynWk6So5Z$ zn7F=Vm`~P5MARimaNW&{81hHY)j9`etKM6&dwjDYu0oTzos}{nf-XWbXWxMffDBS^ z`kqi<0R?SSB$};n`&|9cbyDL`W9}Csf+IRL=9I|#bcDzPn{I=|Nk0EDaXo+8U-`NN zzH#Nj1+iKSnEW*$6HH)Z`$qjyAsh2>C1f{mo1k?R*2j-7Zgin;491z&Rq#XyR~(Ar zI5LG~NKn29l0fl*Kw`>-fFm8a3s{?5ZiXPaYIj$nu6Aur!~93fEV_Vsgh{0$k1<-{!gs5KsW>-Sl$U*|}KtP$(f5$G=$B_=O{|*}+xC}G=Z38mEiE^kf7PYlGtdTfU0K-*|O$wJ%x#ZdnraQaA zCil`hrVvsPR7x*xV(5eSv#Rh+o^)w~S4Ik>#$^9bJ_9t>bg8Yx_w+30@b=f4r zp%)Fg;p^x=WqdY#SaJk1+=q$Vj7iFluhG~fQ{|t@;@N*$KXH{igbu0 zlV~t6QTz!`hOw&2oz)@*Qu=)00k?&ETsJd2CehHzKgHm0G^VM%a~9eCbfC)nbhoWy zvQ@8N29oF~k>174z{d{j+YLH?KuILYT|3;G^QRO*D2M2{@+XhATF?b`?gD&k|5!+k z=-ure+T5d|X6wxmVP9y$s#~7;UBEA?pLM!7G3TRbF5c^0@CO@w@dDg+11==yklU`> zKAaK#8A7rYds<`ymBSF@I^wH9Q@d}JKds*ytEFY(TDE(&m`Lu>b>bTC40Kj|V*SlGd1i*2P8!JVtY;ccLO^|nR|bZQptUuganO@w3Kx?2oWK=!0FPACM+3st z6KeEtxMMyAdA~yZ2j3~q+jX?rJG$fVYZ@8zn5w)Qh++RUVNGG1)WsA8-AD^@y_2Sv z--e@N1&20M{gcG^!+p&{e;+N4MBH`p40uD@SQf9vGcqHc)_6hKCZUe}`(Lk=fkafW zDnS7NcoPBukp5qb4hD`!<`%C1-v&TBdyf$ft+=gGRNu9_^hE{Z!LA zT)m|&!w2Nvso&vN;hZ-UW$0ELu2eUkt0~Vh7KW`z|pW=B<;Rvjn(vFfS@%5>c_H(+8p!-n&&r6|xLar!{8gn##6 z*=@XCiB)!8wHGMqyJpg_bET(IAw)+cCm@y+J&ad&cOG;NG6$krxK_Y)dZh@W88eUhgX+=* z?``F1FE4*NS|q&x#9MG0wR%@?@oks})`q1AkBPU53_P6714L+oaB-L=)^YFHV)m!* zkkp*ZT-cZ0n~iVEI9I#1kV-@}GQ3?g{bU=$g;x}}AQWvYlSoIR(gVmb!;{thxq}Ii z>q0yCbB2+z_=cPd&|qTYalsavV9g@!Ksd9*#xa)>$!XU0UpR*$Z}HE!vWJ|C?2)@D zjS{vD$B?|OAz;xQ>*3q#Holbm>?~h>K6zGUBsPRGR0o78y~Z8?VaN^ELank7OF#k- z76zx}k783Q1!+V~f>>fkJIrCr9e6P(tL8OU)pWnLTHQ_t4tYurd!KXZzTxRcs2VbV zBcp2?;M*5te!8CLOu}Mh2pwFc`$T0)1A>umNLy72QecCZR)aFzs4vc7wGe*wS9|GB zl~G8zDIHv#3Rd!m{7xhUJ}V<4}wfD zu`W@MFMRy~_iQiaKBJ?BGLKgA&89yRDgo1wYX2G3!1Abzjp~#g|>r4AeH-vd`y6pn^r<(-wQI!)k_bej$~% zeUlWfM^R}|a(r=Cfzbi0uq05f8-sQg*-UiMXFrIeA|>xu59&iG%M^364I-NVF_pwd z_eh%#pjVNIee!6m^;Vy78LGLp!53AZBuo9K%QQ@9D9~VXH7%%rV zbf{e*jOMTJFofv5qxsv!!vB%!^sK@O>- zrF?HOor4I_1|QkTrZ5VT65wtV77dQZ{fw6>62eW$5|An8dCDh&1Zjel{G!g0Kt=VQ zySt2X36MU*>jh~`v}yPEnr|-|Uox%;KpXW9kM9)}k6P|vK~G_$trJg!SLXbEqkNoO zvT*KXoU2+Ve1Zm!;hl*ja)iV%_B2+~d%ERmgrG486W1ja7oWZDMqq+yjMST1tTWqf z%zi_ox-ROUsz1A65Eb#8y8;5)Jr`B@7IlG$y&|V-Y-^4%Ur3R-6exsas$Ot~1{Z+g zTvx8;VaVlw-Anl5GWh}v_9bC;FG(M3{QdRdP}B1z0Pb|?%i|CUe-G%vkarCL#3MTSd|$|%pqFHeLMp^70Y zc9skE@aI!TR)Se=0)zD0JRiji0;ZxNfNI#+K<7EsQC{~0kD78&^;nb5_r!2x!K7U0 z9I>p`>^e{DwBhdiU__Q*AB)33C`W0`SZ4=T;+#RxUo1fJ;t=&aKIdO>)Q@7~KJ;P~ zG(h23^B}n4h?fiHJ`#3rOO!G_`i`%S{w$x*sUM>1WCapTH`N;+A)00+qr0Md5_{2+uZ9SV)9ZG{h zl8;{b&ojhZm(us+l>5N&;qvoEug=%E%lB>QgKjmZ(3VI& zHw%wjm(&srZSkD)Dt7{jO70opCJLc~Ovg|u&Z+#i4+6E*GXlKNNrEMIj-X)6w48%$-DAquh{(+u|Ic2>^~oy%f~;-np;v3&l_9XaMpNVd+_meP+rvXS2M zIXI{mp6YR-WTzajNH+bK!^BIbHE?~%ie~-hOV23aFYD{UqCc0N$xeDsN$2!4gidr3|)(fh^KiLn8O+3jobJMn%)Jvi;gL<9WD-$$z zj~}7Q{&d%wbn3t?&#@%h);u`ZdCph7egs@ny;-`keWa)`PvCOjV4*xL1WVzGA3-i| zs4u<^wxrb_lW_rkET^>5>OXRsTr`Be;}%1OLHMwoKirl4%bA!#$O7 ziCB)I=vB1I3s1(Oq&__t%|hO?q}+SCwk^CaT&{^1x{F;HcdpBTDH=4P16)R$Q@S1GNk8$*pg#Fj#JrVe+9#Y(DDN~N-NpN<{cT!wm zr2UR%$5o+cO6iT3ubKt%vr zp_ZL3)aaOZp2OKzS2muPuc?7`HzsbPf42#ONHX%oe4b*2Fs>rTjR!w8fP0LKvuOHE zX60hwho8VsTYt1orJMHtYYHevjB|Mn0RVuG>;GR+YG`C{|Nm-)X~EWs+hTk4@dLdQ zCFn@VA@JEEqS$1i^-Nb znxwUQ%Q?l?sj9Kth?jn1Qu;EYMg>&gzFt)(pRr}>)9{amj*f2Qt7o3@a3-OLGd251 z_|}T{D%gf;1{%x`AxFiK{Ic3OrFY89dj>IHweegZ*LKxH@eZOFA@VF-{Y`p`*s4>O z@)>V_(3W3H72p-VkVaJPf)(lY;YeIf%A-ny(w5UuiD!|<$Zoe+eDwquycMhU;3mL{ zNEUcq5bL(17l=etO?x%_qUU-t&|;xc2+y+69-0Xla-x=$DIf{TeB1;O#{A!x;4(m! zSB3Auy5-AJ7d$#TIstu!CYj)4&L9`&xHQ?Naa2KRX>8FIN+ z?f&t8@yWlAyZ}$+TyF-<8K_>=7Dc9DJelG)tWC=sigt_wi7lg{4QaH36tUAC(l7Bc zty0cP*!9>{V72)<9FncdSe2@H?KMT{)1p?ZQ9b~@9Ho9KkLGfLs{@}h$vzDb31v8` z#g>iIV=i4W>m|xu7tVMnwxZ)43K;gG2ThfJ8gq7lA{WTbwo~`r3@)Z4sBq2YEn49# znhz>`kLVWBmw;%KAr0E-{I?BU4A2L#F=!a~Gkb&^ykwPac?!#cbJs5rQW8ys8Nkz_{Dy;mA{)l?@XlHob?9?2f z%6NmZ?Zo;L&TusIwc`lg#w+t2arRf$B^kX_#ld}k4)@Q$U%Y%;ojw3qfe@#9b0QZt z2NssvX!shAdcE_748Uqpf4CL<6c};~;{sKI^Yr^N!j@(U+g}{Kg2CDYN#pwh<+&v# zYaj@BL&DdL!x0z}#Z+XRekV}1k43!|{;1q@axO=4Ed3yIeW7Qh>cov#hj^qf9UYu3KdO zU_goE3wZkQfWLS=u-8`4HOZVl1N#?h1b+Er1V1BWbA6rx;`JDPv;!Ce-+)5LRK|uOWOE_bJ2GN9$CGG zr)Mym-xE^}!H_9)gIniG#$VneJR<3$pQhP;o1TH}kQ5hkY3DH9m*;EUn=C~jwH(Dk zB9eTez%*GYkp~2f6z>h0T}L~g@}+*qcboLBHvzNcCukFNys}P#>zKh3nL0F276E3h zViJg$J#6#llv(ofn z3O;;gv(tW&^D80oiUM}Px^KtE>84X1*YgLSk&WpJ7Ym=w)?=fVT9uQ zP-iYA`V;d|b|n>|H)Ap560LEwe*1GRAnI4EYl|ymc3C19nn6lw;RGbXE(fLO1G$|S zhm$PS%ICtLq{LGJcOkBZ%~)VPE|KUXMGT-CwWicS9>GZ7RZucGfnMO0K2Kj7(6jCs zE0~O~Ma2yEcS)=pwxmEm3P4s)&Nz-vB}B?qiOSqi_hjwKnE)k1^uvqe*>|4 z#C`e;4J%l*bvZz@Xm^4#EYgX5ClGc zM~o0LB$}xlYrNzQ7>(b*0%@E%sz><+2t9J^7Wu<(Cr2y$z#MbBa+1k#evE^vAm)c3 zOu*j|YpABz3W<$p@U7ao!mH?Q&?M?;ZEPdVH0aU^sXs*(ldv-9psFVl2A%T=WGPZ$ zBr_@40tYt;+5+>`(jSFm-ZA4tc|SEl-otuv!R5&7^qa}gft_CIRz{EyXMwB56tP>o z^0K~P&5D%$u* z0#CeOe|5cgWE8*=t45Y=B-4fYaH^qIk4GRRGrt@1w^x5;_56cJLq-DfS z#r21}DQwOfi{_aZ2{0?2Nc{1%9&T0~`E$U6mu%NWJh%s3hzHG7kmrNzG+CZh0!VAn zl?vU#{wE~ut;i_KYND%Z0A2HVzYMMkDdYV6OqRqfLDA0h@Or*%01$AA7f|8xL5SZo z+GAfCvm~DKh(`wFRX&>$j;`zl2!`@+K2c@<`pnK_xU>#@hI2HWKQ|XZ_Zisc9aKv# z;Zbm>B8+3)ZSHY$CZPc-w z?v1|dx2X-HAFd55#j^K#Je{}~IMZs+XWlFB?Cs2`&YGK^GlG7YK1#P&@n(ztX4^M2 zm?RKUNea#uf<`Gh_a(7xb*XI?8YzU)8h>@1I-hDLd)i^7`crv$03L{3MmjO@UN(RojuOGIO$Pdxs@6!l8CI~gJ zz0HSE%w~2X1UGewy=bWD%0cR0^1s%{ZXl1n{5Z_CrD#C@`aJ4t>+Aia&8!5=Mb8FK z4RWxjS?<=Fy^0yK-Ewyr?#Jzw$ulpe1cQMz)RCJYVr5Q4p zTFaU?2i)QUnNl$OF$nSzd(+EGRNw4;GedNY3&cCieSO#U2dS!#7<&D;*9q%oEOu}$ zEfRyS=iIZ$?)Z!eWrJ@%M_nxp-LT`>oi{?4!LWw%DmGRpbOte&^p-vQejR|c1ct}{ z_Yg!S2*vTtttZn$AoeCd+L+ytn$TQ7hp;pu^Kx(iw-c^eW_Ow`T)*Ty`^c#4%V^Lg zk}FRR^WK2BWT468Wz=l9$V&@sTL!%b{R|B*M@*PbWA2y}dGxb^+eU?1E(J*nK9h+c z&b)d2$~be=uD+NdS6e1Z-PaIUc(01IC2S2WAJc|kk@uEI^O7u8a&GZ(J z@b$(42{Z}9Z9NRe6}O^fngB{;s0Od*8&OdTmD!p5uPk zFC}P%A|VL0rSJx-+!d0`Xs_?*CL^cNz|SRddyH?&E^SFpUgSi-JK9`3AHUF^S%lyi z&P-rBf&&qhqj8AVIDLG4-jAwSn2_B~$Tjm6-u0MJ!ScC>#_UrrHyAKAIAj;VQ5D5T zetuv^3MUza6Fi)aXHH?p^Oc52YDoJBZYzEs0PZKaybMLPf4$AJZSUqyZ-1?HVwwh$ z*hI1I{5GCNR#;}lvj^@azEN}jtdJ(}z=n9{HGARgiXtMBAbl^Gu08dmIOlT@-f`vFElmo_t;COoPfm=$pVU~r~m+G!02_1ypbu3IbV7-n&@g$ zUKs~X+_V#>@zW_5f8Vj(q>^p9QTlS`S+ZGjG+lNSuNflkTSkVEI+D*jHv+BaHIHET zb_M*9!84PCuUSeCZ1$?^jQxQ30aB*5#E}b3t8lRD!a{vu8>8`l(q0oaI^*wHju4G= znTCeXs%{=m8%*|PZiklT#{ZWb<9tr&48fo&)5zKL**SF0GMj^({Q%{YEHm2iTN~(( zZ0aEX=QJ6H^UnYXSx&RkNJt}us{a^p^&MFEY`wS921Yn4CE7@8K3O)7Bj3Zo2Y|d`c z;c^*-_WitWrdI33c}Gm;Ku7q{34%wl{wIM{UHqv3g&VWryuh9PM}Bv`JN_tG48vK8ju-y%Cuh6F+#X&qKgY$g7H`sq<$T#&!ETWs6U0b z6gb8)%?WulEoR{My%$4kGv3zWUh%wyiO{ij!#%|H*;drRn3B*WXQs_tIo2sI3}g>= zmV3cTJTdIh0D}ta1d(k;dwLaopyQ8}7+}@c+v`_s$>^RcL1p{wNRkl*>g9b$jjKf6WN7?90>@F#-VKbOHbn z{a-U9|L^&r8=oI1?6HRZyKibXg^v1sf$_&LLe=G?66*<9=LTAJgS4YrU9w4{mS>+0>>%vSkMVRm_}cRy%>P1CG*$;?)pO}d28v!S{! z9ar@&yNfu3DAwq{VLh8Fo2LPqhb4olLhGT>wyx?v%oe7ud{vuUnXc{T8DDnm$}E?z z%Ih@09rhl|(})lAM<4#|02?jVtS08s)~&dyCJvu-CGqJKkJy2L#v5j=)nwq2!7lUn5|$dO3!b3s zO_kMlNww_U06?^FCaTFVWE1X%_f{r}I$PhCkG=uQTfhS*K6|Ou>rjO&w9`QL5&l`M z{kB}-xa$E6rD7fJ{sE7cdKl|NX#H$9769jLQ(Iy;lQ>*8n=pOD@Q6SGlWgNoyz#<$ z^az@(SiHoUK@a1N>HQl^G+EptAOoKO`%S2JDAm7Uy+A5y_>+e4TS3RWi0^o>*%J0! z02=G6kIvuYTi5>OV)_2o{ZgsdGF}7B6XtFD!1u&L;I@p`9SRh7KS{=xc2GHa>TQ!o{s9;qJ@Zprg|TBoSFy9kxDsS)gz z&uRihIcsG*f28!M!`=}Xc4V9CpbSSY8Pfa^KVa*d6#8p8IV|rLAnHMtlZQn#yd)N9 z0oE{!;qoaD)NY{%EiJyvnk;~nfWlw(8Jp@L$D_?1;FA{?>*uAB3sUINI0e*z@>zFk zD=@>x3%+y!hk@Mjn1`g6{& zTJ~-1Kd!2_3VQx5G_!BSM*IUzpw(?~r^}?R=S`}dpK@?8XUTrn(eYKm`uuA1Q}io9 zD9ACIO^%5FW`%-a&X<8)@8{^SU1@_5T8BBX5F|4|EYlpw4iFQJYqin%S27fcpkH6l z?Qc82`E6P>D(1r_FNL7*k|guU)8P*L2fXo-{r6!Q_;V3;x9|5o;`Tfu6yU+TgQV!} zg|is^7Tyyc(7iOY^6`?&l7L&A4O{+ zgh0iC12|~vsdaPTZ+OLP?ulT$1D%{hP3E@@lmj7Kh#&7R=$Bc$k2^vDHQp8N?gJZC z#^I@ke_zBY97PL6>6KCg0N9*^i9jX+ocuUZNfP0|2=6BOVmmb>E02AcUg0k*A_!)+ znK5GB{6g?8!c}vyw-t0E54~gK4GK2H{2>er`2{gW5SzI^Q?n{dtTpW?Qytp8$p}!d zn}x=SMNvmQ3rZIlkiSPH+;XO+A}ePtWhpYy&$-9->7P^7Ge*ktm8)jZLNQ&mTSVHQ zM~y)kfQ)p*7O+DMyT>&#m$ij7wafxy8AD_Ry*T9p#)*Vo3q`2AgvFLp* zJA+}ym=nw|Z$9V1F5pY3s34Cq_7?3X0xH4lUXG^_PY>8vtd!9-3`4a??P-K8T z+T@-%uHKo4f1c|*?iN)%^dqe0!GR_SB>m@%Gw$2NbY-mv2y6CYnrGv$D-&mlV!q+q zylu)&xE}~RgV&1U-e>h{V;h0$hCzC{W((xAY8xE}qjWNQ+*Ur+UQ{GO{<#w_tCjzW zA0wGK@R2JDkfVK{z#pC1I4J&gnz=qGyw{A+^1gOi+RL~c8wQticRf}1D z6LIA+2Ld4{-Kd?)`d%enPg?bYb8-V^Jic{ibghM6i4FMS322L7HV{TsmJi3&W^4faz-Bv>z4a3%{IK zJf2*SsL{gCd{~ou!t0ZmoD*m))o8?oNKFAKab2wMk`dQcIX$3aAi)8Sr}473bgaPx zZ_20@ypHIHZhq5|g=RYqaBlXQ zjy*xgR5vvxI7!$!C@W@Iu!chjT#dDy(78{U^aO`ueoA_eA;k4b@y_b~`Da>swO*ba z==J*>t$SLwOzc0gL!GyRyo;oglG&tN2-sGJh?qiLz+b@#ojxdz5Q~(EVY5jSd63DF zA{pwMhW$KTGTk-gG-|J_{WA_n^SD8wEx43#Oaf7&RLDj~=XrI*RpB%mj930e7}HUH zFc3HHXqf3Si$i^6YA9XoF60^4lN8|Ylo@> z%+7j%{yY$Ce7&paE^7NM9Lg+yyj>;KxoKE!e22_!zuG}LY5UuJ(;0w5+mvJSyaWb{ z!kxA~nxC46?-n5Hj=l_gRZEe|Aqb`FJNF`E4XG$@xsjYXZ#SW`(XfsD_GFkKH9~z?HK^kr zFyXYj+m_NHi^)taGEAAk0NF`-XNQ0)^H@3`u4DeZAcq#pJ0FNZ0t(b7)jww} zK|vTI`C?n#Q35XS3nS{N@=$#ZTq=-zxqGcnMI3wZM`u^yb0dQRZ6b#yZAK zoh#a0UofHsA<1T&JeQ>7rgCC{=(Co&#G>jc((h1_M(tVCGD>>g^&cu}7PJ;K;zfG6 z`2C_oN*``ZHd-)|pB7twnnY^zTnX#K(1iKVLJkB$78Hxl!~2#^74cxdBAkUYLTay=ZoZ1ZatEz z;O-JgY!Ds}pK)dgt9it!XsdmN1xBwefxux!>Wns3xK@8K1`Q0GtAm?RD*@{wF7TWNl7Ki+XnpGcM4irQuE>Lt^JVb;;&Difu8ae4B^s@dCH-zH|It-G$Y_o7I z65GjpU&I<($;6CrmsS6Ok_|bZ)_Dz0Xm1m*B29>a*KKRMo+~|Ci;t(vT1-(c>Zi{$ z--9^KE#bg5TO}f|O8}*v@QLznUFW+-L4dRM?K^cMv!l)l@8?}jy%G9JEQ`A$|6)}^ z9>RZ^4ii(2*1V~O(y^$TIgYZjI1_CSfpcv4`&wA}*{DH}L@=NYhsAP|CnsL) z%NbA@7S$kZNs_}S^Aa5<#vMNGn${^Q_p#YOY$?Pr!oUpA1oaSav98NR@Hd)>oDmn; z7z^7lpM3uv=T}LZI}|FTEvF_Enxj#YNZv-Hk)|TjFxF%FmIh-hb^}iz|7KoGMBiXV z9@R_x6UOmohGP6JSYV)?>_CUqjMb1oi7|?5F(3rxd0vG3l9zKRZx5lt<)S*LUJ4tW zsbk-d0x!~WJV9a-jsm=8DmK%*{zHjnEI1F2b@dm0kDqrKEai6Y*?{9zy9r5UR%6N` zF@Nqz%DH2deCiWK{;bi4A zBwuNhMw<#0{v{T|{T>My5F?+_$Wfg!jSG`>T)h^ay`AQCU9`4=lH>ziPg*Tsrv7#? zgGka4L3YSaZN5g-n#P8;PQo24%vRInLTQE(jT_QM&%Xnt;)!hY50>Y z49EVOx6>FwH4zaEyrZE6uC^HaG=F8l3iv%{ClbUT`$l|)l&w7QNk<+^hao4$-z(Ex ztA8Q&5E;*-Gjlc_`zfk$ZP&$$l6%x@TH1K8RX!BLq6=BZrv-q#c4K?lyZ!407i(Hm zy*H*iL(w5SwzUlkd)Q_+OzfQz`us>R`u8i7p3Gwch~-eMT1qI%ma!saC()65u_54z zQ6GO-8@i#93qZ{Ys}Kh0+H>?&Zs6`y=rpqpT4}(yV(eOaMy;W+@X-lFiOK?bR(Wdi z2CQN43KIMM$RgO6>fW|0|qx!wVpmn(wKmnFw zJbsT_V+8s`pfMZ8NV=lZ*mh)_eF~T6{PLj)hyUX~+HUCk*e*H{(uOXZqq!1TR{Y); zU4hWJMVo~?<7jkQ0`E&tT1Sa1LAsJ+`)WXUyVsN0zbuFnYNKW+QyGSX$J@qf7}_^1 zU{>G0QYZBZ-y1ADNZ$pjDU?kKgkJ(+@A|`IJ;@`vCa$~%h!*fJz6>LGWWl?3|KSzg z2*lHkzgY!3WzjGaK5aK^%-mL<%}hZ0%%1=D!(>do@HG z>Ym6ZNY*c2^~J)*Lkli7@8DU!p&&93$!oy^;L)(>@ERvl-#v-krHsq;UJhAdI?J8< z0Ysrpz`!M1h(hX`NhyDVq*(BhAdVP?)Xm&p#Xt%*he{b`!le+kgdVXV38Z#ur9ji` zZn)t)1Puu&RfmucuMi^i$PzDzZwdYe{$9`>s;T_7WKSG5}T=WS9yv2UIt=`IXpm;C`f! z*ZP--X@pm$;x8~4NK)Q=w3AiY*j9N@-snh~HoueFwbNk!&A&Geb0hlkf^0KN4yWv5 z*xL0gfZ;Ivd@M+E9s-@=cnkBj!jJ+__VGBjcARMHGr=y1PQ2I(hVd`IAc4?*o-Nd- zO3klNBjI1u;1)8MsZG<{$k)=9>T!*{bQwxBPacPcapM9pd zEMiN|8>6~=IfU~mw-2UDsN^);nO(b>;iCZ(RmE3ufX?MSSg*Nz5i>Hkj}-!5#?^-*ayi1cScZ5 z#x{4ugpu{#vxB471wgaPMfG|3N1&Q2#hK`#!7D@JOpe2)B0w4+HBOA5RA0f2)}bdXzXIUDX@u+%{ffs+ER1uC`sC*PFZsVT|~d7 zi-NX4w8;TRA6u334DT7ENFc}~t{CLW+S`D&a|}YDF8ZkvkuAu?x_%&DnRDjsFHmkV zvN0C7jRyhp%@E8iohjG#}fxZQHhO+qP}n zwr%5mY}>ZA-<)jCzgsg0sYJ-WbRbElt%CH3ouvrA*5<%h~bR7z6#x zTw}r%*N_Dk$lS2d4h`$u*Iur%wmj2vdu}K|WrNELm;Nj_wcIB@%Qp%8HmpjQ3CS+t z<5d$ZzY~P}=>Z>g>*$B~pnr(MiE!2u=uk7p2Eefw_swNjJK@94%G{(ZXPpLwduD2U zH#(1q3Q>>aQX+kZ<2bfW&K|>p9#P zO1roL`-|xL^K9-Vn{9O+^lM z5z;gRc~lP1=F9iGhwL(Tje#ID|Db%5I+lsm98lg3My^mEqv!E(TMc~EAP~onrxPgd zpj#$+_2}dvV73gza-ljXa5@DvM~+?#2u z)hkzBo7j`=WDJ5j*C_}2nK1Adooo`A24PCPkl-R<`rXbOWGMrVRjqTtlx<nf{%%1uG?MSASGr?Z&(~4hL}x{E!(Pl)_n1=f3x!00Aa7|P|0OdPdDdQ0s5sAiXA!MkfW6h9F1tby&*kT*VL^&gLTJX{0MGp zzN%c`<3t$~*^}5RDv@tO0YZa<5vmv6K|q^MuzVQQFg2yyjTAP`=>gny$nzVcIEcR% ze4E=PQ2W*GB=Nf*>#U&bUpchNNi_oxS#-LpW?vq2BD|$g z6S)L4Oir*mz7jxMi_D%e>ZR~ctcMg7*nZa`Q&BaX%#pmB>Wwu|>UiBFLm6au@BNft zpA!~Y8lUU=#q3s6k)yr+;JK&&$~oSHjqAuV;|fKB9+f%SE06*f6t@r_+jY)14ULSj z^SL&|{F~gF;}HD_wX;c0kSbm!e0HVYnSFV??)BVmG)`(R@MKn;4L3VhXXShBUh^gQ z0N#Q3r;%A+x0XbP%sKt}VC4fLEL3Rw=l+zEL^Vw7{K1AZ=b7eiTJN!6zYHTP`$P@AIin}WXoLj}&w7zbyeh|Z=Uv)S*BCu+!jH=ThE)$+~6jJglK_iLuMOl#XT^#I1zj zFqoZUoPGMVO)X4m=e92^G#%938>Jfj1$kZgAPiiUALlR=WkS;V`i%(V>-|PeRdoPZ zJ4PpIfcLo&R-Z@(Iq-E*uARlV(p$CA`WWN#i`Hwq#VtLuQi^}~__YlYT{sejyilEO zn@Qool$QetcMrCWd2I8`r&}Lv{1pyGl7*^ZbUF5tcU^eYK{<20L4xVUofUvY$?l}^ zC>U)|r=a_OcD|sS?pY?h8$5Ff6s^ivroAOWw^S)vzt3_3)a}UK_~@|P=_Ml~c|@Gl zF$qRk&kZoGm`Xo5_;3SW`d_>M_v4&?zgFMJrN7_LBe{YLa%I$vbpAQpUhnVaoc`|z zzbf&Dx82Ljf4h9%meTco-&ou3OGn7`x;~l96=bR+;rbe#-0v&nwUMqw`+13yaJ%vU z9t(hM58fJ+TQ#^HLI<~XqTtc24O0gj_J9X_G)U-e1k?UCv2W>KZ|zCFfPh}d>2|bW zUF6p$p&3$m)0E$oAN%0Ie!erw8e6Djfc?C|r--Y0jZ>Dw96Q3doZncJ=;?LOt0~}u z!7IxmM$nX|0_j^nPbBpA&po8g!ZaDhrE{y5qQWbCu~1ZZQymR!mk#&3t1lu85-ro` zG;~kF;pm?%PEtP)6|~alUjw7Ch94?08ym|+XY7}64u^++H+BwBg&sl^li8MxdOsuP zYyyYVp10bm{1jMaX{%{b9ph5LaaN_1i+Q^#0Fuiq6>cDO ze_x%Ubl=UEqpQdb>9&F6X%tF9xoIMj@ed*iF3TW8tBzT?rTu`VQ`uHT$5O(u=VHvcy0Z{Z#qk zv6-&OZ&$$<@cL-+T6o9TR{Pzud#}v#qBWRU0d;m5ABvuTP2Uj*6D%xg$zCuRgiNk^ zgx*;FD`C$aHK@d}KHd^H{T&4e$+jvkUkJ169}DD*e<7$cr5=XsltF*(plACgs3(R0 z2pDhpFi5yHsguSV^_V1o(0i14m6qEdIChlD;7Ni{7H=?mtlXYhi1N;Kl)(G5!eOOZ z`Gvoty;o)bQ;NFkmq+JKs_@;vHhej3_boBJ2AlQM){>8_Wpz7bD>IiQ#8hS~4e`@= z>#W>2F1G8=&BLS$=%J3*^SVc)Tg?@SwT70P-u`Mw$+zDr){>uBUA4FBz=^*n>9P#IK32^{2@s zIDS#;xWJZhW&D9Fn!#;V)c()ekNWdAO!%Lh9NX_d`Y*U9!Y5y8``-0}!3LIo_nMch z2dbj7{xYXiR!cD%GG1kcq-5gfX&uIUfzHykyW}B1ZAbl7c^BD zto8RyRLyVm8Lm~W+h)L%>r@vG&PQ@(%VMq4?-?iW!`>3hHG}c#@p?mDt>_Vp4q|%& zwUp4sv%kE>?R zeB=Tbn8CTSk}8U-O1!s8BMcp-qwbQ;T*XNniP2|a({ZrW9aSqWQxyiQbXS~x|9iekf#dLx0p+Rv#(>kW79Q@JUo$kF|ZH(BHva;9ctQPJ>bZ?aQq6V7XLeAgizUKGc#c7x;o0B@Su znH?~nJNrDSxsDTW&2@qH3W&c&r`N!fzk|^&(DENtEX~%KPF2s>hl3%XK3j1~)~?hj z-J^6nk;eBu(o|edO>ZuoueNQZ?HLxMd({?a^MpnY1|X|HW`0f0K9Z+Z-Jd!(&Rv*d z89?&j47a15U6*iv9{l6*Nv~^*(+v+_urU8*$GMSa9*Pqpr(8|nus8e&-3w3)SvRKpU)L%XQw^-D81fI;G^$V>exAabxIM1V zwlHA7&bEN5x^0&jV<+C*=KP_3B=dYMp@=@`-^byFzJMh zTdcT)1>s~Jk(OYtd;Dm4e``ZRR`Gx-3Z(3^{4yL|A#i!Ckh2AngaLLV`Q#vyai#Id zclOZ&-00Lii;#1cOzoCq@7j(7DuVAP#9Fpf|0!3p1thD>+LH;W3M(YoGy0l8BH&-3 zeg8zl4|gmSf6$iiBC%i7A|n1PTltsT7v)hqS%X3+ zGBey#>MYU-@p3CO^7)1(H}WOQpYb>>oadgek~0*rSwdbUrM3OV)3lOyTnC3upJX+liu%6a%bj*C+h@TDrZAj1$Ubvi z+!}6|=sJ3tt<4NPHqaBVOrO;srD8s4!bTTnsvLg#_Y~O8jf`&y^tQEvA0CR>5`3f$ zQ+KzakG2f*v$Jobjy$f`LVM7G)UdKoj}DAi%{ozL85Yqq~SeHGe&5`hhfl9b; zSj5JZEuelq-`(%uw|;eDi9xr$LyGfe^2xUiIAW0odA8k07>j%js@$M6EkBX^qTBLW z?bbwSb%7s9Z0ekc^b6(~{!HPs+mANxo+~lR-sdsi-3Q;GM$&gEYM`D2b1H5^F$aBp z4uyH2_Tsf0L@a=$Y*7z(xPTtdsmQ_T=F;g|z2GAzt2Al{v28Elq3}EV)gO5*x zCT;-cHIH(HIoI79alxhih9S!`hf= z&9%CIT$Pf=l_2;36*}D=d{0!gc$2n6sl-*NV5ME2R|^w`NXW-~D)q5{3thls;;ifF5ZiHewKmn=%2!Y}+1Eow!1QO1_hBStbzGg6= zThQ8Z2z+c zfD;=I>42Jab{o{Jk`oZJi5(4*M5-dM;}GAO@T43lig~i@cRgt$&0uqla))}FV7&8S z{T-h&&QZQAXGGulNT1Bgx94G!i3g7~y{g zamg%19{cMXp?;p}lK)k5dq=vQDwmIsomxZ^Z%bmv_#pLt&KT?z7XpKuD6#kVNbhMm zvrplPUs(44I;6l8pxgV|LT4yE_vt&U#}9|Se4J#~GQ3uH1M^>7`nWua=jSt`(r2{| zO@bY+qrW4L=x@#gg!Dfv6}xk~*cs7h!aQwC`9Ya7aq-lyJEv=ir5I}2j=2_v zk>ctoWQgeX7Ghv7MgPiPU1x^sgeP>@;V=v;=W6I#)6B(hSOlK_hqb@AZ@#xEzAUQE zh~#r5J)oBnK4k0&O{QKIBM3ey=Cm03b8hvx+#mI%fMv}w-TL$N^Mc+MR)b#|TspzX zwdwN{xPwTAQl*yBh1b{y{plWQk|fv1EvJ!w&WYr>I<{mMMI|kR->&zIEHkFMg!z13 zs|nMu1gPdd3#IZxJ6;GY?MHVjsh-jB++N>!s#n|Gf}nHc!q!UH2FzkUbtuy~xV(w` zjZk&&7boYiaytN*KQ%)-bs~6I5okAQW{^ux|6x&{l&#AI6C9qn&D@;Q$l^{vIWlGt zZNAv9sVMaiNu8vb%Q>keaMdVDaJtd+3{^NOO!T@!_CAUIq28M|3vtHWrX;I*7Eb_t zHJBITFv!*^i0ot;GHgxhfer-rCd}2z;`Q}cnXGl>8gNG?+IUy**^*M_g){>8 zP%XC!2=j`oyjX`C6CwJv+rIv=4=}EPh;F=wlxMb{T{=tBmBYZZV!VvsxCeEtPOwzIeujgTku))Jvwm zb!T~fWyh7yF7NMeAYQdff{mHcmt>+OkO=yfEvUGL5O?NEC{EJY>3>1q5`t2~K z0#(QtE>^hpm(s5%??XJvp(#1mVlO`SGGSDfDyfX1F5Nzq-cMPvSFRqaYj!H_^d}Nn z@)ezY+5yg9lmU)%0XVzDOIxZ4p_Qwo>r#|uwnafKxBxd(ISXs77_!E+1m-`hE?{JP zsSLekovGg4+ExGJPFN_vJ1i*<(Ru8`>*;M4ikcLBUZd-3G1FE{h5$cTP?-XJiV#;L z0)7PSoLF&IV9j>*9Y6!q-?*#j2m~vqO_%p;9I5rDv=Z^`H(UVa1P3%jD>-NUoQ;)H z&UZbsR9EnAyZ~=TqmT0#C2H(kG_Yu{> zjZEh@Ech-cO0;!WU9zw5y?|6-Wz}L+KtOxrMs=@-b=?HWn8TtUZodX!k4bw=9H?0n zN!-pCIYpKgJrUb_O8c8(T=m2gU!EQ2`R*ma2`N z4?RcmCJg{R<(&3)_>0ny6wxSJQPa?Wulg=ryNn?M-_mtqOSU?@;~mW#T4u@;-G7?k zWi@dC7X#UKNi%EHVo@V2k}h)(j_7E|{M?bK>QLB1U=nE08G7Jsz)yBy4tmT8LVXqF zWza3lr%_yIXdM@Vm+Ia-Wo9E_i9so8Or&g`R2^+zGv%t=l<>G0Rq?%aX3l+x2R}zFB=vX zK!f{C1SWw4fS`#Z1{!m{)34qLWv(xJUv?a()l?4cYNlcr=Rry5c1e63q&yfRkD528 zqy%u3OnF#Os;Pspcl{*lN$KCyZ&CN$|CuP-6X)jbh>?b4AvJ#pK2F{=?SK z2nm^G-J6!USWuG56eYwjxH81UVC)UKhr9`FYv7&xh5nx<9-%Y0Tkfa;0QqA7zb|nA z_Yx0V6FLXa9iFYYEwQG%CsbH0Fj9Kjad|*844NLf*MWfzjtE?v0Fr$r6KSI`BG2{X z38>ejc01qViih`Wz8ioxah2w-s;*nr8xqN?&6p((b~9zX>g;U%u-n4A7R4jM>h_%n zjh0lZ?4gVpJX`4EkLFERU|y{`t5BAhdr%I7+}D>wc#C}(<3*Wq5gWi{($gbF)xeU3vm zsb0n8h3-m4QEdP)^B`{Eax0EPIKA2}?*PF9fLTRUu}n*D7l4{j({e8!08G<`ig2Tf zXj@?T1Lb1sRF@Hni}$O*{Q>9AuFM3`QQtx&FA#+)6Iq9wGXSfyHr##K9!}iLM}dU6WI!`(Qt!$e z%?ohe9OGFCN{=L0Z6Y2Ia~?~vs129P1n*k9Rz^^O^~)xJIOw0C8m`r^;fR4&qJsft zpgJrCI3Qs14HYX>cYAV@3w8x#3kF(Ek##aX#fGd?X@(S zfGv6A`H!OYSTB#jFYItY20L(#Hh~~66!@40w94ynxQifk{XP|NoyG~n1LdZhDrX`g z34xw_lK~%CBZc^?O9OlatoI#)gEx{FR0RPW#5h2d_dLtPSSBQ8jYK%*=tZaHqrz$? zKDDw|3z=|`;D4;25I&HzX$GTb)-QKqex7AY0vze2WTL8^NVProTMLOmW)vQyjdmGY zUqWOG&wj;8U97|inFVkMQ@j&=ILMU<*N=;R$7-jty|OeAZ}$b!Qt)JxDR|Nc%>hI_ z7_kV@fdfglrzC)Ep%@uPIN@Hl6MZNunxbw<_JaIX5NpzYZjhK|GwQ}hZxR4BS%rtjI+hz0F zx-?!Ooetc}0*v&rBM8}C#I`0O&Q$9PXCW zRw1Nv8_Dz-NaEN98Gi`Eud-4&XoYQeWQ_VQ*&f)q$u_oIQEI`3vllFa21psmyNi6d zE*L;v1NGK+Pl^W6x0|=)g5qJ>5Q$I{5>%&iKW}J9bk)Ly`GEf&1Oz)3SOOE$Yat6r z-S3Yo2)H=U16&4K15{jpItz6Hh8yC3;6V~4O7nV;0fIkjpch0>=)OuCvk#iXD@iIv|~YF9zFvE<+*#W-$!F zGS#PJ92n;qQ{*w}0u+nx5T>3b3`Fj^0ZrygG4Pv{0yz_scChcis79nfZ&ah0;2V|x z6PFJ_vN};xfoHPmiAFaTn8a(adjN%42Lv~T+X2~t8M=vP9?L|qdN2$Jj}eNO=@Pw- zhTfI~3+86>th9qw$l<=GOn>6U2~HG%L}XT9LH+FmJAd44#um8oH~y-7o;HG@>b0Af@zweIUhvO-N&M~#ZBN@ zMiqG?QL=c&#Zd2RFwu)JAaEV~morlg4B=vt@*}H~YeFa(S{l+vDRtA;7<%xH^xHZ{pv?L&Tmw>l=sEl}emFadLJJ7y0-DaT>z=7j1OdJa zRIvv|cwtWg%idNO++Qgnjb*xf$(FH1#mjy)#K0uto}uFOB!rL_BnqdZEcm&Yp=m58 zg9N99!J?sMj1yuMT}-2}5#k_GQzh^ZY0x!ETXvi;X;X&E%3XyTILx5-i%t^AGEbGj zE#W(#@fe7q?`iS&!1xz3lnI8SM5i5tV$$86s*%Te7lVY+*KToZ1POR+;}bPi>Woo* zp=~Fm6^;yGh%GEnaOkHXySr@5e%JSJ?M-kd2z{6GO$^BVI1&s+Ek?eKpmw_QOVHbp zcHohrOakOr&TnJDvkgqMDGI{{QTFjsU$5^M)_D1tt}_PMyuiORbaa6T?cNh&s`?1F zo`J?QE_Lt>%=4ClyyEH_(J}jJEfNb1Cf)5pcK=KfdY-Su3+I_Oqs@?`8%t>LhG1Sp zl0JC5Yz^2At|^paC@Nv?l-$A-4LpV!IK#95CRFbGZ9B{fn9}XyePn!ukZCG6kNupq z0s?*)czpp_90M$XJ6jPSm@q7Kh*A=&@ht3vHi6JK=MM?n?Bt&$o%H*{b!}3AoahZM z`il*D&=iG+d*RBm^Liz(YDwdyV#_(e%b%euTS9A!S~&tDaI-4ZR_SrV7*w2DCUXVM zy}778QW)T8>aN^ZPJt(s(TKmsCe)3HLh<)&cmMY@zZEOm+ot$0+(i2wpU?NjQTN|Z z!V}jH-?Fgy>>g{{T3tX8YM-gp>8Sb0j%q%llf~7ApiO6njFG@QMu`V8%rXU(c1 z_hB#e*VSb-7UE)@fdF;f3ZqJCAM+~ooW-y_um(T`T7_qWipjwa$r_@?-k<64_F0DJ zOL*6X%o_e|&YpvRKC=zn6%-9$tScw$C_M(3FowLc^n2x_Gr z<)4Rmq-R)egCmFbflpb7SXiKvG@-imjS5YEU4t-`xKq(k6rK2%_lOX_`;twyqCsX~ z<;J~~JL0;W89<{KXp|$@axok4h`Y7eg@|s23kr+RmAuXhPNfXZ*rGuMG}$oCb!K+n zfDq1U`ame~p%^Ohq6W#bd8r9=$@HMfvBXPMkx+LGcHXDWmg83?06Xs?8rwKsyXx!n^UMJTYsUIN{hep-qi%Ec?yX+TX;zW_55!s)ADxsaHk$EUuG!#j#(p; zl&NGNw3T!^EXg{ZuoC)~nDkkv6oU^mmxRH$x;MaQ{Mjk~l{l^cJ2D8-G^>EgO(g84w?o@sv;di}g}-{;Er zg{q3Byn-`jj!%YJ;mEL(X>h8%<$7em19J5(#z-KVUTwahMVTgMfYG9 zVwTFZ`}jlSh}eLB`(pmm`NTXuBmqY9YILLUwf-6Q63djyanzBOY68;p2<) zgfz|NjNDvrzLKVpb7U$FSyljc2wp$2)0;TZc!u<0KO-kU zL>Mg+>Jd%rY5!s#sT<WsawBN}ZG5*{g$2XoRlfB8^+<88|W$+XR# ztuJzF>n5C{Llx;ysKf9gIVY9=>6f%=wZ_>sMcjsz4Rk@#+-yp|mpY=elS`=u{s?MF zJh^UV#_FQX(IeJkimy2n#7CwRP*D$CW(5-AuxyV!3xc~kxR+c#&k^M6(A9MnI0=uz zjUZ*Jb2BWc+*Pe+$Ly63;m<(;1KQZ-V+TH<#M1b-{c%AGn9;IWlEH z-6wx!&M~eR+=yQ!+S1>o^l~7ZAny4B(HR9t)0+*xx$?8>-18 zPl5b}0bHo@vcI3Lu}#*wrk?F!{Ya)0a5W9uSxNUKM=TvQ$a$Tn&ydS3vcIluNN3_& z^cd?N!w;s7dr$wGh;xqBExPNw>ihq=HbnN)cP65LFV5Ko7HZBK+qFpVJR)eY$9_x0 zLqfo%owPh%?E}if4kv>~Z!h2csHW|oz{5ar+P57QVYL18U?%)QN)44EdO@*3z^8}v zh0%3l$6<8iceNX^h7q5OVP#sV4JBZ5O>j^Q9&QfCzW`F;`NS)2$x(D!zj1h)&URgf zHC1$1S7*-~k9U5P?4vdFN1L`J%4ahANe18*Wf&9uGY1`}XF4M;f+8F&W?H1076QMK zMu1B6lCk>kbAHfl$!q&Cbe%x{y~|(yZlJ61hf4T>^q;kGf!E1a?xPco96;s!t1ZUc z*Fmp^B06J>k80m?IC1}ki7TU*TUAk>9I@!x%`JWrQq&T82JRa<5pu+!3-<@wZ2o06 zH27M39t0N)*~Y1zd%{IJ)uF3|w#3Mc_$pl`XD~bOLWB-B!nF+j>Y#zysdN?A^q#2t z^n}%tBk3XNk8JP+fsY?T7g?3gc@J94B>3D?67iqQ^gKwDDTofF*ImctwY&Xk>a73z zW@MK=ES&s6!Dp1zu*TyPh%CN- zWDHk!>s1M(I@#N;maoHE^Y8|ffd(UG=>U1<`Al&#YnV~Ht}T2pTCh$wg^Mz=YdXa2 zgL}8uMw-TxC`I*CC?s4!0cv&Ea??uMx92w6XM9LC?q8~C*WarQ$%t|T;Z}Kp0*Os$ zR_BN(w~oI1;km@JGwCeSlp=KCTRbMG81fF{%SFDPJ|pr0HSbhCN1nO znEhf-=Rrpye<=AN%eD12x?w6Q2PRqIb4Axvta+D%M)$Pi3+;mria48G+jbPLb|475 zICH1Fqs6thU^?qwXrbK#Zp&J)M17&M1>N!3Pb@%yEjUh@^^h~MhTWw~ z6c*1yY&J--V#NXX(1a`q)SA+DK%2hP>>#O8lE%B!X9wdnb2Cl~Qr>OdOOe_e!TYUo zd3?M(Jhf(Wmq;Dt^(#&d6{)F!GfMAXfF64pDkoe7kNHOejs0;Z0CN*LcN?#|AfOx` zh|ELx7A}h51qclj{-er4phkV!^_n#@0s2l3iY8R>BG8Q?r!koXo#|B`W4SFKF8)(| z^EZ7v{M$46ed&&sE`_D3Dc?lMEUc5rgzTvpTMMTi80{+j+g|}%6l#4*HHgvH1aXZ& z8YeS#%Qk0dGf?3Mq|j5MaD>EA%@J}a>xe4{86nKL>U5KqbWB8R|7_8Jt1kH$l$`2Q zh@9ketseE+59?bpf+KV!%Ao6m2HY+4Tl66SCy%1q0-#EBZla ziC=?y&=r6&PAI?FV+i8f5Qf*71q4Ahs(lP-F_G0XjE<=rEtgV)sWU9c--lgu2uPzu$Wmw90YfJ#Xu04*7eQQjkD7)=$n z;YN|wzSO5`S_BAj4MsBvk~@%W#zAwKlNoTRfdg42CI#U<29j;W_7onfiVe*m%f$Bb z6h&a_;f~-F!x}02)M%8rhI; zblnfs#u?DPqd`hC@wNi2DBvtG=<4oevfWq=RVH6cAD7Vjm20f{_-T}EF-~SS%p?=2 zUV>1NGK9^T1*6Ek6y}yMU-5Aw#7C+2KW^mSl$v#e4|j#O zNXpgQpsy%sg-4YR8#LQWm{x5_5y62X={MnK11?FoUE{-?PeXA>RA>82$L{+5cYPl) z4btCmFx%K;ARMW*3>Zwi;YaT~uTLC!bhH)b*oU;LZMN!(VfQ%-qvNEoB;ZY<7{LhT zQ+?*Z+0}(T!AtZZQs;OK(9DVhfg6kV9>?OYdg3c3yhF&GSOZPr*qUf2oi4qCgsKq5 ze_zAHF(OD7jIdY)%gxBrUiddrV^K>g6L+`9?h81G^0eD z3v|(4B5ep?S*!PhPrf(~RgAaKjV164f*5=rJB*k9DS_6QtgP~T2DgTM)f?6L#a_Np z!_Iz}oi0MfE5&j~#M1KK8lU32@2fdEz&Z>fA}F*<8j2n)0WM>i8uIt37NAs+4BA>8e2y8O>wZlaboTD5*Wl!lvLD6y4cT9Lmb-V0Q!oD0~E>O$aEPw zJ8GL%P2ii8-0FSydXfYga2#?X)q_@^(3R-cJ=;Kg=5OY)r`&ufq%4GCh7zFYa#fGDoA+0odKh^i1$Ben^C17kZ>fX z*eJ4$7R{ifN2licf($>Gf~^}#x{GsU)1FFb@z8w#0Ex0<<+)cRbm`^8^*8Z;sj%?- zLphC@H9qTCNpU1vX+Vo;E3Z*2WWBd_d!V!R(E!Zbz^_ zCKqk0e^~{d%NGbglMh~Jm#fsLqEGurQk8LpA^;rJS=+j;^Omy2n1`#4xBkNJk0x5OIsrN)8)|*8BI6s2W}&B*vHHL1yRlh9J;n zT8pmawdAN}j1E%69^tXQ3E?xyb_2qU9J+KJ&_-F;bK=9#@x+ye^cqq`3hf_04k#IXsbhg|O~YW3%2nGt zjypP!_)*DTfXFeM^wkNM%sGY}j61T)aL@_7!vazFsM$gW1lg3&Z>YzSX_~{n0_YpT zk-@9Gy`)%@ELq8L8pv`PDTY^#Uw0l6UET1e@@nk0H0AWBm7p_Gmu>iVa5H%f+b8p z2>9ZW>Xb{#8A4=Ai^A>yIl8M1aCla501nb*n{1zI6cCv_IaxgO?ET9>BNrA^8H76-%N*5;dZ0Iz{eEq z2P}$M+j(LawYuV+n_7h|Bg~cAS2w6$yeM`cWD}#2Y08q>R?f4UBjQLe$t@>P1J_y2 z%p&2CB1Ly(=n9n?jU@08yiz!*Bz~Itg=y|2 z!lqKyCrB%3R05QJixb!7vGgK~vHeH>GM0Gf^N|v!{n~B$A`P>FO0*?O2yBgLFTr%& z$XbAQ!_${!st7;6^HQ6bIBZ3%WrOkRyNGd9NB?DoDDDdylSdoe=LwG~ioi*cv!jAcGAJjFLF44NHv@5*#Ea3tK(a^^& z5L6lC)uavW$Rr6DJwuUT?1cj(dPu9;PntpHvaDzAB7Db0I~t4GQ-&@Sn{Nk%TrUTN z04iUyfx_U;`70gli)wp@F9zXte=t#m5ubupTI5Qp650Cs+C!L8MP^%P%aUa_%X8tct&NLE z7VSTjK6TbN?N^;(9RUzBXPh*F9wFE9u9^{=P?;-wM&ihNGG`yASf{ndf$z}-^W2mw z91mrRXCtKcJVv3hR`@KfwdnMKuU@QprDHL+MjjE*0_4%F0O{ZgCm_WASb$#~8Dx~R zM`3hD%nO3dKMJajyg+l!WBd4kk~GhsSH27=}8t>XKc_^Cx0&u7x|v4st2Xw6qrLl z=!i{wBnP9)fUEb&f5My9*?2NDGMug^+g#o}s43)~gP!v4t~6m~fzF z=kN4f!0=xCD*TgP3dlYqU2M5HSQ3*LpDMDYH0>@_k@X&yGVLmkP~oLI?GWY&kIb1k z(oiG~oRj3E(9aez7n#ztHlaptbOKIJCz`P*%S+3bzj6qXno@M%(Ym#q)yFJ8YuZY# z%w1rJ5DxBqh0l(XoH9hpL2%NCJuw@Nsp@di?J7qVd;f7K*+;r|JYg5q@J%HmzNHn- z55+pv%y)P)?BEtFb&XO(3NcAS_M%3qSpsv(R(d26u|9$-w+Ut}{(uz*=99I5r2UZf z%T)S{S14-@ra%p>p$_MJCpI^OY)mP=X1yQ^dA+;Fg5@;2u%q=isDSSZ4e-oB9Tl2zIT$81r6cM56e+;3 zTLDglTINE@;ArZ(XXI$khJOX#tsfNbo~%DrR2rPrW~^@IebZ~Byyfd)#k{{ZrKA@j zp>#^6_!j%Fv%Q1ws`{toQM*(U)Ven^xd9+bSfnfr&e`78tVCLW>hi)zeT z@;=o>QV6{NvV7!IwflI3kzZ|-%MuwFJMIGVYtcxF3^aXHtD&FexkKrlgj>>xo}-Is z?&OxpOs=3``xGiC>hyCnRdP47(IVjEXq|2gL}6XIvuC)5z3<0C@COda8d2&UtqNjkW7Ysu zK&-#GCX%I?wGTfp?cHaDvBxiTkmI5QX=YvCUEZIZ$a7CgDic~|nGi=iCu}oE9qTEU zW7UKEuBtkvkmxdXoY_lTA3FV}j%bjKMu^BSNqx;mqq}Dp?Pd`=;!X{5k0j0p4NVm! zabx0h`n~4PXj_z^U(7SfM$|%MdJ<@+MFH)dF^f7d4ntEc{oA|THwZ&*S1fwXY)!FP z7LC05bD9K2u;z&v6|GF~$>_#E#>yl<7;rpu*f4P#ny6DT_9Gkn5PmzR7g0A+St~%N z&9NO(unUmX?oPVL*HP+3q5i>^?*u%!Lo{P$gfm*=>Nsm)(fb0jBWTbX?>>zNLE}i| zgp5l2O6nJ;9c7c{x5v_XPgF?(_+xe!nwniTMONc#qM}R5G{u?sn9UuBELo&Jta^Z@ zEHa2+SM>+Gjl2`B0Bl)~pTNwfiY7KZVfLI(DuB6s0tN3G^;+@!4LXf>rYb8>PaF;tCmQwp&#&UEqtpEr~0dM7K9X`hqTLQaTvCuB>H zU&s|Tq(^%Wp3se3G|@5yTiCw=Y-f#O7qO>u$VJ*+S>#=IqEB!IX^KIe<9q{r^ApK!)@&ajFR8$)z zJg|35K%j|8BGiy0X^Amw1Gco5{fc@<#Fv}j?-?Bh>EL6e)yN9M8rc}X6cSS6-hE@a;5N7bHF`jS!jlY*Vk7rhDbw#+bxAwTSZ;GxDXMz4EkhPJ4I5B9lkHiVrs~;^ zS#e0_Pc%Ss^5wI~z0KfRGocK7BeQ<7(N63ds-s}Qpc)iR^AjhoijO`cdi@?hHY10u z@%?lu>=-duMLCIgZm&PJD3*XXzwdAyK0rk&_3I^|EjAhXm$qq zXQIvbJicM}VlzaG{orH5m*QV4-agbBAV2I+CmW(CDWb(*#1$ca4gaDP-Iwt1l8 zj+c>e=M4h<-jb$3$EZ{pc!+}tIy?(&8LZ4yf<*pNiSGS9-h^{jU+R<@G{k;|SDdv* z*|j0Q_j1jU3=+Z?V!{tY0xRbOMo_VEobSa(pqmn|!>kO}P>XN@|D9}cc0>IT!h(>P zUCT4G<>hJa9vEkw2X)K`$NTd!@0BIbxy6NvEtyT{?`F$j>}YRb6cNcw~L1em{BSHS*jzA8lB0o@g)V?NLauM)Q+2?#vi!3Gxgb5&pF6ZgRYjOL{7)Bw=u6vNj`llBK@OztTM zGM9mlW|am7gJ#grbw~V@=d+skw%_fIpmzR8+83tpK7zXtybxod7mRp25JsM$e8|o6 zFIqIK+^G=)WKNCv_!G(I+lI+VvQ;}k;(jD^d{Ps!6pnyVq%K`LpQ(~p!Y>D8w0=D0`vmrg=BvIejFiXY=P?x+2tM{ z+oeHrSz638#^mWqy}#F^?|tp?+g&|AvcXp6L=aw4*r>BPG6MFVbFZK%QviSQ@*kDP zL=RsJI}eg*+|=fmRwSVCf-J}dJ57b;iCWF9;H+g_X<*b<2Dr~LSyZ)9h_8b?jWSpr z3_(n`pa$yWH&yL`XAnR9_XiF;e~5>lxY0wq{a2X(x5QC={12MPzNY{Kg|cc#n7Kjl zt`Ha*Wxz-WeHE03j6T@CU*XKC1n*?hEO4%LM!CR7`R))S-@=`!^dC)D8ypo8Zn493 z4>QpV+&OAU*?YXC;cbNchhXT4{Ji$`!9#E9u9-(TqVOsbuwR@8aKaDpb*S7Y&p$D| zr8{ptG8opH#K(Tp5IYT1fYdRW>CjdAD*;kg#N5I&O&~Oleq@_i<91n6>UwtRcdnow zbLgWeoEWYu4vhym0$p|DFFi-Wwq3HuKq9ONe77=J=Tj8p>8Yt)W|*1aDYtNGb6(7f zg#_rJJOXSpvBBI#U;0k}y7I_pyEH7RNm^0^QbF}7EJK%l3eAg@*EH(>cKeNgw5X-a ze&S2}J7ycbowh|-5G>dhencX&mOxBUqiX3DF_0#JKe|4}6m{j>tPViaqREF50~*1Z z@O2hF3z<*vIkA5sEj!@dRgF6h^0lgnqTnfqL;BzlWFKUQeZJj*8D{u2+kmd#RxAJ- zI{WiZ;_vL36RYIs6Hdobwj4H@t;EWs0?=kv&MHGPiz`v;JmUE@mF5P~%;3Jrf|pv> zFq^!(?ayI57Fx*#*JNUVA^@QmP9Sb#oBz@(cLsnF+;#p7U;|ML6j?P`#|W|GH7BcC zv*c);rKrNiq(LGFHL*-D{uFy%B{+nUq_0T|G5LA&tUd zF)WpLs5k*ncIS5naz}p>q6C0%6>Rst@CMrKRjIWWns%kRWHpB4l$!i7p?%-QbY2}RVVZQOf=phW)}3KAUe#CpS`l#R z8a~!vQTxqx?dHK}pVuRB`gG^9ejE>~S(}c8$EH^j{!sX9c8dy^xuPKiTaoDw6VaG0 zDym$RS`oc1UImlXn$;1kTw}b9Y0gVG;yJc?7PVa${7-_MybZjVLN_x!t@u=NHd_3> zvJ<_yu!2koKgyQjpNkqJWaPJV-@(-`73o>Hb70*>w1_=06}y?~q-b`o%4Bd9%h_}* zH@(1!ta-wPxy?F6JE0%y2Yi8pdM#`t+YqhFSme2fS!ZSqo@C%{YfmJTO3s0cY~rh} zwFp%hC4%}4T>>h>+S3YdK!RY4!RR{iw`Of*iIcaZa#Vmruu!UGMS%wt495Xf^gKPs z3Bh+}E2UN>TPzlEa3Qs*;#qaIR+{7IPVe@3JwL~pkCo_|K-A^xs?NrP-L0`LvqJa) z)zj}%hCwfvR}~%4HPDP>gooiW+Cjw*w55s~4uE3T1&K&Ys{|DpK@4pfgB5l0>%6Or z;V5Eo=jRd84S7ywW!>|+@?7zPYv>w55L8jlT?{x@auV%$O4I7MTuBh0+5R;`uDUi} zf)b6oB8!>YyOKveGOqs>B!hC;re?YZaKM2Rb-t3d#ppfNm}GO^f{AEvkyyJm0-bES z2ZXvwtdRbbs1tqWTIv`5ccfx6kYO z(3c=@u<{|k`kahJJWJXPgCBKBCTy`8fWfx!z#0~knLtijH#QJ1c) zUZ`&IrGT*E>zKHbW%iSKE^VK|bL9&-!I{+LKg1Wyf#Y@5hyEP#x~+avPWJN`~7EpWn|U zR}+vgCzr27eiMAb1h&kmw+2T`hWMtyMn871mKW z8m)ldBh-cQu`cr0;JMBuYdJWc8=U=r?s0MFXd!=Z@P;lH?c)sVwR48w5n~6gvcto< z$!K~@s<$?kcUHi=49#mp+(z;f37cUFkPS1ZE8sqjA*Rka@AaF3a3!5MtptXkV$_AV zV;t_BV<=8+Ow2$B`rM~y{}4|6o$n57^7^722xF_+V?xx|>2 z8X4LgfxIaPGHb5pXEm1neg|{e!XpV_h4h+ANhuXld+TaP=4RF|@p(A6t-k?iSMirM zzdK=<`WMASMxRG}o1eR#m4TnSVLkr^kIlX#dSczAC)77fM4Q1e>`t&>^oUg-kgqIj zD^)zG*1K~16_`?6O#f8b!AnsS>TJr8yH11C5%o56aiZBU14muQcCCiX@M1(;4!ib( zzG9#@HGl)}^z~j{A0X~pMZBfXyO__YY|E=ZJ7LelT{-P<9d@^Oc#Py<92rsjTkO6A zHl9j*>wt*@e0%O}utgoFa07t+(N;2XT2JT*jblSh)_KcFf$N~sTg#XNy8w_*60DV& zNkQfCGV2^UFk0mH3mNJAyk?5k&+e9$S*T~T-|A22c6+=Z4^jJSpEA@v?B|rt7rM(~ zYuEC#|8XZ_uAy%D&iFq2Hgr~&2zlWUMzbMsT^`A&h#sJ_ZlcOY$Pjt)<%dgw?kWfb zv)h>H4o&Y`jwIGud|iTy{vd4LXg0EX7$ABWi$LLG#N;AJH(W4v=?po>>j!<- zE%+)+N=0^ZM{;A8i>FY9Ttz}c- zA4z0|5^`4nrHKisxx@ef_o}RpxXkePIIMJG5Vvc@Z!DDJ3zV^?x&L;%k9kPF4%y?b zzhz_RKt%6T*WgJ^7z3*Hxk0&-sCMn__^K5UP^v1EYiRKsqx zDLAk9ZVhHdvq0q#q9)gbC7Bg^xCGL8Z7|H535B_r&5W=%)Uhs@0J)y^Q@_@=L@?-B z&9f0k%Asgo@*C-83#?aFN!$SA>^bS^(rvQwK}FY~k@o%&NSKHF!|me ze%JEa0?Kvj%;*SoodL)?Ek>n|H2Bt z6!(Yj9|&RJVgAl%8#btq-ur4dQ_&HS1x3Pg6O>0*dEl}*-25=}evXOaa-u(OhLfWR zJm@1RjwJXjo>NbwnTURd-VaYzRZJOh!K@I-QqA1$0Kha70X&TaQMpBj4A*DmIBgMF zKy8_TV%;@#f~?~-*+OT<NMLy zedLGVn6fGhR~3N`BP6leDAxv;c7CzoeDnX$1g(CV1gYzPtLXm*-v2Q{Yhr5T`oEqP z>c%!g4KbjIzWI!ThEqxW4v11AIaqT`m(Cr-dQwhWm-^cmXs0*haD*S_G!da1%Q@(` z)Ln(|_I9~{b->Fz3{qr+p~aU3GO@%c2^Mf%g%x#nQTv7TKxkN*7tI|aE{UvOXKM3m zB&9kdT}jT(7%uBf&kzJLvzf*?%_Ys>|AMaUk?wsZal- zFhPxL+%XP%ZqX$OFA~_=!3!cNApJ)qln5lba^>I8{GC9_4HtzPw4TUuH#44%SxPgd zroqlhc++-r#OzBQ)&J1$Abw7^!cmwSDu>-*gh9F&fDGIo2YWOVr@0HX>A2#wf+OfY z4>@T&r~>U>T)r^-b{imB&CW~#VqKTRpi@)}#LeoYB!M{*kM4`1CcnEH1VEbZ%1r?FW>;7U3=s`HBeoIz7kQo_# zUI2AQwf{#{02(E$fzfhc;1LX1@D^+*O3r|{#(WZ31)yyU;Oq`cmK&(%Tus#u8gYzE z7QN29EZ5DKL0dZyz2@9tvp?{f6A|a7U<1AaRao&RyyK; z$mvyd<7QH~7sg?PX8d~2r0%gwdI3=7{+d%3;@57b2OY9$j5*K z68oYsq2O8Vs;eu3AS^q=`t5f2r&o4LGUT6;lk{FRqUfUuf1p1cV%r+68)D$SmhM`y z0p*sQaPu-S7wpH{eaVR@p2)*Ds=aXU5=~Z9u!tE3+cR4{J%pr)f3Z>Qk(E1ew=oI& zlorb(#a#V)Z7?DM&O8z7v&MXUYN9enHEYtH(!2+X?zuHUP$P=Dt?uWfzGm*g_V|2k z=i0u(Qc*;UN;K#-xr zCJBDEcve&MgEilf{0Wd@l8@x_Hr39s^OJ)7FAB}PK3~DrH9bp`qls=*?|_Y({W!AJ zP>8yg)$18DmhL$3fK7h2(1=eR!r_Jo<~npZq_fp+NX!|`Z_fQ5WO8QCc`d;u58Gdb=sg60nwRv-@(#$pXXe%t;4GFn|}Qb zHrryM%CTt37+(C2ef^6Lb*~gO)@8QPEeRJ%-9orKoYih9(>tU$E*RD~w>mASBK^q* z6h0R}fDoA()=CzX)$W{8_Uxb1MJUp2KW(m3>(3vy1E{`PtI>t`YjX0@#Ny|2qB$=! zEzbHw8pW=$@7`HxEW^}W;rlCNKfnh>T`PkbX;1+;ENzkDeysuDbWdo2Q>b~v9Es4O z$i|zc|2?KixQ|rrxOznS!`MY;`uyYR&hL=5Ab|Jl)z?gIewddQB$Z$Dl;tlpy~=}y zRrQy5#L*)gk9MwC{$VNJtL-f^BRXZj*!9q;EZrQ$kjOnu^;1~cAj6?Ssfez?k_j?Y z`RhijROJ&_p8mC^SpQ9AJ`LeAv^?1CeSY#f_mCb(^73yKb0$di2Hk)j%G(QjzeZZ< z%y=kY8flI;eTe0UsQRy;R*9qG>Zt$!BE=>?xiY3V2t2>xS_=vG%Mg=)#FWAxYE+jK$-#l~)dIl+dm zB}dMhIo{&bNfSlvjjd*84@EcYPn*U!_FwudiCgdPX48V$b(Y++Qo60ar1oWRK*Q!{ z8Feb668i8SxgmF{OrH)NdUTUr_H5Kx$ezmDg<0cOmR8Kyq2Utdfv6wc++J#`mvp__ zQS;komE2TR{@gPNsA{u5jb23UHXh1WFK6UuW9n;y+2N^Jiq=FC#U#BUHX!8&l`NlY z)wwHS>*!$>6Sak+s%E;DmIr5_t{wMD(fx3prQiAl+~03EN-LAtEnyUG)UC_Xi`KGi zA)583?@YA{;qB<3A2IY^bkRa2YOf-MqTZBvC(4H6WC;+DkMIp|f7TiA?=TnUaqDtozck zGCCHAtQpQpWNWEaJ~!o(y&c80-&gATbJ}*2Q8=wgxO!Fb@;OJ5CSFkLyGe(J3$M}& z5e(X5tQxy&rDc3qS_5z&6$=;=w5Sevn}ydEu1eb-i?-$<5>j5v$Li~Obh3Nngm9Pc z=BsLRVrs^6m-myZS%2qQ2Kebv@mu z%aVwU03mM4w)utBJ6($O&Tu2_N?A2(;%(!>6rFZd`p`|9>EQKTK7X+o2`eF}X)%pk z5scDtLOjrg;~==!FG`W!h~fu^Coj%pBZd^Z@vJ9S`l%T1v2vuA2xL(mmagK_IT!DTySP@ufE>i8d2Dqp=stXkHZg*J7fMDD*A0dY- zUL`yD)_9P!i#&lSwn^8e6<|6OnuDiaGk|V%eLNwq;jG2|RBeGe&e%61$)c97$7oeh z+T@~tZ~w{!>$fu&Qm#Es>+S;HK)H0%RM9?6v}AfF2)*X==IP-N55eaxPhJxj171(v z*oi?pZU7i3U~eW7BsSmCp}twzNRT=2YjSD0BbsVCwZvT6d{I|L%-VW64Pty+4;5}9 zWhy?fXKvuZg*vZJDUg(M3*=c_JdSBntN>RZV#+xgLrv?6Pt;2_JEcP3Ku5=`MNi}n zvu`3*;Z5OaMS+(;;1WM)Zw`3M5^uv$J9)vbL#_Ks$3OLYLLhI?a`$)L9%!0Y8iu69 z=6^R+yb`cN6b!C14JtU(Lj@m=a>Gs(%{uiF_LSbNnl_I*-XHX~cKh~!n*Z(Z1j#RglB7*X=G?>9swe0Qo=qx}6`lHu0F$j`jK$0+qqrynZX zKhnQ%w&w2m{SLGG749}V|MLuWu^XJ7qd6qu9;et7bBD)85_gme#vhY{>(|q%nHym? zSJtp7owoguQJ&%CXFteFUjfVQrfJc6LcEi_nnmX2!Ij;~&6D2}n^l zCS3RcK7H2)#=JnZGy-8^jcTG;Y*1Wl-Lu{bDq=~m{o_Kf{muGFvtEy}hFr8EFr`~m z4a0aVS=&c!p9j(?uy`_G{_b~ktnRnPo#P+Y+Cjey_WBlN8vr6v4fG^NuR*AhGEx&?gY@+xeS@G^>-`%($@w(A3&mN`vHxtM zTHWeu@P%%tSffV#Wg*7@4zJRJu@DN8TbW7buQ&Z*AczP;RugHE+9X?(Ytp(qH5kyo zZR#*A7d=ZeMGu2e@ABuBUEZcANAZ5uNefnhF!`4&uUFrL+$TjRy(;s*;W>A9lpvb& z>IwBLJ%W@QR2{OdT-JY?e6NqO;6VS@bs@m7v;m~K1F=W(W-2!op7xNG-OmECJOGO{ zZqq~w-{F_&i~1!tZA@?Bk7dFD4QXmMvq$U!rLh@P;LtG%-!&&Nm-@s4dxVgOE`ai) z39E2$h?shNZ?=7MZ3e-lug6>ReDrF#=|?Y=b#5@R;I`NN;K{`}ESY7GPDcGxx)EyK zBK;+xuK`d@UdfRU8Co@4Z+3ncQRDN47wzPck}Jo{ipeC&9%1JZ3pi$_|0b2)r+nq$ zjR*_`b(!qr0^_n4+|tAk`Ew_)_?(N6%XaMXHCX6)@_G>fR7xDJs38|R{U{fB)Cy$- zaNNE1*6O5xEgN92wjrvn zTS75IueNvG|0!>`=?Daim;nG@M*eSAH2-V%pR~R4wRPVbTiJL2flATC4}hFpzj!L7 z=D);SbJS~VO-3e{b!~e9}qP=f#ZpPm{t<%b;yRw&gMdh)oruNud-mubk+o9?1uT*2#w0^C< zklAq_)@|mqk!@4EnX8jg)i+lUx7zYoT+!9HYd8A|wKiIfZk{x8a#Oo`mEAJmX>9Ii zyKP_1vE4LF&(zhlW%le~)>YTbChgO-tE%PXzS=ta&;;XOJnplxe)n=W$JVJ_COIH_}k2@#%}J?&HAjf%Jxbd1bUfKU9vIP?AH7_n4(WF(@yn94s7UcpK*op zv8{t!d;L+b|9gI7H#e7W!k=mVNO+NLW6Q2$)9f5-rL1r3S%7g_xpp({oxMa#^Gr15 z-%+_QrK`r)2=m9O+Vue|aG2w^NKDmLGvmkk!WKwqr{C+DJ$<_Fw%J+s%pVM6f7@71 zu@(st?q#!Wx6%T%Zj$Z1gjCxg9x&d`x}I$ruc>xhX|wrgW+@@8nZQO>-<>SsgE z*&f(G2N^)IAznA}jOCX%Xz`#k;HoaWovJ$3H#E>Re>H{9Xql~`z7ccQ#xq3i2bQUC z(*`|-I#V5{GV<1lWg1R2RUhA{p*Q%OvVD6dk5O{T%zJPBIO+4y@7mpVR zJ}@T7amsuN=cQq*^Unor8<;qF>$SB1$EyU-;f{Hj9vlt6pA7r^5M0kRhIxh<# zYQzM`?$op-`+sh0p64@xZy*lj7?Hemx~n%cRY9Wq<^Zy|BpLp;Xy(gbxNuN%X4*G_ z!USIG3n%AiFHQGwAc4 zw!e-74m|f&q4b%q;}$=*&hh!VfI>#}1HGx0w-JwsFN4CT;5j!{SJ*t7JFr4maOy3t zAe0z1N||+lIi;k9z^${d;cj~_4Luzs3`tqDV9GMEkOW_xsZ5e22g@XLb~A`Vxk&w-)67=n}tDUSXrQl#4CF@0U5JWPGi%b^7#M`Ok z1LlEBxv$^0qAt*Bvv;$7wFdzbnpVX34Sou@xt4Vx0@l`|ZJOSLJ_j?JJ$VI#P6w2>x~;s{Pae@I#y;T`kU*d{@Bu;e?_|c3n}FMR63?s3+1n}15C(gx4hVqFtK7nO zrsW_tFs`8-+W~Njh!wKIDn(k&+^pu3TL9vs{CBoa3{Sn_jYscpvTt7Jv3vV)bA3EE z2D*l*K&fM6)Btu;+?f=#hP&*sG0WCRHPUnFb1Oza+Zh3q9fxf{gYg!lp3DpH| z3{eGWSV$w?AP7gm3KH&cXK0)Pf!9;_2K~uy3fmeE1ki_$%ab)BhGCW+C<67)B}MHgb7YAXj@pMlj#)zd!qQb`H%Y)M@~e?V56S z{SvJKiexzeUhP2-WfV&R{vI5PWSZ@>eLZzw^QPAgmFd?Lf7*EB_U$-k26yEm*!Cm- zaSI?FGPk*g5D~BKN@dViH!~qS0rjqFz0exG^S?wGdG=OQ;tqq(OiH5L~Fl8?dE6ykhKi1&hSV(CGtWcg(9@AKs}c_ zE(=pEjv>=z9PJEA;w3Pf=P7#@y|oBLqAB2>ICU*d`-uda2=c-0GM&`x{| zAoC-ZJ;xcasp~eg{*(jl1U@EeVj$OJ=#gnaUNn!$gOL>-4u6@aD+}$yQ-Fx@Ofdd# z0_;`Y_CUn)&>A?M4qJH-Fb+0oe@U@`-9`%-BK#paLOokh$N!k|13R5jE08zdp%ak2 zmh8{x6Wjv$0&qI}eTEYzW|~AIq)8_rw_z*9e)iqaIh3X%0&=`kW0>vXsZ}JdobuIn zI7Bc!GMk=Rk@gn1h0mp3I2*QbtxHc&GIxm4{?bV|xH!?L0BA`Ie_rDNbfzH;p)^vV) z*QtqzQ2ZAB4M3lQF*$&nDi<Y&%Z>ipo6?84cqee~IIH@D=AB%(bpgo8TXp=}dk{E-JYx@48$q}WDK^mNLSZ6uZ0!)B;sOQk_;#r)P@a*^41sZ_X zX_+%+TB;6Be(a#59~}^Hi$Y;P%g2YYJalD)WcsPN*i<)STes0C*=zj1Uq9+o{JlPJ zShfduLpP_8w4)Q8gOzekbGSXo6@^~24$0fpZ#M-qECYo;t=iF&kQQ1d`{OI7-6c6) zm<6${tPcLm*ZJ~_lX^QrQ9YG)@Dp|hsvCY2JAiR*7dya-E7*1uSmOG^X+|M^;o^A< zuTzx7`jOnIM)&hrAOH&n3qcwC0Sf^#E<-m&1an`sI(US1Y1PqWxXj)~syv3Zu7JT8jinv^tMB}x_`2?S~(y4UoCxLKXvDG?T;Q0Utmig7!0 z4T#~6=?9b%?gSWhWr}yAwK(c?H^s*wxBxf_lYEuh)*321M8o4|cmjk*IOBJK^mYT6 zOW%+r%YC1|zn#(uK?R#LS)CxqYGq|TW~~EuXI3{&P4TmKH7%&$ZA?tX`VL?_K zDkC>M%Xg1hl&=ooTU#fIxXBJ-%bSS7kg;$ApR#^;LBKIS8ZhGBGzE*nc91Oqot%JG zi1UI`X(pU7k$|jbMU984OHXzWk!CIh=s#zs>vB2mxGrwkQF zm|KpzxjgK4kxm$zadIkK=GSMN%_ynw1HgK_u8OY=KLjY-yPBD?deX%i?an$V#$=VX zJ{?8&32_k>vB$ny#Qtas2)Lhsds(o~dYI5lKoVZYm6;^egp7h}$57b)a}`12c`YFF ztYo|*cha<&QP2r`FQq2wY8rKSAj%4UyP65uJ<0tchu7b2r<%t_2>FWheWpOqWjF|9#n-u%7Qv+KHF09xKYqve+Et+!e{aNI8j*hCTtpx~WFThw)|#rZ8sYq^?u z^8geVAzqVC!Or%s#nxk;xv6C=p?3cWjs2^1g7ZW=hk<#dArjBmr(IB- zWf3s1di#LdHBR=gIHD%?`|hoSO4T>IzoC8W-`PY6dltY!P?|OY(G~Gi7Aq#Y0tpMv zRw9MAyG0^V4j0hm=0)ZWBNWKR0!;tgn=m<{e9ig?s!B{Y$VZcCUUAzI43p%Y}LNRIw3DzKI$#9l-0V?>i#)3$_Yr&9$3*eKH z8DlMATJuny#TkX+8a&*m0L>#3Ji{Vzn-@qq*=oeRmn zSn{&aeTwe7uKIyZ4wbl`_2Ko9U(f|;8^TrU8!;GUAQ*<#9>ISQtTEKgQvqP{6HlVY zMS==0^xYLDs0j!PM`Am+UBbRn9WSUs%Mf()rO+0jG_Dy=d_Uw0Lh;W~pv~wf&LQB& zxn$KmAtLyZl}!eJRwz97|B7*C%SQTfoV32+MdW&aL?@r_&xYD69@3ZYzO^|2|GPtLvgLdk+G zkMFA-bNKB3+`2nRm&OoaT(ICVtT2Cgm=8v_gNQ zy@q?8k|fe}C(Ge%toJ|D852%m?EN zBMjQ*UpwxRBYg9GZOJx~r&Pmzqm;!!vcOt*(1C$J1jI^J)b3-#hFT+etvbSwyaH7k zs~Qm=rHv%zqMF0e*H&ETM?D|0xEwAXBSZSQ?IqM+ZlhcSrU-0lX*3bq8lp3t#f>_n zI7=>AbPdlnTo8AKZ;`?-7h5C? zVwEzI7_qL;h17GE%H!f%xnWg6K`7)#8IAJEi!V4u&H3FzLHRx$1r6i8n5bj?mYaUJ z*4anigITl2D8Bjm4_imZCYT2M%0FZGs}O_gO4!i)*Y>7nI6qm>t%QJWyq|I zCqcT;)6=IFx3=EY462c95~)A~zJLDPjNft5_Gf)n$X!R!Taqo zd1gSWt1eE1Fu*x93@rC(5hXv*#7;Hj_2+%-cUbg{_l!Fkig6LM@o5kT4FVkVlueU}wF=Zd!_x^`uOxJ*3dEOh@(0=d|I zA0LR83UD3y!PlX>#Rl9U(zKY*(L#Nf0=dAtr*^NH`}hNJ81&yl4=r5mBTu^T^0Ay4 z`kL%x#0SPa5`!~RXNR`Qg-NK$_qB{mMK_$e8C!T8Wy7-gJ0F_QKHGUWg4Ilc0tncB zp`xC4E({pF=9+_>{xlr#Et_c)4YQ2HU#>V5WVLa zzdq3^7a*W9R@Wb=NX5wzNbTn!8FLE>qBpR5qJID;=_+=9f4pwBbcYNM7)x`mFM(`S zUT2zyxj#S^3)}AcJ(TM7>zMm&dobV7v8~fmeTHq3#EDR7|FeXp?E7LBh^a1og@ItRJ zi1PgPy+vd1*P*#Upi3X*_+|S3K7X^|`~m;lRdFRe8i)bzjZYSMZ{V$h6GTB%6RFjh zpnvmLuJ_G$Sde0Zs?(9-xrVlrbDH=ze5DI^fF`f{M1X818QL_Cl~RwX_VW(sF`Dwa7 z80}-lCK&JUF6d{lv7U?{QavomGdYa-nKVUl1__Eb{S)(v$hWPg&OJm79-vzm;RU+k z@gj-)ryMY%U*WCTf%`qPG_p4h-ki0?AKs8)YruR+bZ@`K(%U2h7dh@XYBk}wyAns>N;n&#Yr!B=YX#wFC_SU!N8V8zb9d}89ke4fe1_75kK@a8L&1AGAu zG~6^Z{~Eaq{~E0n2VTC3-J(SJwNeo#9m3dP0$GkT4r4q-q`nj&1p-X^Z-rH>aJi5$ zKW%3nH7ZgfD!Jo0=oh$8{FM}nznCEbG8={*tCc93?BQg7IChYoA+;Xw8AM9V=~gB* z5sI&cx+%Hhd=s_)#---U8~V#>`*7|;B50cHEoh!JlB_O8@;ew!0)#y-UQvLPEe}zy zJBsL-K%y8k^X>!$bfXgq7+#B+ELv~x`!;c}+|_40eca}oSYRm+sP6eu{kc}T5PdPd z`-;UR%J${o@LNmivTP@S$eg<24SwN1{PVX6-LS$!c`=tm@|o_w$^XOGJ2nZU1_@N>Gbp-EhW&Pdj4B3RJ^=25;#&Z{!VTmf zit1Pra4|$I5M(F&HpIkUpQvnL{U(JwDZa;8#M8d7-ILTU2SkZ=D^M>79@~l+pDH-f zeke2;TTt)jc9d`Y)He?m8p|IC?^2{R&c0wlORqP2j=CO|EUS6K9#ly@Z|}+12M1eO zuAqFFh!W_wuB+hlqP{#`w%sG{+VE#jrq*EO0{s$e{n8Xi={>r+J3k;0{d5pc`D+-?%Qt&`+KF}xWN$BC63(67K= zd=;M{jOo0#?b=T_>*Mk}PtGLc5Acxps1lv16>Z4Rs*;* zx};QOxcZ0SvG2~Hp(GE|{NC%?Sk=M{qm`@XbEf5(sw&FDi$Ze6#9A`P>d;_53+z)Y z{x&ljZzC7k6w(m0ds7yPZ(o4;`g0L3Scp9jfa`e-s^AaDqWZ6?8Kfdi1H1}lIaG@+ zbUQHGnUWp?A1i8UU95+O2)*2qlhUg|DPMV{#jyS_uWa$Y(*ndK-~d^cJ_+O0kf4^d zYh(4#k&yL_*Zq`jPlS=FJJBA953>auCSfUD_YqXJ%2P-GWOS&=m4bVO;=6K)Am|b^5Gvg$aO? z#g2qnOkhB6{B|Zns{FTF3kheoH-DC{y0|FcI$&l>JyU08>pPZExzLqeGxLZ{JQYG5 zH!{U&Wduwdq8_O=gVfhNf{vy&`V##e`QRRuqAS3wE344vd&7cY)(ZbsItPH|=`M?h z(jqsgDPK?}&ws3T!x6vqEFz2RUEXc-qzL_K==ll{`B* za<2g9k0cM5ik+|WKCU!(thkJ&>a?>|&~gwLz*LkUxDIvXSRqiD&Da5I+$=mWk5WBX zlt`MpgHRPn0H;%e51l91AHSfeQkqVmhB*^)ea%P%rvl=|G zmew?YFU?X5={bqz!ap+hJbxn4CXrEO0;xB=^k$Co%O>}Ro;4bZfr|A;xgA|&RFaJoM_X6nxJ}$$iG0H?F~SNJ8BGV(Rpf;ehIt2CP$#DwTl9}ws|ldT*yV_*N0HX^j#ghRh7x^jch}{lCY82MN2!;x-|0iLI z+$K|`I~XHHUo(CYG{{;LW3`#$YTVeHG@%M^Rb@lvUzxV7I^d4}yTr;z48xU3w4sWb zl?R$_gX!y$1h*5DPl%02EwFrA2;3=WTCn{Z+^OPjS6{vp>#-PBe9_Nz{;a$VB-~_5IVS z@x2AkEnBAT2$#K4b>>e)dMv9R&a2fvqh*&+jpoc3stJfD-f1xfzShLm1ldZF%Q6?V zcrh;EF1librx1&DnY5fv?h#%S(7680#-uW>P@N*u#LGM{*n~?Tb0TOs9Scxw) zkkrCn05WMHMrlOfGeaNmyD`QngF4Cg&#TFO&;U>^S>`Ev!j0d|+8j;EC zg)Z^iHi3_9<;@8pgMYvl8S;B0cKVPRP*Nbx#=JMB7ydx#Ac44azzN~oL};r7o3W0I z*%JEkYRt@w-Ap`eOC`_N%oRF%3o3G+mI|Z-XYilGCF5d5brRbbJ9wQ>#CVHdO*=I9G;g5jfFXUD zH2Xa>y6GoN2Bml6m1Jrt%j^PZgmZd=Lh|E@bh+>!vrol<%T0w-5K+wyZU{>V_)@K9 z{ka>DU))Vxla^wyixt5?{X{MDs^l(!;lPQld^OmMChaiT79+4~^=a856juJWT>-s3 zht6f+?wEV|Ml-zb{}l76rUoECYZd*X9?H5odp_p>9i6&m9q>S@6IHgL*EvH9%+P(e z-{c91Wnm4$N$VopjOVr6nGpX1s#|hzy}rVIA3PWWbdsvT5e7z5TU#l(JbsH{I%ivo zMRa}tHS$CahGJ4(6QU3Pp&X&d2it3bKV&bgW=FEG~+GP~fP|drC**i!WC) zl#qHN35hbgg#eH~_#qS775gat5zP&;ZzokbDQ;lA0G5q$Gn06i8R8hmi3n^a_;5;? zlOUrKF(mCTMk99&i#^}}m!Bpm@EpR$GB+lu0@#L-3%Pc$2%kWRcUP}#5PiYn+HoDWW$po=s%QRO! z?y6g|Hq@0_p#Lz+RJCv77*yHFM;jd6Uq}cq&zMx@inVGw=5#PhDLYvrhx5QW;nX^y zqyZfzfY>!OhO=gJWBV{g7u)ZEySia$c_#)Q9;u-B!2LrMw+$9vD^oWd7BsZKJIOOk zOH(H1SvJDfQIWvE0W=y6hBOse0M};sR#YC~0t8PZWv!?fl_zmBBFb{{H$x zGJzBN{YU=dkGT4ZW3Ssaj7c! zl{h+iDgZQGmmL|odYVJG06UT9)WS6iWl>4fQqp^4Qy2zX=tjadQCy$-Jfe)|-|7sI zRs2v@iDitVoDUBjkRn{6=8uML>?|f2cBcvFr*1qMw*d_gU=FUNe0g{OpbAZurciL3 z2cSp=UT%^XHCVfqy5dz@JC6;@MsY#rc2qNvAus5OOLIvykvq$C$snmf^{uMV+?F0% zbQEoNi-?9Agf$Eu(6I@|a~=|V%%!DVcTdg4-A4hdmT>Ny2~<~e)`Hc-Ag4&Iom%BM z!ZUdwV0RiSCM!woK$4X{ z<9rDd)$>W_r6XE^IX$nAw>i}BI>+gH-hD0 zZ`M9G?cZUi2jDx7eYsB##&bnvqu36Cy=NWFc6xU@INm=E6@|1I~22S@i_ ze~mC~R65p#Jq1h!URm>n7_@aTqvKRfcgh+row zt!Ov$A7a$iy?)E=B8x(r-j_QXizgRJ<@R}Je?&9a$_=U3GL%Z{K(4dQ<8Va#l&V+*2Zo6)2y{U;Bzrk4t(;P zACxN&x!F1A=Z%E;4SPQsq1&nHX}Z!S8Kz!~Jb8b$O~;rLyN7lF_mecVeuPV37=IXE z;TA?6obsUPPDM^Z3xM&va*{fIS&>Jo%IT4e+z+L6-=ITT&u(`wti(!A^}<!^5v#0-9RV3_UTwN&s}5p?qMs>#Df= zb8y4^7Y_u6u*551_1d**>O^3Eh8)Ae>zrW{MM#i6#k+m4T&gRUPt>E8Q&fF$Gsv2{2hs+}o*;1R za1mWs1h9@7+f8YE$(B&E0pJPTeEiUw?w=m_bX2Monr!NnppU!xbpp%jqgbnR<|QH$ z*@5OB;yGgK2@yFSUhxj0)%wxh>~eNl#T?%-bJ00fNc_cpr9dP=hjRSd<3|CXLDfx& z&Hb6U@Ujx=(3iyY^X^!H0-)<dr52o!wAyuh(Niif8gvFI&A8F!8!l5R(@3A)m8rpg%tNN(bp4Y?%_iTR(3eibfN20D_hPv+}t6O zBnFTeEn$wfxU9rk51~?Boi93|{R{P>b?xCz9vba&CXhkkw(RW=mUqm*NEg-k;-YJZ z+bENEZ68~XcKu+dnUOC&wJRxCAbTYrTvg|*mcD=3KhlC*&X_yr zl{DzvRw|q-=HNo3&u%5rZEafP7WqUv)J0rPvF|uViBFtUGtlkb`jpiZVwZ{QrUm^* z5vPiMv_Oj$rAez>&Ou9vJwzVn=kRIJ#r`s!TY$eXRQlj~_4UM?knscUwD`GVHnpTNl5r#%6)%WI_wp|*Iz>SQL)uXg?hHsJ+}Di? zh#;>{hm&UNMl35Dy71vu&uQg>Q^GNwNxx2*A$p&3xM5OU9@}L)uhR&lz-`+keVm6% z_--S44?LA<_>6a} z?@{D5K5;AXwoStbVho_V+)*ls@FhxYppw2oBko1)aV9-f9fui`93q3D=mwJJIA`iF zCZ)6!+FW^K3+@!E%vxKHo&zPDuoGe6{thHT(7U#D&^H9)j$l}yo2Q*LZWu*U zjKbQYM6u$v^N`-k^*a$wtSduZ>fP2;|9xpjxbc6hIP}-ks`HjJ+p^RpHw8f;V&!28 zD2fThnOIHfX|@IXAIrJ{!z*P~yc8rsYCB}Z*#tBM(d=~T=F%?b9PlZ|`0$qDYE+K7 z)}}W8YL>T`i45nrf|nF=`ZoM)7AhTl<_*t!;X7I(omowV*fbA;6wg^bOx?T4l)Kyy zDX917EB1I&%q4{<4XQ}z_RF5pib^B9LY+yPd>BmYMjf!=p;30vp-7Fe5ctaf6h_1? znevr)_xmM%qziGyBYoh-w!1*F(jRbB+*#=PkK{B9rCB5>Yuw+L7`Nh!%leWNwZJ+1 zm|en%EW)G1Y`rKyIi%4s{NW1W6Dyw?h4o;}qQ(RHadVpJvYlavp1 zutYNTaB3B`i3+$Zp{YE&cf*~eED4-A<%nQyhrdoRGm;uIJOIJuF6+xThEjl1bfGK62nQ?}+=u$F~0C_4JEyu$>cpKNb1|a1SibT)=eLQ>H_j zSDUhNSxL2V!RoX^8FY<9j>l&>9e9-4860NH3++GAj8E$CkYLyMNXMw%CUS%-WQHW1 z90C!J-j>^oDh>ElCDi`o2GV)RjOnKyMPp3`fB4UBaH?O2W>^lTiDO452=M*tzYhwT z(}*d|QDBy~iA)H!h!x?`=o$9*Go?lhiRgGJI%pZ1ukB2M!XJa$g*&z*rPU^jG@-Wh zL28LPiRXiXcdL_hRFt(wkt+54epUi48wu!!dRtc(CAI+Mt&V;i7FCjP+5}l^=dH86 z;|iwi2@TWu@K%-Oj+fzG&-Bw-V;q~#}pt;MlxR|W^qR`hy3 zewNzy{93-3rrhfGdcB`MaZ{}M)%mx`fnfbi)PLJbHd0nzmH96~u$J8|!U}AE>9$z1 za5k3^iscztRT%W%$+1+@2AYudtqWmXog*0E!BYj>oJ7RWaN~~$m$Tirdtf%oKZ}W?uM1%rFwreXiXT=%N{oj2t z0*v`hK3a?)*Hm+H15x&5EfhL5NtWBA4*7mB)$>7nQbZl0OL-<8h3_g1qy@ z>Aa`Um4oAUB1`x_+u1vOY_D9(DHLTypFPjsspFJ^;91Qr3q)&%iqM|V{ejbN6kgm7 zrCxyWtR*UpFM|`_q7Z6}v;f6@vEmG}c}vW-f%da^V}fLsm__D*(%pr2z2U?0fuEmg z%onBI{$FvQa$L%63eE#*iT*dTtN)js;qz2(LG^Bj@M$N#H}MQP~^LqRu>5hlXH- zVKF9l@TX2);0D%pl7#@h$8 zqiJuo)f9Fj^y(=cn(%+WXK-lhUp0*#pj%C?B%K|aO-aJzkVGY%p=q;P_JDb&0!OP% zpT3M;+bRU^059DV{=S#ip7`{4l4zTl#HsW0h#us(95Xe8ldid20JOzY)VZn!#}|^M z_BVj{Pnxue?GSBCS>)Sq+Tg!!MHw7yCqL^qbThd}zSZL{JZcM@3|PB;MQmAyKlD0S zc8$N=G;-~F#nnD3p(+@v9qaZx{TuD)wbxFT-rjg5A6 zk-(*&5lwEK`A)NsdNQ112i~EbdWGE%B07s&dMvrazr~@R)ly%6zK`^X-T{d$fNSX4 z_={YdK8MouXb<8X?W#5o%ZYy3SnKM%k^gMgG<=j8=+!g_eP(*2(FS<&^1kwHpx z*uIC4H;g|0?l5wJ_Qf>{pwZ5Eb1~+sVZdjveUTOV$qd}2o@Dv$*_;64&7j})Kn6E6MD?X}U7aR!BhH_wB|L%Gs{ymI za#R#W&B{@u!vG@~8Q^BGaLfEDOU@Yb@$h!|cQC=NG=_@8-r8MYJVwRfUW`;RHVz=~ z%m1R?TB|RL;lojT03cW$f7BEQ#s#7I3N)rE!@_IT7q)xYGlC$$w=EE09JipS$g?bMbU1su>JQ6#}%q4A1pQbc79Y8Gn`MIb)m(FafqdZ8Z| zeyr*6TcG0frodODrJ1c6+L=_DbcYaR2|ERMR`xqEuIG65!b7Fb?QCv`xFoL=7xXbQr7RT^>n_c%)ZX##@^b!kZHMAv)n?{?(f{{yPquArE($0B zzz6LAtp?4+(b3M)>3?d_)MT8tSpVntNB-r2Bhkd$@o}YW8I#RXMb1S7aH13>3#9$M zLB?ON9Xbi=SVP9UG4gud+wSe))JY>FVX1j$J?UKzeAGydTU=>j{&__)EtXl3WB`@Q zGZmir52t4Ns!Bycy~-sWI%F7Ut}Oacg{4bfH*0`$_@?TnnprL%m61xB53`A7vtCsf zudtP=hadZCljH&p>nwK`B(HC{3)@>2Yd{Tg|3z+hlXjlR}Tyqlw_D0!LK) z^YGpf(X-6~z|_OOzNJglp#r0HEE(RiW1wk8JVY5M&bGb8)Qw|@Hua=vn7yDv?DC~4 z$o1op-~qVWokEQp9LF*gM$Up@Tq&ZNcT-Roy6#`HA^6^$Q4WxIL#H`N#3&%2O@}-c zvHQ4w4eGRmHul%IdSL{1Ej$L;+G6qRV^oJjR~bVyZ}ckcR!_5DP6Q>G z{nEYQ*i5i;o=Y-?ar1}Uc-r8G^LVp{+If7GIAPa&V%JKK-X`^N8fcU86usN)_Oj zad1%{n^B8@hGC%P;L(5xOI=*SP$vla}`PZQZ@lOG(aK>SL8@?14rUt*ZPT?6iV^(KB z+E^Cc9>5Qm!t3LCs!LB+G)c5oR|G>-i^Tc=)cwR)mxc6HA14F1@!~(^m?-y@reJ1Z ztut)o%6jsjjBV|8Mg~UM_SE{G6TnhOPO1>!55xUplYV}xOWQWytvy~fc`eL0A3nby zlMk%a^nU=061-hit-Pye|8>8B5T-Eq#OI2!W0TR#=(5_fZRE3sU)Xxk z+|;_>?U@DSh_Q#=bZy6-_dMfjKa%#qJcLpD_VfyJ?=b!BVi=4l>6pdI-C8CEK_w)^HzqE9`|`eurKayBj+ zkuf%f`%`Y6`G)(X<@~|_Z$s5dWacFO&rFdi0RV{p&xY#mY+~zVVQ2fFr}k*t*lmd- z{nqL=hz-%Fj7u-YS#Ai;+SGEO*esCT0EQA)kEb-7MOHaVOmS|<^_iKveGnHb zoT^9p@N{KnDy?vPO;@#qcFmQs0|B3P zlam*SkBT(vkU%=(Fa7GVpGag%6#WAThd3eQMm6He z1YHB#W4dGjLi!EVi})4wGVSvvKtNmM2>FsEbkNAcWP16DCRC?vqxodDBe0;9%338- zWu>%Bj*YS_{8C4ZI)$++n>Eu5gvbqZhPM7v)?g+kW2L1D%CMn?^b(#AA-Xc$U}fAT|pF${0HJ_VKz^sw3_ z#i%lvt&6BTw8_NE1~xqfd$LV=23YEBY!FS^86PvN%qn1! zP7YVXT~-xn_Vf|Qsm;THs3}y&H5|_B`cR;%Y250VN^Q)CJXy(Tu!D8|wp^q?!()nk zktr3eM6D1>Gc77y8WQ6iHWSt2gsok)&OZE-eRsi);|stYXQpKS>P!#6ZEk+(4uxe+ zsr_(3$Z=L(N*THrFr3fNfwKGcVO^Bb!Bo|b{3#hO6@N94sq-G?h3*g}0@7evZM!hP zj=U<+#mh;qZj@$JG7$j&3XPMj(p!X2VB??$Igo~S6TK6yW3JF(Gb@s5mJKNyChEcN z2sum-1W~13zjJY=%1cUsKfbk?!uS6QNJx&ijCtMIz(<_`qUh=n0Yfgk4+D=PJ9HM{ zN+>~f+Uc)i*-aQ|^ARM3@=?p3=ib(Bu>?_sc1b(cG5zHSeYak@#O(IFV}rNe*#jjof^nLIjDu>j5|lw~Bo(f*KK z_`B<1{X@|7-wg_Rhm&OPY|>(Yz^WCX=e8oNYPC{=*Az4%e&{vb>(vn;T2kC zgNgU?lV;kPFbv02#&-TOv$NDQTiML8m`S-fY{bDH1W29ed{VneaK$D_uV^qTPlVk9 zx%ep4Rno|op^C!E={p0xk(^obWBEtnywOO4EC_%)`T-U@6akH+hoiSe%fByG{;M6O4fz)$WtN89G zS)yXc;@`Bh&FhL(IGwOkD=TzW*#w806T)MiR_fl_b}v<~rsRvy=&q7MBg`{v2JvQ8 z*Rj75KqC0J+&TAhm+We#QWfZ|%W2Hk``mP9LDA4sxa5UOe7?Sx*WW*kZzGvCnlK(kO54LqlP zqnyEK;f601%raCC>7@mX+NjND&MD`$W~|0pF4diKKdb>q;W=Qm#>`s~|NRN=lT7wMs)K#eyq!imPnqY<+PSvwF;`l2QF^l@B%7LpQRSz#Q}LHo>RCNwO}>VybQRF z$UA}A7Z+Z(ur?-MCuF}YpUn9D!t=4U750=Bp*^^q_*Af2O*3Ec7q|hMToBCASWpK8 zZfpX=@2hRQH~Vpkn9$yM=m1O-oLFYUNl-5@t}KmNn$=3pily_x`F4D495V4%n2fjQ z@^an|y?Me?L+{7+YAv+1+~?qeOwcI>&uyw`>oZ~D7tf`WTF+8#Y@9oh@>TOl%t2sl zZz+wfGod%(ZjC3niC8=WRt6^ipQ4P*nB|u5qG4e4-J8-w%)4Q_Q315%h)s#B%5|-d zZRcKc{@YgvNlRTX&pZFsc0Y!ip5Es1;%FK__A^-;dfc9NfE0KB9Gp7!d%tr-Kb_lf zhx&A`?yDCuv|#c=2uyd-7N?t_;3s5+Y}r2an!dahMi_(NCf>?#Agc4{Pj1{pJ9>%e z*2OB<7Al~|ju+tO46d%5wlzH3&#YwKP=Ql-QVOYYr<$;vC???MP0R>zZX9Y&0({Mi zGj~@xUXNAm`r5dHDr5bhKek;9A2hF~^k0|@T9Z4h5cZ|6kK8L7g>qNw4)=S~ztWgf z8yXMZC|{o^=)s#cHa_of+QDbzm(JtcxfYvZY&>|G`3*jL&pQ34Zd|xkQwg#8dk}|W zbgE^cLC}}%F=Oo6L<_PwxAq2*+wCV((yKtw(G`k_!G-mw$I32yN*%Q@+Bwf8A<6Q! ztU`%Pc$K11_aSm1%By5~uz45mVW_}=ygJR>*)wq?T?muavLJean?DRWzUE|FmgR=L zg4tZ05J|~F#-W6D)6mnc09`8B`sC8%2c6c-#?t#+bhpBpoq20@A8yY?nRy5XJD5|2 zRZ`6iwC?3KP=YwhGWzR$H{P;fc54mHrYUAPFG7~Ku2tvaZG`M5aa-`C66;f4 z+?rK(d?9oP&%eXvI5BDh;!xvwvbvQ{Md z6wi#2Iq~G!a|M<+8xpQehhz4a^5HVTJGO^v-ffw12wpr(&=K6c%3B} z|5~;>?#9I4Zs3d(Yrg!jWyWS)30b#psBxmMQG3Qp&^K>KDy`0Jhl6C!WwbDqemz4` zwzViC9g0CzsNNdyPszH)3z|?wQV4N;atna5mBGinvr&7lUmLk^%v9o6x_bh`*X~3K z804?v)dQ%zPLR)iy<%x!EI^#3DF%d7#}u$)#7N9TUn<&tcUE(u8;V!C4%w6udtkuA z=?9v4kS>@o0D=T%i!j4JowZ>+u{{;v)M3a4A{~1pekrU#x|JSpk-54D#uDs7bctj{ zmDwL=#>l;Q@jdz0&e#;@gucgUZvRWh*j1h7ZpQ! zb{lFD9x29kvyg&{>;~KTa=}=X!*5#NiDuc?BR+6G*O+auqEV&SzsaROKZNG{`3r-H zythm~X4vgVv&(Y%q#fl)6W)!3>X|$5wS4v$;nKg*|GyTr35L-|Q~&^X5dZ+v|086X z8rT|n=$V-~+u8rmX__AHFQ+Zm%)YBS{^OT;X_A)F?36|Rlj)|r_X28r8Ejyg4= zg!ti166L_=!rK?WzB|Bp0ErFR(^F;{qp1F{yPv@^>9Qr}B^M>L4qfXbMvfY{M%6G+ z#*d0fcyNt~c14+tNKd+u+9Sr8D&>1Dh4SVJQtn7Ahw^2gR7n}=HmbQ5hJS8J>@rQ9 zN+#J+HPKh4iJlyYhaK}?Dl0(y5!xwSfcyF>p-TX|WCz@!Vb>-iQ8!CI-gG0nr{Mf0 zK=+w+h5};vHh(kw*@lx*%3lDG#HLPYQ{Fn~*)LaHV#ifR-(QFgt5asd8i0qrF7PQqvs zh||E^4&z6{hll#O)WHyYUI@QOGhO%r{$9tbAJjnn&)okSxoaWt45h;Jy^nNY2oN2T z#Z<}i*-VJgqeehn0MlD}{Y7hpQMZSm_H^g|zF5BD%gg(1Sz5reP#_>U_uMAM4zd(dT_pc3xAe9kkQMXE^*IA5TBH}*8$NI7H z?BO6ndMggZ6NXFH396c@Sv#a*K?ui%0ZkeFKS=cS*=&+0NwW>ujy!^uDKhBl|-lBa9AI73(i9gb4h1b0=-PjA>LDhzlEr; z!Mbb1>H@d21H4-)43nEK{sXM+R*@mSJ?cK7H&}yeEoZ@JH^Q~>6N0SMI6Va8xd+VV zIdsP6pl6KN*(mS^HygThXt9Fg$NVO;pWpzQ>lYVn2d(N42zHe(W&GJ58nS&a0c=#5 z=?6^Z(wA|igJyksoLgmg~r*Y%M%i7aRd zI&3n6q3j1Ig)r-$eM*HS0R)!~C|}a3y`b4dEk}n|qv=m-?~}z*5AcWwEaUap3Wwhe zp^^+&IzIIOKox~RPJ3^tB6pTg2YlQI7+C4aWI9}6H*_W-c&*#p8YB1wyv*@z0a(o< zn^FQp5XECK4gwU3qXHF?%kmixwdi>6cvq`ep;C|3M^+oSD+Ey6XLREY8#5;@cWFlU zdGm&=^5J|ZMBFdb{~6facO)mRN5Qdh3{zbNgLUpcrVhv$CFamyKFDV_hSmw^*V{bf zJUGB-=ZC1q3=U9t7T?d%fOHlZ79{jyG?55|`aSLpP%a1z@?lP|7C3Y@rx0BM!K?0+ zps+%L4er5NOaw3wvW6QJufbstYhPS+@pW?cWnvx-?t|BU03VGZj_e0OFN&6~O^#T` zT14lMRNRDdS|<+gD|4;sAdIrL{Rvx5AIn`BO*2N$ZEZy2pVuggiRLCgYXO^MiJ!2# z|45bYS5^h2+Gd?1+>AK&A9gMHbh7uT5nao*Q&njt_Jj}x!BpSdvmO|%INEDihU{_q&cJFX__N6+eL+I;m+6d}A1Hw0fRkkGh|zi6D#Co($lt>cB;{vGArC?}$ z&28G0lG+IKr`-o>wY8 z@$6b9z>p8`lR#_?XLu7+LMQcd;)B3NB@X`kHzbXDal{g2?M7z!Z}NxXKd8*9feRjIL^lVcVmHe_OQ`kjFsk&3!=pmq)s64I8Z z-?kaR(8wKe)5e(6jsTYET!-;pNfUlbzQHJw6n5Q+C8;i~4kVGjBakdur~Z!KrlIo* zPvXaYJ|FKvz6QAcalZj)P+pY5_u07Kmf}B!iek9-*~p*^=Pv|l03z7Q@-|_f;9}k* z(?4jMm>jDstsUC|MQzpPeP&9P=WQS+1&_q@IrC_=GnTv4i}m#85vMR0Ac5 zkC;8-L%PEgaxe%sP!DQF6dmxeEXhdYUf{at5y|diae;T~Pvc;5F$~8H;OWw4EO87z zDrXATPC*i-GdT0oJMod)B8pFnL9Nc6$SaFr_%Bro;9?NaIrfiWE;8wgdm5LqhqZ&o z)sS@XL$p%iskZ#@;hd7D=k&MQ$9^Lbzob&g)|-yiDKuWfqiI7LdGq? zCR0ba))xbgbqKg+IV%A-i~F$Ab#XqhUg8b8)yhI4hM##gyow9FG83AhPA^pdkX0=G zL25&*uEU;g)Mt#+u>zjJh$vMVzP+C#UI_4NnP3WvtssttR$c9 z&BvAUMC!TAkWfoWL+ac#Ux+p8K5HeYlPFm2-O#n&oJSk>>4v+ppt1L8*?S3fov(xT zGWO#J$js4q2-M8a9K@S3<{Y?iVs!HYj;!4No_cy<&+llfy)Z6=^WV2aUfNT}9fAwK z+Q}$5Q*s9N2g7qIsj9S>#J+|-;iZE+WzN^5<4?6`>YGKf2KOvG1<^(sP z8~~nT3Tjk~FC{!F8ZR8Sg@xP)yQrVwx`)YoxLQZI&BC~{t(q6NGc$_a1f!`Msn=aZ zxW9gNUECT1I@SFRUdl^5IV z^e@=ef0?#>UN#X1P5liHb**s1_3t7k+fuIAO+$^fvO%Zqxf-qY<>;b^#j>-2O}e9p z&)XKh}Q6r_vC< z%{!TeBLld2$jzWRi1{P}PujFabe>O@MXA6_(Mf}fLE|&twdf)1l_1R)P2&0!5{>vT zhL&F`@w{Z;Uq4yiG0`pCjylP)AP8!VH`61(uiQB4iG%X3Ep^KJFrBzsfT1mLkJ-c#D@&CUk-HM&&kusLG616-Y|M|4 ze;JY05K*RmW2(f^f#RRiOq|24mcr*X{f=ccG5Y2uFv1^s%;&c5S>U=D?C`9l?`JLl z6sJb)i)Fr6hlM1gXVjBy0vbStU2`wwDRFT2(WGU#pF(!RHMs7>HZb5QFHPH$hQUI7SblAJ%Z71R!kzwoR4B7fNqrE1V-L8v^WP55rrdVMKH}^MUe6``=4J zauyGZGyOerygv+t_s!$21og~N?LnJrNbfN#BY-sIhw&Q=DXoc>Y{Hh*X<*d5OzpNj zmf|i)vv@NbnUH#==wsNQn%9hl$d_5Y@vWfYu-)6WroDP6SJ~mY_;%-!=?Et3{V;+g14aum?hBiT zQ7x+9_E~hpb%Ioi*m7Jrjq}N@X|uFR-TJv*$~WO4YUOnF^kfrK(%HsM&jvy%?}nfn*k z)Uq}52Eso9wCDZfeE7VyG+olkKjTR@w(wrOrN4kL{Ute8$9z|ON)Zg5)O;5ea*HW^uWt8`8tZc57kWzmwL8B ztw;7E;o0@iIR{2*-Q0D>GSrZBiFq>(FTk^AG7YYzJ~HOBkM4opmqoudC|0z&1phpG zq%dBJ_N4z^-l;W5G&M=2!_Xg21E_6=05#)ty|vEQkDSkHb3oLa1K99$H4%p5jKG5y zijOa`boBy9!+X6`WZRTZ{`+WhRlBw;ED7;mRR|Pov%Q+jb2%X=Sn$20&UEvw)#;jW zwK|$DZ#-G}+AXxUdJNQ!CtOrJ48?afFiwwdmI}h3R%h;eYl5-md+7c6R(YIxOu=8E z(9lSL);gLa)Pr!d{tTvPYcIQ8LDd_HpVgsr*xz0v&4!&_AXGf#m}}KvXyA=$0~u2i zX&QVR1~%Pd_KVcrcl_0ccBr^GU2kvAFd!TZfFZVoIXI5#FLWFBRdaxhM4>qA)jM^R9nDUIOr z)+4H9V`&y2Rbnz_M_~bL&xGCSXobaH~y@#A8dPw)L)TSLH5BpQvzhHkZ>6M+_ zbaVA~$hLnaGHQ+FtF(LRTee8lG(-g<68(?K4-xbl)bq*~X%>8+F23{wi;Lw;i`s~A z89WudogXdi)0l(V0(KMgtZae_xV(tPqLO6;loqEGtJ{ltn~fs4CDZO0XX}VD#+x0f zY^Y8&A0fMyinXrZfpJR^V=Rt>;f0D%$ZjL9H1*#qel7` zoU(>zYqEd*LL6wj>an@$EBbVZ^_E_Au@Ftg?B_tC4CzsqY+;5xkJ-W;omBZg*C6q&a(U+?Nvl zoWSdxNLXTzh!0$P=N`OGkI{^W%S%n;+HF3x!CG@CJ(JoNM`L6Tc{$(?&a?7GA#CLN zv@)9QC0AIaLTr+;ueCThq zSdSGs@NL)4{8r=lI$h(w2R>^4yYJ2$OQoYsY_;tzzquGY7tLcc?jfk_nRwRZ3r`uQ zuqzitvlCAqolXxhoY%OCFRI+L_dS?11mhF{(JiW76LG;*{@6hFQmTQk_>p6+`jxW^ z&sZDVa2OE){X>$FWaY@31>Uog=IY)ng9Q&;!QO6P&gC-z%u^-ZL-GH!rJ8j>)Gkiu(8ALK>V%M8<>Pp-I|nC zM7bEKNCK0AGeeQ^mvV%)hlR0BYjoG8c@wWiZ8`V5V-j-IBjIq3dqvLL4Nv=8ywM6l+r?xJ*B4o&|1VqL$YQmW_ zNBX&xVHNs_?4K2DVOn)H%WA~?w@K$8&uMR=nAg!#|D?7I8F}|}O6Aff+azs_(qMD1 zMbCW8IMmWLtwfSWt_jX$U;n0i?r3PkS8rGU8Lrl?SM__P>hr(URR;H0rtk4ZujqF&ah%OQSs?r=G4{>;1T}=zOV>r52dgWyK{?7F2 zQEn3z^{_@|6Lo9QCBjCE+Ce*YoA<4)9SwAjBK)9@;{pVv3>{MsHenxHl0I z@@02kuCs7G)1|>?6-vt^jrMUocHv84HdJ_FbqSj6w(dIaJZHfdD9SGLVm-QLvv3!t zYjS)#&w6M$#x`>+D4$$D!@CNs@nrtV;ooEg_iv8Y*@zowinnMJgaFQ;&|S0!AzK%IBQs< zI&!xx|L)Fw&tmhpzMEPPjoJb|SK6xztH78h1E|E?FosSFD*YX5{Fq=;cqvJ?#D_Am zVLTVCs_aI#OQaWscBb|N7W&}ZW|@e0Zog)D@8sh%<-Jo#Ukhgox3t!pIsBV|G;S~* zidXb1dx;WVpxYX%?gF6bM(wc!&VIP(waQ{}RRu(nP#tv!tbR zeZ*EGsqxX>sor8O(j2}JQ%@1m5MAnkyUD`-SI{X0q|w+^F<)yH6_L7-_Vd+rF|!0z z;GJ@VeiJqga|D?2%F~5we9OmCD~){HLQa1a zNA4BL4W>?NkXZsePyx&hbskHS7)7CbOB=oJUn3+U*+Bwmd5Qi z*xW#APCtna-Z;@YgPvPc2(|Jk-TV|(bh!4eD#(Tai0$-57HGjw<-nG%!-f<}a6~bJ z8Rd74Wz9hpsSqeMyg8xpu+8*_eDAzs-|u$@NOBhzOqA855MvR5&a285)sn?w#CAz) z77!c#I;mpNNVbXS1poUlgQg98Bl*ZE4AV81Q5&W692oBw0uRDd_G9{ooy-AP!dfeR zt;zdM0XlY*UDQNm1RK0f^(Nuto6t{~H}uxw*3sJa;P?#I;OxFbj90@_#GXyF0(X)q z@z~R_*=laPB*T#L=PmrAaLgFE7OFE9h#%pa){0^TxtNCLwZhcOgI%_lTEZv0(x84%r-C)c!lXxiMS>@$IWSkVKrbZ$oF2sf$@fPB5)q#eIrOM@v0ptXMtn z%&w4P1$%U_sAsb-w_;L!h2rH8J}&gQF%XD%NO;<l&fd2GF)qFMjp2_E2Xfp@nYDjRS%Zr2Tt1@RE_iQKrkP3b z;4us1J#T3Y&+gPQW@EVb>~P$K&yw}5Ti`v}3M9&JU?yb^nS~Vm(fL9d%1FG+pG;3l z9{!)JNM^-_5(wF#!TFGrrp|>2Se5otynm8}xKmUbEO;oeJp71kT#Euu(q&)5I%3}3 zeP&@ZKQ4B|KZswg*u2qg7#@~Saf z5x!d$-^iaco;Z+_JrqzzQ||Wfio5ycJ@%l8J$=cKb+?*y(LJ7_+@uBis0qaWLdh5T z)DW6f%KX<}urBnrV8t~ko=F(6cDwM}e9OLa8|Ov!IA8jw-*b@Fe1!S$=)kXK+{fdP0YP%Q<3D*_%A?@yS9(YC`_6ZZ78)E$Dsn zdA69bg4Xb>amTq|&@CcT3NFb#N`#JW`0w5r-rHDbvQjQZQTd2%^V$zuo_q|pCH13x z@{b|ffyg+oq;q+E_zljdJ`J2Cmuoo$?ei@3F+iEZ;U@LPQSlZIu`Mkfz++wrBeX_BCslc)C5>v4vekY3n0>$Z-o}GLLaV>wNzQjU7^s)%e6CcP zROa8e4hR16FLhj^H$yq#Q+kY73n8OXI}f%e_LgE%y$wAhj$>%v7`naL5f=>~L2OLY zk#xMwt#4MrRQu!q+BI?kn0Agrq=fe&`x-A$5osh&J#TNb|Q#mnyv z!k#WzE9+eAadu4Z%lO03c`whYY!Fqq-+z7oJIAIE`H?ci0|4kT|KI8&|0l;<|G%9& zGnzI@Tdn^SV*#&DLzAnPMl4J@d(>r@HYIpu4CD03GC1^D5FjPS1&V><7cchQ+yLVN zD060Ica)DflJ*T7++RVv078chXk}E?6f-6SsS5UO=-q3kYNkUBRwV21@;|`MO*0Nh zqcv=VXVFSbvmRB^q(;w7bP!1y>AjR9Ui{HHvepz&!~>*Z|DmVqGh)Dn1qEo^N$NB# zzLV2@FBPgkQE9Q%xg@BVR7~sF&!1$rARXzQmNz!8L+Q-0c5Av^1h1B`=00}V`H`<; zkNkT8;)~mQO%ow?9zbnzbN3*t)P@5C4lEWpx9r~sZ~96t-JVX5FJJebn+%NTilJf| zL=qZBU~~^D0Nne?b$^%)Bts)`O6Z#qyt< z^!GmOTs4SGq@;6yU6i&t5`?tolVl*0A|)C9gk?zSRFu!qP^_4#4LQ>zXUqJl;eaWV z#<(S`RE&HS!z2TLulQTC&w25U!Ml|~C=5e9M`SQaA=$M1Qc_Fi)nePQN@tS#9u3qsda z7hump&?`jGc&S08TZc6*qdNws+xb^Q5)-&KXmy4i?1eg=TtRhG$kW%4n0?!`^?VJFhrYQp4NX|5XCyCE;V<=m& z)9FeqERo!rcT!-Aet9m2J(In^YUILs`2*{GkRL&nhDy*FlZLZsWWepv(b#WGvdCxq z3A3g01Jn_vmQ)gCi8~?vYhmud-Dl^5p^ohcH8>i8;K?^7(3O^vWwaworYcS<2q6^s zSdqCdQdyBl0}5sED06>^PCdEN>qxo|H|7Xaa+H4J+GD6pnF8=@cSM)^hRXKboNstQ zgo>>P&Z`+rRW+;ODW$0-+F%AcFWBLYB!odek9BLOtk#dC)wPn8%TEZhfA)kZVCk8rax)JDlNdz^c${7)6lkj%O*zWNST?63}(fOgK_Z;tXIU17taBd^rSG^@| z411zUvDh&N*;#$0pe?|!-MSLn0{L9#7+qe&gfXM>nQdtidup?}PFRF|Cw79u4FU%A zV^UStY68JtR6$U5{;H_0NVxdcJHPzzw+25TwEOGBy!usyKm-4_H)E*YZq$L|lSoLr zjk8X6|K-B-lR5&3skmW(L>`#$(=}c+&>m+%ioEDB(cZt?dRp5kM>Y3w`Dyvs&?Gb! z*rT%7q4ouEQq&{)QGJWeb4KJ*ZW5%NhBb_43Wa_-wdg^_>aglv{!+jVpyK*XB=Zh! zmFn^}Cv`A_6cUU<H;Q?UY6-j7mnvgSyzavSr`on%W)$lq8oU9G#4TFWj7zs?7 zDYlqVm}@>*miba)_yu&Qsf7WPpk-zV5|5WUhGk?fYMXgSeqUYCBz}T6?TKt-kV4eG zNQxmYu4>*mP&jcsnP^<4atD}XWx}Lr^wnMf*=ke*T#93?L>ww|y2h08dVpLU^-%pE z8`T2f3GwtZI9y!pM!tq%QdUZf{5af{N!zn>1S@V8zCeEp<-`MXTYx&)Icym=trXAA z8M1G9$!$n9whM&6LFqdGvVWCmq{%ALlg`ws;}vl=4Y%lAbiae+5#b*zCn$!ow@-wp zVDHYuhU2W7)(xI&UVW9PaH9u5@eK!r*Yw(YR%aaV&A9t|0Kix0MlAb*49RYsv zncH+yl2u!PH$Jj=03y`KJIuREkbYK8!6L8fwh)%@J-STITjn>pgdv4N$3W`R8Ub0nSLL-Q?Fash<6cnxK|BySnZ^=XAT*#i@s44j@E zD6^p}P>+7%Gl(ImH)jGb%I$&sxkyhiZd*6IzohwY)_E;fnyty#r2eqeXigTUn$#mY z&HZp;Lv73mHi>9bLyG6dmn?ZzK30#BP2%0A|a6vEzq(zuGrK)5LVgK=k7hXk$rqQSv z*q4u^vi+-GvJcd2s#aFlP^_wHeo!7pZsGc@+tvN0j_TgdsEdgFB+SD17}f2`Y4-ha z1O(-{pnvH4q8_;jy!EJ|qStnBaw&{^a*gEgp>?sZ7vv+Ltj;@D~2FIE|53+evZr75!sEq+TT&`D%iZ)k6i6Q;leHE1(RwdcQz^N zOm^B+p|H??!XJ8O77KRsp5W1(@9AN&7V^4#q29RhZcmO*A5=|EMGMXOXv9oy>w2%R z6`6V3S4gaF>tq3e(MITM~O=)dzVplSZuGWzuB*aL`roUk;HNyUb~2$Ixl0L1&w ze=w)#k*hTj#1!4Sh23@Y3>TyRc_cd=eE5>?6LxC+7U{Z(!!gQf)c5@eJx%E3zW!wD zRo?f+MOR?Ags|6ahQ@w5U5lW^W$cEG-wc_@Z7EiTjIXq1zsUi~*=%!|q0?e^q6)oP z12l$SquMFq2RPQlG4kf$OU1zf#BS{5FR@0#UBTyL(HjW3-)Mi2GKuE}25cZ2VJlgt zPMEdZ>OfG3sBKn-@`bCu{iR<(sGtf_0qVlJP0mTeC5>K%EmPMOfGr3YU|VG2X6U2sOAcx88|daEed zJiZi}I2F>ofPgkieg359aLYHz!FBmd$6>})tW{Pqzg|Da>jFu_hLV++M1;4OrnE59b9vA*{c%(=C)GNz-m8{`QH zlCUf=u0&T?Qe0zLP0#0LtxuXr;QFNqrop@pzhX<{Oi&yHs5eb3J{jHlZU_pRPBuW+ zxVr;{zQ)AfVO*!8Kvz>=K13TG9xX>_pD=+(c%XQ8hdoLWSF2KSfBo2EnUa)#Y zQ2FH2e)`hNZ&Q|0ypJ$g&H?XTxO5o{F*&SbnlSTV0NEQXQ-ikk=u`yFL|S%BL*BW!Pd|kt)RQj(|)_R>kF_wFw zA1rX+R^^U%^(O$}Jn=Tb)G4FZb-6iTbEStazll%@fLNStq8*X0uvG*&F@Q$CA#Kd{ z=4Cs|pt{uuAP~;>GEqjelZ|flwYAdd<#Eif zR}gsn0x3QKi{=>i5Iv$NTN6u5dV^!j2E^hGYcv-1hT-}qgku>vwhjCwrDZZ9=1LQP zC>p2Ypk-_ZoZ?QhI6ygs8}3aqc;X$5ZDVq>xyjPxNlkH1^E6#BN~RB|iMXk`gU`#P zN-jFu@W>fNj#fP~#*O?-v?~dp7ep(`%$giY-q2<+GhO&e&EDr~JvXCC5Jcq`b8!ErIg@wk16P0Kl9>FWmY?guT93`jZ?2|xfQV&d$`2WgYU z0S~Uqr}@W#&9MN>()~Rh*ivQy;ruotjscBKeQhF~THALluw+}u$XREwCqb5(zgM<< zwYhxZ42ouu-jV#t)e?x5t6)hN(O&-_$6`$!QwK@hNcvq{3s7IfZUFw6HEU_y5`8Io zld-WH(sc8M%l_F}RMrscN7Eo@e{zl-u|H6mfcn;?Uk!W+fEy%|Vh_pTBiI9zb1}27^LUii~@V}9JDzs_7 z4F~|B0UQ7T=l_V@)^=w9(RPlCjnx)C!hf{w(4IUx6il&Z3&r({z6pw~m z8ejj}f;qZSJRI768ZlLq6P!a6ohQ~(qaLw3NEbGmXGi&F+ z*CenljYrh-9aU}>Y=7;dHXa33xc=dV ziSVPu!X@@%NkCY&TSy(AaBFt%9l7dCUyj@BJE`0o^x*1sId5;2A~w5mm)InnFsu{h zm-c>rP@yc9bl41|H~U0*1gfv#pfDsz`^QdI+g)MB&kMLLRUztSkC2fv<<B|4`XIc>ZuN;F)_(sao|(!%nkYf{;z3@L%RLTq)>NjSu#fX{OpWAH;D#zdCP>XA6Aw91!1?@?cCZ9f$tmlL>n(E1 z-NVFf^`^u|tc5DmH=PN@&8at+=Sk28dlSZV6=!)aT#tniGeSS(wp+768?EHarOuYS z;H@=u#?Wn}C(adpZwi8Y34pgGtpg1#0jI^h^ z72At@yr7owSg^!B)xadp&^P<38WK|3Hc}W(yr4c&f?F|3G^56EavaoPMlnH*ku=3> zQow>-z&ZnEVV4pWp?!3is6}FkQ(UDxb4YB;xw*L;RJ}sVlzwv0bxef_bq9DS{Pq-| zgzUOB>f#%^Z}|Mx8UIb4+kim8BA3s6+%j+0H{{Ja5s@f5wSZCIei8)81wss|l^EUT zxS|ZJaqZgqPsDQ~imBX2L!e*%QHFrwrxsACN#@RDM$~`l@PM;gaDC8&7mkT?!~?re zDCD}Q)Uz7Hp*R4j*K6JoLBIf_&1q`ylqQL5E zKcCx(VM7vtHpuCJUb)g8<}LaL`S4RAzhtLF8VPaj<&tQpRs&i!4heEJj{Vk8g7ho< z;%WGNj|&W{FO`k(7Ro>|WtHDjQ8k|wsq!&$Nd+INI}2-^WTq<2jA+oikJj;ILjt@) zzsN1MokE#=s{x09E-y56;7lywLLFfwL8#^}ypLN^m~+0TQAc8}b&*0!!7pPQ-cWp% znkxBMwS~^JJDOC5p4kp6V#;)G@!ZjqCIjPE`EvU-SK7m}oYA5M<#M2Ku~b@pbz)cR1#Zen-M<=p4Zu zw|q7B;Phg*K!8d&_&z^2^r<)?dWO;YNoVncL0o*jKdjjanSIrSm44&V-EPq2K=-tG zOZezx_yRu_odx=F>n)g#+`I`*Dtm~7Xsc~G=onq&vP22E%Iy}+hs{V`05NjD7JQV$ zDP)EWlwAe;iRlC|8E{mssVISfY2-`%=TFDQ1DpK!Ue(VYy4HfsvHE;h086bU$g)KI zN#V`|0crzQtD~X#lhdKULUvZemV%}RPDb`G?=Sa>ZTI)W@jUac7btRaDYun@1w+19 zt$ubb6KahKaE`G8sep7Cmn2aZDBV%4h~o8|P(yE*3+Wi}kvS?{=p{wqO;rZr01e&V zqA~b!IimeB@~6ZuZ9dd&aTcyi_m`yMtaLQ@r-Hi1iQ#D(-?+rnKLtYX7;NbdY zUbpV{0)g!-c_c#c{-HDJI)G^4?ZuPZQ~1aJ1q)C1gJS9xZOfzJONS97>Tlh~BvQ!6 zY|gm)@!5@_+EFr`AJA$TJ)|+E*1J=k5(5A{l2A<%0gPG+L6)z(#;KMMLYQDTgI1AF zNmY7{S`s+U|1&>ox1k&1Gl7h43%+D}&ap&^2Yrp!M+xv<7hmYFy|S!vL<^we^35Lj zbi$a3H>DSEEXIKW8d!3W-^Ch=sa&Vkfv%+n8s7ptOJsdF)?a%oJCc5-PU}YC@e8Gl8M$ngV>y1FiqF_8+ZG1ZW`y+d<}#PdF=C=^Lo) z-;ad59`kwCX}>WzGcgJzRL6F0A%_T59d<)AeB(NB_3^_{TK!$74q4G(Mq8?}a!e=q z(Ans>fRq&AfQ8@Rfj^VbtaKM94t^*d!I#RNkRNh}6CI7;;vq8C-b5l{0Hy6uIuTKJ zm-dT3wM zEH{Uwl8J!QYzW@M^#1DZS`uQyIe}AcW)ri9(!+Cg+bm}UZ8Txm%CA_q*%(|n%(=Vj zZc4VRH70ih2AGOfL~f{X5W!7;gRlVFQoAK2$zb zYF-;ja|tkHOP9FVyw*ludLg}QRZt&Wv+0>;OJz)lPtiwX;X8pdWhI?)t0Q?EV*hQkRQs9gOOpSEWR~Bi3BBj7XwJ;1}^nzi%@SaqW z7Z#f|u1@WNi(w1@n}y<)rH@|Wy~1z&l20uxuz(K^nBZqkc@B)p(eE~UI?>JXt%C)j zUsj)FDkIicvq$iQ`@S;1BSUForVL^Yn)y_0%@OT84LO7cNlOW6-`(2oxM-B&nO?U6 zRXjbh4OztM^6QYABD_ViS1v}UBKyEu1tGcrnNlmQ0UlFNCpgYzzrMZ!g44P_ac!>& z6ep*iZIX>3V(TLQ66Qo(aGw@qBp@`%AO&+>(fe@%eC(|)RTMJz+IZGuLmSRX2Noxc zdxSHxa)ffz_yw2+y>A%VhNDZ+l@Ol73f@NBWC!rUDw*JW2QcTMU=J7MB?ydPA;sFF zVAO59!1@Q3_#1J?2mwLnGf?)y6Su-UC%Ye=c^(avwT06+%A3B@ z0EWU*vr_|Lefy4Qq=m>ZrP>@KlR!U&Qx9m0*4@4)fAVd}F)*noR=_+&TKZ@y!Kh3^ zkX_F{yzn5U5BbRQIz`t9f~h>P{kO1Vgf8%UI3k;Nn0BjAPyn!j)BF&Po@6e{2wo1U zS?{P_fF2#83P^DDT<4Xin&NuN6q2rKR2HLc-9aE`8q%-#FA;(o)hnezq9u}364VOx z6>RP{iD>S=Km4Ni)-%A7S4P}0-IJ0E1rtp4;wSf&7XVm_)`|MLa9|yU*3uL3^R=))AeO zR|EjR8W(s3hPgN=y8%<@Mabgxh@{#|G>KVdCwN2q?R?UR$j`s`A(pOf=zmyHly6j( z%Q~}WiSteMSAyV1L?|p0)A`Wn`#7n{;homf-|vFdc^o>$M~1jeEY|w=P{sk!1_q*fN$xh#MKQJo1Ww8&Zn9&aVmnhRrBZ|LUm? zX%I&fnKdRB6h-XZ@_trTUD-!<7LCh)1tt|p!2W)8W|XIw6v2j>W2zVeq_z>cFJ><(`4(h zrmz*8n)Vh%VPm* zZdQho+F;CD)TQjAG*Gw@9f z6m`fv86-!pt~`wWPKtbJ7tAX4 zGbmhK@82JR;(2qO!308kFiyjIC9Z8&HNp5$fq?$6Wm}k#tXIh=P<-^T!rsJ+!P^LZl(HBQ`>V;}QLFt1p ztuXp?h#`Y$ThorGMMpY}ubUkWltP0_avq#d5*p%0TRe*KW~P-x`2%uVvxE1r;iIN6 zfDJzIMw|#&Qd59Z5q05V0n-gN5^hHqQO87rCS|w<+X(Ekfw?O6ayTMA3xZxY!DaZ1 zlL9H>a1?d`4&{HTF63>$%4s~V_m^kuvtpk-l90xq0*>a6=R=yvz&Q9(V((6GD3c_iZ%ZN7*T|lgi{4)X&&E11EYbmG! z;>W{SC{layFD@)6Mr(K4HJ5faiqNc;aVTP?u{n*Xgkh6_AjQ2Hh4-sb5s0WxG)qoy zIcxPtS}{aI<$i4rUup&fHc=IpY`-*_;h(Z_t}IEeX6q-eIU})GAxE(4tm3FkaqNKWKpR!e zN^Q(cpLl|%II-iG&Vo<#%@6yL_V^CyK zFzE7mgD4=c;(NRqh*o6t;~QP&J**u z$dLBHP<3Ek_twv(M4ul)bOIMIoeHp@#>9F_Pt~eH&@5$D$;tp>1>JFG_sSr~FfO<+ zr6{%(aUdeNM?d7+|Od z5)Q=yJMfFc+=>Nm{^KZ&3UDbC?@Ri=7I`|WilJ^pzRH-iyphPnzEY<-yWpy8?VVZa zYfXjfR{h0ibw_wn$kB1hAW6AZ5pe)I)1;%LlXBh6crEnFT$j4jnh=%_Gs)IBA~jwA z-%FK&qAx5EErV_U>NyPO{ol$OMC#n&g)6)&wEdQ2@z@j72NOb zHZ@1me4b>sw%dGVM+3n8T}h3~_QZw3q^3)$;M?M8Q`Gj+#JUDe{Er6BRXS*!HRL7* zDb1JsKY6y95J8vmrKtmI4yS8C49=%`+vo{x$TUGsHfXY<{N5E3iB93xI)v&LJke>- zFBl)((5X#yyy#?vTgGi$eR(OjQSDL7{&Y`$X&VeBXF$6&e|4q`=5c{>d*F267s?zzfc6CcmmPdo>ipm~=?4LD{r3aAkYutjk=W5taM%?L% z=IRK4RI!~|vTEuou-$Tzy=Ig4-5VvQJm}iP{7+M*omkn?T1r@dhREBAcEu@Mz)sVg z8fv+xEgYGi8tBIN*4fzeyt%F%vz#FYb1!FK=kM1gJ*&rQwoCuO)niyLp)t$z_kUxm z5Z`xt<$DYHv0-z}6||q<3ZMOaem8cm>wPKmP!W9M^l5jC?%ASkh6Fwq5hDv1lrIhS z92|V#?%uB6z8?0SZoURHm4}l55bx>mN}a(g$#&AGla9<9#b?VFeoQC6DSY>7U2@QB z_aY+RID?xyCU}Edpe6;xELr;=l{o4@?$ziqz&T-x9TU>(DwM%hzEorw+W7#Yoc+8+ zs=Re)Pf1y>oN@d<=<`T1Dg?3XIx)Glo|B!^sPsTf8J>d>$78eQ&5|53sPrkO6?RB5 zqertPxl@_NG0fI!fs@)bHDPEbs&HiYfx!FU)1J$lzzVdt$gdVD>CjI)lJ>dlG;gj#qp-sfCgu&`lId@65uVNcRx7#Mee$8-lI zJ%rzI+Ahfm46CvoD)MsrbLIm5{?QQ~EhcD$&tg;vXOxmja+{O@I7kLq`b2^ZdF2-n ziUWc&(k(*V=hxR3_I1Y+3rPYMjr&qKFyc8eLh4UzO|wx*q#3-|C0wAbVo#Pg z4>h)AYv-;e@gA1E?-PJk~25d3)4k%yX=XS<4@L( zTIvW}E|Sjx_7MTCg$;==#i(e|N>=BZbi1MHqVPnC&oD4#K4@V z_VX_dYQnL|xkc)=h-Vgi^1f`Sre72kYg#gc{P~5JqVKX4r%(1WrKuW)uA^abfQ<1+ zmqc8bhO%*K6~!i{^IKgku3b>LSl4fhYP$p+bi`Bl1>sF#{7U|&7OyzjwxSXjQcy9I z?6El4j3lUfXd$V{#Rlf_zH1Pp%i!hAEG27;C(gM;Mdy;~vXfakW{%}X53+bbVU<|? z5)8;+X;mP~n3nJgH{T>ffp9jK9}x+hrLP;%k^~z7+Miq$k;9OUAJmbL3RtuuZaD-$ zTVl$vqS8`!rfH=Wu}0P!J_ql+$pPgBb9&(|lh44{6b!|MiPzm9Iqb=qdVPPkzbgQV z5VOxB3heiZ4wazW6b~>*;Wh4Sh8WR*my--GHYq%H)XMk!u7Mq8m8iL7-j(MsaHHbM zj>#=uLgw2bce)|_wAAV?5jWgR)65dq#5Bnll;IoEshc?k9^AnV>02_EYMX59a^foC zdw6v*IsMVBY8q^uCK;jjHY_iguoT1m@1tIYb>V{@mOnWkKx=F-)=XRMM8FKGGC!GT}%RC-_@hO8oF-mr(f| z#BkzYxkflX&R^~48A{%@nJ}VvWq2_V_M<_LM_|;ZRirAT)%#>A)fc0tH-cy(F-G89 zx>(I@9LLe=q*7**+Ee|t`J&hQiq{5bqrX*AG;}49;`yvxKKqVSl_^dI!0g$0bdfr$ zp}pW-k)`faT#8eiZ`j*Hhk>D1CD>t=J?QYrF3%vREo*l~wM;%G9lPDjVe*fkFY9st zL)kmAl@)8Io;BAA?jE2%pl!4yVUDNRqwqL|N50Udm6liM_JGi>rtON0<}Gj>yl^V$ z@$%FL4h>-wk?#lk3)6lWwnpKHl}ozs>P&JqWzFh*k@i!G;3@FKx@nrtXx+g*s6f`( zN^8;5-L>%0o_G7?L@(r|Q*kMbF7cf3^Osdi^OR!Vb44gF5K$ zPHZiOc@U1nXNKq4JDfiP^d@PP#_j{JLVD+U;PRSAZf(84pF=%{H=4$w0`C|lx#PTh z?xT2;Ij_v(8C4&NHhVqGYx~%5qN2hpd&S6Fr3G)1xm#k%IoKe?h|9o-nkEwA#f`GEdJ<+*1=WgwB$aOY_F@C z;8;u)<)|u<8sn6CJvrS-VA+!5rq)=Wcl*10huA>NNV92knW#P})?JLHn+-b#ZA(F( ziQ6)mZqXVVMQ-I{zH_}Wy`&=%A7&^yK6v_vL1Hx7dohA-sj2OicPKn1ghvYDBpMc# z?i-ej@v*Edh#L+7ItrkM{P!>%;e0rb_CYJVT>`Sac`?4`hh0^W;OKv~J0O3NWY6znjZA>-|d| zyFK?=Jls|-s)>8#VGGXqI-tWg(zD%ww6M#7(0tmC%v>hjl|e6zne-sP@JJBfid(j? zmuzl`@*E@FzU*utb{-F@X*+{6DdcQX4aU<#WpH&1>X@iZAM>N?uqV-ne@9bJ2|BM` zyIZ{#_*66j#nsIv`Og+|J65mKPqA?LSTJpl4tZA!`?q9eM8BoHA)bWYr;SHuF%K8< zQ};Ex{hGkfsjM$ntjX2VU<>Wxwh3}<7d|;i$mA#gFncaL?y-u)NMr_32LF~^($lBh zFaApjRXFHL!;&)&c9UApEc#em@d46WFc%hhFQ$l#h_J2UBpK1<46Y6y54~a&Pb}iY zYw3;(q^((Ns^_<1)9q>f3sfMGEOUmsi&-MI@|m$WP1;SQ^8|!~OAqGyTpGVEqM4HN z|4x>iwQZ=)D-H1hNvv z_ABvy+jd}y8N8bB>~X`nknko+0&i?{1DiuKY?kO9xrA*600j$Y2<-w%P2yls5&noU zfqE5L4IOSC(FL*733C-!s+OOVRDsNcS`kT98M~`01(fn|v-7&SZuNS(0KvguT7rt> zFs&3N8jI9eSJvkYyDl@>XIyx2p}`)w#<;vc)=$BhJV)*|kzo1P{n^v#awoh+F(EA~ zOIhan=TSQ}95Ad^32M9*=;>_RkO)t|>Gp1JCzDzx22TRRD2U1VI_Hwot!0vT!3sHzj!c~9nVer@4RLFApLjl>>fSf4&L;qnMW33lIo8&So(VPQy=-oOSK9C` z_2Kw*ffSEzqPZn8SPrIAK-g`oDRdczZ|)2LJrP5Kf!^RwbaAWbG9(}J+nB-LoL}7O z1NV;dTSaUpIqAFAbbPD|C$o1IW3<#-ebUdxi$0oW@^B_PC|>zn4^Ms z(~6yo{KMK@5TMk4_6aLu<|J1Au9-gWYZ@h)LPW*tzX_}4LN#4ah)ci>rLm`auR!I` z3#%^Y>k|VG1RO_j6~+{$M053DgT4>~JE6d)qa$!rZ|AOn-H$8fGCRF(F@Rfed)<#4 zCzp0(E%>sDqbs?79HKXo*<;E~GToW+(g)zn73Y^Qd$fy^UNb-2&D*y4_H~{qDL#@g z_Sk9B52EtUf4$~^&C0BPW>C$yx)mc3YT^2Z`)~6{u7r?DgieC%YT#e$cO)Yh;n}zQf+Ggxq;_@^#q6z z!wzL+CR0@*mRN?ZB5r%eGYINGt(kJi2qK%Y*1+}!{XwPrTf(I^g17x%R@uAhGdCFO zFZs2w8!@EQ()P?_M#i?wQz3R4zd(CUG^l<%=%zZ|%Xz04IJ0U!XZI#gOaz-s+YlVX zxP-eiJek#bPTOHDM(mV!P7OzpTOvRD(DwexAp|*3{7psZ5rnQZr>#7T<$O^}r^T9U zO8Dl|I*qg3Q1cf2@?OF2DF2ll>6Bxl#B6PomD}}YZ}*l%urW9MaY#GGn3eRO^G(mY zKx4c9#_$dkh$%1YCvKbUDlb=H=^MTzSJE~p2WQbFQf~D9mRz~eDMhMB*-{Y_Y z^^(=o*HdY$rvJ|`xrJ|wv|3fGvHI14*1Q~4HNzxTz0B4I4K5eYgz;%Oxrp;x0}hoc zQeM?Y|3O5LfdjA>E%K#w-iOZOTpaWU5$!G7AOzWwshkNlxZr6Us&TmYe-6<>I==w>!KyBbY(}b z^SO&R%E~x^4lO|MdQsuiK*mJv^=W{%b(8Qmpdx1_<@uYqfkn@XH-GJL{pr4Q&^LRd z?L$Y`R|u9=0eEAfWB9J8>CfOL=f_Ou9BWn#1#o!v5AeS?f^d%ES{Y#g06c5`Z%nEG z)d=!`_JL^IIBl^f{?_UR6w#4bQZLCereru#cBQP(4s*F)H)f~tYyd+*yuXzc3XdB~ zCuj#Y*7S7#`R>5@1B=V6x;DDCRqsSd1I36IE&MnijXZUeqn<+w$_Ns8HdW^X zl|3|%3$s#foT*a}1;Z<_;%as(Fg>Wx=TZTQc85&(O+^O>$?Pb;M33z3S9W+IxrtrR9s4|V2GMu;=`i`v|jiL^8GyQ<_^-6tucI)Nz ztmXw-q0%`e*P-1P(Gl#S@AHFAB59MFud0NetooG|TE2Q1qnML&mDVXBY_wA$yNT`f zMmTMF`eBx;ddpEXml9O1=50L@paDJgYN{tmuPmp)X$!6{Y)RiNOav*Zzqd;3z6Z>K zICM_^*iEY!H^9AV3ZlPBgBDSc!Oiw%pEDQrP&v7LP~<%k43=+HGzDZrIoBzxeJne` zF*DS#&qq(a_Ewo4*!B-jgFv%v51UPO{zHFOjRS!SfM0K71lB?T+0Cy^D@wT>Ve)b} zdE@)`eO^NlpI$4%+Ru6@TUZz|H*d2}V}EycaCm-5l&qz3cXYjfHTM2|-5+`wD|#W8 z+l>_!D|#5&*dS4_44*Rx7?l@)Pm;eU2+I36!H&KHrAr%?OhV6TUR>oc_y~xpLv1z_ z#<9K(%rc=Y71Ufop_y~J8Df2Blqy-m1t_S-wpiFd$Mg9@9~Mv+p`_OA-hU?Bn7_P} zW(}jE9j8Ht^e)X$?Y5GYgg;$Cm*A(S7Ps+=_1bM_?_&u5jC(f2nIQVmOrz*1-e`$W z_Pa%FV9^d>BC_)jr~6CC_o2&G8aapW730% z)7ap5{~g~WKl~4v7`2ZSNr$2$1}&-LzF~SF6jIABqRGVwYoeir5`v{1ArGiW3s%3B z+S~pUw|j!{7DmE3k$N4J8VxGdl%z+Gh!*fUzxmF9OIM0GZxQ{1Ygo{ATpueMk$~J4 z6UdR%b6Q}!d)_*z19QwmJ9eyhe*zjb91RHjFP}8>E(k;w^<`fTFA-W<$M?l$M^^-! zy6L;TeCdwhUVV0kBLEJFds(u+c2Re8M{vYSj*6JMezG9`CNqXt+vD$+59wbVPttZi zp|D#2luT9Xa(yL}sajXC3tc%}e-#^0{3n3YYiD5f8e*g5wfm1Xojb1(D>8~!ZOd`@ z9N5_60rn^ed9tM;R%Scy0Q%Wl9^8IQ8ruF+sR?ih=uWe!+ybV{qNK;hO2huq!pRrV z>57o*wnt8lnuzfgKm4ZRZu5BKqIoq7fxdo9{(9az-GJ^GewQW|&aW*ic_CNP%-7j~ z)7&ZnEc>fif}NZWbANC?{;|K>m-UooCAbkf0^8$TO``rSN~Q;ZVvbF8HHS|iz6}s7E>Ky0_ySAI7C!BK z<4hyTJH38Yc2G?adiimbKhE4brB)zU=h?Ns3zUE5sKOAg@1W=u zG=sCyQ7B$_4uw{KTv!?%w{tL%3){FFxHu?_?rhgH%5sXz(OB_mo>a~oYl}Dy%!t{o zYqN*Y!0HE!cmD)HA&Wj6uUqi3j4+e2R}f6K@c|Fg+8ppECSRKCTJ0)*T#7L-)z_&6 z(M1Ks`3^d&FNeaYJahC1PC6QLjsSPK07@{Qc^4-FGPm3y#an~sjLyw)J%fF{(X!@w z-tn+q03|e5a}I!Yhy@tLw*pt1;2~*YfgoT=LX=*AM!WUdCsbcA6$Jq8A;erwlz^_lsKru0l)F7(Lb=1mH+1y2v&L(} z?^F~?x_E8P&qGVUvymD9n{!iB*9tzscu$R{=8@YxDI`g4cc(wA;mNKzr8nhJx)>+JuG}nsc%89tMX& zL(VV__7I?L9mW@8cbQ4w^dP2{Mo zP=lx(HA!n`az@1mEx_&V2cJ<_p-iQ&16ov(pA6%E7-zNnLtUkmpD1InD{?Fww^*it z-L*uyg{(lBu{FTfSU&HeCYy#jy}nNh@4((apZdAk@8_~SUFcBucvqwRxPEKUT<)_G z?&%5UAm)KMFc)yvAyxzh047zREkE@<=k(mu)pacsPZe=v;*y`sHGh>M@Awj>{C*Qe zP0mD02O9Di7*F--eun}*3z9Op*0w5RXmsv*25jYKF7~BMY`2uxQrAGs!}ARuRX``a zrmLS^#n3+d_RD<57c0ps|eXcfrcg4&zt|ITDxAh5k)N4Li**yL`7;u1bDEMYyboLRJ%a3M z54e=5w(!Um^_u1U&C`IT&l!q)2fBwQl&11Xv4=oaB>OO?2a=9yGimFXbtg{5E$8(=WDP@8@x+{qgc%E{bF+DkNw&^U>ZHT`q|2Mj{ z`;&;|@tP#r#mL=@`XaX9Gncf$b^&)Qkeups6NyETOK39Fi$XyNuC!FT{g@qQ9D*}f z3&89?TXFBmj!82P>|MiXC|8e;FplK$yF=bVW9!8EllEIfs`#jMB@m)p3DYd8%Ovkm zN00YYS`0xh1#7YFnvdCN-P8Ohq^&Y--rI-LU#7zm_;8O-cqNrcbIsI4D1X#aO`UG@ zSZ9~2&n*!0rNiDX&!l__)SrlLXu&teH*;FOGKH)*&+h%?(6@5|09tKJpvPY?Lxiz* ze*Z%9Ua^IpTm@GaNsn>ZGOdda&*m)*9EI#UHyN@7TE>e|WJ2Ju9YiUi**$nTe_T3w zm;gtU8tqRHs|UP?l)F0uQnLj>5a4Htyw%nVXD1YU_UdJmvDftsDy60(2qlq#0rAIm z&tQV((M5nYGEf|DdwOh%t_jXHwN4(sEDk}-~u z5DN&zq$tJ7LwojEc;8;F8!eyDGe?83Aiuso;4{?~jlmGKZ~6p)2_|Z2VU_T7gSE$pGgFN(ra*ot>;S6jfgs(&hnRq{@PIq1ST+J|pIat|JC?vN=E>R>} z!Z^!`q!uEf_Axk+pjZwl1Op~UZ6M!5R4ih2kl#RWK@HEjTT2vRj)GzijpXT#hw6*x z(;l?vDv&a9f%UkXm`R|PPr(zUVwo~;fYo~=tEQ%)Y-3jYsa{goMESG!BT)8NZ;)yhI!fWwcXJ!va$EY16xa+x;47r?H*h3iAYOP&!F)u0t%}q$x0LCZvwvq6^z4 za2fgHwnRN)%LF{!Wkz?Nwh}kdYx(gy0pjh?e6}3yJYv1MW%%(=H1v$ z!few3Pk~wp3WwF0|NcIwSH64DJ|SDC_GfU2dGpN|k4FCh24YHOh&YpYuNqB4oTiPP zn=OwMlywvbh9*`fhDW!Td+o=4wa32Pj1|m@S;@6?Ih}M<_Ly=lSM|vm^L|F3D3;`t z-I?WJ^29%oP~$&?(3pU46Rdb}G7BsG2jWSO6ME}?rX(a8{(;YkafPl{v+HV=`K;mc z;UY3cI6J1G&9A0K0nNu{q2I5Txj;P_ zsRN&Ny{}*;0Hbs#)Vk7wguD1Ar%NU~a=VhbI2b`yweV)BZJn#b4LK~f-YT7Pjs^`w zI6`Ze{3}HsRhI5u;0e|;Tov%iF+)O9a6iaVRr1$yP96g_StTdz&6ZMuJIg_kcK(#6 zR3OWQxbC!8@zg8q<#P!87fwgfvhtt88F}HwvQiOE{wVrUUa_L1yY}H)As!#Wr=$al zt6{G#umRM!3dQ%EJ7&<8O^EkQ_ELTZx;bOdyPE!H%FO%T;q>GZjOJ7y3Rcf%ITg)v z)SM$}a|gXNT_$%6h(tLb^7q)>C(4I(8VlHOB>W*0ERqbG>K&s3CLK|1VWM9^1Dg%K zW|))RwmOO?O|z=c3gM{FESp)P8%rxjSK#c}dpKj>X<2&!YO~V+*Au-jy4X8qvMwOq>h_ z#sR{o96Vx3h@vW%H3i^5DMXR5(8I34O4dhREM!SloGpp%#{sh_LWvIAdTGQ+=Ly~; zL^ROh{=VSUDC$F-lFdYkQF@6+Fo{sfJ;^xro7+_?Vp7=(3H|OEURva4@gS5`LB(`r zel^;f;Swp`P&+_0xvS*+)*S!F=x0wXnRLi7jsqVuAT?cvzXSvKUWq@~zU_Y~j6|t2SpTYIc<%Cw?O%80G!) zv30rXJ|-}1wdaiS59ZtvZJE0E{r35)H8q_l2)v#Wx<%artH+5}NHr})GfbJu?Xx7B zOWRP(*Co|Km6V;Oj6qn=bg2~THiN6wBG}sj!SPF|a?z;G_PelF8TuSd0dg+5C9Mup zM*EEhFx{F6saIFc!dBsk9;Zy9T5Y|qP6{*-PyHXQS4(8f|ChDKw<@(0?Qg)WNt z!s09~yR!Pom|&B2N5nY8-_ir3hY!An%36J6DX{!Yai{?3nq-tob5Wcey^D+jmFM%~o3tN^Z!)4DdG=$yj!FO#J-eM8Dr~(`Ne!WX+~8W7G6L zhg+@HHb)U;b`?pzVp_EfxjMF;5-l0$&WGFW=sON|S` zUshw+Nstia&0j~8<45azQ6%meAb5N#v3!RECk^T}q#B3R2f1&t+wo2QDdde(<37qH zddIbOf0(VnkWb=sBb~jgo_&}@1uTYHSV(K^m^>GSceP;LtI%49&M0o-PXxeZr(R<< zJfDw{5StA1ZVQ)pZg&(Lqr)8eqG)5G9m;OZ;F}?4Ive-JQ`Na;CeJv={Fkb?GrG2x zdF~@+H(t``)+J0^s}tr|c+S}JOZEEgFa^7!9?vi5`%5QVZe(Jy)iPys_zvSQbCU_2 zsm67=cWrW6odS1B$Xd9^_F_c`G@QVKAIdFiQe;xVMLFuo zWI|8KNB)d_(?=KBauSEemUg7tr|!K%<35`Por}sK>jf9urm*eB(!d*p+6Sd0%`#La zGY5a8(_KvOk&k4ikP@ds?7FW371)pZFp?_0MEXQI5gHRV-!GoU+7_b=sTwBN?gI=> z3&zoz@In$Huob56K=@T}mn$%>Nj<5cE|?_V-{cabkE1}}D-FRnTq^|`O!rx$@9hLVx5Yt3EL71YDMw3BNk?wQ>!4k;*`6>Vn~5sH zb+2!>nNr+1$;hUc#3gIGnGDujdUUtu6!|1QEk{ihy<;7s@O+;I;Ceg9%i#Hb^rK}r ztYr=9kHGMxbE$`4Zad_H`bNRi&7l&6aNCtjvOlD<81);BIfr)zyy9IZHh~b+;Ke{B zmA#tpBHtUlIPFlCp1-e;|2DkI6_FhCvs-}Kcw^?$(OMX#+gY?*%DVvW%$JC4C`Gcu zaP_^mu$sB79zf`}a9rlBs4a!ikGSwjr z)_&)ksK;8q*abb7GO20`>hl0Fzk{P#eIkWDVILp2>xrKN$T}Jz;7FR0Jq1$xrCfXx zIzy$Hnc>`=r9y)AMEfq4nwe4bTmAXSB3~%DxxHMqf}`?TebPW`gfXthE2FgoyTF_i z={qI)ucuhT2`n|8G9+!URas&vD2{cxpLqM${KIgk3R)IXv99DH!3%l}ET@=p;Y{A( zkqyXzM7?GdTa;4|I&Q1mu`C_JULJDn2^)A znBm9K?V*~`N(wuv0%Y*uazRe*)su+p(wKF^Y|SjFG_9)J&;D^7%Cza)jT31xOW}0Z zw&!8E?b)z6f3Vp(aFkvE4D>n7t7m*zQ@fxhZOrZ&99^JxZ!vWcQ&PY zX0b~Qj~Y$wtO3b9h3fG0U#+sX2@A-_0MiefO);@(3|!AC1I4Mn-zqa=z6F2_VyU#y zV{aUwCuhWI0|6M@UAp2yTeJVd|J_weI-~?8!eID;gCHgkQFB2m#3{W zv?u^?(JD%AQ!O^x@7`5f`l6~Adect1fF$v{ zg4R61@-ZcpyX35EIcO+^%e1ad^)yjqddR=VbmyK)P;k5U3OhA5k!X z{5csjqd_k>`t}R<-%*;wwprJs|5#&y002b)BT8fM!Nl@kD2>5?k;28q&qx9@zz5%X zM3RDciZmFbmhY|1J6Pj|JVm!) z8lgh(YtsrYc<5F^Wfv6@kB2C@p|SR@8hA73PicNdF0u!N#Z>ac(x0LGXwG7h0I!%M zBq{4Fr&)f8YBO zQct%N2mnAO3;+P`|G0N2djq%s5`=G2+p^tahxb`io8|;JHb5ytLxw887ixuZ{i?T# zca8!H?9V5eG^I)alGu3Ib2Am!u`Y|l%5M;Yg*$URh33kdkv#D}Q@KH{Me)iZc3Ztx zroefx2~I{k(|}YdgQ|<372r3Cc~w(P+lRRhRw;FwUma8%WmSu?GAW=`fi}b52VDmG z+otRREPx5rGOyWCU+`Z9zwCTLp+#Qo5OGxE652wNqb!+9@lF*v8|h3vM%ukCt{+LI z(L8ALPVkS}l*ox5%@-j;o3Lh;LR@Jc^|S|D^J5uednV|NCq_5^XXIMkGRheqiud)> zh5kZgb9VGevpZu|#$KZBmIZkFI_LMt*>L`5*(8xzoQx8Ti7b;bX0L{P`RD@6WwACo zaZ-gX>7~9QyQEg(HZ>MLMFxP?(-9z zo+wi-EUpyrXxlypQeB50PfTv3PY3&N5}-?M9Ae;P3|b8(vnVOsz7K_m+9<|4LczB( z{@19NL*I@I!s!tbil}qbjN>cZ`ms@B2RMX*kS8P4OJ%J-b)I7)MkqM z+cbg!Q}U7XSdcer5R6?IoGNH*;6yxlU?*E(yt$5^E6^HX_)=I04;&|Mxcv^q^ByQk zK*hMEBB-pS3b-jX(k-8|+f0)_Ii=;JAHkeE+O$zH>Y7BR|E-Hn$X zx&bPHmt#pDndGI@DUsS|ZB$t=Uqe>bBZ7i4CuEB1Qu=_$V|r{@lsv{?%czD>hn%Fe zv5bWJ!|<}1x){jIzQEb!w1}R1{1_&4SyGC1W*s>Ri3zXM7Mkzkjm#L+hLo@+SSbdI zdK}aUIAfjZjz_*K&OHfLOLhaDz1FQcvJWDHR}?(HrHGW`dpm#oB1bS~PV@}Uc0r1p zI&GXOKzZfD{V8I8;ZAqzx8vjf)cW3*oKEZb-e6am2Wvq3yPksip zz6s~~YXs@3=sMd5j|{ZPllv`%(dAac9LozGAso=0^I$N?!bI5=QRh1iM}zKF@FODZ zQNx4ukkJ|}a9%PwU$7Oompj-OiI{BUg_)NU6)vVJkmy*LDcz^<{ODt0L8A^bEtN|n zb}OUFP?lCli+X(nmg) zFx}I>veYayw9EsyFd2u6ppKSoLQCIjP6)`Ul_xPaP2l`Y9C&sCs)(xk$@}%dKxDt^ zTHQ%dY0i$@5l}2MT5iOy@OJR+8vDl(GFyR#$h~geFpP$tn@QId+G6?jh{nHG%jxBH z2k&lIXGp9_NzN`If}|wid>Cz{_@OFx_ub)GdOrJknE=RYvH2H%B6rwA8h?s;WP=t* zCnTtS{j|P}42x20y;s&@G!w7ZuClP{Tks0&WIiq3kQX;Q0am%zp5zUV;)?(DV_l_y z^qJn~f>t*tx>f?qn@w_V3tP5p-=tKPY@}ylN(e;Mo$j=K<>Xk*YoNAyXP1H0AZ^Co6>-jhm(<=t*OO-k;d%&e;pG^Od^(q zOmt37ZduiJt4HiyyOM@#+1JLa4h{y0iR`7~umYP4rH^}cdH{&t3D?GNLn{`Rh7rJ+ zF``9Z0!0BA&Yr5LY!cPM(S#)}<&F-m6{;Sm76>OBgc_?Q)rs6l60PG?EIx3-?rn;K zXq1wu63iE<-3cayb&4e+-3bzrdLq@3DIV{0Wng5s(=pI)tSmSQ)GQ zW;ASvk`an3CWW@j)RsBMQxl3R1Z$85GJHu^ELlV}gt?@hh#!LnWDXpi62@` z4~5BVmbAZ`ph-t8$fIu0A4`OzYJRB;oa0j`f6}E(7siRzQQg(T;C?r6+FN!djeF0c za->m=dQto-Cc1)u?;}v>?m8qDyiA8YqiabM6CUobR~vPQ{O$(o){!#kp7fRCAk)N3qC_--e-M|scAmQ-ARZ-oGP6bX6S}=#Pk1h&okSBei z02irffXog!`c&y-!0l09Cn12avE>8GgHq6 z|0(5`Nt!Yp*HBuezqd^WK@=mJmmDwryE4%T%IH|*4eqUw(-&aIT+}KLkh`?zn{Xys zQr^H_NbXY62S-tkOBxYOp{xq-OEl^BgZjjn!(@?3h9zy#^p{vDI8Z%v!Ki?be1C{8 ziNS2;=c4<*=%~Cj5q}adUDDv9oM+=ojnE~w;A-wWkvJWbe`3i%gb_yFn68M# zgZI`kJ;Vt&JN)*A_|Ls2C5U!!pIjrij&H86L}W36b%o0Fbb272Lk7?5=x;y-(_d+v zJTfh>qxTvjB%EN?VXkhnZ3o2&V-Wn zlsjs$*t`h(iY1GrDwAC}1sM-FKBz3`vodv1y4A?bagcF1-_>ZHx*a|N*tl^NemWN~ zRe+(5DkDn!?n$NKhfZgUQl@2@sYuz37YocK$%u?;3Y`dADMyEAI^~=wY!-F?ca%e_ zcAE_Fmt1Jk8(N2Hnq3Hi?*KHfO@z&erlAYS;n_X6W3(Cw@dJ@TH_vOQn35&hEMH@V zjtSvbRp5}M2GLZ*D^giLOhE4K2;!TJ&9=6UM25o8NKA#LU;3)h$&f^xT25=rJ`!7XoUC z@4H`_C}ApQNaIK3F>098pWN^|JD-7+g8YD=Jcl+KH%X~kqMx9IzT(s&nrzTK%`f1O zn~$ph*F!cChl>EXxx2Jqfu=sHee&EJ6?A7P=Pj1V8WR?7LYK?alMUSo0eM734MWq; zy}-R9n(Ah2gl^d6&-FrXR8L&``7b>O1;WKKK}4Vgz?6;izfsZSH5 zRalcwjZeU+k$a;>-D4-=vY8b{EFW+{tiDk1-+8>@gi6p^x+Pro;Oe?W3K`sMz>9*V zI;+p(^d$~dJbTeez9<~f8F+^%A>s&R8BE$$5933mi2l#i&@ZnO7)LA6wW1fhYZ3ry zQTZRNJ-W`Y;2fNA883u60H(ka_PzxL7p=MGG3N*K4LcT8m&7p-4zeHOFPziE-cfGh zkzTsoeZXk32UA;ugVGSwul$wgjOa>$0{di!kp&jcX^C2#C|5P}sbJkTH?uIaWPgbR ztoLh0bhD@xSF@$sbOA%djF+$+52cm1MgF6-3x>czMZOCBR<@PMcfevG&r!(!b1(_( z&4NY8O*g+qXXQLf854KSmrVm#N0)2}ZKe(8M7$Fi!4mo#YBTQJT+qf{4z#FGR3q~g zhV9@2Vsoh#Kt#7BSX_t||D1}#F$&(&XI~CMwbry<+~kk~8ekj_-P#yxktGj{C5(N8 z&0H;*XA*T)CzEyBBUVR56}F5996~lu0b+im{~wrJWH@FTS~;f{S^v89i`yFnh@sRz zpC-!Tfj<5NlkC~GIcJtn4*FQCVhJ!*9|`w-NY@gQKP)(QZPPa@J`go+W(jf^OFeE1 zsu+$K{(lyMEXe|od&_w(-4B^zXFUAJ$)C$Tn*tP_c+8Bh54q~$TEqGk3zHVR5MK*@~2SFW9=h zLm4y%sH#tGNf18Gikg$Sks7TFKb_kW*!s@00IeJ_bVe)bz;1yR+)@{5flj(*jK;AQ_1ic+G^fz)e^_8Je$K*0_@p$bv4Gtvwxj1gEh34jZq$ivw zl;sSzfXgFvnJeBZ1*_s=)yGfNx&e5wHwWBYEE+v9ZR0zYd_BnNJ^@~eq>yQt_r8*h zV#c{epmDCc(?00%D14*`rW1pAVI*8txV`UBX4vfmZY2n|Gb`)2hjsFlmsK))|UmCQh-vYAhn@Rqo0q&o2PCF?|KP)3y`Wuv&H&W##` z`6)kVYtN6O0e)j2_&y1MD^gL|;j^|kJO+WfMnSwflzUzDpmQk}596J5cnNtDi#W6~ zY(AO~&+Tr5GqaZHF5jg}TR@3omd>J;_C;a3g^d7sChCStZrS+xI3@PIa71F&a;EA& zTX_!VKA>gHH06GUhO$!wAc6)^nyFQWPj~*+KbrT++I#E@5k3e)cy0fkh}Be=k@W*gO(jDA{o8c zK*ujKW(4$PJ6#Zh(?KH_G+w(MU2CIjL@iXCRkwuDKwM!*IB!5ixOonoAJORkK8fL% zOkMvwpcfS5VB_!~2QB@-OuR0lrLDNP*jR1=BQZSQ`Mk6`*gwbH8&?nclkc;kwlTW; z(JHi?x2HV4oNwgZK0gS5Fh9KB6Tgge>%&ZBYd34O6<h<7S?E{ zF~(>YJC#gWN{!q6H|mhEnW89VlktnDT5NGeJ*(#PT7&n>s3in1@s!Ds&#G3%TO<@_kX!u)^51Y zXoCN^=_awA<{lpbM4PR4X=47_+I^dpJ3aN9jCdA4KSz2g6Q3}t?esBl*9~a6h1r{_v{_|hG4Sa2l2XeEsW%lp0f{?gt zBFEkk-sq$;0=nQz?kj2cvMbYSs%de;`-s5sZ(yk;U>IZfPe~kOcpPFCmDSoO<+mj~ zI)qg9S(DNcEn;{i^8+U>*g=M>a!DYJJwkouYZLIN%gg!6q{~|aKtohMq043ZhRLzR z^zB-=T0=2?>EA$hvm8oacZF%OnS*AheAbV@jqT$**o@)N_qFQn_EB%jnhvy0CIQdF ztmUjLZY?O&1(~+7taN8WLO!&gpAIc_cuW8n;NuFyyw~hLsm9p|YA~0x>drRcv+r#K z!7PQ%v~vopqS3;yo`#*8=i|c9-2tZnIIJ2ie~&VxP3^IXWujgr?gp;%(Xo*aAvfm_ zffdP?7p=Xv_0I?5J%msi4_>pFrZ#~Fv`>W|cp5DJ;B>aPp>1KksEsac0lH)`#ad;z zbb=gfYO3lmM#@YBcf;`vdLMN}C(#|u_x%;*HOfN#OZ>a}9wEqv}gtL+)UQ zk0K;57<-?(BPPNxA1Tv0@&pN~)9L{Nk`W7H(PYBAat5#QnyT$+53sz_*En@K;LC_A z+j*fT)mKO$uKLcp7Wmvcd`)Lcy3tR6ZZ|{cNU4s!mci1P5crwVbBtd&h(}z|4{m%*g6y;QB|W zzqAi#sUZ6UH4mr=_G`6#Q1tr?@GCY0lmhOcgdNU}L2&;tAhyTWxx7FzFVS|pw9uK? zru@U0(-AtT$?cb5!-lLX`G*G$!ZA6T28M#q%=$-4{tS!T9lWQFjwbvH5dqF71sM%Q zfc6Ps8r2&LrdBasdqIYI1)q}U`+yM`R8e~{rKl=-A&z>^duP$&$Ow6gmhS&Lz=nnB zX@?c^p9BESEge~H=1)fzWN#OkShnxWRPOs|;NNCNO21W!{Ptu~_&>E12}=6HhiBU3Zh7P~ArC3}=Kv0LOwL!Y3sgG5vwCp{%?U zC%D9k%ZLNBP^D%-AhjC!8#FG%${YgEp#Z_Oq%7vu4rp{l%LfX8t7M*|J$c zm&WWeOXONClqcCC<-~b?ik;;1YNfRnoaRUf<<9wJ=F=M18&H+za0c&6agOd=wp;y;dps3AKKA6M^IuO|u)3l)MNJ@0AMnVN+XQGax{UPke zi7^=8zmy%qZ4ireEXcAAo}zV#-p==fjT1F^XZMy1+9K&j7!UV2fgw3JodaIo;0sCqXxIz-^-!iMHT6%O;6JN1Xut!&1P`m22VRGHw5|B{%PK z^`x3*cJA%K&)>9Z8SH&F25MSOHn826T{Kz30H#abyHE=rr}AkH)uG~5E`_~QNyCN2 zNo6H;?ETCNsS%Ke@ z6mn*+j)}^r)t&Trnk{0fT9&6HAgm{=c}EIq8O)aJSH!|TIc#w3ZJhAI>h%(UKz=BS7Hg7G2z(HRnQ}s%l;d^BOliB=+k zXFZsaQG!<7GLIlMZA?I=^hP|GL+8V%rytrPWdRX=$CfuSaa)e?leH@uccx)7VnGQR z4d{G*|0M$YhcN1HjeCU^nyF#@P`jVBrp7nu%RBIMCy_MxBn}!bz zX23@Y#jb)B;>2TTvjzR$(4Nn5{B%8dSp657o;=o-9W_SEl;p4uk#GUnz|$4-EObwF z)@KtL^Io?fwm(5D%PDwXQSb&s{kp4fv~E7{H4Ez^b*o`_nNFVhwd{F_yP{!c2~hhJ z>hW-zlLIBo9cP!*p2!(-O`GfGnHi<$UMK78>EQhvi#XhCVg@7r?fiJUtDFm6fo{v^ z{f@7C^@6z*+%II0Z#u>HF1>^OeOM$ZWB(7G-NWhm@+a!3N$=|>4jYv9Mxf>h?#`MM zLsjSpGE>I6$)lFvgBDk>RVB9K8rkiu?Db+Vb}u(CyZ3@^_j;8Dp~=GkV@gTQo=%pX z?XHS$^BvPh8`cQ`{M3hTs^s6J@4&rQDqDix4tDTGKU1_cf6>%8RXh%O!r+$-b?l5glOQR>hB-J6+%OXO3BpH^->QwG9JA?roZW5}@ZfOUc_IF!OqV zFc<0CYa&r#7P7gq@!S@eMXp{E`eh&&QBi7a$nQ}bo6Sz@dMUGeo-iFlYnO(<8(9IX z#+T%-!(^z{WQAn*hb@(UHPEGV0vN9Y{|tO4v`obj{cgNLzqC%2A4}w%u)6}$wv$pg znA&|jV)FxR$QdjJ@I7OtJlZvmL@@MqL2@YX&1bcf%q12@*Ri8Gix|x2^MS2qEeDb- z2RHEw%^AI1NX`*&PB5`{Nct1m5A#PF{R#c0Ta-_~4X1om6|qbuOi`Zjl_t-}Q5@gz zdWE}hB^D`qYPmg~)TvZu2z=LLhe_(hVp6q;_7h*_yaKe2Q? zRZf{Z0Se{-Ej;ZE;5EVA>GF#fznjRy z3zTmQMPfK~4w}33h6sH0bp}0!CXYe$AV*#tgAYA=elU!Q6PM&${ZV{olguVh)xw{3 z$E}6b>OA|?Ot^ER1bbH4o{tQ*^Be+2CHki2`B3~?A-Lo-`XyPNO}I7&MgMCUM; zAgI7RC6M+Yoj$*shb+h1(L+bijhJ(m%nxa&u$Xw_1O68-I$1rkr#Cd{<5#7^xhyLa zh_>;8Hp*%jYs{GGYF?Vy4g`cJdv+r7bR~Q|W%FvrAh-NRU&279O*&9>8t?qk0SqeN zS=)Kq8DXuI7h?yB8imfl62}45OT=x)KosdPr$+5LWn|;5dHlP1Vb(CaBkuyXp|#z? zrbAP(7ffPDu;o>P)E7gO)fEa-DC=z>N1J0n{?CI#4$Ho2bIISiwgao%xgp{zs}>mDgJ~e=Oi8;kW{)n{3JN zvI8Jw4n-3^n#h+|PV#A`%(mfewmOk=;z&gliFr%!U2a5XmRZMc8$;hKct#ZDC)ouz zuf&>@wHuDarYClV4!g4)vBq36_4NATV2 z3v_@V-(9zL6w$*54%2lAgSw4J4zv1-he2%?-kO{&q?Ej3iu~I9nu$*qmw2^}T7{d? zBn^A=>cy~R&0@K1JM~RNyF4wed@;(UAj%9v>^uB`bEjSu#B4$?6UxOM=JgxCYee?g zDEA~&BEh5y55>nkE#(*&opxC{?o1YO&enlxA)T|o6*;tY%O|gbSY*8jNHOsAXsWSt- zMX?6VnXhvOZ`gn+G#*7v+rV?C$<#ar@d@i=o>XRcr5VmEkiH%x5QR{!cY>D-iOxyO zsI*6X4|Y`2VQry>?4Vix9IbH@Yntf@{>Ol#WDw}-cP<2@%A4hLKOFabo`ons%(zJxkR9#WU+~v0!Q+ z9_np)ZsGhqI|X``+}S{OLaDV2ZIdL3Dhy?gQ6N`h&JjV}p=%`!EPPq>do>^yXW*ig zyJ-otD^(@ev9*z0I$T7p2~v^ON=x8~_gZkv+S6vQzvuRG=2Ys6sM{l;+;%B-uEMHx zW9f4|9ZU>fQ~MnIw2_FoDiOdS(Q=4=92g%uhix;$0{o3wu_D<_LK$H&f|*s2?$Iuu zmh8zHV)BXH*p(ELak!SZ{$wN~k602@dwUIaBu-srdd#HNbKXxOmLuv+TAq?U3 zJ8%-9`*ZBo6M7EJI>cDKAfHj}?>dc5Lgtx7bPJB%9}_jN!&+;c{a6Tou}zq5OOX<< ze;>=MM;0K;elL!8CDNC1dC3JP1o7m)9L9+_{8|@Q!wCKkNXWR!={(i!g_$kwa;N1;A2f%u-KOP|n|4(lR-= zW(SrM)gmiNdP;6|881C1GCtg?m!No48{KKP@cXrn?QSy$<&d*RkW;CeK?qQKw-`Pa9zqh6V`@lJe!b)`Z(x1NG zHLa8HaAYX}fnPQ#W zh^m+U^h=1S7cmbS*s~ln)%#jdLkpyKKb{Q4J)aqEH@+GJq_+%2Xp1+Xm%VED3+Pk# zdkV9?&T~SvJH}D^h#NElnfk)dr#_?{(_Jw6qfqe1PD#`}H9rru} z%3sRM_fDDW_HLn;1msVFi>BwY@07T2d=9H%hEtpCZ&+ju8Azgf)U*v1ph zza_q_Lo7WC-e7htW^XVQ8U-PI!a7eIK4a}V)$*V1?! z*B@pwcf^ns*hqoBA@1|V-iZ$FgFOsY;k5b?*P74?Uk`s?sGK(sq21&Gdr(FETe;j) ztApqU#540n#@{`{c*%X0q8-A<^CMsxTVj@lVtLIX>~lwmA5<&h9g32ZRY}xgou-)R zJ{o|fW8Smg7Dg-mgAf&G(ot)>a%NnC0GLwXW*c!T)%V8i`_BZyM!sBbj*wxbpa_jp zo{-qz5f-vgZ$Sb7lc~7m(M3SQXt&1cyLfh%;SmvarU}2Bns0(CX?mFI6El22+hOxA z9q?A6o9bl}n<`PwE%&F_>G49ucHn)ixyGtI;Rz45=fasL#v)Fq?7U+%Z_nrRK*T&b zxYc$GCk}}tvnyr z+Hf)f-UBs2WVH#qM*SnFDZ%9#olm1l%~%BMY-wJ7KZ&9$NX>X)x}H*C(D%5O%M1<6 zSqOl|{F!2rT~fhAjn*a{QK9l{@r01mmoM9Z=d4kJ*^PQpUg|gW)y* zLrqoYt0);7-KY)4Y19J=j(WyJBzF(n1o~g5@m?7%6ibHjScaPnm@~DFOO;lHL0zXV?)sr7YyGFUy$Z-K=-I9CyfxK@9u6+T zsD0$zWL^hwxp61=TWkcIOz30(+)yW)fsXmH?l+e$K+z@~HcA}OG@K|IYgjj78&Z(r z6+o&tQJlP%O@%Qtj_5HoOf4&o+XErXKGa#R-}cX?X_%{XfknBC@||19BluaFVU7~- zTyuLfrF-e3R@$){uZ#c-XMe`x5om=A3`i0EDcz=P2!jPRORTqmZ=sN}h&Sui)#xjw z7+y)WbF0U*7iF~4aSE67F0$*pPBc@1L=O#9&!mxV8#bxx1{qfhb2V(vy}4J303w7AHX z{sj7)P-Vc0ZW1(4@d6_uu95X#;Op<2N%v!~feiOoX(FHM*vW>zm-?cTaw0XcOuRP+ zD=8El`w62{Q-drA!hfZ{4Lm(J?D^^WX?mRnAPGmQzU+eq52)8=O5#pE3TI>-od8<`H zQ2sp6(>S5E90;$lFnBa!%f8_xD6hU?IP%xZEpO)ebEm4}<0-IiWGmqmxuX5ZYL* z!QVOMhU5FQ$Uz3qL|8Rni`!R`f}_~{>=$OcQgO{L8SgBPv@lk> zdg8*Bwo#_kC`_+|NH#xI?LKOu1Y#O=A}XY$yP+5gfUR7L6E%A;_R)~Q*6P^L0Pk#Q zkq+w%%5cJbd!;^|j(|u$#qHH}Z2#LpY&TYO&cH^!0;o7hNMqVYsXhOJWuH{%BlGea zxl7<~H=?bA+<3})ho=s0;rnUE?V{3BL%X-KH6!11y6mPxVtXFeGkze>*uHwCxbtZW z5c3AS|2NP;q&3R>&SsciB6#!e$l5*F=;rlX_yCll)jZ!e<(m!^k~8t@En!^OmRL_o zlIAlYYq1SN7>C=h_G^D(OaNO+-rU~R)xK|nmj9Yq>SYk1C$D(qeZl7F*m+N-jo_c4 zxIWF;A7yr=UJ^$Y*qT0rX1uTw0#E{{Lw{nz#ha<6SxIeN&2Gkb0#iPx0vI%#fJHv! z)QHXRPd&#;Z2PtdB{&o{Vpk(24lqbG*GGEwy01&i{Htz{&!LkM7Cb?9lGfBb>&%Bp9qpl|7{m zB#W@@MN>L=`dQ~{(;%Qwq-J>jnYbKS5ABKc)r!>_(CMW`fp<3Q?#h%2M$;jrtIZ(S z{>fC*b}?2rvSsn-hiigq6O-XJxUL2fSU?x#|FABxW==q&n7aZXWMRy+9J|`=;N>b1 zTHqGczSw1T%NjbJO131g!P!n3M}1~}N0wdS!4+Cyxc)lVRw7Avx&5nN<01(7_TYBRQTK8Sw3~#>-vcXF0Srdxql7D9Cgq#{1KoxVY zOU9TX<4HMZT=J?6+6h7TlOTx>{tt5f1Y#1|LX0iSjwajRE%ll423)oKxXrn;a#bZq zZaK|kPu}wy%ZPZ3{gv(0$e|PROZcV}y_|=>E9>0yg2{Z)W65;ASMQ9B^DZlf58jdY zZ=5Y_g$>!TIOlKwJng%14>8?kZ&AuC+7|Jvwh620{Z0Sc4l6GWl*EWRA6zW%6r)Kj ztLQq)7+7Tpfq172uf!+Ko7*TBbotyVCtrd`Qys=0$A%czP-2 z-sdzvzBnxs8ia>Hbd&F+@aY_LVW!nko}0RKhh2nrx`_pvR#hlLOoK|u!SSSI73%%J@71%bA=ny9C z{E50fpT}XhpHG>msX%SD4z_<69{&K`=a{2Tc-cV9lCdE`hNH(g#(A5i1Bgzc+2M*u z?D=PI9Xr4by=UnWG3T_fixI?tt7k#9|B*21gYYrJ<0qx4N>KAV>_=l^+bYYYN|n_} zb*tsifJP7pV281!7)F60ZNbM}C_JzSoelG^6Roj>*wNglixdibS*L21e+3^60*76w zG9Yhc16p8H;gz?(%ArLC;}15<@DoM@B~yDK(FuvIBJm_^$#jOdo-u z!vMD8oo3*~@(O=`vUNDqMj!EDDNNfQ;MIFoFx^L4m zjuPpNx+w0X4}$nTFncy+tVRX?4NY2Ki~HZN)zY~H+J4v$HILA5;kMQrZ!`e%$@GHJfD z4Sr}0{>cPUckhSb142{m7YXz?LE6@=Slh=;WpF^8jPy@Jpn@x!ZT80fs(!b<5#Rw~ z?DOb(Tbe_d5tXX`T|-g6E%=0YrPsmC47QuV?uhBVa6~o=IdT2)LZ&`mKnk~w39oGANT4_?%BfkWCgLBs zDj^)=Qtl>~4>$q5ER!TNSH+mz#vJP?2-)`iX&?mn_kiY&2tceijrBSDf^Z~@#qf}W zD@qWjA;d^7XDA*s-hr?`D53=Ll&M*V_fQa_o@{caLbxmi({Os;p$Hg5%jnK;bcsCt zm6!M-z(KXkQ))#qh%>Tjpa&VxHYf`^-jeH502P~+)B%CZ0Gv(g4vO|&DWWvcH&&o$ zAyMXMdDE(-4z5_f^1$22GGt4SI5wfedB8Ku(6O}5S2&3re)^Ns7R7WH3+woftyMt( z{@j9Id_{T_IU!|dsL}0h@)#xEtHay8*K*=)P{t#DZXP>ZyS_xF;pGf=b4;A?HN}8( zv`#~AGq=P?aIS|s+pwq=|Eiwt#s<2BQP(f410Urjcy*j8+!?khk<)m)iVv7RaLOBj z?q){*>1u<#%;BTAZQTXs$w%vzZs%A3WojP7(dZ2H^b2*STMhYcmvab?9%t*U%3P*v z>=~Y+J(`)gsyUY$y7b$)<9ZX|jr%t7{NzTu?t&UxY8=&^4A?y&Pt$UcEn@4>MGiV2 zyo!)>h5@5_pg6eHpAJcSV8%Vx(=hZm7ij&O%I|Nc4-#&F{p>~-EPUyon{ju=c>Duh zekVFb)*x)=BRrI%*f{hLqcm7)D@y!A6the}RDgk)n$YbTEd{m-J_8z_8@*!^1;7Nq zpeR>oXL?P&GC)}&BgK5h1Q+!`fSoK@*+Pn~^8IEm!XU@jobcOo4@!2@B7h7-zyZCh z=85>tw&fsLKt7$6dNZCYDc@DCzbzb4-)IsC5_uyL%VA{~Z+*%(0-e7LU=xM?k3L0f zO%x~^H1)$wnNPG*1}W!;Xp+WJB2-GtX~nEz*x7Eo$VUXk2-A+F%`; zH+-Re?KQY`?is#=2de(GWIVAyB*rQ%Y(#$2eaR+CK9)kqoLE&bf8#>j0U+gcnJ!vlyjTN6q2!l zEW$;w%r7a;%#bRl+ma&B?a_B{mWP4W*-Q!h%D+@R_Go+Xsr0lyam z9WF~R{7x?iN5sj6(x~`^89l7PgIex(Keo{9^A<*d>10@nwyESEyi+%DsT0WtA3Q|= zJn+O3+IV3-9z<_45TVauaZ`Blw7vN5^>d_IhRF00MI`Lo)NIZ1r<%A z`3$)gZ<^tse}f+=#W>32?vz@#osGsY-4}{YU!m}Z^Q6&U1rPX2&GCJjY4hXxYl3T7 z>TFl1l~F)g_M;lqJ|}7a1ZQ@Xc;ldU4QUH*@WX$iGb->%^qon1U)=ZYp)paZ-hXS` z^LG1XS-Zda;P8D@?ITf9i{4GKWewb|VM~pamSWo1b+Wn;NbfBznwjVcB{NH-$B!|3 z+HvP?R>XoUTp<<7QF^V(_KL$h7{_Ha1-CgO8n3W0f7I`X13GKvI)1sTqT*h@a?7)p z1JK52w{}Ty!jmNE?epa@GeDp1e{q>@8g1majNEyD#g)+Yt~U$QBe7k`9$8P}NkwXZ z)F)mU&9Ti`1(+8ho`mLT95+|Gg7AEt4|3lN7=Le|a7^C?Pcg(3^Rx~Q-a+y8$Qt~o zeC(m4J4eD&*^j_)A)H}Qgd_8$mvc1rC)=}w!g<~0Qp+$Guf8E6J+VW{X2PoP7cC&q z>-4rfs_(iLpvX2>!*gJ=ccyrTj(*0xu=EMy8!nLh(HS^z&DqhJIc;z!EDJA+TMdAF?mic-*y}m~vbkwYhGe6x+A;)m%$2#J{SQs@je1G%i#o?#K#BgF0LH$%-}>D|?~qa(bT zH0~x!h}E8Ch2kc>NcQ~*5x<8yuG3Hsi__0Z)Iv*asp%jp>mZbsM{#Ll57voO_-MMA zbwcqAhmPluS7Y~-{R27PSGdq9BZ@vS_G;=$H39x`>dP*4jD^3LpofMBU+ZLXBg00{ z@pZox754|t#b$gg81UfzJY z$$}g2gY^6yH2ud1sB5XKynKIl2pj7|wLj`;9op^tLAM0Ds)0j|xL%&D z2nNsii0oz8EaBk*0h@lw2ZB(m)b)>XL@V?bs_I=uVprqT2FiES4}*}LIn&4!VDlG) zW1=^!2~8wn@piO9th6TAqFn^#_-aW@M-V|Qs1lHeplb&P*Col z&{m>ZYvjOHDNwbem6NHzfJcTUY|r*(1ZF}taM7v1eIXUMo`m4}juu+AYyE97Il9a4 zU}$ZtV2_?mQ@VvmvnmjOe6OvwCB;yT^ij=?m#yGc>D-vBj^j-{9)MM`X{IrQMZvDg z8gA4yJXkKu&g?&F>{RkS;zD*A8VQC52;&I913>1A6DbEeMGgMbha@S8R37B-?{I{H zvrk+vD22W>)AtXL_ivB#!!848>f!-~2R;Nc%$6>uyWT41>Eyj{6(5s0X}y<|_9CcS zU-z%W7nk|o3H=!U@&bh>iw*U7z2&A0x-~PVX5!$TxC8CHasH^#fqvFKlXi!L#@4e-TC%} z0g+y_%Vcxhdt_snQl42r!|)Y{nt4a*pc9sz2ow6D>pzGmg%*9r!Xv4~fd}P4rT`75 zwdo)BuNq+r@pcbi2QJbm1&?Py&=4ltd_YLhl9&47Pja|$IIr<~DQSpyw+BNlh?40% zlx2eI3k4FYxa-+Ub1>7!YfL~%E{67G{U=)TIW?ds^QG)ogwma=pD{^gN*^R+9O}wU zEXMwA-hWb`)6Zzy9vW`c3?;J^$}z?&fj4(V3R8rH3wS923h}0LsG&7TScpa-;7U~Y zfQ4_idkv|b3(LvGoVh8_HP|NtIPs#mN8&TtVh7MtV+GUiNA$zVVEX3Ub2+NSL1{+lPo(D03@(q?XN~u_Lut^+L^-#|;(ad75iz*^)D^*{V`V{Jubi$J_-OAZOmPp#L^h5?8 zSWxKPKsB+6ob;ir`6Bjfbfy)*SgNG8Sb5#5<-yCi0z#7m4CED()R`(%L^xIf@6=~Qg&3L&dq~!5z%pYqY z3d}&+;@p`&bX1w4Hx(6bJ!x%z_G+CzRB>^3PF^q3*zjznt@LbN`4KH@A`;>gzHw`{ zo!lOl6yoS$Zt%#VRnmGepvi131{;;h!+i41K|CD>O_7-fh0=4EF zfug6sj|u<|T57SNaX^TgF(C2)!6~u|1@`J_hV-pXf0oq3!t$7ZqXQ1(OxrAo}UP#?k#A0F?xEM zjjHq7y>$V8lPVOcTcLzUpJr5CYQIPKfcvQmtIt+Cph>< zl58kP;7g1V{6YNk-C!<>dee7uL6#xNH9$KGy6GvM&xED+tPaEd$zw*%}lPA zpaYPqx8KbF%-Ag=(4{J-@34uK9+G=_BT#p%G5d)4%-ivUMQSwIejf=@d~JBx2AoNOS2?1Z>MMt1BM zxQR|=BWo#_&>W6h-UuH088~R{%WFdUp#&+e(?zVf4zDHJ!^P8;=Q4nu)sM`LAaqSE z7jUBL3EjIRN)(ua-l;2`fgG1V9Zf_Am2dY@{xpNcEy({-9Fc@^WO(U#0e%hhH6L^- zLRLkft2#6C8yL0KrJDpxN5+e2BL2kruz5>Q4v+Wu^Px#h4$sdAm7B8!ZD9TT;`w=@ zs7_7}m&fPz_+d?t&%;%aZsQxI?`5Ao)Q8_#sgUBF>O5HHyF${hVGZ|>+Ti!ng#uSp zAQufnUz^mE7pdfSSb!9e+(yK-=84x6`biv}RMzLzE@#xtrz}CV#dbel?#GR$sI^mU zfwR9s4kTd2R)lnPsNjgr=Y%GGMzWjY#+jhEHe&MrQi!p~7v8Yu;%N%4PS0(-vpPbG>_ue55wmZxT? zf)Q^VdAGfYQCFBJoA1p@-zAh3&&*h>(wzC%(B6%p8d5bw(0NVX2PgfAFvcMMf#dJ; z=gG~_=f(H+HxP!;xFO6(oY%yBcHM;l&79jEqV0P6trhg&_{IfjJyHvwziG}#tpeL& zTY>v?0?0|xY}`TJfm|BhZg=)V`^HyaZ&@E*FPs?BI}Dg0y~)Vrt%q0`sFHH`HP;w^ zseKKiGia@Pt*JBdJ{zJo;dz|>X`BQZ-T36dVh6hMmN7;MQZ*T;sqfSG$jHfDQ=V>5 zm$wY>hTPm9LbQBdulLJqSd?G4#|sfcfCa*2#T@D|^hxxZc=t&UJ(91N%?2EyQT9#g zsmTB@_V#au(}oo*f1JbS%1hR>AU8V-sr9lblctUSUZ3t@O;-*)e`H^45m*HHS%u)#YyeN*@9U z@IgSz_yVx+fX6*4f$J)2f&-mN;!QKq)029%DER2!RUUU~+kcY>V6AR%7`J9ru(&wf zD_bs|>RDRvAF76^g?*!5cLV^?%{fw1qcW;$^@F_95tYG+G*a;}HA^w?V{Z4OHq;4- z8j+-P`#SMmI;j?k>(~~c?bL;|tj4n#h(Lkq-Psi$J>2*%z z;Om^F_QtY+J$HJ2lT^p%>_{MjWXJ%>T=LU7d87y=X~nf%<3J%mjb8oWlD4?H(s%|O z(wy$P)7;#Vzl4yKEMq4EjnSxv`=urPYseh=#$u<;I@67X?G~*CvjMs+Z6Y2+85oi9 z^#v7lRk&&Rr&Z+XX1o2ig|{c*Np-ln(J&pU=Vl7^Ok$xiN$mO}knfS*j-jGzeS-dJaqh|Fy%cqLAxrkoHRv?P2N(@c zo5JrfZnknXVYf2mr*e$&@J6$=fh;ZbR##WUg z8Map8Eyl4;TkdBkQ5MvStirE4rX*g2p3&ueZLzA%vN4jX@xe^^z9~a?`2oWAP*NZg zaTK(sGyuisv!e$~3t{noV7^E(&q&JPOqk)p%H;H!_(Q})RI*5}X9v(w6!MI2n9NSQ znJTCqlp5Lhc9`~|{pXGn>MP+}Ki`<=aNDy5|0nM@5&`AW^8yXt(gbKEHA4}`r z5%f?v+u8Bdv}@esRxJ0L-3gZT6r9E%p=*RLgkN{0Bwb^y-Sh%*FQ^%)Y5eF9K-^wg zgwxUq(`4xM{aNpzh<7wst4<(!+W_^IAP(!cQ4N_A#^0094oyMl-QDfqlPOH}8jQVR z$N4b&9AGbinsf&^Cj^#veaZmlPVA9iwn^16l*n=xV#;4!LV>p2B$;sZb>E#+G zp;On>cZELH%H7$=zVGm_4#uNM8vul0=^wP)TG?I-4`HPcR)|9i_%w=opAF z7b`zPsHT_av*Q(d+wqyaY-E)9&pSOVy7LELMFwXSVTXB6v~!=nK37XgjwrWUEXD!j zcgpz1Clj<)QD7hixeQic4AC#4?hc6r9>JJ&8a51Z;=))@g*1*4&K4-k2-jaxY<1JY zXb@CQqO{FSp$J;E?vc0b91n~HWLnj^p~_*Cy+%5a%erGGj#tpeU;iKq#i=XJ%MAF? ziZyM~Phnw;U>w2b!XO>$*q0$li4X$838qePLdrY0UoupKj&E!j$1~beC;>fTW_xAe z$!zShm<3?Nd5@ONonMNNT)!*~CZfW1ne^VUl%ypWqGJLH725)P~Rf>-4MtA^|p{q)hCf=q_4)@lWUMacnwu_3d^3u z$0kUY^;f1|_A1|!UDsuJP=wU%s{ws$(O=Gmx|pveY-FSRSMl4E13T4ftP|i?j!neS zGe}@`m@rqCQH6I~;Hbv7|5^{^^JQ+oHWweMJo=!pQI(@UP=Z|&i! zHn>8fr;g^j5;-{k7T-w{f`&io(9sc~w{fZQEsEtS3F1Eb9C4_pkdQUfM>a47%X zG;a`=z>6f>l@`Ui^AW+Q6tfPD37Wf{ODnneC4^e?P}n)iP5UF}D7mwsyr$b6+7Me= zxe6bzNl*)7YVI@19y5wR#fgVFQ&(|=)=isvoh892TtM}6QFv!s+B98LA%;n7yw?l& zOC5RecFA=Z6{ba;=gEbM4nMq^$LUVpuj%=nxM>P|uz%jP?FqU(w`M3ifD0>!;{BrQ zj3nvh%Ke(T-tcBi|2q5lA;-F4a89iroLu}T$j%+AvP`#z`fj8BJH(ZKD9~escm*$Z zK4@h&4+2JERs|F21G-n#n;-9+0^0dXxU>4Fv?im1N+TphYNj2+jPNjpUi-lK^wcIvB(6vnHBD$Tw5j#4Rc+^U+WQh8+sQVV zyMX;5KBZW6JzW)-Kq-}3-nXhy96F>&rMpoR)kOjG$PTx?Vt@IF)p|E!_T+fDFDo!y z!t&T0lq<+IP!iI!DRS>3ZTM?2!_$<_amLECwJ|R{?PMDeZ+$(8<&{6e2ZMTR1wldd z`wZ++f)DtO(#eO9_)QLaE_^42z>B-tEtK_(ah_o506(`>`lnV&{Y&Z_S-rZe)^r!cfumJRh%D^L6_QG4Z9UN(-6QciOAhZW}-rr9(L%^K13iO zj@`5EJk~2`i8wKzsaOkf>{p{xVkKL`Xbk<5n##Na-6cv;DQ5E}Kmr?BEy|s0>CiT( zVZANV8_~0xO9_!FS?V)cf<6@)202A2W8XDle?7$Nannj7z>eChX{Qls#FVn)`;{Zh zTGOY?<%GJ?0Q{YlhJWFVJE!`f4=alhFudoQZmUdG z4byVTF%hSK!P!$?WbH+HlvGaQW^AL9Tw;~Y`+Qoo#RypmBElqxp?5L5Syg;iWI4V= z$cu5$MOnb?h;*hTUL;$|i5EM4)#dclfBsJFfgie$Vus9V_@~5bAm2^=60nL)bM3wycJ14@p_A;_?cB#vmV=#U!yZ4K*w1C|;58Fh&l(9k9G zJY?Bp5C-s>?J}hK`!Kt`aH^wqG;A)aOFXf>le35~Xf(~k;wXywJ11kbR`Sr_&QQ8XM-IZs?JFzPdwj)!$3ZA24@{{3FH(i zo%cQoZm0G=rmx8$wxn$dAG=vYMMKF}1i&pRxBJeQwSAVddtd8d`b<6hNUp@W!G|w56~pJMc60RBmPZMiasDYVdpN_Bs=6qKDFu zpLq3tc20ye%i+iM<869hI+{rFrO@j~~=u`|{m zEy4*5bobv9{S1)hbZK|4lUM^3KQNM&zq{i39TCfV;6Yrr_*^gpd(+vSe3oKM-34@o zp1HE}VXnt6;YOBbyy^Rza5g7-vynoY@RO`?E=eVtN^OT2mLH!a4)aznY9WgCy7ON|t^M>E;C zjS!2eo1n(BH-U<8IJ>FpFP*!z!Uqq?C~DPaOrPOvbek|1k!(bB*U6oc5mFDt1Im^l zX{1FCuwogXE3_MrwCjz}fHXPaWuhlryGj*y?2`jaumgmKU=Wb?JklOhn>!9u*H>^p zAt3*C`)8HW;VwpDTa-@sAOys)E5o!3rcH?KBQI0P;GbxW=HcCu=2woN(ZPI@VCLu7 zn;fm{Tci*|_-K!q5Zbc3&bB$zPnWn45{1?n+&D;f z0mO=zx`w^MVBssfu!h64E{+I7$ue{t3O6nW{Jqh?}5fdPc`*rkoMs zU*2sEMK!_Yui8YG2EC4J#pUxjqfNBpAR4cKwMpAWks@VAN-Azdo34l_;TG`2-&OZqR`h1=(^PO}X;}zKKDn;t17A?u1P;T>=cZ^eJ<|kpsoS3d zNub|AR4n-Z`z{E0Yb4^!ACPYvVg}WiT<@YvR8C+9bP2`~WqX z;JBn4X7p>jZfc5{P5|2vg$5B!kk=SCztyUaDm;=6b;0{+`x>e&qx0KTafF7Iy6)DP z5EhSVlENQ~XfE2`lwV5wIaoLr9N14?8v*&a6wj*nP`VxdjklW1@A3?-)b$d7PsdnP z+qM82p(piN%&mnl)p)y5v=G7xhRHXQzH-r=h9V(93eG(K)*#Gc9jW^DTd*Dl6Y7<}gQu|P zu+U(4ufc+PC3hQzM45J#PbvH-9x#7lpSoyab1ED;kT3ln=^e!!#@M}UmI=&07saw6 zCjV035m2!4`h*ZTYn>5|!W6s3&P6ap7V;exH`T5t>_&&vG*6xk93o@&E z(@>?D?q&H||3m()FMgh!Cp5!ig*OX*A-EmWEFDS1NWD`UxV0~(sDT4-*UK&eU65A~ z=r^9;g)ftFLf9yd7y36o@JENxYr>1@_Oh*g@TUo#Ivlr4;u4v>^jn;m($Uh>;KViN zSmndf{zM*M>27g_LlFmQsm^w7aRKuwGiA8jEJK9+OIz)f@zsxN)ow8jvRHoEtgSi3 z_YSpJDqB@c78ft_r|M2l=5gH-U>-5asP-Yi3U)!i;BLkIhG@CH$~U#>p^g*C^6aBM z3O*lCugQ9kWR)B?Pl9-4$&@uIBzy#|GeYrV5}QfjC)?v z84uR);6P@<`c!MJ+&s*nDVQ7u2$CKxY>2c*9)z>6jrMvka$|Gs`I!tiI@*JGBPVj3 zT+v8pIrd&ce3glSVopp4JFcK7IEMGgp9vL!p(u&VN%YhYyvA&Z*HDm+_rfld^|T2+ z(z94Xey)UlxgN{Lg z|0+(^h(SDgpIhnE1A4deG^Q}$WC3wNy(ReA@a+{F5#?&`PV@&coPKv>drjHAf(J|d zydLS1r3!WGx*a1ls=_^^8v82Em8&a*o1^pecj0g6Al|9Lpoko0jwnhI<+sr=dO*qq zxn#Z3mFxfj4351oiJ<@^N@)MnxYRRn9x3%S`icT-U@#?6Z!fMHd0%a^6ZIpp1MCdQnz>_@^oi7AHnPXf?wT6WVO^bHtbA*DbdixRXtP z4HH5&bH*dR<8f?&JqPxuWJReV*+DbTj@O$XJ8`6&Z7-|WJIwTT=)zD7N54?v#rzj7 z<1p4B?IJIUqoYAcY3I=!uH_0K*FJiuj*-`VjM+NsL zkdWAVmi+gtiXE>z}P=Y|=5$>7c1aNc=SO~*TS#GVb8U5l`gV_O!rBvp@`VjWb{b@ccB>SE(eK2L} zE-UXC-YE9^@xnuXav_cBiQ~idvvVno?84?~1P$DG6x-covoXC?9f#0luKB&2T7C=I z)s7n-Dex}%Is-C_UdYN7ONn-?@2Th5dt8DrTjy{OpV|D{{-AUpTOga81r#s~m_|35;dt|pF77Iy!| zY(JuDlZ4fl@H?v)V1Gks;V?$5rYK8Qcb6SSyP=%uG!m;rp_}5-R87~W0=t~}KLBB%7v*`Oo*@3zj@YVi1fRN-t_^XaA z+QBDWw17qJj9z`3zLX#v9#81m5z`gJe(KK-HoCCEVD_5Wy*9! zTOx7Z{3te7_q-Rn(y66a00NzWSsL|GNK$e>aMRO#uMjT1O zlJd23Eu}`)FES~kd@U#)W8BI#gG3@&TCV>CE<9R9qbs&rBstQRnYo6dgQ}rwC=Yp; zf?3H8eZA&g$RJ-j)l;A!7&EX2uavl{uEe~Im6+0Mz|Os>Mv`Gig9EpSY3y5QVL(L= zf!jYy_OgrwthjNH$jZ^&pQWH`M{1jIE@h3XG0v5&1@mXU9j#+rri`haO3{c$Rv?A+ z7ad*h*_(h*xyeNjSK+0&jnb=jN9OZ%s-*akeBoZo(Eul`coQJa1g-okfxF@}jdIg*8T zB6_PlSj`fM8=%CdP8a3tTKqpdR(a-hR4j|Yd3Q?JEf)l&KYmIYoo^Gt0xh{UtDGy( zo?HibLM<`+SQNj8RKBdCRKpGQM*CsWQiJ5l@p{(ECZt2*!N*z0r_EXg<`xpgga*y9 z`A}I5cw(}MZ(p%*{?fw@WTm3T8|`hasJ;)TZf{q?tLOQ(moO@^=r5!{%kh*$u8w~f z<9D&&5)-+U7iVeKAhPItC6~G-Y*k94{__{Ft~+^QHe%QFN^d@>l4Bqgsj~QSk}EPP zQ4eSAGGuvK6V}wcZ9#=EnQeW#M-*Y7t5+N$2vP-NT0cfTu7+pf$n$X{F(=W>tSx#& zHN(h1f7;7!0~uResYdj;j?jZ_h6s)ct9gM@b)eGaa)ZPC$X#-Tk#%6w-iQj`Gllrz zR}8A?0CYm$pkttj`$#Yfl>9#FJsi;ZS$Pa6Mjhi0#Ye(o_6CH!`sqFk#oTxXad1Du zu(;W^i~kQ}?-U~p&@StaZQC>7*tTukwr$(CZQHhO+vfS#O3q34y4Yvkb^5ZCexFLE zx?0SXj2Re!tTm|IL`PK{3LK3b38}QPUPP7$qERf6x4)?E6&0> z>hNr_&;w_lM*W;vGO`DrUn*RBr5>34?Gxr9UD3n{3qg(hyBhE>7116Rq^D65TAL z3QavXAVdyQ(4~BO@n7(|6Xh-|v8b$ZtYR@FypS#-{2BTt{iTg#7&s4N*BS@0coa*X zVz*Ga{6>K}=eWU5j|laTx8)@s0`_;p?+_xp{<^+RC7H{%Q*HtQ_~t5nvx7OLMNCD^ z2x!|+bJV+}af-9X8l?C#?#pNhJuDvygAqn-~*-xVggUBm&RB{*=aXQi@Bd zqH$0P5Ph&#q^42?#{P|MqBVLQtRVwhsuW88HU@1!vjF$mEO`&ZB{jt8LIEGvdma^* zk8few@S+LRL1SwIU@8df#Tx(+yPIsI-|y1x+>FpR3M39jk_<)Je8<_MYuniLBVnOZ z_(%PbPC^{e9TLF_s9#`|h~%aaX>)PRifTI5d+OnWhiK&uqZx+^Fvs`*Q&@Q zt}IgbJ37{u&UAuzkrtn-hxdp-d0{v=W&V%-6 z2ejFU)PXJN4X-Wj5W9h=s&kXC)@ZZ?r)O>5mp!(r-!BftN-+uEK}}vAWcmSDuEMJG zwFOE|&?s$@M~`>SQbK4ohkilQngS{{D#3U@S&(VKd=4vQrwcpxd-acGkVv!4Z zJ<81DbA*%5eF~gXfqyyg=5)2|a#JtD6fRT7{1M>`G^3T7Jl-nC;`&S*=IAZGU*A5)imNVL9s()f0= z4j0rgWxIxMNOy;+>_xrJfDIEF@pjTOt^?>IS90XKZ^fw%hYW8U`lPznT{1vormBlp zw?j4CiW~H0DSkSc@GxjJD!1fBJh$ZOOT&u6TkK%tw8=`dUUjX;1D%n$0V@PgX!+Tt zqWpHy{6q8U%I!QCSBzG^lgKr;AC`cv_{Bz!J4OptHzZ+ZW;thI$sJ z5E}IS?q@6+$~sGtBIXH23<7OLnMp8%@b8hCwwyk+NYW3V;jdPaD_Rvx*M~5b$ruoL zSpcu8*qDThas}v>mg_LNSQvv639H2+qA~!RQdmT^g0+eP(S%wg7jN7BND(2bucOYa zhPQ!Pv89IY>acOKi|1_yi86fu{46-F350UP@ZQqZQJ@quutly8Lxw)^=5oaX? z8OMLPC^kxmbc!bhL2+|!CAv$aOZ%^SwnSHarABIqQhk!I3hKaLtF$<{9`K^MMPWJq z;te}SY3(IJl)uah8ta&|#auFwR++H@`*=8CmCKfi)Ym<|?{F?38A8CRFVVwZxHB%h z%aFg6MCGC4;*@DBYL$pJ(hW9wF2We-D=BNa3PT+&&qDDOhJ^h8(o z)UZ*3<*$|Q8UFO4ZsHn6qgtme1Ss@5U-dCK`LBfUL3xoS8j+~3y$^&qlJtU%mfRD! zEh#v{VV}aPpxKVzaGkSy1SOCjCylYj@gN_Q`OJDr1wTK8%h08+sobS|6)8GL_Mx~Q zV8O~@GnYm^erm=T`Iy{G;zTbxLj(HG=_ZoPrfMg@5X2}qpIGADDwvONBj>8D||Jh zsvGoa8>kvp5Ev_KRLo6Z>;8=K(qe_X(1`-YXn2SJn zUql+*H@d)s9SGi(v(;k`e|2B!1DMAG0yf6XX1mDd zhBte|P7I)-VazkCP%WJY>smXD6Br8a-bEdS0W?M}=CUK%F&RpUqH7;flf=vYSN@D7 zn*rwbnSyanrxPotpT}CBY;VvMnahImTbz7SMvDPZAMOM+c<%!6)D~d;=LycW(sAUD zCUAj5nQ8+a4ux+Yg-RQtQfdKXs8~0sGxsJ3@2<$MF5cyjPKOYQ`h!}3^$ZZMz0$|r z$@P3kPmeuDv+qSQDRdhyT>naQ*Y$wOmDSztfeau_eYKc_Lrw(~+kV$lE9^mmLt&d} zVC;o?7E(+31{!Y;79*xK;|{l02_h$r5ieR;u9M=BuB*fNywjyr>FD(AuEI{Y4eg3x zXKN2r(j<>z??94U-l(Y9y-G_uDIfqN?;}_6WJ7hzBVVfioZO$-EH`3z`tV|J#ffiy zOa=;JNEAPQ_Gl~YF4NSlXgb^nlky%*{TUW;E$SuX5*G+{{Oq_uheEeaC?j{nb@mGx zW>+5W^RrpJDzMsG6Hf_^wG-WviZo2Urp^;CaTLmq(<-E}80SK0dR(OgrqVmVWEB?# zKFLf!E{XNYw|@8T6jdyQLe%6W$eUPu7+ftlF2dUCP4gzGLfG7{GR7W91LY(wsbMaRDa_gOI|NX*t~4WT@3e)-%Z(<67f5Rze_&FH6W2t@Bt&XgFxxo6^g5wU zYFsPqw%|DU?1shGJ5;xRBy31jz#`E#0fluBszz4F3G&ZGum`@Y+tkD9OXDk9M(Vy4 z&X%1-TRPg&2CjH%aamilDuybpRpg=mhOPmia&Z`60YoN>>l-es2oTt+z--l}X8XvI zo~Kv$Qe>yJFj6G`?CbqQ+sY5337pRPdI+!N@mnI&LL<)z@&vq;6AAQ|uyVA#Ozl)^ zfFJf`iVRx7(}z7}j=M8hNHY}f1G?(QJBu(QhLS9Y)-l*Jquw8#W+JyXfD5t{yM1Nj zA$r>_bmME;e%Qn7Pj-8vq1pUYbUXAoK&-HTREx3uCw zoORR^Z9}Py`Y}6$Un<{X?=~iDA|`~RZ*9YiE=rqN>7*TY$09UFXs}m+m!A(B$7nDa zQZnH}Q+D6V9N`p)!2JQpsSUSvQzDQRFD;uu)upN1EtO{N@z)!^!V${%=Widjvz4l} zg~PQ4#_!(9NoT~wK|h@+*nzsN-tCZ>_OvLqs@lEKcS(u4OO<{Gk*U`gP*(dlglIkM z)aFK(L7WH5+A~(Z0`a6SsqxqGBsuN17XHME^(-V9=yuPGOQxYq;gh2!daHU>@%>~= zI216Ox>Z47vU2Gp!Ix;S0Kk#t@TY(*fQ94E*Bt|li*(UwvmjAzEB=3)4$BtEe<*e* zCv$h_2W94=&vjPSGra8?t_E>vhTLVApbz_dM z&K?mqLCG^GSA!-uwTy$7+h_(6sj*<~Em!-^_|`h!>!0VfqAs_t#JjwWwD=Pq?z-et z;m}ZHK7&hq{Snb1*#s?;dV~&V2f8?A3H^I&l5g6YKgF*y4kMKYlUCo3tk!6H4JsSu$xcaCk zZ8QsWX}VO2b2y~^yyZBF>yU3*_^SXKMx+fn^*SAhdFH-ZA+A*zUlkgblq)CNrH>nx zmMp&OMxIx#i?^oCs~uNY8)pj(N|ic;0xPpWa@!>vnaV2_eA81lGD?)_dHh}l|GAXNe$yR3e;s~az7G5G^gwOV`40Zv z2YU^K4*)Ced3%5T^5FBB^sZzw^#O6Q(}1o{c(;R1_B|?0qlT@S;hE9%fSzzjIi?IJ zqFRY6y~HRh7LcfvM)*QA3a6AG=1c!My7J}i= zZp&;uO&ZN<{6kHFohOq|c$PmXrMy)9DE(tyVEbY~t?UHBl%(lB9kJ;RC-oMv7fhSu zdV#XXmE6g@131h&=@=;zVxULr=Xp@ zwK97ql`7$*G)#@ep(UY81t5%0ovNv-ktl`yIJhsUh$ZsGsU^S-Y$}0Q;sS%5l(jV-N4Lsohza8=ty^PNz&Wh z9Jrn-T^BwWh@eIGL?>_;tXLRjB9WENql{|6)(&YLbR6k|-;th>AftKClxcK!5Yh<8 zFbO|ayeoAPp83 z65u3C8$fwKP~v2acw9JiXnM>h?gL_bP1KneiFhFxC(D#sTK$F;7Ri!QCfdHL3Nx(lMEy+ck*#nbdGy z7J#ByjN)T96hIR`Q@V6;Ke}+qKwdEB>jFceeilLP>FbC581cm8B64_guXneEDbB$nsGFgT^#kvWc}(f`$?&Xl;(dD)-rJaq0*KZ! zCdV5Wr5bZuK7=K(_gK?ctca8tQD{z~{CE);aE2$XgsEM~o~zfkbgUhP9lQZVGAKCi zNL12Q&3r`QQ^B(|RmF8&jBN)%EQx7SfV@CHwMEOV_+-E=rZAWL&~ai5x%#&B(Fj{m z>V-m+I~4Y2tL&S}I_xRn%sPMn{jq-xSZ6~M=QtRTyVhcIp<}@L9k({aWHhP(DM$XN zuLCbo!d#Y1A8zN(yDQOI?sz*?JsdwvJ(`wS_pXqe_nzb1JNHy3x3;zHem~RDU>4ik zya(tZz_#b_SJr%(&74@QT2!F&e}SZ4=boV7V#&=s$CT>^i7tk>yqPj3|D2`J2{Jas zznx+s#Sg62f`4s${#-T|YhJ^z(9UX07HkJ8%*6fx|4(#sg#!&!0s;Ww1OMO9X=G<( zV_<7cr>AFOYvHV?_aAiHB+l3l5g-KL`9`LAjh9RU3t!fpRfg?WLe&@;73uR|C+4-$ zNm#cK+8<>ZfO%bf?W(6zuRf@Td5GF|-XgyMiUHwv=fAAR>7SjOmo}nfa|iR}I}soQ zN^t~D^nYP3(+G6meDz)>Q>vEi!}hWXwa!}Wa=mN0l^&KvTu{r@=HO-mT^SeImsp6M zQ4 zUMZ#LisMtJ7D21eT!Z$K83J*D_6x^PlHpGD^OCHaO@x?~?hIv=WXSNUSwtbh7X|NM zR>l#iAW{E*G0Es-dLz{9c3Dr-fGw(D4nTq2(IP0ZYYKg11mfB2OO%6xQM=y6|9Sa# z{tvCvJZ#G_^&hR$iTZ!*VETU#-0;7){#&Tn{70xD{NCz0$Rmnt+O+J58DZAf&_T4; z3UKN70}18RXr2-!VNr}Yg#NtkBoyjeQ?S&Z2w6vs9XZYQC<-7L4=THmLM2%*`_37s zR$nYwyEf55_ntK}%HObezc?aj1|VR0gtKNgMFI!8&_qJrt_m{xXwQgCN3q;0GRg)L zq|XfZDt7{zm}=F$&hu$InXCFaM#_n_uS#OmJBCE-SnJrElMotm)?uTefJB98LGY){QrC_9=JIbc zc5swJfQ9fhzdc_E`5d=0gX;|KO!ArI1;*=l$Zp>?8*H;b_v}DYNzpcuLuG=m0d`xX zo!wU@dhgnD{9tn(%>HQa^k|GU>}Xi(s*E+0bhe8&^KccO&NEC5`<8O)CM(=eVb1&@ zJd9EYVfeICq%**2FN1)1&g8~BG%XB1#_ODmR5uYVmHFE{kkh9ZZLy$EKrvp^eR+4IGu=`gD_zFLeNa9N$G%*|-%`P(7n;Q>V z7`RX1C{H%IXQEy~7q2BI$|Npw06kgIvWQITNI}_X$P_WY6>7&nUQ=<$ z6PVkIP!PQXuZ>xX=~0N}ABGa0sDu)E#O~!52;$E7q=tDWhRKl}5di~p1r5bc(c)n$ zOK!&ab}Z{sso0Z!ZS1^h6N|W% z(=Ad)3u;Mx^{ zP^zwB!k&hBy{lIi znr6~oum0S_alP`dXBjM#w00!Orr*!wS?~MI$)8ZT3@V~&VS8XSt_RWJ>Kor)lgRxT z!Z}YMvMhjJ=XN(M7Ko)=k$eUBPN?op8y(rR- zZux<|;OOB(5On632~-?CG=L$^!Xi1_qC>yx&BjdV>Ski2@(Vii7~prD&Ba6t!p2l& z;Kj+bC~Xwr&%x=7r60xfr{*~;@T_Rv++?{mFbl3f7)hEtZv;Y38Hj2e`3;qsv3q@V zhgp(u=Y_B&0!k>o^4vaSGhLs#-Ib<2-uiK%OoB zEaU*)+}^qX%TDdI3UM^vrpVzR-_^rH8)_8Yez%wpw%AXi)mDH-?bW4h^mR(th_~2zub+qn(zIAwec&Nf9jk=*X|nEdtmjDO zQ-Tkq+D>Rd?h~^D8HGlR)UUFj=uWK^l+@RmcYLt>12!jXE^JV)l#*3$BAapUqV|&P z=K%)=FR>VA#j^uZwda~RHeDf<^v)tJ8YK44ib2ZZp$#K-&?{t?Z`H4`Er6=X+?uT`hF?mCC0YT+fY} z9lUPc;otF|T42U$?9YNRR`y+s&QT7^ z3vAcbZW-FPbp?&S;PE6@;pan~tHI$1N9Kw2I0q|+H4#vq`lav+&lxFgx-N9#0MwnQ zJN+$Nq&?=ZnhXu>3N|-N>-79qjfCdBhfZ*}caydZvJikGCk~CTlP<;ma657d0b>Y(7krIjNOpiG?;@eG7bRe>*bY@=|E0!8+M-_cWmo0~3^-Zv1DnuDeF-}{{TNX#P zeA&>mqBtrk)5;?7(Y;hvJ~3MgoM)uF4GUxi?5Tqp==Txa63F5N0Gv(CV>MT4ue>0< zta&-@d0o%@F>>l#tYI#dIi!S2ht+?ykB$*cBR z(^e)L%o~jyeJa=u`CC)S7i=`@Y%c*MbA6A|#pvcr>9=rpLSof!077L>YGO!2ws4XK{NWc9Yk3Vz(J_*QXjO7x6#s>^Oc z8+I8{u2-ijwW?16DqvYNHYX?573fnU7^LkhWkg&ch}x8+2)+9n=P5gT+t+k@lGK2+ z$UR()AQvQ2)G(w;9fOokMOL*~3v>46R1P+MtHn!hl{x5(J&OmAx6(hX7wr4*m=rm3 z&Tql6dbz&mQf=wd1mx02?|pZ1EDh$~5ZKW}2C#q2)hMCU?o3(s{2FAn6qaEa-Fb{y zP#OS;3aBbs?Di|%&eqLkz{9O5=dN^f!Yx~#E}Jh`>Z+eydK|ZEJ6^V1hk_JABQ3WP z%Sc%ZR{YH6-k8@1J- zEkvF6_jVvJnvYn}!ZIp}py^UPLzsSG!3oB^TB7Qb>1#yFB>j&0FnBAw#6>NvE=2Vo zP$c{j)pMb6)vHk1dN+?E1f0r}`t&XgppSa{w*i*;wyk)RqwW}XloDZ-*JNBmc2XLj z61}t)6RpK?Y}4=*>TDS!N25Gk@SGyc=>)FE1~L_IYH+xin5F;kbC%a>-4nOkufTQe;P9twNjueL7#s4plV&}pXhGp zGn=agcVg z5Tck@KP~ZWAI~aR;!BJ@W2yO%tiawA)p$PL5ItUBeRzr`PJRa_@MG3{#`_37u^1&S z%24Q{4re*BaR;&25ZRl5*rDBMmt(JosGBX$R)6S$WiD@H57Psc^g8#j$$wAc5F8wf zFvdy~%4ruI39ftW&mAjgWS3bKgJQ<|h;2egZf%TrP7b6>i`K(s?(K>IM^{ z6*0r9(d_DGhZ&)aiM#=jOeEN~O&y40|3xG_VVc;K+w-ItVgy^TwnG=uOENJ;o;mSB z4HHG6GX@X|;R6a%$#(q9J>%iXqca7eM9lzXmJ@<4mMO^%eiF$xCX#(o`P8Sq`v%#U zS^RfIk_!z|KRu|ii8m5~QaKGNM1=-9XzZ`nsZMnEP=jMU-(#p?ZjT~%WM4QXYs{+7 zZM?*ewLM7!dsMD2va^a>>+f519d_BsC~-)#BBFQsWrv1|!aEW+g2lQUJT*Nx>cB{s zyd+}!AdCz%&IKK&9b4y8;LM!j)JLlL5myo|+DOXik*AX4jY;MR(s)0QWVSe$3YqMK z`8h8s^)5gU@jdPLXw3Yyq}=VZ{}1-plGl%DAK3e3FHmYHWCP{c8fQ1Cdip!eJ%b0F z0-z$Q0Nq#gF<~SMO;=c+QDfG4kx2b=7KW4NumON#=8)V6E|9I$A_C%b9*G#Ali3QI ztb#9#hd;(3edZ@5P&VJxF}p?K^j?f$%#a?yVFoNnl+x@d^?g!~jKbT;#i@+*(77}K zSIi^K^oQfS#||=oK}SkDfF83d9t1!meP;iGU3#(FWS>9i*U_}zh5{t6(U>9&i|X6n z>W1<-vlKx=90$^SJvUNkfscMJ^r?#;AQC^~*7uHz@*~anZk~G&YV1F{2R3o#9s{zD zv=%X@drj*-%-<;@^i44BdY*4ZThjD6@$uAM_2ch)9o{TR~l-CB%;g$7zy6bZZ(wVCIh_)mlzx)Zl;Ouh6#hd6Y8gLeIx_PKp8 zh!0%6=gYTj>EcZON$&9Hdjar!%JnkBMkF*_nEZz|q?t^gF5qq#+8s{jtBAUL1Y1Wf zKQ0J>1q6yBWRa3H;4lG9!uUC?3qmtx$^mYmTFHtZirRhfG8(o1mPj_C79J>sog@XM zON7LhkAa_-G#$ORZa<1SG_POCLy8!jJPJb+P?ZEP#Fq?MONl?WBWw;=5y_}v$wyx; zpr~4q-00fUNrBm!QW2;|KIO_u1s3IY)XV<=CUOR^6)PA!o) zS{-`RO^>jrAO8ZEl`3O_jxkV27#Wv2nGc>sjayPoLOd4ta)}%;4MiTMZb$*C?13Hm z48h)CTPP3P24Eg!jPel~$?0_>zjCZUwL%(<0Z<6?Yks}J)s0Y{ebXW$iak-Kh_R6; z=^U3y`vf2Qegc#*7{>^G*s@Urwz47U_M3JQc57SXdYPqS#}^G9V)NJ=A{wkCV_ckU zoWP#Z3<0bAIZhby zz(B4%z@@`5e_9GQ_OLiAgmRo3${po0!LbfNS$uMlrXpBFxM5^NL$x^_Ui`&9%jco1 z!s^)pU&X=u1MFB~0U^kYCZrdRW9#4z$O}6r4X`rW6buP25m&wT0kzXG@ZdgbXX3R1@x`|w=qxy-i_B=J0Zvo)gYFr87| zeTC3o93BKvw0Zirf+&wUv;$9wfown&33KouCo`})Za-}F!#_N( zL{);Zzz0Pl{u&N8#T+azVP7Z+&|1T}fr#f0#aY6Uf}qRtZUso##Ft=^1fu*Ipf>iH zR;fYI?=^~qqdaw|e9JB#gT_@DCId9tivXt&6A)P*b*qFk3QoC9&L@J1mk%+tBp6B* z2~OPwZ1b#!vT&$FTLg6+O-tN>7h77EK;S#2Z; zJA1>y4m?* z%2l`DPZ1%P-HPtZYV*efS0t(ni2xR}(SRUR=3vOwk_~6ae51=UkEb>+q?8YZMKRyn z&hxSa`2HK@fkQp8%a%De6`n>iB~U4?+~y6+zqPEo{C>O)P+lsR8g09t6DN|Se~Ie( zQYP4zn`SL>7)AiD;sh4MIaRVvzXLYv>;Q7a43oa4&%cloAmC)?wuY5xIg_t%fc|76 zDOCHIPRJO{UwA;UXL%~90CyS1-S5pS7X8X@4t?M`QiW}O1OJs(4tQ*Pd4)w+uDpSv z9=SXnH&dy0?z^GgVeE<1#}nBl>6?Y|)C{|cj&cN!5GF4-3V20%uNi{u*#~8hp)$_L zCp9&w1*?s7QYzln3+uZ~J=8ykKs1DXCZW-bC&x{s57?4(;~XZ=S{l!?%q{mdA;%LJm-%9l=$xX|38O{^~fwPFcQW7}`x`$0u&Z_(>;6iFPwz)G80}b=7O} z`KQ(eK%Vu9gB1{O5np5y=%h)H;NM@*C8<<(pKeGgO(#O39s^YEo0VU&eXOmxNN?i@!3ZI=zmO&FlT`%ghqcq zicVQT(Q*;gccJKLsw_IcD}I*N4kv>XY5|yQxhK+n9hW@zM2T*gq8EtICu5?h=ma5M zTl#<`U)=k}RPR3!gduZs9%_!Ds$Pr~$+acm#kDR#oRWkZn&hBm*8_bmJ0R#i&@~d80iad0Y9Cp1mqFs`s-YkVVi->%7RA$i5S6 zY;peJKTHDVH(`Zpt-XQKxO)6!t?u6z?1vo|5UZrHk0V6-ZO}a}yj!Wl6b%5pH_2MW zeh~iLA3On$=>iOn6<;D+cCt8o1MtpZx2Kca%jtIj_OFtS9Z91NINXEf8$L%4^v&8g z=nY#oI}O>qJ9|diT9Y-D1gnz2NLV=o<~mcI-LG&-8dk?o#6g2)Na zeg>Kp@7UQCguAm6kYWC`$>|YM!X(~RSZQ+~$WTOQX;mY1SM3G)TFw^%{kT zhwsBFu3%GDCx31rYGeSnY5*dmyhpKU(Z?xo7cc3 zSUqNQ!;niYs-Hym*=^<`JjbZtBqh+vtdmmMWD;{38BUA%eP}&=z2BGT&y$amuvi9R zRAR`M>eVp-u^JUp@=11&*_Dcng(`{7prd7*6S%d6mD(BXeNgOBh9d~1W+M$?7^~^W z{qp$tPfb$%9LPjD(1Ih7-Gm*xa&=T=a;<99cc&_CH9T}BeTpcQk^GVT+(^dKllPD` zgVQ0vnt!jvc*JH5a{kFiDH+`<=8Rt0#V(OD{pzAMB#wccFaAezDrPsXowlM?1hli2 z_{E5jKr1aL0hmXlG}KS1jMIq*#_3nB%vIV1B#NWlaTPP(`4*a=8V1{n6bl@mALwF0 zW1c6iuuvxno0JgRIK$-g^2;$$cctl{{bMGz_G1qkUWjy9Gm3zNKvzOV`pEPL&@Nc_ z_%cG=TBeO;duMSRM~A`;u03dgv}_X1(>x#aBVdr4GE%~P(uPTH8NRBsFs&?acE|p? zED-&btPyyk;E-RIKmUPqcNHq0A=aS9$u{4Kr(?V`?~+so&~+ntamOwiMP)%kgge+n=3 zl3-e&MHac5x;yO;vXoimhX9|2rw@*&1>5W;HL=x~_6-90xiQmYanpgV-D%Au(!fMq zppNZp6F+b#wJF*xYPl_r`|UsgNOzYr8!ul+Q%iBugfA{g{~nKAKNV;se4tBG+z$D( zfKvjHfC+fuxS_OM+G?`d%D`x}U80U^CL6Ih!3>XCJDO`i^~mM2wLtOJyq$DIx%|MQ zy=Ueux5_J@;P8}H0B%zz^LEt+RUa^JKbCsPKW9njZQZIQ4a8>*=Dz4T*QvDHX%cv- zkDaJdVe|@SM<-aeJD%@+@6Dv1fgnDzBYjx?XQrYw9QrD8uKI=qLKGv92&0B7_w~IOf zOUtHOpv}ce+^-T1J#HXW063qmX~6tm2)AuD4F$?qUW+o@45wK7=f^d>>>MZ2SYZQT3ObYdrjgQ~4v{A|Yd zasBx%pCz$F4W?8cm6Ds&mAgHhYNEipDyX2^(tCEXmqRLhe%7qtIcuj$o54>_QLT3V zZ0fMHUpr@myYLQ)Uf^2lv}D5D(c+~X(fYDtw_mz9?KUz*X+QUyI$L`wAk(0Hs00lc zRSU3i?&fI(w=Na+I@UEOD(~wblg$A>a3{CeOVT}2)F#ItnM`uoN?r-yc+h{tIN+tN zA+KN6%~$13z;x?oD-xBhyM@HWI$^jjqp#L)_V*fbJV9 zwcOAT4Pn_p+o47=KSD|tb-Dq#4`kg_IcL)R6{dW7n^wk4V^dtFemhX>vK~qGVyDsH z>mRt2+Vm+lJ7Sd#%H8e4=#T07f!m~Wd)ExbmRa04RNtQ*Yt7=ph2FN=;_HE@U4bJ*RhNrfIRQGt$ovbVy!%-k=Csxh#xiDRQJ-;-D+nF^@4? z{<%lP@rTScPYHkX*Y{52?Ha>xEx5g1dEiV_0$m9VkI=~89Ur*lqP@0MwH2UvRH7d= zVl%rwqL4-SqdsdFc5aP|Q*?u-pxK`%PsYU_{*XM3)MdfV)LgcozkI3ss!nwtX*Yzkj>hw?dxqPx*a;^SECf!AaOQ7z%$i37gxoJafxraoNq;I{8RL zb^b=fm!ha+j2GpDT&9rJPnrWr!i?dg2_W);iZzwm*Tc(wgyBTvX8aeB0C$?g^EOZV z2=T1# zCW0o%5Y@#|&X-s2qPav7l^5aC#5Y+)EeHBVIS<;U{ZqTVFfFw(P4yNpn3EX4t@aS^ zT6})O$%fE(P~^Lt4j)~x;%AAGkrv3dF?L25G136N+ZHiy=@ImtURE)rUD|K}n#Dn^ zjU{a4bTrTZwq;72(zUNFZe)-!{Buuh?Jr4#y|VxHti>RYDkN_l@)&ZAvC6?*qu z1?+*Gbi9g35|KLC58s5`*;%NeZhQUYhj+3*5X7%s5WvV$*%!Zse;(L{U@yU5g&1ED zuMQ_p2?-jyhU{N<+|rl7WpgRmXwmaRWBU)> zoa6F20$JVIgEiWof_>M1i#W=vew9?Dhnf+a_kKYzSXC=~#z@7oLk%z;l)KSs_;V`z z_*4*4y{41~o*BWup$ao4tZC1(oy)fEkQZuca>w8u`a@5lVB3>&LP3;YE+sAjDgZWQ zfuCj-Bo5GtpUqwrw%Jg{H{qQ((nthzs89@U>1-unDMY$WBA_`)E@9Qzm3~?j#rdW+ zwvQr@{<*gsi@nk~T#K}%JnqX?%g64=ghk!aL$A8NW8n=(-d*V_#dE`i2fdswZw+zF zsCo`tbqo3zt_vm2L-$e*jeC7x-`X0PbrkIR*_!^f!`72&t5wU1p>c|+ssv&fLv_2W z#`$0qT4rp|5SsqEM)&$5r|5ab=0|u^(k1o`cIm+D`=75}otyjm3b}h!m@9jvTA?v+ z(7BF#4K4ZNk}kCVbEkj28(>R?W{N(7sJtQSbY8cr-CW2=lJpwj&%{Q$La66;i+1|h z5c|Zcz=>ehey)2>PcE>!7ep0dm0}fto)^S2SdEG=%Xy+{nm`|5?+u@meqVXt2MQ+(b{=kll%Ex@Eg7qWKkqh_hXVH*Jx0Lm3%vOS$Ffr`GLV| z*w<=CZp$p>Mc_-DhWQL`sz4qGmS=0&*yAef)F4;rz#E}1)OLUj`e!uw3iw)2o7jwB zQ%uOb7?=YDTn>6@_lxNBlh_S_K3ag(HRESPL6GvAkOqs z;Il1>XI~5VeKf3B4`+LnArEO_Sn%Xmg0`{bkH(VB59l&2sOKz+JRzpQ!iMKkD)`HP z=Gl_F4YM7Ro>x`S2NvK&k`MGP?5!qxk_kq=!gQ%bceb=tf>2j5{+amh)CPHOmJZaF z6G;(qmDk5~C~MB?3Ak%8cuvH_4-_mfX|k$0?dNCC@puZ21dTN zCArnveJrxv96Y_gE^b`yoL)|z4qhLLrh$`_k{5)_&l^fwPoj=T)elly9L?6Aj4u_1 z7PW~_M>tI@la#Wyh@OT3tF?`O=FT`Y?gX;7a+Rts!8WLEhQgbJ(8?u(>C2nrFd{Jt z%1%{uyQeoY4o9<-Dfa*pzL4Al57jKm$N(e&5imWV%dI<@YD&qb2G1aX7j6Erd1pUT z35SzG8ctAOl5b4+c*NRX3Jf|i3{g)OzR6t81EpIfnV2dI@3-_vx{nqT`I1mqmY3cz z+M3E{MO~VR#=3}FZWIEY1wvh#%8?ytQDYjm{Xbe0KdZST(oiOhYW4(`iH?3lbCJIF z8uur*;mDe-s30U6TEpr08Vg?P-kihNW8of;zjRRiMzyF!K_(%JQ<_R{)nmh z=Se`#%jyOM2E4N{QCG4+5S(VwO%ncSI%hZT)b$X?ZvS2Gf!u1f1h$h60Vlt)D`dTJVh&A$3wo5p$`>DI+YGv?tFMMfXrVLa6Xl>$3Srz{WE~%N zS7GRnxH2@#I3gH4gzEr`+4-8|>X+&ikKbbE5kzGyPd>q}%*EBy;H-Lz)Wv3eH0SS? zL3Bs4j~3-$fX0s0>g=OFQgny@`i&fhN1 z*M#?}C~5S0^M0fYa%!t}=UArWu7-oNU+V)6A9Mc;7&}MVg9Q7<9>?oF@6d_+K~4WP z`JBW@s`>ibJlkBO5Gjb{b~C$#($D^WQ@ZKcx#7Jzw(q5nvX${wZL3r~2>!~=f~R@+ z(z;qaSHYbIws$!T$#YM=f0DE8F zeFb|vWRyR{t!trFF)~?Ot^fa23B zGX4S=iw?P2y9b++>V8t|E-LHc47)0HfbRPI$wH-_O?6a~E%jwqpmVr8X8>G-{>{i+ z)^u0Vvw2>01ZVY^`Z!}Gwc*j{tj%PlF!e>buv+Ea+O4|m!7b%k zV?zgZ16TqJjcwjslCz^$Uxmy?RkG3Q;7f%7ML@d0uMSQD>rk56Al4alS)|;5f!Ga~ zEXxAC=7_?fd)Yvwvd}jUFh>w=dx$|fU5Dgi?q_16mmV|{W{9Q_sg{Nh5XNsFbm-yc z>1*!{4O?b-U9#dTnGck`QR5h(UFe|Cq3nhn4pKqLxVFYrP2>rCYX-_C{4M(QJiq;n zvBVtDR+2P#sGvgF zLJ`4VSm6mX=`Pi-Si^lB*?p~Zl{@12djBoRj}~x=Rt*|!+uP{et7s%cf20jlYeCRQ zu3DtYxN8(r#)4sUjlEBg$!v=%es)!S(hWL8E12`v1`Dt#CWSrWy@f&OPbPt+fDdNc znIi1j=spb2Rk^e4cOy<$qqZ)4N6Q@n_MTgs_m~r`x(AvU>p>`cG>HM@|Ck?ORJ3|% zXv1IbP9o)VA?I@*Z%$rQyUTGK;Qp}tKa(=XI^bWfXaE3&%K!VMjHA5`t-VJHx0Ta> zC1rl75Kgp<8w(#ZJK=XHu1%24SiSJZPDq-ZP`lJoKqYXLNQS~}NK^iNcVPWN_~RRU zDl?L$Sv#>~MEmCFjTtq_RCbmnG-r;yyJ8woyaVC}8`tr0y7$m1_8zNi)q4)EYXVJl zp^q6jVm}-viZYv?n)WnO*i5D|d38xNlyBh>dZp3mx#ub`ycsiaa7ea@=&V#(q6(*t zbXAyCZ}#)LIn`4>QZKqwvL)`>0&`&-kE2X$^mp<8K0ny74O5D_hwGp&OQkLG4vnyr z(@b<#p>897u-c=atW%nwSG(b&bb2P5?laR+rx&ma0hYXd>=DWoR2o!+d$Sjw&-eWY z%qFVZrJ<5hyhg|rs})2OS5DXw?`1}&=>NS#fq55%y+4dFf<~1e)^%fY%`ov=?KML3 zf(MhvU3G6asOT~hr5ancnkP21ma8OPNDIM6^Fc637aIO1))kV8^h|DyfY|Fut0&QT zOpsya5}cFWyS3U>X40@%LE-(Y3Z{c(fI1mjK8^tc^f{i<^5nF_Rpak4w`>Lak%ok( z1fo_pt=}(#n@cG6>@yVb_XGDxy`>%$1lJ~_DD(^>nS%f-U+$)sg!?;Ol2N7&V%Kvd ziPNenGIu0CaRm`XZl)zegRVMeMX1Bkc6N@3=!-ebq?o;z*iI(3c0*4~)s`lcLDRfo zXYU`YKDNqzKw9yH0L6?~Ai;$)u-1o^!5Mtqh7I$-Ir8s8rS2sifd&V2A3Mh#FRk=w zHvWjLIRKPYy49S>YOo66k2+!a!j;)dT~nx!zC4E*JslS%XyI1%q(m(`bWx%=ATY(k z>YrhpO=~V%?GTC!1ZX#4ZXhe13pPoHh@f?+f zQ*6?n7UIZYo_OEhypXIHK(om?g~%i35I)W$(Qx8oQ3d(u(_R-`+gzONM3~G z-jS}Yxtd<)-H&mEa%`2#vIR<4Q!_e6A{izc*)|)n#;tXFGT$E+;SL|Vb9Tk?{Zp6S zq_^}P`tz+e`v)EkFN%)g`VAyH9q-BZX9L0t@e2+N(#mVeA0a7PtFi}?N}n7G*HF6K z7A=Aa!q&et=Qq%n+7!J;oE@>Dk(}m%6Q5~#{}cB!D8)u=6qNljwX@0+|EWq5bVX( z5K$a$L-Vug|F;t-3v??G#-N@#{Nn3v=tkx4nzWpS*p2Z;9rVQnZ5kXJn?H-Lk{igk z6X${*kfyqSf{vfH`JCt?i%-!m@{k;h>X&h%QXTqRtM7NPVrYtVmeGigGn0I<|_u z2vN9dulw4=K3cVZ8>oU+LxsNUt(BievIDSv5Y{Aj(3P~-=hI9^TRq1=4LE&AOoCqA zk3%p?eyVQ=LKuw=f^9;#?u+SPbO7A-OBxe&Li(~%Aa`gJ&vSF&$q;%K0-RQZIYrvh zE0e3Ig5auui#EZpH%!BotPBIlH5qB`Y?6+uuJ^Fs0?!MDLY*iCNw>(w#m8$j0>*>6 zUabn~pK1ln=igtKx0lzATdFTh*k2Fdy3|9y-~LvH&)37t(J>`W5)n3if~Opb^H>5t z0|tIeY8+8Bfk)XsSN4{(3~X^Q&xNq$gP2(oM!l4kbhK9HM&tlnux|N=faQmi*XQ@< zhl}XFiq!b#8cC?R3@V|Y{7xg>@1R)LJW^2)Oz7P$VOifLGx73_ya)ciIC8+XW*+`v z^0|@Wtbx!-0^pmvc5cv%g?HLL@oL3=O3d8LVs80eLeMboq%G8wXxPb;hQ2`KG?wte z@Y9qXOp^J)qP}Srs~m9Xw)BO|kOTbhw|9)g(eV;*`y-IphmsFYnG}j>2<9+>T&CB7 z6tnN}!qRiuaG1|zB_4{e&U|BL&EM;t6c+T~tv7`w=B(O(1`&=&OfGpb^WKZ9@%PYO zNEp5^JR_XQE8X7fS@GgPe4#Zuk|fLyP!eWV5=%l-hi*jmFpYRiL5@`XSi!ikw%u0o z;76(>cp1X{T-YKS#~Q%fDTY7ut`UK;`xrp*22KzFtB}OR58n0wI{<+>&kTJe4*@}S z06GyQ_B?VzNxMlAQZeF19Fh4F>f2|b1JnZhz?Iq0O+Xf&wWv551b^g=Y@2UPd476)N0lU>j4EUK1#?2qdEU>;!6(`@RqtaM33O0Wa zO^#y|xHQnmG@Xyovaj^^yy1TV)y+!+Y6#9HZj|=6S)B#eS$m@vN&#tVFRD_m1lErT zak>oAnn_xA$yH3^+XnE~pn8mby^{o%Tm64JH<;*NhlrUmzlX|&_iGlqt>7Bv+ zr#2s|fhvO8SFCBMmif1IY;&c>z@zew*a1pcc&gXu!dB?Yb$#__-Tk3B*dlHn7*PGJ6Oqp4X*k={7rYH5oXxoev zeeS;BU$*w*91cd>JbbjgmU=yqQv;_N`#_sh=<1~{w8W#!N1Y!Fn-<1aAms+8i-4#C zpw0%$r;VK>p`N_s9K-cjvKTqnHs%u)1kc(Lap`}JvK8rKUtjB2M=Nu05Ac}8dD;|q zR>m~4)6`j|-G&-yc_7r78Ljo+$+iLb$d!-PmUqM2Z}XegJ@}Ei)Ol=op{+;fy#`*~ zJ?ZKZweCVz53hgfHK%?44cplJuq|`8pYr{FKgnGP>8}i=?t54)7_;aVW>sh2q{0y0 zu-C{H4KAs0Z!F78=zxoW%V?DP8w?G=2l&hgYu}6i^M;e^PYJNvRplO(=1JX2P*M_*^1Xos%PaN0Hz&I-KVde_n1x4>(#X59JVSyP z_uc#V^qu%~JkD&)?i_mMa>6S2hjw=!J?tnMrI(s6CnHAE%ha0VCT7KK=^z6xLL@+( zmCmKY&svLNm4gLKz^WkX1pa2EQKCW*2NSN3qC zFjR~LP(jk{Zu3xNEuJu5vpi5+?|0{lPAqLl-n)8Vs#e9;k|}S=3avF9w=OFat+*^WS7n z`sLzgm!lFe=ObSlnTmnfaB<8M@b|WL{GOc2QGM~cSEM!b3r-Ztd)Xd5#>r@Z+il|% z5SZRe0pnQBa0|;mlds6^O%f6AoUq+8FVv=7N?z$ zjI`2A@UXW!UZZjiNv#0K%Y8wId!)Sc3hoN6PjJ?=nycVBq>%j7#R+!Kgs3H^X-qZ? z;4E9Q2?(y_bW}ctgHK)t2dR>exSHZki8H+2kXy5yg z&@)g|6YU#}K6_nn+v`{rq>i&%j>cYi9 zAb5@ImriFQW0EQ3W}D?!qUcV{50TQ&%1&NS#3-DwR5`7bMoAOLY%auLH{P(P;6Yd( zZ`EB=L~uCadBveIQ-!pLX*#z=-sS1=aQ>+KQuAFhXPh)NK!y4&h$YIxy@24*gN#yG z!kT^iq4;<5Af1P@q2Ldb>K%rscvaH-_xG#Cfp>I^t z@cW80{4`)6`uKFJ_jf+UpDf36L)GRYHd(ku=`VNP-I0^s6T>v!V{?9=7iDRUbG({0 z?5sKR($YNc{Z~kHPlOWwW3YqgZy~dP9^Q|8(Y2eXCcWWk2=qgb|JIhV%TT#Q99V{X zjiw*AqKd{j+fNEBD*7-D<$Q5VuJ64tPE$BVAsX)ghL)OwRJVv#`N{JPdV(bi4iU+L zsbR}7U+Ed}gGMS>=S|d~#gptX*p7ZX2Jpljnt+L7DK`YA+cqa^R3d(-vtY-d@OYQ$ zNjF?*>3|1xHIqZEsUgt1GOJWwxKGj8&{Uu*ZcLPv@q~{DjlCZ*g1N5`ftGl94!7-O z5_F&f0}4ZRgDc;G3{hythfAb6PSAjn+uPg6IjQO;Z9g1Au+)^ee-E%KN-Ld8U&D+| z$OvMnRk6RuF|NsdiU2K<7kBa2mt7p5pDzkE)ENEp&Q3lp6jfl$ZVosmN5Ldp_P#np zu~mvwg17!kE>54On;*Um*4NvonP5UKujp ziRg7M9n{7GD~r-!pHRFZ?1_*Zw%UIQquG1aAUk0lX{T8O%ZGQebY9^I++@68#FOzi z`5}76*5bSMsgm0R167R$O=crH@htQpP<=R)CjzoUy@BF}V#fz|?N`W*Nt~s#{Vd$| zg+pJZ6EhDSM;rSzxoXp|yeylGxAjaTZSz_JVd47Tvd`i?a8sT}+R%$c+W$b_KC|55 zW!NPQa}OlpycU)HpR+&h)-8)*i&wFsPt~debI&|tqQhQV`}uFjmKKoY`Ae3Nz&0%1 zR0B0SNR>f-Kx>TBfIlqUqAe%Udaz%#k?4sVdmIzTF3y4=T7lzKy!uCb*P#goY3ek z0S4rsEnm$udeFWgAd`yx6Bgb1*K6~GQmsyZp6Yqw?~GU`bjh}GIXUdzZVtc5yTRzw zj}g6G@vZEzmxXAg8h2se1G%-bDpE2uU_~57qZZ8R(QAr8=D-MZgFyS8tp<)D{0ar* zmMV2r#oC-p(>y#+f$&HMa)A-yBG-@Z1k`ryN1QmFz63jSwYS=5o^S@T2@TMSi;;s0 z^y08lw>b1=6pU)k_2fo`a#?hwf?VR&%ug;#0c;2lOvG)}4X9~dq|fh*tQ=4^`m5`v zyDZ@z9$(VT(lT#^oC9O~No>ym8Ixj}<{3ZZW@Pej`IbG2?#WjKdDvUO46a~x!!+OP@iA4ZgT#w-2%DG(E$>`)=($Cp% zz`Ra6&dU+{1e2CrUW9c}t=|TsiFCY+eU-$ALf-!duMm_c6w?XCDapes0*f=5UgvIH zxz?&9rMrh8&^}RL!a?zKk7A(08*~$%%fTtQ|LzZvpF*cgz<~+EXwvGAe}<3R4!Yj{ zjp6rL_}OqJ30IzeYyA5T_f_ELS^W|p+G%>>4v0CtwGRqNs7A^mk zz%Xh_pLIrj9gPsu$1riuJS<71fu2Nd0@*TCVa{niswPu*xM*gB7$zw}b&c*Kbh4aa zG8T^6bE*v@NF_A zBlh&nRsN)c#`Hv%TYRm*tSV};Cic}vB=fxiO@#=b@qKJl5jEr~^Has&l53lTUudSl zG_wTM=?v6+^8r!ArH-4x%@8nM`?=)bb?t;B#8<{m z+jI}x;Q`Vz@+1f6vN=JN;Ns^BchIFwcUeQ8R>Jh~2=Ilh@(U1n#Wh`PUrEA>a!c@m zD>7<&`UPB&xZP^InTp;E{$zoy84{#JY$H&W1GWK5O17@SpcVrzdWSnCy>`FPb^qBh zq+fXv@Li5}36u8aecYoOMyow>rfW_#(wXpr~ z;+hsMEvF;aM&GwO{_`Uu7GekPG-EfPL(UXw)2dQSrwZxBiHZygG+{v`qsV!nVxGym zy<0GTpzd+kN>%t&YM>a=B04=cAq5oF65GwvYUj+UpWHQ(&e6KYu0~p`o$Q>R9em0L zbeAHHCgf`_w%n0{{`8FxHEOj$wm=84I4F-YOx`mU(&dbIYE^L3w#d6B^2piQ$sd8r zP>CDf3!}G(SSo^^6*Fwow`ntFNYk-y)+o5JeLXf~s?2No2UFq|U-nvZmD4yCLpnQ= zRdT{mp%6ty3%2`-dxra*DNiNaAd|Qm+0~62`Of4Q{YY%}iJJ`#U56SCf`#E*8wVHH z(R~$&oT|rp08-Z(qJJlu0rF3+2Un8MiKg{huRmO`yEp>I;?0`n(nyf7%)BJ0Flq#$ zSMC$O@h$3${R>o#B7j~X8>@l?x6rK=Q~_};QKsc2A?x?8mbL34y295)^I^seQztP9 zVW_uQ8QmEsNMQ@R@S4pb+8fCG&eG*#(Nr6&phsC?v80A_W)L$_ND#+ekE+wq%?D7d zEsd70dlHlncWAK)*Gl-py0(+qm^>z_{oHXdZy?thpbM%3{7>F1jwTwwd-ncGf(oZi zh14WfCPUZisd%yO=l7|9CoT$WZzp-p_1@ouiKMZD4e2ZOV+?25+S=1k%Nm&Vj^^0& z&zWl0JE3YkKJ&d`Zyi(duGPBTc$nUUBxFwBf(k(4ccudZL z9sLiQ*7U+?gMRjd_*4y^I7ffhRhQ$xJC9J?VP_!@#NN|ACuXrey7&=+U~+5t-U*Da zQ?<*n+BEuv%u6h>gt!^R@AdS-1NI|N+UBso6}HLM|GDoD>0+e_?Bld%BI+tA+bjsd4jtij z9xh{XnHqykhVRDq1DcbP_nTp02H#oF$4a)YnS7((PR&udO)mnqxq81xD`{$kj|Qy5 z7Oi?`nGu|6#u<%ZHAijT)ezVI&eYw6o*G(Lum15+!7ejM_QMw7guMX6Aj^9HQL}I| zHtMMZo-(PVn#x(EUO-uZfV>`#PT=WN4sgsNl4ure>-eiNj_NEU@DeDtV?;(^liCpV zt=aiev{%~gM!p%pJ{)eH)Pq9JByNJr)C_ju_tD-|&x0JJ=CZ$g8zu+Nd)TsR*CGEP zw>2SGzsu}7`57NZ0RA?Y0R)l9(Qin+BL`>4VWoLQd?w}d_AgA{%TqHHil;;Nk%h8r zW5(72(MF^h9TNSp!OHM5$XQ-MUO0(+a=oo**qUUm6|E(W;W0$lciO9_JE_=e`NV)A z-*O7U2nCo?>D5to#FL=>b+YC&I_59_+UhBT==|2djr*)_H0ZFVRQ$z?aOBfKwIjSrJvB2P9^>K#4j^n~>)VC8N2Ry7G zfe9>c+=n)SfrCQsRdJUP8JcEY>f~vci&cXbR+&0}ha#LAWQgk1CI$;UelsRfZ?dp9bYlfnZb#^(9aIjpNB9?k zCw`1Ih&N<3wULg=VU9S!3F-Hxmow?vuTL~d%m*m2kk+0t?B9eiH&4uLr_S$Nj7F0gZh`JpQPKYzU1}z^k5=NBqwS6T@y^1 zDfxASe4@dKsoNed9iQ)o3GiY?Xx!&b9rDpX<~DFij!S2q$E+q}0squ&2r*FGQHC6m zO9qszN|naf{qXt^6Z|}-=}FFA{*hzeMG|%6EvI%&X=e|mA=oVYBM=}aRRB{vlRTl# ztL^aT1I;jIKtz{6FqFKjpM?m^MgY=mP!7T21|VfY(Pv*s%r6T0qLkT1fTmY10rub< z6T>JM63HR-^tOw_9~I&@in6vIwG|E(^84^FoD-24hLILZXy@`qUP99v9!aHiDvA+;s=aE8=MM zB7eY6iHpf<8?=;ym+P#VkVibk2hXgS2+wP@@Rio;J}v4lgubtONt3@3+7I;@K0{t#=qKf}@tE~lQcs`d+c?4xIQ@I|5qOpJ zcQ_{?SP9U^vjWObccxY61+@&hCx0NTrU>-%hwNh9=8f^!O)v(<&wcTn4z}X_xIxAXm%Oa5i4rpxo*`XSOpT2qfIL? z48!&p`ng!k+xxz{X)~C;19H~-!X_79S@^U6nAqE30|0*e4*g7SjRWn)R#_~kxnv3P zat!GGoqbv2_8D=dR85{I*Jg9^3)*uwy3W*4v+Qdn=62a`Ryh&-Q;@v_b9eHu^!P4ixExWYB9;%D?>Y7DmZdP1d90^Tgs- z&mS)A2-xY|0q9UJ#=|Fi2o^*;ULJz71V=;6r~7~MSfd)rnpQGF>S(rI}w(_cM31m9EKW2UCVj?I8>r>**9BI&PWktYnanB4x z!@VFD6Qfaq`718X6B9G}d@GD%o#RV`xuz16xA_feRTj`E=*9+hJ2k&o5dZdVzcQjf zd7~q&m(HVZa&-J7$m<)j^c0zjqbK|`L1Ev)==s<|O}J@B%&CjOoNp8h&yiiAH8n2{ zFXW(A;C=J8`x7nojDrm+3n@0IIq`+{sm_`IKIRA%tRv3ly6IE&?Aw3;9j*;*J&G!q zEq^=rZ--u>2#IG}dPblCZ2-(EK^Wg^zUiE}+XHA|-p;a;xSL&%e|9jUi1^4DbzjyI%QYiE5k{FbE6c(qKFm_H!y-z2%{^Yd$R z0l@thbPT#6g6gcwaHm=zbSc4ZW5Iq7b*k)k`=KEN?R}`EdqEvdAWJnonU~oQG$osU z`s=(!s~S!@HZ?H4)(<{GK)nTAYqY=JEH&>c{_X-`z6ti*m%kGKk^R3sD^Y|Qstznjw_Db^iw2^wo&1^vt>c# zp`R5pJg>NyiXy`O}P~jk&rJ1;W^9w4ySg^W+RJgvY+Hn_n=|K}3j?Yxu0d4an zdAB09e>WV2UgHmSAL4mv`cproz0s71Rn}WS+1+z8i8Cgc-u(d{_)` zuo=l6+#7lVjWj_`Ny&uqbwzP$3-KEnp`XfrA3l0^)g_xs#%=^sN`QB=^A|`Y!?#y> zA*|L67=|4wOuH(?2;pTJjSvR*J)U?Bu&z>RY6J^oo4*OT#j7WsnU^oN0RLJf&mHbM z)H*V93InpInRiSwuVUF0mpM2NrnslF@AChu9bEoxBX;Rg?O%IGIw!u|Q2n(dqVnK34VlM4jkBR27RTpZ-Tn zS5V3=hfQHU@r*OoX9ua^b(uyR-(HiLI<2E5c`=#ri+S_vUvQbImycnl5*dTNpt-bF z58NE4_;{iEuj?WO6#@11z!ktZmJ0Tf9$GT-GHJF_ihT-U_v5U;{L^3LUDi_C6`CnX zPdTh9A^Gg2o&rx6_EezrD*brf^*G<&iJ-mVez(0+89vp`X>+4Gyn#j{%*E7T?F3=E z*0qe{@L@89#D6>8IS5dCm@PUj+#wIZ53vqn>+HWVd-*$77a9gLl!B#9r?}h3#a4!+ zrf#+RtO?vJ^#mZ|9aGqs|Jq!s&tZ1L^x+^`;uq~jgWU~#@ibqLuVob{kLwR!a!-s-W=^5Ke;BCw2?a=ROOL)FQp5a{!F+qSkNEhs1_ZXj7t6C*riO7vDalPK=+=Gwu zp`&aoAARl`u3^vvTTFV6hXlDR-%x7d_Z%WU!IH`Z0jwZshTWI1YSa5|Ue+-C*V>X}ISV<5_Y&eG6{<{)9Y_R1Zhul9!d!7kR;zQG~e=^{m32 zptfVE@LToFc-<0V89M*+Vj<}#mB$yknAVj1`>UVZ3nodog#MrPgSg~VmzOUG84IZC z&AHm|`NO!=6IEBho>szW#-;TJMp9Yn_kN>4r))mhv$vN|mQe4ZugJ#}-3Hs;ZqLW> zmfw%x>sD6YUeC`%m_2x&lY{xX7MAQZ)l>=*rwooo2mxDWvWgv`WD@DpEzB*+0{X7${ADAu%nj+P+UfW=3 zQI}#|Q!CG(5Yc!J5-Et$O0qhS)FHF3ew4H0Tj;0~S`myln~B2vrIRNK$*vJ@3}D~g zZ{i%a%uazFymOqFF~A-o)-(jh=Sl6;Z6|cay1C60G_znOE^yt>4ioC9@KX`$kw2l% z$Isi|hS#%8X+aM-X@HWJlu7`y7M2{?L%}bf-<^KQ&kuD!YGs29U-vV50({B%PP>-> zf$X*k)$st*&oj76QGYJ+vV3#zIXqJY5}cjy(T_0?jj) zFIH=9-A9X9^=>%4!W`o{{BR1qQ;jQ<&OM80(+k%887sO~aHaE^LI@srE2l)-RwXhh zSZ-fMZGsbe<_@(2eMR2^TQ+-)U22_LHL9?CK^;nQTHHo-nzb?wzFk1xr{GaQh~z7d zluiW0by}t{?0hH#c*Aasuxu@8x6Ai%jQ@bY1FnjCkRJgOpF-L6Q6Vg-t+uAGU_-BJ z96iBM`MT1cQFixEVljVd_wv7r&g`4tNFPh1!I0Tf)duX8r11nZ#JV*>E5Z;t7I%0{Ap&W2l&^x8=zLvE7HY z0m{7d6;Ttdjgy%uczbI(4(^b>J!xERqUVdxp&jCd1H3kOBV&zD+;~2j0#4+*@u;_2 zc-_4h0=x(-fDi%s+MUrB9e1o^`xaQt1rA>8K8*tZMxLf+D^i&_N-~rBx(x&#W7~c} zMGH$9LmdcDw5Zwi;ia36XE5xOY)q{^eR&IQ2}4k;QUC7S{S4f@;8A4Zf3C1sRuT8R z)>A|yuq9cv4bES|bi|6QNWj8wCKNs-IKsF>W56%^zg`1cfb;fIf~+|fdj{Pt7nrpN zXa6xeur>(oKwT$Yl`M(Cd7ODSlOIT&U`Cv&MPTG=z)3feGoT$V66IK3r5jqTluRE+ zP7!K<5c>E?-k$6j%7l$DpleI#PJj^AKDQ6DhbN5}N>IeaG9rf@yFsbejkR>(Y?lfmfWG)FRRTqLEOh=dVf`$YcMuU9snC4dPXr_1pu zqz=1q&VPkMmj7jp8W{ zfQyJ8i5fFAhU3@$%=1ie)L0VXN;bUBSD5m{Ws>nYqBW_a+aAs`WYr8>C_eerfJMJ? z!oE)%)zMQFLVhg6dkkuJJn`q=E5p43CwiqrnMaNn9ixEnsqiIE%5lIn7MRMZBB{-t zqD#NX5hl!IzXSTcQpC9V#s&qs^FQXyI$~?94h0N4jzUlX>Y0XcC>Wi{W7pg=$d6Pn zSa-KvNo9f3_H}NIf6UpwTEArT@gmfj4(QSiuR%iPc~rLsWnCP3Ti(S7<8hR7!Ofx| zIr7djm}cfmYbn6fED^FTL3UA3Fx2v}77jo;-~=F|xdQi;_sQma_s=oPU3eU-plACo z94J_OHbY&RMgi}$CM!4anvFKCdf{~lpLLsQi#({(3Ws)j$o_K8d|k{OFmuCqGGsvp z_L+B+jmUd$fW~zs9B9Udb{uArn%~NB$<3WGjdq-DGRQs6u+fwNTxChd%A80-M}*}? za~vGU3Q2r5H|t9?;)zJz&(1G|5vj`NX$=b+5^k9KT zhV$>4e=rf;c`tV(vNUaj?4Bv%2X$?vq~$4nhnr7S5HHOJMxd_>OhLoskk=~BdvbYx ziKHv_U>-LUc7rflkWd&yY((uB%EF8@XF3DZ8H#Zq=4|me>D8n~&{8VCdah&$)t(pR z7>s4Cs67V?lyfoIX`D@6{*PY+T$#91Rv-WXRPp~;HOc?QJUt_8i~p)gzR|FWJ8DJz zz1167B8qo@;1uAst%nG-fx?m3jw%+ZW5>af#M+vcES6NfYVYf1DkfJ*>^YM``#?Fe zw~9I*^6)VgCzViyG~%MNY@$$Eve&SQlwDqFtrls}?6KO!!iry|_X2oLqt7Tgs!o2P zTAQXk&1IU!>-BtplnNcnyjq&XYd0CBC!Ff6${(bIt5;A_112VHCP&be2o;wGny)?# z?!)-D6u`pK{J6*>kx;E#f&IEa04^l3hIiTz?Wsv&vCG&jP)4Pv*+i? z2t-{bPX(`i8x}8+-PlB(QhhQCM0uaIj?Y?^Vy;<2qhxv#jXKr>wi?I#E}kO?Sd+qP zu(WY?5?b^v-mvm zElMq&ofeFuld8G09zjhm_9e;2={M2y-Ui~CJkE#br#nPq{<6O3_K(KUUcFzZXJoQv zLKfzNt{BTb95M8hk+h3i>6kRB^X>|(AQal$kvd1uW2^~zG7lnYffqlSo7YiaFS)S# zUHR;km>wEFQJdigbjTAr$q5IxFajc-KCYN0ST%lbfJCM$=Sy;5E+TPp z0(OO3e=X<;m!ozJ79UV^H3uwUk!E~Wg&WLzjT0-Tk$tdP5BnXR-{%DFJMK|zkNPhc zz;>M#Adx3VpI(={KFQz7rU~&&C!I%cXZ8%QQ(>=T)3ioIR!vvd_<_>}z{ydo-C66f z_lC0!iEw|`JisUu=>g_BrWQ46t~CGY$2-Mtq^A-!X=AW8V3@GAi|w6p zD@_|XunnFP5zBTc8~=v1GW+vPGQ@H&qb~X7EK#FW1O-vFvvF6l54uCr?QwRjywqAG z-w_FH>k=c{BcD8;INny1#5S!e@4=Dp-%S0p(@uJDL$eOaw!0!L%F9G`RUxiT;6o_u zgVh(l8m-HR17B*mw|eWfc2k74nlO{cv7j(G%9z7Lr%CW>l+Wj;yF(auAvC^1F0%!t znTy^fQ$#?A@1YAgM-y(Y){HU7$dxf%?!Q8xJG9gs%VRSeY+cI}gY+?t^8@G)5f*W{ zFh+=dG;iBKc?M6&?LVjACj%am$;9$d?XG^ytA<8VjqtG>d=k8{fi%6!)R)3OL7xS@ z!p&&LpY5YR>7W|0C6;VXW9lKfz}UC#_M-}_zk#v~fQ(p|B{oujm-fd(Y`Vz$C5-pe zRW9EcV-Q*0^e`Y67!CRDuZ64_EZ^wq#nS{RK1YK>tGK*)>rMRgdhuN{=VFa(@^RK% z*P#pm$h+g$Ki7VTo`^C^V@K`sIEd~D8SZ~Q;k)2T)j6e1x@&31)3fm+NE>YF-Gm2F z;n(LjslpE;3Q{`wqt~EByi~87LMOFa)dGu6**zU*d(=liBA)Cz{=`c`efdNUMmyPx z+`_`uP(G)zVu!A8I&)OVYBW?=c1gZr)aFJHIh?ZEj84_kj*v#qxGk{G>(3h(ba~>t z-nE>SDZVL-aLm#+pekO~&&Oz34io2j&q=z)wu<+bM1WF#^cOoKxbl#`j;W(Vp(pJp z?!#i3?WgZ6B-hYDKkqMPC7eujF}gZTX>)Z4)WGCAFP6JR9rQ2b!n(R{d;8uj_Rn}$ z=F-Y$a8`TR$IAK*b2?DqjHRsPJVP%WpL@dWqm~r(_h|4sEB=hC=eqF*r_<}dhR#>CqI0|A z+74(K&;0RfDs#|c_D6-Vk~t+m;+b<#MAR2@1j(08$`@wU5@bfe8hxUJ^~R|vJ~faf zYYBqAzM-gKJ)xh%G$5q-h|2D+9zW_ch0u0qiMdjr`{}G^2D78Mk5&2wA~3MXMHrlG zzBza0x$r@J#QSkE{!gN>7r5JeC0H$c@h?rr?Ic7dK;Zwbqz+t$ekDcxaBHP~pf5t4 z=%lM7_YTtUGpV~pvkYNf9Ea3THIH-i8U|>!%Wm{?p4m=PkDt$(@(t*E+hy?I(l;k^ z_-026@zcW&pH~ff$?$S(o*&`VP=_4K{}_kwT+R*wHZ_{TZQS^}Bz-Ys*Isu2JT?~9 zPrfE*W}@`Be>Q&HrMko0-Y&)8ULF}9=*|!K8=-3a^1omu?jB9+XxW&GukR9nq$2gg zx|Uqp4GP*qesHO8gbhM{z+0i6FEa|*m9Ralrd&J_g!(^ zktR%i%%dk>u>|K73JfVbEG>Vf5dt0NQl|B9!~@K_~ni8}7R zP>pVr1JEFOt}D<=+E8Atd{$3tZYCZ#A!{52497#$LC^!VQ|VIv@%*H-fl*DmsZ69! z5d~!AX5{+H$vH7*pqQ-PeKlS-sxx~Q?f1lcHEQ*A^zx7ca|9C|i@(Yy4f7}N>gqPlP$@)hS~ihuH^!M%xA&5YW96!?2K%UxS8G2;&HPhnzihB20){j z{PP6{iPT1s;k!GgwR0j#f(k{Q(bPsn8@X!2r}NL2%m73wo`T~#!+qAetGcBBtMk!K zxkB<}yg_`nFr6?DfJdwUD&r^2*ra^80tWQ6$of7D^Zre1`tYOXy@Z!L{d<16dS0Xc zHT-4gsG_{%G;pU=QHC~>j}vsQ zYTbSbpI2fia6SBHu#X=y?hk``a!^@i8xP#BCD-b>%zCBIp>IZhn4;?g@Xh);#R387 z4~8`O5K%oLipCP1r+*g!uE;zM9YxN$e(SP!^OvYCP!V`exO25> zvXUYo1BIlh6iN(SCC}Pl+Hu*Pt9#Po;A8%hZb3GrHSX6#5-$JXSMuKs@*d#5I0pk-OGZQHhO z+qP}nwr$(CZQHi(?r-+F6EP9zzRdms>tRJyWfrq4O9BafXiBtAGJIFlwKZ@f)I6vo zw{q|(+P9rL$2Uy|RB$87L7D^zE?ur<5Emee*IIze%4PL+@3*yByi0OxRfyCB>LzmU8V-J| z_S=^`hyXsZK<25$p=M)iJlV{bGPnfpr>cxjXh?6k7FY~I0VINR%s#Oj z5;gEHC~cytVph=Y~0DHIV{H^ag?iN+MRIOg)l#ZjvrVctB#IT~_snrLP+9 z1&}Xm`B3pM2qD$ka14f~mrcOTM3|WGM@AwDm`GDHsBmZtWg;hC*a9}DZ{q~s-UCL& zWV4UklVp(4e5Z$TJUReE+?Da!s`@#ppn-ay1*}&mx}e`&R@rpf*SA3Q0!M&D8}vUJvI=*bWNcn+{qQ!9*jsG!AjYKos^3qjTNN2JGS2uR{~wC45LbD zvwgdh8q(v7Jf^D4_FPN}K_>>$1_mLd9>o^**Q%}bCpZNzAf)SiIIaAafK!r6bjY94 zKJeI2wa!2(gtibfQi|B@VbIP%eoMiBaW)ku^#NLE9pN?Z4B-9CzOnL<67u7Kg>b