From 6f2f6d2d728e7053dee227bf444f52121e192726 Mon Sep 17 00:00:00 2001 From: Flag Date: Mon, 27 Apr 2026 13:48:36 +0000 Subject: [PATCH] feat(viewer): v5 grid 2x2 + datebar calendar + mission label - NAV viewer v5: grid 2x2 (map + charts), trail slider, play, layer toggles - Datebar: date picker + datalist, fetches /api/data-dates from :8766 - Mission label shows #NN-folder (X sessions) in green or grey - Tools: parse_usv_nav, extract_mcap_signals, extract_usv_pwm, merge_nav_usbl, usbl_to_json, check_sync, parse_kogger_usbl - Vendor: Kogger-Protocol docs --- .gitignore | 5 + .gitmodules | 3 + tools/check_sync.py | 71 ++ tools/extract_mcap_signals.py | 107 +++ tools/extract_usv_pwm.py | 89 +++ tools/merge_nav_usbl.py | 319 ++++++++ tools/parse_kogger_usbl.py | 242 ++++++ tools/parse_usv_nav.py | 257 ++++-- tools/usbl_to_json.py | 125 +++ vendor/Kogger-Protocol/Kogger SB protocol.odt | Bin 0 -> 45259 bytes vendor/Kogger-Protocol/Kogger SB protocol.pdf | Bin 0 -> 854437 bytes vendor/Kogger-Protocol/README.md | 51 ++ viewer/index.html | 732 +++++++++++++----- 13 files changed, 1751 insertions(+), 250 deletions(-) create mode 100644 .gitmodules create mode 100644 tools/check_sync.py create mode 100644 tools/extract_mcap_signals.py create mode 100644 tools/extract_usv_pwm.py create mode 100644 tools/merge_nav_usbl.py create mode 100644 tools/parse_kogger_usbl.py create mode 100644 tools/usbl_to_json.py create mode 100644 vendor/Kogger-Protocol/Kogger SB protocol.odt create mode 100644 vendor/Kogger-Protocol/Kogger SB protocol.pdf create mode 100644 vendor/Kogger-Protocol/README.md diff --git a/.gitignore b/.gitignore index c74db46..db1ad63 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,8 @@ data/ output/ __pycache__/ *.pyc +.venv/ +data/ +viewer/data/ +viewer/screenshots/ +screenshots/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a63d215 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "vendor/Kogger-Protocol"] + path = vendor/Kogger-Protocol + url = https://github.com/koggertech/Kogger-Protocol.git diff --git a/tools/check_sync.py b/tools/check_sync.py new file mode 100644 index 0000000..72cb8dd --- /dev/null +++ b/tools/check_sync.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +"""Check temporal alignment between MCAP AUV, USV PWM, and USBL data.""" +import json, os, sys +from datetime import datetime, timezone + +def fmt(ms): + if ms == 0: return 'N/A' + return datetime.fromtimestamp(ms/1000, tz=timezone.utc).strftime('%Y-%m-%d %H:%M:%S') + +def load(path): + with open(path) as f: + return json.load(f) + +base = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'output') + +sources = {} + +# MCAP signals +mcap_path = os.path.join(base, 'mcap_signals.json') +if os.path.exists(mcap_path): + d = load(mcap_path) + n = len(d.get('depth',[])) + len(d.get('pwm_auv',{}).get('samples',[])) + len(d.get('state',[])) + sources['MCAP AUV'] = {'t_min': d['t_min_utc_ms'], 't_max': d['t_max_utc_ms'], 'n': n} +else: + print(f"MISSING: {mcap_path}") + +# USV PWM +usv_path = os.path.join(base, 'usv_pwm.json') +if os.path.exists(usv_path): + d = load(usv_path) + n = sum(len(v) for v in d.get('M',{}).values()) + sum(len(v) for v in d.get('RC',{}).values()) + sources['USV PWM'] = {'t_min': d['t_min_utc_ms'], 't_max': d['t_max_utc_ms'], 'n': n} +else: + print(f"MISSING: {usv_path}") + +# USBL +usbl_path = os.path.join(base, 'usbl.json') +if os.path.exists(usbl_path): + d = load(usbl_path) + pts = d.get('points', []) + if pts: + t_vals = [p['t_ms'] for p in pts] + sources['USBL'] = {'t_min': min(t_vals), 't_max': max(t_vals), 'n': len(pts)} + else: + sources['USBL'] = {'t_min': 0, 't_max': 0, 'n': 0} +else: + print(f"MISSING: {usbl_path}") + +print(f"\n{'Source':<12} | {'t_min UTC':<20} | {'t_max UTC':<20} | {'n_pts':>6}") +print('-' * 68) +for name, s in sources.items(): + print(f"{name:<12} | {fmt(s['t_min']):<20} | {fmt(s['t_max']):<20} | {s['n']:>6}") + +# Overlap MCAP vs USV +if 'MCAP AUV' in sources and 'USV PWM' in sources: + mcap = sources['MCAP AUV'] + usv = sources['USV PWM'] + overlap_ms = min(mcap['t_max'], usv['t_max']) - max(mcap['t_min'], usv['t_min']) + print(f"\nMCAP t_min: {fmt(mcap['t_min'])} UTC") + print(f"USV t_min: {fmt(usv['t_min'])} UTC") + diff_min = (mcap['t_min'] - usv['t_min']) / 60000 + print(f"t_min diff: {diff_min:+.1f} min (MCAP vs USV)") + if overlap_ms > 60000: + print(f"OK - overlap: {overlap_ms//1000} s") + elif overlap_ms < 0: + print(f"WARNING: no overlap! gap = {-overlap_ms//1000} s") + else: + print(f"SUSPECT: overlap <60s: {overlap_ms//1000} s") + +if __name__ == '__main__': + pass diff --git a/tools/extract_mcap_signals.py b/tools/extract_mcap_signals.py new file mode 100644 index 0000000..35ea7df --- /dev/null +++ b/tools/extract_mcap_signals.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +"""Extract AUV signals from MCAP files: depth, PWM, state.""" +import argparse, glob, json, os, sys + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--session-dir', required=True) + parser.add_argument('--max-pts', type=int, default=5000) + args = parser.parse_args() + + session_name = os.path.basename(args.session_dir.rstrip('/')) + pattern = os.path.join(args.session_dir, '*.mcap') + mcap_files = sorted(glob.glob(pattern)) + if not mcap_files: + print(f"No MCAP files in {args.session_dir}", file=sys.stderr) + sys.exit(1) + print(f"Found {len(mcap_files)} MCAP files") + + try: + from mcap.reader import make_reader + from mcap_ros2.decoder import DecoderFactory + except ImportError as e: + print(f"Import error: {e}", file=sys.stderr) + sys.exit(1) + + depth_raw = [] + pwm_raw = [] + state_raw = [] + TOPICS = ['/mavros/imu/static_pressure', '/mavros/rc/out', '/mavros/state'] + + for mcap_file in mcap_files: + try: + with open(mcap_file, 'rb') as f: + reader = make_reader(f, decoder_factories=[DecoderFactory()]) + for schema, channel, message, ros_msg in reader.iter_decoded_messages(topics=TOPICS): + t_ms = message.publish_time // 1_000_000 + topic = channel.topic + if topic == '/mavros/imu/static_pressure': + try: + p = float(ros_msg.fluid_pressure) + depth_m = (p - 101325.0) / (1025.0 * 9.80665) + depth_raw.append({'t': t_ms, 'v': round(depth_m, 4)}) + except Exception: + pass + elif topic == '/mavros/rc/out': + try: + ch = list(ros_msg.channels) + pwm_raw.append({'t': t_ms, 'v': ch}) + except Exception: + pass + elif topic == '/mavros/state': + try: + state_raw.append({'t': t_ms, 'mode': str(ros_msg.mode), 'armed': bool(ros_msg.armed)}) + except Exception: + pass + except Exception as e: + print(f" Skip {os.path.basename(mcap_file)}: {e}") + + def sample(lst, max_pts): + if len(lst) <= max_pts: + return lst + stride = len(lst) // max_pts + sampled = lst[::stride] + if sampled[-1] is not lst[-1]: + sampled.append(lst[-1]) + return sampled + + depth = sample(depth_raw, args.max_pts) + pwm_samples = sample(pwm_raw, args.max_pts) + state = state_raw # events, keep all + + all_t = [p['t'] for p in depth_raw + pwm_raw + state_raw] + t_min = min(all_t) if all_t else 0 + t_max = max(all_t) if all_t else 0 + + n_ch = max((len(s['v']) for s in pwm_raw), default=0) + channels = list(range(n_ch)) + + from datetime import datetime, timezone + fmt = lambda ms: datetime.fromtimestamp(ms/1000, tz=timezone.utc).isoformat() + print(f"depth: {len(depth)} pts (raw {len(depth_raw)})") + if depth: + dvals = [p['v'] for p in depth] + print(f" depth range: {min(dvals):.3f} .. {max(dvals):.3f} m") + print(f"pwm_auv: {len(pwm_samples)} samples (raw {len(pwm_raw)}), {n_ch} channels") + print(f"state: {len(state)} events") + print(f"t_min: {fmt(t_min)}") + print(f"t_max: {fmt(t_max)}") + + out = { + 'session': session_name, + 't_min_utc_ms': t_min, + 't_max_utc_ms': t_max, + 'depth': depth, + 'pwm_auv': {'channels': channels, 'samples': pwm_samples}, + 'state': state, + } + + outdir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'output') + os.makedirs(outdir, exist_ok=True) + outpath = os.path.join(outdir, 'mcap_signals.json') + with open(outpath, 'w') as f: + json.dump(out, f) + print(f"Written: {outpath}") + +if __name__ == '__main__': + main() diff --git a/tools/extract_usv_pwm.py b/tools/extract_usv_pwm.py new file mode 100644 index 0000000..c0b98ea --- /dev/null +++ b/tools/extract_usv_pwm.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +"""Extract USV PWM signals from navigation log CSVs.""" +import argparse, csv, glob, json, os, re, sys +from datetime import datetime, timezone + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--nav-dir', required=True) + args = parser.parse_args() + + pattern = os.path.join(args.nav_dir, '*_navigation_log.csv') + csv_files = sorted(glob.glob(pattern)) + if not csv_files: + print(f"No navigation_log.csv in {args.nav_dir}", file=sys.stderr) + sys.exit(1) + print(f"Found {len(csv_files)} nav CSV files") + + M_data = {} + RC_data = {} + + for csv_file in csv_files: + print(f" Parsing {os.path.basename(csv_file)}") + try: + with open(csv_file, 'r') as f: + reader = csv.DictReader(f) + for row in reader: + ts_str = row.get('timestamp', '').strip() + data = row.get('data', '').strip() + val_str = row.get('value', '').strip() + if not ts_str or not data or not val_str: + continue + is_M = re.match(r'^M\d+$', data) + is_RC = re.match(r'^RC\d+$', data) + if not is_M and not is_RC: + continue + try: + val = float(val_str) + except ValueError: + continue + try: + dt = datetime.strptime(ts_str, '%Y-%m-%d %H:%M:%S.%f') + except ValueError: + try: + dt = datetime.strptime(ts_str, '%Y-%m-%d %H:%M:%S') + except ValueError: + continue + # CET -> UTC: subtract 3600s + t_ms = int(dt.timestamp() * 1000) - 3600 * 1000 + pt = {'t': t_ms, 'v': val} + if is_M: + M_data.setdefault(data, []).append(pt) + else: + RC_data.setdefault(data, []).append(pt) + except Exception as e: + print(f" Error {csv_file}: {e}") + + all_t = [] + for pts in list(M_data.values()) + list(RC_data.values()): + all_t.extend(p['t'] for p in pts) + t_min = min(all_t) if all_t else 0 + t_max = max(all_t) if all_t else 0 + + for k in sorted(M_data): + print(f" {k}: {len(M_data[k])} pts") + for k in sorted(RC_data): + print(f" {k}: {len(RC_data[k])} pts") + + fmt = lambda ms: datetime.fromtimestamp(ms/1000, tz=timezone.utc).isoformat() + print(f"t_min UTC: {fmt(t_min)}") + print(f"t_max UTC: {fmt(t_max)}") + + out = { + 'tz_assumed': 'CET (UTC+1)', + 'tz_converted_to': 'UTC', + 't_min_utc_ms': t_min, + 't_max_utc_ms': t_max, + 'M': M_data, + 'RC': RC_data, + } + + outdir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'output') + os.makedirs(outdir, exist_ok=True) + outpath = os.path.join(outdir, 'usv_pwm.json') + with open(outpath, 'w') as f: + json.dump(out, f) + print(f"Written: {outpath}") + +if __name__ == '__main__': + main() diff --git a/tools/merge_nav_usbl.py b/tools/merge_nav_usbl.py new file mode 100644 index 0000000..259fd69 --- /dev/null +++ b/tools/merge_nav_usbl.py @@ -0,0 +1,319 @@ +#!/usr/bin/env python3 +""" +merge_nav_usbl.py — Merge USBL decoded data with USV navigation log + +Inputs: + --usbl : combined_usbl.csv (output of parse_kogger_usbl.py) + --nav-dir: directory containing *_navigation_log.csv files + --output : output CSV (default: combined_nav_usbl.csv) + +Nav log format: timestamp,data,value (long format) + data=Lat → latitude_deg + data=Lon → longitude_deg + data=Heading → heading_deg + +Interpolation: for each USBL timestamp, find nearest nav point within 1s window. +If multiple sessions, use session matching by timestamp overlap. + +AUV position calculation: + azimuth_deg from USBL is RELATIVE to USV heading (yaw) based on USBL hardware mounting. + AUV bearing from North = (USV heading + azimuth_deg) mod 360 + Horizontal dist = dist_m * cos(elevation_deg * pi/180) + + Note: if azimuth is already absolute (referenced to North), do NOT add heading. + Check: usbl_yaw in payload should match nav Heading if relative azimuth. + We use RELATIVE convention (add USV heading) — documented here. + +Geodetic forward (haversine): + Using flat-earth approximation valid for distances < 500m: + dlat = horiz_dist * cos(bearing) / R_earth + dlon = horiz_dist * sin(bearing) / (R_earth * cos(lat)) + + R_earth = 6371000 m +""" + +import csv +import io +import sys +import math +import os + +R_EARTH = 6371000.0 # meters + + +def parse_nav_log(nav_file): + """ + Parse navigation_log.csv into: + - nav_points: sorted list of (timestamp_str, lat, lon) from Lat+Lon entries + - heading_series: sorted list of (timestamp_str, heading_deg) from Heading entries + + Lat/Lon and Heading have different timestamps so must be interpolated separately. + Returns (nav_points, heading_series). + """ + lat_by_ts = {} + lon_by_ts = {} + heading_series_raw = [] + + with open(nav_file) as f: + reader = csv.DictReader(f) + for row in reader: + data = row.get('data', '') + ts = row.get('timestamp', '') + try: + val_raw = row.get('value', '') or '' + if not val_raw: + continue + val = float(val_raw) + except (ValueError, TypeError): + continue + if data == 'Lat': + lat_by_ts[ts] = val + elif data == 'Lon': + lon_by_ts[ts] = val + elif data == 'Heading': + heading_series_raw.append((ts, val)) + + # Build nav_points: timestamps where both Lat and Lon appear (same ts) + nav_points = [] + for ts in sorted(set(lat_by_ts.keys()) & set(lon_by_ts.keys())): + nav_points.append((ts, lat_by_ts[ts], lon_by_ts[ts])) + + # heading_series sorted by timestamp + heading_series = sorted(heading_series_raw, key=lambda x: x[0]) + + return nav_points, heading_series + + +def ts_to_seconds(ts_str): + """Convert '2026-03-24 09:29:05.230392' to float seconds since epoch (approx).""" + # Simple: parse date+time, compute offset + try: + date_part, time_part = ts_str.strip().split(' ', 1) + y, mo, d = date_part.split('-') + parts = time_part.split(':') + h, m = int(parts[0]), int(parts[1]) + s_str = parts[2] + s = float(s_str) + # Days since fixed epoch (don't need absolute, just relative diffs) + total = (int(y)*365 + int(mo)*30 + int(d)) * 86400 + h*3600 + m*60 + s + return total + except Exception: + return 0.0 + + +def find_nearest(ts_sec, series_sec, series, max_gap=1.0): + """Find nearest entry in sorted series within max_gap seconds.""" + best_idx = -1 + best_dt = float('inf') + for i, (s_sec, entry) in enumerate(zip(series_sec, series)): + dt = abs(s_sec - ts_sec) + if dt < best_dt: + best_dt = dt + best_idx = i + elif s_sec > ts_sec + max_gap: + break + if best_idx >= 0 and best_dt <= max_gap: + return series[best_idx], best_dt + return None, None + + +def geodetic_forward(lat_deg, lon_deg, bearing_deg, dist_m): + """ + Compute destination point given start lat/lon, bearing (deg from North), distance (m). + Flat-earth approximation valid for dist < 500m. + """ + bearing_rad = math.radians(bearing_deg) + lat_rad = math.radians(lat_deg) + dlat = dist_m * math.cos(bearing_rad) / R_EARTH + dlon = dist_m * math.sin(bearing_rad) / (R_EARTH * math.cos(lat_rad)) + auv_lat = lat_deg + math.degrees(dlat) + auv_lon = lon_deg + math.degrees(dlon) + return auv_lat, auv_lon + + +def haversine_dist(lat1, lon1, lat2, lon2): + """Distance in meters between two lat/lon points.""" + phi1, phi2 = math.radians(lat1), math.radians(lat2) + dphi = math.radians(lat2 - lat1) + dlam = math.radians(lon2 - lon1) + a = math.sin(dphi/2)**2 + math.cos(phi1)*math.cos(phi2)*math.sin(dlam/2)**2 + return 2 * R_EARTH * math.asin(math.sqrt(a)) + + +def find_nav_file_for_session(usbl_file, nav_dir): + """Match nav file by common timestamp prefix.""" + base = os.path.basename(usbl_file) + # e.g. 2026-03-24_09-28-44_USV003_usbl.csv -> 2026-03-24_09-28-44_USV003 + prefix = base.replace('_usbl.csv', '') + nav_candidate = os.path.join(nav_dir, prefix + '_navigation_log.csv') + if os.path.exists(nav_candidate): + return nav_candidate + return None + + +def main(): + import argparse + parser = argparse.ArgumentParser() + parser.add_argument('--usbl', required=True, help='combined_usbl.csv') + parser.add_argument('--nav-dir', required=True, help='Directory with *_navigation_log.csv') + parser.add_argument('--output', default='combined_nav_usbl.csv') + parser.add_argument('--max-gap', type=float, default=1.0, help='Max timestamp gap in seconds') + args = parser.parse_args() + + # Load USBL records + usbl_records = [] + with open(args.usbl) as f: + reader = csv.DictReader(f) + for row in reader: + usbl_records.append(row) + + print("USBL records loaded: %d" % len(usbl_records)) + + # Group by source_file + from collections import defaultdict + by_source = defaultdict(list) + for rec in usbl_records: + by_source[rec.get('source_file', '')].append(rec) + + # Load nav files + nav_data = {} # source_file -> (nav_points, nav_points_sec, heading_series, heading_sec) + nav_dir = args.nav_dir + + for source_file in by_source.keys(): + # Try to match nav file + prefix = source_file.replace('_usbl.csv', '') + nav_file = os.path.join(nav_dir, prefix + '_navigation_log.csv') + if not os.path.exists(nav_file): + # Try to find by scanning directory + matched = None + for fn in os.listdir(nav_dir): + if prefix in fn and 'navigation_log' in fn: + matched = os.path.join(nav_dir, fn) + break + if matched is None: + print("WARNING: no nav file found for %s" % source_file) + nav_data[source_file] = ([], [], [], []) + continue + nav_file = matched + nav_points, heading_series = parse_nav_log(nav_file) + nav_points_sec = [ts_to_seconds(pt[0]) for pt in nav_points] + heading_sec = [ts_to_seconds(h[0]) for h in heading_series] + nav_data[source_file] = (nav_points, nav_points_sec, heading_series, heading_sec) + print("Nav loaded for %s: %d pos points, %d heading points" % ( + source_file, len(nav_points), len(heading_series))) + + # Process and write output + output_rows = [] + stats_match = 0 + stats_nomatch = 0 + + for source_file, records in by_source.items(): + nav_points, nav_points_sec, heading_series, heading_sec = nav_data.get( + source_file, ([], [], [], [])) + + for rec in records: + ts_str = rec.get('Timestamp', '') + ts_sec = ts_to_seconds(ts_str) + + dist_str = rec.get('Dist', '') + azimuth_str = rec.get('Azimuth', '') + elev_str = rec.get('Elev', '') + snr_str = rec.get('SNR', '') + + try: + dist = float(dist_str) if dist_str else float('nan') + azimuth = float(azimuth_str) if azimuth_str else float('nan') + elev = float(elev_str) if elev_str else float('nan') + snr = float(snr_str) if snr_str else float('nan') + except ValueError: + dist, azimuth, elev, snr = float('nan'), float('nan'), float('nan'), float('nan') + + nav_pt, dt = find_nearest(ts_sec, nav_points_sec, nav_points, args.max_gap) + hdg_pt, _ = find_nearest(ts_sec, heading_sec, heading_series, args.max_gap) + + if nav_pt is None: + stats_nomatch += 1 + lat_usv, lon_usv, heading_usv = float('nan'), float('nan'), float('nan') + auv_lat, auv_lon = float('nan'), float('nan') + else: + stats_match += 1 + _, lat_usv, lon_usv = nav_pt + heading_usv = hdg_pt[1] if hdg_pt is not None else float('nan') + + # Calculate AUV absolute position + # Azimuth from USBL is relative to USV heading (yaw convention) + # AUV bearing from North = (USV Heading + azimuth_deg) mod 360 + if not (math.isnan(dist) or math.isnan(azimuth) or + math.isnan(lat_usv) or math.isnan(heading_usv)): + horiz_dist = dist * math.cos(math.radians(elev)) if not math.isnan(elev) else dist + abs_bearing = (heading_usv + azimuth) % 360 + auv_lat, auv_lon = geodetic_forward(lat_usv, lon_usv, abs_bearing, horiz_dist) + else: + auv_lat, auv_lon = float('nan'), float('nan') + + output_rows.append({ + 'Timestamp': ts_str, + 'lat': '%.7f' % lat_usv if not math.isnan(lat_usv) else '', + 'lon': '%.7f' % lon_usv if not math.isnan(lon_usv) else '', + 'Heading': '%.2f' % heading_usv if not math.isnan(heading_usv) else '', + 'Dist': '%.4f' % dist if not math.isnan(dist) else '', + 'Azimuth': '%.4f' % azimuth if not math.isnan(azimuth) else '', + 'Elev': '%.4f' % elev if not math.isnan(elev) else '', + 'SNR': '%.4f' % snr if not math.isnan(snr) else '', + 'auv_lat': '%.7f' % auv_lat if not math.isnan(auv_lat) else '', + 'auv_lon': '%.7f' % auv_lon if not math.isnan(auv_lon) else '', + 'nav_dt_s': '%.3f' % dt if dt is not None else '', + }) + + print("\n=== Merge stats ===") + print("Matched: %d No nav match: %d" % (stats_match, stats_nomatch)) + + with open(args.output, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['Timestamp', 'lat', 'lon', 'Heading', 'Dist', 'Azimuth', 'Elev', 'SNR', + 'auv_lat', 'auv_lon', 'nav_dt_s']) + for row in output_rows: + writer.writerow([ + row['Timestamp'], row['lat'], row['lon'], row['Heading'], + row['Dist'], row['Azimuth'], row['Elev'], row['SNR'], + row['auv_lat'], row['auv_lon'], row['nav_dt_s'] + ]) + + print("Output: %s (%d rows)" % (args.output, len(output_rows))) + + # Sample output + if output_rows: + print("\n=== Sample (first 5 rows) ===") + print("Timestamp,lat,lon,Heading,Dist,Azimuth,Elev,SNR,auv_lat,auv_lon") + for row in output_rows[:5]: + print("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s" % ( + row['Timestamp'], row['lat'], row['lon'], row['Heading'], + row['Dist'], row['Azimuth'], row['Elev'], row['SNR'], + row['auv_lat'], row['auv_lon'])) + + # AUV position stats + auv_lats = [float(r['auv_lat']) for r in output_rows if r['auv_lat']] + auv_lons = [float(r['auv_lon']) for r in output_rows if r['auv_lon']] + usv_lats = [float(r['lat']) for r in output_rows if r['lat']] + usv_lons = [float(r['lon']) for r in output_rows if r['lon']] + + if auv_lats and usv_lats: + print("\n=== Position stats ===") + print("AUV lat range: %.6f - %.6f" % (min(auv_lats), max(auv_lats))) + print("AUV lon range: %.6f - %.6f" % (min(auv_lons), max(auv_lons))) + print("USV lat range: %.6f - %.6f" % (min(usv_lats), max(usv_lats))) + + # Average USV-AUV distance + dists = [] + for r in output_rows: + if r['lat'] and r['auv_lat']: + d = haversine_dist(float(r['lat']), float(r['lon']), + float(r['auv_lat']), float(r['auv_lon'])) + dists.append(d) + if dists: + print("Avg USV-AUV dist: %.2f m (min=%.2f max=%.2f)" % ( + sum(dists)/len(dists), min(dists), max(dists))) + + +if __name__ == '__main__': + main() diff --git a/tools/parse_kogger_usbl.py b/tools/parse_kogger_usbl.py new file mode 100644 index 0000000..bf5a701 --- /dev/null +++ b/tools/parse_kogger_usbl.py @@ -0,0 +1,242 @@ +#!/usr/bin/env python3 +""" +parse_kogger_usbl.py — Decode Kogger USBL raw CSV files (SBP protocol) + +Protocol spec: + Frame: BB 55 | ROUTE | MODE | ID | LENGTH | PAYLOAD[LENGTH] | CHKSUM1 | CHKSUM2 + Checksum: Fletcher-16 over (ROUTE + MODE + ID + LENGTH + PAYLOAD) + +Frame ID 0x65 = ID_USBL_SOLUTION + Struct (packed, little-endian): + id(U1) role(U1) watermark(U2) + timestamp_us(S8) ping_counter(U4) carrier_counter(S8) + distance_m(F4) distance_unc(F4) + azimuth_deg(F4) azimuth_unc(F4) + elevation_deg(F4) elevation_unc(F4) + snr(F4) + x_m(F4) y_m(F4) latitude_deg(D8) longitude_deg(D8) depth_m(F4) + usbl_yaw(F4) usbl_pitch(F4) usbl_roll(F4) + usbl_latitude(D8) usbl_longitude(D8) last_iTOW(U4) + beacon_n(F4) beacon_e(F4) + [+ 32 bytes extra NaN padding observed in firmware v2] + +Timestamp assignment: timestamp from the last RECEIVED packet before the frame sync byte. + +Usage: + python3 parse_kogger_usbl.py FILE1.csv [FILE2.csv ...] -o combined_usbl.csv +""" + +import ast +import csv +import io +import os +import struct +import sys +import collections +import math + +SYNC = b"\xbb\x55" +ID_USBL_SOLUTION = 0x65 + +USBL_FMT = ' len(buf): + continue + route = buf[pos+2] + mode = buf[pos+3] + frame_id = buf[pos+4] + length = buf[pos+5] + if pos + 6 + length + 2 > len(buf): + continue + payload = buf[pos+6:pos+6+length] + chk1_a = buf[pos+6+length] + chk2_a = buf[pos+6+length+1] + + c1, c2 = fletcher16(buf[pos+2:pos+6+length]) + if c1 != chk1_a or c2 != chk2_a: + continue + + valid_total += 1 + frame_id_counter[frame_id] += 1 + + if frame_id != ID_USBL_SOLUTION: + continue + + # Get timestamp: last ts_offset entry before this position + ts = ts_offsets[0][1] if ts_offsets else "" + for off, t in ts_offsets: + if off <= pos: + ts = t + else: + break + + if len(payload) < USBL_FMT_SIZE: + continue + + fields = struct.unpack_from(USBL_FMT, payload) + rec = { + 'Timestamp': ts, + 'usbl_id': fields[0], + 'usbl_role': fields[1], + 'usbl_timestamp_us': fields[3], + 'ping_counter': fields[4], + 'Dist': fields[6], + 'dist_unc': fields[7], + 'Azimuth': fields[8], + 'azimuth_unc': fields[9], + 'Elev': fields[10], + 'elev_unc': fields[11], + 'SNR': fields[12], + 'x_m': fields[13], + 'y_m': fields[14], + 'usbl_lat_computed': fields[15], + 'usbl_lon_computed': fields[16], + 'depth_m': fields[17], + 'usbl_yaw': fields[18], + 'usbl_pitch': fields[19], + 'usbl_roll': fields[20], + 'source_file': os.path.basename(csv_file), + } + usbl_records.append(rec) + + return usbl_records, frame_id_counter, valid_total, len(positions) + + +def main(): + import argparse + parser = argparse.ArgumentParser(description='Decode Kogger USBL raw CSV files') + parser.add_argument('files', nargs='+', help='Input *_usbl.csv files') + parser.add_argument('-o', '--output', default='combined_usbl.csv', help='Output CSV') + args = parser.parse_args() + + all_records = [] + total_sync = 0 + total_valid = 0 + global_id_counter = collections.Counter() + + for csv_file in args.files: + print("Processing: %s" % csv_file) + records, id_counter, valid, n_sync = parse_usbl_csv(csv_file) + all_records.extend(records) + total_sync += n_sync + total_valid += valid + global_id_counter.update(id_counter) + print(" Sync markers: %d Valid frames: %d USBL records: %d" % (n_sync, valid, len(records))) + + print("\n=== Summary ===") + print("Total sync markers (BB55): %d" % total_sync) + print("Total valid frames: %d" % total_valid) + print("Total USBL_SOLUTION records: %d" % len(all_records)) + print("\nFrame ID histogram:") + for fid, cnt in sorted(global_id_counter.items(), key=lambda x: -x[1]): + name = "USBL_SOLUTION" if fid == 0x65 else ("USBL_CONTROL" if fid == 0x68 else "UNKNOWN") + print(" ID=0x%02x(%3d) %-15s : %d frames" % (fid, fid, name, cnt)) + + if all_records: + dists = [r['Dist'] for r in all_records if not math.isnan(r['Dist'])] + azs = [r['Azimuth'] for r in all_records if not math.isnan(r['Azimuth'])] + snrs = [r['SNR'] for r in all_records if not math.isnan(r['SNR'])] + if dists: + dists_sorted = sorted(dists) + n = len(dists_sorted) + median = dists_sorted[n//2] + print("\nDist (m): min=%.2f median=%.2f max=%.2f" % (min(dists), median, max(dists))) + if azs: + print("Azimuth : min=%.2f max=%.2f" % (min(azs), max(azs))) + if snrs: + print("SNR : min=%.2f max=%.2f" % (min(snrs), max(snrs))) + + # Write output CSV + with open(args.output, 'w', newline='') as f: + writer = csv.writer(f) + writer.writerow(['Timestamp', 'Dist', 'Azimuth', 'Elev', 'SNR', 'FrameID', + 'x_m', 'y_m', 'depth_m', 'dist_unc', 'azimuth_unc', 'elev_unc', + 'usbl_yaw', 'usbl_pitch', 'usbl_roll', 'source_file']) + for r in all_records: + writer.writerow([ + r['Timestamp'], + '' if math.isnan(r['Dist']) else '%.4f' % r['Dist'], + '' if math.isnan(r['Azimuth']) else '%.4f' % r['Azimuth'], + '' if math.isnan(r['Elev']) else '%.4f' % r['Elev'], + '' if math.isnan(r['SNR']) else '%.4f' % r['SNR'], + '0x65', + '' if math.isnan(r['x_m']) else '%.4f' % r['x_m'], + '' if math.isnan(r['y_m']) else '%.4f' % r['y_m'], + '' if math.isnan(r['depth_m']) else '%.4f' % r['depth_m'], + '%.4f' % r['dist_unc'], + '%.4f' % r['azimuth_unc'], + '%.4f' % r['elev_unc'], + '%.4f' % r['usbl_yaw'], + '%.4f' % r['usbl_pitch'], + '%.4f' % r['usbl_roll'], + r['source_file'], + ]) + + print("\nOutput: %s (%d records)" % (args.output, len(all_records))) + + +if __name__ == '__main__': + main() diff --git a/tools/parse_usv_nav.py b/tools/parse_usv_nav.py index 0926d16..0ba4fc7 100644 --- a/tools/parse_usv_nav.py +++ b/tools/parse_usv_nav.py @@ -1,24 +1,39 @@ #!/usr/bin/env python3 -"""Parse USV long-format CSV → track.geojson + points.json""" +"""Parse USV long-format CSV → track.geojson + points.json + manifest.json +v2: multi-session support via --input-dir, retro-compat with --input (single file) +""" import argparse import csv +import glob import json import os import sys from collections import defaultdict +from datetime import datetime, timezone -MAX_SLIDER_POINTS = 5000 +MAX_SLIDER_POINTS = 10000 def parse_args(): - p = argparse.ArgumentParser(description="Parse USV nav CSV") - p.add_argument("--input", required=True, help="CSV navigation log") + p = argparse.ArgumentParser(description="Parse USV nav CSV v2") + g = p.add_mutually_exclusive_group(required=True) + g.add_argument("--input", help="Single CSV navigation log (v1 compat)") + g.add_argument("--input-dir", help="Directory: glob *navigation_log*.csv") p.add_argument("--output", required=True, help="Output directory") return p.parse_args() +def find_csvs(input_dir): + pattern = os.path.join(input_dir, "*navigation_log*.csv") + files = sorted(glob.glob(pattern)) + if not files: + print(f"No navigation_log CSVs found in {input_dir}", file=sys.stderr) + sys.exit(1) + return files + + def load_csv(path): - """Load long-format CSV into {timestamp: {field: value}}""" + """Load long-format CSV → {timestamp: {field: value}}""" rows_by_ts = defaultdict(dict) with open(path, newline="", encoding="utf-8") as f: reader = csv.DictReader(f) @@ -41,13 +56,26 @@ def get_float(d, *keys): return None -def build_points(rows_by_ts): - """Build sorted list of {t, lat, lon, heading} where lat/lon valid.""" - # We need to track last known lat/lon/heading per timestamp cluster. - # Strategy: walk timestamps in order, emit a point each time we see a Lat or Lon update. - # Accumulate state across timestamps. - timestamps = sorted(rows_by_ts.keys()) +def ts_to_ms(ts_str): + """Convert ISO-like timestamp string to epoch ms (UTC).""" + # Try formats: '2026-03-24 09:04:07.123456' or '2026-03-24T09:04:07.123456' + for fmt in ( + "%Y-%m-%dT%H:%M:%S.%f", + "%Y-%m-%dT%H:%M:%S", + "%Y-%m-%d %H:%M:%S.%f", + "%Y-%m-%d %H:%M:%S", + ): + try: + dt = datetime.strptime(ts_str, fmt).replace(tzinfo=timezone.utc) + return int(dt.timestamp() * 1000) + except ValueError: + continue + return None + +def build_points(rows_by_ts, source_name): + """Build sorted list of {t, t_ms, lat, lon, heading, source}.""" + timestamps = sorted(rows_by_ts.keys()) state = {} points = [] @@ -55,7 +83,6 @@ def build_points(rows_by_ts): updates = rows_by_ts[ts] state.update(updates) - # Only emit point if we have both Lat and Lon from this or earlier ts lat = get_float(state, "Lat", "RAW_Lat") lon = get_float(state, "Lon", "RAW_Lon") heading = get_float(state, "Heading", "Yaw") @@ -64,7 +91,6 @@ def build_points(rows_by_ts): continue if lat == 0.0 and lon == 0.0: continue - # GPS_RAW_INT fallback (1e-7 degrees) if abs(lat) < 1 and abs(lon) < 1: raw_lat = get_float(state, "GPS_RAW_INT_lat") raw_lon = get_float(state, "GPS_RAW_INT_lon") @@ -74,87 +100,200 @@ def build_points(rows_by_ts): else: continue - # Only emit if Lat or Lon just updated (reduce duplicate consecutive points) if "Lat" in updates or "Lon" in updates or "RAW_Lat" in updates or "RAW_Lon" in updates: + t_ms = ts_to_ms(ts) points.append({ "t": ts, + "t_ms": t_ms, "lat": round(lat, 8), "lon": round(lon, 8), "heading": round(heading, 2) if heading is not None else None, + "source": source_name, }) return points -def sample_points(points, max_n): - if len(points) <= max_n: +def sample_points_session(points, max_total, n_sessions): + """Sample per session, always keeping first+last point of each session.""" + if not points: return points - step = len(points) / max_n - return [points[int(i * step)] for i in range(max_n)] + quota = max(10, max_total // max(n_sessions, 1)) + if len(points) <= quota: + return points + + step = (len(points) - 2) / max(quota - 2, 1) + sampled = [points[0]] + for i in range(1, quota - 1): + sampled.append(points[min(int(1 + i * step), len(points) - 2)]) + sampled.append(points[-1]) + return sampled -def write_geojson(points, path): - coords = [[p["lon"], p["lat"]] for p in points] - geojson = { - "type": "FeatureCollection", - "features": [{ +def session_bbox(points): + lats = [p["lat"] for p in points] + lons = [p["lon"] for p in points] + return [min(lons), min(lats), max(lons), max(lats)] + + +def write_outputs(all_sessions, output_dir): + """Write track.geojson, points.json, manifest.json.""" + os.makedirs(output_dir, exist_ok=True) + + # Colors for multi-track + COLORS = ["#00b4d8", "#e94560", "#06d6a0", "#ffd166", "#a855f7", "#f97316"] + + # ── track.geojson (MultiLineString per session) ── + features = [] + for i, sess in enumerate(all_sessions): + coords = [[p["lon"], p["lat"]] for p in sess["points"]] + features.append({ "type": "Feature", "geometry": {"type": "LineString", "coordinates": coords}, "properties": { - "start": points[0]["t"] if points else None, - "end": points[-1]["t"] if points else None, - "n_points": len(points), + "source_file": sess["source_file"], + "source_name": sess["source_name"], + "start_iso": sess["t_start"], + "end_iso": sess["t_end"], + "n_points": len(coords), + "color": COLORS[i % len(COLORS)], + "session_index": i, } - }] - } - with open(path, "w") as f: + }) + + geojson = {"type": "FeatureCollection", "features": features} + geo_path = os.path.join(output_dir, "track.geojson") + with open(geo_path, "w") as f: json.dump(geojson, f) - print(f" track.geojson: {len(coords)} coords → {path}") + print(f" track.geojson: {len(features)} sessions → {geo_path}") + + # ── points.json (all sampled, sorted by t_ms) ── + all_points = [] + n_sessions = len(all_sessions) + for sess in all_sessions: + sampled = sample_points_session(sess["points"], MAX_SLIDER_POINTS, n_sessions) + all_points.extend(sampled) + + # Sort by t_ms (sessions may overlap in time) + all_points.sort(key=lambda p: (p["t_ms"] or 0)) + + pts_path = os.path.join(output_dir, "points.json") + with open(pts_path, "w") as f: + json.dump(all_points, f) + print(f" points.json: {len(all_points)} points (sampled) → {pts_path}") + + # ── manifest.json ── + all_lats = [p["lat"] for s in all_sessions for p in s["points"]] + all_lons = [p["lon"] for s in all_sessions for p in s["points"]] + global_bbox = [min(all_lons), min(all_lats), max(all_lons), max(all_lats)] + + all_t_ms = [p["t_ms"] for s in all_sessions for p in s["points"] if p["t_ms"]] + t_min_ms = min(all_t_ms) if all_t_ms else None + t_max_ms = max(all_t_ms) if all_t_ms else None + + sessions_meta = [] + for sess in all_sessions: + sessions_meta.append({ + "file": sess["source_file"], + "source_name": sess["source_name"], + "n_points": sess["n_points_raw"], + "t_start": sess["t_start"], + "t_end": sess["t_end"], + "t_start_ms": sess["t_start_ms"], + "t_end_ms": sess["t_end_ms"], + "bbox": sess["bbox"], + }) + + manifest = { + "generated_at": datetime.now(timezone.utc).isoformat(), + "n_sessions": len(all_sessions), + "sessions": sessions_meta, + "global_bbox": global_bbox, + "t_min": all_sessions[0]["t_start"] if all_sessions else None, + "t_max": all_sessions[-1]["t_end"] if all_sessions else None, + "t_min_ms": t_min_ms, + "t_max_ms": t_max_ms, + "n_points_total_raw": sum(s["n_points_raw"] for s in all_sessions), + "n_points_sampled": len(all_points), + } + + mf_path = os.path.join(output_dir, "manifest.json") + with open(mf_path, "w") as f: + json.dump(manifest, f, indent=2) + print(f" manifest.json → {mf_path}") + + return manifest -def write_points_json(points, path): - with open(path, "w") as f: - json.dump(points, f) - print(f" points.json: {len(points)} points → {path}") +def print_global_stats(manifest, all_sessions): + print(f"\n=== Stats globales ===") + print(f" Sessions: {manifest['n_sessions']}") + print(f" Points bruts: {manifest['n_points_total_raw']}") + print(f" Points sampled: {manifest['n_points_sampled']}") + print(f" t_min: {manifest['t_min']}") + print(f" t_max: {manifest['t_max']}") + bb = manifest["global_bbox"] + print(f" Bbox: lon [{bb[0]:.5f}, {bb[2]:.5f}] lat [{bb[1]:.5f}, {bb[3]:.5f}]") + if manifest["t_min_ms"] and manifest["t_max_ms"]: + dur_s = (manifest["t_max_ms"] - manifest["t_min_ms"]) / 1000 + h, rem = divmod(int(dur_s), 3600) + m, s = divmod(rem, 60) + print(f" Durée totale: {h}h{m:02d}m{s:02d}s") + for i, sess in enumerate(all_sessions): + print(f" Session {i+1}: {sess['source_name']} {sess['n_points_raw']} pts {sess['t_start']} → {sess['t_end']}") -def print_stats(points): +def process_file(path): + source_name = os.path.basename(path) + print(f"\nChargement {source_name} ...") + rows = load_csv(path) + print(f" {len(rows)} timestamps uniques") + points = build_points(rows, source_name) if not points: - print("No valid points found!") - return + print(f" WARNING: aucun point GPS valide dans {source_name}") + return None + + # Filter points without t_ms + points = [p for p in points if p["t_ms"] is not None] lats = [p["lat"] for p in points] lons = [p["lon"] for p in points] - print(f"\n=== Stats ===") - print(f" N points (full): {len(points)}") - print(f" First ts: {points[0]['t']}") - print(f" Last ts: {points[-1]['t']}") - print(f" Bbox lat: {min(lats):.6f} → {max(lats):.6f}") - print(f" Bbox lon: {min(lons):.6f} → {max(lons):.6f}") - headings = [p["heading"] for p in points if p["heading"] is not None] - print(f" Heading data: {'yes' if headings else 'no'} ({len(headings)} values)") + return { + "source_file": path, + "source_name": source_name, + "points": points, + "n_points_raw": len(points), + "t_start": points[0]["t"], + "t_end": points[-1]["t"], + "t_start_ms": points[0]["t_ms"], + "t_end_ms": points[-1]["t_ms"], + "bbox": [min(lons), min(lats), max(lons), max(lats)], + } def main(): args = parse_args() - os.makedirs(args.output, exist_ok=True) - print(f"Loading {args.input} ...") - rows = load_csv(args.input) - print(f" {len(rows)} unique timestamps") + if args.input: + csv_files = [args.input] + else: + csv_files = find_csvs(args.input_dir) - points = build_points(rows) - print_stats(points) + print(f"Fichiers trouvés: {len(csv_files)}") + for f in csv_files: + print(f" {os.path.basename(f)}") - if not points: + all_sessions = [] + for path in csv_files: + sess = process_file(path) + if sess: + all_sessions.append(sess) + + if not all_sessions: + print("Aucune session valide.", file=sys.stderr) sys.exit(1) - write_geojson(points, os.path.join(args.output, "track.geojson")) - - sampled = sample_points(points, MAX_SLIDER_POINTS) - if len(sampled) < len(points): - print(f" Sampled {len(sampled)} points for slider (from {len(points)})") - write_points_json(sampled, os.path.join(args.output, "points.json")) - + manifest = write_outputs(all_sessions, args.output) + print_global_stats(manifest, all_sessions) print("\nDone.") diff --git a/tools/usbl_to_json.py b/tools/usbl_to_json.py new file mode 100644 index 0000000..a3ed7af --- /dev/null +++ b/tools/usbl_to_json.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python3 +"""usbl_to_json.py - Convert combined_nav_usbl.csv to usbl.json + auv_track.geojson""" +import csv, json, math, argparse, statistics +from datetime import datetime, timezone +from pathlib import Path + +ROOT = Path(__file__).resolve().parent.parent +DEFAULT_INPUT = ROOT / "output" / "combined_nav_usbl.csv" +OUTPUT_DIR = ROOT / "output" + +def parse_ts(s): + for fmt in ("%Y-%m-%d %H:%M:%S.%f", "%Y-%m-%d %H:%M:%S"): + try: + dt = datetime.strptime(s.strip(), fmt).replace(tzinfo=timezone.utc) + return int(dt.timestamp() * 1000) + except ValueError: + pass + return None + +def haversine_m(lat1, lon1, lat2, lon2): + R = 6371000.0 + phi1, phi2 = math.radians(lat1), math.radians(lat2) + dphi = math.radians(lat2 - lat1) + dlam = math.radians(lon2 - lon1) + a = math.sin(dphi/2)**2 + math.cos(phi1)*math.cos(phi2)*math.sin(dlam/2)**2 + return R * 2 * math.atan2(math.sqrt(a), math.sqrt(1-a)) + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--input", default=str(DEFAULT_INPUT)) + ap.add_argument("--max-points", type=int, default=10000) + args = ap.parse_args() + + rows = [] + with open(args.input, newline="") as f: + reader = csv.DictReader(f) + for row in reader: + try: + dist = float(row["Dist"]) + auv_lat = float(row["auv_lat"]) + auv_lon = float(row["auv_lon"]) + except (ValueError, KeyError): + continue + if dist <= 0 or auv_lat == 0 or auv_lon == 0: + continue + t_ms = parse_ts(row["Timestamp"]) + if t_ms is None: + continue + rows.append({ + "t": row["Timestamp"].strip(), + "t_ms": t_ms, + "usv_lat": float(row["lat"]), + "usv_lon": float(row["lon"]), + "heading": float(row["Heading"]), + "dist": dist, + "az": float(row["Azimuth"]), + "elev": float(row["Elev"]), + "snr": float(row["SNR"]), + "auv_lat": auv_lat, + "auv_lon": auv_lon, + }) + + rows.sort(key=lambda r: r["t_ms"]) + n_raw = len(rows) + + # Sample if > max-points (preserve begin/end) + if n_raw > args.max_points: + step = n_raw / args.max_points + indices = set() + indices.add(0) + indices.add(n_raw - 1) + for i in range(1, args.max_points - 1): + indices.add(int(i * step)) + rows = [rows[i] for i in sorted(indices)] + + n = len(rows) + dists = [r["dist"] for r in rows] + snrs = [r["snr"] for r in rows] + auv_lats = [r["auv_lat"] for r in rows] + auv_lons = [r["auv_lon"] for r in rows] + + auv_bbox = [min(auv_lons), min(auv_lats), max(auv_lons), max(auv_lats)] + + out = { + "generated_at": datetime.now(timezone.utc).isoformat(), + "n_points": n, + "n_raw": n_raw, + "auv_bbox": auv_bbox, + "stats": { + "dist_min": round(min(dists), 3), + "dist_max": round(max(dists), 3), + "dist_median": round(statistics.median(dists), 3), + "snr_min": round(min(snrs), 4), + "snr_max": round(max(snrs), 4), + }, + "points": rows, + } + + usbl_out = OUTPUT_DIR / "usbl.json" + with open(usbl_out, "w") as f: + json.dump(out, f, separators=(",", ":")) + print(f"usbl.json: {n} points (raw={n_raw}) -> {usbl_out}") + + # AUV track GeoJSON + coords = [[r["auv_lon"], r["auv_lat"]] for r in rows] + geojson = { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "geometry": {"type": "LineString", "coordinates": coords}, + "properties": {"name": "AUV track (USBL projection)", "color": "#ff8800"}, + }] + } + track_out = OUTPUT_DIR / "auv_track.geojson" + with open(track_out, "w") as f: + json.dump(geojson, f, separators=(",", ":")) + print(f"auv_track.geojson: {len(coords)} coords -> {track_out}") + + # Sanity check: first point haversine vs USBL dist + r0 = rows[0] + hav = haversine_m(r0["usv_lat"], r0["usv_lon"], r0["auv_lat"], r0["auv_lon"]) + print(f"Sanity [0]: USV=({r0['usv_lat']:.6f},{r0['usv_lon']:.6f}) AUV=({r0['auv_lat']:.6f},{r0['auv_lon']:.6f}) hav={hav:.2f}m USBL_dist={r0['dist']:.2f}m diff={abs(hav-r0['dist']):.3f}m") + +if __name__ == "__main__": + main() diff --git a/vendor/Kogger-Protocol/Kogger SB protocol.odt b/vendor/Kogger-Protocol/Kogger SB protocol.odt new file mode 100644 index 0000000000000000000000000000000000000000..944b1097360d33c1cc0a0c8a5eb321c5c1c1153b GIT binary patch literal 45259 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ⅈsV@F1sb)7L< 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 OA@G3#cS*MRj`|-}JUL(h literal 0 HcmV?d00001 diff --git a/vendor/Kogger-Protocol/Kogger SB protocol.pdf b/vendor/Kogger-Protocol/Kogger SB protocol.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2eab23c39bd6d7c692b44aebb9d1a473634865f3 GIT binary patch literal 854437 zcma&MW3cX8x3)WnZQGv1wr$(CZQHhO&tcoPZChuq^`5i8I<N*UXjI+@`!{*5TmikMqD89UI5 zSm`?%3mF^Q8X5EOKsq`(80%X@x@9FROGj?d!FPSAf_qRYrDLe401v}+il5DMTdm9v z%nPn>QFm;WFu^?DyokG)WpNA-;Y%8F_qb=k#hW~FYW{u+EgiW^4XmimyeuUY&KRV^ zszNnQo>Bh@So$XTc-6RSV0NLlf!o;na`DwoiM%-8l8{$ks>F>p{b8=$kcwJ(^=H%p z!&CCCMa5DPQTlLGMN~zUNQj`%@EMFttmbJ}U2C7R;i!3$?XVTa#l1C?#D;X>VHF+U zw5Y|7oc>{ebdFjT$Cb@9R!&Q>u%OeOdyl%+%8Cj%G{LE&{4H~#TOm!X-%qMPz;2R) zkpf7iDz4KH66So{+Xs}|;=bM+wiN@EB3V=D*~_wo)k1=VDh0D0GXrN1KR7)DXInTy zKdh!jp)!+B?WCXVRv8F!?rDOMfiw`=KJ+8P7gm5QvH?)WDisjN$?)qbL>%7p3M_A% z4nzPKdW#d2CSV^o)e_gwW5BrNy2`76&{$~jHI^vo9z2{Z8GnnTUTct8RmObYV>D4< z+lIG?s}s?}=MomKW1!ZsJ>yQJNqaUR#jrhMzq3{tks(QSl4Px02Cz!9^8&Ihv=-)) zN^K?Wqw%uiP=e<;0%mM>axarApxC2sw$TzG!F17!x4Wv^H$u_fxSauK#Bgz|uFmbur z44Z1X`N5{wn5D+UagPF#lo|F3lz@1AWT9Nd8W#<2R}P2$Wx(^vo`E=;ApS(AJAq+$ zm1)#|4Kk=85h3VZ!_Go{7I@`Cd&)II-e0O@fdA{7fsN#2ff4onHcDy)y ze;gclSQBKFY(1~!-z~6KUT1#1R6f@Q?Ayt%tcd-Lwz3pcQ)(ycY1_LgZeHidm9TYw z6oYQ%RSu~@{*s5FkZTeM$gfpldxubOv-RQj>RHE8sckp^y4|~uJrFuP65{yD7Gx^! zZ4?BD9pcb(TZmHyCTWs;v_JXczIX5*kXcDZl+0I$V-Dl`zL~@J!TY`VtN0!qN>ATk zZG5#sITa1Z0J<$wxxmSZIchBnE%nunHnfXufUHjZdaeCHj9{Cv}#7z z@hcBGGkB|af5sMH{amK`KLc9l9}?KTpr7wpsF^$aNS>ds1Wi0Q7FUzr7mm z)bfn0)F@-U4P^r|1wM%fMc{iyOi76sR6^XPmn#njxlAgHOJ6Y%Yo=90c&3>F=YxC^ zhG;H!T3YQ9X`fiR4fde2E^3om9C${AmV}8VIIu7t|59CG^ZURL}* zC6;~1W4lq}lqoY(7=A%HFri)mxim0^yfC_m(peba>%LGGHwZYy2hZt-I)7|(F8zhk zner%U=85fa8!({(W=cf#BqqT$NpFNXPO2H$Cul1zr4*5Hv{)1%=eZYX)ch%Cg?dpz z#eCiNd9mhnD*Z5)X&5=(Zik|au^b6sGQ7T%GCiRbT!r?mdYMjj9#3-hR5aovM6;;Y zs6IZ}+r(5rMmz~`D0FiyF48W_oH2)+ePw)*szAmZCqCC^k;W_0?9IkC0(_^YlXNLJEg^3LjDpaL;y{0Bpc2lgIxqYl)aA4J$y!h<#Nz{8C@Qs~W4y;iAdx`bw^A&rGF zi+J1tklvia<5#QzK;ziCV&Frpab)7&|`8xT^ql zmk0SgGpE_-G9`xX)Duvaml07;u8BkV`2Mi_3?9d3QyiA^7gn`Tm8_NcyMAUye+suF zVmc5sQ$wlvSs5kcf^`Ub=!lUGVbG;c7&BFY!HIdOcxjfIB`N&)vao`;Ix@jwyUT+>kG8ZHt#11@= z%z6_M*_&vP85p~J&GE2Yn=m*4vI1E0VfNNW8)A@T*dDuX9eDlJy`I3N3QVp+5YMzpAB-( zacmxyh%oRR2-bc@7DW~1R>etvHu%L&FmefLt-OUnya6K}njGtmW5*a7cf`eoS9QjM z_CaD!1vtZ$_X+JXvBigrwkz1N&1>&YQZ8}jCfB<`j$NG>#j0ePRyj54y*TpBgAE9* z!#EJkz%Vb@echg0tlIjObt0Yy5mS@*K+U$|?xK>l!hi3iC8NJofdcxi{Mj1uol%U8 znSNP~E|1%CKZiN)Mx$8lRlG918Kot`SIy(5D{>hkQBJB(wpGJhl?fmY@gO5j7#9|? zO#XS0TZr2i;g~4d`0^iEPDg%%mq|XHvF%(}7yeK1nSk}WOjdGU7H;`TuUY`H+V6)% z4UetA+A|^rwiha{BK%eR72`@6rbtL)JS7^L~w|3TkOe1(PzagT3`jg;s4;m|Jv(6-b>HM$oOAAOwYvj-;9`^ ziT!`!#LXI#vDmE$-8Z#n_^d#j1}I~sSm@AnGsK`?bzOY0BCry~AoNxsYv8v#vdZya zHOF>MEx=VRn!iymo|X#DU1mR@AFp5Ek9Kmme;y*L(cZQivOzBvGr=ABcdUCuvprkj{J+_$hxAJZCHiTudSaZAG+viOls{K#j zpTvIpxdB6)F8BcbUfhcWgN5`z1f4g4vvE=<`tKd$32I+VPHt*qT~=a{AMIiRtyiVp z{#2D93WIU-D)f3&R5c<+guTcnOV2&rq9Dh^GAJ~?IFqzI#CIlvr*SRIH~E;VN7GrdqdMvswOF;O`gf9{(9!nQFygz|l3H}Y)n@HZLUR;Qw*+t@T z1Z^WLVO8D?*e{%Lm^y-{*q{93&HrUbYbuP>hW1rcCl}sTFD^Hd3BwUA<5R0dyo__c z=!8&uc*~!Z7tI{;J_d7C>~DCL^LA`T7?b{aG47tLwP@VPjIa!^xr4ls!&1@ji zTl)_BKpQeX9*?1>?;!aJ+DdEA{FHdnI67e{Z-}@C+^I4L0XmSt(No*lsTfX{mU4_N z3ATGF+LsW0o0s$#znD~7oI%iT!AxJ=j&jE^E-5mh#C=s08WLI|nWr86>-5W> ze}x1IiuC{}d2*E19dJ-IR<o_~6V5tddqCFW zMqHnu+`Vd^XO)L>KjFCM*)F415?oJAzq|6RMA$4ijn44V0;E|&2E`6G*m|}Y4FD+b zZG9d=%AtH&IY^OM%(Iy>VI3K0yz*#F%;iObPA6LXQHpLT17mJ3-NKttjdde4PNX ztr8kkgRHrsg?rYi832mjzBm@Cz&klmj3NJ1AhuW%z9^RTSE-u`qgw>~%xNW3f3+%q z+9`Zl|6l^Sc^$p*O7%?q)+Ut*sz)U4K{G#kS1Ou#!Y;j5yXfSHpguT#xp|}YrpYWk zxcbUBnNmKoInPzjAoBRR3p5he&bxQIBsZhl){}u(B~4SDgD0IAGcOP3HAK{0r)nr& zby#8oLX#ebAv>s=La>`UP85)g$@?N{$Db#FTh3K81+8)e#w{^eK3VQHXmbO7e>+pB zVd-wo6c`ejP0c?>V$|JB1cE`LHJd+SDDtNdCOS$?Fh^3yEr#zM3|D?ufX4vSAmQWM zm}7rZI3(qw>%A>ViHeX^IV`!q+?@hzF2QP?Sh#8^q)4oAn%dzkaCma*WoK5K}o1MQlnisxFmWTB7Ti$*JSlvytYsea^7|YpUvH& ztGo@QM8DBBnUJ5-Z)0SVSi@IXY6{M%F@#w2N1N%#ZAd*JjD4p0S<0MIT?=Em1wC3I z&|(H6(qu(9?j2`&Kh3p|(k`HZF_e7{oW6PmV%>2+*sACFq9gs#c=ckX*};1j>jQV4 zMP5ypl=a3_wZpf}RF@?0W*g;4{(k!of&;n0ak4N&%!vdoJGU6>dsoXk7G^jA@8=>=%3Klp-x+z1wuhqk&wwIh++# zmemFQcphXJ8r;XCZLsc9fEK6sJ z6czgV2k5r**uI+RFJF{H<@nhNaK07w5?Eiu96J|j8RtyVrEKp+!ag1TRbyBzMHLkH ztQZw(8O^6zNhVN@rqv|f1+tEp@y!Y4kU5*Q&6J8~skidV=ediGl*)6slKV+zM@U@v z)>-xCIEc(Rtv~3pM&(r%i?I=9YviX%5C}S})$TbOSU1%??lW7_{YG#nU@&q*EXvRu z@d?^BE-4QoOz?lg$7j5voYMW3r`v-KS)|)%?Z#8lFZsq3?|$TN3ty!s*aY=eTsx6yZ@=~~Hn-rl3?fvWi+v4=xRUY>StKi`SA%nC?DahAQYt6X zF=P0nC=!96p&2<*2rIGK3SD2CG&*9$3%&ycTFKxoaoSg*0#mFJRKZ$IkNry$LmlFl zHxNf+=)4w*fD7FOJ`2$#_W6@xT`dIjU7Pj#M>$?aVs^HMcjgXQPPz{+#ZZ2n-X1sy zdo^Dv*UQ}?_Gse4g|~V^F9g3gU-XwqQfkXqs$Wjs^^BNJh`bdUuc7`Q_`Gg z8~S7_PM(^12kk~>hSry7`|Eoi8gDtW2WzQJrQX)6j+%4BO|bf=%-u)r^S#79!&|qR zKbBYe?dUBw_)23%ZMk|OpT1kUC4UwaYG~>pa|m_3q(VG>8IKs;x5JWfvbz~9K8A`I zu-Pk4??A(wCSlNLzuWgk|LdVde&VQZEflh+=kw1f+%NV^)XmErfNiH&em8&(*6F?o zxT))Ich>=!bd#4=#}OTNH=?%ypPLnBr;FSj=na8*3M9Y3~Bl8PN`TFbWj za(GXU^R|gTLG~74R9GfgNh+4j$^f~;%#pGX0yR*R_yTSl;DoDYx8HQG+kN4I)ysZd<^ErEENaJ zfRfpAoYHyfi9ZU~87Pd@6+IOI`I`3Z;%r(?Q^DFY7CUqWS~GAbEl;C z>!eTq8dkq$NI!rna__maEz*xms}d~iK?$NbYw|c>sIBQpn*m#Z2G^53=YSDExb!VgN_nt5i zsC;q}<|LYb4C*g-`RW@C7ITLe1%VD)=fk`d#_nze_Q&117b{SyGWLxWXR{0OWFMdI zRt)$Xo$);}_=-O?ew$|BKod{Z6Rr+z^(>~fFV|BVaFAMRsiSH9e)QInV#9(p)LsNc zqRP%of@&XWcQZB_oZmJTVNitO`)w5+h=76|8(bd~+*i}W_84qqgB}vJUj`$SpQuO) zEAA@8zbREK=D#^cPaA|7pfP1&Z<*Ds&Cdv16gamkz|Z&{V6?V(!@;xX=U|0jYGRaUGJik%BFbwz;2(AZ2|0%>)KNE_N>MOkd7{g z96x@Go$E!|+!@nQLG*X}nWYm8&qi`LrcVBu>n^DHlXY$_@;m?@*ntLca82$#kzg4J zzN>fXKEDt!-LyVvVygXcEYhkte|FU}U?&}#856H}%M6B>ZfG4H8u59e)6VmQWvT>x z3lr8Tyaj-oJ45eS13Wgp=q`|pK+5w4W7r6k#K$|7gmm{(Ba{SibEK;B+4tz+bwdy4 zIIEf+^hv8*Xi#9^(+?H-jw-|P(!&Q=ft!%gd>R=Y{{S>5ej-tumfc^C3^)3KHUj*HO1w`(dxs%nHs5u9FG}G6^sI`uf1}sV2EHn{-AE zv#tppNN4r(!mhT+f4jLoe?7X$#oPXRZf5Ud$NM%{D%1$}Hte#lZ+ZdQt0J4&E}_%+OQNTLYO=G?!rq85?!76gS&7jq?0 zA);1h2NV&^WeQrL0tBn*-4+BlwbD-LFp;h0vP!y!x_{5{xGbjncL9}2ss7qT`wl%# zbFsNEU&IYJh2pPbpd~wuqa#m+Lr<^EtyX|@v{rySdoY<|wosXJ4z0_mR95;(4y3DY z9Z{r`Pz0#9sqt=}RIs+G@_#p=wy6kio`zotha>@a50L$3pt###?`L1EWz)XC-|ycK zE54C3{3@7lETjR0YQ8AM=*e@zNnu1|_4C}Gjg~epbv$EWHtz>23RlwBtL5IJ5)ru= z%3x^5V(n9I#CI%-b>}FH?u}WjO{5VBhARCqiFTP{xzdMo6%VI@YK2uGAmx5en?kh< zB6U}9E`UO2gx8iU1mS$4Bd-ZX1swZApW%-PQ+|vxdQ>>Bh#pZV036j}{Myu}kL2gwK2f?3n(@e5?l5d3q&})(Dl@n-nFHs3}!^+~T#}_C~q% z)+|FvB0ykogK=C!L_Z`To(8ajsZeIw3lvZXT*udhwfCcW|M@J(rD?825*y?|Lh0`k zYha3xH!6t{o4y;DfL_|W6;nEplpfWv7QEDdAy^CGG2|qA@HzG-_>veP5Huk{z$y;-_X&gqeZ&0n zYB)2x>zw*4QuU6BtgDWH8K@0dJ82tLsk5}|0E&|hMX+{Y?@0<#Bt=a@9=*0eVUxWl z?s*maUHIr0&sp|Dob!UDB0obQ{wNljsx<<*GH`wTq*)}$nM_PdyeKH-QNSX;T-;T% zyjX^4)xYdP>V_;}Ys6(8d2jTJ3A>-IJp8kUh2-~%krv00SU*{Nz_lNGOp_=R;nUI$ zb51e?`6MDFc`~5%g9oX9zjUoac`a;J=@B0NFYn1e)=Uyd^J*LuW3A`qZdIldQw(Yb z5;hhp=|V;eEI>b2dd*I@1_KklDhXw%G_seElI0B`P4mTr1{&g&T#p?GEafw~qbgCY zS-e%%JSo)mwV^ zq8;usqEzxWq$ifui$mtXI7MenZj=;?J`~wPf5C}_xqK9ANw!$_+acLuf}NUKvF!w! zHp;-}EzPVjd4YoG-Cq)!PTRv**FfE1ESyBdw<5>Ez1dxTS%O>DMDdUH zoxk4{Yo%gYeB8nX1&U0uCnKd+6_b4V29+{n0EDnar2jc)G6zFeYnHP1h9Z&%!{?)j zI*YsWb->gkN`Aa7X0~Bn+l>(3bs* z2ZvIuUB3i^83}d&`)GP)w(cw;CqdBAj;5o^EP)u)<`vEs&5{-~kcN1mUCy{WgDNQD zX4)$sd61g@xlc=De>PaS%Lg}#>!A2exPc;-Z%t4UiW}ZZhw0#GR_1B zag!!i4gkBz6v4ThY5|r_F`Pd>{ANu8Vewl6F=d>R^gXARy0{vMxN>xAVp-rr&Mn6h z3rrRtj+Y(3LOGK5bD$nIPTqYf^H~HEF_U*?e}FkNNCKniff0VqEp+&z;}KWK9#cI!q@VrHw5xvk+ZoJPeN5(QPVM>|FT0v&4#T1*}ArvdURClx-zQ0Oo`7 zRzwqnr2_C9Sv1os*@!6&jOb2>R!hsr?Flx^-5M^gpUl)mz3-Cnz{P;g*{d<7twBIH zgTx+xGO;=GfqAR_uk=ucP=`(lRf#dtrVA8vJ0F7+{F(?OC+<0D$*s5 zy*o9#O$ODAU&BrPuo`nu{ts~SAL97;Lz|wC^}pbRneD$9rXYqzWJZz|Of^h>Jl`sZwD`AAacRl}&hH1FZg0kwN?2Bvx}TUubeUn#N%@}cy!FPi-UHqbx#sLj-{Jezi z-+%y=s@lQ@28!GE03QYnvl;|jzx?BD_JRZpXBTLn(LtLX(e-+=i6mE(SRZK5k{-=pP(QOqgFPNt7(!f@j$XVG>jW4HH zd7$`i!?XaqEHw~%q%J`=!*QewDe*KBItC~6G9tf6!$fkxu>)(Vi_);=8!p-c*&&Go z43X*Gv#*&Ro*#&*r`DO;nOxl;N3QOVy?1TZ^o6teqdJitqhGhAs`K-Zwmwly=3g^bMlQZTlRw$Kc73Q8ebeYfG1R0$e>$P4Ivruz^Y90`h^Oz~PpSztM`PUNf$tAFH{bL&eV9VI+y zO+)0kyW)o0_;iyXi>ENkt_CTy!T@mq@#g|*xzg$?x@XN;{QA_^tt3%JH3LM~y&|It z>?f65q!n{ow&#PG(caHaUGr|HnTiN{9X)2}!5-y@x}x}dq+KTcp{yPPz$WabJo5M>!=4W_3$3Qf`0E>~d3#HP z@HZp?7bb*xX^j|Crh+fQw6|S#>{owFyEZMcl^qXTU@7$#X0inxqKb7%g5;~8=FxEk zak#B_CGX~9Zy6a3aVq%TCn$zukjq*Hko#r_-VdUVCgQ~?%JJ4iKuXGy|7uJ69h=8h z57K~LSeoZ!fP}2z_mjjBWN&~n2-ShR$k>J>CncI5fDVT-S2Z%GGUL)KmA}vl1-A*ZYy|F18LesGtvnh?ND)JWYCgj3#HGj6P*n(*c%<|$# zp3;%`SPJG)`|ROihkd_VNMq*X;r;VA@R159IA2(z@vFr~Rg8SZK4$Ai*&w-VqV}46 zaS$@2w?dI(^kIiozc5Nzy8QQ1RC`NWP+()>!ykFAOZDTmS&fP^6LtRa-?C5Ym4^^n zki~K@ZXR{f*r;NY2lf*O{anh@qrdpI>ZW}R5#bkBnK^II-}8^gRdjhpZ5dz~xEznC zFvE{aLrL*XgY+mk6RqGMMEFrl=hxhP;y;{uakjbJzr*rw*%qr{6xS}!qUk3FLQT97 zaEyss8gT)$&T7YOJsp!2)}Yb}PN0)yZyV8}iWMG6Zec$3;UxNnGU~6xQYP)wv1$`e zeZm3Z@KVMB70B(k2V%;TM4d&@GuCVGZlQ){YK>{e{3RoamdMnjnq{1uc#Pd19MwI* zmA>KxXPjHxuUG#39U~~aRnfLgdfsr`Bb2>eD^o6E0e}cqD&VZOK)L3>V`A;E<2tC& zx_4mRKPTCgT6i_85K?Qtk)x`Tl(kbKAOsXuy(mMZmU#2GDEL(;E4U{2S7=ozBDO(K zTPSNSS8OVc<_Bb#6`sdrLClMuC^#&=(6w0>AljQA3czsNlancX$HxsT!CS}8=i+#8 zAankXUeHbAz8$^`Vxppu7EM=1yi%aaIPVr>vT08W7x9m0$lW}P$DYu+r;;R8h#DeB z8#ZXGx;|Hm{9J2KU- zMK+*B7Jq7>$copSU+sc3eLzbOkReDv=TPKZ7~O`Sy{s@)LQ8qxZi;4M+Wb>%Dj}{s zl9qf@@c81I>`I}WbAH}%kIW$KZb-CD{i(=LhKiNO9K2Pe%G1bK4jhL=>9TuA-$rll zBs$)ediO((!yZM^51XCiV^CQ-m>TaWm$M42-yV(5?`{AET%8&C9xg5C^gv_y_ldoi zjN1XYV_crlsPB8cFzbjV)HtCkz?k~<-Mr86wUVEgdd-YJvn2UE|X@iit zRxFy~v3%(3$0muL*-y>Dbg+a4Sb>{#=z79JJjqj z7y9u^YF#JM1w99|SeNA@k{`=-!iHrSSzQ&A#YOpnLZ4|)o1$?K=;U#0K|hr1T&h>$ z%kv9zCy=dBCF9u>hrRj3#Z}4@@KoFMtou&bv(R~FXWjdu;$UoxHTx*C-B#y`yX~Xo z!OQ+->S8F=X@{wz|2k8(OXj+}{K6-CR?BfPq)QhPJ7#d9Uke2M;ykZ&{m3@IqeG>%zyUs*RpfCIgfxnT!+-nZ%-?9`)N z@qfUj|1i+MxWvHxe|mXX8UK5~I4k4-repk{ULN9BnC_Qa^1r=2id6Epd2_u|yb0*H zeJ()k!0c6x9sJOq(Ndsx_cwy_6{@U~3a+vyG(^(g1>_B*u}a}OE_t-=fseuo!LzYY^SI=J$0Xyb0tuz%9B1k3 zAtPq~NXAwAX>m}=q7#~g{ptxB{f$fzfbSj^ioZf19x9W@WYag=lnNlYUS&ACW11!e z7?~#JHqv!uZ*TjSE-zCOBg{@wDw`&SJApoa&L~w7D-50PZKHrmYb{Z`^7i1n{rzjd zbcg55wd3n{>w6|t=F){WRO?}v7L|hbB)X9AAPaxm<9pGYjh`%^)A#KHb@F=bwR-&~ z=TRj?do^J5>+19B*bR5^^Y!`eqBOQP7Zf8QkwAW^j!^I|ds%aDP$y?lo_voA(Jy(I z+5|=?;Fp$bY^ErIMi41M1X6)k)NEE9`M}gPDKyZy+ew?Iuew-($@2>!wn`9&aug_d)YcNDLC`?%r)@y(Exa@gN zIXC!f4+$1bVTF>Z2xRwF@yA%8^2Ohw(PDbu#NM4*X6#I4>#)WczYsKx>+8h<5T#TW zRWSDEIB6ywP!!k9isI`dlAZA&L=&P##j^L^*=3EFoHN2gpP<3w9s>f_`Vn9on4!ga zVE3rV)zddl52DZO_P~uKnkVPyX7n8awM6oXuH~$uC}mYXj#MCUf<) zUiZI5*1Om;uRkNI1T{a;d}50bl>4BsO?65ZBJY3GStvfD&dl8k^ow(l6eZH0Cs1w* zyjIUD8Om_6$|j*V_Zh1Dh5S`=c&VD-y%0iB?IU6mSplOerI+jCO?0hFaRM7Q2jPFL+ZYvo4(jg{(8o zGXhDE(Wyd)jRI~CKu@tT*v;%z`Mf>PQ)bvrfCIbwP>&FNKj_E05V$uLp`2-txHXBi z*Ti!2wLY=6V7lry4TZSwL29U>Ov=bE(m1jhqEWRQF|Q$LNtfVFWMjDhAWht_w7+m_ z`u7PDTA9c9KULP7xG?tvzrnqt_Y;P->O*IFyE=*BHV5)=aQvRx1VkNB3^pz!tqpwE}|vznq~rqbWxnyh1JKcTz`%SIud zK3Dwl>4wHeFxToUy6A-vJYXPw7#~Yw(ph()?xED7?C%>@4(Dg{I|+X zmhC&iULhAUDokkyM(*)|l#v&ez%`+l#}Q)Ri)H)f)C!)*pAHlV>|@WV+c><9!3vSl2CfFVJ?Qy zr!{h&!~-|&ufzgttqfaoHOXAa21_){NzF9Yys@tU&f{=I$>>~sYJT?ua73FmTwGEK z{IerOCMjfodQ0lRcL{tx6@Tj&pju04XgH#F>OLYdC4OoZ!`xFCd6V7(tCobZ80JXg z1Ijt~K+#M-CY{qCN2$dUft9~c4UIvVT`Xr|Y+1xd0htH{6J<>3MLH(> z|C0e@XZ$DI_5Ux=u`~VCe)4~7H5t;>jMZv|@yXS-_v;2(H4JaZ)uZd3uD15$B393X z6UNK(z#$gHHfrSC@YPkAZ-Xr^WVCE$(W^at6ACXHja^i0YIs|@-a44Lkj2~id1z+$ zaa{k}4ijkt^fKgF2w;p}X?Rj$p`GdI@m})M@X~3@KKEsQ>zjz>G}K&C+xq+682$XG z%)ECtmv&}qq}ByZ%evb|$PW^H0jQme4{~Q6AfMUW1w?-lm>}5l2@|+VsOt&d4kgYG zJ}~$3V9vNTh7Q(wl{s75FQ8_h-y^7>x`wdR=F88nC74-=%RP3s8^scwq#YGB2m(}{ zUyYkztW>iZ6rz3pwA$fV&2oJS^+lvZV5r)?AgN#pNPvpt4H7Vw`5)A4@BsVOmR#PB zhlwLUwP}GuKnS=sUj3%eAtI2c*+)tEM>&?SHNi5>&Sox`kX?E2;ZTXlz^(!jFxx^X zPVuY)3S5Fjwbq%k7o3=dT{*VQwE|cEN{KsfySym)%(}vkvYe=3yWB&lOYtd8qx76t z_eP2P-@tIWjeY>4)x%aU#e%~3P~S?ll@BR%!2}!L!D=mM;iuEzw(F0rR&4O4t4l;9 zRlY|IYk@Khese-v3Y%dtDfDx;Lxj0WU<81KVPh$}M_{Cpzx3oG6eNH5Ft7fV^&!TH`PJKgqTqp>$?NR=Hz)t4loJuh)c5%`HVk=d$@-ut9wHuYe`5# zrmzm5$(HVEY~`9qm%j&bX&3 z(1(l5j423TkZaVYR;l<~TIMGLMfjX|8K)n0ai+Rc`Ku<+$L34(=?CP!`O}LUI;ByX zRhHImscA@8tw)deK6;2vpA>cZjwcVKC_?p@^z2@AoGG1KU8R$Rm}{@({^GrZRrtzs zI=)+2!Iuz)jv|VYX&#e2Fu`1A;Jgro5eM3M62PJ?GQSOk0}4LUL?%KKsRa9I8Hrf6 zpO(^XS|Iq|{Ts1LP|AHGV#JKTZ8TJA1hu7M&r1YVY8@^&oVy7A}(G{$PFQuMN~SUTA3u& zA_Db^w1=;Y4_UnJ9xwEu+jKPp{se@APkzIB`~4uY4seps3~&}AN!xnLJz+hDKVeAr z&}2*&wGxoIsW|rhGLR4i8)o*1Xl~d=N+bkhB^FK)N|@W9*TW=>hD^giVR|HBA4v`L zu3C4xROU#zt$kp*dc=kv+F4(CI*^G5^=0)bT+ z3WFGaM>|7@#GN(tTyJYT+ak1etFn9rDuYZFBF%v;?nn9N+Gk2&Q_&br1Lth{$0G-J zLW10G0^)+?#D(O!Q3olRI?w$9a2||y56%RVePB%)xAuz`op*ygAI!5=@-tNw<3sjn ztK=f7s}F_r`px4`f&4Ukd16;$!EW^ma1s7^?{K;uVHj3ts{cz!l`1k?Pzc9eUd$tS zq^z!tGsPclwYRWOj(VWxBV`oG>JVV1c~M#}A5-`Af)ZII4*T`4LH2ZoU^>0!bMDenUO5;BR;kk$9PZd}Mm}*ZE(N>;PVagm-dG zenBEhfzHlh{P8L1O$huFO_2gmG%cv_+JezeWm~?BNowarlEPlm8;wGeVw-}L%+c%r z69s{DWV4Pyc|+x85C^YOGW4Vf=D|032TA&zCn|-WN*@jrTLOL1M(v1!p(YWqWK)Sr zWOci!{wR2SNe`P{BJR$712iFzEf=WbIY&uzW_{G(n*c=-Xjmt};;65;24t_F%sI+! zgsv6?KSoD(Buyb+uLUqhcg$t~Xu%BNO3U=hl0L>89;mwSr==BvaCv!h< ziC(`?g(}6z;aD(>&{f=xWb?Z;%UvX#KW)u~Rl#8B9v#LrM5awHPq?G)Vrr6ym|klP^gMg;Cg?FQjzS9#WkhFyxBkybIxLFqT+BV zB3eIOweg~xB{}zC@>+uz?{#ts-CmYlGSzM?dYjrkZ zWsNL;a!)`}N1ICZ1dDcg9?Dq8dEvBxBZ_|nh!QILgp?lq9ThXisrllfpE05zO3&67 zy%%IUoT#i&=^i?vD$OB@V>yC`tJ1EZb(QX+robS)w~G3TlnQlQdG&~u%kmC@kX>w; zurM%Badgo4Ry0_dOGFUK*0szs)rhYl#oPdgjxKP zh>4?ZCw;M7VDmu3uZYK&oaMqXx+FVM4DpY6V&!!w;eDAz(`x+LRG64i$2cxZe;(tpz!L8r37n(?6epaQOF+eIjIH!EFl#XPQ4H4g zry7|#Dcrpj;s593Kj_x4ImJy@X@LnTt>m=Pql__&f}#?aTw;abkAI*>Fz9TQPT1@ zDMDl#=Ls_P_Wy)IaM$RY?oBuhc?ZivBleg5@p_l9gM;=6i5v!n6a#KH z6I%W@uV9C>1VGj{8qY7zqrZPNusMwIJM3CmT}Q2so7tKq)Cn>b#eVG);57`qPyR%v}n0)g2#|sC^kS?6{e|Q%NECWnH)wnO6P}4FCd&o zG0_}j36Htl-CCiOcLc=iaR^;~Avv*F^@77SUDbleYkmlvMwjCY8Vft@K`8UY?zhKJ$FHJb}pEO}*s{~)6-N+A*SZC2X3PNEMbIZZ9_v?~j#} z*dI5`n4K)#@2$T`Dc~Fp)1ti1k{xe-V)XESf7@D{K^r*}$#VKxyN28O{m|FG%&Ky> zd@-8_i)(>peD`u8`S4a53dLppZ6%Pl3!%@5Zv|9zs`39YcFw_-KI^`ZZF7>WU}8*c zJDC_0+s?$cZDV5Fwrx&~iS67q`*&{bd+*s*_x$lzy8B&~RIPrx^X&(pW+#s9oxT7% z`-ls!Dpvz2zxLYT=6gbt(L<;)(rX8M1t#nD&p@PrKx!5SkwJ8fXp5Mx*$B8Um+^{d zxCy0JVS2#O36(Nr#X94D2NV*o~0R6e;)! z#&T@+#-_+Ivd|mqky5}AB=N`S@QDswBSF1+2Itx13Y%o5M-Dk6JP+Rv6Zv>QC!iJU zc6W4oy1h>CTrO`O5TJW|{@=Rqn2 zFHuXsrS)}a94m(VCt-x9?O$lCUKE?Vv+s#u)@>ZgbGvvRrTW{qjsy5q=nHAA zF=*gA?hv{hpr&Vj^Tz@fU=d)zsUlB*BY#ERSAo4Uhd1PZl_=E6D@cy7)GWs|cDdRc z9q)}Grw;H}2ze6YEo9%nA^ZYi+_NVVllMzUa5T8Og2XCG!_qbEW*`h{Da~M&+yaui z$ES`4@4NFgvG1S$kOrJ-(yXPg->A}>RJGYw$epz1t(#RJVP+R|m%i4h;8-v4`;TD= z3^JW7$Z+W;&rmC$6q~DPy40vw<>o#pNyt8BaYVm~MXJmJ-NzE^0UVHg z6sj&N$~(u(rzPCk+>*aXH@^x}F><4;LjQ?HjGtg(-ad=uwuch$?4c=$n9T|aZH5`w zAiduq>oX|JFEHBk(t(%1x<@StST>ham0m?k35NF_u?s#3%7nGI-B%ziyu{pxR z<2CBcRo2X5bpl2I6=(me*8y7@?X28meKPuWZcN&xN+oWR@rUS+>XC&pXI-@LE3M?X z?gFuKoK`MvDtW`0dNW@nEC&wUJ@ zj7j65GCjr`a!GWX6msvzcy0PCB*{1P2Oeg6a-2F(zW^2yUK{maiWKB@?3@cI-vo>o( z16ht$MZD=pmZ8#=&o05#m+NJ@Pkeu9Y0xC(m4Mo{ihN3_SrGoGb?OSd!yiU;LbU`) z6_o;DEsE+X3Mfv*0PuEihzk>{723Y>M_Zz9&zGkcbCkZ6G{t6p;m`|rL&i-~WGyAGMBfp=kTuBcW(KP;Ux6gYImt1qI^L91`9SE4p9!v?j3@4SpU(C=|0dgPqE= zc$ED{PvK>lGC6RrIVklf4$K>=UV{ly=HN^;^{qRp@50F)ec_nH&P*9Ut|Ebv34w^0}q9$5GrBWen1IR;GY%%^bzkPHhvYCPp9+;p1)}X)+Sm#fabH0 zM&=@bWE(h<*?trTHeFar;6@KPLz*s(%DmEIX8_Z}&{p)Mo z)Ie%0Z12doIbjaS{3)oCm|*h;B|~tjx0|&c3fy|p-Oi1q&3T5c4%8;UMGrW#?sK$H z*t6eiP0mG)II^O+j+57Fx>cFD3GKIb#AX0ns{+7Q=;M{vooLU+MJvw2lBn}}GW9c;e;bm{PzF|YIi!si z$n*K6l55G8S?QXzv1Ut{+LLzu{iU{8%$>^pUmp3 z9nu##+eL0K<2|e`TlGan4VJQR@hw7RaU_h(Mz!@K8{$OwWwTA>#VAr7oa`+jG(l+I zh(4(vEkcy5j7MG~^I2A^QU0#(M8s*;1#CDEC2IbxrC8O?^ zM{dks?_V$!(}sb<$6HRUx@CT=kej+-N5fm{pszxZ6B*vkAVnTIj&DWyiwx;qCQ7t^ z-PRw-TpP-8 zhNkKZ6s0$rd3nf?YDnz`2(X;7{8mH}NI^fp94SmYE1uXm7p^)L@p0P|yhfCZz)x+*NJKL2$}cE8r6MwvmjiMh0img5)aIzgqU9Bn@4u;-{wM>Hk$=TIwSOvHw6b#jtFc^JSV#*3V_?=~59)2j59XBFnbOVGkG=F~!p{HC$6=;;msI&quP0%EO zhe8t`%KfT^fL3fJl!RAP{@m%!=qUl2r;1J2YhQ|~ZiD1go8KXO_2lso7h(S0-gjws zqNh%`_Sa-^1v8D!N&)j+nEaP0czHZZe?3Hh>(~>6dwjuu0aT-9VolI|r*cS2L?giu z+*YVj#Mr3zU9h2uFC^MXsC&!8BEDp4MHDxwBR&)|iI$As_@=2f={yv5MX>1m-zct& z>}@3Jr|5W@*TNiDzZ+K|`5SPsfN0Zr*FD$+Xb@3?Ieg0ieGXdPjAvbH=S=rBM>gYi@#+^YW z1`WCI!pHNatq-aWDVMRBU<}_cgtsJn=~7MEQmoD-@)p6DoisMnc|-U})?8#(C0#L- zDolh;UAl9jFATj@_iS{1*(GPI+ry3DY%x<+R7K2a;pMsimplgT*R_~v8Ht@!wk^A% z<5+i7*t&zIDa8=p&@UD){dIoEJjlCuk9>)LOfJ-qr0)vCRVs78+o!mML1fuAyF{q{*fvoxJIYLqDR6#lLE%Rn#DS%ccg6Pmbo`7d!Er#Q=uVr=T{v6-Ah z+i5SYUzIRU4mG(3ySy+El7;)x4h&#?zF597dW9en;;`jpjgSo^*)<7h&mQzBv<+t^)+xbXH_&20YO z!ri?8PB}BPqLa>8E3M=Q>z!^m0_h%bF~w+T`!z<=tHR!=gb<1C!XzTs5_ug&jtw%#iy*wsHFYn9cQx1Fy5ba5>{5fo@MTt2##6(d~E z&yG!{7m-Y-2{vgDh5qyq{h7QZOcP09-4CJZ-kYXsEQ5l{L(Yy$baq-%qoS^%>%>9B zel2VCr%uoz{Z#olz9Q2(G{Zgwa27wvhlx=3CFX8@Y#ds%5i~0XcB-zpWgL^qerVaU z%qdz;YCNv)wiYQ=`OkyPl%8B|w1;>^0Z85zI`o`00kiwyT7p!uiOVYId4h$JDiQ4K%kRQt9QrZ4-v z->ifk(e>ulIuK~23^qUQag#l{iMN8?XqGpFS80=~`a819tNY_+)voy_(#krJrP=rk z;hD-GlOf1gA%dE2j{@gJU9ugCf(il`LP8%+cXy!HsOJ?3!j>83^IhjezRLWaYbq^2 zpdmo8btt6$wS*f66|7wST$noN)v7O0QVp2*cm?bNY+SDSm0uK&vxn5wD29561)5vZ-+JM!P;B_i{CXj39B>2a(oJVnpf>>U zW?35pCqJz`GQJQ>VpgD3oeOm$o7|J`)rx9jA9RXsoEV^#q!H9i!OpBQ%Dxj?+LoCV zQCenH-c(%n&2$g1ih6a8pq1M6phz)y1>I$WH&+2(+|jYh%pKY z8kCQ(>bZZk&bf*R=KJ3M^kl|T{31S@*2$ty8D;-Q`D0%zlwx^rshm`Ic27)7{5GZK z_6z%g!sXQb7a>W3gHO2wP(~+q&lZ_UTVZ}%b8q41Q+i}@@}cwY>3`PsYtu1sKosQ| zlM*qp#j7}l@PrII)l2a)8KX%9Q5n;R3YjlqR78yj1y$|%_SZjX&|-GN_+xt^ee7xO1A5#vW&gc8P@#a&P^ejA& zG$Xqtk=8JBpKq>rhO5)3)h;ud>ics{ysi$2kog*F!~7^3wdaG_o}t>BZdvSaPs&4> zWt%ebI;{IcYi9Z=0Ih6Mp*R{FLVCI8;(^kYt3vAYjU0fEJr{PA-boY`ZOdk2gYsBK z_O=v zT~=gc<4+=He=y7WHa8ORzI1DB2R&IBxQa=}Q5qr?4E2m&%TW>=5m#M5m<~ZG2$62W zO9L92u4TBDDonqiu5pc3YiKYWjbUFqXKtw#B5x5pz1H&{e^g(lrY`CV6stc)L29XR zT#9rdDjVVb9g(1do>f1ALV(73?22I2Ct zr(bp-f(OQ6;(5*s+%jjx2~jAHFhRb({I*W#e=2<5+2KYMIW!s5^6!HR-OhW@#LE5X zZ7ZmdL5oCyMV-gX=TC+)fS8LJPxWM!P356Cc==^MaJL62;?ES5;iosexn|M7X$eK0 zpPEb_hL0Q=xqZ#?et!DOBG>H&{P}#a-M-mwoAcpdG2!jQbH57pUU>KWNhVpw3Uilv zt6-Wa-38kUB;!cVXESeGvspL-8vW77<+1V_0$f~XkPg0)~q?-Tpx?($%*7%7%`UlMPiG7jB@*?B1s5YIlTZ1qG) zphqCFJ@}76+++^f2DJ?RM)%+%U5$cQXXuvM(ZzrPcir`vC+M{Okf0o z$*se0G-)<4&K{T4CZ}C_NLuEwJm%Alr0wOT8Tpg2RBD>FWUDa0dXny&yNK$SM4mLdk@EgaHsBi7 zh?cKZ=ItI(^ymxd90D)-1}o25`;F=n6}H4ub2<~$@hhFD?@(jCo9-Ui0z7e|aAL+t z^AC%73?@cME-8}pFeMv~8QU*yJH@>1r0>oJS$NG)IN4*N1TE zDtx4DJApzeH*IK2#w-X5csc2*YALBDH)(^h%uSjf~Wc=W!O4) zmmT;{R3@XG219urS~kHwCIduGp4-7PTVHtmktsi7fL&7oO+qi<*AxDoXfudjUB&81 z?c|bWe%~auH0#&UlAL#PNIl0SZwi-0`;torCU#$;=pTQBPvXjvCd@ZtVYpDn1D05M zOl=pbQ(R=JRNmp|>i}owSdTt?wY`=wbo!o5P}mka7N*iwGt%kkWPtu#k@H@vT-0Cs zo@;$j5Xo*CnuE)+=$KDICunY!!)|FZapY5&jMEzQg<)563oc1;M|F)hKMz(BoPqTx zw#qPG)-kJh5Yp}G`H8a4*h?!?BY|xdtnVtRHMVqjRvPX@L5->GS=gr8bfbHTa`Iz! zg!*>dKmyN-(gjr`h_a^8w7Jo%1>Q!j*QOK&_@8ocQzYTO30Rgzq?iURDFIIN@1T z^_sDNznnodQtJknH9cv_9o#({qxdII6YO@OHPU=L4?zUL9`^A8*hTV2e8Uvk8HDve35GLK~jwF>; zHDv1NyXNKvx9vVYLF1eaaL|u6ul33J{q4s=D)pVbE)|fl_>DL1t2j-TMivYwJh(aL znT3{LsA%`!Ib8V;8cU1WObS7=1kuKv^tFW!Cd!w=6Zn|yMb1T=g)TK7y5fT*#Qn!R zfBaDT^E-*p$+-q_`31U~rEIWwZNY_G{Zdg}T`4=#iQx4|1M;~v{2O`w|La6qThdlkAR~$; zb{*_OACn&+1wuVO$;gk_YDoY|5UD;bjW{Cf#{g68{&umtkx$u(jr0^w%?1IlYMhFv zCv6iDt?_u#4@}(S@A7QT5#P)MdfF z`Dr(J{fM9C6b--E9_lrLN*KFZL* zlp2bv97?XIYHx!+Fvz-# z2Z-trPn{`a4OG>R0Pk}UP(@*pCI#y-zsCza8sn0E#_H_jxI?_IS!4D`lLo?xWN2|v zgbgYO3`GV86fIGHh6is6&nVH`YLE=IVh!clO3)gj`J-7nInN8YLy#|7%orN%_+B~l z9-Hs;0>@b~Ss@3IU@X}S@+062#6emcEdr0=yi(9D!9mFb7rhKB6}1d1zSOeTiVcjY zm;Y%BiHvOI`swg}62}q|l;kd~QOe$&nAbqB0?!|}TpS^?acuE#4-UYj8iRvV9;`QX zib`r&StyB+4RPqyO+ZNEv)K&9Ok*Y$Wgciw1)B?OW-yUEUA2$=j6fv&COR zGsj4|4;n;mynMa5bY?wIAR*AX$mMjrek#7$R~mi+zk>U9bGo;Ac`v;&f>~Nbzld3j zAaAqJyrFrK&_5t?8tA&HhM4zPPs%OifB>E`FsBI;@ym!6u}z@H5Lsh?9Wa64BdVYn zS7-S-2xA&06W4=-9|I)dS6dawhA?X;xh26^fV zQm>|wm8fL8NM|O%7#2S&A>M$8s)1c4v(_Jg=;6i1gOi^%AmYf(-|7AKaI!aEycL{m z1u`S1U6a?}JHyz)H9M1S#-Tsxk4guD{q=i8ZtM$h+^x|-iA@434eqQ?^Nq47J_f<* zM?v$*WI17Nt=i{C^X#Z}#d3kzU=W}u0A)aomw95Xc-o08_F41kWZ#e0G9KTsW zuJ*prXS+n8{||;K(mLfNgv(xrA;&Cz!L#}DmJlo`Vf831FY{fgj>s*Ra{^g8POnanI|eUyJ!R!t9UnjS*UXowytp7S4xVsH34Uq?YY>|A zJL8z4W}D&KgmY5P^1$Ye2x|XHfrZl7IuWCqF?}~0so{&~o{d8iw(5pc90iT@>4BoK zN8??7GellHQ&4h$jiQ1A?1`Y-SoOkXrY%nK6iqsdED4H#EsM`;(IX9To=q0*IGm2B zi}PW5QDtjfR)v&G7B!%Sg%%lN8aWcE-S(h_7Ma=!AhFgpI!hN}kU}4x852Txl+U`1 z&1&Gj0h8u7VP{())2Iju1jQH%rj~exq-0kX1o5mQ5NyqZ`qn!o=p~G~Pmm)nE^kxf zKY?b%=F6A_EB3dufL5R?fT1ND4v-00XIEBc8un2hMBOPb!%@70Rzcv|%qz1qO;rY8 z^W6!RVWjCQl$s6QIRchij6!WYoR^$xeoX0o^5UAOm$fL6IL za_*I7dvh3}>48gtxVErO-D-I3Eb(MT zFOlN`3Fe&h3GzKGBK0u2-{KmBqix~*BxFM;_9LVWPBQg&U}El;_v`JPIjnz56@42Q z7e}|v+1k6xJs^$0xo#6@ahP8f#D-(ahKw~kI;;=C0&;HA{)i~yPa|m*PzMw(ob!5C zh$7V!7PmoF1=7Ld=3Gs*7w`cJzOmN>>jX@-YVE&>8h~wKkP$sF9kCj&CJsF^L3ihI1q5?r4I?=wQq zT}?F2rG~z54l#vI%pQr8DA&J9%*Bm}B*-%}$r&O3xXTs#+6GSFRlN^q3S<5Ry_QZw zyT2{QKphBhyH0M1gC#%luDwiUeyLL-!Aav*ggL++_!>`FA1WG=#Z@Frr^Z2|%5mb7 zYs(>jjWegly?9fj^s{P+f9Kv9& z2FJ*wTvw$`f0lyW@}*QZ$xr?!tv7O$=IkFki2S*!fiu;)Tq)e#tjt`YHThd}x+Jv9 zlIzm*k9kBA{O-bc-6SO&YONNb9YDe3C>agA3cXgILvM3-T~-DSc9knkoUC;P@bv+p z`to~Fkhf4H|M5Uc*JYVds5Jc%XgZ(A+I7c#vss|SCs0X)18}=L*pK%jeCy< zY9~rxON8F4970yeEcD{SJRVCc05x*uV1gU()XRb4b)X(5mDR#PmIi|Iq|)=44Eucp zJznNGR+pq*lbpjXLNAGU&9z>_?uMJ67EJ`c*$m?Ajq@Cge;gg{wc#zln85JGe{%Z$ zqtE^kbBzB-u#@9IU`Uua{zn{=zfM1Vc7(21HG~;WzpT)Lf?1GYzsAnLz)v>#JNdg< zHp$ss*_m@N^G~nRVV=p^5$AePw&dS(7(@Vmsd9@FK3km)e%{ZIkICxk#g9e(TeU)J z6`G$(=CV;yrJ2ENKT5KICFMHVHxZ7J;B))JAuoG#~g=%)D&71xAG~ zQS_7n2>o3n%3+Evmr3z7_wWD~TOYPbd<{T2nsz@_V(GbHsY0lwXwNEMNl@c`IaXjLRsuyWx$za&Aj zN%VZ=3IqU@YREA-O$dzNB1v$M20Xe!(jr;SQib%`0wYpIW~GpxQz&1J>ig{9x2(3% zxL}sDPGsR>4IDKnB}EayUzP~18bXO&0lf6+pT92RrswD1K*Llsr7(uQb{b;qIe71s z3e7-M!uNDgQHqEC{(3YNi!b-4(7ENw;Mb!3`i%{;FpQRRa1cZa{RfKpDMliN1FXuWUEakMv!sJL^QXC@_#NX1C*@lebq{p+pW z>q?D9^JZF|hLk8Lx94q+F!szviU5&HF^&qU&53_d=ZSwHze z_03b0yL}&Ajl1XPJk~kV8eL<%bNTmnZU;@4cJ6E;n7ySKA8*fAH&?9$#CR)#Bga}Y zPx#4;>wecAmrtJCwr)@NSKDTaaLcu&6sjL2LEPPL4(;5XDvvt+2T6XLS@kU{Z($yx zOO}YKKLctw)WE9(I4WL`4hJQRJHL6iEklyV9)pzO+3k?YvBTTf&;GW04CcBm_i)O8 z6&nAOc>viFLedW(hciN>F8gpaa(|$ zP7AoKOOZj&+FR7PpdNeZvk1eP5@i{h@Y=IlawfP{GY=wE+A-p?CYHF+ACWD-WBE-+ ziAu;8hl$J6wtQV)w|7mtsxtEFt4SK_%a$Nt3pr)JtdP=;6CaFeAsd_;z#W_$tFQbx z1mgpEvi%OtjVUZbyG0DCG)<3Btwg>NLL6x5?Y0lJ+VoDo}J)A6&(Kk4# zETFp8+}zIfbhCUM@a-d$<~#tabOCyoN-moM0r5#DU*8SG``mCS(l}Q>+jZCP1TyTV zW86CLWMAn*nXbIwB{447bvMD(*EoCF|Dlv=G&4RB z%pTr~oI?!7#m`Wl=jga(>1J*aJ|ZM@g@kh5tlSjxS@Uc;Jl~i*f!% z)9tF3F?227n~vzDJsl=Pm|~%t!k-rgauh6_eH(md207C?Q`W& zx6$q@wh;AmF42tF!F3?$XDmYk&bHTI9DD8_)5lX+Op!dK*)vu<3oq{+g4bt^IZr<7 zhY=q0aAi6`2^rs`j=xbn6p^L`UoR9#SZ7Tv(V2#f`C_3lf8oV6{N{X@nY146^}B{Q zAg9<&ut>cK|0?V|H}-}1^vF||y(ZVw61h=MJs$5-D&?|CZkskrUsRllD4vrZ@E?>G zD#?77{nw!e$Aq zS5Q;+y$9CcMyb9&jMgQVzZjv-%UC2DbE>hAk(p$yP)g^+;Txkd1IGrPY&qXFCRkP) zJYT~4HM5TD699Z?1iwqX5X#(|Jz?R=&`CXiGnoU1Q$rUJ{(k+&{@=hUW%mWPkkIAX z;~<%W(s(w10=KY9L1hsCRS!A#xL?sTQ@|Mu=7Oq5SePaKHjR9JvhZpoLfDDA0EbAR zzl(1KO0i-d2)kAxKa5Hdd7FACwSGz0scrI@+%-QQw%3t)*SBi8>k5g!%>gV%J7Nl> zMxsaDE0s$bE5~XTDu^y%8kqf*C2Sl)2RM;Ug-~LaNSFRfb`#Exu8WNTwus=soDxN~ zgb5oxTd_-iksUOhk|f_h?FLoC#kA|54N8wczQ*xO%}GD~(rMX(x7DeWYVLNs|Dz*J z+&F?wYoAfvzjuV~cJ~cndmPCiLGOMaPsBv(ma^EI*6}#5W9UIzL~-XsKOpJm-rDqb zwz%~$VZ6V93B%)`ke$Ww^-9b}3E-Dfs3rP4DzyvEFXcc>_IK2qGAc|5Sy^lkJ`)2u z7(HR1PB_G_XGh=V)7v%zybKT>($ z|9n)gUuCX?FcU2!ilD`cxYubGVQAlWA-dS!`g}e(xV+rFex1MA&N>!h=y6*6^QGb< zGrp6#&f~S?b)0?k&zak-2W@xT!O%Lt^V(fg{o12%*E~zng}|fEe9vZzt#b^^%1<*Y zEnBES#hq2mz#&v2xb<>Y7#v9*N|YMJ*anm^-eB|A7PJ#J)FH!am>pTDmc}3qh&c>3 z)bIB;0_yYqc!0_d;>16Lcwmrj<^snpBs4I;#9+)-Vk~2iX{QvkSqNEJ}W5dkaJ(uL88CiB=>;Dp_~Ih`2RleeonCHJ8Ng& zZ)_VmJF104E?H;ZNYN~9_1_=khhCkEXQQ~iPxvmpe+&G)4wg2D8zWRfG3Xeb%H2?a z9Oaa#3J_8qW-9rqEXc+AfG|cFk$Z*kq9Y^FYPhQCP!o~r`iwTyPA*c#0s{b$HIF(v z;3il^F;g^ZGWNETPK<5rGU4jaiRupS=bNNz+Nd2R=ir|0-{e|+C9Gzqz=m;>;n5?N zp++rBZ8_hgi#n&G$R0hK{`C4p56$s@z3YDe=zlEc=l{8D$HBMXmh7!W;_kWi1Gg@! z5wJu)ozsRaHzRqR-Tmf-{9;$U`9&^-yD{bE_aiYfFvMx|_@p)A>FMM4es}Xwx)Pg- zC@Fmh&o)DtxCT%2{YH`p4#Q>;tOhIdWYHfIl;t9fLQX94N>(hE*&oYeOQkos@R`OQ zEyj)?$L+(-Xz%%;SeI`;In&$2>+|j9Bga76z6k*$X123*BWU6U?s#nDSxW;rd;-~} z{1$I41DP+@KAEW=LxFDqX^ujT0$GFyBQ%v1<2Xk{LHXqO;CG;ZM>6R>$=c(jjrCbSD~aT4HiT-+<}RM1UGxnj_ z$L{*YDAWjD0MituK(<|8P$26XDs9o!Pl3f~q&NDVBViZEz|YDYWJlAw zmI|u(p`(=7V&{0^b@e&5Sd6WdvP^BTucg@tbF>JPI>Wy^R4F}zN0Pn^J`7S0tsnH- zgG+M1kaR&iG@c>&N+!uD_eeTiEmJpja`54NU}R!Ap(dVG3E<79p@#z6PU3#p-*3q8 zIi1v&j{U~dvU!G)bRkh8DH_ihR%0QMASs$!q8}lVyNsAoNlb;SjF`j(xD3D{<0PX5 z3xC0VbBr|ynMI?ZXCPFGO$``;3(XcR3;qi1VkYA}eoml)=l5;JTj4nS44?(H>jzy& zF_v!nhH(SM`vhI-Pg5DIWu_l_1c%A%i>=1iwlxWZC1qI^7l^3~I=y6Gmyu!TTom2y;F=r)Fjvvk7)ATRA@W7?c{eCRbRg~N^i#)G zaw0fuNL6hF(V|G?K!9~f5eqaCQ%#xDvUBE4(x=Vdj<=@GBKPYYc(AbsvBT`d&vv$k z_E7(t=I5P0tF2WP;Y$*=sE&-T7PcvR7*R?SId`K`Q}EaqO#rsI)s#Gp>VM=vWR{9q zRIl(PmGW|5$oi9H^q{FIg-2>j(d#Cx(dhU^Eo3uy`>oNi9SERIJ>_YxR%%dMZ1iO| zTR@%dYbZtTD#lVji0R<0*2W`SExT;~Zzf`$+Mk1#fq4SN_7nsBA4JXCLhy!<{&N3SX zg5&N;2S^k0vPbd+MMFnq4?zqQyEP8Q_M@mBhfnJXkM zB(y)dSA-)22S9_JbBxsi4KkIN)z;ynrdHkftPjUTaTgs7Z|7I6^>3dH2e9@P#CYK` z+KY>&CbbsI`A?;;R2kNRu};wWkSS+rdYjZFtT}N%E9HX%zxvcWrdeF{btf6s$|+5} zb)^Zk=>_-#KmjQk{ly0ergVLfh+=Ilz2PUTGHt&!Kw)q<%1X5sfgx4|GlJbdD%|*~ zxdJ#?u_2O%peaR$2_HK6TAgPg%NP0^9s!t2&o#AcJn4d~XR=dhpi`maV02$(nh6<0_mu5`OI!eBcb1IDQR+ms* zaTC=KK7G+jI3xEH*Lqds=f^I|^4&_ULX{sM=eBcYuH0&tD#<=11dY^F%D+^NS0@r1 zshu}8(W;G=RCnX%iXWAHa#fAp@>molrrx07%-!5rEL6^BDi_x2PxIb@wx$BKHT1{> zbeV;+g8LMWIkw8N+ED;J9=qG3iinaV|Hkrs*@nLWUIX>i0#xM~9ZbPVH-ep^?P3{0 zb)s0MMX$hKj}--_=6KXbN8=gEv}Qzh>3v99sN#g7)c}0DvxXup7ytthtW8eFx3A zZ=C-o#kKJ+cn5v+FR#;(cUD0w71T(wz418Dvz#@Gc?vd z`67yB{I#O+lRnNwNY%EVz-#)7n-8Bh%^$19Sn@HC@itGeDs3|TmvGH=_%Azl59Je}Y#v1|G|RReT{MC9}52+)@4m z7060gMY21}EYzx6K?1A=B|zcAF#_^MFu^J;4)Dm1rCK}6HHH7vQ$8VnK)jYT^D+e1PH%g%|VF*|mw-ZWHu=Ud`bfvWIF9lWPKsmg&y z#EG!XQkfj!&tkIt#z;s?GE!-WiMl~eI#Q{Jh&n}gLlv)t*>wp-hah}c5sFocg1J;a z#X{5b>FfHu+B}&)5<7bwc9d$kdt~t081#`3=jl4DadRtNC`EYB+m~^7iXtx-U1nv- zNk^Vu@wL$DdaJ~S_9GqyomLEh*Z?L?f509KOUshZfL-BMVCV@*UXg-vz9{!yoJ82I zw(F>ikX#ef_es*|12YC~T~bmuA1B;G=;klHt_1>Y@y)y+URly3{d-5fH_da-hQf5y ziOhJRM7(#U{i!HrF$5F67a@QJEW~>Y7=PJW=R)~J!0I`ec*ocZ5J6fLG5K_Lh*=jF zLeOd;T=IuvLpVGR{~e5-bf~hDTLy##fd_esu}npom<;WAYDPghwN$%wV;Nd~vA>9e zQcwJc1dMwOST$NGT&Y;_c?S+tx?mdJmW= zmm-WRBdicE5NxApn1tAsVu%!+8epowgPT40Lqi`jbnlBYLjeaY=~RBkAd(oF1Hc;Q z6DyDPLabnm-+Xy|{zFnhB0|B2`Y@z9Mwj2q^F7g6;yaYDRXZf^+&Ly;e>ghfxzMmZ z4H^bbFK#u5s=t87qe#YA5~-gmLM&ec0YAsf$Hs~GW^TUP=hv(zBaSgP9J zQVf?1c89Mm!gA5gzteB}(IN%5QDNC6~?wjiv)?Smg7Y6O4T}y_4afIB@Wri5y$7h*wVh~q?Dbz7IqCgE z(mR58`0jvgqLR`xlw{@dz!9^~%g{c1(KA$RWx9j_31OS2>C_t7lAxi(Li(qEIoG~5ZCIQ*BG3H-Oeu{vQhYa^P=`9j6g(mk2aUVgo^}0cBw4|>Xgs|`nPKJtXBqYF z{=z^EJ!D@HT$8WQkVQQp9j%o|!NBJO)Da8_EJI0pcLsWYMN#Z?{}p0a5g(*#Xc8ab(1(HigJPOUH9>vb z>t3gU0_YVq3SKs359vMNx?nyh{>s0eyk8Kq2AV)*6OjtM;KpEX-WoQ+?9yzGF?;Q2 zT*A$P;P2kDKdI{PNIa=@m;hAOf$O$M;=Ymkyq-Wel8iLQx_hC5J|Ic1q{iq^;7AZB z6*4Ayd?g%Z%?q?U_8K&EAt4%*5Na6emS`l|v_637kZk!%f0RF1#Gt`0Q#@?8#wren z&fJggOa23@rv0C~%L1?L(AWn|nwF5gwwu+S_@wEaL;Zsz<4Z+8IX#v@S1XN@+&~_} zOpnt!sHafO#moX6aNcpta0pRp+p*o4Yf3sS(ABRjA)6aF(6T}2Wa6F&is&}i9< z?4}G-M~Eu*!t|_v>h7MFZ1bM)uHkKbB=g0(be&wAFcl*XSif6k(1rz0355AzfKg~? z06~?dKgz!XyCp@Njlf1Gqf{FYR3twOB@aA)yHG6*U}8 z7tAgun5$pAH>JP$L3UdZ!sy;n(SUV(yLi7)`&|tN3*iK>ZEO78B|g`qxBc8Ho94n6 zzzGBSj{6scuM3eCkekVjJ+Px~iBTV8rN3Q}5QY1gBkl(z+^EADS)!wRI|pfO^GrS; z_AJsIe@M1zeE0s;cM|Vc^=Z_j(qb&Z8(dVCv*HhXYFE1cND68+F;t_jSal)_qfSTE zubmd+jChp{Lb;5XR%Fggl-LjkUwUGD3* zXWtuzG1H{s-EBKc2Wiy?{>3*;Q*-l=C=O1%X6Hu!nmA(4HDUM^dftOtH=k{2!#U51 zu6?Pp=_M42p=y@iK4WAGy+9jAKe{a^n{y4>)j4e+vz zTMEln2DdiN0>YiTZ9kBSaa9uklYIL}k^M`)F?0T#!tsrj=|9LfR;K@%eABcfXGinq z@6OlX2D^xpa^YafjL5PgMwUcygKT^dN{dld6UszVER9#QNy;4vAP^KT4^*NXIenN~dXSeEatEX(!@ve%Eal zYVp&234i*N3unD;NXRS*F6x2fFV}7QsQ7RXJH&&)n$KAX1`}1Ri5{$v3rKcL2a?@* z+x-|V{A2qX-QmGnuy{c-Ehn*v+w>zX4~|<9)`3Np0wOj09AI!XNgKzgQcX2sS8ey; zeXFWABqNs}Zs(e{_Z?_?gs2oYLr{IEutHq284AGzNs2;e2-H2bj`Gjxxpm6o07&47Itd8KlnOWo+GVo37LCkIN#l{By%>2uF==h*1V; z)aw06xee(oYIt}q!P%P_w!%J>$-Q$0UHH~?*!uHz5a`slnA-T)RlowB%NpW1mJB9^ zWDR7VZJ@~#YJ%`QC2>>0*ccskZxw}B7+nll$PnmJ$so^Ct~aEVNQ7Fi?kzxhhMKVX zO-^nRUCt7l)j_*dHf4iNE_!J6QSkH6Ju*tFpg=dDkLUB%&C_M(q+o5#X~!MMBKljD z_raSxOMtDxiCCpWEs-Gm6;WQo9G~yo4UG%+gK~%h)Ele>-Ek+c4+L$kO22y65cqp7 z_k`8s;^Au8>u5DV$`&cn5neE&@XLa0T(1TKBIF}N?C-~p)e!P6H@DNAfNa}}#LOvE z*S2zaTe|s-O+5%l2p_c4(*z#bkXN%ZhaVXqr3>_fUd5+9`_@UC`7`vo*D?oVt(o6> zs^{=Mieu1`RWv*IwYVIAnM4myD{ERDi*K*C9|F+##HXUNU>VP$khc0{KzF9q4=>w` z8E(M@r%!z(&o1l6N(O)^P9zB^ywW920D}IAG2AcUWg|p7T)g95X6w~IDfz9!JZ;a@ zn{NMQ=XUSqs`p4J9$;=3~7YYd*%f(>?qj+X36dk0I z@yti8agNOoLfNDns$^>iMC1edt*02(3(2WkCeyUSklCV^EgbZ3BKpCaCk{_uT!f1L zKvAjJ{nITLLZyql=_Dspsp!{jsPXmd{B{P zFA~Xi1Cu`_uH}Gf6>)P|j@p~!qRjwd{ zgqDcdLz+Qj;G1M2wZhlAPOtkhyY;<@*j6>dTTY0*F>Gg$X>-(HQ*}j>?d}aY^rjH4 zFr&TUUfhTp6*XGp3k3M|Zihamn^DvC5h97I$lKYs4xJPi%GS`9nztq?Fw%U5k*&VT zCn36WZ8y=QPzVk?a=+4NhNT<#~eB8UL0^a(aUh(e2BA$cj zW|L+7CvPh?G$R|e939Ob)mE%kz=|B`O$udez^4$Y*_8o)oRYLw(o4FHr13bg5#xc5 zRU?g2Ck6o{YaMB8P(!XzNNuVvdgmA?7?<(~wiohKj*A5Ly zr_HAp%RuuXj@wa^X>-PnK?u8p4m`JE0bp8FY5&&QQvnuKgghE@q?$! z$-&=49C5RV8qZjt?0$)Fhpa}_A&t3F3c-JZ(+dsszM5D0?g{f`?clNvB<5cvXkm8C zWYKE07Z$|`!#FiJ0bj{Ft(+i7NmQ|`#P2}V6`~&v0+VF_#L{9{dEwO_{@|HF$VXE6 zDhi(Omrrn=c=v3{G2y*{wN-2W_B3!o49a)OFf8E0_uPd*2d;-7N`^qb0s9}mp~!Vz z;iJp2@9*p9W5{A`+!;O2v)fi&&%e9Kp)A(O<-PEpoa`5MS-M^+c;>q|eKP;fZonbM zcS$edI_VpF3{LTShKXLQ{EpytMZFx?cw17jT_@H@$4~`M9{TT~honb!)~9aTtQ#8%cKSYLG}|Kcsg7vrwUIDmNfM za*eclE|ubY%1x<0Qm!ajlxJvNca_O{RG0*OPI+a9R+$BiuXT4>ipry#RVgztHAfr*6Ss zdklXa&p9?o7H=5cSet%eP^2bbHDT-u{RIH_SB&D6OF!&#enMmH^Zny(`+v#kfzi<4 zz~`SR=?gpS-#F^;Ik4(7=YNQjxc)IP`+v&lbvGjkxKMm@Yt6?pjW+4FAqV?rW~|YI zhzXdFNRRqsS4l^(8?^0jA8GYo8FKHu$kyZu@K2j+|QcKy{8DR>&dP4W`!WdyJyjnt0 zrXGM)IrTUd+FSxG;uF@T5oO#rFOl>srh%}Jm(%R>|FYMHyvvIj2U2XK_eBRM%xX60fRiV)D;;+*eNt7yzX zN?wo+gwFow(WY@|vROw=z!uIM@vj>WAVwzQT}QxD6+P)qJX!~&qko`Y{9gxr^aI97 zSM-_h^ZYq(tz+FyLC|H8TM^JCk}mquqA-44f{?g#HB%D&eHUdrDIE845j)=7G8*+u07;5*%E9U{q zu?V>gBWrX=C@3|5rfe*?7w=;52H|~eNxC=aNARo*jDWN6!w?5rb8ZUkEX?IxT5!|4 z+3omteFijUGUpOs2?~BRZVUK%+}-7ybZ&pd*MK}BTmE_9mbfEY@2iXdyxMV@wYvej zfLy-Y={j^f=^}N~&$N8Ks6jyf1Z(}a`Wx%>{K}1)bF`DAQ79eKmLF6(wAIknjd%on z_wzOUu;=~uvX_sFdUU9tfuD*ADsBR)6e){7)T$xF4wt2;u}#d#O%qLX_yH-+puqq) zI6na-J00QG;tuFGQ+^<|SkCk$q;z+jc4)uIYA4O>7Vs@_n`IhlN_s?yU`YA$X4lIs z4KoyA3#4Z?8P`&adXpc*!Y4`6OD+duupB2Ld(BE5axvQ_C{U+Tn^3ubgKYc4&|7j8 zO0#YJu^dM@JZT{$4YmoG%A!>$$O@L1VU#8kYNe{Ct!vcemTaJyo)KsSFJh zQWs}sme@9Z$e;Vbmz$k5&1TbG(sPpA?-X~VK{3l^5+cVT+M3DdzJ72@yY$G&h6HAW z^m}ovj_ZBvS2ob%SUQ+;CpZ~Gj(A71ucGjOsSz`zFNh?VwYA_hE=yl}(46A6K+{k6 zNDsY&^~Rt2y9=YQvJEvF9%0aHXAsl&N?Av0%_tA!SnBnLiw;E6bvqn^?6t4z?;_V_ zg^o0AIm=bn8%qI08(2M7OheEbAjkxhyndUhlY|1lt2 zmM9~M$|yTg>)n;YB=aK@F~>%pR8O zMQze3VPavM1f&meZq^3%r?R;+!uY=tkt7R>!m|lSapU7Rb;7c{4#Bbp8C}L*%@fy9 zs{+L5WP77bq%(Le4_14bL`t(WPYI|hUiXa8k%p#x(}Q> zRGyP%8fZQ;7G^#LGeWsjnm0#*eW=N^brn!*a|uRsx!+tn4>;R$xK|IM}O^|cBMCmd89`+;l97C&?_#k zIhTz7jnC$o0hbxu5>t3&(RC)}CebvL=8#r3=8JwJLXs&T;F2=TVBrcjzlt6r_;${X z;oK2=(b(#;jF#$?wy(%G14xPQo8>JjL-tnzFDyyyfuBcZfpXr5#6rM{RdI^91c3$k zWX%9q*eT&Uuz_7}fKR5vMWh&Fr=XM?gc_0KAvM15xg^}Ool>zJq2LA%OZ~P#tQYsd zQYn^TJPt{|UPzIh=){ytCr{(Ox;QKPraIeMViTGxwbko?3YvaiiDm8bkGl8rK<2g_EUX>q$>^4xq%+uL2Y@VnD;UT} zinSd=dXWeb{;HG|52mnG44jeEm_7a+Ac(g`IWNT6$bp9-4@~|n3(zg>SCaxoe|*#J zFYUL#hU{KZ+@i}8!r>)_kqbc^`<6ur{u50i4{MzO3{xa;BwM_%^3w0S`j4jn1Y-Rw z;`$ee#rf~r;a>n;e=8CEZU1jVG5{Cr|0>IIGm?S}&8N0jYK=?ugvJ>g1JdQZ8PWH; z!-zPVcqE6ataF6g3n7e?BnTB_L5vIIXekuFXIE*oJuLT+B>;0s8wolV?aMvb2Eo;MT(%<3lR_C+ceDl}4C(0dXsy1;4}o1= z|J)J*D%lnP|3|%0m2O&|``X*dE(Q+mSL4HTs0@SggulQP4wUaM?(ryLFURgh&#@4W za&~r*HKddYcaA^svy9?|L>m;13aSD$nOBD7{Ci%F398uYUdIDOGH(ha&;UL>pNcfu zK!oBJ4Tw`&)*6!eNT#hZnV#t^6veEGYrcK8mqDKkqS zcdv>8d_rro@z^YRN5}p#m8fCFIXydixhuaxzav*!a#-0RqbY=y8qiCmY>ml?;A3fk zU6MFl1`6~CU@EmkE$a^8dnKbWa@?x1EH}K7Jv7@!WayEFMnaxQ>vGl5#`o>DeT=xM zWFwQ9yCvV=%R?Ro@DLVJhb}$OGdT#~xIRuSCHCK#!Zd;Zjtu6f=^X{y!f#{qm55o{ zj+Y?kjmx@U6)DCqY`HTpc`+w<`{|kEqo( zq4=(ry0RF3lR@D>cu)#njf}T=hy=*~Qw>tBz@nBMEuH8r4J_VE)9}_HXItZP7E!$G zWAWSLHLm^H1`{9F*^m%&>7yoxG|cWt7EylF2FabzBTvcEZYjPbpd(kxjf`TXL6qa(FF&O?LQPi6a1<1C1g!}YUH zLN^rGj%F$UPzi|e#WOmv)L0sW`TI3rqx9f3>5_S{b<5G6y~MORzMM_;SCFE%iwlg; zMkt2AY%Ht+<83&%S-)Q6rq`P|x6gZ{2zm0NW_Gf5Gc-+yd@+O?XDA-f>+oFA&)NZc z=(xM5X`F9&(9mkI`Q!8&UvQ&qPX@ttIJfFwx6e0`uXcL6&SUB#Aac0N%-qRwx|>TV zvmK;0^N08{cGC=1VXv{4A?!q?2%fSCN((3Hs_Hy~94n5y#U`oSh(N(F+``XE33(i%V(z{ja$Ps#W^*gi>+5Yt%O#_M{ocKCkT3L5&!wBZJW3J%6;w60T{CW6N&k?pKJPCciJsnlAL)@{(GK z>$e72{XQppcy9|C^>U$enD08ImO@Xe>D0xgYSAiYB(0v8- zeM}o*78dPjPAZTDhp~gBOEJ*dRlS7%&~~T7#c6A{t4u@5M*x~R;WbDkJipRbmv797 zn4L&B+_};?jJbV?<7`bTSy|;f{?^&Ska0MgQ=j_tE$7*sbI!uz6cmT|lD|BT2_sZ( zP7V>0q{2?=yOMM6Pmxgfsb60S_Q{x=1->#MgIeWG;Qr`Zv9>0oyB1Y7GJuVSt}g@q zJ~xPGrpv&>wO{In9+pBi3QbNeJ?eqVao0rQhlUnd#rV`1AWkb?PRZ-QpZTOTIB(>H zC>deFoxNoL639uHDfC@Pvpr%~bwFOv6&Kz|K}xue5ny53^#|Xv$dz-TZ7iw^ zA=IEU1M#+A7;9HUqzlf@*iWA5eOdl`q`}OmG~j72;V2Kn_v0GVp}KVtIC9#Dqx?Q< zOo>q7|3Mnmt|=eH>1j(!M(xe&{GlxPTjHCkJ1*Lf`M?ui3r2e<*1A2?8dk~DaRY}z z7ndGet(yQ|BvMRQ!O2)%&fiDIaNpZY(u|+s`X|)nsk(nk{#rx&n{^r3T15e}@~FmF&8O(}R& zMgKKS)l8sR|4*UPzoMW2Lb5pj50b^k%Jn}DQ-O{D8_oSchN=IpI44l9g$H@R7y(Lb zjl37MKe*9}KXhI5FV}qT1!2Lr!FM8i@j2}_tyK9`op(dA9b#dH?_N3KB*CW*gm&d<-vL4R3(*$#fFjk#plW>xz>OwEJSX9K?4XB^L1gi13|Eu41 zlrH=twwTs9B*CQGA~n#=@ewg6ji8c*XH=(IQusc$xnc+GjL_=hR0_2c7qCJHM&pJ+ zX!Q_^A$FoA3*%Z9cuHXPAcG0Kf)76eO8o&VXn};4B%Y&q!Z?52wyt)4yk17zRcyTY zPE2J#dp@v2;P+fsis3GtTZ#{)Mkk*+%&8D)Mj&iH!6cf<~CaL z{upkW)z%H0#ie2m5ZSy!u!BIlLn_944;6;~IXSU&1v=Kc4QO{<%*~Ji^7^?j)q02d zxph76y}bmks*naFb}NChEKspG(vmk;8byWxV^0@RrF1QbbTgn3C5pt+Q4s7nLOebr zaEWIuG#yKq45~DI5b>ITB%z239GjYbefm|r=eCm zI6|%&Q4)ybuXA5%(yf&G50a090w^iO_C=W<{!DmaNb+V*Ope=j)GS(S&?TT#yc1Gt<*K zJf2WZYMzadSab~v9A&U-8#4-;A{Rwg5U+1)jnd&ig3W8KwAGcNaKlmr%i)Q5NN0Ny z8E-#QcLfur75uzC-k**i1jSR5OaXd;Qtsh6Meww#zO$g;hc41o$@VobEG|K~`T9#_ zP_9tI*F~F z#5;zO)ciWByEd9xcjIhaB&t%7k_sh>{mT+VUVeW4H z-y@g?jmTLa011&kfo;GphYTVQ%V*ck{SbT&$IWFp`9KFx(heTM_1D9LH&l)}IsN|xJ z8|BPqj5Jg6Vi=OE`z`6`K}uEfq!xjjS+O5R&x(QWOE+vv>XvFuWA>~THBPpp5|y7e zuF6U!?GfIVm$osUBxRxFG-_GUBw917RP2ecs}`4^cIPBaCB35(Zvk*AjkNyB4TKK2 z8=^4Rqp_N%AQ_PyY9dni$tWjY|memjBIGF)0I zlhmie!c7Wv=@rcl$fLUy@wifD6t(Mlik*9lz~AQ%g1?0QCbn)ryLu{J>S| zM!rrpUJvxybRx$Nth`2hKht^)bT|5!zB|3t*ZR>S>Mlf_mNAgQQeY1_LR>0qI=!pc zq@rJx*W~WmQPE99)|=3p(SkcK@l86MTMsEoDzmWG9Q!LO*?~3rme06IJ{cI5COO&z0Q}qPw<+2UTeimp%i$z4q6mU8!(@W$|i4Ow{<|1fBic>As9fGjHh=*nbb z&7D0x&%CO+tH}``8_SL_(@eqyV^a=3xu80dc`wwZbd>I;=0$KVE~WE7L`44;2g3PK!vvwk=cM2$%;*`WT`?6 z#`PiX%Y&J=$wW{)p(d! z1*X);tCrm>ym}oQ*R#`wtGHdJ4#Cqon^^dD0)tZ)I#EIAtqAQ^EqMpPE&*}oYml`N z$7q}&^RSMT5b1pN8!8F1p>m!WxD}|OAvl!L!{p6{vESFXz9UDtFfw?} z7@{4{Id3>t9C_hzEZT8q_?Sz_eW$ye->f7ZG5cVM!WN{^aAE3tfiEEpV-u(}jHbfQ zV-Fz7SPdiuL3JPy+o*t`1rem8cbFw+Q{m)RLjMI3tfEm8J&=N~?SF2=2{I%qqOtRX z{e=y5RDfCsLxD}g`FmHe2?~}!i0dv z`3|$3*Dr`kaXEK{@ar-1jst>YIuVun67uB!p$gZ4vx={vRKI2*&8S*xuyR;$0C8s( z`+ycT!p8dI$E-K!Sr5VT&>WWSJA{(Tg70$PGbRTu2DTR7M8?K3yaMmf0j)v2dHII=HgcTd?rZ+~I_O1?SUnOF*M&IC9s4xCy#L6-Oqqtc&zI}Br|a9bSD_i`xo@}V0%ZnD$)T9KGB%25ZMevh z4|{SXu@58^>)R^VM`ExBM`BJ2fu=WVki<;@Q(yW&jy{f#Z_e%H$ixDI^C{N70=)wK zy&vnZU$U6dHxT*8=aF@m=vW(D}-6b6IsCKGAPmyLXwjo2p6 zUXlSTMK}2;CwHh{a;j>aFwWz1VA}hB&EU2d6)M-Q^-b2XpApxn2kW zrXwVoVGODw=AyypD(Nsx+TDHp)w>CV z_h!~HMu!@ItXbtgfn%3me$E)&tc&(=oIaThl#H2Yt_|DpTEr}>Z8kCd`Ml6LGRKOo{*viQPjEnK)GZ^zXH%)ed5SguKZzm53M9xC^S$awCQk`!(a7VxXIyF2LQ( z5qz@G}RJgrGUhwPb3BIO7DV8=A|()55)2Y@I%pMk>wMenoL> z{X<_ODV>3Pmc#lcN!&DwgWvc(?56>lMhww^+Rpy9L;c;(fQ9t_&4sXWaQ{zdaA4#A z#u>a?d(#%Uo%yT+x3gA|9eXo(T|-i#)fUiO;C@CNDZt&V$}UB)#4-2hinpt}X@Q~H z)tI~?Wntf*i7#ug3@gJAt5!2k(a*Q-{k>efcbnnEQms%Yq=z-zV*bCFkQ?8d$;zMm zzh5gZ%HG%)fw~rkXdAslrPhoN39p#6B5%_zcI&KzDc>l58U7*!BoJdlZ2 zS0Qsks@^~r=RlBS9UsI%EN)xKKwBsZKwwL=>L}&^T;h>oX$TX*TR}wB z5!YQA^lrbk*(^D>@0ckZ?dJ9x6md6tmZBlMTgl%$N?09$vP5)&rmm>>1a>X6lWnW}C*h>#-*x#RF z_`JD4ZS1D?M!^lJN=hXd%O>7opYukDY7EsZ)iJ&jWJY*i3{afr%~1ql{e+$%3c3{n zR<}^j4V)0d9P)BUm;hHtxx!`xI}V_OnHA;+FG33-7WT-4`tpIG230|ld3psi0iFa* z03C41ndoaOPWB^a-Df2cd6)Tm(5E>g5V790$3|EP$^*Bz6Lyu6{g2(!E2ZvF$43Jr z9vn73D((v%D*G?>hVaEk1?+0N%Qu2b8UP?$Z!=CiI(tr;rk}8JP5qY5)`J#ZXu2iL z%|$Re@#1u7p29Wq*rdI4N+g%J;H2aI==^H$_Uf)_9d8Qm9~e}Ccq?1&R3!+YFn0mHbm{hSivY{HW}QD5kZ&qx(zD#=a$sCXqF!;wc=iV(9bmkZ8lO zdzF%qh50@k=Vi@H`%uTNo!nZ>){^AUB>pYsQ-0^(Nm`NzE{M8pfT529oDc<$Jso>q zgDiTzK*=GybRmKvcWPW?4+SWRBbqVxT5hJHpK|EOn7hu+L5pb~ybu1T-brtYtLOC9 zO4lKOd7skj2#R z?762S6`1qQ!k>pXMRALFDC$PEqBshfNhp|-F&)i4z(~9*J>0zsCwy-Z^nP(mbtze< zbHcUzaLMD;5zjf)_c!wl{(@dFNwJB@RQh+DCBrGA2wMYQAS6N|C1^e{gTrl{et97ML$gsvpdmq z+Xf>kk&gMmYx;;766oa*X?83Xi|^YClsjHS62bHR*6=Glr|Dc68G)@b~- zVdz*V>m(P;B*4f%{})Ue`S@X9_ZVpCj%yw+3Nq?pm!!_q!&hf9qo$-9T$sbkSgX}8 z0eobR8j!Wc^|R-!PU!9D`VvNP4pIW!hmkx!CCK`~J8~tWvOuNmfLkHVA~n-KavJ0% zp`%%$Z+TRg<0W2|z-zT3AB1b=tt9mX3d;k5&_^+#EqWWh$U8(*&WWL#&g99yr}FS% z1J$J>%X46T=y+=R;Kr?!i_J4{P_`qZc4N}e8>%W3Rb?8@Pv9Mv4WZJ;9~8wm9$Aah zK8&tNV}w3sMo1-M6NA$6PqKDs^*4L1N^i!x2^76QeKma0f#G+0+4DE@*_Ag6E_CJl zNh*D^7inwy#9ygZ-s+js#;HcE5HWQjvejJ^1H|fRA5Ucains65iP?$AfQFdqWc%&z$ zl6hXPG{Tdimp?%u!OHqJ(2Pcc3Y_Bkk@Vs8vcjxnx$`8+z( zvE!znxwAKyE)=w(u<2XJ?)Z3|IUOO98B2(23)4**%;;Z-0D|f1CX6!}R7=9JLn8FN zQzhI4uG0!O-vgS6QQzUFxoo5*X()og1Wsr519Kdvh_;3-@N5urU$1r*McawN^WG9M z!1D9~(x~t+IKD;Fmr1lr;!qt=KrcsNW#hu3&9cR#VN+cI#K(v0H7=ARq?v-CDbm37Z>L}y&|8C`3fj~3zTR42$ z?;OmH%igek9G!}|zZ)dxI)krY|L`d6Ji#^w9G(*2&{SKWb`^VsQA`EZ{j$vwUu z*A{NjBEop`&S`Gh43^E@>*d-bm$5fg2M7d7LP9Uqse&NAtwe8- zTYvs}yZCwE^{lV-@I^O+Ta}Na=OXVlz4Vk}TKPfB>iT@dxb5Pp_%&e!UC0@Z#X%8B zs6iPgvbW|fC_{Sig9FVJ!vFYZ1JwZg{v^tan8`qK6YrD|&^)2RsN)FuX8-_$ zFT~QQdR7)NwbfSA-!>9nk*blZgu{@TlmD z%pxo{W8uy(Lx|X6&n`1~m3Uv3-2?<;G)-l$mPZU%cxY1-HVuvYHt3v{*b%f;g71S zS$7p^0rT!JO(~2bRTL2Xe{NOk5xyWH`YBO&cfxplJg)!^k6(`2(vPk;S662Z3_kTt z0n#Z^390aFue`Z!F@!Ul)CluReJc?c0h?@gTJaad!%G1^B4`3CVqesM?Mw%9muM1r zjl&(ogntcqle^Fo9G>X=L(9!imzU*em@WK$ngmH+xX5wJ=-ZM37x7F<8pKA5A4+Qx z5!vU{&a6D*e#c34K|A66K;I4C`_9QOlA@X7?w=#4fIsJXqTU*<)3C{Hq0UH-a3>}s z_O0p(BH|P$cQGx{>CvZ6tggav1g%0?JQCR%$KhRtgoM9j9o>0Zdl4BXEq!KfWgEmk zgfG0bm%=q5H>w7gn4EY(5}XmfSy>uwJ)(ex{}wHWs>P0HNhtHEcYTqHfUrZeq1~O6 zG^YeZ(GGu0YYiZAGA*@Jlcc~cBE&k%{}JSLI7hZx^rImt&f}KQ%~D}_PwIIkwvmYp zJF~6WrCe-euXv$B4G&K~Q$%OyslSv#1ZOjA+Fo)(wlIp9h<0)`Wd4T@M+lZ1fT!0q zeEUI8;74I@0p1R6>>>UyQM}~Sk(3KjKY?Mz9QDllCMlS8Q9k+KzRa*hi3&xM$eN5{ zbnD6x`*GZnW2nQ*MfJpv7zv0d(+5-X=Uv~v7;+_4-w<)JI(rhN1pvC#?&e$^BFV~! zXcNzV`*>Sm*n+x)1(XOC=s-q@CHgGp#Ur9f7LUaV0)WmdfM`lXGP+GW)KLtn`NtNI zJUO1KDsE)B0G)PX@ex{Ex?kqe8|7@Qo&5=gwCFOML#{ots?`YoUs!LJORBOtF?^dX zG|91JM3@>Z`<$)ZOD-iYumBP{1LQ50D$!*-SGJvyM3F5?On7AQ2`LNNkfo? z&B{dhv*hFpQeRT`kFGwp^0w&Bl8-!IhBhzI$Ww>fm01%65-%v`k=JI%QYpt>8+1nU zI-7MYx~I*^+)OhgI`~Z+Ww1=lpNoDcCZ&Ew$VcZVG{H+Q`CX)3EQ3c5>q8R5ia9{i z2&1hnp1V@G&hP~~T!eVO6wL?cVC6NQFnrqyVk!Y@mvf)VwsLMJ#FceTNSmp$$xd~A zr2x^v8Yz-C)Y{piGwpB;-po20D#9in%Ocw0EJxrO3bu)stFx<;JN#%jnT@^1gz`^b zeXx?wSv67u!eNL}7pXaB3(B`NB5@;Yw$-+hTXp){@-oP*rTU>)q8aZ>s2uuIfMTAv z|5c)5y)ZrA)wp~Ib*X7Uuhk4Hf=EsM?f0(M#T-H1R52uZ0!_EjP6i`6u3(;t0MRbW zXbydLhsz@RVm9wm9GYOj;qS}a1W#ri4o1r#u{xB|yQSCYK#^#`({>2#U;i+DNvxhg z;8JUPLb3@ma9=R=cdcFKNBpbA_tx37a*0DVD(=8eeJtr1joQ*G2kW@g7;QQsbZiTM`0xwNnOfafv zo8tJ@gs*W#Ek}y8V+oq9cLq0f5!q}Zr2sX$3f;}P%8uHB6WR0;S}w!MG_bKjp6*7v z08iFi-!$#(0s5%V?9WHXi)G}l*MOD-{@iR?G-b4~Gf$u0cVe6YyghG5`w?&|CV3^8~%&7pH&#+<#@_xMy8>!@BDZ zFP~0rRZgc=4L4BKcC=V~B($z6WDO5#?u0v_;cvof^u>JB9U+S?UUL*Nmj?Uhq9wAP z$_WKmWSwvf!bv(DqOzglt8xm~^gg~TLYnMdEH^m>D2dLozK48%W_~5#7J1?oVm%Ri>|2Wd3U$`(iz01ba zcEVERWJOg{69-N$)0u1nhdvt_nSa9eD#r8-!1t-(7=D<;)xz97MWMjY zBi0Iub5K9<+x){V-7)k|@bdW|G^o`g7i)oCr(D;?A6=;1!M@?Wn6D6K9EGw028fR2 zZoeh#XO&PpLU&8u)$edRKnX`Cv<#-=8kCUmsB6~jjO|FMZ}Yt72T79PXK$^PI5z^B zBwP2@E~!DbqkG~Cv}8NlJ%<-rRM|GdL+6p$V~NBBN2#_-+|?bv{Fz?cl!{1H1|2(+ z9KBKLirpHuGO0AFEp(bkc%eO&?QMK(e*=$nDr~O58p#o+J%!Ek&m9m{QKPBhb&>vk zxmJjhpwI-t&_ML_Ong^DP()DFPyAEfb=0+xqYT{47wNk(C~yBkFKM|c_WE#lpp5XQ zZM-YOg{0B-SkfsA4_M1HAy4SefLT`T>_GPu)Z4C@?8~_9R`wR@r6%7`KafAJd3<%s zFxz27VGnO)p0M=(egNA+>^+bkOh0U5a-&!0Wm&5A;+>jifWGO&a#H%$T{f0;*`=GQNmvmvjkv2t7;wP-&K1F6q#DpkLly z63z;U5^^*$Y9T4FgK8WL8k)Kqq0S>mzmr1F=dZSL=YRa7?@xiYZ9Feo8tf@j9k@#8M*~ zCWW{zb$Ni|3r{R$C){NaZabiRP2&lZ+ed#h+=h20(MyI^18xv%Y5a&nWM$7L5FrHS z47(fGbF-|CQY+LeIa;`T=K&tJwQ%)XUn}hUhgYXi6Y+F`TRq~*KAaXZHO409D+V$h60L8UyK*~3 zl@D$QI@wDc$~0`AF!2keC$>-Y@?NHzT6Bfb&M}D>HXa$#B}~Pr1r3Z<3&^c|cGWnI zeLF^#8+O$Rc^#*MNDephJ4$yXY)hbo4@)l|P@9;|1^(xKuix&F_Vg^QN-y{W%#(Wm zm;&N1qVEiAOsA1#@oGM|e}k1ull3SBsteWKCwfNson`RLQYdvlcw8Z7yf%KDfq%DC zJ?Qd2!JALsc>rcc@RxbG;anEs;rWO9VXzX3GKY8R%=C=3u9%ouN4$5Agn;!xetI@?e#T|9=AyJDd5Ita=~8*QxiWPb$XV3rNPI$h zev!3x^q<+W99A;soBJV1SAnrPbs&23Q4Rwl$fD?2CXxPtYk-{c0LBSRy>OW@2j#Fx zp(sr6+8#>DO-W-XNKZ@uKI#B9PFHOID^3+SH!nU+u*9Ze5XuO@h)J8p>z=!bB6wY< zoLrgP(kq%wH0?EqAk0gk47ZNq@>G?Sv1s8TD*nzM5g{^{H zuCAIUqMoiTrA6G)=dT3aMn`4v=XwZ`%Z(NT6EAg<^5jqDoaVJG+I+me(@mfcf7+Vf zV|}kY^o(ZC^POvK5h9_H6?mrVcugrXcjGXAx!-<<%d^Xq;A86H`M=QZtE zTSjwg3Wi-S)g*y%5C~=(a&v%9cg~M*h9AGJf9-WIlKl#iaGzb*Q_&UbK0~EQY3DOq z5S27LB&Wqc9m{zdBk+g=CwoTe)Rls*%y#;`hmv(X+?!x&@gA;I#IrlIZ_4T}mo+E2 zO0d~nXfLCTVa~-*%C~p?|M+?bAWNccTeNK3wr$&1mu+>~Mwg8)+qP}nwr#%ZbMK4) z;{Nx4M(l~Taz@~*pMo*D5{!`#+jS_Iz!D+m9G8gj7^HOXqxQTy6K=BJ4 zEv+vki*;@>AvW`~kY%3g5h(9;MN(?8%$@1i*p1Zk-cyjokTK^5>$^^r~Awq(C=P5Nbi^ z1URq7)dZrhG9%^XNI=`$sGoFN2h9y?uW7N1uq%~=73*j8tg#f}SVv)(4 zc{7oqry9j9=Ngx77O@I>-0S`lyEF-JFbg8`bcvt@(`^>|s6W50@!l4cw(%g_1%}l6 z|M*Aqgb@@Ivr%}P&y`$XXkx%wN4ZO##6=9H0(IE~Ddx5bgNP@UStwDH5rg6%Dg=bb z7$%mfQRM}BLUG4|!ELb_J7V&cajMpD-3U&$DYKTK>Gzx2|5D1bnP5BW1r4mohTOO? z%LDQb2k}YX!tM9w-~)N~!hxC~5VdwG%PW&&gl!~_Sv0I%)eJ_-%ag4Y|1FbSL+ybg zI4B9)Ee`n3u^XFaU+q6&u%h1jYehfIZ){f4{MP)3nY(=i6xP-pH6pYaz=M%Smr{;2 z&<2K1k@X>tJn|bj1D5y0vPF88eobX`=|J{Okd=ROpUOEYS8y|j-&TR5SW;qwr7Ye_ z%EpjL3=)K!RszML9F7PFn9PEWs+N?z*)rRvPb{D*f$gpfb{z>RbFIKa8)Npg0Yw;| z1XBRKYRY0OSx&xBf=_D4 zxW~9>zm~if{PLdwtJkMvzdu@NfF|F|vV>H3Z3t2q)Sn`7w03DNHpPv~hi|ij!7u0v zvu-5Uum(I!7n_GND#YVkDCHP5V9}yULS0lVBpyDUaHV7AN>-zrWR8z8MZRago34BG zvAPtcMq*9T4w!d4t~Ea{tcrYCj-Z;h)plU^IbEUNj?smEYDEI-#v@)io$XWiPgDOMY?Qdq^VSHvxs!bvPy_nrhvB&?%>^(UmUOdC|~Y((E+JSsHIqYjMg$+=C>=hq|KCe z%G+g`OCM<;a<`t7)s1%4TWVeT%se?h{vSfG6>sF4gQ;(phbER&5Qqqp5)E?#4EI#` zP^y~p9t@cU-|=JFuV39f4k*Cv&F>gdOh0R)smQE)!@YQ z{`%||%kHFc+3^I2li6_I0WfA+fPC{H96wP6TO&_S<&lyP7;c!Yn>`wBk#%lALXIL! zZ6uGVI4EnNRxVST-ot7zD`Y9ys+yg-iKalB*Kqo2c=mum1i92ll8LO$e)dRl`9_mr zGNM*&>as|qP;0swrp)Rq7XN*uMsHqrPyGq$GvnNIG_By$kLXg0M1+P3OLjwWAX)FM ztGwf&sk z;>i!;Mtiaj_*{?Xlw!_1?ACRQ23o9GL}eurRU6!Zu}wzBt2#15uBjjtzM7GvNS2;S zN%`k2(b#}UHE-x9SbK?<@+v4ejh1%PWSnB8 zQqO&$`>?l>V{uEj-LwFr_-cFRJqp~85Lt1Zal34(mi_jkxO!f@3GksJm_ttVn>1^) z@Hv$yS+H~apjq2`{jUdgtLi&)zr1xf>&K9bw!5}B&#T)Q`PjkX=(zF}Q>KYUoqK~% zrDb91nv%`F3x&%`wTgCbH`k-zDd2eI>F)@#Fk9iK2P#c|Qzms%)iZN>OEuK;$04fC zgw#+S0+O`IpUopGBtUp&8=;IoNc}$G!U3wm7W7kMCR|V_by^AbN}6p{>mBBbUJIR9 zLFa+UbSj=_fmiH0bS2t!C8ecJf(QDb<8PGKgeuerv4TmcKjPO9^pf6{UlFc$7TA74 z7jHX*`?KBp<6&l7MAxcLPFpuSaqUyEiJv!^7Xv(MyB**sX)TB_FAVGMs^-Hmb2FVw zsS4DVYb?ewWEFoGaTYtO6<1h!(>Bu}PZaE>P;me`GysX#4LBEILqQ9LO81ceK)KD^ z&ln%8-IiK%B4|6l(~(?W*|28x2?+aL^{uywYme^Oz#NKYKtWO``QqHqPV@0bxCVGK z-VJT3c?sV_NeOo&F6-sCu6Z?@@VCjnb{wg1R3q^pu(+oI+4xt@Xq#gyM_N=Vl&FqU zm9wr|(vpa3X9=n1wCMaUKQh~J3=7xXfGTa;6wt%z!30zU$Ffnaked;VVh>Z(f~=N9 zN{~^Nq)mTpQH^;t46l^pkAfb+QI-TM_T{%A_P}RUvpB@$ASU${3Vx(&FVi0EeR7>t zd8>kR$Ii#QETa3|0dX#YcA*~42XK;}-G-%8y@T`jVAQJ7tcVYc0z1?1LR&x2qwhlh z^nRf7Lagd*1O7yv-7eg0{@gG4N1~#kwgLt$kKUzNLW45TRA!mm8463Kvf4pKJKuNLMU`%v zNTX}QfOS95%#`s8iGbq~IB$%?PJ79?2hie?#uE0{;ACbB_5jLc53hmv26x!&BYSTF zlIzvf!qV7)mg2wh>X$~}mb)M@I$1r2uAZf+n*6Qwh5eerx1H5Zo-O<;#5{JKc5bCU6QC zn~Obr*?yf8e)XesE{)aGE(~eT>9}aGXxx_n5i`h``Jhhe<}a}7j?G>Um2772NJBwp zQWsf1=e27Hdt{nPsch*n2e{I-tM2ZH+*y>xbMa&WfA-V7Q>9X=bS;H4?dw<{iu@Uz z18A$>Yw8`j)aATtHKv5A?I4m-EuFeklGhzKcn(ATP&3nz~6FIr%|#6G{|=M8L?Q* z6zpv8A|9ryX12a`r!MYo{y;dBq=IO}kjXkBFkiHjK%N`rG~%9M^9h(hcYmoZ+gPu-n&_5XrMjJ{lafC+I_aur zm10Ui`Rhz0tz3zWA~MZ7{pZ#a6804ikNyniuR%|8D>tD>qv|9%{F=q3WJkvx<2;zT z>|NHXuHDpq2+XsuolCPptjASFW9-*8Y2IPqnNTR5vK?>di#Z5unkegF!9vMHRddi{ zq@y1)8EoO8Zr|{OO{$?BE7uttfviAd#gZ5;t%5GL0PzC5GDIZECevOwhhBPuB;nN1 zE*sDYqh0x1Pt#7>j_g_SxnlPTL9S1|J74E0Ay_9T4K>GhpK3=XVJ+QnAv;>Oro4GG zZC+RPC*{iKl$nD3sZT`^F{nl5SY|j{*5q*Rsg}~SYC%rc$c7QukCv;0rkL`WZBv$$ zf9h2=nu%MyeE*fDY}lyOo~UF%h1p7yc43!Nw$E~DYP3ABF%|L^W!Hgbk8R?4hxdi# z2!TzY9K6Xg{I4~jOv|fgs9VQh{!!$z08x;oWT|opuSz0@#&GHK@(QP5t-%hV7684@ z#VIsoyUkd#zE|1oko7r33lTLRY#p`>Vb`K78>bkoxU_i20>PLDp{CyA_VzEHrVJl4 zOC;IGH=q_j+$~S-W+AJksvLchb|9LEE8{&Vkub)Yen@`Kn9Y>lIJ6~H5Znr?G{sdP zarMN-zIpLkr{1J}mU;W_r86E!DaVIhN7v4;rSop8KR(tQ8>kfMOc^iYSyk{`zLzL; zj*WH{BNWI=6GO?1*mn57XKkI*YRjv%(G`i2{`HzwFH_?N655{m!XK3vx^%#sgvoUB zx(PBesvA(7;Rj_8U{$}CGd5zso}DJe4u@Lb{bN*o<<XwE+&-$=6!o|QNQdJ6hNl2W%lcMy zt#f)7g9p+N@bZ9W@CC0yr>4g5)CWsAF=N(QZtmk8b=VZRE>wTW^hMoRYJL>|X7-?Z zQ+#MFf-R1AWLAdvc0Kd=d}#BI}p0Y`x+!CAst zk}WP>H0=n`y(BM-ac+b077K@HWfqlTQae@7l5?jF zmNt-PD^FgOR4W;6%u~xYwv;}TB$8x9j#?ik6!={jMtd$J$Yp+rBGp(fQf7l$f%aH4 zD>EaW4u;@aKPrMxaT7*{-RNbT2W7HfhjKcjo!rPt9oxtsF+FEiE}Gc|W!rY(-Pd?B z;0#2h%CbHH#NECmD!e7EJ{@k$<{b~ACY6^!Hha2jZc%A6-lwbvypBfGgk@b}3}2wo z3_VZW2@nyOb&8lWc@-L8NNPy>-P2?;3@`TW(2Ad~$LTLSrcC5o+H9-L=ej#|Z)wS3 zOW(eKHEjC=yaC^qH!U8c-Qfz0*JkeO{Yk+KzqZr!ZN?#~HPZlLCapaH4c2?I`@Di; z`DKAES&I?2YRpJRdLBneiAfC1XtnSr(!t4?EP+%?jFh-il41+F$~g_-B@blPVka}B zvQ(zEXk#g-qffzX%Z5bkeUmRO<$`o?%3|=h5dk_1GOB4T-m=p^%v#?NKN8sHTc@($};Rt7b&8>fmVH|)cx33W5klJ)a26;fkV!i)UzO=)(M3OKF2d-Wdi| zjuF46Y;BPwVwzywjL%_aNPBBGiG=hPo0u`Q{8=lu4ulEx9wXtD#>lo|njltrl7%Y& z`+2M%+kIgP#@sn}m1MBSFKJL2^c?^*?^6_!{91Tn$0T$7iSh{mSpt-lPg;VNBggW` zOQBjAkOhV`$R&^9yfkzPqUYf(*oVKLA{db!E1=qME%(|h2R>JE=}zzx_~O$3(kzwh zrOIE8{^4x~?!>}mBh+B)g~!VOU2caL%nM`(8z9SP0o)$HM-T)1Z@PGDLKlw1U%w2; zN=uaq;~St*f*mM^YV@OAp0^n^%x4;NSRr~`T%+%G;wt3E!0c1Thr&A;1}%sZxV26O zA&;;H>e3V`}=t1|wapHT7lpm6ERU{f&^f^~Ag;nAfM)4_?72JTq|^ z*#Ej`#EGXYKxMrP&hqEP4L@GHw>pVff~<4lpLxhd$PYWFvDn&cb?2-0Kd8l>kn^VL z&zLghHkSRQd4{Q_L7ooDZssk-G*kfGL8sH4FFvLly}4dTpF1Gwftu=4sw8p^v&G@fEy1Gb;{~_v9D*&F!5k<+&t*gyZePl?`x&XB)S;<56%RAIzFFTS39mGSc9 zCFyltD^E90R%XnCawiz+Z3=eb%R4$t7FF-6%o+w zr@W)hdRxzqf_Lb&^oV_0r(kL(nst@ztKS%{E>EBAtrSn&4rY(r{$BUZO4F1bD~5iI z9%uEX%G6`M=T_VZ9i-U?U!ehZwAl`T$aR;#o1w5z-!>pE_54f2=U$AJet+1fP4rqL z^YlWYMJnvbG_d@*r}1`N*=8S_(xBZkPZNFWE`6czvhim3#@K~DqkLaujkyg3`L>!g z#c7uU4UliwyM_1`?nPtrW z?vGw*Bcfv+Ew;1N%dn1l?L5Yx+_0;q*lYR-K(tFPXeBX)VI3ob^aBtGSfdiJfB$ z+yTedoqkFq*`9Se1F|1a7bOG4hgeBGgDYZ}NZlji=uD7*<4 zul!}!XHLFOsOewlZ?V=}u}rZZY1y9Kc+?orqdMJ?t5(Qn4&e5K|6}Xrsj7IIOXwEb zrcF+3FFfhFXLdt(=+kW@imoQ!Zs`Qm>u#nb1kKseaf?c*t?2Oy1yH#dRmtH)?y|{yx za_m|X<|-bqU?PKqa(iCC_;TqHHaLYWK*qW{lFagN{5}@+^YvcIvRe*DGw-B=#*fy@Q z5rtG@j^qp~yQkTC&a_A)-@F3stg5TKx0mT*Bs+z=?HcR`@C%^oIN!Vpt9{KI7I^ob z;TAzd-u8<$Mm<2*NKq>8pQAudyn^pLvAv1&6Q!Lk+)2-A4GuDqz(&qcg^0I&w$-jj z&Q zbxaWC_r;@*Qy-C_iwy_#67r`S5-{LUq4M}M8kD;hGk}RfD&EiA5~3iyiFs|sR%@I* z$AI;c4hFck=s`rk7&O2ucqw>_2j|!sm-C|lxpZ>>J>3U`>jikRAc2FK!3?*U#9<+q zvnQG1UqYusGuH>SVJr-j2ME8!0GULSXaXjCgnx#OdYq?-l*Y%vTcbpIfhHBF7XXLT zBdtV1U&tcvQnX~Zym^JBc*Ut!od5#$NhLj4m+EBR3;p#D%pDR6wDmQ(bT3sD;0EFh z#DJq)tG|%@L+e9OuX|ey3xl&evS|#!vA#nJs<)GdMyymn zaq=|f@icjVoM}ii{1%G!9u#mUEN!THlO04l>96N)UvZIk!-I1h+gXNUQ?h^^gFk%9 z6#i|1$y-FQKcdDE0m3v{VE`sf#LyO|+ ze!sBKA7u;MF)NX=E(TyN5tV*J1FM{EegP|dW(j*36f9h0Xf%!I=-EMTDeglGK-h7C zTSfc=#~lH0TCLNDJSk|rqC~VPYYVc0=-!^C>X|sYz}h$igrDE=2XF#$=3jI-kHLF@ zZ1}?nAD=!=H)>LZSC_EX&$KH-1mCly{Rg=bG#vPpcQYqB=nZF&w3@A3pyAOor{cm0 zGAz{ndr4?->X?32&8$&E;#SJXoL5g`xvj$HR(6{!8#5~e2kqQBnR+xC^Bb*2&cek2 z7?)R%nRvO4lJ?cl5VVu$*x|uLRZUMr(QvtqI_A2|O--$cZ)wZR)tfUj9bYoJa3@R6 zeR7L1)QG7rO;Aoke^nigz)hN}YCC;kSvH*~tOuo!?EI4LyWkG|!dOCu$j4gUn)0dxwM5&B~oT;=+ zY*A2#j^F{JXz0w%|E-%GBKEAgvnUvbPL$F|I5LdaEm2K_)`h0QgCu060nW}djJ`YZ z3|E6)9&Dr}kDL!rixv0YQr<$m5z|_{%hhV{rTG25x@-wq;q_^Gd9H5tZKYf3{b_i4 zj&7ybt?~Xgxc2Q$zf_QUb)I7NZP%rp(DD2T-BhhtM z){MBHFU}hpf2Jl6S}~^RTtY>U1?Nb&!b|<@cp_ zkayc{a59uvDJ*bDrru=r-ubJ^hlB3H^p4gGDs-(p_m=w_x$k|atlo_HnME#b2Z%jd z^yG6>%?A#MG&o-<<8n;YNlXT?OCIRHqqo)JeAsh#bdK+w)Hh3ab$HFo_6GsVxOlf{ z@oP(CNdmV-w=w0Ih|87Y6`~68BeC+B%sXClv?m5`kWegO6;L811rAbcXt7Eg)Nd@y zgujc35#@$tY|uSpQcHRc%7aCof8n}wm{Zx*@ zo0(w7CJGR9;|kP?=eZZ5cPuER5Dy3*z)~`FENms;13FzD4Vu20@ zSjYCe022Y|Bvq;l`dec{MOfMg@Zu?W(n$dE37rDjVz`8stMJjOJc>5sH|x!; zq)Q5@45lTDt+6W<#EH)yiL*1OqhKbu3C`;5Our0ohD24&QOK@x;s0t0*qJQtuLaG0 zd_+?MbOuHTTgco{D-q8!tx=Fu0>n~vYz-qieX4-EU@3=MS_2)*8Hf2@Mkz~_bY1p` zuy7B;m9tpLv}X-iL#_P_A_X8zRzJ;2&cX@xeM7SfdEo-2enn6WMh(w2GK9Ei#O462 z6~@@VmR6fg%D*ja-0%^2W3y)Ka>KPa1M_LMe>d55*lmaIT5Ze~)j4j&3K0s99@=&kx{!Zy{1WTMe_}}XNBa42@ zLpnhL8*mNqV?KTs8igV~Im|F4v?Zy#N}SjjL-rUlVY%!!QVAlY^`bJPFq3SBvSlT_ zeNjRgF+lQh(6Ya5Q2qP05tR$w#**bA0}vsWi8E9kU=cJ+q@(RI^&u=%W$38m4dL4_ zXNvr-#Zx~ra0S#DV>)46JiZ`84~QVhjoMi zM7@9GL=tQB81;!iX} z5g>s0pBPg#c9IV)Sm^;k6kg$<$v*)M$IJO=!~_p7|G8N(6dQqmCNd9}V$JWL!4Sn( zXaE$&&PVVU0)axL5D_B;3Wh)-Quq`3-?<_j%AvqN6PbrYG3NizV2W}oBm#?a<|FtC z0YCv#fQS(S1OuP|DL_R2cWwXx1+0MK*VjVJ_{53D0gcZWa7c{%FOMP-&Gaw-@ndD7sf-XolXMjAxflLI7H0k~ zXy!jAd3LJq1}jj=qF(?JESy0h2vZb;qVGR(J_PW;IMNV^g3Rxq!59QlkOBB-7{VdZ zT8tDZ2D|YRzw4|~J!w}1p?`H^cMhNFoT#elMUwscq;=vi?+&9gc@!;4TjY*S zSnP>eBs5mv|I?{?-6Q~I9$beh1u*7A@eupKf`S^T8*m4fi1CZ+=*B~}+_L*D=gcB$ zFXt>Z{3NMz>~kz|tT-t=aLh=GsAWDZ`cP4V_Qbkl}tq)bep@L-+&n(Q(6>jyZUW4*v71|1FfwhdJ?Ks zNpvL`qW6lpGid&4pGj9Z9#v_blZpQ0jjFs}UxZ>IOy8a8x9a^K531 z9y2KN4*4GS^z8RRude|Svm9iBSC(>DbSuW#`=v7a46tew(}GOFcLAT^fLruv^z?pT z)wB)SVZXKiw0>FmbS_o2IO9z_;?0^)WZ12eN(LV``o#O>;8}7Y`(E-%)4sfAdp#BS z_2-l4U0FrupjYQ0clgq#rv|fOBw}THBHfgTZPj&6)U(Sw_y(nsUX$*&lFmI`6F^m> z9zD=I;;zUd(ykiH z_3Xi@(OfuejXB9vZ8r|;;|)|xcvUWqL8>;#F0zJRncyD%2W1wKTK4LPQt2c4MIp}$L3l4!Na<0GoS8z!QgW`M`sAq5&&Qi=b>g6oF#J1W982% zuwEqk9Dz7@Oy;3(keo(FZ!#dcLWYgP*q)AGKGJQ9qrxlMC#d({{5QU8yoVwTpe`!17k`=<{rbU+eSq05xz}PW{+Fn9ADf64dnc-enA} zChQoWC6J+We`4vMp4%mj4v~DYHZog2sL%V+un^InJGo(VE3&j|+lV-7^RTU|N}FdW z&z)#H(Qdq&hiN~xr_CIfJ$9IHwH(xBQ_s&H^43}|z*=-an@%{Rj86q%+(^i}EUm`~ zD7O%pt{7{&l=6)ie*utka_`d=*UfZb77IktJbs9Eq^YZw1yNyA8V~vFdc`+`ezt`ZJ3rqUxLTm?;8gR6hU}SBJ|iQe z{0F8ZEYT8D?S)w+T`}J*wZec>4=kP;b*$@sjwSZeSr)lrQ-c{$p&f+GXdyZoUrTWr zzjiv*zY20C5S^+JvV|sUAkjT=UD!|?!*RHAOfK&-E;5G)v+pT0DyvGRA?vD|;&XM> zC-iSBz?7Bu1)40$05$Y>dZS%uVI5)dVV0zyHfis<^FI8WQp6_DjuZ!2QP@B|vEY*3 z03i39xT7P+$npw3hj%SvjP=XtQBnJ1*~}Lu6V8dX@PoKSk1=C1J;-wxM!)MA|NeoE zW+Vy=TS#l4@D(yjL~SHDKK%xC9cGpKzp^(jyW?6=l>x##>x6mh~>X&QY!BD zCiG%f({l2*0e%)*2c0bQ1oKf24;=~EI+|d zm5`8~n-(n_6FUJd^N)Zl69WSS0V4w|n-0CClYzB`k)W-awFv7#X4Hg$?W_Of1aIo&FX6%qlyX*r*Y3{M7urfS84~2@}D8Q@fO)epp)n zyCKrg*#AW|je(K=r^LzR=P9fWoJ>SajO>g}{!ea~PTZtzKLO0}H4o_Ul>+D-n@%Bx z(lVP8-22QNuK<)>Xaj=C385W-WV`Gd;6wdqbFYhwd2|#jq33HUr(EME+iPm!5lL>9=sKAJU)l4!0+$8kFK~ zT@^K$+IPe#ZK1ZufR-myKDxrorE$m`ha9T=_J@|+z0gm z?(eeh;^z48un+MA;93zrvMJEJFiSFT*+?Hsi5NS{H($j9(`y}r^_G-YbG zAqxjbCt-5~hkwwJG5GJ8ksXR&-NM+(+)<0+hm^-oz{bcxz|71{z|6tjwqZ?@S`6CS_{nVWCk!9Bh; zo2m-?3jL`n$aVgGfBTD28j`U90g1z**3(3IgmkGjCnw&v!~NXbd+O78Fey~Q9A?APxPBYUf%7c}kIUvgLy+^1x&aiOE{ z3lg|Lw{kv$R+o7}>Ps;E^FlF;`5k_IZYW7X2)zBW1e1Y>k^4U7y3#Cw&zZCA&4Ez# zs<|;=NsOk~-vhagwVe$nX0CTfi$U-f;*SVCj6%*hhSg9mNpUB4hUIkb6mtfbr$_7t zkN-l?Vnyav^QUDel+-W1Apku#_&`ZXJ}tHl=IexDd{n9~yn;+U-ozO6h01}oHAGvS zjbJkx=eH~DuZWGu0}lt_SJ>9L4G~+hsl}UP4~?yz=~g^1=4KP;3Srs`k!MbmpIygB zB3Fdiqn!tQ4$yPWgvW3W)Y{_2ZE6=`3Juv>qofL z??G0@Tw?JK><&5CN8evKMZ6AJIEA}NhY`t5v80R;Xpv84xS+SJ4sQB82K*ONBDty-p2eMP93`D&gbn!clt!@fT2 zTraMK1D|~>zqP<^@PzGn2c$hl+Px1j?`Yhkd1C%9h`R{amQQ&4U)&dqTGG2ia?&S!9-vmVf$!YH=j#4Y`2r7c z@95;e!@Q)r2#ZIC4 z8#Fk4vogPaj~!R(nNl`Bz#bZRPcyWH8+>h7{VmB+2OdW7h8~gavNYCu`1=O1Nx9if zB9J0H(WY@Y>5u%N^Lac_06!lBpFx10u=ZU67Ljvdufx>*hFLH zLa#Ho(9+VYs@Hxp7Yt4JS5Ng9qpO_zuhWZPoy=x3*=){Z2l0D(eF0u(TLodrLowsH z+@?-)Vjh~7QVw&XO#?3_H3(Mr`hKg%EGN#IQ9_cIwUq^$k0k1z4Wmtz%5xfPYJrhy zj!b2|RCQ8Q&9^0s8#27xbCBa9&@`ESbDZXqm1iJKgtV%(O{H1DqHK*ZQ}pFQU9}@> zg&xrkya`q|O!6Q^aj||#mcLbu;?8mxEo+O7-Hlv-J0qT*Lo%SRLFpVdsLUC``N8ODaMQ6wwqkA- zyp-IW|4iqjF0E|RIr1yu~v6)qDI|4(bB~%rUO~G_sVIMJ8-bv2GY7Dy!^9!96O&!r_oZAs$<$W z;U?m}OguqbM{9YcWoXfcnhMD$UF-BWnjnYOhd1rj=!BoQEGyUSz=nd_>1a)(N1rul z9{?s5c3=@_Qpca}RPu@$;j;6OLLSUP(Fz^Q->%Ma<^<*AYHF?N9AJE>n1w@6Tq6`p zgKN8C6azUV=&tHZ>~4GIM(2pxu$Cs)0mHvQpH)|>bX2Vqt<|Rg$ltVpe2M5ndAIjy zV%2A1$46QgB9)gK<_E(xf}m^lf^5_nwz$PdnfHP;#t$J`gcQHfrgBx|k+4VxE3eSP zQfqRMvgJ|8B4ke)ShYS}o-uTGp1IWPoL)v2x`2v5yPEwLY2@pa7~uN0+B zRv+YF#>BTC7Y=;Z5*-pkw$LI=5gOJE;8BMr6_ejT=sS#oHW!briwrsm!at5GTiIe@ zb5YSQ4r#7!>TCteQtH(3PCELOfHsmaibWRrNXiB9ktm>9wR1?;E)^ za^;3R-E(c^2`oN;qu6y9`ztP~lTCD2u_rkCAt;x(6Ro!KTgr;|E|REPTBG=-GOESM z#5Id>MH8Z%l8-m2b;DwbGfFODJ`aS-o^t$-=ooV)jpDR%MgVI)kZauC1^@Dlk<-Za zK5gtXS*OO>T_@1poRgWmn21N-sbkL?p6W>bNfYAiSX~3927ZsJ3{f!{w@9PX4AEUw z)yUNuRZCt1BoDoNLD(kYk9e)DP{boz%<2)<4af?Vh7aEOH1exQvR#jM4kAk6Wb*En zC3dpuM6MK)^x(yO4b@_ozkh2IB)DOW8mYbuEx?hwhm4E0Yg>UuP5OjF)Wv94RU6h4 zoRZ?`7*>4IlBz+`7?c6iqLC0RnJ;V&#jeQ;j7TomfM!&bw6PK6Y1y61>Z&kxdf5w1 zlg9|kItNI1iE_#WUZUb6uI2dAIHGAcrv)!D@|xI@N_d6_$!!hQE=eFLZFT*wnoc8? zp)s6k^9tWYEzxkWjzIdw9>egP9nuo5tdc;^s*#j<@QVo-L1v{;8;P)Lk~xojBD_Gf zO$Cj$@wlO1ceFRra*v0t|8_0O11yiB)?fQ6a4Yb2_+KA!E1Rh$1!eDjFw>+@4J!M= zt^Pdi?dupX=b%B|k^X@b%t-}YP4a%fdT!m6BUXKuzQ+KX3fiYX*vINr<| zypa~(s7!;&Qtlcr_*wFfF>0gI)wgVL>6I6b2aPAySn6gRLMzdyki?u-#0gR%D-kcIQ8=| z9A5DDvh{c+orF(YJ?DYsA0F&1C!-*CfBWl^a}Vh2odLo4?q9 zb7G~X|4uaZaykhVUfO>bc3_6<{MgE^n9wk5VZFg)9~%;}a~d{(aBWxQ3s&7>X;scp z@l3&P6ggZq+G^`^Ls%e1$HV@)7*6p1)ReMI46bxF!+r-3}zLmqNmeB?K2=T3}tX9Rbag5KIxT zP{Xlir*KFiQ4XQZBRHk8H>=63y~Qwx1(64bxRc}1lZ8w0aGkCcDb9Qn8|)z24vrBe z9X#C3g5b#3{edh^0|yxh;u5LEp7Bg%1G(-d34E0m4K$Zs;7xYw&#be`W8Yzb1WHuFcuf+zHs(iTgbyU=k&*7&7g#$NEGdT~mij3HjR; z1EQiIWj(Wa(_v+V zVoQu)J?41r6kZafX9f;@Y)DVf*gqtU9+AWX?;{;RW1?D3#wfrLvevp{E=ZoHlkc>< ze;SKe3YUe{t?Cj$iq z=bO#fu+2BH=t8%CvX|7loIQG0`{C+Yh%}Ia`Cc7#a$zOe7wI7jOv39A3C$J%>ZB`Di~mw@r)f zxoOvy9AoLBUutEvU&5NXe^wmjc0M+)S&ftIYVl<P@uslL|NAxNKS0qsA%{*sW+Yb;2sNNiF zAs;1dvrS0(H!Ur?7lJPZQF?PFC1 zsgD;25i@JTOxjI@0={?pYWwJY?AhRz*SF&;URIfGo7uNFGsnT&5$^4~H%;9IP!3jvXk!6gSmT65gp66$DmD4Q_dl_wT(&DoNeK zx^G1t>+jGph=yI(hTi^lh0*mK_WICJMdC#y%UNGjCdExNsjgRs^>MdYGX`{@0kUfI zUW9}%X7&k`O*324>@@gy_6nX>RnnVB1%dt37`5n!?y7-jd?g2`TG!X)t;6&n7wf($ z>@b(qL61!g4Ie_Du&iXwU1i`aL)+_uyM=@- zY(w^Ex?-O0y+w-o&q6q{FLT>BCknEp;r>ed48SX|GoyoPq zCR)n1QTDzWY}(;(R68KCgii64{OZZkc5SCWa9Pmcyn&SywlId!qpjY*MNC=|w|huS zU{toffMqrl*$CKI zrc<8QR7sWEa#xxZ$;&1C9ol>P>gW)zX&QCmn_-!V*n2wV04`0%zV)aqKY0P}y?)IF z=`+&IT&wWdDyDk03RSh`Dg05u(KgHIYG~NY>bZNb+%=pOQ-d#_z~WH5BDjYtB^Jvd zdW&=~>g{w;m8x{7=46lG_j!c>qJRM@yGXv-4$n;S-9U4eH1b;;~1D|X!4Bd zO(M7Yt)JaK+9Y((z3J#lwxAIzFLK|IC z%e8^1h-fqpc2yK6CK{{#7%*wi1rDRVqWQzn)!klkGt@2l#By`H5c?wzc0vMwJn`J~ zMd%~H-3{x^p|fy^P)PB$*Bx_F5Sc0{U=d4PHN&6S+!6svE~@5ua}r(ITX$zwBb$}x z%A<*alnUQ;C)$QB?p4@xRvgRQQhE+MI2w=k)r^6}G%Dj6mo{sbgO0}dt{uvOZBJQt zb=B#5JhFw-sO%6=N!cd1U_WV5iHnJzPArqH(`%t1&)lXob)&&pa2bhB1ExB)Z(GqE zb$1tb;h0h`GP#WGmJ04*wQE)8&wwt??5We)SbRoC?BNjZ*N$)Q2sVV6?BwSIaHnrF zV@&YW`fr_e+)zV;ohkJ7D^&+bA<0{289p$NL}MKThx;E?SO zDx-iYJ^VngY1OQy%v^UH#zr-Rfqw6c z8H`Uarj_-;vT2nyE>_A<^s8lSsG~f*Dn_<;gbH}V-vd9j<|r-Pex|s|yhXRlFFf(^ z^|~QE{N6o4R8`B9X$i`p`w(TPQB%2jQZ$~pwaHa=w(4Cjq0_=7p0Fph)R<>aDqo+E zYhkb&BzvD5JU!5Iuq$;jv+6!KdJq|uPCL%2RH@9egvv+AQh)D>3#MGWtMD#$af9?C zr)jsjs*lhXdX^pS20p7F`=|veGBW?&2yrA6k_0ghMX_5&(*C|v@0m{jhkwD>cHQhT z8*25JT5rEMm#dh_D%{Rdxtq~zzft3F@H(8;rc=?ef$rx@$b<&m^PQM-jYEyMpUT@q zQ$?>!?(4%7S)t*2s&suaCN+Tuj9#Vee4b#=fkheH+r+yFYvl#%=R@J}1Mv`@HjL@j zFVPd0+}onbyRYT=+hQr*SU3fdKfb!rj0r>52oiODjETJXbWbzyGg=J;f9cF3Cmsho~El9$|clln04lLq>b*1(`5a`3InCjdwdVtt?2#Q54ZLF{AAP8 zbj|D6i({l|1o8py(l&Z;^Q6*T1X(>&%qUZ)EG;C!1#3#^Gx!U;WeZkdBDxpvMZG+Z zk}>s?S3@hOx{qa$$icz0!Rfv%1FXIo&nC@?jZ3$h;ZsxR+_`Jka}T?~@8eH_ri(GM zmsa}l=LT>_$M0p1Q5>L;B)i3J2-MP8>x&k6TwKqXSW>|VXLjlWM1`>UZX{NrbU8qS zt)Usf{GU_L(LI*KA6*lk?Uz#?L{}js2(sVZ`e?^M9r-_PPoID}xRdCYmk&FwVJClY z`325v&Q&x$_Z}W6f=^0yQMls&t zHrl2AkWvq4rC2wuNo|BvGH@_9+?T@7Vm04MS1wnn6o2t0*i8%_3U=dUCNqpoRh))E z7#l2BWeA@cvcK?arf7F^Hvpl`tIr2|fXBl8o}8KUgR$0e=y%^tbAIyDGNX~7{Y0Li z<@P>#-EPZw{7($zSmJx~HDXDWkaXKD9SVs=WNLeXP#-8`>TXW?PMJCjvCsjlZ&9#N zk~o<;)@)#+L4l>c%qWfJ%mapzSUz&gYsGgsheL-60hlP3{Bn6^H?Jzx^bwR2@X*+- zfP9~ZgHsF#$vUE>`Uom)l*8BJA5ibc)OVEWam2$UEk!(HJ>mpWXT}bShTcEDkBTe< zYiP386~<_EFkVW0IBsty*5#I(s4Y=2;R-le?VeF+%kXqk_amuIQ|)Hm>Am_p44iW6 zZuyf6_s0%WaO>pp+7;?TD-1L|;Zha8`!U3k7>n3stFbaY-qsO1hua$H){+)(s+*@+ zl~#99H@5N|I9Os}hAd(7#=r7JV5%FutoJCIc&J=>sk#UXOuCIr<4tJM$Uq14H`V>Z zso-RNU&)Y839oJ3#9+Wp8<n(Oe`>=vs-HxX4HN>X#h74xAD7Z6~&lL zu^+!ss;lZ?A?GQx^rz>dxe<0wHRdL8FW71Kpgo}mHT)~ zXVdz$+_jh~$I{#CfwZYbTz5{hmF+9c(<=DtGHY})v|39851i; z-n)P81M{vSd8{Yaj*~dIa6&|LT5%IZy5fQWiiFbh9-f8j`(lQ%AahCxXCUF8&2$G3 zE@^HU05AGC387w2?8qdasIr4i(x^*+CvPYC9h7j>&6CS!h3c8cspRJj`y)8IFz640 z%tgI(i3b2EWMAF-$`HJyj773tvoOXwzNUHVpQp-L;h5bc`iE1*a5|3G&G87w-y@wE57s2tXO)S1rliAH=fyr9xsAM6XR8GCK{YDf<2!o9hkAP!of z3$#DR`~0R#I%SN<*J!Zo9CV;-vzF8v8#)S=vrBO(L@Vh`eCHc%u42*2YB_m%w;-b! z0mWLMYJV9%Q*1K}w}P1p4hpzLN0^ZoMtc2F=GOPBK~Sj%yY`@)o6+(-9=AzhTOUTBt#)$qU!`s7+8sI!ad;zYv%)N=3gym-u1Wvtb@+Q?5`(umu zDgc3e`0>rV4h+Y!H|n**|8?A}b2GTQB9fkCOhwgWY0DnJC(R&kTO{qA!DSWXpfSjH z^=&n^P@3cB;x&Z)2ycDf#c;}^v!ch!@dKfkXcC8S>?1Jp9j@LlMr{?pFx;Q~O-xGU zBgtyg8=d>+Y_sJV-4q)!0L&tAXHtN3{rY3~Zib)Oy&Hc}&I+`oFRh!6Ai8|Z4Mq&c zEz*+cbeL<6JIG}dWRJBs_YaS+gAR-gCQU5h`w0Jj zwsC}U!GW7qcB4d_HoMSb!K-FgzE0lfT#S)xpDEJ>W2Xrf>$(})!ReS6@HH?yis! zu*z!#I$QKh1ALi$md;Ao|2gD)NpBP!8qSIa$PF67s3hvCymQt8(hgwYjz6y{Wpf08PmTOjJdZ zXnuMC*pSLT1Oe~_&hN3^fP4h@z!xWib(8NGi~JNHXt(7HeQ%t_+p@EkfZ!j};cr+U zEUd4rZ)UCQRbO9T{x#=4UA!tfcKSL$9^?(@lWN3!RrD)7w>PNskA-4G*vvn_vp&ny z!;sI^K^?E~=JN`TH{uG03}|&-zOaDP57n{RjH}T4N>FxUtpIY?>y4sMdRKdhlTu>J zb|+$8rO7Owlq9Qd+T$)+>h?IlEVMUr+{w1;4@Vzvrfij)BASCqGhsODSdEZ3hz}t) znZre@TWnpO(Lsk}T`$1GALorv<)`}J(KTGEpyAnmbrXr>3q~9Y^bAQ53=CBqZ3N^&tvjV4tVXa zn-R~ENmrgj8{dhF^r{g`J{6E=MrQ9lHMw0eIq~}(6dYA`jZ^8>Cw*{ya8|O=ecm7N}HJ#9hr;uuC~HQTf{2t-yZ=B zpwD+YjTUd5j9u%*ulNrrKg`X|3JQWkqEXzHGCU z*4&zs%IoyR3SAj(<-?2e!ECt3PNNi$g47un0VmeQTw0THx!xZZv|m7vdSf!UfT)H7 z?(O?BWc5yfQ{*9@m|2ekm*%)-_Dbs2+)E#dNb|`2Kx@FZL2g}MLmepb zNb9gAme$3>EpOPAX5);_1Oymb&yPsy25D1=7eF-EC*R52Yw_)6-o(F6(s@sYE_p*Q z!CLk)Hcz(xR8av)%|_54tg>s-&^?}Gr$VUPK)Dq$}992EVl^6jMkY4SKRJ8+cRNjnJg?PUFB^6f+*Nv*Y&8f;x&?C8S-}$+X=a%(9x*e`L6O| zR`NWA{k!r!Wc_*aJVgDy@;oH{0rHj!J5BPIvHEqWkCHXwVXyhkDq)fGYsCHQ@@u61 z8S-m{{pa#)Wc?NLYefCy@@pjhk@Aj`b{(kL`Kt8&PV(h{cGM{=WA!UgE%KWs!l(fV^j~rp%f9{jv>+rqoHIf7>Xh4Nc#Q8IO3GAtrp@H zz9o@h5z~rZ(qw1Ez1ENqz67khs8}ho!RS5S6h^U&2tRRV+2`=4_Z$1TICWRuOwC_ z;2v9xY)(4YG_v3900U^eDofBx*mwPa=GhD@D=oKmrm|xB(JA}~A0RaxZ6je(uA08^ zYg?kMs#vnDqIkHna;SKsOc~usM;+6`2U_3aE5)eY6rT0JM4o5N8irz7(x ztt@pJg>;(MG*_DOSYcYx)B>gBBVa1ZhcRffBhS@NmlKc1vK4qMRP*I z#+hq=(#>5LUO~>HA*I`^S^=)KGgZ>PaU^B;`DnW!io^?Qq>HLPj|`lDF*_Z&5XUqy zKOg_Q|HL=0b6j)C4CK4I>_7hA$c_S2(f;071IE6c7QgHI zAB0Dj{++0fLQ@$2@Gvi$Qzrg=_X82&xX5?Ev!lV^rKd#wKd6rA{Xb}qWc@!Vjs*Gf zzq#v7dH8SKi$p_q5Fce{H-UGM9!c{*jpi7hod&*6awNhJKynPowzk<1+PG?*ZftK4bOk>zXGO3R;=_ZJln`W6}$zU7Oh_B z*Pm<={%~;CZ}w277>eY@%D*DB&H2N@w5UvTvcdi7kXUqnC1gw32!S8z^WTCgeM_Y_ zjmoy?H}aPNA4g}AoRZ>a29w5Mk)BfIR{)bnS0pM{{S})nzz^GS_X+l^H*&)2|or@EtCXmJb~DK@Sg7uI2;P z*g|l?rGt1w$bkF+Cilhn!}q=PyY$`dV%*Z$!rr2|V!cAULfE?OO6o$|g4trY;=IDV zqO|??1org(3Hu7^N@a__E6eW(un!m?7$49E0#&pRf-8nAB*(XQxOVV%C>)>-AZ^GG zpmvCM=ys4ZNNtD*V0vHxps-;tVnXsTr~vyBVe#r5Ustw;8S(tr@%-vzaoR`$J@l-Iq1Ealo;kqGDQWT0%ro zd+v-v+S5?PP&?n)VJ}Lo9}^Q>r&i{c=kpNODR4$(Nb~iMulMJ(V|2|OGQ#?ncxrFu zMC~))I|M>WvX8hCLIJzdwa;`fO3z0udZxC^ZX`*iZY#O9Oo2+Bk)$U7yrV3}tPJ@g zs1!=FV$Ek;9&0)E*?F~WPra7l5jyob_R_3{^f(PLH%i6zZ_eyC zetHN>dWa6RJG+rsD}q+%_rb9=W`wI>Bp_#>FPVO z;Edn2@6pjwy^Ak|4S)UX4_uo0?muJA>vSK($#1~I0WPrM*+7K%jzCwy?_FkFs8`Ik z$WKrlz;EB)fIJaAA#ot1fHy%lfkgeP{HlC?fP5f3!J>e4fI|Ex{U&{7{RF$ny9T>9 zeWQH=AU?n!uy0UL#8-q@z*l@%cvo~+@V1Dq*sd_HC>%iT!0qsFz^-tvXs+N(2<@^@8Ky7|}TV`97x){|cN8s&05w?Jxfn-5eeaU?X{r+{$ zE4pm_XuFKJyme7*@onj=|9+LBnvsqmDk0f`PJ!EDW}UhkfHne;)pg-)(QHX=h56bl zA(TOqK&gS+oo3*(aZN$heT{xHZ$Tu2NcxgxBdNl&0MTXR6@!}lVP#{ff@wn2fT05= z0V(|?wPj>LCis zvp%J%i*98S8DQ4j2GNIRodK7RTxfCNBz##|HAryRkz|ybQ)S6*sD{}2++pS%zJxPo z8x%s|X$PTcVxxa+*ZOq7&ljaL6_6o}y4S)m^};E8|D^edD8Jaq?W!Y! z7`70nl-k|JvH;h-vOzGEOM#)Lb^xq;YeO&7yuZSh)o@!dlO!USx|fMovq3yKX0nI7 zcou`Q^Ms^^LQZNgQBJfcx}z1*Zc_LH%ADb3$VZgrS|~)94710~JWi8Rqb)K9?RLL7 zRQBU#XdXX<^wq*K=B#R(zZM`OJN%J)Q0F7CxvY~HZTK1JzWhU&efR_Go%EHOEBu|+ zt=1>(Q@I8}r2T%a+5Zui{66bXXV*d7E;F_&D<$OMG9el$AimtC=!ov^zzt9AJber2 z*VMuG_o2!9&*l4fHs=3;H~iN?{9Ckv`71L29c^G``9c={|K8C5pV$5G`~8>e{|=G( z$G=eiKOz!re}(mb4)wolx5V~8wp(K4_`-z#70Eg0hO)((Pq>tQJi-yrGca5}&l@Bj z7KIswgn&YD&7U3`T&krRHXbNU#55a7wA3;+#C8bN4REnU24Ndb2-I&Xwp5}rTec*s z)3cMGLpQue9}Zq$DV^IfLV@jLQ-_2F=U;i$`OFlAWSkQ)vY5C3^j`G&)cSnSgvZ2L z!T`sH^#jX{%Cz-?GVoor04gsw_{?s#xx7C`;)9H-vsC%K$PD@c>Ec%wXz7FYv z+uG(y|I>_p!Y!K_D{4*CLlkNUpTJv-9C^vaCj*?J4Ep+JBC~rHUq7fNl$|(peti+i z*&m}@4H$>Xy{GB%N2W&__%-5=xlJ?q%G**mBqBb@)WYLqKLkS8f}QV+3J1W4U}cl- z^t>e$07{?}zye{&=MF{_aP@hZbPp20{X{ZWSVNOR4O#>mk;Oi6Eo$4R8byow8MCK% z7KExLD^O$f{v=!i9wv9OGp`myYMnyt0|^MwL4MBH{Q(}`U3Ues##!Mnw=nLh(xiOS zzml9(p-bm~nw(|^)tp#zB_?2vK02t588CW9mmc8Ldq^JoN$v^zBjmC0S9wu6k^y!~ zxEF{|AoZU;Z$F8-+l0*w?W#0WP3G+e84(CsQrCDj+0Zg45*i|Rw8%eCI$2c znA`pNuua(Y#-j6NnfOAs01R=Ii%XR?WNv7vDNj$r&M2#62f1s2-XFcA9DFR!Zf8R# zyji@=-k(oa3z7?)Lse?G1x0(yR|Idw#<$)P_Zke)yE=ZG%!^~J4&$0%hx>cY$6nd% zdLBM+*SC-<5J@J9t&pj2kp{pP-#UXXF+#S{O#?)XP23pz(6>rXLg-w*{S(;xlbA1PvtWwEQIFt=GMm*nL)7f)%&WSNYP4^NDYRgc64@uN}C zj=~8xXh>!QBsu z@bGkO>H$^6)?PKi!AnR)R=+Ch;zqfs7g7wEQ`0-avYac8!@fTed1!WuVTiCGOAI*9 zg%&GBmR%?Q+@=B>HU)f)EOgmgM=kD09uNSB0`+pXhz;+9DNg?wvt(xkp<&yE>qQ?L z>Aga;bMSiG$n%H_Mzm$sU5imj-;0RI;!GR?NjDbghcNt}W8!)*)%&eM@-fhfqZD2x z<2OEbji85Eov>!?6)mt9bY2&O7+U89n^z^k4KmJ_vRyEPO4bDwj>oOEN+FVX!bp&# z70Y#I_9%A3G&BhcrUfe|=^T#dh$rtz`04IAC^a)g-_7MsId-SBmM$Uh`YE9F12#3S z$LR(sJR4Rz`c<vQHWmf#0hCs}OX>_~fGYWE&Eetu*S?kAQBC|0ll z8RAQdQWIq!Q>_E}T}=byAnn}c40__rF;=CIMBgfY!b_)ccH7;4rhTHGj{~rjgdC~% zmt6h6q0N&U8`je7SsVeY0f#FTlRN7_qF0UzmR!Pu{Xl2F9s|+G= zYEP{SqMxdfxw@{Kt5n6seaCwqM@ONMD@fBJjS#S!LC*UmuBEJFTA>aT$vA^-6PQe# zzmEwq4ob&1U&zh58Zvi-Dv25zQ+H&~*>bbY1o3}VPS=?WwT5>9i`RS`$`!*InXdL~ zxmUxI-ec^h!)$7sThwaRnyuLA!tBRYJP%sh_&!p;_*B_V_tJW*G~huVzvOhVphj5) z`XFz9JX4NkNERk~-!GWkD!+~l`7__aeDl}9g}@`KU}yDEKd)z`dg{>}TBIjErHr7y z!LP}~chyP2PtcVzS5PWv{Iv=Vs9#>@~J9|Q^doH=r&-zXlcqOMnomlB4+X`q2auxGJwfYuUy0pX($#YFdq@pSTv~ZHs zqX=N+wHC-80NQMJ^Fk_6og&JTqZg<%I5KPoWbgctKweCq2 zm@<6l8e)wQ-ZQb&D4CahN(+!TauQ`#ngRvL_}XMVKOcB2mRC->jU0 zKZ!JPDl#5G!J*VBepgXQ5JIC&X0Ti$G!Wy~G>YOdZe9L3%UiBeW|(Gb5LTh4j&Pul zn|}=M4c%&a*(5WCF^$t5ktyjJd@Ui0ENP-CdpXL2hKMaqIac$&BMVY&Gt%(X(ze_+ z;`%ADb(yj32;9H**dpk4rP`Hihe5ZO1H~%)nvXq%a&CA6Mmx)l3TGC z^xGTNA^I5Op>_O4w;Yi(l(;y{q)f6&@r1ar)dUIrk70vpLEt>q*uorNe-nZPgZv&R9RF zZbkuwx)FlUyTzE2J3gO<5D0zhOqXsZ3Q<+heNA_yYlLA47;Pw;F4KDO`k)0T76W}g~l;7$1> zb*q4fFChs$;=1H5PQzJi1dDi}FC|KTQ?D2AO79HlWfS~>2X=Tt z@~5N^@1)n&bcu!cfuSl7+;^=KF=hTxzVHP;>eU(Ws)m7xJrFhpdNG3~E`Z6=Rt-+) zIvV(a<`d%5ZG9x99Z^lemq*coKln}jV0+WOZzUEh2vls@A1kl82o4@OzlUtj8`0@9 zPpJ)QMS7vw^)Y9RKi#4-kL*kvz6`NcN_SBZZ5dGn?wz7+r&UigKSOMP z&CAq)W?KP!rfn$t!t8umxaL<5-nH|dt$8w0>_uKqk*sU!4ApDQD*s0+5}&UFWN0ly z0TC)E+Hr=^DlGOC8D0im>Y`+gmf&q32~rTACbPsRHW`O}OuczigeuC) zJd?O6BmD~VK!mu$_5AR~J^uV)MiUV$=?3qJ@{1xVEY5XdbXfUF2(vPxfOh*xKj*PZDF~K0;iV}iHH_l0ZGLzy_t1c%zZorvM!-GHi?wo-*wG;d0*ME8gkqZF;>)kyadKgTbbWGVQ1VA_`YYu+r^v|A>_?TYBBOu6n$+bW=ltotiAME+L^Yz>YF00M=MzC z%ucrB*6Wjss^oSRPta1t&DmYVl0t8Q?tL~o+Jw@RrZMNqa@)gO<=EZKL^wN2%P5%j z{E2hn$-bIlaqHRThJ42*ktl-KF`&OcpfF;MV8P2-r_j484Vus(PY09iyO4GcS0&Of zWYyU#?-;3*&fw-BBvT0CqL&-@h%w$9E>ETCKyeIbW>j0xa?wsx;(SjTXI@NS;;f0E z9T;ko1DC5woDT62-Y6S71hz{|EfOMEdbN%bz}s`mK$RazpNdHocAq* zY2D1rxHdW~FS^wRW1P95=)zhFr8N!n^>>}yT!eS(Nt2n%O(au`MI3o-N-x#PqgVY% zB^aJ`3F1am1Z@8=jhjH$a%*yp+@1WDq#+}7dPaLyS|+?at(lDK?zP3^2FH6jY2Ix( zdIj0kyHpvG9iaZ2L&<|_9=IoLo2pPLmVWdM{h_sT|C#; zVy8O;+za0RMK5sEk|u#}BP6>9nTEsP3m)R{)EH0DL@HN;HWjj3w#}HhVy^f^lvX5H zBDD#toSFK`>cZ%j!e62psoq-n?-&>9VX-Nr~SgnIt>7-*cP;^AXye@WhZt*;qwxRn!F-1 z!rsBr7S)ADvP3#H%8t+=j97 zl<)!|0@-&v=#bjbvEVe+y^}mAJ#5j-RkBEXC>nuECqMDy216D$A-9g{39)NgKM`YrZO8l#^=K zs`#ByG~0eg{bIB%1So*)t9l&vVD$n!v&yOHbR<;6o2u`aRuD;fsF)o!-P=(H21l*sO)@ zh$XpcZ9cz_?7HI*5i9c&NAJ4OJ-(NMDN!5mKZjDJ30SiwXEM8^FneixthFkgGL^Bs zH(%{>D>HaZBudIY3pw7|1%EuIRQwzsMi$S^nuziqn^gSBw@ty_h|^S!{F9HIF1# zz-vj5Ra#@+_?Vyntn)Lz#)B75c68-2v)Wwt2cd;5uikW~Cy}7Xj!+c(M^w4jp7iaCyb+k;&=^Ppu8(vh8ws z?t+sfc7pZXsLo;)f${v?2ExvJ7h#$6)30FX&m1Y~mJK=QjNY0RIme1T-Gtu8nb?k= z*qSv$C2rjm1OALiD?jsgT1(>F0MOKBvIy%Rt4Afqd7oOg$M0`27`Knw`YlNdnm0Nx zuaa5XwFglbIJ{gh$HkufSUSI2D15GS{YN60&RJIbojt-}63w5L)Vl>#yj#k2Km0wN z_`6|f##Yn-hsqj$9aD)Je=J6a#%jfD=OM=QM`K3NQN=6@XlK&m-gsS6XrR-QR1!JK zC-t%tR7jHcl&H%`I_5f-w2tXq=pD;0o~`?}4xF3A*T63Hwrt84 z!>7@FEIK+RZllG_!#m|~PnXBJL3<;-m_rrU?F|F@)9COqYqs)++6+u|1IG`}dPmI0 zIF3H1wnO|=*<_=yK2^r1+Os?3KoKTk{B?9%lvFhDSNf<$1T8_FTEbxvSTl{$Zc zLcyM3c)k=@QI|)zV%$gMO<`nU|3AqoOq?A5t(@{#KKVcAnE$KC6B85D|0Jixbes1wAPQZ+gz*-J5Ue)& zGsegJBA7|8d;8K<;PSU4TRd+8F4di|hxq-c$Nm@>$evqB@*N|Q;5d-Qx>{wB0m)c)anX65&{VZhGt z|E5~}{i^@1a`7d8{kw3%@#TN?w}Qdncq*~|ji(a(-+3y11=j!Isl>>^$iea-1p^pI z)J3Pq@w1b*IA#5NKVX(oi8ql2Xol<{*7ACFOjSgE(lf2C^fL+Km_QO#abG)q8c3ww zAQn4w?%%V2TFs(%KgMX9qiij6$z;M%W(%F-{tR%!+0AY({X*duUtL;w=;UT@qb7Xg z7MFD|MY^2udR%weeD8P_xy+8u3DD9FkVEWVT*k+CWPo_$LFkg;LWmqvc@O})mIQJO ze}KO@)wy%Yp$A%`S=y|tx*Xa7e1=>L0~yJsJLI-e7j9f|?sR>OF6qohf;~KB9RkIV zE>)de;J56elyl&}N-s?wb5CJ9fQXJZ5e=P0uQNU^w*zYQ0l2R>Kg$89uk`QNjAzk6 zG-{l#x~_W+XJR0ht`X4)@J?{nWgV#@?=Tb-AuJI2eCl8{;V++)_@`(Tf=>*J$qcvM z49KL<_BWj@>6R&)iEpgey?Y8=MYfD?^Did92rMN!sYJ4Yp0&s0FW;B=BAyqo;YHqnd^SGwx(#drem{a!`5`{sj%4nCfEK}y zM@_#1_sy(bzG?PkiEf#k@t{;4w}3pN5OU^cGe3PaoXfMuW8^ zxOC|?qv$VPFb-T0;sbwK$iL2ty|TPKBR#=-05|r0E51@yS51V;4A9%(f!~1YCW1O{Y@{r>7bvQ)0;tW1K0=@cq<9cKFt-F>6 zk|*lW^44$(s~_c=$WuE%b}}*{i}mT60KHkbL&XM z5Ty#8CWB5YdsA+E`5a?W{*tz$s_y9IUm`-Sx{x0~T-g-W+xE{YwnhAT%Sy5&tp!Wk z#l{v^irDl@eYXT|`#;?UYG`l=V637R9Kf9~p@{`jCT7!p=C7wR>Fv^Sps58|pDm4j zidJS6XO7E01O)@c9HME52;3QQWQx0hagM;x#y&%(x+bD^%H#NPtomR#Y}ro5XrW>k z5yar06@fbJ-(&fEoNrgj$%V!+;j1W(EgxiXI8fCc`TUe7ZOYMEx!P7G{$Wc<#AaIy z$-7RGI9t$et?&FPNT)zdW>n8z6a0MP~Ur3O(j12lrhmG~1!&oId=yH>Hvi@R6UfRK3=4%= z2D*N}@}_%AN3t!yl)KJ^;DQ2-$HO^AJ6JR6miJ9dn&(L2$lOIGz6dJ3HPx185x;Yh zlhBOx3Es3nOxf2G+~q?GdDkxtFU4i|+QaA^Ns--PZkUjaAG{O~q1l!d75&I+kI=5D zM`XEKtzhd(X28&@K2K$`V~LXaGsCXU_%#wGFW|a6g=N~d0PB38>T#es#ZQ~lyEa^k zSGZ8GbHs0hY~x92%zNo~ol6ktdgV`deij_08uu5?B89ZFtKZkIzGdGPtSB}BYQ9(7QF)YHqlLY8tWDSVsO2>vOM03}gFV8=!TWHy*OO918;DoI| z(?m(HDWbpzfl4E*RY84R(W+4AmxV%VC>SdH@z^~oi9gC!kE5;SnD942<(|Jlpv%XK zDhFicYnR8+5pA5AM-A+b)3tEoMGg-9$-|{vz6c|?Y<$uspqia95%W38&u7gFGkq{+ z*9hT1cwWGPHg|A7JJ|m6HaBpuSvs;`ket{F9iDa1(=*7@8!*`ThkU@lZmAke(vp&t zWLFLyXIyo-ipsi-Ip8%V&M67>D2ff8^dy5sJnxsu*2|w9DbjP*+SHq!i&*sMGUv}O z-%(c-TPtz-qtQ{!gzsd9?pdy^4v|QuXe}hU?Ext+K~x%T)MOcade4`ySh|vdp~*14OI%&27t4j zCoQpWmb6SW^KUVdnwx_r6~vjToSc|9CF2whmyoBS-FO$Es}O&Bk@~0(oCLHvK@!^k zyg2Ay*fT{*@C%I>$CK3#W4o>mp>jYU7PAO!wJ17R@tC}l8@uw55pHE{W8Ji`|EV20 zI%92yfURAc6!DjSFeaVCm3fmp?9ky7aIWBvY5(lE)wlgJw_$@|F&;)Kak*J4ma;BA z8_b^8>zf%9&hAjO^Q=HGoulXJ#RYXb^p!7p<3Un2=;@a^6MI_v-KeFGEexP9L)X{I%qvCr}=XIU&eB_aG)B?O;CR z5e|l9s+Nu^Bkdk2uqe$-=;U4_0j+3JBywaXnC+{Vo3c(6{h|p9G#F(!$1$vYran*$ z?8J&H@E>FjYN0(lw$!0}ajroM`zJ>@*)u8n4hNN|ayVNoe$C?8A4eB*j;_=fq?!gz z#)tfUlho3gkLjpQxAqmnsM<3h8H?R`Qh$V4xu;XjX7R?6V9yg-&|9F)qCr##%0qqz zS|%TkP8#Qe3ze}hf?R}?;yns`TD3RlS}WDmHLs|hc`CjwHf5q_dU}N4Puc7usH#te zB&o?Li@hQ53AE5hLviXiqS;S^Hdiqu(Bi#=E_ zA)hH1$QkJpjtNSDu;$N<@zcl=IAXY>*#pdW)#-_G=xuRUYd%%@9rjw~Qr2Zp5v9Hb z*=k(N^(71UIa&2@60eQ0(sv5EqEA;LWlG;QeVg2N{T+Fwso0up*y)!?8HD3^x6qcwe;&i|kmo5+G0lQtJdNERw&mGYTM`n30>JG0q?=tx1j8tc6D)b#5 zXM66un|^6zYdUCf0aJxNqA2&U_H1v6-36i?JW-NF=AYON>3XYbOsAcV;~Y28z14db zKsZNhHvZyS?yCd5ks$FO6|xtG{su@VM&jhgfavHcS|9wIc>(N)$L;S~Z77Qfa-Rfl zhDWV(&sqaE#NojTWt9VH3;Ovpp6S#Mi5E@Z-TV&ICD`njUx%|iik=Q%BGyIU15C?? z$MZI$y)vPA_aavwV^4W@MPj&MPpcu?8d8>CG4fS}=1`n4WjO?T6!S#wt#vuBAKso*kt0(;nw~MF5?xNK%{k!hcZzwT znmF$Bj;w)n&6r-S5U*ff_s1J)@7*hsDTQW!KC9LPTOH6H#yt>Pg)+GX5-p~TETqsdr~tI9?lC#LXs4|(bMD8y7=#kGzwJ)~ z-^~CieJKRA^A7ZEq-A%d&RxE(N?hJC4~g1FEse%3(wyma(GNF~4vIe_AtHwI3(~mr z2d{1r=e@KWJYat;&MePayQZv8i7w#ExVf1tFa9#r4=fYG)6}Ubx(qBR!OB&Mq2sc8 z!g?(sbCFXt5ZlFD3Bfr?UX6LqF(dC{GI%U3>$e>-C}g`ljPQy!N#*fLji@Mub>pW> z^N1}R93D%hdqF>9p6GFO2F!9=8Sh6vQ? z;O0vv*~#Nd^)uBa9x*y%BjFcn%_PlyrRo(NjypV9Zvz)A#(2yM4;)ueLWZN?@fo5H z%(?)Mkg$`EMyA=wdlrT7GvPQHm?ncm+;avUH)V!?ZaWoe^8NQV<${5ecWu2u8Au0| ze;%UU;tIUt)f5URunN_421|RZJr0=JodZJQ3(D~eX>bXSU+89JH^xxj1B`v$I<5SH zBCSLI7kh64?`<{i|2x#d?w^q1hiD5G>Dl|c_xHO8gi3~@Bt=Dor>A=K49%U=fD>gZ z=TL?Wg~-sPNhuwU%8Yj-?#<=t++@X<>rE_>OV|6~8pegCy^y>#N%pP&7~Revyb%GHk_UiIGZo%QaMU$EvqmoL5eQAa=S%H``l z@VS%UI=tqRwU++)fxE8%`V)IM-MRdtAMO8wXP$lirE7on%nzLZNj8dm1D2l`RL!i?$SSe^5vg9^`2GkIp`7h9e(RikKOLRm;dV?hi!4; zwr9WgkH7uGcHg>itD{bP_*YiC;Ek_3bi=JLU1N{&TaMcFtc{+y=95(&A$sie)+Xe ze9Z;xja@MQwjI0i@9rb^-|^e`{O0!GpYwxD-}agAGd}wtyM6xjPjCLK>#tk+W0SAk z_lSKT@v%ehUi#r5o%8%NzjE42>z}jTvJHRxv9EsXVc)ypUq1Y#!;kpw57z$bk6(7p+OOMVt=`&i8GqdS z-gD&I-#U2tt^Rp}6zSdP6o_5SH*M8@_);RC-?N535Ki_ujdXGBf*f$(<`ZW)~e2WFg z9CP{KuD$1R2jB47ML&MUi(hchryqFAA2vSXad)q_)^A_<_MQIr(vO{a*e`#7!hz3v zz+TZb=B4XeEgTMe&&Art@*b*&Oi6x7aj2Dn_h7APTSx94~w2Yarr+V_q<sgqy>Ojv54`#O8(*^5ZJVvM==*1#vGPUFxbAB=9y5O5V=h1UhQn_> z>x>_-b@|2be)#uK-Shqr9Xt8hE1q&k@5lGuc*cGEZ}E%qCF}g@<wdQV{eS-YTc3N_@)vD?{T0{Uc-MV@dD4zQ zd&@<4-Sz#?{QB!}+UnLny!qGI&F}r*H?H6Nz=Qwx)g|YCVf|;Xd%{On z+T@BmS9#G*AAS3Kp8e?WUA_Fq=Pv)$+0Q%m`tMAB+ZZ7ku(} zCp>cHPyXtgx19K?Kc98{SDwDvHg7rmB?o@w`1AkxmQU?{)Y6@<9Y1M!*%!x;+4>pR zym+_YZ}hRR{ONZeJ?Y>l-*ee@W7n;=<$FvJu!+mzV<}=^E~xb>2zwxn~o^Z_4i|+p)yKFzY z@QTy__|fP7@zO`UYssqHukx-BUVh8Y8=O6S_U${JF}!Hi*In^%%a*Kl)z4n=iI42} z@>g#&F}3Y8zJJMm)6akMO}m}G`g%?Q5O-yEp&#nDd`_?dz7m=bY~x zck2)CeD4l-oPEk$ciZk&kA3HDANcti`z}81HdiBlUKfe2w&tK=_l@C7V-UDuX%+Y6@d+@zq+xIaWJbJs)gYIAbahq&={1@+E zZTjU;e%YDFta0B@-ubAN&N}9W-S7VNq*ovI?nnP};h)C$e9r0n?)B2`pK;{k-aB?* zebuAhf5ul{dim7%SGoJ!k3H|>7jJviwMVb@o41a=?EPo#_lfP+{OyK&Z*bFR9(d|4 zr|xz0SI5rW>EECA$Wynv?Vt_rd&E=j{rU!9yZDYH7eD=yBfqru?oa#Ce~jfm*%VAW)f1(Qzaf9HZp#M5Uim`u*zfAZf8Cj0EW_oAJbwr6^t+dO7X_(NVR z2_BoVxgzFl<~+7GS2P<@Rd-1OOu8<%7Dhpp+VWp_U3LXEM zV?We1OMm^3w2V#+?1$pX)&d^OGA;S3tC25y(Ma9<)SdXx7VC2F)4SaJwEyGY@yUn1 z=kO0c{_*a8TD;mze>Y?A(+B?gshhrg{b?s%cFb+Rx#Op+p7-u;&-`TXF`xg{@4H8? zcg+i)_R8nH`U^Lm^_dHQe_ZEL7o4-h=b!TD@14Ezu`B=Txa*GF^_(M*`0P_ox#NEv zK62UHZ~fhCUUcvi&N}thzf2vv;cELoY0D4Z^sSfPdijBGz4)fjAMwFA9rwL^Z(Fv* z#I<*>6I-9&`rR$>-f5?&K5f-gPM>_#SJ(aCCfgi);KQ!C|LU#YcJ`aL|Lf1DMvmFx zshfO#tKV33tdCstGi~tqb?JH}MIV@sarS&mcQBU;0@Q z7r|~^f6dPO?!EY*wjW(EI_fGP|Es@PG4xX}uibn3!hK%!qM?z^_~OcBt`3fD!S5;W zMj~F}Z=dD&CjO3v!J(1Y`CH9Q{T}|#twy-gVbSyldg2eYWomGbzjkQvl^5ICO@* zP!(cA!;wO|k$s0p77mZ>K0LD3@W|rfk)4M}mJE;NkViHe9$7X#a^UdDYq`G}MgGjr zkL<&h;gMb6jM6|UtmqR!VrPBrJvOyqYILeM9rtv*3#P|9Q9nMtVASS%;}Z)y<73fWcWh$8 zWG|Z@<99SS&X3MyJk*_@S}@&o z>#+%*E&Xecrq{IDof=y(%|_K6&)68Zmm!SP@A3NZK%v*^x7zEDFPQH3#--7CXJWxr zEv#tGp09NU^Sy4-KFjyp8!nJ<3e&c~jl|wr?;F(fGI80aTlM_tcz=byJ#nMMyNnL) zHQZe=HI?L+>D#6CyBMSelL+O)r9y>rF1` z(wz=}qC1oH%NF4PzgR^B$GNTd>hxhqhdyq7J1vNa7AOY16nb5c8w)#KeM8 zx;e#o?dDQGm$hJmz0$R!i*$K;4B_KDT2l)qz${bU$pxe1%+WAongU8pA#YtSFa;>{ zDQGb{Mu`D~W~L^P4%%Kg1RHkv)SzD^qB`r=fF*n2!3fg-(hs4-Og|w zT?bhn>kmCkg({FJ%9Ug=Qj{oS7s>1g+n|y#TVu3bz1EJ7wXe6RtL84w~mgG?d#hWBF0j?R*R+U3x`UDlbf2Y zR+Pb)=BAP|$J5_V|wSQbRfnU`jeSL z55u}ptCW+K)doyl%w%3yQK)GYlQG0(N_Il56{Kkd$>D}v4=HLBh?=ZDjbzK(Jq(wu zJ;7{3)~PWrqr*}W$PFkZRUDV$Y@cdzc2D*!`jNRu7imUPUqXFsr_c6M$4o_$+R!oR zAi?8QK!Q+@0uRQqV4CYFu-=&Zu^Vqr{pfY(61yHs5zZV(m4<#~95Q?AM_4q;llrmi zO{rd|dq5mW75Xt%j0UvmN4OjvG{)^JNR<|R)Z=Y%S&z=E!&0|1Hh@p+IIgR8$1N5O z2^|!vQba={n%q_^XeJaM)Kzy2emaN@)2N+6z9$w;D43JeG0z>$dJoZ@rkP3SSp}s` zp#`J!xTp)p#(7`@1MXnKTuL-XKiC3u8``pv2s_*_qYhNZ${Y{T+>)W06?SmK_p2gk zo^FRS=Fd3X2I=|3w;|CcU3w3fOcaG7qF1X&Z*wM56uhgMRv2-DBNJ)`Zy4oNg&4@> zly+#8CYUi$-6U-*-&o*jm}Y7m@K)7@8ZAw*BN?|}JkW2nR?KB>TH)5>Mof*5wTumX z+PHM{o4nd>D3H*<# zHo#kQ^>ha{sT7tXcLPJ57t|h?`{lqXmXUQEr!7UcVnE(CE=WY}gi0P#zCzD1%^E4e zlA0uSfukrt7dG=*D*AK5WI3BlhLA}fs70*Of@wsxR?yKHHq{eiaJu5KB@Vg_BQy#p zIqpg91~=%p1swqQavVxz!K6>98iG(AbaLV(JiNGLN;TO7=JZPqp)~tkE#-s-sy(zN zBagNOS@`xn;zaQ_Z0R(Pa>xDwE0`ePuWybDv%h*H_|%x}98kEE7>ZEo4%q9XMM0SvD1m@0VK#!#b0z?Tk@YCk=SeF$cS z2`1%F2BKxck}!9z2Iiz~Yf+)Vp<#!nfD9lU!`6X(qTMFm75O zhcS$Ml(*~DIz^+|x2Bk!1$fQt{VA#yIqcF}rAT>OgaiXAXJ;xsOIItkXUxW&uCDRV z8Ln=3wAV);ShS24&r?>hH4LBs7iSkoQ4X#Zj21*XJcSvN<;K7k2;$Uex42+X8T&;= zI*b@l*A}MmdF5Yd%rzZiCJu|&F5(6NDTb%?K)E`*h_wSh&>#(IROQP84jF3?%ZZnT z17gca^Qereaiv11mjYTthQWz#3V0Jb0=&0eg}bt$4xS90X93fR!Gek7Njlh57UD+e zF^P|t1!$E@C5pOkX&*3fnCV*7SOS*SrZLVe+A2lyl)iok_M_uC9$msa(ocvIZd{M( z(v&uz3gmJex24VwLu=2T41}U$*(Q{)+LWNQVF!>HHr@&d%HGT94(l-zff0jTm5ETj zqqt`I$b*TbZB181ykH>!A7+uO z%vF!S%8}5}4%08DEab2h31h&Bv|P$KeYOlub#Iw8X(#;y>Ve<_$`mIVFAnsG;t7Xe@W}O|l^ljar&?r^d=qA`slWLMc=87vj!s09QpM_DTh4J?AqD~)W4MJj2OG*m?rD=7q?g3hBTl0yF} z{t|6u9A$ot8&A;hltZAe=>l26L@Q@ZGgAmBV>2n@K@m<+4#a$L1usCX7>GdMiK9?w z!XOGoABb5(@f7KqAzgE7Y*(TNH8#FaTVX4hb&+X4t4<6FnWaZsN6-~hS_Iq*7xYw> zOqqcpSg)h1M4WVj5OGwgsuFnBgVPmp2q*pg33S&34G|Y~rig@y%aGg@kt0;3M1(mf z6o(q>5nU;zOf|Ri$3j6?38}LXsx@5La#dU<^Yh3U>}saa;*TqumWszV=8=DKwSw_#VQ8UAupkn zSo_pmAR#RDYD*=&!mPiaoLCBoGLWlv6*5F%Y=aA>ehTtY~ofTPG_j%QaGo>bz|2=v{cURXYOkoLuI;VCI6p)bnP3vwSi z0hSXd6ge9Zx`lYt54tGP%2_FH6;X)3+_%^7=ZDo=zGC{B6=9I5QH*CrAf=-Ekr-(; zMhVY>5}5A7RjN3azQ6%4{t=O%K<#4l$Ji0CxQ$}T<>wSWBod}z279O&ZPOHB$apu> zQ1N+@%~A|QPI5zY9hKVwPlPBVOEMUfBR;n)5nS#WxJJ0fG3s?_7&d)}S`>iFphH-$ zPz8XC)K$z^>JEfdj>gGAD2;aYEFz;_iYoVDaEzC)5m|I)a0G|-kgBy{&Atjtt>uD4 z(OMvj&X_l&KU52JMMBV2anA^7V$wuBle_~4oKS7ZVDclFiGF4BK%kP=lo+phP!5}& z&(IlfS(YX%WS;D$(Wn7PjJyk0s+hnEDc3VADn}9BYMz}dN(pcu# zcfhNCPlKq6EBtN+oZ*q`WZ(qZwOQm|Y5Ehq1F0r}RssVToq)31H0@)!Fttc1Cm60= zpT?z4y~BH9iNT`!G+{?v6+{O!QcKJ737S3}9Ecp6R*2=b^b%kpjeXN3SkYEXzprMDHq`gUJ8&MAiO-H3P)VM0Op?Wu{sd;kFd7Zrwi)L@>JPdNl zNt)lhx;E@c+h8Y_b4mpO!IXpmJH1%G)OZHi0c$4MLH9VBWFHr-)4{(jSSOL9@CMtT z*dVYD1ZFizs1*JT7Gq2#HR^gG$hm_{hACD%q9vV3M3+BW`HFWm$bCf;I9Iz~RYx*o zI5g@411(&{uaU{r4IKdo!;}f}5+i$qS8L_5bZDjGK@vr37YPC4=s~kkpft9E3KUg1 zNa$QS9yQiAe(Q29suGJkiGb+T09ZxnbOr%e-HUGw73tSieUGhZ3b9x>6_%uME+k|L zQEji$XMm>rsqM#D!wdBdL8*ZI=|k~K1a@l9rkIn{a$~SaF}8BY6pOT7EEU$k=5!Bw zgtf}+6u)#f(A0KE$f5Cf#m0sB68+NaZ3>t<2ddm96q5|N%mIZ!V3NtDbkU3Mt;@?@ z0R{JUF`g0`;`;7DAvr55hBC#26#;0}LK!M#{nuG-ick<7Bx_?+7ProiPoyKr6x4PbMDNwTVr5wqSczI#NG2wo^v71qc*h7n6S!WRk+ zzzVvf3nn6r0Nh}DK>5g42qie2MeVvUU~UKr!nH_DB17Q7@``H018Hy%Yk0yW+836K zY9<*8woKTr{^;m|3~9?kf24;3cok_^D=>2)c%kph6_NSQ^LC>$;E zX=o;}F6;qwq~DdRUr7(xJpnaRp|`5mvjR6MC<6F!h+x?8nsgB5G*_D^r3jBj;0#Jp zDC-?jU_my`tg%j<@N5@-mqjQJ=a~Lx7x_DZugJnmyoS_^^c7)Bvo}zRP?r#G`hNQP zj8Nc>1;T>0fz*u5*l%dfRHAZ-}NRZA7Yq2gHK)J3~ z8^Me~gmOIT`nD-t%qaX|Y}mkn_zsgC7@m4Z^FRRc82w_qYeb?6Rr zU60=ILrt0zY1RVaHbY`GR<1I4Xl~axLo?`CQ=*}8pq&lNP&zaN8pD?1AU!h|zyS(j znWfEO*+o`_&8dMs16Y$MH=`zee!Ih@1r9=n9UJIQq(Vnzb2CU4?^gPzzZs_O3eL_FD!oX{!7{EyJDp;Va zhsmTzjI&0*ks6vS0T@G18kLyc3_aNnBG2G_8EVW4G-SjGfq}Wkf@mVVRAh)bM3KG# z<;)IqvLY2kUJuP+K0`SEELV>sOC5w{+};E3fH)gR?Ngi@KTnM!s4C-T;!Tr6$pYdk8BOJpyAD$YMGlh z(J<*5!o$(#%!>L%ZL=xU=7Ys6P!cmE;rQpRfJJ)~%KS(pnvS_^;9pjRevYA+J6zC_ zK`>Jt^*5H;-CHPuNOE_rN@f^B-p7mkG7d8+P^JZ{$PpP~RZ}2Tm3q8hg;ry+5RKAQ zwlSpoi|F^XtO&WGOfjM%FTxZd`@CDMLFimx6LCu6M2_TjW8g*0!@xd{Nl?qsY}X`B z_%t>?*h+x5K#<18jC$x`n)JmVSDvbKYUrUBaCEe8-mBLMjnG^+j2`AaXw}ikaWEBK zeTFcOv$~}c67y*SPze#l<0rzcwl`$Yqd6@AzrlHu1L;v8cg5bBh-nnDV|0;-tVX00 zPz5T}Abw-Cj_x247bym$Y9B{YSE*9{$?L)ZV?t0CyxS%i3JV0z0Or?cLa84c>0&On*W$Ofu7~>y-y;6+DadmvXjsodAkFFKL5=e^)&UIxk;-T)16f4HMNSS5$DdM4} zsNLaZ*c-Yc8@=BKvMuCdr%G&bCy6~VZW zijZrmz>1mdFQgC3V{Ez3$Vd@@?tls@J7l24pe9g9@mF*sg$e**F}#0NTdbsn7Ly>Q zg79I2V(AwQEy_)jm5N+cl!jU1@}F!1H`yIDm>5&(45(lX)$}2y(*_k5SV$lhKU0yh z#)we0jaHi`a|OT&x6CpqldXvn@t3WOF)wWSp0%YO$TF*q(aBaT?M;vKo88#EQ4NxX zhR|?$yJ*w~%vrAkxJ>YOR>eywt4LUf1H!Gr7n+c$NR6wG#)q6m@QO?PwTRM5SG854 zsAqi12hiUgW+Jw)@HX!2ASKo^O)MNHYGq#1v*B$B7}_c#2w*zZqp>bJm<9YC-d_s1 zuM~{AE8-Cp>lbOJDKOem0k&6+7z=j+`DLs%mLoLcU3fsgQm-^S$uKf(43-F+OJ|%T z8XgnhyL$#VI=D5u9C=4z`OGuG#xeo9MBf21P=c!p0h)54c*65>9dhK}866mS6+0De z;Yoxa&`)a6`v}y|gcjL}Vv1ob|K!h@$UZPxaaOb}z9h74TSKXJ5s?Pe)cC45&jo*H zFW3F=iJ@ZI8t@*fbY?}X>#cFnb+JY>FqVic{@)ryHMW8gYhtLO0HJ@4p{gIN5tXlD z$66#*lR*-oP{>2GGK>)ovLFyXppgvU8tlLnwqmG>bG3^4yHHW41Y-QZDTd1Sc(<+( z#_qe_mP0zQe}8@!4)q_Qn!;d94GOEBDgz>yNH-`Tm*hcUkxJnjzJ!Opv~yUD2x?$j z;J%V<6H7uI2M{@q0ewJm$UecvXiev-DG)_64u_^LS8+?T!t~CxK=D9RG;|tjsaz*g zqD*s>N)DGMus0Eq&`YB0z?}GhLRMV1*qtj&iOOh8+~Z@Ii&z3`(?tx!U;|>)l5Zeg zt3@Z;Nd`-~b(In&m;8qQ8GQ7?bqsSodjWQ`J=YTqusNP#esc|lAQ1FbDY9+LqCueo z;oAkwXG&aN)wo7@3I_)#8ml;}v&EnV9I-FSEM5#VuB+@5aTxtu4xea>KwGJULs_nu zim>z%{?iSIt+4ey)>7PXDTeTM=8+(`kt8}qcVcHYj)SpWI&1QZ2HuH@KwAUZ0WleH(uMg(6ay`j10TPWE8MZ1#h`XCa_V&@c*__b ze`&UvD_0?i>eIn8P45Rpv`NX%QJCTMhPN@|*uA&%~l+3E7hZzjNIXKt;BH0xi?`YAu5eY!X z%*qviivuE(I@B&PGcXw;fRx<90(haNRWPeARho~YKPZP7`g1kRE*LY?>KMG!#{~bT zPRe+5jt=$=3p8x_Cfd#l8X=7_p9Ki%w#vLzXOe&&jJB~k_?|KjS2LEC1@1^|Sc>${ z8%^DVYQ{q8Gx3sGxW-mTV9y+lSdDg#Q91!Q9h0WVB7s+Ri;>o#GOKg0Ng0XNLcxt{ zDvQE5gUJ-2M}Rl|0r^p!Kv&RPvBwAj@mc3Hn#u_y6-m^>s8HNanW!e(riZi*m&O{t z{%*960*~vU6c77BF5O3M7}{VC{{OfHB>Ykq&lr&gAC+z30{-x6EpgcHQgjt3=CWSL zT7>U!)C5D0>390j3fO%dq_o>8knr1KMp+jQmgY73uTlln)*{A&NeDlP5pugex!NDj zH41jbQ?0qq!gVImg_|@y z5tX7JOsdjr!YQ4Con(|O7^Jqo=GM$qM4P> zltwM(YOJa>RxS0ZoF*!43eX!HB=D)^H|(a$)Sz6%dQ8oaIj2Hyhg7jyUW5m?8kf|H z2<_xnXEmTZ73S+9f04ONl*PE1F-BS6T?XDhM0!B%IRPPB0WgeU42V67v>LW7Zk7o` z(I8lH70E}63_n8cD5wP_o^B=AR8SPz{%$rNBQ^B~DUHIK38bz~fe zhJ|kr6}D9mA%2l4##IVM#~JfLYoqv7)AAd1MB-#kdC?rCqJmb59%0P1`MY$< z6DebziI=-!#v#GOX*`u{`d=$#W+;NY<_RyXHcdpDW=eak-q8>G2J?bnu{UUcrP!dp0Hz7Tfyzz4KnhW&})e=Tg>E!H~Rja5~24f^7(KW>i%iJOw zS{M(_*=Mqu4>w<;yc{}QGvSsE+6kW0qlOY{$dEn7D^xzzqyi?IV3TUKAj}I?bV#(# zbU;6KV5vZtgi7QcsgcrgQNu=(HQGX5VoHmd*o(B3{SRbkCwR2sXJz`7k0;5DT@PVT+UN> zz`jhfl8El0|BOS9MKe$k6fs5-MqqTWz(|Z5=}p^~0S#y^jDoguMfI+seE4t0*~Z`_ z^BRxF`>qv;ugwveLaTU3zoGz+QUM)fQki;l6L>>-qpq^ZFhb9m)BtReDG@JZRFM?L zNNpX>rsYMOWJM)GjJhcpzJ@(g&IY$P)P6ULwN{k7k?`ipIiqX+^~RwQ4+h?9(Z1V{ zy!K@;A9?+vf7_y!p?UzVh1rfAEP<-F@M? zS1jD-+dsel`iUcMJ>ey*eR=C`?tlO7%kH}SJD=X+>R&zK8@pU|&lgwS>dGDO{KAe` zFFg3g*Ix36@i%S!lA9Kty~9mQr!IN%j<^0{`$JZJ*ESoh`SW|vJ8sR(PrqTuZ~bNA z|8?$f&v@ph<7fVA;)>UN^p*!6|JALxJ>{;S9(v(r8(sInJ+u*2_v;-A)i z&yH8V=7Bf-@P-4XwtD7;|NN4T4&88z%^uivzw=)5%QJ5{=eG;LdwchY`?uNe*O#0( zao?$D-Tc7r>)*G*!Dn#yD~|j9(ZBiNb>CcXvqMiklTdw{U1K`I}eGbFXf!;m*FL0e&Pt?<^C?mTBDmxHI4fH{9TTwo<-LpjUEaI7zsq~y;_vd_&HP>7 zyOqDod-q$m%c8yaS-5;}J4V1JUbGRv`CNAV_JD7E&iK82nRl`4GfD?7+S}1%Jfiq= zf0thD%CXEAOGg$iU%J!|lh_ou?t4HySh};%;(zj5>Co%^UHY*0PN93s9{Jij}?d!++=_`7z% z-{sxAF5cfq*l-q)9N_Qr`q%ioynaJ}m)G}?7^kjuLmGfVqm6+>(}}@GWTZ-=#l`$^q-(xwv<0uayohTO6|nZi!2~d8zbi8-JHRZQ<|Imsj|^^ySt5E?wA` z-|@L_POX2--a9YcW6{3lxcBlkk6K#~dG3r{LP0)-V*2O zb4GqkGk88eC*v#rBO&!8FXuUBd?ZDCM2Q|zkUfBZe}4AQ-RDq#4%+8z{auDfUOzmt zG4Bm2^C*6f>i1B6C1~V;;gQ!2k8C(_06*=uWML#lVC0nyAQ*mRYtHSLy*=%JoB9=i zR}YVD%Q#y6SqtST|Argsy-YZ=D0y#WyWx>Gr;QW_8###21ypw8SD%YUf_X-gXGY$@ zxEl@`*=u-YO9q{6Fj8lKtOf%6Y zz7D{r1@N%CnWB~F{S)>w{+OQ;AWfJ?%GUt^^^@dW#dil-v^1)lkC4KHcUKF9SBS@8 zR>q096fAqk zu1sRClh`!I!?8WwR@&9|>6R}c;H$AjlCK_YYk*|95M#|-=q_Q|I&Qj~@946C+kDP} zupk<@%#>lc(!+MEUHzuZ;pfEI+~NQcRO5<6>JX%nwY2kIDE8yYKg^Y_^S+ToJnq|)^%;P;b1&r zJ}{LZzZl1J=8$BL!G|j+4UHyW40NS6<{lnt)6zIm2x3afVgwb4Y9u3e-HTk9f+#hi zsDo9^P7 z=@U@X#Qz?!gD|wKLNt#w#UbYr=tHZys$&q!Xl4YVvN+A884qEZAwpC%>!$S5N__YL zd|uw-DX|kSwa0D%b4H0LdL&orqZ`|d&%mBk))K3=4!9Osy^CUvti-M}?yhA6@r?Gcp-w9n5Ll2h7<#$)I-CjwXhE=D`R*FC<(fbKdH)<*)p~wsf zu*Pek55itcg+8?ySs@0un^+gaZHR;D#-hf|ih4V7q5iXT#dE@Y8)R=5Ao}dxHm>ty zZxmrh-|MQdam--9tROoe5?P^*dl=AvvO6Xv!jOb(BWZ+avAbMLhQA9({*)18E-4t4 zHiXZRDG(KQ&9OXgK9ze{qj3`hJRKQA=c_%h*i`4zF~hK?kC%?uV(f>Ez4GNcTpnvv z$~CDNQ5grtHsi5BsH(Q#W~}cwE`YAmRXu38!D1U%Il<5%5Uk8 zJm%snOqFC!D$ke&gSJ#5%d)WVW7PyECo7~@MC1|XLD9JM24M2|2{$d|S<<|3441$) z23Ol$1C7NF*Q`n*M?&<}YyJ5tMd-u~m1d0VyXI0}Q?un+6%cE|^30%#V5O5Tfb+yPcDtJw{kmWSm6Sc4bKG?9QnF<{e4urXm?7ulJ{?so)Me zW;R1ZjCfI>RHYl0l%NMvH0j6UqeJ;9@KB71S+5uLt=SVa~*s*=>Zi4zuAfF zTDe*|whQ9uv&2g}o=YL7TlzUA7IQp;#^eCiHG*RP0bR``lo=HqM9q!CLGIL@U8Hs5 zAaNcBfhRgMX5UmogiTx>i;V{YBGSHwVEl2f1J&Fd=Nhj=m9ulG@$rgMj0J%SSD;FT zy3Cb(IMD;$`O}L7Y+OIEb*44)7vcU67lN79p>7J{3{;t&VjL#u>RG8!;X08R?YzU) zO;4&W&8ZAbiz=^E0?eZz<1M=r62SAiVsy5V0L`i(CRGta5AM_?mI`%%E2~s@JbR5k z6KWCj#M++cWxDpx+qy(WR4?i=`@*!*Lyx>S)h3rtW>f%mfGGi*3dT|u4^#yHiT=P? zOs#wZ_;j(1(aA=!QszWTEV~2viVw`dZo;3i??n?23f!FXZV+ft-h1s2V+{DW^Amee zRqpVvu%cA-6V`EeiIB}K_kqQX76cb?0Rf@<2#L{Aj{H3oE=-eUX2PhgjxCIDE`v*? zFfM9Th!r^z?$#X_L^0{EY~!QFntovkL|qKg=NM=X$x9hwN_HX1+l;7KE2rf#!cbw3 z;4SXK%@SS)A@F;~2r<_p>z#otBB4f3%!N0W$6zOCo7HLs2=mqP(<-1!S5aw{5U$Au zxp$h!JndGhxwjgI!C|6USOIVYoUFyjjL8(ZS6wsRp!Tne*4eyR1VB?94H#x zQpyOuTWDvdp3mAlMti^B8DWuJ8;OWPf|*l<;)?w$%D4(qFE^HfZUnAP`LpeqKnz^0;V7m^cZ7!puW8i3w6^Z zK;;DEKfyRz0j1)+SssQ+DyB%opz+wp$F@i2%(r1Cm?G)}WE$0i;7u`QIBch8p1YC& z0CV1*a%!Yc|JCdg@eFfh%PKqFAF~32Ti}K%uB&CdoV)-e&@*m00ojk!6G{cDEWX?V zR+14SYR2siAHbOA`&2$iJ}zufIJ|N}6#G-wnxQ#;N*4hJl?VGfT5y$Ft3lZLsSdS2 z*r+N_Kr0k63{n)UQzc-)7Xq%uvFmOX2eg{g5~wwfbHOyb8dhN{Ho)b|T2ykGvKDHE z;24xXYBj$RA4m`!=faRq%4~{Su`I&Kj=5a2#F)uKx@P8%lS#;&J53@v6^0kH7{D*` z(@TW`xp>qK2zY&>KbxMw)W$~;i6O#Xq~`K2vy_>L=zt8fmoRV zgI$juz)E3@45bL`b34z4lyV&eX|j__i-j)!xB@G94lJ%Kk5fPec-M%MnnF#Act*h_ zP^J#xYtg8WV36@g5eVmcH1p(2piv*gJiJ7&LtIG&o)L&*)!8^Z9oR~p6|gj6Yh}uc zNpz^=Sk+P?4h+}HpsGlr$AAPD6SNtqaWu{|z-qDP#k3RT<>fRkHBk_OV&N948DC*( zRRoIFpAZ3&_EDnVggizvWU}F30d{@g@!~;hFH)*(t^&n1+0#> z$lF}o4PtG7Pz&@XTc5$@s17V#S$>(H8u+`L9{8Y*NTS#`KUpjWNXA$D7C0j2H%tKw zrIlrVV{17~6c#9>VAbXj>90R=-MBRZMUDB%Zf)PBe2^y zJ_8GV^J6=h-g6-Aln@W=!%U%^YXtyI;%R+EuBap(4PAtEK(QKtHbjpVB}Olf7ZIUm zVxvMWf)ip2%JtZwLs5g(Pj8MGZe85XEMA1tj z!-YBugFwF&BZkwiU`8{7+ARFUZYv)t%S25=eXW2&-BINp;P@E0Kmiqt<`rLHj+t4( z4!(d0gV_m12pc*I%8J3+YDm-PSfp}A99w$dXW>$TRF##w;Mh`{!>7jT z&eTl3Udtd3q!-L{vfI8Cll@=!#k9>#5wsI$@o_ZlTv+_C{biUmDu;BO_Abm zK8p!d@t_FF*{Vhl)RXO|$ph`B{;AjHCZ}HgrFIfv-kKB0`%qLIBhi`YP8ObIPjPWWQM_vk>O7^*DXDjZ^5F3dA=0-Z-@-ji0)+BI1} zU@pBZ4i})w^*#DgDxi;B{@fSl2Z!O)*u!3z1qF36N_mPGgTZ3A6%JeM^fSW5!^u%J zUTKzdG1ul^XfTt-h?lfBdAow&WUb7P$D-4H2OgGi6z~We?xbeKy|V(KB9|CyhWZ3F zpr=gY-ONF5@j^aTGbnz&YfMgj^~NO=W*S0zEenB^;&jeZAzCSpylXbpy4O*r2?e3V zr=!lh;3DR~Zgx|jz)ZR$nCGyE#>@z=MMo1V$xRU!fD^bMpDJ1d#mH5Rr>E-H?Htft0** zyh7lqrbO03ysBQsQ$<J5_8%dS!2w8JBmfSdU-F{U>L4J}=1 z5^Td9F8_swsl_tP<~qj5-KZ*@aK@k~(?#R)(RkEeM)@=vvEso5a$U_MSqv(}I_d*o zR*KkC^h)bGBIBnJGTI$WvrYg=&Ub~P$h(31xiXs(Zsb!foZ{*pXr+@?FZebePi&@r zEv>uG4mikww;V_jsj+YHt+$8HOEjFR5@5}EImDMa=#-7aNy$14DO!WkWG&Qwo|>0@ zH^`N9EsaE`_aN*W8*3TSRwmy3)EfXvtpE{J0s)vT8#tjHkWPPic13xD;Ltz|3R~7x zd2HHjpagm<+MHQYpQvp%<+;$s>@}mYiPjNE?DB^7GI?&El&R|&K^8P$fqMFstpa;e zLmhbhq69Qr6-^OQjE&zga4@W=sGuZZ%uN4? zV*hr8w_kYhm5$gVFvw8!qxCgWHU;;SIOj*X@DY;3ITXQop90jdyfE1=8sSApmLIJPXKn$+ZA7Q+gvEN7WGfhr{n=r6Tu_B;>)yb;=u zNEojICJF2#yDAkJ)*-rrmgPDM3R~z>vm>n~`lbFUWur7Hpn2VO0^=WOyEt$grjfkm zRc@V3rv|RHE8(Ydy>wK>A<&Fr)B^A$2U#l$3B;^s$P^L@KQee<4OHgm73f4{3orx^!^7gX6P;SJ zru_hLXnqnBRF9~yxC&8cR@4VjyzS@b^xtPMc8s+VcRTHSe%gbK2VsZWlqL1(Pb8^_ za)o3q-K*w|lPX#RY90ixmB5Z3>tb%jykn4R^=NLq^sC z`pFF-+L&aR-$^g`vm1G^fjNom?vWYFd1BzBJJ2Okmgh%Wlvkw77F~>T))RvTO9f(+ zsT&9#SuzNf{;Yw$aTuJ~DlBRcp2s5nABzPvw1k^w;l18E{d z1!(Moh#`LWa48U|xZL91{KmQhnN*&HWn9PO+b1(BT*R1^OZ2qN-r@CjL-(7l?I=+b z_b?Qh^~hS|xQTnlV@NEb@3FD~Eh2BQkfan*0jdo8Rw_aZtIBzdUeT#I116#@u^@$7 zLy1QK(!tT3c7ewf^`?mAhZ(6A9&&;($Erm<;Q1L?eIUJ|QjUmmDFuZQhYgbDD|$rv z^MjYLvE8Ad8AxNtLtx-!0g7-vq86dxSgk;+uE%)-h@U8iAhGa9l)!Z&c>z5Wh6L)N z?d<^-OcU=2Jd42K<@RV>#12(mWCA%5TuL)&1j4oj{N|}esFyV;)F?|o9*$xH8jPc> zVub;N@UXg^?x1Nf?G3ybmI4!Dgg+T4@*H6SuhR#62A7(z))Z9|vSqD^wH?(&t$@>v zJk$P|i)GMD7nV-MN*zi1SPsSl0)X}&*2gh$vCQRiCNrY(X5zy&EyalYPm=dkugejn z;>0OhP90LN1>vtjIy_m;hA%f7q6JIGR|ZibB|rK75)U->%=}=mS^0edt~xrtDcJT+G=F}6U@=r&x_ zUtt;8t~SqpYicVtGmQ>uOGF6wX(*c_x(D4w!B zts(%XY6fFh^>PcMPSzJxp&m6*GpF|&xb zszC#b5<`>5N%U0Pd&nNa{8Chjacdb_46^~14l|-B$f)DC<*+^F4tmW{4YoK04YZmV zEj#}tJ>6WoJlTlxiNZ+5`WQ@=!pDLcC)CC-yY&*qmhtW)5j43r_A z(wf&Hl!w6hl_bJ1p<@i-i|D|AAy6jjYc9cHux#$`;ayy=MV2txKbt&~$6(`X15rcE zLH1yH{iXE{6(=!po(VD zLj(uOf7S5|w1hliqKy;?u4qkd0xQ7l8AIn2HxZx0Qb)j^4jP7lhofcJcnkvmy zFL=tHE7TkpX^aCU1~yR;kRLzG=(vrk7w#x@sl`YX)3Zq4`9CEJvzLYejeSuVHyb$i zf6q@2M3c=7n8RzYRepFzzoGaDROv~b1!w0uzdL(dhVT*Z0xA7XZmqo)$sS2}b zbW{_P&1g{!RB}^p#=%4LStTb<$(4pep6p~L`2hV5!DR(NS-2I4Gsf2jN(FKkv0f~< zm>*K>&|YybSiz1Lu47M2hEh% ziF9}?zF_tyINYr}@VE3w7>rxy?36-;zyqX}ib(gB`VgFF!4|O^U7Kdw14x!PgTf;~ z8*6z43~I4XP^suoQB%PP7SM7U5;By)V=47sQHo{3Wjq}*# zz`kJYOgTtnemd#zh%7?QBcs7z76_pyRua<=6hL9A)>_Y~rz{qeDNbmVrD4h$g_dP) zo|#kCt!PEA?LX;S)FV6QNkbf-^m1b87(#^_`$v(4tAfkX&Muq)c(CbO*QNrVs-IO3 zstg%SQ{Llt3mWbyWZO-VZ5r@%SdA3xC~CJ8Zvz+-56!61>i7ViX+J+#@HfuOn&E(U zTljF`Xo`8#59Poh4N}l20B)9z3`QRjG8blzoeoxDGRMg+h{#&2g*k^Ydx3zRv@MIr zOPcdp<~aIe^ClA!9yJ{8G+HFc9ayzpk?(Kr&@;hYU|BVdyvGCq-X2aKYBDojP>7LV zg_xOrZ&a$NVA}^^81PBAjuL#Az9>QL`c z$hbYgnSL4eDRt6`N9p`l@n+|2Zw5+A z(%57a5mk^23_$cDx7TENmJSiOiRp<6Ku*A%4K7#8T1CT0%vMIgh(r|_Z+wHN@d(g^ zaswhDa}eXsVv2?m!nGnNZd4B`DittlYJU2O3?jzK8Z1gBC(+a36`(gVSPez_5KAeV zl@-G_l;`cSV+RW2IF}055)}x5A}!^8fY(*9nq))W1fX}~xXx{AmpZMjDG#U$2cS0{ zGeDK5AVRG`J;(X!C<`5SkYex$$~0HMc~P8@jEQs&2c3gc1>7`k2eJWz!YcGqJz_9*4)n6Iuyx-C3F#>;iXb1^eb1%t+r&|ECcOAxN} zw!j(^Oe)02mY{DY?od}r?W~k(m=l}M-r_OU-r~_d%WHm`fS68za~B|j7itAkSI`T} zU8CBskiVsE-Vyp)8N+ik*Z_^x`H-mOb20@62@$;rRv;`2oXd#JDoQ?5D^QO)>rF*! z1Eiqbp>g*CW1=(%yM$2iI=KcJ$z@i%qw+9<1fgNTh|?e~^16o0!IUDLP{v;>VhuV7 zf1(2f%@mD+?!SxCr2A(vW0Eo&}VCihC(0-O7pQQdKBoGeL8FEhN~t#GKGM`QLa_ zpa;aqg+lun!b6-^MdcqFL0n8)!ZT%z&KXMqF7H8x& z8zBPU)sPq6n${>6OR$&yX9bA=3E zKyCHuVkMi$2VXZA>;P5H^n<~A?SPdNT+T|I=a{iGttCXDhk)FOTnSmB)6vuB&2%!`lL<-y-9j;$1LFk388OyUjGbj^uk*SA zm(YK*E7lJ=E+@T^Hxub-en!D4hr2C>0MU8SKkuqVm?kYuQ-KzWP>*YZsGLz&0nsIH z{U%YZq+|!rF;1gjksQJqh?Ed+-o$9eU11D;<_F&*V92DPBv4%NQEUK2hz!iBwy_0M zVEM=sa(jBu1RbM%Xci`T(mBGE#s)!@mki){fl!91UxE~7A)$~&*Kk%K57wzYpce*+ zv+2-Zcmq%clS98f&VuO&f}3oJwvId%7BeQ@H;o=*t1_!eTn4dgUL-O7z8d(b_#ev9LnUtNH}CZO$q^r#wK@sBAuX8gb%rn z4yzS9eJR)G$>`E968dx4<$?V%N-pJJ~Kzp}+gq`LZIvtJa42(02 zCNM?9D59?U!UVX5Dtxj|;63yS6?Ov-kL)OPD4iSQPcTZfZDNa75@60y8C2J-9TqLe zNd{ubW@))9UQVmZ_@WgaYl8N1rAjVTc{sg(fQHqS__~c=zaK9YTlQch1T}=w#17Z< z0T-}AEQu=izz{#9XBL=?Yb@k&^l6BX=RJX~{A^;#W}Lr-^QwdsQUglU4BV}jfGc8E zxfY9-Fn=hnt89=qZmYZcvF>o*I9vVWe4jkriDgu6FY;u77*55=RaITpThZKefmhgg zmO=UZMzxAjoJUlvF{5yl?rkjtFdl6278=YP#`r)~3zhg#clY-pP6LlJZc)%s-@X0M z;1QxBe60hDG}@?WA{3}vuFoje@i)Ftt$-kFi4@x#)AsE}g>*SJi-SZ)VV zm)mPat4Y{hFx&L9KhEgo%woB{-(;J zVc9{d%n3DTuNUB!v?5$aZ|XVM^P3yAS^AX;h?iy_ejiSQDb<%MWmy(7#BdGHF+zwm zCaiG{MFS#+pu`mE)0s9JF)&Pk)(J~0Y3pam0V%k_7yz4&XqGF-wL*s`mXcZAPA(DE z0Ap%V%NJkrEETR?=w6KzZ-Va#vOx*xHu(6QzSN2iSnITBJ62ocIPm$+wK>~` zt=*&B;zbk_mb_ujDArqnM*ZjPcpVES&B4V^QSD(C5g5oUIN%!M;uVBOeh4HQWC5Of zm1_XIIPrp?81W1h3t3>WvgKB&gDQr-1hR%SU@Pa;K#B-bDDAWvp3ifW0P<9DTL!Sv z$GnYh>oE6svZxE1BJvxH3QVDWMcn|;K%3cdz)3WPda(j<5^(^yNZ+Kg3;ZK*;gs+i zz;TL96wp%Kh)c!E>|86&WcrCApxgm$T+En^3%kBX_s*j0A0Q}*sR!@45_8h3C|BnJ z_$auBJ$+J8?O01ORz>pU;k-`A^E@*#c>uq_;tW9D1TYk%!x8k%ej~Wi9BN=P&}B6A$vysN+r>WOSiiDQFr-LXUx7kO&kWg`6E4nP zJ!D~~WfTyX`hA7@=?U37x|f(EiY``VBq|aGW)%CnV&GY|#riOC179rkwG3W|OggKg zqLty+vvX?9*$Y6NZP42K>*uSPq5N#a{AhujA0KUIeiGDS5dC^x#rLLgSkT}0tf~ni-YP8Pvc10{1#U6}u z2U|v*zy2fK!K7FLEk!zdkZzPfkq}qWC5*3kGD>%=N9Z@w8C~;%dT0%lZv?D$Z&CcC zY!QfHyFMcyrv(uy8T<{+K4B&)qqUJr%Th#pJLA}+QlTHte7msgyIhxq_1x}kPzdb} zl?=Qv?|dAjpGX9oppP^zVF#0IBDNIJrtlToJMWP1Vn>S2!G?yj>3qBn7H8-a_|l*} zx}&%4nmOEUXQ5Pt`^sQcmJF0qUW+)hf@ptEe7%EJ`WY48A?w&A+ZHgH3?g3`%P%mV;YF1ARA%kMnBk9b zyGKhf&t6A~%g0Pm>~lr@Gc4qSg+W6^R8v=kqAHIv(X}|&RuN=prdQqJOEE2VPuu0I zIrGzSF<+{vs^P#>?V~h_LKzptGP!jw)_*Ogkpt5i&(XY@Bg95BSlCl1JQu@gt%fSE73T8C_6qkq8EZ2PMx%;> zdCjAqUoFOn-Gr<}X|v(0NCg2zi;9?EYuqkk1(mBBGB&4dPeCKj|sbq1`52~RG_{KqAGXTFkvxq zvE%hYr3m~eH6W(@SeY3H7}f$1Pa3@D&)Zd(4j&Riv|41^4Lhif^EwJGbhCyI^#;4g zR>4%Ffrb5Aq}fTX!9aj8RFFK*nbPNAXhi>WEL?9_pn_s%>kZ}!h59WIV6?T)nhLss zP6M^c0b(X&wz>+CRI4oBMO$OyG(@aBh{frAq}$hgp+dNR&X6FK=1K*FfSr8Ug?O!0 z5DG#P(nR76lhYT?k{}0|?BICHjghqod)Y;n1Il%@TlzY+0)FbcLjtz6^RNLQjxtIc zd-?RU!z}Zf2;xICKj0Zs%iCRF;&r-)zFn^)UZdJVG+w?JzExGmqL=1E#inl? z@W_C*W$Mu_`Wr2jI77$I1?%IpnuANJtg5y2JP7KchEM4mJtPzXISHUz?4$1zgPT=R zAAnQa&kM)_AngXD`2Uf^QPE_G8#c$dqbyvONc5>FVl0J5nha=YkYC{(GVEc>hbjkd zfH?x0p-uHK;g=@*pw0_`QLZWOz6ZN%#-NOh5GCK6D;KFCtWSt~z*z_ho(4V0LW!0D zfV|e9v4IJi%Y}lmXTl54BWQ6QLePABZ+`d!!B%Ee5D~u?T_L&-E%u_Kjv$xH)6D7! z$<$)&Q9D1te}5PL#TvI6nE6T-f%=Ns*RZHPT@H>y*MOheTw*)uEZ14Xi%BBYM&f(i%$w?USI5YhIAe}c{2><(hqClGe zeLhhxHP!(@CY!lreA!Giro| zMpXTJis|0C-r1_abd-u3#f?aschrgq%2)x!5qQQDYjk;51q%a#156o<;32Ak3=uo+ z=jug7awQtV@Tr+brg;z_gA14sQJFj4fmHD{vu<;^gRv#G6oa6C1FE|Z!S4@k#T{u+$5WjYeprOjYgz#3 zEF}#Z`KdL{DA>+LB&$8{QW44CAz~a1B$5Vq=b{aw1{sJ_sUuj?MZWq)j~L3B1QQn5 z5&KC0_P%yS(}jU-V+)PAyU_<0X?j0nxN{=p*(=|KSo$wD-*utEi-0WpRzO~&aV(TmC^CKcMs7=HYq$`I<9Q&WNB$zD>bfl!BMGa$Vy&8K9 zKrlK&cqBr0u`(6AD51KW;aRAPAQj3qtc(j`Q6XZ4K;>!uY~z2?w%fNO#$MlSIM1+B z=@$_y6mKTt`T?i1n}}c`v&V!JSWRP0Y{qtSCjzS}G;36eo+_p&KiAehB_|FN3IiF= zIL(vxr*B1TE|jx+P)dwrGS0lpGDCnim@$+)v7%UN&=k|OkcL=lE~E46{Gtvq0HX&A zFGMsV39QI|o4^w1*?2HvYd+?btJ&+LX)>jt}7w3Bn5sLKPK6i+HaU3^>Es z%-?{*Ct|Oit_Fi3Ca4=1vEivH(?28elK$s$7IgQaMKI7mU3 z826@wTy8(E7zqxd0eTX$N#6qTkh7FSFzU#d`kjVp12NT6%xq)MshGWtL)LYFDju?Q z62|R|CbK{(83lv}jhvLiN7PG^*5C2u&O?IV7?bQw2gMQ=A?d>~iyus)O!Uc|=vPFkYn<&4)FNTT`0pM1Zrt ztj9*?ste*1VRocw3PBaZnOYIZc?^IvAg|cIy z>b@57=UT(#YZo&y1s@pgPkz_P3R!4o`OHr@8=IC#ixne_uT&6WPdONX3wTcv;3+67 zT#i0IZ#E`1_?$@yd_a7xgvKT7V5z*Ch4aC_%w?-cQJ+PSfxHczn@OVI4}l=6>$Ya9 z$1gSAY>~@NVJ#g|Zmn7^B9DE{`Cm>vPE)SqknpeA_E`0ZxCkhKsdN#fRV=qRP@q0P zCwW&8ahz;pfi7y249SO*7sKT1@f61-6tO8?rL5mpQk)zl{N@x!3KT^au`uMZJOVz~ zzPoOyYn2K3uJ4#J1$vD&F9W}^93_5*CaMoa6%33O&4Qs1uAn{Q8ipi^mqqu*c&ix? zC2w9FZcc(It;%qbl1F{gFT8Mc5U`5_DZS6*QNajkF?1BhbbveHa=P~2Qz z)929Ajmp6^5;#cz)A2BlP%&sF$7@6>HI6gnTA{Y5$j+c->GGEvqE(7RoR<{HyHpT` zaznV$s!7%wC#y5Z7ej^NI)qIK)gGf3X(w5@+uQUa*@4sB}mHk(ow^Q zULTx~{tW2_$V$u*rGoe9yVd5HpZHut zc^$KtX??Xjm{9YInI^D*rFv0(We(;Fosm&E6NZoi(#K^$J@PUiLc+aHVrRG@A%-E9A+tm5{OeCN(IU< zoW%01oW+Z3%TuGxTg~QEOO`&>V(D|lVM8G_ql)NZGip=&2x=9YMCzY0F4P?KBCQX- zUnq$(w}2rGI%|BISwP>%2A86Yb7-Y7ClAdIzjjDc>oXDY44}f~Lt!IlN6u)xUKrM+ zT5@Yi*pdj)GZlpPxMm6rzyYy~lkHH?<`ggiu_=`hYU)T7NTl!*8i`%1yoP5Xi+aGw zJEB>NBu&9D?aEnTlf7)l)09znfYEZq%uj94{3Z%#zL18t>L0CGIC0@2HajsAwkw#W=ZDjQ{i>9I2|ez|s1BRp9Q41=vH&A^ie*XnDyCpgZe z$%K<4aTEs#JCH5oqnJa06c$iA=HNh+QUL?TIoi<1XCXmwNYgf5kMpR?yDLJsXPTk{ z*tH7Ldad9sS~_T2?r;%`QP<|=HM6G6>!4U_joKY43X|8)7J3iN#+-U%_BsR0M6GzO z-(`GAS_7u>s|GczgKb)HB0Nwlu%eUZw<6FcWitF&uENnoacO?QuKX~nWHvcI*rcaC zFy3+U57PjF*BgnL7nLIs!n42b9}>u+*A2YM$CT4067 zzt~HxwJU(AVcJ(`nIc@LX~r}L+GI^Eyl2P&Yv%^M@{JlRmp58C*t_yOqNjo!&j>oLR$V=(v%?ak&=l@`B9draV(3U`0=rjh%SVlX1Dv zp%!yvUh6uYAC1qtX#W6Wnp9s#58>QMM$X0mR8~dK!qSGy3Szo14^l_2aEM`<%)S^x zfLN@sEuA3uZi@l!ZaUW2}m=plle-7vFW8)IHNcvEB&U3Z&ZzJ!a;QULNCZpF4ij9Nf| zu(6_S;#7uiFe?G}%d<4@zQumKIz8dK=Ud6NjjhO~KSaa=m^J<77#7V!9S=)%Xst5V zEEGD#=O~a|P<8t7aW(eJLc!9EavQEdzNSz8(hYTtvr{@*=dKK*Kd)twb=C_BDnATx zivpSzv~2{J%$0CGOHqie-QylZ4dC(kCI)IL&?gW8z;2H)WXw`H4XPRxG}Nv|)(SFi zRw^`e@@m9C!&~)rv|pN&o8um%Bn-^RoH}&&nl)ckX(iyWu|&A^P@*!rrfDLUst3c*Efs_fvceVQRGYN|BV&*W zjvgZkFf5UV8~=^jRh^it$Jz}aCV@Q|Zp3Z?qA(GBW_b74AD0Dx(YIYjNsAw=o0t1Tp9qH4rRD zZ@_QC-jD+j!yd0`V6tdgASFWLZ4=>#xP%}cQ?W%-M4Vhuv>tFG7DGxAt;o9}VWSms zp+iY#>J4HSUudWC2%HJjbNiI@29wi8q;I+a3ba%1@@3v&UZ&TD1Ns_qZnYaa5sE`$ z*dp9fr#2>FMg&QYb#z(o$t&u(M}{$KBaeVkyi^+@QnB`? z8uvV0Wy}f&5NVl4cL<*A%PF3~HD;194g93L!@xYe47Em%bZ9d%e=VZEIbDr$lnRgV zlp#DTotRg<&}fPWPaXu5&O}6Goxg`qkJR+BpCZ(NKRkpKgqlZKD(da{ZT)AB7wM}H zLdjAgL&wNt9a_NNE;ayh#`ANnLr<4cwlJ#|Hm-xyYU+yU`c{Pf>X2bAHI zd0-wPbVE@9(>lc;F+r2S5A5n$q+}xkMZ3wdi>M$ z1L+thE8zC992j~;BzQe0VBx1_qQuA5ze#_A zb&psL5B#A*1$;e1)~c4ve5|fCHUu1f0EI{ZG~(#)bQmm?q*v)A$$!) zR5*^uGvm+qM}*w8cxL*={h8$x!ZWce5OxP14^6+gKNYz^NZsVm_h+U*NWZ{Cn`&Hd z9v$<0Ki9+myH?IISrO2}5&nO|-N5nM@wNUvB{0Cmt@(HFYYW?wy^t2)&IUUe? z3wzw#hUU<@ggIdtCN^%Zu=#PFx2E-8xd37vBIFmt+1NV%qDgW`Vod;~hrXS$p@DDk)qb?d%l!$m- z+G3**X{q=z;S{AvKVtm7sr5?V=#(8`h5iHr@L^;+E%bNMWaSbLMIQZl7b$dhLy27d zBK`r2!2It`^;F8#Q&y#-%nDupkzHS*o=9_1ZQQk!eiYg$e!Tx{xOO}#PeJ}tG|g61({@=*31PhNHhm|mmx(BNhAhcLe+$w9177;d@iCw zu^;|Bs#^YzXy&43gPz8(T>gE~RD@>Qe@Rco_l9SD{0YC|{=oEx`zy=84^IrWS`Y%g zn=3thOk=nW0=Z;$Vo===k&y|aG@0zJQ2P${fItG{L*1h2=A+Y5&wV) zgpa?c2huAa0!E4NGK9{5CSmAA5UlANu*mW6!vkAB3l*l+1=OOC%;*Gt!#)S5bJ1kp z7LFhzYb3Ye(e1`B$jvgW{3F^5(R~wWcaJUpI(!FIXoO?@H;516dH25%&l7JGe{5o+ zB;kkL2ZpeZ3knDN|1=U3>KoD%Xc$~z{1GNhKVsLE!yWzG@~8Aq0S4EGs5*km#!@ki z5GR#IgCP6iG234Joryx7GavI)ThRi;JjfBmo6U&|qkx2zM5mu%#cX>}aV)C%5kV*X z+Yra_AJb1jA^e;=^&u?cr_kP{e@jo2KZcy){-pGmCJag{d(BD*oC6g02=`Jbn=ZE_p%x z9U&4b*!*7v(sCZ1LQC_WJI3zd{TJffnBk|+fOjqq(65ataBne&Al|y{uuSb!!BN)& z@Hf-N0nS8}-uQrPD>8RHIy{389u_ykVhn!pq(}OvVY1-dBu%AjU}e+*|c zh7&`BrH3l!@qpknVDbN$c}V+r1V;MdA2Scwj0$_i*$hmfE&rH#h|?7R|D1WiSfO-N z7)^P2DNO5yNxYGLvXGmGmKT5t)e;@V$Ct(OFYsg{?x2teyQpwdL=`}zfzNb9Z4`!w zkk14n4$6BZDxt){Cv*-%GXlnmk{+MKuuB{@!l*FQF6m*|iRIXxUIwQa_>G9^JeSXd zOi9%HmOfrebNTTXaGW$z8U7l3nrKs=LW3hboi==75x6D|g)_F0!+#HXRT7MUfW$ll z&Oe5)0-?j-h5hsJ9U)bCZm6t)03~GMwM1dWf5w->zY2#lBtVnU5#L~l_*FQpf=($S z$U~DM3^IgKar^>Lpph%YuW&#U@?p9I8vh$^$)iKRLriU)1|HhI z{NF?G6gzpi+m7bP&@Bq1xOBD?9mRxVGaO;hZ^zad4-e4^vS34`AMZMI{{^?{(qCg> zFi8W(`krrDnTlaFpf}Q!=klCs9$aGc3WiV* z^8hsA@E#zI!zl6}^1lmd0GI0AL<_y3?C->5=wAk&6FoHlJF8H~cC~aixb5xXY;b4{ zrhtwZT;1Bpf+ZrOftm#)3qzX_Jr%-X^gC3Dl=)!I^BNgSmg?ho;dEs3SKPwKWl^0O0CifP}8Y4aXM&Nj`lJ8x448u{zdKCLlsoDqgUbhDY4R zwpaMVut(mcg`tz(-%+4{Jh1HrB2yCo-TUAE`1w!&_VLR%?|=Kxzk2`skAM5}@9*FS zKYscUPT>Y=7ycpr#T#}?=`#iwL38HMP#8?%@n@V(iCD;= z!^wpRg82911&=n?yZ68P{OJpxOE3MMCtT)ee*gFX{P_O2-+mYVzaKy185s0r8GiTi zub=rY?!rGI^Sd-wipd;%TNi7xx3-=rra#K-@Xo{Y#Df0Le!+&lgz z$xN7r=g^dZSi2gcHG=*jPzYj()ij31LNTDSw_uKrJ5wNjCenNVR08Q(jTDs12V z98xWrRLdLbOD5HceiIMx{|T`=Wm3T<39Q1+AU_9I=S-?_BSX1@A%Filq`G8MtvIr; zlnRHy{wz|hnN;D>j#4TxAF_D+6Drm<6AMC+AIbC`B|C-*7%JKUz zKYaYBU;Xk|zXFj0wf*InC_IrnuSa~w?{FX`4kg6@BEt^9zl47ie*eq=>D~K({`l7~ z-*8d#yZ8Uw|Nei3zCEtvLVG)GY`pz@Du3hm`rZ5g6&3wm^vt;M4>GG~$=?duAi`ZH zk|W3fnMjteL6gIOzg*(K0q^4S&-g$5QTRRjd-v~@f0yu?zUR69UE-cY@m+Ws(s!u} z54`=MUD|g!1-Y**AAN_fqKpCOe@?P+S(W380k8^JmgToUe*AwzM}e0(NhXUA=uD>f zs$^mHNeW03G$0}rPy{KA&?dwJy7-=?DN9pg+(}C9GX*`Cn4x;;MP(4-_?x?>suCw1 zfaGEQgMLa0A37WL1bEXoyEP@p{aVz%G$dEh4Hg*_aF+FWH@`4h0CP>|$DI#he(9?O za3jFM9D@no)i|hmSfKE4gDJ+ZOh3m3d3@dU_3!|C`NKr9cNLnk#n&S@i4GjA5-C=0 zqWletuUDEVsdX^RhWx=)*C20HD*7D0L-=`Z%Zh!eFm{#68hzj0oyd>~MGwC+WIY4W z6W)6Uj_0@Z?ieaESB9>45E?xK? zRyO<&0>2&MIOyNt_dzT01<)zv|6TC!Kxc`Lx%xKPQ<4rOA(_4nA$iAD22RLP#V4Ty z*|!PbDo9EgM`?rfg~a#@4~e-Ck-5C!K!l!3i3#z$#ERC2Um2Q^unhPI4L${Yfn(5+ zupR;9N^1POht%As$fd>{Zx|y~G&bSPwwAPp+;*uo;a9y<2WcT`(jNK@RU!QGzv?## z-|Vg_v8R!Jg)??RoUg!KPy%%4Be%1LENc13bQgRLS@KqinbGsuK8FcZm<7A*t zI45199I(i~Fn7EGbs$K3lKwa74nz!Jr9vDl6tvzF{|Gl1wtd>-$L)=TcpWSATGMki z(m2WeWMAPNzDf{Tu0;4M_`mF{aDyjX2`mlmDjQ#gg6DlDWDy8PbrnhtKNG|jR=erz z;5%kthucEg*TEqoj@#r!{{D3+B$T$0m5$!ZkoiI+a{37W!F>kDq^?A1#+B%pnxK&x zVH?ztm|ICcP#6 zLLAfe2i=FFSt1`WEfFS)43Uc%TeT&j`&(jc%ofO8Lk1C)1z#h@fPlV+{0YB2;&0P` z3sErSn&Ib=Z&FScbF~Y~E6Ux%e~bSPH<)EG#Qs~have5P1a6#wBTC_L22a1@K~(zM zke?t3u!Mjfzfuvv@o#{VDL#%pp%ETq6^jUtlk6(-!>>BSALV;cF3L(#oTOC=Vp47w zL@u0eY%FGohbgIWrnn(;5wVYT-Acde6&XrGsT0J)v8cMp5PL@@bSG`|3C>d;lTtu+5;0l5w;eU&j!VeD@f#V!mhC@E1gevQ*;YcT0hEEiPDzPW&Js?=2Ieww57}e$^{3 z#0jDXy{4QgdZMTR1OqKT2t zuXOkS5I6XL%A?}fqpucz7tA-rhp1S=@m60qtQP*S__|QQ@Rc)#<0kjEuUljQ+zKkc z?uHD&{JQb$b${L9$n(_=U$^jPv30)f>&o@aGD_M%=V6my{_ycXFu{Zwrf)xe`1Z#S zn74W%Tf~R&FzpG~{qFrQUjFHy-v2AQXn+6wUtiw;_J?o(^zlD1-}L^gA3p!-|3W(r z{pDZ$@cnn6-hYkXe*7_X$KU@3lU2nSS%$9i{{Qj)Cp_u57^kNDqa%)JZh}+k|%sgN=RPHZJc@NRV#Bcs-U0D8|e_Fqi zzu9)1dwaC}%|DwPqq^>=^Wxce&TFxsR=4w#=qG;jPvO8+Pm&iWKk;|AtqOzPKYaXe z$G0@c9TF2BpPtW(mNI1KIktkq@Bf+JO{r`7?r$17*}r`H;rmY?-@X6C_aDCe1;?LU z7EH4I`s4TC{pHIG?glumh$8%_^er)~{=>ih=eM6;j^XzhkVa6~a+>Mht2laG%-c+szI4)<5?}*h1 z7{tN*QWl!c-G%|r?e|E=xjSQU7VphAWVE$rogBmfY|^!X0d)j~9^l3dE2IDYjNXyH zynx#jv{t;ACTcfgKcxK^fxVqwvHmd^qi2=7^^ZJ^#9+IZWGYCHWV!yW0s}kSn!~`* zKh5tE)P^2R=pRjvL+>Jero@2wGRAwA2o;)}p;~{`&OP4uTE3SaV!W4ZpXoh4Z|c>* zNDnGyA%>74i-G~Oi+Uu>_3tL$+vER6F=*>wBt(_6RBVj0Z8PKlSYKW+8L0R_F#k=z zt6@Ln|IjliIygiEGZvi`5G3kORqs|n%>h=#F9E&=0wptB6%g%<5`-QPI0}NHftm-T z*BA>j;Q=Gz4+l0V8kqP0wJaon51co5E0OK~>Ekc{j6Nmu;kP#o2WzP^1`!tw&3_dr zqBLKNL3G;oI^(1xoY;Zs1f2OnixyJYs6CXe1eZ?wiT|Y}2__bQE*IHOZT2bc>&_7l z6|gLOpVzAO9!THTn^U!g!t2)`zy0w2r|-h@GKZ54ikY5XJDO8k;Z^7-v~JGds)m`N^{VbOL1;@U{m=mBlPGi5u{ z7kDI3eW-;UlOMnQ%cl>4X&x?^TS9vlzJR_UfE0x#5jEQKm_RZZB0H~GVY>P;*GB+( zR)J(ERRI}(-4LT7=beBuRLLWMb06sq!j+dyi5IKRD52{d<&tnKPI->fQ- zT*y{H+CjYnvUWta9k(?y+M!7GiO|v?IBVB%vW}8^>!|HkVYAE`KR)4WUKdFXeCkBB9K$k5QH^gOXwk z?hKW&%+^V~4=$0u4qPH8HVadx#|>&Ae|L$SZDM!aYSRL4YILD&>3215;R$WYGu$Y; z5Q(u|C>yt?E#u-ntN@@C;iaNUZt#jsZj?~kMs|m?HZDM^#+P_>N2P+c@l;UO>C`Bc z(eg0AT54r@LwjvaYvzM-1eCbA*?M4tl1|nyl>|_#5rzuWS}XIj`E6?^t)y!m$`=ko zN#8JNr3f+k#Sw}?CX@_^gwnRVJCu)BL~{9nQjIaO_LN$QlcB6NlUj+>ueLeHrh(&h zFEVg!MHX5~Zy3}{`Z8Fa@`1M9-Jz`Q4fU=XW2k4OXr*mW6_n)RiiCAkE6F#Zq!D4K zB1muWl}u|EQ0B+oDQcdeqyq;_djphu*x}q)YGr<8q4J^%O7d`fKuO;a8ib}ysYG^^ zFb$mHkWkuocZagJH|oMDlVY*=QbB2_SQ1J)>Y`k`L9L{d*8-Fx>{N$oY|u(R0z*P+ z+ua??+TH-A9(MG?hK^KgyQT`tI{O-hl6(`O6k#VnuTC)&TPtINRj4^;Zq0CT$Fep! zV5!F)y|&32`HJWjmUa3yh$VkT=q0wIi|>w8Xst+SgBeq-;(o5N1I z9(ssZQKjhxk-Y;>rs|ik9LAGe6z~+$r#KEkk;w!!Vj?X4fYX|-HF_Xgn;sBVBT(EO zl5Vr$cq`IN1&s{+Jz@}l%b=km2o)T8MJ5N)m~aUlwFBD&(b@oks9OKT&43zF+rVl> z>x^tzN27gW3tD`AJ9apT5++hdbDpfSNOweOl(#fNAgabA{5Isu6{5~GaD^yye0R}N zCZ*EOPl>2A8*L-Xm{f=c&F%1`=oQG~1c<6pDb6C)h}vmcjcA>pjp`^-VPW+c5fF&l z8JvSCC)o0lwkbYzv^K%te1m;-CH;)2q}GVq7FHu#r)k58M*GCTfk4y_BMzc$jN*~b zTJ0DJh}Oy4D5A{6gO19`YaV@2coqJ0#Q9O zajH@yYFk)^C=nz}*FB7Av`@5WN*&Efm`WIN5all_A8DK71JT+9fv6st^hybL@R=^V zMzl`Yh7pbSi8ic2)D9yKqJ)XmQD=JhfoN@lKva)RdcAa@v#Z-dutt=eU*Tv*5lut8 zXfX;z?J(jX8gsJpk~qzAP`j}Q#?n#@}tf$ag8WBzhV)G5smhVDG8xa;T^+>5+)U*L37)W zd>~qzAP`j}Qyi$O5w$I>MwFc2K8Qy9#AJ*>)D9z#juIvkQD*}7j%YUanoJOgs*x$O zJ1Ru!5$(mR5ao&8T@X!!uNXlp5%q?kt>L4CI@XF?X!>-NM-z*$2SnA#6!|MPqPB(A zh?4UwUO8&@aVO>lgF^yQJEOC8G>vN(kEAO$+IoX0;u~c{nwfqkXP;bDG%TJV!rV`E zGM8u?Jbdu-!kg*%-8@xrRmhubA=D``O zjw_f=RlCMlGG}nzTo`vUtO9XM7h^jr&$^<;Y)oq36QR7W&kE}zS z3Gr#;0z513G*RJ+DP;+dGij|G7dg{Cv`5e-57pfvI~y0^xi;WQ6WIbDd*D)qCmU^^ z)E+qH1C;v0$3>;Ti5d)CZfHV!51vK9A4kT<0DXyHYJF1R8M8 zJVd<+*X~Xr@NLm>(6eT5y@aV(0z=CI`4o_ zE4fV#>{5RmvVrQKGv>jpeaYnCp(N~KU#;XekrD(xb~c%xZ*a(_`X_ObbRB;5Q}w2q z)T(TNgEthf`5ope?BRDXAtjc{=?~4@RWqqg8$m*#0l&lWWzkTo#Nk2dOx%f1a+T)wn&^~(X2-Ute)cp2tk>n2^-@>Dx zi%%n|Wh5&7amX`T(tpf|G_(F$B>nv8r{dE}ZjXszQ~DpGxEKOy`op6=d-!KbnLOqf z>1p9~HhvvmTgmN_$v!gwq3NZq`0Tdbh;b;fTuzT@2YedIEiQZvS&P8u;E`M>lUq(D zK~(0PDSV*hAbcQ{!-qJ|#?A*4MgtBX(mzgIr~*wMb#N9JYMu?@_4f-B)R$M@V&UQIc99HOcnd) z*W{7*?fJEEA|DT79n-94VK^*?VK`*H9~IF2#$&{I!uqF^pOzTODZ*-dGgP>G2`Ted5{m9ft44 z;skeQh%<|iVbqBcAOsrdpD?q03qDa>#CY4$p{GR`H?A#)39EM>9O+fY@=V6%#LhUf zhQWjxN>LOXy}J-prQPglXgREL(4#5x^XD=yuLGvE4_FTbz?5(qS$iN{$q3=>v)Oh@878EDL!aI6B4 ziB5G)B*GFG@BD?ZD1d*oG}c#OyGJjSRkvh?(LdD`L(zZ_YY ztRkFCR8)^Y`hLV57%n`kz<h2{*#qpx;7aqxf8A4B{Z;3O0ObqB~ak4|_@ z(_8lRh&AHnT^)*XZ7I#XL?dpWmjZdD-boWqr`8-3MfIq1F^|NsGptBml)(%VVWY&L zi&=QgZm)5>cviAjE{f_`iBGo`jm@cRs{%tRB=G5KDU9P|nQ-iIl>&KeI8|FVC$rIn zWv1dyfU`pzN5e4TG#y@|L9a5jWzvKbQSz9GlE*ZKQi?Ia2t00Q1ja>?O@c1|-;t?| zePPZr;Uaxf`G2?>)z0TM73B+R`oy!NF!DCBI9*MGaePV>F7Y8ZEps+vy%|cY;zQ1I z3qDa>E-wgk2t`Pk5QhXZPU6qzJdR9h&LuMBvMXeqN?_8Q6S3r&u0uK|Vo8aM$7oX* zXwb(ZQ7d0goIgW5;-YNG;VpAMzOIGQroHfI4_7Ni@AzK*U^zg1PzrG*~K|Umw!Kv+L?V@z%rCp?+N#a!=69tTA zJDB)3@orLV1H@YD$mKKs6DQ&Lkj}6;64tV1vN*iIUqh_?dmj@g(mt4$%|xi^;*r)q z{_P9yF#qG{4}TwesW@#E!|E)?0auy}zqt^J&F~ga5(VAY(rg!+{%;GS@85T>LJJV# z!54?SHzh-KnDSfOW%Ukk6#EPdvCf`^Gk-_X{aYLg*$&@Po-?*MB)UCbDbm%&xoK(8 ze+bRx^NKMa1MXK5^%jp7_ar+8A4kaHMBiu0A({b;M}vEo9MY{hj2LZOZNW{)iB8_> z;G%z*{)`^fwsjsWS(pb#X|VgcvV?kjy_#9tPtA5H~!PL24?EU1qL;N7)g_~NSvz8-cKduEFNJ%#pkj2JBbehxo|e&(NDz3@_uS=JV01lGQ!dS=zgIdzq%sOf~9rM@3yOo53D?i>*7m z7s^$SZtth^a29V!Tt#DZCfxFV@}!r=yXbBfAH(~l4a(Bpc(;zJ`0SP&Bgqxw*t=3O zdXDRl;r&$R(lWqYT9`1f#hRM>BWs5)=F&2bkKz4P<`Tc^dEPH^AlY!xbzBlHBcd$5 z-vF6u;mgyutQY5g^2ir{kO2l;cSaoA&-*3zOleNuono4GGyP@@8cpq$m5aypn#ITP zeu+yY@NwLYiqB&X)LlNivO_g4#Bt`hX7Mq+Uz%DG0)>pwP-qpO{c>YjJ9M#~mT~*C zyq}sI)2j@8CUd`ZtK*U=aZ6&tEs5Gvt{2f;40*KmVxH0#duQ*5UWs^l&sgY^k-c2= z>CXLBTF>H96I3*4H)#tRE$=7Khgs9u~EdxZTCA(tHRc|{w$fG*=(NEML!~3aMtnpG90!@0qM4)8D3AtY)14Wc& z?niT$hCG@+GpT8dy+`jSD;JLy7Ok7YNZ;$ay7q<6JpbPJx^C~MQl^#x z%G8okre>{MRxb2tLs>XFjN@Z?KfYhB(w2dFwv4qjiH|%3W}!zv5g)_*rCY1Y=;>Yk zrR5ULz3EeL+xuasL5Sm!%x3k+@P3I%R0`BZ8ycVYW5)!imuN$*At4D&45v~ank+OF zD6AJ&CgTtFs&LQ!3xD|j!LQljrEyJ~9_7^0Bp=R8p}F0a?iMb`}V zUM124bp9|oh4){7{sB44rx&!X{U|+}n#z%E_a`&4OWgduEJD&*G7pR4^Xwf=ytE#>L6wz0HDQczcz&bn=*! zv$jbV1t*_qfQ&#DfxRo2)HQkR4Q*Nz(JVQ6Yzkfz=Are)mTqfJObcPH&P=8X#s+7S zTdQQ0pFAepEE<-%MrA3{@YqQz8iScClDhKc9+Pbr4Z~g&=SB$RG}0#RHFX164MIp) zZ`?W&FUd$mv_)a=P@e@ADtdg8?E6y}CF{iOvc5NV+pJ2-I(aN46_Cw&BG*$$cuJ+9 z){U_mtfk{<7&e>O5<;NugH9(VQ}r!Yp&l|x_Sk5%XjnE&URWj^9^G@&W)mmxlsb43 zN-4$w?<$-~lul^a6k|~~$wLVES-zHT$icg9RwY`U28dRtjA*qD5Sa;f(W*|&pzAY= z5)H#5dkLJ&J5+fWkA#+rEw6QpBI~kQE!{Ldo%S7Wksn)6ShWF)G%0;<#h6HS<&1V6HWTWD-2c^67(R$VY7;kqhT3r)E1!|A#pPV zQqkB@1LtT+cK@l1!8D;8mcgnCtH+m|G}uI3Iwj%~BT#KO3=o%28F6Wo!J_+v4o#^P z^ejUuSW7c*j{C+ktQa<{a+gj6+@%u{jKYF-Osf=HDhr7&rqXE~4Z~(trqXHPf+n1Q zIo2tYoOFKB6LrI|S(TT>z#9Th+HB(8M14Y#O}ranGXsv4i9`b`Dzjpbn-vXqLlWL^ zu&N^+ARnDF@{#LL3WJqdaTodMlyTGC*Oh1(2CI^fPF-xD34t0mlb74{ZJ%f*loG%= z5>bP{a~0VJXhx@uX5=nZp%=0~=pq%Jm><<=l%-x6VNE3!od!rnr;Jpz4Go!?cTtEY z(6FpTO+`J{jFyUK9Fc8k$i&>6;Aamyt{V*#MJwu*ru)ly;t>`n!&;(GMSTjE8%?+r zV}Lny%9ul&7DaOC`9X%$;zeP~)6NE~@`O&rjxhw%R5arWZ9_v2dvvjaPUC182CK4y za0|@#+A(7VZ9_xWDD)s>DQ0!UFj$oX#K0Q@O&V;X{+w8!V6ZCn=j4$(R23a8=p`xt z~qC6uH<$HiculoGvoWh}?aZaR?t%W0YY75`V4>B}j7LB&S^7oe6*V&=hXsn7e z-N!UgMq`^%py99>X3=OHEPro_#>ruU{eIS9V?2%e^zss+tW zOvI>89q3Jo&&(#O&0=DpliiQUnFDDh9K*KUvE&DnT(4fvlU+P?} z0u50h@PnR+hGDSuy`{l2@PSPkd{K`9r-qxh(cLT%0M1}n+lXOHL=7iB{R-fggn)KV^r z$MMn7V5ZUl8e%Wy>@mG&(J%~_zIPQQD5G9f)+rv>ix-8ND18>uZ?LKt^+-M{8XNpc5mRJ= z&~-W0c^nPPV6~m4v&UA@&|t1o-(nSL$O6G5d(G;GVX#b(sY08ReN7r{A^@J#RZC}; z_I36cKI)>3dQn-Ycw{eLlr8kGZi7vfmeQ?z3?CJZ!Totm0E(A88ZnE8VX#b*k}5iI z-_)7!w%Km57)lgqIQjT28kWJT6}`s{oHW?P{yQh)TZB?BibwC!RFqjtTNcF|0zVH> zoX$Imft@!@OP1O~k2aFQs4Z$~@Vp`Lb0Xm|TvZC|-4HgZQjB+{K#rSH6=<;R$8fD! zCx>Os>$HXa)$Q@sTcyqew@RHyc~F>96lgdNA&`@Ysc3BQC%M6bG$LN^XauY1I2xA0 zk_(n9O6(9Lrl@GBb*4^YEzpn!0{mG=N<5B+VX(}Kk!aAX3^XPUHu3(>=^C#yAy8%J z9R5S)Fdb~@Z(N)opqhT1VO6NIy zdu5`nx-zE(0&&cnW`mCWURf9D;C`2sTrgyIq{fslPkz5OC$0qCYlj3Q-<*B zTrX~m$qL3}8nH*oxJB;UN*ijk^UjG{T)3x?rdRa(i} z(7lI#_}HoNk5dCRp3#Bdq=GN9nem$x86qG;qypY@6V#CtdRkj^(dr(4j^T*Kl&CD#6# zV=jJ^7`UuPc!e-_r(@8%3ulv#El>*aTDwakubk<8o6w~Dg*US58sUnel@JW=J0Kdn zHJdKqfmX*|kr$C*Up#hFxdfMtn6ychWKO}p8i|8QcKKC?$&>TD5ZA22raN(1V9LM# z`2BZ(35Jca;YQ*>_g(yZuwn*GYBGyq2pc4Pxnv}_PW0lkG3>&8F62;*m&&z!v^_iD zUb;eK?L=yRA*z%iSzNmfaa*PpZwq{`SUFxF>IYO%*(MJM|LMcGKYrjoW-yuIEUsAvt+i^Fs(QF)Z~z1q`4MI@n@uDhQu86PeapwH4n9Ik-TF0cuX z648R@l-`2Zm5St0feOenLQp2L)k|*qM!dBMVHc0&VHsE-WaroO8L5vjF%7fFr9T&D zTuIEFE8duqGT|J_uf4#%#x@!&6qb%*s@Krjwoz(~OLmRa>{^PQ0)DjX6qpFsmjrY> zOO;P`@$P?7@p-giXYmo~+NFzObs5K}=`;z4T6>(09T9aox$avxE>63nE>=%?1v|>| zC3+2{`nh_q=@TRDZ;&EZEI@bFqPJxvPGx0dBqyKk@UwqsU3q(WcV zf^$m4%!C&iPz?grZBpmZMRFtb;`m^-$J1WSriNHh03x&LZ?=8$Ms+j~5f2P~K2;@u*6y z#o4V=nZk@j*yZ)Owi>BfgjFd{mjQCxg{fM*cmP?Odz3v3yB=LHBWyyBBCL8N*Ja>F zu1m(d$(B|Z&xo*j*5>hRW^pMaYl#bWjb-HUE~U~eEW4CxH(Z?7(kw3MRb&yh#6|Z! zPD?<=WuFFkp)Ypmik%7F2kDAh#*93YmZ+$WZ`#B(B8G~}s6RfvAV8JzfaoYc)%#^> zJU~jjFw1U>i;clZ?l*cgtX+|p^}qlDZTy?dWP9N5t>Kp=K@ke)3XwEVntpO6Yr7+ zTP|s|U{sRU+5Lqo=4yJw}N$(e-@6NNmwsL)j*<>lrS-=-BB3 zlnG0j_$TBj@lW$qLZAT;&YYYrnxt+(=ZPFW(#Tvao$A4*O#Dk+)CAYN&Pvsr{S#d8 zg0op%%EZ6KMNM%B$Zr>BZ0)NrPRD!}mpt(=P)Re9r4@MuFil%B0#v7$;oKMJDT$Xm zgdPivK7U+>WXv1iu41C?cc1@X%(s4e$^3C50+qsg^y|sknkd$n#4f%h0^ubQ2%|b8 z?54reQo;f5+=aPLTQoebr7R`rL9QRnu0zXIr*AEXwyjiN-DQARcVRNv7NpeJ5n`*X zgy_+O*!9E^BewGWQ!-2QSZ1nMAg?=(Paa!6{t){IU8j0*F=8trQ03Pi-%P`WX>+^c z;xQ0saWP_RqFR-n$Gav-#pQ7lMCJz?{+gWWR_iQHlzW@ggiEqglIu|4W(q`O>~cP7QHWl zkON9x^ak}_w2OCV9-H=d5-C(AXuNt0+Qs80ipASPQj89^Fkfr&WK+>&#qr{0w}QFq zRCWgruT6eKV$7A=Dos;eOIPvSUMJ zPmJkHVhdjqsk2b~b>RNBbvre!RqkOYUWgNjG;XBhtK|B;Qm?aQB;-`4@+ zV`EBDUVz1qej+|Cr^z_f=-4S+_*Vbz`1Z%oAO0S4=2fRfY6%iL%kHIzhB=p+?%nYicBvT16~CW1&>c zHgLBcB^Q`Y3(*9Q_eR=<404MYY2OKJ9ifBT?bwQ5`jW2KbIG{SoEp+C_7m zz^BzVUR5IFO6;_@_sJ{HRp;vsX^p5j`O$4LOpmP#P~8V)=(56x*jHyw3I8eeol8gLUD~GV^=@qzOp6I|oWh0eo*9_ZG55vXq2wrC=Ou&< z@zYSZ$<<9KITbIxcxUm21p_jp8zEnP{PX7@KjI*r&`K?eJUT^7+Zs8(URN;a9$O=a zJLZ*AFWudmlmVm6xJmw;=UB*>(1uDZwdq-eZDQBxQ8(W0c?B+LDEIS#Kxja4D zSg=`Gn!T;GFIp=81`qWk`CN12B9g-_VdPFb^SM4 zOr!BAm}q3;r31d4S!WV2v%=FtUEcktN4ma=d2jN?eG4_z{ZF(yftlmtwe)~_c~bPv zn4!BZcPl-*X4LUV7s<7;GCeSw|0>6D^+%mCa&ebDR?;y7++79XSepO`E{Ag3#->d#|yZB~C|?dj1hXYpw^{}a7Opkq7i zqP*lQ?{?7|Szmg$2+pEnH2)LZsl>%QEMPJbN=)lD5vNV%I*by$_>AGBRC2D9@#6B^=s+_}hfOEKJoWo9}T3u#&NGw0vO-^*|^a$S_ zVO6H#>QU)551EmmX7Q1QrAK37Uoei35n&U>rBrs0E~nzNAwe=SkUXjN=$5m%7?D-I zm~Qpxaw;y5k>y#vk-Ik@$#NE-W@Jq?s8VY@(wvIU=9YK#&$3eW2$i!~81Xc5!Adl| zQvxRAX}an(`fY^K#KKw=BX>>I(^chKawTlI<*;7JeMa|Y(*-QeomgCd5;)<3kF)ZT zwfGji2NC)tbkYVsq;p)>bZSeCva;#yP)8;4tJfH*TX^4RX1*CD#spHi-rhxSqHoFf z`E5!qd;6C1P|?+4;>AG|rdUde`f?Z9#p&ARO;d68}o2Y2&J&G&Q z!3@(DoJj2xFihemOfJ-+2~angzE+d;hHfBXCaf7 z9X;BxeM^!0ARF4QQ2B+ta)z*+Rg8N_a%>2?iIlr0Dp*_r8FW3?oR;%34R9ByAonu6 zuCH8~%+@DBx3koVaUQ!w#pf|@HLL5g(sa0%F%uZar|mSgUCOIR8!W@_HDe6+0@EFK zMQz3JG7OEqf{s+5R~T@l449lzyL#+G3FG5jkWm;pnL^TDM4u~hoSq8Wh%04$Bx>vh z3}Gi-X(Bu0KrEgPjq3aI!Z1mBuHM~>imSLX5wOpbIhlm0XZXl~ z3*}J^G|ZUmw}+C;LyE5+*)l4*ik)6;mia<^@AsO9#!C-6KqkCqWWvk_b@6N`AkR_e zM-S?jEnaTXO(aq^>$MVj?G?Ort_P-%^Ka==_F z#1RTFWp_&-A{jo~X82E}gyBO>mrB1#bT9)lO|O~!*QZvFUleub)#F$43TBMTOojSl z?oe{1lIE@+`*L!1b&e(FTF!!DX|m0Q3?e;r#5F1#@)N|b(`9`<-icqhnmU}2M`{;# zB+`k4u~~+mNIC;2CcPn%kL?nMxH2n;XS&;tMAkF?<);tgK)kDW>!PR*vkMnDtw`GL zF&Iqp$n&d5=Zt2g?kta)QP0K%BUZ1bGgd`rbj`?~o$zrj%~(_~-NqffX57Kfx0kF* zYw=`DRv&F-RfC6clIZN(Xu;yUoKTX-c@YOL%*ydt_MhRHnJ1hlU*RMDdi&li$*$Klnn*%CQ1vJK4Ty0sHOd80hxW^MG2Yep3D%Y zO>;x9(4(R;(mHr5Lck-WPUMMD>3t~hMo0~ zv4ebN(?#?pg@PAgm}+;heaigG9L_z|U!K0ok9OU{7G7-W7O;=obeC%L-D5avDK#@T zcfm)N(hgCUwdR3nQ*HP3)9z z!Q+BT7`G3iOBgw!l4qh`yJ(;d1?vNC$eF4XQ5M5czDZ}Axa!wL!Df{T&NMOB#43h# z#gIpJ78}~8M*W@lx`{Gsh`~98&Xw(3!=bu6ary*ib`tUX$u(5zv)2LQ=XE>rGpjhi z{`l$3#~)?U*~J09W_LVh#X;Xfg-wY|mbtWdj~*A#FgjJH;ISMv<<>cmLs_3}F43cX zC8wa?7jMc;!Pt~gIgVG48lvK}-H*4jVll*U^(eB@2@K<7Y)YgN)Y8z2Tuv;T*Pq6wgi80k zI&{yX*4&TgDG%+vcF{a1v<90Jx5`~pIjOQd`AvpVO-9eezQ3mNa&{{r14>l2sDtc7EB*bw#xfXVP z4idNJG<02Uop@Xk6`y^wYXlHjfWXJuM4rXR2(V0Yla@BX{Jd^we!59*7YFpJ+gzXC zGy|*3^Slo5Jg@ulJdrGxdP9#kT=u-)Gy<#2^1KePJg?hXp3y(cJ^n6E=Y+1b!>LN? zGZ{|PNd(tKy1yotc{D^s(R8O~1X&t6?VK4B1}BKX`E%|VA8$A+6r=Hci`ofy zshu9Ts9nE2~T zfhBxOSF+AbM=4QXo+CRxU0cK|qw?wza@okTdrq^ihaMof^kW}$RcW_ZZ_+|69^Wr1 zp|alIzj(4zcPN>$PtE+Vs@( zS3{+avKWTmPx{AnbuQaiDCHBy_?nLKE`y7AsiIbQG5xd8TiJ~}bQOd+J=d09w{U8^ z-DRTr34t6gwu%oWHoM>>>vo4@o5IO(T;V12>N=%K=tr$M$7HLjg81{RC2uM^cg6t*wIX zH6e}@&n)aF1FTAbym=%(6`$R+>zl)%jV?gfsUBR6z{+e&88`-rp|_ogp?NafMF_o( z<6;CR*4x^ya58e}%hwxe;G+KH(^EaXLt|cGL`{%)_g+#c9~gilaxc z91v0gBN3d8SsXkbZHyyhk-)t0xDk1Z>IQgQ6&rZb5+~m3l znG?7eF^dqW@>b#;8a_b9WglW@flHTfp3#@qIMYpKU1FYpdyzbF;ihI!1uk7dVjP!d z%u=t_ywMPep)Hn6>@jOUX3S(Lzc?MyLoIp z6{traGZS4`EqljPM*A*GUIRM){oQR$m3DXY_+=_Qk2dBcJTjnn-OM-vj}f?3a@mde zT81M~;dyj1XW+>lbk{|U6Sx?~7Bkjl$~-{2yJe)i8Cn05{5^!Ini zFO_L`8(`YqGNxUp-nZb9yG&g-D^9>;#4nXie;3$8F=#e)kU?Nz{QAP zD%bAjk;$~Up3z)paDi3H%{O|o8^3gi)MHi6_?1WurEm6VejHB6#qr}8J=*|eGJd7o zbfcpTL5gxVd`QGc6!Kv&I{b!;0g(V*doB!v1O5rQ8_Vl)Jq3~j6pZKcA$^>K4Ig5u zc}=Ht$IV=PLvGUJ16TO?kj{sRCMmxBjVLee<&mU~UTdM5HF5D!;YI9j$v&^e5epGR z5&AqzUOBUO%h-6EzJJH5f^yrli=}sCqM=L*`tlh$0M^48xv3037Ne~@d`8HPxl~eE z-Ph%*UW8pLtjA3gYsc)mEpP8;j9|{9bhaL&k)3VEVRW^r%&6M89o^FXX+j{o8CZ;7 zF!OE`P+Bh%9t&e2LX56~uW?+EGGv5hR%j}2(q(c&9D94bL}j=B2xcsV7`6+HyU{u- zeWpGzhh!H*0gBH*e*W-xgpijTbC)(n6G?Mu73vtlDxFgo z@vebXpH~=hq$=_5w(YLQ8#BMAVB`!K6BPn9I|#<;qnlqJXhW`4rQY${JfMda z8AVf~-o*uwIp_fO?v_#SW?h9GZKX#W@NihnsCStFeQPO;hA!5KO3TA3^=2wD8x|Au zr_^@mwno*rXSX(Hcv*Fe>ap^wx9hgX8*`SV(f2LX$Zbcr#ElY|Ir*uUFJxEB&0rRC zKUo>mqg^G}vC|i=%omISA)PYj(VtX&Xs}H#tuCIOFJPclELWF9AIHb&SEn{qA<*G% zfKzv4($_8k$ttvqTh}l?eTAd~wI+rl6mswbzurD$hCd3#fzUPm?q$-(FnlYQ%poOk zB$-j7ytv{h5-Rlwg@TaXI>-x8JmWEDHj9j?Jma&U=zh>hzvf+x0voMu&6;XRM2+?F z?pq>_-xBTlmYBTJNMBx(F48B$UL;ER2aZ=#oFx8ex26jQsilTHQH?YlBG7cPG_t-J zJd!L$q!a_NTX>V{Qo>rS8*7cBTVdG%PPQe|YjEYpz{CYe=Vg5jJ0X0W)#ZA4y*!Sy ziXC!f^4vcQDSbGf0{C(Q8a}WaBju&l79bqnJYHW}^WxvrE2Prsu_H$J-l7-N?n05f zSbkVv+AESWjVW@w8TR0cN7NKW?#cTh@8<4dEN~5S;ict`sNO41COav@}qH{T*)=$AVR52Y{Rxoy?Ku#qU z%^@RCy6&pqkuvqLiaf+nGnP)xeVO_v6>kV6Q2=8BoKQFolI2iUz8++9{FuzKGUkfA zf*W%z@SUVq*`bh|qMKOOE;b@WPz#~H zWgV-YRjy(b#8AWOWldx+iIbDMs;-}Th10G-+i(B?eJ-D=YVy^63pR3&1_aYfZjUdh z14niwr5}o!RhjM4I-?`g0n|k(6N~n~13-#-nA9%E&+8y49ZLvN%& zeR=#iNUiyKd@a3$?T}8(%9Tk}yLh6ia_!=q&ghRm%TK#AD&aJ~%dq?T@ETiGc-1{u zO4mPP#bQf0sbt8c5{*sjm6MO^-hkZimeu5R7;?$iJ5^3}klEdjnfrNW7)~5NA+L7> zq7D~1;w^Bs`~tj{5Xd9%ngGs*;dI@WkjdkQsvt4VbQh4Sa@AwGGUL0G!0IhxE4{UyU88}QwN7K=V=Wp!Ex%9X>i(MH(gjKjcdeVGp}?D zG|^#K{R@w(I}L~tY!iV^AmSaUFdb~uu?YyGF{Os$Qfn&&R^|xOr&zk-cY1v?z*IfF zZKtZnwX2#GT?|zSuZF8<23wWCif2%z& zpnJK}*b%u4+HrpW_2(Zji}UH_2;Mh>8nrGGJx(la59wc=rU8uiNxdPLyb?J++i*`N zfPF5ryx5oFiy%cklOQ=BO4q5)U6WSOMe->Hasu2mNHXXaAW8?hFbzDS=aXOe>6tw*@G%vnxdMj!>A6x9OmS=xP|^-L`40I&4$wjZ$+tvD%A*kLhZ+cZd4yjA(5_`Z(UQVnklWvMsb(leh4jumec zJx4CsNSh?P+A-U9(sjHW94ET%pgB2}EH|!1Sd!3;IBceVZt*}d-mWib<4Otox+1#I z)|aDnIYzuq;KYaPiOF4;ldOaVn@7{m))#tx`bH2Q;FUQ;I^>Qa5osXbeTyF#~)t%|8 zusFia1Aq5!db)EU?bin|(!r~#X-KKby(y56BoGVeu#opTNbN|6(dGFxh8OL~AZAU0 z0{(r_rhe9HFRcbWni3R#nV~D}d@#)!JmI_yQb?2Afo=F^-77sRYMqTP5>XHK)(~N4QZ4Z7OaK&9uaA zfMeRiP4)xeCLo{ThIYVhXlVbSUMvZ5ol0QdZN?@AUKNuPd`f8y!&RGscS)93pBx5Q zr>$j`tpa|wzpOgtZPt0cOjP=ADKP6$sD!#Sd_3HKQ}FyTJ-eU;Se|Kka&R-I42zF zz>ytI0~d;rs?7GdyC#4=iG^&TXNMvk)LSi)>o_^A4$^jKuW1)R!f=LMHM=TGadHdq zyKMT&7J3d+YBLF$MtG%%{dlFAwUGijzGw$cYR-!tbnfWEqfV-tw1t>t*ZkNCl^{9g z&NN8n7IvXWu@I6H*^lT$VnTAGm)(dQ6X(+Jq4qKScn$m#^ z2=Mn@DP2MdKbTt02Uf|DQ|X-B0}&_<@N`9|GI&c|;dB_|SOTa%^5}uNu=0h^48uCH z^e{p!J?uv;#SEGNu#Z^U0B|-8>%`K-2(k3AAF&kEeG;U;>|EEf9+0dstW!%54z*No zg6u>wEi&OgYUz{)wZpH@Ej5ccr}Uo|G|^#8BKx8122(_v4V6ck(Hg-vF_Q!$^e!WWO$XaM={S1w5Khz8nfP?? z6W{l68Kt^AJVF{hY$uJzwUZ+V{3HXYm?-J@yFN46>h#gW2z~UxRJARt-WnUjJfP6D zJ{svk2T-@RQu(c#H(hooWpX@}>JRve(mg=J=&uy0ubDm$k`-)qLg~S~&r=6!gAePC zCwparEdR=%$;M@#$XmGL10&SDj&d@R)Y`+C6L^ z500|}zj)D=i;bTbuX2Y(NHlKjJt!!RZvl4o?)kmMo2*$tnv{aebd&n9+YI< zEl`T1io#2b@DdNq(wIjH2Kn*RhhTc|uwmWTKb=ydGV&Ji=q=O{9^xV6Ax@cE2~S_r zHUUo=a|>|v9;$cWqi$iNetW^}uvFggtYOdHV^JdP7NEpQBOwzlfFV;Ic6)V%!x#Sb zJ+daAIE?4sPrfs#q8f&{n;29=RF8D0t{*cAH`zW5UNuHNW@hwD=S_z2JMMghPn@BKPpk(LhJ!=gl$@zvZRW%A?;tQ~Dtxc13r`d`LuKSJ zYId#WHenL0Ei6c5Vo6@KiOJW#LLg&}=0f$QO>&a4k3OYS0}mvL0ViAFfhn__5+!y} z5t2H_diGSU<3RlAozTYcu5^}tfrXi&ov@V75)7(kefR#?AHV@!Y7i zy(94e+iO*f3>`CqUan$#N?@cTp;;n(O8oG)BxzrF0-n|t>lj9l)l|7+M~BcNz}YYF z$E2>5Bs_c=oIW2g!l7b_DoZ>%Oh$p+ezgE*t0i*b;ZH^`jQ2lMx@31+(YZWM!eWdn z=nkadhQK>`PjY(*$kCwbQ_5tHZ!wrl93AhaCFnZ$lFm1_?9hhX-#E&9AIZ6Fqv=Mt$ve3ITa5>)3a>=8-9ymEQENS)f$qHAj2RvQt1A zqbm0~dYnBKx{Se>tK3jkBInDF^l-yJB(>jCNtQ{5F<{1cC@?u5Ux#VH?KivwXiUP` zJoe{2Ol8ac?KPXrJu+FVN;5{7jmM1HIIB(Id`OrapEM7XJfp0DN!`^w5_8W`ab26J zjbHhU5u*d&OTy$tzj>I-t?vS)SR4tF93Ep?&@%03A8@LImL6^_*E~4rxnFNt8!3lJ zXE1UIF@)M7*xr+;d*At(nAG5U$4xhUiu+6W6#qi5q?4km>du_ReO9z8WIg(4T+xj1 znR}+bFg=!9C9ax;&>4Q5U+o45wCAizEK;^%k|Sk0C#rDnn+5$lCdb$7dd|*S@!XbZQE2>mVK>F z3osd_iu9EW83{FCsWF}I+O#;PEh;In6Pj74kJ+WLxxkic#Z8N2x-w6^*rN+p>o`y; zbgyI84DraQ$v2JXzs9D;k!hM$Vn3u8jt@<4v`E(whc5^N9ouoe5 z#eo24$D*KW8F-{q8=O8LFtllr_+b(`+h+;nDC5{it*WZiW1{YX+*lhe5$XhV9%+0B z?|IMv62}dN_mH2$js4delRfV$0WtoSm?N<}cMXa31G?a0g8I+w%*l4pi^{OhFJsztK*b{v% zlRv8vPP`#Q6e?$F!$Hkxbw&@*%(ldm00aPEi^T-s{N`}6b9jmN$;wMXDn8p0cCYqi= zikN!Fi`BJbYG#F-RSc;ft=P2ixUbQZWp@?k;iqrS#x^Z3%a zxtLwkLdOP#`tp@YhP7#--xzuvxiR#}SMTiuQ&rpcT^Tw9leKA~-x+%J$f>#^QfGf3 zn5r7rBRJUx*{4l8U!dIEN#rM~;vtjW?60d$i7Y4JA^&IS(0s5>XBXfI(ffSe{Wj6#eK7ubzfJV0bDJ@g zKcMadtX)o#QGE%h`nbBs?7F_6Dk$ssi5^FIyvMzGya>uDA|-@QgE^W&1HwKxTHYv{ z@7oa`^(4UvqxZ<{(p@|SY6=Nc-`?*8Ojb}PJZhLc=BgT$H?f|KXj5dz^iacR?V&~O zV4RpwV$D2SstONtZuilms-*Xr&hs#}gK;8-NsvZdcy_;N?of4az&aFNcvTD2qn@fc zRtQe~I01@xX2*O8zSHBQcMqM6M32X(dsjJ8z;Tc@?TJ*~jS&Lxk;#CYlsv9qRn+y- zc8}R@b-Bhovo6-J7(I?$F?!6d7|q4E6kcs9gb-X6e0_I}wjk7H=&y?jk2Yahf3c)(9_t-P~AuotOX4i~PX;Tq`9lC027dH&CPm9_iSiflW=#fO# z5Zs`Q>LMB$N-(yn9`;zEF$7P*)DFS=m7_nk$y**%MiQ}|I|of^!1|x+G$QE55bE=FHRx2VTgTN)C|FlgQ7)F16YTLhCnM{ zp^IpTVC=g{W9#dsOu*C(!Hdq1T}Jq^3t!Z^2_z1|=(S2noPC3N|6_z;{`QsT9Gy#} ze?K3B)9DYmk10_PqXR>@Wpjd9_>^XnBjz#$^Zcvh1F%p(NqQgPqZHt5{`7TKV}VZ%9-T*fn!@uKfHGE>Dk@zgc z>}=zcZ@JJA#a5**+@NnE5co0G;hh&@E8DQUD0<^j%*p3#G^pR|5;AxI3F8U3ji$kL=!P${MTV2Ar^wDQq z;Pm-`kr8l)sEWjkb4!>&ZolFA>N3Zrk5M~^+|W=WV^l*&_WxY(c~4H*phLoPCj&BI zwOHPzm}*weH-2t%@hyje4SnG-JX$iRpvxvAvh7c^jo>BmBc)JIUaZ4J`O`iyRhL_L9 z{v=9OX!NK=(StUuu}_!Uo%BRA63)tF|LG`YMgAm8RoB?#k7?99O1w4j_IRNX!AM$fo>*&Uup4`b{47cYG&)L1yy$&ZW2>C^GbhBz|ub^m2= zvsDd1+A%P6%|=icp+6k!e7?owHs~m2_52Jr?(Iv5$578z13QydrX zl1jx)Zhu*E)-<1zt{ z73p-6}mZp^?F#!;&7jz{&J zH?nr9V*+GVYkFkLd69ZT9Vv#fRP&+kPRL#Egxn<&au3UW3TR23Q~XXJRQ6bUx>jw^ zzPYBuK#FkG9<4JjSWe{3^!S;vE)lMTz#d;u1&rB<`^37cG3HS|Z3t&$U1Fn2n4D}+ zhbh}g%T`$z(MSo3Sm#kb=i#wpolenPJSu|@&rZ&~geN@I@Ky8hSg|fmDN5~e2Dx;2 z_UoKr`b|m{9{yCA+ObY&EiQc=!KL9kb)zbC+@4rRk2ipsk9CRZepnKz8=vB~FFuh` zgtG2V-eF|w3~GeGxa9oBPM;KGUDbc?V=FGqzN~`9Gh?03WL!p=j7!dB>;z2RiVZ1e z)dTKhG`1k@(Rph_QD-zRef+^0p&AjUaO56kPxYDk{h%|8RZ8N_gv5~2(DS}UYL`#? zRiBH;T+rd!Z$GoTl6dhrp7SuZLrQ}a&_^4b(d3?x;?eQvL&}}g8NF2qA9qgYk~q2e z-FkgaCv#6MH0cu5Z^89KY2U7fAI!Sd6^2uY7rghvh8dN6O2A$-T2yUgvIXRbP z7Sj|brZ!e8X02E&7sL3vl%%W2ej)~Jt>(H6B|PQWb9P5GqfjgI22R`I#8-aq1CH!# z@xu+1vUR7=2aM23aOVpOSp_+}UsI}8&MWJ51WmP)?W~g*QujbkjzG7`c-aW_NxuP; z72H_r9lU4k-5#PrBS=T>rBCVz^vPqnXbJBrzZ7$JWn~YAA8r5@S2pKPtkBGPkFG()wzx!-6S3+V{S62;T;}PX;0fkxmXlG_tNvd^2GsL*L5EDx`~X za!M7cgwRew;@J{2RfvB3>dE8p>1(%B2*^8UCyxReJy}lr%p5}BnhlM(GDfvEdelB0 zx`F7>xJUyxXG$${m|r%8eN{>G@ZwV?{sRn|o`c0Zc4op>z>rp}HVKR0{84tzioV`dLrY&6x2d1jp zrGsjWg`0<|*~&iYmsO%GYASeH&^Bn7L#9?0v>uak9-Kx~olT8qb*j#rN9~_aqY`}| zDHHkokUS;AH9nEm((h7#`oybHiR#fXRdwG)19Q~9Dr7y*PFzuD*8ZfaRpR4pQ z5_J2n$9JCkNoQ1_JesF0qWSL6N_|YHB+I^5+pW3=`Q&kjqfR&2!hNZyEEn2sw|vtg zan*!sdEDZt(@d4#gksvX;037tksVp8@|_uWny{L_Qy)L}GyzY$xu)}DPh0r0rycpR$dH8Y^burR;Pm-` zp-l^&J9}~%p`}`F;-xuiRaKqza3jto@2T%!_8}MAXvfO#v@>qk28B>3UH?k{r*(v%$`O#vnQs)b&6;k z0MbkelM@u90ZhPT_|;fn2$4MItjxDYNVC297P1g2T^PafJw^ktK94cvYjvXSiAa-A zmUpvTmI zmhwDI*3LkpE=ri3U0)rh{dNYBE=!3VpEM7XwKI@-ol>Zgoq_x=(aC)#v^u0jp}T8% z(0Q2JI|Dl9_2f`a%c^k`d&)_gt9skxPR)aZoq=0cGO|afS#gG;-dv&xVl3Ev7L^W> zK<;$k7)VC~98ULJ5KoEXjo-ymQs~wQ756ki#pQk=s#y8{z7(E`#Fe*xW=z&exhL;p zP1TDs)vgj>kB7DepaCW!3^}u*ZP5Z65b84Y$7G$Hdm>8VQ-x|oz@nV-Zqd{iYo}e_ zQj$I&KD9_qKG!MHI;G|~4F?^bol0zc&BGL{6m-)DIX9u6|>|i!!1i8a0G0pKQMiYF}8%I<}8lnc( zfu8gyH-Ez0}3jT)_?TpLuVYoac~t4>5I2#d%dEp9A|z6&T&v)W z+FqwDOPIgAX~kNj0N7%Xk~pDt9-ekDU+3ALojH;MoHNl=gKC$=N>iB{U8L%=V19Ue znbKHwLwEXoz)0VoA*$-RGf`jL@(Sdrg}o1QvRpcQSG?M4)rZ^=)qpXopgYkTwxLS{ z=`-H*9*`3u{}8noA)EoL#5#MlR4wy8Z(?EERUCFaN{7J@H-O@mJ@aL)o!ZsyPZ{Aw)KwbHz|{1sXZ@1Xvv36slzgTK6}(vi6(P#I}M_d^>8AF9A9APP@#9hZp_;BQ)>cXO%gMjCXvkqiVolX7L9y^!c_^V>=@Q|+?~S%tK>0<%d?#;W$jeYcgK z#^dNY&EpEBJaVJDc1+r2qdYTd_}%+~TcGmp$Jry$rZuC6MD^~zH5(#!opnCr*}K$H zhb~JWXP`rSt;#Vx(yWc3Zh2*nVeH;A9JOYTus+W@>vIyND#hp{eWIs;S~FHit_USc zjn;J-l|Spm&a=mA)O9KA2)H8J32T*Cc;uHobg9|UW;hgGa*`b#rI6(IE~Jf8l|gv4 z*m;ziTesT?cNxz@5QW|@mwIaA#g*w|Dt*yFv$AP@>>a6oz=>{NL>iAQsH#v-9qcqTcHg&`>VlWE$NrlKMF!vkmKgH{EM&)qBF_ilJ8haB zFoohon?A51(eDxu7%E9akkScov2BPNRxs!^eNk5EtchSMH1+$w`uOM1KYqk~!WLrg z+ZsY7kEih_D$)vW!_&9o269L>(ot;qM2;!^j=iY-re}wCo9B$#m+e&0EE4?k(}y5@ zX}V5MFB^hPpWNm@dfTh$ZwYnvu6T_$l=D|JSo*RcG?GqBHm=gOoqbM>F)6UqKxg|p z=j6>yU`uJE)}3|!DtLExVjyZ@cL1%d zd;qpsPRB}nG~#Mr2_>?XTunR27tm$fd9%<}MWn}7-2*!8u&k#p=rYdlIbC`vp>yVy z=iMj!y%3BOzc;Bb{Vwjh2(dh#rkYIVWX;)?t%_TExRD&CmEBSk^*dCZfO)1dK0_!S zru{nd)ddFUK1%4BFSZ?uJ8j3Bh8m?VIit!lQ0F|$UN!1YxT-?8k9gSv?3vD1CtjXC zGKg&meFATGaYcshG2!QZ+MVFb`c8#NqKh6FA^cA2p_BOQ#=2iKA61c*$c~$79)QU? zL&j<)iHYeWgz~tCDoo6z>=e;xvS7;!+pHDqVDa} zuv;vpb4nu{us#VwL*O}|=5f7u@M*C#d^jgsGCsvtA3o{bEsw3J z8|#kSxK-iXciZbZC%9$?(WiT|fzdY!qcav+5<~aqS61h|p1nIl^|jlQ-x`j#2-qGE zD4HK%`d2ymzBR)nOwq1ruUTGjCjOA{7vBA$Ds)W1ti-okP+2SSYwRd|{4usdF^MB3 z>N>mk+<;J*p)60r-dnyUkde&JiCiUxa@?v86E&yzfvIY3cx+c&(|TYEn{Q2+bSFB( z>O3=dZ6BDbHimZMynF;?OYF0jo<+$IN_&zLK3~ z1V7ZMq~?uHhT{w##-Zx^T^z1u1D@?IdUoQNcfdGEsWz8BlI4tb$v9l#5<_1p6u-?_ ztogF{J}q)iO!xyk8fw?x$(2zTu^GicDN7h!pCPK|2rfCfvQxw363U|GLbrbY1ncn|%~|%GJ^O z{P1Bgbs6l$fT5)Mj0;mXD_8FE164)OuS}hVNmf`FkBe&STn|h#G00)k>3RWQlSax$N|kIFR8ujm~A__hYiUIw+i<_SAKe2}-dpG5tR<6iW1P+L+U+ zN=z0gfTdj+c6}7o5;+8r4bdNNTN4Zoc%f zT4!J?GXnvW?#oA5trxx|Y9DQqoqT@yutD}|Q{FNVFsYrD3o$tjp>%E9sj~vt_3_h( z@b-6yOCO(gPK)vmzJN#Xs5p#Py=5@KY>iI5O1eGDin=`G@2|31BD8E(kMZ|cY2pYG z^)mkcDkJlFl>6de9l(1TA(oDRf6NDqU_<1kpKSfXRgmxRn)jM<3S~N4I)y~!K3o!c z37^vT(S>xAvO;F^hMX}mU-3!zx0EXwfX*kdoI(a+?j&%I&?M^p8btQDEPenPpGxd` z-^~y;=srSa&Oz&}KT0wUowJHA*S~!FfWeBF|Ni#+_J;lFKYah;%U@o~lWs1rmkZ|Y zzxwL)-@Z9tUe}l9`u2LgUkE0wkY4p}QR++QI5skyq7rqd*Q>d~-i{a=sAMW5)FkdJmix*MRVY( za@f8*MO)g_=LL{A1*o z&}9_5i_U6gN!m&mCyJ*0XY4k>lcwz9lIYNfOCs1wTNr8CFgJA{o2cpL%iE zzei=tY_0eKQDgPgVvBjGyTDYPoO^MIz&pTXc~<>)(Tm5alCe6!Sak24t2#yZLT@t` zG3Hzi&3dM{)jK>My;Y()!fch4L{7%419dNb#Ma9cc4PilC%v*H#$wOstBIix-x{}B z@aeuWlgNL<-+Dw&)sZk|bstAk?Id{Y;Aj;@*$tqTdwG3UAuEwKts*-V7WK4N{9ios z@chc^6yb}gBx}AFYs7#!FzLM3 z3-L1zp;T=eA-6Wl5tyHZsf)|nGRQt{YMu+rc+^Hm?8VJ6Z7Id=dKdmu!W15ENVJDG zHE30rbSb11$-GdiSSwg&fjxahP~ewndgJH*<1?v$>B zhA^?~k57qOd`Z+|{7xTg86m1(n1!=xL1Tto)vbN>)Jua~*_TI+#blkHdKsaoUUsCX zVwHt0(!&jHi|(NTp>Bm`u(4vYPEWmfcY3P9hM8QO^h(Y8V4H}65+-M7V;&|eCKDcY zuoOXq;Q;n{9SUaPk z=u+s1JXIt;5*9U99|d%#VSA^5Mz0#Saqkq+XdCpqdplRBfL=Tbrs|?L@xM5i;n0Uj zEG&&4<*yfWZ7Vf?X6Q@o9x1Sshw6aQcts_?9(L^H54ot6sL!W2Ak<~(4}FRHB!vo@ zma(onOj}Ap2d1jd^0>Rvr%%9Sg+3yn*6xZ(Vw+*w(Wh5+mdD+lhsg?ki8NPg(@Jd4 z%`ok^{R)R(N_6qKyYnzLLm#72>C)=)WamZd2z_Ke#!AgseUAyIMAAQ85)U1p?g1}d z>Uv;cD!e%S8lnal1(!WM33eZG>OYNqc|C@cS09sLIAHuWoUk76;6ALc$7~XeCu{J{ zux}e1-q=T=SQCE7eRujqjx~JZ0w{c9M<=%{SE7}+QK^QnRwDmmS?$}(IR4ABZ6%&y z`)#3#hWifw`1!-%!%AQ&v%YTUo4Y4;WU<6AGlXMn*tb1r zHe$sPDJtho_+j4SYWf8^CZkuM@`doAFpesVZ zFV!iQ>j=ei%_)|yh_>I5H55PlsVKF5s?M)my-P!7gwCmzz3|9^pjKO27E@~<)v~2k zPxQ0;-J+|asC@xFJ!Dp?vFQB}1Q4$m*kOxQel=SJtDt&c{&wg4T6} z&bc!8t-{SJf>eK&H~#sd{+clZuX=ainho8!%^1~dHo^p5nIc$;zZtqPJx~?h9yd0s zeFH*WhBCu2Hgea*c@)*!2w`+(*5p1gRYk2wp`C}x=w`1v4Rm#gdn&JdC7NN~KG9dw zPQw7YzXHYUNbnJEIC z{Wbv5a*>kQ&NBIc1~`2_09z;9uXtS(&rS&JuoMM!*=Wh6UZJNgB=MNAw%PSThnAjl zGK6*va=v+@6BAj(4L`Ai`%E(pYa&_0rIPxFc+GcxR=JDEPE^aRoU1syvQ^RU(GTOw zGA(s?hpJN(SE8vItEa<6DN?71cF~Rv3t<2r(RCiCwqs?|Uad=xJClK$Se6^hm)`9Y z^s*&jc1%ppwxL&j9%Ibero*VDz;>M4Mc~aYuIS`?1p0ZOcAw5#6IuDNvf2cnmKaR} zxDl4;nzKA-eOlEW>0^1W%v$Yq82w42&hlJGSe|Rn@|=aKYB|uu4KJH~+LpwkgsJV* z^gBsckK-wQ8q?@HmoP8#JBmnb7D`RG2c+&ULI>=bK22wXu6-QLmLc>BJn7Q{R)!AF z`?NdzG8$9xWOw!@BUBf`9{W*EKyo7Atg%*wugBks#>&Lk${_ld68*uVfzh}1ns`6b zSe*1^hn0Vl!PXW*3pD1z}IWr#u+`?KR)%(8;0e2sw1k$)S@lVK79()I|=Rfhlag=A(@T zO#1xF2sw1k$)U3_Rc(wua_9_9$aq>;ysm^t9cw&#iW+P3J4|O`s(J!_cbLw=B(IFg zwW&b@aaf^cGc0F=&cajm0{Zx&Gw_6?vKxoUtU3pj-}cl*ibG^bpYE*Q=+x+U_tsZp z^&ZwlixSStV?C-0pWj&8xuU$$f#Dtb{=PJxsa!v4SWcWVDX^1D>41?_uEf_vqTLR| z1d^1fue;NLP?tfLj?J6b*F>n3LOHdB4ihDj`@mFH*dCQOChZe2Sz$S`4NI7=9w$?S z>6+hN+G&37mN7rn@LBWl7~z<4sKW7eU}1ZUtu4vaZAxnNzVajjEYl;77< zRPnDMIW8GtcS031YE4*O+wUQ>=pz z(Ml1Hqe9Xr!d!}aCDy7Ts=j^{M=H>Ccf(A z+N(pZZD`S`6R)mqy!LTwXF#!nFn#;lQG4^D(?OVH7ha4oOa484x^roxmD2A>A?Z`B zj)j_!aA~gtTv`som?4$#cPPfu_8ZjMu^^1&-~5|PuR5*vIzp?x?ntY}NV0^mD>=V5 zAnfrAvO&!N(v3NcM{NQgvsQJVBlOx<5SEqjwU16a1CtEG1x(Qp<=PGORj&EXr8A{o z5rq3Fvor9>AY8!H@J>#CscX?r{ge`(@K8TTnJ_XLd<%G@lNZ|K(Opz{@*6WdwI@37 z^#!xuQiLi0-Q#>@{LOJ;zGGEccCx9*C)Z;H3~}{-@gh4Iiplqj7q53B#g$=~qOK%^ zp;uuEQSIi(ZFMf1U{L7CZS`HnczQiygZFX%*0LV5n;6fxbNGoAgSaL4JCfp*H(*-R zr6Ty05|%X`k&SkKI-feWkOHt=cT?)p(0)7a?Z-Tc>R&YwJhrJA6}mEwc2n=7o2LMF ziL^|oJr*;o25q@7vyybK_GvTOIbGMpmy-fJn8w_`fn!deS z$AJLTJH`qwj)bKz@-X?h6PB{aVjR@P*wpErL)I;}La#fLbis@e@br;%uM_YfZ_&v( zSDmDL-9pm6?nu%FGf9GDyT~{$*aD}|2aFum#SkfKW&13lR@+V^(8IQ;6muXhExa7 z*HP88MZ0GWW{g}}r{sz&%berg{VC_1RS5FPp=u`Ipo$K`RF%sf`*R+qwqIppZVi&- z&19TrUTfzPZXC@9&r0Z($3C_J>+={xzLwd9HJV*>jn{@9^vS!~!xc3*z51yx?S8N8 z^XM(zZtra zqgC~{Lr%V{{g!N^tc;99u^5j!g&pD7UU%fz0u-V1ef-*ML(}x7Dq#wZ@5Znw?vh7w zt-$2CEM1%S%lM(q5~jY4e*&h^06%7>WHxeq)fu+eksDI4BQ)E_HVSk{!sJ9h+i&%0 zQ)9}X(NJ{BcIsu-$Q06DJQ7q}g45Tlnb0BQP^@d}tO}v%ZAPToA=ut4!*mwHA-c3s z8QzJ!Q8DRv@h^m^9v@Wo3e0xhXGN<%fJZHk>fRs|_l4=P)QX9@Ra);ckLOogXBTr{ z)=;ysc37lm?PUDn`ww6K@=`)s9g2nPz+T_L4oDY=&^89?VA#00axXmSXFAFey@)jA z$Vn@_4+;ayD8i>i?UZ_K*H*i3O%z!rZK)WGAWP)@{?$$UN*(Ow>h9xf9~l@2nT3?0 zGUzd5>f4e?TTyZyoh&69(*OrNZAs{NuU@^oSF3fTEwTzSJ>1$Iv+6G9t4BpnK9GER zrwlTId|TE=W|Z~@#nLz&+cN0y#jS;xsP16C_Hk^lo4DB}JY}aWPaAa>?bTt?3UDYx z?_4)WcdFI|5w#45Wb00!$&0R7yEBpTj~Svmmvo4=0y*7L4Ov}P-4a{($;iq6TpPOV zz^ki%6DupYA@B~)lDu4qyLTqw_09ymGQGJF|62S>c1ID4_b^4<(YvB#IJwq;mta^5fUs&!v5&_>w-c=JjPG0pHyah}UP5 zM4KYyC{_I#f}vn!bUcMWdq!UBMR?rjo7wQ`X=fht(>e5*Kw5YMHv!qRO zS!Z3lsZVBQi6|b4l$W6k2VgEb;7Syi$5);fYqpJ`Uh>NLwAXeCpU5jM4a{(=x`8FT zgo%=M5gP^u%^um#cv_^{ag-W+sn5s&E!V%rfz(loeeLmO2q?+c#nTv7OB?e~q%Jx| zkhWCaN_|E+6qLf+zr5nEq+@Mc0v9EHfDw@IFs8~@>Jy1d#ey^FpjrFtnbJT97aDj; z0Zx2*LtW$GG`3QoI{6bVwjtDbq~$veCUnSP#_$v!T72Tos3$XzC(=TxNh7&eodS+Y zb*@M>cdBJ&KjLZeWJ!N1Gd8gyUl!FDk$LK+G&m!R(g904z=`-hv8EW)_Ov*(Z3uN4 zq#Lb=WG1mmm<*?-!;~Ds8i6Ux`K)=fFD4lLO3X`M-JS{HmI84=He~3nzu~e<>|Bv6xqeU_M?WbZZeYb-->+(TjR7j$v)6unpm82#$D^e!(DLsymv` zl!TdRSr@TU$z&neN4|VkEKL9IJVR-PV4Z&XH0YNVc#WMBML`;0|CJD!Ewi|O8o-RlJf`GBEQ{_m z#J7{>`9zL#{Ol}6`COzl^`0(EdJ%`ysxan3nJ&NIC{IXXDZ@1R##hEXW|#?qE!v>E z43QvtsZOtLR6;%_C30Qq@~lAUaq10P&6DYOQmFQcTHUFqa}*OT>mqt%UVLd|F}5vC z|89TG(>aOHNOx-prCZT`jdIADrNWH<(>P46n5WbKo)#5Chv|AoUR`WObshJPi4LQ{DfkyX9E*D?545DT%S*yI*bmS?74Z0Ym`}VZtBCEs)I^>us2^!b z&lTt#O_Zcz*SG|qDaY4|A{i#^;e`$DV(%gn7#m+)=&_>(4Q%;1CRI_-@_a@k0G zEA;5`kB#%YPacLTjjQdn^Nl;4Kk5{%kr#z3u4tK9l+|%~>IdEQ`JhjO6DPpY&xq)H zGr%c20gxH7ew_IG^ox;FI^Vhl5P*+s{7*vwH)VVl-jKT^c%?=)TUX>#SLx zIu-P3aSYY9ip)u;J86e`*r}AN40)}+R#RGPvL1Y@l&OB5yO*Z=OqY`a8xu;#HLEjK zp9bGj@9U+5OcUHLr)ZgR`}mem9LQSOjZbHN2bOfc<+EqF>65vPVNBQvbddSLu7tFr zuuJYR`zw9NJd(FM$NF&7r$yt^y~BM)0Bo&Dn8M3n3R7#>6d996&D}$jecniug(Cq1 zCLd3>wjgz9Ag!r>idg5#K6`kw&l`ENustVXGJ-Ot4HduTfvMg>=2>u3q;{&BSB*U^ z*$Sxv&Pzy1e7%|ha4Nm*SQ+ZnSG3s1`oAIAo|Pf``;btbLvd-62-v5PhS*BS=S>5-2p)9wuCn$$UE}- zXbIPaOv`inIL-^1wgu{wWRe8+!h@xrmxy5z0tGu*bVyq9DP|PWqBYX={ArM;Z{3%>XZqnNU(PERlV?kUaFcBr zlB6MUTukuKqGen{5w|4ZzeWX!^awsSQrkk09jzd@9z|~mq-zIUY<0jti($bDOP(s# zw^0y*7tHQi|?xs-$VKtNBIXArr|4Li^=NLF!T zL5GcXaD(@xt{ts8a0+B#_!PBKt_8z;DM=>0Rkz13&58=0UfuwT90n5eoKDN{Pt{SY zAe52$>M+H8$SI=XS4D*m5*a~p9HzQoWdfw|4i;@x#_4om-=*x=aRdYo7zydD!E|lF zUg&F)%3G{VgAUAjMP(iME

@ekEY~U7E_dg>UQe{K(3>#ihZ)KM9i&B58#Vz*Ki>D&rPFGW@=D zX~NxRSCPaA$iAKTKwvlx-@1u0va)k3RxO6 z90{Saoa>VQ2B$;xvW!|(8V%n96BiG$cPI;gwz=Uvp@U`=Ar zo?iY^m>}V)jJ<(x*Lyr26kd4OmDIIe>H_6MxB(Z17u0^GeV;G7+Ab^nVtO~nAn@jm zup5cHKpT?a7}d`BQmgN>0z4JR9Z+i+_6@<7cAY@&(cgzOis`c;7R@wg!wf$~Efmf( zGLaghsxjsg{}Rm|_c-MIKoHA_ail+_{1#E|l|h*~TEgHWVe2wr(Ipq+>jBa54@G(H z8kY)4Ur7vd|IiA`Okk5R1&??YCM4jF!<40c7R$M9VY-TPcv``jS$z^7!)>X{4hgv9 z@IWw@qx$C0`0|Fr#$jp&W2QVxn2dZ=hbcPcdtfSh4i?*a9Hx3OW;Un<$!OB(AjMqz z5=iL6Xw47qYmigcWRN38#Ck7g# z2K|Aee#^r$%g6Fu-+uV<$M667uiO4{z=@aTV?GbdEc^Tchq|I2#!Wvwr4iB$+^Y>w z*qIMc*w6}3d?g!atKl>CHV*)+-7LHH*i3MU#m@aTM(_OjN=7dnK@yAJ#png0^wTK5 zyh%2oe8*>0MlVUyuyR_E-HcvVK#}2Eyhqu?PNsCiJ7b>x_Jc8h$J@g$dj9dt8mLe> zNm#SCOfosC5zydGdZ)nPJLc6LvNvNOu|;dAwneZt$g|uqA3&$RBcgH`=TC!&B(V8v z3yfk@bf67-tbvWs0d#GCAgQfbh6edl07uIXs3N1l6@J~t`Gjx%N{~_!e864ag^5v= z@5+#_-pH>?&zTCW=T~V_4*xnfLqjlTE;c;TJ_0;ZuR(|vxp58GrKX+8=DfvQ6d}># z&5|!o=8oDp`F$x<1qDjRghmJ)KZo3I{zQVIK<2;y`RBj>Z@>J<|NhVa_kRhL;i5HY z@iuiGd^IC%0NNgV3xex?REwZHu8q3yR>_(msnM2`nLxtRbOYth1d2vx{IbS!YUAZ| zOI`k4rELP3MhD{#c`v)stnp)w{2lk3%uNR$d6s}oHYJ40axcfAvu$V|m|ER)mE;LR^|XZ(vga^NMWq^F-n||@FtxhpD%lfY>S+uo z?8RZ2ilWsbB;H|7`q&{tqX@^7LC?$U(qxwDFgQhF>KbM`62mN2euy2U9 zXX=FRK9r$M4u&V%VTY$!kjJ0W|H#vVDbnW}qH4}_O8A9djp9BCw72E=8zByjdrAm` z={NfFC>fLYN4#MrI*@o_$q&E({*O>pzJJXPoe`Nrw^QuZUk2>H)(jkPmk=89uMMHk zjpk#A5WrAe15D~^j>+O*>UQ(7A>~KQGNg0|We_j53y0<@Az%&}Qb0*NMkW!&CHP z@w2#K!xI{0e4-YySbNq8PSsx~oJy~mQyi9+-4tKdfQpPdVUDHW*cXTE{fsmY>+H&@ zhg~`0sL^rL50Ou9OXADBA@l^AMsbXIlSo@^>9SxPU;0u{B!h7V3&lSf;SAdu55_0+m;8JTx0F@R zxS+tK;fb;Zcv6d(&;K9Z#00MYoTESol;BsP4fpVbJG9{m_Z;HWnSWsY44=_TD2=wg zUoKCMxotIW?fv-eFW-Op_Wt>Svmi2CwMc(cK}b%Nz&5G?gp zVM4SVg$a@cVNdbp^`%JXO-Ep=`&FH0Ia%C68K)BloEsl+oQ51m0@ef}z?;K-#3!owUO|czU5qi=#@x z3VBOT8T>AdNl;QKBX8AViY;cRhz3kW!^JgD6%61?UXjC8cWLS{)p@e$h0>)VZ}J*G zZkJY+kn!6bF+d0Gg)WUbcGBdWE_g)VL6;W3x`F7pOJjaE*cNTqz!P=*;E9}@1kMmk zU#qc2bIlejXH+4floI)(6V8<_Wbm1u>|WG2b-u>h0EE$cii+4`#onOVhvVT*Ammo$od98fX~sC@L-DH%Pgv?si>)zbrB7iit^eb z2$LHffJp}B3?@A-H~6^v@>99Fee65vD?v9?=+2_?jw2=Ga*C8r;GHbCth(-cD6^Gh z82WA!rgjkI^kvAPQuas&5^Z)!k&KFATyruSl2BQp6@TMKOdbz^dSCm*i?ANJ-{Yv4ls1$r;*J+6C+Ejut7`mGXc7z8V3CE%H4MNc!(R#$bE%|IJxzEd ztKI?=bR(riKBqnalZ<^COuAdQ=$yJW#jff-FcoRL#SFf~n$p;pfutTSgu#ff_5(8Z zkx*Iei-z&i*vFRvKy;&y>pU^b9iGmJ$7E&rOz)~&1W(RJUuGoZcS70)l z#5zpT+VVANAvwdq1TV~kzRAVJob+nPA+cC<70o{CphN+ zH4_>*7SvOMbB<@!=P?p|P9(I5aThu^iy1O%sD{rll?_jPr9lo9d{5ih#UT(NLIeZ7 zw)nhr=4Twsfq=SRpx$D=*_4gPRc>MOW?MlkIcC2FzuR)yj9+K$45l z6>-25T#zA$2V(Qv4}bXf_rLz_SKt$&iAQE9G}*#SOM7a!_ysuE>xL>gvKj>+Hex$I zAJD@i0GFyFXE0E62%Iw!W@V9>+pErp+~p%_fkyydOoh(4kKvCuc+cqe zARf|!j!%?AfLIhkC60#oQnOTKOWvbdx!pDU=)3R>1(=;Or3wj$9a;!X-Ngg$)jh%9qEoU zj)`lCr8>?_Y)K;|%5B}*VyaO{M3%7dP_<2XzvINQdBtiqCS86xPL<3m9jDxeoGq5B zu7wyVod~qG0OmpEx?ERATpd?N-ElIFP>N)@Ch0hlgLn-lx8sz=(Ah_+oh#Psb3|Q^ zQ>WC1?nbi<+E%bn-Z94+p=x-j@r?8A-povAhxI^-1U%_AgvAq8m+U3hXnV=R$wIL( zEIu5m5(&b^dhn@Ic4F%LISD6XW*(gsIE18^YL>fk@{5g5jIO(z+-;T>_-M2<(tgXmYe-*158? zHH=fWCgk_sV@*YO!^f2!fvLU$r*mazgDaai^?Hc1m4m5p7E;=fFKHg|NR_R?*aFeX zuc(TKM;cF~PLBM1a^z>`$U{j=^(Q>>X4%ZdQ;DD9s&sRY3EL%e$Nd`M8OZMsuWCR= zt`fh&KBQA2Q22bh4{J)GonpV#2e!}>1_5~fl!x0y3w4d zn4Hc=Jj$TlLxr91qQb)31geIxG#@2)1ST1jGni;0N}&w*rCJlxpzg7z$2-hVl0q4W zn%Zm9XHa=u&X9_^f04fQFkfe+iQR$}9JH4(8I{dAOnF?+K+;=CK9=c-jmv0ALS=D7Hd=-i2z}lv4}WPDp|fIVi|VPv zbfq3_X9>U{lQ8+5`T$Ha{ADodPTiUlsKXQwPZoZQd;v9G9GEIu$TwF(3Hm9dYhloGI> zWF2R?UIMJT42zn^A_})5^w@l>AFK0BXN%{l+trOuz1S$Uh)UxywPGKWn4~rJbY76D zdXF^~b)Q8L9*3#LiC~78fXU)=>eh5qza?|+79DsTp1j^m69Xo_NpK97*0@NXm}lLg zFdp;xo&-2!b4I%JEdR{(ZTM-_dx&{D2^UYA8!-=7S2q!Y#{+zRLiX}6fB)&%zrE+% zxa-HVr?dyS)%{~XX%EXbhrdNF#|HB`@rh15$8$z!PZv)%gwOaUYIr&U;tK|$433*! z;otFf0n(1zt&C!B!_2(o+94oJyD{d%qKUR#bO!?H7@D&%>*(%3!%ErdpJmT z1@Oxn3mrYX_DVpMoK|0K~&6Y?l4XzW&w5Dk7GFLVO@ZB#(r+U;3 zK~S)1A1x5rB-!F1HnIb-Sfg3nmg92(J*UbRo(L$HVLOi$z$HzALEvOhV6ld^-T~a@ z<82{|E;=g`7k^_FP~Ot-ImzWg;HA|ZpQ7!?C#ukeLVISFE-B}4P_eR5$9FeyV#Ov& zw<&_(m+Hex7mFOD)dfpBwA2)_?Nenfj_-acN_C%#R5-c2v0P+9F6p#HFFf7|EsJve zvTnRy=x2EVoLrVh%TuO1DMhjuOw7P!p}tsSUfT=O2VI}1)#;N*`BzST zK?D#m8KhD=^0ExTRQI*W!zz4jWC1obC*4Czi1gy)^|cV@Bw()HzZzgZkI|LX>g37A zVmB6Ob`%5>O?0*pN+ovf=7?czKJ5Cutxk7DEjCQ?25-xKHd^Mv$DWk9MW2VdSS(D{ z+on`Z?=q>mk)qVIu0~B#3*o?3R)kXas-^pK4xqW>Xb?RwuTLjr%~tr9r^o^Mlll`o~S(tPiMNN zlPs5>nWYPING`<~+7T+sRv)!;Nm)3F4fO?OJbA1oQfW}usg+9)wQ@;^m?q-up1xiA zLjfxnqY?kejaDGkWoQTGEyp+gwLZ#*zJZ7CAn#n*?IX8>N@El)h zGT3NF9S!59(dFa_lH&@|<>Ux1%o2wCP?$J@$P``xj}A0M4ORu_lOCG!uDIBP`SIId zzW?$KF5>gw9=d$&k2yU@vpv?2aQp|a4?XtB$MQ(d(eQPjuo1`HNNh^OZwrlLJ|DAS zsUPF;`R{NE7Y#pSB5UuN89cdiLNc#!5OlK&*dX8D^u=&YiK2Z`KU#!C*_=Zr~g;2g+L^gF?m!vMtRgx~!D4;OUTvGm~b9s>h7oEzwSR75M z$CRGwl)!xs3l^S$#mCoN(us+tPDolDP7`N&bo2sB~!}NG(|J=#iE{!FRx3& zso4NL^(_#6IO$?gGzB;v9s5d$3mVJPc6_ay3OGI=(6!y6&nsOF)`&pvzHSb58zgdu zGa~Ofgk0Zd2OnaU0=q6Y8u6Ydv2;0!rOQbyU36mUVzCm{OdL6vMNHDO;I_kn)`9@a zqPntXuQb8@{*<{&QYd3zQimz#_4mM3?37vr*KwHYewArl5+uW$$vBM@p|52soRrtsXh})lN$~c`d)dQf34Z+QMra>T2$|dsSMM>IU^(XuE<9&Y z0%vqQ^tBpGt82Dc3G=XVBqj2-r;rKhl;MI)qpqwF%Az%@Fr_5N#M-(%e^IYl{2W@L z12ENH8Z&n!NQU2+E)5x(P8CvQbi1^ogtVBkZNPjkqAPu5_LD@@=YlH=_Q^Zu(&AUY z)}@_29OgL93-fs4DIipIwib)=sIS#{nDCk{)?8Xq^;+avGCd@}6*Bl#DZ3Z-;|&S@ z2(eNiG?J6?V5ReCmmXp$^aO()6u4dXvst|M5knUwxE9~-(^=n<6rDD@MD|`|HL7Nh zjLJg%%h17=D;#1F9?Y5{%VvKio5&-1>qrU@l9WOjZdHdV@-Od!spxAwjj%ZmliZI> zNXQFM*_1FD3AGN>eeEAO-5@10e9|~fa&In!DaMClzrZ4v>M-5c>w%*K5++}-r{cHt zg`Y3Fd~YrTiNbX*(i(SX>YgcYgdrjJmZb(qKypbyR@X`V0dV9lVFC~0paff^;JG2# zQc(j}v7g(5(d)#GvN)U>pQ2%gjWV59v@VA=h)8@>>J(hXlY74q>sH+;7l;(M~;yPP)! z(gsnm)br+~1uLQO*?EfurDyONS%5@kwfL=~W?hl5d(Az0YgX9Xm)31WVT^ezPM$4< z>a%XwwkP7ISho?R(Yn{jnZM=|Xxoz%Q0OsI#Tv`1&|^o<;MSvT)~ps)j`i4|35RV@ zxPwF+f4DM@P8gRl7BvgYYdRBku$KiV?xZBH^F%8$z6&$=thLDrwE#guNZIv;YOgEklIPCLN5z|kAf zZ8)5~B8|8(x@h1HCw7DPkZOllS zNwY{??s6DSe@Y+r?aIa;!K$-+*T`nQYGF6Bd*KwigvnO~48YXbBS1V9YieiuD!X^Rk=+Yt z<|RyqPiiknXCb+#`F`5p)!Dsk54(3whpr}mUKi2G3yXT&H)C~V(N*^d5RKB73~p~; zH6nHLo1_ zF3KO1b#m|8L+)MgBKKxlUwmm}F;b8jfTtCUBMyrH46Csrl)mir#8lT{JIDZcKw6Qn zM>7CZW50f7CZrH5(ju?IguL8K-l?|OfOa4y^7Uv2V5-MrCW%Usd|i+Mk@N_duQFp# zU_9jU4G}YW(-73qVZ^7nHo_Crvf+u^3KB0P>r~fXIzZK#;9&sQM=y7 zsLg!1k4d{$EX)H>E5zwc+BI@V8y-TnB4q!K`*7&j!?KeK^ZD`tm|9hx&ZS+g`JOsV z(bL@nQ_)1UM#WM_FaT4%s?#a5t2LH&TqH-xi@$KgpvOZVU&a8T>Sb%6$m{( zy|uZhvt(Bv4|PPSN}$QYUF1$)weEE6X_8*)KsAadh%B%qrLufmoI}d07g0KwbhVh9 zsuQU2IJ;mf`i1f34aK$Hf-Xaz#?>Q>PTE{8!tJ<7j>r=2qJhhJWZ@CjGdZnLIGtqV zm08^I8J(hpC*soxOYb4Mt{o&-j4TlH#P|ECt!sq^^~z#Or?##=)YkPzYAd9j0zx0P zwFaSQ6}BRaPHkNym9wz~RA+@eu--KI|M>YQd6nVn6cczy18{w_oVOMMyWL2^qTv4yP*+->bvEMN zhIB#cthUI-Z0J>oX~?H5@ow|YmaUnW2b)H`Ll6`b3XO=%*u;GGo_Htw8Joqly~Bj6 z@ov+n#cmdDR5ziU&XR{RSoSP7A60bBnkt)Rh(>8k*6iAG&Drq|f8mBf563%-I1t;= z+W`*n#8D2-7eAwekMpKavE3}ri)vKqWYLXB+WrpD`TzGn|F7@=@#_!&;~#(ipWprs zvdSMYiNbg%8!4M_km!bFKV0m|7rrvwArGnW<30SsE#(&`;_L3Topj0`3%^h z1a%So(JsPKuEHLAA>5!4wsQ+5>mn8?Y0)me@uk?bqMgnv+$>h1y5dr5;fMvLebp_# z^ri4L_Qwzh#dM5PQ->$nAG;48BeNY}S=DN8(M9Z=;qW3 z1__8&d;o+zXNYbmVG_+YMmHu*!cXach*H2Jz3Il3?2BC!Tvj5!@tzx!77NGs%IL-v z3W1l!a8vP0C&oGPsvS9&z01wwPtqE!Am}mpRxQW$5{Z(r`=g_joL0Mzk`~=8g5)?h zt?0&t8;MPi`^Jf!#RAaPS494=-enfuEMnw1Jgw-)EF=j}$Jw+Exq5fQ6FjCJ{0CN6 zJ-YE=K?#o02N>6wBf7<3xPi-fbmIxfGkUie$(Y;=pT$%rL_DTw!c&Y$MJ*CZ4GmFM zKZLBkOU8s@S#An!1`U!9>1`T zOsC$V)QNptB(gPhraPqT>9(3aX2Cy>8Ei;$hxODtlRBMmi`1-_isXoH7GZomx-lz! zM(-A*8+wNj(@xIXb`F9>V9G{-#W+xn30ZF)(XH5svnH961tBf5_`+94Hzax#(ao63 zsNQg~rOdt&-xRh7Wc3^0Z5w4R)EuK ze48~{Q(ts9d2leIVkgeW=G%shs2=BZHs996=G#&>--r2#u) zvu1mao3|s}MYCwQpz(0WH0zmMX$W#Be{Dm8YxwNsuWig<%kjc%h8v=Wl?P#_`^xLz z{RIwq!HDC}Psm&Tz#(_O9MiFd@{$~xX@q?={JPr2p- z`d&QT5k5o8NO;1N(BTQsh`|$W3x_AZ%M<#zbP5$}-gD;?*LD%_ESjCTopDR~E8g|z zy`2%Z=5ux8w>8vB=8qJ{&h#PI-{*(xHtdZ_CsJTzw*!~Th8)#GU_BhATfeXb$ZF&l z8_e-Sj~&s*t;b?})yG8KkXh-3B`?t%x3_LO6LB+`h}i{HTgpK6+Py}yhqwb<{X%&@ zCgKP@&}2>SpF$Il7ZW22W!+%#5Cu3xUHPxtJb+VdUPJ+~vDsLDCs9Dvd6#|Awk>@SfBI1`*;pi4ZqWhTz5w zLAgA`e`<)Ort>LlDY3_vi&q;mL9<26)1tmmT*L{WxBFA3#R!-z?wt-(a%$S*!=2>B&^TezS5i zF>}*7kSIwbDvWEEX@ydEMyjvtt|Q;q^4H9`Ek+70KO{wV>a2^fzA=+UKxdKoROpbR zScu;h$%~$o#SCpjsLPO7My>WP(|jaMhFjHPx~~X;Q)*HoBW#Yt)N1qcb zE8b#Fa5Pp*WV9c~VQQV$VS<g2%+QP=q=}180u3fH|xHE8)EHQ7&0S$-k5X^Pv>zWX3@fD^gnV%?mg7UJ*7T6 zGb;$h0Wn$h;?}wrJPKWA4$9G(=Ku zCmoaNTw>(9W%p(Gu`Wj}rXG3mmoE**nB@J(;mAv|4;r!L)Z-Ixjp8Z-vEZk%Qy89f z66S6(YIOBoZ@`oKWCvr9(=i+7L;etlFBYNem64ZshDDs~VXf{Rtkr7dmDMo5yc3i~ zvH*S7Q;)bhQFZSjs_w5Ks^UvuY(2Gzt537sBlYm5BIyw?Gn;4+4I#!u9M4UL&_xVO zc;bSS)6Ic&^D;cw6K@ARuKxE3Jk`eTu5(rQ z$Ukg=Grry(Auf88h7jW+j;{`YAa({ebPyr1oy5%jBxWKoiZS(gY@~KxT5GVZpnnR2 z3IA-(?j(Js(>jwF@yZa#XL*IdJ^areGF5eJihVe0W-PI5Y^B-#3$Y#B(=xS^!-7LOr!dtbRK0A zZFF~#m2k!WppQViBmK6BsIQD~IzwgeVX*EU4AyFVEA|I{q}CdQy3+h5920{?eCr{u z?qkGNEx!5asw3F6;+sxa-FxV&`zz?G_)^<}S5}|Tbm}ciovym~&{g+z>ZH>psVgii zZ+$$~G3%+dD0P1rq5z1V!!Z^49$ zy>K7lbIgS5aZV?E?grsg-^jg@_z4Xhk+k`UpCd5U>p6V@%lch=PqR?q3o z$KB!?>bBGEuZ#U9YYgYO#pv-B(zF?Wc_oG!1~VRRnOQ&Y=*dG-$ux2hi@Eqa^L*hm zYN<-wHjYo|>brivo5F3ew`DO=NPWl|EmqSj!!2J4BmlDrhB{y&_ynzw(<@*{M@Zxw zM!8oY)MHs*Lbbvz(|d$aJp(6qq)+z3q=j3HpxQPs4>qlE%Y-M1jgexiCX`N@ye-`N z22GBcPQ9#T7MO&`NFQ~0^doY*28&Fs5^f^_(@tauR#v^7WMZ5Ir^jEX<0YN8L;kwh ztMLt!9I=>2xUEnGBmNCFjfYzvLkwXwdh!r%nd=QtA>2b208b~+qC!jcbaTP~rT6JM z74}1ROG))UJ-B^ieZ2kfC5nh2Qk7EUq}pnf{F3NygvLC*Hl4AGX{tL zVIBeR$8Uf6{>wMGjc{J+%0W1EkgvbP8sjMLn>iwV^j9r4AjN7?Q@d;>8L zoa*V!m-3V@-0ycJyq)9sGH80wI&CF$+7hm468qDfO;DIhd4IK3t z%3%;e1vvMW1F+91eSp#EYJ=nR0X=t4Aw;EF87$Epxej({&3nS}7=fIRFIqDzA9CUL ztF*&X_nr&HAdoOb;R6}@r4us>iLn0O!3AC)VR(8^PH1RBLufuu;^?6hM~@!j=z*Lb zr!Q+H@PHSbCz6^qfTA@qz+`LrQ=Kk)^w33*8|k8O@JYgCR9@pS)%~hY7Co%VrZP_V z@I<|F8qRM>z}g{^h7BDRyYhLAK3_{^ijddG=p2*xvWEj-^X=!KLO6c|Pv>f#j<~dw zJVe(>5XYC>IS{gF3%BYsJ(=pe?)N)%Zt7w2n#Y3` z(>cL%CD zT2X&njNLYbdcl}iMvZ3o!CWi>lSQ)BVY;yhC>jCQh}m(N8h!7BiE0uiqdTF(gcQ5jwH*ls?U#V27hl2sk1*n_+WrlQ`q_`2gTRr}xv6C5Q-ZKs}B zjYuWE1spiOEF}pgk|PiYt$G_GxkrMI_#)i~wSDL?@^oK4xf5 zuO6Xf2qdAhl+Pkys@9FP(o5D|%b;Mx3AS*gzKkO44t?d@zL~zFCoD=VYj&uPR7YFB z(q@Kp@)9PWXCE-@JnUs4h4@xBOD*c`xaMTA(TqC&#*Otp9$ij)C^@cBq@VQAgK5|B z*%^g&IxRK|8lncPf`!(-;d<^FhJCuMkyPD+T|TCLNw;99WBE8>V;Q$#mnB4tuPs>G zt&5#kS~=7v0rP;E%bTYMmW|;vw8(OWwX3;XH%~JsXc0VR6AziI*Zg0GePh!U4yB7_ zZZU{yO;tFxBh3g~A)@;Y;1G*adI*ax&2t7G+IOWr6@$D80(07Dc`S`qJ$X(u2fCVrk zMr8^W4ZM*N+~7UWFn!KkJx-qQf!ZjXdJiA-K!z1+_F&R)-?i7`B){O(j| zW*$Av%p+xH4x&_a4}8STV*sVPSJi2mhegYjQ95O0dg1X#>7rHOV`$d!dZDA$>6?d- zzBwlEW%rgP*U_}D`7@`MIU78AoV1cciE;8c5uwt}_V73lq_sGmNjp*%hZ}s;JCBrF zmf+;GJelU#H{a4UUnh2=BrjDgvxr1Uw>XMwCkAPkFxv*(IiSe8-Ym995=AA z5h#;bivZiUGY?9#SDc{~;3z$)#cWh<30a!Apj0$U;=3CTX&j~2ZmCXSJS_5uj#AP# z9$axn8^R*Qj-!-!jWbKqyT-;`$-G)bCdVxnRP-QxY|jyIB-_^+I=2^3#R0BIAQ%bO48n#0q%L&^h6;j?&#rV!PlGpfdp49!~0DU(PD`WP53~$n0P))z20#{@(rpu=`YhJh?Pv0!6xi6TCHI6} z<6?>Fxd|qb?4EQU?qLnCEcBS1`%55eN#NIG(RlF@QIB-)sVP*R*tWX;IurF_O!vwI zEzah=q_J8<8~7p8Y79TeW*!p;rwlnf)xH#>P~@`@W0GeE&LgELntE&3L~x`$2M1s7 z@BunFJ|EE2?MH|ds<)gya75=lnw2FmzPuq3YW9&%KsDE8?l2nu^nr9y zsl7*}nl*&d^4&)qSsL^Tm#vs08Vf+y!1(fpMB^|u{HmI7JuKRyh|>?8)_DydZ@(W{ zT*B8H#8}#PuGy8(V|4jioxJ!k=%}~Id)dRKO;LoZVS>XhjT{Z6{j`?C6IxAtQrlIJ z9@gh0WqppWRoQL8mp6c-wVJZ?5*d7^*VXYytjeh1B)|2i`h<7kXRSe)s-H#1<~2W} zoxRMA+akrX&PGzRu8#kMIfBB!S(Hj0y6DNrp@Yl^2(m&Vi!$4WP%qc=NZx4qKXd}+ zBXaW^Yf*(MB`+o`Qx~xv$w4dulf_3IhpEx?M?6XoVDUC|nC{E?0Tc<7(S8_*snPU* z@R?RAl#$izFx}Vm2WyrRxz36|Qu@AW(fOjQcKshZdGis;iuEOzSB*&Gxy2&^|5t)z zR6FA~)M)!74&_pds;I+5lh}`uV9S-^gGW8jkMp?pgK5(686RSQFqKN+XVDZ@b4L>9 zC5=);u&DYiek0iY+`Vy(Wpv*io37FxubiiU>TZrEkZHn?bay=W?)`n1*A@>ih zpv)vZ2~)eT#I;UEuO6W)Auvn%tcjkwvTkzbxgSNYm}>r9|n#0COMY<+~5UBWMXCw zDwVCnbVlhVTz>bLU%&kVH)}SwYC&CMQCr+u@-r!0HWA8~cF6vXYpeFbv_mPdk#^wv ze;|?Zl5?ia?12g>ZMx0u3tg9gnm_-a??3&ou%_n+k|i%m;NGeQ7bRiwrT^)K*F=xL zG^2W(jHoqyyuw} zotIBPnCdzsV2YzKyqB7Pr%cY#HBpq~@#T%&jWmmlRHu{AYsuDDt& zP4_zR$$QzuWd)%{m>+j(C&Tn{GE5)LFr6Pfl}`d^^f^?QhLZs9S*yhw&4#r;h1r#G}j$Ek3CZ(|s9#F}m~-sjDxAsnx#L$)pd9U8BQv zQ+FTqSBxipSj^<{MOSZMGkHQ9c-yJxRpVVu+W<~cZ~GXxkBU?GEVW7_9haKQ(86zP z81{G?#n(+h%0!v_{NNh_;3=-!&{JlrHat-+DKu#@NmX-4n(Qsk6Plq?qQL8EfJf$z z%(OxVUzqMot(XEQ1hy#4Fn`H4K>()Ntgyu+F$yvr{( zyqXq{o_DcyQ{%>$HjEqH#WNjFds$~)TM|zmnkkIT;_j-@^$>U~ksJ<*NQqqSq8fyH zxt3Q(jV+0%PRe~+#7G^c`-*^K^5fG-6CQ!7u_b|cluopVg8RIYf(xA{X-$StYA;Bi zHRY2=k_*3{`ry^4#WB^b>B{Dk5o=_<{j|79<1kgXBoGb7mfB7|s~Vr_)YZhH>iRRl zk!J(&<=swQmm&8^jV*~MQ@4a+#}LvG>V{y;mErTG-lNw6UCp#=<5M)u_@wThJbS3O z&kpJ>HU!}qih#;Tw0$CRxad6i5~;qRtPc!*_Kr&%0>2IXuP* z);p}H9)$IosZWbjs#{MiC~sM0a7a%2sdmKUf^T4v)q^nex`apuYcvnS$b}sTC$k-k zdOU7Bt>DWfHvvmjLBsQm2j7#XO@2Lu*OR7At2BNV4Kh6GOyp;zVEuR)YxecKwy0n5XGdU$phO^RP z>eyq|8V9+D2ruonFb_Pf;H%SHp9Z;755DP))Z20sgKo-ErLq7$@H7tPAr5767mtZF zbf#KQ2W>H-!2bT*&p-hsGAd3bg`?HNs^eEQkP{h)b?;(Jgc9x*HG(wz1D~L~VtGMU}TO&$!+q&++DdH8q6pKbiHiQ)3-!$Us zBTAp1o56v-`}^;(fPVh<-$CS{hMQbDY<_n4qd%A-}cIvMyqyD$f?9K^Z*~=ih8+;^D7IlWHGUHc%p|Jx1O-b9`A6n7#J5)ZNBg_WJ^l;#x*LcVokCE(*bIgaIpUm%uCyI0MM6Ff{SWhnAL4C!D2glOo_xs#65_b!0 zer1iPPcMC1G+1>p_Hbdf;sq8XFnR=pKI-eU0-?`m)gzwHZ+*t&+KnZk!}JQ59(kk< zNyw!Sz|)F&d~99n%s8N-!*i2M&mx|Wy*g$+^@yi4RG$_-Q-|kz9$u^QfHVV?Fd)oG zwfVx!kS*0B9@BiJNJ9?Pv-&*|FaE}jMK&JsPKx;Rq=P*^a z5BKqzPS$)P&Fbxk_ON1%ctz6WBRW2jxQPKT`NCHQJe>sj>>)uuk!x0nubW$=c7cFb zqzpa|WDP-G1ev4P&ur0WO6$81 z9wXtUbfB{Sbk#`fsmD8=z4tU2YkJEUDTueMvH5)gW}t{H79DgPsd_^*0#f#VeN#L~ zY}*s;qHSCYc24ufm@!kh3FX~M+9hWZKRY+>n1wn&c@U%2p^>ntiBw8Uyd-#$FU2=C zkRlUGDTm1yzB1V9l*6aRt<&*J*iwo3y02)s@z8217NPI_Lj^%y1nI8o!7jp4E<=lA zr=t|DcHCWM!7j29yA8|(Pb=6l?MW;;i)5$5gVe#B;W1d5-0dB*o_erjE|`SJXdCMA zMEdtQJfVXk*O)=iyaA9p{~?0-Z?aY;rQtQ*yJ$Blv)=R|!R!e>g3OOSeHpi`%PE}uR8!e`1aOvKmCtsUr! zW1{ihwkNM3sEgnYbOeXAD)`vg4pOWN{!<*FIPR*FKu0fqDLnN+M>r_(T=(SguA4l0 z4v(>eNd9ujdTN0VekIyv$pRgGd_DPw{}ejIpl@2U>0dgP!;$V}mXa5Je+Nit)G9ntd}IB`pHf5=I*g2phN!wvx}JQa z;6Q2<-*3$|jWz_oN8Fbz?D%z|Zuw-ci4fSLyQzR7nXeFEk2CF1CkI@Epq@Jcs}Slk z_+wqfqg;rQOLx_-()p9l1)=V_WX{}TOtvk|15Yc~A*WCr!T_E1ICCWNjayL;kH?7* zT2DRJ;S{(Mp6mHHV0u0OR;?%O5(qLdy}V)1cUY0WR|nr6onHx(r}sRhIXl+T>l?s~ z#ya>0YES|YXM{sf5#ky%TS-OWiQtL;hj85;^uOgZrT;m762&^v0;g9spduSeX*J0= zzB1OS^gj@|CnHbke~I|IBQ;{3XaR#np3EHnS)lHF(_Vk9Q|W*3Z9UFBrT>k%1o(){s-^6o`F|mo!BLymv{RqeWB-z ztX|it^uOiPMZO!-oF~?Guy+V9_2^g_Xbb&#IzRbJ=p)Nzd4C`z= z`1XK@;;nj|IWqUgVaj5iMUSLxY5<;AtYbouup*1&rgjIAxpy}_!9#Q}K%e#0>pEsh zNqBlX;E}=TP3DY6CN>I|Pm3OThZWW8Iwp`wkbF7rfMI)LU3`7Re#YxMj5Z;zF##H$ zs7nb?XM{ujhkvIN6Cc(&p0Ma(b^VsNm9HP4$ISCa@#<;tr88aV8lJEP9d;U|INgxa%IC_|07U$IOA=2e{HHS7~(Ze4)7I+?gKW z?t2U?&~V57#0egpn@OfN2>$T_k)#&r2KCUph^OfvZu{(VffFG-M(Drj8a z3jGuTi^bU_J*F(pM30_uT)$?Wuql(d3nMz=9dT3X8eSFF5!5yk9$(BGfTwmHF#KZr zeycHCGQDvI-VuHCJ>V35LyNK5wjG}j=(ze9ervr(h~$cT>L8GdvFsk?iguwzB)J2* z%a;(t{sKT3qe#)yw+Pka-jhkwAVOTwAv<9DD?CwVA(m$cO>y~5X^N&VYv=9IS(Fla zE@y?`Ck82}b>+oz%b%(=Mfi;kFQ!(1NIPnt8tInIdeU)a-bE?V#6%2QkaA5LEj0GF`kM4%*XM0j zwj*h=9;p5}?roV}2#TV*3!W(7fG0hEc1-7lcj>6=nPc0HKo4GOHoUw66loSYlFp^- z_qOVE&IJnWwot0KO{a5u?Z1-6Lg!t;6kq;QnCjk^I{{Lpc3oe1+YV}~yDEa#gOtt) zm~FfAd5o^iR%Ne($r&C_dfOi2s_t!}4J5HM;^-aN^?6&B)CwNTXl2~sZKDqi87)t& zgr_shW%8TE(eQ1$8|i2Q)!ax??^*0$((EO^?*(s5APSf){-z33I?i*{+ZM&0#R49O zsqSr=Dk(uS{F(F*NKADGObXi4Kh*a1VFOP}X9UbPU@!ExD&2JXwD_I{nlZ5&Lz9|} zMImL8m+ru>&)YKTNhsSQ?vHz0Cg+2q&fNuOTEl00SFM8*3-7wGMM%|)GNb9E!xWnhw^$SG$V-?E zpEM2=yazRVuZcSx9w5@;Nz`pHTjL70m)Mb=n7{AHUpQ{?%E z_%co>gtHt{5?@Qd;?zAJsdDZm_(#N{v?1$Ci1A>{*FJz5pDjY>@xy0v)rOLmsn;MX zrCSm|!&PbKK6UVCF-4XW;Xy1T#-VXfI4`uYp}wHJKVrfZm7gb4;q(ny80uEdMW-G{ z?Q|of7LLA16&mrc4WVZV$e@e>5=>-kQYa(Zj0+`0APJSGe3L~K)vfzRXTHD70q9`z zE`MG#d7r-Wu$Spe?bJ*bA5=vO*{;Q^)J1G>AINFv%Vd#^@35fskYx%IbH;>GTQuHr zkz}w@joRqQ3`ZC8?+`!8amA-tPRFOXKEe~To#Bb1P!1R#*sA9V(fNY;q=ziM9lzMo zI?o7(V^vv?3yAG+Km5zzfBN-r?|B`)e$3%VKmPdrKmT>xKaTh1SU?RZ~Ef%v?iP}%*}9$)Xs((ik{$<&f~mfkH7m13~7OR42@HMU`0|o zUp%NVm3=8tz6L%&T&Fb=w<5irtO2m-fF`7AUy2TxC4xI47bB3exVTb}9W>nBi?sA8 z%h@S@Tf@pIItfpVosBygY~0ktEYpoFTsaV)Uj9;esyi=;LTShb2Uma-((GW` z<7KQI8xG+3a`=kv_qIE0Bw!@gC&lzULI_jooJDL#}I&1u;^L&gfW- zd(V>(N((w9ASWLb0V~C_$g*kyfW+H-G+WfQ7RQd@VEDB$`Gm zr9iWzXP?zhko9092ItMCEUuRQRJm!uhh3kyWfGteI7-q8598jJFCSPYX34=5^$y`l zZ;$m*ey6)Azfjjg1uKAxFK+-vs{$#^PFLplwmS89vIbhJ-u6c7FPy{`F!`vz(*R6$ zZ>v*(CupiS&)G`6 zVrRtB_L}rz*XM0{_?r+oYO&!&Zt%9$zFwx2;XN_K8$OH5kOZm8V(aQ|B=#V#EtAR# z0U)&qpduZ$0TgNWR)((Y{19TLEDIwE8P}}N(48!XuBy8pny#k1tbgib<4zU2sc$uQ zogYGsN}U-@U2UYxGTq471?;uJ`$~C|A-5{OCgZ}drtjz)oZSjc9d2K< zFv!K^9B&ZR=l2I-lAEU)OnS;{5Ogar-Pig7-jlQ@!zYmw9e}BEerVFkxKku=HB4Oh zS66x%?FIp`)+9{fFnjnBIc^*-oehrh6L~x1ynxj?S!=A!iM^SGH%Li z2eH%hLpt|%vbeW8U>z-;O0F|&_EjX)p4Mu72*Wd|@^W@ffY^P|oS`$fSCl2YAaoKo(W%p^1 zqOEB$TPZ#zT-H=3U*6GoXouN!Vkud~S6cPSz}r+{-5p{jf~nau>Gam=A|Z1^4&ZCl zSj18vLvuo|sZ*xhBe(XLbr$9nnRImromWQ*#n7v;D*0E2P>VFkM*bDAY!PyF>YE)p zop3U!6#|>D7OpK=yR0r+Sr#X?jg8L%bnR>Kp;NK`4IX9=T*AK`1+F;O;iF;JmYff` zzD*6ChKZ8Ymm^*HGmUu8bGsNxi4;nwBWtgSq8;a&VG6&_ z*I^jjwsLRL@}78nB)Gq9pJW>H!1fUe8aB1mOh z*rJz@=cr5}hXqDk#qbpOD1y(`*{-w2QPh0MoG=zgeF)HOq>%+5+E}ruSs=Qcjf7MN z-=dJ!him&7u_`o+k~9P!)-2&IYvs9zt~n=k%@ns*5v2OFw4BD5HXvY~QLPTmpY*$Z zI_ug#MvN4l8DT*;`>zeZRQ$`(!M-Sv@TA$hHvDG18{g?t^9-Z0eLUkh(Za$ko}vy@ zhu5z(^o!Y^v&DLCTbiz_946U2PxiECCIt%JS=>n#Cgfo{HQ7$Yis_8AMR^^EN%qk* znA8^WY>@QSUG^CV8{PwxEOhbZ-G0kwO(_pI1BnVFX-n;-KC5NtWB}^0N0P-XzWk-& z$c}ynk9txA{a-_<8-gt-Pcu&+S^k z--vPK0}}3KYD2FK%KA9c*&-RLfF-oCRD6AH8g5h;v~zrU!`j*q>N4cfrWKT#>m>AQ zjr`PMy3(02V3Kw0Y;jk|VQK|s9t=N_)* zj3lgEa$$&U!sdNk%eexf$L3qHPG?)r*2quQOC^-cRLi=E4JQtDI)q>eQ&<$;mZr;) zyM|V*(`l5mHTqMB=@rgAaspopPb=2xM9JCW|LO2t&&2IUnMERM`zfFG)Cx|dSQf6^ zV*RP$Ag6KM6J_zvB94xOQ;E8;(3hDxS7N<8Nwxz)_$1kqe-CBmNwS@pWDB2B=mk;r z`wpWFjkOmv2`WoYl)2qw+~PXVHTiF(T0Z7uO;40<`}5;*o+vw(B|lMiUYt#PsD=NU7|+l1-HV|R4{LeDiF z068ZkD6biY<7%j4!XbWJLpoaRNP8?ijW1=B`#i3zp=Lg=DB&~;N^CvN$h|ED)_pf- zADGp`x~4Q+d~qcCG>|Iv*wKLZ?qNesAf&ShsI12;;Z!C>Fa|lf=@_*bujrhS097n{ zgISq(Q4>a`+wLnH7Eo*pczn#t85yEZtI6T1o{5+v3gzaP!JQP~TsZ(|B-2HU(#M&s zf#dT5JqI9WolZF$bV`9-YzsS8Y9Lp1CVe!@G35HrKj<@1QIdueyTN-#w-<7PlL0m( z<2Qb$H|Zk@tRa?~{USZ`9?cfbREvvB{uFs^P8o8C(Ku>0Gbv7ZF^fv5!j#NA9rmk5 z$H(HLj>A;gF3oaq2nn{&)4BcR%x*we5NN; zeeCjUMAl@Y(5y2wXN&neu33H3>D)ugoD)*!knS?$jxTK(H~H6O!fE>5KArU)>C#!6 za}P^%PFR|$_^o11ZSutqk~DiCOLMM3sLPN?@>WM(pMMJNn0EhKjpRsSELNs2Vmp)0FQdgC2f+Fr5t^rGBI< znbSGE=!$yVAdqsJGqC9DyU9ENP-xDeC+1aSMJX3HP^-hv&0PUcR7E4w z+z@Qf%J5`m&&mv8B5s%RYZ>uun(xIzIQ0IpN#Sd<7tMiqE|u ztbbx*KphS!49=hGyye-T2H&(bq3nrR%u-n*CxcGiYsXz87p)hAoXoMKLQC#jOuj7% zW=sm#X_1&|F(DWGQu@YQ5;|3RHW;_X)>04Y)~&~)H{_$?!qQSHM4nWs)k4#$wzEMY z&9i_C-M`xc1&J`Z?LrnfIM zF6a=ZnamAO>UQs9v24{O6X~7ztcjvR_mOR9WDPrI$V<UCbqtP#fl^!L(FZ zqg{SgR_OThhD5Xg24JfCRYXGp$?#?(-&&ICr?=-@#dJ^nwr;>)=W7>aS<3Pc#^kko zXKe-h zE2k6Nu?9{gis%2B(adc56M&XIuJ$RDX!Z1#I0P?LJ?yua;a+W$uLxJnvV^^V)QA{ z657j+j2l^ng$=zjC^LOg8l2&@bikrZF2wI~qi`fqN@T>pHiWti{-DgoSI@NaR zq1rATR9o_p@ZOphBAiaF1tNFboW~;^U&{c$KjpLVL@66QopJ4?zada%6=hLM zRUd#v*-H+a^jEYBEDkbx!V2s7l@X4)fx>lLBvT!*sG3WF)izaNOIk|g3nmo^ea>^A zVJrO)-~RsBzy13D`H>b1Oq`TL8HGYyuO6X15w3@RyS##ai!ZhP)R2{5Zy6HHo-RhQ^!sQCN<};LAu`i zCJ$M(Xbj@-4VKf2aD2v7fD)ZaBkYeyIKBx1A{X_M7j!DIOUd+d_>AHjJW=N|7ZuOY zG(-*h18e>*58uMDt7AzI-@~!KK#CY5&j!!32 z*b54uVa^<$^eY|~gI`-5$X%F%+#Y)+=278+Tv+o(24E51vpso0Lg8h)vN{_7N#-*!Ubk&zW3AsI12gj->!DxnN}wxT5v!qgIXq zclp3tIFh^Qv`duawVv}V)p0e4pnS5z7G{M>FVT~JB4zSgjI3NMRP>}RdMf!+q_#Ol z@cUBc$w`!qhN_yRBWKbnV%w({ZD)&}I*wAqr&1ayFtX@xGD0I~@)|r|;!M%nG>EEP z{iEMf4tkOgTpXJFE-*rRCqR%m1EGF=HijQy?y<&?&sjIFd&(}gxX4^itw++ z%rk80hG2VEg-8kyRUz}Z;fZ()@N^z!(mADTBp5alKFuqvk?|RR37CuM)F?Irfhmyd z4`0>ze$rn`7frs=mq>L5WkjY(Mc1AIq-#2WG!b84o5m85wKcxH8$w+McTh$=6qt-? z)7Gm;s7eS-Q@*ul;^>-A934?sE{X5Vbj8j+cr>C9{l$E-K)yHBSQ&P2TT6GrV8hLvSCF$_cruT(B zvUY|WzF(S+5!}XYxgJt<7USyU4vuKf5mNB=4OI#+wRZ3}cdPoc@#f-VtVx5o;AuF?}hh7;{n5`m=K2ld2y43-T(Y_F0_nZwc z1>L7&{@iNuJ=+lKGWbIZQ+XszMu9#qlqaM_PSIs$y(0aNJg0^v<9M{H6XsS4C0W!w z-Inibf5YMz5?SodahU2Mg=uF(B#TiwE|Mpt81#I)nQWv=InO4dLy6&onZQ6;IBOFo zo&xnmrOL1IXk)|FRjWc$;w2ABAw_m`SBu?A3QPH%Nf3KwNZ~`D(!va1sRI_H{UyL^ znO!l#YxNNv*9wHAAw?%KuGUD?wq89#c|uChdopDX+j83bfkWy>__~?vlq^6d;Hm?jRI@NKt_ zwu}S+#^DJSchSW4u_#Ais)rP&SP4tED3#;O%M(&8ZvJ>kVZJm3joA5(LE~(4ot(54 z^&ft!lPp(@zo%Q(^`x6ZO3^&ENS>rH`I=MTdiq( zZ3unds(ObA;!!qKt?{AbLU}@p!5&mE$yn3roFnl+t5SSZIoFDv`;=4VfgP2QFW`jzJZA$1&Tu(YwGg;=Z3@Q3h&DCN!>VU;) zUqnRRQ?#1}P@hT&eFZ@ULR|)bmBRcpA(X*LrBl4?fKZ;0VsJn8ka8CXGz%#{^5+O1 zt;Ux=MRPS6o)viRJNym3Wob6yMf21*J9DiNTVEMcnA;`* zvj~eiVE1il!rq0D$TwlL2BEGre@J2CpAgC-ozg&*EGO!bhW(=JzQ;NiF>dqRrEz8?=M%&>=0 z5xrHYLzn~&Pqc3WPv^m6zMe?x&^Yg`FS_eVH-(g9ci%dTr zQkWDESNWYyE~YlaXH0QiPm1HJQyjOR`IPG=rcqj@z@Z9hLqzP!!rIRWX@pVtpZhXN3lpI2Qxoz_m2z43URSM#vz~t*-3<%{2DVsIpQS+G_&Wjw6 z|7l3Um%dm@)sTWXC`#(+dT;3z#Zg<9Ovarw+9Vd8_!ufrJ)C{ERp6H=P^0^~{*uD#Sw_zAU83<|)3a0Tn82OUEK6cKpIB z1(7K&%pw-5UMig|nTX#4teV-$-r;7kRof8iGWbIZ^P)tYvlyY{LU}@pMKIKrbyFIi zg%lt4vu5W$CDlU;PqmXuGQ6b@&wWQt;AoMQ$Ov+Gm`$Zh*_gv8MRFy*BbsxB6nuTd zPY#C^a_S*yFv%O9xXHDhq{oeEv+z@DkO{yns-bFC72=_8_*qDi&C|`I@Q@9qvo#Z+ z{K}BR)E^0$(e2d%yQ!BFngz0VxLIt~HiWv;{2@gjAGukK&~c$WA;lsX>dLx)_(YBW zSxAYbv4%?+$D^@5zcEow+Opv-b$G6Ky;XREEz2hEW^q%;VX9Xt%;6ItS$xoOkvt*A z;_#1$6m;q#q%g@Fo@fIep3d5YX|v0wb3-?aYN%S(CDvRTQs8{NRG6#hz9CVwXhys; zq%ieI3T$+Hb--e@FT~f~dAsoi$HJvVMvx<$uRy5F;14Oxi;_aQPV&|C>JiElQY?a@ zuB@BV@GPYGsGlQvv_gtLEpoGng*rSjH@(M}izcqcO&z!8dPrdopRi<$4>~TAC#1yH z+ek^qLkc?e5K@@r4NqqvIZ2Nj(`I2nlFFXnEUKYuRhI~ASx70Grxt~W6owNF3p;*g zNMY)av@pY0>VVzUOM%P|4ya3sj3C#B(Br)u+w&XqqNGs14n{?<9-%xT#UdE$%DO2H z&q9hdVe<|p)f-<-R1-?Fh=nRVNSiE{qOLL{Jt~^G7B_Vqrg}(W4xa?cm-G%;vL~d( z*S|ERpi>Vag-PD<6tk=NSzHw1iD|R&M5n+cV1_@^t?GKx4eKlT!=ia=QFzFPkf>SM z@hd|LQ-362hOg8Ci_yLiziSy5y+ezw+J;bwCTr%@`MzNV5lqWrZhYY zDL(4wR!qguL znBgn+Wq4CB1)?%|2Pu&e|k1 zQxD;TN#5{u29lHXxG`;Z*>rB`W>F1wtGb?aW0eAlfK-?f(#VE}MhAAyNkL@F6JHjw zPzUU$UP@SoMeoozU305I=<`D`Z(j3>l|RZG07Xw zK`}#RJ4ufl(`MnPv7Ilkjl|oK8=?lQg4OkYz14*??|=OEm+!xPd;k2H<~RK0cYpcy z+b{6J=O?5K|MK^re*N2fK4kRyF>lYeAAbDt`+q{G?BjT!p8z`S3T?~dV}C#3v*q!O ziU$|FEL?xV6IX0By%s_)&K!lv08i&n&m-70nGGmClWma=4>Afo!< zi}hZ&MQ|+C7(GV;nQc-IH5MtRZ_ea~+)bxUc^7y3_*{;+AO7&|?|=QJy z4Vb|oRZ|4FFWqs1Wr>o}Q`J$5e%UEvd;ebU8}8P4&T*8gK6Tfrkh?YYQAFq+34+() ziAkR$Ld(4={IYJV^0|vXKT9pOJb3Ss@%UnSFT1z2-GB?QA>pt;BQFD`1zLM3hsbEc z6LLa}mD)p>+*7)w=}g)yRqklvyBj#sN=>JEnj-l9na-BnEq0*l&ybvTZNXN;IVevW ze8_NK3RB&oG1p9rWH^24(2(?a4Ii&V1M`s5h3L`^*b6-x^Yx^>?Q(e)(?$J)7<9-qycc#jMN7HK+i(aU%)s$>#x|6m?1EGZ~Eg}!QG`()}sZw?=V4Snv zwb;2ICIq%dtd47z+hyX5tr3p8?vnQRi0-m*?PFN($QUhrm``V2yI{M{zT7Rgp$=U~ z*QXYuWFG@Is9YYm0-;{@=8?Q{{2TEo%F5kh8|pB{`moTlE~4QbWJ_bW2&?2B24Je} z%f;%OseNK0S`0`XCf$K`!BjLbd=oKi3sRRsT2pnqZr6E_yEQsYg(;=bjrc3j9|S|G zxNu_4PIHE=sd54Y(I}UkF$Xj6fgxY=o~2fF0W6y8_)@EE9LA-_geal0sEUThZV0w? zb`kagx#fjkCzgoJfrc$MKJB>ctkvD3AL{0Qy{&_L8<5`#s3MW90Tt;F$)tr1y)q~> zu}umbJYqv&9k7_!7UJtJ%!oEcd2Ml7+Yst9NH7V*jAwW{1IT%(0+A_`0*iL2ThsMC9773|o6?$%W)&$6Nuc5JqxPnBKd|}?gNliA}cN^y~iBC?WKYCBslL(kzdG7h0VP4 zJmJpFUHB{p$6|xeVi~H&jU37z{T1yki~>CeDYQbWt0QsLdif!LS+s! z9tLheqbutbuG`1N+$(nOQ&L{DWlD-omU8hMn}|9**RyQ(Y-6q{U%ov6PafGaaC9eb zaSC;Cu4mMMLs-`PJ9PTxBJ!os1E|R0mg2&sG$B;{w#J$ouOgYE4`=!5^fElfBby<( zormxDlS#KTlP(t(&rLT(4Jw3~k`f!d-Z?)n?o z0G`#0hjz|_n(y+39_|SlHaNn+!|W$!2GKqXM_^6mlxH)L%vpqE-Az#s(t9=oww!V` z?iP`jVhK_w3!!{Dg4`f?9qZq9j^=LhY;lR~$Qv#MZlQ?IVnImCQpF;N7J9tie9s9y z4R!`>97sJHg%s=YO8k}OOZ8m;&XeJ!P;DQZZ$BZ?>XOFP*cXb2qUYqJh3+Yp&h%C} zJoPhMIw^EFNRT-=$UVCUoT8iLqo>xu@%ezR6Q|6x6J}-1>=ek|R~{7O&UcGa+g^1( zrO=)=w^E1crkWy{RncOwCd7@yRQIbqJ5GRPO{SD_8b@wkGb3-l1!%g$wl z1kPyEsB0Cetk-O@awxEv0=`@HVp3&=RqRuxO!a+dVY&X25E{+5an0(~;oYKv>bmR5 z_ch&R#%*zlS!a4$@6%b|Sy(3SNu9M*{@4=!r}^{u-+%t~+t0uLJD57u(CPFtJUaeDA(wg#Ka|RO~CzRG?>|N?G#io~2 z#I`lTF%&705&iD4rpj5^Lnp=_kqcV4rL1Z^(&3?^!D2K^~ z+O3NrZV0w#Wq97=LM{!ur?{}d1Hcn^V@V6Lqk343Q{CKS!gi0j%cCcUMJPsdKPo(8 zUzqMntq?24u^K^fSlb9m@x|C#sIS79AApj&w+)zaUA_Hi{x~+cW8&-fBVe<^jU~KG z05=SM9LeoR*l!MYN&Tqgx)hqvk{<&yE^hvqPs;9tNK<5Bw=R#|xKM#f5HJ zfsRqnvXLi|$`m0-r`jw-5K1#Ph=Kx}Bx5uMGcv{k8&|?uvmBoT=;@0c%-hM+rNf{O z3gD8~z#wq4p?Fy2)3#ChfVJhnI4U1A$hg7fvw`QKNC9aum``Doea!ZTv_UWu^`vEa3lM9QVs6&@DjJ*z6gATHu z;936+Lwf(@;?IcXb$!Q&?`;z_Q zKBL28zl_5K>CQeUcd(|dV`j!km^$|S4&+)EKI5{#3X86&v@MG3I86DG_Y9=Cl8bn3 zuoLrw5gC^EfFsZB92T8*9GuqngFaCcLr5d$jR)J4D~&E0V#k7B2cM`agwOcc8Uj_u zm>x>!ky1LHF$Nof&_NW-%}3-skdRu~&?|#7&vugn8;O+aMv+}th~MQOirPB9ykTv$ z1S$~fGUTzm6c0k>`~pJqxxlcc2t3gk zNSF%@BT~*la+0nPnKGnU3`TX)A#Ll@qN9*fbcN!pY=4M+)Z!ao8B&;$CXK!)Gsp2Y zh4{MXYDz17t;;Xvt$^%Lzq{R&g zow<1QjMhAmuz3j-)rDss%A&#EVKemzr;pY=EJmQ}i&B2zV1z4fyE!b%-#AS5YEB=m zd00Fe9i;0G6k1rtfg_7lIu1!C!p4QA&(Aun>l?-c?#Wa>&QWCOV`AuKQuTrsgP%pr zi!{#S1M2#VC+9Bt0McL4ps>iKq(2-(SA1h%z(xMKF-_-S)|QAQ7DrGA>`GI!9dKd) zR!C&c9&JPDi7m2*O9=c2Q`&@379miD32BanmUR&kCbFxdH(-!T>3H%{u`B%>^DIOL z+zb@jZkM1K8=^WW$@PUJ5hV+_26OZVcx3xDgGcv8J>bN3g@RoH^dpx^6(;KZrV51*?Nb?T+m_a&Bfs`leB9iytVDBC+23L z=*K^LD2zvB8+!HD$k(!%>!UD^*-X92)oF@{HOx}CndpL@X5D}%)KEo57dbHvM}CJD z)!Mi^N%3Kf9_4IlV71GDM~0o*Pkem?nDGe5)b|DbTdW(Ik_?}nJA)@}36UwsN_^EzL6KEu65;T-S8S)FxBW;Ncur8vHZH#O zrSQnAGJ}V*a^VZC5pn9$!bz3)L^xShJ}la1+dFxdR$f)6AR(7dwgDe;%H2yf=ZJ9V zj~h}9M>vWxP@9qSj87cbXi~JcEYZS_ zUs%H-GNqTYh>iL(jH)Tb*O!11;ba@*VKEom5b84cBOJ0y%Z1qE%yA0kC78&rWN+YM zkz>a}X+=1`VN|$qi|VP`P7mKxJIoA7ef#;Ru+-j`hmY6!s4P35%~Wf+htBJK7`#qB zE4q>2S=@T@h%fKyuKLpFBCHD+lq59T7n6YVm?le(4qh-|&fi|%^wn>)Qcq^+99G_a)&E5`9MIqi06uBb|}y?4MRMx}qIu@KR}$_fdh+=cTIrbi|_!B|eJdh)|wT zVzC5O>qZXbCF@p|m4yQ^3g%8q)<}q0QhK> zk8~bf;)`DyN_3Lt!(v;g%MXXXje94kN+7~X6^6!4!`jG8RUq^%!&X&-%(@~)>7iCW zx~Y{AO(iJ4j>!Nhl~5K=nLTv+=M}Eonj(6K&D0~CPMds0;^1X?u6Ic6 z!0#ha*1VEuN!25pPM>`A&?g@q^htEokT8n{(`Tf4ONQF__7if`4VI0GM z=o2R&7R5pb?537U2((2P-eRAU)2u+KD=pv4k%2a0q97h+&E}&tJ_dx6fsTaAN&$-% zs4MFguG^xR-l3#CvSmurPX${1KouV3I*uoenW8L0={P)jWJ|$e`jYTW7CTS}=lX6W zMYio7iXth3FNGdhL^8N#xKQU$2o=BWrNNC^_7Jq9-;CjlT8{7;RgBAnS-0>MVVBuH z-WuHyHK-5_IUO(I3}-l-_s4I4`Tond_st2h6a(4&Y}QOtiXYwPUFh+oyJw@ z52gnRp$sl$cA?_~8JN+e(|A z^O=ss9EC}CD)8kmg{kUS5sjkAep(Du5vQLWh9ZjCOGcWPEs?iC2(nEHSsARqyX1(NdDPDNUgdwd8iOy-T(?++7k)3 zg-i39o=o+TV5oH!kGKE&Utw{CVD*gTT?IlTx(;iW@RlX=)1qN&U5;lQa2Z5`(ZeHt zHZ^X1sY7Rach0A?uIUnpQK>VFE~-MuV;o1J3z1y*i=GzCm(5;>u%{E8uxg(X4+SQ} zt?Dq{SOmyMz|-O%jl(2+(-};<6Sat#I!rfa{Ibq|TI}9&m>NX(Cl2>4{gsid>M+G- z*0{e4i%!MLk<|(t+(M&1R_ha4x`kEw z!gOD1rE^|Ul9y_mS)@5q*q3d5ad1@tQ1|WwPgeF1x1Oi@;|cB4ZFzj`@5}c20s96~ z>X4gazd2aw1G_lk39Fr${GV2f*QSKeR4#Tq-v77n|MNfo?c2}4#@~EOn4h6-2`dkF zxUtBf)--uIT2Oo?1>fMoIR|fHF!2{BEx*5W6yb%&Bw*f5VGlvS$Q!GYZHZ~Yya~bw z9QhFJ#N2_2k9bc!(q`g~n3=zP=5L?RuV-Gyd>*dH8vXrkiN$@;2HtQK9#{idJB3f! zf1E18)Es`qNG%N2!dNW~*1~8l4A=6dZo(bhX;jDC%JQr%&&u*_{J%CXA2+^3Y{!<& z`};X1eaHQk@Cj-791VM3Bzf?D961l+ zC$^=D+tt&=ZM$h^!rXKM2T!!UIIaBaz*DqWu&|Z664Oe118?xeKiycd({`H5&Wwv` z=WV-b=Yd4i!LY&;Av7J#xPT{8%yg3c;E8r>rw4DH!V{&L)04ODrYD^mdYeD__kbso zbpGUjH-GZ!BJdYvVDLoWJI`!l^UN(ycp^#Xg%A0{6PYVK@lQ|NnK#~?oOjm8e2`Rc z^Z8rC6KQKcuVb4}o(ep%^e1CwJ~xBmiEx1>L}HkHW#?mNP;B#C zXd*KFJKFyfsl$p2E5pwpfBE+9pTB<({`b$nfFBNje}{h^VSfAJpTGa(+yD9J{}(bZ z&Jut4A8$X%+cUyvzyJR8ukio>{h#K~S^WJE-~Rm5-+%tA_;iYI`szu-UvVFjey1#a zl0+o`|MegL_V54t_WAy=@2EYrO0*0zQ6j$*^Oe}aw2Mt^3l;Q67C=ktPj6FrEy_Tr z(diUFsfShr-8N5lOD=|74jpKuGm^9jX_K7x-svad!NX8O{BSr&NNJ}ZlZ+;{uiYsg-&#E5`1t3b0TGe|HXetT4hHtkqW^V zv+!9o7{6iQfl4nf{KBXQuEDemQ*pHj`tR$yv>m z$jo%2VK*Ona%{wqz87kGwGr7=iB)?EwGtVgPB$u zhr04l)bC8`1^xNPfB)0l0@k>YHaVv&|3ocws>hk$LR#lMZ^1PRxgny#Ngk&voTzYy z#|hp-Yj&YEx{!51q>9$Fun#5cSm=U|h1Mp-r)V_`t-*yH>OyOAA(y(KPkmb`XfI?f zoD^^(08tL#N7k~CQ(Z{=5b@~e@%Ma#BTx8uT77V|iT+OSq16Y+mhf|0eQ;0-|4v$k zf+hU@Z6U2LiT6{x-5=PSrQUbt5a@sF2$@NuYFg zqZqPbp76#g?MA+9qZqQ$(ff^j)<&toM(N~6K5L_FV50+Fe|pVq=P&u5BT8;HdKPY@%)B^ zve1L9kc+T`&^st^!7J4N`JGRd@)gf~@9=}NNj_`J7i2yNy$4wvUYZB*p*8#<)VSEC z`)uC$HXFRY2L3(eD|}r6Usk~E(+64AgRF_qvOZ|-GI@rnGfbS}ldfD&KgjoSk;%mu zpQNPD*&Ck-;`2a!8i@O8wDtVX`@yuO`p*4g?iSNF$lH@5_>*GD^R%V|tm#Pw=aa1F zNgnJ;*7Bs^{z<<*w*;OPce!)&q-^&|p6W?!=}DgINx%J*Jk^s*l_#}wo@6agu2yhu zy*+7dL1}{NEj(Z>g9i*Q@IaaJCl?-{l+#Y16ky>2eH_#>l$L*TmGMc5F8qk!Lky%ITAfh)+TgK8Zp24IcQr$bmt@#P1-EGI*f0|C81oe8OKr#ryP$ zOAg-5wZkVRtx$R~2wxBUTaep=GL65BmK=OS|AtCCDABm4gYSr;4L%_;zREd9mHQg- z6Z%ch67Hnh*rcD%0;YXN^!2^F6qdGCF&=4be7(-}>g-<|c^79}Le+7B= zKfOJ`w&8OYkK!m)o}`Gg`ucj{I_xaOCa%OL29O@$tHmeqU7eq>JY?_i9{PP}iY5Rp zSqSvm5Q>=sF%;1Bi&HW84xf-caO-%YdhQJ#_(xn%&*Tz7Y5X28sb@C$nZgSc=Oik3 zrr?vPK6o?hh-nc4EWo`b5Me?*Z6KH=XTEg#;@MKf1x@CoU3CQkx}#=jR= z%rjg5%u3&o4AjcKo0Z)!S2EMeE`n

$Fd`g#iJwy9o>+VT7RvkWBD`CW{QTobd+vmbNL$EN0EQ}eN@xz(H7soz}iV~+mx zqfME|-U3P$EeG$|?4Z>jTsISSQxU?|xKKPjx9RfOo6^eBqr(S#W3Qr_#j(#oYf87R zBJpEPgP!{gv=(%G>@(1M5RgeE?KZeQPH~POy`0{i%zJxalXFPQ4S;TX=EX3Kc)*s!n~~ zbv7K<+Ib>RjqX#UyEUoXR;Bnc7DLZX`ll92TCKWmy^0@`zLy82VgJih$>T@Qr@8fM zx!mZvaoTzn?xV>MTC)PupEv2Za&_BU6+dR1e!>L%^XzAN#e!*c>1%#Wtaj=2+jgt+ zqx+d!Jz~?u*wnZ#fXqE^UF)`$Eq=`1X>|)okJXI4i+Ul4bw5+*x?PIa)Kr_HETu>W zWKv5jU>MRT!aMErwskOmOup6$g%ICx0(3soZKv1pV@{&un{PY3nIE&4a|>pzgdr79 zG|hmW3m|iT9Rh(bxj%2gtaUVO{gYLk`%XMJrJh@Om?|7S_nmldd91ZKd<8v?W&^Fr z;o6-$(W)Gfxf89_-JV-)ZnX}`#Az#bx97eJTa`nSorHCsh7%yY(iV5mQ{2USvHXc2 zOV9jR5QQMT5Eeg{sq$ml3w|t9#p$t(#gEYsj_Qd_esr6OOa$s4V&d?wwK;zD5EGd| z`tyY@>3LdE_|emt$Nte1j?-o72YM9n?2MJt^Q2UM z^bnI$fpkBO)porRUDJa$dO7ZMh($Q2=P6+DqkC@Jg$$R*t*Q~}Fx#-H{ipshFR?oo zR(~RJXj-!PF$d+>{HpQ%o?AoXPjkN> zJ#mk&xJRGc{6WvX1%zJAsW#?YXJg7eu_o-+*-$(u{oKuK4agXsyl^yF4oquo{Fq2- zMGa+je%wwjAam;N&bn(q7C+`r5P7knyH&TlR^9l~9X8Ks)eR)~pBl^U$-@6RS3Z4N z7eIQf#(QgT1hRDFDK|d`x$vVG*q+Z_6Z&q!GCen;6UVWjo4o!0(StU9w}uBjbeksY z>BhRmSv%H6&&@Sj=R@J2Q*AF6kV(7kzrx2m8Nq(q8-UEsp1v&nz)i&M%>vT>G$(FV z4`*?I-bB1_^zNG_Po0mR=lw?L+r&mYtbp_oQ_8|fG10qkjP08>v^xqH_2`G5n=bcF zmmQhK3F;*`#`eu;5AAY4G-bBZ#&H|SEV3?_4F5gnM|%IVf32BeGMS4xOwsf1&?`Um zVLdccY!4FAP;=_-I|9-@H?6d4b=UqQe#`^Y9wZL`Twd!~cZcSDty%$@q}HkxkU7?| zQE+S&Os^4s`=*svq<{=0;M#A3XcrO2q3*DeaO^#9cMq&*lJ#*4e?a=HWy$p1dpw;v zOk-N}_%YXhobm}~r$@-_r(HO3w@H_$g~bp)FvVqlOpLWZ2guyq_UPQT62gx;MC%@e zA@t`{`2*5pH4<70fu&A1^z27BZiaGd+Bo$YXcrHRcp)vQuv|#|cTcnt*Sg5vsS($H z9Sm+g(LNlli}0sjRntnVAjI6wKlK}@#8=FI`t3L%a~k(8jkL4puDv|m7|Q|TM}OYj zdcKy!3+s*CRzZm2m?U!F?4&i1$G|^+3~DBTqb0oiX40*B5Cbyt-rgS|lSHQfhtZn~ zyHFYtA!Di)8q%NlRoFFXxbEg@Z~qUF?s?kdFk|*A`rvgs_gyO?{FrFzG(Bvdv*%Vq zfXs8-Spz`kSTo}PlBkt=A++vscb>{IKjt>Ivxv}^Ik9Iy9@})!O^#FdAh6{L(rqSP z5(L_x=MPA>{8ZR&Co0d4%626YFw-b_`Y{hj>mmpd{rRLz?7s_P@ndPcyO}4OA4`Y) zScn+Wqal;{h{IWKNq#In^P~G&Eak-7OnHDG%Yuo{>3$|*0qL)%_=Qlj>>ocCEc0X8 zKYk1}(esqL_|Y9s`~c|=r#ygg)E!QF07!Q@4=`atW2}k~>OV~z0+2a*oM_|9!Yn?Q z+!2959^3SfNrgycqeCKJC(RLRH0Rt}1duuBjul3H>#^oZ1~MmhJIRp{rMZJ0*axI1 zHf=RPdOnTt_8K7=&dqK2(XK=K_|bEodvOu;@*2w>%EzC2 zHuH$@P}(O>r&IxCPHP7AT_CScI%vPouKhmzm}9ly2gpQaD-%e$6P0KR%UB4-^@E-p zxd@^2PxE9W5-%rmcQ=_LKYFZ2C8EasYBI$gSNrU_X_uRLwrNUj{Qy5ne?FxV0-Pt7 zI|vU*V`JVhNanqYrqt=vx!ko+haYpQtttSS{j_3$Pi8K;6$2o1cR=DY=T;1MENnuW zF58vEzaRh9Lo^PjK5&5&(SK@Wwi9R9P8`Und_s?r-TdhJP1%39YZ`nEYTNapr%uAk@bBcbmZ8sL&x|rv2o}_b?8IY{uF{4CpJ2x12UM{XvrQ( zk3Q8wLLVnKIxGyDnVZtS5+HMd?JFUexqL#8SpjI7{Y`V4&birjstrHpxj9bz1&}$L zc94*HF#5UR$0X2>`yv%#F6P+BoWb?oEu>_-o=91rH)XgcTNe#`;dSHXFnYiM5uknW`s*ZKmA|D4T?03*h=8BWK30qM{C{%fZN4&na1 zxp!*^#Kz7Yo%#Vi_aSQ+1&pTK^l58FVb_WRKPF3T{QyWWxzFFJ$+0ztUHdAiFF3K$ zz6v07IjtYS-R3kp3=GJmo_0}Cld!*2-vX-+)74D{R-)?Nl6b7Eb=2lhQX?8q)4msXkj)`FWxm=DDhL6j+NZdM$^$8vNa*CVaaXDLPG{hg)ErK+E zxm@3fjF-!)Lc}BbZu}M9_VL=eT=pJjPK?^}*8_29%dg|*B4$Erm(yGgHu$-W!tP8N zlPp4hE?dkEGILEX5Vc#teA#*A(}gJTZ7t-6?_p_! zDRuc1R;Xn?NMI9k?t|WGDhMX?$hJWUzO_u6dNi-z{rvU=M%on;hHCU237@`w`|iW_ z7eD{65C8SIhwFd&;q70qKYRE7+lTjG))Bk;3iN#Q;Y)0GS4X%37M3bt%FTYhDkciU z8wE`t)5U)O`J2x_M_c=hf9l^jjK@FR;3tITyEptB%yDU;Iq}c^C)b~njrKok@K3+_ z@WZ>e*I!)!`A>hSe}4Cu4wl`8vM)Zo|M{B_OM;sg zSUl&qFOb5lV|}~bRpsar?RHgBcJSy*ss1Y0hsE*cIM-6^8f#@;r@5}N#%fbIc=O5i z>xZ8{d^suT`rrTKe^L$jir!C*Qc}-Xv83I4&x&e(`;tyKSLMM)h8|hrI8d&ND4GxZ{qcF@bM4EB>se>jDI7w zaM|A6@ooJL9d!Jyw1B(wL`&1`$MJFqTCTJ6a=a{fxI_oLDvLBC?iKZOH@Es%;iYg= zxcaqt0XM=+;qVbJ^HBc^yxgworI^CY@v`87hzBYc7hVqMBGSK$mw_MF(=>9Z--VC4 z?<<;s9=IphYiHd>8&7MWob6Yv{bs%Px_w^0_GPVHD~G|}kmHIS{Qb4h^HFQwq<_xK z)4C?>ep(mtU{^OAJYaubt!qe_FJITPj*328c)JGu@_BY#C({nyY$m7Dpis#inCI70mJ>Nf! zphLWQ+CQvU+iN?m*H(AS!rD$(a8?q!xjsHdm-9Rp?;iXde!RK9=e*eKJKo%0 z4FNpvsQq!hzLIrbzP@EWgkUUU#ePRoq>rty=&|lB)<97>v7y*xz3i zw;uV@yjyB*k8(=MA#-0>cTKIc&h-B?8kpkw6P^w`YW{EW@3jm!RF;?1z=9V-0;ud$ zG*EZ*$Ib_9-a`k6;^W2NN-nA2(EWfFUh1Fc@>-oGfd3!yMe5o1nOVzr!+-E{d@cAX z_3#Qm`XvG1ALW;Ylff&Cu8QYx;07bd6F+F>?THo$2;aWT*Yep=5MREwWi1tGJ?;Xc z(Lc&7$KIEmQhPsXf#r_>-drbteB^sxCvoNDQ48JYYgufVZCYq@N=w_d)+WlhN1=d1Ew6JGLB z{x|ds=hu**ysNDGakN4(?#cx zG(GK3PwT|*xGAgd*0S8NRKI+k%escVQhpNRnLf^+YJJ6j>%OWrZ?2WUJ?-N(BtBc~ z>F#R3A)D>ive}4ic==kFwGEx45>v>>c@b~gTwn3zrqgLKeOex&UfauCi&P_g;Kj?E z%Rxjq4KoL6Lcf^>Z7vPq((i$vZ%98B>xO6U;RdMd|dW4i9aoyu%b<&Z?_hVh6n!T%U+gw z$ylZTAJLV!bjYC-!DPlgax-m^nlbT$SEE`|vXixlGdy=MpYbw9*a`AfZB((9EwLU< z4@)u|ajbtp_E1mfMhvxesf|5<6yO)jdx^)Ea z)&kD(`TzE1PsNtd)>m@D6ZunMeXPbe}==-Og zB@|}!F1%aIGs9p1@+B@y;(nl>FT{Jg`33tqOB-&HS`x%Lh_aX@T!WfLi_N9r&z5}J zO`_G(h(^8|wO-;}-mOKL5sUrerOl<_1;X@QORInX(z%2wK66=>cz31qu|xoAHM$a9hE1`b4!8ZC0Mm; zU4H-YukXHnxc>7`4}bjm!;e3_EywO3|Mu{9@hN_}I7P<^dHeH^KVFXi?*=Dnw=UoB z;&z^{xGtnw#WRPK_2T+pzJB}t?;hU%_dkE}PZ!t!`t|$2{^9L+?{Hq$&xda>aY{bG zIiE34R`ATE{p$V0*B{=!pB_@mMlDE!fsIo>kcM;f-`>Cb_UCUNx?Q#sjN{OW^U@*j_1MC~4;Ml4iMW!m0B4DEgQ@}=!#0o~?sS0Ne7^yCTjR=uwH}ZM{ zHY#DSVH6^9e9?tV+>t1aby!l;aB6NcmsGu&(EM zqu{n^@ebz84MG9B2+rT}^_Gnc( z7d#|d?|xswr!mH;J{_iJ);~~6I zTSIuEth(EckmL0joN29%pe@lAg(|d{yesW?qmbiz448?=AY07+jT!^-?FMZSwdDQ? z8A|*SnW_Dtj)ZVU)j#dgd1OJX=R#7J`YZJ^$K?vu+NkRwTu~1~dww2?S~2cWM*}u0 zwya=ek!fuNo@#%Yvg8*M&$KowVo2s9ezighW86`qB48r`IAEh*%o>L9oVWtby7PF1 zt%4-u+mU)2u#pcOu#syKu<>q0z(yQ$z(xf48b+#m(gAfqO4o>XqwGY$j$RvS$?lIp zKe`i6$py)Cex^8= zXq;RRt%Jf^+7IgW3U(M7o9lIufT8(O$4YbI8q}Q0&er^nmR~3-gQcp5ebnD51~W>f zu3;N@3dLtC@i^L9C!sb?rI@YTp)lxtK=<0;`%x+|zO}4(M!(d0xl@E^vU;^%(t@=P zBKOs<7;mnFZ4-|;TRuhF(7km&k0k%+Yb!-P^+67d&J2Ju^4F)2`vz>(xC_|Gbqg4m zyuKYZ&(`gT@DIE&#;A@I?Z~mp{wPfo`%%S#QqBRkPdN%0t=o~MskIRy7JJUOBi$*!#c`5&!9S~g+aFVApg+kuz(z*TdJKwr z1V5lK5+U|EE~PoNACRu_hlkqp8+Ei|T}BI3+nx<6>bJ{)mrO zyTd54y&jh&IPDQ(jT)Dl=5B{gGx0~Eyj({;6Q%wrSf_6>C2P)*kj@s#Pufe$)VaS= zmVdq8(?~1|nB-y-l`;I}+E8JG7gwpOloR=O)L>kXL5&9YCwmFsj#7NF>*yDY{%q@2Uy zW#h6P6U_6A)~!84a}ggW{VMfU#yFPSd_5PU!Zj|zu4-4OTHm5bC5&NnkI3|@)T;Hk z7@*bPQr&0Wj;+l7#Wk=o?nuL1e@nu6(hx@Zw5gUoTxWqoziGpxUfRgrjWHzWR9&@{ zPl1ife9yn73a9u`$?_Gs@w{D`{>3MGoUrozp0}%7ZIv_|u#sQ5h8-+35EqrYT2*>W z*$mjeYUo6NqcT#!HfRmgzvf4wSkX8>3hmo*6oFWcK`ES+v#HcJGTT?}AbZmq{twY4 z_qk{nvEA)tGeQ6vm1x%EA{WPAGQW|kxNb*X8sUJ%Ud;vhS$F{j+7BEDYDccE=E92& zd2dxIPtg?*@QJULa*%Yu3kaGEFOO;r*oNjps;t|MvRZ3gVKVnzMs9Gl8#SX=Fluo~ zjz!Rxe1PDoyB79Wk#Xz(5U_GCTyUwEQEPBytgpYNG=J_dmz4N8MgJ=DFuolX3<5Tu zFbdeH3L7x23fbRMY%54{eQ8N@{3-_gEEjkEnnr zTEi|NykL*eTquE|F|bGE8RR5LF2<{7x<_60Tx5@6do8~pT9{s_Z>_mdAlqY{CDULI zlWv8ZN&Ftk%ydtzg3cf{-h@*sF>8JtE#VX&Zk#Qyg;BHU`JUH(p8cUtkGd((+i_$@ zLHdBnKV2L`@?_QW5)F}XE}T*UP3xsDnec*mB^;bLcn&Ii(mhqWr0e2c)g8c%ELosx zhvhm5Hh8vDA-cx{B>9x$QAxYSPK|r`c+fcQDto?A`ecJb3lP62GR-&z z(dv&-h@?rXIC;-ue{LrmJdAkM1YFM#F;=v}8yf0w&;N35WGLqOz?vgnqlzP`9pb(E z!&RQV1Qb*Sj`f^j&+3l{r&FfJnq&MCvF>)h<4eU+J8aFu3nl=y!?);m8~cGx+U+*z zr5qrM18Vbl+)<-%jVt6`;g90~!XNC<{cX?-r<_4w5vSEJfdbw2qnD&j_epGs=vCp)E^#;gu(FD4tC&n#4hUFQHX6tSCpLd zda-A_KZKC%k5CP@1F3E|s;I@dd(kt+?z~pvM~3Dyinp)Z@lb$pfQvbK6Ax)gmd6Bdx&qND>s2^N@<~p){3IoM=eV$Y z`4@mlkHS+V-TpvmRLZQpG9Vcp6OVC^i&=BQG?#KV9@mTuqL}b_>UNFi4Vj;hGh8GZIqs0v&Umz}K?+5W9agIuos>0jr zaao3V1hx^;5b+>6KVESVkHAtO9|7fIB@f{`kTQo^=SK$jTxT<2gAr1_&ZX@F>ytfu5>y|+sal&%By5=tY*6R@jyy`Mq=3bmSm%x zAMx$EZxq$t=+AlpHFw<~{8ascK8*{bbi0$z8_yGpZy-6!woW3JZ0m$Ndyn?Et>fYI z9%0YcULve$FA>Dl4wNR(Celwb1CNQw?o)0$e{0_fGd8Y@apeB8naPJpXBCgYqAz|` zB6`}ih(gxgNVuMCmUwlId(tqnzY>8HhE+haH=?)c1zs$=!rZC#lBcA0gb4~)xVzoX z`ofX7H9W?sCB5REWW1#ef~Uwj4o|Jk=^(!JoA@L_+Nm{8_ldPZj4LWWC+*R@kfYVwnaDndBi%bGk3##FAeKQxzY=QegaHmdf)% z#Ia({1NE}g@TQ*lJ=d1*THK+s z)1V&dtYU80{Z=NPJRjt}8>cuJk{=-5>rO@zkeC1jZO9wJC(Q^g(c^NUGU>mYnw z>)_(o{?bfyfw75(5Ryb|gjU2IP=$l!vpM6Uk9LHN*+xc`jQJ^tMso%US}&U!GAnbj zZg6Jczzgj*Xtxs9)^tES@g`v7A++b`1MA;-{df%{$;9K1mqDW)Pi^G5Bwd93M;M-b z$G~K}0j8V*V9L8I4^YaJWyMT+5*V+{<^1;Iv9v=#$aa{ef({7v8&7DiabVjB?UdIB zOtGQBu$Jby@YA4i+NmA|Fy&luyJ0k6_lK=uyt4d!&Se)!+bdh7JP|Iz@ht4~Zy7^z zg20qF22A`Om~3v0A-^Q;#tXCSam%5%UK`)a76eSWjKFk90h69wyPNkL537>)nB(HG z2t3zItZ5SjrZ{O}igf{|+)d`9*k9Tyf0}lxLjX)MMZoYp=Q@ygMfWI^xi&IKl8>V` zj`#Z3d&K>b-;$P)vQ$OdryNFq8@vv;i~1wYP`rsx-A*<##+6P2Ofmzo@dV*&ZREA3 zK210<83KV*qFVA^rQLYkecc}iIM;!dPC19^DoGD2j7vcJjQDPp7+X_I#-?%K4| z5XwFtK3>xmakM(qxQ{d!_E+Old^PX$DpF>c;&%zPAJu?kF0$9rPI_&H=}T52)HGvG zI2}0Y6MvXlH9z>I@W(Uj!V7Y2?m5z*_+%ASNc_P{G;XE(CQq!w201RdZfPe(TU8Ab z7C|yatal`2CyWD}vISW-X&0bB)qkm!hO~{~6~aT9V=%DRMtZWwy(7|B-zqi$X;S_V zV6veAQ)~|~EPFWys*7RLw^*Cvhkz;OgbP4%+@y7==1O_c((X+={x9c8-h}9Y5PIPc z`BZyOXqjQE{mGnVy9TECXJE3a0+X+eJ79yJ3EI(|kwudyV)oHlt-Lm!Bl6YqtfIOY zr^ub!U*t~V6uX7{ldX@n$=(hO%Flg6-_JQ$l~=77qq*i+1tYURoF~~Il3CgGkmTYr8tMGv4$UzToYKZq?^CAFi*aQ;q@C=_zz9l>b)Yav zwkUBZ_XvSkvJ?V&+N7y!AUk?hI*<&Ez$V!TixExNsb_|P3MTPAki*X0n-qsIjxO62dxcXzHmiAVe%%dz>*^{tH^Fv zkJ1az`0@=SkSzBIR2hcio$Uy05gky9HRu4FjACrc{*tmSCmLs4j)5sxFiebEhvNkZ z7LXknm}+sM2q`ZMnBuR1*{;I7=@|<_yA2w5yg+60n4T%UooAY(AX$`fLemEIq{S17 zzY_kO|4Xu(YFsiuf&*edNZpjoN;JRtQ00Rq?P9JIjn~sBZin|c$3>6Nb>I~eU!#IX z#+<-Pl-CQ4g625}JC}4tSdi{K+&Ee93zlQuo={HRjpU&v-Se&Ov515l^HZD*>`!&U zkWN+a0hsDt15qaL-mI-{sc#`GEiF z91*aW{Sg7KJBsT~Is|1f|7m*jqlpAro${!ApN^a?x}vRNMRN9BH04p#CoOj;Q?f=9%*daT)! z+tIefJ1Z|sdrpdzaiIJ+#23{Qh!`h+RNo#l$HI82zA-RDz()8sa74_S@p<(Sy!Wa zM8;8Ip)fzK5;MZz7C#`aRBI!VN_6U4VT_BQlej;sW&_SQ+vYI6`Wz8g>i(<`R_>SA zraH`3Nm+c7%KnBSo{F9^|K*)Wq?%-lGGz#V=<%XI0zB0p>6bbmJOl3j=rHljwIEy( z&+qEpdg4W0-XVxSHh7 zDr=zik}9qBlIj*`fjKL75SVRbh}q(?RboN3LExt6q8NXiILaRchUXyhLj0-vBmPwM z;`megGvCGhk~{+M42h&ME;&=Wk51%i=D2uWG#73U-Ff6f>0FY7r8}NHs*P_gZ=h93 zS0igy@&Px6co^E2d`ehZWj900_M9;`=bjgd3xA}k=efj#E1pftiez9Otd-pnkEZtn z%{I>r;fdn0SmwlIPw-C9&$P?QlI@jraq&N@ph*WS5h>}Jhv#%JR9K|w3MDM>3Zy#m zXY#kC2QXvV$SUOBV<`5wqR6BpqD~uEgu~^z#0BoPaeR{x@p6)EmRPEE&dG5SPbB-p z`$4*k=nrIRexz%NUbyl^&%`nb_rx-3FDqFl_y*y1KEH&oiPmr%hp>5eZK zn&yJ&o$@pJO!5WdjhCH}d?xWBtPJ8MM5=Af&#@$!MkEW=Q%pH$TzAqnC}k#DfGh%? z-^yoFe>6)RY~(^QVG20qz7aZ@=Y!}R;|dYo->RM}W2mkRFw-B^9;6GQ!Ft?^D#|&# zrU}+b``(eHq_37qOZ^dQkTgj~y7!z?40&cqL6vQeye!30ph2YnqbjaQR^e3oTT=G4 zN66WER*7cNnWieX?8@~-i*Nv6%l?R<(jCQ3t2-3WlVn!3E&1}fp~Rc8z?+^Cl0<8c zzh`%ekVx7f{@&jzSD$aso*#9)lV>A!O1Hn?;E9xtGEdxy+vM3B@oYjq#bXI?(!Gya zH1okwAROabZ;<6);$4so%m_&vSo#!?L}v`L#xv5S-Z8;IVV`h?TIHF+aw9x5taNt5 zSw%0HcZC-sNld%ATs1D{-Mo*`l4ZX~I*@+O%5*OfjjsC=@m^;EGquhP5&pW9&zS4- zT!MMoEa4;`*R{MWLQ^^-8j1GQCARaboSCZd}2T;le#kDjaBdtOeU zHLX=O0Le(WguR!rx}^Ivv8F-0SZG03j&ZPWhf)@j?_metOMLI{Pq{Y~Z>M-~j*Cbm z++!e09)>z-+CV;ae~u}y94GCi>u%xob9^=-MUvOB^hwS^ywY9EYXrJ$*&+8=f>`1O zmz?MTQblxPXwkr6rQbm6yQ(wi_7wAn#8Q4Ib#EjGsCxvxdVnalxw48 zlKMmERDaZi5)EO>RezW)MMD@j<1VWg+&t$a56SUX;aj2z0{2xm&+FCQ$hXpGD(W!r9@;6tyF#)=liVmNzaVhwtyR924G)-d8VDQq znIYFmbXqB>!T~k%@_Z2DpE?-xQ|=)!#jjNebLzyvFmNR9i5SSeM9lX5NVC@b5dZT0 zqDkruqE)2606{9p1eo6Y1cqZM=S+yO=1f?$OmKsZ&7EbSye15+L@FvZ&f^SzIfXgtFwlfP65v-S<+f8Mo_c>1Rq0C^dVGt;$S^|7vKQ=^L*4>TS*&bcGMUU zs$oPF=3HPp8l!@-)z0z|Y%*;lWco7e{1#B+3Q^SKk{qOQ3IB6{dSjTdQq^8$E@#gV z-l_iJ#ln3__9 zsPavkOD#CRC9*2%ubu->I>ic{wmvF}Dz^Z^QSS@@)0^$U2;9uMxMm3L@Bpiw-gB*R ze(5t@d9pVVI4t=d>zd?eZg`zv%p1}d>U}HC50O=CBOXb(CmzY)T1TuPDz~$aNYtFp zKAR-|Oh~Wz3tK5(Ovps~0*T(`<>A~9@_=;SDATJs!zYCU%y6P-9A^HOfHRG2-4D}} z=oyodcx)NcHD{a&8UxWxd&#gl=Q2jRKh?oNim;rB0YU5K$Vg8f#-+dk7nf+a6!hc= z7!{;%L4BFGL(vcUsDPR0pj=7j;^>Qp5b%Y21Uucel`oWZRRTxu2g-|RlARQft&1l2 zgPYOwga76IL5Pj+6gEzJJcmItA>mEBKZqKU+*B&I)&>HF1JcU1m+(%vqXVz&(I$WR(~W%CX66(oqYlTH7+&^t+xtyt3RAi2_t|*{UIs~FI9v%zAaNr!gvG9 zxF=Xc>&1a?nBp>^KJ#pHjWYJAs8lioA;RVdm?%UCIQeoNs6D28Vm@=um5(Es-^?bR zPX0?^${nt>JKZUS=E(*?b$P9q{3F?)%e|U(h1pE<3)qv4MD&%;IVCD2pCZ0UU#N8K zq$}8g{4PW-Nmjv4?D-*(yFcZtkjEETb$HwKErrey)V7=`m{GqdJz3Atf3*uVR5O2tAv?EI* z*H*~@f>}o-G%9_#g(G=t1Ccfnos?$Vota|^zH*Ny~#ids%rBgFzD?^ zV5&m^%=Zx@zvNh|{YzFM%}cTX<`UVKkZ8PKO89BdaXBQeC|98Sqn_!~{!)r7?-?SB zBzsrsgrqBO3XhA^)%{sF#mlZc8LNu!BdX#9_{<_u4Ce;ahbWs!WN!pDVEm{amtQgn=~N_I<} zV(!#BNVrmenA^1<3?kY7^jG*>JR-~ct$_Z_2L>cufuoD_cKgbZ%{IK#%7DY7>&*rAc*kt&SV)w}s!GIe3#SX)^;Q|2oD zEn_bU?NJ>x3PP*)cD+;~*@vTG9*bWnX$>_>=LiWd=fW6zLx#C1zoIJy1R)W zkUf#-Q$*vqVRg?`*ma)$Dz%$upLdcZ7n5t`y+kX{a}H%>-Xg|Wy-!?E5laTa8tZRy zIpq1k@^2a^Mk((j(r3Ij1Q@LsVM=(Z%Q0yeVL!#X)KJ`l z#KqhX0?4%v*9YNS-;GF^x~EHB$o|Ou7jGvgN%m9FB3nJ?4V|OPg~~m`O(*@0s5$X$ zZakd@C|5j;)C|e(Xq=MGNOO?=s@#4_yJW=aPUc#bJ&_Vyo*&_uS}!5xDXWk}de9%LmE@~?*A^xz0j*BoZtNw#ci|pR zDO~YbxB8=KO`eY`4Vh;eQ=0BF%JhoHQ6){|_>S}JlTt1IQsw#G&T%c}CP_JmsB4c) zII#LFp&@Zv!jE98nM5R*Y9;|YNxp|&`D_s?sd4LZu^bnllG`btjvd!qB)}Zojmqx+ zh~?CJ?^O!~=4?A5rc$3v;x?16Hgam{Pwx)`Qw=Ljs(6_LFXRhJE+Ha8vMr_u$yfE1 zsryrIGt!3j86*&$>2d`o{wh}{X$@^!ya`W?bOWv^@e=Z=#AAsJP%JSf>5cwOYos}N z&cqNT{UH|Xo+gJVc?p$(?XN&Wm(0%<>Nz_n9g{gupxkr(;>p*lL|O7v%63b)Cpz0W z#enZ`txuyaNCv^AFCKgugFQ#eS{b$y9E^~lXfvM>V11M z#C&g6+Ky-gkyi2c59UmuW$qD^j{az;x=g@S`vlh*QElt~ zXeV15FvW#azD{wkv{UW_?RF^x15?fFDuOmP&zkot3sD%dBOcpY>T)^HGs`o(l%;#1*GJ z^>Z!{SXb)VzT`sVOnBz%5uS0ShR#lZ(vN_l+~=I( zVS=IL7$*IwT*t{Lfw6TtMkUedoc8QSCgG`9T`Vo2bg3x-%gd zdZ&=+d(~2|u#D7UX~*JXe&iaZ{6{6M@~6Nwl+#5!#pcmYHDQ49|1=l*KPsFi^##6F z9cy5+KNDT77(@D#{sxR>^Oy^6?9{DjXa0;zoPJ{3nTHW(t}_jn6z&O)l8l7e(end+ zNe7$`ovl*4lMX1=nYoM=iLLoz){|U9bfRde!bLR~%$Rx3aqp+jgagC(0u=_$OL(|I z>mY0?`3AXjI_F6DI_E^;ZOl)3sSu>>J_w!C&wF0HWx*rO< zEO~qBABmSz2lJk(+@PclM4znxLNuIeOjlN0+OL4genmDh+%ER0a;B1A$obLvC5K3I z4(T(J@9SCLq_ukHM=(lF=9wX)L%KnQMG9AS7;+sPYWHVZxpIhvXMpOj7Mx?)FOGqN z8(8h|SO`W{&xDZ-pgC7H5ViANh8J7sx7>N6zk2jQ{mI77I?%kc9SXJPN6@Fn;A`y> zKJesgkcRui#q2RST$+pOA>)mbJ+?w-jZ?xRg#!xuYLAe^G-t$9?HdJYg)7|Mq8Cz! z-JkM5>PZ3jM|``+zzJ?6>lOaMzRVob4c&u zhB6Ka&dd2#`M>1Zgf66?31cxAb?z^3d?ha-ILdU2BQ|&&u>uv`Ya=p05a$Jlu8{aB!j!0*s!JX$f0T$9XNhAzz+Qf+D5B|utSG^a{`CF~ z?esQpMf>O+mGY8%PFQ&Qllc~7Ztf*Iv2cn{$^9vAt}KGybK>QbCX4Z^KiEc|X)1h3 zE{5@nzf}0W=3LRgTAT9UFute`B$YZ9CsWls(+>-5gEp`MXl;nzq65c0Fc)seoHOPo z;f3;R!YQS4M1KU83on>=^)0@4;R+rr8Ydn}V_^E%+PE4GvkrmCpRyw;#gmvgpmc}k zj0s+IL5<4w62)y?5k{uEu1><9m9j_@c>gU0EHry7YIx>_kgKRIWRP&po7Xk68=z5lNS?3vGJ|_ z_K0DojSYE{3{>$`@{hbn@Lk~#(NQo=OL;C!bRD=-0wzmPK}UWW<5v{s27xxesE?IpZ3=T~W;!YRDd-|}&eL9ny% zOw6ZnML?He$dj5gHdT*d|0UtEx~H+Oxj%v+wGIO8a?XS^c)b);79AjWCawq%lm0;n zuI@Zk1KE(tKaxz1^7mItxGi;maJz|L;Q}&FT{DFFskRp|5+c?( z0H%8DWVBkh;`LR@QuU;__z+1ehN&JXRv+7z7(#Icel5J`l#|Emk;iDHFV6xPi zresaf1~~AYT<;a>tdfS7{gIa-yda&54{%~p1`H?TKb&$_4Tp>E<{Xwpg?vKhf68=!t z{H^_dm22ersrE5DzCq*o<27g8E{Ow7ukryA&M*5eRyg$syO+MeHLWvP;&ZOIo)byF zQD{kA)m4%EL5PEF`e>56H^C)FzI;dg{ znxFX)r$hXpN?znS$22Efc!^Eg-x8p6T+9(#uWQSZq-6g>xzybsiS!!7_5-TwDh7kl zbI*_XPW4Bfr@$W)KMGfl3lek&*^uZD^Q7KdEem(znRWz4ug3tU{0d+guhmYu9<x1V=t?GQ}SXcS2k(dDXtF~DoBoD{zp6I0S)u6)&@Uye~P03fFi1Kxm5&{ zoxe_Ho_&-u3`F^@>nQQ9-p~Rj+cmHa+8}sA^FyT*4)%J_n)wkhkn=;$3tmDyyk2Uj zd?w7^irK+Mpq$5Y8|0k_Og2VfOghJfw`+d5XM_Wc;rf;x*4aYu*4i-ph+aT_oL?wc zzNfMaB(EbeL-CWi4HWY^N|brdx_@b>dk~o76o7FtB>u{*z zw1-h8LG}501xvM`fFbCpKj}>Mf|ht}x#%@#2FW=iS)?2>+);@?-Z0YHB6}uv4Zc-9 zU!0dHIk^r3+%=a9wpTmpBvoZ1<=rZ|m$E!C=^D&MZ^Hni@N|w#8AHv5@{UOxm^{*^ z0C$nS2_ZtUTa2rE3ba!mA28L{1ZKWQ?o!(8n2Y%u6e+sL3YRiE-^vC6Ofm0BqRP>s zooX8blmD%%fu@WJOmXnQl#f`})6{E$srE525pYy)6zWL;#tDqbX*Y{Ntl zC^i{^T6J}S$%g?+KFYJ!K^VOFmE-CeSGh*@x@p=nfbjrf z%&&5Ja?ZGqjC&M;w=?-x?Aaq;}+sC*5-^c+cU98n?0@a}4ae>JL6C zy2twE{uFNpu@HojV<2hgoy?m)o(pM^!YRDd{i)U!<67o|Gx=K_{GwAFm|8C-Dl`}D zIbMf+Met6=WC0_ZF7ZO{dX9k=*!zp9tZ~a|ss2p6n7+K16vh#q)^sX;3 z?ERAEkEISfMeZYqRIJg1&h$}?SgRC#8|N%H(E zh&0XuXp!7b8B)_OQx;C~0IR>cX>yFx2nADZ8ze{Ne*hzLSl=qQigtK4vmG|t7#ACW z{FkNgr~GoWkq=R!YME~ZOtm&p;;AN(bHO2+d2H{a#MekMHlA@-3RkEV zqFr=$&5!VQ?Hi%1>Tg45-=VYT7?`;P!`dlXfTN{5w4PSXxsYolUQ&5fvA=`~5@Zv& z$AzK$a^p>;dO=IP7!^@CMfC9)Fqou2B13iO!45J`l}KmIP&sEz1;QzUoz{k`rg4d7 zQhx|j?oYKqmPOOQ+)L9&$erD+FQit<4o7I2?s#&c(g)5MC&`nfIY`fA6`4;$NG}>@ z&JX!C=T}b;i02@S`dge?*&i%hI6$^d{2}q{{w0S<_b*{{x);bH5+5gvRQf8{zWPJ8 z5+BEMqkSVgKFY(^sWaIh-#z&GffgPE13(4TK57Xm*>YNnluFA>wJ`pC210tBO6L387Ga` zyGFtbZrJ2kgb#_oR9=zrR|h!pM=YoI10oU)ks;;zsa88o!#Xi+QZ^afQIgRsSs`(X zcrPA76tepxL`my#>=Bon`4DIpKcHHvaYev|_5&GH`&-5H6VHV63#W+VqGtldgSCS9T8cx@YevJ579j>_qfYr|0@I}(O(-6>_j*ZeS53C|ctwKmKGdG@O; zMAF7ES_W;98zkPztuH@f9iybbGBjv@7*RAolwE)8GlTNC@vU-4u)--8yIz+R{Z+1! z#>E9BTwy8=I_09pfV#$2>5_Q|a1d;}#w4iwoYxIJZY5x@$H1Ec5(Lv5pa>wA88&i= z=+ChWut}dI4y)*y`kmTKh(mPB(J~CKo$DajS?eVMMD0-SwQtVJB%Mh)#=z`LtGnP(542E7bHJwGQiQ29(PEzs> zvIBJg!cI57)!PV+VR?v?Z#uZgNSkY;)N|4SV)4ee_qszja*~kl^_B}T<=_L;y${U3 z_qr-Xb2&F9Gi4i>3PBnd{=u(xLMLE;n~uOv6PCp^TM^i zrFe|`!vLebM8?#dQFS#x=eXm*uS~XqCAcCM)ID-bL#oQnr9FykY0gF z%ikiOigx$xaN?Qp9L*U!Yn}zN2sXY&8c=`c+1&c31Nf=N#XuxFs7Dxc4CGV8^j_8x z53_8|gy)Fo@RFK%7_MWVbNFuZd&*^)4&bN4GxpQ?7JH83hOynqK8}-4@6S*oRDS!4 z+%n&Q>4*;M;km>qaixKKu;-X3GR>v?QQ1p=13a4YDOK*5=!&}{c{VRo=6%FmR9gg? z@(sol$gy79iC+PueBc@fz*K_?7=dZo4wrE3FXPH@4@~isWkpI}Qf3R|z8*cuaR~%9 zO!o|9=$-+l*lA!4onydqVm~mos2(UV#TP@)l6`0=8V9ydn*cR`E2z^mY<3-EY8jztxl8X|n`I z^m(qWG6@9J+iZL*9S0apF~3EijPr{rP5Casl!E|Fd8xpZmkLZVJHQC<)?5^WMmyER zL)eu)7MSj2VCJVB{gnUUv9ifv5|rqXEJN)~aA2pcr%+#Amd1gvf7VJ(wImXr7!6^HRaRnxuG%)$BfyvhaO!54jK*i+( z)13@VwG-H1f?*R^=;zvB*|SW-viTh&&=rNm_$xZ*t};hxAD;gnRKq#^p#`y{|bR~&rBn*rnY z&be^7l6G;?ryjt!7jJ=coWOWSQpx{31n_%0_>d zpUE2Y+VDr^Ip+lh(aQFYxn8m#lE+qAMD>SmFWSZTBp%_qB;eln z0_ktMqbkQq^TXk&xs-D;*KtxEC0wbhlYl#vf%9AY=&>juA*h{frDb`LURLieiN@>E z`|OYO3eg`1O5qeEl)p6}C!Z<(U{w284W<((P_ivKPU(-QooxERlve~yc3WTs55{^c zcPZCKNV#M^EPbNq%7w~3ue_(E7d#!pX}u|>xsX1X=YtTwmJ=lcVTk?dTRzoq$=CYp1moSSIUZ*~&GVp|o~?3ABrXTFQHk-1Aq#U$0_ zT*zkQ%M7G5IFt2HTXdnKTq9M8GdkhVU)5?X)J)*>=_z>7jKSX8vO4dVCNuNkX zjY!@l)jaLqv{T*=uY*}Wz(OV)3Z*)Ae#-@(e26IS^w*YWHgiXS>Fs%7irojM+(=3@ z>n&&2p&DSoP(X5jokveQ)c^w~Ukoq~Quc@WD(RUW_j=)zq7C?Do*BgAj4wfvRLx9q zApaKaKw!=fkvh*7*{dEGRY>%V=f(ZWM~}6WWVaj_>y7#&@Jsy_Rpz%`)1oWVg>;T6 zBbWUVrXaf`ameY1t*WLv=Om6v2B|A0=Z7UyHY36wB#V+AC7Bgdi_Q_6xaWe}o$JNh zs5_ah^tZ_T`nIH>z%$y1=SLu!+EpM_ev1m5X90I(`h?LIETi*socD+;Iq9WJ)@TgB zi$dUna>!9G^$s*J)$;&Gz;~>TTTnI`u6^AV#LMS>iG;3LQsY^z39G5vL&7J@~!j_7!G1wj9Vg7$TUS& z>8Asx`l6LRn0FZhq3#*Hx+vZ`E;*itNx#IMB3nJefof3$(;Wq-_Bk#vTtn-*Q1*?e zqJ)viw*gC@jrC9GgW1V`3XF`u90Qv|;2tK4a-Z!8IthBA_j0DgvLw+w=T(_1c}|tDOB*dP`5>_rQ0YD9hy66^l%QtWBY;U} z!0@kg35-V=a}0z`jf+3oFpTy2Z6$go3^S(MRq%PXqb``fC5S5N1)EIrD~LexNWc`s zjKojoXN=2@EF55uNEr^-n0OB4f+aZnBMl?Z5fqeq9);T!>w?=)F%G~W@*INz&)m0q z6D09mrC9R}qFbe188@B$0eC}UvN0|kOyeToC%-2!j{vd!wh~Dbh6^q6SLF)Sj^m;J zte;~M#JHYgAp0bL;rUhZCPFJxAH*4@d~BQnNH8%*J*_Ah>XBfWWO8kUU!^?}*P?Qu zaWJdqRArS5FGPi>y{_DsX+H&qM3n156v+KJxE=~FP38NQn^Sz8Lec5-N1K+-4VY@} z0#p5BPPF74U>FKx9YjhB_fUP>s&GZi-U+)`{Y2Qk-c*6v^ZICxTd&t7tSXiY26qxn zZ#t4$z)hX)5P~%>Uc->vp;FaxEtq&y9XEZ8{W)fvaJr@)gc6sCnXwL> ze4>qVow%Ly2iD9N&5i?3X-+- zElwc8^p+&-+lAy zFAv}R^{1cz_vQ8d;q~tI`7=8D?EbS?1l7IaHN7_^jU8T{ZeG1UUVQS&#ZMo;e*fV= W-#>hJ!CJ6gT>Qg7y!qqj7ylRT7(15$ literal 0 HcmV?d00001 diff --git a/vendor/Kogger-Protocol/README.md b/vendor/Kogger-Protocol/README.md new file mode 100644 index 0000000..6db5544 --- /dev/null +++ b/vendor/Kogger-Protocol/README.md @@ -0,0 +1,51 @@ +# Open Serial Binary Protocol (SBP) specification + +## Protocol frame structure + +SYNC1 | SYNC2 | ROUTE | MODE | ID | LENGTH | PAYLOAD | CHECK1 | CHECK2| +|----------|----------|----------|----------|----------|----------|----------|----------|----------| +U1 | U1 | U1 | U1 | U1 | U1 | BYTE[LENGTH] | U1 | U1 | +0xBB | 0x55 | BITFIELD | BITFIELD | 1 … 255 | 0 … 128 | BYTEARRAY | 0 … 0xFF | 0 … 0xFF | + +### ROUTE +Name | Bits | Description +|----------|----------|----------| +DEV_ADDRESS | 0:3 bit | Device address. Default and broadcast address is 0x0. +RESERVED | 2 bit | Reserved + +### MODE +Name | Bits | Description +|----------|----------|----------| +TYPE | 0:1 bit | 0 — Reserved, 1 — CONTENT: DEVICE → HOST, 2 — SETTING: HOST → DEVICE, 3 —GETTING: HOST → DEVICE +RESERVED | 2 bit | Reserved +VERSION | 3:5 bit | Field defines the payload data version +MARK | 6 bit | Once device is switched on, this flag is always in reset state (ZERO). It can be set to active state (ONE) by the host (see the CMD_MARK command) and the slave device keeps the flag in active state in every frame until hardware reset occurs or is reset by the host. Therefore the host monitors the device's actual settings. +RESPONSE | 7 bit | HOST → DEVICE: Set the flag to active state (ONE) in order to get the result of processing the command. The flag doesn't affect the response if one is provided by the TYPE field. DEVICE → HOST: The flag is in reset state (ZERO) by default. Payload goes according to the command specification. If flag is set, the payload contains the result of command processing (see CMD_RESP command). + +## Checksum +The checksum algorithm used is the Fletcher-16. +Example source code for calculating the checksum: +``` +uint8_t CHECK1 = 0; +uint8_t CHECK2 = 0; +void CheckSumUpdate(uint8_t byte) { + CHECK1 += byte; + CHECK2 += CHECK1; +} +``` + +## Number Formats +- Multi-byte values are ordered in Little Endian format +- Floating point values are transmitted in IEEE754 single or double precision +- bit-field in LSB format + +Name | Type | Size (Bytes) | Range +|----------|----------|----------|----------| +S1 | int8_t | 1 | -128 ... 127 +U1 | uint8_t | 1 | 0 … 255 +S2 | int16_t | 2 | -32768 … 32767 +U2 | uint16_t | 2 | 0 … 65535 +S4 | int32_t | 4 | -2'147'483'648 ... 2'147'483'647 +U4 | uint32_t | 4 | 0 … 4'294'967'295 +F4 | float | 4 | -1*2^+127 ... 2^+127 +D8 | double | 8 | -1*2^+1023 ... 2^+1023 diff --git a/viewer/index.html b/viewer/index.html index 390e63c..a08937c 100644 --- a/viewer/index.html +++ b/viewer/index.html @@ -2,266 +2,616 @@ -COSMA — USV Track Viewer +COSMA — NAV Viewer v5 + + - +

- - - - - Chargement calendrier… + + + + Chargement...
-
+ + - + +
+
+
+
Dist
+
Az (rel)
+
Elev
+
SNR
+
REL HEADING
+
+
+ +
- USV Track - -
Chargement…
+
+ t +
+ + + + + +
+
+ +
+
+ + +
+
Profondeur AUV (m)
+
PWM AUV (canaux)
+
PWM USV (M1-M8)
+
USBL Distance (m)
+ +