From ed1a0a83dfe5d28db9a971bcfc1403bcdc03a49b Mon Sep 17 00:00:00 2001 From: Jerry Jiaheng Chen <80299683+CubeJerry@users.noreply.github.com> Date: Tue, 10 Nov 2026 13:22:19 +0800 Subject: [PATCH] Construct a connected eighteen-stage root and bound its fixed native completion --- .../COALESCING-WINDOW.json | 109 ++++ .../COALESCING-WINDOW.md | 51 ++ research/connected-l18-root-caller/COST.json | 163 ++++++ .../IDLE-COALESCING.json | 153 ++++++ .../IDLE-COALESCING.md | 59 ++ .../INDEPENDENT.json | 100 ++++ .../connected-l18-root-caller/INPUT-PINS.json | 59 ++ research/connected-l18-root-caller/LICENSE | 201 +++++++ research/connected-l18-root-caller/NATIVE.md | 89 ++++ research/connected-l18-root-caller/NOTICE | 15 + research/connected-l18-root-caller/PROOF.md | 98 ++++ research/connected-l18-root-caller/README.md | 115 ++++ .../connected-l18-root-caller/REPLAY.json | 119 +++++ .../connected-l18-root-caller/REVIEW.json | 32 ++ .../connected-l18-root-caller/SOURCES.json | 18 + research/connected-l18-root-caller/TASK.json | 130 +++++ .../connected-l18-root-caller/VALIDATION.md | 53 ++ .../connected-l18-root-caller/VERIFY.json | 97 ++++ .../connected-l18-root-caller/caller_L18.json | 1 + .../connected-l18-root-caller/caller_L3.json | 1 + .../connected-l18-root-caller/caller_L9.json | 1 + research/connected-l18-root-caller/cost.py | 34 ++ .../connected-l18-root-caller/generate.py | 119 +++++ .../idle_coalescing.py | 192 +++++++ .../connected-l18-root-caller/independent.py | 106 ++++ .../inputs/NATIVE-NOTICE | 9 + .../inputs/base_invoice.json | 61 +++ .../inputs/final_native.json.gz | Bin 0 -> 350722 bytes .../inputs/root_A.json | 1 + .../inputs/root_L3_tHHtHt.json | 1 + .../inputs/root_L3_tHtHHt.json | 1 + research/connected-l18-root-caller/matrix.py | 77 +++ research/connected-l18-root-caller/replay.py | 74 +++ research/connected-l18-root-caller/review.py | 22 + .../review/COALESCING-CORROBORATION.json | 58 ++ .../review/NATIVE-SCREEN.json | 106 ++++ .../review/PINS.json | 10 + .../review/ROOT-L18.json | 502 ++++++++++++++++++ .../review/ROOT-L3.json | 109 ++++ .../review/ROOT-L9.json | 242 +++++++++ .../review/TARIFF-L18.json | 58 ++ .../review/coalescing_window.py | 68 +++ .../review/interval_engine.py | 128 +++++ .../review/native_screen.py | 129 +++++ .../connected-l18-root-caller/review/root.py | 101 ++++ .../review/tariff.py | 66 +++ .../connected-l18-root-caller/root_L18.json | 1 + .../connected-l18-root-caller/root_L3.json | 1 + .../connected-l18-root-caller/root_L9.json | 1 + 49 files changed, 3941 insertions(+) create mode 100644 research/connected-l18-root-caller/COALESCING-WINDOW.json create mode 100644 research/connected-l18-root-caller/COALESCING-WINDOW.md create mode 100644 research/connected-l18-root-caller/COST.json create mode 100644 research/connected-l18-root-caller/IDLE-COALESCING.json create mode 100644 research/connected-l18-root-caller/IDLE-COALESCING.md create mode 100644 research/connected-l18-root-caller/INDEPENDENT.json create mode 100644 research/connected-l18-root-caller/INPUT-PINS.json create mode 100644 research/connected-l18-root-caller/LICENSE create mode 100644 research/connected-l18-root-caller/NATIVE.md create mode 100644 research/connected-l18-root-caller/NOTICE create mode 100644 research/connected-l18-root-caller/PROOF.md create mode 100644 research/connected-l18-root-caller/README.md create mode 100644 research/connected-l18-root-caller/REPLAY.json create mode 100644 research/connected-l18-root-caller/REVIEW.json create mode 100644 research/connected-l18-root-caller/SOURCES.json create mode 100644 research/connected-l18-root-caller/TASK.json create mode 100644 research/connected-l18-root-caller/VALIDATION.md create mode 100644 research/connected-l18-root-caller/VERIFY.json create mode 100644 research/connected-l18-root-caller/caller_L18.json create mode 100644 research/connected-l18-root-caller/caller_L3.json create mode 100644 research/connected-l18-root-caller/caller_L9.json create mode 100644 research/connected-l18-root-caller/cost.py create mode 100644 research/connected-l18-root-caller/generate.py create mode 100644 research/connected-l18-root-caller/idle_coalescing.py create mode 100644 research/connected-l18-root-caller/independent.py create mode 100644 research/connected-l18-root-caller/inputs/NATIVE-NOTICE create mode 100644 research/connected-l18-root-caller/inputs/base_invoice.json create mode 100644 research/connected-l18-root-caller/inputs/final_native.json.gz create mode 100644 research/connected-l18-root-caller/inputs/root_A.json create mode 100644 research/connected-l18-root-caller/inputs/root_L3_tHHtHt.json create mode 100644 research/connected-l18-root-caller/inputs/root_L3_tHtHHt.json create mode 100644 research/connected-l18-root-caller/matrix.py create mode 100644 research/connected-l18-root-caller/replay.py create mode 100644 research/connected-l18-root-caller/review.py create mode 100644 research/connected-l18-root-caller/review/COALESCING-CORROBORATION.json create mode 100644 research/connected-l18-root-caller/review/NATIVE-SCREEN.json create mode 100644 research/connected-l18-root-caller/review/PINS.json create mode 100644 research/connected-l18-root-caller/review/ROOT-L18.json create mode 100644 research/connected-l18-root-caller/review/ROOT-L3.json create mode 100644 research/connected-l18-root-caller/review/ROOT-L9.json create mode 100644 research/connected-l18-root-caller/review/TARIFF-L18.json create mode 100644 research/connected-l18-root-caller/review/coalescing_window.py create mode 100644 research/connected-l18-root-caller/review/interval_engine.py create mode 100644 research/connected-l18-root-caller/review/native_screen.py create mode 100644 research/connected-l18-root-caller/review/root.py create mode 100644 research/connected-l18-root-caller/review/tariff.py create mode 100644 research/connected-l18-root-caller/root_L18.json create mode 100644 research/connected-l18-root-caller/root_L3.json create mode 100644 research/connected-l18-root-caller/root_L9.json diff --git a/research/connected-l18-root-caller/COALESCING-WINDOW.json b/research/connected-l18-root-caller/COALESCING-WINDOW.json new file mode 100644 index 0000000000..975d44be4c --- /dev/null +++ b/research/connected-l18-root-caller/COALESCING-WINDOW.json @@ -0,0 +1,109 @@ +{ + "status": "PASS_UNIFORM_NEGATIVITY", + "root_sha256": "be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34", + "native_invoice_sha256": "87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6", + "engine_sha256": "60a743d13f668ef86db4b8215b4d5d04430a671ba6f1fe06d9c1c4c3dfe86da5", + "interval": [ + "181350941/50000000000", + "1/100" + ], + "T": { + "1": 252, + "2": 144, + "3": 72, + "4": 1962, + "5": 306, + "6": 54, + "7": 180, + "8": 720, + "9": 6774, + "17": 312, + "25": 520, + "33": 416, + "41": 312, + "49": 520, + "57": 416, + "65": 520, + "73": 416, + "81": 104, + "145": 104 + }, + "P": { + "1": 42396, + "2": 8172, + "3": 8802, + "4": 1980, + "5": 2736, + "6": 126, + "7": 162, + "8": 330, + "16": 208, + "24": 520, + "32": 416, + "40": 312, + "48": 520, + "56": 416, + "64": 312, + "72": 208, + "80": 104, + "144": 104 + }, + "rank_surplus": 760, + "optimal_degrees": [ + 18, + 9, + 7, + 7, + 8, + 6, + 6, + 7, + 4, + 4, + 5, + 3, + 3, + 4, + 1, + 1, + 1, + 0, + 0, + 3, + 0, + 0, + 4, + 2, + 2, + 6, + 3, + 3, + 7, + 5, + 5, + 9, + 6, + 6, + 10, + 8, + 8, + 0 + ], + "left_endpoint_margin": [ + "-1947598170433159634755026544042426492172302230996912227162842431465986628465463463/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-243449771304144954344378318005303311521537778874614028395355303933248328556043649/6250000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "left_endpoint_margin_float": [ + -38.95196340866319, + -38.95196340866319 + ], + "uniform_derivative_upper_interval": [ + "-4959594734641481397754468477409242373438945362069616735797101018360054020832519343721/25000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-9919189469282962795508936954818484746877890724139233471594202036720108041664860049897/50000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "uniform_derivative_upper_float": [ + -198383.78938565924, + -198383.78938565924 + ], + "scope": "Fixed104-port F+H1 supplier,18 full paid/helper invoices,3thinH1 perport,and181 idle incidences optimally coalesced in the fixed38 coordinate-role relaxation. Ordinary implementation work is optimistically free. Not a general root/native obstruction." +} diff --git a/research/connected-l18-root-caller/COALESCING-WINDOW.md b/research/connected-l18-root-caller/COALESCING-WINDOW.md new file mode 100644 index 0000000000..e2cded088e --- /dev/null +++ b/research/connected-l18-root-caller/COALESCING-WINDOW.md @@ -0,0 +1,51 @@ +# The fixed repair fails throughout the improvement window + +The coordinate-role compression proof in `IDLE-COALESCING.md` selects the same +degree vector for every `0 < kappa < 1`: union/intersection compression uses +only concavity, and the two final bridge choices are decided by +`f(1)+f(3) < 2 f(2)`. Thus a single pair of complete histograms bounds the best +possible moment in that precisely stated relaxation throughout this range. + +Let `M(k) = sum_r (T_r-P_r) r^(1-k)`. `COALESCING-WINDOW.json` records both +complete histograms. They include 104 copies of the root target profile, +18 entire F-native paid and helper profiles, 18*104 extra paid rank-one +adapters, 3*104 thin jobs, and 104 copies of the optimally coalesced idle +profile. Their rank surplus at zero is 760. All ordinary implementation, +coalescing and outer overhead is optimistically free. + +For `a = .00362701882` and `b = .01`, exact outward-rounded intervals give: + +- `M(a) < -38.95196340866319`; +- `M'(k) < -198383.7893856592` for every `a <= k <= b`. + +To obtain the second bound, put `c_r=T_r-P_r`. Each derivative term is +`-c_r log(r) r^(1-k)`. For positive c_r its upper bound occurs at b; for +negative c_r it occurs at a. Summing those independently valid upper bounds +gives the displayed uniform negative bound. Therefore `M(k)<0` on the whole +closed interval. This includes the newly proposed .00363005817 candidate and +the aspirational .01 endpoint; it says nothing about other constructions. + +The independent checker reconstructs stage eligibility and the two compressed +bridge cases from the pinned root; it authenticates the actual caller and +retained F invoice and recomputes every target and paid multiplicity. Its +integer fixed-grid logarithm/exponential engine is the independently authored +engine published at `93effe2a135bf57b9e484cb630d8dd057159aec9`, +`research/shared-wire-split-composition/interval_gate.py`, unchanged here as +`review/interval_engine.py`. Exact byte pins are in `INPUT-PINS.json`. +This is attributed reuse of that arithmetic engine with a new profile and +uniform derivative proof, not another independent arithmetic implementation. + +The seventh registered command recomputes and compares the complete receipt. +Omitting the paid adapter causes its endpoint test to fail; a reversed +interval is also rejected. Optimized Python is explicitly rejected. The +checker reads its inputs and receipt without rewriting them. + +This result is restricted to the fixed 38 coordinate roles, fixed stage +masks, two coordinate hosts per stage, and arbitrary free merging of all +same-role idle occurrences. Noncoordinate idle directions, changed root +geometry, a cheaper native, helper mixing, or a larger coupled construction +are outside it. The F+H1 word itself remains unbuilt. **No new κ.** + +Prepared for @CubeJerry with substantial OpenAI Codex assistance. The root, +native, compression and interval predecessors retain the credit stated in +`README.md`, `NOTICE` and `NATIVE.md`. diff --git a/research/connected-l18-root-caller/COST.json b/research/connected-l18-root-caller/COST.json new file mode 100644 index 0000000000..71ffcc064f --- /dev/null +++ b/research/connected-l18-root-caller/COST.json @@ -0,0 +1,163 @@ +{ + "3": { + "roles": 8, + "stages": 3, + "events": 191, + "event_counts": { + "ADD": 87, + "SCALE": 28, + "SWAP": 44, + "LAMBDA": 20, + "QUERY": 3, + "HOST": 3, + "IDLE_ONE": 6 + }, + "ordinary_events": 179, + "target_histogram": { + "9": 5, + "17": 2, + "25": 1 + }, + "target_rank_mass": 104, + "paid_outside_native": { + "8": 6, + "1": 3 + }, + "paid_outside_native_mass": 51, + "ordinary_scalar_denominator_lcm": "6", + "max_abs_ordinary_scalar": "3", + "native_gates": { + "selected_complex": { + "comparison_kappa": "0.003125804", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4843080869728003788800832613933994107627318594142812410079", + "allowance_above_two_H8": "1.5879696527372231758936282716102426015761391318128899249442", + "direct_baseline_signed_moment": "-1.236091041788330472319115185169272195271582604561330225167" + }, + "pending_complex_6936": { + "comparison_kappa": "0.00362701882", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4552303348641031828548299485292027354066579477326847872936", + "allowance_above_two_H8": "1.5754511794416558860023781546789599010436945883769335958376", + "direct_baseline_signed_moment": "-1.273646461675032341992865535963120296868916234869199212487" + }, + "ordinary_BIT_6726": { + "comparison_kappa": "0.00376669", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4471353689880173282352372261088732550512243452946422105081", + "allowance_above_two_H8": "1.5719676360206178990526638106345372230747882511325091855385", + "direct_baseline_signed_moment": "-1.284097091938146302842008568096388330775635246602472443385" + } + } + }, + "9": { + "roles": 20, + "stages": 9, + "events": 776, + "event_counts": { + "ADD": 339, + "SCALE": 84, + "SWAP": 245, + "LAMBDA": 44, + "QUERY": 3, + "HOST": 9, + "IDLE_ONE": 52 + }, + "ordinary_events": 712, + "target_histogram": { + "9": 1, + "17": 4, + "25": 6, + "33": 6, + "41": 2, + "73": 1 + }, + "target_rank_mass": 580, + "paid_outside_native": { + "8": 52, + "1": 3 + }, + "paid_outside_native_mass": 419, + "ordinary_scalar_denominator_lcm": "6", + "max_abs_ordinary_scalar": "3", + "native_gates": { + "selected_complex": { + "comparison_kappa": "0.003125804", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.495701886657033145636409723610846431616109791663676616169", + "allowance_above_two_H8": "1.5993634524214559426499547338276896224295170640622853001053", + "direct_baseline_signed_moment": "-3.605728928206896516150407395550793398134346423439432299053" + }, + "pending_complex_6936": { + "comparison_kappa": "0.00362701882", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4331797209823169335965523056515178829992190357283974839384", + "allowance_above_two_H8": "1.5534005655598696367441005118012750486362556763726462924824", + "direct_baseline_signed_moment": "-4.019394909961173269303095393788524562273698912646183367658" + }, + "ordinary_BIT_6726": { + "comparison_kappa": "0.00376669", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.4157826512019132391499231525983617384070475822265108385921", + "allowance_above_two_H8": "1.5406149182345138099673497371240257064306114880643778136225", + "direct_baseline_signed_moment": "-4.134465735889375710293852365883768642124496607420599677397" + } + } + }, + "18": { + "roles": 38, + "stages": 18, + "events": 2370, + "event_counts": { + "ADD": 1041, + "SCALE": 189, + "SWAP": 858, + "LAMBDA": 80, + "QUERY": 3, + "HOST": 18, + "IDLE_ONE": 181 + }, + "ordinary_events": 2168, + "target_histogram": { + "9": 3, + "17": 3, + "25": 5, + "33": 4, + "41": 3, + "49": 5, + "57": 4, + "65": 5, + "73": 4, + "81": 1, + "145": 1 + }, + "target_rank_mass": 1774, + "paid_outside_native": { + "8": 181, + "1": 3 + }, + "paid_outside_native_mass": 1451, + "ordinary_scalar_denominator_lcm": "2", + "max_abs_ordinary_scalar": "5/2", + "native_gates": { + "selected_complex": { + "comparison_kappa": "0.003125804", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.24273344786332293410495368703241064490922674815243677043", + "allowance_above_two_H8": "1.3463950136277457311184986972492538357226340205510454543663", + "direct_baseline_signed_moment": "-11.76488975470057683986702344951343095699258763008118182141", + "retained_F_plus_H1_cost_per_port": "17.6703991996227234141399345320028861136206598559402746515482", + "retained_F_plus_H1_excess": "0.4276657517594004800349808449704754687114331077878378811182" + }, + "pending_complex_6936": { + "comparison_kappa": "0.00362701882", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.1313409028543326190363539979855487854614834640682540794906", + "allowance_above_two_H8": "1.2515617474318853221839022041353059510985201047125028880346", + "direct_baseline_signed_moment": "-13.47188854622606420068976032556449288022663811517494801538", + "retained_F_plus_H1_cost_per_port": "17.6914424603474237437422676600591888259630220558867211828222", + "retained_F_plus_H1_excess": "0.5601015574930911247059136620736400405015385918184671033316" + }, + "ordinary_BIT_6726": { + "comparison_kappa": "0.00376669", + "max_native_signed_cost_per_port_per_call_before_ordinary_outer": "17.1003547369028679713425656375523992710112972290322356119039", + "allowance_above_two_H8": "1.2251870039354685421599922220780632390348611348701025869343", + "direct_baseline_signed_moment": "-13.94663392916156624112014000259486169737249957233815343518", + "retained_F_plus_H1_cost_per_port": "17.6973009591869876138450219486899064090893373235044463699870", + "retained_F_plus_H1_excess": "0.5969462222841196425024563111375071380780400944722107580831" + } + } + } +} diff --git a/research/connected-l18-root-caller/IDLE-COALESCING.json b/research/connected-l18-root-caller/IDLE-COALESCING.json new file mode 100644 index 0000000000..3ed964ba05 --- /dev/null +++ b/research/connected-l18-root-caller/IDLE-COALESCING.json @@ -0,0 +1,153 @@ +{ + "candidate_native_per_stage": "17.69144246035", + "degree_only_upper_interval": [ + "10.7650306667069383548587527126645864429494031", + "10.7650306667069383548587527126645864429522214" + ], + "host_roles_by_stage": [ + [ + 2, + 3 + ], + [ + 5, + 6 + ], + [ + 8, + 9 + ], + [ + 8, + 9 + ], + [ + 11, + 12 + ], + [ + 14, + 15 + ], + [ + 14, + 15 + ], + [ + 17, + 18 + ], + [ + 16, + 37 + ], + [ + 20, + 21 + ], + [ + 20, + 21 + ], + [ + 23, + 24 + ], + [ + 26, + 27 + ], + [ + 26, + 27 + ], + [ + 29, + 30 + ], + [ + 32, + 33 + ], + [ + 32, + 33 + ], + [ + 35, + 36 + ] + ], + "idle_actions": 181, + "independent_roles": 38, + "kappa_probe": "181350941/50000000000", + "optimal_degree_histogram": { + "0": 5, + "1": 3, + "10": 1, + "18": 1, + "2": 2, + "3": 5, + "4": 4, + "5": 3, + "6": 5, + "7": 4, + "8": 3, + "9": 2 + }, + "optimal_degrees": [ + 18, + 9, + 7, + 7, + 8, + 6, + 6, + 7, + 4, + 4, + 5, + 3, + 3, + 4, + 1, + 1, + 1, + 0, + 0, + 3, + 0, + 0, + 4, + 2, + 2, + 6, + 3, + 3, + 7, + 5, + 5, + 9, + 6, + 6, + 10, + 8, + 8, + 0 + ], + "optimal_savings_interval": [ + "9.70728992517695569956124850500966948053128943", + "9.70728992517695569956124850500966948053400299" + ], + "proof": "eligibility union/intersection compression plus two exact bridge cases; rational ln/exp enclosures", + "required_saving_interval": [ + "10.0818280348756402447064459173255207290250791", + "10.0818280348756402447064459173255207290288747" + ], + "required_saving_lower": "10.081828", + "scope": "fixed38 coordinate roles;181 idles;two coordinate hosts perstage;free all-occurrence same-role merging;no noncoordinate or general native obstruction;no supplier or kappa claim", + "shortfall_lower": "0.374538109698684545145197412315851248491076115", + "stages": 18, + "status": "OPTIMISTIC_COALESCING_ONLY_ROUTE_CLOSED", + "uncoalesced_gate_per_stage": "17.13134090285" +} diff --git a/research/connected-l18-root-caller/IDLE-COALESCING.md b/research/connected-l18-root-caller/IDLE-COALESCING.md new file mode 100644 index 0000000000..91df672c3d --- /dev/null +++ b/research/connected-l18-root-caller/IDLE-COALESCING.md @@ -0,0 +1,59 @@ +# Exact optimum of the optimistic L18 same-role idle-coalescing relaxation + +Scope: the 38 independent root fields and 18 stage masks in `root_L18.json`, bound to `caller_L18.json` by exact masks and SHA-256 in `idle_coalescing.py`. No new native word or kappa is claimed. This closes only the proposed native profile plus coalescing-only repair at the stated comparison point. A cheaper native, changed root, changed role encoding, changed idle count, or arbitrary noncoordinate shared-direction decomposition is outside the result. Actual rank-one idle bases may rotate; this theorem does not constrain all such rotations. + +The masks contain 217 role/stage incidences. At each stage arbitrarily choose any two eligible mask-coordinate roles as hosts, leaving exactly 181 idle incidences. No actual host-position restrictions are imposed. For each role r, coalesce ALL its idle incidences, even across actual chronological barriers, into one paid rank `8 d_r` child for free, where d_r is its idle degree. Do not combine independent roles. At k=0.00362701882 the relaxed cost is sum_r f(d_r), with f(d)=(8d)^(1-k), f(0)=0. All root targets, three thin jobs, 18 HOSTs, and proposed native cost remain fixed. Coalescing setup, uncomputation, chronology and ordinary costs are free. + +## Compression proves the exact optimum + +Let E_r be the set of stages where role r is eligible, and I_r subset E_r its idle stages. Every stage has exactly its mask size minus two idle roles. + +If E_j is a strict subset of E_i, replace I_i by I_i union I_j and I_j by I_i intersection I_j. The new sets are eligible. At every stage the total number of idle roles stays unchanged. Their sizes have the same sum as before, with the union at least as large as either old size and the intersection at most as large. Concavity of f makes their total cost nonincreasing. + +Whenever I_j was not already contained in I_i, this operation strictly increases the finite integer potential sum_r |E_r| |I_r|: precisely |I_j minus I_i|(|E_i|-|E_j|)>0. Repeated compression therefore terminates. Some optimum satisfies I_j subset I_i for every strict eligibility inclusion. + +The two host roles at a stage must consequently be closed downwards under strict eligibility inclusion: if i is hosted and E_j is a strict subset of E_i, every eligible j must also be hosted. The checker enumerates all two-element subsets of each mask under this exact condition. Seventeen stages have a unique allowed pair. The bridge stage has exactly two: + +- hosts {16,37}, giving idle degrees (1,3) on roles (16,19); +- hosts {19,37}, giving degrees (2,2) there. + +All other degrees agree. Concavity gives f(1)+f(3)<=2f(2), so the first case is optimal. This proves the finite relaxation's optimum without trusting a solver. + +The optimal host pairs in stage order are: + +[2,3], [5,6], [8,9], [8,9], [11,12], [14,15], [14,15], [17,18], [16,37], [20,21], [20,21], [23,24], [26,27], [26,27], [29,30], [32,33], [32,33], [35,36]. + +The optimal degree vector in role order 0..37 is: + +[18,9,7,7,8,6,6,7,4,4,5,3,3,4,1,1,1,0,0,3,0,0,4,2,2,6,3,3,7,5,5,9,6,6,10,8,8,0]. + +The degree histogram is {0:5, 1:3, 2:2, 3:5, 4:4, 5:3, 6:5, 7:4, 8:3, 9:2, 10:1, 18:1}. Thus the coalesced paid ranks are 8 times these degrees, with zero-degree roles omitted. + +## Full bill at the assigned gate + +The maximum idle saving over 181 separate H8 jobs is enclosed by exact rational arithmetic in [9.70728992517695569956124850500966948053128943, 9.70728992517695569956124850500966948053400299]. + +The required saving is computed directly from the pinned F profile plus H1, all eighteen native calls, the caller targets and all nonnative jobs. Exact rational intervals give a requirement greater than10.08182803487564 and a strict shortfall greater than0.37453810969868 per port, before ordinary and outer margins. The best coalesced native gate is below17.6706347875832 per stage. This is not a general root, fusion or native ceiling. + +Ignoring stage eligibility would give an apparent saving of 10.765030666707, enough to pass. Therefore degree caps alone do not establish the negative result; incidence constraints are essential. + +## Pins and reproduction + +Root SHA-256: be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34. +Caller SHA-256: f4090329f219edd493b4ca592128521e867a355fb528556b15201e759783568b. + +Run `python3 -I -O -B idle_coalescing.py` from the package directory, or pass `--package-root PATH`. An optional `--receipt PATH` compares a retained JSON receipt without writing it. Standard library only; it imports no solver or producer, verifies hashes and caller/root masks, checks the 17+2 compressed assignment census, and computes rational enclosures. Logarithms use the positive atanh series with geometric tail bound after reduction to z<=1/3. Exponentials use odd/even alternating Taylor sums for exp(-x), x<1. No floating-point solver output is trusted. + +Three controls actively reject an ineligible host, one deleted real idle incidence (via the per-stage incidence validator), and an eligible but non-downward-closed hostset (via the compressed-assignment validator). A separate scope control confirms that the looser degree-only relaxation incorrectly leaves this route open. The exploratory MILP files are not proof dependencies. + +The portable checker also binds `inputs/base_invoice.json` by SHA-256 +87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6. +It derives the required saving directly as 18*((local_paid-helpers)/104+1) +minus the caller target moment plus 181 H8+3 H1, using rational intervals. +The result is greater than 10.08182803487564 and yields a shortfall greater +than 0.37453810969868. Ordinary and outer charges remain omitted in this +favorable necessary screen; they cannot rescue the failed inequality. +The F invoice is the retained source profile reviewed in NATIVE.md, not an +emitted or authenticated F-to-HOST conversion word. The base native is +attributed to PR #6824, retained by PR #6833 head +51f54e3c31f2f3a3e056a483b3ed66ae916ad06a and copied through #6936. diff --git a/research/connected-l18-root-caller/INDEPENDENT.json b/research/connected-l18-root-caller/INDEPENDENT.json new file mode 100644 index 0000000000..b8b28d760a --- /dev/null +++ b/research/connected-l18-root-caller/INDEPENDENT.json @@ -0,0 +1,100 @@ +{ + "status": "PASS_INDEPENDENT_CONNECTED_L18_CALLER", + "caller_sha256": "f4090329f219edd493b4ca592128521e867a355fb528556b15201e759783568b", + "root_sha256": "be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34", + "formal_ring": "Q(i)[Q,D0,...,D17]/(Q^4-1); unrestricted tuple D powers; direct reverse covectors, no evaluation of Q or D", + "coefficients": 1444, + "peak_reverse_polynomial_terms": 42, + "event_counts": { + "ADD": 1041, + "SCALE": 189, + "SWAP": 858, + "LAMBDA": 80, + "QUERY": 3, + "HOST": 18, + "IDLE_ONE": 181 + }, + "ordinary_events": 2168, + "target_histogram": { + "9": 3, + "17": 3, + "25": 5, + "33": 4, + "41": 3, + "49": 5, + "57": 4, + "65": 5, + "73": 4, + "81": 1, + "145": 1 + }, + "target_rank_mass": 1774, + "paid_non_native": { + "1": 3, + "8": 181 + }, + "native_contract_calls": 18, + "native_contract": "HOST(x,y,s): D_s*(x+Q*y,-Q^-1*x), t=-1; supplied macro only, no native implementation or tariff verified", + "scalar_max_denominator": 2, + "scalar_max_magnitude": "5/2", + "controls": { + "missing_HOST": { + "event": 32, + "witness": [ + 0, + 0 + ] + }, + "missing_QUERY": { + "event": 10, + "witness": [ + 0, + 0 + ] + }, + "missing_IDLE_ONE": { + "event": 36, + "witness": [ + 0, + 0 + ] + }, + "missing_LAMBDA": { + "event": 9, + "witness": [ + 0, + 0 + ] + }, + "wrong_HOST_lower_left_sign": { + "event": 32, + "witness": [ + 0, + 2 + ] + }, + "wrong_QUERY": { + "event": 10, + "witness": [ + 0, + 0 + ] + }, + "wrong_LAMBDA": { + "event": 9, + "witness": [ + 0, + 0 + ] + }, + "wrong_IDLE_ONE": { + "event": 36, + "witness": [ + 0, + 0 + ] + } + }, + "scope": "Exact finite caller and root-mask binding, event and symbolic profile audit only. No HOST native construction, physical/routing or ordinary-tariff admission, finite supplier, kappa or general root theorem.", + "seconds": 0.5741335839993553 +} diff --git a/research/connected-l18-root-caller/INPUT-PINS.json b/research/connected-l18-root-caller/INPUT-PINS.json new file mode 100644 index 0000000000..da121acf97 --- /dev/null +++ b/research/connected-l18-root-caller/INPUT-PINS.json @@ -0,0 +1,59 @@ +{ + "schema_version": 1, + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "inputs": [ + { + "local_path": "inputs/root_L3_tHHtHt.json", + "source_commit": "a98df73ddae1d1ea85a62b6bdf2714b28cb7b359", + "source_path": "research/p104-two-chain-findings/data/root_L3_tHHtHt.json", + "git_blob": "15071c325b0badf01b090979a8a72b91c61d62e9", + "sha256": "eb79a0d89c1c09138a3e8a260f04b6a0c88d51d1314650364cb88441333b8f28" + }, + { + "local_path": "inputs/root_L3_tHtHHt.json", + "source_commit": "a98df73ddae1d1ea85a62b6bdf2714b28cb7b359", + "source_path": "research/p104-two-chain-findings/data/root_L3_tHtHHt.json", + "git_blob": "67ea0628435e289a4a1db0fd5ab53e103c83c4b5", + "sha256": "60bf936299c3a553398e943ba6d67b05ee4d29007cd1af9da6227685aa226309" + }, + { + "local_path": "inputs/root_A.json", + "source_commit": "d360b1182b6d21b1ee2354856abcb50646ad618b", + "source_path": "research/p104-main-wire-native/data/root_A.json", + "sha256": "b9400ca6087c8fd9d527c3203afa43caaddaa46cb73996cc05a0ac5cbb240e3c", + "usage": "Positive control for unchanged g=9 raw single chain, even-index units on first20 coordinates." + }, + { + "local_path": "inputs/base_invoice.json", + "source_commit": "d360b1182b6d21b1ee2354856abcb50646ad618b", + "source_path": "research/p104-main-wire-native/data/base_invoice.json", + "sha256": "87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6", + "usage": "Retained F profile screen only, not a modified native proof." + }, + { + "local_path": "inputs/final_native.json.gz", + "source_commit": "93effe2a135bf57b9e484cb630d8dd057159aec9", + "source_path": "research/shared-wire-split-composition/data/final.json.gz", + "sha256": "2b94953dc14a122e3ef089633f05b58ec689ec5156feb7c784ed3e137dc01883", + "usage": "Exact coefficient endpoint for the narrowly scoped main-plane remix screen; not a new all-width native replay." + }, + { + "local_path": "review/interval_engine.py", + "source_commit": "93effe2a135bf57b9e484cb630d8dd057159aec9", + "source_path": "research/shared-wire-split-composition/interval_gate.py", + "sha256": "60a743d13f668ef86db4b8215b4d5d04430a671ba6f1fe06d9c1c4c3dfe86da5", + "usage": "Unchanged independently authored integer interval engine; uniform profile proof is new." + } + ], + "contract_source": { + "source_commit": "ec0796c950b4bb015c36b9f2d11907c8cc8b98fe", + "source_path": "research/p104-root-cut-laws/THEOREM.md", + "section": "0. Setting" + }, + "normalization_reference": { + "pr": 6842, + "head": "7bc8aad1357d5b3d2c15af653c1eaf8e70a6a838", + "path": "research/p104-header-braid-classification/PROOF.md", + "scope": "Path units I+q ab; q\u00b2=1; M(-1)=-M(1), ordinary normalization." + } +} diff --git a/research/connected-l18-root-caller/LICENSE b/research/connected-l18-root-caller/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/connected-l18-root-caller/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/connected-l18-root-caller/NATIVE.md b/research/connected-l18-root-caller/NATIVE.md new file mode 100644 index 0000000000..5c6fe1becf --- /dev/null +++ b/research/connected-l18-root-caller/NATIVE.md @@ -0,0 +1,89 @@ +# Native contract and complete substitution + +HOST_Q(x,y,j) must send arbitrary independent inputs simultaneously to +x_out=D_j(x+Qy), y_out=-D_j Q^-1 x, with Q^4=1. This is alpha=1,beta=-1, +t=alpha beta=-1. Sign gauges give the physical endpoint X=x-y,Y=x. +Main transports are X line to full and Y zero to hyperplane. A native must +supply compatible frames and phase maps, restore owned scratch, count every +paid operation and disclose all productive helper targets. No second main +plane or helper is silently discarded. The caller provides none of these +physical obligations. HOST remains an unimplemented supplied macro. + +Diagonal gauge sends alpha to r alpha and beta to beta/r, preserving t. +Thus a t=-1/2 native does not become resonant by free scalar rescaling. +Mixing different physical frames also needs a delivered legal word. + +| Event | Action on current arbitrary rows | Root price | +|---|---|---| +| ADD d,s,c | r_d += c r_s | ordinary | +| SCALE d,c | r_d *= c | ordinary | +| SWAP d,s | exchange rows | ordinary | +| QUERY d,s,1 | r_d += Q r_s | H1 | +| IDLE_ONE d,[j] | r_d *= D_j | H8 | +| LAMBDA d,s | multiply by ((1+s i)+(1-s i)Q^2)/2 | ordinary, tariff open | +| HOST x,y,j,1,-1 | simultaneous map above | native invoice open | + +For p ports, native paid profile Pnative and productive helper profile Thelp, +the full substitution is + + Ttotal = p Troot + 18 Thelp, + Ptotal = p (181H8+3H1) + 18 Pnative. + +H_r contributes r^(1-kappa). Per-port native signed price must be below +(Troot(kappa)-181*8^(1-kappa)-3)/18, before ordinary and outer margins. +COST.json compares selected complex .003125804, pending #6936 .00362701882 +and ordinary BIT .00376669. BIT is a benchmark, not automatically a supplier. +At kappa 0 the surplus is 323p-18 mass(Pnative-Thelp). + +Direct native bill 2H8+2H1 gives 217H8+39H1: paid mass 1775 versus target 1774. +Target ranks>=9 and paid ranks<=8 imply moment<=-8^(-kappa)<0 for 0<=kappa<1. +This controls that unbundled baseline, not all native constructions. + +A second screen is retained F plus an owned rank-one input shear: F sends +X=x,Y=x+y; preceding x<-x-y gives X=x-y,Y=x. It requires owned ascent and +erasure. Source #6833 head 51f54e3c31f2f3a3e056a483b3ed66ae916ad06a, +research/p104-chain-nested-root, retains #6824 native +2a7ca44fbda3abaa4df355b183ed7d7478eef7c1. The #6936 base_invoice profile +prices F+H1 at 17.691442460347425 per port at .00362701882, exceeding the +17.131340902854333 gate. No modified native word is emitted or admitted. + +Ordinary caller work is 2,168 events including 80 LAMBDA, with dyadic scalars. +Its coefficient bounds concern this caller and exact HOST only. Native +precision, approximate children, tape, raw tariff and outer margin remain +open. No new κ. No framework assumption or operation admission is removed. + +## Scoped limitation of the retained two-plane native + +Companion commit93effe2a135bf57b9e484cb630d8dd057159aec9, +`research/shared-wire-split-composition/data/final.json.gz`, has96 type A +ports with endpoint, in order(X1,X2,Y1,Y2), + + M = [[I, diag(0,-1)], [diag(1,0), I]]. + +Separate exact replay on all1,480 independent public inputs checks this map, +identity helper returns and boundary frames. X1,X2 share one boundary frame; +Y1,Y2 share the other. Allow arbitrary invertible input/output remixes within +each group, a relaxation of actual same-frame operations. The Y-from-Y block +becomes P_Y I Q_Y, hence stays invertible. No nonzero Y output row can become +independent of every Y input. A resonant HOST requires exactly that zero Y +row for its second output, including independence from the unused plane. +Thus these block-diagonal remixes cannot extract the demanded autonomous HOST. + +This excludes paid cross-frame operations, helpers, feedback, identified +inputs, cross-port remixes and larger rewrites; it is not a general native +ceiling. The coefficient replay inherits owned-erasure semantics and makes +no new all-width claim. Exact bytes, checker and receipt are retained. +The F-plus-input-shear screen above additionally requires104 dirty erasures, +owned ascent(A6), legal owned lifetimes and ordinary INIT/COPY/ADD/CLEAR work; +its optimistic numerical price omits those ordinary margins. + +## Coordinate-role idle merging cannot rescue F+H1 + +`IDLE-COALESCING.md` fixes the38 coordinate roles and18 masks, allows any two +eligible coordinate hosts per stage, and merges every same-role idle occurrence +for free, even across barriers. Its solver-free exact optimum saves less than +9.707289925176956 per port. The pinned F+H1 profile requires more than +10.08182803487564, leaving a strict gap greater than0.37453810969868 before +ordinary and outer work. This screen excludes arbitrary noncoordinate shared +idle directions, changed encodings, roots, natives or idle counts. In +particular, it does not cover every rotating rank-one basis of E_j-H_j. diff --git a/research/connected-l18-root-caller/NOTICE b/research/connected-l18-root-caller/NOTICE new file mode 100644 index 0000000000..f5d981b979 --- /dev/null +++ b/research/connected-l18-root-caller/NOTICE @@ -0,0 +1,15 @@ +Connected L18 root geometry and emitted caller: substantial OpenAI Codex-assisted research. +Apache-2.0; no human or maintainer review. + +Prior complete-sign/single-chain mechanism and sector normalization: DreamingOfClouds, +including PR6842, PR6936 and PR6937, prepared with Claude Opus 5.5 via Claude Code. +Retained type A root: @CubeJerry (Jerry Chen), PR6912. Caller and native lineage +includes Ali Romman, unpaidmoon and icekylinx, as credited by PR6936. +Independent root, tariff and reverse replay implementations were prepared separately +with OpenAI Codex assistance and import no primary construction/replay code. +Input JSON exports are copied without modification and pinned in INPUT-PINS.json. + +The vendored companion native word retains its complete attribution in inputs/NATIVE-NOTICE. +Its new shared-wire composition, seventeenth wire and enabling splits were developed with +substantial OpenAI assistance in2026, Apache-2.0; predecessor native/compiler lineage +remains DreamingOfClouds, Ali Romman and Jerry Chen / @CubeJerry as recorded there. diff --git a/research/connected-l18-root-caller/PROOF.md b/research/connected-l18-root-caller/PROOF.md new file mode 100644 index 0000000000..641c84a35b --- /dev/null +++ b/research/connected-l18-root-caller/PROOF.md @@ -0,0 +1,98 @@ +# Exact root and caller argument + +Matrices act on columns; event order multiplies on the left. The field has +characteristic zero. D_j commute and are algebraically independent. A coordinate +mask is the diagonal idempotent on its listed roles. + +## Complete sign header + +For g in {3,9,18}, use n=2g+2 coordinates A,F_0,...,F_(g-1), +H_0,...,H_(g-1),E and N=n+1 pairs (X_i,Y_i). `generate.py` gives the integral +formula. Left units have X_i=A+F_i+2 sum_(jm) H_l, Y_m=A*+H_m*. +Three explicit middle units connect the arms and E. A determinant-one basis +change in each block of three F and H coordinates uses columns +(1,1,1),(1,1,0),(0,1,1). + +Exact checks establish Y_i X_j=sign(i-j) for all N^2 entries and +rank X=rank Y=n. Every unit is nilpotent; every two unit directions are coupled. +There is no nontrivial decomposition into blocks preserved by all units: +each rank-one unit would have to lie in one block, but every off-diagonal +pairing is nonzero and X spans. This is the connectedness claimed here. + +For the bare endpoint, let B be the N by N strictly lower triangular all-ones +matrix and A0=I+2B. The Gram is G=YX=A0-11^T. Since N is odd, +A0^-1 1 is the alternating vector v=(1,-1,...,1), spanning ker G=ker X. +In the ordered application of I-2X_iY_i, the scalar reads z satisfy +A0 z=Y w. The endpoint is I-2X A0^-1 Y. But +X A0^-1 Y X=X A0^-1 G=X; since X is surjective, X A0^-1 Y=I. +Thus the endpoint is -I. At S=+1 all units I+(S-1)X_iY_i are identity, +so the bare root is S I modulo S^2-1. This mechanism is prior work. + +The g=9 source control reverses the block basis change and compares every +pair to the even-index units on the first twenty coordinates of retained +#6936 root_A.json. The g=18 chain uses parity-correct middle units; it does +not borrow the source's second independent chain. + +## Stage masks and all-stage operator + +A host uses consecutive units u,v=u+1. Its rank-two projector is +H=X_uY_v-X_vY_u. The coordinate mask E_j contains both X directions and +Y supports, so E_j H=H E_j=H; E_j-H is an idempotent of rank rank(E_j)-2. + +Left masks contain A and the complete blocks of three F coordinates through +the pair's last unit. Right masks contain A and complete suffix blocks of H. +The middle mask contains A,E and the first new coordinate of every block on +both arms. Exact checks establish that each mask commutes with the prefix +immediately before and after its hosted pair. + +For the middle mask, the raw left prefix sends + +a' = (-1)^g a + 2(-1)^(g-1) sum_i (-1)^i f_i, +F' = -F + 2 a' (1,...,1). + +In each three-block, the last two new basis vectors have alternating sum zero; +the first is the all-ones vector. The complement is acted on by -I and has no +cross terms with the middle mask. Left masks follow from prefix support. +Right masks follow by writing a prefix as minus the inverse of its remaining +suffix. These explain the finite exact commutator checks. + +Each stage multiplies by D_j on its whole E_j: the hosted rank-two piece plus +all rank-one idle directions of E_j-H. Prefix commutation moves this multiplier +to exactly E_j in initial coordinates. All E_j are diagonal and commute. +At S=+1 the full word is diag(prod D_j); at S=-1 it is minus that diagonal. +Thus the full formal operator is S diag(prod D_j) modulo S^2-1, with no +specialization or sampling of D variables. + +L18 mask ranks are +4,7,10,10,13,16,16,19,14,19,19,16,13,13,10,7,7,4, +summing to217. Every coordinate has a nonempty mask. Hosts supply36 +dimensions and residuals181 separate rank-one idles. Units0,17,20 are thin. +L3 has joint dimensions {1:2,2:1,3:1,4:2,6:1,7:1}, agreeing with the two +retained #6937 roots under its recovered projector decoder and #6842 ordinary +normalization. This is a mask-pattern statement, not parameter equivalence. + +## Emitted caller and Q4 lift + +Choose a host basis beginning X_u,X_v, then im(E_j-H), then standard vectors +outside E_j. In this basis Y_u=-e_1* and Y_v=e_0*. The pair product is + + [[1,1-S],[S-1,2S-1]] = L [[1,S],[-S,0]] P, + P=[[1,1],[0,-1]], L=[[1,0],[-1,-1]]. + +The middle matrix is supplied HOST_S before common D_j. P,L and basis changes +are emitted ADD/SCALE/SWAP. Each residual basis coordinate has one IDLE_ONE; +none are fused. A thin unit uses a basis starting X and v with Yv=1, then +ADD(-1) and QUERY_S, giving I+(S-1)XY. All basis changes act on arbitrary +live roles, with no zero or owned scratch. + +For Q^4=1 put lambda=((1+i)+(1-i)Q^2)/2 and R=lambda Q. Then +lambda^2=Q^2 and R^2=1. QUERY_R is LAMBDA(source,+), QUERY_Q, +LAMBDA(source,-). HOST_R is LAMBDA(first,-), HOST_Q, LAMBDA(first,+). +Final LAMBDA(-) on each role changes R diag(prod D) to Q diag(prod D). +Every operation occurs in the frozen word. Four exact character evaluations +are complete for Q^4-1 over Q(i); D exponents remain formal. Independent +reverse replay uses the quotient ring directly. + +This proves caller algebra given HOST. It does not prove a physical HOST at +its required price, or accepted ordinary, LAMBDA, precision and outer tariffs. diff --git a/research/connected-l18-root-caller/README.md b/research/connected-l18-root-caller/README.md new file mode 100644 index 0000000000..6ef3bae7d8 --- /dev/null +++ b/research/connected-l18-root-caller/README.md @@ -0,0 +1,115 @@ +# Connected L18 root and emitted dyadic caller + +This package constructs a connected, integral, rho=1 root with 38 roles, 39 +rank-one units and 18 commuting stage masks. It emits a 2,370-event caller and +checks its exact operator on arbitrary inputs in +Q(i)[Q,D_0,...,D_17]/(Q^4-1). The result is +`Q diag(product of D_j over the role's mask)`. + +The emitted caller invokes **18 explicitly specified HOST(t=-1) macros**; their +native implementation remains unbuilt. It does not certify a multiplier or +claim a new kappa. **No new κ.** All 181 idle +calls, three thin queries and 2,168 ordinary events are present. No same-label +idle fusion, clean scratch, discarded main plane or free native rescaling is +credited. `PROOF.md` gives the identities; `NATIVE.md` fixes the native obligation +and complete substitution equation. + +The family includes an 8-role L3 instance and a 20-role L9 control. The L3 +instance has the joint-mask dimensions retained by #6937. This extends that +mask pattern, not its literal rational parameter vectors. The L9 raw single +chain is byte-bound to #6936's retained type A root. The new L18 construction +joins both arms in one complete sign Gram; it is not six independent L3 copies +or the two-chain rho=2 source root. + +| Instance | Roles | Units | HOST | IDLE_ONE | QUERY | Ordinary events | +|---|---:|---:|---:|---:|---:|---:| +| L3 | 8 | 9 | 3 | 6 | 3 | 179 | +| L9 | 20 | 21 | 9 | 52 | 3 | 712 | +| L18 | 38 | 39 | 18 | 181 | 3 | 2,168 | + +For L18 the ordinary count is 1,041 ADD, 189 SCALE, 858 SWAP and 80 LAMBDA. +Every emitted rational scalar is dyadic, maximum absolute value 5/2. Primary +forward replay at Q=1,-1,i,-i retains every independent D variable; its +characterwise prefix coefficients have common denominator at most 2 and +maximum row l1 norm 83. These are caller measurements, not a native precision +certificate. Independent chronological majorants are retained separately. + +The target histogram is +`H145 + H81 + 4H73 + 5H65 + 4H57 + 5H49 + 3H41 + 4H33 + 5H25 + 3H17 + 3H9`. +The paid work outside the native is `181H8 + 3H1`. At pending complex comparison +kappa 0.00362701882, each native call's signed paid-minus-helper cost per port +must be below **17.13134090285433**, before ordinary and outer margins. +The direct `2H8+2H1` baseline fails. These are conditional comparison gates, +not exponent certificates or admission of pending source assumptions. + +Two scoped completion screens are included. Same-frame boundary remixing of +the retained two-plane native cannot supply this resonant endpoint. For the +fixed coordinate-role idle-merging model, even its exact optimum cannot repay +the F+H1 native deficit: maximum saving9.70728992518 versus required +10.08182803488 per port. Arbitrary noncoordinate idle directions, changed +roots and larger native rewrites remain open; see `NATIVE.md` and +`IDLE-COALESCING.md`. + +From this package directory, run with Python 3.12 and the standard library: + +``` +python3 -I -B generate.py +python3 -I -B replay.py +python3 -I -B cost.py +python3 -I -B review.py +python3 -I -B independent.py --package . --out INDEPENDENT.json +python3 -I -B idle_coalescing.py --receipt IDLE-COALESCING.json +``` + +`generate.py` checks local input SHA256, regenerates each root and caller +without writing, compares the g=9 chain to the retained source, and checks both +retained L3 sector normalizations and joint masks. `--write` explicitly +regenerates output. `replay.py` checks all four Q characters and rejects deletion +of HOST, QUERY, IDLE_ONE, LAMBDA and ADD. Independent root, formal-ring caller +and tariff checks are registered in `VERIFY.json`. Registered commands are +read-only. Expected receipts are package-local. + +Exports are authenticated by `INPUT-PINS.json`, including original commit/path +and SHA256. Catalogue and selected-record provenance is bound at main +`7c49fe32c55de02c2c873655c804b16e4c3fef0a` in `SOURCES.json`. Replay requires no +unmerged source Git history. + +## Open next questions + +1. Can a physical native implement resonant HOST below its signed gate, + including owned lifetimes, helper outputs, ordinary work and frame delivery? + Start from `NATIVE.md`; a profitable native word is missing. +2. Can the 181 separate rank-eight idles be fused by an emitted legal caller? + Start with a common carrier/basis schedule and replay it before pricing. +3. What raw scalar, LAMBDA, tape and width tariff supports caller, native and + outer reduction? The dyadic caller removes one alphabet obstacle, but those + framework and physical obligations remain. + +Structured questions are in `TASK.json`. The five framework assumptions +(native_all_columns, owned_erasure, compiler, precision_tape, analytic_recovery) +are neither proved nor discharged. Pending per-port/HOST/LAMBDA/IDLE forms need +their own admission. No frontier changes. + +Credit: DreamingOfClouds's #6937 data and #6842 sector normalization; #6936's +retained root and grammar, including @CubeJerry (Jerry Chen)'s #6912 type A root, Ali Romman's +helper mechanism, unpaidmoon's phase tests and icekylinx's grid. The complete +sign header and bare sector endpoint are prior mechanisms; the new contribution +is the connected eighteen-stage mask geometry and its emitted dyadic caller. +Substantial OpenAI Codex assistance; separate implementations supplied independent +checks. No human or maintainer review. Apache-2.0; see `NOTICE` and `REVIEW.json`. + +From the repository root, the registered replay command is: + +``` +python3.12 -B scripts/research_package.py --package research/connected-l18-root-caller +``` + +Direct checks end with `PASS_ROOT_CALLER 18 2370`, +`PASS_FOUR_CHARACTER_CALLER`, `PASS_EMITTED_CENSUS` and +`PASS_INDEPENDENT_CONNECTED_ROOT`. + +The source-bound window check in [COALESCING-WINDOW.md](COALESCING-WINDOW.md) +extends the fixed coordinate-role repair exclusion to every κ in +[0.00362701882, 0.01], using a uniformly negative derivative of its complete +signed moment. It does not exclude noncoordinate idle directions, different +natives or changed roots. diff --git a/research/connected-l18-root-caller/REPLAY.json b/research/connected-l18-root-caller/REPLAY.json new file mode 100644 index 0000000000..8e7c07e9fc --- /dev/null +++ b/research/connected-l18-root-caller/REPLAY.json @@ -0,0 +1,119 @@ +{ + "3": { + "characters": [ + { + "ok": true, + "peak_monomials": 17, + "common_denominator": "6", + "denominator_bits": 3, + "max_coefficient_row_l1": "9" + }, + { + "ok": true, + "peak_monomials": 19, + "common_denominator": "6", + "denominator_bits": 3, + "max_coefficient_row_l1": "22" + }, + { + "ok": true, + "peak_monomials": 19, + "common_denominator": "6", + "denominator_bits": 3, + "max_coefficient_row_l1": "22" + }, + { + "ok": true, + "peak_monomials": 17, + "common_denominator": "6", + "denominator_bits": 3, + "max_coefficient_row_l1": "9" + } + ], + "controls": { + "drop_HOST": true, + "drop_QUERY": true, + "drop_IDLE_ONE": true, + "drop_LAMBDA": true, + "drop_ADD": true + } + }, + "9": { + "characters": [ + { + "ok": true, + "peak_monomials": 43, + "common_denominator": "6", + "denominator_bits": 3, + "max_coefficient_row_l1": "17" + }, + { + "ok": true, + "peak_monomials": 54, + "common_denominator": "6", + "denominator_bits": 3, + "max_coefficient_row_l1": "48" + }, + { + "ok": true, + "peak_monomials": 54, + "common_denominator": "6", + "denominator_bits": 3, + "max_coefficient_row_l1": "48" + }, + { + "ok": true, + "peak_monomials": 43, + "common_denominator": "6", + "denominator_bits": 3, + "max_coefficient_row_l1": "17" + } + ], + "controls": { + "drop_HOST": true, + "drop_QUERY": true, + "drop_IDLE_ONE": true, + "drop_LAMBDA": true, + "drop_ADD": true + } + }, + "18": { + "characters": [ + { + "ok": true, + "peak_monomials": 76, + "common_denominator": "2", + "denominator_bits": 2, + "max_coefficient_row_l1": "27" + }, + { + "ok": true, + "peak_monomials": 141, + "common_denominator": "2", + "denominator_bits": 2, + "max_coefficient_row_l1": "83" + }, + { + "ok": true, + "peak_monomials": 141, + "common_denominator": "2", + "denominator_bits": 2, + "max_coefficient_row_l1": "83" + }, + { + "ok": true, + "peak_monomials": 76, + "common_denominator": "2", + "denominator_bits": 2, + "max_coefficient_row_l1": "27" + } + ], + "controls": { + "drop_HOST": true, + "drop_QUERY": true, + "drop_IDLE_ONE": true, + "drop_LAMBDA": true, + "drop_ADD": true + } + } +} diff --git a/research/connected-l18-root-caller/REVIEW.json b/research/connected-l18-root-caller/REVIEW.json new file mode 100644 index 0000000000..493bc58419 --- /dev/null +++ b/research/connected-l18-root-caller/REVIEW.json @@ -0,0 +1,32 @@ +{ + "scope": "Connected L18 root and conditional emitted caller, not native or exponent admission.", + "independence": "Root and tariff implementations were authored separately and import no primary generator, matrix helpers or forward replay.", + "root_checks": "Exact sign Gram, sector endpoint,36 prefix commutators, hosted/residual projectors, formal all18-D endpoint at both sectors, altered header/unit/mask controls.", + "tariff_checks": "Independent event census, actual unbundled profile, chronological noncancelling coefficient mass below2^158 and dyadic denominator height at most51; excludes native internals.", + "adapter": "review.py loads frozen independent modules and compares returned objects with frozen receipts; it writes no files. Modules are copied unchanged; standalone original CLI supports explicit output paths.", + "evidence": [ + "review/ROOT-L18.json", + "review/ROOT-L3.json", + "review/ROOT-L9.json", + "review/TARIFF-L18.json", + "review/PINS.json", + "review/NATIVE-SCREEN.json", + "INDEPENDENT.json", + "IDLE-COALESCING.json", + "review/COALESCING-CORROBORATION.json" + ], + "source_boundary": "Complete sign header and bare sector endpoint are prior work. New connected18stage geometry and emitted dyadic caller are the contribution. OriginalL3 retained roots are checked as pattern and normalization controls, not claimed parameter-equivalent.", + "limitations": [ + "HOST(t=-1) native word missing", + "No full ordinary bit tariff or native precision certificate", + "Five framework assumptions and pending operation admissions remain", + "No new kappa", + "No human or maintainer review" + ], + "native_screen": "Separate exact replay of all1480 independent public inputs authenticates96 typeA endpoints and same-frame groups. Frozen-source coefficient audit only; no new physical/all-width claim.", + "reverse_formal": "Separate reverse adjoint coefficient engine, Gaussian rationals with explicit Q exponent reduced modulo4 and unrestricted18-dimensional D exponent tuples; no character evaluations and no primary imports. All1444 coefficients and8 perturbation controls pass.", + "independent_script_sha256": "a83786791d0f93d98aa8c108e94f2162dd9b470249b2758a560a6a57e8018867", + "independent_original_sha256": "6543a41ec74e76e49a2819cc0c4e1f69fdc471ad008362cbcb16c22bd3e58955", + "reverse_adapter": "Only docstring wording and an explicit refusal of optimized Python were added; ring/replay/census/control logic unchanged.", + "coordinate_idle_screen": "Solver-free eligibility union/intersection compression,17 forced host pairs and2 bridge choices. Separate interval implementation corroborates the optimal saving and source-bound required bill. Excludes arbitrary noncoordinate/shared-direction idle decompositions and changed root/native/encoding." +} diff --git a/research/connected-l18-root-caller/SOURCES.json b/research/connected-l18-root-caller/SOURCES.json new file mode 100644 index 0000000000..75ea7c3d55 --- /dev/null +++ b/research/connected-l18-root-caller/SOURCES.json @@ -0,0 +1,18 @@ +{ + "schema_version": 1, + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "files": [ + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a", + "sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa" + } + ] +} diff --git a/research/connected-l18-root-caller/TASK.json b/research/connected-l18-root-caller/TASK.json new file mode 100644 index 0000000000..891cf054fe --- /dev/null +++ b/research/connected-l18-root-caller/TASK.json @@ -0,0 +1,130 @@ +{ + "schema_version": 1, + "task_id": "p104-side-correction", + "priority_revision": 8, + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "original_card": { + "id": "p104-side-correction", + "question": "Can joint helper bases and a legal causal split improve the complete P104 productive/paid invoice?", + "starting_points": [ + "docs/research/current-priorities.md", + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "research/p104-helper-subspace-splits/README.md", + "research/dyadic-helper-channel-capacity/README.md" + ], + "methods": [ + "Construct and independently check one source-bound instance of the stated first experiment.", + "Seek an exact counterexample or target-specific complete-budget obstruction to that same proposed change." + ], + "acceptance_gate": "An exact arbitrary-input identity, source/target frame availability and restoration at the chosen cut, plus the complete channel+correction+idle/hosting bill or an explicit favorable bound. The native channel alone is not a supplier. A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_selected_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read revision 8, the selected review and live exact-source handoffs. Then follow this card's bounded first_experiment.", + "scope": "Source-bound orientation only, not a supplier replay or theorem proof." + }, + "first_experiment": "Start with the selected #5599 emitted word and review pending #5718 distinct input/output bases plus #5717/#5719 coverage before claiming work. Pick one uncovered source word, helper group and cut region. Prove the arbitrary-input relation and legal entry/exit corrections, then compare full target and paid profiles. Reject if completion, owned lifetimes or consumer costs repay the gain. A static pairing rank alone is not a physical split.", + "bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.", + "allowed_variations": [ + "One exact source head, helper/cut region or quantified proposition and changed hypothesis; check live handoffs first. Different seeds are not different scopes." + ], + "scope_change_triggers": [ + "Changing source head, helper/cut domain, operation alphabet or caller boundary without recording the new scope.", + "Treating an archived proposal or local numerical pass as complete supplier admission." + ], + "overlap_terms": [ + "P104", + "helper basis", + "helper split", + "5718", + "dyadic capacity" + ], + "existing_checks": [ + { + "scope": "PR #4133: literal-slot defect", + "evidence": "research/p104-literal-slot-defect/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "88666f1dee93fbd85b31fd5d6f91a219e111b5f4", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4136: uniform commutation gap", + "evidence": "research/p104-uniform-commutation-gap/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "281ce601a8be9db470de630759179c23e1dfaa88", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4140: uniform encoding gap", + "evidence": "research/p104-uniform-encoding-gap/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "de25c6525aa866962309df5d107b32d55e6e5628", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4153: source-chart shortcut exhausts its optimistic allowance", + "evidence": "research/p104-source-chart-shortcut/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "9123241fea53df77e51ffe30d9aca1625d4bf3a8", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "PR #4154: fiber-tag seam mismatch", + "evidence": "research/p104-fiber-tag-seam/README.md", + "remaining": "Independently validate the stated scope or change its producer/consumer premise and pay the complete boundary.", + "status": "author-checked", + "source_commit": "4ffcdaee5d6255a9cea1fe53a5424435068089d0", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.", + "evidence": "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "remaining": "The next experiment must identify uncovered source-specific work. Successor archive intake does not transfer this admission.", + "status": "reviewed", + "source_commit": "09dd0965711ca7eeb169057a420abab1c9052137", + "selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + } + ] + }, + "scope_status": "changed", + "actual_scope": "Construct an integral connected rho=1 L18 root extending the retained L3 mask pattern, emit and exactly replay its Q4 caller, and state its complete unbundled native price gate.", + "scope_change_reason": "The L3 sector normalization and source single-chain header permit a new connected eighteen-stage mask geometry. This is a caller result with an unimplemented resonant native contract.", + "bottleneck_link": "Resolves the connected root/caller obligation and supplies an exact native demand; no complete supplier or new kappa.", + "budget_minutes": 70, + "stop_rule": "Freeze exact root and emitted caller with independent checks and explicit missing native/ordinary/outer obligations.", + "outcome": "completed", + "evidence": "generate.py, replay.py, cost.py, independent root/tariff/formal replay, exact root and caller JSONs.", + "author": "Integer-multiplication research session", + "ai_assistance": "Substantial OpenAI Codex assistance with separate-agent independent exact checks; no human review.", + "selected_frontier_changed": false, + "open_questions": [ + { + "question": "Can a resonant native meet the complete signed gate?", + "why_it_matters": "HOST(t=-1) is still supplied algebra.", + "first_step": "Emit its physical word, source/target maps, helpers and owned lifetimes, then apply NATIVE.md substitution.", + "blocked_by": "No profitable native supplied." + }, + { + "question": "Can separate idles be legally fused?", + "why_it_matters": "181 separate H8 jobs set the actual native allowance.", + "first_step": "Emit a shared carrier/basis schedule and exact replay before repricing.", + "blocked_by": "No fused caller supplied." + }, + { + "question": "What complete raw tariff and precision supports this caller?", + "why_it_matters": "Ordinary dyadic operations and LAMBDA counts are not a multiplier cost certificate.", + "first_step": "Combine native prefix bounds, child errors, compiler and outer inequalities.", + "blocked_by": "Physical native and framework admissions remain open." + } + ] +} diff --git a/research/connected-l18-root-caller/VALIDATION.md b/research/connected-l18-root-caller/VALIDATION.md new file mode 100644 index 0000000000..216600cf37 --- /dev/null +++ b/research/connected-l18-root-caller/VALIDATION.md @@ -0,0 +1,53 @@ +# Publication validation + +Canonical base: `7c49fe32c55de02c2c873655c804b16e4c3fef0a`. +Python 3.12; standard library; source exports authenticated locally. + +```sh +python3 -B scripts/research_package.py --package research/connected-l18-root-caller +``` + +The original six registered commands passed in the publication worktree. The 44 +frozen author files exactly matched their prepublication SHA256 manifest +after replay; none was rewritten. The lead then added the separately verified uniform-window extension +and its seventh registered command. The tests cover: + +- Exact deterministic L3/L9/L18 root and caller regeneration, byte-bound + predecessor controls and all stage-mask commutators. +- Formal D variables at all four Q characters, with deletion controls. +- Actual scalar/native/idle/query census and conditional native price gates. +- Separately implemented root, mask and all-D sector replay, chronological + scalar bounds, and the complete all-input native remix screen. +- Independently implemented reverse Q4 quotient-ring replay of all 1,444 + caller coefficients, retaining repeated D powers; eight adverse controls. +- The exact eligibility-compression optimum and independently corroborated + rational full-bill intervals. Three malformed incidence/host controls reject. + +The lead separately reviewed the sign-Gram endpoint derivation, the hosted +pair factorization and Q4 lift, the source/frame applicability of the remix +obstruction, and the concavity/compression proof. These are model-assisted +checks, not external human review or a formal proof-kernel certificate. + +The original five assertion-based entry points were executed under `-O` and all +explicitly rejected that mode. The coalescing checker, which uses explicit +exceptions, passed an isolated optimized replay against its retained receipt. +No optimized-mode pass is claimed for the entire package. Source-independent +temporary-directory execution was also checked by the checker authors. + +Whitespace and committed-byte/mode preflights precede publication. The +remote whole-tree SHA is required to match the tested base-plus-package tree; +no sparse-checkout omission is a deletion. The optional full-history source +preflight was not run in this shallow repository. No hosted CI or unrelated +repository-wide baseline run is claimed. + +The positive result is the finite connected root geometry and exact caller +with a specified HOST interface. The native remains unbuilt. The negative +result concerns the pinned F+H1 profile and fixed coordinate-role idle +coalescing, excluding noncoordinate idle decompositions, changed roots, +different native words and larger coupled constructions. **No new κ.** + +The uniform-window extension uses the unchanged public interval engine; only +its source pin and read-only receipt/control interface were adapted for this +package. Its complete histogram and numerical enclosure match the independent +review after the engine-hash provenance update. The added entry point rejects +optimized execution; paid-adapter omission and reversed-interval controls fail. diff --git a/research/connected-l18-root-caller/VERIFY.json b/research/connected-l18-root-caller/VERIFY.json new file mode 100644 index 0000000000..c6528a6374 --- /dev/null +++ b/research/connected-l18-root-caller/VERIFY.json @@ -0,0 +1,97 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/generate.py" + ], + "timeout_seconds": 120, + "checks": "Exact source hashes, root/caller regeneration and source controls" + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/replay.py" + ], + "timeout_seconds": 120, + "checks": "Formal D at all four Q characters and deletion controls" + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/cost.py" + ], + "timeout_seconds": 120, + "checks": "Actual unbundled census and conditional native gates" + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/review.py" + ], + "timeout_seconds": 120, + "checks": "Independent root and dyadic tariff checks" + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/independent.py", + "--package", + "{package}", + "--out", + "{package}/INDEPENDENT.json" + ], + "timeout_seconds": 120, + "checks": "Independent reverse replay of all1444 formal Q4/D coefficients and eight rejection controls." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/idle_coalescing.py", + "--package-root", + "{package}", + "--receipt", + "{package}/IDLE-COALESCING.json" + ], + "timeout_seconds": 120, + "checks": "Exact coordinate-role idle-compression optimum, source-bound full invoice intervals and three rejection controls." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/review/coalescing_window.py", + "--root", + "{package}/root_L18.json", + "--caller", + "{package}/caller_L18.json", + "--invoice", + "{package}/inputs/base_invoice.json", + "--engine", + "{package}/review/interval_engine.py", + "--receipt", + "{package}/COALESCING-WINDOW.json" + ], + "timeout_seconds": 120, + "checks": "Independent complete-profile uniform negativity on kappa [.00362701882,.01], exact interval derivative bound and two negative controls." + } + ] +} diff --git a/research/connected-l18-root-caller/caller_L18.json b/research/connected-l18-root-caller/caller_L18.json new file mode 100644 index 0000000000..2830c0096b --- /dev/null +++ b/research/connected-l18-root-caller/caller_L18.json @@ -0,0 +1 @@ +{"roles": 38, "stages": 18, "masks": [262143, 511, 255, 255, 510, 254, 254, 508, 252, 252, 496, 240, 240, 480, 224, 224, 384, 128, 128, 1792, 1536, 1536, 3840, 3584, 3584, 16128, 15872, 15872, 32512, 32256, 32256, 130816, 130560, 130560, 261888, 261632, 261632, 256], "events": [["ADD", 1, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["ADD", 0, 2, "-1"], ["SWAP", 3, 2], ["ADD", 0, 1, "-1"], ["SWAP", 2, 1], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["ADD", 1, 3, "1"], ["ADD", 0, 2, "1"], ["SWAP", 3, 2], ["ADD", 3, 1, "1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["ADD", 3, 0, "-1"], ["ADD", 1, 0, "1"], ["ADD", 1, 3, "1"], ["SCALE", 3, "-1"], ["ADD", 1, 2, "-1"], ["ADD", 0, 2, "-1"], ["ADD", 3, 1, "1"], ["ADD", 0, 1, "-1"], ["SWAP", 2, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 0, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [0]], ["IDLE_ONE", 3, [0]], ["ADD", 1, 3, "-1"], ["ADD", 0, 3, "1"], ["ADD", 3, 2, "-1"], ["ADD", 1, 2, "2"], ["ADD", 0, 2, "-1"], ["SCALE", 2, "-1"], ["ADD", 0, 1, "1"], ["SWAP", 3, 1], ["ADD", 3, 0, "-1"], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "1"], ["ADD", 5, 6, "1"], ["ADD", 4, 6, "1"], ["ADD", 1, 6, "2"], ["ADD", 0, 6, "1"], ["SCALE", 6, "-1"], ["ADD", 4, 5, "1"], ["SCALE", 5, "-1"], ["SWAP", 6, 5], ["ADD", 6, 4, "1"], ["ADD", 0, 4, "-1"], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 1, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [1]], ["IDLE_ONE", 3, [1]], ["IDLE_ONE", 4, [1]], ["IDLE_ONE", 5, [1]], ["IDLE_ONE", 6, [1]], ["ADD", 3, 6, "-2"], ["ADD", 2, 6, "-1"], ["ADD", 0, 6, "1"], ["SWAP", 5, 3], ["ADD", 6, 2, "1"], ["ADD", 5, 2, "-2"], ["ADD", 1, 2, "1"], ["SCALE", 2, "-1"], ["SWAP", 4, 2], ["ADD", 0, 1, "1"], ["SWAP", 5, 1], ["ADD", 6, 0, "-1"], ["ADD", 4, 0, "1"], ["ADD", 1, 0, "2"], ["ADD", 7, 9, "1"], ["ADD", 6, 9, "-1"], ["ADD", 4, 9, "2"], ["ADD", 1, 9, "2"], ["ADD", 0, 9, "1"], ["ADD", 5, 8, "-1"], ["ADD", 4, 8, "-1"], ["ADD", 1, 8, "-2"], ["ADD", 0, 8, "-1"], ["SWAP", 9, 8], ["ADD", 5, 7, "-1"], ["ADD", 4, 7, "-1"], ["ADD", 1, 7, "-2"], ["ADD", 0, 7, "-1"], ["SWAP", 8, 7], ["ADD", 7, 6, "1"], ["ADD", 4, 6, "1"], ["SCALE", 6, "-1"], ["ADD", 6, 5, "-1"], ["ADD", 1, 5, "-2"], ["SCALE", 5, "-1"], ["ADD", 6, 4, "1"], ["SWAP", 5, 4], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 2, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [2]], ["IDLE_ONE", 3, [2]], ["IDLE_ONE", 4, [2]], ["IDLE_ONE", 5, [2]], ["IDLE_ONE", 6, [2]], ["IDLE_ONE", 7, [2]], ["IDLE_ONE", 8, [2]], ["IDLE_ONE", 9, [2]], ["ADD", 0, 9, "1"], ["ADD", 6, 8, "-2"], ["ADD", 3, 8, "-2"], ["ADD", 2, 8, "-1"], ["SWAP", 9, 8], ["ADD", 1, 7, "-1"], ["ADD", 9, 6, "1/2"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 0, 6, "-1/2"], ["SCALE", 6, "-1/2"], ["SWAP", 7, 6], ["ADD", 9, 3, "-1/2"], ["ADD", 7, 3, "1/2"], ["ADD", 2, 3, "-1/2"], ["ADD", 0, 3, "1/2"], ["SCALE", 3, "-1"], ["SWAP", 5, 3], ["ADD", 9, 2, "-1"], ["ADD", 7, 2, "1"], ["ADD", 5, 2, "-2"], ["ADD", 0, 2, "1"], ["SCALE", 2, "-2"], ["SWAP", 4, 2], ["ADD", 9, 1, "-1"], ["ADD", 7, 1, "1"], ["ADD", 5, 1, "-1"], ["ADD", 0, 1, "1"], ["SWAP", 4, 1], ["ADD", 5, 0, "1"], ["ADD", 4, 0, "1"], ["ADD", 1, 0, "2"], ["ADD", 7, 9, "1"], ["SCALE", 9, "-1"], ["ADD", 7, 8, "-1"], ["ADD", 4, 8, "-2"], ["ADD", 1, 8, "-2"], ["ADD", 0, 8, "-1"], ["ADD", 9, 7, "1"], ["ADD", 0, 7, "-1"], ["SWAP", 8, 7], ["SWAP", 8, 6], ["SWAP", 7, 5], ["SWAP", 6, 4], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 3, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [3]], ["IDLE_ONE", 3, [3]], ["IDLE_ONE", 4, [3]], ["IDLE_ONE", 5, [3]], ["IDLE_ONE", 6, [3]], ["IDLE_ONE", 7, [3]], ["IDLE_ONE", 8, [3]], ["IDLE_ONE", 9, [3]], ["ADD", 6, 9, "-2"], ["ADD", 3, 9, "-2"], ["ADD", 2, 9, "-1"], ["ADD", 1, 9, "1"], ["SCALE", 9, "-1"], ["SWAP", 9, 8], ["SWAP", 9, 7], ["ADD", 8, 6, "-1/2"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 1, 6, "1"], ["ADD", 0, 6, "-1/2"], ["SCALE", 6, "-1/2"], ["SWAP", 7, 6], ["SWAP", 9, 5], ["SWAP", 9, 3], ["ADD", 9, 2, "-2"], ["ADD", 8, 2, "-1"], ["ADD", 7, 2, "-1"], ["ADD", 1, 2, "2"], ["ADD", 0, 2, "-1"], ["SCALE", 2, "-2"], ["SWAP", 4, 2], ["ADD", 0, 1, "1"], ["SWAP", 9, 1], ["ADD", 9, 0, "-1"], ["ADD", 8, 0, "1"], ["ADD", 7, 0, "1"], ["ADD", 4, 0, "2"], ["ADD", 1, 0, "2"], ["ADD", 11, 12, "1"], ["ADD", 10, 12, "1"], ["ADD", 7, 12, "2"], ["ADD", 4, 12, "2"], ["ADD", 1, 12, "2"], ["ADD", 0, 12, "1"], ["SCALE", 12, "-1"], ["ADD", 10, 11, "1"], ["SCALE", 11, "-1"], ["SWAP", 12, 11], ["ADD", 12, 10, "1"], ["ADD", 0, 10, "-1"], ["SWAP", 11, 9], ["SWAP", 10, 8], ["SWAP", 9, 7], ["SWAP", 8, 6], ["SWAP", 7, 5], ["SWAP", 6, 4], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 4, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [4]], ["IDLE_ONE", 3, [4]], ["IDLE_ONE", 4, [4]], ["IDLE_ONE", 5, [4]], ["IDLE_ONE", 6, [4]], ["IDLE_ONE", 7, [4]], ["IDLE_ONE", 8, [4]], ["IDLE_ONE", 9, [4]], ["IDLE_ONE", 10, [4]], ["IDLE_ONE", 11, [4]], ["IDLE_ONE", 12, [4]], ["ADD", 9, 12, "-2"], ["ADD", 6, 12, "-2"], ["ADD", 3, 12, "-2"], ["ADD", 2, 12, "-1"], ["ADD", 0, 12, "1"], ["SWAP", 11, 10], ["ADD", 12, 9, "1/2"], ["ADD", 6, 9, "-1"], ["ADD", 3, 9, "-1"], ["ADD", 2, 9, "-1/2"], ["ADD", 1, 9, "1/2"], ["SCALE", 9, "-1/2"], ["SWAP", 10, 9], ["SWAP", 11, 8], ["SWAP", 11, 7], ["ADD", 12, 6, "1/2"], ["ADD", 10, 6, "-1/2"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 1, 6, "1/2"], ["SCALE", 6, "-1"], ["SWAP", 7, 6], ["SWAP", 11, 5], ["SWAP", 11, 3], ["ADD", 12, 2, "1"], ["ADD", 11, 2, "-2"], ["ADD", 10, 2, "-1"], ["ADD", 7, 2, "-2"], ["ADD", 1, 2, "1"], ["SCALE", 2, "-2"], ["SWAP", 4, 2], ["ADD", 0, 1, "1"], ["SWAP", 11, 1], ["ADD", 12, 0, "-1"], ["ADD", 10, 0, "1"], ["ADD", 7, 0, "2"], ["ADD", 4, 0, "2"], ["ADD", 1, 0, "2"], ["ADD", 13, 15, "1"], ["ADD", 12, 15, "-1"], ["ADD", 10, 15, "2"], ["ADD", 7, 15, "2"], ["ADD", 4, 15, "2"], ["ADD", 1, 15, "2"], ["ADD", 0, 15, "1"], ["ADD", 11, 14, "-1"], ["ADD", 10, 14, "-1"], ["ADD", 7, 14, "-2"], ["ADD", 4, 14, "-2"], ["ADD", 1, 14, "-2"], ["ADD", 0, 14, "-1"], ["SWAP", 15, 14], ["ADD", 11, 13, "-1"], ["ADD", 10, 13, "-1"], ["ADD", 7, 13, "-2"], ["ADD", 4, 13, "-2"], ["ADD", 1, 13, "-2"], ["ADD", 0, 13, "-1"], ["SWAP", 14, 13], ["ADD", 13, 12, "1"], ["ADD", 10, 12, "1"], ["SCALE", 12, "-1"], ["ADD", 12, 11, "-1"], ["ADD", 7, 11, "-2"], ["ADD", 4, 11, "-2"], ["ADD", 1, 11, "-2"], ["SCALE", 11, "-1"], ["ADD", 12, 10, "1"], ["SWAP", 11, 10], ["SWAP", 11, 9], ["SWAP", 10, 8], ["SWAP", 9, 7], ["SWAP", 8, 6], ["SWAP", 7, 5], ["SWAP", 6, 4], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 5, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [5]], ["IDLE_ONE", 3, [5]], ["IDLE_ONE", 4, [5]], ["IDLE_ONE", 5, [5]], ["IDLE_ONE", 6, [5]], ["IDLE_ONE", 7, [5]], ["IDLE_ONE", 8, [5]], ["IDLE_ONE", 9, [5]], ["IDLE_ONE", 10, [5]], ["IDLE_ONE", 11, [5]], ["IDLE_ONE", 12, [5]], ["IDLE_ONE", 13, [5]], ["IDLE_ONE", 14, [5]], ["IDLE_ONE", 15, [5]], ["ADD", 0, 15, "1"], ["ADD", 12, 14, "-2"], ["ADD", 9, 14, "-2"], ["ADD", 6, 14, "-2"], ["ADD", 3, 14, "-2"], ["ADD", 2, 14, "-1"], ["SWAP", 15, 14], ["ADD", 1, 13, "-1"], ["ADD", 15, 12, "1/2"], ["ADD", 9, 12, "-1"], ["ADD", 6, 12, "-1"], ["ADD", 3, 12, "-1"], ["ADD", 2, 12, "-1/2"], ["ADD", 0, 12, "-1/2"], ["SCALE", 12, "-1/2"], ["SWAP", 13, 12], ["ADD", 15, 9, "-1/2"], ["ADD", 13, 9, "1/2"], ["ADD", 6, 9, "-1"], ["ADD", 3, 9, "-1"], ["ADD", 2, 9, "-1/2"], ["ADD", 0, 9, "1/2"], ["SCALE", 9, "-1"], ["SWAP", 11, 9], ["SWAP", 10, 8], ["SWAP", 10, 7], ["ADD", 15, 6, "-1/2"], ["ADD", 13, 6, "1/2"], ["ADD", 11, 6, "-1"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 0, 6, "1/2"], ["SCALE", 6, "-1"], ["SWAP", 7, 6], ["SWAP", 10, 5], ["SWAP", 10, 3], ["ADD", 15, 2, "-1"], ["ADD", 13, 2, "1"], ["ADD", 11, 2, "-2"], ["ADD", 10, 2, "-2"], ["ADD", 7, 2, "-2"], ["ADD", 0, 2, "1"], ["SCALE", 2, "-2"], ["SWAP", 4, 2], ["ADD", 15, 1, "-1"], ["ADD", 13, 1, "1"], ["ADD", 11, 1, "-1"], ["ADD", 0, 1, "1"], ["SWAP", 10, 1], ["ADD", 11, 0, "1"], ["ADD", 10, 0, "1"], ["ADD", 7, 0, "2"], ["ADD", 4, 0, "2"], ["ADD", 1, 0, "2"], ["ADD", 13, 15, "1"], ["SCALE", 15, "-1"], ["ADD", 13, 14, "-1"], ["ADD", 10, 14, "-2"], ["ADD", 7, 14, "-2"], ["ADD", 4, 14, "-2"], ["ADD", 1, 14, "-2"], ["ADD", 0, 14, "-1"], ["ADD", 15, 13, "1"], ["ADD", 0, 13, "-1"], ["SWAP", 14, 13], ["SWAP", 14, 12], ["SWAP", 13, 11], ["SWAP", 12, 10], ["SWAP", 11, 9], ["SWAP", 10, 8], ["SWAP", 9, 7], ["SWAP", 8, 6], ["SWAP", 7, 5], ["SWAP", 6, 4], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 6, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [6]], ["IDLE_ONE", 3, [6]], ["IDLE_ONE", 4, [6]], ["IDLE_ONE", 5, [6]], ["IDLE_ONE", 6, [6]], ["IDLE_ONE", 7, [6]], ["IDLE_ONE", 8, [6]], ["IDLE_ONE", 9, [6]], ["IDLE_ONE", 10, [6]], ["IDLE_ONE", 11, [6]], ["IDLE_ONE", 12, [6]], ["IDLE_ONE", 13, [6]], ["IDLE_ONE", 14, [6]], ["IDLE_ONE", 15, [6]], ["ADD", 12, 15, "-2"], ["ADD", 9, 15, "-2"], ["ADD", 6, 15, "-2"], ["ADD", 3, 15, "-2"], ["ADD", 2, 15, "-1"], ["ADD", 1, 15, "1"], ["SCALE", 15, "-1"], ["SWAP", 15, 14], ["SWAP", 15, 13], ["ADD", 14, 12, "-1/2"], ["ADD", 9, 12, "-1"], ["ADD", 6, 12, "-1"], ["ADD", 3, 12, "-1"], ["ADD", 2, 12, "-1/2"], ["ADD", 1, 12, "1"], ["ADD", 0, 12, "-1/2"], ["SCALE", 12, "-1/2"], ["SWAP", 13, 12], ["SWAP", 15, 11], ["SWAP", 15, 10], ["ADD", 14, 9, "-1/2"], ["ADD", 13, 9, "-1/2"], ["ADD", 6, 9, "-1"], ["ADD", 3, 9, "-1"], ["ADD", 2, 9, "-1/2"], ["ADD", 1, 9, "1"], ["ADD", 0, 9, "-1/2"], ["SCALE", 9, "-1"], ["SWAP", 10, 9], ["SWAP", 15, 8], ["SWAP", 15, 7], ["ADD", 14, 6, "-1/2"], ["ADD", 13, 6, "-1/2"], ["ADD", 10, 6, "-1"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 1, 6, "1"], ["ADD", 0, 6, "-1/2"], ["SCALE", 6, "-1"], ["SWAP", 7, 6], ["SWAP", 15, 5], ["SWAP", 15, 3], ["ADD", 15, 2, "-2"], ["ADD", 14, 2, "-1"], ["ADD", 13, 2, "-1"], ["ADD", 10, 2, "-2"], ["ADD", 7, 2, "-2"], ["ADD", 1, 2, "2"], ["ADD", 0, 2, "-1"], ["SCALE", 2, "-2"], ["SWAP", 4, 2], ["ADD", 0, 1, "1"], ["SWAP", 15, 1], ["ADD", 15, 0, "-1"], ["ADD", 14, 0, "1"], ["ADD", 13, 0, "1"], ["ADD", 10, 0, "2"], ["ADD", 7, 0, "2"], ["ADD", 4, 0, "2"], ["ADD", 1, 0, "2"], ["ADD", 17, 18, "1"], ["ADD", 16, 18, "1"], ["ADD", 13, 18, "2"], ["ADD", 10, 18, "2"], ["ADD", 7, 18, "2"], ["ADD", 4, 18, "2"], ["ADD", 1, 18, "2"], ["ADD", 0, 18, "1"], ["SCALE", 18, "-1"], ["ADD", 16, 17, "1"], ["SCALE", 17, "-1"], ["SWAP", 18, 17], ["ADD", 18, 16, "1"], ["ADD", 0, 16, "-1"], ["SWAP", 17, 15], ["SWAP", 16, 14], ["SWAP", 15, 13], ["SWAP", 14, 12], ["SWAP", 13, 11], ["SWAP", 12, 10], ["SWAP", 11, 9], ["SWAP", 10, 8], ["SWAP", 9, 7], ["SWAP", 8, 6], ["SWAP", 7, 5], ["SWAP", 6, 4], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 7, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [7]], ["IDLE_ONE", 3, [7]], ["IDLE_ONE", 4, [7]], ["IDLE_ONE", 5, [7]], ["IDLE_ONE", 6, [7]], ["IDLE_ONE", 7, [7]], ["IDLE_ONE", 8, [7]], ["IDLE_ONE", 9, [7]], ["IDLE_ONE", 10, [7]], ["IDLE_ONE", 11, [7]], ["IDLE_ONE", 12, [7]], ["IDLE_ONE", 13, [7]], ["IDLE_ONE", 14, [7]], ["IDLE_ONE", 15, [7]], ["IDLE_ONE", 16, [7]], ["IDLE_ONE", 17, [7]], ["IDLE_ONE", 18, [7]], ["ADD", 15, 18, "-2"], ["ADD", 12, 18, "-2"], ["ADD", 9, 18, "-2"], ["ADD", 6, 18, "-2"], ["ADD", 3, 18, "-2"], ["ADD", 2, 18, "-1"], ["ADD", 0, 18, "1"], ["SWAP", 17, 16], ["ADD", 18, 15, "1/2"], ["ADD", 12, 15, "-1"], ["ADD", 9, 15, "-1"], ["ADD", 6, 15, "-1"], ["ADD", 3, 15, "-1"], ["ADD", 2, 15, "-1/2"], ["ADD", 1, 15, "1/2"], ["SCALE", 15, "-1/2"], ["SWAP", 16, 15], ["SWAP", 17, 14], ["SWAP", 17, 13], ["ADD", 18, 12, "1/2"], ["ADD", 16, 12, "-1/2"], ["ADD", 9, 12, "-1"], ["ADD", 6, 12, "-1"], ["ADD", 3, 12, "-1"], ["ADD", 2, 12, "-1/2"], ["ADD", 1, 12, "1/2"], ["SCALE", 12, "-1"], ["SWAP", 13, 12], ["SWAP", 17, 11], ["SWAP", 17, 10], ["ADD", 18, 9, "1/2"], ["ADD", 16, 9, "-1/2"], ["ADD", 13, 9, "-1"], ["ADD", 6, 9, "-1"], ["ADD", 3, 9, "-1"], ["ADD", 2, 9, "-1/2"], ["ADD", 1, 9, "1/2"], ["SCALE", 9, "-1"], ["SWAP", 10, 9], ["SWAP", 17, 8], ["SWAP", 17, 7], ["ADD", 18, 6, "1/2"], ["ADD", 16, 6, "-1/2"], ["ADD", 13, 6, "-1"], ["ADD", 10, 6, "-1"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 1, 6, "1/2"], ["SCALE", 6, "-1"], ["SWAP", 7, 6], ["SWAP", 17, 5], ["SWAP", 17, 3], ["ADD", 18, 2, "1"], ["ADD", 17, 2, "-2"], ["ADD", 16, 2, "-1"], ["ADD", 13, 2, "-2"], ["ADD", 10, 2, "-2"], ["ADD", 7, 2, "-2"], ["ADD", 1, 2, "1"], ["SCALE", 2, "-2"], ["SWAP", 4, 2], ["ADD", 0, 1, "1"], ["SWAP", 17, 1], ["ADD", 18, 0, "-1"], ["ADD", 16, 0, "1"], ["ADD", 13, 0, "2"], ["ADD", 10, 0, "2"], ["ADD", 7, 0, "2"], ["ADD", 4, 0, "2"], ["ADD", 1, 0, "2"], ["ADD", 0, 18, "-1"], ["ADD", 16, 17, "-1"], ["ADD", 13, 17, "-2"], ["ADD", 10, 17, "-2"], ["ADD", 7, 17, "-2"], ["ADD", 4, 17, "-2"], ["ADD", 1, 17, "-2"], ["ADD", 0, 17, "-1"], ["ADD", 0, 16, "-1"], ["SWAP", 17, 16], ["SWAP", 16, 15], ["SWAP", 15, 14], ["SWAP", 14, 13], ["SWAP", 13, 12], ["SWAP", 12, 11], ["SWAP", 11, 10], ["SWAP", 10, 9], ["SWAP", 9, 8], ["SWAP", 8, 7], ["SWAP", 7, 6], ["SWAP", 6, 5], ["SWAP", 5, 4], ["SWAP", 4, 3], ["SWAP", 3, 2], ["SWAP", 2, 1], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["ADD", 1, 18, "1"], ["ADD", 14, 17, "-2"], ["ADD", 11, 17, "-2"], ["ADD", 8, 17, "-2"], ["ADD", 5, 17, "-2"], ["ADD", 2, 17, "-2"], ["ADD", 0, 17, "1"], ["SCALE", 17, "-1"], ["SWAP", 16, 15], ["ADD", 17, 14, "-1/2"], ["ADD", 11, 14, "-1"], ["ADD", 8, 14, "-1"], ["ADD", 5, 14, "-1"], ["ADD", 2, 14, "-1"], ["ADD", 1, 14, "-1/2"], ["ADD", 0, 14, "1/2"], ["SCALE", 14, "-1/2"], ["SWAP", 16, 14], ["SWAP", 13, 12], ["ADD", 17, 11, "-1/2"], ["ADD", 16, 11, "-1/2"], ["ADD", 8, 11, "-1"], ["ADD", 5, 11, "-1"], ["ADD", 2, 11, "-1"], ["ADD", 1, 11, "-1/2"], ["ADD", 0, 11, "1/2"], ["SCALE", 11, "-1"], ["SWAP", 13, 11], ["SWAP", 10, 9], ["ADD", 17, 8, "-1/2"], ["ADD", 16, 8, "-1/2"], ["ADD", 13, 8, "-1"], ["ADD", 5, 8, "-1"], ["ADD", 2, 8, "-1"], ["ADD", 1, 8, "-1/2"], ["ADD", 0, 8, "1/2"], ["SCALE", 8, "-1"], ["SWAP", 10, 8], ["SWAP", 7, 6], ["ADD", 17, 5, "-1/2"], ["ADD", 16, 5, "-1/2"], ["ADD", 13, 5, "-1"], ["ADD", 10, 5, "-1"], ["ADD", 2, 5, "-1"], ["ADD", 1, 5, "-1/2"], ["ADD", 0, 5, "1/2"], ["SCALE", 5, "-1"], ["SWAP", 7, 5], ["SWAP", 4, 3], ["ADD", 17, 2, "-1/2"], ["ADD", 16, 2, "-1/2"], ["ADD", 13, 2, "-1"], ["ADD", 10, 2, "-1"], ["ADD", 7, 2, "-1"], ["ADD", 1, 2, "-1/2"], ["ADD", 0, 2, "1/2"], ["SCALE", 2, "-1"], ["SWAP", 4, 2], ["ADD", 17, 1, "-1"], ["ADD", 16, 1, "-1"], ["ADD", 13, 1, "-2"], ["ADD", 10, 1, "-2"], ["ADD", 7, 1, "-2"], ["ADD", 4, 1, "-2"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-2"], ["ADD", 17, 0, "1"], ["ADD", 16, 0, "1"], ["ADD", 13, 0, "2"], ["ADD", 10, 0, "2"], ["ADD", 7, 0, "2"], ["ADD", 4, 0, "2"], ["ADD", 1, 0, "2"], ["ADD", 34, 37, "-1"], ["ADD", 28, 37, "-1"], ["ADD", 25, 37, "-1"], ["ADD", 22, 37, "-1"], ["ADD", 19, 37, "-1"], ["ADD", 16, 37, "-1"], ["ADD", 13, 37, "-1"], ["ADD", 10, 37, "-1"], ["ADD", 7, 37, "-1"], ["ADD", 4, 37, "-1"], ["ADD", 1, 37, "-1"], ["SCALE", 37, "-1"], ["SWAP", 37, 36], ["SWAP", 36, 35], ["ADD", 31, 34, "-1"], ["ADD", 28, 34, "-1"], ["ADD", 25, 34, "-1"], ["ADD", 22, 34, "-1"], ["ADD", 19, 34, "-1"], ["SCALE", 34, "1/2"], ["SWAP", 35, 33], ["SWAP", 34, 32], ["ADD", 33, 31, "1"], ["ADD", 28, 31, "-1"], ["SWAP", 33, 30], ["SWAP", 32, 29], ["ADD", 31, 28, "1"], ["ADD", 25, 28, "-1"], ["SWAP", 30, 28], ["SWAP", 31, 27], ["SWAP", 30, 26], ["ADD", 26, 25, "1"], ["ADD", 16, 25, "-1"], ["SWAP", 29, 24], ["SWAP", 28, 23], ["ADD", 25, 22, "-1"], ["ADD", 16, 22, "1"], ["SWAP", 24, 22], ["SWAP", 27, 21], ["SWAP", 26, 20], ["ADD", 25, 19, "1"], ["ADD", 16, 19, "-1"], ["SWAP", 25, 18], ["SWAP", 24, 17], ["ADD", 18, 16, "1"], ["ADD", 10, 16, "1"], ["SCALE", 16, "-1"], ["SWAP", 17, 16], ["SWAP", 23, 15], ["SWAP", 22, 14], ["ADD", 17, 13, "1"], ["ADD", 10, 13, "-1"], ["SWAP", 15, 13], ["SWAP", 21, 12], ["SWAP", 20, 11], ["ADD", 17, 10, "1"], ["ADD", 7, 10, "-1"], ["SWAP", 16, 10], ["SWAP", 19, 9], ["SWAP", 18, 8], ["ADD", 16, 7, "1"], ["ADD", 1, 7, "1"], ["SCALE", 7, "-1"], ["SWAP", 15, 7], ["SWAP", 17, 6], ["SWAP", 16, 5], ["ADD", 15, 4, "1"], ["ADD", 1, 4, "-1"], ["SWAP", 15, 3], ["SWAP", 14, 2], ["ADD", 3, 1, "1"], ["ADD", 2, 0, "1"], ["SCALE", 0, "-1"], ["SWAP", 1, 0], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 8, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [8]], ["IDLE_ONE", 3, [8]], ["IDLE_ONE", 4, [8]], ["IDLE_ONE", 5, [8]], ["IDLE_ONE", 6, [8]], ["IDLE_ONE", 7, [8]], ["IDLE_ONE", 8, [8]], ["IDLE_ONE", 9, [8]], ["IDLE_ONE", 10, [8]], ["IDLE_ONE", 11, [8]], ["IDLE_ONE", 12, [8]], ["IDLE_ONE", 13, [8]], ["SWAP", 37, 36], ["SWAP", 37, 35], ["SWAP", 37, 33], ["SWAP", 34, 32], ["SWAP", 37, 30], ["SWAP", 34, 29], ["SWAP", 37, 28], ["SWAP", 31, 27], ["SWAP", 28, 26], ["SWAP", 37, 25], ["SWAP", 34, 24], ["SWAP", 25, 23], ["SWAP", 31, 21], ["SWAP", 28, 20], ["SWAP", 22, 19], ["SWAP", 37, 18], ["SWAP", 34, 17], ["SWAP", 25, 16], ["SWAP", 16, 15], ["SWAP", 19, 14], ["ADD", 12, 13, "-1"], ["ADD", 11, 13, "-1"], ["ADD", 10, 13, "-1"], ["ADD", 9, 13, "-1"], ["ADD", 2, 13, "1/2"], ["ADD", 0, 13, "-1"], ["SCALE", 13, "-1"], ["SWAP", 34, 13], ["ADD", 34, 12, "-1"], ["ADD", 11, 12, "-1"], ["ADD", 10, 12, "-1"], ["ADD", 9, 12, "-1"], ["ADD", 2, 12, "1/2"], ["SCALE", 12, "-1"], ["SWAP", 31, 12], ["ADD", 34, 11, "-1"], ["ADD", 31, 11, "-1"], ["ADD", 10, 11, "-1"], ["ADD", 9, 11, "-1"], ["ADD", 2, 11, "1/2"], ["ADD", 0, 11, "-1"], ["SCALE", 11, "-1"], ["SWAP", 28, 11], ["ADD", 34, 10, "-1"], ["ADD", 31, 10, "-1"], ["ADD", 28, 10, "-1"], ["ADD", 9, 10, "-1"], ["ADD", 2, 10, "1/2"], ["SCALE", 10, "-1"], ["SWAP", 25, 10], ["ADD", 34, 9, "-1"], ["ADD", 31, 9, "-1"], ["ADD", 28, 9, "-1"], ["ADD", 25, 9, "-1"], ["ADD", 2, 9, "1/2"], ["ADD", 0, 9, "-1"], ["SCALE", 9, "-1"], ["SWAP", 22, 9], ["ADD", 7, 8, "-1"], ["ADD", 6, 8, "-1"], ["ADD", 5, 8, "-1"], ["ADD", 4, 8, "-1"], ["ADD", 3, 8, "-1"], ["ADD", 2, 8, "-1/2"], ["ADD", 0, 8, "1"], ["SCALE", 8, "-1"], ["SWAP", 37, 8], ["ADD", 37, 7, "-1"], ["ADD", 6, 7, "-1"], ["ADD", 5, 7, "-1"], ["ADD", 4, 7, "-1"], ["ADD", 3, 7, "-1"], ["ADD", 2, 7, "-1/2"], ["SCALE", 7, "-1"], ["SWAP", 16, 7], ["ADD", 37, 6, "-1"], ["ADD", 16, 6, "-1"], ["ADD", 5, 6, "-1"], ["ADD", 4, 6, "-1"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 0, 6, "1"], ["SCALE", 6, "-1"], ["SWAP", 13, 6], ["ADD", 37, 5, "-1"], ["ADD", 16, 5, "-1"], ["ADD", 13, 5, "-1"], ["ADD", 4, 5, "-1"], ["ADD", 3, 5, "-1"], ["ADD", 2, 5, "-1/2"], ["SCALE", 5, "-1"], ["SWAP", 10, 5], ["ADD", 37, 4, "-1"], ["ADD", 16, 4, "-1"], ["ADD", 13, 4, "-1"], ["ADD", 10, 4, "-1"], ["ADD", 3, 4, "-1"], ["ADD", 2, 4, "-1/2"], ["ADD", 0, 4, "1"], ["SCALE", 4, "-1"], ["SWAP", 7, 4], ["ADD", 37, 3, "-1"], ["ADD", 16, 3, "-1"], ["ADD", 13, 3, "-1"], ["ADD", 10, 3, "-1"], ["ADD", 7, 3, "-1"], ["ADD", 2, 3, "-1/2"], ["SCALE", 3, "-1"], ["SWAP", 4, 3], ["ADD", 34, 2, "2"], ["ADD", 31, 2, "2"], ["ADD", 28, 2, "2"], ["ADD", 25, 2, "2"], ["ADD", 22, 2, "2"], ["SCALE", 2, "2"], ["SWAP", 19, 2], ["ADD", 34, 1, "2"], ["ADD", 31, 1, "2"], ["ADD", 28, 1, "2"], ["ADD", 25, 1, "2"], ["ADD", 22, 1, "2"], ["ADD", 19, 1, "2"], ["SCALE", 1, "-1"], ["ADD", 37, 0, "1"], ["ADD", 34, 0, "1"], ["ADD", 31, 0, "1"], ["ADD", 28, 0, "1"], ["ADD", 25, 0, "1"], ["ADD", 22, 0, "1"], ["ADD", 19, 0, "1"], ["ADD", 16, 0, "1"], ["ADD", 13, 0, "1"], ["ADD", 10, 0, "1"], ["ADD", 7, 0, "1"], ["ADD", 4, 0, "1"], ["SWAP", 1, 0], ["ADD", 34, 37, "2"], ["ADD", 31, 37, "2"], ["ADD", 28, 37, "2"], ["ADD", 25, 37, "2"], ["ADD", 22, 37, "2"], ["ADD", 19, 37, "2"], ["ADD", 0, 37, "-1"], ["SCALE", 37, "-1"], ["SWAP", 37, 36], ["SWAP", 36, 35], ["ADD", 0, 34, "2"], ["SWAP", 35, 34], ["SWAP", 34, 33], ["SWAP", 33, 32], ["ADD", 0, 31, "-2"], ["SWAP", 32, 31], ["SWAP", 31, 30], ["SWAP", 30, 29], ["ADD", 0, 28, "2"], ["SWAP", 29, 28], ["SWAP", 28, 27], ["SWAP", 27, 26], ["ADD", 0, 25, "-2"], ["SWAP", 26, 25], ["SWAP", 25, 24], ["SWAP", 24, 23], ["ADD", 0, 22, "2"], ["SWAP", 23, 22], ["SWAP", 22, 21], ["SWAP", 21, 20], ["ADD", 0, 19, "-2"], ["SWAP", 20, 19], ["SWAP", 19, 18], ["SWAP", 18, 17], ["ADD", 0, 16, "2"], ["SWAP", 17, 16], ["SWAP", 16, 15], ["SWAP", 15, 14], ["ADD", 0, 13, "-2"], ["SWAP", 14, 13], ["SWAP", 13, 12], ["SWAP", 12, 11], ["ADD", 0, 10, "2"], ["SWAP", 11, 10], ["SWAP", 10, 9], ["SWAP", 9, 8], ["ADD", 0, 7, "-2"], ["SWAP", 8, 7], ["SWAP", 7, 6], ["SWAP", 6, 5], ["ADD", 0, 4, "2"], ["SWAP", 5, 4], ["SWAP", 4, 3], ["SWAP", 3, 2], ["ADD", 0, 1, "-2"], ["SWAP", 2, 1], ["SCALE", 0, "-1"], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["SWAP", 37, 36], ["ADD", 32, 35, "-1"], ["ADD", 29, 35, "-1"], ["ADD", 26, 35, "-1"], ["ADD", 23, 35, "-1"], ["ADD", 20, 35, "-1"], ["ADD", 1, 35, "-1/2"], ["ADD", 0, 35, "1/2"], ["SCALE", 35, "1/2"], ["SWAP", 37, 35], ["SWAP", 34, 33], ["ADD", 37, 32, "1/2"], ["ADD", 29, 32, "-1"], ["ADD", 26, 32, "-1"], ["ADD", 23, 32, "-1"], ["ADD", 20, 32, "-1"], ["ADD", 1, 32, "-5/2"], ["ADD", 0, 32, "1/2"], ["SCALE", 32, "-1"], ["SWAP", 34, 32], ["SWAP", 31, 30], ["ADD", 37, 29, "1/2"], ["ADD", 34, 29, "-1"], ["ADD", 26, 29, "-1"], ["ADD", 23, 29, "-1"], ["ADD", 20, 29, "-1"], ["ADD", 1, 29, "-1/2"], ["ADD", 0, 29, "1/2"], ["SCALE", 29, "-1"], ["SWAP", 31, 29], ["SWAP", 28, 27], ["ADD", 37, 26, "1/2"], ["ADD", 34, 26, "-1"], ["ADD", 31, 26, "-1"], ["ADD", 23, 26, "-1"], ["ADD", 20, 26, "-1"], ["ADD", 1, 26, "-5/2"], ["ADD", 0, 26, "1/2"], ["SCALE", 26, "-1"], ["SWAP", 28, 26], ["SWAP", 25, 24], ["ADD", 37, 23, "1/2"], ["ADD", 34, 23, "-1"], ["ADD", 31, 23, "-1"], ["ADD", 28, 23, "-1"], ["ADD", 20, 23, "-1"], ["ADD", 1, 23, "-1/2"], ["ADD", 0, 23, "1/2"], ["SCALE", 23, "-1"], ["SWAP", 25, 23], ["SWAP", 22, 21], ["ADD", 37, 20, "1/2"], ["ADD", 34, 20, "-1"], ["ADD", 31, 20, "-1"], ["ADD", 28, 20, "-1"], ["ADD", 25, 20, "-1"], ["ADD", 1, 20, "-5/2"], ["ADD", 0, 20, "1/2"], ["SCALE", 20, "-1"], ["SWAP", 22, 20], ["SWAP", 19, 18], ["ADD", 1, 17, "2"], ["SWAP", 19, 17], ["SWAP", 19, 16], ["SWAP", 19, 15], ["ADD", 1, 14, "-2"], ["SWAP", 19, 14], ["SWAP", 19, 13], ["SWAP", 19, 12], ["ADD", 1, 11, "2"], ["SWAP", 19, 11], ["SWAP", 19, 10], ["SWAP", 19, 9], ["ADD", 1, 8, "-2"], ["SWAP", 19, 8], ["SWAP", 19, 7], ["SWAP", 19, 6], ["ADD", 1, 5, "2"], ["SWAP", 19, 5], ["SWAP", 19, 4], ["SWAP", 19, 3], ["ADD", 1, 2, "-2"], ["SWAP", 19, 2], ["ADD", 37, 1, "1"], ["ADD", 34, 1, "-2"], ["ADD", 31, 1, "-2"], ["ADD", 28, 1, "-2"], ["ADD", 25, 1, "-2"], ["ADD", 22, 1, "-2"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-2"], ["SWAP", 19, 1], ["ADD", 37, 0, "-1"], ["ADD", 34, 0, "2"], ["ADD", 31, 0, "2"], ["ADD", 28, 0, "2"], ["ADD", 25, 0, "2"], ["ADD", 22, 0, "2"], ["ADD", 19, 0, "2"], ["SCALE", 0, "-1"], ["ADD", 31, 34, "-1"], ["ADD", 28, 34, "-1"], ["ADD", 25, 34, "-1"], ["ADD", 22, 34, "-1"], ["ADD", 19, 34, "-1/2"], ["ADD", 0, 34, "1/2"], ["SCALE", 34, "-1/2"], ["SWAP", 34, 33], ["SWAP", 33, 32], ["SWAP", 32, 31], ["SWAP", 31, 30], ["SWAP", 30, 29], ["SWAP", 29, 28], ["SWAP", 28, 27], ["SWAP", 27, 26], ["SWAP", 26, 25], ["SWAP", 25, 24], ["SWAP", 24, 23], ["SWAP", 23, 22], ["ADD", 22, 21, "1"], ["ADD", 20, 21, "1"], ["ADD", 19, 20, "1"], ["SCALE", 20, "-1"], ["SWAP", 21, 20], ["ADD", 21, 19, "1"], ["ADD", 0, 19, "1"], ["SCALE", 19, "-1"], ["SWAP", 20, 19], ["SWAP", 36, 18], ["SWAP", 35, 17], ["SWAP", 34, 16], ["SWAP", 33, 15], ["SWAP", 32, 14], ["SWAP", 31, 13], ["SWAP", 30, 12], ["SWAP", 29, 11], ["SWAP", 28, 10], ["SWAP", 27, 9], ["SWAP", 26, 8], ["SWAP", 25, 7], ["SWAP", 24, 6], ["SWAP", 23, 5], ["SWAP", 22, 4], ["SWAP", 21, 3], ["SWAP", 20, 2], ["SWAP", 19, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 9, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [9]], ["IDLE_ONE", 3, [9]], ["IDLE_ONE", 4, [9]], ["IDLE_ONE", 5, [9]], ["IDLE_ONE", 6, [9]], ["IDLE_ONE", 7, [9]], ["IDLE_ONE", 8, [9]], ["IDLE_ONE", 9, [9]], ["IDLE_ONE", 10, [9]], ["IDLE_ONE", 11, [9]], ["IDLE_ONE", 12, [9]], ["IDLE_ONE", 13, [9]], ["IDLE_ONE", 14, [9]], ["IDLE_ONE", 15, [9]], ["IDLE_ONE", 16, [9]], ["IDLE_ONE", 17, [9]], ["IDLE_ONE", 18, [9]], ["SWAP", 34, 33], ["SWAP", 34, 32], ["SWAP", 31, 30], ["SWAP", 31, 29], ["SWAP", 28, 27], ["SWAP", 28, 26], ["SWAP", 25, 24], ["SWAP", 25, 23], ["SWAP", 20, 19], ["SWAP", 36, 18], ["SWAP", 35, 17], ["SWAP", 33, 16], ["SWAP", 32, 15], ["ADD", 11, 14, "-1"], ["ADD", 8, 14, "-1"], ["ADD", 5, 14, "-1"], ["ADD", 4, 14, "-1/2"], ["ADD", 3, 14, "-1/2"], ["ADD", 2, 14, "1/2"], ["SCALE", 14, "-1"], ["SWAP", 34, 14], ["SWAP", 30, 13], ["SWAP", 29, 12], ["ADD", 34, 11, "-1"], ["ADD", 8, 11, "-1"], ["ADD", 5, 11, "-1"], ["ADD", 4, 11, "-1/2"], ["ADD", 3, 11, "-1/2"], ["ADD", 2, 11, "1/2"], ["SCALE", 11, "-1"], ["SWAP", 31, 11], ["SWAP", 27, 10], ["SWAP", 26, 9], ["ADD", 34, 8, "-1"], ["ADD", 31, 8, "-1"], ["ADD", 5, 8, "-1"], ["ADD", 4, 8, "-1/2"], ["ADD", 3, 8, "-1/2"], ["ADD", 2, 8, "1/2"], ["SCALE", 8, "-1"], ["SWAP", 28, 8], ["SWAP", 24, 7], ["SWAP", 23, 6], ["ADD", 34, 5, "-1"], ["ADD", 31, 5, "-1"], ["ADD", 28, 5, "-1"], ["ADD", 4, 5, "-1/2"], ["ADD", 3, 5, "-1/2"], ["ADD", 2, 5, "1/2"], ["SCALE", 5, "-1"], ["SWAP", 25, 5], ["ADD", 34, 4, "-2"], ["ADD", 31, 4, "-2"], ["ADD", 28, 4, "-2"], ["ADD", 25, 4, "-2"], ["ADD", 3, 4, "-1"], ["ADD", 2, 4, "1"], ["SCALE", 4, "-2"], ["SWAP", 22, 4], ["ADD", 34, 3, "-2"], ["ADD", 31, 3, "-2"], ["ADD", 28, 3, "-2"], ["ADD", 25, 3, "-2"], ["ADD", 22, 3, "-2"], ["ADD", 2, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["SWAP", 21, 3], ["ADD", 34, 2, "2"], ["ADD", 31, 2, "2"], ["ADD", 28, 2, "2"], ["ADD", 25, 2, "2"], ["ADD", 22, 2, "2"], ["ADD", 21, 2, "1"], ["ADD", 1, 2, "1"], ["ADD", 0, 2, "-2"], ["SWAP", 19, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 20, 1], ["ADD", 34, 0, "2"], ["ADD", 31, 0, "2"], ["ADD", 28, 0, "2"], ["ADD", 25, 0, "2"], ["ADD", 22, 0, "2"], ["ADD", 21, 0, "1"], ["ADD", 19, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 31, 34, "-1"], ["ADD", 28, 34, "-1"], ["ADD", 25, 34, "-1"], ["ADD", 23, 34, "1/2"], ["ADD", 22, 34, "-1"], ["ADD", 20, 34, "1/2"], ["ADD", 19, 34, "-1/2"], ["ADD", 0, 34, "1/2"], ["SCALE", 34, "-1/2"], ["SWAP", 34, 33], ["SWAP", 33, 32], ["SWAP", 32, 31], ["SWAP", 31, 30], ["SWAP", 30, 29], ["SWAP", 29, 28], ["SWAP", 28, 27], ["SWAP", 27, 26], ["SWAP", 26, 25], ["ADD", 25, 24, "1"], ["ADD", 23, 24, "-1"], ["ADD", 22, 24, "1"], ["ADD", 21, 24, "-1"], ["ADD", 20, 24, "-1"], ["ADD", 19, 24, "1"], ["ADD", 25, 23, "1"], ["ADD", 22, 23, "1"], ["SCALE", 23, "-1"], ["SWAP", 24, 23], ["ADD", 24, 22, "1"], ["ADD", 23, 22, "1"], ["ADD", 21, 22, "-1"], ["ADD", 0, 22, "1"], ["SCALE", 22, "-1"], ["ADD", 23, 21, "1"], ["ADD", 19, 21, "1"], ["SCALE", 21, "-1"], ["SWAP", 22, 20], ["ADD", 21, 19, "1"], ["SCALE", 19, "-1"], ["SWAP", 36, 18], ["SWAP", 35, 17], ["SWAP", 34, 16], ["SWAP", 33, 15], ["SWAP", 32, 14], ["SWAP", 31, 13], ["SWAP", 30, 12], ["SWAP", 29, 11], ["SWAP", 28, 10], ["SWAP", 27, 9], ["SWAP", 26, 8], ["SWAP", 25, 7], ["SWAP", 24, 6], ["SWAP", 23, 5], ["SWAP", 22, 4], ["SWAP", 21, 3], ["SWAP", 20, 2], ["SWAP", 19, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 10, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [10]], ["IDLE_ONE", 3, [10]], ["IDLE_ONE", 4, [10]], ["IDLE_ONE", 5, [10]], ["IDLE_ONE", 6, [10]], ["IDLE_ONE", 7, [10]], ["IDLE_ONE", 8, [10]], ["IDLE_ONE", 9, [10]], ["IDLE_ONE", 10, [10]], ["IDLE_ONE", 11, [10]], ["IDLE_ONE", 12, [10]], ["IDLE_ONE", 13, [10]], ["IDLE_ONE", 14, [10]], ["IDLE_ONE", 15, [10]], ["IDLE_ONE", 16, [10]], ["IDLE_ONE", 17, [10]], ["IDLE_ONE", 18, [10]], ["SWAP", 34, 33], ["SWAP", 34, 32], ["SWAP", 31, 30], ["SWAP", 31, 29], ["SWAP", 28, 27], ["SWAP", 28, 26], ["SWAP", 25, 24], ["SWAP", 24, 23], ["SWAP", 24, 22], ["SWAP", 22, 21], ["SWAP", 22, 20], ["SWAP", 36, 18], ["SWAP", 35, 17], ["SWAP", 33, 16], ["SWAP", 32, 15], ["ADD", 11, 14, "-1"], ["ADD", 8, 14, "-1"], ["ADD", 6, 14, "-1"], ["ADD", 4, 14, "1/2"], ["ADD", 3, 14, "-1/2"], ["ADD", 2, 14, "1/2"], ["SCALE", 14, "-1"], ["SWAP", 34, 14], ["SWAP", 30, 13], ["SWAP", 29, 12], ["ADD", 34, 11, "-1"], ["ADD", 8, 11, "-1"], ["ADD", 6, 11, "-1"], ["ADD", 4, 11, "1/2"], ["ADD", 3, 11, "-1/2"], ["ADD", 2, 11, "1/2"], ["SCALE", 11, "-1"], ["SWAP", 31, 11], ["SWAP", 27, 10], ["SWAP", 26, 9], ["ADD", 34, 8, "-1"], ["ADD", 31, 8, "-1"], ["ADD", 6, 8, "-1"], ["ADD", 4, 8, "1/2"], ["ADD", 3, 8, "-1/2"], ["ADD", 2, 8, "1/2"], ["SCALE", 8, "-1"], ["SWAP", 28, 8], ["ADD", 0, 7, "-1"], ["SWAP", 23, 7], ["ADD", 34, 6, "-1"], ["ADD", 31, 6, "-1"], ["ADD", 28, 6, "-1"], ["ADD", 4, 6, "1/2"], ["ADD", 3, 6, "-1/2"], ["ADD", 2, 6, "1/2"], ["SCALE", 6, "-1"], ["SWAP", 25, 6], ["ADD", 1, 5, "1"], ["SWAP", 21, 5], ["ADD", 34, 4, "-2"], ["ADD", 31, 4, "-2"], ["ADD", 28, 4, "-2"], ["ADD", 25, 4, "-2"], ["ADD", 3, 4, "1"], ["ADD", 2, 4, "1"], ["SCALE", 4, "-2"], ["SWAP", 24, 4], ["ADD", 34, 3, "2"], ["ADD", 31, 3, "2"], ["ADD", 28, 3, "2"], ["ADD", 25, 3, "2"], ["ADD", 24, 3, "2"], ["ADD", 2, 3, "-1"], ["SWAP", 20, 3], ["ADD", 34, 2, "2"], ["ADD", 31, 2, "2"], ["ADD", 28, 2, "2"], ["ADD", 25, 2, "2"], ["ADD", 24, 2, "1"], ["ADD", 0, 2, "-1"], ["SWAP", 22, 2], ["ADD", 24, 1, "1"], ["ADD", 22, 1, "-1"], ["ADD", 20, 1, "1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 19, 1], ["ADD", 34, 0, "2"], ["ADD", 31, 0, "2"], ["ADD", 28, 0, "2"], ["ADD", 25, 0, "2"], ["ADD", 22, 0, "2"], ["ADD", 20, 0, "-1"], ["ADD", 19, 0, "1"], ["SCALE", 0, "-1"], ["SWAP", 36, 35], ["ADD", 31, 34, "-1"], ["ADD", 28, 34, "-1"], ["ADD", 25, 34, "-1"], ["ADD", 22, 34, "-1/2"], ["ADD", 0, 34, "1/2"], ["SCALE", 34, "1/2"], ["SWAP", 36, 33], ["SWAP", 36, 31], ["SWAP", 35, 30], ["SWAP", 33, 29], ["SWAP", 31, 28], ["SWAP", 32, 27], ["SWAP", 36, 26], ["SWAP", 35, 25], ["ADD", 22, 24, "1"], ["SCALE", 24, "-1"], ["SWAP", 33, 24], ["ADD", 34, 23, "1"], ["SCALE", 23, "-1"], ["SWAP", 31, 23], ["ADD", 33, 22, "1"], ["ADD", 0, 22, "1"], ["SCALE", 22, "-1"], ["SWAP", 32, 22], ["SWAP", 36, 21], ["SWAP", 35, 20], ["SWAP", 34, 19], ["SWAP", 33, 18], ["SWAP", 32, 17], ["SWAP", 31, 16], ["SWAP", 30, 15], ["SWAP", 29, 14], ["SWAP", 28, 13], ["SWAP", 27, 12], ["SWAP", 26, 11], ["SWAP", 25, 10], ["SWAP", 24, 9], ["SWAP", 23, 8], ["SWAP", 22, 7], ["SWAP", 21, 6], ["SWAP", 20, 5], ["SWAP", 19, 4], ["SWAP", 18, 3], ["SWAP", 17, 2], ["SWAP", 16, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 11, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [11]], ["IDLE_ONE", 3, [11]], ["IDLE_ONE", 4, [11]], ["IDLE_ONE", 5, [11]], ["IDLE_ONE", 6, [11]], ["IDLE_ONE", 7, [11]], ["IDLE_ONE", 8, [11]], ["IDLE_ONE", 9, [11]], ["IDLE_ONE", 10, [11]], ["IDLE_ONE", 11, [11]], ["IDLE_ONE", 12, [11]], ["IDLE_ONE", 13, [11]], ["IDLE_ONE", 14, [11]], ["IDLE_ONE", 15, [11]], ["SWAP", 36, 34], ["SWAP", 35, 33], ["SWAP", 35, 31], ["SWAP", 36, 30], ["SWAP", 35, 29], ["SWAP", 33, 28], ["SWAP", 32, 27], ["SWAP", 34, 26], ["SWAP", 30, 25], ["SWAP", 29, 24], ["SWAP", 31, 23], ["SWAP", 27, 22], ["SWAP", 26, 21], ["SWAP", 28, 20], ["SWAP", 25, 19], ["SWAP", 23, 18], ["SWAP", 22, 17], ["SWAP", 24, 16], ["SWAP", 36, 15], ["SWAP", 35, 14], ["SWAP", 33, 13], ["SWAP", 32, 12], ["ADD", 8, 11, "-1"], ["ADD", 5, 11, "-1"], ["ADD", 4, 11, "1/2"], ["ADD", 3, 11, "-1/2"], ["ADD", 2, 11, "1/2"], ["SCALE", 11, "-1"], ["SWAP", 34, 11], ["SWAP", 30, 10], ["SWAP", 29, 9], ["ADD", 34, 8, "-1"], ["ADD", 5, 8, "-1"], ["ADD", 4, 8, "1/2"], ["ADD", 3, 8, "-1/2"], ["ADD", 2, 8, "1/2"], ["SCALE", 8, "-1"], ["SWAP", 31, 8], ["SWAP", 27, 7], ["SWAP", 26, 6], ["ADD", 34, 5, "-1"], ["ADD", 31, 5, "-1"], ["ADD", 4, 5, "1/2"], ["ADD", 3, 5, "-1/2"], ["ADD", 2, 5, "1/2"], ["SCALE", 5, "-1"], ["SWAP", 28, 5], ["ADD", 34, 4, "2"], ["ADD", 31, 4, "2"], ["ADD", 28, 4, "2"], ["ADD", 3, 4, "1"], ["ADD", 2, 4, "-1"], ["SCALE", 4, "2"], ["SWAP", 25, 4], ["ADD", 34, 3, "-2"], ["ADD", 31, 3, "-2"], ["ADD", 28, 3, "-2"], ["ADD", 25, 3, "-2"], ["ADD", 2, 3, "1"], ["ADD", 1, 3, "1"], ["SWAP", 23, 3], ["ADD", 34, 2, "2"], ["ADD", 31, 2, "2"], ["ADD", 28, 2, "2"], ["ADD", 25, 2, "2"], ["ADD", 23, 2, "-1"], ["ADD", 0, 2, "-1"], ["SWAP", 22, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 24, 1], ["ADD", 34, 0, "2"], ["ADD", 31, 0, "2"], ["ADD", 28, 0, "2"], ["ADD", 25, 0, "2"], ["ADD", 24, 0, "1"], ["ADD", 23, 0, "-1"], ["ADD", 22, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 31, 34, "-1"], ["ADD", 28, 34, "-1"], ["ADD", 25, 34, "-1/2"], ["ADD", 0, 34, "1/2"], ["SCALE", 34, "-1/2"], ["SWAP", 34, 33], ["SWAP", 33, 32], ["SWAP", 32, 31], ["SWAP", 31, 30], ["SWAP", 30, 29], ["SWAP", 29, 28], ["ADD", 28, 27, "1"], ["ADD", 26, 27, "1"], ["ADD", 25, 26, "1"], ["SCALE", 26, "-1"], ["SWAP", 27, 26], ["ADD", 27, 25, "1"], ["ADD", 0, 25, "1"], ["SCALE", 25, "-1"], ["SWAP", 26, 25], ["SWAP", 36, 24], ["SWAP", 35, 23], ["SWAP", 34, 22], ["SWAP", 33, 21], ["SWAP", 32, 20], ["SWAP", 31, 19], ["SWAP", 30, 18], ["SWAP", 29, 17], ["SWAP", 28, 16], ["SWAP", 27, 15], ["SWAP", 26, 14], ["SWAP", 25, 13], ["SWAP", 24, 12], ["SWAP", 23, 11], ["SWAP", 22, 10], ["SWAP", 21, 9], ["SWAP", 20, 8], ["SWAP", 19, 7], ["SWAP", 18, 6], ["SWAP", 17, 5], ["SWAP", 16, 4], ["SWAP", 15, 3], ["SWAP", 14, 2], ["SWAP", 13, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 12, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [12]], ["IDLE_ONE", 3, [12]], ["IDLE_ONE", 4, [12]], ["IDLE_ONE", 5, [12]], ["IDLE_ONE", 6, [12]], ["IDLE_ONE", 7, [12]], ["IDLE_ONE", 8, [12]], ["IDLE_ONE", 9, [12]], ["IDLE_ONE", 10, [12]], ["IDLE_ONE", 11, [12]], ["IDLE_ONE", 12, [12]], ["SWAP", 34, 33], ["SWAP", 34, 32], ["SWAP", 31, 30], ["SWAP", 31, 29], ["SWAP", 26, 25], ["SWAP", 36, 24], ["SWAP", 35, 23], ["SWAP", 33, 22], ["SWAP", 32, 21], ["SWAP", 34, 20], ["SWAP", 30, 19], ["SWAP", 29, 18], ["SWAP", 31, 17], ["SWAP", 28, 16], ["SWAP", 27, 15], ["SWAP", 25, 14], ["SWAP", 26, 13], ["SWAP", 36, 12], ["SWAP", 35, 11], ["SWAP", 33, 10], ["SWAP", 32, 9], ["ADD", 5, 8, "-1"], ["ADD", 4, 8, "-1/2"], ["ADD", 3, 8, "-1/2"], ["ADD", 2, 8, "1/2"], ["SCALE", 8, "-1"], ["SWAP", 34, 8], ["SWAP", 30, 7], ["SWAP", 29, 6], ["ADD", 34, 5, "-1"], ["ADD", 4, 5, "-1/2"], ["ADD", 3, 5, "-1/2"], ["ADD", 2, 5, "1/2"], ["SCALE", 5, "-1"], ["SWAP", 31, 5], ["ADD", 34, 4, "-2"], ["ADD", 31, 4, "-2"], ["ADD", 3, 4, "-1"], ["ADD", 2, 4, "1"], ["SCALE", 4, "-2"], ["SWAP", 28, 4], ["ADD", 34, 3, "-2"], ["ADD", 31, 3, "-2"], ["ADD", 28, 3, "-2"], ["ADD", 2, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["SWAP", 27, 3], ["ADD", 34, 2, "2"], ["ADD", 31, 2, "2"], ["ADD", 28, 2, "2"], ["ADD", 27, 2, "1"], ["ADD", 1, 2, "1"], ["ADD", 0, 2, "-2"], ["SWAP", 25, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 26, 1], ["ADD", 34, 0, "2"], ["ADD", 31, 0, "2"], ["ADD", 28, 0, "2"], ["ADD", 27, 0, "1"], ["ADD", 25, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 31, 34, "-1"], ["ADD", 29, 34, "1/2"], ["ADD", 28, 34, "-1"], ["ADD", 26, 34, "1/2"], ["ADD", 25, 34, "-1/2"], ["ADD", 0, 34, "1/2"], ["SCALE", 34, "-1/2"], ["SWAP", 34, 33], ["SWAP", 33, 32], ["SWAP", 32, 31], ["ADD", 31, 30, "1"], ["ADD", 29, 30, "-1"], ["ADD", 28, 30, "1"], ["ADD", 27, 30, "-1"], ["ADD", 26, 30, "-1"], ["ADD", 25, 30, "1"], ["ADD", 31, 29, "1"], ["ADD", 28, 29, "1"], ["SCALE", 29, "-1"], ["SWAP", 30, 29], ["ADD", 30, 28, "1"], ["ADD", 29, 28, "1"], ["ADD", 27, 28, "-1"], ["ADD", 0, 28, "1"], ["SCALE", 28, "-1"], ["ADD", 29, 27, "1"], ["ADD", 25, 27, "1"], ["SCALE", 27, "-1"], ["SWAP", 28, 26], ["ADD", 27, 25, "1"], ["SCALE", 25, "-1"], ["SWAP", 36, 24], ["SWAP", 35, 23], ["SWAP", 34, 22], ["SWAP", 33, 21], ["SWAP", 32, 20], ["SWAP", 31, 19], ["SWAP", 30, 18], ["SWAP", 29, 17], ["SWAP", 28, 16], ["SWAP", 27, 15], ["SWAP", 26, 14], ["SWAP", 25, 13], ["SWAP", 24, 12], ["SWAP", 23, 11], ["SWAP", 22, 10], ["SWAP", 21, 9], ["SWAP", 20, 8], ["SWAP", 19, 7], ["SWAP", 18, 6], ["SWAP", 17, 5], ["SWAP", 16, 4], ["SWAP", 15, 3], ["SWAP", 14, 2], ["SWAP", 13, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 13, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [13]], ["IDLE_ONE", 3, [13]], ["IDLE_ONE", 4, [13]], ["IDLE_ONE", 5, [13]], ["IDLE_ONE", 6, [13]], ["IDLE_ONE", 7, [13]], ["IDLE_ONE", 8, [13]], ["IDLE_ONE", 9, [13]], ["IDLE_ONE", 10, [13]], ["IDLE_ONE", 11, [13]], ["IDLE_ONE", 12, [13]], ["SWAP", 34, 33], ["SWAP", 34, 32], ["SWAP", 31, 30], ["SWAP", 30, 29], ["SWAP", 30, 28], ["SWAP", 28, 27], ["SWAP", 28, 26], ["SWAP", 36, 24], ["SWAP", 35, 23], ["SWAP", 33, 22], ["SWAP", 32, 21], ["SWAP", 34, 20], ["SWAP", 29, 19], ["SWAP", 31, 18], ["SWAP", 27, 17], ["SWAP", 30, 16], ["SWAP", 26, 15], ["SWAP", 28, 14], ["SWAP", 25, 13], ["SWAP", 36, 12], ["SWAP", 35, 11], ["SWAP", 33, 10], ["SWAP", 32, 9], ["ADD", 6, 8, "-1"], ["ADD", 4, 8, "1/2"], ["ADD", 3, 8, "-1/2"], ["ADD", 2, 8, "1/2"], ["SCALE", 8, "-1"], ["SWAP", 34, 8], ["ADD", 0, 7, "-1"], ["SWAP", 29, 7], ["ADD", 34, 6, "-1"], ["ADD", 4, 6, "1/2"], ["ADD", 3, 6, "-1/2"], ["ADD", 2, 6, "1/2"], ["SCALE", 6, "-1"], ["SWAP", 31, 6], ["ADD", 1, 5, "1"], ["SWAP", 27, 5], ["ADD", 34, 4, "-2"], ["ADD", 31, 4, "-2"], ["ADD", 3, 4, "1"], ["ADD", 2, 4, "1"], ["SCALE", 4, "-2"], ["SWAP", 30, 4], ["ADD", 34, 3, "2"], ["ADD", 31, 3, "2"], ["ADD", 30, 3, "2"], ["ADD", 2, 3, "-1"], ["SWAP", 26, 3], ["ADD", 34, 2, "2"], ["ADD", 31, 2, "2"], ["ADD", 30, 2, "1"], ["ADD", 0, 2, "-1"], ["SWAP", 28, 2], ["ADD", 30, 1, "1"], ["ADD", 28, 1, "-1"], ["ADD", 26, 1, "1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 25, 1], ["ADD", 34, 0, "2"], ["ADD", 31, 0, "2"], ["ADD", 28, 0, "2"], ["ADD", 26, 0, "-1"], ["ADD", 25, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 31, 34, "-1"], ["ADD", 28, 34, "-1/2"], ["ADD", 0, 34, "1/2"], ["SCALE", 34, "1/2"], ["SWAP", 34, 33], ["SWAP", 33, 32], ["SWAP", 32, 31], ["ADD", 28, 30, "1"], ["SCALE", 30, "-1"], ["ADD", 31, 29, "1"], ["SCALE", 29, "-1"], ["ADD", 30, 28, "1"], ["ADD", 0, 28, "1"], ["SCALE", 28, "-1"], ["SWAP", 29, 28], ["SWAP", 36, 27], ["SWAP", 35, 26], ["SWAP", 34, 25], ["SWAP", 33, 24], ["SWAP", 32, 23], ["SWAP", 31, 22], ["SWAP", 30, 21], ["SWAP", 29, 20], ["SWAP", 28, 19], ["SWAP", 27, 18], ["SWAP", 26, 17], ["SWAP", 25, 16], ["SWAP", 24, 15], ["SWAP", 23, 14], ["SWAP", 22, 13], ["SWAP", 21, 12], ["SWAP", 20, 11], ["SWAP", 19, 10], ["SWAP", 18, 9], ["SWAP", 17, 8], ["SWAP", 16, 7], ["SWAP", 15, 6], ["SWAP", 14, 5], ["SWAP", 13, 4], ["SWAP", 12, 3], ["SWAP", 11, 2], ["SWAP", 10, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 14, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [14]], ["IDLE_ONE", 3, [14]], ["IDLE_ONE", 4, [14]], ["IDLE_ONE", 5, [14]], ["IDLE_ONE", 6, [14]], ["IDLE_ONE", 7, [14]], ["IDLE_ONE", 8, [14]], ["IDLE_ONE", 9, [14]], ["SWAP", 34, 33], ["SWAP", 34, 32], ["SWAP", 30, 29], ["SWAP", 30, 28], ["SWAP", 36, 27], ["SWAP", 35, 26], ["SWAP", 33, 25], ["SWAP", 32, 24], ["SWAP", 34, 23], ["SWAP", 31, 22], ["SWAP", 29, 21], ["SWAP", 28, 20], ["SWAP", 30, 19], ["SWAP", 36, 18], ["SWAP", 35, 17], ["SWAP", 33, 16], ["SWAP", 32, 15], ["SWAP", 34, 14], ["SWAP", 31, 13], ["SWAP", 29, 12], ["SWAP", 28, 11], ["SWAP", 30, 10], ["SWAP", 36, 9], ["SWAP", 35, 8], ["SWAP", 33, 7], ["SWAP", 32, 6], ["ADD", 4, 5, "1/2"], ["ADD", 3, 5, "-1/2"], ["ADD", 2, 5, "1/2"], ["SCALE", 5, "-1"], ["SWAP", 34, 5], ["ADD", 34, 4, "2"], ["ADD", 3, 4, "1"], ["ADD", 2, 4, "-1"], ["SCALE", 4, "2"], ["SWAP", 31, 4], ["ADD", 34, 3, "-2"], ["ADD", 31, 3, "-2"], ["ADD", 2, 3, "1"], ["ADD", 1, 3, "1"], ["SWAP", 29, 3], ["ADD", 34, 2, "2"], ["ADD", 31, 2, "2"], ["ADD", 29, 2, "-1"], ["ADD", 0, 2, "-1"], ["SWAP", 28, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 30, 1], ["ADD", 34, 0, "2"], ["ADD", 31, 0, "2"], ["ADD", 30, 0, "1"], ["ADD", 29, 0, "-1"], ["ADD", 28, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 31, 34, "-1/2"], ["ADD", 0, 34, "1/2"], ["SCALE", 34, "-1/2"], ["ADD", 34, 33, "1"], ["ADD", 32, 33, "1"], ["ADD", 31, 32, "1"], ["SCALE", 32, "-1"], ["SWAP", 33, 32], ["ADD", 33, 31, "1"], ["ADD", 0, 31, "1"], ["SCALE", 31, "-1"], ["SWAP", 32, 31], ["SWAP", 36, 30], ["SWAP", 35, 29], ["SWAP", 34, 28], ["SWAP", 33, 27], ["SWAP", 32, 26], ["SWAP", 31, 25], ["SWAP", 30, 24], ["SWAP", 29, 23], ["SWAP", 28, 22], ["SWAP", 27, 21], ["SWAP", 26, 20], ["SWAP", 25, 19], ["SWAP", 24, 18], ["SWAP", 23, 17], ["SWAP", 22, 16], ["SWAP", 21, 15], ["SWAP", 20, 14], ["SWAP", 19, 13], ["SWAP", 18, 12], ["SWAP", 17, 11], ["SWAP", 16, 10], ["SWAP", 15, 9], ["SWAP", 14, 8], ["SWAP", 13, 7], ["SWAP", 12, 6], ["SWAP", 11, 5], ["SWAP", 10, 4], ["SWAP", 9, 3], ["SWAP", 8, 2], ["SWAP", 7, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 15, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [15]], ["IDLE_ONE", 3, [15]], ["IDLE_ONE", 4, [15]], ["IDLE_ONE", 5, [15]], ["IDLE_ONE", 6, [15]], ["SWAP", 32, 31], ["SWAP", 36, 30], ["SWAP", 35, 29], ["SWAP", 34, 28], ["SWAP", 33, 27], ["SWAP", 31, 26], ["SWAP", 32, 25], ["SWAP", 36, 24], ["SWAP", 35, 23], ["SWAP", 34, 22], ["SWAP", 33, 21], ["SWAP", 31, 20], ["SWAP", 32, 19], ["SWAP", 36, 18], ["SWAP", 35, 17], ["SWAP", 34, 16], ["SWAP", 33, 15], ["SWAP", 31, 14], ["SWAP", 32, 13], ["SWAP", 36, 12], ["SWAP", 35, 11], ["SWAP", 34, 10], ["SWAP", 33, 9], ["SWAP", 31, 8], ["SWAP", 32, 7], ["SWAP", 36, 6], ["SWAP", 35, 5], ["ADD", 3, 4, "-1"], ["ADD", 2, 4, "1"], ["SCALE", 4, "-2"], ["SWAP", 34, 4], ["ADD", 34, 3, "-2"], ["ADD", 2, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["SWAP", 33, 3], ["ADD", 34, 2, "2"], ["ADD", 33, 2, "1"], ["ADD", 1, 2, "1"], ["ADD", 0, 2, "-2"], ["SWAP", 31, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 32, 1], ["ADD", 34, 0, "2"], ["ADD", 33, 0, "1"], ["ADD", 31, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 34, 36, "-1"], ["ADD", 33, 36, "-1"], ["ADD", 0, 36, "1"], ["ADD", 34, 35, "2"], ["ADD", 32, 35, "-1"], ["ADD", 31, 35, "1"], ["ADD", 0, 35, "-1"], ["SWAP", 36, 35], ["ADD", 35, 34, "1/2"], ["ADD", 33, 34, "-1/2"], ["ADD", 32, 34, "1/2"], ["ADD", 31, 34, "-1/2"], ["ADD", 0, 34, "1"], ["SCALE", 34, "-1/2"], ["ADD", 35, 33, "1"], ["ADD", 31, 33, "1"], ["SCALE", 33, "-1"], ["SWAP", 34, 32], ["ADD", 33, 31, "1"], ["SCALE", 31, "-1"], ["SWAP", 36, 30], ["SWAP", 35, 29], ["SWAP", 34, 28], ["SWAP", 33, 27], ["SWAP", 32, 26], ["SWAP", 31, 25], ["SWAP", 30, 24], ["SWAP", 29, 23], ["SWAP", 28, 22], ["SWAP", 27, 21], ["SWAP", 26, 20], ["SWAP", 25, 19], ["SWAP", 24, 18], ["SWAP", 23, 17], ["SWAP", 22, 16], ["SWAP", 21, 15], ["SWAP", 20, 14], ["SWAP", 19, 13], ["SWAP", 18, 12], ["SWAP", 17, 11], ["SWAP", 16, 10], ["SWAP", 15, 9], ["SWAP", 14, 8], ["SWAP", 13, 7], ["SWAP", 12, 6], ["SWAP", 11, 5], ["SWAP", 10, 4], ["SWAP", 9, 3], ["SWAP", 8, 2], ["SWAP", 7, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 16, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [16]], ["IDLE_ONE", 3, [16]], ["IDLE_ONE", 4, [16]], ["IDLE_ONE", 5, [16]], ["IDLE_ONE", 6, [16]], ["SWAP", 36, 35], ["SWAP", 36, 34], ["SWAP", 34, 33], ["SWAP", 34, 32], ["SWAP", 35, 30], ["SWAP", 33, 29], ["SWAP", 36, 28], ["SWAP", 32, 27], ["SWAP", 34, 26], ["SWAP", 31, 25], ["SWAP", 35, 24], ["SWAP", 33, 23], ["SWAP", 36, 22], ["SWAP", 32, 21], ["SWAP", 34, 20], ["SWAP", 31, 19], ["SWAP", 35, 18], ["SWAP", 33, 17], ["SWAP", 36, 16], ["SWAP", 32, 15], ["SWAP", 34, 14], ["SWAP", 31, 13], ["SWAP", 35, 12], ["SWAP", 33, 11], ["SWAP", 36, 10], ["SWAP", 32, 9], ["SWAP", 34, 8], ["SWAP", 31, 7], ["ADD", 0, 6, "-1"], ["SWAP", 35, 6], ["ADD", 1, 5, "1"], ["SWAP", 33, 5], ["ADD", 3, 4, "1"], ["ADD", 2, 4, "1"], ["SCALE", 4, "-2"], ["SWAP", 36, 4], ["ADD", 36, 3, "2"], ["ADD", 2, 3, "-1"], ["SWAP", 32, 3], ["ADD", 36, 2, "1"], ["ADD", 0, 2, "-1"], ["SWAP", 34, 2], ["ADD", 36, 1, "1"], ["ADD", 34, 1, "-1"], ["ADD", 32, 1, "1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 31, 1], ["ADD", 34, 0, "2"], ["ADD", 32, 0, "-1"], ["ADD", 31, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 34, 36, "1"], ["SCALE", 36, "-1"], ["ADD", 34, 35, "1"], ["ADD", 0, 35, "-1"], ["SCALE", 35, "-1"], ["ADD", 36, 34, "1"], ["ADD", 0, 34, "1"], ["SCALE", 34, "-1"], ["SWAP", 35, 34], ["SWAP", 36, 33], ["SWAP", 35, 32], ["SWAP", 34, 31], ["SWAP", 33, 30], ["SWAP", 32, 29], ["SWAP", 31, 28], ["SWAP", 30, 27], ["SWAP", 29, 26], ["SWAP", 28, 25], ["SWAP", 27, 24], ["SWAP", 26, 23], ["SWAP", 25, 22], ["SWAP", 24, 21], ["SWAP", 23, 20], ["SWAP", 22, 19], ["SWAP", 21, 18], ["SWAP", 20, 17], ["SWAP", 19, 16], ["SWAP", 18, 15], ["SWAP", 17, 14], ["SWAP", 16, 13], ["SWAP", 15, 12], ["SWAP", 14, 11], ["SWAP", 13, 10], ["SWAP", 12, 9], ["SWAP", 11, 8], ["SWAP", 10, 7], ["SWAP", 9, 6], ["SWAP", 8, 5], ["SWAP", 7, 4], ["SWAP", 6, 3], ["SWAP", 5, 2], ["SWAP", 4, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 17, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [17]], ["IDLE_ONE", 3, [17]], ["SWAP", 36, 35], ["SWAP", 36, 34], ["SWAP", 35, 33], ["SWAP", 34, 32], ["SWAP", 36, 31], ["SWAP", 35, 30], ["SWAP", 34, 29], ["SWAP", 36, 28], ["SWAP", 35, 27], ["SWAP", 34, 26], ["SWAP", 36, 25], ["SWAP", 35, 24], ["SWAP", 34, 23], ["SWAP", 36, 22], ["SWAP", 35, 21], ["SWAP", 34, 20], ["SWAP", 36, 19], ["SWAP", 35, 18], ["SWAP", 34, 17], ["SWAP", 36, 16], ["SWAP", 35, 15], ["SWAP", 34, 14], ["SWAP", 36, 13], ["SWAP", 35, 12], ["SWAP", 34, 11], ["SWAP", 36, 10], ["SWAP", 35, 9], ["SWAP", 34, 8], ["SWAP", 36, 7], ["SWAP", 35, 6], ["SWAP", 34, 5], ["SWAP", 36, 4], ["ADD", 2, 3, "1"], ["ADD", 1, 3, "1"], ["SWAP", 35, 3], ["ADD", 35, 2, "-1"], ["ADD", 0, 2, "-1"], ["SWAP", 34, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 36, 1], ["ADD", 36, 0, "1"], ["ADD", 35, 0, "-1"], ["ADD", 34, 0, "1"], ["SCALE", 0, "-1"], ["LAMBDA", 0, -1], ["LAMBDA", 1, -1], ["LAMBDA", 2, -1], ["LAMBDA", 3, -1], ["LAMBDA", 4, -1], ["LAMBDA", 5, -1], ["LAMBDA", 6, -1], ["LAMBDA", 7, -1], ["LAMBDA", 8, -1], ["LAMBDA", 9, -1], ["LAMBDA", 10, -1], ["LAMBDA", 11, -1], ["LAMBDA", 12, -1], ["LAMBDA", 13, -1], ["LAMBDA", 14, -1], ["LAMBDA", 15, -1], ["LAMBDA", 16, -1], ["LAMBDA", 17, -1], ["LAMBDA", 18, -1], ["LAMBDA", 19, -1], ["LAMBDA", 20, -1], ["LAMBDA", 21, -1], ["LAMBDA", 22, -1], ["LAMBDA", 23, -1], ["LAMBDA", 24, -1], ["LAMBDA", 25, -1], ["LAMBDA", 26, -1], ["LAMBDA", 27, -1], ["LAMBDA", 28, -1], ["LAMBDA", 29, -1], ["LAMBDA", 30, -1], ["LAMBDA", 31, -1], ["LAMBDA", 32, -1], ["LAMBDA", 33, -1], ["LAMBDA", 34, -1], ["LAMBDA", 35, -1], ["LAMBDA", 36, -1], ["LAMBDA", 37, -1]], "central_relation": "Q^4=1; R=Lambda Q; R^2=1"} diff --git a/research/connected-l18-root-caller/caller_L3.json b/research/connected-l18-root-caller/caller_L3.json new file mode 100644 index 0000000000..93a6a7231d --- /dev/null +++ b/research/connected-l18-root-caller/caller_L3.json @@ -0,0 +1 @@ +{"roles": 8, "stages": 3, "masks": [7, 3, 1, 1, 6, 4, 4, 2], "events": [["ADD", 1, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["ADD", 0, 2, "-1"], ["SWAP", 3, 2], ["ADD", 0, 1, "-1"], ["SWAP", 2, 1], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["ADD", 1, 3, "1"], ["ADD", 0, 2, "1"], ["SWAP", 3, 2], ["ADD", 3, 1, "1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["ADD", 3, 0, "-1"], ["ADD", 1, 0, "1"], ["ADD", 1, 3, "1"], ["SCALE", 3, "-1"], ["ADD", 1, 2, "-1"], ["ADD", 0, 2, "-1"], ["ADD", 3, 1, "1"], ["ADD", 0, 1, "-1"], ["SWAP", 2, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 0, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [0]], ["IDLE_ONE", 3, [0]], ["ADD", 1, 3, "-1"], ["ADD", 0, 3, "1"], ["ADD", 3, 2, "-1"], ["ADD", 1, 2, "2"], ["ADD", 0, 2, "-1"], ["SCALE", 2, "-1"], ["ADD", 0, 1, "1"], ["SWAP", 3, 1], ["ADD", 3, 0, "-1"], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "1"], ["ADD", 4, 7, "-1"], ["ADD", 1, 7, "-2"], ["SWAP", 7, 6], ["SWAP", 6, 5], ["ADD", 5, 4, "1"], ["ADD", 1, 4, "-1"], ["SCALE", 4, "1/2"], ["SWAP", 5, 3], ["SWAP", 4, 2], ["ADD", 3, 1, "1"], ["ADD", 2, 1, "1/2"], ["ADD", 0, 1, "-1/2"], ["SCALE", 1, "-1/2"], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["SCALE", 0, "2"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 1, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [1]], ["IDLE_ONE", 3, [1]], ["SWAP", 7, 6], ["SWAP", 7, 5], ["ADD", 2, 3, "-1/2"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["SWAP", 7, 3], ["ADD", 0, 2, "-2"], ["SCALE", 2, "2"], ["SWAP", 4, 2], ["ADD", 4, 1, "2"], ["SCALE", 1, "-1"], ["ADD", 7, 0, "1"], ["ADD", 4, 0, "1"], ["SWAP", 1, 0], ["ADD", 4, 7, "2"], ["ADD", 0, 7, "-1"], ["SCALE", 7, "-1"], ["SWAP", 7, 6], ["SWAP", 6, 5], ["ADD", 0, 4, "2/3"], ["SWAP", 5, 4], ["SWAP", 4, 3], ["SWAP", 3, 2], ["ADD", 0, 1, "-2/3"], ["SWAP", 2, 1], ["SCALE", 0, "3"], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["SWAP", 7, 6], ["ADD", 1, 5, "-1/2"], ["ADD", 0, 5, "1/2"], ["SCALE", 5, "1/2"], ["SWAP", 7, 5], ["SWAP", 4, 3], ["ADD", 1, 2, "2"], ["SWAP", 4, 2], ["ADD", 7, 1, "-1/3"], ["ADD", 0, 1, "-1/3"], ["SCALE", 1, "2/3"], ["SWAP", 4, 1], ["ADD", 7, 0, "-1"], ["ADD", 4, 0, "2"], ["SCALE", 0, "-1"], ["ADD", 5, 6, "1"], ["ADD", 4, 6, "-1"], ["ADD", 0, 6, "1"], ["ADD", 4, 5, "1"], ["SCALE", 5, "-1"], ["SWAP", 6, 5], ["ADD", 6, 4, "1"], ["ADD", 0, 4, "1"], ["SCALE", 4, "-1"], ["SWAP", 5, 4], ["SWAP", 6, 3], ["SWAP", 5, 2], ["SWAP", 4, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 2, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [2]], ["IDLE_ONE", 3, [2]], ["SWAP", 5, 4], ["ADD", 2, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["SWAP", 6, 3], ["ADD", 6, 2, "1"], ["ADD", 1, 2, "1"], ["ADD", 0, 2, "-2"], ["SWAP", 4, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 5, 1], ["ADD", 6, 0, "1"], ["ADD", 4, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 0, 6, "1"], ["ADD", 4, 5, "1"], ["ADD", 0, 5, "-1"], ["SCALE", 5, "-1"], ["ADD", 0, 4, "1"], ["SWAP", 5, 4], ["SWAP", 4, 3], ["SWAP", 3, 2], ["SWAP", 2, 1], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["ADD", 1, 6, "-1"], ["ADD", 0, 5, "1"], ["SWAP", 4, 3], ["SWAP", 4, 2], ["ADD", 5, 1, "-1"], ["ADD", 0, 1, "-1"], ["SWAP", 4, 1], ["ADD", 5, 0, "-1"], ["ADD", 4, 0, "1"], ["SCALE", 0, "-1"], ["LAMBDA", 0, -1], ["LAMBDA", 1, -1], ["LAMBDA", 2, -1], ["LAMBDA", 3, -1], ["LAMBDA", 4, -1], ["LAMBDA", 5, -1], ["LAMBDA", 6, -1], ["LAMBDA", 7, -1]], "central_relation": "Q^4=1; R=Lambda Q; R^2=1"} diff --git a/research/connected-l18-root-caller/caller_L9.json b/research/connected-l18-root-caller/caller_L9.json new file mode 100644 index 0000000000..e35b166bdd --- /dev/null +++ b/research/connected-l18-root-caller/caller_L9.json @@ -0,0 +1 @@ +{"roles": 20, "stages": 9, "masks": [511, 31, 15, 15, 30, 14, 14, 28, 12, 12, 112, 96, 96, 240, 224, 224, 496, 480, 480, 16], "events": [["ADD", 1, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["ADD", 0, 2, "-1"], ["SWAP", 3, 2], ["ADD", 0, 1, "-1"], ["SWAP", 2, 1], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["ADD", 1, 3, "1"], ["ADD", 0, 2, "1"], ["SWAP", 3, 2], ["ADD", 3, 1, "1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["ADD", 3, 0, "-1"], ["ADD", 1, 0, "1"], ["ADD", 1, 3, "1"], ["SCALE", 3, "-1"], ["ADD", 1, 2, "-1"], ["ADD", 0, 2, "-1"], ["ADD", 3, 1, "1"], ["ADD", 0, 1, "-1"], ["SWAP", 2, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 0, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [0]], ["IDLE_ONE", 3, [0]], ["ADD", 1, 3, "-1"], ["ADD", 0, 3, "1"], ["ADD", 3, 2, "-1"], ["ADD", 1, 2, "2"], ["ADD", 0, 2, "-1"], ["SCALE", 2, "-1"], ["ADD", 0, 1, "1"], ["SWAP", 3, 1], ["ADD", 3, 0, "-1"], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "1"], ["ADD", 5, 6, "1"], ["ADD", 4, 6, "1"], ["ADD", 1, 6, "2"], ["ADD", 0, 6, "1"], ["SCALE", 6, "-1"], ["ADD", 4, 5, "1"], ["SCALE", 5, "-1"], ["SWAP", 6, 5], ["ADD", 6, 4, "1"], ["ADD", 0, 4, "-1"], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 1, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [1]], ["IDLE_ONE", 3, [1]], ["IDLE_ONE", 4, [1]], ["IDLE_ONE", 5, [1]], ["IDLE_ONE", 6, [1]], ["ADD", 3, 6, "-2"], ["ADD", 2, 6, "-1"], ["ADD", 0, 6, "1"], ["SWAP", 5, 3], ["ADD", 6, 2, "1"], ["ADD", 5, 2, "-2"], ["ADD", 1, 2, "1"], ["SCALE", 2, "-1"], ["SWAP", 4, 2], ["ADD", 0, 1, "1"], ["SWAP", 5, 1], ["ADD", 6, 0, "-1"], ["ADD", 4, 0, "1"], ["ADD", 1, 0, "2"], ["ADD", 7, 9, "1"], ["ADD", 6, 9, "-1"], ["ADD", 4, 9, "2"], ["ADD", 1, 9, "2"], ["ADD", 0, 9, "1"], ["ADD", 5, 8, "-1"], ["ADD", 4, 8, "-1"], ["ADD", 1, 8, "-2"], ["ADD", 0, 8, "-1"], ["SWAP", 9, 8], ["ADD", 5, 7, "-1"], ["ADD", 4, 7, "-1"], ["ADD", 1, 7, "-2"], ["ADD", 0, 7, "-1"], ["SWAP", 8, 7], ["ADD", 7, 6, "1"], ["ADD", 4, 6, "1"], ["SCALE", 6, "-1"], ["ADD", 6, 5, "-1"], ["ADD", 1, 5, "-2"], ["SCALE", 5, "-1"], ["ADD", 6, 4, "1"], ["SWAP", 5, 4], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 2, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [2]], ["IDLE_ONE", 3, [2]], ["IDLE_ONE", 4, [2]], ["IDLE_ONE", 5, [2]], ["IDLE_ONE", 6, [2]], ["IDLE_ONE", 7, [2]], ["IDLE_ONE", 8, [2]], ["IDLE_ONE", 9, [2]], ["ADD", 0, 9, "1"], ["ADD", 6, 8, "-2"], ["ADD", 3, 8, "-2"], ["ADD", 2, 8, "-1"], ["SWAP", 9, 8], ["ADD", 1, 7, "-1"], ["ADD", 9, 6, "1/2"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 0, 6, "-1/2"], ["SCALE", 6, "-1/2"], ["SWAP", 7, 6], ["ADD", 9, 3, "-1/2"], ["ADD", 7, 3, "1/2"], ["ADD", 2, 3, "-1/2"], ["ADD", 0, 3, "1/2"], ["SCALE", 3, "-1"], ["SWAP", 5, 3], ["ADD", 9, 2, "-1"], ["ADD", 7, 2, "1"], ["ADD", 5, 2, "-2"], ["ADD", 0, 2, "1"], ["SCALE", 2, "-2"], ["SWAP", 4, 2], ["ADD", 9, 1, "-1"], ["ADD", 7, 1, "1"], ["ADD", 5, 1, "-1"], ["ADD", 0, 1, "1"], ["SWAP", 4, 1], ["ADD", 5, 0, "1"], ["ADD", 4, 0, "1"], ["ADD", 1, 0, "2"], ["ADD", 7, 9, "1"], ["SCALE", 9, "-1"], ["ADD", 7, 8, "-1"], ["ADD", 4, 8, "-2"], ["ADD", 1, 8, "-2"], ["ADD", 0, 8, "-1"], ["ADD", 9, 7, "1"], ["ADD", 0, 7, "-1"], ["SWAP", 8, 7], ["SWAP", 8, 6], ["SWAP", 7, 5], ["SWAP", 6, 4], ["SWAP", 5, 3], ["SWAP", 4, 2], ["SWAP", 3, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 3, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [3]], ["IDLE_ONE", 3, [3]], ["IDLE_ONE", 4, [3]], ["IDLE_ONE", 5, [3]], ["IDLE_ONE", 6, [3]], ["IDLE_ONE", 7, [3]], ["IDLE_ONE", 8, [3]], ["IDLE_ONE", 9, [3]], ["ADD", 6, 9, "-2"], ["ADD", 3, 9, "-2"], ["ADD", 2, 9, "-1"], ["ADD", 1, 9, "1"], ["SCALE", 9, "-1"], ["SWAP", 9, 8], ["SWAP", 9, 7], ["ADD", 8, 6, "-1/2"], ["ADD", 3, 6, "-1"], ["ADD", 2, 6, "-1/2"], ["ADD", 1, 6, "1"], ["ADD", 0, 6, "-1/2"], ["SCALE", 6, "-1/2"], ["SWAP", 7, 6], ["SWAP", 9, 5], ["SWAP", 9, 3], ["ADD", 9, 2, "-2"], ["ADD", 8, 2, "-1"], ["ADD", 7, 2, "-1"], ["ADD", 1, 2, "2"], ["ADD", 0, 2, "-1"], ["SCALE", 2, "-2"], ["SWAP", 4, 2], ["ADD", 0, 1, "1"], ["SWAP", 9, 1], ["ADD", 9, 0, "-1"], ["ADD", 8, 0, "1"], ["ADD", 7, 0, "1"], ["ADD", 4, 0, "2"], ["ADD", 1, 0, "2"], ["ADD", 7, 19, "-1"], ["ADD", 4, 19, "-1"], ["ADD", 1, 19, "-1"], ["SCALE", 19, "-1/2"], ["SWAP", 19, 18], ["SWAP", 18, 17], ["ADD", 17, 16, "1/2"], ["ADD", 13, 16, "-1"], ["SCALE", 16, "-1"], ["SWAP", 17, 15], ["SWAP", 16, 14], ["ADD", 14, 13, "1"], ["ADD", 10, 13, "-1"], ["SWAP", 15, 12], ["SWAP", 14, 11], ["ADD", 11, 10, "1"], ["ADD", 7, 10, "-1"], ["SWAP", 13, 9], ["SWAP", 12, 8], ["ADD", 10, 7, "1"], ["ADD", 1, 7, "1"], ["SCALE", 7, "-1"], ["SWAP", 9, 7], ["SWAP", 11, 6], ["SWAP", 10, 5], ["ADD", 9, 4, "1"], ["ADD", 1, 4, "-1"], ["SWAP", 9, 3], ["SWAP", 8, 2], ["ADD", 3, 1, "1"], ["ADD", 2, 1, "1/2"], ["ADD", 0, 1, "-1/2"], ["SCALE", 1, "-1/2"], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["SCALE", 0, "2"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 4, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [4]], ["IDLE_ONE", 3, [4]], ["IDLE_ONE", 4, [4]], ["IDLE_ONE", 5, [4]], ["IDLE_ONE", 6, [4]], ["IDLE_ONE", 7, [4]], ["SWAP", 19, 18], ["SWAP", 19, 17], ["SWAP", 19, 15], ["SWAP", 16, 14], ["SWAP", 16, 13], ["SWAP", 19, 12], ["SWAP", 13, 11], ["SWAP", 19, 10], ["SWAP", 16, 9], ["SWAP", 10, 8], ["ADD", 6, 7, "-1"], ["ADD", 2, 7, "1/2"], ["ADD", 0, 7, "1"], ["SCALE", 7, "-1"], ["SWAP", 16, 7], ["ADD", 16, 6, "-1"], ["ADD", 2, 6, "1/2"], ["SCALE", 6, "-1"], ["SWAP", 13, 6], ["ADD", 4, 5, "-1"], ["ADD", 3, 5, "-1"], ["ADD", 2, 5, "-1/2"], ["ADD", 0, 5, "1"], ["SCALE", 5, "-1"], ["SWAP", 19, 5], ["ADD", 19, 4, "-1"], ["ADD", 3, 4, "-1"], ["ADD", 2, 4, "-1/2"], ["SCALE", 4, "-1"], ["SWAP", 7, 4], ["ADD", 19, 3, "-1"], ["ADD", 7, 3, "-1"], ["ADD", 2, 3, "-1/2"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["SWAP", 4, 3], ["ADD", 16, 2, "2"], ["ADD", 13, 2, "2"], ["ADD", 0, 2, "-2"], ["SCALE", 2, "2"], ["SWAP", 10, 2], ["ADD", 16, 1, "2"], ["ADD", 13, 1, "2"], ["ADD", 10, 1, "2"], ["SCALE", 1, "-1"], ["ADD", 19, 0, "1"], ["ADD", 16, 0, "1"], ["ADD", 13, 0, "1"], ["ADD", 10, 0, "1"], ["ADD", 7, 0, "1"], ["ADD", 4, 0, "1"], ["SWAP", 1, 0], ["ADD", 16, 19, "2"], ["ADD", 13, 19, "2"], ["ADD", 10, 19, "2"], ["ADD", 0, 19, "-1"], ["SCALE", 19, "-1"], ["SWAP", 19, 18], ["SWAP", 18, 17], ["ADD", 0, 16, "2/3"], ["SWAP", 17, 16], ["SWAP", 16, 15], ["SWAP", 15, 14], ["ADD", 0, 13, "-2/3"], ["SWAP", 14, 13], ["SWAP", 13, 12], ["SWAP", 12, 11], ["ADD", 0, 10, "2/3"], ["SWAP", 11, 10], ["SWAP", 10, 9], ["SWAP", 9, 8], ["ADD", 0, 7, "-2/3"], ["SWAP", 8, 7], ["SWAP", 7, 6], ["SWAP", 6, 5], ["ADD", 0, 4, "2/3"], ["SWAP", 5, 4], ["SWAP", 4, 3], ["SWAP", 3, 2], ["ADD", 0, 1, "-2/3"], ["SWAP", 2, 1], ["SCALE", 0, "3"], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["SWAP", 19, 18], ["ADD", 14, 17, "-1"], ["ADD", 11, 17, "-1"], ["ADD", 1, 17, "-1/2"], ["ADD", 0, 17, "1/2"], ["SCALE", 17, "1/2"], ["SWAP", 19, 17], ["SWAP", 16, 15], ["ADD", 19, 14, "1/2"], ["ADD", 11, 14, "-1"], ["ADD", 1, 14, "3/2"], ["ADD", 0, 14, "1/2"], ["SCALE", 14, "-1"], ["SWAP", 16, 14], ["SWAP", 13, 12], ["ADD", 19, 11, "1/2"], ["ADD", 16, 11, "-1"], ["ADD", 1, 11, "-1/2"], ["ADD", 0, 11, "1/2"], ["SCALE", 11, "-1"], ["SWAP", 13, 11], ["SWAP", 10, 9], ["ADD", 1, 8, "2"], ["SWAP", 10, 8], ["SWAP", 10, 7], ["SWAP", 10, 6], ["ADD", 1, 5, "-2"], ["SWAP", 10, 5], ["SWAP", 10, 4], ["SWAP", 10, 3], ["ADD", 1, 2, "2"], ["SWAP", 10, 2], ["ADD", 19, 1, "-1/3"], ["ADD", 16, 1, "2/3"], ["ADD", 13, 1, "2/3"], ["ADD", 0, 1, "-1/3"], ["SCALE", 1, "2/3"], ["SWAP", 10, 1], ["ADD", 19, 0, "-1"], ["ADD", 16, 0, "2"], ["ADD", 13, 0, "2"], ["ADD", 10, 0, "2"], ["SCALE", 0, "-1"], ["ADD", 13, 16, "-1"], ["ADD", 10, 16, "-1/2"], ["ADD", 0, 16, "1/2"], ["SCALE", 16, "-1/2"], ["SWAP", 16, 15], ["SWAP", 15, 14], ["SWAP", 14, 13], ["ADD", 13, 12, "1"], ["ADD", 11, 12, "1"], ["ADD", 10, 11, "1"], ["SCALE", 11, "-1"], ["SWAP", 12, 11], ["ADD", 12, 10, "1"], ["ADD", 0, 10, "1"], ["SCALE", 10, "-1"], ["SWAP", 11, 10], ["SWAP", 18, 9], ["SWAP", 17, 8], ["SWAP", 16, 7], ["SWAP", 15, 6], ["SWAP", 14, 5], ["SWAP", 13, 4], ["SWAP", 12, 3], ["SWAP", 11, 2], ["SWAP", 10, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 5, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [5]], ["IDLE_ONE", 3, [5]], ["IDLE_ONE", 4, [5]], ["IDLE_ONE", 5, [5]], ["IDLE_ONE", 6, [5]], ["IDLE_ONE", 7, [5]], ["IDLE_ONE", 8, [5]], ["IDLE_ONE", 9, [5]], ["SWAP", 16, 15], ["SWAP", 16, 14], ["SWAP", 11, 10], ["SWAP", 18, 9], ["SWAP", 17, 8], ["SWAP", 15, 7], ["SWAP", 14, 6], ["ADD", 4, 5, "-1/2"], ["ADD", 3, 5, "-1/2"], ["ADD", 2, 5, "1/2"], ["SCALE", 5, "-1"], ["SWAP", 16, 5], ["ADD", 16, 4, "-2"], ["ADD", 3, 4, "-1"], ["ADD", 2, 4, "1"], ["SCALE", 4, "-2"], ["SWAP", 13, 4], ["ADD", 16, 3, "-2"], ["ADD", 13, 3, "-2"], ["ADD", 2, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["SWAP", 12, 3], ["ADD", 16, 2, "2"], ["ADD", 13, 2, "2"], ["ADD", 12, 2, "1"], ["ADD", 1, 2, "1"], ["ADD", 0, 2, "-2"], ["SWAP", 10, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 11, 1], ["ADD", 16, 0, "2"], ["ADD", 13, 0, "2"], ["ADD", 12, 0, "1"], ["ADD", 10, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 14, 16, "1/2"], ["ADD", 13, 16, "-1"], ["ADD", 11, 16, "1/2"], ["ADD", 10, 16, "-1/2"], ["ADD", 0, 16, "1/2"], ["SCALE", 16, "-1/2"], ["ADD", 16, 15, "1"], ["ADD", 14, 15, "-1"], ["ADD", 13, 15, "1"], ["ADD", 12, 15, "-1"], ["ADD", 11, 15, "-1"], ["ADD", 10, 15, "1"], ["ADD", 16, 14, "1"], ["ADD", 13, 14, "1"], ["SCALE", 14, "-1"], ["SWAP", 15, 14], ["ADD", 15, 13, "1"], ["ADD", 14, 13, "1"], ["ADD", 12, 13, "-1"], ["ADD", 0, 13, "1"], ["SCALE", 13, "-1"], ["ADD", 14, 12, "1"], ["ADD", 10, 12, "1"], ["SCALE", 12, "-1"], ["SWAP", 13, 11], ["ADD", 12, 10, "1"], ["SCALE", 10, "-1"], ["SWAP", 18, 9], ["SWAP", 17, 8], ["SWAP", 16, 7], ["SWAP", 15, 6], ["SWAP", 14, 5], ["SWAP", 13, 4], ["SWAP", 12, 3], ["SWAP", 11, 2], ["SWAP", 10, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 6, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [6]], ["IDLE_ONE", 3, [6]], ["IDLE_ONE", 4, [6]], ["IDLE_ONE", 5, [6]], ["IDLE_ONE", 6, [6]], ["IDLE_ONE", 7, [6]], ["IDLE_ONE", 8, [6]], ["IDLE_ONE", 9, [6]], ["SWAP", 16, 15], ["SWAP", 15, 14], ["SWAP", 15, 13], ["SWAP", 13, 12], ["SWAP", 13, 11], ["SWAP", 18, 9], ["SWAP", 17, 8], ["ADD", 0, 7, "-1"], ["SWAP", 14, 7], ["ADD", 4, 6, "1/2"], ["ADD", 3, 6, "-1/2"], ["ADD", 2, 6, "1/2"], ["SCALE", 6, "-1"], ["SWAP", 16, 6], ["ADD", 1, 5, "1"], ["SWAP", 12, 5], ["ADD", 16, 4, "-2"], ["ADD", 3, 4, "1"], ["ADD", 2, 4, "1"], ["SCALE", 4, "-2"], ["SWAP", 15, 4], ["ADD", 16, 3, "2"], ["ADD", 15, 3, "2"], ["ADD", 2, 3, "-1"], ["SWAP", 11, 3], ["ADD", 16, 2, "2"], ["ADD", 15, 2, "1"], ["ADD", 0, 2, "-1"], ["SWAP", 13, 2], ["ADD", 15, 1, "1"], ["ADD", 13, 1, "-1"], ["ADD", 11, 1, "1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 10, 1], ["ADD", 16, 0, "2"], ["ADD", 13, 0, "2"], ["ADD", 11, 0, "-1"], ["ADD", 10, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 13, 16, "-1/2"], ["ADD", 0, 16, "1/2"], ["SCALE", 16, "1/2"], ["ADD", 13, 15, "1"], ["SCALE", 15, "-1"], ["ADD", 16, 14, "1"], ["SCALE", 14, "-1"], ["ADD", 15, 13, "1"], ["ADD", 0, 13, "1"], ["SCALE", 13, "-1"], ["SWAP", 14, 13], ["SWAP", 18, 12], ["SWAP", 17, 11], ["SWAP", 16, 10], ["SWAP", 15, 9], ["SWAP", 14, 8], ["SWAP", 13, 7], ["SWAP", 12, 6], ["SWAP", 11, 5], ["SWAP", 10, 4], ["SWAP", 9, 3], ["SWAP", 8, 2], ["SWAP", 7, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 7, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [7]], ["IDLE_ONE", 3, [7]], ["IDLE_ONE", 4, [7]], ["IDLE_ONE", 5, [7]], ["IDLE_ONE", 6, [7]], ["SWAP", 15, 14], ["SWAP", 15, 13], ["SWAP", 18, 12], ["SWAP", 17, 11], ["SWAP", 16, 10], ["SWAP", 14, 9], ["SWAP", 13, 8], ["SWAP", 15, 7], ["SWAP", 18, 6], ["SWAP", 17, 5], ["ADD", 3, 4, "1"], ["ADD", 2, 4, "-1"], ["SCALE", 4, "2"], ["SWAP", 16, 4], ["ADD", 16, 3, "-2"], ["ADD", 2, 3, "1"], ["ADD", 1, 3, "1"], ["SWAP", 14, 3], ["ADD", 16, 2, "2"], ["ADD", 14, 2, "-1"], ["ADD", 0, 2, "-1"], ["SWAP", 13, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 15, 1], ["ADD", 16, 0, "2"], ["ADD", 15, 0, "1"], ["ADD", 14, 0, "-1"], ["ADD", 13, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 17, 18, "1"], ["ADD", 16, 18, "-1"], ["ADD", 0, 18, "1"], ["ADD", 16, 17, "1"], ["SCALE", 17, "-1"], ["SWAP", 18, 17], ["ADD", 18, 16, "1"], ["ADD", 0, 16, "1"], ["SCALE", 16, "-1"], ["SWAP", 17, 16], ["SWAP", 18, 15], ["SWAP", 17, 14], ["SWAP", 16, 13], ["SWAP", 15, 12], ["SWAP", 14, 11], ["SWAP", 13, 10], ["SWAP", 12, 9], ["SWAP", 11, 8], ["SWAP", 10, 7], ["SWAP", 9, 6], ["SWAP", 8, 5], ["SWAP", 7, 4], ["SWAP", 6, 3], ["SWAP", 5, 2], ["SWAP", 4, 1], ["ADD", 2, 0, "1"], ["ADD", 1, 0, "-1"], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["LAMBDA", 0, -1], ["HOST", 0, 1, 8, "1", "-1"], ["LAMBDA", 0, 1], ["ADD", 1, 0, "1"], ["SCALE", 1, "-1"], ["IDLE_ONE", 2, [8]], ["IDLE_ONE", 3, [8]], ["SWAP", 17, 16], ["SWAP", 18, 15], ["SWAP", 16, 14], ["SWAP", 17, 13], ["SWAP", 18, 12], ["SWAP", 16, 11], ["SWAP", 17, 10], ["SWAP", 18, 9], ["SWAP", 16, 8], ["SWAP", 17, 7], ["SWAP", 18, 6], ["SWAP", 16, 5], ["SWAP", 17, 4], ["ADD", 2, 3, "1"], ["ADD", 0, 3, "1"], ["SCALE", 3, "-1"], ["SWAP", 18, 3], ["ADD", 18, 2, "1"], ["ADD", 1, 2, "1"], ["ADD", 0, 2, "-2"], ["SWAP", 16, 2], ["ADD", 0, 1, "1"], ["SCALE", 1, "-1"], ["SWAP", 17, 1], ["ADD", 18, 0, "1"], ["ADD", 16, 0, "1"], ["SCALE", 0, "-1"], ["ADD", 0, 18, "1"], ["ADD", 16, 17, "1"], ["ADD", 0, 17, "-1"], ["SCALE", 17, "-1"], ["ADD", 0, 16, "1"], ["SWAP", 17, 16], ["SWAP", 16, 15], ["SWAP", 15, 14], ["SWAP", 14, 13], ["SWAP", 13, 12], ["SWAP", 12, 11], ["SWAP", 11, 10], ["SWAP", 10, 9], ["SWAP", 9, 8], ["SWAP", 8, 7], ["SWAP", 7, 6], ["SWAP", 6, 5], ["SWAP", 5, 4], ["SWAP", 4, 3], ["SWAP", 3, 2], ["SWAP", 2, 1], ["SWAP", 1, 0], ["ADD", 0, 1, "-1"], ["LAMBDA", 1, 1], ["QUERY", 0, 1, 1], ["LAMBDA", 1, -1], ["ADD", 1, 18, "-1"], ["ADD", 0, 17, "1"], ["SWAP", 16, 15], ["SWAP", 16, 14], ["SWAP", 16, 13], ["SWAP", 16, 12], ["SWAP", 16, 11], ["SWAP", 16, 10], ["SWAP", 16, 9], ["SWAP", 16, 8], ["SWAP", 16, 7], ["SWAP", 16, 6], ["SWAP", 16, 5], ["SWAP", 16, 4], ["SWAP", 16, 3], ["SWAP", 16, 2], ["ADD", 17, 1, "-1"], ["ADD", 0, 1, "-1"], ["SWAP", 16, 1], ["ADD", 17, 0, "-1"], ["ADD", 16, 0, "1"], ["SCALE", 0, "-1"], ["LAMBDA", 0, -1], ["LAMBDA", 1, -1], ["LAMBDA", 2, -1], ["LAMBDA", 3, -1], ["LAMBDA", 4, -1], ["LAMBDA", 5, -1], ["LAMBDA", 6, -1], ["LAMBDA", 7, -1], ["LAMBDA", 8, -1], ["LAMBDA", 9, -1], ["LAMBDA", 10, -1], ["LAMBDA", 11, -1], ["LAMBDA", 12, -1], ["LAMBDA", 13, -1], ["LAMBDA", 14, -1], ["LAMBDA", 15, -1], ["LAMBDA", 16, -1], ["LAMBDA", 17, -1], ["LAMBDA", 18, -1], ["LAMBDA", 19, -1]], "central_relation": "Q^4=1; R=Lambda Q; R^2=1"} diff --git a/research/connected-l18-root-caller/cost.py b/research/connected-l18-root-caller/cost.py new file mode 100644 index 0000000000..58c4b13697 --- /dev/null +++ b/research/connected-l18-root-caller/cost.py @@ -0,0 +1,34 @@ +"""Actual emitted census and conditional native gates, never a kappa certificate.""" +from pathlib import Path +from fractions import Fraction as F +from decimal import Decimal as D,getcontext +from collections import Counter +import json,math +if not __debug__:raise RuntimeError('Cost check requires assertions') +HERE=Path(__file__).resolve().parent;getcontext().prec=60 + +def value(h,k):return sum(D(c)*D(r)**(1-k)for r,c in h.items()) +def census(g): + C=json.loads((HERE/f'caller_L{g}.json').read_text());counts=Counter(e[0]for e in C['events']);n=C['roles'];T=Counter(1+8*m.bit_count()for m in C['masks']);P={8:counts['IDLE_ONE'],1:counts['QUERY']};sc=[F(e[-1])for e in C['events']if e[0]in['ADD','SCALE']] + assert counts['HOST']==g and counts['QUERY']==3 and counts['LAMBDA']==2*g+6+n + assert all(m>0 for m in C['masks']) + if g==18:assert counts==Counter({'ADD':1041,'SCALE':189,'SWAP':858,'LAMBDA':80,'QUERY':3,'HOST':18,'IDLE_ONE':181}) + gates={} + for label,k in [('selected_complex',D('.003125804')),('pending_complex_6936',D('.00362701882')),('ordinary_BIT_6726',D('.00376669'))]: + gate=(value(T,k)-value(P,k))/g + baseline={8:P[8]+2*g,1:3+2*g} + gates[label]={'comparison_kappa':str(k),'max_native_signed_cost_per_port_per_call_before_ordinary_outer':str(gate),'allowance_above_two_H8':str(gate-2*D(8)**(1-k)),'direct_baseline_signed_moment':str(value(T,k)-value(baseline,k))} + assert value(T,k)-value(baseline,k)<0 + source=json.loads((HERE/'inputs/base_invoice.json').read_text());fp={int(r):c for r,c in source['local_paid'].items()};ft={int(r):c for r,c in source['helpers'].items()} + if g==18: + for label,z in gates.items(): + k=D(z['comparison_kappa']);fprice=(value(fp,k)-value(ft,k))/104+1 + z['retained_F_plus_H1_cost_per_port']=str(fprice) + z['retained_F_plus_H1_excess']=str(fprice-D(z['max_native_signed_cost_per_port_per_call_before_ordinary_outer'])) + assert fprice>D(z['max_native_signed_cost_per_port_per_call_before_ordinary_outer']) + return {'roles':n,'stages':g,'events':len(C['events']),'event_counts':dict(counts),'ordinary_events':sum(counts[x]for x in['ADD','SCALE','SWAP','LAMBDA']),'target_histogram':dict(sorted(T.items())),'target_rank_mass':sum(r*c for r,c in T.items()),'paid_outside_native':P,'paid_outside_native_mass':sum(r*c for r,c in P.items()),'ordinary_scalar_denominator_lcm':str(math.lcm(*(x.denominator for x in sc))),'max_abs_ordinary_scalar':str(max(map(abs,sc))),'native_gates':gates} +if __name__=='__main__': + out={str(g):census(g)for g in[3,9,18]};out=json.loads(json.dumps(out)) + p=HERE/'COST.json' + if p.exists():assert out==json.loads(p.read_text()) + print(json.dumps(out,indent=2));print('PASS_EMITTED_CENSUS') diff --git a/research/connected-l18-root-caller/generate.py b/research/connected-l18-root-caller/generate.py new file mode 100644 index 0000000000..cfb35ad6f9 --- /dev/null +++ b/research/connected-l18-root-caller/generate.py @@ -0,0 +1,119 @@ +import json,sys +from pathlib import Path +from fractions import Fraction as Q +sys.path.insert(0,str(Path(__file__).resolve().parent)) +import matrix as v +if not __debug__:raise RuntimeError('Exact generator requires assertions') +def construct(g): + assert g in (3,9,18) + n=2*g+2;N=2*g+3;X=[];Y=[] + for i in range(g): + x=[Q(0)]*n;y=x[:];x[0]=1;x[1+i]=1;y[0]=1;y[1+i]=-1 + for j in range(i):x[1+j]=2 + X.append(x);Y.append(y) + for a,ss,p,q in [(0,1,0,1),(-1,0,1,0),(-1,-1,1,-1)]: + u=2-ss if g%2 else ss;x=[Q(0)]*n;y=x[:];x[0]=a;y[0]=u;x[-1]=q;y[-1]=p + for i in range(g):x[1+i]=a+1;y[1+i]=(1-u)*(-1)**i + for m in range(g):x[g+1+m]=1-a;y[g+1+m]=(u-1)*(-1)**(g-1-m) + X.append(x);Y.append(y) + for m in range(g): + x=[Q(0)]*n;y=x[:];x[0]=-1;x[g+1+m]=1;y[0]=1;y[g+1+m]=1 + for j in range(m+1,g):x[g+1+j]=2 + X.append(x);Y.append(y) + B=v.eye(n) + for start in list(range(1,g+1,3))+list(range(g+1,2*g+1,3)): + block=[[1,1,0],[1,1,1],[1,0,1]] + for i in range(3): + for j in range(3):B[start+i][start+j]=Q(block[i][j]) + Bi=v.inverse(B);X=[list(r) for r in zip(*v.mul(Bi,list(zip(*X))))];Y=v.mul(Y,B);stages=[] + for u in range(1,g-1,2): + e=u+1;end=3*((e+3)//3);stages.append(dict(units=[u,e],mask=[0]+list(range(1,1+end)))) + stages.append(dict(units=[g,g+1],mask=[0,n-1]+list(range(1,g+1,3))+list(range(g+1,2*g+1,3)))) + for m in range(0,g-1,2): + start=3*(m//3);stages.append(dict(units=[g+3+m,g+4+m],mask=[0]+list(range(g+1+start,2*g+1)))) + pref=v.prefixes(X,Y,Q(-2));assert pref[-1]==v.scale(v.eye(n),Q(-1)) + assert all(v.dot(Y[i],X[j])==((i>j)-(ilen(cols):cols.append(c) + if len(cols)==n:return list(map(list,zip(*cols))) + raise ValueError('not a basis') +def synth(M): + A=[r[:] for r in M];n=len(M);ops=[] + for c in range(n): + p=next(i for i in range(c,n) if A[i][c]) + if p!=c:A[p],A[c]=A[c],A[p];ops.append(['SWAP',p,c]) + q=A[c][c] + if q!=1:A[c]=[x/q for x in A[c]];ops.append(['SCALE',c,str(1/q)]) + for i in range(n): + if i!=c and A[i][c]: + q=-A[i][c];A[i]=[x+q*y for x,y in zip(A[i],A[c])];ops.append(['ADD',i,c,str(q)]) + out=[] + for op in reversed(ops): + op=op[:] + if op[0]=='SCALE':op[2]=str(1/Q(op[2])) + if op[0]=='ADD':op[3]=str(-Q(op[3])) + out.append(op) + return out + +def compile_root(R): + n=R['n'];X=[[Q(x)for x in r]for r in R['X']];Y=[[Q(x)for x in r]for r in R['Y']];ST=R['stages'];events=[];skip=set();at={s['units'][0]:k for k,s in enumerate(ST)} + for u in range(R['N']): + if u in skip:continue + if u in at: + k=at[u];w=u+1;skip.add(w);mask=ST[k]['mask'];H=v.add(v.outer(X[u],Y[w]),v.outer(X[w],Y[u]),Q(-1));E=v.zero(n) + for c in mask:E[c][c]=Q(1) + residual=v.add(E,H,Q(-1));outside=[v.eye(n)[c]for c in range(n)if c not in mask] + B=basis([X[u],X[w]]+list(map(list,zip(*residual)))+outside,n);Bi=v.inverse(B) + assert v.mul(v.mul(Bi,E),B)==[[Q(i==j and i>k&1 else v.add(v.eye(8),E,Q(-1))) + if v.rank(J):dims[mask]=v.rank(J) + assert dims=={1:2,2:1,3:1,4:2,6:1,7:1} + for g in [3,9,18]: + root=construct(g);caller=compile_root(root) + assert v.rank([[Q(x)for x in r]for r in root['X']])==root['n'] + assert v.rank([[Q(x)for x in r]for r in root['Y']])==root['n'] + for name,data in [(f'root_L{g}.json',root),(f'caller_L{g}.json',caller)]: + if args.write:(here/name).write_text(json.dumps(data)+'\n') + else:assert data==json.loads((here/name).read_text()),name + if g==9: + B=v.eye(20);block=[[1,1,0],[1,1,1],[1,0,1]] + for start in list(range(1,10,3))+list(range(10,19,3)): + for i in range(3): + for j in range(3):B[start+i][start+j]=Q(block[i][j]) + XX=[[Q(x)for x in r]for r in root['X']] + rawX=list(map(list,zip(*v.mul(B,list(zip(*XX)))))) + rawY=v.mul([[Q(x)for x in r]for r in root['Y']],v.inverse(B)) + retained=json.loads((here/'inputs/root_A.json').read_text()) + assert rawX==[[Q(x)for x in retained['X'][2*i][:20]]for i in range(21)] + assert rawY==[[Q(x)for x in retained['Y'][2*i][:20]]for i in range(21)] + print('PASS_ROOT_CALLER',g,len(caller['events'])) diff --git a/research/connected-l18-root-caller/idle_coalescing.py b/research/connected-l18-root-caller/idle_coalescing.py new file mode 100644 index 0000000000..66091e8538 --- /dev/null +++ b/research/connected-l18-root-caller/idle_coalescing.py @@ -0,0 +1,192 @@ +#!/usr/bin/env python3 +"""Exact eligibility-compression certificate for the optimistic L18 idle bill. +Standard library; rational transcendental bounds; checks stay active under -O. +""" +from fractions import Fraction as Q +from functools import lru_cache +from itertools import combinations +from pathlib import Path +from hashlib import sha256 +from decimal import Decimal, localcontext, ROUND_FLOOR, ROUND_CEILING +from collections import Counter +import json +import argparse + +HERE=Path(__file__).resolve().parent +PIN_DIGESTS={ + 'root_L18.json':'be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34', + 'caller_L18.json':'f4090329f219edd493b4ca592128521e867a355fb528556b15201e759783568b', + 'inputs/base_invoice.json':'87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6', +} +K=Q('0.00362701882') +REQUIRED=Q('10.081828') # Checked below against the source-bound rational full bill. + + +def need(ok,label): + if not ok:raise ValueError(label) + + +def log_series(z,terms=40): + """2atanh(z), z in[0,1/3], exact positive-series lower/tail upper.""" + need(0<=z<=Q(1,3),'log range reduction') + lo=sum((2*z**(2*j+1)/Q(2*j+1) for j in range(terms)),Q(0)) + tail=2*z**(2*terms+1)/(Q(2*terms+1)*(1-z*z)) + return lo,lo+tail + + +@lru_cache(None) +def log_bounds(n): + e=n.bit_length()-1;p=2**e + a,b=log_series(Q(1,3));c,d=log_series(Q(n-p,n+p)) + return e*a+c,e*b+d + + +def exp_neg_bounds(x): + """Alternating Taylor series bounds for exp(-x), 0<=x<1.""" + need(0<=x<1,'exponential alternating-series range') + term=Q(1);s=term + for j in range(1,31):term*=(-x)/j;s+=term + hi=s # even partial sum is an upper bound + term*=(-x)/31 + return s+term,hi + + +@lru_cache(None) +def power_bounds(n): + if not n:return Q(0),Q(0) + need(isinstance(n,int) and n>0,'positive integral child rank') + ll,lu=log_bounds(n) + low=exp_neg_bounds(K*lu)[0];high=exp_neg_bounds(K*ll)[1] + return n*low,n*high + + +def cost_bounds(degree): + return power_bounds(8*degree) + + +def histogram_bounds(histogram): + need(all(int(r)>0 and isinstance(c,int) and c>=0 for r,c in histogram.items()),'nonnegative invoice counts') + return (sum((c*power_bounds(int(r))[0] for r,c in histogram.items()),Q(0)), + sum((c*power_bounds(int(r))[1] for r,c in histogram.items()),Q(0))) + + +def required_savings_bounds(caller,invoice): + counts=Counter(e[0] for e in caller['events']) + need(counts['HOST']==18 and counts['IDLE_ONE']==181 and counts['QUERY']==3,'source-bound recursive census') + target=Counter(1+8*m.bit_count() for m in caller['masks']) + tl,tu=histogram_bounds(target) + pl,pu=histogram_bounds(invoice['local_paid']) + hl,hu=histogram_bounds(invoice['helpers']) + fl,fu=(pl-hu)/104+1,(pu-hl)/104+1 + el,eu=power_bounds(8) + return 18*fl-tu+181*el+3,18*fu-tl+181*eu+3 + + +def savings_bounds(degrees): + l1,u1=cost_bounds(1);D=sum(degrees) + return D*l1-sum(cost_bounds(d)[1] for d in degrees),D*u1-sum(cost_bounds(d)[0] for d in degrees) + + +def decimal(q,rounding=ROUND_FLOOR): + with localcontext() as c: + c.prec=45;c.rounding=rounding + return str(Decimal(q.numerator)/Decimal(q.denominator)) + + +def allowed_host_pairs(mask,eligibility): + # Compression-stable idle sets imply that a host set is downward closed + # under STRICT eligibility inclusion. Equal-eligibility roles need no tie. + return [list(h) for h in combinations(mask,2) + if all(not (eligibility[j]REQUIRED,'source-bound invoice certifies conservative required saving') + masks=[s['mask'] for s in root['stages']] + need(root['n']==38 and len(masks)==18,'L18 source dimensions') + need(all(len(set(m))==len(m) for m in masks),'mask roles are independent and distinct') + eligibility=[{s for s,m in enumerate(masks) if r in m} for r in range(38)] + need([sum(1<REQUIRED,'degree-only relaxation must remain visibly insufficient') + report={'status':'OPTIMISTIC_COALESCING_ONLY_ROUTE_CLOSED','kappa_probe':str(K),'independent_roles':38,'stages':18,'idle_actions':181, + 'host_roles_by_stage':host0,'optimal_degrees':d0,'optimal_degree_histogram':dict(sorted(Counter(d0).items())), + 'optimal_savings_interval':[decimal(lo),decimal(hi,ROUND_CEILING)], + 'required_saving_interval':[decimal(required_lo),decimal(required_hi,ROUND_CEILING)], + 'required_saving_lower':decimal(REQUIRED),'shortfall_lower':decimal(required_lo-hi), + 'degree_only_upper_interval':[decimal(rlo),decimal(rhi,ROUND_CEILING)],'candidate_native_per_stage':'17.69144246035','uncoalesced_gate_per_stage':'17.13134090285', + 'proof':'eligibility union/intersection compression plus two exact bridge cases; rational ln/exp enclosures','scope':'fixed38 coordinate roles;181 idles;two coordinate hosts perstage;free all-occurrence same-role merging;no noncoordinate or general native obstruction;no supplier or kappa claim'} + if args.receipt: + need(json.loads(json.dumps(report))==json.loads(args.receipt.read_text()),'retained receipt matches recomputation') + print(json.dumps(report,sort_keys=True)) + print('PASS_L18_IDLE_COALESCING_BOUND optimum_savings_lt_9.707290 required_gt_10.081828 independent_roles=38 controls=3_REJECT degree_only_relaxation=DISTINGUISHED') + +if __name__=='__main__':main() diff --git a/research/connected-l18-root-caller/independent.py b/research/connected-l18-root-caller/independent.py new file mode 100644 index 0000000000..de7a5afb80 --- /dev/null +++ b/research/connected-l18-root-caller/independent.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +"""Independent reverse formal Q4/Gaussian-rational review of the emitted connected L18 caller. +OpenAI Codex-assisted review; no imports from the primary builder/replayer. +""" +from pathlib import Path +from fractions import Fraction as F +from collections import Counter +import argparse,copy,hashlib,json,time +if not __debug__:raise RuntimeError('Independent replay requires assertions') +ONE=(F(1),F(0));ZERO=(F(0),F(0)) +def cadd(a,b):return(a[0]+b[0],a[1]+b[1]) +def cmul(a,b):return(a[0]*b[0]-a[1]*b[1],a[0]*b[1]+a[1]*b[0]) +def add(a,b): + out=a.copy() + for mon,v in b.items(): + z=cadd(out.get(mon,ZERO),v) + if z!=ZERO:out[mon]=z + elif mon in out:del out[mon] + return out +def scale(a,c):return{m:z for m,v in a.items()if(z:=cmul(v,c))!=ZERO} +def shift(a,qe=0,ds=(),modulus=4): + out={} + for mon,v in a.items(): + m=list(mon);m[0]=(m[0]+qe)%modulus + for d in ds:m[d+1]+=1 + m=tuple(m);z=cadd(out.get(m,ZERO),v) + if z!=ZERO:out[m]=z + elif m in out:del out[m] + return out + +def replay(w,modulus=4,wrong_host_index=None,stop_on_failure=False): + zero=(0,)*(w['stages']+1);bad=[];peak=0;checks=0 + for output in range(w['roles']): + a=[{}for _ in range(w['roles'])];a[output]={zero:ONE} + for event_index,e in reversed(list(enumerate(w['events']))): + op=e[0] + if op=='ADD':a[e[2]]=add(a[e[2]],scale(a[e[1]],(F(e[3]),F(0)))) + elif op=='SCALE':a[e[1]]=scale(a[e[1]],(F(e[2]),F(0))) + elif op=='SWAP':a[e[1]],a[e[2]]=a[e[2]],a[e[1]] + elif op=='QUERY':a[e[2]]=add(a[e[2]],shift(a[e[1]],qe=e[3],modulus=modulus)) + elif op=='LAMBDA': + z=a[e[1]];s=e[2];assert s in(-1,1) + a[e[1]]=add(scale(z,(F(1,2),F(s,2))),shift(scale(z,(F(1,2),F(-s,2))),qe=2,modulus=modulus)) + elif op=='IDLE_ONE':a[e[1]]=shift(a[e[1]],ds=e[2],modulus=modulus) + elif op=='HOST': + x,y,d=e[1:4];left,right=a[x],a[y] + a[x]=shift(add(left,scale(shift(right,qe=-1,modulus=modulus),(F(1 if event_index==wrong_host_index else -1),F(0)))),ds=(d,),modulus=modulus) + a[y]=shift(left,qe=1,ds=(d,),modulus=modulus) + else:raise ValueError(op) + peak=max(peak,sum(len(p)for p in a)) + expected=(1,)+tuple(int(w['masks'][output]>>d&1)for d in range(w['stages'])) + for j,z in enumerate(a): + checks+=1 + if z!=({expected:ONE}if output==j else{}): + bad.append([output,j]) + if stop_on_failure:return dict(bad=bad,coefficients=checks,peak_terms=peak) + return dict(bad=bad,coefficients=checks,peak_terms=peak) + +def factor(n): + out=[];d=2 + while d*d<=n: + if n%d==0: + out.append(d) + while n%d==0:n//=d + d+=1 + if n>1:out.append(n) + return out + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('--package',required=True);ap.add_argument('--out',required=True);ap.add_argument('--write',action='store_true');args=ap.parse_args();h=Path(args.package);started=time.monotonic() + p=h/'caller_L18.json';blob=p.read_bytes();w=json.loads(blob);root_blob=(h/'root_L18.json').read_bytes();root=json.loads(root_blob) + caller_sha=hashlib.sha256(blob).hexdigest();root_sha=hashlib.sha256(root_blob).hexdigest() + assert caller_sha=='f4090329f219edd493b4ca592128521e867a355fb528556b15201e759783568b' + assert root_sha=='be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34' + assert(w['roles'],w['stages'],root['n'],len(root['stages']))==(38,18,38,18) + masks=[sum(1<>O=IbSq2FfM9yZ*BnWy-Sa^F>WUIU%qt}O81L* zgG_eWW!W$S17imbcqIeT2{a?TS>5u>N z5C8n@@BZLJ{rXFOQwd*xY1#ib|AzeUA9qOZuh^$He*2e?qs~VE{rDYyjB)&?@tenQ z8NVZM9C_o&BkiY=H;ue$VEH;>;ke#bhwHhxDwKl1sJ&yRe5wjcb+>qlNc@_PC{^7@fCjJ#pw4I^(Db%v2I zjC^6_qjF=t!dR~`)+>y)3N+`g(}yy@T#=^ycSr8%%Ip7cBXkV#Kgxs4uSq3@ef)op z{Y-n8&-ypUm4qDCI|Tm?XR%&28oE_J%~RwkeJf%)%|C% z>Nv=4Y=0g0^og4N`|71d$-kZV&qat<{iUA#*p1mDo6GTYJjR|4P%D zffu)E1^r2b?WV z0)T}5TiPky@Bi(Z=l=->;Fk7D0YLfg?I-yEE&hBEH?jQxXYq;Nek=X2A?m+|wWQt9 z*3`FS=%f8GXha+|B0B%r4rxj5ar`F0nbSoY_v`9_~{9icHByl=L5+hIEw>L{fPwl6!<;~ct(2sD+^A4`#l%O``>1U znIxXpb?0>A=qW?p@WyO^M}K{^|My?N{^{TT;XnW5fBp4$fB1vI(C0X7Ynk&=wF zVhQ}0QWK|AhRhjK;fg7_Q)=j(+!NP6YvU{gOk6rSu8k7fOyGi*vU$hF3pd*XS5>$w zuCQ^#l)#^c0LfL)GP8MZjBAP9W}LNn{>yDd$F)0#MoLMXKg>3`&g2UZaSn8T=5!ud zs&h14TjM_D#CbCR<;CC$PPKB*%sJ;$a(eF!CI?`uGr6JBzuQ)r;RG`0H;avDRGDfl4QTIhSJS5=AS%<{@H7MHP zc*#+w!Ck`_8QceJ4|NV-l7^%<2p&~E#O|*lcMUl`cE4&Jc?zo)Ay;mB$j4uW3P-MY z)I*gFiWzu;X_tKs$ve?L8AJGLQ|kzfAn|L^@FDjn-WY?|4z+vabv#LV<{dRzKt$&{Ej9&?p%fU~MO4p5a2Fy8?0?t=Arw6VK;l-S+90&G=}#u;_L z$eM^&iXe@V4Fd}A3JeH@z!yMT*o**Ng3)~Rm%4>oPmd0lE9BiwT0=>;vga5<3D7Ye ze6dx%XXRaD_V;Y#JrGkOJvaXs$!0`r?5r?^%9JZ))fR3LD#J97AWfQSM`i8N{;RHb zbnH>p>X)r*clfC4J(8oU*(*?Dch{Ck528NFCfO*Roh=58tYnFS0IsTB0Ni*|fG^U< zQDOsZiPg9*@#vK)A#FSWjTj3nc<*6wI^`$EhterOGek)r^;112|4K*srT$m?=qeeY ziaY9A=~Pc^?{qepxkvii0Y#BuEvZtBwD(zi5i$T+1mgl}uT6VE(z!Xyy91B?TtL?z z>}7J1{2#P1PeSX| zO_m^B9wcQ+t#taw`WMN;>8lRH$I>^8xKu_G2Alcsnc-1yDCagP1+fhyX( zC$(MARJ*s#bcjZ@&TeWP1ZORmrZi62R5%GXRn-BT$~%4N3X`N+0aqn8EL~sfT(FhA z8r_xi7p;x*y&(GKU4!P+`lQiUUYd3{mC5yiuxou9_&oK|uQ_9B{ihtfMpTGD@akpB z^OdBW*2;AZ6rR?CuU8}dWw*3TP-!Wl>D;URm3J?z&R=c)=Z<8*_A`xtYT#6zeAuwH z>&q-Q{<9H;(PSa)RQd_9GILw2Yg}+_?=EdWE8O{YD6<~T-=v$=U$$N_7Rf?PdP4_o zy3A=Q{EtsFf6I^TY0be*VO$B1FX`C`gZ4KibNcO_^Hs^Kdd^2%osAzn@m~74DI=R- z2I-mRmieE_>HI$JQ-l(;EH9DRG?HxeEScA5u5cCMO4sKnot~ecd7fpTbuK#$Z6n$J zOh2l8ATfsNc%?ZIDo|I-E)|7hg=IgPM!U9HLDfZVyS~jN>VniKq&^{~JZdY?+Nv^> z`G4Ap;#ZY5@_8 z@Fo=vg5z!VX4?3es$~IABPV~-qC0I>Le)tn6BykC#vHY|UH7B$&23j3l2g9DbG~cY z-?SFyf^|)MlD(!3oGpUnnV2VkpXR+ub{G20yv+L-@sI?S1h@jBI$=`TFfEa)W{OH?kS$jBeE3LP}pd68QEFs-({q50F4Q*?5?P{BnGrwMq$9)-y-K5$K@ zQLaORCA~3ZXRmQ(;G%+X?M&B7M*1wfD$+~@kit9~0kH?Wa6gfhlMsy}NL3a^o@XeW zc@1D5fp9%eLAxZm!OSeP^w`*4TY1&{_(G7@AGOu=s7vDFKFgf5 zYR+PMI@<~+uQiNXlj*x3Grf!Kw$Md%9hUWHS0^c31m|(s!Q|mQ0b$F<6tA~()Yb&Q z@};G4=G~$U`PGR@h02)|SxM7rqJ8vWHn_LIGCR$^p*UURGD)R5!;MUEl=v{n&U$OnE)X;}ua zy0j@$%6DqkBOHuCK3A$k9UF@cH$q5H!g|s^}1!rU{J+=nStOjZ7Jgk1E;L zLvypXOJgLZ-8_$p88cYgXL)RLf3gnELSJnnZl9>iLUWxuUz!=G*v9rGDJg2`vhAd> zC>WocPL210>SJYvyq9&rI?Y4O?>asCqdl)LEx7GcXs-5G3T@F;c zq`r>6^Ey>tpUX~PQlDoWYOiceKkLp(4yEM;FLVoQRAapCKCrU1ryMA4l>RWT?}E&@ z7U>}0vr*i$7wO+wET!Y+98id%k9WQt}o=6k;MTVlf}t)6P)}Ch$ou^Ml<8 z4_gISBQNTwJV?7bD^RQP^9X^Hn=Gd$r-yZ@%Q&8VQKomgygUZ0bMV9xDfl*azq0O5 zs7NxU(XXx5E=lL5}ZE04NIiV~q&(Zr#)5@L^U zur{w*o{c{iZkD8^kj*jUdx@h84|Ct8rk|H8uy$5jyyZc!r1}YzjA5x;59szES<_Rb z@~>wp_nyR^_(H!~@;S6ODkz$6>6BT^>$6B@ym9K|bJVKVCW_02fu#~bM1{%7h^Wj3 ziMk+5kfBVAQf@(pvT@>T7w*O%`&HWz+OiG$Ve{7ZU<17_3r}4*Dzskg!F^>^&=h*q z4yrcM$g{k^>1jpVnYR^E`Qb98E?^7~+-Z|!>dC2p5)et9tb3mS^k)LuI7?D?`!Guq zgPuN8au_5>L;LI{ue9T^h#6oDYhEVzCT(n+44>ynQ%@_;nSVRAc-bR4KfiKho1Ut< zm+6h9Y+oM2g~%FTWuNZHxdrt!iCns#GN&q+q-jn8bP6@m2=zSaue0qbGCu5IOKF>* zmqCi;dtUw;9!YX=pPXOf*y#NvY@{DOY9$d@jY|)^(Gvya#E*MPs2E;3Up6N3bQ9yu z`mXGpMZ|}gvA%COO^!>VPOv z+Y^sld)YPUyP72?Zp8jR1Lh@8bBQA{vwCX7;i0!pUq5bh>NGozndMq?iuKuNt&0Zi zeZ7|Jv9e9bfPWPTuL4`umo56-OzE{yZWA1xP`8Vw<2XHUWp2-1d=_k9&tC4Tq@zn`%*z+5 z3dx?91aX#aFX!2fx{owPT^4OBb56CK^D+N)6`B<4QIK{~dwb{dfr0F-V!Q^bcpBsv zt!hFHp7s|;GEaMY3mkvM!eE6}6OE|aO%R8;Kx9?h+lE$OtTK^u7 z%0yawRu*1Pf#Qjt9<*ld{B=@E@v0W0&Sw@VVi(e`5K{OMrjQ z6CHrOn+{d?#lv4-IHppMN19TP_;i|_`q*^dAz?{T_8a zC0jI0Q{%B8^FA%8dN44vX4(4n?YW$mhOiTh$V~|aIFM|!_R5>zySFt|S^Bn_iWf-~ zMfQ;W9w!j>X%7E-sX`C?{nJAX)si0PEiVmi`y#)SAHK_P6{a21(&-CWxR2d9K|aor zs=L(lbR9g?`|i*4JSskni4M0b>QQ~0FV|Fp*nx*od5}YC^qKqctS+bi_4FBjCaa5a zRV%r1{Ch0wOXqng7S9uxCaMLf5@ zgReTC`|Bmz9;XB06bzp@vW3G*ZObY6?Lj|96?4@?&P;r+|(-nI=+9LFSpZ&pxCo} zJrjRPyqjsfYtaRI=T^>B_mtPe2F=%Qy%BNIm^1#RZd55KoUi1UY`l;;@8R@A0OdNK za_^HCoTBf{>`w9b83^;NBf2v=n- ztH|3#=sjG|mw5bMm@6@Uh`!|%efI&wQ~W)Hc|@Xa4~ZI(=x8I6@>#PUOuppdjgiSB zQ$GdXCnf2pAAU7;KLo0F3e!)5ncmwvd_AS$NAgp)eV!u4V~1(D#e=55D9jrvo6?4E zQ0E;B0R`fDDt4Uxv$*RF6VGbudWz4F894=kDIUCY>mocA?N=PM*rc}CgvhH!&uREV zprcW-+|6@A8g85}?9U8Y4VU$)&aBQD2MrxxeOoV|P8EGw8(VuiYG`!#G}?)rf4FO? z)09fj@vQ#r#XB{a)qAN9?`k)yPp1UMi1^St`&;FkgV@U6gD!~zU*05>Z2?7X7f<71 ze;x_fw8Mh>OBq)wI`&5ly_mTDdkMuvv#_VW?0R!w9A_t@ZuI`hb6R%$vg;J}qoNg1 zORl7BV=d2znrp*r<=K|$9#ir83*SQK4q`;|x8uRO4S2pIiq zY?(4}ek>hNSK*NrCWnPhKzwFeSwyUCC>@)4Y}(q02n?a6F;QueVn^CwU{re>V{haE z+1*$7Ujxhg;MD_jGZCAyQ~Q{j&JN9HYIc(2b_I zy86AD@>lHGpWo?^?chHPOw!-FdM&MQGd-`r@+;|O{gq$oE?ojV|H`kFXzQ>1O2jqs9s~F-QXc_X z{|hO!5N5i*nD1x2>*_bo(Os*2-zpRObgX@Qql09o-^iEPXR?p| z`sY9XAOEQ8=Z#q&dM97b{ZZwdJTh-x^Dj^|Uo7&@A5ZT1ku?Iw_*-0Y${J;Q8#>0n zF*`Ive$3&&{-6KykN@d^`=>wt<3InW|N86i#z=nsmw)}Y|3+7tuG4ls#b68Y^eE_Z zgUC9FBC`US^3@%CUiv=$E6FlL0t=ZN+vAj#=6+d{vXk)IFGlg{wja4f;WMcuuBbF0 z>w<$h+Ub8Q{-I>up#`A3;Ail?+>#j9&Yls1kT$@LysAKehd>`FO zmHJV5#|2vHF|T>db?Q^(OB}R7Q$_o{(}gG$ug|+QkcFkuBM@|d@R(H!6ekoa9Opc6 zjjkCdZ!`)6^L%f7WMdz#(SP~3fBoP8?H~R#T`&9VKm5o4_=_fsT>jnHFaPU{47DrS zQInLM-pSM>O8$OjPjlJ}Om~&?hn4=n{!jnmfBBz(O=1Ug+jLH|eY|E*v=auF9qD!K zBbeN05v_f7F;Rm*)bH}Bd+f^I74pa)C6P^|kL+n6t<7E}d)~FDc^Asa9)9A{nYyy4 z-E(>d;F5hT_{`4kZko!O)0sI3sr!{#T4djR9c7cTXDgJQ*0nLhltwCV-ucZ^5n~J5HVI_n*Pj9 z6oYu_J9BPjroJ;%`8sO1-K&)r`0QQt4&?2Fe1oA3`W=qkD;ZAS*i;P+oyC+4>#@yp zJw#Oxy28(dc-VPQ)clxPO01|!I&wzIHQ}C^j&m|S&~bK<@5MLs#Yv-s4zxi1is-lZ^YQ`nH!=36q!}Ng* zm*EWw!(EDmYmpc(MQXbMn!D8HQO5*PJ)U7tlBg|2T+`FB%P&xZk`ZbW+k{QjaO-is z%rOZaxCjYExX6%#&faoF!40>%*^j+41Q4EE=4N(L6Wsj0%s#r4R&o;O{{EfpgxG*> zDaAFJhcH}>l;n%-kl)Qd@!%wiVdek+Qw4-M$M^OVK3t)w!IN?%lE}TAlbpSR@(Xo? z?Q`^Yw-MhLKr#SEw`kVQ)2lqc;*T%35e9vSd;+-~Zw1sf<^(?eKoAWFbb`Ej&dMer z(%Rt42oxPC6FQek07Oe2@pwG#yMC0KEfMHwX#!k_1S|+=E(qZ99Jrx({EDc3hFqGd zgg2-*0(@6A3658;!X;;z_plel^t=c4F*mHR49gIx4{>%cAdtIPN1%8vQgB&!F)T)) z45qKSN$8t_OxhA{dajqHs4*f4d%85xiu3LQA;C)^$3V*}a};6PiAwZdZdFkvH-wPo zW;OBxWHNAo##uJIG~x=ZD!PbEkY(&LU1ha?ZtUg?E)trT#!pPItNHj7kL4=ux+q~u zcL8PMemOccHK?A~BiH|EsbuObWB&nh0OyHxq7jX7jWzsFu$tRur1;VTc@a5+nkd2p0m4)B_qLDl_FNk{#ztinClXj<1viKWC) z&8&?aYg)&!J(zW!n8DTBU^qX)rFQgBMp$~Mr8@^ODp|AF${7DKg4CK$&^dc#)neF~ zmr>TDP4D$l*cW%wn6;>mtU`lwyMAWLYi?6Y!JDr4zVRZb9?krvx+WMd9TRw&zLbwm zO^>!tr0PAz6D3oTdFhQ-_FS4&1TB)QrJp!SrniMuV>@v1H&_rOfz`>P`98I0nWC@I=NGK6N|! zN6`})wbPYo;8}BQpUT!x!1STR(SI0f=%0Y?6Yw>^CvJr`zsVCpGq@q-9*)L;YSv4$ z#ieSgRr2MDlop&nU_}o~3;Q632IIRjnBd1^c8hhfxBE)OUOoYpjJi=bAT&ZECmlIy zEFaumE3dK~jfw9YrU+deF}8QJvAov#XtZSIs4)Y|A9H{3j&n#+NI(dKcv^-Xb9gay zQ(iV|POY19C7~cO*KR0Cl->5tEazP67^Biwhrp|6H2~5VgVr4ldJi%$l7frgR^6iX zyXHcYl$lhoL-Qfk5WVGEadVYHNvjoCqF)0TTDR+fFGZm#e$ak1dqWKDI=ekup<_=0 zX__7lBZ^!xq_OCTO4uA;7+4(xwc9!Lu5*=LDL`~;B3%vnxJL)}tf!N%DSY%$qD4bC zOvv7B9niDTbstbCj>%{ufCaK5kVzu8L$CB7sC(!tJ2Iy`piQ>+&}Hp1h}0cx?XH7m zR;jwQ+JJZ$rSruRrkU9zRYfpuEK#OBG`?4++9gw}18UJN)UMmD!d`?YHlA}(%TusF z1Q{PxdPdXh_u}Q&nx*<9!&8DgcS7i!DGUtD0FQ$RYJZ5yxBKnY(YPNw;KsFy))*#0G#0YX!5uk@kH((8D zPNR~Qrw#ngh<1ebK^pTRLiQB4JGSapFPQ28c37T95=1lnZC)hmc?}y=(y^5r1^Xh%9tCS4fFKW% zW>A{hoKXUb^6!BWWZnYhmBSBJ)izL+#nqw0At5V>iEJ#=5E8(C^nDu~EVBC=H|0x! z)%c!2F*C1YY(r^H0NINQDU00LCR%$W@4v?jIqVtf+jl3}GU*#unJ(R8i_D`!1=(~F@f?4C*L>?e}91x~P zmMU5wSsQH=Dh*EK1IVxtp$*BfSJ*__yP;T_icbS)70%TL+YlwMde*-zCa7(1aL<6K z@1PZGze^tMsjLV+nB!T!Soa2T@YdMvw{>sem;*%5Z%HE|v+{gtgw+yjn)F`fkjZ+@ zI*SZKW_Pfgi<<8+bM+!dA)&U2T>zWQN8tsZru?(?Hq(_5tL2-jYzzUfAOsW%FpYJI zKmsfAt#Q~6isbV>PZR9oh~V=*io*F(Lu7H5A$lERq{%mnC$^CxVOG2FVu~Ehv<4{o z&9Lcd{)4?!!Kbi=#9&9*heh2|>TO%7!005gVLxYy{kwYb?u>u(o06Fd& zG7B<}j|`&NlvtsR?S1=d=ZOJGZ`sI4L0&|NW1hU*zo(rRi6MwTBEG}RtN=qKFqfbtm zcSXD>3-^ktS%KTN$DxI5xr3eK+6QYr`=c$Y8IiO-Xkq^}Gpg6tu^fQ$Wfczkz*%&} zDg*QbC5uJcTp#DSL|RM+;c0nHQO>9jVk}ugmc@D}0ze!Bi0R-q4OqIF#aMDveDgMz zTom7|29ujso0W0i#6(wLYUz2BEUeS#q0L7m891HhvBH)@J3Sa&>I9g>lCQME=_HU- zZy4n7)Le6p9}h}K6?&SH20QF%5<~*X#K6oD!~g*;dM?+e#z@=f)jeUr3^ladiQFWj z&$$3;AB>X0?c7Ca>tZD&KpCAJUh?XgO)O`ZDaO(gTwjrXO74j6JMAIagu%&3R?`KX zpi#kE;y_kmGx;h%A#fJ{4`(;W@@(0H^V3v&u&gX{0iA#aFhrp)n~E(#4_d))Eyp2UC|drYJy^WC9A5H z=G1Td;?eEyQ61Nihi~L>*g+cvsUG>0bCjjCj_!QuupGpKF&kolFE>C?zp-Fc{R@O$ z6J0x;z&XA9o15W~q_IQU5Jpf<>5^PM^xh2=G6s^PO?LS*Ft<0}Q@>Ev$ROTT*6qbQ4H9ryA+2|EE14>?!dq3Mwgf=JS3#6cYe!l^DVM}LE=5*%~v z6f$ei7A`?H-_{d82OE7vl%b+@mq7g*k>F3erOm5>S4TWn@`sE3JJjnP=~X(+yrP%B zuW)QJAt>kI2`H z)f3C;$PZ#!74*aLbpCYeuz58i?;FPvdh5?UgD*}8Sq<~~4wrb1TR_M++M6giX92>k z2nR(NC&LMfm)e|RWt{H&B^`trEx?SeNB|OSpu~iLFsBJf3Aavx6+VOXbFo)4EmTH* z3jH#P-cppAKK-a007Q~JP*szJWC(J2AS-MG^w`}n#YR+e@(lBcAU(sTSM&#HK!QAM zr&f#yDr4fMW^%b9FUOaH0u;dk8YUWAKyo10c~CotXXFmnj{^!}k3b0G1lXvol^)>` zT)U0gp#mUacP8VVCjyz7q>iX`;yaN8L}ha0`2}|Hj5skE!vQCt-8yNFP4~EZmK)Ik zN)2ctW~@U6`7=kx*n#Da(P9P5+GKaxw;cZsW)wx^a(cKdJ&fy}0NkZXeaw(qhPK%g zis@xQgw%~gKF;7XcEWB(;^X9M#X9nPOdP?V=!7|2pT-G|o?M`Y?rI$pSB6l2YBuhO z49q23SX%{s^knKz&ienY44$l6#aZ{iSvegR8DL$7bNC6_c;8J}PZ1P#t7s)tvUR&- zSWKCeUT6K`X3aw>J_k(xZnM9pN95}^L9v@9AV0U&-Dc~It3SP=IV2ahS#gc$SjbIm zHEQO7T*MeghfZX(u` zj$_ufY7VCt=k2Pf!PySwtVa`rQvyp7 zSKTBh_8;TTCHpVh$&Rv!L#7}fac300SrYH;pqm#Fh9KKFQwWSLTb~nZ!K>5ccbTo* zk?bL!YGW^%NI=nOW}&?7qn3VrHU^c21LSd=jI+=p7ZISPPy{-C_jYxitWfD-{alh& za0sdt!zF|9&VMYr`W)jB<<9l-LT$b)0_Gbj@&NjQ#W~-2= z&02c)KDS;rYp3PPM`6~-W-fm>%*G4NDwZaZ&1}|7=X+=1wNf)Wl(9{&Y4(PK`nu=X zIY54Wm2D6L7;G(yHvp(4g`BHV-9l4_aKLcm3L{NdZ%Gn)!YqvU#gaU7gIRbHHZ!U6RteZnn2q8lMgQC(o8SUCAu3kpE=arx)7)T_{w+`l~G7>I}ms zf0VVn$pVv#FXTgQd5#yJ(7m_g6oyc`6+pa7WaMs_jf;pZtK9)n`!q@#pbRx-I%TmN zJIbPwx4bF6#XK;_!YaP)(g>g6Npi*`WX=M6k6Le#wcN$-ypWYnlv*wJhoJHc=&kPe z6hgzX{pSW%Abc3ZtPi!P#gjO2b|@zg2RY9~H*C8Xzgx{%Q!?y}RWxyC>_ zwn1;Y#9%2qRtfL2>M@=O({<`=uvpl29Les+7DbUJNBM(rH`S6bemAEqqgfaCDvARW zu4AZG#oa+c-ZD=W(v(iAgu=2!d9ur0g>VcRfIPxZHdN!2w4a6dPCdC$mEHKAbLr=H ztAg26eLCm2Iu-nW@_7I_w;8Ck2%5BbqI^+xtXR#psQHHk!efX!AyNjo zRrC|zOU^g3p(vpbr33USLa!})6tR#@JJ-3CMWo_V+SzD)nAXl(eScxdNo%rbqr4`k z+m5K4Mi$AUY?9tq^XcV!1?lE`V@6iVCY_U=RXXX;s)$+Euq4CcvWPCE6dfXGR^_fY zkLnfCW?HihR1p9g+j7wzU`=i0#<}lQ>oZWqD6Quod-e)!Ou!2&u3}jL`ob^P_JNuFPRhLaFv>0Pc+6rDv-V_uQ zpBZ&(o5W|cyVEvV+0LlJX;9s>Rv|dW+8*dOrB$atU8a+mp(X)5uTffxdN(MYL{Ex_ zHYU}R$X0lcPtFMpawXA_YB`nglx}#JQn{(gDaEZVoS<;)glaVwBn&kAQ?yNLR05^y z9h9yej92YHsT~P`+8tEYLVMnZv~3u6DTBNA-rpNjGLekLnS@ZpZbA97%CWcGOvP=2 zu^^!n$(YWfN)oo18l*8Vi&brar?oDMG~vfmoYl%E9GbHMsp-IFYoChSUQrAijC$@y zf<$oU7NXmsS=8-8LWDc-A6mm`=T?kSZI$N0D~h(j(!+Tpl4=V`de@U~f8tqG1v*ZYr%8Yx@^!}Fv=+Gq{qWi3^mIvQ_siqrV1{^epZZLu zijqy{dO-U0Su7Sn&OsnQUmFebPftHP0B4dU!3?0x&L&2P|;Gy!%W|!(>yn^U$AKVf}B`ruht;TQ` z$UcjkY5oQw!z)-Ielh}et7?ByR0Ax+k6hp)zT=UQaSa2?W0KQpc)~?;x&XqhU-`Bu zq{8CnNgRc(L|uCmxPTic;SDxUViIhEpDcsD3gxyf_*r*YSq>LKx)6oSz$-tx7r{Fd zDcCR^@+`8+lr-!3jm)DbgE1VDRPwY%V2T-xm+4^4Xj@JSm@M787n$S)f?R);O6ENG zR*Gl#0&*7+zYIAc06!DJPkM557I;?_r2xQAP!C7ZfO--mXFM76OlB$VbmArmyk7#NYC>&@1b6sBGl+yQ50WdaC?uHMRh*nrCFFVc3k{27bL^nVZw=HwBX&^w z=wn6ISG+L38nJ7p({_nAId?cJ5_&U8j<`{Z_z4B1C)^nh`9WyH;sdM zL^j>X%PX1oO9$!TDVPbNC?e1!)>JYq5aI6N0HXl%NAph5N_Tvd4{Cx?1|>T39Le;uc8DzNZ7owxEfw~C zy^CX#?K_8@>4i^iBE^+c@XOtU)a_AB&L80KFM|r*u1o9WSQX~qar)PwjRtx{lV;?VyrES0x6+12LoER(uS0sgqJia`Ytk(e5+K6D^fGN2XADy9w0CTF;K_AZ7g-<;;187np) zU!3npfMBr&E_A7Eb0}JD<{+m$A3(eqfk$BvplubdE%7y7C}NB=q{J0C6f(y3le0`l zF=Jeu+-y9G8e?dzu7T2Sl}>D>Hl@pi`b=+(1cxHWxb_fxGQ~M|jKHX8Y_8|J3*TA@ z!pCO6T>)jIl;t}I&75)s8D*$+`W;XV8CPy6gk#9K>hX#1c}7uWvuCZ?<>ojt0+$}Z zplg)Ha_q7JBFPq_0aRjRJ%MA45kMCn_n0eR7>DA?csWv;Q7RywY)(t?6=qoI@SQ7P z6y;Dv+3de-VIE$Bn6im6nN}{Npfa9*SG|SCRev5La5R32GpuaE?fgVp+0-iEV}(M? zIKzbw1l{Pl074REr#F{8sz1n1?Jn1fGOX^W%GYp#5VJXT4Fn-^j2R@_$-SH)NDA0@-rJyBsGUm_`R0)ia%`U0)9}5dEt(Ou& ztl64R1kHEa<%RxSSq8_OO#-wW#z4H8_B=QgZ^l$)XeEFpaKzc{y9@Nt8px3ZnVV%< zUZ`9{bcW;3)`Hh=qtX-)V*+J$0|Q{yDer+ir0l%Zs>~3~dlei9$iT5@b9=SH=uzED zdz_0XdQ6Ay=*n#{sa1wvdPF3Y1JD);Z4J->4ndm?fbN9LCluouK=6`D?D8kiddHy#u6hq z#`VHfNT0QxOS)OhPqr~@OUkGQ&tq3~0IZzD)+RG7V1q@O5#Lj36;Oy+v|Ay93RLEt zk>enCZDJyrP+>&5+L%&dLNx?{f1xOkjHuPDtoY3A}TL+S-Q{p=&&H?i3@}?&28VrKm z=3>;JY=hjk+-JfPbKcS!(4;ubZJ}re)16d7^q6IFq?>S#3br1{x~+X{w}?}Tzh*FQ zAuwY85Udd6gaQKs>6EyJ9}o=p)L`srMN9Ywf+5Gli3nk#LS0)35J!S` zYezSklue4u7ENkW^d2P1E>?{%&f-91-K^bc z9yRRwNY%sw*DaZp`MxFyuA63=b3TgT9;~vmXH)>S3ssI%4+Cf5};lYb^%1hqNby16g(HWh&QH{g2%h@o!DNa~~&Z03hPdrydM5lD1fF6ZJ3iUjP zA{*!|C7Q5FuOB+E>Mw?B?+*t!mE2;bhpg;sssz@pERY`tTr**MPE(wX39O%4VpbNA zqBEwMtZH*RW+8YClf&;nM zGoCGP`Ky6qTZnHa%ph+Iu0inB@797Oe6!n981s`T)2Y+VJQ;)zE(y_gq^W=y3Q#PQ znjKM3)nHf#VwtLiFotNCiem_8yTxA5mqe5bu~rkAn3OgIvq@6ciM1Wdn?Y9#ELVg~ zqJ{eEEKqb%I)^afe|JnysoX6XNzH!2*)3g7p(Hedufa zV5doH2ZX@(30TGMWg-)0T1y4R+=p@aPYo(fvPZ>9Xi~MqmvbvnW!y(NcHZK)o*|$p zU&-1mqKa0iq@GY*cy_F6*d<$z4M&{Ype9?j>}X%C(IS>@=Lx}D8sj!F0gfN_=(hA^ zW%ek_Q?N&Laof*>v8}4}Lz3qLxU*#))br0I7!vFpz5Pe72V)q6jVY+qv+K@ z?YkkyQ4I+#Ru86ltJOZCLlh2CoJv;;0a!ZJ=^!x^ur8ua)ofMa`g3IOCwPsYCoRke1nb}#8wR~w2eI&&9` z>|7T!AVC*rPoC7UbRJttjKm~RI=d@5U_UsJtTXaEnG=VWIOJ^UHE8m5G4s?`lFue@L0?B4~XC!9UNWbnQOr<1q&cLM3S_84$A+9e(+Ag9&AyZh(Q)cN^5> zFG!9afSBpgL_+xGg$-(Pcv!B0>FMC2e@@OIGxn(V*rVEuNA;O}aXt3a^%%^{d``hQ z4X=mPZ1#i(x;%zK?Fnu+shn_r`S`H^HXe{&)h@*Sgt>N;CwROWBG|w z;Ey@oW9ReC_2wVTl@H1Yin~=j#1?K2vg`Fv54>xG4lah9gDgLAUvD0=^KDO5R;JzO zdUKKGC)@cb#bXy)&z=q7h;;hM(i&Xm$aMKAmK#^4$H+OLo3U znyj5+xykaPRaARfU|&*c7eCqgT6{)6Xwy%YG1fWYiZcCV=c<-oQHF&T-!;%%))~6V z&H$_Gfb-$>lATZT@}4+{Ae)kyKX7zi)t8bpco#zU>kwCOUb1s(8#-;BUb2igm>vY# z@S}M^P=aju!8twj7Y+42y&n6?QWddwu)smEFVW#>Mt-uqtDFaGmOJnG ztN=L5GTM9K6BdM)l;}P1N_VT}7SN))HRgFpVW6@jdQUe$+4)8^D!jT)&jA3xN+D9; z9eG^}k%A=5_xLBc$8?nCC(`-(Wb7y_o zEKN-7fX+-eSwEj=xVXvAJq+Aprl0I2ffqknKTph{zs2;E<(HAY1Kx5~kh~P&)K-=L zgwahj>q4Nv2mRq!qmirZtfA9Yfo5W>jK0;3-1(}C6=Pisa$qjPnR`Kg#zmHvE`Q6w zQI?rDIfQ29C(APrBv3{~%*A(3LAG;!)zj?#*v?b&)A9dg{mV*2@W6{mz+Ql7q z){iDmc+LRd{9&0!rHex>^U?(9?lh%LAq=5mkge2WE$BT6*(kN&Tw<5-n>+G)6=sP_ zD>DkUb+FC7-y)nT>plnpUZmni@1k3%2)#LUFk@~@Hzj05yoBKlNu}SMVwZSy^NRfd zUX_>Z0ZVWq_U1_Pe!yO_a|_0sTkPE788FM~7t1fV$D3p9EbV}cv=gfCd%1bW^4_*$ zjZ>K!5hf?(HYGISr9B0c3>{-{xZ;G^)|Bn#qRTOsIV?C#S#Gf`%6H@ptfKZ1iJ@Pt zig^M0#WJ|Kh^m&AY_R1d9ZM8Ggxn63(zH%D)@SGz%VJeQzO6~Sht@hpW#H-J7|U4J zL3pIwlsr}BpDolF5la{2TRF+l0d~oB7Y|s!-s8a@uq;0ppMbBXNcP_~cKce264Tg9 z1A9BDX2-YnXXyTVlU1E421C_PHwRc&Is#}~Xl-*h|JNygN9cemJfM?|4O57!C9u>MK}1a9y!kj8MU|mBwckp z2UerYVvJH2MZ1oO*(P*<<(g{*F{(|qIJ^OxQ_0hj#L$rU>s(BWWp#_*&AcK~w@jP5 z)pn{7ylPLdruQq8lUgh}t3r!%t==K`*7%sQjC@~t8C}HAuM_)-{(I#7x~&BsI=|9v zW%Euz5!8b<7eOu`UAwry(twLKAQh1TTIk*EX5~Afo(ms7+A0{IY zePTrn_Q)re@jRr9Q!FE+m8!BzP0%a$CTM06reJqetHn^YHJ%fw>TarhH*rQ@t~Z{a z^~eP%NLdeD21Cb=u6N#-mD+Q_OSbP@%w{pR1U-@f#*ZwzFaT&km%kFuvYg^TD&keB z%r?9@>j{rfmTzV~-x;*c)-2qKqIaxM>lDdAscnC5(Y&xB>S?^Vv|<9E9!jyDg0z)h za7>lNhWd>fZQCZ5Ek{d2Xwl3kH4~y9tBH?@%f+{KaU=^=-L5xp+*ga9epu&4wf)th zJX$wYJ$$f13`rGAw%DHNn{v4$Xv%sb156r8l*z${v4iVvf>ZfmjYuL8eA7cc(8cxE z-Q+)QW=y3dGc}byvgtm{+x^3;*zO^B0xW$OzK8?nIY*a{A zX*SS4ZIT7N&GiThR2%g)225d8(-;Jb2$QWnBC0%vO6p<5g(XK7s$wxOg^1+T$1pE0 zuPj`qi_7agzCqWZ#QeYsJ0v}YjoIn|Q4}Ut=TBgIsMO|d5D^C`U^-x*SC*&(0LG_W zl!43ZRg+Rji4re9uPjJ3dr%d{PW(Ogvz-VvAM}R8`J!^OI+i(Fr&ZAoIzJhkpvNl> zxmPQ5g{~WH%;m-Bl{c>4e(Gf46Fu2x1O7sDuL%vv=XDZD>k%p#ZS0Og#q~kyz1_V* zkalq0GZZE$b3(^Ip~O4IR;LCC6nXobiOuPPnja=u;Iy3j9VvsJI1QP;VF%Xf=TY0m zgY{+%e>i!NFSa=j7nC0QClDq@S{#aRLoTdr$2*Uj)P?n}|E=VUzZOW|g8T3IeDyfp z3XDS*16+j#*nJbEvwPyMmW6%&?26^iNIN`}`6lWdq zW_QmHG2>!TbM|>^_P!%%jkeAx1!=bI6td^tY&3*3EMhv|tuA>p5A1oz&>>!QZ{AsF zrpTyKs=3FnO3f6ja~7g;jHa|lp|S<|dH+sgxsli`ewJJ^dUonSW|YAS&i9$8vmJNb(d{0#cv|b2D?P+`A}qVwF}~-@_xe~zJMJ9a%xY#O3W|gj z$g-DXv95L#6@Gx5ofPHUYZ`E~;|!Ng9`-)w`<)Di21V^W@10%`x2|y2amY%~kN4U*;^pt&S-T-$MwhUXw9|wajqqQ#V;Y1qb#5JnANf&|O(20f)M| zo1Fu@o!#l?LN$w>>`gaEoyQ_tZ@Nju3Z4J;VBP5^`;FD2ZdtufbZehM4`mM3vRE&S z!P9NW4cs`%9ggQC&C`pHd2=xgpFQY!8Uo}-KIv8~uG+y0xAg|Em!c$Qhe>*+s)&JO0w)@J>?(|_ad@> z_Xeneilt-Wz>X6}lsnxDZ;8d`7cm}>+D;ESo{S&h8;1ezu`pI{cPf*HUWVXq(99{t zJ>RCCK5-M|jiA5|aYBsGfFKF~TOud#_yLY^t4<(&I1yz5QE@^hzxgV;;H)Fu zLwYb+#;$M>8Jtqd@sa$!y?vfVjbL=snY@-IL`iUYp7OJ@2Xu9u-V%k zC+i>==5t}YjHKFK$%oJNZ(`<676c<#%p_&;^7 za|xUk8mSDbNZ6T#F>ec2`@N1*`6JQZcaY~?V}pxZ8kvSLxH z=W#|6=5k0IML5II{sEE|CGS>LD{63=#$i+~QZ zE7~@$n3_|2ilN75&Ptm~KQT3LEi+}qIC64#i7syu1~n?mAO?!K(HmX-Yo=Kw8Ngq& zS{qO2IMEe7KS^Yq$?m)+3zZGgniaCL$IGe)S+<-`xhn^Mk$bYQ*FC&VmfqljD0-)t zo*Ekyz2|dI+2#X7YVXDPk10_w1-+Vbswt=v){pfayAai+;!QM0i?kKPM7G+qsF(-O z=EN+R=}od@KPM%5H1gE!Q+03&Qr%}NXE%g&Wscc0eq_RKjf%sLWW0q*g$c%uZ1K!~ z+G~rb+jRI@VuOCF!wrOl7C5vx;dw^H>6NVmSloBbiF8OuW274n?8Vm!h`ifz^%40hXJ z8&ZlBk};Phr8%)%SiUW7?Cmm1v6m}E2~IZsh}(d3784r`=73S`;dI#8jMvv9N9R2W zvFMx}mYpbKM5EVbOlxW)u{<+o9eFVOE{YO?PVu5{hkD-06Zh$#>qd5qg5BR7{h#dZ zh7YOZU~e&o4;qG^!G9lk78PMawx*9LR?d*Up`cNeXFphZGxB8%{dSf29aOsQZ+L_ zVxK04beNx8yP9-GJ>f@gjB|oY#5}L2yM9~C%x2rR^!Fi%xOB~R{yC0{M~j1L8Xuqu z;M)TmNH^E`t@M~L>Ga4vYMQ;iz7qhD*H^Xabk;Vu5CWXfdarc4L(m5V2*>SkE8W}{ zDCreW2Hy*ah5+vc6cAwms*E4DMy-2?hXG!L7eKz0Xy+AeE1fO^EGRvj$Ho_gTxA{${YV5ijfX=8Fiz{(J~P9(@g^dxW*~ia(p5ef?}tt9@3PlfAumkpZPO z>+Cim)x*i-C&NKE~JJBUj2M!y8o0~{}V2%=;Mlli7U)E#@5=S-(0lv3w8%U~0@ zgLKR&gYx!3@6tg!{knm80nz-?VGkY^9h=~u)A58h1m zjsUx+j0MXi+;|QUv02M~bn_Sza;glR6#S(g=g`m5TC*U?C-i~4kEZKTikpuaJ z04MJ(poArsJTI`wKxSfCz|stCYzi%?F>=DZfl||c053p1WOCHQkR`KZD9)s7A*s%K zdg)Xgg_a@BlcYeO7?a#hoFqB@FN$%_({R*j};;22=vWFe%->UP7rQqtrY}Of!HPa0zOUsGcc%gla2d z2?O+gJcmEE-U4xA zbUtU>smU3Z@Zk9xCpKr>E1=A*^o+9ub!kFs#a&t!XFCX1OHfytDucFxTDSoG#wlt7 zMQk&`H8gA{T_$zu7`FawO@o{~^{r&n9bO!``(5E*^O=YQEEmVYSW+ z-7qloWdIm9Upz%1zFEW9f`L4~OTl>rk0*x3kBnEI2{>INi-G)lFThZKDhyZ1IB@|@ zZyY?lY4pQ8WwC}Euw0Rs#qi5yJC7+COX#pVmby`qc|D1Jjb(tAy2X|KxL=HRwr1INTsOKzP^IN$97W-xLGF4b?@_dM{q7uYs@s{Uz(I7oz9t>B4 zW$+8c->`w@aNH2TeCN?nr{U0}r4?5ZREoSPqD@X$f|7iK%pfsp*{UL|i?H!HAJ&8* z)(Pwt83QzrU;`>Ok6TX&T@b@y@_=^vXUHYNToSV~lp5QR274Qn##|J$@}xn=>;)E) z&6Ip8P;dceXi`H>bU*FToz6J6=%o_6k(VOO>2iu@?v0swY9xOwmzudaMtU0Toe*?; z%mR-t4r2XN2JbgF$jmIGaa2Q*k-Aid=xj5D*Ib>EmL&X5xQU=A@o&{#^Pv&4wQd4S z3}7AUrWsl2YMTvwi4;#<&9p?R4_agHn~_Bfqlz=Ei)GN6p%*Z7bmz<(*^s9rTE2O3 zIOo5W4iF_&UBJ^NoNbJ&gDIdf)~K})sRy73iORA#J)!1{Wbipvm_e5>*Ft#QOL5Iy zRkQMhKua0Y$ZIaE(TU)`8bk_NFztI_JuMliChbKx_oM8M?Hj`MdF(J7C_TcRAEHcY zpm0gFZ9|kPyV8%K?a7}vd0iW&l5J}+HqJ$PJ+Ol}wh!F~0cfYTz{b>0+hFjqABO4A~^M#m}LDHUxg zCsRcr*!*XLNEhNr10FUY<4e_5uohm)W^@pobxRwn>Xj_sxu5S|k)e(G2RKEpuFpxZ ztK?f%+DVHrFu0f-a+G)tHK`$V@JfM`N7TtH367Px6Ud;8F=%MQJ>4`qcCaA6xyOW_ z7Z^R&<9BYC^mdOi9_oPt6_dBVRUcE1|#~O10=oP1s%KZ#87JS;}7g0Utcb zT*M;;3zb&J_Z^vvgB(qzpL0#KB1Ma5Al!hat6V@A`6xP7(CZwu(et{UwE1uyjNC(p z?o(Eo5N}@P!>LBJ?b7anDeAY>Tfu&cI;TAV9F2PbBy-u~b#p{w`9tWmb(GIik>B!v zZg5$Z!CMC6m9>Y2w~#V+PY-AUyjHFr1`7a!seiEa$t0TXh3@4cG{H68EPb#^#(uk# z!xrApiS~P#h+-)tA3dWJkf>)d7; zxx&sl#RJ5Fr|Zj>#w_DL6W>V(HiPHlB@iPZSQck{*&jkubY4T@vhXWLz-F@3x{8NIQ@af=!Da-aCxET-Ov!sA9SAjXDGy-O}oL~)xu_Es_C zZ`wCz5ZB`SUDS4}57i-(TSV~jrLKYwD1l@)c23k*g96Dmqy20aS!rZy4lIP*_Jzib z#`eL*7pt_0pxREQXXO!*b?zZD0$l9DQ+Hje8p)<;5TWl8W~2a2uRLCdSiyE`x=uqTa@2%b%es}aNdQeJ>edk$ z;m&EUTb@oCfR*~?ilAZdI|n&MRgx4U(Im4_HNH5B9l)jw2u7v*r14z_fc3(mJ($p>zC5fgXoGpD?dxMT!n{JUk9gV61MSnXu(!-Nn4*U$fQa) zOQ|+b_F>b2%AteHJF{WagMFL>-uB)Wfh{7bf}a4or-ynUfxwmY{L%8_q*^^6lAlwe zIz1D(6YaLt1eQ0I5As1u@q=|brEu?X@^{H1si2h`Fn^}lK9#MXfaz0z<0m^<3jHIr zeT3F6TiS)+iUXgnSh)KzB>%Bt@jX_8bZ~^Mu)~`$*u z;3n$UPv|&ndo{6|bllyw?Og>}Mx);c5)KY)o0?dGv#as2vJ`w^yu8X8)mo_yse$3K z2@Z_dK1V57qvq4&=)4)LKc@UFwGTs^6(vKv`u_wKD1bG4J0IB=x41DTy3ls&G5BKd zEkIsbVejJ%P$1MTt^*@YsP{Q44?O^lNVg-o*d(CT2Ic>j@P(~0S~-7vIU(TQiA=;# z#0~j@xE)yU!sATUd2oQUT}lR_an_WpVkh7Oj}v?P2YqH#ZfU6TEqk5_y>)DJP^!VS z7tgdV7l=%B8vHI2rwh*U>S->z>svGACB_FBT6?Unh`JQcyL%?qrwim&cO@by9!`o zy50oT4-R(;34+{Zo&0q!IG~L#bce;}BSsk(K|33E(Onncx!ZDaNKNt% zL3sBDRN;)LL7i9uHE3>UI1MaR+ZDoLHm#xhIJAPO2r9_2G!PAENID!=Ue9+R(6#e3 zyf=CX3w-A_1UY`VrUMWKw8N%2q8$&4ga7fUIJyBt%4KWKNcbU_AdtW8;u(p9*Pa4# z;E*`v_)?w6>|;jg0G#bTUnYU0>mh&}K@d7hghke4#32H_<8Ys7+_niqk;z~N=)4a$ z!!h`%z>J|pCH#Dy8}*CtBLH*BQA5dtA{?cUN@UE0XW%`oYG`B_Win3}1n^t(2>@=S zjIS4h0N&L-MF4RZ3e2HLND`WnM*#O`;1O&;UAr7HDbMjj4>^Ph?SH=g5#hvo4je*m zm`~>jxUz6-C0sZ=M^+(GCC@lPJH)h3Ng9CE>%Lp}rQ4p7k(6u-2vQ(^ryHdw<0ITd zGpq}h;B|y!p>QuWFEie&*t*ExMDNM~z-4ohsRu7`6q)@8l%j}0gktm72rx>rz~FZH z;ww;s1Ik)J;beR{fQjFl#+2C%JCTAv;=eUHm@)e zOUA>Gtuz$HRXDER1YtMRhgcpFad8_7MGujvgIEb59TuJ`leW|!|{r(qRmHd#+kU6 zsN=@FDd>hN^vD&6QIgT+R6+frJ_irrufba+3pzYPeLHy}eL%wCUxiJWoqujCTep|C zfluU$nWA~AU`wueDJEey7D?s=xnM856;}+3rrjkA{6Ger|5Q*qTcdplw?Al_1;#%? zjaOV#nJ%x^U%a*5FYAupWTxmvdlPlg6nE$?Q~*zRTJMzx(K|K?#V--e1C(FEM||Oh z2ROUphPYou5kQ9Y$^cr}w5mkFXjVWF@A^FUppttRNufR1t*d zC=R07T3>eGExsrz{RZB(V_N8#<-9O-gAlq>?7tPZ_Xa@In&DV16 zt!2dCT(P(8;_UqTOgXRWq?9Fl{prlpK`VAM&XJUDM{IVnACu}Ejx-+0nOH%ZEL}RT zHR2KfnA`!R@`z39dk9)V>^7C>=4=Yzocgs)tv?2pxNq<5#k2dUt%i2AOZKi>_PDR- zy@*r?UsZ8jI-BZBepfPZo|C;fVz5^NvwxaRW-m=P#DLHUlurGgm#n^ssny4@K~l8^PKQ@{!?Q6`&Tg(zlH zsdrNyKP#bEy;HYKPLByCLuIR0W0nclPR|&E+UJwsOw`U3!Ol0)z8mfHzPR&txj`z| ztuE&&F?mP)3MO2HlfP{U2&WrIhJc7*YMD;TtBcI8G-;8oU?y%sP`kovqv<@EEd zhDeb^i%pf7BH|YX#p|dJYb4us#9a8z<+m!CRYEt{r#Kbti?{mDiszUj=iyk89&)sO zfOD&+C(NrXYCKfk)(n3daNSuoCKNnW=JhBQ_;a?a*t}dpr&@mweJ_Mj#a5UK%cIr0 z5I(esp9H*xrh006nq9i9^vm&d3bEE7vu#UG4fW=gTFg!HNmY^#bc2}h=B2K4cRua6 z;;jlh6I9@brIR=GvtB?P7GY|%4L*>-pGy*Ty}T(|V|+~P>3CT`%(?{NE$FFH$NsVg z9IlG0w1j>-^Om|*z0*LG%Ckx6do^1;VXO=F?QT}_~%PVaZOUZ`msm`}V5_1ay6E(B+ve|q?;0I3v_@QB;Re*)sES@P;-Znl+Q?4eN;^HX6(Q2UcE?@J~(Mmt` zo({9~O4#hAHLlxKZROeClOE;vU~gornfxW!W zHjkE$VMmp-tdd+({cv8jPmxcB-am~F@9A2%1Kg^NH_5m>y(~b`U)hRWw`YwyMtcp} zJ}d?&XGPDlL1)wUV*p2iDP2`Lx%>=?gmUp2nghA@>{70LfTb&rJ{(9Yx`S*lGT0V= zAEsAxX1Nd2tJ!Q`Ptg+@tCr3Gu=n>(w7q3~ zinivhDfbGXibxSyxa0;hsAp$A{5=;oH-CZ1on>?Off;h^uf78>io88nLIifM7iEJt zM?hUDKZvEVQ>+`%AeC~eg!*P?H*cF99bOxyuciifm!m-{;x<(WzAHJEt2H_0PxiT- zFYGRFmWG^VTy|GVx$ak+li$(3XKFS^7?YmHq!Zhem=pz|FLi8$QQ+1@`N@k_>7%jxFKVxDJv(?pRs`M!!B$0ByvnkmurA#BEcju#JpF9^bcBA~HlN?<73! z+XArZc4Yr*B|`ro7SoLfSnJ3nmFNh)p2%h(^lrNzFdawY&lq&qLk>o@(ZcNl6+q zfQ;X}rSu4h16?2*e7ba~fGx!*F7Q=kP6b6M2_i28&}^_RjmfJ?hO}e?EZ;0?pBerb z6ByH&;|QoChfGQa#|&h-1IcWH;1FqZt!2uYKj0cp&x-5<@=@eue>#;V^d2zLpzORoQS*HD z**ROBjGh&4R6ly!ysMsbp_r#bYF#m#=l0@M8yc9rW@g=sY8Vg}5PhDL%$9}^4pf2#WU5FhM0Oefxsq0orjGFj@^ZSe^uu4%V%f%6_hB2ZszLxgisTV8{a{ zA>Dv9qU@0S1Rr%cBOt|cOAh{04Pwl`kYA4Vso~=Yq`3`1^d8`K!5f67ly>gQ88Vna zHH+w(O~cx-aY1i$(oA|q9FEV6;T$`MX!cA->JPu*iCEwC`2|e7U3lyCM#KQDdQB%+ z1jsYECzvRc4gyD(lx}PBC`zPXHrxzLMBQv<+HR~<&N7MG<9V=>?Af1iemo0xz1DgN zH)Ig&!JMo&Bp*>~D5wg?1~bw@yCzFBr}ij0V;r0(`B0kY5GQXf86!Qqh6})`f`PJt ziEEU|w~6FHn~3iA1PXgu+uYEXh||fNt)MMLdNIO;;;!kdqO%%oK$GA#1c0bEPsA>A zZiawmHMbHf&?Gp_5-0!^X$48f;LssK0A60QmV%f(^4CblFDH4_^(Y=p$Qp^}ERs-b zi~!LC;!bl5nk2C;Ky8Gt)k6|wTcju$Hwt7R43Y0$M5eW?%?+1`d~@U}qs%Kgz>OSy zlyhhvJdYWK>oP&Sx;(k5$Dwsu3|t0-fkTG zfQT9aVz5IKS3(c&R;UT4`&&Ao?enGu8+J#+MGwF-MRsElP|i0iM1aoh+8aUGD<7Vq zMWay2WZgFT&VgL)DF`J4?@#uK25ZdB-r^8Hb?SgOW8Jsb*$W0>|4YzQ1!HW<5twY) z&&*Ua(iWRD9%6h_X_F&ZFiH>AgLF3k6wTz=oB@&NkQ<_w2ug~DPjt$9metVdRV7KlxGIfp7Io!oD4P9ZCVkz z%1R_&h6x!LfECTtCP5V8M(vTPkU8xH8-Ypa=3(-PBgF7Qxc!A^RoL%iFBS(j5Rb_T z=68|V?{ah&mN?IYf+ZIN3|UK*BbiX@035j1S-1>$8coI{Hru#&`DTZayyq!Tzc3WZ zBgi!|7SSXnY9-J+rg$FK$ zcNH{>CT2CEm1#9cV5U~KL0K9lS@P0gi;U%K5~IZO9>9v9!!7aQCW*OnQQdM4$y_n6 zKr$qZZ!H8Q^#s2Jd@X9iC4rC7z@jA%!F*m4x}j7ub99zQ1}+Q66#=5JNzM)llp_E7#+@@ z^#|yp<$2spN-mC6Y;TVQDf4iBK`@bs4R1r}eYmt$@`HN5Vs~zZiql{Z-2zpvOu0zs zcaHoXk=#SQGi0+|z`2V={t|N6C@j?dwGhm-7#G9=P^!SR7zP6cFtJRrAfahPr>~_* z2X=3U0xXqT{daq2&a}alb7RU%CPKveBIF*e(jQC*aiq7-oj-MUG91XFbm<>hbP^g` zQ6V;XBGF2L304mf;i56Xu3N9RS+PDveXg4Q*U@^~m?KDCeiSNmdc`Y(W#*|0oO!NzT zrmXwD8iSP^C9uFdI1Cbir1o9Okym4~H0WTiM3Shi_sNw53L`E6o|XgDYlemZ>+Hx= zs2_l!s;3mZ{^>s};Xy`cjY1D8raP>c@GcA{@jhwWESqpRC!?*xu2viI80P>BEJVug=wRtf)$`{ z3UWcIy(3E1XJschFaiR1P8l1w;0Bi$GlKxHmJo+W`tT|sM(t|c*WX#Gv5Zowu z6j6i_iG}J~gIkvq{Gd^uGV{_}A}kT>(nR1Eg(_>bGlj$MA#|41W5*o zVmSqj|H?)wiHIT7Ph$>ceHY?=)Kz$hIe}=TXO!Y0g^XS^B*|AZT3-^9F?j%c+)YV*cw@01bn%ZBEvL>I#3WE(L!d4Q zJDuX!u+0gh=w`b2OvJ>uVs+WUVNN;TjbS02;`o0uhGDe z6kZDxpc7akTVu>lA)~Uc4I_bLXeI|^X=}mbPnwwv8}?=}v7wv?wdwG9q5k3!*twBG zKy}Fok&r(!<$IBiY>U>PtZeCGzG!2os1yxiq0BvbDKkvyqKw!Ecx0xVenc`fm3svF zM+fyHsCZyB`W~r+m_&BKWBp`CJ6-d+4D3SeqsxKJtBVKzU=us;k#Kl%RlVQ#TcVO8rg4_47^aCWl4;DR2jhBv?KFvrH5GrNUA<;=E zx58|T{CI`QFfQ~^5O@ofx!)`S(3k1k2&BI-PQP8Br)5-dBnD&n??9;hR8}aIb)HTk zgZ7XWT%O}B?Isq?%7+U>4)?MHnq47-j5V;zYV?XThp}Hb?sEPr?h}AAg2~p3+L$3{ zr*={uwXBL2ghw+l;PbkxPeh%czm-Z&h*FP zR-ru)MjndcrNX25=F18yd2~i zPo2rKx;kg#%RHi)y(sQQs^S{%6QqnqIP}bRP3xo1d^zs5#*b&vjX_F~>Y+A7Y7RNN z3GURX{i=2fWpSzUfU5qWv3j`D`OTaomRv}sAMRx<(&QolCxbC2CiiG z=?Q~pc~HG{L+4~YR%S>VLrhKR@SeXQ?pwNmzx6<^ZphTiG9lt&%l5?IOu%Y0f{O%B zLV~OgPi9=njzg~4g;sQvU6_dO!RKMc)8TOT3#1DV^8zOH@le120?8z4gUStzD3oKb z^9K2o!m`<0AB+s4#ibPA5>Hp!ljTj;p94>NShXdPi{0ubFw*sQq9W;&dxB8ASLbo~ zA5zzoB&#=8mPSCiNe;|cP94D}fd2v+ZC(VD-fT>Fc*I&+=B_3{5%IdAaHme`HAY_) z|4=D4u<~zK!#NNbso#m)&{`x%Xb8!u0t1x0v%FpqJEJCbN;=O5y=26RypV+lPuW}A z?P5O6g-8RJ(qAquwuMO8jM(p3LK17CStTR`Ic6I7o@KQo$-HWZ`DxNp8H6%ZqH6bZ zFeZ8jd*M`fxFnBS)O870lzzA}^Xgf4LZVJMvpCeP0G(22svFtxs`H*;wsoCA0d@f$ zxL%PDTs(6qFn^7Gs!07cDkXFhDq@4gN=lLRsCo(ySghY$M1U$1xgS;{wMo2i7&ByS z@Ww*Q39O97h_%@pemw(^2f6}Tktw!Mc}?xc<2B+KI`B<~C(9IxkR>wWYvYM0;btvc zu-L;e4Cq&2*$R=*b#qZC7R-6DCVMO=9YU8u)#ILjXK;C0V-<&!$`qA<6# zArR2XHMo;NZ4Tp}<3Gde{aBggOlS?mA$Dz5kqNVIi3Gr}61_rl&$zPpAaWWqDA|j8 zf+TH~tk3hSdPG#OiV_0p-qb6A9II4Lo_1DGkV>hNik942`Q8r*wL^35>t}VOBP&+_ zE-^O5qk16xSz~gYT|cY4Yf^}xk;J#(8pMcj^szjjzp6)|&QM9jGyj`199m;>-RoE7 z1o=a$yYBU)a)F#`l|+)Yb5u@nfxmZ;No~9o3Q1LM8L4@|$vl zL~E5qOnHA(hO7WZxgp~0tQ-?iOQh_&*U!or+-k0S{ivLQhejo2r#vg?2vb1mm=G2J zq6~&sHYRSIFK1<#%U)Hbvqb2Fa)z7^B{wJB0cT~{CRAd&*RRSA%EoA^(nRq4C*=ew zAu7oYKI&On2ur(#hGNEW!dYE#68o8-al^kgzyPR9gv|RF^$fE}B@EnrRL-#Ls3hZ* zdr{8t&9sOTZc%T_F!+o_4L|T%8I}W;WK5}iQ3epHN;0k;XJtX7$g4zQ;>DY~!D9YL zvS)}L_1=KdBrBd$7^mAygB+2$EJV} zJ;A(ENfVesXXOHYu9Ae4@T{D{098pLj7mpkA&GD*%4n~?sk_gT@j5eq=}UtG)wxPL zxJ2L78!{2!qJla8Z|e6ikW8pB^{;CR^ zUhOaJ%h=Q*k;*r!#J&{}y>1{zb9 zB;3%?%7!c^dGra1FW%I#l!v9+MKTp$)V2D@sZPlCv$~Zo;nhsYGWyz}l5#0B^{?L> zAX&6ZT>JW6ofKC|l;rwNot9B~^sj$tZ~{aIRz&2jfyO>b$t2gmes4fPlvW5T_jBnb zP>=8lRYK}3os|<2zp*`;n@JUZ3JpV_7B8Os0BAk2844+MM8O{UK(I=zxdGHT|cWMA&!Y+Clw*i>O$Cd96uTuspYu=GF?UUpD>)} zSv_V#eLq;at2cE|#M-^saq3_H&_GDVzYD1@RUg)g#j5_o;jRsNA67 znMxvh;?ByREWeklYOa0#tj;)4gC*Aya@YT(0q#(er~dVOg9NA(Pqi1ar5)81Ac0hJ z$WA&b!_J`fSP(Y!rVMMc6}QE00DAxx8V8bO+7*seP+TEZ_`mdLiyyl z=<2SYl>t$yRh6(@;#s+3xycY*_xe$}g1O>UbXXAbs7%X_-=d0^&6_$c^4&5mY4qM8 zpa~ZIhY9}pr9pxfCK>w$vDnV)9mrQzl5jaXD`%`dbW2DH`?GR_imEEfXyKogg%rq9 zQNp^HZ|as9v41to{XA3#KQ@SnFSHV(agdnROM?o5S(Ui<^{aY?!>URu#&FNdj3(d8 zA>qmPRlQ&V*+SXPU(^#8T5D7H`cXN9RjZOjxZ01(f@SSYl+gr!RfmIJwv!qw*K<@) zU=^z*<0Bva&79S)YBs7;uA&*}v#oT((? zDfFyNibb2KAYJ*J`hC>E*(AKu^J@cTUcoB4u6_Ng9)Yz}C8m4*stl`xN+Oa~o|PpQ z%!kpUp}3U1sY@7m4m5_$LK0|R8f1W$X3K&lG@fVm4%r4O$%sQeD~n*3nuQ-zSN^zL(^`mmaVpt=(?)9T`g0)vAiPQi)E5p20 zNy3HttZd9+(9zkoubpv zM%}Y|1CMsI{1r4Zj>`8MimqRo+SkwOMXJ|E2B?Y(lv$BMYBT0Fs@$fJGM@+Og zbu6l`64$-{1T9{oMOJ_neKj);W7`Nqm?tIhldG zIv4OIT zb$DlvPWryt!Zt*D1W$FvpfxpFs)LjGQFt6^AQjYe77(#e6=X55&YBKvF6q>i$-6?d z=CY~N)a8>sj-&WQPz;F@>|ODrAx1`wR^gpt-0nRGo3i0yMiE;C`_bk&W8!}ITRawgs$Nff~MJ z#nN1LV?zSk*~#$~{!o)0MF(QvTSZA5QB@M2b}yqf_vTQ~I!a^2-xlrW_oamT{_m&7 z-0t}NBuS{JI==i$4Rt3-AGIqdj0-7Q$=nsz(~xBgY6u#(*Wt-8|om!_^KylnvzQ zf7DQ&CIZ>J+q-5HowVwY&kB~plD~5)9=Fbhgi!aBHn}2^L!TYsQi%gWe!_bM%-`FU~(uYV^;75}vENttW#zv&R0U{0{d4W|m0n`Vu+58qdj0y#ti z)WsOc+v!7x&Qi=IV6%XfZtk)FizX%wPH}BJTD*+3)feg*vfj4^F5rEN)bJDCbuPa! zo8=HzgDek_bZ{6-z0`#nlMf8J5#@(?7!h}+v5>_cqv~pnxT=7-g?0yZkm(IA5zr&cwU+~RQGHuRfS1+I{Fkl zlMTJMRBG>ER{tS~c~GVXD^k;IU2+_SoMd4TB|Ix(knym{4<5?oen3#kvZ-F^mkT3Z zK+iGCj}Fe|c2`~1%gOA<-<+3?vx<4I-rLgg7m=7h^>j8kDew`)fx$*b%IhrmZ1y(% z-6UL&=+PPtldkD_+9VqD*hzhw{O^8|Obq2`Jp_0#5$fdWvC90kVAWc!MNqZ z@_;N=nOW`aRcAxylKiAb>Eq0hAh(Mh57(30IeQ5v4vSCsbxD{rl4oRa9^|G|5PBg= zpe&-nOAetTsRQu2mh_(uqJ;ON01Pz2V6(TCqnjpIl-2QVzRmoH*Pm16hD|epR|8n6 zE#5YU!sS2u%{)yR6T;fhD@DWo66{t8srWxDvW-PGWe4X0b+sCUp({cl#G|7R!BWt3 ztThbqwI{=#V__1Gt7!j+%(k?qw+P&~CR(7>&SpSQ!U@onnzBu6T}l{5&X-_7-z^km zq`bdM;Y6YX8G?)k1r)WHCQ1n63v;wrGPiq_%pbhU{UU(-*I!XcZk0M4!Z7`titHd) zMQY>@Im-j6w+uOqq`3~dK5%Jjc4?C<}FAHgKMsm>La=KoKw%OclUHvxUk{g0Seh+M;5D zD`8HNViPuiKlR=7-ySfkt7>`w-CqLbv@)q$BO=>ZIxAR z#8;h5aB7nrdp5`$&^I6m%6qn-b<$$3%s*)i!a(FIfJHMj{8>YBRC`&5x{z%_M+Z&M zCO_ICjr##9)`kH+MA~0P2^~>S^M54DxHu{7Y*xoRMRYAh~aqo@s{ygVJcsSmmHS%1OvHbUoI#E zmi7-Bf`-Nm{!A3-bqR(zFqidzhV(BGM?k4w=CM>XY)-m<4gnrDa{-n}M+4)g#6=TF zl#2)(SzxQPRN9Cn#@pJkt4!;9LSu}$k8(=oh2+mLg-Z-W>&@o;uV$O|25~(7O#(7& zm3xGBs;h$v5(vfR=}$@|X~$CxfSbA`h~$Ywih8DM$RLOPy>AF6yJ}o8!rm42wN*9_ zZrb&p)uvx6;G4Z3JpIpBs9x4pM@AamR7uzX>b&1OwfvTazH~5me^`-QOmM5O7#mOD35Z z#Q?DnN=rl0z0yC~t0;V2<0qC!QI0ahC-7|8utn`5EG&d07dC`lo_EMDI`WpRfOc-t$*Y zXl^v3^O#m6d@gKBPV~)r$8wS^Rnrp?I3_b%CrdpMio`wpD+)o|@c-;k)EJZ-?=5pc zQC3tvsT!hBM@Ovhc#?TElE_=FDSv%h&GZ!X)L|!tagU<%eJ;xf&@7;6b`t!pd1@2c zR4W*&Z~U7CRLf-QyZ?a`_-1qvlH}%P#N`1mqau$3p;9nCeQIdb7)x_>H!%s;pG3V?2cn1KwJ_u!`?Qmealh0835 zuhnHGEa!D}05#JR_?TiKTAR8*@ytE~;4QawIxa8F`v}nNQ~+CV!0wLw{NjFqp<6tJ zA}~w-kL#qA7Lp%7RAdHks8K`f+gh4K72NIy(3p2Z^-=5kG6wXq(+tymEs{aX`Zh9D zgi1)ppF*S5GmH$Mfd2IqwpExFJd(g$XDMxDa9MxDKf?vgXH<7lRU%r*RiN$kcF-mhdYFWm!NSaIha~dU9Y`+_ z?&mnBko4pJhs@A@{hwV-ol>E5x3VPB^0j!rW9VWtOA~!Y39swRlEX1+QM%D-aw6gM z*RoSCw?uz-`*i!jYNqN81eH}}HSat;hXq*8Np|{_`$!tyBt9d%HBehazWNTY8MJ#~ zTJVO`7fG7qXV0JUNNM6_iwq=*5A*$V(M`-;y@m`H`rujUlw>*P(`Jtf2-l5uv^|A7 znq{t#FZ0Tng7|?8LsBzKTO7=K@q+?&Ffv|Ulg|miA)0*?ew_KC0?&^85{2sb&r4p+ zEj14@($90P!FG%toq7k=b-VKc=FSb825;lGADMSXYNUxwXr)wa}r6bv(Q-4y4?RzOdA zNG+r3g}@qgp!+J-e*c=+&Agmuwi3n$G~{^gI)p8yt7k8*m9xFx+6K~Ufv%RBws5PH zT1y@q0+N_Bg&>JZqZz?D+SJg>BJTwB?`TA$Z_B>FNE>VaI#k&?+NF@R?e+xYMS359 zcM~_ZHRDbF9l#BL9c>IGG};sVNpj@zmzip;(JF0;;K0Hnjpz+fqI*c2_@{lpt%m63 zitC5}rJVy2%W`VrzemxlZZTrgI?FE{m*%tye4icfhvsAirI<+nOZ;KuoT(RtN2x|V zW4mw5{21LEx}gxXNdK|dI=;a~1@+<5LrH&;<&jQKc!91G)a?o7k#0Irt_46WNI=SR zfi%>94t0t!jt5EN7^l)glk2?-0o+z*73X(p29J(X++4|;&^Q3vYX;vTby*2n!f1w1 zIHnU5(7w*~b5my01Ly^ROuXPmqOE zkFo_NOk6-&*fo4Ma6&Z%P0t1N$%F5XxO|jo7d-2LZYWAv)_*@>>7Jxko*$2t10okr z2P4MEX2U8EYj70~@U?e=R{e~9g#AU|tN=D6+C*)7D`MP{^4zAs!RI4yn=hKdtCWC9 z_pmPJ3ZD*uP$NwwQ7091^aAdI4~g+05-6VAMKW@S;dKGA#@r?tbei!0c3*&vP+3Dw7SuPUw|&wP;BY*yu%B z+z$-eCnj0VRfY?cRJ3J<2=sBzsw~x@c(Y631`5W`vDxeSA^adV-_c3l+TG1eW%sg5 z<_5)(u@|g<>g548XLG+Cf}Jo<7ovgy+b z`C-r@IHf^O0Xw~pPMvlO? ze1H8Khy{F@oiQ_ppwgd}^Wv0c$X!)$zqOfr$ec(%y|2L)R@u7{cqVfOj zN&+jDZtwQJhy|+rYB``+`gIe`wgT@nyytC;(8$>nyX8O03}R(`z$ICh`5E+*4r;PJ z{YP~!PzHWLtn;lpcJP)|I*O=IkT|n064`#Cj0EboN!DlZ+y3kniNH-=3F-?Z$R~_q zITXy)^>@!oyPL&weoD`QsE86|7Tun(7>l>2;`NP263k5t5ssLDzeh1A_{D8M~c4g4qh zTm@Ps+Hhs4hoA)72Z`u@i}|Ch+RjaP+)4-1E4#R@j3T}_twlENl^B5cRV0Petm*KI z$rw^&8&6vvz;#0aC1O9j=tBGSsL@s6EDwBbhun<*@`_x&X0#5Iv1EPwAM%M*$NASV z`7Uw<15Z;5UThAacT%5nx@!OL3_tUUm>e75SMp*cIq_D+WkL+)w(8DFP9n8 zE>jw1D^ORRnQ_w0*6w8%K(`|4jq!oNZ8E(fT$xQcO|1bbxgIN0SNG+Y9+Xr;;kI6N}=(IL}_Z&}4VDBgHk4i@HKw+z^ zI*q%SkAaVZos5KoQIH-;3L*q=M1q28d8ncE|Mof_{+wat7>bXPmdCw3Y`--JNV!bF zAnPR&s1ly_J*_gj@4kcyz0wVvdOaKjbj>oSTNM7&{h@ck2iOqPD!`;45SG6Iv5-hJ zfz)|p3X<3>!>FeXgfDOwe>d}^U5|1NOkV!=cxzEZmm*D$MlQ)|USTA!mEJZh6oZSJ z0+BfDn`=w#BTBx3`s(Y(G1~rAhUTIH%1{(5SFxl^1{FK(jhm)T%Jbq^!z!tK)$~TH zw``o*gL+FOg~xDcHF99TwzvyY(Na~}-I%D(z6y^vDFA^3|4gDCpA(!vRSuk|dcnK( zfJm9OdM~nZIKzYVM*=qLgVU4b*cl93W6D#7aE6Vx)lQiU)D(45{}I_z(S~F+O`xjE zK;J~ht03yNv!5{y({Th0%&SqJW?c}zOc?hu2}aM`dVW0m@6cCz(atq&Hte+9=HiDS zdktzxaW=gdq59*p;3GEd6-j}EcFxE`MLi-lkV+>CeVA&aV^UF1q(Rzbyxubm;=zpR zjHsbXySwH2!6>H%tv+N%3$yK_Vmso%2#i}W87*o^|8>0=k%U}E2L568g9_lc?LiQ2 z^Vk_Rkw+iqLcc&b?@{L^z-G>4Yf9P(YkOSIojSjt7_P7svQz(K)e@-P&a+zegTaY} zK--6=*<4*r&NcY<>*?zy@FVbZtCjmBYft!BjL3n~=Dwyum80kLEu=ttI!-lr6IAC# z)9W!=T^UuzI3~>_>;n;lm*PmtnO;yJm-XvpZr1E7l%vrI#v7!cxv+rn7j(N}7is5Q z+>$YZX>pR7nl_l{OKN}zeMQ}+37Un(gt-ddSzQ*_Uv^6m3JuCg~UEA@wqLe$| z_P*p=FI3>q5%1+iSHjX+&3s7Ew+X&$E;tBchbW|``vI}XG;kh0Rr9IVn}Eu1+6;uO zyoi`r)~jmkou%B1f&`O&zQfR;zG>}x`>5nw?SyB#t2L-Nkh0HcjYmiRv5BX~xp&?WbSZs?PWJmn*#-~^W8&Jo;oO+xnk7)I_c5i|B?Yg{13z$1 z3P;ZCe1b>TmMp;$#+57RN9iv0bI1 zdg}8Eg3fFDCG(o2M&kxA19k+2K84^I!l0OGpEZ)ju|f%l4pQ2V1apVu_306e6>02d z$wDuUhRFoSa3%qEb|(g+qmR!{4DPLJoZ@^BjoI$mU)Q@!!%Tum12~i`qlg%P;Up1e zT#M=2Wb6!26!bwgv;0MEl750dwcjm_JD5nb&1M$#GDmw!gaU?eOGhf090Dg%o`(}x zp+96$wFR}7#R<|HLWzQ@I9oje_=U0qsCzS4$nE;&#+_f)F!;~MA9ryl1 z7_IEEgiMl75I!+|NavP2AGDbl z#^@D>3T;az6L?qmj6Yt5RVMTRPFfQ#pXQ9p=ecCG|p;Ij)S=ZY{~>}9Bf zejI$0wEiPgh$@19!i2_EF=XM&VxN$iVZI?>zdWkyy*)uou*2(btlW#pxW%b98$s zxr||Ov!xcZlw2?+I=6ZL={q3i4|q36JLQgUuftZ2z_k6)85s zxGqo7E5iHyOu7b9@7x%3;OLyB>k7J#(l9OY;9tGCPy`$ghXC?Q+hntzzj2tQT}z+iO2wUgRr5fzJ@)0RpQujb8=7%7q+ z7T^KXa#fyTde))7tLm@rl+FfcAUs)coakv9O}i0I(bsGQNyf30K1UGePn)v4_fE3C ze>Nw^r%w+@>%!hV({wfurAFD3PY+WG`*PuI6ZgZKYV1BWl|^84P+jK6S2!|U5T24U z&Zhx&3#5GsZ0Vv%3~r4!3kQiBfhb9vu&&|NL5Accd)N}85Ao2Vg|lp!#DJ)aD9UOw z8DoR1L0aG4$+yu#5?wqgbA#-j*bx!OQ|xAAV|*;u9*?-0mJ`|aN;9cLd2zFIs;h<- z=K+f|r(zm3-F33y_XZI) z`<0H;eB|F;t{vY?V_8rQS^yjSI5RknD`~&{h#y?_&U&x0PSWHqUubUgace3JG*&!jpvN(+nAiTmaKLo_h!U8KLiyJ}(drR-QhTGJUEQXtC2@w8J~q9O2z$v8dShV$ zt!yP}#x^v2^q-y3(vC? z3SN-P{7}ng9~{XCA|d_c2B?rJ%6;efv%qqo=yG7txjqfql1~a&l*jTEiT61wl_PvW zSK92c0FlwpKA_4HJ$^jbOm+EDX3!4D$0GOm4lDH}5tevMQ2q1*w{_@Nd)RpIH`}p; z8-yHEt&w{x5)1+Z9+F$&6HOB$&u!D3v|^&J0v3?w8%dDRymN|l5gc;ulEjV*G(!4u z|G~gUSjQasb|*EPCkO0Xb%CW>wl4|f$@$(}c$+0HGDLP}|DXQ;os#FlkDWBJ79Gwq z#JJek9pu;8gBMPeMW*u^2HqqZ1SIx|J`!GjoxyRtNIR|SdAV43G)5uf!2qL2EYI)# zu}^V=Y}MQ`uCx0&2jdW4SnlhH$i1=S?+E*LXfaMkycr!gPRc0nxj6W>{3`qclHoj8 zZnB5uTLdkPB}uN|-BsNwF5K1$s!<=m1(=Z$S`+-rfiG2A{v}WQ2opNqMg*75%8_7_ z-x)vHE|rB>NPT;4zyHE>Pc*QO9BMKJ6N+>f8X!mXC1bA+qt-S=NcbzPcm#7gPqi$i z2TLM=mxGJmX9uXe@{0s_JZeE)5GcodhoN~|H6#^?ZN5Pw`i}ls)?gYk;opt+LgV_Tjfi5-i=>wTVfk>bEc;%AYTW&!T7>ss?fFeVDLLh7lR0 zLJHQEFv$SagS6_pdLAzN@yaYQ8#-GN#H$^kMIK5W#iK>0dFU;DZ>;e<)&!fgkuJK~ zN^Jv8Wc7`+3ges1X+Z*dv9k4@#;;*(|5mveqOCP3=^rkWqd2oLL|I_NT#Rv7Ta=XM z!N{y4UJQJjIYa}{@LpQvwkyJ$INRR)VL~Ej9^gws0q^0nz7ajR^OS6zQL>2~>I2WN z(Y2KGa;Gt|zwz^veEbK&MKuouCdlbTcKjgFWX%*O#v!`mNZ2rekBL#lA{e%qlBt~O zz48j2>67S$Q*)+mXUF?B>~$ypUlF23t(Th zVd|!bRj89WlVpsmfhmdbUm`|kXCpAN?`Y&LdpEAz?Y=_}my^aC)@Iyaah zNbWM7)U`PEL+|RfCpx&^cR%{JT7R8#etTw&PZ5Q;u%!B_)*{jzs} zLFt`EJ1`%Q$E%wkP#35|ITTzd)GI&5>Ue5 z5wX^4Bxa{xMCNl*)}5l*XZ&ew#6@I>dLOYRv^)G>e*BUm)RmMxj4O~RP=V9I( zn3X@V(OtrA@4Wh(`J?>qt`oAEpYgK55cloGxcuZT*?M||Hy^Hke zVU2Y?`9kTnv1-+?v35;wGvD4}`L&SHG4tt;c6L!DnIa`d)d6?Gvfdhkld#A)ym!J=Fx{@1)AgZ;|lp%-5IneZYR8soIik# z@f!z*x1$tGDv^KxmexFma8Q0^_fJ)eiJMLOzo>aG4cCFyZ>*+eK?`$q*=-pH#+9G7 z;rg2Szd`jqE*;x4lMhZ3k+%uwe3Vt-V>UUfEsf*7=}d0nGF?5qn+9%8@%y0`)rKpq zb~gRw`lK|jlL>=u7}va!v=ja^`Kb~79y!Mv7anB7rw zX;@ql+~prW9e-x1O(}dK-CdjQ!@s7!xHF2%8<DJrD;= zBwlnt?b{__YX1csUUrj{cT0pj(J4jLzHluK4=}WtbFeP=7b>;bc4jVFi=?hdd23Ia z4JfjAH&~NWZQSjg;HsS<;K~$P8}cMMd%{eywzGnWm;Qo?829<<6jEWiN(p!9{lI9> zExzyC)=mm_2j{l1ATlkfRqN{gQ^Jk~XN8?wEWUo2H~9*KLG5|l*9!H`sl z4BmFNavED^6y4V6zL!+!Gl$S)nJ(g zD`C*X=W=9{c6MCOM(Nos6vz%Xl@0JnVI37h>*qmAV~o(T`V@xhFDe3!z9LorV?bW& z(3nzR(I>&MBG^3*0lcYX0ls|Ehh?yyzn0=q2dQtFvFQ5xH~J5`lJGNFa=5)Dsmvu3J>AQ$xCY~R2* z0xieVbtUc*b^pHfv}tEGzT=K=U@qI*;N1|Ga&w$h1=yHB?aC-c zKxD?~6Tvwh5l72e$?TNjFkF$dkO+5)n?!nV#C z@QUqJOv8b-DeS@Se~?WTOAa|HP^nk`eZB_fOy5CgBc4rdIOc<+AAMW79}8yXSnMM_ zgSNTU;k88=Pv?hi{qq%5ZFP*Fhjj0uh2z9tA3&y2xFCF9Cy7D_$I0(Kv)D6TPD7)u z1<4#}S>!Je@GZ$LXr{v?F6d~&9&wz+$%xeG6|$+gvX-|n`$qNfjW}?udb2>aqzRx}I%?UDk=BU#;*=LRa25Jk^q0iJ1#(j)K4^hiRvS(I zMm}C6VLK{yE=GLlX((~L>z}!X5w>>Sclh`p2k6V@3x!nLUf9x^dN4zME#|vn=6V{N z!xN@|4GaDKBHG~RcOB+RsCwcKEz9LZaKF1Z9{oGYV$8mfagc%J{R!I3i16Ch9X6oJdK{c zCMupQ4A+1v1A`-U75-e0zbiMMVNy%TdHs#IfR_<8F-DH5he`AFOWm;__heEpdUl)> z{12F*aiNHCGcyX(P{lD^7~_g4Vtf-R6?B;UA$v6}?%@8!uh=MAfm>L`?_Ptd>j-ii z-oJFhlV*3oRLqK(eQ>Zhjfey^eEc2}ol$SuoMqoV58yk_hf;b7`}+e$P+Jr|WG5Gk z&DISLvBWI%wj)rdzEPNHijaL8haS}-ru2x!C!ih(lfhcigyDOZ{7cRMo@bqp@EMYJ z$yD4sxz9wsBikEkBwQ4xsCS3XGlxeH7A!ewNQiewWMLF0Bkxw`u%ct-EPck)bDs}7 zMal#RN{}B?t7&pG61X#vH%Ls5hBT}@!q+gjxYWimOQcBsW@!CTJiU~QsEAa4+evk^ z0o)Y|CyBTAKBz%5!}QdqGViVv{v?bjJmOnt0TRQ|ZXFP9%{Sn!<@NK7SgrxP7&b9} zDvwr81BA=&z4na(Imii$&nlYJn5h^o$Ri>LkQB<7h)J$pvc-qhrs*EWotF%JDmOK_#PX{6zQn{2Lnv+ z;QGb%dAyQ1=}VqS~{rEK>j#Qr&=_EhTBO3O(op}&dUI8o=_OIuKmr;dF3?{`4FkU z{Ju}*kU4SwaX&&sB=3WBan#(O^L_ZqAGl0^-b{KmL!cjm3f*|=#|e{J!PJT4_TcWt26mXP5J;S5>P7t>y8R0 zb?AC)B9wp||I<(3jCNJ;>OF?R&y9BT)S&vC*s3@i`4^!~vr%+MNj8L5GqRL?oak!2 zdz_68KcH~3O7)4+`^1Ut{Py>EVQ}k%E>) zkriKaOjn0!lSZdr2;k)q7o$j|`5m>n-iAUsN1e71wmaY6LV?Yvx|?l~x#o($(tmo9 zxs_^s&iRdwTsrajZ|l*qSE!(|%Fcu!Ma@)d7uZPN*dWyJGTF4Nfj}NaXZ=|&pTS#1 zeqWJ5neo%hHaG8e{eW=d+NZU1XT}+O+@Q$;#|7B%slxbFYq)!W9%aS#ys{&qmS2&|=0IF~^h3z}IH`tqy#ZBVmVj7!oygB)# z5&{W{d+n<$`q$#S*Y;p~L16bw9rA6QoVj3?(E7^WcK3H)Dzu^R5OC<-md^#QV^@tw zl~u-MZASwpmy1xl3j5yfP3+EF`lA7!y{X%{yO*joo;o>Xm+)mTI>FnaRq%;D96^Rs z#EueW@qDWpIS-beEaN*3cj^1yUlV~Di!s#eFtS(6ntX4cs4laW4-}AAtFJ5}TEwsg z0;Jnw#eBqnv;H0XJl~(x4;dT|OBU<=WK88uf`626XeZrUHZ4UxOruC$e`SL3-@+Hf zzIb!M;X;$zv=m`&Q>Bw_k$?Rg24CZWEYKHv)Qc~E&|YoXmoio7e$VjwSMbroxy9Xj zERx#`#v3Na)gK7|)!+WBCqT-_$90U)-@ujDXHMX0fg>^?ow(!er!Z>!)j6|3LU;-5 z>-Y&iM784Q!wgu$*p}-7nx@nJkmdS$QNG1l#pTr-O#7t<2UX;B6TOmyIR*IN2WT0) zNcW$=_hjZ|=H7YmO>*nFgX7FLW0X-Uq&GuStUGAfPVNIziBG)olWxVjT)lZXSzF8h zJxS;q34O0Wb@3ucl$ePqfBB8EcDJKO=!0Q-WPdu(msnMXG$zUp|OL(8#)4<19B zG=VrGg3EYhffaT$f-{lIJE;0g)ujF0XD}*^SK)%a`#oUVURlmKPbyJ>8@0ETk;sWs zKMwLf>ExrYtZ2xm_K7~_Q@dAe|-bUpM4sZ9MHWOpmd@EsI}1Rnlk?#|2~-UYoySU*8)Z9Tqb z9{<2Ukfyy{-~_dD1~0niAMrE1Cz24GD@BCYnYeE!g-!`I_s%%ql|-*sVR1t(MVN^q_6R@`;vQ;+(2aS z%XsN50ODoxY!5Gp$oa_=c?+y)eW|7b&AaL`+{PS4052w0XqF)!vgVd=eI z=bSIBK;7^*o5^5e{<)Yjm!CPa!@yY4cm~jL(I50IkwxWjuMI|Dn@eV^7;dX8bp>Oj z&Hcm4c19R-t^NEZ`V=?2OvYe~1b^c`RlF|yut>EP%xwJ8t2o^$MR{oU?WR>Yw_(@B zXp6+kzNsx?8AHce`Op0Equ!#CsMhwm-=Hfl{Y#sij$C;POH_l)Z}B15auZ{L_O7?^ zdXw6SXIZ>SRwVMn%mO$M?)_I_%^S>7LZ~2jOZTGUPyRI{ zf6GQHE}2b|uzy2_FD4@TQ^n$lc%!sp@oQshN$_z;Q%-cz=jWvR=1Imb7i$3X_a<`5 zo+|ZWiCjZI*2{)UzL7rXdeovL%2*T!nl-f>3F6(n!7O7zHjX#6U2Z3uy8u2u*B16B z{Z5kT$@&7?nu9)UNKm<`e|tjE%-7otACD=V#sujRTd+N8 z`=CC`zn>)kn2DOlCwd8h_s(>EfW*+P`Jjz^*RO?QwC<59)?l?4%)iUoIlFUv{7Cb(h`vyLUsZ2A;jVBak(wU&KcC+Iu+ax! za%;u*VAa^!QYXR#U`@G-7 z&Z-c)s%w|wW|W2Mol2Uv`_&SZa_PjCbRojAr{s*Uj=brm{1Ik^b)H6fR!=5QZGzGi zW0oIQdl{8tFpFu7D&_+<=rGM>LX!|{#&?wlo!@_Do$h>q;T;gN`>jpwu6M7Y^euJI zb6SGo3qEdnF*vD zYp0+a(Zm~UZn*OgH`GRk>6El>0+^gZir4hTrr~aM^FC{(^53vxNL7L-^EmMl-%8w2 zKGlQFJjEaQ?=w#(4!mbM@t((6E`GtR5?Cp>l?xw1L|TliRBI6^3u(1+R--JNwt71G zc^^Tb$srI@+ml!IM0BRoBR2OR+LJ}q2zk7I#-D}NDWrDZKiz)29k1>eJxudjJeS)- zeX0zIm&9+kn%W>sWS*le9OQduw254m?kAZYOfw`^7uck(Y4h_bJCEn%dofe+XS);T z$jMEk=P%~FIi_Q>O(ZbV7cRh@u0@-#_=5TI+KSk20xl;uvx8!oXB<#XVSoPQR&7TNs^mXf}o~miAm`<58_J6=|>6Gu*Dt1_W^-iKuSXlKq>`aDP zintJr3P<4oPYb2v39EJ#wI4gM5}}QZ$rB4_iGhZpW>W zv%-0Rn}BieP+CiIsi*#Ni(l28(LiP#6+By-6F&WQG+Am+c=qqs$%hR06@DpMrq{tU zRlD%|`{0SRTBO2HKuuMJygi)OwEGCX;TfWhy?DY#{^+%YCO@pyoOnsI`$|Wi_AM#9 zsEIdGu|M?caIq$8&@&vcivk|8lAXkB2flLr99ql_H`%e$|dFY}T+Mk~p z!@s6_1JaeS2t;v*G!WsFLgVm}_ZhFnO72d2i)D9an&-oyA%6DVEAZ~OZKc3%vCah_ z3de~jYz{$9>8u|tfQK&!{oAa`d=zSJw#f$foorsjar?rU6w~3)K}$({?meA6UQ;V- zDKk~ib|<0&AO;@>!4gUw*L4ke1on^#c2*{K!IRstiIrx;;qzaR=;t7e?4qs@mG1WA z!Dx`IB~*~NX5h>R;1!xHm5^;{lX}i+sz$`%j;cQrs{xuf<2iZQ)#Y2|p2ot0lY8;O z+#JafRdj}g@?`rX4XK*~tZK<=f=QBf*d@E&cBqR8Hv$!HpN0#Xapkl^@ zpWKgLCmMEkUJ~(HJjbWPq;YFO?SkVa_$WRgQ)Dw0qa7O6w*J#FJig4+!W)Dnm5nmM z5Gz=7lM$S%PK^!Apq0&3iB$U~cKS0&rbBT}bNkou>2uL!OWmHh=ZhNTT@{$Cgs$0Alx2&fPQ2!;lVHrZ?g;%vju>2{)E}Y2=z%u3K+&-s|@Y)Er zIoL@SoE|awig?Y}{AjGfJt{Xs8R7nz?PGu7o*A;~z*j_lQditZ5z2q1$$B{EstLST z;DJ1RBkn!S@D5=8A`W=5LM^+{!Qv;ie~#I39qojD!1cWRY~SL#K7wa|^hT9m7~*OF zMhU|ul65s0$Tyol2yQ%U;jNRn&QPo*Y+u#GqZyYODGjcwD(UG@@fFjEZ&UrDQNTLK z#{?+do9#4RRC$TIfzOu|9Btr@z=dHUhq3f_Fc-YBSEf$fXqZF5$@zYxZaKsFuv?TaqPpL4JrFEpFpumn%2s5#HPpPtI(dIsQ z4MWmWw`9gH@4txb#1D}0|dDvZY8( zrMm;Ms9(|~wgg1vGgF`GwGkFvFyrmoU=<0oU?uGSvS{eRB}#_?Qa!v!&%qo_3dI$I zG~1}78Qw@~6rGOJ5$M1Fz44H!7+=)9z{rJk4K(b9-@^q1%awfFEo42@=J|!5@wagm zEHUJQ>fFJgX<*H4yRJ}p&-IsJJ#jbXUuFJ}*nm#C{nrM@k2v`{pND-tS@-Dn=1ns1 z{mmJM7b?CC9Q*YYthHlS!ppt`zyX1XHDZ0iQ+YsMsts3cSygx$c$iEg#> zVfod}y9O9Fn15VlI`Ox>5Z~gOjaYv{y6G~W>108}PUxFQhSi&GZU??WTMWDwi!&5d~>wmRezU{HO|GyFmr zI{)pOdrJ|CvXbBUJN0XOPRJO1R_L8zZ}y+$sJyar$Ye&70Ykz>I2szvUk2089Hdq` zcjaHF@$UB`+d>F~L|onARVomm;?no!z>X`Nd%qF{d=k^|_^EF~BZYS;t>jlTZ#x}1 zqcat+!*(G$;kMgiLfLr?A1z{(0(|?7k4KUK%BdksvE(gXPI;~Txk1emcW9@@yN5i$ zD8Ve+++Xo~gL6Ft&t`NTT${bIUsZ7|j=t4SLY;tJ^eG6)wIjRwy#ZCzJ+_EPd@3{_ zDnrGo+9}ra>N%RTIs}t3OH>H4SzR|O!y`3jvnXSbfhbxCyjI`eTQb(}^P$vSplm!_aAdym5F_ z1`|3?!%=U%BX4^gJjqRUU^Lqe>uPsU{J~WPSg1UiDN2Y&qe!Hn@Od}sAe0jC<9F>+ zRS#ng@QmT_jgq1$w5N_53Cx-UZ)noA;C1GiRfNd8YEq!>oUH2Iv|@LxurcfnfTvG- z@3k-|SW$x3axt)i-DY{rp|)7_|k{m}sKIG|mik-4r%Owkulz z`ZtxHL!>IwTm+#!KEaNSIL2Gk(U6L0tKj>}S?^yOctfH9y^V>2Z6ui~9RWIr!{>In zfj3bL0Pm52LYV59Ol;(h~`s+)9Aev2wF09)@OgDFg1g3JWrEuy;ukJ)`S zw2|j)EVR7nYhpD*u82j*QTpXsWdI4B8exQjM7k5P)30`heC1tDZcg#$8HOKgJ!o-cq&AUjBZuYp3hhT9{+$* zPc529zCAQ233D zOnYLqy|^1A?Ml1BAbv62y!m>&r^f0`yMKZKjDOb%Q9(I>;9`{0mT5_??bw$`fQs<0 zz}`L1h@D#32+1l)go6GLVL+b0tPj94c;~betWp{?$vrh5==tqC2J7;^Pxrzmo>ye^ zUxvimsgJgfkI?3caUt5+-1aSJBvSs^2Ty@DQDzcM
gWStlz#c5z>Df zA_nVgB*N{)HqtcvHTFH^=!m$T)IP-tw@sLYfn|=&HCMUUp*UhsFg=pV|KgbkFMq2C zs;T59&pL^9wtTo^cQSY$kQg~=uVL1OT}be_mShLH#)Ll@ zFJJK+C=W-ZPt;~3tf%aXkq+6qVkQK`Pi~T*2pZ5K&@!oUU4YaHa`T$m>sT+5m)DGH z%~ipazaAHy1^rztK|njqj+}s@A<=5D9ss8|V^3z(m8Fvmp>saAtTa^2?}NLP7FqU@ zF=o@7_tUTHASD^0vXUn+$d6+=m5+C0{~(Xs39+8|uFk^CZf|tE?81jO6wA=E2IlyT zktMpCIAZ;ijybnaqSO}0YBZ4}vTRPfFG&ft(k=$%?pR+N#QBriy_*IOUCrPrigjHe z8J$ApR){E~<2Z z_rW~F=B^p>_o<}3^S5I5D zUP(1-ul&vvz=W1IPP>QGrGEfkjM|>Dpav(}Qq8zlxAG0f6q>+oDMm-ez#r^Phj@VTp$4!#b=Hk@h6+^ zATcPvR0TI1&u-t{jOoM9%aHkgWk;ob_=FoNv*$O1OgwoWJdvoy`XOS&&--DZY<5E= zyCl*OJ2KlYl)cQr`i+j8Y9T59W2}zenAdy!e4FnJpWmpsJ)5^~2kiR(Y?msWIs7%) z2CWww!9mYkHLL~xbTHkd=cp03P5UQH2$Px57jUDtCaq&FJG+n@pwN7nMF8YI?AW=2 ziOMecPHlZqNbN1Z^c`jM&C@#o!;^D}fnA!PYu^OFNj@~#h3ugAXz355AouZsg)WV@ zyF&AXL|Fswaq3KC#D$=X6MfU zKd}&ZC@Toio^cE%f?DUxqzaHPc_!p2)atj7T+xW0tMDJJSiub* z`FxceF!sGRNn&98-7xx1*IapawFra`bgcaKArs7P(!+l(5(T}~Y@?C#S=bUD6KtnJ z6#7~uAud1f)X3q1m6Y%!0<#(Y%;T#L9v*z#`s%{M$K12^r%H|n_9-%e0uFn1|9euQ zw`z_$C`|b2$$RtKZdyMbAcWF-^$jUd{d@zsW1w4feO?TpG|!?4jOmYsyxHLOuLpo6 zjnfGH*bci-m#-r7SajQPij9xJ@$3hgVDxcp$Y(pq=)mzY0C@!?(Kge4;}#ggub&kk zQ(M_yFd6*jVB1MgKQs0ZL1R3lsS|gIeanP^4BvMOb72ruw>-oB+qiNMf)ff+mXU9+ zq1onR@?pVpvi2!Dn3{Hu0Hqt1Gwk33TO^(i+sVF7!bCa42oq1?iUKfdY>U_;yj7zE zqY=94$}d<&B)hQl26K7*SX;=xeJDQkq|OR++zFu_@E4KJUhy*^Ny#r`dJzV_3YFxA zdEKmxG}t;$Qs=zjVq7(Q{4t&?7U}XO8kpI`V~Y8Sq`@;7Njy#BphZLNQlZI2WnRJn zdGeyoB*00|>^ zq@Dah!{D#mVLUZ@DbMg1FYblh*<(<#6Z+wO{AA4@tM&DY^a|-M^-)b$yRAVy6a&+P zR3@~)wG{dbPa0<2K`G>&t9L5|2rX#ZA|dGRkKa5}dKd~zg5ND!4(pWx_DO>$lu9^K zDomE#=qG;CKY?Dm97dP&pssjkM2AG(SC$-%bTKj%M?Ac;yUpMuB>QQ$4(bk{1b`nZ z%4F4c2PFAupQAWjFnT%4#I1`qaNelc80@G%ojZS>-5E`i6l64YIV_Chc%y#mL9@mZ zL86ua2;uR=)V)jTzFH3Z?ZcrR_q-jp7XFoZ4n)~LRLL2_SC&XKymut$XEbs;6b8@l zRIV!#+Mtdk3fq=NKFYp{3itQS3`FQbt^`Q-~|Ca@t?nVhp6~W=i}1 zEj@85!eB8sv*DOf98nxAn*<-YF-)2`xrsL;gAxvNBx|*tbikHo)`ZzfWF=5qVYN@)ghezYD?>oVMH4a+0q$X1a>76@gDavEp0L;>f$ z`Vv4~cufU68~~TS2iOj^9L(#1Yvwv*USJ?N6&d-?NbVg2Wsz_iOoI1svycm(`VR2o zMYnQ+aYzjf^)G7F_S0lNEM2F3XLJ-^DCVBA zvmU`t7%5h4125bIgkI27t`}%aSW#!z3F`Y%e9HH@PMnp6%KpnXSrQ?+MutD(OkU=2 zTy%MP&qyd35!M=gm372@5^_pIGQb=m+xJbHu_$XuJDWAT-{xMg8yRv+@sSAwR5tFr zJ<(AIM5;)fqwA^36PAS`>YBm89X~1T~qAZgS z4-$sfA^}_xt7n0k?HOzk2wv}v1&c>!4_njv771Nu^t1legIJetb|Ekqm2sG9y7)(m z^eD4ikVUtxZifrch!$i>BG3@UB1DEi%ChDxIPXXwt|e@Pm!x+3NUJw;A(&>qO48@o z!}^*SyWz4{iiW+!>T6lBe$ANuUaJY*YE2B-$3{Hti0!bj8ui%>qeBv@{{+M()`%i3 zXJr1BXAF{p&-hhK7Ctb``mRvznJ#w5=S4bC!|4$Llt!sVkPdQM3c_DwAOjoL!cQKU zx-Z0_CT4=0+t;oDlEI$0Gpbm7zipHR;iYw}MDoJPj~L~lUMPPm5)azr zCgk{AH-oj?EiwC@zCVK-V@Ai?u<+7+qXLcQV-z&g{NXU8#I7LA92-QjthXfjeEz%e z`mv1FW;3gvPVRf7wz}+I2LDLxJLw5~hPb{z(2K{4E+So>vJWmG(ad;MnviFXRXBGg_ci}HP4YY0qHv7k0Kh+4YD6DYix%O zlYF`m3V(M+A*W*LNSzq*VU3rxLmlhjD}>uszDCwe3@csH z1t?-eJ8Z+HFnL*HMai}{+a$Hq#+_&P4}8zh7{hXE^Y`~>R)0~7LL7IC)-l?jW|aO9!T_d|EE3-W#o#4gquq?Z`LVVI>~U=4 zg;D{|VGADT<{p_pl$DrZrImbzBrv~zf^^BVdSCchw5Fug!GEK~!_($D*dxHEnRs;|Bm<<=91$LYo`{ zU!n6ZF~~uZ6AaP{c<%Dk;15mcAP99Fpua}8n-4WVy`1qMg4HWnT?oF%#Z&nF~-~D4cft*fa4KC@4@PAnEfK7`07hA_4m|wQd zLpXgFdE7}R>1R?GfCn4lLSu6-H~IlRkDA?IVZvn9$WLsEh*>|}6SpLI97|(m#pF{z zSug75g|cn&iD~WWz|0KM+97N(#Lm{EXbD|m|5ASRBsbAwL}-uc5iOB)1zWgqY1CL~ zCYz4d]kPY*R;*ss=c>fOYNBgHuIm|;`m!vk4Ow(nGl(w$h7j0$eA}i(&{-M5z=3~SjYwodkEg~hf-h&1pmZj;637AvbMrVO$ThQ}V3sRF z{M-s9WwIL`P-bd+vG`3MDEc^*Ovi^Jn5jI4qudVgz%>}@V}5AK1b`e3c|b#8AKal1 z@GyM^pM_SzkUisufKA&9RtbgxI{;*L@2*UWGuu;eq!Y@-gs{Sz2EB=rMYlvsg|I#? zoppy5=gY9Jl}NvPpOSH1V9Tb<_gWbkjYwQ1g-cOE`|C}i1>Sq(*Gp1BVPdO@>|(QXXFZjea)xf6c_1y4Iktd2XmcPYyX+<6=94Y67~dlDJ! zWgc%ONQJ$jsMtNUL(+65_rc8w+yBclUy$rxC2aN*(+M5U1EF+#kk+ z6$H+JbRKN&b2c5aHx6oX>KfeeTdE6z*lTuD5hhL~1<5?Bm5F7b5voZ&I1|hvM{x1t z=Le87>q4g<$x*18ca#>x&N!hWspF}ZWQmdx z%%V|f;%N?HN2@0=tI}Zofn{K@-?LeVwb#`dfbXXv8JvhI)6-I7A1clf4NFJ?^UWME znXgS`QYgB<5MujqBDfA-LN-$LiTK(D#lZ5k`#F<8@nU#H0bB}|<@0MI91C(RPa;9e z=N@>pq?6N$6W>@360s`i(DbZAjS+T!ppCea3IjYZnkPTD1RnV(a-Sg$01Fj^`%F@Px?hCqr*@KS`pY10r_c$tR% z+c}+bJ6ObltZM$w;BIr*GKq?KYWk7qgScgk01UmPPL72Om{aDm3vH!kU&z`Jg$Fxq znWE$=#KkBw(%08fec6532UzAEDQH1JBMep*GZNz}FNR;GJXp-N5~ zL~10xG=C(K>vzSwsF`3%*l~|*q|^}E z(RoG1VqV@vP0<8rEZyZ$YMx@0Mj=x54U)5=x}V9<=@v&%l1(V(p5YV7eax&tT1j(O zB5#;w8Vz>HP?um}I1;V-NoKX-Yyx0EL!-qDqpTAKrjusIFWM$e39FiD7sx=$l_8&M zUw6WIWcb;=mO@+y%KiRisZCtkVy6mCY`b)LLDjNUe}jnI%Uu_ta6heXky zC#KO^vm%i(G}b{RlJY@;8g(X*q;^Xn{Jozp=LEV0DDGz|ia9^s%gD!piuqH{{D8u* z!fRm~O%$ViVi)pwh^0vNdU`8Av$6PzQx$g37#WC_?d0#wN2)ofD;f=bU)Qg|??;E8 z;g#_eEGGaqk;;K>BNArv$j{=7?(sr*x1E34Zt^&@h`b9wMhihS`oTM<1I@P-nC^be zO{`x1ZEF=W4K+vR#O56fTOr(&Nx8%aqsCORKdc~GIARiA9iwS>%oUnXV_JE{g8A%mj8{@&fq4j_UG=*cB-MYH+i4ZWR^LtNWI2T{ojeiNboa()#*vqa zgRB_4aU@bgsP`NuX!;s89vs{&kgPDBvEjHlp7OAcDO&DKVV9g>R4Ow=iPgB!dIsaDTW9UmTe}IhJ8_7&u?EkY~ru z4p@0ngFND)q>x^P6|@Mek`I%rbH8nPA~}ERp}_qp*uticdxu0yd50oTl}!Od8HrG8 z>s+E{WN3F0LbatL9eK>Qv*bnUhCxw0@9{6$lSXD3~oW2?lC*oT)L=bI_ zCpR~smVRt7GZHs@xOK<>Ljzz1cQ+xB$o|+M3mLgXLzZ~OZ>vX&hO}Ax^_%K8T>OI+ z)?*0aoGbI(v%d7-RaTN!v%rb^Tsg@u%`7kjo-6a}2@%?J^gmUfr##IZ zne|`)p}_^%-KoNpFgNAYph!Tm{Dmg|ZS|yK&@k)1epz|OB!O%?LFnm+>XiB8hh^A# z{MY~p!9Dta0WAK<29%C94>QDy{ZoUer=M63$^$<)kW?7+T`H>AmSWG;5@aSI0g8KS z1!8EE(0{5d1KuoIr=WA?Dp7f}6#X*Jl_|7srmB(9Q}r1j1+0~86&xb1(7-52vLr8= zrE1XpTzPFZh2g|&zkX9a8ZtyyK*vF9H2z#!G391~An>_z?h0^?_ul_^l~ty|ELnFS zTsZ{8ELl8Ja1mt|$`{EEKG@9dr!jT`jjo@nn|7=YHAk1|EW?%kpe;Dp>I5!>piNl) zJvV1bJ~B(yiJU9H*O@XAi3C!-0GIJ|gRFK}VMMKybAusB!{Kf~&^F-e%l8CwGlrK7 zY%_E4Py_RN$uG3`)& z>K-?JZ*No8J;zVgJ!9b?NMg7e0bqY<5CddSlvV%rUm9Hc`meI;zkc5!%IPfnSqtEg zT;1u#URw+*p7;D=Kl=v zOaIhh$PsAxfd#r!T&KT|Gu;;;43sWPp*UAoly$6?gtg9< zr!>rd@Qa$O%$0izM?b|wLj#s_^G2&iUA4EmwEYSC5))x&w?T)jwm#w=5y_BWNya~5SM z@U|3nJe(^}Xu&sft5Yt|xiaJ*dA2R&&YvplHs3ex;Nw46)`|CFPy1!%5Or@B|4{rA zD;wrOArNLs`X!$$SJ}px<-k;_l`Zc1YoI+>j-I46KwcE0F6YWclBLa3^zeGFOahx` z^4hQ8RIlxZGw;djz(jPeyqNyBE=iSSP2N$^%y~)auF;W0n$u ze(F^D*VJ8HIZTvM2QOAyO3|<&?SLf#0reDC{@~Ss zXHl6;eyZ-IjsF0TW9S8WJkAYtlRSy6dSj+YZD8puHL1V65a|t9HbNuVwb_^esa~#p z`JP{A=xYk8g5T@M1{W|7)>Z%YUmCPZgpITQ>%TP6nQU?=wu&4H=LSG%d9?#j_{Rp| zS9OFXOf`oF#eh^2mM}}vV>efJq<#;W32;@2VPN%K>z^*mjahO9rovO@A-tMq>AE&? z)gUjHl62omXi3Nr&R?iL;q{q#Z75(+A>aM~gfhMPI15Q4w9PD6L zyIGMX4{avT3tSl>DAtThwEGt{gPk zKVVw;p|W{+3bIfH2m+KpaQHE@bO@qi45HGDyt z@479+bA3aopIi81#DA=X`mOM4X7DKQH!$F4SAb~mbwyZqbL?~r-;sl5Oy4v<&&#Pp zZ*2vf<!@3cT~__LN(VdjB=U zpqpV7`N9593BKP{rkmfy!=87ILvc&Ky>DRy-aju(hxi2J>M+33@kJlkIv69u#voN!HUZC`R(fcVht*pcg`7P;P&Zyh|6ZgMq%ASFj@QJUDVd1kH z;D`!e8SM8LQ0YyyjWXmJ!Z4<$hf&AxTxYgNS-W$2l&`JweQP#;wu&WRJa6+82V6oa z=gVBK;(Gr}JXKgY6c7~nZVP1EAilU;a zFW}K|CgKa2Rq6v(5`vIG`I4=o-Mqrn4q1y@eWskL-KiwOUOu>{sEId}*4Zw)A7`~y zYNz@{O1Ex2^^hd_(%@`NM@|7jx0#}5wftB;H$XTAqE6@P6H$3-*3jiyLnjF4MZ!VX zPuY7AGv)?7>6qmZg(5t(!<99RYo;Uq_`AVp!mYG2~?cN$_0hs=5pC*oiD#jW%@OgYI*u@W$(R^;>%eXuJUlb z!j5u$seC?FX+xReZmHsT4&~D&7!!S?spHXNrP#q<8-8<#x9C~g8f1K zwq{NP(6g^bz=+-sLQHkCly$kWnS#2L!@sZL1!*hDtHCRQwt<}2Y%(W;lOu_rNiW|8 zS#oGEvN6q{aWo^_~MXv(!RN5)SZOyrWMTl znQhS%!f)d(hU!HC5n*x6vu)4no}CJm1-0KtEkd`NeS4wql~`x93?GV>jDO)+=+`L! zDz)4^8IFGwFoP|`?5^%J^={rp<=;>xx8iQ39GDBQyMGpCd>X0P*=iFd8v?+;^I#w6 zK>WTnH_!A3p=DfI5!=ABhl#bGg+;P_e4RAre5~6IRrF&oUNVfTqcf{-sS5_Sfo6RtFWRejST!2+g9jk31hKv#iOFSjMqS zPt_y^ojEMLsB9OrUHRRp(Ff&a`)ub)r+gPqz%%|az_J12P$rZJq^-+b-9 zG@Aq5Q}{u!I3B#dhz7a_u}v2CKCbjnEOA%nMHE|>13Hcy5fN{nFZV*O%ec11L^r9c zdv;9)t#9AzNXiBHAtpWZl7e%0rOka`+xiEyKiJeZhF6=Lidh-we@2pZ^LWgXw2gLq zkW70HXTr{bUSN(wmEy$Qx*u?y_;n`zhR<6yq+CsfIG&BNoQT=SwSu}yHlYvsVwdb! zFNp^V6B&>`t3rvXmCYq4$_jQ*j=&xV-_|E-Kv--e(ZHF8EZ8js5r_KG<8@1%MM+_J z^xNPo#3GOAa3jmOAMgg-5)jzNunTNAB4D@Obn80AI+<-|Xu!Db%G8E2$-At;;&$0q zJC`l!`Vo|Q=uJQz+Zr)|d;Td(V7-5bsCZ-_F9Xgqw#8OTUh84zM*wvt7L1cU-pLbt z!P4}m9~dKdmp=DCdtM8oL@ zoPM3RoSv^i&+~&9Xa>?R_?>N*^MkwS3OLbhm-Bgt(CN|;ddcSF4q+0_x}W%#LZDXhG`@3)b5LY-;eltlT#oQjQ(=Qd!lz!t;1AS*h*>F;KTjWB88 zwpn~EViws^`lJzYlUR#tee`9PIi}rtvPA6-Joxi4z*O~5Dq~lECokxdTX@hTNGlqs zNCCwIe}*Qnh%NlRE~JXQ!kZuN1)3iympeK4sALYPYoLe3?Jp6c zni9$T%d!*6(oWvRuKJLPon zCEY5TpsaP5eBZLo3#;J!DV>fCTGZUQU_FcMp_ZGC_DaT`P%!-TUieC7$)Zz9G6%f- zU3XNRy9^T@o#Us3BtElHzPmbYnx*Mvtp{R?Q-dn>e-j}KVTN<{EJ1p+9O*hFaWUj0 ziDFZp>_hcQ=X?Pr;*tCL|6iiD2l|2u9|(f`KBasBMEQWX2NWD8VK8EeF>F@?sE)sO zOx23N%X(=F-zf+1N&z%vq3o1N+z8}IvX0|1`bj)2r1 zfE58ynjkf=a$4NLT%rN!xC-E>dD@SJd=)h5qISrH`(y~3BA7DtJChDIt*)Lx$S~q4 zTHuM^S-JMwjk-}GF5=O;WH3BuLzr8bn%>T&P}#f;ZkDLb;T#?#+jB>IdHRv*59l;c zQk~CvH|%au>cyN?2Tm;djcx+8Anz8!x>Mj45K|5xa{qDMwO@#2IsRdvXQ&`s=AFAa z$<~QPt!jWyY`c(^D&Ic-xnxK_3bAUBnH(GUu>xu_F7_P;r6mCwu+^*(y8En@`f2G3 zYPXRSpsCC^aVW@7LEKmFOk{x;Ypv=Sx4KytZ+9=R>Rp@)ULg0GTG41USuHA?fZ@}* zBZWRCwcD%;r`J=WJ4Uyw<7nEGX1XjQ<2^W#AGHS+EzdcS6mcf0V~@b<^k&r|G0D_B zAit@;e-wRQ!_$*&w@JI9{;M6pfQvok56ozv-{OFi+&I`-HlyB&DHl<}U{F zf*!fz#Mt_vMd4jQ^!0u17(tx$z1}v_X|*GLBg(5%nYsT?)ZO2Y@fE8N`k*FfzIcGq zUXRq@K?w9kK`tn$hX|Xy?*;E-OIjsBO>_!#VCsEO8hg(C^BU@f7!p6~1MhwMQ!sd# z(&OFJ5qf*-;!X_zlw{$G1I1T=Phg+Yksylweux4eS$I5N%DGQiF^>aWlD+U3OS>Sy z>YcB>e*=*{G_?n!qOwyfb3G#d&cci|Fz!v7Lgm5bfR}uBbh57m##@^M)|PnlLXLZv zpm`N*_n@ljsFZ4M-VFE}L#)-#bYZ{*d?TL~_?#E_#6As!wUX5i785^{_YIn|<%S#C zzdwI&9cP|)>qja^1GFOj8CN&*TSI-8rwlhHVS6Vl_aLdJDP}SF$xWdR`GO3I_=huMxD66blKpc+8hQ+G70d=h*-~qJV zl`zA(&H;k^?zEkK4EK6x2IYOrqFWP-2dLE|W#D?Zy|z|1_(ju1d>eW#XnbtMML`uP z=WWSF91_0-1Yvs|J>0Ggy~--wp%RTFszQBGT{OxVZ8gRLB9_7lhE;D^TfsPLFBtq^ zDaKLBQX=wcM8v^NPo4NG!0Z~0QL<`Eo7v*R$f3;Uc0ISI6S28wf@$C3w(dWA^6mGI zCLGhMuP@Ow6yhxS_6XRZpJsW35iaV))3Bo*%dFC4YBmHBUeW>JcZnc>_%5Fds}BP1 z(*XC=TrW8a&?`3f8#7l>e(RJnW@E-n8X$|jq-fHW{*3ndyEUnsaVBELJwprL|8qCr zq1fIJFS88%71Ql9D!U8%ql)!iV*8}01XD@$!%sOK+N3nNiLofjeL4tH(a|NHJFdHK*?98XbBJ6`1C?#gH620h>45Bhm=uOX@Zn~GqLYd;Z%?Iq&K%D9QxsKTb{6eRsV|F%4zFW}uGB@j z!;^3f`|HoG7nzjmb?7eqmGmrYQ2OL$XNgm+?!L1p`#5Cvg?7sScJgvelMabHn{eSM z@rU>9-$6IRVhpOqV4i+Br92#xFAXNfjtOh|mf_v+GI|sVPr(~G=VvdBNV?WZ1L(oy zz4XKa=J$ltVvx0AEH}Sw8NmB*j!8G~%pP~JKvv_`i3X72qVrRYkm~(6Da00GdxYOK z2Z4Dc=4uE$5}vSwefcL$q>1BUxY)k>xfm_(iKMAb7bUD-gQ*|?BHh`)!>J^_0t=cV zu|h1GtK!+Nu=;xiPs^Yp1wiigLln8W?fOGF zDXaUZi6C!QNl`EODoKQP#yglA#j_~yQRMs9l!1Z@qD!i;>*rnEiZpV~9m76aY-m1QrjR&2-jMV%cyN79;h| zq0$<~ht(+Pxr`N1@v=Q12zKkkO+y7&Wlpv$10bN@x&PoNB6V8N_0oHqE9S2?=Bs^O+(-L3-V-Sw!&~fgC)!nqIv*uvEWm1U$2in>B!;reU8zKmxuL z)OpF7D&KqSuz{xtY~{P3Nr$IwNlTFEdqwP5T;_Dr`^7}A2Dwa08Dc*$2%KLJWYeCm zbl512drFQ$a!yGEW?<01{O>`{!CvdbwHi6dG1i)1iHD3INLa=yYt2J{suYT77pI zS+XsJsQZxQ171mf=B7QMt1#Y8vfl8{k^5JEC@4wVbFU`EW(EynV*r(NlQm?@i0RPP zMfSD$DZ62h2(FrrdlmI6;{c)Z7z7o}b-F6oNxMFTUhoafB9d`X9kiMFsdhh$GijKw zEp+vnD+*6i@&`WFW&3!bCi67X0u*w6r7i{_qk~*W_f{XYE!<_P6nReG0rvYMI!!xu z9(fq2o+Tu$=ihniVqr)=Hb_AI*S_&i6wQZJy_g){1*%Rh)MxWG(d&e62-MBK_t7 z5M}_~;v3$3nf1V42;^eX;8Fpc{Qi0h;bjabN*%e+vI@@00$SL=QF#*()ed)HcAO;G z9~xEVsC0AN`2@=(LYMfKu{>=QuveH?o#l(Nn>p)XSD)<&WOjs{hB_vmP5>+p?K^li zjTlQc?ln)>JkS{!ye(x$hL`22B%wsK$u=q8%s_WybspX(zl-yJwN7MB2{!x=8;4x) z>cJX1A-FI(xS3O~rxt}3xQKw_^c;0?!D7yZ{N&g-@wmUXF-h@vH_#C2 zwpJ54O*r`>>>%CwH2ab`l*g6RfdbqMh{yM$Y$58#aRKn$>GX8YI;;JAe1G;YfwVD` zah0S5_@sTEP^GR#UtWRNA(F7y-N_*feZS^aR&Ms5F}3K+@ZC=Wvxt0WarY0X)%~zq z*B$*pnbs0hrbX(+KBayk)&sgu>qe5CmisbqwyB|dynfnlHN z0?wKW^_>Tm?ALX;qp>cKcOvSb3T1ZUQfqKgL_Rq|s*Vd!M9toP4o;f-Iac`7XK^fG_K$o!_0;uQ*R%_fCQQwoo-)rThKfM~g)r6S?i=`j}P zV#2&{QaLGk+_?c;qG+wOjW*LwFRfutxWFmh>d7*Yj_%Blmx|Y1>Nreo{hq?2c}1al=bGoWUx?)sV^(BNfPlzJGNAb~Z6rP31M0+;V&Ann*yGJ6r z9Q6P_7iMAu^dA;L=T%hTlfqx`oerV%>{zF1g@#3Nv!aGQ7fRI_RCeT(CnBim>7{HE ziffxf)lcXmJC_yF*tN9TIVt=?Ni#hZ_YGbk?=&4@Pv@~2t*vo3E|3j8ch_WCN1v< z(?t7|Zb)p83}_NR`1n`kTsEMKPJ=o8DGkJ(X!>Z6AMPcjqf|TMd;4&* zK<3fV z3`ifOnYtyC0~dn!?^TL0{@0WBoFUmrr$yg)6q!Xoz{(w!UDjkQ896XT|E;qvfbdQv z_)Bf7#vjv*eu7#a&=8W8R_Rl*Z!?QVhl7EL>H79#2}K7xW@3cSCx01HT>EJ@0YV@& z%xw2*TE@@AjGdCRjpn@;M9Z%wZT=+DNCZ{xj>w~@4aB1{%bJ=sRRgZyx&6AgN@ zADIl$&%m(hvl@f^OMwH>7k9y}WOZ;7B6x z$|?PQxZm{Scd2_KI$k3|DVRebTI86KulY-u?|y58uJ`>ZJjB!iAzM+s`{naP?^;Ez zd=OizeL0j{z|Pv4q!f+T3GAK)is+~k5l&@3p%jrgB4wKBl2aqIqA-i zda>p2zN{uZC2>D{w6QBYZ(Pf_92&rXXXYfwA%k9(0Es*|hs{fN3~Q8#T8FN5Gh_t4 zIGsJ^cQ#JDpE^?z5_9s zi++i-*~R9w_%LlFTR~CP*r0NvJ$KC~K7m=1qMU%?y5?ANbC&&(#yD)_j+eDLaTds% zY4xzNZpz4PPunWUWAtg3O>0xAjlF=`N6q_bK|3)=i{8k@V995173Uf#u%CN%q@!l1 zEI&I#gK&Ge&lQ>&6QI7mgAPs@`xp*)`aWWH$S!o;Stswe9V9yDLpmg_a{|o$+{E_H zy;;1On;5JWpT>qMyh6E4zJyO0;?b?^pt)<^G5R9 zh^JePnaALAskDyXmV6fpkB|8!Xz}x%FD#-ChDQ5!=*U5R5vdagcC~iz%!m~4jXgRN zWon&HahUJp4^R9B2P@OkZi5M>M^(xeZNj;6x-ggPdXerbZ$ z;(-_J(kRBdspwRTSrel;G~{E2gv2hE)?4u~)eHDTh{XT_p{MWTpYoHW1>2YA%*2kZ4+F=NqAd`F9-#NOV;=K&M#Jvo2z4ME# zHFgVp_!!NgCYkp%*tx@QbK(Ot?8ov`0z)1fxSKZ97Am&W!_4f{ zb!!=tGo~kGn{IqsK@V&?Y!p4;n)Y`-6baD__b5jEf^GdAS3pfh3@hZwF@bL}zDEEY|$Jc6ARQb-kLF%wE_=Ia=U$@?1zpv5{!H<{G_3bx@Pz7Y|0KFm}8#p}G{i((`S z%sG1)Zzk+%VJrAozP+*n#{gMCroX5m7q^~HIi~az0)|gZ2(aI3Sl{ldsCI#)Lp2ZC zPB5CZyaZ(w!+NdS0;0zx=NR#tXXlPPK$OBh1oJMWu1N!)AWQ{zL|8q+em^GK#2iQ! ze0fTl#ihI;!m!W=K8GQUE9FChA6nq7QSOu|SmLRpdA8Mpd9;-{+;F#*06EsHxORx( z+{|7AHH?Y7@jVbl|I*z(z6V{q-7$gj#m;x+4hyia-wbZ`irz?oKKVBP3k^C9NWTOy zLfFe|kUe9M&_v8;?FP+pMqApB{GaJ?^8K8N`7s91sV)r7Ds+xHN`OPX3XY|yBntBZ zeIdE@>w%q7xR+l&;CMmW4;TkZM8e9e;NcW@#A0*yZ~APm^8k^t19ccUy19j|ym z%|`f!++hb(N9PGsbQ?(28?vn3kXH3N)=ubnQ`;1LUUo-|M``*Vcy|b_s_Qr~w(c%ht?b`mlTCq{fa}Ki z`rMp%l_j9dnW_(-Yq2d)HQ$}@smy`olAn&`&R6%}YnDkagP%WNeHQGCq5-=g@5(09 z4Erm)8$(q5Qm=LWor(pH|rQvV!O5Y)*R4&nqKzl_d) zb@K>31Bz4vreuPWaN-5qlI0n=L$szG(-#3K;YsG?7sQm-XWn&?|)xbCup^ zC>)eid%OC9_TaB{Vqg?*6XT#B$g;d+LKo&{$YIFv3{D=21t-sEVuXFOvf>Rxh4qcYv(xyE|0R<}wa|3G$MCIo>OO zd3pmnBL!HSIF)tzMEC7a_;xKHJkAdTHumn^z7dYzf4j8zfW!(taO44ly?Ib5CUVJe zm=?i4dvej9jC`O*)vKvr4}b6L#L~O__`*1>y>Z4JC7;o6H$c$kVXjZ8WE5c2*__3W zi6ktYN^qLCLd0>%{^R7UJ1dLzl`gp9#W&ctW!UrNXM+kFQ$DHb-QJe~&cvp1&B?>( zZ|Yk~b8+iQleJj1O-i#&iaz=FZQEKK>7HHFuF09<5#QA;PuAY;catbM)72G3Lggd& zD_=qz?&+BqlhRMhY497Qn;%7V1PgI<8WT!L2kaN9mM!l;&&#kw^Bk|WMFSa0YT}Ay zv`JZH__N8SIH>^qX~}a_X~z=+a-2ILDd48^`dmH=k_T^is;A2FsrdR?I_I;1G{Zy( z=-MzmF*`LLUT4{W*-|)m$lOcy&nq9@0YxSi+Y8KODH-+Q zmQ@fh)tB)GO?T8o)l)w@H6kOEZvmU_;1~xf+qfwNVJuwFoLII8#H`i?RC$*eJx(n@ z-JEANX~BJIaU?kM)K!q-8VRP@xrtEXDI16`8)-B6^4LVha^8~KSHy5``IUo_x)$ zaCGty-U9cD#L+V_kWQU8Dw!KOFWG0vxi!fY7HxM)QJUFV&@^hf?)iJR>B}4-4`LQH zTzs-Bnx`ZFYeyTdxH414{f5XUz1IIU|=o5j-$$+k5&6w?lJ$tho?QfKk8zlakY-S`W9ql0N8 zZ$QQ>p8zi1>9}lW>HGBA$zx=Pu})qVL!sP?=_2MEdnP_|=QD09WQ@X{;eF)@xg<_w z9R*Elz=K0Sk>Zd3O;GnAo$ixN_uf$i@reni0F9P-OAM;CY`jY}|9Z91EzeX|gduj& zX>?x~v{{;n{p9v^xkO-~MV-b>^-Ey+#_67g?n^w>Pm}JANGyuLVC0jO@)lYC@5y>%Tyy3 zfKgd_^COpuVu*k*^L>@3|4o`-v&(b)j*DVX6XD*1-tR<|3zWmZ#0&BT$8!k@352?* z7cH;g^)&e=2_C1eK3Adh@`ag?6VZxAGli?61W9_R>-O!{Uk{qq5kzCff`44yY!B!0{z~EE7!eq}K0_}kK$M^@{P=WTxFS`) zhC5cEpj1XHuY?ZxoNK~@Ij*is=@ZBdZ=4`C?LDU*)q zRHvmD`B5I#42tI}`$47NxAkuZWuyzhO}38aK__No%pHlzxk10xW`;p~H#@G7rbPv- zAprCoV;0nx9M`l97|Hf?Dbv}s-S&(sKO06Ok^GFmvP@rz383UkyycLFGukwZ?n4@# zbt0V3eS;mB#q!QvfiFmI?ngd@4kwXGG%(xXl;1mw0voHaW|2+xqDsVsu>tO*EVJM< zjhiQ<=3!G$p6mHE5$rRaGu2PI9&JNPBhe&2Gey{bm9PZdqF|Att}0HIWacW;f3yT$ z85Gn~y1OnwO+)?U)y*b2_z1v#?+Qkz2f9*YbD>N2`>hnAS%>?pkK$a0L`z9+c`$z> zQxb^Gdj;{WpRp&G#8seRiHn;=kM1X!NMr1Wk`?)0KiPN0wmG5GOa$48;Bx)+w-L41 z=eEBw+U{S60zXCZU0?CJzD&l4#~IhBBq{D<_O=(L(@n29%N!Qr-wGb^IY{@&b$hP0 zb?B;occV&v+T>2{y}#@5OT@n)7;wz@rLsney`+hD?eoM9qmLx%<^JfHC@DL{tC51? zDiFYBxC?OCA3@Z7UL+Aku4{|Gh_xjsi|xw6ugC`&`iWa9bS6 za}>B&oKm+F`(?obo2*rm({BA$HwkMpIBTvg4R?dt|->x6?7H zTt`1bft&|Fa+M1La%mNin4;LH!e~*2mYDg%Q^AS~JR!T_=RWu%H%%b6DZWc71P6cH z(?P9m7LgoG2&C1UPMrn+)x!xF8x)Puo;xG@H7|f!0&dISJ>IS(f~mk~JGiGsNQ+JK z@zGsy>Vg69INnPK_Ds44qL(Y656A{7`g&XmN$mD!sT&(tMOhhL;`bmuT=}|&*@liD z2kl{|Ps{20go@3caWhTo|47bHXIvwK&gk`hx{7u+M}F%(jF}!804|)FhLyf74!+ zs52XSMRT0+^jP{+5>*LwVv-d<9#D?cWCvH9U8SA7Do=g#Gx?!bsciF8@_mY!o1U&q zf@7sGA+gWbbvID9j{8JS%-L}9#X;7(P$)PZ7pTaDz6wZ61Dm+hi<{VHy<~t7dyY9q zdBds5y_{aM`_^3a6WdG~+zNr=tDf#)+?^G2b<8%J%oCsMsJ12DK%I2sF!Fokf<;75 z;!Dp{?qpl}uNTwx=rfD9xv<33+nhT=EQ!zKbm0uZ8;G?&k12AshZ_qQ(g)6feS%Cq zpLJ$QAtsgU{fqtsoKy$6qwjn!fLhvibYLW|_eo%<=T0}P(`m%QpEnlRqu&LRU*rYA zRW&S!T@nuCv?r0mcz^a|v50Dx&ur6y4|A4?*E*I%iG4!zIzeFf{xA{n`1jLLdX*Oh zL2A73>;gR^+ocX(Jl>Plphd!F{62ua?EL{X$kedR3nawPw`$d%2B38K_Hj0HSiT>) zC75QeK^SQ7{Mr{DqcCchB#c;UNCe@4x6K{*-?i)Q&L27^Za=?FxL%-)d*d$H=B~HB z4*&_&j^C|axv0|k+ceGL1e_M_u7e0#_7r&m`P|ginnVq(*f+b1G6U5>Z_Vxz3k;VV zwg0Pp@XtV+nN|40;u9HIxB4{8ie8EkHC?XUM{2p@wyO_)7L4!x_A(3C!>pWl@ZL0w zuYH=k`sd&tgKG;8(gUH3+9c)nu%9%kwr$Jc9_N)ajOa-p#Cq}A%zkn^>=sM72 z-NKNpRi|pi0g&BknG1}$5(oj5?j{PgfGZff2>S`HZcHWZbZL*40KunANm2tlHNw5x zE24hV>B2S}^FsuFY9IJ2equoy?&rE+Q_}d;`hkRv2s^ULrG!opdNtd0jNRBMq&H+M zDqpvy`~GEP!~?AI70kQDSE%#^7M-AO48Tp}Jr{h<6Yn|e%NzX+Q^^d%4>kl>-(!#9sDAI@BnoPX zo&sQTW6)A?xlayFT(q`}cXJY@R}XV+eT3D=H+VZuYu1&}%-@;X{^@(yafjf*?fLiJ z)VJFc+_k%v>5W{^eHZy!wYo>(^;XWi1jw4|y;R{MtB&qg(#?2xt-ID~-@;@zTL(^lXcF7K!*Z_By@Xl`GG<-8m04w$R+z4mo!bzZ#RUs6ASFYF0+ z_qGvB1K`?f^>>|=TF?fOn+N;^n$YHPdf924OQ57o>f&h@B+1`)bJoYtq(TLKm>Yi9 z-XNs!=Zplowy-t^XWJ^+2jRPyf??q@?R`g;7Kp8xttd3g{0mW_QO?AxR`aBafbJxN z2IxgZqFJX@53&uJMBb4=zt=2~vDlvmdP=4iuJK5haOQSz0KDK{|9gq4>j}cXr{>-* zJs}ABdAjH|*p`}~sy?qF@4LF06Y;(D+B?V)8oz7H605b%wFT)G&S$P>BQeMg2_w=h zC<+Zny9J)SAW-;&uVIUymt-MOnGMA6H_dgAq09^KXz=k|w(lF3SwPVcFOe0f;U&x~ zv+R-;4iAu@3xhs9_TLjff=xQuz#!i136e07(XE=})%k^XK-Hg603xchWIyBG zpF)$sA&d%Jp6`3wPTrkIqfc>d5^KrmgsOL704OOU2iBN{($hQ=r9L=2FP4N4^{^IQhei&q=0?|tN0~ww zi%D6iF6lC!2cCdsJ}2tOqG2AMS5Ao{s=yvhri(hu0bJCB?|M;-Stb$VF$?x?$BkG9 zI)R{f-`5q?hM;@&)Csg-Xm^yBUe%cp!JPQ#n2`2Fi8Y@eaHrXSxE6o)0OpZj_AVVw zzmj04R<oe^!vY88xl&(9kL=7fGo?DPOZU*5x zTM%lO)0dg>(zXclkL&CubiNCRuI$)~Z`~54L#3S=_G57veog&wug^9mX!wB}muBR)CEhngL2z0fU=VT(FckS60DD5KO z`%mHEfm?pQ$nT};uMAw0G)y`fJ(S#gi1Yf>vYK5=sX~&~lYIrbJ7cwZ;hZxmMgt~X zjwW84XN^(3=Yf*D-@J#f$ap2NuT7v9lyoHLT7;-tLdo&rFJ44NQ(uewG(rljFnj)$ z8VmLVIe$Os!_913PQbnMPXy^>FSx44{j~%iNT(svi}!-8&+(+hgaa;j-(-i|&h&0c zDS>^D4VRvL?gx8LhkY~;g?GtFhpjgeCB*9q{=kO(@ZE%hJF1z(;aVXSM(1bol7M1v zlc5^2ZT(AV8Q1tbj|hs6x8SgMNZ@k&bxVIM$szeqc^M1dEwV05gKbPNJ&iIh?J!;GStgUsbbu1?3>l1;KIW$`x9r z(QcUfx7klgRc>=8!|9;%nHN_ui$OL48Ge%U11qu!*oZ&M_W36F+=d8_jU}&vS=Qyl zd@PwLk<{&tZ=FO|YQ4LXef|6Eifjg6yC-TWXwf7onPv_8bD61f9-$4iq$OiU7uq7k4ShBigNaM?gMY}zH7^hP*KC$A zhEl?8|Lv zsAxQ)a`9(jLA(ogdpY#v0a9vkHMHkDwElgg^#W_SgX-HjC>MR*Qw$`_a7}z8<+D6V z@O1?%_E z=lkim2&eFK@avoc6&C}r&=x3%};fP?ypvOJHjC5Y>DaBqF*=?}aB0EU*yI09Fm#o|MY7Xu9?# zDP1?0|BjTl6R3m>J^QujPg3d=tx?qTD*1Mnhff}s$QSeB`oTf~&qaiM6<5Kc#3}m@ z6P@Oa=p6Q5W?MHaqa2x{eE19gV0vJ}E^g*=Yfz7g&z4wcYaF9fr^Dae9w>a5@QvPS zH%b!8n>dfYk+1jtAru?{=5x~t!V_Rs#&A4RDzbIwQ-Hg5VA*v$eFXKs9RPa-$!-eu z9*j~woK8RPg~5Eif>WqPit!VlYF2QJ%bCII7P;10)WuWK!|S&L_Hv3%mXnV%Wj-XP z!-rp_cEyFi3Br-jX0WjB{i3ht961t;*qX6@GN z(4gEq9^zYU<3Pj+)Of+!GjwpdM;Utx<8V*ma8IG}6{Z*_T)~#00Q^#chs7+&8ga2j zeGq?@A4~>vDS@onOkSX5xcArl4xj(Dlb?BNO%7DZq6e6EC5QF}zhx%$!GY?&a>yihaS3b@<6(Toh@by-2?I0r z2koRBU)0alPMnN!IfR3X^L81g!^po?Pi2@Uq%ym?!lT~Jc)z#UHB)zRf4tfi8gG(2P`$Q$n;1Z^RDO~A=vKp|7u5+`A01{eH}OS&0!;yP z+`}(&vmILJ<|-c=Bz}8j6SL5t`bsoMso(vODITeM`6wDIAu4zUpVuDLDX5rxSG(HWlDI(m}#rc2eo)(JPXQ^vxfsGo}F zo>#*Kj*yR`9dN1FKuFl5$t&4Te%By>kQZ;Pszkc?Eh=&87>Brum+VXUhfIxW+2kNK z&w!Hj1qVjwA{#1YY1`#W(!q8b?FYwh7?^T#mjFeQ7vZ#BP9-B8N+ymI!H-j4pkqF^ z>jA{U%CGH+5fB z7kcr^avN7p*$=AuwLIUY>oDPa-&k8t{Wu&_t8^SBvds z)Q_HyK-QerFYcMA6_Uc@`{mW^qHfYG&@F9Wx@V|rF%CN07lbNYHJb{Ix2J1T;nc@0 zkVIg>Pr<|+$%9HT8JfHRn%LbZWVgcuC_EXrMhm}&&&Q9Hkt_l?zj8og{YG-<>CnVQ zN3dim+;)bBVnMhsPqh2|EHRymmIy~bLG1aaV?<5lkM8pRBaVZ9b6$i*biOE%=3&S< zs&D&ss&AtN>)UXnB%XA0DF)_}1fAY;dU=PEa8SvLcN5*)v_oH4zd_d)nL3 zJxKa%JoM`aDEvz|iF{M3a#u^ZR4+a!lNt#d!??1Ec&x}=Q4Y-Cqo105sMo{3E;2ht zJTOaHhH%OBrQ3RwA$n*(9}4(dY~n)DmVKZp9ALjGD8r3q1SVaijN?nqo}&RYM{RX3 z?EL+{Xx!=islHRxQTNwfT@vN>CX>yZ(0RE#kFt+>zsm?wkuoW)glZ%fm+q?v;sz39 zpHc{*T+^=)e?0734+4RwlF7yoB@>Fz*YR(di`+AwB8j=zpBssn!Y8l<1ooEuK|gwK zGy>D$@m-(l`o%*xAA;U*^Lx}^;1eH*dZucuf;W3 zb{zETH#<@OYJV=tA@7Cy z@hmUBnR35m6lR%Mpd%#`Mi%6NEccr(I^}1^DAO-Clj-0E*{&wSF!5DF2szCQU#^Po z%yL~y5a!ITmxx&z%BEZwF(zJ$Zd5FcdgdUI>TqK^g~bf&_7Y=W`o}qdFFt-z+II%|>HFvVyC=m(HFzBQ_~x zX^GPcdzYDSONq5YZRigyDGnxOm-$r-ylqeLvyAH9Zq@0v#n23##|~R$ig)P@ub{?k7bz zi)10*y|GfmW&HqR<|_1X3B0Pt1NZz)U0lgY9jiW7i`k-=Nz{To;F17(X*&|K+qORy z@;6$ ze*gH9v_%cL9O(oe-zYpVqr;pQEdJD6;uCA1dXEsQ>5A@WXZJ%INx#jSI z7y;$}o!Jwl&M1h;yW;m}c_?|$r_8GM{_Uy22zT5r>m(3wSuSlI#aCo1|nsFy7U#iwXjss-&)1^i5xwg`Pw=-3$xMwtU zbpy=+`xGx7QHgdIlg*x%)x3ZpFQGXv0>w67grZmjGi4&Au?+!gd|ih~i-$*Y#B^BA z8!H$2Q_LEbEGoOsGjdgo0;Adv`1ETSU>2r|N$(NbDcYqm2N%@HksBoaz0HhsQGU<( zDS%){=GePSP0_&2t)n~cL8C)`+N&AxFlzGkOc&IYhqp;1-p#qa$et*MF!_V1OGYFb#Y2*RM{Ck0K zL6~b?3T>aSb2xxi@_T4ygpPXvtmtQ)oQehLx=m?N1I0%AU5O?ojROY33t*rcV@zt1 z*k0au1kYyB+|(HPm^44(p@7-DDHiOY>l%#|1yd|c7Eb{l@;q6AF0wWRQz8f`SlhD7 z&Mm1h9%#J?tSrE9usV69;t|{4OA+P$h2af*4%0i_nMsP1SCERyyCi;@y z9Z4USDLMmbl-ncmI$nc^)m3>NxWm6MQDBc1lsY`kIuPAqSPKxC18>H7U>WNb%@}s( zCx@`xb3q6iO&E5Z>*3;a9*3|72Rw|@vgXb#V-a!+%@&mG#(4A8YG?N=GnJH1*CXDP zANxJV=|7_a+8fziSVKU2tOL{h{)7R?@9Xf=%s~*CWEhtU4^k4T)_a!3*YDskWk~Cc z5j9sU@hTf1{zY%pd|_8-64vGN-dFDdQ=G>|;S)1E1{%$ddo$04t*F4w_O(YsnnV0) z+D~(9JCMbV>rhZAGpwEhWTq{GIkKlnt;gmP+ci9N2j+B_U1{%)Ir;8>Mdo83L6uJ# z&K;=mVoPuW4Ds945ZYYR=}pGN{8j^|%Q4XfLyXXca8KW=@#x zoZXM8PT;&?sAA^T#Zr!8H(>Ub0&C`A@|$^TK^plzTo3(RizQd>h)^?PJxpv#YZiV% z0ZkX}unNAQ9`gpNGbi`a{2s+acEpF2u4?Q~{hlIf_|bjNVy!Nw@4RRf>;b@8We)Gi89 zu)#1G4t~>HYS0nP;WlGpO;M%F(AtdJh?5s%ImLC_6^DQK@(RkX6NP#2A<99%F!40@ zo2f=pUx$$IIs$0uC`-2kY)1j8bz(R{l<3ir3K~IeIDNob>nac8bL+iAbr+w3RVN?O zs)vH>MuG|nqFRkfs|)Lw1;LV1Z#gPZnR4b^0mrdVSG1j&+%7@G>o>Me7!cKJ!0)8% zmuEz&x!u^pJxwt!R9zA@mn?#YbC~`(PCI%j#dHD^(^02cn1RPamTBHm>?&k%&CtBy zA8=z_pLpT^3e{>LmDS0<`&$*x~n4 z)jiV18dU!M65F`N^a#H(S%Y95whtk~COO^+4rQ$X`=W}~)oL7gy0b%Gw<+veIIov} zdNFtWc_XpHO%^DnDe%oXsaiVAG-PMnVhilLCRaA0U&4qC=I|iM1iA`++nc0I+V7EM z9`lb!v{r4pZt%St94}PC$+ve0?NUbb8Fo>fDS{6AbtTu_q{blxUVSGeQUE3+Ws~-!L11|cc%RN>RAGxv(u9)^sVK|zn35NO`}Mae zA#5X4R?w4~3izNrZMjAQgM#_}V_XM&CcD2e`sO-TpW>SdhQG3VvwXqt4Zgp%oMWVVj6mnW8}TN12)wSzt5Wequ0aG56ahht~|2DNs-yWXW-)8Tbh z=)}0X-K|r00^9<>kinf4BkT{8qXI>mJ8JeEVM8*jc{R?Yq*m8;a0+Tw-G_KV(v0MJLJw7>O#B@UNcILr^Pu{WQxgq# zEEN67pKrf|6yw43J2Gmc>P{@)<{%h3*xu(qDmvu}qqIcFm657F>#^yEw8_R2Fl~=m zkR181sp=heAn9D0Ri+yhKs^!*iRg+T37+A)|F}#r=J~_A$s5b6qD&FEx6PX!q-O)G zM!7lj?t<6aUIyhWn2$R*Jjj#(-y-T97f90{c5KC3WDRQ1o2-B#>M2-VQu zeeb3o-uJqBkvyJeN?9Bk@~2F1eH8lPhYDz47)h)VDtoq%#whPVr_?>9v60xPW&T}V zv`WUb?rx0;l}n3M+2|jW#(J!0@FSRHp)3*hfK=HKk+H#)16Ct|i7K2nrd88oAp6pR z4XIGvA_1SHy?c_6MNMKqUAxROq2lZ4O_|0YN}5G!}CJP->r z>B%Cn?gE6zydi2X_xblFM4xmJn23r_JB*&*$*md-Vaje0KI+><_u5* zi!}&R;h~Zdf#gESHTR7&K)&da&Rn|%PKB4J6T_aB^-{rV(IgGB8~CQ^5#eEZkcGL# zN-JW~9fEV~%XDB~f3vf6mm!!y^wg@|jjoidz*7 zih0^sMLs1#&SVefby~NIhKX+)Z$0~gx!#Q8s%QxE5jMbd-gVAyour+zAs+w)88g@p z4ea;LjXw3F8$dG=5Wz_F1(}jv=0(YNmJWvoLkn$UNVvM7p0#c1sP_BYDzt~}w_cBA z7S%|zlUmat?15$bYGtF%fy%Z#Xl0up)jCu2GVUiF*#SCNVxAJ&1>Y%{?KfZ z0#*EXgwu3mSc~hGlRX^j$3uNr3u~~)FI|~wGFW|b5UZUxONYR(LtEjHR>f&$GE%549vk2F%kOTaye3gT^l@BHJK}sX4(Jt1!5JN^ zKN9QEjU!D#Eh)km>|*eM#hnR|iiV%@PLhG08DG#Mw43%sQEUX_bhW$)xgHNV1NP`x zu;hOV%{lLhIG~Gq7U;Q(8#qEZ>2~-UXup9n>5%^l1<@7K6ujf&frM0Qi~$;P;uF+& z5T^)+pa$CvXDT}0MZcu_HD$t3GNR89|E>fyoz zzg4jNlo%?o2*iWEv)#yQA_xF&W}r!ANLjftXK?**Zfr(@a`I|SA9!EQ%w z>c;a3p?*y_$QbfdRB6JqE5tlEm@%U|jJE+SbQ*z(u04kfcFhUS_~y7LxT>qzCf(jx zWwI|dSfm2JJZ~5ThHYG>KnS0}1-><;T=9VRKKluDxJRVD=L4h*(zz1@#{C$PE_6eZ z-9J{fyEHHK@6#+@*QXCGFpMM=%uh_0M*n1hC&fLQf%Dx7Q6B<+19NSMf|)Gb#lL66 zF80K~OoVfg_m4au?UXApu%J0Wni42uI~815FrN*u9X^kWea<(K?L1c-Ju60kN#Y_f z$CpEu!J#ni$kjm@OkbR8B!~XOkndAt#s(88uc3&CU;tvUAp(0*yX`Vl*sCamM40+h zBH;vJXZJ8K*dL8|(Eo9}k|jePgVpwZSCs7TjJ&MlDNv>kQIEK~(`v!KDr13*vSQ+j zrA{g=(w>w0vG;}j*iIksXhiJalNMzE?C@9mZKLmzGC>C`=hq|(hflCuR?2@98yY}5 zYB86nw87D7gQLoe1~NNdxFWyhsbDaTw*jvvv4MyduHDq0eb+DCe#Os*ZBGGsvPl{w zdqkqDE2yy)eMhZ($Z02dMLz70ZBopE**NLYV?X}1E2Il{KCV#`lnQCiWkCZX7VRQ- zdYfn}%G6t28njMV3jAgb#Cf`0DDWX=B88Z56EgEG5*sQKj4l)le7}NTFYYPVd_Y@x z`hf5EL$$DDTr5)nD0JU1q3wxCB?R)%&)i255m>c(59*mKztskn1z4#7dCxAS%T_#;Z%z7zN$zfsh_rf% z!U&ix8|%%W^u3CUPHsrgMGs@h#h2>1y{pCC?pF{0j`T@i4= zZ)yqX+nnn?6Xd=SHGzXkFI5c<%S^{s>SrQ#foXigZdK7utPc4WYjq+cDq>k&RmplptU$8WA?Nj)FV> z%S3q#wXi&o|L`O*=>X|?Qm2jiG>E9goIjARF|$TGDEE|*4?h^`JG&cRNjuDer{>P| zM~~1lcr*&F)V>a0;z%~lRYmmbKf`E0ppI3M+NC@`mWmRB$$ z2{p`Iz6+;ikYBJ<3F<6Zb)4$rp+OjEpIM88#ynMzVeoY=u?7orZ-+Zg2`^#GHa4)S zf-hmdNR)H&hokdiUb&hte6KJwXV$MU5LHg$B)9_wh9b`i&kto5NQ@xsp~bf4V0H+M z+hyC>T!NY<5i-rpu2zEb2fk^Ap>(j@QHOL9^4-6jP%=4HO+hWdsjffS!Wvy6<*<2O zi9Fe5m8)uIF2{p%Bq{ou0QjYuMi!3(6>+zdGsyDhLBSzjw?^tdHL>DB#tip%65hKW zNj`C9xmoo*!L4V3RI=N8&hn7`tOE#l{c3UI+{0g|}zd@FcOqL{PO zJs<>4R9h9>>aq%~Crs*uD0Bg0b$8&Tol(J3Rid<-3g0%jUJ^-Ue@$Yw7jjbfErDZ# z64!M#5jvx-`WO8Q8R0g8R1ln3M1mIXq)f;ecNgs2MX*|QRjoGd%&y}e>V=N&$5FNS zTd9K7PZNc;ZMO-@=oaXm6f8OeQuT;>6-S8-M=^SdZgW|{&A5aHIr6SQaZo&c*>$bF zCZmpg7;1G7gDRxB-yxuk9oeTUeL%%HwqNT4!lcX9OvL%LVzpI8txmSp=)`P4d;`C|ffHIeJQPg) zlXj}GI7iDchl16<6pCB8fCd)$XjWg3k$07bE1cV9*$yfbZzduP>-{!wotv`^fLj-w0q?fzj&g>UgRFuwxn1pSqvpOp+n4jFG@Wo)M5UbHQLQY|{ZQa8q$h zfADKepiUH;IDqfio&p_;HY2eJrn>Cp1-@k^JM@JIF*6sGo9&0hT`#EE zk!u?3Wk+JCU}t2+yh6P25$=rDeWfd91U<81DJiwh+$(di6f%JzsgAk`Z^Hk6Iy;I z2#DTZ?UT!N2lNCmn}t;Dt~=0|^uv~LkOE>E zKh@;Mm!9is9{!|#Ls4Y@GPftTQxa=LavnF=Lpr!9bQD+Xg6t$ug#|VQ$0oPIb{c

bY@~Bwb=kCDK|sropm#EJ-q9QkVTx} zVk4leRVNtG(cw%5vWqfuuW85Kgj4)0rZrl|!A&2f7NNYrS z(_WwSdE4Sv*9SmguwMb;%IjwFqyMPO9Et#+K4~YC!W2?xqMQYYY*?T;Dc^ITFJ;ZY zI7~g8g^D~|&?jxxqsfo@r=o`fC1@-LjpI2fKmy&OeJJVpbsdVvv8bnGkrO=>U6)OM zzSqM79}r^fWD=O;SMCHM$d#gk`?hqaGNPCEAgMDH!GnS zsP61Oiva{2d0rwO$I1n{-mE0z#XnracTa(j=k34{(WX2aglf{_>Y(vU38TTc%Kg9{ zf_sV1Xa+;PAQfNqwmESC2lQ1!Sw4S&!Bbjm=s9n-^~yiGYL+{97P0;f;6f`i!8 zF+(|MRN`FN8sS5te=K7hI!XB7xI$aTW=@PUk7S z{(MX?is}aeHONUqaWOj@*w=gzPO}klflLk~`e6NLLqT>Ll1D6)tO)nwF=JoO9XJah z50@H*&qcnswUa3oGHpXYWaN7ZLPu^Qb_!)hMGLx(_0~g-7vf{DKR|^MS$fIUKh*^j zBa=f-yRN%#N2;E9gD*tW(s}Xq-jl@bq9-?0stlRj2G|ZnF|f4sB1a@+3a2j-;j%Yf z!M=NSRZPWA<#us{Ixm4o({i}TT7$7ss;uvsFSJLeMWsBw)K0RalNJrsMN3SFf|Bv- zwYP(S>D3Pf?Qrcm&!()tzC(i**}{_N0bk&>!h+ln1tsEbtzR$`=8Wxqvf0S|@V3?7 znczmhrSOoK>4EH~FVhnoH)uDVnx;FD-IA5bULLwOz@8F~iw~L%n!moP6b_1v`=EqN zJ(NVB^(iCR-5jx^4s?BZh=>oR#^VA8X^DOVkli>(Av7q18_Zc-8@MM>?Zf8;MfdvG z-6WOWZxaqy&1W{CGnnrJ3g%gaz-wVPkqxI)R{b_?h-XOoSTygq9^AJF;PNP^ zqDigB=;bFes+mlyWdGqiNqsL5H8fbiZ^JMrHs}Ql=4MXvs@+6ufNxro^3vo-m0Wid z2}5+|`av0U-})su(2cU}l8t|JNy;^_#p1n$D|D|f=MWP;nRfM9rl1KHE(T4JLEjN2 zj`2+{&Tt4#a>*!%5@)~E*q_g-2?B|}9ZVQUoYb3KG#{s(B6kTxmWO*=cHwep58o-h zmPkMYXKaoA6tqRwjH%$AfK>`Tb$;Jir$t~Ee5x{Xcm6B2&SLqa$u8^C=G zMpRA0^nYoF;VTdm*r|bO{{)TtzAY65V2_naU_8vauU}Tqs>Wp-Z14vjE3>>&CK`-* z)Iu6!UAjrHUsTQxSOUQ^^BMr__o=#{6qH0vS%0VwN?k@@q;%)!%J11(Q8ampfW3ZGeX?398TjxLNwA{IDVR?ui8Xo2 zF2sYCy9MJ#nbj;^K?7Xb=cFY3F{Tx-fJd%846iMZXO^LUwL|6MGe0I``WaQpsHeIAW>dt3Eizi*(r!+CZCp50^hDDG;r zWbNZzS%tyP5*2uQuABrPVV0y+;9PlXcMCUscJTfvEcK1m^QGLf7YTs>P+5>sX2};Q zs~jr_&eCI=bwy8w_`bA|UC8!c7Kd~ZWB{GNR0+T-hj@tL!Pv0^+M&Ik=ZT zsEo7oXN3ez<=h~8GLA}!n~8)2eyHvtj(ar}8%jD!RKOV+ zR1f=Hc>%3AFGpX5@4u<;+!ImO9?QJfhdEb1$$}=`c>h$LSkmL8I{NxugUh%eMD^D! zUZfd1RNWDLDgbEt3X1AER4(aHl!0g#f`ptaN7&`ey02eW2H7a6?v zO=Uw9FNE0kdE^B(e*KpQpy64r2L=4Q22bKGWNuuYWO1>9Wm^n66q{w}SICte0kD95 zn};YJq+Yp!`TUZMBC`Ol;it-aE*`V)>z9?I99Ybflws~t2GE3JpCs#hx+654$!OE#D4y13Z9U7FB`dqmPLdGmfk0V^!y}cg7-=_hK z>L=Y<{Er5jPdB4IAh7*o1Jwa@)2#pcRRd2uuO#YP^*7?m!wCJmXj#53Rmvb;@MU+k&+%;bxjOEL4w zV8s5|fO7fDs{i^g4Z;t}g0EjS7^c%v^t(u2BCbZNT;AK;5|n+Vdxu)Ft^`ISIpwSxN#m2dZr8R6{g^%rd%uhgjJdrJ}4OW{Emib7c?l zR@nsBmKeu+u3jZfWtOV64(G}oHNT-hXeMwP*C;zqh5;L47oP%UV~ z8G{=dD_d%4myO25e)0Nc^n&r+${%!TB(za%bI&KctM`_4tWu~DZf*-4k8~y_`ef_4o zgZw~R)=fkKa%^CfS5qKuf0K`>*{>RmYT{e6&#c2sBu-3~^ZVSK<$}*Lk zB`bvBTzP65?$dLewO_xk9s(rQwu5Bip+RwHcGUi3oOvLxUsbo0uezYkWew-#V`a}5 z38LKv-fFBonyIQ?vMgL)B3nqRoKszd;om<(^^*O!IaiJ{a-0BNyEs-Za_~0GO3D1+ zm0e0Oi;SyTrpn;!H`R^qY=}d{EJK6cTseg7Bxn$KiL+20q1eFkTCzl+vok7zA{JHl zoV_u0?{Of1;OfbV0u%&frle!_r|LzbCB?%Z8NT0R^(-K;N3Q4f%gXQNNYl*1k`#LV zrus0N&#vc>;w9o(qRN&CnPflpmw46hDkpK$nkDIZhbub?uy_?cTY|arq4N85s+f=H z01SN)tn5C?P=IwJ{{bK7kJX0+!kliRKnUVkom9f&to!<9<@ZThqb^X2#sA%VVUnz6Ht)67%Gz*dH9xGP?dN`B5F0)*D^0SM><84VA#ywY# z^2L~i@_(_ivHNskY%ogzmJX~u+WU+v>dR&s8a6pp?)g0}>#Uxu4i-(~E1G29nZp^zs}_rHr8AgkWr%#Wjy*8$evTtFa^ zS-j*a9M zH!YIRH%rrm+x_4efRXZJDpP&U%i$$2qVVHw%EK%E9}iBdAf9q&4st%+XyufUF)yk; z0KMShV{V$VV>ktGk?0E@oID4w^L21h1D$JchnpaTEbC@j0^dLXgJ&`wcIovW%hVhjAKaqT zLFVw%mNy2mxB%GtDdZdQ?yKl z4|bx5CfRPYc$4Bd=y0nkcS)0DF0Q0{aXC1D{0iMln5Kxb$MeC{3UMT;XqKs;gAX>4 zw!#q|z6kY&c(B(5H_2FjuFZ=aseY7~fz%=ttgPohV>96p0p#mTd4;ye!z)u z)xWmH?=_~r+4xeeem-j+dNT)bod0&HaHDc454;D%tyUSqdFcF;u;)2)h5pYk^IZ%7 zoS(77eTP~eDC?p>u>n*`&WPS zfc*9s?3@AKpmZ9VUAn+G;P8FcLcNM-fo}!3*SeVM&bxV{{_KSnKJ3Eg>KEvAvs2sX zxf?y%TD|4MUvwJJp>yzM16~3ChB)xS3QZje-#AkTOB24>s&a&x2kw>sl=OUGpky_M zoM|Y~L*aawz61`ob;a;xCV-y!5TlIqFKF=m0cHYtr)GOASvDe!*)eex75bl&-h3B< z%b~EudgcH5>^0-mQ1$5p_4Hh5YDpCyvKXhsjxVj{GQtYr}QisKh#)*#3#U-edoI04!CJpA5 zt(J?fiDR7qY{PCyJwEDp$?ehya6ZfE7%vJNbzq>&K6DK_a63)aYaej@?cZ>ocLs;g zkRy5@V`QAyp)Y50nbYLSC)9Xx5P4SWuzM^CorpQ;L*RSB=-Xw~GP9RR-vLK|YB)E0 zFjc=K{67`e_Z2;s#~Km3DXpYYSB64cq$fmoK7J)nq>&f3f@-odHF7u|k9e-F5hsc= z^;J&+r1z`P!s0QybFQWNv!;UoAGyqlx9|}@%$DMlc|Ah6@G`KU(~%AI$5If+K-QK!I>3+IE|rz>X+puiH(L8LE6^7lXDxL?KhO!}THcQ4KleWyfAUrvRi_fr=X zXSk7>ko@*BIhsprL~OM9mPDIE91@$zN(SH{-#^gYe<11Km7blwtbb$YX>1e3pPP~b zL9dCS`Uo`q7NA=4zg2~D9$nxfFa>WJ`JbFlz=OBM__016_P>OX4 zKPKv14rux}F<2Y3rGKC0-Dfp5=^k#M(lyrMS%jvZGgM#b7lYGIat{Uic{M^6?tCM2 z)MKsepn_h+10g)AuLmC9K3Z3@l$*w&N7 zec$hV$HEs$^mNVA&hXGVlG%y>6Kd8=3^2mR$@@#T|dik zE*F|{Zs_xAI5_;qN@gmrcMjwK}baPXL$Rq zQc1Ca;`Z3~@1xt_S-1zxQb-%aE?(x>=5WthgY6&J2QOr^7M)=4^PEsFWy!kSWY2aD zSvp2cw?!pK()uc|xAwi>jrdeVo=ghACnPPE4Cz!4@(a272L!k$D*N^M1bb8?=5mU` zRe=`4^d9I^zx37k8cKuhz1zW9vSb?VYS5~ZKX|swHxP0V{kF@Flie=uc2%-q&hM@T z7yc}pI=nCe`S-u`OErGHu08!~=-(Ztdo{0L>2zTi69TcE2jnxK4(bl@=j1S-l7;Vk zm~qvJn3=Vx z4pt~-6Kv;GsZWpg2kP(&pFUh4JbMy6dnxLIS@+;_8l)L3z*P2!EF-G4P>V~8?Gl{R zKlk-YsXXoIJYjk3X#Ono8$EY!(eiFNZv67UocvwwIsE%NR>zT549o=yqU>O-JGwoe z4&R1d$u7-g7iv7-%l?5V#p7n_s^4m+TyP6$P+HRQHU|B>8}z;2)r+rZw*+5r#9yaz z$cW4<&lzN_{5#nUa?RkaUAjw4wQN1DxYW8zR826mxV$yBcxfJ=*Y>=oKj?&jyob+w9=3}iYpS*Nxn)P-s-Q01-2|90>X#8G*!8O9Bx`qO`o95 z%SqM|dR)<&qSAOz_bj3z&n>aMEnjyDeny}#J$8$}j_XjtN!8yb59(AK_izSL9ymlf zX`v2a*{{Cf!ocX;f!#IgkMQar#a%hm+qwD@H>GyH-rE8rBVSI6>3WjwK||G3KHnDY zYb>Rxo!k zTrenQ($;>X&k`eyqBWm}b7S||{r+7AB-OW-y4U|9t0b# z#w(Q$^J+u8_khr8WwX*!)F8Hf5tXe>pYFBlEV^d$vF|UfLUEEE*h*lrPi(L|Hd=k` z(TV@n7C1F~2~|+lR5R^Nbdox~Y>GBVCcr-OYAC{KyX-oTq^BvLDvIGbC!X#_t9Tm& z8sKv+T~@kFbTt8QIcI_Vo&u8t++(Ro?w16~RK3e-1vw_W!s0bjIT(706o(coC+sb-Zi;vP8 zl1v|hxcp-~k4^TaYb-QN4gBBce1wFH3aGB*b-2z;X9~08O_qQ;#$r9sKR1zR%n~`C64mj-yyq>C-tfNT_c$us{Jj{O=4XyH?CWY6lIMZLo7168a&4C8 zxi_7;q*tE${GUp{T`m2pT^9^(ds{}S@upMQQbu>|dpSSLvKM&bayU`@A1}uzFYBK; z&1-2wyA$R@Tsf=)_N=pZ-S%Tp~Aq7h9Yo-zXwi6RjjszWcgX*BFTF zw5{6TB0F%m&oc}9NHN0p$f4v}r`3gz(siTf>yq+E3k;Zk4vaNT_Cg-x*ez$5zzfAk zfcLmgn&A=VJ-=Yyfc**@yytf3S0?z|XRym}`CxG~eDd&|PS*dlasP;KEr$4C+jl4@ zZ!DNCP)*#C1Wp_mwf*$88>gAI9pn~edO`J zrK|<*_LW2Vz1$Gg$UfzGwEp`s6~9G~wr0wbb!xXE8r!*OyA;qaY=gKFwyfToF=rng zB1Bk)X#W6oy}DaqBOPIKSh)&rapW4cY!c;3i|yi8KGPJI^|IZHcwE&ntM!cG)h$za z?jt`BTYdH`l18pLD_Q`o3=I0MIthhL8D#AIu+HV^^&a2;xY1*$DM?2U@&=`tUEw|e zlWZ4a$Ug6tcs?ODF@G1ZJnLLuoDRBYTZ*F)v~sTOj1i<2;2RN;8*i=-cElkhM1gp; zoSUwXUrfW4dgXu_XP6yA3rY; zIve+dXR+SQeaQM~>9qHL)P9o?J^EB}667Sdo2`l(mtDB3Hk6t0z2ZVNp8O14$Oq*$6cm6>azXr~W7%R0XX&%Rp362C42l1e8lo0LfaR_?A$= zlsL$26JC{xZqa-THR&&4AfAJ^>i=zKhiHC}1P@nrWi21?&h)FEkwFPZ zJJEas{f_0$cp@{(!n(%a;Y-!B^-Y~DX$a1S)Trc9_r!N+wi_N;qI}2Hq1+dxl{Q9mG*`oiLzI94{TDX z;2v0r|Eu)#bsB1;=%UI0&MH2uDNyH&ixDvU2c}gL#P*)+f zuus+ig=QAl^ahH+l_{lB3-doN$9skS5eD1urrFp<;BiJMoRPli2G@%>7LRW_3jF+at-zLnr zsUELd-d8uaAUh39HNc^;3j;?H>%Zx+oN=0aiS_niO% zzt8FC)t>w0bI9QTw)2nsk2{80_~UhsvGF`unmTHpla42=<+m#y=cM->0#;uB)g2qN zcapFDJ0$W^y5LZc{r{ccE& zx((#`4%eR(I5@_orFnuudQj|tj;|phM;t8iw+khy%5BdD`|*8N<{L-E?_-}~#FqYe zJPq8v?|MGO`+&Vl+3@&tVm+dk?>nFWuK6)MHa85wpZv{~`E0+RFP^>V_pxJFu-)@?>BPM4bH@4U(tEjb_T=AhR{%a_ z_A05*=YuBAs{0A2^N@aD6JQZp>+{~Jq@5ep=hcUTm7iX77WZG)+=XMtSBbw5Ftr-~ zd7D|WQXZFaXK8vykpN8h^XWO)x7tu0?^aRU-ZAv;vyAlHf4`&uz4F9Rd-`3f&fARV zZJT&U@9gvgMF2R2>bt-lc`Acv?njW)wDx<>P+&W^yo>KS_0&IB%PD8&%lc8@p&yT4 zS>KT_MK`}A<@;J`+@|6Bb~{#30^r70j*vdpWwA#-cZ$Pz$@i`u@|&2;XK)q|Dln04AakjRcOz@e?Un+h=6@Q za#`K=NN;aDyi%b~>><=iy}S0+kk2Sa>emVF^c~WKcW7ZBFKhN^ zE|^(1xMSybQ~%L>8qWC-Fc zxg(E)oZE%i-{^>zKEMga`umwl3b5LA-)SY7GFGWAG%VE=@T*fBmzK5NP2gfAhioL+ zoVI+q|5}6MrJf>v6O#YoM`s*1_1j(>E!R^G0L43*Nc0^Y@4uvl*Op(zrEKRetiOz?5~Zh-p3bwWoFoi!c4 z^K8$xw21q?eOACtAVl`s>Pr2FA!}05RW*49`P3MmrDL#Rku^;$wl-v81jJ481`F(W z(I^7Vq*XK7`VBTzWis)K&{(P3$RK~QB4Ex!!bmz*-*n9B2e!8%ot_4svC05qy}=Zh z-g`Zw`Spn>3*5cp3^<vv!fwHRr?bV7nJpmGgrVGRl-=ksW^Go z9N(bzkOT+Fqy zc=a4(S%LQE&R$dW5yB_qv7gzuWtTdkxU-P(pG2BXFS$tzaO@k4|GrNs=N-gV86LPkf|)-$4+9i~Z~6?HLn zAq9rTxMIXop}a-HF&N@4nly};b5_t}p9Bszwk)h|PCBjK9&P!ic(L>^&*t7pPF%6S z&PkmjW~)s~RwG}o_j-G{5ib|p4p}HL{7oC0>p9YH$%@jLdEBb~5|m6@M5kK9xt#?U zZvD|}pJi`nUKkFy^xZPglSXNok34OAEM#~oOP8{Qs;PKeiPzy7 zLUK*{bPctp*KubN-qxe2-Y`T{mEJbJU*Wh;iEx?x{v#PGbiE~mpIybP-0r5}7o6E_ zGz>qK3Sm)8uX=;5DGlxA(_Kr+LS0i0y{ARn?lA~|qOFLvH?8INdIZ9CIStJ-QWL4& z0+&WKUsq}SKGUviy{dWd0Mm(XC_%NQ&8;7SKrkZ^^=uV}QM2Tsi&1VReEfdlv9gyMatn;`uWwuZ z`Yb2Rb2S`~SstAV}m7PgV%O(%k6m=)P3I4K1*IX9l-JVG+fTHplH{UaY~su8^l)B z)hhmY$+Fm8N`bQO{xoDDov^gAhPYz{Y@hEA0Wy{sX?z5t>8D&?iGR{Q1xY8o<$%pN zTpLd*PeX={(DPg;t>}C&mbBbzw;XW@Lnz||wj!Zgk(_T zZqR5JP_!-j46RoSe{VYS0NBkU|HuMv>XvUo(9a$5N{7SIp+2|$HuJ?dUj|{87u>O^ z2Q&4>pTaypTJulaw&m?ODn!;638=xGF2K?KKnU zlecv#^>K5`n)Ka|q;-pzZ{ovby?2x{js0Lk)U%H#45xk(uQJ+SU9rykemURn%pW{F zhieg&n)~nn(4>xJf4U<4Kl{@uvU%dgmZpM#BSAyY_a)A(j~7tvI|+`v5B!GX{U#@n zppA$f&hgXF8A>Rm-`8=~>x3yq9qZo{@{jinNf{1&s8zFpr+8%s_32ep1tYCgzDN2U zYAH&+#^o>0{r;c)egQ#2v`n4P7h>qy4rz0H(=soddVU``DeP0sowLY>h#kTf%iK<4TKS2O#*}o z?)uaVvNE)K;}H*)myezr%ua3vRWAb=e(N-v>2vX<&X`G{zb)VYUuu_gJRY{1juzYC z#X!OozNiKgrYIv`TDB8i(gjHw7&zw{izv*>JCiYqj<$`biT|-Mn2K%lnVe(S`I9Qv zwm%Ju{+vLVYQ^nyP|@ed3-t!!-TeFmct&&Ot0HPleCXnntApr?uk8<=mi*BW8%bQTw|x^@oyi+X}ZXbL30yZ9$IX^W3we=*Z;^*8pqd0;pc%@WNoa%!2=kZ-a1( zdxO-|)@7ftM|foEi_jz00!gK|%`ySj)o`E>jMt`gRo41+mPSfKpM_yIgu8sYD4nuC zE9oM&%RPK@!+ThG>~i;cxr^=n@DzJ%Y%t|IZ1AZJBP6aX*P?_WVpwLG1N=P*Puyx> zEnU801@xsoDgelf+o{O0Zo7tZ#%ckcZPzmwde-^qoXg+ZSBuPh+b;VCoB6zx{e&*nNoINcfd6p#A|unBSM~)xGIyCC zo*dz)xmq(V(&nH4cEVyt2zrC?mYw{+PI%?zzrN+84&NfE!*3$$Q(it4rR8ybC=eBn zYw|kZ-~G%K;NR%GK{@02g!VQF?aya+Oc%{>N5n*xAaQ$=Y*3O)HKTPYRAFi}cv+hi zAXnZk=ZK4VEfbwWd#LY)M9Q&rkPFSvmBlpnW_r$M&wctW~8tI_9Q=JC+p7A19^xC8tQ z%8465*9oqa_87}9p%x=;t?{yKSFR8LEYDQ=GCq%6&YgxY!M=$s=XzvIu(hPBBuUEzB)&ZMwNgGaP*xCvSBpE6@t^3 z`J`z4+yRN?#%f6C!>q$6DgY*>kJ#TE#9#ccixT+o!vly47;YWBPzR?^tV^DREb`t2 zC-|7mC+_>VEbB*VUncSC*|FH*Gl5-yo|L_OxPf9PU^`dT%ze8Y75EhZZ0f+Hpb$n| zM52Od^B-AtMNq6JKzKg!&~)+HB9OwwAa{2Tq^Kw<4^)x!w{%_L4y!O6u4Fr-gfhC1 zuF83(w(aNaGyfg~i}_rWE)n~nB|yXMC_x|ICW44VHg&!*gL9KojU}7hul!0cC~A8t z5*!{Lvx~9?rCKE8AK{J+JW#Q7(pv;v;c|XgW z6iTNK!p_>tJn`h7w3hkSl%538S!9rm)}Bl~OKbZ@(GOBoT|}&hY2Rg}lG$ z=P)+`um77IjZy*HNPO68RhvwvDL#iw$EM2|5)O~|%FU*|sOQV^Y0~kQ)56EMP4g>7 zo>Vm}SKQjBU$t#IsnAJF?HZVQjXOU?ydE+TjecGjTJ$2|i&SYLx-~lzeWIYj? zy9C(boL|vsW%M^Poh%GC5v+?RWXHXZ&s{G8F^?mF{D_x*DE;?hRhu0l{Y#rL3G^l5 ziWy(g#4{iio_oNYs`mUV7MXw+O&iv%4ewANMMJ4W*=CJoE>S=IH`{KZ^<|#v;(eif zDXvOGKZPYFyJYJP<}M1!vJRb{$$!grxB{A%8L1-OpPaJYhcIE8=~sksNIKL zkc7tc{+ha9;lTFs0aLU0e#pUB; zOW~H~O3em$DdkWpvJ5>#cgIi{2Y|o$;3$`IvDp z4e@sOC0Cduxm$GnLuVaXb`fvBibgU_#{A}?%!|F>Ze7ady<51QvIv+UmXNn69Essb zm}eacLND#`gAAY#*R9OrJjcbq04Mm$O9lVKx0$IyKrFte93A8Vi>QBLf%{972XHdY zYpW&PB8ZnJi`Q|J%Z_+cf*oX4_b(gxBN1^}-3|0EiT%iB&xAdqTh!-LGO^|@C#ciF zt277;5or+m?mTO((&tLPkZ;^`)cDD|ch|UN+xCO6`Ev&aOPN=h1BeLPj>2Ph@?z^0 z*lYXhPLbrXsxrW*H)5`1sf-UN?+*qgH}5YXarmUQ&w|glq&4`Qcy9{%)|7r9f^s(a z+^t-$wxo&ZoK??fq%4e2U7f^d{F8W7Rb2Z%N3bU^ z@-(S#TG!(0-3d{da0QB5#wbkZ0s)bs^xEw6w-q)1&soxb0^@^zubG!HWbZD0g~bf94Ax$ZFC_C*Drl zA4_lKsuJD+85qol`lMH{kz^#Gvp;hNom(YRV2>|xJJ;m+(&?h`=!2}iI8qzu;O)= zybr&%uPafXX?4-6UaN1h0j9O0%6h``{%U3yo36AaAP6Pq8>A$fug@8Q7x)VJt><`= z!|p5Zcbh^HmDKYK7*g!_drpCkaH&_m2W+Xkg*VTo>OS1BRj${f7LRB<^b|s1-atdA zAk;Jey}}adWCQw45I{?|Br?gfT;g~^>qyGV(SrP}!@Hv5bo#a@(9J6RP?m-!9Oe8Q zl)U%rQA&BMnqiY?s7Wrl%uB<{zeCH)nyVoD`lm9auIs=P*6xJvy=BH=yH_7EG2PUq zM`lcuLFv9ZO0b4yC;XZ9Uv!>-1oz@aRKjqdT&7R+fYEDhl})AsG|)M;AT{d>canbn zm6rWU7imb~nJ0wbuTU_nJSNsWPB&S`c$H<8O4*68@T+8-&I%m7^{-asMWgZTUBAMb z@gmPC4V7;FD{7lAg0_j39FNPtVz!a>n2*c6GL4BfY)>=`zf}8G!v(S8}|T@A0Sp^Y^URurI#yvXSMlB}I4ngA4yLzpAnV`{mwV3cuDX{Y$Ve?V+y-<*~ZF zI&LXR*_WWP;>M_;QAw(zyK zcpD}b3%9I5VVbxBN|&bU5WYlp{>vNzN06ujVLjHkq-yY#dTR+juoA7c9>h&ma+qP8 z&&~LJ>{4GG=|T>IUG}3UXX4>ou}^vEd|gZBmMgc#0k;Rrsan?uB+#L+Fe%-32awy? zT{K<$6-B*PU%bUFQo0lnZVqvH`B)*D_$cRbp+i)M%aO+mM zVaL+ig-&`kX*czg&NcB@=a94L4GR9&O&XOQ`6D;fqAPa3oU__7u_Tm6ga?H3-NXZPvD*rdLcYUemTqZuL<}ueWt!N z^>%AYj;?AN{#c2VmM?M0bxOX_(q5jRj?2`)D7~`OB(2P|mRic%Qe4)ik$70C4P)X} z0|ORAuMh=X-)M*~LHL_eB5hTJ{16P*xCdoFy6a+;CrOyM%>n_9CDV6a*#U;YM`nts zMQR2X9I>hpO#HjFb9h+o5tY>1H{~K+Cn%$qr3;qAMS5%Qa+NHce%>N=?Dk-*K{z-2 zqF_PJoB^ObgE&m0^Rq5Hn~*}=prwLq+tyA}s&rNuYB0gL{du*p9`?IV<3rn>??txN?U`#!Je z5NBVi1(`v|c4=wii%+!2`94`%)KBil*J5+rO z0|m^*Z+G%JTlRkf<4g$4-rfv!8G+NQJ@#?(X43JV#2aH?I>MM2O2{!t z;OVnP7^E?2jvLc?Sm452=slKwoTOT4_kVoQ3^VxF1{WG5(_7fBkx9sU=U^^Ow`bLt zNZ={9hWC^&Y}q|gfd4aJ>;|P1>$H;k30)VixDNlp_kau8(!T9O_TzXdBlPP* z`?LvhbXptDb84H8XvlE#mVL47Pc zaDRO+WdY`MPhiV$Rn)r`55W@^6Ed48^Za5xgzcTP3)YJilDAAHnV>7#__|!lq8PyJ z>UVIU&JYA-DJnAI3RFbS=8r^39GC4Cb);hQlR2}uEelhW0B*KNHoT$#BSiQ+6f#u%5gP0&MWu)G8&N4*vsq!1FnrXc$khNEg0D z%6pqORA3azvOqgFm@rkQFpuT4a*RM$+LryCTg<`96sj=Y@ifcj zEz;Vjg)>^U?5bpvEH^+Aoz);22AJM0(XmRJvd*VoRFqZOI01>VX~iU(?92~%u*lyH zwf*g=;zKX(^S++aJN|;a%#{h)FZ}C2@jo2yIk6fbSGHKg144xt*F0qQ%ZwM!N7sbW z6Xv|2r03|2A)d-sm7H$7G9V`_9LPzkCzjF~$z4(=z6qCUBY@Q+Um3wcHi*->FiA$O z66mpRJC&+YIfECs$q9>&P&3jsKKBLPEHGOLa$vsI!j=OQ=zTSue{Z>7sXr1v|J-3eEfo21$#_|6t*Q30HK)PS~LC zRsSn9GsNiD5?z)k>!r#P=fOXh8mwaJk@Gndrs;Bu^`MT`QNLO_IuA|4fY|!F#BvD1 z=8`o)N8TECleV&@zzZ;*JZb_Rn9Pu*Ql)0WO4qkK3_WaQ=GTdU1kdf&amiE{<;gV| z*sO{^^ln`db>S^YqF~o51LycM2%Xnorgg3Vp9R@-^Gm3%P`}NO4*iFVPhaA3dafH5 zrXUt}^mn(PWN$HvNOv)NPe7=ohkqRU6|!2{WSVjEwKRF68OSab8KgRu>%uB(rml(c zH%YF=KBgwo0V;OW{ok!+eP?7Cha_Vx_X17eeBlM#erz zR0aNzTqqf=g=4hLZ< z*8?Ml(XLf4__={_FPl>al}g)IiW@$z|3F?#Pj=1AGB(Dz;G-`sw$1Or>u&YX13jmd zFD)za8ZR;&JAb7`nz?D^N!_8PAH4$|KAy0UvbB-jhEA?H1CJfVpx%&~&#~IRWnRim zGji2g=}V@W&Xx>r$m2rYI790xQ~LKad(gAkB;@u4-wgJ3I>O6ovI&$0h~a4|=1EGPGX8Rn0!IdPU`EXGN< z7H5UZ`Bp#_a4uWVfXk}0Pu(U!Zb=T&xJ(4~LVh?uEimK^SVfYO#?Mbs%irzLjaNXJ z2nN$TSi_R|ReP-zgtNp=0?NmDty(gahz7fy%FzE^jVcYy9M~BXDtX+VJKcbGZB{Zq zNdeUwuJ2r$E~XX>!QHBPydX9ZSKJySnBK$##B~%fzUVDHjpkeEF<)Xw-axtx-oX21 z3wv;+#9BhRw9tgI-d}5zvsboJtiV;EE?+F{CgdVw>8QmF9&SySz_Z6u(yb+w3&)mk z6NFOETk`Fc3tyLS2Gy)yo>MJGh}~IzP;WeF5!7^3EJaU;W<98RSt1S$hV;opR&m)kb@a;HcL)2S#C|2)zZS2oY3$V z>^!jq7spDdPwd1;#C@(h=m+gtMG6r7*EA>5>!kPX3wGv>HRiA<)+A$z+V@7W%r z1-FRlxPf2@FyRWbL93w5gkS<^r3y5t%=kGE*fl>k4t_gtM8-9H2`wOEVl`oJ-Axxg zE6#g+3;x5_klO8(6fP~hj!7G8&zDnpa#@mQWnP*Px#11%dP=)=j(OEo1E0~K3*1-_ z6-?z4og0e)G6)kvaAwa<2?WfXD<2MQ@2cw?JkJ5{(60i~P6m)JEdxiR zmGdCKuoGAe;4U&e15Py+_r*&@aIjbTG@bV-yz}wD6{qd>hx72Y^fC#eT0;wi8_-P% zBV!uQ?3Zyf(p4$Zr(kA1^QLe=i(k|j8Af7FaR>8Y0}lshcev=2Pu3jVA%@Gf!sV23 zxe5O>i`7ZfZPqXbM{sZ9{?I#1GdKkpxSVe1ElpTlH1X0jQ@I6~nMTfi?iwyF%&ybx zEz)VIvYZEincN;=m-bpy=4xdMF;lZa*6v4^&`~G^|o$3tWTOPUF2ftzKUxvT;w3|vgIMNpd7AY z?s5%KzUYi24o)ROLbahH#v;8fqH=&|*nM}ch|V6k!n=H3&=_2)WOsrUL;_l^0?`vD zo^zLSMFHW`@<0`UNmuNP_41;OT`o;dV=_7_#!b~bvulvqV4njN_WbasR~ck>rXi~2 z2v$tpGYfzfsT!CuuR0DbP$9En#9<>~o7y)KiA~!BGzIrYopddHM&U`NgGA&*%Kg*7!-%VBh2Znr6{E1jvwNhOk))1+J4)4@dyUPje^b<)wR-UaN9 zFFpdjkZaM$)DZ*60p6ASpVv*!HG39p;rcswUtvFN>w3#fOUw=F0zG<= z4eBEqf`MMns*4n|VIjUruztG%mhm}99)$92`I@K>7Q7@--)?$P5abFM4{~Ki$X3Z= zyx{d>#eJZYljGLS#T)bt*Ad`dV5{$?cnkWY(GR%8oY#G(aq=R})pjbE7MmD2VqoL+ z($cOiw}`v-g);sXmqNnl{~to5?Ue^bUy4pyTRQ;^uh19=M9Q@#-0r?o2cS>t*=~A6 zFHY^ZAw?^Z(H2sJhZU*R)Q2-Rc&+E)H@pYUJ;1QzL{?m zB4tU<>zz5?Iw^qyePW{gq-~|JdeSzf2ojl2!OL$RFMvFY7)*{cbPlOauSP5|!xqNi zSO|x~UPd;0X(@?8e@PRC40QDL>UP9+kR*g?!5u+eHIGfn#Xi`zs)Epb^z@$_#aDiM{vPS@~2 zWKZ%L6H-Ma-$#Lvk;huN-_)n&_*)+kjqq{n(PpBpkJ$$yEzE(wY{$abuqO@ZlR0ci zPlOr`HCqf`&F)gGdAwW3(~~DGsRjNAsjWLVispP>`38#8%rCt_6kRI`TuieqY=jPx z)=2CN%`Y@kF%fe3%xE>98}e!Un7nbV&lXrIUBDdiXb;MRdGsfHDH9gh%`|D!buj>} zP5P`YUAHtA!2+{UpEQDY%)NF0eweVfSST31cIZ*7fXJTq@!!|KZTq}|Zakj_4s%5m z8Zahs^8S77<9@*ha~-tN2lJaOlny(d>z^Jgn4@dJ=+TzDl6%f)hfQuz>F3&L79<)n z{Qll3e_g%|2C)A^*6xV49~~<DX2#Fjh$TX47|1@-VT zCmcPU!~e!!GNq`^yLcG?CL$G2n$v6VB#tKgm>Cjh3C$iWka;kN#X2L?QJSosmmXQA zGX-fqS!ow7GpT0Jdx>>Ao6hY6q=xC=)NmEkIEtC59&|m6Zd7Z1xTeIf2fK@Gso6|O zf#h)@s7jk&#YPK9DhO9t+5VJK8;-=`9W?-wuC4`@8ImA}Pp^;*kZZe=YPGG+M4uBt z7zxRymOcJ!t_UQ(DI4kiRhU#$L_#M6H*ndT!yW+i?^Xc7k`C%@r95K${=gZ66HXp z#^}4cA@Z_W84Axg6VK)jOiRGcYBqc*GhztO=OPF>E<4X%L#tlQyp&SZObD|DQGtwu zqh8xZv>8dstN{W`&W@wuJ@>nyGIIH2l*nCBk4h&{mTWDZ<6_Tj2a3I=JH^-GE*!VA z2iSAvq6tLgIDe2-=J^K#wD{8CD(pzHV`tv~iZ96v7ofc!6FKJ$_V;MrK(rgN^fS-5*hx)1DjtEp7+@)72~jyspuLR|-dVXRA|BpvO&bC3Xu3 zMj1(Fhp}zunzX1iz8W@%==WF@SyEzWin8SPeWv66UZ>ek`Ago_t?|5crf=3}q_}+Z ziYo{NjZFZj{BQZws4&UY!E9G)3c)lJay_mF4eWXaho+!QT4Z5gUu(U`7 zyp@2x$s!1f_Hy141w6WDCWN`oUMQ~PTCL=mT0?=E+U%<;Kb_jHi)Bm9w2x@cj-rQu zwjBU6H?x;Ef|+vCMkTVai~^CPVy*VBVc+I3*HS1ug-tSWIL?n2n1l%{mxwtof#?dX z7iWsxpxsPOYa7foh#@jWeojAOocW+;v}Q>st?J_2y6`yD8v!A#j(5r3Qwy@2n(9y@ zIH}o*_PTnZ4eU;6!)Lh; z(s9GZUGdOO4OBlCeg%h;;AfL|YeSsS@wP^!shqZLSMGl!r)`-LY7<)=DiGoguEMhK zPLLm~LMAwuPsW({HHjV68hCCDfeJwBG$%ras)?{JFI4608wj)ce8_L+u&snSo)#kdH-C13fH(97<`?$9a>40JWfR@9@cbZWQLDWPG@XHsMD#hlh{r z+nVU$-X0bd-TrEYjcpX0#3y|xC(f=}oqYU94-V)5;22*Rm1c)QS?hFn^fa5hP-HRk z(2H~}qA8qXbGqr?xBY=Ny&L!TK2>{ zF;^E73+a3&n5zguW!}+#xtgyZOx^gI+-q;loR^!TLTz&6ORYL1Zt^PiaJr(?xpD|C zZ6J=yapI-irvb^D5e;H|b4?u5u&5GI6wKAqV2)ldpv6pOX7r`Cf+#)YO7YZEgs~8x zS?V0vpG{2we9J0Ppq-shU=hzix7?C+BqCVM8;C*zwMq}g$22p7VazmZMh5T5tL8=PEcT8-U@;vFf=I& zXey=T}`!m^zM0OdX5*iZ!8#ynEj$NQxHKE(B!wSLC3fm!)#bD)FG zltFDeTaFs~ZFar}s7lCh?pnxg=Z&mvZtNo!fHDz+|G65IFjJQpmsu<2DD%g!s#X5p zKDLY=!Bm^Z1DZ2ARG=iN>q1fD$I4k^>>FTCm!m%>O<0&UgSt=dWtUV+L;RP9CW9yU za5K}c!49S8iB1+eDcGD4Pn6kOT110G7j$gc>0+IhG>%|ZvC0ye z20evYvQ)R2h4Mp|*m{17da#)?O$sSkyS3YQE*p%lLgaXN|nXnM~GmUlf*<2bK93r#lAnTNy z0S#fCer*5zU&My`Y`)G|6>Z5D6igPi)CZd1iwFyj=3C5?38u9gDtJKsVlS)c`m}pO zR--hw#?t?781bBLG?z6({fRBgTIS=6vSbu2dFmH|T&P;p^C)VTc_lS^ikvDug%5Ad zcGxEuYxWN^p=Z_g7(dwMNG8y5Kim+x!JYRgj(21oRwIzQpyTFMH+6dU^teH|+`tpU zgQIU*1MYTDG+P{AcEZanUXx7%6wq3Bnrc2S8G;#Hev~R+RztZpgy)643HJS|(>A7isrxT4$nux2|U_=Zv42pxAbf!qsJIHMOn?-)T)w zwcWV_o^RUArNJm3V2k6qB!2w7@A2(NKG)HeOb<4TXBLxKA(>%Szc zcIcOeuBK46>mQGJ`E1J0Rw}%$TY+rNzOb6jREXu=1wNw`L6{k5kyaU@Ie=o+E=w+7_xemzGmN`jU9mL(9gCP<9 zH>CKJGx*T|m-62Qau06D{%4f|^jF1=fETXW0+sIu3+NMY3-RgoVjhj6k32hgSQ4fx z1M%scWVvbzQF$&1+#0hd$Q-pLNe$P@mq8vlGwLEfku;D#PlFjDS6)`f*5GAOYGM4a zI7fO4owl+QbEfgp=sBzfLFZEr z&SH9$6BnJn=XU~dj*NC>Meq4`gS>zlKMEbK`iEVz+3oV#EXYTEV+P2Ft9zbB^!&!) zDzP}6Q2b7 z4|M5y+IdX z2)ns0MyZBfg$$6f{WKxv_TMcLEl=Tccx$+f$!x+1>Q8RxGbxJRA)#`a`jX3veGo?0 z_*j*_Dce+26PX8~{XK6{G#gXGQ*5siGEvd~hD=Q;Pqv36T!o&-gK8Q@v`FqQkvr@I z?OqF!gOV$i#}0J^c*18jnnc}dU~m;19*hsOvSU5mSmV@M-$&FxS*ZYP}c=`PBJF28AGw8{%^Y6hF}kt`)}(5xcXQ_=KGB)@FKy2!(66((!3^ zbd>~o*if_~&WR1VPP$M6;bQAorID{x@Ocbh7@^OFXL~_96d+Bscq{wGo-TI0J}m)m zhw0qSeAf!IlFQ2%_&P2wPijuyKoeGo{71%BuF$Yy0=UHO>gKpv*T_}76Uj_Y(R!L1 zn2|0{z`B^C2sJF3Br5eY9BBp)?Y=pJziVvjB8P%{!6n{EOlB~r8`&i_IORx)kiN|> zOQlkAalL{FQ;se5tO^j11oZI+>e373W`OR#Z|FHyz#Pi#tZJW-vgPSm)4v}}Ja zGPE%7M)(sxTYy3WffLOh>48~2vE5R;r7K6XOCDBY!Y!RB@5;7o=@=i+*Ri-O9$#M1 zQN~N@8P_nf8_g*npPc6_=wV2HU{PxXgq>B=;+eS~`&^GE*t6G!qtK^2|VXK#i9zo3kH-EDw$z z(CsXvZ6LQ>*LP&za!U{~J2bM@PAB5l5!wrR;ggxjO+2Dh=*gccjqDakF3L;blL*zP zN8a^~%A3K?hdU=Y9dC8+YB!Tok+0!a_yfbFU{kfcsaYnlKieA>pq+M6G5xDs#Dy}Z zM}th_0k9)ljOaRqY!%km3_jp+%4PWsGtMI9$vrYJ_T1YoSb<}Qztr+m38?-fb4(fk z1c^_zc9FR9SjkPUiios(CEi?1woD*=XfF+!UL~pv=bXseBW-wuiLno)el1Ru<8r0=fS%?5A>mz5yrDgy-FYd9W!pAMAiKT;di53?tl)>0%L(HN;Y2Cg z#?Ve!`otMW1Dz1PuNG$CC*m$!5>r4{s;(g`*CGS1kM&{!_0AX1g?28ouR)8`TIUn| zL(ufqIYqEEy+9_wf(Ni+FLU#EoTIGl&>Bo4v7!jtvcr6hCm5O>5DYGil{paPB+u~2 zMBoMVXmo^s((N>z))kZlH}~__l->%LhMq1B?P;K4cG(@_36}cq%&1W*dhuD-D+M>x zTy}|G)HW|My>VHg0=lEdSS0_w-vIOhSK$F<9zf7bo z-&|N*`O~q+$~VBi5b_YgD6i6GFzMj4lnfodvVydQGL|e#2v|>HZd`)~Or>cvRzdNr zO>uS(Vnv84syU(9OpK@!)6z=2ALTG+Ux8vVTlV{mQ5muEF8>*4gJ0$#35v9vGt&ei zZA)*AOd`)yIhxEgHNNWncS7`MdpMHDvZ^TYl}(jM^@@!3VzaQHj6quX8EWL=^gYIa0>kCD%jEuXqM1&|2cRuu7o9tnQ8WD+Kj zZff^#b?-;wsfAGb0J+yvk;=s5?r=1uER1VPga0l(pz-5n7TiUq{lqHXoJfg3kUq3Z zq_R!~4HUzGi3XNgG+JvM`C$FLTUELd=d6@v+6n4)rd-sffDY^wMEO{+MDXeYSf~&v zPhW~=wZgVxJlCjN16HNL#RgK*@pWTr<+1Br>UAQ~qYQy+>|u(_X^(vJPeh7tVp#m$GC&JFY^)VF$j0kNa*-msHeS6uAZrTf%gO^8@|B*VS z3Q(|72`q>ZLbE{L$5mrCj95^?d)_-Kt z@#ty*T_U>k&2mFjtZp!TCte`S;fMiZXD}~~PAJQtkaryu-_4|YTF@sc zq?%&Jr11_n%a=6QG6S=1c}qOLk47;qBRExm!ifUJzbp+QBgI&Nl^oME%uNdW=R=Vp z_5M0{7ms>KsH)VC&tb?FjY>Ehr*`~B(y2!qpSyk!ua1#FAa7pN!^-!|3C)HUkXgfc zHjDb^#le#rH(I=uLdNBsm-?AL-?PxPYjl+b=2x>7;Z-&s%tA^Wt3k-l!^3WTK05#N zVOJ4dm?lq7x{icA0^XM;Ho>6ys1_H(9%{=R}l&#=u)~ zXl-kE-ip6~%ffg%{?fWTsk*Mtt|nzK!4wlrqT(+h&hgw9s^cy>i*H_eZ zMSbDsS;3v`aMYx z>HkkOJ10r)dQ(0w7WPf*iB=x(-H)5Z_}>1&fjkd(oMLIwb;em1Y`M05#`oPl&`x(Z zuD1Oi<8*`Rg#3Gn?VUgNm8!N;5dvYadfbIZ{lboBiZxKw+gN?hC0XH@*?<568W z|BdqMA{_s0nj4Q+B(Y)hW|i#hSfpb^Qfqzc!u)|`)@PC*V> zsqPNk@qHdV*?G9jy9Vef!3kA^EFKfD|cuaWDAf6i~MLGoh`y0JsbrkkNX4 zdrp!wSP-4>HOjxYP~nXjZ;E*30p-hsdNpvps7l6F^D4SF+YXX6tN2&sQu2F>XsH9# z$gA}dl&2>zQ6PQ{Zy`F0)B+PvtQO=VS=?_yB@mrz*}vB5OXa8FL%18#rK3l$c7+x% zom4bH^p8bVye`DYH*cG7@3dFq^M5c~RDal?#Jy;Lw5MDKTE@i33U!N$YD?K!{G@7O z35wU^`$uUx<3uu$@RS7nqatFC=+}?(i}n0Rzt^m)M`jZbQd)Tn#bh4z7}6p;fUHB` zHe(ISF>ShEjgGIA)W}>6EwxN182&1u=VEjERnhX@k%Z4!YFv!{M1H4hT}fM^h3R5 z8(ZeAtfP4uv^MijjeL4B1P(L1RJn=&DEV!1M5yAZLwxnQlQbxPVw>skh%aFCF#7{W z2GJXy5I9l#>3<0t@^1KkB8LfPm0WYgo${~_2lBv!dOT8vpbQ4);Pk%^b3~`bfN>st z`nFnhtH|DDnZK-)0I|xfatz& zlMZWmWXO+en{WiUHKt1+BPe6=5?Z~Kn-b~I29P94NjhL9(_t#G2As&tr{^OdKzS(C ze}KqY)kIxx4x|Px8bv8kk5Z9XifPUvvArcZ@&JMDLFQ_SK;Shox~Kse%!!(Fp75ln zv2OW64lH%Et3<33>lrAbQ{=$krU6LLu6BHU?UCfdtk!>ZDWUX7G1ZcNuNpN~_ zT11=`mzV9ZqlDm>jKpOQ3ME-+XHtuu>w$nl0qwR9Y3;Gi`&5_t8%6mMNO3`--go;g z8G6AynnzU?;_50%MU`w2OJiohahQw^raTeP}#f-iz>#%OaN!F6qW+N%<~`; zf8&o+{MoBCaGK*{7gmKcLS#CFEj(bvA#7Et0G@W?0R7sw^vllCF$vm-7umnwFd!`6 z79{#ohJ6CDRR??)G841ioOErAW)_e@nuw@d!U8f~nyP?yDPvj_By;o_r544`gz)u= z`VU@VEbEfL~R4Kpofv z)wZ{Z^0y5?5tfj+RWVBj`Bd@|C-0X}(Ke6fS^DPOjscce`d2OSKJ?&*d>*y(HIQn^ z1J^28X|tHZ&@Gg$$CgRo(*XYfQ8sfxGZ4F(G>&#q!`h)0xp^r74<=UlsgYzOXZoNSXF%g}*YZ27KWQn0o3f)4I(Gqw?cf5Lf#jo|K$|YU z1MU*{(1d?sO7t}nQsXT?mPiMy?1Ix@gVT!ebT>z$z+`rdLJw_lVq!U`oh;`Jw$|yQG&V_uYZnVk zy$FWX8mV-hUiI~WEzR?*1O#3?N#2S(Aj@R2jK(c&p zSWv$7k?Ku?Iphd$cAu4&d!W8GfR+}`Jt8-qn2M}ID}xS?S;g!OtO4_Me(-akBvS_hyL>l}rQ4cgn|b9GP63Sl zN?NO^jFDEd59|hRnp9kBkvAd_cabBK7;!Lm&Jb_i;6246wTz%XXEQ>r=dH0pWal2Y z(~QrSTS&~}z8Z*n4e!3Gc>*!Icu4@A5*EPOU5egt)tdS5Uo3t$% z6#Rx!WNJ1k$Mr2eku!UqscLf8iO|&PPM)mM{ic~B1U!9KNZ?B^;Q=D>32(#MMHeh> z-q{YQj}Qac3oHbt_7pDM?kO|3j?p!o^h)>hsnjfk=SUDKV+kgg?UZOan)xN7d^&=$rwCw9<_&W(i{-F!azC zu;=n3PN$++rbUjWn24viS?F$<_O>mqDzWEn&xlOOg;j_c2+0RnMf8}MQv>(!IeJ<0paQ+3nNa-5D8DZb1+7b{A3 zP1P;do#|S}Ny3-PPmz#3vE`KU99v@ff$QyoT|S6X-7QS!&oZxN-{ky|i%e8G+{o;d z?&!K1y&(dCjKCJ1%PBcVQ+d@`orM6W1h|}_z9%O1)``@%jzlBx0w9!r^P;0hEVoDv z?;V~Qo*UXdnuj7^tl9OVh6J++eD_ZBBr}q+I4?=kZ|i2~rlm^Ok{LEVm>xZ~6S;H} zDM+ONoZVw2mY<0k{aho7p0ahe>6j#4j1UhX+`k1_Mc{&61x^eL)7{%B-^HDuzqnN< zek7c$p+%~OrL8-qpQ)X~JW#YD=kLoO#nh*Em3#b1_$?nGn-dYdzfh!<^iVY|5*H}V{1?Zy+mErgl9wQaBS`Mje5T#OB#Kg=dAX4o0b3jRz z!g@;M)?%#t5Haw2SqMALxR%r+4>T{Sqp1p;mWxocGtWu9!1&(^6fPC(cvNwg%@-!m z*~{I9O2mr9!Mxk}x-?6Kt_Aeh_@-_PXHT)J9fh ziPbN*_$tY>dCytEET$TUE471ACc1JtQw`I6<;jy0o5SEXQfDeYs$Td3{4JIUA36hh z$~ZyDa}lyZl(1kn*9y@T0B8RpSnGz^rV}GYwFTu(-JT0K*|!4#_P*_zd_UL1IQJ3j z*2+;FI@;G0eaubv5gD9=^`NvSgo0<(rL{ILWwmsQp;|m{{Uh|Y8qQux)eI_0h1KF} z3w(UL9A5?>UlZBQ$LOT%?WxNOX%h!?!G`nMhm!cX?(jlgM;9p?B!Rk7=-MkylNrvo z;pNAFIE~p+DlQ$TG79hqUK$*0u%HMLPDsj_(45GM!qpMqcwr3{x9|YfPL6m(wIyT} zasm)tR;>i50NY;82&nVg7rOqcMQK1mZDnvrxvuN_RVfy=@EDQ3Zny+&$NEL?&Bv(9 zz0H|W1f|j0uyP=|oj8MNB{h%(tSjmBxkUp#HsquU&U{0P zuTB^fnKN7WftJXkqLb!@5(;B@AQ~j`q|v0MY6H9^pWC)b2#QY^T2POpRJ(0+(fi7O zxzbGlPWueK24TSYka!#fpmVr<$C*R0bwvBE&61!DHUl^wgdC5uk)F|2I! zxwZFNkJ9Od+Ip6wKN;OBr=KlBD<3MuE2KhRvfY${ z&#`Io_zT9^#@is(;EAubUZp@q5tt2)iTTypF7^jYc!r_-Dz^q2+V}#LlE6<1x#X_~ zJR6SL3+f&i&&tOxC_>99>ITe4VJ*NgXLO!ggVWx+$A4tf0(Q~8kAvEW4WSyu&t9R9 zV{G9;TIMTdFwDV5YUxKckhp|aiv~x$L*{hRg@i5Cf_x?THz!NGxKu32k#8Nqj%+7k z5>(q6ZIq{T45ccwAUe|NEyWeB9kHz{IQO4k$k*8$Ae|_UW(7~No<6BcWafQ>LKiC` zNZWn`Lbp{IHDfcB1IR(Xb1_90pkePGMT9NRL}0m5+v@;!Vs(;qb^>JHtNMZ&fYQ4X zrT4FX%6DYfD$Z?|%K(d`2*|U0n_7HS!u9}vGLYTzZaF=1vmeC~?%S6WNVlj8i@-q= zB@I7wLJRW(*4u%H!_Bu-Y6G>&{n||(^en9Sc7^9plGMQkJid_aAfjbR07y$M8RAhW z@0BSyw*H4q4u)$p0e$LAH-eygOh+$jJa>G4l=!@2&NPI+0%D38U1TQ;CdK$%qk<|2 z1>q9r^6v4R+$`jXdzt328*l-Q$Aj3A43iCcNe{gc%y@@1!22v75DT2md9d+R(?+M5 zUKzQ#3-txHQlS$f!M97wL25ZaEiwIA3Ked}R9|252=9;O(u+M{DYTcEq|9i`GD#!8 zy_yL}&qg8?pOlKKOLO8AbG6rN?}=Mg4lgsyNtrhVj%8z6|I6DY@L{P z_)Kk03+^qIp45q4h2xpDyu)qooDV@^Rt1B#g3D69R#(v%@S=>xVR`23>YnV2I?zuj zv;aM`b*ijt)_aCl4DDF(9&s(!UoR6`c+j;X=Ox>Wv{X$BUA|pBm(Xqlvb0O=Jh+-H z5)6Kp6k-6YPv%I8o9O@cf0al$9R{U)x77=1QeV(3ao@)Vc>w)7g3N4-N&Vg{9Jg$| zIQ;XHp=;0f7K*K+VvRcSCRAgm2A(bZ`n@%%44_HQ?Yq)X?Q8YS#5D*Lh7rq1l({$$ z5LrDWev|x)Cm~+#h0ueSeQoietInbg=0Ed-yf_W&Lq2{=3jsw?(qii8rmZJX#HaW5 zE$b8#AVFg2fg#%Qdp(?De>H`UnA5@<1ugxpWASSL#d9rFI2&HRQM|wd(}>ja>MFik zX&0=Z14bc>of^6D2uQ#57Qck-orV5fM6F-78 zRD{{E;$-piYSkZ9ey$AzZ86*~l`CFPtIFrg#j!3qzvrCk&IMp4)N$K+)QJ#1nGw>v z2ni9MZv3`d+2_(7wneAoZ3DdT9FG*tg~!J`gVZ)jM@UyYp&~m2X?faQ#6SFl{G}s} zhtuy&C}XDo>uOCknz=j~-hY&?mV)66-7LMRK3uFy;+aTdWvP@MmZCPe1=Q z#REN<4i(?V+Jj4Vk8IE5l6!QqIcNyJHPZ}?M`u7s(HNa+HY=0Oh5d$9P)B&dj+Oh= zQl5JGYW47>Mx4=Gu`NacRqj9smxk9!gUt=+_>Ie$nsI4M?EQ4;e=(}31k7hB_QF~# z8-}d*9Op$^!$aH`)eV$FSiBE}Ls~Dnf`ZzVuV=Y(O}~Vr0%@pN7>-sP3z`>IH)^Q@ zX2^V?rrJBUe|>ZWC0xUNNQ>4YM;hZ0LRh|0C=7k^ZP!1V9IYTvnkJ7}SHvh>rmkF9 zGe2&|nF?yHGRz)kuI7rgn(z7e02g>OOe&keBHt8Owcv^Te`7u+8phO7p>@fDB*|^n zXSpa^bO?HV{TXLc7@2VWGPGzD?MXAeW9ZxYs$t7mYIr+7{#w#Xwuvbfa4A;Dq%gMU z2YNy2oaN0YiFiCwCYcE8Ryjz@Xc7v#%}#JoCTmyRPD=6G6d%>k1XWJwrrJ3Di)veK z$dU@_b>{xIya(?JRvw4aN3EiKjco+g*YrSq8PL65W)&BFW{9w87^G-tgSv)aEVL+< zrI%<(%6A};>86{X=~-r$vvO?h#Ps$S)A&baZYZw%JAD7qp2QBx;0oSlaK?edKR z4ojFFsP*a|bzK9dg@hl>zA!5%7su-6D|6WEXXc5NV2) zr|qQ#2X@Et#m0f&tfZ5B&4{Q5G95xHvYCMvSla^>gaD<{1CEQHsSMbwhE*ECNdY?WD`O3SbDwH0fm7B^!1H;TW+rIeXHtpYF9bK> znV3Y8v#~#qNENTIQbI<{Oz_khJwqbY3+A z6;b5jSak1#bLPVqJY`m-O8K%>+g<{S1JX0=5cmnU9;W&B_(b0jp@M(7Pv$8@wE4z% zXtDYdw78@!XC^}23KZ;f9q%71_2rqA?HAaukjvcHpLV(!+o@CVDE`IyvSqeh?fRk@ z&9NWgUd1a}W8I4#xD}A3D(_DF7LNh57co}n_)7$6o;#n@8|Q&CMzqY$^29FW z6cUOSnq*KC!Frqj4Oa&9$$UR*k%_+c%o?PWlk}06yQCfi^$Ytmp9fOWK3rhZ`wEAh zLJQR~G!=EFmR;x(8j=yd`%ekomZjzW*U9u&ubYPPY&3uL@1!EgF)!Yo<$7?ic~y*- zsoQhX^6zxa0qb|1C@_VK;yK2^mKOSjVFqVyk0=iEEiYGce@F}c&DknMRBkgcY%WS9 zLLDcu0Vy)CitIp6?V{?A5M20s5=M{2p=yie!#qvX#RhzpA|;0|Zb{!Z=fEbv1{&K0eWQ0`)cZOoS0 z!^;$URtq_yER`y@#{I9FW(f6Ihl*T$b&J!hY?&d|Gf=WQqw8(r)$2Hamhe4TeNoMz zrBxP^|A%Yjj`(^+V$vSQh2zu+@-KX?#_f1vay8#q=ftt=jK^68d*L@V@2$w#iup2B z_VzC8=xX)Skm_~VJy?HY`Uk7XY%7EbDcai~_S`@wu-j}{Ix>$r zr9|d5DsPjWU@uS1&i!A?-keF79aa+iFW2sl!+kLo3K=g#8X209FJolM((?aR0LUtm znLO`KbhJ|+_Z0*Z34&Z!qIu^M)t#Esb3anc(t~5Ci7=zrc0>M89gMi&=7qXD#I{WT zu?gM%5Dd3BrM@&?^0_#&>QnP< zQ>9875Hy%C@qsZ}j=s_2xLN=qHnh*6<*%2kSA$oR<10}zryA+io)km?u+%KHO36&xGL@rsUsT$2Ko*dG&NK@HEot{ENPGv`+= zngM}r$r^+XSltHF12eU*|MN1cbhM~L@(4i~3F0FL^=G3u$9=- zpQP-wz@zLtkR)00o;gQ0Abs()6uAyat)drZjVW{CoLJ@Z!vd0sO&#}w=+j3jM+k_- zxi`bC_LpF<0yUfDo3n*-#4sY_l-U3YvA2AW#f|7x-TlGB4tuThJ_RXjSBvFoO?F1PqzgokCclV0Gsf?{g3~{|NKAw!)XacP@_Ueqn?cYxpz8o zpqE%qJ@9o$zGw9zB5z0Kqpn9bfW4+tj7t1Pg$M8QuXBi%36sGmt=8-iI4upL7+})I>hAG zloKY9SmzoR-Z9J=b6VHSF%s>XkjyfiobHD1(#74NQ#>4VLr|BZz~-e$NQMvzf-{)K zAIZ-Od2_se0|@>ofq{g?%Lt8{%Ig^Xg}e=ru>BH^PsRYasgwXgK)%0Nkv%tLJ9P5y z5|ULz-hk z;&)~-vh>l#;^E02hPRuH6nz?JEB#-Q5~zxXi3LV4$e~s0og2gLC&K6Q5u;LKp8`yM zBT6W^wtj>$zo;!^7+u-Uo7c$y^1uG?B2x-zNM-$e!U5G%uLF_byX8oy*(_DO?!|jjzo!#R z#8S&QdY)?FP7h#G`IOkjC?W|hNaTz_oNK3xF7wa@5xAxchrTFUSwQR5FM+P>2s}!z z?@R3J4@-0|Pzg=|_KU^I_y)yiN0j0*h>}i`M)49HwljNFVkfzpyaFOL6iO(0h%;Aa z+SM>a_mbipx{4W#Qls`1is#XiJPFpLL{Z*RHm}MfDHa~LRr~DmGL^SsyF=8&Sp)0l2w>=|RlEK%b(v1g5wU z4D@}C!Hpa>xDsH8pC=_TGKlptGSBF!I5`O1sBIzSzgj2z9&W`~n?HY2%cV>r;E1z% zi3lN4NzsvLL-BbmH1OgR<*p}X>=Qjf)K4BMt8~ObD%WYvohpd+`!5-n z#0IR~e#rI%d{39}#kSbF5R!dn>wqMeg}|gEapVk)*;qaXf}|1bRY=SaSivzc%uGuoIZ{6(&C;_hlmxFp+#BR0l23^d zXlVFIPZvv_T?H-H^T&K3Y*i(jiPKB^x@^{Lrp(*Pp&5U&M4q(qU%JkGIL{NXd2K6z0pR}31er4=r_W^ zsCc1XIF6{3z_ZWihGBTj<&SmtRfk6AF~j1ts>Yi5#0yWPve8`-e4dACL90ibnn{jC zVHO5vi;?e0_*qbA)sU6&RSk z^*Jf?f&Cje8^tf7BSPN;dm9koWvmR^W^aDa*+nIod`wJMU;#zPca&r$00}*7*_A2A zZvA?C!f2RI=U7-ReJ(P9OBz4XUsAaAITJc6eGnmyrv>{X1ajisZ`~j~s)Gvw%;_0b zGG*LTc-JxJ>k+PyL9wjf$n+VJ`_o(kGo*4m+_Z91mFE+Emn>m^J-931it zV^KMvDG()F<)69!ijb3j1Oi7)vnj~%{+m7LC_)O` z{>Z|uN9GoZgi~JZ$c1B|#lp;Dl=N;9SQxKkD4g5Nv%sYO)&4VBgsYYMOg`r%2>Y2z znIoz%F*~b-M$*SXc`;?+5|O_1_>8&@dwwT$^Ppf4ALIOqF_190yNtF5HekFc95*OF zt=ynf+O*=Lr70TZ(R}g|2_m3#&y;At;Csvzt@&gDd>Yj8Ss|ab9Kz{nm>@zW z-3kAfskW$x_~;r7;mH&ZdL^T`QRKQ2MTnuiKUg>!DpXBh{3jJEm}^ODoVHxZvJ513 zG9qe_6w2#uzmOMM=PHxn@86Lj(D+jt@!JmSi4FIYxW*7$THsEwN!hacH-&;MG2matpXNN;KuS+7>%5R4U%`^X<(5Qw^#02>|u251)q09(> zYd-zy4XzBMk?VX09~^~#zK?$awlUsab$@sD5v%wQi#`krp^t42Y-`fkQ<2sjk9izj zqnfVq{k+kIzlwaWK3}*!RT(`jQU`MIIU@}TOUZ0uqbMUXn$g8L3Tr~pmywvWZ!)wY zISD*4QZ%6+U%VhemNLMisg4lWK0WDwZ$!K#Zn3cZ{NqvO4~hjP4WQK5?bQjKP%nSc z3eb1EwvwrC%Da4s;+@1hb3E{xtYi|1K&tfw?a~rUZ8%yAVnC-_v1+lvjq0dFFmM`| z2~A!?K12a(vR(tiP2`i&ub;ru_A}JV_=8@b83Cb0@DUg)dM9fk#8=&FrT*tP+}+dm zup*DmUrYjYJxA5)j5Y&wok}zD|n7?zRoFRq-InFEvlgRgz@2!kD z-JX3XVP^f$ATlDh;ee{$@Ei>x(Q85ZCa6_BFk0=T!21*l(q^cyKy5>xigNt(U#b~Z z(2-OX@AN?$(ybN^j>eGO;&Wgz?a%>_U}e?zM!wstEK=%+&P&o7eCHu30;03clY@ma zFo~D|DpiSwHjPn|Ct5M}!T5*F1BB49O5u`j{pz3CCPe`;e&Bb*F%<6mMscX7Luco{ zq1H0xWEa_4WeOK{1T9PN+w_>q5ORs9~ec%eDfhDpe+65x=`wSOi?h zp#E<|J&6^Anr@{|B;JZvjz_oK%Q}Fz>t*C|c+9?R-DP;oNbcxAU8x1rlMFM^C*)5puM|znHoMNU%2UtC z(U?P*vLreNKGA^C47#RKBRQBVO$t5w%jGekUUe>Tdc)pWsE%;s@z=(=+_@9-I|hgi zW@8|*RBp+Y2m57a(#`s75tYyp(Y{AdgC{gLF6t8N5J@DfuDc7*O}@UhJwsP}=Fe+v zRKI|3GY^0rCXk-XmN3sIRce!KEU6AWBJ+sXa2l9ic_Jq1X-HHGA%+hG{5hkp=tC zmlOE{hmm+A#*=8E>U@ z;%lo6b;LbE=qt^1bYe&~Y+{4hbmjSHUz4L@kexR%h=c@AW*VYDG}hz9&*2vkd8!4; zSA{q-OO+WgsY8!q*Aj=dg~16*C<+H05i}WSgp@Bbgs{JZRdGJ}6;+lxgCy6$D;_b) z9kCPygP6y2w1XKOAsD;(fQ3%MI*lGidKmV2;aFm%njcXgY72-xUr#Dlj-Fs#7}SHr zF*e^*oglITiPfnLk%TEj zG$5DwmKO@e{Api6^5c6%=o^i-G7%g%)Al8o_`61>&H$DuvrJo z@dInbE2*j;8XBprS@miGSyDx?g^5 z77tmYKOu-bakoF=n+v{BHt#FK6WpRiaP)z*M`rRC@~^i=!U^Rx|6;afaT_h1IrFQK zkB!OY;!{H8a<$sBcWCghs|QM;Okg$}23;QV3oUE}Rm7QSx9y?|g&5E@X>R_v_M zI_78+8@GuQE7f==M&cKv41kf*adqx1Udv^f>sI2=Z*e@O*F*}p2fMpI^84SWmvvss zqJ#2u`{EO%hdrASm-q@&*hwIUa1+h*4K+>qSVT7Gfb>S+oGsr*s6datPAoAg;3S|;mZZq z!6)XcNq$i%FaXFO(#)QtTL;Y&orL6qsc$edLXd}YN7-M6)iVH znPOohNX(#O>=T$H6IX3xqq?)BI1nA=(&f^77|gTyW~iR&l|*V8IpCnZ{bIh?6h@L} zWCb=NXqZ%CN;5=~flYO7hY9k#@O)|HNVU%i;9aSA%4&BR42clynR>5w>Yy%$f3)!{ zhycB86hc5g3&af_VGMAPX~=?>84jUee$et^*ULS$@w`nduZS|m!6p`b#rAzw0W{|7 zrN3MR-!Sw8NXtQDc8C&y#ELvOF@z7oO=MN?q3FHB|a`-F(W-EYam5zNht zDALZ;D(GVzLpLc_7v$q-ITpu)R>-Lj6W@Kj=#xcR-Pl3W>y>P%{&%YJwaJx%AWozy;E)yOK${8968F~T#T(y#9rXg9(4uL?$ zileGw_So0hPatn5#q?IVIGZA}11vdNTPB_SVg!ZaE>M3D>?YCRJ^m8d49z(bfsa-! zp{B`$C1m@2JP!PLIKdkr|K$geh(hGAA#DqN-1r}i!7fQ7s;BgGAn%cKyhldruy=H( z4(Fq3{vf!wfWz*30Aggm3k zn>ear)5iY!bv+e+rmBAZ{-*zhA4Z1dhgo%!4isEiYCw2Sfdy0fDjGUg@wN%;4u9#y zdl(+A3RZiChIuy{*3QwA$5BOZb@}uR?s@hpQJkA&7bm7WDv-T!*4%3?B)L1&_X+^ZW-O8 zdP(S!1ZUSf@f=BUA+aj_KJMA?CE==xC-KJjc8#m9VCAl`jx4h)O4Qid)M$e{ZNNA~ zVm~@Bg(bX$yOxy#T>#R)cp6_s^D`~eyUr#$CR#j6^U8)l4-i>+!NKX_enx1W;MUas zNIkwcRh}d~o}8qP6;G$6n&N*@M2n=2nF=V+=ON~V?@AD1W)!h}ooRpnO=59nC+_d! z0*lcRG(-R%M?%r7K}8Zp>YR6a;i6VCQ48<%^7FD0RKL%B_%yKfEUZdtmCcg<)S;qy z8RE};5d1DmhNF&MCf63%Wqn(Q=BQNql!Molg=S<<@sk+hcvmD1BT2r(i&#Q9B0H3R zEhtb6HPlaO&~k}c`4gbojiXDw@pFP2MAAll$qOYVODz{jPt>ceY)|uf;Hc0EZOlyF zD`yaR6viH=J{CU{`BdD)VKa>cm3oPYjwZ5!J5viD$c@U*_D zS1n}j`}OtU8{2tFE8nmLi!_Q4YyD2vOA+g$?Y+8r=SLt5EA9nB|>ITs*CG zUok1`w&kjg$e!zAdc;SQA?YeB9Ufu9vIMHP(aqS; zeeIdxt%Tkl;^)v}yysS&x|pyX(p2eTTpocO zq;kT}EYGid&5Mq;)Z=g$Nvbw7Q7?&ZZF>VW3zH_jmPC#s+4|#*Y+*m{1c^+}uC@r@ z{S>1+$&%ziLc%Wb*GUoe+Tw16t~^4G$lVURc?z9{S1su@Lj*$jmz3tbG6yH-ZmX`8 zq}?e}a&>K>x*DM;Q#vWw-fj{%9flH9Cm`_ZQD4t^9dAqwL5#E=#9b&^@MGdynl5I{ zO2bHaj0h#g?9QKKS$lO%Pp6_I)h|j#T5W?#75#85C6y9%+x9heJW`L%{|=z<3+)*F zEZ*oyJl>C!^YJ49{^tDs0$?dW+kih=ko!_@& zj^uA+{y_Q=w&brOL+%|s{6)hN_HsVmN?`5()LLtM;uJXlv*fdtkt9|Hk%PiFyW?KW zOMF4gxup**y(d4sc2gMr&z!pcAi$P{V6Wh4F$3LL`o#dt#>nuEh@W}Kh|c6+e)&uH z*kmpO(K)gthgraIxhT&$SU9cI*{qm zz(QBy?37xUn4;up%+PafE(w~Iy*t#;4k{GZ;3>OQ84E6(gT zoVE!2JGVLi?JR$lG-DvPri4f?R3Sj=XUWpVLu#4JW?mA<&>yMacFYU2-Q}S#Kn6_e zC(6+izgE?3;Hl%kND_M{XR}H?FMjxL(~D(jc{ap`NUA?*8xu0z%+{JXOTmoG(#%tP zwJPx>Mkp%cziZL7T6tCI$D!C;RrGEWCR_SVS2M-z-2mXM`Dk3oy9waiTGCe`u{bp- zIokZ71xGBPF0f3>=dkBltZ#N+J=wNVEpv9_HVf9QbNlL57{3wO7-X$gXswp$sV?ps z!=)=;0=EXNXsRWBJ0Z*%UA&i{opEjIDm%r|G{YlFAw8Y8K2m!98L=CEJ?)4{#xUZ9 z?5V|8h}Okf^6!zj6*XU;UZK4lAe4Cn%J&Sgi1PEs!9EHfD}8r3?WQn=!s}l6*A{Qk zDljnW-a{?zhd3&m_sOuX<<-jfO=ejl9=#)&7ZpkG1XVN3{l$WDM0mlzor%BE&Z>er z^#x9$HaLVu4=LdW!euy{9@;vB={AB3_-oDav{fequ{>_B+!+1dwa*|G{Q-;;5JZG- zs8g~kW8tSR#B=+Yy!F5C&9QB3a2RaUrZsX_L&D=wOviB_#JBI-V5nTP3_VtIM?YdC z5Fc3x?Yke6J8*OmAhKvr-t@bx>K=Cbv%c#{;cm^l3&6M7RL`5?%Iz<3(zkt_l!Xd1 z2%ydnnYHKRtQo_USB1Q4K@ou0XNxMH3HgBLz3bnagolfB2hMZpg_x5Pn6aJe_s(uh z=cIOW9OZhvt-h*t=|BxnGY6MY=^J8_jGlCP1Ivv@h6$OJh0*g4K2QT)W22`4J0c1+ zdGHcpdR;UzZG#m0XDzj#mPt~(EXXKA5@8*$ZC?kP2h-O*{etrxJ7t$0ZHma=mQ^54 zN<`M_$7_FCoUxKUEIDxcL>?TsPjUOhTUGQhq@!6P^WYY5ea|q^h>isgTz_7^qXQ#cJC1tuQgX&kkC*==+WbgOX&*xBa9P++i<}-7;f8@GFRU;E$ zf=(`WHNER3l)m>!7aVI#7(OGR=B-alaJKa)(b9e#-B69x5t?JOBkc{%vthMdum+?q z%~Z*l&yKczU?j0T*YGSJTGZV36H6kp*F+AQ@la-2TzLc zg|{JAv#IqHK`SUg-y=RW=K&cc8$JB!iztv+*z^}jKJPcB=D@c?38Q5=gq1IVY73y! z7C)^eQrTPty2=+~-I_6$PVMK6kj{b+d4vXT7xanaz<7l8G81IKAG0mRLhRUVxJP zWeFM<$4NLOz)Wp4@|m#LCkAa5kALJR9{dgfRuu#gNv*8!i8N#cZD*iVNIq;|CnbT) z=3NBe+x*VEPh6A=&*74mcHZTh_8FaX*mD@g$aU0Kg>`1hjV{fi@EB<86((tP2j>afbS=$+tQ(%!&n@a!(bxhNgrn`T zpT$qG;1VV_wQW5e<)7^3Y0ID=N2moKaGd4oRY7~4)QKq)TaQHXdUj$Y=K}$_TJ3Gm zu=UV7SmHKPhMpW>Ct6h31hRn)t=I@kkjeqt9;+*m?OvdYd{nV^LaZ<#XegjPFI8-l z?f*o<6>mRGUZXAfn7J?YcYc!g&zVk3@pIZT#S?#vU@WLDlgjY~gzWs_O#!!o1DpIM z_k=IOy_o+U%4{}}L;&H_`nZ)YJVjPY+MEwKPTF+33C6*hv%=)@h}he=hIzU~cDi^y z!Q*ne%+}8#*v=f)CZKD*2AW%ssP~GQjsj`#lN|WP<8Dny@lznl((*0Gdp~Y9yhAXX z^W<5Z?^*M83_kXak!1w+`|jVP3(}fxBfZl;9aqwEU0FH%&hVuD=E)3qo&w#!t2rGS z2Zuo2`l45fkHwp!d7kScFlW zd2=>-QU_)>7AcG5(c<DSjr2HU++xcNI~xW zye1BNVl`OoslR(&uH6hbyD(v-i5^V5yNh~QkQ2*c&8uTic4?#F5L*D9v_9H|%3fPX zf3Q)>mR@GC6Hg}X6GyYlo0)g4?0wR<*hhN~|C&P9EXr{b+5B&=RoSJ#RK6T*N#m@c zm6FbBFt-s$?50g^GlbqGex6-<)dLBQOKYrEO&3A-4A&AmUv1f3YA_F0v-qb?3;SwJ z42{=Nbm!((4YlQfr87>rjLP8Ik9EB*K5Rn|v%X7P|LBH}1?on-0%;eWMP1Kn&+)N0 zy%DnIe$@Fk)3P{reZtX zCgBwJu8gTgsaqR*_ROo^B<>lOwcy#9e=cg-A22}AwoSJI2Moc=n{{NV<{;)8JKfkJ zqdux*#9jN_h%cK!W7L;_F{#S}^?~L2%f^YeKxI)q8UHfp?`c^-L3QLf)+f0R^aSjr zX?iS^V@6Nq!0U;(JspiKmeR%1&N`qKJsZ|NxGq_j>B zfM70(*dXb}N0GI*Ns6DIYHN$W6?`t0I^S2n>Fh+C$6um5rO_ohri9e;?v$hJHI2^s zpdy;JV(F5WPz2S>QV`3^&^v_1vsIruSh!(6rj~wxrIA6G%V4Uv^QNV6$}_eX?act7 zquAQ<)UIS$)Ql>`kgeUG=V$xXZ1LG^+xFn59gd%AwH+aqhb0rzM_cws;ej0|Y9l<` z^SWD)Gbq8%`egWHp!SWpnZbXLJ_z{F9q09@yBD(_9o9gP#bh&m&fSx^PWl>Xld;?$ z$?a~#nKnB*v4pw#sKpw-h24&$SN!=au@`0>Ciz$f7sNiL$Jfs==#(O2DHwBqNC9 zR>WA@RnewropP=bBAFomTqGpASHLQZg&@6sMi^rOi9^API-7I1*<lN*|XG>26x5#2y$aZBTI(Xe3geZ{k zO}%5382L7L%9-O?e!h~ZjOE=zM;L_g?V+P6mF`Hi8s)EQp)GX0-Q@+EdGN! z3$Y)H6vZ0!3`pyQPhZwZ%@FrBM2UQUuCyTGG! z|5}H#jTa)y&LA{v>LO%#j8)Ll z2r7{0WguFGI3ipg=ZVPbs3+-{!4aDmI#j&VMVcSocs~5g;rF}-cN)@1?f{y@ z-YuTyDCCN9;`jF7u|!?-^ZkQ^%F3_8p%DJ{3YBL@uj#sk&g4l#DyGQV&(0w4)V7Z- zu-~4?Y1Sv#8bJDO5>4MF1Sbah`HrDIc`f-!z8#83;Z-Eqz{tHP<4rmwKB3MIjjlPK z;n`n>1j@^S52=Wh2_i@jiTIQsR51~6@ik6yQe-|?$hc!#xgd#x&RR|Gij1gE`(!Y@1t7|2`XIK>xGN3QR2%=sQ~w+yMxTGavY_sH zL`cE7qERBI(m>H~=+Au$B#0g|l8@la73hG&vju8!#QC9$p|*o3swmbm9;igh&H)Yv zX-Nr8!S-z4g0R$Ds(n5emPA_!fy}(5t_j0Ei`F?driAs$qWK+hDMjdH>J=}qbE_L2 zO5~T^nPSm@?G2~q&riJ3`MCvCIUA`Pf~pZ66EV=JV(_&1+we# zEj;&1D0T)M2Ej55@Wp+@buFiX%?Gu&V`5LRm!oH&h*)kB-qKI+%q6nw8 z$W(i!56Y)qv+2AX+T!QnT=?W(?UtteJzqCHucU0>Yj;chG0$bi4jxxX@ie_rERyu^ z`aRacQ~u!WNhzIM9N(^;)5JN6OC8oQXdjE4(!RkJ=)B^ak^g6jDfVRB_V-XtA67GM zlKZ$X>SkdK5GYq@klIHuwDejot}XpS03(qtG5{i@rx{u`v@~Q8R`3uL?eyR}d@^m8 zx!LJ-&a>437_1<#y08bDUz#Pt5Uvi_E4~;neZC3+!{u7P=BmcQPuuG5cV>{US#8kQ>D+#7icpf=fu(vxXHXf{qX1qiUAO z5E8dUS}lj1B`O2F2Ic)S>)xff{8QQIq#pU_?ag zu5hC`6;JTO6TM!-Kyg9+nSvu`^f-R_WhO=+Dg=91sarQ1G`5Dfuwz-cS^d5nBz`cy z9Fh{e6EEuLZBBHMc5s2>eClXV$@fV7qGSr*RSIi3zE#ICHuDj;Uivz;&Y_T+hobZM zfEMKELa64SdVo~i)EXcVrZ|F9k^3$gd1evm~FBI~z$eIk}jEPp+o0m8;-L@3C{>W;y*Z2b5y z>H15wU)T>lIrc-ib~=R$nF!uVzoQXLezO03;I#UxRWwv;N2r zfgC6LB4K;13`ITpp4q^dJu(G~V%5cYes&72IORH}O2pKn35%)YjVF(QoCB)h+>F9> z;={&~>j7JepOr2ZTVv`SRI7-krK6od3=wwHK?UX2Pn4obf*S`^0+()quFkV7u(muY(@1`fnizi)T_7Ig zzKKo@ldFEw;Va=e4uDulL&j=z&X-S_=iVt54jAmd0lVqI&(D#4)+pptH@^Mw36Kg>ZnAlSomy^XaRBcSlLzyurL`yzvoUQ~Mase}XYqj+FEUl*`o1Sed%^o{7wg)t zpMISwUSrZ49V1D4Jhw(4SPsF6H#SH`USSDi*FG7%5pC{Ogt+X7)Hf)2brJ1D8Yv8! zNd!-vVd|?Oef_j{FFwR7E9$`s>Kk3VtO|teS9o`7!TRqRH<`76P`Y}wCyHcwL z%;*@Vz7EsGP%2j~QY7j*ursgBMIh6#&w^Q%Hs+N#vRPw8R1;@)5#B6yNWp`tO^eb( z)gssnA07AmnKptYeUqpi3AXZRKc-jh4i!gREsK$>_d^}l$mxiqvCW4L`y7Zo^VGL2U=qBqeva> z2e$bW%c5^}PYw(_S?9Tw7Vdw|(;D;2csinc2-t$2fv>~#@QdeCdmSD2dY;R*_sp%u zy3o&gSNqPY+E@qM4>6QvkuNy=FwD)~_OpURTufYu#QsF}dIPFvTlbu`m(8atb}T^^;JXf4<2c(+v$ z-g}kOb(UU%)pC_HSD>BBvVKy9vq1A4kIi+S#He%0MRjB)uQOHss#8&oS7s+wvDTqP z@Eq>l1=2d%sK(TVnL;^-;oTJP9hqu6aC}<;gF$|kZPw}Rk)+QgQGVICMtmQqBwdlWQ`2WjPgAKu#(C zEdP@W97*nIb4(6m83a&Qm~_c+TZz((;Q@Qf9zKsV1FsOd3NVZAIyGyu;hiGU!s)L#9>eyLCzo_w?TTPJ zf6tk7(%)B?>+ZZmLxyVP_>_kxkDxB!RP1j+{FW!5?puH5HgnAmDJ=?a?_ z#GR9cM~~^JQrOk=Lnwe!7I<++cUaLc5)EcnR9r%@?l|n}rvr7Mln|efFEukc+I)f5 zri;t7ww3wc|GH(*p88$8rUJXjXUJ&bmZ{VeM{f%XL`jiQlYpGHg(<6dmhgX#K|78 zRS6u{917z{Vb3a&kW{5Jf9OcvJnei7dYr656>GV<0**5)+Fg-c*0oSc%fm&S4hE631x4i{fXB4dG9BEs=wN3Du zeYL#2-H){Unm#2e31un?=^^TIRy5`fS3rp5m=S@muQaaa@O9#`;60TF{p9|%7wdP) zcvsh(+Ch#8gt1EafQxcNGNeu(R>=?cgGFl~c!CZHy4S||3(ASoCUWH#j^b2Il;>vb zfz3m`NCMI*TTb+BSd}e(M@Cd;(WqJlS+_aI3-!aOhKbm6FW~rUj#q!ZWsuis0vn@c zm^4j$20`Q#INT>N9?6T9AF1q4vxwJFZr47r^sP0vy=M)7&Rzs{-w8AmA1IUb3G`4_ zqnI%&wbe#Q1dKKC!F>~IGkHBjeN(ZTa?_Cs|ExCb)PUIm16*-op z;W(av^Alh%b8VB$`hKoE9>FhsuPXz-%0N#vNczLOm9(|tda^n`I2>yKvqhxA@l9cY>nAI-_}D1nL%R$X3DrQjj&6h@u+YWp;KZL_P&kGqTr`7fH-hyp7Fz`wv@}PpAa>b z&wIf28ZQ>TT&Z|I>jkr%sT&I&)o{_to07Rk@=&@d*d>w|89x8+qD@z>#&gHOL+)nx zlj2pCg_cZru`g;A%*x#}-&x%(h3d2AU0@x*>b!F|Bib)c;q5&wv&bMC?yAF=)SWRI zq!)R92o70!JJ_CQQlO?!#Ea-%&m;pO1z9)DAu#3vnD}LT%$Lma7|mrzFCoi-Qfa(Z z;%{|`Zi4|ihH5Kw<%TGIYT^=uFPUHBPR%1BT;LgBD9JOM+;oMBblHUZz|2H_+}Y`H zi*~n%fD@c~Moh0{S@d5++7tlU>M5%8b?;&ZNVTCuIPmWUhhf#qloZD@*`i)1}ohCs32FE-&kp2hAKm=3^QPzaW%U4(i!6%7s;jfrMB z+^h}*`b9$mj|I2b5K76%`uWP|1_aY8CbU@xri)OVc1moN{LRcJPeZZm{DXVI<7U^? znSpUk#5>#6qYwy@(r-tPG&DyPgxwW9AvWvH`{EUejsy2~H+C4>81);kdvRi^y*swT zn>^Fxv6A~)%;1D+(ptj?Uo7Fw`%!a{(KiRKIu#cYt}#@ds3Vx7;P&~PIRr2aI!cux zqe)n>jI*-N1QJ$TJwq*5L3u<>J&fwuUWMJphYX*Yh&*?toB8l0u#66E1*VF>HB)Nx zNdIkb&`}wz3SUo?+CWcBD!bl%o>s2>4hxwjfGN38;(m< ze?i$3+iUgxLzjcTEO@pFx;Z9C1I;7hkY%};Nd$A}kugX!4fP64PtqqhV{lTNQKL#D zt%o9Nb*1u5FI6F%R?F1z3E!q@4}!F0z;jNVK_WF|j&||&=?Srs{LmA6#>?l(liQRX z9>+@djx^CqE6dm(C2Fr|uOfVYj!JZmS1LG<*Se*@d=H3bN@<+JC&@~O*VSOg7+&*- z-+~6iAinWhJ{isc43JanEM^Q0imS|h*{-a3xUsp8Tma1-9)}UIG$Q1Q0l9DM$cc2KOsC7Cs(pn^?KmxRxGKdjAWbNBO=%nvyR6HptQrena zM`J11PNW=7R*%crUI(g`sXB9%+1(3Ff<-MH?D2)lTa(_0d$f3viNBh=S@% z@3d^^?6n)0ldf4;JdZDBV58G$o_{LxW!c(EaEgiZoR1Cx$>v-J&a4&)E3?ljLx3?Y zJ-AAOZ21Uk9T~Yo6qE+~0F}KO<_PI)D^p1ZoLM3^qVH@Js@WejmWdA+FjGj{aZ2s7 z_sd>+lBSL${CpI3f?<-xq;N~l+*dW?t`Np~3Sp?IiQyXCDj35W0_a%?aNAba{RK^2Z`;AS5|D+_TRvgJ2;ExXl-fL zP3DsJ?4#oT51`YsPo6!39aSoi1c*I7RtlRaAw-WPR!i%1)vxJuDnmkphe}DL3n~}v zet+{82;+1BT*{CoPzsboXmUR1yfaG9499BA+7Z%ia|x&ZG$r3Mcorma4AhxJNXQ}( zuRU`x534P)(DA2!;Z>Gk7P#XjE-tcO3C;B|Rjw6CSh)-#f?DOR5h?)^rmQ6!|6eS8 zGF_%)uNz(UA6VIn1KtI#d4o4rgNk1<|~OL_!#8hEDDf#qkivRh^8UE+fUpR<~(q12vu%U?q4L2_76`<_*N;$xkM) z;dqhZ+NQg+YeM4<0~?!W=;Z43_ONx=7U9f=JaSNqe7wvZ?ShVK<)f-0Z32_{ zfPjR6@A807_;O}=9}Q%b42Q(5H6`74k!d!3j`t-D*p@Qn3KKu(9Zq&goq51*W(@db=XfH5uMTFu?NWLVt5=&(|F({2merJo z`1>g~-qw;!5Q3%U%gaoJyB_Z^EmFnP4~-akwyEUnO3inr2f1X3%FFF0vRE(QE(I{a)`O7fj?X4^Brq;x`-JQ@#MQj^Dc3*Ylg zGnk_C+>-Q_E`G+FTJwE&%L64oCP7K;Q_lFk^Q z!G>$A1;?jOQRO&Tlc?5_^nkvD||*?IjPlkMK3+pREcb-SLcqe^BfA z6NMtN1``@dQ>}+BVzf1>J55+ox8s+fBxIYT%`jbQ_s|1J-pN$QD>lLegvT0M1-}Y^ zGx=(9hzQTN<0c3bWLl>g97abQ*9c>d4sHGrzyx7c{IW(7gH5lziXr^dU_MdM{%9dk zt_L11>7}v5!W4snUTgA%3Ny}ZXl=*I0FqskXLFoAQ&Y2`m2W5UnqhbuGU-{aT@rR( zVG0J#J^Ch5FsVsW*$eG7A_#@=Eql1Yq_?L{H?oYESw3mRU6oN1cek>rh8 z;wAOex3A3?cd;$?IKES>J22cV_MWBedy$f=BU(k$g@g@$7HJ+B_3g%y_jhVD=D?97 z`~=3hI@)3w>Hqit{{Q~leutAVNs{9NQqi+y?Z@nJ?-Ztl&b*p3jZ<~^Nw8CgaOBO> z73;lqVOSzr90{2%&53w^wTLklRF(5Mwf77-+yLCsqY0e(PjZk2k`1_ikoCBT2YXiU z))|X$%hJkQ`Z?*Ne3c-M0Sm#F7kK2#C6$N&!y!WSN7!LsK#lDlkqhKej*=q!pl z9(cxLHX64#tzVjEml!p%TicjOWQ>3Ld}e5X4ql659tt8iw2p~Pg)#FZ@ZaIJKE*(` znzcJVvQdj}WCAjJIjjUbeSVkTTNYv$ZDYBet3aca)ZqcRx#c>c2P7c%U_$`O&Fdsw z`f_uaRUM-{BF4;J66wd2V&eZEU@ zosM|4Z0Anc-Nz+$&4nCoZK7=V5I0;IPru7_M{s6&1qcVJ`J8Xde(k2 z#_5LT26%`a8-L5y`i$||S+Q7Q8IxYX4(I4g{rWT~OEbtOFl-UUq`9j3P_r^|5M zgV-dUn2g~4YFS8*-dQEGF>aOU!tIFPvR(Maon(&c7#K;~=2N;V%TBu}n<&m|A4)ICJZ6jYSv!7No=tstuUlOnn+l@O*BCLcMjp zGxL?gebF#1z-dAXFP{_z4D{aKo3gg-rC50C;~v-0xE=yNTjcNvEvb_c=uAx59aO5? zRJ23I)ilajVPvtPkO}lJ<@>Qo!*CY#u+ltY`GuoT8FJ&P=8tcBh_ovvpU8YLG-x~x zsH?`?2+(iY@(Qci2U;#53Uw-Zq_2mbSHeYeL1Dxl@fmaMArHRsh-K1MAL)sEQvK2= z42=rqtEM_s61Lk|NmD?7@mIIKjf8l$NI@9`VfV@cwbB8dR&{nlI9q+-{pc;uF{-<( z>3cw^sWgK$6B)C`@ML~J2V;P^ENB$vbKqPWh8uJ?=rl&7o@9aNa73Y=fL*vb2F20Iw3Phc>PT3%s+u>{WWoh#Etb{ zK409_Bw$@<0l~s|svgD<)zdW$$tMo5fq?L(PZC`f=q*D%zMr<!$<2@=mw)w^V;5Pt$jcc3=S58`^mtIv7esW{NaN50`9cY(6rJZC zYh`6pcix$)KBvZREF}S=JdeZKlOJ%MmO$JK^eYJ`B{w_`WiK%=k=;k0Oqb-7Nz+3- z^$c{XQn;}8!m`!4tSi0tWNQ@~*N$eZ*99C)~DU>KB&XKFZmPua2}v_H!m7nf02+b6nO=@pNtrT?=VA zmYkb7=)X^ViGGx&K!DBeR%z2#Oja@aKM zXpqq5BeY1=Eidi<20sY{HTdh9D=0m{%z>0$GJWtW!tD6;Q$pnqz25FU_Ddu*&FXm0 z#1li)CV1`2_k@Z|DJb4&4)rwWUG0 zE~+GwM}2`^OgLaMy}qBjXf9_N(j}O6j=;GRbtlube!G=M@#4DWv7z!qt|U->dPW~w zDJ}H!5c&rS@r=*fs*U7+S6_;R903|ykeW@Um9k+X37C=#ocGlN>e3U?57`0^O>ZR; zXL1%?%s`zm8mfuw2xb@oBr6qDQxH0O?FKL=OpOK!FGuBq_CA6W z2!8kk%e8V22Yt&B@+NPgmKu{Q(V<0_R>bE7|)R#f#!W z)hmmgRr;M#wHO@LmusXzMwurTq)EyGKRND|qA>>3eoQN9U^TOcnI{UJNv6Uza$>jg*~rn=9_9F_InXScQfK13H8Q5BCDIEHy|fU zam6!3=jbn*ZtAf3qPmmEVSP`kU%dAt)3r%S=*l4JYq^EErxskV@tqxn*A?Sd^*5%f zesv}wb_r3p5*2;X$7OHl`ZC@TZ`oTSq=I z#fQBKFsQj1&w~fyPr`2Y=D0->Mb~b)UuJO%`UpcMw;KmUfa@F0EuyxI_%yD<6M{_8 zc4VAw7k`h6YO*L^eC(o-w4^Csc!Ak>UDB1QGD4mi&XYe|JAW~Qf#go`x3q}S$4Qe4 z`p-S50SnQl<1o8(}|Gd|0(@>BP7Pw)>z2u;SP<(r)I@azqd+#&jgm} z3yF;^y5e~1>kJ}N8{_1QuL}}2xB=u-nZJcpt3BCq%a32APo*ba>VQY zj{XA0pu()(7VON)^MQ99!F}k<2-3UijjB!U3#U}lW^&-V+?NxTKAr-lyD55ygj zW8H3>U8y&mH!%K2pu;aM>O_rc$CsxtK$_kpJPMS3_F+TazQVB`rJc6RG!^`Y*?;|INw{Y#a?*xdZ-w(1}QFCOb!qyB3VwCT#6W`@#)-EC? z>5rhWb1DxoX^ROlrn0SEv&A#y%Ecjx_(}+`mBqGa)Cu>hLgNXuj$MEHhbV_m*RT~5 zf!xXl6-L;S#MA9e&7_wf_wClzl5t6Ea6`JkRYIZhOrE)jJkIm8=Hv7*+gs+}mXVUE zO=A8)DqwGuG@P+cInLL~7*9Kq_~SKA8wy;d89*VHe4`AQp&OgAQvgMRr6Mt4BF*q^qZJy4!2bsS{JK+HaXkY8qzRkriU?Do2i{@gqfd%(^K3BO@cUoY9P`*cY3~D60Kt%gO3s|z#Y z-ddhJBTjWV4@3zCPJkf--z3&IRe4d>lQ{hl=M~|&nV7k@Q|>2o6xt6hIfQ(^(b^Yo zopA}&CvyLEHX!EV>fxR72;EQB5&bOn&FwgAjq)cjV_+c2t*V#Y>iIC|L3w~mfuPM! zM+rwLG{)mAQk+r;o%=)n;FykTdp_?Hk-H)@cFD(xkOd>xg~w%@EV_spIV>-u@fuyJ z;Ng;{spaftH=CD_`2Ql~B>ys__Z)NI99!Yv~-KGLp;6H^Y}vqj%n z*qc{Vn+FacuteQbXk>1Qs?L_A=AqmX;>q)SRD)4$k4U~Xf28A6-U&yM6*8a0&Vu2$4(sF8`o26Me%>ql`TjaWcNEi*- z%^t)8&)NYvZ-{w?m?2+?t+#)ju zo0^rkNgWJyl!PE!^+8ZM;eGXSbq+@dAI!C;^*1 zC=xWWNC)Tj=T*Oe-(6+riEbD^D_hkC-){1RsNfN0 zjqU113$Coe9BT-EE>MJjoX;SJ(5vNw#3P6#H*HZ|K)o2_9WoghD-y<=&hBDu5vW1w zJn*P%5X(YdsvT*Ro$lb42{9^9uF4h<$unt7(=nJXBFi~r3i?fmc~4r$PFg|qBl@?g z-D>L4mvgUZ{6I&Y-r74SOM0iF6a$h1xz}qy>=r_BR~e1jlD{Hq=g%AUJSZK;M-GLY zm}o9)MLcf>;gfOcG<_A+VNY34VqI-aAZUgmEmMiQhy>EX^JHB*NRMe7l-a{^lr2r* zf<%%lF%;f?dh{xQs}Q(~u>?+wQr=}nn&W9~`wsE-@YNyv=Xzi)C-O+2_GPlJhV#%} z=a(Pic5ZxKS!Pp?2$n~`Pjg}J$HVp&ub`-G0DL&d^F$wb05Y)mzA#Z|5*SrAxe-a@ z6nu@;y+%Gx9Xa37L%^w$JsEfn%o*TF%e z$s26~EIKI%!&6IRSbvo`hdP#5A%mnyYSjm4(&wPLhz`c$M4uHT)`L=`B|kK=!Ujdq zInymrgyprjh4ofG4{Fqft5Zvcua9&negHI5;5)NR`k-(ZC`I&cXDO3sK`H7Y6WUsf zH~{v(RHO1%Os2(DdE65Q4fz%Z%x^U+);Q9WhN?~~a7Y}_q1Il|`pV}KG@ze2gPh2k z4UD@>KKqJuUNw4Q^d1>4vi$;&_NQmUcHyCKHP6X>emu=5j2lL1(~O}IBB3a3AvI`~ zbfeHLDVph>jNi+u=JRH(&lh98E_tu-kh2zLMvD-K^WDZ{TGxv7wHwfM)y6oUI&YD@28_{?~xktUcScZ^j?LiwT-^&?H4MmB6(SJA* z+GukwBJ3s>b%Z>)Vq;Xg8VUrVpz*nE3Hh866GM2e)+iH}IWiNE`*v?3fvcJaYyn-h zHu6CDZ1e_|lIu9)grqlDi-<7HV@bjDN8=ZvY@?D##93)ZM$_RA*Bq@e{Ny7pwp3Y; zUtxeY)!BH!uV%y=KZ7wb&6}I=S&JxmLD*QYWdsuCK34!Cw>ABG_ zvNgR9EKj0pp*Dha;>I$F9pK89rj{&RG1^kUUOyOY!7|Ec#9IKl!ZR=i&nH7+v{OZW ziij_hyfp%@wybnitP7ff1wL|CGqJ}8$4H~fXb`URjJV@>T2<1_5P96~F{Y;;Qx#~A zq#m3*&F!g0#nl=?C54u_AB!g*T=v9rmxokEzT3{qxAz+oe@K8S#z`CXCkVecJi4TR zOJb3mO?+MDp_Z5rmVRza88dZesbjNtoT+O(?!>p*TT9;O&Fo6vdd}LR${%Z&Xj!0^*vtab$t=#9aeZ3~3(m^*ebTa#tb^$5H0G!W+PEjntN!q0 zQ%wm!9xFO4BRW)*?U%+Hphh*6y`ve3Hxc{wX7Nc(##-%)q2pLTZP6*l=VQ0Q28EThend^|>uYTCf9ha&zt*Sg)Tg8WW?VEJB-L1?{|K5knMf;z)}Z-4qDrRs3XgB5Y`WBtQ5?y}GHa zyjHVfPx)7c4#^~o^?^@GB>T%P+|T^KdjT@qtu-o7IKt*DU&HiK?R#oD4bopW^)r;) zoXT(SNtE}Imto%!W8a+HPv-(Wx;%EOwkeXeI*-O}%)T8H`my4r6hyGSXONzZZmrld zM7H#$ob6!zw(L6*Vc)VrLH?(<^U0y{YH%0zj8W{ur0HmNX9^7$V(D$qjrXOumpiPM zCvBrLNPhQjSmQ{g$#ZR^?Ur*c*h4>nkRzpU!|AF{6l8WJwUPk<%}X7# zy0u-B?@>m_%eYu5W<|~{N13!-Tw-Abh;*JXoR0APT3h@n%LDUddfrB9#)$-7aYoLJ z_A}J^$(^Y&p6?s{`Apo1eLZwmvCIE<9h7qv>lKOp-V*=BBHy?~H;?5g zoWy=S4OTx?mFeX@LCO-)BgRsw^X`8x=iS#SgQY=*nlY6wAAvpyxUI%l{Bz|p;#8Ho#h7Zw;*Q;T}0)WF^t&1GP#XK+(Om&z*b;ZG7Y>-FVeD{DYUgm9ZFO}45X@n^CZLj;5sL`lP(BijxdJz?*uA4 zsdaIzwi=t$0iO`sWPF=L%VX*tG;%R-u`1!J_{3BTSgshb{PY8=v_|5CCp+2Ay zfpC8EZTCIBZ;T*|HCr|Bh#V@OoyZdMsuNX{02(*BYiP2n!f+f4r^%>oPg~E6K6>(O z1G|_o?3WjkU`lloYD(5c1KI<_dX1CD`+aokrz!A$M`@{2AKva0Ij4oC4GcH-niZC| z&~oEFbi83ySGcS6cQcw+Qa1C|2;yj!lsz<~0-zd`zH`Y8X4OZ8RdnXCP$A(4U{e>7 z&YJxKz4~sbPC2p`By%+kj$QZz$9Cp18xZC(4CFY3gWEkZj{0{rsAf2LeNP|kX$P7e z4Cz#9N8;0@W*ZsfkP$-@N9Qv-!9E8)iMS!9y-PXdQ(oA4+!yesOjkgya~%U&2(okT z%24(U5=k!x+7}Hz2iAl#V?@-G%KYt0i2G4HqvLGfA^D38iI~~~tuX*_jg}+ua=y>Y zY7358q>N{Kt9uqzNlCJ8LSiG-XS}R~(cI?XPuROANVj8v){WU|Q(rXgT9V=k*-*=S zFxALV!+SAP#%G1dv6E`#I8;%fU^5jf8E{E>wF%?>CW&7(_kYr}c{Nv({H^$wKHwUi zX3cF1x`qi$o~;!-X#SkbqN`Cpp$bot#jFm6AEd-bkFDWmU`{kHiIr?(#7 zLs9>J@AIv#uxhgmUs=r{uRtEK{Orx-pa1h^_F5Y|vn-M6na({H-vlqA%FnH9NpeRt zjF+Y>i5|W!?ddObwlLMFjOTs$`J5h(%a|Y3W~*WOb}kBUn-(_6ZOvs})irgtNTr7Ohh83J^2Iu_fi~AGD6oZ+aeykE=*xkC z1Gz$9?V?ZUOW?$)S*W!uX3@7hf3JFv;1>v)tRv2BtJNnm!1=Z#{ z-cWF;9QDrQSUpHEgsyIw7#InZyzG4d0z3aRwnlY}Hq1@eF<>;W2Ud1mu41iLMgB>? z=M`bAwJuCqiqTEqmTB$4?FsZd(U8Z|L@RFmJtmRPc0TmQxbDpei}*)EoMC zWbnx4ubL}D=jt`|QeiPw3(uemC?p%zv<&KId>>dt3zJ}0?XDZGnEK`gGE7f$S%=jz zE$69fnp2)_s+iY@>hg#aLSaq_rb?v&?`_Jd4s8G-1_^$yL_BR*;*Wyanv5zAwRn=xqk>GM7= zBdE$AaG>q7&Ag7)1p<*fWl#Nuy0#M_r!6Afu@7h2m6q*u$Jn0gjt{xNWsAT39%yM6zObA zJqAKUHnMk57|YIjSLp+AdkZYfN>1tG5EAcBRl>qVDUBd`6ptS&-3T*cWpP`?|>O zQps@<8t3rplP)(5weULpFGA*!KJka)A`?0Fx9|#3>TT)dje0w9)(#nU(ZmFr!_i2H zF3C?Mn4LO5M>=B0Fwm&eYhvR65sv272iz5AxtyNQo2?<<2r9G_yJO~z8eva! zSVhW|_x5~yk!U;%vb0lM;tFm#tX+Zkq^v!87g1{9>p9xgXqzH+$W+x#LYT*#rnLU@ zmKCTwr8bxPQ`(SZ1{o;s^}XJO32}9v@TX-u^wip10p^G(BW`#-0bUP*L6!UG_(>}W zulmWYAXSk~UTl(Exulx?aAwiM(iEZ22BhVvx8G))(-(_<{~^3A>+7Zc#uNB+{FL<7 zK0{lrzv$OAU4zyi#9Wl-YY7UIU(YPsfb<;%>u)0(uwcm!4WgBFrZ+FnMc$g|f;ZZS z-$vvmp!Uvf!9*zCuUDQvx65r?{PG4&(I0bgOe>hmaoCwQ)qOUa^|h^?b35DcQaj?) zHN$LE4vbyd1cj3uS+2MY`>mRS6Ma?`_$%+845C6+8G_|eYG%z)flya2Xg)+o67Mrrp;z>h0A-2$Z;mIM4H>6)) zX1HSzY5CN9!eOYa(k?L(kjTb}d~n-|Y1F^auWfcWexD&DbX5*U;J~jRNlxC<_aptZ z$^;6Xkn}B7EJ#=Q1=i4~L-L-%TLySFT4PC;t|oa0=ELw!mODJBBf6t^RSbe%zm;Vv zw6dmm_woD)HtD!01XQwr-Adm-~c7-rE$s;@gVTv7d zGj2@T#GPmBEcfAm{FnduuWB;sd%Dn?SQz5R&~~P$4X$Fe`A$8qf1Q zOG^WD|CF@8pdXHeDk#XvkoEbHkdV-uv<#2HB65?W+}c6WPcZyX+Coe?7LcA%Dk^av ziuzHwTq?n+2(DqcXDq5Di(y}Bl5>=~RdU*HjQ+Fe(m`+fMFSo7zT7JQxI3soOTj9F|_zjOZ(-JL0odXe;r+*p`q2KTO zbi>Ts*H?ngzT#Cnky%^fmXE~CTSC0Qp^aH^P!2#|l7Y5HG_D8-m>vCdv`0!eywHAH zr#I|H30vYSr&lazkPPo85-@Lym5M_!D02gg`5+tws5a8nhjm~E!|<-|-CEysm5itT z0&_lCrPlGB45EaV8d*7nN|Jk8x>8F92sEGa8%X7BOiqNDX;@&6!SAYRPocA=?lRjS&y%Xz z3(3(L>ueRd3H3NHxirQ!kj-$cuUj2&2RmOYADzkCCQ&7KkOdR&l?}qJ3TdK+!cGuCsFMxmajjn_W!XvO2P=opm$}Mk z_EVMv^145M$#F1y$M?4<$#*2y+qtv+ZLbB^YckJMfl2yY-##ZYQvQB8vhB3rv#%+} zT{d&ZR=s)rCC@iW=Q*Q?JP_KZ{OWGgkt3=7wPG~#d|L zRdB~^qsXl;#NVkRTSp`-C(R;QkN+Zs;?=Bi1vdYRzlmGQ)O)eF*4y2DUShNAW;Xjm zmJGf3;$Mb(2(U+vrVl>Y*3YBd#QN2C7Ss+W-uj2g++N^PUM$kp41;9g;xs+x6=_-= z^L3}Ups87EM}S^M@WowElH1Q}>27JOLdr)} zv*4Xa9ceKQHQ^a{|37Q*l4RQoLy65L+j%1Sf7%{^-Sq%Gfr_g6drJZ~NQ?8{EBj`| zZEPJt2qAvbQb;!8Y*mml(`m{}I!1&`jSDbDf4Y44FxO*4fxDg&$zb?^IDgq|ZGPV= z7EhB3wCF8}W7Pp=D|vXwsEquwlTb>h5D};#vw6Zbj+|Yy3m=8*#a}VRp9_I6*~}Fl z1y0~RYaGaD(yYnvHMU9RF#RwiB#ujX*)&Vg zBej{*ol`G=%X2P6&pFZ??#Q{}?;J7V^dX5b`f@_=u36gF@1;Q=cC{h)5ofG)oUHmF=3CcL!LtcYF=E}jd2eR@kt;t>&&{hs{_;McHPrDMYV#QNp&1Mf zef*wpf3jJw{LnluaGXAz*RkzeT@+epok>Yf1WFG)!QG~uAt%+9%4k9W+^(W5RwOKf z#IQwVMlMknG{xjCGVK8gCiRt`XHsU{*;Y<65mH7Xp#BHDm#BQ6gJtr-j_Sa-W9v`f z^04s04Vz!ewg;^v&4pDN+7%Tbv$CbSE&HRgmjtt-`p0U@xB%u6qQ#jgoVV(S0?Jkc zC-yT5m?}k5xw-S%poJ2r9B-G5y>-Du`LhKn@-gXQ=RRity#yyTl(JX2I?7C6K<-;W zF_w>HOF2nfZR<={O?*UzE~u_bH$^AUQsIJ?!(&2s?bZ7AJ4yC^kPdr4-_UC@iIdm8 zMJ=kwl4?Y6P}5`G6F`C&SG$k5tM?;w}tBvkBM(DPevd54D{*V@mR*sKh)`G%;`^y|_bJfFQA z>BH}{)A2b&XXeB{w8njw556ew@sUWKQ_r6TQg>)drec2`s{Go6lu!8Qhm3aL-(=FI zbPf};2?kMb2YyC#H)kj8L!22Cr5a!JkpU~%3|K^g=x{`+D-n>ZDsvnIxY>1qpbS20M7XWU;~b**6=Ku8c7W0j_`25Dq)n! zIt;$QOKzwt8r&;?r|DytI6Al3d)fq?s^&4YQYSzmNs8+u2oX*q0A`>ZY4P|t?W1*D zrSV^|AH|&>c;xj~JxDD@DeNifB*-jEtwcuH15rEVtyOI-FmX;DttQ{M%*SD0>X{Vu zIr9M^(8znAALULO*cN1nG|si0x$fSpl&sSg`40A$VZKJ>os$eX2^l!H(pOpX-2T%9 zf1386j^qiPDA|OG1%6dF=U;j;P4*U-emw&C+m=IGZs*ijs^WZcpMrMkI6P2g9eSYW z>#6aml64?KK>l}fsRt2Gk8OfH6Ho0_eLu?es?)Vs%;AYc$J?C z1s14e(t1<3)BAeEviCalLtSs5)f(dw_+ik(nNb>cxp&%~m_vY0()1bqI!5U7>?L)$ zbqeZ1?gLL>Wd@SS2|#PjN8#OnnbM8~T}5B_pxWJ;a~z7aHb19F4UVtt`i}9@-0n!a zcJY9a^56`OUCTOM5QMY4;!#5?aD^2yHDS$mm;JeAy?wuUOQslE6P#secX zYw^2EzZbVVA&-mh&+hR3+8w?cvcU$dJ}AlFqnzaN4T^9`UNR~6sF5(7O~PqnJHD98 zPl*W@X!X*A{o@t z=aZx3g}&6HXOxk|*LAOc9(_e|C%-fK#!-Y}Xmp89lyp)YJnJ{y{` zR^e=ay_;8k@ZSpr#qjL4s_zc)n+#)H%A8~;M3c!2T6rj1#;=hG z`~YBaWyiJ&$SYUSeE~0xa&eH9PUwnO3pchTa~@=CZNpA=@pGj!ddfNNfwxFt##^*i-2=^=Bh|rj!z9*u%WlKE)NspjEXMCt|v~qxuw!BNNsFgxD-^hW%_T)Wp z=$e+aGO}Iow!`!RH4R;aar1LVVg+n^V#E(k}a)U*_qH81H2Q1A5uv+o7$%F2ib zDPAsKz%GdHYD$LN&&#Se$|SHsx$U&Pc#_|?(tqKiS8!p?6?4UYN$L!@^W}jyLc-kS zB0y9R&kL7h1O<<#fqmVY+Io8H#mT?-_V@ILFx^{?EnB_-`+dbs_%+^Q*X4UFC@mB9 z3O>=&i&QHSDnB}EG(5PW~+q!e$Q!d0Ew*ndwx z?k~B7W|@(zEB!jZAVFIh$$&gWb$~YW8#uTM$@sj;zxVbsr1;`TejY6Ku=kx>dJdRy-+v;8%p}ru*Dl=cRk)1E9tb^t9>Dfr!8sAsk^jp@g z(EdHrNx#buChf8JG&p_rZjjE6>~03;1Foa|($$XHzS<3!3DUcUkmjk90gS!Z#ozsa z7#oBwp=&`^QQU3o#&eik@U{j1dF$xs3rF8@1Q<%0U-mA2n-Mg7i77cbF#gZ~@xPAc zj;Uyu)rV$!9Z!Lwk)vZzgdgjKKu^!_J^kT?P=dHF8@Ep?z>mhpc2SYC){xyql~8qM zn_oF9Q6+%Ql%VhBT_iV?MqkS~DU9z+J>&69@|}`>qH+^(QP(hPjzZJ~9tt!W->SBb zP0yh0&hOH%XQJvh=CBH=vH@Xw*)r1WPKsENXYv{<4HRh&$JX2#YwX^Pk^x<~YK%$+ z!gr9gHjOGq@WfOJ1A%KNWcLP->PUqoMN|pz*&E4ZLl@QTmL~})$4&Irb*-Jkakm^x z7rWt$`5loJ=J(OriYQJcRr7Ms{g_u7O0nF{&FHC$(IZr73q1>LTeMgXv>dxEuFW~W z>lv#^r((Q45pT5ZBXRtc~u08y`kMVkYT^vlT1=iZ;e&ukbr9s5z4(oFqxG$W6KgwAbI9G?QzIv{au z6*`162XS_1d!8zJyaWX7)UP;L-gg_UnEzECm78lKdF7fS z%Q=yYP+j>-Ncr%INo>F*(&;pL5DMre{i{u6P)P8}pxI>cCwEgO+nl37hZsyu zBiq%2%o|5$I``CK0=%5tT%I5Lc3|r(^UxkvD;Nf*^&I=}Na&n)lSj;wUxIPdAoD;; zA~HZ+W_11xkdIoxK8jq~P{r-+kZ#FHD6TDn7HD)#D&iFhH!a%H#}P=f0kF6BAy&P

@Ix0gFPCbG$Tw7S~5zh~HpJ&bh0sI+K zxlB@`aPE?KE{@$fZ3@}mSFl~23(HX?Wv_$1XA(-9J3N)_qL#V|>Q01Gs2{cjFD!GP{g4k_I5EfSBGJjoiuZU&flgUX_lMtgE+tmu z@xzRwJcUcTQH%EIRChMd%6zvj0HnO6?AZW-af$PV`c>=9KA8!g_}gqfo%$|sBxzBW z%FA7Su{R6C*3r%N8jW8CL;x=fN1}vFJ5%sHN#>=?AoT*%OS7J4SM6-beEnbdxiE$| z(N&>1Z_O{=sk_;!aq3^}um)n|%JS<~c*P4RRREWl5aeooES zVBv?-fG|JTZ4#k`LP;x0jqi-z8I(=%)J8BVB8USj`J-wRxPFw&j2hp%nN%DQHPfAS z{A?IrI*?gNHep@h9B4KIk}7)4i1pH8^YUgMsb>iTi^Fa9YO^}_-{9<_mVSxYpiH&!?nZs%q3Pm~0h49{K` zz8Epd7f3Dr;;0tmp@Q9m7fZg&Ry21Edb#eGu0C9EE>wV;O z*e{qs_bHbW8E#1_+T?&-nDw|zJ&Z2|vLbqkJhUzFp(xCd(>*$yn8g(0cE?3IY2`{| zCUBMfb@uciq=`BKiUcA5c)&wi9>IonOyd5c>R3dG;7dJ|Q?9SkMeF_F$|Xl}Y$Ma5 zF#&W3>3hFYY*Ydfax)la^lZ_9VM_Do+LS#@6L-QiOmH9GW=`_7Swk>-xzLVDn=$^H zj0I1Re)eSZ(J+#$eJKs>3Su{jlG@q&Vvws=wi!;Sieytqd4WPUF5f5AHXPRi@1rxuNkeix5B6X?B+z^n9Nw;D1goc1ZntU9b>K*j6P0q#R z22_E0ZsgZ>`+QKIBXL2jGTu)N`s`cTxwklbkwp&bxgXvweG7dBBsv2mMWF`^k&x~( zxuhUFLIna4k=z5?Y(oUt(Ct2s<7jN$Jo!pw*TEz6qoQ^eQ7r+4?@$a{={8Ndd^LMb z9!Lc#L3?xuH*F35p58@3EtK(tjegRVpP#3JN*XM45{d@JoNs87iP%PAXNem`6v@1f z5VATZQ0E|lR75xO`aXpBqH9+=c?+G9KZiPo5H?uXlk|K|BaxyZ|$z)Y2GF(qU1?7$q#?lS{=zVzk=&G zCX@zpWd)e!hrdN8>*p(8XIn!tkhy4kpE*c8z_W{Mi=?;aa>Hr2u8gS?5!5h47ukal zeRs$cj63cbXDfkSQ?lC~PayJ$z>OdRBLoRSb)BB`J%VTA44yt&1Y-Fftgs?G99bkg zPZvEFX_%o3d@#o?$${oTucIJ)>dbCg7G`tgsqAJ`oINa88jG5cDsb;=y~*RmtDDCm zek||yRj`-{r!9P0MZnKa7K!)xAd2_d?z=O;DrCDI60h`(Hc;eH6F@rG@%dxFk1&I? z<2*ZJM`w8UJp(r@f?o-F3cuYsc(st_E?jG3P8bV&mPp_Nqkbc#YOPPs*cE{SX9YT)Y&gsx`cE@Li@}bd|;7mD4gJw;^oVR8R z$?(L@TqxJhSIe%1?5h$J>5xyS#m1J2X2tWZu+ok$o~IG{=>Ph$-z6Yksv@4-UEZ`5 z>#t|Rxz+-Uk2I|Q8D6sygpdoGsC7{EV&eI3wln}a=0gOwps!=DX=5n2oj++rr0Ewzis-i6 zcbPuXc(sC-+2resf98b`2!v(U@P>Dw*_AUFmRRw&lg?)BCuMX#;;jr9cC`Yi^Fd01{HB`B>39YxYCy7c*g0i>8>);W^J ziS+U!S{qWNNzvP(R>rYR-~Ktyq^>jDCM4;^m*UBU9+dG_yYk3mL9n-89H>oKDCTmj z7$EV%5T`kkjM&OxRR+#*;3?7Fk~uxX$Q2y=_~ABHi=7(zq=H^ygaVHA>>ZpEx_C~5 z642F0y4{JO`;|(sk|``$k)SN8f~b6O-{sUcfTeagKw@(R=>ofYA+=CdjRM7=2i0W zwQBZD&NoJ7b9$1cM+V6oHz?I8K z0xyWE3M^f)Z%qxyymKIrMe<;1O79)oO)v#|UX9A^d~a=BGTS0dLRnFWQWZ@13S+Mj zzdLg_u4r&%1t|DUUL4P)0N!PDwobg0J_%FCPCt<>SaICO0AqoD%+eK0sE-AU;C8m* z6~c2IWVDawDO}7ueYS4Bauov%TB|n#LuNL(uAH|z$9Ggy7OFK@jL%r@?SK=|1oPc< zDjDOrTbHtNKx{rr@O6SoBoo5MQ>v;BPq&h&`9M_xQew<_!x(+`1Ib}eI~^cX^m%MT zc8+*RudQlUjTWR037#Kj-E_8C?VYTb_kNpg^Dv0%$O0io zbS^2!1QqjxXDF93Q}k^vO}wFVCNfD+xLxt)32IOMNu+VxNWM9(&WIQC4|6g9rSYDI{W-!PmdmKsn;Z38e`rWjnMd> zkRSPQG8qjm0gY>5OAwhVf=?91y`*hOQ+7vp`1i!H5B60zmG!!2_T%iBo?v?2)VmG~ zCckw1Oh=zNz|#Dfad&iHdcqcr7Wm$ipAtH-WX?E}0J??T4las zPc{bxXQw`2c`Sk2T?o=)*xPWgC#zmEg&# z)h45@>6ZW)>^exMrI5Rrx)EaK zH+Aq#7z^cJg_9@p1wLq;+)^5Fq9q%4HoiWy9s7V^+Z)j5li-Sh&)xt6IDu^ zskBna?J?XjOaeQD8q$g|@%zb!y(rTkR&1T9Mr#$dEO&nQkCX z^faNqPt!$K85kRyI20OS%sl03U6+MngWHJo2syI^%lE<2gvmI5O}HfC`1PnI{Ej=| z^K<^qZ?+`W?6?Ql^_-vQyN=^sW3~XBRD{qG5Q%Z@E2nTVkAzI|0WEHP$p%h3vVhxX zJl?H?ZTxRO?d8OrVWFhmA!43>u1ntQB9yx_@VtiEt;?~9q*P6UhxuBZ&PxmeCsW+* ziw4~%SkHB?PG}iqE~=r}XUpPnddtLet{!+5(qbCyrkSz;ahh&xcX$B|cAa@D;q2lz zLyzaQ-oR+E#4i_Pp0EhSr?4Eg6Hg$k8hiJOA4M`-`2}bm%NGVU8BFQ}K z_8mrN@{cAEgjSjgWhzS}j?^%aUgy+-xA%SY**>Yz*WiE?*Q0F3 zu7Wui9ZELUiXZ6honZ@6wjK7JnXWh!qImyo1qeaZ4!UPQBuJw9(>NurEko&ZPkjAF zqFoOnV)*%Yr#*(9*7Zx1lNG7P2 zYEpgC8tBQItFA>oaE>rpbyO_(!$~V-*5|#b-jwqK#=ng_~UaHMKccl;zIXl(b4Me{dqFiyf zP`LAOt*+!7rDjl__WqY8KBGH@vBYO}EaM$?#y1N>%a3yIc zw1p_LVC4_la3d`>sIbpQsMZWlu2s8iyxEpqtROKT`*S+%6_dfkxd0S{_ddmLR7YQ4;E}}sb z)=7VO(}BAn!R58@0*on;(aRa1olsT$<^(oU5|9o0{!2Hhb{a7>Zs4P(32Ni31n{oL zsUBLjnNYomU;1%CWb?&-S?;S*VZ$`Pp!b~8Galv+hndDW#tYca%SYEbMa3+5De*v! z*(0Xtdz6LU&^Qzz0Y$9*DhDP>6?L;)XYwF}qxA4S1`tT%*?I8@0=~&nTMh1FqR3^1 z1xslJ{z#Gl+YUz&(z$c05gWh8VQQ`!+=6HK)rS??q2_6f(n1B)#jwR+yg>!m1%g4OY@#9Kov@engMCI2I4cw@ok17{BVNX81H0)tEqD;5*{zrP9uZAfpBlW89iPF8^XXTIu@965 zIC~ol*_yy_TR?lhUN&%5wWqB>I1H#PdFT-~$o)TfGL_gB+wEaz)oLP3pqhr4$nbRob30ds{3TvNQ2 z0EEN{cxX-aVm0kaUNCJzl%r!$k`A_jY=LdQRmS0%t4=@M!>d%cQC89>2fe_lGQDtb z%`*wOCscY2i9W#2a3OOpPdjf9{a`MW<7xzpkbBM?6mRM6$&CuRl@jOh!zHJ7X3#ot zCND+Da=WWDao66c^OHpyB-%8f0i=g&a!#;U0s{NDm<(R^T8c#^U}-I3bqVAUXGBaX z1Km1m>`ruqOMv{FXsg5b8QXqm-&Of@^R#76dE2QTZR2D>8{js? zY*Y{TYVGK6t$G*9#q0}Bm&V%VW`|(Yt+Qb*zjF%__kAG^Zkhnf#{lz;e;Uf680Q-& zW(C^7V7~Kib-LNt3O3h909@qhNek^F(#me>P?sO3586JqQ zhT}qIocgxfs>C0IB1D;^V2aSs`+jvWPp|_3Y!nz?5@R^Gt}KG+lp=WYSbw$6kQ7_* zQFL9#YJmyA8K9s9i5LiYHW=ExeM}>|%v`XAqz;mcz^A#6Qatf(Ca8*ie=>06p+(Fd zK3jz76$Cg@Ec9@T5Tb&<6&u1{_)_G7=8@nc z9dI2&7@M&zVGBQ1Ur2tCK09qRR0a~EZl^5lR$W)wGi2^)x;5Tt^qKKQs{PJm676>p z{wFxg@l&87j(KpKt}0w8+`yHTg!DnQykVed>2NnA90BT1hm^Ey+1#y{LHS%rPjwwo z1h*vurkRXKE)60U(kcjKd!wq=YDKWG2CNjtr7r}jOcOGmZpGbZ8&hyy<<@$*)-{LcgBbh5F(@J?57y-{fk&;(6bgV+ z>|!Uj!PEN^fEO#1*1%<97&P$qR^y=MOWqXplE+Y%=8RG62o~VS&*LRM!;l32b!J~) zvok3=RDSJD;%#SA5F}blaln|d3wqm5QDMbclc$TSiv7SrE0pi2v2&9}brgR>>%V(3 zQ!Vsu`?dK$G=>ZEgSGu2K)r7>m3BTZsFt+$ilhZg;75lxH8ZrcqP&0Jg_W(ah{6H^ zj%z-NE3!SnhOK`OeRsI)9HruH8lAq4W7@N&(ATz7$175jZVpmVdt7d+Le7cp1ZE7i zM(ib@a7fVN@tC|c3OM|R<*MUvUTH{M-M(uEVKF$&zEAA>tOGKdMCizDP@te~g4j!3 z%jIDI9ZYZfOi3l^dg9Dg4vH-^;S;mZ@`>X4@lL#BhX$1{^y z04_Vcmd%;j_UoI>9_>$!8H9&3s+oOOB-xmjrZ;7=437APw7Pq6z}qyv22WBElFhqE z7_T|)wat5wHt#|Fh8jJ7y>)*PMugu<@C1qTYPBKZwtZTtZbujC*Nrp(G;j~%nTF#n znxzfj!K}bsSCFOC*sRmS`3WAaLh7ia#eu*?rvej)Ny_8*Y(w2)Tl^&`vpCMFY=h*9 zqj(yD4X4~p-@dhL$X_@{f4O=F(sTp$qYtgl$V*$J{&P4 zjG~B!HZ%^YbNIfB119Z_RVb1&4B#={0PQI67bn>QiO0MJUT^F<>qlQ|(}cbg7Q-A% zS&XK*t%-a@-80~nxsn^A_g3^oxdf4B8%4U^)-ef>J(GaqwXL7e4>Xi-Xlp;Eg~0J; zU_(NV68$9U0hJZSp#hS{yi<))bqTo*2I&{x8g-%h2)UFxBg7`(*o?YLAK`ARZ%}U~ z>8RYeMdgky(vAnZhXYWFg!1dOXk%|TYs4grt6Fvpy5|Sb8p__ODDW-{N`T(dk)wvK zI&E3;sJ;eaQKhY>xKF$f^0+bH33z1Xx8|}}>`So3-}~+_p>VLvVkZLI^l>SEvaxK1@0DJaL zV@^#Bg95R{B*Y$ogl6`V2RLR_A_ss?Em8RvB-y(gAexW5ds{XI?*VEU#bqOyIBtN+ z0BfIvQ9-~QX8|z5N%e(xdwz6O#4w>|KgqE(^L4i!TE)Je4J~7VKF8J|SIi>Rw*;DWmJg>m4VyFW6m`ZfEMtyCdQZqIy#ctfdq97%ohVlnAQbcwY6OtBLs=& z%xJdn^m&~TLOL{bIGyYQi7ld9==?U+Ii%w*CGJ8UEvlNA;Q}+7uHFLUk%3uS1W!>1 zaFpKxa%fHCL_Q4VV7)GU)j@evz)^5-sKB7a;mDFgRmtkoTUk9N$9#3bFk>v*9Ai`$ z=lr!XT*R}KijcXnb&m1uj?@M$SiGn#>j%_W<{(lztFn@PA=(%V&cEPvf)mP4%`}5C z&b}bY-qld#cZuk;_YS3Z;HTV#l77DVy-obUNDT>`R5`HDOasDHKXcBl#41(iqL#6u z2r7eY%wKKJLy9efD>W^sCh;fnvR=v0S_IAA)=@J+gdY&^O&M}_#sxajp&5^ih+M%e z&UnGj=YqZV9^>O)LjlzcAzSd@f=uiq{N${<&IqKVwvMeckZe z&K<0{IU-~wkm8EP3UUh2jS@;^O&^nmU#C~pVA6`ykK?c9l0hqfO>@skq((UCDRd@kly?a{Y1HLa1gk2py?sKT5a1baTNE@FL~3Yw;peU4JL7DrEeqD z&l0>f1?TG)zW{tk3-H|roHjs!BJoB{X$-Vo5rj~YLLGvV&%t`=rz}}f#1Pi5rLB+S>qVh*}5ouj*v zMkK}t_K*$Y;h-%O3Z?Afl%!3fk1Q>*TST)&f zjISo?6P@;U+Pi;={eXtUMlIvfen?N zY|#z=Dp=OmmLlzziYYV<227sZs(gE;9n6dzgmVJ7A#F1u+bivT7PnDZT!ei_wtA6v zyh=M_X-{i`q#dW>G16|lK$ATz(C9IL1*}eKdTTsnRb4MAR|apS;o3xtOs|kaOaEmD z(ZwQnV0mW}u%oA(k*uLi@|=4OmGsW-o)5cXLPBdf%?x?x_DpV~HbwO7iXaog+W(qvvt@XV;c94)W%QMSjlpaq$^`s-$f_B7 z<+WwPY4i6|0tTJWQY+C%0_|`!$Pm!aJ>)D}WqvKS1Y4=Dbk?s+iKSyreJ}g>1>4qD z$G3EQbN{Xh@%X-K61a_%ReHmxlQS5pkw(w7T)2T`>IXmOeg%(vP^5DSd=H3K(zZuI zYRPE(MZKuTU5|GWYa;5_>t!J7A-`SI8UlePaFa+l3D(a$JRC(A_-a={2>q@sjjn7M zBLe75z26bUquhS~D9myG`T2cpd8k&zE0rLCa0L5FkBlxeAiN2Jekg>P9MR1!y0%C` z@-EwVaJ~b+y=2w>C2PGF1#~&tB&p(f@Gg7&dcNH|^6&M<;KrD~O+=m9uMH)^I5T1I z4f*@!c9092`@UIc-kXbFJ*rWW<2G=Dclb1aJ+8Pokbo*msvg4h4gi0N<9MFmSK1+j z_#UNtURUvLpY(Bpx3ujpl^}}t7rCJ+?RQ+f*8L@|baf@Z^a}l&?`DiD6v=4w-czr4 zH@|DgxPSHMo%Rfb_^k=43~|B~o35gWDxo=1<_lXqZ~wU_bK2-x9@xwSKv{2_DV&2* z-Yx4!Awj(E4Jn-IXlL+YL%D9*8R_U8Th&;stmpG#Ea#KQ*nOKja?f%Clp>u*kGgI> z2&EX#9J$m=Lc=5s8&#@dy$e0m^Ub84*XNs1X5;yMI~d`C$84hg2X~`^SLHc=v7H5; z9|sfMLW(e+g!PLhzotj<_}yj>h0Xc+cVUvH{q)$5k6VlS>!>%N3WEJ<&--t;!Hwa< z^c>uyrqUEI+t3nxbV4(&p^o-^F#0|)#{#N(2rtmc(KW9H`MwhyD{TD*;`zEBk(}Yr z=LF}2+S#+|2CfAcD-^_nfYL(-38R`_5Jx>gK67Rne&F{$oeZoPHoNr?Z7i1hrEAq& zURk6UR&}4ZnxZXHqY?J4z*;2H&`)7pRRxTKA-sz-p4*oas}q3NW8VMoio)OY{XfcR zj3$(Y$31IMtfxmHoNN~*h67PLvbvYq7KNi=2O6|H9dYnf4wlJznl{Syy;FAPW1%%D zL&nV=iaQ`(VI43$o!u@rjky0HtQQQu?hG8rutrbm~GPy)}8mrptb_rG{^Q zKC@$n@+klxBoggo84uup*jos-i<>W2_03kWB zfD$ox>oDQs(VPiX;9?yH3~-_s1WfJ36F->fd-4YgW3ul@M)rcP_Ser*T+I1CQ1v!W zk<+187^nb+eFTVXlGZUOM;;x15Ohe+&?2xe^W|dTz z=1sxJ)XW9YI?9S^`zQ)WRIDdo71@#($Xkyp2%|G7yYU32aG#oY3;N!h<%P$fuDB}O zR)j$#DjiSSeiJuU`uV}`I$os43`0&#g_}p7=HngL(W}wWdqMCjkS57U7?S6Q;Bnsv zi83A=X|6&Kjktp$?{u5#VUCm#&&)KN^jGN4ZXoEZuqMe-ycz-GEyf13;7~)+dfij8y|tz~Of}lj zTw;PNOepJyG!)FG;~2jH$1kFc1^m6v>=kFYsOxe6yk|IwHp2n6jWZlm846ehZ^^_f z7b-B5!tBXI-yvRua4cg~it43Kro3l4rJL$nENCpFrcU>{T29`%R13I9g50%0yzF#5 z!uMi3^^1sB7w9VuYBv7qlyf(R5w%edK_n(xu9?Ia&CrTPZmD?yR-86nZT`UO^-`m~ z1P`pM4K+r58$L#I6t{ZS{GJ*(i0J03bdqG449U|o?Hoc#3~N@m^R(!NaSUXe?zEiw ztRGQkp2tvhno+&_{=XHWKPj}%zhDJ3C>9g0lgw!Mhn1whmQOIK^q@DdH^l6088jFY>jfluR zMyuB>k+-#~uBZDKtIlBQGq!8~VZ zrY%=OrnO6`3IJRbQPq<+O+ep7)wcVj0qzKqj3-7T$PAfnOVc(~%iypLnW;Z72P@r6 zu_%%+cT;?$(8AW1px(VR^eyykdr1Tq!jJAgIcNywgGjh-FYX?HLG^@wO`Yf(ismB%q5$sz^uWx`lJ>UqtP?$7{fg9dnk4BE6q?erI%CKHD>AZAt+^$r`G=rmo zdkgaIIw^2a+8zkOxlr7~!)RUcPK-z36v(4SbKWi$o)NBAbGv6C^-5|)$KEz-#8RY| z0*XKJ46_ieQy=LkB|A2%OKIKY?&Y|t2@u;M?AQ(?N`}!LezXF{d1h!kMvDKPKz6(G zVMQX=w6@IH6Qf~oXGVzHrbBG0UkHd@g``J7f#PGNMe=JfqfafOX5f6u*Do0q!heApCZN@Job@ zFsP_1237*tWKTW$q-?FvM$*2CqOaVK0T*=u9TYDub=VTMld`=|<#_JAPJ8iWT}l;P zV~!}LG38)LVIR}iDCKb4j{#&Tx3)ho0~3lVFwwHcq{Ki{6&tZf4{`=cp~Ggxo*yU$ z)}K~ zo+r6QhA5*K7D+W_(_cxZsWV~L*a3P*v3lw&D0iPEO0f#e(I6NP zg?%5p*|n5Ba8f=Bd4nrMQSMw9K(T3ja~r24=i&Ov%M@_P%#2pDVQMT(l(K=^7+@%t zFj|hbWujoj4dxUB;7~gnb7KQg(KsDD=*qn43+05O;a*xu4wgK`?NNe7ApaP{i$9R!vdq8eMa+g7@-z>5K6>S#X3w*2kYXlSiDQ*`6|a>Ytx!7V5J&b++P z1V5o8c7jhF?L5c8kZ{{fnhS0@yH0)Use)s@hy=fzl^c!xNytmWh&l5yJr-l;io}_n z7Xg8Dwb~Vxel6cmpoiwrXYXpfAr;rS8u&Yn9<@#B$Zg;F*)G~O?Xmp?m}wJ_MY?IB zgycY1e;4ra)(?uEkpxiZ^CG!cB!2SBUhyRQqcz{&lkOe)aBxR+=Paml;^{#Tp9<(2JsNVWd#+aOZ;e0o>XjWE;;=a z%*DLjxcJdpfC8bG;H@!ZhS+q1ePV<2f`0Ui0iQq;L`py1%U)u=>CMQQ5OfP2wLni_ zza|8;l_oTKdpKT683i(#5`1}D7uxSpf{lRjs&Z2eS^9_Y8D$Ry^^=O;*{zmcqF_VA z-D6U*16)OwZEOtd1p34YFvOZHS?yMZ?N~o!c(P{F;cWDh~ z&6cPk`|e(zDW`8WM>_52tTBRDHbR|vPw?kj(E2&E}8-VNuv-Icf&?~>Z(B99k zHVFyMX!(z#=Q&?SWLcU0!IZh+w9Xdzuohe4e5p^Cj}f_DRP=qK`s%H_7 z8>frn4ANr{P>oSyJk=*%)B65u&rb2lPsKu%P|q^2p^xtpkWP_N2Rm@TpfW_mkNCyX z7EGrP<6R(aP9TJ3E`*Pw@Yf8Ac*@C_Q4y{zd0T{=PyQ^jGD#;%%@uc4Sn>>F!gz2D zo5I&Yk~i+K0})Hu(2pk2wP2oiil#E6>LScQ@-G1AiKHY&G;8E@nb+bScbqSJ6wB|5 zZ)iTfOXo(T8ifSP5jNRK$-3nQr#t16jQ25pBm7Zg6Z2z?Y~Cz>zXl2d^6`mAbe+DdILhu*nYsU(l`t zm9C7ax(GACgwM{w(iPWF)>dcyh`Q_VpaybMV}b+*ZluJ?-R4!)PT{YqjG)1tKuNCB zOz&nYBdRXK3?#SQ_Xq9mOg&k9J5xtz+9sGd2&2S?Si_m1=ak$j{B`Q}LE!uGsoJKp zG|~eb2GSdi6%L4>QAD#wppwCv89`8!#oTHI))t$Rm%c}sfQs>E!HYcAqB7-<0ZGz= zFuJ=BQF2{r98o+aN&Qh2s!a$VQ(t8a>P zQ39_W?oIK~%Bfzj1m4w^0z59H#8zSMe|8FgO(RI+AS5>kx=4~49!(KuAh|axy`2lZ zi=(4^^Lz=7@^}PB%+@2~iZTpB z1H1`Ex8L|lsVwYDMNEU}|8$kDmPNCjs(#gK#)#3(5&NFQq@`H=v(%8UmGXO_hn)~w zKz$J5v-0IXUtqy^d9uXj<3Eh)2h)Z!BuuPdYLyHNx03B!wQ`ks5yH42zDR*b<|1|; z7dsos0a8ex3(c2XF=htw!c^`E=!Xzn##%6_?i=+*bV1bet!5r=Sg`powI+wH0@q23 znJ-dEm%(J3hg!h%Cl2HWF!7iK<{eL1CVmo}=&(+<4^qnZj}6NtHe`~dPRop2wFY4P zgwo(bqWJ%AVz)s>S|4tL#KmS{2i-jI4J7i8AW7bcq7InYB*)@~mhQA#?hUd+5RoqX z6by&^Qcl+XYcIkVB5B!GI0cm)-nmIRajY=3u3bl_gDbz@TJKvbkq3UuQ*IyCB7~2o z1d3){XcZ-#6dz}((?-b@NE8-+XW8!oD0F}3uG$H)Cn4w}Tv_aCFERn;lFg?V89do} z<%dB(^)tL)<*p()izrnYlK<_^2%bL0UuPm~g8Y~`I$jOwjqexSA3A>jwq7&c!|&99 z`wjLiORYWx`-I#$VJe;VOcRAX{6mhG@(eeX0c=$%W8q|;Qw5i?k6w>fQyCjg+$eG@ z6QW76-Dz^k<3OGXi9I>qH-|RVBzV9&)OC6M^E*fTsRDBaD*{7rTxa~Am?$-OCTeOcSRl0nljxSog8HbFNvx&W zW}w*QGP{3dnxL<3IhqX8mefc?>u*hA41Fd&Md!Q44x`Wco-|ngCO-|aznE_?&UseV zU69|~mVENS@Mg|2GW(K+MgAtG(wPa4#8WE=g4d~bAfP>ybX!NduLa=lj@%Y)INF}T z>m#k#U($7vMzm%@*;k4uQ`OKDR6t0IUrO{K9SN48OKeG`WUxUVFHT;z5_m*i4CWMg zO5`!iFyn2-dg;zCBsewRH&FaBKDAtXJRy~imPP`pzW_#iC7067y@_5-k$1}K&R$#M zd8xSD6rYP3O3Rl*!=@BCTj~|3UviLWp#DSmV5WmP^>K@gG7QW*y^>BvIhlhktTOWz2YDM6_&b;2{qsMtT7Fxvydb- z5CM&L0mZoPmy*@z`JBgD?o0*`GIV8KnC~x~wEu59j3CmBv$xNojw{k{r(LT4n7Zrl z+HdS(5rIjnmM|F6(GQP$)@&jd!u+g~PqP7uHq&VG90j@sfWASP-eiRs0i%GBoy3gF z_IwN5Y;FrZZTkD3f_VAIdX!9JwBSt(Tzj4SjWcyeM2RN&dz;>z$4v&4bh3$&qr?*4 zz8zh=GDKa#`6;LgorYo)hfZCwu{8y9B&ncb(zz(MxL%#VVjJ3(cWrmjqpxkv5k>MM z$~{-bye1)}rDPI|)A#n~VcGFVIIFTvDLv#o&m((U>8Bo6_tAVhW1ee!!({g`!N}pd zN$Vtk6Q$IdG+Ml+(xAZF_6ETgrGGeShRnN$NtEDAC)C)&mQ5CG9sT{$`8IfzOkRye zOF9|HJG8Hqj-(qbBb0Sx1}?9t$$XA3&ZaHnn@&HuSCesCj$w)xdrh^3vu$&IFlz@Z zUqOi?B$yed?iidq10zl~)sg$=#4TTjVgLDR9DE-E`r%U1A86SW*;Nas^BC%rF1(3h zu!14If=N9_Aq0WniUxq+BGh4O4;E%`_ufXE)?kF>1KfB1T6_C%MV4~dY#tkkK{PV~ zslaPyO(T8=I-0udaI4z>43fP};0T-YcP^qCxuXzDvVz-s8T8kNz}%5VrR1+dh5gMJ z6`tiX>J%vSGM>Lm=!aRT`e1O%d7ID1#!OLq{{3mfA9FX@2k_5VR`cQuYkJWES% zN*piB;BGp!bRTo!uk|T|e)I|sEtSE>VWNV3F2=zyFpLwNE$*(4-q@gxfp)j{5v$N@ zDct{=#Jchal2LAW1;CF z9}#>GZE53qavSIEB#A_R-mw|mnZQ{Noq3+7>rPc-A7_7z^LlY)JpxHmI6Y(z2_;Dx zK^ZDJ04vR)Y1sauPaxR~=@pZI;I<`ukn)Z?!(7`lVDNGVOy`)b>kBoO|80KXi(F>@ zX~C|R_w&W>+^v|ZjqV;Gfkp-C1(^#-pg{L9@6(QR^wJiT%aBb;SVyK;jpZ;E^kFLG zQ5j0H$hIt;DHfSwIRh$691I7=u;-W?D8D>zWE*_*YD`qDj+Rm4ZNkzC%f%{%FzR$VP zNS?$(18FDdz3*YXW8Dx^Mt!3GT+)L!4{lTHxQ7CF24Vq&I%U6R=yC@m_VHFM-R^s2 z<-Qba?w03E@Bt%?Hubl(p$+BBG(X4LLH9JsJEw0hz%~{Em2xd$%7sn(-1QB|yJ0Hr zMv~PG5Jti`UB(k=Es*?6Vl>)31A@8JAQ zz@%%t4=CxC8sYx532u=0+3W8Tjh@Xh}~d?G(XUR{gkGI9-;3bED720;QE2qz?6POW)L9 zYPhE+eqS=nX-?!`7toH$6W(2~0iJp5*v=*6FT}K&wUd6ZF;U0H$u9V%%BIrB^OYK| zlz5?#AZg+3#^t8eEm|ZsCD1%Vv<^ZXg>(__BqqtIJ(8<`4U!^7kZh#I-3$dYti9Xn zgN4T)l|4L0an7SLVlphL9b>dp7P8FI7zdU3Zc9y4`%_FKwhC8~R| zY}IeH#^F{o(jU>dwQRvlyIT&$d=)e zeHyvIC}7aYCX30YkXkZ$xa@*~RNL=4P9E z_3vUw{Yb5iXaO3yK}?7lo|CNG6_=aV>Pqd`YD+|-Wa045?=_?)@` zZY94G*lc`+yI@`S=+e^{16^Dr!!H}u-jv2?lwTEnkMMi&mwK8<%~l5Vu|F@*8LSq& z!|q*up7%fXBIwflZ3x(hE`r2|bSr?C1kZ6;5kRB!hMnRzHCCGE5;ikI8Cg;RTYNLO z1BI59R5wCsHz1eIi&60z{c{6oa@h4{`~ zBlp21n%49c&T1i4Ou!>T6g(n>lCG38w&4fUtqjuVM#Dqg%6%MLxs78hb{uz7xvNtv z7b`nRU_fG7M5qKeV(GKNb6&n%tO8Y_kY8>#d27mJ56W~6+CP)2>|-RiMDc|Ii2JxP zv4rtHyHhfq%|d_W&`$)dB3YadSiuR%H5>bw*6NK7Cgf|8vUh318hQxWb&^g3%j!~yN9|7A!6Ox^TuAh_#1W8V z2?1zToCDnhB=LZ1=3+~Ob|XDC>I#`u);`Np{0LMton`u*TUtn8h-na!bmNW2>MA5V z{MRyJ@&UBQ58AG3uhoF{J$t2M(wZa|#R8Sf{kWudjv*HiBpy{2FBESm3#Uz%tsW@b zH2q}jQXk~}7lS5}$0!p+{_Dk1{i+!hen@pyZ3;8$-zc5`O0wk6y#0h?corfGdm=xCz-OiU5p)6U@QNR-n zm4|2&fo_dT!#`_+;{O9RPOAG?g%$^{%`WFRPOjuSNn>BR5g)>&dPHnod^}ky3YVqu zU`U!ecaTaMq|c33C63$Dn2(Rg{Fm*-YPwFuqv!9t(C#sOfR{f-O?)eT^5&)4(-9)u zWNfs(${NzRHI4LpBPXER2hmD4Zt~DlI(d`sQsQU(a}Zoid*9O@g`Sd)^*%%0XEpe@KcjDlS+Ca8R&)oY!sVWS|jh%x{^K*7HYFC;iU>M~D%7ZWRc3oFSs z75+|q-&Hhm*%m~~*nUxC{EG{<4(dhTt7w8#_eRVeRr@ZFxIx<5HUlw0?qANBTJp9m z#sR3i-{36@Amwog=EsEl5zMU!a}kWi_c^0F7@-k;EzN>I5Fg|*Z0$x9gmLhS(K!;t zrepQIP7s`gxr1m65;SjK`cD(3ZCk^g*8QR-Me~#d<5tj9M#O8a^c>oz1A-!OwLkts zA~mm&6el>yq`mJg^O0Y5S}0TZ&raWH%-t7apF~57v(gVL7>8b5Xd;w&CGJMWP@`X4 zsRPQ^588zkHd|zgZL@KTT3WmH(#tRIvTLu8i4l79uv!_e8?oV%ufe%+Q~Qw4u2MUV z#8WRM?!QOGHThBJ1>33N-eaP4egQ^-zMFEdGgrs6GneZgZ|%&{ic#m5{!T1#l_G>2 zywZ-9rZ&6`_d!F8ZTnI#4;td7;`fkoD_<+TUYAG2TJKl(wWI@fGE?AOe80mHG?FBlI*{d1a%FF@5r1UpYTtMKuJ_&G;)*UK{ri%Oh_#F#o$ zjAYwy*V_TY3-pq<bH9wHV~QFk7Y=({f~grDfkhn$d33O^24Ezc>AznA9vyarEC7Mu9U6sCRw; zJQDXdLzvKco&PAgDXtke14#n^AR28#IQ96>eWGd<;UbvV>t&(Dl}kn z&(W*BT(nc>%(}@5&hvTM!aYF%=?RG<8SoEL@Rbqv!1&-xW$KcRx#R4=^K=(`J)5Ft zC_fq;k)BSP)^kR!a7xE0r+_U)X{f@&EOJL}txRN)y)L?6=WuDnK+9z>a&2RwX++R8 z{XUm3zyAxC*+-WC==wIrFQw>c?%m13uBN?QB(@d_)6|^*s4XSV*`?4>fvNJ|%7=MI zg65y&(L`OH3@A}A&26l6t?r?;z5=#T~&j0@ZfJUfTQ#u z1*coW3UQm1i}n9Dg0EV98%p1f!Q-i6}M8QD0y*iHdn=7fALkZMU`dVRC$vW zni6u&?fmYuKq(2H{Xw$WIiB-~Mw{S^52*G$NSn$uv}QjH@<)9ZjEq-jjtca7-0Rij z*A*NC>8mWy<*1-~@wKkyI8#qe+dF?dv=w}0lNP~2Dl~J#S}cxs_d^tkD!$k9`x&ak zBNTm&YZh%C>ruKJRCk|qPFjzR`{{}Eb-@!7%LpE;C|u!kbYgjNv%h`!*Nm~LBcbSNO-nTm8|rkW_ad+ zqtK95A>xld>-5`ECogVyi}ifU$XvDSDW~WHxb`uTJ3Qcg`K_|3l#(yoJ#ddhQM3h) zocqBZ+gMNFfrcoEOD+N1=<&C~?O<-W15*u^5SATRf{f9wu(n_8NC-xca}C173sYkG z*X*!rCfM5;3-~?PUx6HE!?45k-atUZ(h;Xd(5s$`81>`le`v%KR<0o>RM$mF$$$B5 zn=Y5p9}NdQYM}mNe!RFe&C(Fy!SA@gGzRH5`u|cuXA2+5RP0~4{cpnqb#jRtR&~*i ziiaqceSOv%*lz^D)--OH84+%F3eAUdZtq{o7Px)AS=G05x2n=*HlocvwjA`Z(Z1N> z54L?bI|JH9_IdUI8NS@0>bI|p0x~BZ-UPhkjN}a#YpSXhEYq@J_cpX>@-+b8pKpCC zOfn0hZnWuNk8KoPgt~$fTt)ZnWnw-_>r4?xj_ABcR8lK}QorIN?I^Oor;!U)f3E}g zUw;q7gK&HwhoU6g)cwnI7~0G7hmecqd;XM{+7n%xC~9J^>hpP`q!0Xivu~Nd<^7?m zza=4W+vWArxLgc$$IARNTQ2k0YR^qa1h`8l!mWrowys`CO+-7h3wtlrpZ7dFD+}-p z%+Hsq#Ctfd^BrQRaFH-lIG-nN`YOj?^I+)H*LKp;&cYfGqq=0U#-osd)Y2%^5exhr z6Vw@l#D-7pIpiUP1OzH&DiSHb#e{V-IZwu)SCiiE#F-LFDId`e<(p#jlcrzA#zh5~ zM08=nWPIh6eFbx7+;Z@|oYmbfwk8@F!?=KBEU9#^k45n|Xd+)!hfjb!23nq!KiQ{A z*bj~LrunQl)h5Uy-vF8j$ub}}N@lw8)Y04jSJ}+@a2}E5GvS?>XSd1*9pGw`Rb+Hm zKx*wqqBY<`BAb38)v>0ajNIr5cU_aaWK9Hz;p!9mENY{#P-B@FuOCEOHUdz>g`)Qs zZ%A23mx}Z`BnJUc-8jF){N*p|u=iOZ3YBp9vc5$W($LHz$DSVMkt|ffj!_|L{EaZK z^t}S5nRhD{;!%S2+@=pFUtXd~#=9d+-(yOCLkCO+=68r#arN*Nz_UCx(G+P^N6zVs zgU}1?J~!2is*$P-V5KA$iT7^PDLz{eo;aomQF=LPBbA`vg!<6cussE$Gd(83QilOR znH!}@wUIEw1fPC>usKDMFNy5D#`o8YYk7EV1?a~YQeyYEu=dkCZDT=G=wp}}R1GCn zw=*|qqZh&lQB;4n_G20EONMQx;Lb{+o%YT;Z@WV)@1rSOCfB7smWm~<0!J380Yzc;xKoZ*!LZH z(XgOMA^3x|)ySJX*MTdgd*9mj8bdiWU?)+e*gIYa8^pndL;9N5yg9X-o{SU z;#djZxS5mYQ{2L44nRasbj1jh(PqmSz~e^yDN{%-UR62WUE9v&Nu*QVo3C!`S6{I_-Oc@yz z@Khi~5F0!bU+)S;QNR|4;juqC8wAKMMi?MN#^1F!IsqvGBc#dRW?p|LnzL@=o-ik~ zO}ri)Cs8wXKQhl|@>KUo1O9}xpNC+; zEchEm14I-JkO%Hr3>)*!&6>pNeuJc{ZIHz4|G@jrO#aaX$}*f*ihEsI8YpFkfh5Rb z8wYPZKp3b_M-8VgjGCjPO5zl?3ZQ+sA^R38NGkG4S za|6+SWPD2k=&BTJZ7{+7vjhbXREVLiJ)9}dA|2ChKmriObZca~M5&g7VT58>3Y>$j zTK2O1SbcV!X~TjAWOgG;6%_EJfNJ(x+idR%$iO#iRpF!=(guTY*^Vo%RCuu7befgl>N9P&O3It7s6IzO?&lyAxV1%!mB2i ze0+M8xM&2 zbFa{uB-aXiz>lMxr(@T2V2QbD#OoG<)#3N&8+l&O?|EbMQT%>eWlu}Rp;k4 zI1vyZ`c_>XLpJKGM}3~<*=%*B7fYaRt8Qx8sBR|(7R00+Qt-@oG1puoA4OU!^$MsQ zBR6WZDJ*Me?KntFbJsL_$cGS|JZTpbhsQZK-x$l?QIwtpnD1!2R9Hn0(l+K(v&w;A zKN%0Ux-hEKib{oEtt-b>pQA$Q%vw6!yQ`2#sofv;u<5<{=9>xIniww7Of$0HG`Jzr z^w!{5_Z{EJROM0YFJDm5eL}6DEPK&HM7Ryx7apjT)za0c{%vqRSZopV(BrpJzy2LhAFBtEj>IG{zFPE8(JJjx? z#@aqbfYlmn8`~+R@TZ~PE1R1D@%u8-?0k}0-d*inT-s@kS5*;J#oyaZdXNuTd*`EV zL7KLNO^nt?^9{EfJHc}9hv@~<0yXf%%?zMy=Vq^eDbZ00cEz(84ZPS-REu_S#rRra zkN$jbGxbznpPi!TG;N+{1JvO&|dZ!{Cux1>?K~F>i&6ep`sSp z@yqU^W%RNgJ(6I{{A#Z^n@^ddC`;%qt^IgAT50ReZBV9rMxe0>1^8e*O2zFM^ad8a zTZfPR2+9)p4HZ06yUf*9JT6lPp}O;YNM~WJ%-Hg+#Ryiq4joXSpsE2P6 zPv201GXdfEmXoy2*7-j8(3NfB`hXM7Gx3;j>)65%=PR(eCU_kqf;guj1-L#R0fY*< zC!~`!8*AH?4)wTGDPpxoTl>qp>r!;mj$%pX?@+R?W+bZx@E-G`=M@-)ve}U52k=%~ z_&BG37kL1uCqKp+nCiaS-scCW6=(WvtSQUEJp=RSF-|nKYDZ?}wO!8-)R575(UT66 z6$$E~9V0V^)ts8hG>ebiKbv}!ZU=Km$Hg`UZ(dDin#sXF{j;)?dWUA6efSb}srcbb zN1kBh8D|4n$pT1Y=3ekAwCr;@;C^Bp{Q{15z6>!Iy!fv!m(x&+5RneIF=iE-O20aM z>M6}k3KjrX!iOP4U?$SGK?!O#mLlX4i|lV;ce{qGbb=!J(6#Q+tsW@F`r&6z=A#@- ztJMo5^gVzo$HFr2>COrxj~6NwXQ7viLxbzd;d_Of_71D1O*6pyNruWWK$J^mlfZ7f zO0J!!F_dfHmsibnKfdoAbSr|vfoRn@lgYMq1@HDQTHNT9?5D^&9DLQ8-k?FU#S zUIvpZi;xf{?}nn(u_OV49_GDBv@&K*$DNVca}M)s?=B2vJH~q%$U&rS+$ht|9rDa? z+qNAt-_jvM;uo<&D2Gj=0EypX%vhRlXto4rqN~7H!p+TmRj+YvATey;hgWuhUfKDJ zt7%5ArkvE&uDUS^joR)fr$eYa4%s6;GGHCKTT-6!le9^E3ihGzK8a)OhMV@jlTBS* z!jYG&mzF&AVxI#Nw(}r=6$wjAd*W7#)ri1hod|X24u8l>nB-~;)+ldL-;=E@ zvl7F~^1Hz3Qli7KlryDXcYCG;ErZ(TeWfapg%m(dO!y=#H6~aw#}`QUtjZ0V;fkC2 z!9^y`a^?q3vRs%N9qNrA6c3Ad+)&>Z7ocnoE5QtnvTB>58b0Gyn+L5Ni<@FC;xaOK z5Nnf?K||yb=;l4vmI0wYC!4n3>Z7Z>2_fgYUrODkEeLNcRx`(TDl>Ujx1Tm17IHX| z`xkF*2J6J_>W@CQFfSzHe)rd&<&L7Ji~}+e9xkTSp5GU73jeRGtNu89Q^YATXV+cc z6)ZQ!BV=egLeCnvz@X)hl|!jB%@`J})d zJ7~uUtj-fgyhtRaye;eX7zi z>Ri`BS`60Z{uIN}kW8}k zJ1Q_2l^Sh5V;)bC5LDprCG0~^iz?(-OqOZBzK=jhZ8WBlgXIDcW=mC-+D&8I+c{Lc zBj#j^Ix7YK+C~EVLp-R+6wlNf-F{~Od)xld`II38*$D2++I#kcRjpR8CA2tM1E79v zj9rS!FaR#f;KCMaL*)>E}U<7L%!$?EpYTwA94U+Ksu1;qGmz?T#* zA|KHJT0mGA$MHRqt+XR+?wb`z`+v&^Njpb4}Pgc6g%<#r;o9m)4#(fXV zP7w>~Hf>HE&#tRZ=c|}D_V`VB-ebiLMXR!3|B8i4`%@a-*(6#$&7~dHN2oCeY1P-( zt5Qq{3$;(%qZ!BpEHLh10<}9^&uYM5e*PC=1HrT`Ldj`r`CixP!dBPpI3WWD&~Yl! zyhj{xBNw6YP!>yJjt6&^RHUhYQ`_p0KR(YL5(QW%5BkGn!gRoZXrSc)7h1+9fBkO7 zwwk%fR1fQ0VYo}QT&kPm_OPLHDCj#5-z8K~b>*9c%9roB{gdZa;`P%3Qu`|Ja+Non zkQ*BpO%4B23ja=YIpL0#f7aHcTQ`{>ZN13%SS7F!^<+C_U+}ECm#Hhr>z~E`b}B)I z@z@T{%D&AeIAsQJ={oMWiFOmLpX~)~CQya`BBHhA+)RPLtw!O$*sqJ#AIl3`*zD@E zE#L0eNi>m0BLVXTN4h@y*y&rC4#X@slP?}yih3ciQ$$_2wV>acSBmI#bHi8n*R)Fe zs^#x^I!LPTW4l!^lwF0u@||refW=#zkS-5-yRL3b9Q&}e`vx%+jv-w2)eBL|3{pXqq#3eE$qdrJbTP2;O zCE;Zg9`eypn>d;=9|rII`T1FlLDo_wKTg=VOkmyk%hgujn5Fg6&pGEy(AHqORh_(5 z%o|lk0EU1y>b|@6s0#ciD8{Zz)mwS;SFX`Y&LR1)nt*JcejXJqzDS)s;A`k;EqI`% zKEQG@~19SNE>n{>yj7nVQ(gICNO1d~0TTcK=%m-21s?^B*hpV79))q%GV{a(hEiv8bI| zA$MijGC=FwUf`m{Q175Mo4*H@l}Wsi`aevvaaK@cC0)i7`qm|^d$cY4GEQ(YkWwPP zga-E}+44=YH|r%P8aGt$Vjo%orFS>)<;!w_7Czk7cSX1^;$XS{$IjT*Wo*Q=bp>Fo zjycJmAJ~SV9li|qMHk=g0vgc;7_lFop5w;yfhk)}apRznB^gbmJ@Ip4nv^(> z8l6!F=7w?$1Y)OD;LtP19#6N6Tc)hgw7)Sv z!q29|-WzfId=*+B0fN zWY+TD%_ZfBP;F27YwiEC$YMGlpBD&sps@u!v&5JV7+~FK0gTNMv}Ji#b}gYL!-FYh zFr{VKPy_>X6vO=Gp*{D$q8f#mzcu%jOOMOE##KowUU-L7f-90j2~xfdZbi&hFkxQi z>Xn7tz*jq4-&U?_|AplbXr+f!n*V0#gc$LZdCptUv8&oJHI6MxJgui+rV=EH;exzns14yZ=-iHyo0=(bPD)q*5;Re20Xb~c zH;dx$wMAI$y1aa`phI@)Ul@SX>|a)$XiV!M95(m5?5Sn?5072C3I}y&EY|-oWp9$B zNvt!0-KE!6=+rDN4Z{lqh8KoUV%Yb021QAv$n5w2Mb#qtX`VSm6equV@96IA`Mg2g zqqF!u5b6``nO7f@F^q(aeR|7YYWLLDtt;@IZ(iZVs&CM)Zk=J5f=)tC(j`(JY`S4Z z>!lGb>F~`F3<%E^6fB~h`I0)kCrKdAh~+A++{nWUNGZ}&{4s*1U`G>w@?#^7G70DP z^^u?(uOM%MqI`IMK$>NvP^f)WjM2+d%~tF4BmGqqmBshuC(G7@PiRHg=BLT-FSBDf zl^U5olP;M|1}FQl0F<+I$;MZbb28dr?l&(<%wHAzm_fUpzyHJbm_0$J`Nt}1|C8Qk zo2l>BgPHZUF2?6d`dobNbHJO^u_w3Y4pRBoxR(F0l9+SUn?IhYeeF)s--UTWhoWk( zc7e~@<$r7(pQZRat-B(<4egx5@q6ENYsS;V<`wr;{E(IZ>b#K?G5({Szy2w34Ye-D zP2tWQK2@7DZ0D^1K8pSGKKOHY(SeIwP=S}px*kbI@%yot^~TYXiibha%)#sM2J`Ow za}zxl5CX6(@cuxG2>YMwoP|dZeI+?pL&~J{x$(UYz&r}e%#bAB+)=`sSDN)8Ud=*$ z(vNkr6vK`>g1w-scIH~wyw z5$Q(Qt|a6U5O-lZDz-Ox?yBu=nefET2AbL zCV0DHUxw6dEYy0Zc$BiD6RuL;%oex1@;Tf_Fz@r66OqY}L zRnD3>;cm%JQM}$-MT9#eS_IW5q5cS)s>meb&c8*|bh)wflbB|d+3aSU;c%L|H?aKg z`h~9)w%ZU0?v24(QQIN+&aeHm8;k_*!Y7EzbhtO8MfZHxyr?O9roz`aQI77g6U=S( zD>!U}&sh?@a$;fi8LNQeUA;WKidVaYbwSacC&e9$@!g=drrqCvbe>m-k2Jg|`J&ZF zUmaUN7xe#N6#v6`?8)-4g2I2^Q|`6#Rgzz~YiR%T5T0G-dkuapsI6+hw}_9mmaD0S z+C2U>?CwVNuN|WPj}!S*nGZeh2+3a8iDSQhH}&`H46%doaU7k~`=iG7>qz<>Q@^iw zLBDdab>-Y*hBH0p-J*QnE&d0$k$J^;ytq3d!0bDh@G*fAcrz?ZNg(F0usCkAz$>Pk zB9ki3WSXPA9CUK|pqc#X+XqMa&5&p~R+kvxIF~YF>lWE16n7^f zC+YGI4g+lHOIzM$Hz2wq?3ko1T>j5}%`To6XAds-q3&G3%z$rX2@AOZ;;UC`d5Gea z%??+vd2w;S2<1P0Y;0)`L+5iPSlAVjFz)(rc-MR0IH&5N0S_I-G~Y>j5bRw+*os(E z9SN|N!-^VC>Jf@S+V_)D%J(TVDX5gUR@tFd2M$Wol3laDAaV0Bqd&auh6pF0&6Xgn zWiW1S0z+jO0BzS>0b>=w_r9%3QIBwxpJfS-0F??Os!Hv$GYy!f14f9<3O?X8r}XSJ za5mkMP}#j7Vzs13tZ#PSETQ&jVve8kSmYf{3IKyYkGm+=lqoX4=^^^Kr8iM8CZO;A z*zn_-BDg8Kmx8|cZCTa_-RSbOEWrw>*nX&9RpbY>P;b*56$BPV(xNjl_Od8X(6n)V z!-khfnNA0yR^E@+Tm?6ru>2s)BX8T->%%tIm*?KfXh^eDdBRlCGLQMMNP{*lDC&;l z<@ED_UD``ulQ~;7!o|U2Xt@$hfDOaMdc5byn*W)B2 zktvAUl)ZwU!D)W)o}w0~%?qn)a881|0-XWGO;-C9QYk+DH9)<)QIXjB>VN+~|M&l! zSel=kXf8~2i|mm`JQL$S8`g*krLnFDxm|AEaF4c$roXkD2(}=2QaB|&pC!>98`xzf zG>cO=aa@bzw3f<&(JVn_$S(I@DmdqTqylkC!fNj>i1n<;NA&56awwrIz3)^wJIUy& ze<$MwiW4FAO?(!Q>b(NkG4(|irX-mq(UZi{-R#O|qF0jR_)PRXULC4a($T-8E1ap3 zocVOz!NxW;gs3bx@PGghkU%9bAjGx`FmtW*$ACh5*cMw@wie}e| zg=7qy+O*BKZ{?FBldeDGcn%ERZGQ1>TIM~#{k9G5>MYDZxLV%T1v-D*D!!oylls_{ z{MHt>_mZ4v*xSUnWm>k|IQ46^@Kk7A*qrW@*=eW+@#ZFt!u2w5)p-h1l)go{8>Q^a+D!ZBOLQe$8yKloovUnlNXQ7;a?hi6 zl!oKd97rgmEcklGDTppvV{s|Sdlod9W5+J31(tAeOv;I8RV>ma(2Z{!>xv}ktEVg^lmC+2ZYCcmYA&9{>jQN~tsZku+ghSpFAW}abfubGC+ZH||59BQUSB{cr8d=jV*_p} z5+VG)5Ez5SZAX$g6?G=~0X8vTF&i*ZiXkpVsy$aq9eRC_;x6w_ z%rtK|d7P%@p?$0vQd6WNG1Jp3B`z?xoHX=%lFCGU`Uj#fUFVeIgCO9q_a)z)pqe~i zOf7nwQ(t>fX{y169-F1v_^p^bRo$Az$`o>T>58+(CR9EGZ9kG>x5b8E91>M*;qWpn zRyTz0FhenI2}Q|wbh*$Lsj$JqNlp^{x-6dpmEx^+pd``3d?TUlSUO)al$#D!D~26Y z;+@rYM!$RPd|MjNQ%bi_4E*4#BWg$-5oX=Z?$t8RGmAqNKe)CbbV;ejTX=<*dhxa) zvGU3_rOE=1HkEv+!?bKwvY*2mKah7Hbn+1QV0;L%u=2+f^$*c_W(=)OllD|{vMVaP zU9Gq8BzajSzvyBK&%pLnH-vtX2M$CbA0L=Y80RmzVt2a4p886X;k}cV#@6PS*%L=q zoxT=Yzjj|t`SII@9w4bx6kRlHbT5---YDHWC>}CRb@%`JfBbL%%l}1J;P;wdmHh?; zsX2OjRETap>Z&wt%W;*FFHw%|Lo^;OS>1zeWt5+4ZJyMeKGp42S~Zc?n~ReMlD^DU zRa!}B-|$qFl9{A`CYdbvMzEV>C1IE(__h|w-%EyC^<_X;xxrL3@?MQeK7{D(8RitB zB&qW<6%GNIXnkp&^<;xF~n!IR+50nBY?2pbB6)eV-QuQScBmnf~yPmxK{ zw=+Pm(?*`9so6 z^QT|{Ra!{l)LYJH+Vq!3?-CUjeJ1`8EaCp7}8B%~H$&Z9_L{lF8f3PJd%U|DXJgbWnC zCu-LT7%bm@tJVVr$1(1O)v^~NRbOyJRgxFd>wG)bDlH#q7f05#i;M8)eIINZT4{|& z7{^G}i{ikF9W_`0YYO-o+aFlP`(Uk)o}8r)0P+#CgH8^LtfRP<5rYwm^kU!w>A=SR zyENZ&^UaBm`E!u3t0rQ!N__j%yc{XRtx~MgS@(T2j@z7rq^`QoF2PL`!Jen&-;f z6X+l%+dXkEP_JD3EyGMxqeHelTT~5eIUO@gIZ!2QIjW9brAD)6(0}MvCED%XyxmoC zIp$e>wOo!E^V!r>FuGK9@~L=4plN*KLD`xH6H2F!%MAoG@yv-eQQ=7vc*TN zwyGH)16MEk!!fi-ESx9@%hi6YlDJZ|@WZlOanN+F`4oCfFs$fV!+lg4IIp~vv4wc{QOrg^~ zwPMeG#DoZ*Rk*TXXg5jf#aK9u9?sf`^YUgCdq~t*=tq@W6S!B5 z9hTRw_^%PF6aGaP*f?A>7#!B&;$DZ{s9>?8>UA$qNZ?RmdO*GV7sYfiXBTVDDRIYwO#RH5031~h8smz^OQOOeo|?>@fb z_s#n5qt{^*Y{qvViNU^PcqiUiR~=!DRUR|!wC@{Num7S`5% zOjV5oJ~nf_!U2cNU|hr8&Bm^JB;Ad!kW>V}Caf;rHVL;5tP$8$@`nMfU7%LxLVbLAG3Df?MeA+R)7k>zkdm?`PJZtzbVRPBcnlp7 z8)E&4CJYou)>?4=fZ)8LWFkv)1fpSV%5?|ORzOi|#rm}svMjHyq$t0RihvLs!#5*N zV@*yFAALp=_(MBBGjM)UqNV6g$7kl1U&Mmx@TR59vebif?HehO=X&dQkH+;k4NYvf z`T{blAg*6E0yV>}|xrWz~8)Td~IZ4bDW*TLyeiym#UcPhf@B`&a_pbUzK|hv^ z5Yaw)(s)~2Ocv2V_`%hOAI84?VeBI>tW8@}B!c;j*%(et12ihPZD}_v&Z`FkdHh!0aV6boAKzD>JtC*(s%w$dK5lKHNS%)cC0uTON!+cv3XE-d&>%*`xdWF;aUZSjw*^TQoh}DbxCweBk8K$CMR99w zskn?oqkMD4Ty%TlS%PPWTZdw}{l4h-#4`cUfS8=X*WRekF?Ii$u-RC;VW0U8|6*e4 z7o9>b9-{lEdAOl`XRm2458>~M1KOf3E@Vv~9`M3h6L&=10o~lne~rO*?ttwBg|ZtI zuj5jU>r%89kB1#W{~UlK1LAc>BvXVohy%nTGT_WAFdFA1HZF(6j80I^;&tBXbQU@k ztt8SEpoRmc+>vZ0T_dm}9GeF)Hlx^XFrXc|?^E&2DE#=JFqS`P$N$6U3m@!X;AAwd z{sC`VJTSh`BooEe#k3nEtVnISV?I9*8DXxi0NYK`0xALeZ?4dJ8@!*MgW)DEJa8S4 z#rocZC{YXMNP-P>j8>>eN@JR52%g#L}b9VNuMWvG)<_EX1yrT*^&QF8~B26_fAoKxm zyuuiQlk7}9A;3*;_ArNo%u&gRTIBU4K0KU$aMAwl z_t&^iVzFefy#8E4R(Ju#wO0y55uB+aAMzrL_m@#{(+;`4VPJ4pN+wJ^-pSAZV#rK* z7_V$pIN(EMMf7{&J_Ib%XZO35z>hv26c-M8TU8ptqibk+UdtA0VGw4OA3klAdk`Fo zb_qg&@SDg#@1k)Cr{qQp-3?qJ6Vp*>3e~hh08dpip`HD?BL4`pZdXMLfX75X7d8vT zLv83x@g3fzD^OG#WD!`!dq}=6aj2q8&xfaPV*FMaya+u&9DA-v(l6+t=I^_#Q=z<8 z+eB9H;PcOg+Tdp++RD$cAtlB})+}GeBl*I$aCVxolQk$J`KvhSpb_4EDFh&7PfYYH zqg3%N)ja{VXab1*IjAFRCOqC|g; z)Xrks3pdvv-Z3N;JtB>ETgCSTb^74$5!w-~gmg$GqzfOqCe_o~!X>Z(U8nLqmtE9$ zP`fZ};A2Rv$bg_%Y-lFrfvLQ3cJKSR;AIVYmhZsz?o=z z`P^3@*x56`9_8?5qLLe@eo_Q>G426zfxsF`L-c_J*=;#E7`xcQDKOyIy4HkFII24m zTROb-Jmt$zrfbMlnp}?Q<~>ZIvn<(mD@;i4g{`v-Qg!Sf9f84clW}BF?qK?KC;D>U zm+P>4Gr(kGJ`VGehO&KjxwvWpKI7~%3T^mj@D3-;`~&;N{<#q32p1vFU-UG-<#>iv zirxoIj;jpih69w%rIpDF_ld~f%a>%GWKsaP?}m}iTd;e$;){zM);SW`Ns1X z?is;$Ks{yLFmmiG*b};G9S{G0Zp2mZ7~gRzz5LvHIDzdpn~gTs2+gQJr^x9z_0{IS@dOIlMOc zKCf)`aq4p3JE4R6OYp5rH={v(GeaA*^Hz zd%|cXtjx!8C(8=iwO@6_krS#{54sRJSd*EGaj_=zCt_n8+lHl~8DV#4zV%CxIgx|% zNP_I7m?)11v67*d-4qacwVF`R7W^{o7!H$!Wgd{_CE1zv;Wd3>HhbWk8@AdsW#K%# zz?@5VH5DDUL9L|#UF^ebw%s|l7clw@QvIsm_!_kh^JzuTS7wio=Q+`9?lh6jc1~64TIqm;WF0z<832z(~32#eMG`J*GKIK zV%EF(sRCKwOs)ypeXnj|8yuv$^zd_M_r_dZPlPZ|SdV=F`~;4el+Z#6e(fJTE_j0O z17%39QQSD|63snNT}?h)JzSgGekh&q2-bMBNcYFVvBf!Q{Y zs@9>C;P=%csUV&Xjd_Y9UOhsCJ12ZqTY;(`;O8>!{-9O)O{& zqCu#)We#W(OAZ>}DcDyuyi#g4xTYOtNmWT=T4B^O1zZMp zl)Mp@c8m5iC2EELE~YfEW>f(t^A)lU7=bsd{5>Kt@>v2!Ix|34$YvL<+x;N1g%%}2 z)X1Vjl3jG#XG;9cikl=%i4`PH65LX%O@h7cQXR3uV8XZ=KRA5%)i`)$d5SJT5ws}3 z3tDx!5ftkXfJATzC^2}H>wU%Sm1ua{V{pl_CPl%ZD}ob>Mp(RT2Do&-%H+$qbR!AOd>m(@fEqhRdx=)MlQu#w#(TF z(2(m?l%m)i3;7&cwoQEB%GRp*NXv3WWWmV@*>tPJBj04qb|u@z9M|REm2((X8+>cs zL5V8!2QuBv5t;=iPR_!y5#Qdo^hPYzDuPPu3+%DR+&gB~o2^5cN(ELB^lO{09=JH+ zYG;~s-RLm#6!Vl2O+s*BUbpe6nN&*mxFYZspiFI8{UlVERZDg;J4C&WM{mlQlEX4Z zAOW%()>9K+dMmr3m?CohT$HrO`ZF9NS~6yW7jkGMBsE9L6Db^ssKT1JYK|8?exNYH zzcxe?Ww!UL{Sf0scwjc(n{<)1s~D{!Bx`_UzL`Sq>;#PtAFoa#fVMdsNTWqsENnCI zdNP}1k~|FGYb!TYn(zs}Jlll{b@14XacVt7gcQZP>=TPuU*|+Fx}cfJE=|M*zIi$7 zVybr15X3w_A=6T~J%FwWYol%#BeC0O`1xieR%x(f_^X^GaTRm#8Bw9pto!Kmb-LyXyR}WbO+I#jTvdFM+d?nmr8NRyQ2J%w|HD z2dY~=W^15oq({|zK4^+$v7b|cjEtdb8BJ}TT_>5G3V7EVCvQ^oWcEZ6I~l%DWN+iV z1fOfW^VR16{sGg++6@%sIEe^5yjp(uFvX0Z88m8gp+Cn}ym5ZnabF?;)9S<_7w&*r zRJ_c+NK)lisupw-4L#B;0ki5(Z=)t z{y+bp*jwTZt&r3iYdT^VAtyr%A55DSUqvoQ-DkyhDu&Tky2BfRugdLfxn{m=iuj4{ z&fL*i(z|P9{+@4dusQ|o_9gV~Df?NG1KC>rk_|6|`KUQ5kQGV)1Y7zP{F?H|N^@$w zC<}=I`8n@P(w1RO=uL^x_Xu3s!VGzHU>o?ECjCbf6aJCov+E2@|6vX$RWqHxnVZ z+cbkP?f8aMTUD8{K;*{zLd;z2yPPqm(`U6$Gn9n#tJ#aEBk8GkzZ1bBz{aA$zZN(X zJveO|D_XAhpnYg)<1F3F4p}*(@WA2XUAfJ(coOnt)v^V*oVW{T@LRds)jj{yNrrKH zqpO!#tQ4i#t)nxQhDvnf>rBZ=KJ)C-;~5+;U>7P*07-Zb0Z`G(Ct^}YDtoZTDp-I@ zl2=xG8u7qniPnLy2$t?6IsyF%>dIQiUSUIomv)IrN0*9KlC&)0>-&Kqjy&i9zy@@K zK7&*TI-qxjBOKFGeArOX6z30Qxr`EeosuruiW1F=W2c&A6^9 zw7*`yRRh-k;;+yE?-lx?NP}i#Y#$o^VjVca9pAV{0~AYg?FpOHi5Ny z;c*HpD+w-&9FgMUKiax#mrV)Z+cr^YHl^UYvj82%qwmJ|%XYf7#zePm&K!K#u3_u< z$<>tL`{nD!&r&#h-D;9O0jyKq_7GduRr-?>EE&_On9;1TI;uF{`KRZN^WKgQvEeEF z_R3!|C56J2w{5vAkExb?=BM^K{UT`mOgzL1#W67?Cw#_`LWy7;R_n{?5{k&U`JmQK zt63VU6UM=BO2rd}u#&jLz;tK{WXQ^4irN7-Gx#Nm8%v(tSVC}kr;t-I@lg~>lg>^% zGz-|yO-4zf9OPEJJ!UZy!G8=KrqFL>bY5SueoKFG8{LBVQG*+G?%rdxJ) zo#a!i%@nnJ+Yx9`itD&afmwGD(wW6)QK)Vu91BFFbn7YHnt-`@4oKq7>Uk zrc#kf2lS=QVZMB3X2V?bdtKGQD?{GpDNWs${h?kB@MT7%O*dBq_}d=1u`Um7ItXxk zDGsDlAu-P+6)cPg3W_p;orNfV*EPDUn^JIe%4Z_&9ae!C#W=^x+T<{0o`nR^rOAS3 z6Sc`QRy>)++@>as6@cd0bU|Hsw-eRUR$q%)At)9Y^6JJiL>Y-y&P4{>Rf=W9$~C&< z@K8~ADRoTbK1<|L8MyC{CumP_xjz6RF zZeoJ?`}j#qwV+(ph(XR`J|>!fGeMF#PK1mvzwcXGMnoFjPmO^xQW3>s)F4$~_yt8F z)L`RDP8zC0+|EKKO(D1eC+Oi_GnsH6?9~+M#&J%`&rMuU=rzr27>aAHd3ZRxVNLTl zJu}5fZXKz9!;T1&?K%#HRr;1g89E5MEfE;fFg6w>+T?vB_G>87teCPlUhlt!h@jlI zpBhxSHc!0ZhD0Hr#*HLHEMVT7ftthb8{mp5Xl*}4$g5b4-EH)ksm@fx$Ib4@f)n(G zoGd*Un88FE!F_<$wl#s}BBXSakl;?T)BrJ`E-1>eGUx<6M-epLd_GEtsd5Ke^Q=%- z8k%0WDdsXbnJ(iI$lfg%V`fY-n_$X@*X>C-gDdo?5uu(J9fWo|LELY@oL8TWlKTkm z#(Pxzn=UmAO@5rc?F7I8`+iPTpv=6jW z<~7df?(m(D=OQ0qaKVYeNr7MU5>yFNvZSH>w%ND>ir|yN?_FBZnW8vJ^01VkyB)e# zY}*{Ld?pQhw>|8N?XE+^T*|)OD!AUSj)8;{%0ye@=Z3GPv5CZ-Fq2zW%XVwWAEPy+X&6uByx|9jLcSxT{2h z9(#qu4@sFY;C>mplL)^b%lmR@nuScr;I``YLdmt>J{|Zzo&N9Z5KO)CF-{=#%}oJ8 zW&jOEAPT{I?tgQOl1e9E!3gx3LQNgZO(uHVXznV5tk4^rUtU)Ro79_m0%1h^3fNY=0=XDMPf$DG`y$eT`-@j`{Emu)-_0-6Z)#Ue~r zhf$a}q|q!7@dBq<4=&~nW;f=#-Y}X@IH#}04pAwK=1Z>iGD)z>1{hpIVS5T{$Oi{Q80Oe5h5LGZ)wgl%%4+?D3^(f`5g?0pehmM zXYi%De3pslw`GoA0Tjt$oZheY%-4d8QyLex;ZsUuhFH4keQ$*Lk0q2Y!;(gy3%a42 z-q+J}Lod2bUz48NyBCr&_5y>#D5cI-&?>XGRwa*33i{}t_#RC_R2Wk0WrZ6K8TQuI zl(4V(U00E+M_ySw)d^~A+O|z9P@YYOgXvLi%DQTwS5H!IxNmz%LUD!)BTI|&qZVg# zP~ep@6|b>JgD4cjSwC>YF*>T6499N%H7&R+>i!IH++f6Yjg!yJkgdS8#KWdhzlJlo=>uCjfa@w{YI|BZ2?lhNxCp;p!Pl_M852jPAK#V?Iv zm!V)af4K3-_Aw;nB~px58xRGd1b(5)XXv0CL7`ZW8$Wk(`_7Q+BxAks{4kwMo#@a1sFQb>VJazt_CmJD2W# zUbx2!oDTkxS%b`Nm-_c|p+V4EQTABn~|RzGBSERk)~MAcqE}p z*b0!#uETb}e0e_v#jSFfjj@76{D)s{iEdlcM=_^2KN4Ntxn^$h%b^iSPC0{YeyRLyZ-sOcjWb+%i%3SP$L0qGZH%UNkmIsX_S zPStHm@RIl{iCWa1l1kjW#O(T zR~YFWOEzyEM1hxX-a2F;OcpE~h>7KpvPw)K=#L0!_i+;S#aG+}EH8qbLayCDzz8ld zSha4!6{zLryo35r^4P}mDnihWi8l5`Xp)9Tt5Z9o+m`T*13UJAtGnn>EVd9*V-kWgvT5J83G=HJg+P?(D6XefA@>h~FllX$> z=2d21zN9@~W^Fd**O!bhNqasU`OJ;azI1ndhAzHS6rFx2*v^azIR@l_d=ymY;Zd}UK0K59!5Ft z(zccAT08)@OM;Oy(#?7o;0td!x5Gx{F_Xx7vb1%`CIcXY^$>2Zx~ln@cq4;XtKl- z6N<{{3y1^x0@7c)9s0e64}ubAz0-%V{5Jx%I-fTR(Nv5^8y8*$3>JQ%flVlh)diBM zE~JK`Kusu!m;IEaDAy(0f}{K``nQ2x>gR9kqx`^NLLXAFTmc5Xo;_ytHj~V7$E?}Z z@q5ciPGseMF-_LqE*^8FsMcABDuE0gW(I%SLNvnm zm{8MpOgD9R+EQe|c1Dj^VU)_@{3BUBC#ytb%misOv?g^g#sy7Q#KAV4I*8gG?{-x` z5>mL|yBS`ge&Z`clEkJY+sn`|CsM~fA8VfJX3g3r*t8cN0HW~{y=Nu9 zhSZw>5Nu{W{4+C3VHTZOD{uq|!C$G>Nkk$xS2+xtT`E}wVkqVIzDc83buMa7aaDOr zbl$4Bv~W_#H!Dp;ckpbF(;6?jSlQ$1cS6XHB~}HyjON*dx3aJ;Sh1`d-bC9(EG$)G z3iBnJbAUFOzajdyN2IJYd2LNzSV1rwf-qi(7x=?-l{@j)VICAwy<#~NT25-kVrSrF z`Pv)a$Nbq0@>6&*h04#n&dY+ESS|bhK zW8B_PznqD_Oa!q$vR}vxOK7sl)SnkWVO6jG`CBqRsR;?2R9H6sA_6KJ9FBa!_z*x1 ze+f()RmszJ8D?GeDcDcoN}qfA`Bh(rvs2>xihQogSXW-la=8}cH5N4SPSj>@QR`^}n~J@Shs5T3I`@M)nT_DwiKHOspUq`&Bw@i% zO35t#0E>;gp}bqJhHmxv;h0d_;o4Y2aNj4C-F@qekG4DRy&Xo$wF_k#(bM^!<`tc` zo>1TPDaL?@Swimi;BR21+nw!9ym)^Cz*%m3_P;lkDzFYhrO=OP-?L;EeT=ah*r^)o zd-;}3|EglVD@n4VQDyXPoAGGoHPii)Batt!Y4j*#IIt?+!h4KU%w8PQdlN7Sxq5Fs z6odR~&0Z}g`lQKlRwGxB2%IXv-9pmk7LvOofEr+9T2w{qIu2}-OhWa_xp{Si2z7JN z5H@h;OeL5f!5}(<5*%VAjb^oGZQTJWuzTZHk`YTHli@qEG7oT~LYBHP-Q7G)DYGA+%> z+VKcynsS}kS|qy4;2>1WBIE|=3@1%2BsGesSoXC@fA1f^?_BnsAPqmGlKlj9A>HPX zJIQ;Zc1KG_Cyk>e!^f$Fay;NNrDkml4>DpfZ2Np)v5%ep~8^LbAy338rrhr zpxuJTj4Ih2Ro-l|QOiwTUUR4_NSPRmJEU)B&FemFL&Z@t@;s}_A!|vTX70HCV%|fN zYVBja2K^ePRgmhDEo^&VjiP$UH!x%b%$w{J81JL|3EZ!%XrG~D;$gG^ znIf;iWc_+YHX`Gy2(v(cGls`P9qP{{8qeEx=m;hV+>xByTDl)TlTAV2au5U<`hQ}) zCWY#Bh`gC2>(cU*oiZuv_&Na>9bF>f9NxObE!t{TC8>l$IL%jsKx~!00bHe1T#Sw5 z{hqh*-Ia{A2dt|)&d!o%S4N}`s$HEGcozF9i$tFswz-`uiE zq(`grLxg>6e8|9BYH9)*o5@TQrVLqjKN&9Nk1GjYA{rdX|9p&1X7R5-wCRYg>8rEQ znNVcjnkhZ|7MaFK>{-TEm47{(+ODu`jfL026FXTqZQ)bF5hGQS^$knH>(H;wsw zLD#a5-!voXo4x7NO)D&7)u!&Cba{D`*kCqJ#__OGk!sD))^!(<4uCdvxCPMGchfD7 zNA~VD+I1C15`>My%}iX_G-7u%JUnjQGkX^n+NXLniH^gBk+e@q|LlYE*;1$0@C>Q0V+aYtmmq!#vK0idu~)X3 zUxIQAmYwkVNih>2$Th|2q4PNIB1Dat4hfT_`XbDU8x&$0G@hRtpEWh>EeTdq-%AY% z%=fo$3%M&Oo<0H*u&!(PepAVF#38)O;6xZKMo9Stx9ZIgEqk^xo7}tLtZQ%NOJt4 z_}F5Zftsk?Q*JIt07s6ex)~z3VRc=DZu-{CWOO$yAP`vnQlN}>WyC;Wx1j3p3z={3 zC&7sx%ARa#a>ve3Ej9>zC$O339};g-qf2@q~|+kTqP3|U1RD^B@+ zEVJ}PUS`zw`c#X1p}E43voKGodrD4;vk0HLaE)6hjC0FX;}UqqQ-Zq;-iIK1JHUZ- z2jIZoH+qS8#e%a7ksy7xB|B9M9~TZ1q%T4K+|I&B61QK%SKrgE#%m%*@9TA47eO&v6`Yo+bzUA+aOEo3j>oA6}mi;{)GkN{R}Gv85gz1AjFR_@;3==95vWk)bVJG_OAJUe-7f5gg8t# z&}8NHQGO)E#%dpJZIVe)^~8z1^)*vj z1Y~s1tc113QIO{qPI_#==25rM?I*^+^WKAGnR(S~ZzO-<27pv~HV?H@UA_%`Kbv1} zT2E|gw-3StS>7zn5lB*c(30ce*N}^3>b;-(mwv}|HIH2Lyj^JW-0%Fo zgl5I<4ZaX^u{FOV+?D+X^b=vOIct-jrhH<{wO5$shAwJrddY)T-U27IWZsYP13 zi4aVjabfyu>T@hQ4hWa$gsA|xr?_41xF0NicAV@n~rwmbJS>ib`U#eD_&;BSBkxR@0?P0zlM62@qI46Wqn7qdu}Sr zfyQFSwujS9FCTS1gH-_zdC7JhxpB!bW@W~5xZ8Q zSGjS+b7A7Hnt2Z6!!$Iv&pG$@X49?}aIYq@b=^A5y*T#PC7F*(ufA^Zy^y6g&ZSh+ zGKC*1#D>l+>rd4LMNRwwOG_6kO3gj zx;W60lboR1*95o}zz0x^g*XBz_Kycd*SKm!Q@36aa%&dO%cbMB*cXc$yDT2Bub zYPcLAr#GWRHV}{Rag}5Pa9v$!U{#R~0Q!Xy0IW~4NK>`nF{QCHkJ##W4a63YkN)0| zlO*o#pr|{*iS<+S81CI4j?dds+_aQC&gBR|R~rw}!)Hfx!}1XzUW8+;RY}Bs;-Kyw z_(B7&N1tnT4=tekm5)8(9V0qWY+2w?VqKvs2_FrN->%+Lv{uF8M9>lLc-O=c_vblj!J6r9 z)ISR&@!ol4V3^Ajir*Wl1reCi2_m`cws6jXc3<` zT)CN@Mh1^$B(D~q85N-Xk`rkWMg0Vq5I*+pl`I7KIG*FDo7JmFgiK_0tnO!$sx)Tw z1a`T%hB8649mQ&)2?UJ!pf|(RWxliIV#0T z3W1vEvlHs0x^3dsmipY2oY-;@QXyr`d`^=jZjqeHFjC4o>jgMhjjh^my4$jrVElWD z&Kmp;j)Z$)&JZ2o9s5VO#4DfK!$EfB+P5bf-z6K2@H zB$uEO%V1xGL(*^?O^Rb~MbR}_ePEQ<+Zv?#^fSB8*;&WBSF(@!s(hh(<}}tWk_8uB zjX_(3ms|F2nNs%mRA_a8 z?xSj5(cL(UubvqkjaH)F!*akBm_5!CYQDV&QzMmNcfJ^~cGs?Id-JxdhrW7qT>V29 z5yzKQ=9Qnv0Wu5Qp(-tVrHAAy(KCmB*vhHUZd(h6AE;M$#F=#NB$ zt%^1gB&X^s4JkCbt05u#(&Ok9kVy7y(zO$T)dB(o7>c)Ksg%kwq{}3Q2k#_%%C6D24o1H!Qt+k2r>2))hQs+TyIf;!OnUZnD@#LE;(99J!ntUu17UdR))JE$T^wO!kltsd2=ZWJuYb0$qrcAC7Yb%tc&C5_h*N+E$kb0chQOSxpim;XO*;q2XzcS_9!kq*8GF;E-~UCVp|v zDRh3c_ojz9hnd4VCgoNAEYh3n`*x<)#dHT1cqv>PpP*(Ewyh#%SdxRp(p?zg%=uKS z<=F5oluCf}4T8PxO0ck2I^|T0i_k)ecx$;4T99hEjv@jMMzU#P^DurQOGC-FJmW$_ z`_Xcw>0Ki_({|+efe>ag`GGk8-9?}}3!D;s9Pv?tWtVy;>sYNG-1A9PtAMw9J_JC2 z+iz=@tb@9rD{rkAJTxj`T~Kh}p19WH7&`4q8($}i;0`CrhMgMjkp>;H0rFuH3?Ou) zGg#x1PoM+va~zOzEUvo^x#>`QEmiFDTbd)3gf{}<%#sqUt7f8{l#kJIO&S}9<^93s zend}0Hu7Q?ZEhP;ZC`v;k{CpDTGqhht^noa?U^BxyX9+p%HP6^#{I!muind`}79wm} z&8bT&*1;o6nZ@9fKu#!dJam1k-wX|PfF$2^voaxhv*Ijjr4}UXJh<{ z8~`8Xb0egWDBS$ElC|Ud9$ksY&xYfHTG600oS`u%?%7HWxY;rM1#!=pn4&#!m`@rA^ncKzt(uvIbl9cy3UW80OXWSRYCwtd;CU;jK_9~z9N!Eu_ z(2j{?W*iNHtKR5Bmp6m`0`;jso8mlbS3`)1+`d{UAUt_iyg^d|DL@RKDBU(0feA0R zp(|Ofl*HNUP`_Cb<7z4d~WT+{_!Zg@|R zG)~xou!(>`Dl$-ilpc6^KFm@KoioX18G^<1J@jMhoRQE(BCeI0=3^BKocB1*`({y- z1U!#FME~yjpCdpoXD!?1%pg-D!>T4x_3!~k9YlccL>MF0sAJ!7#A5}ZOZg}oL>(Fh zvQk@nxGp6h7uum665@qk6S_K4coie6jQhF^hk#7pB&z}v9~ho%dG= z@2D}@v3$EnIOgygxM_egNeOpf!3n%SkF3K_Q4yM3)eDz`*q&Qq!{9X=ho^}sZEVGn z`2t&ziZcLHG^e_#YGhcerYvY<#ub?(hc>bkS0tI<9Z;W*1H?{l3b+R->l7?!3G5P7 zOD$>9hGtI($fODwqS^OeV;-P@xZ_2ly!;aHRFB_lQ}QfS05#4K{UbkQ7OhccX2|Ni zs9YWA=il@Fr05}92|kka&wrC->6_Zkj?C8I#vs38gZwUd`iG^c>xJ5~R5I*w?oR>LBk!J0b;us~gM*XhmXUe?`huU<~?vWdWsah z+g>K=jG(_IGflj%efWy=pylS=6DLC{U1HkBQHlh^F%uvt9@?GY^vvv)W&_42$4Swm zO_`CxIvEuB7N~>n?06S@MR`GAd8yu=!cLq4qYTc{?q)c)zg$y*+2DKbliBRjSHbwW z;5=TjZZ1{AUd{(UE$FT_DL7-r{4lBzA3Ph-s`CH{Qt;`Q{`6J_+lJ z!!1))M^L^27x<9LAI?nW86@T7Ea|+EQ?uZT^zhAd2?<&eJg*lxi{6Uh=bb2?J$V-% znxDpFgc7kId`syv$96a102X0mX+K6`X)hKTq7yD)ZLZuqKdXbdO$qqAnbe;Djz@74 zAfq9Fe<%{S$ywz@BIIMK-wv_jT!KMWOBb`+*C*Af?PQ1&M{aQ^^X4$p;!eG~f9KS! zU-;;JPFTNiq#AvLlq*z!$`MDr)fCRXtq(0bS(2QMnMy&E`ntPxZ{wpM*mUoclt$dN z347Ia~pTa)9dxl4cD#i&#Zeljm2l#m1`Ot-r&$ca|9>V8b#g z)p0&hQCa9J>JqCGho2PrJUx#$0PIGE!|Co3s-ndOnoLHQ=yb^D1PXFfNu)?;6_j#P z!X0!H)!Uf52i7KrPJ@w295e4NIPvk9ggT8V=N`EcPO}YLjs6(rHV~Sj8*It(iJ=R3 zvp_nP!3+&2QvBiPnS#oJwaxb{K%kOvJ{qUTz|p~;w@pCu0Nk_04M#7bxJ#rOk!r;F z&J2R7(XyT4IQXbfjXFz8@}5?fS|yQud5kEG8#vZH%*|;7owGAr2d~1R} z(rG#(T-7lu;&O+JUvwPckZxc8qJps@avNchkR6hFNkx0mPM_e<(l$VnDhzj5-+`gA z?!vrou=!w{X-20*lBo!3SwYVZo7q;ll(_UD=`JLZ`-d%Ll+`;!g^sCTlEnNR%5`Z0t~JdQ%}Gd!YCWEISv^5Aoq}UHU@}jd z`3>vlLC0iX5W_>ht!J{MwG^^K#NMoflOAn_Q2CN^7@+T&H(3eV9T2v)+*FeU?WQCE zUw5LLGyD<&%-Vxf5Q*opFKujafqt(o!%0Oc>Izfs(yciYO$93}ly3x1#rQ7!ZcU8< zd4hOmr=mOyg(|YfqK7L`HcvhJ^*v3WpT9@4F8_H6`z6BHncq8jC*6KeWPG7jY%Z;E zDgy{|c4WBZ<2rBKOzou~$VTsQ7hFBwJ81J}XQ1pxbFfS!_ao+COIKkFp*U}$C=S_0 zhs!6&TUo`IIbgut$i+((Ea34x)}a7l3}=OCOvm7%G|TxqB9WDIu_lYGmHwzRV)a0_L+k zT^i#35ja1b`lC41Vpym>f(dxm#bM-jRTA>`ylq#O$j*C&Q+$&D2uF4^S@vpj2j}o8 zH!>HI51ZUN(Mx3!jb%NQ4Ih4b^<420Aegjl7ewM&^RE2m5@}+vgd9|9+!WF>{BpXr zz4s4_Bzz6&so$cZpy;HeIUscn4~K|0o2yZs#_y2*uaa#OsyVbaPWc(%1ITf&?so`+A>~GBZesHr0$aBqMD~Jw>8H@$1zIxM}oESRQsVP8nID zkYRk!M(eYnNk<{wwbEntF1mn9p{tsj2| zUFR5C`6bJzj_#NH2A7h^PRZ@h8i}7!^XIkjQBUq?x_daT8`Pkud7=*90cg}78!sp3 zP8Ti0$FPH*`_pu8{Vr(dHvNBo4NlqHdO_GUUsAtNvm4VSKlYZf(98;M&Avy1* zlV(-tqrIEr0J|R?7pPk1zy$|lTMl;&(mQElVLtoTlCG$4s9pRVcPzF_G&_tc>G91V zCLm{zZ)SFM;g^pF7XmmW4XlUf9QF`6=IR-#+$^MLp__HrqP?rf$@>e$Qf(Z2Y<_EF zf99mU6H!5AaBEIMqiw^Yf~`PyGgbFWx+e&Sgg!KTR(>j?>G)QvIR%I32#4?z9S83C zB^z)J!b{bmad<)`)lxTRo&pr8C+v%+GV|ozm@mrStO*ikF&cIms~pHzqi%JDHr*9` zA)E&LH0V=_U{%hP<+Gn^Qt3^~k+AJlLur;lXa%yX;oaMaq~_5w!K}6$H@Z|Jpi9yz zPF>Ex6~XsPc_tS^Qhl$lcFH%v+Q19InevUKYg~e+-T-ij6J$hC?rx;sn?_KUNQ-$U z_h0MEOW&X5`0`>YrVr=eFxRO~1IJ)Ej@gi8BtvG+2}piLhY3`LBhR=5vKTqeYjvGF z)&>7f2l*m;Z&xKz3ug@>31v6p@M^iU98rd8S6Y`+Ac{g(9?chZBVY67p$@po#9;JU zm>WY#orLrHuRJo~-H{3fj2q1y*k^0dvRx2~`5Ir;^*^tdOR+2vdH%pl2W@l5I<}4( z^yKNJD73B_X)>*EKAC6SPo=GIUP4jTS)}!;3sV=IFCiBh^ZWr9DJjtKdA5;@4Drf! zZjKh06tb~{>jjbLq+sxZG6?)-4Y+t{q)H+lZ>er50IjFcf9GJPmv6j;yC9OUn^9Gb zDs#x4gp`PW@tu;q1D!xupkDW+Wvi=-cmhX-MMVW7&$pi)97=4ob66j@s__s32Z^l* zvfmkN#KS5X8cD0N-E&lZ;IRmf%4Tu*5gvtY$Wo~zQQ|1OR*L4CClC;aVI4ALWg#gJ zJ^hVI0S$U$ANVw+#sCnO>!Hq)WkdlE$so^)+fag`?#o6Yn6ya}7xS2uyeDSi7TxW^ zDK)Qdj-E3YYO9j1?Xge!yw|lWN2G9i2qL$K@R8s=_$H=aN{7!-<9Wcu1Ng3p8x8?BoZfbp zLor|zUvStDnjwd)bD$6G%O)fY;y?Kc0m4TL0W!$QkYqL&G>K|UxZ_K4(Ijv!z9OUU zu-!a4O>=%pPC+DI%T=jD-ohwL2NfB91>`;8piI^=<(y~I&Wm}vu{!CVI_13MJy&r^ zGQ8H|J`Ce`Np6GGKk&$jyy)pAG&;Z|5pW_Tz7EjYZ;NVQ|lf?^bnVQTby zvzCuM#oS%e3=hRnUC}gMQ4+&Jw*a#s9$9IH80ln?bpoLD)pVqiYQxR)S$5sg#-)lowUn~bp?~Mj7bsot zDk+QKDoe;4N-%K7IJ!qf@WFS<=+%*m#Oyb%9>j1Nn*P={Hel5G11BA1NHRut58Zjv zWj9MYb>~T!uXB}Z$tPXDibHnTvM?GLHP7GpfHm9nWnl7B#917xEmA)Ww?rjT|FdG5~s8JC~|zL zJDpr^iJof|awt`-$&!GtF-n#?d};_t#*a_M4qhDS%r$(&0&Xr4iF_Q;8B~+&oPRP$ zHWaBni@m)YAUMh`wh_P_5dCD_?IYQRHjGJ=Aru_|ojmcIaL4H2Eu7^GGZ?G{5X~q} zY0kpe_XGKTm~fUfqY~ z++EMbL6ijdfKQsEHNk~T13rcn`j@1)&omz#+@Uent974@^QExtI^yD1YFLB<`HGu` zh@RWU&b#oQ8B0?!G`FB3U*y~ZS*0v`8PY5iZ@F_8$JoA4ib`{`TbJrorg&XZv+AL~ zddMo0!Wxd*L*lN}$9vlHQW9Qc8LP+%9;OiGCoz|(k&u(9kZdjB^W~91Nf5l;jq%%1#uO?|mhE-1V6@oNglN$c;HHg-VyfawvupIoA&O^U?*#Tsx2|4+_SZbClm0w z>cg>Xa^~e+tp#t}{W9<2+DP|=KG&bw?m*T;;&r!HI}{LN=JD&m{CD;{oX4+*C?521 z8Qo!6f=&|Hz7~^vs?XMv9uni~nLELb01+|@O1wA312F*cpL?gA62zGco|@&dUp5f0 zB$$DzpG6LV&Cp~tgfYihU2g}<(6ljMot7n~A<%rIJjoCjJO(HZ_l5dsP}d}x~fh_NwiPUPDf5dOG}-!qY`jJXsX2Z9eEL5>6)P z>3JYC+c4Di7_Ww&cxIJuRQYibS0&&)z~)(W!_5;&;!_+WRU^=e9d4-H&RqimsApWY}DByC#%()l4XsN!R6DJH+oT`DCmw7 zJsU*vdWa;{Mb^)H?$_QvqOq2Q|nP zTM3H1XTx;DXO;X;br}maLB5cOTOVkn#)<=1HG;&i5+orkCzv9iArK(}z)rnHfiYOJ z)FQ`0&9S-RD{><@`Fr>iz4mz%k+>0f)bGPu`PI;AO^!7-5;-RVhhA^(q$GhrRgDM< z%0`a51-lL^vKf&I4^>3I{T5C3Ghu2W)MH0F2Wt%-q&EgqPH>hmIu`uv_H75zR;3K_ zw8O`-Y+XvwC%~aXDciK)#|u`$m-UHv7R_D?%?lMno;Y1=az?oHE}Vob5Q#ET?XhrW zEXJK0>ZiFjjsA%=Qz7YY+lltX8bMNr;3iNV0k~wsfnrn6C*e4s$amOGleJQ6Mdh_w z&OBz6dpoLtRQ5$R=f^&rlwlr3hdXmi!ImVv1O6su@yV{AY6mTJA{1r8mJEun>MUBP^TB^qeVO1t#2d% zLCQks){bc#(oYBwzHNp{S_M5|bV;*k4N~wk9b5g2UtEB>Hq(Qc8=^@mKyH!;;U3-# zJK+O&7lYi7gbMUJ*blxYU8@mT^(@11kaqb_!g&NKR2YarO4ySV^AO{V=d+kXfuO8T z(KI%hGJr;yxCO!3$FdUSS;=~r(PcYfS!_A4MdCyUT`zg_D$9T4q zLum?TWss#u#Tvd~eP*8m&)voXuZmacDT$YFquS)Yft&bphd@Q zvMU!=M0KLu@Y{2i`V5sohQT5iQmWOcAmO8MT^_`%l^uo6MqWGLd$I z%hHo-a=_@;K9~u=(Ltc0$flAN0*%0}K?((hAhM{ zRFrn#;mVI&Xsq2$Im>JlJ-`ET1|Hu?$<1_wI1hzE-5S@FRnp1Sl%5maW1wgovC?`i z5ExV4O7*Vd{u{S(-IKB@6m%<2%sDV({g`t?+Q;qGxk3>L|Hl=IR0PRUyR*pCyK~b~ zM;rJGnIV;A=Z5ib|Mubew-5HUwO&y$sKeF6z5weW>GZeLkJS8;hD2onm+DmTq%!cT z8${NkvT_7)A%xdo2YEHK?@==@j*!H*z(I;uQX9qMrPdb89HBKr3TIc#)oRsNbd)s| zE%uaX`Jnj@lS%sLrhEp_Hy~wfh*%^7oa*v7Q+!=?oo*1@){2W%QNW$Z*fQxFcPBpi zgk#&d<~1is{6|DC^90MlROG-K`P6IG0pK{eI~KU(aJx03_K_aqgxYQ2het!@JT2Kd zFm1l9^#Wu+`Q=FwFMo+#*=A+-9!M6>kKTB`0AMI)DD#YH*YS6w?F%Kq4bp!&V3!db&_9R#*S}2-vP-_zYt<% zY66D1PswlmTeJwD(^jP35^~6={z)o6EU@I)6Q#WIe(p+;{Ew`}^6Vf%7J{u24Xh-y zE9vxJxRXIfM&9DN=syI`HXN#Nis=du2j(ab{f8qHR$z`a%f912PZS$)0q+nF7L+VN zp-41s0x|+|5`U3(>Z1C`U!9Q*Cyec(TOB6B(~! z5D{#SNl3^T!WJH3CP~W-DhLNzxCnAC=#Md0|IPNDTFJ@&@aPaMC z0oV>S(isK3t%*^w__fYS}S@D?XJ714kB z67H&#eBIbJctzOJvX<38rTGglWh8H-KIt~R>QIhax}s%^s?gJ~BIEY?Swa=tix)x7 z4thf1GR?*@6P}hR1~DW{$3|F{_3IneseZbBAyt(Rx-*SZp(oqCK6Vk29w(+pVu562 zgT?Xo9a$HaXkAXYoVp!YxusN;udOKt=$r<**(l zVT#!SSiKTkpAmJ=BN6qW(ws+P>r=kghK7$EizC^hTo6jba5gFWi&4qJV0BG0Y8A>a&{TLcRx$Z# zBwEs=y$nOo25XhkhEgI{&Go3rjLS#AKoau2T>Q;fdlDVq?_0}iiV%x4<7&*Qh(uk) z)hMpf@z8C(TjT(OcHDf~8aRNwNeGv_Ti~}mf4~m%YE$Yvdc@waK{J_p^U6b>C~A1y zIU~9cyD3vu$o5OIjnZ2Qv0Y(m&nBLCxr!Tf<8B^5AZY1=gF#%F8jl=B+SSQ@f+Yku z?xN4_Klpu8_o?!PD;9#rXKnxC%9U~q&Y22iDQp7vOr4NU%OaM-)rgs+b&w~hI&2+| zfBay0J5towYv8DtJ+G2#y-N5-0@!8ZKyo|`M|J*uH=|{7{ii%$ND5lv%X`5MeDL1Mv7%y zYg)ST^ydQ$1`@`W5m+#nO6k|)MPRAh(B^?4%>T=v%SRjsEVJHWHw;IDP&146CQT`eW4qw?Ym^HjLKav79@KBNXDg=6d#Fb2T&{mVWih1FpC>J1hcAE<{!eji<*#@|>3H3+?5KU8t@f4ME}-Px zm{Ukf8D|xWt5yOL=DG+fOFW_W`#zEaWr}mDHQv!oL6+gaAOA z<-4yWow+H8lF?~S_U=3;a8esq6$bzIW;J#wW$^iU#=`SED4EUhP zFY=-XF=lE=3Ik|#X@y1%g%4m2Ny%r4tAmMPHhsWTl9jSRNEB)*@pt)Hd?YJ%Mc6jA zueEs@&8G8SN#~Y5D=MTEoMgmA>w^%y5<*G1 zAqdER$bPxT3IXS&^{lD#8j2?pF}=8Ha#v{>?Z?k5yfcI@IF^4HB-Ob7Sb+IAO`KQV zS`_K_BuVSe$l+|pt72HX@=Vg%Ga8h-+U&MToy0r@MZKQbMO8kYLVEY7x;j8Tgc2j7 zX6p>~o)a}~Ac~;f0KU`~kR4Ts@`TAx`2aj2QAy_pC~tB=6(^W*YYiJ=`k-64?aA{% zDn=XUF`dDu?~ub)5u`J?BE6~GiQG@us+*2$1FNHDbr_s%`8S#J;F;j~kOV_yy0)G1 zWq!&;GP=e_?K-1@>ziZihym_ zS{LCN;{%{VQp8#lsi(Y(AVN;VQfJSu3r)*TjwI*M zvPXkdPBd5!Eqip`XKA)?K^%c*#m6+OkTvW!gaw3*?4T7b0YuVgW;WL#Uu~NA8AidK)0`XxiR^uBBv;KO11ZC2$aU)p=ZMH@>qhu#mDsl~s)A2N` zMD_y7S~J@p;RKSe3K~m21R-tQEz*$g+_Y8w%Is0`DZ7Q#a!_igxl+U<7Wqf-!?&OU7E4uDfnl*98Q9r^YA>mL?6DC}eS*PoXG_3x4F zj97L_=xd$GKj~8C;xj7c;0=ap80cPu0(pP>98Q@)fp{`&;wKnEd}KF>BCByEt{blK z%TZW8(JC>EJdSb}lDKqS3ds6xYhCmv8o&F=Q_VZPK*4vrLydO6bC^ha(k@!&LZK`)Z3C~J z4J0YdI|wR!_U-wSgqVsJZRh&*#dApM9-lmpjGDD7YQlwM5oW6QpTkN-M)n!jS%iVIcX>fcKQ5OtEDB>du$Uo`jbaRo&k$kqga#s6e3U|( zyK1o(ps~RwSRE{V0xw5~&AObv`Nf|)9IVO#U#3VAktX1=l6Pl&Y+2+I0j-1MSq6|n z5YXEfAht6gj8^N311&C;Vv5dP@biJ2FFHWEz#s=|dGN>waSKIIv?nW*Su>32GLR7a zNN}jErpF~Q0R@)>YC2sz!uf887lPwdNql19AoI!u?cX3xfwR6~7JTMjVEF>*bEe z$Z#l25wh^pY$AYYd<4JK-5Hnd_&6w~a8D_4g>e=cF8;S8_l|n0Uw%jLL@1xH|M~rG zcj}%pgL=z8Y4FyXJ>s;WWoriA8*y5+Hy#`L+NGTd80PLCk^@W+ZD;^cd32^2#H3EBxiIBRGp><)5y{=`whGYj)2WGCbuv1!pF z$UQ&6Qm)SL*}Eu7KR%Fv^-31Y>z<1M0fwGcjzT-1qJXo>SGIa_)u`ooy2Y03ZcX9m zLqGq$>k5fq*#PL3zEDeb#ULsaoAr39-d&SvTCzmloS%Qg<*Url@3t6xMJeyJGI}vE z{e*q_mh7Db7ym5KxuUb9tY|m1`MtCB+~%Wfv4>*ObBp7m8UAfdf$$w zbK19Ew+Q_FLqwk`JGwkC*+R;0v!P`;r#9h_AuOI9?5P+xP$*@NA~#unB91N&#-?i#~}SQ$w#@T-V7v|)|z)O zR56Bi6izp%=3P*Eq7sP=DKk7oRECX0`1`8gabd&5#T5kj#kLhZ!;&2v8QG|ESDZv4 z)r0XEu5?_#U_rPK>YnUb3`1Bxx-2-PQ}G%dxE!Q|V4Kv)(OjrbpK`M5R+>U5rmn)W z1I64_O6?<(+Dh3Uj}2K?RT&ef>%=V6hBcA*`RQU!&P?$stzXa0Rc4vLSY?(gSJFf* zTU{}}+{8B2tJ{>AHV&tRai<4v+|hPRxDWd_yY>Cat0~=&5$XoQs z+y>`2E0@c#F86XH(&e~rOL@<$UJ>EqCDNaGYK$jvg}PPsq(NP>+H9tdS4&JGXxS}a z-f&RZb{dRTA_-S%_+fTQ%3VC&0@n&-PisS=8=0I+Ln`DA7@}9@!70k}o|>OdvRs}D z%Nj*mCHFY&R-H$w&ef^L^GTva#v?>8so0Xn)@j4yCV9faQI9%k^~cgrL)S-PYOe+~|tY_IjATP#wjn zauzI@5LB>XjvG&(X6J}S`av4$mr5{a>^5GJucMhAA2R;DNUOp}5aAoUPBhO?YJHUZZCv;B7(n^T80{ef@N( ztr90zj1i;0z7U9^+4qK(?1}u$t6LFaGs*9E`)5!Oe{5b|hoTU6YyKSW+e0>xquR*| z6FF^)w9lQqze;bI4jmS9ic6V55ado?9^<_KT)jL*{O#e-kO^|Wepg}dFVA_ndbjsS zF@JwZ>N^qh`Jl8rCEf?+c{0swLVJG@NZ%C83m`n*u<7L0(OTs}c}GAUF*vn1ZoE<5 z{XM-K8tJ(<6DRWm--0H$i7=ZNur?H`_j%AT%bT~e@ao7nZSx^@!Te~t$&<*Xg?Dsr zf#5~leOX%~+8cMb&A-dFF#+W|y@NHoCUxm=AfodlJj0+pls`i<+fd&wSoyy3ct3H} zwm2NgRzv}eDMJg@At|2Z_~Sf+p>Jy zOWcC1V6E+bX>HkcAYXWDi*2i|PK(?sK;g1p#0@qkyoaC_mm1BI2B_%(37rlyPu{m# z8YW1gɂ&wr8U@|x@@9S{$9+p$%g-RWKTCjA`c;xK%=%f$vog8d&1Y{Go%v>B z$Ek%r3;|#KVPasf0MgND!`Lp$A$qM?vdqdSYdiSP@hzty^@$+FC2N|SFUG)y$)g`$ zRW2K_dg6O**>8T{IP!|b>mzUS9{?w@> zB(SWvBoyM;MTJyD(%f?wsHaXP=XTKvb17aB1?52B8=w#L;MhQQnGj!>w+(rLk!-_t zrv-sL=Q*8thIWX0+QUpYDtmT=_mkyqJM6FTG=6Q5c$hG}Yigi`SBTrAumJzjJaL0- z>+5~;*9mcG9=gqI!at}<>oJAbbT~}KJc4+RGzb7nxe2PUW|82=tO7%xyL2MsD)nKN zm31risK-99^YTGEKx_Y?s{jYO`q28eynUTzRmpqw2%hY{w&)|+x4N;iZ5N0pI!?zH zBc?>!Cd=gN0zfSCUfBzzc4)k-Wbb^9QGUq^P!u>gbcVU2?D*tfU;f{3tb(+jWp!DM zH@kosK&V{+8Ap)*oMwS;=#CPrbDoN#NV`he#}Z$0oCE;Rr_@u0EjR!%ohsX+(tCi~ z7W~!&o0gY8%WRv7!VcibHsP;rJ>Hh~-am!R1KBVAIuGUnu<6xs-YkNSvwC`N?iAZP zC0K_Nn5M^w_&WS9dOlqos5q{q!!W__%l-);Ve7o$dT4EnOS{y~kNdBz0S4CcM~TwBWy zUe>y8ZwteG^=f^&^vc5C8YGW=An~k%s#PA6*oA(t?17+7@_uyE5n{3G^d0!NhteAo zA(pAUcae?(rVX-zd$$aYwt@vqze7HO^2<>rs`G@I9wNh9;3N>P(4z!`)A&&W?}lO6 z65-9tV^B#lm^(VebxOdV4d#w2QJvFvM-jOPF)nS07}vZnZ{raD2Y4omy5T}H=J9g7 zm7vC?%bmD6W)el&fDFViFBWM=2irp=3jv~nKiawQ%!0VbR*IVPqCwJT8gNa-FXQHNE9R)E-~s3iv7&KB>r~!bNF%HCH7xKc%Vi67^h1-=PcqMZyNJr3L=V`?iwOx~F(S>% zn#G6M*VrcGLGVXdY!NIkLQzWsQY3xvesehAe*M+6Ck%z6m2_T<)H0`Rj z1m~i4Es)WWmln2AkB2$;_?|;Oszi0nLK%u>p_J-GjohM!NZ+Dx4B#IBPA8ED3VAp^ z9n^RUpt6xRyqO!}ZRGAQNaBc!+I(H`L-vMw;*X9aY_nv4WTkK&{N6prXRQSdg5Tsj zzr&0;Sgk!MmAK|rw1h&Vw$}8h?MLj#r@w_jx$&^!(@#f`G^!)?S0du{SEx<29BoJ| zUCd<4mSYkSP~3?B$RCVOm$Y2R$rV*h@9wMRVrPt{1Und{PZp zJE%nDhb2nSXBDrH6BUUS5@YNhyS6n|E=-Q)-{9WoH2qEp!xkp*{vLt=r$|SZ4940y zJkD|%b*Dg1|M7X-{RRLTM*P=1%n~0mCNu0kGh|?uG&y!OCTLw_?ChJFEGd9fT-Vqk-9x0EXzM?4|07zf7n zJO-DJm>b?J2%8~HTeT(@(d&iW&NvvZ^caB+bB4*SX9z!I zNj7Ks8(AiIH+_V_W$c<%sS7RlbxDscy)|1wu7o zz2qS5=2c+V0synZGMQtpcKNFICV0gsxNQ4MqE?6Dg^h_~B-5dlK)i0mHaqjlmIZDs z$_R2xL=Z+w*}C>Ui*kKGM&1`#q5M>VRz1=08gAaS#dD>u!(k|-Z4&f9x$aPlBMG6; zqk2?`%Dht#Yr`_=U1jKvuXWJxn2)3N#WC~?JWC(+M8eK_8OUIQDU%g)OcX4b4jr>1 z?1{+&0SYQo4I)2*Om`%5NjMTEorO@U04R5@oe{=QEgf%Cy`bH9tp%J3IqqZ0*wJ%p zk2uzV5JHQFYedyHe$%OdmqcvMkds!oP}RJW61FW7@RI0~#F)ZGM47^25X~UP z2*i?f7Xw62+q!P05*85t4bd|{IGc*|S9qovCt=MUH(5mi=G^H6dcVh|JO~c|sA~&W zK-Xfs(9jgQ!==StHtly=rMdBFwdAt zZ4{lSX5sUgT!EJe$5yfVO95YvTY4sdAj0O^cG+8_$opoori2M&XMVvNb3UpRSRTD4 zh{)O!>S!dv|H-39a_WL;KXuJ+&$HVVRvoxk@|^V>Crcp!97Cr(WW}2qI}4?_z%Hp3 z^cIB?!BW>jo&}6oNW#?W0#UpsHvX0j_-bjB^DT=LUvB4gl!49($sh|8^>YPl2ix^f zQk^HFwqo~>EXF3Xk#)F+?g<}*a6^)tEfC+NN);Mb1u^L{TVB_S;UH@5Wd`#{ol>9E zEQJlRSO^+s%z#nEV`;qhH;@Xw27YRYYX^*{3Pykyq}_M0^==)#t1`|-^vv(NV(!*U zq`iN)MD$A_@`byMAb-gk7!ToFr~F{{@U>3Wkxc${@wLCfcw*4_sb#P(kKy|q4_u){ z8pTan-6c{gwT%nPIvr4s>Ejq22GB_*ZssB|Gqa}{m0Pu_+smH*1wyabZ zo|hFxRg7S;kT%_e(*-xqpYH)HZ{^Q05FG=qdJ9a*zmKXGktVrjg`MLTBd0ZlAY>N&TS4 z1aSMVjjLeB%jV9%^`R^VRrms2Ap1{|j@yNAo$`aRJi67s4Fh**uQSet{RPGoD}ACo z&1oMnHWEREC9yy-PE6CH+mE?&&_<2gfY=Z}iREA02%!dX_u;K6(LiGdZH@-Q%bhIa z+GXR@MA7V@X0xaH`*e5h3|`~3FEmPo+Ur*F2ea2~KqatbqXG3X`R^{}P`{wV2wK*| zpIEkJe{Vv=Ko+0Lzi!7Fmv8~-R-3zPvOsot>}!J@pZDXf*!h>#c1WIzhU}0?snph& z{BSf3je{&!MfwKeEm z@)!ELsP~BQJ8_maJbhfps*u&5uX7LHfNO|4Z;E6*ea$8o;EqZZicq^=TE%rd3BRQK6beP^$Bl){Gr1%NK_H8PdHbA|lZ&3EY<6 z_LG>m$}StVdC`1cC~Zr>8{`Gs+V3V?ZPW0NNhq`OE_&H-+x!w+zWIG&uN|TJTzl?w zKtZAhNh8Q2ecHXjY87FTAYqLO5OI|T52iZDV`R*!Bg!});~uwVpdN0Km(!qCj7Uzo zn-B1_Eh5vy2qwONeZj^tt4Pl(F3z43-KbL@0aIX$C8IK8mP})-1CDS{V!cp10nKgO*w%)z)Ou)Sedl4|t7XJw75!300e1PMvSPqC{sE6AB z_@Dpdf5{RPr*HJRpX<1a2X;~gV?4nf17C6ts}MSZ;E&Aqxl-5hImi`U&X0+$h_@)l zWk_$gY=jG(Rn8p7B)VKLj`de3$$&U3(e)25n;@hsA54$*_R!J)W|iH1AK|-2N3NUuY2mRsDgW6!Kh< z78?!-h=-qL548bRShs%aNVXb<(s`kCe$GlwhE7(3FczCdG)H%uQt>3NGHHWU>HcY1 zaYqX`@V(F$$3~BLh;@tYe}W@MINi2D!m&PTM$36go(nrE=Rycd=ZSXCb`i&cWs7W^)Ga6J4`+2aty)doNs+JP-bh`fuYuk2bL ziLJf}QMpJa5zRu}0W6O=Ez*02R!-uLZ<=@)T6jd$XsggF6Fa3X#_u97 z^vAu{*6TK8sLN@Vhgy4=I*ql2M$BYD7sAnWsgJ}bLA1vwJ!hd`&@DG|v&JnL0F;|- z9+SHGnYb%9UrfRs`=dlCZCBnUPoP#lYMUmwEDg}kPB<+^>vUTRZld5LG6!koO42qw zhbKkI3;8D{VhVg0sAP$|gQ~=>6K);pAUuk3>j?3MbgVzfb;N`(?i#Ho)_wmVo#!>e zxQq%5IZj^(ya6`}(MAIgp_0#~}+i30v1(`=UpyTup|5Z9BPmVJ3tpT=R6mP+p4LMWeb)q|c<=u6Fe|;uNn}1#r;z z3ia)yinPDdYEyYn};Sfo&R5t?aLfxB& zX1PS*pNazY7%d{Rh9$|v&%_!Atu*M_+nVTtz=v@M$aTvh6WNm$uwVJyh|k&sUfnc+Z$C%Q znQ>(h1pD#u4TZLeY#x10 z@oc}@1?47^jdd!8Gs9^5Zo@dKsY~H436t|Utt1-iR`KAHxDqKY39`N-wGKeg%KKT? z#aco+aHdeB93npgN7})x>gUH_PCy8ayoN1$J)s4puFAk?%SIR~Z3zoTHEw~}TWd?e zS`L;WHC^o(eWS_Jvd@V-GD7Z_?P$Dtk}RR01JzPcQr{@&9oAA5K1W88VB*vh_T_2Q z?8YT+9HH+Bk?4l@rL7rN`~$+|rgMOz=LC#4-bGwu7#?fCs+GX@9wwA1!;Z zxUrUn&XBSssfe>)WWMvbxRn|N;C&+eQ0dhhG~R$nW1RRbyT}jGhs&f=TBqy3AdMX_ z;?K6e@9zg`%aqL69Qf+o(QDK3Q$$YM3DJ0*JFD!%4wRxoDkRDw`s4kci-I4VXgcsi zw(1>o@J&CM12=B=aO&{ObMs`}T=&uWV%{bmx2H+}ap<_`fUxeYJ=JeN8$V1kBipWRVSQ1&puMKBc}AT- zJ)_Sk46~-NU2={a%i|LDE*<`&SyOGZCbu1bTt1zFkMGXA#pD#%%EUV450_q&sE{5L zeW{pe(1}err!7mn$1haF_~+`}bJjUnXIM~E_MBUkX4vOOkcyxW*<$o@6QdF*K6TTB zQVh??a7&btA2BJ)E$hXD<*ZXe$m=O#%<bZGx-&Qjj z^`GMti~DmnX9JCJCKYIhWZ>{rp{KNe6g(9k;@#L1~e|{|M=(W_9eu##MrM&s_!);NzNIHjI-h!V&qrBa8H!8X>jC zGK3)2reSD>*~m{siq_g1Ynr-z!k@IGN>t|vE-;=}XQb~IQB}$ea3)-$IA|k*QIBO2 z?cvSOtxd89*tyxYIVU&&PZ8U}9y#$0re_v!cJDG^esqMLpd!>mG*CIDKu&1zwrN<4h3aVCl;uRci!M!XM$z^bwp;{gUWN%F@B3hFU-mTmsv7?>r zfe7!}ZGH&1E#>avI@nfn7!wyems@vWKTq?kuN=2T7t`uQe$!sdb>tI2ZfCb5c5VCV zwCAps!TIl=ZQgG_XTN&?c4Ee-rmZ-S>r+~7CNaffzE|OD_jM(XjK6VRd73)UHmh4Z z=QNW`)BzSN`G|b0Yuc=!@ziy5f1FItO}Adz_7~^svA;YfmU&KcJDC_v4GhQxYr;7g zo@rdCHKT0KMmJ5D%Ur;n4xRO!1LHO!U5m$bc#dPwT2VJIEVXLm8dKci?|n??E-vTL zMGG#?y@Th&XIAq0bJr5{v?c_fZU>YZ2j%;b>e4>HlwyyCBm{!cOJj6R_Q0oK=4oJW zaeQWB+bra6S@HZf;@eZvy5HguE+Gdh15aErGk$d&@ns%%*N-a(`02Aqo6X#{^Iq_v zz`8f`Zh*HwwuCvYHrV4!Z03u-{IR3EWd-niD$3K`aCj`D_E_ZN=b1qDhzzY6^jzYW z1vAsyw_+FG`B_WcYwEJPOQbaSoObtWy={~19zuu>y^;A7$(h}i^UOY(zw+1`wq9_^ z#t_T4I<6p;Zgpd}-LhR4pJd&%oZGC_&v%~JFu#*CcH2(X+d4#H+#Bn$7l&Q)it>&4+-an(@<*^Zz7+`p#9Wn~}4 zrumw~cG?yJ82X%~Enav;iV@xHU0uVQAIg+H>iK0-N#S5-d0Jbid3JBooI7Q=c1$A4 zbz*xQcjj}K-91YL&imYLmCuh^cn#==0Sc`0Nnr<85zZASEoUbIZh0S*_m43fyypFa z8)AS{<#a7IIgvdL-Yn&AT7b7=3I6`PVXDtja=zXI!VN?bz(MS!2#?0JdT+%pjYTAF zQ23HbASno%WWFa-$zrc!KcE<%T(kw728I5$$WPgmnbV!BNi#M{OX?wed{}FhX@h#b z?&Cy{fKpf2j&R&Gr-+cuj2Z7&lZw0E#c`D&)paJ(?T5(FAvEQdzMs}4#xooXFn-=8 zw@y>SGAhiEWLfO7&^rQ{AodGHokw+FMZ+to3$zFnVmZ+o1M zl$O1G3nIE_Tt>{24u8u1+c_Qm1f600TjQG~ibO!0RO3P?X1;dW08@KyiEVLFp)4%+ z&#)a;F*gJqUJWh@z>@s)s<5)^i{!94Z||}v~>Al|s~Vc+jqPr}a|f?wxL478|bv)H|^}K%Ja^<4&(6o`uCAfU@)+ z`@P#ZFrtJK>e?VVYI}05noJC@QyMz*NO8Mtx)PemyZ7F2h$L>YWBbj+;h!WOZPAa< zw9%NpV(u^3Asi2kA|C@FZhnCDUW%t|tr4zRqpOncDxi-k3V|7jj9G9Ib^$@6Ov9_Q zPz#{UFZn=Wi=hf8Lm{l7lyg9MJl+a-&H+!@i{6$SYy`K`Z287T0Nh6oLM|AZ)0VS^ zHp!e4FN(@E$IPDg;I>{bbDJPQZNGJfz5JTW&2x2f~jziWTY`@*m z(6ji1>B0FIbu;>j^uZbQU@7*%MbX`_|GAF z@ki&RaXUjMXwL}#C>oB|xllD*ZRnRg9VC6_myz48TRhH)>Pc?{Ut-O*?NG9s-l4)- zBSbQwy4?|yU7kgL^QGr2jj!rYfa&yp)%EJ0MrHXCEFjVVklvuDH}Grus%}5DbcpM> z`~bg>{~V$h{dz9$YaR+95`$;x*J!x3j@EbRaUOxib(f*ISC${a>;+(u1v-GEF@U8eQ6eAK&3!hjFDniB zWcB&t^P;B=#iK$`)a(y2o~6G;yf0}*0wFZogGUZW-bEuh(24YMqhw{F>f2J>95Ogz zy``^xN(4PUc$H;2dv$Y{e?*H73Pz@Fv>rAx2?#b!VL=I}Da;eKwuV=wZLSZ|BY5p# zXr5lvM3M(Z>#?Ba%hLrdMED}HxoPf!D$>4#rQK=;s}#3xE*7ZGx|usTj3ZFX5c#N} zmho_3Ugyh}UoXs=NrF+-(X`6jcpdc(z=*d(zanS=TDAhSUWHludyG!t*|tPeqRcP; zuQhcHKmx)RAJx^n;WRtX1?$zjcKCr=TiI(vO~xC&TH6~5*UowRdyS&%(D)EY$Px78 zkE5R#0I(pTbn5J0NBeXfMSkAauek&sh9uxp#HwqKj;ok~fTaWK>Q_4V5!IJmD&NIAr31}A*izO;1wgZ4EL1}E^VwCu~(?`nmmHR>U+e!wvhY$x;fpBU-ckAAAa_S6wL1^8eAf!QdhTl zZ250MeU{WxZBs`EDMmwLxb9b{N# z&Pz9uW|wm zDz^ndsGn%mwD~QvoVAS2cfC@qQD?vDjRUOfz{Y{NuTb%P64J|4ux4uxe6|8h8d@~vy!3QWm~v1T6iS1peW06Z<}!wbxQZkO~f$3b$2z^x%6RYbFc z_PNtnx}ejzCDb`GgBjul({f~JTiZm5u4c1s+hSI6X{RcXoJ-kEf~nJeqb?K>#V}X1 zZTqh?MWOAx@|*uuSCr>kr>yQ0DV5qr=-vt{p6giS8k@Flu7A}qqK;$B#$e{>u_f&$ zR1u6D?jjQ_^RURiYKx5&_R-CLdYEw~XwtCOVx8Kgudx>GaBH4K3!M?X;MhFk~ zP1_C4(n8H{hFJvYKc_)rMQMiS z=7$&iMbjw160`5;@pB6n!x_^JP=xphm&Y~Pz6z@nOHtpx%Fzx{Dtga@$Uo@D#qS-} z-%M|Md1lxTbg}n1`2tSFyy1}zSvW*eEY%IbiI{hYGoYKf63BTnh-_=#i#=-$vs{;v zdyKP)D<%9$G?5Ncl}LvyIX?a%$unea48V=?YRv1r&1*O2b>6A2L@?*|(yfxL(G$yG zwT0*kBv%^=*3QM%jr;!6Y+P^o$;IXJKU$dH8tWsR$M+5aOt`qv{N6&1n}T6^YQ0Zu zk9~G+i0`+v*S6&kjOEAjzM<`BKbTKeM1A~N1hdx{9DaX|%0{oRhz$s_0EiG-k1oC* zNmbBcA1b?Ie5c-k<5S@0<306fl2;n_RU%WJI_IDtcre8JGRZhU&UYY_M;^9s0a^V2-HLr0=# zy?3l5@TT570v+jJgebpezN6{Ta#_dhUeb{HQf}jc)7QrNzL(&yHf@xFR%p9qyzce; zzU}Is9iXkf0moBNkMXW=9;aWj&WgaOKk-4%ZCh1mjGiBNm(~6Q@kDQub`8l#DK)P} z&$4<+)NBfxwejj=IV7jBJ zjaTJ6Er@og6Mz7S-oCry0)`pI2$IGrCqx%u(q@BjTj|L=eAN=-~fc+-ssBFUG+ zo4QBo$=!G&`O*@wB2b=b0Fe&C^CGBijbXu46=T5w0+(>$5eoj$xqNQQMeM(vMMXPwnl;csvf(u~$P&j906ot=BOvNZL$@-gR8xw1|!nV;&EhPzFtwz8|(6hV-1?w&hO*`2Gav zR)QNh6sZS~O0SD=+VVu)CFDt#&vV;dR|ynm|DLSF5gr)V@W2Uy z>v~+pb+JeY1SojT?szNBNC>}@HzH?1EjI6)swL{d1S^!htZ23m(3?MRr^&;3^=!dXNMn8atjpKZDaYKDBZ8x0;vr+?G0{wL;UXXr8{@*!1aF055(_o7)nO`)U^;8Fu+)LCE5qxm;h$t$#9<|L#6hHmk zYKwzuz)e=n6^F|?5suiLb%%qfN?t1o*zzF`f>^>9B>1f1q3mA4y-+Macw%$%@kptW z5S2nkiAvG@(N035JkdOdXYTbyzGlAWHecS5)mEEK9`^&(Bzv%4+rToso}te$aMl9)XdB>GjllABIZjwbyMx zqIt0_tj%z#SOAkkEG9cS>84IbHa^r2v^lH|#qAVjBA6d)?ZEu-p1o?bBeFc4EyDR+ zgf~Rb5qGeqCtqM3CnN;rpx0~@(8ANbLjQu&(*nOiX~m1gxy<^!4v(4m zkiJLTe2x$p6pHkR1i(nIhCTk}eUuRz1H$_Gq%AZiW)LvqTaXJDT3&b2IA%tXj)t!n zEHA>@?zGp2nvBLZ);LfGC?uPQXdn+Xx-B0l0>TDcMH+&_u+$ezLVe4;KCaQvW3D+eAipL z1SiF1=`CBZ*o=32)t2BS7^=6xr7d=9?2$o7PrcG8$e-iBAL zy*vS{RvsZ$PG#JPyr$Ni#}T{XYvwo-1d;O5yyfFD z;c4_C8qEtcsAG$3?AB=g6-4682;K<$*IDjC+t;}?dEcaE@tX2)xMxK8;|}INBpS#~ zjK@glOk<=aaF{9yUIC4f7Q;m~%ubnEojig^5J#ZV1JKoA-f2b0mDGoQr!CPiDDw-A zayfA1#gec0Tray!+eHt~uT>%cP6 z5gQeq6L!&vh^Qj%!(d4~t(VB2M!Wq%sLAMoy!F7$8Mrih%sdEa%$bqBdHqfph6Pjx zC=5$V-ij%MasyJv4J}11i8H@IE|TM&0W~A+yU&$wtLz@iGCr$zN!;()C!(${HWBwX zUG|a`yYP9}utTjY=<%f)3bFh}c9tq%RPvX-3iF4+)?}G=j=uP*QY5pS|B`aG)zCfk6!EX7kT_;Js#Y8 z3UX*Z$7`gbiNSt}_~*bP%ChLDWj?H_x>6s|>vb?2?z>2@QKwZX`AKHJo>t{C3fbtz z7?0^%yKXEaQ7U{|mv;IT*pFP(X?n6$q+Rr2ef!Z5Zp~biAVsL?spm>(fp&W8mGQ0} zS9#k}W6|}EjS~Qm6DN4n@-oS>Zs=D+ttIARb!q?=Asd*!I_Ae~&5WTe1=sT~; zA$;l&@d{oVN`9;}eg(^uV20XpX9@GR^qnHL6XNYB>}*R?xn%vxObH_Qa7nFN9yy?J zs@I~^z0r4W7me*JinRCLLJ-rk$ez9{`-7Sw+|$7|vBtN-1rHficrP^G3*%*2FC?oM zkTeLpSJfseNc=A8K??16@IBtLH2}pxI=|s=fdi~{dju-s<70;TUYl!G6!`R+@xR+V zD2RZeDv+FW=RICOI4)aeW*!J1sumfFdu8DfJlhgJWD{})b?z6`Wy$;Y zN0fy?HHGd(TN1U9+4?L{Za` zh*LY1aoVm}Wk_%Ztfv%LEU7U+k|*P)%36(4uUwX{Z;p*17u=P}65m*&&Q%@;pv|J6 zN2<`4g?N=N7)V5G?jp=6v)Qd($Mc)yCnn?h{m7AwF3P9y>7n>YCMr~u@v}YYt+Bb)n6&(0*1XIy7Gj7fegpO?*SisUjOxIBG4 zZfglV+gQjO0mFtN73+V~9uLH=V=_1DX?RfNHuo5me%{izbveIrnQaf8@0Eo|ur#fS zYm8zf(Xes>xnP*~3Of#3 zA&iU8f>(yJxX@;`u#?2Y9SDjNW#PW$A)Dysh<`%AHm;E>yi!h|!O#fQ=Bg%0ti9R2 z8@8YoY$o@3*Dyv1)ItbXQ{e$nnqgdR2@eQD`u7rxZ1DkbT1YQA-3v}0vWXrxAgNG# zVKwqxon6bj#F{O&DX?NFNwdYS>o!+M6^5;*7s~*gpxk!R=!GiM-V2N82B7ncajG2; zLQU2Oulj?dI#J>8<2-#I9LMn}f-xgNX{~A3O`Bk8ZKYp{B6(hBz2=o+o#G}vF~TX6 z9+doa{khd}7p0f8ISd*Z22nKlfcKG%cO=9BRMo&2ZWqNDM%-c*&#cPkz7Jw~n(h_= zAe7}50%YIhKq5tIgG6fkoH`lzPnoAWb_yR`Rx3>r7e(5?>0^VwTAE`RC2|lvPmFq$}1ew$oVRSvYOXnJwHRb8Ni^YdQbtN?o zJql_W#G8X83+LFzX}UDS;5&V)Jn2q_u5HkwkxLgsis1~obbK%rDD5yGI{q(82%-}xcOBvvX8a$!0lCM~er<&2xeTna zYb7+t&-1ui*F%`)YVGLcHbUIc`YeKZj_v@BQX$ zCn4azA?vT{)z5WY*>OSJc!}$1xVF;*{u{1qr|h&@kX=W3Ro#dRoYe+|cRoXF1M+si zDRu&I1vwcz@Mh3F+U`O4bRjG1$N9x~uE;XKxZ-^*%NLIu8FjBOzmk>08XzeQZBbmh z*FhM$QC9ZR5WFU>e9I5Y%J|PAdO0g+EcFWHC8>lLrDIj6PtAjRqF=zW&p7puMAFgYznR zj*6r8x#VS3EOuh7;j`^ivNS>(z`p$KLiH7wp30~2>8ME5>I4woK0Q*p)VzIru(wam zX=vq{4dNE(OD_4G>>Ge-Ki6H?2BuVc#Of@5;Y)KzgLU~33M}LRMD?$1!7mkj(rvmO z_^O@yAZvuxxBNs{_5Uc@1F6>96<6=nF{~Q5St|$I=x&B5l3tcmB!LQ||T2vXv9t#BYymh(o3KNYr*5Y0Fi2*~EzMRZ5iAb`-jgxk78Htz!w%VKp7H zaqzlCJR08?xLGg4x9#gi6}c72wDfv!t{B@A|EVbaB$Hz}rZ>8n6y<9=ol%)2s0s;< zDy0%y()1o=y?#sN*h@PcyJV!^z+F0e!}TBZ?r_^BBlR6{_J>n}^vDph-#97MxBkm=AH=*Qsl_s;vFhpE;#&>ko=gyTLLjkQapt-a ziRKp0Jyerl9_y{PEQ1Moe40caviOj5u5qb2O^xwM4q;);RYh|JwOnV$t6R>32so~O z`M~}>)gh)=ePDE3o-N!CTPbv31ncuKs?(Sf(5hih$StSsKB*5RWX)!I^?a*cHt~P6 z$j2)$e3m#xL;Ak+PEVN#g!O!0BG}jSc}e6yC%APIpoOs57un-IM2&)^n+l9xlc2C0Qi%T)GHR-s{V+}3Z=PD$)+fr3mT5sLky??~f zM}6~u%a411{O1t87ylUv9rvDddF#37%d-T@`MQNb%!Sl0hdLyQG#IpzHY*KA7wAk<9#(B!QRPlinIzN!zntv;s-| z=h^P9l5BUJetAELq)i8yj|!)He!nfVp@sSV>H$*SbIr&1TTJ-yK}vo3l`J6D0#Lo> zzHS)W!?M&giuPN6U}(pG4$%vuJuOS?m%zC#Q4sCiX-+HUNNtx^d!N?Q%wS&I0i8Od zN>&SXO7fAm=WN-=^IL4OX3fuU(T-H(=9h2LwoL9`Uw$QP{FxWyGTPgHe0x5=I}Vjx;y3i$jN8Ieywd1i@7;by#%qmS1_@oHftyTYm8T`hO15OZ3~(i1If5+Q1>+G%)1abIw^0t8(P_nU%7u?28VTC5dKi^hKb{mtnY+Nm_`h|pA+Y?eS-uH_jz8@Ppw|ayKJtJy%YM` zC$C3MoaUl@5ONy9XpzgFGVwt%x#{a#OnfLz*K){SZTkIjcV+z3r$M#3efr)C$xdPK zC5<5ORpcltNQ3INnxOw2!tq)~{s=^W-0?;5i?U? zb=W<=JSMUw_8x_~Emy)dJ_hNI@asE`(_G*mzGB*CxJ*{nt9v zQ_)cVeG#dj5vJw2jB5L4tNjOK!P#5{ zS;X%Wk@p8mb=G&P`a6w=K#2~b-j2^XT0rQM?t8TlIt{b@KEyJ9a~mNtD;-Yu_ln*g zGO+c6p2Ne zLp^rf_@0k|Z6;zO!?Q}*7VD=x4t9xcMecYeY}vmnB8z@0&Cq}(&dkhJ1x=N>PQA~@ zyB2v9fApCL0*$Y1>qG8Z$fTc#HQiee3KK|a(~2GHhJFFS!jVl3Sg@XbG)Q75y;fZ{ zo>Il!oVLe2f;4WKdw0ej2c_QY{1$59OJNHDpxZNDGXPl5G)f;yPM`0)p$I#mI^IJoJnUm@ z9%Q(G4}t)%5Wan@A{}j5Z>ql4t$4<*mfwN{6sanRRO<*b$HmvC+Ns&t@JDd>dpuZA zjHoa@Xj7}i0XoPnvEP2c_D}D|y(xJ1i3nBZhcvf`}yBJwjK!DAT=wQ_a2(1BQ znobzg*??47WufE4kyZJgTyY{HZmaS=^9m4XNt?rO4fO5jjo&Y14FSkoVV*hH5g+bF zvILawN;{aasXL;KIjS;DiD;S@L zZ+!bP4_hRa1wbtW5kfbhHj%D6v#Q!iRpQ?huOK;kN{skSR9eBvut|cyj65HHT=w|% z*g$tTZ8IzZ31QxiojQeit{5t*j%(>k!q%Vcs0&rZ4r3cE0QA@vT@`DsrhaZW{zm_O*EnjS`SR`(FB__?0n48<_~Lh zc|Q$nv^ooYsfxeokGA~`o-Cg#}T&; zi!ryh#1=Pe%Nw6AG2{HRx~pxUbsCCD26GdZX)e@EUSeBhjl>6Un-cdi0k-e8^TZ4Ypry6lyI7JFKi-y z_QLJ#a0xH7SJ4aDQ$w8Yf)#8y%RVg}77JiikJm_Byhd-gmv+zG*|>nvq8|5>s*URA zpo$Xkw)|S4oicIbR@My^y5x3xqW9s#)U|vW9P?osBVPt? zCGut7x~`{eyh$|QM8arhOkPQQJ@=tzOMvl&*?S3E(Tw0@il>(^*=@a8drX}QoEm{{ zK$GWjkfEh54swb1ty{G3lDgAp6wMFm88~l($Qzc}&*@l4yHCHA2sR zeY-U2BDa4KaTd4LS-hY$=MAO#h3#rW9ic)sKuw=!2ltTH=ecsb+Ho6%MA1jR z8F`OM=RFqq&a>l7C{7f70hOp66U94?sGVcN1WDYhgJ^R-&?8AOt;OTpycVqOz`lUN zAGJKp&8J`h@Uf@zn$CvK145Y=)Nc))#O-o@pkbj8PV|X}oRc3AV0=3GZ8|&~bk9~e z(+(oY0>yTwqkF4m3WWrU`W)n3E4seX28e3W_B%mhL&%AdG33{bp+TX}5n^YN zK7(YXHNNC}^z)WKbh$k#Bpt9UFM-(^e$o83i`FO)8hx>cYm5&AciUCzohg^!{_gIy zx83Vb%4NNnjYa7`{ugd2NDvZxNcXNgL624=^LKhB-DX;ZVe_K4)$|)2Gt#=*y(?sD z0!Y_j_oi=L)jfTk3ehw1uz@&WyH2K;E5!$2w(zx_e_j)NQt$$t${E z3J|~wh;waP^x>CU79~g;AYa7d2k<6p@blO9>}gi*!#HpGYkief3;!6BX-hcxP2n(k z%y`(be6K+2<#%x-ZDx?+D_Y;Obw@XQ$@KeLxYvdc3cg(Sx_4{fdxp6e^eqE6ykxh# z8SL7|{AfhC^PR;oegEy}FO}Z@)MpRaZ2L!PcT!#5e18<9?7#i|0fuHaqN8*mnRbKL zQ5=M$>`yIb%5t-yd_AcBlF=@AG?^y@T3&U zii<9YHK{H@Wvm=ub3%D;o74S*a=E@V+)#lH%*8`CA}fN3hp}@(94eBPJhNY}6>tcb zZcb*2k5Fc^;?X{M+1N)ANlc_~Fbc}0#|^;S#e5+&#v9x;(g66$GNw+E#hmO;6j^MQ zHx8DN#N?C>PbLlv3A-n!7peMkKp^5)bNwgi9ECsCbBD$8E* z!HEhav@#e1O7y(4HXR>CQg_Kb*-TckT|+n#8vjDb`{2(JBcp#}+4=X;!@4Zw3|3!9 z`)!rXrO=Tgw9>+dVdBx;}GE#2Ae)h)CNReKm4?RpC>tp`46og)19OsAF} zE=HaszI&9eZZ}@5OQL)wc6-NxW7wD znG7G4x;MIbHy`)N)g6x$3%KDXKvj_cFe4Y74we$yti%zY? zzgpT^*;`&K3)sYILK~HbsQfni6@7@71W=GKQ|l>0=t>}x@|%nUSBSq0&ffMZI&mfa z6tb|>AWb~W=vMEGk!gUYn@X`Ooso#xH}x07&&y*HU+_KQ8ymNWv}D}Idm43Lmw5SB z$z2-eq)n?8N)opnixGxoN#EU1$z^0mt8fLh!4RdxKH0)~GrRgASBSutQlh0J>qQ z32+4egaQI#wIkW0Xgy0XfQljN7&%OYL#v^M>BO}JQYQ1EiOV$H<+Q7YE1l~#tIh#2 z&Dsc{;ET3VVDjncC`~9m*i0A!*Gz=fC-Q+9v3o_Mfjw@QewFTnqI0z~!7!7GH_@Z!^0whiXx$4DPceY-!}@nc1Z z)fC~@!9Sot=Usf0N#LDwd{@QlSPB;8m$hagILR6m@OB_3f~t924QK?H(GYK~;6B>xe&`n#x}Y^vguTug z^T#3HlMhmX&EyqE!KU|+TqPBnkfjDBml15@izF>fx_952Iee&{=~|hxRwO-^8FJb z6oJ2Q6_R2m5t5wAB; zn5qSLh<)68zmjo@@b~BSe8nifJC)ft^pZwOH{Po!!_Z^e{jk8-RvfrIKQZK4g zi2jLxUIdLcV*zSOFYxn8;dgP7t_RPjBp=p6j_`@!2wH~#AwxhS*ZC3Z651^)!fwW=P$@lPl2%yl3LOF?jhFU< zWkJ=Npz2Ujv9ug^6UTdB%z(iV6?4nL)s(OPLK0`3l!KRucq)Ruhz~0XaJSUpN8~5l z7{qK!MS#CBDnyO~Z#@E-xmM>@Y}`mDyx4}lsCrwiQzX*;HCo0WFTB-!sYfqzW0J3? zH9_{aV2Fw>YPP5o@K8~-se6(o0t1<0kwN~vVOaxvn`w``EQ`#*+xNzL6a+Dk8XLT& zCUhR$=#Okj!{XKR+PIZZD0d8_T+iO&_Ar4DY`ptxwM2rl9>=W{JN%2?YVt{ukJ6YhV{zjiWDa5ya{qd#y9<0C5~ ziIUq91QMzk9o&JoXm>PAlo6oFN3p;f8EywbFUnL6I8vVPoh6$ObHHFRESU)UPJB8c z7TpjPfe12Af3YLku_gvH z$@!XYJ+2d^GEwNe1zY2a<+wwBso~i40G2T9>8>-B(z%klH;eUd7Mv)0TEDDIdXz*$ z-uSCpKEDuBCqQO5@n$(5k-A|R$Ycz1Q2|@5VZw94>iHnZ5r$T?F7O4h*!)ab!XUX| zyRF^3$ubE5RMJ~+rvZe=JR{a8>4Xa0gqsFDC^L?<&R0RSuyrTn^p?yD1>=HuhD%lt z;+-=0++}AE!k%P9J0tXyI-5boa^2uem$;|32*&Gq=$PpPS>`3X$VXsK^P3d_YE%Hj zv?i3_l@VYw4M-3#|16S&Xc)Vlj)|BLYqAPxyO3bv@+Scj(m066V0q|*Z6F7nixGcO z9Kffz*Blv#$#9KJDjvQ4clKVoHFWY?R$b}&#$?poS1o10nIkF{d_lq%`duHye-z+Z4SvF6-)eKB>!CJOMwoXzwV;R=w%UZOXGdIL!Z8wwng}hJGN4fchE?L{?gss*J z70eac3@WSDjI{DrWhL7CMUu6U46J+o;cYhe&TJjuU~A>W0BOXQAGl-r(fJrjtl&sS ziGmk9F(0l)(y4r=WP=v<)>*5FlZrhF5;tK-x2`KC>M1@&$+~xxVn!Gi;k2Wk01?H+ z$6YCABp(8UEw>!tagFPs#Ch;!5mt61~10PVCHTFrb`yR7qI!C10F z&HQgHhE}k)rvle;Ftn0gVYbY2r4@6RZstL;!radfQ<_Y<>i) zSF(De3VuF6Q%N=|UpC;^Ha3ZR@6<-na&=|^Np*I2IBx|7BUr*1h!xaPd?S^lrEEOQ zjC96ryBKY6R>&5-tj024y|d1_Rq)UG$-!HfK14%UyQVjfR`Ayw8$k8uDW&=^;pg65 z^r|;Q!o|(cJ096u*5?XlOrd0DSz7ky9?Zo-eAvc-3U**#sP?nI+#}5MRE_4Dyhi(k z7|mFZ8l(A9VzNR}YAohL6s;3>?NNRFR)xu`{7PNz%H2&*)zW31$B>_7j?!dCOxE<} zIBj0=YBG=7HJJyqnyi?QDiF-urLT1SG}HZz$Zj8Pq($0cT`D3HTt(i>(mC~ZzIj37JG{=)qa*4jE+zS zs~Oe2S_%^-9~>C&h8-LxYs2U!`v!Nr$UVS#Rx%f`mQBlVYi8(M69PCR7pj?axwUN9 zXdVNakVhEV1DAPq7UWVRV(69y%S?95qP15Ei@KHHB%I&DYG?VPS1s?MfGe7MIQ11v z=Byx(&hKhvW4K^hF$KKRZcDPxtsTR!S#2rS!YTxVMnHsc>lx;Dp=dK4c(=@13+OHL z_V@GA{zkx!H|w+=%9l3-ahwGH84(}Z^mpA=HoGa|vaY0^pdKYSh|&RFo#jHqVtrWqmBonNdPpEi;k{>WI4J(yA*BZLsiNdLHH z#k!E+vT7auZdo%kgDx@b8+F2eW6cHJ7_E-Rv#gGmFhZlFB}Uw;^UFI(9JBEbIa>GB zTb8Vk7cS5j8DlJGyIX+ec}5|J)i&rJ8|6 zAh9y*td|ZlnlIS8?VpTlIN6MplB;@qI=9OVX_5r=V0?!Ah+#ze3-*<>cA{q5WNulu zzd|dP|K3UNm{F$_e00O-0CY2+-{6oVY@}}7GBeoH2`IY}SL+

`ya(?fxkJWt|{t zSv7hy0NuG@C5+uN^VELJvi;_==NoPDm)+Ce*2<(TsI>F(lORkhRt1O@Mz0hzj>RE|-~6)o_GZ|b9gfXLprgYAn5-oW zi3iqFQ0=%%fVp_1Dfen+9k~&QVZK7m*1bFWDi%VnW~MSp(oZy|0>EC4J1v5P4d;P# z?aPpE!HS@BI3KDyCnId?>5lZE>(SB_{`Uo_lob1v6Y8o3I6K zA;+s=$+8utem^gp?L@kw-Og(EOB8Ggy7sVz^3_r*q?booY?GQF(Tsb zcQfpLIEyzUBo--K!NBiG;sv21gx~T>D{SS3#Z27GbhQ%LB>Tt81_%~Ti<1r32>F); zA7gp<602;~87?b&D^|EIc}LbF*|)4qYV5&`^s^x?*NET0SFmclc$616W->a{>aY;( z4zqJ4oLmEQR24_>j%`D}c4}BW#pQROF&6o=?_{7J7gu?d5y%uHMM;KspP5lx{wvvMLlORCGU#8~!>Zt&ul{1SsRA z>jhMV&r;l6xn~Ew3f1Vxd;O_KYF8-Yx1=I4%o)$RUz%GTaFeL~%!zHe@*_)%evrj8 zSr~?8CX1F`G9fO&0R6iMcTGk^N_WXKQ5D}c6*ci))7VAyhY{8Y*T1#hJ2Ry|fq&Jo zCnJx@%4SLcXyBQ^$g{3SJS}|khLI&=I&q6?5~n=({H1)qKsBCr4{)CD3%^NiMyPU? zhzKfb5)nZo^)Cr4prQ_w%ey#P0si1+sfM@Hr);4DfIX*jqZ&wUYc`r+B%p(esswb< z%(Y8`2Y3^!g+Or2nh8Mwhzuhe&Iz}>vAg1~Y;DRpeZf?#76h6@FoIoYHS6@b*>xgn zo9h)xpSIMzg|Og+58eQ6=-5jJ{DNJj;0^GFCQG(6Pk$22xuKOUt-GjLunjJt{T8Hy z2?XJQVP(KQ$nwK&dKr-)hW$-26b(}#(wq#qhx-MR2@?UNIum%JnpJuM^fVCFF5!x! zB4=xPOUog#${BVh!7;E_C<&&vWHuI?uO=p(19DcfG7$uM)Y9``^n!(G;Q+^F0AX~B zNDCw*npH-DapE5cqsthxxHec?)zWgvVKu-t?)Fy`T?2`L7G4L=Rz{UT%QF!`aKSM| z$=1r2mO~bxg|P>B{bjY$TQV{1TBv=_61i{%)BPI6&1khGebLJ{h6!|O;JGG*SvIC03Wwq?-*KyiWxYU&jWC`9P%ni%%)z9-`Y|w zh!h7z1ru5Y`?!I~f>a)>%3#8-iV0>@1Zmy^o2u4jqkIXvh&EY7fr-ILdcDtsYL-V!;UP@j`3NV;Xlxs^-ZYUv z^()#(WDbMdFzRw)1f*?}8WksIln;3^qC^o%bxd*+GQO=A@z2`o$tWy>50RWb^FD@3 zT6>=IA5>m?Nn_HrW=8|z{k@g_U+riGZ)O;!+H9YEw*B>ZoV66m$ToAYNX9y@ydpX2eniI{8L1c@i&F{Kw6PXk>vm7l%N`b7#sJ&dabqwf z_)?Uf)*gJ{0!gf)QWElBI(p4UBMt$FWy$vpDEW;}NH1SizV~Pmb-t=a;(%mWruR5) z>~t=haF7D5Y9K`hEgCdW^*%@t8nE2X^0}j%FaTnTfE$`kqMlVE9l0C=IBfw~0w^h2pIdaq(V)lR!5LZuX|$q5qz}MCxb*dRoJa zRV(kN;PiqA5+W&A!|T2RF$LUCsX`NAQPm=#lM9i$>edo|L)6Pm6BJV2&PfDvl;8Jy zD!@t=a-<_KvXKg?i|BNF?j=HC^wIlbV=I+qmxhk<0VfXoufdxs&~MV z&?pBgtoo*?r?BM*^hUJ%;O1c}D5K-a38r5O^wUYX{zO8LN+kCfOl%#1X9u)PdiDbO zf(gX+kyD^ug(Hcs>K>Yz?I&4gcI1Mb$soTs;@m3RZc89fMj>5yML?E6^ekvV>3Hgf z0M#A$YnP%&2*On5NTpWTa9L-q`v_9Ve36|U_)BchuU(?fU{|k7z4=|pzA7^CtJ7Z< zzpp;?t*Ejdslo;txS+Fg>+(!ienhaLwbpm2q&!}ENlAyDh#jsZhaSJcJ}eo8gg^2KsII)+$G+3FCNgaEN0I_9J%)scR_AN%gUB_;wH z?YIo8x3>gnbH7-swt+p!(2}J|%p+_Pk>Mw?2J8|pf)x3E4n52`z6g~(G0fuh%D-!8Bnrex5%b)ZKJ3#rB0yokfU8cp zORc$ni;RJSV$iaXyE6cih~XZTO|Ve^kRys1E7T_)&@4&-vW?`()J10^FG_3Nh16Ci z5BKZ{gGntCcBD!^@fnhaNNvGzUa=ENBBvoN4y-)pVU-~3()bo^?;QpUwws7ZD*;LE zs&pr<5>?Kg1nv>ylt7s*r`oPL-ky|a7il@Yn#mLR$peqLJo|=Me}KOv7ic(g5xR;5%d*o8Mnl&7{dl?~&nV)JWgEe`-l%EiXgSIfU(iz-d0*NH zITkZAbwRABPkZ(10&=@5p?lKEegX`^LZ>yD{Sfr3m){^jAWWssY2vg1dOxI`Ic-rM z8{g6IV&-H(nYH_fO5`mDJrdhv;@C2r78GJ0$dV;b@32x=ViFmXm2Qi$u#07tU(pfT zsn?u)(u;uH#5&=Oe#~7;ZQWSZOQ6q3apczS+>NzogYQY-ZMCFlL_oaaQ~~Qh7YO=u zB#=n{gT$VHB=|sv5w$Ac6@&z~ki`z@O#2cpTsFl}NRMOCNaVDFGUte&T}I}` zC*`{;k(SlD{?Z?-33)A?H!}0C zNV*(3prO1wp7>+vX}V8gLxym?E74<8|5z**3+7{SKj~c$!OcLg{o$=h&9dX&M_4jl z<+TdyS4m8%^sovH((cgG62~L_1VXj)%G}ti^lElZ?-1O^AwexOJr2`YIS{(+XiKE=BBIfLaa^ORBh_7r8IP{%MI>&R z`ZyoiS)@A|*)Sj8N7BMf1BQlxg(1jk&9Ocd10k)Iz%G5j1(`KO9 zFzff$(*teCaRnm24$^h5=g$AI(LPUfbai%Y^S&Mjs&0gYc5(Nz@4i=KFwvmWyO70Z zq(Ebqx_~`GB$Wlkh(z#54H5FU>4VJk5M;#kFM`-;I5JvSl386}4?H_9a#M(Kq&w0G ziDrlXjy3^nGqD!oFQGZ+3<>Pch+cBbT{_%9gIQv@}+Xn_rk40gx063JO zFP11XJgZRQr>mZJ@uc8r(ZwP~MD%Z+?{)L6?OZa{U1N^az9ewbUCJ++LS@jHOXM!J zg2s4^x4<^g01AXu^K}f5?`!6VOW4XC1nI>Q-@G6RT$Qf|g2^4p-r50t16>p)n&J(FV&_h5BsRv(m8hGoOMIe>Q{o=kuEP$F5@SsR8nQUi z3-v5r0vOLLV}2zFdgwB9UiCCF<#MSV4TW?7^4Dd-U}vRkI&seWN=H!9PXa0gjlL1E z3_y2~^IGa)AV0Dqv%%5w7UFDCr8cGC&n}`7G(+n z%`*s+oyLAo4T-2dF%uayxTC1#kz)Gcql@kxQ9fHs)P>mvWXn#LktudWc)il%01zDC zT~VHm@!jeSEU}i@TzNk{-R*rXCQ(-dRC43b4R8#?s?4hV*fl6jET^H{rSVsNsqan zZ1(xX&&eSTWs$A4-xN|Ik)Hk6pa1-GPlhDQSWfAepBIt=iZai}@HYh^SR|R0t!sS# zq#{ttoBnmb4T1)6&8*mg}$-ypsy+d0P;goK`wd= z{THRc4rqd;D>|P)DzR;_+hzkj*Zqr9WbGDeI=X-Ui&7&{F=hPz^WPN$$#F*+LpA#L zb3G~UqR?2f&zGM!QhEDj^XJRY$^Gpv3M~7@{&{B0*e|>2nLiGs$5EE)if8`3lB^Gu z1@?))DKyewD3jlR{-i+S8}G8#sH5FhsN~$ygG*U3*cSy!eWbV#HB#)3Zz_pw`6%le zpTDRi(t{{V?3D0Lfq-Z9-+un%k3BgeEy`8h`Aw2jBravsHUkxUcL2S zfBy5&8C(&{*jfI|&q0)@`c8le8Rpv;g&ytYhTj#7;zRQm5fe^7{p*=$Sy{pSw~o@Gq-Uw{7l&&eP~nP+EF`{zOgpigaLHAw9G z{!K+V42WdveEzJInIsRL&!3gpWe9GmK;t{VD|ub+>o2LTKQ#Wee=hKoZL|s3N^af z3c@-{+-<3AeEy^&v<-TAA}0Q#-huB*jeuUYPTfOoxL;H}F*>5GIdUxhrchZP7NA?0 zmGYZ{bB=9W;P0ggi(ge7xblc4YU+IcrX<AAU{{XhV=+fByT=GXp^BzyAE^pA+AWtH11yVE&j4c}&|%k;nOu zt(= zLgdMDI=?GrGG($be>EEB@GIpu?^7BTlZ$eVVY%JdtdXkYN*q)7<>%Ob>3`b6Q z!gHCvDlzD3;a0yqja&Ps;xETMd2Yfx{6(dBa?upx&C5~OpRM8v zVhY#_HsE&6>~8#3g<@y-%tJe8)>f+I<~?l(9p;`Qu8W`%vat%;Pr&j%|;^$^rtvtGGzQ zf2DAy_5Mu>q_8CFArGC;AC&?-bqQ;DxTuZ#t5VF2y{in3&!1F0^RS^XvgPl)N+xzN zlsQkGa^F-U33fwS4wQ4tR&b6oD8RwPBILfS6yml+S=addO{KDj)S>bDlM2I(7yda{ zX}i9tu)VDr%rWNANtnei-30khJ-L#jtZ|Ai{^LsgPbl;3{{Bs&5?2w*YM_K7wt{eO zlH8@zH9mh*vABx5#^-M;neBy>5b5(Ll@1ZZh;X{j=dVia+>SyMUGSTd1r5+OK7UbR zEM_Qc%tG-^!INbkWr3L%zA03O6Bx$tKYviTZ%k~Pb){>3{-hF_l`dXGX`BcxJOj zp=T%o-&GvL1(!nSIV0j%rR*3`dl(v@zo>YUz=X2QZj;{>DzRvy%(Hx_ZwmEdIDeu4 z{__Wgj_T+L$U?oCnfI$oCXs$9o6wPeP^rWyin7c?1HUOa$EeXzSUCvXHx+?Pa0DyC zMe4x+qLRtk9c7vE>3&miEbB%JGdt{mS7Dr;D04Jb=ex?q4ACfzY(@R9l1b>1z{p(G zdi_l$6C()9GK*IFrZA9t7*0>5w3=U47}7h=K9Qb8zo}%$7^TPWKYvgd&_*_}(ce@W z<+*m0)cCuK^O-YcW=B~&zNvH|G7UrKoX-Z+wxz-dC{flqS^l7KFC5IUX^~%kSK$n9 zDC|0)KPp8AAArKH^ZA=nU=->u4~@^CR2aL36b5!0{H~ITKtPi&nwtDoB`|X^3Nx$g zyNV}wW0ZA`&tFs+kUPpeyGnmkaFmT5g`R~cepg8(r~qZoQUBXF6;C3#P?lH>!Z!s* zLVz;Lb^A?$(b=Pn;v;=i@Wfh&GIvp%y{(YR;6RyY#=UO}nWcsy-HVN;Zwk({v5&$` zGs?cIM8*mHXng*nQi+wj3Q-$7&3sXCj1pc7DKhZCsF1z83cetX5csO%82}3kE8FhB zs}M6%&g1u=KPUv2JcL4KclxSe0g82v&tFtBu}7gSu{_*w3YFZeQI;to&=&>D{40f( zB3gb`N#vuV%w!(6RdQkM!jW?~eNzzrC<0H@CIsJ~R9J|ipu5qOs&6Wu7+z79X=LIz z1rmpVGS4iv-xMkd4y!_l#?HoH6om7f5~0^fDX_n(+^0$gPSdwIY8?2k#0bKruSqHu5ev$u~ZKQzFNkn8)uw|6L(6;1WQQFcNh8=ltY${Zbg{?+T7Q z!2KErJzJp=WC)Z+W|aA+&`6Xm$_j&#_@+RzRPUn3f^zMjcbrXzb;(j%zbX`hvrq(^ zfkw}NQ^_Rr9%Y5WGJI1AWXlM`MaTBOFA9zcq%g2u=DP}AA_QNRo?O1EL}E>jf~8Kg ztZaoyGKx?Z|37VSk|a3~1n1u6UsqaV2Dp^Tw9`)azsq9;KxTE~b9R+UZ&PN4$RI%y zLm&osaz8&QL`q3H+X|H*Jtp;_cv1`ko}7&jKZmM!Ya_SI!_NmKr&$}~ zmpmyHT7S>BL78k%3It(jZ3UO?2ZaiG4AzE-hffNpu}7})v$0a@!?Q{Ur;xQxjo0r~ z8f6xqjh*~R&ng6mTl`6wp5;-6qHxw&=oz0?Ccngvu|YrgZ*pChd4u!PL1g zJcK?fz}dUbU%!6*^9+N;+ORrZ|D28w)|P2RJu1N3SHJMA@$_@Zx;)!(snkCokbY)u znf8(=g#pP!);1_x?MWd9%2Kz+LD@#nDh+ZeniHd8V*8^?qz)*x6c-3xIw9~qDI`c7OC@O5U8RsbfBpLL&nNxk zzA&~g3T`|qM5I8>&f1BY=>JfPi5v$hES=ZyloadLB1Zg;N`qC<+A0-(J}E2~&CRe$ zQ{(k3mBqEXoh$p&dHqhQf~{BcMd|wbjS8{XS{rgCJ}ETFy|p%^dVErdRF>$Cjgoc$ zp#o5%ttCZq_oxzRZMDWm=%ddn9Y$UEA%x5Evr49oKgX%@`jyJ0B-&jm$3?aLTO~qV znPj6_JNB$ZjGomwkr1TiQKgWZ$r_RL{aIx|WMnuWCVHkGRpOu>+#ug5nDVSLX`dp| zEk&d@epVugns9MT{aj%X5wb<%2*yPJ9I~0tra^H&{d1_`>+`p-pZ@sVj;K~6^)D*+ zdsIk}7nhtMmAN_}R0bTwtSwP0-IKy7^y13={p(i>V7%E(DEPLuLIc!rYa2A#o)jAR z_N=XCq~+5Jgp=gRO5_ZDQW!8YtPNq6o)iv3Nj6Mf8c0tHF;I4%H6949{HW3qw&2ou z{YoWPBwaqH#_LxqlT~aFwOl%{-zs%V`0M$iFZ-QRiQqYoWof*Aqe6wR#iI=5Y<^IP zna<tgX{#@uUz5F4-Fk)!99(XrAAQD9is+ige1h#;NoA zozj5uGA3~<`X8TEawYK9vvJT6dsc~=N-eVUP*lWgeN<`$E^l6ejP)5$Dh;yttgRs; z{ewaQ7oN2>O7?qFAXr&zE9CQgQW)^a)`mE=PYUP3jC>Jiu?ljaPqx0fH zB}3VvwN-MqKPjC5Q+}f%&r+r0vq}tw9=)Wc^ZK1qgQcU*v?P3A4=OFt87j=*zkZ}2^6)vt;P zAa_cyP&s=}tKgKV zAZfYL^QQ&{r>d}1PKx9F&Y?Aw>d!dRED>BxYYj z56oYBP^oZ_dj0Ew+1m(iE7l`gAx@7wkG#Vd>6O= zNuO`JT}qqi+pRX)(WPu+Zr~*ymq>^X-N|`cLbaG3S(Ei9ma)31IjM+;Un&u%h&M*0H~*JXpbg6! zBZ86qODPb%fi+H@*DsW!SBz4cvTf%9&!G=WU*OZRWCLUmqaUZ%zX&P@>a0s!sh`i*FDnu$|ZH>+?O5wbNSwM*h;S4G) zBXQ8blxXDUbm_c)twa^gmbaX7xc^g$4$7%6o!76G$a?geb>s>ErxF#qn-e{wq5co0 z0wF|ioI0;xD^U_m>PzSKW2J2PA7uGjVYh~^IIgX2YP^1<(jcgA zZH+99X9dX5h++Qz^&5pqWQ=kC{`Cum0m-7))*>=EYJ~wCsYlw7%>r`iqaT+1hgm~c(XdFi}< zr&PcTTRaUP?fEB_0ZBpDR>*Ptq;OF3=j9hCxFyr!3rGOiDdKoc^_faKx zI!&I9Mf#1U3d|>)fw|-1Qz{VguC>whd-!<=W7*n}rT0l82Eq!m#!lAtvr5dwy_P+l z72$=Rl^R$U);2X>zfo!6X0^6P(Rrm1Ed{oNooj6olV%@PI?MrU>tq@~Da1sjwbs~a z(mbo2f5>ha$I^NIR*CYVta0kRey()d^qFE%E}^}ies0z|nDhCoqpP2OY+P^q7d@Lg zp1kSD>AWnl5m%SMN`OD_;|r?GtWXR&`sl}}feWwNQqK^Kk$#*Fj2Gh6Usw!+KR#_w z8dIebx#D*n`&;o-@?DD9Vj+%1zSS9(-W zw53`8s1h?7o7OmWUO!f{wp9 zqEpS1&pY%frtp|h>eVT_s4Vhq?1a1^RhpH@!xms|jdCHC!VK6al31gQMUTiX# zCGOZrBH+Er@N(erQ%bf_CNd_hk=A2lQ>Jal+K_))Da2^YMxni?c?*f`>+cyjZZR!)!si7T&^2?Imq5V6EeqkdCw|<-}}$ER%fCq`$aysmAmim z#oR9*qrZ0$;9Xae*#7egl?ClHB(e)WCh7I+tsr85W8TH>VJ8DIJyYOM9{gapU+7d2 zf&+TvnG*X?S8>_iot5eig39l#*{9uKf~V2I@c6K~?uYe2HoP1&^Y?oedhw?P!LPUl z9`jpW^YyizNNWFm^~t%t%!0j{G`QQ3XS{sx%FOG4+1;s!gI~)G^TLCMP9MnwH}FJ^P zh$cwJ7Zk-Jw0t`I4R~;WQhvYJ`AA>Oy%sb9N5NHs?upOS<=Q-OGM$gfUp8l6%l&y^ zf@JY!bL?Uh;R`LNI6OfKG)rO_yfsb=3VIVq7H=ZZr}_kjx$j%l$jLm^+^x7TM2A}a zyt)Ub;^0M*J5#%Oo$dzD&>b3TGgAO2Rl>Ds|2Zvm#n};%tZ$V9+O;cptFni__1doTe8rczv3Xs$>VT0eOxM zWte#d+^&&$9yGpw5%%dU*Q2pr@K8D`&fryC59@Ro>=DQ~LKd+f%^k4`lFhKN5NTYB zrw#nHpMQsH^R>rjz4a8b+RAAGX(?P6}VtGVN;GIH+mjbL5!Y;N4Fy81KaIMER*dJM>^go^2EWUX^2J#jr&) zq^YM!nfA)e%SK_Va0rjzh{{EcJLPAQ&U<53VPLe#gbOcL?z-6ZO2lcK@`0Ot$5V2x z;=_K{w%sd>7*dn@0|$tT-gQ1riS3Qup;dVIN>zJ&QO686nK&#z>LEPH%A1!He-@6w zj=(lh6&|{PNegK12~#+U__z$wagbo*@lzOX2xmzbQz|w#8`-c`wq)k-*Tp9DNltw` zG?m9iTt+Miowv?bFtEfY`6!Z!ny|0BI46G+W!=k7QqL-;u{uSHSo>iIaX99&v%hel zB8szOHr={y=9*TwJhl{7d4v%zF+STYH4-{h@>;qdC`xI7G6;yop21s0}?v zO&DiQ9dw0tKe9+!t2pY#!gp1Kkcr0WT`Dv;dHdjK&kmv@%=b|_R@U&GkwtdJ5D8U9 zh1>!sAsoW6&t1JVoG6XGO$X;9W;DASy6%&RaOXy+pfuzneF%6tdB27shGf(S+O~i_OXdO5fOTjHVsa!yn-NzPCE_^x^Lwymg>@kb0 zs06;CI*R!5XrGZo8LXI{*bh!x`~*n4JJWiBCnd(kGP`j^ zHbNJNs<^DZJ%h5~@NHcsx5;0QZy?E3ZJE%?HchJPRHX#*z@VxK_?x>Q zcBi#X?$aZSa1F1+pCs$IeJ>N@(Sl1^h3WI(zQF~Uc>`DuV8)4m2l&2mqtA4z24vLn zV`;w`uRrswmP!zUc%hBH@}9MIDP;oeCydfla`$?>QxWgLvcZ?6K_x!+`w2lc-UzCx ze8Qx5(FZsA@k7+X?c*D`?B}D7L*1s7Lq6;KQ+#ID4LKB=))8Oa>sIiIdcQGP)A5N; zd8oG?a^SJhdr>;J=5XiCQ@NDNMu&Rm7as5yRK{W{w+y~4CqUY}6IqUPbWLHSkL#js zF8Ms0TKNyX_u0kzDVw8$pRIlq6`F_ZelXj(lk@EplCn*lmYevL$XnvM6|?hqS`y0Pk<}BF5c(cji!jm$vn-50+@3D-EIj52}m0c7;P+(FeM?ni$q`wN?}>-3My{an!kRhr0l#0 zd^u8?qvUZpfBjTtEkJ=mLq4-fpH*yTmi7z#TPe70*MWUt8j1)=s#LyN@{w$()WW0r z9~or;V;-38uF8yBZofh|D6Q+vUKJruV1oxjlJ_w!)?&ASL&9lqX9(XAz&0MRwb*X& z?FCL1Bye*yqy)QH3=sGEb~qrdd6Z3w7Xnmqz;PE)pQmKNIGuMPtNbdjC_C8=nIi7= zsDYT&jVn1M^fw&$Z4xX}E-PRV^L^5_(ZS#dO0xjnGIz+1FKizOjh zTtpu@72h3esO872)r*819$(S@WOPNRV47BMfxhQn#cX#;{uA-UPw=Te-RGS)hlG2G zFIgfd@iNSjugYbG{IJx0XZgY>Zqqyh$)uH={_7UVW)LVTN-gGbx&`I-hrH`p+B zny|~D9Xw12Oy~aH5FWHS^Zll!!m>5^=QT5#0vQ>4b3f!O{btSQ-QC-(e2DSxCwzI0(QL1n{CM_yy`A2IaQt0&rx!3( z&urOphuI$JEw?DqVlYKH(Q?37^l=yn(b0FgsZ?M}yQI+85n^O#PijKV_jkON?O`+5 z8IKS>$b-ic?GxP%XZFl3o3$R|@Uh(6u(b&4!>{q%n-~Z<$<(1f z+#*;gg~}f3? zXv#Y-3z@cYU>tuYPK-Sc=ICMP*y_?dT7!&*@iJhBBzfDj)6WoE{q%fTI;*N^GP0O*L zI*@0A7jt+!mRSBZUhFuIDF8p&sOS^+a|`Ksv7!FGF zvF$tH4v{V$O1;c{J=?+ga(xVSxiNyiQx$hIgvQ0}v`^BYQ=Z-_nHUT?X7$rH?hW2& zNj}YSTO!kF>;gD%lm?%E3n4EyiHgBe3q}i;)Wr+{y2? zSy%Nm%#%o{IoDhvvwDq*wjjoPj}3OjzN(#I#yKeG?%zGH#IvfMn@Ceh&}B?KB|adu zBSII7Xb;%#4>>DDKbLSPmm~{3v@$W8Un&qdD3Ure)rk*gc+{41hHM&5Ng^+A1bby3 zZ>?BpfK}jv4Eb;ltMGY~o|*MJPU>=?yop)!WH(Cg^tm0uC+ALwg^I$7!(zD4{P=wo z&Me?W!>M~&M#4#FRAh@}wX!j^JA+eRB61Q?U_YeupaH>3c?4()` z>h-)0ocsMQQO!hN6{j;3X&8gMB@S}kR-sd7hI!_^)pW~joreaxlfPL7g*u;B2zBsF6 z`IBLNGjCsQ%FR;24d`q2WXO1_v50Ptbz0(3Vddb5FTWy^utE%Ej?Qv^Nc*;+2yQ4= z|0P6Dj9S5Mvi!_J#vW$kZNqPYdAHudjCQ`!NauZ^7*63Tl!g_fO<9u6$xt0|K5LE` zvb7-GA(v;$$#GlraIo0)>PuVXG~pI3@}B{vh-o7r=4GAsGq7cVB&B|7%&^{x`} zk0iPmuU7!Z2YvvXz@(7Y3&?Pan}R=740AnZQ5nU%XXPq*!KgvymEukm-(t8rY2E@= zBIC~E#UXZ)926oM3eF808hbH}KM;s#og)IG8pd*VK+%nnb5Z;JeZ_dwAu3*GibbbB zeK25LQ?pOOX1Mf2IoMMZ5;HM`!#+hNvHA^hBQrS*C8C=Tk#(%sg`836F=n~f%XSoB zPWj!xe(CJrWi%?pGJ~#QE_fCaAIpUbK|L*6NSczIqkHrsqM8$f0QPrG%^UB`Jc>&x zdiZeMu3xY}bECtQ`NDub(l){j;XHee93YHSE-&qtvU;%p^!A1Bqq0Z7mJQbd1dK`e zj;)rKT(n;5L`0715H~IX6&$w^H7q_ffN8gn&h1v0HIQF>xn8#$tacnBs9{8**q-=G z^IK;Q7ECAZzB-|x8bfc`SLWR*I}zl9ztT$8FS1O_lKT?n2-zNx zFx|&CV4+f$%1#MP?c=@$e3=dvfW^Jo`y26Ox`af+?p<&Zd4y6ZJeJrYZJurTAZ0Ys zzJ3q2ap{7R+!DtYjPCwrTSYs?z0H-XN9JLG09dMrzR2n8g&6^mS-b*~EXbK(?d(Kb zsBC)I$X4}2EpoW%@p>9jL{@O%}yy^6|lkd1T*4^xzi%;bLTi`!E{tp zQK@5{+{j{$eThVJ-zV1;>U!L-IZd|wFl(A`EP=!Op4LX&~n z1~qi<`Hhr*R~%c4b7pG|O9so8`{(HcpG#(w9_EQ_p5Qg3#Lpj}Sm^J%{*n(g{pyjB zn-SZ+zcZ+S35awguM(jnC|`10ery=|i^UbX1>hX!NP_0(_(P)zYrE18UmZ;ZPSA50 z;|Y5Bl&FKgNLvz&0FlJQIp&-N@Fw$!yWh6%`Jyh!+_eH891Hp30&JcFme@(PmcV8a z3Vc$agE~4iM_@+zQWBAO=>fv3(jiUi4T0TZaXLZQ>=aS3QFqE7ekM+>nfATVNwEu05( z!wP{%jN*Z=5mqqZ&go}{(GKl?IH?K4=$8tdyCO?$F{itfro7+2`r@?=Etsy=#P59` zV0Y8oWlyE*B(bBi@bY^UN?fk1cWLG%zy2OkV2Ki<1G9R90tRL^;9U$6cfxY+*?cB zPSd;(_HK+DU4Gjg+FX9pmbe+#*nR$Yb1JNri=SzspBX%4J)L|aHg=@4&MvE>-t(A+RjQlU*tsDYJ zT+N&&qVMw{O7KdTH>y3tKhZ%@BhvLG@SkQ?n8>zss|)K4CIDX&f&LU0Dm~>UB~0=$ zD_{k-cGpUsepjrks25Au9!1RyYHmAC_oyp}X9DEDW|>8uDGAAaLZe{_u`M9xq;gR| zmmfnLp&ZpWaP2FJ$~jnjGkk-0eITQFpcmAZ#Ys>Fr$UZ9Sq_Gfc-d1C$XF{Q20afH zl1r6O1~zIqrg09LeiRYJn*(OUS!|90M_Y0O)T5$aq#uXTCzlUZMQ7{=Yth_FwzEL4 zG>Naznc#8f%Dp>Rt;&UQJRED;@6=>@X4x~-y_AgV-j4-;zAwM;(oI;j6$sb`I9GlQ z`7_b51K2Ff3)s;8rK%(EN?k}eN@`uZi_gINUl@^ud7T<&hTL_nKMnwQ_Of}N4;W4M z0SLsYr6gj)9%i7`%+mfF#(Zv{;9m7_Rb_KSFMuEGWu{w&u-S~B`TZ&ilxueoha&e% z-$pBnQo17@KZiN9=SA?v2LRJ=SamYdolqVT0nG4Gs7}ozGcI@`u3${y@wpP90fl8% z!+p-_bCa4k`TTH4VnNGzq4U0d3g`f&YUrbdC^{qq4mF$Gm1Oi%h^tgha4tZt9f*ZH z5T)>ftlOS`To0qr3}CJ8cykThI1UBiX~=>c?QlFKp0}+X3RI=FuJKlS(ik7#F;(!e zqmXo3yn$0B77KW3j-(>F!`!Ll;Z6OEO5^M{9*m4wJ{8y~O60=!k(~xc7c%+TMz|Pa zKI^mk6i}Z~VDaJ1_?AZ$*D|LP#ymWA5d#kKBEb8!c*90&^x?Sz7bC`?o{){n*l=hN z#Pzo?(c#0|4%@pbt3Zi0q7TCFff-xpn$Y`T9PE)rj#=Z7NlJ)YYxg(~=}Rf>ep~6$ z1l-KL8Ktq#Gz?+Ano$nmCD|A&wAX{) z5Nqt5JKEK8#~07SMU@^W5Fv4Qp(8ZBzX_q%k~myhBfr=g_ZSi&EU_!eUR~uRQ?thr zfx@%w2M-GCxG3BH2C7YlDehU$1c2Q$H@w;AP}gF0R*8zdY&N%!u4HST-wC|d?Z~3S zu~Ri-^{QsVnK`e8`Cm5nF$>ODI+WOg-VzwiUhNllW92=+5D?M{h^ao1LBc&d5Je8j zPdTpdLpUAeP?D-lHH>*kk=dzj$P^V;>+v=i2|-JUeD@L_65l_mj?^S>76ao?jl}zK zPN^m;E?rbah2EGlbY(Nk#c$gaZH4j}|jBV=0^RMN<`F|%g6YVDis~jiiYLk?DIP+ zE`6SqD!!x8aniwqV`5__h!d#K(^hEnDk7ctLCI_d<;r(BgXLpH;LIk`M_$UM9z~9 zoo`#meVr7D^Syr_Z|-h>ET`Z3=i&FqfkaiG3)c0pf3vS$tX5kV)zz7Uh|x2WtIs6_ zINBppu{VC}>pW9-;w^kDpXK_`G+px~3Ox_}sS|(F_BYJt{p%qp#x_G>wbzQ>*-^aj zJ7jf-xk`{=sPiG`_W7YpeTW`N4rIa&^dV+Y3Agew6oJEL)`4=^;zdFzmwM#hmbQSKr@90Z30Pa(~sQz}+ z)IAGBJXeb8>3!tul66mF=<;rho@WZd^ukA*i|sum2hr@%+nR~FBuV!LKc|Pg-o5@wxeggCq~>UE*8Sr?m301o7GXg{1hg!sWn?FiP9R!xF!c+Lre2S=z`l|;*WA*j7^#xLdETf)I?$Lc0x++GP+L$TvV3Qi6g5-dkop~RMM zBbAt~$s0aekay~L_n=HVh-aGBA8@DqekR=c@ILl!gi^0UGLn+irn>OPFnb}*E=hdG zt9}>t&Ew<%MUjWgIVP>I_YN)Zn~Zwg$$7wCpNuh)XjUCto5$CogWs))u{WzK;owx? zr-VXm80);sw1bR9ccto?x@B`P}$hW5>j6TCX^CpDh*L}FtaE2r1e9@ z<7NyoY4D*`k#h?ndHkzR0kTiCXw}iejqH7PRj}_7s19g4L10u{@*UcdrjZ#-&A>^J z!QOB!M3k+l-1ZU?+ro@e)UeV7f~~g1GXZsN^K^=E=Yosf0GpKgLjv=2AzY^UsSwQ4 z2EJf4vahblj#|NRWzXELql)LqMUf`?3|BInVxns{?pRbWq)#}nGg8stP1rGRR&HwCWsP=FpsBUqHUm$*)5~tt~$5o@Dfk?&jZ?CGM#~?6&oK3A}A` zz2T^I8-Z9}N)%95ZsQ{v-kooQKp_+71QMdtI^V)lKlA)mT}M(Oz8BHRVOq<#XfalZ zp-;@FF&@clzs~CW#j3^#9_`Kt`h(cDlxS>64`%ax6SBW_kpi8svnWzHWcS{XOyG)1 zIKi%*n4Lpi=)T|% zFkV&OS{#DqFSVdNqb71l6Uvis2x4I4L$Kv}!Gp5h4g%*(kay; z)%<*oAEX`ff*#3MBh#`z)SeKtl)Z}-bjCjP{{JE=If6HrN}|3MR{T`OP45EP-Cop# zxbx2{k??A*u~1E}R#8YP?#{&Z`%&e9s(ouiqIjjC>$kooOTK=mB=abBQs#pSp48HH z=J=_~|HIM@o9uK5ur|c!1ci5IWTpJKIe8$9ZVQMli33zo+TCa(gR^s{W(Yb{5w0IT zmh!(60e_mP`T5fR%IKpkz|Zs4TOn~0W8y?pUp@Bzj6ms{wPs9t6iKNI-~}=mL*>q^ zZ_5yGmOqvbgr)M3<$;9AmRjW^06Vm5)uXAbX~nv}s!03zQI zeCUam2$7ZW1aqz*BM>b2_$pl`gnTY*w@t8$a0@s`*B-mQY@;$D?}c@22)MW)m<+uj zO9Y^ui`Z7hJ%02)RABX_BUCmxSj{qFIwZLSGEWatj69(*U9<fSVOG;`DHrv|>%pM^$|NiMsZ42E&xGt86Z7abJ~#ia==qF3 zpqL9V!)#gHc>_>Iif@$}Ppq6@WrL5)a%Oa}AzGcS3^Qa0L-ufI1!Sxkj&$q@7u@IR z3!EO@-mWtl@kq=v(0!$G^d0w(?QiII7E!{%b>5+zp5?KE5ph?C?|G-b|H$)wE>MPX zM~nE#Ho+Tug0D4Mja^jH=YL(X^ZK){O1Z>*!azvy;717&dVU@b8|tWNd5Roaq>-;);$JS?DBw+uB$R6p2MTa*s3Ja-tPgD3$9|f=jVnJmr>&kC%e(z5DxEy~W)sm$@_;e|RkpsQhm}2!##w z+V_yzK6WPxwfo-U5~!ITL03>*nL9&)t{1{e3P<#}~Vnt$&x6uA5J(L)rXY{SJ2BT{d4T z)xH45-1f0Nx-@m@` zjv3H`cr)YfOU_$o9A{C03HY+HU=uPBVz_88?=hc)c$;RQWpRp27fLOh$E-R-eD*_0 z{K%8n@jC<0bDl@#3`y#9s=z>U<1(xB{{5bJi2Qm#_jXM?{>&Th-@K&zcAsDFxE`TZ zsIVHcmrcDeJ8OxtXNP(5-K_FMP33xZagR%NL*VKPMYxrMv<;SuJTjv^4BURE!R)(C z?huoSD#OT@As4|Cylz!?&m?zZTvj&a7ETp5E-}ab%GC#ti5cKe^N7U7{#1aPPvp{U7imxM=g?+BBLS*k0vzwX!?YuG?&rE8hcy{AEI| zUbl)7<3#h|L`4Rfva#=AUXl4dbo|jrFvwqbV1N+>9zJEs`wZYjv3Jrvg;E;d$C49Q z(mez-sRwqF<4fgrDHxl9yaMsyto~UPLbtGYFQ0yhNAyuk1qW8vPXepe;&=b|u$?saeNa>y6X7V`VpkDR6_HSD_o2)mO znG*{U6flC4Qgk{)D#x%zWeEr>3|wSy{tv`GcvY` z5Y?R|T>krzrmcTZhqhj=RRO;8$ESfr{FZpCZ$S>KqRlJh3(;k-j{?i$Br0UC&xK)4W{O zq+@#|v!cZ37~$Z`QQN8bnc~u@8~TOQIIV91w#^!tTXbUR!I#37ct`+0RGl)5RHJ}b zNIa#lB1PtBSup{a03vRFC&R5&b*G0nS&U` z4}8e8J*NmO#g-?-!#pg!1oHzLtX@o_~}6T4e8O`L0MSEuXx zK9U1wi*R9Bg`#p5+2$vmR&U2tCgLG=mUonpgATXdQdaV4%Ir*;lB9e*h=NT!mwU9c zg6qc2a==rveorOzIJ)S-le`-ior;I)Hf?FVK4I!6^#>e`&BN$|&eg^y`pkpKtH&=2 zI<5PYV{ttuU>f1&dLArrk^>iX#C}>`*yeZ=m%F;wcfUL;*vN1JxdPYC8x;7PWW!J7FF(#T1R|u$H0-v!41HZh2YN%hyWF&m6`b|+z_ursJ35N_ z&KT*F;@=JnlAvmDLeiy()b`PH#3Qo(xE-?((9;lDr$#)0I4(yO<}hM>I`eWSv`#le zhbnTLciLU{4&ao>gEc&4+V`yV%nVRf?I-3$X7S^ znDh0n5}1#J%tteh5MHHTI(gsz9Qov6VXT;2R{)jBv076xo72y(&@xJ8=DoSL@kvHOJ6rS%8Rrl|+$%Smb#i1Ngf<-6BzPTMltbwoM})hkg~;)3zNFK|D}sq6fARt{yehS9-4ADMOaERo0{&g~?*QF9>$gezX zoC6n?;-zc7BP^m_vt#AC=Srgcyf|h_rIby_h%wi{V*2b@#drCcfJq54P|Poef?0it z36u^WGx;(jC>3-vdop_%!nO}qHQA8(ax4kry_X_bO6z2bB#6(-nUH2_UAf=%S_|e; z_;_KF<9Nma8G$7&!9MFWN0lj*B!Z>q;wrK@?P4r42cA$eTh+77w^ScHd*kP|h%`Zw zTVn}G3Tw6qVnMcZv?jaeey|=mSjyumAR$?X?6!c+8GN zyrmq4#1kgyTAmmI-SzAr>TbCF%)}dl8i(&=8%2_Tx7`%9)I@KOVBQQuar#fJ>vUbLmPHNLOhm?|Z zHXOW$o(+d#5VeF7ZH{%o}lv zaHg{4o$wmzOGh-kV-Y)G%uDcsMSdW=N3{}@h#x1a`e4uD7Q1GTN@U3=o$1&cgJ@KN*;1xN zFk*FtfRT|&Ka2{`h3Ds_+69D3QU+6u<#tp_Az$?!KoKd{w{Q@!uYl+_9LFK*gXgh7 ztG#`?f&eVIU81dSWh^Jr?tAtSP^A;G_o5c6th;sS;GdR|a6b)>b4T>>!reSXkYb4- zROh*#W&3{VBgCYDR`u2-_qn*=Ip(T-2!HM= zWSeX$Zlxq6-)dt&49mXE+-ttw3|P|RO_#lkCY$jq=@m0+QefQ#CI_E;PmteY+*Tsi;U7|C`n;0elMoMn) z2SF_1^#%yNM2W5kISwdMy`KZH?WQ2(U>0A=@rXoZ9kg;Q!Z)?6 z3Zyyv1PFKMTi7L|kV0f22PaUzWQ2nw^xnAYyQlL?T8NM=&?S2gN^CoAgfig?#|L|$ z`Yrm5sh?xN(OT`K9Gw8E?6~R2v$o|}xB?tP`7~F=g(mAq$3g_Fw%KoDBozblRxi`2veg7+ESXcfrY1cUm4L3DMJ6>y4=Ynt z_o3X^)j-SA`x8}1IG|n~vM4|bqpppa(CT$)ijm6Bh4#K3WASk*jsv4{Hz(F$C3g4; zY9qQ5-&`GguF&00NI7->NKAn&4Y9i{ak4Z4pzD&pFK4V_`-w|lP&$T!dR^;v5C$gd z*t&$FHFFndj(pn^BQnpOoeg?CW^oBY2F^kiG89|_A&1Hv_w=V#MVL^PE$0O;Xv*|U zYhRdqQ=;W?lYDzZlnoe`oD7alThpF;IdKXQiP3;Zz}!8LA(@LOq1k*6`H5%y1xZXJ z;|_NvsRMobAtc`-gRiKP?xP~bL7bX70rqcV*u=;IZj**0ylvETtTX4U`LH`pD658I zL?-7nM~Nl!uw-5h?{fqdWw4c_P*^-)!3^Ris;pBiG6B^{3&sx46Apft)x&Un!3HOV z7oxhByVpk4^f@n3xL6YY03OjQW5Yo`Wf{&*C1cfpcwes2nF>qhymu^eYgly9q1QOa z#xjqm2wwLTykH!##B&R-@W=itERFxaJ>l1Li4y%BsE^KRkSkLn3Fl%uE$5swXLYjc zdS*)%#oU#MfNkLzMnM6elv=NfaobW4s=|UZioT3kzxL_~hwH}YdJ)ksN~)wb>oZ$w zsMs>7SiLE`-0j}vrBBkYAEg_wcm&U^KPVr=Kr_EB|o;9$C^ zcqKPeX!rcTL)fJ(!M27PuM|pZ?O(l7Z0>CAaB}RPKizOA^LkAI6EYUp3XYPLktM>( z(?z7i9X&$kdCd`Ns*WFX{CuyxCIV9D_(~$$=K$_RPU`uNDN>T@@-2Ef!?%7v3Sg1U@pw^=OV~;9vqOG2(%o= zDjq}ur3ENMX0J1&kYsYO*P@BmD;C0Y5A4j`$enbP38KZp(U!?VkI|d?Au=xMEhiD! zna*yM#4h?!lDyH(py3WWM+S@D;h-H6NiqAJTgRZZg+6)e!IHGFSP<;tjlIA<@APNi zLjeKmO;-AULf#Wk2s+5{3et(*4kenDx62t0ED7gRas1yP|Bu4?wWoxWRnCR0iV*mn z#YhlctqYQBOnUE;6zqi1L>57ec&WOa*qHJNw{Xk5Gs2p;XR=DUQ&ybM_dYt_#F4kU z$Q*5*gB|<=2ftbKfpMl~iDmiQ$)F+NbvtTT&OWpWSSfMWGWj_V?3`a!<$<+R#0&8^ z`Wu}P%AQ-nrE|e+KZQNRB>FM&fpz?q6(mIPwX$W!+I$-CL{aVZ^=Ga zG;`q=g4s4FWakN9rwHHZbaw(C83&!`l0X4svzq8)Gf9~>n!1f=DU*&DQ1D?cRokP0 zHK0xR><-H}zBswZpr3L2H*nipW*4N_h9a&J=_02Al1~wq1Ne+Mc#)g~g#g*(IhE!* z4ZON>j`IIFu3JUISIw9LSftJsSle{0Yf&6U-9}agLiRux#;Sv!&Ir&>0 zg6N_m9eH1~b%kg}O@Xl28j{cZfCfbM0JkJ@Xlvz=0^QQ)`5Tet@J)w~7`>q6X! z7Q{ieAC$({Yd&XI0RroHh9=O>E_w~5+%8N7t|WecqIWj`VL^yc=Y1;$qlT6avEl^; z{aS)>*jR1yjw54CiHMJQh**LBd`jZ({YQc0d{826YC0i0Ynj8VB!QIgNqvdVMLy$_ zq7e3?biwoHS>3ES!6FvKJ2@w&j1KdOIKsmXkHGMWeBdhwE7>ID9?X-xcqm7eMKyO& zNUb1WVd{tKh*u0HwDf1PZju;(g41boAWK~gEEp~5w*>wH!Szc zH^}6G;w0=<=Bi-Zt?srBtjK1F!l zg0L0mLaGo-OO^FyFBdnUR5_3E|NMXuT+&%6E8?W8oNi^wyDz@DVFXz+k+^ ztOp?Ad5}IbjEIq!3u-&AvUCf7uy4jJ*^FJz6MZ`&lJ^2*78Qnv0R1$xXCM(`z7D8} zt%E3IlNoP_)c^9e&i4Caft1m@*o4_U6!~d zSLP*(0;da*v&{Y{D=WE7Jg$y{l-_lZggqAbWz#ms4pDWZ`8XF&NDay9 zN^LEWt)cv|25>|El9^3kRbc}9ZYL@%XXVcF_{yexo#_qRqlN_xmK0>zejYL3z9J{R zqW=3^cqatJJ;u_y;u%g;206`r2$8Kb*99phfbZ3=>!I&zDrMlSE|*r>_b|SmZ_3k+ zNZ`;bIbyff8Xawe7m*~eX+7NA(RG}Z#0#|$d(8H6&zKmr!N&$g1iq4BLcppdt%X6H zSTgG@LE^PH8Ts*UhD=GR`AV{cS6A=~dVmO^!oJWqik;Y;#KHj2))i%HJzoLz{aNi~ ze5vg==N);k>05gk$kb!2l1{VYR?iq3K8t+&RjVl9k-no1&RiO?}RxV%6_de^v$aUP_Ve73R zxl9pL17BKu-K_;P+abUJ`HIuC&rTsrKm#~$UlvsD)_J~UT$&IBjV@;%zuE;UMPV_EBegGpu zZG5$|V)rj7o%ak%G*E4EZVl1-`WL-|H1JHc>dk{V4dmQJvN6|vpQ1(#WKLd(D}ps5 z=$uiyb%dgKqZPs9kF5G-fTA^$E8PkMBXwXDeq+J6O=7zV?#gdGXzef^F#K56>3qzj zj{{?t$ASi;U?zJduaZ{6_roxj2^bJCDRakyi-bfwe9I<}j#qsY7F3E-b&+asIR}*{ z`2?-WjL|b_i!g7smB{RZIA1QbmvO*e(>bDM$6qPv2-G$BvyOB0zhD@gpx43$ z?*j&MN{9d`#E zad6kfBiw4+6PZ;W1jmtK5`1@#FcB~^Bs|I{ph|OBDBy%L0Uj1Djzy-2`zv8K3N!39 z)8VXPb^Z^+*gr=gZ>X)0C1R}4 zVwzL5f8D}N>F%|jY0gR3oFXplLawKf&2(1UE0HE^>!?1|{BZfu9yP_&RHLYi-Xz1nP+s6Suwc=4P;kz}zAw-FDP6tJ_pP+Mc3&@ucp9{-SX0 zl4Q0@a#tupxM+1X87~)(2$7Eh+FWn8*gboUnjQ8B^UzGvfP=-_2tL3L>6qBlO1bt` zC>d`6q-5;|5Gjz}T4LPi)H&+<#9G>dFQXWus%M`Y5Pj611R-yii7-|(B1&UxJ9JFg zum}Ove?m;8pi|Z13*Ee~R2oqw7>li3$PD);6V|ZT1O<@Q<7S_Yjq4t~swM42%cEvl z$i~Tq#?Ggz*$qLBk`-qiTSqvHE2D(c)yWlfRpJOq9h@qdXTIQnC`kp2(gxS{%qrZ_ zRN_0P@}HtO!+Bgv=L@+4`iUc{e3uwS{hI@5K@8N>KpJ-A6!m@x30CobqiT;T5sxzy zBEP?wzp@C>B|&j*J0}hl-%4%V5eCG;6A?$!uE z(i~aN+f3NWNF!-=4iv*ML-I(hkSZ&HcifYCp}x_wU*>cNo-tJLLe7RkIvkK@@(=20 z60h4rOe}~)thD%Ms7cJq;--O$15RMIZQH3%c{Eu4FXuH`(8w0l_n1g}cwpYL?GyCH=E zQFs+!?oQ;0#|%f^qQ!g`$I#kqh3IstX}sk}XWqDLQy?53DfMt&XidAey%wDg5BSb@*a|F0xW`PvtXY z{LDz%<(jqNq8(pJRO?$JsRC9tS!1M}bRXF%fpP&}5M7rg75~SH{)`n`X6*nu=`FFT zR9?3Q=7s}KFqGg*>=iQ4-^EK>>->;ZttQ@5@XFgm$|n5RABq3|N(wVRK~*GH4oosJ zrfD1BD9RBkh6&l+g-P)gYh*|AYmN8rnmLH7C+{+`Iu zZBZ3#-E;?Fg783btSI{6ZXN_gAUACASP}8D;K|;-EO`5gYeOuej$kapa}AjeXH9!6 zs6r{%nd`-~xc($22wXmMSM#%LKTv|-H+XIyCg|&OAV0 zX`C+CtOkzSqlik_VeDF*0H=)-8Z14VMtQ6kM%8XA;_Gu55hiSkE6;idb>tWd2kQS~ z{s4}tX+~tGteB;@do@U!q$)7FpZtkh#qX*spH^0zhMfHbV$@` z+p&jl7MiN%J0;Bg>E#{EZ-gbvq5>w^x1SFNB(hVB;NEci@;pjavvLlaRH1uT$R=F) z=D5DlXZtol`BJbK7K-S>_GipJ=!5OVw zgMlzL8bab)Az%+!Txtt{$Pp2DI&wOBJmR8pD1ry-MQld^w{SxX6{1E=L`-a_j4qhZ z9cK|?|Cgtmqde{vV{6@}k-1j>Lr}n4*dV`=`d|Z0GqM+H;?e%sqYyMDsOvbm`$?6? zT?s?5Mn!R0U~khrJ9E^|L(@1Bd_ZN4cU&KvKndhPm@cM6p?UIdm zpF?1ESdRSpwV9QDg=)+Gsm+za{I=!7fQMY65wRpG1a_o5{z~A&oIt+9iH}X0W9Oxi zS!oUgM1Qe-e5Ahe*m;2O&P^`po`MyC(68);kb<*o>R+rWuFx zd>Z*-n}JRgeTczuH7Jd+HpCQD3NueH9Ydgip(kG}-4yh2&>xsW!&KESRDie*9?7?B4tXU^$XbehcNYz z3g_6TOowrZ+7qpGZyU5ZP?ED!@O;nKX$CdPO>(R3dw>N!0zfrQ$|O923Ke(Av`hs` zZ3g~=5W*{9(`s_S@Ak<@UF zswJh0m7UF^v_0MBBFp)O%2=G61e3y9IzpwKn^}h-zO@yszQesfIz zOyOK{vODAGtT?4mxmu7j#Bm@P|5~Y7@>+s-Wo-y4uN0zffR#{{YMDan6szQOb5D?} zWNn$u9HlT3vJw>9uH=2T$8uC{@C|Pv2fpz8x&nASuPO6;S4fxfqt)ZFm zs6eo=dH(+OLxotvxKQM`f!(H<=ntflg&U}p)jcO1Z4fHOauN5@6}}4A6ny;n|NPJY z@xTAqe{0uITk}Q$v;^1Q{ylqTiOhHS-=;7=>woSGee6}&@BhyGzkdC(v|K;_ICfmW z{#-p)`{z=ynsdPB{^5PPJN|(PclG51DB-$z!N=St#&wnOw;%E9IX}=g{O+&X`14KQ z?%w`cICDR1i8wrB;p?X(@pT5iv)1^wfxqjAyXk(F0k878T3F<68FQ8fB?=f#Hdv=tR#L#xJ5j(7!JQSIrkm0iO6nq?5+$Bq!4e0vVM!B` z<`sld@-f0mP ze2(OMXuW(OIl9BdaFSZl$VSZ2Ypv4XQucJO+cSiIW%kg-%fF7CIS#c0-miLl*&xU8 z?Sdl=bfxI!ltMQ1Y6iPJ^TFWX?pK8Jsp(gYJXCUpG$A`Z5ek!+-#F|yASuU;NKZ!8 zL<^!diWtbOo%L*PD0f?F-VirI72gP*4`6$K2dUfQgJpbWjxS}%5zDLjMUg5}@UIk^ z0OE@EQ}Q3f~VG9Jww?>7^P zQmeNPR?JRef;%PN8fIl#Qu{_(byy4>Usm{j&>ohKtXK>ZcxoN0z>-uxYkiuB&qonJ zunCh^-PeW()d{3dbnsCKR-gL=kf*>Wn-bt#l^jnVMZ+u@C%H>hQsZax5)_SD!t6#j z>ypU3RDgNK-)a&pcjvNCQH%+#(IBTjUlmgvF+`E?AVOqJYP5irB*@+8`@w3*eoJr_ z<+KM!TbZIQ;oWnd59E`Wn3gcb`oxHbelJ|ch{@!;-S2z|c&WuhJ_LYeB>zzKt922G zTjyV1RfTM3M@;rYO86nfJMUXzU|Smr6^aNZq#y4tcqzvesU0JW=WX^Y*^j3H0WAg2 zzT+UUY_hQbz@aUP(g0Q*mSfSWvGu zM7XtOsd8bF^_yigm924Bkh#KJ5>+BoM1^E|v4D%4RgnQCK*78e$e^ZFH!u~hUIH`* zxqS96tfi%c1aEIP!3 zY%N4{F{5FJ!VsCV{c=vs9S^~lJyPWQX&3NBCcGB+PBemJa^kY(d~JKR`4l1TW8}%E zlrP71yzX2pS+Ov&mhXTiH(f$TNT&-e0TJ2S96?m88^gpxr=pFOcfq2Vni8cvWMS}3 zB0-VrquJj1XexX#@g7Lx)mtPeMP99lLL`$dmRmyn5mN-k?>(4pk+kG>wE2n%#Zc`V?syZ9_$)!ul|bh=&ygHKNN}}r@?$FI^MD$E zlDrBnm?m2+pcd=(&6vz(U5V4~q85@ZD+WcqYqii-Kt`ZE`YAg<$zs&FwN2tb2tWiE z^2;}hPn^omCU(F%;lh5PQjl&oB295Sf~)<`3^6WtT89$E3Z2OVc#t`~9t}F-m31-k z;YW6_$S-W7i9Ak4Lb!~Z;HX$5+q}4oB=&yrBe~aA^v$#)7YHpvv6qnXerw0Pg1)8+ zcpjsuv9G-On5YR!xH6YfwonSdpM%w~)`)A8xvma`)i8}vpy>-5g4aW z0z#B)cHZX)(3<+5VrdqD-SVuW0R<_S;)oIOj z42GM#gz*8)9mvv;9z*_Iht&LK_Fq<(y4>bqT*1=YT7G*0oeAbuZ7g27kN} z!Bqhb9>qwTA&G+^V-95>TJ+cXz0oS0K>QMl6 ztreN5>G&PN&J0rrGMa9I2F%kJRto^8n#m`=WZ=7@_;`5k$@Q7P4%7dTzOK3B( zD0#_|Rg$`z@yV4gMCsx^BN6+gEqXGs;r{@7zaJN&y&zDZD_}~N@o&@nw0sUBh-#`^ z&J7+&XX?rj)HO)6>hzkFI$hhG{b^^4tK#kFK6jubDB*Su10!O0kY&`Y?EalCPPkLe zV@^3=4hyTme$WDN0p}E-^Ci)@|HcbPDNTI*@nolh1uC|hWJnD5Jajg6ZP&sCTWc(l z;ZL%o-C&Lb3apVQlEnraxj!903UbH19UNo!i4j=a+#@V7Qbmk7*an|-CQ!>J-ibS5 zh)cr+VoEx@91i4kQ7dj8$jXZ!%6whqCKG+`c|6xGZDC~M2A$l5QkVm+SEHT)j4!$D~hF^~mTkw^Jx9M6moWOB8{ zW`6wG4)rwckUE1sI&W-`h%o=C;=X^bLx^ijrNC4QED+baK=6U7W^tu}B&o-YNj=TQ zt{Ndggk1MC*h7zLDN&_hJ$(`5Y)Yb_-CX{ zF70-;0XE)@OF`rU`7b6_UBhHtdJbpkA@seT#Z#QC8}sla!NU_3T%X0q$H4-6wKwGs z)gBKnN?wj-^7$q#6CbL#ioT~r{zO(%L)3&LOZ>td=KerTK=^zf^T7u{8#6@8=wZmR)c1x!c7fWeCK%#Sp%z!^aqYe`H13=TvU8?i|X@G(}R$xir=W@{)&$W{t}Xv+XgNaj^wDafv#52-P>uvWE8DWVk&q*m*e(HP##}G#^EFX4SCW2PJ zkb+-m6y^sU*Oy>U;rtHZdR*L)2o!e^GG|&}cUz=#6?lKktl3W=*ZhNgVt*Y84(O`l ztvP%ypy+!)9}`i_rowES9%G zvas|ik0LL)u)JU-nC(Hp_}QVn5(5{rvbhxbY_*D$p8xk7CUm7_xnhn; z7e&J9>xT+4m=PNz!53ISCm_VnKa?W5TcZ;SM|KfEDP`~wS=-cj{YoVOK)p92%lfm* zxuPSyU|c${-zrh~BzSRqMPIa1IyKkq zjJ+wi1bk5H=Lx2E@)I3(2Y+6!$kWyy+5MyxCOH-?gWpP(ex))IfGCDJbzZ+!inJNU zM91E4kLj*)je=O?lfQki115-z1JGyV&hfDQxfrDF*F*gS0H$rUl>ho8d< z$J*!={_yh#KHTQKjbzF{C^*sL{*}+h7U;O}s1h+I>I4OW=>wF~aePrY#Tf4?>`6a9 z7w#eehON=XwAw!@&1C7%gy;*c`1LE56p(45bIONQsdlyil8ow<%|z(>pa5rS3n>$) zhWPn;((LOL`01YSQ%F=htdcEAMleS%0mLBuxgA$iB?tLKf*~nb7IA>>)!f}=hVakp zNSwJ~PI<+cCK)A2!MS1*eVSxlq6cP$g|bRh+Oqm6oNIon0kIZqYZUH(QkX8MNENY> z3`nJN-U1jFtoD%N&iG>o_?viryX1`x_){hGY;eG^vp42RfzGn+N=5$p&k0MVaVSK^ zeU6M-Al5bso?kyzvA|!X1=7ll2*yk*m~XT~7P&*4PUeE&sAMATu{vHlg)4;_eu^Xf z2A=al$?9PmEs5^WE^tz?yjVhHyi;aBXXzIl&A!MC#GhJhF&FyGg)^Cy!W)Y)5(Gk^ z{Z6UaDUI?mzo8F;iF*3Q5Rr;?`=*|Jcly=#r zFp`AIbK#8U3q_S5d9b!TzpqG7@<}Dr(@Va$PX=G0j+?|( z#5UIp3-W=4Xfugq`+3g9DHjtGynUXo{-zWAlN4K7+ey_Lv(O>sUSX=WDwy9sNgw}a zTElLJNN-_!vWTFsGq>E|ap0@9BJtabuhN&z1>Zui_`#W6uT;MJC&2Z4U=Hd#bK)t^ z!5(mMFXrlP6r?O(K@DPT2WCdxxSp?96Mx6`=Z6S*H-qo`Y1hBsPWV8Yy@x&X?k%f+ zSLg?F10I3CRS=AiRZNFk#OMzE)($mbbK*OH634vX=Rxh*O?+XJ9Fbqar+eXkVcdN1 zj|;r>TyWMzUV(>rfuFRi*YxOuWHaGnmGL4q@+a6(&ED*r_#G;D2ET(K2MzU!krca< zY4~?U&kT(-u4*qL=czhCVMJi?o6|U|j6pzLZPQ<+NM7bUF9h$Lz!)^5jLBR>OaW_` zU>GS3b9!+BrtWy?t0{2Dr+DSxw|U<1Vte`q`zJ7OE~T&^m+KMJZbLw%h>IbT68NG9 z*bxkkRVg`}4#O*?XYAh+HJr3ibNq{rIcI4LUZte89H!)Fgr ziqt*pq4EcdQ4nk0Op&na+ECu#1Me&8O+i3(Xm0Rztj6=`{Kb0bSQY-iXtDnoRR~2Y{G@0*p%+Z~ac@ zW(A#0DLg$hCK^Z`>fW68*^6V6_aQx9quR|hvp2fpw41U_Y$j0?__3DN!cPg1$CbBi zkei0PIFSXWFayufP#5(A!fChc^mqOQChF2%Ciq;-HUOM;B2)Ly)-L)sq7Y@HKwPil z^XoecJ*yc~>{P3t4_hp2n_sShlrR-zu0{3TXp>!3cUbQJb=Ve~KOISinO=5sbBFST z_66=nDAJZCZGuD4K=!>PblrnELHrgC@I3k)Z)2Y?muN$-lv@3|VB96)lF+bck-gz1 z*;p7ImpghVV5$?$?(z(hSJnH?K5w50tmR}UOY3ux9zluD=grpzKcA{xmB{-;8Max8 zlDTfmI!vT^C|9y}^v4`-2lO^6y6%2RSNCDvrqG{o;&73gaJ za7o^QnW?>31*TpWD1A}XkN|P5$c^12bjikE8+X^GZ(s8p&GH~_YL*$?({;O@54K4? zTflDFHZ_A=OumwCqsYq*d#A{lAqt|%m@1~Ez?~3eYHmL!soRP@1nl0Gs!#ZHQ?Sh< z2N++Thp|`oU!np)#Yz^g$kBE)-_@efis9mH*cY~380f-q2S_m9Ag{R85M`WMn=7bQ zC{{~|@^74tZ3im%OGta2MTw1YgP63!kMc}saa5t=5FBw|9LEh9oM{z^V2YUgiC@@| zPwyL;q~*Nc3{ZKh4={oP?Y$v@JFs$gaX|x!Q@3hGh|=|e$QGI!u*h7f>)YaVC@>Ve zmZGtaPW&Qdp(#dQyP1m~BmHR~D-+pcA1k)f?y5biu4_fR%MYpMbq(@%vb^WZS$dvHu`F<#JAMMySJ%p0c)|QzkAw zEx1!scZ>THZL_UpaXDK%rX&Kg8S2>BV!^TQPY#R4hgBfUHq|27v>iH+;LR?=?497N zUzs_S8!YG&zvT_1g(FCz{N*A2qa(kc)_W(Bl_51fmYFzgR<1E;>OTt0`XQKQ`^ELb z%*YGaZD(n7ycnc)wo0GWdFio|)+iE?a#2({KDCacBg1TBg1-xf2T*txP&b?j!g4v& zsqP>cv>dSADMpVDy*efZIFj3~`fuX#6zEbDSCS|#9GN>Y(X@k=r<|G1t}X8>kk$>v zMSM=(hqN(k8?`I?Lws>1DM(9$;-2G;kRd(z1{8y8I=d|Jjn3(egK*3Z6(A^$l$s}= zz0S*Zj554l?E0ey>)j!${s=VZf zxo6M|83K7py*+qL_jj&X6}b44xSD%-ePj{7V+Mpg%i(Kir!@ny$VJgDRT_ztqzD9g zaJ!>Oa7O42WUx!zUZJan&SY=lVo2Ui-y=vC@EC=k>UIR}&wE=>vKIn%sR~X;Q$_9jz zO+YD1q8H8iH!Wtndxa|pAniQrB6jXw1e}A2tU68{U(GtC4WvsagXs}2(IAgID$TKs zqS%V+o*O_@3*Rf_4PW>_du;MzDb4#jz!$5X2`|5uzr#!qTpI5Y$=WekX@}^k)F~vn zvILzI3JSmG^Id39k+a%#Cn1Nf#b1BE=B{h~|WczGA|(H>VYyQm2w^IIvA1GVA0Z9QNm zBTjV;a++Gk58<+oi4jxw!Zd;Fnvim{)Bq!0bi`)m)sH>5WPus-4#(fn_m=~A3S*X9 z7aSCRJvigbju~pe*ekyDw$zh8MFoh44g$4cFvfXGJ_X0tYa?{22j|(95)d#nR57gb1Wo}hir*3y)o~RmGCdu!w_DP zNaHGTeB4LD>;mPX{C||4OOho!kDT{%$0zObO~z0r(@Zn%e=iCEjL7Q4&#V8Qlvxo; z22VUl5OBEfD>c~3MMZ8bQh2rEp9NBk%->EYjC21i$~f?y2*FqJlWjqy+vJJ3@m;0( zhv-|!{Q15Ax~Y=GADtkDU0BMiU&7#`!)|HEw-+7GGX)P+UKz1+s*dx|w>@52`t$2) zFMobMxy!<4E8W1&)Wn$ar@Ei|Jf3wP0K}7-VNs*5?S zYU(+w=?&ALY8}(J=~BJSGf@w@2mkt@N8AyFXvloxZ1-QpU3}Wm#h-1@3Ii)fd)1)w z`7>Gk(p>=B<{UGn9g%j?>C^m%#+$u60((GuA=@R=M&qrGUzEvZo2PW1y7_kI$yf{a zQQ7^0%$iH2V?xC(^ZS6+M2|MZK&Y3HVW*RE7|_Rzz&s+`gvsk0b~wLNJ;Lr*PLbs> z&2tC5RDvMtKt@xMvTbV>VJBg2=gpP*(e|b)jv%B+eObgXIN%rLIm2?SQHcj@@11RD zOm$n}F^=~Kb^ZWGL$|U&>AZR}YSW#w_lTcUd@x}-e{F62bMx=BO=n5YHeLMMMgpkR zb6c|`Va@{k{HiCNsre?mMFEo=`?-&LR`?mU!R^nCDXc8y*HPL@S>ocs%uOJ;bQh~97yoSY( z!UBnir_-5h7@w=#b)7X1rl6QBs)&ncZAZ|HypY}=HeTF8gl)Js=>o7$jdpx#sl$E!MS=Jd z&EJo4ESc`jHE_l!Qa7LpO>pmmfGf58@VSsGhUM6^IBI!&&^Q9t;(ATTnr`V$Xd@JAE4 zI(W8jKu?JC3F#-*JxpKn@*H%#OPO05LEhfbPo zT8>uA#0QvwPWBB1gv{FjAby)z=oJE`ZC=VO-FjD$=Zrg^?T zt}0P8)DBs@uz=CzC2 zG^!}{qf#VpVcDHZw%*nbM;h~DJug(swNDvWqx<|AbwwQ#a>>J81VgeYSUDY=XlGHB z4IreWlAEyFC}{DTDx*2eWlU#*v|!w=BN@cvkw*6SJU)q(@Cmh!A_htcvWE+;f?M+% z`J`4-XCRE}k>p9swzUohEO{C#Bf*C!bfE^$M%uu;BmI#CVl;I5SVG)|`3fPVEd*$9 z)z3V?@8Oc}4Wn~zJIW-Du*3|xLULj40U;FBuGa=obqG7eJk-w?jr=<5y0%5ln0VK{w_xk30xsO{Q@ zV{5*5@sw)Q)1u zuL0?W+|;3FZR~mAud4j3QWw9CnuuR#7A22qANlT8>Bz>lsn!8&eeCR4WtYnSavG22$PA~? ztaPHv(GDzHpGhi5^)u)gYZ*;0d@T+=fJ4y`9W04GIJ9U=$F*_rozV>*%EqVs$b56u zpdz7<2fu{Py^GiQjbX5wnT-}~7+K*#ZF3YTLrZ*hplwSB?ly zYA>hdu@u+mLfYRnmF)Id|XaQ0YbCcxgm32Q8`gC=$e=BQ3~WM&_^2>Com$ zukxIjEa@dI9V)1vPLpuTaV^?T?`?Y<=Y@<~VV(1IV$#0i@%q&;6yUs=9SfPZr4kN* z5{|*%q?j2w*l`(H;=33w7VBC?XmW0W5Z*JHWMqe!Q-?HVn<`Z3FKzF1?7SW=%_Gw3 z>6Wl{h!w6^gcIYSPfx&=`Qaxa@nBScA&||#`q?ODRYg4Cd7g*T z{$B7b3T|pLanR+-_;K;M-*{f-A0M<9$ZKbBrI<;7fB9Lk^T(q-utCO@$Mt1a0q>@E z5*D ziSAZ_IWn9A8=lPEgKr$g_XC}<`I9K<-OkFqJzlEf@PvP`fJB&l`>Oqt82abbLO~n1 zAsv!9>v*kAAD75#tPfxOu@K;H z3lcS822-ZCO|;7<*)30H^2y~x8R<7lB(4@dw6axga|jO4atztcsw4V!(PO#70GR5r z`*cW`TxW^7*Vtbdl?B?ID_EQjXW^<~dk%8Zc12Pfx4UAYjwNElCMvR9#rN4@!1a9l zs<{^A#2KWCj-uwX-q%1jmQo+>!ox3eSWG>EW#%>y$muzScPk5{nMIl6a8}SQ@JO<> z4QaF4iOc2YLEOwGS`qBb=RLO!^MkuOPQFQ*W?#Q3uW}Oqs1ZkbyHOle^tzs2$A;wY z0C(y`&M;yd@ZkhC1FkyGsrA?p^v3<7C`2qD9^!4_gIP>=TaL5fy|R!ZvJ+ddRC2td z9W;v9Hoz(ohI5%1ujQl)>W}TPG%;Sw&v;Dj*)lW4`cKM5u*?OD?tFqazfAFqh@+f| zL&q3aSe18zgMhJ7uw<}Ag5`{D{2?@>TNaiGxf23JLI#_x>!QbQFmE@VApHC2USavm z+i*T5ABqp(bv{NqEsoc=;B8T3Hm?L+4M0z21)~R*QI-oUYaWRAPlkhaSyaI2nC;9^ z8iUx5Lg`g=g57ddMR~!CP$l81_8A;+rqJ*#|WSvzE+g8x}^iYL=S16FaBmLx1w^PIMy&X z*@^;iVe8s9=eALG{n)mO+{=|hvtE!q$;-`8mmhv_!v+#4VaZr2Ojq*UK#WEdi+G)= zzmC~qO6WEg`Hf7be({fF7J?1$XURh*WeSu4U+wZujBNp%5Vn=HZ8klXYn$p>p|fPK z;4r|tML%tEw?NrWRQNJ%E~TNZagPSXQqLSHPZ74WVA4ql9==emfRN)}9JQ6n#l26Gl42Vy70e zBNN-ynU$r51}DIU{G9@_c4Gv0uzOuc?YOdQBXT4ki&ZlGD+*jSDNqn6WQnH$Qd<@C%*2a&;;4^%{xS zD2xmC#`Em-@#mcagxrx$`3D$=iaACXttv9=9Pn<-11?`C_< zbHn-_6RP&5si|33r_1It)s6O=tWQ!VEC>OX8cYCXKWk87Tz146i8Td+P2~S9Tv?c> z+@c|+Rb~zX$W5RH;~I*JWDTZ^KbnezNTzbPQ}aC&=lWX9kPaR zTzu5EcegAhC{>`sa-;G9s}@r)f`$SIi-$`j64~gbU(-t@XE+fHIW`HZ&L zs?`$?!d9oWRXG(;WBoT%5rnY)g`Kzaps2dlZ8<}^ajncTKgX)K3Mj8Yv1jyE-8Rk> za7f$}{5`5swyEL?EUq``jI(Xu@0@vnZo<`-EbdLaVNo3#^zcAT77X7n+J8c7;(C8@ z1D6J8cd6S~e(MSv*22MPV`kOIFr3einiO~sBkzN|-{DkezOxQti#}&fa+g0V^q2{4 z>pADl;Mr-~N0d>t#!doIK2is99zP=W0ccxeY$nXO9W{H;$X7Fj#aeqW%re*oSD3w8 zmEDSaXABE%-Bn}&GeFG0Q|^7cBBiyj5MmN7Bxg8G7Rg4{)iR3Gm@S|$d(P`G7quS} z)^mCEw@@&cInm(eQERk%c8t-+=ie!<(?{2r8%^4BM1nek9E3Lu>tS&JLn>DGI66F=YkUr2mv87bKI_z*wYo3a=kQ4ISUHe*oxe^ za0jakxlEQYd4ea`$r@RY1>wTET%v*kE#W~H#EnLdami}gT<}a88DeG2(&lIO%wVF~ zWVdi;h0S*}w#~ncnOpT+iDHs*$C564$y7YQe|b`(A30~46U{jh$)vv|8LQJboFXCP z^Q*Cq0<~?O!HVVt9Z9&XQyZO-1h{vcawJ`xn=7m{Wd!8RY-3m9PS#o!-J=~B(uE33 zaRZZJ;kK&zFn)7R<=x)EA59ktK(%+QGoo{C3!s48GrM*Y-QE^a62q2UpFR+^eoO^+ z%@_?dEta^FYiuVDlp4We*x-iOrfo4rNZGqjny@l@uDMMj<;mSVRvh&iQYl}+qMxrGz~=bTItSh>k4t72FJF1 ziD8@5EG7?9T@1@k9oE#SCF>QcHG|=`R|RxplPj=67}qovQqlRa$5=_vJu%y}7Yrq2 zZnot`b+av1&83E=Vs1@bD+F#PRaKd|oUq($BU)^U9zcNV;hiy&9xxT`VnH=*cXSBP zcZ4NV6gkz25Rh27+*rwJbW{JAV7Ad~(N@IcrT0?DIe1;FS1enVe2V-`;#jucAAGzD zvxw26h}5DAgYTb^-tvXXjg@b02@)*k{DD`Z&fm)oR7r$Ni2Xpy$<`a|2a{Bni${BI zI&|{KXR!xX0ROmiT7iRi-w47Bxq5JzFzKJFq@mk35Uxl~j9JFh4V9L~ zMD{&Q=(nurr|~Yr`&2^N9vFAX6$AeZRSfsPoD9Keho+_=zdaBb zFO`NY%Sx$Yrv4JAqs11}fnO_A>~?NLITP`2AYFH6T71nT6b~=BAmYBZze@OoQ7?wM{_B zBa)|9UNMmwIo!LZ(CP!#%9epGn0=_q;hbJLXbuH*IE)oAX!+?&q&-6<@m%W_wcYw>}k7X2v9Nja7^PgMJjCN`79N?rJrjs1miI3FHxE4>nJOg$j zefHlpi7;}{oOo59sh=AlJ>DQ47)AL#&l>}I40Y4}3^Iyj||PvJe$!Jub)xm zQBAN}D)wpH0y(uSOav1_gF!(@;ERvrp?#wjtJIt5s?kv0WGdS zR8i$U9(xq8_;aS>^n#3`CQgkk{#L+B=y2QPg!Xvn2#u-rU>|x_$53jQ?god^H(|4u>p8-?CNdnO2yyDl?{85Dnc#cp*kWvx=3qAzBxW{C<4+k)F< z%iM8dXufBX*qQyNa*=~?cdtyblx-V7slsP-yXQQh;e{X5f>)^wh9CEB%3>ZU#jx&m zjTLPy9(nAtPpB9&sH>NO!hvD<>|e z_JvsNd$2va-D)Z74TxG-1+Z$-b?qz>8QIM151 zsy*Gk7FEIHfc;)k|1ya*G;|pw{WX1@+UCId-|b^ij;`O|D?C)Y(@}AkA?;JpMYH?t zmVKwd95A17==p0ZL1r^gOER4kQacmrJ@t=5HBH3;ERsx zXRz>XJ3i~{?N!dI^n%!0!<+1Be7}NEmt)Df_6&}Pd11TVwt|K9e&Z-;XUl%6k||A? zEF>H1$B?)!n83CqU06bDHE&zyU$lkj7flb-%J%BIW&TTa3}PO(nFy1S zN9MHz-$5t#9ZN2D;LtG?xOW%~80FVK5T39*KL&980=am6r~y;Ln*WxrcM1jawWoHv zm-{CIRYwZ^WMFn&aayYCBTc+DB`p14f!Mo0A3;+QvI7Z0sepP5Xa=D59Oy9>#sa{) zO=(|^;-QH%7yD*)Ny7mXzLpwcLtetrq@iPq*jPnG2W7bLEgRAlhB3vp2e;pz%Ow7S z>BaZRgysdhOodkbOd%M6of_;6S_cQl!a~v1xR2#o!;q1r2eFUFwkS;XCF(-Re-%m- z?Ii{ytZl7=)!wS#Drp;9<3rU2hs>Zh?alW;%p0(l zv{mP;18{{m-v1<3n_NM#*x!nm^aF2}D^L~q6sIB@ur&4JPw`qWgrRUX3em0i?JUrH zFk+L(Qpy#!f=&+Ij8&d}oRuRc=sdVGjf$t_lvQy{R#gEx^6peYMV$ibu2$gP>F3PR z@?hne^Mb-#p7djY>SqV{QYvgzHf%2^W0~Rg{!YlOai?(T{5|dY-+P6`8+7I#qv9h` zyeA5Lu#(L|wFuzcw~r~Q+O}MHhzMH+89th~-`F$98kJTg0iE}+Y1aV_@&`Y7KllZTC<15G2MG|W~gvmE~GHJUpSWb^nzbh_Oy6{_n`#Hg(@;DhU$O`zOUao z#B#y6V=;T;cD9{uH9TM6UfL3RAh|xKN+IUSF|*Nx#nx74E45G-_OW?S)Sk8Q{LG@u z;9BM8(Cka>$Zwq;*00`6|5V(H!AX@mtOr4}Ng;5DjnT=_zWRY>V>t}xeZBS+K$>Ok z>48SK!I7Zi!MSwiBbNC9a=Pnx~L?>C% z%cYqcrcg{Py^#b>4}*|Hx4|g&xpt>==3{zOA>oc}d=3?9Q6NZkGM!Ktw!Zg9?}06G zy>V@Sire!;ySiTngw>mhP_e~@{d&WK>~X11E-cgpV?sR9buKY#2J5LLJUzwy=^50) z`~4IMYio(vDv+x6)5OYifA9?#Ipce6T;03Ea?)|2P3+pMc_3Nm?X zadxQZx!6MMQ)ZHTlo0g+X$B=vNjM+d^*SdW>>H=#X?*>Z?KCzYdXk2QGh`ci`h0O; z%ki{&l}}fcGzg}$?X1UcHX1ktco`4h%X9=SR^|{DRb0zZ9($89&T8u@Go5u|*hTg% zT6{gn_%mc+Z)@%{WKdXv!b9rf)LkNIpjb47X$L5VICMG{00i)?@#%K_HaAr?b!AFU z&z>sY z(g00Jy|1zUdlC2_)%U zkzAEc-h5v%6I*ot<(@`*;x+~LT6J?K=H2hO+T6Mam^z!k$_J;hYr(|ww?W@LI?HlT zTAMwtI$5uq4EuKQiOWaBg(UREY4v+Dw^?ZZl3v3Ub?hSFwF!JPa*<h`HyY{2ANadMK5?)HebWl-G5(jdIQ#0kzkf@;uk5-(?Fsb-g=LzMBpvBn5C^< zbjUOVX(XAUl8T_c)cul_=0OWUrb&WJQC>KT6mai2IWs`MHVjSh0rNL{pW?9!CggH! zRRU{nA`dD0klra6yzzcR#8IJ^ojb*&$wToajTMXh9v+R;5}{^l@9KC|UbPIgIiERO zR@Fo1+0~G{g0`SGn{w3OqG2%Ef+u>_h}n>-=(pDCa(GKlMdl)lGe`ERjaAhG#Y_Mw zR`6V4J>bP~zUp8bBq{YEv(G?Jga(%^VQy#{uln%rX%RUYDhRiGvL1yz$5<3;urHczC zfh}{(!(A$jY#T2qjZ9<8UR{azjIJ)VcCj;An!3485Cuz@563Hqr)iU_7s+|i8t_!y zpCIv|n1|zxH3olR0gC`L#XBfAJmaXo`0KwdL)_T=HdMZ`ePc(+fJ>9h#qx$56rj0$Q?NwI(h#1O{X0p+T&B=}kOu+7dDZ zV*n3F4_G^_u0EXM$m872Zunuc`<$`#F5`OX>~|T+vb|9}JQ=Rtrh#8gdZ^e6=>6WG zwIbOLn+S&Qe(1F)qMg1QIS_7^Mm0K~S;F5uvN^$E@-)d!fWtwgE(5B|8r zdEeToAX@!-YM)x+so!lqQK7i%FrReOcXsHd1^CZ882#V5{y14C1ifE9iE~w)Zv7v2 z3B~H;gx`mFkl5+}{qO(vfB(-v`&s_+uIzTduh9N|n|AXf!Cb)bUk<&`@YjIWuXp14 zTW+qE$`o7%ywIm%tuY%?2y35JX?vX5Zf*CvN_(&uih^Y`1%rp+xgs)H;awq$+47M3 zX5_`-c>9&B>b2&jO-T|6yTm*Bk|n!;3?88aE^1}&srhhbovt<-e53|0%2>bjTgNI` zl*#BN8+l^}9&C*2e(79Eg37bKKU5&JaP`ZNx~bYiN`uT<69$Je6l9vcw8E;rj8c8I zsQH!9jcv%_*8;Oo6;@f9JgDa;JaacVk;S)q3F2iEX7}u#2ZDc~#t}orF3ZwV`3vuJ z7UjXJ2v}9_s`^}2(5uRJF{8?bzC%|4=gN_)C`(n9(L)!y`a*?;u74|!O=-Qjm#ilC9b#13ugrr#xE99`79r9MCMat`zn}CniT=^_1Vy$lCBbVb|DrQ<@;YbK< z9AP0)Y0;*vOm+{H$$Bx+$3kt3Q-|?_V#YDv&mcm}Sx zx>oZRwxRnu0A1L;-Ir-*Pd-19zB&3OS;#)Hv^9$mzolH*AxV`Uxt0f9MN zG8&WC8g9lRDDW*7LV5Y#m4ngq)+J35&N<(8`u2Mq3&Kz?e$n&X0O1ZxR*==f&v|KAg!w^05z;?DENd zz(Me^DBYtaF49k75jpvpngYicF44DDeXv^Na>QIx;f}$dMu=`stbFrhh>~GmH8PZc4|}>EWO3#P*jPj$K+2OkLLY)EV%M=Cl7>{ z&PW(XA~-(wAk!CV({aALL)_Abtod5ZxQs=F5QvG;4q6p3w9^b^;8uYY-ytJpzQ?b3Kn zyd08W-3sH79OGLqLgj9`>+^@+?#6;tytQFSYB^IBIR@)p3mFDiixhJg{+;vCjjT?W zS1;;}J12(5dKkXj@3zHP)akgkg~ipAnKmUrIL^P zeJmmo(LlcYA}oKTS~3*%@(c{kN3OZYcDT!%9?GYT47D3rMW&Ou%xW6TZ$qgX}R*! zL9@=vrud*|HX%gVT;73xN^bk5gFa0axHxYkLL5xGkG}^Crm$s0D^Eh0O;MjAokgkR zhqEm!9Z!j$>6A3GSO8t$V((Rzo}yu1{7Y=@#!I)Sc=P9fo=!h0*VDt1ewh4l!0wNE zdSl8>g3?58pu9s=DlK-B*TN;?K|P#mIZ;{lL(#-suZGOsxd4X8+Xv=Y1Ehx0h{T(t zvq8Wc=~;q=+LH^I0&dS>T%3xmBvZ5%Z{dh(Qe`P)WnoW(rM4%S>7&K;)Bi=-62c-} zbqcBxt4T}2Yz-_;?ZzQgyS&2L!&v{Xi;ye#AG_gbpWME@AdTD?JGh`_6f5t8M2)c` zyCI)!^VlJqhu{KFN9BdJQ!c-+psJymf(gw{mPtTENDp;-fKT!$L+IAGnD51JZ0Gqr z%6(b|RaUzt&~8FqTZN=@yKU7+)7 z)Y2CE;^)p0AUg+v1if`1ODKwqmZ+3PlfM#;Lcg|vU6>j702?8hqhN>jQrrEqX-^Wf zPuZsLCo_H0I9h%^bvm@+je8MHMESztn84E%4rH^TN1y|!;<3H^K*$f1wgnts(Zzr( z+$E_ld2yFW-=?H~dO}ivHrSU=hE3~n5uePx7zw;dd&RJd;8yrigb(02R08}tQn4;B zW0>1SwF(0NGcHm17-1x2+jsKv#Ux*sn1b(dV3>1hwA0MmR{w&M8t;ubVX4b02ME00 zS%%6rKk5W$)Pq(Pw|k4il!AWkz@)Kv$an&v_8@d9s57*-0ks{lD8oNBS=C=2AU^Pa zR7z%!qTyOLHDxP715_mJg@qv^@GDGBnI0+wB(r*ZL8O*~7W-F0g~uNkL4=I3`6ui8 z4q3`8kk$$6D>R=3h#T~xqz$Im?GHgc>U@==>eE0n(&(FTB_-^}^($rsM*hvnAnUkDMnTz(kV8oi}aoXZs#zl-t zTc7Rl!tztM235(zaz8h;SYsiCbS~!bmcB5q;%rt(AUa%z4-bMO3DU2K*PWJ^P68_` z$TIHvZoUL?gx7~7O(dH)GQ=;_HWz!IBV7thD*&8cc>voO%^c`l-{N77y&b?y)p zdK5X%RqH|tT@O?Z`qqDea}qaq6n8Z&?y`~}ilK^vvcNTSGQ?ypaJTV10aTFfn$;>R zV+k2P9?W<-!x>{@_6?f-9f0=vP|)YI6nu!nFZ%nw+3&xbon)hf`fR4swUC6tl6B{T zL>{^H($^ff&XR7KBg( z4z-9!ptItr%E5HBE5aUG6oTcmSZ87}rWb+(xvoV+u*X{?qiU~I*pebv<* zjDWkAlIt#i{-Zy35Cef>vqD3t4wmQw+}dy1+z&IwiITc90(t`VXB6W%Uk{T7=5DoJ zmU9IDJh)M@>}st?zrLM6D5Btm)feCr|2#XqBi7b(7VNiaT~q?6EZ*80MJr5%9*ejP z^@8G*u{>#PU1;C3%X=u`cXJM=Qp4?u&2frvdXZ4MVe|6hhp!gZ} zt|EQCi!ggeKD;!x5XXimhFW2Lf+YyeEuA6?IESq5 zbfhm*h{s3OIXA|J7oq&E5bjxaq4VpnT*r)B+ZK?s9mI(?yx6;48VQZ%#_{F|lkVjU zGb<(EF6{E$X#?*rvka9l9asiaOBE&`FQKYpYz_rAZXyFvXdbaj2~*xC1RT_-A64U( zA_|`$rEVdbBel9iKt@Q_6s<>75QZh|lzUU<%^o)gP2AWM6_wZBYbBCHDqeo=r=$^S3Xu= z-`-r?Hd;65YJcO+!T?9vmgBqYZx>uQ%eqv^ejyQwtBtIsL}V5#!FgT9eUrwi4m+Wq z(c12@I)9{TkuH=^jCQp?UUlm4)xJpG>YcTKqs5YnLH_K9rv4}#fqz8~j`^|pLA~DgGzNE=Gs;HnIQymgY6QTe`5oxq-qXP4%d|woD_b$&W!WJnW z3&|ewpdP7MJlXe`kc70JnX9D#g{owq_}JLuj3%@#9h3ou9GCB=#HaGd9PuEFvv+_O zc8aALENwh9XaGdTF8k=lBNcm5H;C5THrOv*9eaO?MjO@fS%8+b ziKi$t^VLz5K)Z>v|Gtt{3%;E583IylIWC|?37g}y9c6^fj7mKs_bMBO>|0C|EBh7 z$fRTe6lF1e8Ic1s-R&jHLgZ?Yl*wOE)yt2`z_ruIHk^ea53@FvpEo7x)Lyj+w)KJv z5A9Jr`w_MzyA=Ws=2l-O!hhKYE6@F9IQ1Ih-4tt*mC)gmejA8C&)WH@lI13(v_;J_ z)afQ~>VGtqS`@jUrWkWbhoF^mc5Ncpy%cAQ!!X1-%1lWTSc!+^Tz2BqbsO?^hlxL4 zXC7f6$QZz;qAMA7sl&1wZm6%#=|U?{uLt`a>|x?yyG>o}07$#Fg2k&SVQ1MVVV7WT zBBr|AQY)=dOG%%aX)bADPBr85LuFRGPS3nXsvmPdn^Ca~uXJYd0MrjfS{qh5yNRjm z%_P2tZaM}ZR$u>Lux>!iKx|Z4oO`W!VXDuS;Eqy^Z_t z7h^okB(^HI43*Fh*gY9=`Lq;x1KOr4H7Cua7LeNH+v6twcnx={9*`lghv?KXYUhR| zil&65oRb<*&5yM!h2y_Ol>J0L)hR)I#pU8TSUcx(&C(?Wb0LkGrPi=A)L6HrkXTQk zy7(Opz*pf;!Z9kH^@$u+5gMEbxDd`+(eW;$Wac&YwkX&9HuZIBv1>uy>P7NN1E|!} zblcSP$m%}br_3Z%94m`JEF11d<>#A;Ic)P^IBd0EU4*2&>LpI5jzknvq-H}GFHgnO zZKiSYubRp)%rl&_A29H~?>Zw`&l)CigQ^ba8%+f-Y8H^r7e{>mvSB8=<;JY{%rFKcZ-J~{3JouYz_BQZdBNmpefmhd(?xB-2YZ5m4B0i95b zt&0a@sISKUlC9X2%4uc#$B6;D+%tSM7)H3d)z6Te@x$&D_k zd8Zmt`7(YRD&5p7eo^u2ZJdG1y-bhHUWzBxsi00vHHlMBSlym|#l_PtK+V)hhJ#==Nu>=_orLd8H5~O>{~OEbX?3d?QEs^z`V4T zAEhDJ0NF7-QBORCBVSUAGG8hOU<7zMB`m(VTL*C{SYwBHh5gRXT4rWqtstwX?M!d% zCS;p5QnZobPFpsYKLD$ooe8zq?ReiSly#SAKfuNwgk)mcz8@Rh=)pjRcmjk|Fq})T zO$Bwax-&&P`82}7BlRlL6Ze~0ATH{<=N-ysd*SuPh)x?YocF?CtNpeFPJnUyx*?ww zzWV_2eSw6(pqIoG%~PyuVWFYy7zg^;(cz+z21|b zJ1Jz*EKS`ADQu0b4&A1BIsqqRVJWkTDOBGjGSex9p`0+d-GiY2sC^nNUgRy@V@u0Qq^w0oJ*AnR*Ar%2`r0onrD7n^UKvroL{Z5 zYPyk^6ZNb8eS@4*Tm}I5HZzt?_ov0*e{%!;mMIMNgYv4yRwq zANL2u4IVsNO8YCB&kwxxte0la_sqnpw?q$Hp|}S&8!VCHKDKDW?{bb17`z%(1qBGB z{q)ZLK`gxA*EWeKK@=V9zJU}zc(@0N%4yPs`-81Hm*tm75EPgk^g;|~We3_1DY+KM zV%lQrgA|3g7cIrbdkVN=-0mL!bKIihMu^bV;9WfZb^H593_jd$D%MCrwbvd#n|fO!0FrbckiQ;wP7$)KaF!9X#l* zRSyPk-fsXgm%FNkK(P60xYM7<>yeeElzu`(9q&_2!d|>fq6E_JU&tPh4| zbP#1Y4U4refS_7C(EV+nrU4sLUF<44{SF3F{2Y@duaO|BkMmk3wy7Kj!MdTAxtIe` zl4zzWf^HeHSHGaD&Y8X!S0pVI05i#nscLt}z@l0%L@;RDrAop;&)Q3eE>VSprK!Ql zoFzwqcp@*v>O^HtB1tj_3=LMgP3_hw;N<3FD#I8Gm&&9ad3+EpI#%Wv>sb>CDK_Fo zIVj;*e2+|lvlQyiFY?`P+^LOe-`(?vOj8Gm8?UCLb}QC`ajXr`9LB4U2McS&9@f|y z9C)F6g^e@_8f68_L*V~-@i9wLT@ZKD!(GC`T326Am{{4{)+OL@yj}$6x5180q?&Ap zJv7{n7Xav5qZPvnoF_kz`@qH)W7Tzx=`kf+5h-_KHFnfqQMS7aId5wRII!Od0!exd ziVl#00L+Xf>P31oyv}+q?Lz1w`ykb{TL?0Jskhd43%vCGRl_6l`~l49exLy3 z>V|?r3RuIv1A?H4_Uei-Br|$1ZwL{W@Ecnx=eeNNw#52#`|g#JrjA4dhGaXgV+RYs zQwN8{w26W{`1f}kdB4W1%bSDkaA+v$Ly{P-QbDU?fCs3(sEz5l#F;(1KCP>)5&@O% zzJj#2wc$Xiig(@^pgZJr#D(pp#M&K0{9|I!D{(3%bn2&5mTB-wzzpaEZO%%xXNyE!Rffgl#I>$Xigf(xv(J;rdbEcWaK83++SrwyB1!4hoLCaJsmCi z4@aknKD^=;N?Y<*e6SGv?m+UfUha+V_kB*H1A!GJQM*-8;6P>&?9w}ni-+pmT&dX}Cka_{v-u@-qa7%LH^S(-I0Mvu89Q!i=5@)|H`1NI+gKWVU7uN0 zj*Zd;{a#q9-QH8sXfcUuXf}ddLWVAmd06c%p*gK;4uPaL5RrM~UoX=?gb(Yd-)ArPAT#ieBbcJ&pF3UwlXL0QnP^^QRj&TQ zbWfvkJZxE55M+|ptdU_syR~(Zc_E3NQmMIKc+Wf{2`2!&q^ZCnl94ak4UacRP{c{OKXY$6UD$ZG zsqR#e)L%ahO(}^d1(~@FH#C+=lx2YLM+OZt@n)#CvFd1U0HD|!FN@XZ31{d`-K7eV zPQ+h_1*9Vb99z2R!n&dr(LHb4h$*-P#XkQ)V?iHWf`Dinv&_ytC==oBO%yqhWU9H* z1?eou63^8=?_P1mjIpvvqfsqPX_wGL<}Y)_E3t*-q+LmQ zPVUeumhQ|)c=$Bn1HapCJ7rlUdTaX-Uxt(A7Ex1!!gvn$#t-whEEF_!6)7I9%E9WE zX+GOmYa(@DW>%KQ+K8KdnkZ_i)Tk|i-f|w=TG>Nz9@-xuqQ$aKJA&dvZ1QFWc!a5A z@6Yq%E~PgmJBG`vQ@S$SZ5A(Z%lrbn&IC#@hXTb^+H1H#)JrTvRu6-(M4b;g3lOQI zU~(|2CS}2uZtyE?=PSY%n?cN~3Ar<~6wI<*d%EZm*U6}B-*BP5biPCZfT!#0@|`MU zGpvz;KdaKk+HYt?7GCfC%6UGD+i?>qO|2(xp=hC5R_3urqPM+N@hX%oUaFG!4PnK3 zzKL0^O$N235~wiHE}i89cw6|VJo_Z|i25fm^x1`KIWCPMXI{C>g+-fL?5$1{T2LW| ze_v9cS`c?u?!uEw;#*7NTTAMOxPkV(B=1z(WUJ7QH!2u6X(dU6t7nWI6J6m{aVv~! zH+tLV#ixd7PuN}oIviY;e1-l98-WFv>FFu=Aq=%DI?6%6yz#mhER{u#6?#ixp(p69 zmYpwNTH%38rMq7E1i9%kv1B|8zd8_VeB%=?uhve-WLGEZ6oe7(O0e=R2>Inr2$hKz zk5Erbpvc2OMVAFD8Tu^zE%nI}3p=#p;`tlq2bc=h3G}S4oyCtxlcPatiUK@i3u&wa zIq~Otv@TP|W&uf-R%D~G#M_95AcD13 z-3a+t9^`U4Gy07-t^nLXwx)KM6@|pWWWz7X)=B4({2`wP;~4{kAtJDYl?^qnVY4!U zMiprlhngk}wz;<3S^A6{^Lz~7?e{C%=yYdHnnWRG$%aPf*XcNANirP591LP{yZiBK-3<5lOn}?scG#UOZ<_G z%r1k69(xlgePcj};J>3;O^~Ob{v$h%WxuiG6Sb^r*p~X`_74g(Bsu9ANgZN2J&4tU#c20E9Kh}0qZtaZ#$-NiZr{Ved5kK+tZj~pXYwt@aNcsE z+T@qW3Orxh;w6qk8-}$kmF{a1nK0MftrU*z{w-7W+j`L~+%{8InYCjXVUc!cv%-ph6={kRg$!2Ib@7EPQ}z zddwkc5hAiUnKPUMg^ufMiUpo6rcr@Fau?Pnmt*nYJGKbXNaD&?aAD;Mq`C4pn&|nkQ%sefZR%=W**NMsc zihDu~g}vbkmw&@t{Pzw2-m(KUo$I-I-*LODey}B1@E+Cu%Yc!}c!-3|2a>WGB#hX^ z4XO&n2gXo>e{au55&IJpXL_!C9zX86;;HCET&I?=Yl!Z=9lIvt|I~gN(LOm5HQLV; zccUoU<;^FB?1(=*~?7TGd?2M_Wt3dGb;$hISFwZA-Bjm7orQ?NGnvQy!?Ia;+AR4&%_ zVdVm+xt+`aTAFyQMXdP7n5*tA>Z5pz+zGGedh5BS}D)+nOFo$KlB?ZDb0)abE#P&dHoa?OhqPDDUIYqbAh28SHK zC(%a2C=_z~lyM<_petei)PM6h*N(zoMNncZnPjh_fjuzJ$fS=^0QNnnK)P6&LMe1S zUkWl9f|Z2eSW}@4O|d-FvTcZu8LX`9%+HOBBr=+S!2}^CY`3E&Hf&-zqAuu8I5x?> z7YI{75incvr7XjVaEKghDo$eiF#{OXJy%VxgD0MQhWTa;DY$b=26JYp-P#5eAUUfs z-F3e}#|-^sLktCLiNO;x(YAZ&Aj84UD^amaTZ~My_X-h9mUqZal=I|V733`QCg@aq zqh#cb9VKxLZDgw9xfVt*JXA*F7|yej=^C3rbE;@gSn64@y)bU;>luo+m}tzPxKs?4 zm^fSjO)$3MS0DsN|6Ggt1G!+txw`;FWArvi4fN0z9~cCzW_5O0QX#U&PBn3s`k}?b zDqDo$76w2pgGDL$gypF-3Plk#!_KX3n-m#0ZGLs^}~*D5Yn?IZU3+f)O4|ut7k`l3V!a6$5Ziszl8^c*bKS8FvENcZ2_P+7zW z)BUQpwWV!Af+6}efg<_I2w}Hv!Ty!BK->8q$g1jZsNjhxx zUrKpynqF(`NjDLP zcP*EwrU>EyB;LWIe)EefC$H_;tZX)zw%MCo2x(%Q#Wum?ces1O*T!#QDRQkrQ!FSv zq66z+liki`A{% zhbc?wU%H?;G6lE!Sk64sJ06^#p5fM^aeb*vWzSb`TO%zt(a+VQ*tVzAWUlcZ7%Jw| zc*NQP<|KsNABp!$YCVs}`;P)R2&!b4@agj{Er&x4hO-9n1Ew(#XRr!OSIIIu|X+e!)Y% zZASsirN?Y7t1;uZB@P|mn<=4VUkeI~UfW1(Oy(iu{jZFeuJd=qMGOaGDiInGTdWHr zF;#DH;!TBa7N$RfTSN}Iqh0{fYa%4(bcj(Pav-I0Hl?tVh!Eduh6~DEc^0q$0jeiO z3zoF`GQPzUL9|PWCC;UV6hr@bp%=F05|_aJ+KVTQLGvj_Eq`8;ejzK|4Xawr>OiwL z_z4z^3`Ky<4YXCoeYu^7ySg6JfUU$$>zmYB)iZsFne5&fQ$&651I+Q=dD%+BEJ8LI z-~DutV^2=`;fFo(eIK9#5{ki5PeQ8Am{j@@G2=$MpJ8Z5kGDXNpJ%ItuS7uckiAjz3tp>!p;(a88`s`Lt`~#5q%uMAV(Ij=^|L6rK1>rw4C1 zzEi{3HXYxk3s6H;b!-dBaVmhKyG@zm%U%NOMWq!z)?IIU-n={>V?Ec~-&LBB`FWQY zq9oWgRXyDUCj)@~c#Ov$>u%G9nEODeWxkQgsD6JCXlC(Da=Fv2GOp&fbC-`&#KgDh zv7vO$OeD?j&@VJ4hg=TOUUe0j!FT9ahWXrVg8+63g?QDkmj|js#W3x)weKpYuDUs< zb5@9eP*S^}Xe%vSTBqzAgGrcyPO&ap&l? zUF2Q0Xk>#0*(H1$fr2f+bdQF>ln@+GDjFh$(x7j2ljd}K zGLme!GhL+9kCpSDS`+Th-Q3&&LqNR0d8)_j=b*LI*$Mt*phvU0VeMgL`e}FZ%V$cW z-;Ql$*I|PjUTOUg#|bVjG`zR<5{E3zV%19!C0Qpd@o=y~7J;8Ngu+7P|0(g>(qMHC zVQ~sM8qCPoRuLbwTNHvLG0EFnS&(rJxhsW|6{0tSgb+}3!x5+Ac{#j0`WU*Dcxb5JcR&aSQR2@&ERrUP8|pz*%1)9z9 zRqSAmivtNkM}~^@*Cs>zArw)if^5IV#JyQ+SC&YOBJ8_7rqeQ>%(w@p?TR;wMD3i5j^`l0ub6n$JY=BQ+Ufu zSv)70li1=5tQ5BPqv4N?_Ydc_NyjaR5(K~>BP*XtaogA5u_$0|1#j$TOz*>CGTTkZ zTzoJXGcyEpm@|wJtf3-c>9w`f4Wp`ayGC>=SXw_(z%lPaa+*U)oMXD5Pu`Y-<0X~y zA3KHw7^cy?!bA#_?|Gwl1Vx!8DIl|(z_m+ZfpdWvES_P@=;fR8X~P(ig@S}Bgzgw% zm6XLM$d=w7OF0#)2A73}t`iPd<%O&qLRgx#H2kx13c3T*M7*S~hDbdXM67_9E7p7|F0;{hJM2Y0AL{75!bVaR;#ShV=05g!WD zLiu_Ir9ZA|Sy8}fPwWR`y)-d@WuV>P7oO9YI48a%{{2-d=rt!gbA)6(sj3XR@uQ-< z?ra@?II83(jv@l0O_}Z`)VO;m#7`UmZtvd_QGaNFflGV^se|~+(#1fHv8f<9l6xtv z7k6^DWA5au3eV5{NOh@niAy<4iRd(jGSzLM+sePlh0hAo?}em#{XW*GXfGsweIaD| z+GTl=R4uy`RzxmxY^*x=DgwCGUfTicNGoixe5}BGfMu=+3DQpN4EM3B9R?fS=Sm)| zjm%wKtOG3;P7T9482+$>Gce(VZ+{rW$8~x8dC2+jfz3CRNXedo3dQg7*7Tt$Z(_F1 z`=?jNt#-Do_ThA^6Ouq+&A73%0GuRd2{EWs$6Ft|U#oDj9wXD*3rxf6uSBN=#|Vo~ zf=bgQ+zHIPi7_#*+1aJHRmn}~i)6HGiwJ_}N1#3Ln_Q>h-9v-3qc)vU?_3eNkKRXG z!bmsRoiddpEE;akteTJT(|R!$^Llzg1g{fwy440(xX(_lKnCaRsQA9L zfgA_bNedS8LwkEUGx5EO7d+Sx+6lDiShX{w{d+^Q9jsGrkV`ytstq!{BwfS7$sOgC z?3n8oD4jIUWt>2B>IVujuI_9L=oWPVw^k=R!3^mTrsjoqP=RT@CRlf5*#x!}#~m<> z@~2~mk2?3~E%bgWy%k~cq5~9%kKhcOVx3Hj=zUxG5wIfl$X3$kay>YelViGsJC4{? z|H+sk3oS^MIy-;Qcz{NSspqhtot#IW7QcJrLlGO-2+x-g>268NcVqa@WTc3uC^W1o zu4gHA%)+%SdN?E;uO844A^F`<+}hB`{3C0VgYB%+(Vo@AFPBPOUK_4QRm6?pl;zQQ z&2;irf5flFmFWSVH z!85U|u+}iX(;m2}U9nLl#Z!U!WCsXTzQ1a@BWk%Myc4F!BdBSay*!_4Vi zWhFFY3JKg9IzC62_Ez0|C#36>kp4F8490hR|7DK(KGAmu=s9&Tz4cZ-Re)G$+&k3; zyN=WG!6)h|2I3Ml3fEn41Iisx58mGZ3uz}4=%yQ)Dw3}nY%{aAg&lxM9%?kv#c1}h zhgG`39qe`npmsYgR#Lio5fwnY8BqQ_31ZzZSsqn{U$3l9soY0Xdcbnrdfu?&P-p*jHwTbqmz;@K0RyfPYf%jf@JA9T_(dhvP zB0$1OS9Js|eU>%<0{ekc9Kj<2TA-g;LaGTBks6<1EDA;dh@e)zDoL>}!69iSx`nb5 zUQC}5mGz-_+Ehhh=gJ>&t_*BDXodVhH1b|(0Y1|cazM_9@8|oV$o$$?PfEAGhD^)B z4H~j%$30}3wDloXT%(G^vNhToDzDq+gXivbZKc6VF@0zH|LK@;^a$ENKNp1POT;TW zCIjM~I+uWz&m*vQ=@8$>e@LSq8H^Ur-C`!A!f7Qd>3w6 z5b{CL9X5j|H<(MDt6QhiRxfZ9(=?k!Q((l>{vU3~T_DE`lBO4`z&ZVl)(|=$sD+3bN8Afo{8P zb4-DMQnMdZ&))d}XA`)oM-uzA>8rIKKN>ABy9;Q&iyv0>{q>~m5L9AAck6#4pzD7b zvc(()H=*ig0X1cF?wX6KzaDy{AEX5vOMnHZyqd#IrX+IYyA@UKQ=0fKnBhxgWfJeV z1wC*P39VA9dG^B5XKQNbA=RC{26Cl^8H45(n6h?e8W8|q?*nz67nVC;&*8j5A@mlp zA+Il@zx6bTmA=&JCxQmdJdqyF$l1f>hZZCoq5#V%F(U$AkV9pFA);lC;Kx?f*)S~_ zJY86cX{N@MDAh|bGoWsK1D%8MdKJXZqd1J`?aV(F2^~C>Ca6BlI0YGA_JG?gn$JmA zrh96WYH)pzXLLpgQ^zY<03c9Mk=4_fiS$O-^*9WK_E4tw@V=3yC6R!2cVY@nMI%jV zf?dz5Arrx}onI+Is@bYLDpSIFiGE3m#U}kVRCrDYk1AGY@$$GWF{Qf49~fw75$rhx z{hYYNepVfd1YB6g5>MH^5A~xQNIF%usbJJ_^x)LMLNVZ9?z{7qAg7L*#4qlWelSd> z2$OiB{Lr9ol*h3;;vc)LJ~y%jF?n~zc=D~viuJHj?(8-!##eZzT0BVGw!{yvP2NIh z#vw+Sn)J+_8By@id3`*kzs$nv#URCA7ne|po9=07Wzl^yKiqqbS&eUbsq&Wl0gi57 znqsAJkCML*&rXU?J@|D6n6O+$;tT}@F)2#Da40j^2i}kMN+*EHikP_W_~OlUJD^zr zQ^gG$4hf>2Wq4i#q*0Bl#l5d`)-Xr%f@qqX+>165=Tf$DNmIv%D(Ju7TUA`6BC)VaE`C*P2_gv6)UAoss;GFkc z5X803Zcc_QAoLHX0a*CKIVhNyEFVtfmHpoyhGn!_7Q#eJj2#fc05Xc@fk+xuT^$G^j*eTZz*-$k~`g z(PGJ%=Cf}UU&Zjy7c+b`k}h)2L{!xCfD2&&j5>5?W+a)U;CcI@%u;AfhW60fmx_Hcev2daBoP2QtjxZY##Q} zAy~nqy(70>#UiDxEfrP_9(+y;#O~_0Grj3R2NBrKPV&qQ)|R&o1@)gsM0c6*bgcbB z#Mx;-HA^M5S0%A{m;1=T5#xCf!@nF!xwakBM$QChK!)qfRUk|6p?M6k!Wa)M9+Snv zc2!gcUMyD$*pz+v{quLXJtR?#XHasgE3CevagG0>DE)!gTMg1M_K)QfBsnVWvW#jV=6KkZ3zt zz^OV#9-a!vlTx-|lG6?YeR9s%YcnSnI$6BWz;;LU-?|j$_BV2Crdv!eY2gA1S?n`z z2YFI<#CFp*5~~ZO%`|r`Zaw(lPE3T;tQEmXuyYgbWFKKmgiuE!%!YvnY9VMty?+rW z%GbTPa*>*CMxuPpYZS$S_TB;dZ}z0XVF77w-62=pe^H=wL8(oB<%%fV@KOwsw#{gi zZm_s3xYx!YgB)!+-G`!{1$$fP$a*t+KfvgA2W(~H>-234z)?_s7BEW z2K%9nrFM*bba08GY2IRVrM}S(2)B)}QPoM_im-So7D+L!%vPo%z;6Y4D3`JnA<4Ok zFzFQ8*Q3@6fZi=>c8xruW-xC;teWi#GPxg!S#zx2 z-g;qKDkEl?Ig!t?tBc{Ly3o4Ut~Cc|6&4mOTe z+e7(|ZB~A!hP+LyE1pY{+^F{>C-Hix#>D)za_?!hR~m44~k3!ZyVUliJirO`MK0V6R-jn zc0@*p@U)wBj-R+JI#vbbM6S08$(KgK>TWUVLQ;CUu;hbtf&*QC@xt+Xad~>H z;-^p`*$#G%P7G7KGhPi%mDL`J1%rh^S5cLrkjnDdXDfqiw6RO8>2Zs`oubBu-kx*y z>7b*d^2YCvcP>3eC`V0We)rn%+gqF#;j9eW^w$En$`#37QT|M^$%R5MZj4#=2{9$! zGF=SVodCd{F5sYU_n~_M&-*lrri*0H=Io-DANQ;LAObT=!HQx!9LoYjgKCy+gN?%K za@Mj&T?vFdh%wh4bfL@WE_H!=G3T#l>BwNL<-~vat-2=GFww0|Stc>{c%CWdX?V&+ zA&Q2!4LL=F_tIYB+0}xa=GSi)0!2HSx+c}%+(n@x$|AP)e(^+H8j>&Otl0vSnKnih z+`EZ;qZrBQ+RzdJAjV>~2c|{x)1pt5{3BK@VCdpfb`y|Nuy}SY5B8L9OV=G; zRWMM5J1Aw@WJrt;CPut(!65D=4?=s~ z3n7#&p=%3(0-}3fF;^vmHbxQ*SA)(<$>*JfGnnBQ1vd?fA{qc7n6Qs%T{rR=fG>=0 zT?outB%`$t2GZ5tv&)152{voJ?I6u<(7rTuda2znQYCvJb#W}#Al4@%DX%J~Hi#$A z(H;!M3TX9EUs~9H2!%=TAV*;eq|baZ>pzGKB+P5ClKR((Q%8{?)r{dFL7=Ibw{iKv0Qo+)Lz6nR)c`|hagCUlP%`*M;$Nv zNMs4k2+}(-h6}=!*qay?;n^cbM)f^uFUmZSe-6kNlr0fO%rVP>pB%&*6{zn&O31

d42+@{7U@qq+K*+08}ks&d2 zPXDyd;g1d+DXwUPtTj#1*|?jYAadzwU*P`>qEPx9pqj~Q|MAey$Hc$vc zJh#6kRv1W8rm9EuwUE2btWAHJW0G_9y}0le<3V)vn|x!+BH3;X`w-MK%K6R;amglu zar8KjovY&;Os0tS$`hUB1!sph3-_bab|}f_kb-}p+D>U6luzconInTURtj1{#K_Dd ze}BGqLxriJ18+H~PBK+(3qPExEH5$nVaW$VWsRqZ3~HXssOWPJEM!^EU~{1ej3m60djQ@wlaFzsvkx{EW7I$Pv*9> zT%Oy`Uh_%VQP>Mh)Qup+5#H#bO{D9K{1k^6-G-qzTbsvFWwM^@guql(wsgD^z75gi zC=nW@(|A!?Mgt?$J#~(}^MP*-vF|ta3dRvs;Y}B;~L+LLS{<#*OBi7*aMZ=p)9#Q5@vtVJTbi9wYGwk~hysdg+?jsy1;7a{ibK8PwKHX- zl!WcZo9CySd>ZIH(yeX|YdPbK8^9%*U&4a3+S?I4=(acWWh&R{HV>&}lw$Qn8JDro zryTvD$TZIwYQak=+(KpVJxW2JqxvUr)`3VP^BL&QZ|27Yq|b`GZgAzYr*MK}=-)z2KJ=5EEDYFR`g}@R!QgRM7|3Su56=oSL?(_s zx{{hNSn*|;MuDwzee#Y)N3A`n1B_KNT)Op`9@TnxI4@h9&}BApD5|BXe)PtwA|ny1 ztibE5E0)_B(N~91ZG;kdLvULqJ=g8RfRh*j2$W1tSs?>0EVFeD4tdu6&>56dYkO2o z`Pg25E+d;!MuT-=1U*G69nAT`!pqm{5k# z^%#)RZxe$RW~?l6N1^mp-`R z#UYofucqit?@7cd4ervZ&aAZ&(Td|xRwEC1eC*ONFT|1EZpXFX#^Y=(7av(q_ST9rDv@Bqv-hU^VdkEir*L!Jv8h2FuBT4j|XgXR6S&e$cZoZ(5BEM039 zS~7Ar|Mm|2%yifd4R$Xj47v$TzlN1XPyN;pMp*`|7>=Id#i^%DL_AwaYC}-2)hXuY z^0XC7MvSO_pDowf#cAx%nx_=l9b_yLVVk0msD|`>h4qe`?R+>`VP-$I62{Pq%xgxh z{IxBM$i4}%=*QY8qi`fJ(zC(RM%77h(Ko8frHl?fnFx*W7f1MbxeR_j+s?si3@*e7p171S> zv%LyrL<#M8{`}6%J_6R`BzK7%r2*3gi|)z_Z)|j#{xO5FTu*$2N?9E796-&S;P)Zl zZ`&EEQb$6+otWyWt}w&uXQtP%`Hg_lwKj{q2 zA%)zRds`UKN+`IsSdz*MI~(cMC4a{X9#CyH#AL|UL0EYAulxcU&JpJuKv%X(;N4K8 z7oxy#ts`U$D#U-i(vuIbd++BjJ8cQ^GfXx143Ku_;uF3FJ18qq`vdW&N?#AuV8wu= zaj0hP<*((cbfi&zRcE*wiWrA&J#GUNAm(21?Ka`VMiEIHsZy1J@u;KAZ;(-RVl3~` zfIHb@WZ0o(Znyck0k}DfI*9n*LR4VwLr4-U1S>-B=Mvjgu*4#4t>@sFp!10xp18Cw z^i(3gcpM1}?|j40AqAIx$CNujc%Aakp2)9K731eyG2^#nWqvzVeMfKLyuZ-Pu1*)m z!It7@Au$@h=QRjYVTX6Orvh%W)Esh5g2~7E%7D&fQ59RQozF+c9L`JEa74_)ET~lz z7Y0^sKMpuBek+%Nc-zZ^=u7ANV0&Yt0_EEy?Xg=BVr~e!%HJvgil{!(O#Be+OmzYr z@M{rsmLs_~=_c!a}kaM0ln zfk2^hcx!b0#m|4-rN&A@+;@(%7+s-6sgtu2G@Vi$RDEHodWa)9J$=btWS^)@6xi26 z0TcU#8|IS#-ide&{j2jHKmTbLD{Fw`>lb+F85~>ZcOGlEf0xC+H>`6odKHYXmF|@k|A2Vw zqTr(+($Q7EE_auy+@8LD8y(wQ#`ew4_y1`-w=79g9!T${pF2)+2jBn3CXjGEI{7TR zdgh2xduYH$dX5yO$Qv@nS0!Rm0D z230IpI7!c%O;i&7{W*onzy-BJ4e7YU7r(vO;08{vR*|kP6Rt(TSPO=(y@hHwqfpK9 zRIX@fZ|ug3fZ){-i#ri>XL`CQ!t`4sYVanFkNg}K0ushrf_||P_elNLJIr15 zKDYB|{6JyLKDHr^b3Ni$=|g{&tbZ$8f*8v}4V6>6VAZW$5`Tv{BK!^+?0yR@0#3#~ zkn_)m2Pi&sxji<3xwh@iA=o=3ABh2YE{3K!uUQa&==--KgsXk_NyS?;omBimSWK4- zrCXy#V{!QIiV{#Hv{DYUB*4J>zLi z!`4=wY3|>aQvrDtVRB*ze9_XySofhUju@oJZ7r4a*qRg@jg+WeZ`$62G`u{XnU4HR^pTS6Lwe?3A@CGWyw;QWp&?g|WzBE~P2x8k)f83Va+I4`N$RV% zOTJJ|q6_(wqh0l67<&iH=nin#W6k1y%~M@DnlDwjR1|~7o5d0ygilI-)ksp+g-w3F zO01%iDU)WberV}-Eu@IGjW|{ae-yQYtn#(cwE%@2%4F5rGigOkS!jrU)gT5Sk3R%F zBU>&Ks@d}JQho|LSu$q`rPzqh{20oaZ$_!cwC#;jEYM(u2OCF;TUT`L>JIp5w|_@_|B0&JSO+{QwYrF5B5w0L62`KL81X-{g7-IA$=_^HiYt+(< zjnaD^|8Cne#=ouR^VW$^DxY(%{$L`D=P5ttjeIZwmtzc5XOy^ZW_kRGm2rzh$i_r% z%9AHIuqMa1=@uPCSQAQ?_G9Tt$nA|DtL?^n;r5<|04Zv@1vd2SLRwtEURW-M zM3&34z3^u0rhKBe`?U%-&r;6BrJT*bE9{XI8eNeg*Inr<>! ze_@SRV|1#->o`V|S#YLr`8`Ox%9P+x zvb(UPR+*)g`HONIR=3ze7fWPDsD3L{!A5}cRJIILQvR4=AM&rBg3zIjLM6*Fhz*{`_sT1nL()-vr>^GYCn6UsF`F4(r$EA{xryEG73Ig2@(YB zpG@BCTPpA5IiSmgqvn7E%1SX%0oty_gQ;MPFj;hlA_ex%4Bc6fIkV#x(@P2oF> zZpjotHd}`H=xP)YhTn;5dNE$lX1PN#OWzIg&|fVfa$=T2+u&-0wU_=|gac{n$6^BNz?yIjnWJspb~!a|LoK`JCO)Qg2+ zu3<<+Vim3wU$}ewiVE<_y!A0NuZ>sh7624???bIg-A(= zZKIuza6t0u2VK~DQXsJmU!7z+L)^LW))2A|N7f)|Hk*!OF62$< z5(b)vig0Fp=Y`uN(-ox2rF?}gIc!HIV7@fGvTkTzvS^rd)3(vRJhbg3=nth{4Ej%b z+KZUgsL73>Zxm&0sD9C0CF=!8`Plof>iLkfbQHv%U$b|PnD#6+YTo2ew#9s}`xcnc>eP0F&tZ&%4CzH!)AD^5x1UJJaI*e&A>uzgOrq;cTWNoL~i@ zE6w}-#7PGmg9&UABZI|e|0-%Pq;)wj_5|-re}kT(Aq=hZt7Cp_SA`9V8Q(@i68b|y zS*qSo1^I|v?uX{`9q#-_)O*kGW?D2tU?>+~TRF4Lt&54_y^^ zK(iimy@&EN97N~j{Uo^p@8|Ij7PIkY{p^clam2XAp}F1uI8JpTMfhGo1Y%)b5C=TsH26u`yokB8i9kczIqy6{SIfqdJXnCnsrz zwmVnzl-qbws1@=XcMmJN81~{k#ARuh;kIlRo&zhsjO#Z5=kxu*rPo^cp+Qbow_W1P z*h~&oqZSC=?!PAQO2)60aXTruM&fUt>0xxZX9+?usOUkE7L0c0FTm-+XUYuUo4=W8 z*X#aw`T`?}z+n8l$EZwgaN)AqgyQv#J6IT_LZex`iWlt~NoQgfAt3|$^ni;g)`3T6 z_x8->T9XUtg0sX70}D`+6yLR1a*~mP77PNsT~woH#U@O*XO%=2vnx=~;(*O@Dwes% zD|%i!9C~BUXdujjk8_wB=G4Nn%hOaFAMe!$HwIA>H?Yb-ZLEh%{O`VNb{vT)h8ARCfssQi?oF+>W2o-SFYo&3ubFB4!OT|m$uYZ zoH|LCO*ci^?n*`dUJXq)EAkUroz0hINE$_~Uk0$=K)fO`dg;sR5FD4clW~cz*kB4v zlbv);PqdAwQw+7~7pUs-?i&y0SBc3c4m8PzBiY{2S6~8T(O6QO(v$!fIY@i#thitgR?V&eb(- z)2T>~j&o^uejDdllDAx8L0cUQ z!^z&RzBM`izMS(HU~$_JJ9=C9PP(|+mxv%N|R=m|X&jn9jRJLVl~X9B<6GvOZy#adJ&^X}NfoL%O@s~-v|q&iL4bqNd7vwEzovB4(ei!Di7#IMw>x?ExvHO`$W zQo-j*<-)RJFPf}TqM?4U8852cNJy>GZWQrvOuD7Z2N>EiFq=QMF-3?B zd(q?6{2u6;3hAmYIY^u7_tf*$o~J=oa`Lr*xyVHc&79guGcC(5TqbR_EAl15Xl-Iq zfsHSgR!ELJD@F|?t6J0Q6a=`WErom1QO|SevPg}cwY(-uf_VCxU8rWpQ1}s=v{{g5 z&B`BwF=wi#&jzL7sGcK9P$uR9nh_~r=~Vj>R?7bs|FDSx^E?0>L2bfud$0f42n$sm zZGvUC|I!HA6rGWfWy`)dBHih9^E|%(OOp%qvmIEAJp0_hrqh}p$G8-^J*q~&3wAp4 zriNhb#69q>$v3ySW1XUIFQ>BoM`m@9KtFH-DGaDk_Cu8yJA!@Boyd!fGFvu z8-;$y2T!jjxS0ynWuwGClshrlH`SzWCWQ#8qDoUrH!)DX4(z2|1yKn%`o9otn138O zh}y$)Vbu^fsU`|lp>nS3U`R&xp732egGl#75DEi>>HB{#{@q}%y9U|@zZ}rJJ|G~g zfBR>}*Yj}u-wmFg`Tzf;zLE%N{rdUDeJj!>Qu@1}*hpu1rO zGqQTz?^37;{%$(X&vOq@{ds>w2(`OCLDfYFqPt6I!KxrK&?c|$AOWtMlmdf|+X;%# z_4+aZ`-8kPyv2g|TigDVYC{meKRPEw@pq~_Sygk`r_$~&Wkm454egvfc~6gH>MV3W z&gKQ-pSE^R*Yd0p#IT3@u@th%C3ZzAfRi~slNrbj9^2r`hmLg-Y0s2k;I7A{%vE&3dwn&k$5S2Q5-aOrXoUfZwpXu28V1s_h+H6%-Q z1b?sU-|II7>P00IizlH_9dBw>xM&#mmHsPGVncjBG%X+jjHQRLnNi4JpbyYPl>R!Z24G)WKy8bk2nk3 zYPi14RFLdlPee;;a^=oz=fZLddLacs+`%2Pg)A4_mBgxjptO2a(dKoX;U*e zzQCpsQ|eCcR*2DyzAoX?<)6nU6gJyE~7&1dL}_a z)H#zl=8IS>A=k8ut9#>dC@5!P@a+>&W`86?RMB0?K)jOk!d)3lVf2RxDKS3!q~Iwj zsA?t;tI(P2AC{or661iB;Wtz_3KL@~(sd)H4$GXW3ESjl0gBsXe5>FM*oBbd=jK?5 zgDRO*Lb<#&0gi&|JH&;;z?u{sZ<#ZUvwDQ)RWw$df=zBV-`GKEunD;`Lqa5!P>!Cm z*0jAu>1u!VR#<@Jbs4fWN0XB=6_)Ze>U~=wAxXB_4Tl91CrcLPV&}?3@*mT%2?(%x z;u?f5A@Z^j{vOn?k%H-40H4}r{HK2b0b9R-)_KZ%BZ=yiLV!(dyyxsdma8_2{XsaR zResRK@Ine{(%25tfEcsnk_>%hH^h@bYn1rkMArG;YG(}fq{^SnbAJIN{$QDf!3}0@ zXGN5D<_7P-^^Py`9&b|Ron563ehzrQ(9pg1HG+f#U^DHd>F=d_SC79JN7Vz%az_gC zwHl8841=G8MEx)}G@Jl1CHq`%G*xrwc`>!W2PIYKAL*Cv@0q^Zd!OmRxHtb!bJ*Am zf#P_i^~1*x#Nu>^sNz8zz}xLHX2uBG9>gyDc6$ckTgUtU%oFv!9gZqgBZ%U$zgHk~ zMfUeTOh4^+C6J(*!c7guqXuJ}T?7SY(kNb%O@9wr&?Lefp5Csg(&#+7eeOY5=ieJX zsj}eMROleJ8Yj(xL)-P+;LKil4#F&y<~k*(+*I_7&QYD+bDV_$a zqaBn>y(yLpz-^6`;Jm3tO=tDKA`~Ig@#M`Z4cKMYz$e@#OqIC_=9R-squ}ob?8qlg zMaO%o!Tl)U;4+&we(BsFkOjGQv;9Silu4B5+I2qRCD*ivBi_vo6OAUDI4*Eo{b zJH+3+`BmrNnO1j_j0~U^p9d=cJ@RwPdJail3yr~)IqB+WQ-#0~P$)@QR|dT3r5?{^v!jnd`^&0Xb%(<0AaeP^~oOhAFQu(SY!Tag#jLfPfPIw zN_c>da@1Ij1^z&;!NnuX=+2t{B@OOFevVGa8Ws8^Pmy=*S$C*}UXVcM1Ksjd7`!9+ zGy7Ui1HdnCfhJzgnxKhUGSLP2(#Z(XT01K2-$kXgpFI*G50AMoT6s3_2#o!gHVr`J{&iO8XKCH<=_1 z%r`avY);?*=OV@rk4igKum8|!yG<`WK*B}&Zw`m@g6u8-+&@9@Z*GHELaAXxX-PJ? zwy86+uug_KB0hCX!h(%Lv~+eiwc#0XX5h!MD>@Qsetb|?bS**9qD@9prLx;^GSvb@ zVHUyo&#{6JJ_68tNcRMvbrC=BWjzS8Wt#_-)OZkeTBou@8gw!dWNCB#h^v0O%`-pp)ctqyt!WY^!=`;*x;tQ8>ql zxFChZvceFrm_6C-EgP}QX&LapAewmfaH#R&F?uxFy@o-+tr=7M z3yYXyMMTw{K?a-3IJeN{wjvNyS*!fv)|oq?EY6V22}M0_4uJOwcV3SC+!-Agsuj+8 z+bg4gv#cR>SjUD;xBmbd?R~2*K=Dr*5{qr=p2ca922{D_O_NYN7RdQfwfs{fD$M#1 zlPpm#TPXtHw}sucbGWQhZhaTpSh%BeaFla zNIsmihAkvIc=lU&R-5zJt}L6g`qiNvZ%;5NRdsyS z7g>qVqj@toYrAl-zXzg_@Al+%)A2=D4fQ~E_q!N+h>H61%7{ zIq|Ak^gLKW=DL3~V}bkFZ`(4NqntB$^(`k)eOznhICl|A1+d6+&v2&^*h!s zac*{bPb~ydt%(6+wWnMJ2Q)uB2<)MIKH?~+OV78xfxrmI&BO;A{sOJdr-DC{_WqLS z!|sVXM_17z*f3?~33;dCm!J9A&*19a=N^@_U}iY~`ZHl@Ls?V=7MsuFY&G)$H-53g z%*KtL{ls@G-(K&LhNkJ683!rD^RpRAS{4>_Z79cx2Fqw0Ew(fa3Qdl%=T#CE7sKv0C#OwmA3Z{Z#NMr%f^<8=*W^Ia;ozh}hTA%I~GWxo_4EByN7 zeLH>RJs>4E8u7)vTR0A68iIO2TYc8R`O{^CgiF-uI|xiu(Bl%j{!b z+T)d&aJcvls}&|4o(KxtYbq?oAMGI_drjmBuLUJp)1*3oYd9B0^%^vC|zz*3;g9D=c)YZdV(7-s>@? zPB-s;?4&R_jkC{l4swtgT3!rJA>KOJU{au?~r>{rK>~d z>t6Ah``4c-(G|<5ZIztoOwVSP5oW%S5UtQ<&J0Y#o>>Qc+Lk|#Xiir@Gv`vt@Y_40 zzCX@Uq=Pg*`|KF#`aE4oVRBm@|D%Ox01nfT8>wFz`B;h1KGy~2-8T{dLO{L0N@G6z zP!=~zGnO3bee2#Q=zG;?y5UL=AJZ`l(EV~9PN+tCcJEH+dy(ea=+s)5%Qb2Yuorv8 zx?U~^|FoyQ0!z!Z19`2MaQ4FEf4`j<0Nd~D!@M)oZ7cUL4qe#0>-z|x+;om=e%8l7 zfhgdrcTz5_p|ng08bQ8p0>Ex?#d(AWnife#_3^FsiIDDk5k@OUmjY$9+k0tSE6gq$ zm!H6I;j~8V1ty)3PH(bsXEQ_ z5!n6R=_E=!t9aHYlKThYqb4hel@*m$nddwfn(WQlwb;~SlVvHW_C0-K!<-(+x=l#@ zp-uVurFxOTpQ3WObX95dRG#XR*(2y0oxqrAZk?v@C#gDxs33xWE`es(SQ|Dpol+0K zWX6ylxnp_f2PYv=A{3`gI2*ZRLqu=Ji*{uqdYfBkNP@C0V(q8tD=$7)a1$!AAI`<^ zir57=Gm_()#A$;H1|}2H2wgC$5z|^WTA=gq(Rc^`0x~jEtucNt`rTZO`{yrW97Eo( zRE$y!X&E9lh{MRjz|fST8g~K`GZ05v$W9$XR8a-Ej;_u>Jo(Is5^hr94XR9@d=vI0 zAcP{GEu&=u_9gef;j@|B9Z5|7y+I+x-z>8ruVJ!X6{;hh^k_+C2qJA~?m9-`V0&t~ zX}|bg)AI?MYsd`w_@Sps3d)&Y0-PN6EtyAXVo96)Psy|E-f-@PprL9|d zwnPgHAn(lkV+@j)n|zVT3TV7@BnLJxb!%Wwcxm}aSQJdl^R3?a;F*v&M`i@IYYJN& zS(!TXqLSw{i(kbtZ$91EbKXl<5~|UTjJ{ZZhUsJ+Nneaf>vB4MtFm2R9$LS2Cw-)A zn8pA5V@E`a|FBGqt-?l6`5cwj-PL_BO6c=;H!HY_d001bx-{BVKS;R#xRHSgLZ$k` z+t+&iX_GHSa*7&SHfhsSzRthTzcnH@{@MVJ!TGmJD&nfaQ&LURrCRXytJ3MvoS+q}6`?L6ciRP|6>sC`ys5kOZ^|4}bS- z)cKfSv;ChMe^BT==MM<~B_&Wuii1jZF*UBoR#KSfLGyI8Q}>Vi@joOGVbA_Ne2PqW zWvY>TA|?Y_L%7=21>x4ge>^mfFR9O+gXyS>vM?#fX>euPnJ~r|Ta!cc1o(l=G2|}+ z-`M}eCxSwS`o&+0PhJuk`o))M_hAlryB2j~}BjTeN(XdFvjKp3T1YH%jg z9^VcNbEl;FS!(idn;h@mjJ*@fgAHM1lwU>i3>-BSk1l5+o&mI2JXqBJTOg@XZ2t+< zXK=$4oX761uH%x*LCdnvVo^Yl+)f(_Os4xFHnO($6B#GxJnKvU9vB32w)0q>qq@!OGAg zXsJHS3d76mobX_`|*HGe6dUptX=9C8K zYdrq1*fJ7xh4t0!%sg7S9~)V4%3rOZpn3xeDo^d33Bra636KmNvpx;hfYal85TB&% zsd!=;uJy2V{b0qnzwIEfnfH%i-R&MGLIU~%Z3bDwI=m!=G57SKTDU!zp>87Iiw9oP zau+r>=@Mnu_9iEEAPI5Ldtwy=_4q9Q!NQHT+z_vBwnSAMNqr+jzTspw&>PQi+p4Dt z3JT-u|Hay?zSnUbq8O`{lfS@$o`IGazcnMyxqmG@HYyxUyLTpiv9s7nY!9@7n~dxa zocweLNC)Qs^Jy_(uSoL1n_Z5Kj(5WJ=^TIO2BP3#B8um7FMKJi+J!jdHDo_D5B#GK zh?b0D0)JeSLahl2=RM9S1Xqn1ff>J?slF0|pkDXlw3!8@U9)VIwl4Geq3iuXGOjHe4K^U65o2l` z%Mml0f)rO=$X5QfQsfkwwpwt48-~WynLkp3QkM?m9+6a@Vt(jLbTQp12&C{6mb9qu z@PSDxXY8Ue+N<_T|nlILtpY#{7Tguc2y!058|O@$ss<;f-xbA`DXAH_%5Dw=tF7`JBu!|{~J(- z1hrU3`1UX(k?zvOZ6o}h4fr4xiO+sDy{)+*aiCwSn_g0i7(-gyk<`qa{N&w!2m(zX zcdHJ6Q90n;I!*|;pbm6tLvEh4o~eN3gw-(eM!m1c397Adp&3Xm(k?tjvRyAFQC#h! zH+>X+Uc%NCG7^b{9|ED@ol`xqn{fdhIWLRE4fcrzz7nS5V;mgzL~wy=+vf|DZda3; z#a=i&yTIKoDb~nMwG-G~Pk6NLTF= zFyo#@lg(hDAuW-zQG5#L`}P|7(uXVAoq|G9KNqJL zAr>I`rO0_0$Nb=c!4%h0VUik>`1s@Z&x&Zxz(W}CGOg0!tc5Y+%B>x z*lOzx1!$cY$vjyR0C58*2uV>ObJNPiZ-JO(zFhT6v$g*z>SF@C675fq8dt>f{_D?y z1Z5s>0Y16G>KhB_q>CVRh1KA`il*lngt8*bODkuteF+5Sb_qW0X=xQRUkd?-!WAFrFvi~9UjZ4t@0_VF z1W8|npMLPtj=c6ZVgd1OK3;U7%|DvLOOpKgFT9J8qhFc~i$3)mGGuDwba9f(jRncU z*^}~o>soXe4s?cjth%))60d8LShfdH{^fw>^OX=~kLUg0jy|vQfFq0K_G*cClA}_i z8oWntn6+9)ghb5vcu}ANE!w!4P}UdW5@uzL<6jVo8FP+is(86nKjlO;0~zc~_?S}6 zIWi!tp7*J7~q66A{mlMjr(2+$wA;gKd!T^__3%tmqK7fpaxD8JqXU%R_ z{^eF1AjCQcYInBWzRD&z5zP3aRE7I`{+J|8fkF8MXTMN~NK4#ohkjmMm#4bXWY}!c z(|~8V=uOD-)V{rR@!OXYxA@29YWq}*#OgvV9#Lr0!jn2y8;>KaypzDpi`ep#W5Ew> z3_VIqEn12)!K*Fx82|hz9Kk-bC&R>|jUU^4L0ShjNkfpv`hi$0MC3P34Y?S&QO#m1 zx>Bj=MUnfWlQY-@vq%u4q*>UHJOL+rl%rBxokqx~7kO|kDuw|x0?xv~qm{DuXOf%> zHMTE%`#zE@m*T8c52Nxb9WxU#>b8UgK9vS*{Z=?-f9~H3qYhyMAKJ=rc?0DkYFsJmzv=%l_gMt$M9tJU#M`5 z_YZqm5&NhGO*0Bat$=D!f{j;HqzB=O0)-sD-M+un!C=2=U2ho zE>~*He=zQZ(hnxFUt!e8bXhZ zCPDq>J2Q)bt{pgGkxjoll=)=AseGSeHFGbk%R~TE(WTDQ#r%fRx^ zH_glyALfsP7Mstt3vb`6FzXUhwbw^Dj+qZBDZgllFA;C)vO9}|*q#a8taqTkGw5A( z^hO6=jIxii;X;6@vFZCKzf_m_^btZC-KSoZTgzptRX_&nigVqz3MPt=y=r$ZL~Ac>B;ysswQU8HeU}IewQt7AsjPL`6<>PsH(xBZRi2eMm>W`j zrm=ssi+qoIjV;ymnq;geXZCdyXn{tHzv?mqZ}Zkof(YfKKLQ;dkL&?ZU_aUp zUCJMPV1YQ5w@3(zIXp@`vExd6)HYgW&6}NI@2wM$=ZEY~8$Cw+FI(BA&z=9IiOrAb zK%@QSA>*eCi$}|be33`X=3Iu4mdzxbKF241sw07UJi-J(rrf2vz@ui93U&F>4eJT_ zzz@zj)}^_IRv>spYmBIy7>Ucru(YCuYhvq?(b)dO)lmqt>#=#HYsj{LSynCbmwtq6 zA}Q5*I=1c3SFbkAK{ur^q=XwV$P## zL*3r$BoWTpJ^A1x#Vs+1`Z69~xO>%#7QV?`Hnn%VR;2WeU3x3*kU z$DudohsQ53Rj7~R!Q|r+giuH%-ql7ZghqM{>_F3hZC@XyqPLLt$ zN>;O$@bwEl46!fxMDA)iPAM~5$E}GStZAE)I|F^I%VAoL*+u+U6SBij+n`I$h4Sy? zHbs?-cOzzeFHve&Zz{9Q=oK@*ofdw1XUago(9~&DSAmo1n3F!9{iqqEij9~Rl@qO8 zoZ(>}CS52_F8+@73kMrF^vFoWfRj&3Y1~k@FQgo>3heL5_zVpmXgY?I(K4epZb*vq ziZBJ-WChNn=)g`L7p_vpq-GDYU29c8bAd}_SXVV%_@9U;+KLTf#&AVqzTon@VqCvr zFjXq;aP{{Cxl~asfhp}@(jr4+XjaS-7?f7T(HN8ljZN6apXaG*fdsP_xUri7vd>Ny z5r|LchU}clMK6_xMjwzw0`|oll!!PKZpYIX!QWU1}`=$KH z>V?FQZlu?8OYXRwyfegOFz$x9W0);pqAET@Cc+m*!+he#xV;L~wFIJm+N`55P6e2$ zVh3~O&t|t7_P>m&%dL$zpU8=FM_Er>%RI`B3dlFb1PL?GxiD>{UcG9v(1%*-Hd6F$ zl6!0Z-E1|BB;U=s#DRFXVrp&NwUc-Z+#Ny{xi7}`)XYf-|3wn3ARy^6hkS~E^#lVwR&(AecdtZqYD z%=NY>BIQXErTxYUl*C$#%hptJZ~WoCLhu>5ubv7q)yyd|V}?@`?qZzhti$a5ea!Y! z_q;fSBUA2L{VZN&8ZR7|X~E#VbNIoYmu@~`5OTH;Yeu{Q`ZL9$!z9H%E^gv#6(^V( z7p^cfp29k}O33R%ka5S<{#*zCJlaOBz~v?Om)kgCwz#dTjHa6-Zlv$mFmn}UJgw3F z?J2#Myw$YzOp770&TQtcxlgj9^9z&o4@DSE3V?)ZN+HNsxC|Y6!jr9QSoPK=t&SI) z#;?V|FI_OLtA4TW*f4tl(2akWki`CTmo`emr35OPvT$o-?ggKb?Z@f=nIk-VX%N9b z-ha$Q-zb~>FA2gOv4N#EF4(K9;HgnE{KtjAQ_XtL#jj0jg<91bSBuwwYeK7M{;}3b zrLwAtb2R2mRrXnW^s-UD>~tW=rV+hdNH*}b5p5vGpHi^);aigeYy$IdsbV!PH}DX# z(v65nSx)65W! zHc$VbR-J!qp!oZx5CHP`d;B(ZK5*Bi^v@f)zWJc7WK=iPc&SDo*yqENHazw}HbRz( z39*S8!@aUm_8KkP(nfGIxpChb75JSJ?-s8=ZsMhJJshF3;J5SLeKN1OLKwkqXX@>Gs9K5Kc4TJC>{Svnp)Q zTLX`J+X66av~J!dGaxiV_uFlS2EIVKDNvcbzOzO;O!ftXBeY+ z+}ngq2S(Z@J8=`3VGN?smey~M)QAxev{;-3ixE8jjq86#5h6P34}%gWgXGykVpLo7 z3P*?PFSD0z@>@o6S&d!>Dt?7MDp#9C-%aV9tc?cUjfYD|6D~!LypSN5`87GKdFABl zXyH9=L&JG8CfdGT^|=I8k4ehGeqf5oqoO`7R*Mz`lHdvN#mum|d4`?5)$K$@AWkDg zF_0D*tYQp*qzCo$u~?E7O(`aE_j-T^QVfx22)q6^>kA&DVZLmMVv)}}_>pn^x zT7^<6BDR#e4maAgO6Nqd^O7X;*1>oL2;MWnyblW2+JT9X2Vt3cq(CIH<-HVzdJG znUmHUVCd#@Cxkwlxf(PAy>+e$Pt4Xm-H?8X3hq0J%aVsmIdIn(a>&U{EH@rd=FaE_ z0upGu9QBqk7`;0R`nO51w5PqehB_qM1A zQ7+udkBOLiEEiuSgGZJt+_24miQ8Yoxcg@Q{=)D5;xxTzmF}5MZzfFkQC0-wN2lYN zDy{M4a!~yh1m|Re9ds2QTuRI~;|B1MztibzWg4*AxKMfj&fx3RW>VKcEmLsM7xE>Rz@pQ5k}8hDPxhZu?mrRWQt}_^wL?j`SM^q zZ`}SqxnNP_fYUdO@VHY1d}0(h7?M+8z)@{JW7ms_%Glo< z{m)|MccUf}W|?o!s!`rLA(XMpbVJuovf=zQb7*p$M|E(T>4JSn7_H|I;Q*zD;JkSljYn8vV~wWc!K; zE<~k(5HxrMYkyZM|3kPpp<*y8+1eKI2?<(;{7*Kt=XdKbWZfg(+y4Q6d|EW6RXkn3 zf~vkG4Lp(%0saNoeN=$Ecu>ZU{!WxVsgo|GjRy~@XN?L=Eu)(7uNCwBve0Huoj!39 zpV+49(H+m%L+|H>dz`eq%R=ivJVWY zZk83XeGx7*I)v-w8uWGsRy`qxhG-;+tHZ%E`EM48p7-yJPmA9;yS@03!x#jV_kf9_ zJTphPlRjV8Y}a0O5>dA8S|)};qh)4G8&2Y#d*y^+0Ohy^1k~hd;Z)juz=M?Yvd|{I z4rPn&Z7hn;1V?6K5cyb%Yy{1EU_K(6c>P?#RKq2dq4%xh0!k9Q+L^ty%mk<2`n{7v z!MPDmyT<~>VNTcm+n@OeteS1SyZ)0xA*#yNbF4)U_nSqkK=GDP>9~9R$`wkz?q1FE z>0_T7cbC$bJPJpj?P6~K0iJD?i0g%bg2iZ-+}y88r4)Xvt*HAH4wOP+X zbQ7<5`ZNeuY}VFb+iv%ROFp><@5hd_e0p9e&5CriJ}HPs*hiL5vbYD}?L`ssPI)fh zt=9_Qt`;%6PH%0N`S9OsB=x&zFVsi(DOwt|+^ZvW!BMfgoEy|M8{4tZ##&HSyKjI# z)peV1lrhyg{j6L?e8n@aB!`~vrm7ksd1)ZmZQ9*UlwkX1P?cbt6}=`CutvF??an#x6E5-%SRX1l=p% z3qFEe%sS-d$ru4s`4}&%#5|6dCsV53@yTWpH7Lf(sq$-BoMR;iy^@OgzZ7hF!tN3o zwrM2tpQ4mbpP&=Ex(g|Get>zNd7hH@kx3`_7nK5;;Z-}8a9Z+^+)YFrIo+L20&=yC z`hGAYZn%>u=cc`MEDBZ7x|U2~{)%}2UObPcC4N-gA2~^AT+pJ3`{i{Tuamuezhp)( zA2*#|-IGO%Suy9W{tUbF50G=c{fZ7a$FQ4 ztr&PuNBIw)eNFqT5cOEPKd6*^!ogjq(u}PT<=%cx@QzZbU*=F6VxFu7B@W$qMhCpD zQp%T4y%bOiZH%VeA#8bnWvKryd!3x#R@!qm!ssla9NHb7HdM{J@{Al3W{Lq%SCzw> z+Lvu4?bUwzc1yvAR=}bqRJJT^!a{~rIeDhWPL7=+Hg}Tnyj%+|Ybl12RUE)e zHeUlxq0w<;2v-qUNY2IhJ`w|ypTuu0MwV0U%E8W(OJOW486AI8zOp>$B3NhcpXF*_ zx4};J&@LfGnb!03?#64#*o+%t4p_~6PyAWpU6;yb^9`xD`fX}lBTO1iUb;U`NE&2G zD)CEJ_!(GL@ZyW2wM!V8wSJh1hj^MA(|1`HF+k|H$gmi*Ra6*K&B~nvO7i6f`EHlA zjQfd|-+CbRz_@=ZUfe85>U>LOWI^G8A>E~X5jAGXv(FgHjv`8YKeAw=+Y$*FbiUO1 zn&rj(NHaV-u;S$sEE(fg^bnVw;CtpJtes2sEdnlV)*aU&fQQ}<&wF#c^?;d*&rP^d zF2Ur6LGmd*{1WUTmmKKa(G-{IJV5K+h(C{+GPA8DS~O0zk`DRU`+12Ob)0L3qWt}m zmbz-6#4U8yMdgTG5X+p}#iJE)Aj58_qFQE77mtgzto-s8Fwcr=CNS^h90E@W3ULXu zb`IW|ZL$jSd&bN@^^#h()P3L_Qw9~L1%=6V zZdJ>|)T8*lr)>FO80Vc?KV~>HQzVDkEXrRtCXa%JDiklYSaV(cLX>={36H#)i7!zR zff}m{gsY|xc&qi0NWhdE!ZSJ7ApA;Uu_C7=yn?9?PUqE>K(CVbC|&GF&-&+4gio1T zk&I`lWko1^Ers|YE6Bdo$wnxjx)0(LO`5vK^Og|qf;HxODN)r$DN}!5K;(Gv=UNHs z#a%CBs5cn}uS5i#iwlzyJy3kcQVd|GQWo=5L9LGZ=lJT>uW+{Csh!b?YYvYlb=PB<>r_+>Vozt`}`ZFk=dZ_Lb5fmuf2k}1Z>jWV#KHAE0lckX)Yjm_MRkcsd ztFA}A0nY#~4w@k{)*{B=1!F`ZtEt7P+0{3Va-umD1O~du-N&>^V!=Y2l6NZQeBy@H zq4O5=p!%Gl$_~vW7NXUWs{v_uC_0ix%>sHc4Q^~->PS&_*e@bT@epPbJ&ILo^+IY6 zEsgfV1=)dsN+I`+0L6N9cCUI~CJ}H;LT0_Op28!2!M0XJv$ALxaWYn*RGs3(`1c%@ z@UP1vcRYLMCE24n;v7NPmXWPO728+J&=7VI`2aasGx|{1N8%q%P=?(%A~`Af@00R% zDvg{iT3)QFN10YzQ{mVDpX44;TtEMw`3tm%Nb@koOU>=gA_4-U;)m*-Yz>IPCicto zfWKQ*wX@Cl=WkgzX!-?WwNp0wFZz3>23_3Tjh&+q=Rh&$eYiZ9_eUul9GPJNlNp78p@wC z3O}xjjmz*uM8l5OK2a!>p}(GFHOUb8co3!!Y?zSxNdT%>KFF9nf(%M*>={9`Gw&(1#kpV*L_r1&gF(1m8k*^knJoL zM0L6-x$5sVJw%h%b&%*%_~0@`4{{HRn{h;zbnjR@Wk`BOU$;omI7TAqIp1DtR+bVK zrROCmxVoxstAc2;c)*e^S-fb?>OHG0t}948XqM152c)VrR6LyTg%F$IwG&K=GawR^ zU}94b6P@4XjIa7pdO#tF5b1g8J)@8kJ*KJ|3k|}H+6k#EIu940MYz6Q z!voEF<3lk&k1U1nz4g8vM!L6K1USN_Jzc0=Fum!7zmvP*Cs~l8EGeUTfO1pw&Mw3J zK+R>*T{lv)T!_!KSth`g#N3-N^q#P^Z9IHFk#37Lven3*`$fbZm)M03j7nk*OAhry ziqpKak7%O9aHhP(&{<`SFh%2{t)$ja);$vLz%%ZK${iuz;TEXmrBBoz2!SAeCn9(B zmRep6@AxRe6(18lsYLb>j8T}l!>6Gj2eD&KE8Kdc=Lq7-!a9bAoO#~W93dHfS0 z8ZMSC9=XDf2uym^H(yvQ6cxv=G2aK3MmIs3ge(>15*g{pnRj!sMX<6aO>SAcNI2P& zDU1NHMO!j6^NlZ6kSR*uv=lYOB=$#O~Q)$hO+0FCrBX4IjFnehwo}!z=x9teXL4E^1|wKJjZ`$c(Fz*VazKzDqK?TFAaY zywCDVzjwFKdihBn^hQ+v7wNYw(~v5!JqH030h`k ze`ZOPRhAt710$ecl`!_TMRe$x?J(mvCH;$ppe-syHCPT}3z7~zk!;&s38cL74^;&L z6>5rBXto8mk4?*Q)st1@+E<@=wfs{f(kc0Wc<+?NMY8j~SbgavCkGJN>Ms|~2$iQk zH?n$^Hs*&~CS&7=r-y1n!`)wCKXGuU)23h{>dyaWY`l45sHpa#>KX4zK|>kt7i%=p zuIKJwh!rMp$GwH~_YK#7lllA}(TAJ`oznHnQ_%dJA$g}~UKQ#E#&fqOYksUyt-hfI z={g3)+%;#{DWd|xP~H?c<4kGY&#hRFZpMDjfcz1EIbUWkwO2a7-+1B=Naam_luvE>xR*r%0Qg>}sdI(-q9eL+D8oHsxl!52Ls*oq3y8JShB&_+;-hYU zr*~3HSA^Ggre|a&N_#UHga}*YR}@!WpRo=k8`^z(I|vtyNE-LYuGgSXmB#*<8EV#- zB}7_MX)pDoy!jc)d@hO9?shfNUY+)0PNl#OWXI{f*^{7edRB7+>WTC$=Zj?5pFw-g z0;;opFV7@BVRifA6=*opv%mcifye!==#WcoC$cZ*^S^iX-{_Ag(U}v?BlFgst*pKG z6Zq-;3|ULqxxI3)xhc?p*sJ$f@Ahu-D#UTIIvy`NP10_h+WR;<=0gAE$~(Vg+%qYZ z+G#57?P^RlczCT%sTXM~?Ik?M1q0hY=;{aom&Gne#Ye7r?pBCDB4YE z&*IIv2;$yZ@_cjn`3F5TJqdV1f1I=Vi1VAqy}^hm;r)8Fb;TY(b^`M5oL1H6TX_3_ z(1FcB_-gcl+T%ddnv3n}W4W*gLE(bpcD3-AA3)J*+Vi5EtT!!xymJMzksY&d5ot3W zUb`G}{AkA^B)$|x3|^lL#2Jl z*F@V-OpmWe7nQil7+(!G&zOQDd5n8oo>Z3^C5gmg=p;|e%S$~{zn?v~5#3}%fLxz3wKeOyTjs)W6xy}e2F=A1ls26G1tMY?kZ@f;{;ZT2v5?t%~4 zsq`b{HRAo~7GNNqmigv@Wm0D6c|~ev%Q$2rk+w#e2$$_OJH_I5o+alWq*L~XR`9=^ z`Pg2w5$o}^^g@Kk{_cWe*oXC^ky|{%_CHDhZn6^h*!^JC(QI}4*O{Y^HWcAJxjnGx zzdR_eXr=)abo+M`VX1w30%<|quTn_s$UkYtKx1%X1uP<8?S44S$cg9j%&th>!`J=X zN+hq(bpFBcpnsClv^H&N#BI1IHn6RXJ?7Bv{#x&UqKcGYse9z22D}CfKP_1*r55#7 z%c_w^&UqUDLr~{8f~0Rx{wgj z_kK5)bC1jguN!569?KKf#X`>L?0hKkxHIW5Rw8k&+jB5Vboty9?GV~ct^0%C8Ux79 zQCcQ+a}2h|EdG>Ib)tBIaIacA?%EGb6jQgImBQ)vORb--dEUGIv2~W6=%2*x7%>l6 z*S}AQPN8x?>?qdo{NiYEGUdl3$N|IP-krha#kL#uGsfUCaNj+Fiz|+&&&P(9_R;>z zg`(d+d=!X|_trY7kOdE=yicCDSBIf*|G5U|$4774;fi_u)*d|Idgg&`?-I}pudsF? zinfmdip02TCP-_f57qR;>fvmgU>GrePNx3Dp=^JbD(b(NuXZ>Lu0mpmFx?r_gF)&X zIvp+;$3(nJNIre;CfEW3RJxkM?rK*p{G*6cf3uRIlokm{B1()#r z7L&+NV?KEeMK@;cjC`Q^G}w9bn^m*eha4;~Cc9`plS+Am%7S5(q4qOO5cbqk%=lQ86&*v1g*Ht}cwa$W)@F6PQeSSj{2ksGgvmWD#lxaGQ=TYB z{t|4+h4bAj*l-?rX&IcS9=uBO0)<-X4@6Q*{kTG(iy^irHW|Q~dz8@%=BNefu4kxi8I+S=;j>VpKr(n24CLG} zJ*|GV?io-|!jtDp`a4$KcG1A=z5kKWdJ!9tBx7|wl^!5Z7AWUbD2#0i5vN#YOwP%Vcn6a|Z>*WXKkg1s`k*%90 z%OtS{I(h+ctEY(9x&W`QG@U`*i-OK3&$v?5H#|$VC%lOOm2K>OS&lkaVfYel@c_Nm zH)a7vH)}p62>VkQsf4#Ms=j2mSn#KW=c$OTP_>xJZ`l1yFrecddI>c82n?F~YXAo7 zZixYidw8N!)}jbk^sBdMmUKs#bXG_3s%vL;zE-s_1D=8!)5S@J!@WWT^b*A*DD6uS zU}{so$|+jEEGHbY+I{ji{+_0;oK-0g5WRG$ddbWo6CBdr^4NjRqY&C?sYw~Hwb+!P zUo1sx&fSH`Bpvq1`JrrKj8f$6Lt2k)^^4?M7>^{`@1g6V=%2JJ)~(4mxPrSlR^~iX zvus*rs5w2Fk1B*Hv<}-w|+a%6O?;0gQEh%o4tGtq(rvkoWODADq6Z0X*zDuu^)| zYrgB*XSXvU8d}pA{lU0r2>=1@ex+7l*xM5*Vz$j)M8FT`VwyaM$P@LjOt7fdCpMxOD_^h5R` zkW5cEiZ_4PL1`G>NKrD~gy>@C-;g3qHL&HdJfGwHSGAD-rI8_<&Y8BIsQ=iAQ8MO} zUC8|Qy-^@CwC7^>`j3qwv0)nhIdj>4X_VVdVnS%dnC0H88%@w548!;;gY%^kmFl~` zPZ&6MUmM|>us{z8&HJ}Tl(!0!s_kDIIc+sjDU{F@XQ^%!kR7a!&1n6njV268kwzn* zwrb#c%tZ8iRsre2yFYJam&8bvoDXZ@>yH~%BM~Ad)%iyx@Sr9epn1sC+!ot<*--x} zJGl+Nmg4&R@4?^Lk2#Lze9AAT@b!0pv-7_j(H}xjZ6p4He*Ql2p0W4`k>;w=>WxvC3oLbqs9KWGMTe9Pb zT6($~<#DehbUxl6cHE{@fN<Jc-pBAeuz5eU{|?~qM!)MlO6K=+b$WW?^}Qm9 zb1oP}Jh)Fv?E7_r9R4=JC2j1{&00kTvV~226src}RyG#yeEiVoXOj&So9uUP8%}$4 zb?p25{&!MhjJ)^83QwGy!e0XoQ&2QPY0eU$D0t_y!?#ffy;;7fgKnc{m#;f4iU@u` zzWDYTPh^lMcoqepV1J38Top7fktJWfwp+c!t-C17H{2Mww4)RMQdyQZ7`BeF)m7P} zOr!I;wYIV1`37S<%eMXDOc8_Ew_!L zLQDF%;+gIgm9=9#4}>+I?}N3~`_0LixfKd%+p2To&c=+Zm4>lP%S{AY0-sjgD&O%l zvBEDaOXm(Iq{Cg@jY9w0UpvWHi#UvZUB6yDjCMv;R-#oCzb_*mEpZ)Kxc=NYkY#dS zx-!*;IBldiqI=#IJ@pVz~ej zmj7De!*SQSsbkfP;F=_BWbkzuY6~|@!VkXKT>~ArZp*xvxG`NF*TKxJy$7u0cXuP$ z-XGU(Ktw&(L+MO0L+*SAtgb-8S|FivgD9B=Key{i56YvssX+1HE!$maU6~Pg*VPO} zpu$du6oeI98B7)>44!4d(bp-K(f4BkMtJ{b#qYMua(HsOv7JN%wLZNSAEWvJ6{xsS zuc8q+v#%G)j(PEX7Bu1RV_qV=gGvIHrC`f^5?UNDjS?}dcAv_0lhv4F1@HW8Z5gp4 zca1JEZ;y4AKx9*nUDKrmo%utK`&Dn7n#kU*BoseU5&~a$u`@qYh@*Rou}f13UnYmp zpl|DpAj?F2i&yhdGA3SUje-)cPl_zweY~P_kfkf_(6(Jzwkeh0vCls=+0~vbHFP!z z(faJg$A6(ET|+fWtjPR00*OkTqY$<>oC8+Zdyt=GeymC$k$lXmpdAvNl93x2rAW!{c^HNNu->)%l&nz-!aL z>>`n+f3!kVijK?{nVX1(8m1_Xvh&MT;U0!7=Y6|v!D1si+2gHZQ0}N#LArA<1V#9Wv#MuM zmW_Jr-Yh0bbr z({~^~{!Nm?v>Np5#)#ne+*6OVc(Mg|-R6WM2(on){7^6e1{~PjH$B@(5b<@NWA~*f zlX7316yS7I5~k~_3{dNYi8p@-1vsa-Go%3@C4oVHGZMpN_mC`2IVn+7*B{4k#DK5S zx3|cSSm);vc+0_niPO4GXMCHUT-nr@Nf+_D{Q%MhV&L2StDV@aibzr!tF&^EWqKQt z^jY2xV?o%1r?R?|Sd6rcrVoOhc3dFNExQ#V#e@^NhMuY5qlh0e(e`=?Aw~CrP(09n z=Y@6ev1Fku$S|pKap%kjKz*@k5f6K$;Uj5NOJokikPLL3I*Z;cl@GAo%U_iKWGPcf zv+;q=fPmo;-zbD8)NCJVL#=H1(pV^#vn27M_a8095zhz*_IVNd2+d5IArq=kj`7^# z@h94I?1F*C5Ch99HdAUMTDh&ncz{{!-<6aK-v@dH;G6>>ND%Pth@s%rBO!PSz|Y?x z4MEcjf-6L}ovr|nV<9F95w{}#T=3X2kuiMW zR*d~~5nS6>E9srj3kAK94Jk1{8Z3#lh+P|;=A$VpqI~_*yNV|R7s^@AO_@~GW~j5W zRJCCsQe)!5@C}g5{^Y+jA|U?v-6 z%LkI6`~0Js>8pNgq|p0c3IVjkS71!7w+sO7>;fH_+7L~aTp1M^y#I(QyI-0(jgz`le@Ra0MlnSZ0kk%+|JH~c zt@$?nE8TOllR)Yd-C-gVH=e~mOCn^L)PfKQ8C>@scVaS8 zX;2;?nZ$y69hhrbdL3h;kc3tTWc-&_hppM;MV4I0IIv*-85+p>#2{bbBfkCmcG>)z zE+XZR2NfV?Lk8i+7Hb|o^-3Qvsq{j`)OngF7M>Y~;2f;&F^Hx5`ZA~^%AqkXj>%aL z*oKKWq?=X!D1pV?r2-T3r6Ds#2DWfI(8f-Mh&KSwzafyU+#yexBs1)-&>_k;b4*R(y5?DD1QP_I zn8ZkD65bHvsY)KLNa!u&7eb3uH!T+zsNpWv&XG(Buw|BwaYfJ%@XthvCyL_F zEJx+BNE<6Ug#r(*Cp$nAlozcd$#D)PlbELRzn0+FSY!@U;Sjp!8kN?^!(CO-E zsVT*pM1=^JBlMpebXrYIMySoSG@vo-4|)$>Ftc43d0_Tq8CW*s9&r>Z`QIOKbflrXFi=BN7yJ`a#p)Q9L?ME^yFZh_3)~A;$A0tus3KnsO53i6Pwz2 zWo1P92iQFGRmj)gh4d@_jee_ebg`H%4dx#XZ<9769b?hTrskStX&KOFN`f4yGJSY0=(6J9k>6{BDuz^bpWB9{4D)k5ddhT z6pvrcdxj5G)kPJf5{WXV6)<8oSz!)5q-kA?YTOw~d!f z1n0fwOu2KUH=D)_=&SR7krB^GieFx}^*I`UQ2fik^hFX0d&2--uzT3g&-@(5M=HLn zHS3~awo%kmoU7^c#_>hIdq$}k<}o+H}&9Uav^TWSg&7S1gE%h=# zuLC_cJ)=;MAXR!!=6DcTq{qF8*I`R)Q?j7PT30ArB0MseCGq`gL}tx(bHG{hY?CcB z2kshO&;w}CUKs@K_PtYZ*wIHRlKCFQ-})kL?=ctD|HNlYq=3NcO$T+C?KGt_P_-mA zkqG7uEq?5U5yec*h5;$xKmzKR_?ONZrAQLgy|?XYy_e8+W*_A7x18-&t?H#d&U0?m(wRD8T}TQRmGV~CYE|#BuYRuqdLet8>!RA9 zkG~~+B5p_VvQSy^wvfPhj-9K*o2F;u3mrPPkBBKE1qv)tdW3QB z^(i1@#`0Y|Dy&$$4qSClRH#XE^!Za61s#sScs`o_864Eu^5tRaj zjcefhv8s)h(eFe7Frqj;;*fES8g)Fg#wTuqg&`af3Lo*c^V-sL{`(41l`1dp-}8bU z7;5L-Qwp}{DMBciR7JOoJ7KufkcE=DWm9vK+4-0iC*1tW)UF?<`0~aTrO+2BKq#RP z!g+)T-Y`(peD;Q-2PG=J_4CkE+rc9*sw(`WWW01GXD-^tv6J)z^~&w_QLy~UjRVor z25Ly@@qtnlPf~p{to*hv;qhS#a3Z|mFOyh5e7N+=P~}GHB01dhUJJ zEd4P?RO}8P9X^NO@5ETLm^auX5in!vZZes}gQ20YNUYDiSK63E@b;!XB`zg>IY3mn z?N6SlMB2Yz=z%G9M!k_9x14#CiB-NFT*hy7MKJt2x zt$i~FwSHQWceS70qKZSvEA3}q zN^x;WJ#^L4RKM&T@d3$^$W4q%F4MU8-Ym5ehtN>F_Qos(4F~Cd*FC`rtg!YtNx<=% zN|LBLbPxHN9Mc$iZ~eXNjE> z$yZ#dflcAYH#7PVOO1V!5i~06PCU;$1|!K|y2R_&_=s>wSw*-*ZnfiMv$!`qn7`~}}^R`$Au zxSeK6O}!ZTS~qz6Y*=SeXJxiKBqo?O{EAk{j!>t=NM|As%WLgwE(hO9liBE$#n&b1 z5xu-7&?$hkz-xt&<-?OVb5>UgWn zdtboAzh+j5aaBE{PkR(y5}mTF^Y?n|c|Yk8iFupb{Xc#q8~1@ym9K{hd4-9rr^tFS*rrUmZbyfgj3|6W#M zl*NC=VH7uh<=3s@>I{EbGx0ckERwR`=J1hoc_@D?L`%#>ti2Dx9ul~S8DdZreGgQRl#JQdz!Z!;rv5ar%ai00j=$oY~MLUAM9 z*Ty9#b9%o1+0H^4>pcb*k>2lkUf}CqJ|cm?S5U^2dVQ}!ZkhMDLOMN(tAO1_i_va!ZW67zCqYJ; z*wwOQ2m}vI3xP0QpNByFk)6}U{GApTrrR(fd_NTZ!nKQCgkf1$kr!PHy}+&1vYR~P z?4q>>wNS`H6zuKZjLv}vo;q>+J@9jTUBv4r$qGT#k-qj*QDfSdDFq|;`W|q7x_|F* zb6Xa^N`3a5F2vs5+Ca9sUh1i(er@;cQ=Nhpei~&~BUV%VDZI>>Hd`HqAO>zymNQd3 zV)!^}N#qQtuI025GO9 zLis~~V9o5@`bT1=66-(Eb={NfbV9G&SXtS{y7IgKPFm=_#0oeZ$Fx6Z8Xa@n#HvTb61#r*8v0WoxD?C7BS8cBov(|fZ)aGXySbWr{63VEPwOvnLU zBiR7Jw&oC`)NpI?I$@t(m1=kWYm;YsPiFAv)&qOOA~%NA$VBKTjslU+fE=g~D}(gR z5{uHF0oxs!Pb$Lu(#$SVG90{cnQ&0=i83R_u2m1`9~rNYg4_j&tuA#fei#^j??apA zfa3HUUj=EG9WsE@txetVduTuJQibRY))UW@vxr#Q%os@`%B&b;RNUY8-AbHhwzoDQ zaGwJ>h=%z6f2Vsy?At=6p{gqQ*&{T#|CK7$&1XSh@A^i_QNI?4A=awpUDT8)oYC_&7O*U7l?UP4z?{JPgx z|4MkPB|VW%2!g!j%zEIBh{~a)yOBs;+Qg$OYM0_6osG7=V=4+}uO>YAFGMg$W@2%* z%EBQ%^+emcY&s*ck;+e(+eV`iHkZ3#HA;F42->Z!tPwdlT1Y9N1jV4WmPy0Z<=N;T z1cgXThrugPUIgUO_WEhw)Ia^9Q@%Nj?^A`LelOf=h`EX7buAc;?%SOq)1~U0UBg54AmEfmn@Y+`4JOg@ysSc}oohwW*h`R&r24 zPROd5y!awBuVOL`%h98DKe&S2?BY*MuoPBxiuJYu=>Eem$Ygz5U-iT+-|U15SLoVO zt@VV%)<`nB{tXbl68ER4)a}}j5(^+NUr6*Uv~R}yGo^wwj}L6JofzMHCrrlW0-Ei2 zr_+0Lh8mM=?004)%rdriodbH;6xsjCXiv|Jqa^!!u`9yY&d>BNgv1%oY>C&@i6++3 zyjS~~HD248O=MA=lpM$$8x|-fueDNDNXc+OzuS%vj4amuJkL%*bQ7Oh4%9M98yAJl zva)}-_C=T~tI8?asS2bmck6z>aM~MD5w4^6DRi1b&$1(6U*22trRtz&r+|?*Z5VTX zZ;!|9Ta{4$6=>-^Z}mb-h-Ybl2Y2PqDbToF>>5?L3BwuZFQAw2)rS$b&@=g+$wADd>63gEJtTnm-gV1V>m(qXqniQrD^>9+7 ziX#g_js8V*M$2A{3tL^S`VV3zSiOB!4dIcqs^*fD@8pDqK}nU(^(_67#WAov87{}O z4TcKM+OsRdabH_1aN(lgKb_KsHI@kr#y%EIpz&DyO`^2J zGnR$c%XYjJwSqmhyuCJChI~~gN9m2e0g)`=|ue52>iJZTk_lPm6 zh3#ln&=sj0`dtvLe8^dmrN^uGkL&#)`U`&_IF!OZ^D=^I>-|cZLuB@&1#WzGw!HHN zMFJg=kd%}9UQ@-;iSi)E&ZyS|hDuwKo`sbyux~^ zpR;Xgy#a1^jK2vR(wHhOYzFn&p5W-Nc&=zhwX9T>+hA2Jq!Ok19MXbd2Zlb`oJ54& z!mc_i`Z*0AIkigIRkIXI*`+9We9bbX(A$e;RHvyCUd=lmh|3G<;T6#&8}fhaXK-M)VQC^uzNHNf^f_!Qi`hjNdYB z5r7T^9#ws_g;~I64h;3thiC42&=K)R)7KNu(^65if#&FkPC;g>nq>{RzuE9tH=!rE*H~&CR{Q1kO0KfH@InJlC1S}7vdG^1AIzWoLmQWkM#-i-cRg5 z4D-fGxm6(`Nn+~lv$i`+!B`ZnGz%=zWFpO-SRE}xVzx%<5pQ(>3vJPx?KloXye(K4 zZKg^B2xj?B-)266cjEU!cDdjr_0O^)W;%ol`u$5U%#wKba)cDgYDENI%hWRPHgi6D8MAz7eoQAjsijHy71A>%18xr2{>dmRBfP7L*3+6= z0kBX$S5Yj}TO9>2&pW(MGG)v3nDHza3HuGfc7LS{h;uE;vlblHNAJE~nC*63hK=;P zI~zkMx5S6EC!%$`cArWob9$x$!$~_u{M~=Kr*bCxinT^h$LAix%ES@A+(w{WQ{EGy z{*ZRSJuxBAnxuqF_tb$o0Bocn7XfB-_;-?$XY_S~CeC9eQCefJ7{|33YbagXX1v8LteX<^VN zeURtvU&oqEd*z($nd#b-?Wmqgd)dU_UasYR*1!Zx`*<%q<$Tus1*Y#IjvKo)t=UF* zmNjB$khDGR=xTD0G@y^}H}8S&En-t$Y&||Ioibw2vbd0c{%%|-0=_;Wa`^G#ezO&I z#Nn8qzjh486Ti$yZ`(898q&b~P97-IvHFTQvNf_)8o&0-GiK5A$EQTZ*ZM`ek3Adw z`?^OgfA`3W@_3)w$=&xC6WvNwB@Vez+b z`xmH}_#03b#Vr-fbo`_Kj+-~})^+b3zYi@>I`hWnnTx$}uyTV>LQA8%sgol0{ox>N zQ1asoa1G&FSp-L1#{nh=ke<_GhoV*9a|roCxEty5f@r6m=k;F*3&bB=6Cq!U-oR zeadMlNb=Xbn1JR}+m|O2ox%>(7L>*I;DQB|wWzsd2p8E`OG^y>b zbTJI2H~Ec98)CO8vFKJip9uu$asfO=G)GBykPGoHp3MNt$0q5LtL$;16Wk4OYe`L> zar;gpt)wc-WGMoBd?&_DJehoFB+HA?&X`hO^UlO#!U9olj)IZhL2 z-weN$)U0N;|Gj)Az(&J)V3BVU65=pY*@9>=(0e0NHLg+GmZaZFJk~jg$v9Qf8_N=!v7s~lwSWuZhr+ zO!SV=7YLNkHx!I7MH+6ty%9H9!WJ+Xs<@r`vQCtqj|J27v5|7Th1_CRq~juks_;PY zlp2WA9XN^turtMew{3wRgjZ#~RlrqIZ*^P0Mr_ro`B5=K<4ap^3s9$!pU-?A4n(|} znyaH&*lCEsFzl(D-hF=2E`$kEww@kI-yE1zCG;{=Zr$)8_{g6cE9Lk#7dS5wgAiOl z8&Al9T!r4A>5S4c@GSR#OLJUW<+)|a(=mSlk~ zBLF{Gn$qTRSRL`Q^-R&(^(0iWurwhQbI9&c6xLWMF|m}($?57L%de< zNGQzjDoHmZ6nt~frKrL#YlJqUx{l{Mv-LAGXAD+6$e8OZbFFk%h_-}7S_of#$X z;Z0oyag$~|Z^OkUA0(^j!ubq{x}V6t{Orn*-Tz_G95SUT;yYyhXTdGzB5rDuLe#}m z^y$Mjo@o#hroqBiZ2EGcEF^|hLR<*zO(x5M?_377EUs&&6_7I~b=|~UJFlXAz>!x6 zW_p{D4#*7uQkmY~pcEUCtH z@P-mMp>8h~@8tYhsRiU`iZ0kdr{W8UiPk%s9t5>5(gsQzm4RuSylGJ$Aru+SizT8V zDzzrtZdC6ctMQLntn`CYi=I|yq70=YI@rugAPzP?GsO&7y+g@06pQk0&&{~i2(!@; ze-vyPav!D*@;^42u{f=>wQ%`c|7#-^V?zBOY%E`zJmOFWR-NmTl|KKuNtQh&^zMOl zpS@u=$0oAV-qXf-Z^KeqjWn8+-mwWflM!I}ZnR*8<8QOjBIwb8zqdcUZ0pau!FNA$ zjz0VWixU2X%05`ge@<@y+y|qhA%;Rnva(QlS{==qC0nGG!`lqm+ASg^O=;#>GpeLF^OG~f%b4MN zJj6$mv&zorN%R)JbjL|f%W=hO-U?t;2|Reh>QyuFt{PyV>Ljj46?Pqof%T2DLs=iI zXp~l3_Z(WKX!Y`hkR+NL4 zc&D2Cy@npLg_Lw55DtlMPVlZN>azKXbuU@EOW*H&`qwlI%z*YX`>4v7dD>u zgLq{lT17S!u(Egnwi1j&oS{@%MZKgn2BCO}I1&PlP5a`~j>D>a+c1L~q_J6zT+k!bx&_l5 zCFw^LWU*6|JnbYE@s-mzVjO@HCj|rBu#H>+ZDWki8@gWWUx*_7R*y?qH|Zy^LDgFx zkRj*7Md_2mlD3d|Zq%JX3uUa7K*MG^IBVTXpp_M3>L#vz-}Zddd>jaHTYM-x9P8pV!k zHcY!xiW|(E8r~{IlqU?5SQ-nw3kup(V13n*iAE8z^Z-Tuv(!YfU^2@kUEK{7i?yth z|2+^v(_IZCuktna&L~3+Eo=M-DDY(h5xn2#%CX_&1HS^jqYuD;9Y2q6SL<%oq zyj+X+p&0GiC2AS`NII*PM3skQ>-7aeq|D=N?Dw=yEdk30WBNTTSO>6)=s;2`-;|B0;0?}OwcM4 zA>9lgd;WKZC^cNnZUnk#{pJn7FLN7|N;bR7-x?>VVnV9yKsM}6V~9c{!NaTl?PffF zx(_cW-Sc)>l!7kM&*6P=%$zb)c?=2<@KJVZG|^aQU*FnSUbg-#8XV z;1DV{YQ{c+<)&{|$W2Uvjh@~>{6Na=&r_MSp=-v9B`|l&*+m)+5|=)C zUc{BAMo_&^ZKedvFB(N8(F`lBy6*du1$iRvCC$X5I7N3lotN^%CU3tmrrcE2k zPybM0lMwD|go7mM%pb0CAB9PxfEzJtZAdth5^F4l+JGWsKTDc)MhBW&f#{3~1+Ofo zB&&s>B}Ba5wZQ?)H?GXUAL>%AN;v15F|bNW1o%8hKg?_$8S|hNv=9x-wSbDYo*Y6w zdySZ5%SWB58R*pvi^xk135kjt9?a8G)oBOSyOlyfA#LU1BD0qyS?1c6F1jF@1WvTn z1X}N?ywqxSR{;@lG!Gjleggdzh-HpjDUdxU=quEKCu{GNi?NWv^spHTEp)= zXd7oo>=jH@xD~6R*ciGIzUkT_vRk^DeqS%}3=CJV_OpVMsLm=*nHwC}leo)Bw_smZFB`*>FN(!VbO4` zW9}qR7~@d;m5}1CZf1g$AIfV+IRCzEJc(WLB62sj$W&uaYBO@b-(mr-XAq@nyW(p& zjZ}PL1c`Q;qKr9Yipl6{TdA-xgwQ%49-*a*;^81=M#Lec!`0znt$}OIWyMISz$~H? z5hEx~5UlvaaS_?#Kw+b2WljJTDwXLF1ge~kq9N^PpTZ!MYyBzkPpfnE?9{0B*a zLABJWQ@YWiJ&tv2*js50BwMFnT#^V%G(C3~-iHRim2X7P-?OfbdIP)Z&X^VzR+p?( zuBHw=T44%|M43+?_BTSDIRHiFR;0*B9`i4N=8Pk?K0p6PHy#P1qcKTm71-h*HaQEg5xMIOvL*)5St3) zp@^oJnCT1ARXYG_BwHFgtxV2D3S#CQyqP5R9YclkSiAAI1bdx^7c5r`_Mmi3lh?dF zBZDnBlZ1|LjLv-Wb_h)VwA1H*CwA_@X(z=Xa5>e6wcBwnN? zi=+=XWdvocYBExcxPFSu)=RH}w&p@KBPQTzR30;5tgmf2zz@}Ob_D$*X!8y+j>TC# zC1)tJ;4F;Tv;}TY@X{i|TQ4PMW~w4V7|4p<74PkukeJ3xGt)e&08=gmgi;VI>Y!Co zoaIPhf{z3qu#_I5zQ+4&u=K%OGQEEJZTun;NP%+ivbTs2mYpsAD?muf%tr^9mI<)s z4Xib)Y+?x6T56O5$YNhU(aTdL4olzgR%#{3mW-gaNI~dvj3(h}-r)yi~YOgzm4bQXzW zBvrqPMg(_fh`DAU6iT>BvM3t$;z>6lEbtR1=uMj~6dr1tQVpoS!MG7x%>fUVU?L?L zwsLk%deTU>NSI}6oM;y8xGxA58MZeOQpZP%s*M23sS=4Wv96X|xa4A69PJ0?-+;TR zRn-zmlC=ig3O#eEOZqot0&fgKi?jSw;*HoO zYKl-H7)~?I2d&@XYuVLBEfCx$(ey$d^@bZ|1WszdV`h8Z)ElxvllJNA_tj~t_e{H% z+>ng0)PWp!x9J(vZrBj<$BO`Je15ddd9u9@xWke;PwOI)!}k4{OPVaSlcY z&l1-A^Xg!eU$hD<=i5G?k;wb_Vr@+!McOdG&rui$0Tyl_ZZwn5CG8mo<=WmbijCe! z@R58%z87sq-x@pO_KgfFk~KjZE&@WZ7D4s+k1Po}Wcu&=JWLj%NmxUSE$oAU1_cN`=ChFcUwYfhe!qYYQ~wavs_C40)jSFi`F|M9D)BxtSx|S3bl}`|!HewA^v+Me-gv z$}9q)`!U%6z25uwJ$$(P3Wv$%mk5#=>er}=vH3y)bY1tg z17cGbzTIL<+4r7On2rSG?w-rOTOk8ja|)dfo<*^gvk2q2oEt0foDr+F9yNFye6FuE)&PNYJshRdlBE5nmOjLk zo1;zO&=H|u;QIM3PY2(L?5)>BjE8H#J5bwsQenH}>qU)(@VIAAa*PzqR(6@mEjyn~ zPhSpsvoeS0Y%7QnKw1~-`5?E7o3hma$^r;mh5;b&z27C%VL8IWBkj<#IcGBByzf`8 zw+`8l-1rdg^>#;!c%I06()qBgg2LTGavcYa&V$>R+k;C}SIiZ9AKbpXpLON-fbnfCX^NgjA*tmfqzln0&NUfVnA#am%6!6 z@KxYP>PK6Gu8U_-KU67tX&%=H^UL^w#*w31qb%vRZ1QlqNUE<`iX{jpV|eu{=*(f# zLZlbd`$^=WAP$@rpNG&QN3shIj)las2Lok73@aV%rVIG{obWG z@)Duq)$>r$-=7C?5F#`P|EA0U)5GW9xbSr%FUsIP8Np+oS0*=hQ3k`wG%+!%<&dSk zhb$2~&0D}B1Ya>TeH?~Rn11nM;g~DZ0DFt_jFM(wdW@z|(eQ+NizKHz0yJEdav+8S zyiGTN?SzAc2vUTQgM>qgW{9&z8?QkqcL>VZS~;g|vQE{mogS-EA+kCmOrTBU>E<$! zBV@2-3h^2PD>-xcEH_dAMYiHo(>&rFf!4f<6^O0W(~T6rF4Ko$r+l$f5)7IIY*WQf zWpue4wn;5m%MeFM`dX0h`LngWC;Ts%v9lkHX^s|x!0?-t2u{3cT%FNEiq2t-actEt z3g#NZG)kS|fZ>iU8k|fEek1#{8x7VHA*|#p-{B^9t!??E5s_mz8Z4gUsbqP4<1&#( zBMqY~o*&vTk#~PK*>&qYR~`60$x~tPm%(BZ@}EKG`{%_Q75w@i+5hv;(fF#YE0@I- zbi!m|BxWOH#bbintIP`!PqmiFWq+)OzMrQVGUgOMFj3hm0n*786UtBVNQ|Em?!@pQ z&m(9-STqBLKqw#1A*4n#DWO>zl-Q=N!QIO+N~2Z->{vMJT`r*RSB`S|lnsZ9&hs2$ z5To32MyPHrN)`lT0yG;piPzR=2|Es4n#-*|L2vbLfA4k%x6N?@KYxGmj%Mwv(@(#& z2npSpqiIwMUMJCSV%S7Lf-23Lqd1q9bo&RyvpjosR1;pO51Fe&>sG39g@stiD3oG) zO$B|&LM02ef&}C8>GhxeRu784IFVatF;h?eiCW#fka8PZNq;Yj76;(B52F z51-FUa}h2jmKqJOudWx^sx%~32HbH%Zmnp)1|~jTT0a4GID4%6%HUiQUYe#yGf<+(ZIKID)vz7O%I8>RGwu`~#s&~kdZ z>;+x7tM5ww?$;@_ir~rB1M9~=3*bmsyg#`bB^s{P`Pp!v(onvPD(tfawH#aeLfZ=k zfdT%E_~PHIJqH~&r}k5=W4bkf-@JC z%)PnlS`KpxC~*AzVIB8e@);3%8V$zbkKp6skZ7SzJ)0DKP|PR6Z`KjfFPideU+z^( z=_Npb6R?|;jjso{k$Z5(qWV2g2IbyasW z^o*nR*iX{u9ci>em(4QQUL(JaIOIuo5QMCx z00+jeh84kiv|%L;Pv8u0yuQ8$8rpq$Rf`j9x)o00SUOSVMdjCl5YMxgDecf^>kuZPGwn5;#M^wqe?l`Hq+ig^_HJTO?&35Mm!X=Q-cryjdbbC3PIUq} zv~#S(wVz>g98alYLP?zhkk7G=nWAvl;leOnJzU<<6NQb{n=`1IIH)ayKG!XVJN3ZH zS6LAp#KKCTo=MUHbu&9@fVwiQ0V=KCoKaOkS-6NHv4Ib!``rBFwk;j{blU9zgGcKTVm)Zz8)V)Uvp8@FZ?JAnNslQS)4 zvT+pukP1iNSWqKSDRc=_G$^HuNs0aXl+ZOql=1lA00_=&uCo8HSQFz;V=~}KpezYo zh@*eZ>K}gjLiHKzBg9NxWN5-kisH!ABYF^bN-gI5a<*;Q68?V<6;YgDid7kZ z

}j|8taaEMcCZ8+A-D@l+2lHj+3n%B9zEY0k1QTuG(qdivN0co4ObFaU!IKgfFzu>~!fJ+9 zpwAP+DAi^VX;|ThI1$YN@Df{sBPZcE*e?klb%<{v$?tf61=@NRxBbC@Z|@CMBkxub z38UVUEU}Gh2H%qi?a-~zv&7Ma3?hR#>D?3 zNB!qUho#tX8lV5(Xgt@2kS>y0r_^e4LWIl+q0fJ9BK$T0e(@WQ>OVHg!+HWBU*m6? z&^*irVp$Ka{7(=prz|>)J>h?Aw1rX=?c?(wnw$VFBM{4otg-^JlF?11pX(+;=fP9w zt>Ldr!e7gMdig}w-@|X*)=ltNI`WDatA7-inSY)2inzW_?GRt2NY{<)F{{39A%P9` z;2*9H!KAHEc&OPiU>W~GtVWSz4RmP2zYv?4@e0}xN}1Rwa@K`8^EFCSYb^oOR^4qK^gUy)bZ9@lVAxetD`C6}jE!5T^j?Xa zcJtvh4xu%u4zQ;NK~8bae7H*>335hRN&6n-&vPEIf{OekW*Vc$S;-V1x#*`nW8zS& z5%k!bF%N%s5VJJ}4N&`_LAbsL(Gn)G&*&&E_Y#d!xV0L?F2`X| z3K+N4raQ9-4tbIn!y92u5`8J)F4x#+^wL-#xF9QlNtO@39s27OUGy2H)U=$8OO2zH zM(FC;yzBb5y{w<&>GON{o;9YypZ4Pz-)lR=f8-Jl2!Pam=AfnVlRg3-u0E7g&kg8> zW0Ulh!w_eDlAd2+F*6EDm+i(>W}>H2b(t zcX}=duz?vk)F$8t9D{I9QE{HXa;|yCiSASEBeIgCcsvIcrs?wQl3nz&4}m9Y>xY#S zj8Ki|+c$Ma=?wnxoPhfl%t#$M0z_XSIqQ{!<(siJ;};bsu;OdxDS$2V`?ZP@llfof z@r%pOSQ)tkrE*IBI)!aFbh}jn=D!GdeA*j z;s_&w&Y0g1Ug~(r{W-+I?EGP716=9qKc7?3i5a>h3sq0T(hAj)6=;n(cCJTia0Bq- zzGyROM<#L4F_-fm6>gvNzAPm9xYYMip$9+j2kV*So%WpeYscb%`&W`Jv0Sbc8YveG zmIO^I`6kX>BUL_ZgcnRAjtV(yREvntk#}pCsr+#DxtU$vF<&N9dCR!*T>nxZ(1=bN zgTdNPLZPr{iTxSG=$STbgB-K(GnM?*Y+<5^aTqAVu2j8`oBac|-@mFkxBNJH$SQWtI%iql

ad;>}8}{U&_IrEHtWjw7TI_%YS&g0Wdn{BKTV7P5 zHpG!hbq}gyJnf#(hzO_Wcy8qlnW6-=>g& zplQ#6q6N=maEIdvxQlg4OW=_zinMV6(q`IN@^WADjQ2RNJx=%W_vba}=&9dFmN01a z;zYZuR3s0#kP0OjsQ92|Y%=()57pR_7|g<^LW@R~VCgh+!QA0>k1PVkU{w$fj$RHe zG8Y^s0lL-Bnw*4+N29K<=UVSl$i=YmOV+UjVo(Tow;M`b0ih*a7wyzL{vbkk_er5T zxcWJa9M!K;kAjLrLHS7v3xUI_O1UO1y-@#67Cuo>(&tJUNQ&cg!^p=S(!}*eCpO5P z$J{MMk+!f#ZX;YoNADkkxT&p-%%9fXER}^YHN(CwD z=Dw{>(v7?34T`V(OWrEdJE)8jtqp%~aj1)u?`lVDh>%hmn$hE`wu_{+rgjS!YaG7v z<1hz8+?^L+L7k#A5|ZO0`fNbhL}Y)nI5Cx77i@&+Fsr57q%uh$hffHeK`n^E5*;MU zv_0`$0~b72z)y#(B5`$GT3Se4oKuSH@RAG?*YK7`700hN(i=lYNJ)0S@{VJVN4tU0 z1c&mOnNX-dZBhv(v}_RpTr0*-zbbG-Gp{wO8NgCEnj`isgkMo@ zYO~_&E0wbnrN;mwR&!V23TsV^3tA|t!4ArovriObfcCDqQP#d2i7UqbyTvz%B8g=N z{-^6!WwveoF=(DR$3w}vnLS$7f8#Q3c|#BF)g(3_Oj`BDq~#DSxL0|GQRNkdE{tbSEU5lu71V3a8e?Ks^-w~$I}FLXnqEI<(4-xa+%}z}q8vK|^s1^! zl&NVlj%_uN%0oo(#JbFo2w~nOsfa-|Vl=Zx0%wh=B|IminFLFJxS4PdB4jEusDx|~ zO1B7&S(oQJ%j2(0;k(TGJuZchQm8CaNM?_t2;-#v@ou8N*<)Gbkry$WT~@_p6}T(ATEo3o&dj_UHvUv? zQgRl_T*lU>wr9aC8{5|Ql{ARRXq4hfRu$_{sn*8|<3|s5-4&}*>Y2xoS}+I+TjZ&c z8}UZWZwJZZoexPK1&Y`;o)|6a7GPCJRq2GH%gF3AC?!}x*EUcL}>=5*@ZY@V)%2QyK_i4CFh447}Z@m&M?Dlu+K+K5^S>C0d4%Sq2NwuMs5 zylL(k6cLs_c1H2H+-pRL6$FVdsg#U6p`}YM=&_xI?-7a*FN%5yE7j$w^$RcB8F*iE z;;G#NlK_~Bm1TcZqItbsTqWi|EI%4Hv*T%Jk=+4$#tdQbREJ^wHL^j)+57hQnoD3=w$!k6W4n;P&DH|5xbBU8Chdf!^P~!!k*8GO7 zzG(Ri&0B*Q2E$+&O2)O1m9rjoxjp2xQIp{z!WQF?Xh_U2sO$g{Xv9ggt5%!zMZ6fP zmKjVRsZ4*%-Qr-C-n3C_B^wJGmLuj@8)q||1?8bq0u@NdRSexEoU{zPm+HT$@0ogXtJd~E3(X3i}RGa(wJFPA4LM`1!(I6P< zhyW%B*uVx$!Kz?nZr3=K+P zN|-8>H-R|rHd0}ZPR+w?jMcOd8y}%K8V|(*#PTLI%iU-rwck}GkI-yFfFWtx(=JO} zvcBZ)FZsaBJ#dP0MZy<2MQ@DYpeBB7ct*P{T?5!9Cah|)iE@}Ul$WxHcyUJR5H5~C zRUk|pQX&|O^9Uaq%a}@niSeCTK}IH3>(Lq} zAw1hU2I{W&!jly|AbJ1?SZ60*Duxa;ZIuM6nt~H==fm~;` zI0h<6;2Fink-&J*La7~_q*RT+7w#!V;}Z$r5Fs>!;8Ff5mLQQfgvAGII;`?28N9Cg z{3h~-ig6+V4p`>k#G-8XAFkDmMhnS7G^!d83qbs07t2-%V%F!8+hu*D&EP*DiWMg( zOGP1Xv18C(o+0`iJz>-03hl=ju3n9>Bx!{8sRR15^ok=0p#Us-av1Mw=U)+Z(Uobr zREO8hk;7{26Z#j_$>k`RK@l~o;TVb2T4_2>xcK{sTs3NZ?;7tPG7|HYhXsbiF$G)A zp@UX!oZXqh-v!-w!zh=!W%%+e-hM|3HY`5fiqq1_&s@J$6)>zp+-8m2n;_$?p3TK0 z$E?GMgo8cHFv2mA4B2KhxQ75TjBqN+8PbYSa8X5!Qq3R$CDeOpA{&t0IZ{Uys_24i zt}Dq5&LRhYjnE*mzTi_NXi73TDCQ#rZ7HvYt_NV~7udt-;7i)O4l;ghD!H zbA^Zr1sKA0Vu2v&!*gj1vlfUJRYYq>Zp=>wbV%~5ekbG&2pc67P@O^zWTcCnqcs4q zaz$@$FpG4^bTW;3LcRqCQK~u+e%w_|hl0s9uG|6 z2XPAB#{9jD;pUBl>2EyR8TDbnK4)LvaK51tpwEOVCY)2Z06;*$zY(9Gw};>#Rqx6G zSTI@%p{Gdvb&xV?>z0N zMe?hVQ^ajiTISSJKl9XsS?tGZ7{4{Nh#FAPF6&KJ6{#7>Rb`4839DWqC9HZ_-Ern= zwvcYz^e7T-iXWel3T9#ocBfIgX9VFS%$zmy>g99|ULFIMmkpk0?zl#l$olFMB@nn( zfhU1u&7etvw~!c3AUPv^bVw9Jxj~MD<+6==e~8RGIIHS9gCJ~lgbzV4Vw17dIJ8;E z7vpz=4B;O>(E9SDiBr9waUc>R&LOf{RRKG&^x-{8^ynxoUItkwDX1t$cGP8awC=vz zKnw_}>WtS;a90^E+*2M~F-7wOZyod%bRQ=^IJD^YRWHSW0>?xpvQSo`{CsHlEHs!C1*M_#dLBe|S2Bj>U88KZ!dV)tt zX5|X9lo=0PSTtV|6(0*z(ItMF`^1(f9kTa;6DUf-nMpqUg}1FF5hFcF6chdeB~vMV z)=(uk=7;( z?i{I^+ab;Zy>Hh1rMljyp$Mdw|HQ^63(l)fCu=nX*JvuQ(>V*$fB@!LEhWoOXt0SJ zk0y53_JeviexImQy}{D0gjg8qs#&UN{Q~?F7JM&CqzAQtS%}rEZ+~gnur|W+(|k;~ z3Z`;pM{>WiXoktECI*qzu;R+)GV~CPI0|QAE2&)H4ED##v9l3U>Ow5A7T%lb97e>( zupdOmT#^ugW|>MM)M;;rk%i(d`!-Yj@|Xp5tQ$3-nJ|=VOrzW{9uLf=FTl=bR*jNK zah#M(s9ydcZ@i$L4SIg1jpD|dwCA1Iq*BxYO;QzPKn@9!L?TLiM#Ay=a1?JhkhBuT zhL5Lx3JkyF0lS9eeULw-XeLZ015r$*RL;lgyTczs=3Cf}0WcFy+Hm)ov<($W%^E=- zN!$qoTWNw~FgMVKv4|ifP~3R3dBLI94m-b5gZRnz?x`DjUbh!P=t`cdnS>mLd2+9?J+=^2%&J5 z2qDFrRCw%hCy(85CwmBUjy$hDD9&ej_vb&UeOeQ?u97Nc+}9O z7&T%gX@N8|Z(KuoGd>@@Qn>R>8_}n31C$Am??u0v{I*5GrZM)dPdK0LB>`LFeU6 z*QO%oL3R#PR7#m7wnquf&xdm{_(Alm9u!Eu@;L+FR!d5HHs{L3QMHz73nlU(QGNB3 zg7zXeiJ|cL?b|1$hP*=!@D{YQPz!r?iw)rHzbW-5QCo&@EyEY)$*>3I8{%=cahXH? zLR+1BV=O`hYpGi9EbG$xBBO+N!^N)2BGpVyKmdvVXtj(8H}nVtjWi1}Jth+!U1_*M z128S)7;81|mQXq_zO-?;PPK9>lhoqE#F;W_7zbGok?M##)D1@o2Z0Y`GsZ&;R^$98ZX+u9XJO)t>%n{4fE^Oh z@H%))CTEPYoeTn*-3py@rP|dZ(UtemMv}NQRv|mjv0sVHVGft4k`lTWs%2s{Np(j~ z886l#`og{f6c*JN-%K;K(C7rF)=*_^YQ3lROYPp*>?S%GN^Qxi(=lxH2FO*a#b8K@ z&6H&VjKk6}VYDcnT}hhC;(-eY<-#;9qRxXsW@SDBRzu2orWQlL9I5uA@h8{%7WCL|hQJ^62apc%)=s9Bb z#$@NrbHMt*C+0ltQ4@n3X=*ZFTLD+5Mq1qh2420lI*VG=1|HC0QUtlN+dfU9@ewks z%naB|fZE$Y!-fLAXbH|20~Bi^r)~hQ_Zf$DuX#|P9~W&8%@9F@VL27J@GpKsg`*># zn!yc60F^Xp7OJsflT=zF%jj%I9#w`(-pF@XdO=?~OIU+56!#TB7)!sbq{%z@r)0w+ zm`gH&>?HaJANE|L=06h1%OV-OsHK&E3%_AOURdB70b}AThuk>>@jDBKLEs|ek|0V3 z(=34b!P}Pfn2ox6LisHdL<{!mxl&ED_YH9&t1l=dK=77exf|=GtxVM00qb^_Dt^jw zz-(92l`5-Qs1d%D#5>UJ!fqv7jtHiVB`1p7YHP7dX&}VHaH}vyBFa5_|J^I`93fCV zS40?9*{=!mPBH3hBbZiHJuBzop^^IDU~u*iG6w2oayu}>mfg}O)cV>j^8Mk1LJ^s2@^ z7VL$`6;4f)R@rQosnswFBACH0kb;9VaLwDK+=G+cAT*~3HB}P?;iwo_EYu?@!)-h` zLMoVpPLJNkC%l16nuU7gvRkA8+E+#hb;+ZXCO*=|5hBS*27af&HzMGqpctmgWkpi3 zc26kjxA#ID8PO&}FrHkqjab%=yufa?DVW3|1!WlbRAZmbG4QxYf@f$(f~Qt^H%?tB zc7|lQ_el6!KnAetC*1bdQk8NQeTa;(BLmYCc&Q=mUSuYjIfuAT!!lLP%6J=wT^T7- zKn0%5nEQ;PzNatPz*eDE0UN8`VET+$K4L&JY2Y=^QD0*93Jm|fonzCS;|gnuuH1+w zPJm`AH9;I82}d+;IVvNQ#A$e^$ zCbG2_#SgvZXeR@?2j>-7^!j~QT+!?A6IS%PuM<_&oA4zc$_UW7#n38p4Mn)e)HIDj z#gw*L-JF}rW^*$Y0*a%=B@Mg|3@g&qkA@!pnM%$Eb-W0@B_>vLX=b{SMGFiJ)24^fnxxt=LhMWp>PI!&O18K` z%+AWZ6wiB&ygI7M8Iv5+jy1_~ieu@Ff1^TXYev&%4z<~{5OhJ~cnrDUXf_V`^ZN4y z)jP>YT!M*=BR3`O`HMJ&UE2I<~QA{-%1Ndte4PW96&?2WJmhlIM8Y zMVpN|Fj0aWp3P=rvM;5eG@5IaqRj~;>eD!|qT*Za^0(EIlm~+*nvpS$^6iWiJL7p; zfUL2KA*3wJf5odBge_K_5-3p|HfFw9{KzLX+E1n6%ZqX7?O$BE^;)$^r{G#H&m3Zp;dgAz$PZg% z^Z}|JXcs)cR(IRfu!O=xOL7vg#p}WTZvV1weeX;P0q#KPWjDUIwXY>DtyDP|<&wgq zTML&<9}5q6WR%;TTkoC&oVw41T{_Qr%lW4~FB7DK>P%{hbjV}aH}QFc?n4~orl*J} zL@H&@9qc{QCdL%ZO`H`t2TjiCJ;HsHy)nt0?B4S^Ua9A?*SY>4U2f-y-yN*&9ARre z!CgNnhgJE``&8iT?n6y*k<~>bbYi3uu)N0pTYN}9e|>4vxgn|0{;DBt z9`D4zXs_kDK(=N~m#du`+3EABe? zhi{Fe3n$|UAhE?tydiDwb+bOHs5Hk{9yR@b2h(P3W$+ZZ_-V^8pGTa^IE2mq9xl)XNT^|tBv{V35fai16=Z922_pGWeLU=9wf&P|&t~q#T?m_nc^=kI3-c9&QjbHjbQcLZ0Y4UlMB8k4)+b1U< z1rPO>iB+zQtH8C-;XJrSBu|hia(F2pD3|1LbejtIKJTZ=>R_MlM_=sYbp+`y?|U4B zi^fmRVw%6%Qm+1lW}J?wkuu6bIUS}_$E5B_r}ol4j49={Fr~E0x?W?2p|X;XtQ~7) zj#kh0fXj2_af_d9^G6lU?pEq^O|LK9Gp*mmru>I6enYyxRPynf-j}z9zx^Qop%MQ6 zLUHzss_6vEIz($F<+q%NvqZcmCB9g4@o-JbQ97S{KaN#z(Iu+Isdu3A`(7vgEm-&LkmZ#Zg%?oV(@?1 zsk#MrId1n*{84C9#wYJxZ>}g+DNO>7|T9Uk3>++j<(SEEK)Lh`or`ARdwRA zTEem&p%M4yT=f#L_hY^YDL6hT=K&jrRqA9*z{xnXN8)UQx4|Rmwyh(l5RC=h52f$V zWKpcqK*>3pf~RCZrjMqN=4eIgS=NANedi@0;j(O_ZLEQp<>lK^Mv5QWa_Mv1#efoE zQZExn9zVjKj@&70Lqn?Xhl)9e}QV zH7c&M1Tx6yOtAE}Y8%LWT`q+u?2iG$heBWT+nHFNOJZNPb zDvve1TrBdK-M88wBesu?ZB;(Bx2uLXJM?c%*KdPBZjD!eTLa{AhHL0IU$;HvlCCk= z#Uo?(TZ0+Q5<1w=gXpr*K?+~)u|Fbfs*&e$tPyH_qwPIz^!n&&p7pgy3kh78w0_iHwmnOi2uGr*y^IhK+LS%=&zJKa;_;irX6Y1RTR&sz(dufOH;tH= z=NESTlBBo)v52^>M~kv-?pp76KEI~b-G}qW=7(ySeSLWQ3lej?u-_z0J_{$hP)1Gn zu)gdoXnB49Z- zUe(BNM%)Ii@I3a0M0bMc>WC!g3m?O4iyfOI;#OQ_?dTVqBYfdNacdPh@ryc$0y>g@ zGLfWM2h(QZDgTHTL{%heXS9{#U`!MErbqQIY%Si|VE#GK7Qlh>B*i6talIQPD zfOxB^qUaN;D)2yL;;a$Cv}bWDuZ@<`D7>nY7}xm-XxS8=#LQyjPG=fxu!zZCS4~&5 z`yETyt)_y^U{fVst60?Mv(2K(VK<11v>5{v$4z(EY{n(Z#p-w*+UGsBr~@9wnyRGJ zS8J-0`fINLI4#v%#F2lNtPwYxN6kDlbHpRl%%EiP_E_zNOLb$FBrVKrta)J;(^&Z3 z&g}a+G3JLQ^~;*AB!4Bdsm31~i!AwHHu1Sy%_Np@i=kQEfoVyNw?t$0^eOW^NCMR(GFjAYbHq@?7os4NnPbut zp9VE*&VFFpK>0QnA}XwcMOBNGK^zHM@A2#et>~x($N2NAnnYpn6Z;xbjO5vm2FWOZ z6enZ@HBz`=9EMSIDlQCMrdS}x(Y-L58&iWhehX1sNHXtee6kw2RMBmm8lz>mp`^6- z6OX1>V`;Q1RAiF3c6Bjji&z+vE3Tp(*=Q(>9eJ^ZZyF;-tgK1u#>};}RekG|=Zbi~ zBL3f?khKj-#W*V7f@mBRqhjMj8i`o{Afec8R9UJ}{x>c#-i*U%2wx@1^A4r4mDr7` zWki)91gq|i(1JA#n+190Goj+l6orrmQWDpgjeeogVSmN!j|&?NN^|DnFl&UxU0Vz& z6|0)YS&xo;6Wk7igz(u9!K|@3Xx^rE=Z%r~9{5vM(NM+1NndEi+Qx~Do{feG*fUAR z{vOuwRZ8Kh=`&M}F=5doK0sf#-eJA=|JBVq)S-ey{_;$N* zqYT{~%Phyu#1_7E+O53{u3E<=_%A&MZ}u3Hy+N~nVrG8pEtp^>s+ejl_$q+TO@AW{ zpXV^Zldbv25k+QAAs)0#O4r0#sRZ(yq?t)m;L4QMfjwr4gTfw5-D3oGL5!BzPQzXC zYZ}1H)1Kjf#`oODt}j4K-x`_|oUt@ULyc^)h-ndTD}#n6;QXgE(V&U*Z_q&hiqV{f zI>TfvK#bY`U`pl(CM@>-JF$VzNrQ4w_L4L;Qb)#Hy_( zCvQN@=Hx_-qV5c6NF@!_D_|;N0d-=tf)zF%0v8A#vo$K22#JB*l!W!)lvH>O`Xqa9 z#3d$_RE>q5N}sWf^T9?^&E`H%eJ~rHHlv7{5G|NlCECMbZ84ZNgq7sY6FjxWZc&RU zVmSM0hO0(XQ#%g^g7G31a~@b)Q(>Hg*$4~235&4@p-;83Wbv2Cao*wxrQh_~(Zlzf z7$kyPh!<~Fuo|nOBpI2+wgz)`Dq&7ax|)fH+v>A-n;2uTJ{a|7!5L1OLNy}yTc)U1 zmsvswjiG3^A5Sp1FI%BmY6fxUgyC>Xucu+A93^ZvGmMOO-J7)Loz>@*e{k}e3uDdC z?M^@UUM$fmvRt)y_@1M)mu-n$YKprDRP5DRLYFZYjZYrbU

nJT+2~hpW+jOq*gC z4^~67<~$9dj8}F_Ui`_JzkD*;D=;N5Zm4xI3YGVGC?a_UBCxSIYB?3|i|q{Y(Ltd8 zw-BnO%|$`1;O`7Lhkp`_yUA+9RncM;uEcEwo|*}j3d0Rb!V=y>@g^nk>WJWo-_KNT zQ3!GdkW{*{03tLZp&3GQ+)jCNF_v`7rvVR%h@sIS1>-C% zF*G18V^L!zWnSD_Dm5}~IxGxgHNV!pvA|3IG-%bhP*VU6O!IsSm;Bk7R@loCr|pWz zf%PpXsawl2{Toaw_QZ;L3Pu6|pHsD2RU~=i9#3gC^J)acjJ}F186=T%aftCxWb7m2 zCbTI{N{_wN5#{FqJyPSWp0_@*h%5lAp~sO|=?FbiO>eIDM~8QW9VuR;TbR%&ZDse} z|3pW)k+buM9uiCGqjTS41W?DkOaY_m{rHSZ zLXyl`feLBKaxF~Gv~H?w$im9P-Ke5%9gN_7%2gs=9f3j4#k~)Y z;yvo!$gsJ6tw9U%ic*|f&FDL~*t!H+I)Y`?S@e?QefXwDRSm`;yki_-1$2~+>>WOy)*8o${oi|_aE&^G>MzrH z+}9(HNYQKRx$M?4R9N5K-&=flu+RBNHu1iG3brV#d)aptOmWa^yrcZ$z5t(xvt2lk zwQg!lm2Q4~U4nS2914>tA0MaxI(xl*ZQQ<4739!hiD@6VG3Vk4-cXh+RU*H?dvzV& z6V8NesKnAQKB%~cYs`f(4eihNZ`A0&Qq#AEjP=WeV*5ty`(f+%wV6&1qiwREg!H;^ zFy2(Y%{5i~SoqWPBLVyrL@$(g{COv@W3lfsj5wb)^l-%$ws4-u>s0JlF7*QMjA9bX zhX;GQ5f9HLb@8(Qr~L{J$p?C`=YjFJ(LjL+gj8uNT;2+au5AS(tK- zZHql%UE2@ibBS}kho&%p^PG4%o}0bU#1!LCy1xu`uNSkp3J8Fk=@oeD6x?sE$=!I3 z`Z-hBx|>UqH`g0GdCkawxfywju=n9sY&_{U-7@NEhx*tDNrnM^oQJkQC$rL2HqU$xW4tAZyk#zt`tLKh^}QZ&sp>iHw}0Rz zas32B!dtB8VtI;#_k|q4aEMmEAA#v%P-ShDO95r0?DwEKV7lc96zM+YWnZE;Qq@2Y zFZ+4tw<;Y$yJqAw3Vo-?`Bz*!edb%I4*KTN1y^tD zg3lGa#Fw(4Lqm(I=Uqxye6Zr#$<7!Iq`pL7;{&gVf;*$G9;0<7Red>>&iT6czvj29 zNQRWU1+_|+nwQA>2q*RC4vJQ{1^f%N?`%=a0rp67>huGyRY-lE{;zM3;q-&aJ*}>S zKHiUrQi;JRjGZtbU+EKlzv}cH^sUzALB3YG@00j>h6c}B??-BEt`7tfN4Ry9%VmVE z(>3a#c}&zg-R2hQxK7AATP~Q0b$Xuz+2q{b%jfC3tW(S9D2AO}(e^Td>SUbcw2Uvi zLWjmjFNpVrpZIhv(@k(XnO*IPUfYRGH-(n5jWC3eUKcKS!i?K|;ZeSxD+8VUp}gMv z@Us8FA|1A2U6%=4Ckp{C-1m)#ucu@CB*WFjtCRV8Jc^rbeXJjxhqc08nOJpNoGCnq zxxg6u%Rm(z+L#roZn7RaF6ZfM<9>zO-DFVkb)7JP!cU;9jP#h>LM7#lk@0)*T_x zm1i{o32#e*&2p{FBl1Xycv`k_mt3VG*7rjNtF$#{StNi-+*UOR#ypZ=Ero;_SNj)* z+r7|^LI7GFZd_QF} zg-%er>8+vb7si7&E_y6>?SiBJROdw-(1-b z708GV5oQr<>cEkYKWc2?4~*g^DOOsct&BgnxR^tXxycHEU;D$2 z$vZZI;+DxI!ai@E9r@S{#7B&GOc2z>;KTu;wpPP8ww>V9Vu$npG8FhqAK2Q1$NRT!3D3T!Lc+D*w&C7m#UJdK zT+F+`DYr5fO9;FhJ^pDJBW}{OEk^s7k1CKB5zdQN9sj_;=W!qLuyvVFs=)EX)>F(5 z@_y4j|DgUM6y1kE9HkTuH!BKIJl#?v0zlsOGKNuwJ0UKcE>s51dqT1u=@UM&wUI}A zy!l-?W@fb?0(lut3p&ab`~pv?)7t z^Zt5$GbuMGQe_keMSQ-hv93nMr~)#C$XpVAgZ_5NWy-( zL&ejg4rh`%QoJ=`jqPR12)D(uc@kTSACj0(rg#e)AwQdYXZB}(yEvfpYBD1;^RM5Z zfXz%%qj6E5cXpUj9w`h%Hpfq%=jhR%LdKxYtc4)^c$BU_X4qzyirm93n>lP#I!UqI zUzws=7O|-%_(57dJO{WDz3-{EJOJ(-#%^XQV-j44Y0TiwJj9hD!)A`&)Nj-PgDCND zKS=ur&l#h6mVGEvYqxW4#&V9O&V7go*>NbReB%bznxUL?h_sNZF=esVkDNcp>0`Q= z&$Hl1Adlldc~<59dVSEcrZ)V0oxd zcNc!`ddXr3%^1em~qZu2YtK0L$HF z2RFG_VT)BI(h}@9_Bo9sEdqYAIbOsO^s^5%hZ!8IhoupH9rx#A$Df6*=io1 zoXlDDSp#7j@b$bI>!aG=PhSq_Qa_I*3^KkL7cJ#xtf@xtI*j0@?%W`qd0&PU^yS6C zQn`-&gDv3*J>2wt6t8cm*Rx8JX5L)&;RS)zkDS_HhL`={WQ!Sjs;9A$fRl6jQx3dm znU8pXV>G#aNUURaG@QZIKnKc4#i@@LMf-eM^YB~MNIzK%J{;W{f6-pdmCkcn6U|Qt z!}5DiW;5td?|65Qy!dQ8{@_fuCtR>CP~OX3x2)hvqs?2C^!MYGkCN4DCbrVT-+mDP z!ns=c%VC;mysOtqx?5x|Q0oqt|w=FxS`VyN^ZPT4}0< zmZEM+^HWIz@JAqj_A~=Kn}M!bD&@dRo$Y!~HwgeU(lrbEeGp>_2D*NEyl0&26o*If z;JqDvi&}C)Zn{5mNXD=9mmI?HPk*Vmb$sSJy?r0f>PgG*TmSvE7I07dKE2UH4=d(% z2)&60xnf>r9xabe1&gI~@vA(uqF$$Ln#ic>TzTz%z_IMT9q|;AOjIlORo29DC-D#4 z3ykClvLQBJ72m%Lsw)y!_g~yf_obYnuw!#tX*iU9ifRNwbA`d`SBg)b`q;u|%ysjlE^Y@I&z8iTZ(46Sko|t9;v)Z|eigx2RBV=_vv)w`mR++kg7Sw6A8+juK5NPn zlH)ikR@KIg$EUpPwcbZs(IZ1=sX=NkU5=7G&Efm}C2Gf{6SW`)y-r8M%i) z=3mQQx?*bOD-ri~D?DYC41*t>mnB3nu=*qTmJxY>Ulo507GhU}A8bbZoWAF}f!N`< zx#8&!9_OZKf)#cVk@dS zja(X7_IA|7(C~SBg)n4KisA~hRg;XUys%_F{%Hmz4)gMS8<%RE<$J`Cjq?yj=PLii zzZ8>>zgTvbI-s60m@oUEwJ7#*djKT>C;pO_uK34wG@iUH^^YpD4ewlFKsD%?)@La{_ z_+v5sMU)B02>1*qlhhrKk#9WY)X9GK)OJR{$bYJJa9FnM(XdXhDBQCL^plr|lkL+h z3|F_w8&B*jVCZ?G3Lc65Cgh6zExcl@lE?FZG>PXXqsVb$cEY3n;Ah(VBn&txSlq*E zS;`AX6L_8})LBB0zl^1o zU92luckHkap3Zgj-=hvzxUQ@#OF(g3cODrk())FSkRDAS@w&&C7w{2uXyxN(2Dua* z>%QnV+leO%q9F4cv=F&mSN>A{AuHZ6Mylq2V`?_7N<3;In&1R`sszJ0>NHQ# zU#0}3uar4NInPqS*eF};C&9rTu>Q07v&6;K?RRIE|>YA&C~A@eY-v!W=%{Hd$~zuaNArz~4#G^^EI#OA-u ztb4Ov&(@^7`7uElPE0X3%&Lu*zu*h!Ri4&ZkYPUI<)5Xon8e`2d4dmfBTdy{Qn6Me zC969F3^>n%u@)&4dULj`Z{=M^i%HEm*MdlFEcz_F0ozsnl^%b6Yf8*~|F0%9U|#-; zar9*{xeMBKf1y8eT&0L-zklLT4p1YRB20%NcqS{3zKnRTjIwy!Q%&9uqaWubkV)sY zRNOu-x@5%P5%B6r5G?mcMvM?0t{z$WLK%1}$qKU{C8NnDJ0%hU`cKw}S6=pOYx}#frWkt2KhYF`(M59c!_A(xPVk{kWE% z4A?XNzGzrD=q>Ra`ff+x?-fr*^!=AZKf~|!Zj*tGOg_YCX38yeHr0!5!`#T)trwZ%IBl$m}m1SJVBjo@RNAt z-=6Ud95&v=NE)V}>`U+ zC)P}?ko+b~JIb}J%ZWdcXREi)ot7Ah3ApI}J-w|9NU zVbLVK5{70llh_J2!qg8n2JF@lodAU_F+2%%{bb2iy~ z_6SR|h5RUS_|}>7>p*(I_)xI}$}eh5 zoD~xHF?m#T61deBzg8YEgLw1h7sg4GfB^kLbq%|4^_)eQgB6>wc5ejKQf$K7;BG}x zw7*;mF$1q(6z*f~%Wwo)0UvXqDojwoN86kC@c+gED(get3SXHWJpa!aNY>Uld{zuk zh(yxN&8?+1D;!6D^2kon3h0?fh(A)!y^9e;h{Xjm&vMKavxX!{X)-;L*o{ypU9x~s zK^iV4zfjcyev#G*STA8l07bpuRvh5I;L13S2(rmWeDIMX$l}=?#{r4)9D>vYHkqQ? zUdwNBn{b#(_AzrT-@ZJ}C2z#?t$RH3GmJ>SJ*%EEd{yEOb$OelGEwN_yrUV--Wvb7 z)_b4jKb7&FhpP@l5;(M1F{rfUVw(!u0$X&gnPXvrm}>49`UmoL{bC$FJ#74E0|4;wp+I5&^A8$c0gQlYX*S zo&nZ07JJS)Fl&==Zuv-SUfY;3F;s2?`xOg&*td0p#KdgKJ3>NX2+jYG=I;#Dmr&W_l-pD6bs zo%gvHN+vlERxIAk;m|L{*m0)kMT?jz>GyN?3`XDRJV5Q>?`q+ifz6-;9)dx)GV z7tgC6a4q*688|WHJdn>kDZy>Ojt~0_cyhzOsiBurtn9Qo4=L=-`E7H#nw27__vaB$ z%`CemYjd*Sz9C&oM^hjE=ncdgk78&@H{KnYBs9#_d+7vKp`9`RaUQ;hD=`B-@8k1u zaGGu3C(Lo)doO?c!Tv~giIwT26eI;02mSQO^hWx0J93Mm2iK!}6g$s$Dh@eC{6&48 zkYc6#&izF(&TYkl8KkS{fMg^0x&0}DWzK#6ddl2+4svZhVgmJ%pr7S+n9RG``6H3y zbhd8tNH{;3Nq%Hr$|TQQ$*zSzu+}R(BYl6X;of>%CAEG%Y?vz|>G^x-y_MlVH#V9e z0qbpyCepzCh)>;wE0`C%arXRv71-7I{9p|fHe{<-Qw=0Ug>XiI-EUJ8@5f>GEd*y` zOH5Wi?qx$ zx|h-6P)=BWopHrSfSScghj)vIpt)3-OjWep0&b+8o>erhi%E7SQPE5>Ba@&dUJfH= zsmvrNY*M~tEM#NZha(ifVjaA(6Ij|pH!T=~{z5;kVA zQ#HaEyv5ASDKn*K;QKH!N`?Sk94m>f%v>dd2}+6+x09SXCS+@kN2m<9Db09$+yCddV_m0ZoE6pI|-dl9ksw zud4qdzXhX`OHo(FC}fN$Db!?&b}bn>eL}3}Gb|}n#%{$3D?by3?zF?1k5TF7MU55& zfhB6Z9CVk9-CbFqN{mE@^PTu{Ow%|wrfIBgrDtS9AYr=+ON6uu!$3lJ#AYXq!4kRK z^O$(v=l*Ykbi||~vV0b=CUXFZgv6@hh#f~JtDf+s)ub>gMWo4KMk@(8v}kS8u7PNN zR3d3WGo!diJ=T*JC;!!Ud3w%X zv59FYokk!w`-{r7xL3t&BRBzNXGW`JpQH&0Wi)K|P!!<@3zaEwk1=<}>=7cfUG6ew zla#DAku0G2OQqhdS_GGbsAY*c_48*{Jb*B9CT`K-p{3-wQ7UM>85CBF2c_dvH%KDf zVRtGEoZC2RSn$jUT?84yadC?b)9;4|)DyxyC(m}mHjze&X+ zJy&+W&O}V#i1|ye_7^oaIf;opG8aiK*eS8vMCCIW^E!+${?R=%fD(v-Cgp)nlp10Z z$S+0?cSS@3AxA0M5fTFujGv6^oPps8q=#_(G*!nK)E>k2b%i1@+ona$Bg&3(2y|vz zXA5Bn)OwXtjxaZcArMnsg=EBn2sRTWib}Zdh`*n)ZGP+dKFyk@0fPVj(Kt*r?Ikh8rwIa5Fo;v`2 zRAhlUxjN9~dSPGzJz5cvrl+_c2MoOf$bH2WkP%ANb;cCXF^qt6&zJ)GgM0s{MzNOo zDo8uk3j6pfpn&e-aP>2uz&zfqTuZEQ0)sAoO#%~8#*rdSKCj6a2fkN@5|DdSsP#VF zX(WK$_fCNXbnFfa4c6Dqh4`4b&;CHZKnwvTYH@Xj5Rjd}>rp9yfSycpFDib3*|^z6 z#SXBzT{_2&PO~BhXya6g-u90CFm8ad@E=AEkTDlZ&JJg*;*}np!q?CCFU07-5!07- zjP=WG_N_tUW-9{%xFS%1)i!;53(~%9G~iUeOf}Unr($OR3wgviRLuQ1N0nFKo?!4b z^M4&VNXy?ZSP&dy&ij`ij5oq#+P`oCeSy4bK@S^6PF@c#brWe+dM? zeN>vqKVK7v&AYiK`S7Mu1%)&Cts|UY5-6n9hW!kN+G`^@FuNBUgDa9ZBWtxw+#u)XuWc)on=j9>%CD4~uXhOPTSOS- zOUlzEdgU!1p7Ff-)@KwN(o zM~L^&8;U!0_+S|k`ib-A<@}6V*x1E>CdVieXU)saZ+-||iIe6JyX2ht7ca(?dHI6T z{~95b0?S)qy3^^~>vrF2fF{I$A;)i=Y#%b^-%U{NFIi(#LkS4*a2=>D%@Op{U4=2Fu3dRJYdU>gWcmp)~T^Gm~ z>Y@9?0C5SAGS@)MFZ;dxuqssD>w^7Y*87y%n2pr^0vP>oRV>^=w{`1biPY@nmw27A z`vlajO%+!`IImj{8z-b@_{7kNE-TuIT$*meyF&~F8U6_k${|O|a8N)Jw#1&2eNU6M zGMkr^yzI9raSTD@TG+>91w_uwuwuAY!i>nGUL%4JD?~uT0L5=j9L2MZKdO!Ue`+FA z{>Oh=hyT#%47(5$s)8^K>OITp)f~N-<`ox)P$1-R6%zOqNJ3{=8(>{c zv^xDpy+mb2s+jY;<+=Xa#Zjd0J|}%oK9MvxUApr10bkz?RC(#Zfz50p(+|2nCaE#X zfc_-h3irgv*OOc#(c4<%I3O-zi{riwBW{_Fvx5EWN1js<8NEb$Xi==QSWaO4fUcXC zBN)`4B6L4X8p!vnheVZl?n+FVc5=GxlbF9zEQ+YS_`Vlh6 zM!oN&sA3&#lUB0OPt^M~&*vp+LOYxkEtN5c2n(R)HYQVwc-^KQUd|#^L({4s`h`S` zRO3D-jrKq*k1U2&5vE}BgA#ujqhN8IMj$$~j>>!-SUH;ISoDQSSU4u{<8J6^%d?-B zmR}q~6zDHJp-|59H2aZ()rx1wA7Q(XR|M@v$K&Br8p+E#z=@JLtUqE7SdhcT9?ex|7!>CJe;0H2fx{2Wpe(;E&XP9 z=9%(`VGq0+vJuSsXJ;aC54DQgJT;iMr={3r#dGZyfAN1AyOv!!ZY29JcU^_yn?bMV zBW5t@g)JMfG1f>J%RmDS|9hVxnPgt^L|yNs%dAW?A{g(-RZ61d0^1BItYdL9T?x>ggs_1j)R=(WF_4gE^*z?v5$iih_n4l z!LrnTzvWY6I)Y!qsRT03ZOp#xDg=q(&*7P!5E5HXOA!o#3rD|%*0Xh=J#8~EDZMd8 z%`bhooB`YsBklp1IfitQ0J}#~wmHC-m#tysmdt6Yov-A^-mq0^3jZzZ0v+_q4V^22 zvHwmyx#3H;=|n+uTJ5A8+V3JPv5>XlGr3+N+_X1#xFsLK6NM^1eyjOZMRvEi%TWq` zO$H*F*pc~pG%l_#`7=Ws{7zl%-@7R^gQ2w3Eu}B%HAS9Q(X;Zs(F%YL`|0KAqx8@p zsZBl-uUHpmflblrx>F<>lrx=%CCHB&aWJ|!3gTX##5_)Oj?a<)tV*O>7u1V26dI#$ zAHp?WuFK7;)fV`kfBQ#ea8p(;hd-7? ze3a}b?_6NvZ+p_dqk`=)Yvj*kGr`E=qkg(-C(<(n)`j+`RVL8vbbq!qVZ|bF{5W+J5lBDBUfE&^LC%w3U*WJ>BK8OV!mB{_0kr!t6*N(!$$e4eng{=LJJ{lpp)T&Xi6|XJ>iTsR4w*F3(j0WR+ z9E9(0RBuEBP`#d;Z_s-)^w-Bh9tE>KZrpW2_M<@RH}qJVQ9z85Asw~g_^b#U(v7Z7 z3rg6jrtef(nc2*1VDFqk9{$SVpQLM3I??V5d9Z)Fl`CSxKj@12(wTnEemAqbIXKI; zmxD;e73*iyPd+ws6wAyC2I*x@@jz~|k*lN<#~4jku9emzWeXa`u`XlpF!3}l!l(hK zS3gvvda?~0j%b5fh~BP$91MoO%iuj}772xX!f|Xbj_P&FL;GT+K<=J#UKbNryCY-K zWy?ZqWMzi4RsHv(9?E=X3=WO7jP&#NA7Vtj$3!93p47*1=D!W^^K9+kv_WV%Uo~Q) zeT0Bhw=3IDTJMpZ^$8yR9`h7@J$0v|# z5>>e4*p8;h_CYnHLwDiXwS8uYW1-C%r|*Moau1>KIQ<+5)!TOxjn-XoZ_?WkixI4! z<2IyE>U4)*IMapu;Dpv%?|EE|n7$6yQKjcN)67R6usdNp)0z9Aq$nD9KZ&iidVhs4 zbil))0H;n5_4l^I69oEn#+15mz3?1?K}tEbNT55jvvt}8NAl&_(hv29oiz8mkFr!_ zD;mk;od$INDZ$^&KJQ0yRrAWeC+L~J-f0o{s=tJ0z>m=}AqPe$Gl_nXWAE^LP;|a_ z0-ZNe?9DX(PO^SPp?Dp@m_LI{PGFMiyLXTWu8&yj@xFdiX$r45IqN5`7o6*H^VO=1 z_54JX58hBeSWmBy5dCWqg!aL@e6ao=2Pe&i3kS(7izHWLri+ewd_^*4U(?X(0}ESr z5*xeDX~`)AT>gXO_;s8D+m-Dk`SOnZ*%SFSUCykbdEmk>bK6ofTvLS4in=B*ksn+6 zV0|-uhmTP1w>bIWY^Ok&#bx$a>Y{)?jj_h~;>WQ>i-qV=y;=7?P#7w2utlzt& z-+9is7*c@pMb(m7Lbx>-@|ML>a*{?4o0jm5S?4@OqX@E(#45eILwFtK5Cx7t5%xPG zU6*ub7Ev{j9l+xc2EH+Q;!B)iI#!xRY^T7@zX+q6jZd?V|@F&8Y;9i`8j_ zn1JreR2$H3JWXtaM*Xm!A1p3i3HoQ$A{+XUU-Gu%^o$iu!*75wJDt`^bi^w^PSvFr zG=N7KVDvYYNg8FPq3xTX-#X4OOO*^7F3+HiD2b=inM^datrzzRN`+TSmtGAU85Wkk z5o_&Cl5n zPuSG*&bB#JuqzMng=%y|bC%x3`P|6N2E6$8d0A#c;E*uVVx~kMmfi`jSQyK@vIZw% zYO>9_ov>MSNGZ4RE!sa|Ov!Y_rkm{tY{1Oyy;qQvbi4k>apE>DHIISm`+k#E@+vJ3 z8V`93E!u*i6K$%@dDesouuJ%Mf<8}?7W%8Fcd+hr z0^FG)wyxtqt5FHhj&nmD3>?NZrvGrmI);BO|xz!Ogtou;khf~#()4(=Eg6x+@Ss(u{)+OV{$XCAYb z$!6q3`dxmmA#4~$Y+0S1*CfM}#LG=L(a{&)2y-c$$Sq0ZS8_u|#|v=|ev`rCh(S@d ztOwfF_ebBd6@nD$RViEYRalN(Zwt$d2rO02J0nEn+s&uKsNC0hV}6OsB;WD};?M7c z3(WCEsl41AFM}7cZ;8Ce14EWyZakfP9jH-tWyh+BiK6{p`9s@c7UGNbH=*rfp{l>S z84AtFQa=#y{|v4?`#&f88*haZ<}d&j*_*QfJP%BcVE~bO{(HaaNJ9-h1&5~{@p`;w z^-Sy6aHe|k4fZ^y%v)rRuK#@dv$LDECRW*CkK(fAm7YXr#KdR+etLqDvBwY4*NpvZ zx{4W<>Am``3eZ}Omfs`NUioYYytelyw7yt^wKkd^^4(nhofECA9{et3dRb>>wu%C$ zne35V)axxnb3HsDS2Fr?4%6H2-ZL`7Fsm&6TYdY~c)8NjyE{h18SGoz9vcoy`pm^x z1;$yc#<$W<>J+93Um5E9A_sagKDK-_)pu_RNdHLn1H-iPq}(x%*&bg6ZV~g&|lOt*oF3^xmo}193ZEsrq{P zp%c*8q-~f*&Sv5*B%00~fU+ES&(Z)eY=zmRKHTE#jVWd~w`8TB<158~#50AvVr~=@ z#0V2!nf~2i0;)4*R4ZoyMhp)FUg`cyc_miE&h}nDyeZpCk(O$W#*3Efsx!$5e3qF) z4NkvP9AfO6FWJcsw8QZ9p2K*VDIuw^+K@aqtzX?;NAiKh*Jf9iZMy|%J170-?b$S+ zaLa#@&%rcqNAd*>hRVmhMpU~aZXsY%k`a~ zNpBtPW;VpWW}Tc&Cf$58B_zu5+|m&*1&;u4h4531MUsKdm9SBAqijBJ|D6Zu^r=a5KwsTUer4?JaVI}2-do@ps=C!r(=Y?{fo zl03}RuBDZ!r#TS?Jco7@pNY2=y!o&h^0wzVhRN!9w*CCdAx-l3ufE_4vx8z66*be0 zx#eAcxn2K(yUe{$o}tN%?e#md{~$*xFJEvhIdFM(vjb91nWk`FWdxn%tCPxj#_+UE z`=4g4`jM?pvwO#YF`xPGdh2Y%{n4mTWmj}^KUp7c5F1aQ?Tgu}F>r=MrCqKq?y@s8 zjZIHqx^kEKQcb2CX5{!<-m7Z+Z|3Mv)9+PmH*P-#nxW9nzC86GUuG} zHJ+xueSS~V>1z5q3!NR>sijr^qcIMSEQBP+%QReW?#|3G?_(`^^~e|~>M7hSe_fyY zMjPAp^l(oMt1&CjtW)-MY&(0|E_=31rTIa}s9w)(_&&jv%>r68Tn(ren_WdZJ-0(o zOoyw{+AfYkr@T6;nRP)<%%Ux4x{_1%oF-FwaW8tkZLo@k3Gb?pR@$rfh-TwPR;;XP zUuK{rG1}X$5v?g#^q%FqOK<`YhO)I>z4^*3Qq32qGl0D`xnTaT+-j3}T8^=oVE%5_ z0Pv;o;sj!X-6XT^WZ8z6ZzF(U0v#|3&55yJoeS=AQV;)qrmR3Je zQUVwYi5{-@6W%JvJ9`+ct_}SDM^iT9Q_gV)Al{M`eO53n=Zb5NFjM$KwRYH7ywwKP zz{QyGYxQ+C%e9`~EET09xcXwip@?0b*4J3Q-z7G!UL7ZmuO=E#tK5?7F2UKsQBU=# zEgcO#ib|g?HYslVtY8ws-9q0|qgWf1)obJ|F}?JT7wvfs$r;0oFl-D)0J^PTnyq%v zm+mgYgdg;Fz-BuXg0I!b<)HSfYSHRE^R!ykm`!i2o;PgT-_;~1hxY#OjZ~%9?gGn= z%^0iQftW|1j$Yc!_Zqee!DOOA|M>R9+gI>~=Z~L0{rUON z-+%n}%g@iBe*g06f1jVeeE$07kKexi_T~Q+_;0^{`2&k@Km6q{{Pz_Z$JDGVE72&@3@f<$e@Qj6c7&;=PI_b z*N199KpgBnryjfzAl!iRN61iCaMd0`1@!}B9M=@g0~{CZ1?sWRCI$`phZ+sg<}>tm zkkmu1P25j#!~o0qq1-?xse>ngA3s1^#XmshxLvqJu*-_hrH9Z055Uy`i-16c9DTt4 z1)!@oD0+Z)091evMi-Pkfv|@zkRM<(f>X%@N+<{xY#SUOoT))w%Fz2CU@HxW)>A9< z(-DuIK>{uR6#$^B-_noi*ZQ~cG5s1oSMj}y4_17!;*%BMtoUdZ-H`4G>-b*9*D5|& z@x7|@yy=>57yHF0#i?$hx(hb!uw9r$;#AAQ-+=+~_&d-b(BcHR5FkT<4GDT!oE8WX zU_^it0Zt^~IUq)W8HoxFti$YIAqGAWwij0q&$I0`LsbC%~TofdUK)P$+<_0ImYK z3eYH3F@@&0&ojJElp9c zxCioq*#=NIfVu(H&8hYa`~%z#;BH}nc zYR~|81GpP*LBlm@QArHz0C@w*8$jNouHzj5cLTT^z}-|aSG^tJZnzpvEm45H0ptxJ zZvc4%xLa0Y#WMhR1GpQ&-2m>UTo~YP0C&S}X#jaEO4WF-s8x&S0PY5GH-NhV+zsGv z0C%fO`go@5Gk6!k-9X9>aBhHe1DqR3xdGNqz`zD`33u+I|8Z}B{q=7E009600|4w= JrfHv78~~qA^pgMp literal 0 HcmV?d00001 diff --git a/research/connected-l18-root-caller/inputs/root_A.json b/research/connected-l18-root-caller/inputs/root_A.json new file mode 100644 index 0000000000..1f8c2e3152 --- /dev/null +++ b/research/connected-l18-root-caller/inputs/root_A.json @@ -0,0 +1 @@ +{"n": 40, "N": 42, "X": [["1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "2", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "2", "2", "2", "2", "2", "2", "2", "2", "-1"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "2", "0"], ["-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0"]], "Y": [["1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "-1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "2", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "-1", "1", "1"], ["3", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "3", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "-2", "2", "1"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0"], ["1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"], ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0"]], "stages": [{"units": [0, 1], "mask": [0, 1, 20, 21]}, {"units": [2, 3], "mask": [0, 1, 2, 20, 21, 22]}, {"units": [4, 5], "mask": [0, 1, 2, 3, 20, 21, 22, 23]}, {"units": [6, 7], "mask": [0, 1, 2, 3, 4, 20, 21, 22, 23, 24]}, {"units": [8, 9], "mask": [0, 1, 2, 3, 4, 5, 20, 21, 22, 23, 24, 25]}, {"units": [10, 11], "mask": [0, 1, 2, 3, 4, 5, 6, 20, 21, 22, 23, 24, 25, 26]}, {"units": [12, 13], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 20, 21, 22, 23, 24, 25, 26, 27]}, {"units": [14, 15], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 20, 21, 22, 23, 24, 25, 26, 27, 28]}, {"units": [16, 17], "mask": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]}, {"units": [24, 25], "mask": [0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 30, 31, 32, 33, 34, 35, 36, 37, 38]}, {"units": [26, 27], "mask": [0, 11, 12, 13, 14, 15, 16, 17, 18, 20, 31, 32, 33, 34, 35, 36, 37, 38]}, {"units": [28, 29], "mask": [0, 12, 13, 14, 15, 16, 17, 18, 20, 32, 33, 34, 35, 36, 37, 38]}, {"units": [30, 31], "mask": [0, 13, 14, 15, 16, 17, 18, 20, 33, 34, 35, 36, 37, 38]}, {"units": [32, 33], "mask": [0, 14, 15, 16, 17, 18, 20, 34, 35, 36, 37, 38]}, {"units": [34, 35], "mask": [0, 15, 16, 17, 18, 20, 35, 36, 37, 38]}, {"units": [36, 37], "mask": [0, 16, 17, 18, 20, 36, 37, 38]}, {"units": [38, 39], "mask": [0, 17, 18, 20, 37, 38]}, {"units": [40, 41], "mask": [0, 18, 20, 38]}], "note": "t=0 direct sum of two chain roots, one stage variable each stage"} \ No newline at end of file diff --git a/research/connected-l18-root-caller/inputs/root_L3_tHHtHt.json b/research/connected-l18-root-caller/inputs/root_L3_tHHtHt.json new file mode 100644 index 0000000000..15071c325b --- /dev/null +++ b/research/connected-l18-root-caller/inputs/root_L3_tHHtHt.json @@ -0,0 +1 @@ +{"types": "tHHtHt", "a": [["1", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "0", "0", "0", "0", "0", "0"], ["0", "0", "1", "0", "0", "0", "0", "0"], ["0", "0", "0", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "0", "0", "0"], ["0", "0", "0", "0", "0", "1", "0", "0"], ["0", "0", "0", "0", "0", "0", "1", "0"], ["0", "0", "0", "0", "0", "0", "0", "1"], ["-1", "0", "-1", "0", "-1", "0", "-1", "0"]], "b": [["0", "1", "0", "0", "0", "0", "0", "0"], ["-1", "0", "1", "0", "0", "0", "0", "0"], ["0", "-1", "0", "1", "0", "0", "0", "0"], ["0", "0", "-1", "0", "1", "0", "0", "0"], ["0", "0", "0", "-1", "0", "1", "0", "0"], ["0", "0", "0", "0", "-1", "0", "1", "0"], ["0", "0", "0", "0", "0", "-1", "0", "1"], ["0", "0", "0", "0", "0", "0", "-1", "0"], ["0", "0", "0", "0", "0", "0", "0", "-1"]], "stages": [{"block": ["H", [1, 2]], "idle_slots": [2, 2]}, {"block": ["H", [3, 4]], "idle_slots": [5, 5]}, {"block": ["H", [6, 7]], "idle_slots": [7, 8]}], "params": ["4", "-4", "4", "-4", "-9", "-1/13", "0", "0", "24/13", "0", "0", "8", "-6/13", "6", "-18/13", "0", "-8", "48/23", "-8", "48/23", "108/23", "12/299", "0", "0", "-4", "0", "0", "-6", "1", "-13", "3", "0", "5/3", "0", "5/3", "3", "5/3", "3", "0", "0", "0", "0", "-7", "0", "0", "-2", "7", "0", "-12/7", "0", "-12/7", "6", "-12/7", "6", "0", "0", "0", "0", "-9", "0", "0", "5", "9", "0", "2379/287", "0", "2379/287", "312/287", "9", "780/287", "0", "780/287", "0", "0", "-6/13", "3/13", "-3", "-9", "0", "0", "-9", "0", "-9", "9/7", "-1485/182", "45/14", "0", "45/14", "0", "0", "-8/13", "4/13", "-4", "15", "0", "0"]} \ No newline at end of file diff --git a/research/connected-l18-root-caller/inputs/root_L3_tHtHHt.json b/research/connected-l18-root-caller/inputs/root_L3_tHtHHt.json new file mode 100644 index 0000000000..67ea062843 --- /dev/null +++ b/research/connected-l18-root-caller/inputs/root_L3_tHtHHt.json @@ -0,0 +1 @@ +{"types": "tHtHHt", "a": [["1", "0", "0", "0", "0", "0", "0", "0"], ["0", "1", "0", "0", "0", "0", "0", "0"], ["0", "0", "1", "0", "0", "0", "0", "0"], ["0", "0", "0", "1", "0", "0", "0", "0"], ["0", "0", "0", "0", "1", "0", "0", "0"], ["0", "0", "0", "0", "0", "1", "0", "0"], ["0", "0", "0", "0", "0", "0", "1", "0"], ["0", "0", "0", "0", "0", "0", "0", "1"], ["-1", "0", "-1", "0", "-1", "0", "-1", "0"]], "b": [["0", "1", "0", "0", "0", "0", "0", "0"], ["-1", "0", "1", "0", "0", "0", "0", "0"], ["0", "-1", "0", "1", "0", "0", "0", "0"], ["0", "0", "-1", "0", "1", "0", "0", "0"], ["0", "0", "0", "-1", "0", "1", "0", "0"], ["0", "0", "0", "0", "-1", "0", "1", "0"], ["0", "0", "0", "0", "0", "-1", "0", "1"], ["0", "0", "0", "0", "0", "0", "-1", "0"], ["0", "0", "0", "0", "0", "0", "0", "-1"]], "stages": [{"block": ["H", [1, 2]], "idle_slots": [1, 3]}, {"block": ["H", [4, 5]], "idle_slots": [6, 6]}, {"block": ["H", [6, 7]], "idle_slots": [7, 8]}], "params": ["-13", "3042/509", "-13", "3042/509", "676/509", "0", "0", "0", "-198/415", "0", "0", "-11", "99/830", "-253/830", "297/830", "0", "23", "-1", "23", "-1", "-2/9", "0", "0", "0", "-13", "0", "0", "-29", "13/4", "-299/36", "39/4", "0", "12", "0", "12", "22/3", "0", "22/3", "0", "0", "0", "0", "-3", "-27", "0", "0", "3", "0", "26", "0", "26", "-26/9", "0", "-26/9", "0", "0", "0", "0", "11", "-18", "0", "0", "-11", "0", "768/89", "0", "768/89", "646/89", "24", "950/89", "0", "950/89", "0", "0", "-2", "9", "-23", "21", "0", "0", "-6", "0", "-6", "17", "30", "25", "0", "25", "0", "0", "-38/23", "171/23", "-19", "39", "0", "0"]} \ No newline at end of file diff --git a/research/connected-l18-root-caller/matrix.py b/research/connected-l18-root-caller/matrix.py new file mode 100644 index 0000000000..f7dd034102 --- /dev/null +++ b/research/connected-l18-root-caller/matrix.py @@ -0,0 +1,77 @@ +"""Exact rational matrix helpers and explicit L3 projector decoder.""" +from fractions import Fraction as F + +def eye(n): + return [[F(i == j) for j in range(n)] for i in range(n)] + +def zero(n): + return [[F(0) for _ in range(n)] for _ in range(n)] + +def add(a, b, c=F(1)): + return [[x+c*y for x,y in zip(r,s)] for r,s in zip(a,b)] + +def scale(a, c): + return [[c*x for x in r] for r in a] + +def mul(a,b): + bt=list(zip(*b)) + return [[sum((x*y for x,y in zip(r,s) if x and y), F(0)) for s in bt] for r in a] + +def outer(a,b): + return [[x*y for y in b] for x in a] + +def dot(a,b): + return sum((x*y for x,y in zip(a,b)), F(0)) + +def rank(a): + a=[r[:] for r in a]; pivot=0 + for c in range(len(a[0])): + p=next((i for i in range(pivot,len(a)) if a[i][c]),None) + if p is None: continue + a[pivot],a[p]=a[p],a[pivot]; q=a[pivot][c] + a[pivot]=[x/q for x in a[pivot]] + for i in range(pivot+1,len(a)): + q=a[i][c] + if q: a[i]=[x-q*y for x,y in zip(a[i],a[pivot])] + pivot+=1 + if pivot==len(a): break + return pivot + +def inverse(a): + n=len(a); b=[r[:]+s for r,s in zip(a,eye(n))] + for c in range(n): + p=next(i for i in range(c,n) if b[i][c]); b[c],b[p]=b[p],b[c] + q=b[c][c]; b[c]=[x/q for x in b[c]] + for i in range(n): + if i!=c: + q=b[i][c]; b[i]=[x-q*y for x,y in zip(b[i],b[c])] + return [r[n:] for r in b] + +def prefixes(a,b,coefficient): + out=[eye(len(a[0]))] + for x,y in zip(a,b): + out.append(mul(add(eye(len(x)),outer(x,y),coefficient),out[-1])) + return out + +def reconstruct(data,coefficient=F(1)): + """Recovered interpretation; not claimed to reproduce unpublished author code. + Six (p,q) pairs normalize to p q/(q p). Slot s is after s units. + Prefix conjugation transports every projector to initial coordinates. + """ + a=[[F(v) for v in r] for r in data['a']] + b=[[F(v) for v in r] for r in data['b']] + n=len(a[0]); v=list(map(F,data['params'])) + pref=prefixes(a,b,coefficient); inv=[inverse(p) for p in pref] + es=[]; pieces=[] + for k,st in enumerate(data['stages']): + u,w=st['block'][1] + host=add(outer(a[w],b[u]),outer(a[u],b[w]),F(-1)) + ps=[mul(mul(inv[w+1],host),pref[w+1])] + for j,slot in enumerate(st['idle_slots']): + off=4*n*k+2*n*j; p,q=v[off:off+n],v[off+n:off+2*n] + idle=scale(outer(p,q),1/dot(q,p)) + ps.append(mul(mul(inv[slot],idle),pref[slot])) + pieces.append(ps); e=zero(n) + for p in ps: e=add(e,p) + es.append(e) + return a,b,pref,pieces,es diff --git a/research/connected-l18-root-caller/replay.py b/research/connected-l18-root-caller/replay.py new file mode 100644 index 0000000000..26a0267be0 --- /dev/null +++ b/research/connected-l18-root-caller/replay.py @@ -0,0 +1,74 @@ +from pathlib import Path +from fractions import Fraction as F +from collections import Counter +import json,math +HERE=Path(__file__).resolve().parent +if not __debug__: raise RuntimeError('Exact replay requires assertions enabled') +ZERO=(F(0),F(0));ONE=(F(1),F(0)) +def ga(a,b):return(a[0]+b[0],a[1]+b[1]) +def gm(a,b):return(a[0]*b[0]-a[1]*b[1],a[0]*b[1]+a[1]*b[0]) +def gp(q,n): + out=ONE + for _ in range(n%4):out=gm(out,q) + return out + +def padd(a,b,c): + out=a.copy() + for m,x in b.items(): + z=ga(out.get(m,ZERO),gm(c,x)) + if z!=ZERO:out[m]=z + elif m in out:del out[m] + return out + +def radd(a,b,c):return[padd(x,y,c) for x,y in zip(a,b)] +def rscale(a,c):return[{m:gm(c,x) for m,x in p.items() if gm(c,x)!=ZERO} for p in a] +def rd(a,k): + out=[] + for p in a: + q={} + for m,x in p.items(): + assert(m//4**k)%4<3 + q[m+4**k]=x + out.append(q) + return out + +def replay(C,q,check=True): + n=C['roles'];R=[[{0:ONE} if i==j else {} for j in range(n)] for i in range(n)];peak=0;den=1;mag=F(0) + for e in C['events']: + op=e[0] + if op=='ADD':R[e[1]]=radd(R[e[1]],R[e[2]],(F(e[3]),F(0))) + elif op=='SCALE':R[e[1]]=rscale(R[e[1]],(F(e[2]),F(0))) + elif op=='SWAP':R[e[1]],R[e[2]]=R[e[2]],R[e[1]] + elif op=='QUERY':R[e[1]]=radd(R[e[1]],R[e[2]],gp(q,e[3])) + elif op=='LAMBDA':R[e[1]]=rscale(R[e[1]],ONE if q[1]==0 else(F(0),F(e[2]))) + elif op=='IDLE_ONE': + for k in e[2]:R[e[1]]=rd(R[e[1]],k) + elif op=='HOST': + x,y,k=e[1:4];old=R[x];R[x]=rd(radd(old,R[y],gp(q,1)),k);R[y]=rd(rscale(old,gm((F(-1),F(0)),gp(q,-1))),k) + else:raise ValueError(op) + peak=max(peak,sum(len(p) for row in R for p in row)) + for row in R: + mass=F(0) + for p in row: + for z in p.values(): + mass+=abs(z[0])+abs(z[1]);den=math.lcm(den,z[0].denominator,z[1].denominator) + mag=max(mag,mass) + target=[[{sum(4**k for k in range(C['stages']) if C['masks'][i]>>k&1):q} if i==j else{} for j in range(n)] for i in range(n)] + if check:assert R==target + return dict(ok=R==target,peak_monomials=peak,common_denominator=str(den),denominator_bits=den.bit_length(),max_coefficient_row_l1=str(mag)) + + +if __name__=='__main__': + result={} + for g in [3,9,18]: + C=json.loads((HERE/f'caller_L{g}.json').read_text()) + chars=[ONE,(-F(1),F(0)),(F(0),F(1)),(F(0),-F(1))] + result[str(g)]=dict(characters=[replay(C,q)for q in chars]) + controls={} + for op in ['HOST','QUERY','IDLE_ONE','LAMBDA','ADD']: + bad=json.loads(json.dumps(C));idx=next(i for i,e in enumerate(bad['events'])if e[0]==op);del bad['events'][idx] + controls['drop_'+op]=any(not replay(bad,q,False)['ok']for q in chars) + assert all(controls.values());result[str(g)]['controls']=controls + expected=HERE/'REPLAY.json' + if expected.exists():assert result==json.loads(expected.read_text()) + print(json.dumps(result,indent=2));print('PASS_FOUR_CHARACTER_CALLER') diff --git a/research/connected-l18-root-caller/review.py b/research/connected-l18-root-caller/review.py new file mode 100644 index 0000000000..e2cfbd6db5 --- /dev/null +++ b/research/connected-l18-root-caller/review.py @@ -0,0 +1,22 @@ +"""Read-only adapter for separately authored exact checks.""" +from pathlib import Path +import importlib.util,json,hashlib +if not __debug__:raise RuntimeError('Assertions required') +HERE=Path(__file__).resolve().parent + +def module(name): + spec=importlib.util.spec_from_file_location('independent_'+name,HERE/'review'/f'{name}.py');m=importlib.util.module_from_spec(spec);spec.loader.exec_module(m);return m +if __name__=='__main__': + for f,h in json.loads((HERE/'review/PINS.json').read_text()).items():assert hashlib.sha256((HERE/'review'/f).read_bytes()).hexdigest()==h + root=module('root');tariff=module('tariff') + for g in[3,9,18]: + got=json.loads(json.dumps(root.audit(HERE/f'root_L{g}.json')));assert got==json.loads((HERE/f'review/ROOT-L{g}.json').read_text()) + got=json.loads(json.dumps(tariff.audit(HERE/'root_L18.json',HERE/'caller_L18.json')));assert got==json.loads((HERE/'review/TARIFF-L18.json').read_text()) + import sys,io,contextlib + native=module('native_screen');before=sys.argv[:];buf=io.StringIO() + try: + sys.argv=['native_screen','--word',str(HERE/'inputs/final_native.json.gz'),'--caller',str(HERE/'caller_L18.json'),'--base-invoice',str(HERE/'inputs/base_invoice.json')] + with contextlib.redirect_stdout(buf):native.main() + finally:sys.argv=before + assert json.loads(buf.getvalue())==json.loads((HERE/'review/NATIVE-SCREEN.json').read_text()) + print('PASS_INDEPENDENT_CONNECTED_ROOT') diff --git a/research/connected-l18-root-caller/review/COALESCING-CORROBORATION.json b/research/connected-l18-root-caller/review/COALESCING-CORROBORATION.json new file mode 100644 index 0000000000..4d14491fc3 --- /dev/null +++ b/research/connected-l18-root-caller/review/COALESCING-CORROBORATION.json @@ -0,0 +1,58 @@ +{ + "status": "PASS_SCOPED_COORDINATE_RELAXATION", + "degrees": [ + 18, + 9, + 7, + 7, + 8, + 6, + 6, + 7, + 4, + 4, + 5, + 3, + 3, + 4, + 1, + 1, + 1, + 0, + 0, + 3, + 0, + 0, + 4, + 2, + 2, + 6, + 3, + 3, + 7, + 5, + 5, + 9, + 6, + 6, + 10, + 8, + 8, + 0 + ], + "savings_interval": [ + "3033528101617798656112890157815521712666569108366082250278978304720236523139057/312500000000000000000000000000000000000000000000000000000000000000000000000000", + "121341124064711946244515606312620868506662764334643290011159132188809460925586779/12500000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "savings_float": [ + 9.707289925176955, + 9.707289925176955 + ], + "required_interval": [ + "252045700871891006117661147933138018225692366318310196499062699144282319103300381/25000000000000000000000000000000000000000000000000000000000000000000000000000000", + "25204570087189100611766114793313801822569236631831019649906269914428231910339183/2500000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "shortfall_lower": "9363452742467113628629935307896281212366837649023616476744434766663397252126823/25000000000000000000000000000000000000000000000000000000000000000000000000000000", + "shortfall_float": 0.37453810969868456, + "scope": "Fixed38 coordinate roles;181 idles;2coordinate hosts perstage;free all-occurrence same-role merging. No general noncoordinate/native obstruction." +} diff --git a/research/connected-l18-root-caller/review/NATIVE-SCREEN.json b/research/connected-l18-root-caller/review/NATIVE-SCREEN.json new file mode 100644 index 0000000000..50efbb519b --- /dev/null +++ b/research/connected-l18-root-caller/review/NATIVE-SCREEN.json @@ -0,0 +1,106 @@ +{ + "F_plus_H1_flux": 1824, + "F_plus_H1_total_surplus": 760, + "decimal_diagnostics": [ + { + "F_plus_H1_excess": "0.56010155749309112470591366207364004050153859181846710333125044254283", + "F_plus_owned_H1": "17.69144246034742374374226766005918882596302205588672118282217165847194", + "direct_2H8_2H1": "17.87977915542244729685245179385024283436296335935575119145603373117512", + "kappa": "0.00362701882", + "optimistic_200_pair_average": "16.69183303860612547832196639740589905469059016993397237884018706223357", + "root_native_gate": "17.13134090285433261903635399798554878546148346406825407949092121592911", + "source_F": "16.69144246034742374374226766005918882596302205588672118282217165847194", + "two_plane_total": "3338.366607721225095664393279481179810938118033986794475768037412446714" + }, + { + "F_plus_H1_excess": "0.56090360605116616032886342215277046550073736040002877275662354442563", + "F_plus_owned_H1": "17.69156997132560881744434535959819594850102165127698553460444813337146", + "direct_2H8_2H1": "17.87967879314305368469257668080959404075866024594087966633329031309724", + "kappa": "0.00363005817", + "optimistic_200_pair_average": "16.69194291954464571022790950055455399321534375977813713842975079698974", + "root_native_gate": "17.13066636527444265711548193744542548300028429087695676184782458894583", + "source_F": "16.69156997132560881744434535959819594850102165127698553460444813337146", + "two_plane_total": "3338.388583908929142045581900110910798643068751955627427685950159397947" + } + ], + "grouped_order": [ + "X1", + "X2", + "Y1", + "Y2" + ], + "inputs": { + "base_invoice": "87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6", + "caller": "f4090329f219edd493b4ca592128521e867a355fb528556b15201e759783568b", + "word": "2b94953dc14a122e3ef089633f05b58ec689ec5156feb7c784ed3e137dc01883" + }, + "native_public_inputs": 1480, + "native_type_A_exact_ports": 96, + "root_outside_paid": { + "1": 3, + "8": 181 + }, + "root_targets": { + "9": 3, + "17": 3, + "25": 5, + "33": 4, + "41": 3, + "49": 5, + "57": 4, + "65": 5, + "73": 4, + "81": 1, + "145": 1 + }, + "scope": "Same-frame invertible input/output remix of two main planes only; excludes paid cross-frame mixing, feedback, helper mixing and larger rewrites. CLEAR uses inherited owned erasure. No Clifford/all-width replay newly claimed.", + "source_F_flux": 1720, + "source_F_helpers": { + "1": 14, + "2": 8, + "3": 4, + "4": 109, + "5": 17, + "6": 3, + "7": 10, + "8": 40, + "9": 359 + }, + "source_F_paid": { + "1": 2234, + "2": 454, + "3": 489, + "4": 110, + "5": 152, + "6": 7, + "7": 9, + "8": 1 + }, + "status": "SCOPED_OBSTRUCTIONS_ONLY_NO_NEW_NATIVE", + "type_A_matrix": [ + [ + 1, + 0, + 0, + 0 + ], + [ + 0, + 1, + 0, + -1 + ], + [ + 1, + 0, + 1, + 0 + ], + [ + 0, + 0, + 0, + 1 + ] + ] +} diff --git a/research/connected-l18-root-caller/review/PINS.json b/research/connected-l18-root-caller/review/PINS.json new file mode 100644 index 0000000000..f427774796 --- /dev/null +++ b/research/connected-l18-root-caller/review/PINS.json @@ -0,0 +1,10 @@ +{ + "ROOT-L3.json": "ed168e53a67b4e9c85969c2f80074807c39483bdf2d065b449c46b7d2a0b8be0", + "ROOT-L9.json": "34befb4ac0fa665199e1a7d4c16f6ad56c068aa861302bfe8b9ca428fb3f5970", + "tariff.py": "3a17b5389ec1614bcd0c7e8194dc5c1a3da998bfa4560c6cba9532ed299b54a6", + "ROOT-L18.json": "45bf8c1345bb8f770881daa1bd4cc464d8d5947907c7bc5f0315b7a1a25f3850", + "root.py": "ee6eee18ca9d57e851435994dafd0f1be513df02670c30f4dcefcdf368f078db", + "TARIFF-L18.json": "e5c74017d78317cfeab1738429bfe3fd989e5e80d10c72b609f82a34bbc9b115", + "native_screen.py": "3bc9b2df9c26a914de819f9a8d83a45b439d2254be2758bcc14ab426e58753e5", + "NATIVE-SCREEN.json": "d10ed678bf10c5e252dea713abd8188c75fbcd04c8d82f566976ec5407a24b99" +} diff --git a/research/connected-l18-root-caller/review/ROOT-L18.json b/research/connected-l18-root-caller/review/ROOT-L18.json new file mode 100644 index 0000000000..cfaac7e877 --- /dev/null +++ b/research/connected-l18-root-caller/review/ROOT-L18.json @@ -0,0 +1,502 @@ +{ + "status": "PASS", + "root_sha256": "be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34", + "n": 38, + "N": 39, + "L": 18, + "sector_semantics": "I+(S-1) X_i Y_i; S^2=1", + "integral_header": true, + "connected_header": "every offdiagonal Gram entry is nonzero", + "connected_masks": "all masks share coordinate0 and their union covers all n fields", + "complete_sign_Gram_entries": 1521, + "minus_endpoint": "-I", + "mask_prefix_commutators": 36, + "stages": [ + { + "stage": 0, + "units": [ + 1, + 2 + ], + "mask": [ + 0, + 1, + 2, + 3 + ], + "host_rank": 2, + "idle_rank": 2, + "support_Y": 4 + }, + { + "stage": 1, + "units": [ + 3, + 4 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "host_rank": 2, + "idle_rank": 5, + "support_Y": 4 + }, + { + "stage": 2, + "units": [ + 5, + 6 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "host_rank": 2, + "idle_rank": 8, + "support_Y": 5 + }, + { + "stage": 3, + "units": [ + 7, + 8 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "host_rank": 2, + "idle_rank": 8, + "support_Y": 4 + }, + { + "stage": 4, + "units": [ + 9, + 10 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "host_rank": 2, + "idle_rank": 11, + "support_Y": 4 + }, + { + "stage": 5, + "units": [ + 11, + 12 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "host_rank": 2, + "idle_rank": 14, + "support_Y": 5 + }, + { + "stage": 6, + "units": [ + 13, + 14 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "host_rank": 2, + "idle_rank": 14, + "support_Y": 4 + }, + { + "stage": 7, + "units": [ + 15, + 16 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "host_rank": 2, + "idle_rank": 17, + "support_Y": 4 + }, + { + "stage": 8, + "units": [ + 18, + 19 + ], + "mask": [ + 0, + 1, + 4, + 7, + 10, + 13, + 16, + 19, + 22, + 25, + 28, + 31, + 34, + 37 + ], + "host_rank": 2, + "idle_rank": 12, + "support_Y": 14 + }, + { + "stage": 9, + "units": [ + 21, + 22 + ], + "mask": [ + 0, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 17, + "support_Y": 4 + }, + { + "stage": 10, + "units": [ + 23, + 24 + ], + "mask": [ + 0, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 17, + "support_Y": 5 + }, + { + "stage": 11, + "units": [ + 25, + 26 + ], + "mask": [ + 0, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 14, + "support_Y": 4 + }, + { + "stage": 12, + "units": [ + 27, + 28 + ], + "mask": [ + 0, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 11, + "support_Y": 4 + }, + { + "stage": 13, + "units": [ + 29, + 30 + ], + "mask": [ + 0, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 11, + "support_Y": 5 + }, + { + "stage": 14, + "units": [ + 31, + 32 + ], + "mask": [ + 0, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 8, + "support_Y": 4 + }, + { + "stage": 15, + "units": [ + 33, + 34 + ], + "mask": [ + 0, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 5, + "support_Y": 4 + }, + { + "stage": 16, + "units": [ + 35, + 36 + ], + "mask": [ + 0, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 5, + "support_Y": 5 + }, + { + "stage": 17, + "units": [ + 37, + 38 + ], + "mask": [ + 0, + 34, + 35, + 36 + ], + "host_rank": 2, + "idle_rank": 2, + "support_Y": 4 + } + ], + "formal_all_D": { + "1": [ + true, + 38, + 26 + ], + "-1": [ + true, + 38, + 26 + ] + }, + "negative_controls": [ + "first mask coordinate omitted", + "first unit replaced", + "one header coefficient changed" + ], + "thin_units": [ + 0, + 17, + 20 + ], + "target_profile": { + "9": 3, + "17": 3, + "25": 5, + "33": 4, + "41": 3, + "49": 5, + "57": 4, + "65": 5, + "73": 4, + "81": 1, + "145": 1 + }, + "unbundled_paid_excluding_HOST": { + "1": 3, + "8": 181 + }, + "hypothetical_ideal_paid_with_2H8_per_HOST": { + "1": 3, + "8": 217 + }, + "mask_incidence": 217, + "target_mass": 1774, + "unbundled_nonnative_mass": 1451, + "hypothetical_ideal_mass": 1739, + "hypothetical_ideal_surplus": 35, + "unbuilt_obligations": [ + "18 resonant t=-1 HOST supplier calls with their actual full T/P invoice", + "all scalar basis/gauge/wrapper operations and exact alphabet checks", + "native all-width correctness, rounding, finite compiler and outer admission; no kappa claim" + ] +} diff --git a/research/connected-l18-root-caller/review/ROOT-L3.json b/research/connected-l18-root-caller/review/ROOT-L3.json new file mode 100644 index 0000000000..5f03ba2d4c --- /dev/null +++ b/research/connected-l18-root-caller/review/ROOT-L3.json @@ -0,0 +1,109 @@ +{ + "status": "PASS", + "root_sha256": "cdc6535c3d5927915ce622fb2b71b15b9a98f65c0759222e487dcd558fd8ee59", + "n": 8, + "N": 9, + "L": 3, + "sector_semantics": "I+(S-1) X_i Y_i; S^2=1", + "integral_header": true, + "connected_header": "every offdiagonal Gram entry is nonzero", + "connected_masks": "all masks share coordinate0 and their union covers all n fields", + "complete_sign_Gram_entries": 81, + "minus_endpoint": "-I", + "mask_prefix_commutators": 6, + "stages": [ + { + "stage": 0, + "units": [ + 1, + 2 + ], + "mask": [ + 0, + 1, + 2, + 3 + ], + "host_rank": 2, + "idle_rank": 2, + "support_Y": 4 + }, + { + "stage": 1, + "units": [ + 3, + 4 + ], + "mask": [ + 0, + 1, + 4, + 7 + ], + "host_rank": 2, + "idle_rank": 2, + "support_Y": 4 + }, + { + "stage": 2, + "units": [ + 6, + 7 + ], + "mask": [ + 0, + 4, + 5, + 6 + ], + "host_rank": 2, + "idle_rank": 2, + "support_Y": 4 + } + ], + "formal_all_D": { + "1": [ + true, + 8, + 6 + ], + "-1": [ + true, + 8, + 6 + ] + }, + "negative_controls": [ + "first mask coordinate omitted", + "first unit replaced", + "one header coefficient changed" + ], + "thin_units": [ + 0, + 5, + 8 + ], + "target_profile": { + "9": 5, + "17": 2, + "25": 1 + }, + "unbundled_paid_excluding_HOST": { + "1": 3, + "8": 6 + }, + "hypothetical_ideal_paid_with_2H8_per_HOST": { + "1": 3, + "8": 12 + }, + "mask_incidence": 12, + "target_mass": 104, + "unbundled_nonnative_mass": 51, + "hypothetical_ideal_mass": 99, + "hypothetical_ideal_surplus": 5, + "unbuilt_obligations": [ + "3 resonant t=-1 HOST supplier calls with their actual full T/P invoice", + "all scalar basis/gauge/wrapper operations and exact alphabet checks", + "native all-width correctness, rounding, finite compiler and outer admission; no kappa claim" + ] +} diff --git a/research/connected-l18-root-caller/review/ROOT-L9.json b/research/connected-l18-root-caller/review/ROOT-L9.json new file mode 100644 index 0000000000..946d90e1a1 --- /dev/null +++ b/research/connected-l18-root-caller/review/ROOT-L9.json @@ -0,0 +1,242 @@ +{ + "status": "PASS", + "root_sha256": "0bf14e78ad0de3a1a863d7acb187b168ee67823a1aa4da95ccb86516948cf186", + "n": 20, + "N": 21, + "L": 9, + "sector_semantics": "I+(S-1) X_i Y_i; S^2=1", + "integral_header": true, + "connected_header": "every offdiagonal Gram entry is nonzero", + "connected_masks": "all masks share coordinate0 and their union covers all n fields", + "complete_sign_Gram_entries": 441, + "minus_endpoint": "-I", + "mask_prefix_commutators": 18, + "stages": [ + { + "stage": 0, + "units": [ + 1, + 2 + ], + "mask": [ + 0, + 1, + 2, + 3 + ], + "host_rank": 2, + "idle_rank": 2, + "support_Y": 4 + }, + { + "stage": 1, + "units": [ + 3, + 4 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "host_rank": 2, + "idle_rank": 5, + "support_Y": 4 + }, + { + "stage": 2, + "units": [ + 5, + 6 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "host_rank": 2, + "idle_rank": 8, + "support_Y": 5 + }, + { + "stage": 3, + "units": [ + 7, + 8 + ], + "mask": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "host_rank": 2, + "idle_rank": 8, + "support_Y": 4 + }, + { + "stage": 4, + "units": [ + 9, + 10 + ], + "mask": [ + 0, + 1, + 4, + 7, + 10, + 13, + 16, + 19 + ], + "host_rank": 2, + "idle_rank": 6, + "support_Y": 8 + }, + { + "stage": 5, + "units": [ + 12, + 13 + ], + "mask": [ + 0, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "host_rank": 2, + "idle_rank": 8, + "support_Y": 4 + }, + { + "stage": 6, + "units": [ + 14, + 15 + ], + "mask": [ + 0, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "host_rank": 2, + "idle_rank": 8, + "support_Y": 5 + }, + { + "stage": 7, + "units": [ + 16, + 17 + ], + "mask": [ + 0, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "host_rank": 2, + "idle_rank": 5, + "support_Y": 4 + }, + { + "stage": 8, + "units": [ + 18, + 19 + ], + "mask": [ + 0, + 16, + 17, + 18 + ], + "host_rank": 2, + "idle_rank": 2, + "support_Y": 4 + } + ], + "formal_all_D": { + "1": [ + true, + 20, + 14 + ], + "-1": [ + true, + 20, + 14 + ] + }, + "negative_controls": [ + "first mask coordinate omitted", + "first unit replaced", + "one header coefficient changed" + ], + "thin_units": [ + 0, + 11, + 20 + ], + "target_profile": { + "9": 1, + "17": 4, + "25": 6, + "33": 6, + "41": 2, + "73": 1 + }, + "unbundled_paid_excluding_HOST": { + "1": 3, + "8": 52 + }, + "hypothetical_ideal_paid_with_2H8_per_HOST": { + "1": 3, + "8": 70 + }, + "mask_incidence": 70, + "target_mass": 580, + "unbundled_nonnative_mass": 419, + "hypothetical_ideal_mass": 563, + "hypothetical_ideal_surplus": 17, + "unbuilt_obligations": [ + "9 resonant t=-1 HOST supplier calls with their actual full T/P invoice", + "all scalar basis/gauge/wrapper operations and exact alphabet checks", + "native all-width correctness, rounding, finite compiler and outer admission; no kappa claim" + ] +} diff --git a/research/connected-l18-root-caller/review/TARIFF-L18.json b/research/connected-l18-root-caller/review/TARIFF-L18.json new file mode 100644 index 0000000000..39a65a03af --- /dev/null +++ b/research/connected-l18-root-caller/review/TARIFF-L18.json @@ -0,0 +1,58 @@ +{ + "status": "PASS", + "root_sha256": "be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34", + "caller_sha256": "f4090329f219edd493b4ca592128521e867a355fb528556b15201e759783568b", + "events": 2370, + "event_census": { + "ADD": 1041, + "HOST": 18, + "IDLE_ONE": 181, + "LAMBDA": 80, + "QUERY": 3, + "SCALE": 189, + "SWAP": 858 + }, + "scalar_census": { + "-1": 488, + "-1/2": 101, + "-2": 126, + "-5/2": 3, + "1": 292, + "1/2": 84, + "2": 136 + }, + "scalar_denominators": { + "1": 1042, + "2": 188 + }, + "scalar_max_abs": "5/2", + "coefficient_l1_majorant": "347424048600207422608405048958225038000101861270", + "coefficient_l1_strict_power_2_bound": 158, + "dyadic_denominator_height_bound": 51, + "root_target_per_port": { + "9": 3, + "17": 3, + "25": 5, + "33": 4, + "41": 3, + "49": 5, + "57": 4, + "65": 5, + "73": 4, + "81": 1, + "145": 1 + }, + "unbundled_outer_paid_per_port": { + "1": 3, + "8": 181 + }, + "native_calls": 18, + "supplier_substitution": { + "T": "p*Troot + 18*Thelp", + "P": "p*(181 H8 + 3 H1) + 18*Pnative", + "p": "simultaneous root ports in one supplier call", + "general_surplus": "323*p - 18*sum_r r*(Pnative[r]-Thelp[r])", + "conditional_example": "if supplier signed rank flux is 16*p, surplus is 35*p" + }, + "scope": "Algebraic interface and scalar census only. Supplier, full ordinary price, compiler and outer admission remain open." +} diff --git a/research/connected-l18-root-caller/review/coalescing_window.py b/research/connected-l18-root-caller/review/coalescing_window.py new file mode 100644 index 0000000000..daae8ac6c8 --- /dev/null +++ b/research/connected-l18-root-caller/review/coalescing_window.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 +"""Independent fixed-invoice negativity over an interval; no author imports.""" +import argparse,hashlib,importlib.util,json +from pathlib import Path +from fractions import Fraction as F +from collections import Counter +from itertools import combinations +if not __debug__:raise RuntimeError('Assertions required') + +def certify(v,T,P,lo,hi): + assert 0=0 else lo),v.log(r)) + upper=v.add(upper,v.smul(term,-c)) + assert endpoint[1]<0 and upper[1]<0,'Nonnegative endpoint or derivative bound' + return endpoint,upper + +def audit(root,caller,invoice,engine): + spec=importlib.util.spec_from_file_location('iv',engine);v=importlib.util.module_from_spec(spec);spec.loader.exec_module(v) + raw=Path(root).read_bytes();native_raw=Path(invoice).read_bytes();caller_raw=Path(caller).read_bytes();R=json.loads(raw);N=json.loads(native_raw);C=json.loads(caller_raw) + assert hashlib.sha256(raw).hexdigest()=='be4a2beed3a40de6d2c5dcc6e4f25f3c2a4375551b70e63fb0e9a03041db6a34' + assert hashlib.sha256(native_raw).hexdigest()=='87a41b13bdd9248d538805f76a970f51335567845dfc0070698b6979a08b70d6' + assert hashlib.sha256(Path(engine).read_bytes()).hexdigest()=='60a743d13f668ef86db4b8215b4d5d04430a671ba6f1fe06d9c1c4c3dfe86da5' + assert hashlib.sha256(caller_raw).hexdigest()=='f4090329f219edd493b4ca592128521e867a355fb528556b15201e759783568b' + masks=[set(s['mask'])for s in R['stages']];assert len(masks)==18 and R['n']==38 + eligibility=[{s for s,m in enumerate(masks)if r in m}for r in range(38)] + assert C['roles']==38 and C['stages']==18 and C['masks']==[sum(1<0 + p=[F(a[i]*B,b[j]) for i in (0,1) for j in (0,1)] + return min(p).__floor__(),max(p).__ceil__() +def smul(a,q):return mul(a,exact(q)) +def atanh_log(y): + yi=exact(y);yy=mul(yi,yi);p=yi;s=(0,0) + for j in range(100):s=add(s,smul(p,F(2,2*j+1)));p=mul(p,yy) + # 0 <= tail <= 2 y^201/[201(1-y^2)] < 3*(1/3)^201. + return s[0],s[1]+ceildiv(3*B,3**201) +@lru_cache(None) +def log(r): + assert r>=1 + k=r.bit_length()-1;y=F(r-2**k,r+2**k) + a=atanh_log(y);b=atanh_log(F(1,3));return add(a,smul(b,k)) +def expminus(x): + assert 0<=x[0]<=x[1]0 and margins[str(hi)][1]<0 and margins[str(tested)][0]>0 + target=moment(T,tested);paid=moment(P,tested) + alpha=div(paid,target) + # Tail exponent = 1-tested+1/7; argument exp may not be negative. + # r^(1-tested+1/7)=r^(1-tested)* exp(log(r)/7). + def exppos(x): + assert 0<=x[0]<=x[1]0 and gap.numerator==1;step=gap.denominator + wins=lambda j:(step*j+1)**written<2**j + l,h=1,2 + while not wins(h):l,h=h,2*h + while h-l>1: + m=(l+h)//2 + if wins(m):h=m + else:l=m + assert wins(h) and not wins(h-1) + # Monotonicity: upper derivative bound on [0, cap]. + derivative=(0,0) + for rr in T.keys()|P.keys(): + c=T.get(rr,0)-P.get(rr,0);r=int(rr) + term=mul(power(r,cap if c>=0 else 0),log(r));derivative=add(derivative,smul(term,-c)) + assert derivative[1]<0 + result=dict(claim=str(claim),tested=str(tested),raw_bracket=[str(lo),str(hi)],moment_margins={k:show(v) for k,v in margins.items()},moment_margin_float={k:value(v) for k,v in margins.items()},derivative_upper=float(F(derivative[1],B)),alpha=value(alpha),gamma=value(gamma),delta=value(delta),minimum_log_power=lp,written_log_power=written,compiler_gap=str(gap),H=str(step*h),BIT_pin=str(cap),BIT_margin=str(cap-tested)) + # Outer formulas evaluated independently after algebraically substituting + # b=k+5g,a=k+4g,q=k+3g,epsilon=1-g,beta=1-3g. + k=claim;g=gap;b=k+5*g;a=k+4*g;q=k+3*g;ep=1-g;be=1-3*g;r0=g/10;stop=layout=g + sig=1-b;tau=1-a;internal=tau+(1-stop)*max(sig-tau,0);leaf=sig+stop*(1-sig);lam=1-(q+a)/2;xi=ep*(1+q)-F(3,32)+layout;key=be+1-ep + M=[ep*q,a,1-ep+q*be,1-ep+a*be,1-ep+be,F(3,32)+xi-ep,xi+F(1,2)-ep,ep,1-(ep+be+48-128+2)] + checks=[cap-a,b-a,q,b-q,a-q,stop,1-stop,(1-stop)*b-a,1-internal-q,1-leaf-q,lam-tau,lam-sig,lam-internal,1-q-lam,1-q-leaf,ep,1-ep,xi-F(1,2),ep-xi,be,ep-be,1-be,1-(2*xi-2)-r0-be,1-(2*xi-2)-be,1-ep-r0,1-ep,r0,1-key,1-be-2*(1-ep),128-48-be,layout,ep-a,F(1,32)-b,F(2**45-7**16),F(2),2-xi,F(5),1-be,1-be,1-ep,M[2]-M[0],g,k-F('.001730970419199163702738'),1-ep,F(11,2)]+[x-k for x in M] + functional=[1-be,be*(1-F(3,1000)),128-48-ep-be-1,be*(1-F(1,250))] + assert len(checks)==54 and len(functional)==4 and min(checks+functional)>0 + result['outer']=dict(strict_count=54,functional_count=4,minimum_margin=str(min(checks+functional)),BIT_just_below_effective_rejected=(a-F(1,10**12))-a<0) + # Input-lift is only needed on [1-tested_complex,1]. A stronger BIT + # pin is irrelevant to this interval; the source's crude BIT-wide bound + # is not imported beyond its valid range. + pos={7:1,3:1,5:1};neg={9:1,4:1,1:2};d1=(0,0);curvature=(0,0) + for hist,sign in ((pos,1),(neg,-1)): + for r,c in hist.items(): + d1=add(d1,smul(log(r),sign*c*r)) + curvature=add(curvature,smul(mul(log(r),log(r)),c*r)) + lift_cap=cap if cap<=F('.00376669') else tested + assert tested<=lift_cap and F(d1[1],B)+lift_cap*F(curvature[1],B)<0 + lifts={} + for price in (claim,tested): + lift=sub(moment(pos,price),moment(neg,price));assert lift[0]>0 + assert price*(-F(d1[1],B))-price*price*F(curvature[1],B)/2>0 + lifts[str(price)]=show(lift) + result['input_lift']=dict(margins=lifts,interval_kappa_cap=str(lift_cap),derivative_upper_on_required_interval=str(F(d1[1],B)+lift_cap*F(curvature[1],B)),source_BIT_wide_crude_bound_would_be=str(F(d1[1],B)+cap*F(curvature[1],B))) + return result +if __name__=='__main__': + p=argparse.ArgumentParser();p.add_argument('audit');p.add_argument('--claim',default='.00362852408');p.add_argument('--tested',default='.00362852408007');p.add_argument('--lower',default='.00362852408398727978896072723289');p.add_argument('--upper',default='.00362852408398727978896072723290');p.add_argument('--out',required=True);p.add_argument('--bit-pin',default='.00376669');a=p.parse_args() + r=gate(json.loads(Path(a.audit).read_text())['invoice'],a.claim,a.tested,a.lower,a.upper,a.bit_pin);Path(a.out).write_text(json.dumps(r,indent=2)+'\n');print(json.dumps(r,indent=2)) diff --git a/research/connected-l18-root-caller/review/native_screen.py b/research/connected-l18-root-caller/review/native_screen.py new file mode 100644 index 0000000000..9e92a9f0d1 --- /dev/null +++ b/research/connected-l18-root-caller/review/native_screen.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +"""Exact two-plane replay and optimistic budget screen; no new supplier claim.""" +import argparse +import gzip +import hashlib +import json +from collections import Counter +from decimal import Decimal, localcontext +from fractions import Fraction as Q +from pathlib import Path + +def read(p): + raw=p.read_bytes() + return json.loads(gzip.decompress(raw) if p.suffix=='.gz' else raw) + +def mm(a,b): + return [[sum(x*y for x,y in zip(r,c)) for c in zip(*b)] for r in a] + +def replay(w): + n=len(w['initial']); current=w['initial'][:]+[None]*w['owned_fields'] + rows=[{r:Q(1)} for r in range(n)]+[{} for _ in range(w['owned_fields'])] + dim=list(map(len,w['frames'])); spans=[] + for f in w['frames']: + s={0} + for v in f: + assert v not in s + s|={x^v for x in tuple(s)} + spans.append(s) + owned=set(); paid=Counter() + for i,e in enumerate(w['program']): + op,r=e[:2] + if op=='MOVE': + _,_,a,b,private=e + assert current[r]==a and bool(private)==(r in owned),i + assert spans[a]=n and r not in owned,i + owned.add(r); current[r]=e[2]; rows[r]={} + elif op=='CLEAR': + assert r in owned and current[r]==e[2],i + owned.remove(r); current[r]=None; rows[r]={} + elif op=='SCALE': + assert current[r]==e[3],i + q=Q(e[2]); assert q + rows[r]={k:q*v for k,v in rows[r].items()} + else: + assert op in ('ADD','COPY'),i + _,_,s,q,f=e + assert r!=s and current[r]==f==current[s],i + if op=='COPY': assert r in owned and not rows[r],i + q=Q(q) + for k,v in rows[s].items(): + z=rows[r].get(k,Q(0))+q*v + if z: rows[r][k]=z + else: rows[r].pop(k,None) + assert not owned and current[:n]==w['final'] + live=w['live']; h=w['hosted']; type_a=set(h['Dports']) + main=set(live)|{r+112 for r in live}|set(h['X2'])|set(h['Y2']) + checked=0 + for i,x2,y2 in zip(h['Dports'],h['X2'],h['Y2']): + x,y=live[i],live[i]+112 + assert rows[x]=={x:Q(1)} + assert rows[y]=={x:Q(1),y:Q(1)} + assert rows[x2]=={x2:Q(1),y2:Q(-1)} + assert rows[y2]=={y2:Q(1)} + for boundary in ('initial','final'): + f=w[boundary] + assert f[x]==f[x2] and f[y]==f[y2] and f[x]!=f[y] + checked+=1 + for i,x in enumerate(live): + if i not in type_a: + y=x+112 + assert rows[x]=={x:Q(1),y:Q(-1)} + assert rows[y]=={x:Q(1,2),y:Q(1,2)} + helpers=Counter() + for r in range(n): + if r not in main: + assert rows[r]=={r:Q(1)} + a,b=w['initial'][r],w['final'][r] + assert spans[a]>(8*j))&255)==0 for src,pow in rows[i]) + rows[i]={(src,pow+(1<<(8*j))):v for (src,pow),v in rows[i].items()} + expected=[] + for i in range(n): + mon=sum(1<<(8*j) for j,st in enumerate(d['stages']) if i in st['mask']) + expected.append({(i,mon):F(sign)}) + return rows==expected,sum(map(len,rows)),len(set(k[1] for row in rows for k in row)) +def audit(path): + raw=Path(path).read_bytes();d=json.loads(raw);n=d['n'];N=d['N'];stages=d['stages'];L=len(stages) + X=[[F(x) for x in r] for r in d['X']];Y=[[F(x) for x in r] for r in d['Y']] + assert N==n+1==2*L+3 and len(X)==len(Y)==N and all(len(r)==n for r in X+Y) + assert all(x.denominator==1 for row in X+Y for x in row) + assert all(dot(Y[i],X[j])==F((i>j)-(ij)-(i