From 0db5bc6b7666ff0d70a5905be59f34e3845fc92b Mon Sep 17 00:00:00 2001 From: Michael Lam Date: Thu, 7 May 2026 19:32:06 -0700 Subject: [PATCH 1/2] feat: add WebUI goal command support --- ROADMAP.md | 2 +- api/goals.py | 470 +++++++++++++++++++++ api/routes.py | 265 +++++++++--- api/streaming.py | 49 +++ docs/pr-media/1808/goal-autocomplete.png | Bin 0 -> 53763 bytes docs/pr-media/1808/goal-command-set.png | Bin 0 -> 65953 bytes docs/pr-media/1808/goal-status-command.png | Bin 0 -> 43204 bytes static/commands.js | 48 +++ static/i18n.js | 9 + static/messages.js | 54 ++- tests/test_goal_command_webui.py | 234 ++++++++++ 11 files changed, 1070 insertions(+), 61 deletions(-) create mode 100644 api/goals.py create mode 100644 docs/pr-media/1808/goal-autocomplete.png create mode 100644 docs/pr-media/1808/goal-command-set.png create mode 100644 docs/pr-media/1808/goal-status-command.png create mode 100644 tests/test_goal_command_webui.py diff --git a/ROADMAP.md b/ROADMAP.md index 41cfb98b..02d6af2c 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -168,7 +168,7 @@ Remaining gaps and forward work live in [Forward Work](#forward-work) below. ### Slash commands - [x] Command registry + autocomplete dropdown -- [x] Built-ins: `/help`, `/clear`, `/model`, `/workspace`, `/new`, `/usage`, `/theme`, `/compact`, `/queue`, `/interrupt`, `/steer`, `/btw`, `/reasoning`, `/skills`, `/toolsets` +- [x] Built-ins: `/help`, `/clear`, `/model`, `/workspace`, `/new`, `/usage`, `/theme`, `/compact`, `/queue`, `/interrupt`, `/steer`, `/goal`, `/btw`, `/reasoning`, `/skills`, `/toolsets` - [x] Transparent pass-through for unrecognized commands ### Security diff --git a/api/goals.py b/api/goals.py new file mode 100644 index 00000000..4475b10d --- /dev/null +++ b/api/goals.py @@ -0,0 +1,470 @@ +"""WebUI bridge for Hermes persistent session goals.""" + +from __future__ import annotations + +import copy +import logging +import time +from pathlib import Path +from typing import Any, Dict, Optional + +logger = logging.getLogger(__name__) + +try: # Exposed as a module attribute so tests can monkeypatch it directly. + from hermes_cli.goals import ( # type: ignore + CONTINUATION_PROMPT_TEMPLATE, + DEFAULT_MAX_TURNS, + GoalManager as _NativeGoalManager, + GoalState, + judge_goal, + ) +except Exception: # pragma: no cover - depends on installed hermes-agent + CONTINUATION_PROMPT_TEMPLATE = "" # type: ignore + DEFAULT_MAX_TURNS = 20 # type: ignore + _NativeGoalManager = None # type: ignore + GoalState = None # type: ignore + judge_goal = None # type: ignore + +GoalManager = _NativeGoalManager # type: ignore + +_DB_CACHE: dict[str, Any] = {} + + +def _default_max_turns() -> int: + """Return the configured /goal turn budget, defaulting to Hermes' 20 turns.""" + try: + from api import config as _config + + cfg = getattr(_config, "cfg", {}) or {} + goals_cfg = cfg.get("goals", {}) if isinstance(cfg, dict) else {} + if not isinstance(goals_cfg, dict): + return int(DEFAULT_MAX_TURNS or 20) + return max(1, int(goals_cfg.get("max_turns", DEFAULT_MAX_TURNS or 20) or 20)) + except Exception: + return int(DEFAULT_MAX_TURNS or 20) + + +def _meta_key(session_id: str) -> str: + return f"goal:{session_id}" + + +def _profile_db(profile_home: str | Path): + """Return a SessionDB pinned to *profile_home*, without reading HERMES_HOME. + + The upstream Hermes GoalManager persists through hermes_cli.goals.load_goal(), + which resolves SessionDB from process-global HERMES_HOME. WebUI sessions are + profile-scoped and can run concurrently, so the WebUI bridge uses an explicit + state.db path whenever the caller provides the session's profile home. + """ + home = Path(profile_home).expanduser().resolve() + key = str(home) + cached = _DB_CACHE.get(key) + if cached is not None: + return cached + try: + from hermes_state import SessionDB # type: ignore + + db = SessionDB(db_path=home / "state.db") + except Exception as exc: # pragma: no cover - import/env dependent + logger.debug("GoalManager profile DB unavailable for %s: %s", home, exc) + return None + _DB_CACHE[key] = db + return db + + +class _ProfileGoalManager: + """Small WebUI-local GoalManager adapter with explicit profile persistence.""" + + def __init__(self, session_id: str, *, profile_home: str | Path, default_max_turns: int = 20): + if GoalState is None: + raise RuntimeError("Hermes goal state unavailable") + self.session_id = session_id + self.profile_home = Path(profile_home).expanduser().resolve() + self.default_max_turns = int(default_max_turns or DEFAULT_MAX_TURNS or 20) + self._state = self._load() + + @property + def state(self): + return self._state + + def _load(self): + db = _profile_db(self.profile_home) + if db is None or not self.session_id: + return None + try: + raw = db.get_meta(_meta_key(self.session_id)) + except Exception as exc: + logger.debug("GoalManager profile get_meta failed: %s", exc) + return None + if not raw: + return None + try: + return GoalState.from_json(raw) # type: ignore[union-attr] + except Exception as exc: + logger.warning("GoalManager profile state parse failed for %s: %s", self.session_id, exc) + return None + + def _save(self, state) -> None: + db = _profile_db(self.profile_home) + if db is None or not self.session_id or state is None: + return + try: + db.set_meta(_meta_key(self.session_id), state.to_json()) + except Exception as exc: + logger.debug("GoalManager profile set_meta failed: %s", exc) + + def is_active(self) -> bool: + return self._state is not None and self._state.status == "active" + + def has_goal(self) -> bool: + return self._state is not None and self._state.status in ("active", "paused") + + def status_line(self) -> str: + s = self._state + if s is None or s.status in ("cleared",): + return "No active goal. Set one with /goal ." + turns = f"{s.turns_used}/{s.max_turns} turns" + if s.status == "active": + return f"⊙ Goal (active, {turns}): {s.goal}" + if s.status == "paused": + extra = f" — {s.paused_reason}" if s.paused_reason else "" + return f"⏸ Goal (paused, {turns}{extra}): {s.goal}" + if s.status == "done": + return f"✓ Goal done ({turns}): {s.goal}" + return f"Goal ({s.status}, {turns}): {s.goal}" + + def set(self, goal: str, *, max_turns: Optional[int] = None): + goal = (goal or "").strip() + if not goal: + raise ValueError("goal text is empty") + state = GoalState( # type: ignore[operator] + goal=goal, + status="active", + turns_used=0, + max_turns=int(max_turns) if max_turns else self.default_max_turns, + created_at=time.time(), + last_turn_at=0.0, + ) + self._state = state + self._save(state) + return state + + def pause(self, reason: str = "user-paused"): + if not self._state: + return None + self._state.status = "paused" + self._state.paused_reason = reason + self._save(self._state) + return self._state + + def resume(self, *, reset_budget: bool = True): + if not self._state: + return None + self._state.status = "active" + self._state.paused_reason = None + if reset_budget: + self._state.turns_used = 0 + self._save(self._state) + return self._state + + def clear(self) -> None: + if self._state is None: + return + self._state.status = "cleared" + self._save(self._state) + self._state = None + + def evaluate_after_turn(self, last_response: str, *, user_initiated: bool = True) -> Dict[str, Any]: + state = self._state + if state is None or state.status != "active": + return { + "status": state.status if state else None, + "should_continue": False, + "continuation_prompt": None, + "verdict": "inactive", + "reason": "no active goal", + "message": "", + } + + state.turns_used += 1 + state.last_turn_at = time.time() + + if judge_goal is None: + verdict, reason = "continue", "goal judge unavailable" + else: + verdict, reason = judge_goal(state.goal, str(last_response or "")) + state.last_verdict = verdict + state.last_reason = reason + + if verdict == "done": + state.status = "done" + self._save(state) + return { + "status": "done", + "should_continue": False, + "continuation_prompt": None, + "verdict": "done", + "reason": reason, + "message": f"✓ Goal achieved: {reason}", + } + + if state.turns_used >= state.max_turns: + state.status = "paused" + state.paused_reason = f"turn budget exhausted ({state.turns_used}/{state.max_turns})" + self._save(state) + return { + "status": "paused", + "should_continue": False, + "continuation_prompt": None, + "verdict": "continue", + "reason": reason, + "message": ( + f"⏸ Goal paused — {state.turns_used}/{state.max_turns} turns used. " + "Use /goal resume to keep going, or /goal clear to stop." + ), + } + + self._save(state) + return { + "status": "active", + "should_continue": True, + "continuation_prompt": self.next_continuation_prompt(), + "verdict": "continue", + "reason": reason, + "message": f"↻ Continuing toward goal ({state.turns_used}/{state.max_turns}): {reason}", + } + + def next_continuation_prompt(self) -> Optional[str]: + if not self._state or self._state.status != "active": + return None + return CONTINUATION_PROMPT_TEMPLATE.format(goal=self._state.goal) + + +def _manager(session_id: str, *, profile_home: str | Path | None = None): + if GoalManager is None: + return None + if profile_home and GoalManager is _NativeGoalManager and GoalState is not None: + try: + return _ProfileGoalManager( + session_id=session_id, + profile_home=profile_home, + default_max_turns=_default_max_turns(), + ) + except Exception as exc: + logger.debug("Profile-scoped GoalManager unavailable: %s", exc) + return None + return GoalManager(session_id=session_id, default_max_turns=_default_max_turns()) + + +def _state_payload(state: Any) -> Optional[Dict[str, Any]]: + if state is None: + return None + return { + "goal": getattr(state, "goal", "") or "", + "status": getattr(state, "status", "") or "", + "turns_used": int(getattr(state, "turns_used", 0) or 0), + "max_turns": int(getattr(state, "max_turns", 0) or 0), + "last_verdict": getattr(state, "last_verdict", None), + "last_reason": getattr(state, "last_reason", None), + "paused_reason": getattr(state, "paused_reason", None), + } + + +def _payload( + *, + ok: bool = True, + action: str, + message: str, + state: Any = None, + error: str | None = None, + kickoff_prompt: str | None = None, + decision: Dict[str, Any] | None = None, +) -> Dict[str, Any]: + body: Dict[str, Any] = { + "ok": bool(ok), + "action": action, + "message": message, + "goal": _state_payload(state), + } + if error: + body["error"] = error + if kickoff_prompt: + body["kickoff_prompt"] = kickoff_prompt + if decision is not None: + body["decision"] = decision + return body + + +def goal_state_snapshot(session_id: str, *, profile_home: str | Path | None = None) -> Any: + """Return a deep copy of current goal state for rollback before kickoff.""" + mgr = _manager(str(session_id or ""), profile_home=profile_home) + if mgr is None: + return None + return copy.deepcopy(getattr(mgr, "state", None)) + + +def restore_goal_state(session_id: str, snapshot: Any, *, profile_home: str | Path | None = None) -> None: + """Restore a prior goal state after kickoff stream creation fails.""" + mgr = _manager(str(session_id or ""), profile_home=profile_home) + if mgr is None: + return + if snapshot is None: + try: + mgr.clear() + except Exception: + pass + return + if isinstance(mgr, _ProfileGoalManager): + mgr._state = snapshot + mgr._save(snapshot) + return + try: + from hermes_cli.goals import save_goal # type: ignore + + save_goal(str(session_id or ""), snapshot) + except Exception as exc: # pragma: no cover - native fallback only + logger.debug("Goal state restore failed for %s: %s", session_id, exc) + + +def goal_command_payload( + session_id: str, + args: str = "", + *, + stream_running: bool = False, + profile_home: str | Path | None = None, +) -> Dict[str, Any]: + """Return the WebUI response payload for a /goal command. + + Mirrors the gateway command semantics: + - /goal or /goal status shows status + - /goal pause pauses + - /goal resume resumes without auto-starting a turn + - /goal clear|stop|done clears + - /goal sets a new active goal and returns kickoff_prompt so the + caller can start the first normal user-role turn immediately. + """ + sid = str(session_id or "").strip() + if not sid: + return _payload(ok=False, action="error", error="missing_session", message="session_id required") + + mgr = _manager(sid, profile_home=profile_home) + if mgr is None: + return _payload(ok=False, action="error", error="unavailable", message="Goals unavailable on this session.") + + text = str(args or "").strip() + lower = text.lower() + + if not text or lower == "status": + return _payload(action="status", message=mgr.status_line(), state=getattr(mgr, "state", None)) + + if lower == "pause": + state = mgr.pause(reason="user-paused") + if state is None: + return _payload(ok=False, action="pause", error="no_goal", message="No goal set.") + return _payload(action="pause", message=f"⏸ Goal paused: {state.goal}", state=state) + + if lower == "resume": + state = mgr.resume() + if state is None: + return _payload(ok=False, action="resume", error="no_goal", message="No goal to resume.") + return _payload( + action="resume", + message=( + f"▶ Goal resumed: {state.goal}\n" + "Send a new message, or type continue, to kick it off." + ), + state=state, + ) + + if lower in ("clear", "stop", "done"): + had = bool(mgr.has_goal()) + mgr.clear() + return _payload( + action="clear", + message="Goal cleared." if had else "No active goal.", + state=getattr(mgr, "state", None), + ) + + if stream_running: + return _payload( + ok=False, + action="set", + error="agent_running", + message=( + "Agent is running — use /goal status / pause / clear mid-run, " + "or /stop before setting a new goal." + ), + ) + + try: + state = mgr.set(text) + except ValueError as exc: + return _payload(ok=False, action="set", error="invalid_goal", message=f"Invalid goal: {exc}") + + return _payload( + action="set", + message=( + f"⊙ Goal set ({state.max_turns}-turn budget): {state.goal}\n" + "I'll keep working until the goal is done, you pause/clear it, or the budget is exhausted.\n" + "Controls: /goal status · /goal pause · /goal resume · /goal clear" + ), + state=state, + kickoff_prompt=state.goal, + ) + + +def evaluate_goal_after_turn( + session_id: str, + last_response: str, + *, + user_initiated: bool = True, + profile_home: str | Path | None = None, +) -> Dict[str, Any]: + """Evaluate a completed turn against the standing goal, if any.""" + sid = str(session_id or "").strip() + if not sid: + return { + "status": None, + "should_continue": False, + "continuation_prompt": None, + "verdict": "inactive", + "reason": "missing session_id", + "message": "", + } + mgr = _manager(sid, profile_home=profile_home) + if mgr is None: + return { + "status": None, + "should_continue": False, + "continuation_prompt": None, + "verdict": "inactive", + "reason": "goals unavailable", + "message": "", + } + try: + if not mgr.is_active(): + return { + "status": getattr(getattr(mgr, "state", None), "status", None), + "should_continue": False, + "continuation_prompt": None, + "verdict": "inactive", + "reason": "no active goal", + "message": "", + } + decision = mgr.evaluate_after_turn(str(last_response or ""), user_initiated=user_initiated) + except Exception as exc: + logger.debug("goal evaluation failed for session=%s: %s", sid, exc) + return { + "status": None, + "should_continue": False, + "continuation_prompt": None, + "verdict": "error", + "reason": f"goal evaluation failed: {type(exc).__name__}", + "message": "", + } + if not isinstance(decision, dict): + decision = {} + decision.setdefault("should_continue", False) + decision.setdefault("continuation_prompt", None) + decision.setdefault("message", "") + return decision diff --git a/api/routes.py b/api/routes.py index 1fc35ad0..6d212d6e 100644 --- a/api/routes.py +++ b/api/routes.py @@ -4287,6 +4287,9 @@ def handle_post(handler, parsed) -> bool: if parsed.path == "/api/background": return _handle_background(handler, body) + if parsed.path == "/api/goal": + return _handle_goal_command(handler, body) + if parsed.path == "/api/chat/start": return _handle_chat_start(handler, body, diag=diag) @@ -6456,6 +6459,197 @@ def _prepare_chat_start_session_for_stream( s.save() +def _start_chat_stream_for_session( + s, + *, + msg: str, + attachments=None, + workspace: str, + model: str, + model_provider=None, + normalized_model: bool = False, + diag=None, +): + """Persist pending state, register an SSE channel, and start an agent turn.""" + attachments = attachments or [] + # Prevent duplicate runs in the same session while a stream is still active. + # This commonly happens after page refresh/reconnect races and can produce + # duplicated clarify cards for what appears to be a single user request. + diag.stage("active_stream_check") if diag else None + current_stream_id = getattr(s, "active_stream_id", None) + if current_stream_id: + diag.stage("active_stream_lock_wait") if diag else None + with STREAMS_LOCK: + current_active = current_stream_id in STREAMS + if current_active: + diag.stage("response_write") if diag else None + return { + "error": "session already has an active stream", + "active_stream_id": current_stream_id, + "_status": 409, + } + # Stale stream id from a previous run; clear and continue. + diag.stage("stale_stream_cleanup") if diag else None + _clear_stale_stream_state(s) + stream_id = uuid.uuid4().hex + session_lock = _get_session_agent_lock(s.session_id) + diag.stage("session_lock_wait") if diag else None + with session_lock: + diag.stage("save_pending_state") if diag else None + _prepare_chat_start_session_for_stream( + s, + msg=msg, + attachments=attachments, + workspace=workspace, + model=model, + model_provider=model_provider, + stream_id=stream_id, + ) + diag.stage("set_last_workspace") if diag else None + set_last_workspace(workspace) + diag.stage("stream_registration") if diag else None + stream = create_stream_channel() + with STREAMS_LOCK: + STREAMS[stream_id] = stream + diag.stage("worker_thread_start") if diag else None + thr = threading.Thread( + target=_run_agent_streaming, + args=(s.session_id, msg, model, workspace, stream_id, attachments), + kwargs={"model_provider": model_provider}, + daemon=True, + ) + thr.start() + response = { + "stream_id": stream_id, + "session_id": s.session_id, + "pending_started_at": s.pending_started_at, + } + if normalized_model: + response["effective_model"] = model + if model_provider: + response["effective_model_provider"] = model_provider + return response + + +def _handle_goal_command(handler, body): + """Handle WebUI /goal command controls and optional kickoff stream.""" + try: + require(body, "session_id") + except ValueError as e: + return bad(handler, str(e)) + try: + s = get_session(body["session_id"]) + except KeyError: + return bad(handler, "Session not found", 404) + + requested_profile = str(body.get("profile") or "").strip() + if requested_profile: + try: + from api.profiles import _PROFILE_ID_RE + + if requested_profile != "default" and not _PROFILE_ID_RE.fullmatch(requested_profile): + return bad(handler, "invalid profile", 400) + except ImportError: + requested_profile = "" + if requested_profile and not _profiles_match(getattr(s, "profile", None), requested_profile): + has_persisted_turns = bool( + getattr(s, "messages", None) + or getattr(s, "context_messages", None) + or getattr(s, "pending_user_message", None) + ) + if not has_persisted_turns: + s.profile = requested_profile + + current_stream_id = getattr(s, "active_stream_id", None) + stream_running = False + if current_stream_id: + with STREAMS_LOCK: + stream_running = current_stream_id in STREAMS + if not stream_running: + _clear_stale_stream_state(s) + + try: + from api.profiles import get_hermes_home_for_profile + + profile_home = get_hermes_home_for_profile(getattr(s, "profile", None)) + except Exception: + profile_home = None + + from api.goals import goal_command_payload, goal_state_snapshot, restore_goal_state + + goal_args = str(body.get("args", "") or body.get("text", "") or "") + goal_action = goal_args.strip().lower() + will_kickoff = bool( + goal_args.strip() + and goal_action not in ("status", "pause", "resume", "clear", "stop", "done") + and not stream_running + ) + workspace = model = model_provider = normalized_model = None + previous_goal_state = None + if will_kickoff: + try: + workspace = str(resolve_trusted_workspace(body.get("workspace") or s.workspace)) + except ValueError as e: + return bad(handler, str(e)) + requested_model = body.get("model") or s.model + requested_provider = ( + body.get("model_provider") + if "model_provider" in body + else getattr(s, "model_provider", None) + ) + model, model_provider, normalized_model = _resolve_compatible_session_model_state( + requested_model, + requested_provider, + ) + previous_goal_state = goal_state_snapshot(s.session_id, profile_home=profile_home) + + payload = goal_command_payload( + s.session_id, + goal_args, + stream_running=stream_running, + profile_home=profile_home, + ) + if not payload.get("ok", True): + status = 409 if payload.get("error") == "agent_running" else 400 + return j(handler, payload, status=status) + + kickoff_prompt = str(payload.get("kickoff_prompt") or "").strip() + if kickoff_prompt: + if workspace is None: + try: + workspace = str(resolve_trusted_workspace(body.get("workspace") or s.workspace)) + except ValueError as e: + return bad(handler, str(e)) + if model is None: + requested_model = body.get("model") or s.model + requested_provider = ( + body.get("model_provider") + if "model_provider" in body + else getattr(s, "model_provider", None) + ) + model, model_provider, normalized_model = _resolve_compatible_session_model_state( + requested_model, + requested_provider, + ) + stream_response = _start_chat_stream_for_session( + s, + msg=kickoff_prompt, + attachments=[], + workspace=workspace, + model=model, + model_provider=model_provider, + normalized_model=normalized_model, + ) + status = int(stream_response.pop("_status", 200) or 200) + payload.update(stream_response) + if status >= 400: + restore_goal_state(s.session_id, previous_goal_state, profile_home=profile_home) + payload["ok"] = False + return j(handler, payload, status=status) + + return j(handler, payload) + + def _handle_chat_start(handler, body, diag=None): try: diag.stage("validate_session_id") if diag else None @@ -6512,72 +6706,25 @@ def _handle_chat_start(handler, body, diag=None): requested_model, requested_provider, ) - # Prevent duplicate runs in the same session while a stream is still active. - # This commonly happens after page refresh/reconnect races and can produce - # duplicated clarify cards for what appears to be a single user request. - diag.stage("active_stream_check") if diag else None - current_stream_id = getattr(s, "active_stream_id", None) - if current_stream_id: - diag.stage("active_stream_lock_wait") if diag else None - with STREAMS_LOCK: - current_active = current_stream_id in STREAMS - if current_active: - diag.stage("response_write") if diag else None - return j( - handler, - { - "error": "session already has an active stream", - "active_stream_id": current_stream_id, - }, - status=409, - ) - # Stale stream id from a previous run; clear and continue. - diag.stage("stale_stream_cleanup") if diag else None - _clear_stale_stream_state(s) - stream_id = uuid.uuid4().hex - session_lock = _get_session_agent_lock(s.session_id) - diag.stage("session_lock_wait") if diag else None - with session_lock: - diag.stage("save_pending_state") if diag else None - _prepare_chat_start_session_for_stream( - s, - msg=msg, - attachments=attachments, - workspace=workspace, - model=model, - model_provider=model_provider, - stream_id=stream_id, - ) - diag.stage("set_last_workspace") if diag else None - set_last_workspace(workspace) - diag.stage("stream_registration") if diag else None - stream = create_stream_channel() - with STREAMS_LOCK: - STREAMS[stream_id] = stream - diag.stage("worker_thread_start") if diag else None - thr = threading.Thread( - target=_run_agent_streaming, - args=(s.session_id, msg, model, workspace, stream_id, attachments), - kwargs={"model_provider": model_provider}, - daemon=True, + response = _start_chat_stream_for_session( + s, + msg=msg, + attachments=attachments, + workspace=workspace, + model=model, + model_provider=model_provider, + normalized_model=normalized_model, + diag=diag, ) - thr.start() - response = { - "stream_id": stream_id, - "session_id": s.session_id, - "pending_started_at": s.pending_started_at, - } - if normalized_model: - response["effective_model"] = model - if model_provider: - response["effective_model_provider"] = model_provider + status = int(response.pop("_status", 200) or 200) diag.stage("response_write") if diag else None - return j(handler, response) + return j(handler, response, status=status) finally: if diag: diag.finish() + def _normalize_chat_attachments(raw_attachments): """Normalize attachment payloads from the browser. diff --git a/api/streaming.py b/api/streaming.py index c71fe074..50b0f5a2 100644 --- a/api/streaming.py +++ b/api/streaming.py @@ -3227,6 +3227,55 @@ def _run_agent_streaming( }) except Exception: logger.debug("Failed to drain pending steer for session %s", session_id) + # /goal parity: after a successful assistant turn, run the Hermes + # GoalManager judge before terminal done/stream_end events. The + # frontend surfaces the status line and queues continuation_prompt as + # a normal next user message so /queue and user input keep priority. + try: + from api.goals import evaluate_goal_after_turn + + _last_goal_response = '' + for _goal_msg in reversed(s.messages or []): + if not isinstance(_goal_msg, dict) or _goal_msg.get('role') != 'assistant': + continue + _goal_content = _goal_msg.get('content', '') + if isinstance(_goal_content, list): + _goal_parts = [] + for _goal_part in _goal_content: + if isinstance(_goal_part, dict): + _goal_text = _goal_part.get('text') or _goal_part.get('content') + if _goal_text: + _goal_parts.append(str(_goal_text)) + _last_goal_response = '\n'.join(_goal_parts) + else: + _last_goal_response = str(_goal_content or '') + break + _goal_decision = evaluate_goal_after_turn( + session_id, + _last_goal_response, + user_initiated=True, + profile_home=_profile_home, + ) + decision = _goal_decision or {} + _goal_message = str(decision.get('message') or '').strip() + if _goal_message: + put('goal', { + 'session_id': session_id, + 'message': _goal_message, + 'decision': decision, + }) + if decision.get('should_continue'): + continuation_prompt = str(decision.get('continuation_prompt') or '').strip() + if continuation_prompt: + put('goal_continue', { + 'session_id': session_id, + 'continuation_prompt': continuation_prompt, + 'text': continuation_prompt, + 'message': _goal_message, + 'decision': decision, + }) + except Exception as _goal_exc: + logger.debug("Goal continuation hook failed for session %s: %s", session_id, _goal_exc) raw_session = s.compact() | {'messages': s.messages, 'tool_calls': tool_calls} put('done', {'session': redact_session_data(raw_session), 'usage': usage}) # Emit one last metering packet for the live message-header TPS label. diff --git a/docs/pr-media/1808/goal-autocomplete.png b/docs/pr-media/1808/goal-autocomplete.png new file mode 100644 index 0000000000000000000000000000000000000000..e07e32a55b6b4e4fd8ccc23c08ac746957adf067 GIT binary patch literal 53763 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

#Zr^US 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 literal 0 HcmV?d00001 diff --git a/docs/pr-media/1808/goal-status-command.png b/docs/pr-media/1808/goal-status-command.png new file mode 100644 index 0000000000000000000000000000000000000000..26eef14b5fb162191d4b56cec8868d3cd1d0ba6a GIT binary patch literal 43204 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', @@ -1204,6 +1205,7 @@ const LOCALES = { theme_set: 'テーマ: ', no_active_session: 'アクティブなセッションがありません', cmd_queue: '次のターン用にメッセージをキュー', + cmd_goal: '永続ゴールを設定または確認', cmd_interrupt: '現在のターンをキャンセルして新規メッセージを送信', cmd_steer: 'エージェントを中断せずにターン中に修正を注入', cmd_queue_no_msg: '使い方: /queue <メッセージ>', @@ -2186,6 +2188,7 @@ const LOCALES = { theme_set: 'Тема: ', no_active_session: 'Нет активной сессии', cmd_queue: 'Поставить сообщение в очередь на следующий оборот', + cmd_goal: 'Задать или проверить постоянную цель', cmd_interrupt: 'Прервать текущий оборот и отправить новое сообщение', cmd_steer: 'Направить агента исправлением (переходит к прерыванию)', cmd_queue_no_msg: 'Использование: /queue <сообщение>', @@ -3173,6 +3176,7 @@ const LOCALES = { theme_set: 'Tema: ', no_active_session: 'No hay ninguna sesión activa', cmd_queue: 'Poner mensaje en cola para el siguiente turno', + cmd_goal: 'Definir o consultar un objetivo persistente', cmd_interrupt: 'Cancelar turno actual y enviar nuevo mensaje', cmd_steer: 'Inyectar una corrección a mitad del turno sin interrumpir al agente', cmd_queue_no_msg: 'Uso: /queue ', @@ -4109,6 +4113,7 @@ const LOCALES = { model_scope_advisory: 'Gilt für diesen Chat ab Ihrer nächsten Nachricht.', model_scope_toast: 'Gilt für diesen Chat ab Ihrer nächsten Nachricht.', cmd_queue: 'Nachricht f\u00fcr den n\u00e4chsten Durchgang einreihen', + cmd_goal: 'Ein dauerhaftes Ziel setzen oder prüfen', cmd_interrupt: 'Aktuellen Durchgang abbrechen und neue Nachricht senden', cmd_steer: 'Korrektursignal einf\u00fcgen ohne Unterbrechung', cmd_queue_no_msg: 'Verwendung: /queue ', @@ -5082,6 +5087,7 @@ const LOCALES = { theme_set: '\u4e3b\u9898\uff1a', no_active_session: '\u5f53\u524d\u6ca1\u6709\u6d3b\u52a8\u4f1a\u8bdd', cmd_queue: '\u5c06\u6d88\u606f\u52a0\u5165\u4e0b\u4e00\u8f6e\u7684\u961f\u5217', + cmd_goal: '设置或查看持久目标', cmd_interrupt: '\u53d6\u6d88\u5f53\u524d\u56de\u5408\u5e76\u53d1\u9001\u65b0\u6d88\u606f', cmd_steer: '\u7528\u7ea0\u6b63\u4fe1\u606f\u5f15\u5bfc\u4ee3\u7406\uff08\u56de\u9000\u4e3a\u4e2d\u65ad\uff09', cmd_queue_no_msg: '\u7528\u6cd5\uff1a/queue <\u6d88\u606f>', @@ -6459,6 +6465,7 @@ const LOCALES = { never: '\u5f9e\u4e0d', no_active_session: '\u7121\u6d3b\u8e8d\u6703\u8a71', cmd_queue: '\u5c07\u8a0a\u606f\u52a0\u5165\u4e0b\u4e00\u8f2a\u7684\u4f47\u5217', + cmd_goal: '設定或查看持久目標', cmd_interrupt: '\u53d6\u6d88\u7576\u524d\u56de\u5408\u4e26\u767c\u9001\u65b0\u8a0a\u606f', cmd_steer: '\u5728\u56de\u5408\u9032\u884c\u4e2d\u6ce8\u5165\u7d3a\u6b63\uff0c\u4e0d\u4e2d\u65b7\u4ee3\u7406', cmd_queue_no_msg: '\u7528\u6cd5\uff1a/queue <\u8a0a\u606f>', @@ -6972,6 +6979,7 @@ const LOCALES = { theme_set: 'Tema: ', no_active_session: 'Nenhuma sessão ativa', cmd_queue: 'Enfileirar mensagem para o próximo turno', + cmd_goal: 'Definir ou consultar uma meta persistente', cmd_interrupt: 'Cancelar turno atual e enviar nova mensagem', cmd_steer: 'Injetar correção no meio do turno sem interromper', cmd_queue_no_msg: 'Uso: /queue ', @@ -7869,6 +7877,7 @@ const LOCALES = { theme_set: 'Theme: ', no_active_session: '활성 세션 없음', cmd_queue: 'Queue a message for the next turn', + cmd_goal: '지속 목표를 설정하거나 확인', cmd_interrupt: 'Cancel current turn and send a new message', cmd_steer: 'Inject a mid-turn correction without interrupting the agent', cmd_queue_no_msg: 'Usage: /queue ', diff --git a/static/messages.js b/static/messages.js index 95ca37d5..d1134963 100644 --- a/static/messages.js +++ b/static/messages.js @@ -63,7 +63,7 @@ async function send(){ // cmdSteer / cmdInterrupt say "No active task to stop." if(text.startsWith('/')){ const _pc=typeof parseCommand==='function'&&parseCommand(text); - if(_pc&&['steer','interrupt','queue','terminal'].includes(_pc.name)){ + if(_pc&&['steer','interrupt','queue','terminal','goal'].includes(_pc.name)){ const _bc=COMMANDS.find(c=>c.name===_pc.name); if(_bc){ $('msg').value='';autoResize(); @@ -336,6 +336,8 @@ function attachLiveStream(activeSid, streamId, uploaded=[], options={}){ let assistantText=''; let reasoningText=''; let liveReasoningText=''; + let _latestGoalStatus=null; + let _pendingGoalContinuation=null; let assistantRow=null; let assistantBody=null; let segmentStart=0; // char offset in assistantText where current segment begins @@ -879,6 +881,35 @@ function attachLiveStream(activeSid, streamId, uploaded=[], options={}){ }catch(_){} }); + source.addEventListener('goal',e=>{ + try{ + const d=JSON.parse(e.data||'{}'); + if((d.session_id||activeSid)!==activeSid) return; + const msg=String(d.message||'').trim(); + if(!msg)return; + _latestGoalStatus={message:msg,decision:d.decision||null}; + setComposerStatus(msg); + showToast(msg.split('\n')[0],2600); + }catch(_){} + }); + + source.addEventListener('goal_continue',e=>{ + try{ + const d=JSON.parse(e.data||'{}'); + const sid=d.session_id||activeSid; + const continuation_prompt=String(d.continuation_prompt||d.text||'').trim(); + if(!continuation_prompt||sid!==activeSid)return; + _pendingGoalContinuation={ + sid, + text:continuation_prompt, + model:S.session&&S.session.model||'', + model_provider:S.session&&S.session.model_provider||null, + profile:S.activeProfile||'default', + }; + showToast('Continuing toward goal…',2200); + }catch(_){} + }); + source.addEventListener('done',e=>{ _terminalStateReached=true; if(_persistTimer){clearTimeout(_persistTimer);_persistTimer=null;} @@ -992,6 +1023,15 @@ function attachLiveStream(activeSid, streamId, uploaded=[], options={}){ const lastUser=[...S.messages].reverse().find(m=>m.role==='user'); if(lastUser)lastUser.attachments=uploaded; } + if(_latestGoalStatus&&_latestGoalStatus.message){ + S.messages.push({ + role:'assistant', + content:String(_latestGoalStatus.message), + _ts:Date.now()/1000, + _goalStatus:true, + _transient:true, + }); + } clearLiveToolCards(); S.busy=false; // No-reply guard (#373): if agent returned nothing, show inline error @@ -1003,6 +1043,18 @@ function attachLiveStream(activeSid, streamId, uploaded=[], options={}){ // TTS auto-read: speak the last assistant response if enabled (#499) if(typeof autoReadLastAssistant==='function') setTimeout(()=>autoReadLastAssistant(), 300); } + if(isActiveSession&&_pendingGoalContinuation&&typeof queueSessionMessage==='function'){ + const _goalNext=_pendingGoalContinuation; + _pendingGoalContinuation=null; + queueSessionMessage(_goalNext.sid,{ + text:_goalNext.text, + files:[], + model:_goalNext.model, + model_provider:_goalNext.model_provider, + profile:_goalNext.profile, + }); + if(typeof updateQueueBadge==='function')updateQueueBadge(_goalNext.sid); + } if(isActiveSession) _queueDrainSid=activeSid; renderSessionList(); _setActivePaneIdleIfOwner(); diff --git a/tests/test_goal_command_webui.py b/tests/test_goal_command_webui.py new file mode 100644 index 00000000..45ffd55d --- /dev/null +++ b/tests/test_goal_command_webui.py @@ -0,0 +1,234 @@ +"""Regression tests for first-class WebUI /goal command parity.""" + +import io +import json +from pathlib import Path +from types import SimpleNamespace + +import pytest + +REPO_ROOT = Path(__file__).resolve().parents[1] +COMMANDS_JS = (REPO_ROOT / "static" / "commands.js").read_text(encoding="utf-8") +MESSAGES_JS = (REPO_ROOT / "static" / "messages.js").read_text(encoding="utf-8") +ROUTES_PY = (REPO_ROOT / "api" / "routes.py").read_text(encoding="utf-8") +STREAMING_PY = (REPO_ROOT / "api" / "streaming.py").read_text(encoding="utf-8") + + +def test_goal_command_payload_matches_gateway_controls(monkeypatch): + """The backend command helper mirrors gateway /goal status/pause/resume/clear/set.""" + from api import goals as webui_goals + + calls = [] + + class FakeState: + goal = "ship the feature" + status = "active" + turns_used = 0 + max_turns = 20 + last_verdict = None + last_reason = None + paused_reason = None + + class FakeGoalManager: + def __init__(self, session_id, default_max_turns=20): + calls.append(("init", session_id, default_max_turns)) + self.state = None + + def status_line(self): + return "No active goal. Set one with /goal ." + + def pause(self, reason="user-paused"): + calls.append(("pause", reason)) + return FakeState() + + def resume(self, reset_budget=True): + calls.append(("resume", reset_budget)) + return FakeState() + + def has_goal(self): + return True + + def clear(self): + calls.append(("clear",)) + + def set(self, goal): + calls.append(("set", goal)) + state = FakeState() + state.goal = goal + self.state = state + return state + + monkeypatch.setattr(webui_goals, "GoalManager", FakeGoalManager) + monkeypatch.setattr(webui_goals, "_default_max_turns", lambda: 20) + + status = webui_goals.goal_command_payload("sid-123", "status") + pause = webui_goals.goal_command_payload("sid-123", "pause") + resume = webui_goals.goal_command_payload("sid-123", "resume") + clear = webui_goals.goal_command_payload("sid-123", "clear") + set_goal = webui_goals.goal_command_payload("sid-123", "ship the feature") + + assert status["message"] == "No active goal. Set one with /goal ." + assert pause["message"] == "⏸ Goal paused: ship the feature" + assert resume["message"].startswith("▶ Goal resumed: ship the feature") + assert clear["message"] == "Goal cleared." + assert set_goal["action"] == "set" + assert set_goal["kickoff_prompt"] == "ship the feature" + assert "⊙ Goal set (20-turn budget): ship the feature" in set_goal["message"] + assert ("set", "ship the feature") in calls + + +def test_goal_command_payload_rejects_new_goal_while_stream_running(monkeypatch): + """Status/control subcommands are safe mid-run; replacing the goal is not.""" + from api import goals as webui_goals + + class FakeGoalManager: + def __init__(self, session_id, default_max_turns=20): + pass + + def status_line(self): + return "⊙ Goal (active, 1/20 turns): existing" + + monkeypatch.setattr(webui_goals, "GoalManager", FakeGoalManager) + monkeypatch.setattr(webui_goals, "_default_max_turns", lambda: 20) + + status = webui_goals.goal_command_payload("sid-123", "status", stream_running=True) + rejected = webui_goals.goal_command_payload("sid-123", "replace it", stream_running=True) + + assert status["ok"] is True + assert rejected["ok"] is False + assert rejected["error"] == "agent_running" + assert "use /goal status / pause / clear mid-run" in rejected["message"] + + +def test_goal_continuation_decision_emits_status_and_normal_user_prompt(monkeypatch): + """Post-turn hook returns the visible status event plus a normal continuation prompt.""" + from api import goals as webui_goals + + class FakeGoalManager: + def __init__(self, session_id, default_max_turns=20): + self.session_id = session_id + + def is_active(self): + return True + + def evaluate_after_turn(self, last_response, user_initiated=True): + return { + "status": "active", + "should_continue": True, + "continuation_prompt": "[Continuing toward your standing goal]\nGoal: ship it", + "verdict": "continue", + "reason": "one step remains", + "message": "↻ Continuing toward goal (1/20): one step remains", + } + + monkeypatch.setattr(webui_goals, "GoalManager", FakeGoalManager) + monkeypatch.setattr(webui_goals, "_default_max_turns", lambda: 20) + + decision = webui_goals.evaluate_goal_after_turn("sid-123", "not done yet", user_initiated=False) + + assert decision["message"].startswith("↻ Continuing toward goal") + assert decision["should_continue"] is True + assert decision["continuation_prompt"].startswith("[Continuing toward your standing goal]") + + +def test_goal_endpoint_sets_goal_and_starts_kickoff_stream(monkeypatch, tmp_path): + """POST /api/goal uses GoalManager state and launches the first goal turn.""" + from api import goals as webui_goals + from api import routes + + class FakeState: + goal = "ship the feature" + status = "active" + turns_used = 0 + max_turns = 20 + last_verdict = None + last_reason = None + paused_reason = None + + class FakeGoalManager: + def __init__(self, session_id, default_max_turns=20): + self.session_id = session_id + self.default_max_turns = default_max_turns + + def set(self, goal): + state = FakeState() + state.goal = goal + return state + + class FakeSession: + session_id = "sid-goal-route" + profile = "default" + workspace = str(tmp_path) + model = "gpt-5.5" + model_provider = "openai-codex" + messages = [] + context_messages = [] + pending_user_message = None + active_stream_id = None + + monkeypatch.setattr(webui_goals, "GoalManager", FakeGoalManager) + monkeypatch.setattr(routes, "get_session", lambda sid: FakeSession()) + monkeypatch.setattr(routes, "resolve_trusted_workspace", lambda workspace: tmp_path) + monkeypatch.setattr( + routes, + "_resolve_compatible_session_model_state", + lambda model, provider: (model, provider, False), + ) + started = [] + + def fake_start(session, **kwargs): + started.append(kwargs) + return {"stream_id": "goal-stream", "session_id": session.session_id, "pending_started_at": 123.0} + + monkeypatch.setattr(routes, "_start_chat_stream_for_session", fake_start) + monkeypatch.setattr(routes, "j", lambda handler, payload, status=200, **kwargs: {"status": status, "payload": payload}) + + result = routes._handle_goal_command( + object(), + { + "session_id": "sid-goal-route", + "args": "ship the feature", + "workspace": str(tmp_path), + "model": "gpt-5.5", + "model_provider": "openai-codex", + }, + ) + + assert result["status"] == 200 + assert result["payload"]["action"] == "set" + assert result["payload"]["stream_id"] == "goal-stream" + assert started and started[0]["msg"] == "ship the feature" + assert started[0]["model_provider"] == "openai-codex" + + +def test_routes_register_goal_endpoint_and_kickoff_stream(): + assert 'if parsed.path == "/api/goal"' in ROUTES_PY + assert "return _handle_goal_command(handler, body)" in ROUTES_PY + assert "goal_command_payload" in ROUTES_PY + assert "kickoff_prompt" in ROUTES_PY + assert "_start_chat_stream_for_session" in ROUTES_PY + + +def test_streaming_post_turn_goal_hook_surfaces_and_continues(): + assert "evaluate_goal_after_turn" in STREAMING_PY + assert "put('goal'" in STREAMING_PY + assert "decision.get('should_continue')" in STREAMING_PY + assert "continuation_prompt" in STREAMING_PY + assert "put('goal_continue'" in STREAMING_PY + goal_idx = STREAMING_PY.find("evaluate_goal_after_turn") + done_idx = STREAMING_PY.find("put('done'", goal_idx) + assert goal_idx != -1 and done_idx != -1 + assert goal_idx < done_idx, "goal status should be emitted before the terminal done payload" + + +def test_frontend_has_goal_slash_command_and_status_event_handler(): + assert "{name:'goal'" in COMMANDS_JS + assert "subArgs:['status','pause','resume','clear']" in COMMANDS_JS + assert "function cmdGoal" in COMMANDS_JS + assert "api('/api/goal'" in COMMANDS_JS + assert "stream_id" in COMMANDS_JS + assert "goal'" in MESSAGES_JS + assert "source.addEventListener('goal'" in MESSAGES_JS + assert "source.addEventListener('goal_continue'" in MESSAGES_JS + assert "['steer','interrupt','queue','terminal','goal'].includes(_pc.name)" in MESSAGES_JS + assert "queueSessionMessage" in MESSAGES_JS From 8e513b596baa68238946b1b5849b3f76ef9db8b2 Mon Sep 17 00:00:00 2001 From: Michael Lam Date: Fri, 8 May 2026 08:20:24 -0700 Subject: [PATCH 2/2] fix: surface goal evaluation status --- api/goals.py | 19 ++++++ api/streaming.py | 55 ++++++++++-------- docs/pr-media/1866/goal-evaluating-status.png | Bin 0 -> 58469 bytes static/messages.js | 8 ++- tests/test_goal_command_webui.py | 38 ++++++++++++ 5 files changed, 96 insertions(+), 24 deletions(-) create mode 100644 docs/pr-media/1866/goal-evaluating-status.png diff --git a/api/goals.py b/api/goals.py index 4475b10d..32d0262d 100644 --- a/api/goals.py +++ b/api/goals.py @@ -413,6 +413,25 @@ def goal_command_payload( ) +def has_active_goal( + session_id: str, + *, + profile_home: str | Path | None = None, +) -> bool: + """Return True when the session has an active standing goal to evaluate.""" + sid = str(session_id or "").strip() + if not sid: + return False + mgr = _manager(sid, profile_home=profile_home) + if mgr is None: + return False + try: + return bool(mgr.is_active()) + except Exception as exc: + logger.debug("goal active-state check failed for session=%s: %s", sid, exc) + return False + + def evaluate_goal_after_turn( session_id: str, last_response: str, diff --git a/api/streaming.py b/api/streaming.py index 50b0f5a2..d9daeb33 100644 --- a/api/streaming.py +++ b/api/streaming.py @@ -3232,35 +3232,44 @@ def _run_agent_streaming( # frontend surfaces the status line and queues continuation_prompt as # a normal next user message so /queue and user input keep priority. try: - from api.goals import evaluate_goal_after_turn + from api.goals import evaluate_goal_after_turn, has_active_goal - _last_goal_response = '' - for _goal_msg in reversed(s.messages or []): - if not isinstance(_goal_msg, dict) or _goal_msg.get('role') != 'assistant': - continue - _goal_content = _goal_msg.get('content', '') - if isinstance(_goal_content, list): - _goal_parts = [] - for _goal_part in _goal_content: - if isinstance(_goal_part, dict): - _goal_text = _goal_part.get('text') or _goal_part.get('content') - if _goal_text: - _goal_parts.append(str(_goal_text)) - _last_goal_response = '\n'.join(_goal_parts) - else: - _last_goal_response = str(_goal_content or '') - break - _goal_decision = evaluate_goal_after_turn( - session_id, - _last_goal_response, - user_initiated=True, - profile_home=_profile_home, - ) + if not has_active_goal(session_id, profile_home=_profile_home): + _goal_decision = {} + else: + _last_goal_response = '' + for _goal_msg in reversed(s.messages or []): + if not isinstance(_goal_msg, dict) or _goal_msg.get('role') != 'assistant': + continue + _goal_content = _goal_msg.get('content', '') + if isinstance(_goal_content, list): + _goal_parts = [] + for _goal_part in _goal_content: + if isinstance(_goal_part, dict): + _goal_text = _goal_part.get('text') or _goal_part.get('content') + if _goal_text: + _goal_parts.append(str(_goal_text)) + _last_goal_response = '\n'.join(_goal_parts) + else: + _last_goal_response = str(_goal_content or '') + break + put('goal', { + 'session_id': session_id, + 'state': 'evaluating', + 'message': 'Evaluating goal progress…', + }) + _goal_decision = evaluate_goal_after_turn( + session_id, + _last_goal_response, + user_initiated=True, + profile_home=_profile_home, + ) decision = _goal_decision or {} _goal_message = str(decision.get('message') or '').strip() if _goal_message: put('goal', { 'session_id': session_id, + 'state': 'continuing' if decision.get('should_continue') else 'idle', 'message': _goal_message, 'decision': decision, }) diff --git a/docs/pr-media/1866/goal-evaluating-status.png b/docs/pr-media/1866/goal-evaluating-status.png new file mode 100644 index 0000000000000000000000000000000000000000..a411a43a344ea2050e4f6047ddd44365f4e73c90 GIT binary patch literal 58469 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 z zRgbvPmr=2O@fBOI*@G7ZBy45i>c-7x&WFd%j~eTJXl-7;AV~x!TF!pc^f26+kJfk) zzBlEw7n0yr;$R@#M|*hcp)>e8lP0K;Jn3hU-cYA>I>aHm|i+ZCPV% zzx-I>qp3Lg)NJOIJyWFVMCH zkIcdX^Fa0+`jlz&gNOdbr)H(AIZ8trNFICc2q%3X*R<>T8ZqM6+$N0&s2tC;p>K{m zjcOX|)^~oT5^hxA7Y`?`nV;|5cwx0P>irOl&A|{Zv$r1MI7VZ+fk1=!34niY2sb|e z7I!LMo}_;k7#K$To_>3RD?_`_A!RCEGCy<~{U9TfFg+}4MS%(ssZsSX7tJM1?<=}m zco*DPjH8clZG$$HwOM+qR#jIg3SM}j*{gJPpn-uEUUCHkgX-h0DZRSmo%In!fodxn z+f9C6v3Yr3xs*q<$z|MI$ULD)dREips9qFoV}N>56!HWik7jAQTA^_h4)s@L2Er%0 z?RhE)dH`Um$_6J2f^b`L_Wfi%d#Ph+IM5Q9K^xR)tLLgb$T|4d;v@F1YuX~>XDR5MMATzH5;DR?Jh!RWY#8SO;D`Rp-`f;fAMit?4$(MVH@_xZr#S_%=t^vhd+ z5mBHX#O0P@rTr>gPsWx*l6wZ~3wkc7s4`D%tg= z=6!}YSQa{=SxbfL6O)rN&r@w@3&$urxb5g|tP3IY|A}yX&(%e%FDMh@Jlj?F!l2~& zj;1=$Llva{6mUyB?5hOw+c$d*-}(Nu#Um0Pwtb$sZYYmE$8VYr8sz6ilheIClP4Oy zc8)e6=o|om@k%eMPiRBpKg$pt4NgB5O_N9Yx5I8Iz39}xfNtB_bd9WW+vBa#A{8%; z?Fn{+r4AAEzPA5lL>Vf%jTPUO3cunt@4Yx8Ib94#@O$#mzg&3!U+b@&+(*NTL_|bF zLVd$Rui0;*p(V#+8%n!`!&3 zU1@puUo9X~-2yl*a|zFfIZYRr?aQ+vL4ipE!o00b>l)qQ)?f$Z-iLp-fE5<1>6w{W zCcW-qf&ZBLfW_5Sc~V(=o2?zhr|im=UOglFm^$!|oYG}?T#1R9S(IeNI|0HVr#rX8 zA01G@;c|c0nc{+jDM*|&oKE6cJ4v=~;MN8N36?B*?_%U*Z z{Xu~J-2P&hrB5R~bpLRf)1?86NaaJ?AR~O+OaD-WbDO){=4Be*V8^fPfZ-q3fVp?T z#Q}^|Ao|TfUGjPEwfeYhPov>Boa_{RZ>y8?TbI zCepK67?B;bFRm3Ns# zCp_5x_BgrkOD-gwQJj;4PbKzSyi)FqaM>B^@`+SJl1G921caboN)aVb6a6KB7*jZG zms=F;ykWQ)Ny$EMSZ>|l|4Q;PBOM)TA-Lqo9hxWGm#imz`C&ha_c~{61HD(g^`c!^ z2@R)Fq)}P{vDZo|gvSougM;vY#bIO9gsXJZLGs6E@FnqFl{tKWAs#9oM35&xL3^Za z_cv{fmkQ(K6~Cs=iueB24A$1vgeUQuPX91e^KJ_v=^7SwtkFe}h7;}$U_nwT)uj4j z`8q2A&NpRjxMs7x4*Y`qga=t+pkwtQ+#R^Q^6F=H2QWBr~U!QYm`reJw_ z*umZ=-RUA;{P4I@Pnhx1vxW&CEI(^m@!XQ!gx0zLic7#FFL7Z%yH)pI?vqx`a@a0p z_o(p6*lM)DbH_%13jLEH8fHtaTWMmj{F)Yp8gN4GLig%;$IHc4T&!BzoiHJ@gIPcx zWK)~i)K*(KSx=-3cJb1sD3s#hl_KL>FTA&KA{pv*7}@oRO*qek=3b>e zMqJl;n9k@uEUToFymg-6h=+sOD1=|3kfNmumYEOfm>K!zbnU*A9tWiW0&Cb)*1Bzd z_Etmrm;B`uXMX4tO@qil)`M{(P(VS)~wUwTGt+9oZ6m|HS~FccHW zpBHAAv{>y=+J#K5( zFUCQ!jf*YSop#up>2#hvIcb26<)}@FSA$pKyYg+YV=2qwUy!B|?p|&NJ6X|J+n`+JbJKI{Hew_G(-2XbmI3$HQQMj#ZzB8oVkKxb}DHNT*a+Tezl3f?dOs)#$%9<%R%dAQZ_1X?y9R>UgWfOm9>7 zD^t8aZ@jhCVH+zrND6tUFWyFXu5rn{L6_sy#n9NL{WE`^@i7B9y!3?NDj^JXVx46v z`vanV%uoF!p^Rm+0vC_lCUIcxxU`~;Grtpth_l2wI+?!+Poh*h6P}Fis5CxLJl3f6 z7b*vIG6F6d2Q8S>I9%b&&HMy%FL(t!L`|_Mjv0P#=Am&V751H}wUhkfTdMl+H`G+; zI>+WbVhV;Sdf`6dor|>`D*5c?0m%;ZQa>lEIN_f8i zj38l0*mT}bmJey8&zZT>@smymd3&h3=&{)qaZdf`#wRHUL35Y&B8ztrlM)Ybe6-xJ zL7%t`x2BcIl(AI6*r1bi=uo$atckTm_RqAFDPO3m6p{D2*B3c~F**DH; z1Zo(ZsS($iu}sBuXR+S1{eB~16~B_6sr%rIv~DTPjK4yk!{S%CpdvQps<9eI zTU#4AoyK#$*CFAvM0m++o`gR%W@j({CJzcbnG2jPlXxXn3qEtQ3$tf`vRycS3Nq;H zR5{7N@Zs`MuUxC9cWz5A!i5ZWvVVpZB)KXnFPrRbXtWMsy}3BLw9v|Tn#7T-Cs4V$ z6kAHam2$D628zs9iO&rJJ^}z}6w)(5VA3-x|9^lX$s}?OjBDgB_2?JsdTFkq&aGYW zN&0LXXZMgMN|$BdxZ@$c!FUS53*;qGP2-DEanYB)HAN|T)9xw7{f{CryEyJHK@0iQ zLC|cOX-O#7GXf$2$)VTjug|Pc9tnSpwsQChT_07G0X6?o!yE>?c(1 zb+_K`>QO->Np-FaYeMrbCGN#*uzWhm31^sTBd3S(T1j9suS1eXNexzp11&D1!gvej zn{zZssb9C>NVc%{vD7N|*$I#1eVWZgPO*+AYO4EAB;1xZWqs3x8)BK&C#^xP-ZhDk zqkS*O!AV)tu1#6MqvY=Zfni>=iQF|Qyr6uhKp42+VxY$DRr~$=suxXOrw&7#@elVV z;)MNv=$=|izKsJfQxG+Mix&kBrS0^_K8`RWpWQ{+rK{=D6eCKFrasR)!HfM6;wx_9 znhhrX(7SnWC+iw%uNIr&)y{vgK)DikM`!H&Z&iAFi!_uz<%l$s8aRgJJHg>_V1ak!3JIKLQBHjkstG$o1u4SPK!O^nMMm=P8 z%X`~tZtl5K?`Vx-qA_GB0(H=^KE36i>dyQeT4p|yS+j?^41Xa*H^D!HP?Uqd5Lxui z%BzzEjQd0gV)f~rw2r32qTU?iNo}hogfa#L%QN@OJ&m7j!MstY+d@;wM|aZ1Gh_5a z8lS5Sio1E%g;0EUz?J^uw4Aj%u6tjez&~7U{N<5*?4L7(#sW`%*sS&eiP5F)yR%!qlD<0*f5n%nvt+zE@lqK$CE! zsFNZFngnZWcH(6DF1}^X(0rM>150X-5xT8Rf3S-@pP|i_o<6#Yw%P2Rp)7IG7w-8H znEMkKwG|l$t28VRfd+V@r(icRu*AKH7vHB(@Vh6-pwTvcxaS4gOCv~=LtN4B7KPCC zup+5IdgE*Jjp*-3=J5^=Ci8c8Z0DP4FzT#hI;|LYmp%p5`@X^0Wwz6-v|z4Fiv>(f z7HyDUcLCw1Zyel3#><)=5<0kj_Ef5YvL1=ClCLk{1U>drD{%KiHQpO~N)B zQd>@@OW0`LWwf}Nju+rGWuT8UfLrr=75dh}^GW&c<`_MvXS3*z!c^OXGdn~!COPY{ zAlRxSpR>)1Zy#2dVW$}M@RU+4+XwbKe)eiDmwAD3gpf^s_KZ`1Gt7i|v147(*N5s? zFH?+b=#$v|bRuTVaPz8n>t9(`fY65H1|Mr@!EQ}4S=>B@j5o@E5Z0QbdaJZFvg-xG zI7&;tj~Z&P5mhFMYsQw#T)cZir6wP~c^q=7;P$gX9GlHtG`gy7Ly~`#8gqlaU-xW3 zk(V2buZ{Lh zT;lea38Znn-YB?QErGxtX*@5 z6zgrwHKQfTz7g)H92tCZq&C{;E3ow#P3Z)sM?!g+sD!NAvuBm|h?SY4vt$&Y`UdnV zHHpV~u%Zd-nZ)30kSy2Xo$eUEBb_Wi2Fi5LEJkI@HIH(GyrNlGGc3XJ? z`<#Mz3xF3j?HNlkb&?UD0#$Q_V7o_zt=2@mBxFl84U9*4bP7`B$J<1c6YYZBv~LRo z@)Eh2Ro-x8OBWy^mWyu|_%EcPP{9TvkIM}Y41j6?1iPTtTs|ojxg~0bTrW_L zVpH`E@%YqttV~U%SXiH&{!Rca!kVO|dOIR20rS!~?KR~~GcjllEKPYaJcsCFdMhhL zp@^}xLe%?3`HyN4??!d@$^9QOum0Hra-}*mTZCpsLpKLaB{&zY2==GK`3IM?mLnrJ z>&3Tcl_RXGsgA?W=95K`Z05K1=i05MwVc*b&h~N?Yr98=lV9wX8ya3~iR9B^>mS*Ei&KF%u$QOd;4%B?k5<+Oa6KaG{wb&i-p z{0!||nysTize))I9bpGJydM{Z(%q8xe=Uz!P6gprFP_{Q6fJPz$mAaiE;9y8tsgHD z3?&eBhNpBwxqeJ?=3d3CJ3itzPEe}6fTHYL!!pT(8ev$`#OWq}dU{D)r{W@(ni=l7 z7w;8mBd{DpqNJ!bYDQJM(-du!96rM$1=4|VBqf*@Ne6%NS0YAe)u zn3|X3wKI2JXL{_N_tf-b<+(qHQVnlNqwCr4fIL^wp;r%1cIdZ`*Ec~_@{_1pDHWUp z8h6MHb>VZcO_nwp(#CYu2+U z#eS2n1!!G+q=HDIBOHY>!!RlFS2t#?7EaRA&|;QO!=DfGrif3X9)wa3)+FlpUsluf zHlCt#$Ev8O*(HwG#C=UN+E2EZw>ZzsOUuoYE?h5j5>++?5nqeFd$#$DxcQ}qEh;wg0Jo+ zYkDJbaPe~aw7jfMPzC7$k_|{~EThz${S6GaePFOxH+s2h94c`2ql+OR?;I;m!ff6aM1*_328op`UH&p~Oj1F-05q;tEJB9Rt$eTxt5J)icRg2RsLLtDPGr%DjZ9#8 zR=?XK6X%i8Y*A30wO2dq#gJCyT|HJ-b~N$C`Ef>8@b>nXF6P42Ue0{ugb~X1g5jpo zgLt&DM2%bN?vr}8DzTpXsg@!|=IHazts4#J{=@iSR0J6}JZT@)*g#bzi{>gWP~+7I ztn?}hdh)!KiS0_-49XP3o8mwE>9l+npjmWXAcE50S}6(&4=`oGwjfkt70tW>dmGlJ z6XW6waHZ>NG%#=?s!RNH&z~wow$}^ovt#n|WIk!^%x+hHCCMi3>GM+%s6YB}DFI1% zW8`DE2g9%V0Y0g(36^@$cy?|llk$^Ns4ao^43f)RXko1vtD#uubQLKz81Dp%p#-^Lul z!xfmE#8>p}`Jl!jOk?IM-s-%#{+xo~k6JAEK`o?^g2nfCmsFt;>k*pgqb{pf4?oon z>o}}D8~F`?n*new8E!4#ue_4DpX_?$G9WMaAK-7f=Rfe5ZG|b0y>bvpf!cbA9P#oV zKh#LtA@Nt2+zHGWH zerA`|ex$S*?DS>h+!+?enQDq?1*R604b4&9u$z045Jkfg$66_^_4yKz>17b}7NLM+ z=a+mO+^iV7z?x_<&Kpjp&4W)XeK_?{pV!d%d7201icDGmfn~m=tTi}?@3pnxXQg=y z%X}HCY&#khvm-3zbQYajyotB(btm4bNZlkK^oFi;4WX?Hc^8vRpQYP+ z^238KH@3aQ;v_Y&ZDm{LZo2}OlZCjd8I@xt7`4ntbxUkTvT!Em<=XVc@kb}i;aXbf zYLfDm@WV)V=cIa*<9lE?@l!YBSCYr-$}hL3<)c0L)TD`#k~EfHcVH5bxO|wBR@S?o zp@2HKF(}`Xl1}v-OvqME{DhQ?XM{#hC;X~*XP{rsjlVaxx_{s{(<}_$rL%6hsL~~b z1${dA68mAo^@O;O+F@<;J|Cth)WTFWeUR5x+=qD)Ke=6T(+4ajVHY&ulF08xTAqYg z5}4vQ3t=0w+K{LkyKGXXD`z@6%wI{E&G;G#;tDzc)uu-*F4C>>T}N_Zo71W5OJ1dX zRDW46r-wtLBxY&1#gG|*5}XYc}Q`{L!8fJqP8 zHE@LLXF)NRBkEl-i>XJDm(lT9+N?7bQ_u~7Zw796We$Y$1WZt%tfj?3N*oEWkeCxT_aK#5hE6zU&04b6AFMr>+YOm&X}b*@k4_rSWPsdH*d=bA8Nf zKZF(TV^~RfPAb~(Hu_mw4An9V!vI_}j`MO_4oQ?32vib$q`zNTl`dK%H~vG&!RBf5 z-cj^#%7y#jTt7mAva9b}wu)Jm6iq~IGa&>Z1kBa$kzDBLnk;vo!H{)a)M(0IF(dPF z3n-?j{GFTU&dd}p5{*|UGzj_-1`MMlJtk(yR+T*Lx60gD z7tW-PGv5^HFG1_w6eZ`kfGt+L4rbGrjr)tE3eN|E<@#)KUFCK5yo^TmCA9c`NYiI) zpKqqR-Ic}0|6;}%Dq|G8>k5}CiN-F7ZDrX=51aMo5#bv+O(+0ZeLmytt0q!=V+7Q1 zPh$Jp9y|-A>(2LV54qg^>Na09qrPqGqI;-2zb2M<6yNFk*3VP2QDmhCdu5t?6}uFWQiNPadUf0MR;4r3l+`|S3r3}R zrXqr4hd|C~IrjXPnW$MzekM$yqe%{SgEYq!4?BE=>taD*2<3(>h zVP!Hmo{aBb6J{}DSlK!4rrt0Ijf80;gLTUjxEpFLpUj;U1qXPs#THHl0rI3hym1IA z5g+(6woOg-li{0TD?&Oc@fC|X5$gd6QrB;JSzi+Sa+guX^5YHGzlb{r>Ga!Lwx+qn z63P~aq{+rTJPBAsH8VVhopZUl27#QGw$X1`4o}KG@D+=7IR?evj@hpkG>R_QLeq!N zqdbgH~wB7ljFH)41`_QYtzE-;RU68^!*JRd?66&duTcJbYNOU<2@QVAM^G3Y*<7%RfP$v3b-N_ zI^E9^4vG0sJYHbcxH{!&8)hjoy+}-d3feCYK5br9?ZdlT+5w}nsiUbo>4}^Dw-u@W zp?|K0XwgBm9tgtuGJf{;m4RIGPiEI;b7N0}3*uI;y}Neez!|9%2c^zP0-O(A%xj#U z2`T#qs%4_X_WRRo84~-Z9wv&83fa?jicjn#sKOdj9oDX0Ru>E$44cjfmX?SLlBvlr zC{m?=$H{oBx9Lgab9`lFT)tl)d?A#4F=T%qBpN-IYU5#kVM3|(qiX(yHUZZqk=1-O zZj&bTa(bD!V6>HMUj(W6IOS*mwHJp!Dzl5{hv8oRmc#4p*usXJ;^&$;3vVCC0u1$i zP-51bNcSgHPj{!Ks9+bPI_&Gb0_Xrq0zfoCe**?8#w3s$aBr3ZHA=e957$~3M+%q{ zNDA!`K#k%|yqg?oAU8I{5c~Vdj_~okf0XxyjhCQ5GwlyTqAJLr=eH_uq;1e%nAr-@ zmBoX{aXMh<3Wc0T7eEhM$>&cVbQw+IM}uhn?~<;+9{)e_^U;zXH$Iu@B(V2CgC~DK z{(l&0?dCWC-vOxq^A?6syBWmB#-in;mc?9Lk`;2$SJvMNFySkSMEmivIa|Kdf_yz= zeEJ^YbKQ;bY5#}a6K#A-FH@a#Uxw3R5qZWWoHHNfRG+Zxd$NK@3tJ~9YW_jfrtYa8 zF)2Q?C+E&JbTsVoIBRPVz1q|NQjTQ|TGx^w=(9&1i_hfv_`exJ*I*fg_A9)5CwcL} zEn66Z15e?$UHWex_d$a_&;k$z>Ht26*FoKto@Yp6v}Qwm*uUCa7qoTwzqJjn9p)%r z_aL=TPX%5PO|`ev*o=SolkUzewYJ`rmBD;;OW+M0{5_X8<#+c5C<+TVySjpQcCJ#H zgXtL=Ct>`Ne}_hZ4jm;1008LeQMFZ%B zXA8kK7CN0$c;V5KR1NWqAr z2$?%DQWhoTqF03;1J2N~S?U|+;L@#VLhbv%jR&C|CBUvJ!2T#FTI*%C5J;GJJb zp)$l@^4qJ1*nJ)fa!~mbH6rw+W+>xH(l9UkOa#H&Ws1DmyS1b<;E`yh$7&|JyR0zJ%%3VNb}cYlq}I<$)%X1z8&-vMFdAuOXKFu?AI^CU*;!T z4*bdtOZr>+@2zb*tm;hdHX=V|o_qvS3dzQ)+;u$>Z!aGCB- z5Xzf|It;qK?=0wzeelxSl+?@My3F2-2SHWov|YHSu;*f1R+GLoF72dFeY39TK)+|; zogDIeZAHSAW*L(XwC8nnqRYD#OIz8|je!2zs$6Sisuwu+c$O*eOA)5`sJ=$DiPv0^ zDanhjp*z>y99K_N-Cw*w5@|5)4(+I_4AsY%535m^)@L^EB^6)d5ysglMYIbeYNqv# zp5{8~Wxk&OF&C1g<*>cCidk}nOdj3jfOOa}7+lTM5}uaa@Klmrc+e51EM8-Ayi969qac^C+$UTf>fcB)@@;dX}%@`ue>1p7g>1AzFAFLxps?bz**F`3DeZG zhxjqhNeg(&_H|Y@UkM=VW!=1{qzYQ5%nCJOUO;aAomRM08^O^Jb_ixNAlwmIKUeRY zeQhOC@`$mF39E`?1z{nFZ;x)tN1A)+b^i7hsDhj+PIZ-(E0#JAJx{9l>E7#Pwrlz8 zRTTaJTaKReHB<#^^d}jieH(=4lQ-#o_nwIFKKXD&DKx3XZ1vUDv9Yn`_dcV@AaI)u z?K@+U(99kjl|;5TD$Df{oK@14QzCu$&86;8_GV$tH#8!x;vmnyU!Rev*sY*9Cx#s z&prCAeY4=u+9X>xNAMjC!OY+VGFw9KWj18!y$yN71Pv(yoNDgqIL)P*xgFl|0OKF6 zS+BSo^sI^pO zyI5uoSy*{iR1zY7u883?a-;3tDA;b<2B?D`KO(o6AJ~UB=LjxzUVDFU!h8qKRpC z(;WZ?2IH%Wswzq$&$%f(pTeOvKIi?TJ-6(xU9>csKTgW<#?fyb38kh^c;%ALdeOa> zNg3t}vnk`afh5t&`;PU)>ZxqMl^&?ka$U9~GU7^?gbbs|6=D`2K3?8J{YG8JD)Xzu zT?@2GMMKxFoT`w^rXqUxaFt<+&@6aEUs3j3C}=)m6NvP>2xAle_nq<+8~Gz_cIzVq zEnY}W9JlIJs{wSY$;|w6rb1gWVA&1%_YI$u9{8SHIAEb(GK(hO$?7u2eGe}k@H*%T zmy=p%r`$kK^G#Cxih(Hb+}0&OaP$HH)1JDO{21q4leu&pn8*0~&*>SRRe+9iwG?<4 zqrSp^5tD)8_Fvu^n%=}if3iK({OdDCfno~qhHMEMvNJU${mZx9&9uH&o%Wx1h$L?%6vG@VVGh%u#^W3}J;I z{VD1r&E4PY@>_7Q%EoAMX=$9aO4R>?`R8`W#nx8nKPCw;d zW$YJ}JfY;a<@vX87C6uZ;>1L(e}CisWfuR>ri0Y2q^!vx_xjIi6aC`8Lzh{s_kfX+ zas7TfatomDn^6`TdUU$?s>*gID%J%iQ_?4tcy_+=3JcQ~D&+Ma zXK*>}u&&uz8)rV$6-sJnr_~8jce49{s=mkbk9HY)VuJ84>&EK`OQ7hr8BL1#^~X`CFzetHNg{ZBSwJ z-Xvup(EjR@`tKB>$=N(NL?dB8I zxk^&>YgDW$_x-)8F-IJh0f{)6<?#f*GBQ*P>W_e#ho?TVBf^~CY81*LL93JMMd4*y?$mK9h>)cJfU_y1P}C+-@&>4JI`7* zVf7oIZRwjuM(N*~;>KeB>K^5jo0~z~GhE%+ZMuOZGkPXfAd?%#aH z`=4D25lXZD{u;Y_;+d+$ksj#g+?;KVdH7fN?e=aAGd~xblR{ZmUf-j@uo+dpXteNb)s02XxPnZ)k+aj0_qmTXX!7K|(r&T5=0zKu1Vt+A5Z}@1=Uome#;D3^ zJ?j(et5QAC!IWU(E5o717{KHQ(`#33wMMb&-RsOtnC8fG!X4MAjPI`WWke9Xq=Vt^8c~beMw}>SG;D z&{-^(T!F>2oyIlVgg1J&wOT(R{mg~zxUZ>fO^MCAt~DI?56p>BV(tnTU={8)9IH`oOSs0x`J3KQZoAm20i8^cQm81&z=6A%2Nf zyI>}sPKjYiLT1b8B9=1KIJn<^x{mvzWw;eL)-PT=MysTZe&G;8Q86_O@@YO z?Vcy>#gtsd~;wWoza-l-7I3VgwaOag|i7tzE8Op7-+l%xsv=K%SPFIcJx^-Io1b zq}MSK<_tjInXgdwwZXxQ6CA-@TQc<(>WD1X zJ>N&K?*}7b6DryY(Ogo^Geng2g6JSc_f*J+VB(^#(lmN2UglI9qNEatVx5S%(R2Q@ zErGrvwh@(-$BZt-4g{SGBl`Sy(u<^tq+LYS5!#Bk7vp!raiNt*}m0GUUi#0RY2-cQv^R!KAW7etSgJ~4oWNR)mF;x#~@93^n zor{__IIQRH4^CP~*iX>+KMnRGcJe(Z;s+HeqL#}JQ}!pWJ4sg66qeGd8g0ubHOWS^ zb(%Jns?VM1O-J>JcD`Fe7rl>-zBCx8B&O7R7tp9Qb<1&R2poxN@V)j((x~a6Mvb#z zsU8*lui1oHkxn%L6!<>nEOCYZ!I_qZI7GDd zIrGc_mab6-34fvHZn$fA4E+cl5r|kEWR2XCPnh<&Q?SFvSQ1`4Qc*&#P18L zojC})izQPH-@jyyLX|J(9v0m#%IS$rqCR25DX%GXDYnw9sj=p;^ZsD0j=&3y<#Q}k z!_Bjv>}pBY+97=G-Y_l;SLzT)?;3_*b0+DC{Rw1sJN8GiQY-+9#g6)iI60Ge$V2OS z8oL=2ZaS5d+{!Cc;1oYLe!jU_I9YC|@LE-g+HB(8;Hj2?A=@#-WAYf7KxV&eM+_7! zAZB|6uqP{TiS4X#+0H+sS_xgv#0BMzXD}UjKc!{|73nnH3(Mzcs;Q@wwI1m?^}J0u5H_)<;Kha$|8+pO6b>{?)ws&J|tbI}mD1L$0!_ z!Cs=}q0FxFV3OS8qHU+1sf1SOndWf$EBWEiKcafOy`Pr) zzXwjF+YQwvS@XNprS=9Ux+^U#v=;2Uv)$LR@p@fMu|fFMD?d@5>6_ zyOurm>yswzOa@r?F9_V{or3NDb&M@Suya!jF@kytizN3XdeWVR!jeZroVz?5@|~`4*`c z94)J)n6_0<*VjpS0$;QAC?Q~c8oj&_}pCyJJVubBQMw#ot zej&F!x8A`KUJ2Xz$BU2BTl(5YiH_!XxJ=85Opes}6+A8`Zl~~DB%2#4J0Hx)c{mS4 z&(9%oZ>mzBiAb{K{E9iz-tfH3xfEoh90-D`!cLFTJHWLh5AtaCXa);Y4L7-Y*0x%^ z*v(N}gxG~Zu$3k#iU}Wa>}8+4L1Ngn0P>@7latWz^xq*I*Rv3`4$K!<7%~z)&ny)7{PkYDwXXKb&!V8YEhC<<_Mgwq3_V6cqn@G!f_*)*GlQmf%RHgb(=Ip-@+7j2k^lC48jRyR&X_2yI*TZQ|qvoq_&}sSat5UUye4{ zPeMkHGI^l3@ED$2x>uC}xw<#}9svt%34QRCr@u~DFTxXOg+BzEN=5Wpnpe65{VC<> zmx+&RU?c_GpZ&Fr3UY1v<3A9x2^r$meRpu#d7^Uc1bS~h2qr&bR(WE#*?4~RmTx1o zd7?g>HeGbGI_AT?zYzQma}Pt_B|WQ@?{znMQ?>CE`R3U1sUyG-FOFRASD8=;JJ;~j|R3nZ11A&aJS9#5h zPREA>cNh7_+uvW*_>~0%Rk-V4+2^p#SahsvIMjE zXiAL0MMqk^!c3tXvrx26aqFOv={l$~B>IFrHGM&kNOHUlxwoLeTO2m;LXvB1%qO9O z<)gde$`KVuzF5JcYjNUf7$?cKIXE@(EFeLaZ0O-gzLRcsP$ptJw)Np4n~k^bic3&* z$d(!3S^0Zveor!$O2S;IhP^)P(PDT}yq|R4OKnuJm)TJd55QE4nt!5}BDjJ<)bBfd z%&FE+g)5gLuXsRip6vkqN0 z(Mjv_6lWAW>?tG=?Q9DvgRt+ECToHD6c5|R!?1tMLrTgQHzec~_}7J8ME$|uix*!_ zm?+0n{n<;q%lm%RL>iNa({^L9d8DaL1lZR8_)tB?Zi`Us24oS{X18d_{HJl^sCuInzhxzs<(EfJn<{P<3^gF!YJLtx|8$%M06bs7N%S7&mvifSw z7L+9Dek&9*jfthuhKtT;g-a0Oz#NAesL`e`wM`;#OJlgsJ^p6e6H>Ns!YUlD z-!c{yQpwH1`tTI|Am_Agy=>A}q=J@y{;4@dYtk(1gjjAlzC$@116jhLOt&2Mo&&4= z7nRHk##&(?%u1Ip1%v8LkBh1bufn7ND%{FvEH9SXd&c-lh{yAc?TH%J%&(U!o7 z^W)E;nzI_PWND@}ghB6zZW@7d?h2DDlH3`o!`muCY@VsS>T)km$nugTF z#dv_r&$ITQ3plkgycA1gC&$_VcB|ek=M}TO&gaBXK;y5#zMifEU4`t&CUm?CZGF+@ z?xP+-B7Jf0f$}tlu~OFYNBM&R+8SPg3%kdt)lpOJtIZKco3o=+N+G?v7 zWr^xRR6#}esfU#={dN8?(%v#Eu5Aey-J1vr1PH-`yIXLF;O_1aEVwkTA!u-S3GNWw z-5Ymp+^unkzKfi5-nj4mee*~67~M;zlzde+XVo`qXBLMlDViI)5p)(d`z9ZLl*XPF zj^=|pzoLy4TLW;%t5u0%*=O;%ygU~eWopK5rRd$7Xq<cY&2`r$y z8RXMW%Mhpw_os%j8=iE2SKYHKOf0yOe_mV+AXTCCmM;AHGP~CkCSvdA-3gLq^S}7? ze3ip3TZ6|2k(7^p8-0juT7}^qIrkx8y6n(BChYHgrO&HXDN0ToR!7yvr4U`_M=^3= zKnabj9`fL?SbDmfk8^*>)g?)=c_ z_hF#i^xNDO$2N$RL<&ghi7?AbnfY*&ca^rBWp06N&@ET_+86ejFuQN|QKGL;f(qAq z%r~T$STmE%L$=ufN8HClk^UmS3u@}-t-dX2$v#s+ehD`b3KiE}#W}jSY{1ZCD4-M(>A;33j>93_qEQqT8X4}o)o|9oAZlP+O zwYpb2q#!uaAu4oR(?}GrtcE+j1b@2TKW2%7dcicD z5+!8MrZMxwc#=(aHHZQC*2>KUQPOa~!O%)tpg8^>VrU`?o9~BwlS8m}?gM!SVO%ot z!zC7(d%9>)<3sJ3>+7}$+DV4d6Rw$7Y@}AJR@^!#Ee(9n;=7s{UR^YwT083&maW@I z4`1gh@qBlD?~#)uyAW*H8*?vif_vPtdsX#a&~N1zIT2>^8N1n(>s@XO%EK4RI#QFI z{VCba9-{-UyDHX@qHR;$J)A=$Q9X=&?(Xa@HJx)vb zw6&L%O(}29L>PW1Y^VClg55mjvd9nFd_x=hwu)YB$&tpjnp85Ra+JAZJs0#QdGS1B zOikga(PIMMOIpOm184bRhrv6qG@a!^=J)!y&NjryY;Cm%20O1HjBD1DbpCD|XVerq z)$p<&7Qj3v9iSmThC_63QZW^1@)u`OSCzS{XN#vY<#A-O339MW2?MKu%#EzGlTzity1?c=;w zuHOAfNtZ;ZWYvV5(3sYFQmR##c^6T#@vk(UA^WC)PK9rLYUS>qpA14u`m*ZZ4*A4K zI?SAsv0mqQ8SUylb~c0W+s{%hRL@VE!M^$0C+RbUEgmJ|TCOpzpKdxt!&S1V|200;CnZ{3Z}-XCzjbN_&1Z4ai)R; z8EU?z>$b*hbL6F!the|}=Emm*r{Pd1>A{b;ZXA2xuz5xPCh=)Iub4MA4;7JGYS7t? zA8{DUrS$|#Q9Jj79joFoHrW+*|F~-P<-sQ5=owiOxgWGsmDT6<9Lx8@6zq=%+GY5p zCl%+CSFyD*5-zS`d$Tt%W)9mD-q<<7YVfX+Ex8)$6Lnb9tx6^QK>Kutz=C=*0p;Co zO>Dj0^&iRKeLn_bZ^LQYiPQL2>n@3Vuz6%8o)l2C;?f~UF|#vQ@pf2F3$LU8eqBmf zk4@#Xh3OPa8qIxJd!bJ-e~SUeHK%bSVKS&q{{*JEd(PW7e~Uyn(oPi4qDGKHa42dn%2T0Y zoeMGXyf43*&d*OBs@K&kuf4nOt{a-9J7<)j7|k(lrER}lWzMeQzw+y!%u&6-^%`>C z=RVswJ2$F0JbLG(W?I&yJXBB{#%CcOp76vr^?R`P!Cvx^F#JZ5@JX=g$Pagj1M^F* z+a2>EnMtF4N=r^VSNN^KU8XjDvJ{snfqs6e6+v1i-3m!_o2${rw{LD+h*0x_Vp>IJ zuhfp^?IBv_D3TSY9b0ype-HL_I_ca@)>}r3Hp>JV9!cZNG{V7m;>h#fUoK|f6+KlM z*{}pG3?))}k&uO4$ce`kwOQ4Yp>2w?nAw|or8RrNoZhbr5n~N7aE^sm+@;S9vyQmv zEVrI*0))>KqH^9D&ejYf_g@%|Fayz^MC#30fIn#qSaU-TXltGs#1!r*jIS&8Qqq~O z3v80rgHFM#kL}aj5ZO5jn@9Vtx6wSZkKf0M|)(V`!_ zxC6p4|7p4RdMUg3p-omX^zP(}?F1Puaej_qhp?3$QdQq3tu_K$(uX9pQlJo~I)p18dIv`vEjkUsgQ zl~#W?6;F#=H=(12GZ>!*C*ge4!BPWF=IZDX<7H}#1OQ3bfR zb1}}%60gp{9`4x2>bG~p`=+a@woM8GeY|lsupi_J7J2(5JH2`K=6ZJ>a~EFm*-+yv zE=un$@`R$;H0TBXzuysN7wtDe@Mg7K%OZ-6Zc|P;b|57l!-Gcd>~m`jzQAJcUamAo z^3%(gGZR08WTDgawsY{JR;0%C@#v(QpBYM5)6#C zBV2YiW$)J#2j{t-9pLHL^^G#KEZAJlA)6ge5Mh#IYJIF9eFO8lP*YfP;2yHsyk zx8&E4Wl|E7(7vl=k9iMsqPuRsyL)&8A-hkVJDw|ZT1l46@DP5U+6&nuWiRuH(}S&m zPTUyWJbUoZ+cSNnA6#e~Efrl*TFGcK;b`6|mfwq2UxRMCb2(YJcGk>lbI0#b*%SYOT4?Ga;{l!< z&WGUy&S#X3JE2)AEbFE&kqAmuoIWyD?BJ>!acma6;~gL3Us!-GoB-9O(YkCLGPj%o zkDcpeLnv*lmC(L3y~K^z467xcA=MD*>lB$^GmqnDlG2XSoS+R5izGex1J2|(G1X4({Bywn)=sRN_1&W=uUsuGv+s{b_`0K#LFZOH`dtm z&EoCL2_5h5f9uLT8zH0SYpwo#{owUp<&mp->yuw-dw!Wmas?W7FbHAEq@7sD^I`ux z=3w;XGcmtyDHfEQBF6lR;g|*ty5-8lQvyr3(kL`z+?;;dN&_K;qCcUVCl1jbLIl;X z7*3U**Cm$VIA(D9Y97H46<2z?A>4}^I*YXLLu*hFT^dxf59fuuWihBE8!IdWT;R*p zY&_&t*Xik9%nL9Q5E-_A$5aJ$BLCfA?3!}AXCI4Ud#NU1WaKWvmUud{l4O0Dn-g5V zdKA~NkdN%y4<@F!HP+-m=Shb0OQvpAGM>$@=&6)}e-;(YB!EJPlJ&N)>$r)PUzJvk zSK-qm+Mw)gRHQMf%|L`L-33&cc%qw+3j<~`zL~~*n4KJYHOG>o#h27{)(yyhuRWAH zdw6AYB~hqDkVX2ia|*Y4^p2%jNk}sh(MD@fT6GdRx*B@2q4osg@ptGO<?X@#{dD^c1PxYGX>J}Q?XQf1~Dz}F!(EPEwTaoQ~i8-~dRC+La zc#<+_SEe*JOB{F5f)obw?C?>8e{woomaPLK;%%Z$jN~&-8{5sKDvhKGm-$yk+YG&A zq5*5~$U^_cm;H=D;~m8FvKjfHs?KlS)^p(5R;f2FhKsKAXo|(&QF}GfKw+2k`Dnh5 zb0E=&d-UX>aB|jq$Xb~W&tn;(u71%`_jK=2q?V>Li&GG4Fhg05R4~<0H@UH56Zmsp ztpG$P!Q=c7ywCPLQOwebnmBI6V=)nJY-UQu5!A=>TNH7@l^^ zEO7yJoeYg+^_%0`q+sh{f$9&-Te|F3%o$(8#gXVh^p#K4{YrW^WsXhz(ha-i=k_@c zp??3}D3)QYlA0auhoD#TNc{=i^H2`Tct83K{ra>5O@~b+z=x|lPc9w>S20+C4%?yV z^@{V18nlfo6tJPY^JKou#K=W)teAdZ+}5(I$8=|@Xm^RzvXh8}UF5pt%9ZQULtqCq zRb(`W>1#`nQM$Sqf=vUv0rLNR0Y#-8{yY@%iD4d$9$&_2RxZl}n4i~;>fW#)aICcM zdraAPuX=)oxr*x7kC>W2D6u;T38LUybi2<9(~RVrYi5SgD)%oC%9X6IuWYxVMPGB( z!zOovG0U8|^!4z#>1n4kLGG5RqLkG1l~DzXz5e4|vqdzfpM6`RydJvA8+%F1qJr`} z>>V#DMgm1PiWG9u{&AH_f*P2be)4sv;?9ILt%86pMr-za%UP^^sq!gI@*Kx`C9^Zv zP4*iO(5UOJf8X(J*=AIbiStp|qVXEm))sVEuwB0PTgY&RK;E$?{I?FL%S*!VzwPgi zHrL_B%fUwvVL3wFYnJWu<#xuidDn3Khs3tsW^*4#1}n3&WWt0h1_kxq+@s~tRj<6< z@O_kwYlw-tWz!7btY6hc3m3f+EHF;GS?L;9@Fx@rsGu2C*7DP6B20cO*~BQ}Pk!57 zJzZ}$0^E)LM^&mg*CZ9ti--L*X}e&-6hYdf=}$$e)l|7i?w0bHMVhP3Y}u(-oshj~ zlq%HBR7q(j^_4U^@419|V^wUqt^a)stGv>s=L$RoOby6y6m{&8tXua<9YtQgYJavX z*_ih&c{u0)Osl8&1=JAU^whRppG}j2U%yU)f7wgZA2y27L%pCPgPN{ha6bGQK3U*xBrT6j#!Ef#do$|p+#Wdi{77vAgUc(D zOR`YCKJj^e@;Iz*ug^ca*O-|Ioad|H#Ozb^QXVbVcOieiv%yw|LQdkt1d^p}yLdbT z^m|H!Q-slM6o0(|_VBE&(@bdq)kkw1H!eO5f0~`V{w66<7zm zeFaT4m6Un_bm4D~&vY>nO|8uL3!_F$?LI<0`(7rLi|$vp&gy7*FZ&#>1E?C~ZicW3 zE@12DOXzJd=J&8t2%^zb29o^}P_okH#Jzm9Z-x0W)R|G%qP|k*&YqBdRpD$hb)f>J zEt@jg*6(p5E^;TWM@#N-Xt_K|z~F9LgctG}BO|ZO8k~7Gw?l@=TzljQfRZtRL8m9} zb8FuE-ecLvKHJAWDCW(BDe+vNmVC-~6%$NLbKiDlW0qBBo?UV;>Cv=dEAr{)!N}IT zT6J=~GUYsNi~3gA=Q{$*Kc<{`*PIT!93YjV$u|($_M!PeqqkE`>J?_q%MZ=I5PGG} z*Nc_p{288+2%YjpE$1Ijr1ea!t=Y&%1oPRyRBEVqHD4B}sx=D6T003E?rjaUO)K`# zd`OPL+LDyU1LM;*X0Qj!@Bt;l)Af9yI^W5!BAeD)T|jVEg@^^m&k|Fy%|khJiS{gv zi_hu(qoVe)MwBy3?3k??^q{Ii{o3pw*nzfXm7C)m%&AFq!alaL+Pmka18Q${r87aB z0Ty^$6jP)w_y5 z#e|=%ey5R^eis>+2$HJ73%4&-q8Be=ITa-*^hvVyn06bi_<5ujusTLlYy7Ds;!gpE zYJNrCv%@uuwHLVQiYo1#P__TdO~t21mjrS3PDS;Pt@f@v)oS9dZ?hRHxmz^3Z#D-tu?kB;*Y%sM}rs`AHZ!)WP9gr?o2KDa!4s-NJP3OG? zzmJyZTnFVGTdvy70Cl?Jzvmy$EH`mb(E~LRzhWE__qZOHfz5uN+&Itux!J@i#$7Ss zw`pyfa#PW1b5cFvfuz1(1-{20P4VNy>ub#BUB ze>_hzijhbgkk6Az&v;}ft$eZ9yp+qd^e?J!| zSJP&F@7sk%D4tbS(>ti*rFZ^rVOYF?9YNqd(YA5nPlpaxnrq^!#22cf$)yv(apb}8 zXny|)e)SPX6pRq^t}vJ=o0?KNPen*Hbb@7!mPDzh?3|g4yzJmVaW%RBTpCec9_f0rp12Mgz&!AZS3UC4K{1 zE>b46^uc;?@QPp+>6fQbpP%IU2Q!xHr;-vPRXJB@alnJ2-$j_Y7GhbbBtSD zzC49up%(Io6G9D>4d{+!Z>`+CY3lK$H3&&%+=ZS_3pJ6{Kj>4TWFC&ha0GwSGda^B-{9cjLK$m)hl+kqGv6?x!IIK6ebwYSRSFWmPxhqQ$x;ro*kcg| zdD5(;4F_pc!#b#a*k);GA)j_}4ARaJu;(r%=Y?5l7?OVS7@#R4Z)hxST8Bhgf?b_? zRWGW^GBg#wgo# zMPFUy`qt`tBrFXlvWOXVn`lCZLxSZx-*oA#Hb~cmm_?bMw{4Pd$*Ow9xffW#KQCVe zxd=yD*bD5xhQY;n_;5DX$5Cz3*J6*moFzC2CsClj1Ymb|=WX#x1iMTxnnlvf( zU3GJAh6!N&uW#CiVSP?Y$Z5=*_e>NFgS5JJH8s+bk^}f=#WEuDYdoI`35nnR9KAzv z9E<3{RH0Fn~jB;*bkdLx;0AI{{5L(Ejj@wy&vO*VMW&uTp zws#S;O9w?Z9_vHlyN&Cc|8xi6=Q9b&Sz@ZRvNV4rC!UxWK#f>{dXm+U$GYh*?EI=Y(9-7h-NSRk@!3pPK$0q>Cq`LFH^mZF_-D= zy?%z73{1XROLkA=+s|e#LVcEMvWV|cNsM|BapQA<`Xph}HHY%>0A(4I)tb^~kt~=aWI8;E3C2 zr0=Dn3U)Q<>BLjNM@X!-j@clzDo+-7}I9c{gg`dOFAmRACWj3Qz#GWh2d-gmk$<+^D}Ls_pt1$lRRFtbF<@I zbSOuwTQF_zs%?DxBBa3M2}v>ZAb2Yhu;B8~?{yUNi+?FCOg-=~iLg9R_lHy3+ZWNt z;o8`=t*<}Bp~jk1f?89a>{%<5j2b`yys-0!|2*oEIs!3&%_;uZ-g{5@&5bTL zSu2$q?U&A{TG!DEr&|87u3PX1FS!wv4S4 zY}b@K>I52h!4=6%bHCqq(PI27CC;cK(v<&mJ*{?{o zMMSt3=I7@Z7gJJGhm4sUbtvK;RHA|ZX$azJl=Gs23(NJvXdNlT-9ZhH6fGK^T6ZXhG-;9w^NLeI}nOhZG%!lL~9=SyF~8(Uj@dwW05 zW`F-ScoF4$MMMz~1qB76wv9PdQTwSTsumA&1rUb?~q09*U#>)$* z?C6V*5b*WxWjf*$RcJ){u)9ktEA9XCdLAkoT53|#-tqCsRN_w1VL&hq<0Efwem*?6 z3iN-zfOD%TU}P%qv$UczGSq5|>%Y1gzC0{0Ha1p;rZcJ-m_88|YEkii39?U)A+Ny! zz;dXHr5p-z1qO-#otAhF5fL(O(Pbnaj&f9z;;`jqo!FQdHv&eWyTx0~EG!e$LUR(o z(_Z95o}WFyk`E0Hu7B0tq;SDIT~f@1D?6u;ig`vRCPgYVOo22XfeBG{-$T!`^hb{Q z%Ki67BO{~OxHz(xzoNw)9GJN!;P(FxJEF1C&E37}rJo`==H}*mMDKHj89t(_GCMSq zkP4Ikz2j|@*vs#JFP-OhXrv=06()Ki8zjf@alua#@Bk4NJG%Z9fBB8?h-iQP;P2lg zB>!LX3#)R!s!wGvOJUu2YP|)joBzCRabxjEIPpVSx!W(Wz5EGjcIhg)xG16gI|_;y znhlFjNtw+SRc?G7)FdcYyE?zR64ZHlL3Y8r7xK+1oH+mrG$f~{)>_m7E~Crd_|B@2{IBQ;{3Qa;Q%0$gPrpQXQX3oZ8th4* z9uI(m9b#f)z*(om)Ah{_S*0S!wT`wj?fTPGyU>V;HmAdr6A1jtDoTg!@lyT4Oi5~F zq>Gdk7}AUqfzRW0zNOi7W;ez=m8({U6A^JuOuXJ7nYmJTYzr}C`_@A=oTEU+px4r5 z*qx9kEwI|;w7WCn^Q*qjYQgGs4eQiye;>@_a^eGf8aq3CFNC^P|CN?@h|MzL>G^@Z z#lOkPl8c)=j1b1KV>OlEJDi+}gge`AZ`2+Y^#?e6WpI3T0x9!)m{l!NYXt3fo^O|A z=NQ!t5waHQ_eUJ3rQxA{`Xrah4?C=AH#0TG(Q|rP^xg| zH!{kCM7^f6QV?(ObZgM|XvxL(=Hy9IlKT3(PNS;ft1Xl!>0(U4#c1)5A;kC9gJfO| zkPkVe9vOeJUB5j89_1M*T0WvxTRfKWlyMSI5H%>Da>;F@Rc)G6TZ{2&nhV6A#BN=e zFu`%^gk|4qy%twdtKYA~!3W@Y zOOU`uAd+_NF{yY&P>}f5(H+3KIZ>f1XuUJ~-V4F73{HDMHaiR_t#1q?1bA)@5YJVt zcEzHSnvLmcw73#v)YXB@`bS5dr}9;W_`@^}tgIegR?EbMwW-9)o4udZDuujHmV0MP z+C}-?z;W0TE^lPBypQHl2a?gyVl8Gbj~8n<6X;{2;(-&zk7*@zWp_LN==;=zggp{PR(@tt0ID*&|aDaX7s* zJ3Hd+O=WsoT1-@w(3Qj==J7NHz|t>%EO8mjc(wRIz~_!|2yD%F_AZG4_`8to z4O3#^-nVMw78LmwXCzlG$UMG82tjg5}hX;zEnh_xQ=?3{O_SlXe5 z%-jMBmDNhaXK(zOs!}eU8_~%~MMn`bWBRAoQhknrg@S^XX%=q=k4y|$#hQAO#6HKT zd-@GwOLB4y=2p7vHwOSh5Grr8Tdx|HaT@I(Ddxr1_`jsY;PnyLe7SDP(?cY1Rt`9{ z&>e&#WPjE9N|@42%a{%HDA&g(Kvyn%jDvt`VO*lPxXPLqCNGS28M~=-m!6wr?FAoR0~>BMm34 z7Lx*$OC$E83}oso=e!@cUC^rbxIilcp0~FnsV?zSCYyaoQTN`r>je!?D=pZ7IAYLk zipj|Em8sBcT?C$t$!g|ZS69dFaV;by6jN5_l*llq*Y1tzq~Ze$0(3rO>-0lOMFJ1! zJPI!R_|%l}gGQk_bg>rNi{+8E5-PAuQB{jM_xPrDlU=mzT7lArE zvute22WrOBxGFq&|D1(*`MSfw!MU6)^Oz2Q5om8pWY7%_2`N%8Fb&0&O<>dyPd(Rm z8n4hFQ`f^j-%gYsOK+z74nCq)XW)0-o4;9w(T)CiaCdEJeZEJ3(ewkHFGCMmNaNCv z_{?;hY=+}~*nYZT+;cDlk4*PctbXEgdQzDdhchbpvUxj**!T;&Ha(aXm$p zlapItN9~VDUuj}H#G3;uRRPHnzF5uw$n?>ph?P`y(QSW@RM*GP_bLs?tsgY50=&*V zTwH)2tk7*XKbYp2_-HG7!sl|5jY|6V3cA`qJNtJ3G5|4=QMZW(T@6^VF@QXgQ6i5f za-^s7kw!*FDz!#4TB$PbY1>uB0VSjIiHw1vHo&2KWQ2ovS)VAI`6txCV2y3vT)o|! z&j-#cc9p)cq1cO5 zaiz7cWct()VAL-S$WcWl&+sL5c9e+e^y6@XY}bEreBtm`CZ)hH94dvzM_w`f$CRSiVg(o~61B1cK%QAUNqGDo3e25|< z+mifl4$gmmmCbm}@M-hRzw6syGY)N^s{9p7;IAVk;oX8Kc>-@zXZ7LlbmoBpnfhjH zZ7m9@%jGK-$oZD|o#ciO6V3Y0PO*xXsHo`6GyQydvFk7GDz$amQ*2uz7$oA6Ka$?JLhU$=X(Wnj~Ub>lea=ijb;EL8rmzDV|ee*L64-BRKjkj$x^drgW zSa2_pIy+|jAi$nx5sto4JBG&RNC7a#4-6EoiO@|6m! zu2zzu@8p091_-(ACu?LiX2WRUq}3Db{>IMrJb|-OYq9 z0;Wweo#i`R+p{r&3ar8{Q4tYWSJ&5X-XMx9{+nZ9}EvEQ%+N#$UrvCjIJwXKNAR-2c&KllJJ72S4{DS0s0&A#_X z_=L4UhZt|_YicyAP5lgNP9Qw`?cTIhR3a_S@$n|fVS5-G$%!5dxS6AJb#L@UH8-}b zCh9XwP3c=34pt!3={(aDif>Os1M2N-AXwP2Tft;ptgsh7LQKrzy&X@Sm9-9N4_`Rj zOnwM3L!PiUpLA|EVc~9nu$djkPI>(Qd;yXEwk<_P4t^=-L23f$ z2U?`0q|nS$eta~6RJ?uTg5t&2e1jTA#-8wF!c}t_)f!6VaLu*}MJfzaQ`7zZ{k~z% zS_=%vuP^%b+2!tB6}01dx|3RQFzUzq@4`=o{AGx4BEysC(fpwN6vMV_X;W-TA6 ze))}*bTnV7h=32_1$~t3J}}iWyPO0yV%1tL6z7P`e}^>#R=X?CBFy{YII_^`aI_-P z@_5x}tDn#Z0~|}E%B$yIH0S$D{OqpZhlQEB=XNmGthJR--?Q>&ri4S$nB640i(_>d zusiwOg%tq{-~IWnd@6rr^n&5~+8IDS-iKxT+s6aWkASY;waHR(+#9E$piq;EM|6~@wiIR(5CchUp|HK80UfQ>4@(igrY92ho}YBU%#rd4O zR33sGGk3;k(pdAhR|Dp@kS4%ufM1z9n#%Vp2h@b}5n#K!qe#yOMf(O8+H##7a#EVEx0bD{${=UZT70a>LA6MVp3dAM|%Y0S~{#?I%8W^viCP z_O%P>-rgx-W&_>=zyZco8Yq8$f2Hk6SYtUC!Ps)jYt!WQpjV-%8-#=#Y0&Ik_J!S_ z@)sj|NFRXL|KPnE)0xYcEdgu{g=$kL-qsTUB)jO|S!9`@Nk z6XtZt&S5eATfcqxtoZ@3M?9`QPm;}20B;CGWu$i4IJLc#lb}3~z=cveeofDm{^lKk zcPS_f-kBWCyA2JJ8huftPb{MR5DszcDV%cE(lqvl*=w{O>?>AQZDM6UhRj{b!pDa}Als>c)aM6?3>I()tKy&D03mH!nf|FsTq zPwg7@wfN}~NiFQ1X6b*%OsH*s{nn2{&Xb;ARHZw;vfV9T>v#)Z5M0s`E1cu07K^oDmf32wsF?pZAha|B!MoslSPoLfx-AnYfvu% zkZKl*083bIVxp2#F0J>|$DW3cC}PHt2hp6HUmIDza{-A8^)@51lw;ju+vHGzsbQc z;ln~+!3pEpYP1*rSOQ3pgSRLA){C#LSbBAEGA99_nfGZY9`RuSC!NM=Wnv=b~u3;Qy8Tu@nvRA)zzHa1vYPDr-u(I{H3kE+X}r;rKx|H<(mnAg=! z7l3)zt)OH#Hyv@kU@WuHTiSEMtR6tJ zD_q^6^G^m4+ZbTIJrP&6e>@Xkzo;2IR})BJ{%F z^#N|GURG-A_vV4Et@wR^CeWm0WYBG^YUw*czMsuI<>i7#HClOSOegY{raJ!|vK?Yb&ivfHPIf0nh&({0pLFRNA8iAsHzRh=*pYr=fh zWsYiAp~*_9WPPt*UV#$qQRh~*4lgAaJ*sz-7DKVmGO_eE;{!43d56MXJ)w#Id$;|t zFEF53yIWP1uBsZswj|&l8y>D|lDgf?mR>B?G^&Yq&q_~7U^fA$?xm7wyTYDe#G+n@ zWlTR!Ip4CBYS){bEC(zChk&&$0Y~3n3jEu*?WaQWEtB=D&vuWuMSF=k3OSAH`HAZB zTp-ME=6fy?gaTUQX|HU7lFr(7N3Itm<`UNcW){V}N#=F)l#)U?$ONeDV4)hZs&lc{ zQYQKQZH$;>BJ9?v{{h+_{@BxTC{)kM%lnDX>8yRvjC6*BnNl#5U`+oD{--rIOZNO+ zsK3$%*;}BjGGk02AqT9{ZFUsM(&*tH?PiVMR0v&Y8(3g?5LM%0Y0kG zQ}184tqgJLJTBhXfYb0d>(hz{T5oy#zoMFB0Y56U0Dtk$$^PECrI6XG@a{w8eN3!M?Z7cGbN*kUmFD_N(0OMrf-ebh23WqFk3}B&F71 zXL#%sTkIfDcNZ`L?#_quJ{z2$+I735eV|Eq3OFkz7VZo2x!o7sny*ye7-R+>`g2QR zV9}PO%&_}Dma_c}NGNyaVd!cn=)X>1S{})t@{^HT%=1gWfx!;IWxwEwM8w2$&cnox z7ulFfNsZIl84ucF4ErOIhHS>g8^mu1T6>A!W)Sec>j->zY`x_Cjcede)_uoyeFM}n zuiWasaHV=S6!5T7P0v3YPs{N|4se5{^JWH~w4Ne$^`mTGx?PyI+^moxA`ZD^ z1yP|=QCByqe-$PgW9oT8szEkGS&Yx(H%5ZA7Uv+{NM}vm@)PSA#S}4{F!ssm5fAI2 zOPP6>^FhT#n)qCZ1YxDuL6wO@L$;~vcIAbTy&yxYd+P7Ogc(=&L|d%V29Z{}$weyKW z1!$Qa6>ay(@w9@mA7=~Kmnw~#0Zo9%=dSdifyJnYidz^xn(;(XCGKf27M?=&R*{c@ z?Z8A`J#lMmt1tX1Uncn%Kf`lhM0%L^gkZn8?h!{O5LKWmlz)LDL?&x_kmlV;?5Jd- z)Wz0^A7^HneIEWUQdEc%LgT;0>2)7%0q-3X6;Yjh8YgLnyf$J$Ef7S?uD01KN{u=u z`nSUY4vxSuhsk34V~eu;Lni^RD;*~%Kx0!*2h(`WTjaSQsw!+ftE@Q?F;Qk`{#Zwy z<7!(spSxqZdPPKofVGXpx?1_8)8nn;Ks|@;N)`kQKVF`xvgbmaA=d+|v?LUZF|?no zLZdPtFm4x9zkvPd5Rqh}g%ICRk2vK8IQ{&2cQA9fSmU;n6UmRk+U!tc^Yj6n>w5Q@ zX<{iz$VHwUh~8$fo!8EZ5tWEXW3Db#w53>@+w~h9|B28_r%p8Ui9anNW3LHHJe*vi z$rw1b|Kh>**$|zBEiki@>6Dh*IQ)+>(w#XWI+Fb``B*_#E0#@fY(IyP?Xtzebn?7u zoyE-2l)PEX!wFrOxWU81Z$SuPP8)_6-_)`lFBH!N+yS|uh+i|md2uqJ{Z2dF->(Cd zb6C|4bai*R5z*rs?`S+rwm-s}-TMAwH2pz12)X0Kp5gChVsyesQ$hi6oB+$|g#g&nzWZ^`(@^`j_k=dBFqx=@a*=8ud5z+)A3bXOhigP6_jq2hs7cLnsCUZv9Y2yPJF zJm&7W?s(~Lz>)zx8QIbyM_7$}zXciJX=3a&Y1f}PI)HJK#=UJeH#eh~xjE;v(vy-} zbBgBMMTAU%s0(hY?xFAu2QM#zuxO5WdlN}TNB{*HSrix5)^-dCb{ZNW5=wlKHoO#Zc?RN` z7Bf|HZo%~g*uQW0&(F^}T~DdbjhAy<$%xegPBb?@baZFI`P`hmG9CqDpFB=9{a^b= zQtQPd@cgrxFoVZ(Keu>4UC&pNG8y|tZv6Pyi;&;bUmHmP#P_+eufG|HNC1%#*h%wD z6Gv|^Ie^r!kC%*gM_X@)0gKTI2!?!6+4jb1`q=Lba7o}MJU*23?dwWeVWn^sltAP& z8nx0}oK(iJufz@q(_AvW>F@p|6sz9|-T}&X5z=-4KVQJC$aq-UyA)jsg|kt!_NP+) z(*Z{lNvs6Y>UPNT)uP6WdsXI#+!v{@w}<0d$2sDHK-a_r#~UxIaXD;+D{Oj#1^4Q+ z7_~onkY%$5eYi_^>B}0xBp~?3{UcI72Z*Eq5C9mO4wZ5$Wi$QAjde_>&(u2A%hanCQL03DMRJN;xc8!$&wLUseSkot08qirX~;VA5_f7l`}97Msn zBw3_V^nSkkbS(Sr=_41V=~qHXhfoyp@6UPK;d42BWr;?`a zUY-f0sg^;%jRJFomF4q8JavydgFg^_jHjKGOJ%oTZlL}qVk={Je<@j_mUV9aJu}7m zSZf_E*xzpaxA*5+RD_tcG%J(%r`~>XoT4}dR`RBD$4J#@z=yH1Hc)9)008~~ho;Zs z<@`o{DxO!T7-%=ICj!P+9`AH_MpAtl@g0nqZUGO8p~#0!yHahY5wygqdfOWSp*#b@ z{O&P}r~9(Pt+5O~{MFK^D7)6Jk3bk4)`kzo_wN1DMt9N@9=%HF^N8U_{WCbYv3%XE z9NuCdaBLhCs81IuHlzx)*d0v-zj(TqEDrpXKcY;D2~LtT6NX4n*HWid?_l0Wp{k zIHruGRq0@vu|h-gI4WNMulX;L2jibTJ!Bs~=ZO3u9Js$aBx35=<8i0llL>YM;&c^r zYGff;-fL&g5$Jh9VDfm$EPdtuo3ED+;K#TDC(o(WX<5tpb}i$uXWReN*`0qw{l9$x zuMn~&5=kWM*h!YiI<{=%V>gxNhXV$9eo!Z2va7KSm(8uzQd z=X?KrpZom>%sF%3+x2>0kJtOcu8FW&w45J*ogX0~Iq#$f3%)+3e1FsM&Tf?UF2-=^ z*K;uaQP>wTzds*zr zh_a}i(H$2wY+$|`S? zg|)g?oZS(4JNpJkCP7Q$WVVN3o0)@+uabiDD*ss<=E)h9j3$tg4{;5Pk*A@N6R#f> z$eku!;49JxE&8-sE=AMvYB#4{!kCfDB_qk$s08p{O{7)8!a+5t_M73SR2Vxr@uZdF zx5gZtO8d~TGuWBWKleQxWPwXr05!;Tll`Y_VyPBUH46vi9D4jL4!8DmQaggw*UG*N zYGj;ce$W$f3P}ocs#k{z2^i4Y6&L0J^HR@UHYmUi$unV_(+{KKSJy6caKw}>fe?#Z@e%#+Gxqk}$4XACww*Xe@N1?Zn!yK4YibUn7E6gEuR;$dDc;$xv~3oAqboRGWhrQXCd=(1IJC*%V+%f-Zv!diIkY zEqe0&A+>PJ^}67i$WGz`R04mCi9T!o_tE>(QGCE}_i@^eq;s^nSy?dIbEWw@Rt2{n zR0a+dvbkLa?2U=rlO^#yxAkyYw|hcp6R#QZ%aRp|Qb~P6*RdOn+mQm812loqszW*U z;<9yxpkg-k%R<=s{B_(qi4RA?Q;i<1!Mt`x!wmc7x%=#Y?>4bqr;2 zIXTX2JBp$>ed(1bJy=m3(Tu<(%FVI=UauV#6BT8=er%z1g;_d4iG%b)4N=0MDM*)3 z5la>o;-JV2v$QNFrYv-Px+Af@ZQ4l%R{CeCj7pmqvNE>j!nX${ICsS#!)bI5Cf>~6 zia2(qzePzM2Ski{=R`_HMJVV6r$LGyNm<*6NpOw)p`NFt6Vpiha zKBawsS7<8hVIwTBy-oi9B2Q5tmu@K0>ulnj4)^xl4f02!Tw^UPX6)0UoZ^Yu);YtP zoWniCV>Z2OKbf*d+k&JXy1c(*@C_8MF(3QNT8t@u6|~B)*th#?2xNS%ws0THt?J+E z$|xu(@Cs_{R@HQ-oPXcb=2E^+pCo%Ik8NVi%XdD$Q1$%DIX*^kGZMdmLujLkn zIHS_4UiE21qxv?|rT1KW+jx9(rv&TS#QrfYw0`bN(MrvHWSDW_)Z~B@J@5HW#CVu9KP~=fQVVZ9eXw$z3MKHP&YIW~^mFmeuC| z^nQHZ@KNLTJuatyvYmUiNC)cbFsL@E&MnU$>c#oFe|tXIu1;>PJ_%j z28+gEL=+W;0y`zmmVn(n+}jEVwkz^P0p99qz=ug<`~5=U_BVGRBiQ>kW?J8-rcQ!d zpNJ3UxyY<+`w6O{whY*XtosB_8GB%$9IG5CyUKz_7qhq}B#a)h$mYbFOxD^{bDZFysO1y2H=rsg`R=;k zbYHU%T4i3GVz9C5A()vgQ%|d8f-@DUz^0@y`mGo;F{QfU8g!%2`-2$bT@cBwyg%)x zpr8S^<2*{eq-T4kGniYy=-9{A6=&c5Z+vCYeU`nSlk*DlQ#RJt{e69$ciHNLfM4t# ztu2~jGg_=tR!YW}3=Fu+$xQ+c6ouutu$UYeaFl;`HlhBP z5CMvi65;}oFOXvxE-C}fOdBFso$ULK{)Ldc;j?t_+*+$zVzt7(?YEgvmT-P^bz=U1)vO0-Y&p@L~aWdNEz5ZSA<81=Ve*M-& zO*8>__-ixZ=+|#*rewt&T4vY-2o^`3aN&lM5`K8t?8VN<+1an#KZ6qD^`5l6Dv%M1 zUvtltcIs`W#xAT^I>0O)noP1zqg4_bqD#?DuNq7tHTK<%=N+2`t3fZEL&{MVrDa7u zV%zTPH``IOK=kETWtTFQ;z6c#sX_kPb=vSNanu_kp+r&P4*DCH$xe1X8V@vzFKda+yP+2a24L8>nkgzz-xfR;0z(c$3$PTcfa(#};dZ&W*Nv}UzL&MrSKQAvY;2$kh#b*VCMvJmUZ8%(s z+$0@!Uph4OZCxGBL`Fg-{SDb+S>!7*(If^;|EJ2wo+wuvBv9hop(J)5e=j`SUQ`!?X0O+eyVG!A6fEMm{1`jcp=5U%lhdV^|Z62_9Nf4G)eOEv&xmx*-w}ZKM5r!b93`f%joMYTEZ#Um4W4DnW(XeSfA)RAa@&pLsu92 z*1r2Xkm)8>lnkb+eRSF-VJd#h-$C{V?l%zAR{`na$tPH0T4hqWlFcWrYiimQ6BAQW z5eFC7*r8uAy|b$ijU&;R>I@AJf2=aeW9H%#3xEN21doVu=4+~yaT6JWVUzP(DI)1o z!fHdZ47K3C2Rf$5IeXDw{AH^fBVw#=>&-MagFw+oJ<1KRb*9H29(;W+Px=aG19{?h zy4z77vlZ9aRpJ$l#XiSTq+h_alwLvh(X3vfG(?T>|!I&QCjLNG;85C)o`7QOGQ+>OtJggX!7Z+>( z#m|Us)ITe2*RI|7rl@G|v|{Kyl&_yfaAccA!VVZyQOCK>dx5s$cp(h2yjGh~c`Y$M z{c;r6f)c96AfC+n^X1noNC%KJl|l(#_^u1etSd>^P_*y zNRo^n<5f|R29qj}FQxBSiX}c6cy-Bkz)*+a`Fylopa6P5;Ov8mpeS%5iaR4;QBZIn z93CPN2!}^Te<(i0Klu5A$PwGHshB`Z{#f{$$@&n=HghhV93lU3W@4frkH^oeJVv9I zFyBoTAduw@BetJwW1CyuOdI(2Q8fB!%%}nwC$PWb_QM~oj(uJgM#X#N>amuGNmO*% zKm*W%e|I_kJHR#1#0Hmka&s;J?tvIzDi)&)q4j$c6hU4&Qk`x=p`x3cWp@z7kmtp{ z@GpnU!*BOlW`M;^O*I0zum)V;?(Wt1a^Bnw0?UKrKR;_15;6@=YgcC{+}0M5c~eN% zUyj>Bj~skrcv;{P8@CbCc|a^7%MVX}Q*Ruw^E5X2vL!B$Jf{{HH*^I6dh;{t zVhPRb8m{zo%c&a>nSI87v^Gr^eMFw4lM{(dAP_u}<;D;h`A$6$Je6&bXge5~5Mi2G|AQ6>3V2Y-q;w`DP6)D-Xf8yHk zgsXoy##qV7x**%z+Wu=LAr-qO^Y}a&zr{=c3l1F}9N}(3XTT%v&+-4;dh}l