From 27225a01206ffe8ca47751ef452fbecad1343a5a Mon Sep 17 00:00:00 2001 From: James Liounis Date: Mon, 1 Jun 2026 18:11:58 -0400 Subject: [PATCH] Add Finance Chart (Sandbox) cookbook example Agent API + finance_search + sandbox: charts a stock's price history and streams a natural-language analysis of the series. Includes a CLI script and a small web app. --- README.md | 1 + .../examples/finance-chart-sandbox/README.mdx | 234 ++++++++ .../finance_chart_sandbox.py | 504 ++++++++++++++++++ .../finance-chart-sandbox/requirements.txt | 2 + .../finance-chart-sandbox/webapp/app.py | 395 ++++++++++++++ .../webapp/requirements.txt | 3 + .../webapp/static/app.js | 160 ++++++ .../webapp/static/index.html | 66 +++ .../webapp/static/styles.css | 182 +++++++ static/img/finance-chart-sandbox-aapl.png | Bin 0 -> 59797 bytes static/img/finance-chart-sandbox-ui.png | Bin 0 -> 138258 bytes 11 files changed, 1547 insertions(+) create mode 100644 docs/examples/finance-chart-sandbox/README.mdx create mode 100644 docs/examples/finance-chart-sandbox/finance_chart_sandbox.py create mode 100644 docs/examples/finance-chart-sandbox/requirements.txt create mode 100644 docs/examples/finance-chart-sandbox/webapp/app.py create mode 100644 docs/examples/finance-chart-sandbox/webapp/requirements.txt create mode 100644 docs/examples/finance-chart-sandbox/webapp/static/app.js create mode 100644 docs/examples/finance-chart-sandbox/webapp/static/index.html create mode 100644 docs/examples/finance-chart-sandbox/webapp/static/styles.css create mode 100644 static/img/finance-chart-sandbox-aapl.png create mode 100644 static/img/finance-chart-sandbox-ui.png diff --git a/README.md b/README.md index decd6de..bc2c9a0 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ Ready-to-run applications demonstrating real-world use cases: - **[Disease Information App](docs/examples/disease-qa/)** - Interactive medical information lookup - **[Financial News Tracker](docs/examples/financial-news-tracker/)** - Real-time market analysis - **[Equity Research Brief](docs/examples/equity-research-brief/)** - Agent API + `finance_search` for ticker-level research briefs +- **[Finance Chart (Sandbox)](docs/examples/finance-chart-sandbox/)** - Agent API + `finance_search` + `sandbox` to chart a stock's price history - **[Academic Research Finder](docs/examples/research-finder/)** - Literature discovery and summarization - **[Discord Bot](docs/examples/discord-py-bot/)** - Discord integration example diff --git a/docs/examples/finance-chart-sandbox/README.mdx b/docs/examples/finance-chart-sandbox/README.mdx new file mode 100644 index 0000000..62ee87c --- /dev/null +++ b/docs/examples/finance-chart-sandbox/README.mdx @@ -0,0 +1,234 @@ +--- +title: Finance Chart (Sandbox) +description: Chart a stock's closing-price history with the Perplexity Agent API sandbox tool — fetched and built inside an isolated container as a background task, then rendered locally. +sidebar_position: 8 +keywords: [agent-api, sandbox, code-execution, stock-chart, matplotlib, csv, background] +--- + +# Finance Chart (Sandbox) + +A command-line tool that charts a stock's closing-price history using Perplexity's [Agent API](https://docs.perplexity.ai/docs/agent-api/quickstart) [`sandbox`](https://docs.perplexity.ai/docs/agent-api/tools/sandbox) tool. + +The whole agent loop runs inside **one background Agent API request**: + +1. The model is given the `sandbox` tool — a full agentic Python environment that includes the Perplexity SDK (web search + URL fetch). +2. Inside the sandbox it finds and fetches the ticker's historical daily closing prices, parses them, and prints a clean `date,close` CSV to stdout between sentinel fences. + +The script polls the request to completion, pulls the CSV out of the sandbox's stdout, saves it, and renders the line chart **locally** with matplotlib. + +![AAPL closing price chart, last month](../../static/img/finance-chart-sandbox-aapl.png) + +## How it differs from the docs (important) + +This recipe was built and verified against the live Agent API. A few realities shape the design: + +- **The `sandbox` tool requires a background task.** On the synchronous/streaming path the request is rejected with `streaming failed: ... unknown tool "sandbox"`. You must submit with `background: true` and poll the response by id. This script always does that. +- **`stdout` is nested.** The execution output lives at `sandbox_results.results[].stdout`, not at the top level of the `sandbox_results` item. +- **`finance_search` has no history (current deployment).** The top-level `finance_search` tool returns only the latest quote, so the price *series* is gathered from inside the sandbox using its in-container Perplexity SDK. +- **Sandbox data fetching is best-effort.** Because the sandbox pulls from third-party web sources, requests can be rate-limited. The script retries the whole call a few times (`--attempts`) until it gets a usable CSV. +- **No PNG comes back.** `sandbox_results` carries only text, so the chart is rendered client-side — and you keep a reusable `.csv`. + +The Agent API is called over **raw HTTP** (stdlib `urllib`, no SDK) so the exact request body is visible and the endpoint is configurable. + +## Features + +- One background request orchestrates the sandbox; the script polls it to completion (resilient to transient 5xx) +- Sandbox fetches the price history itself and emits a fenced `date,close` CSV; the script extracts it from `sandbox_results.results[].stdout` (with message-text fallbacks) +- Automatic retries until a usable CSV is parsed +- Renders a clean closing-price line chart with matplotlib (headless `Agg` backend) +- Saves both a reusable CSV and a PNG +- Configurable `--base-url` / `PERPLEXITY_BASE_URL`; reports sandbox invocation count and request cost + +## Prerequisites + +- Python 3.9+ +- A Perplexity API key with Agent API access. The `sandbox` tool is in **preview** — see the [sandbox docs](https://docs.perplexity.ai/docs/agent-api/tools/sandbox) for availability. + +## Installation + +```bash +cd docs/examples/finance-chart-sandbox +pip install -r requirements.txt # matplotlib only — the API is called over raw HTTP +chmod +x finance_chart_sandbox.py +``` + +## API Key Setup + +```bash +export PERPLEXITY_API_KEY="your-api-key-here" +``` + +You can also pass `--api-key`, place the key in a `.pplx_api_key` file, or add a `PERPLEXITY_API_KEY=` / `PPLX_API_KEY=` line to a local `.env`. + +## Quick Start + +Chart Apple's last 6 months of closing prices: + +```bash +./finance_chart_sandbox.py AAPL +``` + +This writes `AAPL_6mo.csv` and `AAPL_6mo.png` to the current directory. + +## Usage + +```bash +./finance_chart_sandbox.py TICKER [--period 6mo] [--start YYYY-MM-DD --end YYYY-MM-DD] \ + [--model MODEL] [--attempts 3] [--max-steps 25] [--poll-timeout 300] \ + [--out-dir DIR] [--base-url URL] [--api-key KEY] [--keep-json] +``` + +### A one-month chart + +```bash +./finance_chart_sandbox.py AAPL --period 1mo +``` + +### An explicit date range, more retries + +```bash +./finance_chart_sandbox.py MSFT --start 2025-01-01 --end 2025-06-30 --attempts 5 +``` + +### Point at a different endpoint + +```bash +PERPLEXITY_BASE_URL=https://api.perplexity.ai ./finance_chart_sandbox.py NVDA +``` + +## Example Output + +``` +[attempt 1/3] Asking the sandbox to fetch AAPL closing prices over the past 1 month... + +Data points: 21 (2026-04-30 → 2026-05-29) +CSV: AAPL_1mo.csv +Chart: AAPL_1mo.png +Sandbox invocations: 8 +Cost: 0.3509 USD +``` + +The CSV (`AAPL_1mo.csv`): + +```csv +date,close +2026-04-30,271.35 +2026-05-01,280.14 +2026-05-04,276.83 +... +``` + +…and `AAPL_1mo.png` is a line chart of `close` over `date`. + +## Web UI (FastAPI + JS) + +A small web app in [`webapp/`](webapp/) puts a **natural-language** front door +on the agent loop: ask *"What was Apple's stock price over the last 6 months?"* +and the model resolves the ticker and period itself, fetches the prices in the +sandbox, and the page charts the result. + +Unlike the CLI (which calls the API over raw HTTP), the web backend uses the +**Perplexity Python SDK** and reuses the CLI module's CSV-extraction and parsing +helpers. It runs a **two-phase** flow, because the `sandbox` tool only runs as a +(non-streamable) background task: + +1. **Data** — a background call (`client.responses.create(..., background=True)` + then `client.responses.retrieve(id)`) where the sandbox resolves the ticker + + period, fetches the prices, and prints a `META`/`CSV` block. +2. **Answer** — a separate **streaming** call (`stream=True`) that writes a short + natural-language analysis of the series, token by token. + +| Endpoint | Purpose | +| --- | --- | +| `POST /api/charts` | Submit a question (`{query, attempts?}`) → returns a `job_id` | +| `GET /api/charts/{job_id}/events` | **Server-Sent Events**: `progress` → `chart` → streamed `token`s → `done` | +| `GET /api/charts/{job_id}/response.json` | The **raw Agent API response** from phase 1 (sandbox code, stdout, usage) | +| `GET /api/charts/{job_id}/csv` | Download the `date,close` CSV | + +The job runs in a worker thread and writes incremental state onto the job; the +SSE endpoint merely *tails* that state, so reconnects never re-run the work. The +frontend (vanilla JS + [Chart.js](https://www.chartjs.org/) from a CDN — no +build step) renders the chart on the `chart` event, appends the streamed +analysis live, and links to the raw JSON for inspection. + +![Finance Chart sandbox web UI](../../static/img/finance-chart-sandbox-ui.png) + +### Run it + +```bash +cd docs/examples/finance-chart-sandbox/webapp +pip install -r requirements.txt # perplexityai + fastapi + uvicorn +export PERPLEXITY_API_KEY="your-api-key-here" # or a .env in this dir +python app.py # serves http://127.0.0.1:8000 +# PORT=8060 python app.py # if 8000 is taken +``` + +Open the page, type a question (or click an example), and hit **Ask**. The +status line updates per attempt while the background sandbox runs (~30–60s). + +## Code Walkthrough + +**1. Submit a background request with the sandbox tool (raw HTTP).** + +```python +payload = { + "model": "openai/gpt-5.5", + "instructions": SYSTEM_PROMPT, # "print the CSV between fences" + "input": "Produce the daily closing-price CSV for AAPL over the past 6 months. ...", + "tools": [{"type": "sandbox"}], + "background": True, # required for the sandbox tool + "max_steps": 25, +} +# POST https://api.perplexity.ai/v1/responses (Authorization: Bearer ) +``` + +**2. Poll the response by id until it completes.** + +```python +# GET https://api.perplexity.ai/v1/responses/{id} +while body["status"] in ("queued", "in_progress"): + time.sleep(3) + body = get(f"/v1/responses/{body['id']}") # tolerate transient 5xx +``` + +**3. Pull the CSV out of the nested sandbox stdout.** + +```python +for item in body["output"]: + if item["type"] == "sandbox_results": + for res in item["results"]: + stdout = res["stdout"] # contains the fenced CSV +``` + +The script searches each `sandbox_results.results[].stdout` for text between the `===CSV_START===` / `===CSV_END===` fences (falling back to the message text and a ```` ```csv ```` block), validates it parses into ≥2 `date,close` rows, and retries the whole call if not. + +**4. Render the chart locally.** The CSV is parsed with the stdlib `csv` module and plotted with matplotlib's headless `Agg` backend. Because the sandbox returns only text, rendering lives on the client side and you keep a tidy `.csv`. + +## Prompting Guidance + +- **Fence the machine-readable output.** Asking the sandbox to wrap the CSV in unique sentinel lines makes extraction robust even when the model adds commentary or debug prints. +- **Tell it to retry sources.** Public price endpoints rate-limit (e.g. Yahoo `429`) or gate behind captchas; instructing the model to try another source on failure improves the hit rate. +- **Forbid fabrication.** The system prompt instructs the model to use only prices it actually retrieved — never to interpolate or estimate. + +## Pricing + +- **`sandbox`**: `$0.03` per container session +- **In-sandbox SDK search queries**: `$0.005` per request (the sandbox issues these to gather the data) +- **Model tokens**: billed separately per Agent API token pricing + +Sandbox invocations are counted under `usage.tool_calls_details.sandbox.invocation`. A typical run here is a few sandbox calls plus a handful of in-sandbox searches. See [Perplexity Pricing](https://docs.perplexity.ai/docs/getting-started/pricing) for current rates. + +## Limitations + +- `sandbox` is in **preview** and must be run as a background task +- Price history is fetched from third-party web sources inside the sandbox, so **data accuracy and availability depend on those sources** — values should be sanity-checked, and obscure/non-US tickers may fail +- Fetching is **best-effort**: rate limits can cause an attempt to return no CSV; the script retries, but a run may still fail (raise `--attempts`) +- Each attempt is a separate billed sandbox session +- This is not investment advice + +## Resources + +- [Sandbox Tool](https://docs.perplexity.ai/docs/agent-api/tools/sandbox) +- [Agent API Quickstart](https://docs.perplexity.ai/docs/agent-api/quickstart) +- [Finance Search Tool](https://docs.perplexity.ai/docs/agent-api/tools/finance-search) +- [Perplexity Python SDK](https://github.com/ppl-ai/perplexity-python) diff --git a/docs/examples/finance-chart-sandbox/finance_chart_sandbox.py b/docs/examples/finance-chart-sandbox/finance_chart_sandbox.py new file mode 100644 index 0000000..f3687e4 --- /dev/null +++ b/docs/examples/finance-chart-sandbox/finance_chart_sandbox.py @@ -0,0 +1,504 @@ +#!/usr/bin/env python3 +""" +Finance Chart (Sandbox) - Plot a stock's closing-price history using the +Perplexity Agent API ``sandbox`` tool, then render the chart locally. + +The agent loop runs entirely inside one **background** Agent API request: + + 1. The model is given the ``sandbox`` tool — a full agentic Python + environment that includes the Perplexity SDK (web search + URL fetch). + 2. Inside the sandbox it searches for / fetches the ticker's historical + daily closing prices, parses them, and prints a clean ``date,close`` CSV + to stdout between sentinel fences. + +We poll the request until it completes, pull the CSV out of the sandbox's +stdout (``sandbox_results.results[].stdout``), save it, and render the line +chart locally with matplotlib. + +Why this shape? +- The ``sandbox`` tool is rejected on the synchronous/streaming path + ("streaming failed: ... unknown tool"); it must run with ``background: true`` + and be polled by id. This script always does that. +- ``sandbox_results`` carries only text (code/stdout/stderr) — there is no + binary artifact channel — so the chart is rendered on this side, and you + also keep a reusable ``.csv``. +- Top-level ``finance_search`` returns only the latest quote (no history) on + the current deployment, so the price *series* is gathered from inside the + sandbox. Because that relies on third-party web data, it is best-effort: + the script retries the whole call a few times until it gets a usable CSV. + +The Agent API is called over **raw HTTP** (no SDK) so the request body — and +the sandbox tool in it — is fully visible, and the endpoint is configurable +via ``--base-url`` / ``PERPLEXITY_BASE_URL``. + +Docs: +- Agent API: https://docs.perplexity.ai/docs/agent-api/quickstart +- sandbox: https://docs.perplexity.ai/docs/agent-api/tools/sandbox +- finance_search: https://docs.perplexity.ai/docs/agent-api/tools/finance-search +""" + +import argparse +import csv +import json +import os +import re +import sys +import time +import urllib.error +import urllib.request +from datetime import datetime +from pathlib import Path +from typing import Dict, List, Optional, Tuple + + +DEFAULT_BASE_URL = "https://api.perplexity.ai" +RESPONSES_PATH = "/v1/responses" + +CSV_START = "===CSV_START===" +CSV_END = "===CSV_END===" + + +# Friendly --period values mapped to a natural-language phrase the model can +# act on. Anything not in this map is passed through verbatim. +PERIOD_PHRASES: Dict[str, str] = { + "1mo": "the past 1 month", + "3mo": "the past 3 months", + "6mo": "the past 6 months", + "1y": "the past 1 year", + "2y": "the past 2 years", + "5y": "the past 5 years", +} + + +SYSTEM_PROMPT = f"""You run inside a Python sandbox that includes the +`perplexity` SDK (web search and URL fetch) plus pandas and the standard +library. Your job is to produce a CSV of a stock's daily closing prices. + +Approach: +- Use the perplexity SDK to obtain the daily closing prices: search the web + and/or fetch a historical-price page that exposes a clean date/close table. +- If a source fails or is rate-limited, try a different one. Do not give up + after a single failure. +- Print ONLY the final CSV to stdout, wrapped exactly between these fences: + {CSV_START} + + {CSV_END} + Header must be `date,close`; one row per trading day; sorted ascending by + date; dates as YYYY-MM-DD; close as a plain number. Put no logs, debug + output, or commentary inside the fences. + +Never fabricate or interpolate prices — use only values you actually +retrieved.""" + + +PROMPT_TEMPLATE = ( + "Produce the daily closing-price CSV for {ticker} over {period_phrase}. " + "Print it to stdout between the {start} / {end} fences." +) + + +# --------------------------------------------------------------------------- +# API key + HTTP helpers +# --------------------------------------------------------------------------- +def resolve_api_key(api_key: Optional[str] = None) -> str: + """Find the Perplexity API key. + + Order: explicit argument, ``PERPLEXITY_API_KEY`` / ``PPLX_API_KEY`` env + vars, a ``.pplx_api_key`` file, or a ``KEY=value`` line in a local + ``.env`` (``PERPLEXITY_API_KEY`` or ``PPLX_API_KEY``). + """ + if api_key: + return api_key + for var in ("PERPLEXITY_API_KEY", "PPLX_API_KEY"): + if os.environ.get(var): + return os.environ[var] + for candidate in (".pplx_api_key", "pplx_api_key"): + path = Path(candidate) + if path.exists(): + return path.read_text().strip() + env_file = Path(".env") + if env_file.exists(): + for line in env_file.read_text().splitlines(): + line = line.strip() + if "=" not in line: + continue + name, value = line.split("=", 1) + if name.strip() in ("PERPLEXITY_API_KEY", "PPLX_API_KEY"): + return value.strip().strip('"').strip("'") + raise RuntimeError( + "API key not found. Set PERPLEXITY_API_KEY, pass --api-key, or add it " + "to a .pplx_api_key / .env file." + ) + + +def _request( + method: str, url: str, key: str, body: Optional[dict], timeout: int +) -> Tuple[int, dict]: + data = json.dumps(body).encode() if body is not None else None + req = urllib.request.Request( + url, + data=data, + headers={ + "Authorization": f"Bearer {key}", + "Content-Type": "application/json", + "User-Agent": "api-cookbook-finance-chart-sandbox/1.0", + }, + method=method, + ) + try: + with urllib.request.urlopen(req, timeout=timeout) as resp: + return resp.status, json.loads(resp.read().decode()) + except urllib.error.HTTPError as err: + try: + return err.code, json.loads(err.read().decode()) + except Exception: # noqa: BLE001 + return err.code, {"error": {"message": err.reason}} + + +def _poll(base_url: str, key: str, response_id: str, deadline: float) -> dict: + """Poll a background response until terminal status (resilient to 5xx).""" + url = f"{base_url}{RESPONSES_PATH}/{response_id}" + body: dict = {"status": "in_progress"} + while body.get("status") in ("queued", "in_progress"): + if time.time() > deadline: + raise TimeoutError("Timed out waiting for the sandbox response.") + time.sleep(3) + status, body = _request("GET", url, key, None, timeout=60) + if status >= 500: + # Transient server error mid-poll — keep waiting. + body = {"status": "in_progress"} + return body + + +def run_sandbox_request( + base_url: str, + key: str, + ticker: str, + period_phrase: str, + model: str, + max_steps: int, + poll_timeout: int, +) -> dict: + """Submit one background Agent API call and poll it to completion.""" + payload = { + "model": model, + "instructions": SYSTEM_PROMPT, + "input": PROMPT_TEMPLATE.format( + ticker=ticker.upper(), + period_phrase=period_phrase, + start=CSV_START, + end=CSV_END, + ), + "tools": [{"type": "sandbox"}], + "background": True, + "max_output_tokens": 4096, + "max_steps": max_steps, + } + status, body = _request( + "POST", f"{base_url}{RESPONSES_PATH}", key, payload, timeout=120 + ) + if status >= 400: + raise RuntimeError(f"Agent API error {status}: {body.get('error', body)}") + if not body.get("id"): + raise RuntimeError(f"Unexpected response (no id): {body}") + return _poll(base_url, key, body["id"], deadline=time.time() + poll_timeout) + + +# --------------------------------------------------------------------------- +# Response parsing +# --------------------------------------------------------------------------- +def _sandbox_stdout(response: dict) -> str: + """Concatenate stdout from every sandbox execution result.""" + chunks: List[str] = [] + for item in response.get("output", []) or []: + if item.get("type") != "sandbox_results": + continue + # Real shape nests executions under `results`; tolerate a flat shape. + results = item.get("results") + if results: + for res in results: + if res.get("stdout"): + chunks.append(res["stdout"]) + elif item.get("stdout"): + chunks.append(item["stdout"]) + return "\n".join(chunks) + + +def _message_text(response: dict) -> str: + """Concatenate assistant ``output_text`` blocks.""" + chunks: List[str] = [] + for item in response.get("output", []) or []: + if item.get("type") != "message": + continue + for block in item.get("content", []) or []: + if block.get("type") == "output_text" and block.get("text"): + chunks.append(block["text"]) + return "\n".join(chunks) + + +def extract_csv(response: dict) -> Optional[str]: + """Find the fenced CSV in the sandbox stdout, then the message text. + + Returns the CSV body (without fences), or None if nothing usable is found. + """ + fence = re.compile( + re.escape(CSV_START) + r"\s*(.*?)\s*" + re.escape(CSV_END), re.S + ) + for haystack in (_sandbox_stdout(response), _message_text(response)): + match = fence.search(haystack) + if match and match.group(1).strip(): + return match.group(1).strip() + # Fallback: a fenced ```csv block in the message. + block = re.search(r"```csv\s*(.*?)```", _message_text(response), re.S) + if block: + lines = block.group(1).strip().splitlines() + if lines and "date" in lines[0].lower(): + return block.group(1).strip() + return None + + +def parse_csv(csv_text: str) -> Tuple[List[datetime], List[float]]: + """Parse `date,close` CSV text into parallel lists, sorted by date.""" + reader = csv.DictReader(csv_text.splitlines()) + if not reader.fieldnames: + raise RuntimeError("Empty CSV.") + cols = {name.strip().lower(): name for name in reader.fieldnames} + if "date" not in cols or "close" not in cols: + raise RuntimeError( + f"CSV missing date/close columns; got {reader.fieldnames}." + ) + + rows: List[Tuple[datetime, float]] = [] + for row in reader: + raw_date = (row.get(cols["date"]) or "").strip() + raw_close = (row.get(cols["close"]) or "").strip() + if not raw_date or not raw_close: + continue + try: + day = datetime.strptime(raw_date[:10], "%Y-%m-%d") + close = float(raw_close.replace(",", "").replace("$", "")) + except ValueError: + continue + rows.append((day, close)) + + if len(rows) < 2: + raise RuntimeError("Fewer than 2 valid date,close rows parsed.") + rows.sort(key=lambda r: r[0]) + return [r[0] for r in rows], [r[1] for r in rows] + + +def render_chart( + dates: List[datetime], + closes: List[float], + ticker: str, + period_label: str, + png_path: Path, +) -> None: + """Render a closing-price line chart to ``png_path``.""" + import matplotlib + + matplotlib.use("Agg") # headless: no display needed + import matplotlib.pyplot as plt + from matplotlib.dates import AutoDateLocator, ConciseDateFormatter + + fig, ax = plt.subplots(figsize=(10, 5)) + ax.plot(dates, closes, color="#1f77b4", linewidth=1.6) + ax.fill_between(dates, closes, min(closes), color="#1f77b4", alpha=0.08) + ax.set_title(f"{ticker.upper()} closing price — {period_label}") + ax.set_xlabel("Date") + ax.set_ylabel("Close (USD)") + ax.grid(True, linestyle="--", alpha=0.4) + + locator = AutoDateLocator() + ax.xaxis.set_major_locator(locator) + ax.xaxis.set_major_formatter(ConciseDateFormatter(locator)) + + fig.tight_layout() + fig.savefig(png_path, dpi=150) + plt.close(fig) + + +def sandbox_invocations(response: dict) -> int: + details = (response.get("usage") or {}).get("tool_calls_details") or {} + return (details.get("sandbox") or {}).get("invocation", 0) or 0 + + +def total_cost(response: dict) -> Optional[Tuple[float, str]]: + cost = (response.get("usage") or {}).get("cost") + if not isinstance(cost, dict) or cost.get("total_cost") is None: + return None + return float(cost["total_cost"]), cost.get("currency", "USD") + + +def build_period_phrase( + period: Optional[str], start: Optional[str], end: Optional[str] +) -> Tuple[str, str]: + """Return (period_label, natural-language phrase) for prompts/filenames.""" + if start or end: + label = f"{start}..{end}" + if start and end: + phrase = f"the period from {start} to {end}" + elif start: + phrase = f"the period since {start}" + else: + phrase = f"the period up to {end}" + return label, phrase + period = period or "6mo" + return period, PERIOD_PHRASES.get(period, f"the past {period}") + + +def fetch_price_series( + base_url: str, + key: str, + ticker: str, + period_phrase: str, + model: str, + attempts: int, + max_steps: int, + poll_timeout: int, + on_attempt=None, +) -> Tuple[List[datetime], List[float], str, dict]: + """Run up to ``attempts`` background sandbox calls until a usable CSV parses. + + Returns ``(dates, closes, csv_text, response)``. Raises ``RuntimeError`` if + no attempt yields a parseable ``date,close`` CSV. ``on_attempt(n, total, + note)`` is an optional progress callback (``note`` is None at the start of + an attempt, or a short failure reason). + """ + response: dict = {} + for attempt in range(1, attempts + 1): + if on_attempt: + on_attempt(attempt, attempts, None) + try: + response = run_sandbox_request( + base_url, key, ticker, period_phrase, model, max_steps, poll_timeout + ) + except (RuntimeError, TimeoutError) as err: + if on_attempt: + on_attempt(attempt, attempts, str(err)) + continue + + if response.get("status") == "failed": + if on_attempt: + on_attempt(attempt, attempts, f"request failed: {response.get('error')}") + continue + + candidate = extract_csv(response) + if not candidate: + if on_attempt: + on_attempt(attempt, attempts, "no fenced CSV in output") + continue + try: + dates, closes = parse_csv(candidate) + except RuntimeError as err: + if on_attempt: + on_attempt(attempt, attempts, f"unusable CSV: {err}") + continue + return dates, closes, candidate, response + + raise RuntimeError( + f"Could not obtain a usable price CSV from the sandbox after " + f"{attempts} attempt(s). Sandbox data fetching is best-effort " + "(third-party sources rate-limit); try more attempts or rerun." + ) + + +def main() -> int: + parser = argparse.ArgumentParser( + description=( + "Plot a stock's closing-price history using the Perplexity Agent " + "API sandbox tool (background task), rendered locally." + ) + ) + parser.add_argument("ticker", help="Ticker symbol, e.g. AAPL, MSFT, NVDA.") + parser.add_argument( + "--period", + default="6mo", + help="Lookback window: 1mo, 3mo, 6mo (default), 1y, 2y, 5y, ...", + ) + parser.add_argument("--start", help="Start date YYYY-MM-DD (overrides --period).") + parser.add_argument("--end", help="End date YYYY-MM-DD (use with --start).") + parser.add_argument("--model", default="openai/gpt-5.5", help="Agent API model.") + parser.add_argument("--out-dir", default=".", help="Directory for the CSV and PNG.") + parser.add_argument( + "--attempts", + type=int, + default=3, + help="Max background calls to try until a usable CSV comes back " + "(each is a separate sandbox session). Default 3.", + ) + parser.add_argument( + "--max-steps", type=int, default=25, help="Agent max_steps per attempt." + ) + parser.add_argument( + "--poll-timeout", + type=int, + default=300, + help="Seconds to poll each background call before giving up.", + ) + parser.add_argument( + "--base-url", + default=os.environ.get("PERPLEXITY_BASE_URL", DEFAULT_BASE_URL), + help="Agent API base URL (or set PERPLEXITY_BASE_URL).", + ) + parser.add_argument("--api-key", help="Perplexity API key.") + parser.add_argument( + "--keep-json", action="store_true", help="Write the raw response JSON." + ) + args = parser.parse_args() + + try: + key = resolve_api_key(args.api_key) + except RuntimeError as err: + print(f"Error: {err}", file=sys.stderr) + return 1 + + ticker = args.ticker.upper() + period_label, period_phrase = build_period_phrase( + args.period, args.start, args.end + ) + + out_dir = Path(args.out_dir) + out_dir.mkdir(parents=True, exist_ok=True) + slug = f"{ticker}_{period_label}".replace("..", "_to_") + csv_path = out_dir / f"{slug}.csv" + png_path = out_dir / f"{slug}.png" + + def _log(attempt: int, total: int, note: Optional[str]) -> None: + if note is None: + print( + f"[attempt {attempt}/{total}] Asking the sandbox to fetch " + f"{ticker} closing prices over {period_phrase}...", + file=sys.stderr, + ) + else: + print(f" {note}", file=sys.stderr) + + try: + dates, closes, csv_text, response = fetch_price_series( + args.base_url, key, ticker, period_phrase, args.model, + args.attempts, args.max_steps, args.poll_timeout, on_attempt=_log, + ) + except RuntimeError as err: + print(f"Error: {err}", file=sys.stderr) + return 3 + + if args.keep_json and response: + (out_dir / f"{slug}.json").write_text(json.dumps(response, indent=2)) + + csv_path.write_text(csv_text + "\n") + render_chart(dates, closes, ticker, period_label, png_path) + + print(f"\nData points: {len(dates)} " + f"({dates[0]:%Y-%m-%d} → {dates[-1]:%Y-%m-%d})") + print(f"CSV: {csv_path}") + print(f"Chart: {png_path}") + print(f"Sandbox invocations: {sandbox_invocations(response)}") + cost = total_cost(response) + if cost is not None: + print(f"Cost: {cost[0]:.4f} {cost[1]}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/docs/examples/finance-chart-sandbox/requirements.txt b/docs/examples/finance-chart-sandbox/requirements.txt new file mode 100644 index 0000000..632e087 --- /dev/null +++ b/docs/examples/finance-chart-sandbox/requirements.txt @@ -0,0 +1,2 @@ +# The Agent API is called over raw HTTP (stdlib urllib) — no SDK needed. +matplotlib>=3.7 diff --git a/docs/examples/finance-chart-sandbox/webapp/app.py b/docs/examples/finance-chart-sandbox/webapp/app.py new file mode 100644 index 0000000..0f3fd53 --- /dev/null +++ b/docs/examples/finance-chart-sandbox/webapp/app.py @@ -0,0 +1,395 @@ +#!/usr/bin/env python3 +""" +FastAPI backend for the Finance Chart (Sandbox) UI. + +The user types a natural-language question ("apple stock price over the last 6 +months?"). The backend, using the Perplexity Python SDK, runs a two-phase flow: + + Phase 1 (data) A *background* Agent API request gives the model the + ``sandbox`` tool, which resolves the ticker + period from + the question, fetches the daily closing prices inside an + isolated container, and prints a META + ``date,close`` CSV. + Phase 2 (answer) A *streaming* request (no sandbox) writes a short + natural-language analysis of that series, token by token. + +The sandbox tool only runs as a background task (not streamable), so the prose +answer is produced by the separate streaming call in phase 2. + +Endpoints: + POST /api/charts -> submit a question, returns {"job_id"} + GET /api/charts/{id}/events -> Server-Sent Events: progress, chart, + streamed answer tokens, done/error + GET /api/charts/{id}/response.json -> the raw Agent API response (phase 1) + GET /api/charts/{id}/csv -> download the date,close CSV + GET /api/charts/{id} -> plain JSON status snapshot + +Execution runs in a worker thread and writes incremental state onto the job, so +the SSE stream merely *tails* that state — reconnects never re-run the work. + +CSV-extraction/parsing helpers are reused from the CLI module +(``finance_chart_sandbox``); only the API call differs (SDK here, raw HTTP there). +""" + +import json +import os +import re +import sys +import threading +import time +import uuid +from pathlib import Path +from typing import Dict, List, Optional + +from fastapi import FastAPI, HTTPException +from fastapi.responses import PlainTextResponse, Response, StreamingResponse +from fastapi.staticfiles import StaticFiles +from pydantic import BaseModel, Field + +from perplexity import APIError, Perplexity + +# Reuse the CLI module's tool-agnostic helpers (CSV extraction, parsing, usage). +sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) +import finance_chart_sandbox as fcs # noqa: E402 + +app = FastAPI(title="Finance Chart (Sandbox) UI") + +# In-memory job store. Fine for a single-process demo; swap for Redis/DB to +# scale out. Guarded by a lock because a worker thread mutates it. +JOBS: Dict[str, dict] = {} +_LOCK = threading.Lock() + +DEFAULT_MODEL = "openai/gpt-5.5" +META_START = "===META_START===" +META_END = "===META_END===" + +# Phase 1: data-gathering inside the sandbox. +DATA_PROMPT = f"""You answer natural-language questions about a stock's recent +price history by producing a chart-ready CSV. + +You have the `sandbox` tool — an isolated Python environment that includes the +`perplexity` SDK (web search and URL fetch) plus pandas and the standard +library. + +Do this: +1. Read the user's question and determine the stock TICKER (resolve a company + name to its symbol, e.g. "apple" -> AAPL) and the time PERIOD they asked + about (default to the last 6 months if none is given). +2. Use the sandbox to obtain the DAILY closing prices for that ticker over that + period: search the web and/or fetch a historical-price page with a clean + date/close table. If a source fails or is rate-limited, try another. Never + fabricate or interpolate prices — use only values you actually retrieved. +3. Print to stdout, in exactly this order and nothing else: + {META_START} + ticker: + label: + {META_END} + {fcs.CSV_START} + date,close + + {fcs.CSV_END}""" + +# Phase 2: the streamed natural-language analysis. +ANSWER_PROMPT = """You are a concise financial analyst. Given a user's question +and a stock's daily closing prices, answer in 3-5 sentences: the overall trend, +the start and end levels, notable highs/lows or moves, and the net change over +the period. Use only the data provided. Do not give investment advice. Write +plain prose — no markdown, asterisks, headings, or bullet points.""" + + +class ChartRequest(BaseModel): + query: str = Field(..., min_length=3, max_length=400) + attempts: int = Field(3, ge=1, le=8) + max_steps: int = Field(25, ge=5, le=60) + + +# --------------------------------------------------------------------------- +# Job state helpers (all mutate under the lock) +# --------------------------------------------------------------------------- +def _set(job_id: str, **fields) -> None: + with _LOCK: + JOBS[job_id].update(fields) + + +def _push(job_id: str, event: dict) -> None: + with _LOCK: + JOBS[job_id]["events"].append(event) + + +def _append_answer(job_id: str, text: str) -> None: + with _LOCK: + JOBS[job_id]["answer"] += text + + +def _to_dict(response) -> dict: + """SDK response object -> plain dict (silence harmless serializer warnings).""" + try: + return response.model_dump(warnings=False) + except TypeError: # older pydantic + return response.model_dump() + + +# --------------------------------------------------------------------------- +# SDK calls +# --------------------------------------------------------------------------- +def _make_client() -> Perplexity: + kw = {} + if os.environ.get("PERPLEXITY_BASE_URL"): + kw["base_url"] = os.environ["PERPLEXITY_BASE_URL"] + return Perplexity(api_key=fcs.resolve_api_key(), **kw) + + +def _run_sandbox(client, query, model, max_steps, poll_timeout) -> dict: + """Phase 1: one background SDK call (create + poll by id), returned as a dict.""" + response = client.responses.create( + model=model, + instructions=DATA_PROMPT, + input=query, + tools=[{"type": "sandbox"}], + background=True, + max_output_tokens=4096, + max_steps=max_steps, + ) + deadline = time.time() + poll_timeout + while response.status in ("queued", "in_progress"): + if time.time() > deadline: + raise TimeoutError("Timed out waiting for the sandbox response.") + time.sleep(3) + response = client.responses.retrieve(response.id) + return _to_dict(response) + + +def _parse_meta(response: dict) -> Dict[str, str]: + haystack = fcs._sandbox_stdout(response) + "\n" + fcs._message_text(response) + block = re.search( + re.escape(META_START) + r"\s*(.*?)\s*" + re.escape(META_END), haystack, re.S + ) + meta: Dict[str, str] = {} + if block: + for line in block.group(1).splitlines(): + if ":" in line: + key, val = line.split(":", 1) + meta[key.strip().lower()] = val.strip() + return meta + + +def _fetch_data(client, query, attempts, max_steps, poll_timeout, on_attempt): + """Retry phase 1 until a usable CSV parses.""" + for attempt in range(1, attempts + 1): + on_attempt(attempt, attempts, None) + try: + response = _run_sandbox(client, query, DEFAULT_MODEL, max_steps, poll_timeout) + except (APIError, TimeoutError) as err: + on_attempt(attempt, attempts, str(err)) + continue + if response.get("status") == "failed": + on_attempt(attempt, attempts, f"request failed: {response.get('error')}") + continue + candidate = fcs.extract_csv(response) + if not candidate: + on_attempt(attempt, attempts, "no fenced CSV in output") + continue + try: + dates, closes = fcs.parse_csv(candidate) + except RuntimeError as err: + on_attempt(attempt, attempts, f"unusable CSV: {err}") + continue + return dates, closes, candidate, _parse_meta(response), response + raise RuntimeError( + f"Could not answer the query from the sandbox after {attempts} " + "attempt(s). Data fetching is best-effort (sources rate-limit); " + "try rephrasing or asking again." + ) + + +def _stream_answer(client, query, ticker, label, dates, closes, on_text) -> None: + """Phase 2: stream a short analysis of the series, token by token.""" + rows = list(zip(dates, closes)) + if len(rows) > 250: # keep the prompt small for long ranges + step = len(rows) // 250 + 1 + rows = rows[::step] + [rows[-1]] + series = "\n".join(f"{d:%Y-%m-%d},{c}" for d, c in rows) + user = ( + f"Question: {query}\n" + f"Ticker: {ticker or 'unknown'} ({label})\n" + f"Daily closing prices (date,close):\n{series}\n\nWrite the analysis." + ) + stream = client.responses.create( + model=DEFAULT_MODEL, + instructions=ANSWER_PROMPT, + input=user, + stream=True, + max_output_tokens=400, + ) + for event in stream: + if getattr(event, "type", None) == "response.output_text.delta": + delta = getattr(event, "delta", None) + if delta: + on_text(delta) + + +# --------------------------------------------------------------------------- +# Worker +# --------------------------------------------------------------------------- +def _run_job(job_id: str) -> None: + with _LOCK: + job = dict(JOBS[job_id]) + query, attempts, max_steps = job["query"], job["attempts"], job["max_steps"] + + try: + client = _make_client() + except RuntimeError as err: + _push(job_id, {"kind": "progress", "message": str(err)}) + _set(job_id, status="error", error=str(err)) + return + + def on_attempt(n: int, total: int, note: Optional[str]) -> None: + msg = (f"Attempt {n}/{total}: the sandbox is fetching prices…" + if note is None else f"Attempt {n}/{total}: {note}") + _set(job_id, status="running") + _push(job_id, {"kind": "progress", "message": msg}) + + try: + dates, closes, csv_text, meta, response = _fetch_data( + client, query, attempts, max_steps, poll_timeout=300, on_attempt=on_attempt + ) + except (RuntimeError, TimeoutError) as err: + _set(job_id, status="error", error=str(err)) + return + + ticker = meta.get("ticker", "").upper() or None + label = meta.get("label") or "price history" + title = f"{ticker} · closing price · {label}" if ticker else query + cost = fcs.total_cost(response) + result = { + "title": title, + "ticker": ticker, + "label": label, + "points": len(dates), + "first_date": dates[0].strftime("%Y-%m-%d"), + "last_date": dates[-1].strftime("%Y-%m-%d"), + "dates": [d.strftime("%Y-%m-%d") for d in dates], + "closes": closes, + "sandbox_invocations": fcs.sandbox_invocations(response), + "cost": ({"total": cost[0], "currency": cost[1]} if cost else None), + } + filename = ((ticker or "chart") + "_" + re.sub(r"[^\w]+", "-", label)).strip("-") + _set(job_id, csv=csv_text, filename=filename, response=response, result=result) + _push(job_id, {"kind": "chart", "result": result}) + + # Phase 2: stream the natural-language analysis. + _push(job_id, {"kind": "answer_start"}) + try: + _stream_answer(client, query, ticker, label, dates, closes, + on_text=lambda t: _append_answer(job_id, t)) + except APIError as err: + _append_answer(job_id, f"\n\n_(analysis unavailable: {err})_") + + _set(job_id, status="done") + + +# --------------------------------------------------------------------------- +# Routes +# --------------------------------------------------------------------------- +def _sse(event: str, data: dict) -> str: + return f"event: {event}\ndata: {json.dumps(data)}\n\n" + + +@app.post("/api/charts") +def create_chart(req: ChartRequest) -> dict: + job_id = uuid.uuid4().hex + with _LOCK: + JOBS[job_id] = { + "status": "queued", "query": req.query.strip(), + "attempts": req.attempts, "max_steps": req.max_steps, + "events": [], "answer": "", "result": None, "csv": None, + "filename": "chart", "response": None, "error": None, + } + threading.Thread(target=_run_job, args=(job_id,), daemon=True).start() + return {"job_id": job_id, "status": "queued"} + + +@app.get("/api/charts/{job_id}/events") +def stream_events(job_id: str) -> StreamingResponse: + with _LOCK: + if job_id not in JOBS: + raise HTTPException(status_code=404, detail="Unknown job_id") + + def gen(): + ev_idx, ans_pos = 0, 0 + yield ":ok\n\n" # open the stream + while True: + with _LOCK: + job = JOBS.get(job_id) + new_events = job["events"][ev_idx:] + ev_idx = len(job["events"]) + ans_delta = job["answer"][ans_pos:] + ans_pos = len(job["answer"]) + status, error = job["status"], job["error"] + has_json = job["response"] is not None + for e in new_events: + if e["kind"] == "progress": + yield _sse("progress", {"message": e["message"]}) + elif e["kind"] == "chart": + yield _sse("chart", e["result"]) + elif e["kind"] == "answer_start": + yield _sse("answer_start", {}) + if ans_delta: + yield _sse("token", {"text": ans_delta}) + if status == "error": + yield _sse("error", {"message": error or "Run failed."}) + return + if status == "done": + yield _sse("done", {"has_json": has_json}) + return + time.sleep(0.12) + + return StreamingResponse( + gen(), + media_type="text/event-stream", + headers={"Cache-Control": "no-cache", "X-Accel-Buffering": "no"}, + ) + + +@app.get("/api/charts/{job_id}") +def get_status(job_id: str) -> dict: + with _LOCK: + job = JOBS.get(job_id) + if job is None: + raise HTTPException(status_code=404, detail="Unknown job_id") + return {"status": job["status"], "result": job["result"], + "answer": job["answer"], "error": job["error"], + "has_json": job["response"] is not None} + + +@app.get("/api/charts/{job_id}/response.json") +def get_response_json(job_id: str) -> Response: + with _LOCK: + job = JOBS.get(job_id) + response = job["response"] if job else None + if response is None: + raise HTTPException(status_code=404, detail="No response stored yet") + return Response(json.dumps(response, indent=2), media_type="application/json") + + +@app.get("/api/charts/{job_id}/csv") +def get_csv(job_id: str) -> PlainTextResponse: + with _LOCK: + job = JOBS.get(job_id) + if job is None or not job.get("csv"): + raise HTTPException(status_code=404, detail="No CSV for this job") + return PlainTextResponse( + job["csv"], + media_type="text/csv", + headers={"Content-Disposition": f'attachment; filename="{job["filename"]}.csv"'}, + ) + + +# Serve the static frontend at the root. Mounted last so /api/* takes priority. +_STATIC = Path(__file__).resolve().parent / "static" +app.mount("/", StaticFiles(directory=str(_STATIC), html=True), name="static") + + +if __name__ == "__main__": + import uvicorn + + uvicorn.run(app, host="127.0.0.1", port=int(os.environ.get("PORT", "8000"))) diff --git a/docs/examples/finance-chart-sandbox/webapp/requirements.txt b/docs/examples/finance-chart-sandbox/webapp/requirements.txt new file mode 100644 index 0000000..15fdfe0 --- /dev/null +++ b/docs/examples/finance-chart-sandbox/webapp/requirements.txt @@ -0,0 +1,3 @@ +perplexityai>=0.35.1 +fastapi>=0.110 +uvicorn>=0.29 diff --git a/docs/examples/finance-chart-sandbox/webapp/static/app.js b/docs/examples/finance-chart-sandbox/webapp/static/app.js new file mode 100644 index 0000000..60e7179 --- /dev/null +++ b/docs/examples/finance-chart-sandbox/webapp/static/app.js @@ -0,0 +1,160 @@ +"use strict"; + +const form = document.getElementById("chart-form"); +const queryInput = document.getElementById("query"); +const submitBtn = document.getElementById("submit"); +const statusEl = document.getElementById("status"); +const statusText = document.getElementById("status-text"); +const errorEl = document.getElementById("error"); +const resultEl = document.getElementById("result"); +const resultTitle = document.getElementById("result-title"); +const statsEl = document.getElementById("stats"); +const downloadBtn = document.getElementById("download"); +const viewJsonLink = document.getElementById("view-json"); +const answerWrap = document.getElementById("answer-wrap"); +const answerEl = document.getElementById("answer"); + +let chart = null; +let es = null; + +function show(el) { el.classList.remove("hidden"); } +function hide(el) { el.classList.add("hidden"); } + +function setBusy(busy) { + submitBtn.disabled = busy; + submitBtn.textContent = busy ? "Working…" : "Ask"; +} + +// Example chips fill the query box. +document.querySelectorAll(".chip").forEach((chip) => { + chip.addEventListener("click", () => { + queryInput.value = chip.textContent; + queryInput.focus(); + }); +}); + +function renderChart(r) { + hide(statusEl); + resultTitle.textContent = r.title; + + const ctx = document.getElementById("chart").getContext("2d"); + if (chart) chart.destroy(); + chart = new Chart(ctx, { + type: "line", + data: { + labels: r.dates, + datasets: [{ + label: "Close (USD)", + data: r.closes, + borderColor: "#1f77b4", + backgroundColor: "rgba(31,119,180,0.12)", + fill: true, + pointRadius: 0, + borderWidth: 1.8, + tension: 0.15, + }], + }, + options: { + responsive: true, + interaction: { mode: "index", intersect: false }, + plugins: { legend: { display: false } }, + scales: { + x: { ticks: { maxTicksLimit: 10, color: "#9aa0ad" }, grid: { color: "#262a36" } }, + y: { ticks: { color: "#9aa0ad" }, grid: { color: "#262a36" } }, + }, + }, + }); + + const cost = r.cost ? `${r.cost.total.toFixed(4)} ${r.cost.currency}` : "—"; + statsEl.innerHTML = ""; + for (const [k, v] of [ + ["Ticker", r.ticker || "—"], + ["Data points", r.points], + ["Range", `${r.first_date} → ${r.last_date}`], + ["Sandbox calls", r.sandbox_invocations], + ["Cost", cost], + ]) { + const div = document.createElement("div"); + div.innerHTML = `
${k}
${v}
`; + statsEl.appendChild(div); + } + show(resultEl); +} + +function onError(message) { + if (es) { es.close(); es = null; } + hide(statusEl); + setBusy(false); + errorEl.textContent = message; + show(errorEl); +} + +function startStream(jobId) { + viewJsonLink.href = `/api/charts/${jobId}/response.json`; + downloadBtn.onclick = () => { window.location.href = `/api/charts/${jobId}/csv`; }; + + es = new EventSource(`/api/charts/${jobId}/events`); + + es.addEventListener("progress", (e) => { + statusText.textContent = JSON.parse(e.data).message; + }); + + es.addEventListener("chart", (e) => { + renderChart(JSON.parse(e.data)); + }); + + es.addEventListener("answer_start", () => { + answerEl.textContent = ""; + answerEl.classList.add("streaming"); + show(answerWrap); + }); + + es.addEventListener("token", (e) => { + answerEl.textContent += JSON.parse(e.data).text; + }); + + es.addEventListener("done", () => { + answerEl.classList.remove("streaming"); + setBusy(false); + es.close(); es = null; + }); + + es.addEventListener("error", (e) => { + let msg = "The stream failed."; + try { msg = JSON.parse(e.data).message || msg; } catch (_) {} + onError(msg); + }); + + // Network-level failure (not a server "error" event). + es.onerror = () => { + if (es && es.readyState === EventSource.CLOSED) { + onError("Connection to the server was lost."); + } + }; +} + +form.addEventListener("submit", async (e) => { + e.preventDefault(); + hide(errorEl); + hide(resultEl); + hide(answerWrap); + setBusy(true); + show(statusEl); + statusText.textContent = "Submitting…"; + + try { + const res = await fetch("/api/charts", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ query: queryInput.value.trim() }), + }); + if (!res.ok) { + const detail = await res.json().catch(() => ({})); + throw new Error(detail.detail || `Submit failed (HTTP ${res.status})`); + } + const { job_id } = await res.json(); + startStream(job_id); + } catch (err) { + onError(err.message || String(err)); + } +}); diff --git a/docs/examples/finance-chart-sandbox/webapp/static/index.html b/docs/examples/finance-chart-sandbox/webapp/static/index.html new file mode 100644 index 0000000..c7a9cef --- /dev/null +++ b/docs/examples/finance-chart-sandbox/webapp/static/index.html @@ -0,0 +1,66 @@ + + + + + + Stock Price Q&A · Perplexity Agent API sandbox + + + + +
+
+

Stock Price Q&A

+

+ Ask in plain English. The Perplexity Agent API sandbox + tool figures out the ticker and period, fetches the price history + inside an isolated container, and we chart it here. +

+
+ +
+ + +
+ Try: + + + +
+

+ Each question starts a background sandbox session (~30–60s) and may + retry if a data source rate-limits. +

+
+ + + + + + +
+ + + + diff --git a/docs/examples/finance-chart-sandbox/webapp/static/styles.css b/docs/examples/finance-chart-sandbox/webapp/static/styles.css new file mode 100644 index 0000000..5adbc66 --- /dev/null +++ b/docs/examples/finance-chart-sandbox/webapp/static/styles.css @@ -0,0 +1,182 @@ +:root { + --bg: #0f1117; + --card: #181b24; + --border: #262a36; + --text: #e6e8ee; + --muted: #9aa0ad; + --accent: #20a5a0; + --accent-2: #1f77b4; + --error: #ff6b6b; +} + +* { box-sizing: border-box; } + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, + Arial, sans-serif; + background: var(--bg); + color: var(--text); + line-height: 1.5; +} + +.container { + max-width: 860px; + margin: 0 auto; + padding: 2.5rem 1.25rem 4rem; +} + +header h1 { margin: 0 0 0.25rem; font-size: 1.7rem; } +.sub { color: var(--muted); margin: 0 0 1.5rem; } +code { background: #11141b; padding: 0.1em 0.35em; border-radius: 4px; } + +.card { + background: var(--card); + border: 1px solid var(--border); + border-radius: 12px; + padding: 1.25rem; +} + +.row { + display: flex; + gap: 1rem; + flex-wrap: wrap; + margin-bottom: 1rem; +} + +label { + display: flex; + flex-direction: column; + gap: 0.35rem; + font-size: 0.85rem; + color: var(--muted); + flex: 1 1 140px; +} + +input, select { + background: #11141b; + border: 1px solid var(--border); + color: var(--text); + border-radius: 8px; + padding: 0.55rem 0.65rem; + font-size: 1rem; +} +input:focus, select:focus { outline: 2px solid var(--accent); } + +button { + background: var(--accent); + color: #04201f; + font-weight: 600; + border: none; + border-radius: 8px; + padding: 0.6rem 1.1rem; + font-size: 1rem; + cursor: pointer; +} +button:hover { filter: brightness(1.07); } +button:disabled { opacity: 0.55; cursor: not-allowed; } +button.secondary { + background: transparent; + color: var(--accent); + border: 1px solid var(--accent); +} + +.query-label { + flex: 1 1 100%; + margin-bottom: 0.9rem; +} +.query-label input { font-size: 1.05rem; padding: 0.7rem 0.8rem; } + +#submit { width: 100%; padding: 0.7rem 1.1rem; } + +.examples { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.5rem; + margin-top: 0.9rem; +} +.examples > span { color: var(--muted); font-size: 0.8rem; } +.chip { + background: #11141b; + color: var(--muted); + border: 1px solid var(--border); + border-radius: 999px; + padding: 0.3rem 0.7rem; + font-size: 0.8rem; + font-weight: 400; + cursor: pointer; +} +.chip:hover { color: var(--text); border-color: var(--accent); filter: none; } + +.hint { color: var(--muted); font-size: 0.8rem; margin: 0.9rem 0 0; } + +.status { + display: flex; + align-items: center; + gap: 0.6rem; + margin-top: 1.25rem; + color: var(--muted); +} +.spinner { + width: 16px; height: 16px; + border: 2px solid var(--border); + border-top-color: var(--accent); + border-radius: 50%; + animation: spin 0.8s linear infinite; +} +@keyframes spin { to { transform: rotate(360deg); } } + +.error { + margin-top: 1.25rem; + padding: 0.9rem 1rem; + border: 1px solid var(--error); + border-radius: 8px; + color: var(--error); + background: rgba(255, 107, 107, 0.08); +} + +.result { margin-top: 1.5rem; } +.result-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + margin-bottom: 0.5rem; +} +.result-head h2 { margin: 0; font-size: 1.15rem; } +.actions { display: flex; gap: 0.5rem; flex-shrink: 0; } +a.secondary { + display: inline-block; + text-decoration: none; + text-align: center; + line-height: 1.4; +} + +.answer-wrap { margin-top: 1.25rem; } +.answer-wrap h3 { + margin: 0 0 0.4rem; + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--muted); +} +.answer { margin: 0; color: var(--text); white-space: pre-wrap; } +.answer.streaming::after { + content: "▍"; + color: var(--accent); + animation: blink 1s step-end infinite; +} +@keyframes blink { 50% { opacity: 0; } } + +.stats { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); + gap: 0.75rem 1.5rem; + margin: 1.25rem 0 0; +} +.stats div { display: flex; flex-direction: column; } +.stats dt { color: var(--muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; } +.stats dd { margin: 0.15rem 0 0; font-size: 1.05rem; font-variant-numeric: tabular-nums; } + +.hidden { display: none !important; } diff --git a/static/img/finance-chart-sandbox-aapl.png b/static/img/finance-chart-sandbox-aapl.png new file mode 100644 index 0000000000000000000000000000000000000000..cc146afbc3870737a008be9b9984f7594a2524c1 GIT binary patch literal 59797 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%0AX5 zK3sytG@woFGx14OBi<+D-~XK5;0Q;}#i0rZdZey-F}rKBEjAyC@x%@~nbfc5vFl|!`&kYcb zPCSUJAw-An{gwxuR-A}O{?k%oaB5VqC@u5 z7{MgF8bIZ7RT|9ozD>Wmp#-H2H9A^arJtndhu>EK$DQ4t{MJ@i{)^irh!5J3lZD;0 zIA6r~`<#xB>v!dR++@hQWzfMcmM@BMftaNHc5n` zX^ST>&GC(YV!!X+|7VpQRTYxIj-EILjL>E@{FFfBkwF zBQSbLaLOY+2$Fv5L}$lV0hefx>?F4yLn0XoiRQ0xUpx%zDWZrvx*DyyA_kr09d5C) zy8k=igenm;8gO#dG5GWB^Ryx>Tx@xoB{;t;!Zx~kz`l_tfSNW&fqeVt2fq*LX#VaM ztr|2zoHnIuIKsuoJV^Eg**M3f@{B%n14@FUAtVKnQb3jbgH_IP1*Fl>Q8HK07=>NQ ziTHQShq^c#=&4)enmy25YnT zl*%}}+(h+4HFt1%a(VsQaQgF&8&IVGrLwTgS(sm)W~v9Xfe5`XBA%L=+k#)fe-7qo zT;*k$KCJ{t-`6i*huq(rF(qHRx~8UV(h{{bz$eL?vc9Uy6QQBOU4|p~Tew>%I}~bP z&49?#vYsIhvzjk}6_aE0MqMbF^=wSq$crhr|H=N+2k8VESK*w5a9aWW3|nbwFNrX| zf&$q1iq3<8iHFgm2#6H;3NK__qD8MJ`uvHi8+ilnB_{TV(xjNstK$uWX6MeGo6`h{ z@WT{1c3iA}RmPR3AsmNUZ7i`BLFxvC!YGu2CCc`m{&gs>_=M-p{W}G{-Odr;vd}HMz$X&0JeTlxUH&?k$50zcUF(JBn$(K z#%P`kiPsu{5;2??nhD?T85vHUC937%^g><5g75ba7k_=b*Cv}a>Ko?>g?7^_nlzJv z8(g!s?DHF7fKh-bRmh+wy6aQ7&3MuzR0aR1q{LC*`cW*9?V&fuR-*pyi7p=18`q_- zhpNRyPGXtJ?{WMtBtg%|YY?*g+-|Qeo~;=6SU1*u^c)B~2EIk&j^ON5115_|aTyPe zY~zBN-cn^@U}|$`2R;J4HhzKWIO=88lRTATey%I^y~hq#gi5Vnd-prhLOb^(uG49& zwQD*pzqj_qO?I%C*I5z>Im!Ha9xbS^1cCG#eNOi77Dl!C zmz!VtKO;W}cM&@NMo<>QQhRgmtD` z4uu|eolgcc1q63A?iNyEUiAWb2M64gfFl6h$K?S2e)=WSV7dKpwxDZ-yi+jEOY_23 zASc>!t=JxnFWD@{?yAli>B8B`6s&4QLD~A>lb1xua)|wUjQmllUoKJMy+88M#Vrl) z@A>rgjle-q*#x;!sf7b^BgT;Ul6AHvDaQy`CbZwZ8o${J9x>-ZFsyFnOu{-Oqxfc- z+f{G5%!Xh$ZwQmktS8t7K_7wVTm3)K@6aC%66RAMCg_=fwSm%)ouVCk5yNw!7zc*9 z!$4|lu;6!(WCcY)4v3kqRB#T zt8NVLj2s*s(s%CkGr2SJ+AbK#8OXasC8!{jRZ}QpJ)XEAd?lYViurgfDLW!nke%56 zoZ*9%)+{gKT)zvq6$kaFEn^~emwQ0G-L;vLVJ&sL%zNj-0bFOC_D!|4wB)J2az1&V z4>P5rdQX16ix=!VC%dv&ncTr6OD=`(*4tRObulRasR6Gox2(--ZDa zcP?)rcKyZGRb`&!W5|H#hu_P?dyL76z9WS{^9hPZ(HpWL@BBBG0PTjqOLwW6ZKvV} z%}P9bQ5~82BPF>1z7CC1s)1#{O!HzB6q)hh^*q)vNzAwO4zr2O6K7QCedHsiWLbL! z=6%E1v|TaEnMI&|@cn3?rlzK{9e@3ZE_cTm&Sp19Ch`x(Tod1!2KD=O>*gKFxw*Ma zI6g+k8e5|l!Kcy9hyvHrhKsV2UENzxzHRJyD8=UkG}P20po+htR2HtGFGgO{R2`oA zB+MnOiYkEbC-W^%ueUoTrFDZd!CN=jb$*hUQnbSAGXQDtdE0dpA`fvJL4Ab9t zFq--V=yhc}`$FsQ%F8oa+G^dgkG{9YHxoFif{arOVhMB!C*XMuH z)1Y$&^t7R=S8p17FtX0oeNzXWBO3bN3b~ueKc7cLU0~##L)M0C%k_?}BvGLbE2A(j zw8tkqTNds0<&%_Xpi=M2{EmNP=}WKL6waa^BY8HaM{T~vrgZSR%@`5IViET|67 z$9Xls=hg|LGo=QM@m`B$)64ZOKrv$ruL;E#5$5K#d;852_L=kCnUp`sHFSucIk|9q zM6V@;2Yjotv2|F)gXiRMWI{s4c;w)#Go6&2ar#l|;k-<@pm*~?e>GS*-7+Y2YzS;m z*M(MPjhCTSp=6XZu&W?RXxLV%AvS>y=$m=|tDoNs1e4FgyZWLH!qJa^ZGd%-)c zc<+&YN9?wcT#v_FF{D+_`^O9U@1G-RPJfVDmtDFud}7<+iMnk&*#6#>$-B%-M~{ql z6u42}?4kjD^@m=4Me#tWK97E!gM<$?li5s%M3AXL-#4!PWX#P}z4biPSHlWY@_hTB zk=z0*3M#mSLaT-pG+w`fpIaz8y5uFja+P|WArFqQB6d-*?LpicVUK&Viil_zauU|X znyNIm5$WoK94$JqT#D4JBULaoA$R7nm?^{qKNx}5<|dH%*qd_uDR zTsu_b=koMUovhbgM;HZ&_ei?>$ob}*|AbcU>gOT!OAlP-PpmL%-s5!d z_FCxU&twwO{w^t?{6tht(!bQ_62iYss+p*#X}PGF)p4-tem=vi7^l?S)~05g|+`|_`k-p)JI+t}4<01WV%ieXUk=liypJM5>NFE~?L>Sx;@?=UqwIxkNS zmT=+1A1H0Uz0c#sGGx^UafmNEK|PTlIFl~!?naicp!g+-&L`_@teWND946z5*WAf@ zhTfWe@`Pjo6J}`8neO5U%|$gCgV`;2j9q@jUyZ%H`jjVnaLesD)6s#)W;#ACr`=cV zhCN6LdImpwuV@QR%M*h0dn8TyMZI|9%r2T&=)_=DFfRuuqLzpbVEAkF=z|9*r(q{G zvgXX6YZOOf=A)M{fY-yswnG1)%H}U6#QX;H*70HaG0>iVB)bz2&5j!Ak0YfVrJt8VTp+w+GeK&e^x$cxXRzRhY-Z}q*6@96R#}IdDYxT})& z6xO15a)bQHP~_QHPYBDjNNZB=_W|iPuP`qeh@&j5Va6j9I|q7jqwRc0DDD{owivE! zPNd!7-@yPiq=YM{ZC&?E##J<%HJfcC+9QXk@1TBD(1qZ)?Y;A6u7sBmnPn;$gBHPU zf3Tsb8TMCa2F3Y03Kk|N0xAlb@*$RzmuE|2S+D@f`v{ zSWn|Yz)WaE2On(1nn_yX%h|Y!$_vKFfSDaV2o{us@<_YOlVxrB_f81DK+EqxFo3 zrBekB=C%ngZ(2z&=)d(Hg&=obRP~Dk0fvBzkDTwbf1Fc^{@FhzhFm#76vOlNDb8vL zKo`2QjTfgVIgQ@J(oW|s*(RhbU@D^p+25X#;yTihdXtd%}lSs-&kihvpX;fK|768Mx9 z%YC5@lYo!P9o)0Q)a~EswPLN#w)Ax8uD?SWJqr^lZ-Ii?6RC&OmI(X|lt`ZhwX;9|7+ATy?+_HTI1)6GLDW42V|%S)2k<69 zL2K&}XxkxK(G!2aiK%|xmA6N`Uo+%5La7pg z>$v7V3m|}&t^E|VnYDWJtr0_)Yvo(S`U!YMlY=gS2~n-1jq1+MaSfC9i3bSVW zk-$`4EM_&bI3&_>_owBJc!C_>642JREx7!BAOS(=w+P-8jT&=%7uz1ITMr+LOG@%Z zzBosYEUb$Q@s7Z0+8=aiP?dBYss)UUj7>ikO*cj?vBRGA@;2EK1_P$+&wBmJweXHa zEn6})zoT7b9wTI9t8OQKsH>NfotXaahx zw~|?9*Pm*UI+gYf>N-y){G`l);4uufnz-2&UShJ2+^g4ecMo!x;u) z7T<;l;Z?@OH*KxcI~RxvO1|qOh3S{8+`aUt7c59@#F18NfCOOp{sXl_=dkvOaGLI6 zr0?_v0AutqZ_hyrS#T9*5+1D@$rP!2*_|sOQP84(|9SpziRscvyCjPo>X;m{b00r~ zOAqbBOB0t@dlnrGJ@$Bmvf|zyfI!B7#6VjDnJ-p7a+BU zr*G|>DnHttQm~*zNDH7Z&=NsEoj-ePFR^j%Q_y~E6ttf2hV8u??3cfwGTjS>FnMPG z{FPwloaxt0`I#Da_Sbt!DVQyTZ4Bz$7QU~H#E!(bS>YD)qaCmt90v;J#$VLyS-tWg z{VJmPy5v+FRI&~PxDhrXA~YBV28jp&id227z-^SsDi;9^swyi#*CV7Z_$Cve zKHxg#{q39X`pJ2vC1HRaKcZ5RM3U_im2E(hG99Qf)6y9YUAT}0N}x7z$!4POj(71$ zmd}Z$!;`)Pkh->4N1q^JtG`RLTMlpbNu=AO+HWEPkMXTGMo!zh{EW z2(xauA8@m5hMkvATs8>c7uaVVuT5;{0a1L14GwIU3vI0}gIy;dpT8xg8u%%G5z?m6IV3bp1e>8WXAV_5>$J@!&X)ahhbVbQYJ5e->oZvA-#hgI8U)X z8ocQU-R(UlSh0lRkN!HG`c&)y%~D}a_P?US9A}n?*lE09oAW-k^goPIK0U_jue|8c zM%6cOW|=~+PrWuZV%>(N>{{o}w2c2UxzU-rntPxv^h@TY6ws4VXHAZon|{-dqeGBV z0LlxYeWjT`{vRSGnLBD!WH>hA%g658ERy%~NFskLK;4PFlgjSl3Oc%`d5(&jFTQ6( zk0AC$wCzPapsP#~zOx~runP2=r*X)|iezNhgH%-@3wpo&zUMt|>w~U-EKr9E?&HQW z?%X;4!m4WWs9t-d;=n#a?61qyVnDc^dj}a#oTdF;y4?#40Q}*GL4C_D+t+IGz?jeZ z&9$DhM^07oOC54~?MBcS{`-Lgpl|-_gYQi7@J_6rE^7o+!yRHcIp}3nw|%Y3uM_OG zU*|5ZnI)q*2e=t=O@aQGZp3f*-z>uYRX%BAJ``tN)vt_%p);@m98C_ntnQ$w-rv*4 z&U-7g@ZK{(I4PY3X->F`9*2WZ?{9lrxsit<;0FQf_Bi#Bk)AdV8X>iOlV^zfPD-|2 z1{GibgvX;O@!KelAlv@Clv-L%P{Z!Rx((M1WAj(JX#{KB$X@%@mg?3F-sm^Ia{7OF zE|;2tLoqdD=bsQGLEFiX0MbI;@30G?DeND3h=xV&(hY7p2*g{r@5F*6E0;n*`_-0T zjdr@e?`x0$NiupCl}k7BqRJJ2{#gp)&kEW%KI<@QcTO<%+KaMUT5miNh?KXQ8hB7vdU{zIdEtPNZA2#{EPEh-}*@mqkjF?4yQI~&UB)2-Io znp9LnVTGrdJ3_oWnRW#*vC?<^-JeItGMC#Dq|P;l1hGIQjCx<=1_8zcn*J$k8P`Jt za?5`S0)lvZ=kWUB)8XOE>-)_98f8L}EC(ssHc0Ox>Nf-T&BWC#TX5_c0^&0P=h0{NmF`!tt+<6rQ3i4MsOh6m&o&*Nz_M_{=lR7WV zb8R;Ez?{#NAYbQ_g12aB)ySPFG>eM=G}?oKuH$gpBVK#Z$QS*g`~CO2+(Kd*SuE{> z=ct+8wS}-ftiPORXX~PZA3IH-@(6JBY*|=Hv+J)@p3<#+@MV$lKh2aQ_tRZ?UJ*v? zw`a8A`QhUHP(w zr024|_QDI2{)J(z3I>PQ*tf=^|9aF8qR$L13G3nVUn^ha@0-T4^2!j*kWdCfKr;~m zlNwgwH8(ME&+*!<^=!db=dS{Y%?~u8X{9W;=omyqlFxH{j4Iosqg6y4v?c zuNJ&i#RvqkCp78_<8Mvp$7hGKUqA1)M^Yrq`-Md`UaC$C-HZJ%{|FU0K<+y(3FJAp z6f%#Jk`m-81uqUgOe&%IrN7YkVe)frJhH`R+C~KW zjYEDI(rV5G(}Gp#n+!$m7Z$U*;qx<=1w4U)dv+zJhRM;!(Phne6f_`_DH$l-L<&e} z{Q5Iw+xiR;2uv9JoV$D~0bhFjDJbb#R4+;AMV9{DB%JhsR(fp@S=Z)5)jn(6DYBYS<@Dc75x4@z8vVg9PxD;KaIu@apC@nQ=}EHBL1~Rgnutyv zO8KyNW?%4+A3pxRVuFfsO+6;$M_@w2M7gwsbehp%W{B>TeOtu2k3+aw=b9ON?kk;i z{nz-3GPhkmqjsNU@YvnCp*t#yR4ER*J=s^YFs@p( z72KV4gkKY7pB*?zbhe*g-M~L>jJpq?TN2x~l|>!W_1xwtv?DVo=SmE=Uo1am&jX8j z3TvZL(mwo~#2s9Dws{fu+Yib~{Hvo;MDh1CmSRmkqPD3yskr0cy|9sm-ttOf`i?sn zV87I3)S-4~Kp8jjjL++B&{y3sr>BC6zsBaryNJ@q{T?Fb#af+U`!*h$iptTa?BtVM zo~BO9o&cEGxpQaq*$-CghZE(dFL>2+a+ZF5USa8vA3R6jtNcy3(CKMZs#yL<(!cMH zM$k4Y!zu-hj2L*G#OM0C@++i^U~i^2nx2_F#xi;&^Ff@vWR#yBcq23qPM6U3ewo0rx+Eu`7yFTeC~J z%gKG0*WR31c$LsUChE6Dzj_|8KR)zaTiL#bZcfx6M@~XMxrKXi>hgr$l+0#47zRFR zfk~Y^IwoR$D|qkODG_v11Ikiwr=Bp*z=O5AN)ecAm2R9X?`*}DYP`G8)NVUf&wb** z?itN37fBJHJZ_I4vyzsJt7DWo=g2hUlPZ|p;Ln$8ygVq?gA6;e-@d8bcCP)Y)pN<0 z^6k%l{V?49QeQM@_h}k!q9W~3y-Rt#T$iOk@#VSwy18T2AkA!Kl&rVs0z6bV!{uQ% z$4MiYTU2>sD&|ezf%|3`19r7L{d&uvAFx0=B>L!n=+A)(3Oe~?=8@Jj^_&Z(tlxzM z7u`I@do@BjJ3AMqkDCPib#Lg6B5_%AV`Cvx&sQ&gBqve{&xn`Xm@TvH!|VOSBR0}} z<>$y85`%T)B%Z%8Y)K!de_Zm>XaI%#!qy&grWsZZ5m{`?Vr4CjvR#cp9(4_CPt)li zLvt+_ts3SJCaTE>bu3`3%$BD;Nq|y9g2O~Bd4P3vbo3Uc*w;#ZAR|!x@@g_h!qt;~ zmxaDX&yY{E<=8Qkq5rvWYE~{;{c+w~m=X&Vb#kuI-Z9vppJLLO_f|u3O#o-S{6rHg zYOZxNVZ5UBNXm!ZzeCNBh;y@|T+E7m@8Y$H$bX3xjK1m|$n1hhB?*s#a7}tVvwhi- zYZgNom@71e8Dd}UdJfr=I6n|ovYT_DOxM9=={X(vpIeJO!zsLPal$h1RI&iP*@cD1 zk*>(Rtln(9KcATony=z|;p=@hSu1|Ri(=jzfuimUTLq6ZTfePay{v319&ZORY;;uj zhu!fF^1T?M4{s{IcOfc|+_lpkVf2}EEv+{cGb1Xq?HV5SP+z@J z+rYQA7M|sa#PB#R_yz`!nv)lJ8nT8^%cFiZ*o1WZ8Xd|e!9mS~8(*%nd09Q@{htRzeU44~ z>V4|&e_ngBodu85azcpjY%26O@?D`UB!+A|+GFgIh(}6N66=8v+x}F3MV(f{2ZP!IyqdSGK=evS)%#TE2- zJ51)58(DjPMoOZSXfBI4x7lia9jwC*N2GaaX?a}wxeT0kp(u334cA8%yx_C!$8w@a z6%x^(Q~k%Qug)r#d|No^(!lme#P8=qzb1oTy1j3j+4FXxae&pxnr9C+H`~XbBl9k< z@wk&ed|8wlUYrQL!?}E^$b958>V&D}Swv>aUFteY3gR3vo%a zS9%V#AseY3xgXQ?0}C{qjjccS-vU3C@?W1pgErUj@Q+(hzA=#{OH^C3z<4>0mDl~- zay$d0#6Jete((N2c7hgPUujj@QFBfeXIK+}n!9-5aoMVCmb8pKOFc`+m@;3MPSC%# zVtnBv7nnOAp1k+Z|3p%Hrd~$vGQq9&`p>mPw#F9jLq|DJ8;0_YRSIQq#rSuVX!||0 zPzz6fTvg_aR<{)SuYplQ6Z=WCtKsuBQ{|Glmt-De%merD|6DReXZ=iASXlgX%|@!B z=*fiKZ+ueP!M|AmBJ^Wek)!*QkOBD_lvq zUS;C~8gQzQr>3I|zHHQe1x$M}ohJLYJ$n-9mc5irS9-J3nkw%~Cn!Cj>)E}J>!1Ya zHT#L@cBu8&6D}`bzDcj=QwGEoV=$-j<*HfmhZZ$5GV-pl18@g{J`A8RS`dOq*dH!1 zPuE&qn4}eTgpQ!NlvIuA4hn$i&8`8a!_)f~w`jQsB?}noa(Xy|#5PU)O+mrH7ez2X z-f5G`R^}VS!jo~vcs>g#Dpk2v3((Av$xlUySSLyb|?wMVVezDZO~ z)2=>>i0ZkwNoLi6CYJzh65(X*6!-FK-=@)#c`@$^q~r~v$W;Qwywr|MC6sm^iiHjZ z-Qaou;L;j!|ETHSnmoz12h6eQpbK5~0nYAw6bV#cp9%tcxJlK71~#`&w9@lzJaQ>0 zXxZ$|`)S1`$FGrF{qL?RDc!^#nPsFtwe9hj>cdm=DvzFDohc=e^qP!^F5!b6*dQnb z1N32aYIVr_cI_|%DvM_&`1l+}z0}%y=uL)K&GOsN9GAt_(^L-}zj)0E8o5w& z=NKm{dLJ8`?CtMoJj)c;T^Ir4NSKV%z+yg7se2O zoAvkg`#-nu>Kd`A@Y+ok|0{N9{Z0BZ^t@9hBy4Q*fM`NO8&CtK*NRt4i;Z4vpfw(r z>(C-AziiZp#iST?Wf|`ndwG~jDgV~uR1Xd4YG)bsoV>f&C}hpTk)&wwvtg$U0~v3@ z4TsIIHe91A`-h)6GJB5r836iN_7>&{ zRNL>-O3mYGyP6sssiAB*{m^2(RT6M~5{>rlAMP9C3{A@2!i>GggyxfR-AcNhl)Xw+ zbPIKF(%q*n=p3x_YF>h@a4(PDfiqpEFuZsVS?5Ag}M(&xH!N+eoFXF|;i0+~ zCJ>g83uH);t+?El$?oO9fGwP(}+z4rpw(n|Q%kBOkS(hp~)e#*Or0?SD zYT0r*cV@cu@?;mSqkWcr@Y?<0?o`PrnldkdCB++>e(7^D?97&oDzlBksZn#%-EfUK zr{b?UgU^;+$=1)WKOu5fM*2Zdo&}Nt2sS;i*ymW7;)iXEmrbZO9B)hU=j^o-Kt1FN zcXB+U;DYikBVCBOS1z&cgqtCamwfBR<*AORP1+_g_LNs%w=`R84dkihF3-2H&BwKv zuIAU_8;EVA;UC49EMt)F3U6fw@x}l#VoZECv^RrsF;E-wly-t zheljo>VGOZ)fRD*J5NQ}%W?l|6 zS_k8U%i|QHq9>*+7dalbR(j$oEbtW9KYA`tCi>#Pa$;-e=axjQH(xwD0y4y0g1-2T zpwmsQ!x;`Qp1PZdU8Jt@3E|3B7j|*~H&FB5_b;Dv6NVwx3mTU?d>{YGxI#>5@G+e^ z-`!rSvEGO;*Dn6=raqy{6P2tMiK#d8I(mxcy_N{kY|>eIX(8_c?z8cW4#_DGT-wVw-kb=zD8n7muXor~XFFMag1#aP_(_PW?4G>^xsdCXbme)ZvtHmqgx#mMW_ ztYu=gh3_{7Nedq1z~jlfBx^)o`O%kf*C+~OJfR9fy;gCPuY25=C0kTbG6ZEms|Uw2 zcN!O5F530?;TQhp<>SSWX#rVlU8aC;LVP>{VT1ZnfjXh|=@06>Uhdh_&iqJ&G(^^lU?e; zt7#VFwH0dXff3Ci{1;o1m`J~ffLZ7<`<6$Nr_dY0B zW;(#GS^lqg;v%$O{ku&{4t!lfd)m;W!quK>i6fiPgXYxM%g?x47q+>k!`_sXOkzM| zsg%Iw@iaT)gNmP_z7=J~qBv_h59I~kCJmDjt=ySckMWM?byd^EN7Vheh$0PgDQ}iz%))JZ*^FO%vabOh}+f|kFxv6`d zn-Ub%;+$V=Y#*9xHLUPTj@c&6W5u=B*N#}<+t_uYmr3x`$zH+ef2S{~N(UZqgUoLe~s?#E>}PMed8H61B7+e5wK6cwj4fWp^jCJ3n zq2`$dM`XZ5ZL0|@OCkDiOS>p(j%p1A+!2zlWl83OjgwZ(VvwnR&!nVog{LyxN9NNIa&_?oTuudJvj9T^@ac5#kn+Rl9_sG%^5o%KZzYwvD#gL551Aa zC@6j4@$Trq9Xq@+-2{zrhVawq`Q(~pV%@dfCj81S&9~8|w*LJqR({VXdpdb|C+!5M zk@9d5u)jLTE$o$~2thX?ZyVy^5@J6avBrV*`oqG zr=dDt&2^as03nI)H69h=RnxppNb?hymnVEn}zEI8y{)(o$(ia=2`uv(%QE0 z*5=of>^ppPy!@K9IiH@+4ZhIJCD^zd554m5Xxrs`4R?La-Ut<}YB}v{hW5FjTqb_r za3n0X$i?1qhH!Q>Sk@eNd}OrXo|7rtA9jZGGz=&b&unJ{WT(6g`Oi8q-1X z@a#Z#jB*24R7Aje(-Tz3=@ZBsIMPy+6@=BJjRGd3&1!<%m+6Qxs}e?CMnx<2+!hZB z2jy*a`}`ULj?yu`O-=7+04%ppg%-zs^O>zB%CwU(tnQf}$^08ZDfUVf^aRE$%BLQB?Bg>^ZSKPr2d>mw&9gqcl{ky-04vHk+wl zPQR$%McbyL-mik&fBoATCRnoGqq@p22CtpoR4=shP1pOpLlKd@{$rsk_90-cV-{&k zE@6CbN9f=7gf=3`uau8}^g%=W_^o~b$*5R`&}Yz}!m8T900L}nMVWX@sZ?q_XZ?hO zqs;`>9>NEC{TAB=apr&$?YrbyiDMc0^lxe^ zp%H>!5tE)wE7ui79Iv`c+!@tBIjw}0s%=!VOkQxC-O2?{m$4~EGv zhs@tFO)AdghchQj#b(?jQ7=84cC}W+n3s*=vRM4Vj$kLcHU@MBn@s5hOHu%DS@)ny zlwfLB?B|;TzuH#WhmMY4W!25lKgY}&dn;zdMHeJNoEw%j)BfNs3J%q8K3NcJevKkah1I*#l#8&!lF9$r& z8~K3UMak{__L^-9gz5dx&2eUxqJN^Txd5O~YRSZW8}skguBK$Yz1_B69qCQwnr0 zMqdjcO{K9j22(2;1(7)V7#fEm7ysT~j(Ay8tZ4?--xDXfJMwt#uK!G(z63^uaujD- zNqS=*^i0`p!pAx^k*;!tp67q-Q*O5_5!5zt_F$3;mn;3wCxEI#1#VGz;MzoO+SAOK z_kDh-Ti#v+&WExSpPTdPTouQjHyRnhPApV8LjQm2t5Z_CN#cw2Y)0=~k;WAn$n-dw z^iYS!F3?~eQWH1+-ko|9zb^O>Bpm^FM73k>DkSnrPeapDUOp>BnCHa;u3o9_whRh- zR5CQ?Ju%pvoRx0H()%4^#&WMG;M?V4S{Q{mZ6-n7EQ@r;m()bJyH)02V z`-qjIdw@@@i{rgqGyByy(l30xuJrW(F*8%AQz_HpU}glp3XU&%=kIXUdt zSwEbfFEy#{=62?NPfu~E(Q4?{?KMdzj|>nIQn1> z7dJsx;5^nViaZ+tH#q64H=a*kDp<@P-{Fdg=fP(;9c)I1EJdzB%y7^NW`@E9{&qU* zVz1AqLWK)G4ccxV2PC1317dUP|CoM>^ttF)hbxwTA6F4Jc_2Pa%}7zO#YA~y0=*@d zKn-Q4S3ILrY_im0$GI@7eN9#}FEFgKqdM)ms~q-llp-e`bW4pg)j=q>PN@K!-LiNt zl#8p@%ZUz~@Psnd<%;@>MN!~g?g%EN-zQ!yv~>&bckQ?B5jS(rx@Aapd`Cirm%!{# zzccu#W_&iC#jU}v);12;degRoym!?OjZChTzv-}?5$5s-+Bgq2t%Oe{~DvNSUYb$?qwGl`^5W?vVADUsAE^A-FR zzW8xRQzUhQfcUp)brWf?O1_zxNcDV5w9qkfDKJ|KxYJ^~)vVmdq)F>*Ybdfih5p8~ zkXnFtu5=y8FVp9V%DDcdAWWNJ_SW32yz>X+u@*H7H+)KY0rQJ36(b?iuC3Fpy) z)ZR!)^w%Q;lsjG9eY=6=JI%aFif>sj9a^ncLwTa7f<0JDQ?G1Mnp5o@cnOsE)*l zy6QC!Mn3jszo?jG3&P52irN*!tg1u z&G3dC74`QXDXtWK7VhEr{_KA@n~+$Rl%Cqj8?EW2?`>*kg!HekU3**rT<#RC+WynE zJU?pF-_7! z2o1eSv_wxkw+-z~!ZLiUm!|uqowT*A-ahvbxUPH?R{9E0N1oGikBqK1XH(c`NQyX$ zUm0x265K%5%e1HO3KnL>ZC>w)42T@xQcfVDzFI*;Z?fJ_&5~l8Sf7S@u#=SaS3rQA zAn-0uVqw-Up=gVNOXBHgE-n$?l^7unMF%C0`^&fWa&?3K-{Q9x#~CZ6WVv&vj(_yE ziX2O{OIc-}puznhWK08Rc~fjUWA{H>ut>=CFe+XS4JQ+SCi@tX7>6dV``2)d3B&17 z4(t2D&?L+zquGUJc|-HtfEydHCt-s0ytQm3JW>&eU{>NaG);eX@=4sfesOrNcOjkh z@UBT=Y1$xb(MClD<%hp(>>&r)bf#R=Iace<#;VX~7*P&6F*3w;x{H>AlAU6&9?cYK z;O~$%gl6vl=+W<3RgrGvc4ZrB*xH*L<0a6u5eW5c0TNL4ZZr`ReNh7V8TpUX-dT(sP2 z^7OZll!yM#$cW%CCdj~m_I@U&*W3skPnZt9k;!;g@Ip@p#_yB^DaV70zq{v-9q*Kn zj_(kcq|9%JwGx{QTn#~MJH5Ydssz~;KuE=2|1x@9zzM&ihpH)0&86(s2q~-N`VDA| zEN#aF)3N!N8h^bEG}_zaCC$^pOk?@SX7i2P+j_Z*M!yfS8YzNl7Jguds3{U{{&u>95hUoJ*NUUUFQ$1}6%) zHo@BYPizYAospkMp<;7aFzNL0XDRZ)8Og#TCbnR+k?68@*(41}zHT$#X%MDz{58JH zlQ6g()JPr11gEFTdZD9@Uij}gQrk7$Uv!-G>4t4=NH~S2rh5C!-H<04iiIQdj*=vR z^56b^B>QL>J9|%qp!VP^wx^|o&;g;|=G2k6H9o$i=TpCm8j>^FqWoPuvNJ%L;8D!+j`^CPRSUv&OYfLKp-|clv7%DI z%6_{b84$oA#6!ou&i;;K~$+ABeobg#jUYs~RNQf}_oe_PGgIXOTc{Iw4{2V$%p0S)b~ zHHL=JShr`zs^C93o!e{U*l~oXR=P!^d*3~J{Lr8_f5PXQM?ydm+wR)AH9`5SzZP#yZxiKr+Ud)Tk(!zP^Z5&Bb9vRYx4_VBDqe5gzh_cG{eTAuYFG74_0^G%$DSu zKmP6U+*MSNvc4Dhi^c~tM~Z<#p;;E56Al)}u@U@d0AD(Gax8_3aG9s!n+pl)Z?{k^ zP&8XwUr8tjVAUQS7t8;||C-x+dOq2hFuiy!6!OyEKMxl-4}sLIo+4G2q|`%U7987; z>kTYe*n0m_m2Cg$He;ve>*D6~O4*veX7+te7xo`GVEN|_zX{>u{tTp)7xmrCy1^|t zNB8syX>G<0so!w!U`0sge>I8`q}uspD}iC*3D5c~(N}lBrtIk>W4q(Zf6mdo`#b91zze<=DcsNH)37;yZ*SMH z%#)-CLN4w#M$-FLz$R6XZu?sGeLMu*)gdJhZPkxVi-Po$Zr0onLN!LJPSraM|%Iu)x%LU#JMIrLrWR1du4Fa91- zE+1k#1EiK_SA-y}eab}iEZxx-hGGBy4RTV+EjY+qxuj~&B!Z=DEA0_zF->4f5<2GV!(YI4*#ofBFvADgu+yx0Wu}S+3 z9i$FySBfMgJZIn(g;}^w^5lOL$$!DSMjdaSIX+KHN_tdyApP^opB(-FE-6f&92wvK zTO_+lfR(!a*$L15*S~i_*|hy{HxhGbauye>4mCuwDrz|A9HhQ-`=OQ=6FvPkL}O{G zpKjwEj9IhMQk*zpQ_kbEYFCz#XE*gQRM0*%HX-2_DD!|uhjJ8jdH0L8i<=;X>Az8} zfAOL>&rTC6|Gw)NOJ)NQ1%aXEH`ksFfR-&Hysrc@A&5XEhY{|AQntRowyy3nt>u^F zirLFfFmmfNFgRF^NZfTUEE6+oVI1_r+}xZ+4NHOq%u!#s|Gr$10F;(ZS+WOEKK$6C z(f$)n+QR%g#E>`jyjBq8$x#I$6owD?C{hG@E9p>uV+*E2|~Yg!{(Wmd;+`ZefgLw})t%o};4=3oVrD3}}c?nKh?BYJuZGELMbWF)_l_;5O#DZ7= zAs@G*r>YfeAlr617@;VJgoLc6ufWXk%bv>KvF^q zY-eHGJFl_4r7^}aSMohEw4bqa5kN(EuYNR;tn$X^^{KCsPyv44{%UmPR zG*T5blXX8YuPqQJQU<%jj~S zfKOEdaW}`i$y15fsQLbF&oTz~TW?aFcq`OonL;jUx=ZG6jOvMCNNMeQ+` zz<`0_@g?9MF==XQk~(#|?>WFIAke{B1JtyR5r^(fE@hXmgd^`j#_AT##UBLbsQc6T zT8%L#YRZ4Rd=EPls&sU|;=Oy-d_N)>fUp~ksCt4A2NOsOlFr?q&`#nnbavgp{1-9E z8H9y$?f$S^jcw&Ll5`h9a-{GQosLb*t2 ztqavk-6$1M*;r~s8-xM_?o;uz;JqWD?Da660A@tu*=$=|hlE5x^yL8|P{=5a zwTI}YYTIS)g2y_HJGg4`S0@F%1NnzQh|=a|8JMUj_C~=OFIB5=HxZ|)Do~S;1rv&C zMB@_l{pvrbI8beWYxx?4f{Pa}%&IM*y4MOo(?^A|lPVa)cM9<<0!=CA=>(BANf4An zfg~LV$kT^j)_SJ;=*w}>l3(}?Nl`vWZ~6->6HhG=^6*>@L733pAWZPdVH<=daTD;c z7o_#YMwYL`-VCLD0xW9B&yDv~RE*de7}V@jzg&hfwBLp+$#a!NP{L+9e_jecJJ&lw zJFC?Mcqf%jV}sy`R>;$8(3Lg3O(%yRgFVEdGFn_c4xk`eJH*9^*kVxbgiGsFYU8I0w zdg-zuBTeV{ivV;MauH;UHRHDcev%NK#-k5)c~7a#Gd&u@f9; zNB=+uaZNxvAuW9Y7-N-r>YxMEp5u!!tP}k<7B<$SVFQ&rky(NKczWT;d6=oudu0t8 z*W;*-UG*Rs)iqSbbH<8VsyO-fMuWR$>GBBc5>aF0JT@MUcz7%cGpo#iQdSLOx`oJN zgHaq5zZ_Hi_S4$-ApX*kGqF#|^K{0_3R{m!f2FS(-sGzOl?dnWAZ=JHvOYzQ2uvf& zFyJ#|`f#@2SHwn}>M%bUvw9oBUB2oF|HZogDZ7aA-9DY5^udJ0wSsgJL2y?)4{Aw> zel((K7vsY(1rqbx>q^DoYBdPF^B{CMk0jVScu{hSfgGYX_+05$PNwB`2LOZnc{q3X z(&Ai(D;qe8Bmxmkc*S_eB@tm8!@_S*^DY0F48pir838o15x`X^2y{ln?ze6XgU&}- z$I9$5c7U{pZhevz3BYwH4K3y4rTu|e{XQ~p=i9#9{jVo3Tp8}PYS zFo?Pqq=c~`s|Hdm+I=hFFUAY+V4*A+B$V>%SG=375~q@1)Z)M^MIazJSdYwS#B6W* zu=96MI+y#PnfL5O;~WT(RKo^u&)L|==1Gw;YW9(3VBZrrRHtScXk*|k$8zuvxOBCS zfqAte8+%}Zy)8=@f=tHDg3yvAUq1#qP1AuvLCdDm;7!9UDAM=n0=~4? z)Cm?Qf?&`U1=1{ykiE6%=nz;;kp`*{vaKT_`u znr?9uJT4>^L3V=z2R;s&Q-q9w3MP-Q^MJqj&hCq6{HB&+;e}Pwz_5r(^TnRq3z}<) z;IL#qgMR<(HMZRh79L|yPLI=HHR4JFC86rZMqa#P>U~XiM@S^4V!09$mRMaAVhX>( z$ckZ2ZSiEq0k&~$2l#3Yf^yu{%KiEdL~D+{VBn~{=Y8VC;iUc;abKRfJwzfgJXHjk zqch5~!b{pIYu`?*DEr=)9o#|oweQQTxWq(><@qsI1~IQmmF}zdw-|Qtd_i6fg%FeC zO>uF7uHz5NipyRh0>1oR$34!tuDrjx*<6APX2^_GCncLknOKuv6cXxEy~xVS8Ejx+ z;6jIedxO++sh*c0aqee#Nl^sk;kp5wk%HGLM!OeenB`k(yf-tnR&o~fccLQ?oF$Ze z7O_iB&F%MTOx`4ogQLC+ zuJ`&I=_bZf6w(YI5s^_(EMtfUn~R2kxJ zqtuJ&wX$_nFzLue3$M+}Q>2{KaQcAly0&jRkNm**)3AH!L;M(w>7Y+m4#M*f*+FJi zUzbvWpFXl3gr^9V#@)qjyf+^8@6HZagX|2|mWGK~!@I5p7mUFoobAGgRaHqKE>EG8 zp9KujV=$V7l8w3mX=;S3b?ZIU+l*(2s5WI6C98(t7M>2{jR7psSv{GkD zBSgA8*47$9Ic>u<(+TF8YCxUSjO^IciVb0R5%r}8_q5py-mvV|z?xIKlW1GEuFy2$ zAoOY1K80nf`;C1qv3|D9ROSwJC*E^I)VzL)Ui`c8IhKBlnW1{jrY~4$7q|?RcI0%v zSl1fsE>Qs;u@aQ;H#)qxxHj?N*SA-1o%-q6ht6az>4x~fR4wb0N$^+!l4}QJ+xS}f zGRSE6Eo6sltWO7{1BmJ%?yg&@N|(~OpZdaDvwT|Qi??w;VH+X~M7%8IgFBS6biM6Y z=f^tGb+*6^`b?kT$8f(7LgIHR@g2jD7lPFtB!yQ-IVmbP7F;(ff3UjK4r(9vT6yng zGF7vF!u=3m#r%zmt}k%d>xt|}U z1nn+}+)Z95nlE<15DZFy*C8x)9i2G#GB-Y&oVUvg!}2tCzYNX2)Ioo)d2V6QuVV#$ zVavjB5`xlu9Ej3ux_I8ZdpE>_V|nFjZS`>RB}koQY{@5Y5%U4Y#I5oO6H~Jy#>uYN ztSGLu02y8Ax{_O}BIVlh+OrsAzKBc%jUBH<{bd+Xdmcd_-gKoK7 zUOKRw_WbOp1h5Q7^g#(#QERU;cM3nHYJ~Am5#VeyL`k*AxbnY4*J2k1cAlc5G7|ng zyK59i?&iAIL25d*7LtG;Chx7yIVV`uyvcjGhSI9zDVAxUN436{q;FmQ$<{6fuk&!g-g?EY{&2ZBD$TmCs2%T$G zz(+H;cQ?gEIpzta)y^v)$PeT*A=||fj*Npx$Jt}7KU!HZ2pziXD`CKaU-A7GhMf7h z5L84f9Jh>tKS@1(hNf@|8)Ig!j^&js;~+Yu~{IJuI zm*plUd%a+FN$5}~gso4WX zogcFyD$yd(RmhLQ3i^bqvB}9bExTL&n-T3(NfJ8gv8f>|uH2~U)bxU()BC^p>nY2k zZJ%E(8qIvN{;tKrxPI-2$VS_QRtY8n^fGDCu?+pzxfVUQBdwYx#NH7doUZfd+sr=EqGt{ zG*`^0Nr|yj&1(4vAxrtYe5w)D^uM8*WLX#Qn1eO1?;EQFea;BwAx-(HmeLo?& zonI+Na*a+1z(dR6YM>Grw}VUpOp^G%+;S~8NF6zuf-}GlLY7$rX%V8PudC+W3pHGL zHLJMyX&oG%?x}JOgNO*BPUj6~d00ZbeAw#NsPmkn~7 zfFF`mbjH-w)R67ts2vHUudURBVcsv)+6*+9EzS3v^Q%)i4#x%8wM8x$U8UQ#yI(jp zNU+(uWY#hVaGAQ2LFeMHxnHmJXcuRe?P2z3IJh&++;eRlQavGai}GCi8C`;wLYnem z!9c(*!4ikLX{b{iAXW=9M>}Qyfbw}B)P5bWKQ3iPLUE2M0BlNSdW}(R<0^$#NqVb` zQ&HL3T(Tfm{o^x*>?{Zp6NlDtl@SgjNom3pkooH45Qjn^eHD^>>gwYKkQ)oZG}WA_ zxVR%|dI~D4+sElaeTl}gLKcg-IiPqDsv6{!Q=cm<9ia^DD;SOs7lbfjZj2NcJnF}h z#1!&W@U(Ih0b zmn&$@-DHmCgEu$Sbgx1K`(O;1gCc*MZSfwuYTNZA$<8x^hh?|_KgrcZhJURxx2C(n zy@Uit;J1JKZ&h&9Ua&;b0p(Z=(7miJf4qx{herYNiU3E5AgJGb<&>4%N3_7_LWxqy zAsd`Nq+m`~I!aI}=z>xoU=~DN^~U;g{=axh00->?aOuR z5S(j~x2WgFhY+9aJrwZvhNsk{M;|03f&&Aq?ugScA$oyzb#*A;B3N6407v@6gAWB1 z3&D2)U=o!t0DZ?WL{brr!;3D#$SK+aG}L{0_b(&5>#$ML*H@r0;Am`9rgNQ3(Fpy4 ztF)QuR)hc85RrVSkmNvM{nHJpd;}MpVM8Vv5xvHo`xkk66$?QbI437ZcM0B?1-d!% zPmG{xuT|_4_&pc}5Zc#gqBp7_FfbznnMWAJLi~s8DSE?taN3TZWHfbEmNfJkzJTe; zGM+tK!I%wrbH~8tuzbYMLI*(4X~d<96(r4({8tdJ9_8->1y?xU%(S=SX}l}!Ob(*! ze48F}%33}hQLUVRd z7H;NEFnl>qWde)V?UOAa^HqRgYl`LZ;vjRh2a}$8?P@=PbcO@Xo z8hxv`y`lURj7H(+a>B8qPM}PR7BPQZ~&9^RcOO7M;P4!r}4!SB&%rzWtEe)k90!F%ga6ZJs%pHeb12yMu z?e*2AQfun~MHPYQX7Z=oM0E|H-3M|f!b>Lf85l@*ofG!beXfsgtNGT_% zp(Cz*WAtu?6TdF5OuI-5WE?pxUM`ZY z?OX+&ect`XX$LZ_yT}zMx=YX;8km9QqUKwezCvgI%u?>KyZHSYIbYXc($2^wI{p5K zik3_~<2p2j^bE1Q?2$2fjub@iVa6O~0TDK~daq=JG$H4p4Ko*<&_DdO9m@}I%AB_eMMyak#t9P ztfrkEG0A}K5vO*Q--*0vkT$mHeR?wNN0Ub}-fhROy0%dMYU7yzPNZGdw%3(=ykqB9 zkZ1eJr~pt72Od=CV^9mjKW!uL-;;I5StHsOAgLYPVOFLFrD&)2!wWPY;ur!0QG+Gc z{W)_)d}CgBXMtsXRWjJ}G_>@z9J$YbUP_$78~S%(3yiVp0Pd<=Zfs00WG@z+*H<8u zS!lgao=sSv&(rM@1(E&%x{XEgS1Z=qMZA|Y%Eo4GBgx`VLGLH&NJdN(#PN2+(4Z%e zzTG?-`s5FO$>eGEk$Jl3wC9>cOV+=($X#-nyc%xXQWA9CSeiNTUcGoho*p0N@iz7h z^m`LiYgRlZCV#Qy z!{^VUmIY;Z2Ki5`0Z^S&*nkYyETPwkV8A3gY=hs=|8*3&BF@%%g zX1R$(t^xEJR9sw)B1QppJ`Dl9(@ccl>gR)_OZ*P%%qFcLkMTRG5i=)zQLS^lZ`Ngu z(KAQZmsR9lZ5sf|p>_C4pXIFlOsr!+b3~8rXD5{hTiw|*t62MftanKRv@1~6HWOq7 zc=o)OU5+)A9~~BZJ?nk?kzyQv6ekc{w%nRgx6gr12afUwDZo+T)W0U~ZB$(X&6zh} z`2VbsR;ZW54PeW~)7l&DU#O&WRYjt+<=1y)>iSL!np$9~!xfC=Z%|6j1EG#!!hh;U zql9s1STNnJqJo(CH=fB!*gAgqP}c>E(3kYjwbbu-i2JT+NC8b)o+U=*ZTb@4P6-;R4m~P442~$ zTg4ZS@ms84WwOmiQhnV(7fVp2Fr53K%rlhXx|U+^I%l2jQdF9YdvA7eJ1hq*5}k!^$Po_E3}#@;N7@2b z!aaDJfT|B`e$r^L=5=XdlzL%IEcaz3&IODslV`#B`OvZMkr6}Avne^EPDaHPHp8OH zD_}(#@~ItZNhJK#o(9-B`00U@VOjIKjZx0!dCZ% zD>-?2w0+Q5tI~)A?D^%ZWLW-T<-(x{HKc|HR5XXuDN=<22`w!(NIHc!Hp*0GJ})GP zz^w+PH*WR(l(2JdoUN0bm{(L#2s_Hz?Z1%r&6=xsoXz%o)S&jUUja}5Oyq-Gkv8oH zAp4RX*o<|wCY^jBJJCf)QqCYFcrJGJccDn2$V&J~=YZQHmFN&YR_P=a&`hx1ud^$Bj1g*WpqE6`K;pChj$zlBAEnE!?^80 z>AcbplIAhK<|E6VFE@9$+X>UcVU&EhGZ;4L9$Wbs(U%gFv^wPz*j$~t`Ylodolk7g zpNYH*HxkaB?mLbyUaGnIKvxyTd=+6XDKZ?I_%aY$exxLsv%OK5Q zUF8=$qwbXIE>COnU#p}rwp$XNt1CpYUiFI(W z3&B3Nwh9_2afrSpPCcxDHuA8vkseRfZ6egWJTU`vTzY9Y+aqL(lPO$>ePW|(I-REP zra3Ny(N8t#8Mu~*A31ZJRycs%oF(c*E+ETB_`Q_U#x`jqRmHeESAc-=>as>PM2U-VNpHB7 zQ9r;E&mS5XcwILM$E_mDL%*Vnm4ibr0E2<0&%S9)iFB3WkLL2x;OWpcM438hrkaXn zlLLvy1*sO~ZRQHXnLA(OcC1BjEYT@}g{9=UBhi;9%HvjT%}I=L zVz2b3`XQmQwfW&Ipt9?IY`3MMiF_j>QMdj1S2EDQHzofsormu3ZaBbf{lD+5nYHHA ze4DlAESAq%dbrPh@BNGGcU{+hLgZw`kr8nbpFMkqEGZ$P@a!4P&a-E*Yw$0?-{e2& zXoCMdcTf-)dR8`!zx(VN@iR#gK_%C;gGCpuNtNYiCvhGPT31H?mB9xz)E*(k*=x_P zi<>6R7fYwiy&&e9D)SmvHAnKQi!d(A@9YNN%@!Vz?0-1&e&S^7=4pSK$8dap?|nnY zfza32CwVr|*N5p zr^|(f1&`~abWS_Jflbyybc_OODTJv~o1>rtPE zGcz-pFvI#XWi$B?D|2fM);dGLGt0lLAq&7p60@{Cm@HB4<6$iB>=bEm5ll%*F&R$F zI&v2kiz1Ycm^*#CySbrmdHFA!kH7xb)=*M{%v2cUiJiIfhKL9e7#J8-84ux}73Ak{ zEhqf;`Tg}d47>G0;b0ms;c==>Yf*Xmwta(Ut!2^Ap9go4zSZ^hD$iScKjOLciG>B| zZ(kS%G6n_)kE?@_U<&lU$A|km%UL0Q(Jvp85fBg#8Qm^+#wy872ES)5VE(%a3IE^P zb0(QyVh?TyGt3+u98641SXfC<&~1Tw1Wrs0j7wSaU$0-n!Fjm5Umec7>_LjIkCzK% za5-&%Bqk<)czyeDy$ti>#ofhjmDBzdqZADRWn6>RJo_Ftf2PmrS{IFCJ}fM(>pf9a!Kj41_1+J6rJ8k-I4nWFMb`Z%$Sl9JcN4?c-;o!FKX+am5Iz{#1)eN)mr!dg1$ZWc&OU8vpP0H~qjK zxuOfAk%@)RwE6ga{yZ2@qj=IA8X8*O_UL}J&@eVOrlFxRkjT*Fez`ZC&I8ix6e$do zftH4bB&oc-T)<|jIXW5*CAh=zgOrq%qM~BCRzqxjJb5a%vhpMji!l<;htA)>KPoHN zJ{a6l-Arn_PX71EK{myJqSygp9Lcrq;3X8$xebxI0d9wq@8KPt)Xl2uk8&vm49paT1em{ty?dekZ&=Cl}Z3!a~|$brk;{ z{D0c9;|tb=7%^nqi16?-tp@bBZ-s+W^($^bDVn_tif!o$$K#NpH7~&BbHAuG8YncN zlujYXs8M9lZj5hDOVC@7KNzI}iH5E{Vf5(;r6!p!}mAVYik=DhE`V6k-WAmzrhY}52xe3d2_n*2gcsh z)3bTONnK4%&ZnO}mSl5tQ~rDz_yW`Gis!g^-cZFerN+)FXb9{94|Fo^yRJ<;r*8avvlND$!}x>%G!IrKBW)a&9^*uxI7A*Sf+sB*6XJbNnlL z)Cf8<3C9z%0+XYo-&xJZ!EOx>4jST701%eR<V-DKd1cWySRU`Q_ z>9p6nLPA39U@dG{h0Ljh6s}nSRv--)B^?9bdU67a-eVtC=E|2>{>;XM*yd5f|MvCJ z57#9SG$63%m>{I~_P9ZV1K=+yF;T%pPEqmv>?~Uso(-wXhEKtV-~Hm--9&r4kohC1 z&N2l)Co6x_A9ZO7qc}WoY#Y4f08TMV{8&23$jF$VsjjQ5+ZT}h{d;fZPtaKSX-Sr; z6EM)wK0bud4LdnH7GB=Dxw(PX3_XE%?pU_VtVP&84LgcU7C(^$$pdl>5DTa=P!>KYVES zYOI<)01&~b`E<7+GxoUsZ)DeBa@{)S)zq*tGM1H=THRkALdr`h$;qRyVIb^x^~m8$ zngpVjR#pkn9~l4E^_8^I(i>3!*^4pZVIS_VllD$d=WW{ZrV>82j8RJ!hcq-b-GdI@ zn+a+!q)1d$R3YJxkdP3f8TiK^F7B9Zsou^2e2qehg_Tua?Vt{5LWlEp7%%H9p-?FI zH6>k3Vj^bcc={YSzJTG)QPc5>t-AVbd*JJm;^MUQ^waMET}DSoN0uFJ4W({Oyn5wt zx6vB|u6^#>3@*f^RgV^x$zp_B9b>naXA>Ep(z_h z{H-sJ>Pe9(=`Sw*=mN`jblf{Ipy(qkF222;>62)_$T%4&@#Ra_fzbEQl(ViHtK!}>>!`$dc*8(aXy|WWti7m zT)YP`Bj^}pF%n`CxT1$!qU@we66CyuHeI0@BqSt;J(MysG86gIad$JL%a-6VeSLj5 zMnH=Mck`Z!$!2FXi=Ur=;|5F)(8fJ1T~FWRBzQkg`;Fec$r2`=W>W)$bAYwi%j?#* zNkFT$S5=jhvju|_0QqqS`UVDYDEK#PU9XFd&Y5E*M4TPZZ%)@iky-x&;Mw{12$)z1 zo|1xt;oK%falu#KN^~wSXWrGX*MWAl8cdYCRR_?sz{}Ap6ImD-7*WlCg^@ULWv9=r zmL~M6G(;=hNkI zFJH#Q2?+}u@#G*OB4$rD9WS@}fXM78NB@`QDg6?ETU96q-P{9Yr%17&w~#>GBeYm1 zP-r!pM0jKBQXfQ0MMZ^SCp~(|+S*#KJ6u6=Vd0Ns=KLQ&Rsb#}@%ey_B$_F9H~&+u z!tVfE9y4=Fe=fw$RX#*{pG&+L;?Ve9A2LD#5HuvN=k+D zJT=p}e#EW!M?6{~OLaE7_MTQ&r3;K3adB})={08$&}Nt*;KeN-j$L6sS?nwzSmSc6 zvo|t6K7Mj?5+DC=wq+S0?TidU92}f??*f|Y|5V(AvIagc_`rQIl*)lo8adZhkd;Mp zN$~35^Wu&wFeuXTwbQ8q!9AClVh-f?Wk{P zn4O)iQ2XiU=NBH1BpSn!4>ERb4OD&_^bqUCMvBQ>J&w(totY9ZB#@+dx(!Iug}w*ph1tLu$GI_bY>;YO>6`S)fN`6J%{ zQ?y@xO5>D3de9T<#RYQvy(k-Gx~7_SVi0qQsegR@t}84XwNl|;C(;YXFBI{d0zD+# z4d4p69^~>uY8xxFTVlGywAM#o6&3b!off?cwT^Z1Fp=!JIb2Z|y5!_^so%jGdRT6m zj@(W4fkBr8Lw)%)s89RwetPe5kSPD?IVK5+plPR2u!_ov2fsyox3|8ps;He;RCH^@ z83!F|T+_-ORQ^FXb^plO*!U)9Oj4%)+ z+X+;A43#Z(XclxR>6ee>#Lf>bayH~FURC;yw7We0D zraVO{e^hA_r!xp;{rFjZ@w+ws(y5%M<+J*6+;A3|7!EdeKEIciT6954!SUMOBRyS? zL*KsK>M`pp|5YM1Ese9#M^ai2W@BT_b1Wt@pHJkmdwcy31+u&&!=x@#Q$u)RVTenN z--xl1j8&~ZCy~JW5r5aOfN#OWr%v`bR8ZQ$M(Q5l)CJI~wsxu-LY1+^Prw%ks(Adq-bvY#Hi);=PBePr<3< z7S-fYJPaWW&&{a>ck~T-EzQk^q80z7z9%mEJ*%LttgdnQ3Cs~m{&9H;m+f5xZR+RB znwtA?>Rle(^)^ZVIg0XM_=S2~lR8dr#yt6t$NW7Av}IJ^c{hOJCYUO`PeOLFZMzPI zYD=2Uac@E#R*;jE6Av#{CY{-108Epf^5HItO3G}4j_ZlOuz#W@mJm?l`&zEYCITc1C>{;j==|DkC!_AJccv54}+EMc3YT$G({nu*cY8v@kCv|7XwvdEg3{8Y8Ba+Vz`q9~N8#C`4 zWW0VMUn<0er((SGydV_uwW;xrR%Ms|>19b$yl#A~g_)HV-!B(9!bl>vVFBWsjZ-o< zZ8`PJo-uz;O|bFdQQLFZ_6LXafd19&hn64Idd_I;p6!YD1-nMiS+5>f%UCjb>Bm~@ z2)Jy)5_V6TjWPSXSTARr9v;VB`Ctp8`8eEDdBMO0$XO4wKo!T5a~2 zDSV!kf9$JVWFgvXXFc)WJHI>-ya0{`3-p0v6+KY|pyYBDBTj znEy1VJDu-AyzPD-ej+Y+zu=_nK7mLi0)7QW zsj!~)bRGw&_ovFUS)oizgSQhgIaF#I>SO_xnMNuq@o<3wK2^q|Qs?u=DVFT_C6jnZ zOAX1ck4Qqj1M?i#u70((k#f}3^t}SVT*Ngs@iO9aa+(ZhKar8W&H5Of@p#dDd>=1c zKnjXSpr}aYthtj@IqJdU?cS!Y73sqZzjm^0q=@j;hJ|WKPk{`+m5V&UvU3SxS1tGi z_~~{l{Fa^6Og6gG45cY4d#OG;e{jMa4$it9R^P~T;}83K@gyS|LksPwqKHtAu@-a0 zWuIq09jJG&`rnJ3(XJXM71`+hvh7QnR8|(Sn)`Z8gz58`&=}Os@ubdd+H1Sq`kby+ z?fsW=R_J%9jU9vzvG7N;i8==XO)V9bN~`@S*9x$f2_@6p+nWdT3Fv~kEdE{k<+db&Sin6k#%*+q!KjbK%_!Zr~aJ_r4C ztg#wAZwX$PPe+P+DV-7xUi)GPD_<}%RSu7u7~A!WP_Q|_{n68DbCy(8WFdY}F2KY= z$I?PKMZs|m?}tq&Ft<3NDJ9iZkwwCA$$a}g)i_p5G2drxXCoZ#6E>Um%(t=m+Q-6@ z5~&PH(@#PYrk!7B>WMhYs7B-mRLdBc=oYKaRc8%I_%1`Tg`?%bRmavu++s%bW)V-Wbog@wYof*&h;2?VH)o9!wBcR3`^2&b(Q(O zJrU1c1hd@}v483+x=ku-l#yFt^UHJ>kv%m6O`~Zwcwu|w>UdF5=j916Sl6?QtFiHM zYb!Iii<69n2cec9YV$MQ$Wrg?exW16zI^ExjC#~{xN_?2eA+%c^GA5rvW5wBB#t{z zqz4HRVIRm0j4OZ*x4$}^B|%3xrJ%gMlD5F(vB1;xBmSh*GIKkx;yG^oLAhJz`@!1U zu!3^wPij>qVc%=|Auj2ohBxJR-u>x1C^Gqc?x6d`XWRv7bb~I|-cE)b5$@Jp>j!NH zH9MBMt|V3bAo@#pcm50hr;+_6vriw4_2&$Zpm`gSuJT&-2J<8KE}7Zq=tI`__Rbxu z6^UD014+Yi4I+xXJ2~(TU9V&n91#?iXbWu-xaw`DXHJRC%*_COnomxp-I7Lq%}s$B zQh4vjEA!IRTVDRpBOi}zGkZ$<>qaFGZ|4Okwc=uxDS$CrT{F@tR?fZd@8aTKq2S`8 zPnFl^Q|@kE0s?UKq_^;Sg~AgdkE@!ksfe{qtr8?s_iB7{LKwcNqy#j+0QvR67lO_z zuLR$p?6WDHm%LY=v22k`UH^ zhll_V?OiAu;G<2dW^dm8=vW1uZxoI|LvwR=ePQ&FaZeO}kD>FANhaw^KnQIQ>*`w> zXo7fmb56{Oa}Y6PO&wDC((2$Kfd-p8G&Qxl;xKe0sR%N4d}zN*G!P|nn1w$>e3*;a z89uJ)jGoS44~@Uoo4LZSzd(@@S$gPk4CeLOIW1lP<;BJJpys!_#f}n}_QKOSZth(( z*;`K?JzF)9^!@bF?%Mcl#zJxuu6X4Pe1}D~wa(yU)<+qJkzL4A#MmOvDq>dBY=kVv z3x<&>R1BAP4pLPGNh9JD#{G=CM;~;jr;PIpk~P(W0>p>|vR`%L;-oG>&x=12kFM^l z5u~T4YO84Yq0!PY^nI4KGFzR3D9z6DfYn&1@VLHGR#Y4r8A#BkkzS2DAbN{~kyBip zl5rJ3V3opcP@9s{h!X67OtdwuySH(mqM{Oe&RbHD+(qSpwX?T75#JaZdS;@I1D~~J zY;Ejr9@va2%^DIT4zSqcA9E+lxG#o==#+RE_w!1h#E%3fR>~AUPmQF)Qdq?{Y zv3LHS=D)oFr;^0vKZ(?1%_#d4;?hCwsfD*|kcO}zNK1~6LJX^B=@aV2TWV|B#Z^_0 zDn2^w3}rO^O7fpLKlmBHL5>;5W_NaxVZ5af!usLE?n8wiqB2 z6XNi8oQ*&L*hr(LrL|<&1g)bLB1ynmTI$o1NOi3xqPQj5Tw6PMp;Vzpj~T`?q3GaH zS)}?rU=(D)%fNsz(Y1@}0{se3@}JA!Pvi2~@2)%Yy=C09`e00+WP@c1R0wg4L*b44Kf4SIoOLF;krS8`v%9#e2$ET z3^diMU)4uMY-mr@U~}EvZ>y_obMyECql|+opkZy6B~U=a&9SB&93+m5i@UkWKQiDZ z!(afy?v$*@eBbuNct&eksgs@4ljZ8RtCYtDD=3eNF)@-lN9W_?ssJMZ-p34)#ab#k zIfE7*L6r21vHRY+Nph%j<^sAY4}!uTxWw&}dCdQ^qf> zd47mV(Pk{$taY|5nw%fFIic1f4MgJ=-GY|%vj*^x$)-nCZe{!>5U%!Hu_7V zsL8LtKXf6@((`(7Y*M>o4^OsyiRP^MJ(CWn!}& zNR;i8$$jkw-lg+C0zov;uD&_A&JE7W3|nI+s(^6I>HfTN>bkGuGdnl;39U0bj}8js zHdm*oPox3W)zxiUHSFGy`oVBkUI#n*KVU>S z{gse_EL51+;C8sj6e#pu$n>fzkmS82Xj3m zQLYAyUvSq)pQw4I!y}l*_Gb#?3W0x<1fH6|fWNAsc@lnkwf-6>oCjP$*dt zNm#Adl#Z8LZ`%BX+Chwf%5A$j{&Hcq{pV~ZawML&?J^^;|AK<5yw2Y4p`wzS?M5`T zhX$lN2H~47z4toJ)VT~V?N{p8F5H1>$lJZVmUf=ZJu8QKWfkeb$MwI!3r`yeweJ)2L!N+FmW zAJ@}PmB|?Iv2%Lc3^IJvDDNgjZoE_=$KVycN67ho!9l*sh>!#_KJK|O%1>pY8W4T3hlCX2et%V3RCafKH;En+@JG+H z!Cu=Yv(*QmOJbPJNf3w2oj0yXsMU$jP)*2GO#omxdm?Qx>1?xcv5g94ovc1I0lbF+ z4-235^z(jcc-S|sfBU>uy~?j=og{$Wvu$=_VEbTqoid*8 zpBe>4dB5NSD#fx>FN=+eZ8mY zBSY^-hplk9PXzIUCiGk|3;YH3Cyc3?8QYD~R)7nTC}EDjMgQ^!`Fs!~+Ln4mzW5vC zhxS601F@!s}heBs-K53UKKXg5xrbM5r(3K=Eh_lT{9 zc`<+?px322p3i}zye{rj@Ms`sTi+09q+;CoL7qowXUzW{ubheo={v-qrB<86S9_bU z&lnyDLQI5($bMSoZFkZzGavo|eTxo1IET)~>{{_?#TSgf0D5zAH})bgi0a44-PDSy ze|EFbv97eTJbWWGU9Qs^XKqpa`pm(Di*wA9f2mMX(O9R+otf-#H)3D4P%)F=`x_k4 z12s}ooiHpT&jN&=yXnTqWPqM#Y(7_2Tp2rLJl#@O;~sa*#x@Cd3-AKAPvi=evdPNw z^4-Q&LxT(meuX6-4?C-TOiV-pa_Z_d{F9^sH@vNhiR|jzF`k-tZye6jQ*RK1(Hgxk z$Lm8BEf3x0VO%^s;6w-Bg#vd-enF-;vHTjUNGF2-Y z`0@q6uCt72;PU7wfY7-G{MKF$5e=@7tT<($VG{@R(-d_LVfTKakV=mYAu)kRj$&o0 zBZdzO45W}!RwhT!5b!8o?22vnxbN;nS+#Wp{ErAJm-oSFTo39SA>p9Noq3Lr2}9Oa zRt@gA`e*5y@L3ePo?WZ90D4x|Rsijm%V|yRZr)oc$j#&a!}svPa2MQeTh2z%JU_6r zZ`n6&k7V?FCx)DxL%yFjHoBvSs!8)Gm}`j^(N+OA0elzuyg z0RwhQd6K+Ibjy#GI52DB>d<(fFLe)RAdOkm?Wj}iZaD=+XJoYcX2k^MQ))^_Xpp5Q z-Q$ZN!e^;6>8^1bcz$Ygz9p5(kfWApbztE({*^rx<011FA@E{bthqc7GcT*CPeEDQ z>kj_!?}T9uU!A_Lt~qoPpqQ-|kIK&%!w1GBh1j?t6j?d$>8EVyk%bG#qKAXMl&lxJ zfc?*q5SoXx-5hvad!{d-Q5+^B7I!)noIXpMk57n+oPSzjuAHV>SP9N6PD#A`?%B4p z@~91WecX;g7wTNLK#O{k1yo~cMX3_;s0{e5E?rO2NF;c~uGRJ|m?jhNv*enH(wd>q zAtDND(RDW0&Sx)-t-pkz#ai`bO9%_|aSd*tVmQrcDPOW@te?7)#*B{kikN4B_W4J6 zy=YrsXiE}DEWfrQOQ&`ldHj*DjmDiz*}4)iubukLHLCP`miCL%GL_YpyTF+w(*FGo zf`NH)2@1i26#JZosptK1sTElClnW^ftnvtP6b^P);s7+k747^2oA*{*_XQUD?{};AYfP`KtgH%y`>EbXm{&a! zzkTlu$JSfi@0VmHy&oFcn{|Em6e-`nooM%Ke!V?>bFq6r21#zSemI>Rz)~z2p=F}u zakMQ5g8S$y!ub}{BS@2w?GaN`)0KT)3yTs7^0~(W1(K+kdceZn(+4aBf|4W zB93K`8VVObEHgF_^bdS`H%#mx_@$_rG$7Z05K>LWMSpFL9~`b&;FG=cMo!Uyj0+gs zriHOtSRBs41U8~kX*z6XKVndyqHfKxYJ+$_Z_rRwBu^Ui{c0x!j8}@~#hwL8Rr&dp zo-W0_n=ZOdO+}~Dw>?IwdT18|1yQ7?y)6MWinN8aG?T&!37haFXF94!;xL1Q^to3r zLmo*dkG8(b09%~KM?HALAGLav@a^s6casBa0QP3GTaAv7J3C#&BOIET9KZLPTFCT) zGG&wkYgXA&jeic9)2fvoPVYx^s#Ael`8hvSX?vm3{m!mKyq1+ix7n6bKp<%zQf)r; zs)32eIUS(jAhB-n0mHcy&Ektl{5hAkDB(yMM$pf|pPk^t^^PwHz-esGhdzZ=(MAI3dP0N`SG9+ zR02pwuBH!nQzIC$F3+yIkok z$j9p#ac33&`XQ_9!@?4_WqeeMH%-LnInPZ>{N8ou8|;G6$K~I@YV#Y9oEU_5PLA*U z2L@nYJf=0gK1~AzaTF0Br_&j>(2l6x7**yl71sFFRO7>R<{Kf@qveN@#$!MfyncPA ztfU6I(cJjBAKKcv>xA(z;LAq_24i}eARJ(YYIr4Ng&jwNZgrlsS08iot({Xmz z_QDYchAco%*(fii5n#3SUe>$VuNBM9(!OX45EuT3tm`w;zx5YLN*^gd!V%R6fVC-%z9 zwC)Ra2PNfMRmSv@K?$(dH>P{^bT3g|C0*eFdTe1}kFQFk2heFD_w$ik_!cD`Tzq}J zKCtb=3PPro)(^Xwl%iSLSVh+&FLTTORbeN`+Y5OSD#t>lon5>Y%g$|B&%GaRlFxz< zf`Ym$<93)7e(e7qC>p=Jg9CykU~TTLAAC-T__KvN?pGPNo148F7V-fGTlQ%R>RHE0 zZ7yBm^4Pj5*YsXFozsUy?Xa7K`(kAv#Xs0yp7v>yWp?&b2tIG2#fxcEM%oDjjI5%f zvl>sR6fAtmB&-%!CiszMp@?+Ga%mM6G!JdAZudc=7g!-8$v9>_bvAt?17AKUJ34Y+ zJmuwd{J}sX6473?h>8p`{IQ=m~!Ds#7(f81A>CwEi{|H zuE?eMWU0uncxfnI$gEr58Odbc(i~X?0))$YXfV4e)rp>_y73*_j87P~y-j3ka(qJ1 zB78&sp-22))s>eg~p>O*f&_&$%ks_pj4#VFFF_bbG2I91e#z>IUV@e$_y5Mid_Va1! zfoJW-0XKE(n(|+PQD^>S`6A!n##;b7I|#sb$0 z6cq)5s^@e1V_#CqR16oThhR}5wc_-s-uqUiFkH+5M22-*1W{bvy+9$~k|sE}YrHo& z50@!V8XD>@*4uv9aKJq>I>9kIF~LONTcC0VfjiJm*Q~i4*DPRgKz&nI#zdX19N8 zbVGKjOuo9X14@S0J!5LF^XsQt1_8!9PfWCa(e=K%0GIBTx zePnj_8n{_@cV#Ch*Q=E5euH6C)oDaLp zV{H7!Jkl#N;`bt?Fp$0i2w;)<_G3Oz}U?iqS`u$g@px1&(C+J z-TwD3MaUh=C|59XgE(=BMi>Hvrggh0i^2{ zhefMGv!zJey`hu@05QS?HXNb9-(ldX6VPG^lB{aX%>mw_)e8o~#+s{-&`_q^!m76t zEt=`$^mIfZY+wLz7&tXBIWT;zb&~O;`+=a|g8WRBTS3gdI25r2@RY-cn&#%kKrf>7 zV$CV{(G&DOI)=N7zTT1WJGng?ED`{9Fmq6yxCxQB0IHbp$6}_jw_ZCn1!!^*#i^+c zpfNnqH6}nWWsxs0v4+zXl$9fJ-c1W|vtRD6*YRabER`vl*PtWBHp%dI_svcU5Pyfh zM%bUWu0%bUZ+J+`1POUmK>k#3=fzKP5Zx*vfhM#AO@2F4RrS-#vPb5I+E`9YSok3^ zvo)#z^VzbU^mhsBcVS(Iy2odI^Y23zGSLxQq03SY9jiMi_^hn-%{~q+*V7EChN@ZA zO()~E)=S?!s_{S2|CyLC*qD3`b#KkKSO=PCcz6UH3hv&@j+VN7tI_$j4@Ni#om};2 z6mbqp_Ogns=hp@8;@6&Fq6=IY&BsR3{ChT*MF(bnJb%HBSUaPg#5cKeR@dYZ(KB4y=K;N6SA7 z(7A3PP=hksc4LnrWV*YpOA@ffpcaaDXTOOXFq*O0213&AEq@A&%^U9?gRLHi`-{u# zlM8DLi%V4aJ3zt;{`taTqvdgS^TlkpWW5KaslL&t#(WW6)sZueV7~6etyxs6?O$Z#nG9Mdz&<;gl)YO^OaeCajI_UwH#vdKXMr~lZBASEen1$JWC`K_>cNv> zPnku70A_Cx3Z(F2ALUF3f7A~SI%dgzMb(*|1exs0yR@V|4-n#4Utvm_3~OU+xBaae zj}L()0!-UL)C_p>#kH+)^hAO%(?xGtW#0)5bu?W%8Ge2G=*$9z80^ z%It+dV{R)yvc$T(!BD=l!xeF~KwV{Sj?)CnI*`Nh31mK7rbU(ON=skL3V4R;8hB-- zyR9zJXgLwQL(fP^mOsxwgtK;KkUO#e1}oV+Id;rngr056LE^TZ>>L)HO)V6vRFTyX zFqVjDwmqD7a&kcM7O$Y(COSFB{ceN#_CCInsZ6`Um1j37F<)iy2Pa5uWaLW$D=pbJ z2f-v#PIsb5<&39mB_%a{?Zw9F8tsQY)*~-^3a(wC^JWO|}m1snSvH}4muqmIa&lKJs*p|-Yo^?Xt=@PvjUx?yeaY<%#V zDgaK8G_Ff=ajZZA+;;s6nRL$3FfUuv&e2t}a&5`Z%)55r2Cj{i@zPE|3x4JQ2UPdX zQ&;VWH-fJe@1Ey?e^E5ZDJ#p6Bi~?Wlc%!dOiN5u@%=a}EUBsrx?bFUP;zY~N?nnp z`ToVl<;xeokWafIn=Lh@sUEO`KoA=6f=aU#3CGhQ051(Vr}8Ny>>YtSE^Z3FvWl=5 z4^vxlNr|HFS4!sO&&@5Bc`^UQmy3A%bIaNkIqDy+t+J%>LbAGT!r~D@L6l)#d!rVA z>Ql*l?qE|(8-Zwj9#~o+An{mH=79q%sO`V&f1lF?EZg7Cno@(*O*hVfZFOHxcyNv zc^D1xWlg*$v`xIpL=!mmt_wnyw6%A4H`jMJ<1&*b=H@^J>ohLO8nC&KnyM}_my|TLZI9yROPTn*hi3FiC^*zN8zw6+52tU}Q6wdskPCF;Y=hudNDN%$2e6>5b%5p1%@L2t zuG`*qVjb;)_4M{1PY?`sHYyk~U^OdCGTRUIXqWW5Q@h=yn*$j1XXFuO$|fC-D7D-5 zHyU-?PJKHn_FOt=#vOe4g{R2?(k~WL1NU(8KK{mx*TKhaI4stcH8l*1qIp?a{I|ml zru&p(^Mh7EV0>W6qU{^)7w z{aZkY^vzolxYoDOa?(qZK_3+tCWMuaJ8{4|?Akh}rr@4#+xW&$*RUD3-Tct>&;J0< zIs)v3hIEH|_c$*>4oJ=gZ+|b~=X-+r(M|B|L_iqGk0NLbo|A#8hKd0Zb|I1^& zNmD?xd{3=(lzZYWpY`S8@#)e9XJlS9;|4a6-f03iZNgwv>OpA zMi8{M<$w(s8uj<6BIK(exS&xF3wF4ma1bgXuI$sXiVC~0U>1^?s?pE%7JnZ-iG^PQ z!w(*&B2WC@zM$9G7ls*!JkbIttOEVLyxsc@pK<(yP1e@_^{gb-oNk{D*b7> zA(Nf))-*IZ_T^tk{tq}JJ%vOydVWvaayjzcOopGj@lCHBh?MTjhR7+SxC$6TI;8xe5J1ocF1ox4R5 zF63mMANMhT1OSI1<2@xApA(3pTuRCGw~r59NPk`PaK0XJyl&7RVTqs70z?{QQ^LB| z_Eni^+F*-LwX7%dI;)P8W>9iw8)H?O0KF~e{dldl*d|`^mWHFJkrkP>$|>yU5vx&c z+5Rv>x&*l7*Qe{hmM8PyKYo3aVAm`yJG%63;n8iO7lUWeI-`i{nQy%H2#5|bivrpL zHcm2eKyeA(_3^AcKs2748rs@?0i*qscqy7G)1{B-BpXE7=$M3NriNe|!`Rp+;IFSM zEyW;VwZDKxWjY4TaW@KKzi|oRt+8;bqDxl8~36w`C8=D&Px*v#u zfj&U)s%kLNxGWnTcs6(pP5l}IDTE3ei_d^d6PO<_ij?E2fNIqtO)nOi@!qm?2N;OT zi^>$@D-0veOwAde%&pE2Q-OJ8ioF(AFuvKn;=HbuVQ9#3soy&1KfX2XR#!$|(oex1 zT)%9nlKc8Ms2T#Q3Z8bR1-gI#mLo^!_k!;1tUmOc{77%0&M#8 z3OitP>v5U{<0$wA;|UiF;L*5y2^%Obf`g00;m}}K6eXL^Ny|~RVfli;t*}tk)Cs|fJ5(S(fh%4?r0agJXL3+IFo4ZS}cizEKl-5vC{2gOKWAfAs_mQdgW zxiu`m?UeNm$>~B7pr;|q>kjQ%{vI2cEHprlw(EFXUE>5qFD6}XpX*_UN_t=@`Cq+C zR%T|2(t}uG+u$&?s3_L6XTP6bn65Jh2jv?-?fAaDbpxyE?tTYo(N3F$-5p!U%L`l9 zzg9HBnOz?($w+xw8XA7^8N&j@Aladr0}B?(1w9=Z-yw}qZ_hLn7-+2sWWXRkT~otY zc9h8g#jpE1y=n`AK!PK%m339G>FL(hRk%}!P>{UmJDbaOiG|S3A(3=T;7DUFO0ZTt zFj))?NP&5A*3uc;YsXmx1BZ-^u&=7A80UEI4)h~aS3}5GwSef9MsStxH)6n4<2b0N ztn4i2Ztn2fWiMQ|x8^-|IGFXgxtbCZ5;k~8_RNe=`xahSGW_zm*x_>Owgd+@!Y?4> zu}MJq!(>#CqykS0#5=HG8ymbOrKLbh6OT%#PMze&*G|I@7(Hls4Rl7nk>O90GWr#2 zZ>eOD&5UI-gOw&sy!N(^z>(Nwpx)@AJ>(d`_zAgLStailfzQ!nn&cO3Z5fgUh(#o$ zy+dE>wvdwbC@w8ce{bHL+C(MvEwA`)x48?%<>qD{FgO956UeTOL^KcqQQL!czp80_ zN4##cXJ$GbS7VvD@E4u0>iu~8hK3mF7zE)H5)uvb3&64JQKN%Ye8n%tzh)1<^_nV9 z5CTq-S0^-HeX{*o|r?RkAgfLm+2jRWz`3G zzt#Ea<*BlyGn|_zqFJEYzVZw z79y{%E`LQ&2SWl`7##X6TUtmR$M_p;03TmN*XJo9uL9`_O#G8eqZ@9yGx z@|v_JHy90{|E#P;r!tua+uqA3DnYI<+5~#m?|yCi?&Z&sQ<^z^;L@Y1PV^L?{J z?c>G35tjC+HHpmsPrcp4r?uM&_$&xj6mN@HO^p*MwOIu=D@UtN(3#`<2oGp)g;17W z$6SJz^;?tzVB!EGAn|@5BSpr;`J55&!r*3XdLwq~cXLzoC8>r9YxDmypw!EL2b_x5 zBHx5!rmL$vXjnw8Pp?SgT^}z_0+_8z$CV*KqXigrxlD5s0+Fz$$$0k;-C9r2_3|u` zE{SpFFrDqb>W^Iq>e0NY_6u>%^0>=bC)#d4H&&x{JbJQnMc;LD4X)w0}?lrKH02G0K0-Oe% z4tuCjIis<0412}Y_kW!el^#7z^(nP=vda~3`4Pi*d;sZo2k9S*```R2^Yxl)YGa1< z7?~sY#zTmNQNd_)ClAK5Oqo>$Q4^MAkL7FGex<1#<4JU)w;=_X7?{vTqqjnZ1}p={y@@*AN=?{Q&&^dz{*PM$fZKf(q#Fy?BQ6|cG#MJz-S@!TX6Ij8~^~x0Spwt z-ud)(<=jLjwq|#x_b-#S8st<0>;Y&(|I_Ob7^PdGR_%TG3HnZd=q>^nN8w2TTfxG@ z$3li7V0D5D|JS-bwD{LSL2v|Sw>?6+dF z&zP6w=v@WUF)%BGG`ks(L~HaqA8}Unc#^iwOuU07+1T0fLn|&SGJcN@%DeORi9R?C z81*Ql{ib!Vr0`eehjBYdB-$rlmy|SfljE;wK(lnRcLqPe5FrS!K0hN_dgtam1%zkN z+kgwUp}}Kq`9~(T+KsPGa z>9>(ysw&`0nh(fvUKn-j^P4r1C9>hD`Lu=L)vW+baXo*1CX)k6-1sOD>}ydt zWbuRlgSxkls`CBX2l1mKDgpw6pnxc#w6wGy>Fy4Z6a=K3qmqh*B3;rYl7|jy>23}w z4TtWU&FA~RYt5SV&aB_eA2VzG15Z59bDp^Gz4yKMwXds79A9bUx#pWs3QvA3mTr+n z#)TzjrlzK)Sy>DP)V|WG_?D5D_AA}`)$38O7L^tmBrG;tObWH5%K)4KpgsuF0ULrt zeQ(U^Mq*kxN$0zZVm}^c5@l5TcI&`ncZ+t!G2?-7@BYyD^IXLj$9Td67#UOJUPTkZi8-+X*- z3bpxXy2%&Yo8TeNGA`siOpIM2VFAkse+P}1PVL^XO$n?4Lvx}0CIWjV^gIQi=)4?3RHn9f0Tbd*mi8;Y_~T*n+leU!FD zgT12&^gEp@sY2@ixfJ~qo-lRdZ7;tjWv{ykz2}DiyFz~u4<|b}C;RPB-bVMo5C9WS zUQt1~u0O!q+emxYcEd(y|MNh(xVXR7cUY5u?|VC|-(vR0%Bf}NP_jyPZu_8gm_FeH zgi>BF9|5`wPytun&j9X|jE%dsvmB@%0mD4vxuAy^AQlzQd)nJ)TpUSu(^Y(>7vzD$#RMK?dO;O*~P)+X=4-NEO=x3Sm`GLMI_DMICcSG(cr(170 znj2sBORm5OGt#_f<5iL&YijzE@b>lSY)`!#K8AK^uzzP4|Nhf=66t*>|6|#81E3?u zTMFv(!hnzjcsDFLpq^tJ6Rnmr^5EN$lc|Hl9mFE6%9U}0=0($qz$ssTERbody z{>h?7T(iaOVrypS`XZ(JUqOy=lY2HfmKEQ-g_GyVGGmLY{gn^u%}?8bR?j2Vks5W&#NRRr@3&=$8Xy zYg;C}ulx;~zHS9Kb8xdIb}H8Ys=@=hybMp!%*4_Dt^tQ<@nYE9>ey?AkuGinD%WoNPonI|^OZp>_$-}XRMeY!l5i4|@Ix0~ zoJ24=0O{%N^=-4Pi}{gLe;pUEzC%j_+yo-=_W;_?(AHkddufS6jSU#1-PQ$Ph=k)XFns=; zRB+jQb@O=kE&0pm&)?#lR_a%ezAJOXxH)y{R=Z%z9`o%a7gadEEpy~5{Q0ve4(X?5 zlGbIGsBkdeF_dfKu>ZH^(M_R**X&CjDp}vrZhL9g&+cZN=4oka_66=k|M-{0#wu#2 zgOjt%etU~|Y-WZH!j#DFaJ(l#2tRb(ZbJS35frK)7a#eKWwY)OAUk4>J4hrZJ+p3WzH4SfX5po*=n(oFYs^5uWLsDwRJRvx3V(B=CDB~E7OruF%b70a<=Aa@!W zD!`pDbDnk&*1K*0_LmjrNbnjVQKz4{NONF9Z)>{jbZ9dLztgVSbd*BQthMLaW&Ik* z+>XdFk2UjG@6xpjiWa`L8G9V#2QBd|Hsrtb@ws~2Bk4NzP{A((#Bu>XWV|GCmdGZ= zGZpfNfBOHqd+M}~ZnK=Eez(Qg7s^UIQE4M6eEve=oheI1gdN9NU$(JAbEl7wd=TX* zlKSkev&dh#2K4wi)cZ7o^<>gEiT-ZX3UW-ku6LYQA*rYDd%d<_r|g`6_siILkZp8% zk-J|=(LUk^>Eixr+-p111WZg{W55+OySH<9BT z=r1c*{=-cqk?+(zZ89OasIyOXz=%JZateg)W~g^RVdiaU8da12XKo9XjZ|g0bBc`{#c3Q};kQs$_;|_h(0t4fX>D63VZZpB z63?#>+1`RGUNpPY-y7Za?~njBG%W@9lN_0JVpnLKZ4?@gi7V{ z^OY18&lap18)jNVx-o30*sUqOU)nOo>Z@biOxv1JH+&vGWKVMv;iNV?jh$J>UA!bu+LLQCV8Z@IRQ-~z6?(YZ*h?!FLp0ztH8rh6>9pUOgLLv` zt0Wn)*BD?36H9iHtQmwXpX{~z(ZMpj!VfmU(jyh7#Pik%FQ$Xe`$?G8DKEfB?cA;t zA?7`|Qsd%I)3+xE^eYWCn2J$>x6q7fX)aGb7v!VvgoTmC`E{7w%=u~V8ew8!P&;kg zChFUwU%zn}{uXb{>`fQi4;Q<>a{`baP&!fS`!eZ2VmsY>W zwLu?LV4x0N?wbdSrz23oM87m<*W@lPMkP@25sTV9yI-brHlD!Bm0{x0yr2#2e9QVt zSsbn!fQ%DMuFcK<2aD5MVmv0~_mo^B+V$WFC0!nwXK`$z?030iGP3kjT)BN5&w{1$ zwF_>TEQUG&=E(fvYQNK^Ge=Utz|;e^^*1SorA|A7DjZ zqWSMnKJj0C@Sg1X4Bo|ySJ)x{X}bUa?I!Pym$BNhLL28d5AL%BH@;RT?(3hvxHL{8 z@<6RrC5FEMKul7jm!*(X_G_r(mLbu8P&94pBIScfRcW1L&k-|R{&BH=^mS}eHhMb0 z`a)ujmN|BtRGcL@=175?A2JQil9&$u(dIWrNzs1wS7k^QOQzP!$@IFow`O8RT7hCO zdCChl-ZEP72a4q=G00G;5&1NrpGkk5G zY`90ZF1BU;{U84Q6{nUtC6)+3F{jHC;|aC1n_)NXGcK;^DO)N6-pW#l_I+$PCA-fe z@6+=V7Qt9DvZ+e8r2@+0Jw+FX3usg`r1`guqpWPv&txCwLPEH2sz6NS)pBwC$XK=H z#3yN)$!1#rUktHVvCkiv_0;wCD_)$;Z)J(`d&>KiRTD8BT}^{(JdJ4dY!&|eRqU%V zoWII}<&flt&&~?CD>>w>EM4fE{|t%u4{WTBmfmC{7_;+d>6X*JQ1JBBeMGLAhfB_8 zWoPzH-erGFb9(eA@iMIG6|)D@@Gcf4SUA+)ErkS;e7CoL_t*tq0-n8lD^ zQQ=qN=cksvHp(oMqo%I%eI?hYYr$!?KQ%R2-bV4O{0cXadfmA*x5j@(iCC4Ega}cp zW0l^iD`IRcmHLgK&ZLn4%9Y~HZ6fv0slDmi&2zSwKYlzNy9T+)Z{J=cB%0-PM-NM& zhPn1GGvf{{4E@lMfMewkwfSmoUk)pwLm7CMr>gqYqvB&2m6$aHw&&$D- zLXpnY@m&jDo=6tI`b@%rM@J&)vbaL4js%aSB!CG*%wS|+6T@R=zeYYt{dDmNmCbc^ zvaZi!ctf#=?UeUE_#w)tW`C9^)#v8WJm~5Riej_QkW!xNj+ntJLATD;{RKiqvGs@q z&gQPgy}QIRk2|259mbZd=Nu|^(p^=WnpkvgxR{r5`*ZEiCQc6eFT<&YRhlbhT_E)&?TPcPZnOvO*ZxqY1|<3}FL>j-QjD_lJd!?#~=M;tvGy7VB|P zWL#aNNFjU!LkUsgqpGGtfY2&7SJlxG!HL>hE@Gihbh5KP-)+t%4@^r#nBxnbooFKb zW$4@v9(47!Wye?iJ0F&Bd^(o4S((3uz(Gs;61=vscpTbdzy4X|A;KSpl4YjNP{~>* zVrFK(PW@0Z%IdRcJ|Avfcfw?CPrj+MNY{pcP+Uc~?u4Bcdc4r>T0jRSApFLIh5L}v z#pR=35h|)ZtSL(LUbPvi_b;ZO^X)~3ZRMMWa1N}5_i z9?v3^o{+5Y`Xv_>C?)q4nN5d%jTcLwau-VQl+IBb8y)G(b(mHB-1s_BEEJM=J@wZd zED{00ke;e1Ck>EI$Oq$K`bP#j);5#H?H_qictNwDWq;hiJX@$20mn7d=4y0;!>F5yzi5^VRHT&t z>FZ;BQkq;*(F_0)hwaJEvO9xSrs*uyK|ylKuVa%F|R=<1@(~-9A zTuv%$Z0r-^B)uMsc8`x_I!X7{0aL1f))ui{1w6E$hW8a`O42atgu6B4Tx`7+R(E^$x?s|H)K&y+QLN zqRo(<9{OhXZA*1nLR%nbC@3OR^=HmDxo^pLdl}5l zi$OWzbMp{XpWWd1=zF)I;E9EGMjYfED4dSbUTU5LF8gn);j=suz4nMvpQ8O z^}8f(T2ML}VrJq1k~UH~4D>9|t1m*lb26f zVT)q8(Y&a1pFcvt z&WKMX)SvKY`rT1egNB9%F$oFxvoF!Oi<6VBt;?IU&4GIC)ZUG+cUJ&C-$={KDv#s~ zZVvbq1U+@4qA+8==4hcRflzC=k>6pN_&%}9#@|mB6>b_OR;jeKN>N`V6;F?ME&9s2 zPP_UFuST>H1vFwCS{1(?Q7ZAbdRXn0z9%U%RC`SU_68) zIs^4v1c}zm;gL}>5s?fPsjnI1{rUYdB_-+_C3%&V0w^uZWsN^KG3`MV{7p?kL0?uM z5#s>a7E0?&7lijsy}ipf!gE6nCl- z9+D?F(sSKk$U6i`{yb1-J!hA%2^}pODmU+b31`-3(Jx+&v994o3RNFfR99E84CUOp z;p0sZC}szof!B%Xvbf0mnntGL%HGWSPEEZ+CqOZph)&Mjd~y>D%N+1~XCI?fYiExG z$-lb1R3|etO7P%@!PB~^{a7xZ#=BC;(6@F67+w{KVMkh$fNa)Og(t<cAcn`*mybH4rX)%d~nWU=7z7Nhw1 z_`*q-^t8Lm4>BLjJlmxAQEs@i5Z58OR< zKN=`~FSM(&4j3pfXNk~mR_*it2dF4Hj=~E=i3+U-loaf!S@q`3tSdLM{puwpB%BxG zMl1$@Q3x1ih$WK=Tj{Jxll2EiciyB7R`1i^Vab|h$$4W6OswMK;-~ap*KR%Zc0aEV zj^VK`dpBJ-T>1=R&BethPu1`*VND7D^T{pL1Zd?QJM`5H+2s@XqQYF}8a54qY|=aA z^mxxiuch1Agx~3HS8F99k0aCRLNk@e_b?aZKU1{>H-R_650A3)n+-4ZnY)&G>yHMNQO++eyIr|EsO=r1 z3|zwk4xb6OCMwp|5=>7HY$iPmy$RUgO}*bKQbGL5PZpO;5OP=@?(sg@hLsA~nakJk zDnkg6T#Vbp`N@)!q(rPV(16q%0Ceqf{Kfh$rT3|jLR_>XU0w1u8+mzFq=Yl9>FJHl z30ScS}WO)%Tn=jjPOuwHmOK}<-f zq@z;_9J@b%GV$<~per0lhlh2lT*F$7g6?yDv)b9+-cEj!g*;D>8!~*IM26e6N%S}? zx2LnSv%X#s$U;F%pn2A#(CB&`EfB6-0n0M6Xq=G8{LT`GQf85Aw%R0Upx7O=_FJ$`)i%10{XL3P@oa+FH>Vs`Fz>g@%jxuK!52i!XzLPVNOd`b*E@Jb{8 z)V}mvuAc0S6V6r3ws>=C?H=n3R<2nR5sM zFbKrO#e!h~4u50zD5=b&y%<`kP6GWn_&gv>FDNcPJ4~lqYUHsT9R^2HS$S=&WF0~| zV00b~8wY-7D7w`*HPP|#I1ORYQmI?0p)}8@rg*2aZ#(p}K^^1UHx?lF?W(PXEavDU z9XL;`(V`wSdTkW^c(FAr3k%*-uW=Vf*E{6zUt-{&@i^jimBaHRA|!-mArJy9v}IjI zToP6M`qksFZJ7!~M_E{MO*!zJ(i7i6`~mq678<%+Gb!^dzl!7PDmPea@8-N>j{+)NxKbeU7xp;%5)(6aF)jo%$ra{; zsD$-YR77yfK>Far={4LzV?#q-RaLGxGYtWsNPp>eNXbfi+6^)#AFDmcOL<~`wDSf; zAta=w)1R2bQ*DblO;XAP&4lJxPqFdtPOYs$On!8fEeg^Tz-tc#o4I1iQO^wOhV+>q zdcSkg`J6P<6qFisc=N_hU=L8w(RqQxMs6z0zdfX{4t%K65iH={(}5P%V(1sJ)jseB zxdgkGZ`Sr~aO?MhKx3i`3UcF%VwbRfBVW{4ys8VBefMnV@^>+CxWNBSLP{#W^C>0$ zr)~vZigbj}O_GzNmE3yYTPyG=6Og~~@bS~#dJc|{`}SwzVq-Crxto_gd;ih{k*Ifw zVRMjcX$44V0Hs8}{^Z>pwd2m!ksS`?4pFN8if2i;m3K%kDXWnE;!|p)o;n{;bJ*G3 zEOT6o?%4wNVP4n%KkwhapY+t_;_l2#t}D(NoA*3Otf>+9t54);1RCHssL{E$@F9yK z;M^BVur@XZXoSIrn!P<|aC2Kn2Qwq%BX5EBuKjmTR6_2Y$H(QZ2_`<2yHo+mcLd5L>_dv*&Qedvx5sZ_{Xyv~nI$^f?n$&f{UY#5bbhb)E^ zj>@_ckZ1IK4CWK#Wn6-@{3{(LAlF%{47Xix97Wd<|b9&;>AVpJJS}GH>N8a_Z#Cel2SrI}#kM_v?ozu_V-3pm1QaoKX zN3D!@^OeGHdQ*V-*kf7 z{4_QN1GwQ_3H-sCxw4PEne?k)Z>I%fd(quSR3BTtnXL8z(r-GMSTlQ2t-A2(74-CB ztpnNTy$QWZqBnK-@07d!9<)5CajbB}+*s;O)vYKV`lTPyVpMH8N`UaiBSSbn02K}t zgdAuS8$Knrw)QU@`fpRj^yHI*{EQrqWTo?0OxV}xZ_CpdA;TkkuZAkRm~%{Q zp7}s-w%RGM*0=#zH8%Xa3R&zU5^-31c!!`X681hSJR#n^ejOguPC|SWjl}fy^sq2hpkPNxh>A8= zy2$efYHT=rhy3{QJlO}5I1M#18xhRS~4!%zwggZ zjoC;3d`%X4*kiX3ZkW?hVq8{|C8F;zTuwuSM|TGEYW+D*4;9HN$Ph?}Go{`0=esR~EKwiGf!D0v` zQkMSd>)0DxuW>8dxXW#CCT+bwq!)8EYM~7G@v&UAPTTvrhhNR6>qKvoxF0S(PH2xc ze)hAutLCIPTfJ*|xCcVrI4(O9>c7FlXFrEL!QKK9TB?$2*9#DHh`TQz`_y2@`+E73 zo}L~=jM&NZ>gfaKZD(gUYEv?H?+x}{r;W2_yNi2-%1vOU{wrBag#HLVq`N9DWLwcQS${3 zJp)Ttb-)*2Q+rcFM3a2v!LfA>=wt0I4-~5B#xsPOgYDg;I!J${prdo2+Guo#41art zub&B?srusVguS5WRwMx;-Idez?~S99sN(fuNt~#so|SQNXpk;in*R&g09gHj_u}Gu zHMDb?1soqp9<_FM>g@~+0nz#T2&2w9x=Z-{;nOG1^FK8o%f~4(guxQg?YwH=9N!Zn z5pZ6>J%=Iq$;!`Pk&@ET*4EZJSS%gUXb zdPPV7{K&`g^ukCjs$4;baHc+l*ng$xJWQtmAWq3*WADQ%3*>cHN*_X6yb03cx|x}8yhGUX^ULYitM^&ZH6ICV!Pld- zWO*(K-z!s6QVI&#A3S&uOG#e4;_4N!iT!4r$%f5uM+)W)JcR_G-$FkuHQoR9vz-yJ zAc9Dtvp6RcR{i{s1WD&iCbD`+!!)H#&bxnu#2!c2oNRG`DuK<6Q56E{?LBq})N!bV z&rhUxoq#l54o9BUDx3{fFZJXeP|ySsl~KH5)r zOCdlE{?b0*RSy`<(Je%tU&>LFHq9<483%zk6()_m5Xy)3zhR%lqc3C-*3o#M6tqj6 z<#a*&1f_DYwSj@5;Y<8ak>9>4RmD|<0u+cNC}pY)Wk!Q<(}N(+*qF;;reSwwXeF(0 zpSG^P9tlecr->*_h0(+9O~a-J7Om2E;B6-+^gs$?sdBKTg`S!D6jSBKTvY`YDBPLa zrae;QwAO%xMW@Ji?sKNH{@N%P4KuUH)bC5sCH^;4`RdiHZR$Voa=%@KaNxkbT7`jv z&qzYH3^W;7o>5Q=ng5m0zBl&0zu(}cpR=3W9TJjdUw6&w*T!aMkgo1%Z|~ow&NLoC ztsCi@hIPbnFZn*;TpmB%K0FMDjLA1vS_&cehNdPML0Z`ZEQ9y{5vB5~eP+Kn!p<@$<-=*-8Ps*+eoXNCS#JXv2!;W)fc=yaq7m^;kfx)NmDbb23f&{ z%#o8S@6XZB@bLlgolDdNMd2eq{E^{dk)2OW*$Z|L0Pc12qp?cz9tSrDZXbkC?oUnS zWMpJO0^nei$iBv<`uz6`gail&pe3g^zCPMnPrA3(qaCNUE1&yGRNq4v;weF<)izck zs_vTeC=S!@ZK@u8E)0w|7-ygd0+|dVx-TVpdBX(`E5&PLx1{>+9vd72?yS2b8ykJa zhgMJTXFe$|yRS%jiD&)};MEX`%zY;vRHXE)JZEbIZBvSUu3n5U4 ztJudJmRRt>I+2kv8&=YbBmz!nCrP>0YMCmKaLcV^Z-jD(px~(&z7UN!NZ!e~%&C5r z;C%P{z2YNrNbr5ELp*Bs4FTN^vfLUyO-(Yg5mSsG)xqH*y3EeBdy2Xok8){gX@}@$ z&FPuAuG;Co9=mO%nZ@AG0dv%g7au_F@t07H*7`wHV;*s`*-f} zn#eFgqm<+7!N;pNv;B;Uer5HGxpqRtx8X;HOreT`3|q<7e`|Q zn2fSp@PO&skFpplnLN`6*)eG;DLNT)15aJt{`Q--gJG}h-V5zToAImrN%LJ6?F0$H?ye0(_?8%l} z8MeftC~z@9e*8%5s~u@+>FeX5<=QQaQE-ABpa4q*CRI(mD^NKhIXO8YL0?R)sZFT) z64se8FC>|P2ms#{D{`XP6w3swJDEP@-{^T}`_^)zA+hd)xNqiEW3eV4U`N_psGQsuJ@E#BvKLNQQBjr=~(fZT9 zm+;L-LUZ1fHp878%6|X(&Kw0U;YQ9|844Wu`aS*ioVO|rsTVb;2Ny*eF}hGG4Vm!n zR+6;~!=yz02m4=KRKF@! zaDhH{dV}d8oFPo<;q4f{coQ6`08@ub{afzJ&&x}RlmTqh#esX@^qYri(TAxd`n5{~ z-o#ijTh*N2oEg5u;>6qee^OWbUnsr(FKp7*e~D9Dg;8G3>~ZUmpKabF8TS`ZvU+bK zo6|!aVQz(1)Rh|gJ0HatJ%1f8u9l1^c7U<}KX8*1?MULe)#tqYd9FTLGpzK*t6UDx zI|#Hs-lN*jQU8j9EB}oo$yR>?@8CIdcsEpiwQ0I#dUPDk_ix2q`SsDUZPP6tsF>Zl zsF9*k8SXks_T2KLP|Du-qOQuw!hD2W`>wGJa z3S@*%ZeGBEBFPSO?&rve)u;)ys|&UBTvReQte;=ZAC51ht>s2q+x0ZmZAiL=7MI{lnazw(Zw$i z1!^!|1ZVlHgR0%B9MmGQ-_lf{EIEY*#}iu*|8$P*n%Z34J4oVM3A^fp?el$&Um+}( zq08;T>TTbj6j;A?el)`0SQTTVUe<$4YpR`{Vb@9Fgm#v>Jkwtx{GYLXBB--mTH{=C zNE#r?MgIovz!%hGBa-SL59%6Q4{mxB#87)3#PLU4DFaT%^WV!3%?gOXp(a@yRr=?W zpLI)7zFI(QBWdVjLtFtNA>yyo`W*7`&SXv8gA|TjU2W`$WPQZpW~ev8uZVP2BkMj( zC@=TlyBM{FiSCiP&O4C=4?C(ioi~*b{#q(>IA777s&~Tj?yva>)}=&n5X;}-1UhV9 z(b(9!sm)kZxdrFqr%$9jh2;-ZLe^$f>a*a)T3%3H9FJN~cBo2?goOTPfIU(zH4UVQ zrK`7(3**w{@7UuTj%pAgir6(9m+X#w-f6oQ#@)Y8opc$*mN%fR;`8sV5-T}{t)Lu?`$PMCJv@lr=!!{4`ktgClPNKGdogewQ80`rdRByKj$N|)S-PeH!Sb3 zEJ)9Evdy}*`}QzrOlNX1ZI~PjD+8=77S{X=$5}c-_li7qdA;M}@+I^96#HX2c(xTT z0Yh2Fb7jtr$<3`F5oxKZf0wxs{tosjp1io+F+7gfM#8H+jUNRfKBZ^ zj7uScqbT6YR2I8wZ3Xpz&bt6p9qDJ|r0)Es2PBxc^kQplZIXR2V|70#|D^ILj6ElZ zj43VC@Y4Hp&X%9SQ;dnuLH&TP&yv@JII#*7^}#5hO=*UJYD^Y{}%3}UbpG(?rQ&6<^FsBkoCXj3k*@H zDfLqaTv`9;W{)DI_45cEY_aR5BwSoLl@ukd)Q0tuTWyf=5iG;|d@G zIi+Uga1`~c5<5Go&2LR_-X#%0u#rFFgI(UINr5p9%V0I7cf4=*Grk^RjCnE?&kIvq zI+TCtlU^K_lkoq2C%~k94U6@2?W??z`*Z;vDUrCJp$#uB2)Cylh~@~X#;``?X9mB&n4z@5 zSF2?jv0oQeBys{mFVAHt(bj|081L~EFjcq^jV~lA+-*$q@1y0 z$(e-e0O(5W_Dzapk4n)Cm=$?%f@^w>(}Pt*I`PuRyR5_M%>&%e)C`Pub9bY!g(<x{QCNTV*y062f_oS zp3sHXPY)V<#^P*Deki;gU41mDWcCzl(B4T;Sc3I6=`VhQDo0IQlYVCFfOt1{g;4Iw zL2m8HC0Tv61$`yXs*YXV^hSyjo0SK`4xqd6%CA1#gBuP=<$ZBLzCk7D+cNP!zb_`? zKZ$`lES4KHh{W!emXX$0t#c}ar+>G^ocp6|Uu`h^zzlVGBYqt-+}PThm6B3=iP3yv z@*ksCo(|9v%=;6L0=mwEmTuk`5~JK$NNQXT!MgSe@b-3V%*d`X1b>ixfRfEFqKz7klFU3yCFN3hKJD*82Hq676%#5=Y z{+LH620ca`<9!gI%!T%#t5>k?%EmwY4swnLSU>2fFwPFoagP`9Oo^ERDjUo+eQ4W9 zFMf5E@Ri(;7tl`PhYYM1J#}q8J((#f!=0T%5Au>L#BVwUlgP2K+~?Ll$Gw3W_Ic{B zp_3_`8h-O*PwNGndqsr0Kk?^<$NrXMsD*cBa7yL$yL^^QqqGFk^D?>XS97X|-^xXV zK*JZXj{bwv(mieuv~@fv!8aSp;?i}oKOeqdETOVDZg$Vn!F;%Y^?3AbtCdts^XgRx z*YD?fdeUS$Z*Z}bE%}kx#Koa0t)Tg8QtoBTvBPa9Ch}OU{?zb6(g;&UTF=B4M-DHN z{U%~Ev=acyaL)qo-Whx1Q#b-xc&!NKp~eBraqkvj-8CxYy`|CPuW0Dzv;Rin3k@_E zjIDbr#=u_2muRMvMz;eWB#|CFziLkH=su?{@NaY6G-eV-T7CWTV^8s^IJX z$nq|E#r{h9>J5t(>!(%f&Iv9F?tn^L+!sFhyEd}R|73S&d3mp~u5o9j$FS+}5asr@ z7jR!XEIFymgPS6E1x<8R?1jDPp(jF*rdVv`xfb9@XPe|PJsdhbv;q&!8#34!Qf*b< z>P&ii?U)Ane*qf$pU~VO{A%M*kIhcWiekPEAU-JA%w@()C9SJZ&nkm!2ync2PVx<# zcNa&rOPrZWy`vfAb-#QL+}?bn9KkF8h1@W2Va0QFnT4K`GCsNa%j`RHTUm=dY@P1q z#-Wn6y4(mnGQK1L)84GnBJXp0zP8QNIs)oK8@H32zTD+9QF%KKfV?9I6`Aw$D>{?e zeF03z1-Waix$f5MYH&PIfp^ds+0RVu8fo0krWKZPacE*x)<0iu%Z0{Fa{k`*o!ray z;$N1w|4I1ckeRyi@#%dd!_gAcp=!Yj9O}?C8B~70=H51bpvJS%#&F4%ek*dafs%p( z!~=r8)q&&oC8EH)^>(Pu-Qx&h&Gqrl!|94fTbE>yGNg@Aj)(QcpR*w~aYY$z?fRSL zK0b{B%ovd8<-W*SILl_%iHPEI90 z$~DpLv1W>pO5MlIVPA6^MHvQIy_OiV+Q-bd8u{{E7Cto#l1ep#>gx-N=Af9JWs6+a z*A=Vqbd z(l?)-fZzpICVG|=%Yg#Y;g1oE#`hcYDYoj}DWxd93YmaC*(T zBKnl}F(WT_-v z!|H4ez%xpMd8b$P=+Hf2oZrcDeVl(`nN%l@=i<$8ptDhuHfDJ9v!P(> zji#g#*IZm;xPN8-%$Rytrl{z_@8=Em-wG$YlD9gHUnSDy++NZUqTbA!S{f>=sg+xG ztSe>O_b=vqhjdjRxQ?(+-bQ@ncYqeaXCT$rQB~-;Yi*9=D_?)VG4U0uLMm#-mMgw) zPIeZ#^-^JV-wLvp(0uVYsEq12)VlS2e%@z!I~IsP&^JWMEZ~sKMc&c57PCv5Tm8X7 zKndHxzcI|cdM>-q?>GQYDK%`KjzrY|S& z;Apc(L}qAes;{M$bZ#X}dL`O(ZmFMFL>-WXRyM1Vo0g|zc4Y!(I*zXQDlOYidT`tLD89 zd@5+XYhTvhAHPYi`yk%xxaet&V#`{0?~3-ZYQ(Q*yg%DJpiT zo({K;^6kq71qQBd8v5-9SNFWs?=$t2x0nQ|KmW65LM|tZe-cl5d3jbUUVfnpDjz6{ zjJ#AXAE?V;yi6kOumwZaM=V(}TSY6!*VMp3;VeCYwfx)HiA+13n2zd@chyOimDcAU z%)_9zKD&dLdv8e zdQ?PE?E?TyJKU?Os&KkLT*1FBm8mak(W{6j;fq4hLY zn`eJ*WNv9r(6TA!NVG99f%tC!(#atQi0fIR(>nU!aO_UrTBleVDn`fa@;kmAo54)8 z@j0HL$74@U{9y4tbtVYL1|ahPe0T?KgiuF=`Puii-P8J4VPRYCsT;I~2pJ7a0Boqd zXpiC_fM>dHixqng>M45{JMMW}p0>40S)(hdBU-NfLmk?(I?QXd(S3V=eGW5R40JmrGZ z&6O9XidA*T8%#`;bHbcjLCML=3h&ahqtpS@(;w!-#-_&-A?W<>e8$K5=+S3_0*hu6 zl$M~)mI@z5!r4)bQk4DiU?8AaiRh|;p~zrIK`weLIwt!VqdT^@hQ3gv!<_Q_kD$l@po86e8T;(d?e`n9t+n(f1i==VlBy#l6yAx$OSfy{ z*j_#P$`MI*|9HK=#hr%{Z~bvUN~YLtfm>a@B);n5PP(anO;$*on~!kZUCP_Ep^^!1 z_zQ!OPnNhT&+4_rrAuIT6eeCHBrdwYGR*t8|C6CMcTT8^YGY8`a~vBxyWo4mnUy+4 z$VrS^j#eM--JC8NI=eybLQt-rK=b!A+zB>~e7E6Dvhzkdp$!^!M)O7KLW5$SiXypB zrCa;rCYzkV?z`--?|u4W<7nf788Najoh%5$?=dg29Qi%{ZZdM0JED!N+ySNEZGUy5 zEYz@eVIOz>C35J-O3!vnvbb3NhS@Z)^B;eH-jczb!&%49obEhIy$NOq-R!8iu3Pa{0T}Rmi;-@H4+UQyD<`Lnj;5sW zkG;PA$-y(+6+7+MW}w3fFniiY(Nx+-snmyQ>+dI#x^gvPVNo`F?UD$I3dgkyZ*N#b zd0Xv`RXaSQZh(d%Cz0=-C6y3Nl~_$kNSBG=+}6_EUnJ{%ov+G3d&&~f2rGHH&d!zy zmb0Du5-A@ro|Qj~M4k}O{~iDG86&RP-#RDE@ONvc=zDJX2|>?eF(#6mK5D@6oLIOm zWkVa<_|V(g#l>lnAkv06FsR{u4-OP}a~VAc%{a?3W#~Fr2^v+1EU3M|2Z-col~|2r zp`JewaDFALypWQ`=qkduLh|Acw?tE%p6ul8I5Op}XIwhyu8P7YwRpiEh zjyIHR?67?QTbRp8TZO9Z95Jx~Td5PMxIcmxCLNWXMMWVB@N38(a}>a89apbV1`lxv ze5`%7I$o^F5cU^c!()m`uX^;bXxF)OWY=WmoD!k>OurWCbWqFUqaxI#IYtPaK+yNeF63BsP* zi38@)Pl&QwtJuq(%jds|+62=TI_qP$GMB3u+Fzr?B3k;`uGGZiy)!a1ivRfV~0378OF zQHoWH9nuu-A7DWg6%(aWac?X;hb2J+xK<7x4vy=_gW#kmUXBgR_cZn&sS4J8{~JK9 zTXBn$?;#_{OQfroxviN7zN-WZoC0fuaJoS-fs%&8bDaEQwssoxvIhhR%y@N?lXJkK4XR2X0!m{jflf~bJs$x3~)e3aF!JgMJ&H*nPg8puX!oJ=8;0OT%b zCrcat8OsK-Fzdi2ZZ34;c-LiX);XS0fOIxyvO*e1(qB0H-1v8Gt<8K)A(e3JWS-To z9lpI`9L14&xyqoDUm)h?+~muV?l<{I;#IAXtrFn30Pf6*uTxZ9(nTPVZ z;YTli>2HhcO`H~emkuC7uFuSjCi##8KuJF$dtkY)?lH$?tfhS)E?!knR}heYKzHKV zifw-B)?fz^+$|QLtz85(S%$JipIUc>xp2WkWveiJPC7XmRYgwiBI?Rg8oXmhh88@w z8dKrrK_N&bZ&|FYFE5+yT$WQ&Q}Zx2(UC*W^KJZv7@mJ=y@gr(hyamA6*tOLxu8}Ik(3}rWM1DN zsHg}o0ljQXz!L#Ih7+-%!u9TOl@)P4JEdCesdEwbeVh0tWvndlQHolg{`D(*)5AhQ z>l@IMwgo4)KoiQFsVOCP{_A9Y`-%WPU}uCk?gb$M*ZFpMQk`FJ=gl?PAJC+f*d~cQtMz^54;bIy+Hn ziZ(-aNt<3n68=2jNNa243o<%-ulk?@x*)3@h1`tAKqh3)u-v*A@(3<0_l%7dXJw_#2Z3mM$eEycaDV@` zUj%SSpZ>+?pR;D0mgixp%2Hz1H`p<hT4rW00!eM{e9(psOgezQpT!Y|E>Vw41T`rDKM@i`mI%{SHR zr=&hsxU||IQ`V<%#=_B?Ol(GeGDp0V0$52>);G<%TH#=C^S@@MJrX63AF<}ZKDpnW zbJd%bzJVN4ch^IL`6`7oh2_wG=y|wiSB_@bYx23(q&2r(>yJm>-r?2jk55iN*gHX-I@jz{{Y6#XfaHytR`zf!o9XtqD`$(SadD>jJT#KId}l5; zywQXG{+^7C2p|n}Jbh!I^LqM6*%en!eK{uNj^}5%9+X~R?-qg7XTj;>s%ke=&tr3b zy6(t$b56)&JUWT7-~m6i0xRr;G>rm0C-C&}w9(~AR03$1@NT6l$ST%FLkS`Fv$f5D zn*;z-Kuf*Zee)bHpBa0=_`(PEX*#&Nl+n8norNaxNaWG=OIF@q%U2mY-8Jca)Fyc6G4y7 z%eRIq9}3u9?ql9S)ZUATto%fAQt`OCjG(j| zw@^}2f}o&3rPQ2z=AS*o0CVoZUmu1%R!mi3t4mo;3>ok0?=P!!3nS!k=5jE%TGKT%T)bE5C`9?nanqzT@VwTiw&;N?~}BOkK62;?xXNfZnaG zbcRJFduzL~Wt$|)v-mu{pt*HCAt#s0iZ;VFz_3AUqrQKe1potp9K| z;vY>N2J(tkHutDkl?tB5U~!(*#sQY`SA*%44(=W|9aWZVBrhgQygETp)jlVP6}EDG z?1Y6mBPsb-ohEj$<^{&qeNnfBarwDnRjHAVwd7N!+?C%frmzd>QG(_z@snYQ}YOCvwXQHCa(-NAo zXAZy}NLA3RYp4lyD0Fd@A?BnbCEeVP4JPVDBTCucTUj|EIXt#;aN8P(d&WNB7`(c? zrmVIrRjI>x&6~0T9g+HU+9kp^bF?IO^MG{aTD@~ii)9ndV1B-&q=ZvQ0J@APp`70? z*@F|rd1ObeZU#=>Y-w!KOEKT91iv)A|%0#p_BRkfDJ1vm|$Yg zgcA$pTe<8WnMg4-j}mjCz)apNL%WJIL96M`Lsko}wo(&u*+@=8Jy%4+uyeD(F` zt}*cB<0`e&9cH^0xtZ$jNn;y4N(B-7HU|99VN}1@^9E8Buq7xd^J?qzuQ7<)9A~Qv zS!(0)6-npxtjsUaYH+4L8Az3Z^DRqq?JJqbMS3w7_p#J zNWWPTMpOT9(46=HLhJjj%k=mGQUHg|{IdMD)y8v>18-JH5}%Tvx=J!X(e*W(x})`N zYV`UlCYruAdL{YC)#IYaw*2C;MZW=`kyDFQrz4{T##4`35AqMO4U=NZNk^Ef0$UR(Zp}(`o{r=Z{REW_ZQbK)tVWvMj^J(P z#15#uJb|pOnE~Zx_#C>#Ysh+kn&8z{d^dYO`0dI10Lww)WVNd^d~@=ZAvC&@xi^l1 zlu<&|_=aoY?hxT-FjM2E33dP#MfD1|{r&u0&WurOqjq+u;-?E=C7v+Qvov&OqxmU~ z+^o{&s4+axOTfO(6#fVu-T71L=fabd3m7=lGOfs^^9HgWJ6G!L-PW;7h2q}>(VK_D z_KKX{Io%+}Z)|Mp?wCaO^#=FO+2}T6(W~=hWuv=Z{DR0?X#2?f@tT22pLd~IEH9tA z5di3Lc9cpD8_G>?767GQkj-$=O6@6}nlY`DQd5dIbsr1`AODH1s4-uhS*d;l=F6Ae zEPeHF>A`f~PQ@=keiiF-g%JsMop_3fc*mCrfbKXe$%n3H;Ba`Z8W4KD+w1TtZK1&; z@5EUo3bilotaCM=St0EjllE%C2hnQGy1%bJo648S(5sksJu*8L=T_6Lu#MFjPKALt zDrCljKc}mrx66%0R_6D1x|!d3UHsEeeG_d?zMU{1;l(N&P3|yqlayyRggsD0sUA

5FTA>gj8XKk5owd=)<92 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

G4H142J~4J+*=vG_7zd}j;Y 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 z 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 H_vn8EUD{=X literal 0 HcmV?d00001