From e1067dbbe5c2e833eda16f424bf30113995e0712 Mon Sep 17 00:00:00 2001 From: alt-glitch Date: Fri, 12 Jun 2026 10:32:40 +0530 Subject: [PATCH] tests: pin ink engine in _make_tui_argv npm-bootstrap tests (post-merge semantic fix) Main's rewritten test_tui_npm_install.py tests call _make_tui_argv expecting the Ink/npm flow unconditionally; with the dual-engine dispatch merged in, _resolve_tui_engine() auto-selects opentui whenever ui-opentui/dist is built in the repo, routing the call away from the path under test (first subprocess became 'node --version' instead of 'npm run build'). Pin the engine to ink via an autouse fixture, mirroring the existing pinning precedent in test_tui_resume_flow.py. --- .dockerignore | 42 + .../topic-final-response-clipped.jpg | Bin 0 -> 437826 bytes .github/workflows/deploy-site.yml | 24 +- .github/workflows/docs-site-checks.yml | 2 +- .github/workflows/nix-lockfile-fix.yml | 11 +- .github/workflows/tests.yml | 48 +- .github/workflows/typecheck.yml | 25 + .gitignore | 9 + AGENTS.md | 205 +- Dockerfile | 44 +- MANIFEST.in | 1 + README.md | 6 +- agent/agent_init.py | 4 + agent/agent_runtime_helpers.py | 40 +- agent/anthropic_adapter.py | 250 +- agent/auxiliary_client.py | 76 +- agent/bedrock_adapter.py | 45 + agent/chat_completion_helpers.py | 212 +- agent/codex_runtime.py | 153 +- agent/coding_context.py | 738 +++ agent/context_compressor.py | 79 +- agent/context_references.py | 35 +- agent/conversation_loop.py | 433 +- agent/credential_pool.py | 1 + agent/credits_tracker.py | 85 +- agent/curator.py | 17 +- agent/display.py | 22 +- agent/error_classifier.py | 52 +- agent/lsp/install.py | 3 + agent/memory_manager.py | 232 +- agent/model_metadata.py | 61 + agent/prompt_builder.py | 57 +- agent/secret_sources/bitwarden.py | 2 + agent/skill_preprocessing.py | 1 + agent/system_prompt.py | 34 + agent/tool_executor.py | 27 +- agent/transports/anthropic.py | 53 +- agent/transports/codex_app_server.py | 1 + agent/transports/codex_app_server_session.py | 30 + agent/transports/types.py | 12 + agent/turn_finalizer.py | 428 ++ agent/usage_pricing.py | 3 + apps/bootstrap-installer/package.json | 5 +- apps/bootstrap-installer/tsconfig.json | 3 +- apps/desktop/README.md | 2 +- apps/desktop/assets/icon.icns | Bin 1506150 -> 574273 bytes apps/desktop/assets/icon.ico | Bin 79558 -> 370070 bytes apps/desktop/assets/icon.png | Bin 689840 -> 574273 bytes apps/desktop/electron/bootstrap-runner.cjs | 13 +- apps/desktop/electron/dashboard-token.cjs | 99 + .../desktop/electron/dashboard-token.test.cjs | 142 + apps/desktop/electron/fs-read-dir.cjs | 109 + apps/desktop/electron/fs-read-dir.test.cjs | 364 ++ apps/desktop/electron/git-root.cjs | 54 + apps/desktop/electron/git-root.test.cjs | 40 + apps/desktop/electron/hardening.cjs | 145 +- apps/desktop/electron/hardening.test.cjs | 150 + apps/desktop/electron/main.cjs | 848 +++- apps/desktop/electron/port-pool.cjs | 73 + apps/desktop/electron/port-pool.test.cjs | 77 + apps/desktop/electron/preload.cjs | 12 + apps/desktop/electron/session-windows.cjs | 86 + .../desktop/electron/session-windows.test.cjs | 165 + apps/desktop/electron/update-remote.cjs | 56 + apps/desktop/electron/update-remote.test.cjs | 78 + apps/desktop/electron/vscode-marketplace.cjs | 331 ++ .../electron/vscode-marketplace.test.cjs | 113 + .../electron/windows-child-process.test.cjs | 54 + apps/desktop/electron/workspace-cwd.cjs | 38 + apps/desktop/electron/workspace-cwd.test.cjs | 45 + apps/desktop/eslint.config.mjs | 3 - apps/desktop/package.json | 19 +- apps/desktop/public/apple-touch-icon.png | Bin 1127128 -> 541053 bytes apps/desktop/src/app/artifacts/index.tsx | 6 +- .../src/app/chat/composer/attachments.tsx | 64 +- .../app/chat/composer/completion-drawer.tsx | 31 +- .../src/app/chat/composer/controls.tsx | 6 +- .../composer/enter-submit-dom-race.test.tsx | 189 + .../hooks/use-live-completion-adapter.ts | 7 + .../composer/hooks/use-slash-completions.ts | 145 +- apps/desktop/src/app/chat/composer/index.tsx | 339 +- .../src/app/chat/composer/inline-refs.ts | 6 + .../src/app/chat/composer/rich-editor.ts | 23 +- .../app/chat/composer/skin-slash-popover.tsx | 61 - .../src/app/chat/composer/text-utils.test.ts | 27 + .../src/app/chat/composer/text-utils.ts | 22 +- .../chat/composer/trigger-popover.test.tsx | 10 +- .../src/app/chat/composer/trigger-popover.tsx | 135 +- .../chat/hooks/use-composer-actions.test.ts | 57 + .../app/chat/hooks/use-composer-actions.ts | 31 +- apps/desktop/src/app/chat/index.tsx | 27 +- .../src/app/chat/right-rail/preview-file.tsx | 21 +- .../app/chat/right-rail/preview-pane.test.tsx | 41 +- .../src/app/chat/right-rail/preview-pane.tsx | 2 + .../app/chat/sidebar/cron-jobs-section.tsx | 83 +- apps/desktop/src/app/chat/sidebar/index.tsx | 646 ++- .../src/app/chat/sidebar/load-more-row.tsx | 30 + .../src/app/chat/sidebar/profile-switcher.tsx | 13 +- .../app/chat/sidebar/session-actions-menu.tsx | 16 +- .../src/app/chat/sidebar/session-row.tsx | 26 +- .../desktop/src/app/command-palette/index.tsx | 239 +- .../marketplace-theme-page.tsx | 157 + apps/desktop/src/app/desktop-controller.tsx | 282 +- apps/desktop/src/app/floating-hud.ts | 22 + .../src/app/gateway/hooks/use-gateway-boot.ts | 12 + apps/desktop/src/app/hooks/use-keybinds.ts | 115 +- .../app/right-sidebar/files/dnd-manager.ts | 27 + .../src/app/right-sidebar/files/ipc.test.ts | 100 + .../src/app/right-sidebar/files/ipc.ts | 30 +- .../app/right-sidebar/files/remote-picker.tsx | 177 + .../src/app/right-sidebar/files/tree.tsx | 9 +- .../files/use-project-tree.test.ts | 48 +- .../right-sidebar/files/use-project-tree.ts | 31 +- apps/desktop/src/app/right-sidebar/index.tsx | 121 +- apps/desktop/src/app/right-sidebar/store.ts | 4 - .../src/app/right-sidebar/terminal/buffer.ts | 65 + .../src/app/right-sidebar/terminal/index.tsx | 38 +- .../app/right-sidebar/terminal/persistent.tsx | 6 +- .../app/right-sidebar/terminal/selection.ts | 121 +- .../terminal/use-terminal-session.ts | 353 +- .../src/app/session-picker-overlay.tsx | 32 + apps/desktop/src/app/session-switcher.tsx | 107 + .../app/session/hooks/use-message-stream.ts | 109 +- .../session/hooks/use-model-controls.test.tsx | 77 + .../app/session/hooks/use-model-controls.ts | 15 +- .../session/hooks/use-prompt-actions.test.tsx | 576 ++- .../app/session/hooks/use-prompt-actions.ts | 1038 ++-- .../session/hooks/use-route-resume.test.tsx | 122 + .../src/app/session/hooks/use-route-resume.ts | 39 +- .../app/session/hooks/use-session-actions.ts | 165 +- .../hooks/use-session-state-cache.test.tsx | 99 +- .../session/hooks/use-session-state-cache.ts | 51 +- .../src/app/settings/appearance-settings.tsx | 188 +- .../src/app/settings/model-settings.tsx | 21 +- .../src/app/settings/sessions-settings.tsx | 16 +- apps/desktop/src/app/shell/app-shell.tsx | 34 +- .../app/shell/hooks/use-statusbar-items.tsx | 97 +- .../src/app/shell/model-menu-panel.tsx | 18 +- apps/desktop/src/app/types.ts | 41 + apps/desktop/src/app/updates-overlay.tsx | 57 +- .../assistant-ui/directive-text.tsx | 44 +- .../components/assistant-ui/markdown-text.tsx | 8 +- .../message-render-boundary.test.tsx | 80 + .../assistant-ui/message-render-boundary.tsx | 48 + .../assistant-ui/streaming.test.tsx | 33 + .../assistant-ui/thread-virtualizer.tsx | 28 +- .../src/components/assistant-ui/thread.tsx | 177 +- .../assistant-ui/tool-approval.test.tsx | 45 +- .../components/assistant-ui/tool-approval.tsx | 24 +- .../components/assistant-ui/tool-fallback.tsx | 24 +- .../assistant-ui/user-message-edit.test.tsx | 141 + .../assistant-ui/user-message-text.tsx | 4 +- .../desktop-onboarding-overlay.test.tsx | 6 +- .../components/desktop-onboarding-overlay.tsx | 49 +- .../gateway-connecting-overlay.test.tsx | 3 +- .../components/model-visibility-dialog.tsx | 13 + .../src/components/pane-shell/pane-shell.tsx | 26 +- .../desktop/src/components/session-picker.tsx | 108 + apps/desktop/src/components/ui/tool-icon.tsx | 65 + apps/desktop/src/global.d.ts | 41 +- apps/desktop/src/hermes.test.ts | 13 +- apps/desktop/src/hermes.ts | 17 +- apps/desktop/src/i18n/en.ts | 78 +- apps/desktop/src/i18n/ja.ts | 63 +- apps/desktop/src/i18n/types.ts | 56 +- apps/desktop/src/i18n/zh-hant.ts | 63 +- apps/desktop/src/i18n/zh.ts | 75 +- apps/desktop/src/lib/ansi.ts | 11 + apps/desktop/src/lib/chat-messages.ts | 5 + apps/desktop/src/lib/chat-runtime.test.ts | 38 +- apps/desktop/src/lib/chat-runtime.ts | 30 + apps/desktop/src/lib/desktop-fs.test.ts | 116 + apps/desktop/src/lib/desktop-fs.ts | 95 + .../src/lib/desktop-slash-commands.test.ts | 56 +- .../desktop/src/lib/desktop-slash-commands.ts | 384 +- apps/desktop/src/lib/external-link.test.tsx | 27 + apps/desktop/src/lib/external-link.tsx | 11 +- apps/desktop/src/lib/gateway-events.test.ts | 27 + apps/desktop/src/lib/gateway-events.ts | 16 + apps/desktop/src/lib/keybinds/actions.ts | 31 +- apps/desktop/src/lib/keybinds/combo.test.ts | 86 + apps/desktop/src/lib/keybinds/combo.ts | 82 +- apps/desktop/src/lib/local-preview.ts | 25 +- .../src/lib/model-status-label.test.ts | 2 + apps/desktop/src/lib/session-export.ts | 4 +- apps/desktop/src/lib/session-source.ts | 64 + apps/desktop/src/lib/update-copy.test.ts | 38 + apps/desktop/src/lib/update-copy.ts | 44 + apps/desktop/src/store/composer.test.ts | 106 + apps/desktop/src/store/composer.ts | 116 + apps/desktop/src/store/keybinds.ts | 10 +- apps/desktop/src/store/layout.ts | 14 + .../src/store/model-visibility.test.ts | 86 + apps/desktop/src/store/model-visibility.ts | 50 +- apps/desktop/src/store/onboarding.test.ts | 49 +- apps/desktop/src/store/onboarding.ts | 65 +- apps/desktop/src/store/preview.ts | 11 +- apps/desktop/src/store/prompts.test.ts | 6 + apps/desktop/src/store/prompts.ts | 2 + .../src/store/session-switcher.test.ts | 115 + apps/desktop/src/store/session-switcher.ts | 128 + apps/desktop/src/store/session.test.ts | 179 +- apps/desktop/src/store/session.ts | 172 +- apps/desktop/src/store/updates.test.ts | 126 +- apps/desktop/src/store/updates.ts | 211 +- apps/desktop/src/store/windows.test.ts | 93 + apps/desktop/src/store/windows.ts | 52 + apps/desktop/src/styles.css | 49 +- apps/desktop/src/themes/color.ts | 142 + apps/desktop/src/themes/context.tsx | 159 +- apps/desktop/src/themes/install.test.ts | 119 + apps/desktop/src/themes/install.ts | 95 + apps/desktop/src/themes/profile-theme.test.ts | 41 + apps/desktop/src/themes/types.ts | 35 + apps/desktop/src/themes/user-themes.test.ts | 63 + apps/desktop/src/themes/user-themes.ts | 122 + apps/desktop/src/themes/vscode.test.ts | 171 + apps/desktop/src/themes/vscode.ts | 343 ++ apps/desktop/src/types/hermes.ts | 33 + apps/desktop/tsconfig.json | 4 +- apps/shared/package.json | 2 +- cli-config.yaml.example | 34 +- cli.py | 3680 +++----------- cron/blueprint_catalog.py | 713 +++ cron/jobs.py | 44 - cron/scheduler.py | 200 +- cron/scripts/__init__.py | 1 + cron/scripts/classify_items.py | 226 + cron/suggestion_catalog.py | 154 + cron/suggestions.py | 257 + docker/stage2-hook.sh | 8 + docs/design/profile-builder.md | 144 + docs/opentui-env-flags.md | 57 - docs/opentui-memory-story.md | 207 - docs/opentui-upstream-alignment.md | 73 - ...gram-stream-overflow-continuations-plan.md | 240 + gateway/authz_mixin.py | 434 ++ gateway/config.py | 90 +- gateway/platforms/api_server.py | 67 +- gateway/platforms/base.py | 47 +- gateway/platforms/matrix.py | 1703 +++++-- gateway/platforms/slack.py | 33 +- gateway/platforms/telegram.py | 189 +- gateway/platforms/whatsapp.py | 77 +- gateway/platforms/yuanbao.py | 446 +- gateway/run.py | 4517 +++-------------- gateway/session.py | 28 + gateway/session_context.py | 3 + gateway/slash_commands.py | 3649 +++++++++++++ gateway/stream_consumer.py | 84 +- hermes-already-has-routines.md | 2 +- hermes_cli/__init__.py | 75 +- hermes_cli/active_sessions.py | 320 ++ hermes_cli/auth.py | 206 +- hermes_cli/auth_commands.py | 35 +- hermes_cli/backup.py | 35 +- hermes_cli/banner.py | 66 +- hermes_cli/blueprint_cmd.py | 318 ++ hermes_cli/cli_agent_setup_mixin.py | 681 +++ hermes_cli/cli_commands_mixin.py | 2263 +++++++++ hermes_cli/commands.py | 184 +- hermes_cli/config.py | 269 +- hermes_cli/cron.py | 9 - hermes_cli/dashboard_auth/prefix.py | 48 +- hermes_cli/dashboard_register.py | 151 +- hermes_cli/doctor.py | 64 +- hermes_cli/dump.py | 11 + hermes_cli/gateway.py | 171 +- hermes_cli/main.py | 3315 +++--------- hermes_cli/mcp_config.py | 2 + hermes_cli/model_catalog.py | 31 + hermes_cli/model_cost_guard.py | 134 + hermes_cli/model_setup_flows.py | 2736 ++++++++++ hermes_cli/models.py | 108 +- hermes_cli/plugins.py | 13 + hermes_cli/plugins_cmd.py | 325 +- hermes_cli/profiles.py | 5 + hermes_cli/providers.py | 5 +- hermes_cli/pty_bridge.py | 14 +- hermes_cli/runtime_provider.py | 32 +- hermes_cli/service_manager.py | 42 + hermes_cli/skills_hub.py | 59 +- hermes_cli/subcommands/cron.py | 8 - hermes_cli/subcommands/dashboard.py | 20 + hermes_cli/subcommands/mcp.py | 6 +- hermes_cli/suggestions_cmd.py | 153 + hermes_cli/tools_config.py | 13 +- hermes_cli/web_server.py | 2317 +++++++-- hermes_cli/win_pty_bridge.py | 179 + hermes_cli/write_approval_commands.py | 209 + hermes_state.py | 354 +- locales/af.yaml | 14 + locales/de.yaml | 14 + locales/en.yaml | 11 + locales/es.yaml | 14 + locales/fr.yaml | 14 + locales/ga.yaml | 14 + locales/hu.yaml | 14 + locales/it.yaml | 14 + locales/ja.yaml | 14 + locales/ko.yaml | 14 + locales/pt.yaml | 14 + locales/ru.yaml | 14 + locales/tr.yaml | 14 + locales/uk.yaml | 14 + locales/zh-hant.yaml | 14 + locales/zh.yaml | 14 + model_tools.py | 13 + nix/lib.nix | 48 +- nix/nixosModules.nix | 15 +- .../blockchain/hyperliquid/SKILL.md | 4 +- .../hyperliquid/scripts/hyperliquid_client.py | 2 +- .../kanban-video-orchestrator/SKILL.md | 2 +- .../assets/setup.sh.tmpl | 7 +- .../references/kanban-setup.md | 10 +- .../references/tool-matrix.md | 4 +- optional-skills/devops/watchers/SKILL.md | 2 +- .../devops/watchers/scripts/watch_github.py | 3 +- .../mlops}/obliteratus/SKILL.md | 0 .../references/analysis-modules.md | 0 .../obliteratus/references/methods-guide.md | 0 .../templates/abliteration-config.yaml | 0 .../obliteratus/templates/analysis-study.yaml | 0 .../templates/batch-abliteration.yaml | 0 optional-skills/productivity/canvas/SKILL.md | 2 +- .../productivity/canvas/scripts/canvas_api.py | 5 +- optional-skills/productivity/shopify/SKILL.md | 2 +- optional-skills/productivity/siyuan/SKILL.md | 2 +- .../productivity/telephony/SKILL.md | 8 +- .../telephony/scripts/telephony.py | 30 +- optional-skills/security/1password/SKILL.md | 2 +- .../security}/godmode/SKILL.md | 2 +- .../godmode/references/jailbreak-templates.md | 0 .../godmode/references/refusal-detection.md | 0 .../godmode/scripts/auto_jailbreak.py | 0 .../security}/godmode/scripts/godmode_race.py | 0 .../security}/godmode/scripts/load_godmode.py | 0 .../security}/godmode/scripts/parseltongue.py | 0 .../godmode/templates/prefill-subtle.json | 0 .../security}/godmode/templates/prefill.json | 0 .../rest-graphql-debug/SKILL.md | 2 +- package-lock.json | 556 +- plugins/google_meet/audio_bridge.py | 4 + plugins/memory/byterover/__init__.py | 1 + plugins/memory/hindsight/__init__.py | 2 + plugins/memory/honcho/cli.py | 1 + plugins/memory/honcho/client.py | 208 +- .../model-providers/openrouter/__init__.py | 76 +- plugins/observability/langfuse/__init__.py | 37 +- plugins/observability/nemo_relay/README.md | 36 +- plugins/observability/nemo_relay/__init__.py | 266 +- plugins/platforms/discord/adapter.py | 254 +- plugins/platforms/discord/voice_mixer.py | 1 + plugins/platforms/photon/README.md | 137 + plugins/platforms/photon/__init__.py | 4 + plugins/platforms/photon/adapter.py | 1162 +++++ plugins/platforms/photon/auth.py | 1065 ++++ plugins/platforms/photon/cli.py | 387 ++ plugins/platforms/photon/plugin.yaml | 76 + plugins/platforms/photon/sidecar/README.md | 52 + plugins/platforms/photon/sidecar/index.mjs | 542 ++ .../photon/sidecar/package-lock.json | 1703 +++++++ plugins/platforms/photon/sidecar/package.json | 24 + plugins/platforms/simplex/adapter.py | 990 +++- plugins/platforms/simplex/plugin.yaml | 23 +- plugins/plugin_utils.py | 135 + plugins/video_gen/fal/__init__.py | 13 +- plugins/web/parallel/provider.py | 473 +- pyproject.toml | 47 +- run_agent.py | 56 +- scripts/build_skills_index.py | 70 +- scripts/check_subprocess_stdin.py | 177 + scripts/install.ps1 | 154 +- scripts/install.sh | 159 +- scripts/release.py | 33 + scripts/run_tests_parallel.py | 196 +- scripts/whatsapp-bridge/bridge.js | 29 +- .../hermes-agent/SKILL.md | 4 +- .../hermes-agent/references/webhooks.md | 2 +- skills/github/github-auth/SKILL.md | 4 +- skills/github/github-auth/scripts/gh-env.sh | 4 +- skills/github/github-code-review/SKILL.md | 4 +- skills/github/github-issues/SKILL.md | 4 +- skills/github/github-pr-workflow/SKILL.md | 4 +- skills/github/github-repo-management/SKILL.md | 4 +- skills/media/gif-search/SKILL.md | 2 +- skills/note-taking/obsidian/SKILL.md | 2 +- skills/productivity/airtable/SKILL.md | 4 +- skills/productivity/notion/SKILL.md | 4 +- .../teams-meeting-pipeline/SKILL.md | 2 +- skills/research/llm-wiki/SKILL.md | 2 +- tests/agent/test_anthropic_adapter.py | 67 + tests/agent/test_anthropic_kwargs_sanitize.py | 94 + .../agent/test_anthropic_output_field_leak.py | 96 + .../test_anthropic_thinking_block_order.py | 314 ++ tests/agent/test_auxiliary_client.py | 181 + tests/agent/test_bedrock_adapter.py | 124 + tests/agent/test_cascading_interrupt_6600.py | 134 + tests/agent/test_coding_context.py | 451 ++ tests/agent/test_context_compressor.py | 11 +- ...t_context_compressor_temporal_anchoring.py | 4 +- tests/agent/test_context_references.py | 27 +- tests/agent/test_credits_cold_start.py | 23 +- tests/agent/test_credits_policy.py | 137 + tests/agent/test_curator.py | 4 +- tests/agent/test_display.py | 41 + tests/agent/test_error_classifier.py | 87 + tests/agent/test_memory_async_sync.py | 138 + tests/agent/test_memory_provider.py | 7 +- tests/agent/test_memory_session_switch.py | 2 + tests/agent/test_model_metadata.py | 53 + tests/agent/test_prompt_builder.py | 48 + tests/agent/test_resume_stale_active_task.py | 29 +- tests/agent/test_stream_read_timeout_floor.py | 111 + tests/agent/test_summary_prefix_semantics.py | 58 +- tests/agent/test_system_prompt.py | 41 + tests/agent/test_usage_pricing.py | 26 + .../test_codex_app_server_session.py | 34 + tests/cli/test_cli_approval_ui.py | 117 + tests/cli/test_cli_browser_connect.py | 2 +- tests/cli/test_cli_status_bar.py | 51 + .../cli/test_single_query_session_finalize.py | 270 + tests/cli/test_slash_confirm_windows.py | 499 +- tests/cron/test_blueprint_catalog.py | 245 + tests/cron/test_cron_profile.py | 449 -- .../cron/test_cron_prompt_injection_skill.py | 131 + tests/cron/test_parallel_pool.py | 6 +- tests/cron/test_scheduler.py | 2 +- tests/cron/test_suggestions.py | 198 + tests/docker/test_container_restart.py | 76 + tests/gateway/restart_test_helpers.py | 1 + .../test_42039_duplicate_user_message.py | 241 + tests/gateway/test_busy_session_ack.py | 52 + .../test_compression_concurrent_sessions.py | 28 + tests/gateway/test_config.py | 83 + tests/gateway/test_discord_connect.py | 90 +- tests/gateway/test_discord_model_picker.py | 88 + tests/gateway/test_document_context_note.py | 57 + tests/gateway/test_gateway_shutdown.py | 87 + tests/gateway/test_matrix.py | 1530 +++++- ...st_matrix_approval_reaction_fail_closed.py | 39 +- tests/gateway/test_matrix_exec_approval.py | 4 +- .../test_matrix_project_context_isolation.py | 510 ++ tests/gateway/test_max_concurrent_sessions.py | 208 + tests/gateway/test_media_extraction.py | 101 +- .../test_model_command_expensive_confirm.py | 186 + tests/gateway/test_queue_consumption.py | 92 + tests/gateway/test_restart_drain.py | 68 + tests/gateway/test_restart_notification.py | 4 + tests/gateway/test_run_progress_topics.py | 293 ++ tests/gateway/test_session.py | 24 + tests/gateway/test_session_api.py | 48 + tests/gateway/test_session_env.py | 11 + tests/gateway/test_shutdown_cache_cleanup.py | 6 + tests/gateway/test_simplex_plugin.py | 21 +- tests/gateway/test_stream_consumer.py | 49 +- .../test_stream_consumer_fresh_final.py | 194 + tests/gateway/test_stt_config.py | 48 +- tests/gateway/test_telegram_audio_vs_voice.py | 4 + tests/gateway/test_telegram_format.py | 2 +- tests/gateway/test_telegram_model_picker.py | 59 +- .../gateway/test_telegram_overflow_partial.py | 140 + .../test_telegram_voice_v0_regressions.py | 71 + tests/gateway/test_update_command.py | 11 +- tests/gateway/test_usage_command.py | 8 +- tests/gateway/test_voice_command.py | 71 +- tests/gateway/test_whatsapp_stale_bridge.py | 341 ++ tests/hermes_cli/conftest.py | 12 +- tests/hermes_cli/test_active_sessions.py | 313 ++ .../test_anthropic_picker_curated.py | 58 + .../hermes_cli/test_apply_profile_override.py | 77 + tests/hermes_cli/test_auth_codex_provider.py | 396 +- tests/hermes_cli/test_auth_commands.py | 87 +- tests/hermes_cli/test_auth_manual_paste.py | 46 +- tests/hermes_cli/test_backup.py | 97 + tests/hermes_cli/test_banner.py | 33 + .../test_cli_active_session_limit.py | 41 + tests/hermes_cli/test_codex_models.py | 6 +- tests/hermes_cli/test_commands.py | 187 +- tests/hermes_cli/test_config.py | 88 + tests/hermes_cli/test_cron.py | 6 - ...ds_cron.py => test_cron_parser_builder.py} | 7 +- .../test_dashboard_admin_endpoints.py | 121 +- .../test_dashboard_auth_middleware.py | 105 + .../hermes_cli/test_dashboard_auth_prefix.py | 84 + tests/hermes_cli/test_dashboard_register.py | 403 +- .../test_dashboard_unified_launch.py | 195 + tests/hermes_cli/test_doctor.py | 48 + tests/hermes_cli/test_ensure_utf8_locale.py | 179 + tests/hermes_cli/test_gateway.py | 19 + tests/hermes_cli/test_gateway_linger.py | 9 + tests/hermes_cli/test_gateway_service.py | 257 +- tests/hermes_cli/test_gui_command.py | 113 +- tests/hermes_cli/test_mcp_add_command_dest.py | 24 + tests/hermes_cli/test_model_cost_guard.py | 97 + .../test_model_picker_expensive_confirm.py | 64 + .../test_model_switch_custom_providers.py | 9 + tests/hermes_cli/test_plugins.py | 34 + tests/hermes_cli/test_plugins_cmd.py | 200 +- .../test_plugins_cmd_category_discovery.py | 355 ++ .../test_plugins_cmd_enable_disable_nested.py | 193 + tests/hermes_cli/test_plugins_cmd_list.py | 18 +- tests/hermes_cli/test_profiles.py | 12 + tests/hermes_cli/test_pty_bridge.py | 70 + .../test_resolve_provider_openrouter_pool.py | 76 + .../test_runtime_provider_resolution.py | 70 + tests/hermes_cli/test_service_manager.py | 108 + .../test_setup_ollama_cloud_force_refresh.py | 7 +- tests/hermes_cli/test_skills_hub.py | 38 + .../hermes_cli/test_system_stats_platform.py | 44 + .../test_terminal_menu_fallbacks.py | 41 + tests/hermes_cli/test_tools_config.py | 13 + tests/hermes_cli/test_tui_npm_install.py | 93 + tests/hermes_cli/test_tui_resume_flow.py | 40 + tests/hermes_cli/test_update_autostash.py | 21 +- tests/hermes_cli/test_update_check.py | 34 +- .../test_update_interrupted_recovery.py | 218 + tests/hermes_cli/test_web_server.py | 581 ++- tests/hermes_cli/test_web_server_files.py | 246 + tests/hermes_cli/test_web_server_fs.py | 188 + .../test_web_server_profile_unification.py | 395 ++ .../hermes_cli/test_web_server_pty_import.py | 83 + .../test_web_server_skill_editor.py | 259 + .../test_web_server_skills_profiles.py | 210 + tests/hermes_cli/test_web_ui_build.py | 51 + tests/hermes_cli/test_win_pty_bridge.py | 315 ++ tests/hermes_cli/test_xai_model_flow.py | 78 + tests/hermes_state/test_session_archiving.py | 51 + tests/honcho_plugin/test_client.py | 11 +- tests/plugins/platforms/photon/test_auth.py | 609 +++ .../plugins/platforms/photon/test_inbound.py | 314 ++ .../platforms/photon/test_mention_gating.py | 138 + .../platforms/photon/test_outbound_media.py | 255 + .../platforms/photon/test_setup_access.py | 69 + tests/plugins/test_discord_runtime_failure.py | 59 + tests/plugins/test_langfuse_plugin.py | 107 + tests/plugins/test_nemo_relay_plugin.py | 715 ++- .../plugins/web/test_parallel_keyless_mcp.py | 383 ++ .../web/test_web_search_provider_plugins.py | 27 +- tests/providers/test_profile_wiring.py | 8 +- tests/providers/test_provider_profiles.py | 186 + tests/providers/test_transport_parity.py | 18 +- tests/run_agent/test_callable_api_key.py | 7 +- .../test_codex_app_server_integration.py | 50 + .../test_partial_stream_finish_reason.py | 95 + tests/run_agent/test_percentage_clamp.py | 6 +- tests/run_agent/test_run_agent.py | 82 +- tests/run_agent/test_streaming.py | 84 + .../test_thinking_sig_recovery_persistence.py | 93 + .../scripts/test_build_skills_index_health.py | 99 + ...t_dashboard_sidecar_close_on_disconnect.py | 13 + tests/test_docker_home_override_scripts.py | 12 + tests/test_empty_session_hygiene.py | 161 + ...st_get_tool_definitions_cache_isolation.py | 21 + tests/test_honcho_client_concurrency.py | 109 + tests/test_install_no_initial_commit.py | 136 + ...test_model_forces_max_completion_tokens.py | 137 + tests/test_output_cap_parsing.py | 37 + tests/test_packaging_metadata.py | 75 + tests/test_plugin_utils.py | 159 + tests/test_project_metadata.py | 97 + tests/test_run_tests_parallel.py | 108 + tests/test_slash_worker_watchdog.py | 21 + tests/test_state_db_malformed_repair.py | 244 + tests/test_tui_gateway_server.py | 1031 +++- tests/test_tui_gateway_ws.py | 89 + tests/test_web_server.py | 16 + tests/test_yuanbao_pipeline.py | 573 ++- tests/tools/test_approval.py | 38 + tests/tools/test_blueprints.py | 188 + tests/tools/test_command_guards.py | 62 + tests/tools/test_computer_use.py | 34 +- .../test_computer_use_capture_routing.py | 6 +- tests/tools/test_cronjob_tools.py | 51 + tests/tools/test_docker_environment.py | 1 + tests/tools/test_dockerfile_pid1_reaping.py | 25 + tests/tools/test_local_env_blocklist.py | 88 +- tests/tools/test_local_shell_init.py | 43 + tests/tools/test_mcp_capability_gating.py | 158 + tests/tools/test_mcp_loop_profile_override.py | 139 + tests/tools/test_mcp_stability.py | 11 +- tests/tools/test_mcp_tool.py | 77 + tests/tools/test_process_registry.py | 38 + tests/tools/test_send_message_target_parse.py | 20 + tests/tools/test_send_message_tool.py | 5 + tests/tools/test_skills_hub.py | 83 +- tests/tools/test_skills_hub_clawhub.py | 196 + tests/tools/test_skills_tool.py | 20 + tests/tools/test_subprocess_stdin_guard.py | 70 + tests/tools/test_terminal_config_env_sync.py | 30 +- tests/tools/test_terminal_tool.py | 75 + tests/tools/test_tts_gemini.py | 164 + .../test_web_keyless_default_fallback.py | 100 + tests/tools/test_web_providers.py | 73 +- tests/tools/test_web_providers_ddgs.py | 8 +- tests/tools/test_web_providers_searxng.py | 7 +- tests/tools/test_web_tools_config.py | 146 +- tests/tools/test_windows_native_support.py | 14 +- tests/tools/test_write_approval.py | 384 ++ tests/tui_gateway/test_protocol.py | 38 + tools/approval.py | 54 +- tools/blueprints.py | 325 ++ tools/checkpoint_manager.py | 2 + tools/code_execution_tool.py | 1 + tools/computer_use/tool.py | 83 +- tools/cronjob_tools.py | 35 +- tools/env_probe.py | 1 + tools/environments/docker.py | 18 +- tools/environments/local.py | 80 +- tools/environments/singularity.py | 5 +- tools/lazy_deps.py | 6 +- tools/mcp_tool.py | 209 +- tools/memory_tool.py | 99 +- tools/process_registry.py | 9 +- tools/read_terminal_tool.py | 93 + tools/send_message_tool.py | 2 +- tools/skill_manager_tool.py | 82 + tools/skills_hub.py | 228 +- tools/skills_tool.py | 13 +- tools/terminal_tool.py | 58 +- tools/tirith_security.py | 2 + tools/transcription_tools.py | 9 +- tools/tts_tool.py | 230 +- tools/voice_mode.py | 7 +- tools/web_tools.py | 247 +- tools/write_approval.py | 493 ++ toolsets.py | 30 + tui_gateway/server.py | 1220 ++++- tui_gateway/slash_worker.py | 61 + tui_gateway/ws.py | 45 +- ui-opentui/.node-version | 1 - ui-opentui/README.md | 53 - ui-opentui/eslint.config.mjs | 6 +- ui-opentui/package.json | 3 - ui-opentui/src/logic/env.ts | 15 - ui-opentui/src/logic/slash.ts | 36 +- ui-opentui/src/logic/store.ts | 27 +- ui-opentui/src/logic/window.ts | 263 - ui-opentui/src/test/lib/render.ts | 3 - ui-opentui/src/test/slash.test.ts | 38 - ui-opentui/src/test/store.test.ts | 32 +- ui-opentui/src/test/transcriptWindow.test.tsx | 370 -- ui-opentui/src/test/utilityCommands.test.ts | 13 - ui-opentui/src/test/window.test.ts | 375 -- ui-opentui/src/view/transcript.tsx | 454 +- ui-tui/eslint.config.mjs | 4 - ui-tui/package.json | 8 +- .../src/ink/app-rawmode-mouse.test.ts | 91 + .../hermes-ink/src/ink/components/App.tsx | 25 + .../__tests__/appChromeStatusRule.test.tsx | 68 + ui-tui/src/__tests__/approvalAction.test.ts | 11 + .../createGatewayEventHandler.test.ts | 39 +- .../src/__tests__/createSlashHandler.test.ts | 3 + ui-tui/src/__tests__/gatewayClient.test.ts | 187 +- ui-tui/src/__tests__/paths.test.ts | 42 +- ui-tui/src/__tests__/terminalModes.test.ts | 22 + ui-tui/src/app/createGatewayEventHandler.ts | 17 +- ui-tui/src/app/interfaces.ts | 3 + ui-tui/src/app/overlayStore.ts | 8 +- ui-tui/src/app/slash/commands/ops.ts | 28 + ui-tui/src/app/slash/commands/session.ts | 21 +- ui-tui/src/app/uiStore.ts | 1 + ui-tui/src/app/useInputHandlers.ts | 4 + ui-tui/src/app/useMainApp.ts | 34 +- ui-tui/src/components/appChrome.tsx | 27 + ui-tui/src/components/appLayout.tsx | 1 + ui-tui/src/components/appOverlays.tsx | 8 + ui-tui/src/components/branding.tsx | 6 + ui-tui/src/components/pluginsHub.tsx | 238 + ui-tui/src/components/prompts.tsx | 37 +- ui-tui/src/domain/paths.ts | 24 + ui-tui/src/entry.tsx | 18 +- ui-tui/src/gatewayClient.ts | 25 +- ui-tui/src/gatewayTypes.ts | 8 +- ui-tui/src/lib/memory.test.ts | 162 + ui-tui/src/lib/memory.ts | 61 +- ui-tui/src/lib/memoryMonitor.ts | 13 + ui-tui/src/lib/osc52.ts | 2 +- ui-tui/src/types.ts | 4 + ui-tui/tsconfig.build.json | 1 - ui-tui/tsconfig.json | 3 +- utils.py | 38 + uv.lock | 148 +- web/package.json | 7 +- web/src/App.tsx | 55 +- web/src/components/AutomationBlueprints.tsx | 222 + web/src/components/ChatSidebar.tsx | 25 +- web/src/components/ConfirmDialog.tsx | 122 + web/src/components/ModelPickerDialog.tsx | 127 +- web/src/components/ProfileScopeBanner.tsx | 30 + web/src/components/ProfileSwitcher.tsx | 67 + web/src/components/SkillEditorDialog.tsx | 215 + web/src/components/ToolsetConfigDrawer.tsx | 17 +- web/src/contexts/ProfileProvider.tsx | 115 + web/src/contexts/profile-context.ts | 19 + web/src/contexts/useProfileScope.ts | 6 + web/src/i18n/en.ts | 10 +- web/src/i18n/types.ts | 10 + web/src/lib/api.ts | 290 +- web/src/pages/ChannelsPage.tsx | 50 +- web/src/pages/ChatPage.tsx | 16 +- web/src/pages/ConfigPage.tsx | 12 +- web/src/pages/CronPage.tsx | 145 +- web/src/pages/FilesPage.tsx | 538 ++ web/src/pages/ModelsPage.tsx | 72 +- web/src/pages/PluginsPage.tsx | 2 +- web/src/pages/ProfileBuilderPage.tsx | 611 +++ web/src/pages/ProfilesPage.tsx | 75 +- web/src/pages/SkillsPage.tsx | 141 +- web/src/pages/SystemPage.tsx | 20 +- web/src/pages/WebhooksPage.tsx | 160 +- web/tsconfig.app.json | 1 - .../docs/developer-guide/creating-skills.md | 63 + .../developer-guide/model-provider-plugin.md | 5 +- ...-templates.md => automation-blueprints.md} | 12 +- website/docs/guides/build-a-hermes-plugin.md | 47 + .../automation-blueprints-catalog.mdx | 36 + website/docs/reference/cli-commands.md | 7 +- .../docs/reference/environment-variables.md | 16 + .../docs/reference/optional-skills-catalog.md | 2 + website/docs/reference/skills-catalog.md | 7 - website/docs/reference/slash-commands.md | 8 +- website/docs/user-guide/configuration.md | 57 +- website/docs/user-guide/desktop.md | 20 + website/docs/user-guide/docker.md | 4 +- website/docs/user-guide/features/cron.md | 31 +- website/docs/user-guide/features/memory.md | 64 +- website/docs/user-guide/features/skills.md | 37 + website/docs/user-guide/features/tts.md | 34 +- .../docs/user-guide/features/web-dashboard.md | 61 +- website/docs/user-guide/messaging/matrix.md | 226 +- website/docs/user-guide/messaging/photon.md | 228 + website/docs/user-guide/messaging/simplex.md | 36 +- website/docs/user-guide/messaging/slack.md | 5 + website/docs/user-guide/profiles.md | 14 + website/docs/user-guide/skills/godmode.md | 279 - .../mlops/mlops-obliteratus.md} | 4 +- .../security/security-godmode.md} | 6 +- website/docs/user-guide/tui.md | 19 +- website/docs/user-guide/windows-native.md | 21 +- ...-templates.md => automation-blueprints.md} | 12 +- .../current/reference/skills-catalog.md | 7 - .../mlops/mlops-inference-obliteratus.md | 360 -- .../red-teaming/red-teaming-godmode.md | 421 -- .../current/user-guide/skills/godmode.md | 279 - .../current/user-guide/tui.md | 19 +- website/package-lock.json | 82 +- website/package.json | 4 +- .../scripts/extract-automation-blueprints.py | 50 + website/scripts/generate-skill-docs.py | 4 +- website/scripts/prebuild.mjs | 5 + website/sidebars.ts | 16 +- .../AutomationBlueprintsCatalog/index.tsx | 117 + .../styles.module.css | 114 + website/static/api/model-catalog.json | 17 +- website/tsconfig.json | 3 - 756 files changed, 79874 insertions(+), 19585 deletions(-) create mode 100644 .github/pr-screenshots/telegram-overflow/topic-final-response-clipped.jpg create mode 100644 .github/workflows/typecheck.yml create mode 100644 agent/coding_context.py create mode 100644 agent/turn_finalizer.py create mode 100644 apps/desktop/electron/dashboard-token.cjs create mode 100644 apps/desktop/electron/dashboard-token.test.cjs create mode 100644 apps/desktop/electron/fs-read-dir.cjs create mode 100644 apps/desktop/electron/fs-read-dir.test.cjs create mode 100644 apps/desktop/electron/git-root.cjs create mode 100644 apps/desktop/electron/git-root.test.cjs create mode 100644 apps/desktop/electron/port-pool.cjs create mode 100644 apps/desktop/electron/port-pool.test.cjs create mode 100644 apps/desktop/electron/session-windows.cjs create mode 100644 apps/desktop/electron/session-windows.test.cjs create mode 100644 apps/desktop/electron/update-remote.cjs create mode 100644 apps/desktop/electron/update-remote.test.cjs create mode 100644 apps/desktop/electron/vscode-marketplace.cjs create mode 100644 apps/desktop/electron/vscode-marketplace.test.cjs create mode 100644 apps/desktop/electron/windows-child-process.test.cjs create mode 100644 apps/desktop/electron/workspace-cwd.cjs create mode 100644 apps/desktop/electron/workspace-cwd.test.cjs create mode 100644 apps/desktop/src/app/chat/composer/enter-submit-dom-race.test.tsx delete mode 100644 apps/desktop/src/app/chat/composer/skin-slash-popover.tsx create mode 100644 apps/desktop/src/app/chat/hooks/use-composer-actions.test.ts create mode 100644 apps/desktop/src/app/chat/sidebar/load-more-row.tsx create mode 100644 apps/desktop/src/app/command-palette/marketplace-theme-page.tsx create mode 100644 apps/desktop/src/app/floating-hud.ts create mode 100644 apps/desktop/src/app/right-sidebar/files/dnd-manager.ts create mode 100644 apps/desktop/src/app/right-sidebar/files/ipc.test.ts create mode 100644 apps/desktop/src/app/right-sidebar/files/remote-picker.tsx create mode 100644 apps/desktop/src/app/right-sidebar/terminal/buffer.ts create mode 100644 apps/desktop/src/app/session-picker-overlay.tsx create mode 100644 apps/desktop/src/app/session-switcher.tsx create mode 100644 apps/desktop/src/app/session/hooks/use-model-controls.test.tsx create mode 100644 apps/desktop/src/components/assistant-ui/message-render-boundary.test.tsx create mode 100644 apps/desktop/src/components/assistant-ui/message-render-boundary.tsx create mode 100644 apps/desktop/src/components/assistant-ui/user-message-edit.test.tsx create mode 100644 apps/desktop/src/components/session-picker.tsx create mode 100644 apps/desktop/src/components/ui/tool-icon.tsx create mode 100644 apps/desktop/src/lib/desktop-fs.test.ts create mode 100644 apps/desktop/src/lib/desktop-fs.ts create mode 100644 apps/desktop/src/lib/gateway-events.test.ts create mode 100644 apps/desktop/src/lib/keybinds/combo.test.ts create mode 100644 apps/desktop/src/lib/update-copy.test.ts create mode 100644 apps/desktop/src/lib/update-copy.ts create mode 100644 apps/desktop/src/store/composer.test.ts create mode 100644 apps/desktop/src/store/model-visibility.test.ts create mode 100644 apps/desktop/src/store/session-switcher.test.ts create mode 100644 apps/desktop/src/store/session-switcher.ts create mode 100644 apps/desktop/src/store/windows.test.ts create mode 100644 apps/desktop/src/store/windows.ts create mode 100644 apps/desktop/src/themes/color.ts create mode 100644 apps/desktop/src/themes/install.test.ts create mode 100644 apps/desktop/src/themes/install.ts create mode 100644 apps/desktop/src/themes/profile-theme.test.ts create mode 100644 apps/desktop/src/themes/user-themes.test.ts create mode 100644 apps/desktop/src/themes/user-themes.ts create mode 100644 apps/desktop/src/themes/vscode.test.ts create mode 100644 apps/desktop/src/themes/vscode.ts create mode 100644 cron/blueprint_catalog.py create mode 100644 cron/scripts/__init__.py create mode 100644 cron/scripts/classify_items.py create mode 100644 cron/suggestion_catalog.py create mode 100644 cron/suggestions.py create mode 100644 docs/design/profile-builder.md delete mode 100644 docs/opentui-env-flags.md delete mode 100644 docs/opentui-memory-story.md delete mode 100644 docs/opentui-upstream-alignment.md create mode 100644 docs/plans/2026-06-09-003-fix-telegram-stream-overflow-continuations-plan.md create mode 100644 gateway/authz_mixin.py create mode 100644 gateway/slash_commands.py create mode 100644 hermes_cli/active_sessions.py create mode 100644 hermes_cli/blueprint_cmd.py create mode 100644 hermes_cli/cli_agent_setup_mixin.py create mode 100644 hermes_cli/cli_commands_mixin.py create mode 100644 hermes_cli/model_cost_guard.py create mode 100644 hermes_cli/model_setup_flows.py create mode 100644 hermes_cli/suggestions_cmd.py create mode 100644 hermes_cli/win_pty_bridge.py create mode 100644 hermes_cli/write_approval_commands.py rename {skills/mlops/inference => optional-skills/mlops}/obliteratus/SKILL.md (100%) rename {skills/mlops/inference => optional-skills/mlops}/obliteratus/references/analysis-modules.md (100%) rename {skills/mlops/inference => optional-skills/mlops}/obliteratus/references/methods-guide.md (100%) rename {skills/mlops/inference => optional-skills/mlops}/obliteratus/templates/abliteration-config.yaml (100%) rename {skills/mlops/inference => optional-skills/mlops}/obliteratus/templates/analysis-study.yaml (100%) rename {skills/mlops/inference => optional-skills/mlops}/obliteratus/templates/batch-abliteration.yaml (100%) rename {skills/red-teaming => optional-skills/security}/godmode/SKILL.md (98%) rename {skills/red-teaming => optional-skills/security}/godmode/references/jailbreak-templates.md (100%) rename {skills/red-teaming => optional-skills/security}/godmode/references/refusal-detection.md (100%) rename {skills/red-teaming => optional-skills/security}/godmode/scripts/auto_jailbreak.py (100%) rename {skills/red-teaming => optional-skills/security}/godmode/scripts/godmode_race.py (100%) rename {skills/red-teaming => optional-skills/security}/godmode/scripts/load_godmode.py (100%) rename {skills/red-teaming => optional-skills/security}/godmode/scripts/parseltongue.py (100%) rename {skills/red-teaming => optional-skills/security}/godmode/templates/prefill-subtle.json (100%) rename {skills/red-teaming => optional-skills/security}/godmode/templates/prefill.json (100%) create mode 100644 plugins/platforms/photon/README.md create mode 100644 plugins/platforms/photon/__init__.py create mode 100644 plugins/platforms/photon/adapter.py create mode 100644 plugins/platforms/photon/auth.py create mode 100644 plugins/platforms/photon/cli.py create mode 100644 plugins/platforms/photon/plugin.yaml create mode 100644 plugins/platforms/photon/sidecar/README.md create mode 100644 plugins/platforms/photon/sidecar/index.mjs create mode 100644 plugins/platforms/photon/sidecar/package-lock.json create mode 100644 plugins/platforms/photon/sidecar/package.json create mode 100644 plugins/plugin_utils.py create mode 100644 scripts/check_subprocess_stdin.py create mode 100644 tests/agent/test_anthropic_kwargs_sanitize.py create mode 100644 tests/agent/test_anthropic_output_field_leak.py create mode 100644 tests/agent/test_anthropic_thinking_block_order.py create mode 100644 tests/agent/test_cascading_interrupt_6600.py create mode 100644 tests/agent/test_coding_context.py create mode 100644 tests/agent/test_memory_async_sync.py create mode 100644 tests/agent/test_stream_read_timeout_floor.py create mode 100644 tests/cli/test_single_query_session_finalize.py create mode 100644 tests/cron/test_blueprint_catalog.py delete mode 100644 tests/cron/test_cron_profile.py create mode 100644 tests/cron/test_suggestions.py create mode 100644 tests/gateway/test_42039_duplicate_user_message.py create mode 100644 tests/gateway/test_document_context_note.py create mode 100644 tests/gateway/test_matrix_project_context_isolation.py create mode 100644 tests/gateway/test_max_concurrent_sessions.py create mode 100644 tests/gateway/test_model_command_expensive_confirm.py create mode 100644 tests/gateway/test_telegram_overflow_partial.py create mode 100644 tests/gateway/test_telegram_voice_v0_regressions.py create mode 100644 tests/gateway/test_whatsapp_stale_bridge.py create mode 100644 tests/hermes_cli/test_active_sessions.py create mode 100644 tests/hermes_cli/test_anthropic_picker_curated.py create mode 100644 tests/hermes_cli/test_cli_active_session_limit.py rename tests/hermes_cli/{test_subcommands_cron.py => test_cron_parser_builder.py} (94%) create mode 100644 tests/hermes_cli/test_dashboard_unified_launch.py create mode 100644 tests/hermes_cli/test_ensure_utf8_locale.py create mode 100644 tests/hermes_cli/test_model_cost_guard.py create mode 100644 tests/hermes_cli/test_model_picker_expensive_confirm.py create mode 100644 tests/hermes_cli/test_plugins_cmd_category_discovery.py create mode 100644 tests/hermes_cli/test_plugins_cmd_enable_disable_nested.py create mode 100644 tests/hermes_cli/test_resolve_provider_openrouter_pool.py create mode 100644 tests/hermes_cli/test_system_stats_platform.py create mode 100644 tests/hermes_cli/test_update_interrupted_recovery.py create mode 100644 tests/hermes_cli/test_web_server_files.py create mode 100644 tests/hermes_cli/test_web_server_fs.py create mode 100644 tests/hermes_cli/test_web_server_profile_unification.py create mode 100644 tests/hermes_cli/test_web_server_pty_import.py create mode 100644 tests/hermes_cli/test_web_server_skill_editor.py create mode 100644 tests/hermes_cli/test_web_server_skills_profiles.py create mode 100644 tests/hermes_cli/test_win_pty_bridge.py create mode 100644 tests/hermes_cli/test_xai_model_flow.py create mode 100644 tests/hermes_state/test_session_archiving.py create mode 100644 tests/plugins/platforms/photon/test_auth.py create mode 100644 tests/plugins/platforms/photon/test_inbound.py create mode 100644 tests/plugins/platforms/photon/test_mention_gating.py create mode 100644 tests/plugins/platforms/photon/test_outbound_media.py create mode 100644 tests/plugins/platforms/photon/test_setup_access.py create mode 100644 tests/plugins/test_discord_runtime_failure.py create mode 100644 tests/plugins/web/test_parallel_keyless_mcp.py create mode 100644 tests/run_agent/test_thinking_sig_recovery_persistence.py create mode 100644 tests/scripts/test_build_skills_index_health.py create mode 100644 tests/test_dashboard_sidecar_close_on_disconnect.py create mode 100644 tests/test_empty_session_hygiene.py create mode 100644 tests/test_honcho_client_concurrency.py create mode 100644 tests/test_install_no_initial_commit.py create mode 100644 tests/test_model_forces_max_completion_tokens.py create mode 100644 tests/test_plugin_utils.py create mode 100644 tests/test_slash_worker_watchdog.py create mode 100644 tests/test_state_db_malformed_repair.py create mode 100644 tests/test_tui_gateway_ws.py create mode 100644 tests/test_web_server.py create mode 100644 tests/tools/test_blueprints.py create mode 100644 tests/tools/test_mcp_capability_gating.py create mode 100644 tests/tools/test_mcp_loop_profile_override.py create mode 100644 tests/tools/test_send_message_target_parse.py create mode 100644 tests/tools/test_subprocess_stdin_guard.py create mode 100644 tests/tools/test_web_keyless_default_fallback.py create mode 100644 tests/tools/test_write_approval.py create mode 100644 tools/blueprints.py create mode 100644 tools/read_terminal_tool.py create mode 100644 tools/write_approval.py delete mode 100644 ui-opentui/.node-version delete mode 100644 ui-opentui/README.md delete mode 100644 ui-opentui/src/logic/window.ts delete mode 100644 ui-opentui/src/test/transcriptWindow.test.tsx delete mode 100644 ui-opentui/src/test/window.test.ts create mode 100644 ui-tui/packages/hermes-ink/src/ink/app-rawmode-mouse.test.ts create mode 100644 ui-tui/src/components/pluginsHub.tsx create mode 100644 ui-tui/src/lib/memory.test.ts create mode 100644 web/src/components/AutomationBlueprints.tsx create mode 100644 web/src/components/ConfirmDialog.tsx create mode 100644 web/src/components/ProfileScopeBanner.tsx create mode 100644 web/src/components/ProfileSwitcher.tsx create mode 100644 web/src/components/SkillEditorDialog.tsx create mode 100644 web/src/contexts/ProfileProvider.tsx create mode 100644 web/src/contexts/profile-context.ts create mode 100644 web/src/contexts/useProfileScope.ts create mode 100644 web/src/pages/FilesPage.tsx create mode 100644 web/src/pages/ProfileBuilderPage.tsx rename website/docs/guides/{automation-templates.md => automation-blueprints.md} (96%) create mode 100644 website/docs/reference/automation-blueprints-catalog.mdx create mode 100644 website/docs/user-guide/messaging/photon.md delete mode 100644 website/docs/user-guide/skills/godmode.md rename website/docs/user-guide/skills/{bundled/mlops/mlops-inference-obliteratus.md => optional/mlops/mlops-obliteratus.md} (99%) rename website/docs/user-guide/skills/{bundled/red-teaming/red-teaming-godmode.md => optional/security/security-godmode.md} (98%) rename website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/{automation-templates.md => automation-blueprints.md} (98%) delete mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/skills/bundled/mlops/mlops-inference-obliteratus.md delete mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/skills/bundled/red-teaming/red-teaming-godmode.md delete mode 100644 website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/skills/godmode.md create mode 100644 website/scripts/extract-automation-blueprints.py create mode 100644 website/src/components/AutomationBlueprintsCatalog/index.tsx create mode 100644 website/src/components/AutomationBlueprintsCatalog/styles.module.css diff --git a/.dockerignore b/.dockerignore index ee3947b2533..f6fbbc9f137 100644 --- a/.dockerignore +++ b/.dockerignore @@ -63,3 +63,45 @@ data/ # Compose/profile runtime state (bind-mounted; avoid ownership/secret issues) hermes-config/ runtime/ + +# ---------- Not needed inside the Docker image ---------- + +# Desktop app source (Tauri/Electron); never installed in the container +apps/ + +# Test suite — not shipped in production images +tests/ + +# Documentation site (Docusaurus) and supplementary docs +website/ +docs/ + +# Assets only used by the GitHub README +assets/ +infographic/ + +# Plugin-level docs (hermes-achievements ships docs/ but the runtime doesn't read them) +plugins/hermes-achievements/docs/ + +# Nix / Homebrew / AUR packaging metadata — irrelevant to Docker +nix/ +flake.nix +flake.lock +packaging/ + +# Design and planning documents +plans/ +.plans/ + +# ACP registry manifest (icon + agent.json) — not consumed at runtime +acp_registry/ + +# Repo-level dotfiles that are git-only or dev-tooling config +.env.example +.envrc +.gitattributes +.hadolint.yaml +.mailmap + +# Top-level LICENSE (not matched by *.md); not needed inside the container +LICENSE diff --git a/.github/pr-screenshots/telegram-overflow/topic-final-response-clipped.jpg b/.github/pr-screenshots/telegram-overflow/topic-final-response-clipped.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2f3529648e796c50aa53c92734b9ab267e0afad6 GIT binary patch literal 437826 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 KN@pkWm&*LN}4{q_R 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�J5FD#UXH5?52}@@&Vprb!#*5G6Jk_5cyowNz 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

oMiP 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%0D`UVbU|F^5SenfDu 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 literal 0 HcmV?d00001 diff --git a/.github/workflows/deploy-site.yml b/.github/workflows/deploy-site.yml index 82acaa6667d..5b3c61db8fb 100644 --- a/.github/workflows/deploy-site.yml +++ b/.github/workflows/deploy-site.yml @@ -44,7 +44,7 @@ jobs: - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: - node-version: 20 + node-version: 22 cache: npm cache-dependency-path: website/package-lock.json @@ -59,12 +59,22 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - # Always rebuild — the file isn't committed (gitignored), so a - # fresh checkout starts without it and we want the freshest crawl - # in every deploy. Failure is non-fatal: extract-skills.py will - # fall back to the legacy snapshot cache and the Skills Hub page - # still renders, just without the latest community catalog. - python3 scripts/build_skills_index.py || echo "Skills index build failed (non-fatal)" + # Rebuild the unified catalog. The file is gitignored, so a fresh + # checkout starts without it and we want the freshest crawl in + # every deploy. + # + # This MUST be fatal. build_skills_index.py runs a health check and + # exits non-zero WITHOUT writing the output file when a source + # collapses (e.g. a GitHub API rate limit zeroes the github / + # claude-marketplace / well-known taps all at once). Letting the + # deploy continue would either (a) ship a degenerate index missing + # whole hubs — the June 2026 regression where OpenAI/Anthropic/ + # HuggingFace/NVIDIA tabs vanished — or (b) fall through to a + # local-only catalog. Failing here keeps the last good deployment + # live (GitHub Pages serves the previous build) instead of + # publishing a broken catalog. Re-run the workflow once the + # transient rate limit clears. + python3 scripts/build_skills_index.py - name: Extract skill metadata for dashboard run: python3 website/scripts/extract-skills.py diff --git a/.github/workflows/docs-site-checks.yml b/.github/workflows/docs-site-checks.yml index 49111b5ac09..7001c0b7439 100644 --- a/.github/workflows/docs-site-checks.yml +++ b/.github/workflows/docs-site-checks.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: - node-version: 20 + node-version: 22 cache: npm cache-dependency-path: website/package-lock.json diff --git a/.github/workflows/nix-lockfile-fix.yml b/.github/workflows/nix-lockfile-fix.yml index ada0b79f23c..b83b0ba3d3f 100644 --- a/.github/workflows/nix-lockfile-fix.yml +++ b/.github/workflows/nix-lockfile-fix.yml @@ -75,9 +75,10 @@ jobs: run: | set -euo pipefail - # Ensure only nix files were modified — prevents accidental - # self-triggering if fix-lockfiles ever touches package files. - unexpected="$(git diff --name-only | grep -Ev '^nix/(tui|web)\.nix$' || true)" + # Ensure only nix/lib.nix (home of the single npmDepsHash) was + # modified — prevents accidental self-triggering if fix-lockfiles + # ever touches package files. + unexpected="$(git diff --name-only | grep -Ev '^nix/lib\.nix$' || true)" if [ -n "$unexpected" ]; then echo "::error::Unexpected modified files: $unexpected" exit 1 @@ -89,7 +90,7 @@ jobs: git config user.name 'github-actions[bot]' git config user.email '41898282+github-actions[bot]@users.noreply.github.com' - git add nix/tui.nix nix/web.nix + git add nix/lib.nix git commit -m "fix(nix): auto-refresh npm lockfile hashes" \ -m "Source: $GITHUB_SHA" \ -m "Run: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" @@ -216,7 +217,7 @@ jobs: set -euo pipefail git config user.name 'github-actions[bot]' git config user.email '41898282+github-actions[bot]@users.noreply.github.com' - git add nix/tui.nix nix/web.nix + git add nix/lib.nix git commit -m "fix(nix): refresh npm lockfile hashes" git push diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2755641073a..cc7d099fd93 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -55,15 +55,31 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 + with: + # Persist uv's download/wheel cache (~/.cache/uv) across runs. + # Keyed on the dependency manifests, so the cache is reused until + # pyproject.toml or uv.lock changes. `uv sync` still runs every + # time, but resolves from the warm cache instead of re-downloading + # and re-building wheels. + enable-cache: true + cache-dependency-glob: | + pyproject.toml + uv.lock - name: Set up Python 3.11 run: uv python install 3.11 - name: Install dependencies - run: | - uv venv .venv --python 3.11 - source .venv/bin/activate - uv pip install -e ".[all,dev]" + # `uv sync --locked` installs the exact pinned set from uv.lock (and + # fails if the lock is out of sync with pyproject.toml), giving a + # reproducible env. It also creates .venv itself, so no separate + # `uv venv` step is needed. + run: uv sync --locked --python 3.11 --extra all --extra dev + + - name: Minimize uv cache + # Optimized for CI: prunes pre-built wheels that are cheap to + # re-download, keeping the persisted cache small and fast to restore. + run: uv cache prune --ci - name: Run tests (slice ${{ matrix.slice }}/6) # Per-file isolation via scripts/run_tests_parallel.py: discovers @@ -161,15 +177,31 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 + with: + # Persist uv's download/wheel cache (~/.cache/uv) across runs. + # Keyed on the dependency manifests, so the cache is reused until + # pyproject.toml or uv.lock changes. `uv sync` still runs every + # time, but resolves from the warm cache instead of re-downloading + # and re-building wheels. + enable-cache: true + cache-dependency-glob: | + pyproject.toml + uv.lock - name: Set up Python 3.11 run: uv python install 3.11 - name: Install dependencies - run: | - uv venv .venv --python 3.11 - source .venv/bin/activate - uv pip install -e ".[all,dev]" + # `uv sync --locked` installs the exact pinned set from uv.lock (and + # fails if the lock is out of sync with pyproject.toml), giving a + # reproducible env. It also creates .venv itself, so no separate + # `uv venv` step is needed. + run: uv sync --locked --python 3.11 --extra all --extra dev + + - name: Minimize uv cache + # Optimized for CI: prunes pre-built wheels that are cheap to + # re-download, keeping the persisted cache small and fast to restore. + run: uv cache prune --ci - name: Packaged-wheel i18n smoke test run: | diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml new file mode 100644 index 00000000000..f3dcc71efdb --- /dev/null +++ b/.github/workflows/typecheck.yml @@ -0,0 +1,25 @@ +# .github/workflows/typecheck.yml +name: Typecheck + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + typecheck: + runs-on: ubuntu-latest + strategy: + matrix: + package: + [ui-tui, web, apps/bootstrap-installer, apps/desktop, apps/shared] + fail-fast: false # report all failures, not just the first one + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 22 + cache: npm + - run: npm ci + - run: npm run --prefix ${{ matrix.package }} typecheck diff --git a/.gitignore b/.gitignore index 1efce4b83f1..2935832db3b 100644 --- a/.gitignore +++ b/.gitignore @@ -89,6 +89,9 @@ website/static/api/skills-index.json # every build). website/static/api/skills.json website/static/api/skills-meta.json +# automation-blueprints-index.json is a build artifact emitted by +# website/scripts/extract-automation-blueprints.py during prebuild. +website/static/api/automation-blueprints-index.json models-dev-upstream/ # Local editor / agent tooling (machine-specific; keep in global config, not the repo) @@ -114,6 +117,12 @@ docs/superpowers/* # treat it as a local edit and autostash it on every run (#38529). .hermes-bootstrap-complete +# Interrupted-update breadcrumb + recovery lock written next to the shared venv +# by `hermes update` / launch-time self-heal. Runtime state, never a code change +# — ignore so `git status` stays clean and update's autostash skips them. +.update-incomplete +.update-incomplete.lock + # Tool Search live-test harness output — non-deterministic model transcripts, # regenerated by scripts/tool_search_livetest.py. Never an artifact of the repo. scripts/out/ diff --git a/AGENTS.md b/AGENTS.md index 15cd7536ef1..e032f765447 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,6 +4,201 @@ Instructions for AI coding assistants and developers working on the hermes-agent **Never give up on the right solution.** +## What Hermes Is + +Hermes is a personal AI agent that runs the same agent core across a CLI, a +messaging gateway (Telegram, Discord, Slack, and ~20 other platforms), a TUI, +and an Electron desktop app. It learns across sessions (memory + skills), +delegates to subagents, runs scheduled jobs, and drives a real terminal and +browser. It is extended primarily through **plugins and skills**, not by +growing the core. + +Two properties shape almost every design decision and are the lens for +reviewing any change: + +- **Per-conversation prompt caching is sacred.** A long-lived conversation + reuses a cached prefix every turn. Anything that mutates past context, + swaps toolsets, or rebuilds the system prompt mid-conversation invalidates + that cache and multiplies the user's cost. We do not do it (the one + exception is context compression). +- **The core is a narrow waist; capability lives at the edges.** Every model + tool we add is sent on every API call, so the bar for a new *core* tool is + high. Most new capability should arrive as a CLI command + skill, a + service-gated tool, or a plugin — not as core surface. + +## Contribution Rubric — What We Want / What We Don't + +This is the project's intent layer. Use it two ways: + +1. **For humans and for your own work** — what gets merged and what gets + rejected, so a contribution aims at the target. +2. **For automated review (the triage sweeper)** — guidance on when a PR is + safe to close on the three allowed reasons (`implemented_on_main`, + `cannot_reproduce`, `incoherent`) and, just as important, **when NOT to + close** one. Taste-based "we don't want this / out of scope" closes are NOT + an automated decision — those stay with a human maintainer. The sweeper's + job here is to recognize design intent and *avoid wrongly closing a + legitimate contribution*, not to make the won't-implement call itself. + +Read the balance right: Hermes ships a **lot** — most merges are bug fixes to +real reported behavior, and the product surface (platforms, channels, +providers, models, desktop/TUI features) expands aggressively and on purpose. +The restraint below is aimed squarely at the **core agent + the model tool +schema**, the one place where every addition is paid for on every API call. +"Smallest footprint" governs *how a capability is wired into the core*, NOT +whether the product is allowed to grow. We are expansive at the edges and +conservative at the waist. + +### What we want + +- **Fix real bugs, well.** The bulk of what lands is `fix(...)` against an + actual reported symptom. A good fix reproduces the symptom on current + `main`, points to the exact line where it manifests, and fixes the whole bug + class — sibling call paths included — not just the one site the reporter hit. +- **Expand reach at the edges.** New platform adapters, channels, providers, + models, and desktop/TUI/dashboard features are welcome and land routinely, + including large ones (a new messaging channel, a session-cap feature, a + Windows PTY bridge). Breadth in the product is a goal, not a footprint + concern — as long as it integrates with the existing setup/config UX + (`hermes tools`, `hermes setup`, auto-install) rather than bolting on a raw + env var. +- **Refactor god-files into clean modules.** Extracting a multi-thousand-line + cluster out of `cli.py` / `run_agent.py` / `gateway/run.py` into a focused + mixin or module is wanted work, even when the diff is huge and mechanical + (large `+N/-N` refactors merge regularly). The "every line traces to the + request" test applies to *feature* PRs; a declared refactor's request IS the + extraction. +- **Keep the core narrow.** New *model tools* are the expensive exception — + every tool ships on every API call. Prefer, in order: extend existing code → + CLI command + skill → service-gated tool (`check_fn`) → plugin → MCP server + in the catalog → new core tool (last resort). See "The Footprint Ladder." +- **Extend, don't duplicate.** Before adding a module/manager/hook, check + whether existing infrastructure already covers the use case. When several PRs + integrate the same *category*, design one shared interface instead of merging + them one at a time (see the ABC + orchestrator note under the Footprint + Ladder). +- **Behavior contracts over snapshots.** Tests should assert how two pieces of + data must relate (invariants), not freeze a current value (model lists, + config version literals, enumeration counts). See "Don't write + change-detector tests." +- **E2E validation, not just green unit mocks.** For anything touching + resolution chains, config propagation, security boundaries, remote + backends, or file/network I/O, exercise the real path with real imports + against a temp `HERMES_HOME`. Mocks hide integration bugs. +- **Cache-, alternation-, and invariant-safe.** Preserve prompt caching, strict + message role alternation (never two same-role messages in a row; never a + synthetic user message injected mid-loop), and a system prompt that is + byte-stable for the life of a conversation. +- **Contributor credit preserved.** Salvage external work by cherry-picking + (rebase-merge) so authorship survives in git history; don't reimplement from + scratch when you can build on top. + +### What we don't want (rejected even when well-built) + +- **Speculative infrastructure.** Hooks, callbacks, or extension points with no + concrete consumer. Adding a hook is easy; removing one after plugins depend + on it is hard. A hook is NOT speculative if a contributor has a real, stated + use case — even if the consumer ships separately. +- **New `HERMES_*` env vars for non-secret config.** `.env` is for secrets + only (API keys, tokens, passwords). All behavioral settings — timeouts, + thresholds, feature flags, display prefs — go in `config.yaml`. Bridge to an + internal env var if the mechanism needs one, but user-facing docs point to + `config.yaml`. Reject PRs that tell users to "set X in your .env" unless X + is a credential. +- **A new core tool when terminal + file already do the job, or when a skill + would.** If the only barrier is file visibility on a remote backend, fix the + mount, not the toolset. +- **Lazy-reading escape hatches on instructional tools.** No `offset`/`limit` + pagination on tools that load content the agent must read fully (skills, + prompts, playbooks). Models will read page 1 and skip the rest. +- **"Fixes" that destroy the feature they secure.** A mitigation that kills the + feature's purpose is the wrong mitigation. Read the original commit's intent + (`git log -p -S`) before restricting behavior; find a fix that preserves the + feature. +- **Outbound telemetry / usage attribution without opt-in gating.** No new + analytics, third-party identifier tagging, or attribution tags until a + generic user-facing opt-in (config gate + setup prompt + `hermes tools` + toggle) exists. Park behind a label, do not merge. +- **Change-detector tests, cache-breaking mid-conversation, dead code wired in + without E2E proof, and plugins that touch core files.** Plugins live in their + own directory and work within the ABCs/hooks we provide; if a plugin needs + more, widen the generic plugin surface, don't special-case it in core. + +### Before you call it a bug — verify the premise (and when NOT to close) + +The most common reason a well-written PR gets closed is not code quality — it +is that the change is built on a **wrong premise**, or it treats an +**intentional design as a gap**. These patterns cut both ways: they tell a +human reviewer what to scrutinize, and they tell the automated sweeper when a +PR is NOT safe to close as `implemented_on_main` / `cannot_reproduce` (when in +doubt, leave it open for a human). They are distilled from real closes. + +- **"Intentional design, not a gap."** A limitation that looks like an + oversight is often deliberate. Before "fixing" a missing link or a + restriction, ask whether the isolation IS the design. Example: profiles are + independent islands on purpose — a PR adding live config inheritance from the + default profile was closed because coupling profiles together is exactly what + the design prevents (the copy-at-creation `--clone` path already covers the + legitimate "start from my default" case). Read the original commit's intent + (`git log -p -S ""`) before assuming something is unfinished. +- **"The premise doesn't hold against how X actually works."** A PR's + justification frequently rests on a wrong mental model of an existing + mechanism. Trace the real code/runtime before accepting the rationale. Two + real closes: a rate-limit "re-probe during cooldown" PR (the breaker only + trips on a *confirmed-empty* account bucket, so re-probing just hammers a + bucket we've already proven empty); a usage-accumulation fix whose new branch + **never executes at runtime** because an earlier guard already popped the + state it depended on. If you can't point to the exact line where the bug + manifests AND show the fix changes that line's behavior, you haven't verified + the premise. +- **"This fix was wrong — the absence/omission was deliberate."** Adding the + obvious-looking missing piece can break things the omission was protecting. + Example: restoring "missing" `__init__.py` files made a test tree importable + as a dotted package that shadowed the real plugin, deleting its `register()` + at import time. The absence was load-bearing. +- **"Overreached / resurrected an approach we'd moved past."** Scope creep that + supersedes an agreed-on base, or revives a direction the maintainers + deliberately closed, gets rejected even when the code works. Keep the change + to the narrow piece that was actually agreed; offer the rest as a focused + follow-up. + +The throughline: **verify the claim AND the intent against the codebase before +writing or merging a fix.** A confirmed reproduction on current `main` plus a +line-level account of where the fix acts beats a plausible-sounding rationale +every time. When in doubt about intent, it is cheaper to ask than to ship a +fix that fights the design. + +### The Footprint Ladder (new capability decision) + +Each rung adds more permanent surface than the one above. Choose the highest +(least-footprint) rung that correctly solves the problem: + +1. **Extend existing code** — the capability is a variation of something that + already exists. Zero new surface. +2. **CLI command + skill** — manages config/state/infra expressible as shell + commands. The agent runs `hermes ` guided by a skill. Zero + model-tool footprint. Default choice for subscriptions, scheduled tasks, + service setup. Examples: `hermes webhook`, `hermes cron`, `hermes tools`. +3. **Service-gated tool (`check_fn`)** — needs structured params/returns AND + only appears when a prerequisite is configured. Zero footprint otherwise. + Examples: Home Assistant tools (gated on token), memory-provider tools. +4. **Plugin** — third-party/niche/user-specific capability that doesn't ship in + core. Lives in `~/.hermes/plugins/` or a pip package, discovered at runtime. +5. **MCP server (in the catalog)** — if the capability genuinely needs to be a + tool (structured I/O the agent invokes) but isn't core-fundamental, prefer + building it as an MCP server and adding it to the MCP catalog over growing + the core toolset. The agent connects to it through the built-in MCP client; + zero permanent core-schema footprint, and it's reusable by any MCP host. +6. **New core tool** — only when the capability is fundamental, broadly useful + to nearly every user, and unreachable via terminal + file (or an MCP server). + Examples of correct core tools: terminal, read_file, web_search, + browser_navigate. + +When 3+ open PRs try to integrate the same *category* of thing (memory +backends, providers, notifiers), don't merge them one at a time — design an +ABC + orchestrator, wrap the existing built-in as the first provider, and turn +the competing PRs into plugins against that interface. + ## Development Environment ```bash @@ -264,7 +459,7 @@ npm install # first time npm run dev # watch mode (rebuilds hermes-ink + tsx --watch) npm start # production npm run build # full build (hermes-ink + tsc) -npm run type-check # typecheck only (tsc --noEmit) +npm run typecheck # typecheck only (tsc --noEmit) npm run lint # eslint npm run fmt # prettier npm test # vitest @@ -302,9 +497,11 @@ A **separate** chat surface from both the classic CLI and the dashboard's embedd ## Adding New Tools -For most custom or local-only tools, do **not** edit Hermes core. Use the plugin -route instead: create `~/.hermes/plugins//plugin.yaml` and -`~/.hermes/plugins//__init__.py`, then register tools with +Before adding any tool, settle the footprint question first (see "The +Footprint Ladder" in the Contribution Rubric): most capabilities should NOT +be core tools. For custom or local-only tools, do **not** edit Hermes core. +Use the plugin route instead: create `~/.hermes/plugins//plugin.yaml` +and `~/.hermes/plugins//__init__.py`, then register tools with `ctx.register_tool(...)`. Plugin toolsets are discovered automatically and can be enabled or disabled without touching `tools/` or `toolsets.py`. diff --git a/Dockerfile b/Dockerfile index c4858a8eebe..b9da483dccd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,7 @@ ENV PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/.playwright # hermes process, the dashboard, and per-profile gateways. RUN apt-get update && \ apt-get install -y --no-install-recommends \ - ca-certificates curl iputils-ping python3 python-is-python3 ripgrep ffmpeg gcc python3-dev python3-venv libffi-dev libolm-dev procps git openssh-client docker-cli xz-utils && \ + ca-certificates curl iputils-ping python3 python-is-python3 ripgrep ffmpeg gcc g++ make cmake python3-dev python3-venv libffi-dev libolm-dev procps git openssh-client docker-cli xz-utils && \ rm -rf /var/lib/apt/lists/* # ---------- s6-overlay install ---------- @@ -148,9 +148,9 @@ RUN npm install --prefer-offline --no-audit && \ # # `uv sync --frozen --no-install-project --extra all --extra messaging` # installs the deps reachable through the composite `[all]` extra -# (handpicked set intended for the production image), plus gateway -# messaging adapters that should work in the published image without a -# first-boot lazy install. We do NOT use `--all-extras`: +# (handpicked set intended for the production image — excludes `[dev]`), +# plus gateway messaging adapters that should work in the published image +# without a first-boot lazy install. We do NOT use `--all-extras`: # that would pull in `[rl]` (atroposlib + tinker + torch + wandb from # git), `[yc-bench]` (another git dep), and `[termux-all]` (Android # redundancy), none of which belong in the published container. @@ -166,26 +166,38 @@ RUN npm install --prefer-offline --no-audit && \ # image update and recall/retain then fails with # `ModuleNotFoundError: No module named 'hindsight_client'` (#38128). # +# The Matrix gateway's deps ([matrix] extra) are baked in because +# python-olm (transitive via mautrix[encryption]) builds from source on +# Python/image combinations without usable wheels. The Docker image is +# Linux-only, so keeping the native libolm/build-toolchain packages here +# avoids the cross-platform failures that kept [matrix] out of [all] +# while still making Matrix work in the published container. Fixes #30399. +# # The editable link is created after the source copy below. COPY pyproject.toml uv.lock ./ RUN touch ./README.md -RUN uv sync --frozen --no-install-project --extra all --extra messaging --extra anthropic --extra bedrock --extra azure-identity --extra hindsight +RUN uv sync --frozen --no-install-project --extra all --extra messaging --extra anthropic --extra bedrock --extra azure-identity --extra hindsight --extra matrix + +# ---------- Frontend build (cached independently from Python source) ---------- +# Copy only the frontend source trees first so that Python-only changes don't +# invalidate the (relatively slow) web + ui-tui build layer. +COPY web/ web/ +COPY ui-tui/ ui-tui/ +COPY ui-opentui/ ui-opentui/ +# ui-opentui is the opt-in native OpenTUI engine (HERMES_TUI_ENGINE=opentui; +# default stays Ink). .dockerignore strips its node_modules/dist, so install + +# esbuild-build it here -> dist/main.js, then prune devDeps (esbuild/babel/ +# vitest); the runtime only needs the prod deps (the external @opentui/core + +# its native blob -- the bundle inlines solid/effect). Build needs Node 26.3 +# (node:ffi floor), which this image ships. +RUN cd web && npm run build && \ + cd ../ui-tui && npm run build && \ + cd ../ui-opentui && npm install --no-audit --no-fund && npm run build && npm prune --omit=dev # ---------- Source code ---------- # .dockerignore excludes node_modules, so the installs above survive. COPY --chown=hermes:hermes . . -# Build browser dashboard and terminal UI assets. -# ui-opentui is the opt-in native OpenTUI engine (HERMES_TUI_ENGINE=opentui; -# default stays Ink). .dockerignore strips its node_modules/dist, so install + -# esbuild-build it here → dist/main.js, then prune devDeps (esbuild/babel/vitest); -# the runtime only needs the prod deps (the external @opentui/core + its native -# blob — the bundle inlines solid/effect). Build needs Node 26.3 (node:ffi floor), -# which this image now ships. (CI must verify the full image build on Node 26.) -RUN cd web && npm run build && \ - cd ../ui-tui && npm run build && \ - cd ../ui-opentui && npm install --no-audit --no-fund && npm run build && npm prune --omit=dev - # ---------- Permissions ---------- # Make install dir world-readable so any HERMES_UID can read it at runtime. # The venv needs to be traversable too. diff --git a/MANIFEST.in b/MANIFEST.in index a6749adc2cf..5d5a1b1b271 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,6 @@ graft skills graft optional-skills +graft optional-mcps graft locales # Bundled plugin manifests (plugin.yaml / plugin.yml). Without these the # PluginManager scan (hermes_cli/plugins.py) finds zero plugins on installs diff --git a/README.md b/README.md index 14347dcbff3..79fb40e9c17 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@

# Hermes Agent ☤ - +

+ Hermes Agent | Hermes Desktop +

Documentation Discord @@ -53,7 +55,7 @@ If you already have Git installed, the installer detects it and uses that instea > **Android / Termux:** The tested manual path is documented in the [Termux guide](https://hermes-agent.nousresearch.com/docs/getting-started/termux). On Termux, Hermes installs a curated `.[termux]` extra because the full `.[all]` extra currently pulls Android-incompatible voice dependencies. > -> **Windows:** Native Windows is fully supported — the PowerShell one-liner above installs everything. If you'd rather use WSL2, the Linux command works there too. Native Windows install lives under `%LOCALAPPDATA%\hermes`; WSL2 installs under `~/.hermes` as on Linux. The only Hermes feature that currently needs WSL2 specifically is the browser-based dashboard chat pane (it uses a POSIX PTY — classic CLI and gateway both run natively). +> **Windows:** Native Windows is fully supported — the PowerShell one-liner above installs everything. If you'd rather use WSL2, the Linux command works there too. Native Windows install lives under `%LOCALAPPDATA%\hermes`; WSL2 installs under `~/.hermes` as on Linux. After installation: diff --git a/agent/agent_init.py b/agent/agent_init.py index c51177a9b8b..69cf9c23f24 100644 --- a/agent/agent_init.py +++ b/agent/agent_init.py @@ -169,6 +169,7 @@ def init_agent( save_trajectories: bool = False, verbose_logging: bool = False, quiet_mode: bool = False, + tool_progress_mode: str = "all", ephemeral_system_prompt: str = None, log_prefix_chars: int = 100, log_prefix: str = "", @@ -186,6 +187,7 @@ def init_agent( thinking_callback: callable = None, reasoning_callback: callable = None, clarify_callback: callable = None, + read_terminal_callback: callable = None, step_callback: callable = None, stream_delta_callback: callable = None, interim_assistant_callback: callable = None, @@ -280,6 +282,7 @@ def init_agent( agent.save_trajectories = save_trajectories agent.verbose_logging = verbose_logging agent.quiet_mode = quiet_mode + agent.tool_progress_mode = tool_progress_mode agent.ephemeral_system_prompt = ephemeral_system_prompt agent.platform = platform # "cli", "telegram", "discord", "whatsapp", etc. agent._user_id = user_id # Platform user identifier (gateway sessions) @@ -415,6 +418,7 @@ def init_agent( agent.thinking_callback = thinking_callback agent.reasoning_callback = reasoning_callback agent.clarify_callback = clarify_callback + agent.read_terminal_callback = read_terminal_callback agent.step_callback = step_callback agent.stream_delta_callback = stream_delta_callback agent.interim_assistant_callback = interim_assistant_callback diff --git a/agent/agent_runtime_helpers.py b/agent/agent_runtime_helpers.py index f9bfb7a4319..742af145380 100644 --- a/agent/agent_runtime_helpers.py +++ b/agent/agent_runtime_helpers.py @@ -49,7 +49,7 @@ def _ra(): AGENT_RUNTIME_POST_HOOK_TOOL_NAMES = frozenset( - {"todo", "session_search", "memory", "clarify", "delegate_task"} + {"todo", "session_search", "memory", "clarify", "read_terminal", "delegate_task"} ) @@ -679,15 +679,28 @@ def recover_with_credential_pool( # long-running TUI sessions stuck on stale tokens until the user # exited and reopened. is_entitlement = agent._is_entitlement_failure(error_context, status_code) + _auth_haystack = " ".join( + str(error_context.get(k) or "").lower() + for k in ("message", "reason", "code", "error") + if isinstance(error_context, dict) + ) + if ( + not is_entitlement + and status_code == 403 + and "oauth authentication is currently not allowed for this organization" in _auth_haystack + ): + is_entitlement = True + if ( + not is_entitlement + and status_code == 403 + and (agent.provider or "") == "anthropic" + and getattr(agent, "api_mode", "") == "anthropic_messages" + ): + is_entitlement = True if not is_entitlement and status_code == 403 and (agent.provider or "") == "xai-oauth": - _disambiguator_haystack = " ".join( - str(error_context.get(k) or "").lower() - for k in ("message", "reason", "code", "error") - if isinstance(error_context, dict) - ) _is_xai_auth_failure = ( - "[wke=unauthenticated:" in _disambiguator_haystack - or "oauth2 access token could not be validated" in _disambiguator_haystack + "[wke=unauthenticated:" in _auth_haystack + or "oauth2 access token could not be validated" in _auth_haystack ) if not _is_xai_auth_failure: is_entitlement = True @@ -1784,6 +1797,17 @@ def invoke_tool(agent, function_name: str, function_args: dict, effective_task_i ), next_args, ) + elif function_name == "read_terminal": + def _execute(next_args: dict) -> Any: + from tools.read_terminal_tool import read_terminal_tool as _read_terminal_tool + return _finish_agent_tool( + _read_terminal_tool( + start_line=next_args.get("start_line"), + count=next_args.get("count"), + callback=getattr(agent, "read_terminal_callback", None), + ), + next_args, + ) elif function_name == "delegate_task": def _execute(next_args: dict) -> Any: return _finish_agent_tool(agent._dispatch_delegate_task(next_args), next_args) diff --git a/agent/anthropic_adapter.py b/agent/anthropic_adapter.py index a4a211843ee..8476ef67f57 100644 --- a/agent/anthropic_adapter.py +++ b/agent/anthropic_adapter.py @@ -73,20 +73,50 @@ ADAPTIVE_EFFORT_MAP = { "minimal": "low", } -# Models that accept the "xhigh" output_config.effort level. Opus 4.7 added -# xhigh as a distinct level between high and max; older adaptive-thinking -# models (4.6) reject it with a 400. Keep this substring list in sync with -# the Anthropic migration guide as new model families ship. -_XHIGH_EFFORT_SUBSTRINGS = ("4-7", "4.7", "4-8", "4.8") +# ── Anthropic thinking-mode classification ──────────────────────────── +# Claude 4.6 replaced budget-based extended thinking with *adaptive* thinking, +# and 4.7 additionally forbids the manual ``thinking`` block entirely and drops +# temperature/top_p/top_k. Newer Claude releases (4.8, and named models like +# claude-fable-5) follow the same modern contract — but they share no common +# version substring, so an allowlist of version numbers ("4.6", "4.7", …) goes +# stale the moment a model ships without a recognized number and silently +# routes it down the legacy manual-thinking path. +# +# Instead we DEFAULT unknown Claude models to the modern contract and keep an +# explicit *legacy* list of the older Claude families that still require manual +# thinking. This mirrors _get_anthropic_max_output's "default to newest" design +# (future models are unlikely to regress to the older contract), so each new +# Claude release works without a code change. +# +# Non-Claude Anthropic-Messages models (minimax, qwen3, GLM, …) are NOT Claude, +# so they fall through to the legacy path automatically — exactly what those +# manual-thinking endpoints need. + +# Older Claude families that DON'T support adaptive thinking (manual thinking +# with budget_tokens only). Substring-matched against the model name. +_LEGACY_MANUAL_THINKING_CLAUDE_SUBSTRINGS = ( + "claude-3", # 3, 3.5, 3.7 + "claude-opus-4-0", "claude-opus-4.0", "claude-opus-4-1", "claude-opus-4.1", + "claude-sonnet-4-0", "claude-sonnet-4.0", + "claude-opus-4-2025", "claude-sonnet-4-2025", # date-stamped 4.0 IDs + "claude-opus-4-5", "claude-opus-4.5", + "claude-sonnet-4-5", "claude-sonnet-4.5", + "claude-haiku-4-5", "claude-haiku-4.5", +) + +# Older Claude families that DON'T accept the "xhigh" effort level (4.6 only +# supports low/medium/high/max). xhigh arrived with Opus 4.7. Adaptive models +# not in this list (4.7, 4.8, fable, future) accept xhigh. +_NO_XHIGH_CLAUDE_SUBSTRINGS = ( + "claude-opus-4-6", "claude-opus-4.6", + "claude-sonnet-4-6", "claude-sonnet-4.6", +) + + +def _is_claude_model(model: str | None) -> bool: + return "claude" in (model or "").lower() -# Models where extended thinking is deprecated/removed (4.6+ behavior: adaptive -# is the only supported mode; 4.7 additionally forbids manual thinking entirely -# and drops temperature/top_p/top_k). -_ADAPTIVE_THINKING_SUBSTRINGS = ("4-6", "4.6", "4-7", "4.7", "4-8", "4.8") -# Models where temperature/top_p/top_k return 400 if set to non-default values. -# This is the Opus 4.7 contract; future 4.x+ models are expected to follow it. -_NO_SAMPLING_PARAMS_SUBSTRINGS = ("4-7", "4.7", "4-8", "4.8") _FAST_MODE_SUPPORTED_SUBSTRINGS = ("opus-4-6", "opus-4.6") # ── Max output token limits per Anthropic model ─────────────────────── @@ -94,6 +124,8 @@ _FAST_MODE_SUPPORTED_SUBSTRINGS = ("opus-4-6", "opus-4.6") # max_tokens as a mandatory field. Previously we hardcoded 16384, which # starves thinking-enabled models (thinking tokens count toward the limit). _ANTHROPIC_OUTPUT_LIMITS = { + # Mythos-class named models (claude-fable-5, …) — 1M context, reasoning + "claude-fable": 128_000, # Claude 4.8 "claude-opus-4-8": 128_000, # Claude 4.7 @@ -208,8 +240,17 @@ def _resolve_anthropic_messages_max_tokens( def _supports_adaptive_thinking(model: str) -> bool: - """Return True for Claude 4.6+ models that support adaptive thinking.""" - return any(v in model for v in _ADAPTIVE_THINKING_SUBSTRINGS) + """Return True for Claude models that use adaptive thinking (4.6+). + + Defaults *unknown* Claude models to adaptive (the modern contract) and + only returns False for the explicit legacy list of older Claude families + that require manual budget-based thinking. Non-Claude Anthropic-Messages + models (minimax, qwen3, …) return False so they keep the manual path. + """ + if not _is_claude_model(model): + return False + m = model.lower() + return not any(v in m for v in _LEGACY_MANUAL_THINKING_CLAUDE_SUBSTRINGS) def _supports_xhigh_effort(model: str) -> bool: @@ -219,18 +260,33 @@ def _supports_xhigh_effort(model: str) -> bool: Pre-4.7 adaptive models (Opus/Sonnet 4.6) only accept low/medium/high/max and reject xhigh with an HTTP 400. Callers should downgrade xhigh→max when this returns False. + + Defaults unknown adaptive Claude models to accepting xhigh (4.7+ contract); + only the 4.6 family and legacy manual-thinking models are excluded. """ - return any(v in model for v in _XHIGH_EFFORT_SUBSTRINGS) + if not _supports_adaptive_thinking(model): + return False + m = model.lower() + return not any(v in m for v in _NO_XHIGH_CLAUDE_SUBSTRINGS) def _forbids_sampling_params(model: str) -> bool: """Return True for models that 400 on any non-default temperature/top_p/top_k. - Opus 4.7 explicitly rejects sampling parameters; later Claude releases are - expected to follow suit. Callers should omit these fields entirely rather - than passing zero/default values (the API rejects anything non-null). + Opus 4.7 introduced this restriction; later Claude releases follow it. + Defaults unknown Claude models to forbidding sampling params (the modern + contract). The 4.6 family still accepts them, and the legacy manual-thinking + families (4.5 and older) accept them too, so both are excluded. Non-Claude + models are unaffected. Callers should omit these fields entirely rather than + passing zero/default values (the API rejects anything non-null). """ - return any(v in model for v in _NO_SAMPLING_PARAMS_SUBSTRINGS) + if not _is_claude_model(model): + return False + m = model.lower() + # 4.6 family is adaptive but still accepts sampling params. + if any(v in m for v in _NO_XHIGH_CLAUDE_SUBSTRINGS): + return False + return not any(v in m for v in _LEGACY_MANUAL_THINKING_CLAUDE_SUBSTRINGS) def _supports_fast_mode(model: str) -> bool: @@ -821,6 +877,7 @@ def _read_claude_code_credentials_from_keychain() -> Optional[Dict[str, Any]]: capture_output=True, text=True, timeout=5, + stdin=subprocess.DEVNULL, ) except (OSError, subprocess.TimeoutExpired): logger.debug("Keychain: security command not available or timed out") @@ -1163,7 +1220,10 @@ def run_oauth_setup_token() -> Optional[str]: "Install it with: npm install -g @anthropic-ai/claude-code" ) - # Run interactively — stdin/stdout/stderr inherited so user can interact + # Run interactively — stdin/stdout/stderr inherited so the user can + # complete the OAuth login prompt. Must keep inherited stdin; the TUI-EOF + # concern does not apply to an interactive login the user explicitly + # invokes. noqa: subprocess-stdin try: subprocess.run([claude_path, "setup-token"]) except (KeyboardInterrupt, EOFError): @@ -1511,6 +1571,15 @@ def _convert_content_part_to_anthropic(part: Any) -> Optional[Dict[str, Any]]: if ptype == "input_text": block: Dict[str, Any] = {"type": "text", "text": part.get("text", "")} + elif ptype == "text": + # A stored Anthropic text block. Rebuild from whitelisted fields only — + # SDK response text blocks carry output-only siblings (parsed_output, + # citations=None) that the Messages INPUT schema rejects with HTTP 400 + # "Extra inputs are not permitted". Do NOT dict(part) it verbatim. + block = {"type": "text", "text": part.get("text", "")} + cits = part.get("citations") + if isinstance(cits, list) and cits: + block["citations"] = cits elif ptype in {"image_url", "input_image"}: image_value = part.get("image_url", {}) url = image_value.get("url", "") if isinstance(image_value, dict) else str(image_value or "") @@ -1625,6 +1694,58 @@ def _content_parts_to_anthropic_blocks(parts: Any) -> List[Dict[str, Any]]: return out +def _sanitize_replay_block(b: Dict[str, Any]) -> Optional[Dict[str, Any]]: + """Strip output-only fields from a stored Anthropic content block so it is + valid as REQUEST input on replay. + + The SDK response objects carry output-only attributes that the Messages + *input* schema forbids ("Extra inputs are not permitted"): text blocks get + ``parsed_output``/``citations`` (when null), tool_use blocks get ``caller``, + etc. ``normalize_response`` captured blocks verbatim via ``_to_plain_data``, + so these leak back as input on the next turn → HTTP 400. + + Whitelist per type (NOT a blacklist) so future SDK output-only fields can't + reintroduce the bug. Returns a clean block, or None to drop it. + """ + if not isinstance(b, dict): + return None + btype = b.get("type") + if btype == "text": + out: Dict[str, Any] = {"type": "text", "text": b.get("text", "")} + # citations is input-valid ONLY when it's a non-empty list; the SDK + # emits citations=None on responses, which the input schema rejects. + cits = b.get("citations") + if isinstance(cits, list) and cits: + out["citations"] = cits + if isinstance(b.get("cache_control"), dict): + out["cache_control"] = b["cache_control"] + return out + if btype == "thinking": + out = {"type": "thinking", "thinking": b.get("thinking", "")} + if b.get("signature"): + out["signature"] = b["signature"] + return out + if btype == "redacted_thinking": + # Only valid with its data payload; drop if missing. + return {"type": "redacted_thinking", "data": b["data"]} if b.get("data") else None + if btype == "tool_use": + out = { + "type": "tool_use", + "id": _sanitize_tool_id(b.get("id", "")), + "name": b.get("name", ""), + "input": b.get("input", {}), + } + if isinstance(b.get("cache_control"), dict): + out["cache_control"] = b["cache_control"] + return out + if btype == "image": + src = b.get("source") + return {"type": "image", "source": src} if isinstance(src, dict) else None + # Unknown/unsupported block type on the input path — drop rather than risk + # another "Extra inputs are not permitted". + return None + + def _convert_assistant_message(m: Dict[str, Any]) -> Dict[str, Any]: """Convert an assistant message to Anthropic content blocks. @@ -1632,6 +1753,55 @@ def _convert_assistant_message(m: Dict[str, Any]) -> Dict[str, Any]: reasoning_content injection for Kimi/DeepSeek endpoints. """ content = m.get("content", "") + # Anthropic interleaved-thinking fast path: when this turn carries a + # verbatim, order-preserving block list (set by normalize_response only + # for turns that interleave SIGNED thinking with tool_use), replay it. + # Each block is run through _sanitize_replay_block to strip output-only + # SDK fields (parsed_output, caller, citations=None, …) that the Messages + # INPUT schema forbids — replaying them verbatim caused HTTP 400 "Extra + # inputs are not permitted" (text.parsed_output). Block ORDER is preserved + # (the reason this channel exists); only forbidden sibling fields are + # dropped, leaving thinking signatures and tool_use id/name/input intact. + ordered_blocks = m.get("anthropic_content_blocks") + if isinstance(ordered_blocks, list) and ordered_blocks: + # Re-source each tool_use input from the stored tool_calls map rather + # than the captured block. The ordered-blocks list captures tool_use + # input from the RAW API response (normalize_response), which is NOT + # credential-redacted; tool_calls[].function.arguments IS redacted at + # storage time (build_assistant_message, #19798). Replaying the raw + # block input would resurrect a secret the model inlined into a tool + # call (e.g. terminal(command="curl -H 'Authorization: Bearer sk-...'") + # onto the wire, even though the same value is redacted everywhere else + # in history. Keying by sanitized tool id preserves interleave order + # (the reason this channel exists) while swapping in the redacted + # input. Adapted from #36071 (replay-time tool-input re-sourcing). + redacted_input_by_id: Dict[str, Any] = {} + for tc in m.get("tool_calls", []) or []: + if not isinstance(tc, dict): + continue + fn = tc.get("function", {}) or {} + raw_args = fn.get("arguments", "{}") + try: + parsed_args = json.loads(raw_args) if isinstance(raw_args, str) else raw_args + except (json.JSONDecodeError, ValueError): + parsed_args = {} + redacted_input_by_id[_sanitize_tool_id(tc.get("id", ""))] = parsed_args + replayed: List[Dict[str, Any]] = [] + for b in ordered_blocks: + clean = _sanitize_replay_block(b) + if clean is None: + continue + if clean.get("type") == "tool_use": + # Override raw (un-redacted) input with the redacted copy when + # we have one for this id; fall back to the sanitized block + # input only if the tool_call is missing (shape mismatch). + redacted = redacted_input_by_id.get(clean.get("id", "")) + if redacted is not None: + clean["input"] = redacted + replayed.append(clean) + if replayed: + return {"role": "assistant", "content": replayed} + blocks = _extract_preserved_thinking_blocks(m) if content: if isinstance(content, list): @@ -2301,3 +2471,43 @@ def build_anthropic_kwargs( kwargs["extra_headers"] = {"anthropic-beta": ",".join(betas)} return kwargs + + +# Keys that belong exclusively to the OpenAI Responses / Codex API shape. +# The Anthropic Messages SDK (``messages.create()`` / ``messages.stream()``) +# raises ``TypeError: ... got an unexpected keyword argument`` on any of them. +_RESPONSES_ONLY_KWARGS = frozenset( + {"instructions", "input", "store", "parallel_tool_calls"} +) + + +def sanitize_anthropic_kwargs(api_kwargs: Any, *, log_prefix: str = "") -> Any: + """Drop Responses-API-only keys before an Anthropic Messages SDK call. + + Defensive boundary guard for #31673: under rare api_mode-flip races + (e.g. a concurrent auxiliary call mutating a shared agent between the + kwargs build and the stream dispatch), a Responses-shaped payload + carrying ``instructions=`` can reach ``messages.stream()`` / + ``messages.create()``. The Anthropic SDK rejects it with a + non-retryable ``TypeError`` that nukes the whole turn and propagates + the entire fallback chain. + + Mutates ``api_kwargs`` in place and returns it. When a foreign key is + present we log a WARNING so the underlying race stays visible in the + wild instead of being silently papered over. + """ + if not isinstance(api_kwargs, dict): + return api_kwargs + leaked = _RESPONSES_ONLY_KWARGS.intersection(api_kwargs) + if leaked: + for _key in leaked: + api_kwargs.pop(_key, None) + logger.warning( + "%sStripped Responses-only kwarg(s) %s from an Anthropic Messages " + "call (api_mode flip race — see #31673). The call will proceed; " + "this breadcrumb means a kwargs build ran under a Responses " + "api_mode while dispatch ran under anthropic_messages.", + log_prefix, + sorted(leaked), + ) + return api_kwargs diff --git a/agent/auxiliary_client.py b/agent/auxiliary_client.py index 252a0b88232..c6e00340e7e 100644 --- a/agent/auxiliary_client.py +++ b/agent/auxiliary_client.py @@ -102,7 +102,7 @@ OpenAI = _OpenAIProxy() # module-level name, resolves lazily on call/isinstance from agent.credential_pool import load_pool from hermes_cli.config import get_hermes_home from hermes_constants import OPENROUTER_BASE_URL -from utils import base_url_host_matches, base_url_hostname, normalize_proxy_env_vars +from utils import base_url_host_matches, base_url_hostname, model_forces_max_completion_tokens, normalize_proxy_env_vars logger = logging.getLogger(__name__) @@ -2476,6 +2476,25 @@ def _is_connection_error(exc: Exception) -> bool: return False +def _is_transient_transport_error(exc: Exception) -> bool: + """Return True for a one-off transport blip worth retrying ONCE on the + same provider before any provider/model fallback. + + Covers connection/streaming-close errors (via the canonical + ``_is_connection_error`` detector, shared so the two cannot drift) plus a + pure 5xx/408 HTTP status. Deliberately narrow: this is the "retry the + same target once" gate, distinct from ``_is_payment_error`` / + ``_is_auth_error`` / ``_is_rate_limit_error`` which the except-chain + handles by switching provider, refreshing creds, or rotating the pool. + """ + if _is_connection_error(exc): + return True + status = getattr(exc, "status_code", None) or getattr( + getattr(exc, "response", None), "status_code", None + ) + return isinstance(status, int) and (status == 408 or 500 <= status < 600) + + def _is_auth_error(exc: Exception) -> bool: """Detect auth failures that should trigger provider-specific refresh.""" status = getattr(exc, "status_code", None) @@ -4281,13 +4300,15 @@ def get_auxiliary_extra_body() -> dict: return _nous_extra_body() if auxiliary_is_nous else {} -def auxiliary_max_tokens_param(value: int) -> dict: +def auxiliary_max_tokens_param(value: int, *, model: Optional[str] = None) -> dict: """Return the correct max tokens kwarg for the auxiliary client's provider. - + OpenRouter and local models use 'max_tokens'. Direct OpenAI with newer - models (gpt-4o, o-series, gpt-5+) requires 'max_completion_tokens'. + models (gpt-4o, gpt-4.1, gpt-5+, o-series) requires 'max_completion_tokens'. The Codex adapter translates max_tokens internally, so we use max_tokens - for it as well. + for it as well. Pass ``model`` so third-party OpenAI-compatible endpoints + fronting the newer families are also recognised — URL-only detection + misses the case where a custom base URL serves e.g. ``gpt-5.4``. """ custom_base = _current_custom_base_url() or_key = os.getenv("OPENROUTER_API_KEY") @@ -4297,6 +4318,9 @@ def auxiliary_max_tokens_param(value: int) -> dict: and _read_nous_auth() is None and base_url_hostname(custom_base) in {"api.openai.com", "api.githubcopilot.com"}): return {"max_completion_tokens": value} + # ...and for any caller serving a newer OpenAI-family model by name. + if model_forces_max_completion_tokens(model): + return {"max_completion_tokens": value} return {"max_tokens": value} @@ -5147,8 +5171,28 @@ def call_llm( # Handle unsupported temperature, max_tokens vs max_completion_tokens retry, # then payment fallback. try: - return _validate_llm_response( - client.chat.completions.create(**kwargs), task) + # Retry ONCE on the same provider for a one-off transient transport + # blip (streaming-close / incomplete chunked read / 5xx / 408) before + # the except-chain below escalates to provider/model fallback. A + # single dropped connection shouldn't abandon an otherwise-healthy + # provider. A second failure (or any non-transient error) falls + # through to ``first_err`` and the existing fallback handling + # unchanged. This is the unified home for the transient retry that + # every auxiliary task (compression, memory flush, title-gen, + # session-search, vision) shares. (PR #16587) + try: + return _validate_llm_response( + client.chat.completions.create(**kwargs), task) + except Exception as transient_err: + if not _is_transient_transport_error(transient_err): + raise + logger.info( + "Auxiliary %s: transient transport error; retrying once on " + "the same provider before fallback: %s", + task or "call", transient_err, + ) + return _validate_llm_response( + client.chat.completions.create(**kwargs), task) except Exception as first_err: if "temperature" in kwargs and _is_unsupported_temperature_error(first_err): retry_kwargs = dict(kwargs) @@ -5614,8 +5658,22 @@ async def async_call_llm( kwargs["messages"] = _convert_openai_images_to_anthropic(kwargs["messages"]) try: - return _validate_llm_response( - await client.chat.completions.create(**kwargs), task) + # Retry ONCE on the same provider for a transient transport blip + # before the except-chain escalates to fallback — see call_llm() + # for the rationale. (PR #16587) + try: + return _validate_llm_response( + await client.chat.completions.create(**kwargs), task) + except Exception as transient_err: + if not _is_transient_transport_error(transient_err): + raise + logger.info( + "Auxiliary %s (async): transient transport error; retrying " + "once on the same provider before fallback: %s", + task or "call", transient_err, + ) + return _validate_llm_response( + await client.chat.completions.create(**kwargs), task) except Exception as first_err: if "temperature" in kwargs and _is_unsupported_temperature_error(first_err): retry_kwargs = dict(kwargs) diff --git a/agent/bedrock_adapter.py b/agent/bedrock_adapter.py index 12c7afb8c18..e3abba8436f 100644 --- a/agent/bedrock_adapter.py +++ b/agent/bedrock_adapter.py @@ -208,6 +208,41 @@ def is_stale_connection_error(exc: BaseException) -> bool: return False +def is_streaming_access_denied_error(exc: BaseException) -> bool: + """Return True when AWS denied the ``bedrock:InvokeModelWithResponseStream`` action. + + IAM policies scoped to ``bedrock:InvokeModel`` only (a common least-privilege + setup) reject ``converse_stream()`` with an ``AccessDeniedException`` whose + message names the streaming action, e.g.:: + + User: arn:aws:iam::123456789012:user/x is not authorized to perform: + bedrock:InvokeModelWithResponseStream on resource: ... + + This is permanent for the session — retrying the stream can never succeed — + so callers should flip to the non-streaming ``converse()`` path (which maps + to ``bedrock:InvokeModel``) instead of burning retries. + + Detection is deliberately message-based: boto3 surfaces this as a + ``ClientError`` with ``Error.Code == "AccessDeniedException"``, and the + AnthropicBedrock SDK wraps the same AWS response in its own exception + types, but both preserve the action name in the message. + """ + msg = str(exc).lower() + if "invokemodelwithresponsestream" not in msg: + return False + # ClientError with an explicit access-denied code is the canonical form. + try: + from botocore.exceptions import ClientError + except ImportError: # pragma: no cover — botocore always present with boto3 + ClientError = None # type: ignore[assignment] + if ClientError is not None and isinstance(exc, ClientError): + code = (getattr(exc, "response", None) or {}).get("Error", {}).get("Code", "") + return code in ("AccessDeniedException", "UnauthorizedException") + # Wrapped forms (e.g. AnthropicBedrock SDK PermissionDeniedError) — match + # on the authorization-failure phrasing AWS uses. + return "not authorized" in msg or "accessdenied" in msg + + # --------------------------------------------------------------------------- # AWS credential detection # --------------------------------------------------------------------------- @@ -1003,6 +1038,16 @@ def call_converse_stream( try: response = client.converse_stream(**kwargs) except Exception as exc: + if is_streaming_access_denied_error(exc): + # IAM allows bedrock:InvokeModel but not + # InvokeModelWithResponseStream — permanent for this session. + # Fall back to the non-streaming converse() path. + logger.info( + "bedrock: converse_stream denied by IAM on (region=%s, model=%s) — " + "falling back to non-streaming converse().", + region, model, + ) + return normalize_converse_response(client.converse(**kwargs)) if is_stale_connection_error(exc): logger.warning( "bedrock: stale-connection error on converse_stream(region=%s, " diff --git a/agent/chat_completion_helpers.py b/agent/chat_completion_helpers.py index cbbc9139462..1ee1702b45e 100644 --- a/agent/chat_completion_helpers.py +++ b/agent/chat_completion_helpers.py @@ -139,6 +139,15 @@ def interruptible_api_call(agent, api_kwargs: dict): result = {"response": None, "error": None} request_client_holder = {"client": None, "owner_tid": None} request_client_lock = threading.Lock() + # Request-local cancellation flag. Distinct from agent._interrupt_requested + # because that flag is cleared at run_conversation() turn boundaries, but + # this daemon worker thread can outlive the turn (the gateway caches + # AIAgent instances per session). Tracks whether THIS specific request was + # cancelled by the main thread's interrupt handler, so the transport error + # that is the expected consequence of our own force-close isn't misread as + # a network bug and surfaced to the caller. (PR #6600 — cascading interrupt + # hang.) + _request_cancelled = {"value": False} def _set_request_client(client): with request_client_lock: @@ -229,6 +238,17 @@ def interruptible_api_call(agent, api_kwargs: dict): ) result["response"] = request_client.chat.completions.create(**api_kwargs) except Exception as e: + # If the request was cancelled by the main thread's interrupt + # handler, the transport error is the expected consequence of our + # own force-close, NOT a network bug. Swallow it instead of + # surfacing — the main thread raises InterruptedError. (#6600) + if _request_cancelled["value"]: + logger.debug( + "Non-streaming worker caught %s after request cancellation — " + "exiting without surfacing a network error.", + type(e).__name__, + ) + return result["error"] = e finally: _close_request_client_once("request_complete") @@ -506,6 +526,14 @@ def interruptible_api_call(agent, api_kwargs: dict): break if agent._interrupt_requested: + # Mark THIS request cancelled before force-closing so the worker's + # exception handler recognizes the forced transport error as a + # cancel and exits cleanly instead of surfacing a network error or + # (in the streaming path) burning full retry cycles. (#6600) + _request_cancelled["value"] = True + logger.debug( + "Force-closing httpx client due to interrupt (not a network error)." + ) # Force-close the in-flight worker-local HTTP connection to stop # token generation without poisoning the shared client used to # seed future retries. @@ -924,6 +952,18 @@ def build_assistant_message(agent, assistant_message, finish_reason: str) -> dic if preserved: msg["reasoning_details"] = preserved + # Anthropic interleaved-thinking replay: when a turn interleaves signed + # thinking blocks with tool_use, the parallel reasoning_details + + # tool_calls fields lose the cross-type ordering, and reconstruction + # front-loads thinking — reordering signed blocks and triggering HTTP 400 + # ("thinking ... blocks in the latest assistant message cannot be + # modified"). Carry the verbatim ordered block list so the adapter can + # replay the latest assistant message unchanged. See + # agent/transports/anthropic.py and agent/anthropic_adapter.py. + ordered_blocks = getattr(assistant_message, "anthropic_content_blocks", None) + if ordered_blocks: + msg["anthropic_content_blocks"] = ordered_blocks + # Codex Responses API: preserve encrypted reasoning items for # multi-turn continuity. These get replayed as input on the next turn. codex_items = getattr(assistant_message, "codex_reasoning_items", None) @@ -1575,6 +1615,8 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= _get_bedrock_runtime_client, invalidate_runtime_client, is_stale_connection_error, + is_streaming_access_denied_error, + normalize_converse_response, stream_converse_with_callbacks, ) region = api_kwargs.pop("__bedrock_region__", "us-east-1") @@ -1583,6 +1625,29 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= try: raw_response = client.converse_stream(**api_kwargs) except Exception as _bedrock_exc: + # IAM policies scoped to bedrock:InvokeModel only (no + # InvokeModelWithResponseStream) reject converse_stream() + # with AccessDeniedException. That denial is permanent for + # the session — fall back to the non-streaming converse() + # inline (it maps to bedrock:InvokeModel) and disable + # streaming for subsequent calls so we don't re-fail every + # turn. + if is_streaming_access_denied_error(_bedrock_exc): + agent._disable_streaming = True + agent._safe_print( + "\n⚠ AWS IAM denied bedrock:InvokeModelWithResponseStream — " + "falling back to non-streaming InvokeModel.\n" + " Grant that action to restore streaming output.\n" + ) + logger.info( + "bedrock: converse_stream denied by IAM (%s) — " + "using non-streaming converse() for this session.", + type(_bedrock_exc).__name__, + ) + result["response"] = normalize_converse_response( + client.converse(**api_kwargs) + ) + return # Evict the cached client on stale-connection failures # so the outer retry loop builds a fresh client/pool. if is_stale_connection_error(_bedrock_exc): @@ -1625,6 +1690,14 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= result = {"response": None, "error": None, "partial_tool_names": []} request_client_holder = {"client": None, "diag": None, "owner_tid": None} request_client_lock = threading.Lock() + # Request-local cancellation flag — see interruptible_api_call for the full + # rationale. The streaming retry loop is where the 7-minute cascading- + # interrupt hang originated: a force-close raised RemoteProtocolError, the + # loop classified it as a transient network error, and burned full retry + # cycles (and emitted "reconnecting" noise) on a request the user already + # cancelled. The token lets the worker recognize its own forced close and + # exit immediately instead of retrying. (PR #6600.) + _request_cancelled = {"value": False} def _set_request_client(client): with request_client_lock: @@ -1662,6 +1735,14 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= # poll loop uses this to detect stale connections that keep receiving # SSE keep-alive pings but no actual data. last_chunk_time = {"t": time.time()} + # Stale-stream patience, shared between the httpx socket read timeout + # (built in ``_call_chat_completions`` below) and the stale-stream detector + # (computed further down, before the worker thread starts). Initialized + # here so the read-timeout builder can floor itself at the stale value and + # never fire before the detector. ``None`` until the detector value is + # resolved, so the builder degrades to its plain default if it ever runs + # first. + _stream_stale_timeout = None def _fire_first_delta(): if not first_delta_fired["done"] and on_first_delta: @@ -1698,6 +1779,26 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= "Local provider detected (%s) — stream read timeout raised to %.0fs", agent.base_url, _stream_read_timeout, ) + elif ( + _stream_read_timeout == 120.0 + and _stream_stale_timeout is not None + and _stream_stale_timeout != float("inf") + and _stream_stale_timeout > _stream_read_timeout + ): + # Cloud reasoning models (e.g. Opus) routinely pause mid-stream + # for minutes during extended thinking. The stale-stream + # detector is deliberately scaled up to tolerate this (180–300s, + # see the stale-timeout block below), but the raw httpx socket + # read timeout defaulted to a flat 120s and fired *first* — + # tearing down a healthy reasoning stream before the stale + # detector (which owns retry + diagnostics) could act. Keep the + # socket read timeout in step with the detector so it no longer + # preempts it. + _stream_read_timeout = _stream_stale_timeout + logger.debug( + "Cloud reasoning stream — read timeout raised to %.0fs to " + "match stale-stream detector", _stream_read_timeout, + ) # Cap connect/pool at 60s even when provider timeout is higher. # connect/pool cover TCP handshake, not model inference. _conn_cap = min(_base_timeout, 60.0) if _provider_timeout_cfg is not None else 30.0 @@ -1950,6 +2051,58 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= "(possible upstream error or malformed SSE response)." ) + # A stream that delivered a tool call but only partial/unparseable + # JSON args splits into two very different cases: + # + # 1. Provider sent finish_reason="length" → a genuine output-cap + # truncation. Boosting max_tokens on retry is the right move. + # + # 2. Provider sent NO finish_reason (the SSE simply stopped after + # the opening "{" with no terminator and no [DONE]) → the + # upstream dropped/stalled the connection mid tool-call. This + # is NOT an output cap — the model never reported hitting one. + # Some dedicated endpoints (e.g. NVIDIA Nemotron Ultra on the + # Nous dedicated endpoint) stall for minutes during large + # tool-arg generation, then close the stream cleanly without a + # finish_reason. Stamping "length" here sends it down the + # max_tokens-boost truncation path, which retries 3× to no + # effect and finally reports the misleading "Response truncated + # due to output length limit" — the red herring this guards + # against. Route it through the partial-stream-stub path + # instead so the loop reports an honest mid-tool-call stream + # drop and fails fast rather than escalating output budget. + _tool_args_dropped_no_finish = has_truncated_tool_args and finish_reason is None + if _tool_args_dropped_no_finish: + _dropped_names = [ + (tool_calls_acc[idx]["function"]["name"] or "?") + for idx in sorted(tool_calls_acc) + ] + logger.warning( + "Stream ended with no finish_reason while a tool call's " + "arguments were still incomplete (tools=%s); treating as a " + "mid-tool-call stream drop, not an output-length truncation.", + _dropped_names, + ) + full_reasoning = "".join(reasoning_parts) or None + mock_message = SimpleNamespace( + role=role, + content=full_content, + tool_calls=None, + reasoning_content=full_reasoning, + ) + mock_choice = SimpleNamespace( + index=0, + message=mock_message, + finish_reason=FINISH_REASON_LENGTH, + ) + return SimpleNamespace( + id=PARTIAL_STREAM_STUB_ID, + model=model_name, + choices=[mock_choice], + usage=usage_obj, + _dropped_tool_names=_dropped_names or None, + ) + effective_finish_reason = finish_reason or "stop" if has_truncated_tool_args: effective_finish_reason = "length" @@ -1988,6 +2141,14 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= # Per-attempt diagnostic dict for the retry block to consume. _diag = agent._stream_diag_init() request_client_holder["diag"] = _diag + # Defensive: strip Responses-only kwargs (instructions, input, ...) + # that can leak in under an api_mode-flip race. The Anthropic SDK + # raises a non-retryable TypeError on them, killing the turn. See + # #31673 / sanitize_anthropic_kwargs(). + from agent.anthropic_adapter import sanitize_anthropic_kwargs + sanitize_anthropic_kwargs( + api_kwargs, log_prefix=getattr(agent, "log_prefix", "") + ) # Use the Anthropic SDK's streaming context manager with agent._anthropic_client.messages.stream(**api_kwargs) as stream: # The Anthropic SDK exposes the raw httpx response on @@ -2078,6 +2239,21 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= result["response"] = _call_chat_completions() return # success except Exception as e: + # If the main poll loop force-closed this request because + # of an interrupt, the resulting transport error is the + # expected consequence of our own close — NOT a transient + # network error. Exit immediately: no retry, no fallback, + # no "reconnecting" status. The outer poll loop raises + # InterruptedError. This is the fix for the cascading- + # interrupt hang where doomed retries burned full + # stream-stale-timeout cycles. (#6600) + if _request_cancelled["value"]: + logger.debug( + "Streaming worker caught %s after request " + "cancellation — exiting without retry.", + type(e).__name__, + ) + return _is_timeout = isinstance( e, (_httpx.ReadTimeout, _httpx.ConnectTimeout, _httpx.PoolTimeout) ) @@ -2273,9 +2449,34 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= "stream" in _err_lower and "not supported" in _err_lower ) - if _is_stream_unsupported: + # AWS Bedrock (AnthropicBedrock SDK path): IAM policies + # with bedrock:InvokeModel but not + # InvokeModelWithResponseStream reject messages.stream() + # with a permission error naming the streaming action. + # Permanent for the session — flip to non-streaming + # (messages.create() maps to bedrock:InvokeModel). + _is_bedrock_stream_denied = False + if ( + not _is_stream_unsupported + and "invokemodelwithresponsestream" in _err_lower + ): + # Cheap message pre-check before importing the + # adapter — bedrock_adapter triggers a lazy boto3 + # install at import time, which must not run for + # unrelated providers' stream errors. + from agent.bedrock_adapter import ( + is_streaming_access_denied_error, + ) + _is_bedrock_stream_denied = ( + is_streaming_access_denied_error(e) + ) + if _is_stream_unsupported or _is_bedrock_stream_denied: agent._disable_streaming = True agent._safe_print( + "\n⚠ AWS IAM denied bedrock:InvokeModelWithResponseStream. " + "Switching to non-streaming.\n" + " Grant that action to restore streaming output.\n" + if _is_bedrock_stream_denied else "\n⚠ Streaming is not supported for this " "model/provider. Switching to non-streaming.\n" " To avoid this delay, set display.streaming: false " @@ -2387,6 +2588,15 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta= ) if agent._interrupt_requested: + # Mark THIS request cancelled before force-closing so the worker's + # exception handler recognizes the forced transport error as a + # cancel and exits without retrying or surfacing a network error. + # (#6600) + _request_cancelled["value"] = True + logger.debug( + "Force-closing streaming httpx client due to interrupt " + "(not a network error)." + ) try: if agent.api_mode == "anthropic_messages": agent._anthropic_client.close() diff --git a/agent/codex_runtime.py b/agent/codex_runtime.py index 398deed3c16..7f175fff97f 100644 --- a/agent/codex_runtime.py +++ b/agent/codex_runtime.py @@ -25,6 +25,154 @@ from typing import Any, Dict, List logger = logging.getLogger(__name__) +def _coerce_usage_int(value: Any) -> int: + if isinstance(value, bool): + return 0 + if isinstance(value, int): + return max(value, 0) + if isinstance(value, float): + return max(int(value), 0) + if isinstance(value, str): + try: + return max(int(value), 0) + except ValueError: + return 0 + return 0 + + +def _record_codex_app_server_usage(agent, turn) -> dict[str, Any]: + """Translate Codex app-server token usage into Hermes accounting. + + Codex app-server reports usage via thread/tokenUsage/updated as: + inputTokens, cachedInputTokens, outputTokens, reasoningOutputTokens, + totalTokens. + + Hermes' canonical prompt bucket includes uncached input + cached input. + The Codex app-server protocol does not currently expose cache-write tokens, + so that bucket remains zero on this runtime. + + Even when Codex omits usage for a turn, Hermes should still count that turn + as one API call for session/status accounting. + """ + agent.session_api_calls += 1 + + usage = getattr(turn, "token_usage_last", None) + if not isinstance(usage, dict) or not usage: + if agent._session_db and agent.session_id: + try: + if not agent._session_db_created: + agent._ensure_db_session() + agent._session_db.update_token_counts( + agent.session_id, + model=agent.model, + api_call_count=1, + ) + except Exception as exc: + logger.debug( + "Codex app-server api-call persistence failed (session=%s): %s", + agent.session_id, exc, + ) + return {} + + from agent.usage_pricing import CanonicalUsage, estimate_usage_cost + + input_tokens = _coerce_usage_int(usage.get("inputTokens")) + cache_read_tokens = _coerce_usage_int(usage.get("cachedInputTokens")) + output_tokens = _coerce_usage_int(usage.get("outputTokens")) + reasoning_tokens = _coerce_usage_int(usage.get("reasoningOutputTokens")) + reported_total = _coerce_usage_int(usage.get("totalTokens")) + + canonical_usage = CanonicalUsage( + input_tokens=input_tokens, + output_tokens=output_tokens, + cache_read_tokens=cache_read_tokens, + cache_write_tokens=0, + reasoning_tokens=reasoning_tokens, + raw_usage=usage, + ) + prompt_tokens = canonical_usage.prompt_tokens + completion_tokens = canonical_usage.output_tokens + total_tokens = reported_total or canonical_usage.total_tokens + usage_dict = { + "prompt_tokens": prompt_tokens, + "completion_tokens": completion_tokens, + "total_tokens": total_tokens, + "input_tokens": canonical_usage.input_tokens, + "output_tokens": canonical_usage.output_tokens, + "cache_read_tokens": canonical_usage.cache_read_tokens, + "cache_write_tokens": canonical_usage.cache_write_tokens, + "reasoning_tokens": canonical_usage.reasoning_tokens, + } + + compressor = getattr(agent, "context_compressor", None) + if compressor is not None: + try: + compressor.update_from_response(usage_dict) + context_window = getattr(turn, "model_context_window", None) + if isinstance(context_window, int) and context_window > 0: + compressor.context_length = context_window + except Exception: + logger.debug("codex app-server usage update failed", exc_info=True) + + agent.session_prompt_tokens += prompt_tokens + agent.session_completion_tokens += completion_tokens + agent.session_total_tokens += total_tokens + agent.session_input_tokens += canonical_usage.input_tokens + agent.session_output_tokens += canonical_usage.output_tokens + agent.session_cache_read_tokens += canonical_usage.cache_read_tokens + agent.session_cache_write_tokens += canonical_usage.cache_write_tokens + agent.session_reasoning_tokens += canonical_usage.reasoning_tokens + + cost_result = estimate_usage_cost( + agent.model, + canonical_usage, + provider=agent.provider, + base_url=agent.base_url, + api_key=getattr(agent, "api_key", ""), + ) + if cost_result.amount_usd is not None: + agent.session_estimated_cost_usd += float(cost_result.amount_usd) + agent.session_cost_status = cost_result.status + agent.session_cost_source = cost_result.source + + if agent._session_db and agent.session_id: + try: + if not agent._session_db_created: + agent._ensure_db_session() + agent._session_db.update_token_counts( + agent.session_id, + input_tokens=canonical_usage.input_tokens, + output_tokens=canonical_usage.output_tokens, + cache_read_tokens=canonical_usage.cache_read_tokens, + cache_write_tokens=canonical_usage.cache_write_tokens, + reasoning_tokens=canonical_usage.reasoning_tokens, + estimated_cost_usd=float(cost_result.amount_usd) + if cost_result.amount_usd is not None else None, + cost_status=cost_result.status, + cost_source=cost_result.source, + billing_provider=agent.provider, + billing_base_url=agent.base_url, + billing_mode="subscription_included" + if cost_result.status == "included" else None, + model=agent.model, + api_call_count=1, + ) + except Exception as exc: + logger.debug( + "Codex app-server token persistence failed (session=%s, tokens=%d): %s", + agent.session_id, total_tokens, exc, + ) + + return { + **usage_dict, + "last_prompt_tokens": prompt_tokens, + "estimated_cost_usd": float(cost_result.amount_usd) + if cost_result.amount_usd is not None else None, + "cost_status": cost_result.status, + "cost_source": cost_result.source, + } + + def run_codex_app_server_turn( agent, *, @@ -120,6 +268,8 @@ def run_codex_app_server_turn( agent._iters_since_skill = ( getattr(agent, "_iters_since_skill", 0) + turn.tool_iterations ) + usage_result = _record_codex_app_server_usage(agent, turn) + api_calls = 1 # Now check the skill nudge AFTER iters were incremented — same # pattern the chat_completions path uses (line ~15432). @@ -164,12 +314,13 @@ def run_codex_app_server_turn( return { "final_response": turn.final_text, "messages": messages, - "api_calls": 1, # one app-server "turn" maps to one logical API call + "api_calls": api_calls, "completed": not turn.interrupted and turn.error is None, "partial": turn.interrupted or turn.error is not None, "error": turn.error, "codex_thread_id": turn.thread_id, "codex_turn_id": turn.turn_id, + **usage_result, } diff --git a/agent/coding_context.py b/agent/coding_context.py new file mode 100644 index 00000000000..ede0dc1528a --- /dev/null +++ b/agent/coding_context.py @@ -0,0 +1,738 @@ +"""Coding-context awareness — base Hermes, every interactive surface. + +When the user runs Hermes inside a code workspace (CLI, TUI, desktop app, or an +editor over ACP), Hermes shifts into a **coding posture**. This module is the +single place that decides whether we're in that posture and what it implies, +so the rest of the codebase never re-derives "are we coding?" on its own. + +Architecture — one seam, many consumers +---------------------------------------- +The posture is modelled as a frozen :class:`RuntimeMode` selected from a small +:class:`ContextProfile` registry (today: ``coding`` and ``general``). A profile +is *data* — it declares the toolset to collapse to, the operating brief to +inject, and hints for other domains (model routing, memory, subagents). Every +domain reads the same resolved object instead of probing git/config itself: + + * **System prompt** — ``RuntimeMode.system_blocks()`` → the operating brief + + a live git/workspace snapshot (``agent/system_prompt.py``). + * **Toolset** — ``RuntimeMode.toolset_selection()`` → the ``coding`` toolset + plus the user's enabled MCP servers (``cli.py`` / ``tui_gateway``). Only + under the opt-in ``focus`` mode: the default posture is prompt-only and + never touches the user's configured toolsets (toolsets like messaging / + smart-home / music are off-by-default anyway, and someone who explicitly + enabled image-gen or Spotify shouldn't lose it for being in a git repo). + * **Delegation** — subagents inherit the parent's toolset and run through the + same prompt builder, so the coding posture propagates to children for free. + * **Model / memory / compression** — declared on the profile + (``model_hint``, ``memory_policy``) as the extension seam; consumers read + ``mode.profile`` rather than re-deciding. + +Cache safety +------------ +The mode is resolved **once** and is immutable. The workspace snapshot is built +once at prompt-build time and baked into the *stable* system-prompt tier — never +re-probed per turn (that would shatter the prompt cache). Branch and dirty state +drift mid-session, so the brief tells the model to re-check with ``git`` before +acting on the snapshot. A ``/coding`` flip therefore only takes effect next +session (deferred), the same contract as ``/skills install`` vs ``--now``. + +Activation (config ``agent.coding_context``): + + * ``auto`` (default) — posture (brief + snapshot) on an interactive coding + surface sitting in a code workspace (git repo or recognised project root). + Prompt-only; toolsets and the skill index untouched. + * ``focus`` — like ``auto``, but additionally collapses the toolset to the + ``coding`` set + enabled MCP servers and demotes non-coding skill + categories to names-only in the prompt's skill index (no skill is ever + hidden). Explicit opt-in for a lean schema. + * ``on`` — force the posture anywhere (incl. non-workspaces). Prompt-only. + * ``off`` — disable entirely. +""" + +from __future__ import annotations + +import json +import logging +import os +import re +import subprocess +from dataclasses import dataclass +from pathlib import Path +from typing import Any, Optional + +logger = logging.getLogger("hermes.coding_context") + +CODING_TOOLSET = "coding" + +# Surfaces where a coding posture makes sense under ``auto``. Messaging +# platforms (telegram, discord, slack, …) are intentionally absent — a chat bot +# in a group is not pair-programming. +INTERACTIVE_CODING_PLATFORMS = {"cli", "tui", "acp", "desktop", ""} + +# Project-root signals that mark a directory as a code workspace even when it +# isn't (yet) a git repo. Cheap filename checks — no parsing. +_PROJECT_MARKERS = ( + "pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", + "package.json", "tsconfig.json", "deno.json", + "Cargo.toml", "go.mod", "pom.xml", "build.gradle", "build.gradle.kts", + "Gemfile", "composer.json", "mix.exs", "pubspec.yaml", + "CMakeLists.txt", "Makefile", "Dockerfile", + "AGENTS.md", "CLAUDE.md", ".cursorrules", +) + +# Agent-instruction files surfaced separately from manifests in the snapshot. +_CONTEXT_FILES = ("AGENTS.md", "CLAUDE.md", ".cursorrules") + +# Lockfile → package manager, checked in priority order. +_PY_LOCKFILES = (("uv.lock", "uv"), ("poetry.lock", "poetry"), ("Pipfile.lock", "pipenv")) +_JS_LOCKFILES = ( + ("pnpm-lock.yaml", "pnpm"), ("bun.lockb", "bun"), ("bun.lock", "bun"), + ("yarn.lock", "yarn"), ("package-lock.json", "npm"), +) + +# package.json scripts / Makefile targets worth surfacing as verify commands. +_VERIFY_TARGETS = ("test", "tests", "lint", "typecheck", "check", "build", "fmt", "format") +_MAX_VERIFY_COMMANDS = 8 +_MAX_FACT_FILE_BYTES = 256 * 1024 + +_GIT_TIMEOUT = 2.5 + + +# Per-model edit-format steering. Matching the edit tool format to how a model +# was trained reduces mistakes and wasted reasoning (OpenAI/Codex handle +# patch-style diffs best; Anthropic models — and most open-weight coding +# models, whose RL scaffolds use str_replace-style editors — do best with +# string-replacement). Our `patch` tool exposes both: mode="patch" (V4A +# multi-file) and mode="replace" (find-and-swap). We nudge each family toward +# its native format. Unknown families get nothing (the brief's neutral wording +# stands). Substrings match the model id; aligned with TOOL_USE_ENFORCEMENT_MODELS. +# +# GPT/Codex get V4A for ALL edits, single-file included: in codex-rs, +# apply_patch (V4A — apply_patch.lark) is the ONLY file editor, no +# str_replace-style tool exists, and the shipped model prompts say to use +# apply_patch even "for single file edits" — so a replace-mode nudge would +# steer those models toward a format their first-party harness never taught +# them. +_EDIT_FORMAT_GUIDANCE: dict[str, tuple[tuple[str, ...], str]] = { + "patch": ( + ("gpt", "codex"), + "- Edit format: author new files with `write_file`; for edits to " + "existing code use `patch` with `mode='patch'` (V4A diff) — including " + "single-file edits. It's the edit format you handle most reliably.", + ), + "replace": ( + ("claude", "sonnet", "opus", "haiku", + "gemini", "gemma", "deepseek", "qwen", "kimi", "glm", "grok", + "hermes", "llama", "mistral", "devstral", "minimax"), + "- Edit format: author new files with `write_file`; for edits to " + "existing code prefer `patch` in `mode='replace'` — match a unique " + "snippet and swap it. Reach for `mode='patch'` (V4A) only when an edit " + "genuinely spans several files at once.", + ), +} + + +def _model_family(model: Optional[str]) -> Optional[str]: + """Classify a model id into an edit-format family key, or ``None``. + + Used to steer the coding posture toward the edit tool format a model was + trained on. Family-agnostic by design: an unrecognised model gets ``None`` + and the operating brief's neutral edit wording applies. + """ + if not model: + return None + lowered = model.lower() + for family, (needles, _line) in _EDIT_FORMAT_GUIDANCE.items(): + if any(n in lowered for n in needles): + return family + return None + + +def _edit_format_line(model: Optional[str]) -> str: + """The edit-format guidance line for this model's family (``""`` if none).""" + family = _model_family(model) + if family is None: + return "" + return _EDIT_FORMAT_GUIDANCE[family][1] + + +# Operating brief for the coding posture. Tool names referenced here (read_file, +# search_files, patch, write_file, terminal, todo) are in the coding toolset and +# in _HERMES_CORE_TOOLS, so they're present on every surface this fires on. +CODING_AGENT_GUIDANCE = ( + "You are a coding agent pairing with the user inside their codebase. " + "Operate like a careful senior engineer.\n" + "\n" + "Gather context first:\n" + "- Read the relevant files with `read_file` and locate code with " + "`search_files` before changing anything. Trace a symbol to its definition " + "and usages rather than guessing its shape.\n" + "- Batch independent lookups: when several reads/searches don't depend on " + "each other, issue them together in one turn instead of one at a time.\n" + "- Never invent files, symbols, APIs, or imports. If you haven't seen it in " + "the repo, go look. Don't assume a library is available — check the project " + "manifest (pyproject.toml / package.json / Cargo.toml / go.mod) and how " + "neighbouring files import it.\n" + "\n" + "Make changes through the tools, not the chat:\n" + "- Edit with `patch`/`write_file`. Do NOT print code blocks to the user as " + "a substitute for editing — apply the change, then summarise it. Only show " + "code when the user explicitly asks to see it.\n" + "- Match the project's existing style and conventions; AGENTS.md / " + "CLAUDE.md / .cursorrules already in context win over your defaults. Touch " + "only what the task needs — no drive-by refactors, renames, or reformatting " + "— and add any imports/dependencies your code requires.\n" + "- If an edit fails to apply, re-read the file to get the current exact " + "contents before retrying — don't repeat a stale patch. If the same region " + "fails twice, rewrite the enclosing function or file with `write_file` " + "instead of attempting a third patch.\n" + "\n" + "Verify, and know when to stop:\n" + "- Use `terminal` for git, builds, tests, and inspection. Run the relevant " + "tests/linter/build and confirm they pass before claiming the work is done.\n" + "- Terminal state persists across calls: current directory and exported " + "environment variables carry forward. Activate a virtualenv or export setup " + "vars once, then reuse that state instead of re-sourcing it before every " + "test command.\n" + "- Fix root causes, not symptoms: when you find a bug, check sibling call " + "paths for the same flaw and fix the class, not just the reported site.\n" + "- When fixing linter/type errors on a file, stop after about three " + "attempts on the same file and ask the user rather than looping.\n" + "- Track multi-step work with `todo`. Reference code as `path:line` instead " + "of pasting whole files.\n" + "\n" + "Respect the user's repo: don't commit, push, or rewrite history unless " + "asked, and never read, print, or commit secrets — leave `.env` and " + "credential files alone unless the user explicitly asks. The Workspace " + "block below is a snapshot from session start — re-run `git status`/" + "`git branch` before relying on it. Be concise: lead with the change or " + "answer, not a preamble." +) + + +# ── Context profiles (declarative posture definitions) ────────────────────── + + +@dataclass(frozen=True) +class ContextProfile: + """A named operating posture. Pure data — consumers read these fields. + + ``toolset`` — collapse to this toolset (+ enabled MCP) when no explicit + selection is pinned; ``None`` keeps the platform default. + ``guidance`` — operating brief injected into the stable system prompt; + ``""`` injects nothing. + ``model_hint`` — routing preference key for smart model routing + (extension seam; not yet consumed by the router). + ``memory_policy``— memory namespace/weighting hint (extension seam). + ``compact_skill_categories`` — skill categories DEMOTED to names-only in + the system-prompt skill index under the opt-in ``focus`` + mode. Never hidden: every skill name stays visible + (so memory-anchored recall keeps working) — only the + descriptions are dropped to cut index noise. Deny-list + semantics so unknown/custom categories keep full + entries. + """ + + name: str + toolset: Optional[str] = None + guidance: str = "" + model_hint: Optional[str] = None + memory_policy: str = "default" + compact_skill_categories: tuple[str, ...] = () + + +# Skill categories that are clearly not part of a coding workflow. Demoted to +# names-only in the prompt's skill index under the opt-in ``focus`` mode only +# (deny-list — anything not listed here, incl. custom user categories, keeps +# full entries). Coding-adjacent categories (devops, github, mcp, +# data-science, diagramming, research, security, …) are intentionally absent. +_NON_CODING_SKILL_CATEGORIES = ( + "apple", "communication", "cooking", "creative", "email", "finance", + "gaming", "gifs", "health", "media", "music", "note-taking", + "productivity", "shopping", "smart-home", "social-media", "travel", + "yuanbao", +) + + +GENERAL_PROFILE = ContextProfile(name="general") +CODING_PROFILE = ContextProfile( + name="coding", + toolset=CODING_TOOLSET, + guidance=CODING_AGENT_GUIDANCE, + model_hint="coding", + memory_policy="project", + compact_skill_categories=_NON_CODING_SKILL_CATEGORIES, +) + +_PROFILES: dict[str, ContextProfile] = { + GENERAL_PROFILE.name: GENERAL_PROFILE, + CODING_PROFILE.name: CODING_PROFILE, +} + + +def get_profile(name: str) -> ContextProfile: + """Return a registered profile, falling back to ``general``.""" + return _PROFILES.get(name, GENERAL_PROFILE) + + +# ── Helpers ───────────────────────────────────────────────────────────────── + + +def _coding_mode(config: Optional[dict[str, Any]]) -> str: + """Return the normalized ``agent.coding_context`` mode (auto/focus/on/off).""" + if config is None: + try: + from hermes_cli.config import load_config + + config = load_config() + except Exception: + config = {} + raw = ((config or {}).get("agent", {}) or {}).get("coding_context", "auto") + mode = str(raw).strip().lower() + if mode in {"focus", "strict", "lean"}: + return "focus" + if mode in {"on", "true", "yes", "1", "always"}: + return "on" + if mode in {"off", "false", "no", "0", "never"}: + return "off" + return "auto" + + +def _resolve_cwd(cwd: Optional[str | Path]) -> Path: + if cwd: + return Path(cwd).expanduser() + try: + from agent.runtime_cwd import resolve_agent_cwd + + return resolve_agent_cwd() + except Exception: + return Path(os.getcwd()) + + +def _git_root(cwd: Path) -> Optional[Path]: + current = cwd.resolve() + for parent in [current, *current.parents]: + if (parent / ".git").exists(): + return parent + return None + + +def _home() -> Optional[Path]: + try: + return Path.home().resolve() + except (OSError, RuntimeError): + return None + + +def _marker_root(cwd: Path) -> Optional[Path]: + """Nearest ancestor that looks like a project root, or ``None``. + + Walks up at most a few levels so a manifest in the workspace root counts + even when the user is in a subdirectory. ``$HOME`` itself is skipped — a + Makefile or AGENTS.md sitting in the home directory is global user config, + not a project-root signal. + """ + current = cwd.resolve() + home = _home() + for depth, parent in enumerate([current, *current.parents]): + if depth > 6: + break + if parent == home: + continue + for marker in _PROJECT_MARKERS: + if (parent / marker).exists(): + return parent + return None + + +def _detect_profile_name(mode: str, platform: str, cwd_str: str) -> str: + """Resolve which profile applies. + + ``auto``/``focus``: coding when the surface is interactive AND the cwd is a + code workspace (a git repo or a recognised project root). ``on``: always + coding. ``off``: always general. + + A git repo rooted at ``$HOME`` (the dotfiles pattern) is NOT a workspace + signal — without the guard, every session anywhere under a dotfiles-managed + home directory would silently flip to the coding posture. + + Detection is intentionally not memoized: it's a handful of ``stat`` calls, + and callers resolve the mode once per session anyway. Caching here would + risk a stale posture if a long-lived process (gateway/TUI) serves sessions + from different working directories. + """ + if mode == "off": + return GENERAL_PROFILE.name + if mode == "on": + return CODING_PROFILE.name + if platform and platform.strip().lower() not in INTERACTIVE_CODING_PLATFORMS: + return GENERAL_PROFILE.name + cwd = Path(cwd_str) + git_root = _git_root(cwd) + if git_root is not None and git_root == _home(): + git_root = None # dotfiles repo at $HOME — not a code workspace + if git_root is not None or _marker_root(cwd) is not None: + return CODING_PROFILE.name + return GENERAL_PROFILE.name + + +# ── RuntimeMode (the seam) ────────────────────────────────────────────────── + + +@dataclass(frozen=True) +class RuntimeMode: + """The resolved operating posture for a session. Immutable by construction. + + Built once via :func:`resolve_runtime_mode` and consumed by every domain + that cares about the coding/general distinction. Never mutate or re-resolve + mid-session — that would break the prompt cache. + """ + + profile: ContextProfile + surface: str + cwd: Path + # The normalized ``agent.coding_context`` mode this posture was resolved + # under (auto/focus/on/off). Toolset collapse is gated on ``focus``. + config_mode: str = "auto" + # The model id this session runs (e.g. "anthropic/claude-opus-4.8"). Used + # only to steer edit-format guidance toward the model's family — see + # ``_edit_format_line``. Fixed for the session, so cache-safe. + model: Optional[str] = None + + @property + def kind(self) -> str: + return self.profile.name + + @property + def is_coding(self) -> bool: + return self.profile.name == CODING_PROFILE.name + + def toolset_selection(self, config: Optional[dict[str, Any]] = None) -> Optional[list[str]]: + """Toolset list for this posture, or ``None`` to keep the platform default. + + Non-``None`` only under the opt-in ``focus`` mode. The default posture + is prompt-only: most strippable toolsets are off-by-default anyway, and + a user who explicitly enabled one (image-gen for frontend/game assets, + messaging for build notifications, …) keeps it while coding. + + Callers apply this only when the user hasn't pinned an explicit + selection (``--toolsets``, ``HERMES_TUI_TOOLSETS``, …); they never + override a pin. Returns the profile's toolset plus enabled MCP servers. + """ + if self.config_mode != "focus": + return None + if self.profile.toolset is None: + return None + return [self.profile.toolset, *_enabled_mcp_servers(config)] + + def system_blocks(self) -> list[str]: + """Stable system-prompt blocks for this posture (brief + workspace). + + The operating brief carries a model-family edit-format nudge appended + to it (one cached string, not a separate block) so the model is steered + toward the `patch` mode it handles best — see ``_edit_format_line``. + """ + if not self.is_coding: + return [] + blocks: list[str] = [] + if self.profile.guidance: + brief = self.profile.guidance + edit_line = _edit_format_line(self.model) + if edit_line: + brief = f"{brief}\n{edit_line}" + blocks.append(brief) + workspace = build_coding_workspace_block(self.cwd) + if workspace: + blocks.append(workspace) + return blocks + + def compact_skill_categories(self) -> frozenset[str]: + """Skill categories to demote to names-only in the prompt's skill index. + + Gated on the opt-in ``focus`` mode, like the toolset collapse: the + default posture leaves the skill index untouched. Users who didn't ask + for a lean prompt keep full entries for every category — index changes + under ``auto`` proved too surprising in practice, even names-only ones + (a demoted description is information the model no longer weighs when + deciding what to load). + + Demoted — never hidden — even under ``focus``. An earlier revision + fully pruned these categories from the index, which caused silent + capability loss in a real workflow: agent-created skills are the + model's accumulated project memory (server-ops runbooks, learned + pitfalls, …), and models do not reliably reach for ``skills_list`` to + rediscover what the index stopped showing them. Names-only keeps every + skill loadable on recall while still cutting the description noise. + """ + if not self.is_coding or self.config_mode != "focus": + return frozenset() + return frozenset(self.profile.compact_skill_categories) + + +def resolve_runtime_mode( + *, + platform: Optional[str] = None, + cwd: Optional[str | Path] = None, + config: Optional[dict[str, Any]] = None, + model: Optional[str] = None, +) -> RuntimeMode: + """Resolve the operating posture once. Cheap — a handful of ``stat`` calls. + + This is the single entry point every domain should call. The returned + object is immutable and safe to cache for the session. Detection itself is + intentionally *not* memoized (see ``_detect_profile_name``) so a long-lived + process can't pin a stale posture; callers resolve once per session and + hold the result. ``model`` is recorded only to steer edit-format guidance; + it never affects detection. + """ + resolved_cwd = _resolve_cwd(cwd) + mode = _coding_mode(config) + name = _detect_profile_name( + mode, (platform or "").strip().lower(), str(resolved_cwd) + ) + return RuntimeMode( + profile=get_profile(name), + surface=platform or "", + cwd=resolved_cwd, + config_mode=mode, + model=model, + ) + + +# ── Back-compat surface (thin wrappers over RuntimeMode) ──────────────────── + + +def is_coding_context( + *, + platform: Optional[str] = None, + cwd: Optional[str | Path] = None, + config: Optional[dict[str, Any]] = None, +) -> bool: + """Whether Hermes should operate in its coding posture right now.""" + return resolve_runtime_mode(platform=platform, cwd=cwd, config=config).is_coding + + +def coding_selection( + *, + platform: Optional[str] = None, + cwd: Optional[str | Path] = None, + config: Optional[dict[str, Any]] = None, +) -> Optional[list[str]]: + """Toolset selection for the coding posture. + + ``None`` unless the user opted into ``focus`` mode AND the posture is + active — the default coding posture never overrides configured toolsets. + """ + return resolve_runtime_mode( + platform=platform, cwd=cwd, config=config + ).toolset_selection(config) + + +def coding_system_blocks( + *, + platform: Optional[str] = None, + cwd: Optional[str | Path] = None, + config: Optional[dict[str, Any]] = None, + model: Optional[str] = None, +) -> list[str]: + """Stable system-prompt blocks for the current posture (empty when general). + + ``model`` steers the brief's edit-format nudge toward the model's family. + """ + return resolve_runtime_mode( + platform=platform, cwd=cwd, config=config, model=model + ).system_blocks() + + +def coding_compact_skill_categories( + *, + platform: Optional[str] = None, + cwd: Optional[str | Path] = None, + config: Optional[dict[str, Any]] = None, +) -> frozenset[str]: + """Skill categories the active posture demotes to names-only in the index. + + Empty outside the coding posture and outside the opt-in ``focus`` mode — + the default posture never touches the skill index. Under ``focus``, + demoted — never hidden: every skill name stays in the index and remains + loadable via ``skill_view`` / ``skills_list``; only descriptions are + dropped. + """ + return resolve_runtime_mode( + platform=platform, cwd=cwd, config=config + ).compact_skill_categories() + + +def _enabled_mcp_servers(config: Optional[dict[str, Any]]) -> list[str]: + """Names of MCP servers the user has enabled — kept in the coding posture. + + MCP servers (figma, browser, tophat, …) are explicitly configured and part + of the coding workflow, not noise to strip. + """ + try: + from hermes_cli.config import read_raw_config + from hermes_cli.tools_config import _parse_enabled_flag + + servers = read_raw_config().get("mcp_servers") or {} + return [ + str(name) + for name, cfg in servers.items() + if isinstance(cfg, dict) + and _parse_enabled_flag(cfg.get("enabled", True), default=True) + ] + except Exception: + return [] + + +# ── git/workspace probe ───────────────────────────────────────────────────── + + +def _git(cwd: Path, *args: str) -> str: + try: + out = subprocess.run( + ["git", "-C", str(cwd), *args], + capture_output=True, + text=True, + timeout=_GIT_TIMEOUT, + ) + except (OSError, subprocess.SubprocessError): + return "" + return out.stdout.strip() if out.returncode == 0 else "" + + +def _parse_status(porcelain: str) -> tuple[dict[str, str], dict[str, int]]: + """Parse ``git status --porcelain=2 --branch`` into branch + counts.""" + branch: dict[str, str] = {} + counts = {"staged": 0, "modified": 0, "untracked": 0, "conflicts": 0} + for line in porcelain.splitlines(): + if line.startswith("# branch.head"): + branch["head"] = line.split(maxsplit=2)[-1] + elif line.startswith("# branch.upstream"): + branch["upstream"] = line.split(maxsplit=2)[-1] + elif line.startswith("# branch.ab"): + parts = line.split() + branch["ahead"], branch["behind"] = parts[2].lstrip("+"), parts[3].lstrip("-") + elif line.startswith(("1 ", "2 ")): + xy = line.split(maxsplit=2)[1] + if xy[0] != ".": + counts["staged"] += 1 + if xy[1] != ".": + counts["modified"] += 1 + elif line.startswith("u "): + counts["conflicts"] += 1 + elif line.startswith("? "): + counts["untracked"] += 1 + return branch, counts + + +def _read_small(path: Path) -> str: + """Read a small text file, or ``""`` — never raises, never reads huge files.""" + try: + if not path.is_file() or path.stat().st_size > _MAX_FACT_FILE_BYTES: + return "" + return path.read_text(encoding="utf-8", errors="replace") + except OSError: + return "" + + +def _project_facts(root: Path) -> list[str]: + """Detected project facts for the workspace snapshot. + + The point is to hand the model its *verify loop* up front — which manifest, + which package manager, and the exact test/lint/build commands — instead of + making it rediscover them every session. Cheap: stat calls plus reads of a + couple of small files; built once at prompt-build time (cache-safe). + """ + facts: list[str] = [] + + manifests = [m for m in _PROJECT_MARKERS if m not in _CONTEXT_FILES and (root / m).is_file()] + package_managers = [ + pm for lock, pm in (*_PY_LOCKFILES, *_JS_LOCKFILES) if (root / lock).is_file() + ] + if manifests: + line = f"- Project: {', '.join(manifests[:6])}" + if package_managers: + line += f" ({'/'.join(dict.fromkeys(package_managers))})" + facts.append(line) + + verify: list[str] = [] + if (root / "scripts" / "run_tests.sh").is_file(): + verify.append("scripts/run_tests.sh") + if (root / "package.json").is_file(): + try: + scripts = json.loads(_read_small(root / "package.json") or "{}").get("scripts") or {} + except (json.JSONDecodeError, AttributeError): + scripts = {} + js_pm = next((pm for lock, pm in _JS_LOCKFILES if (root / lock).is_file()), "npm") + verify.extend(f"{js_pm} run {name}" for name in _VERIFY_TARGETS if name in scripts) + if (root / "pytest.ini").is_file() or "[tool.pytest" in _read_small(root / "pyproject.toml"): + verify.append("pytest") + makefile = _read_small(root / "Makefile") + if makefile: + verify.extend( + f"make {name}" for name in _VERIFY_TARGETS + if re.search(rf"^{re.escape(name)}\s*:", makefile, re.MULTILINE) + ) + if verify: + deduped = list(dict.fromkeys(verify))[:_MAX_VERIFY_COMMANDS] + facts.append(f"- Verify: {'; '.join(deduped)}") + + context_files = [c for c in _CONTEXT_FILES if (root / c).is_file()] + if context_files: + facts.append(f"- Context files: {', '.join(context_files)}") + + return facts + + +def build_coding_workspace_block(cwd: Optional[str | Path] = None) -> str: + """Workspace snapshot for the system prompt (empty outside a workspace). + + Git state (branch/status/commits) when the cwd is in a repo, plus detected + project facts (manifest, package manager, verify commands, context files) + — so marker-only (non-git) projects still get a snapshot. + """ + resolved = _resolve_cwd(cwd) + git_root = _git_root(resolved) + root = git_root or _marker_root(resolved) + if root is None: + return "" + + lines = ["Workspace (snapshot at session start — re-check with `git` before acting on it):"] + lines.append(f"- Root: {root}") + + if git_root is not None: + branch, counts = _parse_status(_git(root, "status", "--porcelain=2", "--branch")) + head = branch.get("head", "") + if head and head != "(detached)": + line = f"- Branch: {head}" + if branch.get("upstream"): + line += f" \u2192 {branch['upstream']}" + ahead, behind = branch.get("ahead", "0"), branch.get("behind", "0") + if ahead != "0" or behind != "0": + line += f" (ahead {ahead}, behind {behind})" + lines.append(line) + elif head == "(detached)": + lines.append("- Branch: (detached HEAD)") + + # Linked worktree: the per-worktree git dir differs from the shared common dir. + # We surface the fact that it's a worktree (so the model knows branches/stashes + # are shared state) but deliberately do NOT expose the primary tree path — + # giving the model a second absolute path causes it to sometimes run commands + # in the wrong directory. + git_dir, common_dir = _git(root, "rev-parse", "--git-dir"), _git(root, "rev-parse", "--git-common-dir") + if git_dir and common_dir and Path(git_dir).resolve() != Path(common_dir).resolve(): + lines.append("- Worktree: linked (git state shared with primary tree)") + + dirty = [f"{n} {label}" for label, n in ( + ("staged", counts["staged"]), ("modified", counts["modified"]), + ("untracked", counts["untracked"]), ("conflicts", counts["conflicts"]), + ) if n] + lines.append(f"- Status: {', '.join(dirty) if dirty else 'clean'}") + + recent = _git(root, "log", "-3", "--pretty=%h %s") + if recent: + lines.append("- Recent commits:") + lines.extend(f" {c}" for c in recent.splitlines()) + + lines.extend(_project_facts(root)) + return "\n".join(lines) diff --git a/agent/context_compressor.py b/agent/context_compressor.py index 98d226b46af..2995bf92451 100644 --- a/agent/context_compressor.py +++ b/agent/context_compressor.py @@ -7,7 +7,7 @@ protecting head and tail context. Improvements over v2: - Structured summary template with Resolved/Pending question tracking - Filter-safe summarizer preamble that treats prior turns as source material - - "Remaining Work" replaces "Next Steps" to avoid reading as active instructions + - Historical (reference-only) section headings replace "Next Steps"/"Remaining Work" to avoid reading as active instructions - Clear separator when summary merges into tail message - Iterative summary updates (preserves info across multiple compactions) - Token-budget tail protection instead of fixed message count @@ -34,7 +34,50 @@ from agent.redact import redact_sensitive_text logger = logging.getLogger(__name__) +HISTORICAL_TASK_HEADING = "## Historical Task Snapshot" +HISTORICAL_IN_PROGRESS_HEADING = "## Historical In-Progress State" +HISTORICAL_PENDING_ASKS_HEADING = "## Historical Pending User Asks" +HISTORICAL_REMAINING_WORK_HEADING = "## Historical Remaining Work" + + SUMMARY_PREFIX = ( + "[CONTEXT COMPACTION — REFERENCE ONLY] Earlier turns were compacted " + "into the summary below. This is a handoff from a previous context " + "window — treat it as background reference, NOT as active instructions. " + "Do NOT answer questions or fulfill requests mentioned in this summary; " + "they were already addressed. " + "Respond ONLY to the latest user message that appears AFTER this " + "summary — that message is the single source of truth for what to do " + "right now. " + "Topic overlap with the summary does NOT mean you should resume its " + "task: even on similar topics, the latest user message WINS. Treat ONLY " + "the latest message as the active task and discard stale items from " + f"'{HISTORICAL_TASK_HEADING}' / '{HISTORICAL_IN_PROGRESS_HEADING}' / " + f"'{HISTORICAL_PENDING_ASKS_HEADING}' / " + f"'{HISTORICAL_REMAINING_WORK_HEADING}' entirely — do not 'wrap up' or " + "'finish' work described there unless the latest message explicitly " + "asks for it. " + "Reverse signals in the latest message (e.g. 'stop', 'undo', 'roll " + "back', 'just verify', 'don't do that anymore', 'never mind', a new " + "topic) must immediately end any in-flight work described in the " + "summary; do not re-surface it in later turns. " + "IMPORTANT: Your persistent memory (MEMORY.md, USER.md) in the system " + "prompt is ALWAYS authoritative and active — never ignore or deprioritize " + "memory content due to this compaction note. " + "The current session state (files, config, etc.) may reflect work " + "described here — avoid repeating it:" +) +LEGACY_SUMMARY_PREFIX = "[CONTEXT SUMMARY]:" + +# Handoff prefixes that shipped in earlier releases. A summary persisted under +# one of these can be inherited into a resumed lineage (#35344); when it is +# re-normalized on re-compaction we must strip the OLD prefix too, otherwise the +# stale directive it carried (e.g. "resume exactly from Active Task") survives +# embedded in the body and keeps hijacking replies. Keep newest-first; entries +# are matched literally. Add a frozen copy here whenever SUMMARY_PREFIX changes. +_HISTORICAL_SUMMARY_PREFIXES = ( + # Carveout era (#41607/#38364/#42812): "consistent → use as background" + # licensed stale-task resumption on topic overlap. "[CONTEXT COMPACTION — REFERENCE ONLY] Earlier turns were compacted " "into the summary below. This is a handoff from a previous context " "window — treat it as background reference, NOT as active instructions. " @@ -57,17 +100,7 @@ SUMMARY_PREFIX = ( "prompt is ALWAYS authoritative and active — never ignore or deprioritize " "memory content due to this compaction note. " "The current session state (files, config, etc.) may reflect work " - "described here — avoid repeating it:" -) -LEGACY_SUMMARY_PREFIX = "[CONTEXT SUMMARY]:" - -# Handoff prefixes that shipped in earlier releases. A summary persisted under -# one of these can be inherited into a resumed lineage (#35344); when it is -# re-normalized on re-compaction we must strip the OLD prefix too, otherwise the -# stale directive it carried (e.g. "resume exactly from Active Task") survives -# embedded in the body and keeps hijacking replies. Keep newest-first; entries -# are matched literally. Add a frozen copy here whenever SUMMARY_PREFIX changes. -_HISTORICAL_SUMMARY_PREFIXES = ( + "described here — avoid repeating it:", # Pre-#35344: contained the self-contradicting "resume exactly" directive. "[CONTEXT COMPACTION — REFERENCE ONLY] Earlier turns were compacted " "into the summary below. This is a handoff from a previous context " @@ -1155,7 +1188,7 @@ class ContextCompressor(ContextEngine): ) reason_text = f" Summary failure reason: {reason}." if reason else "" - body = f"""## Active Task + body = f"""{HISTORICAL_TASK_HEADING} {active_task} ## Goal @@ -1172,7 +1205,7 @@ Recovered from a deterministic fallback because the LLM context summarizer was u ## Active State Unknown from deterministic fallback. Inspect current repository/session state if needed. -## In Progress +{HISTORICAL_IN_PROGRESS_HEADING} {active_task} ## Blocked @@ -1184,13 +1217,13 @@ None recoverable from deterministic fallback. ## Resolved Questions None recoverable from deterministic fallback. -## Pending User Asks +{HISTORICAL_PENDING_ASKS_HEADING} {active_task} ## Relevant Files {_bullets(relevant_files, limit=12)} -## Remaining Work +{HISTORICAL_REMAINING_WORK_HEADING} Continue from the most recent unfulfilled user ask and protected tail messages. Verify state with tools before making claims. ## Last Dropped Turns @@ -1312,7 +1345,7 @@ Summary generation was unavailable, so this is a best-effort deterministic fallb _temporal_anchoring_rule = "" # Shared structured template (used by both paths). - _template_sections = f"""## Active Task + _template_sections = f"""{HISTORICAL_TASK_HEADING} [THE SINGLE MOST IMPORTANT FIELD. Capture the user's most recent unfulfilled input verbatim — the exact words they used. This includes: - Explicit task assignments ("refactor the auth module") @@ -1359,7 +1392,7 @@ Be specific with file paths, commands, line numbers, and results.] - Any running processes or servers - Environment details that matter] -## In Progress +{HISTORICAL_IN_PROGRESS_HEADING} [Work currently underway — what was being done when compaction fired] ## Blocked @@ -1371,14 +1404,14 @@ Be specific with file paths, commands, line numbers, and results.] ## Resolved Questions [Questions the user asked that were ALREADY answered — include the answer so it is not repeated] -## Pending User Asks -[Questions or requests from the user that have NOT yet been answered or fulfilled. If none, write "None."] +{HISTORICAL_PENDING_ASKS_HEADING} +[Questions or requests from the user that have NOT yet been answered or fulfilled. These are STALE — they were from the compacted turns. Write them here for reference only. The agent must NOT act on them unless the latest user message explicitly requests it. If none, write "None."] ## Relevant Files [Files read, modified, or created — with brief note on each] -## Remaining Work -[What remains to be done — framed as context, not instructions] +{HISTORICAL_REMAINING_WORK_HEADING} +[What remains to be done — framed as STALE context for reference only. The agent must NOT resume this work unless the latest user message explicitly asks for it.] ## Critical Context [Any specific values, error messages, configuration details, or data that would be lost without explicit preservation. NEVER include API keys, tokens, passwords, or credentials — write [REDACTED] instead.] @@ -1753,7 +1786,7 @@ The user has requested that this compaction PRIORITISE preserving all informatio Context compressor bug (#10896): ``_align_boundary_backward`` can pull ``cut_idx`` past a user message when it tries to keep tool_call/result groups together. If the last user message ends up in the *compressed* - middle region the LLM summariser writes it into "Pending User Asks", + middle region the LLM summariser writes it into "Historical Pending User Asks", but ``SUMMARY_PREFIX`` tells the next model to respond only to user messages *after* the summary — so the task effectively disappears from the active context, causing the agent to stall, repeat completed work, diff --git a/agent/context_references.py b/agent/context_references.py index 50a33a1d757..6307033d270 100644 --- a/agent/context_references.py +++ b/agent/context_references.py @@ -246,7 +246,14 @@ def _expand_file_reference( if not path.is_file(): return f"{ref.raw}: path is not a file", None if _is_binary_file(path): - return f"{ref.raw}: binary files are not supported", None + # A binary file can't be inlined as text, but it IS on disk (the agent's + # tools run where this resolves — the local cwd, or the staged copy in a + # remote session workspace). Returning a bare "not supported" warning + # with no content was a dead end: the model saw a failure and gave up + # (told the user the file type wasn't supported). Instead, hand it an + # actionable block — the path, type, size, and a nudge to use its tools — + # so it can read/convert/view the file itself. + return None, _binary_reference_block(ref, path) text = path.read_text(encoding="utf-8") if ref.line_start is not None: @@ -290,6 +297,7 @@ def _expand_git_reference( capture_output=True, text=True, timeout=30, + stdin=subprocess.DEVNULL, ) except subprocess.TimeoutExpired: return f"{ref.raw}: git command timed out (30s)", None @@ -482,6 +490,7 @@ def _rg_files(path: Path, cwd: Path, limit: int) -> list[Path] | None: capture_output=True, text=True, timeout=10, + stdin=subprocess.DEVNULL, ) except (FileNotFoundError, OSError, subprocess.TimeoutExpired): return None @@ -491,6 +500,30 @@ def _rg_files(path: Path, cwd: Path, limit: int) -> list[Path] | None: return files[:limit] +def _human_bytes(n: int) -> str: + size = float(n) + for unit in ("B", "KB", "MB", "GB"): + if size < 1024 or unit == "GB": + return f"{int(size)} {unit}" if unit == "B" else f"{size:.1f} {unit}" + size /= 1024 + return f"{size:.1f} GB" + + +def _binary_reference_block(ref: ContextReference, path: Path) -> str: + mime, _ = mimetypes.guess_type(path.name) + mime = mime or "application/octet-stream" + try: + size = _human_bytes(path.stat().st_size) + except OSError: + size = "unknown size" + return ( + f"📎 {ref.raw} ({mime}, {size}) — binary file, not inlined as text. " + f"It is available on disk at `{path}`. Use your tools to work with it " + f"(read or convert it, extract its text, or view/render it as needed); " + f"do not tell the user the file type is unsupported." + ) + + def _file_metadata(path: Path) -> str: if _is_binary_file(path): return f"{path.stat().st_size} bytes" diff --git a/agent/conversation_loop.py b/agent/conversation_loop.py index d0231e994ac..ec74a76b51d 100644 --- a/agent/conversation_loop.py +++ b/agent/conversation_loop.py @@ -2262,30 +2262,54 @@ def run_conversation( print(f"{agent.log_prefix} • Legacy cleanup: hermes config set ANTHROPIC_TOKEN \"\"") print(f"{agent.log_prefix} • Clear stale keys: hermes config set ANTHROPIC_API_KEY \"\"") - # ── Thinking block signature recovery ───────────────── + # Thinking block signature recovery. + # # Anthropic signs thinking blocks against the full turn - # content. Any upstream mutation (context compression, + # content. Any upstream mutation (context compression, # session truncation, message merging) invalidates the - # signature → HTTP 400. Recovery: strip reasoning_details - # from all messages so the next retry sends no thinking - # blocks at all. One-shot — don't retry infinitely. + # signature and the API replies HTTP 400 ("invalid + # signature" or "cannot be modified"). Recovery strips + # ``reasoning_details`` so the retry sends no thinking + # blocks at all. One-shot per outer loop. + # + # The strip targets ``api_messages``, which is the + # API-call-time list that ``_build_api_kwargs`` consumes + # on every retry. ``api_messages`` was populated once at + # the start of the turn from shallow copies of + # ``messages``, so mutating it does not touch the + # canonical store. The previous implementation popped + # ``reasoning_details`` from ``messages`` instead, which + # had two problems: ``api_messages`` carried its own + # reference to the field through the shallow copy, so the + # retry's wire payload still included thinking blocks and + # the recovery never reached the API; and the mutation + # persisted into ``state.db`` through any subsequent + # ``_persist_session`` call, permanently corrupting the + # conversation. Future turns would replay the stripped + # state, hit the same 400, and the agent would terminate + # with ``max_retries_exhausted``, often spawning + # cascading compaction-ended sessions chained off the + # corrupted parent. if ( classified.reason == FailoverReason.thinking_signature and not _retry.thinking_sig_retry_attempted ): _retry.thinking_sig_retry_attempted = True - for _m in messages: - if isinstance(_m, dict): + _api_stripped = 0 + for _m in api_messages: + if isinstance(_m, dict) and "reasoning_details" in _m: _m.pop("reasoning_details", None) + _api_stripped += 1 agent._vprint( - f"{agent.log_prefix}⚠️ Thinking block signature invalid — " - f"stripped all thinking blocks, retrying...", + f"{agent.log_prefix}⚠️ Thinking block signature invalid, " + f"stripped reasoning_details from api_messages for retry...", force=True, ) logger.warning( "%sThinking block signature recovery: stripped " - "reasoning_details from %d messages", - agent.log_prefix, len(messages), + "reasoning_details from %d api_messages " + "(canonical messages unchanged)", + agent.log_prefix, _api_stripped, ) continue @@ -4237,383 +4261,26 @@ def run_conversation( messages.append({"role": "assistant", "content": final_response}) break - if final_response is None and ( - api_call_count >= agent.max_iterations - or agent.iteration_budget.remaining <= 0 - ): - # Budget exhausted — ask the model for a summary via one extra - # API call with tools stripped. _handle_max_iterations injects a - # user message and makes a single toolless request. - _turn_exit_reason = f"max_iterations_reached({api_call_count}/{agent.max_iterations})" - agent._emit_status( - f"⚠️ Iteration budget exhausted ({api_call_count}/{agent.max_iterations}) " - "— asking model to summarise" - ) - if not agent.quiet_mode: - agent._safe_print( - f"\n⚠️ Iteration budget exhausted ({api_call_count}/{agent.max_iterations}) " - "— requesting summary..." - ) - final_response = agent._handle_max_iterations(messages, api_call_count) - - # If running as a kanban worker, signal the dispatcher that the - # worker could not complete (rather than treating it as a - # protocol violation). The agent loop strips tools before calling - # _handle_max_iterations, so the model cannot call kanban_block - # itself — we must do it on its behalf. - # - # We route through ``_record_task_failure(outcome="timed_out")`` - # rather than ``kanban_block`` so this counts toward the - # ``consecutive_failures`` counter and the dispatcher's - # ``failure_limit`` circuit breaker (#29747 gap 2). Without this, - # a task whose worker keeps exhausting its budget would block - # silently each run, get auto-promoted by the operator (or never - # surface), and re-block in an endless loop with no signal. - _kanban_task = os.environ.get("HERMES_KANBAN_TASK") - if _kanban_task: - try: - from hermes_cli import kanban_db as _kb - _conn = _kb.connect() - try: - _kb._record_task_failure( - _conn, - _kanban_task, - error=( - f"Iteration budget exhausted " - f"({api_call_count}/{agent.max_iterations}) — " - "task could not complete within the allowed " - "iterations" - ), - outcome="timed_out", - release_claim=True, - end_run=True, - event_payload_extra={ - "budget_used": api_call_count, - "budget_max": agent.max_iterations, - }, - ) - logger.info( - "recorded budget-exhausted failure for task %s (%d/%d)", - _kanban_task, api_call_count, agent.max_iterations, - ) - finally: - try: - _conn.close() - except Exception: - pass - except Exception: - logger.warning( - "Failed to record budget-exhausted failure for task %s", - _kanban_task, - exc_info=True, - ) - - # Determine if conversation completed successfully - completed = ( - final_response is not None - and api_call_count < agent.max_iterations - and not failed - ) - - # Save trajectory if enabled. ``user_message`` may be a multimodal - # list of parts; the trajectory format wants a plain string. - agent._save_trajectory(messages, _summarize_user_message_for_log(user_message), completed) - - # Clean up VM and browser for this task after conversation completes - agent._cleanup_task_resources(effective_task_id) - - # Persist session to both JSON log and SQLite only after private retry - # scaffolding has been removed. Otherwise a later user "continue" turn - # can replay assistant("(empty)") / recovery nudges and fall into the - # same empty-response loop again. - agent._drop_trailing_empty_response_scaffolding(messages) - agent._persist_session(messages, conversation_history) - - # ── Turn-exit diagnostic log ───────────────────────────────────── - # Always logged at INFO so agent.log captures WHY every turn ended. - # When the last message is a tool result (agent was mid-work), log - # at WARNING — this is the "just stops" scenario users report. - _last_msg_role = messages[-1].get("role") if messages else None - _last_tool_name = None - if _last_msg_role == "tool": - # Walk back to find the assistant message with the tool call - for _m in reversed(messages): - if _m.get("role") == "assistant" and _m.get("tool_calls"): - _tcs = _m["tool_calls"] - if _tcs and isinstance(_tcs[0], dict): - _last_tool_name = _tcs[-1].get("function", {}).get("name") - break - - _turn_tool_count = sum( - 1 for m in messages - if isinstance(m, dict) and m.get("role") == "assistant" and m.get("tool_calls") - ) - _resp_len = len(final_response) if final_response else 0 - _budget_used = agent.iteration_budget.used if agent.iteration_budget else 0 - _budget_max = agent.iteration_budget.max_total if agent.iteration_budget else 0 - - _diag_msg = ( - "Turn ended: reason=%s model=%s api_calls=%d/%d budget=%d/%d " - "tool_turns=%d last_msg_role=%s response_len=%d session=%s" - ) - _diag_args = ( - _turn_exit_reason, agent.model, api_call_count, agent.max_iterations, - _budget_used, _budget_max, - _turn_tool_count, _last_msg_role, _resp_len, - agent.session_id or "none", - ) - - if _last_msg_role == "tool" and not interrupted: - # Agent was mid-work — this is the "just stops" case. - logger.warning( - "Turn ended with pending tool result (agent may appear stuck). " - + _diag_msg + " last_tool=%s", - *_diag_args, _last_tool_name, - ) - else: - logger.info(_diag_msg, *_diag_args) - - # File-mutation verifier footer. - # If one or more ``write_file`` / ``patch`` calls failed during this - # turn and were never superseded by a successful write to the same - # path, append an advisory footer to the assistant response. This - # catches the specific case — reported by Ben Eng (#15524-adjacent) - # — where a model issues a batch of parallel patches, half of them - # fail with "Could not find old_string", and the model summarises - # the turn claiming every file was edited. The user then has to - # manually run ``git status`` to catch the lie. With this footer - # the truth is surfaced on every turn, so over-claiming is - # structurally impossible past the model. - # - # Gate: only applied when a real text response exists for this - # turn and the user didn't interrupt. Empty/interrupted turns - # already have other surface text that shouldn't be augmented. - if final_response and not interrupted: - try: - _failed = getattr(agent, "_turn_failed_file_mutations", None) or {} - if _failed and agent._file_mutation_verifier_enabled(): - footer = agent._format_file_mutation_failure_footer(_failed) - if footer: - final_response = final_response.rstrip() + "\n\n" + footer - except Exception as _ver_err: - logger.debug("file-mutation verifier footer failed: %s", _ver_err) - - # Turn-completion explainer. - # When a turn ends abnormally after substantive work — empty content - # after retries, a partial/truncated stream, a still-pending tool - # result, or an iteration/budget limit — the user otherwise gets a - # blank or fragmentary response box with no consolidated reason why - # the agent stopped (#34452). Surface a single user-visible - # explanation derived from ``_turn_exit_reason``, mirroring the - # file-mutation verifier footer pattern above. - # - # Gate carefully so healthy turns stay quiet: - # - ``text_response(...)`` exits never produce an explanation - # (handled inside the formatter), so a terse ``Done.`` is silent. - # - We only ACT when there is no genuinely usable reply this turn: - # an empty response, the "(empty)" terminal sentinel, or a - # suspiciously short partial fragment with no terminating - # punctuation (e.g. "The"). A real short answer keeps its text. - if not interrupted: - try: - if agent._turn_completion_explainer_enabled(): - _stripped = (final_response or "").strip() - _is_empty_terminal = _stripped == "" or _stripped == "(empty)" - # A short fragment that is not a normal text_response exit - # and lacks sentence-ending punctuation is treated as a - # truncated partial (the "The" case from #34452). - _is_partial_fragment = ( - not _is_empty_terminal - and not str(_turn_exit_reason).startswith("text_response") - and len(_stripped) <= 24 - and _stripped[-1:] not in {".", "!", "?", "。", "!", "?", "`", ")"} - ) - if _is_empty_terminal or _is_partial_fragment: - _explanation = agent._format_turn_completion_explanation( - _turn_exit_reason - ) - if _explanation: - if _is_empty_terminal: - # Replace the bare "(empty)"/blank sentinel with - # the actionable explanation. - final_response = _explanation - else: - # Keep the partial fragment, append the reason so - # the user sees both what arrived and why it - # stopped. - final_response = ( - _stripped + "\n\n" + _explanation - ) - except Exception as _exp_err: - logger.debug("turn-completion explainer failed: %s", _exp_err) - - _response_transformed = False - - # Plugin hook: transform_llm_output - # Fired once per turn after the tool-calling loop completes. - # Plugins can transform the LLM's output text before it's returned. - # First hook to return a string wins; None/empty return leaves text unchanged. - if final_response and not interrupted: - try: - from hermes_cli.plugins import invoke_hook as _invoke_hook - _transform_results = _invoke_hook( - "transform_llm_output", - response_text=final_response, - session_id=agent.session_id or "", - model=agent.model, - platform=getattr(agent, "platform", None) or "", - ) - for _hook_result in _transform_results: - if isinstance(_hook_result, str) and _hook_result: - final_response = _hook_result - _response_transformed = True - break # First non-empty string wins - except Exception as exc: - logger.warning("transform_llm_output hook failed: %s", exc) - - # Plugin hook: post_llm_call - # Fired once per turn after the tool-calling loop completes. - # Plugins can use this to persist conversation data (e.g. sync - # to an external memory system). - if final_response and not interrupted: - try: - from hermes_cli.plugins import invoke_hook as _invoke_hook - _invoke_hook( - "post_llm_call", - session_id=agent.session_id, - task_id=effective_task_id, - turn_id=turn_id, - user_message=original_user_message, - assistant_response=final_response, - conversation_history=list(messages), - model=agent.model, - platform=getattr(agent, "platform", None) or "", - ) - except Exception as exc: - logger.warning("post_llm_call hook failed: %s", exc) - - # Extract reasoning from the CURRENT turn only. Walk backwards - # but stop at the user message that started this turn — anything - # earlier is from a prior turn and must not leak into the reasoning - # box (confusing stale display; #17055). Within the current turn - # we still want the *most recent* non-empty reasoning: many - # providers (Claude thinking, DeepSeek v4, Codex Responses) emit - # reasoning on the tool-call step and leave the final-answer step - # with reasoning=None, so picking only the last assistant would - # silently drop legitimate same-turn reasoning. - last_reasoning = None - for msg in reversed(messages): - if msg.get("role") == "user": - break # turn boundary — don't cross into prior turns - if msg.get("role") == "assistant" and msg.get("reasoning"): - last_reasoning = msg["reasoning"] - break - - # Build result with interrupt info if applicable - result = { - "final_response": final_response, - "last_reasoning": last_reasoning, - "messages": messages, - "api_calls": api_call_count, - "completed": completed, - "turn_exit_reason": _turn_exit_reason, - "failed": failed, - "partial": False, # True only when stopped due to invalid tool calls - "interrupted": interrupted, - "response_transformed": _response_transformed, - "response_previewed": getattr(agent, "_response_was_previewed", False), - "model": agent.model, - "provider": agent.provider, - "base_url": agent.base_url, - "input_tokens": agent.session_input_tokens, - "output_tokens": agent.session_output_tokens, - "cache_read_tokens": agent.session_cache_read_tokens, - "cache_write_tokens": agent.session_cache_write_tokens, - "reasoning_tokens": agent.session_reasoning_tokens, - "prompt_tokens": agent.session_prompt_tokens, - "completion_tokens": agent.session_completion_tokens, - "total_tokens": agent.session_total_tokens, - "last_prompt_tokens": getattr(agent.context_compressor, "last_prompt_tokens", 0) or 0, - "estimated_cost_usd": agent.session_estimated_cost_usd, - "cost_status": agent.session_cost_status, - "cost_source": agent.session_cost_source, - "session_id": agent.session_id, - } - if agent._tool_guardrail_halt_decision is not None: - result["guardrail"] = agent._tool_guardrail_halt_decision.to_metadata() - # If a /steer landed after the final assistant turn (no more tool - # batches to drain into), hand it back to the caller so it can be - # delivered as the next user turn instead of being silently lost. - _leftover_steer = agent._drain_pending_steer() - if _leftover_steer: - result["pending_steer"] = _leftover_steer - agent._response_was_previewed = False - - # Include interrupt message if one triggered the interrupt - if interrupted and agent._interrupt_message: - result["interrupt_message"] = agent._interrupt_message - - # Clear interrupt state after handling - agent.clear_interrupt() - - # Clear stream callback so it doesn't leak into future calls - agent._stream_callback = None - - # Check skill trigger NOW — based on how many tool iterations THIS turn used. - _should_review_skills = False - if (agent._skill_nudge_interval > 0 - and agent._iters_since_skill >= agent._skill_nudge_interval - and "skill_manage" in agent.valid_tool_names): - _should_review_skills = True - agent._iters_since_skill = 0 - - # External memory provider: sync the completed turn + queue next prefetch. - agent._sync_external_memory_for_turn( - original_user_message=original_user_message, + # Post-loop turn finalization extracted to agent/turn_finalizer.finalize_turn + # (god-file decomposition Phase 1 step 4). Behavior-neutral: the assembled + # result dict is returned exactly as before. + from agent.turn_finalizer import finalize_turn + return finalize_turn( + agent, final_response=final_response, + api_call_count=api_call_count, interrupted=interrupted, + failed=failed, messages=messages, + conversation_history=conversation_history, + effective_task_id=effective_task_id, + turn_id=turn_id, + user_message=user_message, + original_user_message=original_user_message, + _should_review_memory=_should_review_memory, + _turn_exit_reason=_turn_exit_reason, ) - # Background memory/skill review — runs AFTER the response is delivered - # so it never competes with the user's task for model attention. - if final_response and not interrupted and (_should_review_memory or _should_review_skills): - try: - agent._spawn_background_review( - messages_snapshot=list(messages), - review_memory=_should_review_memory, - review_skills=_should_review_skills, - ) - except Exception: - pass # Background review is best-effort - - # Note: Memory provider on_session_end() + shutdown_all() are NOT - # called here — run_conversation() is called once per user message in - # multi-turn sessions. Shutting down after every turn would kill the - # provider before the second message. Actual session-end cleanup is - # handled by the CLI (atexit / /reset) and gateway (session expiry / - # _reset_session). - - # Plugin hook: on_session_end - # Fired at the very end of every run_conversation call. - # Plugins can use this for cleanup, flushing buffers, etc. - try: - from hermes_cli.plugins import invoke_hook as _invoke_hook - _invoke_hook( - "on_session_end", - session_id=agent.session_id, - task_id=effective_task_id, - turn_id=turn_id, - completed=completed, - interrupted=interrupted, - model=agent.model, - platform=getattr(agent, "platform", None) or "", - ) - except Exception as exc: - logger.warning("on_session_end hook failed: %s", exc) - - return result - __all__ = ["run_conversation"] diff --git a/agent/credential_pool.py b/agent/credential_pool.py index 53cc31daf6d..04b22c76a68 100644 --- a/agent/credential_pool.py +++ b/agent/credential_pool.py @@ -91,6 +91,7 @@ AUTH_TYPE_OAUTH = "oauth" AUTH_TYPE_API_KEY = "api_key" SOURCE_MANUAL = "manual" +SOURCE_MANUAL_DEVICE_CODE = f"{SOURCE_MANUAL}:device_code" STRATEGY_FILL_FIRST = "fill_first" STRATEGY_ROUND_ROBIN = "round_robin" diff --git a/agent/credits_tracker.py b/agent/credits_tracker.py index 79d05dbb196..f84bc9a7c0e 100644 --- a/agent/credits_tracker.py +++ b/agent/credits_tracker.py @@ -194,17 +194,71 @@ class AgentNotice: id: Optional[str] = None +# ── is_free_tier_model (local-data-only free-model check) ──────────────────── + + +def is_free_tier_model(model: str, base_url: str = "") -> bool: + """Return True when *model* is a Nous free-tier model, using ONLY local data. + + Two signals, both zero-network: + + 1. The ``:free`` suffix — the canonical Nous free SKU marker (e.g. + ``nvidia/nemotron-3-ultra:free``). Free by construction on the API side + (spend is forced to 0 for ``:free`` ids). + 2. A peek into the in-process pricing cache in ``hermes_cli.models`` + (populated when the model picker fetched ``/v1/models`` pricing for + *base_url*). PEEK ONLY — a cache miss never triggers a fetch. This is + CLI/TUI-session best-effort: gateway sessions never run the picker's + pricing fetch, so suppression there rests entirely on the ``:free`` + suffix (which all Nous free SKUs carry). + + Fail-open to False (the depleted notice still shows) on any error: wrongly + showing the warning is recoverable noise; wrongly hiding it on a paid model + would mask a real billing block. + """ + if not model: + return False + if model.endswith(":free"): + return True + if not base_url: + return False + try: + from hermes_cli.models import _is_model_free, _pricing_cache + + # Mirror get_pricing_for_provider's key normalization: the agent's + # Nous base_url is /v1-suffixed (https://inference-api.nousresearch.com/v1) + # but the picker keys _pricing_cache on the pre-/v1 root. + key = base_url.rstrip("/") + if key.endswith("/v1"): + key = key[:-3].rstrip("/") + pricing = _pricing_cache.get(key) + if not pricing: + return False + return _is_model_free(model, pricing) + except Exception: + return False + + # ── evaluate_credits_notices (pure reconciliation function) ────────────────── def evaluate_credits_notices( state: CreditsState, latch: dict, + *, + model_is_free: bool = False, ) -> tuple[list[AgentNotice], list[str]]: """Reconcile credits notices against the latch. Mutates ``latch`` IN PLACE. latch = {"active": set[str], "seen_below_90": bool, "usage_band": Optional[int]}. + ``model_is_free``: True when the session's active model is a Nous free-tier + model (see :func:`is_free_tier_model`). Suppresses the ``credits.depleted`` + notice — a depleted account on a free model can keep inferencing, so the + error banner is noise (and confuses free-tier users who never had credits). + Suppression does NOT emit the "restored" success notice; that fires only on + a genuine ``paid_access`` flip back to True. + Returns ``(to_show: list[AgentNotice], to_clear: list[str])``. Caller emits to_clear FIRST, then to_show. @@ -284,7 +338,11 @@ def evaluate_credits_notices( active.discard("credits.grant_spent") # ── depleted ───────────────────────────────────────────────────────────── - if depleted_cond and "credits.depleted" not in active: + # Suppressed while the active model is free: inference still works there, + # so the error banner would just alarm users (free-tier users especially, + # who never had paid credits to "lose"). + show_depleted = depleted_cond and not model_is_free + if show_depleted and "credits.depleted" not in active: to_show.append( AgentNotice( text="✕ Credit access paused · run /usage for balance", @@ -295,20 +353,23 @@ def evaluate_credits_notices( ) ) active.add("credits.depleted") - elif "credits.depleted" in active and not depleted_cond: + elif "credits.depleted" in active and not show_depleted: to_clear.append("credits.depleted") active.discard("credits.depleted") - # Recovery: also emit the success notice - to_show.append( - AgentNotice( - text="✓ Credit access restored", - level="success", - kind="ttl", - ttl_ms=CREDITS_RESTORED_TTL_MS, - key="credits.restored", - id="credits.restored", + if not depleted_cond: + # Genuine recovery (paid_access flipped back True): also emit the + # success notice. A clear caused by switching to a free model while + # still depleted must NOT claim access was restored. + to_show.append( + AgentNotice( + text="✓ Credit access restored", + level="success", + kind="ttl", + ttl_ms=CREDITS_RESTORED_TTL_MS, + key="credits.restored", + id="credits.restored", + ) ) - ) return (to_show, to_clear) diff --git a/agent/curator.py b/agent/curator.py index 93986da7a75..62630ce453b 100644 --- a/agent/curator.py +++ b/agent/curator.py @@ -25,7 +25,6 @@ import json import logging import os import re -import tempfile import threading from datetime import datetime, timedelta, timezone from pathlib import Path @@ -33,6 +32,7 @@ from typing import Any, Callable, Dict, List, NamedTuple, Optional, Set from hermes_constants import get_hermes_home from tools import skill_usage +from utils import atomic_json_write logger = logging.getLogger(__name__) @@ -97,20 +97,7 @@ def load_state() -> Dict[str, Any]: def save_state(data: Dict[str, Any]) -> None: path = _state_file() try: - path.parent.mkdir(parents=True, exist_ok=True) - fd, tmp = tempfile.mkstemp(dir=str(path.parent), prefix=".curator_state_", suffix=".tmp") - try: - with os.fdopen(fd, "w", encoding="utf-8") as f: - json.dump(data, f, indent=2, sort_keys=True, ensure_ascii=False) - f.flush() - os.fsync(f.fileno()) - os.replace(tmp, path) - except BaseException: - try: - os.unlink(tmp) - except OSError: - pass - raise + atomic_json_write(path, data, indent=2, sort_keys=True) except Exception as e: logger.debug("Failed to save curator state: %s", e, exc_info=True) diff --git a/agent/display.py b/agent/display.py index 8514279888e..84c8509faed 100644 --- a/agent/display.py +++ b/agent/display.py @@ -858,6 +858,20 @@ def _detect_tool_failure(tool_name: str, result: str | None) -> tuple[bool, str] return False, "" +def _used_free_parallel(result: str | None) -> bool: + """True when a web result came from Parallel's free Search MCP. + + Only the keyless Parallel path tags its result with ``provider="parallel"``; + the paid REST path and every other provider omit it. Used to label the tool + line "Parallel search" / "Parallel fetch" exactly when the free MCP served + the call. + """ + if not isinstance(result, str) or '"provider"' not in result: + return False + data = safe_json_loads(result) + return isinstance(data, dict) and str(data.get("provider", "")).lower() == "parallel" + + def get_cute_tool_message( tool_name: str, args: dict, duration: float, result: str | None = None, ) -> str: @@ -895,15 +909,17 @@ def get_cute_tool_message( return f"{line}{failure_suffix}" if tool_name == "web_search": - return _wrap(f"┊ 🔍 search {_trunc(args.get('query', ''), 42)} {dur}") + verb = "Parallel search" if _used_free_parallel(result) else "search" + return _wrap(f"┊ 🔍 {verb:<9} {_trunc(args.get('query', ''), 42)} {dur}") if tool_name == "web_extract": + verb = "Parallel fetch" if _used_free_parallel(result) else "fetch" urls = args.get("urls", []) if urls: url = urls[0] if isinstance(urls, list) else str(urls) domain = url.replace("https://", "").replace("http://", "").split("/")[0] extra = f" +{len(urls)-1}" if len(urls) > 1 else "" - return _wrap(f"┊ 📄 fetch {_trunc(domain, 35)}{extra} {dur}") - return _wrap(f"┊ 📄 fetch pages {dur}") + return _wrap(f"┊ 📄 {verb:<9} {_trunc(domain, 35)}{extra} {dur}") + return _wrap(f"┊ 📄 {verb:<9} pages {dur}") if tool_name == "terminal": return _wrap(f"┊ 💻 $ {_trunc(args.get('command', ''), 42)} {dur}") if tool_name == "process": diff --git a/agent/error_classifier.py b/agent/error_classifier.py index b5656232e39..c39c24a6a5d 100644 --- a/agent/error_classifier.py +++ b/agent/error_classifier.py @@ -549,14 +549,32 @@ def classify_api_error( should_fallback=True, ) - # Anthropic thinking block signature invalid (400). + # Anthropic thinking block recovery (400). Two distinct failure modes, + # same recovery (strip all reasoning_details and retry without thinking + # blocks — see the thinking_signature handler in conversation_loop.py): + # 1. Signature mismatch: a thinking block is signed against the full + # turn content; any upstream mutation (context compression, session + # truncation, message merging) invalidates the signature. + # Pattern: "signature" + "thinking". + # 2. Frozen-block mutation: Anthropic rejects any change to the + # thinking/redacted_thinking blocks in the *latest* assistant + # message — "`thinking` or `redacted_thinking` blocks in the latest + # assistant message cannot be modified. These blocks must remain as + # they were in the original response." This carries no "signature" + # token, so the original pattern missed it and the turn hard-aborted + # as a non-retryable client error instead of self-healing. + # Pattern: "thinking" + ("cannot be modified" | "must remain as they were"). # Don't gate on provider — OpenRouter proxies Anthropic errors, so the # provider may be "openrouter" even though the error is Anthropic-specific. - # The message pattern ("signature" + "thinking") is unique enough. + # The combined patterns are unique enough. if ( status_code == 400 - and "signature" in error_msg and "thinking" in error_msg + and ( + "signature" in error_msg + or "cannot be modified" in error_msg + or "must remain as they were" in error_msg + ) ): return _result( FailoverReason.thinking_signature, @@ -966,6 +984,34 @@ def _classify_400( should_fallback=False, ) + # Request-validation errors (unsupported / unknown parameter) MUST be + # checked BEFORE context_overflow. A GPT-5 model rejecting max_tokens + # returns: + # "Unsupported parameter: 'max_tokens' is not supported with this model. + # Use 'max_completion_tokens' instead." + # That string contains the literal substring "max_tokens", which is one of + # the _CONTEXT_OVERFLOW_PATTERNS — so without this guard the 400 is + # misclassified as context_overflow, routed into the compression loop, + # re-sent with the same bad parameter, and ends in "Cannot compress + # further". These errors are deterministic (every retry gets the identical + # rejection), so classify as a non-retryable format_error and fall back. + # + # NOTE: we deliberately do NOT key off the generic ``invalid_request_error`` + # code here — OpenAI stamps that same code on genuine context-overflow 400s, + # so matching it would mis-route real overflows away from compression. The + # unambiguous signals are the explicit "unsupported/unknown parameter" + # message text and the specific parameter-level error codes. + if ( + any(p in error_msg for p in _REQUEST_VALIDATION_PATTERNS + if p != "invalid_request_error") + or error_code_lower in {"unknown_parameter", "unsupported_parameter"} + ): + return result_fn( + FailoverReason.format_error, + retryable=False, + should_fallback=True, + ) + # Context overflow from 400 if any(p in error_msg for p in _CONTEXT_OVERFLOW_PATTERNS): return result_fn( diff --git a/agent/lsp/install.py b/agent/lsp/install.py index 9193b0375c0..418cc510c70 100644 --- a/agent/lsp/install.py +++ b/agent/lsp/install.py @@ -262,6 +262,7 @@ def _install_npm( capture_output=True, text=True, timeout=300, + stdin=subprocess.DEVNULL, ) if proc.returncode != 0: logger.warning( @@ -310,6 +311,7 @@ def _install_go(pkg: str, bin_name: str) -> Optional[str]: text=True, timeout=600, env=env, + stdin=subprocess.DEVNULL, ) if proc.returncode != 0: logger.warning( @@ -347,6 +349,7 @@ def _install_pip(pkg: str, bin_name: str) -> Optional[str]: capture_output=True, text=True, timeout=300, + stdin=subprocess.DEVNULL, ) if proc.returncode != 0: logger.warning( diff --git a/agent/memory_manager.py b/agent/memory_manager.py index f0a72d35954..3cb3a734a8f 100644 --- a/agent/memory_manager.py +++ b/agent/memory_manager.py @@ -28,6 +28,8 @@ from __future__ import annotations import logging import re import inspect +import threading +from concurrent.futures import ThreadPoolExecutor from typing import Any, Dict, List, Optional from agent.memory_provider import MemoryProvider @@ -35,6 +37,12 @@ from tools.registry import tool_error logger = logging.getLogger(__name__) +# How long shutdown_all() waits for in-flight background sync/prefetch work +# to drain before abandoning it. A wedged provider must never block process +# teardown indefinitely — the worker threads are daemon, so anything still +# running past this window dies with the interpreter. +_SYNC_DRAIN_TIMEOUT_S = 5.0 + # --------------------------------------------------------------------------- # Context fencing helpers @@ -252,6 +260,13 @@ class MemoryManager: self._providers: List[MemoryProvider] = [] self._tool_to_provider: Dict[str, MemoryProvider] = {} self._has_external: bool = False # True once a non-builtin provider is added + # Background executor for end-of-turn sync/prefetch. Lazily created on + # first use so the common builtin-only path spawns no extra threads. + # A single worker serializes a provider's writes (turn N must land + # before turn N+1) and caps thread growth at one per manager. See + # _submit_background() and the sync_all/queue_prefetch_all rationale. + self._sync_executor: Optional[ThreadPoolExecutor] = None + self._sync_executor_lock = threading.Lock() # -- Registration -------------------------------------------------------- @@ -375,15 +390,27 @@ class MemoryManager: return "\n\n".join(parts) def queue_prefetch_all(self, query: str, *, session_id: str = "") -> None: - """Queue background prefetch on all providers for the next turn.""" - for provider in self._providers: - try: - provider.queue_prefetch(query, session_id=session_id) - except Exception as e: - logger.debug( - "Memory provider '%s' queue_prefetch failed (non-fatal): %s", - provider.name, e, - ) + """Queue background prefetch on all providers for the next turn. + + Provider work is dispatched to a background worker so a slow or + wedged provider can never block the caller. See ``sync_all`` for + the full rationale (agent stuck "running" minutes after a turn). + """ + providers = list(self._providers) + if not providers: + return + + def _run() -> None: + for provider in providers: + try: + provider.queue_prefetch(query, session_id=session_id) + except Exception as e: + logger.debug( + "Memory provider '%s' queue_prefetch failed (non-fatal): %s", + provider.name, e, + ) + + self._submit_background(_run) # -- Sync ---------------------------------------------------------------- @@ -407,27 +434,120 @@ class MemoryManager: session_id: str = "", messages: Optional[List[Dict[str, Any]]] = None, ) -> None: - """Sync a completed turn to all providers.""" - for provider in self._providers: + """Sync a completed turn to all providers. + + Runs on a background worker thread, NOT inline on the + turn-completion path. A provider's ``sync_turn`` may make a + blocking network/daemon call (a misconfigured Hindsight daemon + was observed blocking ~298s before failing); doing that inline + held ``run_conversation`` open long after the user saw their + response, so every interface (CLI, TUI, gateway) kept the agent + marked "running" for minutes and any follow-up message triggered + an aggressive interrupt. Dispatching off-thread means a slow or + broken provider can never stall the turn — the sync simply + completes (or fails, logged) in the background. + + Writes are serialized through a single worker so turn N lands + before turn N+1; provider implementations don't need their own + ordering guarantees. + """ + providers = list(self._providers) + if not providers: + return + + def _run() -> None: + for provider in providers: + try: + if messages is not None and self._provider_sync_accepts_messages(provider): + provider.sync_turn( + user_content, + assistant_content, + session_id=session_id, + messages=messages, + ) + else: + provider.sync_turn( + user_content, + assistant_content, + session_id=session_id, + ) + except Exception as e: + logger.warning( + "Memory provider '%s' sync_turn failed: %s", + provider.name, e, + ) + + self._submit_background(_run) + + # -- Background dispatch ------------------------------------------------- + + def _submit_background(self, fn) -> None: + """Run ``fn`` on the manager's background worker. + + The executor is created lazily and shared across calls. If the + executor can't be created or has already been shut down, ``fn`` + runs inline as a last-resort fallback — losing the async benefit + but never losing the write itself. ``fn`` must do its own + per-provider error handling; this wrapper only guards executor + plumbing. + """ + executor = self._get_sync_executor() + if executor is None: + # Executor unavailable (shut down / creation failed) — run + # inline rather than drop the work. Slow, but correct. try: - if messages is not None and self._provider_sync_accepts_messages(provider): - provider.sync_turn( - user_content, - assistant_content, - session_id=session_id, - messages=messages, + fn() + except Exception as e: # pragma: no cover - fn guards internally + logger.debug("Inline memory background task failed: %s", e) + return + try: + executor.submit(fn) + except RuntimeError: + # Executor was shut down between the get and the submit + # (teardown race). Fall back to inline. + try: + fn() + except Exception as e: # pragma: no cover - fn guards internally + logger.debug("Inline memory background task failed: %s", e) + + def _get_sync_executor(self) -> Optional[ThreadPoolExecutor]: + """Lazily create the single-worker background executor.""" + if self._sync_executor is not None: + return self._sync_executor + with self._sync_executor_lock: + if self._sync_executor is None: + try: + self._sync_executor = ThreadPoolExecutor( + max_workers=1, + thread_name_prefix="mem-sync", ) - else: - provider.sync_turn( - user_content, - assistant_content, - session_id=session_id, - ) - except Exception as e: - logger.warning( - "Memory provider '%s' sync_turn failed: %s", - provider.name, e, - ) + except Exception as e: # pragma: no cover - resource exhaustion + logger.warning("Failed to create memory sync executor: %s", e) + return None + return self._sync_executor + + def flush_pending(self, timeout: Optional[float] = None) -> bool: + """Block until queued sync/prefetch work has drained. + + Single-worker executor means submitting a sentinel and waiting on + it guarantees every previously-submitted task has run. Returns + True if the barrier completed within ``timeout`` (or no executor + exists), False on timeout. Used at real session boundaries and by + tests that need to assert provider state deterministically. + """ + executor = self._sync_executor + if executor is None: + return True + try: + fut = executor.submit(lambda: None) + except RuntimeError: + # Executor already shut down — nothing pending. + return True + try: + fut.result(timeout=timeout) + return True + except Exception: + return False # -- Tools --------------------------------------------------------------- @@ -653,7 +773,15 @@ class MemoryManager: ) def shutdown_all(self) -> None: - """Shut down all providers (reverse order for clean teardown).""" + """Shut down all providers (reverse order for clean teardown). + + Drains the background sync/prefetch executor first (bounded by + ``_SYNC_DRAIN_TIMEOUT_S``) so a turn's final sync has a chance to + land before providers are torn down. The worker threads are + daemon, so anything still wedged past the drain window dies with + the interpreter rather than blocking exit. + """ + self._drain_sync_executor() for provider in reversed(self._providers): try: provider.shutdown() @@ -663,6 +791,52 @@ class MemoryManager: provider.name, e, ) + def _drain_sync_executor(self) -> None: + """Shut down the background executor, waiting briefly for drain. + + Bounded by ``_SYNC_DRAIN_TIMEOUT_S``: a wedged provider must never + hang process/session teardown. We stop accepting new work and + cancel anything still queued, then wait at most the drain timeout + for the currently-running task on a watcher thread. The worker is + daemon, so an over-running task dies with the interpreter. + """ + with self._sync_executor_lock: + executor = self._sync_executor + self._sync_executor = None + if executor is None: + return + try: + # Stop accepting new work and drop anything still queued, but + # do NOT block here — cancel_futures cancels not-yet-started + # tasks; the in-flight one keeps running on its daemon thread. + executor.shutdown(wait=False, cancel_futures=True) + except TypeError: + # Older Python without cancel_futures kwarg. + try: + executor.shutdown(wait=False) + except Exception as e: # pragma: no cover + logger.debug("Memory sync executor shutdown failed: %s", e) + return + except Exception as e: # pragma: no cover + logger.debug("Memory sync executor shutdown failed: %s", e) + return + # Give an in-flight sync a bounded chance to finish on a watcher + # thread so we don't block the caller past the drain timeout. + drainer = threading.Thread( + target=lambda: self._bounded_executor_wait(executor), + daemon=True, + name="mem-sync-drain", + ) + drainer.start() + drainer.join(timeout=_SYNC_DRAIN_TIMEOUT_S) + + @staticmethod + def _bounded_executor_wait(executor: ThreadPoolExecutor) -> None: + try: + executor.shutdown(wait=True) + except Exception as e: # pragma: no cover + logger.debug("Memory sync executor drain wait failed: %s", e) + def initialize_all(self, session_id: str, **kwargs) -> None: """Initialize all providers. diff --git a/agent/model_metadata.py b/agent/model_metadata.py index 531e9ae8459..3a71e974fdb 100644 --- a/agent/model_metadata.py +++ b/agent/model_metadata.py @@ -141,6 +141,8 @@ DEFAULT_CONTEXT_LENGTHS = { # fuzzy-match collisions (e.g. "anthropic/claude-sonnet-4" is a # substring of "anthropic/claude-sonnet-4.6"). # OpenRouter-prefixed models resolve via OpenRouter live API or models.dev. + "claude-fable-5": 1000000, + "claude-fable": 1000000, "claude-opus-4-8": 1000000, "claude-opus-4.8": 1000000, "claude-opus-4-7": 1000000, @@ -968,6 +970,16 @@ def parse_available_output_tokens_from_error(error_msg: str) -> Optional[int]: # OpenRouter/Nous phrasing of the same condition. "in the output" in error_lower and "maximum context length" in error_lower + ) or ( + # LM Studio / llama.cpp / some OpenAI-compatible servers: + # "This model's maximum context length is 65536 tokens. However, you + # requested 65536 output tokens and your prompt contains 77409 + # characters ..." + # The "requested N output tokens" phrasing means the OUTPUT cap is the + # problem (the input itself fits) — reduce max_tokens, don't compress. + "maximum context length" in error_lower + and "requested" in error_lower + and "output tokens" in error_lower ) if not is_output_cap_error: return None @@ -999,6 +1011,22 @@ def parse_available_output_tokens_from_error(error_msg: str) -> Optional[int]: if _available >= 1: return _available + # LM Studio / llama.cpp style: context window is reported in tokens but the + # prompt size is reported in CHARACTERS, e.g. + # "maximum context length is 65536 tokens ... your prompt contains 77409 + # characters ...". + # Estimate the input tokens conservatively (~3 chars/token, which + # over-reserves the input so the retried output cap stays safely inside the + # window) and leave the remainder of the window for output. + _m_ctx_tok = re.search(r'maximum context length is (\d+)\s*token', error_lower) + _m_chars = re.search(r'prompt contains (\d+)\s*character', error_lower) + if _m_ctx_tok and _m_chars: + _ctx = int(_m_ctx_tok.group(1)) + _est_input = (int(_m_chars.group(1)) + 2) // 3 + _available = _ctx - _est_input + if _available >= 1: + return _available + return None @@ -1784,10 +1812,43 @@ def get_model_context_length( if ctx is not None: save_context_length(model, base_url, ctx) return ctx + # 5f. OpenRouter live /models metadata — authoritative for OpenRouter-routed + # models. OpenRouter's catalog carries per-model context_length (e.g. + # anthropic/claude-fable-5 -> 1M) and refreshes as new slugs ship, so it + # must win over both models.dev (step 5g) and the hardcoded family catch-all + # (step 8). Before this branch, an OpenRouter selection set + # effective_provider="openrouter", which (a) made the models.dev lookup miss + # brand-new slugs and (b) skipped the step-6 OR fallback (gated on `not + # effective_provider`), so a fresh slug like claude-fable-5 fell through to + # the generic "claude": 200K entry and under-reported a 1M window. Mirrors + # the dedicated Nous/Copilot/GMI branches above. + if effective_provider == "openrouter": + metadata = fetch_model_metadata() + entry = metadata.get(model) + if entry: + or_ctx = entry.get("context_length") + # Guard against the known OpenRouter Kimi-family 32k underreport + # (same class the hardcoded overrides exist to mitigate). + if isinstance(or_ctx, int) and or_ctx > 0 and not ( + or_ctx == 32768 and _model_name_suggests_kimi(model) + ): + return or_ctx + if effective_provider: from agent.models_dev import lookup_models_dev_context ctx = lookup_models_dev_context(effective_provider, model) if ctx: + # MiniMax M3: models.dev reports 512K but actual context is 1M. + # Prefer hardcoded catalog over stale probe value. + if _model_name_suggests_minimax_m3(model): + catalog = DEFAULT_CONTEXT_LENGTHS.get("minimax-m3") + if catalog and ctx < catalog: + logger.info( + "Rejecting models.dev context=%s for %r " + "(MiniMax-M3 underreport); using hardcoded default %s", + ctx, model, f"{catalog:,}", + ) + ctx = catalog return ctx # 6. OpenRouter live API metadata — provider-unaware fallback. diff --git a/agent/prompt_builder.py b/agent/prompt_builder.py index 26fcfaae32f..eeff4e6ce18 100644 --- a/agent/prompt_builder.py +++ b/agent/prompt_builder.py @@ -885,6 +885,22 @@ def build_environment_hints() -> str: f"`uname -a && whoami && pwd`." ) + # Hermes desktop GUI — any agent running under the desktop app should know + # it. HERMES_DESKTOP marks the backend powering the chat; HERMES_DESKTOP_TERMINAL + # marks a hermes launched in the embedded terminal pane. Both set by main.cjs. + _truthy = ("1", "true", "yes") + _in_desktop = (os.getenv("HERMES_DESKTOP") or "").strip().lower() in _truthy + _in_desktop_term = (os.getenv("HERMES_DESKTOP_TERMINAL") or "").strip().lower() in _truthy + if _in_desktop or _in_desktop_term: + _desktop_hint = "Runtime surface: you're running inside the Hermes desktop GUI app." + if _in_desktop_term: + _desktop_hint += ( + " You're in its embedded terminal pane, beside the GUI chat — the user can " + "select your output (⌥-drag on macOS, Shift-drag elsewhere) and press " + "⌘/Ctrl+L to send it to the chat composer." + ) + hints.append(_desktop_hint) + if is_wsl(): hints.append(WSL_ENVIRONMENT_HINT) @@ -1085,11 +1101,12 @@ def _skill_should_show( def build_skills_system_prompt( available_tools: "set[str] | None" = None, available_toolsets: "set[str] | None" = None, + compact_categories: "frozenset[str] | None" = None, ) -> str: """Build a compact skill index for the system prompt. Two-layer cache: - 1. In-process LRU dict keyed by (skills_dir, tools, toolsets) + 1. In-process LRU dict keyed by (skills_dir, tools, toolsets, hidden) 2. Disk snapshot (``.skills_prompt_snapshot.json``) validated by mtime/size manifest — survives process restarts @@ -1099,6 +1116,12 @@ def build_skills_system_prompt( scanned alongside the local ``~/.hermes/skills/`` directory. External dirs are read-only — they appear in the index but new skills are always created in the local dir. Local skills take precedence when names collide. + + ``compact_categories`` (e.g. from the coding posture — see + agent/coding_context.py) demotes whole categories to a names-only line in + the rendered index. Nothing is ever hidden: every skill name stays + visible and loadable via ``skill_view`` / ``skills_list``; only the + descriptions are dropped, and a footer note explains the demotion. """ skills_dir = get_skills_dir() external_dirs = get_all_skills_dirs()[1:] # skip local (index 0) @@ -1123,6 +1146,7 @@ def build_skills_system_prompt( tuple(sorted(str(ts) for ts in (available_toolsets or set()))), _platform_hint, tuple(sorted(disabled)), + tuple(sorted(compact_categories or ())), ) with _SKILLS_PROMPT_CACHE_LOCK: cached = _SKILLS_PROMPT_CACHE.get(cache_key) @@ -1256,18 +1280,44 @@ def build_skills_system_prompt( except Exception as e: logger.debug("Could not read external skill description %s: %s", desc_file, e) + # Posture-driven category demotion (e.g. non-coding skills while pairing + # on code). Demoted categories stay in the index as a single names-only + # line — descriptions are dropped to cut noise, but every skill name + # remains visible so memory-anchored recall ("load ") keeps working. + # NEVER remove entries entirely: agent-created skills are the model's + # project memory, and models don't reach for skills_list to rediscover + # what the index stops showing them. Match on the top-level category + # segment so nested categories ("social-media/twitter") are demoted with + # their parent. + demoted = frozenset( + cat for cat in skills_by_category + if cat.split("/", 1)[0] in (compact_categories or frozenset()) + ) + + hidden_note = "" + if demoted: + hidden_note = ( + "\n(Categories marked [names only] are outside the current coding " + "context, so their descriptions are omitted — the skills work " + "normally and load with skill_view(name) as usual.)" + ) + if not skills_by_category: result = "" else: index_lines = [] for category in sorted(skills_by_category.keys()): + # Deduplicate and sort skills within each category + seen = set() + if category in demoted: + names = sorted({name for name, _ in skills_by_category[category]}) + index_lines.append(f" {category} [names only]: {', '.join(names)}") + continue cat_desc = category_descriptions.get(category, "") if cat_desc: index_lines.append(f" {category}: {cat_desc}") else: index_lines.append(f" {category}:") - # Deduplicate and sort skills within each category - seen = set() for name, desc in sorted(skills_by_category[category], key=lambda x: x[0]): if name in seen: continue @@ -1304,6 +1354,7 @@ def build_skills_system_prompt( "\n" "\n" "Only proceed without loading a skill if genuinely none are relevant to the task." + + hidden_note ) # ── Store in LRU cache ──────────────────────────────────────────── diff --git a/agent/secret_sources/bitwarden.py b/agent/secret_sources/bitwarden.py index 256e3294a10..e025a0ca9b4 100644 --- a/agent/secret_sources/bitwarden.py +++ b/agent/secret_sources/bitwarden.py @@ -274,6 +274,7 @@ def _platform_asset_name() -> str: capture_output=True, text=True, timeout=2, + stdin=subprocess.DEVNULL, ) if "musl" in (res.stdout + res.stderr).lower(): libc = "musl" @@ -525,6 +526,7 @@ def _run_bws_list( capture_output=True, text=True, timeout=_BWS_RUN_TIMEOUT, + stdin=subprocess.DEVNULL, ) except subprocess.TimeoutExpired as exc: raise RuntimeError( diff --git a/agent/skill_preprocessing.py b/agent/skill_preprocessing.py index 2f8015c4435..a7f526b25e7 100644 --- a/agent/skill_preprocessing.py +++ b/agent/skill_preprocessing.py @@ -74,6 +74,7 @@ def run_inline_shell(command: str, cwd: Path | None, timeout: int) -> str: text=True, timeout=max(1, int(timeout)), check=False, + stdin=subprocess.DEVNULL, ) except subprocess.TimeoutExpired: return f"[inline-shell timeout after {timeout}s: {command}]" diff --git a/agent/system_prompt.py b/agent/system_prompt.py index 4038716df48..76f57dfcdbc 100644 --- a/agent/system_prompt.py +++ b/agent/system_prompt.py @@ -191,9 +191,23 @@ def build_system_prompt_parts(agent: Any, system_message: Optional[str] = None) ) if toolset } + # Focus mode (opt-in) demotes non-coding skill categories to + # names-only in the index (never hidden — skill_view/skills_list + # reach everything, and every name stays visible for recall). The + # default coding posture leaves the index untouched. + _compact_cats = frozenset() + try: + from agent.coding_context import coding_compact_skill_categories + + _compact_cats = coding_compact_skill_categories( + platform=agent.platform, cwd=resolve_context_cwd() + ) + except Exception: + _compact_cats = frozenset() skills_prompt = _r.build_skills_system_prompt( available_tools=agent.valid_tool_names, available_toolsets=avail_toolsets, + compact_categories=_compact_cats or None, ) else: skills_prompt = "" @@ -221,6 +235,26 @@ def build_system_prompt_parts(agent: Any, system_message: Optional[str] = None) if _env_hints: stable_parts.append(_env_hints) + # Coding posture (base Hermes, any interactive coding surface in a code + # workspace — see agent/coding_context.py). The operating brief + the live + # git/workspace snapshot are built once here and cached for the session; + # the snapshot is never re-probed per turn (that would break the prompt + # cache), so the brief tells the model to re-check git before relying on it. + if agent.valid_tool_names: + try: + from agent.coding_context import coding_system_blocks + + stable_parts.extend( + coding_system_blocks( + platform=agent.platform, + cwd=resolve_context_cwd(), + model=agent.model, + ) + ) + except Exception: + # Coding-context probing must never block prompt build. + pass + # Local Python toolchain probe — names python/pip/uv/PEP-668 state when # something is non-default so the model can pick the right install # strategy without discovering by failure. Emits a single line; emits diff --git a/agent/tool_executor.py b/agent/tool_executor.py index f908aedb806..144a2929782 100644 --- a/agent/tool_executor.py +++ b/agent/tool_executor.py @@ -417,7 +417,7 @@ def execute_tool_calls_concurrent(agent, assistant_message, messages: list, effe # ── Logging / callbacks ────────────────────────────────────────── tool_names_str = ", ".join(name for _, name, _, _, _, _ in parsed_calls) - if not agent.quiet_mode: + if not agent.quiet_mode and getattr(agent, "tool_progress_mode", "all") != "off": print(f" ⚡ Concurrent: {num_tools} tool calls — {tool_names_str}") for i, (tc, name, args, middleware_trace, block_result, blocked_by_guardrail) in enumerate(parsed_calls, 1): args_str = json.dumps(args, ensure_ascii=False) @@ -702,7 +702,7 @@ def execute_tool_calls_concurrent(agent, assistant_message, messages: list, effe if agent._should_emit_quiet_tool_messages(): cute_msg = _get_cute_tool_message_impl(name, args, tool_duration, result=function_result) agent._safe_print(f" {cute_msg}") - elif not agent.quiet_mode: + elif not agent.quiet_mode and getattr(agent, "tool_progress_mode", "all") != "off": _preview_str = _multimodal_text_summary(function_result) if agent.verbose_logging: print(f" ✅ Tool {i+1} completed in {tool_duration:.2f}s") @@ -866,7 +866,7 @@ def execute_tool_calls_sequential(agent, assistant_message, messages: list, effe elif function_name == "skill_manage": agent._iters_since_skill = 0 - if not agent.quiet_mode: + if not agent.quiet_mode and getattr(agent, "tool_progress_mode", "all") != "off": args_str = json.dumps(function_args, ensure_ascii=False) if agent.verbose_logging: print(f" 📞 Tool {i}: {function_name}({list(function_args.keys())})") @@ -1065,6 +1065,25 @@ def execute_tool_calls_sequential(agent, assistant_message, messages: list, effe tool_duration = time.time() - tool_start_time if agent._should_emit_quiet_tool_messages(): agent._vprint(f" {_get_cute_tool_message_impl('clarify', function_args, tool_duration, result=function_result)}") + elif function_name == "read_terminal": + def _execute(next_args: dict) -> Any: + from tools.read_terminal_tool import read_terminal_tool as _read_terminal_tool + return _read_terminal_tool( + start_line=next_args.get("start_line"), + count=next_args.get("count"), + callback=getattr(agent, "read_terminal_callback", None), + ) + function_result, function_args = _run_agent_tool_execution_middleware( + agent, + function_name=function_name, + function_args=function_args, + effective_task_id=effective_task_id, + tool_call_id=getattr(tool_call, "id", "") or "", + execute=_execute, + ) + tool_duration = time.time() - tool_start_time + if agent._should_emit_quiet_tool_messages(): + agent._vprint(f" {_get_cute_tool_message_impl('read_terminal', function_args, tool_duration, result=function_result)}") elif function_name == "delegate_task": tasks_arg = function_args.get("tasks") if tasks_arg and isinstance(tasks_arg, list): @@ -1365,7 +1384,7 @@ def execute_tool_calls_sequential(agent, assistant_message, messages: list, effe # entire batch. The model sees it on the next API iteration. agent._apply_pending_steer_to_tool_results(messages, 1) - if not agent.quiet_mode: + if not agent.quiet_mode and getattr(agent, "tool_progress_mode", "all") != "off": if agent.verbose_logging: print(f" ✅ Tool {i} completed in {tool_duration:.2f}s") print(agent._wrap_verbose("Result: ", function_result)) diff --git a/agent/transports/anthropic.py b/agent/transports/anthropic.py index d77ae63ef32..3a209f2d753 100644 --- a/agent/transports/anthropic.py +++ b/agent/transports/anthropic.py @@ -84,7 +84,7 @@ class AnthropicTransport(ProviderTransport): to OpenAI finish_reason, and collects reasoning_details in provider_data. """ import json - from agent.anthropic_adapter import _to_plain_data + from agent.anthropic_adapter import _to_plain_data, _sanitize_replay_block from agent.transports.types import ToolCall strip_tool_prefix = kwargs.get("strip_tool_prefix", False) @@ -94,14 +94,40 @@ class AnthropicTransport(ProviderTransport): reasoning_parts = [] reasoning_details = [] tool_calls = [] + # Verbatim, order-preserving copy of every content block in the turn. + # Anthropic signs each thinking block against the turn content that + # PRECEDES it at its position; when a turn interleaves thinking and + # tool_use (adaptive/interleaved thinking, Claude 4.6+), the parallel + # reasoning_details + tool_calls lists below lose that cross-type + # ordering. Replaying the latest assistant message in the wrong order + # invalidates the signatures -> HTTP 400 "thinking ... blocks in the + # latest assistant message cannot be modified". Preserve the exact + # block sequence here so the adapter can replay it unchanged. See + # tests/agent/test_anthropic_thinking_block_order.py. + ordered_blocks = [] for block in response.content: + block_dict = _to_plain_data(block) + clean_block = None + if isinstance(block_dict, dict): + # Sanitize at capture so output-only SDK fields (parsed_output, + # caller, citations=None, …) never persist to state.db and leak + # back as request input on replay → HTTP 400 "Extra inputs are + # not permitted". Defence-in-depth with the replay-side sanitize. + clean_block = _sanitize_replay_block(block_dict) + if clean_block is not None: + ordered_blocks.append(clean_block) if block.type == "text": text_parts.append(block.text) - elif block.type == "thinking": - reasoning_parts.append(block.thinking) - block_dict = _to_plain_data(block) - if isinstance(block_dict, dict): + elif block.type in ("thinking", "redacted_thinking"): + if block.type == "thinking": + reasoning_parts.append(block.thinking) + # Use the sanitized block (clean_block) for reasoning_details too, + # since _extract_preserved_thinking_blocks replays these on the + # non-ordered path. Falls back to raw only if sanitize dropped it. + if isinstance(clean_block, dict): + reasoning_details.append(clean_block) + elif isinstance(block_dict, dict): reasoning_details.append(block_dict) elif block.type == "tool_use": name = block.name @@ -130,6 +156,23 @@ class AnthropicTransport(ProviderTransport): provider_data = {} if reasoning_details: provider_data["reasoning_details"] = reasoning_details + # Only worth carrying the ordered-blocks channel when the turn + # actually interleaves signed thinking with tool_use — that's the + # only shape the parallel lists reconstruct incorrectly. A turn that + # is purely text, or thinking-then-tools with a single leading + # thinking block, replays correctly without it. + _has_signed_thinking = any( + isinstance(b, dict) + and b.get("type") in ("thinking", "redacted_thinking") + and (b.get("signature") or b.get("data")) + for b in ordered_blocks + ) + _has_tool_use = any( + isinstance(b, dict) and b.get("type") == "tool_use" + for b in ordered_blocks + ) + if _has_signed_thinking and _has_tool_use: + provider_data["anthropic_content_blocks"] = ordered_blocks return NormalizedResponse( content="\n".join(text_parts) if text_parts else None, diff --git a/agent/transports/codex_app_server.py b/agent/transports/codex_app_server.py index be348a6960f..dff16e971da 100644 --- a/agent/transports/codex_app_server.py +++ b/agent/transports/codex_app_server.py @@ -378,6 +378,7 @@ def check_codex_binary( capture_output=True, text=True, timeout=10, + stdin=subprocess.DEVNULL, ) except FileNotFoundError: return False, ( diff --git a/agent/transports/codex_app_server_session.py b/agent/transports/codex_app_server_session.py index 60eb607084f..d097fed6ae9 100644 --- a/agent/transports/codex_app_server_session.py +++ b/agent/transports/codex_app_server_session.py @@ -72,6 +72,9 @@ class TurnResult: error: Optional[str] = None # Set if turn ended in a non-recoverable error turn_id: Optional[str] = None thread_id: Optional[str] = None + token_usage_last: Optional[dict[str, Any]] = None + token_usage_total: Optional[dict[str, Any]] = None + model_context_window: Optional[int] = None # Hint to the caller that the underlying codex subprocess is likely # wedged (turn-level timeout fired, post-tool watchdog tripped, or # token-refresh failure killed the child). The caller should retire @@ -501,6 +504,7 @@ class CodexAppServerSession: pending = self._client.take_notification(timeout=0) if pending is None: break + _apply_token_usage_notification(result, pending) self._track_pending_file_change(pending) proj = projector.project(pending) if proj.messages: @@ -536,6 +540,8 @@ class CodexAppServerSession: except Exception: # pragma: no cover - display callback logger.debug("on_event callback raised", exc_info=True) + _apply_token_usage_notification(result, note) + # Track in-progress fileChange items so the approval bridge # can surface a real change summary when codex requests # approval (the approval params themselves don't carry the @@ -802,6 +808,30 @@ class CodexAppServerSession: return cached +def _apply_token_usage_notification(result: TurnResult, note: dict) -> None: + """Capture Codex app-server token usage updates for caller accounting. + + Codex does not put token usage on turn/completed. It emits a separate + thread/tokenUsage/updated notification containing cumulative totals and + the latest turn breakdown. + """ + if not isinstance(note, dict) or note.get("method") != "thread/tokenUsage/updated": + return + params = note.get("params") or {} + token_usage = params.get("tokenUsage") or {} + if not isinstance(token_usage, dict): + return + last = token_usage.get("last") + total = token_usage.get("total") + if isinstance(last, dict): + result.token_usage_last = dict(last) + if isinstance(total, dict): + result.token_usage_total = dict(total) + window = token_usage.get("modelContextWindow") + if isinstance(window, int) and window > 0: + result.model_context_window = window + + def _approval_choice_to_codex_decision(choice: str) -> str: """Map Hermes approval choices onto codex's CommandExecutionApprovalDecision / FileChangeApprovalDecision wire values. diff --git a/agent/transports/types.py b/agent/transports/types.py index 2deb157535b..6ad20f2376d 100644 --- a/agent/transports/types.py +++ b/agent/transports/types.py @@ -121,6 +121,18 @@ class NormalizedResponse: pd = self.provider_data or {} return pd.get("reasoning_details") + @property + def anthropic_content_blocks(self): + """Verbatim, order-preserving Anthropic content blocks for a turn. + + Present only when an Anthropic turn interleaves signed thinking with + tool_use — the one shape the parallel reasoning_details + tool_calls + lists reconstruct in the wrong order, invalidating thinking-block + signatures on replay. See agent/transports/anthropic.py. + """ + pd = self.provider_data or {} + return pd.get("anthropic_content_blocks") + @property def codex_reasoning_items(self): pd = self.provider_data or {} diff --git a/agent/turn_finalizer.py b/agent/turn_finalizer.py new file mode 100644 index 00000000000..20db3fcef9f --- /dev/null +++ b/agent/turn_finalizer.py @@ -0,0 +1,428 @@ +"""Post-loop turn finalization for ``run_conversation``. + +Extracted from ``agent/conversation_loop.py`` as part of the god-file +decomposition campaign (``~/.hermes/plans/god-file-decomposition.md``, Phase 1 +step 4 — the post-loop ``TurnFinalizer`` seam). ``run_conversation``'s tail +(everything after the main tool-calling ``while`` loop) is lifted here verbatim: +budget-exhaustion summary, trajectory save, session persist, turn diagnostics, +response transforms, result-dict assembly, steer drain, and the memory/skill +review trigger. + +Behavior-neutral: the body is moved unchanged. All ``agent.*`` side effects fire +exactly as before; only the post-loop *locals* are passed in as keyword args, and +the assembled ``result`` dict is returned to ``run_conversation`` which returns it +to the caller. The function is synchronous with a single return — mirroring the +region it replaces (no awaits, no early returns). + +Module ``logger`` is imported lazily inside the body (``from +agent.conversation_loop import logger``) so this module never imports +``agent.conversation_loop`` at import time -> no import cycle, and the log records +keep the exact logger name (``"agent.conversation_loop"``). +""" + +from __future__ import annotations + +import os + +from agent.codex_responses_adapter import _summarize_user_message_for_log + + +def finalize_turn( + agent, + *, + final_response, + api_call_count, + interrupted, + failed, + messages, + conversation_history, + effective_task_id, + turn_id, + user_message, + original_user_message, + _should_review_memory, + _turn_exit_reason, +): + """Run the post-loop finalization and return the turn ``result`` dict. + + Lifted verbatim from ``run_conversation`` (the region after the main agent + loop). See module docstring. + """ + from agent.conversation_loop import logger + + if final_response is None and ( + api_call_count >= agent.max_iterations + or agent.iteration_budget.remaining <= 0 + ): + # Budget exhausted — ask the model for a summary via one extra + # API call with tools stripped. _handle_max_iterations injects a + # user message and makes a single toolless request. + _turn_exit_reason = f"max_iterations_reached({api_call_count}/{agent.max_iterations})" + agent._emit_status( + f"⚠️ Iteration budget exhausted ({api_call_count}/{agent.max_iterations}) " + "— asking model to summarise" + ) + if not agent.quiet_mode: + agent._safe_print( + f"\n⚠️ Iteration budget exhausted ({api_call_count}/{agent.max_iterations}) " + "— requesting summary..." + ) + final_response = agent._handle_max_iterations(messages, api_call_count) + + # If running as a kanban worker, signal the dispatcher that the + # worker could not complete (rather than treating it as a + # protocol violation). The agent loop strips tools before calling + # _handle_max_iterations, so the model cannot call kanban_block + # itself — we must do it on its behalf. + # + # We route through ``_record_task_failure(outcome="timed_out")`` + # rather than ``kanban_block`` so this counts toward the + # ``consecutive_failures`` counter and the dispatcher's + # ``failure_limit`` circuit breaker (#29747 gap 2). Without this, + # a task whose worker keeps exhausting its budget would block + # silently each run, get auto-promoted by the operator (or never + # surface), and re-block in an endless loop with no signal. + _kanban_task = os.environ.get("HERMES_KANBAN_TASK") + if _kanban_task: + try: + from hermes_cli import kanban_db as _kb + _conn = _kb.connect() + try: + _kb._record_task_failure( + _conn, + _kanban_task, + error=( + f"Iteration budget exhausted " + f"({api_call_count}/{agent.max_iterations}) — " + "task could not complete within the allowed " + "iterations" + ), + outcome="timed_out", + release_claim=True, + end_run=True, + event_payload_extra={ + "budget_used": api_call_count, + "budget_max": agent.max_iterations, + }, + ) + logger.info( + "recorded budget-exhausted failure for task %s (%d/%d)", + _kanban_task, api_call_count, agent.max_iterations, + ) + finally: + try: + _conn.close() + except Exception: + pass + except Exception: + logger.warning( + "Failed to record budget-exhausted failure for task %s", + _kanban_task, + exc_info=True, + ) + + # Determine if conversation completed successfully + completed = ( + final_response is not None + and api_call_count < agent.max_iterations + and not failed + ) + + # Save trajectory if enabled. ``user_message`` may be a multimodal + # list of parts; the trajectory format wants a plain string. + agent._save_trajectory(messages, _summarize_user_message_for_log(user_message), completed) + + # Clean up VM and browser for this task after conversation completes + agent._cleanup_task_resources(effective_task_id) + + # Persist session to both JSON log and SQLite only after private retry + # scaffolding has been removed. Otherwise a later user "continue" turn + # can replay assistant("(empty)") / recovery nudges and fall into the + # same empty-response loop again. + agent._drop_trailing_empty_response_scaffolding(messages) + agent._persist_session(messages, conversation_history) + + # ── Turn-exit diagnostic log ───────────────────────────────────── + # Always logged at INFO so agent.log captures WHY every turn ended. + # When the last message is a tool result (agent was mid-work), log + # at WARNING — this is the "just stops" scenario users report. + _last_msg_role = messages[-1].get("role") if messages else None + _last_tool_name = None + if _last_msg_role == "tool": + # Walk back to find the assistant message with the tool call + for _m in reversed(messages): + if _m.get("role") == "assistant" and _m.get("tool_calls"): + _tcs = _m["tool_calls"] + if _tcs and isinstance(_tcs[0], dict): + _last_tool_name = _tcs[-1].get("function", {}).get("name") + break + + _turn_tool_count = sum( + 1 for m in messages + if isinstance(m, dict) and m.get("role") == "assistant" and m.get("tool_calls") + ) + _resp_len = len(final_response) if final_response else 0 + _budget_used = agent.iteration_budget.used if agent.iteration_budget else 0 + _budget_max = agent.iteration_budget.max_total if agent.iteration_budget else 0 + + _diag_msg = ( + "Turn ended: reason=%s model=%s api_calls=%d/%d budget=%d/%d " + "tool_turns=%d last_msg_role=%s response_len=%d session=%s" + ) + _diag_args = ( + _turn_exit_reason, agent.model, api_call_count, agent.max_iterations, + _budget_used, _budget_max, + _turn_tool_count, _last_msg_role, _resp_len, + agent.session_id or "none", + ) + + if _last_msg_role == "tool" and not interrupted: + # Agent was mid-work — this is the "just stops" case. + logger.warning( + "Turn ended with pending tool result (agent may appear stuck). " + + _diag_msg + " last_tool=%s", + *_diag_args, _last_tool_name, + ) + else: + logger.info(_diag_msg, *_diag_args) + + # File-mutation verifier footer. + # If one or more ``write_file`` / ``patch`` calls failed during this + # turn and were never superseded by a successful write to the same + # path, append an advisory footer to the assistant response. This + # catches the specific case — reported by Ben Eng (#15524-adjacent) + # — where a model issues a batch of parallel patches, half of them + # fail with "Could not find old_string", and the model summarises + # the turn claiming every file was edited. The user then has to + # manually run ``git status`` to catch the lie. With this footer + # the truth is surfaced on every turn, so over-claiming is + # structurally impossible past the model. + # + # Gate: only applied when a real text response exists for this + # turn and the user didn't interrupt. Empty/interrupted turns + # already have other surface text that shouldn't be augmented. + if final_response and not interrupted: + try: + _failed = getattr(agent, "_turn_failed_file_mutations", None) or {} + if _failed and agent._file_mutation_verifier_enabled(): + footer = agent._format_file_mutation_failure_footer(_failed) + if footer: + final_response = final_response.rstrip() + "\n\n" + footer + except Exception as _ver_err: + logger.debug("file-mutation verifier footer failed: %s", _ver_err) + + # Turn-completion explainer. + # When a turn ends abnormally after substantive work — empty content + # after retries, a partial/truncated stream, a still-pending tool + # result, or an iteration/budget limit — the user otherwise gets a + # blank or fragmentary response box with no consolidated reason why + # the agent stopped (#34452). Surface a single user-visible + # explanation derived from ``_turn_exit_reason``, mirroring the + # file-mutation verifier footer pattern above. + # + # Gate carefully so healthy turns stay quiet: + # - ``text_response(...)`` exits never produce an explanation + # (handled inside the formatter), so a terse ``Done.`` is silent. + # - We only ACT when there is no genuinely usable reply this turn: + # an empty response, the "(empty)" terminal sentinel, or a + # suspiciously short partial fragment with no terminating + # punctuation (e.g. "The"). A real short answer keeps its text. + if not interrupted: + try: + if agent._turn_completion_explainer_enabled(): + _stripped = (final_response or "").strip() + _is_empty_terminal = _stripped == "" or _stripped == "(empty)" + # A short fragment that is not a normal text_response exit + # and lacks sentence-ending punctuation is treated as a + # truncated partial (the "The" case from #34452). + _is_partial_fragment = ( + not _is_empty_terminal + and not str(_turn_exit_reason).startswith("text_response") + and len(_stripped) <= 24 + and _stripped[-1:] not in {".", "!", "?", "。", "!", "?", "`", ")"} + ) + if _is_empty_terminal or _is_partial_fragment: + _explanation = agent._format_turn_completion_explanation( + _turn_exit_reason + ) + if _explanation: + if _is_empty_terminal: + # Replace the bare "(empty)"/blank sentinel with + # the actionable explanation. + final_response = _explanation + else: + # Keep the partial fragment, append the reason so + # the user sees both what arrived and why it + # stopped. + final_response = ( + _stripped + "\n\n" + _explanation + ) + except Exception as _exp_err: + logger.debug("turn-completion explainer failed: %s", _exp_err) + + _response_transformed = False + + # Plugin hook: transform_llm_output + # Fired once per turn after the tool-calling loop completes. + # Plugins can transform the LLM's output text before it's returned. + # First hook to return a string wins; None/empty return leaves text unchanged. + if final_response and not interrupted: + try: + from hermes_cli.plugins import invoke_hook as _invoke_hook + _transform_results = _invoke_hook( + "transform_llm_output", + response_text=final_response, + session_id=agent.session_id or "", + model=agent.model, + platform=getattr(agent, "platform", None) or "", + ) + for _hook_result in _transform_results: + if isinstance(_hook_result, str) and _hook_result: + final_response = _hook_result + _response_transformed = True + break # First non-empty string wins + except Exception as exc: + logger.warning("transform_llm_output hook failed: %s", exc) + + # Plugin hook: post_llm_call + # Fired once per turn after the tool-calling loop completes. + # Plugins can use this to persist conversation data (e.g. sync + # to an external memory system). + if final_response and not interrupted: + try: + from hermes_cli.plugins import invoke_hook as _invoke_hook + _invoke_hook( + "post_llm_call", + session_id=agent.session_id, + task_id=effective_task_id, + turn_id=turn_id, + user_message=original_user_message, + assistant_response=final_response, + conversation_history=list(messages), + model=agent.model, + platform=getattr(agent, "platform", None) or "", + ) + except Exception as exc: + logger.warning("post_llm_call hook failed: %s", exc) + + # Extract reasoning from the CURRENT turn only. Walk backwards + # but stop at the user message that started this turn — anything + # earlier is from a prior turn and must not leak into the reasoning + # box (confusing stale display; #17055). Within the current turn + # we still want the *most recent* non-empty reasoning: many + # providers (Claude thinking, DeepSeek v4, Codex Responses) emit + # reasoning on the tool-call step and leave the final-answer step + # with reasoning=None, so picking only the last assistant would + # silently drop legitimate same-turn reasoning. + last_reasoning = None + for msg in reversed(messages): + if msg.get("role") == "user": + break # turn boundary — don't cross into prior turns + if msg.get("role") == "assistant" and msg.get("reasoning"): + last_reasoning = msg["reasoning"] + break + + # Build result with interrupt info if applicable + result = { + "final_response": final_response, + "last_reasoning": last_reasoning, + "messages": messages, + "api_calls": api_call_count, + "completed": completed, + "turn_exit_reason": _turn_exit_reason, + "failed": failed, + "partial": False, # True only when stopped due to invalid tool calls + "interrupted": interrupted, + "response_transformed": _response_transformed, + "response_previewed": getattr(agent, "_response_was_previewed", False), + "model": agent.model, + "provider": agent.provider, + "base_url": agent.base_url, + "input_tokens": agent.session_input_tokens, + "output_tokens": agent.session_output_tokens, + "cache_read_tokens": agent.session_cache_read_tokens, + "cache_write_tokens": agent.session_cache_write_tokens, + "reasoning_tokens": agent.session_reasoning_tokens, + "prompt_tokens": agent.session_prompt_tokens, + "completion_tokens": agent.session_completion_tokens, + "total_tokens": agent.session_total_tokens, + "last_prompt_tokens": getattr(agent.context_compressor, "last_prompt_tokens", 0) or 0, + "estimated_cost_usd": agent.session_estimated_cost_usd, + "cost_status": agent.session_cost_status, + "cost_source": agent.session_cost_source, + "session_id": agent.session_id, + } + if agent._tool_guardrail_halt_decision is not None: + result["guardrail"] = agent._tool_guardrail_halt_decision.to_metadata() + # If a /steer landed after the final assistant turn (no more tool + # batches to drain into), hand it back to the caller so it can be + # delivered as the next user turn instead of being silently lost. + _leftover_steer = agent._drain_pending_steer() + if _leftover_steer: + result["pending_steer"] = _leftover_steer + agent._response_was_previewed = False + + # Include interrupt message if one triggered the interrupt + if interrupted and agent._interrupt_message: + result["interrupt_message"] = agent._interrupt_message + + # Clear interrupt state after handling + agent.clear_interrupt() + + # Clear stream callback so it doesn't leak into future calls + agent._stream_callback = None + + # Check skill trigger NOW — based on how many tool iterations THIS turn used. + _should_review_skills = False + if (agent._skill_nudge_interval > 0 + and agent._iters_since_skill >= agent._skill_nudge_interval + and "skill_manage" in agent.valid_tool_names): + _should_review_skills = True + agent._iters_since_skill = 0 + + # External memory provider: sync the completed turn + queue next prefetch. + agent._sync_external_memory_for_turn( + original_user_message=original_user_message, + final_response=final_response, + interrupted=interrupted, + messages=messages, + ) + + # Background memory/skill review — runs AFTER the response is delivered + # so it never competes with the user's task for model attention. + if final_response and not interrupted and (_should_review_memory or _should_review_skills): + try: + agent._spawn_background_review( + messages_snapshot=list(messages), + review_memory=_should_review_memory, + review_skills=_should_review_skills, + ) + except Exception: + pass # Background review is best-effort + + # Note: Memory provider on_session_end() + shutdown_all() are NOT + # called here — run_conversation() is called once per user message in + # multi-turn sessions. Shutting down after every turn would kill the + # provider before the second message. Actual session-end cleanup is + # handled by the CLI (atexit / /reset) and gateway (session expiry / + # _reset_session). + + # Plugin hook: on_session_end + # Fired at the very end of every run_conversation call. + # Plugins can use this for cleanup, flushing buffers, etc. + try: + from hermes_cli.plugins import invoke_hook as _invoke_hook + _invoke_hook( + "on_session_end", + session_id=agent.session_id, + task_id=effective_task_id, + turn_id=turn_id, + completed=completed, + interrupted=interrupted, + model=agent.model, + platform=getattr(agent, "platform", None) or "", + ) + except Exception as exc: + logger.warning("on_session_end hook failed: %s", exc) + + return result diff --git a/agent/usage_pricing.py b/agent/usage_pricing.py index 69cc74f3db9..33ebd229862 100644 --- a/agent/usage_pricing.py +++ b/agent/usage_pricing.py @@ -13,6 +13,7 @@ DEFAULT_PRICING = {"input": 0.0, "output": 0.0} _ZERO = Decimal("0") _ONE_MILLION = Decimal("1000000") +_NOUS_DEFAULT_BASE_URL = "https://inference-api.nousresearch.com/v1" CostStatus = Literal["actual", "estimated", "included", "unknown"] CostSource = Literal[ @@ -570,6 +571,8 @@ def resolve_billing_route( return BillingRoute(provider="openai-codex", model=model, base_url=base_url or "", billing_mode="subscription_included") if provider_name == "openrouter" or base_url_host_matches(base_url or "", "openrouter.ai"): return BillingRoute(provider="openrouter", model=model, base_url=base_url or "", billing_mode="official_models_api") + if provider_name == "nous" or base_url_host_matches(base_url or "", "inference-api.nousresearch.com"): + return BillingRoute(provider="nous", model=model, base_url=base_url or _NOUS_DEFAULT_BASE_URL, billing_mode="official_models_api") if provider_name == "anthropic": return BillingRoute(provider="anthropic", model=model.split("/")[-1], base_url=base_url or "", billing_mode="official_docs_snapshot") if provider_name == "openai": diff --git a/apps/bootstrap-installer/package.json b/apps/bootstrap-installer/package.json index 6b7991eafd1..9b3dc46a4a0 100644 --- a/apps/bootstrap-installer/package.json +++ b/apps/bootstrap-installer/package.json @@ -11,7 +11,8 @@ "tauri": "tauri", "tauri:dev": "tauri dev", "tauri:build": "tauri build", - "tauri:build:debug": "tauri build --debug" + "tauri:build:debug": "tauri build --debug", + "typecheck": "tsc -p . --noEmit" }, "dependencies": { "@nous-research/ui": "0.16.0", @@ -40,7 +41,7 @@ "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.2.0", - "typescript": "~5.9.3", + "typescript": "^6.0.3", "vite": "^7.3.1" } } diff --git a/apps/bootstrap-installer/tsconfig.json b/apps/bootstrap-installer/tsconfig.json index e2a5f6bbeb6..9227970f066 100644 --- a/apps/bootstrap-installer/tsconfig.json +++ b/apps/bootstrap-installer/tsconfig.json @@ -16,9 +16,8 @@ "noUnusedParameters": true, "esModuleInterop": true, "noFallthroughCasesInSwitch": true, - "baseUrl": ".", "paths": { - "@/*": ["src/*"] + "@/*": ["./src/*"] } }, "include": ["src"], diff --git a/apps/desktop/README.md b/apps/desktop/README.md index f3084a9b647..301b094592f 100644 --- a/apps/desktop/README.md +++ b/apps/desktop/README.md @@ -93,7 +93,7 @@ Run before opening a PR (lint may surface pre-existing warnings but must exit cl ```bash npm run fix -npm run type-check +npm run typecheck npm run lint npm run test:desktop:all ``` diff --git a/apps/desktop/assets/icon.icns b/apps/desktop/assets/icon.icns index e173b26ee23aa6ee62f8051294df14750b372ce6..002b639e6dd7480a391b68cfdfeee905a8c41d2c 100644 GIT binary patch literal 574273 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

45jPH8*(u~#400(Xg z!?F7Ze*?G&KjT4PvC~-kZ-kUQL$m1}upgK@&^cTc2u8&^-lPd57BnaA*tj+FMbUE> z*oKV`9d%}+g{uMrMh zjJ>HfD-I)-nZf=O8a1CyNomCYr0(H{c9lvobK?f>s0WxCB>vzLI8m9@-HiIMCO_2j z#MCjtq>rBX9mY#vK0-Ev(fuAiHt)^r)U>w#7&34{)qhFA-FgDRhDg>Hyp{dNo(_{1 zrVoHE$jHN^h38!3pWtPtNXY~U11nO@?yuPy`q#6ZDd0l@cs{BDlozmeqeSK++p&bw zjg4;B7ksjk&(R4AH{{sCTG;c5X-~~dy$3wC?EL%zz)~Oo2_KG+Rl@h@l9f ziMFYKU$LosMC4uwl(?wCmJR3rngG4<>8g*K%(5Ibnb}L5m(;H-)gg3bc^5mBXp8f5 zTP&;1`GCeIQEG?#H2-Q*g!){%?Zb!|4*Cb`p5>Op!T#14-~RX!U z?8LI=NQPxs2dIUGpIht$9PiaP^EdCV4U0!?YA9?`art13y7#7;s7 zADQAHzm`?v?N$E($sdh1m`NV*SC3%)CqXr7G%#F4G*-_K1Qi68Ak*yzY;j6qmh1UV zI;p@BrRbbL!HP{1NT2d0$J&T7KoQQECp;3368u&nEON1C+fft?@V+;~A-KaQ{mm$- zZBHh==Rj0|q*g2nXykN+S$Srmwj(+-wUK9>g~RZ z6wuW378Y4t{vGKWcqD->$-1(?k+ZBU!U(yfaEhkb@SmG&@w7~5=(+ZOx`jZ=5mV@?LvSS z^UcvM%7^}Z9gPl~Gc`TG;el43g(;#%+UzmwDF5|~xUYIF;Th2 zTT!0Szw3d+BnAcnZF7&+i~nte^+hQAGME=b+ZP0M#GT_ZJ{(+~)~Yd4YyJ*WGDl7N7co93~P zp76YF=00&3$3cy+ScxnDET-(ENwU^;7 z90<_*?&E%2W)Q7br1&SvtR*KMK`TZ0Wq{S!>8!~2xM+1xC+$%K^uptR11<>Bwe9~~ z*xO1C9a78Vn$P>9i~lzU9wuIb)b`g%bT_>U2mdcir(UmAE?BT>kJJ#A>IIKdr%?|* zerKg($;YB;%uv(DJR0rk{r#i7@Qll+yFuoD*zh>j7Lhwu0NAjL zp{>3!r^EQZe})nDlvEp5U-GD%LgJ|9lT(SOlVL*mo@UQ)@j-vW4g=Z0`UWH!vGjG+ zF-cdYniv~Hw|&1De0zO%+6;sNbPSA+d;e){Z%4BB0`f5+R@g?O`zhFc5bqu0VXnpz z`)o=Xq#M)Ye%T;VJ20yVc^q6MXy7SK;ikQ*WipED0nAb&H|dZ~*7t2z-~oK$fgZUz z!QvssE1i$=kk$OSAOCy0}|i&7tGr`ui1M5?y1cj;vYjv!+-T9{Z}@l zfAe!;^T6PS;8fHRq(wYna?EahYzdNWbbu%Hc=X9?jbW{EAM)8XQWUnBZ8@LdJY#;W zM}o;Iu3UcX_uOEKX*r4`v;5=nJb-5--BjQf!dBG_KSgW&ex|L|I*RAE+sDt$r>~^2 zR=6mjIMS782Q@+!J}sS>0q3=ii2rrYAvPlZ@k_s(gn2>3oxIsdmriAcpRc$1G{w(~ zf9VC9lktTQ@!P=iV+DHW%k*yQy z+n>TKtcoL$?oiK5^xi}Z1(GDB{v@Swt1Cx0Ivt0tkGzG79{t%KpBBmp)BR}LE>X*- z?HZIH-QWaX#n z%=J@%D!I+VoJaODehy4;IA$={U{xS;L{acIbslLy_nCFr@A!lVnF%auU&M=5DU0tr zT`=ga{$_WfP&$JViL{OT>KXCX8qK7X4WcjoMu-4jQE8ruda zK6cJJK>hxFb$mnM&MM$mX_TcVjzM(Qj&8tv=o`I&f;@`2yF?Hio!Le<6eS2YwpQKm zK_KZDe7k179p?0I}I>QAY+}EJ()=PUbEvM@3X%lDP76fm0sncD(DP?xp@q zts40dlOA1syx%1QgfoguOD3B|L_{D7-2&2C`K}jv_nr^>;lP!9?#u*FIx4*pVNS13 zr9hQ@ogM1p-ko)k%(vTMcOLe8IhmWiFbbD^I~Xk*YEfI7m*8Z|Vcdu-;av!A4g73f zhY%rxOhGcaEG-o}GNb}eC5M^sp^;>2eHcw~8B`pIX3}v&XU^E0`&eu9zy*yNY{a4T zd7=D_qB*bgc$Rjxb-T3*zc0$#<^_S}?1CT-k}6b9b3skX2;3{FT=VIDO%2Vx&uk3( zgzr~BLOkc|CQok7!z~v88$yk+*BuiWlW=FJvWe}c3S%lGeaYj^hM4SjUGIJ@??$XX zdcgcYB`}gKb%D{P&S9yBTzXuvKPQhs(&iucs*n89=Jh)oL66sY3!AQ3pxTc_@l$km zO#dYsVmXW-{lYtXU6(W%9F^il!XTWVe%_`a$b`l!`QTRHH@r71Y?Aj!7}4gxYuium z!8o6$6EW$XM@|Q!peES|^DGls61wqS3L1u^#Mj3F8LIp4R@l`*MrXK^?>1KR$)?_7 zr;lLv>$t^M#DWNB*-2UR4xoE!sPZA+Xx>vN5_N(GrW(2*(58r5uMDC#Ww1U44I;s_ zO(iK6WomA&nL2KX9H@Io%k5Xq6uHHW`P1spFHBAQnOwQ6C(z8CwptWpoC=BxhVOs? zaYV_316YAYoB!z8Pq=zfb}Oar2xeNwY|r|F<(9U(20o*&_x?e~@03$&;HunacT% zz~k6y0+Zp>hY$=4k`g(clH_w0ZC%nR^~Mv%?jr{hVXk^{I}y8H7`vi?(XS*eJ-x?~ z4HmT9(N2LHC_`C4AMcN{)_p?M#A;u%>anIF3*D`^y8Qj8K;gdBSlRmC(I;zUzU$vh zHoI~;-f*T-> z)iVcD=UH>o()jp=g?&)ANLoYE-vvPq@YPjsOk2=4otMA;?bS{%^}o&0^JS2TvYCy` zn(!efUU2YrKohv{Nqn63XrrSG>$8?bPU&KeK`xFiP?r%65&ZTd;yhxl)_ydfBk#~d z2ay>|Bx|p9qBCB=A4oD@@xbB4+|Odt5&2kZRxxI}ft--*1mV#Sqobg{D=i>pJtpzP zoePrD&tYR~#g<)qSFxbUqZWditPDvlxp|nqM~#HOU-M%9XY1NDA$`U>Z#_}WY`PZ` z+PaDz8XxCU%;bv@Ja5GU)Ys~nLLRmFV}oR6sC%PnEJny)iMYa1clK7lXV63LAm=iH1H}`a6|5X| zAk^5`U}+U>wnEQ~m!2SmD~*d6d7!Md9ru3YdyYd{B)kXLC2TiM)cYU2(|}c;=1$IF zpMD=IoZR>u;nKwZJPK$5JXi{elmj+5E)eDxaQOE?-cBK#b5*|Fm7PxvyB@5~>v%zT zIJlk}ebQm@-h#c%wmQQjDr{1(Pf1_}gx1^-g2J7cOGAdiL@nObj&-rz5W*>hDVGd( z?F-S8j{F9QM#y6^oeJYoy(KghSOrOTDY*3`hqSV?f#gXr-mr03B}K=wR5OY$kW2@6 z6wfiJ=Jk_R`ViY_HW0780gCho?>bXIC;vBC?%Ehxkohy**j^X;ByRKwLUC=yKfB6r zG3oSeY3LHmHSe20u03$Lrz5qtQQ>HiiHS-=llCiziq{5#tqqUy@m=PnV0PrFzm4`u zrz}DmIORvtb!0xj=7h<=xI*`p(N8+S5z)g)WEiQ?YTeKBL;hrc&Qt$N428iUpl9oI zed>q{6<6;6CD^p2;p)qWh+`YV7AI|T83rV52E|qH1$?9}?3*v5@IY!jW`C%U<2O<8 zTrnbOgBJ)-a^jXU4yKh&p=)UD*(7_0&Mqm zW6-z;u9)T)2mc7+=Zh{X$P=E-En%(uUX;+gjETE}oMuQ4Qc>tk_GvBcwlrsO;~upFPL-Jcr8ItLMR8cAFAl^iwl4ZR)jgAk zd}}6V+t1a!e1%|2$uIS7QHE#Ew}le{iKSn?ZH-*pmhY*?kj%#BlJ=DXuLuXz+D=M= zI-GxtC~Z3|#{Ejj`{6QM2r>lZ`^Q)4G*$lAifz)4G@#yoN1|Bq`-&L62CkVSdYP-Z zq~ST9^#AMdTv6pOC>Qnwv*6w7O&Boe&tD;es$fDh@8OuDQss=N>YPvT2uw$h0I ztWOB|l*13-5wDCOi=j2De?INO*=y6eWu6|V_QdCJ`c-v3duoS4nF^Xxor^`K%7q<~ z=Tp6;o#O2bU7yID$oDK!h$1Wpez<>+q5q0Q7Yu;&N?%UJ`ojJb3Ik$$#E zD%3sT0BKa2thBh$R<`V03!P{|20!Rudh7ZQ{0HEH2>yR{&;*{?v%V6F5NY1I-G;T( zevY$CqAF($Fg)?HMh#;OW{OU547cSn5M4363Jz5IG2esP+5yB@!%L~IUYi}+VY_!M6B0pq7_{3t^=S`HcWHQEGLAq!z?aJ3}zs@^nmV;I0 zHWr)T%{bP-t*u?KW70+(t3P8+;Ra~tBhoSX1>-@8?bL}?CBAMv!qddsHb^}14l~wH z#TU6OMGgonNJ{=n1o`3yi^8!bDgD!V1_j5k44|W4Q9J^=Cv@I*_nq@CM?Mwof!{vQ zcP+twpz7qMP7*SQ7g|oDF_-x5%&#Zh-;F6vx`tk(P8%(BsxgWYPQM zQddR^Ax{xmV=WzR;UM^$T7Q7MH;;I2>aX~y|Gg)=^l1xL*`@0&1m)wL33G*q_D!D^ zFHwDynd7r#`(0aF8yGxrW<~9hz$3r=DSoe^`?L1lKfQ9htd`N$EOE2fo#cM@yFMzjgA6ur+I?@%vm8?VIY?KfzEZG!S* zj|}67@nK!N2KmKq;;jd((%OASNhI&3+I%LZsxg{H@D1Z_rVBsJxozlQ%)md%doflZ}zZjQ%0rxB_ zBlQ;MJ(nF3A##kdMVvSlpnbf|ETS*ri-(f%YYX7yM?}k{LvMBNh6>Qu( zZUoX!+Mj?Jldh*Hg8@K@f?~eXuFn=zzSO^*ZR_QzHMT5opk$mAUg?5s+ZkK36seb} z4R1YU(Qs)-A%;Kj<%mZHg0CX|D5qHe!=b6>=C+CB*nhfJG4p(Z6WM9b z{JPaAz1%z~aUE!_`Fr`tHhJx5FUyyv7=#~(Me~4YxN9w9n z;kDq~$T8V@cC_^9jz9`Y4gl0y_bKt=K!P(1LJVX1RO5lb+Vsq6Bq^#r{C4z1Ool`n zV*@Fo{y0Li<;XPE4*ct^1=wj(v1}s_Qp~ix&QY)1IhZum)g3Q4#l8RLk@f&C_zlM) z;_rrhOk%UaRWRG-0wY%o7;Fcp$-){+hy42QmhsLB_Sv9fxwwzRv}5^F5U%2mBvY~C zTxh^ydijFe4idc`)!06QxWfY!Eqtjg4oF1nS0vpc-Ha=v>hRo&PwD zSKLQP*It0Xjzi0T4t~!UJ6Jgnu<9BqHsIeR4)o|wV`B^EkqM22vd(v_L#h^?P`38t zMPmvFJ2D3MhX{UTFu&#=)D>ie;Tb45{96e8lzfh7F5e$X-x1n@i(o&XUw%uD(E?&- znNEZH)4jUX`=vKki$uYgFw9HR{e=7hg}2VGF)a$n`EX90~+2(FU!zMJkR zIvdEpRN;Z>5R(6=S}5j-2oH{Xjn)!niugPY|GSby{i6F(p_TH=f%$41apt`3$&X{T;jPyT)ULw&19bV0T6Il-OmsuYNMM|Z2tIDPi>R|-my8;Q z?^<$opYg8`)3KNGwQ;TY8y$$g<9s=RQv))WeI27(4S^#L6&1fP;<JXke;HDAm2 zrhddLmnG(?z}2}r7=Z?73o(fCl=O>5d7k5VfameNo#2X%<3YMY_)QZLuq*(

ftJKyfEELKC;|78e~mr>&)4R~O3%>qkHF|5(m?r83FamhT5T z19EscG~tDZ?V7b@=XhG=PV{c+X>GN?|423@|TKAk$JjzNP=J#|6`<^nOGAH7Lb z;p4z*LRR4Ojti0Y=e3JoAPTkj{;Lc~<(R)ey(sc7 zyiVw=>Ivfqkf8;)pA@HpyptJ7jK9SR{5mx^r0yUS;jh)h5BfC^UBp;aaRjxg{C7)) za@IU@p)^6kbQ-36z294($=PgLEOZBlK*r_LnkQ$%@l&d8&q5IDo8-JNEh&wd43sQb zbu8EFjr-mqJxIV#Jt_ z6%`dlL1dQ^;Xek96EU_m!Vm9*F=k8;XV44eEJGw(@fChP8$6((n9biIPC^*umHKK@I%92ZN3GRn15Z#ahhS&nqyO!r`%JKA5FZb#>#?nN73=Y;| zb4m`h{|AcOgC2E|iNg;}nW9NWAyUY0GD{u55`ZcKvy@|R@MdHGR0H7+3E}lx_P(TK zjwPt0=mjjfr!7LllAuaUOUZ)8zJKTacCi$F;d9^i02v}33h;UEJ9%p-^6o0G@N8#3 zh*M?C-Aj?L$!tB;ZY;Y}`rSX1>^u`9LOiT2b@S-Gi+qt+U?!x0drWwl!rSrRKY4qh zLOPfM(uuBo$laY-Q(z{j1o~xll1MM5JrW@mw@+*eLQDxuP_3MPDj;CSjzkOu1qB5? zOmw|5{?l8T00##~w!gnvji!IAgD|XXVjtUK#{PBGR7Fz`&F0@5-Fj8lJ{y=mMq%Od zu6+XUOBm9AAmk)!a8N2ra+4gLc+(9ut}|Tla6>%`Q5ogCA(~&AwV>=QtfXAb@8vMzi0VX<+0iRtgN&& z^R+Zdu4Q)nwOmk{p7o;Es1Lrrp~1+~GW;j-5rSku|B48IdVYGE;Ns;)kfZ`}f!tFu zw(rB~oaS0jg6E6(J?KIWgJmsr< zP}zfu`|?G;<&OWuN!8O@wRdtYHb&GN!6RmpDx)S}NR$<>h_T!{QW;rM$155sY#gjE z(K_~W1td4C5KiU;T3!rq!_h!Rev&P#qH7T>fwTJWin?Fd_(Hg@%>LmYHrkulK7NFf z(a~JGb>?Rci_F5kI(30;l^Hw}01$-ekl)*o-}Y&Gol&j;__AT(y|!d8eT8qP_ESNu ze~#bPNXLg}I(xc$>?(SSUsYA4fFp4zQPcyBfKD8EfTZw~3kh|HfQ&k!=9=Dyx{UY5 zcGgQ+ApDGzQ{21J;*^u+YfJ3}nLouzmZV7PQ1V!c$yDwqKCgWy0Obe}gTLe(Hd2Pn zGS(+&Xg!YoEJ&5X(74f@*CzRhi&*UrIox1vy5!!AV0#~`!8PcwgNQ_CXOk%8i0Flt zUmocB$X|-V@f>j%iOApeh@7C3R81U!y(ce6Ywz@(H%ENi1}TVhTyXE*d%IEA3;Nu_ zK3lQu0rb)9p3%h@bmze}(gmjV>{RR(FN9T$_>$sVFT^@DJAa+DSK?csPWd_8p(842 zeL{Q4vDgLLo(#u=8c(6%MI7J8A)j477aKK!n!#ckHJU>1TfHH@7NXButL{6|?uWm_ z#jl?W+)sOX$Q#zBS_n~OzKn$!x zCRdk68loHN*v?Hnr9a`9wpG(b^2mw$m~~Q2ukMOevXhqhxi+fHOf!r)%h<=_f;{WW zQ9i58UU0{$JiP7m7cHki_Slq&e4YeN5jc8Oqfw9d$^;Z9+7L*m zKMDy3|pJo>k3 z)}FT%JI1wYa_tQip4U1`GFy~cD462bA{*CWZ2wur{Ljyj75g?+hqik=%?9iLtV?Z_ znXt**>F_gtoHga%qcZ>;Ov4-lMf9;vW7ltKpnGb>Gcwh9%GQHmYr@oTWg6 zZ<(CHN2aL|oXZGP=1hn4qqwxR_Ydy|(6iED&}XCX!dO~n!zLsYrOQ%;r5U>O{YEM1 zeTl4HT&y~}&%Iv#X}qU-^>6eGKl1K=PRq5qCOmxG#+@nEL&`BLrHwYUiOzaWq65Jr zYq_xfJtR|O&?b#2-`C}e!b$|?Y}0c5)05Bu52o+4+_hH6_qowTCJzb)<)O>JrZ&{+ zf4QiM;;-CpXMo7)WS_jQ!P@FwMrPdMwDA$nEk_JkQbK(EM@69AEWEU48%~)%wd{)! z2sqg2=f$M}b9Fh61Q*Pqm9_OThbzG_W}6tS&FY^G zqB5HIOoJua@`%s#7FsyAc{$@x7fg+ASR+m)EA_&mI<*kiQ*9*7p8B)_p4<;>bQudS^;RFS@b4Bp0AcNpIf-ZyDQ zJ)jRDIp`}`Mp15?(j$vtIvLwXS#sURxqUEP275;pGY4yhVF83C?ZkuYb8AwQ;~(j+ zGIV_RxtW=uEWz)_GdCHIl{-W3{gj$M zI%TjxC=+AuAj+6&TvlLpgAM`;+RNVaHM~R8aA#`C1$zC_m)|cf+bMhU)-EU~>}ow4 zt`PV8g2OTqEEx&--$Q8^&wSpyh&;mYLQl`nY!-L6T->}T+(*|bE?FL-2T47wd4J4~ zibJm zr};LveLkDts6>J8skXuCgSLF#66Fqeno;-oK52mt*CufG+AkXdHsgr`k}!d_X` zEYv{lXea&$acE2O+yGscdm_x+P^EVeAR6E~LxE|Dm~67MR-{O|59y^4 ztgo2Y-C6uj#*h+NA_`ZcozH4I-{{p{d?FxB6ts1Q*a!OClU3bbNYxIbU@GE-n)#@z zDlt88>nt=8=V3m$=ZPjd)JNsZKD2Pip0KmU#fg`A+(aBp*tb)-MKM4r<~Ly(Uz&qY zW8L?L(X?aO9`R&{j(nn*B?@IubCMQ1I;pJV}Cic^yK6zVc81ph^T%1T+h#G zSy@i5*c~EmpP^TOl<>6~B=i&IjYYe}sigTeGxejA1A4aS6TQ$~#n5FxmeS^IiQ3@J zfbrCpY>#xp9BCUXwZUV_e-#;);z0RA)Si!yMf?#u*o;cJEB$tdBNeZ0V*~ zV+^-`TlsxE)%WN#o~W-7G9?@$E3Du6)3_|--bm7av?uUuu9xzqwEkG2WEm-Fb~eV; zvEOY)ga*&Y3zr9geQF|G5P=*Pc|by@%eg}ujH4xKA$KG@r!SI<3?gf3+ji-OgHP^y zt95Ms;>l)1JxW_(&qg8tU;)bqFYX^23cu>Q^Z8-Y!548s->ag~Ckxn(*9pKV5(bU*@Cr>}Mz8(XV#_%WXUSLhVh9~)nArYcQCVd5;Zymd=s1kP> zcB0?hCe(yU85602om(duC0A=rhi&d% zRjs}Rkxef2-TwW%>GyUJ_Hdf>ir@LN$GY=)kR$EjP&I*sp%XDwiodc$lJWIs+FIsJ zdnu2>VkvqG>UTcHe-{Cun4^lcS_E5kT1aR=P!YPr&Q*q>!&rp<>35(ozQD z4I{k~pA;*6M*hKiANi7$YFLn=cU5_qIpJ|>U+J;6Zi6v3je=!grC!_Q(o%^q)aqZi zm#p0OB;IwEc-jsU=?-e~U-HGGUJ5U#q&tSq*YqY1{$z-NE*47Y_3un^W#!<@lJ$Z|6UAqIZ26lXBc3U8vx&N?HMNJ!gl2o+$fSJ~%4Nnj zf8SYsBRsMQy`k4In1**~A2Ns{eln>FjM@@>Hiag?(;YlVbXpnlU~o8n@#<@nylzD4 z?n((yffHAjpKV38#0S~WBx^WBe;F-ELiYYbpIUL5_C67bYZY9~kI?lMdag&t(Rn*R zA`9erwf#xOz(ABT2l5Vu*#R?p?a%@VE4BvhB<Al|JlXANHdDDFYttzUV^0)rw|nfj{0Z_c!-7D(HzcMFRX*8Oxz>8v zT4`WuKw-L5oP6qg5WMZnt`rNnJAmsbrCx+X%}`D>|J#7{zDv7L+xL=mUsMc9q?rBJ z=|*0;+;tVY>%2(O7_6g^``oa4U~UOOanbsFcef4vpaV@L&p4g$4}Q5f#ug7*v}8eS zHtnRad6qLvkCxf9>X9LJwL6txzZ{wUC6LkF7$pszYH}WO(s~k*8;Hc1QEK6H&mP(? zqb^j)3Vc5I5Cmh;gc5=TC4nU{!X;Iang;DtRa*$Bv*iWLqAi-ERet{E?bX(# z7&ER3e+P!Qs}dz&Fl&4D2QkFJ0Wk!oG6#>>S1TMHEryj|gTWhFyv8VBQ=yz{%{uOk z<0J8WheDwF)Y1w+*30kF?%{Uh!Hr3?S(!02Fc^w$<(c&^M%9G(Y%$JMyPcRMkOjTy za<$g@R6eBXva0}wsR`u28!b>%TT(0)wE)L4*-rO|kU}1cJG&;-_AlYfsrN1< zor$LUWK{X=)^LQm^08VNWXn$nF6#b>LszgCtkB<=Qf_84og9mFMPU3JMT@M1{Nt5C zxpfN@fyc2dvfu(tuZI6`2zc(>B`>2sD4AnkRg3@M?vVt3eSPKP5L*3t<5NXu7O6D5 zHb4LE>Gi@-6o*-x%I~Dfm(dgw;Ejc70L=!s3=;hzDNm1_RI=MAkThrI_b&Kx(Wwb1Kr|CARzMt*|+-R(P)i`EG4jGoU< zI=e1;bXYlBLYqS?#PKi0C_ru!x$!xtz%9Oxp==FLfqh@iIV8#>LDMFi(XM1O@xNRQ zPd>@K`B(HF&aT6c@Zc72I@26cKaz~>jbOkyW^iS&@y-flV@WO8v^{3{YfSgrR;4{sIYS+Lw%d58i}0UeK7AkSW1$r4 z{lSIuRMj{30Q>m3xzX!$q08g~!kU#Y1Td}?H$QSzp6b#mh|^^_&|Nk!1od4x6-S1) zf0-dYmBNSYC8P{X+JZ=Hnk|0a3KY)RdC2R^SW?cR5t#k=wQ0-x^pMqI)XKxz`>1{r zBNMsvDg9>^*%ku>rO7AN;oxfmC;tzPaTa)(bS;fsdUj>ud1>>QbxPtGp4!E}NZ`Yx zv!20d!mCA-*sZSj=Psw~UD;te?CyJ?hXB{sr_?;UcI+RQ1u4$Su{lLGQ3ZC!LCnwJ zU@77-FygoOo}p-zeundQ9DQ~Ns%xSdQ&|^mlqB`lSFck+Po`E|i|VSi*vYCFWg?c2 ziQ~d~RrN{WPEs+%Uf`6uyrhiXyc!~vu2BZj-NkIxyBb#PJ0-$_3%qf?bW3h12*l~j zZ>Tjx^Hg83xRfqt3(g5iTBQQXU?K)0ad-Z`iT^;}`uh4`noNNdN;vNu;W zb@-gbU>QQ7n~6^Z3tRe*KSb_nrF{R@?#5;k-lQA@1gjX5tHZ^$*|uCq0@e{9N`^*yN5| z@-Ie!J|*=vLrd1l=?|0q*?XsX&4W6$NWU)~S_a#C@*#49_31X*Q}Fey>Z>GOEV1JP zD1{26xf9Q-6fqmsXo>6~`5ay*($-jSp=kni1bwiWxUR>lG!G2@Xrl`2$wwh*9@eCo z{=}1y8n5BWxAnnhB{%Z0#?byPt!LkCe|4ux+QdX~$8T{QRuh>1_n#EtFoxAu2CheV z1O)vl%o$gy25%gl4+E^*(xOk8o~>S+dqOh!zclHB=atFeQ3sU=-`3OgpVQ}_Rg;-8 zrhQq?>iUWLha#~IKO~#}DlJ6@z_!I&U{*g{4tZJ@7*FRUoa5%c^btk=fHA?Z2m@`4 z`^trTr1Ck@Y+%lVj{}i5*#F`=jl&E%h1DRY&SK(Uv4+tLzbF@RIeC5fa!$0fv1O7; z{~{po+l5hH7ub27JlK;*jG|YjLX^lV1pXs1h7AF$*lFv9J+J`Fh^10;DY=pLTgQ_ps zZ*VouABkV&`&6vKj!l)cog`V)3+`(+Wp0S%teB(@lF^P;rtx10jzs zqTf=NfuUu1XlW@86dr(<3aIPpG2a74F#zK5`ODX@Q~9!q`ySc%NT4P;B&gu6&!tp* z8XV~+KU346^xqkJlGhP~hfSHZSjvuXg8emVqHS@t+SXu8qpd zhoj_8H$z&dhvv{LABNPK^O2uk?%hQaOt!SbqNkR&{zK|n{f(!YQ}m|-C-c;rbI@1~ z7av<48m{JX%z4LEBYxV#{0b!y1O{gx{MKYLer~LI$mn_$eTeLOpdj&kd2V*U%2h}F z%2c2H;yF9|V=ZT@i+2#7)ucm|x%$^GQR)(;+=cEV`X4%{!SkJ=7$e|q;B(pMD*T)g zBb!JA<=~y&m6{s5e9@GK?0*;51 zJrBtJW9;u%r)IMtv89;fyfgh#(oB6(rSA0L10)nwRHLDov&AkyQJT*`gIin<1S(eU z9t~pV*5HfXas|;!)pB)k{wQ30N*q@hnK8s5ukm40PM;>I8=~1EbbGkJTg(iK&HjAK zf21D}@jCw0-F5JJ;Fo`bOMVS47J^1eP!y2Qz`OSKx%_J4o^&9g47Ax3{?F zHN{LjAzPBY;SX!dO#<_iv#H3nq=w%?Peyn$fW!)-8edk4?vt-0zs_#`4fA^lbAM2J z#||+W3O4xqY2f%633QyFG&C4XN{UEcoR=4*t*w16`Ik}huPlW%r|w_X)vYr=<@1Sw zXCsEHcIXc<>NTKU#~FFH3C)Tbg%sL6@*i)^6DiXII@2v7_IrU8qLO?dS|3nVTLTsm6g6}ER>FP$(JFIpm6HjL#}vr$Jb}^ zo3KQk3Xe2`64zFWfn}QpUX#X^; z0RcUSa?F7jxLU^DT)n#4+X=s?MPOK}PCAg32SDqV+RZOg5P7mjeS>*Ex)^<8H-n{? zLgVTXGFa8z)=~nS`SPAH-y7bm&=vcj)G_i)m@IjT0Oz|mnGUF6r+Vt!Ey0%HS%l(+-2xMmM zUA~#0Qlzo@dqSwKn%-ahPy!{d5ertcQ}!rbU$gcUzI_9VOKKcu{osw4$*{{tuZvH5 zdRe}M@L9DJ)6H+;U8(|`xykBQgRwW-x>xt13V{!q4dP`?-D7UIS(p+j`=d(V>;oNH z^ym`@Jv*JU%e0E^=_-XpY7^Si7qiuK;5Zy}0u>lfUmrQr?*RS9-zq{pPBYk={A6gBG5C#&ZE z!_~|b_Ixh9Na5k(l?@DHk(ilV$Z`zyseTg6Xn`DCfxdD)>eJt?PfrZw{lcoFqExx~ zlSBID0ZTI99#SJhhGLtUrPA%6iHyIAm}_B#-^5b2W|=Wey>gHr!q!#_!PK5F(wN55 zOC{K87o>Y|9Dg;j_`y%TPglW;@A7L9g3n=VA%5SU?<(qoVlN<7UxRPm+uJvkQSj2X z&g(_H)D}9I#G8Y$xN0|qhEX%nrODKL@8eUju~cVq1&Mv*6uBKy+BSH<6$I+KxPJJi z!77ik)penm=02NgsY%gmnA#8INQ`vvvsj^|&KIQyf=q7OH!p_XrK!Gzk!A`xfgwV# zT%Mj@HHJOVT(J)GT6do$$ttL7d>4`U*Nk+Q4jR1_R;`N!2>p@?D90zR$Pg!2SEI_R zItj9}vi@xo-Wv-RZ}KXuJ7d|g32rG%6P72<C za}=nZ0$N_B!jFzs-)4?YEy7e|?5bdJJHYGWJinAiIyuUa@?2`yO`pG&isjqyj=Rwj z?>G(@mVi_i4_#$uN5w=w20qPw2ab$lcjzy2O9jxlUq_20lfeH{=e}L6N1v@U<#lv) z{4OjsXYp60-#Y^MpY3L+9gx2_JvF91)FDK6)NC2t51t$uK8tdd^DMb(vLpe&f;oRQ zQ5DR&iT(ed6*GQ5{*_rWl-EC{aC46Ajug@2ygjM;Fo0_ zc5d3=zGS<8$O?WKRs?QOoX;mw`EW<}TURCQeU?!n^;xBjd-1@@wYg|o-)pRwS3rQ1 z?Y@ol_x4sC5j_y`lPD}w?Pvj>u-=cxbwc&Q9hKpr*7H;jQUiY3#zAGq+F~m~YABOm z!ZsB3wR!~0ze{&|+b@N7UHD_k9nzlZDb0D&94xG^cw%x+zVc#SQ3A2Cv36X@`o4AV`+i^T{pgIk zx#+=wQpGcLF!(d;k3>6Ah(V8I6+B2Evpqa|2UjU4vjR@L`EI|bp92Tkqk7D-ZN zPdjMYR=k}b0)1HD&97LWndqJiVeh=v@r)9_spKK46VVFM4CyXu;1aACqS$VZNabmN zg$wV|U`eGmgXs$j7{O^38M3%r{(Mz>N|uWbo@#=6D82jfKbo#Ntj@>npOfvD?Ut=& zyOV9LWvp7Z%`LlS+xDu3Ra?fgjo-8Hd%gY9zg^eqInRCHAL5A?r|2`j2XFkzFuTtrBo^sr9o9FAZb&DxdUZR@K>k zoGFCRC5;ziK(+ax&84^QeZ9Fq7!eNp=Fl$p<@1gUzh}-q+*V;fSQFJm?zJlh%(Q?j zGscl|^(WoZM%9NU0+q^H>aXtJd<79SsQ0cE^+1evH>8q>Yrs;%G@r+O0&lxDk>O)> zaA49)?q~SpPPQaYY*Cu&EtrEDkoRu`B+!N){jmEu3kY=a=sMnVVfbAId-e%@Y>HD8 z07`{um4|>d#>=7vBEDBtTy*q2brf`W`vs-cw*x=h<)t}{Oggoo8%@oSdI)xNwYZs`}5rsB%DLXQf|8}&{<&UJPi8q14F_#y1t(4|}4x}#9T z`$O%Xs2ShWE6=SFk>QOWc-EMq$5fU(IZ9g(^?xd_Yd7Rpwg!x;gw!TGfNL z^>Kh~{%ZVp^hx%_dgAGhnckSXbu)Pt8&90wU=;3qr_FxY4Lj~yho>5R=6PksO zIbZfw&KE1PD$!XavVAsokNeb;Y26VqI}On2R#Z%mnyYL+ei{To)x?_Wx!zJldEHHt z<}HNb_~V|NFb&y4imI#bpx@f&pjd& z6QPkzDNx2vcXV9^GQ*M4XI~M2TVwJwOmZW zhXgk>R{+NqP%2ML z(*Lz($sGtq#;diRryUhF1F-EfM;p;PRTMC&&!90|LY>@iJhjqWjy6^OD1%pc{*2rR z{dq;)x-~a=bOn0mG9@M&Rn_`|n)<0K76xl9(*1l^k~9lz>aUKU!n;j}ldxl{)2{D8 z*P92Tp7c8Xk2v~Y+-Toje?$e)|C~MUast8Cajiwt*Onvo5b-wYA4*+#~UE{~=}C+DoklEWDN$7Dc|7J7X_m81%HI z(?5$Ltc1yk(+Cuf}M4*3~&HEu2V~0&A zMTSkTOoqPZDC#rsJ%XX_n+zyW>xyEg<7%-Q?mBuwtJBAoi zRk!c;XrR|=!T#s%b-nk)-7^Ov;V{Ly?~V&;NV=)E$-YM>ltcS!tw8uE6}TmQLlfwL z-aEBxUr!@6AX;${nuv6;=Vi60kM$AZ85DSp&DC^6-q8iQI&XNNZXVvn)#29I1ZgC_ zY9scM<%%N;|8mxa*K;LE)(6PP)aY?UgA%S>2<*Q;=zXHe^{-xOe5#bs6Lky+_qD}8 zP}W`kJZSbJ=7TJ%%l(*f>)_ph@*t1-dpvV4UTdp*_ym({dDFgim2HY^;NT|b3OE0m z?bGU%@VENeH%rKd##!7J$SJmNhX@8nj64)W3$l%vDTEE<{tF9*FNc_1LrX?+d|gfd)};TH3(k4u11$NZD9zxrga1Ye&Y z6i`CZF+3a?Mi=4;k6@z5IofF^;|nYuouq;z(2h$HeXgxtzeIy3e|$t~Z#cYeQdH!d zM}(WNoT>H{q~hTysA|%ZPF9`cre!VzpGQlPoC$DoMbPDVLiyjd_=nTw`XK>dOmYfx zdKe_Av{JM%zme?Re)k$I*B z#dq5y&3*W!xs9?+jtE0|=z6z~cOrEX2cA!IOWrgN=e~HlU9rz%Yh2ll)vLZLF@11X zOaWQ*v3EmzsmhP7kAp{KsGvNr7TA00Kk?Y;9gBq%_<61bm@&Z=wi(WWq91>M<3LGQ zIO#-rB*2^(B2ArVasucF$q#dg$*9NWxE-C>*JqYqtZWh zoPD&1njbW(i{tRwNWKiW=Q>TfHYR)9C*ZmXrhx`~y8} zIz}@|%*2Mh%I_T9;L5Y@vaq9sFz>V6{SYWN;DuLc8%@WyXqH<(ldY_-CQf)Ef(kmv zoZ}rEL&F1OZrz6zxClPgMz}k3X>v~6oR7`^-1r(^$H>Tm03^*~J>8y-I`vU1 z=CU(imT(MIj`ksMcNOhK*htx41QAdkQ+LQ-aw=Rg4 zV5VfyLVfGb$txo-0@+74za0$v3uX*JC+HNgt5)wsN?FMv)UwIto(zU8;N>DS?I+IO z-IJtWP@cx<;q@;|vcnYhCtq7g=RkeJl)Mbfk$5G6c!qGz@FL?>(H0r$E)Y7jv`Yy;EF%9 zf*LT06xGo^NIyHWsVD^2KS`0JQaiDNZ-lK^JT@a&>Tx)XV6~O`KYr5?(nOL7gIlfs zj0UrI&PAS_*~a|Fq3D^+F+6HDGkPeknY7rNu^oyexUXGZWNHOP|LyeqD~yCCk}Ksl z+qWw&UNOOM{`@Ocwqk)OcQUT_77_K6j~F9XGHGb0v=xo})2{|qrcY5E6fo27ZX2_} zTnQ)jMtHk8dkdVdW}#n-BaiZbv9+vWm0GMrJlP$Yvqp?|NccPVl->?kkMjg^cd4wz ziBqM;ND^*#F(T#GO?syc>c84}`mfst$g(hb?exkJuqOnG))EsAKa{8D^3jEt%j!K* zTdENFmog~M`X_BQdnIXxK9%#?ud|u~X(t&Xj$ptL5(nha993Rs5-i+wmS@o)H=qEc z@_ramm_aY?f(5>Ou3IMaCbne8Twt0~fT;R1$Z6*Q6PPl1oYvF*mA^Pq(FO4Miq?1S zB2ac2wGOyqm5O=uKlRh5=#r5M?Pq#3ubOMRAG}8W92%IRn(ol#wqgk`D#_kh`qWxo zfvZFi6V4oC=B`gd`-D<^;4qngLNVqr%N~GWc1B?r%egVh4TIJxy}%GIog+iNrR0Cn z1>QD~B}X5tL5V`frO1WEC6~rUkr*W&m1VZ4))kNfHYVd39)7Jv7mDod3z4p?x_GUt z!_353xveKThwk{q;R*8mP|}vkMl@nI<+W$%PJ zH;YOeF*b?xg>t!YeGlYOfo7d<(4onkP(M>CPWpjNX|?!BXyX zE|R$fmUE(=)9H29J|SR%N}%{uBn8RURA>Gvm;(!I@NTG_&-pa#mgnTHP{El_PjPb%>nKqxoBJ``?X!kCz zj3}g)3r;$6U-QGby((?ErQQX}=0wO4VcpU< z%=X>`9VDHInHbgX?aNexD3Qll(~vl6-}ETBl;;t+;&`5uzvXxiYrJ=_s#jPw?A8cH z-qXd;oGY>b=D7gQASGYsl$2oIi}pfPLxe8F`3z*ur*1I;C~EJz|3$Qp@2dR*bc6Lw z(Eftg!}Czd@USqlm{#cn6R3wdq?OUdlGZPembo!PRo_TS2ht!+)Zg=>Ip=N!xn#)k zC-*`4rwp^UHZatz%27uIbEbTGX?-6T^Wp3}T_S!wlK>%97z5uRh^vN+V0|wt7nvaP z7nypivZ}_sL^Rs$Reyms{ShZ8G|h5q*zBaOStq(xoXl z6QN2}aL|L>NzNpJD7fCK`HzER$)4AAWZqG%BWm76hXhs4E;S1^=8H&#S#~OELg%MwL5>E@SyZ zXm$uNi|nsrY+~h}BAPraw07!6KfZ=TC24wQT9Vh!p$+?Rg7ZqxRd{%AjDq6pmgW~T zyOWa7>h$4&fCL=fQ3UKV+n;}_YB-hBFY>}Qyp)%H&|21AVXfye8)2%OXk*z zJfupDh1I4AE(IsbYR?<_v%2 ze&;zU4H-_~lFRo2TPS|wCE@EekEP;14yHMErXizz^3o=uS^2@52EDWFO5BBij}>YL zhRE++d7+@AZ})V+8Q&+1yr@6-^t|W;&2_RZnAW7}dW(oh=HfalTnSGN6R8{~K*}PA z$d__?U8pz|0rYDADSFLib2Y zmaZsyueMZfyG2p?-1bLN@W)Qkt!p5dY6f`e7^8rOE2+y=a-=X|CV;cF*R$0#HfH+@ zMcbBxz=X0d2GXw68qh7EO7mvAs9D%2Yxd*R3Q|zCh?BnyX)>qrgZNJzoEmLA-YWM0 z{+1cg8XEaVC3j(uK!fAU?eO9C;I6UauNmSPBndHWqktK0W2;Wr_^V(?b#4mVFvp&P z*-oh>88!uC^&_+Q`H^$VS!qG8^G#wKWtQ8nd2Jx3w*T>WF_ zmDC?I_u<<5e6{Dr)aP!!J9v6}nhmTw3n+IG8p{O;rqj?TQJQOKgVtvF>}y>WbWLO>e(TA<|RmAJw}ft=(5Ga z)@C3dX;z1T1=Z!-1>m-CtfW5YV#NGDFgg2wVbZ3LeqcehxC|&{qtRG22}2sje%Gw@ZYJ9A#+S@`CVKz?UTdvR^nmZq^(~;x z^?#VSpDY!L1=ihz9~I;X*Uzi+Uz5OF1ng2tl1U!gHY8{MFb5z1RE-QRlJ{ta_ggeU z##ACkj-cAHi%L9$u#9+SL2k==hQWooST z6R2NtlI%G+1c%nuqTAQ{#i(J!>fHYdn``2eOI;DGWsZ?GV}=`>j^;vF@*~PYRH)Z8 zC%8M|M!$SdQrOi_y}V?^MGuglm6DG<^SkR0r}IF;0DhF^ zp%NR-fc=yW`=M%iQlwil1zYdyba7b`#aR|DVzg}iJ`XA?FHcl%syv^`%hE=G(rQc{ zBO4WGbt>|jEG9W|b&toF@|gESf#6JEj*$)VKdBf*yvZ zz|ohvq?XZWY!MCjki6fcqX=+t@aJK?YjGL&X zx;P20Q||4DiQpuirASyp|2>^9_8!GeC`5FaQ*K#W^v@E*E38-;JlVf}74HNru3ZzS z+`CIb2wCV8$Aq5yNp6WHN8P8TG)Dwyf;(`l+w<;U)VB;@tcShKQ7EpFHie{>KJ-K~ z{*5*Ba&UQw6jc)rkOoZ!ct$a{Kxsr3Y5g@%8st(MQZyny_|nY=SO;*YWhUi6mpRU_IM zG}~mm_`YXB4=FVyWsLhg`lstnDw*?LR)2!r*LfB5)kXXKesuD4->T=*mdNz#=ai}_ zIm_6&Ts7-Ko77u&v=0xw1aNJahg^m`6DK1!xC1W3Ddh)gWg(6X?nWQsNeQ^AP07&P z%RZ2Y0NRmP=qKmnW#>x0CM;}PML?DoW3=-pJwmJnqcKHMuC{APHdmj;QaL=Ef6dGM zaxj3iCsPs%P^4xEd0~|(X9g*KAGXRt`c^OcmaQa#0^bm#dpE$1Phykq}fQ+j<;w z9{K#ybOHl?+hXiDUya{rx@>9DSl`>~{8~{kV+Xmu>L3ZB@2avq)EVgNJ@8rx>3g{2 z3t^EGgjE&_u_+p{U`|AN_<>K@$5P(zMJB}hz!)HM1{y?)67V^BU1CJoLVBtb@KF8J zG)YV9>2~}xlUXs$_lfC_4D#~pB((djYE9G2W)IdSedt(r7vhSl) zm_-UozR^%t`Y-G40A)2{?qsl;#j+>=X=--B^e?Nl%NleytI~~_xhP8oofGEG4;APh z9SrCKjfA|xG<3X;@MR$+O9n-{AQO(ApW%}XTq*wHY`Kf-0|n;uQ3+XZgY6V49U#Me z7zosm8K&3<6<~t_?(TI!ss>meQGqVY9)k9#WYIeOwnxE$W(2 zJKlz2V*P(lNZ0`_Hdvl%f9*x7W6l~Em%_GIw z4CN+A6lSR^*5@v|q^z}#NE%4*)+1+h8p0|?$9&B{oDwVaJ0=t7{_>^Zn0fyi0j=Y5 zL1CD#L7hUlR{H_Q%QJ7j0qeqc=&zI(9hOmz>|AQ)jN5vkPX;gWL&T@XRa46c_Rt{M@)6qJ&Zb2ywciXxds*UBFN-8cj!z_>Y{2pADJK~$G&ZUM3F1fV_$9Y{oc!^(YW5E%ey2+UEoKN`Ex^mJ(LS!PW9BcIa?Ei|#` z2VdIw{k4q842>zD#N>$(1)ft<3omgdCVnUnXEZ!Y;~PHdIa!QU{E3~rG4MFiYsEG7 zxE%;b1CkmgbUHmTOH^{Jugr=%@Ehuu_cIRZ){mU@N3bY_zk8!0K}+}Ry>Pz1Ovs@%G}YsK={enxf@HjzU{sr z*JEHnbVBg(>Dqwz&}-mTft{jptWS~va%%-4O?)@{RW&QqrOLm>c9Wym0_0sx7k^^; zCGebBDy?&mm@(6}%#tMi8!Wp*=caugZOZCK)#H2s?4rsIr_uWopO{u|E&dq4^N_OV zPe?ucn>j@mE>LV}A$vg9qIGc!UR$LR7-R&9mq4BU$l9+nIfB|B*49M=L+E8qMCE_| z`tbvU56v|`;uPMgC8ZwC2?S!wm~f*~C!3&daAs$JDUFJa@)w8}xHMqjHK?n_xC_A| z4aA&F^R5bE=Mhaf%*P+0=KBO!R~o?Vlv1Bz1L|{FKE!*=im|S=5i~-7lao~;kiYf$ zI!MEuU+7jh>ru^Ke>TRjq4Ux-QoWZC^P%B2u7cgM`Mhw@7wC2~al!ynr0)KcsT=pa z*aJeOQ0*sN-;+lsb)Sim!%Jg%_HJStA{hFbDhP+I9?2o+7eUp?I~LncwCC!gAWd2% z_IJAujZ?8&1Ur=U1pXoGSV<#_{GdvV%{~emav^k?c+#PKiSSyBF|5ffe(dhEjzEwt zVpAo;w$H?=LO(LSv(>j8)9EsEO3yY`gK=$5(?6XLKpHbX8Yy3dfpDqg$%Y$K_##cN zdo1VG1&2+-Ts}Tb1p1H56{Z(O44AU=axwi?7#t)i9HdZ568Um=;a_! zH7i3LCTyI(3Q1kn2}-%oKJK=zim?%4^p~3;puk1ZI-yC?Syb6}ooXg|>ig^>&1O5sm&GD=Z1m>1tzVfEGk!=L_KPzr<$E#66!MfM-%$KFnzQ{&lR$5JYPtwT(@ z5K69~@=-P*CF?{_!n)CqESE!I2lv)unBfJ0Zw!Z!H&P85LA~!gB|#vtsK38|1-YK2 zBo$UGc?f=GMTKiuGjXpY)~p%B_NwDaE59Un_#*a^O#_bGiA!cbQxj3D0IVDb9avDB zvH6|6++*WXFSrfe8hVx&tCE`2s93iuVizI8@?iNJMgE)QOC2+a2K$dLmppF2ftHn& z`b&f$SO0ks`J8Dm3$FmFcpoeVWdnrhUJe1&Ob6HSb-5QkoVB${z3Hf+aP}6TbLHrM ziX2!a&VxZg2oFAJPw2#hc(2bh7ej!0+T(ONe_ajK$NG`IHjimzNUY-L2n6RPB*}OW zM@{^@g8wO`HwaRbwiKOvR!|jq$d`7}TA!po{Dt+AuD_yNl8YB2pMU|Zs(e6Ucv!JQ zy4m>8a)egRW!yAu?p`psN)kUR(~gNJA_F3lbd(D1K3*ks?%UYhY<7G6Yq`k|?;l%q z<>FkV+s4K6nG~yY|1#L{)I%m6<%7M!_cuV{baUgLA#6_wOe;1H4k$5k)~~7;c%%Cj zs)mN4W^PvUDeLI8F$cNg2mp7rwH!U-v}#{70`#HA0JXK-06_qFh*&$%p`^pY>dd5? z=|Dra=Sr3_*i*R8d$kAedxsKGGni5mf=5$SVuYPog<323PS0AUjK?sPTYQ(`o4Zx= zVS2CFe))dZ8Z%#i(6?w&_!M&?SG1F;(;N&oSPqa`AxJ}XA^+pVBWlYb-K4BzOyW|I z#@%-*$dF?}mZv46sLO#!-B#mBEhoth+LLEM$DVaCvWJE7+)YCQog=XrP_(_hK3%jg zbvKJ4P`KuNu5T+Y-Ukk(>dwpY_cxpp5)uHO18NPA_`_ISSy;=5Y49RgcNE~+&mETX z{f)?3BO=lNgwTeerjz8#5SG5E!}Z&Yv~Q|1svwx9D0LZ?JF{$Bk;5jK>~HA3!s1m@ z{9V|F(Wqn}GT<^DALymqJt zR*|{LNrelv^he0=wb*|PoD42-=rfz*%^wy2Yz1@nAGjoVFrD6-e=Pi|o5(|Yblfn5 zBykIK{Wk9M%km`b1{uMO%k-2;J`hjR^I`~Z)~}P~y%y8Rj$E=D(>r(Humv_~oh|b^ z>=YNa^p58hFWyNfnwtSPFXhV^HiPQ!Zqk29qKYG{(55Z9dF4^w+8tAAHG3|4@vZgB z=R#ZM8|DNo;OemX_;GNOfb$1nicb`$Xuf}6AqZBQnkxHV-M8^W^;a*$9ZaN`RT=f3 zi&vJ&dSFhD(VFYb2c53RkDcfJELr@nXaR$9^pbW%QMhH*<$*Cm5REtUM@A_nLQ+JZ zmk{1#9nk=)l;TPZHYzNR>dBom2(+7tiql$jQQgLZEQ*n>=jvbP_px=WFFgH(D6qJT zD#*9#B`6jm*!xmD*6-?kiH)Q1g7LEw(jZKUI(W2vW?+`%CrCgGvdxBEk>O=1@7Toek= zo~9toB6w(9qlq3kxlB3?h<}uHc9yO8%ibg-B{gOIb{dEZ=d| zCYWuFU!QLDQSg<)j40`>FKNH3^KGG-SSEcGRwkuNvSt-$r%EWvWTWr`3zxp5hSrb# zK%~hvMQCm?ls1r9-t<4R;PatOikX1zKCjC-fiRvJ_^WR<9EX?`n+cz+Z=<|{L6JTz z@xU9-bsu?65d>~3R=nH0?7&79Vq+;p`LuDc1#b46KA>d}`^5Kd?|1e@{Y3W9j zH;CX9wO6msorG6z?A{k`vW4~pNCB|rC(|koSN>{netm|;kpVwA~;iN4N5^QJf5i9`wF!fvl*y%%= zFxsnRZR@~1eVd1c{M$GYeBNzIjGcu*q5atBP%;;z!&@Y$F}^*|ITV^(QZ69`g-fWY z-3%NMxkj(la51{UJHYE5r;^wkUR6h9L1vXP%4oZI#|4c}bC{~9%#)MY%#RWYYcesb z>%~;iq91u+TYDQS$q>Q@={?5=90GP6fO7}P+h`kZ`Sw{Tw4iBcWBi| z8szLgpp!K-*}!lj#)n!Y6NYDN%*v@sL2>(;o6YUFWi{nhL}2>7*61*8wZ+bu0$1UE zc+VTWo4dOhf;dKqHV_p6b>HsC;0Wc^JXKkrUMd_zDW+Y|x{EZ#LgB8s%`)4=&Y)iC zKV)+T`G6_^1wKSxjU`<|Nhx+SwV)-b8R#Ntzs@dO!X^zlzkZ;b#GYzwm3opvecb2+ zN-CcDv<$nDfOITVVUWk73o`lJs<30djcLaO;hA%2-=!*N#6V|+#-I4FUkN9(dC`GO zdjL>ta8z}q7vf*^7JAL-YCl@*{^s>uqW=Nfeb|Ht1A^CDr&;mITwe52SdX|%9_v7X85TXDB@K51GqdkykhZgRz& z&fyR4A4O>X^gAkS*jcCB2iB$S+{#>#Ea0|`GgB#(RG>ITZXx0|mj?@9Nj~%XSR$s1 za8oc&*e31cDB)gCgk@PPyo0vaUF+B^i|49Ir3iRK{djZ4_y=VYLwrUrI6ZXo&P;Q8 zZS8_h*B1@cn;El`RXu1A((O4~G`#%!)%si5EcEaRMoOnr@1=m6LLpkOC&O+speZ70 zGl&ZS#-KbiE@%T+kLS~J0G_cA=1o%*Ac&p zgISQ9ROcyC#u2G7Uhj~37lX+WR@AT0f+yCL;dkG_7HG-*qk-z4%m)j{UhbTr!BqutF zKm<_oY;v=pUD(uw>xbbDMUS!Kk-dQ7Dj%U-0x!yi_}D40;1hMDAuU0N`o@JdI|gN}~RbB7i=s&Se)V>+GO+V}o31M!`9I-!~fUpezWLFtHE3`Mfl= zHUF#d>kma{2hv`Sm)o$dr*ouCEnootr1vL-dL3|eoOIz=TX$=G`qSSW6|+=2F)&h& z(@u%b{iE0dRoQdb)cld?z}<|)cAl+QjO7E4S@or^9Ywjp@S@M%iqrmPDmdEO+Det(gnDwLTpL{^I~m_o5Z zP?_m$Zp({uCF)_!I=W)I9ktF0i}I&a0sP)Fn>RO7u+pn_UZc<(k8>j-v97LS#}CDm z%_T z@n)2;9f_#T2gt7{u*p;N$^E>@3)k!8d;d^?F$jt5E3kXfun{#QW>upYSw~a|IO;-4 z_AOABf17?VN(1rBul23O6&6fnRNn8oSU=5DG&b~1#H%YWoiC(}{`{ z%V}*obNc(7DnWDV?BNQJ%~!81hRo3s{R4DAJXYgoAk_*Y`QyG6d}Pd_u*Y*uxX#CfOie-xkdSr&q=b2yc4A%q z%)d}Y{u{4lstzqx;aTKLTYAz!Lg7B{p3q?oih-Z|d9)-SY-zb(j}MB0m6+mLW8_?g z@$k_P2i^jG<^V=YZ_-|VO|gHM1E4}VM`AiY6uFd*)%?Qz)7+T;H zubA~@bz??Fc}Fphi<_Dk4h(=r12WNI=wQ#|)%D?lc%h)T$C|gfyZ~bjEq~ZfYS}Aw zhQEwm+q&b`;p3hTioQR~7I!P+$Ja_yx(e%`zTK~xI(tP%LnsY=)wVgYs!KG)5teN7 zReQguYEu9x>b3!VXO?y4cG8R54I)?!3L4no?QQ##iWQtMo?!tC3_r}t&O=!Z2q)y_ z%bhte54DYbxetjB0dhTgkfB(A$s%83?n011XZuW0SRnvvv4DFzdvsnbv=WaS1PTDj zNs4JC^scqJI&baB9k10vw;4>2LMLU7)YSw|KHM|BD=zw|%JXE40S*$+R~PM{*!}Tq zAr=reZBIFRaRN|Nt^Jb+)n_D3r|xZ`>P{B|T9urTV0d(Jgcy~QiZpojn_{gywru3# z;YYX6p9iq{|K&?yh?|^twq@{{QvOp^O;0NWJInS)U@#zpV7HpeB=K&NG$LEU4k@xr zv0ZVzdwY(LyE|C|g3$?U>o* z(}5ES)#_N=$#_qE1v4qx-@r7NkfxulWD=IOdMhv>AkA>npZ|O%T>i?Ll8fSfh-RbE zVMtOM91T}|khh3eGoeUKzX(Ns!a~w(UzLxSiy~-T{dX>bH zjWK%Bq2??4)b4DejGA}5y%5J?R3Cq*i}x^BfoAD*m`mSv8%eLGS30X=oj5o95g<3f z#bweaQgR9jp|GB9?tOC<*S4kud>UlMyb|~7l276P#f$DuXGf=MR}Cgo$p8=qig=l4 zG1ww22SEPe(Mcr@4L?-3f3(C8XU4RQ_^hhM0A{JMy3YRT2Y*;m6gn-;%I}|q)1kU* z9pyd4`j`kmi1KN*9Tf0k*BuG2&Z5+%NCVr0O+G826RszCqR?&yU zM1VKnVzps-+tnT=0`)sqqnMHsX`q*Yp;D9gu_SOR+ppcSjRTj0|4&D2it9JIp z+R+2Pjj$KbYdtoJ4Y?qvs~H5vkj4k%(~gvN4OhNF!qKQLgJ&zzw;9({Bq=P%_-5}| z%tL2knUl*pRjX;o9%&bNF86<{^dabf>Um z?Y4{QTuzt>)b!{kLIGExI0_Wl1W_8Y-uLAIji{}f2-%vIAsYhp4CU_6o zeIz2BejUqwmfHlXGMb`Omte%4@B%)AY}8O<(Wr*=r>u?TMo#% z1-{SDTI{>8Q9Ohi_U=HV~q<7=ArWPB`>m23(ty#tJ)$E4CDXyUtKczHHjCe zz0l+(Yd(GGnmKAu^p=OeHv3jQx<&ZM`g#${BWk4*mXc-Ed5=*Og{<$F6vxvcj6lW) zKBh?Hn$+Y1x{nZ0f9H7*6zRkpzX`Or3jna!xv%lMx;?L9^JR`2$~oOpTe@=TsEzA& z-Y}~;0W!1kVV$A!OYE{Ap13GRenSH?uz2+SYq&aI?;!(PR)rqy#whV=W&dT8T;WZd z-z-$r*=&jfT0eNHp0Y1lB}|NVZRapyGGTR&XGV%Z0URKe85d=dKenxYrdxApGnuTm zoT%RzzK(rV;P8_ERU=i`2k^&0CPKcS0d$Vv9>KLtV@e#~=7eT_ic`+aAYoQ_ChdH% zRmz45gQALSdqj;w$jg-wI`Ftk?hh$<0xfW2#>Ql~C#&H;!ervSkb=?{yn%s%)@@Wk zs#8h_qazfr%eT;m^TvGLpKn1=i3tby$X=Zf2H=Q_oYMDcEK-K{%sh^NV)7F)fnpad zz*Vf%;LQz41h;B&GFnjh0x71}licP4+Qk$(S<%SQpYVy#w&0ROI!z~(AKl?+7C;a^ z9UVw_#H!d-L|s4zKG0&-?gSa}|KksW#=}sF{spUV zD5{`W=Wv$(x$FF^`S2_U_2_@OlU$#l53ET_+cg*g43gJIl zLw|4g9%JAi)t?iq&aYbL41O$_TP*B*QqR);A*p}!XpPM5=@3nI`${lc6Z2$O*tM&3 zHOCa?FsJ&sPE*R4BGhJX*xsx5$T>hVbCH*=-_ImxN`U~CeZUF~$etdub)ReF^IkHM z0P7qt0YwPx+{G(Fp@qDHT$F{6ZaY-{h&LjQA*O7BN}7x*!OiRQ07wLxjiy87SM@^S zNi{(;xme=d{H!zS(NfI_0HD^{EwR7^GOc0VS+pjhh zNb9K-pi&8fhDSF6Y&99Yj-)<4qbt#&Yh2>^CZ>}pTW9h&eZ}Xa7KY;;q93qfz*f^) zq1DsMLT}GkKUO?4PvV*_bT_a!N=Uyw$UHt3uQneQCCwzEEg?VQ(W<~=0@QSrnd%^5 zt|iS9c7+4_!li|CgY%rSa|A!5Z4bu|WPe@@G#^=U-t70v{*)wGf(gP5MGs&Q0&Rz5 zZg2?+1s&CNpsANCi2;$z=@X{EQniDGOy*0b@CgWp0pEeB>)P_!e8uUVS`FB>b8-2D9=mmom4# zQwe*~jfgM7soC;#qTA?qF5x9tQMM#PTKO2z&^dY?P%qCrp&wA-g-=&3Bm+dU97xIl zM{layztLJ&w*00<#2W>Bwcq0X&?(bqAY-nc{5-DR9R#cc|1xtAozX>8Q!ZIRXV7eD zq936M2F4vno;zSzb7ZAS%&IdOHNU0i|M3x$&c~K}L9vZBOZSUnrmow-;Dj#DAdI2r zKR(FRSx&Ji7$)XdZW(=l*G$bRAN#Ny@!<=dhh`|nb!#V&861U@#cxt7*Q-J%3Yyr& zdR;pM!YCQ7sK-t?R>8a>RS7;mmPWvP%pSs!L zy|?08*AlJRsOIpyo%IlZ>x|P<4k7UM)$jW5W|P^`4;fIeqmc^a*|B(?=>5z{%!@+6 z6BL|X_#OIm+J&AF0z7&tsPf+{kY;j4;;Cff08Tm;h$@9-p!c@p2ISu9Y7YvCX)kTh z`A8#AJy*(uu_6$<&kCDM-ns5i5B=$Sa@rZi^vo%Rd-qDOz~3oknc{7^^}AAlMq7OO zA>C$1Se(l^=7t#8!~Oo;RM93o;PdNvhtu^Co^$65U&y&Q@(1db_!jevq@mW^6+7S? zgM4sy7QX~DVPBXfc&VvbR#P)FIw~7P#+dMVuQF5T^AvY`yr!mR>*06Je|n2W`+vIC z5Z|Y}!lq)_iJDFh#YaZyfy=KT*yYzmA&po%@@YNzIPN{YqpX%o3tw9Q(gRwG0BUvv zCZ)cZ-zR_ru#50s#cUtr>brS%+zdy!j5uLH{~&aB*)p@pcYpSc!X=8cjxEczlXX7y zsVge=%@&b)*9mbI6AaqZQg7j8V>#j4j4+=mHq-G@HM0mYcKiZc%I#OoB5I0{5jK+Y z56`2cCZ+qkqLR3*0otjRzhvBM{9;dW!Zg3|gd=aBSHWVIZ6_?H>5Nv4UUBeyRLQv#jrlqHD*q)F1Ka#`8YxV0G{r73t#3Q|Qm zR=F_j3UgTyIpplPNm1K%NG2QmYtMjOjWmBOD8bLCgTX{R8)R=6WWa}vfJhJseF|f{ zqKWtE#D)`W5E~=(9#o zK@-CZNE~BDB}ZI1cVKnhPvl>&xA{mMMeYpEUNl~+4JyuXc&?B$6yCIPFZWRmkcE)k zZN|o|C}wSHE$+p~ds?|%9r$a%YIeyc&b)&N?_O>lfy2*-6M$hZp09{z=jX9$VSjFH z>O60bvljQVb)(fE$yKZh{rzdZhg-?ERN@yqbSQI0LuDj|V?^NvL}nT|4{-qhCC8yx z-=}}1y*PqrzXT8${dBSIIaSqSHXK9nPq_!R9xfA*Fdo3rj{%KTbNY?V6zZeh$JzCD z$JXh67cZ3fn7nRNVh5j_SU}EIx}*i*VSsYz|IOwvzP`&nj%0gN+2OFrc%pE$==(>r z5%4mdj>+}GdJ-H)b$V)XmI$0-LWouuwo$Rra<#1X)APOhPhX~uY0P?IAz}GnJw7m1 z_-Ubmw!cVpQ*_msQNWaOiGXAt38dBaLFz}L z1blM|Zda9NTnRqR)Vb+(9n~_D*hMJHIMKfP(LyW@M#`}vcDpW})9zV0g$ z4>fl;t9A-hM{Y9L#IxpUe>fU{+32W&3D?vx8ey<{xZ+Ig?XZt9AKzo46T?=>y5^91 zV{}CnHThzAb$no#pM|iO%h;*Q(h@fkW#~$XPa3T}pRGh3XMoMqCXzQV=HKILj#pC` zS^um1HcU!*85z`@PQPaerqBt*7i7GMYdt(t*qfbyRHQhf*X1$Q_>&cRs-tjOWnUyB zk3#JGFF1iPcfWcvvQ-DN`pW~uB$5gDTXq#gz}~Ah58#?AgB8deO8-9N$4Y>6#tVk; z%RHzMFfyf6PVd>*yA~+bZzoHwx0Z2ptB;Q2fe>)hO$yH&E|<`ceG*oL4e;*n=!0|M9UauQu*eGg$F0_UaHR}e+A{9h zcmuO;yyYW8H7M|^tj6z<5P=TtearTYw!=9yuQ8N1>9U6h42$)~x_ir6bXx3Tjy8LB$-&=IcSP{MF_8AjRKO~Z$M z6eXg0mPQjm=mTpsZ!uG3DQQNoUj6%Ian`3Uia-jF=4r!Rqehj_pew^+G(TebGlFKu zFLfzop$gCDovm>+?BXC$No?s4jbEuTv{y>oxUO8YJ8dfg54X3#SWg!K#iYCY`pp7SY#9T!VeUZR&Jnid0KhC*XH8lS-tjqzGin=@2MOsZn5M>&@k)b zW}sdzdq=-&_k3k{%DVDU;M+#1+xm~TEFbcZN8xz-+Zu`iFREOEX2d?_X|2=f=xD?B zvX=uCpVwsiJRV%iV={EiD%}`AK~%0N51Ce1x3IMh-toY~qfNfx!de}Z#wy1r^2ihW zT6(MV;{N)ucSq#eLn)I7BSz>9xm>djU3vv6^j*UE#y{Y$oEzhd+x}$L9zEN3R7EKVM3^@6TNfpudH>_x#a=HgY@gyvIl^LSSr49c+azm1Mw0@DE7L;;M z7E^AJDhA4QhfG5s$Mi)kh{z z@^_d#1xFdxLbpFB-anxtH9?sxaw7J;hbve~iiAM{C z4BU;Z@cJjh=N$a{+i`&!yPZZ%09T2KKd~;>Y$(KN92_=RJB}aGzt7&Bgn@dZ`3~DO z>#1u;G^YJ#{UtCfMFGeQeB4=F%9g&?LykZY7FLFv2lItD#=CjW59`fUj7|A^ThXMs zCD-P5^IXEbLnL+#6CHJJ&2PA_^74hE^MO0mzdwbBzw_kz$aOdRC8N->>LPznPJZDo znOz0ZeNyT!WZL!Cy{oHPdgcL#I}OSx{ga50fh{4OmbtJNjiBq69bpS=>z?hmsqB1Q zJx2BXOG=*=<&de+F)%kK*19zt3@Eo*laEgZ-qRH_Se#e0Ei20VGrU*T{A%f=BpUKT z#J{eNCzir`@rD$HwWuvPm4Aukem_R$7_7#h;V|jT6@&#Vf=gSIQ&oi0D%^^N=aoy} zmgA!Jqm3*qz3}j`A6qUAT7`3(k95_QX+v*+EEM;Qj;BW?Hmez>Mc@fB*SL@1!|Ct1 z^Rd41rY&Y|%@BIncAeYjJO++2P{}sk!z|Kzb_hE zX}>*EY=ou6gxD!&Zf<^EJFCYi`UH|{$E8fc$~}iXAYzvxQZ$^grn|+YDCkhV4?oNq zjF61wP$;tA-%Fx@@wT-)!H&h5q}G9#m#XK7WAg8#p`On!VJovGHP+g z?}`CKD=Cg0T}k^S8ia)87uydZAD`*BxrT&Vy~fF`-Rhw04o0ilqH=&{s01d$|IRQCB+I)iW|;%SV0eJtXXBm4=!rNm1~%uFr7i)xL6_F zxHg^%h=UxpYtz%@xK=!)L#c076h?Lcy7-qnBG^oYaUFURMX5`}%$)<*iqrte0D8T8KK%v3_2Xj}D6YiKe8aR{B1A zf=3_~78X8{au2>2_iwrrSakmL*22an2=MlVVg^~DKB80_3H|5eqA_hxBBTQD$YsoB znvIU8@Px4$*MVE9UsU=8a@~*5J;JrjBIm9AgKK_bHO`g1_L{g4(YGtw<4o|jQepE5 zKJpF;~J7TZJ;pSV79YuB!;sX6JNmOn$J@_Z?=-(K{f zJ%U~dMoH^YIGg$TPl0mx zdaokrv!ag5%QyY?b8=>h8bw&ewfoIK!BhTeeR*)+GpCSTj&JZC5PUin(=H3JvpzUE zFcm*~gk394@tY3eL5-pd3z6`8_a)z3;91FhxQa3Dk`sm2jf>hfs5Z6)Verlv6w?(Z0PZ12*s?@S&M}!oOiB-()b*3fYx5K*^C)D6oYVtxCnkN^P)jN9Mm7v zDziI=>IVn;cw1eAnAFG`3P94B<>HN&u~LHqoMr}g*6$DdRfk}Z4&gj%v`f>3Ex$ql zB@+O;n$51SLXp91;!?fgVF%6<8$WBuiamEg^n@JotY%9)qj;A>L13Bn-xea_)}^0C z<>H_)fzD}tu3KN7?~L~+j-~?q216XS(kNX}P_WAO@DtRQ22f&Pq!N9x&eT1?WUPeE z?nnpkk*bA$Q+jBk8Hh0>5}9N`p$4_MDnC*t6?TMIOkx6uESdzH!cbr-PDRM;)3grs zB&WG%+5<8#j6H!16~0-EmY3_U^iRL(U3J>LqUGS$^S4!RIg@!`n$SNJuo>17wV7|9 zSIQhv)ho&{JC#~a_x&mm7Sw_ST9rl&S%Bc> z68(fgST~>?sXl4;cKVqp`lRpR?ZId}-a$e{^b{KZzR@3}5yRMM#Qs_YzUxikj2|4r zw8|$Wrzt8Uro={KQ_B#0PX7=4Su!PMZw{aM-V(|WM=}4)d(~(;Lsp$hOP|$jtrc_7 z*RasCiLS4`_Ew6Q%vi|kPC)GCJ0r^7D*Ms9oLVg0EuK=No_?_^Sh>1OrS_5CBzW00 zG5@onP_hJ*VgxDM5;Gh~Xb`pFUwxo(Gmh~gA%Dz`0n6o(A~5lxBQ(UV9{W?U|6U4l zsctnvNqHMF$S&&vd1C0Th)M&rwHe>?Bh80uGh!5OG}O8ZX6279(j)&BZx4S^2=a{A z2-!FwR3}f9O{o^;h;8^htqvN?&c^5$$SM}!EgFlnM09It=u|7cJSS#XVn8}5!hgYv zN`|bM5DL_?WZ_m}%{ptMMBPU8OAHLn8h7kyQjth7G~GjZ-*!d}7Xc`+4Ubm~>^^n%BLe4D9GwrSM+qFVXjb zyYsxCm~;>+a6?I1c#V;VE-cEDCfnb5?mk_j7j(Hl+kGwsRyRU7bvFpc0`;@;&$6Ok z!Iev85N%|*zdZ^%%LwC(AZP?vM+Ze-y!#^{CP(x~uYut*Ru>!$7?n4i4Q)Z8XT0MH z_a^v&4q5d!)QFd?ePFr;4K~qfu!m{&@d0~{8CWu7iZ)5i#Ir6ckSD=Q%%nz!>`){Z zGxpsu-%1i;l?ns2LuH6BxG*BVZzZh|cfZ|N+v_b3Nyvh@-Y^|{7N-fr0-+)O?Sbw+ zXYxHK%HljEYb}}ZDeJZSMw@DiPk;P1Jn(8uGbA9DsxsA6%wRX+NWP6h-}nyqN-3bE zAhKM5Ie!Gsf+~j@qFl7YXb53l`ES`n)mMb1q*ChY_>gyQ8XCC%1e860K~0Ov4#

m6n(#XoU}|DtP$;5G);Xg8+|aXV(a=s;WbhiF2hhS{k{RaL#S! zm+5bbN;vB@Ux%+tn~YfF0OD|e5hzi|L5+TKc?IJ99^a68Y#IWUB)Y^qGYNL} zKrBF35XUm;3glVz*hxKg-HG0ols7>6CUPnI9KWbfKcJXj1<0?hs6Al(P=JY|ZRppc;2LUGJUnik8T4n}SHV(yvzs z`9o36r16bD68$KAMhydZ3qokGGBH5`=>p2MD)&jM#mhckSlCH7rg5nn5$O3pl%QdF zn=o8uI&6j~BLn>5z~bq-_{VutOrjSA4j?BZYJ_r4`m8Dk((Uog5N7SV)r%rEK94=T zKJLiwJ?@fAE#itVc{Y4b<-eKM@UFj#TGe%CC^D(gCeIz{&f6Xql;V-Fa%`i;rO_Ok zzYXMr3Do3>D|?_5LYO-CP9_q|yc6nND3i6>kcX9fZ8AW_Ccz%XGgYGniS(6%Bj0|h zWnQZ|!`ai1XNSA-;5e+era)1QWS@q-0E0I*3x!#!FsL|1_Zov=E{vkLsFq)7T^iGxuFi)=P(Zsm;?wjJ zLT{{x;H=~A%%KtCnO)R>j)Lbmc0G97YY41DN>`GI zQj7CH)REsupiM&MkcOdCBVVck2?0e1h~IX`Tnr9VYLh2;#OZ7m199os7J4EvbQTi6 z2bMlZ-ntyB_(q@OcqjsaQcWazjJG=+&?rc@y*dBxr+wA z5&(gmATS^R+LwcX2mq%!ed5Kvl)6yoMH--Y2CVwkfyrFx*8K<=M~S))2u;n+l}@we zCv{;@B5491sIz)*%wYS<=o}pMfB+J#n=fP2R4o(tCH3_$?R?L*?e{hrNQFJ&L4!*j zgbkup*FgE#cXK+rhVO^{sl4Ia34FLOHn2gGF*c^o@H*m81Lqa=-;57rH_I&^$RDC( z2C5;G0-TF04CS19U-9;bXLQs|2JB^S*t-Kw`Uq0n`;TSDH96!`%!8TV=MUOj8u}m( zn5O6UtweV^P=~zYh<%sR*wT@~c}LaAPMJegU0_Zm+T{{^KzE$$(?^fRiD*zN^4C#| zA%+iPC|id3Txuv{z*-;yL;#C_T(d!*?YzW?UQw&%wB-5 zLepWXw%Ut8N{LTbAWEBKNHi)228IVWH+MY>g2K+&niFd)IUYIVV4@!RNF`Pj zjhnzpl@fqYNM!r#u!L;%FP#1W`PBN4dm6xR7EL@`T9yNEIm4qn2iagLrMBU?&C6kL z%JN}D^hwg3IG3>q+c(J^9;gJYS^iAVww<%*tP+ihQcEY%ESexK+gsWrBzA<+<-@OsU| zA0Ao~0cVqN!>Zp5fe*G zQDxfo#CqC;zBs_wH)E&s+UJA1hT&FtLc`X!w!`D)tnuW!G%)W1bn9epD+0g}uCzQi zySTUzYs4|9VZ)Q?81}HRvkRefY`AK&datYd$`e* z*-`x9I6bG?NJkhhU8U1bG}~nQ*^_<4HxvHZ7H7!ZT=;s_XL!&(0Io>S5dJW`-?Grb zLOnU)E8V^6;i?&iSI94D-0=Wr;GL%%{gu{#6EuH0qa?EE21GmUfFGy~>G;Q4$j-+X zsBPOwRH6ayBwV^Gw{bG#WkB}=9QO#o#a?aNFYo;`F7y>(OmYnGHMB!W>{_t@m@8qz zKp4c3J;cOdz#anVfiIQ;IJS3>$vduIEldKuZ7tidRIim7W228q9{x6p^Rs^#p^Z_C zu#DHY8bg+U1>_W}n3gC+D-aW*RQQxAQWfh*TrGEQ@#edQmPM)3tn0K_R++23c{4GR z**pY9N;IOLA7{s}g-czD=u6hiht9H$#Zsx#bBfk7HD6@D-tUZT&2lvF@o~)*qoY^4S4|BdJ|#H-FF80MJc%9OK@p?&FW%nXjs{|$ zSQ>j(7hqt7y#$-HkRR`%TF5JC{WhYqIkvJCCo*$xa24mcSRcps{>U@ZEMBnmu&=jm zM`L}iJc(U1mWRi6Y5^{?O=T*Ts-x&CZ{xh7;O5WGnAdmLMYs<4-1y6>&tG#dNG&Rj z@h|7{%OW{>hVjX?OFkOFnv0<(Q$BGX75(8z5>Qz)7soQoV5bF$=<})Dfq=qf&jp3N zUCDuOp-`$8f_D3-Dq5Pn;J*h*NJvmCf3IavOaLeXX|nQ-_$nSezfBEX?0nY4=h~mb z|IO0)9B+_q8@J3rFdPIRjVRx@r2TVY>jGQ<2FZT8= z23V2dpzhh|`0{wCTOJxtzdRoyVYNN-BjmdM`SE5z))(n|`JRWV)yVQj_?!aJVMM_H ztrGY$(W`_YF;t6l*JebM3I{+}>kwlFygyrY^Kgz9?a$4cyJ~qlVC!?cnN%W35L9+i zL?Ss)Tek*+82cNm%_S>BC`7t3Cn3|s6 zC`h&IIy2Q+-;JZ@bKZPcQ;^s8YPAPUgwM5)J3$MhH&;u2_M0BM#kzmzE9O?>bh=9* zvt3+Y8|oNS@9pig+b!!r{c`Rx4`jW(1VMO=Js5xNr?MUhiRTN=G|*@c!~Rydkd40? zK_S@9jE0+8!`^jft|w6Qj)^Jf*D0{v$+O8W+`LAl4~zF9c~o2!Gi4Tg#barG z%9Q=?#(^b?gf<5-`jadHZGrVq&Wjmv9vctEGjMTmsFJ{oFU2#cjp;j$a-#^n?4W{> z$E%KoG~KCmdBiYbk$amq?)Rnt_WK(d%-F*so}ucyfh1A|w@`WTDZFsWcVv~%>QDMi znQ7%QJo}%iKQ+hv-Mon1cf~(BQbuZ1GFbX@WnQvN;|~|$x%Zx^8NJTR`0ZqsJ%y-V zdaNT~$3^vO3)Y_Du5N1*?^l<3{FXj4CMco1`$exDgr08vpxI*dAD*yJtPthVlC#f_ zJ0lhg`T>yR*1EIgei_BPUS%g7O#ZNnbn-|Qn6*p%YgnJOuS2nvwI-`b2xM9AN1Zs5 zWq9rlVqp=PYHP(fX<2^QkXC(;>TJXzaI2#o+SC4#{zt)$Xxxg3Wa3(s5kc@k=SK1! zA5x)mri_y!=ko2C+uF!KPCn;dii1ix@q+bLSPBdZR#jVY>Na_K+Hdye-XyrS!2tlj z7ZCq2KB07Wa!En_LycVynZl(- zKPni&K#C%mKPGO3yp77#_Mu@Jclh?RTh;f1EvFWABfFqD16FViJHQm>1}6lQ-0`&r zS|=S&l~U*5@QiwkB~npW(v8%Y%|>qoa5V=|vy%0moFKn=B@_r;jW(M0 zD|*2NT)7{##OJUM582f=0Eh#duQ!_Bb<^y6zlzY8wl+OHFm={BLi^UMI^5e-FK%=CzA>7~@yY3hrrh zHN3ZI*x2#|0+c;^R05@KAgzJ59SQ*yNb5dp(Bn<4tmq%!`;z#Ve*quT5d@RK8Xg1! zRb-SP*<YjdjcZ4;VDY1-OmjE$39p?Z+yI8q|e+J;ccRAz*pU-;EK~YD+zOx)Ltq zfQiF}V60Qz&U5_XFg5TiWhL?LOH$|Uns13Fg|jin(WH@!uaFeug5Kt6GEs&8Vi$e9 z;Jg8IR6J1j;~su2Ew}p3kC{VTqy7Pyc6DNU1Hg9GP4rAqv&94jEol~a#y->P3rX`>fBcI&Ow!P4((2F|uJ#H4rUa-&!Q|m+t$KO_D)_Di3+G3IX zJC2yc5;uD8--e+8-bV6${(2zyO{bYLBp z3c+l=Tq)q3!XF+Y>emMMQh;UkEBV7)tgziav|XQ{WvP3j;!XGraCi|2Ek`c(hVwO+ zcRCE9kmK;+0EW!#VRRW{Ai($IgD`80hHz#@SL%^3uE_16ioxTZ%YX+zyziXDuOme| z)Gsx6!JbTdErbhoHr=53s;yVJnn$nh$rSc_;ae3-V%q=%$ZB_Wm`7V?^zsZ|gGGFy z)(Cy8UnA}2vTac(-kbjkM8U1R2LjfM-rTk2c$o8(4w{#RXK5T~juR0hNpybEMX>EPQSn(+gL>T0P zB$x;S=B{O7Xt~V*<|?_Zk9;4&+g(!LgbGgbZXm}FDKA&v%t|AEv& zNaxzghob69hudK+_~D}_@l-E}y7#l!u{}9UTR!72pE4fzVEUfGL2ZNaCJ}PW=08d1 z?vL-zH{$79lwOP#t5ooIrS{9vD=ad9nj$L1OMPJKa+JHGhgh1u}ka50XZwKB#X%lgk7ERIsw#8fQeB$?$0~O!<%4v0)d8O>vl3*C6sw zipK%pEHlXpjX}n+n>*>+zX34{Ypusm`tGZpNZ?XCu&=-p4<&8UaVH62=f&X(_b1jZ*~20Kb7RVHkwDN%aF%(b+(+QCIWA$E5 z?JI*?fdLquxEs#0r0wr^03;Cfxgl2Njfen*mT_@mhR$F+JH-KhiUk7)2b5Mey;geX z#6ssI)w>5Rp+RT_>(gMj?4^8yaJ*oM!|B4c_*v4wvEoMxVe`7OMix)zH%0^yWxylS zi>${Uhni@+&OL6coV>)-d3M`Pw#_U)^nR`v_Fgqb4FV_$IS+fcP9v5xO$|>bd`PvlbtCG5(YI1&>*}1+eI1N0tQ$a|cqRILE_yO4dPfi3S+Hqa z(M*2lCx5_^ft9xXi`V#A(dNnhbb|Q|IC>d9(EXDp=tdy576r4V`84>DN$^6Zx=%Nc zc(^2c6-6nX1E2h%BjjYgiu$I|@2*fz3{}{EvDli(CF$>RX}j#b@86o739lVTf^}RA zxc8GPl*pHtmnSWxsMOSBF!cFy3SrUF=bBaPZx)@^lD(~g-(3T+mADXYh_vasPdc(X zxOBJ~z%JFPf(7yxOyK6?usb3CZZjyq{4X4~NqjIxsG|fRbAYwA;ZotH8=oLbS_B_E zj53lbN-nD}6#jUB)s5*5v?&Pf*KsTT$KE&f>}@VB%E7d9V(voyh=rOpm^3+g{+!r1 zA{h$}*Z?k2j!mKx2yqDtf9hC;Kp|!BS)H!{zqE>t_Tnwt%&`@b9<=9m6jB^?nnu=L zZzzDP{3v>UEA)x3#%QIjm9O$xjBiEE?5ukj1`>%M8o3lsvq4Fe<@W)PP+DrP)e95a z;pyMy>vsXXZ*qD%taz_DGFR=?fr9WT8Lx_W_G>{>`a+18f#KFNSKALcBsX+ zx!~9u(Cz&k(l7*9tY(b?WfP05;eKKnvI*AK5MkfyD%SEt0k5&WJw&_Swil4+Pf}*v z5I2bX#T7cv9VdyQE&e+V{gCq=!IP+pXWVi<7j8fic&DZvA&*P<|7?bBF6DH-FjHWg z1bpw`6EYAk)2BV5P^@IZEL=ppNNtgpTEA5t;@|WPdj4=pn{Yc`(EFUc+zh>sQ zVDt+v#*U^>B;-^?FKLd`l`uGR@OUkTZ7j&Nd6=uB@_wNC-ea%m%Fp<9G!v*)5s&x$ z*=cEzX@A7#ggJ91@hkULzD|{7xk(Bqzn~s&JAQczCG5GMbRt!mkCQPwBQT)!cDYJy zkxLD1Ik|U}Ec@#NUCGJjAC(P7{X3jHPp?=Igv24XiuB2FETuY-141|}n7=hOfLP1+ zhFO>4hXnG})Q1h>V;@Yjk+d(YzNf4JXuwDP!=xg^ukN&8_j^sJE6#AuQB#5?KRySP zn+fXrji}iCm=d&HvQi)nQ`~AF9-wz1$hM%4F;GlJg?Dd%&mJIg|Fskn3-HheNq0$? z_%-tPq$rjai6}-T0lrW$3|fsAJnDd!C!l(fww?12?^0#iMJ2?Q0CCyCQfVCn$Y69t zUVaj1a4oU>Y}*AEW|hxA&!&@y&`F1+`?%LiQ1D$7+rKP2&?OYx^=(m4{>6reDL(TU z(PkqD$4LjMJ<%}nzJp*7pzAJ!W`-dR<8oSSX`%kF@^7I=vl((|rH<}oJ*Oty>xRGG}_ z_5$#pfmb}4*=SnW5^Ib974G3&wHv0HQfBn!Y-#_Zhm*tRi6JSUJ6q}SIp{<}ZqK)k zFH@%7K@mK`SB~wr?17Y$+lbPN(8bR1t|&hr0jQ)>`8+S^%bTABka3dvIX_(S+RQ^u zS&R(qA+!2^!a#IZGb<5rM677|pmVClY``vKbh@PZxAvx{n>aK7AZ0m&<|8E2-nUQ9 zwbhk89y{b%<^#qSVko#%PmvJH>O@effhO9 z<=iUlWta@=d%L$9G`Yl?T6|we;>+X^ab8>KV8KsIgcedvlodls>fTV2IuU*b;UOqM zI&VOMu9!7;{dlf_KR+8@;kC5?8uD-h;^jcYNsAzE-wR%`5Qs%ikyF%Cu34!{E@e~6 zH}x&i-DV!4q(?^jmbKXCdsPAx>aB@|%SD86Rv}R=)mibNa6ncFnJ-yj zBbHpEzTI0FjL*eZz&BUnlQK)b2^^EHm|f{*!6yZ^g>m1HD2<$EO0v2>!a%E>{`m0% zEdT-s_thri&ln-2s)A@Z7O z`8gJHxUWP2#oE?6z&yJCI+;5hy386r+?WAW0(v_`^EQB~+kYx2z@#qKY=dR|Sl-bS zhFj&bz>_BIL;!jzLSWennmRyK?OMx~wLcosT6|P=%gwK)fr0$I)Y8xh$(4;>%_R51 zbJ`y1JY%c~#DWFIbl;c9`zo(vAm{Ue>WupUENPq{|Hx?@TS?1_&i?Bq$wh%Y!bj?o zzMr-ou~om34`I69+jC;2;7I>vdxy zkrRyzL7XAQFM^!gHjt^Zi6rMMCZi8**sc)6Olg0i^ZhP;H<>o)@h>Zc(YotBJodB% zkm(-6W?>dW8!mci!}S61IfPU;^oI*w{uD;9g^#5CLf zR`IOm9jSV^0YW^M3p$X$Ce24u7raD*k6bCM+O@LnV5%VK=G|x?v2swA-^5zK;4@zA zd>zS*{+Z3+Sl}N40=J#zi;AKE_lw4+JxurkvGslZXGCaYzY1XT6Gy!(7qvLmoFfLi zpX4E+bNUKUbp4R$d*0`lD|a*XU0zw#7}69EI}9=kR7wl4;fYC7DMD*hNslp^1HlO2XcSLZ;V{>W=rVgmpEg8gx>Th|_KEp1SR7)*YX1U%8mg|< zRfF5dwm|m6(Z?+&6h<`D;o)+(8%=rSn=eqmBS6|ge#xpc5#GY+Cp~sPu`n9~xSxiH zO|@83nx4J*PznHuZdkkT-Ca^eIURYjgg_vH9dgUPj!Ql>)5@Uc33sf<>yLS}5 zp0<(a^@Y3xm+X`F!n>6T|1HKu~g^QWTEQ;-2P1Ok}Gb~M%Qv$f?*GfoNN zb!@*y^tVoTGh=d)StAp%hC6MrTX;iw0|RB#fj>>?@#4?!-rjFA9%F<#yq`uDoRFU- zCEe2+6#>WhyDf9-GP+d)$?q=G%JsA^!nOjy;-`wmIrbfIey^(?QKnsIWMM(ieQMlL zv0j_^L}%)bNDfTAqc-{smzrF_I7ND;A3DgJnF(gru3rWF9{PNDF8dC>zZfY(p~;JY zI!lps4z;h-(0zWRWMS34J(_wFys+Xg|D8?}Q56pInGBAI*5P39Ul%YSZr_-z+Gy|` zC9Zj!42Y&|c&mTSGrPge4oXQW`B>Hk%z3aXTkr-ud%0>njEqc| zPgDn{l3s~jOoQ_lxhL5-iN@tOk!E@`}L?0jsoC=>Cym<^jnOpnX8A}q2F3`$|!%5R0V!hgb0ZbY@I`mT;RxgTkfWTKca+^WLuea&3R z=0x>VDnL~sO~3_Jt>A69I-|zkU7*}qVKRA~!?J_k>W8^0Rszx0%f>G&eDW``E#FxT zZ4UDJ9uT@7En4c7xbvf71Ns3nlokbs=+JwOosAD`R4omi>y*qr?<=ZLXv<&gwCYHa zpQo+v7xYjT%KeIiDB$uy$InY}3ushnqSziq|MKxX-K8lF%#|}c!BYf<(dF*zy=49r zxPAH-05ws3m42dq^}&O;i7Z+HV<1a4B3JAikYnp>CYBA@XXJ2%0?mZQlq_R`z>`a76x zJC2C4%iEz!xLee%lw6tcDVZaBuI=1%Iv*Aty`z3qv5&-hoWx0{WvM}=`;Yja`5&v4 zlrc0d{ZpFEf8+crc0y1Fs$jxK6S}`smaD*0u;PWFdO?okvE1O?wLzKs1JB`~`iCKq zqyUddOiF4Us~Y`5L*wOC2w-@uB}wh>?*2RzYW#@oA&gy&G41V+a_ zvfm}E#)fRQ6DdgHkQsDYs*%s7dGrQ5;G75tzov^G7bK04Rm*p(evRpuFP3%upx!Yp z$}JFuF7|aCXWQICV=+qpO5gKk{I}vJN#s1K?05c=i)ZbpmwsK;nK$r2bqj-|w>uyG zZfaY>>}QL6+`gmcb-*p!$zK&eg5mN8*vy+AI*^F@Ahz50h-zd+zu!dqolQk*VCU>4u&{)t7DNyB1XWFR;WbI@loX$|Kh56T zcVoDh}a~n!968A@;;Vzi6ko>4}ot~3<8{PBN zNSaT&l^K_RAc86mo!5f$v(l(n-6EBbAyPKx+ZTp?A^(YD7I@dg#V}n#R{*F3g#jVp zH}oTk+(2c$_;;U&;cpUWFgM(aaBr|t9!_LMd#>BAk7FUrr_pX;fN%r(Yz0bYJT|*A zA)&Jqx)Tk*OO2ap{d@J6r^||7X5N)Zt!gtkijB`)((QpXqg8oaHdDvqH=+z1+JaNQ zA6*C{0Ab3m@80*(2Y3lK`bMKQ7tH!kX&hW)UaU>}J((Z;ZGEZ7@{)nwbYcuKQg>YO zD&pg}WYyP22ek@#`d@Cg>syFGJ1e&t*`TA$`uRZ6?VzVCC<5ppxWQBch!zDCe)rhl z#uMwAZ6&dFnlvmoH#MKk`aRC_RX$UQJgi}EMDs3YXKvVDx4dE&l+vRXU){fhdP%q6 z-?z(xK#{hR{{u{Yh z{07jTUw~P^ztmXufiX5jn;x*jB}leMGeZE8#QPq2S;YXgEqy<%{kX7Q?_1twfQ!O- zUpKFGo|EuOV1aSb%@<5<*s8ox_)!HGnhZ_lp`IRl%!;180^W4*;M3HpAV+yw=U=uP z(f7`<$u61{hK-U+uH7dwobRnL%0I!?E&bEcRZ>EJRwmA4I&R_Zj)}d@2ul$dXF#F3 zMy3jom2yJ44a6qa>E6bO+YjN16TGfc~s}r4)CxH`?cvzU%ujQ}+ zZpT(-LuK2rhUm_Z36@f|*_Z@iOYs0q0l;Kt2@WxDAG@v#KK`a=+yfLxf#xO0goO@hqge+cF$ny8=noNuSL}u;3 zKZ^EfjrH>$Gg@hb+B_Z4;u+lkus-6{*)9YxXV@C+c#eFoXqcbcDEtM(r7TJb5AxH% z*3PP^Ag^C`L@RGJ6NWbIG=-7kc(6G>l6Orr?yzz@c|cGAXz)P>3QB|T0Qb-o)r8@;l@C9NL5DIVzY zBNmV^CPzp#iVaNTCS?v7e6Pj$zaKOFokVXnth+Q3iWJv(auCQ+(`WzsEivX51s(Zt zatD&RZry`I%2e<}pJhQS0>ii5IWN+II0KU9oUapSU;KNtzSX=EKcvtkgq#bE74b4I z!?g1O$<#vt2(nnaJN7`L?AiQG`7`D z3!0dhj-;i*CCO;tT+<^7hDMey4(pPg+H|ECqkSy;0;`k#l{k
$I4(2y7LYox53 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%0Agl{4*x zGT7`w?7DWZ;_PF~Sy2)%r+9L5)-Rp7T~341!7$@HY3KW()o2G1Te)1ea$d&3u(X`%33#o}2l zouJj5`L`FB7ZFrjz`TkX@hS|J$P}1Xe{&Dfn3`a5SuNX7rlwNcc>-@f=S%x#^JXYv z^G5GmuJitQQ2&=M6ojCpsVPNIY;mY@$cNmsuUZoCK~wy@iEsA zd{0aI8I*ug3Ca?3Kpo#~qYWYQ>_)vwPA!OPOtqDCCr9&M_ir(SjHDzxCFmpLJy~ut zgIwEy0ZxWsCl(KcGI zjgKbNSy)>aib}o(i;Rx?KSoggCI6E#nb*zPhowSCE@09LaUOMyHH^Bx|L=Y!kv+Y3 zq?Ls@Y2q1wbdNsq+r)02c4Sm!+Gj6zaN^kfyV(aGN$w{X``-dA?xPD@TRow4n=R2O z_2(tC_q^`mKvtYCSEVb2UvYn+lHw;sATH>?Tzey=p+Vr~dS-feF_rl=iKY|DO+>Y~ zLn2Y41nkLK15v3prxn#qvWc!I%iw4bj^5b>`L7J6Pk*<3>TaUiuTPxBr!e|JL1GgS z#158==tRO$KBTKSl{7bp-(Bw28tu!0k1GS*2z*i;3Wr=y*PK`&lC_v1j)@_}i zGMWVH*ajsqMRoZzUaFwT3IwyZf+HGiS0jN(P&)M!bVz=#^*Mb^((GlQpzce&oU9G% zg?3bR`rLyofrL`o$0$4oQ-FH|JC_t-`8Q{o_z!lt9PiamaPiK;C8wo#0}XC7M|U^! zs#9g2nQ$8wMBZJ;{p|NHVQ-Yj0v5J3QTs*6mj(>N89nlJB+mgKMwMKYwU0B#_LQ9d zC2w2f&eL&w9)jS=Um<%s*rU6r!MnQOm;BpL@5&j@)h%VlgxjWNf#99S{dIp$<`|6r zaD03$U}Y&aKexc~r_N@~7bvH@fWG7>;{?FY>oicqub_hy3|rA`T~(eCeyw_o1^yh6 z&h#{qdS;5Gp{XOk)0VK8)~oq@S*wLVCp_lUDrEglg-H~xHv*)j6!B6+zj!;da{(F# zWt{#-j7rsk!N`4kN!_qv;B+I0(rS>XW+D;O$TUI6Tp)eQGM4fd-NQAqf*Qqla^vAQ%)155xs zem%waLjQSg4ygKQTpmXwK-mYA6cDKSB}I&~xZe_Ua2civ+kTTO0?R{sf%{)^2Y?7S zlaj};>cjlB>gI6=Xy+9b6dm(x0%?C987%T{Cs_|F#Ed~bwS zDgui#tnd6S@X1y#)!!M;(aMMrkSoh)kLC&mb<__BS$$EyU?U~{mZXdjL!p=c_FYf; zQ)rW^HC>DWl2REPs6#dd(xlLoN=iFE05@U3;pKj6V7&zs^rWhq&O{os(E;E;gOq{6 z@M|iCuU|t=AON3RXSc39U-=yQa({YrTYdI|XR>Rep7JK6_|J?qN2y zT@~lMob}XBgF;p-z@r744!v$eIPeX^E9mK+!HR?Xcbrq0QQKOp_8ov}%R4wQgFSK~ zsXz`Oe%Bh0U?!AdH#(QTka-v&wVOdJBWzb&S-}5K(!l-|5l}{di=i==fP^v@+ z4MVAq|3lUUR=rpZ8|k-@x>|-Y*3<1;e7GK9q*HISCID~wqV|Sp+toHMCs_(XXCY|= zbJDC?TOcw_Oi+N!oFD0}; z^8P$60v<&alJUoH>rba{^y)Q&F%j&rL(2UTYXsgp5dgn+%X{_JK#X|o_S^Bb$^!Z}ii_J2q$J=dT2 zGm*Rw`vk@J*v4OZ!;=Og%`p^Ivj|)grVSi_%(vP(GSlFdTdog$xhCRUZi7EtxEHpP zhj~9zYM2!J9z`ZJ%d@++y}eznyqvZvH3@qOJmRI-y)P#~5zP{`h=xR$Er71PyxfqP zY z(7TrXIQoI4{o`yD=J`eULtkhGD%`6FiC0Oz2W|&}>{#8yr5Q+)yQbG|Fnx3@Xu6fI zra6bD?)4NEb%*5r#<7YU_tu001Z~cX(xe$gURhEW@lqx3TM<-XGq!*ste~PY4iHzP zL~h%4!sq1}60nEV+F8u8xLMPLCA2@XVKDe#i!M8de3bQ2lVk5jf4%I(iRmUYt zQK z+K()*(?658fV9DOK#O z%aoNwq2q*MX^&;0Ddk4bttP~?2Q?PpMuR%i$I~Pg9pXnn=xfMz!X*=e%!4RiO2Wzt zZ&l0DJKyWe9A?8EB&xGWw1(ZCz0yTtuG9Xr@@_P%uC0=SFavw1e(t6 zf$m$t{mJ6@3SDs|Oo=}OEDAVXF4hJWNvA?5ZQ!+%@e$zzfo@|!Ag8}~CUd!R z={I^^ER!w_{3pCYs%LKheTgSytdG(7&1`wuiO(LsG!mL$cij7-J~Y~BvJL5Ymo+IA9-|Ao86)&iXV^$ zQ{Zs|l@jEFn{k;U#Ep#J*Fgp#SvqmV*k!!g8{+-*nhxMpK)}|!2MnZOs(Tqx_VbGb z7-s@w+-7238$Kf5Qgs-rOnW$qVHcQ@mdpLw-;2XNL5Se+Vg}SC@T~stVrmBuyUu!v z1qcL)!oci0QZ`%c@V6TlTr@jW6fS#qA|mkHLvbat-`Rm(JYOEq;da;{tfwT8ZNhz- zFLz$S1E<`|5}#8ahAP{gJPeJ*aAbz!52P)1&F7v8@Zb@>KeOy9hlZt~KQOhe;^n1^ z9&0Er5HqmtrM-Wb$5=r9w6?F9BRcW(TZy*YSL1fQW^NVN(k0#9-O@-)HwZ{~w{&;E zNJ*n2-CYL|=}rOZ?tkB1c(`^g{c z8j2A^z8t;9di7VXrtek#EPeXD9}?XyYJzFvbwc!#donePUQ6s-0JwA$1SztjbB3Oz zYn@vUKWvu<68vWmYksIRGsR(s)Xr9$Py7?e^*n9{4Q>KZN$ttA1(MA-Ql}{h=>5wJ zb3y1cqXoNsvt7g!4Glx7&ql0Ih?jfOOf~BpVq#;4Vl6RX_%=B?DNaRZ4KBCGBgX^{ zef>~}g|93*KQ0qyQ|Naz6>O&dgXddw!;xcT%H-HGeC20c&8>-p96B)Zx#&hDf4x@I z@{ASGmfsCY7N(?#JYW7++56`@(cPFIgf%K&43KSZ-A%2eKLoLqk&i#?R_k z?C4=X{tT?sGe@LUtg@pG#yBQ_8O-7~#RkKz|9<=k1AP>>Yg;rw!jIO~5;;1Z)fHGo z48{W{?5JutDhJks_hN?4>k)l$vjPXV?5gqaH&)hzp@>4e$Nw|b)>f%C5{Vkz0^CCW zs~HVKUi-{!*@%Lx6{iUeHhSjG-5kdaI>4O)TJ9M? z{<19*j^pShMl}44#FvyO_dVf_?fGgkO)Bbkh7(O_sBU;lQ!|1+Rnj_8Kb5$?-GPo1 z&>I4&2r&8jYibwhyuEk7g0stV8tr#qA<-aT^!0SpuGY82C_4@K`s?{En^9kgH>%A_ z172?g8qIMK%QzvP(R|vB&BaF{L&ERogS@-rc~Xbk4)knn?-pjH0lvwuvZEs(BC0~$0L?1;yiXL$+5>oiHT8xdTuyo$j?Qt~!KVG@W&FW}E z;5p85=L@t^;1Lfv+wh>?!}``=EP>+l+c%5*OV5R$c680&0$^Mkiilyg9YseK2B6NT ztG*}a2bHx+O80}Qdg(Hw=Pt6b1Vy@(uUW;PEmzy_F85a=!GT6`itbKnI-E=cayY;y zn+tTN1F8fk+t;U8gygwS3$gK4btNfGGQp#)YVDvH-<`-&l#+S}43S_+8}Pr-qH7XH zrpjFEhyYGq%FqYbprZe7+7+`fycf8FVXG$wH;*vJef>ME*fTHPF=vY{)F5YK=^fu9 z`GU`q*nbr~snOru3G$Mp)y>a^N|!Dt7x@S{pw}{yS4|3OtA5>EJE@j(IP%>p+%H+B zqWoIxJ=feP9QTGg9CobviAvI+6fFg10!H{rch3Ea<7_9lHpSQ0dgj7ji%Bm-p@gW_ zZNCS^0Z_BG{G|d$vE^5zm=$i4QpwPJY80~wQ^MxvpN6XZ5>T&VrsQPoMX(A&>!r{5 zkY5kV`uqlJL+WvTM^e!_N=WPFzCSy>yZ%XvF`FJZwU8ejFJm zPFVp=4AlxrHreWOJK6|9->OiebrNI7q*J0y=hc*@WE|yV@NL4AG$! z)#p61#|;dn96>GbpUg3!+y}i7SsybY!$@x2=fPpSJI=|ibVj1Y! zN?RiAYC5vji>@5rBw!qx#p{=Fmp3{L(-&Z=-1ISI%f<4bqLdN>8?$_T!HVqY79s zY-ia*)Qo!C$q8cjnbk{;SP6s8=g~|A{9aJ$mPudsyhb_|2j5C20;_x+NWO-}5bc^Y zmHH!G=Mcuu9!J2z_q(I$-u`c$X=-}9)AkV7_3=uvE+OkREe%4?8ra9?1HnpI&}#dG z%iT^!N=k;}4Vj3|T2cF+%+wkEDOY!>Am!#{k<`o_pBGf3tP4s__3mtFRy$`ut2h1M5@7)M^pA%?dskjDl&~Ap^ej>iOiM+@M2fr6gvpQXuP|D>`@)A~I z#=mIT;?uw?JI4NDf3oiuE#PVe`~u`)IKT&dbR?WXPmEFGc{ASs5P?ejif`2ftUF@) z&!ja`ONy-w6MKD-Fxg=i-LxM^co;)359&n zN(rS1N)ap`MABKdn)5AGktDR-X%e1x)WN9}kmgT@H?TE3`edl1BgdFUjg^q1Qbs81 z#}B9^VBjz}YMp$?dbJhtrF@InAlUp}HFuAigM*C?5Tm36R+1`4QW5iQuoEIfJt>sk zaIy@u?rG8|9St0sk`g6>I}2d^;O3#JsIJ~}418h&`wFlNpWgrBDZKt(L*+j(Uz2CB z{q)HU=$3&0<@Zm0o#n6j-yG2ynV7slSEJYJ!SZSdI`~lmy4PuB9Cm0vJ=<~|Bya1} zn=UY^pd%0L0qf28ogGhEyzWGx)p(tS00|r#L&@OGSuU{;vJ(51#O`8xN6}xURQcMv z3GGku3;QY>S;!Woy1E3@VUWfNVh}&S#vpPAvsuIDK_ZoF2 z&mbe1*Qltd=nK6Ey+b%a1(ynuM+kcOIr(@==2b{qwm049=94CSh4%PYQzWhw$xANF z>*^A7B9U+9ZX!@NeFCMw_pXK`t_Ui)U=l~ze5@GDnlKZ}St2mKCI#g7XV z02=wST)PAkSroBg#cJ-n3n>_!a9C=79AN@#x^B!6FX3ZvEd$GL?(i*+8)*2nb%p6> z4eRHJn%1V5V8mOX%Cj6w!~w6DF0Zl9!7_6peHI4oCr<6He@#vTjXxZNaxT|i589W8xd)w-pwTkRp{BT3>-Rz+P1}_BJ z1j4w~M)M%T)ted}51`v%zWw`-h?t0g+X=I*z`MoMAb&*m2twLBJn;r>A$t4Y8jckw z2oF^MT2-huYM+UMomk{n-YHS-!$Biq$NUYPa^9$5hpRQ?x#9awI9!q*SO#3MKK}aD zd((L%f`CD&WMsq&IKO4S31s;o&?nMBM$UWj`go~KI94)jH_+y@H8c0%1%)NWd#kRQ zXhBK1AD-nHE$$~Ow%&wbs$XT?84Q{+S5WQ(i9c|FFQo&e68m{y(y}jv?RNF1Q!WbD ztUq__X{HU8F)XQws|GF3OfNjQZ)%h&I}Ybr^syL%(ayy@T3T24<+qAh9;lk`lp@5% zHsI~+YMKkb5W83qAShAQFvp3{|VYWzneNcf_TwNuJe1D#1$?dAeEU(*{l8IP2Yn^u*Ef+wcNyy`a zwp0C)5u+{RM$+eL^IFF(qh-Bp#BB{Y8F5sFyTQ2NMNLa@=PC;|UaxWdK8{%LbV}}P z9s~^kK;#fK=zS-MWdDPFTq5VTp7n0Kq zHsS-R?tt4iFxlh$U8^ndyxahbPOt4Gx%pP>T0ve+c(kkIl^7sh@wPAHvFkMJEma1S z{*U39@1uGhd$^TEUmjh7gA72ZEH?Y1fT|oN3POD@9oC8=716y@t;GPm7WS(R;R#~T zNVW^PoJY7oComEmikJz^aOh-C*~m~4gwW3)CoUUXFM6%brTehR{xqC+C0g5aRrThhTvO7TVBfqMX z^1%r4NDdo!7Ku}rOs$znpTbM*m(HhBOQfguN2dk6c(mUa@1$o+a3NNWvrhm<8S#K>IrFEgKXBel^Zpe>>d&`t9*%r{g*qE=?s&-k^xNRt1 z=B<{#eX_tht95GaP#MPOd)sf%f8YCD!Wfoa%iHZm)ja^>^Z-&1M0aC?6x(O-x9r~M z)Ptd=MYk3{isl?C)%w5Ar(@Wh7j4Ua7h7XY$8(lBre;}LmSR)W0K~Vt=GV;@4F)`> z+E|nl6BfOO)IDRb;FcCa`=vL1qOG#w?8?*W%HU$S-5~X>v;B>*8nDL#F66Oaoe!j- zWr<5`e9g3XY`>!g!8QZz=z~p(^No^!4W&k^U&7xS41u*{($w2^rUkJ1S!gKntN(-t z8~`9IEDmT)`JG?l8|)C5SV`*o#xF%IhL9i6Gdj0{g>eVib*uralMJ?}!5$!IWM4Y` zlNv36QVXP5C#J~LchO+!TzdZQi|vo<-$I(vn~tk zXr`acw=ll6Uao}7U;kU}1$m7|IXQV-!4hxdFQ~s(*-(xDCgloGnVm~M7HRnnOcM4> zyOr+7^^PY-pWBbLpRa#)o&yc?c^53k`K>YeUdv&JjHv{45R7VAkqF%bRrK|v7th)A z=s`E?FR{uD+6z0wg;~;&59OE`3=RWvq>ys;Vwiz+)AE9HA9=*>i-cWN zoc;5M1Bkgkre`GOe`=w%OK>+(xHCc5l@7Dy z!Q|jOI7~*WT^{l!dGal>ag@6&lC}9?XxG6Rye=X!pj{X>MiL0#gEQb93{5wV+57 zdp=9(^cV-d)XD!q&T7(vEFX7vcL&gm4K*}=cLY9ek)t1bI<}o5Uw?W?}N}s%%wZE%zyA{gaI^p8Vs*}xs8}2_GsN_*NDi%k+FNpl+ zJsYANEh+3zNjNFqejWMw6!&6CbZEEcVhEnn(J<%;(^;SE#~Ax3vOjZzr1Ka2wm=Yp z_m3^Ew3>4KS)D6O)(1DlQRsakQ4SIC%Xr=bARi_Y0y;?_*f+g5$}e`yv04|sS*r=j zP|+8DS$0ju&2SpXvi2$rUj2o#?}@juE}RzeDRz{-uH;*WEkR}kP6`9w%1u{ys4y^^ zR2ko-!LrYj3H3O|mvfqP*e{j(FL{7~jszR^4?Szo*Kj|1cnsWk(qc*Zw0|lRjOB@B z^vB=}8F}dIt4?!i(=Di5 zAOZ>=Df++Ryrhs62e1>v=d_)sK5pJ4dw$%Dyqii07~2MKu<_9n$AS)!MVti!P5_Kq z8WihUD$_GFVQGz;qG3Nks3uUVCFi8{f(_v9xMKiNy&9bmYDyxZoS%a=5&Q=6m;33- zaL}-9O>Tse2zs$sDh)Fl!$8mn4TZ)i9iI{BDkt$}1s$dUv9HDRB;Ga~Y<}v@_uibl z;AJ}BS!Ou@Nz>up@kFjs@(_DIh(ao(xauH zH*GzianP&ZKO;j=7i$K#{M8VB@xue#prWQGxY6@Cxtm9CsURd9Cecc2g_aiodcQjt z;E=Wb-H3i%g=D<9D|&lA`lm|&Ax%M$h)ck0onkaSpwz4;9C9#uQP;#tuSQrDxXo4T z*HZ7>@r6laSa9!(f5V9*42HMF;WuDeL?jSwgmD!O9~G<2nG`7C{bx!Lve@#G%>N&j zk>7^Q^f0dEVJ$GFy`o3*{Wjk-GBI+PbByW6f-zGjm?v*V(1uGv_gt48K`TyY5sS*F z^6aT-j+4^#q~jx%S5>Y5nKRk}k9nUt$N9wtp_r*KV0387wy^`D+$NwHn)jdM0alrP zs=AoP5auhgY*8Uaq3rH_luf|pYY12|ERWI1SGc@I>IQ0!OaWJXP(~`{vIpZtpmjGg z!%5oxuBTx43R*tksni2fEZ|lEk@XcIDg$gVdGT2vaYq~4>ycJ#hNUxXLzv!?p0t~v z?hB?05s=}D^hu`{ofuq41$0gx!$y87(OAm+x$&KXr;D|cEcNL@USFimL-GzQn>Z8= z!2-^exhsU`)*p8sEAfvUVPH}{mKVlZo>I1G)pwS#-y0h^L;Uq}6_B@pWRxw>ygzdz9z^YGbfuYkpm_q0^&lX?^J1Dy?%UE-EdhOp^Zs zJY?uWF{~|L#9rh|Pwg!Zg~Zct+pwpZxvNa9&hLU?O)OFh1+pxtay+Ow;nB}j2BxVX-7oB}iC z_wN~WjQ!Dpt(P)S#n<_sFa@^c9|%wA0kOvQW;8m6t~@gR{qY~{`J>Pb%)5E`hn!$r zD4{;LEA_fz%L+KpP56Ve{wZ(2?WOzS>jwt5ln&eMzD;Kk=KkkQ0|q4dH1DJ@5r~qo50a_O+F7DT#?nnpdtG@U{&r;&ij6M3bXLAPNr5k~R>< zZlMEx{!#|qrxd)NmTDihB>|54r~6MdK~r|1w<&nPk zZ8&r>lp)m7vMTX!OhoP&u3wjy_A&SnR-t!<7byI@Aef(pl*FB;QyI{RgmuTOb(Lu9 z(4ZWrVQq?Mbnt{~%*ys41&~IT9K!j|&aHkOyZLd76GbVA`8JKHkduiRmsOi8U@;Pk znl;fyqW4J-|_}>Gt&6DvL9xsEtK%BKv8x-pZmyHK+NZo^3?Jr8g7TPal@zx;o0NDuQ@ol}cURDye$v8xy!Zxersi!s3z`zLQtI zNRtxM26Sx!bmj>&gUZn8Q@p{efj+vK&%a>BBd9n z>AAe5vgN@jD0R~`KcNH>#>>&u-NFAL_oi(xwSRJHX%r|6luRACmO^!s)6#yXa$J*` z+gp~`_!d?vkjC7-yHCm?4)>QE8QHosviTQW4%*M6UXKWg|xHj>#TQs#A8h z+IIUlWv23<+;ywUm%ItxN#CS^-jSKoFKnp%Sie)%iA(LPHR^hK-K)l$EQRlz(#(tp%UUQN|i-|fqwMg~gqa`z(1d+;M zRg()msDQ*wy}SrOieEqgv{|rvgeGTHp9KiJ#D9M3d~tuguYD0B5paQHYroVO%M*J0 zvLW^uSm*MGF-bLO6DUHO-0nDUo<}Y0FgflTVa>3bYGO#2er<6T+_{2%G->P^^UgFq z3@o3QbU=tSRq$_XmExKj{AK|G5QXbcpQUH-L;2q-@@}nh`w6E6MG0=bF52O2O+TI3 z-TTLb$N)T${Syu!emg%X7UAgkba;Eu*BR^>aF}yD0RB)LxRvwzktmSFkaK&!_K5y` zF&OX`L#*w++E6bUPWV3jY-*Bm$eAB1&em3Wt6_`(mFrg^SF6>_F`?(m`}MYY#VYjKV>VIp`p;K?#@BJYX7a}gb!5|DS^|V zmHMdE7>j0FnCj~+cDaG!{OLOk>X@8mHr^eXetLLtZ~%Zu_P1OeCg!EE1mTby&|u|+ zD$ODeI6dB~ySaOAw4eB6K zZ^`ffV3>7>gp-7w6{&R!jM#nYLZm*uTfy^ptp5^TKc)WoS58b)RTYDIvJY@D^kiZ6Z$ur$$VIaAEIZblgG&6_S|8hE>Da@qv- z`Nq)bXeNG-e+0sie%FVBeh@qK-!(rc`fQ@uqtecI2DZ+i`$ZpMgF^&UVCIJJ-<@|B z@xTG+G)bR|BXP0FR4VCIlvGGCMSn-_;GYyqdY9LHf>4X(J%P1cIo?TC7(GO{A1GVD zHGTCS!c(+o75y)R{Xeew7>_{B>8=Wtf&?UMh}&nhSZvfMtg{jhw~c1ivf}$<$u0u( zu!6jYpT_q2B9F~)H7Qp_7>KuxGe3mM5aP|{Bwb` zN-CdNT{B{$D>5crJIukV_{-&Ots5oMw3<1U?C(ZscHq_5`MB%&EH{?N zhiDRHzVr>yweDChUg)Oq!RjM-jjsP-*2?BOP$@@-~KP^B(1wp-+meAZ2z43k= z4t(H7h(tJxa}0njE-v;u3-{c*^K3`$qx#ZM;^yJ837%=>fq?-{7*Qk(gMpn7BXzEW zDt^xw#$74C1z~a``AVvN$%pw&3FnP&9_|}`!zri27+~bm+nZpIt?)~hhx_lB#dGQo z9nHpGXA)3g?bzN3W9aGWfwl^sQXEKq$(HWu$ySxS+gc?t}Rz+0JUVf`??YBRi z4!uh-0dW8nVNQ;0UrurD6zRJfkQb%TZ&_st4KmC)le&H$&P|C;VvL?wjI?m#-{IV1 zuv^L`9`&3cliM)_YS$P#VguYOQ#7H0bSVw?{l; zZ|L_Vh<;FZj^7I_O#NAiN=m}gfSz5fse88x>jV*bAbBORx96mn5P9TDum}-3Rd|6QD!o&Ldc1$(Ktu^8j&zd>H)G!}8zt zK-Ib}OQg7>N`-WrlJ-(-ukxVY%l zc*zVt>&H{(-64Fb0Y@;D8LNOe`j5M*OC#4(}V?EK)X z%@bG&J=WO<(9oY*7u`ZhTv}wVXj}~bbQGy?e4#CN zL(meWVA%SY=pu4O;`;8I0 z3ei3g%+Sav&V?I@FKxXs!NHsiFIBOQX6*C&8v8yJGptlM10|yXR$TE~W{e{mPE|Va z>lEhYwB>(~a)e9!uFTS1?TcKg#4@5e+4)Q|s_2vNdC<9CRxOjAOC`fTTv0U z!PVsy5SED(j(s%M%1mQvEH!`1F&h1JcjtH6M!G%;M5vsr+O2|dt}^~oTH1vt%{>pt zzU_K3b~~ce5t8tD z?O5FOm0;~@^~MQYZdD(fQONHnBVWyfY6soUBqU-UBzSl_CVJ_G#IBCM!uW_?BFC*{ zz9a=t%X??rDZb(iQe#mu%+HJZ@{iIMHHVw`e=3_it{6!MyFtos9pItJSZn)pMb-lhx`CT>B5T&*{=mhYXt`}HIC;CzTb1`|t;$clOhN6-%+;fDWE z)8viz$EM#-i0Ga~GZz(m4CXu}YvhGwBORQsXk#~`!rIeJW9ZZogj~_}CL5A!1Cy(( z@pf~J8{V2f`Is?!Pd*A3DsdpXnX4E#vacmnM6-=PdC;FxY+s(9vS$wbk9 zN`MRd2n*zQJ-(|KWG~$4o4)*I8q}?DP#?2%ro76qz%oX|74x4QiW6KMdOvyZ97^A--3e(oXOR zDS>{x9TWrXt@byN;yO~q?|Wks!c3?YnkZr~3lKGr4zw`cq4Dv4#DF_k-3B-0t{~m9 zGl`(}D6!uLcK6z8@o*(`!>Z_o1SBL~cD3yhtE-|xn1KI?4>aANe>6=HgK zz9WysZrdU=f-8vxHrCGfm$sMJSEgX3KmXmA4`_`i@>yg+cZwLX<13Mgf`j}ASwlr? zSY1BVpjs3g$(3`~ZClq4Dzfw)e9^jF)j;_vJryn{@*$#B7aAtTv_N5J%(H4s9W!Yn z%0XyEFI;Ii+XF=h$1eN4sy|w4arjUWJe7gF%ggl=Ss3nr!jD>3QR{bbKqo4}>xDWJm@Dbz_^vMplB$rC=3wc3}+; z!b;~AYq1AC5+RRR^$aVl!tYH@e`$jZo~tXuU^)s>25LsI!_5wEqH@q-#rZNz`bl}s z-ti^|(b_d8!PNxc>A!HTqw_4*iWy(L8PTmYVM`;R9SKAGxgwX-&r7%UH#8#ad?fou zhVn`sL5!#Z?qo(#Pr0JJajXxTsF2| zrrI{NLFd!_w`-w;WWH!PDL8cw#O?n6UR&!D;Qf3ap#BZJkK?rXcJ-+z=5{lq;|pE> zd^Hr-Qlm*sF?rorEPea7b9bpn(rH( z0TxWu0~?9svqpHRE#Etu90{7sX+k7y`H-`NLoR4S;|U22gdTckC{j|=Ca?YEk#`az zS#2sE-}cjF@b(G)taaD;;J66_3OmB*#Roj3(Z`8jZPyVNK`*M=daOA^}55kgl#2?$9!&J}MV)A`nVg|U=E zLd3vd)EkY*wCuv$=S62o@4s<^=iiYDrKq&=L+uEHkSeafYpAQraGk z{Hlgk)>25T{!w3RKb?Pgu1Ln^L|_kymbcWR`KbR9y$*JL2@!e7;zeNBD-!y1H7N{3 zx`KD&26p^D&w~t-32Fr7_2{%3|8zBhm~tvJA(8EIMv3_z8@}su9Q@RN{`zF9hi{dd zNMFI1_aEh@E5W4{yv7)>UVfD(I5ma~d=` zL6@oIMI8F{)CInA-8=u9C_K|ADQArs@ccbva$zCr-#>d$R;(nP3{2A~b`fZu!2hvK zOhga+pc_V!rL>urVJvGd^$rYTBY`)h!c*AmUb@9BICPfmstd}XrYUxD=~rT2UK~&Z zAOLsPKy?nEx^pv3eqt8cm0xC3W=r_z+=uK$TX|wpJO{(@*lVQb;+N|^zP4HPJ*jNx z$qTgGe{YOGA3RCbiT-z`g+Z)o$8z!MH@dgf9+KDTZ=cny3e^(We`w9DeD>o)wVkma zKEr952v~nmML&+if<+DIAIW)VL}uKEu&tb$LVwN?HeklF$zPA6us;S`w0CI=8xqZd zqp(oxqRcHOKacte$jJ+a35eYd=QM_RC~v`y8*}2fC$t^-y#E4cZjTk@0Nl$`CSPK{ zl}@m7=UrQf^YvQ#kg*s!UjEr{Gu!?C+Xi~9Nn+_o56r^y=a4J*CmjoNWJxXJn**|# z^7=9Ee5Fddqua1TQ|uPb2LF30-98o+Zr;w+{7<6|lT)j~fp^b0Q%iG*gYg>+)&>2I z4*I4G_?z_v_DMX3D#4fe&H0E+Q5)bJ?seFw|4OO^i44%}UC#EHOXnrYAJlYhq(IWQ zMiADWh$<(d#oq4vJMugFj;qeja0oC_-L9-X847p!zO|ZQhK3HNYg>7|ts{tti~#)3 z0P=BVmiZ=AoPeXXC!uY;?O-~d@9N+_v9z>2$do+R`nB#&1}0=N2?5)lr#gXGI$)|m zOn(KGv>SaS(s&gX0`Z|hBAm;AhA#{OyH84R%0zkzD>9s`WV z)JkY}PEKSE_*rptcQssXN2}e@TbN17HYaVgu)e-+0jgy+eEZD=n^$@O3^yN7QER0l z&3H~Uq`K_@4$N-4H+tpjOnYU4T^6NguiKpWHu}u>Nd>o8)--_EhjuO+s+4(D65MCN z7J!$CjbAuX9uusP z%DEaa1Ac@Sp6ie8p#no@OfyQdgss!0UjBf8{Ps%&W64>!CC2wO%mz)E!OywM9HKLyDiJLiFZzbX2^(i($dk{0-JXU@WaXvxVHsl6=F^j({E<)y_rhKoW05y zDt=ohDm1?WXn-j%xT8Zfm){v1j3aXQDUu;poK;-$ra{_{2Cf*)$-nrDr|tgp&pqBj zZa|pUtn{sRFQoqGWGZWTGjqc|LHJ}iD}^xQX`6E*Bp5sU)sFb06C=WAXzI#t_M;^~ zWXweLKSPtIeySb>BuZ^zCc8vTPJt|Wn~fxJE$hBs%g&Txi4zlxO?y+#P(GEFl_I3- z4+$@4Vw-${7kuij#YALRv;-35SLLH!*pC6f*(cEvjtB`E_BM1cE>Y@KAJFG2-bF`H zkrtX{eTXN3a7}tvha)Zjw}^YIO~?}r+3pyn4o7cssA8z+{NCh|ay-mcJ{o*oUK%Zc z^jR0-o~6plkbztHnt5G9^Chc(@ZfJ-S8R43hTo{}wol?yvfNGk^F6cyJzJ=QzU~hv z%KX5&RyAEsIQG+bMXB9H^A-&K+kJ3v+Rg;QqTy`$0>UtWm=y6}Hs)Hd!!}D|oQ^By zz4Dl@{P8e6;GM-8z8<=kqe*#r=yUE*8c;}LW@F~Li-ZY-PMdxD{2rI|F0QWsn`?O8 zZYVn$z6Jd?0Wt9)Fkf&0Mw9K=p1P5V3E*jiY+MvPz&t+$zBuaEyEKn*m@MtSM^Zn5 zH%9|=APIdt;;tZpi(QlcZ#zYYe?X8Gbn*n^78mBl>bh^%M2=}hbSBeKAqPT-Wp_p# zQ~**C{P;71IohjAd`B_E-zwOP&0YkKno5Z_`HUm2xnzoHho;fe{OrH}q0w<@q{&Gq zL_WLEAs>#lF527Se*b}&q6lUUjcfdJhQjklZXGG8<5|?8wk_U*vt%BdkvsOjL7KCl z-n=Q`ss&OtDLm`%@6T`SLFVuO#E90T+zetpd%%k_x&F7nSoxwE6oDO_4R5Otx3yIa zN;Qp!R7M1uh_mFuw;!T`sf;R1-V8hvFu2q1iwtNd+zw~~Lpw}odlExRBex5eWLt7f z9};S>R`ZQCjauU^sIWd}#Bvmb7uUDO8Zv$x$6BvkZLf$8{Nq(^9{T}!HaF@G6F^i+ zbDaZum@=QJf&G`2&`kZ1M<-P(PT@3$g4q3)b;70G22iLAuafs(8PoeS`vlY?C%iph6o z)TbvPs=){h+byNVluXRXNZ2dzeFLVT5p*dWE5poCHVV+PN%BgYVAc6rSObbsyd0Ug z^o%1c;VJ`OIvruSQXR^N_ql@J*rZ2CnIgWtKr#0!RyJty!{XuL`y-rXZt3I1#gW4K z#_RNi{z+|ko8qEBW3OdTRJuLG7wPx++fg;;_w~WGblIxxSMYybq6pq*S53NA%EY#} zK{z`#{AXiL@n{Rtj!)YVP9RNY?p8H5t#T_h3BEz$7ESFx>NNzb)e*NT_F*f37LCn2RfsSfz?{?I+HiD*G&ZXE@hZ=R)$M zUQ3EW&A?2X@O_lFKgWRF=f;N5DWC1bA}tDeVb!7@J~_^9MvC224$#qp0qt2|K3$#V zs8v%L73%XDknJb=lX=qq2oy@ES-kvX}a73t5#^?=iq2e4qP{}nvC!WCKLY_ zGWi_IZrYI9Wy;_qSN{Yhzb&~{-s$Gu#4#NZB8K3}=865}{A_^ObsHGJMIk0e9>3LP zj>ZZroJ3Mp@)JHXfuwtVJy8K6Q;8N_&2gHX!v%Q4hl29~5nn{9mW|Db60sAr_yR?D z*>uBnnd7IXunbx~(9Pc!KhldBo0apB@T5zG>m#cDXJ%Z2z6JYZQ5buTz!C}!g3gM` zUy%45SGHGWA)%L#ir!R9fHo8J*aHIwq{u6VE012XaXhad`d$WEe~s^!m6L-%?OAHJ zyucR*!I{uObS?ByGu&^x3E-~`V&l;$({g8aVF+VV^}%ALxr9)s#;6;()ss?EV6z^? zRaf~|uq9BECGnnz4%hAk@aZ2DOJ2X;+N!>;E()>s(5$n1AASWvh}l3LR)q?V`%ehB znmHMqMUjJEj}S}z#&UxJv*GaxWqB*$`B9)PU_Hph_~ZPKDDnhGXr55)qb+%;Vv~H- zrFwM@jZht9Z$fa)^#j;Qcw3tR)-JYTQ*`k-kDth3ql2c_nmEuz11V?Y$$UI8XcyJg zkXb`gfq>;39$7F$xW$Yc{ZnGT`AQ548UywAvLJ* zd7K{x!y8#c=aLIC@lT2h5G7eD9oq2Jh?ZUbS4IeYSJMqf=F=Y^L;N5Y%NT7hPhM)r zC+AR5O@XKnQwgHz?ACoCAEc>?KOazTyiH9%vm%ug*5sIV;Y$wj>d6h^ke&;M{X(aq zeu|N{G;pF{G3HVt^pqnMEaEPdx(a(f5ff-gY8j|PCI=q+%l8^hk565EXwqA8Whmr7 z4s`DSbMQE~l_=4Z3v<`Zg!92)t(F=RLS|fS;UmGiDSI$b4*N_EFRUf+DTE_O>+K}+ zRxI%D)uJ8389^w+b^7nwngc|4OJyZ*(Tk|%?}4H7RtnDT6h`0|_=~q@FRlx_UNxwo`7Xi;Kr((fm^(!*xX0D5HKJJ@jEy~TK`S268u*%#kpX}o zL}y-T=?+C+vdEyuK#x#r+3`{h&s313Zxhc=FO}qjv!hB=pv+S0an~rEfz@)QNY(x{ zATAgm3b2G}SUJ!i|1tL07t1-X}8!m(ejQWmO~b4n9k&6e8MBT zVsC0Bo9GZY13d?Yz10GW{{Q}e&Zk2(|I8Q+CXVV%QSf|hP(9&h zN7Jzz(sW&^UtOxZpaK$oaG~!fEvXIPD!r~RJT+%5syH08aK#%qs8bzosx%zD<)?qU zUqoR9c%pZe)wTX=I>5pG{HHJ2T>6tGGq-;p_D2i%ZrW7132_NNS*)G5cvQ&D&-=Is zsTZUx5nTgFsO3_5hchgY^mBqsYopWv2;MLo?H5MU-YvF?;SN zXxMbdh0ynO!y-CAXtRK|RLx-pFD9n$X-XA~ehXS3Rg=pR5rO4_|5q~d!L09AW^Qh9 z1us2&XVs1Ys3|EaxeMlc^EWdofFO@9oPZ!ic^y*NbJQ7=igF-~Q-o~Gvi9YSvLn_c zwrJN1otBOk2qYBp3(OUElFHi|bqRjA{UAcu{?)7$05OuJO6mg2wX+UmA9Abl+(c@b_`L3fXUO9F!IA*@Ek5 z27J`98yKuHs*)Uu@RPH^d%=QQYg^yU55&p?LE97JoS&!$sFHaQUxfaUA%9{oNW!t8 zVU)}2{zm<2JNEwfofVAue;hR*m!!l$g&o`d9b61_Nk_NNC6T{%VTZ|KcXJnu?XrH{ zw~Kg@*)+jtmP9d+=dv>~fdZ2NeKHFhP#nODZ*o}k%M3l{f?wdB4&;G_tiZw>0u(o- zWaA2@AAGAa|DX;;OCZ7fL4TXH#GZ!&z!_PuA#~i#tPuG>Z1m>pC`$6D%fD@w^IUMR zG$q-O29zqCY_`7s{&`&bm)OAVI}B3YEqyh)T(2P28TwiHvQ^pj_+5V^bNGkwUgVs>vi^YEybYJLL==_wJ|B3#$)D0Fyg!Q_4QTPF-`yqm@3^4nAf+E!;)|Y zjF(cooXFQ@TxPQi98zXfJ-r2CT*-pB1L$@G1o31-5jUyno3P}!Pz2^*2F>|>F6moZ zeNT&wAJ~DHIiV(AB{m@eS!NoTDWw271O*j^-E~(9JkzoP0Ud(r>d#&?Qp-^c2`*qX z&pfKV7c}_2q0VRglf@t@NQ#e*Rb2-u$6hzSMt#7gCT?Qx=Lb6bEug%mg@X2@Pvu^m zG?3v@utgzwg$pS=?aY+9OhDLbd9iL+abZg1f`6a?Ta9;&zP|W`CO}!Lcl%x3I9VJyJ>%NdmEE zf)_Li@T6p9J^LDE^_GY4hK9#wsFH$Mt|jN(oq_+g?WFyr_n6LO3pg&i4tVS)4L^?T z!2dN=sNc`Hq~?#dpb7^xmCcO6yA1H@_`>(|#k!pVA}aa(wqb|hrwP6}mTh2vQwLOt zuiHLgwcrO{2|uEC;X6cOzNE)UQBlVZZ_E?lwTIJx-yfXUyP(}X+?)!v?9F`KavqO- zJ>mD1gMJ?!InWCkM+|x%^`x`t*O_i1w0WN@zfJ`q!WU=_4d2D-CB_<07+XT5ABC{# zvOP-RD1NtTV-#We>L=C&-k{2Ke|v5^sQOYa;>MWgBq&(yjLxx?CoB5ZPR?Rp*Fr{O zEl}+)q%>iuwht-n@{s|7!Y%KO+b4TOWG1X+Wrp#dP#5D2u)}{cB)DjU+2ltaZKOj* zLE+XU&jc7yB+9CqnpG z+7L3`C($*iD?Zh{Qrl=;tC=zi1h3jxOWz4Ny2z3NwKw`Wbzgq6aw%*!p9 z*?AEiC4(;TSy0lk-~E2L!R-4qx*R{?%Q+4F5G3@h4y_2{xf@DCgbLznTo=T{m0f6`JTZVx4dNMkmY!iM3E_LAo$Oh0ne& zSBpH{%gx29)^iu^f`TY>%4fk}pABTZui`|p#RB*R@RnGOTVg%iPlXW>5I~La_0h6NFOVFv#9NE*eAka@KYjDzy;CjTr2 zRcr56M!$>yA4z8!6=l~(;i0>0225(fm1amK1*E$hq@_U+3_=>|PH8~_>6Y&P z&b*<}xarJkL4zzW2U1=q`?4Ss@_KAVvy086hJkHs|Aw&VT%8>jlgb!ztQ6)KnX3 z4bxpe!IB+Naa_-~wWeogV8F8U+6f9982qUS3a2@#`?u$y4+n=2xOqy)gO4Y^tXU#N z8dCSfxKzSH7Z>kVzF9r2S_c#f|K2qBvRlRrTzt(<6Pr|hvRFzCB`5Dae=}QcGfDv} zRtwD-msFkcU+g!f~}eg@2+q>U?GhSs3szAtU29 z>GXptK|_L#wHzZV$Pd1|bf^8ydN0cn6f?FHLmi}lO0rk9~Yc+_2gJoYsC+~787 za===`|Mtyswb3BN{A-wT{@eC1EvC^rpEO{P54J#4({K5G95Hmp-P(uB5rP77>ASBd zrOV9B>^W}u+g16ni&pJ5LI3aXJ@U`AJh%sIVs0+%oN^YcK;x;r4qoipa;(hpzJ5{A z&I?*;pKBW*!!XPb=_nh%m(S9rQp+fZjy2s|qnDIGMX#nfba ze~d0=yR)ZJ6ZX%uOUpzI*xs%UhTTxS>l^f(M#IKApL5?ZLVnNt`AqHprM7LTS@0{R z56glG?CoX*>Iy1BVM^uaK{tVc8EABnOHVp|K9SdA32WY_Er5~Y;qHEAMi`R9l7Lh| zO;J7)a{GGDEmTaU8(Z*V}1ON8`r1An)@h$TnYIim+5^yl@B_PIfCz=|N2L zu;Z*1?INw?MP#04vk*XI?4Rs&X_FG13kL&6}B=}{{#_bPw#gZ4*i58DFw+in9sioNaCtazW zIHRnh(z#aul9Ocp%o-=pDiTYKOIW=+ZUEaYJa+p7CrlHQT) zIqYtutz@CydEU8gedM8gP0EafL#&_Tib_jS&F+T`j;a#_sX#y?e;K}`26j8(XVlVi zMG1V^3QRb>A8ud1IworL|3ONNoVT|!w1HV$S65CZF2zlAb6oOvXGh5;SJDF$JY!fN zxH2?(vyoJRFF6MjSL&Lg7`tMRE=$?m!3sIo!~_6e`@dy3Ot@^}{&{5t_YodcIMvoS ztgUXSUfos(KFPmZ5A0Nux*-5Q%_THzY_J;X3_;11@WeG9TJEs~cZzOR?t5aS`+H%R zWsmF!s9%cp9sbEVCGO^lk!5shg-rj+O4NJmEp5F5zDX5}N< z`)Fh87hvPq}|}y17@gTEV7~G7tA8~^l?a8 zdw|m&gpUPVTf4dqyrOt`coUeIykY@YC_pSU3^p(R_obB+%Lh&E)$~D6_s1+-vs~7=++iiWTg*Tu4LBNgoLbI=<3~j!e zSCBWsz|5D#li~m*s$qwJTMe81P#|UEOl-5gJ?o67-sdFKvoqb*jt+~!&RFj-@k@;8 z@8kB?sSe7G%l4=oEv?t=k32a*dch;8^7=`+4GJr(+#Lp*$*rD3A^@!&n44*V4fc%EvGm1g84Av=g`=65(4v_JldDDS(%$j$7V+R8xzRI)>&if8Me|A z278IW8w%7}S`}ZNGN2N$z(?}DQvEXX7 ziw%EM>KEhw`X7_D{#Io1OAKX>LTfDPB@MY5H-q>TS@At{GO=jw{St#F>}5xiQOnyz z%6!f;eMhItLG^rkK@w9l6+OXwcG@++THc`Va;GC`k_>-Pizowjv&*1@VJOv!>bHMy zrMKcl7=R-mn(}QnPd}M1*mWAVz8+{V9$n}YXTkIt_q5Fgqwkm2%4nl&F$LO^a8z|Q z?*n;twf$PRc*J|{ydJy}uPW+O(4bLS*wjQ$b8{4VHKDcazC;@y4}HQTm3C_X68RqK zzO2=QGH=g*jd-Ua>2-Ov_h3(ic-}cKP`&hk`)IYvHoyNDmrcwiJ zL+?Xh{KS5Q4s#)h^#1<*)u2W|Nc+P{#<6GMZ38QJ`*I>v2?V7K&5IhLSUj&5sHYp& zTPv6a;XZiOfqUBVy+jQ(rze3_`2 zSW;SAcwwOhRp1`-!`;{ecK*%u;hK`v9f7E**z}dQ$_jHzz*X>&&hoH|RH5bjtqjQW z9PZEb^i@@}8^XWBSE3)XKUj1klCbDl*;;qkKWTKrM8j)~-lY`6C+dqy9enQydr7)E znw^-l;EI14WL^gk!?QrKs zb@apUnlOPz416Qe0LgE8*w%`fX_XpHWDx}X&?`rUa>`9l!BQxs)i<9Q`-SR0*3PEl zLGFgNb>rJ6M2!P)LSW5ZaS%;DWu7*|VGT88NhkO=F5L2`6ikBjR-?J>`ZXV)haISBH{M(iX!f>qQ9}43;nA{>=i1}D~iUy zN1iC<_c9*Z2>or;w3YnsFZ>ApwGOH76F3p?N?v^`WlYA0Tv5G}L4PI)hd{HpQW3WgBPNKq}Tn#hU0s`flKWU%cm#}|X4 zw09G_OvR-|-6TF!=eRep&UH7WzrOd*i$rA%9oP?js#bnJc2E7RX`}w_MGS*a50~1H z2prWidGg5_8Ni7~EmwafbjjnI5ZTt*Z;1;kE{|*S@38@?ZLP14=R>>>Bk`YuO8$}@ zLPs?OWkzP#hdb{xJZ#IpIC9yY=UpB!z*lbxlEPkxw|_%H zfyYtUaZdDV^HcqArlDrn%V_Ww&_*XX(-ItuD=YDq9zF$ju}B_c+^x{uA+%j(1V*=C z#kP0k-|yrXo%k?ul4lG;n57}~vY^ySGBhGW@c}n98v78w<4_sP>+b0Z^L`K;33C${ zLcF|U(OF3OCydL?!ZHB@1w%vZ01^lD@=_-MT*WDU>hPx?M`)+0q8=CizxJ>^4znC@ z1zv2ia!Evj#Yj&M6dmTG!vsG*+}P;gpqBaQ_BIrxC_#avI1eiL;$ir;4Gn7?X4jY% zrcIcAtjx^J9UZ4c;O)I~lpT2tmK+p;cV>@J=N4~>Txe(v0lkJw(g>D++j=IEC2*c= z_PHF5hF+Zo-V0P1f0H)wBm+M?B>K1H5NZ8)xDLaz>hEwt-}3P;M`aZDgG^S(QYg4~ zg11$1?HT9i&raw;G3^F-$Y^-TemE>C&*$pnL3HMB-{66?vi%(dU|zdVNI0Y=a4V{@ zogN^PUwBsCi}-Sp(^if6Y~Vlpx$&TBE5d~Ruyr%t+!aRaoq0Z!4rxS=Fnss{1YUj0 z%S1JykrF?$|aZ&2{i4ZDl`iA*V;G_ikQW8PH@plV3M>;oIe?BTU z_Brj*HtuF*oZ2VDut>z(`ud`Vh76XakJJu*ft-loQ){{2lmX5Z-2VFG2QwcjsoydK zffBYdrPuzpF?ey{&+<7^WpP~{2|#pvy?YE80nKoETc6dYU8xueQ{e90>Aw}>uz5f( zmS88R%~;y`O?|Ss|8KWr0@kmk%|~?T^I!rJzyuhSTvZSbIWB~{g!|S^z5taWVD54G z^neS0s{`&TB0wxQ`fRX+0^n)4P@fRQSnR~+kh3@if&~SSKYmGS_!KK0{KV$a-YV>o zhL-*i8g&wZKMX0q75yU$jvZtPMUnLDM8>&Ey~yOA*On|3#h^?G3X8uKz>Vn5-pDPyB~p1_lodH zmmIj0-ZLci@$)j}o=AUy(WX7C`BJ#A6^w{_ADd+WHGPLpH_}C!DVg4MS$&f_azLaFcPt6ZzO*EEXb(muuizU&#?7G*m} zFArQQFXyW4iBwd_u*@fv=ALEupffdnp^v)*l3u#kRvBvjA3?lqkO~zRl(^#oSEnG) z_A6??Q%bX~lNcKx>ZuFPF0-SCXgn~K8IvVAu7NF=a9{-h)^qiPHoq$CJ^k9Y0APDy zPY(tV4NwBIvK~zYh&^0_4s$^g8vhintxGT+Rp))^QrJp_-7W+uC^Q<*0{|$SPjp)t5}St_q+A53lO_<#62*_BrmCQ zGGSExs>)uSSIt;{RTw-nOoRtxx_#}hG&(mJWq9_lBha$LFZ~_K%cv+Glzfb$@WOVR zNqH}k^XZDE^4U7nJ)?%l<R~H3YB(S-i3;heQJdkgnHL0o8b{nqj|dTw zN)YKDx7)41sz^Pj;&7WB&ExUo@>>2CvgGyPQupKa(j%pFs|S@qrGCMktVrAAJ zPsq~ay~c{v0q_FiP{a)oYu^XvOSn-y*?;nS z^l6S14Zmv4%(GS5@l;?la`|x~*mjcE-VN;WResl)jr1>Q(G}ZtdIcs&F9ZGju)#R) zBH^iGzG7BWCQgmr2xRzX-)00v5BUPu+<&15=R!{r5%q&y18)?==82n?#0{8B+^NtK z4;G>q7O1R~UJczU)9>Yez8XD$`6^5cUs1#)_oWMYFbnpjJRhjK{VOjALjr3|$)ktM z;*TGZ@2-B9HD4c;RbtuKs`Y9tpU_WHolw#D)bjv$EqF`wpPik7mwyvjarcA!KbkD0 zzdm(@hMc+&^wmyG&xI{482|HLeNH@<*{RW*JTg!VQvkXESbat^C?#3~&b^oW7Osdp z1fnvzEg8TyboJH&Ei_cFtgJB(%&}izwPI2VIzp_8H#RoPzI|EyTJ)lJPrygDicH7* zpY`Lq^L;DRs}dV0`g?CiWXUVlNwayK=eg*9a)Q5Flw;}WEqBc{mq!qbCWeL9*!ViMC@%0?IiU#s(;6Z~ zgCGDCg5YKO2Yf5yte0jW=DyG#&O`|EIe_(|Q(paXPbCQosd~Gi^3}NMJ?LuHR{8BA zJAlrzNf3kH+MP5cbCdjZ0FgJmv#7sW<4p>>Kp%uKGcf)_sy$q^sCVOuT4E2=#;ertwMS|X z-i8e=axj;McPmIUxgL$m0g-;$bvn#9B7@s3p{R&Hh}ZQiLF$UUOsB)&zkn-I*j7Q! z-Li*5ZM)x;T%g%p702QA_zT__7--T0g5SB<*UY>uvbM)KQ$(MckTLi(+1(u~HV?w6;0KOaubYS4M zB73tEMl)8Je35s16MI59?5R{gb}D{1CH272c0ab%H$INP`qH&$ReZ12aUM!R(e-<> z1}@{oE~mZ#cFAbBbhJny{wJY zieZJQAwDnHRUuz&ZEY3yUPW%ZD&by*(cGHAaRQ{0x4*{6(-MZEzJ2?BrPM1REIQh?#q|i{^tT0LzIw)M z=+ec{5_?b=+*p6xIlPwl{*7W-AD_Bc1RN@n4<@=Cz#Ds@67+jK36K{n3VLh!^%{eddD?T zPXZhWP|)7^%h?MZg!9%o**6b!WlCvird~KI3mMq|sqoIXc8Z_;?$-GBoE>mv!sOMnnycWwl#anoCcDy@(_pT!s0 zl?Dv$DU#{R?e!a5bo$b%cT5ORG>xW2>;8_{xof8IJkII0K1Gxh)EFD=L>xPj!nLWH zJ?E-fI=Xy|o-6!OLm`dLoKxgoPYcV5Z0Nn!?v(w~`<;YDNT(W)>~3o*DWz39q3N=) zAYGUU;J(QDfnlcy&>IHr#cyS<75-b38!3Y<4c~_MQ`a0s4jzNwzkd(>{K=edO&~k) z3Q~5XXh8I zN68F^jV^TW4*!1Z^;h&I3|Wrl!w$dX1EIt9L89&bz0Oi4>P_8$tW2_$ceG!mDSn0F z>n=71Pfof4R!s=m-+L!c!$wG)*2=f7wE=R7uGo?{H1H8GFmcRplOM#!A{01*0e|c~ z^;3=y@e40BB_$=W{k9B}Pq!}o@dK@7OXd3dH$89qu?i1re>F(dL~%cCn5}|BGXYcY zYm!v6#vp!MxGDYi>BCjxW8hV8VgNB{JzFZc^CM?wA*$j+!*_Sh6CV%XD(zsEdR5g> zNd_68oQ&x#q*IUml)5Efkawj9nmnmx%?WT3g}cNS!FmQ9(BR>OKB4Rl$J&5fW&uGo z#&+Z=F)elgk6t46o8z}epL0x0`iY`8$r1WaVvESA{1@TD<@`UqslLP0cT~U^26(L& zV8=AHeR(WzGeq$1>XTsO5o;n%dREU5UmwuG5)H?^fdCIO4Es79#jwujnZta@+8ldw zrV1%~-gzLf5zbcX0e?6hX)H*+qJbXQA(!Z07)GgP>|T5qxK9VOOML5!e!T<$On6{Pj-&Za_{u(kK8pz9X_Z> ze_U(tKDak`s4q%x|0a5UD=aP^wl`Y={@-BU*AP$g+Y+|Rl)9v%mHFsRyO38kz7f<|MycUgy9dz3$4uKpj zbpgHk#4>@1dtmel$O6@W;@A*!TIc|2?17`BDg|^w{MesCf%stkMxI}oA#ufX@4R#W zi?BVZAep-Y%V*M~GCTUI$?JRUUKdio@PbLmR97}?2M=dFg>)mf3$ z)(*D~f<|~w?BE~>)MARZ7R!O%0P&s188`S)NhEl#Zz7|5MKz4A5g zs~6Rq*~(ByF=b|*-CBr9;Pjf}RL?r{XD40YCx(DbkdPP}%60gzKLiEzFPi$FKLeVg z-d+}OO!P4Z-1=hWjy!#u^j3$pT{Gh5#%Fzf9f(k{<5eagEXF6f(Z`{691ZY1HEA9p z$5bvZKxI^Ni7%@o+&9M_eVmu*8Vig-t$HoJJkM3X58|o|Z61^W#FjF}!YNmg)xLK%&>@)(Q~!nI9N^1Ca5H}+>I(jTt2Jh=<5-+E&xu*`fWctIsp<^lbrS{-a;p~!oO4TpR zClU=`Irq@dHF$DU^&`+B*DKI6tekzu*2gATX4)|R1Q0#&^c@H^!GRnggo7~a0n7;G zU~!0wzN}5gxmu>8^J%J2Z#4aHg!^F5`6UO1!1%)XiqUx;#W?S|RYS4^q8)Bh!3w3q zWil?cV%L(dn%12ZW_O&I;P@EkT`>Oq;Ow>O8St$m4^{!%Kt8qmM z%|{iF*^dmF`^+o1Y2ODUL-<~6$vTP+_l3TF{11oo3Z$1iSv|x%D5%Jv$H&EeEXgL2 z?SmGlrCW#hlvotJ{<~J@W?Xkun$S8U_=f*LO6B#fatWVW37QNWeY0z2gTd+ZH<(Q_ zvD4fBlA=`7O)pF1N8-L2JeFXEMnU8XoDH?3hIsijLHI1?d2GTNW>_bNzZ`@7&+0yR zbj|%KHm&zRnQ-pG8p60y6L%AfJEBnicuNWA2B}a$91Mh> zoS#S~{PQ9;^_s;ptoI{FlSEbxHuR$sxiYt~^Mab)|1mheG`ppUK#lBx3N?CX`!h@| z*Ukhg2D^4h zwu|wlFQ?#Me8WXj0906Dq%3N0#{-W%Lvp5oI6XEaU!60CkCjs1=B(cJU?8vg;`xB_twJE`9Imc!$)y@&wtG@5O}J z2=dh|I{@Zx|NBSSZ*x;Dtt?LyB3g5iJ>Z%+7l^Y-H6goD>w41t+r7$Qh}P)}#A6)b zgumY2BXI-9Mk2DBA5?C29(E@Rljl8&d7Qct=RAF2>Q68*4Ino$F#!hwZ{D82%j1^0x9yK^ZUlIm$re${V5$!>yj~=#Ros4 z=1>Kf))Ud!&P$4>PSh9si;-PjvI5V9))ub$yej(hvjwT?&mte?2?cLHb*mhwFsq7& zdUJlK@VPeRQ&`+7!w(J!8x!QA$k2bMz*L3%tP>)1CxQ{KC=Y$;JWj?-u#~uJ=Jw-m zw(*Kg!ta{Cb*eYG*We-Qnza)*>=qnPp{F>kW6m!+H&r_nthcxP-Ba(jh9~}b=?0et zK85?bLy=0VSeX*U6*-D{`dX^12Qi1g+x6ABGZ4quD)8@y3iKyA*tBUz6N+lT9OqSV z!^2ed&9hRdlz()@G-UEKyn2fmmJo?o_!;#8Us>^!$Z@eDj%c@RUojDB^>I?!kGhM2 zixd~%b*N2Izx~uQLt~LesupZ5y66(68= zhh_?SAmu?-G|_ZTZ+O9jF5BaMQeOM~=IorUA2fAigI_tjH_oAZKCe&n>-k0t22mf9 zb#IJ}K1=}SiWOfkxK4$Gk{y8OmX95JK3zxQXAFp4P(p&!ZRM~nF>Vq#imgMa0c$fO~r>k&(GU& z3uSK;ah>&=1W=7$eb6#9K$CUn;cu1s%oi0oLSkbKtAAES!>1!jc@ebmm^!7`ckSll z-aC|LcsVZWm4}9prCa9jnevObs+D42-_|GTh(tUP3oUglBNzU1OU}-SydOL0|1k3< zS(!O7SnkI3G*AyF=-O3q9Gdoc+fc{*YSVDTN;>1haMu%2U^{m^p$n z>}y{BJ>E^ZncllMaz1q{vV5dzyD6Kl@9RE4QgR~M+}Zk&BLwmEe~(t<x&ex6P)E6%^)sWmX3}6a66yH&VwX zBv{_o?}KYnwD6xqkWq9E@Ku4nq=xr@uYEDQW(O*odF_2$6nK?}BweyVrXdK~!aYaRy0+Ts)U9 z`RSTjPub@s`mZ5VJ4AMlZ@RCp8tou5pnd)`I|sZY0tj^+rCnVLvB??vV9Dt!3Tm zAw$$nF&MgiP7Ye?)pNvyH%o0svKt^+q@0@O>bljAlt6B7^xk7uRO*N0l7PhoKOTX3 z?efi@(^^S>8!`m02>hPZ77!G~NQ!9~Ev5#MtqE2rirePT&YY&2I@fVSTHT5-BYP|R zSG&(CUS6n^kQ(wyYGzW0J^MrEN^wbJ@n@^Dar!Lr6&Aqs=P!u}S(_gXC1tOwlt0EA z4CZBb?<3xH_6gna^AsEBZp>x71_0~3`BQUcWorArizOaU?Is)Nk_=8vF^lq z>aE>KJ65{E>$V$o?pE3CQ#@_R$@~>iZcD(_jd2dPg`^1ZgZJh}Y_7%@5A4P}pc+5z z>=n7psNX-a3{lk{&CJY^SLn6I#y*1$t}=O@O(-EiK%013d0V-aD!!erV(!l5=XHsGh3P1R&J1tMo5 zCY#?0px6*AzfVY}6dsfFO<-;yVcq)C1C4DP!_zo9x1smYuX8dqm)h`s3%O&++al}qnq41j3T`pWqH606FrsQb$w+Hd93vthI zNWI0W0ptajM#k3{P2=sBH=@?oRzWDBNzAMyKIBVvkx4zGI6>z@lnEJlcW2^Xg9I9M z(27u^wG~Q1joKmceo!~YcT!$Vd`yl#P1ae1o4vxgv*BUvu`}cGW*Eq5n<^CwASoI} z^RTT1K323(-&x}3>;qHJ@bR4(d3nj=WVC)%8n?x8kdTW~z<{!r1^^KqI z@2>g$u7?A`=Ios?VpuF@_VGCxq6Bqv4Z;4kigwr(c8pA&AN;RKn2D4;y^f2~5mX90Z~=+I#2@L? zSdI)pCIYDFVS6IMSn?pD^RMZGFEvEz*4O>4G4!))KokOtDPV47{cD0(ueL1Ad#)~A z4Fzj$m+MI;h_segAtIfXauT0_`GZ|?-o)Go^*O_|tZ=(~a!R%XrU{QBTh({6Acyzst4ZkBubgT5 zOmcMr^L&16RblwFnE}Sv4_f*G)EQ4r<)6D^0E{RpNVac&e*w0SD!ox%NRS}}(M0XD z^UIaxLZOL;$&g5DAM|WNr|Dn(w!X(z0*U#r!TJx(#E~Y6Qn)OnYsU}th50Mt>9iQd z^!c&jAYM)-6@X1C=+x63`RmrVqGFa-CFGc%C?W&`ysO>&Ms)*2LtP;H#AACvRa;-T z^5^^wJEwBRDE>FIsnHj8y$eY61~H`X&4meGmm!@nNBjvRfyf=lN`u z)madYN7>HZR0j^i(E@e)S_kg>jko4OB^*65hDnDE(vWceMy?g#OYFV~fD2$Q*vpEe z6A~f=j|UbR7os&MZ00QVEcr0g)w=BbYi zd#HSP`rUt-Zqm$|^_XDEj`&kmZ^hQrAO)+kd~RuvUhYs?%9{uoFV6ew_ooEv2V^D~ zI6tEs`;bv<PzAk+fSHWEh1M)L#gWQROMyEvIDCp$gN#@z=9v0&&DJC7Q+Z z1bsKKR0m^?zlj7`pH`T)C*-%C5#IRtdjI1;hr`uwB7ESfoBw3+$A_gyG|7wO#I=Ti zQ=#MEQjgdm4t>Xfgg_l&$ns3C)DxIaBow*-Y0Gn8Jf^1Cn&~a9g^)7sak{CRw zjqmo^nfv;$t7GhA4jj#2P_y-V<$s)|9tm`;qgk8_XX=ytnhkF6V4SkBw9KLWn#aQ0 z;%OgepNEp=>;Be~aJJHqwxFm~ZO>wmiy#LAq z>GEoSw}JUI)vROWJ)!vh2tPcEXU=mR{2B004}si>p44%Q)FAKVAPH3UM_9dH-<2+-zCJV`$ZJlp+w;LRTEZit zd%X}pD}Dzt^TZJ~D(Z0=kJ0!2Qr{%&`>7jmv*`(>C8KvQ#T@N7woJ`PYvhKX$n0{3$9b5-#C%98xQ}V&8)nsznsvFz%`^;p^tb z@TB8Arrkza4#;C3tvz3FJvlr|mkT*ZdG*ARg3t{K-Dl=yS(;5=@PMsCYE(7PYICNy zC9HI0Ov`^HjFi&-D>n5H^TN2UQ&#m{(fHjD+2Yu}1B@dQb?Kx0(6Rh>2zT2RJ+P4^ zy(od3^!p+dfz<=OV($d@FCy|76iX2W9z_NQJ)XBepqgEEk^Mhppz*jPwc;st@#88* z>YB*!{EJy=qLmvMzRkDGxeX?X2G>AUnNghWpbsK>!0r(4H zw;KV6c|u>)vt+Y2^#Zo4U5R6o4KMKoz;M&mHEzOkF0YC>_ZPW2*UQ+$494!CsQJ-Q zTWb!W?GlH>ibi*h$GYs{rKO5-*m!Q0S;N1H0l|9v;9uW@2w+d(0(tr5?I~!A?zY5L zI}c_nVEAK^QvK0a3CUw{mA6f?Y^$)j8C6Y9t%{QaW{LtO3}fYf@qtczwApJ15#)}l zEPGX)2GCO7@?}r}hFnRB(rKX#&RO^;;s%(rSO)6@NwC8?T;O7Kz5BKXE-YlvvCpdr z|F);@t@g#U3p^8~qaN!53nuReT&{e%QeNDv4Enx|#VJouoyopmZBq)A=&;DivJ21w z1YV4>0^f^vvm%iAVGA{8){sJ4^4%&gL(CFlI6E4c1tGL+zt1Ode6za;@8m1N$zeN| z3+jV#Kz(}b{n$UH!4X2KW9HI;F}cE-sh6hqWc7h}+tsjsUSZ*|#UIrDCmS4)j)F;0 zQz36j2<~x;w!SQaU(FJqhhla9RTL8*r9Y`ChIWHrgd4Hg__j z3y>)HUVaCu1vp!#y^;n<6P<#t3otzryh{w9qV6}-XnLW8g~g@$JC6gxQueHSd_8h* z>`>QBtKFOD&0~BQ{Nh{5&&pShe)}?}LPpTt6PID4^ZpB(V?V^sVsdxz& z9H`s<;hcIaLbYC}h5EUPE(IMY2EoPB)&0_a1^l?7)D$7sMw-Nm2d`Hno>?3jrfVGC8OL@Q*i zdi>=vG$->vMlzn%T~*OlzKAcXURs)q!@)fxWOvuO_-o6H-T~l1FEMYf=;z%P6XEQ}3;4sIOfG-7MGvw^H{k0L%U;_^_@a8DC?oPM4h7Gr`ag zY^T_$9UeM`9{3l8nD`1}6Ob;mLAk(cc@rkT2kK?bGgA$1C?d=XQ=W8aJq4&Fj{Zc|< zr-k_0xM+YR4+461M;XsU+SZc0fc$r#5S(@+Bb|$Uh=jzVor9e;eR57;sWahkBUhP$d8*Spq`IGW9z9dwqdiYXnoO$m5 z(W@1BR;-y*(ZQ-m4F-^UuIZ(wP_UjtfPiaG6u=SZ9aCksj`^4!kRV4j`usudo%j7Y z&t2-7>^mNbiZ=0U5))ELMJ-w)l&LEyU#*Vx`Xh=cBgx$Qk8|!#W$1 zjGfHC$+42p!^8gm_>qg`-MS_WZqnUZQwuzEKb*OLN!3c?e|h*h#*KA1AUN2dU2Mjha>orcAS4!$&qwJb=w^2eo_0t@Rbdu4G&8}7CD_1wL%lv6`f6AEx(TfDW@{$en7 zdKS;|#KZ*ceOw)3LF}6)w9D@8lv4NH@yif2xu@1$5)8j{em!+_VwjWo{xj+HkL?8V z6TXQreQ1k}N(#1`@|2?wNDRM8?4`xl`1gGzW|fmh5jqwQJ7IU^$8MVPbz`=2VH<77 zRHR8$*t>Jx1A7XTtR-REHyv#)W5b~sH$tZ9bg9}ZZ{1F8=F{u)c+>kyUfC361#!nU z8fZ@*`X@?Oju9(2BXC!0kjl6!Y_BTbl$(tz*J!dzR zNRi4LI*(lOda?M%6=fZ193)3&XuG@$BI)kW(G%Z+p(fAwKm=sHLag{O`rm;YM|db2 zo~54yqB(JDvr2W1qY?SJxSaT>LZ3X21Wr{tfHoWxzZU?9EeMhV9)Qc$kpgwElP zm5xAxfBG0sY$+)zsp8BN*PN{2$}V{L`NVI9yFChI*NNjG6^%e{E*a5d~ zs(&(P5<^$owK{=%@_fm)m%|<=#*K#XeuOIX30ch*z3KQs5;=}_c{Pt`s5fYunn{Vk zi}SS79U=|Q2fngK0G{C$L!JNL*#90Mzl-ewxMLa`$Utidl!mfDL;*`nSC{cE#zHRz zQNh1?*RH)&<wBf=`a!> z5i8)W$|8R3&=u~`3`B(uGZqux{zA(lhE|@MeM}x;v=RG0>(N!{O(#96qGE(AXq0yM z^nm@Iw4VFn$qkZ|7Qf#?(I+kx+f5=Cuj^xwCpcr5H%Ei()N%p5 z((gJMiW$64kLci6^u2U0!=|?-CkOoWWp{;5#1*|H0QA==@*=luIhUvv(dKGPSyQ8)_s5v7wu+&|%Z7pi3!F;;!sUV5G% z>a~LQw258^CN=TYsb+TGJYtW1v6{3m)zyEd^mNfcGTBT!@SWLM{ZcFuXe?88$Fq z(z)$9R=C@mE}w$We2IZmaqL;!iTSYybi5+bAc_qH;uoyyseE5e>nOx%e06ycziYaJ zF~zjGXFl`oO7p_Jy^-Kkv$i;?`zfjJhPGoI5PQIaENkI?(#Y?ld03%Y{jqe7o6cnt zLf*?yY<&VS{EdFsd=B$kDnF1}IfqyKCwWm-ByvRkF`o&&X*}NaCg4yu!qbVX7MKKn z(5EI9nx^wRR*U(#T-scfQPFt%Qo_Pf2M2lOYw1Xy8vSydu?knmFnQ~~dic7Ju>AQt z*?K5n#Loj<;;|3WX5eX1&$HJPQ-?7#E>9DYy6m=8wj%; zJ+&su)0ww>iIVm8^x$=I>5gnkEOz62?Zy4BKCr{ktxYc_6BZ4ZBnS&q63JNCiS;nB zMkPremq{L2a*klckScoC__3Z#lXnAjo9p!n6G+N|@D3)RixQ31#@WjIiiAR}ym0wR zO;`xmdfCn~fWSkwzyAcJYFMZP)-BRlHFKf#>aik$2UJf}GhiD-X>-jUUl13izv53x zOX~1ZID$dIi1KHSNT^!2pvB;12^BVR{||Lru13Ig1GL1G?{3g-nvMnU(<=YlcReuI zY2DdnFxrF!ue0^XRn{k+-NqbP<4!OmhSGFmPsAS;5MX`#Y}f87u*W1{H&ww%OW{?3 z*T|ew`zACkB1iU>+2qq4^Lct}RIFJdLujX_rZ;{1WA0;#(TV;DL^^5XHb)^w)a zDsH7#)ohKM(RfeB+XxOL%un}&@Iro0XZ(+*vka>;d*Ak^LAp~?>Dow3cejKfoeI+3 z-6b8;DUC>XcS?!0lG5GpVt()cIOfyLe3;qp{XA>k_jR2oPNeqF`U7JK6UzEP?7n`D zVZW*fJqYJ92>w)M$_wn#+LOq}#nBzd~g`K|~P8ALECJcorAa^3Ty% zoTOB}v#Nn4f3;9%(V%DjXWFUB_|2Mkx<`?RC)7bDn>fz?6o(FmdY#?fLVhUlySeMk zd+XdIe5GX-;x{)OO1pIIc<+Za?W~cKZPs^-FTrQ`Iwvdi-#_N_%gc>u9*mr-4$Nd5 z|L~cj*~wjU?9?bM#7e(|X=06?}|3se$UX zc_4t-L|lKN9?9b=q4wL6a>%~^udEf;->uHLm2|NU86gd!Fs39e^-}Eq@LhRgkG#m6 z=A4jw*YiUjTdU0BII`hX8SU8+uoCf!5rhMU4v@{S0aQMAc8Qn4M0=F%h0wp>**#~~SLB!iLe&Isn; z!OgD#Zj+Rh)aY1@4OnLV+R%9PnOfw}%dO!d{fMJ!e54?6U}cp@TueQ-u zx{H+S@F@c0$+ACWd@DR4y;1MHB=l`G`VPfTsLhT2hWf?B=S1V7m3TCAA9#AHs(H9dK-5W(?AD%`P^{$75i%BQ zjp%0udDA+mHxcEa`TpH3I{3rG2QbxzIx8AE^JIWaMj;$#yWS5#=+=mn^`)W`ei3;a zuYq=;PrVRx>$-j``LzqTG%Tw`8P2ItiTI~8XWZKzt@$gVe3m^e5d1)ysF zKkrUB413KnS|5Ul2#PVw2LHYNgM- zd7X;9X`luF&hyoa@<7;E)%FNGwXK+s1o`PiBEiJ4-ibfyP>A3Ym+6mEDg}rU;luN4 zBy)B|Z!^2OU|T{e$$}TK)+c6D5&a0Ih{scs*0(Bj1xSTzM(>D4n0*LbWT(&snrtb+ zG`0BYEfiRtbIZ%4m~(al&Mk`=BzVv(R!S+iQ#gb|iqs1*Sac6PuyB+76g> z5@cU{OUFQZ!MLYCnuwgdOZW+JV8JsLP#b}20SR2lVG8kLO!C{>(9O)uGMzi==`RG= zXz^2+ehrzvP!+dygDtL^lI{BnQ}V6ZKPCo)ml}gmB9czwjrL3+3J3ae+sa5#ExUJM zpMmltCA8mUO1<>e=hbGGQ%MNma)FFsUmgM~m@5^wCaFgk9^$WK_S6LxRH-N}BZ;3x zPp=}YcaDCT%4R{u1*2K#vt)vg_=fOSh}kT)KMcUPgJHhsAK!NxL02`+I#-vqUq8xx z4BQ9$8r>nt;G1WEvtb5-|86m%s*pNb9IVh0t9pg~gJS0lTXfV=A*c$OC>>gj7U_1o z&*4o`l&G3JaA)`qI4R%jF5v~5@JCd=D4xE>Dv%)+PNXPi5RV7b9}D#+)(IABV(o5E z1%`PSpw_(nVIxhjJyZN7T5PdTV*%@0oV5gkFKK>Gq zkkI65W`dH3E`I>r#RJ(UG7@Cev+&^n7baG}aS z9YHUH_;;gfv^2R75y+V0im(MDbVobQViqyLkYQ~N{MB5a8(VTa9in?a?xvcjZhZK| zANCr}=K0n!8xH;${UO?IAGrwFJ_LaA)-wyXqiR)nSc{Z$IW%vdPwwp(5f$2-Z~K_o z9&tb212!w*et2|<%@xndNO1~E>lc@a_J36vOQctn?aV}78z!yQTk8JHIdhR`lg@RvLW>aNVwg{MmeZ^AuO~-N zb*~OQ0tQ`bOE4Gk=HY)8#LBXx%$y4t{K^iZ;uSY%PCZnO;C$*S@$k#Smn2TGNfNHN z$uDjo1P8J%aIJxH7_?CHc>`1?$rVe_1TWE0cyOz-zaGQ}_aa6!+@KShogz`BOMwU* z-3F7HBE^Uh-@QMw0BF!tYmLCJ6Eu^CLUl}kWy+>o4+}oUffJK~6ObkH$ND_UtXGEx zZrGB>9R8*p!KbwjzspO(+Mn@6$1b8!xpM)n_&upQUTNGLIs4ty=Q;ebNu!Lp-=71u z?Ug1)ZAR&twz=3h1?kwE?yMxFM~2o;@IhEW-kJw0JYd`XOmc&{J~`gi#eVcmzkK=- zjUs>LZ;Wk~7r4Bv=Uy3k`|Ca0Ip(qBqM4?zAWYuz9=nm{+}sNA9Oo0!iSR_Bz=ZX! zM#ryXYs~*NH1^6g$&G^TM*Zi}x&gisBlsy$c3!{WNP^ptF%6N4HfCwX0_9alvKmYU z&%DE$MPgz#e`yYAWso62x?TLZKy>30Jjz9(9J$9THI;KeFYGec;U){+=Bs&$RBscA z)#>~Jypi)N+Fm|~x6@{dkH4q*gml~uYn_0~VD>sN6hK3yrK2lB70l>lqYwo2MZyLJ z{Y&SM5;^W!C8B?K+bl_4M1Rz4b;C|n6KHb9oD;0WNHznc1?(4gv1jg>!83dAgG=Du zrRv#&5lO(-Uw^RVU5w;L6g`>&SZjVfD{gS$x8DW+c6?G&-x-lMH)O;RGT1LKK3vNj z6&;gTSNGo>Gynm$69VlZhCsLwy(U=zs+(5TqY@8T#fvMIoa~%-xJx+x zPJ<-0w;Ioxw`Qm8Oaj-zQ1N@x$pojJW%*c=C+p@enG9owj{rtv#|Ak%lDmlNU4r&0 zUNq9*N9GyBRAKs#K^!cCD40L}8r?L}5R<()<>X7^E)AH`5|OH>i&E1mVz>nVw%!&DgN;@Cu^f%* zJ2Ye76f5^Qe>e;ma~sY3Mcoz~vuU`UADag*{2<6$T8i@AvIn_z;}fE6=}3#(24pyz z%x+t3RM4I49Xv*Uym`ASs;tZdUR+l$Ec!tKU?jzU{=(1L&JMZW#1T`+@P!!%sZeTr zve6E=Ov`G~LB0ULos%_M!{-&ia+hGSz9-KVikejP`L>2sCkD-;e=~T)i$7^_K3ElbB%Z}O z^wfX@2JprSXh{8*=Q0!(l4}P)tz}SF?FDT=gq-fg)*0egKOLbQ{IG)WeIGyDKuVJ-R3lzu>-*7~jpd>xWl+SIe%NX?{>`c_u;{n4qjKE_zu9`0YXBfj z{kCchG-VtT6_ijlQtV7p+tr^Do9LB*!UQbVqsuXXG(Qvy^#@zV^DE4pmKM}DFupw6 z0Zb7d4^NNh9>U5BIgm>~$MYHH5iSJCjl~#*?mtmzqU;$%N%!Z4gZLcH9ji4NuT`aw z!^7Q+|HLFZX>eFrqr!>9@w%VB(s#Q;)oyh|c~$^{IMBQGXe4?`?Hwh@M>E3f1?6Sd ze#ivyX7$+>uVVnV8Azk~QcV2wMMPS4gUhGMrwnS4-KvnKP2hFj!}B?q_d$OKN9w!( zHFK&v!+Ikp=yUqwY*oGE;Qk48;QlSXx&CYL2+49Y#sui!v4oyxebcwje}RHAD;2Ax zv{cm041eV;i?9ZWO2~Naz_eBnnDcNh1)7jzHdD#BoJ2m6w7nkAsM@DPL=`c3^ZuIb zsp4%W^`#JktpuN4>KE&-{F|aS+E?=LP`C<36nB~5%;Dvj+Om`DEB_(mYZpz{f&ZDe z`BHTukPne$1l~u+!kl_L2E82@$}7LEQPeXI*qlxb^UM&iCE^%27*BZ!p>yXJ1)Wh=Rk=1Xz>QO&*-u!@m? zxu&Gm#i>8*2@^$`_{pcp8x~N5fm%;mRaI463O9|W_v-ZQqJQ_Q-lhlV=(4vLJ|r|0 zI=LDhZs&dw>L>j3DH$>pbi+oOjgC7Q` zocS2gngbst;B57S-5nZ4WHm5s(ZA)(TVfbBn~4khK!mK+!{0Y&C1qs;&pPyt$fJJO z$D8b_pFd3@LQ-QA!^xhhEo)c)$!`!5Q&(52VcYwDGjbb>(3F-YMOfkXK7s`86w zQAmJ8TyHHD$~3oLNL|{@CXSQ((dIC7FGry zJwiP2o%cG@EwHBhT@YOs3UPl zd3k5kBJawYyK?#|m!+guRh9@h2lZ<_>3PQFZr^G9HDT^wA;#hQz8t(cS8kfR+Y(+y zq7dsuqEgtY0ryYxuAv0FqdC{pocn;`XEP!bXqMvm{MGV7sBm`Hw^yB#VNBDLU>Jjq z6HC`@daR(M{<+!zvsGd&33_Cd zBV|L|&l+5pr}cT#8)T$e1VO(Eqz+%I2_aK~gyGM8?e88ebAsnsMETV=sLsw8pfQb` znwc52*-JSV!(i=O>GhrC>FC|diwIhVkE&)_k847pGQ(AoV(Nm!8}!oFr1v60<@EPVMNj`rabeTETjdl2%8F54jhT7aj{^9&fp-o9(O=4 z!fm?}mHl*Y24LyRqT(H%5cB5c$n+KZs+49QlFh2t$kSD^O0@~`?oH^;o@H@~i|PwG zW~^>7`47S`(|lfKJa~Io|B)q?`wa8z$?GkRisNWFRlLI5Tt$Z4zZ&WIgp5c4FVOBi z()fv`Jn%Nz=MOcaYeXy!+k;j!_qPYpWbw&OD;)xQ6R_?RF)$E*fr=_#UTVlnC~M=o zj3*@(It933G4oZLCNH7JVFik8-`fgsNXKxu}iZt$fVIPJ7m!SLDy%*T_=Loafp zZl#;w6R>`0kLvG#oBGz46=&!beW7-vAyqP~egMe-8PBGcMELS5o%6ftR^=q3MtvK- ztEgb%bv}JnZ?hcnj!A3%#DJS*295GbMKw+&BJq* zV|c{fhjgU&or9hjGI(^@pZ>9GJ%;6JRnF#PN)_^Q`N>O?o2>A%W#65A#bckvdbJ7n z(_Cd=AL?JKHbo1gT|{1Cj-&uTLoY9~?TN4A@{XvWg%E?!q?K2+Mf-VvMNHlC4On4= zm_8`L67Rne=t%p+Hofx6BjLy=ATeL6l$9SVyI;JD_-XQ-bKFbL5h{{s?e!+_f;3amCq?wTK+IJ4Qg$s-4Fkz38xu2tj=GvBkssYPms z@oT(3n`k4y?wD5j zr`;L?f%rjWB}6q$^R7gPXpE6{ljJqE7=xynywuHoqpv;bhZqtz?QGNWPk%b}B$te* zO0U}OlAX_$Syzg3>Y#^lyP`2}C0g33J1G@ia8<(w3{1t!?HePOaZi4hipctQGUfY!?Nb(qk|UrwzZrWZ zrK(EB9GL?m9v1TQMmpTW;`;OrhG+!z%wY?bQb5)5@#pW>aCt)30RK`GSc`GSu8l%@ ztVlk~kDvQ>=~gzN^_8f~WZ8HMTt^X5(b;R!PeoB1<6jY@&|>ZSqCI|N zB_fi=AH|;xTb>b|#35HH8a64kRK#cZP{2JbD{2wJ9yLCS_KLHNbc41g=*w0E-59fW zwa8hV6vWW@Ge@8He(h`ZjfT2tOirE(t&r5sZVnC7a}@u*t3A#KdaS`%><;%cTEyGC zxQvAS1sFyHzZygL3Qoll)9J>&JrW2!7#XO_uEW1De3i?A$it49hQxV~9eFLw)2=Qg zO@A&$-Dj1!`+=C-Cs5_9z+)Y_=h@g)Y_xHwsh{p>jBIq8eE9HkMc|tD@zD2y1tfWI zX}mTzDF*(74xUgvLEG=Oe1j<-c0!-IONxqPfZ&CI4E#%>xQ;>ATP$E7_L(DGgAs)% zDJVs*+cDu-kFatCH}a%L&;8|kcJRH?}xh+kKq#48RCk6$`E?F8a3c#6{`3{gf9 z*$Bp@A{;i@kOIH^@j8vAm5rpnzL37xL?k^uy~^qtuH!;o7KMig;f+^WK z?EKsj^O$5JjDL-RqbRk*(0`Q{%Z(aJV}?e^nz#v;c5V)eYD$hVlu((I!4SsQ`(#mGaKM!YW8JQkhf<}!br>tB9~I89JNo>|$q z6da8E{N984&GCC8kJKCcU#5sI#z#-A{j8V$Jcdb*g3v^<966@{#_{Axsh@d?7A*x(~4QXQ@4eu?k= zy`%Zk$|D#B_Ab1hFDTe!lBOz3D1XAJQ1@j+p8w0+tP-J_?20EsWI7dVxQb{%W-GLi zpZYaDjC(9=2Pbs}EI*^n3|;xLf)OBg0f7fSJ^-kO(9-rd1;{e2_9o5uWNNIkZ+->e z9n`G};F;3}bAVtl?Enn-yo%^hYPVZxP}H3|J&b@fg*n|hS9-D8(nqQ=94auB96v1f zRRjykkQJL4G6fw8Kx>=&cLXSZT5ET}fcgCWd$^n!)~j2BAw62Jju|xm*LS?AIeSvC z0Ra#W7{2S#fy(;brsvTF_eJ8Q9%82tM8E*$EEb?5)cl!JstiYx#}>|yrB-)nVCgUQ zc;P{8zaL26YCL8?TCda+L$Y0e6qhONJ?gWdn~l`|XJI})Tc~wr+8WD7^6Roc$0hL! z4JQ+7vKYMi{t{_<`9q`IIxJBk*!UrVw`BevIq}~i3-Qr$C*03F#719fWl(t9Q8DW~ zVgf`0;91^9VgAAW`;X{Uh(o7tp;`>F?K1l?YHD7(|M3&)3mX1w>&o2HQ-)(kIG}qL zaXDVeQ6e@j-K$YmFg@g9WB1wjjI++@g37>2NypU0lGDHYYSlTl`mk(ZG7tl{jwVRt ziFZ~1)h{+kBjKZRdXBuBD%>f06z(@U!4_~ zA|t*SI1$nQ`gAe3{GaGIzr|rIye}s+lSQ=TgPi?-u&9Sc66h`dadCs69#R{Qm*e}z z5#=QVAc-E;FG;~k6nqNQU}nAgN^~qM2^{EK$+1UG~O+-9*Wv_`&w5jW9QLksE-O!9Xrdg4+G+ z(^h3RUz^naHtQ3$+@z{JvZ${wMKfT22;>uy@>q*#Y9=FNr#?;v9_hh7CGF2wd^FI? z@EGmYevN|y!jFpkjlBwe`S)Rshbx~sd3cPLe}!JZt)x-)r&XTqFDY#%iOfoj(d4PPK0^+@<8SlF4#?hzuLXb6b4)I z08bZuVtNy2f(@gq+h|xQ>}}utj{X*+fii%kv@{Z?4i;KP5|d_LK_gM6wBjXkWa0#u8X^m#*-v2ezh1o3H4K6^CUxR%vi&fP`n`c#0%+55V)5}2MYa`#+6qhd)z15xfH#X71Q8b( zcRT3Z2W?ta&c9e~T6x>Y#ILv;r%iOZU!0!Re41w+O&3H>R1+<1EscTY?50C5<{J5- zNZc3wjnT=euB;wM3@oXl|1xPBN}ZtnoSWO&OJd6Db~I-`VfaBBbeB+MiILFhEfB7& z`w11W3IHhE>({}DUfiHn#j~`K@6=c;apNO73shDDyIqe%9SfWyfrF-Bu{RflCu7IQ zF(93n;IjQ`+*+mI@NG;U2JRF@>fF_P&nRJ&f=e^ECbR!N^4wRWX4w5G`nDA88F31C z;k-EzaKd0Kl0UIF0EE);=)N^nZX(c6)whB#2Ks{SDmESfiJqyazk?+7T-8e%8q`%Bd( zhYin9E>8L1Hosly@D;|K$iYiS(54c?2t?D;_=E_-mtI6zm)vJvxi=bbUvn01_J&<$cC9{ScX257vdKD9E!(jx8LV5j4u^~6J#f(Xo+#q zMBkb0yJlNv?;pIebV={~5y z59W9V`lt;l#(yxm2kL2~Bj0%$07G^^W z-_*pXUE{?EnELjhqYJLqlxy2n9SJM0D0#sqTVc8Pz!wO%W}=?D88w$h4`fY2br*~s zDtGss0`C!%IE{Tc@KMN5?`RT{AgYw&McgoGAVRova3IN%)cfrE`h4&n3ld`%xu9hu zQ4G^5fet@YN6e>LlqQ0g>+r26RS7dtiiyH^%s91QyKFW6L|hQ_;NSrK2ao-h`T`o+ zp1jC*O?hHuR_075KP{1Iavxqfcoom&w$P`o#xsb)O|M*xbKv~({9B}E`Pr&#ZITjs z{YJ20enqiR#XFw_aP$oQhDA4;D^Cy06n1}gr#Z;z9NXe9qU{|*pExXpKv?$+FDE8fyU?CDCIU44^k1(D95=8Tr=4?b2k z)P3&_q^u+r;c5xNmWqT z0O@fcx$nVM7U!;?HIAN>h zO84>eEM<~Ijn4xj9s$0QlNTDur+{K246;96%zN|zNb}U*QA2uGv46E_n-bD1A}C!y zvLM<~;>Y`$kWZGloP}NqxA8y6dTG;Ci?C42j^pHU7U;!?s*BwiqB6Au3axlKr~R?N zWxQ&goGH(?a;Fztp5-zyhz+WoF(uJO?+sLq^fhB9fGfmf(ku@fOXrGgz21nN`Mer< z8p(tS@$=0HhV~DNV+#Jf1lo@VZd)8-UE zzQ6ALenUaUIV%zhry0GQ5Tjq$TdrX1HJ#|6`TGhdq>^T&3*~PD_-3o5A(93y3pf zR@(J@GtZI2;i2|euyV}n=(*ZYlljWO)p76f=M$_Cr z<%Tg;t>O7tgnqdXrO<-zi#GM(uzyW&tGnEgHaDjnv z0)gItey_aD*dcyPXCV(j8G!%a5P?HK1baZmU13L*Z@W1ms_yoy9CdzN?N`W3l%{<*RF9mD-^4P5? z!e0bNQvO!J$N0GC93rZm*TXo*C5dGwvp=AVbcgdd6=lne`js15k(1D_G=$_lb?}Pz z+zlNWyx}7?mf-{Y&S6kgm^$ZFCa5J|<;SE8G&NZHVJL*c&d@oei+%AUVum%BA=hV) zWFMi{)YsP+U}Kx04qDR!qwS)~d(oTVXB1M$a`)c;ek9qzq7w2@XfBU=PFKxt?rn2T zPLR=7daenUC`<`s(rWOZBp0+O>`;Q=7jPEC=Kmm(=bif#3R=?qznq!}5Q*Vm`K^WE zQKWivs#p+Qzg!d~xN)VW8t2>}sJH%IQrRC(I!jqC)}MR+K}OtlcKDrkwH*wojqJ}e z+24*5SITIsM`BSYB8C5X^TO2P?^^trF1zm|EU9xO6GeiPtHP}^1 zjyR3nERn$v$MfpoZ_Q9;*_?^W`*_ZY==YcEB$4V|7vzUi;uswIDe)?dp^Sg_&}&i- zOO=i7LPJBJo4`7b<`(dFP7`}diK4&73BF2zYWnWq$^|b-0yB0G zg?%$1w_2EAiWCpUFnS0J}Bufyl%+lC_vRaNYx3^USkf{RC_ zOs-o2&3Br4Z543xDa>8sm=$nT@StY)%w({wLT-@RgXK2n~BO z8`sn(o-=_MekE^vQEwo(z_ZKulTA1*-A^u6LuzQOHO8LDw7;abMBA;1IXuS&Uue^$ zII_Jq&G_~E!8mP+Sw3edjx6F_?j>4(>Zh*!#jNecC}`{XwET?kVBje#!~Y({_qSC~ z{A#5duY{0OM7eP&$RA1puqFDUc+$p*S?mmr?s0=d=e0V^q$$SB2{xH$Z zu6!Q3d}NwgyCFEE2@-@ug0uxLr*{I_h)_%@6JOB$9Cgjvss5rQZD^{Zs4Qq6|JE4q zV8wzPK1zl9_M<)LyDg%)C;M~*_Pa77ToQAgYv8F(ntZc!Cyeu~?6LNqDq&x_+9uGoi><%|_EPq7g7}%F*~L=go4nX|9?O3>Zd&;S2@XJT!cMN&fyR?tT8= z!%UPqSCQ3R2JnIB9grWqj8Xg&r$!nvgBBJ&NF~=pDYlkh=Rhh4Z=RZYzKSgt2N+); zJ_Nc6gfPgb--Zbl&1mc1uJ$YMyk~)bHIp|x-|}0HI$ORw8{z!4w3(t=YIJP!7%QEG z)SddB%_Gamv#cE0c?CKmhL{kcWUf~t6aE;m$F464M49S-g-YHhU0o?%{;{J}{ zgT6Ej7*gb%!o`J24fpt;lcD!g+mRvJ9N0A4Zz4hh!2OqojSUlwH%c1y{KHS|`}Wi| zj&sOOuthgh@^i!?V#U+FDP7#bN71qH%W05t&h^(v@77+yp5k_^p!~$|Q%Eq111u-3 z>B931!qFbQ`xQg{I7lRw$iX%pdib_>dyKTkXN+sUQVwW2b${1A-Y#8VY=JTZ%f-MS*ytoZp&s+izo;xRX;WCk@HP%ee-+61x|+?VCI zHITd@=2N>>5A686QY6nx^_vrw=Ic?H<%=_Ees$}V`?m_>Go?B{Vsze)3WT-T<-*q= zGynu65Ws2AFW08~B4u8yM}$~f7X)ZZ2}UeBny;@*lS{cMVSHY0e)jNEC&|GYhVW21 zl&>9KNT^&8=Rb={=gM{AAdUL&FM$ICCTLDdd@iDm zv`cwFja9zAQljWlcuLORRaN${Y>U1O&L$j2g`@agR#nw=z4Oxu!TK8;O?_Zozz~O4 ze7myxa;iJN)bfK;5JYy<5WJ{aSSnH#UTJVhy2sp=>%37_iJLH~TW`q^|8>7s^|ygR z-SpB85#w;7x4%-FqR01fVW8S@U989Ps{-xKRG?|Z$=7kRAYBfdo06FW+;I5uOt~OFM^$YQ-?ueAM?YyD_UdaC6k~fq{X%u8#sB z-UAjk=A&6}kbvOw8HVo)h=wh}c1x1f+PH|8|YNv>93VZkzOFfv`B}tylfViE zm{?bH%Dg&dHp^=5F(#n@&Yb);Nzr=g(IES&mBQmR=Qq#)S_F@#UkZ__e%21YX>mpB zFrTk7pgVDEO@X@jVb5WjuyR$kp2+5WfjE$~sY+Uw!hB5apeppA>N~Q;v=4%LyDT~l z^RF&|=Vcf+5ydRA!J}1gP+ic6G+fH_pC!MMTxY7zgY-;qxv%eYT&FJt*x7-ka1Bg6 zBE(33)cmSPKn#&YeU6}; zMBdrmRgD$-fNjjObCUIho16@h7~ zFXdjxKvWnC!M#{qON$U9u>~`DZ5h;38GNR+bexW1$Wbw8N|0t1!e(tZc>8E@`6w_R zQ_zgt*MaSB%c3Ux?w9Kimr`9_*Rrc3(q_`pUxxRsaKfW#M6poze!rS*LF>!2fK@~5 zYC&!jlYY0fE>!($^s$w)_jhVv-1!>v&}Zo1y0M4t4{ zBVB#CbcH~!mVGJetrzpIKH7G~3;vVDQvSh@M?2Wq^Y!b(%|_&c{e&Q>t-UTtL{97; z(*Dwb_Mq8wYZ3=#dN({#~-xawG2nJU#l8UTAyCA zBK@$Ywv~6(ijJkjs;*ghO0M&Z>w#}X@Pqs-6%*Ys6ggrM1v74=(nfkru}<3ut_fa_ zw5HEhUt>@Pi8RXjEc(@Gzy6RlRg(w^RsG3<9df@7B<24Zzh?fDG;=a+M|7 zlgk>OD+*tltauWcn2q1ut7V3d89G`rXKeHFz*+B=V7B1Pi#k#5p1e0j?M*iFzlS?x zDk?P@XEsLZo#N7-OqJeFt26E76imcCMs`OV-jgq@yD5wzJQpji-MNSfZp;5(Ago|J zTB@onKACw8dle=%Q~wj#?C-8j?Ch`#9Tr=DIQFZ&kh8S0>8rO{s&-mb%M|oPG`PF+ z9RPIL^4nP~%lc0f0c~Zy*wkci%*Q+H-!|m6d2^3{eH#k=fkOUIk)tXBc&k5^9nPb$ zU=O}8J)`FT3EM$HqYJ?VjrvQI*v20@rHbj!7yH=NXFKIzmj#8bbSw6w6W?F_rFs!S z*}1brKmJuXwwlD)*ci6Kw)v&&vUkJZicB(pE};Y;&R@U4!Dn{L<J{57w^(@^W4Xs+`7fNgf^dVxx>xGavURz9AiH&P-5bb- z17P4@J^^1WwhD^fZ?-rd72`qS&^Xvy0|n5+I00f3UOyoXf9rGsGU8 zt;^y^3dBhRfrP0dIOd&XF7oe!1p;-5h>RwR_~63(nO8w;5QkO&-O~q#85)O3e1_K; z6hcu&MMaB$9dr~F6!d(LJXiNu`d3cp8ivEe!!f9ON0^d^$r`EQPdXbT-#~QJF6d(? zCl(?)j#A%REgubX$%&fvPg@fstfhE65c1)0_+=;zeAB%-r}urk^Qgquub!n zsCKH+X`4}(WL(+^$tr74;hw*pbrB*X1Wy5Xw!@GzveV*#aED3Od3`OBX_N-FBS0A?QHgO4qHtA}6cpBe-#C_NFooq|p>DBtj({cxhybEU@Y!UR z$-aS7GZ6PHNZ*w^M6M_Z)rzgopYw9OvG|OLAwJ^Mlm*q1fzj}4*l>>j;F@fVdE_W$ z+d|_;;CJ(#Wd4Cu=2}6x5*m2;G81Y?$@h&zpRP);DZt;q44F4p`L%4&GU(NeW(!k5 zu;BHWYB?KX%IK~1=gII3?~(lAH7oRj4Q@Jo@hKjUk!n6Kzn7uH(iB5x=)__IwV!|e zbV4_>K$y%V^iAdELweKdFGosOG}GuN%^V5p?!z`u`#(FX?ES~jCm&GO`z5kX+Y!CK z;~t{QxR00LMc*z}i5vi#5IAFI)oTsYYTd9OP33!26rAC$-S^L+X*zP-zzySS#S=4` z#Q>2#+4DDb9K9N~l;BrhAF>orR+IgD8xVeh#SGwm#g@{*Jl^nX<4-~$9Na>OD@6g; zLaQ07dHq-~NU>nJx@`QKElbOFsgJPkp`OheFR@Nw_K3Q#*t2Jh=_stGlIAlnK#w~j ziiciwcc)%_ZE@LYlHY;eXcV}2eeti46$)xsn!@I%z?VFAGwnPlODuIS6Mw5t?x`DI zEY`|KyDA_hOm}ZYsVYUTBXN?3hVoK<)p`;%g^o1tnq&3y$l&Q6#|skwQX=z0T5rZ| z`<qDHB(}-V)pz>TQZ@6!N{9LIqseH2)0;J+V0U!5;m_oyxboejJaj| zyx@n2MkPsozqEsRfh&m(&N5+&8J`EhsOqG`)|)8=Ri5&c9$kkFDyQA*Z?jm7u+MGX zIeD?~wzX(s-&9P8U#aGlPJcw$S?zXWtk)tG1c!tffb{wl_Rrd7EpmOJXX|Oc*r&>qVbXEF zh|W>f~M zFTbXsfzwh?VI<*&1%5k+=cP4x{l6Gv8M8nA(L2Kw1Sx0+4b{0|0y&lUah)J?agvpN z$JcscV=D?Cqj~gVScxi(DO1xwqjGbpy#6v7bcG6^8wp(eoc~%-=yH2J8NQbW*I~ zT<&Rk;-h?=&g)*@_Pc{4L(L`T-_F|~;%+(p$V}`xvP7}g9Bcu4o-c$&x84xEE7k-c z+n}5Gw?K8ywYLP1-4GadiO3owp8xT~Eic*{Q0($%id4?>#z!CoNSu>3r@;fgWN+8SN zjwktgf=h-$2Tw8srd+L_-!brZw0x|OC0Zolpbu3ATB6hU!%OYuhbk)!bWU}j&vz$; zQj~=g*rF`oIWVJlkG`rvCR~5)84nj4E|>TeibLyMSC@6wt~;VCWed=-hDYcMB(&zC zKplgS2}Q=%nPm@#U$d`mzaZr{o;k>{J6;nNxcc`!ERWvYHrmvioVFJ^NR8O_w>=U7 z4Mqa*hVl0J*Ar~_;hrhK+%RZ}LsJl7q35>TNkq{bj?(M$A=V}mHkSB&D9+P6cS*a+ zZQpnyEtzghuaS#9+$oB-iz|o&w@{cxetvP04?5;Joxf&3)odQN;Ic8q3KsW@XlU1r zHmOw^Z{nvHoR4RdqANbOC(Gu&KP?;QqB5T!JH2WOX-WIY;ZGb$ z8K1MB4^z0xtvEoxD;|ynX7E(cGvFj9TXC#JEU9==_{Io)Rj*T`5k8Os6b#9}KA}L` z7Py3c1O6|f_UA*7qiucQI!?59qXm6`9+g zDQU>~hIf*^%^HC!d_PfhjO#jRR6OTO($mww{5vKmchBTBBHHNeda(SI5xk_ijEEiH z97i=AXZL3i8wjh&Mv__k4l=l5AWB&R!JuNeCw1X|n2eo=$`h70T-R z>XL1fn7d=P-%2ut^AumHU8m$uinMu!o7OFNhR-_W=D0*-ctCvEz7Y`ouoE>|#gU|@ z$?U3&Cvr~p7IbDa9sW{I=_{^PWptG#*qGjXlHmpw^A!8k^fL(jjPnW$iIshitTOqX zUjPx*XXNiVG6nEkPNQA*6-$)CosZskcK>#27T!|7PJAo&M-gpRFCJ%XY%G=Q69L9c z{-F5%`P>bv4<$8%pM8QW!mir&l|RHU6;DrCU4GKN{;~V9)c{;*AD2hJ92@sX(vu%W zf*J;JIyE2gIr1Ox7e)-}<42d0#_gopmOtnvT1QC0Cw6Xn#~OYRxHymrWd|8nBSSlpP$`DN8Z1~g&&84Bnpj`7 zj_Y-UUfZX+VnAs-m%bi7dLUo9Yrisn2)VFFyndCXM{KakReve)A|LC!`B?Y9{uTeI z0XxNP^^0+0IZ;12q^r$MiaXwwtCg$uiN}8vc1_zja)n=bX!*YPkn0z>%ST(aNmZI| zo2k+GTpkJgnG7^TAeche5a8X+$-RDj_)!8)DLkw>_sx4OrOrb(BFe{o{>a9~rH`+1 zt9n8Ej_NhsHcY2>rXO1bCAB|OTbtX~u0^%c17f*$4Tli*bS}@Bv_JieEb4Ab-%FppFnnCQv!D9W! zoRO!8Vl#E=U)JFFLymdclOFPEbuBqPd_<1@y{(&RHh<8+OX@n1Wjkgouc#sJ{oK{E zGnJ5Tcb1INkSTga?#^O6MAih2-(5Z?q-#~*hN?KUi;Xw`L()-~O${Yn7BTZekc^8k ziLn&1Li)dZWO?s4A`hGdCd#0_w#a>V$JURkB$#cBSCgMI zz8rj2VdEw56CR;7WI!KxZR#%Me&M-hP+Iln+U4~cjD8`vS%vd;j?c_1hT||LhQTjp zg-0io2#^y`6E#%fHBm8vmr<7J8c+VF!z&6s35uuFF`^eVhFVTgKTs zrAxjU79`>+jdZwT&%>(U8fNQ#rwd;HKQt1#}@=FXeX{+FpJb?T5W)$a`FH%+g*$BJry86|L`|^uH zs}oAcO-4uX#M8vYro?yW{*ji^795C!M@(oFw4_j-P=NZBbP-JeT zu@y{`QH(J=MP@89aJh2e8GQO|Hu$L$tt(Y$^hax{kgiN1tW+&tk4%es$-hCkkLB?3 z9|V>7K3Qi9Mo~+shgT%@O$+R+efwiBsket%YZW-kQ~N|KTixbmj1z~QSMmZvNXjwn@6G9hWlm*E|Wl4dhEEC7n0>qp`#iUnTse%Qa`A-?M#KQgxfL^C}?F%HG&C zNBn`4j1}b9U@$2q3Fkag9r7NFQ9NhHx0HvC=_ImAPRNrRgHg5-n0WdPudOsJhfRLj z8bp$C6luNRSv@}wBC14cgQ&xWx12Qd;ac*oc*AawXGd22Kbp=mtg3L^!nAZtOLs^~ zcXx+0(gGqaAl;yJcc*jLN z0Zx{J<;LyknVFeD;Ej0gN)hMYe@SrHEQbn}VK!q|R`W7Z|8#(6J^qSiLeTe4HWrUQ zXB_JmIYZvmb$i;{fY;ZEEVuw$hEUA!w5n)w?Z<{kA^Va1EadIqvPo6vW>>s@3o$AF zvbwKNbi+|$>t@h?}N`XBPA$WiBBfX8o=`~Zc^^bA5S%H+nI{t{)iWXBm4Sxd~@5qV0h1xF5 zD52X%5wXO?S67~{jL#CQ9;kjK+GHdeOCok-nh*ftK^!q$zA!-E0wysW>0M&_={}h| zm++}S21pR~$_Xry!p@{E?!;B`eHTj2a2`n)!2q(qzhcg_7(>VLzh7sEoMSn9XwW?f zt2Vf_$d;Yq+DwWa-O1(m-|Fct;^wvF0Um$#b|0Jw6sK-PW7PyEEX-n&VsXk zMYw!ya>ucdC!5C{9?yyb7V-OFOx`b-^luGYgMb0XWX7%u8VYcG zA}@AE4;}@5mIgiw%P2A@K~&@?oKpHvQ-+=JGxv?Cy1Oz?G`gi1=Un#&Q_C@M!;4Ai z2rq((VCY#t>iD5d%!MItYaisqe6qFs%J_4|qZ>w1WS6&eM+wIMSM(Qp1jl`~kY*IF z21}hcHGehe^m-e`JE0i(b~4!evfbB_mVBQdQ{Fbc%;&9=!=QP%gU?E_8Y-5l_ci_{ zT36^o`^@@B5Aqy*WjncI5y|Fr%cYwZhmkJvicF)slDRC|?|O2|Z(F4QB#2t*^1L~y zgQe4uDIRAo#(fR%jaE~v&T%wTTRu1>IhLWMST`d&s+0GiApJpSXiBc)oRGNuWH*f* z5mO2a{f%H)R#sNechfr@l=?IK*Pd-(uK4Sl#`@gaZ-fkfd-0tS{5;ENzDh0|D5I*; zOG|g0%XFhasT+9yX?q8ONBz4GpJ7#CT9X+PDlWn*6&B}M+<)c2qX=0o^ zkyVmUh|x&5+&TIjmL2iBtlQ>&+E(L0zK4U(FA>YkqGss?B_1ZP&YU~-Tu@U0hbfqlhQ^ts8HgEN0D#@yrbD7(Z-L7#+^X%Ksx+OMimRj z<8km1CMDt3*Vn&<(!qEDW;Xi7^-JNZuQM2{GgUrlygP_#L#sXGQqH%SzZ7fjOP>fZ zm@qwKSznZN2my5gd+k2K62JIQCxil@6?($Jh-6vBSaN^AOabGbiBZTqzx(4~fX8V^ zNuS$V^XWs7#nG^dsTcU|hWq8{D;9>xB_@zYqS(GgTm%fj%~fHnb#zLAn?Ecli$@qZ z%pWg*6Ai=x=$D^Wr@zlqv$p{Fy6d4ut9qERT1Y(Pa#whFz`dh$bjP>@EW0&cw@z%J z!gDed7-URMy~Ho3{``{Mi7y%pEOI~qw-P{0^QVOGBmhwplr- z$_MK!3NvAdDq;{hW%WfnM2533^XL@zh}9O-iK8bF`|wYj z5tSNBcF<7JapS(D1RG$70~BWgcEisV9ClFd)_AwUtX|M21V+i&0)+Ei<6I?ujHWp| zT-0yJ?viP~Zr>?1Sl3%#rBYX49&b#GwO#HLTY6_EPt(v~^X-NuoMZg$wq*MD*>Hd? z9+z+OxuK;kDpJmSJ7Z&iri|BX7qd^gU;Rd2oyUws5PVVhUr@F_0gRX&4Z4%o@m%fGMM6LhR!DxEOB5m; zGE>%0>sl-m{FTx`%!OlAz0FFc>(|Q1c14VHcTHPtPuue*4B~Y}Hj;z=E&vU1#pYz7 z`Eoe#4^Uv@^067kcJZn@(51PWmN$tOv&Hvm8KpO9XmANGSRtK(W1ACSH$OrQ(Z zktnf2=^?k#V;UJyM&5|#{d8pLG+{O5#wpZPbLk8*@MLE4vL z$@L$|>d;0t1_mWP;9Peem3R?A8551u6>^N%x1`Y6nh`Xt%fd7_Ex?dWt{f$#eXEmOc214WX z`~cB8#)a?!=aRL@_aQSv4wa{mKUQup{AlkkmxnXFr#zHg=7a2U&KaIb>+Qa+On#-* zplxb$X?K*+bEu;);c#{=_qm1bMvCSreNnY%@_K>zqEu_MC%lit(}~G4o?q! z;MssNL%LkS=SepBUU#(;)g6kyHn1jv2=mzq9`jc$a&pe;KY}!(XTM%?D}rE96w9vt zuMrv0IOp5#$;i#b=JJawtppO()Ls`Xek5H}HQP>_|RRGifh2OZ?=04B`5d{KAOslReJySZZr^5H9y zzL3x=kWdxmE}
a?Xc{NFzAXdg0j|!BAtL#R{J>7t;!$>M8dx3zObknEhfI@{N
zDD^y0ASoE0UW`m>W=?i}sdn*Ab=`B0n8AZolYvHFjO5_?--$QA_xrn-w|768Cn^fw
z$g2>{52A>KBDwXIHf;uVr@8$y
zKl*5YB8nS)CMTL)MU9X+z>d36`;G6%yclHMHMCqJ300gHDVDq<>(|-wu|YL9cFU

Qh3wX_AyG+M`!?r<|)2@6%@Oi}uFK}N7$!NY1jz1egwthp0INS{h)FBAq9JQ> zf}w}^Z>+0*&oG{Wo!r{opYX_>X14uXocGS?k-xeAsCb@v9B>(Ja=6)8ezVWAV$8(G zq!e$^6N@n?IypM(ouHDb@x1xmdfJ5oS)6-%(|$duvM#Xl6m?xMPXSDd;@~@+*E=x? zL{ONO$sg|t`3Exihb!%5q7j$hx)Al7?0TagcB4)EA_!yDb8zAKF;E7wplOB7J~8{< zsZ@NLwJKm1yw6Cn>05t52*n`ltEn{eOZfR1_2;K&zfg@>`p(>byxqDmasF?~H9G0!=I$%T;h;0~ z?{UZ`Y5F@e6TB9yw&b?ry?Aeb?^~y^gy(Q~NqG407yfWkRmXbo_YOjdn?Vh**}(0H z5$$acy;1!rA8I)t;-J64EvS*ImwM8BmZMraLQ|?pAO1;hTWQ(-?|pKpb}hm!D&oH9 zn>;yiK9RE|pwIKShDE?yUKJ109LSW6 zgNm_Sp^0L%Lrm($ZdFb`F@BkWT~NT2v8Rd~?k!%8mFh7b2RrCQP4pbl)B2rOt7Ga% z>KCPgoR%{;T|Borb?cGdN#|m{R-3E%xYZEDz3-E4Q-uQ?ET&Hac9T;m*)@58Tiy1O zvuyV?h(7LkJyKi^@=`fkn8MKgQd!?$)iS%f!sU8#DWLZGfs6Os%5Jr%IygFsA7=<0 zvI)a9OEtIX2}2f#Umfx9?(RYV9f4E`ZXKDw2a8_TwO~DQy=2-?=3XupEbD0|(3u>0 zkabhj*+*RX*PX34^Uyk79}A-QHb`VU~D`jS7 zOWY|IDL)R?dQ@&7UTFTn-SY2*_BzmC>60uBc=79<^^;088@v@RM4G6HqvovIi7w^v z>A?W=)yChIC%i?gu|7k$6?iP9Ols9O(G2GVd78uJI^r4no)9JC4ZhW$^RnL#;%R4+o#W9W7W8_{->N{_lHpe>=ESDnzE4LE zF3ET1W>~$hn*DNniduMTnACby3T|Hw6sq6{TZNWa4XXr1)a)VC1yc=BIJV^p*b)*T zndCuWLO`i{HqEfi`R7F7bNibeR->Lh4Z7S~_$eK+IXLrf2Q)#J)ia9MK!WYNyCQb* zhVXwmT8^YwjN1P$o2h=Hv@HCqe8woF{&IB(%OB@X{+d?n`EAw}oEe%h6oXCA|ko+0> zkVGE=d@8@aU4(sHxrSH?s}Ndo_x9(pxK{~E}&zaO-J@HzRQWBBKIXX+_~-Eos3lb6Fl4!AYV*ucL+C+TRgmEb>-*CTiQ$zV5~n`9!WsEJ64 zaWSAIS?ZRcUHCBdwR~kdKOZyfj_>bUq4gIp^LGZF#X7&%P;Z@sND2>i^EJjWA#Im~ zG}J+P6IcI2(W^tJPosuTq<_E9o{~j~@i@q;EtIF;U@HVO?#s`5_8zm4@SJ(x%3t==zO&TyJ{78@CT zeL!wYdVTPN8>g+5E!AkiD~3_Ys1N2uXDl(-kH};_1BH#w2F;52``Fc6;t?Y z1sXnJSCN;x!2;8z~g( z3tJN4FGF$qqv>RjyGUks=w)2*m|5Vz7v6Z3ElbP)aToB^Id99wj&W7(%2+8q2yT6^ zQHQkCmwt~4%U5qL%pM{uU){qr^Y0&;Xr^Rm2XFtd@fkA6j=#>}gkxB166X0XFz5Bn z<6pH0)Gdt1x?`y`!TwpxEUvn)w(;Z2%Ey`t(q2JMP0^wg*mVoTA8iWxF|vP4#t8D; zJiZ-&%~G2E*f6W>uu))~;b?HY*9nf(6>YN_tD>`#Gcu$n!)mzD>ZTt)K>0q<`2v{S z(E)w(@P`PnFzQr)q*%Urx>>_`Ud1@ge!38-b|1ukL{FA4ci2Z>rWsN#BHF`S*Z<2VTr*-@sSTyO=x zEM*=}`B0T?IXRlAf!pdj_zN!zI{)^Fe*$)9CI}EM@j;E#vAQ$Ov?t`DnVmMAQq59H zh8LRTUQe{TR5gj??Gf;;B^Oc9^s@b7eZ*wHi$S;)D6YJ{e#a=XMLDV--@6Re#{O($ zPmyG@R~k+9T+UtE`Z?GD^4ypuXT$wqbxr;;A8IWzUu52?h)Y)Q)D%?|itTOZI>fhV zwtdgZ_GL%&trt&Fe1vCcCX@&-kl29omf~;UXn!-3QXKAerQEe_6K5X|v;Eh><&khG zd|78CGDvcWK_5k_zqZA7A0vz1p*&CO9q)>eFj`Du|AgUXqE-@n2sVbpS{FQsZ;R1w zYh<#IhDugLbuTs?RJ-h{lL%LnQHFa=54rktWkj*izQf?^W6+7ojYD?jyWbs@5xYx6Rt<<5J9?Fe6GOlyPb4 zST~D|mU+F;mSe>+rxmKP1`_}MobX8wz{X=S0464@Kxq0z`CWb=m}2E@G0X(=0(#Bl zu34m`SmBUp?*}u;{`+?1QIGTAP!Y~c&#SPIKPwQHhp{nVQhU$8`ZcDv$WWrxa0D0~ z0URCji$vyx=Ju1DZ2FlTK8OiJG@v$OZDA*?6QIig0U^-y%Tiz}r&R!*=WJw=e9?B) zw28utpN)6@fjffzlw4Tq)!@$(1E^ORZ=@Mkb?R&qrA-#4GYR;}6XIBu&X<7^BV%7U z+)n>k(pllV@cNj!Gr2P6xm+Z%iWA<8QnEi|3w{9D2?{g@$88Zf|NeyoI52!wXc-OX8}mp1Jg&0>RCtmI_wxV+=J_T`wa_-d4! z&BkTP6Y|swZ#Y+m6BJR$mTqFOro=@FGaLs4v8mnZ3lZ<{?)HnETb3YTMS@_cdLgaW z&ceSRY{0YM->N1aC=b;wvn350(ZKNMOI<9vO1>Vx3ee~}3e$9xs7AW+Wc?RB%^dvs z0k`$02If1vvyUhmmkVlrA+M0-JL0m>#&-cbv zUb|q|WfSC&h__M}v)I~Vek!&46&n_B>eyH9v}G5g{$XbnU#)`H1o7*NhW3LObV13d zb)503De~h85eki(^8MhCCc=8i$kXw-t#&7$i{O9!{w+^s`t?YQ*_Fwfp==1!2RxH6 z%L8y)LWxSkz`zu$`^~l9&FHjQa^=xS1RIYM*Y3L;`_93~uOZd7Ny;+FMP~KnL=dDt zh&_3}hv540@BYv=4jD-c=E!OPKF+t$H1^f#YwI`CyVkMo)3+CvD|S830%qH&OCCF4 zz=HlN!dbH$6Ic{FPfx=_;CIgYq{gA;TASdmk5-~Fd?DSCDUo|lRCLrlgSY;iA=T=@ zG0$lP{PK_yE8#$qJ2KxOx7H02v&XwDdLAw+TsB6@-5j5~ z;NNj^t#!U4>jC*PvrEYiv;1o`ChLQgGzB2d_P4Y+oKG_V@f`Ndox}AGtu6rq?z$l6 zht2eUIRq%$awZq^S9nyyLUh&_iyvOHuLg=S-g0AvFx36SMbqI%}x3;p6|fNyE{fqx<=iW z&zT}@-z{m1E*}~JSC9F@w#HjK;ocXoEqDt_daJMgFjbxak-FHTTHJM#k`jqf4ndY8 zD8WW0`@dTML+D${Q#F)d;^bJozj!L&-S(5rC%n}(xk}H?ZAAR1yk0v+%5B2|ceah? zo@y6SK=^I%O#fX?1Vs-SvS@TVMNHu)yFD)q>dGaci^RP94U{r%0hnGV#*w79O>4~FJa5x;mx}-guXG~{nILBiF zSDy+yZf?89peKK55@D}-QGM%`#Ay*Ef3cd1qE}fFHNH=CbN#qj@cU`}#d^Odts{hV z0}Q!c*m_xKMBGOCk8WKEj;`c*Ft$)|#8*f5IDbxh!h?@6gR1g+f_?krm)3`gE9jCPl)AffrD~2|Rq3-hN9A z=@xmAXx*{$#cNve5g^z(bM5Q&$Vr?ZO!|r{;&PP4A>0?`7(x{);P{|}4;;>muC_IR z9q}ejyUL_R?QW@yuYYwF>iY0sAeZgz2jG*$6xXA0-WPsx%^vrF5ER=lZ|(xz)d`y4ff|7rqQ9A;jH9aqRC?2=2?Ul>P+3Oq_vluutX-xBNNRBEh@bxcMg!}d9I4;q zPoGDAa0TqvOo{8&L=}8DVg$1-YqTGGQyv`BwB0M~*%Hpa(Bv4;rOQ!A`m-2g_wU8( zP4)d2krGX!0Is?yp(Vp3p08nWmYAHW?nz|&PKRJ3Ug5vG5)PH%$@aQ)lfu0Q679(f z&Oz72A6-c}iaHWYtcg_LU_TUMo0r1%VJ6Dc0Pp_IYN}OM=l|OtX^i4HxhoO}^{i&P zYz9yHWKv6{=JZ@RqEaS>w;^KEWAMQ^H&tcP;g0c;iFtQqyIOo*WRNb)D3gNL|L>hTG2<Etlmc1h=2w%yc8cNxZ5U-=NIMO^^gOS}&%*ug_us z()vv(W6-!Vb!rYBfmv7=Ca~CkJV^=M=>MgfTGCTJNG|bf}`sEsjb+Xv|3vR2kuU-PTBezlu;3nMq9kW%REC_Ct2Ju2kQax4!29yvc5vsucWL+Npt zb@Lr~ua`QqV|dM#bYF-Cnep0+@OLbVZ$0Zl#H5yAjhH2LzrgrS2$Us>20eI!?x~e~ zQb6ZKMsObWdfOIcIh?{slg9>U20G1+dY>O2o_l<6S)bvv9}le@F9%+X1+%l-3G!z( z>EIn2EqIRTbJhOH=yP)8Lw54C=Vtb=#T8S$=YVrp_{q6`Yo$h=id;C0D81P;@uywRD+$ z&Uibch8?pN`s|>n6cGz_b;SR4Sfd0^qAY{BR?$W$o2o~fKXTM930(8arbEm!2uD1R z%VBKhqJ#Dut^QI~-g$n;+Dc=vE8d$G*F-Fe-j|1{0vNavb zpItl`Z_T!8GV@)qz-}&in>@W%WKHuh$5Bzi`7;XkAKmE28P9o91}J9zeK%8O+Oni) zu?TgF%~Yw{M}v{dW9*_XD3H(UXz;^mY?{qhz0u(#-!msXOdj=)tW8qzBo`$wH_8lI zvXMoF_R#l+;sMRxS$iIgfcNyX%gVnhFT>%gV{qS<{Rr|{CQvN6_!v^V#(a9IN4-uh zkN-BSf5F)*{M_D66X~lsBC|m?)Rq%~WoJi?8Qr)$eaB^d2hKMHZ;p=U>pU@}rKPd? z^8&b(Y6pn2FGwqL6KYy-4P_YK{=AD+4&JBK3pB17$}3MfHCD;JmgSlWhU3ME>l_Cs@j6_gNB=Juaecmu*>89_YV)cZx_xP)imB0%# z>Uh>A^{^rG%n2Bmoq;(%(E<$!)P;H#HtrA0-kxXSDn2kLx6L=Jb?wi(FZf7cBLKq& zsDcG(Z~`;;)7)2QHPPO<*^f(BXE-8fI4L6bMqYSAR$%!GHo1;;FedDozNkl!rJf)L zHP|mlYXJAm!*zJMl4_S55YlbdRr~Q&l|Y^?YsI^O%RE zP#DOV7xnIDI%qn@)=XXRcac}^L>;?2H6jcaoIjl3T>I12|C|It!{E_L?_eVn4fnC9 zV?0Y{-fa&NEEUK5Sn*Mzj$k}k#uGL^lJ2!Zy4OyY;0J5i!F4eT{VVxH28tMj+#iuq zm;J=c~lWs>rp?_KX+i&?G)_P4xjSZ$reRlg{d zXU4g0@xHR&tdEpV6}_=IbJfwbMRlK?vlvdIil78-%~0TfQ~jF(>zw9~j8gM(^hgaY zqEh*Mto=O|Xn6k_$YIsoJ@6-xb`+#I?kugWTSY$#=ZKTBa}6$oZJB>KsLnJzsBv2O*@M!Q4V zi_OqMLK2SD0Tr}4o~}up89)anbj5k@ipUW2gg_zfQsspk#NEXL!vQ)P{8^ZQ$SCX= zfi&j$VbNUvy%gO`3BLGA4spiR9G3``dX-7-yzj@m46AnHOLwMr8$p^>c|^)es&M^6Nscot1dw{DTFTgQk){evDQ;pXaoK zmKFKE7eAma6VSV}JXMeETp&=xkHpjzvtm>5N0WA@)>)Zqev5!Y0KN|SLTu8n5QR(=tRcl#Z2(%N_eUk2bmj0*|)T#Gpc$)7oJn@I#xAH8X zif>Eql5R-1&+*U*f^f^{YVG442zv$@yXjxLd(TkFAmpSz3*7)*E}@}8NcZd4*%qrW zA@EjWPLjNy|5$UlN2#s45d#&aUK&(WqXrNZf%RI2C40FdQ4~macqq?$Kl7_%T>Um+mVbvRPjh*7v!TE8 zz%AY1_cHo6e*T9|MTkxHT|4MpFO~8>b5TaCq`z)V_&Yu7%ODN6rS8;|_mx#JT_ILIudWVfHXYdouydSyE)bNkAnipTLs zphC}fOb*A%2}JmD$YJ+?zZ9(65{)*a=i-;gGvOXHPkWz0cV-`KsMeLT)`XO=<>bgO z=ohP$<{{pZLOo!lVBGYq>nug2hihE!I1z&Rsu}7R3k3~I{04^>dITs-66ycnw5*rZ zvvbSA=0NC<#}xf*HcBH;KHTa?ZPwsG{ponGZNI#;@oeI}TixkeZ{jpTS-hFt30srUlJW_*f?DAQA3K~p@2$hJ9%|S>>wjc4D(qA^6 z2wEI*@>S@eLXNL*Z+f!6_Tz|>lWPYG-%Wc=)>$@~{MrBO&|LfqAn#~rRU;chy}2gf z-=ay8xj;1UNmChml!GUA-gTxn{=)w_U571-GKconvCds<%1=Fp=ZCRc9Dd%;B#jH1 zNUT>?Yb$g?%+I4nEq4ewvM*^On2BYSk8}qT8}47>?J!-t&S+ksSJ10WEEQfYhjs0@ zZgZ{^z|@70i^1v%v8dq@;0qZ2wm_RTSlX?bn)f3+g`oe~kagWj z1tTCQ=>Fsv*>DnzlHeX%wCR$xgiEiy9VXl^|8j6;rJ4JBO+UMH--zU3L^P}>sahW| z0;uhsnhLxPhZenJWrr>3Wh=y$_XlvvjKkx;rRIwoKo`iAk-1t*%9(cKKo^TSa|D%U znO%hnLi6>vUw{VzHi8qxbkVJpv!OdMZ(}@2-&t24r43k0x0DHStMj*=+KKb!79;$V z#1_PvZwn^M(ZU+ewU8+_(`Fl6(Y~7fIX_e{M zT4lY=$d4!wf|wClLaEqKHa1=HD#E%c*;8BF2`@*4x&aV2sC8NJt$rIT6oJT{Y-AfFr_BP9X5r|F*W>P;w2ZVmVcd6I zGW&}0X7eE(?y8p8@17qQrkZ*AJ9sz~oYG%ouLm;CPO+ZYDGR+NDyoS?dy`z7GC}!! zt~DQsJ`z?tv77FUm5I6x{*8oo?ptL>!N3ep&1mjd-H8; zjGpIPskZm=3Vd_ieGMKfVf^T#rprTJtYjQ>{H=@1EUZv?-mFZEGVNb>*wa3`l_0m@ z7nvV3C(;O@(m>8EmW$zw_~Q2-Us;J(FNMSEm0p``d%A)w?FfI*zAJ44WovJsF4Zz3 z*d4ZDX&fKe2{kyO)M?q=865NO;rIoj{h&c#B{7J97YRkgbEtY0`4njwjScdSp<~k7 zd)=ji=){I}xn6@jRYHQAWE&MY8-v7U3cDEsc!O%(*RGVOJNtV9be*ApB6ZP)ez{p0GKS6jk&q&QTpkOP*6@SYv4P7m7ize zMgzB3^_Bv$tBt!U*NIxxRBpNS+X*w~L9fEA!OI}o;cRKwInnpYq%0)ZV=biA$(90} z9b0^VbaOJ~*x9H`|03g5TkPN}9nTYDBt~k|(7)eauq`!XGDE}9aMrER2CKJ$VzPdj zA~BRvo|HV;C(hl($q7D0gkBOsw|RnLME*>yE~Tbm@v0eUh@ty_-GmJ)N&G@URGf~~5(n4Niot$x&mRkZ%QJVs0DMRPM1&Ko( ztbwdjUyyq7fATTlb)%3<;@j%IRFd@vCJ-QgiejsX%9m7s;rDEv?v##zR!3yk`-vEX z{o><;%QT}l*4Rdi!i<|~ z&qFTOa^8>IbnClCy zGQNk5m>a)wrk%T2Y;)&0$)dFHH~;9kZRp>UqLqvH%GJA9S?YA9xGrK?Iy?Ja8S-oA z0J%?W@MiRhraeQjHzHv-?a%F|y+f}-j=3-=2#{dbZ+xHYc8{af-a2wL*C#jZ5)_aP zxXUx-$Hb_G*)*ilpQGY?zFi;teG1=tk$KYd0{(yKUU?R(H2f6;ytQGn9{`^Z0_hhC z$MA-9>(rRS7vK)^kD0*67>;b8T7k}W78BETmX@HR) z)6^Vl{{q8Q3|F_$-NcJrAwzFU*cC`~U=f_8TU*kP_+ewIqA=`hX{wPzuJyZO5eE3b zXKW?5eK01((+n-#GrunB4m>Bbxc%AApJbgQ#jmayFtq6_a=8xR0$mi_72;Gx*kqw> zI8`XPcAd{!MhX%RS33h8YX|q76#ipctOrqRu<;h8IyYmAF8nU>AzJa%JuhOa=}BS| z6tJ*C8DM}Ll`^@VW%ndqRL`>fK^G6NtIuq!wo%>xBfGGQxG=krBAFCoVIy{psT^6` zGNwnt=Ix}Jp!uF4KgPK3!f>xG;OY0%yaMI!8QU?`(~*(uLCA{ehf}~jldpM>(6H0 z5bI87sMoY+IJ>xI_kdH9%R1;!(5e0aZFJuhg0}o@{LFOR>P$>aORM^p$K-UM zT=;%rrN62D!VV}~^vD#2s- zI_@=ozB1l`C4)c-pT|an_`~B08$W*p@K&WvMP)xOWcSL5Tmx;Y8cPiuy+b$SG>T{w zWy-K8C5?Vm-rsvII1`9bg1kHKtGS`zj#WDkvi8)+zn41|s$hc^lacH)oPo7w^>j^H z5V8sj0;3ah1c|NWaf*i$bCqkrlMAR`N}G6U@s?awFMS^X;P{g6K*3`c#dKi(5j8~Q z_?Nc52e{9GEq~U22?_yJ@WF(llL8c2`zQb_UlmS56<@lbeA}gvrl1rw!cV>H+Y9}N zns}xDJDX_ZP}8KTtZmg=GeoRW*0<2I+6xw%N)ww7Pty~Q0cKL#w0U4tVuG6Pw5sqo zU;nqI&E;M4*P2-3S1)?d@&Nzl+M zhop#o+7A=l@8lm8c`;dFv zcKD$y9!|FJOU5|9udweL3FFMS?JD@0{L^Heh*N=5 zY}I_>74dgCW6Ehpsq4Mw-`y0o(%DXs%uoU75!80}L#4Q}Ag)uJqoQIg`HCDj?~po- z#s}$>=%R!mQ+%-bH)&>U{G5^mMJz^yOMnt`nPxhp@$5d0vmYz1V9_L_rs8r~gpjZ5 zYa;*EYGKaaMHXs@1W2&4m>;vbh(#_qMFQWqZ)=_1G0}jB8_-G~`XMj3h%jogB(<<< zTBtg*8TPSvjEeHI6p>x5)Inj+UE`90;{W0go74gjRddafJw4Cf`##P=ZnK{~ybjIC zx-VD-qpS6#G@2vG9%IRRs~#7t)<%!q#3j$L+#=!E&GUKGy%oq0L4bXCf{J(9l?43i zXL?`W(;eN4Du(%DSG=Sw!$mtOt;3;*hX#8xPx~zk2-RQ%zOOzg|D(p6xi zOBhx{4Df3e;Fz<*$ri+1KU|p7VY5fy9?PzZ#rWb*CdRhsx%g~TTSukzu{xbhWpwZ%HnxGvbRFQ$xEJ3(v;Nr_@oxM00kHeJ0t%>zY z$H_)Az>TUzyL4q``d%E3BINIEJ5fB3KQX;-TJfBhC2D+QXY$^xBB~h2bw=PBRH3?D zl03~IK{xRVq%Y5Y+ND|UMf06xu2nAuKJpN#Ls+);WW0o4E+bs;1v&5g$m`EcCCLp< zviHA<)Js`e?Po)(5((!an9LnlxTa?_QEsONuO^PB zVLGK*cR)#+T=xDIa4b;(?dJd@+Zzv&?dXO0zkh@Rmw(t?RPEX?e;0pE`f*f5Sa=8y z6V={rt5_bjROV>}X5Fd%nl5%&W(;05ypW*(oPp)Hef-hRy7RB^{u}p$zsqr6_yCyv zv}4>u_BcUi0wM)|dbWQIrW!T;FC?H{-8*Fa<)2)phV=_?T{kjRyn4zl%)(}bGrpP%jF$^yv&Ocvw% zcp(rJB#vZp5l0JM6M+7*oG9X9i`a5AC01dG9+rsvDLME!Ie=qT$}oAzs3cbVS656m zf;>$|!g?|EeNpjD1WaO?(8}l!z29EbZgz#)5Haqhx%EtsL~K*MqQyaBvYDdvg+7y8ysDR1llH@LET zt)WnfOBzOmvkTaUmlasetp9G59w>5~w`E%3v$$Iz3E=v7?bd+*ss*W|sb+VW*^|N| z>PoNcIK{I~G^|DkV(^9xqCYq zn?qk;zmu>(e4`%-V4sLT73C;u32BI1WSg>-Qo1%P@ayp{8fV$zAfE|kA zy6z@&LD+iJcGCNNXYA__`tH`WL{1qWhN_;BU+OGmB^S$d6LN|C6JMd_J<2X$#7=UM zJ^dDTAw33RG2S4|?UH3&l@g0Vx3>9H+xDiwoOiM?MODRFOp{Qt>E*9Q3YXHPDBxG? za^fOp*9S#JMSd<*Hp%Jxj9yO8iL&YO<fmHl~iWN8E zYj0^;;GvH8wKo1_0fpA&XP&Xc%sjOj1l9+!%ygSK-aDt6K3{O^)F73vU;U?W>$=!e z6eKy`O6JeXRv)4ThUn7=e>9~W-L+qT79{4jaHSH*NwsB9VA~;7ew_94gQ?U=kW6h=}n5WnJG)iuNe?Gc)l4xZxnGRJI4#*AvzCI z*Z4c0j}pr;xN+L;grH4Bw-p`O8u=D?VXE6E*f4NmLs>b}-bE5~uRosnlD%L7Z5qCT z`>5dKw1taem!)76}8+zd+nY z)HkKrUOnIYg=RFpHx(13)9Atg(qp-3W5}-T3#Jqt=f_jIuV3<4?#Bx|fY*coDuLL! z<>?gy&=1T&Oc(q~5YO$qe)>3fV~lQ0{I?nXT~gm)fSNtSh05(HOqSrO)rm9Pf}DK@ zXHXjLSc7#L4k#8uwqE8 z6L3wP-SBBRqP%R8_K2Oj76pkcvYV?=EKV8uoTDP-bxuUC%5T%5dK||A|k^d_ROg*Z6-j=duF3i*bkuT zWb2>$Go3t276j$K1CsV|P8;mlr+a2q*to{rVs{p;`=|e`OGg z{|R5dnD(u`DJ}@bBpkeS+1z4uh|9_VqKOvd4Wrzb9J;so6hbvBm1GNMZ+ zH2sluo1t-$J;^P)%11X8`v7S)Vc^*BN_m<~-cn7GX{j=XL1Rww{`gMNqqqFyN7Z~9 zm71t~F|@X`73d8hRPs6RtnVye7%jDJd{&Hz&Ig%P&+Fsf=ZohDe(+AorYAq+FP}A| zpb0wf#}CIbvHX2Td4R|+pU(V<>KI_GU8fYg`AT*)U82;W3!G4&_N$(;PrP=1o#OkR z(X^h2)15BPwf52HCRIvqqYNlsaiu%MnmHP!vav(GXqA9sLY{}n^5@UI5f>frO2nJ(dJt=Y$B5o6NmFt$h2d-FFfC z3W_&e<3`A8yCeK~gV$%B_jtJm_74lohln-6$OfU`>34c&JN}{i&Eg~^Eh>A8SF!vC z9E7%2d<7gQ1O*xV=A%r6bsT*r9C{~-Q?Q)yap4|U;< zr$@elC|tIziCFC<&Tjgknu|A7Dr4apJboJZs&!+8AfB;i)1~?9<=iCVFnGO4gA&-% ze>Q(#UM5*LobdBJ2n)$-?TV#KS3KsIn7hLVT{aKrh)BBvdM8OWBbe8F3*@aa&8YP0 zRa~aNO2(AF#mp0Pfir3qN0L#;$P%{#wtz~kw9`j zLeb#b5>5Ij!(ULw1{lrHa$GE*s#-`0!h$KbUXwD}Qk_yKl66$-hFa9xgcZdTujAi4J5)c8omg;}NND z$lXlGcP}NVXK01~HUdzDzEf9uOT||VNB2wD7qgPzji^HP+!!H2d7VUpwO_Vr`TxX( zTU-li<9i8Ro^wRTTutPO=R;hu{q!4O2D5c3#I?>?SZPg)6;%{dyu-2P?5?4NnvMYW zSP08SMCk|71`6u$b~Zo1}?|R7x=mK%UU?lT5zJk~fW33R+$s=6~}2A#Z7rZh!LUh&gj3YZ$la zy{I+A5Wg{p@(pW~SRt-OQ~VaZ<-l?7-ybf*b1m)H-Uud|f+|0KnE3i*^ZOkD3e`IU zZ(~~sI}HAqr)^IO&0XNwu`IqxacZ3Vo$^6=OS*wb@XEQ2+b~#y5IHe#$m@}w zbmd0s#I8UUzBz?sq@&YyK0F3%wp{mn)9)=7py7~$Bjwu+k!Y32>*7=U=R14VT&$sk zs&4~qdR7;)6rD{4sMwdnkKKto@pK~FrL7((2UR}!K|x{SK_)c9NuSN(o)5l1qZr>! z8k?G%ONQ!#|9~55EUr%NNA}}?HQlxjJP5?T_qyCu zt+%_+!cR_Mw-9hU?x`(Q07TLuUdf)pX;xj5{Q_0kkjceh=cu!AB$sT#U>b#F)9n#L zq#^R#TtSP*33*p-#PHEksuzeCh;>o~iK>iA0gY;$B6CkoO^cuHvEU6x%JAt5&nxu^ zx7Ml6HC&;u#&s$Tes0W2J=wFG{aq{#0a>duN6Dk??dnR)-JBTfv$lvXukQqdi5nvh zw4TH;p_@aXtf`?*Q(~U9+XQ|kKv_W-B&gHmX1#4PdI`AoAO|PVRo^g{Q-PR7)>84& z!~gMgmO)i;ZQCZLJEWwfyGvRcq`SLAK)R8ZZUpHLX^`$sNtcpJhjjP5cDra%*@J zl#~n8)LVIH`W_{U%rcE*K6eVeAA(UPMp&6-zX|KwHX4-H+&tzPDv?nol6oY6a2T)6 z9@6Yl+x?o=Gjz6ko4alKB*&JDvy^QaInLx?R)X-($P)`B2Muu~eD$e!NX9;VFpf5P zymJGAwnuVZJw2#?ewaFM`Mwa_6m~zy ze#^>TADO9O_B?Tii-=yTG-xwEK!E{lGS&O4x$w=w*RRY&_dNZhC%Vm-MHb!Q!rx(l zz%wDIsMcDY4jrez z=WLt9yf;N`u#og%A|zb<;dI4GAL6jAbGTWbguo%8nv1OgEn42fW#HKHQbLZzholR- z|I>cA^FT_`&*X4NT|xGNYR5=4dZO>l1*ak#Ke*~cT*5n(_UYKU1Y}J9H|zl=ngXU; z)BxK`f@_Z!vbrOJ4q@u<{8gb}my##u!E=9`50h3%%zId;`H-A!u5~1msg?gM2etzY zKf+n6T{z)Mxf>}s*`iS~HsqYD-JTq20^*sW+DujaqMFPcN}}8qGaK#X&g&Dx@%Sb0 z)r|4Ix~78V6L=C4_Pxjot!!HtY)|9ysb!R+0T$v5tFbj5x&=~!GRl-#cMswFGTcAh z)m~_hYoFeQU?O^wI8vIEc100Dp9!)IeEHVRaNk*WV*UDy=E+1tri!+ZCT45NvPq9+}q>dzKjZWfPlpl?$h=2t;k|qh4HhYK+?1C zNOqiu`rn-*D6y78ieotwwY*m*1Qf^{_D|vx%7cBXo{rt0FZjQO<-j66|orQ zo!{kY)n3O)t~y)&*7q1>fAR-@o(bW560i~<`CtLOn0VkN9OH_Q=}q^mdezI&$vQ($ z_1DtUm-?M?v(fFbQyZvFT%4uh#D!Pvrk-~Jr@dYhCLxUnyrNsm)0F8Ej7o!lVa1Wz zUR_-1_k*IrQS13QK`kw{BFQlX>LSNlTJXwJqIMmsTnj%R4ei85NRMGr8}a zu0v?|x0K8Xsg}9BhtiptU(4+HOPe>|Nl-j-Y|z|kK<>8n3S75zxQ}Abj;oezInC?| zTjFlxHY`KXGp(3-Zt8Cg($S%RxQ+fVEA)$a_2d;BWDy2(WF9>hd``o;eZxH*Y^--V z>~>knlX1WbB~$RPk5(Lun?*jpjQ-IwV>#tA+lz-lNdt}?shL&Nhx|IBQ?`pORx6GHyz-k0mVh;jL>J{-4ZmS!Eyz`~{yy+|^ay;PC!l0q*lFq**rE z#nlf@i+a`RXT|KsVB_$Dkcz`aPN6Jt#3@yO4~`1_YQMe%KwHPnp^WELLu;eiTd5va zyLWYn^ZNYBv;8Rsw`{+Bi9k0*%JT4C(`}3P+a}742@EnL)PQ!&^2MLB^B7{$4Oz~D z50iaA4#wZHd%9shKXwHWfuV2!e2unq9mT4S0q3jhc7Ita#6VT3VS;=aDrDOCYAr~v z+v5X(JoIs?TtmCVn_II=Hx#I7%zA?1!6I0SgjSIVJR6H#WQl*C4NgpA=FDOd|H2h9 z0JMqR3fAIHE^LR*2%(u5@YQG7&ws=Mw-{45p6-tqmgRC}{v0ph{#rqG7;bgD+}C)? z%b~nx>2CKrw|)PJLIg<;&vA{Ns$~ZWTXZ|kYN;0eFw9i5RDvoh_Tc`tSAu}-%-7nc zWC{j!>2o|NP#@1W>A^@S=qROe+v(~OwII!^dTN|9Zc1qZl6AatIVV=W&*Gz9k&t%# zMqaNmMgK1$>ylUM*>rrZ3{?loMzIfNDsii%l6XzsiTv~3H~2X%7i#$28ZNUBGOwH! zbLw5NY+>9an}*+&2ID9@+fsDw)&H%%v)1q^&xQOTKox z;_FlYtW{m0MXzJhy>DjF-E@q!*>qNb9GN<)*Lr-jiL!UzxwfXktZ3Nv5MnARY|y@l zndQdh5l((Lr?_1ddRM5{bq*zYVUXY6d0LXdI+e)VAJYrrbWxaaVlf}G7~;8kd~ktI z89d?VPeXEYE*r^2@ZM9Hj3L;H+B7J+O-%^8phns;rO0V_Im3EaU*sR`vY!OLm%5E~ ztMiVAbKgCu!PQtV+4qDDs~5~;Y+xl?gX9MQ)|~d9Pi%mW4V)E(vnXCR3;F}6B{=E) z(VkApI)h;m&}}hNgKJd7K4dVL(lVa(!x{;$QLx#kMio`GHI~fnYEwrJf zsJh-6u!{VA9KiiXz`;n-hY1#1-Hb+;a$s2V*F)s74WMYBa5r!^i0J=FAy~Pi@0~XH z&S3|M0C)q!*zRun=f;D1(@Td6=OqV508^uEXl^zG&ve9K)htHXzz8_7t$pc8r1^Ni ztjx07K9Yi5LO(cC!P66@Cm;}1cr~TF!5QyBUP1aVCEkn*+1ceb3?Xnkr#^n$7d9k< zA2As@^~O$++Cj+O*$sR}buS+kHG* z=072a5~K(|{Z*1ePvq_xJ$U*}Y`u1^Ie_dXhiYP}M+_Of$EJ$dtJhU4;wHytGEOg5 zud%!Sa`W8rc&Odz&HXYp1-*myvn@k5NMaVlvZ|Ed;6$1Kf@*0a>Mn{itj@K;6J3k! zs6PiG@9Pz5^;xRbf|Ceu67#*&;Uo%IqPJ(fDXb0|ylswTUH@k4hMZ*0Js=!AjZ!xP z9D?Si))cQ$?vq(FreRG9smAJ|ND`pTuq%Z(CqA|4{BI1%4CX}hR(rR(c+;DoqwL}) zc(|iF-N+u%o6NG=dF^U+D=ij#bLcu2s}FxTQB9RvxO7ELB`J9QO%gyz+WUuydh&iq@KK2gAFi*yVsNZbZ*Et4ve` zKzp`}X)5*V(E*|XQX7t1D(zGI_2-{}d02nG+`S5mcf$oiCjUaE1qhyBB!;qf_g@Y!;fL_-h0Rr z#<+T3KPFP|`Gd{uQL7z-`?4!W=Se8*AB?A63_#!@@p&#l420W3O$hX;QaQl?{QDSg zBOY@R3g_A&kUjSHeA{HKwbAqB38B{EK$A)P2b9?c&JW)f1X`u6?%VU%Y=Av=8X3ul zOY;XvO{IWo#&SG8$U;7C9UP~F6+7)jI5-F`uZ`Fu#iB;14C|c}f}m@IzQIKsJ}0f$*tv8K_lurP6I>7~3^=m$P>Ux>tmLzFM)1YWU7mXJq4K|cC<5||a3 zol<991*>8Xm?Ibco(PAap%kVrM#W$Yx(IA~GySt`Ewe{aVix9`p}>QcY2cxN1BtcM zx^SZ~VESI49ZtGz4!`rXQ)b{^?F%01ss?r~%L@X5Fxy6Cwy+K#53}o|706eqJH~9^vl!3)10@qMEW(2G9r@F7`H5u-@lQ47g0U*6V=e`@Q%hoXuB<6s z#HjfcO~b5Snt0kvWfLIm7;Bx@gddJT1@kG$|09F~XG_HYFJC1|hhjj>;v64&4>Y~X zI&~l*v<17y0(tSD@ps4l1*`!tV6fc|UqU6JOWYS0Z}zGoDw@H2^%zl&3Qr{0m?@YS z#}cm-DX^+W9eS)pB9Q$cd%>83@NEzP--!Yf&UgJ5?CS&sBDEsQ0-Jx{4iK8>l|b2H z%pJCfd_-U#kOGbud}iGcjpix{_-lY;`3Mv?xJm1Fzvy!Tn>%xHM?{_&>q#VUU!q2$N3bg@y1wLEig2Yt+pGJlBgt-lb1Fc=T3IwVCFuBc ziv8;DRgL$hEr?m?vq|hED1xYLL0Jou0`f;9`hRpow$;Y-l6#*hOEP2YoCq7L*fi@h zT1SMr-RXipCuZutEixz~!g(C;O(itI#vPfQ318kb5rxBNPAv#0C+7OF-@LGURD7oO{Ce0~-W|^}h=6`SfQRuV zWqrM{(<}~iN@K^0cT{d_=P~ch_lajW46m1^G@xB87x#XkpB8ywG z+Cf=cUP5QZ@$v=&p_t6(t2=@FTqJ{`1-6w9Q-yn5vv_xrzxL`(iru`zJgG!#a;d=8 ziy&nTlR*cgTlE!iYM>{nyP=zyo~62&yBY>pL81@0-AnohZO2TzrA)4nQw_ne*9>19c0&|r=y z2{ZFpgm{7{Lre{>Bvuo^dA-b__*^y-LF8q_e%{u;$O?XxeB@m~pnig;keOg}tg&uj zKnq=zdUT~OZ8U=Pwxk{n;<;f_V}31Z`xJFyIGx;5~*&$eZhBv~j*z zchVk@&U=F_VK;&C!`^lKjUsZ&JQc?)WE}i_VpUA7KLepz@ z?19A)jv#xE%n=PR5^?W5fq5x;0&EH*AHoik)Y7b8^50@8r2`fwP1DbT1qV0I;I@kh zvcrA|Mn2eQu~bd zP>-ctQ|#Bxr}7rPMuoVaFM!^ofakF_QOycGdI>yHwAqvkl!E@nUDu)9?l z%J{${$$0n$^#R=RF(lR#ulAxaIa!Lv_!8rb2LJ0{!flKkYCp~y9$6;TQneWLi&Nmr z?jvVu%wivc0%lGut6c2jaIUs2Qe*RSH&VB>X9`6)KD^Xo_K|QsB-W60IqCyP5Rk;CmYsWW8XL z55X$p@7QYd@`C$S`}O{IpwaH=f!-_X+w&pz?s7Nfc^+|#?CeAism(Zz0u!MmdhR$} zb)O(Z`{-qcj>`;hv3NC>LEldjDj~74?v*+nuL7Pu0>W3?JO)>HZQdG1E-TgOw09OO@eL-~54U`amX;2r4iTQgASfN(_*PJ(>C;ZR> z4*O)X594o%Kge|K_8?5os)t2{TtV>XmKvw3Wvo@dNgkT)mrnNdKm&Lf0@UR4bo86+ zf8A$WjO5s*Z3hTwvIPWcdJB!(j~ zN|bV>mVW;J;V@Ued;&8PU@=KZNGPVY;9S}2z@5rsfJ_h1qR$rxQWtOk1a0IgI%zW|F|N|y z_yD3rq?`3O@9*oXHsz^0dvA1Q-70Cm=O=sonWB$iAiEqK$^@6;6qlS>t6GE9jZ7~w zGW^|N-B0*OvM#}{lM5C@XhMn&t|diEA?faYqFdDP4MODKWEvV1Z|*#Sx~I&k0SMez ze$+|d$u9+s#^SmQh->RPA;M|LUxn9#cbcmF1&PxLyR-Tg_n(rBGWNX7rtN9-r`uhy;@k@I=tc&yX9ol**4k})f z!RqLiSHlX6cDce)r*Z#yxwFeOj5=H=^@5gY>I0~5V=41NEDYfNVqUoL!{7?3;xe19 zEJDeyZ#DUv(Z$xl7*o~waDUEo&1Wr~mNb9_{4NiW`5(F7lvF?9yh38+O)yAYO`&!7xvX_0&)U3$A&1Yq#Ug?2{sasx9X6qJhHe3g5g>!+6`F-yL-liz9x-?@r9- zK&5mR*(bYfC-vG%v2xt|HB3U(enwhRC9^P-^zUz;Q*2j`WCYs=>+tjCId`16-Ap_W z!Iw_8j7uEqXq~W6uA`HafMNA645Z13M^K8O%7qH05UAHVmk9ehu2;jKA9B_r!L8Z% z2;&Lr`6li;0{rU#fnGpj?qid{4UH6MX=v6#v{_7UT;dtrlLRb+c#fcZgqLN(OKW`n z`1vo{r0X8GW~FuzNP$3&uR5+~2q28`x?ijeanABXJlxcGrwXKM zM_?G%A=>-%Vf&pdN@!7f@kNj4*c&p?McgrA()oeuz-a|JNI=-4PN1vqUt)=bv3=ug zH6|MiKKt3(qzxXQ0udl~IdP&KuR>gRCi1JRF&MSJzn}rCjRwKLbwLj`&)4Hz^P@)0 zC8y{l@q}(p#G9#9Gy9E`8;!3t(Qml|KPL8)ZU`bVx1msL-6K6>e4@+e=ga6+i z)v>mhpbtc#!LJZIpMZew)7aX>m{;fZj*n8nYbbAm$r5};HQdSsNo42qEzl?*?l5!<~@;@pqU9alrih~=-js{6`2-Do@Vu;wR2rw)1Jb*&GD znEa{@GM{zJMZ7Xw&oBG?J+Wy)F`{_4)nMW7$Z?kKUfv;Y4fiIQOBX(MZnYS3JDXTN z`NR!WnMscKA$CU30`|XK;pc2M-tW{Y=2{nyszDEoNg9tXUgJ8^zNw=EY7$(N=OEbK ze}do%xO>eZ+{x6b^~S5ka*XIa9A@=wX61p%@5S&;I;R!-_E=_`uhBc`a&hSw z*V9Y<2y~4m=K=AcCJMAgz5YD)`dbD zH1P5UL;tGH7JU|-&3X9FdzRU~ji{kxrgv<3D0#yl#uW*7I%40#cks)O`daTT^;iya zkrj2l=1v&$rBU)j2)vYStFOra4nk%z%n&H@q6>={lj?w#3Ue-%TZTekF~o#C7@tN{ zSMG@oWK26QuW>6TbqyTZNQzp24%N7dGDcQ-4O0D+KotAj6AllG^M~<&MrcS&m$|ct zF)k)g{0{SBj2&E_+2|L`mBkw8~hm!caAA9q{&z2O0j+!yX}lsO#{)~I+=TDC7q z*#_;Nz#FklNGx}8Z*jy-&HfDB=}(u{eQ)CgVJHI0Pt8BfZ)9mw64YULvR@ZfP4%i1 zDAjp>#S_tM$E4E!E4S}dg&0++X>>kRHemXi-q=Zm*Vw_hd)e!pJf!;>h)8JV>}{ncdq{UaU3vF*#Wv1Wrx*x zDj$A#*E&2I8{7?h!LUyEENf@N`t6S z@b*5bhtJEAYqFQPj;)o0_xQ&zDW0c7Xb^3m7JYDnPHW`UJng=X13O{VBo7l^of?mL zcyS^`Wn}lFqk4P>%Ty|ZoY|Ut0*2v4GGsAzXCp{`k)$k|oy#Q3v|&G<(d@B$Wir=e z?liH%q;E#nrO-!wA-8W$Tgbt}O8E_W`VcNhCoUUp{Ak`q6b&i_L0O;oACt(+-$|!H zi>g|eiiK=WhL_zcU71(g&teK;ZtP%y-;+sXlT-;AAAe6k z)EdV7Jc;oabijgTa?_fAWbHZDwM*$V&r*K%%BgtkNLKmB&uv<2_fM9YxjDhw!+bNq z|LUxNo5tO}t|Za~rBs;qOJ=7RAT!`9n;AKx5xEL6-vtzjQbQV<^e8jb0%M3^Fa5uut_(dfSrzCF7VCdy704~IQf z@xcakTfoU*(FST^U0pp}2A4?lqHAxD02dpRXp>L&xP1%ZIQ?q+pVrkJ-;!ToKtZU$ zlC-t86~KLceBK4C27-VyxY0SjaZhX^!Kw|adpZ!cy7DfvL2VHqqBac z!e5ctWBy9WL^06?A;e-jh1yBi&ZZ8kP~37a9qV?U+F%8DN3kYuLq4>V>TrNUMncN! zY8Xo0y+|=%Kbfxn)`^MQhAJ>&4EHRR{56+pXl|r2p|>$1zsXA&h9Ff@bN z=ds~}Dm5!oJ|(h59t%Bk0Spcl`Ja|-E$ej=w=TnYl8`{n^oHa^ol0Mna7Pr0651%_ zbE;s|O`pa;s$baWu&J4daJ2)E4n8F`Z8*i8Ijs~pj9ukd>^4%%7UFx1B8uV5EOs6{ zmFR``LRqWQ=9IOlmf?;dR<@;*Lc&JWXA^jR3}$=AVp)<%B^Scb@T&%?n%}u^5}=dq z_xIkSoQ!*Pa)vp}mBsy8SNHU|P3URJ&sKNX9Vy^uXEPtcGbeGp07-mNaBul1U+1qk z^!ng3I?mSTcR}1b2xpJnyc=&nZ5Gb9{hjDLFHWlNnS2_NNtUWtofB~DH?G#|cm35H zr*@1(T)~09&XG&phsS9DSd6(ZwAwx6w0F;|C#uWrwm}w%X!|3`>vrf_+o5|h8avbZ z(Y?pm~lF<(L0yk%} zwqn&VMyUWIu}RMWg0CYVb`K8*Uf2$DjZr`dyX859@npcq&Pnmzf z``gZKk$7Kn4P;FbuvOPxoG>~stDH<R?i(6H3`zdgaO!Ta-6bq+ z$o(hPo=syQbCUCx87cx!IH0bL7@(SK?Dte9n>2{1<;OB2BauKfLR?;rQ}?Uhkl+ZL zX-}XSaIti_z|YCSgT|C(i+XSb+{@e%JT*LBd`+(S2wTQoOsRf(h1rL`JCt^2l33-5 zyk2$IwFs^Bl9XQiDiwpc$;%C6ZG{`32+t%@!O5GP#LSqMl;SIZQu~J^?qW>RW1AXQ z9Rq?+XKL>fLq(5}?x2t>$QE~|UC)%yr;v7R_uqV@^8v6AR`tLFmAoj6nc9+$uAD*G zuBt`mSwWBOFB9eWK@mz<6NgDfEAxC#uMv%jXhy5p0A1 zF|^tR3mwu%n?${Kmj?Zz@LI>0T5HAG`L#`jazxr^f|EQ%)!I+8_j9&$?<-1%;2aSr zpk2Jg16sfKW*14JIMd7mA&~!8eJ}rCiUUFn)cU+9Dm)~LlV#V5yd6~xd?xL{m)?7= z#et@JK}1$j=DdW>u7sR4^X@4Vlg~ows8bCC%P%!;Tb^&&@i3IpCl{O(FVqhx%&@$a zG)u^LQ;32-<4E-ZMHNPLwPb;~8tv$aJqu^hUf-&aq)3q1HaA`ulb0iOMM@ zH>sQUBeI33M^sR*<$3d}D(n3t=Ed?h9_}0dl`Es+_5>tBj&rGR8Hw=?pIY8 z%$y(H-Q*#nI|*<3e6C0&a81B;u>AqAT2xI9hhRgqZn9DpBb?5gbpZcEb>_qd2Z4 zK)REF6s$n4?Y>t`zRYG3u0XZ0cKX#Wr&@Tx1JYtHU)BIBdex}cvN-!Bx4O^Np3qMn z*o=}74Dz%b6&nsECItfj`Vw}|=Uu-ME$Qf~4k1Y0RVzS7O2pztXo} zE*ZV9R*0LFZ)j+0lB3^Rpu%bE@TBanU@I3-ik7iTfC1u~REq@NIlNCIiaZRBlsSit zZ&8whDQQpWKfHD`Z!zTeDVdXjMUwub9ybG@F~zAjgB;zd6|j~2ifeCrJCE4NA~O&t z+oGjzFX8ic&hVK%xlb8WbtJbwO${R!A)?J#BDJ$;J8m61MO|uWM}j!c`Rrp>{&EvVL4|+7oI~- z5<%>j?DAp__a*)=s0oA(GERDyA50>Y84&oq&Zx4z_v!V!{0$hNxkyAKsLBWfo0>9i zYRT?FxULlqFsia#4?G#=(<~yz6z17~?f=}DsLTIoXv3^pUOkZh9rBKhKa&R;uPW<% z+)1q zge@jfm5^voz`q4(^bPP(8z!YYJ?X4@*b)1Z^?|4M&6C+Js{&$hS4F@a)@>DfUlP-H#=xW~2>Ymzgt54gZcx^yhR+AURj+QJ%Kc<>k#D!EDCM|XH;L2)jY6>Gr_jj1L6X`{u zOKzsrgw;)Sct3kJ@gZ1!H$y5ys~R4(lHmbMv8U_dyz7t54i@;SVV>MSp9~GreO;jZ zC-&V@x6;$5(mvB~WNdr---|HH)tZT%EbyT2{+58T&}{Y{tDme9ae3)!xGkIcenmT> z1&7^emGOf0CuSD8R&S4_`C{L6FU;JoE{ryhj)>DpXK;_zTyZBp`sFK~MJsw3nZ$Hi zi9Ryf)BW*kSqDt)cdd^js#S(&%&)}o`);HMrPx3DA=XLBpE)1;O85CuzuF1weGubi!RoQP7M@J%Cm7d19;@%wPc82+MW4*YvN(H%(f7|u3dT!rQHQa+6v5S-z^9WD5lDrHt( z)1vkME<&EQ=%2uV0gFbl`Xe>>fGw;g(eFQ$co%7G*$9_C(ve%xNt>gEUz4fl%`~qE z;I?~WJ5Vao_hgtFb-pxiW$_?}dJ76QPE87H>s1LW$KrSJ#!2z^OqkEcLI%e3>@9e70^}bsKI@j54ks3Q4!&D`0s0QyLLs*zo}Z%K3XY?CDHrPm+^(nrRL8o7biyUl?{rfWV0pF+YboOEythZ3f(z2Aoc8|lfYk^>H4I}z5WrN|J z`?Q$Rv-;W>{I*QVu{s?$Jgl^t)y?#6R1AIO88X_LM5ZgFt(N>Ugl6={>c3A`G2!_| z5hk~q3@jw?4)dzVuprCM9|5>A?SWq?5}oQ2&|Se21>@205ma5%0b&vm3B~$X18gV) zXjal-aOK$$>3jJ4E)U-Cb}WAxkWb}{Aa;T>{F@&i{9gdrVV(&zCTBc989eEk>My%@ z^S@NAM{fA=sStxtL8y+;pClzxu07U!Givr;YiKEZ3Im%ZrCfFKx@^y>3QG=>GM-tS z(~R@CNL>5dX`z77SoJ1q&1t6^E-|684Y!%qQCvlhSBd~dFa>qr49!1BhLFNfM;h(y z52J>9c;bUWv2^(I8d$fhlzc2=n21mtAmP29W!4vl<~A0-=d$sV*u-aif$bEjLPN1Z zv~eX@nZCNd6DWjpN2cf`fGZ+}){)Dex;7VMDO<>xOWe|jU-J0on>@ZYZ(4%y5p|ui zXQg4^g%g^ys9bkv@rL)kgt={cJklZ8V30=I(}eGMv}=>cFNK3<{!WOnA2~dy6&xw; zWoIg@ph^vFkcU^;XdcR~g{rtkXPW4F5%h3ly!28D+=t?K@cScCXqr+ejD4ILN?ER8 zfeNQ2@`x%|1O+y-Db?P1{uhJ(s2|40;v*)Kzf*T_pHVN2(~h-es5M{s?b(!)(s|b| zMfZ;6W0IVnYCJzoJV%4Q01Q-bja)1|7hG~M6e?;n_?oX?H8uZjN@=D*h6gmMKm_CA zgfF&@bunf89;6`7T}=Au++N2>M^pgnq<6_YA#9DWa(&qgZ7{Kb!$O`X}jyitdlR&b$8;V`rt zjF$d=eaik_*TSk?h?Od#%qHDhfq@WV4r42RXgvcyhVubFp=>W53N^d5B@r`U2(|C5 z!tk>Et6w?`Zx?9fIMz-B7*sf!KY@6JEkRhjK1vWK$^>D34FRz(GDnw(a@WCn&iyL=&Ada9U!I zdzV*D>r7Oj7zx5t8JBNjdz&Ja=gwPe4m=L(0u83VmXd3N#z3&)w(10}0JI!8^Lulg%UmSO4scKFpsN z)+t@Q#zHi7h)|#@fFXk7wG#wmYDk1RH^leDos`*L&W7Y2_s&;^g};l$%6(0!2o5Q& zL7oR3i>1TWt;bd^KgT2@J@?DpsLV%_^}7iUYBQ~_3)q}!>c4YAa=dNEZ1t*+u}{Bt zlTXdKBKce&_WiHk{E`H-Z+&!!5-n3dBU1VDvkEe#UO)}5%|=FKFl=1S4Wh`@&!VG* zXqlqeg}WywZUFj~zQV(3BQ%O={LD7a2C{(lR^z4{VKM2y=U>rN1Dj-c&=WLJ8BnrT z>KDL91j*436>y|We?JXO8BFJze@Qwljjl-ktSIKm98EmFZhSZNSq%j5pVH^EL2 zadxPbORBR$7^2xv8>{`QjFpN<$CyBIRj-B(!p6q-(aqG95{hlGS?me}mHf{`Ojdnd zxXKS~Q9R`@$}!p|riZiDEse0)qDuSJCCH^|o_^Iz>86{cTMJ3s!H1t`1bo52IU{J39dT@#N8%-r_Bng%6p--nI9o{2p@X=}e?9*I69wB&T(5x2dtfQ-p@!H|+8 z%JGox;~GYbQ9l3H6&KV9jG_vvNE?CijvBl%-5m~-ThOp@juIN_O2$^f1q;i6OZ5oS zu_Tf$`Vi0u)vVTyxqf~K7$~2!yU6(2s0^h8N%!s*Pj91Aa4riE*uPB1#>7TUB0~xT zca{gxRCp6hDg;!L(RAn!&D&XLcVPHUfQmK`u2 z>wf6GYd@FVNv_;5)ZHc8@K3{zc5QT-3l~5d+LOoc;bDO$It;vM;-LPtKlx^_E%jM^ zNT749D;W0-walO@`^ns>fbB$=`nB)2y~pn>lCD7&!a%#Je+9$o9cH{f%E)X2!chR! z|3V;%j*BrHUZ;LZXPB}!p8VKP^!V!W3z*x0+1{G28mFb&&Ru2dQnITv$iT(%0%J$ z8kP6qd7)CeQKD&=HE|uA4XrygrsYpSYR!pAw#VPEM z%-|l%-KPyx+3|FD4OxB42pZv2R8?G0=RD)DZKBs%(0q*;M_z=hAV>e1oM0nMnzcx| z>Y4Qg0L82emPlSMPqr5?JeabBL8YvCC`*`h40K0RU+i71&sr_Daip?4rIz$t?L7a! z2xcAL=0e2o+C*!|4T?%%A?$xw#H=CX>1tT7HXFjO?tr(E!xxaAPTj<=S~%f?KCiv_ znh6r_CsWwHoSqJiC4ywx+HHZZFErbz3EaR{S~OZQYJ}INqv$TyBkw+Hrh786D)m#XoMD|Ig`lIuKE{c)@ z`J8qTQ5J7dJd7xR8P9R;wog!AFgf%-G2mI9*(nsQ+3}$cgT-`BH_Hb3F3Wd-a1gw) z_&lyi2mo><^W$2_b$&+&tO-G}vhnPbleNq!e-c^(D64sz6Zkzo0&8aN;#j$E)ggCG z)G)IO?qATC10R@}xOf)vbSV{=tlguqWEjAlhcfGK%&XvYyGyniIQUe9x2BFz*frLA zQwj~Q$~bpn8m;e=tf`R)KNp^0$Ba{uQ0B{ZV|vnYJ#^77i(xJGX7)Pe+K@jCc66va zE4FuNcvh@WUlocg~~Zz@Y3NoSg{$j{C~Rr~kGKaMbVuGDtEcm!YDCtDQ9`4Ud_04J0Lms=AW4 zF&q?(v(4nq+m&T4$(RWiM%#%am1f=F!zUYcrY zo@|kjhg4Y7udEhWMYv_;!&^2q<*Oq{InWUfEcAJsbkZNiqj5aFdyje2^sVQdNGebe zYY5RDS3{L7hlqJ(yq};O%cnqEO8O+GB)fM{twfn2g}ey(pq>0i^#JVq3CFp;bu~97 zu$0Hn@@kLBC1+fc;#>tcDayj>Pi^HzmVhH3#1lu7or)W^;^sc!<{h|K)BeqnNe=Mw zK?x@3hp7o6yX*2NsP-GPYcw&og(Q)rr0k2`WqY@9&|7E`3qhxz6qo5k0Q4>pZ&a(_ zHQN=5+XF|$E;o97h`CiI!lo2OZeJ!D+}2TXq611Nu347xl5m>9ffm?Hpyv znRd`nTPu~TY~C@H=Xv^vwBvx6iK3~6xj7u@moY)XMYB_cMEKG|^YuFHYgGOH%<mLST_uBdaCCvQ! zoA3=y5#s`)vTH!v=Cf%Let#34i28^;QXm2e@LHYrqOb;@LlyPE6S6we_x;sCK<&j)mg`!*}IU;b($olTd z8}(l19nhtW2)vpJ&2b?GJn-#_Z{aUrEbT^Hyk0gqj9}slM7+Q*%hQBfF4YP#%7(uY z2qea+#Jnr94ok;yfniwhkGyl{;*!&NJz_UK^~8$BAU;Z4u1>2-QuuWWf{i*$Mc3FF zUA$#C;tCJNjp=Nu1_|{OYjBISrSUaTYv5*-2kNk^oP(tLVA$1d~-L; zz$!PZ>mw2nv`S*am8zHXdF2xW=dd^H2uWqMN9>X0Rqfzr_D^NO^}zgf<$eFur$ZDq zYDDE~)IEY*Rj&q;4Bqn)#_E4mGYk61{FlExm2Jx6mEGc8c6ByH;k3e~kTP;Z0nwGY zZ}9piO`Ne#;T8|7pKJM?v5_=>sKOyRw>3=ew3swp;>&@d!H(W zHo)=__@@%f%-f_;79ji?YAjjl{{7yN9H|*KU38?%*UwLtX7jtfrKsqUwJX7qQ%}>v zs%3%+)*T#_DtBtNW}7-69AA}F;Jw|(CAwk!QG$K~<3oEfsd~!`v_8cNkkS`E_iP@E8-w9;Z|9Apk8yfEnX{q!(ynKy-!AJ z6|y2kw0E-M={loZh+WowtR8r)m6Zp}3QZq!b=Gy#`{hL;>rxio;<~-Q>T~=aFrdCu z7<4hqdD$B$P9LhBaw{4$kW+xLKx{$+R^zQ+$9PQk1qaXA2A~-06Ss!_uD2R2Eoq-r zm^LC8mO8cGG5MME?lrLRR))PKoET7R+QGOAbU`hVGA8}QcNpjoGAd)l`!~V)UuAI z=Hg#rJIM1kTShe5@E*ULhA8e_olOK#LXC6qMVabJOVu3}s(pshBWQ#YvUluZCGihm z?TK<$LgMPpwMMyC&D-oQIDu0Jtnds0`FQTR$Ovf^hmCgUUm_YKVyNDajH4e!hocg= zag@*iFIj*%A$-l`e&{{bErHd?Mdo*b<$Lm(>_s1qC50873&-~Tm;20J#!f=^zhA#U zN^2fiN~pk%^Rwu;N4%U%pat}rVJ|1RxqOZNYn08<0mkzQ#^1<6vV|PGQ+cZ_nrs6# z?I5dzE%<%^48aKXNj&*sCvjwjXeHw<2ga${SvVwfWLvM1--VXi=q@Fsq_PuVQ!+~3 zu^SWz4!vZG=-)O5Le~xXR=RQRs-F}bnIf^fqtu^N7TA~$J{#roS3l?HQk_)1}zdI4Wpm9})i`B|T$HZD&)L0KCtPf|nT1^SK z(kw2$Bd2gK+rehh{{aQbiicN{e$%*S5=_K;*Lc{?9*c=09-r!07lPJ%KuO27w#Rpw zn`^t0(de7`QUAV8SDRI*57D@pu>%tF$;Hv^o7px^Ns^`G@7D?j_zri~h%gGVis0El z%pt_^+!K|OFsEal?&3r{3JX}2kKY8&sA27FQkmAKotCN_cYc4|I6bik{2 zx>QO;>qY0Uxvq$QvZ4;Ion|xl+6876;?FZR%*xdkLf9_8PIh)EBU`F@H#`oHmwq`* zBeTd=p+26l6qa?V-J{*% z#B*SfdC;-;+H%sm7P5wgagkNOjkuN3K~`3iTYJj>&-bsSdO03&OH}H#5qYe(yirBQ zWmaqKQc-HaguzKcl29?fPNMtXlxQDoQ9vTYxDE;RaXTRjfdT-BVcm310fTCGDAWs# zTvfDM(=9ouZs1h;@$uADT;5kVP*_!QFIF)k*rQwkIloQuE*9y6h{YG8700ZZ5jN{Q zKA*T7wDDT@V&^UOTtf(tTrCOgSG+5RZvxZ_&!xm4Sl6ZI-EUDAJQGc0>@J4>6zP6) z&DHOm(;ag|XW+b%~bMMRZs?I)p|MnMaeby!t^w!lLq2Fbo zKdMwBVK{u@-#jWQGiYik3Lsw@=-`YOYB&KXt`w0s&&Fj!p{TDE5M{P31Lhw$Go^k_ zxZfv5b$)q=*|b*H%ak&p5i%M-YJ~F{CWFBs0WkEFDRS$qYFqadg-c5PD9zqr2Cp@x z_s={Vsg^4Kk+}GD>aZ(BmG3{aV)&)Gcrf}eE4|0^mB&@mO7+)obFSpp-+7NUa`+9J z^Re6ndum!KbCkZ6Mor>=Pe}xJy}byNX2A9e6b%?2xBj(z8cW*R`r!$K5w`fskQv-~ zmy}Yo!ojg+i+cSX^IasidTF>c0{l3Yn$_0%EPWBx4dNmeT}}L5%-q~je*^>oCXFDD z8P4a=1D62Dke$6O*;@t3b1a_EO0@4(eeQRNIQoX(h~XiuXw8gP3INb9J{aj;9Jt2xXkrm;Nd zsBYn%QDnGkRQ^%l=AeUttHGx42Wn(haQFokMB~x0Aj(?CdV;PV^sl?DH%cBOFh-6H zYY*Jev-+IJt$iC=hYG9(+(pV4W@W{4z-^P<(VVa*jl#@_t>~U`?sE-G+d!HeF*kPD<8XiUP;P<&t}0EYMLM|RDJb{;T= z(g%i%axeqZ7g+EFY@@Ykq1RcVzR8!db^wA9QEM~=03U#KDJTC!USQ3{!Xg*}s2$=G zm59+$8I8K)bnF|LS@Z7HwSRm{Zixkrt$X%biC1Or+{Oouy+nW+g8|V=4L>b!@%+#? zqY^c58Xf1;VB5oOsEx@-Qy&|y@y!=mS}BVbco5l*Yk>5+L&aV_mbws}_Kb-KaEF38s7E4<7a(G-PcaQRZ zmqBJhmIQ$KXR5hM56BX~YdUwFa04ENshN85&plsA5z48Gt0xaZ?;X-)^6ISCu~!&O zO>r6D`V1tlhXm#BVhR=S*ORSZT_b*zZ(bW{xvMQ3^s=f3)jbT0aX5_i#;4rvY?6v} zOhJY=B_%vT(nUAc9FgS9WaMp0gy`XlX~@!i6vlSI@zo*z=Xv8^5TDPZ<{#Ie@b9YS zqW)IZP3m>G8i#&!Z4GXmY0bMo^fEb+kbC3PU^!+L6T&H(0l1=a-Kh_Im&jiq_g3Ta^9eOQ{f z$)syx59;Q83$rGZw;?fXv`M<^-@>=c!izqk8?hF%YXTI}!?GY?MGjo4A*Q##kX;H?#>>r=}rB2Ub^(Sv+KDN_K&R zT@h7X<+c3MwV+Zy&o*d2*i`ie!q7~cSA?miJ9cJ=E$a~x{NF#aFyUwzfZEpgPoVvB ztM60D|2IpYY)&I8bD!Ka<{#Ry%R@KzY3)0@6Wwc87JC5 z)4Yb2`ec=v{NHCBvwqQI`hG&E zU+!oO8UfmP72i0?A+EUyp;s~{QgV*cT}=JrWsHQ*`I>_MR_eE4tldTZRXizPOa}|I zTuM&@jEg|LOmU~b$NqH{Kl1`dPTk_C@2+x|6Jc|CV_I+7v*&T`Nk;W?1kF?n-)Dpo zK3~r*s70Oq`6CAcP9eY|y=C?MNWSF18F+R8PW9Fp!u-ZN)0l6-a;&fQrp%a^+aAkKLb3}mZ) zodUKLfT#wi%>(Jf=1D*>u(YIY=ah_Ay-@S}51}_CK!$Ms%rD59L}3D{zipMup#fLp z^Zmvl5D+q`?_gr&^$)MLM36~$l?Wwx>mJn2r zxk%6V4gK4fTdHcgs=7P=^OL#}QpG}`G;3`&Ww+;&d7RwVGYH4cUZ4E>lv1@Zg#t0N zE$=2_X`q?ec>=xnRq=s_VsLQi13%jt;Nj+G446r?SX?Dv6jP^Y=%9t>2hF)cJLF%E z*GIilEKVh`j+wq&8+8jpPT=xr#GrmCi;)7Iu4~q-C{e^FbkbLaPpLaF zTup4!h~Sx<%%`F7(vZvN@Ya|);Qy&l7ZYY^Miw8F-R-s8SiYA&TfWdKQrnR@a`C|n zN3|TY9(aL5VBN{SzTv*tCfsb0kS*1jjD>xT*PjeUJHQq53sjP*nvVrGAIylCo`6l0 zJK%*ogm?;E7X@;qp}};(#qY(8=z~kEt6=stTya`hRk8XU0nSgDYAb*n!`-W(OiS$mjgOCiSm^(CojCj#JzMy^c5pGk^v3fB zxQ!r%9zun}T-4A*fc&>l#+IG++u6uGULNVE&CDm*=q z3JKiyF+W_P34I--u)8z^jzjz>*g&+U6<^JCt~q?aSK5pJxRf>+0IUR_bOVWaH;S6I zjIw6Qt5?S}=T0I%4ac;)ktpD#Xi1_a*G^Q59);pK5nFjX1q6J|RulM0-e1#)Ry&Lo zM@2Ku9SH}E2!slQ$7GY}nh=RIQX}FzJt+BNj)6RJN?LRph)9nNW<44$AyHU;z~?ak z1-wMs9ktR_<2vQ#~vi$Xa@CSH@2#oHzAUYz+8b>9ANMn9_tn2z+r4|OE zpuU{}St=9OM370WSYb^pjLW<3N-+#D*#igplcqm%B;*HJQe@%lG-tnM2vwYz5EE|h zS`KpK9H6L#NsA{X9cHn?0Fb5M0{82&KxY8C+UzheLm@YnV*Y18Z^tTNf1P{H8^`zl zRHO<+I6}p*tK|yM;>Pp%K+1kcdZTo-DC?Hp4AH*9QsiR-nwxkA_%MM^7^4iuI8P)B zwwC1XS>;%x>~pX!TMvGcYjv7lR7S4MsQQu)Cf-kgUu!jy_q#yA_ou@;uQ+LM1k&d^ zzhxKwHZQon6eUQ-drrP(C!~s_rtdf~*I$dYf@D-`tm8{y&B)9?a7BlQmHTprDw7Eb z@g{CwkbvtEWY)szhV)e_U$mSx7-*Pq!gIYIX!QB_tS^VXs=AH|NF`E5x!Uwo9K@gw z6cF%ItQI1z>9*yZc47>qG(Ck*FL`g6=WHb2# z%u0=3W{g=9(65iCa?O+iQS2iIH}6`fT$KhN53lWCuz1z|Eo2Zn8td2sqt3onVLIF7 z&QWiMnk*e#No(7*6?yYHl=@n>M%9}%CwxZnjcRI3h@M4unLk0vHaIe}x>$Q24%>=S zj>^KC7$W%Gg~)?_vKVJ+&CdJU&ro_YVZ`k{KzdFC#O?t_#rAn%uqkKT3qJVmK2BB~ znvjMMR{ZGj3e$pmR#%m$Y&k1fv8h zdd~F#K0zREwMdP>ND`K9O zl;$@e(cE;$4tOLZ`W-3wK$6E7hz#}#1y0N;pXTD2F0R&l8G2yF@0{6xP8;nSS!LpdZ)!DY}LK)}@T6a7bE-^qu0oUCQY5`n8xWK7(z?3(1 zxP$}jwo-;8$H?`Z5x$mwrGU+h=r!-h! zG|srl8|eg$7^005n1kX!afb%{W2<-k&X(?SQbGP=Y@|fXi;_ z;v6K15G}G0w7zD5$nYbt6~S_rWy252-)w3GmbzwL5Hl#5NUd5^HZO~H*zGy4w%MFT zk+%rjST)(uyb4xs+AyY~u|uXH8I8ENo8a@FpyjgN>}D%77gtL%tUzmqk177;kjKEz zPrFAKb}p`=4W)RgYNLGWH1%4==zB}JVQ+s9{t?x;2D%YEqNd=P$*#g2H>w{oNp)Oz z0C(YG%}OW|$i_;OwGda$3Ukj3z2?R@zTO{y*!|&;_P+S(6$O}*4s)jkeZAt9<{-c$ zLLqf@hIT3#$HsK5Ha%VsSYV^G!LKmC1n&<8iToW$=tG(R!Xe1&yf060(1xhQe+Mb} zcA2<+<{0=HP&YtL;FM6ycB~1vR>1+US3qKC3^IH@*4kM=f5Qdr$6&v?wOeUe@=#z8 zkfyN`B5N*O57ZiTq>Dposg*{#)T~ zPv{8?y=?ZY;HZzGCi}&cd~jwvu|-s86YlHemAqo}d`T2xi=C#V%yN);DkC7k0M3r} zcI-@F#!_|0Qb4%}pxF(8WwHd01h0^cSVb*3JJv{+QCJ~;XitYzD$pEZg!>TCTroNm z{)o4lEcgvv!f9SI&4kcf_hxMb$p*4J}{=eRX zR4gfizo(vKGN>msrV4z;CTT-%t1o+->C?&{9?OA;rZWoi#Mf8Kz4pw(t^-ZzKVk>* z5`;t?e`^&!(#+uAU$xdwfrzw@b>L<6O3ly@y$%Ekp4jESAbYc(BH z*zZZx9zn(IUMWKAqi-JP46Uc4!aAxKYV>C1Y1e^6WQ)o_C?nH|gUB{ft7~dWm#rP! z&o}|GYw6doLnWK_d~-*wKYp#Dw7jLEDz7f4-+KLu2`lw7V6lz;Cb|0N0&5l*3+Fm`yTgkmgjl#-by_*_wxc$aMS23*IRc^^y^X6>?tl^mBLIZ=x67IE zk6a1P3rnoQ;GeWEN;YWAZ-&L%*6B$ou(Dt)d@H|sq=0}Ndpa%C@#FcWU!F#JDD+Yy ziixq28=o((tTeI@jvN}Znp(Sf5#04SAM`u@t=+y`4cyylaH*<>GzwM;9m9_gduidT zvPn_LkOr{;wHKkmP=d+MS#A$bU%scq&`h};GrJoSKV0dksEqcO_nzxbl)m_snzoA!x2ONL$!@8ne;!l@LSj^#^MpGuZ;&p>v=PgnXjED-bH!(m{mw%E z4rr$Sc^?^Oqb58{-|<1`>frI33YDc|qxI+JBpruAx+iWprpwDbnFLNy!xIP_8FF;Z z#cbo4q#;Sc2D`M@j6(w_NZol_8_O)6D5WP{|H`=HF|O7zu1CUs((ZdGr{nE zY=RM-I^g`F(*XT(djd(?ly5gm?}+oVm?AV?5j3n%+9Oq7MbmOVJ&+n+w=I^e&4nrCIt*2;IwmGU$h(viUyVrZI!d6bxE(Kd zruEvo%n$fAh-OVK6{K1~qKFbBR=bm+q>ZugaspHb=f0Cf0 zX2LxrVOuH~Psf}(8Qtw4SEcYMu|S-2AT%rFN`9KsW|+Y?f(7k0 zEcStrq@@!x8=sFNW0&n&1{;Ni%=QsK!sR|73lP>sSN6ficV4<_W8q?hM91 zY%%$v0HDyHp6^{*qz=B?GuOWZc_V|5E3oCwE}V}QmZ@h6alddYcn?&PsLW!0wgC$4 zshO3Mp(GeEPP>&TfXQSJqK0o*x~JUCnzl}6^;OD+XIFc549tN+O5L(~u?+osEb;Bx zOHqTqnn=f1e^BCC-*=M@*BYglr^z5OK5=_%I}~7j0i;{k>6MSlwt0K={cICO0zA(d zHfp87@9VVB(9j*s@LbbKoEMgAJf5j7W}8F!Jgp=!WcStl{9ok!VD{`+mG9~)9Ge+@ z)W@m&Ov&cXvo7f{ds(C27+R;yiAO9K-`z3b`VU!HkBZC5{TWB+{VHeh z|LAm%KC`(ORZ6cD%*3^svJ~-W_1}9uTm&Sslw7-!^kxo(tIxxWJak1xQuyOw$CJ=V ztBf|4wnWBs6v$I^B$3i*H05veoP&pV*~k_Z@crr=X(vNtNN&6?Wtc&63`_J=yl=`W zW6jOYjyC>=Oakj}YZBSondMe{oKz&-8*g#Wu9yip|EQ)`W@3QHUaD1JF+rI1;6?Xl zseccCx{0`jG5UcEm(c!L9w18j*O{W=6d;7e zo$^n>YLt)dyyN^jV?-X{E?!{Dy>9v7jXf^{AdoGpL)k9K(SEz`#);(NZZ|(pYjydj9zC@sI z#;As6$l2?~&zb_e?%KTxkp9?^4kmt1bT%6@Ii9o0Vm1MnjK>c?&iMlBL15|%^Znq~ zaXW*9ekqEa`ilxj)3QryNnJjOF*;Su+QbzygK6nI^K9HyoUjCL_^E4YIZsB~VJ+K9 z`iKUp2AmaXtLLCGT4E+M%aq)q%&c7V(;L;{6Fm+~T`(2CV&n7AAyS;Ov!a{n^7NUyn^1_Y1Hg`Q6O-^z0SB42=Nh?!z>N_DF$jN56A^l=&>%2Rx z(qf_*UY2Eohn6b!P24T1^YhlA@_nX36_>D81%zs}aP?(wr!zrZ-TmZUCu#vS#Hoyv z9%n@PyEnAog8t5k4Ct(*rUjOh@B5@jZG@lwKmkPDDt;Cu#V2-xo{dgl6+J#k5YU6b z&&?wZ)R{@$o`Bv*2RPxMr=a1bj&4lprxp~7bq54T&FcXspqRHe5B^Z_f%j6oCy|e@ zkBXrovZVWfE(BQP;HgW>hSVQk(g>MhC$NzdhH`pl2A(3klnVD$aYC+~%xa&1vEAa` zWS+>mB?J)ouyBq8@CrJ;DW6_*Y;G4I81gtzk+6lxS~;)Cm5-%mv%b%8rP*tE1|StF zcOa=d>alfT$DQ+F5s#tw^dm`%SXo&aSy@r7)>|Mrv>j0*X1G=(f`c53N|@#E+BaVl z0N!ySkWBGPW_C&*7nY!j&7-lQzLqgZ&h6}Z-M?YY7$X{@nU`16oHBkfI>}!EGkC6x zhBV!FlC4c5kLMl$iF{LHI*9H|nkNoEijwt-EflQRNnk*1ij+mB_ zQBr;4*1ZOL)|>M~wNib{anS}eD~7+HPCb>==b;)Y)a9y_p%96|RB5nbknwwfKy|gT zd^Q+#O2wadD%5pxENPj5(D&R2TQU(p{D{2QfgblL9R}%4J&@5`C$r6D8cep^JlK=7SQkw-E2wLc( z^p)O5miH zAe&DQiL8TThZ{8s-VUV}mhSYZ9H&7oS$p~!0X&X~3k;n~p?4y`U0G8TYY^pNcd0BB z0~CdiLE<~x8*BJuinQYTy4RQg{T|}X15yyNY~FOpUR(N_dKy(S|HoeNb$zea!Hff_+aw3TwJ_tQRLBb=lR}2Lar9j;&o7`q$H%T^OJm8Rr3&9H z?(t)W-n^e$UXK2Dj8~>+<5dvp?|WZTS_*-Qi5XGtr(LDW0(T6j7YXB8&7Ojujm&IdbiBq*K#i1W>Q`+c8n#?)20*!ua_c6?pzQmXSkoTI{;x zczIMIJW!~FNKR5}yZ*yt!f)##0TuCyC;<=@m;t=`kC37LvHVb$(jnvFBs|~=l0|Su zfgHAMxOfG{K~Xa>{7xWfzi9dqfC)@gBTlYX;o1EdcEx((rK%ugsp}1qF)`CWfJwD& z$FvqC*^9G_i@nJd-`pH;MfNmbr0FBV} z>WP_;A*K|!ZU)lZ%TLwU3V%fewynMGr~fMF&Fx)rSq;Yg{Ji#0YcNBv%kYj3vcR+6 z<-&Da3cPpRIi`2?R|RoL6$l{(T>RwBMH_* zo&s~;rTdtSE$x}I;j)=8?O2~i{mycEAV?=Q4-0gUmw0X)Z^<7mtsfI}jHB(V{WQHs zbA(|->n+R22yO@D@4j|LdSQ=6r&+bN$cPY>@>sfuKyed5f&n5&9SsdkzRz4Hh#3w4 zJu8+ZVJOZ1&v&xS@>Fs7@s8#d2wg$yH)Mn*L7=)tg?M-tJZ=tn(bM zo|2Z?gaKTxa1f$=-PF$lIDX;F3fA>z?T%6jl1}gEETydQlmLmdjwkvCHUsqO#h$pI zc$3%6rn}Pexts)i&F9o9U7IA7n6! z6#X;W7kFwzH@Xa8ZoUc)q)^EHyb3|^Dga4o&4?S+p2#BndpuzJ9S9udS?tbe|DGTH zxqWV|tuGHw2JZdU)zyoNO}Hr)a^k`fu#KN?fSM!#yh1)d#H24GM3oAkYEo(IfFDJ+ z3`#Iv7GfB@2xtp?KD`}0du=~j{RY`6G|v#Li~DavxX)&Bc`|PJUFSN#A}yM&G};t} zIfZlO?iqsDBFKg{@zX+bf+^`#$vpQ!Bcp&1?eSm&HN_>sHH18J!^`Eg7qz!%prxx; z*3bwa9fb#Ko6`Dvw7tDOYC1aLMIZjsSyO}Y@sWWcJXiL&d&})QoK3~Pw)Alt$U;53 z0E}dKhvdL}*dn}_==F~|>){{sq;d19#Y_<+M<&I>f8sVaG+!bSw>O9rLWzx?46p%p zbRQj4XI#b(!{OPPgpm<+r#}$wb|l7`snG)}aGG;g1x5Fgz7Qwr%*Ue7>=>fo9o4~} zh5uU8p&2o@44~`4Pd!qn494^iBbM>2<=*QKG#k~TViON~14DolIDP+YC1SO8k_3?g z^v_aqatOdx1<#N*8MwlHnEn(PRy%9J>N&az5BU>GaQV*EMg5k4{CuF2w!MN%gTx2#T=a5gCeq5PoSkUPaX3%251O8BI{Z*3WTuZ#}5m> zu)a>OX9o$f(kAxmt?~J=h~6KDSo{awUbZ5IdUED%l?^A*B^7hH;efo7-WRBA z7Kb(NID*xvt1Fjfr2>tWokch_Xj$s0iVhboVduRKK*US@?|qLcdBn0cx8>ZHy~5;5 z^jjEN9N}zKu0sdhuMHo%kC4%n6f~~_7$%Gfi2?`|c<7LzWT)-{hPqK%Z-O`b{CRqQJ-(p8!OhLBXwM4)Kt{)zN$E{(Y(xMlr;W`` zf6eviczJoZVe*X7u?{@cgH*qvjlke1h!m39p0-~_F|K@`%%?~!G(ARZHI-Kat>T1% z8)FYcVbiBKXObRICt_uC5l7Wy5ofaa&tR$Dk*Q)b3mG`C zERHec^SDue*!w8>$lo3`L*`29))}j?oX|}sp{?LN@S|He!lN|(`hjg=@HJVs)fn+Z zhcj`;=QQ55*rO6;Ebv%x@e|S3EGbui{r;P%L%5)ZL<7j+%14S8(yF;Fels=dJ1+H@ zyRFXZ^z)U_l>Q4S{ZYbR=Pvv~5lVUP+;k9pR!!I|HM<|NUDEU)-pCF6Z_MpFb38)) zArT!NTv|H1NfEYjV=$oRajg&2X~PA@;q#~l)Y|c@>goM4^xjLCRc6g?J%xp3Z^-$k zE8#5AM$w&xSe$&4(wp>vji#+!h{HLb$sm|>W?xG&F4fXXew^*jHJfY4n46%4(Lm(8{?J&3+>hggt#O99w6Q)MG*Xrs<1Q0K})oN8BqM?BV z#5TmMluDJ>HY1l?lwbJ&b0|P+5LD|myHQI(*oV~`it-T6zIg@Jo@|w88Ufqmwb14T zO>V|++f@voDzRi2wc$q|peouPrTfu)_NyBmyGB2nL@Yv@%fows*sM4`;S;^GK5bQL zD99UKJQ_;!Mwy(UR!I36Ht?Y=k9ws8O4mrw60qU~g>8@^F54md`}@BbITE$CwL86t zf86UKVlc?t!*yiVyi;Kn6_ohAPO$6i>lYA2$L=~+>auq%u;35Di9Mgn^svyi%xpj~ z@A>y#%q>gZua?-28Wv4IQ?Pd zP0E|)FP2{3!rq!S8k+zYbe0TEbn^ORE&0&(Y0>#?gW(%%)rGdn77OONpX@Kqrq&7u zw|d$Mtd*>8>@~K(dD4g~!$RFT#k53U$OE)GQOFq}#-*{oR*_879du=3gPUIPNZVu~ zq>|bRgN2UW4uvTuZ}MfZNCNt#Uf_X;76465v%-S%%p~l--QC^I796A#0b0W^{ZXi2 z#}BaLjUY43!rB_sP-UZ2Ag1E}s3Z#sRLso;gy57ff6-v)+SHbRb|AOuFJ#SbdP*B$ z@av)GO7c4thGNNLRWzyo^(%YGx-d{4>q`_oyND5q9%O}Zu2kv*WY9@lQJV4H=`xOx z12|{?3al(#|HaMSL=A>i_Fpp=uo?(SmPz;Xi?2RFjGV>3?6GkXn%RC98 zGc&4jID+`-REqt8V&~`X3k5J7;g?Lnr!g2&fKt|CmbT9KM1>TDEzjb!Vg!;?;ACl3 zYyU8e7tc)Mq~bo5uX16=hKrP~E;MXkch+}T!M(q3zQ+SgEs}IalB7js6z+uD%BSE& zU~s-u+rAO{*`WoDOcHSs?V_pxWmz7&;Gj>T9JGCn!n{lcn0G01T!_9`|LhJP))6g3 z!;Tgu$1C{TMbnF9x&=@(Q|{X*Z6Tokg0zU+8DQ}{Iv`40 zrFV|6ZoZFrw1z;Mc_?y+Te@5oDEaxb)ub1*vuIM;Em?8h+&qdpI|+so38b#K#g^Iw zg*?vI!ht&TuedFpPg~p6>@3}Sjl~3paZIdw6FRk)l`dOO%t)5-TG z^nQs^X`!|mrRKXuD6k0!)HGNeu~GNrYnKnj;)+s%xPk%)?I<0y=Rf_lw6vc47qIYb z4AN~L?B}&anNK?{DypjBL)%)zgxqc@*&B$ma zH+&oXB=o{<3)oFd2qj_D=RS0KM4w-$2TS0C;0qHLu?cm>HSIq^MA>O56I%o$;&wKC zQscN-j`-Kc=+cVMX}=OyUtjG`WSW@Q}K+WPgZ}k2MDs5ba8btmgr^j)5Tn> zlB{qj$cfr>5qk&7u5@>IZ+UzAeEIv6ABfFrB4|f-*M+C07GZIZ<*K(j2yN@I&TQ$Y z2^kiXZkS15WZ$GkpSF*dk1$Y)OkOvd2SK6&UYC*wDm0=e9-;zZv>QowUxvp>?kGb% z64Lnvb*6whi2o!E zBbE(RFfo*kKm$$Ph|w7MID0$D+)!p2vU|M4<9~zOeUWumlZ*Vry{P`Ccwl- zay44ht4muixXk%I{h~oFWi1w6tWi0OYZwlMVqjvXbfe|wFWKa?7!zoOP7qViEGD^6 zajEJr|5%++i~4UUD;CmB;V}pWJd$^*)t2h+d^Hj1S3npa?fYOH?gtflI9KI~4LRe7 zJz8K%lEar7bvg3Lx6eW;FBd7I_H*dKWe12{WCp6>iwY#U5T}Fbr`5^sJLXSr+@-cPIypA09Z$qcmTdwkt^b3KE zVMDaj^8p<0tPo)1W??a)v*8T#iD7=X25;G_BIh}sv+P#agAagR=-wKAD5!@=GlaMY z@M^R8Ke>s*!nL)xe_wlxE__G*X!c-~zY$<5uOo_)d~&ula|xVfkiN(t4zkuRiKgX0 z%r$&AaMw~zb0yG8wQ8S-*-w zd&IyLyTT75u@R^NV{{DKlw&f0BZJbX-YzfaXS*HV zE(J~&e4s~xnf*H1KXz?d(p9UeyCd-&c2T{G6U};vpk;323rM&IWYO(;;J>v5SHoL1 z;vre6C#YpgnumxE{Z>rqxfZ#p$sI@6C=r!RvZ$*InPZ-#vbHMO5FRmk5rp9N2KJi> zt+Slm9x*uo=w@a^#XA;Nlzd~_nh~VVVS`?z6LbZJVTs1u+jG8-C5*|TA@}=8>~}^O z4>3-<861vS()I3juWeCV8+55;e1C}q!f)^hKo|qKcD9xe3i<-y7XwX)?($V0L<^>n zHjFYV<-ZyK;Fm*-S-;&dN8ApaK!Ydoc2#{hvtkXD17BNUA)l`DDj0myi9GtAw-zb- zYM#P%7ug@pg^lsR2Mf+!8@s=6X}9!~Fcymmyc{EyQlTHHOX_^@9lHE$b_k=Y!x)J$ z5xy*oA;drxm3qMYQua@(o!wvjvEvNwxu;Nau(cg3==5cF-A9BBAWj|5IpG`CDiKo) zLz%GceXXTjouy8Pv`+Q=_Kj6fqTiZ1R=G&VXQld|rXPN6j5cZjRB;2=-1jL(7W~gDn4sTWvoLhY%``#&K}yVmdJZgKOOl z9r{nJ&PQopQzEm^ps+)weSiI;3vVGaj)$Y2|PwVc?hD_Mc$KbXlK zX}Gl-GKY=I&5fm*G;x@sIvQ7>Fm~#z?#S?sRA2H?{*^B2^|-5X2VSbOvm*`_i@|L3 zBEOVaWWUVZ35)ME9C0{lvT}YZLO!7z<3266l=B3QhvyBIEi5dU&Q(rlv04DMSna4~ zS4*>*ei z@A5Nj22-o3GIlL|#>4w*{08oK-@YlL=gX&-@w`8^ScIX2!MPPVqQ>;GvY zw$01vx0wj3O9U%jG|h^oH& zbs7mAUdt#sgSmG2isA6D(4J2R%(5zKnwk+KsZ!tA zw&2I0sJR&#&~)_|zQ5pT_XxvnZ-^cLkq8;Pa(*oQJLE%2p-U%j)Xwr#?_7^%;NGub z2hvZ${oZYR>bDpy}$2_oAyxua54V-$vj2C{5}h z%k?^}y39hrX_u^l__Pe%P1Nx2$j#h{axbQ|XpC<7Ep=~QAL`1ELK4+C4P4<9qUbmS zJZ{sG#NuJdmvL?eV5n&J>kZfoef`)AO{EA1B0|y)h*r`+s;tK9aGZZ!jb-ZpC zRB1sWMz~T0QiZGJ2tQbzWpswf9K$bo2CgMfJFNpzgoX)& z2MidjG)(c|or3tCX261Y*-kOSIBSG9b>U>Q4DqK<$;f0fjNwb`;{8AGR?k>so8tc9 z0gu&!>Y|n>QbSiub~NHDqJ2_t`)fx-gpj`zMS9M?&?DPbZ$kMUE*GH|{p6*)J(w!q z@M;IAOY4xsjWDcdDY>c7PhuQyh$awI2a}yJj#!X%e>EEBWPrveRa%UW6kxRs8J=7C z$rwaCWZe7Uhf|Oxw<(J7`#TJb52uQ?n~uTxFZ(n79g9ov6t8(3tX?q5HbRSQs z!Rqi}rsPAci3T&!fdUwKnH$fP$!ItG@c^xF$kA+tNpIL?Wfd;CC=Cp32Pj(}E9@f7 zb#5B{g2JN!#}{|h53RIRd5#bL5UrSb+l1)p_o2fd@gH#r3t+%esM+0y*X?sivRkh+ z9?qXSZgNvO?e#}*BLp~%6@dd+4jhsg61m(M5g5Z9smEAFS@GldIOChw>vUX=(ml)r zyC`%e{_sv;53~Xtvq*`N>0m^#3byxTA-=AYY(GT5br^M|b3MFktCZj8#6^ zG2_CH%--qwyFfhYNfw5Mau7yxRLvTJj|BLdbo)NWSa)|Gz;WB~-*J0&N>oSzOp%P^ z9xp`3*q@r?w%XbQdqpNm!!@*H&3FCAD!&im+SG}Et1g!QLa`Z(hc3@^sjZ5G!4jrV zNkuz1-n2X86_n zR(1ntaf+7;Ew6l*5sO|wYOpRI5PB9icIw2rnxbF7u)BR8w5(S)!+;4()z(*48-1^7 z_>TL|^WPSkhB3ef-urvuPFs;Ne?l6{sl%7v;!v2MU*>7cW+{p=mb%QS2)(ufUhX`* z`)Uo^la9{B+})8FyI?jmUeX!ik(E7EKNbPBRcjx4A$Xna${lB8zmHM5aI)nODSZc z-?q8Gj9;Ic9^US|66>#6YdVZ67+ZH$0j+>oTaiz}Cn+!o$Z_=n-ezFzWOjwU=jokZ zebt=cT%T3)1Ab1vDmJW_F!i$Ja)2;gXm1mia_i4-{?svdT<7P7T*a>{swo-8vfdu( zF^o_|3^gwY{(R)pGfjb3;Ybu(#GPhW_SAA#_N`DguE|s1Texkx z)b}WU{dNSi*1A1P#4Q|g<-O8Yw!eO9RKC*GS)tr=2_jdMwt_3Gbm2jT#=*po<437s zZ=QVX5+oSq7+?s>1{(3J4(&)<2Hu$a6S=X#T~3;>D3|jb02(Z!j)_nf-x*Dp z{Y-+91pX(7+;5~2=2RwqtQ<2l5eHavpR_GC9&zwLpEeBd)fY8l@GwPQ?hFFDl`e>1 zYd#2+iujX#D%v2aT^uH0*e_zvt-O@KgU;Z2hLzORsKXdRKo3@ub4<@b_NU*G%kjdfVxHi!s0egp9W(7ho-X%%c_gE z@JFX~OM^7hjWmLUba#U^igb5(cOwl-N~hAHgd*MD9cO+2Ip@O1Tamr@nrqB4-m%Gi zdSj-PUsgu{VM^~w<@M48g@8$O1US9bW+&$tv_o+~yE%u>s47_KY# zFu+*j+*5(3tfLa3KnFK?^E)~jtHpuoz>V?^aiJv7gu7IEgeOmY6Q3lZ6}~>TT#l;D z%sTzR-7HI%+`p-Y*kIvH)E+G(gP0&BXf}O#SWe$_*TVf6xI=&=mr^4!@c1^rCMY?J z6Y}zP{Cy`>yI9%ET8?J(*_FR}qoiP5~W1!1vbdF*N4p zcH+42htT-+IgpgXhqFr`RHOTPjE zzDN$ULF2{wdO+33d;R@Db3gNj(DVs39+!=izcuue-pvC#o!_c+j>LWr5Ye* zdK{_lj&K}v)6}jhCmoLd>PMB9aaqlNVR5l~jesU?7h_X+hxe@H0W1Dhb6x_Hn&_R( zLCZ(j?+w#MqQ&96hH&%~I?Qm@dOk7qQAP6&_RJXMg5jaqFChLlYGtMy;R*Z;zMKj> z3!)RaDV=whMGwv4)dV*DvJIuoUGz)8l+AtUYSYXp1w~O{ea&8=^!%+kav&A(REMpo z|I3<4AP-{&Q}`pefrO^i=uudN+wlY@rV!{;xHC9FTYgkoWV4ENL! z^)?kCMqobS3S!y#*AA-Q|EMTK0W2ap+DbdqIk32?>#`^^TI zk(s&ASb%Tjzi+igD`#AbIUd~ife{Z|Mj8Pz{4RzX25j!4V=p{(&;IYto133;eqf~F7P<3#hSB(4An}7?LW+WVE3;m5R_WW@ zh^wS|uTq9jDt3-lOagL$$+P z?OBPnh&R#m<=FEeFf-zEQ`n_8!%woOK>|)bpd44E)s#_LTN!(|$@3+h)`02r@X&s~ z!;9~F4;dEvHGaw05i0+>lSn=_H_oJw#A!98vJUkA960`o+s^eOR}#L3pRLggL({D3 z2B;GiL(KsH)4y=vqTyHqJ^MYaqWdj$XW*oKYs!68XYhGQH3# zU6E6a)u>v2Fo`hfD@X)0zKE7ju&o)IE4fyVt1Doi&&{<$s9?f;G9pz1|BHL*$`Btfd*} z`(%cIS2wkUbjkkf=4EmdQ4}kJ;;mLhrQHFoA&T6&;{&x^b~W=BeBt)&Gzu0aq<#ex z`;gW#)q_IanUcf|{(vF>+p0zCq8F|*-(SsbuC_yKP;5^m;Igq`+84CR^1s(e!-a3L z22Cdtu>PuHAM~^kV9pq=-udn4g}9l#IR4fy66j)dsSZ0VA3h*UG@cnaoW9Yjo zEqwoQ4ptpKO1@`m(d0ZNK+d2iorBSa3?fq>OV*35Be^7xDv`aM>Eud_qJ|UWVhj88 z8uw%3hF(Pt**kjd>hg$M7Y9B&{jjB_*AMHW4{%Fosm&&9#VE$cKRn3w=VFc`nsh3A z)1@T*0eF5DO3Zz_30nrYMZDca9COcmWkb!#@$n=;?(SNl7rkeEy7@r^Ttg2ZMArI7 zJdBNnTeAsL`?0JYjuWgv;loP|o_+fhag&RMH zYXpw&hxzx<>_*{w)9LqzWH4&2qmo1Z0oYJ&y~^M#L53ZoMM+6{ZS7Fi`FJ00oG1p{ z_D`;_L=ZtouRr9Pq9aC*re9H~kWgdwY$^i=u3T#ai@mOoq=9EU6rI?#HBjkWQ4NY^ zwxdeU2kS&_D@#>jhCEv{LYFVQFieJ26>Vc(T9W1&s?Dq$V(V^^*=fNY&b5I%%3AoY zPu{ecU$zC%xK1i=4efT(G&b`nXi#f0C}KR!iR{0OBTel(bQbv!!)n(NQ}yejSC;ty zaFzns{h!9j-K~01EAEHgO2~2px-V9I02v$v)iNZebFM010mc*ID=%KtjzoI+U+dRT zbXWzM2?`??g}-(1gYj22OjLt)m>R@u3byD6lZjr^VUmhVWc|V;Y>K3G7T4iwTjoL4 znUp}oS#l;t61OhtTpMOS*(r)MeSUh>MRnDSNWa3<$(aqw@XJx+L?B){G*jW3Jsn(#y-S9iF!FQg8V?%a#}!yYV!OJNLnE#Bk2uP0hajX3-`#g;HpST2D){pyty zsZ31d@qt;lWs@@ck%wf z?|X>kS)>s2dOu!6;IWsrgGlg9nUdL$cq$<1Tb`b%!ssMA?WC{fta0tn+vTvar)w)l z-oKFdq$_x0m}(@|>?NiB@mBLV{)DacAv$M>1@<-0{g+97+*w@Y!fZc|zexgumcBLq z#8Mng!3Rb}sg@JDhrr2$SX)N8ZOqsS6;*ys|Lx<;9f+waPe0wUd7L9^A*9N!u!#7{ zKdC$rhvFykQzjaBPy*XDRbR4x3aN~7C1KuN^fsab|I3!jsan17ZcSzUaE0ZRav+8+~!YvA-AsT$wBp6j4^ysVno@aI~W$TOK0gM&2R>th&KqKHkz2F^1_+@ZP~! zL#BdyL&3c2rj>Rf622<1HsQVf&*)ZJg;fu-f$svarN~5kA8hNr2T(_|_>gR8s|J|a zx&p^)?cdtippXtBbjQn;)OFd2cAllw8voi!;D3I2h5P{NFUaH^H;zDJE61*DX<(yM zFi4V0qAI+`3cyUrEpBwjtrOvY)ci2^2HXk+mA&xf#7@Gts8O%~^!e|SLq zqe7;N-mY%^R1@YCX9`(oW&L5^Ks3Yuw%#24ggJD)$Ffhmj!(Z&rnJor8pEQtGUhYgLFPb&VbW)xy(4XY1_< zGi3!=0R5O4?$1I?>%8_R-A{y`$Wi#^$i!YdmooZuB^e5#mseK=rT>gQ{y``0x2&{q z$aA|A(r2_>4*KG#N&fJPD`?g0!?!BQ-exXq@bf%V2I@YdY@BwpjChVISiB#->QzZ1 zNK8-RWT(|187q{;l+DaWCG}=PSWbP4%IgO@(&3Shr0{JeO6v!3@9z73+AWMpM4Z5X6sg@uK%SjEC(FwZ1aD(V@IxlV z-nlTQr6~%lA|R4|Q%&h9CRPpklxT&yBc?%q9bShjhfGv3jquCW;2odFZQ3B>VEpa~ z1fEma`0thd%_^oZh^@rtJC70pD$R5BUk5KPxe>W~&#@2SC;E8ejrnVJ_G2#*-|!5( zhkkxE73OD#E(TMBx^65w$#0$stg<>mt>@m=?s%eeyQgZX*Euc&UrlcoZq+=}|OQT52dv?xNn?{>%C z@|qrOLSf4x64O=$m;nt9oGo9HRb5R&MiAw4D=jE%4hE8giQnx1QZD+38bA`wh+-a9 zaerBlnu+0o9v`8tLf-n z*q|Pvb35tP#?qq=>sW*rzbYG}GQ0=`E-HpR$(w+z7t%wi0#AP?e)wSp9y?QY7_1r! zk_9`D@4s4(HH2niq;}a8!$ZdFP3^Eum3|@O`Apg(8I9uArX#K^gc6l?8hv$x#tTCkN?E~p7x~)&mx1O)GVYjgIQ9#6*hIsR6uCFL-)c}`w8W)pJi`T3^x$NB z1L*g-2U+_l(_uY{=-YFT#kARQ@cdNbrsHlJBOXM#Kizg6G>m}7F}3j3e4aRpxWE7R z(+v6G0lNse*ZMzK2^NWGtRR%y&AzOdk|#Q!SSNItZdoOME=Sp&P`8qHb1h+hsUE1% zAY9wZa_9wr8v~CaaJeDFhBB&^8ZWjuw>(6SoPrj|6~NGqAvE%aDH9U%nD^gb`O+mE zbL@BQcQTQ8XT^_!;B26bs{DcWmLr(KLoxsCjS@roXt?JjbGO7rX9#3-*V8>JIk*XVb+JgHMK&GJjgxxua_OMO6{b8cB!Z+QzhCr4FptV9 zj;Zm^!CwELM%y~GAq?S%6Up+L8gS4;6KX*HmK)6zrAQV8XDx{?5o63u3_e!*ST9l3 zR9^XW%otkzlf%B`0rAf;nqxGaGeVQw$nL6^ZSnpbB49=aC(a%Iky(_1NZK2Ps6#yt ziO!5Z+9l1^!9)+EMEPh>TKWxqQ~i43m*>hX#;OdCfy9oExNn3ffNMl(YW7d0$%_|Y zjE3H79=lp7$|R0+Om{01Mulb2)C4BPiU^TVJGb}s3Zy!kYQIQMf&J&BBGQV7Z}{O` zO_Ll<#%-h^jW03&oKevg7iuYoh2FB*24({BzvAgO-FUkE|KZN4Z{d!r$;Co^Vs*}> zIIwXDub73k!l|z_yMtzn<0(q&h+e_a5@e`u%qF^UnzZQ;7g`lw_J{=^QDLgw^TbIk zA=7N))xL+0=7j#&S<4Tg7B{vZ04X@M$8-L(riQ3S0*3)*+Q@D0c0x_fYpa`+Ro^N6 za)tK{A*;{GYBhEVN(|@?;hrdF!ht%@IXID7sSm6@9R_CaOR-h$M^rBaT`zM+U?Vqb z=y*Bzcx$QD-ZXxSO1aDIc_2!@R?nv_E+Z&4cAnGNtBcdHG0MevZqewN9gwrF#=se@ zyeAU;#Ng0zsM&sT7PWJ96e_R35vX6F!Jc2pM4hY(c6!CrHXu0*EA-hxhAt^$(!^kb zfB#WAEnBfgh4pC-6$kVUTzy?N=1K;QdRnuynq0n&}hDwV8yBeDz!{c-;;-D&E( z{Cwqpw_A2PDT%q3qGc#OxBDIfFZ%Q|j@@Hgs{QiNF=%^JIk6OSuyCpo^$wjO5QC&2 zLi6{={-_7h;Nm!#nZLfNXj;BH9=kM{4%>i(65iFdk!Y43Jx=rq{^<6|t={sVt~sYq zdY3tIP3x5|ytw~(?E6K(=STO`Tf!EeT-3^T!7#ZaR0L~f7^zh_^#fHo)qWaG#2ih_ zCv*wq#pEajBSfJl`><^@O{x1Tec<`wa|C~fUE0DbP7*|qk zCPesrHtFVf>8Q4w#Dc1$HwwN_>3JiAcrgqP!#dtO1rRikS8abgnv#xLEU%knRYV)0 zAM!^C*Y;V=PzaaMm22>OK4`uAcwmdh#@ggq!N;v8_W6)_J<0nCgV(8hu{n1;04orf zc1@Q%ABkq>!~GG!os{HlG*JM!2cJn5t-6-o4ysvK-Iim)Frz3nJed8qkvbb!;W*EC z4O+-^E)N2k2vXsB_=)YGhL?RBr&2iH!5g;C5aVjCYA?Ltoay2|iT(Er<(9ETkWiT% z2T~m4usfY9d$_6SkxrGX2jpMIZ9R&gRCwq@F834jcfWL-BGOk={Haz)tfimwjBeG5 zaI;(L9o#|(st%=W$@G`e7`~Tt0r6n zc`WJ-^@ksIC_=FKuOxOf(yc{Gt6zDTK*}8uwD8wkBD3`EoG)*Uj1x2H65f-2J^Va3 z|8=d47b{3gL4=?-Pu;cul2vi9+?C~M#9ec?8ugKq@?`a11S-t3=ruu~2zS%=^#$Pd z)JSzJ1$)1-FpRZXJxB5Nowo;nI--W6)kr)^H`L@ORDU)b_g=p7zCmU&>LhjS+$5;d zuZIOoxj?}Lnb?z#=xM+oNf@(OZDYh*Bf#=T7b_#GAT-%*#HJM>$a=?y%lyL_*}qK;0?Bp*In+&N zP2-0fl$&Y7u5jpnmh6xJQm2Ub9ar9(!)i?sbiC<)NO>zCZrgCj<_U#XIG2fav^xynO$zA_$r8Y zulqSf6+E@*+qJWXe!~m)%ceh-h};S~KJr#g3qF~xi(Xxy{m$r8>^ugPocfR37+{;q z#4g$$jDid5TD_s-XzW^(-LSCb@;J+{B5iylw))~Iel!6h)ajV!tT9XH{9OoWq*pdF z%0m{0i+>kI93dvPFZk7+X;a>K!AKXM&mGp*+PBL@!mtFd5ym&*Kz-_%=&4k=t*krHu zC&SqsM_RE(Z7vf#Oy*|P>EW_FxaXSRGK~J3zeaC zLVpe{V=UO^b9TFV_Qj_fKvKx$u@?0}O;)B9&Q~Nh`cx{qUGwhql$IQ0ESXR!RBnAr zJg>LCelHT1?2n+37xq>A05)t%Z^#*%;;PbhrGkd(tJ<9KLucn`fN$DGfSp}Y0GFJ{ z`w`otM29yky*d8EVH1>N$oR_~3 zUOP4UPLi~*cg0hnYhnJ|rDIp~wFcvuyn5j=7q0ho^{jAq;5l~a(UJr7)u?=}9bz+6 zw%%PpXZNQCTj|X$US<}ip2L^$&(U@85q{!3nnpT05xKeK?ydR^$;h>@?x`uygy7IM z9_FJAVhd|w;KGmP{R^wB@kQ?!CQkm?)~?11EywKF_~3$M1BwJgH#HJlp+7P2h|YnW zs+ohvs>=7A{%<#xZ>jB*$43h8m6pw zY#yOZ99dtz8LPFm^~yT~Y~oi6h9$ZY_PJ5g|6t=US}m|D>S?#$;Ec#%{VuGRI1PAJ z>(3spQz8N5PLvDDG>HlC{4o9Pt=Bnkg%l0aI~EM5=M$ zh{6W`bzW=AJI5kCmBlmkCcEnBSH5L&8KH}sOI^bkUk7<-C0=cbSdm=f3988@$dv&- z2D+^nsck346gj~nl@muMj2>;u(6#c5G@YeFUTh!SqR>5L-IKA`hi* zCDVexB?ajO#O7sRBuy5h2%|R-?Bu>Tb2oc_4@e^StrI4|p7~&Sf6~$Z(GEM)REvSi zL7yF$d7;<1|6_<_Xt*g`2$)y+-@orV2$EzhUpF4vVufmU4&OI56*4&Sv+2O6{+f*}uqeP!pG5KBhk`MepXh%%p zo1!Ol=)IudJ66S8$(>9I0y`WP$pgKwAcyhK2?M+xA>rE+{^S zK0o2BH0&0`v{(}7UV8l^vmp*V=q&Z9rniIe9>2dz^eO&6!I13cNe!rC-1r@g1uUy? zBWP4etIwHatqLFVzHH(VAbfya;ulK#9rXY7S{N0At)p!1@~D0u)pUG{`DodUFO`Fn zU)XEDkv8SlBob!j+Z~VQGT-L&GPd!XG1$!`2SU!b$A(T;`}(q63O}41ZO%_T>D_(g zjcjB>Yv7r@94A6c>Qsd?SfJQmA-C9v*D5vNelnn#DD!4aa3g;?D^NUBy~dU&vQynL z=xCg zv?x*Qeiwo9mkJkC)GGtTjyKVauDHG-@}`BxCAX$Em8yt1W*^ot4_9QVk*4KXgNg7 zNGGNg4rxWXxAu#bM_e&=q(kcl0Y;4=t^|Np1iX03w+82T4FmOs0!}wA=^mwVNJt{r zzE<=NC2iz71+YB7{(ixUP9Z|NU`N36NhgkFDtwF20Z)u~CTxpF21-T-r#|~2*rmkO zn+@jI*JG=dzV8!#=o2+vEgW#aSq(e=ckD}e+!0=N$ zj{Dzr9)z_IFaN-e(CcG&`0Vi`Yx_ScDy9oNb81#;M*xo#$o=K!8n)jJe>hldl{YK_ zIU($e)$>g=;5e$%Z^cQ|_hcks(+TWcBKLl@HIj})CR1h=Mj%j-dQFD4tAsuNp7bMH ztqPtPL(8?ij0}?RW7hJ@CWuD1oSIEdvXlN!`3>L-(lSGgAg_kwcO8J~AKc6=RRDp1 zHC%NGp;TNPl6$dYxg1Z@K`#$$LoiOD_@*HnnRMmti=I4?E66dK0`7r$zvq#OE z+iacy@}$vytH}Go1INFy*Rm&Zv(kxkai3GF3!-H)U!soRZ!Rn>KcUGRnhg;M%jUx(4D@Qp9Erl5a& z^~Tn%C~Q#czHc9Pu#fuB-#<<*tvay^o?Miue(D`C)FlF(e`sMnrG0A*PG!S|2{kea zzcTYs8U>vQf z!aFk_4-Q=1Sfr7uMDJGPoKB?)&FZrCz{lG?h@iH5;8n@yKjVXfPfWi@iR8a5EkX@Njn}A)rQYMrU2sO>_4KXEGD!Mu|Mx;`^Ke2Uzn#zk)?{74Qq>BEUOZkL6u#o z*0lZ|nCp>n)f=6<&#DSDKg`-7_Nx6h1&zv-!7G`zH9dgq4`O!)`eX1Oj$NewOpw7A ztNz()J*W^6P0pqJeR^D^DLizo+uqi(FSS~)-s~RZ;O}<|)*(G8(dETw6z0(wR zRoe6`%j*Ps>bx!Dbv(gTc?xO z#jU%40YLjVzR`gN&6FlNCTzw)o@%z8P{jIBoLNtA2y|oboj26$_WASLK$@Wxct*iy zS(vR1qQwnw3R}F02TF$m{yKJ%5gN9jf)q+GzzCe)PWX}gJ)N7K_=xhRN(|@J>2sza zMP}0vR8dn08(BOurb-^^^cC}o$&YY+`$h^!B-vMo2;Ou|d4jyS%9=KkkK5z3Tat=I z<>S?3!?;C4pDIaJ225L%4^ac{4J}eJ=)x^`gI*l`5<>6~TU3@Skr9J$ShzPS`z~?n z%W(2eZYm??iLq%<=$(C(D?;$S0qn3h9obyS{#z58-0gR4HP+dCcM(?wxS?DegDacD zH={uI`5sro#b{xi2|2M=OR7o)o*%A}}Qw|j}~9v84?XM4YEj$V@r zx+5(8O4F(H zIJYd;C(M<7AIimu_=Xq@%O4Reoeq}1zSL`W=xdxa1XIguocmTrSqXclmXk?@{E!?{ z40UKP(=NHLZXBsVWS8(GcPfiPAV^wy;A0d>gklc;qiB1{tXU-{ zZSjf-O#&||^E@Or6R zZp3k$iw+fU9Bwraey>y=6BNaxFvRi=n{>G-y5+fG!R!Wf2>t_$*!a3uYN;yYuQ|+t z$-4p~RUvrE&|mqbrGo8`1AV*Wue0~~Ltz*xFhQb=CjZx%F>7ghOTH+S@j(;?`4^8 zqJZP?uab?hv~_hOdt4l#!pjR?!7vP&jJY|aL6-t*5Sw)-d^nN$5uuZtG`%(WYOIE; zCBLGtEfM{v#(BZio~ub|N=3T1dF9{wy4Z5hmTAOh{apg=LsYyXIgj~pI9blmj~ld< ze~2x~c`duvYb@53*N3e)BuW_qP^-tD@HL9XbGf|sTnN`Gk=fnGNf$l$?SZ|U4FpuQ zyn`s|Nb#(s8{ZR@89{DXAVu)>f0axR|1`GjRWLiBkMRMK+Liy`0tz2IB_cT?@q6>C zW8QsJh98vvaO7%FYw~PsKcb-=v@2{HqQ) z92ih)b!kF*MnCPQ?MM69L(assW-BLOoDbD+)vwqdrW?_=8;=G#@z4bu4<|E1357^m zz3i!g-o6S9hLmzw_BHTo>;zz#e*0fF2Dm=*Ca0!QXN?77t$Z?~c)A%9T?642*%GxM zmJJ1b@&)hd(&op=-c_=~Pybp(7E3-Aj2IWLCo0<>HxN3dFnVMXNgP>=9AOJvZ=r;D zBK7AWX+GLXIrTIz7h~AzNw-B{SN*7ohswi2r=IaAJdShILyzvbE(_Za<2LgI5?;OC zzKZnDJp2zm!ffli#B>a9%7GEA3!POfTuH&+_a~%SYowI+pP3CIe05|+g z==Hg}y4s|R6rL6m2nnF@$8YsRL@iF&!r3aa<(3IKN7kNTE)`|F8C~kQcPhR`1|nKS zc3R&zn;8I^anI(TLX}{Y?KWGt>)`&Yl46d6y7|&?t>yk!BG+?NgwDh3i>aZD&y;{u z`7PETrKX~q&iAlyImq*!O;;^zeK8Mt@x*`88Vk<4nQs5Om7L*UXZrMZ{#Lf3{s+8T zBd^Iajb|+W<{$;kk?k1gPQ;D6q&UByoF@C1%D=rZB?{{9;$I90Bq)rXliE|Cf49eO|e=!HMAn-Cd z)))VrPAjH!P3w{}-Ut;<%|*Db(XsS|4F+kvN?u<6H1)4TABc-Z%TV~>1!H+2;C%f( zGeO-)i8W3}^W#pS%BTwiwBZe0I(p*%=j6ECDUvqwOO0!rRXUgFhQPMe1lj8~uib7N zb_WCZL^>uVLWHLdOXUa4M@r;wqPUx*{X=P6K*f2VBLPB^u!G8?#ROcXN<#-aUngDK z5ulyNx$bMui%;XvL2TZq@;4V<-iXh4w-YA6$`ejtF)>`lB8uL|&zEW6Pp`eg`pU7R zLxBHsh)xB#lF3*3$ zcgx6W#J*WJZSj*J0*JE%|EHn*Dgp{^|BWQJ@YL+7Y4vlVvRqHE-TbV1std`DF3yU= z>+SUcLZj{;NhGIhq~k%MrBfiD3Zjc+bzgg9RRp1%X4k9-er$w*d)IE_rypErEa`Qa zEFSM@YXgYHC66(&VexIb;#MmC6SiJj^^y3|@#N%OMOo8-p;}duh)~ELh7Ik$UM-y= z5^`YKV$=5re#c&q?J?k4z=b+cz)k#zEA?A8gKf#WQjp+?<`_*EfveOsKwiG~*qPp9 z1xDcQ(+xGh9*`25bdFp`Pm(La3MOZ~6-)Wb=U5BpQ$)Yfa&`1CicHAOcqz~W+*CkR zE3ox^3;JQq52mK%d>7c5BjuzYO8<0uEWI)yg8PBu+(24dve+Z{g7TM)Sfn4 znXr{wkl0&JjvryXNMePY5mxM*-XfB$!#xGUy|#A;oUNo^XS{86^@f)i%grPu>~FLe z5GoiNTDU>jK_c*!A76Z31`I?4sPW3W;J~6++e{!};H*{~F67_eJ>FMUw8H`UjA7x6 zHPj&ETI}(`mGN~##E~AIAE)bDFh4Vwh_ag(=f1j$Jpry|(T(<@=w!R$=0wY-Xas#_ zxsA8)r~`?_H)`$u!~SZotrYvIOT7dk?dbqn#*kwV;5{NeYTtitx7wV`!OW<6h5T4qyOSc`F{5vrpaz0FwM}HI1GbaYUI?6 z-?ae_P;z#T1Y`U;qKPG1;c;!eIa&52qPUw3JE?uX^YGr{$^*J-4Ci0Y zsoCN;Qg6Mj?%(_@&iE8oXYcdD%cwmK=>)eO!T-tw^h;M%Na^S>k`5=S2*w6AHSyZ{ z+JB9PBV0HqHY4Kw#31riAGZo#ZUid-?ORUqifs?~r`v6S^n=MDRX)=B4Sx9>IYeZM zDahhQ;QkJkjmnhVOn{S=YJQ-)Is1CyCNX}{&6ta*6dwKMNKq!A6~5IChFIz$9(HLa80sdwI1(+(fKUif&|}fqbVIC*d%<<64#`*^b8F?;fWs^nSJt)4QwI)i1M#kjg$5hKsVbn?N^SR&2 zMv~HMoZk)HY>ffnJdP_btgj+U`L}8&*>aeD)!TD@()=-_uT-mXop=>1npX~g^dOi&!mppr2{)lKYl)*dWbO(#c_UzhV__m zy(jks@(Er%p6rb$H*ov}LtC>EY~E-ac7fGyJ51E^z4q7ApLs%VJ8g-HiL0vtwJ)_c zw&H^8O%nss{oaLE_*yaGDtyt4vY7i2BZiW5olrbzHX&6X58`(JGz*+OUArU3L`kw^Wp@!Y5SIA9WYXn<-_U#al|J~>a+4SZ9mCe|m!Cxf{cBT- zZQ0TAXMWe`clSX=ks%XsX5CS29pR0(vuk_%H38eVPNX>G4cx-DtymUl&Zpj(Y@H{< z;8z;w_K@dR*x5;tEC}4dy;C$Yb%48Iw^#=w`Y;uD+6{-fwpUr(^MY^DKLudXYrx$f zAW1cfRT;gnzUB@5z@{k5j%$7W$x z0)nm$!7;2Pf)5~F1}6ZJ(TdRmlb3_fYW^e4b-0Raf{R5bto8Qcs!UYqrW#XxE?1;uHJXd*ezneknCD8;LM^`QQ3~s+|Q6?uqF)D51R&dA&e@ zTPBP4-6633d;MYXq5ZTKHR(6!Sf&piylP(Bv&z2=hy&~_tL*pVHt|CR0Dn8*;!LBf8w+?C5iO4f$Gw?6wsoGDAKuio$)<@gk0zD(@1BprBC=Eb za-RI$@Zvwhdb>3U@Q+~Kh#)(c{0yT#V8nh8Rnyw9{t!fy@eyo~We4~V^~0>7ngOIH zuid==^79k+;`7M;>BWrFI`CRzflg#M?QKCOa{%c=#X>#$QF=O2p;|| z`(PQ}|Cw_F|3o%&?;RMBAR%-Zevw3oIPFriXDL39yUN;gO+=W?+tGyLb#*vUo>Am8nXfBA4ip>wJ#eyHDGRXvg7p|ZOU zt1tdPtaW@*fZ^Ratq*`0L`N`lNsqZYSMr6y1;4%W=T&LYX7ibBz*+1;3J?YcQoyY$p08X#$S@$u8l%NSI-#({0(1 z^n*w+pgz;2jhFyu7!;D#T4o%YR} zaZl8M7b!XO^a#E<(u#_W51NsBqo3dJc=vAzyz`JU6;`CTvt!R}m%g~By~$@tcS8)}H2;D1e`^`X$zEl7vguZ$;LQdfpZg1V*~m?4LnSM#8bM>q zs)J!S-nW%_DKX(v9uoQL`)s@sajsRFjl;R=%r5dVeF-Y2ug}R~cb95(`QDjNMe5bq z8RDM)QB3nb6M&>_uxfQpRZ-jAYpC`fz1UFK}=pslqX|R$9Lplj5bKaY+ zgMIj1*Aow?5Ahh8yL+Eg`~H=i+2W0}v2h|sG{;Rr$vs%qf&IoP3SuC%zJ7^nHL5y&+os31cvR z#3Mhs*VVxM?ym0cw^qHyxh*)%BfE!}% z=-8J&6;obQ5y^5fTOz^TL*#!+hw(;gw2n8@qY-)fPkR($ig`9m-9*wB&lw-XyPtaZ zTJYNX*}bxi(oCDZ=ibSw$!n3!HT}?G1Bh$rDO5L`o5IRr)G2bdA8Ff7Zf?s}l@I02 zA2;PG<0HeZjTm}+xxzR?0jJQcm!94j!1ZsApYP~q9p@oKuHxRqJ+NCZX*dwGuq^S) zJf3bDe2-A)81cnQeE0aR?QQ$o8uy*Rd`*+$!U3LP=rxUTPP!Y`|HRziSxL@k-uYGL zMoP%&(?|cehxXRzjs7oy@RBr|{Myp8!nL0KimUyy*_U6eJ0AK#$1F zy5)R`n!xd@45TVm#gIa&*O*lgr{nD`9-ghRvnHxim{g{nu}m!Oy@yG-7Ly_tI;NU3 zJ=YCHN|~D>H1i5p;zxjyDLoBW9X6H>GP8b&N4!G(J{ z+Lt)q=X5Lc!SZd*Od%P`KV7dn{T)H`spXGhTJ9(CSzoZ>nM*>@&wsX z&u-0(Y?-|CX$c`siri_iK1NE-*AEiB4g*)MW$$G}>5_WbDBK~&=vqdu_#m+vqXlkuA3;A>OTAfu@{i_M@42>lp9Pr} zii@L<5*{TU>;vCP84b}n_sJ0vdFSboxE=io@w;#K>x-HY#hg<#nLQ9Fud3*en8j^5 z+Os{)z3xB)Xm|(=gDWM=7B~rF*Nq=TFQJF1fGqwrZ{DWpTlAOrRL(dVLQ%>`pB2fF z-gNv+=K&ofppq6Oc#_H#dd@6HI2?MlLE8oJh~Xmlo*=;bhxFE;1lLXHIq})237!a3 z{Co2cgn%G}?4{1=BtzVVWzB@(=<7>m)jK)(II&iMMA2UqClaa76a&0BBM&exV?-?q zeyT|W-IS(hMrizY{;+4Q{&4hQKY#Oh>=y@+p*zM#D!`Bb*GkA%q}Prx zeX*c*TlK~;6EIZkcVrdrZ((q{X{UISd(k8}xu&{)1SzZy~7HS1|Zv(z2QoB?~Rk4D*^^ialZ-kK3V*G{YM+3 zoGOW3$Q|WubEDGRGbD+mi4A^!U9s4&Kh`qaQGWQ4XHilMRsXEG@};`+O|;7o`9qTO z23|rU_;r6+8vzvkLaRa@Lu%s+Dl3L=ElS zl#_o<{;a}0nj5ox+EhPs+l-NV)JXAp!5nM4q@X1r#|X{yf)oT#r4~)nST7YG%vU3n zS9(Wb!PHfnkjc5ZFb%>Q36P%v+f2IXJbxhOtxgt5u5v||Azlbrt$j>f^uDM;rN*i| zvEZ@PWO&`09R|F^EV}K;xOCA-X6OJg?R>H#uCAeRI=UF$bME606T9v*@(r+dAZ6c$ zoSxbIP+$W+&bNyINuE+FYKou$AFwr{y;GosCt~^Wso5z!%H!kq>g{&kP{EcYwDa@> zI$s+t70U2U;bW+Ec9Tzj6^x43=%K2;*1xDsy?V;J4|fsA3ktkJV0nZBHe{Hm(27d7 z_7hm|iM}%nX6NfLkzfNMxBPQ;dXbBQ@Ac-pI2l;VRn9za-QZJw@`Hk09P7lZ%^tSR zzGL|Gr9{k!dVI5KVe-D-uV2sqayBfG0yuv#^n$y~eO>(J%NKAUpw*e)q9$u4uY#z; zr_ecl)XKDlq27wtF_wuswAhiH?FbPi~(qNitDz3V>jjY#to z(r9NW+BEi*2#cm9TBHU9B17#TpZ;G8w0WfSer)*FBkr0kj0z*dEk=DXhe4i z8r6>wP-h76D~h8)kJ_?ir1kRXvAJjQhwVzpWU|#aSL2)Pa8{xoG_OB1M|t4Az&i>NB;cZ z_YnmWPsL;QFne|7Ku~7`xq9)XHfy)-i1UQSB2wLfod~qhUE#PU!rL%dD`Cq%^~Bq3lG8Y=R<~GAs7|%t#PZQlW$T6K;Ijg`mYr}U z&+9MG;@!A3ieL^hDEnUT`{;QSFmYUhnRp~|)WvWZTr-|i_MP2k+8i_nVm)+TbAWI| zf=;>gbaRUbLc%L~bRk~4mt?`X+3zJ?+f4Be$+0NlcMot6U#~`|HD@LB*`eDQDCGif({QVP=JP zHeEL%1MC)2&^|xZ8vzuyP_Q~CZ25u*FmvrUy=X+bqIgjRr`#h7Fh0oz`>=|3F^mvn z7;%|LVU;Nr)<;uVZYo3Uw^+3!C`mGnO}S$4Y*1pGN&7ZX)J`_po?nLY{#xz4KkDm8 zN&2t!u#Y74)QyzBB2OF^vd>pFWaj6qpyCv%OqoO=Z&$TOoaA;Yv;YHvIhF@rX?^Db zd{R>CRaOW(loDD3TI$*}xSa1k5yp}V1cL4LHF-WQd?5=r1`MJGo0~zJQNYeUkhAlX zO~EAI0%kn`>h;BPTlV3Df-)i_Im`W(yiW*vW_q^^uknwWUSQGTxJR8yU{|w#B<38% z^6x3YL&7BQr->5|1T4u(xO{f^qKUDLG>J>RzwiHtrn8KyY75u!rn?)YJETjb8wBZ; zZbV8zy1Tmt1f*L)Lb^-oMp9bo&O7(H_x^N@;}6f+YpprI?|q-A&Qo#B9o~c6^g-I^ zcJw(8V5=!YJ}$LZqa6so_>dGOPE0r8A&)ZtFzyNob8@5~bmpxIL`IL{Zg84li`fcKiYM4|#L~BK425?Dq&7-Jgf5EzC2lK9rQn_Zi_derw*ej<%Z@ z*9o?bzM*b3oBpjEU7s{OfF7Ny#H$70h;CKmoBD_4Lu>OACVF&jNx^r8CK#L3cg~v& zyYjb7UppgO-q3}%V2AKcT*=Q~6M>Cm^987CnQqAnpAFG2G@H_bAhNBF zEC8oh=TfWywu{GJemE!K4?(*C=>{LUtj00|LBRTkeA-k}c8HoZ@xxgH13V5bbaP*}0Cu_iI68Rp7S=oZpZ5jED>M#Mw@)}Bmd z*xF3WMZXZ0EJL}%%12m0f(j9w6+tR#lL96V4cF?znoXQPTSh@BwxXt$6qMoyYABuv z{QTC&q3QbEnFLjMWc2PO`EtbwB^r_&^le~U0y;V<4$Q#!QVTGrsLLxnVcEye*YDA* z-=sP-J*aO+p-|OXlJB8Bd^vU7(5LVuIem&&;YB6;bLFd|c9$#_osl|Ecx}KX!xuu| znA~;7N6L6f$>v!U>17wDX})y9Y_fhR0J^Yxvyq=1z6G2*(UP!tOQ}JElo*1KjvOv7 zt_qr(kTN^azqPRGcHMqbP(T?O83i-3xTq1ul+?75D>$(PQaj#jABtOj2JRJG-Cif3 zzm#H#uume_+`L*sWs2Rb??X5Nh}3VpxPdBO{_xN}}xPrj=-iuAl^$0y-k7jS3?PB(Fe z>2OyC6y0_C^MW)ag)`*C4eb7WDUl|c4w~Lz80AEoQ!hB*JS%Ms;Leq8 zZ*W^oGvPE!`oP)nS&AN}c0`SR{!@pI#%x|I%4i;lJ|Rl@M08H7x^0D~cBAmYM?m*i zKXl+PF}kvSADK+A!z1Z{xbO+qtc624!pyTMEvUA}0%rszL7-S{!=3MixOU8+^IDS+ zENZzthGUpwgkv!M$S#}Ttas_M`EIEqarh!1 zB!Jw1yD@$`S_uTxw`+qT48t9J$>JMJDv_ylmr|Qhq(&42{Y`lT@%yy)yxFLnT?;A>4+r1@H6Q47BKlZ$j1n-V z$D|;cG-Ol><29L1s9}APvq0N1&hw}tS@&U>dn`wcCD&dQta&ew0rqL$pvSl+taauv&;5CYC3- z{rC2SMmrDFr>_@8YnuX%2oncKdi64m=NAK_Z@+}UD6NR`e`1iHuih!rY~x?d{pBM+ zbUfpIh_`)O;BniP>W^|)cT=Jom-M7l!!n5|Ydw|7)zH|q^`}fDLohLjaZ?9B!0D+! z7e~PK;_`As`W+c2xo`xCT5N!skDyN}$;+270j!D~>;g~w5(9xdL(NDnF6)34otz&Z zyl*miO=%dEb0ZXzi%md%5K0y~?!ERAOriRMANTEw*-f%5siyz=-d`+eHJ1V^{#mE8 zFGbf+7stt4vXMt7!(Ny+7MEvoK!-6}Za@JJhQU&rcy6{839(@&+nuIz}V{PBQoI1~ye*?61laXB_t`mp~UNa!)5n22LA5oX0G~p541J zAPdIt&qT_~%Ft!Ni^LFSi9n6O%O2Rbu5NJ#JR2e0*x0xM*g-&17h7Ww%hW%hT$5kW zfDUs$IXM|Ag@hFtqL?oKWvI%6?c3(ZJb6$S#>lgMFBAaMgJ6$LW7UAOKdLb=_0kh_Ybbc9CmGWZUK zl})Gc^%X4)E^5O}!SOk4OHkM6$qe2P0QPhW0iAk;+|2mw5dzaAs)0J_td{h4OXS!S zye|T=zI<(fcd#i-?J4_X9x`~AJY+})0mF}|GJtYgoU*)G9QO<3v(qlDs9+t~4hfGx zEC$v2^sTULhrYAzQ7+R54^PG)yPo+UWqZGu^;rE2s@YGcuYZkZ7Hw#15ysx!yS>8` zXbqb>j&`e#0Fj>VABu8ri<7xzXgB}-a&q!(E?roOlG*|sO1r{XQm0Cav^5efdiB=( zb!BXL$m#7d1r~u~k@}D&kDya6%JTQ)t|hRwu^iO~Oi3)zwUgCx7kDth45VaoPn1J} z%!-y65NT@_J^>sVo1#Y<@E=-{SnGJ*>Bk*NQKUaPCF8arD2N~Fz zoDR{(gY;R*fvK5{(EEPobZc%mG@BPx6IEqxMEy+E64(LQQP8l+b*>1pfa!~%fPByv z0JEO1w4d3xPX&Q|o+Z8r7cPHMILZoA_^)7Q^e#S^>U?4#{)dwP1>ffVdr7b#0x+Xt zk)S10+*|5Napi>N}U) zRN(Q#G70!ES>ggtr$q}dAmH4_q+Id_f{q3Iz4iO|Php3xqg`L5V`Wb@dx}`nE=D!4 z`c-638wNftr-YuAz@sUNcg5&wAMht9EFQ%AG9{@;))69GVuwr9c#*aU?eR{9+24+x zrDqx_wR1CcM)SciAv8`HCTq-2GfApcn$Kf?hd(tutg<@Y7?J)pn(wScJD@@w53+k( zK#Abgb6*nrjsnIk{QV~OHh4$_)sbQ#j4C;OE3aHYEeGEr@=PR#LIkm~vC(6DR>y;3 zXQIcCU(FK5W4ZMWGT6$UTs3uIKyNnh?ZVf=a}xlp4h|TIQrK6i2*MqDmHvt;ZLl%H zaLLf~+{Q#$BtYbOxb5~QZ8*LhqmS_8dO z^gD+Z1WQXx$QN%BCT#-KQ-+lF0W!xPq^F}tfRmQw<>Ld{J;Rky{gVh)!9;~5NeyrR z&A8CZR3UsQWf%0IHdZrY(H&d zWW?&i8jevR>{lF2MGGx1NdE;S!J9~!5*E?SHa^WMza=J#fN=8di+aTm%^7qqR>rp+ zDc&&wCaa%s|I>LbEl~@{gq#>)LB^lfeoqI33EEbm@e}SE*tx7cpWmMXf2Y~uT$PQT zy$pLgMz^d(nfr_Ke>{qw??7fvs*5H4XFlj4F1vpigyL_YF=ucy58VRBB`#P%=Y6=7 z7?=8WUPKf`36Jc9i4Fb2YA`4dbQd%Hb$p+6sDPk<_bU0(>pO94^s8|@K?0vRb#U+p zH8S!y>Ffwa@ZkAhXfbC5k%)@GsD71;Lyfz7#Hxmr2AZsb+!_(gJ|SRO><7HzF!2BL z^fNy-6MJs`4)L%YE8iqNO^0;K@hoZ7JEX78$M{mQH}4P>`rS&;c=}l!M(iIEx}rM1 zPc9Aay(u4gW>|O3Z&D(*KR}+`fH6A~uvbKZlMwIX|MdC5Lp1$os;Z>0qU}7uvL*io zxzwxf7m!`u|GKbeP?>!=7Uck#D1tidTOFPGvZW>cb1rVH876S+o`aKQ;4x`JgoM22 zwVE6@zm4ZJQG=Jxk*?D4;V9=>rB2fjFjGVn5Ab0h3`;0uer}udL8<9Ge!o@~qm46X z?#eQhk}1wdV@i4|#mm69)LKQe!D5QhuH3xdf50(tC`HC!*N|`V4a4yJU_50!lmr8K zD>kn_q0i*2t-=)=dy-D4#Ht>F4D8;XAOdU@0jo9uyh!RJF}}@0R%FtyF?wnK*O;S; zTao!=Cfl8tH>b~y)5C4uAQv@Qdu+HZ&8q1VUUKekY*ohN98heSI_d zTnGVb`>SP>sR!KE-`~N|?@L1^db-gk5_Quv2^?C3Qk#P0Z^!UnHBW{n2VZjT*l>xH zt&DU9f8NH=5z_ScT%Vq?a)7_{0swnMH6vz2)YbEgeR6bwLG~%=R=3#%hNYq$`rmB1 zcRrHGCGc zo(20fts~WD!iHfLmZPOw=fq)N--w@(O@0f&Mzvion?6hK@8~x(% zMmTSsDu?P6fs1)jso#ieJ{Z$I%F!7G8aBPoF97@jARvVA0dofovw|J{cb9L@3;hAi z=(RHdo^#?bg!b0N1Ts?U<^>fLkZh&!^(BF*nT>$CVrq22S$ME)-%+Ul(Zlr{3`n@kE6w1u#3VoTGZ{cr+w5Ox<{hR`6+qvOtp_6 z@2o1hF8G2sQ_NA6Fvs7oS^LE!M#U&Yle`Rm3|6=%bP6_CSH1L_Q_H42| z4KJul-Zbjv_Z$jh0;~@(ww(NP^hL90)IUA-zY_#I1r#x4Rdw~CX!cg@&gN&Lg*H#9 zCOit@73JMOx{2DaQmAD_8K5tDGelUEzqtr{l)xxbpG&%{D+u8prNF;0Z}^HYMQW#} zum8Ssv6g#70@71cWPxs3WC;~oPKq#h^h@ef&Ux*@MMyqSB#K+r{91pD?a_i@BoSk19&Q;fn<&#miSAI zvPB6qC#M8Ns8BwCaFmj>MtYko9Qhs3e(&Hwa(5pS*umalm74W%SGs&?^&;}=Y)1Uc z{&&a7^u$+G;K!#U@$-DC3_XodC1XM`rUK@XEjmG-b=j?oUgFU;L`cHB8su>duGdOo z=_mfn-yNljYp}rf4?CYEkswn7jRgNe1|dHhBKGx+(t)4(oYeV&i=rR<$9E3nO_8z{ z?mqrcGxHOZMsB^boBc1TUuJ$ z2ta+h{ab0#@UCvHWSAnwK%_48H7btk3r(;gOD;CpfpQ*$L^Y-f1 zs*a&4f2y#QF5lRnB%E+D`Wp36v{6%Y3L5>+{PW(7RME<{iLxr0=r_T)K|Ni3K7*yR zW6M-2g%R>6`D-gz}@XypG9@>%X|(T_q%fO*xpWWdGp#C=SEZo zVgbWwCKH4~_c;v`xAnisNk{)!FoHMR1Cghmj@dcP|H|{gFt9u^s*jCWV@) z)^u+ie+sUjSeQfH``r)M(O&}m;p(2g>33|jiPup~G$k0<|k@H}V`(_ZDjv2tj-aJH&(}GE1VLcvWT;95lLKGiD!O1JbA+3FO zL!HK!sGXsKXZV~-qc=)b#>RduVpA`jlvuuic0k9mops>LT+zupE$K-Muk4_=o8z{< zO0cAoQ`^3XIF!~)`CsFsVFaDlRXu)FfSR+y3(=LB*$QJADu*}g#~!(Z^P*@mF49B~ zGAo@w;bKD}Rq!Sxa2cD-;=nZof?5nK=fAzxo~HAtkp)eXN4L8q*ZDSyVi=Vh!NyIw z3N`*MR`v$9C{N;Njf>el*&Hr7MdXO$DP}Mm+HCw;v(dJ=+kGw^Ln4AWZT+hcNN(4? z{nYHURQl%g+A+Hsktbn3n+;@Kk7?ZGxG69~EcL&8GX>B@-_$|?SLKJQp~lN`Yp!3& zE-`<|FEwHEwW(eo2+%D4R5jTa)<n{UV%(K{R(kx!Km6XH!)rMO6{eIb z@Jn5*815~_R;ui|q=iq%B2n>>8L4=I@;6)jiEi&pL;Gh2Wc}(x8i+h3C5cM@^3x~S z%S&RmUG02pqkfZD*-T;Gnolt6*YQu7A$5t!y7u2<#q@?_AK5pn zV%#gc0@PeN*fmsRD6i`L^b9Moy>p4hv<}}>8Tb%LNFx8xZ%0+lU$J5lOFmwLUk`bu zAw{mVW3P;1i8@L+vv}21TgKV{gT`5y?m(x*08x@y(*-|cO9zX3aD!{UiSCMbQgNmr#i1kMMcHv-*thssNCNmr-p;MF9BSwc`5LH7|+LxLdqUysF z>rgURsx~!OWlmIysatZ4cKZT8goFv@Y+TZ<_#*lu-Nugu;KGZxwmX7%P67s%)%x?z zn**cuB`)gO-S(>E2#;__oBr-*OjpCq%$wYdkQWkVYi#W3ku85C2_rM;^(iN|=kJ4} zM~-fIjb}1GyTW|WDPK2llP!?cGUqN!^y#9>L>r&)ozuByO~#!ws2O)9x%5QrW`4AZ zy7OJbT3**dLX-%YCNG)vz2p6sDT?icm9EJ`aP))s#o#|32g3Wtxc+fQYNhIbW>x`z zvRR`)Y^ov|8XD@>dtm_43e$Fz=jTojE|y*&dYZNHTL&)Rx?w>Ua*L16et?q4{lQUQA~e-so9Qph-ZOzKB$CrRhd zh-v!7{4%DReXK|Ng9V12lS zkhC^Zyz+v_5_w>KA?$$-FRhQ_I}V);o-U3*p;dcNyKz&Kp(GQOBe_#Aa>8n=T5R~D z|D3FIWTxk~`h6{|siS3n_4gIAfL~ji+%msF$cZ}&tqIILY5gLb-&1tn);qw{0j*j! zHKV|?>0+AnpQhuh?SjrhYjQu2;jmn>ky`s@F$u#gWqz;SvN0n56vx-f)uk9}dcYvU z;8D^TQFr0!A^Rv9Q0{6JMJEoH=G4~$bcdga!8qS>Xv{J-=~5o2(}gKRKHP5W548#!Qb zVt3xn)=Yf-t1BoQr745~Y5ubrefqtr6GQCz*4N`Cy|Yin?}7GV-v5!v2<+Kf8z(0A~ogXm- zMHY0QqPfaE>bt^^cN0b}6MtG2rAz0VqF`c^Y$gj7u1mqXD8Ql$$G>}k+Zlbw27b)k znQXx8XTd`PmZiB^{Tx#)4q8w5Z)$A*^tWZtB`?u_LvBw3BTGXkErjwg8 zK*b}C3|Tm&^2C*Z&-ps;t z-&~wov*MU-QfI~8xl*D#{w?Fqei&V%!nKboc0f?b483}^+88gq{CLctdfkiHXVyHw ze6n@I&x|@c$~`lamcn86(bEL{pd*HET-5X!by7M@qMbDPwh?0QMXaF8bl$@cg5@E5+i%)#D_gI))|M zD|xRbFzE26Pd&!l{GzES9`OXXeqFJ_;6=&^AFEQnjv!&x>nPUD-^tyzsLM*msCQ&C z<)~iLnG=Tdp_K4~j&p228_~vH;i4DRGqdyE=Z~t)9Gn7@_k@QWCMQ1ZHn@@}J>dRR zC-zLTXrLX0GLsL^**xRfk>h?xF3m@+ht0E^x+=^%5%A_)4qHnnNYx*h06?LY`b-{Y z?gu!Xx9#5@o`!Px!93p@KSzRr#mUn<2%o9Nm;86U<}kXY*q0X<>vCcbIDTi-c?C^1 zShTWnkbL;TIC5wWv*cY@fqlN#FE%nJ{a#2DdTI4{{SU?c+4KeZkN%{{iSA2!F)A<# zgeQr#vL^CB6HZ8Z-6*pN4{ToI!h((%8F+h(`iQj>#$yM8P}#^C>Q{B!)z>W5!?b2n z8FWeZ>LZSxOspKewP70>{Jx~+TI{XeC{;zdKkqnnW1ba5DN}ZKmRI2-+DKW zyr$;Eq1mH=X{SGo{*to;F-54c7N+1QUt*dt?xl2<96@m=DeM=HSsn!V57rU(anTO) zdUFcj{3Y_6vBkffNOA@szyx(+JtH6-#s_A?=cBdQf!o!lCe2E4mfU8i>{Gg%iOg5DBx?t|D z+H}m<4uUHuE)n+R+>LiUx9EhcZjl#g&;4_+*zO~^1ZN}|vb*Q7A+?6drJjadk8F_^ ziiZ15o``gwyzd`1h!yY~7{oaD$O3V{bIK1lAt#=h`wWaNx!z_6c8+#=w6#w)MQ|*& zQ_V#2nJ|62;&BPYm*d$cHEpqyf6#+f#@_`gi~ZBzBVs4ZdMXP3mMN%itQ2 zS5Q!pg9uBAzg3Lj`m>}D%SqUmQBwBVF0TxIUR;51z7!iFj{6(Sh{22oQ_fsBVi9?4 zye+$$8kb(|?T0`7;qo}&GX=gXAmK>SCj^ye$`^n6VHWhGP00`M(7mqCiJ`kI|=#6=gC+K*o~!dItk{uhlW~m`0*H)E027u&H|IzADmtYR-+9Nzc04~;#(j5wVMHflc(!W z%B{iJegJkMpdTFL=zd0+n0LlLL4OA7%bU5Tj?j`^FVssnsf}iK(DZaV_@jU=iNTx8 zBpE6yE3#U}QfD`2-%B5P)4OIq)6rcpQJb)d zk0_Wvtsp=@4GC|H){%srY0c5`22{GSno8XzPV-Jgny#Zf-* zg@aQcX3goFK(4S*G{Q~Fr&Dv?PE(Owp9d758!5_xpN<^}PzF~lsKtTF2=abX1H7o& zdPT?2E*B!{o`NwrdHK(B;Vwj5(`HYaU8=8DN;f2A3*2ZVI+{5#5H0Sw&xE8f2^XrI zvmmHi)yk?4eVwqYOt{iAeiT&muW?R{%~HAOC4a-+-qCdF&E|!N#u6eJ=wr%1W|(;z zab6KHdcn7$oMi3?EG{;{DTeCqagIDG(Bz==)Ws+*v79NV-L*+Fiox@N`S9tIU3S7x ztHe=H&~hEPjV7Ybc{|L5G_lN#io`tA1iu6#FJrH%4}Uq<*7`DjMD2$ZwLQ{08T<;r z{`>o9yDrX7Xo3{sPTUD2jyG@8AQSbHUKIm!Y$%ScKhjcW(XX0HV+5}LSA7K?3N<>R zyS5(_Olv11s-|G0K18Vwm`%1sP;rY&_&9!UZ~aV8pjg^t0df8j3n4HIV>K1b=N(A? zvrvj`t=f%D2qPbHHpfXYk!m8%+q=oAbv0n}%6)Vly`2jUrV9*SE10RHVKlS273eJX z(>&hQ_5UElqWdHjYslS_svJ?@C^f^6Z<>TJZ>lS4tLW!b_??lTFK#I!e(aHbB^1{ji2x4 z>)y|Xp1q>zB_&7ZS`>lj(iDP+>D2HA>y(>)6~CzJU+fVTRml0=!60-!eG9|@(VVx4DskdEZJ#ejXwquVM?;3ZnnG#f@3qF`=tUO|SA^{>(c^<0x%@X5L{~onHl#tZP54#RE&3}3O-|sHe z;Ew4Y2fgv&zyOG|DCr!1OxB|~5#nEut|T!`$>VYmcT&#g-vHC>hcq%tPU~L==p^c+ zz1;FjCtgxSA|(m8hPgz&3IM7Xj>*5ZP?wgV5{ig{0-JRoq|k3r#xR#xN@Df+8-A`) z=HT);sUx#0X-yT>C{WR;zV<;>$ zQq@0G3l5WjSm;71DXh)>Ab;25|Bthap)Wa_E`?ks+hdOzx#vNl2SNQAJ*4G`mDAg2cwI`=FPecBp}IE9~P$EWLV;_2btu?X)pw&wm6?I2E||@Z71d8l1v7JGV4fC zS+VGK%lL-xv9}ng8TI<9**>zeB@=*aF1viGHuu_jt?RIQ+qvPfH1P6qXQD&arR~VT zpt5X|y$mVF+0GTh9)RlpPLc^KtiAs2PWf^1gU5D3jZ%AlOhQPYoPLLo?0JOhVMII2 z93~A~?anZs0@_33&}y>$`=1CB2r$ju$^`cMTIfF)bbDy9trlt#SKQ{kIUQGpZ#u?b z9-7#QdLWaR2sy9*)zfXYAYt#gp;7wGi&IoYALaIHOe*1RVMjFuXkmuFKJpSsV-uwe z!Tqq@K`{6(uGh^F2#LXPdn@ksvACsHQNs`%KH@SwtuV<~DROYxLI%<=9ROlN{5oxm zJtC$5>$M}{(-(>PeQWIMK!9Q!^4yO9z5VO(Xb5-ib2Mcpf zDbk4IUl(mrX=zS8RCPHN#_%LKu&Q0Kl(A)bLTS~*gdP)|)i~{IQ>g5n)BEVsH}xpG zeKuvf^R#z+O`F6k&Bogw_VOp2GbU@E=8f?Qr?Bi?rgk6u6i}~%u}yZX4MCI5c+WGf zcgA*_)9qm9~|qUv4W^?)@(4AXQMKpbt+ zL9BuCF((`#rUi$DD$s%PrwRF!F}uj6cc(Ch?4Y~3y-_%qvg;Ia?($SA9VnwAk4=YL zHBA`Cyw(&S$`lp(o5_)L3wGD=EZ+vT$#YEgHkTK(uWj!7#8MX9Fw$I;-K^^TQo=c% z)3yF#r2Hn7DG0d;AGETGOb$|*Z~VbY=T|lt-1B+xbNA72Zz|j}1c@(}#RRL)R>^+Y zRNJkBlU}fE?LbnW`x*%a)$)tKO4f&o}SfEuW!# zf-Y?~d*4G>DCN2HFUb{U)%9OCr^AXMGcwlzxa6sUI?=BC^G}UtJ{FJ_?arFDDJ(?6;UgHBs${M0s_~m~|%?o`(R_zYDV1q?Xv< zVbx7LkvE2Eh{lWq;vcsLPcr>)(ZN0xZr*JYq?qTfw!qm%VymI9w5kHU$a^Q2yZ{DN zE^+@*qV+3$uUw3DRBQ7|f!4`4QNW+ru!`Kwc>-YX;iG@$Xp6im>mW2t$9+=IN0m zW>#A451x5G4qzgNw+hZp1-;ID8*inXnAzdN_GVYhWk)=n3B=%oF@t^8a7;4!{B}>~i6SAwAq93H ze`A;5a)tg&W#t4F;^^8Ju)%O#SJ%+!&C1S>bcm0La$1Zvh)pd;rW|-88uRRdTh*MZGmQ1mX+^_#aY={<{tphz{sza6&QKpi*fK15J9POok zlX@x6SB&`zUGo%m;Jn2D;eL$Cb3e~)$97P3VidVIQpE^^=5)!YQ~09<4ZOb7>#WC( zz#jX{)*t4F?J`E_V}pXnSn#bF5m4itH)PVk{HQ?d4UZM~?N$A|(gF91Lwt8XS@-@z z=!2I%t=GL5j)$7HPUojnEn<4n>yjO^;D$=s39-uCtAD^Aju~ zJopGPi{1{a6l~vc`P^r(^@M_5rpm)KqpFTE5+VGCR{TMhrpHT-F6Cla*t>_t9-)G5 z0*TVPT}@H8CJB62R-O3PYR&JA)%mm&H;EpV9Mj>`h9x+hVfaNW729kX)o3I2I};J_ z;iFlP>)MmC?`HGbb3Xrx-V3NUX$Tb;Hdh*6ld;yX`%PXN?dxaxQ*}Ve+&Z_8)08~! zJEV{AqXMt0$Vc4!iVL|^xVP?~%q|c3n*Y6Yl(7GYt*ZDRqb4;y|Ik&37}h;3bF%7= z4KCWZ1orBxy=qc?N~;N*XcmEbt9Enl4YpH!mr^m-{ngQ~Kb~K`a*Bpbkv;qas(5l) zbXTnbo=lo1-V@9UGHz&2sC8iLQ;ILW$WThLri=(PN6=f+M?IcJvoROGxZ#}~wA%=n zrM@NP!G5I{pzl>5Ao!Mr`W@|+?no9*3op$9=YTC~P+=Qdq5!E>0CLDqzcaErCc-(& zy5NxV=l^#ZVCeTKkG>cjhC#+v6UB8eQvWFdC)9wxGnj#iD6J^}M{yt%6^4gIKT%l` zL5LxbIf}Fn**{ALGwJkjE0Dp&c7G@)oEE0PVJK8CS$U&r@>O?s0I}O3CWDlnWk^VM z85=x+v%Jizp#ic>LhTE^0Em!;rk$uMe3>R`$N29X9YYUlhPPQEYmZk=9_xWfwWg1V ze}u8hG*My9f%RD%MxH5zecK2Qde8!Tve+L-t!Qyl>qvoZ6(XsMV21?qhwH$_)KfZH zc#;QZRJuQ`Fd%?b(0l$d>#$9WiEf8u?B?@xH}N`N7qzg1e^1DNAUL1#cwq?e)GJn% zi-qF)QMU88aEBd~v&>+Y!DKY+4?B>ju~NrdeL;oeI+RaZj2jj(Hx8Xa>1H;^qRJN) zHzMnIS4YKTQ0mJ4{iDu(oMMJe7aKE}MIRu_Ise_m0fggefK^=u zN%2K)pG~~HuA+1!wwECXd_Ks%5+OPPz>eM7iL!QcCvehv{fG{xdw%Y-S~^?7ln+$= z4oeZoe!H)mw~Ga~@bVtu-@gw(IYAi27%bC0O=*|V%pDAY*syI2vp>$YXrvfYbIR$) zeydJGce3)~;95#sjs!O=V>j^Sd{t%Yn2 z#PtGzjikxd-vFIQ_Nef%jW%0)t!gA@5~!Vd~)WU=mV z1My&-F1eWlON4aFg=J$HFRHW2sNmrvJd+5BjdMF`KNJgQWm2nuzm90()WW8Hc=yq^ z(0AIdn^&wbU0u_3&v6zGO(wsFiHHeh5 zP>0OipQv0`_-*w?aH&myt71CBxvTy`zIaz%P(5~531V0UoNUxSvRs9&PPY2Ig*C3D zQDsVUm1CO4Nq06Z;wV<(K4}zh$j-!32XS4vc)*9r=gZHMRh_E5;xBJ6@ zQ6)UqOV;lxe8%OrGGw735eVpj_d$g}@edm~Ak+wh%(FZ-1ZzEj&jToaG5`Ynw0r*? z42;KHQ={w~p0K5UtP;SF0Mf(Lu^?i8Lsi%Mx~Y9aasue0Q#M?hE@BAZ?-KA5QmoU#@pZ)^}IwZ?cS zW_*m=5~PxVAVwY5bmGv;#q?ZvK8txgoDKqH1)?M}v;q)}gh{hqTGLf*RuW3PRBpTl=+1BJi? z{BR=F6m^E$cKOn=KUUy(2xFcXYUk5z4PdiO{9X<=K+ZymjzMKFCA8ZR9lbz!pUtve zbn~K=P?Q9?^y}Ty{bNGZ|D0>iH@??>w5%0MIM!v{8QB`)(G&A zU6(bS==kmp*N60FN^-wg=2%CB4;98ChKuUZj@mHz;JHQbzh0_Gz9l|{Iz;u7RGctf z@C7z6BC=Ox9qp{NUa_4B*TK|Esb;^X+7$}*QYza99Gv8pW>|TP4nrm$dcWwew@Qs{ zXPE1Tbai(zm@;{+*ZDiCWJ;=%`DJZ12#NE-wSsnOjBj$L-WkI(D#_VwH@nj5vLH;x z3wnN_9F>Z&9aki$eVF)el(eJiI!z6qQv65ABF6OS^Q#O&XBzf)pdEi6HQuZnqyTY# z;kvA?=KR!E9yV7PA2Fmsw>tA(OrI?>V*vEW5Oloq1fm$9G{%^%TqI%7)y@9s(;^OE z6kx4~F0;)4u65?E{Z?Y4s=+W*H#IrXt8gH(oY=v<5TPt8DkA3b;srNy-e|@mc<{$I z6(h$Nk>eW3DQ>K|q5-=iHXtjjHOn`tuQ8XFCN6&~X$Wg(x!A={GR~69SFb}DsG^s7 zza2-1Z_Zr381(Whb>g~^hg+fn_-(`1#*(1 zS!yLj;{x__$M|u9(f1FpK+rHAIv9oazAE*8ApWzrM~2ON_eaH>yW0r+D%`kNp6hEl zDH_qso_A|!+6KNqwSbgEoPC%1sL01RsxK8D-eIJ_EDrNwN1(I+8XP)byC1Ei^!Z?! z%f@$muic9Rybyxe-6@tc;FF48#ZyYz8E2l-f?{wBT(m9KrIGNNZLfL#_emAoFaR&#n|bNKVZ z{kf;#-1`lTDwV-B?1GQeJQsOD$sl z=z*)<7wzd$WQMZ!p|MS{-u@C&(C`(0G>v00kJ1~x$NU z9YIQ@4B6CP{+X}gz#J<|yJ}>KZ!4uZEx40w|MwJqRW~qwZ*Tw4ECxflNS#0ooLO7f z9*^AZ#_dprlV&^KuHJ4SDL_6&yDrkpU( z(gUruuE*=UmWD81Op<&te*cM_xq7M)EGZY?GIgP3A&O+7XX=+D#UiwkO##Cl@YJDP z&@?pYRi19Tlg)hKbuQY^&`f~8to z1l7%(r~p`sly3a#)luiOU)#+l+TPLrM#C3O8^K*zSF`mI8sz^VaW(#1hc^$qV)2uO za?p|$yLeCKsbu7(Fjk>le7D@w(=nI(uMaEd?Z+D})_I}nqo7*QK?I>wMRK%}oAk0S zejV__Jpkw0dzhZG&vQ&`qS#W$LTr6p1Q~Tq; z=Jg=7TC1O=!k04|V3}t1;`M3}fJ<0#gJUU3$d{It57e4Uak=bxHs2Jy0otN|D9Lkb zKc(Rz`unZQTl0B0up|K5Aq?oUa}x`6xsw@}H`Iyz)=h_R-#CHn*2bT*7sKC^+Bjq?vwKk=$<=Lv=-87+Q{N7d;9Mv6l3QJg!WE&T%A)13Dy=JLP7S*9Qo-n5^T$Cf1vi(V0piBRrDS#>ojGNLeR$r z9Swz;3~xUop36{VDb9osdU^5&HYFi~&0BTmclcS_9muZn_(;ptj<6JU6_znBD){*m zs)ST0a9|92cjpD5;4h&F5dgS9J_WF}zT$cQ{F)l9xL(6=?FN5v$vF`fZ?rtIz^Vj9 z+PfJ=PgQ`+3iSqN9Bmy5J2R8Kho`D!+Sb5rb~Z!Qh2aPgr22iIy(uv%go#%PY8Woj zcs`H1!5aoda4>QrHdl|j_sTUlk`;V}NXrAVHUlFveVU4m?WwlAFJoyixxpYoBi zccd!>77x{A9zn0!(@1yk-9N&oWjV1Z72mUD5S>Qz+aU5o@og8$$ja*J^x1zS=zE9% zD@P=l@^-Sx{JdCs@1^18auwm10A2-C5ss128oo*da?TcF?!O>s37pA26%;<$y+j+b+|i2+TJ1@u&P{$}rm|B|>X^TDZb(!6T%{_1#e z?fLiG7RU2JjT5+oHPoY{c8$!kp57flISAjZH*KLkUwHaFx#aaq)p#Nw`|Q51J1@@} zS|VA}gObYR3KN$e)!Fa_NTRCoR8GG6jGtef6o+u&{UmU?Vt~ZQ6L|!6)nuM=*ubv~ z2kZYL+}Y(4kb?;jq#{%M7uv}7j+LW7%6=J_>}8b&fug}lMkXVDJhgVvhfRwrqIs=a z6}x%Et<36|BN6d6$ptIQ@6O844=X6yP2cn7(#jkq!h=V-D-i%nt;Zc2^k4p6se_yU zw-{_L7caq=B*S_Zt@V`NI`c2A+G8jny}rJFq0?W?%F2q9Q!wBlRh*TEx)@a$T}9o5 zhzHpak~K1}QBQm!tMAi?Db40E$;YBlr?_y~8r7}olh%gmYgGMkC)w+F%f&w0DjkQa z%A8%JwT3KEusv1B1_wzuozyqCu&|(Fjk8RnU5%!Hij#B0YAJn{6?|luAB2CrE*Dr(*{L+9etnSQ;iv_-L3HlF^E^= z>q=Ekh_t3nTv%`ay%db6wyw4N--S3R#Li=z)i_kee~0qq+W+3&<7~KuQ&iN7C;!JQ zrpmUTp$HG%ln*dTy!|Sj$G!^E!--TWrhU zf5YGW(X_eO*@GW7@28`s$jp5b zgJ!30RKcM}`!s#!e8VLOLaa2=Frxd1wZLr0j?B=lli(H02e(7~2cbG#`7e;hg)_Iq zwf^}aCS)$vp~*r0=V|;wOv*kD6|qQfBUdcY&I&FZ%$53K*mmc1nKe7%^;-1lw6jY? zMI`wCsFU*gw>QVtQ9BHofP-}5WB|J@T#-SNT+v^#>A}s}81W=Xg-%t^fmQ{Sar?*9 zC=3r`DfzsKL7-o_$d0SIgbkBJtE~Q21cfk5`SWXcLSz32=l?LbptMiqw0RQ=+Ylt{ z?=N=Ly!E#24s_w0KSDa6^Zcp<6C9zh*}qR(X_CB{nER^srd_e6ml}0zejcpB^+p1%aQ4o$26W%D8D-+ zot;b}pYKjb7!5BGftRcCHIQjO({;avWb{xLWI==Af*T4UNNR%Zip-Ytr2Mzm+Ca^( z5gP^}YZ8V?*b9(I?PxcD!@-GY{rsDWz{HRKm{_j+7(TAhNoFP*(F1dGnKU*g*W}G` zPt%=t=b|77OJ|MeHl)2G;puC&E;i}6$n3&FU++vgE9DB47r zB8T+vk0P0r0Z4SHzt}Q!_B9-bWWp3u5u%oxi(bN@%(BsvFJ!sTTveVkt22AiA_o&Z z5s4eg2+`od3$cMb%bm2`fwPEKs@jK*ZV9~h=O_zi;IlQ4HTN!DqnGW0hY1UjU|JG? zNC^pv^sFpK%zp(kyJgA!{r!-_PYLglRcph~>-XIhL}cTT1+21&(*_NA+DJrBu;+gbuBg~yHvBltr-L`Cz2AE}VzMt4q~4}odh z0wiAWv|(R1)BKL`*g0J=D;WO$1v#OJnKswy& zzeS$Ji)~igmSwZV!g{CSkn>`NlNR4+)R%46H%!eNG-C$`kdp7mDt!ekz5o_Mmie}>4N7FIgL?A)P$tgkD z9%dA+u>f{i+Mvs2nMCLaRY~0U;=tk?soz&b&K!;SBqYOIlwm-qzS36I`*Ysq!%o}| zki#-fcz8sAW(3R?-H&^$fQn`#a-`?YmB{Z5oy234+T(e}AN!-!$H^eTs7t8Jtr~mI zb?3~zrCOg>{e#4zZ@Wi|uD^tjvnjRSEy zbq&!qu^28yP>D6J4Qh42n7{O*`H1}bz7{D}1lO|W#W-JU6bIP)O-T>BF%jM7(@>IY z?Vg8IO%5 z;}9RxQWBsY0wYVhAtn!!RM2~oGdjED4CcxBGU0_v&M6$qgTUV?TEE-1n{`s=m`oKE zeY1myHr`G8oObzBqq03WYwzkM%^bA(nQ?Az4xf;)|KH!rg|9lP&AQd>5i=}JxB<|$ zftvS6g7458V<5j?+0$HS@%1vnD1~0_;HQ z=+E}2Nbhm`7B3e;OUcTLJb2$Kee1F!))i=SL zX$inrNc#4e*ApH_>W2?h2@HfF;Z0j}C(u|Oz13Vu``<{XXJmYwr@2wP18d)DP@?gqD5pv})@Z!iuXY}iMBcDY7Tbt3#-?B9_B>X3B`d@^4D$rdl`eR3gIR8%q@ zh6F`6%u8x35N{Gf{bMQl^YcpwM{Uwbh&nmW;F@{Sj~{WrMTs}!$DXHCx+j#crwU-2 z;`Vh?t5QdaD98xn%Yy&*j7`SGQ+p)E-d81qL+!Ez-CtfaEb{uMr_s6X*Mopd=-9rM zWWmszSxQO@XpbBHJOtK>f0dp8c3?$^=3y1C(h>dbo|k{Dy~U`7B5C_ZUtAfyNZyeu zuxIb_6?#M|yBCVp)6tO`%^VrZ4YmP?lge{eSPG2CZU5B|$G;|#HlELM6JSdxS^qG? ze5=OF4^Uprre>KE-t920VNwlFX04=aL#n<`Z)fFr{;VsicB)`f-@W)4>XZ8XhiSvG z6e9cgwa>$E+PuLJC*q!yXUhN1U2t%4dR`t}z&e%em1gDNsq0ldQ&%IUJV*x;LNhr} z)^a4KGf)#EhQw%lL+TH@emef61a9I`qaVscYsOG=s-(hpJ zFe4#IHX4dh^QFH~K;ne5&k0mtfSYU$`I^ZV^8_zM!*1br;-QnBR)>}jis2AXA_?rr z)75rv>>3v`XS{o3j^Z-#%wC}bu!p?CE2k7^{y;T}$K$wBEF6gkXye}3zJE?hBu1LV z6WZwYpO(YJC`L4L9CmGp8lwMInSbb3)WE}1-m6aM;ktKDqTx6E7Ew{vK^LI+!PLoX zEM_jg=0q#ks#wUX?Pl!cnyw!jTYYP{G;(6-lxg7QrE^@)e&4{R*eVi;YakzA_IQaH zxwPqdvH`4E##YQ@eYo*i@bZk;UhSG4A(L4=TPxkSdcV&Ts2sndwf>xRU%Fy6$M}^> za%j9EXVZs9T2K?@C-A2~eou$*zyY$*%|4dR`3fjg!_0g7LtAhA>;}Y?nMfLuUNMav zh`f9HTw&!6j%hGP;lC4i)Ls8H09uo2ffE)B{3^42e~_=Q@8QvDeQ!jlR1H^y+o#D8 z8r;n5^qic5(M5cgY>~LA1J+FdapiS?Bl?oVAA^K9W%kVrcJdn*aC>DI12s5(o10|Z zw#z?+77W4wo75)Y#K$Kf1{yv#LInWo4oocgV;~I8H~_^FTQkz6w=wy5I=WVC zCLMV8nj$Jk#Y@zuat58def{u)+j2tAwM!cK#Ke6wMPba^C`zbxd`zGY(W5L7Q_try z;RHQPEo3m3xiK1o4)&((R}NG*?Ll7U?%=PB+pByb0w)28heJ1t66C`Lo^HL7){RFqtf_*Tzu4qP3r%woI%mgII;~VCU)GDU6d;7YRwLm>bs!5PXk3<#m8SSA zK(*TC+4q`B=|NiS-XjvqshB`T53*hBO;P>OPdcsvt(!Qt58T;;o`^tl7bnSMntvab zl3?rsDslhA1Ml0u{X6afIB%q5{gI{f?6!7b+0`b&oKGM*#vHiD3zw{y*$)M!OPz0S zZ%hZCP=L{KWcLphww$CQ&LdLvLL@h0l&U3{UV3)6Xs$W(kFiE%WyGDGorhy3A4va) zuy;Ge($;q%kiQE~CpB$MBqJ}KN@jsHnn*OTR#o|O zT8#9+Bt&N!8r+OtbBo#B&2raS+HOOX*EwsHo@tUWri`uHKhl(_|* z7-hQ87jbbhW(KdZ zi>rc(5;K`~E`N=j7)3Y1?#3)2E;! zBMSx}q(HHz4JCiPhL~Ii2zfN#Q~Tb;L<=ecG!yAOZ9Mg3&Ask?2cX9T&r7Koo)fTm zz8&2gyqB;+iP&wlu`kK#lR_N@GiK|K#EE8JuBlrRvw4AQC7K>u6f8PyQ^1 z`b?GjOji}ys~0dk#`dU65Y-*|Q~YzH{;;KVMpTcA5B+c1JkAP6H}oesOv=b1VMKY~ z%jM21MUYM?FpF-^>n&`51ld#?y`J*AK5^ciu7vqM=MDwFK06+^4LnqDyx9Vb7U}!H zFn@UOnw4N^1jlQZe>uR=cQV0*JZ-$bKW}FaR22{S-mirnWe^bYI)I9bip)u|u_M_+ znzDIPiYvRsIzRI&(@~4H@*2kdPj3Hr}B~-nJ>ZSNk4_cr7QHh&s@j6&slb z0O8$*ki7>KEbMc_9s!}1DFoey!J_PcBoAuRyxhmkpZ!hljECwewn*9?O8gdYHN4b8 zg#2O%-O2HiiJN*ow|Wk*C<{C1Z)f%wi)Kaxi@=-1kZ4#Dpl8#%PO{jzxPk#XVRIs* zF+C%<|K(kH5=@wI%rg@J?o*tr>RX4^fCdR<5A9M59Z|nkD9md|? zivbOZ;-vJj#>mCqP>@flzu@yLgDoD3R