From 3ff42dd8c2dacc163b6b4a0ce50390b9e3be10da Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Mon, 4 Aug 2025 16:06:45 +0000 Subject: [PATCH] sibling of 899bc8a8fd9c82565cc1b37659b226587b699929 --- .github/actions/build_docs/action.yml | 8 +- .github/workflows/ci.yml | 7 +- .github/workflows/release_nightly.yml | 20 - Cargo.lock | 430 ++-- Cargo.toml | 39 +- README.md | 1 - assets/badge/v0.json | 8 - assets/icons/ai_bedrock.svg | 10 +- assets/icons/ai_deep_seek.svg | 4 +- assets/icons/ai_lm_studio.svg | 46 +- assets/icons/ai_mistral.svg | 9 +- assets/icons/ai_ollama.svg | 17 +- assets/icons/ai_open_ai.svg | 2 +- assets/icons/ai_open_router.svg | 14 +- assets/icons/ai_x_ai.svg | 2 +- assets/icons/ai_zed.svg | 9 +- .../icons/{cloud_download.svg => at_sign.svg} | 2 +- assets/icons/audio_off.svg | 8 +- assets/icons/audio_on.svg | 6 +- assets/icons/bolt.svg | 3 + assets/icons/bolt_filled.svg | 4 +- assets/icons/bolt_filled_alt.svg | 3 + assets/icons/bolt_outlined.svg | 3 - assets/icons/book_plus.svg | 1 + assets/icons/brain.svg | 1 + assets/icons/chat.svg | 4 - assets/icons/editor_atom.svg | 3 - assets/icons/editor_cursor.svg | 9 - assets/icons/editor_emacs.svg | 10 - assets/icons/editor_jet_brains.svg | 3 - assets/icons/editor_sublime.svg | 5 - assets/icons/editor_vs_code.svg | 3 - assets/icons/exit.svg | 11 +- assets/icons/file_icons/kdl.svg | 1 - assets/icons/file_icons/surrealql.svg | 3 - assets/icons/file_text.svg | 7 +- assets/icons/git_onboarding_bg.svg | 40 + assets/icons/message_bubbles.svg | 6 + assets/icons/mic.svg | 6 +- assets/icons/mic_mute.svg | 9 +- assets/icons/microscope.svg | 1 + assets/icons/new_from_summary.svg | 7 + .../{text_thread.svg => new_text_thread.svg} | 0 assets/icons/{thread.svg => new_thread.svg} | 0 assets/icons/play.svg | 3 + .../icons/{play_outlined.svg => play_alt.svg} | 2 +- assets/icons/play_bug.svg | 8 + assets/icons/play_filled.svg | 4 +- assets/icons/reveal.svg | 1 + assets/icons/screen.svg | 11 +- assets/icons/shield_check.svg | 4 - assets/icons/spinner.svg | 13 + assets/icons/strikethrough.svg | 3 + assets/icons/thread_from_summary.svg | 6 - assets/icons/trash.svg | 6 +- assets/icons/trash_alt.svg | 1 + assets/icons/zed_predict_bg.svg | 19 + assets/keymaps/default-linux.json | 14 +- assets/keymaps/default-macos.json | 14 +- assets/keymaps/linux/cursor.json | 2 +- assets/keymaps/linux/jetbrains.json | 27 +- assets/keymaps/macos/cursor.json | 2 +- assets/keymaps/macos/jetbrains.json | 22 +- assets/keymaps/vim.json | 6 +- assets/settings/default.json | 27 +- crates/acp_thread/Cargo.toml | 5 +- crates/acp_thread/src/acp_thread.rs | 1680 +++++++-------- crates/acp_thread/src/connection.rs | 42 +- crates/agent/Cargo.toml | 5 +- crates/agent/src/context.rs | 4 +- crates/agent/src/thread.rs | 14 +- crates/agent_servers/Cargo.toml | 4 - crates/agent_servers/src/acp.rs | 34 - crates/agent_servers/src/acp/v0.rs | 501 ----- crates/agent_servers/src/acp/v1.rs | 254 --- crates/agent_servers/src/agent_servers.rs | 11 +- crates/agent_servers/src/claude.rs | 527 +++-- crates/agent_servers/src/claude/mcp_server.rs | 466 +++-- crates/agent_servers/src/claude/tools.rs | 276 ++- crates/agent_servers/src/e2e_tests.rs | 188 +- crates/agent_servers/src/gemini.rs | 98 +- .../agent_servers/src/stdio_agent_server.rs | 119 ++ crates/agent_settings/Cargo.toml | 2 +- crates/agent_settings/src/agent_settings.rs | 6 +- crates/agent_ui/Cargo.toml | 8 +- crates/agent_ui/src/acp/thread_view.rs | 1445 +++++-------- crates/agent_ui/src/active_thread.rs | 2 +- crates/agent_ui/src/agent_configuration.rs | 115 +- .../manage_profiles_modal.rs | 2 +- crates/agent_ui/src/agent_diff.rs | 9 +- crates/agent_ui/src/agent_panel.rs | 199 +- crates/agent_ui/src/agent_ui.rs | 1 - crates/agent_ui/src/buffer_codegen.rs | 2 +- crates/agent_ui/src/context_picker.rs | 2 +- .../src/context_picker/completion_provider.rs | 4 +- .../context_picker/thread_context_picker.rs | 2 +- crates/agent_ui/src/debug.rs | 2 +- crates/agent_ui/src/inline_assistant.rs | 4 +- crates/agent_ui/src/inline_prompt_editor.rs | 2 +- .../agent_ui/src/language_model_selector.rs | 2 +- crates/agent_ui/src/message_editor.rs | 27 +- .../agent_ui/src/terminal_inline_assistant.rs | 2 +- crates/agent_ui/src/thread_history.rs | 2 +- .../agent_ui/src/ui/preview/usage_callouts.rs | 2 +- crates/ai_onboarding/Cargo.toml | 2 +- .../src/agent_api_keys_onboarding.rs | 5 +- .../src/agent_panel_onboarding_content.rs | 12 +- crates/ai_onboarding/src/ai_onboarding.rs | 40 +- crates/ai_onboarding/src/ai_upsell_card.rs | 212 -- crates/assistant_context/Cargo.toml | 2 +- .../src/assistant_context.rs | 2 +- crates/assistant_tools/Cargo.toml | 4 +- crates/assistant_tools/src/edit_agent.rs | 2 +- .../assistant_tools/src/edit_agent/evals.rs | 63 +- crates/assistant_tools/src/web_search_tool.rs | 2 +- crates/audio/Cargo.toml | 2 +- crates/audio/src/assets.rs | 9 +- crates/audio/src/audio.rs | 14 +- crates/channel/src/channel_store.rs | 2 +- crates/channel/src/channel_store_tests.rs | 18 +- crates/client/Cargo.toml | 12 +- crates/client/src/client.rs | 397 ++-- crates/client/src/telemetry.rs | 6 +- crates/client/src/test.rs | 94 +- crates/client/src/user.rs | 279 +-- crates/cloud_api_client/Cargo.toml | 21 - crates/cloud_api_client/LICENSE-APACHE | 1 - .../cloud_api_client/src/cloud_api_client.rs | 188 -- crates/cloud_api_types/Cargo.toml | 22 - crates/cloud_api_types/LICENSE-APACHE | 1 - crates/cloud_api_types/src/cloud_api_types.rs | 55 - crates/cloud_api_types/src/timestamp.rs | 166 -- crates/cloud_llm_client/Cargo.toml | 23 - crates/cloud_llm_client/LICENSE-APACHE | 1 - .../cloud_llm_client/src/cloud_llm_client.rs | 370 ---- crates/collab/Cargo.toml | 4 +- crates/collab/src/api.rs | 60 +- crates/collab/src/api/billing.rs | 351 +++- crates/collab/src/api/contributors.rs | 12 +- .../src/db/tables/billing_subscription.rs | 2 +- crates/collab/src/llm/db.rs | 2 +- .../collab/src/llm/db/tests/provider_tests.rs | 2 +- crates/collab/src/llm/token.rs | 2 +- crates/collab/src/rpc.rs | 65 +- crates/collab/src/tests.rs | 4 +- crates/collab/src/tests/integration_tests.rs | 16 +- crates/collab/src/tests/notification_tests.rs | 4 - crates/collab/src/tests/test_server.rs | 62 +- crates/collab_ui/src/chat_panel.rs | 2 +- crates/collab_ui/src/collab_panel.rs | 14 +- crates/collab_ui/src/notification_panel.rs | 11 +- crates/context_server/src/client.rs | 117 +- crates/context_server/src/context_server.rs | 27 +- crates/context_server/src/listener.rs | 249 +-- crates/context_server/src/protocol.rs | 24 - crates/context_server/src/types.rs | 37 +- crates/copilot/src/copilot.rs | 84 +- .../debugger_ui/src/tests/debugger_panel.rs | 2 +- crates/docs_preprocessor/Cargo.toml | 12 +- crates/docs_preprocessor/src/main.rs | 244 +-- crates/editor/Cargo.toml | 1 - crates/editor/src/actions.rs | 5 +- crates/editor/src/code_completion_tests.rs | 24 +- crates/editor/src/code_context_menus.rs | 4 +- crates/editor/src/editor.rs | 241 +-- crates/editor/src/editor_tests.rs | 474 ----- crates/editor/src/element.rs | 66 +- crates/eval/Cargo.toml | 4 +- crates/eval/src/eval.rs | 7 +- crates/eval/src/example.rs | 2 +- crates/extension/Cargo.toml | 4 - crates/extension/src/capabilities.rs | 20 - .../capabilities/download_file_capability.rs | 121 -- .../npm_install_package_capability.rs | 39 - .../capabilities/process_exec_capability.rs | 116 -- crates/extension/src/extension.rs | 2 - crates/extension/src/extension_manifest.rs | 66 +- .../extension_compilation_benchmark.rs | 10 +- .../extension_host/src/capability_granter.rs | 153 -- crates/extension_host/src/extension_host.rs | 1 - crates/extension_host/src/wasm_host.rs | 26 +- .../src/wasm_host/wit/since_v0_6_0.rs | 10 +- crates/feature_flags/src/feature_flags.rs | 5 - crates/file_finder/src/file_finder.rs | 21 +- crates/fs/src/fake_git_repo.rs | 12 - crates/git/src/git.rs | 4 - crates/git/src/repository.rs | 57 - .../src/providers/github.rs | 22 +- crates/git_ui/Cargo.toml | 2 +- crates/git_ui/src/git_panel.rs | 69 +- crates/git_ui/src/git_ui.rs | 16 - crates/gpui/Cargo.toml | 11 +- crates/gpui/build.rs | 233 +-- crates/gpui/examples/painting.rs | 218 +- crates/gpui/examples/paths_bench.rs | 92 - crates/gpui/examples/tab_stop.rs | 15 +- crates/gpui/examples/text.rs | 2 +- crates/gpui/src/color.rs | 1 - crates/gpui/src/elements/div.rs | 7 +- crates/gpui/src/elements/uniform_list.rs | 5 +- crates/gpui/src/platform.rs | 6 +- crates/gpui/src/platform/blade/blade_atlas.rs | 97 +- .../gpui/src/platform/blade/blade_renderer.rs | 701 +++---- crates/gpui/src/platform/blade/shaders.wgsl | 78 +- .../gpui/src/platform/linux/wayland/window.rs | 29 +- crates/gpui/src/platform/linux/x11/client.rs | 1 - crates/gpui/src/platform/mac/metal_atlas.rs | 56 +- .../gpui/src/platform/mac/metal_renderer.rs | 538 +++-- crates/gpui/src/platform/mac/shaders.metal | 138 +- crates/gpui/src/platform/test/window.rs | 2 +- crates/gpui/src/platform/windows.rs | 4 - .../platform/windows/color_text_raster.hlsl | 39 - .../gpui/src/platform/windows/direct_write.rs | 870 +++----- .../src/platform/windows/directx_atlas.rs | 309 --- .../src/platform/windows/directx_renderer.rs | 1807 ----------------- crates/gpui/src/platform/windows/events.rs | 94 +- crates/gpui/src/platform/windows/platform.rs | 56 +- crates/gpui/src/platform/windows/shaders.hlsl | 1159 ----------- crates/gpui/src/platform/windows/window.rs | 106 +- crates/gpui/src/scene.rs | 13 +- crates/gpui/src/tab_stop.rs | 34 +- crates/gpui/src/taffy.rs | 26 +- crates/gpui/src/window.rs | 10 +- crates/http_client/Cargo.toml | 1 - crates/http_client/src/http_client.rs | 87 +- crates/icons/src/icons.rs | 31 +- crates/inline_completion_button/Cargo.toml | 2 +- .../src/inline_completion_button.rs | 19 +- crates/language/src/language.rs | 44 +- .../src/extension_lsp_adapter.rs | 4 +- crates/language_model/Cargo.toml | 2 +- crates/language_model/src/language_model.rs | 2 +- .../language_model/src/model/cloud_model.rs | 16 +- crates/language_model/src/request.rs | 7 +- crates/language_models/Cargo.toml | 15 +- crates/language_models/src/provider/cloud.rs | 149 +- .../src/provider/copilot_chat.rs | 2 +- .../language_models/src/provider/lmstudio.rs | 2 +- crates/language_models/src/provider/ollama.rs | 14 +- crates/language_tools/src/lsp_log.rs | 2 +- crates/language_tools/src/lsp_tool.rs | 2 +- crates/languages/Cargo.toml | 1 - crates/languages/src/bash/config.toml | 31 +- crates/languages/src/bash/indents.scm | 22 +- crates/languages/src/go/runnables.scm | 2 +- crates/languages/src/json.rs | 10 +- crates/languages/src/lib.rs | 24 +- crates/languages/src/python.rs | 349 +--- crates/languages/src/tailwind.rs | 28 +- crates/languages/src/typescript.rs | 13 +- crates/languages/src/typescript/runnables.scm | 41 +- crates/languages/src/vtsls.rs | 10 +- crates/languages/src/yaml/outline.scm | 10 +- crates/livekit_client/Cargo.toml | 4 +- crates/livekit_client/src/lib.rs | 35 +- .../src/mock_client/participant.rs | 17 +- crates/lsp/src/lsp.rs | 159 +- crates/onboarding/Cargo.toml | 18 +- crates/onboarding/src/ai_setup_page.rs | 359 ---- crates/onboarding/src/basics_page.rs | 351 ---- crates/onboarding/src/editing_page.rs | 457 ----- crates/onboarding/src/onboarding.rs | 705 ++----- crates/onboarding/src/welcome.rs | 336 --- crates/outline_panel/src/outline_panel.rs | 868 +------- .../src/outline_panel_settings.rs | 8 - crates/paths/src/paths.rs | 10 +- crates/prettier/src/prettier_server.js | 4 - crates/project/src/debugger/dap_command.rs | 8 +- crates/project/src/debugger/dap_store.rs | 10 - crates/project/src/debugger/locators/cargo.rs | 2 +- crates/project/src/debugger/session.rs | 11 +- crates/project/src/git_store.rs | 252 +-- crates/project/src/git_store/git_traversal.rs | 48 +- crates/project/src/lsp_command.rs | 23 +- crates/project/src/lsp_store.rs | 133 +- .../project/src/manifest_tree/server_tree.rs | 23 +- crates/project/src/project.rs | 17 +- crates/project/src/terminals.rs | 11 +- crates/project_panel/src/project_panel.rs | 27 +- crates/proto/proto/debugger.proto | 18 +- crates/proto/proto/git.proto | 11 - crates/proto/proto/zed.proto | 4 +- crates/proto/src/proto.rs | 25 - crates/recent_projects/src/remote_servers.rs | 2 +- crates/remote/src/ssh_session.rs | 2 +- crates/repl/src/notebook/cell.rs | 2 +- crates/repl/src/notebook/notebook_ui.rs | 2 +- crates/rules_library/src/rules_library.rs | 4 +- crates/search/src/buffer_search.rs | 28 +- crates/search/src/project_search.rs | 13 +- crates/settings/src/settings.rs | 8 +- crates/settings/src/settings_store.rs | 85 +- crates/settings_profile_selector/Cargo.toml | 35 - crates/settings_profile_selector/LICENSE-GPL | 1 - .../src/settings_profile_selector.rs | 581 ------ crates/settings_ui/Cargo.toml | 8 +- crates/settings_ui/src/keybindings.rs | 553 ++++- crates/settings_ui/src/settings_ui.rs | 114 +- .../src/ui_components/keystroke_input.rs | 1388 ------------- crates/settings_ui/src/ui_components/mod.rs | 1 - crates/settings_ui/src/ui_components/table.rs | 654 +----- crates/sum_tree/src/sum_tree.rs | 12 +- crates/tasks_ui/src/modal.rs | 2 +- crates/terminal_view/src/terminal_view.rs | 6 +- crates/theme/src/icon_theme.rs | 4 - crates/theme/src/settings.rs | 3 +- crates/title_bar/Cargo.toml | 1 - crates/title_bar/src/collab.rs | 60 +- crates/title_bar/src/title_bar.rs | 50 +- crates/ui/src/components.rs | 2 - crates/ui/src/components/badge.rs | 66 - .../ui/src/components/button/button_like.rs | 4 +- .../ui/src/components/button/split_button.rs | 12 +- .../ui/src/components/button/toggle_button.rs | 616 +----- crates/ui/src/components/dropdown_menu.rs | 36 +- crates/ui/src/components/keybinding.rs | 2 +- crates/ui/src/components/modal.rs | 24 +- crates/ui/src/components/numeric_stepper.rs | 145 +- crates/ui/src/components/popover.rs | 2 +- crates/ui/src/components/scrollbar.rs | 82 +- .../ui/src/components/stories/icon_button.rs | 2 +- crates/ui/src/components/toggle.rs | 50 +- crates/ui/src/styles/animation.rs | 18 +- crates/ui_prompt/src/ui_prompt.rs | 72 +- crates/vim/src/command.rs | 195 +- crates/vim/src/helix.rs | 214 +- crates/vim/src/insert.rs | 2 +- crates/vim/src/motion.rs | 9 +- crates/vim/src/normal/change.rs | 16 +- crates/vim/src/vim.rs | 3 +- crates/vim/test_data/test_change_w.json | 4 - crates/vim/test_data/test_normal_command.json | 64 - crates/web_search/Cargo.toml | 2 +- crates/web_search/src/web_search.rs | 5 +- crates/web_search_providers/Cargo.toml | 2 +- crates/web_search_providers/src/cloud.rs | 2 +- crates/welcome/Cargo.toml | 1 + crates/welcome/src/welcome.rs | 1 + crates/welcome/src/welcome_ui.rs | 1 + .../src/welcome_ui}/theme_preview.rs | 97 +- crates/workspace/src/dock.rs | 4 - crates/workspace/src/pane.rs | 51 +- crates/workspace/src/persistence.rs | 72 - crates/workspace/src/workspace.rs | 185 +- crates/worktree/src/worktree.rs | 14 +- crates/zed/Cargo.toml | 4 +- crates/zed/RELEASE_CHANNEL | 2 +- crates/zed/resources/app-icon-nightly.png | Bin 242801 -> 239870 bytes crates/zed/resources/app-icon-nightly@2x.png | Bin 923937 -> 716288 bytes crates/zed/resources/windows/zed.iss | 11 +- crates/zed/src/main.rs | 35 +- crates/zed/src/reliability.rs | 2 +- crates/zed/src/zed.rs | 45 +- crates/zed/src/zed/app_menus.rs | 4 - crates/zed/src/zed/component_preview.rs | 19 +- .../preview_support/active_thread.rs | 22 +- .../zed/src/zed/inline_completion_registry.rs | 23 +- crates/zed/src/zed/quick_action_bar.rs | 2 +- crates/zed_actions/src/lib.rs | 15 +- crates/zeta/Cargo.toml | 10 +- crates/zeta/src/zeta.rs | 366 ++-- crates/zeta_cli/Cargo.toml | 45 - crates/zeta_cli/LICENSE-GPL | 1 - crates/zeta_cli/build.rs | 14 - crates/zeta_cli/src/headless.rs | 128 -- crates/zeta_cli/src/main.rs | 376 ---- crates/zlog/src/sink.rs | 23 - crates/zlog/src/zlog.rs | 2 +- docs/README.md | 61 - docs/book.toml | 21 +- docs/src/SUMMARY.md | 3 +- docs/src/accounts.md | 2 +- docs/src/ai/agent-panel.md | 4 +- docs/src/ai/agent-settings.md | 226 --- docs/src/ai/billing.md | 14 +- docs/src/ai/configuration.md | 733 ++++++- docs/src/ai/inline-assistant.md | 2 +- docs/src/ai/llm-providers.md | 606 ------ docs/src/ai/mcp.md | 4 +- docs/src/ai/overview.md | 7 +- docs/src/ai/plans-and-usage.md | 2 +- docs/src/ai/rules.md | 2 +- docs/src/ai/temperature.md | 23 + docs/src/configuring-zed.md | 46 +- docs/src/extensions/installing-extensions.md | 2 +- docs/src/getting-started.md | 2 +- docs/src/git.md | 7 +- docs/src/key-bindings.md | 2 +- docs/src/languages/c.md | 2 +- docs/src/languages/cpp.md | 2 +- docs/src/languages/deno.md | 34 - docs/src/linux.md | 75 - docs/src/telemetry.md | 13 +- docs/src/visual-customization.md | 2 +- docs/theme/index.hbs | 2 +- extensions/emmet/Cargo.toml | 2 +- script/bundle-linux | 17 - script/bundle-mac | 17 - script/bundle-windows.ps1 | 34 +- script/linux | 1 - script/zed-local | 2 +- tooling/workspace-hack/Cargo.toml | 8 + typos.toml | 6 +- 403 files changed, 8398 insertions(+), 24176 deletions(-) delete mode 100644 assets/badge/v0.json rename assets/icons/{cloud_download.svg => at_sign.svg} (51%) create mode 100644 assets/icons/bolt.svg create mode 100644 assets/icons/bolt_filled_alt.svg delete mode 100644 assets/icons/bolt_outlined.svg create mode 100644 assets/icons/book_plus.svg create mode 100644 assets/icons/brain.svg delete mode 100644 assets/icons/chat.svg delete mode 100644 assets/icons/editor_atom.svg delete mode 100644 assets/icons/editor_cursor.svg delete mode 100644 assets/icons/editor_emacs.svg delete mode 100644 assets/icons/editor_jet_brains.svg delete mode 100644 assets/icons/editor_sublime.svg delete mode 100644 assets/icons/editor_vs_code.svg delete mode 100644 assets/icons/file_icons/kdl.svg delete mode 100644 assets/icons/file_icons/surrealql.svg create mode 100644 assets/icons/git_onboarding_bg.svg create mode 100644 assets/icons/message_bubbles.svg create mode 100644 assets/icons/microscope.svg create mode 100644 assets/icons/new_from_summary.svg rename assets/icons/{text_thread.svg => new_text_thread.svg} (100%) rename assets/icons/{thread.svg => new_thread.svg} (100%) create mode 100644 assets/icons/play.svg rename assets/icons/{play_outlined.svg => play_alt.svg} (70%) create mode 100644 assets/icons/play_bug.svg create mode 100644 assets/icons/reveal.svg delete mode 100644 assets/icons/shield_check.svg create mode 100644 assets/icons/spinner.svg create mode 100644 assets/icons/strikethrough.svg delete mode 100644 assets/icons/thread_from_summary.svg create mode 100644 assets/icons/trash_alt.svg create mode 100644 assets/icons/zed_predict_bg.svg delete mode 100644 crates/agent_servers/src/acp.rs delete mode 100644 crates/agent_servers/src/acp/v0.rs delete mode 100644 crates/agent_servers/src/acp/v1.rs create mode 100644 crates/agent_servers/src/stdio_agent_server.rs delete mode 100644 crates/ai_onboarding/src/ai_upsell_card.rs delete mode 100644 crates/cloud_api_client/Cargo.toml delete mode 120000 crates/cloud_api_client/LICENSE-APACHE delete mode 100644 crates/cloud_api_client/src/cloud_api_client.rs delete mode 100644 crates/cloud_api_types/Cargo.toml delete mode 120000 crates/cloud_api_types/LICENSE-APACHE delete mode 100644 crates/cloud_api_types/src/cloud_api_types.rs delete mode 100644 crates/cloud_api_types/src/timestamp.rs delete mode 100644 crates/cloud_llm_client/Cargo.toml delete mode 120000 crates/cloud_llm_client/LICENSE-APACHE delete mode 100644 crates/cloud_llm_client/src/cloud_llm_client.rs delete mode 100644 crates/extension/src/capabilities.rs delete mode 100644 crates/extension/src/capabilities/download_file_capability.rs delete mode 100644 crates/extension/src/capabilities/npm_install_package_capability.rs delete mode 100644 crates/extension/src/capabilities/process_exec_capability.rs delete mode 100644 crates/extension_host/src/capability_granter.rs delete mode 100644 crates/gpui/examples/paths_bench.rs delete mode 100644 crates/gpui/src/platform/windows/color_text_raster.hlsl delete mode 100644 crates/gpui/src/platform/windows/directx_atlas.rs delete mode 100644 crates/gpui/src/platform/windows/directx_renderer.rs delete mode 100644 crates/gpui/src/platform/windows/shaders.hlsl delete mode 100644 crates/onboarding/src/ai_setup_page.rs delete mode 100644 crates/onboarding/src/basics_page.rs delete mode 100644 crates/onboarding/src/editing_page.rs delete mode 100644 crates/onboarding/src/welcome.rs delete mode 100644 crates/settings_profile_selector/Cargo.toml delete mode 120000 crates/settings_profile_selector/LICENSE-GPL delete mode 100644 crates/settings_profile_selector/src/settings_profile_selector.rs delete mode 100644 crates/settings_ui/src/ui_components/keystroke_input.rs delete mode 100644 crates/ui/src/components/badge.rs delete mode 100644 crates/vim/test_data/test_normal_command.json create mode 100644 crates/welcome/src/welcome_ui.rs rename crates/{onboarding/src => welcome/src/welcome_ui}/theme_preview.rs (72%) delete mode 100644 crates/zeta_cli/Cargo.toml delete mode 120000 crates/zeta_cli/LICENSE-GPL delete mode 100644 crates/zeta_cli/build.rs delete mode 100644 crates/zeta_cli/src/headless.rs delete mode 100644 crates/zeta_cli/src/main.rs delete mode 100644 docs/src/ai/agent-settings.md delete mode 100644 docs/src/ai/llm-providers.md create mode 100644 docs/src/ai/temperature.md diff --git a/.github/actions/build_docs/action.yml b/.github/actions/build_docs/action.yml index a7effad247..9a2d7e1ec7 100644 --- a/.github/actions/build_docs/action.yml +++ b/.github/actions/build_docs/action.yml @@ -19,7 +19,7 @@ runs: shell: bash -euxo pipefail {0} run: ./script/linux - - name: Check for broken links (in MD) + - name: Check for broken links uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 # v2.4.1 with: args: --no-progress --exclude '^http' './docs/src/**/*' @@ -30,9 +30,3 @@ runs: run: | mkdir -p target/deploy mdbook build ./docs --dest-dir=../target/deploy/docs/ - - - name: Check for broken links (in HTML) - uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 # v2.4.1 - with: - args: --no-progress --exclude '^http' 'target/deploy/docs/' - fail: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7dfc33e0d2..a4da5e99ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -269,10 +269,6 @@ jobs: mkdir -p ./../.cargo cp ./.cargo/ci-config.toml ./../.cargo/config.toml - - name: Check that Cargo.lock is up to date - run: | - cargo update --locked --workspace - - name: cargo clippy run: ./script/clippy @@ -771,8 +767,7 @@ jobs: timeout-minutes: 120 name: Create a Windows installer runs-on: [self-hosted, Windows, X64] - if: contains(github.event.pull_request.labels.*.name, 'run-bundling') - # if: (startsWith(github.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run-bundling')) + if: false && (startsWith(github.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run-bundling')) needs: [windows_tests] env: AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }} diff --git a/.github/workflows/release_nightly.yml b/.github/workflows/release_nightly.yml index 4f7506967b..f799133ea7 100644 --- a/.github/workflows/release_nightly.yml +++ b/.github/workflows/release_nightly.yml @@ -111,11 +111,6 @@ jobs: echo "Publishing version: ${version} on release channel nightly" echo "nightly" > crates/zed/RELEASE_CHANNEL - - name: Setup Sentry CLI - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b #v2 - with: - token: ${{ SECRETS.SENTRY_AUTH_TOKEN }} - - name: Create macOS app bundle run: script/bundle-mac @@ -141,11 +136,6 @@ jobs: - name: Install Linux dependencies run: ./script/linux && ./script/install-mold 2.34.0 - - name: Setup Sentry CLI - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b #v2 - with: - token: ${{ SECRETS.SENTRY_AUTH_TOKEN }} - - name: Limit target directory size run: script/clear-target-dir-if-larger-than 100 @@ -178,11 +168,6 @@ jobs: - name: Install Linux dependencies run: ./script/linux - - name: Setup Sentry CLI - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b #v2 - with: - token: ${{ SECRETS.SENTRY_AUTH_TOKEN }} - - name: Limit target directory size run: script/clear-target-dir-if-larger-than 100 @@ -277,11 +262,6 @@ jobs: Write-Host "Publishing version: $version on release channel nightly" "nightly" | Set-Content -Path "crates/zed/RELEASE_CHANNEL" - - name: Setup Sentry CLI - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b #v2 - with: - token: ${{ SECRETS.SENTRY_AUTH_TOKEN }} - - name: Build Zed installer working-directory: ${{ env.ZED_WORKSPACE }} run: script/bundle-windows.ps1 diff --git a/Cargo.lock b/Cargo.lock index 56210557d2..c5ab86ceb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,9 +6,10 @@ version = 4 name = "acp_thread" version = "0.1.0" dependencies = [ - "agent-client-protocol", + "agentic-coding-protocol", "anyhow", "assistant_tool", + "async-pipe", "buffer_diff", "editor", "env_logger 0.11.8", @@ -18,9 +19,7 @@ dependencies = [ "itertools 0.14.0", "language", "markdown", - "parking_lot", "project", - "rand 0.8.5", "serde", "serde_json", "settings", @@ -90,7 +89,6 @@ dependencies = [ "assistant_tools", "chrono", "client", - "cloud_llm_client", "collections", "component", "context_server", @@ -114,6 +112,7 @@ dependencies = [ "pretty_assertions", "project", "prompt_store", + "proto", "rand 0.8.5", "ref-cast", "rope", @@ -132,30 +131,15 @@ dependencies = [ "uuid", "workspace", "workspace-hack", + "zed_llm_client", "zstd", ] -[[package]] -name = "agent-client-protocol" -version = "0.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22c5180e40d31a9998ffa5f8eb067667f0870908a4aeed65a6a299e2d1d95443" -dependencies = [ - "anyhow", - "futures 0.3.31", - "log", - "parking_lot", - "schemars", - "serde", - "serde_json", -] - [[package]] name = "agent_servers" version = "0.1.0" dependencies = [ "acp_thread", - "agent-client-protocol", "agentic-coding-protocol", "anyhow", "collections", @@ -171,7 +155,6 @@ dependencies = [ "nix 0.29.0", "paths", "project", - "rand 0.8.5", "schemars", "serde", "serde_json", @@ -179,7 +162,6 @@ dependencies = [ "smol", "strum 0.27.1", "tempfile", - "thiserror 2.0.12", "ui", "util", "uuid", @@ -193,7 +175,6 @@ name = "agent_settings" version = "0.1.0" dependencies = [ "anyhow", - "cloud_llm_client", "collections", "fs", "gpui", @@ -205,6 +186,7 @@ dependencies = [ "serde_json_lenient", "settings", "workspace-hack", + "zed_llm_client", ] [[package]] @@ -213,9 +195,9 @@ version = "0.1.0" dependencies = [ "acp_thread", "agent", - "agent-client-protocol", "agent_servers", "agent_settings", + "agentic-coding-protocol", "ai_onboarding", "anyhow", "assistant_context", @@ -227,7 +209,6 @@ dependencies = [ "buffer_diff", "chrono", "client", - "cloud_llm_client", "collections", "command_palette_hooks", "component", @@ -299,6 +280,7 @@ dependencies = [ "workspace", "workspace-hack", "zed_actions", + "zed_llm_client", ] [[package]] @@ -359,10 +341,10 @@ name = "ai_onboarding" version = "0.1.0" dependencies = [ "client", - "cloud_llm_client", "component", "gpui", "language_model", + "proto", "serde", "smallvec", "telemetry", @@ -691,7 +673,6 @@ dependencies = [ "chrono", "client", "clock", - "cloud_llm_client", "collections", "context_server", "fs", @@ -725,6 +706,7 @@ dependencies = [ "uuid", "workspace", "workspace-hack", + "zed_llm_client", ] [[package]] @@ -832,7 +814,6 @@ dependencies = [ "chrono", "client", "clock", - "cloud_llm_client", "collections", "component", "derive_more 0.99.19", @@ -886,6 +867,7 @@ dependencies = [ "which 6.0.3", "workspace", "workspace-hack", + "zed_llm_client", "zlog", ] @@ -1079,6 +1061,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "async-recursion" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "async-recursion" version = "1.1.1" @@ -2964,12 +2957,11 @@ name = "client" version = "0.1.0" dependencies = [ "anyhow", + "async-recursion 0.3.2", "async-tungstenite", "base64 0.22.1", "chrono", "clock", - "cloud_api_client", - "cloud_llm_client", "cocoa 0.26.0", "collections", "credentials_provider", @@ -3012,6 +3004,7 @@ dependencies = [ "windows 0.61.1", "workspace-hack", "worktree", + "zed_llm_client", ] [[package]] @@ -3024,44 +3017,6 @@ dependencies = [ "workspace-hack", ] -[[package]] -name = "cloud_api_client" -version = "0.1.0" -dependencies = [ - "anyhow", - "cloud_api_types", - "futures 0.3.31", - "http_client", - "parking_lot", - "serde_json", - "workspace-hack", -] - -[[package]] -name = "cloud_api_types" -version = "0.1.0" -dependencies = [ - "chrono", - "cloud_llm_client", - "pretty_assertions", - "serde", - "serde_json", - "workspace-hack", -] - -[[package]] -name = "cloud_llm_client" -version = "0.1.0" -dependencies = [ - "anyhow", - "pretty_assertions", - "serde", - "serde_json", - "strum 0.27.1", - "uuid", - "workspace-hack", -] - [[package]] name = "clru" version = "0.6.2" @@ -3188,7 +3143,6 @@ dependencies = [ "chrono", "client", "clock", - "cloud_llm_client", "collab_ui", "collections", "command_palette_hooks", @@ -3275,6 +3229,7 @@ dependencies = [ "workspace", "workspace-hack", "worktree", + "zed_llm_client", "zlog", ] @@ -3715,6 +3670,17 @@ dependencies = [ "libm", ] +[[package]] +name = "coreaudio-rs" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" +dependencies = [ + "bitflags 1.3.2", + "core-foundation-sys", + "coreaudio-sys", +] + [[package]] name = "coreaudio-rs" version = "0.12.1" @@ -3772,6 +3738,29 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "cpal" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" +dependencies = [ + "alsa", + "core-foundation-sys", + "coreaudio-rs 0.11.3", + "dasp_sample", + "jni", + "js-sys", + "libc", + "mach2", + "ndk 0.8.0", + "ndk-context", + "oboe", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.54.0", +] + [[package]] name = "cpal" version = "0.16.0" @@ -3785,7 +3774,7 @@ dependencies = [ "js-sys", "libc", "mach2", - "ndk", + "ndk 0.9.0", "ndk-context", "num-derive", "num-traits", @@ -4255,7 +4244,7 @@ dependencies = [ [[package]] name = "dap-types" version = "0.0.1" -source = "git+https://github.com/zed-industries/dap-types?rev=1b461b310481d01e02b2603c16d7144b926339f8#1b461b310481d01e02b2603c16d7144b926339f8" +source = "git+https://github.com/zed-industries/dap-types?rev=7f39295b441614ca9dbf44293e53c32f666897f9#7f39295b441614ca9dbf44293e53c32f666897f9" dependencies = [ "schemars", "serde", @@ -4723,6 +4712,7 @@ name = "docs_preprocessor" version = "0.1.0" dependencies = [ "anyhow", + "clap", "command_palette", "gpui", "mdbook", @@ -4733,7 +4723,6 @@ dependencies = [ "util", "workspace-hack", "zed", - "zlog", ] [[package]] @@ -4911,7 +4900,6 @@ dependencies = [ "text", "theme", "time", - "tree-sitter-bash", "tree-sitter-c", "tree-sitter-html", "tree-sitter-python", @@ -5195,7 +5183,6 @@ dependencies = [ "chrono", "clap", "client", - "cloud_llm_client", "collections", "debug_adapter_extension", "dirs 4.0.0", @@ -5235,6 +5222,7 @@ dependencies = [ "uuid", "watch", "workspace-hack", + "zed_llm_client", ] [[package]] @@ -5299,12 +5287,6 @@ dependencies = [ "zune-inflate", ] -[[package]] -name = "extended" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365" - [[package]] name = "extension" version = "0.1.0" @@ -5324,13 +5306,11 @@ dependencies = [ "log", "lsp", "parking_lot", - "pretty_assertions", "semantic_version", "serde", "serde_json", "task", "toml 0.8.20", - "url", "util", "wasm-encoder 0.221.3", "wasmparser 0.221.3", @@ -6316,7 +6296,6 @@ dependencies = [ "call", "chrono", "client", - "cloud_llm_client", "collections", "command_palette_hooks", "component", @@ -6359,6 +6338,7 @@ dependencies = [ "workspace", "workspace-hack", "zed_actions", + "zed_llm_client", "zlog", ] @@ -7357,9 +7337,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.17.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b01d27060ad58be4663b9e4ac9e2d4806918e8876af8912afbddd1a91d5eaa" +checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" [[package]] name = "group" @@ -7672,6 +7652,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "hound" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" + [[package]] name = "html5ever" version = "0.27.0" @@ -7805,7 +7791,6 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "log", - "parking_lot", "serde", "serde_json", "url", @@ -8305,7 +8290,6 @@ version = "0.1.0" dependencies = [ "anyhow", "client", - "cloud_llm_client", "copilot", "editor", "feature_flags", @@ -8328,6 +8312,7 @@ dependencies = [ "workspace", "workspace-hack", "zed_actions", + "zed_llm_client", "zeta", ] @@ -9020,7 +9005,6 @@ dependencies = [ "anyhow", "base64 0.22.1", "client", - "cloud_llm_client", "collections", "futures 0.3.31", "gpui", @@ -9038,6 +9022,7 @@ dependencies = [ "thiserror 2.0.12", "util", "workspace-hack", + "zed_llm_client", ] [[package]] @@ -9053,7 +9038,6 @@ dependencies = [ "bedrock", "chrono", "client", - "cloud_llm_client", "collections", "component", "convert_case 0.8.0", @@ -9077,6 +9061,7 @@ dependencies = [ "open_router", "partial-json-fixer", "project", + "proto", "release_channel", "schemars", "serde", @@ -9094,6 +9079,7 @@ dependencies = [ "vercel", "workspace-hack", "x_ai", + "zed_llm_client", ] [[package]] @@ -9155,7 +9141,6 @@ dependencies = [ "chrono", "collections", "dap", - "feature_flags", "futures 0.3.31", "gpui", "http_client", @@ -9348,7 +9333,7 @@ dependencies = [ [[package]] name = "libwebrtc" version = "0.3.10" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=5f04705ac3f356350ae31534ffbc476abc9ea83d#5f04705ac3f356350ae31534ffbc476abc9ea83d" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" dependencies = [ "cxx", "jni", @@ -9428,7 +9413,7 @@ checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "livekit" version = "0.7.8" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=5f04705ac3f356350ae31534ffbc476abc9ea83d#5f04705ac3f356350ae31534ffbc476abc9ea83d" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" dependencies = [ "chrono", "futures-util", @@ -9451,7 +9436,7 @@ dependencies = [ [[package]] name = "livekit-api" version = "0.4.2" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=5f04705ac3f356350ae31534ffbc476abc9ea83d#5f04705ac3f356350ae31534ffbc476abc9ea83d" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" dependencies = [ "futures-util", "http 0.2.12", @@ -9475,7 +9460,7 @@ dependencies = [ [[package]] name = "livekit-protocol" version = "0.3.9" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=5f04705ac3f356350ae31534ffbc476abc9ea83d#5f04705ac3f356350ae31534ffbc476abc9ea83d" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" dependencies = [ "futures-util", "livekit-runtime", @@ -9492,7 +9477,7 @@ dependencies = [ [[package]] name = "livekit-runtime" version = "0.4.0" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=5f04705ac3f356350ae31534ffbc476abc9ea83d#5f04705ac3f356350ae31534ffbc476abc9ea83d" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" dependencies = [ "tokio", "tokio-stream", @@ -9524,7 +9509,7 @@ dependencies = [ "core-foundation 0.10.0", "core-video", "coreaudio-rs 0.12.1", - "cpal", + "cpal 0.16.0", "futures 0.3.31", "gpui", "gpui_tokio", @@ -9575,9 +9560,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -9814,7 +9799,7 @@ name = "markdown_preview" version = "0.1.0" dependencies = [ "anyhow", - "async-recursion", + "async-recursion 1.1.1", "collections", "editor", "fs", @@ -10305,6 +10290,20 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "ndk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +dependencies = [ + "bitflags 2.9.0", + "jni-sys", + "log", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum", + "thiserror 1.0.69", +] + [[package]] name = "ndk" version = "0.9.0" @@ -10314,7 +10313,7 @@ dependencies = [ "bitflags 2.9.0", "jni-sys", "log", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "num_enum", "thiserror 1.0.69", ] @@ -10325,6 +10324,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" +[[package]] +name = "ndk-sys" +version = "0.5.0+25.2.9519653" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +dependencies = [ + "jni-sys", +] + [[package]] name = "ndk-sys" version = "0.6.0+11769913" @@ -10897,6 +10905,29 @@ dependencies = [ "memchr", ] +[[package]] +name = "oboe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" +dependencies = [ + "jni", + "ndk 0.8.0", + "ndk-context", + "num-derive", + "num-traits", + "oboe-sys", +] + +[[package]] +name = "oboe-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" +dependencies = [ + "cc", +] + [[package]] name = "ollama" version = "0.1.0" @@ -10914,33 +10945,17 @@ dependencies = [ name = "onboarding" version = "0.1.0" dependencies = [ - "ai_onboarding", "anyhow", - "client", "command_palette_hooks", - "component", "db", - "documented", - "editor", "feature_flags", "fs", "gpui", - "itertools 0.14.0", - "language", - "language_model", - "menu", - "project", - "schemars", - "serde", "settings", "theme", "ui", - "util", - "vim_mode_setting", "workspace", "workspace-hack", - "zed_actions", - "zlog", ] [[package]] @@ -11291,9 +11306,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -11301,9 +11316,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", @@ -13691,15 +13706,12 @@ dependencies = [ [[package]] name = "rodio" -version = "0.21.1" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e40ecf59e742e03336be6a3d53755e789fd05a059fa22dfa0ed624722319e183" +checksum = "e7ceb6607dd738c99bc8cb28eff249b7cd5c8ec88b9db96c0608c1480d140fb1" dependencies = [ - "cpal", - "dasp_sample", - "num-rational", - "symphonia", - "tracing", + "cpal 0.15.3", + "hound", ] [[package]] @@ -14704,27 +14716,6 @@ dependencies = [ "zlog", ] -[[package]] -name = "settings_profile_selector" -version = "0.1.0" -dependencies = [ - "client", - "editor", - "fuzzy", - "gpui", - "language", - "menu", - "picker", - "project", - "serde_json", - "settings", - "theme", - "ui", - "workspace", - "workspace-hack", - "zed_actions", -] - [[package]] name = "settings_ui" version = "0.1.0" @@ -14747,6 +14738,7 @@ dependencies = [ "notifications", "paths", "project", + "schemars", "search", "serde", "serde_json", @@ -15740,66 +15732,6 @@ dependencies = [ "zeno", ] -[[package]] -name = "symphonia" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9" -dependencies = [ - "lazy_static", - "symphonia-codec-pcm", - "symphonia-core", - "symphonia-format-riff", - "symphonia-metadata", -] - -[[package]] -name = "symphonia-codec-pcm" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f395a67057c2ebc5e84d7bb1be71cce1a7ba99f64e0f0f0e303a03f79116f89b" -dependencies = [ - "log", - "symphonia-core", -] - -[[package]] -name = "symphonia-core" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3" -dependencies = [ - "arrayvec", - "bitflags 1.3.2", - "bytemuck", - "lazy_static", - "log", -] - -[[package]] -name = "symphonia-format-riff" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f7be232f962f937f4b7115cbe62c330929345434c834359425e043bfd15f50" -dependencies = [ - "extended", - "log", - "symphonia-core", - "symphonia-metadata", -] - -[[package]] -name = "symphonia-metadata" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c" -dependencies = [ - "encoding_rs", - "lazy_static", - "log", - "symphonia-core", -] - [[package]] name = "syn" version = "1.0.109" @@ -15980,12 +15912,13 @@ dependencies = [ [[package]] name = "taffy" -version = "0.8.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aaef0ac998e6527d6d0d5582f7e43953bb17221ac75bb8eb2fcc2db3396db1c" +checksum = "e8b61630cba2afd2c851821add2e1bb1b7851a2436e839ab73b56558b009035e" dependencies = [ "arrayvec", "grid", + "num-traits", "serde", "slotmap", ] @@ -16183,7 +16116,7 @@ version = "0.1.0" dependencies = [ "anyhow", "assistant_slash_command", - "async-recursion", + "async-recursion 1.1.1", "breadcrumbs", "client", "collections", @@ -16532,7 +16465,6 @@ dependencies = [ "call", "chrono", "client", - "cloud_llm_client", "collections", "db", "gpui", @@ -18501,11 +18433,11 @@ name = "web_search" version = "0.1.0" dependencies = [ "anyhow", - "cloud_llm_client", "collections", "gpui", "serde", "workspace-hack", + "zed_llm_client", ] [[package]] @@ -18514,7 +18446,6 @@ version = "0.1.0" dependencies = [ "anyhow", "client", - "cloud_llm_client", "futures 0.3.31", "gpui", "http_client", @@ -18523,6 +18454,7 @@ dependencies = [ "serde_json", "web_search", "workspace-hack", + "zed_llm_client", ] [[package]] @@ -18546,7 +18478,7 @@ dependencies = [ [[package]] name = "webrtc-sys" version = "0.3.7" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=5f04705ac3f356350ae31534ffbc476abc9ea83d#5f04705ac3f356350ae31534ffbc476abc9ea83d" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" dependencies = [ "cc", "cxx", @@ -18559,7 +18491,7 @@ dependencies = [ [[package]] name = "webrtc-sys-build" version = "0.3.6" -source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=5f04705ac3f356350ae31534ffbc476abc9ea83d#5f04705ac3f356350ae31534ffbc476abc9ea83d" +source = "git+https://github.com/zed-industries/livekit-rust-sdks?rev=d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4#d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4" dependencies = [ "fs2", "regex", @@ -18594,6 +18526,7 @@ dependencies = [ "serde", "settings", "telemetry", + "theme", "ui", "util", "vim_mode_setting", @@ -19608,7 +19541,7 @@ version = "0.1.0" dependencies = [ "any_vec", "anyhow", - "async-recursion", + "async-recursion 1.1.1", "bincode", "call", "client", @@ -19685,12 +19618,14 @@ dependencies = [ "cc", "chrono", "cipher", + "clang-sys", "clap", "clap_builder", "codespan-reporting 0.12.0", "concurrent-queue", "core-foundation 0.9.4", "core-foundation-sys", + "coreaudio-sys", "cranelift-codegen", "crc32fast", "crossbeam-epoch", @@ -20133,7 +20068,7 @@ dependencies = [ "async-io", "async-lock", "async-process", - "async-recursion", + "async-recursion 1.1.1", "async-task", "async-trait", "blocking", @@ -20186,7 +20121,7 @@ dependencies = [ [[package]] name = "zed" -version = "0.199.0" +version = "0.197.5" dependencies = [ "activity_indicator", "agent", @@ -20227,7 +20162,6 @@ dependencies = [ "extension", "extension_host", "extensions_ui", - "feature_flags", "feedback", "file_finder", "fs", @@ -20289,7 +20223,6 @@ dependencies = [ "serde_json", "session", "settings", - "settings_profile_selector", "settings_ui", "shellexpand 2.1.2", "smol", @@ -20348,7 +20281,7 @@ dependencies = [ [[package]] name = "zed_emmet" -version = "0.0.4" +version = "0.0.3" dependencies = [ "zed_extension_api 0.1.0", ] @@ -20387,6 +20320,19 @@ dependencies = [ "zed_extension_api 0.1.0", ] +[[package]] +name = "zed_llm_client" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607f74dee2a18a9ce0f091844944a0e59881359ab62e0768fb0618f55d4c1dc" +dependencies = [ + "anyhow", + "serde", + "serde_json", + "strum 0.27.1", + "uuid", +] + [[package]] name = "zed_proto" version = "0.2.2" @@ -20566,8 +20512,6 @@ dependencies = [ "call", "client", "clock", - "cloud_api_types", - "cloud_llm_client", "collections", "command_palette_hooks", "copilot", @@ -20587,6 +20531,7 @@ dependencies = [ "menu", "postage", "project", + "proto", "regex", "release_channel", "reqwest_client", @@ -20608,45 +20553,10 @@ dependencies = [ "workspace-hack", "worktree", "zed_actions", + "zed_llm_client", "zlog", ] -[[package]] -name = "zeta_cli" -version = "0.1.0" -dependencies = [ - "anyhow", - "clap", - "client", - "debug_adapter_extension", - "extension", - "fs", - "futures 0.3.31", - "gpui", - "gpui_tokio", - "language", - "language_extension", - "language_model", - "language_models", - "languages", - "node_runtime", - "paths", - "project", - "prompt_store", - "release_channel", - "reqwest_client", - "serde", - "serde_json", - "settings", - "shellexpand 2.1.2", - "smol", - "terminal_view", - "util", - "watch", - "workspace-hack", - "zeta", -] - [[package]] name = "zip" version = "0.6.6" diff --git a/Cargo.toml b/Cargo.toml index 5d852f8842..ec793a7429 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,13 +1,13 @@ [workspace] resolver = "2" members = [ - "crates/acp_thread", "crates/activity_indicator", - "crates/agent", - "crates/agent_servers", - "crates/agent_settings", + "crates/acp_thread", "crates/agent_ui", + "crates/agent", + "crates/agent_settings", "crates/ai_onboarding", + "crates/agent_servers", "crates/anthropic", "crates/askpass", "crates/assets", @@ -29,9 +29,6 @@ members = [ "crates/cli", "crates/client", "crates/clock", - "crates/cloud_api_client", - "crates/cloud_api_types", - "crates/cloud_llm_client", "crates/collab", "crates/collab_ui", "crates/collections", @@ -51,8 +48,8 @@ members = [ "crates/diagnostics", "crates/docs_preprocessor", "crates/editor", - "crates/eval", "crates/explorer_command_injector", + "crates/eval", "crates/extension", "crates/extension_api", "crates/extension_cli", @@ -73,6 +70,7 @@ members = [ "crates/gpui", "crates/gpui_macros", "crates/gpui_tokio", + "crates/html_to_markdown", "crates/http_client", "crates/http_client_tls", @@ -101,6 +99,7 @@ members = [ "crates/markdown_preview", "crates/media", "crates/menu", + "crates/svg_preview", "crates/migrator", "crates/mistral", "crates/multi_buffer", @@ -141,7 +140,6 @@ members = [ "crates/semantic_version", "crates/session", "crates/settings", - "crates/settings_profile_selector", "crates/settings_ui", "crates/snippet", "crates/snippet_provider", @@ -154,7 +152,6 @@ members = [ "crates/sum_tree", "crates/supermaven", "crates/supermaven_api", - "crates/svg_preview", "crates/tab_switcher", "crates/task", "crates/tasks_ui", @@ -189,7 +186,6 @@ members = [ "crates/zed", "crates/zed_actions", "crates/zeta", - "crates/zeta_cli", "crates/zlog", "crates/zlog_settings", @@ -255,9 +251,6 @@ channel = { path = "crates/channel" } cli = { path = "crates/cli" } client = { path = "crates/client" } clock = { path = "crates/clock" } -cloud_api_client = { path = "crates/cloud_api_client" } -cloud_api_types = { path = "crates/cloud_api_types" } -cloud_llm_client = { path = "crates/cloud_llm_client" } collab = { path = "crates/collab" } collab_ui = { path = "crates/collab_ui" } collections = { path = "crates/collections" } @@ -344,7 +337,6 @@ picker = { path = "crates/picker" } plugin = { path = "crates/plugin" } plugin_macros = { path = "crates/plugin_macros" } prettier = { path = "crates/prettier" } -settings_profile_selector = { path = "crates/settings_profile_selector" } project = { path = "crates/project" } project_panel = { path = "crates/project_panel" } project_symbols = { path = "crates/project_symbols" } @@ -421,7 +413,6 @@ zlog_settings = { path = "crates/zlog_settings" } # agentic-coding-protocol = "0.0.10" -agent-client-protocol = "0.0.17" aho-corasick = "1.1" alacritty_terminal = { git = "https://github.com/zed-industries/alacritty.git", branch = "add-hush-login-flag" } any_vec = "0.14" @@ -468,7 +459,7 @@ core-video = { version = "0.4.3", features = ["metal"] } cpal = "0.16" criterion = { version = "0.5", features = ["html_reports"] } ctor = "0.4.0" -dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "1b461b310481d01e02b2603c16d7144b926339f8" } +dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "7f39295b441614ca9dbf44293e53c32f666897f9" } dashmap = "6.0" derive_more = "0.99.17" dirs = "4.0" @@ -653,6 +644,7 @@ which = "6.0.0" windows-core = "0.61" wit-component = "0.221" workspace-hack = "0.1.0" +zed_llm_client = "= 0.8.6" zstd = "0.11" [workspace.dependencies.async-stripe] @@ -679,16 +671,14 @@ features = [ "UI_ViewManagement", "Wdk_System_SystemServices", "Win32_Globalization", - "Win32_Graphics_Direct3D", - "Win32_Graphics_Direct3D11", - "Win32_Graphics_Direct3D_Fxc", - "Win32_Graphics_DirectComposition", + "Win32_Graphics_Direct2D", + "Win32_Graphics_Direct2D_Common", "Win32_Graphics_DirectWrite", "Win32_Graphics_Dwm", - "Win32_Graphics_Dxgi", "Win32_Graphics_Dxgi_Common", "Win32_Graphics_Gdi", "Win32_Graphics_Imaging", + "Win32_Graphics_Imaging_D2D", "Win32_Networking_WinSock", "Win32_Security", "Win32_Security_Credentials", @@ -729,11 +719,6 @@ workspace-hack = { path = "tooling/workspace-hack" } split-debuginfo = "unpacked" codegen-units = 16 -# mirror configuration for crates compiled for the build platform -# (without this cargo will compile ~400 crates twice) -[profile.dev.build-override] -codegen-units = 16 - [profile.dev.package] taffy = { opt-level = 3 } cranelift-codegen = { opt-level = 3 } diff --git a/README.md b/README.md index 38547c1ca4..4c794efc3d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # Zed -[![Zed](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/zed-industries/zed/main/assets/badge/v0.json)](https://zed.dev) [![CI](https://github.com/zed-industries/zed/actions/workflows/ci.yml/badge.svg)](https://github.com/zed-industries/zed/actions/workflows/ci.yml) Welcome to Zed, a high-performance, multiplayer code editor from the creators of [Atom](https://github.com/atom/atom) and [Tree-sitter](https://github.com/tree-sitter/tree-sitter). diff --git a/assets/badge/v0.json b/assets/badge/v0.json deleted file mode 100644 index c7d18bb42b..0000000000 --- a/assets/badge/v0.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "", - "message": "Zed", - "logoSvg": "", - "logoWidth": 16, - "labelColor": "black", - "color": "white" -} diff --git a/assets/icons/ai_bedrock.svg b/assets/icons/ai_bedrock.svg index c9bbcc82e1..2b672c364e 100644 --- a/assets/icons/ai_bedrock.svg +++ b/assets/icons/ai_bedrock.svg @@ -1,8 +1,4 @@ - - - - - - - + + + diff --git a/assets/icons/ai_deep_seek.svg b/assets/icons/ai_deep_seek.svg index c8e5483fb3..cf480c834c 100644 --- a/assets/icons/ai_deep_seek.svg +++ b/assets/icons/ai_deep_seek.svg @@ -1,3 +1 @@ - - - +DeepSeek diff --git a/assets/icons/ai_lm_studio.svg b/assets/icons/ai_lm_studio.svg index 5cfdeb5578..0b455f48a7 100644 --- a/assets/icons/ai_lm_studio.svg +++ b/assets/icons/ai_lm_studio.svg @@ -1,15 +1,33 @@ - - - - - - - - - - - - - - + + + Artboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/ai_mistral.svg b/assets/icons/ai_mistral.svg index f11c177e2f..23b8f2ef6c 100644 --- a/assets/icons/ai_mistral.svg +++ b/assets/icons/ai_mistral.svg @@ -1,8 +1 @@ - - - - - - - - +Mistral \ No newline at end of file diff --git a/assets/icons/ai_ollama.svg b/assets/icons/ai_ollama.svg index 36a88c1ad6..d433df3981 100644 --- a/assets/icons/ai_ollama.svg +++ b/assets/icons/ai_ollama.svg @@ -1,7 +1,14 @@ - - - - - + + + + + + + + + + + + diff --git a/assets/icons/ai_open_ai.svg b/assets/icons/ai_open_ai.svg index e45ac315a0..e659a472d8 100644 --- a/assets/icons/ai_open_ai.svg +++ b/assets/icons/ai_open_ai.svg @@ -1,3 +1,3 @@ - + diff --git a/assets/icons/ai_open_router.svg b/assets/icons/ai_open_router.svg index b6f5164e0b..94f2849146 100644 --- a/assets/icons/ai_open_router.svg +++ b/assets/icons/ai_open_router.svg @@ -1,8 +1,8 @@ - - - - - - - + + + + + + + diff --git a/assets/icons/ai_x_ai.svg b/assets/icons/ai_x_ai.svg index d3400fbe9c..289525c8ef 100644 --- a/assets/icons/ai_x_ai.svg +++ b/assets/icons/ai_x_ai.svg @@ -1,3 +1,3 @@ - + diff --git a/assets/icons/ai_zed.svg b/assets/icons/ai_zed.svg index 6d78efacd5..1c6bb8ad63 100644 --- a/assets/icons/ai_zed.svg +++ b/assets/icons/ai_zed.svg @@ -1,3 +1,10 @@ - + + + + + + + + diff --git a/assets/icons/cloud_download.svg b/assets/icons/at_sign.svg similarity index 51% rename from assets/icons/cloud_download.svg rename to assets/icons/at_sign.svg index bc7a8376d1..4cf8cd468f 100644 --- a/assets/icons/cloud_download.svg +++ b/assets/icons/at_sign.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/assets/icons/audio_off.svg b/assets/icons/audio_off.svg index dfb5a1c458..93b98471ca 100644 --- a/assets/icons/audio_off.svg +++ b/assets/icons/audio_off.svg @@ -1,7 +1 @@ - - - - - - - + diff --git a/assets/icons/audio_on.svg b/assets/icons/audio_on.svg index d1bef0d337..42310ea32c 100644 --- a/assets/icons/audio_on.svg +++ b/assets/icons/audio_on.svg @@ -1,5 +1 @@ - - - - - + diff --git a/assets/icons/bolt.svg b/assets/icons/bolt.svg new file mode 100644 index 0000000000..2688ede2a5 --- /dev/null +++ b/assets/icons/bolt.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/bolt_filled.svg b/assets/icons/bolt_filled.svg index 14d8f53e02..543e72adf8 100644 --- a/assets/icons/bolt_filled.svg +++ b/assets/icons/bolt_filled.svg @@ -1,3 +1,3 @@ - - + + diff --git a/assets/icons/bolt_filled_alt.svg b/assets/icons/bolt_filled_alt.svg new file mode 100644 index 0000000000..141e1c5f57 --- /dev/null +++ b/assets/icons/bolt_filled_alt.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/bolt_outlined.svg b/assets/icons/bolt_outlined.svg deleted file mode 100644 index 58fccf7788..0000000000 --- a/assets/icons/bolt_outlined.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/book_plus.svg b/assets/icons/book_plus.svg new file mode 100644 index 0000000000..2868f07cd0 --- /dev/null +++ b/assets/icons/book_plus.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/brain.svg b/assets/icons/brain.svg new file mode 100644 index 0000000000..80c93814f7 --- /dev/null +++ b/assets/icons/brain.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/chat.svg b/assets/icons/chat.svg deleted file mode 100644 index a0548c3d3e..0000000000 --- a/assets/icons/chat.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/assets/icons/editor_atom.svg b/assets/icons/editor_atom.svg deleted file mode 100644 index cc5fa83843..0000000000 --- a/assets/icons/editor_atom.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/editor_cursor.svg b/assets/icons/editor_cursor.svg deleted file mode 100644 index 338697be8a..0000000000 --- a/assets/icons/editor_cursor.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/assets/icons/editor_emacs.svg b/assets/icons/editor_emacs.svg deleted file mode 100644 index 951d7b2be1..0000000000 --- a/assets/icons/editor_emacs.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/assets/icons/editor_jet_brains.svg b/assets/icons/editor_jet_brains.svg deleted file mode 100644 index 7d9cf0c65c..0000000000 --- a/assets/icons/editor_jet_brains.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/editor_sublime.svg b/assets/icons/editor_sublime.svg deleted file mode 100644 index 95a04f6b54..0000000000 --- a/assets/icons/editor_sublime.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/assets/icons/editor_vs_code.svg b/assets/icons/editor_vs_code.svg deleted file mode 100644 index 2a71ad52af..0000000000 --- a/assets/icons/editor_vs_code.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/exit.svg b/assets/icons/exit.svg index 1ff9d78824..2cc6ce120d 100644 --- a/assets/icons/exit.svg +++ b/assets/icons/exit.svg @@ -1,5 +1,8 @@ - - - - + + diff --git a/assets/icons/file_icons/kdl.svg b/assets/icons/file_icons/kdl.svg deleted file mode 100644 index 92d9f28428..0000000000 --- a/assets/icons/file_icons/kdl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/icons/file_icons/surrealql.svg b/assets/icons/file_icons/surrealql.svg deleted file mode 100644 index 076f93e808..0000000000 --- a/assets/icons/file_icons/surrealql.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/file_text.svg b/assets/icons/file_text.svg index a9b8f971e0..7c602f2ac7 100644 --- a/assets/icons/file_text.svg +++ b/assets/icons/file_text.svg @@ -1,6 +1 @@ - - - - - - + diff --git a/assets/icons/git_onboarding_bg.svg b/assets/icons/git_onboarding_bg.svg new file mode 100644 index 0000000000..18da0230a2 --- /dev/null +++ b/assets/icons/git_onboarding_bg.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/message_bubbles.svg b/assets/icons/message_bubbles.svg new file mode 100644 index 0000000000..03a6c7760c --- /dev/null +++ b/assets/icons/message_bubbles.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/mic.svg b/assets/icons/mic.svg index 1d9c5bc9ed..01f4c9bf66 100644 --- a/assets/icons/mic.svg +++ b/assets/icons/mic.svg @@ -1,5 +1,3 @@ - - - - + + diff --git a/assets/icons/mic_mute.svg b/assets/icons/mic_mute.svg index 8c61ae2f1c..fe5f8201cc 100644 --- a/assets/icons/mic_mute.svg +++ b/assets/icons/mic_mute.svg @@ -1,8 +1,3 @@ - - - - - - - + + diff --git a/assets/icons/microscope.svg b/assets/icons/microscope.svg new file mode 100644 index 0000000000..2b3009a28b --- /dev/null +++ b/assets/icons/microscope.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/new_from_summary.svg b/assets/icons/new_from_summary.svg new file mode 100644 index 0000000000..3b61ca51a0 --- /dev/null +++ b/assets/icons/new_from_summary.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/text_thread.svg b/assets/icons/new_text_thread.svg similarity index 100% rename from assets/icons/text_thread.svg rename to assets/icons/new_text_thread.svg diff --git a/assets/icons/thread.svg b/assets/icons/new_thread.svg similarity index 100% rename from assets/icons/thread.svg rename to assets/icons/new_thread.svg diff --git a/assets/icons/play.svg b/assets/icons/play.svg new file mode 100644 index 0000000000..2481bda7d6 --- /dev/null +++ b/assets/icons/play.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/play_outlined.svg b/assets/icons/play_alt.svg similarity index 70% rename from assets/icons/play_outlined.svg rename to assets/icons/play_alt.svg index 7e1cacd5af..b327ab07b5 100644 --- a/assets/icons/play_outlined.svg +++ b/assets/icons/play_alt.svg @@ -1,3 +1,3 @@ - + diff --git a/assets/icons/play_bug.svg b/assets/icons/play_bug.svg new file mode 100644 index 0000000000..7d265dd42a --- /dev/null +++ b/assets/icons/play_bug.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/assets/icons/play_filled.svg b/assets/icons/play_filled.svg index c632434305..387304ef04 100644 --- a/assets/icons/play_filled.svg +++ b/assets/icons/play_filled.svg @@ -1,3 +1,3 @@ - - + + diff --git a/assets/icons/reveal.svg b/assets/icons/reveal.svg new file mode 100644 index 0000000000..ff5444d8f8 --- /dev/null +++ b/assets/icons/reveal.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/screen.svg b/assets/icons/screen.svg index 4b686b58f9..ad252e64cf 100644 --- a/assets/icons/screen.svg +++ b/assets/icons/screen.svg @@ -1,5 +1,8 @@ - - - - + + diff --git a/assets/icons/shield_check.svg b/assets/icons/shield_check.svg deleted file mode 100644 index 6e58c31468..0000000000 --- a/assets/icons/shield_check.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/assets/icons/spinner.svg b/assets/icons/spinner.svg new file mode 100644 index 0000000000..4f4034ae89 --- /dev/null +++ b/assets/icons/spinner.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/icons/strikethrough.svg b/assets/icons/strikethrough.svg new file mode 100644 index 0000000000..d7d0905912 --- /dev/null +++ b/assets/icons/strikethrough.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/thread_from_summary.svg b/assets/icons/thread_from_summary.svg deleted file mode 100644 index 7519935aff..0000000000 --- a/assets/icons/thread_from_summary.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/assets/icons/trash.svg b/assets/icons/trash.svg index 1322e90f9f..b71035b99c 100644 --- a/assets/icons/trash.svg +++ b/assets/icons/trash.svg @@ -1,5 +1 @@ - - - - - + diff --git a/assets/icons/trash_alt.svg b/assets/icons/trash_alt.svg new file mode 100644 index 0000000000..6867b42147 --- /dev/null +++ b/assets/icons/trash_alt.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/zed_predict_bg.svg b/assets/icons/zed_predict_bg.svg new file mode 100644 index 0000000000..1dccbb51af --- /dev/null +++ b/assets/icons/zed_predict_bg.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index ef5354e82d..a4f812b2fc 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -232,7 +232,7 @@ "ctrl-n": "agent::NewThread", "ctrl-alt-n": "agent::NewTextThread", "ctrl-shift-h": "agent::OpenHistory", - "ctrl-alt-c": "agent::OpenSettings", + "ctrl-alt-c": "agent::OpenConfiguration", "ctrl-alt-p": "agent::OpenRulesLibrary", "ctrl-i": "agent::ToggleProfileSelector", "ctrl-alt-/": "agent::ToggleModelSelector", @@ -495,7 +495,7 @@ "shift-f12": "editor::GoToImplementation", "alt-ctrl-f12": "editor::GoToTypeDefinitionSplit", "alt-shift-f12": "editor::FindAllReferences", - "ctrl-m": "editor::MoveToEnclosingBracket", // from jetbrains + "ctrl-m": "editor::MoveToEnclosingBracket", "ctrl-|": "editor::MoveToEnclosingBracket", "ctrl-{": "editor::Fold", "ctrl-}": "editor::UnfoldLines", @@ -598,7 +598,6 @@ "ctrl-shift-t": "pane::ReopenClosedItem", "ctrl-k ctrl-s": "zed::OpenKeymapEditor", "ctrl-k ctrl-t": "theme_selector::Toggle", - "ctrl-alt-super-p": "settings_profile_selector::Toggle", "ctrl-t": "project_symbols::Toggle", "ctrl-p": "file_finder::Toggle", "ctrl-tab": "tab_switcher::Toggle", @@ -1168,14 +1167,5 @@ "up": "menu::SelectPrevious", "down": "menu::SelectNext" } - }, - { - "context": "Onboarding", - "use_key_equivalents": true, - "bindings": { - "ctrl-1": "onboarding::ActivateBasicsPage", - "ctrl-2": "onboarding::ActivateEditingPage", - "ctrl-3": "onboarding::ActivateAISetupPage" - } } ] diff --git a/assets/keymaps/default-macos.json b/assets/keymaps/default-macos.json index 3287e50acb..eded8c73e6 100644 --- a/assets/keymaps/default-macos.json +++ b/assets/keymaps/default-macos.json @@ -272,7 +272,7 @@ "cmd-n": "agent::NewThread", "cmd-alt-n": "agent::NewTextThread", "cmd-shift-h": "agent::OpenHistory", - "cmd-alt-c": "agent::OpenSettings", + "cmd-alt-c": "agent::OpenConfiguration", "cmd-alt-p": "agent::OpenRulesLibrary", "cmd-i": "agent::ToggleProfileSelector", "cmd-alt-/": "agent::ToggleModelSelector", @@ -549,7 +549,7 @@ "alt-cmd-f12": "editor::GoToTypeDefinitionSplit", "alt-shift-f12": "editor::FindAllReferences", "cmd-|": "editor::MoveToEnclosingBracket", - "ctrl-m": "editor::MoveToEnclosingBracket", // From Jetbrains + "ctrl-m": "editor::MoveToEnclosingBracket", "alt-cmd-[": "editor::Fold", "alt-cmd-]": "editor::UnfoldLines", "cmd-k cmd-l": "editor::ToggleFold", @@ -665,7 +665,6 @@ "cmd-shift-t": "pane::ReopenClosedItem", "cmd-k cmd-s": "zed::OpenKeymapEditor", "cmd-k cmd-t": "theme_selector::Toggle", - "ctrl-alt-cmd-p": "settings_profile_selector::Toggle", "cmd-t": "project_symbols::Toggle", "cmd-p": "file_finder::Toggle", "ctrl-tab": "tab_switcher::Toggle", @@ -1270,14 +1269,5 @@ "up": "menu::SelectPrevious", "down": "menu::SelectNext" } - }, - { - "context": "Onboarding", - "use_key_equivalents": true, - "bindings": { - "cmd-1": "onboarding::ActivateBasicsPage", - "cmd-2": "onboarding::ActivateEditingPage", - "cmd-3": "onboarding::ActivateAISetupPage" - } } ] diff --git a/assets/keymaps/linux/cursor.json b/assets/keymaps/linux/cursor.json index 1c381b0cf0..347b7885fc 100644 --- a/assets/keymaps/linux/cursor.json +++ b/assets/keymaps/linux/cursor.json @@ -8,7 +8,7 @@ "ctrl-shift-i": "agent::ToggleFocus", "ctrl-l": "agent::ToggleFocus", "ctrl-shift-l": "agent::ToggleFocus", - "ctrl-shift-j": "agent::OpenSettings" + "ctrl-shift-j": "agent::OpenConfiguration" } }, { diff --git a/assets/keymaps/linux/jetbrains.json b/assets/keymaps/linux/jetbrains.json index 3df1243fed..c1d8bbebe6 100644 --- a/assets/keymaps/linux/jetbrains.json +++ b/assets/keymaps/linux/jetbrains.json @@ -4,7 +4,6 @@ "ctrl-alt-s": "zed::OpenSettings", "ctrl-{": "pane::ActivatePreviousItem", "ctrl-}": "pane::ActivateNextItem", - "shift-escape": null, // Unmap workspace::zoom "ctrl-f2": "debugger::Stop", "f6": "debugger::Pause", "f7": "debugger::StepInto", @@ -45,8 +44,8 @@ "ctrl-alt-right": "pane::GoForward", "alt-f7": "editor::FindAllReferences", "ctrl-alt-f7": "editor::FindAllReferences", - "ctrl-b": "editor::GoToDefinition", // Conflicts with workspace::ToggleLeftDock - "ctrl-alt-b": "editor::GoToDefinitionSplit", // Conflicts with workspace::ToggleRightDock + // "ctrl-b": "editor::GoToDefinition", // Conflicts with workspace::ToggleLeftDock + // "ctrl-alt-b": "editor::GoToDefinitionSplit", // Conflicts with workspace::ToggleLeftDock "ctrl-shift-b": "editor::GoToTypeDefinition", "ctrl-alt-shift-b": "editor::GoToTypeDefinitionSplit", "f2": "editor::GoToDiagnostic", @@ -101,27 +100,12 @@ "shift shift": "command_palette::Toggle", "ctrl-alt-shift-n": "project_symbols::Toggle", "alt-0": "git_panel::ToggleFocus", - "alt-1": "project_panel::ToggleFocus", + "alt-1": "workspace::ToggleLeftDock", "alt-5": "debug_panel::ToggleFocus", "alt-6": "diagnostics::Deploy", "alt-7": "outline_panel::ToggleFocus" } }, - { - "context": "Pane", // this is to override the default Pane mappings to switch tabs - "bindings": { - "alt-1": "project_panel::ToggleFocus", - "alt-2": null, // Bookmarks (left dock) - "alt-3": null, // Find Panel (bottom dock) - "alt-4": null, // Run Panel (bottom dock) - "alt-5": "debug_panel::ToggleFocus", - "alt-6": "diagnostics::Deploy", - "alt-7": "outline_panel::ToggleFocus", - "alt-8": null, // Services (bottom dock) - "alt-9": null, // Git History (bottom dock) - "alt-0": "git_panel::ToggleFocus" - } - }, { "context": "Workspace || Editor", "bindings": { @@ -167,9 +151,6 @@ { "context": "OutlinePanel", "bindings": { "alt-7": "workspace::CloseActiveDock" } }, { "context": "Dock || Workspace || OutlinePanel || ProjectPanel || CollabPanel || (Editor && mode == auto_height)", - "bindings": { - "escape": "editor::ToggleFocus", - "shift-escape": "workspace::CloseActiveDock" - } + "bindings": { "escape": "editor::ToggleFocus" } } ] diff --git a/assets/keymaps/macos/cursor.json b/assets/keymaps/macos/cursor.json index fdf9c437cf..b1d39bef9e 100644 --- a/assets/keymaps/macos/cursor.json +++ b/assets/keymaps/macos/cursor.json @@ -8,7 +8,7 @@ "cmd-shift-i": "agent::ToggleFocus", "cmd-l": "agent::ToggleFocus", "cmd-shift-l": "agent::ToggleFocus", - "cmd-shift-j": "agent::OpenSettings" + "cmd-shift-j": "agent::OpenConfiguration" } }, { diff --git a/assets/keymaps/macos/jetbrains.json b/assets/keymaps/macos/jetbrains.json index 66962811f4..a8d11835e6 100644 --- a/assets/keymaps/macos/jetbrains.json +++ b/assets/keymaps/macos/jetbrains.json @@ -4,7 +4,6 @@ "cmd-{": "pane::ActivatePreviousItem", "cmd-}": "pane::ActivateNextItem", "cmd-0": "git_panel::ToggleFocus", // overrides `cmd-0` zoom reset - "shift-escape": null, // Unmap workspace::zoom "ctrl-f2": "debugger::Stop", "f6": "debugger::Pause", "f7": "debugger::StepInto", @@ -109,21 +108,6 @@ "cmd-7": "outline_panel::ToggleFocus" } }, - { - "context": "Pane", // this is to override the default Pane mappings to switch tabs - "bindings": { - "cmd-1": "project_panel::ToggleFocus", - "cmd-2": null, // Bookmarks (left dock) - "cmd-3": null, // Find Panel (bottom dock) - "cmd-4": null, // Run Panel (bottom dock) - "cmd-5": "debug_panel::ToggleFocus", - "cmd-6": "diagnostics::Deploy", - "cmd-7": "outline_panel::ToggleFocus", - "cmd-8": null, // Services (bottom dock) - "cmd-9": null, // Git History (bottom dock) - "cmd-0": "git_panel::ToggleFocus" - } - }, { "context": "Workspace || Editor", "bindings": { @@ -162,15 +146,11 @@ } }, { "context": "GitPanel", "bindings": { "cmd-0": "workspace::CloseActiveDock" } }, - { "context": "ProjectPanel", "bindings": { "cmd-1": "workspace::CloseActiveDock" } }, { "context": "DebugPanel", "bindings": { "cmd-5": "workspace::CloseActiveDock" } }, { "context": "Diagnostics > Editor", "bindings": { "cmd-6": "pane::CloseActiveItem" } }, { "context": "OutlinePanel", "bindings": { "cmd-7": "workspace::CloseActiveDock" } }, { "context": "Dock || Workspace || OutlinePanel || ProjectPanel || CollabPanel || (Editor && mode == auto_height)", - "bindings": { - "escape": "editor::ToggleFocus", - "shift-escape": "workspace::CloseActiveDock" - } + "bindings": { "escape": "editor::ToggleFocus" } } ] diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 6458ac1510..d0cf4621a5 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -220,8 +220,6 @@ { "context": "vim_mode == normal", "bindings": { - "i": "vim::InsertBefore", - "a": "vim::InsertAfter", "ctrl-[": "editor::Cancel", ":": "command_palette::Toggle", "c": "vim::PushChange", @@ -355,7 +353,9 @@ "shift-d": "vim::DeleteToEndOfLine", "shift-j": "vim::JoinLines", "shift-y": "vim::YankLine", + "i": "vim::InsertBefore", "shift-i": "vim::InsertFirstNonWhitespace", + "a": "vim::InsertAfter", "shift-a": "vim::InsertEndOfLine", "o": "vim::InsertLineBelow", "shift-o": "vim::InsertLineAbove", @@ -377,8 +377,6 @@ { "context": "vim_mode == helix_normal && !menu", "bindings": { - "i": "vim::HelixInsert", - "a": "vim::HelixAppend", "ctrl-[": "editor::Cancel", ";": "vim::HelixCollapseSelection", ":": "command_palette::Toggle", diff --git a/assets/settings/default.json b/assets/settings/default.json index 4734b5d118..dab1684aef 100644 --- a/assets/settings/default.json +++ b/assets/settings/default.json @@ -691,10 +691,7 @@ // 5. Never show the scrollbar: // "never" "show": null - }, - // Default depth to expand outline items in the current file. - // Set to 0 to collapse all items that have children, 1 or higher to collapse items at that depth or deeper. - "expand_outlines_with_depth": 100 + } }, "collaboration_panel": { // Whether to show the collaboration panel button in the status bar. @@ -1877,25 +1874,5 @@ "save_breakpoints": true, "dock": "bottom", "button": true - }, - // Configures any number of settings profiles that are temporarily applied on - // top of your existing user settings when selected from - // `settings profile selector: toggle`. - // Examples: - // "profiles": { - // "Presenting": { - // "agent_font_size": 20.0, - // "buffer_font_size": 20.0, - // "theme": "One Light", - // "ui_font_size": 20.0 - // }, - // "Python (ty)": { - // "languages": { - // "Python": { - // "language_servers": ["ty"] - // } - // } - // } - // } - "profiles": [] + } } diff --git a/crates/acp_thread/Cargo.toml b/crates/acp_thread/Cargo.toml index 225597415c..b44c25ccc9 100644 --- a/crates/acp_thread/Cargo.toml +++ b/crates/acp_thread/Cargo.toml @@ -16,7 +16,7 @@ doctest = false test-support = ["gpui/test-support", "project/test-support"] [dependencies] -agent-client-protocol.workspace = true +agentic-coding-protocol.workspace = true anyhow.workspace = true assistant_tool.workspace = true buffer_diff.workspace = true @@ -36,12 +36,11 @@ util.workspace = true workspace-hack.workspace = true [dev-dependencies] +async-pipe.workspace = true env_logger.workspace = true gpui = { workspace = true, "features" = ["test-support"] } indoc.workspace = true -parking_lot.workspace = true project = { workspace = true, "features" = ["test-support"] } -rand.workspace = true tempfile.workspace = true util.workspace = true settings.workspace = true diff --git a/crates/acp_thread/src/acp_thread.rs b/crates/acp_thread/src/acp_thread.rs index 079a207358..9af1eeb187 100644 --- a/crates/acp_thread/src/acp_thread.rs +++ b/crates/acp_thread/src/acp_thread.rs @@ -1,13 +1,17 @@ mod connection; pub use connection::*; -use agent_client_protocol as acp; +pub use acp::ToolCallId; +use agentic_coding_protocol::{ + self as acp, AgentRequest, ProtocolVersion, ToolCallConfirmationOutcome, ToolCallLocation, + UserMessageChunk, +}; use anyhow::{Context as _, Result}; use assistant_tool::ActionLog; use buffer_diff::BufferDiff; use editor::{Bias, MultiBuffer, PathKey}; use futures::{FutureExt, channel::oneshot, future::BoxFuture}; -use gpui::{AppContext, Context, Entity, EventEmitter, SharedString, Task}; +use gpui::{AppContext, AsyncApp, Context, Entity, EventEmitter, SharedString, Task, WeakEntity}; use itertools::Itertools; use language::{ Anchor, Buffer, BufferSnapshot, Capability, LanguageRegistry, OffsetRangeExt as _, Point, @@ -17,37 +21,46 @@ use markdown::Markdown; use project::{AgentLocation, Project}; use std::collections::HashMap; use std::error::Error; -use std::fmt::Formatter; -use std::rc::Rc; +use std::fmt::{Formatter, Write}; use std::{ fmt::Display, mem, path::{Path, PathBuf}, sync::Arc, }; -use ui::App; +use ui::{App, IconName}; use util::ResultExt; -#[derive(Debug)] +#[derive(Clone, Debug, Eq, PartialEq)] pub struct UserMessage { - pub content: ContentBlock, + pub content: Entity, } impl UserMessage { pub fn from_acp( - message: impl IntoIterator, + message: &acp::SendUserMessageParams, language_registry: Arc, cx: &mut App, ) -> Self { - let mut content = ContentBlock::Empty; - for chunk in message { - content.append(chunk, &language_registry, cx) + let mut md_source = String::new(); + + for chunk in &message.chunks { + match chunk { + UserMessageChunk::Text { text } => md_source.push_str(&text), + UserMessageChunk::Path { path } => { + write!(&mut md_source, "{}", MentionPath(&path)).unwrap() + } + } + } + + Self { + content: cx + .new(|cx| Markdown::new(md_source.into(), Some(language_registry), None, cx)), } - Self { content: content } } fn to_markdown(&self, cx: &App) -> String { - format!("## User\n\n{}\n\n", self.content.to_markdown(cx)) + format!("## User\n\n{}\n\n", self.content.read(cx).source()) } } @@ -83,7 +96,7 @@ impl Display for MentionPath<'_> { } } -#[derive(Debug, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq)] pub struct AssistantMessage { pub chunks: Vec, } @@ -100,24 +113,42 @@ impl AssistantMessage { } } -#[derive(Debug, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq)] pub enum AssistantMessageChunk { - Message { block: ContentBlock }, - Thought { block: ContentBlock }, + Text { chunk: Entity }, + Thought { chunk: Entity }, } impl AssistantMessageChunk { - pub fn from_str(chunk: &str, language_registry: &Arc, cx: &mut App) -> Self { - Self::Message { - block: ContentBlock::new(chunk.into(), language_registry, cx), + pub fn from_acp( + chunk: acp::AssistantMessageChunk, + language_registry: Arc, + cx: &mut App, + ) -> Self { + match chunk { + acp::AssistantMessageChunk::Text { text } => Self::Text { + chunk: cx.new(|cx| Markdown::new(text.into(), Some(language_registry), None, cx)), + }, + acp::AssistantMessageChunk::Thought { thought } => Self::Thought { + chunk: cx + .new(|cx| Markdown::new(thought.into(), Some(language_registry), None, cx)), + }, + } + } + + pub fn from_str(chunk: &str, language_registry: Arc, cx: &mut App) -> Self { + Self::Text { + chunk: cx.new(|cx| { + Markdown::new(chunk.to_owned().into(), Some(language_registry), None, cx) + }), } } fn to_markdown(&self, cx: &App) -> String { match self { - Self::Message { block } => block.to_markdown(cx).to_string(), - Self::Thought { block } => { - format!("\n{}\n", block.to_markdown(cx)) + Self::Text { chunk } => chunk.read(cx).source().to_string(), + Self::Thought { chunk } => { + format!("\n{}\n", chunk.read(cx).source()) } } } @@ -135,15 +166,19 @@ impl AgentThreadEntry { match self { Self::UserMessage(message) => message.to_markdown(cx), Self::AssistantMessage(message) => message.to_markdown(cx), - Self::ToolCall(tool_call) => tool_call.to_markdown(cx), + Self::ToolCall(too_call) => too_call.to_markdown(cx), } } - pub fn diffs(&self) -> impl Iterator { - if let AgentThreadEntry::ToolCall(call) = self { - itertools::Either::Left(call.diffs()) + pub fn diff(&self) -> Option<&Diff> { + if let AgentThreadEntry::ToolCall(ToolCall { + content: Some(ToolCallContent::Diff { diff }), + .. + }) = self + { + Some(&diff) } else { - itertools::Either::Right(std::iter::empty()) + None } } @@ -160,99 +195,20 @@ impl AgentThreadEntry { pub struct ToolCall { pub id: acp::ToolCallId, pub label: Entity, - pub kind: acp::ToolKind, - pub content: Vec, + pub icon: IconName, + pub content: Option, pub status: ToolCallStatus, pub locations: Vec, - pub raw_input: Option, } impl ToolCall { - fn from_acp( - tool_call: acp::ToolCall, - status: ToolCallStatus, - language_registry: Arc, - cx: &mut App, - ) -> Self { - Self { - id: tool_call.id, - label: cx.new(|cx| { - Markdown::new( - tool_call.label.into(), - Some(language_registry.clone()), - None, - cx, - ) - }), - kind: tool_call.kind, - content: tool_call - .content - .into_iter() - .map(|content| ToolCallContent::from_acp(content, language_registry.clone(), cx)) - .collect(), - locations: tool_call.locations, - status, - raw_input: tool_call.raw_input, - } - } - - fn update( - &mut self, - fields: acp::ToolCallUpdateFields, - language_registry: Arc, - cx: &mut App, - ) { - let acp::ToolCallUpdateFields { - kind, - status, - label, - content, - locations, - raw_input, - } = fields; - - if let Some(kind) = kind { - self.kind = kind; - } - - if let Some(status) = status { - self.status = ToolCallStatus::Allowed { status }; - } - - if let Some(label) = label { - self.label = cx.new(|cx| Markdown::new_text(label.into(), cx)); - } - - if let Some(content) = content { - self.content = content - .into_iter() - .map(|chunk| ToolCallContent::from_acp(chunk, language_registry.clone(), cx)) - .collect(); - } - - if let Some(locations) = locations { - self.locations = locations; - } - - if let Some(raw_input) = raw_input { - self.raw_input = Some(raw_input); - } - } - - pub fn diffs(&self) -> impl Iterator { - self.content.iter().filter_map(|content| match content { - ToolCallContent::ContentBlock { .. } => None, - ToolCallContent::Diff { diff } => Some(diff), - }) - } - fn to_markdown(&self, cx: &App) -> String { let mut markdown = format!( "**Tool Call: {}**\nStatus: {}\n\n", self.label.read(cx).source(), self.status ); - for content in &self.content { + if let Some(content) = &self.content { markdown.push_str(content.to_markdown(cx).as_str()); markdown.push_str("\n\n"); } @@ -263,8 +219,8 @@ impl ToolCall { #[derive(Debug)] pub enum ToolCallStatus { WaitingForConfirmation { - options: Vec, - respond_tx: oneshot::Sender, + confirmation: ToolCallConfirmation, + respond_tx: oneshot::Sender, }, Allowed { status: acp::ToolCallStatus, @@ -281,10 +237,9 @@ impl Display for ToolCallStatus { match self { ToolCallStatus::WaitingForConfirmation { .. } => "Waiting for confirmation", ToolCallStatus::Allowed { status } => match status { - acp::ToolCallStatus::Pending => "Pending", - acp::ToolCallStatus::InProgress => "In Progress", - acp::ToolCallStatus::Completed => "Completed", - acp::ToolCallStatus::Failed => "Failed", + acp::ToolCallStatus::Running => "Running", + acp::ToolCallStatus::Finished => "Finished", + acp::ToolCallStatus::Error => "Error", }, ToolCallStatus::Rejected => "Rejected", ToolCallStatus::Canceled => "Canceled", @@ -293,92 +248,86 @@ impl Display for ToolCallStatus { } } -#[derive(Debug, PartialEq, Clone)] -pub enum ContentBlock { - Empty, - Markdown { markdown: Entity }, +#[derive(Debug)] +pub enum ToolCallConfirmation { + Edit { + description: Option>, + }, + Execute { + command: String, + root_command: String, + description: Option>, + }, + Mcp { + server_name: String, + tool_name: String, + tool_display_name: String, + description: Option>, + }, + Fetch { + urls: Vec, + description: Option>, + }, + Other { + description: Entity, + }, } -impl ContentBlock { - pub fn new( - block: acp::ContentBlock, - language_registry: &Arc, - cx: &mut App, - ) -> Self { - let mut this = Self::Empty; - this.append(block, language_registry, cx); - this - } - - pub fn new_combined( - blocks: impl IntoIterator, +impl ToolCallConfirmation { + pub fn from_acp( + confirmation: acp::ToolCallConfirmation, language_registry: Arc, cx: &mut App, ) -> Self { - let mut this = Self::Empty; - for block in blocks { - this.append(block, &language_registry, cx); - } - this - } - - pub fn append( - &mut self, - block: acp::ContentBlock, - language_registry: &Arc, - cx: &mut App, - ) { - let new_content = match block { - acp::ContentBlock::Text(text_content) => text_content.text.clone(), - acp::ContentBlock::ResourceLink(resource_link) => { - if let Some(path) = resource_link.uri.strip_prefix("file://") { - format!("{}", MentionPath(path.as_ref())) - } else { - resource_link.uri.clone() - } - } - acp::ContentBlock::Image(_) - | acp::ContentBlock::Audio(_) - | acp::ContentBlock::Resource(_) => String::new(), + let to_md = |description: String, cx: &mut App| -> Entity { + cx.new(|cx| { + Markdown::new( + description.into(), + Some(language_registry.clone()), + None, + cx, + ) + }) }; - match self { - ContentBlock::Empty => { - *self = ContentBlock::Markdown { - markdown: cx.new(|cx| { - Markdown::new( - new_content.into(), - Some(language_registry.clone()), - None, - cx, - ) - }), - }; - } - ContentBlock::Markdown { markdown } => { - markdown.update(cx, |markdown, cx| markdown.append(&new_content, cx)); - } - } - } - - fn to_markdown<'a>(&'a self, cx: &'a App) -> &'a str { - match self { - ContentBlock::Empty => "", - ContentBlock::Markdown { markdown } => markdown.read(cx).source(), - } - } - - pub fn markdown(&self) -> Option<&Entity> { - match self { - ContentBlock::Empty => None, - ContentBlock::Markdown { markdown } => Some(markdown), + match confirmation { + acp::ToolCallConfirmation::Edit { description } => Self::Edit { + description: description.map(|description| to_md(description, cx)), + }, + acp::ToolCallConfirmation::Execute { + command, + root_command, + description, + } => Self::Execute { + command, + root_command, + description: description.map(|description| to_md(description, cx)), + }, + acp::ToolCallConfirmation::Mcp { + server_name, + tool_name, + tool_display_name, + description, + } => Self::Mcp { + server_name, + tool_name, + tool_display_name, + description: description.map(|description| to_md(description, cx)), + }, + acp::ToolCallConfirmation::Fetch { urls, description } => Self::Fetch { + urls: urls.iter().map(|url| url.into()).collect(), + description: description.map(|description| to_md(description, cx)), + }, + acp::ToolCallConfirmation::Other { description } => Self::Other { + description: to_md(description, cx), + }, } } } #[derive(Debug)] pub enum ToolCallContent { - ContentBlock { content: ContentBlock }, + Markdown { markdown: Entity }, Diff { diff: Diff }, } @@ -389,8 +338,8 @@ impl ToolCallContent { cx: &mut App, ) -> Self { match content { - acp::ToolCallContent::Content { content } => Self::ContentBlock { - content: ContentBlock::new(content, &language_registry, cx), + acp::ToolCallContent::Markdown { markdown } => Self::Markdown { + markdown: cx.new(|cx| Markdown::new_text(markdown.into(), cx)), }, acp::ToolCallContent::Diff { diff } => Self::Diff { diff: Diff::from_acp(diff, language_registry, cx), @@ -398,9 +347,9 @@ impl ToolCallContent { } } - pub fn to_markdown(&self, cx: &App) -> String { + fn to_markdown(&self, cx: &App) -> String { match self { - Self::ContentBlock { content } => content.to_markdown(cx).to_string(), + Self::Markdown { markdown } => markdown.read(cx).source().to_string(), Self::Diff { diff } => diff.to_markdown(cx), } } @@ -571,16 +520,13 @@ pub struct AcpThread { action_log: Entity, shared_buffers: HashMap, BufferSnapshot>, send_task: Option>, - connection: Rc, - session_id: acp::SessionId, + connection: Arc, + child_status: Option>>, } pub enum AcpThreadEvent { NewEntry, EntryUpdated(usize), - ToolAuthorizationRequired, - Stopped, - Error, } impl EventEmitter for AcpThread {} @@ -617,10 +563,10 @@ impl Error for LoadError {} impl AcpThread { pub fn new( - title: impl Into, - connection: Rc, + connection: impl AgentConnection + 'static, + title: SharedString, + child_status: Option>>, project: Entity, - session_id: acp::SessionId, cx: &mut Context, ) -> Self { let action_log = cx.new(|_| ActionLog::new(project.clone())); @@ -630,11 +576,24 @@ impl AcpThread { shared_buffers: Default::default(), entries: Default::default(), plan: Default::default(), - title: title.into(), + title, project, send_task: None, - connection, - session_id, + connection: Arc::new(connection), + child_status, + } + } + + /// Send a request to the agent and wait for a response. + pub fn request( + &self, + params: R, + ) -> impl use + Future> { + let params = params.into_any(); + let result = self.connection.request_any(params); + async move { + let result = result.await?; + Ok(R::response_from_any(result)?) } } @@ -670,18 +629,15 @@ impl AcpThread { for entry in self.entries.iter().rev() { match entry { AgentThreadEntry::UserMessage(_) => return false, - AgentThreadEntry::ToolCall( - call @ ToolCall { - status: - ToolCallStatus::Allowed { - status: - acp::ToolCallStatus::InProgress | acp::ToolCallStatus::Pending, - }, - .. - }, - ) if call.diffs().next().is_some() => { - return true; - } + AgentThreadEntry::ToolCall(ToolCall { + status: + ToolCallStatus::Allowed { + status: acp::ToolCallStatus::Running, + .. + }, + content: Some(ToolCallContent::Diff { .. }), + .. + }) => return true, AgentThreadEntry::ToolCall(_) | AgentThreadEntry::AssistantMessage(_) => {} } } @@ -689,94 +645,49 @@ impl AcpThread { false } - pub fn used_tools_since_last_user_message(&self) -> bool { - for entry in self.entries.iter().rev() { - match entry { - AgentThreadEntry::UserMessage(..) => return false, - AgentThreadEntry::AssistantMessage(..) => continue, - AgentThreadEntry::ToolCall(..) => return true, - } - } - - false + pub fn push_entry(&mut self, entry: AgentThreadEntry, cx: &mut Context) { + self.entries.push(entry); + cx.emit(AcpThreadEvent::NewEntry); } - pub fn handle_session_update( + pub fn push_assistant_chunk( &mut self, - update: acp::SessionUpdate, - cx: &mut Context, - ) -> Result<()> { - match update { - acp::SessionUpdate::UserMessageChunk { content } => { - self.push_user_content_block(content, cx); - } - acp::SessionUpdate::AgentMessageChunk { content } => { - self.push_assistant_content_block(content, false, cx); - } - acp::SessionUpdate::AgentThoughtChunk { content } => { - self.push_assistant_content_block(content, true, cx); - } - acp::SessionUpdate::ToolCall(tool_call) => { - self.upsert_tool_call(tool_call, cx); - } - acp::SessionUpdate::ToolCallUpdate(tool_call_update) => { - self.update_tool_call(tool_call_update, cx)?; - } - acp::SessionUpdate::Plan(plan) => { - self.update_plan(plan, cx); - } - } - Ok(()) - } - - pub fn push_user_content_block(&mut self, chunk: acp::ContentBlock, cx: &mut Context) { - let language_registry = self.project.read(cx).languages().clone(); - let entries_len = self.entries.len(); - - if let Some(last_entry) = self.entries.last_mut() - && let AgentThreadEntry::UserMessage(UserMessage { content }) = last_entry - { - content.append(chunk, &language_registry, cx); - cx.emit(AcpThreadEvent::EntryUpdated(entries_len - 1)); - } else { - let content = ContentBlock::new(chunk, &language_registry, cx); - self.push_entry(AgentThreadEntry::UserMessage(UserMessage { content }), cx); - } - } - - pub fn push_assistant_content_block( - &mut self, - chunk: acp::ContentBlock, - is_thought: bool, + chunk: acp::AssistantMessageChunk, cx: &mut Context, ) { - let language_registry = self.project.read(cx).languages().clone(); let entries_len = self.entries.len(); if let Some(last_entry) = self.entries.last_mut() && let AgentThreadEntry::AssistantMessage(AssistantMessage { chunks }) = last_entry { cx.emit(AcpThreadEvent::EntryUpdated(entries_len - 1)); - match (chunks.last_mut(), is_thought) { - (Some(AssistantMessageChunk::Message { block }), false) - | (Some(AssistantMessageChunk::Thought { block }), true) => { - block.append(chunk, &language_registry, cx) + + match (chunks.last_mut(), &chunk) { + ( + Some(AssistantMessageChunk::Text { chunk: old_chunk }), + acp::AssistantMessageChunk::Text { text: new_chunk }, + ) + | ( + Some(AssistantMessageChunk::Thought { chunk: old_chunk }), + acp::AssistantMessageChunk::Thought { thought: new_chunk }, + ) => { + old_chunk.update(cx, |old_chunk, cx| { + old_chunk.append(&new_chunk, cx); + }); } _ => { - let block = ContentBlock::new(chunk, &language_registry, cx); - if is_thought { - chunks.push(AssistantMessageChunk::Thought { block }) - } else { - chunks.push(AssistantMessageChunk::Message { block }) - } + chunks.push(AssistantMessageChunk::from_acp( + chunk, + self.project.read(cx).languages().clone(), + cx, + )); } } } else { - let block = ContentBlock::new(chunk, &language_registry, cx); - let chunk = if is_thought { - AssistantMessageChunk::Thought { block } - } else { - AssistantMessageChunk::Message { block } - }; + let chunk = AssistantMessageChunk::from_acp( + chunk, + self.project.read(cx).languages().clone(), + cx, + ); self.push_entry( AgentThreadEntry::AssistantMessage(AssistantMessage { @@ -787,79 +698,212 @@ impl AcpThread { } } - fn push_entry(&mut self, entry: AgentThreadEntry, cx: &mut Context) { - self.entries.push(entry); - cx.emit(AcpThreadEvent::NewEntry); + pub fn request_new_tool_call( + &mut self, + tool_call: acp::RequestToolCallConfirmationParams, + cx: &mut Context, + ) -> ToolCallRequest { + let (tx, rx) = oneshot::channel(); + + let status = ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::from_acp( + tool_call.confirmation, + self.project.read(cx).languages().clone(), + cx, + ), + respond_tx: tx, + }; + + let id = self.insert_tool_call(tool_call.tool_call, status, cx); + ToolCallRequest { id, outcome: rx } + } + + pub fn request_tool_call_confirmation( + &mut self, + tool_call_id: ToolCallId, + confirmation: acp::ToolCallConfirmation, + cx: &mut Context, + ) -> Result { + let project = self.project.read(cx).languages().clone(); + let Some((idx, call)) = self.tool_call_mut(tool_call_id) else { + anyhow::bail!("Tool call not found"); + }; + + let (tx, rx) = oneshot::channel(); + + call.status = ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::from_acp(confirmation, project, cx), + respond_tx: tx, + }; + + cx.emit(AcpThreadEvent::EntryUpdated(idx)); + + Ok(ToolCallRequest { + id: tool_call_id, + outcome: rx, + }) + } + + pub fn push_tool_call( + &mut self, + request: acp::PushToolCallParams, + cx: &mut Context, + ) -> acp::ToolCallId { + let status = ToolCallStatus::Allowed { + status: acp::ToolCallStatus::Running, + }; + + self.insert_tool_call(request, status, cx) + } + + fn insert_tool_call( + &mut self, + tool_call: acp::PushToolCallParams, + status: ToolCallStatus, + cx: &mut Context, + ) -> acp::ToolCallId { + let language_registry = self.project.read(cx).languages().clone(); + let id = acp::ToolCallId(self.entries.len() as u64); + let call = ToolCall { + id, + label: cx.new(|cx| { + Markdown::new( + tool_call.label.into(), + Some(language_registry.clone()), + None, + cx, + ) + }), + icon: acp_icon_to_ui_icon(tool_call.icon), + content: tool_call + .content + .map(|content| ToolCallContent::from_acp(content, language_registry, cx)), + locations: tool_call.locations, + status, + }; + + let location = call.locations.last().cloned(); + if let Some(location) = location { + self.set_project_location(location, cx) + } + + self.push_entry(AgentThreadEntry::ToolCall(call), cx); + + id + } + + pub fn authorize_tool_call( + &mut self, + id: acp::ToolCallId, + outcome: acp::ToolCallConfirmationOutcome, + cx: &mut Context, + ) { + let Some((ix, call)) = self.tool_call_mut(id) else { + return; + }; + + let new_status = if outcome == acp::ToolCallConfirmationOutcome::Reject { + ToolCallStatus::Rejected + } else { + ToolCallStatus::Allowed { + status: acp::ToolCallStatus::Running, + } + }; + + let curr_status = mem::replace(&mut call.status, new_status); + + if let ToolCallStatus::WaitingForConfirmation { respond_tx, .. } = curr_status { + respond_tx.send(outcome).log_err(); + } else if cfg!(debug_assertions) { + panic!("tried to authorize an already authorized tool call"); + } + + cx.emit(AcpThreadEvent::EntryUpdated(ix)); } pub fn update_tool_call( &mut self, - update: acp::ToolCallUpdate, + id: acp::ToolCallId, + new_status: acp::ToolCallStatus, + new_content: Option, cx: &mut Context, ) -> Result<()> { - let languages = self.project.read(cx).languages().clone(); - - let (ix, current_call) = self - .tool_call_mut(&update.id) - .context("Tool call not found")?; - current_call.update(update.fields, languages, cx); - - cx.emit(AcpThreadEvent::EntryUpdated(ix)); - - Ok(()) - } - - /// Updates a tool call if id matches an existing entry, otherwise inserts a new one. - pub fn upsert_tool_call(&mut self, tool_call: acp::ToolCall, cx: &mut Context) { - let status = ToolCallStatus::Allowed { - status: tool_call.status, - }; - self.upsert_tool_call_inner(tool_call, status, cx) - } - - pub fn upsert_tool_call_inner( - &mut self, - tool_call: acp::ToolCall, - status: ToolCallStatus, - cx: &mut Context, - ) { let language_registry = self.project.read(cx).languages().clone(); - let call = ToolCall::from_acp(tool_call, status, language_registry, cx); + let (ix, call) = self.tool_call_mut(id).context("Entry not found")?; - let location = call.locations.last().cloned(); - - if let Some((ix, current_call)) = self.tool_call_mut(&call.id) { - *current_call = call; - - cx.emit(AcpThreadEvent::EntryUpdated(ix)); - } else { - self.push_entry(AgentThreadEntry::ToolCall(call), cx); + if let Some(new_content) = new_content { + call.content = Some(ToolCallContent::from_acp( + new_content, + language_registry, + cx, + )); } + match &mut call.status { + ToolCallStatus::Allowed { status } => { + *status = new_status; + } + ToolCallStatus::WaitingForConfirmation { .. } => { + anyhow::bail!("Tool call hasn't been authorized yet") + } + ToolCallStatus::Rejected => { + anyhow::bail!("Tool call was rejected and therefore can't be updated") + } + ToolCallStatus::Canceled => { + call.status = ToolCallStatus::Allowed { status: new_status }; + } + } + + let location = call.locations.last().cloned(); if let Some(location) = location { self.set_project_location(location, cx) } + + cx.emit(AcpThreadEvent::EntryUpdated(ix)); + Ok(()) } - fn tool_call_mut(&mut self, id: &acp::ToolCallId) -> Option<(usize, &mut ToolCall)> { - // The tool call we are looking for is typically the last one, or very close to the end. - // At the moment, it doesn't seem like a hashmap would be a good fit for this use case. - self.entries - .iter_mut() - .enumerate() - .rev() - .find_map(|(index, tool_call)| { - if let AgentThreadEntry::ToolCall(tool_call) = tool_call - && &tool_call.id == id - { - Some((index, tool_call)) - } else { - None + fn tool_call_mut(&mut self, id: acp::ToolCallId) -> Option<(usize, &mut ToolCall)> { + let entry = self.entries.get_mut(id.0 as usize); + debug_assert!( + entry.is_some(), + "We shouldn't give out ids to entries that don't exist" + ); + match entry { + Some(AgentThreadEntry::ToolCall(call)) if call.id == id => Some((id.0 as usize, call)), + _ => { + if cfg!(debug_assertions) { + panic!("entry is not a tool call"); } - }) + None + } + } } - pub fn set_project_location(&self, location: acp::ToolCallLocation, cx: &mut Context) { + pub fn plan(&self) -> &Plan { + &self.plan + } + + pub fn update_plan(&mut self, request: acp::UpdatePlanParams, cx: &mut Context) { + self.plan = Plan { + entries: request + .entries + .into_iter() + .map(|entry| PlanEntry::from_acp(entry, cx)) + .collect(), + }; + + cx.notify(); + } + + pub fn clear_completed_plan_entries(&mut self, cx: &mut Context) { + self.plan + .entries + .retain(|entry| !matches!(entry.status, acp::PlanEntryStatus::Completed)); + cx.notify(); + } + + pub fn set_project_location(&self, location: ToolCallLocation, cx: &mut Context) { self.project.update(cx, |project, cx| { let Some(path) = project.project_path_for_absolute_path(&location.path, cx) else { return; @@ -890,57 +934,6 @@ impl AcpThread { }); } - pub fn request_tool_call_permission( - &mut self, - tool_call: acp::ToolCall, - options: Vec, - cx: &mut Context, - ) -> oneshot::Receiver { - let (tx, rx) = oneshot::channel(); - - let status = ToolCallStatus::WaitingForConfirmation { - options, - respond_tx: tx, - }; - - self.upsert_tool_call_inner(tool_call, status, cx); - cx.emit(AcpThreadEvent::ToolAuthorizationRequired); - rx - } - - pub fn authorize_tool_call( - &mut self, - id: acp::ToolCallId, - option_id: acp::PermissionOptionId, - option_kind: acp::PermissionOptionKind, - cx: &mut Context, - ) { - let Some((ix, call)) = self.tool_call_mut(&id) else { - return; - }; - - let new_status = match option_kind { - acp::PermissionOptionKind::RejectOnce | acp::PermissionOptionKind::RejectAlways => { - ToolCallStatus::Rejected - } - acp::PermissionOptionKind::AllowOnce | acp::PermissionOptionKind::AllowAlways => { - ToolCallStatus::Allowed { - status: acp::ToolCallStatus::InProgress, - } - } - }; - - let curr_status = mem::replace(&mut call.status, new_status); - - if let ToolCallStatus::WaitingForConfirmation { respond_tx, .. } = curr_status { - respond_tx.send(option_id).log_err(); - } else if cfg!(debug_assertions) { - panic!("tried to authorize an already authorized tool call"); - } - - cx.emit(AcpThreadEvent::EntryUpdated(ix)); - } - /// Returns true if the last turn is awaiting tool authorization pub fn waiting_for_tool_confirmation(&self) -> bool { for entry in self.entries.iter().rev() { @@ -960,27 +953,14 @@ impl AcpThread { false } - pub fn plan(&self) -> &Plan { - &self.plan + pub fn initialize(&self) -> impl use<> + Future> { + self.request(acp::InitializeParams { + protocol_version: ProtocolVersion::latest(), + }) } - pub fn update_plan(&mut self, request: acp::Plan, cx: &mut Context) { - self.plan = Plan { - entries: request - .entries - .into_iter() - .map(|entry| PlanEntry::from_acp(entry, cx)) - .collect(), - }; - - cx.notify(); - } - - fn clear_completed_plan_entries(&mut self, cx: &mut Context) { - self.plan - .entries - .retain(|entry| !matches!(entry.status, acp::PlanEntryStatus::Completed)); - cx.notify(); + pub fn authenticate(&self) -> impl use<> + Future> { + self.request(acp::AuthenticateParams) } #[cfg(any(test, feature = "test-support"))] @@ -988,50 +968,39 @@ impl AcpThread { &mut self, message: &str, cx: &mut Context, - ) -> BoxFuture<'static, Result<()>> { + ) -> BoxFuture<'static, Result<(), acp::Error>> { self.send( - vec![acp::ContentBlock::Text(acp::TextContent { - text: message.to_string(), - annotations: None, - })], + acp::SendUserMessageParams { + chunks: vec![acp::UserMessageChunk::Text { + text: message.to_string(), + }], + }, cx, ) } pub fn send( &mut self, - message: Vec, + message: acp::SendUserMessageParams, cx: &mut Context, - ) -> BoxFuture<'static, Result<()>> { - let block = ContentBlock::new_combined( - message.clone(), - self.project.read(cx).languages().clone(), - cx, - ); + ) -> BoxFuture<'static, Result<(), acp::Error>> { self.push_entry( - AgentThreadEntry::UserMessage(UserMessage { content: block }), + AgentThreadEntry::UserMessage(UserMessage::from_acp( + &message, + self.project.read(cx).languages().clone(), + cx, + )), cx, ); - self.clear_completed_plan_entries(cx); let (tx, rx) = oneshot::channel(); - let cancel_task = self.cancel(cx); + let cancel = self.cancel(cx); self.send_task = Some(cx.spawn(async move |this, cx| { async { - cancel_task.await; + cancel.await.log_err(); - let result = this - .update(cx, |this, cx| { - this.connection.prompt( - acp::PromptRequest { - prompt: message, - session_id: this.session_id.clone(), - }, - cx, - ) - })? - .await; + let result = this.update(cx, |this, _| this.request(message))?.await; tx.send(result).log_err(); this.update(cx, |this, _cx| this.send_task.take())?; anyhow::Ok(()) @@ -1040,53 +1009,57 @@ impl AcpThread { .log_err(); })); - cx.spawn(async move |this, cx| match rx.await { - Ok(Err(e)) => { - this.update(cx, |_, cx| cx.emit(AcpThreadEvent::Error)) - .log_err(); - Err(e)? + async move { + match rx.await { + Ok(Err(e)) => Err(e)?, + _ => Ok(()), } - _ => { - this.update(cx, |_, cx| cx.emit(AcpThreadEvent::Stopped)) - .log_err(); - Ok(()) - } - }) + } .boxed() } - pub fn cancel(&mut self, cx: &mut Context) -> Task<()> { - let Some(send_task) = self.send_task.take() else { - return Task::ready(()); - }; + pub fn cancel(&mut self, cx: &mut Context) -> Task> { + if self.send_task.take().is_some() { + let request = self.request(acp::CancelSendMessageParams); + cx.spawn(async move |this, cx| { + request.await?; + this.update(cx, |this, _cx| { + for entry in this.entries.iter_mut() { + if let AgentThreadEntry::ToolCall(call) = entry { + let cancel = matches!( + call.status, + ToolCallStatus::WaitingForConfirmation { .. } + | ToolCallStatus::Allowed { + status: acp::ToolCallStatus::Running + } + ); - for entry in self.entries.iter_mut() { - if let AgentThreadEntry::ToolCall(call) = entry { - let cancel = matches!( - call.status, - ToolCallStatus::WaitingForConfirmation { .. } - | ToolCallStatus::Allowed { - status: acp::ToolCallStatus::InProgress + if cancel { + let curr_status = + mem::replace(&mut call.status, ToolCallStatus::Canceled); + + if let ToolCallStatus::WaitingForConfirmation { + respond_tx, .. + } = curr_status + { + respond_tx + .send(acp::ToolCallConfirmationOutcome::Cancel) + .ok(); + } + } } - ); - - if cancel { - call.status = ToolCallStatus::Canceled; - } - } + } + })?; + Ok(()) + }) + } else { + Task::ready(Ok(())) } - - self.connection.cancel(&self.session_id, cx); - - // Wait for the send task to complete - cx.foreground_executor().spawn(send_task) } pub fn read_text_file( &self, - path: PathBuf, - line: Option, - limit: Option, + request: acp::ReadTextFileParams, reuse_shared_snapshot: bool, cx: &mut Context, ) -> Task> { @@ -1095,7 +1068,7 @@ impl AcpThread { cx.spawn(async move |this, cx| { let load = project.update(cx, |project, cx| { let path = project - .project_path_for_absolute_path(&path, cx) + .project_path_for_absolute_path(&request.path, cx) .context("invalid path")?; anyhow::Ok(project.open_buffer(path, cx)) }); @@ -1121,7 +1094,7 @@ impl AcpThread { let position = buffer .read(cx) .snapshot() - .anchor_before(Point::new(line.unwrap_or_default(), 0)); + .anchor_before(Point::new(request.line.unwrap_or_default(), 0)); project.set_agent_location( Some(AgentLocation { buffer: buffer.downgrade(), @@ -1137,11 +1110,11 @@ impl AcpThread { this.update(cx, |this, _| { let text = snapshot.text(); this.shared_buffers.insert(buffer.clone(), snapshot); - if line.is_none() && limit.is_none() { + if request.line.is_none() && request.limit.is_none() { return Ok(text); } - let limit = limit.unwrap_or(u32::MAX) as usize; - let Some(line) = line else { + let limit = request.limit.unwrap_or(u32::MAX) as usize; + let Some(line) = request.line else { return Ok(text.lines().take(limit).collect::()); }; @@ -1226,25 +1199,207 @@ impl AcpThread { }) } + pub fn child_status(&mut self) -> Option>> { + self.child_status.take() + } + pub fn to_markdown(&self, cx: &App) -> String { self.entries.iter().map(|e| e.to_markdown(cx)).collect() } } +#[derive(Clone)] +pub struct AcpClientDelegate { + thread: WeakEntity, + cx: AsyncApp, + // sent_buffer_versions: HashMap, HashMap>, +} + +impl AcpClientDelegate { + pub fn new(thread: WeakEntity, cx: AsyncApp) -> Self { + Self { thread, cx } + } + + pub async fn clear_completed_plan_entries(&self) -> Result<()> { + let cx = &mut self.cx.clone(); + cx.update(|cx| { + self.thread + .update(cx, |thread, cx| thread.clear_completed_plan_entries(cx)) + })? + .context("Failed to update thread")?; + + Ok(()) + } + + pub async fn request_existing_tool_call_confirmation( + &self, + tool_call_id: ToolCallId, + confirmation: acp::ToolCallConfirmation, + ) -> Result { + let cx = &mut self.cx.clone(); + let ToolCallRequest { outcome, .. } = cx + .update(|cx| { + self.thread.update(cx, |thread, cx| { + thread.request_tool_call_confirmation(tool_call_id, confirmation, cx) + }) + })? + .context("Failed to update thread")??; + + Ok(outcome.await?) + } + + pub async fn read_text_file_reusing_snapshot( + &self, + request: acp::ReadTextFileParams, + ) -> Result { + let content = self + .cx + .update(|cx| { + self.thread + .update(cx, |thread, cx| thread.read_text_file(request, true, cx)) + })? + .context("Failed to update thread")? + .await?; + Ok(acp::ReadTextFileResponse { content }) + } +} + +impl acp::Client for AcpClientDelegate { + async fn stream_assistant_message_chunk( + &self, + params: acp::StreamAssistantMessageChunkParams, + ) -> Result<(), acp::Error> { + let cx = &mut self.cx.clone(); + + cx.update(|cx| { + self.thread + .update(cx, |thread, cx| { + thread.push_assistant_chunk(params.chunk, cx) + }) + .ok(); + })?; + + Ok(()) + } + + async fn request_tool_call_confirmation( + &self, + request: acp::RequestToolCallConfirmationParams, + ) -> Result { + let cx = &mut self.cx.clone(); + let ToolCallRequest { id, outcome } = cx + .update(|cx| { + self.thread + .update(cx, |thread, cx| thread.request_new_tool_call(request, cx)) + })? + .context("Failed to update thread")?; + + Ok(acp::RequestToolCallConfirmationResponse { + id, + outcome: outcome.await.map_err(acp::Error::into_internal_error)?, + }) + } + + async fn push_tool_call( + &self, + request: acp::PushToolCallParams, + ) -> Result { + let cx = &mut self.cx.clone(); + let id = cx + .update(|cx| { + self.thread + .update(cx, |thread, cx| thread.push_tool_call(request, cx)) + })? + .context("Failed to update thread")?; + + Ok(acp::PushToolCallResponse { id }) + } + + async fn update_tool_call(&self, request: acp::UpdateToolCallParams) -> Result<(), acp::Error> { + let cx = &mut self.cx.clone(); + + cx.update(|cx| { + self.thread.update(cx, |thread, cx| { + thread.update_tool_call(request.tool_call_id, request.status, request.content, cx) + }) + })? + .context("Failed to update thread")??; + + Ok(()) + } + + async fn update_plan(&self, request: acp::UpdatePlanParams) -> Result<(), acp::Error> { + let cx = &mut self.cx.clone(); + + cx.update(|cx| { + self.thread + .update(cx, |thread, cx| thread.update_plan(request, cx)) + })? + .context("Failed to update thread")?; + + Ok(()) + } + + async fn read_text_file( + &self, + request: acp::ReadTextFileParams, + ) -> Result { + let content = self + .cx + .update(|cx| { + self.thread + .update(cx, |thread, cx| thread.read_text_file(request, false, cx)) + })? + .context("Failed to update thread")? + .await?; + Ok(acp::ReadTextFileResponse { content }) + } + + async fn write_text_file(&self, request: acp::WriteTextFileParams) -> Result<(), acp::Error> { + self.cx + .update(|cx| { + self.thread.update(cx, |thread, cx| { + thread.write_text_file(request.path, request.content, cx) + }) + })? + .context("Failed to update thread")? + .await?; + + Ok(()) + } +} + +fn acp_icon_to_ui_icon(icon: acp::Icon) -> IconName { + match icon { + acp::Icon::FileSearch => IconName::ToolSearch, + acp::Icon::Folder => IconName::ToolFolder, + acp::Icon::Globe => IconName::ToolWeb, + acp::Icon::Hammer => IconName::ToolHammer, + acp::Icon::LightBulb => IconName::ToolBulb, + acp::Icon::Pencil => IconName::ToolPencil, + acp::Icon::Regex => IconName::ToolRegex, + acp::Icon::Terminal => IconName::ToolTerminal, + } +} + +pub struct ToolCallRequest { + pub id: acp::ToolCallId, + pub outcome: oneshot::Receiver, +} + #[cfg(test)] mod tests { use super::*; use anyhow::anyhow; + use async_pipe::{PipeReader, PipeWriter}; use futures::{channel::mpsc, future::LocalBoxFuture, select}; - use gpui::{AsyncApp, TestAppContext, WeakEntity}; + use gpui::{AsyncApp, TestAppContext}; use indoc::indoc; use project::FakeFs; - use rand::Rng as _; use serde_json::json; use settings::SettingsStore; - use smol::stream::StreamExt as _; + use smol::{future::BoxedLocal, stream::StreamExt as _}; use std::{cell::RefCell, rc::Rc, time::Duration}; - use util::path; fn init_test(cx: &mut TestAppContext) { @@ -1258,133 +1413,39 @@ mod tests { } #[gpui::test] - async fn test_push_user_content_block(cx: &mut gpui::TestAppContext) { + async fn test_thinking_concatenation(cx: &mut TestAppContext) { init_test(cx); let fs = FakeFs::new(cx.executor()); let project = Project::test(fs, [], cx).await; - let connection = Rc::new(FakeAgentConnection::new()); - let thread = cx - .spawn(async move |mut cx| { - connection - .new_thread(project, Path::new(path!("/test")), &mut cx) + let (thread, fake_server) = fake_acp_thread(project, cx); + + fake_server.update(cx, |fake_server, _| { + fake_server.on_user_message(move |_, server, mut cx| async move { + server + .update(&mut cx, |server, _| { + server.send_to_zed(acp::StreamAssistantMessageChunkParams { + chunk: acp::AssistantMessageChunk::Thought { + thought: "Thinking ".into(), + }, + }) + })? .await - }) - .await - .unwrap(); - - // Test creating a new user message - thread.update(cx, |thread, cx| { - thread.push_user_content_block( - acp::ContentBlock::Text(acp::TextContent { - annotations: None, - text: "Hello, ".to_string(), - }), - cx, - ); - }); - - thread.update(cx, |thread, cx| { - assert_eq!(thread.entries.len(), 1); - if let AgentThreadEntry::UserMessage(user_msg) = &thread.entries[0] { - assert_eq!(user_msg.content.to_markdown(cx), "Hello, "); - } else { - panic!("Expected UserMessage"); - } - }); - - // Test appending to existing user message - thread.update(cx, |thread, cx| { - thread.push_user_content_block( - acp::ContentBlock::Text(acp::TextContent { - annotations: None, - text: "world!".to_string(), - }), - cx, - ); - }); - - thread.update(cx, |thread, cx| { - assert_eq!(thread.entries.len(), 1); - if let AgentThreadEntry::UserMessage(user_msg) = &thread.entries[0] { - assert_eq!(user_msg.content.to_markdown(cx), "Hello, world!"); - } else { - panic!("Expected UserMessage"); - } - }); - - // Test creating new user message after assistant message - thread.update(cx, |thread, cx| { - thread.push_assistant_content_block( - acp::ContentBlock::Text(acp::TextContent { - annotations: None, - text: "Assistant response".to_string(), - }), - false, - cx, - ); - }); - - thread.update(cx, |thread, cx| { - thread.push_user_content_block( - acp::ContentBlock::Text(acp::TextContent { - annotations: None, - text: "New user message".to_string(), - }), - cx, - ); - }); - - thread.update(cx, |thread, cx| { - assert_eq!(thread.entries.len(), 3); - if let AgentThreadEntry::UserMessage(user_msg) = &thread.entries[2] { - assert_eq!(user_msg.content.to_markdown(cx), "New user message"); - } else { - panic!("Expected UserMessage at index 2"); - } - }); - } - - #[gpui::test] - async fn test_thinking_concatenation(cx: &mut gpui::TestAppContext) { - init_test(cx); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [], cx).await; - let connection = Rc::new(FakeAgentConnection::new().on_user_message( - |_, thread, mut cx| { - async move { - thread.update(&mut cx, |thread, cx| { - thread - .handle_session_update( - acp::SessionUpdate::AgentThoughtChunk { - content: "Thinking ".into(), - }, - cx, - ) - .unwrap(); - thread - .handle_session_update( - acp::SessionUpdate::AgentThoughtChunk { - content: "hard!".into(), - }, - cx, - ) - .unwrap(); - }) - } - .boxed_local() - }, - )); - - let thread = cx - .spawn(async move |mut cx| { - connection - .new_thread(project, Path::new(path!("/test")), &mut cx) + .unwrap(); + server + .update(&mut cx, |server, _| { + server.send_to_zed(acp::StreamAssistantMessageChunkParams { + chunk: acp::AssistantMessageChunk::Thought { + thought: "hard!".into(), + }, + }) + })? .await + .unwrap(); + + Ok(()) }) - .await - .unwrap(); + }); thread .update(cx, |thread, cx| thread.send_raw("Hello from Zed!", cx)) @@ -1417,38 +1478,7 @@ mod tests { fs.insert_tree(path!("/tmp"), json!({"foo": "one\ntwo\nthree\n"})) .await; let project = Project::test(fs.clone(), [], cx).await; - let (read_file_tx, read_file_rx) = oneshot::channel::<()>(); - let read_file_tx = Rc::new(RefCell::new(Some(read_file_tx))); - let connection = Rc::new(FakeAgentConnection::new().on_user_message( - move |_, thread, mut cx| { - let read_file_tx = read_file_tx.clone(); - async move { - let content = thread - .update(&mut cx, |thread, cx| { - thread.read_text_file(path!("/tmp/foo").into(), None, None, false, cx) - }) - .unwrap() - .await - .unwrap(); - assert_eq!(content, "one\ntwo\nthree\n"); - read_file_tx.take().unwrap().send(()).unwrap(); - thread - .update(&mut cx, |thread, cx| { - thread.write_text_file( - path!("/tmp/foo").into(), - "one\ntwo\nthree\nfour\nfive\n".to_string(), - cx, - ) - }) - .unwrap() - .await - .unwrap(); - Ok(()) - } - .boxed_local() - }, - )); - + let (thread, fake_server) = fake_acp_thread(project.clone(), cx); let (worktree, pathbuf) = project .update(cx, |project, cx| { project.find_or_create_worktree(path!("/tmp/foo"), true, cx) @@ -1462,10 +1492,38 @@ mod tests { .await .unwrap(); - let thread = cx - .spawn(|mut cx| connection.new_thread(project, Path::new(path!("/tmp")), &mut cx)) - .await - .unwrap(); + let (read_file_tx, read_file_rx) = oneshot::channel::<()>(); + let read_file_tx = Rc::new(RefCell::new(Some(read_file_tx))); + + fake_server.update(cx, |fake_server, _| { + fake_server.on_user_message(move |_, server, mut cx| { + let read_file_tx = read_file_tx.clone(); + async move { + let content = server + .update(&mut cx, |server, _| { + server.send_to_zed(acp::ReadTextFileParams { + path: path!("/tmp/foo").into(), + line: None, + limit: None, + }) + })? + .await + .unwrap(); + assert_eq!(content.content, "one\ntwo\nthree\n"); + read_file_tx.take().unwrap().send(()).unwrap(); + server + .update(&mut cx, |server, _| { + server.send_to_zed(acp::WriteTextFileParams { + path: path!("/tmp/foo").into(), + content: "one\ntwo\nthree\nfour\nfive\n".to_string(), + }) + })? + .await + .unwrap(); + Ok(()) + } + }) + }); let request = thread.update(cx, |thread, cx| { thread.send_raw("Extend the count in /tmp/foo", cx) @@ -1492,44 +1550,36 @@ mod tests { let fs = FakeFs::new(cx.executor()); let project = Project::test(fs, [], cx).await; - let id = acp::ToolCallId("test".into()); + let (thread, fake_server) = fake_acp_thread(project, cx); - let connection = Rc::new(FakeAgentConnection::new().on_user_message({ - let id = id.clone(); - move |_, thread, mut cx| { - let id = id.clone(); + let (end_turn_tx, end_turn_rx) = oneshot::channel::<()>(); + + let tool_call_id = Rc::new(RefCell::new(None)); + let end_turn_rx = Rc::new(RefCell::new(Some(end_turn_rx))); + fake_server.update(cx, |fake_server, _| { + let tool_call_id = tool_call_id.clone(); + fake_server.on_user_message(move |_, server, mut cx| { + let end_turn_rx = end_turn_rx.clone(); + let tool_call_id = tool_call_id.clone(); async move { - thread - .update(&mut cx, |thread, cx| { - thread.handle_session_update( - acp::SessionUpdate::ToolCall(acp::ToolCall { - id: id.clone(), - label: "Label".into(), - kind: acp::ToolKind::Fetch, - status: acp::ToolCallStatus::InProgress, - content: vec![], - locations: vec![], - raw_input: None, - }), - cx, - ) - }) - .unwrap() + let tool_call_result = server + .update(&mut cx, |server, _| { + server.send_to_zed(acp::PushToolCallParams { + label: "Fetch".to_string(), + icon: acp::Icon::Globe, + content: None, + locations: vec![], + }) + })? + .await .unwrap(); + *tool_call_id.clone().borrow_mut() = Some(tool_call_result.id); + end_turn_rx.take().unwrap().await.ok(); + Ok(()) } - .boxed_local() - } - })); - - let thread = cx - .spawn(async move |mut cx| { - connection - .new_thread(project, Path::new(path!("/test")), &mut cx) - .await }) - .await - .unwrap(); + }); let request = thread.update(cx, |thread, cx| { thread.send_raw("Fetch https://example.com", cx) @@ -1542,7 +1592,7 @@ mod tests { thread.entries[1], AgentThreadEntry::ToolCall(ToolCall { status: ToolCallStatus::Allowed { - status: acp::ToolCallStatus::InProgress, + status: acp::ToolCallStatus::Running, .. }, .. @@ -1550,7 +1600,12 @@ mod tests { )); }); - thread.update(cx, |thread, cx| thread.cancel(cx)).await; + cx.run_until_parked(); + + thread + .update(cx, |thread, cx| thread.cancel(cx)) + .await + .unwrap(); thread.read_with(cx, |thread, _| { assert!(matches!( @@ -1562,21 +1617,18 @@ mod tests { )); }); - thread - .update(cx, |thread, cx| { - thread.handle_session_update( - acp::SessionUpdate::ToolCallUpdate(acp::ToolCallUpdate { - id, - fields: acp::ToolCallUpdateFields { - status: Some(acp::ToolCallStatus::Completed), - ..Default::default() - }, - }), - cx, - ) + fake_server + .update(cx, |fake_server, _| { + fake_server.send_to_zed(acp::UpdateToolCallParams { + tool_call_id: tool_call_id.borrow().unwrap(), + status: acp::ToolCallStatus::Finished, + content: None, + }) }) + .await .unwrap(); + drop(end_turn_tx); request.await.unwrap(); thread.read_with(cx, |thread, _| { @@ -1584,7 +1636,7 @@ mod tests { thread.entries[1], AgentThreadEntry::ToolCall(ToolCall { status: ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Completed, + status: acp::ToolCallStatus::Finished, .. }, .. @@ -1593,56 +1645,6 @@ mod tests { }); } - #[gpui::test] - async fn test_no_pending_edits_if_tool_calls_are_completed(cx: &mut TestAppContext) { - init_test(cx); - let fs = FakeFs::new(cx.background_executor.clone()); - fs.insert_tree(path!("/test"), json!({})).await; - let project = Project::test(fs, [path!("/test").as_ref()], cx).await; - - let connection = Rc::new(FakeAgentConnection::new().on_user_message({ - move |_, thread, mut cx| { - async move { - thread - .update(&mut cx, |thread, cx| { - thread.handle_session_update( - acp::SessionUpdate::ToolCall(acp::ToolCall { - id: acp::ToolCallId("test".into()), - label: "Label".into(), - kind: acp::ToolKind::Edit, - status: acp::ToolCallStatus::Completed, - content: vec![acp::ToolCallContent::Diff { - diff: acp::Diff { - path: "/test/test.txt".into(), - old_text: None, - new_text: "foo".into(), - }, - }], - locations: vec![], - raw_input: None, - }), - cx, - ) - }) - .unwrap() - .unwrap(); - Ok(()) - } - .boxed_local() - } - })); - - let thread = connection - .new_thread(project, Path::new(path!("/test")), &mut cx.to_async()) - .await - .unwrap(); - cx.update(|cx| thread.update(cx, |thread, cx| thread.send(vec!["Hi".into()], cx))) - .await - .unwrap(); - - assert!(cx.read(|cx| !thread.read(cx).has_pending_edit_tool_calls())); - } - async fn run_until_first_tool_call( thread: &Entity, cx: &mut TestAppContext, @@ -1670,108 +1672,140 @@ mod tests { } } - #[derive(Clone, Default)] - struct FakeAgentConnection { - auth_methods: Vec, - sessions: Arc>>>, + pub fn fake_acp_thread( + project: Entity, + cx: &mut TestAppContext, + ) -> (Entity, Entity) { + let (stdin_tx, stdin_rx) = async_pipe::pipe(); + let (stdout_tx, stdout_rx) = async_pipe::pipe(); + + let thread = cx.new(|cx| { + let foreground_executor = cx.foreground_executor().clone(); + let (connection, io_fut) = acp::AgentConnection::connect_to_agent( + AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()), + stdin_tx, + stdout_rx, + move |fut| { + foreground_executor.spawn(fut).detach(); + }, + ); + + let io_task = cx.background_spawn({ + async move { + io_fut.await.log_err(); + Ok(()) + } + }); + AcpThread::new(connection, "Test".into(), Some(io_task), project, cx) + }); + let agent = cx.update(|cx| cx.new(|cx| FakeAcpServer::new(stdin_rx, stdout_tx, cx))); + (thread, agent) + } + + pub struct FakeAcpServer { + connection: acp::ClientConnection, + + _io_task: Task<()>, on_user_message: Option< Rc< dyn Fn( - acp::PromptRequest, - WeakEntity, - AsyncApp, - ) -> LocalBoxFuture<'static, Result<()>> - + 'static, + acp::SendUserMessageParams, + Entity, + AsyncApp, + ) -> LocalBoxFuture<'static, Result<(), acp::Error>>, >, >, } - impl FakeAgentConnection { - fn new() -> Self { - Self { - auth_methods: Vec::new(), - on_user_message: None, - sessions: Arc::default(), + #[derive(Clone)] + struct FakeAgent { + server: Entity, + cx: AsyncApp, + } + + impl acp::Agent for FakeAgent { + async fn initialize( + &self, + params: acp::InitializeParams, + ) -> Result { + Ok(acp::InitializeResponse { + protocol_version: params.protocol_version, + is_authenticated: true, + }) + } + + async fn authenticate(&self) -> Result<(), acp::Error> { + Ok(()) + } + + async fn cancel_send_message(&self) -> Result<(), acp::Error> { + Ok(()) + } + + async fn send_user_message( + &self, + request: acp::SendUserMessageParams, + ) -> Result<(), acp::Error> { + let mut cx = self.cx.clone(); + let handler = self + .server + .update(&mut cx, |server, _| server.on_user_message.clone()) + .ok() + .flatten(); + if let Some(handler) = handler { + handler(request, self.server.clone(), self.cx.clone()).await + } else { + Err(anyhow::anyhow!("No handler for on_user_message").into()) } } - - #[expect(unused)] - fn with_auth_methods(mut self, auth_methods: Vec) -> Self { - self.auth_methods = auth_methods; - self - } - - fn on_user_message( - mut self, - handler: impl Fn( - acp::PromptRequest, - WeakEntity, - AsyncApp, - ) -> LocalBoxFuture<'static, Result<()>> - + 'static, - ) -> Self { - self.on_user_message.replace(Rc::new(handler)); - self - } } - impl AgentConnection for FakeAgentConnection { - fn auth_methods(&self) -> &[acp::AuthMethod] { - &self.auth_methods - } + impl FakeAcpServer { + fn new(stdin: PipeReader, stdout: PipeWriter, cx: &Context) -> Self { + let agent = FakeAgent { + server: cx.entity(), + cx: cx.to_async(), + }; + let foreground_executor = cx.foreground_executor().clone(); - fn new_thread( - self: Rc, - project: Entity, - _cwd: &Path, - cx: &mut gpui::AsyncApp, - ) -> Task>> { - let session_id = acp::SessionId( - rand::thread_rng() - .sample_iter(&rand::distributions::Alphanumeric) - .take(7) - .map(char::from) - .collect::() - .into(), + let (connection, io_fut) = acp::ClientConnection::connect_to_client( + agent.clone(), + stdout, + stdin, + move |fut| { + foreground_executor.spawn(fut).detach(); + }, ); - let thread = cx - .new(|cx| AcpThread::new("Test", self.clone(), project, session_id.clone(), cx)) - .unwrap(); - self.sessions.lock().insert(session_id, thread.downgrade()); - Task::ready(Ok(thread)) - } - - fn authenticate(&self, method: acp::AuthMethodId, _cx: &mut App) -> Task> { - if self.auth_methods().iter().any(|m| m.id == method) { - Task::ready(Ok(())) - } else { - Task::ready(Err(anyhow!("Invalid Auth Method"))) + FakeAcpServer { + connection: connection, + on_user_message: None, + _io_task: cx.background_spawn(async move { + io_fut.await.log_err(); + }), } } - fn prompt(&self, params: acp::PromptRequest, cx: &mut App) -> Task> { - let sessions = self.sessions.lock(); - let thread = sessions.get(¶ms.session_id).unwrap(); - if let Some(handler) = &self.on_user_message { - let handler = handler.clone(); - let thread = thread.clone(); - cx.spawn(async move |cx| handler(params, thread, cx.clone()).await) - } else { - Task::ready(Ok(())) - } + fn on_user_message( + &mut self, + handler: impl for<'a> Fn(acp::SendUserMessageParams, Entity, AsyncApp) -> F + + 'static, + ) where + F: Future> + 'static, + { + self.on_user_message + .replace(Rc::new(move |request, server, cx| { + handler(request, server, cx).boxed_local() + })); } - fn cancel(&self, session_id: &acp::SessionId, cx: &mut App) { - let sessions = self.sessions.lock(); - let thread = sessions.get(&session_id).unwrap().clone(); - - cx.spawn(async move |cx| { - thread - .update(cx, |thread, cx| thread.cancel(cx)) - .unwrap() - .await - }) - .detach(); + fn send_to_zed( + &self, + message: T, + ) -> BoxedLocal> { + self.connection + .request(message) + .map(|f| f.map_err(|err| anyhow!(err))) + .boxed_local() } } } diff --git a/crates/acp_thread/src/connection.rs b/crates/acp_thread/src/connection.rs index 929500a67b..7c0ba4f41c 100644 --- a/crates/acp_thread/src/connection.rs +++ b/crates/acp_thread/src/connection.rs @@ -1,36 +1,20 @@ -use std::{error::Error, fmt, path::Path, rc::Rc}; - -use agent_client_protocol::{self as acp}; +use agentic_coding_protocol as acp; use anyhow::Result; -use gpui::{AsyncApp, Entity, Task}; -use project::Project; -use ui::App; - -use crate::AcpThread; +use futures::future::{FutureExt as _, LocalBoxFuture}; pub trait AgentConnection { - fn new_thread( - self: Rc, - project: Entity, - cwd: &Path, - cx: &mut AsyncApp, - ) -> Task>>; - - fn auth_methods(&self) -> &[acp::AuthMethod]; - - fn authenticate(&self, method: acp::AuthMethodId, cx: &mut App) -> Task>; - - fn prompt(&self, params: acp::PromptRequest, cx: &mut App) -> Task>; - - fn cancel(&self, session_id: &acp::SessionId, cx: &mut App); + fn request_any( + &self, + params: acp::AnyAgentRequest, + ) -> LocalBoxFuture<'static, Result>; } -#[derive(Debug)] -pub struct AuthRequired; - -impl Error for AuthRequired {} -impl fmt::Display for AuthRequired { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "AuthRequired") +impl AgentConnection for acp::AgentConnection { + fn request_any( + &self, + params: acp::AnyAgentRequest, + ) -> LocalBoxFuture<'static, Result> { + let task = self.request_any(params); + async move { Ok(task.await?) }.boxed_local() } } diff --git a/crates/agent/Cargo.toml b/crates/agent/Cargo.toml index 7bc0e82cad..135363ab65 100644 --- a/crates/agent/Cargo.toml +++ b/crates/agent/Cargo.toml @@ -25,7 +25,6 @@ assistant_context.workspace = true assistant_tool.workspace = true chrono.workspace = true client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true component.workspace = true context_server.workspace = true @@ -36,9 +35,9 @@ futures.workspace = true git.workspace = true gpui.workspace = true heed.workspace = true -http_client.workspace = true icons.workspace = true indoc.workspace = true +http_client.workspace = true itertools.workspace = true language.workspace = true language_model.workspace = true @@ -47,6 +46,7 @@ paths.workspace = true postage.workspace = true project.workspace = true prompt_store.workspace = true +proto.workspace = true ref-cast.workspace = true rope.workspace = true schemars.workspace = true @@ -63,6 +63,7 @@ time.workspace = true util.workspace = true uuid.workspace = true workspace-hack.workspace = true +zed_llm_client.workspace = true zstd.workspace = true [dev-dependencies] diff --git a/crates/agent/src/context.rs b/crates/agent/src/context.rs index cd366b8308..ddd13de491 100644 --- a/crates/agent/src/context.rs +++ b/crates/agent/src/context.rs @@ -42,8 +42,8 @@ impl ContextKind { ContextKind::Symbol => IconName::Code, ContextKind::Selection => IconName::Context, ContextKind::FetchedUrl => IconName::Globe, - ContextKind::Thread => IconName::Thread, - ContextKind::TextThread => IconName::TextThread, + ContextKind::Thread => IconName::MessageBubbles, + ContextKind::TextThread => IconName::MessageBubbles, ContextKind::Rules => RULES_ICON, ContextKind::Image => IconName::Image, } diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 8558dd528d..1b8aa012a1 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -13,7 +13,6 @@ use anyhow::{Result, anyhow}; use assistant_tool::{ActionLog, AnyToolCard, Tool, ToolWorkingSet}; use chrono::{DateTime, Utc}; use client::{ModelRequestUsage, RequestUsage}; -use cloud_llm_client::{CompletionIntent, CompletionRequestStatus, Plan, UsageLimit}; use collections::HashMap; use feature_flags::{self, FeatureFlagAppExt}; use futures::{FutureExt, StreamExt as _, future::Shared}; @@ -37,6 +36,7 @@ use project::{ git_store::{GitStore, GitStoreCheckpoint, RepositoryState}, }; use prompt_store::{ModelContext, PromptBuilder}; +use proto::Plan; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use settings::Settings; @@ -49,6 +49,7 @@ use std::{ use thiserror::Error; use util::{ResultExt as _, post_inc}; use uuid::Uuid; +use zed_llm_client::{CompletionIntent, CompletionRequestStatus, UsageLimit}; const MAX_RETRY_ATTEMPTS: u8 = 4; const BASE_RETRY_DELAY: Duration = Duration::from_secs(5); @@ -1680,7 +1681,7 @@ impl Thread { let completion_mode = request .mode - .unwrap_or(cloud_llm_client::CompletionMode::Normal); + .unwrap_or(zed_llm_client::CompletionMode::Normal); self.last_received_chunk_at = Some(Instant::now()); @@ -3254,10 +3255,8 @@ impl Thread { } fn update_model_request_usage(&self, amount: u32, limit: UsageLimit, cx: &mut Context) { - self.project - .read(cx) - .user_store() - .update(cx, |user_store, cx| { + self.project.update(cx, |project, cx| { + project.user_store().update(cx, |user_store, cx| { user_store.update_model_request_usage( ModelRequestUsage(RequestUsage { amount: amount as i32, @@ -3265,7 +3264,8 @@ impl Thread { }), cx, ) - }); + }) + }); } pub fn deny_tool_use( diff --git a/crates/agent_servers/Cargo.toml b/crates/agent_servers/Cargo.toml index 81c97c8aa6..4714245b94 100644 --- a/crates/agent_servers/Cargo.toml +++ b/crates/agent_servers/Cargo.toml @@ -18,19 +18,16 @@ doctest = false [dependencies] acp_thread.workspace = true -agent-client-protocol.workspace = true agentic-coding-protocol.workspace = true anyhow.workspace = true collections.workspace = true context_server.workspace = true futures.workspace = true gpui.workspace = true -indoc.workspace = true itertools.workspace = true log.workspace = true paths.workspace = true project.workspace = true -rand.workspace = true schemars.workspace = true serde.workspace = true serde_json.workspace = true @@ -38,7 +35,6 @@ settings.workspace = true smol.workspace = true strum.workspace = true tempfile.workspace = true -thiserror.workspace = true ui.workspace = true util.workspace = true uuid.workspace = true diff --git a/crates/agent_servers/src/acp.rs b/crates/agent_servers/src/acp.rs deleted file mode 100644 index 00e3e3df50..0000000000 --- a/crates/agent_servers/src/acp.rs +++ /dev/null @@ -1,34 +0,0 @@ -use std::{path::Path, rc::Rc}; - -use crate::AgentServerCommand; -use acp_thread::AgentConnection; -use anyhow::Result; -use gpui::AsyncApp; -use thiserror::Error; - -mod v0; -mod v1; - -#[derive(Debug, Error)] -#[error("Unsupported version")] -pub struct UnsupportedVersion; - -pub async fn connect( - server_name: &'static str, - command: AgentServerCommand, - root_dir: &Path, - cx: &mut AsyncApp, -) -> Result> { - let conn = v1::AcpConnection::stdio(server_name, command.clone(), &root_dir, cx).await; - - match conn { - Ok(conn) => Ok(Rc::new(conn) as _), - Err(err) if err.is::() => { - // Consider re-using initialize response and subprocess when adding another version here - let conn: Rc = - Rc::new(v0::AcpConnection::stdio(server_name, command, &root_dir, cx).await?); - Ok(conn) - } - Err(err) => Err(err), - } -} diff --git a/crates/agent_servers/src/acp/v0.rs b/crates/agent_servers/src/acp/v0.rs deleted file mode 100644 index 6839ff2462..0000000000 --- a/crates/agent_servers/src/acp/v0.rs +++ /dev/null @@ -1,501 +0,0 @@ -// Translates old acp agents into the new schema -use agent_client_protocol as acp; -use agentic_coding_protocol::{self as acp_old, AgentRequest as _}; -use anyhow::{Context as _, Result, anyhow}; -use futures::channel::oneshot; -use gpui::{AppContext as _, AsyncApp, Entity, Task, WeakEntity}; -use project::Project; -use std::{cell::RefCell, path::Path, rc::Rc}; -use ui::App; -use util::ResultExt as _; - -use crate::AgentServerCommand; -use acp_thread::{AcpThread, AgentConnection, AuthRequired}; - -#[derive(Clone)] -struct OldAcpClientDelegate { - thread: Rc>>, - cx: AsyncApp, - next_tool_call_id: Rc>, - // sent_buffer_versions: HashMap, HashMap>, -} - -impl OldAcpClientDelegate { - fn new(thread: Rc>>, cx: AsyncApp) -> Self { - Self { - thread, - cx, - next_tool_call_id: Rc::new(RefCell::new(0)), - } - } -} - -impl acp_old::Client for OldAcpClientDelegate { - async fn stream_assistant_message_chunk( - &self, - params: acp_old::StreamAssistantMessageChunkParams, - ) -> Result<(), acp_old::Error> { - let cx = &mut self.cx.clone(); - - cx.update(|cx| { - self.thread - .borrow() - .update(cx, |thread, cx| match params.chunk { - acp_old::AssistantMessageChunk::Text { text } => { - thread.push_assistant_content_block(text.into(), false, cx) - } - acp_old::AssistantMessageChunk::Thought { thought } => { - thread.push_assistant_content_block(thought.into(), true, cx) - } - }) - .log_err(); - })?; - - Ok(()) - } - - async fn request_tool_call_confirmation( - &self, - request: acp_old::RequestToolCallConfirmationParams, - ) -> Result { - let cx = &mut self.cx.clone(); - - let old_acp_id = *self.next_tool_call_id.borrow() + 1; - self.next_tool_call_id.replace(old_acp_id); - - let tool_call = into_new_tool_call( - acp::ToolCallId(old_acp_id.to_string().into()), - request.tool_call, - ); - - let mut options = match request.confirmation { - acp_old::ToolCallConfirmation::Edit { .. } => vec![( - acp_old::ToolCallConfirmationOutcome::AlwaysAllow, - acp::PermissionOptionKind::AllowAlways, - "Always Allow Edits".to_string(), - )], - acp_old::ToolCallConfirmation::Execute { root_command, .. } => vec![( - acp_old::ToolCallConfirmationOutcome::AlwaysAllow, - acp::PermissionOptionKind::AllowAlways, - format!("Always Allow {}", root_command), - )], - acp_old::ToolCallConfirmation::Mcp { - server_name, - tool_name, - .. - } => vec![ - ( - acp_old::ToolCallConfirmationOutcome::AlwaysAllowMcpServer, - acp::PermissionOptionKind::AllowAlways, - format!("Always Allow {}", server_name), - ), - ( - acp_old::ToolCallConfirmationOutcome::AlwaysAllowTool, - acp::PermissionOptionKind::AllowAlways, - format!("Always Allow {}", tool_name), - ), - ], - acp_old::ToolCallConfirmation::Fetch { .. } => vec![( - acp_old::ToolCallConfirmationOutcome::AlwaysAllow, - acp::PermissionOptionKind::AllowAlways, - "Always Allow".to_string(), - )], - acp_old::ToolCallConfirmation::Other { .. } => vec![( - acp_old::ToolCallConfirmationOutcome::AlwaysAllow, - acp::PermissionOptionKind::AllowAlways, - "Always Allow".to_string(), - )], - }; - - options.extend([ - ( - acp_old::ToolCallConfirmationOutcome::Allow, - acp::PermissionOptionKind::AllowOnce, - "Allow".to_string(), - ), - ( - acp_old::ToolCallConfirmationOutcome::Reject, - acp::PermissionOptionKind::RejectOnce, - "Reject".to_string(), - ), - ]); - - let mut outcomes = Vec::with_capacity(options.len()); - let mut acp_options = Vec::with_capacity(options.len()); - - for (index, (outcome, kind, label)) in options.into_iter().enumerate() { - outcomes.push(outcome); - acp_options.push(acp::PermissionOption { - id: acp::PermissionOptionId(index.to_string().into()), - label, - kind, - }) - } - - let response = cx - .update(|cx| { - self.thread.borrow().update(cx, |thread, cx| { - thread.request_tool_call_permission(tool_call, acp_options, cx) - }) - })? - .context("Failed to update thread")? - .await; - - let outcome = match response { - Ok(option_id) => outcomes[option_id.0.parse::().unwrap_or(0)], - Err(oneshot::Canceled) => acp_old::ToolCallConfirmationOutcome::Cancel, - }; - - Ok(acp_old::RequestToolCallConfirmationResponse { - id: acp_old::ToolCallId(old_acp_id), - outcome: outcome, - }) - } - - async fn push_tool_call( - &self, - request: acp_old::PushToolCallParams, - ) -> Result { - let cx = &mut self.cx.clone(); - - let old_acp_id = *self.next_tool_call_id.borrow() + 1; - self.next_tool_call_id.replace(old_acp_id); - - cx.update(|cx| { - self.thread.borrow().update(cx, |thread, cx| { - thread.upsert_tool_call( - into_new_tool_call(acp::ToolCallId(old_acp_id.to_string().into()), request), - cx, - ) - }) - })? - .context("Failed to update thread")?; - - Ok(acp_old::PushToolCallResponse { - id: acp_old::ToolCallId(old_acp_id), - }) - } - - async fn update_tool_call( - &self, - request: acp_old::UpdateToolCallParams, - ) -> Result<(), acp_old::Error> { - let cx = &mut self.cx.clone(); - - cx.update(|cx| { - self.thread.borrow().update(cx, |thread, cx| { - thread.update_tool_call( - acp::ToolCallUpdate { - id: acp::ToolCallId(request.tool_call_id.0.to_string().into()), - fields: acp::ToolCallUpdateFields { - status: Some(into_new_tool_call_status(request.status)), - content: Some( - request - .content - .into_iter() - .map(into_new_tool_call_content) - .collect::>(), - ), - ..Default::default() - }, - }, - cx, - ) - }) - })? - .context("Failed to update thread")??; - - Ok(()) - } - - async fn update_plan(&self, request: acp_old::UpdatePlanParams) -> Result<(), acp_old::Error> { - let cx = &mut self.cx.clone(); - - cx.update(|cx| { - self.thread.borrow().update(cx, |thread, cx| { - thread.update_plan( - acp::Plan { - entries: request - .entries - .into_iter() - .map(into_new_plan_entry) - .collect(), - }, - cx, - ) - }) - })? - .context("Failed to update thread")?; - - Ok(()) - } - - async fn read_text_file( - &self, - acp_old::ReadTextFileParams { path, line, limit }: acp_old::ReadTextFileParams, - ) -> Result { - let content = self - .cx - .update(|cx| { - self.thread.borrow().update(cx, |thread, cx| { - thread.read_text_file(path, line, limit, false, cx) - }) - })? - .context("Failed to update thread")? - .await?; - Ok(acp_old::ReadTextFileResponse { content }) - } - - async fn write_text_file( - &self, - acp_old::WriteTextFileParams { path, content }: acp_old::WriteTextFileParams, - ) -> Result<(), acp_old::Error> { - self.cx - .update(|cx| { - self.thread - .borrow() - .update(cx, |thread, cx| thread.write_text_file(path, content, cx)) - })? - .context("Failed to update thread")? - .await?; - - Ok(()) - } -} - -fn into_new_tool_call(id: acp::ToolCallId, request: acp_old::PushToolCallParams) -> acp::ToolCall { - acp::ToolCall { - id: id, - label: request.label, - kind: acp_kind_from_old_icon(request.icon), - status: acp::ToolCallStatus::InProgress, - content: request - .content - .into_iter() - .map(into_new_tool_call_content) - .collect(), - locations: request - .locations - .into_iter() - .map(into_new_tool_call_location) - .collect(), - raw_input: None, - } -} - -fn acp_kind_from_old_icon(icon: acp_old::Icon) -> acp::ToolKind { - match icon { - acp_old::Icon::FileSearch => acp::ToolKind::Search, - acp_old::Icon::Folder => acp::ToolKind::Search, - acp_old::Icon::Globe => acp::ToolKind::Search, - acp_old::Icon::Hammer => acp::ToolKind::Other, - acp_old::Icon::LightBulb => acp::ToolKind::Think, - acp_old::Icon::Pencil => acp::ToolKind::Edit, - acp_old::Icon::Regex => acp::ToolKind::Search, - acp_old::Icon::Terminal => acp::ToolKind::Execute, - } -} - -fn into_new_tool_call_status(status: acp_old::ToolCallStatus) -> acp::ToolCallStatus { - match status { - acp_old::ToolCallStatus::Running => acp::ToolCallStatus::InProgress, - acp_old::ToolCallStatus::Finished => acp::ToolCallStatus::Completed, - acp_old::ToolCallStatus::Error => acp::ToolCallStatus::Failed, - } -} - -fn into_new_tool_call_content(content: acp_old::ToolCallContent) -> acp::ToolCallContent { - match content { - acp_old::ToolCallContent::Markdown { markdown } => markdown.into(), - acp_old::ToolCallContent::Diff { diff } => acp::ToolCallContent::Diff { - diff: into_new_diff(diff), - }, - } -} - -fn into_new_diff(diff: acp_old::Diff) -> acp::Diff { - acp::Diff { - path: diff.path, - old_text: diff.old_text, - new_text: diff.new_text, - } -} - -fn into_new_tool_call_location(location: acp_old::ToolCallLocation) -> acp::ToolCallLocation { - acp::ToolCallLocation { - path: location.path, - line: location.line, - } -} - -fn into_new_plan_entry(entry: acp_old::PlanEntry) -> acp::PlanEntry { - acp::PlanEntry { - content: entry.content, - priority: into_new_plan_priority(entry.priority), - status: into_new_plan_status(entry.status), - } -} - -fn into_new_plan_priority(priority: acp_old::PlanEntryPriority) -> acp::PlanEntryPriority { - match priority { - acp_old::PlanEntryPriority::Low => acp::PlanEntryPriority::Low, - acp_old::PlanEntryPriority::Medium => acp::PlanEntryPriority::Medium, - acp_old::PlanEntryPriority::High => acp::PlanEntryPriority::High, - } -} - -fn into_new_plan_status(status: acp_old::PlanEntryStatus) -> acp::PlanEntryStatus { - match status { - acp_old::PlanEntryStatus::Pending => acp::PlanEntryStatus::Pending, - acp_old::PlanEntryStatus::InProgress => acp::PlanEntryStatus::InProgress, - acp_old::PlanEntryStatus::Completed => acp::PlanEntryStatus::Completed, - } -} - -pub struct AcpConnection { - pub name: &'static str, - pub connection: acp_old::AgentConnection, - pub _child_status: Task>, - pub current_thread: Rc>>, -} - -impl AcpConnection { - pub fn stdio( - name: &'static str, - command: AgentServerCommand, - root_dir: &Path, - cx: &mut AsyncApp, - ) -> Task> { - let root_dir = root_dir.to_path_buf(); - - cx.spawn(async move |cx| { - let mut child = util::command::new_smol_command(&command.path) - .args(command.args.iter()) - .current_dir(root_dir) - .stdin(std::process::Stdio::piped()) - .stdout(std::process::Stdio::piped()) - .stderr(std::process::Stdio::inherit()) - .kill_on_drop(true) - .spawn()?; - - let stdin = child.stdin.take().unwrap(); - let stdout = child.stdout.take().unwrap(); - - let foreground_executor = cx.foreground_executor().clone(); - - let thread_rc = Rc::new(RefCell::new(WeakEntity::new_invalid())); - - let (connection, io_fut) = acp_old::AgentConnection::connect_to_agent( - OldAcpClientDelegate::new(thread_rc.clone(), cx.clone()), - stdin, - stdout, - move |fut| foreground_executor.spawn(fut).detach(), - ); - - let io_task = cx.background_spawn(async move { - io_fut.await.log_err(); - }); - - let child_status = cx.background_spawn(async move { - let result = match child.status().await { - Err(e) => Err(anyhow!(e)), - Ok(result) if result.success() => Ok(()), - Ok(result) => Err(anyhow!(result)), - }; - drop(io_task); - result - }); - - Ok(Self { - name, - connection, - _child_status: child_status, - current_thread: thread_rc, - }) - }) - } -} - -impl AgentConnection for AcpConnection { - fn new_thread( - self: Rc, - project: Entity, - _cwd: &Path, - cx: &mut AsyncApp, - ) -> Task>> { - let task = self.connection.request_any( - acp_old::InitializeParams { - protocol_version: acp_old::ProtocolVersion::latest(), - } - .into_any(), - ); - let current_thread = self.current_thread.clone(); - cx.spawn(async move |cx| { - let result = task.await?; - let result = acp_old::InitializeParams::response_from_any(result)?; - - if !result.is_authenticated { - anyhow::bail!(AuthRequired) - } - - cx.update(|cx| { - let thread = cx.new(|cx| { - let session_id = acp::SessionId("acp-old-no-id".into()); - AcpThread::new(self.name, self.clone(), project, session_id, cx) - }); - current_thread.replace(thread.downgrade()); - thread - }) - }) - } - - fn auth_methods(&self) -> &[acp::AuthMethod] { - &[] - } - - fn authenticate(&self, _method_id: acp::AuthMethodId, cx: &mut App) -> Task> { - let task = self - .connection - .request_any(acp_old::AuthenticateParams.into_any()); - cx.foreground_executor().spawn(async move { - task.await?; - Ok(()) - }) - } - - fn prompt(&self, params: acp::PromptRequest, cx: &mut App) -> Task> { - let chunks = params - .prompt - .into_iter() - .filter_map(|block| match block { - acp::ContentBlock::Text(text) => { - Some(acp_old::UserMessageChunk::Text { text: text.text }) - } - acp::ContentBlock::ResourceLink(link) => Some(acp_old::UserMessageChunk::Path { - path: link.uri.into(), - }), - _ => None, - }) - .collect(); - - let task = self - .connection - .request_any(acp_old::SendUserMessageParams { chunks }.into_any()); - cx.foreground_executor().spawn(async move { - task.await?; - anyhow::Ok(()) - }) - } - - fn cancel(&self, _session_id: &acp::SessionId, cx: &mut App) { - let task = self - .connection - .request_any(acp_old::CancelSendMessageParams.into_any()); - cx.foreground_executor() - .spawn(async move { - task.await?; - anyhow::Ok(()) - }) - .detach_and_log_err(cx) - } -} diff --git a/crates/agent_servers/src/acp/v1.rs b/crates/agent_servers/src/acp/v1.rs deleted file mode 100644 index 9e2193ce18..0000000000 --- a/crates/agent_servers/src/acp/v1.rs +++ /dev/null @@ -1,254 +0,0 @@ -use agent_client_protocol::{self as acp, Agent as _}; -use collections::HashMap; -use futures::channel::oneshot; -use project::Project; -use std::cell::RefCell; -use std::path::Path; -use std::rc::Rc; - -use anyhow::{Context as _, Result}; -use gpui::{App, AppContext as _, AsyncApp, Entity, Task, WeakEntity}; - -use crate::{AgentServerCommand, acp::UnsupportedVersion}; -use acp_thread::{AcpThread, AgentConnection, AuthRequired}; - -pub struct AcpConnection { - server_name: &'static str, - connection: Rc, - sessions: Rc>>, - auth_methods: Vec, - _io_task: Task>, - _child: smol::process::Child, -} - -pub struct AcpSession { - thread: WeakEntity, -} - -const MINIMUM_SUPPORTED_VERSION: acp::ProtocolVersion = acp::V1; - -impl AcpConnection { - pub async fn stdio( - server_name: &'static str, - command: AgentServerCommand, - root_dir: &Path, - cx: &mut AsyncApp, - ) -> Result { - let mut child = util::command::new_smol_command(&command.path) - .args(command.args.iter().map(|arg| arg.as_str())) - .envs(command.env.iter().flatten()) - .current_dir(root_dir) - .stdin(std::process::Stdio::piped()) - .stdout(std::process::Stdio::piped()) - .stderr(std::process::Stdio::inherit()) - .kill_on_drop(true) - .spawn()?; - - let stdout = child.stdout.take().expect("Failed to take stdout"); - let stdin = child.stdin.take().expect("Failed to take stdin"); - - let sessions = Rc::new(RefCell::new(HashMap::default())); - - let client = ClientDelegate { - sessions: sessions.clone(), - cx: cx.clone(), - }; - let (connection, io_task) = acp::ClientSideConnection::new(client, stdin, stdout, { - let foreground_executor = cx.foreground_executor().clone(); - move |fut| { - foreground_executor.spawn(fut).detach(); - } - }); - - let io_task = cx.background_spawn(io_task); - - let response = connection - .initialize(acp::InitializeRequest { - protocol_version: acp::VERSION, - client_capabilities: acp::ClientCapabilities { - fs: acp::FileSystemCapability { - read_text_file: true, - write_text_file: true, - }, - }, - }) - .await?; - - if response.protocol_version < MINIMUM_SUPPORTED_VERSION { - return Err(UnsupportedVersion.into()); - } - - Ok(Self { - auth_methods: response.auth_methods, - connection: connection.into(), - server_name, - sessions, - _child: child, - _io_task: io_task, - }) - } -} - -impl AgentConnection for AcpConnection { - fn new_thread( - self: Rc, - project: Entity, - cwd: &Path, - cx: &mut AsyncApp, - ) -> Task>> { - let conn = self.connection.clone(); - let sessions = self.sessions.clone(); - let cwd = cwd.to_path_buf(); - cx.spawn(async move |cx| { - let response = conn - .new_session(acp::NewSessionRequest { - mcp_servers: vec![], - cwd, - }) - .await?; - - let Some(session_id) = response.session_id else { - anyhow::bail!(AuthRequired); - }; - - let thread = cx.new(|cx| { - AcpThread::new( - self.server_name, - self.clone(), - project, - session_id.clone(), - cx, - ) - })?; - - let session = AcpSession { - thread: thread.downgrade(), - }; - sessions.borrow_mut().insert(session_id, session); - - Ok(thread) - }) - } - - fn auth_methods(&self) -> &[acp::AuthMethod] { - &self.auth_methods - } - - fn authenticate(&self, method_id: acp::AuthMethodId, cx: &mut App) -> Task> { - let conn = self.connection.clone(); - cx.foreground_executor().spawn(async move { - let result = conn - .authenticate(acp::AuthenticateRequest { - method_id: method_id.clone(), - }) - .await?; - - Ok(result) - }) - } - - fn prompt(&self, params: acp::PromptRequest, cx: &mut App) -> Task> { - let conn = self.connection.clone(); - cx.foreground_executor() - .spawn(async move { Ok(conn.prompt(params).await?) }) - } - - fn cancel(&self, session_id: &acp::SessionId, cx: &mut App) { - let conn = self.connection.clone(); - let params = acp::CancelledNotification { - session_id: session_id.clone(), - }; - cx.foreground_executor() - .spawn(async move { conn.cancelled(params).await }) - .detach(); - } -} - -struct ClientDelegate { - sessions: Rc>>, - cx: AsyncApp, -} - -impl acp::Client for ClientDelegate { - async fn request_permission( - &self, - arguments: acp::RequestPermissionRequest, - ) -> Result { - let cx = &mut self.cx.clone(); - let rx = self - .sessions - .borrow() - .get(&arguments.session_id) - .context("Failed to get session")? - .thread - .update(cx, |thread, cx| { - thread.request_tool_call_permission(arguments.tool_call, arguments.options, cx) - })?; - - let result = rx.await; - - let outcome = match result { - Ok(option) => acp::RequestPermissionOutcome::Selected { option_id: option }, - Err(oneshot::Canceled) => acp::RequestPermissionOutcome::Cancelled, - }; - - Ok(acp::RequestPermissionResponse { outcome }) - } - - async fn write_text_file( - &self, - arguments: acp::WriteTextFileRequest, - ) -> Result<(), acp::Error> { - let cx = &mut self.cx.clone(); - let task = self - .sessions - .borrow() - .get(&arguments.session_id) - .context("Failed to get session")? - .thread - .update(cx, |thread, cx| { - thread.write_text_file(arguments.path, arguments.content, cx) - })?; - - task.await?; - - Ok(()) - } - - async fn read_text_file( - &self, - arguments: acp::ReadTextFileRequest, - ) -> Result { - let cx = &mut self.cx.clone(); - let task = self - .sessions - .borrow() - .get(&arguments.session_id) - .context("Failed to get session")? - .thread - .update(cx, |thread, cx| { - thread.read_text_file(arguments.path, arguments.line, arguments.limit, false, cx) - })?; - - let content = task.await?; - - Ok(acp::ReadTextFileResponse { content }) - } - - async fn session_notification( - &self, - notification: acp::SessionNotification, - ) -> Result<(), acp::Error> { - let cx = &mut self.cx.clone(); - let sessions = self.sessions.borrow(); - let session = sessions - .get(¬ification.session_id) - .context("Failed to get session")?; - - session.thread.update(cx, |thread, cx| { - thread.handle_session_update(notification.update, cx) - })??; - - Ok(()) - } -} diff --git a/crates/agent_servers/src/agent_servers.rs b/crates/agent_servers/src/agent_servers.rs index ec69290206..6d9c77f296 100644 --- a/crates/agent_servers/src/agent_servers.rs +++ b/crates/agent_servers/src/agent_servers.rs @@ -1,7 +1,7 @@ -mod acp; mod claude; mod gemini; mod settings; +mod stdio_agent_server; #[cfg(test)] mod e2e_tests; @@ -9,8 +9,9 @@ mod e2e_tests; pub use claude::*; pub use gemini::*; pub use settings::*; +pub use stdio_agent_server::*; -use acp_thread::AgentConnection; +use acp_thread::AcpThread; use anyhow::Result; use collections::HashMap; use gpui::{App, AsyncApp, Entity, SharedString, Task}; @@ -19,7 +20,6 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use std::{ path::{Path, PathBuf}, - rc::Rc, sync::Arc, }; use util::ResultExt as _; @@ -33,13 +33,14 @@ pub trait AgentServer: Send { fn name(&self) -> &'static str; fn empty_state_headline(&self) -> &'static str; fn empty_state_message(&self) -> &'static str; + fn supports_always_allow(&self) -> bool; - fn connect( + fn new_thread( &self, root_dir: &Path, project: &Entity, cx: &mut App, - ) -> Task>>; + ) -> Task>>; } impl std::fmt::Debug for AgentServerCommand { diff --git a/crates/agent_servers/src/claude.rs b/crates/agent_servers/src/claude.rs index 9040b83085..835efbd655 100644 --- a/crates/agent_servers/src/claude.rs +++ b/crates/agent_servers/src/claude.rs @@ -1,35 +1,39 @@ mod mcp_server; -pub mod tools; +mod tools; use collections::HashMap; -use context_server::listener::McpServerTool; use project::Project; use settings::SettingsStore; use smol::process::Child; use std::cell::RefCell; use std::fmt::Display; use std::path::Path; +use std::pin::pin; use std::rc::Rc; use uuid::Uuid; -use agent_client_protocol as acp; +use agentic_coding_protocol::{ + self as acp, AnyAgentRequest, AnyAgentResult, Client, ProtocolVersion, + StreamAssistantMessageChunkParams, ToolCallContent, UpdateToolCallParams, +}; use anyhow::{Result, anyhow}; use futures::channel::oneshot; -use futures::{AsyncBufReadExt, AsyncWriteExt}; +use futures::future::LocalBoxFuture; +use futures::{AsyncBufReadExt, AsyncWriteExt, SinkExt}; use futures::{ AsyncRead, AsyncWrite, FutureExt, StreamExt, channel::mpsc::{self, UnboundedReceiver, UnboundedSender}, io::BufReader, select_biased, }; -use gpui::{App, AppContext, AsyncApp, Entity, Task, WeakEntity}; +use gpui::{App, AppContext, Entity, Task}; use serde::{Deserialize, Serialize}; use util::ResultExt; -use crate::claude::mcp_server::{ClaudeZedMcpServer, McpConfig}; +use crate::claude::mcp_server::ClaudeMcpServer; use crate::claude::tools::ClaudeTool; use crate::{AgentServer, AgentServerCommand, AllAgentServersSettings}; -use acp_thread::{AcpThread, AgentConnection}; +use acp_thread::{AcpClientDelegate, AcpThread, AgentConnection}; #[derive(Clone)] pub struct ClaudeCode; @@ -44,47 +48,36 @@ impl AgentServer for ClaudeCode { } fn empty_state_message(&self) -> &'static str { - "How can I help you today?" + "" } fn logo(&self) -> ui::IconName { ui::IconName::AiClaude } - fn connect( - &self, - _root_dir: &Path, - _project: &Entity, - _cx: &mut App, - ) -> Task>> { - let connection = ClaudeAgentConnection { - sessions: Default::default(), - }; - - Task::ready(Ok(Rc::new(connection) as _)) + fn supports_always_allow(&self) -> bool { + false } -} -struct ClaudeAgentConnection { - sessions: Rc>>, -} - -impl AgentConnection for ClaudeAgentConnection { fn new_thread( - self: Rc, - project: Entity, - cwd: &Path, - cx: &mut AsyncApp, + &self, + root_dir: &Path, + project: &Entity, + cx: &mut App, ) -> Task>> { - let cwd = cwd.to_owned(); + let project = project.clone(); + let root_dir = root_dir.to_path_buf(); + let title = self.name().into(); cx.spawn(async move |cx| { - let (mut thread_tx, thread_rx) = watch::channel(WeakEntity::new_invalid()); - let permission_mcp_server = ClaudeZedMcpServer::new(thread_rx.clone(), cx).await?; + let (mut delegate_tx, delegate_rx) = watch::channel(None); + let tool_id_map = Rc::new(RefCell::new(HashMap::default())); + + let mcp_server = ClaudeMcpServer::new(delegate_rx, tool_id_map.clone(), cx).await?; let mut mcp_servers = HashMap::default(); mcp_servers.insert( mcp_server::SERVER_NAME.to_string(), - permission_mcp_server.server_config()?, + mcp_server.server_config()?, ); let mcp_config = McpConfig { mcp_servers }; @@ -109,163 +102,192 @@ impl AgentConnection for ClaudeAgentConnection { let (incoming_message_tx, mut incoming_message_rx) = mpsc::unbounded(); let (outgoing_tx, outgoing_rx) = mpsc::unbounded(); + let (cancel_tx, mut cancel_rx) = mpsc::unbounded::>>(); - let session_id = acp::SessionId(Uuid::new_v4().to_string().into()); + let session_id = Uuid::new_v4(); log::trace!("Starting session with id: {}", session_id); - cx.background_spawn({ - let session_id = session_id.clone(); - async move { - let mut outgoing_rx = Some(outgoing_rx); + cx.background_spawn(async move { + let mut outgoing_rx = Some(outgoing_rx); + let mut mode = ClaudeSessionMode::Start; - let mut child = spawn_claude( - &command, - ClaudeSessionMode::Start, - session_id.clone(), - &mcp_config_path, - &cwd, - ) - .await?; + loop { + let mut child = + spawn_claude(&command, mode, session_id, &mcp_config_path, &root_dir) + .await?; + mode = ClaudeSessionMode::Resume; let pid = child.id(); log::trace!("Spawned (pid: {})", pid); - ClaudeAgentSession::handle_io( - outgoing_rx.take().unwrap(), - incoming_message_tx.clone(), - child.stdin.take().unwrap(), - child.stdout.take().unwrap(), - ) - .await?; + let mut io_fut = pin!( + ClaudeAgentConnection::handle_io( + outgoing_rx.take().unwrap(), + incoming_message_tx.clone(), + child.stdin.take().unwrap(), + child.stdout.take().unwrap(), + ) + .fuse() + ); + + select_biased! { + done_tx = cancel_rx.next() => { + if let Some(done_tx) = done_tx { + log::trace!("Interrupted (pid: {})", pid); + let result = send_interrupt(pid as i32); + outgoing_rx.replace(io_fut.await?); + done_tx.send(result).log_err(); + continue; + } + } + result = io_fut => { + result?; + } + } log::trace!("Stopped (pid: {})", pid); - - drop(mcp_config_path); - anyhow::Ok(()) + break; } + + drop(mcp_config_path); + anyhow::Ok(()) }) .detach(); - let end_turn_tx = Rc::new(RefCell::new(None)); - let handler_task = cx.spawn({ - let end_turn_tx = end_turn_tx.clone(); - let thread_rx = thread_rx.clone(); - async move |cx| { - while let Some(message) = incoming_message_rx.next().await { - ClaudeAgentSession::handle_message( - thread_rx.clone(), - message, - end_turn_tx.clone(), - cx, - ) - .await + cx.new(|cx| { + let end_turn_tx = Rc::new(RefCell::new(None)); + let delegate = AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()); + delegate_tx.send(Some(delegate.clone())).log_err(); + + let handler_task = cx.foreground_executor().spawn({ + let end_turn_tx = end_turn_tx.clone(); + let tool_id_map = tool_id_map.clone(); + let delegate = delegate.clone(); + async move { + while let Some(message) = incoming_message_rx.next().await { + ClaudeAgentConnection::handle_message( + delegate.clone(), + message, + end_turn_tx.clone(), + tool_id_map.clone(), + ) + .await + } } - } - }); + }); - let thread = cx.new(|cx| { - AcpThread::new("Claude Code", self.clone(), project, session_id.clone(), cx) - })?; + let mut connection = ClaudeAgentConnection { + delegate, + outgoing_tx, + end_turn_tx, + cancel_tx, + session_id, + _handler_task: handler_task, + _mcp_server: None, + }; - thread_tx.send(thread.downgrade())?; - - let session = ClaudeAgentSession { - outgoing_tx, - end_turn_tx, - _handler_task: handler_task, - _mcp_server: Some(permission_mcp_server), - }; - - self.sessions.borrow_mut().insert(session_id, session); - - Ok(thread) + connection._mcp_server = Some(mcp_server); + acp_thread::AcpThread::new(connection, title, None, project.clone(), cx) + }) }) } +} - fn auth_methods(&self) -> &[acp::AuthMethod] { - &[] - } +#[cfg(unix)] +fn send_interrupt(pid: libc::pid_t) -> anyhow::Result<()> { + let pid = nix::unistd::Pid::from_raw(pid); - fn authenticate(&self, _: acp::AuthMethodId, _cx: &mut App) -> Task> { - Task::ready(Err(anyhow!("Authentication not supported"))) - } + nix::sys::signal::kill(pid, nix::sys::signal::SIGINT) + .map_err(|e| anyhow!("Failed to interrupt process: {}", e)) +} - fn prompt(&self, params: acp::PromptRequest, cx: &mut App) -> Task> { - let sessions = self.sessions.borrow(); - let Some(session) = sessions.get(¶ms.session_id) else { - return Task::ready(Err(anyhow!( - "Attempted to send message to nonexistent session {}", - params.session_id - ))); - }; +#[cfg(windows)] +fn send_interrupt(_pid: i32) -> anyhow::Result<()> { + panic!("Cancel not implemented on Windows") +} - let (tx, rx) = oneshot::channel(); - session.end_turn_tx.borrow_mut().replace(tx); - - let mut content = String::new(); - for chunk in params.prompt { - match chunk { - acp::ContentBlock::Text(text_content) => { - content.push_str(&text_content.text); +impl AgentConnection for ClaudeAgentConnection { + /// Send a request to the agent and wait for a response. + fn request_any( + &self, + params: AnyAgentRequest, + ) -> LocalBoxFuture<'static, Result> { + let delegate = self.delegate.clone(); + let end_turn_tx = self.end_turn_tx.clone(); + let outgoing_tx = self.outgoing_tx.clone(); + let mut cancel_tx = self.cancel_tx.clone(); + let session_id = self.session_id; + async move { + match params { + // todo: consider sending an empty request so we get the init response? + AnyAgentRequest::InitializeParams(_) => Ok(AnyAgentResult::InitializeResponse( + acp::InitializeResponse { + is_authenticated: true, + protocol_version: ProtocolVersion::latest(), + }, + )), + AnyAgentRequest::AuthenticateParams(_) => { + Err(anyhow!("Authentication not supported")) } - acp::ContentBlock::ResourceLink(resource_link) => { - content.push_str(&format!("@{}", resource_link.uri)); + AnyAgentRequest::SendUserMessageParams(message) => { + delegate.clear_completed_plan_entries().await?; + + let (tx, rx) = oneshot::channel(); + end_turn_tx.borrow_mut().replace(tx); + let mut content = String::new(); + for chunk in message.chunks { + match chunk { + agentic_coding_protocol::UserMessageChunk::Text { text } => { + content.push_str(&text) + } + agentic_coding_protocol::UserMessageChunk::Path { path } => { + content.push_str(&format!("@{path:?}")) + } + } + } + outgoing_tx.unbounded_send(SdkMessage::User { + message: Message { + role: Role::User, + content: Content::UntaggedText(content), + id: None, + model: None, + stop_reason: None, + stop_sequence: None, + usage: None, + }, + session_id: Some(session_id), + })?; + rx.await??; + Ok(AnyAgentResult::SendUserMessageResponse( + acp::SendUserMessageResponse, + )) } - acp::ContentBlock::Audio(_) - | acp::ContentBlock::Image(_) - | acp::ContentBlock::Resource(_) => { - // TODO + AnyAgentRequest::CancelSendMessageParams(_) => { + let (done_tx, done_rx) = oneshot::channel(); + cancel_tx.send(done_tx).await?; + done_rx.await??; + + Ok(AnyAgentResult::CancelSendMessageResponse( + acp::CancelSendMessageResponse, + )) } } } - - if let Err(err) = session.outgoing_tx.unbounded_send(SdkMessage::User { - message: Message { - role: Role::User, - content: Content::UntaggedText(content), - id: None, - model: None, - stop_reason: None, - stop_sequence: None, - usage: None, - }, - session_id: Some(params.session_id.to_string()), - }) { - return Task::ready(Err(anyhow!(err))); - } - - cx.foreground_executor().spawn(async move { - rx.await??; - Ok(()) - }) - } - - fn cancel(&self, session_id: &acp::SessionId, _cx: &mut App) { - let sessions = self.sessions.borrow(); - let Some(session) = sessions.get(&session_id) else { - log::warn!("Attempted to cancel nonexistent session {}", session_id); - return; - }; - - session - .outgoing_tx - .unbounded_send(SdkMessage::new_interrupt_message()) - .log_err(); + .boxed_local() } } #[derive(Clone, Copy)] enum ClaudeSessionMode { Start, - #[expect(dead_code)] Resume, } async fn spawn_claude( command: &AgentServerCommand, mode: ClaudeSessionMode, - session_id: acp::SessionId, + session_id: Uuid, mcp_config_path: &Path, root_dir: &Path, ) -> Result { @@ -283,16 +305,10 @@ async fn spawn_claude( &format!( "mcp__{}__{}", mcp_server::SERVER_NAME, - mcp_server::PermissionTool::NAME, + mcp_server::PERMISSION_TOOL ), "--allowedTools", - &format!( - "mcp__{}__{},mcp__{}__{}", - mcp_server::SERVER_NAME, - mcp_server::EditTool::NAME, - mcp_server::SERVER_NAME, - mcp_server::ReadTool::NAME - ), + "mcp__zed__Read,mcp__zed__Edit", "--disallowedTools", "Read,Edit", ]) @@ -311,135 +327,105 @@ async fn spawn_claude( Ok(child) } -struct ClaudeAgentSession { +struct ClaudeAgentConnection { + delegate: AcpClientDelegate, + session_id: Uuid, outgoing_tx: UnboundedSender, end_turn_tx: Rc>>>>, - _mcp_server: Option, + cancel_tx: UnboundedSender>>, + _mcp_server: Option, _handler_task: Task<()>, } -impl ClaudeAgentSession { +impl ClaudeAgentConnection { async fn handle_message( - mut thread_rx: watch::Receiver>, + delegate: AcpClientDelegate, message: SdkMessage, end_turn_tx: Rc>>>>, - cx: &mut AsyncApp, + tool_id_map: Rc>>, ) { match message { - // we should only be sending these out, they don't need to be in the thread - SdkMessage::ControlRequest { .. } => {} - SdkMessage::Assistant { - message, - session_id: _, - } - | SdkMessage::User { - message, - session_id: _, - } => { - let Some(thread) = thread_rx - .recv() - .await - .log_err() - .and_then(|entity| entity.upgrade()) - else { - log::error!("Received an SDK message but thread is gone"); - return; - }; - + SdkMessage::Assistant { message, .. } | SdkMessage::User { message, .. } => { for chunk in message.content.chunks() { match chunk { ContentChunk::Text { text } | ContentChunk::UntaggedText(text) => { - thread - .update(cx, |thread, cx| { - thread.push_assistant_content_block(text.into(), false, cx) + delegate + .stream_assistant_message_chunk(StreamAssistantMessageChunkParams { + chunk: acp::AssistantMessageChunk::Text { text }, }) + .await .log_err(); } ContentChunk::ToolUse { id, name, input } => { let claude_tool = ClaudeTool::infer(&name, input); - thread - .update(cx, |thread, cx| { - if let ClaudeTool::TodoWrite(Some(params)) = claude_tool { - thread.update_plan( - acp::Plan { - entries: params - .todos - .into_iter() - .map(Into::into) - .collect(), - }, - cx, - ) - } else { - thread.upsert_tool_call( - claude_tool.as_acp(acp::ToolCallId(id.into())), - cx, - ); - } - }) - .log_err(); + if let ClaudeTool::TodoWrite(Some(params)) = claude_tool { + delegate + .update_plan(acp::UpdatePlanParams { + entries: params.todos.into_iter().map(Into::into).collect(), + }) + .await + .log_err(); + } else if let Some(resp) = delegate + .push_tool_call(claude_tool.as_acp()) + .await + .log_err() + { + tool_id_map.borrow_mut().insert(id, resp.id); + } } ContentChunk::ToolResult { content, tool_use_id, } => { - let content = content.to_string(); - thread - .update(cx, |thread, cx| { - thread.update_tool_call( - acp::ToolCallUpdate { - id: acp::ToolCallId(tool_use_id.into()), - fields: acp::ToolCallUpdateFields { - status: Some(acp::ToolCallStatus::Completed), - content: (!content.is_empty()) - .then(|| vec![content.into()]), - ..Default::default() + let id = tool_id_map.borrow_mut().remove(&tool_use_id); + if let Some(id) = id { + let content = content.to_string(); + delegate + .update_tool_call(UpdateToolCallParams { + tool_call_id: id, + status: acp::ToolCallStatus::Finished, + // Don't unset existing content + content: (!content.is_empty()).then_some( + ToolCallContent::Markdown { + // For now we only include text content + markdown: content, }, - }, - cx, - ) - }) - .log_err(); + ), + }) + .await + .log_err(); + } } ContentChunk::Image | ContentChunk::Document | ContentChunk::Thinking | ContentChunk::RedactedThinking | ContentChunk::WebSearchToolResult => { - thread - .update(cx, |thread, cx| { - thread.push_assistant_content_block( - format!("Unsupported content: {:?}", chunk).into(), - false, - cx, - ) + delegate + .stream_assistant_message_chunk(StreamAssistantMessageChunkParams { + chunk: acp::AssistantMessageChunk::Text { + text: format!("Unsupported content: {:?}", chunk), + }, }) + .await .log_err(); } } } } SdkMessage::Result { - is_error, - subtype, - result, - .. + is_error, subtype, .. } => { if let Some(end_turn_tx) = end_turn_tx.borrow_mut().take() { if is_error { - end_turn_tx - .send(Err(anyhow!( - "Error: {}", - result.unwrap_or_else(|| subtype.to_string()) - ))) - .ok(); + end_turn_tx.send(Err(anyhow!("Error: {subtype}"))).ok(); } else { end_turn_tx.send(Ok(())).ok(); } } } - SdkMessage::System { .. } | SdkMessage::ControlResponse { .. } => {} + SdkMessage::System { .. } => {} } } @@ -606,14 +592,16 @@ enum SdkMessage { Assistant { message: Message, // from Anthropic SDK #[serde(skip_serializing_if = "Option::is_none")] - session_id: Option, + session_id: Option, }, + // A user message User { message: Message, // from Anthropic SDK #[serde(skip_serializing_if = "Option::is_none")] - session_id: Option, + session_id: Option, }, + // Emitted as the last message in a conversation Result { subtype: ResultErrorType, @@ -638,26 +626,6 @@ enum SdkMessage { #[serde(rename = "permissionMode")] permission_mode: PermissionMode, }, - /// Messages used to control the conversation, outside of chat messages to the model - ControlRequest { - request_id: String, - request: ControlRequest, - }, - /// Response to a control request - ControlResponse { response: ControlResponse }, -} - -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(tag = "subtype", rename_all = "snake_case")] -enum ControlRequest { - /// Cancel the current conversation - Interrupt, -} - -#[derive(Debug, Clone, Serialize, Deserialize)] -struct ControlResponse { - request_id: String, - subtype: ResultErrorType, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -678,24 +646,6 @@ impl Display for ResultErrorType { } } -impl SdkMessage { - fn new_interrupt_message() -> Self { - use rand::Rng; - // In the Claude Code TS SDK they just generate a random 12 character string, - // `Math.random().toString(36).substring(2, 15)` - let request_id = rand::thread_rng() - .sample_iter(&rand::distributions::Alphanumeric) - .take(12) - .map(char::from) - .collect(); - - Self::ControlRequest { - request_id, - request: ControlRequest::Interrupt, - } - } -} - #[derive(Debug, Clone, Serialize, Deserialize)] struct McpServer { name: String, @@ -711,12 +661,27 @@ enum PermissionMode { Plan, } +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct McpConfig { + mcp_servers: HashMap, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct McpServerConfig { + command: String, + args: Vec, + #[serde(skip_serializing_if = "Option::is_none")] + env: Option>, +} + #[cfg(test)] pub(crate) mod tests { use super::*; use serde_json::json; - crate::common_e2e_tests!(ClaudeCode, allow_option_id = "allow"); + crate::common_e2e_tests!(ClaudeCode); pub fn local_command() -> AgentServerCommand { AgentServerCommand { diff --git a/crates/agent_servers/src/claude/mcp_server.rs b/crates/agent_servers/src/claude/mcp_server.rs index cc303016f1..2405603550 100644 --- a/crates/agent_servers/src/claude/mcp_server.rs +++ b/crates/agent_servers/src/claude/mcp_server.rs @@ -1,53 +1,78 @@ -use std::path::PathBuf; +use std::{cell::RefCell, rc::Rc}; -use crate::claude::tools::{ClaudeTool, EditToolParams, ReadToolParams}; -use acp_thread::AcpThread; -use agent_client_protocol as acp; +use acp_thread::AcpClientDelegate; +use agentic_coding_protocol::{self as acp, Client, ReadTextFileParams, WriteTextFileParams}; use anyhow::{Context, Result}; use collections::HashMap; -use context_server::listener::{McpServerTool, ToolResponse}; -use context_server::types::{ - Implementation, InitializeParams, InitializeResponse, ProtocolVersion, ServerCapabilities, - ToolAnnotations, ToolResponseContent, ToolsCapabilities, requests, +use context_server::{ + listener::McpServer, + types::{ + CallToolParams, CallToolResponse, Implementation, InitializeParams, InitializeResponse, + ListToolsResponse, ProtocolVersion, ServerCapabilities, Tool, ToolAnnotations, + ToolResponseContent, ToolsCapabilities, requests, + }, }; -use gpui::{App, AsyncApp, Task, WeakEntity}; +use gpui::{App, AsyncApp, Task}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; +use util::debug_panic; -pub struct ClaudeZedMcpServer { - server: context_server::listener::McpServer, +use crate::claude::{ + McpServerConfig, + tools::{ClaudeTool, EditToolParams, ReadToolParams}, +}; + +pub struct ClaudeMcpServer { + server: McpServer, } pub const SERVER_NAME: &str = "zed"; +pub const READ_TOOL: &str = "Read"; +pub const EDIT_TOOL: &str = "Edit"; +pub const PERMISSION_TOOL: &str = "Confirmation"; -impl ClaudeZedMcpServer { +#[derive(Deserialize, JsonSchema, Debug)] +struct PermissionToolParams { + tool_name: String, + input: serde_json::Value, + tool_use_id: Option, +} + +#[derive(Serialize)] +#[serde(rename_all = "camelCase")] +struct PermissionToolResponse { + behavior: PermissionToolBehavior, + updated_input: serde_json::Value, +} + +#[derive(Serialize)] +#[serde(rename_all = "snake_case")] +enum PermissionToolBehavior { + Allow, + Deny, +} + +impl ClaudeMcpServer { pub async fn new( - thread_rx: watch::Receiver>, + delegate: watch::Receiver>, + tool_id_map: Rc>>, cx: &AsyncApp, ) -> Result { - let mut mcp_server = context_server::listener::McpServer::new(cx).await?; + let mut mcp_server = McpServer::new(cx).await?; mcp_server.handle_request::(Self::handle_initialize); - - mcp_server.add_tool(PermissionTool { - thread_rx: thread_rx.clone(), - }); - mcp_server.add_tool(ReadTool { - thread_rx: thread_rx.clone(), - }); - mcp_server.add_tool(EditTool { - thread_rx: thread_rx.clone(), + mcp_server.handle_request::(Self::handle_list_tools); + mcp_server.handle_request::(move |request, cx| { + Self::handle_call_tool(request, delegate.clone(), tool_id_map.clone(), cx) }); Ok(Self { server: mcp_server }) } pub fn server_config(&self) -> Result { - #[cfg(not(test))] let zed_path = std::env::current_exe() - .context("finding current executable path for use in mcp_server")?; - - #[cfg(test)] - let zed_path = crate::e2e_tests::get_zed_path(); + .context("finding current executable path for use in mcp_server")? + .to_string_lossy() + .to_string(); Ok(McpServerConfig { command: zed_path, @@ -81,222 +106,191 @@ impl ClaudeZedMcpServer { }) }) } -} -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct McpConfig { - pub mcp_servers: HashMap, -} - -#[derive(Serialize, Clone)] -#[serde(rename_all = "camelCase")] -pub struct McpServerConfig { - pub command: PathBuf, - pub args: Vec, - #[serde(skip_serializing_if = "Option::is_none")] - pub env: Option>, -} - -// Tools - -#[derive(Clone)] -pub struct PermissionTool { - thread_rx: watch::Receiver>, -} - -#[derive(Deserialize, JsonSchema, Debug)] -pub struct PermissionToolParams { - tool_name: String, - input: serde_json::Value, - tool_use_id: Option, -} - -#[derive(Serialize)] -#[serde(rename_all = "camelCase")] -pub struct PermissionToolResponse { - behavior: PermissionToolBehavior, - updated_input: serde_json::Value, -} - -#[derive(Serialize)] -#[serde(rename_all = "snake_case")] -enum PermissionToolBehavior { - Allow, - Deny, -} - -impl McpServerTool for PermissionTool { - type Input = PermissionToolParams; - type Output = (); - - const NAME: &'static str = "Confirmation"; - - fn description(&self) -> &'static str { - "Request permission for tool calls" + fn handle_list_tools(_: (), cx: &App) -> Task> { + cx.foreground_executor().spawn(async move { + Ok(ListToolsResponse { + tools: vec![ + Tool { + name: PERMISSION_TOOL.into(), + input_schema: schemars::schema_for!(PermissionToolParams).into(), + description: None, + annotations: None, + }, + Tool { + name: READ_TOOL.into(), + input_schema: schemars::schema_for!(ReadToolParams).into(), + description: Some("Read the contents of a file. In sessions with mcp__zed__Read always use it instead of Read as it contains the most up-to-date contents.".to_string()), + annotations: Some(ToolAnnotations { + title: Some("Read file".to_string()), + read_only_hint: Some(true), + destructive_hint: Some(false), + open_world_hint: Some(false), + // if time passes the contents might change, but it's not going to do anything different + // true or false seem too strong, let's try a none. + idempotent_hint: None, + }), + }, + Tool { + name: EDIT_TOOL.into(), + input_schema: schemars::schema_for!(EditToolParams).into(), + description: Some("Edits a file. In sessions with mcp__zed__Edit always use it instead of Edit as it will show the diff to the user better.".to_string()), + annotations: Some(ToolAnnotations { + title: Some("Edit file".to_string()), + read_only_hint: Some(false), + destructive_hint: Some(false), + open_world_hint: Some(false), + idempotent_hint: Some(false), + }), + }, + ], + next_cursor: None, + meta: None, + }) + }) } - async fn run( - &self, - input: Self::Input, - cx: &mut AsyncApp, - ) -> Result> { - let mut thread_rx = self.thread_rx.clone(); - let Some(thread) = thread_rx.recv().await?.upgrade() else { - anyhow::bail!("Thread closed"); - }; + fn handle_call_tool( + request: CallToolParams, + mut delegate_watch: watch::Receiver>, + tool_id_map: Rc>>, + cx: &App, + ) -> Task> { + cx.spawn(async move |cx| { + let Some(delegate) = delegate_watch.recv().await? else { + debug_panic!("Sent None delegate"); + anyhow::bail!("Server not available"); + }; - let claude_tool = ClaudeTool::infer(&input.tool_name, input.input.clone()); - let tool_call_id = acp::ToolCallId(input.tool_use_id.context("Tool ID required")?.into()); - let allow_option_id = acp::PermissionOptionId("allow".into()); - let reject_option_id = acp::PermissionOptionId("reject".into()); + if request.name.as_str() == PERMISSION_TOOL { + let input = + serde_json::from_value(request.arguments.context("Arguments required")?)?; - let chosen_option = thread - .update(cx, |thread, cx| { - thread.request_tool_call_permission( - claude_tool.as_acp(tool_call_id), - vec![ - acp::PermissionOption { - id: allow_option_id.clone(), - label: "Allow".into(), - kind: acp::PermissionOptionKind::AllowOnce, - }, - acp::PermissionOption { - id: reject_option_id.clone(), - label: "Reject".into(), - kind: acp::PermissionOptionKind::RejectOnce, - }, - ], - cx, + let result = + Self::handle_permissions_tool_call(input, delegate, tool_id_map, cx).await?; + Ok(CallToolResponse { + content: vec![ToolResponseContent::Text { + text: serde_json::to_string(&result)?, + }], + is_error: None, + meta: None, + }) + } else if request.name.as_str() == READ_TOOL { + let input = + serde_json::from_value(request.arguments.context("Arguments required")?)?; + + let content = Self::handle_read_tool_call(input, delegate, cx).await?; + Ok(CallToolResponse { + content, + is_error: None, + meta: None, + }) + } else if request.name.as_str() == EDIT_TOOL { + let input = + serde_json::from_value(request.arguments.context("Arguments required")?)?; + + Self::handle_edit_tool_call(input, delegate, cx).await?; + Ok(CallToolResponse { + content: vec![], + is_error: None, + meta: None, + }) + } else { + anyhow::bail!("Unsupported tool"); + } + }) + } + + fn handle_read_tool_call( + params: ReadToolParams, + delegate: AcpClientDelegate, + cx: &AsyncApp, + ) -> Task>> { + cx.foreground_executor().spawn(async move { + let response = delegate + .read_text_file(ReadTextFileParams { + path: params.abs_path, + line: params.offset, + limit: params.limit, + }) + .await?; + + Ok(vec![ToolResponseContent::Text { + text: response.content, + }]) + }) + } + + fn handle_edit_tool_call( + params: EditToolParams, + delegate: AcpClientDelegate, + cx: &AsyncApp, + ) -> Task> { + cx.foreground_executor().spawn(async move { + let response = delegate + .read_text_file_reusing_snapshot(ReadTextFileParams { + path: params.abs_path.clone(), + line: None, + limit: None, + }) + .await?; + + let new_content = response.content.replace(¶ms.old_text, ¶ms.new_text); + if new_content == response.content { + return Err(anyhow::anyhow!("The old_text was not found in the content")); + } + + delegate + .write_text_file(WriteTextFileParams { + path: params.abs_path, + content: new_content, + }) + .await?; + + Ok(()) + }) + } + + fn handle_permissions_tool_call( + params: PermissionToolParams, + delegate: AcpClientDelegate, + tool_id_map: Rc>>, + cx: &AsyncApp, + ) -> Task> { + cx.foreground_executor().spawn(async move { + let claude_tool = ClaudeTool::infer(¶ms.tool_name, params.input.clone()); + + let tool_call_id = match params.tool_use_id { + Some(tool_use_id) => tool_id_map + .borrow() + .get(&tool_use_id) + .cloned() + .context("Tool call ID not found")?, + + None => delegate.push_tool_call(claude_tool.as_acp()).await?.id, + }; + + let outcome = delegate + .request_existing_tool_call_confirmation( + tool_call_id, + claude_tool.confirmation(None), ) - })? - .await?; + .await?; - let response = if chosen_option == allow_option_id { - PermissionToolResponse { - behavior: PermissionToolBehavior::Allow, - updated_input: input.input, + match outcome { + acp::ToolCallConfirmationOutcome::Allow + | acp::ToolCallConfirmationOutcome::AlwaysAllow + | acp::ToolCallConfirmationOutcome::AlwaysAllowMcpServer + | acp::ToolCallConfirmationOutcome::AlwaysAllowTool => Ok(PermissionToolResponse { + behavior: PermissionToolBehavior::Allow, + updated_input: params.input, + }), + acp::ToolCallConfirmationOutcome::Reject + | acp::ToolCallConfirmationOutcome::Cancel => Ok(PermissionToolResponse { + behavior: PermissionToolBehavior::Deny, + updated_input: params.input, + }), } - } else { - debug_assert_eq!(chosen_option, reject_option_id); - PermissionToolResponse { - behavior: PermissionToolBehavior::Deny, - updated_input: input.input, - } - }; - - Ok(ToolResponse { - content: vec![ToolResponseContent::Text { - text: serde_json::to_string(&response)?, - }], - structured_content: (), - }) - } -} - -#[derive(Clone)] -pub struct ReadTool { - thread_rx: watch::Receiver>, -} - -impl McpServerTool for ReadTool { - type Input = ReadToolParams; - type Output = (); - - const NAME: &'static str = "Read"; - - fn description(&self) -> &'static str { - "Read the contents of a file. In sessions with mcp__zed__Read always use it instead of Read as it contains the most up-to-date contents." - } - - fn annotations(&self) -> ToolAnnotations { - ToolAnnotations { - title: Some("Read file".to_string()), - read_only_hint: Some(true), - destructive_hint: Some(false), - open_world_hint: Some(false), - idempotent_hint: None, - } - } - - async fn run( - &self, - input: Self::Input, - cx: &mut AsyncApp, - ) -> Result> { - let mut thread_rx = self.thread_rx.clone(); - let Some(thread) = thread_rx.recv().await?.upgrade() else { - anyhow::bail!("Thread closed"); - }; - - let content = thread - .update(cx, |thread, cx| { - thread.read_text_file(input.abs_path, input.offset, input.limit, false, cx) - })? - .await?; - - Ok(ToolResponse { - content: vec![ToolResponseContent::Text { text: content }], - structured_content: (), - }) - } -} - -#[derive(Clone)] -pub struct EditTool { - thread_rx: watch::Receiver>, -} - -impl McpServerTool for EditTool { - type Input = EditToolParams; - type Output = (); - - const NAME: &'static str = "Edit"; - - fn description(&self) -> &'static str { - "Edits a file. In sessions with mcp__zed__Edit always use it instead of Edit as it will show the diff to the user better." - } - - fn annotations(&self) -> ToolAnnotations { - ToolAnnotations { - title: Some("Edit file".to_string()), - read_only_hint: Some(false), - destructive_hint: Some(false), - open_world_hint: Some(false), - idempotent_hint: Some(false), - } - } - - async fn run( - &self, - input: Self::Input, - cx: &mut AsyncApp, - ) -> Result> { - let mut thread_rx = self.thread_rx.clone(); - let Some(thread) = thread_rx.recv().await?.upgrade() else { - anyhow::bail!("Thread closed"); - }; - - let content = thread - .update(cx, |thread, cx| { - thread.read_text_file(input.abs_path.clone(), None, None, true, cx) - })? - .await?; - - let new_content = content.replace(&input.old_text, &input.new_text); - if new_content == content { - return Err(anyhow::anyhow!("The old_text was not found in the content")); - } - - thread - .update(cx, |thread, cx| { - thread.write_text_file(input.abs_path, new_content, cx) - })? - .await?; - - Ok(ToolResponse { - content: vec![], - structured_content: (), }) } } diff --git a/crates/agent_servers/src/claude/tools.rs b/crates/agent_servers/src/claude/tools.rs index 6acb6355aa..75a26ee230 100644 --- a/crates/agent_servers/src/claude/tools.rs +++ b/crates/agent_servers/src/claude/tools.rs @@ -1,6 +1,6 @@ use std::path::PathBuf; -use agent_client_protocol as acp; +use agentic_coding_protocol::{self as acp, PushToolCallParams, ToolCallLocation}; use itertools::Itertools; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -115,36 +115,51 @@ impl ClaudeTool { Self::Other { name, .. } => name.clone(), } } - pub fn content(&self) -> Vec { + + pub fn content(&self) -> Option { match &self { - Self::Other { input, .. } => vec![ - format!( + Self::Other { input, .. } => Some(acp::ToolCallContent::Markdown { + markdown: format!( "```json\n{}```", serde_json::to_string_pretty(&input).unwrap_or("{}".to_string()) - ) - .into(), - ], - Self::Task(Some(params)) => vec![params.prompt.clone().into()], - Self::NotebookRead(Some(params)) => { - vec![params.notebook_path.display().to_string().into()] - } - Self::NotebookEdit(Some(params)) => vec![params.new_source.clone().into()], - Self::Terminal(Some(params)) => vec![ - format!( + ), + }), + Self::Task(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.prompt.clone(), + }), + Self::NotebookRead(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.notebook_path.display().to_string(), + }), + Self::NotebookEdit(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.new_source.clone(), + }), + Self::Terminal(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: format!( "`{}`\n\n{}", params.command, params.description.as_deref().unwrap_or_default() - ) - .into(), - ], - Self::ReadFile(Some(params)) => vec![params.abs_path.display().to_string().into()], - Self::Ls(Some(params)) => vec![params.path.display().to_string().into()], - Self::Glob(Some(params)) => vec![params.to_string().into()], - Self::Grep(Some(params)) => vec![format!("`{params}`").into()], - Self::WebFetch(Some(params)) => vec![params.prompt.clone().into()], - Self::WebSearch(Some(params)) => vec![params.to_string().into()], - Self::TodoWrite(Some(params)) => vec![ - params + ), + }), + Self::ReadFile(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.abs_path.display().to_string(), + }), + Self::Ls(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.path.display().to_string(), + }), + Self::Glob(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.to_string(), + }), + Self::Grep(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: format!("`{params}`"), + }), + Self::WebFetch(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.prompt.clone(), + }), + Self::WebSearch(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.to_string(), + }), + Self::TodoWrite(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params .todos .iter() .map(|todo| { @@ -159,39 +174,34 @@ impl ClaudeTool { todo.content ) }) - .join("\n") - .into(), - ], - Self::ExitPlanMode(Some(params)) => vec![params.plan.clone().into()], - Self::Edit(Some(params)) => vec![acp::ToolCallContent::Diff { + .join("\n"), + }), + Self::ExitPlanMode(Some(params)) => Some(acp::ToolCallContent::Markdown { + markdown: params.plan.clone(), + }), + Self::Edit(Some(params)) => Some(acp::ToolCallContent::Diff { diff: acp::Diff { path: params.abs_path.clone(), old_text: Some(params.old_text.clone()), new_text: params.new_text.clone(), }, - }], - Self::Write(Some(params)) => vec![acp::ToolCallContent::Diff { + }), + Self::Write(Some(params)) => Some(acp::ToolCallContent::Diff { diff: acp::Diff { path: params.file_path.clone(), old_text: None, new_text: params.content.clone(), }, - }], + }), Self::MultiEdit(Some(params)) => { // todo: show multiple edits in a multibuffer? - params - .edits - .first() - .map(|edit| { - vec![acp::ToolCallContent::Diff { - diff: acp::Diff { - path: params.file_path.clone(), - old_text: Some(edit.old_string.clone()), - new_text: edit.new_string.clone(), - }, - }] - }) - .unwrap_or_default() + params.edits.first().map(|edit| acp::ToolCallContent::Diff { + diff: acp::Diff { + path: params.file_path.clone(), + old_text: Some(edit.old_string.clone()), + new_text: edit.new_string.clone(), + }, + }) } Self::Task(None) | Self::NotebookRead(None) @@ -207,80 +217,181 @@ impl ClaudeTool { | Self::ExitPlanMode(None) | Self::Edit(None) | Self::Write(None) - | Self::MultiEdit(None) => vec![], + | Self::MultiEdit(None) => None, } } - pub fn kind(&self) -> acp::ToolKind { + pub fn icon(&self) -> acp::Icon { match self { - Self::Task(_) => acp::ToolKind::Think, - Self::NotebookRead(_) => acp::ToolKind::Read, - Self::NotebookEdit(_) => acp::ToolKind::Edit, - Self::Edit(_) => acp::ToolKind::Edit, - Self::MultiEdit(_) => acp::ToolKind::Edit, - Self::Write(_) => acp::ToolKind::Edit, - Self::ReadFile(_) => acp::ToolKind::Read, - Self::Ls(_) => acp::ToolKind::Search, - Self::Glob(_) => acp::ToolKind::Search, - Self::Grep(_) => acp::ToolKind::Search, - Self::Terminal(_) => acp::ToolKind::Execute, - Self::WebSearch(_) => acp::ToolKind::Search, - Self::WebFetch(_) => acp::ToolKind::Fetch, - Self::TodoWrite(_) => acp::ToolKind::Think, - Self::ExitPlanMode(_) => acp::ToolKind::Think, - Self::Other { .. } => acp::ToolKind::Other, + Self::Task(_) => acp::Icon::Hammer, + Self::NotebookRead(_) => acp::Icon::FileSearch, + Self::NotebookEdit(_) => acp::Icon::Pencil, + Self::Edit(_) => acp::Icon::Pencil, + Self::MultiEdit(_) => acp::Icon::Pencil, + Self::Write(_) => acp::Icon::Pencil, + Self::ReadFile(_) => acp::Icon::FileSearch, + Self::Ls(_) => acp::Icon::Folder, + Self::Glob(_) => acp::Icon::FileSearch, + Self::Grep(_) => acp::Icon::Regex, + Self::Terminal(_) => acp::Icon::Terminal, + Self::WebSearch(_) => acp::Icon::Globe, + Self::WebFetch(_) => acp::Icon::Globe, + Self::TodoWrite(_) => acp::Icon::LightBulb, + Self::ExitPlanMode(_) => acp::Icon::Hammer, + Self::Other { .. } => acp::Icon::Hammer, + } + } + + pub fn confirmation(&self, description: Option) -> acp::ToolCallConfirmation { + match &self { + Self::Edit(_) | Self::Write(_) | Self::NotebookEdit(_) | Self::MultiEdit(_) => { + acp::ToolCallConfirmation::Edit { description } + } + Self::WebFetch(params) => acp::ToolCallConfirmation::Fetch { + urls: params + .as_ref() + .map(|p| vec![p.url.clone()]) + .unwrap_or_default(), + description, + }, + Self::Terminal(Some(BashToolParams { + description, + command, + .. + })) => acp::ToolCallConfirmation::Execute { + command: command.clone(), + root_command: command.clone(), + description: description.clone(), + }, + Self::ExitPlanMode(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {}", params.plan) + } else { + params.plan.clone() + }, + }, + Self::Task(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {}", params.description) + } else { + params.description.clone() + }, + }, + Self::Ls(Some(LsToolParams { path, .. })) + | Self::ReadFile(Some(ReadToolParams { abs_path: path, .. })) => { + let path = path.display(); + acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {path}") + } else { + path.to_string() + }, + } + } + Self::NotebookRead(Some(NotebookReadToolParams { notebook_path, .. })) => { + let path = notebook_path.display(); + acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {path}") + } else { + path.to_string() + }, + } + } + Self::Glob(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {params}") + } else { + params.to_string() + }, + }, + Self::Grep(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {params}") + } else { + params.to_string() + }, + }, + Self::WebSearch(Some(params)) => acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {params}") + } else { + params.to_string() + }, + }, + Self::TodoWrite(Some(params)) => { + let params = params.todos.iter().map(|todo| &todo.content).join(", "); + acp::ToolCallConfirmation::Other { + description: if let Some(description) = description { + format!("{description} {params}") + } else { + params + }, + } + } + Self::Terminal(None) + | Self::Task(None) + | Self::NotebookRead(None) + | Self::ExitPlanMode(None) + | Self::Ls(None) + | Self::Glob(None) + | Self::Grep(None) + | Self::ReadFile(None) + | Self::WebSearch(None) + | Self::TodoWrite(None) + | Self::Other { .. } => acp::ToolCallConfirmation::Other { + description: description.unwrap_or("".to_string()), + }, } } pub fn locations(&self) -> Vec { match &self { - Self::Edit(Some(EditToolParams { abs_path, .. })) => vec![acp::ToolCallLocation { + Self::Edit(Some(EditToolParams { abs_path, .. })) => vec![ToolCallLocation { path: abs_path.clone(), line: None, }], Self::MultiEdit(Some(MultiEditToolParams { file_path, .. })) => { - vec![acp::ToolCallLocation { - path: file_path.clone(), - line: None, - }] - } - Self::Write(Some(WriteToolParams { file_path, .. })) => { - vec![acp::ToolCallLocation { + vec![ToolCallLocation { path: file_path.clone(), line: None, }] } + Self::Write(Some(WriteToolParams { file_path, .. })) => vec![ToolCallLocation { + path: file_path.clone(), + line: None, + }], Self::ReadFile(Some(ReadToolParams { abs_path, offset, .. - })) => vec![acp::ToolCallLocation { + })) => vec![ToolCallLocation { path: abs_path.clone(), line: *offset, }], Self::NotebookRead(Some(NotebookReadToolParams { notebook_path, .. })) => { - vec![acp::ToolCallLocation { + vec![ToolCallLocation { path: notebook_path.clone(), line: None, }] } Self::NotebookEdit(Some(NotebookEditToolParams { notebook_path, .. })) => { - vec![acp::ToolCallLocation { + vec![ToolCallLocation { path: notebook_path.clone(), line: None, }] } Self::Glob(Some(GlobToolParams { path: Some(path), .. - })) => vec![acp::ToolCallLocation { + })) => vec![ToolCallLocation { path: path.clone(), line: None, }], - Self::Ls(Some(LsToolParams { path, .. })) => vec![acp::ToolCallLocation { + Self::Ls(Some(LsToolParams { path, .. })) => vec![ToolCallLocation { path: path.clone(), line: None, }], Self::Grep(Some(GrepToolParams { path: Some(path), .. - })) => vec![acp::ToolCallLocation { + })) => vec![ToolCallLocation { path: PathBuf::from(path), line: None, }], @@ -303,15 +414,12 @@ impl ClaudeTool { } } - pub fn as_acp(&self, id: acp::ToolCallId) -> acp::ToolCall { - acp::ToolCall { - id, - kind: self.kind(), - status: acp::ToolCallStatus::InProgress, + pub fn as_acp(&self) -> PushToolCallParams { + PushToolCallParams { label: self.label(), content: self.content(), + icon: self.icon(), locations: self.locations(), - raw_input: None, } } } diff --git a/crates/agent_servers/src/e2e_tests.rs b/crates/agent_servers/src/e2e_tests.rs index a60aefb7b9..12f74cb13e 100644 --- a/crates/agent_servers/src/e2e_tests.rs +++ b/crates/agent_servers/src/e2e_tests.rs @@ -1,17 +1,15 @@ -use std::{ - path::{Path, PathBuf}, - sync::Arc, - time::Duration, -}; +use std::{path::Path, sync::Arc, time::Duration}; use crate::{AgentServer, AgentServerSettings, AllAgentServersSettings}; -use acp_thread::{AcpThread, AgentThreadEntry, ToolCall, ToolCallStatus}; -use agent_client_protocol as acp; - +use acp_thread::{ + AcpThread, AgentThreadEntry, ToolCall, ToolCallConfirmation, ToolCallContent, ToolCallStatus, +}; +use agentic_coding_protocol as acp; use futures::{FutureExt, StreamExt, channel::mpsc, select}; use gpui::{Entity, TestAppContext}; use indoc::indoc; use project::{FakeFs, Project}; +use serde_json::json; use settings::{Settings, SettingsStore}; use util::path; @@ -26,11 +24,7 @@ pub async fn test_basic(server: impl AgentServer + 'static, cx: &mut TestAppCont .unwrap(); thread.read_with(cx, |thread, _| { - assert!( - thread.entries().len() >= 2, - "Expected at least 2 entries. Got: {:?}", - thread.entries() - ); + assert_eq!(thread.entries().len(), 2); assert!(matches!( thread.entries()[0], AgentThreadEntry::UserMessage(_) @@ -60,25 +54,19 @@ pub async fn test_path_mentions(server: impl AgentServer + 'static, cx: &mut Tes thread .update(cx, |thread, cx| { thread.send( - vec![ - acp::ContentBlock::Text(acp::TextContent { - text: "Read the file ".into(), - annotations: None, - }), - acp::ContentBlock::ResourceLink(acp::ResourceLink { - uri: "foo.rs".into(), - name: "foo.rs".into(), - annotations: None, - description: None, - mime_type: None, - size: None, - title: None, - }), - acp::ContentBlock::Text(acp::TextContent { - text: " and tell me what the content of the println! is".into(), - annotations: None, - }), - ], + acp::SendUserMessageParams { + chunks: vec![ + acp::UserMessageChunk::Text { + text: "Read the file ".into(), + }, + acp::UserMessageChunk::Path { + path: Path::new("foo.rs").into(), + }, + acp::UserMessageChunk::Text { + text: " and tell me what the content of the println! is".into(), + }, + ], + }, cx, ) }) @@ -86,44 +74,37 @@ pub async fn test_path_mentions(server: impl AgentServer + 'static, cx: &mut Tes .unwrap(); thread.read_with(cx, |thread, cx| { + assert_eq!(thread.entries().len(), 3); assert!(matches!( thread.entries()[0], AgentThreadEntry::UserMessage(_) )); - let assistant_message = &thread - .entries() - .iter() - .rev() - .find_map(|entry| match entry { - AgentThreadEntry::AssistantMessage(msg) => Some(msg), - _ => None, - }) - .unwrap(); - + assert!(matches!(thread.entries()[1], AgentThreadEntry::ToolCall(_))); + let AgentThreadEntry::AssistantMessage(assistant_message) = &thread.entries()[2] else { + panic!("Expected AssistantMessage") + }; assert!( assistant_message.to_markdown(cx).contains("Hello, world!"), "unexpected assistant message: {:?}", assistant_message.to_markdown(cx) ); }); - - drop(tempdir); } pub async fn test_tool_call(server: impl AgentServer + 'static, cx: &mut TestAppContext) { - let _fs = init_test(cx).await; - - let tempdir = tempfile::tempdir().unwrap(); - let foo_path = tempdir.path().join("foo"); - std::fs::write(&foo_path, "Lorem ipsum dolor").expect("failed to write file"); - - let project = Project::example([tempdir.path()], &mut cx.to_async()).await; + let fs = init_test(cx).await; + fs.insert_tree( + path!("/private/tmp"), + json!({"foo": "Lorem ipsum dolor", "bar": "bar", "baz": "baz"}), + ) + .await; + let project = Project::test(fs, [path!("/private/tmp").as_ref()], cx).await; let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; thread .update(cx, |thread, cx| { thread.send_raw( - &format!("Read {} and tell me what you see.", foo_path.display()), + "Read the '/private/tmp/foo' file and tell me what you see.", cx, ) }) @@ -146,13 +127,10 @@ pub async fn test_tool_call(server: impl AgentServer + 'static, cx: &mut TestApp .any(|entry| { matches!(entry, AgentThreadEntry::AssistantMessage(_)) }) ); }); - - drop(tempdir); } -pub async fn test_tool_call_with_permission( +pub async fn test_tool_call_with_confirmation( server: impl AgentServer + 'static, - allow_option_id: acp::PermissionOptionId, cx: &mut TestAppContext, ) { let fs = init_test(cx).await; @@ -160,7 +138,7 @@ pub async fn test_tool_call_with_permission( let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; let full_turn = thread.update(cx, |thread, cx| { thread.send_raw( - r#"Run exactly `touch hello.txt && echo "Hello, world!" | tee hello.txt` in the terminal."#, + r#"Run `touch hello.txt && echo "Hello, world!" | tee hello.txt`"#, cx, ) }); @@ -180,11 +158,14 @@ pub async fn test_tool_call_with_permission( ) .await; - let tool_call_id = thread.read_with(cx, |thread, cx| { + let tool_call_id = thread.read_with(cx, |thread, _cx| { let AgentThreadEntry::ToolCall(ToolCall { id, - label, - status: ToolCallStatus::WaitingForConfirmation { .. }, + status: + ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::Execute { root_command, .. }, + .. + }, .. }) = &thread .entries() @@ -195,19 +176,13 @@ pub async fn test_tool_call_with_permission( panic!(); }; - let label = label.read(cx).source(); - assert!(label.contains("touch"), "Got: {}", label); + assert!(root_command.contains("touch")); - id.clone() + *id }); thread.update(cx, |thread, cx| { - thread.authorize_tool_call( - tool_call_id, - allow_option_id, - acp::PermissionOptionKind::AllowOnce, - cx, - ); + thread.authorize_tool_call(tool_call_id, acp::ToolCallConfirmationOutcome::Allow, cx); assert!(thread.entries().iter().any(|entry| matches!( entry, @@ -222,7 +197,7 @@ pub async fn test_tool_call_with_permission( thread.read_with(cx, |thread, cx| { let AgentThreadEntry::ToolCall(ToolCall { - content, + content: Some(ToolCallContent::Markdown { markdown }), status: ToolCallStatus::Allowed { .. }, .. }) = thread @@ -234,10 +209,13 @@ pub async fn test_tool_call_with_permission( panic!(); }; - assert!( - content.iter().any(|c| c.to_markdown(cx).contains("Hello")), - "Expected content to contain 'Hello'" - ); + markdown.read_with(cx, |md, _cx| { + assert!( + md.source().contains("Hello"), + r#"Expected '{}' to contain "Hello""#, + md.source() + ); + }); }); } @@ -248,7 +226,7 @@ pub async fn test_cancel(server: impl AgentServer + 'static, cx: &mut TestAppCon let thread = new_test_thread(server, project.clone(), "/private/tmp", cx).await; let full_turn = thread.update(cx, |thread, cx| { thread.send_raw( - r#"Run exactly `touch hello.txt && echo "Hello, world!" | tee hello.txt` in the terminal."#, + r#"Run `touch hello.txt && echo "Hello, world!" >> hello.txt`"#, cx, ) }); @@ -268,24 +246,29 @@ pub async fn test_cancel(server: impl AgentServer + 'static, cx: &mut TestAppCon ) .await; - thread.read_with(cx, |thread, cx| { + thread.read_with(cx, |thread, _cx| { let AgentThreadEntry::ToolCall(ToolCall { id, - label, - status: ToolCallStatus::WaitingForConfirmation { .. }, + status: + ToolCallStatus::WaitingForConfirmation { + confirmation: ToolCallConfirmation::Execute { root_command, .. }, + .. + }, .. }) = &thread.entries()[first_tool_call_ix] else { panic!("{:?}", thread.entries()[1]); }; - let label = label.read(cx).source(); - assert!(label.contains("touch"), "Got: {}", label); + assert!(root_command.contains("touch")); - id.clone() + *id }); - let _ = thread.update(cx, |thread, cx| thread.cancel(cx)); + thread + .update(cx, |thread, cx| thread.cancel(cx)) + .await + .unwrap(); full_turn.await.unwrap(); thread.read_with(cx, |thread, _| { let AgentThreadEntry::ToolCall(ToolCall { @@ -313,7 +296,7 @@ pub async fn test_cancel(server: impl AgentServer + 'static, cx: &mut TestAppCon #[macro_export] macro_rules! common_e2e_tests { - ($server:expr, allow_option_id = $allow_option_id:expr) => { + ($server:expr) => { mod common_e2e { use super::*; @@ -337,13 +320,8 @@ macro_rules! common_e2e_tests { #[::gpui::test] #[cfg_attr(not(feature = "e2e"), ignore)] - async fn tool_call_with_permission(cx: &mut ::gpui::TestAppContext) { - $crate::e2e_tests::test_tool_call_with_permission( - $server, - ::agent_client_protocol::PermissionOptionId($allow_option_id.into()), - cx, - ) - .await; + async fn tool_call_with_confirmation(cx: &mut ::gpui::TestAppContext) { + $crate::e2e_tests::test_tool_call_with_confirmation($server, cx).await; } #[::gpui::test] @@ -391,16 +369,15 @@ pub async fn new_test_thread( current_dir: impl AsRef, cx: &mut TestAppContext, ) -> Entity { - let connection = cx - .update(|cx| server.connect(current_dir.as_ref(), &project, cx)) + let thread = cx + .update(|cx| server.new_thread(current_dir.as_ref(), &project, cx)) .await .unwrap(); - let thread = connection - .new_thread(project.clone(), current_dir.as_ref(), &mut cx.to_async()) + thread + .update(cx, |thread, _| thread.initialize()) .await .unwrap(); - thread } @@ -433,24 +410,3 @@ pub async fn run_until_first_tool_call( } } } - -pub fn get_zed_path() -> PathBuf { - let mut zed_path = std::env::current_exe().unwrap(); - - while zed_path - .file_name() - .map_or(true, |name| name.to_string_lossy() != "debug") - { - if !zed_path.pop() { - panic!("Could not find target directory"); - } - } - - zed_path.push("zed"); - - if !zed_path.exists() { - panic!("\n🚨 Run `cargo build` at least once before running e2e tests\n\n"); - } - - zed_path -} diff --git a/crates/agent_servers/src/gemini.rs b/crates/agent_servers/src/gemini.rs index 2366783d22..8ad147cbff 100644 --- a/crates/agent_servers/src/gemini.rs +++ b/crates/agent_servers/src/gemini.rs @@ -1,13 +1,9 @@ -use std::path::Path; -use std::rc::Rc; - -use crate::{AgentServer, AgentServerCommand}; -use acp_thread::AgentConnection; -use anyhow::Result; -use gpui::{Entity, Task}; +use crate::stdio_agent_server::StdioAgentServer; +use crate::{AgentServerCommand, AgentServerVersion}; +use anyhow::{Context as _, Result}; +use gpui::{AsyncApp, Entity}; use project::Project; use settings::SettingsStore; -use ui::App; use crate::AllAgentServersSettings; @@ -16,7 +12,7 @@ pub struct Gemini; const ACP_ARG: &str = "--experimental-acp"; -impl AgentServer for Gemini { +impl StdioAgentServer for Gemini { fn name(&self) -> &'static str { "Gemini" } @@ -29,33 +25,79 @@ impl AgentServer for Gemini { "Ask questions, edit files, run commands.\nBe specific for the best results." } + fn supports_always_allow(&self) -> bool { + true + } + fn logo(&self) -> ui::IconName { ui::IconName::AiGemini } - fn connect( + async fn command( &self, - root_dir: &Path, project: &Entity, - cx: &mut App, - ) -> Task>> { - let project = project.clone(); - let root_dir = root_dir.to_path_buf(); - let server_name = self.name(); - cx.spawn(async move |cx| { - let settings = cx.read_global(|settings: &SettingsStore, _| { - settings.get::(None).gemini.clone() - })?; + cx: &mut AsyncApp, + ) -> Result { + let settings = cx.read_global(|settings: &SettingsStore, _| { + settings.get::(None).gemini.clone() + })?; - let Some(command) = - AgentServerCommand::resolve("gemini", &[ACP_ARG], settings, &project, cx).await - else { - anyhow::bail!("Failed to find gemini binary"); - }; + if let Some(command) = + AgentServerCommand::resolve("gemini", &[ACP_ARG], settings, &project, cx).await + { + return Ok(command); + }; - crate::acp::connect(server_name, command, &root_dir, cx).await + let (fs, node_runtime) = project.update(cx, |project, _| { + (project.fs().clone(), project.node_runtime().cloned()) + })?; + let node_runtime = node_runtime.context("gemini not found on path")?; + + let directory = ::paths::agent_servers_dir().join("gemini"); + fs.create_dir(&directory).await?; + node_runtime + .npm_install_packages(&directory, &[("@google/gemini-cli", "latest")]) + .await?; + let path = directory.join("node_modules/.bin/gemini"); + + Ok(AgentServerCommand { + path, + args: vec![ACP_ARG.into()], + env: None, }) } + + async fn version(&self, command: &AgentServerCommand) -> Result { + let version_fut = util::command::new_smol_command(&command.path) + .args(command.args.iter()) + .arg("--version") + .kill_on_drop(true) + .output(); + + let help_fut = util::command::new_smol_command(&command.path) + .args(command.args.iter()) + .arg("--help") + .kill_on_drop(true) + .output(); + + let (version_output, help_output) = futures::future::join(version_fut, help_fut).await; + + let current_version = String::from_utf8(version_output?.stdout)?; + let supported = String::from_utf8(help_output?.stdout)?.contains(ACP_ARG); + + if supported { + Ok(AgentServerVersion::Supported) + } else { + Ok(AgentServerVersion::Unsupported { + error_message: format!( + "Your installed version of Gemini {} doesn't support the Agentic Coding Protocol (ACP).", + current_version + ).into(), + upgrade_message: "Upgrade Gemini to Latest".into(), + upgrade_command: "npm install -g @google/gemini-cli@latest".into(), + }) + } + } } #[cfg(test)] @@ -64,7 +106,7 @@ pub(crate) mod tests { use crate::AgentServerCommand; use std::path::Path; - crate::common_e2e_tests!(Gemini, allow_option_id = "proceed_once"); + crate::common_e2e_tests!(Gemini); pub fn local_command() -> AgentServerCommand { let cli_path = Path::new(env!("CARGO_MANIFEST_DIR")) @@ -74,7 +116,7 @@ pub(crate) mod tests { AgentServerCommand { path: "node".into(), - args: vec![cli_path], + args: vec![cli_path, ACP_ARG.into()], env: None, } } diff --git a/crates/agent_servers/src/stdio_agent_server.rs b/crates/agent_servers/src/stdio_agent_server.rs new file mode 100644 index 0000000000..e60dd39de4 --- /dev/null +++ b/crates/agent_servers/src/stdio_agent_server.rs @@ -0,0 +1,119 @@ +use crate::{AgentServer, AgentServerCommand, AgentServerVersion}; +use acp_thread::{AcpClientDelegate, AcpThread, LoadError}; +use agentic_coding_protocol as acp; +use anyhow::{Result, anyhow}; +use gpui::{App, AsyncApp, Entity, Task, prelude::*}; +use project::Project; +use std::path::Path; +use util::ResultExt; + +pub trait StdioAgentServer: Send + Clone { + fn logo(&self) -> ui::IconName; + fn name(&self) -> &'static str; + fn empty_state_headline(&self) -> &'static str; + fn empty_state_message(&self) -> &'static str; + fn supports_always_allow(&self) -> bool; + + fn command( + &self, + project: &Entity, + cx: &mut AsyncApp, + ) -> impl Future>; + + fn version( + &self, + command: &AgentServerCommand, + ) -> impl Future> + Send; +} + +impl AgentServer for T { + fn name(&self) -> &'static str { + self.name() + } + + fn empty_state_headline(&self) -> &'static str { + self.empty_state_headline() + } + + fn empty_state_message(&self) -> &'static str { + self.empty_state_message() + } + + fn logo(&self) -> ui::IconName { + self.logo() + } + + fn supports_always_allow(&self) -> bool { + self.supports_always_allow() + } + + fn new_thread( + &self, + root_dir: &Path, + project: &Entity, + cx: &mut App, + ) -> Task>> { + let root_dir = root_dir.to_path_buf(); + let project = project.clone(); + let this = self.clone(); + let title = self.name().into(); + + cx.spawn(async move |cx| { + let command = this.command(&project, cx).await?; + + let mut child = util::command::new_smol_command(&command.path) + .args(command.args.iter()) + .current_dir(root_dir) + .stdin(std::process::Stdio::piped()) + .stdout(std::process::Stdio::piped()) + .stderr(std::process::Stdio::inherit()) + .kill_on_drop(true) + .spawn()?; + + let stdin = child.stdin.take().unwrap(); + let stdout = child.stdout.take().unwrap(); + + cx.new(|cx| { + let foreground_executor = cx.foreground_executor().clone(); + + let (connection, io_fut) = acp::AgentConnection::connect_to_agent( + AcpClientDelegate::new(cx.entity().downgrade(), cx.to_async()), + stdin, + stdout, + move |fut| foreground_executor.spawn(fut).detach(), + ); + + let io_task = cx.background_spawn(async move { + io_fut.await.log_err(); + }); + + let child_status = cx.background_spawn(async move { + let result = match child.status().await { + Err(e) => Err(anyhow!(e)), + Ok(result) if result.success() => Ok(()), + Ok(result) => { + if let Some(AgentServerVersion::Unsupported { + error_message, + upgrade_message, + upgrade_command, + }) = this.version(&command).await.log_err() + { + Err(anyhow!(LoadError::Unsupported { + error_message, + upgrade_message, + upgrade_command + })) + } else { + Err(anyhow!(LoadError::Exited(result.code().unwrap_or(-127)))) + } + } + }; + drop(io_task); + result + }); + + AcpThread::new(connection, title, Some(child_status), project.clone(), cx) + }) + }) + } +} diff --git a/crates/agent_settings/Cargo.toml b/crates/agent_settings/Cargo.toml index d34396a5d3..3afe5ae547 100644 --- a/crates/agent_settings/Cargo.toml +++ b/crates/agent_settings/Cargo.toml @@ -13,7 +13,6 @@ path = "src/agent_settings.rs" [dependencies] anyhow.workspace = true -cloud_llm_client.workspace = true collections.workspace = true gpui.workspace = true language_model.workspace = true @@ -21,6 +20,7 @@ schemars.workspace = true serde.workspace = true settings.workspace = true workspace-hack.workspace = true +zed_llm_client.workspace = true [dev-dependencies] fs.workspace = true diff --git a/crates/agent_settings/src/agent_settings.rs b/crates/agent_settings/src/agent_settings.rs index 4e872c78d7..13b966608c 100644 --- a/crates/agent_settings/src/agent_settings.rs +++ b/crates/agent_settings/src/agent_settings.rs @@ -321,11 +321,11 @@ pub enum CompletionMode { Burn, } -impl From for cloud_llm_client::CompletionMode { +impl From for zed_llm_client::CompletionMode { fn from(value: CompletionMode) -> Self { match value { - CompletionMode::Normal => cloud_llm_client::CompletionMode::Normal, - CompletionMode::Burn => cloud_llm_client::CompletionMode::Max, + CompletionMode::Normal => zed_llm_client::CompletionMode::Normal, + CompletionMode::Burn => zed_llm_client::CompletionMode::Max, } } } diff --git a/crates/agent_ui/Cargo.toml b/crates/agent_ui/Cargo.toml index 95fd2b1757..7d3b84e42e 100644 --- a/crates/agent_ui/Cargo.toml +++ b/crates/agent_ui/Cargo.toml @@ -17,10 +17,10 @@ test-support = ["gpui/test-support", "language/test-support"] [dependencies] acp_thread.workspace = true -agent-client-protocol.workspace = true agent.workspace = true -agent_servers.workspace = true +agentic-coding-protocol.workspace = true agent_settings.workspace = true +agent_servers.workspace = true ai_onboarding.workspace = true anyhow.workspace = true assistant_context.workspace = true @@ -31,7 +31,6 @@ audio.workspace = true buffer_diff.workspace = true chrono.workspace = true client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true command_palette_hooks.workspace = true component.workspace = true @@ -47,9 +46,9 @@ futures.workspace = true fuzzy.workspace = true gpui.workspace = true html_to_markdown.workspace = true +indoc.workspace = true http_client.workspace = true indexed_docs.workspace = true -indoc.workspace = true inventory.workspace = true itertools.workspace = true jsonschema.workspace = true @@ -98,6 +97,7 @@ watch.workspace = true workspace-hack.workspace = true workspace.workspace = true zed_actions.workspace = true +zed_llm_client.workspace = true [dev-dependencies] assistant_tools.workspace = true diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index 24d8b73396..95f4f81205 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -1,7 +1,5 @@ -use acp_thread::{AgentConnection, Plan}; +use acp_thread::Plan; use agent_servers::AgentServer; -use agent_settings::{AgentSettings, NotifyWhenAgentWaiting}; -use audio::{Audio, Sound}; use std::cell::RefCell; use std::collections::BTreeMap; use std::path::Path; @@ -9,7 +7,7 @@ use std::rc::Rc; use std::sync::Arc; use std::time::Duration; -use agent_client_protocol as acp; +use agentic_coding_protocol::{self as acp}; use assistant_tool::ActionLog; use buffer_diff::BufferDiff; use collections::{HashMap, HashSet}; @@ -18,12 +16,13 @@ use editor::{ EditorStyle, MinimapVisibility, MultiBuffer, PathKey, }; use file_icons::FileIcons; +use futures::channel::oneshot; use gpui::{ Action, Animation, AnimationExt, App, BorderStyle, EdgesRefinement, Empty, Entity, EntityId, - FocusHandle, Focusable, Hsla, Length, ListOffset, ListState, PlatformDisplay, SharedString, - StyleRefinement, Subscription, Task, TextStyle, TextStyleRefinement, Transformation, - UnderlineStyle, WeakEntity, Window, WindowHandle, div, linear_color_stop, linear_gradient, - list, percentage, point, prelude::*, pulsating_between, + FocusHandle, Focusable, Hsla, Length, ListOffset, ListState, SharedString, StyleRefinement, + Subscription, Task, TextStyle, TextStyleRefinement, Transformation, UnderlineStyle, WeakEntity, + Window, div, linear_color_stop, linear_gradient, list, percentage, point, prelude::*, + pulsating_between, }; use language::language_settings::SoftWrap; use language::{Buffer, Language}; @@ -31,7 +30,7 @@ use markdown::{HeadingLevelStyles, Markdown, MarkdownElement, MarkdownStyle}; use parking_lot::Mutex; use project::Project; use settings::Settings as _; -use text::{Anchor, BufferSnapshot}; +use text::Anchor; use theme::ThemeSettings; use ui::{Disclosure, Divider, DividerColor, KeyBinding, Tooltip, prelude::*}; use util::ResultExt; @@ -40,17 +39,15 @@ use zed_actions::agent::{Chat, NextHistoryMessage, PreviousHistoryMessage}; use ::acp_thread::{ AcpThread, AcpThreadEvent, AgentThreadEntry, AssistantMessage, AssistantMessageChunk, Diff, - LoadError, MentionPath, ThreadStatus, ToolCall, ToolCallContent, ToolCallStatus, + LoadError, MentionPath, ThreadStatus, ToolCall, ToolCallConfirmation, ToolCallContent, + ToolCallId, ToolCallStatus, }; use crate::acp::completion_provider::{ContextPickerCompletionProvider, MentionSet}; use crate::acp::message_history::MessageHistory; use crate::agent_diff::AgentDiff; use crate::message_editor::{MAX_EDITOR_LINES, MIN_EDITOR_LINES}; -use crate::ui::{AgentNotification, AgentNotificationEvent}; -use crate::{ - AgentDiffPane, AgentPanel, ExpandMessageEditor, Follow, KeepAll, OpenAgentDiff, RejectAll, -}; +use crate::{AgentDiffPane, ExpandMessageEditor, Follow, KeepAll, OpenAgentDiff, RejectAll}; const RESPONSE_PADDING_X: Pixels = px(19.); @@ -61,21 +58,18 @@ pub struct AcpThreadView { thread_state: ThreadState, diff_editors: HashMap>, message_editor: Entity, - message_set_from_history: Option, + message_set_from_history: bool, _message_editor_subscription: Subscription, mention_set: Arc>, - notifications: Vec>, - notification_subscriptions: HashMap, Vec>, last_error: Option>, list_state: ListState, auth_task: Option>, - expanded_tool_calls: HashSet, + expanded_tool_calls: HashSet, expanded_thinking_blocks: HashSet<(usize, usize)>, edits_expanded: bool, plan_expanded: bool, editor_expanded: bool, - message_history: Rc>>>, - _cancel_task: Option>, + message_history: Rc>>, } enum ThreadState { @@ -88,16 +82,22 @@ enum ThreadState { }, LoadError(LoadError), Unauthenticated { - connection: Rc, + thread: Entity, }, } +struct AlwaysAllowOption { + id: &'static str, + label: SharedString, + outcome: acp::ToolCallConfirmationOutcome, +} + impl AcpThreadView { pub fn new( agent: Rc, workspace: WeakEntity, project: Entity, - message_history: Rc>>>, + message_history: Rc>>, min_lines: usize, max_lines: Option, window: &mut Window, @@ -144,28 +144,14 @@ impl AcpThreadView { editor }); - let message_editor_subscription = - cx.subscribe(&message_editor, |this, editor, event, cx| { - if let editor::EditorEvent::BufferEdited = &event { - let buffer = editor - .read(cx) - .buffer() - .read(cx) - .as_singleton() - .unwrap() - .read(cx) - .snapshot(); - if let Some(message) = this.message_set_from_history.clone() - && message.version() != buffer.version() - { - this.message_set_from_history = None; - } - - if this.message_set_from_history.is_none() { - this.message_history.borrow_mut().reset_position(); - } + let message_editor_subscription = cx.subscribe(&message_editor, |this, _, event, _| { + if let editor::EditorEvent::BufferEdited = &event { + if !this.message_set_from_history { + this.message_history.borrow_mut().reset_position(); } - }); + this.message_set_from_history = false; + } + }); let mention_set = mention_set.clone(); @@ -192,11 +178,9 @@ impl AcpThreadView { project: project.clone(), thread_state: Self::initial_state(agent, workspace, project, window, cx), message_editor, - message_set_from_history: None, + message_set_from_history: false, _message_editor_subscription: message_editor_subscription, mention_set, - notifications: Vec::new(), - notification_subscriptions: HashMap::default(), diff_editors: Default::default(), list_state: list_state, last_error: None, @@ -207,7 +191,6 @@ impl AcpThreadView { plan_expanded: false, editor_expanded: false, message_history, - _cancel_task: None, } } @@ -225,9 +208,9 @@ impl AcpThreadView { .map(|worktree| worktree.read(cx).abs_path()) .unwrap_or_else(|| paths::home_dir().as_path().into()); - let connect_task = agent.connect(&root_dir, &project, cx); + let task = agent.new_thread(&root_dir, &project, cx); let load_task = cx.spawn_in(window, async move |this, cx| { - let connection = match connect_task.await { + let thread = match task.await { Ok(thread) => thread, Err(err) => { this.update(cx, |this, cx| { @@ -239,30 +222,48 @@ impl AcpThreadView { } }; - let result = match connection - .clone() - .new_thread(project.clone(), &root_dir, cx) - .await - { + let init_response = async { + let resp = thread + .read_with(cx, |thread, _cx| thread.initialize())? + .await?; + anyhow::Ok(resp) + }; + + let result = match init_response.await { Err(e) => { let mut cx = cx.clone(); - if e.is::() { - this.update(&mut cx, |this, cx| { - this.thread_state = ThreadState::Unauthenticated { connection }; - cx.notify(); - }) - .ok(); - return; + if e.downcast_ref::().is_some() { + let child_status = thread + .update(&mut cx, |thread, _| thread.child_status()) + .ok() + .flatten(); + if let Some(child_status) = child_status { + match child_status.await { + Ok(_) => Err(e), + Err(e) => Err(e), + } + } else { + Err(e) + } } else { Err(e) } } - Ok(session_id) => Ok(session_id), + Ok(response) => { + if !response.is_authenticated { + this.update(cx, |this, _| { + this.thread_state = ThreadState::Unauthenticated { thread }; + }) + .ok(); + return; + }; + Ok(()) + } }; this.update_in(cx, |this, window, cx| { match result { - Ok(thread) => { + Ok(()) => { let thread_subscription = cx.subscribe_in(&thread, window, Self::handle_thread_event); @@ -304,10 +305,10 @@ impl AcpThreadView { pub fn thread(&self) -> Option<&Entity> { match &self.thread_state { - ThreadState::Ready { thread, .. } => Some(thread), - ThreadState::Unauthenticated { .. } - | ThreadState::Loading { .. } - | ThreadState::LoadError(..) => None, + ThreadState::Ready { thread, .. } | ThreadState::Unauthenticated { thread } => { + Some(thread) + } + ThreadState::Loading { .. } | ThreadState::LoadError(..) => None, } } @@ -324,7 +325,7 @@ impl AcpThreadView { self.last_error.take(); if let Some(thread) = self.thread() { - self._cancel_task = Some(thread.update(cx, |thread, cx| thread.cancel(cx))); + thread.update(cx, |thread, cx| thread.cancel(cx)).detach(); } } @@ -361,7 +362,7 @@ impl AcpThreadView { self.last_error.take(); let mut ix = 0; - let mut chunks: Vec = Vec::new(); + let mut chunks: Vec = Vec::new(); let project = self.project.clone(); self.message_editor.update(cx, |editor, cx| { let text = editor.text(cx); @@ -373,19 +374,12 @@ impl AcpThreadView { { let crease_range = crease.range().to_offset(&snapshot.buffer_snapshot); if crease_range.start > ix { - chunks.push(text[ix..crease_range.start].into()); + chunks.push(acp::UserMessageChunk::Text { + text: text[ix..crease_range.start].to_string(), + }); } if let Some(abs_path) = project.read(cx).absolute_path(&project_path, cx) { - let path_str = abs_path.display().to_string(); - chunks.push(acp::ContentBlock::ResourceLink(acp::ResourceLink { - uri: path_str.clone(), - name: path_str, - annotations: None, - description: None, - mime_type: None, - size: None, - title: None, - })); + chunks.push(acp::UserMessageChunk::Path { path: abs_path }); } ix = crease_range.end; } @@ -394,7 +388,9 @@ impl AcpThreadView { if ix < text.len() { let last_chunk = text[ix..].trim(); if !last_chunk.is_empty() { - chunks.push(last_chunk.into()); + chunks.push(acp::UserMessageChunk::Text { + text: last_chunk.into(), + }); } } }) @@ -404,10 +400,9 @@ impl AcpThreadView { return; } - let Some(thread) = self.thread() else { - return; - }; - let task = thread.update(cx, |thread, cx| thread.send(chunks.clone(), cx)); + let Some(thread) = self.thread() else { return }; + let message = acp::SendUserMessageParams { chunks }; + let task = thread.update(cx, |thread, cx| thread.send(message.clone(), cx)); cx.spawn(async move |this, cx| { let result = task.await; @@ -424,15 +419,12 @@ impl AcpThreadView { let mention_set = self.mention_set.clone(); self.set_editor_is_expanded(false, cx); - self.message_editor.update(cx, |editor, cx| { editor.clear(window, cx); editor.remove_creases(mention_set.lock().drain(), cx) }); - self.scroll_to_bottom(cx); - - self.message_history.borrow_mut().push(chunks); + self.message_history.borrow_mut().push(message); } fn previous_history_message( @@ -441,21 +433,11 @@ impl AcpThreadView { window: &mut Window, cx: &mut Context, ) { - if self.message_set_from_history.is_none() && !self.message_editor.read(cx).is_empty(cx) { - self.message_editor.update(cx, |editor, cx| { - editor.move_up(&Default::default(), window, cx); - }); - return; - } - self.message_set_from_history = Self::set_draft_message( self.message_editor.clone(), self.mention_set.clone(), self.project.clone(), - self.message_history - .borrow_mut() - .prev() - .map(|blocks| blocks.as_slice()), + self.message_history.borrow_mut().prev(), window, cx, ); @@ -467,35 +449,14 @@ impl AcpThreadView { window: &mut Window, cx: &mut Context, ) { - if self.message_set_from_history.is_none() { - self.message_editor.update(cx, |editor, cx| { - editor.move_down(&Default::default(), window, cx); - }); - return; - } - - let mut message_history = self.message_history.borrow_mut(); - let next_history = message_history.next(); - - let set_draft_message = Self::set_draft_message( + self.message_set_from_history = Self::set_draft_message( self.message_editor.clone(), self.mention_set.clone(), self.project.clone(), - Some( - next_history - .map(|blocks| blocks.as_slice()) - .unwrap_or_else(|| &[]), - ), + self.message_history.borrow_mut().next(), window, cx, ); - // If we reset the text to an empty string because we ran out of history, - // we don't want to mark it as coming from the history - self.message_set_from_history = if next_history.is_some() { - set_draft_message - } else { - None - }; } fn open_agent_diff(&mut self, _: &OpenAgentDiff, window: &mut Window, cx: &mut Context) { @@ -529,30 +490,31 @@ impl AcpThreadView { message_editor: Entity, mention_set: Arc>, project: Entity, - message: Option<&[acp::ContentBlock]>, + message: Option<&acp::SendUserMessageParams>, window: &mut Window, cx: &mut Context, - ) -> Option { + ) -> bool { cx.notify(); - let message = message?; + let Some(message) = message else { + return false; + }; let mut text = String::new(); let mut mentions = Vec::new(); - for chunk in message { + for chunk in &message.chunks { match chunk { - acp::ContentBlock::Text(text_content) => { - text.push_str(&text_content.text); + acp::UserMessageChunk::Text { text: chunk } => { + text.push_str(&chunk); } - acp::ContentBlock::ResourceLink(resource_link) => { - let path = Path::new(&resource_link.uri); + acp::UserMessageChunk::Path { path } => { let start = text.len(); - let content = MentionPath::new(&path).to_string(); + let content = MentionPath::new(path).to_string(); text.push_str(&content); let end = text.len(); if let Some(project_path) = - project.read(cx).project_path_for_absolute_path(&path, cx) + project.read(cx).project_path_for_absolute_path(path, cx) { let filename: SharedString = path .file_name() @@ -563,9 +525,6 @@ impl AcpThreadView { mentions.push((start..end, project_path, filename)); } } - acp::ContentBlock::Image(_) - | acp::ContentBlock::Audio(_) - | acp::ContentBlock::Resource(_) => {} } } @@ -599,8 +558,7 @@ impl AcpThreadView { } } - let snapshot = snapshot.as_singleton().unwrap().2.clone(); - Some(snapshot.text) + true } fn handle_thread_event( @@ -622,30 +580,6 @@ impl AcpThreadView { self.sync_thread_entry_view(index, window, cx); self.list_state.splice(index..index + 1, 1); } - AcpThreadEvent::ToolAuthorizationRequired => { - self.notify_with_sound("Waiting for tool confirmation", IconName::Info, window, cx); - } - AcpThreadEvent::Stopped => { - let used_tools = thread.read(cx).used_tools_since_last_user_message(); - self.notify_with_sound( - if used_tools { - "Finished running tools" - } else { - "New message" - }, - IconName::ZedAssistant, - window, - cx, - ); - } - AcpThreadEvent::Error => { - self.notify_with_sound( - "Agent stopped due to an error", - IconName::Warning, - window, - cx, - ); - } } cx.notify(); } @@ -656,84 +590,71 @@ impl AcpThreadView { window: &mut Window, cx: &mut Context, ) { - let Some(multibuffers) = self.entry_diff_multibuffers(entry_ix, cx) else { + let Some(multibuffer) = self.entry_diff_multibuffer(entry_ix, cx) else { return; }; - let multibuffers = multibuffers.collect::>(); - - for multibuffer in multibuffers { - if self.diff_editors.contains_key(&multibuffer.entity_id()) { - return; - } - - let editor = cx.new(|cx| { - let mut editor = Editor::new( - EditorMode::Full { - scale_ui_elements_with_buffer_font_size: false, - show_active_line_background: false, - sized_by_content: true, - }, - multibuffer.clone(), - None, - window, - cx, - ); - editor.set_show_gutter(false, cx); - editor.disable_inline_diagnostics(); - editor.disable_expand_excerpt_buttons(cx); - editor.set_show_vertical_scrollbar(false, cx); - editor.set_minimap_visibility(MinimapVisibility::Disabled, window, cx); - editor.set_soft_wrap_mode(SoftWrap::None, cx); - editor.scroll_manager.set_forbid_vertical_scroll(true); - editor.set_show_indent_guides(false, cx); - editor.set_read_only(true); - editor.set_show_breakpoints(false, cx); - editor.set_show_code_actions(false, cx); - editor.set_show_git_diff_gutter(false, cx); - editor.set_expand_all_diff_hunks(cx); - editor.set_text_style_refinement(TextStyleRefinement { - font_size: Some( - TextSize::Small - .rems(cx) - .to_pixels(ThemeSettings::get_global(cx).agent_font_size(cx)) - .into(), - ), - ..Default::default() - }); - editor - }); - let entity_id = multibuffer.entity_id(); - cx.observe_release(&multibuffer, move |this, _, _| { - this.diff_editors.remove(&entity_id); - }) - .detach(); - - self.diff_editors.insert(entity_id, editor); + if self.diff_editors.contains_key(&multibuffer.entity_id()) { + return; } + + let editor = cx.new(|cx| { + let mut editor = Editor::new( + EditorMode::Full { + scale_ui_elements_with_buffer_font_size: false, + show_active_line_background: false, + sized_by_content: true, + }, + multibuffer.clone(), + None, + window, + cx, + ); + editor.set_show_gutter(false, cx); + editor.disable_inline_diagnostics(); + editor.disable_expand_excerpt_buttons(cx); + editor.set_show_vertical_scrollbar(false, cx); + editor.set_minimap_visibility(MinimapVisibility::Disabled, window, cx); + editor.set_soft_wrap_mode(SoftWrap::None, cx); + editor.scroll_manager.set_forbid_vertical_scroll(true); + editor.set_show_indent_guides(false, cx); + editor.set_read_only(true); + editor.set_show_breakpoints(false, cx); + editor.set_show_code_actions(false, cx); + editor.set_show_git_diff_gutter(false, cx); + editor.set_expand_all_diff_hunks(cx); + editor.set_text_style_refinement(TextStyleRefinement { + font_size: Some( + TextSize::Small + .rems(cx) + .to_pixels(ThemeSettings::get_global(cx).agent_font_size(cx)) + .into(), + ), + ..Default::default() + }); + editor + }); + let entity_id = multibuffer.entity_id(); + cx.observe_release(&multibuffer, move |this, _, _| { + this.diff_editors.remove(&entity_id); + }) + .detach(); + + self.diff_editors.insert(entity_id, editor); } - fn entry_diff_multibuffers( - &self, - entry_ix: usize, - cx: &App, - ) -> Option>> { + fn entry_diff_multibuffer(&self, entry_ix: usize, cx: &App) -> Option> { let entry = self.thread()?.read(cx).entries().get(entry_ix)?; - Some(entry.diffs().map(|diff| diff.multibuffer.clone())) + entry.diff().map(|diff| diff.multibuffer.clone()) } - fn authenticate( - &mut self, - method: acp::AuthMethodId, - window: &mut Window, - cx: &mut Context, - ) { - let ThreadState::Unauthenticated { ref connection } = self.thread_state else { + fn authenticate(&mut self, window: &mut Window, cx: &mut Context) { + let Some(thread) = self.thread().cloned() else { return; }; self.last_error.take(); - let authenticate = connection.authenticate(method, cx); + let authenticate = thread.read(cx).authenticate(); self.auth_task = Some(cx.spawn_in(window, { let project = self.project.clone(); let agent = self.agent.clone(); @@ -763,16 +684,15 @@ impl AcpThreadView { fn authorize_tool_call( &mut self, - tool_call_id: acp::ToolCallId, - option_id: acp::PermissionOptionId, - option_kind: acp::PermissionOptionKind, + id: ToolCallId, + outcome: acp::ToolCallConfirmationOutcome, cx: &mut Context, ) { let Some(thread) = self.thread() else { return; }; thread.update(cx, |thread, cx| { - thread.authorize_tool_call(tool_call_id, option_id, option_kind, cx); + thread.authorize_tool_call(id, outcome, cx); }); cx.notify(); } @@ -799,12 +719,10 @@ impl AcpThreadView { .border_1() .border_color(cx.theme().colors().border) .text_xs() - .children(message.content.markdown().map(|md| { - self.render_markdown( - md.clone(), - user_message_markdown_style(window, cx), - ) - })), + .child(self.render_markdown( + message.content.clone(), + user_message_markdown_style(window, cx), + )), ) .into_any(), AgentThreadEntry::AssistantMessage(AssistantMessage { chunks }) => { @@ -812,28 +730,20 @@ impl AcpThreadView { let message_body = v_flex() .w_full() .gap_2p5() - .children(chunks.iter().enumerate().filter_map( - |(chunk_ix, chunk)| match chunk { - AssistantMessageChunk::Message { block } => { - block.markdown().map(|md| { - self.render_markdown(md.clone(), style.clone()) - .into_any_element() - }) - } - AssistantMessageChunk::Thought { block } => { - block.markdown().map(|md| { - self.render_thinking_block( - index, - chunk_ix, - md.clone(), - window, - cx, - ) - .into_any_element() - }) - } - }, - )) + .children(chunks.iter().enumerate().map(|(chunk_ix, chunk)| { + match chunk { + AssistantMessageChunk::Text { chunk } => self + .render_markdown(chunk.clone(), style.clone()) + .into_any_element(), + AssistantMessageChunk::Thought { chunk } => self.render_thinking_block( + index, + chunk_ix, + chunk.clone(), + window, + cx, + ), + } + })) .into_any(); v_flex() @@ -959,12 +869,9 @@ impl AcpThreadView { let header_id = SharedString::from(format!("tool-call-header-{}", entry_ix)); let status_icon = match &tool_call.status { + ToolCallStatus::WaitingForConfirmation { .. } => None, ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Pending, - } - | ToolCallStatus::WaitingForConfirmation { .. } => None, - ToolCallStatus::Allowed { - status: acp::ToolCallStatus::InProgress, + status: acp::ToolCallStatus::Running, .. } => Some( Icon::new(IconName::ArrowCircle) @@ -978,13 +885,13 @@ impl AcpThreadView { .into_any(), ), ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Completed, + status: acp::ToolCallStatus::Finished, .. } => None, ToolCallStatus::Rejected | ToolCallStatus::Canceled | ToolCallStatus::Allowed { - status: acp::ToolCallStatus::Failed, + status: acp::ToolCallStatus::Error, .. } => Some( Icon::new(IconName::X) @@ -1002,9 +909,34 @@ impl AcpThreadView { .any(|content| matches!(content, ToolCallContent::Diff { .. })), }; - let is_collapsible = !tool_call.content.is_empty() && !needs_confirmation; + let is_collapsible = tool_call.content.is_some() && !needs_confirmation; let is_open = !is_collapsible || self.expanded_tool_calls.contains(&tool_call.id); + let content = if is_open { + match &tool_call.status { + ToolCallStatus::WaitingForConfirmation { confirmation, .. } => { + Some(self.render_tool_call_confirmation( + tool_call.id, + confirmation, + tool_call.content.as_ref(), + window, + cx, + )) + } + ToolCallStatus::Allowed { .. } | ToolCallStatus::Canceled => { + tool_call.content.as_ref().map(|content| { + div() + .py_1p5() + .child(self.render_tool_call_content(content, window, cx)) + .into_any_element() + }) + } + ToolCallStatus::Rejected => None, + } + } else { + None + }; + v_flex() .when(needs_confirmation, |this| { this.rounded_lg() @@ -1044,19 +976,9 @@ impl AcpThreadView { }) .gap_1p5() .child( - Icon::new(match tool_call.kind { - acp::ToolKind::Read => IconName::ToolRead, - acp::ToolKind::Edit => IconName::ToolPencil, - acp::ToolKind::Delete => IconName::ToolDeleteFile, - acp::ToolKind::Move => IconName::ArrowRightLeft, - acp::ToolKind::Search => IconName::ToolSearch, - acp::ToolKind::Execute => IconName::ToolTerminal, - acp::ToolKind::Think => IconName::ToolBulb, - acp::ToolKind::Fetch => IconName::ToolWeb, - acp::ToolKind::Other => IconName::ToolHammer, - }) - .size(IconSize::Small) - .color(Color::Muted), + Icon::new(tool_call.icon) + .size(IconSize::Small) + .color(Color::Muted), ) .child(if tool_call.locations.len() == 1 { let name = tool_call.locations[0] @@ -1101,16 +1023,16 @@ impl AcpThreadView { .gap_0p5() .when(is_collapsible, |this| { this.child( - Disclosure::new(("expand", entry_ix), is_open) + Disclosure::new(("expand", tool_call.id.0), is_open) .opened_icon(IconName::ChevronUp) .closed_icon(IconName::ChevronDown) .on_click(cx.listener({ - let id = tool_call.id.clone(); + let id = tool_call.id; move |this: &mut Self, _, _, cx: &mut Context| { if is_open { this.expanded_tool_calls.remove(&id); } else { - this.expanded_tool_calls.insert(id.clone()); + this.expanded_tool_calls.insert(id); } cx.notify(); } @@ -1120,12 +1042,12 @@ impl AcpThreadView { .children(status_icon), ) .on_click(cx.listener({ - let id = tool_call.id.clone(); + let id = tool_call.id; move |this: &mut Self, _, _, cx: &mut Context| { if is_open { this.expanded_tool_calls.remove(&id); } else { - this.expanded_tool_calls.insert(id.clone()); + this.expanded_tool_calls.insert(id); } cx.notify(); } @@ -1133,7 +1055,7 @@ impl AcpThreadView { ) .when(is_open, |this| { this.child( - v_flex() + div() .text_xs() .when(is_collapsible, |this| { this.mt_1() @@ -1142,45 +1064,7 @@ impl AcpThreadView { .bg(cx.theme().colors().editor_background) .rounded_lg() }) - .map(|this| { - if is_open { - match &tool_call.status { - ToolCallStatus::WaitingForConfirmation { options, .. } => this - .children(tool_call.content.iter().map(|content| { - div() - .py_1p5() - .child( - self.render_tool_call_content( - content, window, cx, - ), - ) - .into_any_element() - })) - .child(self.render_permission_buttons( - options, - entry_ix, - tool_call.id.clone(), - tool_call.content.is_empty(), - cx, - )), - ToolCallStatus::Allowed { .. } | ToolCallStatus::Canceled => { - this.children(tool_call.content.iter().map(|content| { - div() - .py_1p5() - .child( - self.render_tool_call_content( - content, window, cx, - ), - ) - .into_any_element() - })) - } - ToolCallStatus::Rejected => this, - } - } else { - this - } - }), + .children(content), ) }) } @@ -1192,20 +1076,14 @@ impl AcpThreadView { cx: &Context, ) -> AnyElement { match content { - ToolCallContent::ContentBlock { content } => { - if let Some(md) = content.markdown() { - div() - .p_2() - .child( - self.render_markdown( - md.clone(), - default_markdown_style(false, window, cx), - ), - ) - .into_any_element() - } else { - Empty.into_any_element() - } + ToolCallContent::Markdown { markdown } => { + div() + .p_2() + .child(self.render_markdown( + markdown.clone(), + default_markdown_style(false, window, cx), + )) + .into_any_element() } ToolCallContent::Diff { diff: Diff { multibuffer, .. }, @@ -1214,56 +1092,223 @@ impl AcpThreadView { } } - fn render_permission_buttons( + fn render_tool_call_confirmation( &self, - options: &[acp::PermissionOption], - entry_ix: usize, - tool_call_id: acp::ToolCallId, - empty_content: bool, + tool_call_id: ToolCallId, + confirmation: &ToolCallConfirmation, + content: Option<&ToolCallContent>, + window: &Window, + cx: &Context, + ) -> AnyElement { + let confirmation_container = v_flex().mt_1().py_1p5(); + + match confirmation { + ToolCallConfirmation::Edit { description } => confirmation_container + .child( + div() + .px_2() + .children(description.clone().map(|description| { + self.render_markdown( + description, + default_markdown_style(false, window, cx), + ) + })), + ) + .children(content.map(|content| self.render_tool_call_content(content, window, cx))) + .child(self.render_confirmation_buttons( + &[AlwaysAllowOption { + id: "always_allow", + label: "Always Allow Edits".into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, + }], + tool_call_id, + cx, + )) + .into_any(), + ToolCallConfirmation::Execute { + command, + root_command, + description, + } => confirmation_container + .child(v_flex().px_2().pb_1p5().child(command.clone()).children( + description.clone().map(|description| { + self.render_markdown(description, default_markdown_style(false, window, cx)) + .on_url_click({ + let workspace = self.workspace.clone(); + move |text, window, cx| { + Self::open_link(text, &workspace, window, cx); + } + }) + }), + )) + .children(content.map(|content| self.render_tool_call_content(content, window, cx))) + .child(self.render_confirmation_buttons( + &[AlwaysAllowOption { + id: "always_allow", + label: format!("Always Allow {root_command}").into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, + }], + tool_call_id, + cx, + )) + .into_any(), + ToolCallConfirmation::Mcp { + server_name, + tool_name: _, + tool_display_name, + description, + } => confirmation_container + .child( + v_flex() + .px_2() + .pb_1p5() + .child(format!("{server_name} - {tool_display_name}")) + .children(description.clone().map(|description| { + self.render_markdown( + description, + default_markdown_style(false, window, cx), + ) + })), + ) + .children(content.map(|content| self.render_tool_call_content(content, window, cx))) + .child(self.render_confirmation_buttons( + &[ + AlwaysAllowOption { + id: "always_allow_server", + label: format!("Always Allow {server_name}").into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllowMcpServer, + }, + AlwaysAllowOption { + id: "always_allow_tool", + label: format!("Always Allow {tool_display_name}").into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllowTool, + }, + ], + tool_call_id, + cx, + )) + .into_any(), + ToolCallConfirmation::Fetch { description, urls } => confirmation_container + .child( + v_flex() + .px_2() + .pb_1p5() + .gap_1() + .children(urls.iter().map(|url| { + h_flex().child( + Button::new(url.clone(), url) + .icon(IconName::ArrowUpRight) + .icon_color(Color::Muted) + .icon_size(IconSize::XSmall) + .on_click({ + let url = url.clone(); + move |_, _, cx| cx.open_url(&url) + }), + ) + })) + .children(description.clone().map(|description| { + self.render_markdown( + description, + default_markdown_style(false, window, cx), + ) + })), + ) + .children(content.map(|content| self.render_tool_call_content(content, window, cx))) + .child(self.render_confirmation_buttons( + &[AlwaysAllowOption { + id: "always_allow", + label: "Always Allow".into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, + }], + tool_call_id, + cx, + )) + .into_any(), + ToolCallConfirmation::Other { description } => confirmation_container + .child(v_flex().px_2().pb_1p5().child(self.render_markdown( + description.clone(), + default_markdown_style(false, window, cx), + ))) + .children(content.map(|content| self.render_tool_call_content(content, window, cx))) + .child(self.render_confirmation_buttons( + &[AlwaysAllowOption { + id: "always_allow", + label: "Always Allow".into(), + outcome: acp::ToolCallConfirmationOutcome::AlwaysAllow, + }], + tool_call_id, + cx, + )) + .into_any(), + } + } + + fn render_confirmation_buttons( + &self, + always_allow_options: &[AlwaysAllowOption], + tool_call_id: ToolCallId, cx: &Context, ) -> Div { h_flex() - .py_1p5() + .pt_1p5() .px_1p5() .gap_1() .justify_end() - .when(!empty_content, |this| { - this.border_t_1() - .border_color(self.tool_card_border_color(cx)) - }) - .children(options.iter().map(|option| { - let option_id = SharedString::from(option.id.0.clone()); - Button::new((option_id, entry_ix), option.label.clone()) - .map(|this| match option.kind { - acp::PermissionOptionKind::AllowOnce => { - this.icon(IconName::Check).icon_color(Color::Success) - } - acp::PermissionOptionKind::AllowAlways => { - this.icon(IconName::CheckDouble).icon_color(Color::Success) - } - acp::PermissionOptionKind::RejectOnce => { - this.icon(IconName::X).icon_color(Color::Error) - } - acp::PermissionOptionKind::RejectAlways => { - this.icon(IconName::X).icon_color(Color::Error) - } - }) + .border_t_1() + .border_color(self.tool_card_border_color(cx)) + .when(self.agent.supports_always_allow(), |this| { + this.children(always_allow_options.into_iter().map(|always_allow_option| { + let outcome = always_allow_option.outcome; + Button::new( + (always_allow_option.id, tool_call_id.0), + always_allow_option.label.clone(), + ) + .icon(IconName::CheckDouble) .icon_position(IconPosition::Start) .icon_size(IconSize::XSmall) + .icon_color(Color::Success) .on_click(cx.listener({ - let tool_call_id = tool_call_id.clone(); - let option_id = option.id.clone(); - let option_kind = option.kind; + let id = tool_call_id; + move |this, _, _, cx| { + this.authorize_tool_call(id, outcome, cx); + } + })) + })) + }) + .child( + Button::new(("allow", tool_call_id.0), "Allow") + .icon(IconName::Check) + .icon_position(IconPosition::Start) + .icon_size(IconSize::XSmall) + .icon_color(Color::Success) + .on_click(cx.listener({ + let id = tool_call_id; move |this, _, _, cx| { this.authorize_tool_call( - tool_call_id.clone(), - option_id.clone(), - option_kind, + id, + acp::ToolCallConfirmationOutcome::Allow, cx, ); } - })) - })) + })), + ) + .child( + Button::new(("reject", tool_call_id.0), "Reject") + .icon(IconName::X) + .icon_position(IconPosition::Start) + .icon_size(IconSize::XSmall) + .icon_color(Color::Error) + .on_click(cx.listener({ + let id = tool_call_id; + move |this, _, _, cx| { + this.authorize_tool_call( + id, + acp::ToolCallConfirmationOutcome::Reject, + cx, + ); + } + })), + ) } fn render_diff_editor(&self, multibuffer: &Entity) -> AnyElement { @@ -2025,15 +2070,15 @@ impl AcpThreadView { .icon_color(Color::Accent) .style(ButtonStyle::Filled) .disabled(self.thread().is_none() || is_editor_empty) + .on_click(cx.listener(|this, _, window, cx| { + this.chat(&Chat, window, cx); + })) .when(!is_editor_empty, |button| { button.tooltip(move |window, cx| Tooltip::for_action("Send", &Chat, window, cx)) }) .when(is_editor_empty, |button| { button.tooltip(Tooltip::text("Type a message to submit")) }) - .on_click(cx.listener(|this, _, window, cx| { - this.chat(&Chat, window, cx); - })) .into_any_element() } else { IconButton::new("stop-generation", IconName::StopFilled) @@ -2200,11 +2245,12 @@ impl AcpThreadView { .languages .language_for_name("Markdown"); - let (thread_summary, markdown) = if let Some(thread) = self.thread() { - let thread = thread.read(cx); - (thread.title().to_string(), thread.to_markdown(cx)) - } else { - return Task::ready(Ok(())); + let (thread_summary, markdown) = match &self.thread_state { + ThreadState::Ready { thread, .. } | ThreadState::Unauthenticated { thread } => { + let thread = thread.read(cx); + (thread.title().to_string(), thread.to_markdown(cx)) + } + ThreadState::Loading { .. } | ThreadState::LoadError(..) => return Task::ready(Ok(())), }; window.spawn(cx, async move |cx| { @@ -2247,165 +2293,17 @@ impl AcpThreadView { self.list_state.scroll_to(ListOffset::default()); cx.notify(); } +} - pub fn scroll_to_bottom(&mut self, cx: &mut Context) { - if let Some(thread) = self.thread() { - let entry_count = thread.read(cx).entries().len(); - self.list_state.reset(entry_count); - cx.notify(); - } +impl Focusable for AcpThreadView { + fn focus_handle(&self, cx: &App) -> FocusHandle { + self.message_editor.focus_handle(cx) } +} - fn notify_with_sound( - &mut self, - caption: impl Into, - icon: IconName, - window: &mut Window, - cx: &mut Context, - ) { - self.play_notification_sound(window, cx); - self.show_notification(caption, icon, window, cx); - } - - fn play_notification_sound(&self, window: &Window, cx: &mut App) { - let settings = AgentSettings::get_global(cx); - if settings.play_sound_when_agent_done && !window.is_window_active() { - Audio::play_sound(Sound::AgentDone, cx); - } - } - - fn show_notification( - &mut self, - caption: impl Into, - icon: IconName, - window: &mut Window, - cx: &mut Context, - ) { - if window.is_window_active() || !self.notifications.is_empty() { - return; - } - - let title = self.title(cx); - - match AgentSettings::get_global(cx).notify_when_agent_waiting { - NotifyWhenAgentWaiting::PrimaryScreen => { - if let Some(primary) = cx.primary_display() { - self.pop_up(icon, caption.into(), title, window, primary, cx); - } - } - NotifyWhenAgentWaiting::AllScreens => { - let caption = caption.into(); - for screen in cx.displays() { - self.pop_up(icon, caption.clone(), title.clone(), window, screen, cx); - } - } - NotifyWhenAgentWaiting::Never => { - // Don't show anything - } - } - } - - fn pop_up( - &mut self, - icon: IconName, - caption: SharedString, - title: SharedString, - window: &mut Window, - screen: Rc, - cx: &mut Context, - ) { - let options = AgentNotification::window_options(screen, cx); - - let project_name = self.workspace.upgrade().and_then(|workspace| { - workspace - .read(cx) - .project() - .read(cx) - .visible_worktrees(cx) - .next() - .map(|worktree| worktree.read(cx).root_name().to_string()) - }); - - if let Some(screen_window) = cx - .open_window(options, |_, cx| { - cx.new(|_| { - AgentNotification::new(title.clone(), caption.clone(), icon, project_name) - }) - }) - .log_err() - { - if let Some(pop_up) = screen_window.entity(cx).log_err() { - self.notification_subscriptions - .entry(screen_window) - .or_insert_with(Vec::new) - .push(cx.subscribe_in(&pop_up, window, { - |this, _, event, window, cx| match event { - AgentNotificationEvent::Accepted => { - let handle = window.window_handle(); - cx.activate(true); - - let workspace_handle = this.workspace.clone(); - - // If there are multiple Zed windows, activate the correct one. - cx.defer(move |cx| { - handle - .update(cx, |_view, window, _cx| { - window.activate_window(); - - if let Some(workspace) = workspace_handle.upgrade() { - workspace.update(_cx, |workspace, cx| { - workspace.focus_panel::(window, cx); - }); - } - }) - .log_err(); - }); - - this.dismiss_notifications(cx); - } - AgentNotificationEvent::Dismissed => { - this.dismiss_notifications(cx); - } - } - })); - - self.notifications.push(screen_window); - - // If the user manually refocuses the original window, dismiss the popup. - self.notification_subscriptions - .entry(screen_window) - .or_insert_with(Vec::new) - .push({ - let pop_up_weak = pop_up.downgrade(); - - cx.observe_window_activation(window, move |_, window, cx| { - if window.is_window_active() { - if let Some(pop_up) = pop_up_weak.upgrade() { - pop_up.update(cx, |_, cx| { - cx.emit(AgentNotificationEvent::Dismissed); - }); - } - } - }) - }); - } - } - } - - fn dismiss_notifications(&mut self, cx: &mut Context) { - for window in self.notifications.drain(..) { - window - .update(cx, |_, window, _| { - window.remove_window(); - }) - .ok(); - - self.notification_subscriptions.remove(&window); - } - } - - fn render_thread_controls(&mut self, cx: &mut Context) -> impl IntoElement { - let open_as_markdown = IconButton::new("open-as-markdown", IconName::FileText) +impl Render for AcpThreadView { + fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { + let open_as_markdown = IconButton::new("open-as-markdown", IconName::DocumentText) .icon_size(IconSize::XSmall) .icon_color(Color::Ignored) .tooltip(Tooltip::text("Open Thread as Markdown")) @@ -2424,28 +2322,6 @@ impl AcpThreadView { this.scroll_to_top(cx); })); - h_flex() - .mt_1() - .mr_1() - .py_2() - .px(RESPONSE_PADDING_X) - .opacity(0.4) - .hover(|style| style.opacity(1.)) - .flex_wrap() - .justify_end() - .child(open_as_markdown) - .child(scroll_to_top) - } -} - -impl Focusable for AcpThreadView { - fn focus_handle(&self, cx: &App) -> FocusHandle { - self.message_editor.focus_handle(cx) - } -} - -impl Render for AcpThreadView { - fn render(&mut self, window: &mut Window, cx: &mut Context) -> impl IntoElement { v_flex() .size_full() .key_context("AcpThread") @@ -2454,26 +2330,22 @@ impl Render for AcpThreadView { .on_action(cx.listener(Self::next_history_message)) .on_action(cx.listener(Self::open_agent_diff)) .child(match &self.thread_state { - ThreadState::Unauthenticated { connection } => v_flex() - .p_2() - .flex_1() - .items_center() - .justify_center() - .child(self.render_pending_auth_state()) - .child(h_flex().mt_1p5().justify_center().children( - connection.auth_methods().into_iter().map(|method| { - Button::new( - SharedString::from(method.id.0.clone()), - method.label.clone(), - ) - .on_click({ - let method_id = method.id.clone(); - cx.listener(move |this, _, window, cx| { - this.authenticate(method_id.clone(), window, cx) - }) - }) - }), - )), + ThreadState::Unauthenticated { .. } => { + v_flex() + .p_2() + .flex_1() + .items_center() + .justify_center() + .child(self.render_pending_auth_state()) + .child( + h_flex().mt_1p5().justify_center().child( + Button::new("sign-in", format!("Sign in to {}", self.agent.name())) + .on_click(cx.listener(|this, _, window, cx| { + this.authenticate(window, cx) + })), + ), + ) + } ThreadState::Loading { .. } => v_flex().flex_1().child(self.render_empty_state(cx)), ThreadState::LoadError(e) => v_flex() .p_2() @@ -2481,39 +2353,42 @@ impl Render for AcpThreadView { .items_center() .justify_center() .child(self.render_error_state(e, cx)), - ThreadState::Ready { thread, .. } => { - let thread_clone = thread.clone(); - - v_flex().flex_1().map(|this| { - if self.list_state.item_count() > 0 { - let is_generating = - matches!(thread_clone.read(cx).status(), ThreadStatus::Generating); - - this.child( - list(self.list_state.clone()) - .with_sizing_behavior(gpui::ListSizingBehavior::Auto) - .flex_grow() - .into_any(), - ) - .when(!is_generating, |this| { - this.child(self.render_thread_controls(cx)) - }) - .children(match thread_clone.read(cx).status() { - ThreadStatus::Idle | ThreadStatus::WaitingForToolConfirmation => { - None - } - ThreadStatus::Generating => div() - .px_5() - .py_2() - .child(LoadingLabel::new("").size(LabelSize::Small)) - .into(), - }) - .children(self.render_activity_bar(&thread_clone, window, cx)) - } else { - this.child(self.render_empty_state(cx)) - } - }) - } + ThreadState::Ready { thread, .. } => v_flex().flex_1().map(|this| { + if self.list_state.item_count() > 0 { + this.child( + list(self.list_state.clone()) + .with_sizing_behavior(gpui::ListSizingBehavior::Auto) + .flex_grow() + .into_any(), + ) + .child( + h_flex() + .group("controls") + .mt_1() + .mr_1() + .py_2() + .px(RESPONSE_PADDING_X) + .opacity(0.4) + .hover(|style| style.opacity(1.)) + .flex_wrap() + .justify_end() + .child(open_as_markdown) + .child(scroll_to_top) + .into_any_element(), + ) + .children(match thread.read(cx).status() { + ThreadStatus::Idle | ThreadStatus::WaitingForToolConfirmation => None, + ThreadStatus::Generating => div() + .px_5() + .py_2() + .child(LoadingLabel::new("").size(LabelSize::Small)) + .into(), + }) + .children(self.render_activity_bar(&thread, window, cx)) + } else { + this.child(self.render_empty_state(cx)) + } + }), }) .when_some(self.last_error.clone(), |el, error| { el.child( @@ -2699,347 +2574,3 @@ fn plan_label_markdown_style( ..default_md_style } } - -#[cfg(test)] -mod tests { - use agent_client_protocol::SessionId; - use editor::EditorSettings; - use fs::FakeFs; - use futures::future::try_join_all; - use gpui::{SemanticVersion, TestAppContext, VisualTestContext}; - use rand::Rng; - use settings::SettingsStore; - - use super::*; - - #[gpui::test] - async fn test_notification_for_stop_event(cx: &mut TestAppContext) { - init_test(cx); - - let (thread_view, cx) = setup_thread_view(StubAgentServer::default(), cx).await; - - let message_editor = cx.read(|cx| thread_view.read(cx).message_editor.clone()); - message_editor.update_in(cx, |editor, window, cx| { - editor.set_text("Hello", window, cx); - }); - - cx.deactivate_window(); - - thread_view.update_in(cx, |thread_view, window, cx| { - thread_view.chat(&Chat, window, cx); - }); - - cx.run_until_parked(); - - assert!( - cx.windows() - .iter() - .any(|window| window.downcast::().is_some()) - ); - } - - #[gpui::test] - async fn test_notification_for_error(cx: &mut TestAppContext) { - init_test(cx); - - let (thread_view, cx) = - setup_thread_view(StubAgentServer::new(SaboteurAgentConnection), cx).await; - - let message_editor = cx.read(|cx| thread_view.read(cx).message_editor.clone()); - message_editor.update_in(cx, |editor, window, cx| { - editor.set_text("Hello", window, cx); - }); - - cx.deactivate_window(); - - thread_view.update_in(cx, |thread_view, window, cx| { - thread_view.chat(&Chat, window, cx); - }); - - cx.run_until_parked(); - - assert!( - cx.windows() - .iter() - .any(|window| window.downcast::().is_some()) - ); - } - - #[gpui::test] - async fn test_notification_for_tool_authorization(cx: &mut TestAppContext) { - init_test(cx); - - let tool_call_id = acp::ToolCallId("1".into()); - let tool_call = acp::ToolCall { - id: tool_call_id.clone(), - label: "Label".into(), - kind: acp::ToolKind::Edit, - status: acp::ToolCallStatus::Pending, - content: vec!["hi".into()], - locations: vec![], - raw_input: None, - }; - let connection = StubAgentConnection::new(vec![acp::SessionUpdate::ToolCall(tool_call)]) - .with_permission_requests(HashMap::from_iter([( - tool_call_id, - vec![acp::PermissionOption { - id: acp::PermissionOptionId("1".into()), - label: "Allow".into(), - kind: acp::PermissionOptionKind::AllowOnce, - }], - )])); - let (thread_view, cx) = setup_thread_view(StubAgentServer::new(connection), cx).await; - - let message_editor = cx.read(|cx| thread_view.read(cx).message_editor.clone()); - message_editor.update_in(cx, |editor, window, cx| { - editor.set_text("Hello", window, cx); - }); - - cx.deactivate_window(); - - thread_view.update_in(cx, |thread_view, window, cx| { - thread_view.chat(&Chat, window, cx); - }); - - cx.run_until_parked(); - - assert!( - cx.windows() - .iter() - .any(|window| window.downcast::().is_some()) - ); - } - - async fn setup_thread_view( - agent: impl AgentServer + 'static, - cx: &mut TestAppContext, - ) -> (Entity, &mut VisualTestContext) { - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [], cx).await; - let (workspace, cx) = - cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx)); - - let thread_view = cx.update(|window, cx| { - cx.new(|cx| { - AcpThreadView::new( - Rc::new(agent), - workspace.downgrade(), - project, - Rc::new(RefCell::new(MessageHistory::default())), - 1, - None, - window, - cx, - ) - }) - }); - cx.run_until_parked(); - (thread_view, cx) - } - - struct StubAgentServer { - connection: C, - } - - impl StubAgentServer { - fn new(connection: C) -> Self { - Self { connection } - } - } - - impl StubAgentServer { - fn default() -> Self { - Self::new(StubAgentConnection::default()) - } - } - - impl AgentServer for StubAgentServer - where - C: 'static + AgentConnection + Send + Clone, - { - fn logo(&self) -> ui::IconName { - unimplemented!() - } - - fn name(&self) -> &'static str { - unimplemented!() - } - - fn empty_state_headline(&self) -> &'static str { - unimplemented!() - } - - fn empty_state_message(&self) -> &'static str { - unimplemented!() - } - - fn connect( - &self, - _root_dir: &Path, - _project: &Entity, - _cx: &mut App, - ) -> Task>> { - Task::ready(Ok(Rc::new(self.connection.clone()))) - } - } - - #[derive(Clone, Default)] - struct StubAgentConnection { - sessions: Arc>>>, - permission_requests: HashMap>, - updates: Vec, - } - - impl StubAgentConnection { - fn new(updates: Vec) -> Self { - Self { - updates, - permission_requests: HashMap::default(), - sessions: Arc::default(), - } - } - - fn with_permission_requests( - mut self, - permission_requests: HashMap>, - ) -> Self { - self.permission_requests = permission_requests; - self - } - } - - impl AgentConnection for StubAgentConnection { - fn auth_methods(&self) -> &[acp::AuthMethod] { - &[] - } - - fn new_thread( - self: Rc, - project: Entity, - _cwd: &Path, - cx: &mut gpui::AsyncApp, - ) -> Task>> { - let session_id = SessionId( - rand::thread_rng() - .sample_iter(&rand::distributions::Alphanumeric) - .take(7) - .map(char::from) - .collect::() - .into(), - ); - let thread = cx - .new(|cx| AcpThread::new("Test", self.clone(), project, session_id.clone(), cx)) - .unwrap(); - self.sessions.lock().insert(session_id, thread.downgrade()); - Task::ready(Ok(thread)) - } - - fn authenticate( - &self, - _method_id: acp::AuthMethodId, - _cx: &mut App, - ) -> Task> { - unimplemented!() - } - - fn prompt(&self, params: acp::PromptRequest, cx: &mut App) -> Task> { - let sessions = self.sessions.lock(); - let thread = sessions.get(¶ms.session_id).unwrap(); - let mut tasks = vec![]; - for update in &self.updates { - let thread = thread.clone(); - let update = update.clone(); - let permission_request = if let acp::SessionUpdate::ToolCall(tool_call) = &update - && let Some(options) = self.permission_requests.get(&tool_call.id) - { - Some((tool_call.clone(), options.clone())) - } else { - None - }; - let task = cx.spawn(async move |cx| { - if let Some((tool_call, options)) = permission_request { - let permission = thread.update(cx, |thread, cx| { - thread.request_tool_call_permission( - tool_call.clone(), - options.clone(), - cx, - ) - })?; - permission.await?; - } - thread.update(cx, |thread, cx| { - thread.handle_session_update(update.clone(), cx).unwrap(); - })?; - anyhow::Ok(()) - }); - tasks.push(task); - } - cx.spawn(async move |_| { - try_join_all(tasks).await?; - Ok(()) - }) - } - - fn cancel(&self, _session_id: &acp::SessionId, _cx: &mut App) { - unimplemented!() - } - } - - #[derive(Clone)] - struct SaboteurAgentConnection; - - impl AgentConnection for SaboteurAgentConnection { - fn new_thread( - self: Rc, - project: Entity, - _cwd: &Path, - cx: &mut gpui::AsyncApp, - ) -> Task>> { - Task::ready(Ok(cx - .new(|cx| { - AcpThread::new( - "SaboteurAgentConnection", - self, - project, - SessionId("test".into()), - cx, - ) - }) - .unwrap())) - } - - fn auth_methods(&self) -> &[acp::AuthMethod] { - &[] - } - - fn authenticate( - &self, - _method_id: acp::AuthMethodId, - _cx: &mut App, - ) -> Task> { - unimplemented!() - } - - fn prompt(&self, _params: acp::PromptRequest, _cx: &mut App) -> Task> { - Task::ready(Err(anyhow::anyhow!("Error prompting"))) - } - - fn cancel(&self, _session_id: &acp::SessionId, _cx: &mut App) { - unimplemented!() - } - } - - fn init_test(cx: &mut TestAppContext) { - cx.update(|cx| { - let settings_store = SettingsStore::test(cx); - cx.set_global(settings_store); - language::init(cx); - Project::init_settings(cx); - AgentSettings::register(cx); - workspace::init_settings(cx); - ThemeSettings::register(cx); - release_channel::init(SemanticVersion::default(), cx); - EditorSettings::register(cx); - }); - } -} diff --git a/crates/agent_ui/src/active_thread.rs b/crates/agent_ui/src/active_thread.rs index 04a093c7d0..e27c318221 100644 --- a/crates/agent_ui/src/active_thread.rs +++ b/crates/agent_ui/src/active_thread.rs @@ -14,7 +14,6 @@ use agent_settings::{AgentSettings, NotifyWhenAgentWaiting}; use anyhow::Context as _; use assistant_tool::ToolUseStatus; use audio::{Audio, Sound}; -use cloud_llm_client::CompletionIntent; use collections::{HashMap, HashSet}; use editor::actions::{MoveUp, Paste}; use editor::scroll::Autoscroll; @@ -53,6 +52,7 @@ use util::ResultExt as _; use util::markdown::MarkdownCodeBlock; use workspace::{CollaboratorId, Workspace}; use zed_actions::assistant::OpenRulesLibrary; +use zed_llm_client::CompletionIntent; const CODEBLOCK_CONTAINER_GROUP: &str = "codeblock_container"; const EDIT_PREVIOUS_MESSAGE_MIN_LINES: usize = 1; diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index dad930be9e..fabeee2bce 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -7,7 +7,6 @@ use std::{sync::Arc, time::Duration}; use agent_settings::AgentSettings; use assistant_tool::{ToolSource, ToolWorkingSet}; -use cloud_llm_client::Plan; use collections::HashMap; use context_server::ContextServerId; use extension::ExtensionManifest; @@ -26,6 +25,7 @@ use project::{ context_server_store::{ContextServerConfiguration, ContextServerStatus, ContextServerStore}, project_settings::{ContextServerSettings, ProjectSettings}, }; +use proto::Plan; use settings::{Settings, update_settings_file}; use ui::{ Chip, ContextMenu, Disclosure, Divider, DividerColor, ElevationIndex, Indicator, PopoverMenu, @@ -180,7 +180,7 @@ impl AgentConfiguration { let current_plan = if is_zed_provider { self.workspace .upgrade() - .and_then(|workspace| workspace.read(cx).user_store().read(cx).plan()) + .and_then(|workspace| workspace.read(cx).user_store().read(cx).current_plan()) } else { None }; @@ -193,7 +193,6 @@ impl AgentConfiguration { .unwrap_or(false); v_flex() - .w_full() .when(is_expanded, |this| this.mb_2()) .child( div() @@ -224,7 +223,6 @@ impl AgentConfiguration { .hover(|hover| hover.bg(cx.theme().colors().element_hover)) .child( h_flex() - .w_full() .gap_2() .child( Icon::new(provider.icon()) @@ -233,7 +231,6 @@ impl AgentConfiguration { ) .child( h_flex() - .w_full() .gap_1() .child( Label::new(provider_name.clone()) @@ -317,7 +314,6 @@ impl AgentConfiguration { let providers = LanguageModelRegistry::read_global(cx).providers(); v_flex() - .w_full() .child( h_flex() .p(DynamicSpacing::Base16.rems(cx)) @@ -328,67 +324,50 @@ impl AgentConfiguration { .justify_between() .child( v_flex() - .w_full() .gap_0p5() - .child( - h_flex() - .w_full() - .gap_2() - .justify_between() - .child(Headline::new("LLM Providers")) - .child( - PopoverMenu::new("add-provider-popover") - .trigger( - Button::new("add-provider", "Add Provider") - .icon_position(IconPosition::Start) - .icon(IconName::Plus) - .icon_size(IconSize::Small) - .icon_color(Color::Muted) - .label_size(LabelSize::Small), - ) - .anchor(gpui::Corner::TopRight) - .menu({ - let workspace = self.workspace.clone(); - move |window, cx| { - Some(ContextMenu::build( - window, - cx, - |menu, _window, _cx| { - menu.header("Compatible APIs").entry( - "OpenAI", - None, - { - let workspace = - workspace.clone(); - move |window, cx| { - workspace - .update(cx, |workspace, cx| { - AddLlmProviderModal::toggle( - LlmCompatibleProvider::OpenAi, - workspace, - window, - cx, - ); - }) - .log_err(); - } - }, - ) - }, - )) - } - }), - ), - ) + .child(Headline::new("LLM Providers")) .child( Label::new("Add at least one provider to use AI-powered features.") .color(Color::Muted), ), + ) + .child( + PopoverMenu::new("add-provider-popover") + .trigger( + Button::new("add-provider", "Add Provider") + .icon_position(IconPosition::Start) + .icon(IconName::Plus) + .icon_size(IconSize::Small) + .icon_color(Color::Muted) + .label_size(LabelSize::Small), + ) + .anchor(gpui::Corner::TopRight) + .menu({ + let workspace = self.workspace.clone(); + move |window, cx| { + Some(ContextMenu::build(window, cx, |menu, _window, _cx| { + menu.header("Compatible APIs").entry("OpenAI", None, { + let workspace = workspace.clone(); + move |window, cx| { + workspace + .update(cx, |workspace, cx| { + AddLlmProviderModal::toggle( + LlmCompatibleProvider::OpenAi, + workspace, + window, + cx, + ); + }) + .log_err(); + } + }) + })) + } + }), ), ) .child( div() - .w_full() .pl(DynamicSpacing::Base08.rems(cx)) .pr(DynamicSpacing::Base20.rems(cx)) .children( @@ -404,11 +383,9 @@ impl AgentConfiguration { let fs = self.fs.clone(); SwitchField::new( - "always-allow-tool-actions-switch", - "Allow running commands without asking for confirmation", - Some( - "The agent can perform potentially destructive actions without asking for your confirmation.".into(), - ), + "single-file-review", + "Enable single-file agent reviews", + "Agent edits are also displayed in single-file editors for review.", always_allow_tool_actions, move |state, _window, cx| { let allow = state == &ToggleState::Selected; @@ -426,7 +403,7 @@ impl AgentConfiguration { SwitchField::new( "single-file-review", "Enable single-file agent reviews", - Some("Agent edits are also displayed in single-file editors for review.".into()), + "Agent edits are also displayed in single-file editors for review.", single_file_review, move |state, _window, cx| { let allow = state == &ToggleState::Selected; @@ -444,9 +421,7 @@ impl AgentConfiguration { SwitchField::new( "sound-notification", "Play sound when finished generating", - Some( - "Hear a notification sound when the agent is done generating changes or needs your input.".into(), - ), + "Hear a notification sound when the agent is done generating changes or needs your input.", play_sound_when_agent_done, move |state, _window, cx| { let allow = state == &ToggleState::Selected; @@ -464,9 +439,7 @@ impl AgentConfiguration { SwitchField::new( "modifier-send", "Use modifier to submit a message", - Some( - "Make a modifier (cmd-enter on macOS, ctrl-enter on Linux) required to send messages.".into(), - ), + "Make a modifier (cmd-enter on macOS, ctrl-enter on Linux) required to send messages.", use_modifier_to_send, move |state, _window, cx| { let allow = state == &ToggleState::Selected; @@ -508,7 +481,7 @@ impl AgentConfiguration { .blend(cx.theme().colors().text_accent.opacity(0.2)); let (plan_name, label_color, bg_color) = match plan { - Plan::ZedFree => ("Free", Color::Default, free_chip_bg), + Plan::Free => ("Free", Color::Default, free_chip_bg), Plan::ZedProTrial => ("Pro Trial", Color::Accent, pro_chip_bg), Plan::ZedPro => ("Pro", Color::Accent, pro_chip_bg), }; diff --git a/crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs b/crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs index 5d44bb2d92..45536ff13b 100644 --- a/crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs +++ b/crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs @@ -483,7 +483,7 @@ impl ManageProfilesModal { let icon = match mode.profile_id.as_str() { "write" => IconName::Pencil, - "ask" => IconName::Chat, + "ask" => IconName::MessageBubbles, _ => IconName::UserRoundPen, }; diff --git a/crates/agent_ui/src/agent_diff.rs b/crates/agent_ui/src/agent_diff.rs index c4dc359093..e69664ce88 100644 --- a/crates/agent_ui/src/agent_diff.rs +++ b/crates/agent_ui/src/agent_diff.rs @@ -1506,7 +1506,8 @@ impl AgentDiff { .read(cx) .entries() .last() - .map_or(false, |entry| entry.diffs().next().is_some()) + .and_then(|entry| entry.diff()) + .is_some() { self.update_reviewing_editors(workspace, window, cx); } @@ -1516,14 +1517,12 @@ impl AgentDiff { .read(cx) .entries() .get(*ix) - .map_or(false, |entry| entry.diffs().next().is_some()) + .and_then(|entry| entry.diff()) + .is_some() { self.update_reviewing_editors(workspace, window, cx); } } - AcpThreadEvent::Stopped - | AcpThreadEvent::ToolAuthorizationRequired - | AcpThreadEvent::Error => {} } } diff --git a/crates/agent_ui/src/agent_panel.rs b/crates/agent_ui/src/agent_panel.rs index b552a701f0..a0250816a0 100644 --- a/crates/agent_ui/src/agent_panel.rs +++ b/crates/agent_ui/src/agent_panel.rs @@ -44,7 +44,6 @@ use assistant_context::{AssistantContext, ContextEvent, ContextSummary}; use assistant_slash_command::SlashCommandWorkingSet; use assistant_tool::ToolWorkingSet; use client::{DisableAiSettings, UserStore, zed_urls}; -use cloud_llm_client::{CompletionIntent, Plan, UsageLimit}; use editor::{Anchor, AnchorRangeExt as _, Editor, EditorEvent, MultiBuffer}; use feature_flags::{self, FeatureFlagAppExt}; use fs::Fs; @@ -60,6 +59,7 @@ use language_model::{ }; use project::{Project, ProjectPath, Worktree}; use prompt_store::{PromptBuilder, PromptStore, UserPromptId}; +use proto::Plan; use rules_library::{RulesLibrary, open_rules_library}; use search::{BufferSearchBar, buffer_search}; use settings::{Settings, update_settings_file}; @@ -77,9 +77,10 @@ use workspace::{ }; use zed_actions::{ DecreaseBufferFontSize, IncreaseBufferFontSize, ResetBufferFontSize, - agent::{OpenOnboardingModal, OpenSettings, ResetOnboarding, ToggleModelSelector}, + agent::{OpenConfiguration, OpenOnboardingModal, ResetOnboarding, ToggleModelSelector}, assistant::{OpenRulesLibrary, ToggleFocus}, }; +use zed_llm_client::{CompletionIntent, UsageLimit}; const AGENT_PANEL_KEY: &str = "agent_panel"; @@ -104,7 +105,7 @@ pub fn init(cx: &mut App) { panel.update(cx, |panel, cx| panel.open_history(window, cx)); } }) - .register_action(|workspace, _: &OpenSettings, window, cx| { + .register_action(|workspace, _: &OpenConfiguration, window, cx| { if let Some(panel) = workspace.panel::(cx) { workspace.focus_panel::(window, cx); panel.update(cx, |panel, cx| panel.open_configuration(window, cx)); @@ -439,7 +440,7 @@ pub struct AgentPanel { local_timezone: UtcOffset, active_view: ActiveView, acp_message_history: - Rc>>>, + Rc>>, previous_view: Option, history_store: Entity, history: Entity, @@ -578,6 +579,7 @@ impl AgentPanel { MessageEditor::new( fs.clone(), workspace.clone(), + user_store.clone(), message_editor_context_store.clone(), prompt_store.clone(), thread_store.downgrade(), @@ -846,6 +848,7 @@ impl AgentPanel { MessageEditor::new( self.fs.clone(), self.workspace.clone(), + self.user_store.clone(), context_store.clone(), self.prompt_store.clone(), self.thread_store.downgrade(), @@ -1119,6 +1122,7 @@ impl AgentPanel { MessageEditor::new( self.fs.clone(), self.workspace.clone(), + self.user_store.clone(), context_store, self.prompt_store.clone(), self.thread_store.downgrade(), @@ -1911,6 +1915,27 @@ impl AgentPanel { .when(cx.has_flag::(), |this| { this.header("Zed Agent") }) + .item( + ContextMenuEntry::new("New Thread") + .icon(IconName::NewThread) + .icon_color(Color::Muted) + .action(NewThread::default().boxed_clone()) + .handler(move |window, cx| { + window.dispatch_action( + NewThread::default().boxed_clone(), + cx, + ); + }), + ) + .item( + ContextMenuEntry::new("New Text Thread") + .icon(IconName::NewTextThread) + .icon_color(Color::Muted) + .action(NewTextThread.boxed_clone()) + .handler(move |window, cx| { + window.dispatch_action(NewTextThread.boxed_clone(), cx); + }), + ) .when_some(active_thread, |this, active_thread| { let thread = active_thread.read(cx); @@ -1918,7 +1943,7 @@ impl AgentPanel { let thread_id = thread.id().clone(); this.item( ContextMenuEntry::new("New From Summary") - .icon(IconName::ThreadFromSummary) + .icon(IconName::NewFromSummary) .icon_color(Color::Muted) .handler(move |window, cx| { window.dispatch_action( @@ -1933,27 +1958,6 @@ impl AgentPanel { this } }) - .item( - ContextMenuEntry::new("New Thread") - .icon(IconName::Thread) - .icon_color(Color::Muted) - .action(NewThread::default().boxed_clone()) - .handler(move |window, cx| { - window.dispatch_action( - NewThread::default().boxed_clone(), - cx, - ); - }), - ) - .item( - ContextMenuEntry::new("New Text Thread") - .icon(IconName::TextThread) - .icon_color(Color::Muted) - .action(NewTextThread.boxed_clone()) - .handler(move |window, cx| { - window.dispatch_action(NewTextThread.boxed_clone(), cx); - }), - ) .when(cx.has_flag::(), |this| { this.separator() .header("External Agents") @@ -2012,69 +2016,65 @@ impl AgentPanel { ) .anchor(Corner::TopRight) .with_handle(self.agent_panel_menu_handle.clone()) - .menu({ - let focus_handle = focus_handle.clone(); - move |window, cx| { - Some(ContextMenu::build(window, cx, |mut menu, _window, _| { - menu = menu.context(focus_handle.clone()); - if let Some(usage) = usage { - menu = menu - .header_with_link("Prompt Usage", "Manage", account_url.clone()) - .custom_entry( - move |_window, cx| { - let used_percentage = match usage.limit { - UsageLimit::Limited(limit) => { - Some((usage.amount as f32 / limit as f32) * 100.) - } - UsageLimit::Unlimited => None, - }; - - h_flex() - .flex_1() - .gap_1p5() - .children(used_percentage.map(|percent| { - ProgressBar::new("usage", percent, 100., cx) - })) - .child( - Label::new(match usage.limit { - UsageLimit::Limited(limit) => { - format!("{} / {limit}", usage.amount) - } - UsageLimit::Unlimited => { - format!("{} / ∞", usage.amount) - } - }) - .size(LabelSize::Small) - .color(Color::Muted), - ) - .into_any_element() - }, - move |_, cx| cx.open_url(&zed_urls::account_url(cx)), - ) - .separator() - } - + .menu(move |window, cx| { + Some(ContextMenu::build(window, cx, |mut menu, _window, _| { + if let Some(usage) = usage { menu = menu - .header("MCP Servers") - .action( - "View Server Extensions", - Box::new(zed_actions::Extensions { - category_filter: Some( - zed_actions::ExtensionCategoryFilter::ContextServers, - ), - id: None, - }), + .header_with_link("Prompt Usage", "Manage", account_url.clone()) + .custom_entry( + move |_window, cx| { + let used_percentage = match usage.limit { + UsageLimit::Limited(limit) => { + Some((usage.amount as f32 / limit as f32) * 100.) + } + UsageLimit::Unlimited => None, + }; + + h_flex() + .flex_1() + .gap_1p5() + .children(used_percentage.map(|percent| { + ProgressBar::new("usage", percent, 100., cx) + })) + .child( + Label::new(match usage.limit { + UsageLimit::Limited(limit) => { + format!("{} / {limit}", usage.amount) + } + UsageLimit::Unlimited => { + format!("{} / ∞", usage.amount) + } + }) + .size(LabelSize::Small) + .color(Color::Muted), + ) + .into_any_element() + }, + move |_, cx| cx.open_url(&zed_urls::account_url(cx)), ) - .action("Add Custom Server…", Box::new(AddContextServer)) - .separator(); + .separator() + } - menu = menu - .action("Rules…", Box::new(OpenRulesLibrary::default())) - .action("Settings", Box::new(OpenSettings)) - .action(zoom_in_label, Box::new(ToggleZoom)); - menu - })) - } + menu = menu + .header("MCP Servers") + .action( + "View Server Extensions", + Box::new(zed_actions::Extensions { + category_filter: Some( + zed_actions::ExtensionCategoryFilter::ContextServers, + ), + id: None, + }), + ) + .action("Add Custom Server…", Box::new(AddContextServer)) + .separator(); + + menu = menu + .action("Rules…", Box::new(OpenRulesLibrary::default())) + .action("Settings", Box::new(OpenConfiguration)) + .action(zoom_in_label, Box::new(ToggleZoom)); + menu + })) }); h_flex() @@ -2275,10 +2275,10 @@ impl AgentPanel { | ActiveView::Configuration => return false, } - let plan = self.user_store.read(cx).plan(); + let plan = self.user_store.read(cx).current_plan(); let has_previous_trial = self.user_store.read(cx).trial_started_at().is_some(); - matches!(plan, Some(Plan::ZedFree)) && has_previous_trial + matches!(plan, Some(Plan::Free)) && has_previous_trial } fn should_render_onboarding(&self, cx: &mut Context) -> bool { @@ -2464,14 +2464,14 @@ impl AgentPanel { .icon_color(Color::Muted) .full_width() .key_binding(KeyBinding::for_action_in( - &OpenSettings, + &OpenConfiguration, &focus_handle, window, cx, )) .on_click(|_event, window, cx| { window.dispatch_action( - OpenSettings.boxed_clone(), + OpenConfiguration.boxed_clone(), cx, ) }), @@ -2558,7 +2558,7 @@ impl AgentPanel { NewThreadButton::new( "new-thread-btn", "New Thread", - IconName::Thread, + IconName::NewThread, ) .keybinding(KeyBinding::for_action_in( &NewThread::default(), @@ -2579,7 +2579,7 @@ impl AgentPanel { NewThreadButton::new( "new-text-thread-btn", "New Text Thread", - IconName::TextThread, + IconName::NewTextThread, ) .keybinding(KeyBinding::for_action_in( &NewTextThread, @@ -2676,11 +2676,16 @@ impl AgentPanel { .style(ButtonStyle::Tinted(ui::TintColor::Warning)) .label_size(LabelSize::Small) .key_binding( - KeyBinding::for_action_in(&OpenSettings, &focus_handle, window, cx) - .map(|kb| kb.size(rems_from_px(12.))), + KeyBinding::for_action_in( + &OpenConfiguration, + &focus_handle, + window, + cx, + ) + .map(|kb| kb.size(rems_from_px(12.))), ) .on_click(|_event, window, cx| { - window.dispatch_action(OpenSettings.boxed_clone(), cx) + window.dispatch_action(OpenConfiguration.boxed_clone(), cx) }), ), ConfigurationError::ProviderPendingTermsAcceptance(provider) => { @@ -2874,7 +2879,7 @@ impl AgentPanel { ) -> AnyElement { let error_message = match plan { Plan::ZedPro => "Upgrade to usage-based billing for more prompts.", - Plan::ZedProTrial | Plan::ZedFree => "Upgrade to Zed Pro for more prompts.", + Plan::ZedProTrial | Plan::Free => "Upgrade to Zed Pro for more prompts.", }; let icon = Icon::new(IconName::XCircle) @@ -3184,7 +3189,7 @@ impl Render for AgentPanel { .on_action(cx.listener(|this, _: &OpenHistory, window, cx| { this.open_history(window, cx); })) - .on_action(cx.listener(|this, _: &OpenSettings, window, cx| { + .on_action(cx.listener(|this, _: &OpenConfiguration, window, cx| { this.open_configuration(window, cx); })) .on_action(cx.listener(Self::open_active_thread_as_markdown)) diff --git a/crates/agent_ui/src/agent_ui.rs b/crates/agent_ui/src/agent_ui.rs index c5574c2371..22f1f92e90 100644 --- a/crates/agent_ui/src/agent_ui.rs +++ b/crates/agent_ui/src/agent_ui.rs @@ -284,7 +284,6 @@ fn update_command_palette_filter(cx: &mut App) { } else { filter.show_namespace("agent"); filter.show_namespace("assistant"); - filter.show_namespace("copilot"); filter.show_namespace("zed_predict_onboarding"); filter.show_namespace("edit_prediction"); diff --git a/crates/agent_ui/src/buffer_codegen.rs b/crates/agent_ui/src/buffer_codegen.rs index 615142b73d..64498e9281 100644 --- a/crates/agent_ui/src/buffer_codegen.rs +++ b/crates/agent_ui/src/buffer_codegen.rs @@ -6,7 +6,6 @@ use agent::{ use agent_settings::AgentSettings; use anyhow::{Context as _, Result}; use client::telemetry::Telemetry; -use cloud_llm_client::CompletionIntent; use collections::HashSet; use editor::{Anchor, AnchorRangeExt, MultiBuffer, MultiBufferSnapshot, ToOffset as _, ToPoint}; use futures::{ @@ -36,6 +35,7 @@ use std::{ }; use streaming_diff::{CharOperation, LineDiff, LineOperation, StreamingDiff}; use telemetry_events::{AssistantEventData, AssistantKind, AssistantPhase}; +use zed_llm_client::CompletionIntent; pub struct BufferCodegen { alternatives: Vec>, diff --git a/crates/agent_ui/src/context_picker.rs b/crates/agent_ui/src/context_picker.rs index 32f9a096d9..5cc56b014e 100644 --- a/crates/agent_ui/src/context_picker.rs +++ b/crates/agent_ui/src/context_picker.rs @@ -148,7 +148,7 @@ impl ContextPickerMode { Self::File => IconName::File, Self::Symbol => IconName::Code, Self::Fetch => IconName::Globe, - Self::Thread => IconName::Thread, + Self::Thread => IconName::MessageBubbles, Self::Rules => RULES_ICON, } } diff --git a/crates/agent_ui/src/context_picker/completion_provider.rs b/crates/agent_ui/src/context_picker/completion_provider.rs index 5ca0913be7..b377e40b19 100644 --- a/crates/agent_ui/src/context_picker/completion_provider.rs +++ b/crates/agent_ui/src/context_picker/completion_provider.rs @@ -423,7 +423,7 @@ impl ContextPickerCompletionProvider { let icon_for_completion = if recent { IconName::HistoryRerun } else { - IconName::Thread + IconName::MessageBubbles }; let new_text = format!("{} ", MentionLink::for_thread(&thread_entry)); let new_text_len = new_text.len(); @@ -436,7 +436,7 @@ impl ContextPickerCompletionProvider { source: project::CompletionSource::Custom, icon_path: Some(icon_for_completion.path().into()), confirm: Some(confirm_completion_callback( - IconName::Thread.path().into(), + IconName::MessageBubbles.path().into(), thread_entry.title().clone(), excerpt_id, source_range.start, diff --git a/crates/agent_ui/src/context_picker/thread_context_picker.rs b/crates/agent_ui/src/context_picker/thread_context_picker.rs index 15cc731f8f..cb2e97a493 100644 --- a/crates/agent_ui/src/context_picker/thread_context_picker.rs +++ b/crates/agent_ui/src/context_picker/thread_context_picker.rs @@ -253,7 +253,7 @@ pub fn render_thread_context_entry( .gap_1p5() .max_w_72() .child( - Icon::new(IconName::Thread) + Icon::new(IconName::MessageBubbles) .size(IconSize::XSmall) .color(Color::Muted), ) diff --git a/crates/agent_ui/src/debug.rs b/crates/agent_ui/src/debug.rs index bd34659210..ff6538dc85 100644 --- a/crates/agent_ui/src/debug.rs +++ b/crates/agent_ui/src/debug.rs @@ -1,10 +1,10 @@ #![allow(unused, dead_code)] use client::{ModelRequestUsage, RequestUsage}; -use cloud_llm_client::{Plan, UsageLimit}; use gpui::Global; use std::ops::{Deref, DerefMut}; use ui::prelude::*; +use zed_llm_client::{Plan, UsageLimit}; /// Debug only: Used for testing various account states /// diff --git a/crates/agent_ui/src/inline_assistant.rs b/crates/agent_ui/src/inline_assistant.rs index ffa654d12b..44ec050ae2 100644 --- a/crates/agent_ui/src/inline_assistant.rs +++ b/crates/agent_ui/src/inline_assistant.rs @@ -48,7 +48,7 @@ use text::{OffsetRangeExt, ToPoint as _}; use ui::prelude::*; use util::{RangeExt, ResultExt, maybe}; use workspace::{ItemHandle, Toast, Workspace, dock::Panel, notifications::NotificationId}; -use zed_actions::agent::OpenSettings; +use zed_actions::agent::OpenConfiguration; pub fn init( fs: Arc, @@ -345,7 +345,7 @@ impl InlineAssistant { if let Some(answer) = answer { if answer == 0 { cx.update(|window, cx| { - window.dispatch_action(Box::new(OpenSettings), cx) + window.dispatch_action(Box::new(OpenConfiguration), cx) }) .ok(); } diff --git a/crates/agent_ui/src/inline_prompt_editor.rs b/crates/agent_ui/src/inline_prompt_editor.rs index a5f90edb57..ade7a5e13d 100644 --- a/crates/agent_ui/src/inline_prompt_editor.rs +++ b/crates/agent_ui/src/inline_prompt_editor.rs @@ -541,7 +541,7 @@ impl PromptEditor { match &self.mode { PromptEditorMode::Terminal { .. } => vec![ accept, - IconButton::new("confirm", IconName::PlayOutlined) + IconButton::new("confirm", IconName::Play) .icon_color(Color::Info) .shape(IconButtonShape::Square) .tooltip(|window, cx| { diff --git a/crates/agent_ui/src/language_model_selector.rs b/crates/agent_ui/src/language_model_selector.rs index 7121624c87..655e87d7cd 100644 --- a/crates/agent_ui/src/language_model_selector.rs +++ b/crates/agent_ui/src/language_model_selector.rs @@ -576,7 +576,7 @@ impl PickerDelegate for LanguageModelPickerDelegate { .icon_position(IconPosition::Start) .on_click(|_, window, cx| { window.dispatch_action( - zed_actions::agent::OpenSettings.boxed_clone(), + zed_actions::agent::OpenConfiguration.boxed_clone(), cx, ); }), diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index 2185885347..c160f1de04 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -17,7 +17,7 @@ use agent::{ use agent_settings::{AgentSettings, CompletionMode}; use ai_onboarding::ApiKeysWithProviders; use buffer_diff::BufferDiff; -use cloud_llm_client::CompletionIntent; +use client::UserStore; use collections::{HashMap, HashSet}; use editor::actions::{MoveUp, Paste}; use editor::display_map::CreaseId; @@ -42,6 +42,7 @@ use language_model::{ use multi_buffer; use project::Project; use prompt_store::PromptStore; +use proto::Plan; use settings::Settings; use std::time::Duration; use theme::ThemeSettings; @@ -52,6 +53,7 @@ use util::ResultExt as _; use workspace::{CollaboratorId, Workspace}; use zed_actions::agent::Chat; use zed_actions::agent::ToggleModelSelector; +use zed_llm_client::CompletionIntent; use crate::context_picker::{ContextPicker, ContextPickerCompletionProvider, crease_for_mention}; use crate::context_strip::{ContextStrip, ContextStripEvent, SuggestContextKind}; @@ -77,6 +79,7 @@ pub struct MessageEditor { editor: Entity, workspace: WeakEntity, project: Entity, + user_store: Entity, context_store: Entity, prompt_store: Option>, history_store: Option>, @@ -156,6 +159,7 @@ impl MessageEditor { pub fn new( fs: Arc, workspace: WeakEntity, + user_store: Entity, context_store: Entity, prompt_store: Option>, thread_store: WeakEntity, @@ -227,6 +231,7 @@ impl MessageEditor { Self { editor: editor.clone(), project: thread.read(cx).project().clone(), + user_store, thread, incompatible_tools_state: incompatible_tools.clone(), workspace, @@ -1282,12 +1287,24 @@ impl MessageEditor { return None; } - let user_store = self.project.read(cx).user_store().read(cx); - if user_store.is_usage_based_billing_enabled() { + let user_store = self.user_store.read(cx); + + let ubb_enable = user_store + .usage_based_billing_enabled() + .map_or(false, |enabled| enabled); + + if ubb_enable { return None; } - let plan = user_store.plan().unwrap_or(cloud_llm_client::Plan::ZedFree); + let plan = user_store + .current_plan() + .map(|plan| match plan { + Plan::Free => zed_llm_client::Plan::ZedFree, + Plan::ZedPro => zed_llm_client::Plan::ZedPro, + Plan::ZedProTrial => zed_llm_client::Plan::ZedProTrial, + }) + .unwrap_or(zed_llm_client::Plan::ZedFree); let usage = user_store.model_request_usage()?; @@ -1752,6 +1769,7 @@ impl AgentPreview for MessageEditor { ) -> Option { if let Some(workspace) = workspace.upgrade() { let fs = workspace.read(cx).app_state().fs.clone(); + let user_store = workspace.read(cx).app_state().user_store.clone(); let project = workspace.read(cx).project().clone(); let weak_project = project.downgrade(); let context_store = cx.new(|_cx| ContextStore::new(weak_project, None)); @@ -1764,6 +1782,7 @@ impl AgentPreview for MessageEditor { MessageEditor::new( fs, workspace.downgrade(), + user_store, context_store, None, thread_store.downgrade(), diff --git a/crates/agent_ui/src/terminal_inline_assistant.rs b/crates/agent_ui/src/terminal_inline_assistant.rs index bcbc308c99..91867957cd 100644 --- a/crates/agent_ui/src/terminal_inline_assistant.rs +++ b/crates/agent_ui/src/terminal_inline_assistant.rs @@ -10,7 +10,6 @@ use agent::{ use agent_settings::AgentSettings; use anyhow::{Context as _, Result}; use client::telemetry::Telemetry; -use cloud_llm_client::CompletionIntent; use collections::{HashMap, VecDeque}; use editor::{MultiBuffer, actions::SelectAll}; use fs::Fs; @@ -28,6 +27,7 @@ use terminal_view::TerminalView; use ui::prelude::*; use util::ResultExt; use workspace::{Toast, Workspace, notifications::NotificationId}; +use zed_llm_client::CompletionIntent; pub fn init( fs: Arc, diff --git a/crates/agent_ui/src/thread_history.rs b/crates/agent_ui/src/thread_history.rs index b8d1db88d6..a2ee816f73 100644 --- a/crates/agent_ui/src/thread_history.rs +++ b/crates/agent_ui/src/thread_history.rs @@ -701,7 +701,7 @@ impl RenderOnce for HistoryEntryElement { .on_hover(self.on_hover) .end_slot::(if self.hovered || self.selected { Some( - IconButton::new("delete", IconName::Trash) + IconButton::new("delete", IconName::TrashAlt) .shape(IconButtonShape::Square) .icon_size(IconSize::XSmall) .icon_color(Color::Muted) diff --git a/crates/agent_ui/src/ui/preview/usage_callouts.rs b/crates/agent_ui/src/ui/preview/usage_callouts.rs index 64869a6ec7..45af41395b 100644 --- a/crates/agent_ui/src/ui/preview/usage_callouts.rs +++ b/crates/agent_ui/src/ui/preview/usage_callouts.rs @@ -1,8 +1,8 @@ use client::{ModelRequestUsage, RequestUsage, zed_urls}; -use cloud_llm_client::{Plan, UsageLimit}; use component::{empty_example, example_group_with_title, single_example}; use gpui::{AnyElement, App, IntoElement, RenderOnce, Window}; use ui::{Callout, prelude::*}; +use zed_llm_client::{Plan, UsageLimit}; #[derive(IntoElement, RegisterComponent)] pub struct UsageCallout { diff --git a/crates/ai_onboarding/Cargo.toml b/crates/ai_onboarding/Cargo.toml index 95a45b1a6f..9031e14e29 100644 --- a/crates/ai_onboarding/Cargo.toml +++ b/crates/ai_onboarding/Cargo.toml @@ -16,10 +16,10 @@ default = [] [dependencies] client.workspace = true -cloud_llm_client.workspace = true component.workspace = true gpui.workspace = true language_model.workspace = true +proto.workspace = true serde.workspace = true smallvec.workspace = true telemetry.workspace = true diff --git a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs index e86568fe7a..5f56e4d26e 100644 --- a/crates/ai_onboarding/src/agent_api_keys_onboarding.rs +++ b/crates/ai_onboarding/src/agent_api_keys_onboarding.rs @@ -136,7 +136,10 @@ impl RenderOnce for ApiKeysWithoutProviders { .full_width() .style(ButtonStyle::Outlined) .on_click(move |_, window, cx| { - window.dispatch_action(zed_actions::agent::OpenSettings.boxed_clone(), cx); + window.dispatch_action( + zed_actions::agent::OpenConfiguration.boxed_clone(), + cx, + ); }), ) } diff --git a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs index f1629eeff8..e8a62f7ff2 100644 --- a/crates/ai_onboarding/src/agent_panel_onboarding_content.rs +++ b/crates/ai_onboarding/src/agent_panel_onboarding_content.rs @@ -1,7 +1,6 @@ use std::sync::Arc; use client::{Client, UserStore}; -use cloud_llm_client::Plan; use gpui::{Entity, IntoElement, ParentElement}; use language_model::{LanguageModelRegistry, ZED_CLOUD_PROVIDER_ID}; use ui::prelude::*; @@ -57,8 +56,15 @@ impl AgentPanelOnboarding { impl Render for AgentPanelOnboarding { fn render(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { - let enrolled_in_trial = self.user_store.read(cx).plan() == Some(Plan::ZedProTrial); - let is_pro_user = self.user_store.read(cx).plan() == Some(Plan::ZedPro); + let enrolled_in_trial = matches!( + self.user_store.read(cx).current_plan(), + Some(proto::Plan::ZedProTrial) + ); + + let is_pro_user = matches!( + self.user_store.read(cx).current_plan(), + Some(proto::Plan::ZedPro) + ); AgentPanelOnboardingCard::new() .child( diff --git a/crates/ai_onboarding/src/ai_onboarding.rs b/crates/ai_onboarding/src/ai_onboarding.rs index c252b65f20..7fffb60ecc 100644 --- a/crates/ai_onboarding/src/ai_onboarding.rs +++ b/crates/ai_onboarding/src/ai_onboarding.rs @@ -1,15 +1,12 @@ mod agent_api_keys_onboarding; mod agent_panel_onboarding_card; mod agent_panel_onboarding_content; -mod ai_upsell_card; mod edit_prediction_onboarding_content; mod young_account_banner; pub use agent_api_keys_onboarding::{ApiKeysWithProviders, ApiKeysWithoutProviders}; pub use agent_panel_onboarding_card::AgentPanelOnboardingCard; pub use agent_panel_onboarding_content::AgentPanelOnboarding; -pub use ai_upsell_card::AiUpsellCard; -use cloud_llm_client::Plan; pub use edit_prediction_onboarding_content::EditPredictionOnboarding; pub use young_account_banner::YoungAccountBanner; @@ -57,7 +54,6 @@ impl RenderOnce for BulletItem { } } -#[derive(PartialEq)] pub enum SignInStatus { SignedIn, SigningIn, @@ -80,7 +76,7 @@ impl From for SignInStatus { pub struct ZedAiOnboarding { pub sign_in_status: SignInStatus, pub has_accepted_terms_of_service: bool, - pub plan: Option, + pub plan: Option, pub account_too_young: bool, pub continue_with_zed_ai: Arc, pub sign_in: Arc, @@ -100,8 +96,8 @@ impl ZedAiOnboarding { Self { sign_in_status: status.into(), - has_accepted_terms_of_service: store.has_accepted_terms_of_service(), - plan: store.plan(), + has_accepted_terms_of_service: store.current_user_has_accepted_terms().unwrap_or(false), + plan: store.current_plan(), account_too_young: store.account_too_young(), continue_with_zed_ai, accept_terms_of_service: Arc::new({ @@ -114,9 +110,11 @@ impl ZedAiOnboarding { sign_in: Arc::new(move |_window, cx| { cx.spawn({ let client = client.clone(); - async move |cx| client.sign_in_with_optional_connect(true, cx).await + async move |cx| { + client.authenticate_and_connect(true, cx).await; + } }) - .detach_and_log_err(cx); + .detach(); }), dismiss_onboarding: None, } @@ -410,9 +408,9 @@ impl RenderOnce for ZedAiOnboarding { if matches!(self.sign_in_status, SignInStatus::SignedIn) { if self.has_accepted_terms_of_service { match self.plan { - None | Some(Plan::ZedFree) => self.render_free_plan_state(cx), - Some(Plan::ZedProTrial) => self.render_trial_state(cx), - Some(Plan::ZedPro) => self.render_pro_plan_state(cx), + None | Some(proto::Plan::Free) => self.render_free_plan_state(cx), + Some(proto::Plan::ZedProTrial) => self.render_trial_state(cx), + Some(proto::Plan::ZedPro) => self.render_pro_plan_state(cx), } } else { self.render_accept_terms_of_service() @@ -432,7 +430,7 @@ impl Component for ZedAiOnboarding { fn onboarding( sign_in_status: SignInStatus, has_accepted_terms_of_service: bool, - plan: Option, + plan: Option, account_too_young: bool, ) -> AnyElement { ZedAiOnboarding { @@ -467,15 +465,25 @@ impl Component for ZedAiOnboarding { ), single_example( "Free Plan", - onboarding(SignInStatus::SignedIn, true, Some(Plan::ZedFree), false), + onboarding(SignInStatus::SignedIn, true, Some(proto::Plan::Free), false), ), single_example( "Pro Trial", - onboarding(SignInStatus::SignedIn, true, Some(Plan::ZedProTrial), false), + onboarding( + SignInStatus::SignedIn, + true, + Some(proto::Plan::ZedProTrial), + false, + ), ), single_example( "Pro Plan", - onboarding(SignInStatus::SignedIn, true, Some(Plan::ZedPro), false), + onboarding( + SignInStatus::SignedIn, + true, + Some(proto::Plan::ZedPro), + false, + ), ), ]) .into_any_element(), diff --git a/crates/ai_onboarding/src/ai_upsell_card.rs b/crates/ai_onboarding/src/ai_upsell_card.rs deleted file mode 100644 index 2408b6aa37..0000000000 --- a/crates/ai_onboarding/src/ai_upsell_card.rs +++ /dev/null @@ -1,212 +0,0 @@ -use std::sync::Arc; - -use client::{Client, zed_urls}; -use cloud_llm_client::Plan; -use gpui::{AnyElement, App, IntoElement, RenderOnce, Window}; -use ui::{Divider, List, Vector, VectorName, prelude::*}; - -use crate::{BulletItem, SignInStatus}; - -#[derive(IntoElement, RegisterComponent)] -pub struct AiUpsellCard { - pub sign_in_status: SignInStatus, - pub sign_in: Arc, - pub user_plan: Option, -} - -impl AiUpsellCard { - pub fn new(client: Arc, user_plan: Option) -> Self { - let status = *client.status().borrow(); - - Self { - user_plan, - sign_in_status: status.into(), - sign_in: Arc::new(move |_window, cx| { - cx.spawn({ - let client = client.clone(); - async move |cx| client.sign_in_with_optional_connect(true, cx).await - }) - .detach_and_log_err(cx); - }), - } - } -} - -impl RenderOnce for AiUpsellCard { - fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { - let pro_section = v_flex() - .flex_grow() - .w_full() - .gap_1() - .child( - h_flex() - .gap_2() - .child( - Label::new("Pro") - .size(LabelSize::Small) - .color(Color::Accent) - .buffer_font(cx), - ) - .child(Divider::horizontal()), - ) - .child( - List::new() - .child(BulletItem::new("500 prompts with Claude models")) - .child(BulletItem::new( - "Unlimited edit predictions with Zeta, our open-source model", - )), - ); - - let free_section = v_flex() - .flex_grow() - .w_full() - .gap_1() - .child( - h_flex() - .gap_2() - .child( - Label::new("Free") - .size(LabelSize::Small) - .color(Color::Muted) - .buffer_font(cx), - ) - .child(Divider::horizontal()), - ) - .child( - List::new() - .child(BulletItem::new("50 prompts with Claude models")) - .child(BulletItem::new("2,000 accepted edit predictions")), - ); - - let grid_bg = h_flex().absolute().inset_0().w_full().h(px(240.)).child( - Vector::new(VectorName::Grid, rems_from_px(500.), rems_from_px(240.)) - .color(Color::Custom(cx.theme().colors().border.opacity(0.05))), - ); - - let gradient_bg = div() - .absolute() - .inset_0() - .size_full() - .bg(gpui::linear_gradient( - 180., - gpui::linear_color_stop( - cx.theme().colors().elevated_surface_background.opacity(0.8), - 0., - ), - gpui::linear_color_stop( - cx.theme().colors().elevated_surface_background.opacity(0.), - 0.8, - ), - )); - - const DESCRIPTION: &str = "Zed offers a complete agentic experience, with robust editing and reviewing features to collaborate with AI."; - - let footer_buttons = match self.sign_in_status { - SignInStatus::SignedIn => v_flex() - .items_center() - .gap_1() - .child( - Button::new("sign_in", "Start 14-day Free Pro Trial") - .full_width() - .style(ButtonStyle::Tinted(ui::TintColor::Accent)) - .on_click(move |_, _window, cx| { - telemetry::event!("Start Trial Clicked", state = "post-sign-in"); - cx.open_url(&zed_urls::start_trial_url(cx)) - }), - ) - .child( - Label::new("No credit card required") - .size(LabelSize::Small) - .color(Color::Muted), - ) - .into_any_element(), - _ => Button::new("sign_in", "Sign In") - .full_width() - .style(ButtonStyle::Tinted(ui::TintColor::Accent)) - .on_click({ - let callback = self.sign_in.clone(); - move |_, window, cx| { - telemetry::event!("Start Trial Clicked", state = "pre-sign-in"); - callback(window, cx) - } - }) - .into_any_element(), - }; - - v_flex() - .relative() - .p_4() - .pt_3() - .border_1() - .border_color(cx.theme().colors().border) - .rounded_lg() - .overflow_hidden() - .child(grid_bg) - .child(gradient_bg) - .child(Label::new("Try Zed AI").size(LabelSize::Large)) - .child( - div() - .max_w_3_4() - .mb_2() - .child(Label::new(DESCRIPTION).color(Color::Muted)), - ) - .child( - h_flex() - .w_full() - .mt_1p5() - .mb_2p5() - .items_start() - .gap_6() - .child(free_section) - .child(pro_section), - ) - .child(footer_buttons) - } -} - -impl Component for AiUpsellCard { - fn scope() -> ComponentScope { - ComponentScope::Agent - } - - fn name() -> &'static str { - "AI Upsell Card" - } - - fn sort_name() -> &'static str { - "AI Upsell Card" - } - - fn description() -> Option<&'static str> { - Some("A card presenting the Zed AI product during user's first-open onboarding flow.") - } - - fn preview(_window: &mut Window, _cx: &mut App) -> Option { - Some( - v_flex() - .p_4() - .gap_4() - .children(vec![example_group(vec![ - single_example( - "Signed Out State", - AiUpsellCard { - sign_in_status: SignInStatus::SignedOut, - sign_in: Arc::new(|_, _| {}), - user_plan: None, - } - .into_any_element(), - ), - single_example( - "Signed In State", - AiUpsellCard { - sign_in_status: SignInStatus::SignedIn, - sign_in: Arc::new(|_, _| {}), - user_plan: None, - } - .into_any_element(), - ), - ])]) - .into_any_element(), - ) - } -} diff --git a/crates/assistant_context/Cargo.toml b/crates/assistant_context/Cargo.toml index 8f5ff98790..f35dc43340 100644 --- a/crates/assistant_context/Cargo.toml +++ b/crates/assistant_context/Cargo.toml @@ -19,7 +19,6 @@ assistant_slash_commands.workspace = true chrono.workspace = true client.workspace = true clock.workspace = true -cloud_llm_client.workspace = true collections.workspace = true context_server.workspace = true fs.workspace = true @@ -49,6 +48,7 @@ util.workspace = true uuid.workspace = true workspace-hack.workspace = true workspace.workspace = true +zed_llm_client.workspace = true [dev-dependencies] indoc.workspace = true diff --git a/crates/assistant_context/src/assistant_context.rs b/crates/assistant_context/src/assistant_context.rs index 4518bbff79..136468e084 100644 --- a/crates/assistant_context/src/assistant_context.rs +++ b/crates/assistant_context/src/assistant_context.rs @@ -11,7 +11,6 @@ use assistant_slash_command::{ use assistant_slash_commands::FileCommandMetadata; use client::{self, Client, proto, telemetry::Telemetry}; use clock::ReplicaId; -use cloud_llm_client::CompletionIntent; use collections::{HashMap, HashSet}; use fs::{Fs, RenameOptions}; use futures::{FutureExt, StreamExt, future::Shared}; @@ -47,6 +46,7 @@ use text::{BufferSnapshot, ToPoint}; use ui::IconName; use util::{ResultExt, TryFutureExt, post_inc}; use uuid::Uuid; +use zed_llm_client::CompletionIntent; pub use crate::context_store::*; diff --git a/crates/assistant_tools/Cargo.toml b/crates/assistant_tools/Cargo.toml index d4b8fa3afc..146800e094 100644 --- a/crates/assistant_tools/Cargo.toml +++ b/crates/assistant_tools/Cargo.toml @@ -21,11 +21,9 @@ assistant_tool.workspace = true buffer_diff.workspace = true chrono.workspace = true client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true component.workspace = true derive_more.workspace = true -diffy = "0.4.2" editor.workspace = true feature_flags.workspace = true futures.workspace = true @@ -65,6 +63,8 @@ web_search.workspace = true which.workspace = true workspace-hack.workspace = true workspace.workspace = true +zed_llm_client.workspace = true +diffy = "0.4.2" [dev-dependencies] lsp = { workspace = true, features = ["test-support"] } diff --git a/crates/assistant_tools/src/edit_agent.rs b/crates/assistant_tools/src/edit_agent.rs index fed79434bb..0184dff36c 100644 --- a/crates/assistant_tools/src/edit_agent.rs +++ b/crates/assistant_tools/src/edit_agent.rs @@ -7,7 +7,6 @@ mod streaming_fuzzy_matcher; use crate::{Template, Templates}; use anyhow::Result; use assistant_tool::ActionLog; -use cloud_llm_client::CompletionIntent; use create_file_parser::{CreateFileParser, CreateFileParserEvent}; pub use edit_parser::EditFormat; use edit_parser::{EditParser, EditParserEvent, EditParserMetrics}; @@ -30,6 +29,7 @@ use std::{cmp, iter, mem, ops::Range, path::PathBuf, pin::Pin, sync::Arc, task:: use streaming_diff::{CharOperation, StreamingDiff}; use streaming_fuzzy_matcher::StreamingFuzzyMatcher; use util::debug_panic; +use zed_llm_client::CompletionIntent; #[derive(Serialize)] struct CreateFilePromptTemplate { diff --git a/crates/assistant_tools/src/edit_agent/evals.rs b/crates/assistant_tools/src/edit_agent/evals.rs index 9a8e762455..eda7eee0e3 100644 --- a/crates/assistant_tools/src/edit_agent/evals.rs +++ b/crates/assistant_tools/src/edit_agent/evals.rs @@ -1658,24 +1658,23 @@ impl EditAgentTest { } async fn retry_on_rate_limit(mut request: impl AsyncFnMut() -> Result) -> Result { - const MAX_RETRIES: usize = 20; let mut attempt = 0; - loop { attempt += 1; - let response = request().await; - - if attempt >= MAX_RETRIES { - return response; - } - - let retry_delay = match &response { - Ok(_) => None, - Err(err) => match err.downcast_ref::() { - Some(err) => match &err { + match request().await { + Ok(result) => return Ok(result), + Err(err) => match err.downcast::() { + Ok(err) => match &err { LanguageModelCompletionError::RateLimitExceeded { retry_after, .. } | LanguageModelCompletionError::ServerOverloaded { retry_after, .. } => { - Some(retry_after.unwrap_or(Duration::from_secs(5))) + let retry_after = retry_after.unwrap_or(Duration::from_secs(5)); + // Wait for the duration supplied, with some jitter to avoid all requests being made at the same time. + let jitter = retry_after.mul_f64(rand::thread_rng().gen_range(0.0..1.0)); + eprintln!( + "Attempt #{attempt}: {err}. Retry after {retry_after:?} + jitter of {jitter:?}" + ); + Timer::after(retry_after + jitter).await; + continue; } LanguageModelCompletionError::UpstreamProviderError { status, @@ -1688,31 +1687,23 @@ async fn retry_on_rate_limit(mut request: impl AsyncFnMut() -> Result) -> StatusCode::TOO_MANY_REQUESTS | StatusCode::SERVICE_UNAVAILABLE ) || status.as_u16() == 529; - if should_retry { - // Use server-provided retry_after if available, otherwise use default - Some(retry_after.unwrap_or(Duration::from_secs(5))) - } else { - None + if !should_retry { + return Err(err.into()); } - } - LanguageModelCompletionError::ApiReadResponseError { .. } - | LanguageModelCompletionError::ApiInternalServerError { .. } - | LanguageModelCompletionError::HttpSend { .. } => { - // Exponential backoff for transient I/O and internal server errors - Some(Duration::from_secs(2_u64.pow((attempt - 1) as u32).min(30))) - } - _ => None, - }, - _ => None, - }, - }; - if let Some(retry_after) = retry_delay { - let jitter = retry_after.mul_f64(rand::thread_rng().gen_range(0.0..1.0)); - eprintln!("Attempt #{attempt}: Retry after {retry_after:?} + jitter of {jitter:?}"); - Timer::after(retry_after + jitter).await; - } else { - return response; + // Use server-provided retry_after if available, otherwise use default + let retry_after = retry_after.unwrap_or(Duration::from_secs(5)); + let jitter = retry_after.mul_f64(rand::thread_rng().gen_range(0.0..1.0)); + eprintln!( + "Attempt #{attempt}: {err}. Retry after {retry_after:?} + jitter of {jitter:?}" + ); + Timer::after(retry_after + jitter).await; + continue; + } + _ => return Err(err.into()), + }, + Err(err) => return Err(err), + }, } } } diff --git a/crates/assistant_tools/src/web_search_tool.rs b/crates/assistant_tools/src/web_search_tool.rs index d4a12f22c5..5eeca9c2c4 100644 --- a/crates/assistant_tools/src/web_search_tool.rs +++ b/crates/assistant_tools/src/web_search_tool.rs @@ -6,7 +6,6 @@ use anyhow::{Context as _, Result, anyhow}; use assistant_tool::{ ActionLog, Tool, ToolCard, ToolResult, ToolResultContent, ToolResultOutput, ToolUseStatus, }; -use cloud_llm_client::{WebSearchResponse, WebSearchResult}; use futures::{Future, FutureExt, TryFutureExt}; use gpui::{ AnyWindowHandle, App, AppContext, Context, Entity, IntoElement, Task, WeakEntity, Window, @@ -18,6 +17,7 @@ use serde::{Deserialize, Serialize}; use ui::{IconName, Tooltip, prelude::*}; use web_search::WebSearchRegistry; use workspace::Workspace; +use zed_llm_client::{WebSearchResponse, WebSearchResult}; #[derive(Debug, Serialize, Deserialize, JsonSchema)] pub struct WebSearchToolInput { diff --git a/crates/audio/Cargo.toml b/crates/audio/Cargo.toml index d857a3eb2f..960aaf8e08 100644 --- a/crates/audio/Cargo.toml +++ b/crates/audio/Cargo.toml @@ -18,6 +18,6 @@ collections.workspace = true derive_more.workspace = true gpui.workspace = true parking_lot.workspace = true -rodio = { version = "0.21.1", default-features = false, features = ["wav", "playback", "tracing"] } +rodio = { version = "0.20.0", default-features = false, features = ["wav"] } util.workspace = true workspace-hack.workspace = true diff --git a/crates/audio/src/assets.rs b/crates/audio/src/assets.rs index fd5c935d87..02da79dc24 100644 --- a/crates/audio/src/assets.rs +++ b/crates/audio/src/assets.rs @@ -3,9 +3,12 @@ use std::{io::Cursor, sync::Arc}; use anyhow::{Context as _, Result}; use collections::HashMap; use gpui::{App, AssetSource, Global}; -use rodio::{Decoder, Source, source::Buffered}; +use rodio::{ + Decoder, Source, + source::{Buffered, SamplesConverter}, +}; -type Sound = Buffered>>>; +type Sound = Buffered>>, f32>>; pub struct SoundRegistry { cache: Arc>>, @@ -45,7 +48,7 @@ impl SoundRegistry { .with_context(|| format!("No asset available for path {path}"))?? .into_owned(); let cursor = Cursor::new(bytes); - let source = Decoder::new(cursor)?.buffered(); + let source = Decoder::new(cursor)?.convert_samples::().buffered(); self.cache.lock().insert(name.to_string(), source.clone()); diff --git a/crates/audio/src/audio.rs b/crates/audio/src/audio.rs index 44baa16aa2..e7b9a59e8f 100644 --- a/crates/audio/src/audio.rs +++ b/crates/audio/src/audio.rs @@ -1,7 +1,7 @@ use assets::SoundRegistry; use derive_more::{Deref, DerefMut}; use gpui::{App, AssetSource, BorrowAppContext, Global}; -use rodio::{OutputStream, OutputStreamBuilder}; +use rodio::{OutputStream, OutputStreamHandle}; use util::ResultExt; mod assets; @@ -37,7 +37,8 @@ impl Sound { #[derive(Default)] pub struct Audio { - output_handle: Option, + _output_stream: Option, + output_handle: Option, } #[derive(Deref, DerefMut)] @@ -50,9 +51,11 @@ impl Audio { Self::default() } - fn ensure_output_exists(&mut self) -> Option<&OutputStream> { + fn ensure_output_exists(&mut self) -> Option<&OutputStreamHandle> { if self.output_handle.is_none() { - self.output_handle = OutputStreamBuilder::open_default_stream().log_err(); + let (_output_stream, output_handle) = OutputStream::try_default().log_err().unzip(); + self.output_handle = output_handle; + self._output_stream = _output_stream; } self.output_handle.as_ref() @@ -66,7 +69,7 @@ impl Audio { cx.update_global::(|this, cx| { let output_handle = this.ensure_output_exists()?; let source = SoundRegistry::global(cx).get(sound.file()).log_err()?; - output_handle.mixer().add(source); + output_handle.play_raw(source).log_err()?; Some(()) }); } @@ -77,6 +80,7 @@ impl Audio { } cx.update_global::(|this, _| { + this._output_stream.take(); this.output_handle.take(); }); } diff --git a/crates/channel/src/channel_store.rs b/crates/channel/src/channel_store.rs index 4ad156b9fb..b7ba811421 100644 --- a/crates/channel/src/channel_store.rs +++ b/crates/channel/src/channel_store.rs @@ -126,7 +126,7 @@ impl ChannelMembership { proto::channel_member::Kind::Member => 0, proto::channel_member::Kind::Invitee => 1, }, - username_order: &self.user.github_login, + username_order: self.user.github_login.as_str(), } } } diff --git a/crates/channel/src/channel_store_tests.rs b/crates/channel/src/channel_store_tests.rs index c92226eeeb..f8f5de3c39 100644 --- a/crates/channel/src/channel_store_tests.rs +++ b/crates/channel/src/channel_store_tests.rs @@ -259,6 +259,20 @@ async fn test_channel_messages(cx: &mut TestAppContext) { assert_channels(&channel_store, &[(0, "the-channel".to_string())], cx); }); + let get_users = server.receive::().await.unwrap(); + assert_eq!(get_users.payload.user_ids, vec![5]); + server.respond( + get_users.receipt(), + proto::UsersResponse { + users: vec![proto::User { + id: 5, + github_login: "nathansobo".into(), + avatar_url: "http://avatar.com/nathansobo".into(), + name: None, + }], + }, + ); + // Join a channel and populate its existing messages. let channel = channel_store.update(cx, |store, cx| { let channel_id = store.ordered_channels().next().unwrap().1.id; @@ -320,7 +334,7 @@ async fn test_channel_messages(cx: &mut TestAppContext) { .map(|message| (message.sender.github_login.clone(), message.body.clone())) .collect::>(), &[ - ("user-5".into(), "a".into()), + ("nathansobo".into(), "a".into()), ("maxbrunsfeld".into(), "b".into()) ] ); @@ -423,7 +437,7 @@ async fn test_channel_messages(cx: &mut TestAppContext) { .map(|message| (message.sender.github_login.clone(), message.body.clone())) .collect::>(), &[ - ("user-5".into(), "y".into()), + ("nathansobo".into(), "y".into()), ("maxbrunsfeld".into(), "z".into()) ] ); diff --git a/crates/client/Cargo.toml b/crates/client/Cargo.toml index 365625b445..b741f515fd 100644 --- a/crates/client/Cargo.toml +++ b/crates/client/Cargo.toml @@ -17,12 +17,11 @@ test-support = ["clock/test-support", "collections/test-support", "gpui/test-sup [dependencies] anyhow.workspace = true +async-recursion = "0.3" async-tungstenite = { workspace = true, features = ["tokio", "tokio-rustls-manual-roots"] } base64.workspace = true chrono = { workspace = true, features = ["serde"] } clock.workspace = true -cloud_api_client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true credentials_provider.workspace = true derive_more.workspace = true @@ -34,8 +33,8 @@ http_client.workspace = true http_client_tls.workspace = true httparse = "1.10" log.workspace = true -parking_lot.workspace = true paths.workspace = true +parking_lot.workspace = true postage.workspace = true rand.workspace = true regex.workspace = true @@ -47,18 +46,19 @@ serde_json.workspace = true settings.workspace = true sha2.workspace = true smol.workspace = true -telemetry.workspace = true telemetry_events.workspace = true text.workspace = true thiserror.workspace = true time.workspace = true tiny_http.workspace = true tokio-socks = { version = "0.5.2", default-features = false, features = ["futures-io"] } -tokio.workspace = true url.workspace = true util.workspace = true -workspace-hack.workspace = true worktree.workspace = true +telemetry.workspace = true +tokio.workspace = true +workspace-hack.workspace = true +zed_llm_client.workspace = true [dev-dependencies] clock = { workspace = true, features = ["test-support"] } diff --git a/crates/client/src/client.rs b/crates/client/src/client.rs index e6d8f10d12..8aafbf383f 100644 --- a/crates/client/src/client.rs +++ b/crates/client/src/client.rs @@ -6,21 +6,22 @@ pub mod telemetry; pub mod user; pub mod zed_urls; -use anyhow::{Context as _, Result, anyhow}; +use anyhow::{Context as _, Result, anyhow, bail}; +use async_recursion::async_recursion; use async_tungstenite::tungstenite::{ client::IntoClientRequest, error::Error as WebsocketError, http::{HeaderValue, Request, StatusCode}, }; +use chrono::{DateTime, Utc}; use clock::SystemClock; -use cloud_api_client::CloudApiClient; use credentials_provider::CredentialsProvider; use futures::{ AsyncReadExt, FutureExt, SinkExt, Stream, StreamExt, TryFutureExt as _, TryStreamExt, channel::oneshot, future::BoxFuture, }; use gpui::{App, AsyncApp, Entity, Global, Task, WeakEntity, actions}; -use http_client::{HttpClient, HttpClientWithUrl, http}; +use http_client::{AsyncBody, HttpClient, HttpClientWithUrl, http}; use parking_lot::RwLock; use postage::watch; use proxy::connect_proxy_stream; @@ -161,8 +162,20 @@ pub fn init(client: &Arc, cx: &mut App) { let client = client.clone(); move |_: &SignIn, cx| { if let Some(client) = client.upgrade() { - cx.spawn(async move |cx| client.sign_in_with_optional_connect(true, &cx).await) - .detach_and_log_err(cx); + cx.spawn( + async move |cx| match client.authenticate_and_connect(true, &cx).await { + ConnectionResult::Timeout => { + log::error!("Initial authentication timed out"); + } + ConnectionResult::ConnectionReset => { + log::error!("Initial authentication connection reset"); + } + ConnectionResult::Result(r) => { + r.log_err(); + } + }, + ) + .detach(); } } }); @@ -200,7 +213,6 @@ pub struct Client { id: AtomicU64, peer: Arc, http: Arc, - cloud_client: Arc, telemetry: Arc, credentials_provider: ClientCredentialsProvider, state: RwLock, @@ -271,8 +283,6 @@ pub enum Status { SignedOut, UpgradeRequired, Authenticating, - Authenticated, - AuthenticationError, Connecting, ConnectionError, Connected { @@ -576,7 +586,6 @@ impl Client { id: AtomicU64::new(0), peer: Peer::new(0), telemetry: Telemetry::new(clock, http.clone(), cx), - cloud_client: Arc::new(CloudApiClient::new(http.clone())), http, credentials_provider: ClientCredentialsProvider::new(cx), state: Default::default(), @@ -609,10 +618,6 @@ impl Client { self.http.clone() } - pub fn cloud_client(&self) -> Arc { - self.cloud_client.clone() - } - pub fn set_id(&self, id: u64) -> &Self { self.id.store(id, Ordering::SeqCst); self @@ -699,7 +704,7 @@ impl Client { let mut delay = INITIAL_RECONNECTION_DELAY; loop { - match client.connect(true, &cx).await { + match client.authenticate_and_connect(true, &cx).await { ConnectionResult::Timeout => { log::error!("client connect attempt timed out") } @@ -869,123 +874,17 @@ impl Client { .is_some() } - pub async fn sign_in( - self: &Arc, - try_provider: bool, - cx: &AsyncApp, - ) -> Result { - if self.status().borrow().is_signed_out() { - self.set_status(Status::Authenticating, cx); - } else { - self.set_status(Status::Reauthenticating, cx); - } - - let mut credentials = None; - - let old_credentials = self.state.read().credentials.clone(); - if let Some(old_credentials) = old_credentials { - if self - .cloud_client - .validate_credentials( - old_credentials.user_id as u32, - &old_credentials.access_token, - ) - .await? - { - credentials = Some(old_credentials); - } - } - - if credentials.is_none() && try_provider { - if let Some(stored_credentials) = self.credentials_provider.read_credentials(cx).await { - if self - .cloud_client - .validate_credentials( - stored_credentials.user_id as u32, - &stored_credentials.access_token, - ) - .await? - { - credentials = Some(stored_credentials); - } else { - self.credentials_provider - .delete_credentials(cx) - .await - .log_err(); - } - } - } - - if credentials.is_none() { - let mut status_rx = self.status(); - let _ = status_rx.next().await; - futures::select_biased! { - authenticate = self.authenticate(cx).fuse() => { - match authenticate { - Ok(creds) => { - if IMPERSONATE_LOGIN.is_none() { - self.credentials_provider - .write_credentials(creds.user_id, creds.access_token.clone(), cx) - .await - .log_err(); - } - - credentials = Some(creds); - }, - Err(err) => { - self.set_status(Status::AuthenticationError, cx); - return Err(err); - } - } - } - _ = status_rx.next().fuse() => { - return Err(anyhow!("authentication canceled")); - } - } - } - - let credentials = credentials.unwrap(); - self.set_id(credentials.user_id); - self.cloud_client - .set_credentials(credentials.user_id as u32, credentials.access_token.clone()); - self.state.write().credentials = Some(credentials.clone()); - self.set_status(Status::Authenticated, cx); - - Ok(credentials) - } - - /// Performs a sign-in and also connects to Collab. - /// - /// This is called in places where we *don't* need to connect in the future. We will replace these calls with calls - /// to `sign_in` when we're ready to remove auto-connection to Collab. - pub async fn sign_in_with_optional_connect( - self: &Arc, - try_provider: bool, - cx: &AsyncApp, - ) -> Result<()> { - let credentials = self.sign_in(try_provider, cx).await?; - - let connect_result = match self.connect_with_credentials(credentials, cx).await { - ConnectionResult::Timeout => Err(anyhow!("connection timed out")), - ConnectionResult::ConnectionReset => Err(anyhow!("connection reset")), - ConnectionResult::Result(result) => result.context("client auth and connect"), - }; - connect_result.log_err(); - - Ok(()) - } - - pub async fn connect( + #[async_recursion(?Send)] + pub async fn authenticate_and_connect( self: &Arc, try_provider: bool, cx: &AsyncApp, ) -> ConnectionResult<()> { let was_disconnected = match *self.status().borrow() { - Status::SignedOut | Status::Authenticated => true, + Status::SignedOut => true, Status::ConnectionError | Status::ConnectionLost | Status::Authenticating { .. } - | Status::AuthenticationError | Status::Reauthenticating { .. } | Status::ReconnectionError { .. } => false, Status::Connected { .. } | Status::Connecting { .. } | Status::Reconnecting { .. } => { @@ -998,10 +897,39 @@ impl Client { ); } }; - let credentials = match self.sign_in(try_provider, cx).await { - Ok(credentials) => credentials, - Err(err) => return ConnectionResult::Result(Err(err)), - }; + if was_disconnected { + self.set_status(Status::Authenticating, cx); + } else { + self.set_status(Status::Reauthenticating, cx) + } + + let mut read_from_provider = false; + let mut credentials = self.state.read().credentials.clone(); + if credentials.is_none() && try_provider { + credentials = self.credentials_provider.read_credentials(cx).await; + read_from_provider = credentials.is_some(); + } + + if credentials.is_none() { + let mut status_rx = self.status(); + let _ = status_rx.next().await; + futures::select_biased! { + authenticate = self.authenticate(cx).fuse() => { + match authenticate { + Ok(creds) => credentials = Some(creds), + Err(err) => { + self.set_status(Status::ConnectionError, cx); + return ConnectionResult::Result(Err(err)); + } + } + } + _ = status_rx.next().fuse() => { + return ConnectionResult::Result(Err(anyhow!("authentication canceled"))); + } + } + } + let credentials = credentials.unwrap(); + self.set_id(credentials.user_id); if was_disconnected { self.set_status(Status::Connecting, cx); @@ -1009,20 +937,17 @@ impl Client { self.set_status(Status::Reconnecting, cx); } - self.connect_with_credentials(credentials, cx).await - } - - async fn connect_with_credentials( - self: &Arc, - credentials: Credentials, - cx: &AsyncApp, - ) -> ConnectionResult<()> { let mut timeout = futures::FutureExt::fuse(cx.background_executor().timer(CONNECTION_TIMEOUT)); futures::select_biased! { connection = self.establish_connection(&credentials, cx).fuse() => { match connection { Ok(conn) => { + self.state.write().credentials = Some(credentials.clone()); + if !read_from_provider && IMPERSONATE_LOGIN.is_none() { + self.credentials_provider.write_credentials(credentials.user_id, credentials.access_token, cx).await.log_err(); + } + futures::select_biased! { result = self.set_connection(conn, cx).fuse() => { match result.context("client auth and connect") { @@ -1040,8 +965,15 @@ impl Client { } } Err(EstablishConnectionError::Unauthorized) => { - self.set_status(Status::ConnectionError, cx); - ConnectionResult::Result(Err(EstablishConnectionError::Unauthorized).context("client auth and connect")) + self.state.write().credentials.take(); + if read_from_provider { + self.credentials_provider.delete_credentials(cx).await.log_err(); + self.set_status(Status::SignedOut, cx); + self.authenticate_and_connect(false, cx).await + } else { + self.set_status(Status::ConnectionError, cx); + ConnectionResult::Result(Err(EstablishConnectionError::Unauthorized).context("client auth and connect")) + } } Err(EstablishConnectionError::UpgradeRequired) => { self.set_status(Status::UpgradeRequired, cx); @@ -1205,7 +1137,7 @@ impl Client { .to_str() .map_err(EstablishConnectionError::other)? .to_string(); - Url::parse(&collab_url).with_context(|| format!("parsing collab rpc url {collab_url}")) + Url::parse(&collab_url).with_context(|| format!("parsing colab rpc url {collab_url}")) } } @@ -1436,31 +1368,96 @@ impl Client { self: &Arc, http: Arc, login: String, - api_token: String, + mut api_token: String, ) -> Result { - #[derive(Serialize)] - struct ImpersonateUserBody { - github_login: String, + #[derive(Deserialize)] + struct AuthenticatedUserResponse { + user: User, } #[derive(Deserialize)] - struct ImpersonateUserResponse { - user_id: u64, - access_token: String, + struct User { + id: u64, } - let url = self - .http - .build_zed_cloud_url("/internal/users/impersonate", &[])?; - let request = Request::post(url.as_str()) - .header("Content-Type", "application/json") - .header("Authorization", format!("Bearer {api_token}")) - .body( - serde_json::to_string(&ImpersonateUserBody { - github_login: login, - })? - .into(), - )?; + let github_user = { + #[derive(Deserialize)] + struct GithubUser { + id: i32, + login: String, + created_at: DateTime, + } + + let request = { + let mut request_builder = + Request::get(&format!("https://api.github.com/users/{login}")); + if let Ok(github_token) = std::env::var("GITHUB_TOKEN") { + request_builder = + request_builder.header("Authorization", format!("Bearer {}", github_token)); + } + + request_builder.body(AsyncBody::empty())? + }; + + let mut response = http + .send(request) + .await + .context("error fetching GitHub user")?; + + let mut body = Vec::new(); + response + .body_mut() + .read_to_end(&mut body) + .await + .context("error reading GitHub user")?; + + if !response.status().is_success() { + let text = String::from_utf8_lossy(body.as_slice()); + bail!( + "status error {}, response: {text:?}", + response.status().as_u16() + ); + } + + serde_json::from_slice::(body.as_slice()).map_err(|err| { + log::error!("Error deserializing: {:?}", err); + log::error!( + "GitHub API response text: {:?}", + String::from_utf8_lossy(body.as_slice()) + ); + anyhow!("error deserializing GitHub user") + })? + }; + + let query_params = [ + ("github_login", &github_user.login), + ("github_user_id", &github_user.id.to_string()), + ( + "github_user_created_at", + &github_user.created_at.to_rfc3339(), + ), + ]; + + // Use the collab server's admin API to retrieve the ID + // of the impersonated user. + let mut url = self.rpc_url(http.clone(), None).await?; + url.set_path("/user"); + url.set_query(Some( + &query_params + .iter() + .map(|(key, value)| { + format!( + "{}={}", + key, + url::form_urlencoded::byte_serialize(value.as_bytes()).collect::() + ) + }) + .collect::>() + .join("&"), + )); + let request: http_client::Request = Request::get(url.as_str()) + .header("Authorization", format!("token {api_token}")) + .body("".into())?; let mut response = http.send(request).await?; let mut body = String::new(); @@ -1471,17 +1468,18 @@ impl Client { response.status().as_u16(), body, ); - let response: ImpersonateUserResponse = serde_json::from_str(&body)?; + let response: AuthenticatedUserResponse = serde_json::from_str(&body)?; + // Use the admin API token to authenticate as the impersonated user. + api_token.insert_str(0, "ADMIN_TOKEN:"); Ok(Credentials { - user_id: response.user_id, - access_token: response.access_token, + user_id: response.user.id, + access_token: api_token, }) } pub async fn sign_out(self: &Arc, cx: &AsyncApp) { self.state.write().credentials = None; - self.cloud_client.clear_credentials(); self.disconnect(cx); if self.has_credentials(cx).await { @@ -1710,7 +1708,7 @@ pub fn parse_zed_link<'a>(link: &'a str, cx: &App) -> Option<&'a str> { #[cfg(test)] mod tests { use super::*; - use crate::test::{FakeServer, parse_authorization_header}; + use crate::test::FakeServer; use clock::FakeSystemClock; use gpui::{AppContext as _, BackgroundExecutor, TestAppContext}; @@ -1791,7 +1789,7 @@ mod tests { }); let auth_and_connect = cx.spawn({ let client = client.clone(); - |cx| async move { client.connect(false, &cx).await } + |cx| async move { client.authenticate_and_connect(false, &cx).await } }); executor.run_until_parked(); assert!(matches!(status.next().await, Some(Status::Connecting))); @@ -1836,75 +1834,6 @@ mod tests { )); } - #[gpui::test(iterations = 10)] - async fn test_reauthenticate_only_if_unauthorized(cx: &mut TestAppContext) { - init_test(cx); - let auth_count = Arc::new(Mutex::new(0)); - let http_client = FakeHttpClient::create(|_request| async move { - Ok(http_client::Response::builder() - .status(200) - .body("".into()) - .unwrap()) - }); - let client = - cx.update(|cx| Client::new(Arc::new(FakeSystemClock::new()), http_client.clone(), cx)); - client.override_authenticate({ - let auth_count = auth_count.clone(); - move |cx| { - let auth_count = auth_count.clone(); - cx.background_spawn(async move { - *auth_count.lock() += 1; - Ok(Credentials { - user_id: 1, - access_token: auth_count.lock().to_string(), - }) - }) - } - }); - - let credentials = client.sign_in(false, &cx.to_async()).await.unwrap(); - assert_eq!(*auth_count.lock(), 1); - assert_eq!(credentials.access_token, "1"); - - // If credentials are still valid, signing in doesn't trigger authentication. - let credentials = client.sign_in(false, &cx.to_async()).await.unwrap(); - assert_eq!(*auth_count.lock(), 1); - assert_eq!(credentials.access_token, "1"); - - // If the server is unavailable, signing in doesn't trigger authentication. - http_client - .as_fake() - .replace_handler(|_, _request| async move { - Ok(http_client::Response::builder() - .status(503) - .body("".into()) - .unwrap()) - }); - client.sign_in(false, &cx.to_async()).await.unwrap_err(); - assert_eq!(*auth_count.lock(), 1); - - // If credentials became invalid, signing in triggers authentication. - http_client - .as_fake() - .replace_handler(|_, request| async move { - let credentials = parse_authorization_header(&request).unwrap(); - if credentials.access_token == "2" { - Ok(http_client::Response::builder() - .status(200) - .body("".into()) - .unwrap()) - } else { - Ok(http_client::Response::builder() - .status(401) - .body("".into()) - .unwrap()) - } - }); - let credentials = client.sign_in(false, &cx.to_async()).await.unwrap(); - assert_eq!(*auth_count.lock(), 2); - assert_eq!(credentials.access_token, "2"); - } - #[gpui::test(iterations = 10)] async fn test_authenticating_more_than_once( cx: &mut TestAppContext, @@ -1937,7 +1866,7 @@ mod tests { let _authenticate = cx.spawn({ let client = client.clone(); - move |cx| async move { client.connect(false, &cx).await } + move |cx| async move { client.authenticate_and_connect(false, &cx).await } }); executor.run_until_parked(); assert_eq!(*auth_count.lock(), 1); @@ -1945,7 +1874,7 @@ mod tests { let _authenticate = cx.spawn({ let client = client.clone(); - |cx| async move { client.connect(false, &cx).await } + |cx| async move { client.authenticate_and_connect(false, &cx).await } }); executor.run_until_parked(); assert_eq!(*auth_count.lock(), 2); diff --git a/crates/client/src/telemetry.rs b/crates/client/src/telemetry.rs index 7d39464e4a..4983fda5ef 100644 --- a/crates/client/src/telemetry.rs +++ b/crates/client/src/telemetry.rs @@ -358,13 +358,13 @@ impl Telemetry { worktree_id: WorktreeId, updated_entries_set: &UpdatedEntriesSet, ) { - let Some(project_types) = self.detect_project_types(worktree_id, updated_entries_set) + let Some(project_type_names) = self.detect_project_types(worktree_id, updated_entries_set) else { return; }; - for project_type in project_types { - telemetry::event!("Project Opened", project_type = project_type); + for project_type_name in project_type_names { + telemetry::event!("Project Opened", project_type = project_type_name); } } diff --git a/crates/client/src/test.rs b/crates/client/src/test.rs index 439fb100d2..6ce79fa9c5 100644 --- a/crates/client/src/test.rs +++ b/crates/client/src/test.rs @@ -1,11 +1,8 @@ use crate::{Client, Connection, Credentials, EstablishConnectionError, UserStore}; use anyhow::{Context as _, Result, anyhow}; use chrono::Duration; -use cloud_api_client::{AuthenticatedUser, GetAuthenticatedUserResponse, PlanInfo}; -use cloud_llm_client::{CurrentUsage, Plan, UsageData, UsageLimit}; use futures::{StreamExt, stream::BoxStream}; use gpui::{AppContext as _, BackgroundExecutor, Entity, TestAppContext}; -use http_client::{AsyncBody, Method, Request, http}; use parking_lot::Mutex; use rpc::{ ConnectionId, Peer, Receipt, TypedEnvelope, @@ -42,44 +39,6 @@ impl FakeServer { executor: cx.executor(), }; - client.http_client().as_fake().replace_handler({ - let state = server.state.clone(); - move |old_handler, req| { - let state = state.clone(); - let old_handler = old_handler.clone(); - async move { - match (req.method(), req.uri().path()) { - (&Method::GET, "/client/users/me") => { - let credentials = parse_authorization_header(&req); - if credentials - != Some(Credentials { - user_id: client_user_id, - access_token: state.lock().access_token.to_string(), - }) - { - return Ok(http_client::Response::builder() - .status(401) - .body("Unauthorized".into()) - .unwrap()); - } - - Ok(http_client::Response::builder() - .status(200) - .body( - serde_json::to_string(&make_get_authenticated_user_response( - client_user_id as i32, - format!("user-{client_user_id}"), - )) - .unwrap() - .into(), - ) - .unwrap()) - } - _ => old_handler(req).await, - } - } - } - }); client .override_authenticate({ let state = Arc::downgrade(&server.state); @@ -146,7 +105,7 @@ impl FakeServer { }); client - .connect(false, &cx.to_async()) + .authenticate_and_connect(false, &cx.to_async()) .await .into_response() .unwrap(); @@ -264,54 +223,3 @@ impl Drop for FakeServer { self.disconnect(); } } - -pub fn parse_authorization_header(req: &Request) -> Option { - let mut auth_header = req - .headers() - .get(http::header::AUTHORIZATION)? - .to_str() - .ok()? - .split_whitespace(); - let user_id = auth_header.next()?.parse().ok()?; - let access_token = auth_header.next()?; - Some(Credentials { - user_id, - access_token: access_token.to_string(), - }) -} - -pub fn make_get_authenticated_user_response( - user_id: i32, - github_login: String, -) -> GetAuthenticatedUserResponse { - GetAuthenticatedUserResponse { - user: AuthenticatedUser { - id: user_id, - metrics_id: format!("metrics-id-{user_id}"), - avatar_url: "".to_string(), - github_login, - name: None, - is_staff: false, - accepted_tos_at: None, - }, - feature_flags: vec![], - plan: PlanInfo { - plan: Plan::ZedPro, - subscription_period: None, - usage: CurrentUsage { - model_requests: UsageData { - used: 0, - limit: UsageLimit::Limited(500), - }, - edit_predictions: UsageData { - used: 250, - limit: UsageLimit::Unlimited, - }, - }, - trial_started_at: None, - is_usage_based_billing_enabled: false, - is_account_too_young: false, - has_overdue_invoices: false, - }, - } -} diff --git a/crates/client/src/user.rs b/crates/client/src/user.rs index 3c125a0882..5ed258aa8e 100644 --- a/crates/client/src/user.rs +++ b/crates/client/src/user.rs @@ -1,11 +1,6 @@ use super::{Client, Status, TypedEnvelope, proto}; use anyhow::{Context as _, Result, anyhow}; use chrono::{DateTime, Utc}; -use cloud_api_client::{GetAuthenticatedUserResponse, PlanInfo}; -use cloud_llm_client::{ - EDIT_PREDICTIONS_USAGE_AMOUNT_HEADER_NAME, EDIT_PREDICTIONS_USAGE_LIMIT_HEADER_NAME, - MODEL_REQUESTS_USAGE_AMOUNT_HEADER_NAME, MODEL_REQUESTS_USAGE_LIMIT_HEADER_NAME, UsageLimit, -}; use collections::{HashMap, HashSet, hash_map::Entry}; use derive_more::Deref; use feature_flags::FeatureFlagAppExt; @@ -21,7 +16,11 @@ use std::{ sync::{Arc, Weak}, }; use text::ReplicaId; -use util::{ResultExt, TryFutureExt as _}; +use util::{TryFutureExt as _, maybe}; +use zed_llm_client::{ + EDIT_PREDICTIONS_USAGE_AMOUNT_HEADER_NAME, EDIT_PREDICTIONS_USAGE_LIMIT_HEADER_NAME, + MODEL_REQUESTS_USAGE_AMOUNT_HEADER_NAME, MODEL_REQUESTS_USAGE_LIMIT_HEADER_NAME, UsageLimit, +}; pub type UserId = u64; @@ -56,7 +55,7 @@ pub struct ParticipantIndex(pub u32); #[derive(Default, Debug)] pub struct User { pub id: UserId, - pub github_login: SharedString, + pub github_login: String, pub avatar_uri: SharedUri, pub name: Option, } @@ -108,14 +107,19 @@ pub enum ContactRequestStatus { pub struct UserStore { users: HashMap>, - by_github_login: HashMap, + by_github_login: HashMap, participant_indices: HashMap, update_contacts_tx: mpsc::UnboundedSender, + current_plan: Option, + subscription_period: Option<(DateTime, DateTime)>, + trial_started_at: Option>, model_request_usage: Option, edit_prediction_usage: Option, - plan_info: Option, + is_usage_based_billing_enabled: Option, + account_too_young: Option, + has_overdue_invoices: Option, current_user: watch::Receiver>>, - accepted_tos_at: Option>, + accepted_tos_at: Option>>, contacts: Vec>, incoming_contact_requests: Vec>, outgoing_contact_requests: Vec>, @@ -141,7 +145,6 @@ pub enum Event { ShowContacts, ParticipantIndicesChanged, PrivateUserInfoUpdated, - PlanUpdated, } #[derive(Clone, Copy)] @@ -185,9 +188,14 @@ impl UserStore { users: Default::default(), by_github_login: Default::default(), current_user: current_user_rx, - plan_info: None, + current_plan: None, + subscription_period: None, + trial_started_at: None, model_request_usage: None, edit_prediction_usage: None, + is_usage_based_billing_enabled: None, + account_too_young: None, + has_overdue_invoices: None, accepted_tos_at: None, contacts: Default::default(), incoming_contact_requests: Default::default(), @@ -217,30 +225,53 @@ impl UserStore { return Ok(()); }; match status { - Status::Authenticated | Status::Connected { .. } => { + Status::Connected { .. } => { if let Some(user_id) = client.user_id() { - let response = client.cloud_client().get_authenticated_user().await; - let mut current_user = None; + let fetch_user = if let Ok(fetch_user) = + this.update(cx, |this, cx| this.get_user(user_id, cx).log_err()) + { + fetch_user + } else { + break; + }; + let fetch_private_user_info = + client.request(proto::GetPrivateUserInfo {}).log_err(); + let (user, info) = + futures::join!(fetch_user, fetch_private_user_info); + cx.update(|cx| { - if let Some(response) = response.log_err() { - let user = Arc::new(User { - id: user_id, - github_login: response.user.github_login.clone().into(), - avatar_uri: response.user.avatar_url.clone().into(), - name: response.user.name.clone(), - }); - current_user = Some(user.clone()); + if let Some(info) = info { + let staff = + info.staff && !*feature_flags::ZED_DISABLE_STAFF; + cx.update_flags(staff, info.flags); + client.telemetry.set_authenticated_user_info( + Some(info.metrics_id.clone()), + staff, + ); + this.update(cx, |this, cx| { - this.by_github_login - .insert(user.github_login.clone(), user_id); - this.users.insert(user_id, user); - this.update_authenticated_user(response, cx) + let accepted_tos_at = { + #[cfg(debug_assertions)] + if std::env::var("ZED_IGNORE_ACCEPTED_TOS").is_ok() + { + None + } else { + info.accepted_tos_at + } + + #[cfg(not(debug_assertions))] + info.accepted_tos_at + }; + + this.set_current_user_accepted_tos_at(accepted_tos_at); + cx.emit(Event::PrivateUserInfoUpdated); }) } else { anyhow::Ok(()) } })??; - current_user_tx.send(current_user).await.ok(); + + current_user_tx.send(user).await.ok(); this.update(cx, |_, cx| cx.notify())?; } @@ -321,22 +352,59 @@ impl UserStore { async fn handle_update_plan( this: Entity, - _message: TypedEnvelope, + message: TypedEnvelope, mut cx: AsyncApp, ) -> Result<()> { - let client = this - .read_with(&cx, |this, _| this.client.upgrade())? - .context("client was dropped")?; - - let response = client - .cloud_client() - .get_authenticated_user() - .await - .context("failed to fetch authenticated user")?; - this.update(&mut cx, |this, cx| { - this.update_authenticated_user(response, cx); - }) + this.current_plan = Some(message.payload.plan()); + this.subscription_period = maybe!({ + let period = message.payload.subscription_period?; + let started_at = DateTime::from_timestamp(period.started_at as i64, 0)?; + let ended_at = DateTime::from_timestamp(period.ended_at as i64, 0)?; + + Some((started_at, ended_at)) + }); + this.trial_started_at = message + .payload + .trial_started_at + .and_then(|trial_started_at| DateTime::from_timestamp(trial_started_at as i64, 0)); + this.is_usage_based_billing_enabled = message.payload.is_usage_based_billing_enabled; + this.account_too_young = message.payload.account_too_young; + this.has_overdue_invoices = message.payload.has_overdue_invoices; + + if let Some(usage) = message.payload.usage { + // limits are always present even though they are wrapped in Option + this.model_request_usage = usage + .model_requests_usage_limit + .and_then(|limit| { + RequestUsage::from_proto(usage.model_requests_usage_amount, limit) + }) + .map(ModelRequestUsage); + this.edit_prediction_usage = usage + .edit_predictions_usage_limit + .and_then(|limit| { + RequestUsage::from_proto(usage.model_requests_usage_amount, limit) + }) + .map(EditPredictionUsage); + } + + cx.notify(); + })?; + Ok(()) + } + + pub fn update_model_request_usage(&mut self, usage: ModelRequestUsage, cx: &mut Context) { + self.model_request_usage = Some(usage); + cx.notify(); + } + + pub fn update_edit_prediction_usage( + &mut self, + usage: EditPredictionUsage, + cx: &mut Context, + ) { + self.edit_prediction_usage = Some(usage); + cx.notify(); } fn update_contacts(&mut self, message: UpdateContacts, cx: &Context) -> Task> { @@ -695,131 +763,59 @@ impl UserStore { self.current_user.borrow().clone() } - pub fn plan(&self) -> Option { + pub fn current_plan(&self) -> Option { #[cfg(debug_assertions)] if let Ok(plan) = std::env::var("ZED_SIMULATE_PLAN").as_ref() { return match plan.as_str() { - "free" => Some(cloud_llm_client::Plan::ZedFree), - "trial" => Some(cloud_llm_client::Plan::ZedProTrial), - "pro" => Some(cloud_llm_client::Plan::ZedPro), + "free" => Some(proto::Plan::Free), + "trial" => Some(proto::Plan::ZedProTrial), + "pro" => Some(proto::Plan::ZedPro), _ => { panic!("ZED_SIMULATE_PLAN must be one of 'free', 'trial', or 'pro'"); } }; } - self.plan_info.as_ref().map(|info| info.plan) + self.current_plan } pub fn subscription_period(&self) -> Option<(DateTime, DateTime)> { - self.plan_info - .as_ref() - .and_then(|plan| plan.subscription_period) - .map(|subscription_period| { - ( - subscription_period.started_at.0, - subscription_period.ended_at.0, - ) - }) + self.subscription_period } pub fn trial_started_at(&self) -> Option> { - self.plan_info - .as_ref() - .and_then(|plan| plan.trial_started_at) - .map(|trial_started_at| trial_started_at.0) + self.trial_started_at } - /// Returns whether the user's account is too new to use the service. - pub fn account_too_young(&self) -> bool { - self.plan_info - .as_ref() - .map(|plan| plan.is_account_too_young) - .unwrap_or_default() - } - - /// Returns whether the current user has overdue invoices and usage should be blocked. - pub fn has_overdue_invoices(&self) -> bool { - self.plan_info - .as_ref() - .map(|plan| plan.has_overdue_invoices) - .unwrap_or_default() - } - - pub fn is_usage_based_billing_enabled(&self) -> bool { - self.plan_info - .as_ref() - .map(|plan| plan.is_usage_based_billing_enabled) - .unwrap_or_default() + pub fn usage_based_billing_enabled(&self) -> Option { + self.is_usage_based_billing_enabled } pub fn model_request_usage(&self) -> Option { self.model_request_usage } - pub fn update_model_request_usage(&mut self, usage: ModelRequestUsage, cx: &mut Context) { - self.model_request_usage = Some(usage); - cx.notify(); - } - pub fn edit_prediction_usage(&self) -> Option { self.edit_prediction_usage } - pub fn update_edit_prediction_usage( - &mut self, - usage: EditPredictionUsage, - cx: &mut Context, - ) { - self.edit_prediction_usage = Some(usage); - cx.notify(); - } - - fn update_authenticated_user( - &mut self, - response: GetAuthenticatedUserResponse, - cx: &mut Context, - ) { - let staff = response.user.is_staff && !*feature_flags::ZED_DISABLE_STAFF; - cx.update_flags(staff, response.feature_flags); - if let Some(client) = self.client.upgrade() { - client - .telemetry - .set_authenticated_user_info(Some(response.user.metrics_id.clone()), staff); - } - - let accepted_tos_at = { - #[cfg(debug_assertions)] - if std::env::var("ZED_IGNORE_ACCEPTED_TOS").is_ok() { - None - } else { - response.user.accepted_tos_at - } - - #[cfg(not(debug_assertions))] - response.user.accepted_tos_at - }; - - self.accepted_tos_at = Some(accepted_tos_at); - self.model_request_usage = Some(ModelRequestUsage(RequestUsage { - limit: response.plan.usage.model_requests.limit, - amount: response.plan.usage.model_requests.used as i32, - })); - self.edit_prediction_usage = Some(EditPredictionUsage(RequestUsage { - limit: response.plan.usage.edit_predictions.limit, - amount: response.plan.usage.edit_predictions.used as i32, - })); - self.plan_info = Some(response.plan); - cx.emit(Event::PrivateUserInfoUpdated); - } - pub fn watch_current_user(&self) -> watch::Receiver>> { self.current_user.clone() } - pub fn has_accepted_terms_of_service(&self) -> bool { + /// Returns whether the user's account is too new to use the service. + pub fn account_too_young(&self) -> bool { + self.account_too_young.unwrap_or(false) + } + + /// Returns whether the current user has overdue invoices and usage should be blocked. + pub fn has_overdue_invoices(&self) -> bool { + self.has_overdue_invoices.unwrap_or(false) + } + + pub fn current_user_has_accepted_terms(&self) -> Option { self.accepted_tos_at - .map_or(false, |accepted_tos_at| accepted_tos_at.is_some()) + .map(|accepted_tos_at| accepted_tos_at.is_some()) } pub fn accept_terms_of_service(&self, cx: &Context) -> Task> { @@ -831,18 +827,23 @@ impl UserStore { cx.spawn(async move |this, cx| -> anyhow::Result<()> { let client = client.upgrade().context("client not found")?; let response = client - .cloud_client() - .accept_terms_of_service() + .request(proto::AcceptTermsOfService {}) .await .context("error accepting tos")?; this.update(cx, |this, cx| { - this.accepted_tos_at = Some(response.user.accepted_tos_at); + this.set_current_user_accepted_tos_at(Some(response.accepted_tos_at)); cx.emit(Event::PrivateUserInfoUpdated); })?; Ok(()) }) } + fn set_current_user_accepted_tos_at(&mut self, accepted_tos_at: Option) { + self.accepted_tos_at = Some( + accepted_tos_at.and_then(|timestamp| DateTime::from_timestamp(timestamp as i64, 0)), + ); + } + fn load_users( &self, request: impl RequestMessage, @@ -901,7 +902,7 @@ impl UserStore { let mut missing_user_ids = Vec::new(); for id in user_ids { if let Some(github_login) = self.get_cached_user(id).map(|u| u.github_login.clone()) { - ret.insert(id, github_login); + ret.insert(id, github_login.into()); } else { missing_user_ids.push(id) } @@ -922,7 +923,7 @@ impl User { fn new(message: proto::User) -> Arc { Arc::new(User { id: message.id, - github_login: message.github_login.into(), + github_login: message.github_login, avatar_uri: message.avatar_url.into(), name: message.name, }) diff --git a/crates/cloud_api_client/Cargo.toml b/crates/cloud_api_client/Cargo.toml deleted file mode 100644 index d56aa94c6e..0000000000 --- a/crates/cloud_api_client/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "cloud_api_client" -version = "0.1.0" -edition.workspace = true -publish.workspace = true -license = "Apache-2.0" - -[lints] -workspace = true - -[lib] -path = "src/cloud_api_client.rs" - -[dependencies] -anyhow.workspace = true -cloud_api_types.workspace = true -futures.workspace = true -http_client.workspace = true -parking_lot.workspace = true -serde_json.workspace = true -workspace-hack.workspace = true diff --git a/crates/cloud_api_client/LICENSE-APACHE b/crates/cloud_api_client/LICENSE-APACHE deleted file mode 120000 index 1cd601d0a3..0000000000 --- a/crates/cloud_api_client/LICENSE-APACHE +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE-APACHE \ No newline at end of file diff --git a/crates/cloud_api_client/src/cloud_api_client.rs b/crates/cloud_api_client/src/cloud_api_client.rs deleted file mode 100644 index edac051a0e..0000000000 --- a/crates/cloud_api_client/src/cloud_api_client.rs +++ /dev/null @@ -1,188 +0,0 @@ -use std::sync::Arc; - -use anyhow::{Context, Result, anyhow}; -pub use cloud_api_types::*; -use futures::AsyncReadExt as _; -use http_client::http::request; -use http_client::{AsyncBody, HttpClientWithUrl, Method, Request, StatusCode}; -use parking_lot::RwLock; - -struct Credentials { - user_id: u32, - access_token: String, -} - -pub struct CloudApiClient { - credentials: RwLock>, - http_client: Arc, -} - -impl CloudApiClient { - pub fn new(http_client: Arc) -> Self { - Self { - credentials: RwLock::new(None), - http_client, - } - } - - pub fn has_credentials(&self) -> bool { - self.credentials.read().is_some() - } - - pub fn set_credentials(&self, user_id: u32, access_token: String) { - *self.credentials.write() = Some(Credentials { - user_id, - access_token, - }); - } - - pub fn clear_credentials(&self) { - *self.credentials.write() = None; - } - - fn build_request( - &self, - req: request::Builder, - body: impl Into, - ) -> Result> { - let credentials = self.credentials.read(); - let credentials = credentials.as_ref().context("no credentials provided")?; - build_request(req, body, credentials) - } - - pub async fn get_authenticated_user(&self) -> Result { - let request = self.build_request( - Request::builder().method(Method::GET).uri( - self.http_client - .build_zed_cloud_url("/client/users/me", &[])? - .as_ref(), - ), - AsyncBody::default(), - )?; - - let mut response = self.http_client.send(request).await?; - - if !response.status().is_success() { - let mut body = String::new(); - response.body_mut().read_to_string(&mut body).await?; - - anyhow::bail!( - "Failed to get authenticated user.\nStatus: {:?}\nBody: {body}", - response.status() - ) - } - - let mut body = String::new(); - response.body_mut().read_to_string(&mut body).await?; - - Ok(serde_json::from_str(&body)?) - } - - pub async fn accept_terms_of_service(&self) -> Result { - let request = self.build_request( - Request::builder().method(Method::POST).uri( - self.http_client - .build_zed_cloud_url("/client/terms_of_service/accept", &[])? - .as_ref(), - ), - AsyncBody::default(), - )?; - - let mut response = self.http_client.send(request).await?; - - if !response.status().is_success() { - let mut body = String::new(); - response.body_mut().read_to_string(&mut body).await?; - - anyhow::bail!( - "Failed to accept terms of service.\nStatus: {:?}\nBody: {body}", - response.status() - ) - } - - let mut body = String::new(); - response.body_mut().read_to_string(&mut body).await?; - - Ok(serde_json::from_str(&body)?) - } - - pub async fn create_llm_token( - &self, - system_id: Option, - ) -> Result { - let mut request_builder = Request::builder().method(Method::POST).uri( - self.http_client - .build_zed_cloud_url("/client/llm_tokens", &[])? - .as_ref(), - ); - - if let Some(system_id) = system_id { - request_builder = request_builder.header(ZED_SYSTEM_ID_HEADER_NAME, system_id); - } - - let request = self.build_request(request_builder, AsyncBody::default())?; - - let mut response = self.http_client.send(request).await?; - - if !response.status().is_success() { - let mut body = String::new(); - response.body_mut().read_to_string(&mut body).await?; - - anyhow::bail!( - "Failed to create LLM token.\nStatus: {:?}\nBody: {body}", - response.status() - ) - } - - let mut body = String::new(); - response.body_mut().read_to_string(&mut body).await?; - - Ok(serde_json::from_str(&body)?) - } - - pub async fn validate_credentials(&self, user_id: u32, access_token: &str) -> Result { - let request = build_request( - Request::builder().method(Method::GET).uri( - self.http_client - .build_zed_cloud_url("/client/users/me", &[])? - .as_ref(), - ), - AsyncBody::default(), - &Credentials { - user_id, - access_token: access_token.into(), - }, - )?; - - let mut response = self.http_client.send(request).await?; - - if response.status().is_success() { - Ok(true) - } else { - let mut body = String::new(); - response.body_mut().read_to_string(&mut body).await?; - if response.status() == StatusCode::UNAUTHORIZED { - return Ok(false); - } else { - return Err(anyhow!( - "Failed to get authenticated user.\nStatus: {:?}\nBody: {body}", - response.status() - )); - } - } - } -} - -fn build_request( - req: request::Builder, - body: impl Into, - credentials: &Credentials, -) -> Result> { - Ok(req - .header("Content-Type", "application/json") - .header( - "Authorization", - format!("{} {}", credentials.user_id, credentials.access_token), - ) - .body(body.into())?) -} diff --git a/crates/cloud_api_types/Cargo.toml b/crates/cloud_api_types/Cargo.toml deleted file mode 100644 index 868797df3b..0000000000 --- a/crates/cloud_api_types/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[package] -name = "cloud_api_types" -version = "0.1.0" -edition.workspace = true -publish.workspace = true -license = "Apache-2.0" - -[lints] -workspace = true - -[lib] -path = "src/cloud_api_types.rs" - -[dependencies] -chrono.workspace = true -cloud_llm_client.workspace = true -serde.workspace = true -workspace-hack.workspace = true - -[dev-dependencies] -pretty_assertions.workspace = true -serde_json.workspace = true diff --git a/crates/cloud_api_types/LICENSE-APACHE b/crates/cloud_api_types/LICENSE-APACHE deleted file mode 120000 index 1cd601d0a3..0000000000 --- a/crates/cloud_api_types/LICENSE-APACHE +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE-APACHE \ No newline at end of file diff --git a/crates/cloud_api_types/src/cloud_api_types.rs b/crates/cloud_api_types/src/cloud_api_types.rs deleted file mode 100644 index b38b38cde1..0000000000 --- a/crates/cloud_api_types/src/cloud_api_types.rs +++ /dev/null @@ -1,55 +0,0 @@ -mod timestamp; - -use serde::{Deserialize, Serialize}; - -pub use crate::timestamp::Timestamp; - -pub const ZED_SYSTEM_ID_HEADER_NAME: &str = "x-zed-system-id"; - -#[derive(Debug, PartialEq, Serialize, Deserialize)] -pub struct GetAuthenticatedUserResponse { - pub user: AuthenticatedUser, - pub feature_flags: Vec, - pub plan: PlanInfo, -} - -#[derive(Debug, PartialEq, Serialize, Deserialize)] -pub struct AuthenticatedUser { - pub id: i32, - pub metrics_id: String, - pub avatar_url: String, - pub github_login: String, - pub name: Option, - pub is_staff: bool, - pub accepted_tos_at: Option, -} - -#[derive(Debug, PartialEq, Serialize, Deserialize)] -pub struct PlanInfo { - pub plan: cloud_llm_client::Plan, - pub subscription_period: Option, - pub usage: cloud_llm_client::CurrentUsage, - pub trial_started_at: Option, - pub is_usage_based_billing_enabled: bool, - pub is_account_too_young: bool, - pub has_overdue_invoices: bool, -} - -#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize)] -pub struct SubscriptionPeriod { - pub started_at: Timestamp, - pub ended_at: Timestamp, -} - -#[derive(Debug, PartialEq, Serialize, Deserialize)] -pub struct AcceptTermsOfServiceResponse { - pub user: AuthenticatedUser, -} - -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] -pub struct LlmToken(pub String); - -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] -pub struct CreateLlmTokenResponse { - pub token: LlmToken, -} diff --git a/crates/cloud_api_types/src/timestamp.rs b/crates/cloud_api_types/src/timestamp.rs deleted file mode 100644 index 1f055d58ef..0000000000 --- a/crates/cloud_api_types/src/timestamp.rs +++ /dev/null @@ -1,166 +0,0 @@ -use chrono::{DateTime, NaiveDateTime, SecondsFormat, Utc}; -use serde::{Deserialize, Deserializer, Serialize, Serializer}; - -/// A timestamp with a serialized representation in RFC 3339 format. -#[derive(Debug, PartialEq, Eq, Hash, Clone, Copy)] -pub struct Timestamp(pub DateTime); - -impl Timestamp { - pub fn new(datetime: DateTime) -> Self { - Self(datetime) - } -} - -impl From> for Timestamp { - fn from(value: DateTime) -> Self { - Self(value) - } -} - -impl From for Timestamp { - fn from(value: NaiveDateTime) -> Self { - Self(value.and_utc()) - } -} - -impl Serialize for Timestamp { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - let rfc3339_string = self.0.to_rfc3339_opts(SecondsFormat::Millis, true); - serializer.serialize_str(&rfc3339_string) - } -} - -impl<'de> Deserialize<'de> for Timestamp { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let value = String::deserialize(deserializer)?; - let datetime = DateTime::parse_from_rfc3339(&value) - .map_err(serde::de::Error::custom)? - .to_utc(); - Ok(Self(datetime)) - } -} - -#[cfg(test)] -mod tests { - use chrono::NaiveDate; - use pretty_assertions::assert_eq; - - use super::*; - - #[test] - fn test_timestamp_serialization() { - let datetime = DateTime::parse_from_rfc3339("2023-12-25T14:30:45.123Z") - .unwrap() - .to_utc(); - let timestamp = Timestamp::new(datetime); - - let json = serde_json::to_string(×tamp).unwrap(); - assert_eq!(json, "\"2023-12-25T14:30:45.123Z\""); - } - - #[test] - fn test_timestamp_deserialization() { - let json = "\"2023-12-25T14:30:45.123Z\""; - let timestamp: Timestamp = serde_json::from_str(json).unwrap(); - - let expected = DateTime::parse_from_rfc3339("2023-12-25T14:30:45.123Z") - .unwrap() - .to_utc(); - - assert_eq!(timestamp.0, expected); - } - - #[test] - fn test_timestamp_roundtrip() { - let original = DateTime::parse_from_rfc3339("2023-12-25T14:30:45.123Z") - .unwrap() - .to_utc(); - - let timestamp = Timestamp::new(original); - let json = serde_json::to_string(×tamp).unwrap(); - let deserialized: Timestamp = serde_json::from_str(&json).unwrap(); - - assert_eq!(deserialized.0, original); - } - - #[test] - fn test_timestamp_from_datetime_utc() { - let datetime = DateTime::parse_from_rfc3339("2023-12-25T14:30:45.123Z") - .unwrap() - .to_utc(); - - let timestamp = Timestamp::from(datetime); - assert_eq!(timestamp.0, datetime); - } - - #[test] - fn test_timestamp_from_naive_datetime() { - let naive_dt = NaiveDate::from_ymd_opt(2023, 12, 25) - .unwrap() - .and_hms_milli_opt(14, 30, 45, 123) - .unwrap(); - - let timestamp = Timestamp::from(naive_dt); - let expected = naive_dt.and_utc(); - - assert_eq!(timestamp.0, expected); - } - - #[test] - fn test_timestamp_serialization_with_microseconds() { - // Test that microseconds are truncated to milliseconds - let datetime = NaiveDate::from_ymd_opt(2023, 12, 25) - .unwrap() - .and_hms_micro_opt(14, 30, 45, 123456) - .unwrap() - .and_utc(); - - let timestamp = Timestamp::new(datetime); - let json = serde_json::to_string(×tamp).unwrap(); - - // Should be truncated to milliseconds - assert_eq!(json, "\"2023-12-25T14:30:45.123Z\""); - } - - #[test] - fn test_timestamp_deserialization_without_milliseconds() { - let json = "\"2023-12-25T14:30:45Z\""; - let timestamp: Timestamp = serde_json::from_str(json).unwrap(); - - let expected = NaiveDate::from_ymd_opt(2023, 12, 25) - .unwrap() - .and_hms_opt(14, 30, 45) - .unwrap() - .and_utc(); - - assert_eq!(timestamp.0, expected); - } - - #[test] - fn test_timestamp_deserialization_with_timezone() { - let json = "\"2023-12-25T14:30:45.123+05:30\""; - let timestamp: Timestamp = serde_json::from_str(json).unwrap(); - - // Should be converted to UTC - let expected = NaiveDate::from_ymd_opt(2023, 12, 25) - .unwrap() - .and_hms_milli_opt(9, 0, 45, 123) // 14:30:45 + 5:30 = 20:00:45, but we want UTC so subtract 5:30 - .unwrap() - .and_utc(); - - assert_eq!(timestamp.0, expected); - } - - #[test] - fn test_timestamp_deserialization_with_invalid_format() { - let json = "\"invalid-date\""; - let result: Result = serde_json::from_str(json); - assert!(result.is_err()); - } -} diff --git a/crates/cloud_llm_client/Cargo.toml b/crates/cloud_llm_client/Cargo.toml deleted file mode 100644 index 6f090d3c6e..0000000000 --- a/crates/cloud_llm_client/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -name = "cloud_llm_client" -version = "0.1.0" -publish.workspace = true -edition.workspace = true -license = "Apache-2.0" - -[lints] -workspace = true - -[lib] -path = "src/cloud_llm_client.rs" - -[dependencies] -anyhow.workspace = true -serde = { workspace = true, features = ["derive", "rc"] } -serde_json.workspace = true -strum = { workspace = true, features = ["derive"] } -uuid = { workspace = true, features = ["serde"] } -workspace-hack.workspace = true - -[dev-dependencies] -pretty_assertions.workspace = true diff --git a/crates/cloud_llm_client/LICENSE-APACHE b/crates/cloud_llm_client/LICENSE-APACHE deleted file mode 120000 index 1cd601d0a3..0000000000 --- a/crates/cloud_llm_client/LICENSE-APACHE +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE-APACHE \ No newline at end of file diff --git a/crates/cloud_llm_client/src/cloud_llm_client.rs b/crates/cloud_llm_client/src/cloud_llm_client.rs deleted file mode 100644 index 171c923154..0000000000 --- a/crates/cloud_llm_client/src/cloud_llm_client.rs +++ /dev/null @@ -1,370 +0,0 @@ -use std::str::FromStr; -use std::sync::Arc; - -use anyhow::Context as _; -use serde::{Deserialize, Serialize}; -use strum::{Display, EnumIter, EnumString}; -use uuid::Uuid; - -/// The name of the header used to indicate which version of Zed the client is running. -pub const ZED_VERSION_HEADER_NAME: &str = "x-zed-version"; - -/// The name of the header used to indicate when a request failed due to an -/// expired LLM token. -/// -/// The client may use this as a signal to refresh the token. -pub const EXPIRED_LLM_TOKEN_HEADER_NAME: &str = "x-zed-expired-token"; - -/// The name of the header used to indicate what plan the user is currently on. -pub const CURRENT_PLAN_HEADER_NAME: &str = "x-zed-plan"; - -/// The name of the header used to indicate the usage limit for model requests. -pub const MODEL_REQUESTS_USAGE_LIMIT_HEADER_NAME: &str = "x-zed-model-requests-usage-limit"; - -/// The name of the header used to indicate the usage amount for model requests. -pub const MODEL_REQUESTS_USAGE_AMOUNT_HEADER_NAME: &str = "x-zed-model-requests-usage-amount"; - -/// The name of the header used to indicate the usage limit for edit predictions. -pub const EDIT_PREDICTIONS_USAGE_LIMIT_HEADER_NAME: &str = "x-zed-edit-predictions-usage-limit"; - -/// The name of the header used to indicate the usage amount for edit predictions. -pub const EDIT_PREDICTIONS_USAGE_AMOUNT_HEADER_NAME: &str = "x-zed-edit-predictions-usage-amount"; - -/// The name of the header used to indicate the resource for which the subscription limit has been reached. -pub const SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME: &str = "x-zed-subscription-limit-resource"; - -pub const MODEL_REQUESTS_RESOURCE_HEADER_VALUE: &str = "model_requests"; -pub const EDIT_PREDICTIONS_RESOURCE_HEADER_VALUE: &str = "edit_predictions"; - -/// The name of the header used to indicate that the maximum number of consecutive tool uses has been reached. -pub const TOOL_USE_LIMIT_REACHED_HEADER_NAME: &str = "x-zed-tool-use-limit-reached"; - -/// The name of the header used to indicate the the minimum required Zed version. -/// -/// This can be used to force a Zed upgrade in order to continue communicating -/// with the LLM service. -pub const MINIMUM_REQUIRED_VERSION_HEADER_NAME: &str = "x-zed-minimum-required-version"; - -/// The name of the header used by the client to indicate to the server that it supports receiving status messages. -pub const CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME: &str = - "x-zed-client-supports-status-messages"; - -/// The name of the header used by the server to indicate to the client that it supports sending status messages. -pub const SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME: &str = - "x-zed-server-supports-status-messages"; - -#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub enum UsageLimit { - Limited(i32), - Unlimited, -} - -impl FromStr for UsageLimit { - type Err = anyhow::Error; - - fn from_str(value: &str) -> Result { - match value { - "unlimited" => Ok(Self::Unlimited), - limit => limit - .parse::() - .map(Self::Limited) - .context("failed to parse limit"), - } - } -} - -#[derive(Debug, Clone, Copy, Default, PartialEq, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub enum Plan { - #[default] - #[serde(alias = "Free")] - ZedFree, - #[serde(alias = "ZedPro")] - ZedPro, - #[serde(alias = "ZedProTrial")] - ZedProTrial, -} - -impl Plan { - pub fn as_str(&self) -> &'static str { - match self { - Plan::ZedFree => "zed_free", - Plan::ZedPro => "zed_pro", - Plan::ZedProTrial => "zed_pro_trial", - } - } - - pub fn model_requests_limit(&self) -> UsageLimit { - match self { - Plan::ZedPro => UsageLimit::Limited(500), - Plan::ZedProTrial => UsageLimit::Limited(150), - Plan::ZedFree => UsageLimit::Limited(50), - } - } - - pub fn edit_predictions_limit(&self) -> UsageLimit { - match self { - Plan::ZedPro => UsageLimit::Unlimited, - Plan::ZedProTrial => UsageLimit::Unlimited, - Plan::ZedFree => UsageLimit::Limited(2_000), - } - } -} - -impl FromStr for Plan { - type Err = anyhow::Error; - - fn from_str(value: &str) -> Result { - match value { - "zed_free" => Ok(Plan::ZedFree), - "zed_pro" => Ok(Plan::ZedPro), - "zed_pro_trial" => Ok(Plan::ZedProTrial), - plan => Err(anyhow::anyhow!("invalid plan: {plan:?}")), - } - } -} - -#[derive( - Debug, PartialEq, Eq, Hash, Clone, Copy, Serialize, Deserialize, EnumString, EnumIter, Display, -)] -#[serde(rename_all = "snake_case")] -#[strum(serialize_all = "snake_case")] -pub enum LanguageModelProvider { - Anthropic, - OpenAi, - Google, -} - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct PredictEditsBody { - #[serde(skip_serializing_if = "Option::is_none", default)] - pub outline: Option, - pub input_events: String, - pub input_excerpt: String, - #[serde(skip_serializing_if = "Option::is_none", default)] - pub speculated_output: Option, - /// Whether the user provided consent for sampling this interaction. - #[serde(default, alias = "data_collection_permission")] - pub can_collect_data: bool, - #[serde(skip_serializing_if = "Option::is_none", default)] - pub diagnostic_groups: Option>, -} - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct PredictEditsResponse { - pub request_id: Uuid, - pub output_excerpt: String, -} - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct AcceptEditPredictionBody { - pub request_id: Uuid, -} - -#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub enum CompletionMode { - Normal, - Max, -} - -#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub enum CompletionIntent { - UserPrompt, - ToolResults, - ThreadSummarization, - ThreadContextSummarization, - CreateFile, - EditFile, - InlineAssist, - TerminalInlineAssist, - GenerateGitCommitMessage, -} - -#[derive(Debug, Serialize, Deserialize)] -pub struct CompletionBody { - #[serde(skip_serializing_if = "Option::is_none", default)] - pub thread_id: Option, - #[serde(skip_serializing_if = "Option::is_none", default)] - pub prompt_id: Option, - #[serde(skip_serializing_if = "Option::is_none", default)] - pub intent: Option, - #[serde(skip_serializing_if = "Option::is_none", default)] - pub mode: Option, - pub provider: LanguageModelProvider, - pub model: String, - pub provider_request: serde_json::Value, -} - -#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub enum CompletionRequestStatus { - Queued { - position: usize, - }, - Started, - Failed { - code: String, - message: String, - request_id: Uuid, - /// Retry duration in seconds. - retry_after: Option, - }, - UsageUpdated { - amount: usize, - limit: UsageLimit, - }, - ToolUseLimitReached, -} - -#[derive(Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub enum CompletionEvent { - Status(CompletionRequestStatus), - Event(T), -} - -impl CompletionEvent { - pub fn into_status(self) -> Option { - match self { - Self::Status(status) => Some(status), - Self::Event(_) => None, - } - } - - pub fn into_event(self) -> Option { - match self { - Self::Event(event) => Some(event), - Self::Status(_) => None, - } - } -} - -#[derive(Serialize, Deserialize)] -pub struct WebSearchBody { - pub query: String, -} - -#[derive(Serialize, Deserialize, Clone)] -pub struct WebSearchResponse { - pub results: Vec, -} - -#[derive(Serialize, Deserialize, Clone)] -pub struct WebSearchResult { - pub title: String, - pub url: String, - pub text: String, -} - -#[derive(Serialize, Deserialize)] -pub struct CountTokensBody { - pub provider: LanguageModelProvider, - pub model: String, - pub provider_request: serde_json::Value, -} - -#[derive(Serialize, Deserialize)] -pub struct CountTokensResponse { - pub tokens: usize, -} - -#[derive(Debug, PartialEq, Eq, Hash, Clone, Serialize, Deserialize)] -pub struct LanguageModelId(pub Arc); - -impl std::fmt::Display for LanguageModelId { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}", self.0) - } -} - -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -pub struct LanguageModel { - pub provider: LanguageModelProvider, - pub id: LanguageModelId, - pub display_name: String, - pub max_token_count: usize, - pub max_token_count_in_max_mode: Option, - pub max_output_tokens: usize, - pub supports_tools: bool, - pub supports_images: bool, - pub supports_thinking: bool, - pub supports_max_mode: bool, -} - -#[derive(Debug, Serialize, Deserialize)] -pub struct ListModelsResponse { - pub models: Vec, - pub default_model: LanguageModelId, - pub default_fast_model: LanguageModelId, - pub recommended_models: Vec, -} - -#[derive(Debug, Serialize, Deserialize)] -pub struct GetSubscriptionResponse { - pub plan: Plan, - pub usage: Option, -} - -#[derive(Debug, PartialEq, Serialize, Deserialize)] -pub struct CurrentUsage { - pub model_requests: UsageData, - pub edit_predictions: UsageData, -} - -#[derive(Debug, PartialEq, Serialize, Deserialize)] -pub struct UsageData { - pub used: u32, - pub limit: UsageLimit, -} - -#[cfg(test)] -mod tests { - use pretty_assertions::assert_eq; - use serde_json::json; - - use super::*; - - #[test] - fn test_plan_deserialize_snake_case() { - let plan = serde_json::from_value::(json!("zed_free")).unwrap(); - assert_eq!(plan, Plan::ZedFree); - - let plan = serde_json::from_value::(json!("zed_pro")).unwrap(); - assert_eq!(plan, Plan::ZedPro); - - let plan = serde_json::from_value::(json!("zed_pro_trial")).unwrap(); - assert_eq!(plan, Plan::ZedProTrial); - } - - #[test] - fn test_plan_deserialize_aliases() { - let plan = serde_json::from_value::(json!("Free")).unwrap(); - assert_eq!(plan, Plan::ZedFree); - - let plan = serde_json::from_value::(json!("ZedPro")).unwrap(); - assert_eq!(plan, Plan::ZedPro); - - let plan = serde_json::from_value::(json!("ZedProTrial")).unwrap(); - assert_eq!(plan, Plan::ZedProTrial); - } - - #[test] - fn test_usage_limit_from_str() { - let limit = UsageLimit::from_str("unlimited").unwrap(); - assert!(matches!(limit, UsageLimit::Unlimited)); - - let limit = UsageLimit::from_str(&0.to_string()).unwrap(); - assert!(matches!(limit, UsageLimit::Limited(0))); - - let limit = UsageLimit::from_str(&50.to_string()).unwrap(); - assert!(matches!(limit, UsageLimit::Limited(50))); - - for value in ["not_a_number", "50xyz"] { - let limit = UsageLimit::from_str(value); - assert!(limit.is_err()); - } - } -} diff --git a/crates/collab/Cargo.toml b/crates/collab/Cargo.toml index 9af95317e6..d3b5048283 100644 --- a/crates/collab/Cargo.toml +++ b/crates/collab/Cargo.toml @@ -23,14 +23,13 @@ async-stripe.workspace = true async-trait.workspace = true async-tungstenite.workspace = true aws-config = { version = "1.1.5" } -aws-sdk-kinesis = "1.51.0" aws-sdk-s3 = { version = "1.15.0" } +aws-sdk-kinesis = "1.51.0" axum = { version = "0.6", features = ["json", "headers", "ws"] } axum-extra = { version = "0.4", features = ["erased-json"] } base64.workspace = true chrono.workspace = true clock.workspace = true -cloud_llm_client.workspace = true collections.workspace = true dashmap.workspace = true derive_more.workspace = true @@ -76,6 +75,7 @@ tracing-subscriber = { version = "0.3.18", features = ["env-filter", "json", "re util.workspace = true uuid.workspace = true workspace-hack.workspace = true +zed_llm_client.workspace = true [dev-dependencies] agent_settings.workspace = true diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index 6cf3f68f54..3b0f5396a7 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -100,11 +100,13 @@ impl std::fmt::Display for SystemIdHeader { pub fn routes(rpc_server: Arc) -> Router<(), Body> { Router::new() + .route("/user", get(update_or_create_authenticated_user)) .route("/users/look_up", get(look_up_user)) .route("/users/:id/access_tokens", post(create_access_token)) .route("/users/:id/refresh_llm_tokens", post(refresh_llm_tokens)) .route("/users/:id/update_plan", post(update_plan)) .route("/rpc_server_snapshot", get(get_rpc_server_snapshot)) + .merge(billing::router()) .merge(contributors::router()) .layer( ServiceBuilder::new() @@ -144,6 +146,48 @@ pub async fn validate_api_token(req: Request, next: Next) -> impl IntoR Ok::<_, Error>(next.run(req).await) } +#[derive(Debug, Deserialize)] +struct AuthenticatedUserParams { + github_user_id: i32, + github_login: String, + github_email: Option, + github_name: Option, + github_user_created_at: chrono::DateTime, +} + +#[derive(Debug, Serialize)] +struct AuthenticatedUserResponse { + user: User, + metrics_id: String, + feature_flags: Vec, +} + +async fn update_or_create_authenticated_user( + Query(params): Query, + Extension(app): Extension>, +) -> Result> { + let initial_channel_id = app.config.auto_join_channel_id; + + let user = app + .db + .update_or_create_user_by_github_account( + ¶ms.github_login, + params.github_user_id, + params.github_email.as_deref(), + params.github_name.as_deref(), + params.github_user_created_at, + initial_channel_id, + ) + .await?; + let metrics_id = app.db.get_user_metrics_id(user.id).await?; + let feature_flags = app.db.get_user_flags(user.id).await?; + Ok(Json(AuthenticatedUserResponse { + user, + metrics_id, + feature_flags, + })) +} + #[derive(Debug, Deserialize)] struct LookUpUserParams { identifier: String, @@ -310,9 +354,9 @@ async fn refresh_llm_tokens( #[derive(Debug, Serialize, Deserialize)] struct UpdatePlanBody { - pub plan: cloud_llm_client::Plan, + pub plan: zed_llm_client::Plan, pub subscription_period: SubscriptionPeriod, - pub usage: cloud_llm_client::CurrentUsage, + pub usage: zed_llm_client::CurrentUsage, pub trial_started_at: Option>, pub is_usage_based_billing_enabled: bool, pub is_account_too_young: bool, @@ -334,9 +378,9 @@ async fn update_plan( extract::Json(body): extract::Json, ) -> Result> { let plan = match body.plan { - cloud_llm_client::Plan::ZedFree => proto::Plan::Free, - cloud_llm_client::Plan::ZedPro => proto::Plan::ZedPro, - cloud_llm_client::Plan::ZedProTrial => proto::Plan::ZedProTrial, + zed_llm_client::Plan::ZedFree => proto::Plan::Free, + zed_llm_client::Plan::ZedPro => proto::Plan::ZedPro, + zed_llm_client::Plan::ZedProTrial => proto::Plan::ZedProTrial, }; let update_user_plan = proto::UpdateUserPlan { @@ -368,15 +412,15 @@ async fn update_plan( Ok(Json(UpdatePlanResponse {})) } -fn usage_limit_to_proto(limit: cloud_llm_client::UsageLimit) -> proto::UsageLimit { +fn usage_limit_to_proto(limit: zed_llm_client::UsageLimit) -> proto::UsageLimit { proto::UsageLimit { variant: Some(match limit { - cloud_llm_client::UsageLimit::Limited(limit) => { + zed_llm_client::UsageLimit::Limited(limit) => { proto::usage_limit::Variant::Limited(proto::usage_limit::Limited { limit: limit as u32, }) } - cloud_llm_client::UsageLimit::Unlimited => { + zed_llm_client::UsageLimit::Unlimited => { proto::usage_limit::Variant::Unlimited(proto::usage_limit::Unlimited {}) } }), diff --git a/crates/collab/src/api/billing.rs b/crates/collab/src/api/billing.rs index 0e15308ffe..bd7b99b3eb 100644 --- a/crates/collab/src/api/billing.rs +++ b/crates/collab/src/api/billing.rs @@ -1,13 +1,23 @@ use anyhow::{Context as _, bail}; +use axum::{Extension, Json, Router, extract, routing::post}; use chrono::{DateTime, Utc}; -use cloud_llm_client::LanguageModelProvider; use collections::{HashMap, HashSet}; +use reqwest::StatusCode; use sea_orm::ActiveValue; -use std::{sync::Arc, time::Duration}; -use stripe::{CancellationDetailsReason, EventObject, EventType, ListEvents, SubscriptionStatus}; +use serde::{Deserialize, Serialize}; +use std::{str::FromStr, sync::Arc, time::Duration}; +use stripe::{ + BillingPortalSession, CancellationDetailsReason, CreateBillingPortalSession, + CreateBillingPortalSessionFlowData, CreateBillingPortalSessionFlowDataAfterCompletion, + CreateBillingPortalSessionFlowDataAfterCompletionRedirect, + CreateBillingPortalSessionFlowDataSubscriptionUpdateConfirm, + CreateBillingPortalSessionFlowDataSubscriptionUpdateConfirmItems, + CreateBillingPortalSessionFlowDataType, CustomerId, EventObject, EventType, ListEvents, + PaymentMethod, Subscription, SubscriptionId, SubscriptionStatus, +}; use util::{ResultExt, maybe}; +use zed_llm_client::LanguageModelProvider; -use crate::AppState; use crate::db::billing_subscription::{ StripeCancellationReason, StripeSubscriptionStatus, SubscriptionKind, }; @@ -17,16 +27,331 @@ use crate::stripe_client::{ StripeCancellationDetailsReason, StripeClient, StripeCustomerId, StripeSubscription, StripeSubscriptionId, }; +use crate::{AppState, Error, Result}; use crate::{db::UserId, llm::db::LlmDatabase}; use crate::{ db::{ - CreateBillingCustomerParams, CreateBillingSubscriptionParams, + BillingSubscriptionId, CreateBillingCustomerParams, CreateBillingSubscriptionParams, CreateProcessedStripeEventParams, UpdateBillingCustomerParams, UpdateBillingSubscriptionParams, billing_customer, }, stripe_billing::StripeBilling, }; +pub fn router() -> Router { + Router::new() + .route( + "/billing/subscriptions/manage", + post(manage_billing_subscription), + ) + .route( + "/billing/subscriptions/sync", + post(sync_billing_subscription), + ) +} + +#[derive(Debug, PartialEq, Deserialize)] +#[serde(rename_all = "snake_case")] +enum ManageSubscriptionIntent { + /// The user intends to manage their subscription. + /// + /// This will open the Stripe billing portal without putting the user in a specific flow. + ManageSubscription, + /// The user intends to update their payment method. + UpdatePaymentMethod, + /// The user intends to upgrade to Zed Pro. + UpgradeToPro, + /// The user intends to cancel their subscription. + Cancel, + /// The user intends to stop the cancellation of their subscription. + StopCancellation, +} + +#[derive(Debug, Deserialize)] +struct ManageBillingSubscriptionBody { + github_user_id: i32, + intent: ManageSubscriptionIntent, + /// The ID of the subscription to manage. + subscription_id: BillingSubscriptionId, + redirect_to: Option, +} + +#[derive(Debug, Serialize)] +struct ManageBillingSubscriptionResponse { + billing_portal_session_url: Option, +} + +/// Initiates a Stripe customer portal session for managing a billing subscription. +async fn manage_billing_subscription( + Extension(app): Extension>, + extract::Json(body): extract::Json, +) -> Result> { + let user = app + .db + .get_user_by_github_user_id(body.github_user_id) + .await? + .context("user not found")?; + + let Some(stripe_client) = app.real_stripe_client.clone() else { + log::error!("failed to retrieve Stripe client"); + Err(Error::http( + StatusCode::NOT_IMPLEMENTED, + "not supported".into(), + ))? + }; + + let Some(stripe_billing) = app.stripe_billing.clone() else { + log::error!("failed to retrieve Stripe billing object"); + Err(Error::http( + StatusCode::NOT_IMPLEMENTED, + "not supported".into(), + ))? + }; + + let customer = app + .db + .get_billing_customer_by_user_id(user.id) + .await? + .context("billing customer not found")?; + let customer_id = CustomerId::from_str(&customer.stripe_customer_id) + .context("failed to parse customer ID")?; + + let subscription = app + .db + .get_billing_subscription_by_id(body.subscription_id) + .await? + .context("subscription not found")?; + let subscription_id = SubscriptionId::from_str(&subscription.stripe_subscription_id) + .context("failed to parse subscription ID")?; + + if body.intent == ManageSubscriptionIntent::StopCancellation { + let updated_stripe_subscription = Subscription::update( + &stripe_client, + &subscription_id, + stripe::UpdateSubscription { + cancel_at_period_end: Some(false), + ..Default::default() + }, + ) + .await?; + + app.db + .update_billing_subscription( + subscription.id, + &UpdateBillingSubscriptionParams { + stripe_cancel_at: ActiveValue::set( + updated_stripe_subscription + .cancel_at + .and_then(|cancel_at| DateTime::from_timestamp(cancel_at, 0)) + .map(|time| time.naive_utc()), + ), + ..Default::default() + }, + ) + .await?; + + return Ok(Json(ManageBillingSubscriptionResponse { + billing_portal_session_url: None, + })); + } + + let flow = match body.intent { + ManageSubscriptionIntent::ManageSubscription => None, + ManageSubscriptionIntent::UpgradeToPro => { + let zed_pro_price_id: stripe::PriceId = + stripe_billing.zed_pro_price_id().await?.try_into()?; + let zed_free_price_id: stripe::PriceId = + stripe_billing.zed_free_price_id().await?.try_into()?; + + let stripe_subscription = + Subscription::retrieve(&stripe_client, &subscription_id, &[]).await?; + + let is_on_zed_pro_trial = stripe_subscription.status == SubscriptionStatus::Trialing + && stripe_subscription.items.data.iter().any(|item| { + item.price + .as_ref() + .map_or(false, |price| price.id == zed_pro_price_id) + }); + if is_on_zed_pro_trial { + let payment_methods = PaymentMethod::list( + &stripe_client, + &stripe::ListPaymentMethods { + customer: Some(stripe_subscription.customer.id()), + ..Default::default() + }, + ) + .await?; + + let has_payment_method = !payment_methods.data.is_empty(); + if !has_payment_method { + return Err(Error::http( + StatusCode::BAD_REQUEST, + "missing payment method".into(), + )); + } + + // If the user is already on a Zed Pro trial and wants to upgrade to Pro, we just need to end their trial early. + Subscription::update( + &stripe_client, + &stripe_subscription.id, + stripe::UpdateSubscription { + trial_end: Some(stripe::Scheduled::now()), + ..Default::default() + }, + ) + .await?; + + return Ok(Json(ManageBillingSubscriptionResponse { + billing_portal_session_url: None, + })); + } + + let subscription_item_to_update = stripe_subscription + .items + .data + .iter() + .find_map(|item| { + let price = item.price.as_ref()?; + + if price.id == zed_free_price_id { + Some(item.id.clone()) + } else { + None + } + }) + .context("No subscription item to update")?; + + Some(CreateBillingPortalSessionFlowData { + type_: CreateBillingPortalSessionFlowDataType::SubscriptionUpdateConfirm, + subscription_update_confirm: Some( + CreateBillingPortalSessionFlowDataSubscriptionUpdateConfirm { + subscription: subscription.stripe_subscription_id, + items: vec![ + CreateBillingPortalSessionFlowDataSubscriptionUpdateConfirmItems { + id: subscription_item_to_update.to_string(), + price: Some(zed_pro_price_id.to_string()), + quantity: Some(1), + }, + ], + discounts: None, + }, + ), + ..Default::default() + }) + } + ManageSubscriptionIntent::UpdatePaymentMethod => Some(CreateBillingPortalSessionFlowData { + type_: CreateBillingPortalSessionFlowDataType::PaymentMethodUpdate, + after_completion: Some(CreateBillingPortalSessionFlowDataAfterCompletion { + type_: stripe::CreateBillingPortalSessionFlowDataAfterCompletionType::Redirect, + redirect: Some(CreateBillingPortalSessionFlowDataAfterCompletionRedirect { + return_url: format!( + "{}{path}", + app.config.zed_dot_dev_url(), + path = body.redirect_to.unwrap_or_else(|| "/account".to_string()) + ), + }), + ..Default::default() + }), + ..Default::default() + }), + ManageSubscriptionIntent::Cancel => { + if subscription.kind == Some(SubscriptionKind::ZedFree) { + return Err(Error::http( + StatusCode::BAD_REQUEST, + "free subscription cannot be canceled".into(), + )); + } + + Some(CreateBillingPortalSessionFlowData { + type_: CreateBillingPortalSessionFlowDataType::SubscriptionCancel, + after_completion: Some(CreateBillingPortalSessionFlowDataAfterCompletion { + type_: stripe::CreateBillingPortalSessionFlowDataAfterCompletionType::Redirect, + redirect: Some(CreateBillingPortalSessionFlowDataAfterCompletionRedirect { + return_url: format!("{}/account", app.config.zed_dot_dev_url()), + }), + ..Default::default() + }), + subscription_cancel: Some( + stripe::CreateBillingPortalSessionFlowDataSubscriptionCancel { + subscription: subscription.stripe_subscription_id, + retention: None, + }, + ), + ..Default::default() + }) + } + ManageSubscriptionIntent::StopCancellation => unreachable!(), + }; + + let mut params = CreateBillingPortalSession::new(customer_id); + params.flow_data = flow; + let return_url = format!("{}/account", app.config.zed_dot_dev_url()); + params.return_url = Some(&return_url); + + let session = BillingPortalSession::create(&stripe_client, params).await?; + + Ok(Json(ManageBillingSubscriptionResponse { + billing_portal_session_url: Some(session.url), + })) +} + +#[derive(Debug, Deserialize)] +struct SyncBillingSubscriptionBody { + github_user_id: i32, +} + +#[derive(Debug, Serialize)] +struct SyncBillingSubscriptionResponse { + stripe_customer_id: String, +} + +async fn sync_billing_subscription( + Extension(app): Extension>, + extract::Json(body): extract::Json, +) -> Result> { + let Some(stripe_client) = app.stripe_client.clone() else { + log::error!("failed to retrieve Stripe client"); + Err(Error::http( + StatusCode::NOT_IMPLEMENTED, + "not supported".into(), + ))? + }; + + let user = app + .db + .get_user_by_github_user_id(body.github_user_id) + .await? + .context("user not found")?; + + let billing_customer = app + .db + .get_billing_customer_by_user_id(user.id) + .await? + .context("billing customer not found")?; + let stripe_customer_id = StripeCustomerId(billing_customer.stripe_customer_id.clone().into()); + + let subscriptions = stripe_client + .list_subscriptions_for_customer(&stripe_customer_id) + .await?; + + for subscription in subscriptions { + let subscription_id = subscription.id.clone(); + + sync_subscription(&app, &stripe_client, subscription) + .await + .with_context(|| { + format!( + "failed to sync subscription {subscription_id} for user {}", + user.id, + ) + })?; + } + + Ok(Json(SyncBillingSubscriptionResponse { + stripe_customer_id: billing_customer.stripe_customer_id.clone(), + })) +} + /// The amount of time we wait in between each poll of Stripe events. /// /// This value should strike a balance between: @@ -87,14 +412,6 @@ async fn poll_stripe_events( stripe_client: &Arc, real_stripe_client: &stripe::Client, ) -> anyhow::Result<()> { - let feature_flags = app.db.list_feature_flags().await?; - let sync_events_using_cloud = feature_flags - .iter() - .any(|flag| flag.flag == "cloud-stripe-events-polling" && flag.enabled_for_all); - if sync_events_using_cloud { - return Ok(()); - } - fn event_type_to_string(event_type: EventType) -> String { // Calling `to_string` on `stripe::EventType` members gives us a quoted string, // so we need to unquote it. @@ -577,14 +894,6 @@ async fn sync_model_request_usage_with_stripe( llm_db: &Arc, stripe_billing: &Arc, ) -> anyhow::Result<()> { - let feature_flags = app.db.list_feature_flags().await?; - let sync_model_request_usage_using_cloud = feature_flags - .iter() - .any(|flag| flag.flag == "cloud-stripe-usage-meters-sync" && flag.enabled_for_all); - if sync_model_request_usage_using_cloud { - return Ok(()); - } - log::info!("Stripe usage sync: Starting"); let started_at = Utc::now(); diff --git a/crates/collab/src/api/contributors.rs b/crates/collab/src/api/contributors.rs index 8cfef0ad7e..9296c1d428 100644 --- a/crates/collab/src/api/contributors.rs +++ b/crates/collab/src/api/contributors.rs @@ -8,6 +8,7 @@ use axum::{ use chrono::{NaiveDateTime, SecondsFormat}; use serde::{Deserialize, Serialize}; +use crate::api::AuthenticatedUserParams; use crate::db::ContributorSelector; use crate::{AppState, Result}; @@ -103,18 +104,9 @@ impl RenovateBot { } } -#[derive(Debug, Deserialize)] -struct AddContributorBody { - github_user_id: i32, - github_login: String, - github_email: Option, - github_name: Option, - github_user_created_at: chrono::DateTime, -} - async fn add_contributor( Extension(app): Extension>, - extract::Json(params): extract::Json, + extract::Json(params): extract::Json, ) -> Result<()> { let initial_channel_id = app.config.auto_join_channel_id; app.db diff --git a/crates/collab/src/db/tables/billing_subscription.rs b/crates/collab/src/db/tables/billing_subscription.rs index 522973dbc9..43198f9859 100644 --- a/crates/collab/src/db/tables/billing_subscription.rs +++ b/crates/collab/src/db/tables/billing_subscription.rs @@ -95,7 +95,7 @@ pub enum SubscriptionKind { ZedFree, } -impl From for cloud_llm_client::Plan { +impl From for zed_llm_client::Plan { fn from(value: SubscriptionKind) -> Self { match value { SubscriptionKind::ZedPro => Self::ZedPro, diff --git a/crates/collab/src/llm/db.rs b/crates/collab/src/llm/db.rs index 18ad624dab..6a6efca0de 100644 --- a/crates/collab/src/llm/db.rs +++ b/crates/collab/src/llm/db.rs @@ -6,11 +6,11 @@ mod tables; #[cfg(test)] mod tests; -use cloud_llm_client::LanguageModelProvider; use collections::HashMap; pub use ids::*; pub use seed::*; pub use tables::*; +use zed_llm_client::LanguageModelProvider; #[cfg(test)] pub use tests::TestLlmDb; diff --git a/crates/collab/src/llm/db/tests/provider_tests.rs b/crates/collab/src/llm/db/tests/provider_tests.rs index f4e1de40ec..7d52964b93 100644 --- a/crates/collab/src/llm/db/tests/provider_tests.rs +++ b/crates/collab/src/llm/db/tests/provider_tests.rs @@ -1,5 +1,5 @@ -use cloud_llm_client::LanguageModelProvider; use pretty_assertions::assert_eq; +use zed_llm_client::LanguageModelProvider; use crate::llm::db::LlmDatabase; use crate::test_llm_db; diff --git a/crates/collab/src/llm/token.rs b/crates/collab/src/llm/token.rs index da01c7f3be..d4566ffcb4 100644 --- a/crates/collab/src/llm/token.rs +++ b/crates/collab/src/llm/token.rs @@ -4,12 +4,12 @@ use crate::llm::{AGENT_EXTENDED_TRIAL_FEATURE_FLAG, BYPASS_ACCOUNT_AGE_CHECK_FEA use crate::{Config, db::billing_preference}; use anyhow::{Context as _, Result}; use chrono::{NaiveDateTime, Utc}; -use cloud_llm_client::Plan; use jsonwebtoken::{DecodingKey, EncodingKey, Header, Validation}; use serde::{Deserialize, Serialize}; use std::time::Duration; use thiserror::Error; use uuid::Uuid; +use zed_llm_client::Plan; #[derive(Clone, Debug, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index e648617fe1..0735b08e89 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -23,7 +23,6 @@ use anyhow::{Context as _, anyhow, bail}; use async_tungstenite::tungstenite::{ Message as TungsteniteMessage, protocol::CloseFrame as TungsteniteCloseFrame, }; -use axum::headers::UserAgent; use axum::{ Extension, Router, TypedHeader, body::Body, @@ -42,7 +41,7 @@ use collections::{HashMap, HashSet}; pub use connection_pool::{ConnectionPool, ZedVersion}; use core::fmt::{self, Debug, Formatter}; use reqwest_client::ReqwestClient; -use rpc::proto::{MultiLspQuery, split_repository_update}; +use rpc::proto::split_repository_update; use supermaven_api::{CreateExternalUserRequest, SupermavenAdminApi}; use futures::{ @@ -374,7 +373,7 @@ impl Server { .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) - .add_request_handler(multi_lsp_query) + .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) @@ -434,8 +433,6 @@ impl Server { .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) - .add_request_handler(forward_mutating_project_request::) - .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_mutating_project_request::) .add_request_handler(forward_read_only_project_request::) @@ -751,7 +748,6 @@ impl Server { address: String, principal: Principal, zed_version: ZedVersion, - user_agent: Option, geoip_country_code: Option, system_id: Option, send_connection_id: Option>, @@ -764,14 +760,9 @@ impl Server { user_id=field::Empty, login=field::Empty, impersonator=field::Empty, - user_agent=field::Empty, geoip_country_code=field::Empty ); principal.update_span(&span); - if let Some(user_agent) = user_agent { - span.record("user_agent", user_agent); - } - if let Some(country_code) = geoip_country_code.as_ref() { span.record("geoip_country_code", country_code); } @@ -865,7 +856,6 @@ impl Server { user_id=field::Empty, login=field::Empty, impersonator=field::Empty, - multi_lsp_query_request=field::Empty, ); principal.update_span(&span); let span_enter = span.enter(); @@ -1180,7 +1170,6 @@ pub async fn handle_websocket_request( ConnectInfo(socket_address): ConnectInfo, Extension(server): Extension>, Extension(principal): Extension, - user_agent: Option>, country_code_header: Option>, system_id_header: Option>, ws: WebSocketUpgrade, @@ -1236,7 +1225,6 @@ pub async fn handle_websocket_request( socket_address, principal, version, - user_agent.map(|header| header.to_string()), country_code_header.map(|header| header.to_string()), system_id_header.map(|header| header.to_string()), None, @@ -2330,15 +2318,6 @@ where Ok(()) } -async fn multi_lsp_query( - request: MultiLspQuery, - response: Response, - session: Session, -) -> Result<()> { - tracing::Span::current().record("multi_lsp_query_request", request.request_str()); - forward_mutating_project_request(request, response, session).await -} - /// Notify other participants that a new buffer has been created async fn create_buffer_for_peer( request: proto::CreateBufferForPeer, @@ -2878,12 +2857,12 @@ async fn make_update_user_plan_message( } fn model_requests_limit( - plan: cloud_llm_client::Plan, + plan: zed_llm_client::Plan, feature_flags: &Vec, -) -> cloud_llm_client::UsageLimit { +) -> zed_llm_client::UsageLimit { match plan.model_requests_limit() { - cloud_llm_client::UsageLimit::Limited(limit) => { - let limit = if plan == cloud_llm_client::Plan::ZedProTrial + zed_llm_client::UsageLimit::Limited(limit) => { + let limit = if plan == zed_llm_client::Plan::ZedProTrial && feature_flags .iter() .any(|flag| flag == AGENT_EXTENDED_TRIAL_FEATURE_FLAG) @@ -2893,9 +2872,9 @@ fn model_requests_limit( limit }; - cloud_llm_client::UsageLimit::Limited(limit) + zed_llm_client::UsageLimit::Limited(limit) } - cloud_llm_client::UsageLimit::Unlimited => cloud_llm_client::UsageLimit::Unlimited, + zed_llm_client::UsageLimit::Unlimited => zed_llm_client::UsageLimit::Unlimited, } } @@ -2905,21 +2884,21 @@ fn subscription_usage_to_proto( feature_flags: &Vec, ) -> proto::SubscriptionUsage { let plan = match plan { - proto::Plan::Free => cloud_llm_client::Plan::ZedFree, - proto::Plan::ZedPro => cloud_llm_client::Plan::ZedPro, - proto::Plan::ZedProTrial => cloud_llm_client::Plan::ZedProTrial, + proto::Plan::Free => zed_llm_client::Plan::ZedFree, + proto::Plan::ZedPro => zed_llm_client::Plan::ZedPro, + proto::Plan::ZedProTrial => zed_llm_client::Plan::ZedProTrial, }; proto::SubscriptionUsage { model_requests_usage_amount: usage.model_requests as u32, model_requests_usage_limit: Some(proto::UsageLimit { variant: Some(match model_requests_limit(plan, feature_flags) { - cloud_llm_client::UsageLimit::Limited(limit) => { + zed_llm_client::UsageLimit::Limited(limit) => { proto::usage_limit::Variant::Limited(proto::usage_limit::Limited { limit: limit as u32, }) } - cloud_llm_client::UsageLimit::Unlimited => { + zed_llm_client::UsageLimit::Unlimited => { proto::usage_limit::Variant::Unlimited(proto::usage_limit::Unlimited {}) } }), @@ -2927,12 +2906,12 @@ fn subscription_usage_to_proto( edit_predictions_usage_amount: usage.edit_predictions as u32, edit_predictions_usage_limit: Some(proto::UsageLimit { variant: Some(match plan.edit_predictions_limit() { - cloud_llm_client::UsageLimit::Limited(limit) => { + zed_llm_client::UsageLimit::Limited(limit) => { proto::usage_limit::Variant::Limited(proto::usage_limit::Limited { limit: limit as u32, }) } - cloud_llm_client::UsageLimit::Unlimited => { + zed_llm_client::UsageLimit::Unlimited => { proto::usage_limit::Variant::Unlimited(proto::usage_limit::Unlimited {}) } }), @@ -2945,21 +2924,21 @@ fn make_default_subscription_usage( feature_flags: &Vec, ) -> proto::SubscriptionUsage { let plan = match plan { - proto::Plan::Free => cloud_llm_client::Plan::ZedFree, - proto::Plan::ZedPro => cloud_llm_client::Plan::ZedPro, - proto::Plan::ZedProTrial => cloud_llm_client::Plan::ZedProTrial, + proto::Plan::Free => zed_llm_client::Plan::ZedFree, + proto::Plan::ZedPro => zed_llm_client::Plan::ZedPro, + proto::Plan::ZedProTrial => zed_llm_client::Plan::ZedProTrial, }; proto::SubscriptionUsage { model_requests_usage_amount: 0, model_requests_usage_limit: Some(proto::UsageLimit { variant: Some(match model_requests_limit(plan, feature_flags) { - cloud_llm_client::UsageLimit::Limited(limit) => { + zed_llm_client::UsageLimit::Limited(limit) => { proto::usage_limit::Variant::Limited(proto::usage_limit::Limited { limit: limit as u32, }) } - cloud_llm_client::UsageLimit::Unlimited => { + zed_llm_client::UsageLimit::Unlimited => { proto::usage_limit::Variant::Unlimited(proto::usage_limit::Unlimited {}) } }), @@ -2967,12 +2946,12 @@ fn make_default_subscription_usage( edit_predictions_usage_amount: 0, edit_predictions_usage_limit: Some(proto::UsageLimit { variant: Some(match plan.edit_predictions_limit() { - cloud_llm_client::UsageLimit::Limited(limit) => { + zed_llm_client::UsageLimit::Limited(limit) => { proto::usage_limit::Variant::Limited(proto::usage_limit::Limited { limit: limit as u32, }) } - cloud_llm_client::UsageLimit::Unlimited => { + zed_llm_client::UsageLimit::Unlimited => { proto::usage_limit::Variant::Unlimited(proto::usage_limit::Unlimited {}) } }), diff --git a/crates/collab/src/tests.rs b/crates/collab/src/tests.rs index 8d5d076780..19e410de5b 100644 --- a/crates/collab/src/tests.rs +++ b/crates/collab/src/tests.rs @@ -38,12 +38,12 @@ fn room_participants(room: &Entity, cx: &mut TestAppContext) -> RoomPartic let mut remote = room .remote_participants() .values() - .map(|participant| participant.user.github_login.clone().to_string()) + .map(|participant| participant.user.github_login.clone()) .collect::>(); let mut pending = room .pending_participants() .iter() - .map(|user| user.github_login.clone().to_string()) + .map(|user| user.github_login.clone()) .collect::>(); remote.sort(); pending.sort(); diff --git a/crates/collab/src/tests/integration_tests.rs b/crates/collab/src/tests/integration_tests.rs index aea359d75b..f1cc2bf24a 100644 --- a/crates/collab/src/tests/integration_tests.rs +++ b/crates/collab/src/tests/integration_tests.rs @@ -1286,7 +1286,7 @@ async fn test_calls_on_multiple_connections( client_b1.disconnect(&cx_b1.to_async()); executor.advance_clock(RECEIVE_TIMEOUT); client_b1 - .connect(false, &cx_b1.to_async()) + .authenticate_and_connect(false, &cx_b1.to_async()) .await .into_response() .unwrap(); @@ -1667,7 +1667,7 @@ async fn test_project_reconnect( // Client A reconnects. Their project is re-shared, and client B re-joins it. server.allow_connections(); client_a - .connect(false, &cx_a.to_async()) + .authenticate_and_connect(false, &cx_a.to_async()) .await .into_response() .unwrap(); @@ -1796,7 +1796,7 @@ async fn test_project_reconnect( // Client B reconnects. They re-join the room and the remaining shared project. server.allow_connections(); client_b - .connect(false, &cx_b.to_async()) + .authenticate_and_connect(false, &cx_b.to_async()) .await .into_response() .unwrap(); @@ -1881,7 +1881,7 @@ async fn test_active_call_events( vec![room::Event::RemoteProjectShared { owner: Arc::new(User { id: client_a.user_id().unwrap(), - github_login: "user_a".into(), + github_login: "user_a".to_string(), avatar_uri: "avatar_a".into(), name: None, }), @@ -1900,7 +1900,7 @@ async fn test_active_call_events( vec![room::Event::RemoteProjectShared { owner: Arc::new(User { id: client_b.user_id().unwrap(), - github_login: "user_b".into(), + github_login: "user_b".to_string(), avatar_uri: "avatar_b".into(), name: None, }), @@ -5738,7 +5738,7 @@ async fn test_contacts( server.allow_connections(); client_c - .connect(false, &cx_c.to_async()) + .authenticate_and_connect(false, &cx_c.to_async()) .await .into_response() .unwrap(); @@ -6079,7 +6079,7 @@ async fn test_contacts( .iter() .map(|contact| { ( - contact.user.github_login.clone().to_string(), + contact.user.github_login.clone(), if contact.online { "online" } else { "offline" }, if contact.busy { "busy" } else { "free" }, ) @@ -6269,7 +6269,7 @@ async fn test_contact_requests( client.disconnect(&cx.to_async()); client.clear_contacts(cx).await; client - .connect(false, &cx.to_async()) + .authenticate_and_connect(false, &cx.to_async()) .await .into_response() .unwrap(); diff --git a/crates/collab/src/tests/notification_tests.rs b/crates/collab/src/tests/notification_tests.rs index 9bf906694e..4e64b5526b 100644 --- a/crates/collab/src/tests/notification_tests.rs +++ b/crates/collab/src/tests/notification_tests.rs @@ -3,7 +3,6 @@ use std::sync::Arc; use gpui::{BackgroundExecutor, TestAppContext}; use notifications::NotificationEvent; use parking_lot::Mutex; -use pretty_assertions::assert_eq; use rpc::{Notification, proto}; use crate::tests::TestServer; @@ -18,9 +17,6 @@ async fn test_notifications( let client_a = server.create_client(cx_a, "user_a").await; let client_b = server.create_client(cx_b, "user_b").await; - // Wait for authentication/connection to Collab to be established. - executor.run_until_parked(); - let notification_events_a = Arc::new(Mutex::new(Vec::new())); let notification_events_b = Arc::new(Mutex::new(Vec::new())); client_a.notification_store().update(cx_a, |_, cx| { diff --git a/crates/collab/src/tests/test_server.rs b/crates/collab/src/tests/test_server.rs index 5fcc622fc1..ab84e02b19 100644 --- a/crates/collab/src/tests/test_server.rs +++ b/crates/collab/src/tests/test_server.rs @@ -8,7 +8,6 @@ use crate::{ use anyhow::anyhow; use call::ActiveCall; use channel::{ChannelBuffer, ChannelStore}; -use client::test::{make_get_authenticated_user_response, parse_authorization_header}; use client::{ self, ChannelId, Client, Connection, Credentials, EstablishConnectionError, UserStore, proto::PeerId, @@ -21,7 +20,7 @@ use fs::FakeFs; use futures::{StreamExt as _, channel::oneshot}; use git::GitHostingProviderRegistry; use gpui::{AppContext as _, BackgroundExecutor, Entity, Task, TestAppContext, VisualTestContext}; -use http_client::{FakeHttpClient, Method}; +use http_client::FakeHttpClient; use language::LanguageRegistry; use node_runtime::NodeRuntime; use notifications::NotificationStore; @@ -162,8 +161,6 @@ impl TestServer { } pub async fn create_client(&mut self, cx: &mut TestAppContext, name: &str) -> TestClient { - const ACCESS_TOKEN: &str = "the-token"; - let fs = FakeFs::new(cx.executor()); cx.update(|cx| { @@ -178,7 +175,7 @@ impl TestServer { }); let clock = Arc::new(FakeSystemClock::new()); - + let http = FakeHttpClient::with_404_response(); let user_id = if let Ok(Some(user)) = self.app_state.db.get_user_by_github_login(name).await { user.id @@ -200,47 +197,6 @@ impl TestServer { .expect("creating user failed") .user_id }; - - let http = FakeHttpClient::create({ - let name = name.to_string(); - move |req| { - let name = name.clone(); - async move { - match (req.method(), req.uri().path()) { - (&Method::GET, "/client/users/me") => { - let credentials = parse_authorization_header(&req); - if credentials - != Some(Credentials { - user_id: user_id.to_proto(), - access_token: ACCESS_TOKEN.into(), - }) - { - return Ok(http_client::Response::builder() - .status(401) - .body("Unauthorized".into()) - .unwrap()); - } - - Ok(http_client::Response::builder() - .status(200) - .body( - serde_json::to_string(&make_get_authenticated_user_response( - user_id.0, name, - )) - .unwrap() - .into(), - ) - .unwrap()) - } - _ => Ok(http_client::Response::builder() - .status(404) - .body("Not Found".into()) - .unwrap()), - } - } - } - }); - let client_name = name.to_string(); let mut client = cx.update(|cx| Client::new(clock, http.clone(), cx)); let server = self.server.clone(); @@ -252,10 +208,11 @@ impl TestServer { .unwrap() .set_id(user_id.to_proto()) .override_authenticate(move |cx| { + let access_token = "the-token".to_string(); cx.spawn(async move |_| { Ok(Credentials { user_id: user_id.to_proto(), - access_token: ACCESS_TOKEN.into(), + access_token, }) }) }) @@ -264,7 +221,7 @@ impl TestServer { credentials, &Credentials { user_id: user_id.0 as u64, - access_token: ACCESS_TOKEN.into(), + access_token: "the-token".into() } ); @@ -299,7 +256,6 @@ impl TestServer { ZedVersion(SemanticVersion::new(1, 0, 0)), None, None, - None, Some(connection_id_tx), Executor::Deterministic(cx.background_executor().clone()), None, @@ -362,7 +318,7 @@ impl TestServer { }); client - .connect(false, &cx.to_async()) + .authenticate_and_connect(false, &cx.to_async()) .await .into_response() .unwrap(); @@ -735,17 +691,17 @@ impl TestClient { current: store .contacts() .iter() - .map(|contact| contact.user.github_login.clone().to_string()) + .map(|contact| contact.user.github_login.clone()) .collect(), outgoing_requests: store .outgoing_contact_requests() .iter() - .map(|user| user.github_login.clone().to_string()) + .map(|user| user.github_login.clone()) .collect(), incoming_requests: store .incoming_contact_requests() .iter() - .map(|user| user.github_login.clone().to_string()) + .map(|user| user.github_login.clone()) .collect(), }) } diff --git a/crates/collab_ui/src/chat_panel.rs b/crates/collab_ui/src/chat_panel.rs index 3a9b568264..3e2d813f1b 100644 --- a/crates/collab_ui/src/chat_panel.rs +++ b/crates/collab_ui/src/chat_panel.rs @@ -1162,7 +1162,7 @@ impl Panel for ChatPanel { } fn icon(&self, _window: &Window, cx: &App) -> Option { - self.enabled(cx).then(|| ui::IconName::Chat) + self.enabled(cx).then(|| ui::IconName::MessageBubbles) } fn icon_tooltip(&self, _: &Window, _: &App) -> Option<&'static str> { diff --git a/crates/collab_ui/src/collab_panel.rs b/crates/collab_ui/src/collab_panel.rs index 689591df12..4d5973481e 100644 --- a/crates/collab_ui/src/collab_panel.rs +++ b/crates/collab_ui/src/collab_panel.rs @@ -940,7 +940,7 @@ impl CollabPanel { room.read(cx).local_participant().role == proto::ChannelRole::Admin }); - ListItem::new(user.github_login.clone()) + ListItem::new(SharedString::from(user.github_login.clone())) .start_slot(Avatar::new(user.avatar_uri.clone())) .child(Label::new(user.github_login.clone())) .toggle_state(is_selected) @@ -1124,7 +1124,7 @@ impl CollabPanel { .relative() .gap_1() .child(render_tree_branch(false, false, window, cx)) - .child(IconButton::new(0, IconName::Chat)) + .child(IconButton::new(0, IconName::MessageBubbles)) .children(has_messages_notification.then(|| { div() .w_1p5() @@ -2331,7 +2331,7 @@ impl CollabPanel { let client = this.client.clone(); cx.spawn_in(window, async move |_, cx| { client - .connect(true, &cx) + .authenticate_and_connect(true, &cx) .await .into_response() .notify_async_err(cx); @@ -2583,7 +2583,7 @@ impl CollabPanel { ) -> impl IntoElement { let online = contact.online; let busy = contact.busy || calling; - let github_login = contact.user.github_login.clone(); + let github_login = SharedString::from(contact.user.github_login.clone()); let item = ListItem::new(github_login.clone()) .indent_level(1) .indent_step_size(px(20.)) @@ -2662,7 +2662,7 @@ impl CollabPanel { is_selected: bool, cx: &mut Context, ) -> impl IntoElement { - let github_login = user.github_login.clone(); + let github_login = SharedString::from(user.github_login.clone()); let user_id = user.id; let is_response_pending = self.user_store.read(cx).is_contact_request_pending(user); let color = if is_response_pending { @@ -2923,7 +2923,7 @@ impl CollabPanel { .gap_1() .px_1() .child( - IconButton::new("channel_chat", IconName::Chat) + IconButton::new("channel_chat", IconName::MessageBubbles) .style(ButtonStyle::Filled) .shape(ui::IconButtonShape::Square) .icon_size(IconSize::Small) @@ -2939,7 +2939,7 @@ impl CollabPanel { .visible_on_hover(""), ) .child( - IconButton::new("channel_notes", IconName::FileText) + IconButton::new("channel_notes", IconName::File) .style(ButtonStyle::Filled) .shape(ui::IconButtonShape::Square) .icon_size(IconSize::Small) diff --git a/crates/collab_ui/src/notification_panel.rs b/crates/collab_ui/src/notification_panel.rs index c3e834b645..fba8f66c2d 100644 --- a/crates/collab_ui/src/notification_panel.rs +++ b/crates/collab_ui/src/notification_panel.rs @@ -634,13 +634,13 @@ impl Render for NotificationPanel { .child(Icon::new(IconName::Envelope)), ) .map(|this| { - if !self.client.status().borrow().is_connected() { + if self.client.user_id().is_none() { this.child( v_flex() .gap_2() .p_4() .child( - Button::new("connect_prompt_button", "Connect") + Button::new("sign_in_prompt_button", "Sign in") .icon_color(Color::Muted) .icon(IconName::Github) .icon_position(IconPosition::Start) @@ -652,7 +652,10 @@ impl Render for NotificationPanel { let client = client.clone(); window .spawn(cx, async move |cx| { - match client.connect(true, &cx).await { + match client + .authenticate_and_connect(true, &cx) + .await + { util::ConnectionResult::Timeout => { log::error!("Connection timeout"); } @@ -670,7 +673,7 @@ impl Render for NotificationPanel { ) .child( div().flex().w_full().items_center().child( - Label::new("Connect to view notifications.") + Label::new("Sign in to view notifications.") .color(Color::Muted) .size(LabelSize::Small), ), diff --git a/crates/context_server/src/client.rs b/crates/context_server/src/client.rs index 65283afa87..a1facb817d 100644 --- a/crates/context_server/src/client.rs +++ b/crates/context_server/src/client.rs @@ -1,6 +1,6 @@ use anyhow::{Context as _, Result, anyhow}; use collections::HashMap; -use futures::{FutureExt, StreamExt, channel::oneshot, future, select}; +use futures::{FutureExt, StreamExt, channel::oneshot, select}; use gpui::{AppContext as _, AsyncApp, BackgroundExecutor, Task}; use parking_lot::Mutex; use postage::barrier; @@ -10,19 +10,15 @@ use smol::channel; use std::{ fmt, path::PathBuf, - pin::pin, sync::{ Arc, atomic::{AtomicI32, Ordering::SeqCst}, }, time::{Duration, Instant}, }; -use util::{ResultExt, TryFutureExt}; +use util::TryFutureExt; -use crate::{ - transport::{StdioTransport, Transport}, - types::{CancelledParams, ClientNotification, Notification as _, notifications::Cancelled}, -}; +use crate::transport::{StdioTransport, Transport}; const JSON_RPC_VERSION: &str = "2.0"; const REQUEST_TIMEOUT: Duration = Duration::from_secs(60); @@ -36,7 +32,6 @@ pub const INTERNAL_ERROR: i32 = -32603; type ResponseHandler = Box)>; type NotificationHandler = Box; -type RequestHandler = Box; #[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)] #[serde(untagged)] @@ -83,15 +78,6 @@ pub struct Request<'a, T> { pub params: T, } -#[derive(Serialize, Deserialize)] -pub struct AnyRequest<'a> { - pub jsonrpc: &'a str, - pub id: RequestId, - pub method: &'a str, - #[serde(skip_serializing_if = "is_null_value")] - pub params: Option<&'a RawValue>, -} - #[derive(Serialize, Deserialize)] struct AnyResponse<'a> { jsonrpc: &'a str, @@ -191,23 +177,15 @@ impl Client { Arc::new(Mutex::new(HashMap::<_, NotificationHandler>::default())); let response_handlers = Arc::new(Mutex::new(Some(HashMap::<_, ResponseHandler>::default()))); - let request_handlers = Arc::new(Mutex::new(HashMap::<_, RequestHandler>::default())); let receive_input_task = cx.spawn({ let notification_handlers = notification_handlers.clone(); let response_handlers = response_handlers.clone(); - let request_handlers = request_handlers.clone(); let transport = transport.clone(); async move |cx| { - Self::handle_input( - transport, - notification_handlers, - request_handlers, - response_handlers, - cx, - ) - .log_err() - .await + Self::handle_input(transport, notification_handlers, response_handlers, cx) + .log_err() + .await } }); let receive_err_task = cx.spawn({ @@ -253,24 +231,13 @@ impl Client { async fn handle_input( transport: Arc, notification_handlers: Arc>>, - request_handlers: Arc>>, response_handlers: Arc>>>, cx: &mut AsyncApp, ) -> anyhow::Result<()> { let mut receiver = transport.receive(); while let Some(message) = receiver.next().await { - log::trace!("recv: {}", &message); - if let Ok(request) = serde_json::from_str::(&message) { - let mut request_handlers = request_handlers.lock(); - if let Some(handler) = request_handlers.get_mut(request.method) { - handler( - request.id, - request.params.unwrap_or(RawValue::NULL), - cx.clone(), - ); - } - } else if let Ok(response) = serde_json::from_str::(&message) { + if let Ok(response) = serde_json::from_str::(&message) { if let Some(handlers) = response_handlers.lock().as_mut() { if let Some(handler) = handlers.remove(&response.id) { handler(Ok(message.to_string())); @@ -281,8 +248,6 @@ impl Client { if let Some(handler) = notification_handlers.get_mut(notification.method.as_str()) { handler(notification.params.unwrap_or(Value::Null), cx.clone()); } - } else { - log::error!("Unhandled JSON from context_server: {}", message); } } @@ -330,17 +295,6 @@ impl Client { &self, method: &str, params: impl Serialize, - ) -> Result { - self.request_with(method, params, None, Some(REQUEST_TIMEOUT)) - .await - } - - pub async fn request_with( - &self, - method: &str, - params: impl Serialize, - cancel_rx: Option>, - timeout: Option, ) -> Result { let id = self.next_id.fetch_add(1, SeqCst); let request = serde_json::to_string(&Request { @@ -376,23 +330,7 @@ impl Client { handle_response?; send?; - let mut timeout_fut = pin!( - match timeout { - Some(timeout) => future::Either::Left(executor.timer(timeout)), - None => future::Either::Right(future::pending()), - } - .fuse() - ); - let mut cancel_fut = pin!( - match cancel_rx { - Some(rx) => future::Either::Left(async { - rx.await.log_err(); - }), - None => future::Either::Right(future::pending()), - } - .fuse() - ); - + let mut timeout = executor.timer(REQUEST_TIMEOUT).fuse(); select! { response = rx.fuse() => { let elapsed = started.elapsed(); @@ -411,18 +349,8 @@ impl Client { Err(_) => anyhow::bail!("cancelled") } } - _ = cancel_fut => { - self.notify( - Cancelled::METHOD, - ClientNotification::Cancelled(CancelledParams { - request_id: RequestId::Int(id), - reason: None - }) - ).log_err(); - anyhow::bail!(RequestCanceled) - } - _ = timeout_fut => { - log::error!("cancelled csp request task for {method:?} id {id} which took over {:?}", timeout.unwrap()); + _ = timeout => { + log::error!("cancelled csp request task for {method:?} id {id} which took over {:?}", REQUEST_TIMEOUT); anyhow::bail!("Context server request timeout"); } } @@ -441,23 +369,14 @@ impl Client { Ok(()) } - pub fn on_notification( - &self, - method: &'static str, - f: Box, - ) { - self.notification_handlers.lock().insert(method, f); - } -} - -#[derive(Debug)] -pub struct RequestCanceled; - -impl std::error::Error for RequestCanceled {} - -impl std::fmt::Display for RequestCanceled { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.write_str("Context server request was canceled") + #[allow(unused)] + pub fn on_notification(&self, method: &'static str, f: F) + where + F: 'static + Send + FnMut(Value, AsyncApp), + { + self.notification_handlers + .lock() + .insert(method, Box::new(f)); } } diff --git a/crates/context_server/src/context_server.rs b/crates/context_server/src/context_server.rs index 34fa29678d..e76e7972f7 100644 --- a/crates/context_server/src/context_server.rs +++ b/crates/context_server/src/context_server.rs @@ -95,28 +95,8 @@ impl ContextServer { self.client.read().clone() } - pub async fn start(&self, cx: &AsyncApp) -> Result<()> { - self.initialize(self.new_client(cx)?).await - } - - /// Starts the context server, making sure handlers are registered before initialization happens - pub async fn start_with_handlers( - &self, - notification_handlers: Vec<( - &'static str, - Box, - )>, - cx: &AsyncApp, - ) -> Result<()> { - let client = self.new_client(cx)?; - for (method, handler) in notification_handlers { - client.on_notification(method, handler); - } - self.initialize(client).await - } - - fn new_client(&self, cx: &AsyncApp) -> Result { - Ok(match &self.configuration { + pub async fn start(self: Arc, cx: &AsyncApp) -> Result<()> { + let client = match &self.configuration { ContextServerTransport::Stdio(command, working_directory) => Client::stdio( client::ContextServerId(self.id.0.clone()), client::ModelContextServerBinary { @@ -133,7 +113,8 @@ impl ContextServer { transport.clone(), cx.clone(), )?, - }) + }; + self.initialize(client).await } async fn initialize(&self, client: Client) -> Result<()> { diff --git a/crates/context_server/src/listener.rs b/crates/context_server/src/listener.rs index 0e85fb2129..9295ad979c 100644 --- a/crates/context_server/src/listener.rs +++ b/crates/context_server/src/listener.rs @@ -9,8 +9,6 @@ use futures::{ }; use gpui::{App, AppContext, AsyncApp, Task}; use net::async_net::{UnixListener, UnixStream}; -use schemars::JsonSchema; -use serde::de::DeserializeOwned; use serde_json::{json, value::RawValue}; use smol::stream::StreamExt; use std::{ @@ -22,32 +20,16 @@ use util::ResultExt; use crate::{ client::{CspResult, RequestId, Response}, - types::{ - CallToolParams, CallToolResponse, ListToolsResponse, Request, Tool, ToolAnnotations, - ToolResponseContent, - requests::{CallTool, ListTools}, - }, + types::Request, }; pub struct McpServer { socket_path: PathBuf, - tools: Rc>>, - handlers: Rc>>, + handlers: Rc>>, _server_task: Task<()>, } -struct RegisteredTool { - tool: Tool, - handler: ToolHandler, -} - -type ToolHandler = Box< - dyn Fn( - Option, - &mut AsyncApp, - ) -> Task>>, ->; -type RequestHandler = Box>, &App) -> Task>; +type McpHandler = Box>, &App) -> Task>; impl McpServer { pub fn new(cx: &AsyncApp) -> Task> { @@ -61,14 +43,12 @@ impl McpServer { cx.spawn(async move |cx| { let (temp_dir, socket_path, listener) = task.await?; - let tools = Rc::new(RefCell::new(HashMap::default())); let handlers = Rc::new(RefCell::new(HashMap::default())); let server_task = cx.spawn({ - let tools = tools.clone(); let handlers = handlers.clone(); async move |cx| { while let Ok((stream, _)) = listener.accept().await { - Self::serve_connection(stream, tools.clone(), handlers.clone(), cx); + Self::serve_connection(stream, handlers.clone(), cx); } drop(temp_dir) } @@ -76,60 +56,11 @@ impl McpServer { Ok(Self { socket_path, _server_task: server_task, - tools, - handlers: handlers, + handlers: handlers.clone(), }) }) } - pub fn add_tool(&mut self, tool: T) { - let mut settings = schemars::generate::SchemaSettings::draft07(); - settings.inline_subschemas = true; - let mut generator = settings.into_generator(); - - let output_schema = generator.root_schema_for::(); - let unit_schema = generator.root_schema_for::(); - - let registered_tool = RegisteredTool { - tool: Tool { - name: T::NAME.into(), - description: Some(tool.description().into()), - input_schema: generator.root_schema_for::().into(), - output_schema: if output_schema == unit_schema { - None - } else { - Some(output_schema.into()) - }, - annotations: Some(tool.annotations()), - }, - handler: Box::new({ - let tool = tool.clone(); - move |input_value, cx| { - let input = match input_value { - Some(input) => serde_json::from_value(input), - None => serde_json::from_value(serde_json::Value::Null), - }; - - let tool = tool.clone(); - match input { - Ok(input) => cx.spawn(async move |cx| { - let output = tool.run(input, cx).await?; - - Ok(ToolResponse { - content: output.content, - structured_content: serde_json::to_value(output.structured_content) - .unwrap_or_default(), - }) - }), - Err(err) => Task::ready(Err(err.into())), - } - } - }), - }; - - self.tools.borrow_mut().insert(T::NAME, registered_tool); - } - pub fn handle_request( &mut self, f: impl Fn(R::Params, &App) -> Task> + 'static, @@ -189,8 +120,7 @@ impl McpServer { fn serve_connection( stream: UnixStream, - tools: Rc>>, - handlers: Rc>>, + handlers: Rc>>, cx: &mut AsyncApp, ) { let (read, write) = smol::io::split(stream); @@ -205,13 +135,7 @@ impl McpServer { let Some(request_id) = request.id.clone() else { continue; }; - - if request.method == CallTool::METHOD { - Self::handle_call_tool(request_id, request.params, &tools, &outgoing_tx, cx) - .await; - } else if request.method == ListTools::METHOD { - Self::handle_list_tools(request.id.unwrap(), &tools, &outgoing_tx); - } else if let Some(handler) = handlers.borrow().get(&request.method.as_ref()) { + if let Some(handler) = handlers.borrow().get(&request.method.as_ref()) { let outgoing_tx = outgoing_tx.clone(); if let Some(task) = cx @@ -225,126 +149,25 @@ impl McpServer { .detach(); } } else { - Self::send_err( - request_id, - format!("unhandled method {}", request.method), - &outgoing_tx, - ); + outgoing_tx + .unbounded_send( + serde_json::to_string(&Response::<()> { + jsonrpc: "2.0", + id: request.id.unwrap(), + value: CspResult::Error(Some(crate::client::Error { + message: format!("unhandled method {}", request.method), + code: -32601, + })), + }) + .unwrap(), + ) + .ok(); } } }) .detach(); } - fn handle_list_tools( - request_id: RequestId, - tools: &Rc>>, - outgoing_tx: &UnboundedSender, - ) { - let response = ListToolsResponse { - tools: tools.borrow().values().map(|t| t.tool.clone()).collect(), - next_cursor: None, - meta: None, - }; - - outgoing_tx - .unbounded_send( - serde_json::to_string(&Response { - jsonrpc: "2.0", - id: request_id, - value: CspResult::Ok(Some(response)), - }) - .unwrap_or_default(), - ) - .ok(); - } - - async fn handle_call_tool( - request_id: RequestId, - params: Option>, - tools: &Rc>>, - outgoing_tx: &UnboundedSender, - cx: &mut AsyncApp, - ) { - let result: Result = match params.as_ref() { - Some(params) => serde_json::from_str(params.get()), - None => serde_json::from_value(serde_json::Value::Null), - }; - - match result { - Ok(params) => { - if let Some(tool) = tools.borrow().get(¶ms.name.as_ref()) { - let outgoing_tx = outgoing_tx.clone(); - - let task = (tool.handler)(params.arguments, cx); - cx.spawn(async move |_| { - let response = match task.await { - Ok(result) => CallToolResponse { - content: result.content, - is_error: Some(false), - meta: None, - structured_content: if result.structured_content.is_null() { - None - } else { - Some(result.structured_content) - }, - }, - Err(err) => CallToolResponse { - content: vec![ToolResponseContent::Text { - text: err.to_string(), - }], - is_error: Some(true), - meta: None, - structured_content: None, - }, - }; - - outgoing_tx - .unbounded_send( - serde_json::to_string(&Response { - jsonrpc: "2.0", - id: request_id, - value: CspResult::Ok(Some(response)), - }) - .unwrap_or_default(), - ) - .ok(); - }) - .detach(); - } else { - Self::send_err( - request_id, - format!("Tool not found: {}", params.name), - &outgoing_tx, - ); - } - } - Err(err) => { - Self::send_err(request_id, err.to_string(), &outgoing_tx); - } - } - } - - fn send_err( - request_id: RequestId, - message: impl Into, - outgoing_tx: &UnboundedSender, - ) { - outgoing_tx - .unbounded_send( - serde_json::to_string(&Response::<()> { - jsonrpc: "2.0", - id: request_id, - value: CspResult::Error(Some(crate::client::Error { - message: message.into(), - code: -32601, - })), - }) - .unwrap(), - ) - .ok(); - } - async fn handle_io( mut outgoing_rx: UnboundedReceiver, incoming_tx: UnboundedSender, @@ -393,37 +216,7 @@ impl McpServer { } } -pub trait McpServerTool { - type Input: DeserializeOwned + JsonSchema; - type Output: Serialize + JsonSchema; - - const NAME: &'static str; - - fn description(&self) -> &'static str; - - fn annotations(&self) -> ToolAnnotations { - ToolAnnotations { - title: None, - read_only_hint: None, - destructive_hint: None, - idempotent_hint: None, - open_world_hint: None, - } - } - - fn run( - &self, - input: Self::Input, - cx: &mut AsyncApp, - ) -> impl Future>>; -} - -pub struct ToolResponse { - pub content: Vec, - pub structured_content: T, -} - -#[derive(Debug, Serialize, Deserialize)] +#[derive(Serialize, Deserialize)] struct RawRequest { #[serde(skip_serializing_if = "Option::is_none")] id: Option, diff --git a/crates/context_server/src/protocol.rs b/crates/context_server/src/protocol.rs index 5355f20f62..d8bbac60d6 100644 --- a/crates/context_server/src/protocol.rs +++ b/crates/context_server/src/protocol.rs @@ -5,12 +5,7 @@ //! read/write messages and the types from types.rs for serialization/deserialization //! of messages. -use std::time::Duration; - use anyhow::Result; -use futures::channel::oneshot; -use gpui::AsyncApp; -use serde_json::Value; use crate::client::Client; use crate::types::{self, Notification, Request}; @@ -100,26 +95,7 @@ impl InitializedContextServerProtocol { self.inner.request(T::METHOD, params).await } - pub async fn request_with( - &self, - params: T::Params, - cancel_rx: Option>, - timeout: Option, - ) -> Result { - self.inner - .request_with(T::METHOD, params, cancel_rx, timeout) - .await - } - pub fn notify(&self, params: T::Params) -> Result<()> { self.inner.notify(T::METHOD, params) } - - pub fn on_notification( - &self, - method: &'static str, - f: Box, - ) { - self.inner.on_notification(method, f); - } } diff --git a/crates/context_server/src/types.rs b/crates/context_server/src/types.rs index 5fa2420a3d..4a6fdcabd3 100644 --- a/crates/context_server/src/types.rs +++ b/crates/context_server/src/types.rs @@ -3,8 +3,6 @@ use serde::de::DeserializeOwned; use serde::{Deserialize, Serialize}; use url::Url; -use crate::client::RequestId; - pub const LATEST_PROTOCOL_VERSION: &str = "2025-03-26"; pub const VERSION_2024_11_05: &str = "2024-11-05"; @@ -102,7 +100,6 @@ pub mod notifications { notification!("notifications/initialized", Initialized, ()); notification!("notifications/progress", Progress, ProgressParams); notification!("notifications/message", Message, MessageParams); - notification!("notifications/cancelled", Cancelled, CancelledParams); notification!( "notifications/resources/updated", ResourcesUpdated, @@ -495,20 +492,18 @@ pub struct RootsCapabilities { pub list_changed: Option, } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Tool { pub name: String, #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, pub input_schema: serde_json::Value, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub output_schema: Option, #[serde(skip_serializing_if = "Option::is_none")] pub annotations: Option, } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ToolAnnotations { /// A human-readable title for the tool. @@ -622,15 +617,11 @@ pub enum ClientNotification { Initialized, Progress(ProgressParams), RootsListChanged, - Cancelled(CancelledParams), -} - -#[derive(Debug, Serialize, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct CancelledParams { - pub request_id: RequestId, - #[serde(skip_serializing_if = "Option::is_none")] - pub reason: Option, + Cancelled { + request_id: String, + #[serde(skip_serializing_if = "Option::is_none")] + reason: Option, + }, } #[derive(Debug, Serialize, Deserialize)] @@ -682,20 +673,6 @@ pub struct CallToolResponse { pub is_error: Option, #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")] pub meta: Option>, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub structured_content: Option, -} - -impl CallToolResponse { - pub fn text_contents(&self) -> String { - let mut text = String::new(); - for chunk in &self.content { - if let ToolResponseContent::Text { text: chunk } = chunk { - text.push_str(&chunk) - }; - } - text - } } #[derive(Debug, Serialize, Deserialize)] diff --git a/crates/copilot/src/copilot.rs b/crates/copilot/src/copilot.rs index cacf834e0d..e11242cb15 100644 --- a/crates/copilot/src/copilot.rs +++ b/crates/copilot/src/copilot.rs @@ -85,13 +85,45 @@ pub fn init( move |cx| Copilot::start(new_server_id, fs, node_runtime, cx) }); Copilot::set_global(copilot.clone(), cx); - cx.observe(&copilot, |copilot, cx| { - copilot.update(cx, |copilot, cx| copilot.update_action_visibilities(cx)); - }) - .detach(); - cx.observe_global::(|cx| { - if let Some(copilot) = Copilot::global(cx) { - copilot.update(cx, |copilot, cx| copilot.update_action_visibilities(cx)); + cx.observe(&copilot, |handle, cx| { + let copilot_action_types = [ + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + TypeId::of::(), + ]; + let copilot_auth_action_types = [TypeId::of::()]; + let copilot_no_auth_action_types = [TypeId::of::()]; + let status = handle.read(cx).status(); + + let is_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; + let filter = CommandPaletteFilter::global_mut(cx); + + if is_ai_disabled { + filter.hide_action_types(&copilot_action_types); + filter.hide_action_types(&copilot_auth_action_types); + filter.hide_action_types(&copilot_no_auth_action_types); + } else { + match status { + Status::Disabled => { + filter.hide_action_types(&copilot_action_types); + filter.hide_action_types(&copilot_auth_action_types); + filter.hide_action_types(&copilot_no_auth_action_types); + } + Status::Authorized => { + filter.hide_action_types(&copilot_no_auth_action_types); + filter.show_action_types( + copilot_action_types + .iter() + .chain(&copilot_auth_action_types), + ); + } + _ => { + filter.hide_action_types(&copilot_action_types); + filter.hide_action_types(&copilot_auth_action_types); + filter.show_action_types(copilot_no_auth_action_types.iter()); + } + } } }) .detach(); @@ -1099,44 +1131,6 @@ impl Copilot { cx.notify(); } } - - fn update_action_visibilities(&self, cx: &mut App) { - let signed_in_actions = [ - TypeId::of::(), - TypeId::of::(), - TypeId::of::(), - TypeId::of::(), - ]; - let auth_actions = [TypeId::of::()]; - let no_auth_actions = [TypeId::of::()]; - let status = self.status(); - - let is_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; - let filter = CommandPaletteFilter::global_mut(cx); - - if is_ai_disabled { - filter.hide_action_types(&signed_in_actions); - filter.hide_action_types(&auth_actions); - filter.hide_action_types(&no_auth_actions); - } else { - match status { - Status::Disabled => { - filter.hide_action_types(&signed_in_actions); - filter.hide_action_types(&auth_actions); - filter.hide_action_types(&no_auth_actions); - } - Status::Authorized => { - filter.hide_action_types(&no_auth_actions); - filter.show_action_types(signed_in_actions.iter().chain(&auth_actions)); - } - _ => { - filter.hide_action_types(&signed_in_actions); - filter.hide_action_types(&auth_actions); - filter.show_action_types(no_auth_actions.iter()); - } - } - } - } } fn id_for_language(language: Option<&Arc>) -> String { diff --git a/crates/debugger_ui/src/tests/debugger_panel.rs b/crates/debugger_ui/src/tests/debugger_panel.rs index 6180831ea9..505df09cfb 100644 --- a/crates/debugger_ui/src/tests/debugger_panel.rs +++ b/crates/debugger_ui/src/tests/debugger_panel.rs @@ -918,7 +918,7 @@ async fn test_debug_panel_item_thread_status_reset_on_failure( .unwrap(); let client = session.update(cx, |session, _| session.adapter_client().unwrap()); - const THREAD_ID_NUM: i64 = 1; + const THREAD_ID_NUM: u64 = 1; client.on_request::(move |_, _| { Ok(dap::ThreadsResponse { diff --git a/crates/docs_preprocessor/Cargo.toml b/crates/docs_preprocessor/Cargo.toml index e46ceb18db..a0df669abe 100644 --- a/crates/docs_preprocessor/Cargo.toml +++ b/crates/docs_preprocessor/Cargo.toml @@ -7,19 +7,17 @@ license = "GPL-3.0-or-later" [dependencies] anyhow.workspace = true -command_palette.workspace = true -gpui.workspace = true -# We are specifically pinning this version of mdbook, as later versions introduce issues with double-nested subdirectories. -# Ask @maxdeviant about this before bumping. -mdbook = "= 0.4.40" -regex.workspace = true +clap.workspace = true +mdbook = "0.4.40" serde.workspace = true serde_json.workspace = true settings.workspace = true +regex.workspace = true util.workspace = true workspace-hack.workspace = true zed.workspace = true -zlog.workspace = true +gpui.workspace = true +command_palette.workspace = true [lints] workspace = true diff --git a/crates/docs_preprocessor/src/main.rs b/crates/docs_preprocessor/src/main.rs index 1448f4cb52..8eeeb6f0c5 100644 --- a/crates/docs_preprocessor/src/main.rs +++ b/crates/docs_preprocessor/src/main.rs @@ -1,15 +1,14 @@ -use anyhow::{Context, Result}; +use anyhow::Result; +use clap::{Arg, ArgMatches, Command}; use mdbook::BookItem; use mdbook::book::{Book, Chapter}; use mdbook::preprocess::CmdPreprocessor; use regex::Regex; use settings::KeymapFile; -use std::borrow::Cow; -use std::collections::{HashMap, HashSet}; +use std::collections::HashSet; use std::io::{self, Read}; use std::process; use std::sync::LazyLock; -use util::paths::PathExt; static KEYMAP_MACOS: LazyLock = LazyLock::new(|| { load_keymap("keymaps/default-macos.json").expect("Failed to load MacOS keymap") @@ -21,68 +20,60 @@ static KEYMAP_LINUX: LazyLock = LazyLock::new(|| { static ALL_ACTIONS: LazyLock> = LazyLock::new(dump_all_gpui_actions); -const FRONT_MATTER_COMMENT: &'static str = ""; +pub fn make_app() -> Command { + Command::new("zed-docs-preprocessor") + .about("Preprocesses Zed Docs content to provide rich action & keybinding support and more") + .subcommand( + Command::new("supports") + .arg(Arg::new("renderer").required(true)) + .about("Check whether a renderer is supported by this preprocessor"), + ) +} fn main() -> Result<()> { - zlog::init(); - zlog::init_output_stderr(); + let matches = make_app().get_matches(); // call a zed:: function so everything in `zed` crate is linked and // all actions in the actual app are registered zed::stdout_is_a_pty(); - let args = std::env::args().skip(1).collect::>(); - match args.get(0).map(String::as_str) { - Some("supports") => { - let renderer = args.get(1).expect("Required argument"); - let supported = renderer != "not-supported"; - if supported { - process::exit(0); - } else { - process::exit(1); - } - } - Some("postprocess") => handle_postprocessing()?, - _ => handle_preprocessing()?, + if let Some(sub_args) = matches.subcommand_matches("supports") { + handle_supports(sub_args); + } else { + handle_preprocessing()?; } Ok(()) } #[derive(Debug, Clone, PartialEq, Eq, Hash)] -enum PreprocessorError { +enum Error { ActionNotFound { action_name: String }, DeprecatedActionUsed { used: String, should_be: String }, - InvalidFrontmatterLine(String), } -impl PreprocessorError { +impl Error { fn new_for_not_found_action(action_name: String) -> Self { for action in &*ALL_ACTIONS { for alias in action.deprecated_aliases { if alias == &action_name { - return PreprocessorError::DeprecatedActionUsed { + return Error::DeprecatedActionUsed { used: action_name.clone(), should_be: action.name.to_string(), }; } } } - PreprocessorError::ActionNotFound { + Error::ActionNotFound { action_name: action_name.to_string(), } } } -impl std::fmt::Display for PreprocessorError { +impl std::fmt::Display for Error { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - PreprocessorError::InvalidFrontmatterLine(line) => { - write!(f, "Invalid frontmatter line: {}", line) - } - PreprocessorError::ActionNotFound { action_name } => { - write!(f, "Action not found: {}", action_name) - } - PreprocessorError::DeprecatedActionUsed { used, should_be } => write!( + Error::ActionNotFound { action_name } => write!(f, "Action not found: {}", action_name), + Error::DeprecatedActionUsed { used, should_be } => write!( f, "Deprecated action used: {} should be {}", used, should_be @@ -98,9 +89,8 @@ fn handle_preprocessing() -> Result<()> { let (_ctx, mut book) = CmdPreprocessor::parse_input(input.as_bytes())?; - let mut errors = HashSet::::new(); + let mut errors = HashSet::::new(); - handle_frontmatter(&mut book, &mut errors); template_and_validate_keybindings(&mut book, &mut errors); template_and_validate_actions(&mut book, &mut errors); @@ -118,41 +108,19 @@ fn handle_preprocessing() -> Result<()> { Ok(()) } -fn handle_frontmatter(book: &mut Book, errors: &mut HashSet) { - let frontmatter_regex = Regex::new(r"(?s)^\s*---(.*?)---").unwrap(); - for_each_chapter_mut(book, |chapter| { - let new_content = frontmatter_regex.replace(&chapter.content, |caps: ®ex::Captures| { - let frontmatter = caps[1].trim(); - let frontmatter = frontmatter.trim_matches(&[' ', '-', '\n']); - let mut metadata = HashMap::::default(); - for line in frontmatter.lines() { - let Some((name, value)) = line.split_once(':') else { - errors.insert(PreprocessorError::InvalidFrontmatterLine(format!( - "{}: {}", - chapter_breadcrumbs(&chapter), - line - ))); - continue; - }; - let name = name.trim(); - let value = value.trim(); - metadata.insert(name.to_string(), value.to_string()); - } - FRONT_MATTER_COMMENT.replace( - "{}", - &serde_json::to_string(&metadata).expect("Failed to serialize metadata"), - ) - }); - match new_content { - Cow::Owned(content) => { - chapter.content = content; - } - Cow::Borrowed(_) => {} - } - }); +fn handle_supports(sub_args: &ArgMatches) -> ! { + let renderer = sub_args + .get_one::("renderer") + .expect("Required argument"); + let supported = renderer != "not-supported"; + if supported { + process::exit(0); + } else { + process::exit(1); + } } -fn template_and_validate_keybindings(book: &mut Book, errors: &mut HashSet) { +fn template_and_validate_keybindings(book: &mut Book, errors: &mut HashSet) { let regex = Regex::new(r"\{#kb (.*?)\}").unwrap(); for_each_chapter_mut(book, |chapter| { @@ -160,9 +128,7 @@ fn template_and_validate_keybindings(book: &mut Book, errors: &mut HashSet) { +fn template_and_validate_actions(book: &mut Book, errors: &mut HashSet) { let regex = Regex::new(r"\{#action (.*?)\}").unwrap(); for_each_chapter_mut(book, |chapter| { @@ -186,9 +152,7 @@ fn template_and_validate_actions(book: &mut Book, errors: &mut HashSet{}", &action.human_name) @@ -253,13 +217,6 @@ fn name_for_action(action_as_str: String) -> String { .unwrap_or(action_as_str) } -fn chapter_breadcrumbs(chapter: &Chapter) -> String { - let mut breadcrumbs = Vec::with_capacity(chapter.parent_names.len() + 1); - breadcrumbs.extend(chapter.parent_names.iter().map(String::as_str)); - breadcrumbs.push(chapter.name.as_str()); - format!("[{:?}] {}", chapter.source_path, breadcrumbs.join(" > ")) -} - fn load_keymap(asset_path: &str) -> Result { let content = util::asset_str::(asset_path); KeymapFile::parse(content.as_ref()) @@ -297,126 +254,3 @@ fn dump_all_gpui_actions() -> Vec { return actions; } - -fn handle_postprocessing() -> Result<()> { - let logger = zlog::scoped!("render"); - let mut ctx = mdbook::renderer::RenderContext::from_json(io::stdin())?; - let output = ctx - .config - .get_mut("output") - .expect("has output") - .as_table_mut() - .expect("output is table"); - let zed_html = output.remove("zed-html").expect("zed-html output defined"); - let default_description = zed_html - .get("default-description") - .expect("Default description not found") - .as_str() - .expect("Default description not a string") - .to_string(); - let default_title = zed_html - .get("default-title") - .expect("Default title not found") - .as_str() - .expect("Default title not a string") - .to_string(); - - output.insert("html".to_string(), zed_html); - mdbook::Renderer::render(&mdbook::renderer::HtmlHandlebars::new(), &ctx)?; - let ignore_list = ["toc.html"]; - - let root_dir = ctx.destination.clone(); - let mut files = Vec::with_capacity(128); - let mut queue = Vec::with_capacity(64); - queue.push(root_dir.clone()); - while let Some(dir) = queue.pop() { - for entry in std::fs::read_dir(&dir).context(dir.to_sanitized_string())? { - let Ok(entry) = entry else { - continue; - }; - let file_type = entry.file_type().context("Failed to determine file type")?; - if file_type.is_dir() { - queue.push(entry.path()); - } - if file_type.is_file() - && matches!( - entry.path().extension().and_then(std::ffi::OsStr::to_str), - Some("html") - ) - { - if ignore_list.contains(&&*entry.file_name().to_string_lossy()) { - zlog::info!(logger => "Ignoring {}", entry.path().to_string_lossy()); - } else { - files.push(entry.path()); - } - } - } - } - - zlog::info!(logger => "Processing {} `.html` files", files.len()); - let meta_regex = Regex::new(&FRONT_MATTER_COMMENT.replace("{}", "(.*)")).unwrap(); - for file in files { - let contents = std::fs::read_to_string(&file)?; - let mut meta_description = None; - let mut meta_title = None; - let contents = meta_regex.replace(&contents, |caps: ®ex::Captures| { - let metadata: HashMap = serde_json::from_str(&caps[1]).with_context(|| format!("JSON Metadata: {:?}", &caps[1])).expect("Failed to deserialize metadata"); - for (kind, content) in metadata { - match kind.as_str() { - "description" => { - meta_description = Some(content); - } - "title" => { - meta_title = Some(content); - } - _ => { - zlog::warn!(logger => "Unrecognized frontmatter key: {} in {:?}", kind, pretty_path(&file, &root_dir)); - } - } - } - String::new() - }); - let meta_description = meta_description.as_ref().unwrap_or_else(|| { - zlog::warn!(logger => "No meta description found for {:?}", pretty_path(&file, &root_dir)); - &default_description - }); - let page_title = extract_title_from_page(&contents, pretty_path(&file, &root_dir)); - let meta_title = meta_title.as_ref().unwrap_or_else(|| { - zlog::debug!(logger => "No meta title found for {:?}", pretty_path(&file, &root_dir)); - &default_title - }); - let meta_title = format!("{} | {}", page_title, meta_title); - zlog::trace!(logger => "Updating {:?}", pretty_path(&file, &root_dir)); - let contents = contents.replace("#description#", meta_description); - let contents = TITLE_REGEX - .replace(&contents, |_: ®ex::Captures| { - format!("{}", meta_title) - }) - .to_string(); - // let contents = contents.replace("#title#", &meta_title); - std::fs::write(file, contents)?; - } - return Ok(()); - - fn pretty_path<'a>( - path: &'a std::path::PathBuf, - root: &'a std::path::PathBuf, - ) -> &'a std::path::Path { - &path.strip_prefix(&root).unwrap_or(&path) - } - const TITLE_REGEX: std::cell::LazyCell = - std::cell::LazyCell::new(|| Regex::new(r"\s*(.*?)\s*").unwrap()); - fn extract_title_from_page(contents: &str, pretty_path: &std::path::Path) -> String { - let title_tag_contents = &TITLE_REGEX - .captures(&contents) - .with_context(|| format!("Failed to find title in {:?}", pretty_path)) - .expect("Page has element")[1]; - let title = title_tag_contents - .trim() - .strip_suffix("- Zed") - .unwrap_or(title_tag_contents) - .trim() - .to_string(); - title - } -} diff --git a/crates/editor/Cargo.toml b/crates/editor/Cargo.toml index ab2d1c8ecb..41022b3d3c 100644 --- a/crates/editor/Cargo.toml +++ b/crates/editor/Cargo.toml @@ -113,7 +113,6 @@ tree-sitter-html.workspace = true tree-sitter-rust.workspace = true tree-sitter-typescript.workspace = true tree-sitter-yaml.workspace = true -tree-sitter-bash.workspace = true unindent.workspace = true util = { workspace = true, features = ["test-support"] } workspace = { workspace = true, features = ["test-support"] } diff --git a/crates/editor/src/actions.rs b/crates/editor/src/actions.rs index 3a3a57ca64..f80a6afbbb 100644 --- a/crates/editor/src/actions.rs +++ b/crates/editor/src/actions.rs @@ -315,8 +315,9 @@ actions!( [ /// Accepts the full edit prediction. AcceptEditPrediction, + /// Accepts a partial Copilot suggestion. + AcceptPartialCopilotSuggestion, /// Accepts a partial edit prediction. - #[action(deprecated_aliases = ["editor::AcceptPartialCopilotSuggestion"])] AcceptPartialEditPrediction, /// Adds a cursor above the current selection. AddSelectionAbove, @@ -364,8 +365,6 @@ actions!( ConvertToLowerCase, /// Toggles the case of selected text. ConvertToOppositeCase, - /// Converts selected text to sentence case. - ConvertToSentenceCase, /// Converts selected text to snake_case. ConvertToSnakeCase, /// Converts selected text to Title Case. diff --git a/crates/editor/src/code_completion_tests.rs b/crates/editor/src/code_completion_tests.rs index fd8db29584..4f9822b597 100644 --- a/crates/editor/src/code_completion_tests.rs +++ b/crates/editor/src/code_completion_tests.rs @@ -94,7 +94,7 @@ async fn test_fuzzy_score(cx: &mut TestAppContext) { filter_and_sort_matches("set_text", &completions, SnippetSortOrder::Top, cx).await; assert_eq!(matches[0].string, "set_text"); assert_eq!(matches[1].string, "set_text_style_refinement"); - assert_eq!(matches[2].string, "set_placeholder_text"); + assert_eq!(matches[2].string, "set_context_menu_options"); } // fuzzy filter text over label, sort_text and sort_kind @@ -216,28 +216,6 @@ async fn test_sort_positions(cx: &mut TestAppContext) { assert_eq!(matches[0].string, "rounded-full"); } -#[gpui::test] -async fn test_fuzzy_over_sort_positions(cx: &mut TestAppContext) { - let completions = vec![ - CompletionBuilder::variable("lsp_document_colors", None, "7fffffff"), // 0.29 fuzzy score - CompletionBuilder::function( - "language_servers_running_disk_based_diagnostics", - None, - "7fffffff", - ), // 0.168 fuzzy score - CompletionBuilder::function("code_lens", None, "7fffffff"), // 3.2 fuzzy score - CompletionBuilder::variable("lsp_code_lens", None, "7fffffff"), // 3.2 fuzzy score - CompletionBuilder::function("fetch_code_lens", None, "7fffffff"), // 3.2 fuzzy score - ]; - - let matches = - filter_and_sort_matches("lens", &completions, SnippetSortOrder::default(), cx).await; - - assert_eq!(matches[0].string, "code_lens"); - assert_eq!(matches[1].string, "lsp_code_lens"); - assert_eq!(matches[2].string, "fetch_code_lens"); -} - async fn test_for_each_prefix<F>( target: &str, completions: &Vec<Completion>, diff --git a/crates/editor/src/code_context_menus.rs b/crates/editor/src/code_context_menus.rs index 4ae2a14ca7..9f842836ed 100644 --- a/crates/editor/src/code_context_menus.rs +++ b/crates/editor/src/code_context_menus.rs @@ -1057,9 +1057,9 @@ impl CompletionsMenu { enum MatchTier<'a> { WordStartMatch { sort_exact: Reverse<i32>, + sort_positions: Vec<usize>, sort_snippet: Reverse<i32>, sort_score: Reverse<OrderedFloat<f64>>, - sort_positions: Vec<usize>, sort_text: Option<&'a str>, sort_kind: usize, sort_label: &'a str, @@ -1137,9 +1137,9 @@ impl CompletionsMenu { MatchTier::WordStartMatch { sort_exact, + sort_positions, sort_snippet, sort_score, - sort_positions, sort_text, sort_kind, sort_label, diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index e4628b43aa..eccc8d3e25 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -51,56 +51,42 @@ mod signature_help; pub mod test; pub(crate) use actions::*; -pub use display_map::{ChunkRenderer, ChunkRendererContext, DisplayPoint, FoldPlaceholder}; -pub use editor_settings::{ - CurrentLineHighlight, DocumentColorsRenderMode, EditorSettings, HideMouseMode, - ScrollBeyondLastLine, ScrollbarAxes, SearchSettings, ShowMinimap, ShowScrollbar, -}; -pub use editor_settings_controls::*; -pub use element::{ - CursorLayout, EditorElement, HighlightedRange, HighlightedRangeLine, PointForPosition, -}; -pub use git::blame::BlameRenderer; -pub use hover_popover::hover_markdown_style; -pub use inline_completion::Direction; -pub use items::MAX_TAB_TITLE_LEN; -pub use lsp::CompletionContext; -pub use lsp_ext::lsp_tasks; -pub use multi_buffer::{ - Anchor, AnchorRangeExt, ExcerptId, ExcerptRange, MultiBuffer, MultiBufferSnapshot, PathKey, - RowInfo, ToOffset, ToPoint, -}; -pub use proposed_changes_editor::{ - ProposedChangeLocation, ProposedChangesEditor, ProposedChangesEditorToolbar, -}; -pub use text::Bias; - -use ::git::{ - Restore, - blame::{BlameEntry, ParsedCommitMessage}, -}; +pub use actions::{AcceptEditPrediction, OpenExcerpts, OpenExcerptsSplit}; use aho_corasick::AhoCorasick; use anyhow::{Context as _, Result, anyhow}; use blink_manager::BlinkManager; use buffer_diff::DiffHunkStatus; use client::{Collaborator, DisableAiSettings, ParticipantIndex}; use clock::{AGENT_REPLICA_ID, ReplicaId}; -use code_context_menus::{ - AvailableCodeAction, CodeActionContents, CodeActionsItem, CodeActionsMenu, CodeContextMenu, - CompletionsMenu, ContextMenuOrigin, -}; use collections::{BTreeMap, HashMap, HashSet, VecDeque}; use convert_case::{Case, Casing}; use dap::TelemetrySpawnLocation; use display_map::*; +pub use display_map::{ChunkRenderer, ChunkRendererContext, DisplayPoint, FoldPlaceholder}; +pub use editor_settings::{ + CurrentLineHighlight, DocumentColorsRenderMode, EditorSettings, HideMouseMode, + ScrollBeyondLastLine, ScrollbarAxes, SearchSettings, ShowScrollbar, +}; use editor_settings::{GoToDefinitionFallback, Minimap as MinimapSettings}; +pub use editor_settings_controls::*; use element::{AcceptEditPredictionBinding, LineWithInvisibles, PositionMap, layout_line}; +pub use element::{ + CursorLayout, EditorElement, HighlightedRange, HighlightedRangeLine, PointForPosition, +}; use futures::{ FutureExt, StreamExt as _, future::{self, Shared, join}, stream::FuturesUnordered, }; use fuzzy::{StringMatch, StringMatchCandidate}; +use lsp_colors::LspColorData; + +use ::git::blame::BlameEntry; +use ::git::{Restore, blame::ParsedCommitMessage}; +use code_context_menus::{ + AvailableCodeAction, CodeActionContents, CodeActionsItem, CodeActionsMenu, CodeContextMenu, + CompletionsMenu, ContextMenuOrigin, +}; use git::blame::{GitBlame, GlobalBlameRenderer}; use gpui::{ Action, Animation, AnimationExt, AnyElement, App, AppContext, AsyncWindowContext, @@ -114,43 +100,32 @@ use gpui::{ }; use highlight_matching_bracket::refresh_matching_bracket_highlights; use hover_links::{HoverLink, HoveredLinkState, InlayHighlight, find_file}; +pub use hover_popover::hover_markdown_style; use hover_popover::{HoverState, hide_hover}; use indent_guides::ActiveIndentGuidesState; use inlay_hint_cache::{InlayHintCache, InlaySplice, InvalidationStrategy}; +pub use inline_completion::Direction; use inline_completion::{EditPredictionProvider, InlineCompletionProviderHandle}; +pub use items::MAX_TAB_TITLE_LEN; use itertools::Itertools; use language::{ - AutoindentMode, BlockCommentConfig, BracketMatch, BracketPair, Buffer, BufferRow, - BufferSnapshot, Capability, CharClassifier, CharKind, CodeLabel, CursorShape, DiagnosticEntry, - DiffOptions, EditPredictionsMode, EditPreview, HighlightedText, IndentKind, IndentSize, - Language, OffsetRangeExt, Point, Runnable, RunnableRange, Selection, SelectionGoal, TextObject, - TransactionId, TreeSitterOptions, WordsQuery, + AutoindentMode, BlockCommentConfig, BracketMatch, BracketPair, Buffer, Capability, CharKind, + CodeLabel, CursorShape, DiagnosticEntry, DiffOptions, EditPredictionsMode, EditPreview, + HighlightedText, IndentKind, IndentSize, Language, OffsetRangeExt, Point, Selection, + SelectionGoal, TextObject, TransactionId, TreeSitterOptions, WordsQuery, language_settings::{ self, InlayHintSettings, LspInsertMode, RewrapBehavior, WordsCompletionMode, all_language_settings, language_settings, }, - point_from_lsp, point_to_lsp, text_diff_with_options, + point_from_lsp, text_diff_with_options, }; +use language::{BufferRow, CharClassifier, Runnable, RunnableRange, point_to_lsp}; use linked_editing_ranges::refresh_linked_ranges; -use lsp::{ - CodeActionKind, CompletionItemKind, CompletionTriggerKind, InsertTextFormat, InsertTextMode, - LanguageServerId, LanguageServerName, -}; -use lsp_colors::LspColorData; use markdown::Markdown; use mouse_context_menu::MouseContextMenu; -use movement::TextLayoutDetails; -use multi_buffer::{ - ExcerptInfo, ExpandExcerptDirection, MultiBufferDiffHunk, MultiBufferPoint, MultiBufferRow, - MultiOrSingleBufferOffsetRange, ToOffsetUtf16, -}; -use parking_lot::Mutex; use persistence::DB; use project::{ - BreakpointWithPosition, CodeAction, Completion, CompletionIntent, CompletionResponse, - CompletionSource, DocumentHighlight, InlayHint, Location, LocationLink, PrepareRenameResponse, - Project, ProjectItem, ProjectPath, ProjectTransaction, TaskSourceKind, - debugger::breakpoint_store::Breakpoint, + BreakpointWithPosition, CompletionResponse, ProjectPath, debugger::{ breakpoint_store::{ BreakpointEditAction, BreakpointSessionState, BreakpointState, BreakpointStore, @@ -159,12 +134,44 @@ use project::{ session::{Session, SessionEvent}, }, git_store::{GitStoreEvent, RepositoryEvent}, - lsp_store::{CompletionDocumentation, FormatTrigger, LspFormatTarget, OpenLspBufferHandle}, project_settings::{DiagnosticSeverity, GoToDiagnosticSeverityFilter}, +}; + +pub use git::blame::BlameRenderer; +pub use proposed_changes_editor::{ + ProposedChangeLocation, ProposedChangesEditor, ProposedChangesEditorToolbar, +}; +use std::{cell::OnceCell, iter::Peekable, ops::Not}; +use task::{ResolvedTask, RunnableTag, TaskTemplate, TaskVariables}; + +pub use lsp::CompletionContext; +use lsp::{ + CodeActionKind, CompletionItemKind, CompletionTriggerKind, InsertTextFormat, InsertTextMode, + LanguageServerId, LanguageServerName, +}; + +use language::BufferSnapshot; +pub use lsp_ext::lsp_tasks; +use movement::TextLayoutDetails; +pub use multi_buffer::{ + Anchor, AnchorRangeExt, ExcerptId, ExcerptRange, MultiBuffer, MultiBufferSnapshot, PathKey, + RowInfo, ToOffset, ToPoint, +}; +use multi_buffer::{ + ExcerptInfo, ExpandExcerptDirection, MultiBufferDiffHunk, MultiBufferPoint, MultiBufferRow, + MultiOrSingleBufferOffsetRange, ToOffsetUtf16, +}; +use parking_lot::Mutex; +use project::{ + CodeAction, Completion, CompletionIntent, CompletionSource, DocumentHighlight, InlayHint, + Location, LocationLink, PrepareRenameResponse, Project, ProjectItem, ProjectTransaction, + TaskSourceKind, + debugger::breakpoint_store::Breakpoint, + lsp_store::{CompletionDocumentation, FormatTrigger, LspFormatTarget, OpenLspBufferHandle}, project_settings::{GitGutterSetting, ProjectSettings}, }; -use rand::{seq::SliceRandom, thread_rng}; -use rpc::{ErrorCode, ErrorExt, proto::PeerId}; +use rand::prelude::*; +use rpc::{ErrorExt, proto::*}; use scroll::{Autoscroll, OngoingScroll, ScrollAnchor, ScrollManager, ScrollbarAutoHide}; use selections_collection::{ MutableSelectionsCollection, SelectionsCollection, resolve_selections, @@ -173,24 +180,21 @@ use serde::{Deserialize, Serialize}; use settings::{Settings, SettingsLocation, SettingsStore, update_settings_file}; use smallvec::{SmallVec, smallvec}; use snippet::Snippet; +use std::sync::Arc; use std::{ any::TypeId, borrow::Cow, - cell::OnceCell, cell::RefCell, cmp::{self, Ordering, Reverse}, - iter::Peekable, mem, num::NonZeroU32, - ops::Not, ops::{ControlFlow, Deref, DerefMut, Range, RangeInclusive}, path::{Path, PathBuf}, rc::Rc, - sync::Arc, time::{Duration, Instant}, }; +pub use sum_tree::Bias; use sum_tree::TreeMap; -use task::{ResolvedTask, RunnableTag, TaskTemplate, TaskVariables}; use text::{BufferId, FromAnchor, OffsetUtf16, Rope}; use theme::{ ActiveTheme, PlayerColor, StatusColors, SyntaxTheme, Theme, ThemeSettings, @@ -209,11 +213,14 @@ use workspace::{ notifications::{DetachAndPromptErr, NotificationId, NotifyTaskExt}, searchable::SearchEvent, }; +use zed_actions; use crate::{ code_context_menus::CompletionsMenuSource, - editor_settings::MultiCursorModifier, hover_links::{find_url, find_url_from_range}, +}; +use crate::{ + editor_settings::MultiCursorModifier, signature_help::{SignatureHelpHiddenBy, SignatureHelpState}, }; @@ -6403,6 +6410,7 @@ impl Editor { IconButton::new("inline_code_actions", ui::IconName::BoltFilled) .icon_size(icon_size) .shape(ui::IconButtonShape::Square) + .style(ButtonStyle::Transparent) .icon_color(ui::Color::Hidden) .toggle_state(is_active) .when(show_tooltip, |this| { @@ -8337,29 +8345,26 @@ impl Editor { let color = Color::Muted; let position = breakpoint.as_ref().map(|(anchor, _, _)| *anchor); - IconButton::new( - ("run_indicator", row.0 as usize), - ui::IconName::PlayOutlined, - ) - .shape(ui::IconButtonShape::Square) - .icon_size(IconSize::XSmall) - .icon_color(color) - .toggle_state(is_active) - .on_click(cx.listener(move |editor, e: &ClickEvent, window, cx| { - let quick_launch = e.down.button == MouseButton::Left; - window.focus(&editor.focus_handle(cx)); - editor.toggle_code_actions( - &ToggleCodeActions { - deployed_from: Some(CodeActionSource::RunMenu(row)), - quick_launch, - }, - window, - cx, - ); - })) - .on_right_click(cx.listener(move |editor, event: &ClickEvent, window, cx| { - editor.set_breakpoint_context_menu(row, position, event.down.position, window, cx); - })) + IconButton::new(("run_indicator", row.0 as usize), ui::IconName::Play) + .shape(ui::IconButtonShape::Square) + .icon_size(IconSize::XSmall) + .icon_color(color) + .toggle_state(is_active) + .on_click(cx.listener(move |editor, e: &ClickEvent, window, cx| { + let quick_launch = e.down.button == MouseButton::Left; + window.focus(&editor.focus_handle(cx)); + editor.toggle_code_actions( + &ToggleCodeActions { + deployed_from: Some(CodeActionSource::RunMenu(row)), + quick_launch, + }, + window, + cx, + ); + })) + .on_right_click(cx.listener(move |editor, event: &ClickEvent, window, cx| { + editor.set_breakpoint_context_menu(row, position, event.down.position, window, cx); + })) } pub fn context_menu_visible(&self) -> bool { @@ -10901,6 +10906,17 @@ impl Editor { }); } + pub fn toggle_case(&mut self, _: &ToggleCase, window: &mut Window, cx: &mut Context<Self>) { + self.manipulate_text(window, cx, |text| { + let has_upper_case_characters = text.chars().any(|c| c.is_uppercase()); + if has_upper_case_characters { + text.to_lowercase() + } else { + text.to_uppercase() + } + }) + } + fn manipulate_immutable_lines<Fn>( &mut self, window: &mut Window, @@ -11156,26 +11172,6 @@ impl Editor { }) } - pub fn convert_to_sentence_case( - &mut self, - _: &ConvertToSentenceCase, - window: &mut Window, - cx: &mut Context<Self>, - ) { - self.manipulate_text(window, cx, |text| text.to_case(Case::Sentence)) - } - - pub fn toggle_case(&mut self, _: &ToggleCase, window: &mut Window, cx: &mut Context<Self>) { - self.manipulate_text(window, cx, |text| { - let has_upper_case_characters = text.chars().any(|c| c.is_uppercase()); - if has_upper_case_characters { - text.to_lowercase() - } else { - text.to_uppercase() - } - }) - } - pub fn convert_to_rot13( &mut self, _: &ConvertToRot13, @@ -17000,7 +16996,7 @@ impl Editor { now: Instant, window: &mut Window, cx: &mut Context<Self>, - ) -> Option<TransactionId> { + ) { self.end_selection(window, cx); if let Some(tx_id) = self .buffer @@ -17010,10 +17006,7 @@ impl Editor { .insert_transaction(tx_id, self.selections.disjoint_anchors()); cx.emit(EditorEvent::TransactionBegun { transaction_id: tx_id, - }); - Some(tx_id) - } else { - None + }) } } @@ -17041,17 +17034,6 @@ impl Editor { } } - pub fn modify_transaction_selection_history( - &mut self, - transaction_id: TransactionId, - modify: impl FnOnce(&mut (Arc<[Selection<Anchor>]>, Option<Arc<[Selection<Anchor>]>>)), - ) -> bool { - self.selection_history - .transaction_mut(transaction_id) - .map(modify) - .is_some() - } - pub fn set_mark(&mut self, _: &actions::SetMark, window: &mut Window, cx: &mut Context<Self>) { if self.selection_mark_mode { self.change_selections(SelectionEffects::no_scroll(), window, cx, |s| { @@ -21124,6 +21106,13 @@ fn process_completion_for_edit( .is_le(), "replace_range should start before or at cursor position" ); + debug_assert!( + insert_range + .end + .cmp(&cursor_position, &buffer_snapshot) + .is_le(), + "insert_range should end before or at cursor position" + ); let should_replace = match intent { CompletionIntent::CompleteWithInsert => false, @@ -22297,7 +22286,7 @@ fn consume_contiguous_rows( selections: &mut Peekable<std::slice::Iter<Selection<Point>>>, ) -> (MultiBufferRow, MultiBufferRow) { contiguous_row_selections.push(selection.clone()); - let start_row = starting_row(selection, display_map); + let start_row = MultiBufferRow(selection.start.row); let mut end_row = ending_row(selection, display_map); while let Some(next_selection) = selections.peek() { @@ -22311,14 +22300,6 @@ fn consume_contiguous_rows( (start_row, end_row) } -fn starting_row(selection: &Selection<Point>, display_map: &DisplaySnapshot) -> MultiBufferRow { - if selection.start.column > 0 { - MultiBufferRow(display_map.prev_line_boundary(selection.start).0.row) - } else { - MultiBufferRow(selection.start.row) - } -} - fn ending_row(next_selection: &Selection<Point>, display_map: &DisplaySnapshot) -> MultiBufferRow { if next_selection.end.column > 0 || next_selection.is_empty() { MultiBufferRow(display_map.next_line_boundary(next_selection.end).0.row + 1) diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 1a4f444275..42daf14615 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -4724,23 +4724,6 @@ async fn test_toggle_case(cx: &mut TestAppContext) { "}); } -#[gpui::test] -async fn test_convert_to_sentence_case(cx: &mut TestAppContext) { - init_test(cx, |_| {}); - - let mut cx = EditorTestContext::new(cx).await; - - cx.set_state(indoc! {" - «implement-windows-supportˇ» - "}); - cx.update_editor(|e, window, cx| { - e.convert_to_sentence_case(&ConvertToSentenceCase, window, cx) - }); - cx.assert_editor_state(indoc! {" - «Implement windows supportˇ» - "}); -} - #[gpui::test] async fn test_manipulate_text(cx: &mut TestAppContext) { init_test(cx, |_| {}); @@ -5086,33 +5069,6 @@ fn test_move_line_up_down(cx: &mut TestAppContext) { }); } -#[gpui::test] -fn test_move_line_up_selection_at_end_of_fold(cx: &mut TestAppContext) { - init_test(cx, |_| {}); - let editor = cx.add_window(|window, cx| { - let buffer = MultiBuffer::build_simple("\n\n\n\n\n\naaaa\nbbbb\ncccc", cx); - build_editor(buffer, window, cx) - }); - _ = editor.update(cx, |editor, window, cx| { - editor.fold_creases( - vec![Crease::simple( - Point::new(6, 4)..Point::new(7, 4), - FoldPlaceholder::test(), - )], - true, - window, - cx, - ); - editor.change_selections(SelectionEffects::no_scroll(), window, cx, |s| { - s.select_ranges([Point::new(7, 4)..Point::new(7, 4)]) - }); - assert_eq!(editor.display_text(cx), "\n\n\n\n\n\naaaa⋯\ncccc"); - editor.move_line_up(&MoveLineUp, window, cx); - let buffer_text = editor.buffer.read(cx).snapshot(cx).text(); - assert_eq!(buffer_text, "\n\n\n\n\naaaa\nbbbb\n\ncccc"); - }); -} - #[gpui::test] fn test_move_line_up_down_with_blocks(cx: &mut TestAppContext) { init_test(cx, |_| {}); @@ -8612,7 +8568,6 @@ async fn test_autoclose_with_embedded_language(cx: &mut TestAppContext) { cx.language_registry().add(html_language.clone()); cx.language_registry().add(javascript_language.clone()); - cx.executor().run_until_parked(); cx.update_buffer(|buffer, cx| { buffer.set_language(Some(html_language), cx); @@ -22836,435 +22791,6 @@ async fn test_indent_on_newline_for_python(cx: &mut TestAppContext) { "}); } -#[gpui::test] -async fn test_tab_in_leading_whitespace_auto_indents_for_bash(cx: &mut TestAppContext) { - init_test(cx, |_| {}); - - let mut cx = EditorTestContext::new(cx).await; - let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into()); - cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx)); - - // test cursor move to start of each line on tab - // for `if`, `elif`, `else`, `while`, `for`, `case` and `function` - cx.set_state(indoc! {" - function main() { - ˇ for item in $items; do - ˇ while [ -n \"$item\" ]; do - ˇ if [ \"$value\" -gt 10 ]; then - ˇ continue - ˇ elif [ \"$value\" -lt 0 ]; then - ˇ break - ˇ else - ˇ echo \"$item\" - ˇ fi - ˇ done - ˇ done - ˇ} - "}); - cx.update_editor(|e, window, cx| e.tab(&Tab, window, cx)); - cx.assert_editor_state(indoc! {" - function main() { - ˇfor item in $items; do - ˇwhile [ -n \"$item\" ]; do - ˇif [ \"$value\" -gt 10 ]; then - ˇcontinue - ˇelif [ \"$value\" -lt 0 ]; then - ˇbreak - ˇelse - ˇecho \"$item\" - ˇfi - ˇdone - ˇdone - ˇ} - "}); - // test relative indent is preserved when tab - cx.update_editor(|e, window, cx| e.tab(&Tab, window, cx)); - cx.assert_editor_state(indoc! {" - function main() { - ˇfor item in $items; do - ˇwhile [ -n \"$item\" ]; do - ˇif [ \"$value\" -gt 10 ]; then - ˇcontinue - ˇelif [ \"$value\" -lt 0 ]; then - ˇbreak - ˇelse - ˇecho \"$item\" - ˇfi - ˇdone - ˇdone - ˇ} - "}); - - // test cursor move to start of each line on tab - // for `case` statement with patterns - cx.set_state(indoc! {" - function handle() { - ˇ case \"$1\" in - ˇ start) - ˇ echo \"a\" - ˇ ;; - ˇ stop) - ˇ echo \"b\" - ˇ ;; - ˇ *) - ˇ echo \"c\" - ˇ ;; - ˇ esac - ˇ} - "}); - cx.update_editor(|e, window, cx| e.tab(&Tab, window, cx)); - cx.assert_editor_state(indoc! {" - function handle() { - ˇcase \"$1\" in - ˇstart) - ˇecho \"a\" - ˇ;; - ˇstop) - ˇecho \"b\" - ˇ;; - ˇ*) - ˇecho \"c\" - ˇ;; - ˇesac - ˇ} - "}); -} - -#[gpui::test] -async fn test_indent_after_input_for_bash(cx: &mut TestAppContext) { - init_test(cx, |_| {}); - - let mut cx = EditorTestContext::new(cx).await; - let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into()); - cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx)); - - // test indents on comment insert - cx.set_state(indoc! {" - function main() { - ˇ for item in $items; do - ˇ while [ -n \"$item\" ]; do - ˇ if [ \"$value\" -gt 10 ]; then - ˇ continue - ˇ elif [ \"$value\" -lt 0 ]; then - ˇ break - ˇ else - ˇ echo \"$item\" - ˇ fi - ˇ done - ˇ done - ˇ} - "}); - cx.update_editor(|e, window, cx| e.handle_input("#", window, cx)); - cx.assert_editor_state(indoc! {" - function main() { - #ˇ for item in $items; do - #ˇ while [ -n \"$item\" ]; do - #ˇ if [ \"$value\" -gt 10 ]; then - #ˇ continue - #ˇ elif [ \"$value\" -lt 0 ]; then - #ˇ break - #ˇ else - #ˇ echo \"$item\" - #ˇ fi - #ˇ done - #ˇ done - #ˇ} - "}); -} - -#[gpui::test] -async fn test_outdent_after_input_for_bash(cx: &mut TestAppContext) { - init_test(cx, |_| {}); - - let mut cx = EditorTestContext::new(cx).await; - let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into()); - cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx)); - - // test `else` auto outdents when typed inside `if` block - cx.set_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - echo \"foo bar\" - ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.handle_input("else", window, cx); - }); - cx.assert_editor_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - echo \"foo bar\" - elseˇ - "}); - - // test `elif` auto outdents when typed inside `if` block - cx.set_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - echo \"foo bar\" - ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.handle_input("elif", window, cx); - }); - cx.assert_editor_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - echo \"foo bar\" - elifˇ - "}); - - // test `fi` auto outdents when typed inside `else` block - cx.set_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - echo \"foo bar\" - else - echo \"bar baz\" - ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.handle_input("fi", window, cx); - }); - cx.assert_editor_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - echo \"foo bar\" - else - echo \"bar baz\" - fiˇ - "}); - - // test `done` auto outdents when typed inside `while` block - cx.set_state(indoc! {" - while read line; do - echo \"$line\" - ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.handle_input("done", window, cx); - }); - cx.assert_editor_state(indoc! {" - while read line; do - echo \"$line\" - doneˇ - "}); - - // test `done` auto outdents when typed inside `for` block - cx.set_state(indoc! {" - for file in *.txt; do - cat \"$file\" - ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.handle_input("done", window, cx); - }); - cx.assert_editor_state(indoc! {" - for file in *.txt; do - cat \"$file\" - doneˇ - "}); - - // test `esac` auto outdents when typed inside `case` block - cx.set_state(indoc! {" - case \"$1\" in - start) - echo \"foo bar\" - ;; - stop) - echo \"bar baz\" - ;; - ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.handle_input("esac", window, cx); - }); - cx.assert_editor_state(indoc! {" - case \"$1\" in - start) - echo \"foo bar\" - ;; - stop) - echo \"bar baz\" - ;; - esacˇ - "}); - - // test `*)` auto outdents when typed inside `case` block - cx.set_state(indoc! {" - case \"$1\" in - start) - echo \"foo bar\" - ;; - ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.handle_input("*)", window, cx); - }); - cx.assert_editor_state(indoc! {" - case \"$1\" in - start) - echo \"foo bar\" - ;; - *)ˇ - "}); - - // test `fi` outdents to correct level with nested if blocks - cx.set_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - echo \"outer if\" - if [ \"$2\" = \"debug\" ]; then - echo \"inner if\" - ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.handle_input("fi", window, cx); - }); - cx.assert_editor_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - echo \"outer if\" - if [ \"$2\" = \"debug\" ]; then - echo \"inner if\" - fiˇ - "}); -} - -#[gpui::test] -async fn test_indent_on_newline_for_bash(cx: &mut TestAppContext) { - init_test(cx, |_| {}); - update_test_language_settings(cx, |settings| { - settings.defaults.extend_comment_on_newline = Some(false); - }); - let mut cx = EditorTestContext::new(cx).await; - let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into()); - cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx)); - - // test correct indent after newline on comment - cx.set_state(indoc! {" - # COMMENT:ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.assert_editor_state(indoc! {" - # COMMENT: - ˇ - "}); - - // test correct indent after newline after `then` - cx.set_state(indoc! {" - - if [ \"$1\" = \"test\" ]; thenˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.run_until_parked(); - cx.assert_editor_state(indoc! {" - - if [ \"$1\" = \"test\" ]; then - ˇ - "}); - - // test correct indent after newline after `else` - cx.set_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - elseˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.run_until_parked(); - cx.assert_editor_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - else - ˇ - "}); - - // test correct indent after newline after `elif` - cx.set_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - elifˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.run_until_parked(); - cx.assert_editor_state(indoc! {" - if [ \"$1\" = \"test\" ]; then - elif - ˇ - "}); - - // test correct indent after newline after `do` - cx.set_state(indoc! {" - for file in *.txt; doˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.run_until_parked(); - cx.assert_editor_state(indoc! {" - for file in *.txt; do - ˇ - "}); - - // test correct indent after newline after case pattern - cx.set_state(indoc! {" - case \"$1\" in - start)ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.run_until_parked(); - cx.assert_editor_state(indoc! {" - case \"$1\" in - start) - ˇ - "}); - - // test correct indent after newline after case pattern - cx.set_state(indoc! {" - case \"$1\" in - start) - ;; - *)ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.run_until_parked(); - cx.assert_editor_state(indoc! {" - case \"$1\" in - start) - ;; - *) - ˇ - "}); - - // test correct indent after newline after function opening brace - cx.set_state(indoc! {" - function test() {ˇ} - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.run_until_parked(); - cx.assert_editor_state(indoc! {" - function test() { - ˇ - } - "}); - - // test no extra indent after semicolon on same line - cx.set_state(indoc! {" - echo \"test\";ˇ - "}); - cx.update_editor(|editor, window, cx| { - editor.newline(&Newline, window, cx); - }); - cx.run_until_parked(); - cx.assert_editor_state(indoc! {" - echo \"test\"; - ˇ - "}); -} - fn empty_range(row: usize, column: usize) -> Range<DisplayPoint> { let point = DisplayPoint::new(DisplayRow(row as u32), column as u32); point..point diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index 7e77f113ac..1b372a7d53 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -230,6 +230,7 @@ impl EditorElement { register_action(editor, window, Editor::sort_lines_case_insensitive); register_action(editor, window, Editor::reverse_lines); register_action(editor, window, Editor::shuffle_lines); + register_action(editor, window, Editor::toggle_case); register_action(editor, window, Editor::convert_indentation_to_spaces); register_action(editor, window, Editor::convert_indentation_to_tabs); register_action(editor, window, Editor::convert_to_upper_case); @@ -240,8 +241,6 @@ impl EditorElement { register_action(editor, window, Editor::convert_to_upper_camel_case); register_action(editor, window, Editor::convert_to_lower_camel_case); register_action(editor, window, Editor::convert_to_opposite_case); - register_action(editor, window, Editor::convert_to_sentence_case); - register_action(editor, window, Editor::toggle_case); register_action(editor, window, Editor::convert_to_rot13); register_action(editor, window, Editor::convert_to_rot47); register_action(editor, window, Editor::delete_to_previous_word_start); @@ -4011,7 +4010,6 @@ impl EditorElement { let available_width = hitbox.bounds.size.width - right_margin; let mut header = v_flex() - .w_full() .relative() .child( div() @@ -7944,11 +7942,17 @@ impl Element for EditorElement { right: right_margin, }; + // Offset the content_bounds from the text_bounds by the gutter margin (which + // is roughly half a character wide) to make hit testing work more like how we want. + let content_offset = point(editor_margins.gutter.margin, Pixels::ZERO); + + let editor_content_width = editor_width - content_offset.x; + snapshot = self.editor.update(cx, |editor, cx| { editor.last_bounds = Some(bounds); editor.gutter_dimensions = gutter_dimensions; editor.set_visible_line_count(bounds.size.height / line_height, window, cx); - editor.set_visible_column_count(editor_width / em_advance); + editor.set_visible_column_count(editor_content_width / em_advance); if matches!( editor.mode, @@ -7960,10 +7964,10 @@ impl Element for EditorElement { let wrap_width = match editor.soft_wrap_mode(cx) { SoftWrap::GitDiff => None, SoftWrap::None => Some(wrap_width_for(MAX_LINE_LEN as u32 / 2)), - SoftWrap::EditorWidth => Some(editor_width), + SoftWrap::EditorWidth => Some(editor_content_width), SoftWrap::Column(column) => Some(wrap_width_for(column)), SoftWrap::Bounded(column) => { - Some(editor_width.min(wrap_width_for(column))) + Some(editor_content_width.min(wrap_width_for(column))) } }; @@ -7988,12 +7992,13 @@ impl Element for EditorElement { HitboxBehavior::Normal, ); - // Offset the content_bounds from the text_bounds by the gutter margin (which - // is roughly half a character wide) to make hit testing work more like how we want. - let content_offset = point(editor_margins.gutter.margin, Pixels::ZERO); let content_origin = text_hitbox.origin + content_offset; - let height_in_lines = bounds.size.height / line_height; + let editor_text_bounds = + Bounds::from_corners(content_origin, bounds.bottom_right()); + + let height_in_lines = editor_text_bounds.size.height / line_height; + let max_row = snapshot.max_point().row().as_f32(); // The max scroll position for the top of the window @@ -8377,6 +8382,7 @@ impl Element for EditorElement { glyph_grid_cell, size(longest_line_width, max_row.as_f32() * line_height), longest_line_blame_width, + editor_width, EditorSettings::get_global(cx), ); @@ -8448,7 +8454,7 @@ impl Element for EditorElement { MultiBufferRow(end_anchor.to_point(&snapshot.buffer_snapshot).row); let scroll_max = point( - ((scroll_width - editor_width) / em_advance).max(0.0), + ((scroll_width - editor_content_width) / em_advance).max(0.0), max_scroll_top, ); @@ -8460,7 +8466,7 @@ impl Element for EditorElement { if needs_horizontal_autoscroll.0 && let Some(new_scroll_position) = editor.autoscroll_horizontally( start_row, - editor_width, + editor_content_width, scroll_width, em_advance, &line_layouts, @@ -9041,6 +9047,7 @@ impl ScrollbarLayoutInformation { glyph_grid_cell: Size<Pixels>, document_size: Size<Pixels>, longest_line_blame_width: Pixels, + editor_width: Pixels, settings: &EditorSettings, ) -> Self { let vertical_overscroll = match settings.scroll_beyond_last_line { @@ -9051,11 +9058,19 @@ impl ScrollbarLayoutInformation { } }; - let overscroll = size(longest_line_blame_width, vertical_overscroll); + let right_margin = if document_size.width + longest_line_blame_width >= editor_width { + glyph_grid_cell.width + } else { + px(0.0) + }; + + let overscroll = size(right_margin + longest_line_blame_width, vertical_overscroll); + + let scroll_range = document_size + overscroll; ScrollbarLayoutInformation { editor_bounds, - scroll_range: document_size + overscroll, + scroll_range, glyph_grid_cell, } } @@ -9160,7 +9175,7 @@ struct EditorScrollbars { impl EditorScrollbars { pub fn from_scrollbar_axes( - show_scrollbar: ScrollbarAxes, + settings_visibility: ScrollbarAxes, layout_information: &ScrollbarLayoutInformation, content_offset: gpui::Point<Pixels>, scroll_position: gpui::Point<f32>, @@ -9198,13 +9213,22 @@ impl EditorScrollbars { }; let mut create_scrollbar_layout = |axis| { - let viewport_size = viewport_size.along(axis); - let scroll_range = scroll_range.along(axis); - - // We always want a vertical scrollbar track for scrollbar diagnostic visibility. - (show_scrollbar.along(axis) - && (axis == ScrollbarAxis::Vertical || scroll_range > viewport_size)) + settings_visibility + .along(axis) .then(|| { + ( + viewport_size.along(axis) - content_offset.along(axis), + scroll_range.along(axis), + ) + }) + .filter(|(viewport_size, scroll_range)| { + // The scrollbar should only be rendered if the content does + // not entirely fit into the editor + // However, this only applies to the horizontal scrollbar, as information about the + // vertical scrollbar layout is always needed for scrollbar diagnostics. + axis != ScrollbarAxis::Horizontal || viewport_size < scroll_range + }) + .map(|(viewport_size, scroll_range)| { ScrollbarLayout::new( window.insert_hitbox(scrollbar_bounds_for(axis), HitboxBehavior::Normal), viewport_size, diff --git a/crates/eval/Cargo.toml b/crates/eval/Cargo.toml index a0214c76a1..d5db7f71a4 100644 --- a/crates/eval/Cargo.toml +++ b/crates/eval/Cargo.toml @@ -19,8 +19,8 @@ path = "src/explorer.rs" [dependencies] agent.workspace = true -agent_settings.workspace = true agent_ui.workspace = true +agent_settings.workspace = true anyhow.workspace = true assistant_tool.workspace = true assistant_tools.workspace = true @@ -29,7 +29,6 @@ buffer_diff.workspace = true chrono.workspace = true clap.workspace = true client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true debug_adapter_extension.workspace = true dirs.workspace = true @@ -69,3 +68,4 @@ util.workspace = true uuid.workspace = true watch.workspace = true workspace-hack.workspace = true +zed_llm_client.workspace = true diff --git a/crates/eval/src/eval.rs b/crates/eval/src/eval.rs index d638ac171f..a02b4a7f0b 100644 --- a/crates/eval/src/eval.rs +++ b/crates/eval/src/eval.rs @@ -18,7 +18,7 @@ use collections::{HashMap, HashSet}; use extension::ExtensionHostProxy; use futures::future; use gpui::http_client::read_proxy_from_env; -use gpui::{App, AppContext, Application, AsyncApp, Entity, UpdateGlobal}; +use gpui::{App, AppContext, Application, AsyncApp, Entity, SemanticVersion, UpdateGlobal}; use gpui_tokio::Tokio; use language::LanguageRegistry; use language_model::{ConfiguredModel, LanguageModel, LanguageModelRegistry, SelectedModel}; @@ -337,8 +337,7 @@ pub struct AgentAppState { } pub fn init(cx: &mut App) -> Arc<AgentAppState> { - let app_version = AppVersion::global(cx); - release_channel::init(app_version, cx); + release_channel::init(SemanticVersion::default(), cx); gpui_tokio::init(cx); let mut settings_store = SettingsStore::new(cx); @@ -351,7 +350,7 @@ pub fn init(cx: &mut App) -> Arc<AgentAppState> { // Set User-Agent so we can download language servers from GitHub let user_agent = format!( "Zed/{} ({}; {})", - app_version, + AppVersion::global(cx), std::env::consts::OS, std::env::consts::ARCH ); diff --git a/crates/eval/src/example.rs b/crates/eval/src/example.rs index 23c8814916..7ce3b1fdf1 100644 --- a/crates/eval/src/example.rs +++ b/crates/eval/src/example.rs @@ -15,11 +15,11 @@ use agent_settings::AgentProfileId; use anyhow::{Result, anyhow}; use async_trait::async_trait; use buffer_diff::DiffHunkStatus; -use cloud_llm_client::CompletionIntent; use collections::HashMap; use futures::{FutureExt as _, StreamExt, channel::mpsc, select_biased}; use gpui::{App, AppContext, AsyncApp, Entity}; use language_model::{LanguageModel, Role, StopReason}; +use zed_llm_client::CompletionIntent; pub const THREAD_EVENT_TIMEOUT: Duration = Duration::from_secs(60 * 2); diff --git a/crates/extension/Cargo.toml b/crates/extension/Cargo.toml index 42189f20b3..4fc7da2dca 100644 --- a/crates/extension/Cargo.toml +++ b/crates/extension/Cargo.toml @@ -32,11 +32,7 @@ serde.workspace = true serde_json.workspace = true task.workspace = true toml.workspace = true -url.workspace = true util.workspace = true wasm-encoder.workspace = true wasmparser.workspace = true workspace-hack.workspace = true - -[dev-dependencies] -pretty_assertions.workspace = true diff --git a/crates/extension/src/capabilities.rs b/crates/extension/src/capabilities.rs deleted file mode 100644 index b8afc4ec06..0000000000 --- a/crates/extension/src/capabilities.rs +++ /dev/null @@ -1,20 +0,0 @@ -mod download_file_capability; -mod npm_install_package_capability; -mod process_exec_capability; - -pub use download_file_capability::*; -pub use npm_install_package_capability::*; -pub use process_exec_capability::*; - -use serde::{Deserialize, Serialize}; - -/// A capability for an extension. -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(tag = "kind", rename_all = "snake_case")] -pub enum ExtensionCapability { - #[serde(rename = "process:exec")] - ProcessExec(ProcessExecCapability), - DownloadFile(DownloadFileCapability), - #[serde(rename = "npm:install")] - NpmInstallPackage(NpmInstallPackageCapability), -} diff --git a/crates/extension/src/capabilities/download_file_capability.rs b/crates/extension/src/capabilities/download_file_capability.rs deleted file mode 100644 index a76755b593..0000000000 --- a/crates/extension/src/capabilities/download_file_capability.rs +++ /dev/null @@ -1,121 +0,0 @@ -use serde::{Deserialize, Serialize}; -use url::Url; - -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub struct DownloadFileCapability { - pub host: String, - pub path: Vec<String>, -} - -impl DownloadFileCapability { - /// Returns whether the capability allows downloading a file from the given URL. - pub fn allows(&self, url: &Url) -> bool { - let Some(desired_host) = url.host_str() else { - return false; - }; - - let Some(desired_path) = url.path_segments() else { - return false; - }; - let desired_path = desired_path.collect::<Vec<_>>(); - - if self.host != desired_host && self.host != "*" { - return false; - } - - for (ix, path_segment) in self.path.iter().enumerate() { - if path_segment == "**" { - return true; - } - - if ix >= desired_path.len() { - return false; - } - - if path_segment != "*" && path_segment != desired_path[ix] { - return false; - } - } - - if self.path.len() < desired_path.len() { - return false; - } - - true - } -} - -#[cfg(test)] -mod tests { - use pretty_assertions::assert_eq; - - use super::*; - - #[test] - fn test_allows() { - let capability = DownloadFileCapability { - host: "*".to_string(), - path: vec!["**".to_string()], - }; - assert_eq!( - capability.allows(&"https://example.com/some/path".parse().unwrap()), - true - ); - - let capability = DownloadFileCapability { - host: "github.com".to_string(), - path: vec!["**".to_string()], - }; - assert_eq!( - capability.allows(&"https://github.com/some-owner/some-repo".parse().unwrap()), - true - ); - assert_eq!( - capability.allows( - &"https://fake-github.com/some-owner/some-repo" - .parse() - .unwrap() - ), - false - ); - - let capability = DownloadFileCapability { - host: "github.com".to_string(), - path: vec!["specific-owner".to_string(), "*".to_string()], - }; - assert_eq!( - capability.allows(&"https://github.com/some-owner/some-repo".parse().unwrap()), - false - ); - assert_eq!( - capability.allows( - &"https://github.com/specific-owner/some-repo" - .parse() - .unwrap() - ), - true - ); - - let capability = DownloadFileCapability { - host: "github.com".to_string(), - path: vec!["specific-owner".to_string(), "*".to_string()], - }; - assert_eq!( - capability.allows( - &"https://github.com/some-owner/some-repo/extra" - .parse() - .unwrap() - ), - false - ); - assert_eq!( - capability.allows( - &"https://github.com/specific-owner/some-repo/extra" - .parse() - .unwrap() - ), - false - ); - } -} diff --git a/crates/extension/src/capabilities/npm_install_package_capability.rs b/crates/extension/src/capabilities/npm_install_package_capability.rs deleted file mode 100644 index 287645fc75..0000000000 --- a/crates/extension/src/capabilities/npm_install_package_capability.rs +++ /dev/null @@ -1,39 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub struct NpmInstallPackageCapability { - pub package: String, -} - -impl NpmInstallPackageCapability { - /// Returns whether the capability allows installing the given NPM package. - pub fn allows(&self, package: &str) -> bool { - self.package == "*" || self.package == package - } -} - -#[cfg(test)] -mod tests { - use pretty_assertions::assert_eq; - - use super::*; - - #[test] - fn test_allows() { - let capability = NpmInstallPackageCapability { - package: "*".to_string(), - }; - assert_eq!(capability.allows("package"), true); - - let capability = NpmInstallPackageCapability { - package: "react".to_string(), - }; - assert_eq!(capability.allows("react"), true); - - let capability = NpmInstallPackageCapability { - package: "react".to_string(), - }; - assert_eq!(capability.allows("malicious-package"), false); - } -} diff --git a/crates/extension/src/capabilities/process_exec_capability.rs b/crates/extension/src/capabilities/process_exec_capability.rs deleted file mode 100644 index 053a7b212b..0000000000 --- a/crates/extension/src/capabilities/process_exec_capability.rs +++ /dev/null @@ -1,116 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub struct ProcessExecCapability { - /// The command to execute. - pub command: String, - /// The arguments to pass to the command. Use `*` for a single wildcard argument. - /// If the last element is `**`, then any trailing arguments are allowed. - pub args: Vec<String>, -} - -impl ProcessExecCapability { - /// Returns whether the capability allows the given command and arguments. - pub fn allows( - &self, - desired_command: &str, - desired_args: &[impl AsRef<str> + std::fmt::Debug], - ) -> bool { - if self.command != desired_command && self.command != "*" { - return false; - } - - for (ix, arg) in self.args.iter().enumerate() { - if arg == "**" { - return true; - } - - if ix >= desired_args.len() { - return false; - } - - if arg != "*" && arg != desired_args[ix].as_ref() { - return false; - } - } - - if self.args.len() < desired_args.len() { - return false; - } - - true - } -} - -#[cfg(test)] -mod tests { - use pretty_assertions::assert_eq; - - use super::*; - - #[test] - fn test_allows_with_exact_match() { - let capability = ProcessExecCapability { - command: "ls".to_string(), - args: vec!["-la".to_string()], - }; - - assert_eq!(capability.allows("ls", &["-la"]), true); - assert_eq!(capability.allows("ls", &["-l"]), false); - assert_eq!(capability.allows("pwd", &[] as &[&str]), false); - } - - #[test] - fn test_allows_with_wildcard_arg() { - let capability = ProcessExecCapability { - command: "git".to_string(), - args: vec!["*".to_string()], - }; - - assert_eq!(capability.allows("git", &["status"]), true); - assert_eq!(capability.allows("git", &["commit"]), true); - // Too many args. - assert_eq!(capability.allows("git", &["status", "-s"]), false); - // Wrong command. - assert_eq!(capability.allows("npm", &["install"]), false); - } - - #[test] - fn test_allows_with_double_wildcard() { - let capability = ProcessExecCapability { - command: "cargo".to_string(), - args: vec!["test".to_string(), "**".to_string()], - }; - - assert_eq!(capability.allows("cargo", &["test"]), true); - assert_eq!(capability.allows("cargo", &["test", "--all"]), true); - assert_eq!( - capability.allows("cargo", &["test", "--all", "--no-fail-fast"]), - true - ); - // Wrong first arg. - assert_eq!(capability.allows("cargo", &["build"]), false); - } - - #[test] - fn test_allows_with_mixed_wildcards() { - let capability = ProcessExecCapability { - command: "docker".to_string(), - args: vec!["run".to_string(), "*".to_string(), "**".to_string()], - }; - - assert_eq!(capability.allows("docker", &["run", "nginx"]), true); - assert_eq!(capability.allows("docker", &["run"]), false); - assert_eq!( - capability.allows("docker", &["run", "ubuntu", "bash"]), - true - ); - assert_eq!( - capability.allows("docker", &["run", "alpine", "sh", "-c", "echo hello"]), - true - ); - // Wrong first arg. - assert_eq!(capability.allows("docker", &["ps"]), false); - } -} diff --git a/crates/extension/src/extension.rs b/crates/extension/src/extension.rs index 35f7f41938..8b150e19b9 100644 --- a/crates/extension/src/extension.rs +++ b/crates/extension/src/extension.rs @@ -1,4 +1,3 @@ -mod capabilities; pub mod extension_builder; mod extension_events; mod extension_host_proxy; @@ -17,7 +16,6 @@ use language::LanguageName; use semantic_version::SemanticVersion; use task::{SpawnInTerminal, ZedDebugConfig}; -pub use crate::capabilities::*; pub use crate::extension_events::*; pub use crate::extension_host_proxy::*; pub use crate::extension_manifest::*; diff --git a/crates/extension/src/extension_manifest.rs b/crates/extension/src/extension_manifest.rs index 5852b3e3fc..0a14923c0c 100644 --- a/crates/extension/src/extension_manifest.rs +++ b/crates/extension/src/extension_manifest.rs @@ -12,8 +12,6 @@ use std::{ sync::Arc, }; -use crate::ExtensionCapability; - /// This is the old version of the extension manifest, from when it was `extension.json`. #[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] pub struct OldExtensionManifest { @@ -102,8 +100,24 @@ impl ExtensionManifest { desired_args: &[impl AsRef<str> + std::fmt::Debug], ) -> Result<()> { let is_allowed = self.capabilities.iter().any(|capability| match capability { - ExtensionCapability::ProcessExec(capability) => { - capability.allows(desired_command, desired_args) + ExtensionCapability::ProcessExec { command, args } if command == desired_command => { + for (ix, arg) in args.iter().enumerate() { + if arg == "**" { + return true; + } + + if ix >= desired_args.len() { + return false; + } + + if arg != "*" && arg != desired_args[ix].as_ref() { + return false; + } + } + if args.len() < desired_args.len() { + return false; + } + true } _ => false, }); @@ -134,6 +148,20 @@ pub fn build_debug_adapter_schema_path( }) } +/// A capability for an extension. +#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] +#[serde(tag = "kind")] +pub enum ExtensionCapability { + #[serde(rename = "process:exec")] + ProcessExec { + /// The command to execute. + command: String, + /// The arguments to pass to the command. Use `*` for a single wildcard argument. + /// If the last element is `**`, then any trailing arguments are allowed. + args: Vec<String>, + }, +} + #[derive(Clone, Default, PartialEq, Eq, Debug, Deserialize, Serialize)] pub struct LibManifestEntry { pub kind: Option<ExtensionLibraryKind>, @@ -163,7 +191,7 @@ pub struct LanguageServerManifestEntry { #[serde(default)] languages: Vec<LanguageName>, #[serde(default)] - pub language_ids: HashMap<LanguageName, String>, + pub language_ids: HashMap<String, String>, #[serde(default)] pub code_action_kinds: Option<Vec<lsp::CodeActionKind>>, } @@ -281,10 +309,6 @@ fn manifest_from_old_manifest( #[cfg(test)] mod tests { - use pretty_assertions::assert_eq; - - use crate::ProcessExecCapability; - use super::*; fn extension_manifest() -> ExtensionManifest { @@ -336,12 +360,12 @@ mod tests { } #[test] - fn test_allow_exec_exact_match() { + fn test_allow_exact_match() { let manifest = ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { + capabilities: vec![ExtensionCapability::ProcessExec { command: "ls".to_string(), args: vec!["-la".to_string()], - })], + }], ..extension_manifest() }; @@ -351,12 +375,12 @@ mod tests { } #[test] - fn test_allow_exec_wildcard_arg() { + fn test_allow_wildcard_arg() { let manifest = ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { + capabilities: vec![ExtensionCapability::ProcessExec { command: "git".to_string(), args: vec!["*".to_string()], - })], + }], ..extension_manifest() }; @@ -367,12 +391,12 @@ mod tests { } #[test] - fn test_allow_exec_double_wildcard() { + fn test_allow_double_wildcard() { let manifest = ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { + capabilities: vec![ExtensionCapability::ProcessExec { command: "cargo".to_string(), args: vec!["test".to_string(), "**".to_string()], - })], + }], ..extension_manifest() }; @@ -387,12 +411,12 @@ mod tests { } #[test] - fn test_allow_exec_mixed_wildcards() { + fn test_allow_mixed_wildcards() { let manifest = ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { + capabilities: vec![ExtensionCapability::ProcessExec { command: "docker".to_string(), args: vec!["run".to_string(), "*".to_string(), "**".to_string()], - })], + }], ..extension_manifest() }; diff --git a/crates/extension_host/benches/extension_compilation_benchmark.rs b/crates/extension_host/benches/extension_compilation_benchmark.rs index a4fa9bfeff..9d867af041 100644 --- a/crates/extension_host/benches/extension_compilation_benchmark.rs +++ b/crates/extension_host/benches/extension_compilation_benchmark.rs @@ -134,12 +134,10 @@ fn manifest() -> ExtensionManifest { slash_commands: BTreeMap::default(), indexed_docs_providers: BTreeMap::default(), snippets: None, - capabilities: vec![ExtensionCapability::ProcessExec( - extension::ProcessExecCapability { - command: "echo".into(), - args: vec!["hello!".into()], - }, - )], + capabilities: vec![ExtensionCapability::ProcessExec { + command: "echo".into(), + args: vec!["hello!".into()], + }], debug_adapters: Default::default(), debug_locators: Default::default(), } diff --git a/crates/extension_host/src/capability_granter.rs b/crates/extension_host/src/capability_granter.rs deleted file mode 100644 index c77e5ecba1..0000000000 --- a/crates/extension_host/src/capability_granter.rs +++ /dev/null @@ -1,153 +0,0 @@ -use std::sync::Arc; - -use anyhow::{Result, bail}; -use extension::{ExtensionCapability, ExtensionManifest}; -use url::Url; - -pub struct CapabilityGranter { - granted_capabilities: Vec<ExtensionCapability>, - manifest: Arc<ExtensionManifest>, -} - -impl CapabilityGranter { - pub fn new( - granted_capabilities: Vec<ExtensionCapability>, - manifest: Arc<ExtensionManifest>, - ) -> Self { - Self { - granted_capabilities, - manifest, - } - } - - pub fn grant_exec( - &self, - desired_command: &str, - desired_args: &[impl AsRef<str> + std::fmt::Debug], - ) -> Result<()> { - self.manifest.allow_exec(desired_command, desired_args)?; - - let is_allowed = self - .granted_capabilities - .iter() - .any(|capability| match capability { - ExtensionCapability::ProcessExec(capability) => { - capability.allows(desired_command, desired_args) - } - _ => false, - }); - - if !is_allowed { - bail!( - "capability for process:exec {desired_command} {desired_args:?} is not granted by the extension host", - ); - } - - Ok(()) - } - - pub fn grant_download_file(&self, desired_url: &Url) -> Result<()> { - let is_allowed = self - .granted_capabilities - .iter() - .any(|capability| match capability { - ExtensionCapability::DownloadFile(capability) => capability.allows(desired_url), - _ => false, - }); - - if !is_allowed { - bail!( - "capability for download_file {desired_url} is not granted by the extension host", - ); - } - - Ok(()) - } - - pub fn grant_npm_install_package(&self, package_name: &str) -> Result<()> { - let is_allowed = self - .granted_capabilities - .iter() - .any(|capability| match capability { - ExtensionCapability::NpmInstallPackage(capability) => { - capability.allows(package_name) - } - _ => false, - }); - - if !is_allowed { - bail!("capability for npm:install {package_name} is not granted by the extension host",); - } - - Ok(()) - } -} - -#[cfg(test)] -mod tests { - use std::collections::BTreeMap; - - use extension::{ProcessExecCapability, SchemaVersion}; - - use super::*; - - fn extension_manifest() -> ExtensionManifest { - ExtensionManifest { - id: "test".into(), - name: "Test".to_string(), - version: "1.0.0".into(), - schema_version: SchemaVersion::ZERO, - description: None, - repository: None, - authors: vec![], - lib: Default::default(), - themes: vec![], - icon_themes: vec![], - languages: vec![], - grammars: BTreeMap::default(), - language_servers: BTreeMap::default(), - context_servers: BTreeMap::default(), - slash_commands: BTreeMap::default(), - indexed_docs_providers: BTreeMap::default(), - snippets: None, - capabilities: vec![], - debug_adapters: Default::default(), - debug_locators: Default::default(), - } - } - - #[test] - fn test_grant_exec() { - let manifest = Arc::new(ExtensionManifest { - capabilities: vec![ExtensionCapability::ProcessExec(ProcessExecCapability { - command: "ls".to_string(), - args: vec!["-la".to_string()], - })], - ..extension_manifest() - }); - - // It returns an error when the extension host has no granted capabilities. - let granter = CapabilityGranter::new(Vec::new(), manifest.clone()); - assert!(granter.grant_exec("ls", &["-la"]).is_err()); - - // It succeeds when the extension host has the exact capability. - let granter = CapabilityGranter::new( - vec![ExtensionCapability::ProcessExec(ProcessExecCapability { - command: "ls".to_string(), - args: vec!["-la".to_string()], - })], - manifest.clone(), - ); - assert!(granter.grant_exec("ls", &["-la"]).is_ok()); - - // It succeeds when the extension host has a wildcard capability. - let granter = CapabilityGranter::new( - vec![ExtensionCapability::ProcessExec(ProcessExecCapability { - command: "*".to_string(), - args: vec!["**".to_string()], - })], - manifest.clone(), - ); - assert!(granter.grant_exec("ls", &["-la"]).is_ok()); - } -} diff --git a/crates/extension_host/src/extension_host.rs b/crates/extension_host/src/extension_host.rs index dc38c244f1..fd64d3fa59 100644 --- a/crates/extension_host/src/extension_host.rs +++ b/crates/extension_host/src/extension_host.rs @@ -1,4 +1,3 @@ -mod capability_granter; pub mod extension_settings; pub mod headless_host; pub mod wasm_host; diff --git a/crates/extension_host/src/wasm_host.rs b/crates/extension_host/src/wasm_host.rs index d990b670f4..dcd52d0d02 100644 --- a/crates/extension_host/src/wasm_host.rs +++ b/crates/extension_host/src/wasm_host.rs @@ -1,15 +1,13 @@ pub mod wit; use crate::ExtensionManifest; -use crate::capability_granter::CapabilityGranter; use anyhow::{Context as _, Result, anyhow, bail}; use async_trait::async_trait; use dap::{DebugRequest, StartDebuggingRequestArgumentsRequest}; use extension::{ CodeLabel, Command, Completion, ContextServerConfiguration, DebugAdapterBinary, - DebugTaskDefinition, DownloadFileCapability, ExtensionCapability, ExtensionHostProxy, - KeyValueStoreDelegate, NpmInstallPackageCapability, ProcessExecCapability, ProjectDelegate, - SlashCommand, SlashCommandArgumentCompletion, SlashCommandOutput, Symbol, WorktreeDelegate, + DebugTaskDefinition, ExtensionHostProxy, KeyValueStoreDelegate, ProjectDelegate, SlashCommand, + SlashCommandArgumentCompletion, SlashCommandOutput, Symbol, WorktreeDelegate, }; use fs::{Fs, normalize_path}; use futures::future::LocalBoxFuture; @@ -52,8 +50,6 @@ pub struct WasmHost { pub(crate) proxy: Arc<ExtensionHostProxy>, fs: Arc<dyn Fs>, pub work_dir: PathBuf, - /// The capabilities granted to extensions running on the host. - pub(crate) granted_capabilities: Vec<ExtensionCapability>, _main_thread_message_task: Task<()>, main_thread_message_tx: mpsc::UnboundedSender<MainThreadCall>, } @@ -490,7 +486,6 @@ pub struct WasmState { pub table: ResourceTable, ctx: wasi::WasiCtx, pub host: Arc<WasmHost>, - pub(crate) capability_granter: CapabilityGranter, } type MainThreadCall = Box<dyn Send + for<'a> FnOnce(&'a mut AsyncApp) -> LocalBoxFuture<'a, ()>>; @@ -576,19 +571,6 @@ impl WasmHost { node_runtime, proxy, release_channel: ReleaseChannel::global(cx), - granted_capabilities: vec![ - ExtensionCapability::ProcessExec(ProcessExecCapability { - command: "*".to_string(), - args: vec!["**".to_string()], - }), - ExtensionCapability::DownloadFile(DownloadFileCapability { - host: "*".to_string(), - path: vec!["**".to_string()], - }), - ExtensionCapability::NpmInstallPackage(NpmInstallPackageCapability { - package: "*".to_string(), - }), - ], _main_thread_message_task: task, main_thread_message_tx: tx, }) @@ -615,10 +597,6 @@ impl WasmHost { manifest: manifest.clone(), table: ResourceTable::new(), host: this.clone(), - capability_granter: CapabilityGranter::new( - this.granted_capabilities.clone(), - manifest.clone(), - ), }, ); // Store will yield after 1 tick, and get a new deadline of 1 tick after each yield. diff --git a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs index 767b9033ad..d25328ee7f 100644 --- a/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs +++ b/crates/extension_host/src/wasm_host/wit/since_v0_6_0.rs @@ -30,7 +30,6 @@ use std::{ sync::{Arc, OnceLock}, }; use task::{SpawnInTerminal, ZedDebugConfig}; -use url::Url; use util::{archive::extract_zip, fs::make_file_executable, maybe}; use wasmtime::component::{Linker, Resource}; @@ -745,9 +744,6 @@ impl nodejs::Host for WasmState { package_name: String, version: String, ) -> wasmtime::Result<Result<(), String>> { - self.capability_granter - .grant_npm_install_package(&package_name)?; - self.host .node_runtime .npm_install_packages(&self.work_dir(), &[(&package_name, &version)]) @@ -851,8 +847,7 @@ impl process::Host for WasmState { command: process::Command, ) -> wasmtime::Result<Result<process::Output, String>> { maybe!(async { - self.capability_granter - .grant_exec(&command.command, &command.args)?; + self.manifest.allow_exec(&command.command, &command.args)?; let output = util::command::new_smol_command(command.command.as_str()) .args(&command.args) @@ -1015,9 +1010,6 @@ impl ExtensionImports for WasmState { file_type: DownloadedFileType, ) -> wasmtime::Result<Result<(), String>> { maybe!(async { - let parsed_url = Url::parse(&url)?; - self.capability_granter.grant_download_file(&parsed_url)?; - let path = PathBuf::from(path); let extension_work_dir = self.host.work_dir.join(self.manifest.id.as_ref()); diff --git a/crates/feature_flags/src/feature_flags.rs b/crates/feature_flags/src/feature_flags.rs index 631bafc841..da85133bb9 100644 --- a/crates/feature_flags/src/feature_flags.rs +++ b/crates/feature_flags/src/feature_flags.rs @@ -85,11 +85,6 @@ impl FeatureFlag for ThreadAutoCaptureFeatureFlag { false } } -pub struct PanicFeatureFlag; - -impl FeatureFlag for PanicFeatureFlag { - const NAME: &'static str = "panic"; -} pub struct JjUiFeatureFlag {} diff --git a/crates/file_finder/src/file_finder.rs b/crates/file_finder/src/file_finder.rs index e5ac70bb58..a4d61dd56f 100644 --- a/crates/file_finder/src/file_finder.rs +++ b/crates/file_finder/src/file_finder.rs @@ -1404,21 +1404,14 @@ impl PickerDelegate for FileFinderDelegate { } else { let path_position = PathWithPosition::parse_str(&raw_query); - #[cfg(windows)] - let raw_query = raw_query.trim().to_owned().replace("/", "\\"); - #[cfg(not(windows))] - let raw_query = raw_query.trim().to_owned(); - - let file_query_end = if path_position.path.to_str().unwrap_or(&raw_query) == raw_query { - None - } else { - // Safe to unwrap as we won't get here when the unwrap in if fails - Some(path_position.path.to_str().unwrap().len()) - }; - let query = FileSearchQuery { - raw_query, - file_query_end, + raw_query: raw_query.trim().to_owned(), + file_query_end: if path_position.path.to_str().unwrap_or(raw_query) == raw_query { + None + } else { + // Safe to unwrap as we won't get here when the unwrap in if fails + Some(path_position.path.to_str().unwrap().len()) + }, path_position, }; diff --git a/crates/fs/src/fake_git_repo.rs b/crates/fs/src/fake_git_repo.rs index 378a8fb7df..8a4f7c03bb 100644 --- a/crates/fs/src/fake_git_repo.rs +++ b/crates/fs/src/fake_git_repo.rs @@ -398,18 +398,6 @@ impl GitRepository for FakeGitRepository { }) } - fn stash_paths( - &self, - _paths: Vec<RepoPath>, - _env: Arc<HashMap<String, String>>, - ) -> BoxFuture<Result<()>> { - unimplemented!() - } - - fn stash_pop(&self, _env: Arc<HashMap<String, String>>) -> BoxFuture<Result<()>> { - unimplemented!() - } - fn commit( &self, _message: gpui::SharedString, diff --git a/crates/git/src/git.rs b/crates/git/src/git.rs index 553361e673..3714086dd0 100644 --- a/crates/git/src/git.rs +++ b/crates/git/src/git.rs @@ -55,10 +55,6 @@ actions!( StageAll, /// Unstages all changes in the repository. UnstageAll, - /// Stashes all changes in the repository, including untracked files. - StashAll, - /// Pops the most recent stash. - StashPop, /// Restores all tracked files to their last committed state. RestoreTrackedFiles, /// Moves all untracked files to trash. diff --git a/crates/git/src/repository.rs b/crates/git/src/repository.rs index a63315e69e..9cc3442392 100644 --- a/crates/git/src/repository.rs +++ b/crates/git/src/repository.rs @@ -395,14 +395,6 @@ pub trait GitRepository: Send + Sync { env: Arc<HashMap<String, String>>, ) -> BoxFuture<'_, Result<()>>; - fn stash_paths( - &self, - paths: Vec<RepoPath>, - env: Arc<HashMap<String, String>>, - ) -> BoxFuture<Result<()>>; - - fn stash_pop(&self, env: Arc<HashMap<String, String>>) -> BoxFuture<Result<()>>; - fn push( &self, branch_name: String, @@ -1197,55 +1189,6 @@ impl GitRepository for RealGitRepository { .boxed() } - fn stash_paths( - &self, - paths: Vec<RepoPath>, - env: Arc<HashMap<String, String>>, - ) -> BoxFuture<Result<()>> { - let working_directory = self.working_directory(); - self.executor - .spawn(async move { - let mut cmd = new_smol_command("git"); - cmd.current_dir(&working_directory?) - .envs(env.iter()) - .args(["stash", "push", "--quiet"]) - .arg("--include-untracked"); - - cmd.args(paths.iter().map(|p| p.as_ref())); - - let output = cmd.output().await?; - - anyhow::ensure!( - output.status.success(), - "Failed to stash:\n{}", - String::from_utf8_lossy(&output.stderr) - ); - Ok(()) - }) - .boxed() - } - - fn stash_pop(&self, env: Arc<HashMap<String, String>>) -> BoxFuture<Result<()>> { - let working_directory = self.working_directory(); - self.executor - .spawn(async move { - let mut cmd = new_smol_command("git"); - cmd.current_dir(&working_directory?) - .envs(env.iter()) - .args(["stash", "pop"]); - - let output = cmd.output().await?; - - anyhow::ensure!( - output.status.success(), - "Failed to stash pop:\n{}", - String::from_utf8_lossy(&output.stderr) - ); - Ok(()) - }) - .boxed() - } - fn commit( &self, message: SharedString, diff --git a/crates/git_hosting_providers/src/providers/github.rs b/crates/git_hosting_providers/src/providers/github.rs index 30f8d058a7..649b2f30ae 100644 --- a/crates/git_hosting_providers/src/providers/github.rs +++ b/crates/git_hosting_providers/src/providers/github.rs @@ -159,11 +159,7 @@ impl GitHostingProvider for Github { } let mut path_segments = url.path_segments()?; - let mut owner = path_segments.next()?; - if owner.is_empty() { - owner = path_segments.next()?; - } - + let owner = path_segments.next()?; let repo = path_segments.next()?.trim_end_matches(".git"); Some(ParsedGitRemote { @@ -248,22 +244,6 @@ mod tests { use super::*; - #[test] - fn test_remote_url_with_root_slash() { - let remote_url = "git@github.com:/zed-industries/zed"; - let parsed_remote = Github::public_instance() - .parse_remote_url(remote_url) - .unwrap(); - - assert_eq!( - parsed_remote, - ParsedGitRemote { - owner: "zed-industries".into(), - repo: "zed".into(), - } - ); - } - #[test] fn test_invalid_self_hosted_remote_url() { let remote_url = "git@github.com:zed-industries/zed.git"; diff --git a/crates/git_ui/Cargo.toml b/crates/git_ui/Cargo.toml index 4c919249ee..2fb80b7e73 100644 --- a/crates/git_ui/Cargo.toml +++ b/crates/git_ui/Cargo.toml @@ -24,7 +24,6 @@ buffer_diff.workspace = true call.workspace = true chrono.workspace = true client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true command_palette_hooks.workspace = true component.workspace = true @@ -63,6 +62,7 @@ watch.workspace = true workspace-hack.workspace = true workspace.workspace = true zed_actions.workspace = true +zed_llm_client.workspace = true [target.'cfg(windows)'.dependencies] windows.workspace = true diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index ee74ac4d54..19e2712d7c 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -27,10 +27,7 @@ use git::repository::{ }; use git::status::StageStatus; use git::{Amend, Signoff, ToggleStaged, repository::RepoPath, status::FileStatus}; -use git::{ - ExpandCommitEditor, RestoreTrackedFiles, StageAll, StashAll, StashPop, TrashUntrackedFiles, - UnstageAll, -}; +use git::{ExpandCommitEditor, RestoreTrackedFiles, StageAll, TrashUntrackedFiles, UnstageAll}; use gpui::{ Action, Animation, AnimationExt as _, AsyncApp, AsyncWindowContext, Axis, ClickEvent, Corner, DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, KeyContext, @@ -71,12 +68,12 @@ use ui::{ use util::{ResultExt, TryFutureExt, maybe}; use workspace::SERIALIZATION_THROTTLE_TIME; -use cloud_llm_client::CompletionIntent; use workspace::{ Workspace, dock::{DockPosition, Panel, PanelEvent}, notifications::{DetachAndPromptErr, ErrorMessagePrompt, NotificationId}, }; +use zed_llm_client::CompletionIntent; actions!( git_panel, @@ -143,13 +140,6 @@ fn git_panel_context_menu( UnstageAll.boxed_clone(), ) .separator() - .action_disabled_when( - !(state.has_new_changes || state.has_tracked_changes), - "Stash All", - StashAll.boxed_clone(), - ) - .action("Stash Pop", StashPop.boxed_clone()) - .separator() .action("Open Diff", project_diff::Diff.boxed_clone()) .separator() .action_disabled_when( @@ -390,9 +380,6 @@ pub(crate) fn commit_message_editor( window: &mut Window, cx: &mut Context<Editor>, ) -> Editor { - project.update(cx, |this, cx| { - this.mark_buffer_as_non_searchable(commit_message_buffer.read(cx).remote_id(), cx); - }); let buffer = cx.new(|cx| MultiBuffer::singleton(commit_message_buffer, cx)); let max_lines = if in_panel { MAX_PANEL_EDITOR_LINES } else { 18 }; let mut commit_editor = Editor::new( @@ -1425,52 +1412,6 @@ impl GitPanel { self.tracked_staged_count + self.new_staged_count + self.conflicted_staged_count } - pub fn stash_pop(&mut self, _: &StashPop, _window: &mut Window, cx: &mut Context<Self>) { - let Some(active_repository) = self.active_repository.clone() else { - return; - }; - - cx.spawn({ - async move |this, cx| { - let stash_task = active_repository - .update(cx, |repo, cx| repo.stash_pop(cx))? - .await; - this.update(cx, |this, cx| { - stash_task - .map_err(|e| { - this.show_error_toast("stash pop", e, cx); - }) - .ok(); - cx.notify(); - }) - } - }) - .detach(); - } - - pub fn stash_all(&mut self, _: &StashAll, _window: &mut Window, cx: &mut Context<Self>) { - let Some(active_repository) = self.active_repository.clone() else { - return; - }; - - cx.spawn({ - async move |this, cx| { - let stash_task = active_repository - .update(cx, |repo, cx| repo.stash_all(cx))? - .await; - this.update(cx, |this, cx| { - stash_task - .map_err(|e| { - this.show_error_toast("stash", e, cx); - }) - .ok(); - cx.notify(); - }) - } - }) - .detach(); - } - pub fn commit_message_buffer(&self, cx: &App) -> Entity<Buffer> { self.commit_editor .read(cx) @@ -2416,7 +2357,7 @@ impl GitPanel { .committer_name .clone() .or_else(|| participant.user.name.clone()) - .unwrap_or_else(|| participant.user.github_login.clone().to_string()); + .unwrap_or_else(|| participant.user.github_login.clone()); new_co_authors.push((name.clone(), email.clone())) } } @@ -2436,7 +2377,7 @@ impl GitPanel { .name .clone() .or_else(|| user.name.clone()) - .unwrap_or_else(|| user.github_login.clone().to_string()); + .unwrap_or_else(|| user.github_login.clone()); Some((name, email)) } @@ -4430,8 +4371,6 @@ impl Render for GitPanel { .on_action(cx.listener(Self::revert_selected)) .on_action(cx.listener(Self::clean_all)) .on_action(cx.listener(Self::generate_commit_message_action)) - .on_action(cx.listener(Self::stash_all)) - .on_action(cx.listener(Self::stash_pop)) }) .on_action(cx.listener(Self::select_first)) .on_action(cx.listener(Self::select_next)) diff --git a/crates/git_ui/src/git_ui.rs b/crates/git_ui/src/git_ui.rs index 0163175eda..2d7fba13c5 100644 --- a/crates/git_ui/src/git_ui.rs +++ b/crates/git_ui/src/git_ui.rs @@ -114,22 +114,6 @@ pub fn init(cx: &mut App) { }); }); } - workspace.register_action(|workspace, action: &git::StashAll, window, cx| { - let Some(panel) = workspace.panel::<git_panel::GitPanel>(cx) else { - return; - }; - panel.update(cx, |panel, cx| { - panel.stash_all(action, window, cx); - }); - }); - workspace.register_action(|workspace, action: &git::StashPop, window, cx| { - let Some(panel) = workspace.panel::<git_panel::GitPanel>(cx) else { - return; - }; - panel.update(cx, |panel, cx| { - panel.stash_pop(action, window, cx); - }); - }); workspace.register_action(|workspace, action: &git::StageAll, window, cx| { let Some(panel) = workspace.panel::<git_panel::GitPanel>(cx) else { return; diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index 2bf49fa7d8..b446ea8bd8 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -121,7 +121,7 @@ smallvec.workspace = true smol.workspace = true strum.workspace = true sum_tree.workspace = true -taffy = "=0.8.3" +taffy = "=0.5.1" thiserror.workspace = true util.workspace = true uuid.workspace = true @@ -216,6 +216,10 @@ xim = { git = "https://github.com/XDeme1/xim-rs", rev = "d50d461764c2213655cd9cf x11-clipboard = { version = "0.9.3", optional = true } [target.'cfg(target_os = "windows")'.dependencies] +blade-util.workspace = true +bytemuck = "1" +blade-graphics.workspace = true +blade-macros.workspace = true flume = "0.11" rand.workspace = true windows.workspace = true @@ -236,6 +240,7 @@ util = { workspace = true, features = ["test-support"] } [target.'cfg(target_os = "windows")'.build-dependencies] embed-resource = "3.0" +naga.workspace = true [target.'cfg(target_os = "macos")'.build-dependencies] bindgen = "0.71" @@ -282,10 +287,6 @@ path = "examples/shadow.rs" name = "svg" path = "examples/svg/svg.rs" -[[example]] -name = "tab_stop" -path = "examples/tab_stop.rs" - [[example]] name = "text" path = "examples/text.rs" diff --git a/crates/gpui/build.rs b/crates/gpui/build.rs index 93a1c15c41..aed4397440 100644 --- a/crates/gpui/build.rs +++ b/crates/gpui/build.rs @@ -9,10 +9,7 @@ fn main() { let target = env::var("CARGO_CFG_TARGET_OS"); println!("cargo::rustc-check-cfg=cfg(gles)"); - #[cfg(any( - not(any(target_os = "macos", target_os = "windows")), - all(target_os = "macos", feature = "macos-blade") - ))] + #[cfg(any(not(target_os = "macos"), feature = "macos-blade"))] check_wgsl_shaders(); match target.as_deref() { @@ -20,18 +17,21 @@ fn main() { #[cfg(target_os = "macos")] macos::build(); } + #[cfg(all(target_os = "windows", feature = "windows-manifest"))] Ok("windows") => { - #[cfg(target_os = "windows")] - windows::build(); + let manifest = std::path::Path::new("resources/windows/gpui.manifest.xml"); + let rc_file = std::path::Path::new("resources/windows/gpui.rc"); + println!("cargo:rerun-if-changed={}", manifest.display()); + println!("cargo:rerun-if-changed={}", rc_file.display()); + embed_resource::compile(rc_file, embed_resource::NONE) + .manifest_required() + .unwrap(); } _ => (), }; } -#[cfg(any( - not(any(target_os = "macos", target_os = "windows")), - all(target_os = "macos", feature = "macos-blade") -))] +#[allow(dead_code)] fn check_wgsl_shaders() { use std::path::PathBuf; use std::process; @@ -128,7 +128,6 @@ mod macos { "AtlasTile".into(), "PathRasterizationInputIndex".into(), "PathVertex_ScaledPixels".into(), - "PathRasterizationVertex".into(), "ShadowInputIndex".into(), "Shadow".into(), "QuadInputIndex".into(), @@ -243,215 +242,3 @@ mod macos { } } } - -#[cfg(target_os = "windows")] -mod windows { - use std::{ - fs, - io::Write, - path::{Path, PathBuf}, - process::{self, Command}, - }; - - pub(super) fn build() { - // Compile HLSL shaders - #[cfg(not(debug_assertions))] - compile_shaders(); - - // Embed the Windows manifest and resource file - #[cfg(feature = "windows-manifest")] - embed_resource(); - } - - #[cfg(feature = "windows-manifest")] - fn embed_resource() { - let manifest = std::path::Path::new("resources/windows/gpui.manifest.xml"); - let rc_file = std::path::Path::new("resources/windows/gpui.rc"); - println!("cargo:rerun-if-changed={}", manifest.display()); - println!("cargo:rerun-if-changed={}", rc_file.display()); - embed_resource::compile(rc_file, embed_resource::NONE) - .manifest_required() - .unwrap(); - } - - /// You can set the `GPUI_FXC_PATH` environment variable to specify the path to the fxc.exe compiler. - fn compile_shaders() { - let shader_path = PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap()) - .join("src/platform/windows/shaders.hlsl"); - let out_dir = std::env::var("OUT_DIR").unwrap(); - - println!("cargo:rerun-if-changed={}", shader_path.display()); - - // Check if fxc.exe is available - let fxc_path = find_fxc_compiler(); - - // Define all modules - let modules = [ - "quad", - "shadow", - "path_rasterization", - "path_sprite", - "underline", - "monochrome_sprite", - "polychrome_sprite", - ]; - - let rust_binding_path = format!("{}/shaders_bytes.rs", out_dir); - if Path::new(&rust_binding_path).exists() { - fs::remove_file(&rust_binding_path) - .expect("Failed to remove existing Rust binding file"); - } - for module in modules { - compile_shader_for_module( - module, - &out_dir, - &fxc_path, - shader_path.to_str().unwrap(), - &rust_binding_path, - ); - } - - { - let shader_path = PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap()) - .join("src/platform/windows/color_text_raster.hlsl"); - compile_shader_for_module( - "emoji_rasterization", - &out_dir, - &fxc_path, - shader_path.to_str().unwrap(), - &rust_binding_path, - ); - } - } - - /// You can set the `GPUI_FXC_PATH` environment variable to specify the path to the fxc.exe compiler. - fn find_fxc_compiler() -> String { - // Check environment variable - if let Ok(path) = std::env::var("GPUI_FXC_PATH") { - if Path::new(&path).exists() { - return path; - } - } - - // Try to find in PATH - // NOTE: This has to be `where.exe` on Windows, not `where`, it must be ended with `.exe` - if let Ok(output) = std::process::Command::new("where.exe") - .arg("fxc.exe") - .output() - { - if output.status.success() { - let path = String::from_utf8_lossy(&output.stdout); - return path.trim().to_string(); - } - } - - // Check the default path - if Path::new(r"C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\fxc.exe") - .exists() - { - return r"C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\fxc.exe" - .to_string(); - } - - panic!("Failed to find fxc.exe"); - } - - fn compile_shader_for_module( - module: &str, - out_dir: &str, - fxc_path: &str, - shader_path: &str, - rust_binding_path: &str, - ) { - // Compile vertex shader - let output_file = format!("{}/{}_vs.h", out_dir, module); - let const_name = format!("{}_VERTEX_BYTES", module.to_uppercase()); - compile_shader_impl( - fxc_path, - &format!("{module}_vertex"), - &output_file, - &const_name, - shader_path, - "vs_4_1", - ); - generate_rust_binding(&const_name, &output_file, &rust_binding_path); - - // Compile fragment shader - let output_file = format!("{}/{}_ps.h", out_dir, module); - let const_name = format!("{}_FRAGMENT_BYTES", module.to_uppercase()); - compile_shader_impl( - fxc_path, - &format!("{module}_fragment"), - &output_file, - &const_name, - shader_path, - "ps_4_1", - ); - generate_rust_binding(&const_name, &output_file, &rust_binding_path); - } - - fn compile_shader_impl( - fxc_path: &str, - entry_point: &str, - output_path: &str, - var_name: &str, - shader_path: &str, - target: &str, - ) { - let output = Command::new(fxc_path) - .args([ - "/T", - target, - "/E", - entry_point, - "/Fh", - output_path, - "/Vn", - var_name, - "/O3", - shader_path, - ]) - .output(); - - match output { - Ok(result) => { - if result.status.success() { - return; - } - eprintln!( - "Shader compilation failed for {}:\n{}", - entry_point, - String::from_utf8_lossy(&result.stderr) - ); - process::exit(1); - } - Err(e) => { - eprintln!("Failed to run fxc for {}: {}", entry_point, e); - process::exit(1); - } - } - } - - fn generate_rust_binding(const_name: &str, head_file: &str, output_path: &str) { - let header_content = fs::read_to_string(head_file).expect("Failed to read header file"); - let const_definition = { - let global_var_start = header_content.find("const BYTE").unwrap(); - let global_var = &header_content[global_var_start..]; - let equal = global_var.find('=').unwrap(); - global_var[equal + 1..].trim() - }; - let rust_binding = format!( - "const {}: &[u8] = &{}\n", - const_name, - const_definition.replace('{', "[").replace('}', "]") - ); - let mut options = fs::OpenOptions::new() - .create(true) - .append(true) - .open(output_path) - .expect("Failed to open Rust binding file"); - options - .write_all(rust_binding.as_bytes()) - .expect("Failed to write Rust binding file"); - } -} diff --git a/crates/gpui/examples/painting.rs b/crates/gpui/examples/painting.rs index 668aed2377..ff4b64cbda 100644 --- a/crates/gpui/examples/painting.rs +++ b/crates/gpui/examples/painting.rs @@ -1,12 +1,11 @@ use gpui::{ Application, Background, Bounds, ColorSpace, Context, MouseDownEvent, Path, PathBuilder, PathStyle, Pixels, Point, Render, SharedString, StrokeOptions, Window, WindowOptions, canvas, - div, linear_color_stop, linear_gradient, point, prelude::*, px, quad, rgb, size, + div, linear_color_stop, linear_gradient, point, prelude::*, px, rgb, size, }; struct PaintingViewer { default_lines: Vec<(Path<Pixels>, Background)>, - background_quads: Vec<(Bounds<Pixels>, Background)>, lines: Vec<Vec<Point<Pixels>>>, start: Point<Pixels>, dashed: bool, @@ -17,148 +16,12 @@ impl PaintingViewer { fn new(_window: &mut Window, _cx: &mut Context<Self>) -> Self { let mut lines = vec![]; - // Black squares beneath transparent paths. - let background_quads = vec![ - ( - Bounds { - origin: point(px(70.), px(70.)), - size: size(px(40.), px(40.)), - }, - gpui::black().into(), - ), - ( - Bounds { - origin: point(px(170.), px(70.)), - size: size(px(40.), px(40.)), - }, - gpui::black().into(), - ), - ( - Bounds { - origin: point(px(270.), px(70.)), - size: size(px(40.), px(40.)), - }, - gpui::black().into(), - ), - ( - Bounds { - origin: point(px(370.), px(70.)), - size: size(px(40.), px(40.)), - }, - gpui::black().into(), - ), - ( - Bounds { - origin: point(px(450.), px(50.)), - size: size(px(80.), px(80.)), - }, - gpui::black().into(), - ), - ]; - - // 50% opaque red path that extends across black quad. - let mut builder = PathBuilder::fill(); - builder.move_to(point(px(50.), px(50.))); - builder.line_to(point(px(130.), px(50.))); - builder.line_to(point(px(130.), px(130.))); - builder.line_to(point(px(50.), px(130.))); - builder.close(); - let path = builder.build().unwrap(); - let mut red = rgb(0xFF0000); - red.a = 0.5; - lines.push((path, red.into())); - - // 50% opaque blue path that extends across black quad. - let mut builder = PathBuilder::fill(); - builder.move_to(point(px(150.), px(50.))); - builder.line_to(point(px(230.), px(50.))); - builder.line_to(point(px(230.), px(130.))); - builder.line_to(point(px(150.), px(130.))); - builder.close(); - let path = builder.build().unwrap(); - let mut blue = rgb(0x0000FF); - blue.a = 0.5; - lines.push((path, blue.into())); - - // 50% opaque green path that extends across black quad. - let mut builder = PathBuilder::fill(); - builder.move_to(point(px(250.), px(50.))); - builder.line_to(point(px(330.), px(50.))); - builder.line_to(point(px(330.), px(130.))); - builder.line_to(point(px(250.), px(130.))); - builder.close(); - let path = builder.build().unwrap(); - let mut green = rgb(0x00FF00); - green.a = 0.5; - lines.push((path, green.into())); - - // 50% opaque black path that extends across black quad. - let mut builder = PathBuilder::fill(); - builder.move_to(point(px(350.), px(50.))); - builder.line_to(point(px(430.), px(50.))); - builder.line_to(point(px(430.), px(130.))); - builder.line_to(point(px(350.), px(130.))); - builder.close(); - let path = builder.build().unwrap(); - let mut black = rgb(0x000000); - black.a = 0.5; - lines.push((path, black.into())); - - // Two 50% opaque red circles overlapping - center should be darker red - let mut builder = PathBuilder::fill(); - let center = point(px(530.), px(85.)); - let radius = px(30.); - builder.move_to(point(center.x + radius, center.y)); - builder.arc_to( - point(radius, radius), - px(0.), - false, - false, - point(center.x - radius, center.y), - ); - builder.arc_to( - point(radius, radius), - px(0.), - false, - false, - point(center.x + radius, center.y), - ); - builder.close(); - let path = builder.build().unwrap(); - let mut red1 = rgb(0xFF0000); - red1.a = 0.5; - lines.push((path, red1.into())); - - let mut builder = PathBuilder::fill(); - let center = point(px(570.), px(85.)); - let radius = px(30.); - builder.move_to(point(center.x + radius, center.y)); - builder.arc_to( - point(radius, radius), - px(0.), - false, - false, - point(center.x - radius, center.y), - ); - builder.arc_to( - point(radius, radius), - px(0.), - false, - false, - point(center.x + radius, center.y), - ); - builder.close(); - let path = builder.build().unwrap(); - let mut red2 = rgb(0xFF0000); - red2.a = 0.5; - lines.push((path, red2.into())); - // draw a Rust logo let mut builder = lyon::path::Path::svg_builder(); lyon::extra::rust_logo::build_logo_path(&mut builder); // move down the Path let mut builder: PathBuilder = builder.into(); - builder.translate(point(px(10.), px(200.))); + builder.translate(point(px(10.), px(100.))); builder.scale(0.9); let path = builder.build().unwrap(); lines.push((path, gpui::black().into())); @@ -167,10 +30,10 @@ impl PaintingViewer { let mut builder = PathBuilder::fill(); builder.add_polygon( &[ - point(px(150.), px(300.)), - point(px(200.), px(225.)), - point(px(200.), px(275.)), - point(px(250.), px(200.)), + point(px(150.), px(200.)), + point(px(200.), px(125.)), + point(px(200.), px(175.)), + point(px(250.), px(100.)), ], false, ); @@ -179,17 +42,17 @@ impl PaintingViewer { // draw a ⭐ let mut builder = PathBuilder::fill(); - builder.move_to(point(px(350.), px(200.))); - builder.line_to(point(px(370.), px(260.))); - builder.line_to(point(px(430.), px(260.))); - builder.line_to(point(px(380.), px(300.))); - builder.line_to(point(px(400.), px(360.))); - builder.line_to(point(px(350.), px(320.))); - builder.line_to(point(px(300.), px(360.))); - builder.line_to(point(px(320.), px(300.))); - builder.line_to(point(px(270.), px(260.))); - builder.line_to(point(px(330.), px(260.))); - builder.line_to(point(px(350.), px(200.))); + builder.move_to(point(px(350.), px(100.))); + builder.line_to(point(px(370.), px(160.))); + builder.line_to(point(px(430.), px(160.))); + builder.line_to(point(px(380.), px(200.))); + builder.line_to(point(px(400.), px(260.))); + builder.line_to(point(px(350.), px(220.))); + builder.line_to(point(px(300.), px(260.))); + builder.line_to(point(px(320.), px(200.))); + builder.line_to(point(px(270.), px(160.))); + builder.line_to(point(px(330.), px(160.))); + builder.line_to(point(px(350.), px(100.))); let path = builder.build().unwrap(); lines.push(( path, @@ -203,7 +66,7 @@ impl PaintingViewer { // draw linear gradient let square_bounds = Bounds { - origin: point(px(450.), px(200.)), + origin: point(px(450.), px(100.)), size: size(px(200.), px(80.)), }; let height = square_bounds.size.height; @@ -233,31 +96,31 @@ impl PaintingViewer { // draw a pie chart let center = point(px(96.), px(96.)); - let pie_center = point(px(775.), px(255.)); + let pie_center = point(px(775.), px(155.)); let segments = [ ( - point(px(871.), px(255.)), - point(px(747.), px(163.)), + point(px(871.), px(155.)), + point(px(747.), px(63.)), rgb(0x1374e9), ), ( - point(px(747.), px(163.)), - point(px(679.), px(263.)), + point(px(747.), px(63.)), + point(px(679.), px(163.)), rgb(0xe13527), ), ( - point(px(679.), px(263.)), - point(px(754.), px(349.)), + point(px(679.), px(163.)), + point(px(754.), px(249.)), rgb(0x0751ce), ), ( - point(px(754.), px(349.)), - point(px(854.), px(310.)), + point(px(754.), px(249.)), + point(px(854.), px(210.)), rgb(0x209742), ), ( - point(px(854.), px(310.)), - point(px(871.), px(255.)), + point(px(854.), px(210.)), + point(px(871.), px(155.)), rgb(0xfbc10a), ), ]; @@ -277,11 +140,11 @@ impl PaintingViewer { .with_line_width(1.) .with_line_join(lyon::path::LineJoin::Bevel); let mut builder = PathBuilder::stroke(px(1.)).with_style(PathStyle::Stroke(options)); - builder.move_to(point(px(40.), px(420.))); + builder.move_to(point(px(40.), px(320.))); for i in 1..50 { builder.line_to(point( px(40.0 + i as f32 * 10.0), - px(420.0 + (i as f32 * 10.0).sin() * 40.0), + px(320.0 + (i as f32 * 10.0).sin() * 40.0), )); } let path = builder.build().unwrap(); @@ -289,7 +152,6 @@ impl PaintingViewer { Self { default_lines: lines.clone(), - background_quads, lines: vec![], start: point(px(0.), px(0.)), dashed: false, @@ -323,7 +185,6 @@ fn button( impl Render for PaintingViewer { fn render(&mut self, _: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { let default_lines = self.default_lines.clone(); - let background_quads = self.background_quads.clone(); let lines = self.lines.clone(); let dashed = self.dashed; @@ -360,19 +221,6 @@ impl Render for PaintingViewer { canvas( move |_, _, _| {}, move |_, _, window, _| { - // First draw background quads - for (bounds, color) in background_quads.iter() { - window.paint_quad(quad( - *bounds, - px(0.), - *color, - px(0.), - gpui::transparent_black(), - Default::default(), - )); - } - - // Then draw the default paths on top for (path, color) in default_lines { window.paint_path(path, color); } @@ -455,10 +303,6 @@ fn main() { |window, cx| cx.new(|cx| PaintingViewer::new(window, cx)), ) .unwrap(); - cx.on_window_closed(|cx| { - cx.quit(); - }) - .detach(); cx.activate(true); }); } diff --git a/crates/gpui/examples/paths_bench.rs b/crates/gpui/examples/paths_bench.rs deleted file mode 100644 index a801889ae8..0000000000 --- a/crates/gpui/examples/paths_bench.rs +++ /dev/null @@ -1,92 +0,0 @@ -use gpui::{ - Application, Background, Bounds, ColorSpace, Context, Path, PathBuilder, Pixels, Render, - TitlebarOptions, Window, WindowBounds, WindowOptions, canvas, div, linear_color_stop, - linear_gradient, point, prelude::*, px, rgb, size, -}; - -const DEFAULT_WINDOW_WIDTH: Pixels = px(1024.0); -const DEFAULT_WINDOW_HEIGHT: Pixels = px(768.0); - -struct PaintingViewer { - default_lines: Vec<(Path<Pixels>, Background)>, - _painting: bool, -} - -impl PaintingViewer { - fn new(_window: &mut Window, _cx: &mut Context<Self>) -> Self { - let mut lines = vec![]; - - // draw a lightening bolt ⚡ - for _ in 0..2000 { - // draw a ⭐ - let mut builder = PathBuilder::fill(); - builder.move_to(point(px(350.), px(100.))); - builder.line_to(point(px(370.), px(160.))); - builder.line_to(point(px(430.), px(160.))); - builder.line_to(point(px(380.), px(200.))); - builder.line_to(point(px(400.), px(260.))); - builder.line_to(point(px(350.), px(220.))); - builder.line_to(point(px(300.), px(260.))); - builder.line_to(point(px(320.), px(200.))); - builder.line_to(point(px(270.), px(160.))); - builder.line_to(point(px(330.), px(160.))); - builder.line_to(point(px(350.), px(100.))); - let path = builder.build().unwrap(); - lines.push(( - path, - linear_gradient( - 180., - linear_color_stop(rgb(0xFACC15), 0.7), - linear_color_stop(rgb(0xD56D0C), 1.), - ) - .color_space(ColorSpace::Oklab), - )); - } - - Self { - default_lines: lines, - _painting: false, - } - } -} - -impl Render for PaintingViewer { - fn render(&mut self, window: &mut Window, _: &mut Context<Self>) -> impl IntoElement { - window.request_animation_frame(); - let lines = self.default_lines.clone(); - div().size_full().child( - canvas( - move |_, _, _| {}, - move |_, _, window, _| { - for (path, color) in lines { - window.paint_path(path, color); - } - }, - ) - .size_full(), - ) - } -} - -fn main() { - Application::new().run(|cx| { - cx.open_window( - WindowOptions { - titlebar: Some(TitlebarOptions { - title: Some("Vulkan".into()), - ..Default::default() - }), - focus: true, - window_bounds: Some(WindowBounds::Windowed(Bounds::centered( - None, - size(DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT), - cx, - ))), - ..Default::default() - }, - |window, cx| cx.new(|cx| PaintingViewer::new(window, cx)), - ) - .unwrap(); - cx.activate(true); - }); -} diff --git a/crates/gpui/examples/tab_stop.rs b/crates/gpui/examples/tab_stop.rs index 1f6500f3e6..9c58b52a5e 100644 --- a/crates/gpui/examples/tab_stop.rs +++ b/crates/gpui/examples/tab_stop.rs @@ -6,7 +6,6 @@ use gpui::{ actions!(example, [Tab, TabPrev]); struct Example { - focus_handle: FocusHandle, items: Vec<FocusHandle>, message: SharedString, } @@ -21,11 +20,8 @@ impl Example { cx.focus_handle().tab_index(2).tab_stop(true), ]; - let focus_handle = cx.focus_handle(); - window.focus(&focus_handle); - + window.focus(items.first().unwrap()); Self { - focus_handle, items, message: SharedString::from("Press `Tab`, `Shift-Tab` to switch focus."), } @@ -44,10 +40,6 @@ impl Example { impl Render for Example { fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { - fn tab_stop_style<T: Styled>(this: T) -> T { - this.border_3().border_color(gpui::blue()) - } - fn button(id: impl Into<ElementId>) -> Stateful<Div> { div() .id(id) @@ -60,13 +52,12 @@ impl Render for Example { .border_color(gpui::black()) .bg(gpui::black()) .text_color(gpui::white()) - .focus(tab_stop_style) + .focus(|this| this.border_color(gpui::blue())) .shadow_sm() } div() .id("app") - .track_focus(&self.focus_handle) .on_action(cx.listener(Self::on_tab)) .on_action(cx.listener(Self::on_tab_prev)) .size_full() @@ -95,7 +86,7 @@ impl Render for Example { .border_color(gpui::black()) .when( item_handle.tab_stop && item_handle.is_focused(window), - tab_stop_style, + |this| this.border_color(gpui::blue()), ) .map(|this| match item_handle.tab_stop { true => this diff --git a/crates/gpui/examples/text.rs b/crates/gpui/examples/text.rs index 1166bb2795..19214aebde 100644 --- a/crates/gpui/examples/text.rs +++ b/crates/gpui/examples/text.rs @@ -198,7 +198,7 @@ impl RenderOnce for CharacterGrid { "χ", "ψ", "∂", "а", "в", "Ж", "ж", "З", "з", "К", "к", "л", "м", "Н", "н", "Р", "р", "У", "у", "ф", "ч", "ь", "ы", "Э", "э", "Я", "я", "ij", "öẋ", ".,", "⣝⣑", "~", "*", "_", "^", "`", "'", "(", "{", "«", "#", "&", "@", "$", "¢", "%", "|", "?", "¶", "µ", - "❮", "<=", "!=", "==", "--", "++", "=>", "->", "🏀", "🎊", "😍", "❤️", "👍", "👎", + "❮", "<=", "!=", "==", "--", "++", "=>", "->", ]; let columns = 11; diff --git a/crates/gpui/src/color.rs b/crates/gpui/src/color.rs index 639c84c101..a16c8f46be 100644 --- a/crates/gpui/src/color.rs +++ b/crates/gpui/src/color.rs @@ -35,7 +35,6 @@ pub(crate) fn swap_rgba_pa_to_bgra(color: &mut [u8]) { /// An RGBA color #[derive(PartialEq, Clone, Copy, Default)] -#[repr(C)] pub struct Rgba { /// The red component of the color, in the range 0.0 to 1.0 pub r: f32, diff --git a/crates/gpui/src/elements/div.rs b/crates/gpui/src/elements/div.rs index fa47758581..4655c92409 100644 --- a/crates/gpui/src/elements/div.rs +++ b/crates/gpui/src/elements/div.rs @@ -1334,6 +1334,7 @@ impl Element for Div { } else if let Some(scroll_handle) = self.interactivity.tracked_scroll_handle.as_ref() { let mut state = scroll_handle.0.borrow_mut(); state.child_bounds = Vec::with_capacity(request_layout.child_layout_ids.len()); + state.bounds = bounds; for child_layout_id in &request_layout.child_layout_ids { let child_bounds = window.layout_bounds(*child_layout_id); child_min = child_min.min(&child_bounds.origin); @@ -1705,7 +1706,6 @@ impl Interactivity { if let Some(mut scroll_handle_state) = tracked_scroll_handle { scroll_handle_state.max_offset = scroll_max; - scroll_handle_state.bounds = bounds; } *scroll_offset @@ -3007,6 +3007,11 @@ impl ScrollHandle { self.0.borrow().bounds } + /// Set the bounds into which this child is painted + pub(super) fn set_bounds(&self, bounds: Bounds<Pixels>) { + self.0.borrow_mut().bounds = bounds; + } + /// Get the bounds for a specific child. pub fn bounds_for_item(&self, ix: usize) -> Option<Bounds<Pixels>> { self.0.borrow().child_bounds.get(ix).cloned() diff --git a/crates/gpui/src/elements/uniform_list.rs b/crates/gpui/src/elements/uniform_list.rs index cdf90d4eb8..2ee6e9827d 100644 --- a/crates/gpui/src/elements/uniform_list.rs +++ b/crates/gpui/src/elements/uniform_list.rs @@ -322,8 +322,9 @@ impl Element for UniformList { bounds.bottom_right() - point(border.right + padding.right, border.bottom), ); - let y_flipped = if let Some(scroll_handle) = &self.scroll_handle { - let scroll_state = scroll_handle.0.borrow(); + let y_flipped = if let Some(scroll_handle) = self.scroll_handle.as_mut() { + let mut scroll_state = scroll_handle.0.borrow_mut(); + scroll_state.base_handle.set_bounds(bounds); scroll_state.y_flipped } else { false diff --git a/crates/gpui/src/platform.rs b/crates/gpui/src/platform.rs index b495d70dfd..6f227f1d07 100644 --- a/crates/gpui/src/platform.rs +++ b/crates/gpui/src/platform.rs @@ -13,7 +13,8 @@ mod mac; any(target_os = "linux", target_os = "freebsd"), any(feature = "x11", feature = "wayland") ), - all(target_os = "macos", feature = "macos-blade") + target_os = "windows", + feature = "macos-blade" ))] mod blade; @@ -447,8 +448,6 @@ impl Tiling { #[derive(Debug, Copy, Clone, Eq, PartialEq, Default)] pub(crate) struct RequestFrameOptions { pub(crate) require_presentation: bool, - /// Force refresh of all rendering states when true - pub(crate) force_render: bool, } pub(crate) trait PlatformWindow: HasWindowHandle + HasDisplayHandle { @@ -810,6 +809,7 @@ pub(crate) struct AtlasTextureId { pub(crate) enum AtlasTextureKind { Monochrome = 0, Polychrome = 1, + Path = 2, } #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] diff --git a/crates/gpui/src/platform/blade/blade_atlas.rs b/crates/gpui/src/platform/blade/blade_atlas.rs index 74500ebf83..78ba52056a 100644 --- a/crates/gpui/src/platform/blade/blade_atlas.rs +++ b/crates/gpui/src/platform/blade/blade_atlas.rs @@ -10,6 +10,8 @@ use etagere::BucketedAtlasAllocator; use parking_lot::Mutex; use std::{borrow::Cow, ops, sync::Arc}; +pub(crate) const PATH_TEXTURE_FORMAT: gpu::TextureFormat = gpu::TextureFormat::R16Float; + pub(crate) struct BladeAtlas(Mutex<BladeAtlasState>); struct PendingUpload { @@ -25,6 +27,7 @@ struct BladeAtlasState { tiles_by_key: FxHashMap<AtlasKey, AtlasTile>, initializations: Vec<AtlasTextureId>, uploads: Vec<PendingUpload>, + path_sample_count: u32, } #[cfg(gles)] @@ -38,11 +41,13 @@ impl BladeAtlasState { } pub struct BladeTextureInfo { + pub size: gpu::Extent, pub raw_view: gpu::TextureView, + pub msaa_view: Option<gpu::TextureView>, } impl BladeAtlas { - pub(crate) fn new(gpu: &Arc<gpu::Context>) -> Self { + pub(crate) fn new(gpu: &Arc<gpu::Context>, path_sample_count: u32) -> Self { BladeAtlas(Mutex::new(BladeAtlasState { gpu: Arc::clone(gpu), upload_belt: BufferBelt::new(BufferBeltDescriptor { @@ -54,6 +59,7 @@ impl BladeAtlas { tiles_by_key: Default::default(), initializations: Vec::new(), uploads: Vec::new(), + path_sample_count, })) } @@ -61,6 +67,27 @@ impl BladeAtlas { self.0.lock().destroy(); } + pub(crate) fn clear_textures(&self, texture_kind: AtlasTextureKind) { + let mut lock = self.0.lock(); + let textures = &mut lock.storage[texture_kind]; + for texture in textures.iter_mut() { + texture.clear(); + } + } + + /// Allocate a rectangle and make it available for rendering immediately (without waiting for `before_frame`) + pub fn allocate_for_rendering( + &self, + size: Size<DevicePixels>, + texture_kind: AtlasTextureKind, + gpu_encoder: &mut gpu::CommandEncoder, + ) -> AtlasTile { + let mut lock = self.0.lock(); + let tile = lock.allocate(size, texture_kind); + lock.flush_initializations(gpu_encoder); + tile + } + pub fn before_frame(&self, gpu_encoder: &mut gpu::CommandEncoder) { let mut lock = self.0.lock(); lock.flush(gpu_encoder); @@ -74,8 +101,15 @@ impl BladeAtlas { pub fn get_texture_info(&self, id: AtlasTextureId) -> BladeTextureInfo { let lock = self.0.lock(); let texture = &lock.storage[id]; + let size = texture.allocator.size(); BladeTextureInfo { + size: gpu::Extent { + width: size.width as u32, + height: size.height as u32, + depth: 1, + }, raw_view: texture.raw_view, + msaa_view: texture.msaa_view, } } } @@ -166,8 +200,48 @@ impl BladeAtlasState { format = gpu::TextureFormat::Bgra8UnormSrgb; usage = gpu::TextureUsage::COPY | gpu::TextureUsage::RESOURCE; } + AtlasTextureKind::Path => { + format = PATH_TEXTURE_FORMAT; + usage = gpu::TextureUsage::COPY + | gpu::TextureUsage::RESOURCE + | gpu::TextureUsage::TARGET; + } } + // We currently only enable MSAA for path textures. + let (msaa, msaa_view) = if self.path_sample_count > 1 && kind == AtlasTextureKind::Path { + let msaa = self.gpu.create_texture(gpu::TextureDesc { + name: "msaa path texture", + format, + size: gpu::Extent { + width: size.width.into(), + height: size.height.into(), + depth: 1, + }, + array_layer_count: 1, + mip_level_count: 1, + sample_count: self.path_sample_count, + dimension: gpu::TextureDimension::D2, + usage: gpu::TextureUsage::TARGET, + external: None, + }); + + ( + Some(msaa), + Some(self.gpu.create_texture_view( + msaa, + gpu::TextureViewDesc { + name: "msaa texture view", + format, + dimension: gpu::ViewDimension::D2, + subresources: &Default::default(), + }, + )), + ) + } else { + (None, None) + }; + let raw = self.gpu.create_texture(gpu::TextureDesc { name: "atlas", format, @@ -205,6 +279,8 @@ impl BladeAtlasState { format, raw, raw_view, + msaa, + msaa_view, live_atlas_keys: 0, }; @@ -264,6 +340,7 @@ impl BladeAtlasState { struct BladeAtlasStorage { monochrome_textures: AtlasTextureList<BladeAtlasTexture>, polychrome_textures: AtlasTextureList<BladeAtlasTexture>, + path_textures: AtlasTextureList<BladeAtlasTexture>, } impl ops::Index<AtlasTextureKind> for BladeAtlasStorage { @@ -272,6 +349,7 @@ impl ops::Index<AtlasTextureKind> for BladeAtlasStorage { match kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, + crate::AtlasTextureKind::Path => &self.path_textures, } } } @@ -281,6 +359,7 @@ impl ops::IndexMut<AtlasTextureKind> for BladeAtlasStorage { match kind { crate::AtlasTextureKind::Monochrome => &mut self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &mut self.polychrome_textures, + crate::AtlasTextureKind::Path => &mut self.path_textures, } } } @@ -291,6 +370,7 @@ impl ops::Index<AtlasTextureId> for BladeAtlasStorage { let textures = match id.kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, + crate::AtlasTextureKind::Path => &self.path_textures, }; textures[id.index as usize].as_ref().unwrap() } @@ -304,6 +384,9 @@ impl BladeAtlasStorage { for mut texture in self.polychrome_textures.drain().flatten() { texture.destroy(gpu); } + for mut texture in self.path_textures.drain().flatten() { + texture.destroy(gpu); + } } } @@ -312,11 +395,17 @@ struct BladeAtlasTexture { allocator: BucketedAtlasAllocator, raw: gpu::Texture, raw_view: gpu::TextureView, + msaa: Option<gpu::Texture>, + msaa_view: Option<gpu::TextureView>, format: gpu::TextureFormat, live_atlas_keys: u32, } impl BladeAtlasTexture { + fn clear(&mut self) { + self.allocator.clear(); + } + fn allocate(&mut self, size: Size<DevicePixels>) -> Option<AtlasTile> { let allocation = self.allocator.allocate(size.into())?; let tile = AtlasTile { @@ -335,6 +424,12 @@ impl BladeAtlasTexture { fn destroy(&mut self, gpu: &gpu::Context) { gpu.destroy_texture(self.raw); gpu.destroy_texture_view(self.raw_view); + if let Some(msaa) = self.msaa { + gpu.destroy_texture(msaa); + } + if let Some(msaa_view) = self.msaa_view { + gpu.destroy_texture_view(msaa_view); + } } fn bytes_per_pixel(&self) -> u8 { diff --git a/crates/gpui/src/platform/blade/blade_renderer.rs b/crates/gpui/src/platform/blade/blade_renderer.rs index 2e18d2be22..cac47434ae 100644 --- a/crates/gpui/src/platform/blade/blade_renderer.rs +++ b/crates/gpui/src/platform/blade/blade_renderer.rs @@ -1,19 +1,24 @@ // Doing `if let` gives you nice scoping with passes/encoders #![allow(irrefutable_let_patterns)] -use super::{BladeAtlas, BladeContext}; +use super::{BladeAtlas, BladeContext, PATH_TEXTURE_FORMAT}; use crate::{ - Background, Bounds, DevicePixels, GpuSpecs, MonochromeSprite, Path, Point, PolychromeSprite, - PrimitiveBatch, Quad, ScaledPixels, Scene, Shadow, Size, Underline, + AtlasTextureKind, AtlasTile, Background, Bounds, ContentMask, DevicePixels, GpuSpecs, + MonochromeSprite, Path, PathId, PathVertex, PolychromeSprite, PrimitiveBatch, Quad, + ScaledPixels, Scene, Shadow, Size, Underline, }; use blade_graphics as gpu; use blade_util::{BufferBelt, BufferBeltDescriptor}; use bytemuck::{Pod, Zeroable}; +use collections::HashMap; #[cfg(target_os = "macos")] use media::core_video::CVMetalTextureCache; -use std::sync::Arc; +use std::{mem, sync::Arc}; const MAX_FRAME_TIME_MS: u32 = 10000; +// Use 4x MSAA, all devices support it. +// https://developer.apple.com/documentation/metal/mtldevice/1433355-supportstexturesamplecount +const DEFAULT_PATH_SAMPLE_COUNT: u32 = 4; #[repr(C)] #[derive(Clone, Copy, Pod, Zeroable)] @@ -109,15 +114,8 @@ struct ShaderSurfacesData { #[repr(C)] struct PathSprite { bounds: Bounds<ScaledPixels>, -} - -#[derive(Clone, Debug)] -#[repr(C)] -struct PathRasterizationVertex { - xy_position: Point<ScaledPixels>, - st_position: Point<f32>, color: Background, - bounds: Bounds<ScaledPixels>, + tile: AtlasTile, } struct BladePipelines { @@ -146,7 +144,10 @@ impl BladePipelines { shader.check_struct_size::<SurfaceParams>(); shader.check_struct_size::<Quad>(); shader.check_struct_size::<Shadow>(); - shader.check_struct_size::<PathRasterizationVertex>(); + assert_eq!( + mem::size_of::<PathVertex<ScaledPixels>>(), + shader.get_struct_size("PathVertex") as usize, + ); shader.check_struct_size::<PathSprite>(); shader.check_struct_size::<Underline>(); shader.check_struct_size::<MonochromeSprite>(); @@ -204,16 +205,9 @@ impl BladePipelines { }, depth_stencil: None, fragment: Some(shader.at("fs_path_rasterization")), - // The original implementation was using ADDITIVE blende mode, - // I don't know why - // color_targets: &[gpu::ColorTargetState { - // format: PATH_TEXTURE_FORMAT, - // blend: Some(gpu::BlendState::ADDITIVE), - // write_mask: gpu::ColorWrites::default(), - // }], color_targets: &[gpu::ColorTargetState { - format: surface_info.format, - blend: Some(gpu::BlendState::PREMULTIPLIED_ALPHA_BLENDING), + format: PATH_TEXTURE_FORMAT, + blend: Some(gpu::BlendState::ADDITIVE), write_mask: gpu::ColorWrites::default(), }], multisample_state: gpu::MultisampleState { @@ -232,14 +226,7 @@ impl BladePipelines { }, depth_stencil: None, fragment: Some(shader.at("fs_path")), - color_targets: &[gpu::ColorTargetState { - format: surface_info.format, - blend: Some(gpu::BlendState { - color: gpu::BlendComponent::OVER, - alpha: gpu::BlendComponent::ADDITIVE, - }), - write_mask: gpu::ColorWrites::default(), - }], + color_targets, multisample_state: gpu::MultisampleState::default(), }), underlines: gpu.create_render_pipeline(gpu::RenderPipelineDesc { @@ -330,15 +317,12 @@ pub struct BladeRenderer { last_sync_point: Option<gpu::SyncPoint>, pipelines: BladePipelines, instance_belt: BufferBelt, + path_tiles: HashMap<PathId, AtlasTile>, atlas: Arc<BladeAtlas>, atlas_sampler: gpu::Sampler, #[cfg(target_os = "macos")] core_video_texture_cache: CVMetalTextureCache, path_sample_count: u32, - path_intermediate_texture: gpu::Texture, - path_intermediate_texture_view: gpu::TextureView, - path_intermediate_msaa_texture: Option<gpu::Texture>, - path_intermediate_msaa_texture_view: Option<gpu::TextureView>, } impl BladeRenderer { @@ -368,43 +352,21 @@ impl BladeRenderer { let path_sample_count = std::env::var("ZED_PATH_SAMPLE_COUNT") .ok() .and_then(|v| v.parse().ok()) - .or_else(|| { - [4, 2, 1] - .into_iter() - .find(|count| context.gpu.supports_texture_sample_count(*count)) - }) - .unwrap_or(1); + .unwrap_or(DEFAULT_PATH_SAMPLE_COUNT); let pipelines = BladePipelines::new(&context.gpu, surface.info(), path_sample_count); let instance_belt = BufferBelt::new(BufferBeltDescriptor { memory: gpu::Memory::Shared, min_chunk_size: 0x1000, alignment: 0x40, // Vulkan `minStorageBufferOffsetAlignment` on Intel Xe }); - let atlas = Arc::new(BladeAtlas::new(&context.gpu)); + let atlas = Arc::new(BladeAtlas::new(&context.gpu, path_sample_count)); let atlas_sampler = context.gpu.create_sampler(gpu::SamplerDesc { - name: "path rasterization sampler", + name: "atlas", mag_filter: gpu::FilterMode::Linear, min_filter: gpu::FilterMode::Linear, ..Default::default() }); - let (path_intermediate_texture, path_intermediate_texture_view) = - create_path_intermediate_texture( - &context.gpu, - surface.info().format, - config.size.width, - config.size.height, - ); - let (path_intermediate_msaa_texture, path_intermediate_msaa_texture_view) = - create_msaa_texture_if_needed( - &context.gpu, - surface.info().format, - config.size.width, - config.size.height, - path_sample_count, - ) - .unzip(); - #[cfg(target_os = "macos")] let core_video_texture_cache = unsafe { CVMetalTextureCache::new( @@ -421,15 +383,12 @@ impl BladeRenderer { last_sync_point: None, pipelines, instance_belt, + path_tiles: HashMap::default(), atlas, atlas_sampler, #[cfg(target_os = "macos")] core_video_texture_cache, path_sample_count, - path_intermediate_texture, - path_intermediate_texture_view, - path_intermediate_msaa_texture, - path_intermediate_msaa_texture_view, }) } @@ -482,35 +441,6 @@ impl BladeRenderer { self.surface_config.size = gpu_size; self.gpu .reconfigure_surface(&mut self.surface, self.surface_config); - self.gpu.destroy_texture(self.path_intermediate_texture); - self.gpu - .destroy_texture_view(self.path_intermediate_texture_view); - if let Some(msaa_texture) = self.path_intermediate_msaa_texture { - self.gpu.destroy_texture(msaa_texture); - } - if let Some(msaa_view) = self.path_intermediate_msaa_texture_view { - self.gpu.destroy_texture_view(msaa_view); - } - let (path_intermediate_texture, path_intermediate_texture_view) = - create_path_intermediate_texture( - &self.gpu, - self.surface.info().format, - gpu_size.width, - gpu_size.height, - ); - self.path_intermediate_texture = path_intermediate_texture; - self.path_intermediate_texture_view = path_intermediate_texture_view; - let (path_intermediate_msaa_texture, path_intermediate_msaa_texture_view) = - create_msaa_texture_if_needed( - &self.gpu, - self.surface.info().format, - gpu_size.width, - gpu_size.height, - self.path_sample_count, - ) - .unzip(); - self.path_intermediate_msaa_texture = path_intermediate_msaa_texture; - self.path_intermediate_msaa_texture_view = path_intermediate_msaa_texture_view; } } @@ -561,63 +491,76 @@ impl BladeRenderer { } #[profiling::function] - fn draw_paths_to_intermediate( - &mut self, - paths: &[Path<ScaledPixels>], - width: f32, - height: f32, - ) { - self.command_encoder - .init_texture(self.path_intermediate_texture); - if let Some(msaa_texture) = self.path_intermediate_msaa_texture { - self.command_encoder.init_texture(msaa_texture); + fn rasterize_paths(&mut self, paths: &[Path<ScaledPixels>]) { + self.path_tiles.clear(); + let mut vertices_by_texture_id = HashMap::default(); + + for path in paths { + let clipped_bounds = path + .bounds + .intersect(&path.content_mask.bounds) + .map_origin(|origin| origin.floor()) + .map_size(|size| size.ceil()); + let tile = self.atlas.allocate_for_rendering( + clipped_bounds.size.map(Into::into), + AtlasTextureKind::Path, + &mut self.command_encoder, + ); + vertices_by_texture_id + .entry(tile.texture_id) + .or_insert(Vec::new()) + .extend(path.vertices.iter().map(|vertex| PathVertex { + xy_position: vertex.xy_position - clipped_bounds.origin + + tile.bounds.origin.map(Into::into), + st_position: vertex.st_position, + content_mask: ContentMask { + bounds: tile.bounds.map(Into::into), + }, + })); + self.path_tiles.insert(path.id, tile); } - let target = if let Some(msaa_view) = self.path_intermediate_msaa_texture_view { - gpu::RenderTarget { - view: msaa_view, - init_op: gpu::InitOp::Clear(gpu::TextureColor::TransparentBlack), - finish_op: gpu::FinishOp::ResolveTo(self.path_intermediate_texture_view), - } - } else { - gpu::RenderTarget { - view: self.path_intermediate_texture_view, - init_op: gpu::InitOp::Clear(gpu::TextureColor::TransparentBlack), - finish_op: gpu::FinishOp::Store, - } - }; - if let mut pass = self.command_encoder.render( - "rasterize paths", - gpu::RenderTargetSet { - colors: &[target], - depth_stencil: None, - }, - ) { + for (texture_id, vertices) in vertices_by_texture_id { + let tex_info = self.atlas.get_texture_info(texture_id); let globals = GlobalParams { - viewport_size: [width, height], + viewport_size: [tex_info.size.width as f32, tex_info.size.height as f32], premultiplied_alpha: 0, pad: 0, }; - let mut encoder = pass.with(&self.pipelines.path_rasterization); - let mut vertices = Vec::new(); - for path in paths { - vertices.extend(path.vertices.iter().map(|v| PathRasterizationVertex { - xy_position: v.xy_position, - st_position: v.st_position, - color: path.color, - bounds: path.bounds.intersect(&path.content_mask.bounds), - })); - } let vertex_buf = unsafe { self.instance_belt.alloc_typed(&vertices, &self.gpu) }; - encoder.bind( - 0, - &ShaderPathRasterizationData { - globals, - b_path_vertices: vertex_buf, + let frame_view = tex_info.raw_view; + let color_target = if let Some(msaa_view) = tex_info.msaa_view { + gpu::RenderTarget { + view: msaa_view, + init_op: gpu::InitOp::Clear(gpu::TextureColor::OpaqueBlack), + finish_op: gpu::FinishOp::ResolveTo(frame_view), + } + } else { + gpu::RenderTarget { + view: frame_view, + init_op: gpu::InitOp::Clear(gpu::TextureColor::OpaqueBlack), + finish_op: gpu::FinishOp::Store, + } + }; + + if let mut pass = self.command_encoder.render( + "paths", + gpu::RenderTargetSet { + colors: &[color_target], + depth_stencil: None, }, - ); - encoder.draw(0, vertices.len() as u32, 0, 1); + ) { + let mut encoder = pass.with(&self.pipelines.path_rasterization); + encoder.bind( + 0, + &ShaderPathRasterizationData { + globals, + b_path_vertices: vertex_buf, + }, + ); + encoder.draw(0, vertices.len() as u32, 0, 1); + } } } @@ -629,20 +572,12 @@ impl BladeRenderer { self.gpu.destroy_command_encoder(&mut self.command_encoder); self.pipelines.destroy(&self.gpu); self.gpu.destroy_surface(&mut self.surface); - self.gpu.destroy_texture(self.path_intermediate_texture); - self.gpu - .destroy_texture_view(self.path_intermediate_texture_view); - if let Some(msaa_texture) = self.path_intermediate_msaa_texture { - self.gpu.destroy_texture(msaa_texture); - } - if let Some(msaa_view) = self.path_intermediate_msaa_texture_view { - self.gpu.destroy_texture_view(msaa_view); - } } pub fn draw(&mut self, scene: &Scene) { self.command_encoder.start(); self.atlas.before_frame(&mut self.command_encoder); + self.rasterize_paths(scene.paths()); let frame = { profiling::scope!("acquire frame"); @@ -662,7 +597,7 @@ impl BladeRenderer { pad: 0, }; - let mut pass = self.command_encoder.render( + if let mut pass = self.command_encoder.render( "main", gpu::RenderTargetSet { colors: &[gpu::RenderTarget { @@ -672,235 +607,209 @@ impl BladeRenderer { }], depth_stencil: None, }, - ); + ) { + profiling::scope!("render pass"); + for batch in scene.batches() { + match batch { + PrimitiveBatch::Quads(quads) => { + let instance_buf = + unsafe { self.instance_belt.alloc_typed(quads, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.quads); + encoder.bind( + 0, + &ShaderQuadsData { + globals, + b_quads: instance_buf, + }, + ); + encoder.draw(0, 4, 0, quads.len() as u32); + } + PrimitiveBatch::Shadows(shadows) => { + let instance_buf = + unsafe { self.instance_belt.alloc_typed(shadows, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.shadows); + encoder.bind( + 0, + &ShaderShadowsData { + globals, + b_shadows: instance_buf, + }, + ); + encoder.draw(0, 4, 0, shadows.len() as u32); + } + PrimitiveBatch::Paths(paths) => { + let mut encoder = pass.with(&self.pipelines.paths); + // todo(linux): group by texture ID + for path in paths { + let tile = &self.path_tiles[&path.id]; + let tex_info = self.atlas.get_texture_info(tile.texture_id); + let origin = path.bounds.intersect(&path.content_mask.bounds).origin; + let sprites = [PathSprite { + bounds: Bounds { + origin: origin.map(|p| p.floor()), + size: tile.bounds.size.map(Into::into), + }, + color: path.color, + tile: (*tile).clone(), + }]; - profiling::scope!("render pass"); - for batch in scene.batches() { - match batch { - PrimitiveBatch::Quads(quads) => { - let instance_buf = unsafe { self.instance_belt.alloc_typed(quads, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.quads); - encoder.bind( - 0, - &ShaderQuadsData { - globals, - b_quads: instance_buf, - }, - ); - encoder.draw(0, 4, 0, quads.len() as u32); - } - PrimitiveBatch::Shadows(shadows) => { - let instance_buf = - unsafe { self.instance_belt.alloc_typed(shadows, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.shadows); - encoder.bind( - 0, - &ShaderShadowsData { - globals, - b_shadows: instance_buf, - }, - ); - encoder.draw(0, 4, 0, shadows.len() as u32); - } - PrimitiveBatch::Paths(paths) => { - let Some(first_path) = paths.first() else { - continue; - }; - drop(pass); - self.draw_paths_to_intermediate( - paths, - self.surface_config.size.width as f32, - self.surface_config.size.height as f32, - ); - pass = self.command_encoder.render( - "main", - gpu::RenderTargetSet { - colors: &[gpu::RenderTarget { - view: frame.texture_view(), - init_op: gpu::InitOp::Load, - finish_op: gpu::FinishOp::Store, - }], - depth_stencil: None, - }, - ); - let mut encoder = pass.with(&self.pipelines.paths); - // When copying paths from the intermediate texture to the drawable, - // each pixel must only be copied once, in case of transparent paths. - // - // If all paths have the same draw order, then their bounds are all - // disjoint, so we can copy each path's bounds individually. If this - // batch combines different draw orders, we perform a single copy - // for a minimal spanning rect. - let sprites = if paths.last().unwrap().order == first_path.order { - paths - .iter() - .map(|path| PathSprite { - bounds: path.bounds, - }) - .collect() - } else { - let mut bounds = first_path.bounds; - for path in paths.iter().skip(1) { - bounds = bounds.union(&path.bounds); + let instance_buf = + unsafe { self.instance_belt.alloc_typed(&sprites, &self.gpu) }; + encoder.bind( + 0, + &ShaderPathsData { + globals, + t_sprite: tex_info.raw_view, + s_sprite: self.atlas_sampler, + b_path_sprites: instance_buf, + }, + ); + encoder.draw(0, 4, 0, sprites.len() as u32); } - vec![PathSprite { bounds }] - }; - let instance_buf = - unsafe { self.instance_belt.alloc_typed(&sprites, &self.gpu) }; - encoder.bind( - 0, - &ShaderPathsData { - globals, - t_sprite: self.path_intermediate_texture_view, - s_sprite: self.atlas_sampler, - b_path_sprites: instance_buf, - }, - ); - encoder.draw(0, 4, 0, sprites.len() as u32); - } - PrimitiveBatch::Underlines(underlines) => { - let instance_buf = - unsafe { self.instance_belt.alloc_typed(underlines, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.underlines); - encoder.bind( - 0, - &ShaderUnderlinesData { - globals, - b_underlines: instance_buf, - }, - ); - encoder.draw(0, 4, 0, underlines.len() as u32); - } - PrimitiveBatch::MonochromeSprites { - texture_id, - sprites, - } => { - let tex_info = self.atlas.get_texture_info(texture_id); - let instance_buf = - unsafe { self.instance_belt.alloc_typed(sprites, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.mono_sprites); - encoder.bind( - 0, - &ShaderMonoSpritesData { - globals, - t_sprite: tex_info.raw_view, - s_sprite: self.atlas_sampler, - b_mono_sprites: instance_buf, - }, - ); - encoder.draw(0, 4, 0, sprites.len() as u32); - } - PrimitiveBatch::PolychromeSprites { - texture_id, - sprites, - } => { - let tex_info = self.atlas.get_texture_info(texture_id); - let instance_buf = - unsafe { self.instance_belt.alloc_typed(sprites, &self.gpu) }; - let mut encoder = pass.with(&self.pipelines.poly_sprites); - encoder.bind( - 0, - &ShaderPolySpritesData { - globals, - t_sprite: tex_info.raw_view, - s_sprite: self.atlas_sampler, - b_poly_sprites: instance_buf, - }, - ); - encoder.draw(0, 4, 0, sprites.len() as u32); - } - PrimitiveBatch::Surfaces(surfaces) => { - let mut _encoder = pass.with(&self.pipelines.surfaces); + } + PrimitiveBatch::Underlines(underlines) => { + let instance_buf = + unsafe { self.instance_belt.alloc_typed(underlines, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.underlines); + encoder.bind( + 0, + &ShaderUnderlinesData { + globals, + b_underlines: instance_buf, + }, + ); + encoder.draw(0, 4, 0, underlines.len() as u32); + } + PrimitiveBatch::MonochromeSprites { + texture_id, + sprites, + } => { + let tex_info = self.atlas.get_texture_info(texture_id); + let instance_buf = + unsafe { self.instance_belt.alloc_typed(sprites, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.mono_sprites); + encoder.bind( + 0, + &ShaderMonoSpritesData { + globals, + t_sprite: tex_info.raw_view, + s_sprite: self.atlas_sampler, + b_mono_sprites: instance_buf, + }, + ); + encoder.draw(0, 4, 0, sprites.len() as u32); + } + PrimitiveBatch::PolychromeSprites { + texture_id, + sprites, + } => { + let tex_info = self.atlas.get_texture_info(texture_id); + let instance_buf = + unsafe { self.instance_belt.alloc_typed(sprites, &self.gpu) }; + let mut encoder = pass.with(&self.pipelines.poly_sprites); + encoder.bind( + 0, + &ShaderPolySpritesData { + globals, + t_sprite: tex_info.raw_view, + s_sprite: self.atlas_sampler, + b_poly_sprites: instance_buf, + }, + ); + encoder.draw(0, 4, 0, sprites.len() as u32); + } + PrimitiveBatch::Surfaces(surfaces) => { + let mut _encoder = pass.with(&self.pipelines.surfaces); - for surface in surfaces { - #[cfg(not(target_os = "macos"))] - { - let _ = surface; - continue; - }; + for surface in surfaces { + #[cfg(not(target_os = "macos"))] + { + let _ = surface; + continue; + }; - #[cfg(target_os = "macos")] - { - let (t_y, t_cb_cr) = unsafe { - use core_foundation::base::TCFType as _; - use std::ptr; + #[cfg(target_os = "macos")] + { + let (t_y, t_cb_cr) = unsafe { + use core_foundation::base::TCFType as _; + use std::ptr; - assert_eq!( + assert_eq!( surface.image_buffer.get_pixel_format(), core_video::pixel_buffer::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange ); - let y_texture = self - .core_video_texture_cache - .create_texture_from_image( - surface.image_buffer.as_concrete_TypeRef(), - ptr::null(), - metal::MTLPixelFormat::R8Unorm, - surface.image_buffer.get_width_of_plane(0), - surface.image_buffer.get_height_of_plane(0), - 0, - ) - .unwrap(); - let cb_cr_texture = self - .core_video_texture_cache - .create_texture_from_image( - surface.image_buffer.as_concrete_TypeRef(), - ptr::null(), - metal::MTLPixelFormat::RG8Unorm, - surface.image_buffer.get_width_of_plane(1), - surface.image_buffer.get_height_of_plane(1), - 1, - ) - .unwrap(); - ( - gpu::TextureView::from_metal_texture( - &objc2::rc::Retained::retain( - foreign_types::ForeignTypeRef::as_ptr( - y_texture.as_texture_ref(), - ) - as *mut objc2::runtime::ProtocolObject< - dyn objc2_metal::MTLTexture, - >, + let y_texture = self + .core_video_texture_cache + .create_texture_from_image( + surface.image_buffer.as_concrete_TypeRef(), + ptr::null(), + metal::MTLPixelFormat::R8Unorm, + surface.image_buffer.get_width_of_plane(0), + surface.image_buffer.get_height_of_plane(0), + 0, ) - .unwrap(), - gpu::TexelAspects::COLOR, - ), - gpu::TextureView::from_metal_texture( - &objc2::rc::Retained::retain( - foreign_types::ForeignTypeRef::as_ptr( - cb_cr_texture.as_texture_ref(), - ) - as *mut objc2::runtime::ProtocolObject< - dyn objc2_metal::MTLTexture, - >, + .unwrap(); + let cb_cr_texture = self + .core_video_texture_cache + .create_texture_from_image( + surface.image_buffer.as_concrete_TypeRef(), + ptr::null(), + metal::MTLPixelFormat::RG8Unorm, + surface.image_buffer.get_width_of_plane(1), + surface.image_buffer.get_height_of_plane(1), + 1, ) - .unwrap(), - gpu::TexelAspects::COLOR, - ), - ) - }; + .unwrap(); + ( + gpu::TextureView::from_metal_texture( + &objc2::rc::Retained::retain( + foreign_types::ForeignTypeRef::as_ptr( + y_texture.as_texture_ref(), + ) + as *mut objc2::runtime::ProtocolObject< + dyn objc2_metal::MTLTexture, + >, + ) + .unwrap(), + gpu::TexelAspects::COLOR, + ), + gpu::TextureView::from_metal_texture( + &objc2::rc::Retained::retain( + foreign_types::ForeignTypeRef::as_ptr( + cb_cr_texture.as_texture_ref(), + ) + as *mut objc2::runtime::ProtocolObject< + dyn objc2_metal::MTLTexture, + >, + ) + .unwrap(), + gpu::TexelAspects::COLOR, + ), + ) + }; - _encoder.bind( - 0, - &ShaderSurfacesData { - globals, - surface_locals: SurfaceParams { - bounds: surface.bounds.into(), - content_mask: surface.content_mask.bounds.into(), + _encoder.bind( + 0, + &ShaderSurfacesData { + globals, + surface_locals: SurfaceParams { + bounds: surface.bounds.into(), + content_mask: surface.content_mask.bounds.into(), + }, + t_y, + t_cb_cr, + s_surface: self.atlas_sampler, }, - t_y, - t_cb_cr, - s_surface: self.atlas_sampler, - }, - ); + ); - _encoder.draw(0, 4, 0, 1); + _encoder.draw(0, 4, 0, 1); + } } } } } } - drop(pass); self.command_encoder.present(frame); let sync_point = self.gpu.submit(&mut self.command_encoder); @@ -908,79 +817,9 @@ impl BladeRenderer { profiling::scope!("finish"); self.instance_belt.flush(&sync_point); self.atlas.after_frame(&sync_point); + self.atlas.clear_textures(AtlasTextureKind::Path); self.wait_for_gpu(); self.last_sync_point = Some(sync_point); } } - -fn create_path_intermediate_texture( - gpu: &gpu::Context, - format: gpu::TextureFormat, - width: u32, - height: u32, -) -> (gpu::Texture, gpu::TextureView) { - let texture = gpu.create_texture(gpu::TextureDesc { - name: "path intermediate", - format, - size: gpu::Extent { - width, - height, - depth: 1, - }, - array_layer_count: 1, - mip_level_count: 1, - sample_count: 1, - dimension: gpu::TextureDimension::D2, - usage: gpu::TextureUsage::COPY | gpu::TextureUsage::RESOURCE | gpu::TextureUsage::TARGET, - external: None, - }); - let texture_view = gpu.create_texture_view( - texture, - gpu::TextureViewDesc { - name: "path intermediate view", - format, - dimension: gpu::ViewDimension::D2, - subresources: &Default::default(), - }, - ); - (texture, texture_view) -} - -fn create_msaa_texture_if_needed( - gpu: &gpu::Context, - format: gpu::TextureFormat, - width: u32, - height: u32, - sample_count: u32, -) -> Option<(gpu::Texture, gpu::TextureView)> { - if sample_count <= 1 { - return None; - } - let texture_msaa = gpu.create_texture(gpu::TextureDesc { - name: "path intermediate msaa", - format, - size: gpu::Extent { - width, - height, - depth: 1, - }, - array_layer_count: 1, - mip_level_count: 1, - sample_count, - dimension: gpu::TextureDimension::D2, - usage: gpu::TextureUsage::TARGET, - external: None, - }); - let texture_view_msaa = gpu.create_texture_view( - texture_msaa, - gpu::TextureViewDesc { - name: "path intermediate msaa view", - format, - dimension: gpu::ViewDimension::D2, - subresources: &Default::default(), - }, - ); - - Some((texture_msaa, texture_view_msaa)) -} diff --git a/crates/gpui/src/platform/blade/shaders.wgsl b/crates/gpui/src/platform/blade/shaders.wgsl index b1ffb1812e..0b34a0eea3 100644 --- a/crates/gpui/src/platform/blade/shaders.wgsl +++ b/crates/gpui/src/platform/blade/shaders.wgsl @@ -924,19 +924,16 @@ fn fs_shadow(input: ShadowVarying) -> @location(0) vec4<f32> { // --- path rasterization --- // -struct PathRasterizationVertex { +struct PathVertex { xy_position: vec2<f32>, st_position: vec2<f32>, - color: Background, - bounds: Bounds, + content_mask: Bounds, } - -var<storage, read> b_path_vertices: array<PathRasterizationVertex>; +var<storage, read> b_path_vertices: array<PathVertex>; struct PathRasterizationVarying { @builtin(position) position: vec4<f32>, @location(0) st_position: vec2<f32>, - @location(1) vertex_id: u32, //TODO: use `clip_distance` once Naga supports it @location(3) clip_distances: vec4<f32>, } @@ -948,54 +945,40 @@ fn vs_path_rasterization(@builtin(vertex_index) vertex_id: u32) -> PathRasteriza var out = PathRasterizationVarying(); out.position = to_device_position_impl(v.xy_position); out.st_position = v.st_position; - out.vertex_id = vertex_id; - out.clip_distances = distance_from_clip_rect_impl(v.xy_position, v.bounds); + out.clip_distances = distance_from_clip_rect_impl(v.xy_position, v.content_mask); return out; } @fragment -fn fs_path_rasterization(input: PathRasterizationVarying) -> @location(0) vec4<f32> { +fn fs_path_rasterization(input: PathRasterizationVarying) -> @location(0) f32 { let dx = dpdx(input.st_position); let dy = dpdy(input.st_position); if (any(input.clip_distances < vec4<f32>(0.0))) { - return vec4<f32>(0.0); + return 0.0; } - let v = b_path_vertices[input.vertex_id]; - let background = v.color; - let bounds = v.bounds; - - var alpha: f32; - if (length(vec2<f32>(dx.x, dy.x)) < 0.001) { - // If the gradient is too small, return a solid color. - alpha = 1.0; - } else { - let gradient = 2.0 * input.st_position.xx * vec2<f32>(dx.x, dy.x) - vec2<f32>(dx.y, dy.y); - let f = input.st_position.x * input.st_position.x - input.st_position.y; - let distance = f / length(gradient); - alpha = saturate(0.5 - distance); - } - let gradient_color = prepare_gradient_color( - background.tag, - background.color_space, - background.solid, - background.colors, - ); - let color = gradient_color(background, input.position.xy, bounds, - gradient_color.solid, gradient_color.color0, gradient_color.color1); - return vec4<f32>(color.rgb * color.a * alpha, color.a * alpha); + let gradient = 2.0 * input.st_position.xx * vec2<f32>(dx.x, dy.x) - vec2<f32>(dx.y, dy.y); + let f = input.st_position.x * input.st_position.x - input.st_position.y; + let distance = f / length(gradient); + return saturate(0.5 - distance); } // --- paths --- // struct PathSprite { bounds: Bounds, + color: Background, + tile: AtlasTile, } var<storage, read> b_path_sprites: array<PathSprite>; struct PathVarying { @builtin(position) position: vec4<f32>, - @location(0) texture_coords: vec2<f32>, + @location(0) tile_position: vec2<f32>, + @location(1) @interpolate(flat) instance_id: u32, + @location(2) @interpolate(flat) color_solid: vec4<f32>, + @location(3) @interpolate(flat) color0: vec4<f32>, + @location(4) @interpolate(flat) color1: vec4<f32>, } @vertex @@ -1003,22 +986,33 @@ fn vs_path(@builtin(vertex_index) vertex_id: u32, @builtin(instance_index) insta let unit_vertex = vec2<f32>(f32(vertex_id & 1u), 0.5 * f32(vertex_id & 2u)); let sprite = b_path_sprites[instance_id]; // Don't apply content mask because it was already accounted for when rasterizing the path. - let device_position = to_device_position(unit_vertex, sprite.bounds); - // For screen-space intermediate texture, convert screen position to texture coordinates - let screen_position = sprite.bounds.origin + unit_vertex * sprite.bounds.size; - let texture_coords = screen_position / globals.viewport_size; var out = PathVarying(); - out.position = device_position; - out.texture_coords = texture_coords; + out.position = to_device_position(unit_vertex, sprite.bounds); + out.tile_position = to_tile_position(unit_vertex, sprite.tile); + out.instance_id = instance_id; + let gradient = prepare_gradient_color( + sprite.color.tag, + sprite.color.color_space, + sprite.color.solid, + sprite.color.colors + ); + out.color_solid = gradient.solid; + out.color0 = gradient.color0; + out.color1 = gradient.color1; return out; } @fragment fn fs_path(input: PathVarying) -> @location(0) vec4<f32> { - let sample = textureSample(t_sprite, s_sprite, input.texture_coords); - return sample; + let sample = textureSample(t_sprite, s_sprite, input.tile_position).r; + let mask = 1.0 - abs(1.0 - sample % 2.0); + let sprite = b_path_sprites[input.instance_id]; + let background = sprite.color; + let color = gradient_color(background, input.position.xy, sprite.bounds, + input.color_solid, input.color0, input.color1); + return blend_color(color, mask); } // --- underlines --- // diff --git a/crates/gpui/src/platform/linux/wayland/window.rs b/crates/gpui/src/platform/linux/wayland/window.rs index 2b2207e22c..255ae9c372 100644 --- a/crates/gpui/src/platform/linux/wayland/window.rs +++ b/crates/gpui/src/platform/linux/wayland/window.rs @@ -111,7 +111,7 @@ pub struct WaylandWindowState { resize_throttle: bool, in_progress_window_controls: Option<WindowControls>, window_controls: WindowControls, - client_inset: Option<Pixels>, + inset: Option<Pixels>, } #[derive(Clone)] @@ -186,7 +186,7 @@ impl WaylandWindowState { hovered: false, in_progress_window_controls: None, window_controls: WindowControls::default(), - client_inset: None, + inset: None, }) } @@ -211,13 +211,6 @@ impl WaylandWindowState { self.display = current_output; scale } - - pub fn inset(&self) -> Pixels { - match self.decorations { - WindowDecorations::Server => px(0.0), - WindowDecorations::Client => self.client_inset.unwrap_or(px(0.0)), - } - } } pub(crate) struct WaylandWindow(pub WaylandWindowStatePtr); @@ -387,7 +380,7 @@ impl WaylandWindowStatePtr { configure.size = if got_unmaximized { Some(state.window_bounds.size) } else { - compute_outer_size(state.inset(), configure.size, state.tiling) + compute_outer_size(state.inset, configure.size, state.tiling) }; if let Some(size) = configure.size { state.window_bounds = Bounds { @@ -407,7 +400,7 @@ impl WaylandWindowStatePtr { let window_geometry = inset_by_tiling( state.bounds.map_origin(|_| px(0.0)), - state.inset(), + state.inset.unwrap_or(px(0.0)), state.tiling, ) .map(|v| v.0 as i32) @@ -825,7 +818,7 @@ impl PlatformWindow for WaylandWindow { } else if state.maximized { WindowBounds::Maximized(state.window_bounds) } else { - let inset = state.inset(); + let inset = state.inset.unwrap_or(px(0.)); drop(state); WindowBounds::Windowed(self.bounds().inset(inset)) } @@ -1080,8 +1073,8 @@ impl PlatformWindow for WaylandWindow { fn set_client_inset(&self, inset: Pixels) { let mut state = self.borrow_mut(); - if Some(inset) != state.client_inset { - state.client_inset = Some(inset); + if Some(inset) != state.inset { + state.inset = Some(inset); update_window(state); } } @@ -1101,7 +1094,9 @@ fn update_window(mut state: RefMut<WaylandWindowState>) { state.renderer.update_transparency(!opaque); let mut opaque_area = state.window_bounds.map(|v| v.0 as i32); - opaque_area.inset(state.inset().0 as i32); + if let Some(inset) = state.inset { + opaque_area.inset(inset.0 as i32); + } let region = state .globals @@ -1174,10 +1169,12 @@ impl ResizeEdge { /// updating to account for the client decorations. But that's not the area we want to render /// to, due to our intrusize CSD. So, here we calculate the 'actual' size, by adding back in the insets fn compute_outer_size( - inset: Pixels, + inset: Option<Pixels>, new_size: Option<Size<Pixels>>, tiling: Tiling, ) -> Option<Size<Pixels>> { + let Some(inset) = inset else { return new_size }; + new_size.map(|mut new_size| { if !tiling.top { new_size.height += inset; diff --git a/crates/gpui/src/platform/linux/x11/client.rs b/crates/gpui/src/platform/linux/x11/client.rs index 573e4addf7..16a7a768e2 100644 --- a/crates/gpui/src/platform/linux/x11/client.rs +++ b/crates/gpui/src/platform/linux/x11/client.rs @@ -1795,7 +1795,6 @@ impl X11ClientState { drop(state); window.refresh(RequestFrameOptions { require_presentation: expose_event_received, - force_render: false, }); } xcb_connection diff --git a/crates/gpui/src/platform/mac/metal_atlas.rs b/crates/gpui/src/platform/mac/metal_atlas.rs index 5d2d8e63e0..366f2dcc3c 100644 --- a/crates/gpui/src/platform/mac/metal_atlas.rs +++ b/crates/gpui/src/platform/mac/metal_atlas.rs @@ -13,25 +13,53 @@ use std::borrow::Cow; pub(crate) struct MetalAtlas(Mutex<MetalAtlasState>); impl MetalAtlas { - pub(crate) fn new(device: Device) -> Self { + pub(crate) fn new(device: Device, path_sample_count: u32) -> Self { MetalAtlas(Mutex::new(MetalAtlasState { device: AssertSend(device), monochrome_textures: Default::default(), polychrome_textures: Default::default(), + path_textures: Default::default(), tiles_by_key: Default::default(), + path_sample_count, })) } pub(crate) fn metal_texture(&self, id: AtlasTextureId) -> metal::Texture { self.0.lock().texture(id).metal_texture.clone() } + + pub(crate) fn msaa_texture(&self, id: AtlasTextureId) -> Option<metal::Texture> { + self.0.lock().texture(id).msaa_texture.clone() + } + + pub(crate) fn allocate( + &self, + size: Size<DevicePixels>, + texture_kind: AtlasTextureKind, + ) -> Option<AtlasTile> { + self.0.lock().allocate(size, texture_kind) + } + + pub(crate) fn clear_textures(&self, texture_kind: AtlasTextureKind) { + let mut lock = self.0.lock(); + let textures = match texture_kind { + AtlasTextureKind::Monochrome => &mut lock.monochrome_textures, + AtlasTextureKind::Polychrome => &mut lock.polychrome_textures, + AtlasTextureKind::Path => &mut lock.path_textures, + }; + for texture in textures.iter_mut() { + texture.clear(); + } + } } struct MetalAtlasState { device: AssertSend<Device>, monochrome_textures: AtlasTextureList<MetalAtlasTexture>, polychrome_textures: AtlasTextureList<MetalAtlasTexture>, + path_textures: AtlasTextureList<MetalAtlasTexture>, tiles_by_key: FxHashMap<AtlasKey, AtlasTile>, + path_sample_count: u32, } impl PlatformAtlas for MetalAtlas { @@ -66,6 +94,7 @@ impl PlatformAtlas for MetalAtlas { let textures = match id.kind { AtlasTextureKind::Monochrome => &mut lock.monochrome_textures, AtlasTextureKind::Polychrome => &mut lock.polychrome_textures, + AtlasTextureKind::Path => &mut lock.polychrome_textures, }; let Some(texture_slot) = textures @@ -99,6 +128,7 @@ impl MetalAtlasState { let textures = match texture_kind { AtlasTextureKind::Monochrome => &mut self.monochrome_textures, AtlasTextureKind::Polychrome => &mut self.polychrome_textures, + AtlasTextureKind::Path => &mut self.path_textures, }; if let Some(tile) = textures @@ -143,14 +173,31 @@ impl MetalAtlasState { pixel_format = metal::MTLPixelFormat::BGRA8Unorm; usage = metal::MTLTextureUsage::ShaderRead; } + AtlasTextureKind::Path => { + pixel_format = metal::MTLPixelFormat::R16Float; + usage = metal::MTLTextureUsage::RenderTarget | metal::MTLTextureUsage::ShaderRead; + } } texture_descriptor.set_pixel_format(pixel_format); texture_descriptor.set_usage(usage); let metal_texture = self.device.new_texture(&texture_descriptor); + // We currently only enable MSAA for path textures. + let msaa_texture = if self.path_sample_count > 1 && kind == AtlasTextureKind::Path { + let mut descriptor = texture_descriptor.clone(); + descriptor.set_texture_type(metal::MTLTextureType::D2Multisample); + descriptor.set_storage_mode(metal::MTLStorageMode::Private); + descriptor.set_sample_count(self.path_sample_count as _); + let msaa_texture = self.device.new_texture(&descriptor); + Some(msaa_texture) + } else { + None + }; + let texture_list = match kind { AtlasTextureKind::Monochrome => &mut self.monochrome_textures, AtlasTextureKind::Polychrome => &mut self.polychrome_textures, + AtlasTextureKind::Path => &mut self.path_textures, }; let index = texture_list.free_list.pop(); @@ -162,6 +209,7 @@ impl MetalAtlasState { }, allocator: etagere::BucketedAtlasAllocator::new(size.into()), metal_texture: AssertSend(metal_texture), + msaa_texture: AssertSend(msaa_texture), live_atlas_keys: 0, }; @@ -178,6 +226,7 @@ impl MetalAtlasState { let textures = match id.kind { crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, + crate::AtlasTextureKind::Path => &self.path_textures, }; textures[id.index as usize].as_ref().unwrap() } @@ -187,10 +236,15 @@ struct MetalAtlasTexture { id: AtlasTextureId, allocator: BucketedAtlasAllocator, metal_texture: AssertSend<metal::Texture>, + msaa_texture: AssertSend<Option<metal::Texture>>, live_atlas_keys: u32, } impl MetalAtlasTexture { + fn clear(&mut self) { + self.allocator.clear(); + } + fn allocate(&mut self, size: Size<DevicePixels>) -> Option<AtlasTile> { let allocation = self.allocator.allocate(size.into())?; let tile = AtlasTile { diff --git a/crates/gpui/src/platform/mac/metal_renderer.rs b/crates/gpui/src/platform/mac/metal_renderer.rs index fb5cb852d6..3cdc2dd2cf 100644 --- a/crates/gpui/src/platform/mac/metal_renderer.rs +++ b/crates/gpui/src/platform/mac/metal_renderer.rs @@ -1,30 +1,27 @@ use super::metal_atlas::MetalAtlas; use crate::{ - AtlasTextureId, Background, Bounds, ContentMask, DevicePixels, MonochromeSprite, PaintSurface, - Path, Point, PolychromeSprite, PrimitiveBatch, Quad, ScaledPixels, Scene, Shadow, Size, - Surface, Underline, point, size, + AtlasTextureId, AtlasTextureKind, AtlasTile, Background, Bounds, ContentMask, DevicePixels, + MonochromeSprite, PaintSurface, Path, PathId, PathVertex, PolychromeSprite, PrimitiveBatch, + Quad, ScaledPixels, Scene, Shadow, Size, Surface, Underline, point, size, }; -use anyhow::Result; +use anyhow::{Context as _, Result}; use block::ConcreteBlock; use cocoa::{ base::{NO, YES}, foundation::{NSSize, NSUInteger}, quartzcore::AutoresizingMask, }; - +use collections::HashMap; use core_foundation::base::TCFType; use core_video::{ metal_texture::CVMetalTextureGetTexture, metal_texture_cache::CVMetalTextureCache, pixel_buffer::kCVPixelFormatType_420YpCbCr8BiPlanarFullRange, }; use foreign_types::{ForeignType, ForeignTypeRef}; -use metal::{ - CAMetalLayer, CommandQueue, MTLPixelFormat, MTLResourceOptions, NSRange, - RenderPassColorAttachmentDescriptorRef, -}; +use metal::{CAMetalLayer, CommandQueue, MTLPixelFormat, MTLResourceOptions, NSRange}; use objc::{self, msg_send, sel, sel_impl}; use parking_lot::Mutex; - +use smallvec::SmallVec; use std::{cell::Cell, ffi::c_void, mem, ptr, sync::Arc}; // Exported to metal @@ -114,17 +111,6 @@ pub(crate) struct MetalRenderer { instance_buffer_pool: Arc<Mutex<InstanceBufferPool>>, sprite_atlas: Arc<MetalAtlas>, core_video_texture_cache: core_video::metal_texture_cache::CVMetalTextureCache, - path_intermediate_texture: Option<metal::Texture>, - path_intermediate_msaa_texture: Option<metal::Texture>, - path_sample_count: u32, -} - -#[repr(C)] -pub struct PathRasterizationVertex { - pub xy_position: Point<ScaledPixels>, - pub st_position: Point<f32>, - pub color: Background, - pub bounds: Bounds<ScaledPixels>, } impl MetalRenderer { @@ -189,10 +175,10 @@ impl MetalRenderer { "paths_rasterization", "path_rasterization_vertex", "path_rasterization_fragment", - MTLPixelFormat::BGRA8Unorm, + MTLPixelFormat::R16Float, PATH_SAMPLE_COUNT, ); - let path_sprites_pipeline_state = build_path_sprite_pipeline_state( + let path_sprites_pipeline_state = build_pipeline_state( &device, &library, "path_sprites", @@ -250,7 +236,7 @@ impl MetalRenderer { ); let command_queue = device.new_command_queue(); - let sprite_atlas = Arc::new(MetalAtlas::new(device.clone())); + let sprite_atlas = Arc::new(MetalAtlas::new(device.clone(), PATH_SAMPLE_COUNT)); let core_video_texture_cache = CVMetalTextureCache::new(None, device.clone(), None).unwrap(); @@ -271,9 +257,6 @@ impl MetalRenderer { instance_buffer_pool, sprite_atlas, core_video_texture_cache, - path_intermediate_texture: None, - path_intermediate_msaa_texture: None, - path_sample_count: PATH_SAMPLE_COUNT, } } @@ -306,31 +289,6 @@ impl MetalRenderer { setDrawableSize: size ]; } - let device_pixels_size = Size { - width: DevicePixels(size.width as i32), - height: DevicePixels(size.height as i32), - }; - self.update_path_intermediate_textures(device_pixels_size); - } - - fn update_path_intermediate_textures(&mut self, size: Size<DevicePixels>) { - let texture_descriptor = metal::TextureDescriptor::new(); - texture_descriptor.set_width(size.width.0 as u64); - texture_descriptor.set_height(size.height.0 as u64); - texture_descriptor.set_pixel_format(metal::MTLPixelFormat::BGRA8Unorm); - texture_descriptor - .set_usage(metal::MTLTextureUsage::RenderTarget | metal::MTLTextureUsage::ShaderRead); - self.path_intermediate_texture = Some(self.device.new_texture(&texture_descriptor)); - - if self.path_sample_count > 1 { - let mut msaa_descriptor = texture_descriptor.clone(); - msaa_descriptor.set_texture_type(metal::MTLTextureType::D2Multisample); - msaa_descriptor.set_storage_mode(metal::MTLStorageMode::Private); - msaa_descriptor.set_sample_count(self.path_sample_count as _); - self.path_intermediate_msaa_texture = Some(self.device.new_texture(&msaa_descriptor)); - } else { - self.path_intermediate_msaa_texture = None; - } } pub fn update_transparency(&self, _transparent: bool) { @@ -416,18 +374,38 @@ impl MetalRenderer { ) -> Result<metal::CommandBuffer> { let command_queue = self.command_queue.clone(); let command_buffer = command_queue.new_command_buffer(); - let alpha = if self.layer.is_opaque() { 1. } else { 0. }; let mut instance_offset = 0; - let mut command_encoder = new_command_encoder( - command_buffer, - drawable, - viewport_size, - |color_attachment| { - color_attachment.set_load_action(metal::MTLLoadAction::Clear); - color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., alpha)); - }, - ); + let path_tiles = self + .rasterize_paths( + scene.paths(), + instance_buffer, + &mut instance_offset, + command_buffer, + ) + .with_context(|| format!("rasterizing {} paths", scene.paths().len()))?; + + let render_pass_descriptor = metal::RenderPassDescriptor::new(); + let color_attachment = render_pass_descriptor + .color_attachments() + .object_at(0) + .unwrap(); + + color_attachment.set_texture(Some(drawable.texture())); + color_attachment.set_load_action(metal::MTLLoadAction::Clear); + color_attachment.set_store_action(metal::MTLStoreAction::Store); + let alpha = if self.layer.is_opaque() { 1. } else { 0. }; + color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., alpha)); + let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); + + command_encoder.set_viewport(metal::MTLViewport { + originX: 0.0, + originY: 0.0, + width: i32::from(viewport_size.width) as f64, + height: i32::from(viewport_size.height) as f64, + znear: 0.0, + zfar: 1.0, + }); for batch in scene.batches() { let ok = match batch { @@ -436,53 +414,29 @@ impl MetalRenderer { instance_buffer, &mut instance_offset, viewport_size, - &command_encoder, + command_encoder, ), PrimitiveBatch::Quads(quads) => self.draw_quads( quads, instance_buffer, &mut instance_offset, viewport_size, - &command_encoder, + command_encoder, + ), + PrimitiveBatch::Paths(paths) => self.draw_paths( + paths, + &path_tiles, + instance_buffer, + &mut instance_offset, + viewport_size, + command_encoder, ), - PrimitiveBatch::Paths(paths) => { - command_encoder.end_encoding(); - - let did_draw = self.draw_paths_to_intermediate( - paths, - instance_buffer, - &mut instance_offset, - viewport_size, - command_buffer, - ); - - command_encoder = new_command_encoder( - command_buffer, - drawable, - viewport_size, - |color_attachment| { - color_attachment.set_load_action(metal::MTLLoadAction::Load); - }, - ); - - if did_draw { - self.draw_paths_from_intermediate( - paths, - instance_buffer, - &mut instance_offset, - viewport_size, - &command_encoder, - ) - } else { - false - } - } PrimitiveBatch::Underlines(underlines) => self.draw_underlines( underlines, instance_buffer, &mut instance_offset, viewport_size, - &command_encoder, + command_encoder, ), PrimitiveBatch::MonochromeSprites { texture_id, @@ -493,7 +447,7 @@ impl MetalRenderer { instance_buffer, &mut instance_offset, viewport_size, - &command_encoder, + command_encoder, ), PrimitiveBatch::PolychromeSprites { texture_id, @@ -504,16 +458,17 @@ impl MetalRenderer { instance_buffer, &mut instance_offset, viewport_size, - &command_encoder, + command_encoder, ), PrimitiveBatch::Surfaces(surfaces) => self.draw_surfaces( surfaces, instance_buffer, &mut instance_offset, viewport_size, - &command_encoder, + command_encoder, ), }; + if !ok { command_encoder.end_encoding(); anyhow::bail!( @@ -538,90 +493,104 @@ impl MetalRenderer { Ok(command_buffer.to_owned()) } - fn draw_paths_to_intermediate( + fn rasterize_paths( &self, paths: &[Path<ScaledPixels>], instance_buffer: &mut InstanceBuffer, instance_offset: &mut usize, - viewport_size: Size<DevicePixels>, command_buffer: &metal::CommandBufferRef, - ) -> bool { - if paths.is_empty() { - return true; - } - let Some(intermediate_texture) = &self.path_intermediate_texture else { - return false; - }; + ) -> Option<HashMap<PathId, AtlasTile>> { + self.sprite_atlas.clear_textures(AtlasTextureKind::Path); - let render_pass_descriptor = metal::RenderPassDescriptor::new(); - let color_attachment = render_pass_descriptor - .color_attachments() - .object_at(0) - .unwrap(); - color_attachment.set_load_action(metal::MTLLoadAction::Clear); - color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., 0.)); - - if let Some(msaa_texture) = &self.path_intermediate_msaa_texture { - color_attachment.set_texture(Some(msaa_texture)); - color_attachment.set_resolve_texture(Some(intermediate_texture)); - color_attachment.set_store_action(metal::MTLStoreAction::MultisampleResolve); - } else { - color_attachment.set_texture(Some(intermediate_texture)); - color_attachment.set_store_action(metal::MTLStoreAction::Store); - } - - let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); - command_encoder.set_render_pipeline_state(&self.paths_rasterization_pipeline_state); - - align_offset(instance_offset); - let mut vertices = Vec::new(); + let mut tiles = HashMap::default(); + let mut vertices_by_texture_id = HashMap::default(); for path in paths { - vertices.extend(path.vertices.iter().map(|v| PathRasterizationVertex { - xy_position: v.xy_position, - st_position: v.st_position, - color: path.color, - bounds: path.bounds.intersect(&path.content_mask.bounds), - })); - } - let vertices_bytes_len = mem::size_of_val(vertices.as_slice()); - let next_offset = *instance_offset + vertices_bytes_len; - if next_offset > instance_buffer.size { - command_encoder.end_encoding(); - return false; - } - command_encoder.set_vertex_buffer( - PathRasterizationInputIndex::Vertices as u64, - Some(&instance_buffer.metal_buffer), - *instance_offset as u64, - ); - command_encoder.set_vertex_bytes( - PathRasterizationInputIndex::ViewportSize as u64, - mem::size_of_val(&viewport_size) as u64, - &viewport_size as *const Size<DevicePixels> as *const _, - ); - command_encoder.set_fragment_buffer( - PathRasterizationInputIndex::Vertices as u64, - Some(&instance_buffer.metal_buffer), - *instance_offset as u64, - ); - let buffer_contents = - unsafe { (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) }; - unsafe { - ptr::copy_nonoverlapping( - vertices.as_ptr() as *const u8, - buffer_contents, - vertices_bytes_len, - ); - } - command_encoder.draw_primitives( - metal::MTLPrimitiveType::Triangle, - 0, - vertices.len() as u64, - ); - *instance_offset = next_offset; + let clipped_bounds = path.bounds.intersect(&path.content_mask.bounds); - command_encoder.end_encoding(); - true + let tile = self + .sprite_atlas + .allocate(clipped_bounds.size.map(Into::into), AtlasTextureKind::Path)?; + vertices_by_texture_id + .entry(tile.texture_id) + .or_insert(Vec::new()) + .extend(path.vertices.iter().map(|vertex| PathVertex { + xy_position: vertex.xy_position - clipped_bounds.origin + + tile.bounds.origin.map(Into::into), + st_position: vertex.st_position, + content_mask: ContentMask { + bounds: tile.bounds.map(Into::into), + }, + })); + tiles.insert(path.id, tile); + } + + for (texture_id, vertices) in vertices_by_texture_id { + align_offset(instance_offset); + let vertices_bytes_len = mem::size_of_val(vertices.as_slice()); + let next_offset = *instance_offset + vertices_bytes_len; + if next_offset > instance_buffer.size { + return None; + } + + let render_pass_descriptor = metal::RenderPassDescriptor::new(); + let color_attachment = render_pass_descriptor + .color_attachments() + .object_at(0) + .unwrap(); + + let texture = self.sprite_atlas.metal_texture(texture_id); + let msaa_texture = self.sprite_atlas.msaa_texture(texture_id); + + if let Some(msaa_texture) = msaa_texture { + color_attachment.set_texture(Some(&msaa_texture)); + color_attachment.set_resolve_texture(Some(&texture)); + color_attachment.set_load_action(metal::MTLLoadAction::Clear); + color_attachment.set_store_action(metal::MTLStoreAction::MultisampleResolve); + } else { + color_attachment.set_texture(Some(&texture)); + color_attachment.set_load_action(metal::MTLLoadAction::Clear); + color_attachment.set_store_action(metal::MTLStoreAction::Store); + } + color_attachment.set_clear_color(metal::MTLClearColor::new(0., 0., 0., 1.)); + + let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); + command_encoder.set_render_pipeline_state(&self.paths_rasterization_pipeline_state); + command_encoder.set_vertex_buffer( + PathRasterizationInputIndex::Vertices as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + let texture_size = Size { + width: DevicePixels::from(texture.width()), + height: DevicePixels::from(texture.height()), + }; + command_encoder.set_vertex_bytes( + PathRasterizationInputIndex::AtlasTextureSize as u64, + mem::size_of_val(&texture_size) as u64, + &texture_size as *const Size<DevicePixels> as *const _, + ); + + let buffer_contents = unsafe { + (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) + }; + unsafe { + ptr::copy_nonoverlapping( + vertices.as_ptr() as *const u8, + buffer_contents, + vertices_bytes_len, + ); + } + + command_encoder.draw_primitives( + metal::MTLPrimitiveType::Triangle, + 0, + vertices.len() as u64, + ); + command_encoder.end_encoding(); + *instance_offset = next_offset; + } + + Some(tiles) } fn draw_shadows( @@ -746,21 +715,18 @@ impl MetalRenderer { true } - fn draw_paths_from_intermediate( + fn draw_paths( &self, paths: &[Path<ScaledPixels>], + tiles_by_path_id: &HashMap<PathId, AtlasTile>, instance_buffer: &mut InstanceBuffer, instance_offset: &mut usize, viewport_size: Size<DevicePixels>, command_encoder: &metal::RenderCommandEncoderRef, ) -> bool { - let Some(ref first_path) = paths.first() else { + if paths.is_empty() { return true; - }; - - let Some(ref intermediate_texture) = self.path_intermediate_texture else { - return false; - }; + } command_encoder.set_render_pipeline_state(&self.path_sprites_pipeline_state); command_encoder.set_vertex_buffer( @@ -774,65 +740,88 @@ impl MetalRenderer { &viewport_size as *const Size<DevicePixels> as *const _, ); - command_encoder.set_fragment_texture( - SpriteInputIndex::AtlasTexture as u64, - Some(intermediate_texture), - ); + let mut prev_texture_id = None; + let mut sprites = SmallVec::<[_; 1]>::new(); + let mut paths_and_tiles = paths + .iter() + .map(|path| (path, tiles_by_path_id.get(&path.id).unwrap())) + .peekable(); - // When copying paths from the intermediate texture to the drawable, - // each pixel must only be copied once, in case of transparent paths. - // - // If all paths have the same draw order, then their bounds are all - // disjoint, so we can copy each path's bounds individually. If this - // batch combines different draw orders, we perform a single copy - // for a minimal spanning rect. - let sprites; - if paths.last().unwrap().order == first_path.order { - sprites = paths - .iter() - .map(|path| PathSprite { - bounds: path.bounds, - }) - .collect(); - } else { - let mut bounds = first_path.bounds; - for path in paths.iter().skip(1) { - bounds = bounds.union(&path.bounds); + loop { + if let Some((path, tile)) = paths_and_tiles.peek() { + if prev_texture_id.map_or(true, |texture_id| texture_id == tile.texture_id) { + prev_texture_id = Some(tile.texture_id); + let origin = path.bounds.intersect(&path.content_mask.bounds).origin; + sprites.push(PathSprite { + bounds: Bounds { + origin: origin.map(|p| p.floor()), + size: tile.bounds.size.map(Into::into), + }, + color: path.color, + tile: (*tile).clone(), + }); + paths_and_tiles.next(); + continue; + } + } + + if sprites.is_empty() { + break; + } else { + align_offset(instance_offset); + let texture_id = prev_texture_id.take().unwrap(); + let texture: metal::Texture = self.sprite_atlas.metal_texture(texture_id); + let texture_size = size( + DevicePixels(texture.width() as i32), + DevicePixels(texture.height() as i32), + ); + + command_encoder.set_vertex_buffer( + SpriteInputIndex::Sprites as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + command_encoder.set_vertex_bytes( + SpriteInputIndex::AtlasTextureSize as u64, + mem::size_of_val(&texture_size) as u64, + &texture_size as *const Size<DevicePixels> as *const _, + ); + command_encoder.set_fragment_buffer( + SpriteInputIndex::Sprites as u64, + Some(&instance_buffer.metal_buffer), + *instance_offset as u64, + ); + command_encoder + .set_fragment_texture(SpriteInputIndex::AtlasTexture as u64, Some(&texture)); + + let sprite_bytes_len = mem::size_of_val(sprites.as_slice()); + let next_offset = *instance_offset + sprite_bytes_len; + if next_offset > instance_buffer.size { + return false; + } + + let buffer_contents = unsafe { + (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) + }; + + unsafe { + ptr::copy_nonoverlapping( + sprites.as_ptr() as *const u8, + buffer_contents, + sprite_bytes_len, + ); + } + + command_encoder.draw_primitives_instanced( + metal::MTLPrimitiveType::Triangle, + 0, + 6, + sprites.len() as u64, + ); + *instance_offset = next_offset; + sprites.clear(); } - sprites = vec![PathSprite { bounds }]; } - - align_offset(instance_offset); - let sprite_bytes_len = mem::size_of_val(sprites.as_slice()); - let next_offset = *instance_offset + sprite_bytes_len; - if next_offset > instance_buffer.size { - return false; - } - - command_encoder.set_vertex_buffer( - SpriteInputIndex::Sprites as u64, - Some(&instance_buffer.metal_buffer), - *instance_offset as u64, - ); - - let buffer_contents = - unsafe { (instance_buffer.metal_buffer.contents() as *mut u8).add(*instance_offset) }; - unsafe { - ptr::copy_nonoverlapping( - sprites.as_ptr() as *const u8, - buffer_contents, - sprite_bytes_len, - ); - } - - command_encoder.draw_primitives_instanced( - metal::MTLPrimitiveType::Triangle, - 0, - 6, - sprites.len() as u64, - ); - *instance_offset = next_offset; - true } @@ -1147,33 +1136,6 @@ impl MetalRenderer { } } -fn new_command_encoder<'a>( - command_buffer: &'a metal::CommandBufferRef, - drawable: &'a metal::MetalDrawableRef, - viewport_size: Size<DevicePixels>, - configure_color_attachment: impl Fn(&RenderPassColorAttachmentDescriptorRef), -) -> &'a metal::RenderCommandEncoderRef { - let render_pass_descriptor = metal::RenderPassDescriptor::new(); - let color_attachment = render_pass_descriptor - .color_attachments() - .object_at(0) - .unwrap(); - color_attachment.set_texture(Some(drawable.texture())); - color_attachment.set_store_action(metal::MTLStoreAction::Store); - configure_color_attachment(color_attachment); - - let command_encoder = command_buffer.new_render_command_encoder(render_pass_descriptor); - command_encoder.set_viewport(metal::MTLViewport { - originX: 0.0, - originY: 0.0, - width: i32::from(viewport_size.width) as f64, - height: i32::from(viewport_size.height) as f64, - znear: 0.0, - zfar: 1.0, - }); - command_encoder -} - fn build_pipeline_state( device: &metal::DeviceRef, library: &metal::LibraryRef, @@ -1208,40 +1170,6 @@ fn build_pipeline_state( .expect("could not create render pipeline state") } -fn build_path_sprite_pipeline_state( - device: &metal::DeviceRef, - library: &metal::LibraryRef, - label: &str, - vertex_fn_name: &str, - fragment_fn_name: &str, - pixel_format: metal::MTLPixelFormat, -) -> metal::RenderPipelineState { - let vertex_fn = library - .get_function(vertex_fn_name, None) - .expect("error locating vertex function"); - let fragment_fn = library - .get_function(fragment_fn_name, None) - .expect("error locating fragment function"); - - let descriptor = metal::RenderPipelineDescriptor::new(); - descriptor.set_label(label); - descriptor.set_vertex_function(Some(vertex_fn.as_ref())); - descriptor.set_fragment_function(Some(fragment_fn.as_ref())); - let color_attachment = descriptor.color_attachments().object_at(0).unwrap(); - color_attachment.set_pixel_format(pixel_format); - color_attachment.set_blending_enabled(true); - color_attachment.set_rgb_blend_operation(metal::MTLBlendOperation::Add); - color_attachment.set_alpha_blend_operation(metal::MTLBlendOperation::Add); - color_attachment.set_source_rgb_blend_factor(metal::MTLBlendFactor::One); - color_attachment.set_source_alpha_blend_factor(metal::MTLBlendFactor::One); - color_attachment.set_destination_rgb_blend_factor(metal::MTLBlendFactor::OneMinusSourceAlpha); - color_attachment.set_destination_alpha_blend_factor(metal::MTLBlendFactor::One); - - device - .new_render_pipeline_state(&descriptor) - .expect("could not create render pipeline state") -} - fn build_path_rasterization_pipeline_state( device: &metal::DeviceRef, library: &metal::LibraryRef, @@ -1264,7 +1192,7 @@ fn build_path_rasterization_pipeline_state( descriptor.set_fragment_function(Some(fragment_fn.as_ref())); if path_sample_count > 1 { descriptor.set_raster_sample_count(path_sample_count as _); - descriptor.set_alpha_to_coverage_enabled(false); + descriptor.set_alpha_to_coverage_enabled(true); } let color_attachment = descriptor.color_attachments().object_at(0).unwrap(); color_attachment.set_pixel_format(pixel_format); @@ -1273,8 +1201,8 @@ fn build_path_rasterization_pipeline_state( color_attachment.set_alpha_blend_operation(metal::MTLBlendOperation::Add); color_attachment.set_source_rgb_blend_factor(metal::MTLBlendFactor::One); color_attachment.set_source_alpha_blend_factor(metal::MTLBlendFactor::One); - color_attachment.set_destination_rgb_blend_factor(metal::MTLBlendFactor::OneMinusSourceAlpha); - color_attachment.set_destination_alpha_blend_factor(metal::MTLBlendFactor::OneMinusSourceAlpha); + color_attachment.set_destination_rgb_blend_factor(metal::MTLBlendFactor::One); + color_attachment.set_destination_alpha_blend_factor(metal::MTLBlendFactor::One); device .new_render_pipeline_state(&descriptor) @@ -1329,13 +1257,15 @@ enum SurfaceInputIndex { #[repr(C)] enum PathRasterizationInputIndex { Vertices = 0, - ViewportSize = 1, + AtlasTextureSize = 1, } #[derive(Clone, Debug, Eq, PartialEq)] #[repr(C)] pub struct PathSprite { pub bounds: Bounds<ScaledPixels>, + pub color: Background, + pub tile: AtlasTile, } #[derive(Clone, Debug, Eq, PartialEq)] diff --git a/crates/gpui/src/platform/mac/shaders.metal b/crates/gpui/src/platform/mac/shaders.metal index f9d5bdbf4c..64ebb1e22b 100644 --- a/crates/gpui/src/platform/mac/shaders.metal +++ b/crates/gpui/src/platform/mac/shaders.metal @@ -701,117 +701,107 @@ fragment float4 polychrome_sprite_fragment( struct PathRasterizationVertexOutput { float4 position [[position]]; float2 st_position; - uint vertex_id [[flat]]; float clip_rect_distance [[clip_distance]][4]; }; struct PathRasterizationFragmentInput { float4 position [[position]]; float2 st_position; - uint vertex_id [[flat]]; }; vertex PathRasterizationVertexOutput path_rasterization_vertex( - uint vertex_id [[vertex_id]], - constant PathRasterizationVertex *vertices [[buffer(PathRasterizationInputIndex_Vertices)]], - constant Size_DevicePixels *atlas_size [[buffer(PathRasterizationInputIndex_ViewportSize)]] -) { - PathRasterizationVertex v = vertices[vertex_id]; + uint vertex_id [[vertex_id]], + constant PathVertex_ScaledPixels *vertices + [[buffer(PathRasterizationInputIndex_Vertices)]], + constant Size_DevicePixels *atlas_size + [[buffer(PathRasterizationInputIndex_AtlasTextureSize)]]) { + PathVertex_ScaledPixels v = vertices[vertex_id]; float2 vertex_position = float2(v.xy_position.x, v.xy_position.y); - float4 position = float4( - vertex_position * float2(2. / atlas_size->width, -2. / atlas_size->height) + float2(-1., 1.), - 0., - 1. - ); + float2 viewport_size = float2(atlas_size->width, atlas_size->height); return PathRasterizationVertexOutput{ - position, + float4(vertex_position / viewport_size * float2(2., -2.) + + float2(-1., 1.), + 0., 1.), float2(v.st_position.x, v.st_position.y), - vertex_id, - { - v.xy_position.x - v.bounds.origin.x, - v.bounds.origin.x + v.bounds.size.width - v.xy_position.x, - v.xy_position.y - v.bounds.origin.y, - v.bounds.origin.y + v.bounds.size.height - v.xy_position.y - } - }; + {v.xy_position.x - v.content_mask.bounds.origin.x, + v.content_mask.bounds.origin.x + v.content_mask.bounds.size.width - + v.xy_position.x, + v.xy_position.y - v.content_mask.bounds.origin.y, + v.content_mask.bounds.origin.y + v.content_mask.bounds.size.height - + v.xy_position.y}}; } -fragment float4 path_rasterization_fragment( - PathRasterizationFragmentInput input [[stage_in]], - constant PathRasterizationVertex *vertices [[buffer(PathRasterizationInputIndex_Vertices)]] -) { +fragment float4 path_rasterization_fragment(PathRasterizationFragmentInput input + [[stage_in]]) { float2 dx = dfdx(input.st_position); float2 dy = dfdy(input.st_position); - - PathRasterizationVertex v = vertices[input.vertex_id]; - Background background = v.color; - Bounds_ScaledPixels path_bounds = v.bounds; - float alpha; - if (length(float2(dx.x, dy.x)) < 0.001) { - alpha = 1.0; - } else { - float2 gradient = float2( - (2. * input.st_position.x) * dx.x - dx.y, - (2. * input.st_position.x) * dy.x - dy.y - ); - float f = (input.st_position.x * input.st_position.x) - input.st_position.y; - float distance = f / length(gradient); - alpha = saturate(0.5 - distance); - } - - GradientColor gradient_color = prepare_fill_color( - background.tag, - background.color_space, - background.solid, - background.colors[0].color, - background.colors[1].color - ); - - float4 color = fill_color( - background, - input.position.xy, - path_bounds, - gradient_color.solid, - gradient_color.color0, - gradient_color.color1 - ); - return float4(color.rgb * color.a * alpha, alpha * color.a); + float2 gradient = float2((2. * input.st_position.x) * dx.x - dx.y, + (2. * input.st_position.x) * dy.x - dy.y); + float f = (input.st_position.x * input.st_position.x) - input.st_position.y; + float distance = f / length(gradient); + float alpha = saturate(0.5 - distance); + return float4(alpha, 0., 0., 1.); } struct PathSpriteVertexOutput { float4 position [[position]]; - float2 texture_coords; + float2 tile_position; + uint sprite_id [[flat]]; + float4 solid_color [[flat]]; + float4 color0 [[flat]]; + float4 color1 [[flat]]; }; vertex PathSpriteVertexOutput path_sprite_vertex( - uint unit_vertex_id [[vertex_id]], - uint sprite_id [[instance_id]], - constant float2 *unit_vertices [[buffer(SpriteInputIndex_Vertices)]], - constant PathSprite *sprites [[buffer(SpriteInputIndex_Sprites)]], - constant Size_DevicePixels *viewport_size [[buffer(SpriteInputIndex_ViewportSize)]] -) { + uint unit_vertex_id [[vertex_id]], uint sprite_id [[instance_id]], + constant float2 *unit_vertices [[buffer(SpriteInputIndex_Vertices)]], + constant PathSprite *sprites [[buffer(SpriteInputIndex_Sprites)]], + constant Size_DevicePixels *viewport_size + [[buffer(SpriteInputIndex_ViewportSize)]], + constant Size_DevicePixels *atlas_size + [[buffer(SpriteInputIndex_AtlasTextureSize)]]) { + float2 unit_vertex = unit_vertices[unit_vertex_id]; PathSprite sprite = sprites[sprite_id]; // Don't apply content mask because it was already accounted for when // rasterizing the path. float4 device_position = to_device_position(unit_vertex, sprite.bounds, viewport_size); + float2 tile_position = to_tile_position(unit_vertex, sprite.tile, atlas_size); - float2 screen_position = float2(sprite.bounds.origin.x, sprite.bounds.origin.y) + unit_vertex * float2(sprite.bounds.size.width, sprite.bounds.size.height); - float2 texture_coords = screen_position / float2(viewport_size->width, viewport_size->height); + GradientColor gradient = prepare_fill_color( + sprite.color.tag, + sprite.color.color_space, + sprite.color.solid, + sprite.color.colors[0].color, + sprite.color.colors[1].color + ); return PathSpriteVertexOutput{ device_position, - texture_coords + tile_position, + sprite_id, + gradient.solid, + gradient.color0, + gradient.color1 }; } fragment float4 path_sprite_fragment( - PathSpriteVertexOutput input [[stage_in]], - texture2d<float> intermediate_texture [[texture(SpriteInputIndex_AtlasTexture)]] -) { - constexpr sampler intermediate_texture_sampler(mag_filter::linear, min_filter::linear); - return intermediate_texture.sample(intermediate_texture_sampler, input.texture_coords); + PathSpriteVertexOutput input [[stage_in]], + constant PathSprite *sprites [[buffer(SpriteInputIndex_Sprites)]], + texture2d<float> atlas_texture [[texture(SpriteInputIndex_AtlasTexture)]]) { + constexpr sampler atlas_texture_sampler(mag_filter::linear, + min_filter::linear); + float4 sample = + atlas_texture.sample(atlas_texture_sampler, input.tile_position); + float mask = 1. - abs(1. - fmod(sample.r, 2.)); + PathSprite sprite = sprites[input.sprite_id]; + Background background = sprite.color; + float4 color = fill_color(background, input.position.xy, sprite.bounds, + input.solid_color, input.color0, input.color1); + color.a *= mask; + return color; } struct SurfaceVertexOutput { diff --git a/crates/gpui/src/platform/test/window.rs b/crates/gpui/src/platform/test/window.rs index e15bd7aeec..1b88415d3b 100644 --- a/crates/gpui/src/platform/test/window.rs +++ b/crates/gpui/src/platform/test/window.rs @@ -341,7 +341,7 @@ impl PlatformAtlas for TestAtlas { crate::AtlasTile { texture_id: AtlasTextureId { index: texture_id, - kind: crate::AtlasTextureKind::Monochrome, + kind: crate::AtlasTextureKind::Path, }, tile_id: TileId(tile_id), padding: 0, diff --git a/crates/gpui/src/platform/windows.rs b/crates/gpui/src/platform/windows.rs index 5268d3ccba..4bdf42080d 100644 --- a/crates/gpui/src/platform/windows.rs +++ b/crates/gpui/src/platform/windows.rs @@ -1,8 +1,6 @@ mod clipboard; mod destination_list; mod direct_write; -mod directx_atlas; -mod directx_renderer; mod dispatcher; mod display; mod events; @@ -16,8 +14,6 @@ mod wrapper; pub(crate) use clipboard::*; pub(crate) use destination_list::*; pub(crate) use direct_write::*; -pub(crate) use directx_atlas::*; -pub(crate) use directx_renderer::*; pub(crate) use dispatcher::*; pub(crate) use display::*; pub(crate) use events::*; diff --git a/crates/gpui/src/platform/windows/color_text_raster.hlsl b/crates/gpui/src/platform/windows/color_text_raster.hlsl deleted file mode 100644 index ccc5fa26f0..0000000000 --- a/crates/gpui/src/platform/windows/color_text_raster.hlsl +++ /dev/null @@ -1,39 +0,0 @@ -struct RasterVertexOutput { - float4 position : SV_Position; - float2 texcoord : TEXCOORD0; -}; - -RasterVertexOutput emoji_rasterization_vertex(uint vertexID : SV_VERTEXID) -{ - RasterVertexOutput output; - output.texcoord = float2((vertexID << 1) & 2, vertexID & 2); - output.position = float4(output.texcoord * 2.0f - 1.0f, 0.0f, 1.0f); - output.position.y = -output.position.y; - - return output; -} - -struct PixelInput { - float4 position: SV_Position; - float2 texcoord : TEXCOORD0; -}; - -struct Bounds { - int2 origin; - int2 size; -}; - -Texture2D<float4> t_layer : register(t0); -SamplerState s_layer : register(s0); - -cbuffer GlyphLayerTextureParams : register(b0) { - Bounds bounds; - float4 run_color; -}; - -float4 emoji_rasterization_fragment(PixelInput input): SV_Target { - float3 sampled = t_layer.Sample(s_layer, input.texcoord.xy).rgb; - float alpha = (sampled.r + sampled.g + sampled.b) / 3; - - return float4(run_color.rgb, alpha); -} diff --git a/crates/gpui/src/platform/windows/direct_write.rs b/crates/gpui/src/platform/windows/direct_write.rs index 587cb7b4a6..ada306c15c 100644 --- a/crates/gpui/src/platform/windows/direct_write.rs +++ b/crates/gpui/src/platform/windows/direct_write.rs @@ -10,11 +10,10 @@ use windows::{ Foundation::*, Globalization::GetUserDefaultLocaleName, Graphics::{ - Direct3D::D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - Direct3D11::*, + Direct2D::{Common::*, *}, DirectWrite::*, Dxgi::Common::*, - Gdi::{IsRectEmpty, LOGFONTW}, + Gdi::LOGFONTW, Imaging::*, }, System::SystemServices::LOCALE_NAME_MAX_LENGTH, @@ -41,21 +40,16 @@ struct DirectWriteComponent { locale: String, factory: IDWriteFactory5, bitmap_factory: AgileReference<IWICImagingFactory>, + d2d1_factory: ID2D1Factory, in_memory_loader: IDWriteInMemoryFontFileLoader, builder: IDWriteFontSetBuilder1, text_renderer: Arc<TextRendererWrapper>, - - render_params: IDWriteRenderingParams3, - gpu_state: GPUState, + render_context: GlyphRenderContext, } -struct GPUState { - device: ID3D11Device, - device_context: ID3D11DeviceContext, - sampler: [Option<ID3D11SamplerState>; 1], - blend_state: ID3D11BlendState, - vertex_shader: ID3D11VertexShader, - pixel_shader: ID3D11PixelShader, +struct GlyphRenderContext { + params: IDWriteRenderingParams3, + dc_target: ID2D1DeviceContext4, } struct DirectWriteState { @@ -76,11 +70,12 @@ struct FontIdentifier { } impl DirectWriteComponent { - pub fn new(bitmap_factory: &IWICImagingFactory, gpu_context: &DirectXDevices) -> Result<Self> { - // todo: ideally this would not be a large unsafe block but smaller isolated ones for easier auditing + pub fn new(bitmap_factory: &IWICImagingFactory) -> Result<Self> { unsafe { let factory: IDWriteFactory5 = DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED)?; let bitmap_factory = AgileReference::new(bitmap_factory)?; + let d2d1_factory: ID2D1Factory = + D2D1CreateFactory(D2D1_FACTORY_TYPE_MULTI_THREADED, None)?; // The `IDWriteInMemoryFontFileLoader` here is supported starting from // Windows 10 Creators Update, which consequently requires the entire // `DirectWriteTextSystem` to run on `win10 1703`+. @@ -91,132 +86,60 @@ impl DirectWriteComponent { GetUserDefaultLocaleName(&mut locale_vec); let locale = String::from_utf16_lossy(&locale_vec); let text_renderer = Arc::new(TextRendererWrapper::new(&locale)); - - let render_params = { - let default_params: IDWriteRenderingParams3 = - factory.CreateRenderingParams()?.cast()?; - let gamma = default_params.GetGamma(); - let enhanced_contrast = default_params.GetEnhancedContrast(); - let gray_contrast = default_params.GetGrayscaleEnhancedContrast(); - let cleartype_level = default_params.GetClearTypeLevel(); - let grid_fit_mode = default_params.GetGridFitMode(); - - factory.CreateCustomRenderingParams( - gamma, - enhanced_contrast, - gray_contrast, - cleartype_level, - DWRITE_PIXEL_GEOMETRY_RGB, - DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC, - grid_fit_mode, - )? - }; - - let gpu_state = GPUState::new(gpu_context)?; + let render_context = GlyphRenderContext::new(&factory, &d2d1_factory)?; Ok(DirectWriteComponent { locale, factory, bitmap_factory, + d2d1_factory, in_memory_loader, builder, text_renderer, - render_params, - gpu_state, + render_context, }) } } } -impl GPUState { - fn new(gpu_context: &DirectXDevices) -> Result<Self> { - let device = gpu_context.device.clone(); - let device_context = gpu_context.device_context.clone(); +impl GlyphRenderContext { + pub fn new(factory: &IDWriteFactory5, d2d1_factory: &ID2D1Factory) -> Result<Self> { + unsafe { + let default_params: IDWriteRenderingParams3 = + factory.CreateRenderingParams()?.cast()?; + let gamma = default_params.GetGamma(); + let enhanced_contrast = default_params.GetEnhancedContrast(); + let gray_contrast = default_params.GetGrayscaleEnhancedContrast(); + let cleartype_level = default_params.GetClearTypeLevel(); + let grid_fit_mode = default_params.GetGridFitMode(); - let blend_state = { - let mut blend_state = None; - let desc = D3D11_BLEND_DESC { - AlphaToCoverageEnable: false.into(), - IndependentBlendEnable: false.into(), - RenderTarget: [ - D3D11_RENDER_TARGET_BLEND_DESC { - BlendEnable: true.into(), - SrcBlend: D3D11_BLEND_SRC_ALPHA, - DestBlend: D3D11_BLEND_INV_SRC_ALPHA, - BlendOp: D3D11_BLEND_OP_ADD, - SrcBlendAlpha: D3D11_BLEND_SRC_ALPHA, - DestBlendAlpha: D3D11_BLEND_INV_SRC_ALPHA, - BlendOpAlpha: D3D11_BLEND_OP_ADD, - RenderTargetWriteMask: D3D11_COLOR_WRITE_ENABLE_ALL.0 as u8, - }, - Default::default(), - Default::default(), - Default::default(), - Default::default(), - Default::default(), - Default::default(), - Default::default(), - ], - }; - unsafe { device.CreateBlendState(&desc, Some(&mut blend_state)) }?; - blend_state.unwrap() - }; - - let sampler = { - let mut sampler = None; - let desc = D3D11_SAMPLER_DESC { - Filter: D3D11_FILTER_MIN_MAG_MIP_POINT, - AddressU: D3D11_TEXTURE_ADDRESS_BORDER, - AddressV: D3D11_TEXTURE_ADDRESS_BORDER, - AddressW: D3D11_TEXTURE_ADDRESS_BORDER, - MipLODBias: 0.0, - MaxAnisotropy: 1, - ComparisonFunc: D3D11_COMPARISON_ALWAYS, - BorderColor: [0.0, 0.0, 0.0, 0.0], - MinLOD: 0.0, - MaxLOD: 0.0, - }; - unsafe { device.CreateSamplerState(&desc, Some(&mut sampler)) }?; - [sampler] - }; - - let vertex_shader = { - let source = shader_resources::RawShaderBytes::new( - shader_resources::ShaderModule::EmojiRasterization, - shader_resources::ShaderTarget::Vertex, + let params = factory.CreateCustomRenderingParams( + gamma, + enhanced_contrast, + gray_contrast, + cleartype_level, + DWRITE_PIXEL_GEOMETRY_RGB, + DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC, + grid_fit_mode, )?; - let mut shader = None; - unsafe { device.CreateVertexShader(source.as_bytes(), None, Some(&mut shader)) }?; - shader.unwrap() - }; + let dc_target = { + let target = d2d1_factory.CreateDCRenderTarget(&get_render_target_property( + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_PREMULTIPLIED, + ))?; + let target = target.cast::<ID2D1DeviceContext4>()?; + target.SetTextRenderingParams(¶ms); + target + }; - let pixel_shader = { - let source = shader_resources::RawShaderBytes::new( - shader_resources::ShaderModule::EmojiRasterization, - shader_resources::ShaderTarget::Fragment, - )?; - let mut shader = None; - unsafe { device.CreatePixelShader(source.as_bytes(), None, Some(&mut shader)) }?; - shader.unwrap() - }; - - Ok(Self { - device, - device_context, - sampler, - blend_state, - vertex_shader, - pixel_shader, - }) + Ok(Self { params, dc_target }) + } } } impl DirectWriteTextSystem { - pub(crate) fn new( - gpu_context: &DirectXDevices, - bitmap_factory: &IWICImagingFactory, - ) -> Result<Self> { - let components = DirectWriteComponent::new(bitmap_factory, gpu_context)?; + pub(crate) fn new(bitmap_factory: &IWICImagingFactory) -> Result<Self> { + let components = DirectWriteComponent::new(bitmap_factory)?; let system_font_collection = unsafe { let mut result = std::mem::zeroed(); components @@ -725,13 +648,15 @@ impl DirectWriteState { } } - fn create_glyph_run_analysis( - &self, - params: &RenderGlyphParams, - ) -> Result<IDWriteGlyphRunAnalysis> { + fn raster_bounds(&self, params: &RenderGlyphParams) -> Result<Bounds<DevicePixels>> { + let render_target = &self.components.render_context.dc_target; + unsafe { + render_target.SetUnitMode(D2D1_UNIT_MODE_DIPS); + render_target.SetDpi(96.0 * params.scale_factor, 96.0 * params.scale_factor); + } let font = &self.fonts[params.font_id.0]; let glyph_id = [params.glyph_id.0 as u16]; - let advance = [0.0]; + let advance = [0.0f32]; let offset = [DWRITE_GLYPH_OFFSET::default()]; let glyph_run = DWRITE_GLYPH_RUN { fontFace: unsafe { std::mem::transmute_copy(&font.font_face) }, @@ -743,87 +668,44 @@ impl DirectWriteState { isSideways: BOOL(0), bidiLevel: 0, }; - let transform = DWRITE_MATRIX { - m11: params.scale_factor, - m12: 0.0, - m21: 0.0, - m22: params.scale_factor, - dx: 0.0, - dy: 0.0, - }; - let subpixel_shift = params - .subpixel_variant - .map(|v| v as f32 / SUBPIXEL_VARIANTS as f32); - let baseline_origin_x = subpixel_shift.x / params.scale_factor; - let baseline_origin_y = subpixel_shift.y / params.scale_factor; - - let mut rendering_mode = DWRITE_RENDERING_MODE1::default(); - let mut grid_fit_mode = DWRITE_GRID_FIT_MODE::default(); - unsafe { - font.font_face.GetRecommendedRenderingMode( - params.font_size.0, - // The dpi here seems that it has the same effect with `Some(&transform)` - 1.0, - 1.0, - Some(&transform), - false, - DWRITE_OUTLINE_THRESHOLD_ANTIALIASED, + let bounds = unsafe { + render_target.GetGlyphRunWorldBounds( + Vector2 { X: 0.0, Y: 0.0 }, + &glyph_run, DWRITE_MEASURING_MODE_NATURAL, - &self.components.render_params, - &mut rendering_mode, - &mut grid_fit_mode, - )?; + )? + }; + // todo(windows) + // This is a walkaround, deleted when figured out. + let y_offset; + let extra_height; + if params.is_emoji { + y_offset = 0; + extra_height = 0; + } else { + // make some room for scaler. + y_offset = -1; + extra_height = 2; } - let glyph_analysis = unsafe { - self.components.factory.CreateGlyphRunAnalysis( - &glyph_run, - Some(&transform), - rendering_mode, - DWRITE_MEASURING_MODE_NATURAL, - grid_fit_mode, - // We're using cleartype not grayscale for monochrome is because it provides better quality - DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE, - baseline_origin_x, - baseline_origin_y, - ) - }?; - Ok(glyph_analysis) - } - - fn raster_bounds(&self, params: &RenderGlyphParams) -> Result<Bounds<DevicePixels>> { - let glyph_analysis = self.create_glyph_run_analysis(params)?; - - let bounds = unsafe { glyph_analysis.GetAlphaTextureBounds(DWRITE_TEXTURE_CLEARTYPE_3x1)? }; - // Some glyphs cannot be drawn with ClearType, such as bitmap fonts. In that case - // GetAlphaTextureBounds() supposedly returns an empty RECT, but I haven't tested that yet. - if !unsafe { IsRectEmpty(&bounds) }.as_bool() { + if bounds.right < bounds.left { Ok(Bounds { - origin: point(bounds.left.into(), bounds.top.into()), - size: size( - (bounds.right - bounds.left).into(), - (bounds.bottom - bounds.top).into(), - ), + origin: point(0.into(), 0.into()), + size: size(0.into(), 0.into()), }) } else { - // If it's empty, retry with grayscale AA. - let bounds = - unsafe { glyph_analysis.GetAlphaTextureBounds(DWRITE_TEXTURE_ALIASED_1x1)? }; - - if bounds.right < bounds.left { - Ok(Bounds { - origin: point(0.into(), 0.into()), - size: size(0.into(), 0.into()), - }) - } else { - Ok(Bounds { - origin: point(bounds.left.into(), bounds.top.into()), - size: size( - (bounds.right - bounds.left).into(), - (bounds.bottom - bounds.top).into(), - ), - }) - } + Ok(Bounds { + origin: point( + ((bounds.left * params.scale_factor).ceil() as i32).into(), + ((bounds.top * params.scale_factor).ceil() as i32 + y_offset).into(), + ), + size: size( + (((bounds.right - bounds.left) * params.scale_factor).ceil() as i32).into(), + (((bounds.bottom - bounds.top) * params.scale_factor).ceil() as i32 + + extra_height) + .into(), + ), + }) } } @@ -849,95 +731,7 @@ impl DirectWriteState { anyhow::bail!("glyph bounds are empty"); } - let bitmap_data = if params.is_emoji { - if let Ok(color) = self.rasterize_color(¶ms, glyph_bounds) { - color - } else { - let monochrome = self.rasterize_monochrome(params, glyph_bounds)?; - monochrome - .into_iter() - .flat_map(|pixel| [0, 0, 0, pixel]) - .collect::<Vec<_>>() - } - } else { - self.rasterize_monochrome(params, glyph_bounds)? - }; - - Ok((glyph_bounds.size, bitmap_data)) - } - - fn rasterize_monochrome( - &self, - params: &RenderGlyphParams, - glyph_bounds: Bounds<DevicePixels>, - ) -> Result<Vec<u8>> { - let mut bitmap_data = - vec![0u8; glyph_bounds.size.width.0 as usize * glyph_bounds.size.height.0 as usize * 3]; - - let glyph_analysis = self.create_glyph_run_analysis(params)?; - unsafe { - glyph_analysis.CreateAlphaTexture( - // We're using cleartype not grayscale for monochrome is because it provides better quality - DWRITE_TEXTURE_CLEARTYPE_3x1, - &RECT { - left: glyph_bounds.origin.x.0, - top: glyph_bounds.origin.y.0, - right: glyph_bounds.size.width.0 + glyph_bounds.origin.x.0, - bottom: glyph_bounds.size.height.0 + glyph_bounds.origin.y.0, - }, - &mut bitmap_data, - )?; - } - - let bitmap_factory = self.components.bitmap_factory.resolve()?; - let bitmap = unsafe { - bitmap_factory.CreateBitmapFromMemory( - glyph_bounds.size.width.0 as u32, - glyph_bounds.size.height.0 as u32, - &GUID_WICPixelFormat24bppRGB, - glyph_bounds.size.width.0 as u32 * 3, - &bitmap_data, - ) - }?; - - let grayscale_bitmap = - unsafe { WICConvertBitmapSource(&GUID_WICPixelFormat8bppGray, &bitmap) }?; - - let mut bitmap_data = - vec![0u8; glyph_bounds.size.width.0 as usize * glyph_bounds.size.height.0 as usize]; - unsafe { - grayscale_bitmap.CopyPixels( - std::ptr::null() as _, - glyph_bounds.size.width.0 as u32, - &mut bitmap_data, - ) - }?; - - Ok(bitmap_data) - } - - fn rasterize_color( - &self, - params: &RenderGlyphParams, - glyph_bounds: Bounds<DevicePixels>, - ) -> Result<Vec<u8>> { - let bitmap_size = glyph_bounds.size; - let subpixel_shift = params - .subpixel_variant - .map(|v| v as f32 / SUBPIXEL_VARIANTS as f32); - let baseline_origin_x = subpixel_shift.x / params.scale_factor; - let baseline_origin_y = subpixel_shift.y / params.scale_factor; - - let transform = DWRITE_MATRIX { - m11: params.scale_factor, - m12: 0.0, - m21: 0.0, - m22: params.scale_factor, - dx: 0.0, - dy: 0.0, - }; - - let font = &self.fonts[params.font_id.0]; + let font_info = &self.fonts[params.font_id.0]; let glyph_id = [params.glyph_id.0 as u16]; let advance = [glyph_bounds.size.width.0 as f32]; let offset = [DWRITE_GLYPH_OFFSET { @@ -945,7 +739,7 @@ impl DirectWriteState { ascenderOffset: glyph_bounds.origin.y.0 as f32 / params.scale_factor, }]; let glyph_run = DWRITE_GLYPH_RUN { - fontFace: unsafe { std::mem::transmute_copy(&font.font_face) }, + fontFace: unsafe { std::mem::transmute_copy(&font_info.font_face) }, fontEmSize: params.font_size.0, glyphCount: 1, glyphIndices: glyph_id.as_ptr(), @@ -955,254 +749,160 @@ impl DirectWriteState { bidiLevel: 0, }; - // todo: support formats other than COLR - let color_enumerator = unsafe { - self.components.factory.TranslateColorGlyphRun( - Vector2::new(baseline_origin_x, baseline_origin_y), - &glyph_run, - None, - DWRITE_GLYPH_IMAGE_FORMATS_COLR, - DWRITE_MEASURING_MODE_NATURAL, - Some(&transform), - 0, - ) - }?; + // Add an extra pixel when the subpixel variant isn't zero to make room for anti-aliasing. + let mut bitmap_size = glyph_bounds.size; + if params.subpixel_variant.x > 0 { + bitmap_size.width += DevicePixels(1); + } + if params.subpixel_variant.y > 0 { + bitmap_size.height += DevicePixels(1); + } + let bitmap_size = bitmap_size; - let mut glyph_layers = Vec::new(); - loop { - let color_run = unsafe { color_enumerator.GetCurrentRun() }?; - let color_run = unsafe { &*color_run }; - let image_format = color_run.glyphImageFormat & !DWRITE_GLYPH_IMAGE_FORMATS_TRUETYPE; - if image_format == DWRITE_GLYPH_IMAGE_FORMATS_COLR { - let color_analysis = unsafe { - self.components.factory.CreateGlyphRunAnalysis( - &color_run.Base.glyphRun as *const _, - Some(&transform), - DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC, - DWRITE_MEASURING_MODE_NATURAL, - DWRITE_GRID_FIT_MODE_DEFAULT, - DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE, - baseline_origin_x, - baseline_origin_y, - ) - }?; - - let color_bounds = - unsafe { color_analysis.GetAlphaTextureBounds(DWRITE_TEXTURE_CLEARTYPE_3x1) }?; - - let color_size = size( - color_bounds.right - color_bounds.left, - color_bounds.bottom - color_bounds.top, - ); - if color_size.width > 0 && color_size.height > 0 { - let mut alpha_data = - vec![0u8; (color_size.width * color_size.height * 3) as usize]; - unsafe { - color_analysis.CreateAlphaTexture( - DWRITE_TEXTURE_CLEARTYPE_3x1, - &color_bounds, - &mut alpha_data, - ) - }?; - - let run_color = { - let run_color = color_run.Base.runColor; - Rgba { - r: run_color.r, - g: run_color.g, - b: run_color.b, - a: run_color.a, - } - }; - let bounds = bounds(point(color_bounds.left, color_bounds.top), color_size); - let alpha_data = alpha_data - .chunks_exact(3) - .flat_map(|chunk| [chunk[0], chunk[1], chunk[2], 255]) - .collect::<Vec<_>>(); - glyph_layers.push(GlyphLayerTexture::new( - &self.components.gpu_state, - run_color, - bounds, - &alpha_data, - )?); - } - } - - let has_next = unsafe { color_enumerator.MoveNext() } - .map(|e| e.as_bool()) - .unwrap_or(false); - if !has_next { - break; - } + let total_bytes; + let bitmap_format; + let render_target_property; + let bitmap_width; + let bitmap_height; + let bitmap_stride; + let bitmap_dpi; + if params.is_emoji { + total_bytes = bitmap_size.height.0 as usize * bitmap_size.width.0 as usize * 4; + bitmap_format = &GUID_WICPixelFormat32bppPBGRA; + render_target_property = get_render_target_property( + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_PREMULTIPLIED, + ); + bitmap_width = bitmap_size.width.0 as u32; + bitmap_height = bitmap_size.height.0 as u32; + bitmap_stride = bitmap_size.width.0 as u32 * 4; + bitmap_dpi = 96.0; + } else { + total_bytes = bitmap_size.height.0 as usize * bitmap_size.width.0 as usize; + bitmap_format = &GUID_WICPixelFormat8bppAlpha; + render_target_property = + get_render_target_property(DXGI_FORMAT_A8_UNORM, D2D1_ALPHA_MODE_STRAIGHT); + bitmap_width = bitmap_size.width.0 as u32 * 2; + bitmap_height = bitmap_size.height.0 as u32 * 2; + bitmap_stride = bitmap_size.width.0 as u32; + bitmap_dpi = 192.0; } - let gpu_state = &self.components.gpu_state; - let params_buffer = { - let desc = D3D11_BUFFER_DESC { - ByteWidth: std::mem::size_of::<GlyphLayerTextureParams>() as u32, - Usage: D3D11_USAGE_DYNAMIC, - BindFlags: D3D11_BIND_CONSTANT_BUFFER.0 as u32, - CPUAccessFlags: D3D11_CPU_ACCESS_WRITE.0 as u32, - MiscFlags: 0, - StructureByteStride: 0, + let bitmap_factory = self.components.bitmap_factory.resolve()?; + unsafe { + let bitmap = bitmap_factory.CreateBitmap( + bitmap_width, + bitmap_height, + bitmap_format, + WICBitmapCacheOnLoad, + )?; + let render_target = self + .components + .d2d1_factory + .CreateWicBitmapRenderTarget(&bitmap, &render_target_property)?; + let brush = render_target.CreateSolidColorBrush(&BRUSH_COLOR, None)?; + let subpixel_shift = params + .subpixel_variant + .map(|v| v as f32 / SUBPIXEL_VARIANTS as f32); + let baseline_origin = Vector2 { + X: subpixel_shift.x / params.scale_factor, + Y: subpixel_shift.y / params.scale_factor, }; - let mut buffer = None; - unsafe { - gpu_state - .device - .CreateBuffer(&desc, None, Some(&mut buffer)) - }?; - [buffer] - }; + // This `cast()` action here should never fail since we are running on Win10+, and + // ID2D1DeviceContext4 requires Win8+ + let render_target = render_target.cast::<ID2D1DeviceContext4>().unwrap(); + render_target.SetUnitMode(D2D1_UNIT_MODE_DIPS); + render_target.SetDpi( + bitmap_dpi * params.scale_factor, + bitmap_dpi * params.scale_factor, + ); + render_target.SetTextRenderingParams(&self.components.render_context.params); + render_target.BeginDraw(); - let render_target_texture = { - let mut texture = None; - let desc = D3D11_TEXTURE2D_DESC { - Width: bitmap_size.width.0 as u32, - Height: bitmap_size.height.0 as u32, - MipLevels: 1, - ArraySize: 1, - Format: DXGI_FORMAT_B8G8R8A8_UNORM, - SampleDesc: DXGI_SAMPLE_DESC { - Count: 1, - Quality: 0, - }, - Usage: D3D11_USAGE_DEFAULT, - BindFlags: D3D11_BIND_RENDER_TARGET.0 as u32, - CPUAccessFlags: 0, - MiscFlags: 0, - }; - unsafe { - gpu_state - .device - .CreateTexture2D(&desc, None, Some(&mut texture)) - }?; - texture.unwrap() - }; - - let render_target_view = { - let desc = D3D11_RENDER_TARGET_VIEW_DESC { - Format: DXGI_FORMAT_B8G8R8A8_UNORM, - ViewDimension: D3D11_RTV_DIMENSION_TEXTURE2D, - Anonymous: D3D11_RENDER_TARGET_VIEW_DESC_0 { - Texture2D: D3D11_TEX2D_RTV { MipSlice: 0 }, - }, - }; - let mut rtv = None; - unsafe { - gpu_state.device.CreateRenderTargetView( - &render_target_texture, - Some(&desc), - Some(&mut rtv), - ) - }?; - [rtv] - }; - - let staging_texture = { - let mut texture = None; - let desc = D3D11_TEXTURE2D_DESC { - Width: bitmap_size.width.0 as u32, - Height: bitmap_size.height.0 as u32, - MipLevels: 1, - ArraySize: 1, - Format: DXGI_FORMAT_B8G8R8A8_UNORM, - SampleDesc: DXGI_SAMPLE_DESC { - Count: 1, - Quality: 0, - }, - Usage: D3D11_USAGE_STAGING, - BindFlags: 0, - CPUAccessFlags: D3D11_CPU_ACCESS_READ.0 as u32, - MiscFlags: 0, - }; - unsafe { - gpu_state - .device - .CreateTexture2D(&desc, None, Some(&mut texture)) - }?; - texture.unwrap() - }; - - let device_context = &gpu_state.device_context; - unsafe { device_context.IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP) }; - unsafe { device_context.VSSetShader(&gpu_state.vertex_shader, None) }; - unsafe { device_context.PSSetShader(&gpu_state.pixel_shader, None) }; - unsafe { device_context.VSSetConstantBuffers(0, Some(¶ms_buffer)) }; - unsafe { device_context.PSSetConstantBuffers(0, Some(¶ms_buffer)) }; - unsafe { device_context.OMSetRenderTargets(Some(&render_target_view), None) }; - unsafe { device_context.PSSetSamplers(0, Some(&gpu_state.sampler)) }; - unsafe { device_context.OMSetBlendState(&gpu_state.blend_state, None, 0xffffffff) }; - - for layer in glyph_layers { - let params = GlyphLayerTextureParams { - run_color: layer.run_color, - bounds: layer.bounds, - }; - unsafe { - let mut dest = std::mem::zeroed(); - gpu_state.device_context.Map( - params_buffer[0].as_ref().unwrap(), + if params.is_emoji { + // WARN: only DWRITE_GLYPH_IMAGE_FORMATS_COLR has been tested + let enumerator = self.components.factory.TranslateColorGlyphRun( + baseline_origin, + &glyph_run as _, + None, + DWRITE_GLYPH_IMAGE_FORMATS_COLR + | DWRITE_GLYPH_IMAGE_FORMATS_SVG + | DWRITE_GLYPH_IMAGE_FORMATS_PNG + | DWRITE_GLYPH_IMAGE_FORMATS_JPEG + | DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8, + DWRITE_MEASURING_MODE_NATURAL, + None, 0, - D3D11_MAP_WRITE_DISCARD, - 0, - Some(&mut dest), )?; - std::ptr::copy_nonoverlapping(¶ms as *const _, dest.pData as *mut _, 1); - gpu_state - .device_context - .Unmap(params_buffer[0].as_ref().unwrap(), 0); - }; + while enumerator.MoveNext().is_ok() { + let Ok(color_glyph) = enumerator.GetCurrentRun() else { + break; + }; + let color_glyph = &*color_glyph; + let brush_color = translate_color(&color_glyph.Base.runColor); + brush.SetColor(&brush_color); + match color_glyph.glyphImageFormat { + DWRITE_GLYPH_IMAGE_FORMATS_PNG + | DWRITE_GLYPH_IMAGE_FORMATS_JPEG + | DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8 => render_target + .DrawColorBitmapGlyphRun( + color_glyph.glyphImageFormat, + baseline_origin, + &color_glyph.Base.glyphRun, + color_glyph.measuringMode, + D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DEFAULT, + ), + DWRITE_GLYPH_IMAGE_FORMATS_SVG => render_target.DrawSvgGlyphRun( + baseline_origin, + &color_glyph.Base.glyphRun, + &brush, + None, + color_glyph.Base.paletteIndex as u32, + color_glyph.measuringMode, + ), + _ => render_target.DrawGlyphRun( + baseline_origin, + &color_glyph.Base.glyphRun, + Some(color_glyph.Base.glyphRunDescription as *const _), + &brush, + color_glyph.measuringMode, + ), + } + } + } else { + render_target.DrawGlyphRun( + baseline_origin, + &glyph_run, + None, + &brush, + DWRITE_MEASURING_MODE_NATURAL, + ); + } + render_target.EndDraw(None, None)?; - let texture = [Some(layer.texture_view)]; - unsafe { device_context.PSSetShaderResources(0, Some(&texture)) }; - - let viewport = [D3D11_VIEWPORT { - TopLeftX: layer.bounds.origin.x as f32, - TopLeftY: layer.bounds.origin.y as f32, - Width: layer.bounds.size.width as f32, - Height: layer.bounds.size.height as f32, - MinDepth: 0.0, - MaxDepth: 1.0, - }]; - unsafe { device_context.RSSetViewports(Some(&viewport)) }; - - unsafe { device_context.Draw(4, 0) }; + let mut raw_data = vec![0u8; total_bytes]; + if params.is_emoji { + bitmap.CopyPixels(std::ptr::null() as _, bitmap_stride, &mut raw_data)?; + // Convert from BGRA with premultiplied alpha to BGRA with straight alpha. + for pixel in raw_data.chunks_exact_mut(4) { + let a = pixel[3] as f32 / 255.; + pixel[0] = (pixel[0] as f32 / a) as u8; + pixel[1] = (pixel[1] as f32 / a) as u8; + pixel[2] = (pixel[2] as f32 / a) as u8; + } + } else { + let scaler = bitmap_factory.CreateBitmapScaler()?; + scaler.Initialize( + &bitmap, + bitmap_size.width.0 as u32, + bitmap_size.height.0 as u32, + WICBitmapInterpolationModeHighQualityCubic, + )?; + scaler.CopyPixels(std::ptr::null() as _, bitmap_stride, &mut raw_data)?; + } + Ok((bitmap_size, raw_data)) } - - unsafe { device_context.CopyResource(&staging_texture, &render_target_texture) }; - - let mapped_data = { - let mut mapped_data = D3D11_MAPPED_SUBRESOURCE::default(); - unsafe { - device_context.Map( - &staging_texture, - 0, - D3D11_MAP_READ, - 0, - Some(&mut mapped_data), - ) - }?; - mapped_data - }; - let mut rasterized = - vec![0u8; (bitmap_size.width.0 as u32 * bitmap_size.height.0 as u32 * 4) as usize]; - - for y in 0..bitmap_size.height.0 as usize { - let width = bitmap_size.width.0 as usize; - unsafe { - std::ptr::copy_nonoverlapping::<u8>( - (mapped_data.pData as *const u8).byte_add(mapped_data.RowPitch as usize * y), - rasterized - .as_mut_ptr() - .byte_add(width * y * std::mem::size_of::<u32>()), - width * std::mem::size_of::<u32>(), - ) - }; - } - - Ok(rasterized) } fn get_typographic_bounds(&self, font_id: FontId, glyph_id: GlyphId) -> Result<Bounds<f32>> { @@ -1276,84 +976,6 @@ impl Drop for DirectWriteState { } } -struct GlyphLayerTexture { - run_color: Rgba, - bounds: Bounds<i32>, - texture_view: ID3D11ShaderResourceView, - // holding on to the texture to not RAII drop it - _texture: ID3D11Texture2D, -} - -impl GlyphLayerTexture { - pub fn new( - gpu_state: &GPUState, - run_color: Rgba, - bounds: Bounds<i32>, - alpha_data: &[u8], - ) -> Result<Self> { - let texture_size = bounds.size; - - let desc = D3D11_TEXTURE2D_DESC { - Width: texture_size.width as u32, - Height: texture_size.height as u32, - MipLevels: 1, - ArraySize: 1, - Format: DXGI_FORMAT_R8G8B8A8_UNORM, - SampleDesc: DXGI_SAMPLE_DESC { - Count: 1, - Quality: 0, - }, - Usage: D3D11_USAGE_DEFAULT, - BindFlags: D3D11_BIND_SHADER_RESOURCE.0 as u32, - CPUAccessFlags: D3D11_CPU_ACCESS_WRITE.0 as u32, - MiscFlags: 0, - }; - - let texture = { - let mut texture: Option<ID3D11Texture2D> = None; - unsafe { - gpu_state - .device - .CreateTexture2D(&desc, None, Some(&mut texture))? - }; - texture.unwrap() - }; - let texture_view = { - let mut view: Option<ID3D11ShaderResourceView> = None; - unsafe { - gpu_state - .device - .CreateShaderResourceView(&texture, None, Some(&mut view))? - }; - view.unwrap() - }; - - unsafe { - gpu_state.device_context.UpdateSubresource( - &texture, - 0, - None, - alpha_data.as_ptr() as _, - (texture_size.width * 4) as u32, - 0, - ) - }; - - Ok(GlyphLayerTexture { - run_color, - bounds, - texture_view, - _texture: texture, - }) - } -} - -#[repr(C)] -struct GlyphLayerTextureParams { - bounds: Bounds<i32>, - run_color: Rgba, -} - struct TextRendererWrapper(pub IDWriteTextRenderer); impl TextRendererWrapper { @@ -1848,6 +1470,16 @@ fn get_name(string: IDWriteLocalizedStrings, locale: &str) -> Result<String> { Ok(String::from_utf16_lossy(&name_vec[..name_length])) } +#[inline] +fn translate_color(color: &DWRITE_COLOR_F) -> D2D1_COLOR_F { + D2D1_COLOR_F { + r: color.r, + g: color.g, + b: color.b, + a: color.a, + } +} + fn get_system_ui_font_name() -> SharedString { unsafe { let mut info: LOGFONTW = std::mem::zeroed(); @@ -1872,6 +1504,24 @@ fn get_system_ui_font_name() -> SharedString { } } +#[inline] +fn get_render_target_property( + pixel_format: DXGI_FORMAT, + alpha_mode: D2D1_ALPHA_MODE, +) -> D2D1_RENDER_TARGET_PROPERTIES { + D2D1_RENDER_TARGET_PROPERTIES { + r#type: D2D1_RENDER_TARGET_TYPE_DEFAULT, + pixelFormat: D2D1_PIXEL_FORMAT { + format: pixel_format, + alphaMode: alpha_mode, + }, + dpiX: 96.0, + dpiY: 96.0, + usage: D2D1_RENDER_TARGET_USAGE_NONE, + minLevel: D2D1_FEATURE_LEVEL_DEFAULT, + } +} + // One would think that with newer DirectWrite method: IDWriteFontFace4::GetGlyphImageFormats // but that doesn't seem to work for some glyphs, say ❤ fn is_color_glyph( @@ -1911,6 +1561,12 @@ fn is_color_glyph( } const DEFAULT_LOCALE_NAME: PCWSTR = windows::core::w!("en-US"); +const BRUSH_COLOR: D2D1_COLOR_F = D2D1_COLOR_F { + r: 1.0, + g: 1.0, + b: 1.0, + a: 1.0, +}; #[cfg(test)] mod tests { diff --git a/crates/gpui/src/platform/windows/directx_atlas.rs b/crates/gpui/src/platform/windows/directx_atlas.rs deleted file mode 100644 index 6bced4c11d..0000000000 --- a/crates/gpui/src/platform/windows/directx_atlas.rs +++ /dev/null @@ -1,309 +0,0 @@ -use collections::FxHashMap; -use etagere::BucketedAtlasAllocator; -use parking_lot::Mutex; -use windows::Win32::Graphics::{ - Direct3D11::{ - D3D11_BIND_SHADER_RESOURCE, D3D11_BOX, D3D11_CPU_ACCESS_WRITE, D3D11_TEXTURE2D_DESC, - D3D11_USAGE_DEFAULT, ID3D11Device, ID3D11DeviceContext, ID3D11ShaderResourceView, - ID3D11Texture2D, - }, - Dxgi::Common::*, -}; - -use crate::{ - AtlasKey, AtlasTextureId, AtlasTextureKind, AtlasTile, Bounds, DevicePixels, PlatformAtlas, - Point, Size, platform::AtlasTextureList, -}; - -pub(crate) struct DirectXAtlas(Mutex<DirectXAtlasState>); - -struct DirectXAtlasState { - device: ID3D11Device, - device_context: ID3D11DeviceContext, - monochrome_textures: AtlasTextureList<DirectXAtlasTexture>, - polychrome_textures: AtlasTextureList<DirectXAtlasTexture>, - tiles_by_key: FxHashMap<AtlasKey, AtlasTile>, -} - -struct DirectXAtlasTexture { - id: AtlasTextureId, - bytes_per_pixel: u32, - allocator: BucketedAtlasAllocator, - texture: ID3D11Texture2D, - view: [Option<ID3D11ShaderResourceView>; 1], - live_atlas_keys: u32, -} - -impl DirectXAtlas { - pub(crate) fn new(device: &ID3D11Device, device_context: &ID3D11DeviceContext) -> Self { - DirectXAtlas(Mutex::new(DirectXAtlasState { - device: device.clone(), - device_context: device_context.clone(), - monochrome_textures: Default::default(), - polychrome_textures: Default::default(), - tiles_by_key: Default::default(), - })) - } - - pub(crate) fn get_texture_view( - &self, - id: AtlasTextureId, - ) -> [Option<ID3D11ShaderResourceView>; 1] { - let lock = self.0.lock(); - let tex = lock.texture(id); - tex.view.clone() - } - - pub(crate) fn handle_device_lost( - &self, - device: &ID3D11Device, - device_context: &ID3D11DeviceContext, - ) { - let mut lock = self.0.lock(); - lock.device = device.clone(); - lock.device_context = device_context.clone(); - lock.monochrome_textures = AtlasTextureList::default(); - lock.polychrome_textures = AtlasTextureList::default(); - lock.tiles_by_key.clear(); - } -} - -impl PlatformAtlas for DirectXAtlas { - fn get_or_insert_with<'a>( - &self, - key: &AtlasKey, - build: &mut dyn FnMut() -> anyhow::Result< - Option<(Size<DevicePixels>, std::borrow::Cow<'a, [u8]>)>, - >, - ) -> anyhow::Result<Option<AtlasTile>> { - let mut lock = self.0.lock(); - if let Some(tile) = lock.tiles_by_key.get(key) { - Ok(Some(tile.clone())) - } else { - let Some((size, bytes)) = build()? else { - return Ok(None); - }; - let tile = lock - .allocate(size, key.texture_kind()) - .ok_or_else(|| anyhow::anyhow!("failed to allocate"))?; - let texture = lock.texture(tile.texture_id); - texture.upload(&lock.device_context, tile.bounds, &bytes); - lock.tiles_by_key.insert(key.clone(), tile.clone()); - Ok(Some(tile)) - } - } - - fn remove(&self, key: &AtlasKey) { - let mut lock = self.0.lock(); - - let Some(id) = lock.tiles_by_key.remove(key).map(|tile| tile.texture_id) else { - return; - }; - - let textures = match id.kind { - AtlasTextureKind::Monochrome => &mut lock.monochrome_textures, - AtlasTextureKind::Polychrome => &mut lock.polychrome_textures, - }; - - let Some(texture_slot) = textures.textures.get_mut(id.index as usize) else { - return; - }; - - if let Some(mut texture) = texture_slot.take() { - texture.decrement_ref_count(); - if texture.is_unreferenced() { - textures.free_list.push(texture.id.index as usize); - lock.tiles_by_key.remove(key); - } else { - *texture_slot = Some(texture); - } - } - } -} - -impl DirectXAtlasState { - fn allocate( - &mut self, - size: Size<DevicePixels>, - texture_kind: AtlasTextureKind, - ) -> Option<AtlasTile> { - { - let textures = match texture_kind { - AtlasTextureKind::Monochrome => &mut self.monochrome_textures, - AtlasTextureKind::Polychrome => &mut self.polychrome_textures, - }; - - if let Some(tile) = textures - .iter_mut() - .rev() - .find_map(|texture| texture.allocate(size)) - { - return Some(tile); - } - } - - let texture = self.push_texture(size, texture_kind)?; - texture.allocate(size) - } - - fn push_texture( - &mut self, - min_size: Size<DevicePixels>, - kind: AtlasTextureKind, - ) -> Option<&mut DirectXAtlasTexture> { - const DEFAULT_ATLAS_SIZE: Size<DevicePixels> = Size { - width: DevicePixels(1024), - height: DevicePixels(1024), - }; - // Max texture size for DirectX. See: - // https://learn.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-resources-limits - const MAX_ATLAS_SIZE: Size<DevicePixels> = Size { - width: DevicePixels(16384), - height: DevicePixels(16384), - }; - let size = min_size.min(&MAX_ATLAS_SIZE).max(&DEFAULT_ATLAS_SIZE); - let pixel_format; - let bind_flag; - let bytes_per_pixel; - match kind { - AtlasTextureKind::Monochrome => { - pixel_format = DXGI_FORMAT_R8_UNORM; - bind_flag = D3D11_BIND_SHADER_RESOURCE; - bytes_per_pixel = 1; - } - AtlasTextureKind::Polychrome => { - pixel_format = DXGI_FORMAT_B8G8R8A8_UNORM; - bind_flag = D3D11_BIND_SHADER_RESOURCE; - bytes_per_pixel = 4; - } - } - let texture_desc = D3D11_TEXTURE2D_DESC { - Width: size.width.0 as u32, - Height: size.height.0 as u32, - MipLevels: 1, - ArraySize: 1, - Format: pixel_format, - SampleDesc: DXGI_SAMPLE_DESC { - Count: 1, - Quality: 0, - }, - Usage: D3D11_USAGE_DEFAULT, - BindFlags: bind_flag.0 as u32, - CPUAccessFlags: D3D11_CPU_ACCESS_WRITE.0 as u32, - MiscFlags: 0, - }; - let mut texture: Option<ID3D11Texture2D> = None; - unsafe { - // This only returns None if the device is lost, which we will recreate later. - // So it's ok to return None here. - self.device - .CreateTexture2D(&texture_desc, None, Some(&mut texture)) - .ok()?; - } - let texture = texture.unwrap(); - - let texture_list = match kind { - AtlasTextureKind::Monochrome => &mut self.monochrome_textures, - AtlasTextureKind::Polychrome => &mut self.polychrome_textures, - }; - let index = texture_list.free_list.pop(); - let view = unsafe { - let mut view = None; - self.device - .CreateShaderResourceView(&texture, None, Some(&mut view)) - .ok()?; - [view] - }; - let atlas_texture = DirectXAtlasTexture { - id: AtlasTextureId { - index: index.unwrap_or(texture_list.textures.len()) as u32, - kind, - }, - bytes_per_pixel, - allocator: etagere::BucketedAtlasAllocator::new(size.into()), - texture, - view, - live_atlas_keys: 0, - }; - if let Some(ix) = index { - texture_list.textures[ix] = Some(atlas_texture); - texture_list.textures.get_mut(ix).unwrap().as_mut() - } else { - texture_list.textures.push(Some(atlas_texture)); - texture_list.textures.last_mut().unwrap().as_mut() - } - } - - fn texture(&self, id: AtlasTextureId) -> &DirectXAtlasTexture { - let textures = match id.kind { - crate::AtlasTextureKind::Monochrome => &self.monochrome_textures, - crate::AtlasTextureKind::Polychrome => &self.polychrome_textures, - }; - textures[id.index as usize].as_ref().unwrap() - } -} - -impl DirectXAtlasTexture { - fn allocate(&mut self, size: Size<DevicePixels>) -> Option<AtlasTile> { - let allocation = self.allocator.allocate(size.into())?; - let tile = AtlasTile { - texture_id: self.id, - tile_id: allocation.id.into(), - bounds: Bounds { - origin: allocation.rectangle.min.into(), - size, - }, - padding: 0, - }; - self.live_atlas_keys += 1; - Some(tile) - } - - fn upload( - &self, - device_context: &ID3D11DeviceContext, - bounds: Bounds<DevicePixels>, - bytes: &[u8], - ) { - unsafe { - device_context.UpdateSubresource( - &self.texture, - 0, - Some(&D3D11_BOX { - left: bounds.left().0 as u32, - top: bounds.top().0 as u32, - front: 0, - right: bounds.right().0 as u32, - bottom: bounds.bottom().0 as u32, - back: 1, - }), - bytes.as_ptr() as _, - bounds.size.width.to_bytes(self.bytes_per_pixel as u8), - 0, - ); - } - } - - fn decrement_ref_count(&mut self) { - self.live_atlas_keys -= 1; - } - - fn is_unreferenced(&mut self) -> bool { - self.live_atlas_keys == 0 - } -} - -impl From<Size<DevicePixels>> for etagere::Size { - fn from(size: Size<DevicePixels>) -> Self { - etagere::Size::new(size.width.into(), size.height.into()) - } -} - -impl From<etagere::Point> for Point<DevicePixels> { - fn from(value: etagere::Point) -> Self { - Point { - x: DevicePixels::from(value.x), - y: DevicePixels::from(value.y), - } - } -} diff --git a/crates/gpui/src/platform/windows/directx_renderer.rs b/crates/gpui/src/platform/windows/directx_renderer.rs deleted file mode 100644 index 72cc12a5b4..0000000000 --- a/crates/gpui/src/platform/windows/directx_renderer.rs +++ /dev/null @@ -1,1807 +0,0 @@ -use std::{mem::ManuallyDrop, sync::Arc}; - -use ::util::ResultExt; -use anyhow::{Context, Result}; -use windows::{ - Win32::{ - Foundation::{HMODULE, HWND}, - Graphics::{ - Direct3D::*, - Direct3D11::*, - DirectComposition::*, - Dxgi::{Common::*, *}, - }, - }, - core::Interface, -}; - -use crate::{ - platform::windows::directx_renderer::shader_resources::{ - RawShaderBytes, ShaderModule, ShaderTarget, - }, - *, -}; - -pub(crate) const DISABLE_DIRECT_COMPOSITION: &str = "GPUI_DISABLE_DIRECT_COMPOSITION"; -const RENDER_TARGET_FORMAT: DXGI_FORMAT = DXGI_FORMAT_B8G8R8A8_UNORM; -// This configuration is used for MSAA rendering on paths only, and it's guaranteed to be supported by DirectX 11. -const PATH_MULTISAMPLE_COUNT: u32 = 4; - -pub(crate) struct DirectXRenderer { - hwnd: HWND, - atlas: Arc<DirectXAtlas>, - devices: ManuallyDrop<DirectXDevices>, - resources: ManuallyDrop<DirectXResources>, - globals: DirectXGlobalElements, - pipelines: DirectXRenderPipelines, - direct_composition: Option<DirectComposition>, -} - -/// Direct3D objects -#[derive(Clone)] -pub(crate) struct DirectXDevices { - adapter: IDXGIAdapter1, - dxgi_factory: IDXGIFactory6, - pub(crate) device: ID3D11Device, - pub(crate) device_context: ID3D11DeviceContext, - dxgi_device: Option<IDXGIDevice>, -} - -struct DirectXResources { - // Direct3D rendering objects - swap_chain: IDXGISwapChain1, - render_target: ManuallyDrop<ID3D11Texture2D>, - render_target_view: [Option<ID3D11RenderTargetView>; 1], - - // Path intermediate textures (with MSAA) - path_intermediate_texture: ID3D11Texture2D, - path_intermediate_srv: [Option<ID3D11ShaderResourceView>; 1], - path_intermediate_msaa_texture: ID3D11Texture2D, - path_intermediate_msaa_view: [Option<ID3D11RenderTargetView>; 1], - - // Cached window size and viewport - width: u32, - height: u32, - viewport: [D3D11_VIEWPORT; 1], -} - -struct DirectXRenderPipelines { - shadow_pipeline: PipelineState<Shadow>, - quad_pipeline: PipelineState<Quad>, - path_rasterization_pipeline: PipelineState<PathRasterizationSprite>, - path_sprite_pipeline: PipelineState<PathSprite>, - underline_pipeline: PipelineState<Underline>, - mono_sprites: PipelineState<MonochromeSprite>, - poly_sprites: PipelineState<PolychromeSprite>, -} - -struct DirectXGlobalElements { - global_params_buffer: [Option<ID3D11Buffer>; 1], - sampler: [Option<ID3D11SamplerState>; 1], -} - -struct DirectComposition { - comp_device: IDCompositionDevice, - comp_target: IDCompositionTarget, - comp_visual: IDCompositionVisual, -} - -impl DirectXDevices { - pub(crate) fn new(disable_direct_composition: bool) -> Result<ManuallyDrop<Self>> { - let debug_layer_available = check_debug_layer_available(); - let dxgi_factory = - get_dxgi_factory(debug_layer_available).context("Creating DXGI factory")?; - let adapter = - get_adapter(&dxgi_factory, debug_layer_available).context("Getting DXGI adapter")?; - let (device, device_context) = { - let mut device: Option<ID3D11Device> = None; - let mut context: Option<ID3D11DeviceContext> = None; - let mut feature_level = D3D_FEATURE_LEVEL::default(); - get_device( - &adapter, - Some(&mut device), - Some(&mut context), - Some(&mut feature_level), - debug_layer_available, - ) - .context("Creating Direct3D device")?; - match feature_level { - D3D_FEATURE_LEVEL_11_1 => { - log::info!("Created device with Direct3D 11.1 feature level.") - } - D3D_FEATURE_LEVEL_11_0 => { - log::info!("Created device with Direct3D 11.0 feature level.") - } - D3D_FEATURE_LEVEL_10_1 => { - log::info!("Created device with Direct3D 10.1 feature level.") - } - _ => unreachable!(), - } - (device.unwrap(), context.unwrap()) - }; - let dxgi_device = if disable_direct_composition { - None - } else { - Some(device.cast().context("Creating DXGI device")?) - }; - - Ok(ManuallyDrop::new(Self { - adapter, - dxgi_factory, - dxgi_device, - device, - device_context, - })) - } -} - -impl DirectXRenderer { - pub(crate) fn new(hwnd: HWND, disable_direct_composition: bool) -> Result<Self> { - if disable_direct_composition { - log::info!("Direct Composition is disabled."); - } - - let devices = - DirectXDevices::new(disable_direct_composition).context("Creating DirectX devices")?; - let atlas = Arc::new(DirectXAtlas::new(&devices.device, &devices.device_context)); - - let resources = DirectXResources::new(&devices, 1, 1, hwnd, disable_direct_composition) - .context("Creating DirectX resources")?; - let globals = DirectXGlobalElements::new(&devices.device) - .context("Creating DirectX global elements")?; - let pipelines = DirectXRenderPipelines::new(&devices.device) - .context("Creating DirectX render pipelines")?; - - let direct_composition = if disable_direct_composition { - None - } else { - let composition = DirectComposition::new(devices.dxgi_device.as_ref().unwrap(), hwnd) - .context("Creating DirectComposition")?; - composition - .set_swap_chain(&resources.swap_chain) - .context("Setting swap chain for DirectComposition")?; - Some(composition) - }; - - Ok(DirectXRenderer { - hwnd, - atlas, - devices, - resources, - globals, - pipelines, - direct_composition, - }) - } - - pub(crate) fn sprite_atlas(&self) -> Arc<dyn PlatformAtlas> { - self.atlas.clone() - } - - fn pre_draw(&self) -> Result<()> { - update_buffer( - &self.devices.device_context, - self.globals.global_params_buffer[0].as_ref().unwrap(), - &[GlobalParams { - viewport_size: [ - self.resources.viewport[0].Width, - self.resources.viewport[0].Height, - ], - _pad: 0, - }], - )?; - unsafe { - self.devices.device_context.ClearRenderTargetView( - self.resources.render_target_view[0].as_ref().unwrap(), - &[0.0; 4], - ); - self.devices - .device_context - .OMSetRenderTargets(Some(&self.resources.render_target_view), None); - self.devices - .device_context - .RSSetViewports(Some(&self.resources.viewport)); - } - Ok(()) - } - - fn present(&mut self) -> Result<()> { - unsafe { - let result = self.resources.swap_chain.Present(1, DXGI_PRESENT(0)); - // Presenting the swap chain can fail if the DirectX device was removed or reset. - if result == DXGI_ERROR_DEVICE_REMOVED || result == DXGI_ERROR_DEVICE_RESET { - let reason = self.devices.device.GetDeviceRemovedReason(); - log::error!( - "DirectX device removed or reset when drawing. Reason: {:?}", - reason - ); - self.handle_device_lost()?; - } else { - result.ok()?; - } - } - Ok(()) - } - - fn handle_device_lost(&mut self) -> Result<()> { - // Here we wait a bit to ensure the the system has time to recover from the device lost state. - // If we don't wait, the final drawing result will be blank. - std::thread::sleep(std::time::Duration::from_millis(300)); - let disable_direct_composition = self.direct_composition.is_none(); - - unsafe { - #[cfg(debug_assertions)] - report_live_objects(&self.devices.device) - .context("Failed to report live objects after device lost") - .log_err(); - - ManuallyDrop::drop(&mut self.resources); - self.devices.device_context.OMSetRenderTargets(None, None); - self.devices.device_context.ClearState(); - self.devices.device_context.Flush(); - - #[cfg(debug_assertions)] - report_live_objects(&self.devices.device) - .context("Failed to report live objects after device lost") - .log_err(); - - drop(self.direct_composition.take()); - ManuallyDrop::drop(&mut self.devices); - } - - let devices = DirectXDevices::new(disable_direct_composition) - .context("Recreating DirectX devices")?; - let resources = DirectXResources::new( - &devices, - self.resources.width, - self.resources.height, - self.hwnd, - disable_direct_composition, - )?; - let globals = DirectXGlobalElements::new(&devices.device)?; - let pipelines = DirectXRenderPipelines::new(&devices.device)?; - - let direct_composition = if disable_direct_composition { - None - } else { - let composition = - DirectComposition::new(devices.dxgi_device.as_ref().unwrap(), self.hwnd)?; - composition.set_swap_chain(&resources.swap_chain)?; - Some(composition) - }; - - self.atlas - .handle_device_lost(&devices.device, &devices.device_context); - self.devices = devices; - self.resources = resources; - self.globals = globals; - self.pipelines = pipelines; - self.direct_composition = direct_composition; - - unsafe { - self.devices - .device_context - .OMSetRenderTargets(Some(&self.resources.render_target_view), None); - } - Ok(()) - } - - pub(crate) fn draw(&mut self, scene: &Scene) -> Result<()> { - self.pre_draw()?; - for batch in scene.batches() { - match batch { - PrimitiveBatch::Shadows(shadows) => self.draw_shadows(shadows), - PrimitiveBatch::Quads(quads) => self.draw_quads(quads), - PrimitiveBatch::Paths(paths) => { - self.draw_paths_to_intermediate(paths)?; - self.draw_paths_from_intermediate(paths) - } - PrimitiveBatch::Underlines(underlines) => self.draw_underlines(underlines), - PrimitiveBatch::MonochromeSprites { - texture_id, - sprites, - } => self.draw_monochrome_sprites(texture_id, sprites), - PrimitiveBatch::PolychromeSprites { - texture_id, - sprites, - } => self.draw_polychrome_sprites(texture_id, sprites), - PrimitiveBatch::Surfaces(surfaces) => self.draw_surfaces(surfaces), - }.context(format!("scene too large: {} paths, {} shadows, {} quads, {} underlines, {} mono, {} poly, {} surfaces", - scene.paths.len(), - scene.shadows.len(), - scene.quads.len(), - scene.underlines.len(), - scene.monochrome_sprites.len(), - scene.polychrome_sprites.len(), - scene.surfaces.len(),))?; - } - self.present() - } - - pub(crate) fn resize(&mut self, new_size: Size<DevicePixels>) -> Result<()> { - let width = new_size.width.0.max(1) as u32; - let height = new_size.height.0.max(1) as u32; - if self.resources.width == width && self.resources.height == height { - return Ok(()); - } - unsafe { - // Clear the render target before resizing - self.devices.device_context.OMSetRenderTargets(None, None); - ManuallyDrop::drop(&mut self.resources.render_target); - drop(self.resources.render_target_view[0].take().unwrap()); - - let result = self.resources.swap_chain.ResizeBuffers( - BUFFER_COUNT as u32, - width, - height, - RENDER_TARGET_FORMAT, - DXGI_SWAP_CHAIN_FLAG(0), - ); - // Resizing the swap chain requires a call to the underlying DXGI adapter, which can return the device removed error. - // The app might have moved to a monitor that's attached to a different graphics device. - // When a graphics device is removed or reset, the desktop resolution often changes, resulting in a window size change. - match result { - Ok(_) => {} - Err(e) => { - if e.code() == DXGI_ERROR_DEVICE_REMOVED || e.code() == DXGI_ERROR_DEVICE_RESET - { - let reason = self.devices.device.GetDeviceRemovedReason(); - log::error!( - "DirectX device removed or reset when resizing. Reason: {:?}", - reason - ); - self.resources.width = width; - self.resources.height = height; - self.handle_device_lost()?; - return Ok(()); - } else { - log::error!("Failed to resize swap chain: {:?}", e); - return Err(e.into()); - } - } - } - - self.resources - .recreate_resources(&self.devices, width, height)?; - self.devices - .device_context - .OMSetRenderTargets(Some(&self.resources.render_target_view), None); - } - Ok(()) - } - - fn draw_shadows(&mut self, shadows: &[Shadow]) -> Result<()> { - if shadows.is_empty() { - return Ok(()); - } - self.pipelines.shadow_pipeline.update_buffer( - &self.devices.device, - &self.devices.device_context, - shadows, - )?; - self.pipelines.shadow_pipeline.draw( - &self.devices.device_context, - &self.resources.viewport, - &self.globals.global_params_buffer, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - 4, - shadows.len() as u32, - ) - } - - fn draw_quads(&mut self, quads: &[Quad]) -> Result<()> { - if quads.is_empty() { - return Ok(()); - } - self.pipelines.quad_pipeline.update_buffer( - &self.devices.device, - &self.devices.device_context, - quads, - )?; - self.pipelines.quad_pipeline.draw( - &self.devices.device_context, - &self.resources.viewport, - &self.globals.global_params_buffer, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - 4, - quads.len() as u32, - ) - } - - fn draw_paths_to_intermediate(&mut self, paths: &[Path<ScaledPixels>]) -> Result<()> { - if paths.is_empty() { - return Ok(()); - } - - // Clear intermediate MSAA texture - unsafe { - self.devices.device_context.ClearRenderTargetView( - self.resources.path_intermediate_msaa_view[0] - .as_ref() - .unwrap(), - &[0.0; 4], - ); - // Set intermediate MSAA texture as render target - self.devices - .device_context - .OMSetRenderTargets(Some(&self.resources.path_intermediate_msaa_view), None); - } - - // Collect all vertices and sprites for a single draw call - let mut vertices = Vec::new(); - - for path in paths { - vertices.extend(path.vertices.iter().map(|v| PathRasterizationSprite { - xy_position: v.xy_position, - st_position: v.st_position, - color: path.color, - bounds: path.bounds.intersect(&path.content_mask.bounds), - })); - } - - self.pipelines.path_rasterization_pipeline.update_buffer( - &self.devices.device, - &self.devices.device_context, - &vertices, - )?; - self.pipelines.path_rasterization_pipeline.draw( - &self.devices.device_context, - &self.resources.viewport, - &self.globals.global_params_buffer, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, - vertices.len() as u32, - 1, - )?; - - // Resolve MSAA to non-MSAA intermediate texture - unsafe { - self.devices.device_context.ResolveSubresource( - &self.resources.path_intermediate_texture, - 0, - &self.resources.path_intermediate_msaa_texture, - 0, - RENDER_TARGET_FORMAT, - ); - // Restore main render target - self.devices - .device_context - .OMSetRenderTargets(Some(&self.resources.render_target_view), None); - } - - Ok(()) - } - - fn draw_paths_from_intermediate(&mut self, paths: &[Path<ScaledPixels>]) -> Result<()> { - let Some(first_path) = paths.first() else { - return Ok(()); - }; - - // When copying paths from the intermediate texture to the drawable, - // each pixel must only be copied once, in case of transparent paths. - // - // If all paths have the same draw order, then their bounds are all - // disjoint, so we can copy each path's bounds individually. If this - // batch combines different draw orders, we perform a single copy - // for a minimal spanning rect. - let sprites = if paths.last().unwrap().order == first_path.order { - paths - .iter() - .map(|path| PathSprite { - bounds: path.bounds, - }) - .collect::<Vec<_>>() - } else { - let mut bounds = first_path.bounds; - for path in paths.iter().skip(1) { - bounds = bounds.union(&path.bounds); - } - vec![PathSprite { bounds }] - }; - - self.pipelines.path_sprite_pipeline.update_buffer( - &self.devices.device, - &self.devices.device_context, - &sprites, - )?; - - // Draw the sprites with the path texture - self.pipelines.path_sprite_pipeline.draw_with_texture( - &self.devices.device_context, - &self.resources.path_intermediate_srv, - &self.resources.viewport, - &self.globals.global_params_buffer, - &self.globals.sampler, - sprites.len() as u32, - ) - } - - fn draw_underlines(&mut self, underlines: &[Underline]) -> Result<()> { - if underlines.is_empty() { - return Ok(()); - } - self.pipelines.underline_pipeline.update_buffer( - &self.devices.device, - &self.devices.device_context, - underlines, - )?; - self.pipelines.underline_pipeline.draw( - &self.devices.device_context, - &self.resources.viewport, - &self.globals.global_params_buffer, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - 4, - underlines.len() as u32, - ) - } - - fn draw_monochrome_sprites( - &mut self, - texture_id: AtlasTextureId, - sprites: &[MonochromeSprite], - ) -> Result<()> { - if sprites.is_empty() { - return Ok(()); - } - self.pipelines.mono_sprites.update_buffer( - &self.devices.device, - &self.devices.device_context, - sprites, - )?; - let texture_view = self.atlas.get_texture_view(texture_id); - self.pipelines.mono_sprites.draw_with_texture( - &self.devices.device_context, - &texture_view, - &self.resources.viewport, - &self.globals.global_params_buffer, - &self.globals.sampler, - sprites.len() as u32, - ) - } - - fn draw_polychrome_sprites( - &mut self, - texture_id: AtlasTextureId, - sprites: &[PolychromeSprite], - ) -> Result<()> { - if sprites.is_empty() { - return Ok(()); - } - self.pipelines.poly_sprites.update_buffer( - &self.devices.device, - &self.devices.device_context, - sprites, - )?; - let texture_view = self.atlas.get_texture_view(texture_id); - self.pipelines.poly_sprites.draw_with_texture( - &self.devices.device_context, - &texture_view, - &self.resources.viewport, - &self.globals.global_params_buffer, - &self.globals.sampler, - sprites.len() as u32, - ) - } - - fn draw_surfaces(&mut self, surfaces: &[PaintSurface]) -> Result<()> { - if surfaces.is_empty() { - return Ok(()); - } - Ok(()) - } - - pub(crate) fn gpu_specs(&self) -> Result<GpuSpecs> { - let desc = unsafe { self.devices.adapter.GetDesc1() }?; - let is_software_emulated = (desc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE.0 as u32) != 0; - let device_name = String::from_utf16_lossy(&desc.Description) - .trim_matches(char::from(0)) - .to_string(); - let driver_name = match desc.VendorId { - 0x10DE => "NVIDIA Corporation".to_string(), - 0x1002 => "AMD Corporation".to_string(), - 0x8086 => "Intel Corporation".to_string(), - id => format!("Unknown Vendor (ID: {:#X})", id), - }; - let driver_version = match desc.VendorId { - 0x10DE => nvidia::get_driver_version(), - 0x1002 => amd::get_driver_version(), - // For Intel and other vendors, we use the DXGI API to get the driver version. - _ => dxgi::get_driver_version(&self.devices.adapter), - } - .context("Failed to get gpu driver info") - .log_err() - .unwrap_or("Unknown Driver".to_string()); - Ok(GpuSpecs { - is_software_emulated, - device_name, - driver_name, - driver_info: driver_version, - }) - } -} - -impl DirectXResources { - pub fn new( - devices: &DirectXDevices, - width: u32, - height: u32, - hwnd: HWND, - disable_direct_composition: bool, - ) -> Result<ManuallyDrop<Self>> { - let swap_chain = if disable_direct_composition { - create_swap_chain(&devices.dxgi_factory, &devices.device, hwnd, width, height)? - } else { - create_swap_chain_for_composition( - &devices.dxgi_factory, - &devices.device, - width, - height, - )? - }; - - let ( - render_target, - render_target_view, - path_intermediate_texture, - path_intermediate_srv, - path_intermediate_msaa_texture, - path_intermediate_msaa_view, - viewport, - ) = create_resources(devices, &swap_chain, width, height)?; - set_rasterizer_state(&devices.device, &devices.device_context)?; - - Ok(ManuallyDrop::new(Self { - swap_chain, - render_target, - render_target_view, - path_intermediate_texture, - path_intermediate_msaa_texture, - path_intermediate_msaa_view, - path_intermediate_srv, - viewport, - width, - height, - })) - } - - #[inline] - fn recreate_resources( - &mut self, - devices: &DirectXDevices, - width: u32, - height: u32, - ) -> Result<()> { - let ( - render_target, - render_target_view, - path_intermediate_texture, - path_intermediate_srv, - path_intermediate_msaa_texture, - path_intermediate_msaa_view, - viewport, - ) = create_resources(devices, &self.swap_chain, width, height)?; - self.render_target = render_target; - self.render_target_view = render_target_view; - self.path_intermediate_texture = path_intermediate_texture; - self.path_intermediate_msaa_texture = path_intermediate_msaa_texture; - self.path_intermediate_msaa_view = path_intermediate_msaa_view; - self.path_intermediate_srv = path_intermediate_srv; - self.viewport = viewport; - self.width = width; - self.height = height; - Ok(()) - } -} - -impl DirectXRenderPipelines { - pub fn new(device: &ID3D11Device) -> Result<Self> { - let shadow_pipeline = PipelineState::new( - device, - "shadow_pipeline", - ShaderModule::Shadow, - 4, - create_blend_state(device)?, - )?; - let quad_pipeline = PipelineState::new( - device, - "quad_pipeline", - ShaderModule::Quad, - 64, - create_blend_state(device)?, - )?; - let path_rasterization_pipeline = PipelineState::new( - device, - "path_rasterization_pipeline", - ShaderModule::PathRasterization, - 32, - create_blend_state_for_path_rasterization(device)?, - )?; - let path_sprite_pipeline = PipelineState::new( - device, - "path_sprite_pipeline", - ShaderModule::PathSprite, - 4, - create_blend_state_for_path_sprite(device)?, - )?; - let underline_pipeline = PipelineState::new( - device, - "underline_pipeline", - ShaderModule::Underline, - 4, - create_blend_state(device)?, - )?; - let mono_sprites = PipelineState::new( - device, - "monochrome_sprite_pipeline", - ShaderModule::MonochromeSprite, - 512, - create_blend_state(device)?, - )?; - let poly_sprites = PipelineState::new( - device, - "polychrome_sprite_pipeline", - ShaderModule::PolychromeSprite, - 16, - create_blend_state(device)?, - )?; - - Ok(Self { - shadow_pipeline, - quad_pipeline, - path_rasterization_pipeline, - path_sprite_pipeline, - underline_pipeline, - mono_sprites, - poly_sprites, - }) - } -} - -impl DirectComposition { - pub fn new(dxgi_device: &IDXGIDevice, hwnd: HWND) -> Result<Self> { - let comp_device = get_comp_device(&dxgi_device)?; - let comp_target = unsafe { comp_device.CreateTargetForHwnd(hwnd, true) }?; - let comp_visual = unsafe { comp_device.CreateVisual() }?; - - Ok(Self { - comp_device, - comp_target, - comp_visual, - }) - } - - pub fn set_swap_chain(&self, swap_chain: &IDXGISwapChain1) -> Result<()> { - unsafe { - self.comp_visual.SetContent(swap_chain)?; - self.comp_target.SetRoot(&self.comp_visual)?; - self.comp_device.Commit()?; - } - Ok(()) - } -} - -impl DirectXGlobalElements { - pub fn new(device: &ID3D11Device) -> Result<Self> { - let global_params_buffer = unsafe { - let desc = D3D11_BUFFER_DESC { - ByteWidth: std::mem::size_of::<GlobalParams>() as u32, - Usage: D3D11_USAGE_DYNAMIC, - BindFlags: D3D11_BIND_CONSTANT_BUFFER.0 as u32, - CPUAccessFlags: D3D11_CPU_ACCESS_WRITE.0 as u32, - ..Default::default() - }; - let mut buffer = None; - device.CreateBuffer(&desc, None, Some(&mut buffer))?; - [buffer] - }; - - let sampler = unsafe { - let desc = D3D11_SAMPLER_DESC { - Filter: D3D11_FILTER_MIN_MAG_MIP_LINEAR, - AddressU: D3D11_TEXTURE_ADDRESS_WRAP, - AddressV: D3D11_TEXTURE_ADDRESS_WRAP, - AddressW: D3D11_TEXTURE_ADDRESS_WRAP, - MipLODBias: 0.0, - MaxAnisotropy: 1, - ComparisonFunc: D3D11_COMPARISON_ALWAYS, - BorderColor: [0.0; 4], - MinLOD: 0.0, - MaxLOD: D3D11_FLOAT32_MAX, - }; - let mut output = None; - device.CreateSamplerState(&desc, Some(&mut output))?; - [output] - }; - - Ok(Self { - global_params_buffer, - sampler, - }) - } -} - -#[derive(Debug, Default)] -#[repr(C)] -struct GlobalParams { - viewport_size: [f32; 2], - _pad: u64, -} - -struct PipelineState<T> { - label: &'static str, - vertex: ID3D11VertexShader, - fragment: ID3D11PixelShader, - buffer: ID3D11Buffer, - buffer_size: usize, - view: [Option<ID3D11ShaderResourceView>; 1], - blend_state: ID3D11BlendState, - _marker: std::marker::PhantomData<T>, -} - -impl<T> PipelineState<T> { - fn new( - device: &ID3D11Device, - label: &'static str, - shader_module: ShaderModule, - buffer_size: usize, - blend_state: ID3D11BlendState, - ) -> Result<Self> { - let vertex = { - let raw_shader = RawShaderBytes::new(shader_module, ShaderTarget::Vertex)?; - create_vertex_shader(device, raw_shader.as_bytes())? - }; - let fragment = { - let raw_shader = RawShaderBytes::new(shader_module, ShaderTarget::Fragment)?; - create_fragment_shader(device, raw_shader.as_bytes())? - }; - let buffer = create_buffer(device, std::mem::size_of::<T>(), buffer_size)?; - let view = create_buffer_view(device, &buffer)?; - - Ok(PipelineState { - label, - vertex, - fragment, - buffer, - buffer_size, - view, - blend_state, - _marker: std::marker::PhantomData, - }) - } - - fn update_buffer( - &mut self, - device: &ID3D11Device, - device_context: &ID3D11DeviceContext, - data: &[T], - ) -> Result<()> { - if self.buffer_size < data.len() { - let new_buffer_size = data.len().next_power_of_two(); - log::info!( - "Updating {} buffer size from {} to {}", - self.label, - self.buffer_size, - new_buffer_size - ); - let buffer = create_buffer(device, std::mem::size_of::<T>(), new_buffer_size)?; - let view = create_buffer_view(device, &buffer)?; - self.buffer = buffer; - self.view = view; - self.buffer_size = new_buffer_size; - } - update_buffer(device_context, &self.buffer, data) - } - - fn draw( - &self, - device_context: &ID3D11DeviceContext, - viewport: &[D3D11_VIEWPORT], - global_params: &[Option<ID3D11Buffer>], - topology: D3D_PRIMITIVE_TOPOLOGY, - vertex_count: u32, - instance_count: u32, - ) -> Result<()> { - set_pipeline_state( - device_context, - &self.view, - topology, - viewport, - &self.vertex, - &self.fragment, - global_params, - &self.blend_state, - ); - unsafe { - device_context.DrawInstanced(vertex_count, instance_count, 0, 0); - } - Ok(()) - } - - fn draw_with_texture( - &self, - device_context: &ID3D11DeviceContext, - texture: &[Option<ID3D11ShaderResourceView>], - viewport: &[D3D11_VIEWPORT], - global_params: &[Option<ID3D11Buffer>], - sampler: &[Option<ID3D11SamplerState>], - instance_count: u32, - ) -> Result<()> { - set_pipeline_state( - device_context, - &self.view, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - viewport, - &self.vertex, - &self.fragment, - global_params, - &self.blend_state, - ); - unsafe { - device_context.PSSetSamplers(0, Some(sampler)); - device_context.VSSetShaderResources(0, Some(texture)); - device_context.PSSetShaderResources(0, Some(texture)); - - device_context.DrawInstanced(4, instance_count, 0, 0); - } - Ok(()) - } -} - -#[derive(Clone, Copy)] -#[repr(C)] -struct PathRasterizationSprite { - xy_position: Point<ScaledPixels>, - st_position: Point<f32>, - color: Background, - bounds: Bounds<ScaledPixels>, -} - -#[derive(Clone, Copy)] -#[repr(C)] -struct PathSprite { - bounds: Bounds<ScaledPixels>, -} - -impl Drop for DirectXRenderer { - fn drop(&mut self) { - #[cfg(debug_assertions)] - report_live_objects(&self.devices.device).ok(); - unsafe { - ManuallyDrop::drop(&mut self.devices); - ManuallyDrop::drop(&mut self.resources); - } - } -} - -impl Drop for DirectXResources { - fn drop(&mut self) { - unsafe { - ManuallyDrop::drop(&mut self.render_target); - } - } -} - -#[inline] -fn check_debug_layer_available() -> bool { - #[cfg(debug_assertions)] - { - unsafe { DXGIGetDebugInterface1::<IDXGIInfoQueue>(0) } - .log_err() - .is_some() - } - #[cfg(not(debug_assertions))] - { - false - } -} - -#[inline] -fn get_dxgi_factory(debug_layer_available: bool) -> Result<IDXGIFactory6> { - let factory_flag = if debug_layer_available { - DXGI_CREATE_FACTORY_DEBUG - } else { - #[cfg(debug_assertions)] - log::warn!( - "Failed to get DXGI debug interface. DirectX debugging features will be disabled." - ); - DXGI_CREATE_FACTORY_FLAGS::default() - }; - unsafe { Ok(CreateDXGIFactory2(factory_flag)?) } -} - -fn get_adapter(dxgi_factory: &IDXGIFactory6, debug_layer_available: bool) -> Result<IDXGIAdapter1> { - for adapter_index in 0.. { - let adapter: IDXGIAdapter1 = unsafe { - dxgi_factory - .EnumAdapterByGpuPreference(adapter_index, DXGI_GPU_PREFERENCE_MINIMUM_POWER) - }?; - if let Ok(desc) = unsafe { adapter.GetDesc1() } { - let gpu_name = String::from_utf16_lossy(&desc.Description) - .trim_matches(char::from(0)) - .to_string(); - log::info!("Using GPU: {}", gpu_name); - } - // Check to see whether the adapter supports Direct3D 11, but don't - // create the actual device yet. - if get_device(&adapter, None, None, None, debug_layer_available) - .log_err() - .is_some() - { - return Ok(adapter); - } - } - - unreachable!() -} - -fn get_device( - adapter: &IDXGIAdapter1, - device: Option<*mut Option<ID3D11Device>>, - context: Option<*mut Option<ID3D11DeviceContext>>, - feature_level: Option<*mut D3D_FEATURE_LEVEL>, - debug_layer_available: bool, -) -> Result<()> { - let device_flags = if debug_layer_available { - D3D11_CREATE_DEVICE_BGRA_SUPPORT | D3D11_CREATE_DEVICE_DEBUG - } else { - D3D11_CREATE_DEVICE_BGRA_SUPPORT - }; - unsafe { - D3D11CreateDevice( - adapter, - D3D_DRIVER_TYPE_UNKNOWN, - HMODULE::default(), - device_flags, - // 4x MSAA is required for Direct3D Feature Level 10.1 or better - Some(&[ - D3D_FEATURE_LEVEL_11_1, - D3D_FEATURE_LEVEL_11_0, - D3D_FEATURE_LEVEL_10_1, - ]), - D3D11_SDK_VERSION, - device, - feature_level, - context, - )?; - } - Ok(()) -} - -#[inline] -fn get_comp_device(dxgi_device: &IDXGIDevice) -> Result<IDCompositionDevice> { - Ok(unsafe { DCompositionCreateDevice(dxgi_device)? }) -} - -fn create_swap_chain_for_composition( - dxgi_factory: &IDXGIFactory6, - device: &ID3D11Device, - width: u32, - height: u32, -) -> Result<IDXGISwapChain1> { - let desc = DXGI_SWAP_CHAIN_DESC1 { - Width: width, - Height: height, - Format: RENDER_TARGET_FORMAT, - Stereo: false.into(), - SampleDesc: DXGI_SAMPLE_DESC { - Count: 1, - Quality: 0, - }, - BufferUsage: DXGI_USAGE_RENDER_TARGET_OUTPUT, - BufferCount: BUFFER_COUNT as u32, - // Composition SwapChains only support the DXGI_SCALING_STRETCH Scaling. - Scaling: DXGI_SCALING_STRETCH, - SwapEffect: DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL, - AlphaMode: DXGI_ALPHA_MODE_PREMULTIPLIED, - Flags: 0, - }; - Ok(unsafe { dxgi_factory.CreateSwapChainForComposition(device, &desc, None)? }) -} - -fn create_swap_chain( - dxgi_factory: &IDXGIFactory6, - device: &ID3D11Device, - hwnd: HWND, - width: u32, - height: u32, -) -> Result<IDXGISwapChain1> { - use windows::Win32::Graphics::Dxgi::DXGI_MWA_NO_ALT_ENTER; - - let desc = DXGI_SWAP_CHAIN_DESC1 { - Width: width, - Height: height, - Format: RENDER_TARGET_FORMAT, - Stereo: false.into(), - SampleDesc: DXGI_SAMPLE_DESC { - Count: 1, - Quality: 0, - }, - BufferUsage: DXGI_USAGE_RENDER_TARGET_OUTPUT, - BufferCount: BUFFER_COUNT as u32, - Scaling: DXGI_SCALING_NONE, - SwapEffect: DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL, - AlphaMode: DXGI_ALPHA_MODE_IGNORE, - Flags: 0, - }; - let swap_chain = - unsafe { dxgi_factory.CreateSwapChainForHwnd(device, hwnd, &desc, None, None) }?; - unsafe { dxgi_factory.MakeWindowAssociation(hwnd, DXGI_MWA_NO_ALT_ENTER) }?; - Ok(swap_chain) -} - -#[inline] -fn create_resources( - devices: &DirectXDevices, - swap_chain: &IDXGISwapChain1, - width: u32, - height: u32, -) -> Result<( - ManuallyDrop<ID3D11Texture2D>, - [Option<ID3D11RenderTargetView>; 1], - ID3D11Texture2D, - [Option<ID3D11ShaderResourceView>; 1], - ID3D11Texture2D, - [Option<ID3D11RenderTargetView>; 1], - [D3D11_VIEWPORT; 1], -)> { - let (render_target, render_target_view) = - create_render_target_and_its_view(&swap_chain, &devices.device)?; - let (path_intermediate_texture, path_intermediate_srv) = - create_path_intermediate_texture(&devices.device, width, height)?; - let (path_intermediate_msaa_texture, path_intermediate_msaa_view) = - create_path_intermediate_msaa_texture_and_view(&devices.device, width, height)?; - let viewport = set_viewport(&devices.device_context, width as f32, height as f32); - Ok(( - render_target, - render_target_view, - path_intermediate_texture, - path_intermediate_srv, - path_intermediate_msaa_texture, - path_intermediate_msaa_view, - viewport, - )) -} - -#[inline] -fn create_render_target_and_its_view( - swap_chain: &IDXGISwapChain1, - device: &ID3D11Device, -) -> Result<( - ManuallyDrop<ID3D11Texture2D>, - [Option<ID3D11RenderTargetView>; 1], -)> { - let render_target: ID3D11Texture2D = unsafe { swap_chain.GetBuffer(0) }?; - let mut render_target_view = None; - unsafe { device.CreateRenderTargetView(&render_target, None, Some(&mut render_target_view))? }; - Ok(( - ManuallyDrop::new(render_target), - [Some(render_target_view.unwrap())], - )) -} - -#[inline] -fn create_path_intermediate_texture( - device: &ID3D11Device, - width: u32, - height: u32, -) -> Result<(ID3D11Texture2D, [Option<ID3D11ShaderResourceView>; 1])> { - let texture = unsafe { - let mut output = None; - let desc = D3D11_TEXTURE2D_DESC { - Width: width, - Height: height, - MipLevels: 1, - ArraySize: 1, - Format: RENDER_TARGET_FORMAT, - SampleDesc: DXGI_SAMPLE_DESC { - Count: 1, - Quality: 0, - }, - Usage: D3D11_USAGE_DEFAULT, - BindFlags: (D3D11_BIND_RENDER_TARGET.0 | D3D11_BIND_SHADER_RESOURCE.0) as u32, - CPUAccessFlags: 0, - MiscFlags: 0, - }; - device.CreateTexture2D(&desc, None, Some(&mut output))?; - output.unwrap() - }; - - let mut shader_resource_view = None; - unsafe { device.CreateShaderResourceView(&texture, None, Some(&mut shader_resource_view))? }; - - Ok((texture, [Some(shader_resource_view.unwrap())])) -} - -#[inline] -fn create_path_intermediate_msaa_texture_and_view( - device: &ID3D11Device, - width: u32, - height: u32, -) -> Result<(ID3D11Texture2D, [Option<ID3D11RenderTargetView>; 1])> { - let msaa_texture = unsafe { - let mut output = None; - let desc = D3D11_TEXTURE2D_DESC { - Width: width, - Height: height, - MipLevels: 1, - ArraySize: 1, - Format: RENDER_TARGET_FORMAT, - SampleDesc: DXGI_SAMPLE_DESC { - Count: PATH_MULTISAMPLE_COUNT, - Quality: D3D11_STANDARD_MULTISAMPLE_PATTERN.0 as u32, - }, - Usage: D3D11_USAGE_DEFAULT, - BindFlags: D3D11_BIND_RENDER_TARGET.0 as u32, - CPUAccessFlags: 0, - MiscFlags: 0, - }; - device.CreateTexture2D(&desc, None, Some(&mut output))?; - output.unwrap() - }; - let mut msaa_view = None; - unsafe { device.CreateRenderTargetView(&msaa_texture, None, Some(&mut msaa_view))? }; - Ok((msaa_texture, [Some(msaa_view.unwrap())])) -} - -#[inline] -fn set_viewport( - device_context: &ID3D11DeviceContext, - width: f32, - height: f32, -) -> [D3D11_VIEWPORT; 1] { - let viewport = [D3D11_VIEWPORT { - TopLeftX: 0.0, - TopLeftY: 0.0, - Width: width, - Height: height, - MinDepth: 0.0, - MaxDepth: 1.0, - }]; - unsafe { device_context.RSSetViewports(Some(&viewport)) }; - viewport -} - -#[inline] -fn set_rasterizer_state(device: &ID3D11Device, device_context: &ID3D11DeviceContext) -> Result<()> { - let desc = D3D11_RASTERIZER_DESC { - FillMode: D3D11_FILL_SOLID, - CullMode: D3D11_CULL_NONE, - FrontCounterClockwise: false.into(), - DepthBias: 0, - DepthBiasClamp: 0.0, - SlopeScaledDepthBias: 0.0, - DepthClipEnable: true.into(), - ScissorEnable: false.into(), - MultisampleEnable: true.into(), - AntialiasedLineEnable: false.into(), - }; - let rasterizer_state = unsafe { - let mut state = None; - device.CreateRasterizerState(&desc, Some(&mut state))?; - state.unwrap() - }; - unsafe { device_context.RSSetState(&rasterizer_state) }; - Ok(()) -} - -// https://learn.microsoft.com/en-us/windows/win32/api/d3d11/ns-d3d11-d3d11_blend_desc -#[inline] -fn create_blend_state(device: &ID3D11Device) -> Result<ID3D11BlendState> { - // If the feature level is set to greater than D3D_FEATURE_LEVEL_9_3, the display - // device performs the blend in linear space, which is ideal. - let mut desc = D3D11_BLEND_DESC::default(); - desc.RenderTarget[0].BlendEnable = true.into(); - desc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; - desc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; - desc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; - desc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; - desc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; - desc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ONE; - desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL.0 as u8; - unsafe { - let mut state = None; - device.CreateBlendState(&desc, Some(&mut state))?; - Ok(state.unwrap()) - } -} - -#[inline] -fn create_blend_state_for_path_rasterization(device: &ID3D11Device) -> Result<ID3D11BlendState> { - // If the feature level is set to greater than D3D_FEATURE_LEVEL_9_3, the display - // device performs the blend in linear space, which is ideal. - let mut desc = D3D11_BLEND_DESC::default(); - desc.RenderTarget[0].BlendEnable = true.into(); - desc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; - desc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; - desc.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE; - desc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; - desc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; - desc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA; - desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL.0 as u8; - unsafe { - let mut state = None; - device.CreateBlendState(&desc, Some(&mut state))?; - Ok(state.unwrap()) - } -} - -#[inline] -fn create_blend_state_for_path_sprite(device: &ID3D11Device) -> Result<ID3D11BlendState> { - // If the feature level is set to greater than D3D_FEATURE_LEVEL_9_3, the display - // device performs the blend in linear space, which is ideal. - let mut desc = D3D11_BLEND_DESC::default(); - desc.RenderTarget[0].BlendEnable = true.into(); - desc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; - desc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; - desc.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE; - desc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; - desc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; - desc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ONE; - desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL.0 as u8; - unsafe { - let mut state = None; - device.CreateBlendState(&desc, Some(&mut state))?; - Ok(state.unwrap()) - } -} - -#[inline] -fn create_vertex_shader(device: &ID3D11Device, bytes: &[u8]) -> Result<ID3D11VertexShader> { - unsafe { - let mut shader = None; - device.CreateVertexShader(bytes, None, Some(&mut shader))?; - Ok(shader.unwrap()) - } -} - -#[inline] -fn create_fragment_shader(device: &ID3D11Device, bytes: &[u8]) -> Result<ID3D11PixelShader> { - unsafe { - let mut shader = None; - device.CreatePixelShader(bytes, None, Some(&mut shader))?; - Ok(shader.unwrap()) - } -} - -#[inline] -fn create_buffer( - device: &ID3D11Device, - element_size: usize, - buffer_size: usize, -) -> Result<ID3D11Buffer> { - let desc = D3D11_BUFFER_DESC { - ByteWidth: (element_size * buffer_size) as u32, - Usage: D3D11_USAGE_DYNAMIC, - BindFlags: D3D11_BIND_SHADER_RESOURCE.0 as u32, - CPUAccessFlags: D3D11_CPU_ACCESS_WRITE.0 as u32, - MiscFlags: D3D11_RESOURCE_MISC_BUFFER_STRUCTURED.0 as u32, - StructureByteStride: element_size as u32, - }; - let mut buffer = None; - unsafe { device.CreateBuffer(&desc, None, Some(&mut buffer)) }?; - Ok(buffer.unwrap()) -} - -#[inline] -fn create_buffer_view( - device: &ID3D11Device, - buffer: &ID3D11Buffer, -) -> Result<[Option<ID3D11ShaderResourceView>; 1]> { - let mut view = None; - unsafe { device.CreateShaderResourceView(buffer, None, Some(&mut view)) }?; - Ok([view]) -} - -#[inline] -fn update_buffer<T>( - device_context: &ID3D11DeviceContext, - buffer: &ID3D11Buffer, - data: &[T], -) -> Result<()> { - unsafe { - let mut dest = std::mem::zeroed(); - device_context.Map(buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, Some(&mut dest))?; - std::ptr::copy_nonoverlapping(data.as_ptr(), dest.pData as _, data.len()); - device_context.Unmap(buffer, 0); - } - Ok(()) -} - -#[inline] -fn set_pipeline_state( - device_context: &ID3D11DeviceContext, - buffer_view: &[Option<ID3D11ShaderResourceView>], - topology: D3D_PRIMITIVE_TOPOLOGY, - viewport: &[D3D11_VIEWPORT], - vertex_shader: &ID3D11VertexShader, - fragment_shader: &ID3D11PixelShader, - global_params: &[Option<ID3D11Buffer>], - blend_state: &ID3D11BlendState, -) { - unsafe { - device_context.VSSetShaderResources(1, Some(buffer_view)); - device_context.PSSetShaderResources(1, Some(buffer_view)); - device_context.IASetPrimitiveTopology(topology); - device_context.RSSetViewports(Some(viewport)); - device_context.VSSetShader(vertex_shader, None); - device_context.PSSetShader(fragment_shader, None); - device_context.VSSetConstantBuffers(0, Some(global_params)); - device_context.PSSetConstantBuffers(0, Some(global_params)); - device_context.OMSetBlendState(blend_state, None, 0xFFFFFFFF); - } -} - -#[cfg(debug_assertions)] -fn report_live_objects(device: &ID3D11Device) -> Result<()> { - let debug_device: ID3D11Debug = device.cast()?; - unsafe { - debug_device.ReportLiveDeviceObjects(D3D11_RLDO_DETAIL)?; - } - Ok(()) -} - -const BUFFER_COUNT: usize = 3; - -pub(crate) mod shader_resources { - use anyhow::Result; - - #[cfg(debug_assertions)] - use windows::{ - Win32::Graphics::Direct3D::{ - Fxc::{D3DCOMPILE_DEBUG, D3DCOMPILE_SKIP_OPTIMIZATION, D3DCompileFromFile}, - ID3DBlob, - }, - core::{HSTRING, PCSTR}, - }; - - #[derive(Copy, Clone, Debug, Eq, PartialEq)] - pub(crate) enum ShaderModule { - Quad, - Shadow, - Underline, - PathRasterization, - PathSprite, - MonochromeSprite, - PolychromeSprite, - EmojiRasterization, - } - - #[derive(Copy, Clone, Debug, Eq, PartialEq)] - pub(crate) enum ShaderTarget { - Vertex, - Fragment, - } - - pub(crate) struct RawShaderBytes<'t> { - inner: &'t [u8], - - #[cfg(debug_assertions)] - _blob: ID3DBlob, - } - - impl<'t> RawShaderBytes<'t> { - pub(crate) fn new(module: ShaderModule, target: ShaderTarget) -> Result<Self> { - #[cfg(not(debug_assertions))] - { - Ok(Self::from_bytes(module, target)) - } - #[cfg(debug_assertions)] - { - let blob = build_shader_blob(module, target)?; - let inner = unsafe { - std::slice::from_raw_parts( - blob.GetBufferPointer() as *const u8, - blob.GetBufferSize(), - ) - }; - Ok(Self { inner, _blob: blob }) - } - } - - pub(crate) fn as_bytes(&'t self) -> &'t [u8] { - self.inner - } - - #[cfg(not(debug_assertions))] - fn from_bytes(module: ShaderModule, target: ShaderTarget) -> Self { - let bytes = match module { - ShaderModule::Quad => match target { - ShaderTarget::Vertex => QUAD_VERTEX_BYTES, - ShaderTarget::Fragment => QUAD_FRAGMENT_BYTES, - }, - ShaderModule::Shadow => match target { - ShaderTarget::Vertex => SHADOW_VERTEX_BYTES, - ShaderTarget::Fragment => SHADOW_FRAGMENT_BYTES, - }, - ShaderModule::Underline => match target { - ShaderTarget::Vertex => UNDERLINE_VERTEX_BYTES, - ShaderTarget::Fragment => UNDERLINE_FRAGMENT_BYTES, - }, - ShaderModule::PathRasterization => match target { - ShaderTarget::Vertex => PATH_RASTERIZATION_VERTEX_BYTES, - ShaderTarget::Fragment => PATH_RASTERIZATION_FRAGMENT_BYTES, - }, - ShaderModule::PathSprite => match target { - ShaderTarget::Vertex => PATH_SPRITE_VERTEX_BYTES, - ShaderTarget::Fragment => PATH_SPRITE_FRAGMENT_BYTES, - }, - ShaderModule::MonochromeSprite => match target { - ShaderTarget::Vertex => MONOCHROME_SPRITE_VERTEX_BYTES, - ShaderTarget::Fragment => MONOCHROME_SPRITE_FRAGMENT_BYTES, - }, - ShaderModule::PolychromeSprite => match target { - ShaderTarget::Vertex => POLYCHROME_SPRITE_VERTEX_BYTES, - ShaderTarget::Fragment => POLYCHROME_SPRITE_FRAGMENT_BYTES, - }, - ShaderModule::EmojiRasterization => match target { - ShaderTarget::Vertex => EMOJI_RASTERIZATION_VERTEX_BYTES, - ShaderTarget::Fragment => EMOJI_RASTERIZATION_FRAGMENT_BYTES, - }, - }; - Self { inner: bytes } - } - } - - #[cfg(debug_assertions)] - pub(super) fn build_shader_blob(entry: ShaderModule, target: ShaderTarget) -> Result<ID3DBlob> { - unsafe { - let shader_name = if matches!(entry, ShaderModule::EmojiRasterization) { - "color_text_raster.hlsl" - } else { - "shaders.hlsl" - }; - - let entry = format!( - "{}_{}\0", - entry.as_str(), - match target { - ShaderTarget::Vertex => "vertex", - ShaderTarget::Fragment => "fragment", - } - ); - let target = match target { - ShaderTarget::Vertex => "vs_4_1\0", - ShaderTarget::Fragment => "ps_4_1\0", - }; - - let mut compile_blob = None; - let mut error_blob = None; - let shader_path = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")) - .join(&format!("src/platform/windows/{}", shader_name)) - .canonicalize()?; - - let entry_point = PCSTR::from_raw(entry.as_ptr()); - let target_cstr = PCSTR::from_raw(target.as_ptr()); - - let ret = D3DCompileFromFile( - &HSTRING::from(shader_path.to_str().unwrap()), - None, - None, - entry_point, - target_cstr, - D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION, - 0, - &mut compile_blob, - Some(&mut error_blob), - ); - if ret.is_err() { - let Some(error_blob) = error_blob else { - return Err(anyhow::anyhow!("{ret:?}")); - }; - - let error_string = - std::ffi::CStr::from_ptr(error_blob.GetBufferPointer() as *const i8) - .to_string_lossy(); - log::error!("Shader compile error: {}", error_string); - return Err(anyhow::anyhow!("Compile error: {}", error_string)); - } - Ok(compile_blob.unwrap()) - } - } - - #[cfg(not(debug_assertions))] - include!(concat!(env!("OUT_DIR"), "/shaders_bytes.rs")); - - #[cfg(debug_assertions)] - impl ShaderModule { - pub fn as_str(&self) -> &str { - match self { - ShaderModule::Quad => "quad", - ShaderModule::Shadow => "shadow", - ShaderModule::Underline => "underline", - ShaderModule::PathRasterization => "path_rasterization", - ShaderModule::PathSprite => "path_sprite", - ShaderModule::MonochromeSprite => "monochrome_sprite", - ShaderModule::PolychromeSprite => "polychrome_sprite", - ShaderModule::EmojiRasterization => "emoji_rasterization", - } - } - } -} - -mod nvidia { - use std::{ - ffi::CStr, - os::raw::{c_char, c_int, c_uint}, - }; - - use anyhow::{Context, Result}; - use windows::{ - Win32::System::LibraryLoader::{GetProcAddress, LoadLibraryA}, - core::s, - }; - - // https://github.com/NVIDIA/nvapi/blob/7cb76fce2f52de818b3da497af646af1ec16ce27/nvapi_lite_common.h#L180 - const NVAPI_SHORT_STRING_MAX: usize = 64; - - // https://github.com/NVIDIA/nvapi/blob/7cb76fce2f52de818b3da497af646af1ec16ce27/nvapi_lite_common.h#L235 - #[allow(non_camel_case_types)] - type NvAPI_ShortString = [c_char; NVAPI_SHORT_STRING_MAX]; - - // https://github.com/NVIDIA/nvapi/blob/7cb76fce2f52de818b3da497af646af1ec16ce27/nvapi_lite_common.h#L447 - #[allow(non_camel_case_types)] - type NvAPI_SYS_GetDriverAndBranchVersion_t = unsafe extern "C" fn( - driver_version: *mut c_uint, - build_branch_string: *mut NvAPI_ShortString, - ) -> c_int; - - pub(super) fn get_driver_version() -> Result<String> { - unsafe { - // Try to load the NVIDIA driver DLL - #[cfg(target_pointer_width = "64")] - let nvidia_dll = LoadLibraryA(s!("nvapi64.dll")).context("Can't load nvapi64.dll")?; - #[cfg(target_pointer_width = "32")] - let nvidia_dll = LoadLibraryA(s!("nvapi.dll")).context("Can't load nvapi.dll")?; - - let nvapi_query_addr = GetProcAddress(nvidia_dll, s!("nvapi_QueryInterface")) - .ok_or_else(|| anyhow::anyhow!("Failed to get nvapi_QueryInterface address"))?; - let nvapi_query: extern "C" fn(u32) -> *mut () = std::mem::transmute(nvapi_query_addr); - - // https://github.com/NVIDIA/nvapi/blob/7cb76fce2f52de818b3da497af646af1ec16ce27/nvapi_interface.h#L41 - let nvapi_get_driver_version_ptr = nvapi_query(0x2926aaad); - if nvapi_get_driver_version_ptr.is_null() { - anyhow::bail!("Failed to get NVIDIA driver version function pointer"); - } - let nvapi_get_driver_version: NvAPI_SYS_GetDriverAndBranchVersion_t = - std::mem::transmute(nvapi_get_driver_version_ptr); - - let mut driver_version: c_uint = 0; - let mut build_branch_string: NvAPI_ShortString = [0; NVAPI_SHORT_STRING_MAX]; - let result = nvapi_get_driver_version( - &mut driver_version as *mut c_uint, - &mut build_branch_string as *mut NvAPI_ShortString, - ); - - if result != 0 { - anyhow::bail!( - "Failed to get NVIDIA driver version, error code: {}", - result - ); - } - let major = driver_version / 100; - let minor = driver_version % 100; - let branch_string = CStr::from_ptr(build_branch_string.as_ptr()); - Ok(format!( - "{}.{} {}", - major, - minor, - branch_string.to_string_lossy() - )) - } - } -} - -mod amd { - use std::os::raw::{c_char, c_int, c_void}; - - use anyhow::{Context, Result}; - use windows::{ - Win32::System::LibraryLoader::{GetProcAddress, LoadLibraryA}, - core::s, - }; - - // https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/blob/5d8812d703d0335741b6f7ffc37838eeb8b967f7/ags_lib/inc/amd_ags.h#L145 - const AGS_CURRENT_VERSION: i32 = (6 << 22) | (3 << 12); - - // https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/blob/5d8812d703d0335741b6f7ffc37838eeb8b967f7/ags_lib/inc/amd_ags.h#L204 - // This is an opaque type, using struct to represent it properly for FFI - #[repr(C)] - struct AGSContext { - _private: [u8; 0], - } - - #[repr(C)] - pub struct AGSGPUInfo { - pub driver_version: *const c_char, - pub radeon_software_version: *const c_char, - pub num_devices: c_int, - pub devices: *mut c_void, - } - - // https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/blob/5d8812d703d0335741b6f7ffc37838eeb8b967f7/ags_lib/inc/amd_ags.h#L429 - #[allow(non_camel_case_types)] - type agsInitialize_t = unsafe extern "C" fn( - version: c_int, - config: *const c_void, - context: *mut *mut AGSContext, - gpu_info: *mut AGSGPUInfo, - ) -> c_int; - - // https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/blob/5d8812d703d0335741b6f7ffc37838eeb8b967f7/ags_lib/inc/amd_ags.h#L436 - #[allow(non_camel_case_types)] - type agsDeInitialize_t = unsafe extern "C" fn(context: *mut AGSContext) -> c_int; - - pub(super) fn get_driver_version() -> Result<String> { - unsafe { - #[cfg(target_pointer_width = "64")] - let amd_dll = - LoadLibraryA(s!("amd_ags_x64.dll")).context("Failed to load AMD AGS library")?; - #[cfg(target_pointer_width = "32")] - let amd_dll = - LoadLibraryA(s!("amd_ags_x86.dll")).context("Failed to load AMD AGS library")?; - - let ags_initialize_addr = GetProcAddress(amd_dll, s!("agsInitialize")) - .ok_or_else(|| anyhow::anyhow!("Failed to get agsInitialize address"))?; - let ags_deinitialize_addr = GetProcAddress(amd_dll, s!("agsDeInitialize")) - .ok_or_else(|| anyhow::anyhow!("Failed to get agsDeInitialize address"))?; - - let ags_initialize: agsInitialize_t = std::mem::transmute(ags_initialize_addr); - let ags_deinitialize: agsDeInitialize_t = std::mem::transmute(ags_deinitialize_addr); - - let mut context: *mut AGSContext = std::ptr::null_mut(); - let mut gpu_info: AGSGPUInfo = AGSGPUInfo { - driver_version: std::ptr::null(), - radeon_software_version: std::ptr::null(), - num_devices: 0, - devices: std::ptr::null_mut(), - }; - - let result = ags_initialize( - AGS_CURRENT_VERSION, - std::ptr::null(), - &mut context, - &mut gpu_info, - ); - if result != 0 { - anyhow::bail!("Failed to initialize AMD AGS, error code: {}", result); - } - - // Vulkan acctually returns this as the driver version - let software_version = if !gpu_info.radeon_software_version.is_null() { - std::ffi::CStr::from_ptr(gpu_info.radeon_software_version) - .to_string_lossy() - .into_owned() - } else { - "Unknown Radeon Software Version".to_string() - }; - - let driver_version = if !gpu_info.driver_version.is_null() { - std::ffi::CStr::from_ptr(gpu_info.driver_version) - .to_string_lossy() - .into_owned() - } else { - "Unknown Radeon Driver Version".to_string() - }; - - ags_deinitialize(context); - Ok(format!("{} ({})", software_version, driver_version)) - } - } -} - -mod dxgi { - use windows::{ - Win32::Graphics::Dxgi::{IDXGIAdapter1, IDXGIDevice}, - core::Interface, - }; - - pub(super) fn get_driver_version(adapter: &IDXGIAdapter1) -> anyhow::Result<String> { - let number = unsafe { adapter.CheckInterfaceSupport(&IDXGIDevice::IID as _) }?; - Ok(format!( - "{}.{}.{}.{}", - number >> 48, - (number >> 32) & 0xFFFF, - (number >> 16) & 0xFFFF, - number & 0xFFFF - )) - } -} diff --git a/crates/gpui/src/platform/windows/events.rs b/crates/gpui/src/platform/windows/events.rs index 61f410a8c6..839fd10375 100644 --- a/crates/gpui/src/platform/windows/events.rs +++ b/crates/gpui/src/platform/windows/events.rs @@ -23,7 +23,6 @@ pub(crate) const WM_GPUI_CURSOR_STYLE_CHANGED: u32 = WM_USER + 1; pub(crate) const WM_GPUI_CLOSE_ONE_WINDOW: u32 = WM_USER + 2; pub(crate) const WM_GPUI_TASK_DISPATCHED_ON_MAIN_THREAD: u32 = WM_USER + 3; pub(crate) const WM_GPUI_DOCK_MENU_ACTION: u32 = WM_USER + 4; -pub(crate) const WM_GPUI_FORCE_UPDATE_WINDOW: u32 = WM_USER + 5; const SIZE_MOVE_LOOP_TIMER_ID: usize = 1; const AUTO_HIDE_TASKBAR_THICKNESS_PX: i32 = 1; @@ -38,7 +37,6 @@ pub(crate) fn handle_msg( let handled = match msg { WM_ACTIVATE => handle_activate_msg(wparam, state_ptr), WM_CREATE => handle_create_msg(handle, state_ptr), - WM_DEVICECHANGE => handle_device_change_msg(handle, wparam, state_ptr), WM_MOVE => handle_move_msg(handle, lparam, state_ptr), WM_SIZE => handle_size_msg(wparam, lparam, state_ptr), WM_GETMINMAXINFO => handle_get_min_max_info_msg(lparam, state_ptr), @@ -50,7 +48,7 @@ pub(crate) fn handle_msg( WM_DISPLAYCHANGE => handle_display_change_msg(handle, state_ptr), WM_NCHITTEST => handle_hit_test_msg(handle, msg, wparam, lparam, state_ptr), WM_PAINT => handle_paint_msg(handle, state_ptr), - WM_CLOSE => handle_close_msg(state_ptr), + WM_CLOSE => handle_close_msg(handle, state_ptr), WM_DESTROY => handle_destroy_msg(handle, state_ptr), WM_MOUSEMOVE => handle_mouse_move_msg(handle, lparam, wparam, state_ptr), WM_MOUSELEAVE | WM_NCMOUSELEAVE => handle_mouse_leave_msg(state_ptr), @@ -98,7 +96,6 @@ pub(crate) fn handle_msg( WM_SETTINGCHANGE => handle_system_settings_changed(handle, wparam, lparam, state_ptr), WM_INPUTLANGCHANGE => handle_input_language_changed(lparam, state_ptr), WM_GPUI_CURSOR_STYLE_CHANGED => handle_cursor_changed(lparam, state_ptr), - WM_GPUI_FORCE_UPDATE_WINDOW => draw_window(handle, true, state_ptr), _ => None, }; if let Some(n) = handled { @@ -184,9 +181,11 @@ fn handle_size_msg( let new_size = size(DevicePixels(width), DevicePixels(height)); let scale_factor = lock.scale_factor; if lock.restore_from_minimized.is_some() { + lock.renderer + .update_drawable_size_even_if_unchanged(new_size); lock.callbacks.request_frame = lock.restore_from_minimized.take(); } else { - lock.renderer.resize(new_size).log_err(); + lock.renderer.update_drawable_size(new_size); } let new_size = new_size.to_pixels(scale_factor); lock.logical_size = new_size; @@ -239,14 +238,40 @@ fn handle_timer_msg( } fn handle_paint_msg(handle: HWND, state_ptr: Rc<WindowsWindowStatePtr>) -> Option<isize> { - draw_window(handle, false, state_ptr) + let mut lock = state_ptr.state.borrow_mut(); + if let Some(mut request_frame) = lock.callbacks.request_frame.take() { + drop(lock); + request_frame(Default::default()); + state_ptr.state.borrow_mut().callbacks.request_frame = Some(request_frame); + } + unsafe { ValidateRect(Some(handle), None).ok().log_err() }; + Some(0) } -fn handle_close_msg(state_ptr: Rc<WindowsWindowStatePtr>) -> Option<isize> { - let mut callback = state_ptr.state.borrow_mut().callbacks.should_close.take()?; - let should_close = callback(); - state_ptr.state.borrow_mut().callbacks.should_close = Some(callback); - if should_close { None } else { Some(0) } +fn handle_close_msg(handle: HWND, state_ptr: Rc<WindowsWindowStatePtr>) -> Option<isize> { + let mut lock = state_ptr.state.borrow_mut(); + let output = if let Some(mut callback) = lock.callbacks.should_close.take() { + drop(lock); + let should_close = callback(); + state_ptr.state.borrow_mut().callbacks.should_close = Some(callback); + if should_close { None } else { Some(0) } + } else { + None + }; + + // Workaround as window close animation is not played with `WS_EX_LAYERED` enabled. + if output.is_none() { + unsafe { + let current_style = get_window_long(handle, GWL_EXSTYLE); + set_window_long( + handle, + GWL_EXSTYLE, + current_style & !WS_EX_LAYERED.0 as isize, + ); + } + } + + output } fn handle_destroy_msg(handle: HWND, state_ptr: Rc<WindowsWindowStatePtr>) -> Option<isize> { @@ -1198,53 +1223,6 @@ fn handle_input_language_changed( Some(0) } -fn handle_device_change_msg( - handle: HWND, - wparam: WPARAM, - state_ptr: Rc<WindowsWindowStatePtr>, -) -> Option<isize> { - if wparam.0 == DBT_DEVNODES_CHANGED as usize { - // The reason for sending this message is to actually trigger a redraw of the window. - unsafe { - PostMessageW( - Some(handle), - WM_GPUI_FORCE_UPDATE_WINDOW, - WPARAM(0), - LPARAM(0), - ) - .log_err(); - } - // If the GPU device is lost, this redraw will take care of recreating the device context. - // The WM_GPUI_FORCE_UPDATE_WINDOW message will take care of redrawing the window, after - // the device context has been recreated. - draw_window(handle, true, state_ptr) - } else { - // Other device change messages are not handled. - None - } -} - -#[inline] -fn draw_window( - handle: HWND, - force_render: bool, - state_ptr: Rc<WindowsWindowStatePtr>, -) -> Option<isize> { - let mut request_frame = state_ptr - .state - .borrow_mut() - .callbacks - .request_frame - .take()?; - request_frame(RequestFrameOptions { - require_presentation: false, - force_render, - }); - state_ptr.state.borrow_mut().callbacks.request_frame = Some(request_frame); - unsafe { ValidateRect(Some(handle), None).ok().log_err() }; - Some(0) -} - #[inline] fn parse_char_message(wparam: WPARAM, state_ptr: &Rc<WindowsWindowStatePtr>) -> Option<String> { let code_point = wparam.loword(); diff --git a/crates/gpui/src/platform/windows/platform.rs b/crates/gpui/src/platform/windows/platform.rs index bc09cc199d..401ecdeffe 100644 --- a/crates/gpui/src/platform/windows/platform.rs +++ b/crates/gpui/src/platform/windows/platform.rs @@ -28,12 +28,13 @@ use windows::{ core::*, }; -use crate::*; +use crate::{platform::blade::BladeContext, *}; pub(crate) struct WindowsPlatform { state: RefCell<WindowsPlatformState>, raw_window_handles: RwLock<SmallVec<[HWND; 4]>>, // The below members will never change throughout the entire lifecycle of the app. + gpu_context: BladeContext, icon: HICON, main_receiver: flume::Receiver<Runnable>, background_executor: BackgroundExecutor, @@ -44,7 +45,6 @@ pub(crate) struct WindowsPlatform { drop_target_helper: IDropTargetHelper, validation_number: usize, main_thread_id_win32: u32, - disable_direct_composition: bool, } pub(crate) struct WindowsPlatformState { @@ -94,18 +94,14 @@ impl WindowsPlatform { main_thread_id_win32, validation_number, )); - let disable_direct_composition = std::env::var(DISABLE_DIRECT_COMPOSITION) - .is_ok_and(|value| value == "true" || value == "1"); let background_executor = BackgroundExecutor::new(dispatcher.clone()); let foreground_executor = ForegroundExecutor::new(dispatcher); - let directx_devices = DirectXDevices::new(disable_direct_composition) - .context("Unable to init directx devices.")?; let bitmap_factory = ManuallyDrop::new(unsafe { CoCreateInstance(&CLSID_WICImagingFactory, None, CLSCTX_INPROC_SERVER) .context("Error creating bitmap factory.")? }); let text_system = Arc::new( - DirectWriteTextSystem::new(&directx_devices, &bitmap_factory) + DirectWriteTextSystem::new(&bitmap_factory) .context("Error creating DirectWriteTextSystem")?, ); let drop_target_helper: IDropTargetHelper = unsafe { @@ -115,17 +111,18 @@ impl WindowsPlatform { let icon = load_icon().unwrap_or_default(); let state = RefCell::new(WindowsPlatformState::new()); let raw_window_handles = RwLock::new(SmallVec::new()); + let gpu_context = BladeContext::new().context("Unable to init GPU context")?; let windows_version = WindowsVersion::new().context("Error retrieve windows version")?; Ok(Self { state, raw_window_handles, + gpu_context, icon, main_receiver, background_executor, foreground_executor, text_system, - disable_direct_composition, windows_version, bitmap_factory, drop_target_helper, @@ -190,7 +187,6 @@ impl WindowsPlatform { validation_number: self.validation_number, main_receiver: self.main_receiver.clone(), main_thread_id_win32: self.main_thread_id_win32, - disable_direct_composition: self.disable_direct_composition, } } @@ -347,11 +343,27 @@ impl Platform for WindowsPlatform { fn run(&self, on_finish_launching: Box<dyn 'static + FnOnce()>) { on_finish_launching(); - loop { - if self.handle_events() { - break; + let vsync_event = unsafe { Owned::new(CreateEventW(None, false, false, None).unwrap()) }; + begin_vsync(*vsync_event); + 'a: loop { + let wait_result = unsafe { + MsgWaitForMultipleObjects(Some(&[*vsync_event]), false, INFINITE, QS_ALLINPUT) + }; + + match wait_result { + // compositor clock ticked so we should draw a frame + WAIT_EVENT(0) => self.redraw_all(), + // Windows thread messages are posted + WAIT_EVENT(1) => { + if self.handle_events() { + break 'a; + } + } + _ => { + log::error!("Something went wrong while waiting {:?}", wait_result); + break; + } } - self.redraw_all(); } if let Some(ref mut callback) = self.state.borrow_mut().callbacks.quit { @@ -443,7 +455,12 @@ impl Platform for WindowsPlatform { handle: AnyWindowHandle, options: WindowParams, ) -> Result<Box<dyn PlatformWindow>> { - let window = WindowsWindow::new(handle, options, self.generate_creation_info())?; + let window = WindowsWindow::new( + handle, + options, + self.generate_creation_info(), + &self.gpu_context, + )?; let handle = window.get_raw_handle(); self.raw_window_handles.write().push(handle); @@ -722,7 +739,6 @@ pub(crate) struct WindowCreationInfo { pub(crate) validation_number: usize, pub(crate) main_receiver: flume::Receiver<Runnable>, pub(crate) main_thread_id_win32: u32, - pub(crate) disable_direct_composition: bool, } fn open_target(target: &str) { @@ -830,6 +846,16 @@ fn file_save_dialog(directory: PathBuf, window: Option<HWND>) -> Result<Option<P Ok(Some(PathBuf::from(file_path_string))) } +fn begin_vsync(vsync_event: HANDLE) { + let event: SafeHandle = vsync_event.into(); + std::thread::spawn(move || unsafe { + loop { + windows::Win32::Graphics::Dwm::DwmFlush().log_err(); + SetEvent(*event).log_err(); + } + }); +} + fn load_icon() -> Result<HICON> { let module = unsafe { GetModuleHandleW(None).context("unable to get module handle")? }; let handle = unsafe { diff --git a/crates/gpui/src/platform/windows/shaders.hlsl b/crates/gpui/src/platform/windows/shaders.hlsl deleted file mode 100644 index 25830e4b6c..0000000000 --- a/crates/gpui/src/platform/windows/shaders.hlsl +++ /dev/null @@ -1,1159 +0,0 @@ -cbuffer GlobalParams: register(b0) { - float2 global_viewport_size; - uint2 _pad; -}; - -Texture2D<float4> t_sprite: register(t0); -SamplerState s_sprite: register(s0); - -struct Bounds { - float2 origin; - float2 size; -}; - -struct Corners { - float top_left; - float top_right; - float bottom_right; - float bottom_left; -}; - -struct Edges { - float top; - float right; - float bottom; - float left; -}; - -struct Hsla { - float h; - float s; - float l; - float a; -}; - -struct LinearColorStop { - Hsla color; - float percentage; -}; - -struct Background { - // 0u is Solid - // 1u is LinearGradient - // 2u is PatternSlash - uint tag; - // 0u is sRGB linear color - // 1u is Oklab color - uint color_space; - Hsla solid; - float gradient_angle_or_pattern_height; - LinearColorStop colors[2]; - uint pad; -}; - -struct GradientColor { - float4 solid; - float4 color0; - float4 color1; -}; - -struct AtlasTextureId { - uint index; - uint kind; -}; - -struct AtlasBounds { - int2 origin; - int2 size; -}; - -struct AtlasTile { - AtlasTextureId texture_id; - uint tile_id; - uint padding; - AtlasBounds bounds; -}; - -struct TransformationMatrix { - float2x2 rotation_scale; - float2 translation; -}; - -static const float M_PI_F = 3.141592653f; -static const float3 GRAYSCALE_FACTORS = float3(0.2126f, 0.7152f, 0.0722f); - -float4 to_device_position_impl(float2 position) { - float2 device_position = position / global_viewport_size * float2(2.0, -2.0) + float2(-1.0, 1.0); - return float4(device_position, 0., 1.); -} - -float4 to_device_position(float2 unit_vertex, Bounds bounds) { - float2 position = unit_vertex * bounds.size + bounds.origin; - return to_device_position_impl(position); -} - -float4 distance_from_clip_rect_impl(float2 position, Bounds clip_bounds) { - float2 tl = position - clip_bounds.origin; - float2 br = clip_bounds.origin + clip_bounds.size - position; - return float4(tl.x, br.x, tl.y, br.y); -} - -float4 distance_from_clip_rect(float2 unit_vertex, Bounds bounds, Bounds clip_bounds) { - float2 position = unit_vertex * bounds.size + bounds.origin; - return distance_from_clip_rect_impl(position, clip_bounds); -} - -// Convert linear RGB to sRGB -float3 linear_to_srgb(float3 color) { - return pow(color, float3(2.2, 2.2, 2.2)); -} - -// Convert sRGB to linear RGB -float3 srgb_to_linear(float3 color) { - return pow(color, float3(1.0 / 2.2, 1.0 / 2.2, 1.0 / 2.2)); -} - -/// Hsla to linear RGBA conversion. -float4 hsla_to_rgba(Hsla hsla) { - float h = hsla.h * 6.0; // Now, it's an angle but scaled in [0, 6) range - float s = hsla.s; - float l = hsla.l; - float a = hsla.a; - - float c = (1.0 - abs(2.0 * l - 1.0)) * s; - float x = c * (1.0 - abs(fmod(h, 2.0) - 1.0)); - float m = l - c / 2.0; - - float r = 0.0; - float g = 0.0; - float b = 0.0; - - if (h >= 0.0 && h < 1.0) { - r = c; - g = x; - b = 0.0; - } else if (h >= 1.0 && h < 2.0) { - r = x; - g = c; - b = 0.0; - } else if (h >= 2.0 && h < 3.0) { - r = 0.0; - g = c; - b = x; - } else if (h >= 3.0 && h < 4.0) { - r = 0.0; - g = x; - b = c; - } else if (h >= 4.0 && h < 5.0) { - r = x; - g = 0.0; - b = c; - } else { - r = c; - g = 0.0; - b = x; - } - - float4 rgba; - rgba.x = (r + m); - rgba.y = (g + m); - rgba.z = (b + m); - rgba.w = a; - return rgba; -} - -// Converts a sRGB color to the Oklab color space. -// Reference: https://bottosson.github.io/posts/oklab/#converting-from-linear-srgb-to-oklab -float4 srgb_to_oklab(float4 color) { - // Convert non-linear sRGB to linear sRGB - color = float4(srgb_to_linear(color.rgb), color.a); - - float l = 0.4122214708 * color.r + 0.5363325363 * color.g + 0.0514459929 * color.b; - float m = 0.2119034982 * color.r + 0.6806995451 * color.g + 0.1073969566 * color.b; - float s = 0.0883024619 * color.r + 0.2817188376 * color.g + 0.6299787005 * color.b; - - float l_ = pow(l, 1.0/3.0); - float m_ = pow(m, 1.0/3.0); - float s_ = pow(s, 1.0/3.0); - - return float4( - 0.2104542553 * l_ + 0.7936177850 * m_ - 0.0040720468 * s_, - 1.9779984951 * l_ - 2.4285922050 * m_ + 0.4505937099 * s_, - 0.0259040371 * l_ + 0.7827717662 * m_ - 0.8086757660 * s_, - color.a - ); -} - -// Converts an Oklab color to the sRGB color space. -float4 oklab_to_srgb(float4 color) { - float l_ = color.r + 0.3963377774 * color.g + 0.2158037573 * color.b; - float m_ = color.r - 0.1055613458 * color.g - 0.0638541728 * color.b; - float s_ = color.r - 0.0894841775 * color.g - 1.2914855480 * color.b; - - float l = l_ * l_ * l_; - float m = m_ * m_ * m_; - float s = s_ * s_ * s_; - - float3 linear_rgb = float3( - 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s, - -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s, - -0.0041960863 * l - 0.7034186147 * m + 1.7076147010 * s - ); - - // Convert linear sRGB to non-linear sRGB - return float4(linear_to_srgb(linear_rgb), color.a); -} - -// This approximates the error function, needed for the gaussian integral -float2 erf(float2 x) { - float2 s = sign(x); - float2 a = abs(x); - x = 1. + (0.278393 + (0.230389 + 0.078108 * (a * a)) * a) * a; - x *= x; - return s - s / (x * x); -} - -float blur_along_x(float x, float y, float sigma, float corner, float2 half_size) { - float delta = min(half_size.y - corner - abs(y), 0.); - float curved = half_size.x - corner + sqrt(max(0., corner * corner - delta * delta)); - float2 integral = 0.5 + 0.5 * erf((x + float2(-curved, curved)) * (sqrt(0.5) / sigma)); - return integral.y - integral.x; -} - -// A standard gaussian function, used for weighting samples -float gaussian(float x, float sigma) { - return exp(-(x * x) / (2. * sigma * sigma)) / (sqrt(2. * M_PI_F) * sigma); -} - -float4 over(float4 below, float4 above) { - float4 result; - float alpha = above.a + below.a * (1.0 - above.a); - result.rgb = (above.rgb * above.a + below.rgb * below.a * (1.0 - above.a)) / alpha; - result.a = alpha; - return result; -} - -float2 to_tile_position(float2 unit_vertex, AtlasTile tile) { - float2 atlas_size; - t_sprite.GetDimensions(atlas_size.x, atlas_size.y); - return (float2(tile.bounds.origin) + unit_vertex * float2(tile.bounds.size)) / atlas_size; -} - -// Selects corner radius based on quadrant. -float pick_corner_radius(float2 center_to_point, Corners corner_radii) { - if (center_to_point.x < 0.) { - if (center_to_point.y < 0.) { - return corner_radii.top_left; - } else { - return corner_radii.bottom_left; - } - } else { - if (center_to_point.y < 0.) { - return corner_radii.top_right; - } else { - return corner_radii.bottom_right; - } - } -} - -float4 to_device_position_transformed(float2 unit_vertex, Bounds bounds, - TransformationMatrix transformation) { - float2 position = unit_vertex * bounds.size + bounds.origin; - float2 transformed = mul(position, transformation.rotation_scale) + transformation.translation; - float2 device_position = transformed / global_viewport_size * float2(2.0, -2.0) + float2(-1.0, 1.0); - return float4(device_position, 0.0, 1.0); -} - -// Implementation of quad signed distance field -float quad_sdf_impl(float2 corner_center_to_point, float corner_radius) { - if (corner_radius == 0.0) { - // Fast path for unrounded corners - return max(corner_center_to_point.x, corner_center_to_point.y); - } else { - // Signed distance of the point from a quad that is inset by corner_radius - // It is negative inside this quad, and positive outside - float signed_distance_to_inset_quad = - // 0 inside the inset quad, and positive outside - length(max(float2(0.0, 0.0), corner_center_to_point)) + - // 0 outside the inset quad, and negative inside - min(0.0, max(corner_center_to_point.x, corner_center_to_point.y)); - - return signed_distance_to_inset_quad - corner_radius; - } -} - -float quad_sdf(float2 pt, Bounds bounds, Corners corner_radii) { - float2 half_size = bounds.size / 2.; - float2 center = bounds.origin + half_size; - float2 center_to_point = pt - center; - float corner_radius = pick_corner_radius(center_to_point, corner_radii); - float2 corner_to_point = abs(center_to_point) - half_size; - float2 corner_center_to_point = corner_to_point + corner_radius; - return quad_sdf_impl(corner_center_to_point, corner_radius); -} - -GradientColor prepare_gradient_color(uint tag, uint color_space, Hsla solid, LinearColorStop colors[2]) { - GradientColor output; - if (tag == 0 || tag == 2) { - output.solid = hsla_to_rgba(solid); - } else if (tag == 1) { - output.color0 = hsla_to_rgba(colors[0].color); - output.color1 = hsla_to_rgba(colors[1].color); - - // Prepare color space in vertex for avoid conversion - // in fragment shader for performance reasons - if (color_space == 1) { - // Oklab - output.color0 = srgb_to_oklab(output.color0); - output.color1 = srgb_to_oklab(output.color1); - } - } - - return output; -} - -float2x2 rotate2d(float angle) { - float s = sin(angle); - float c = cos(angle); - return float2x2(c, -s, s, c); -} - -float4 gradient_color(Background background, - float2 position, - Bounds bounds, - float4 solid_color, float4 color0, float4 color1) { - float4 color; - - switch (background.tag) { - case 0: - color = solid_color; - break; - case 1: { - // -90 degrees to match the CSS gradient angle. - float gradient_angle = background.gradient_angle_or_pattern_height; - float radians = (fmod(gradient_angle, 360.0) - 90.0) * (M_PI_F / 180.0); - float2 direction = float2(cos(radians), sin(radians)); - - // Expand the short side to be the same as the long side - if (bounds.size.x > bounds.size.y) { - direction.y *= bounds.size.y / bounds.size.x; - } else { - direction.x *= bounds.size.x / bounds.size.y; - } - - // Get the t value for the linear gradient with the color stop percentages. - float2 half_size = bounds.size * 0.5; - float2 center = bounds.origin + half_size; - float2 center_to_point = position - center; - float t = dot(center_to_point, direction) / length(direction); - // Check the direct to determine the use x or y - if (abs(direction.x) > abs(direction.y)) { - t = (t + half_size.x) / bounds.size.x; - } else { - t = (t + half_size.y) / bounds.size.y; - } - - // Adjust t based on the stop percentages - t = (t - background.colors[0].percentage) - / (background.colors[1].percentage - - background.colors[0].percentage); - t = clamp(t, 0.0, 1.0); - - switch (background.color_space) { - case 0: - color = lerp(color0, color1, t); - break; - case 1: { - float4 oklab_color = lerp(color0, color1, t); - color = oklab_to_srgb(oklab_color); - break; - } - } - break; - } - case 2: { - float gradient_angle_or_pattern_height = background.gradient_angle_or_pattern_height; - float pattern_width = (gradient_angle_or_pattern_height / 65535.0f) / 255.0f; - float pattern_interval = fmod(gradient_angle_or_pattern_height, 65535.0f) / 255.0f; - float pattern_height = pattern_width + pattern_interval; - float stripe_angle = M_PI_F / 4.0; - float pattern_period = pattern_height * sin(stripe_angle); - float2x2 rotation = rotate2d(stripe_angle); - float2 relative_position = position - bounds.origin; - float2 rotated_point = mul(rotation, relative_position); - float pattern = fmod(rotated_point.x, pattern_period); - float distance = min(pattern, pattern_period - pattern) - pattern_period * (pattern_width / pattern_height) / 2.0f; - color = solid_color; - color.a *= saturate(0.5 - distance); - break; - } - } - - return color; -} - -// Returns the dash velocity of a corner given the dash velocity of the two -// sides, by returning the slower velocity (larger dashes). -// -// Since 0 is used for dash velocity when the border width is 0 (instead of -// +inf), this returns the other dash velocity in that case. -// -// An alternative to this might be to appropriately interpolate the dash -// velocity around the corner, but that seems overcomplicated. -float corner_dash_velocity(float dv1, float dv2) { - if (dv1 == 0.0) { - return dv2; - } else if (dv2 == 0.0) { - return dv1; - } else { - return min(dv1, dv2); - } -} - -// Returns alpha used to render antialiased dashes. -// `t` is within the dash when `fmod(t, period) < length`. -float dash_alpha( - float t, float period, float length, float dash_velocity, - float antialias_threshold -) { - float half_period = period / 2.0; - float half_length = length / 2.0; - // Value in [-half_period, half_period] - // The dash is in [-half_length, half_length] - float centered = fmod(t + half_period - half_length, period) - half_period; - // Signed distance for the dash, negative values are inside the dash - float signed_distance = abs(centered) - half_length; - // Antialiased alpha based on the signed distance - return saturate(antialias_threshold - signed_distance / dash_velocity); -} - -// This approximates distance to the nearest point to a quarter ellipse in a way -// that is sufficient for anti-aliasing when the ellipse is not very eccentric. -// The components of `point` are expected to be positive. -// -// Negative on the outside and positive on the inside. -float quarter_ellipse_sdf(float2 pt, float2 radii) { - // Scale the space to treat the ellipse like a unit circle - float2 circle_vec = pt / radii; - float unit_circle_sdf = length(circle_vec) - 1.0; - // Approximate up-scaling of the length by using the average of the radii. - // - // TODO: A better solution would be to use the gradient of the implicit - // function for an ellipse to approximate a scaling factor. - return unit_circle_sdf * (radii.x + radii.y) * -0.5; -} - -/* -** -** Quads -** -*/ - -struct Quad { - uint order; - uint border_style; - Bounds bounds; - Bounds content_mask; - Background background; - Hsla border_color; - Corners corner_radii; - Edges border_widths; -}; - -struct QuadVertexOutput { - nointerpolation uint quad_id: TEXCOORD0; - float4 position: SV_Position; - nointerpolation float4 border_color: COLOR0; - nointerpolation float4 background_solid: COLOR1; - nointerpolation float4 background_color0: COLOR2; - nointerpolation float4 background_color1: COLOR3; - float4 clip_distance: SV_ClipDistance; -}; - -struct QuadFragmentInput { - nointerpolation uint quad_id: TEXCOORD0; - float4 position: SV_Position; - nointerpolation float4 border_color: COLOR0; - nointerpolation float4 background_solid: COLOR1; - nointerpolation float4 background_color0: COLOR2; - nointerpolation float4 background_color1: COLOR3; -}; - -StructuredBuffer<Quad> quads: register(t1); - -QuadVertexOutput quad_vertex(uint vertex_id: SV_VertexID, uint quad_id: SV_InstanceID) { - float2 unit_vertex = float2(float(vertex_id & 1u), 0.5 * float(vertex_id & 2u)); - Quad quad = quads[quad_id]; - float4 device_position = to_device_position(unit_vertex, quad.bounds); - - GradientColor gradient = prepare_gradient_color( - quad.background.tag, - quad.background.color_space, - quad.background.solid, - quad.background.colors - ); - float4 clip_distance = distance_from_clip_rect(unit_vertex, quad.bounds, quad.content_mask); - float4 border_color = hsla_to_rgba(quad.border_color); - - QuadVertexOutput output; - output.position = device_position; - output.border_color = border_color; - output.quad_id = quad_id; - output.background_solid = gradient.solid; - output.background_color0 = gradient.color0; - output.background_color1 = gradient.color1; - output.clip_distance = clip_distance; - return output; -} - -float4 quad_fragment(QuadFragmentInput input): SV_Target { - Quad quad = quads[input.quad_id]; - float4 background_color = gradient_color(quad.background, input.position.xy, quad.bounds, - input.background_solid, input.background_color0, input.background_color1); - - bool unrounded = quad.corner_radii.top_left == 0.0 && - quad.corner_radii.top_right == 0.0 && - quad.corner_radii.bottom_left == 0.0 && - quad.corner_radii.bottom_right == 0.0; - - // Fast path when the quad is not rounded and doesn't have any border - if (quad.border_widths.top == 0.0 && - quad.border_widths.left == 0.0 && - quad.border_widths.right == 0.0 && - quad.border_widths.bottom == 0.0 && - unrounded) { - return background_color; - } - - float2 size = quad.bounds.size; - float2 half_size = size / 2.; - float2 the_point = input.position.xy - quad.bounds.origin; - float2 center_to_point = the_point - half_size; - - // Signed distance field threshold for inclusion of pixels. 0.5 is the - // minimum distance between the center of the pixel and the edge. - const float antialias_threshold = 0.5; - - // Radius of the nearest corner - float corner_radius = pick_corner_radius(center_to_point, quad.corner_radii); - - float2 border = float2( - center_to_point.x < 0.0 ? quad.border_widths.left : quad.border_widths.right, - center_to_point.y < 0.0 ? quad.border_widths.top : quad.border_widths.bottom - ); - - // 0-width borders are reduced so that `inner_sdf >= antialias_threshold`. - // The purpose of this is to not draw antialiasing pixels in this case. - float2 reduced_border = float2( - border.x == 0.0 ? -antialias_threshold : border.x, - border.y == 0.0 ? -antialias_threshold : border.y - ); - - // Vector from the corner of the quad bounds to the point, after mirroring - // the point into the bottom right quadrant. Both components are <= 0. - float2 corner_to_point = abs(center_to_point) - half_size; - - // Vector from the point to the center of the rounded corner's circle, also - // mirrored into bottom right quadrant. - float2 corner_center_to_point = corner_to_point + corner_radius; - - // Whether the nearest point on the border is rounded - bool is_near_rounded_corner = - corner_center_to_point.x >= 0.0 && - corner_center_to_point.y >= 0.0; - - // Vector from straight border inner corner to point. - // - // 0-width borders are turned into width -1 so that inner_sdf is > 1.0 near - // the border. Without this, antialiasing pixels would be drawn. - float2 straight_border_inner_corner_to_point = corner_to_point + reduced_border; - - // Whether the point is beyond the inner edge of the straight border - bool is_beyond_inner_straight_border = - straight_border_inner_corner_to_point.x > 0.0 || - straight_border_inner_corner_to_point.y > 0.0; - - // Whether the point is far enough inside the quad, such that the pixels are - // not affected by the straight border. - bool is_within_inner_straight_border = - straight_border_inner_corner_to_point.x < -antialias_threshold && - straight_border_inner_corner_to_point.y < -antialias_threshold; - - // Fast path for points that must be part of the background - if (is_within_inner_straight_border && !is_near_rounded_corner) { - return background_color; - } - - // Signed distance of the point to the outside edge of the quad's border - float outer_sdf = quad_sdf_impl(corner_center_to_point, corner_radius); - - // Approximate signed distance of the point to the inside edge of the quad's - // border. It is negative outside this edge (within the border), and - // positive inside. - // - // This is not always an accurate signed distance: - // * The rounded portions with varying border width use an approximation of - // nearest-point-on-ellipse. - // * When it is quickly known to be outside the edge, -1.0 is used. - float inner_sdf = 0.0; - if (corner_center_to_point.x <= 0.0 || corner_center_to_point.y <= 0.0) { - // Fast paths for straight borders - inner_sdf = -max(straight_border_inner_corner_to_point.x, - straight_border_inner_corner_to_point.y); - } else if (is_beyond_inner_straight_border) { - // Fast path for points that must be outside the inner edge - inner_sdf = -1.0; - } else if (reduced_border.x == reduced_border.y) { - // Fast path for circular inner edge. - inner_sdf = -(outer_sdf + reduced_border.x); - } else { - float2 ellipse_radii = max(float2(0.0, 0.0), float2(corner_radius, corner_radius) - reduced_border); - inner_sdf = quarter_ellipse_sdf(corner_center_to_point, ellipse_radii); - } - - // Negative when inside the border - float border_sdf = max(inner_sdf, outer_sdf); - - float4 color = background_color; - if (border_sdf < antialias_threshold) { - float4 border_color = input.border_color; - // Dashed border logic when border_style == 1 - if (quad.border_style == 1) { - // Position along the perimeter in "dash space", where each dash - // period has length 1 - float t = 0.0; - - // Total number of dash periods, so that the dash spacing can be - // adjusted to evenly divide it - float max_t = 0.0; - - // Border width is proportional to dash size. This is the behavior - // used by browsers, but also avoids dashes from different segments - // overlapping when dash size is smaller than the border width. - // - // Dash pattern: (2 * border width) dash, (1 * border width) gap - const float dash_length_per_width = 2.0; - const float dash_gap_per_width = 1.0; - const float dash_period_per_width = dash_length_per_width + dash_gap_per_width; - - // Since the dash size is determined by border width, the density of - // dashes varies. Multiplying a pixel distance by this returns a - // position in dash space - it has units (dash period / pixels). So - // a dash velocity of (1 / 10) is 1 dash every 10 pixels. - float dash_velocity = 0.0; - - // Dividing this by the border width gives the dash velocity - const float dv_numerator = 1.0 / dash_period_per_width; - - if (unrounded) { - // When corners aren't rounded, the dashes are separately laid - // out on each straight line, rather than around the whole - // perimeter. This way each line starts and ends with a dash. - bool is_horizontal = corner_center_to_point.x < corner_center_to_point.y; - float border_width = is_horizontal ? border.x : border.y; - dash_velocity = dv_numerator / border_width; - t = is_horizontal ? the_point.x : the_point.y; - t *= dash_velocity; - max_t = is_horizontal ? size.x : size.y; - max_t *= dash_velocity; - } else { - // When corners are rounded, the dashes are laid out clockwise - // around the whole perimeter. - - float r_tr = quad.corner_radii.top_right; - float r_br = quad.corner_radii.bottom_right; - float r_bl = quad.corner_radii.bottom_left; - float r_tl = quad.corner_radii.top_left; - - float w_t = quad.border_widths.top; - float w_r = quad.border_widths.right; - float w_b = quad.border_widths.bottom; - float w_l = quad.border_widths.left; - - // Straight side dash velocities - float dv_t = w_t <= 0.0 ? 0.0 : dv_numerator / w_t; - float dv_r = w_r <= 0.0 ? 0.0 : dv_numerator / w_r; - float dv_b = w_b <= 0.0 ? 0.0 : dv_numerator / w_b; - float dv_l = w_l <= 0.0 ? 0.0 : dv_numerator / w_l; - - // Straight side lengths in dash space - float s_t = (size.x - r_tl - r_tr) * dv_t; - float s_r = (size.y - r_tr - r_br) * dv_r; - float s_b = (size.x - r_br - r_bl) * dv_b; - float s_l = (size.y - r_bl - r_tl) * dv_l; - - float corner_dash_velocity_tr = corner_dash_velocity(dv_t, dv_r); - float corner_dash_velocity_br = corner_dash_velocity(dv_b, dv_r); - float corner_dash_velocity_bl = corner_dash_velocity(dv_b, dv_l); - float corner_dash_velocity_tl = corner_dash_velocity(dv_t, dv_l); - - // Corner lengths in dash space - float c_tr = r_tr * (M_PI_F / 2.0) * corner_dash_velocity_tr; - float c_br = r_br * (M_PI_F / 2.0) * corner_dash_velocity_br; - float c_bl = r_bl * (M_PI_F / 2.0) * corner_dash_velocity_bl; - float c_tl = r_tl * (M_PI_F / 2.0) * corner_dash_velocity_tl; - - // Cumulative dash space upto each segment - float upto_tr = s_t; - float upto_r = upto_tr + c_tr; - float upto_br = upto_r + s_r; - float upto_b = upto_br + c_br; - float upto_bl = upto_b + s_b; - float upto_l = upto_bl + c_bl; - float upto_tl = upto_l + s_l; - max_t = upto_tl + c_tl; - - if (is_near_rounded_corner) { - float radians = atan2(corner_center_to_point.y, corner_center_to_point.x); - float corner_t = radians * corner_radius; - - if (center_to_point.x >= 0.0) { - if (center_to_point.y < 0.0) { - dash_velocity = corner_dash_velocity_tr; - // Subtracted because radians is pi/2 to 0 when - // going clockwise around the top right corner, - // since the y axis has been flipped - t = upto_r - corner_t * dash_velocity; - } else { - dash_velocity = corner_dash_velocity_br; - // Added because radians is 0 to pi/2 when going - // clockwise around the bottom-right corner - t = upto_br + corner_t * dash_velocity; - } - } else { - if (center_to_point.y >= 0.0) { - dash_velocity = corner_dash_velocity_bl; - // Subtracted because radians is pi/1 to 0 when - // going clockwise around the bottom-left corner, - // since the x axis has been flipped - t = upto_l - corner_t * dash_velocity; - } else { - dash_velocity = corner_dash_velocity_tl; - // Added because radians is 0 to pi/2 when going - // clockwise around the top-left corner, since both - // axis were flipped - t = upto_tl + corner_t * dash_velocity; - } - } - } else { - // Straight borders - bool is_horizontal = corner_center_to_point.x < corner_center_to_point.y; - if (is_horizontal) { - if (center_to_point.y < 0.0) { - dash_velocity = dv_t; - t = (the_point.x - r_tl) * dash_velocity; - } else { - dash_velocity = dv_b; - t = upto_bl - (the_point.x - r_bl) * dash_velocity; - } - } else { - if (center_to_point.x < 0.0) { - dash_velocity = dv_l; - t = upto_tl - (the_point.y - r_tl) * dash_velocity; - } else { - dash_velocity = dv_r; - t = upto_r + (the_point.y - r_tr) * dash_velocity; - } - } - } - } - float dash_length = dash_length_per_width / dash_period_per_width; - float desired_dash_gap = dash_gap_per_width / dash_period_per_width; - - // Straight borders should start and end with a dash, so max_t is - // reduced to cause this. - max_t -= unrounded ? dash_length : 0.0; - if (max_t >= 1.0) { - // Adjust dash gap to evenly divide max_t - float dash_count = floor(max_t); - float dash_period = max_t / dash_count; - border_color.a *= dash_alpha(t, dash_period, dash_length, dash_velocity, antialias_threshold); - } else if (unrounded) { - // When there isn't enough space for the full gap between the - // two start / end dashes of a straight border, reduce gap to - // make them fit. - float dash_gap = max_t - dash_length; - if (dash_gap > 0.0) { - float dash_period = dash_length + dash_gap; - border_color.a *= dash_alpha(t, dash_period, dash_length, dash_velocity, antialias_threshold); - } - } - } - - // Blend the border on top of the background and then linearly interpolate - // between the two as we slide inside the background. - float4 blended_border = over(background_color, border_color); - color = lerp(background_color, blended_border, - saturate(antialias_threshold - inner_sdf)); - } - - return color * float4(1.0, 1.0, 1.0, saturate(antialias_threshold - outer_sdf)); -} - -/* -** -** Shadows -** -*/ - -struct Shadow { - uint order; - float blur_radius; - Bounds bounds; - Corners corner_radii; - Bounds content_mask; - Hsla color; -}; - -struct ShadowVertexOutput { - nointerpolation uint shadow_id: TEXCOORD0; - float4 position: SV_Position; - nointerpolation float4 color: COLOR; - float4 clip_distance: SV_ClipDistance; -}; - -struct ShadowFragmentInput { - nointerpolation uint shadow_id: TEXCOORD0; - float4 position: SV_Position; - nointerpolation float4 color: COLOR; -}; - -StructuredBuffer<Shadow> shadows: register(t1); - -ShadowVertexOutput shadow_vertex(uint vertex_id: SV_VertexID, uint shadow_id: SV_InstanceID) { - float2 unit_vertex = float2(float(vertex_id & 1u), 0.5 * float(vertex_id & 2u)); - Shadow shadow = shadows[shadow_id]; - - float margin = 3.0 * shadow.blur_radius; - Bounds bounds = shadow.bounds; - bounds.origin -= margin; - bounds.size += 2.0 * margin; - - float4 device_position = to_device_position(unit_vertex, bounds); - float4 clip_distance = distance_from_clip_rect(unit_vertex, bounds, shadow.content_mask); - float4 color = hsla_to_rgba(shadow.color); - - ShadowVertexOutput output; - output.position = device_position; - output.color = color; - output.shadow_id = shadow_id; - output.clip_distance = clip_distance; - - return output; -} - -float4 shadow_fragment(ShadowFragmentInput input): SV_TARGET { - Shadow shadow = shadows[input.shadow_id]; - - float2 half_size = shadow.bounds.size / 2.; - float2 center = shadow.bounds.origin + half_size; - float2 point0 = input.position.xy - center; - float corner_radius = pick_corner_radius(point0, shadow.corner_radii); - - // The signal is only non-zero in a limited range, so don't waste samples - float low = point0.y - half_size.y; - float high = point0.y + half_size.y; - float start = clamp(-3. * shadow.blur_radius, low, high); - float end = clamp(3. * shadow.blur_radius, low, high); - - // Accumulate samples (we can get away with surprisingly few samples) - float step = (end - start) / 4.; - float y = start + step * 0.5; - float alpha = 0.; - for (int i = 0; i < 4; i++) { - alpha += blur_along_x(point0.x, point0.y - y, shadow.blur_radius, - corner_radius, half_size) * - gaussian(y, shadow.blur_radius) * step; - y += step; - } - - return input.color * float4(1., 1., 1., alpha); -} - -/* -** -** Path Rasterization -** -*/ - -struct PathRasterizationSprite { - float2 xy_position; - float2 st_position; - Background color; - Bounds bounds; -}; - -StructuredBuffer<PathRasterizationSprite> path_rasterization_sprites: register(t1); - -struct PathVertexOutput { - float4 position: SV_Position; - float2 st_position: TEXCOORD0; - nointerpolation uint vertex_id: TEXCOORD1; - float4 clip_distance: SV_ClipDistance; -}; - -struct PathFragmentInput { - float4 position: SV_Position; - float2 st_position: TEXCOORD0; - nointerpolation uint vertex_id: TEXCOORD1; -}; - -PathVertexOutput path_rasterization_vertex(uint vertex_id: SV_VertexID) { - PathRasterizationSprite sprite = path_rasterization_sprites[vertex_id]; - - PathVertexOutput output; - output.position = to_device_position_impl(sprite.xy_position); - output.st_position = sprite.st_position; - output.vertex_id = vertex_id; - output.clip_distance = distance_from_clip_rect_impl(sprite.xy_position, sprite.bounds); - - return output; -} - -float4 path_rasterization_fragment(PathFragmentInput input): SV_Target { - float2 dx = ddx(input.st_position); - float2 dy = ddy(input.st_position); - PathRasterizationSprite sprite = path_rasterization_sprites[input.vertex_id]; - - Background background = sprite.color; - Bounds bounds = sprite.bounds; - - float alpha; - if (length(float2(dx.x, dy.x))) { - alpha = 1.0; - } else { - float2 gradient = 2.0 * input.st_position.xx * float2(dx.x, dy.x) - float2(dx.y, dy.y); - float f = input.st_position.x * input.st_position.x - input.st_position.y; - float distance = f / length(gradient); - alpha = saturate(0.5 - distance); - } - - GradientColor gradient = prepare_gradient_color( - background.tag, background.color_space, background.solid, background.colors); - - float4 color = gradient_color(background, input.position.xy, bounds, - gradient.solid, gradient.color0, gradient.color1); - return float4(color.rgb * color.a * alpha, alpha * color.a); -} - -/* -** -** Path Sprites -** -*/ - -struct PathSprite { - Bounds bounds; -}; - -struct PathSpriteVertexOutput { - float4 position: SV_Position; - float2 texture_coords: TEXCOORD0; -}; - -StructuredBuffer<PathSprite> path_sprites: register(t1); - -PathSpriteVertexOutput path_sprite_vertex(uint vertex_id: SV_VertexID, uint sprite_id: SV_InstanceID) { - float2 unit_vertex = float2(float(vertex_id & 1u), 0.5 * float(vertex_id & 2u)); - PathSprite sprite = path_sprites[sprite_id]; - - // Don't apply content mask because it was already accounted for when rasterizing the path - float4 device_position = to_device_position(unit_vertex, sprite.bounds); - - float2 screen_position = sprite.bounds.origin + unit_vertex * sprite.bounds.size; - float2 texture_coords = screen_position / global_viewport_size; - - PathSpriteVertexOutput output; - output.position = device_position; - output.texture_coords = texture_coords; - return output; -} - -float4 path_sprite_fragment(PathSpriteVertexOutput input): SV_Target { - return t_sprite.Sample(s_sprite, input.texture_coords); -} - -/* -** -** Underlines -** -*/ - -struct Underline { - uint order; - uint pad; - Bounds bounds; - Bounds content_mask; - Hsla color; - float thickness; - uint wavy; -}; - -struct UnderlineVertexOutput { - nointerpolation uint underline_id: TEXCOORD0; - float4 position: SV_Position; - nointerpolation float4 color: COLOR; - float4 clip_distance: SV_ClipDistance; -}; - -struct UnderlineFragmentInput { - nointerpolation uint underline_id: TEXCOORD0; - float4 position: SV_Position; - nointerpolation float4 color: COLOR; -}; - -StructuredBuffer<Underline> underlines: register(t1); - -UnderlineVertexOutput underline_vertex(uint vertex_id: SV_VertexID, uint underline_id: SV_InstanceID) { - float2 unit_vertex = float2(float(vertex_id & 1u), 0.5 * float(vertex_id & 2u)); - Underline underline = underlines[underline_id]; - float4 device_position = to_device_position(unit_vertex, underline.bounds); - float4 clip_distance = distance_from_clip_rect(unit_vertex, underline.bounds, - underline.content_mask); - float4 color = hsla_to_rgba(underline.color); - - UnderlineVertexOutput output; - output.position = device_position; - output.color = color; - output.underline_id = underline_id; - output.clip_distance = clip_distance; - return output; -} - -float4 underline_fragment(UnderlineFragmentInput input): SV_Target { - Underline underline = underlines[input.underline_id]; - if (underline.wavy) { - float half_thickness = underline.thickness * 0.5; - float2 origin = underline.bounds.origin; - float2 st = ((input.position.xy - origin) / underline.bounds.size.y) - float2(0., 0.5); - float frequency = (M_PI_F * (3. * underline.thickness)) / 8.; - float amplitude = 1. / (2. * underline.thickness); - float sine = sin(st.x * frequency) * amplitude; - float dSine = cos(st.x * frequency) * amplitude * frequency; - float distance = (st.y - sine) / sqrt(1. + dSine * dSine); - float distance_in_pixels = distance * underline.bounds.size.y; - float distance_from_top_border = distance_in_pixels - half_thickness; - float distance_from_bottom_border = distance_in_pixels + half_thickness; - float alpha = saturate( - 0.5 - max(-distance_from_bottom_border, distance_from_top_border)); - return input.color * float4(1., 1., 1., alpha); - } else { - return input.color; - } -} - -/* -** -** Monochrome sprites -** -*/ - -struct MonochromeSprite { - uint order; - uint pad; - Bounds bounds; - Bounds content_mask; - Hsla color; - AtlasTile tile; - TransformationMatrix transformation; -}; - -struct MonochromeSpriteVertexOutput { - float4 position: SV_Position; - float2 tile_position: POSITION; - nointerpolation float4 color: COLOR; - float4 clip_distance: SV_ClipDistance; -}; - -struct MonochromeSpriteFragmentInput { - float4 position: SV_Position; - float2 tile_position: POSITION; - nointerpolation float4 color: COLOR; - float4 clip_distance: SV_ClipDistance; -}; - -StructuredBuffer<MonochromeSprite> mono_sprites: register(t1); - -MonochromeSpriteVertexOutput monochrome_sprite_vertex(uint vertex_id: SV_VertexID, uint sprite_id: SV_InstanceID) { - float2 unit_vertex = float2(float(vertex_id & 1u), 0.5 * float(vertex_id & 2u)); - MonochromeSprite sprite = mono_sprites[sprite_id]; - float4 device_position = - to_device_position_transformed(unit_vertex, sprite.bounds, sprite.transformation); - float4 clip_distance = distance_from_clip_rect(unit_vertex, sprite.bounds, sprite.content_mask); - float2 tile_position = to_tile_position(unit_vertex, sprite.tile); - float4 color = hsla_to_rgba(sprite.color); - - MonochromeSpriteVertexOutput output; - output.position = device_position; - output.tile_position = tile_position; - output.color = color; - output.clip_distance = clip_distance; - return output; -} - -float4 monochrome_sprite_fragment(MonochromeSpriteFragmentInput input): SV_Target { - float sample = t_sprite.Sample(s_sprite, input.tile_position).r; - return float4(input.color.rgb, input.color.a * sample); -} - -/* -** -** Polychrome sprites -** -*/ - -struct PolychromeSprite { - uint order; - uint pad; - uint grayscale; - float opacity; - Bounds bounds; - Bounds content_mask; - Corners corner_radii; - AtlasTile tile; -}; - -struct PolychromeSpriteVertexOutput { - nointerpolation uint sprite_id: TEXCOORD0; - float4 position: SV_Position; - float2 tile_position: POSITION; - float4 clip_distance: SV_ClipDistance; -}; - -struct PolychromeSpriteFragmentInput { - nointerpolation uint sprite_id: TEXCOORD0; - float4 position: SV_Position; - float2 tile_position: POSITION; -}; - -StructuredBuffer<PolychromeSprite> poly_sprites: register(t1); - -PolychromeSpriteVertexOutput polychrome_sprite_vertex(uint vertex_id: SV_VertexID, uint sprite_id: SV_InstanceID) { - float2 unit_vertex = float2(float(vertex_id & 1u), 0.5 * float(vertex_id & 2u)); - PolychromeSprite sprite = poly_sprites[sprite_id]; - float4 device_position = to_device_position(unit_vertex, sprite.bounds); - float4 clip_distance = distance_from_clip_rect(unit_vertex, sprite.bounds, - sprite.content_mask); - float2 tile_position = to_tile_position(unit_vertex, sprite.tile); - - PolychromeSpriteVertexOutput output; - output.position = device_position; - output.tile_position = tile_position; - output.sprite_id = sprite_id; - output.clip_distance = clip_distance; - return output; -} - -float4 polychrome_sprite_fragment(PolychromeSpriteFragmentInput input): SV_Target { - PolychromeSprite sprite = poly_sprites[input.sprite_id]; - float4 sample = t_sprite.Sample(s_sprite, input.tile_position); - float distance = quad_sdf(input.position.xy, sprite.bounds, sprite.corner_radii); - - float4 color = sample; - if ((sprite.grayscale & 0xFFu) != 0u) { - float3 grayscale = dot(color.rgb, GRAYSCALE_FACTORS); - color = float4(grayscale, sample.a); - } - color.a *= sprite.opacity * saturate(0.5 - distance); - return color; -} diff --git a/crates/gpui/src/platform/windows/window.rs b/crates/gpui/src/platform/windows/window.rs index 68b667569b..5703a82815 100644 --- a/crates/gpui/src/platform/windows/window.rs +++ b/crates/gpui/src/platform/windows/window.rs @@ -26,6 +26,7 @@ use windows::{ core::*, }; +use crate::platform::blade::{BladeContext, BladeRenderer}; use crate::*; pub(crate) struct WindowsWindow(pub Rc<WindowsWindowStatePtr>); @@ -48,7 +49,7 @@ pub struct WindowsWindowState { pub system_key_handled: bool, pub hovered: bool, - pub renderer: DirectXRenderer, + pub renderer: BladeRenderer, pub click_state: ClickState, pub system_settings: WindowsSystemSettings, @@ -79,12 +80,13 @@ pub(crate) struct WindowsWindowStatePtr { impl WindowsWindowState { fn new( hwnd: HWND, + transparent: bool, cs: &CREATESTRUCTW, current_cursor: Option<HCURSOR>, display: WindowsDisplay, + gpu_context: &BladeContext, min_size: Option<Size<Pixels>>, appearance: WindowAppearance, - disable_direct_composition: bool, ) -> Result<Self> { let scale_factor = { let monitor_dpi = unsafe { GetDpiForWindow(hwnd) } as f32; @@ -101,8 +103,7 @@ impl WindowsWindowState { }; let border_offset = WindowBorderOffset::default(); let restore_from_minimized = None; - let renderer = DirectXRenderer::new(hwnd, disable_direct_composition) - .context("Creating DirectX renderer")?; + let renderer = windows_renderer::init(gpu_context, hwnd, transparent)?; let callbacks = Callbacks::default(); let input_handler = None; let pending_surrogate = None; @@ -205,12 +206,13 @@ impl WindowsWindowStatePtr { fn new(context: &WindowCreateContext, hwnd: HWND, cs: &CREATESTRUCTW) -> Result<Rc<Self>> { let state = RefCell::new(WindowsWindowState::new( hwnd, + context.transparent, cs, context.current_cursor, context.display, + context.gpu_context, context.min_size, context.appearance, - context.disable_direct_composition, )?); Ok(Rc::new_cyclic(|this| Self { @@ -327,11 +329,12 @@ pub(crate) struct Callbacks { pub(crate) appearance_changed: Option<Box<dyn FnMut()>>, } -struct WindowCreateContext { +struct WindowCreateContext<'a> { inner: Option<Result<Rc<WindowsWindowStatePtr>>>, handle: AnyWindowHandle, hide_title_bar: bool, display: WindowsDisplay, + transparent: bool, is_movable: bool, min_size: Option<Size<Pixels>>, executor: ForegroundExecutor, @@ -340,9 +343,9 @@ struct WindowCreateContext { drop_target_helper: IDropTargetHelper, validation_number: usize, main_receiver: flume::Receiver<Runnable>, + gpu_context: &'a BladeContext, main_thread_id_win32: u32, appearance: WindowAppearance, - disable_direct_composition: bool, } impl WindowsWindow { @@ -350,6 +353,7 @@ impl WindowsWindow { handle: AnyWindowHandle, params: WindowParams, creation_info: WindowCreationInfo, + gpu_context: &BladeContext, ) -> Result<Self> { let WindowCreationInfo { icon, @@ -360,7 +364,6 @@ impl WindowsWindow { validation_number, main_receiver, main_thread_id_win32, - disable_direct_composition, } = creation_info; let classname = register_wnd_class(icon); let hide_title_bar = params @@ -376,18 +379,14 @@ impl WindowsWindow { .map(|title| title.as_ref()) .unwrap_or(""), ); - - let (mut dwexstyle, dwstyle) = if params.kind == WindowKind::PopUp { - (WS_EX_TOOLWINDOW, WINDOW_STYLE(0x0)) + let (dwexstyle, mut dwstyle) = if params.kind == WindowKind::PopUp { + (WS_EX_TOOLWINDOW | WS_EX_LAYERED, WINDOW_STYLE(0x0)) } else { ( - WS_EX_APPWINDOW, + WS_EX_APPWINDOW | WS_EX_LAYERED, WS_THICKFRAME | WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX, ) }; - if !disable_direct_composition { - dwexstyle |= WS_EX_NOREDIRECTIONBITMAP; - } let hinstance = get_module_handle(); let display = if let Some(display_id) = params.display_id { @@ -402,6 +401,7 @@ impl WindowsWindow { handle, hide_title_bar, display, + transparent: true, is_movable: params.is_movable, min_size: params.window_min_size, executor, @@ -410,9 +410,9 @@ impl WindowsWindow { drop_target_helper, validation_number, main_receiver, + gpu_context, main_thread_id_win32, appearance, - disable_direct_composition, }; let lpparam = Some(&context as *const _ as *const _); let creation_result = unsafe { @@ -453,6 +453,14 @@ impl WindowsWindow { state: WindowOpenState::Windowed, }); } + // The render pipeline will perform compositing on the GPU when the + // swapchain is configured correctly (see downstream of + // update_transparency). + // The following configuration is a one-time setup to ensure that the + // window is going to be composited with per-pixel alpha, but the render + // pipeline is responsible for effectively calling UpdateLayeredWindow + // at the appropriate time. + unsafe { SetLayeredWindowAttributes(hwnd, COLORREF(0), 255, LWA_ALPHA)? }; Ok(Self(state_ptr)) } @@ -477,6 +485,7 @@ impl rwh::HasDisplayHandle for WindowsWindow { impl Drop for WindowsWindow { fn drop(&mut self) { + self.0.state.borrow_mut().renderer.destroy(); // clone this `Rc` to prevent early release of the pointer let this = self.0.clone(); self.0 @@ -696,21 +705,24 @@ impl PlatformWindow for WindowsWindow { } fn set_background_appearance(&self, background_appearance: WindowBackgroundAppearance) { - let hwnd = self.0.hwnd; + let mut window_state = self.0.state.borrow_mut(); + window_state + .renderer + .update_transparency(background_appearance != WindowBackgroundAppearance::Opaque); match background_appearance { WindowBackgroundAppearance::Opaque => { // ACCENT_DISABLED - set_window_composition_attribute(hwnd, None, 0); + set_window_composition_attribute(window_state.hwnd, None, 0); } WindowBackgroundAppearance::Transparent => { // Use ACCENT_ENABLE_TRANSPARENTGRADIENT for transparent background - set_window_composition_attribute(hwnd, None, 2); + set_window_composition_attribute(window_state.hwnd, None, 2); } WindowBackgroundAppearance::Blurred => { // Enable acrylic blur // ACCENT_ENABLE_ACRYLICBLURBEHIND - set_window_composition_attribute(hwnd, Some((0, 0, 0, 0)), 4); + set_window_composition_attribute(window_state.hwnd, Some((0, 0, 0, 0)), 4); } } } @@ -782,11 +794,11 @@ impl PlatformWindow for WindowsWindow { } fn draw(&self, scene: &Scene) { - self.0.state.borrow_mut().renderer.draw(scene).log_err(); + self.0.state.borrow_mut().renderer.draw(scene) } fn sprite_atlas(&self) -> Arc<dyn PlatformAtlas> { - self.0.state.borrow().renderer.sprite_atlas() + self.0.state.borrow().renderer.sprite_atlas().clone() } fn get_raw_handle(&self) -> HWND { @@ -794,11 +806,11 @@ impl PlatformWindow for WindowsWindow { } fn gpu_specs(&self) -> Option<GpuSpecs> { - self.0.state.borrow().renderer.gpu_specs().log_err() + Some(self.0.state.borrow().renderer.gpu_specs()) } fn update_ime_position(&self, _bounds: Bounds<ScaledPixels>) { - // There is no such thing on Windows. + // todo(windows) } } @@ -1294,6 +1306,52 @@ fn set_window_composition_attribute(hwnd: HWND, color: Option<Color>, state: u32 } } +mod windows_renderer { + use crate::platform::blade::{BladeContext, BladeRenderer, BladeSurfaceConfig}; + use raw_window_handle as rwh; + use std::num::NonZeroIsize; + use windows::Win32::{Foundation::HWND, UI::WindowsAndMessaging::GWLP_HINSTANCE}; + + use crate::{get_window_long, show_error}; + + pub(super) fn init( + context: &BladeContext, + hwnd: HWND, + transparent: bool, + ) -> anyhow::Result<BladeRenderer> { + let raw = RawWindow { hwnd }; + let config = BladeSurfaceConfig { + size: Default::default(), + transparent, + }; + BladeRenderer::new(context, &raw, config) + .inspect_err(|err| show_error("Failed to initialize BladeRenderer", err.to_string())) + } + + struct RawWindow { + hwnd: HWND, + } + + impl rwh::HasWindowHandle for RawWindow { + fn window_handle(&self) -> Result<rwh::WindowHandle<'_>, rwh::HandleError> { + Ok(unsafe { + let hwnd = NonZeroIsize::new_unchecked(self.hwnd.0 as isize); + let mut handle = rwh::Win32WindowHandle::new(hwnd); + let hinstance = get_window_long(self.hwnd, GWLP_HINSTANCE); + handle.hinstance = NonZeroIsize::new(hinstance); + rwh::WindowHandle::borrow_raw(handle.into()) + }) + } + } + + impl rwh::HasDisplayHandle for RawWindow { + fn display_handle(&self) -> Result<rwh::DisplayHandle<'_>, rwh::HandleError> { + let handle = rwh::WindowsDisplayHandle::new(); + Ok(unsafe { rwh::DisplayHandle::borrow_raw(handle.into()) }) + } + } +} + #[cfg(test)] mod tests { use super::ClickState; diff --git a/crates/gpui/src/scene.rs b/crates/gpui/src/scene.rs index ec8d720cdf..4eaef64afa 100644 --- a/crates/gpui/src/scene.rs +++ b/crates/gpui/src/scene.rs @@ -43,6 +43,17 @@ impl Scene { self.surfaces.clear(); } + #[cfg_attr( + all( + any(target_os = "linux", target_os = "freebsd"), + not(any(feature = "x11", feature = "wayland")) + ), + allow(dead_code) + )] + pub fn paths(&self) -> &[Path<ScaledPixels>] { + &self.paths + } + pub fn len(&self) -> usize { self.paint_operations.len() } @@ -670,7 +681,7 @@ pub(crate) struct PathId(pub(crate) usize); #[derive(Clone, Debug)] pub struct Path<P: Clone + Debug + Default + PartialEq> { pub(crate) id: PathId, - pub(crate) order: DrawOrder, + order: DrawOrder, pub(crate) bounds: Bounds<P>, pub(crate) content_mask: ContentMask<P>, pub(crate) vertices: Vec<PathVertex<P>>, diff --git a/crates/gpui/src/tab_stop.rs b/crates/gpui/src/tab_stop.rs index 7dde42efed..2ec3f560e8 100644 --- a/crates/gpui/src/tab_stop.rs +++ b/crates/gpui/src/tab_stop.rs @@ -5,7 +5,7 @@ use crate::{FocusHandle, FocusId}; /// Used to manage the `Tab` event to switch between focus handles. #[derive(Default)] pub(crate) struct TabHandles { - pub(crate) handles: Vec<FocusHandle>, + handles: Vec<FocusHandle>, } impl TabHandles { @@ -32,18 +32,20 @@ impl TabHandles { self.handles.clear(); } - fn current_index(&self, focused_id: Option<&FocusId>) -> Option<usize> { - self.handles.iter().position(|h| Some(&h.id) == focused_id) + fn current_index(&self, focused_id: Option<&FocusId>) -> usize { + self.handles + .iter() + .position(|h| Some(&h.id) == focused_id) + .unwrap_or_default() } pub(crate) fn next(&self, focused_id: Option<&FocusId>) -> Option<FocusHandle> { - let next_ix = self - .current_index(focused_id) - .and_then(|ix| { - let next_ix = ix + 1; - (next_ix < self.handles.len()).then_some(next_ix) - }) - .unwrap_or_default(); + let ix = self.current_index(focused_id); + + let mut next_ix = ix + 1; + if next_ix + 1 > self.handles.len() { + next_ix = 0; + } if let Some(next_handle) = self.handles.get(next_ix) { Some(next_handle.clone()) @@ -53,7 +55,7 @@ impl TabHandles { } pub(crate) fn prev(&self, focused_id: Option<&FocusId>) -> Option<FocusHandle> { - let ix = self.current_index(focused_id).unwrap_or_default(); + let ix = self.current_index(focused_id); let prev_ix; if ix == 0 { prev_ix = self.handles.len().saturating_sub(1); @@ -106,14 +108,8 @@ mod tests { ] ); - // Select first tab index if no handle is currently focused. - assert_eq!(tab.next(None), Some(tab.handles[0].clone())); - // Select last tab index if no handle is currently focused. - assert_eq!( - tab.prev(None), - Some(tab.handles[tab.handles.len() - 1].clone()) - ); - + // next + assert_eq!(tab.next(None), Some(tab.handles[1].clone())); assert_eq!( tab.next(Some(&tab.handles[0].id)), Some(tab.handles[1].clone()) diff --git a/crates/gpui/src/taffy.rs b/crates/gpui/src/taffy.rs index f7fa54256d..6228a60490 100644 --- a/crates/gpui/src/taffy.rs +++ b/crates/gpui/src/taffy.rs @@ -283,7 +283,7 @@ impl ToTaffy<taffy::style::LengthPercentageAuto> for Length { fn to_taffy(&self, rem_size: Pixels) -> taffy::prelude::LengthPercentageAuto { match self { Length::Definite(length) => length.to_taffy(rem_size), - Length::Auto => taffy::prelude::LengthPercentageAuto::auto(), + Length::Auto => taffy::prelude::LengthPercentageAuto::Auto, } } } @@ -292,7 +292,7 @@ impl ToTaffy<taffy::style::Dimension> for Length { fn to_taffy(&self, rem_size: Pixels) -> taffy::prelude::Dimension { match self { Length::Definite(length) => length.to_taffy(rem_size), - Length::Auto => taffy::prelude::Dimension::auto(), + Length::Auto => taffy::prelude::Dimension::Auto, } } } @@ -302,14 +302,14 @@ impl ToTaffy<taffy::style::LengthPercentage> for DefiniteLength { match self { DefiniteLength::Absolute(length) => match length { AbsoluteLength::Pixels(pixels) => { - taffy::style::LengthPercentage::length(pixels.into()) + taffy::style::LengthPercentage::Length(pixels.into()) } AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentage::length((*rems * rem_size).into()) + taffy::style::LengthPercentage::Length((*rems * rem_size).into()) } }, DefiniteLength::Fraction(fraction) => { - taffy::style::LengthPercentage::percent(*fraction) + taffy::style::LengthPercentage::Percent(*fraction) } } } @@ -320,14 +320,14 @@ impl ToTaffy<taffy::style::LengthPercentageAuto> for DefiniteLength { match self { DefiniteLength::Absolute(length) => match length { AbsoluteLength::Pixels(pixels) => { - taffy::style::LengthPercentageAuto::length(pixels.into()) + taffy::style::LengthPercentageAuto::Length(pixels.into()) } AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentageAuto::length((*rems * rem_size).into()) + taffy::style::LengthPercentageAuto::Length((*rems * rem_size).into()) } }, DefiniteLength::Fraction(fraction) => { - taffy::style::LengthPercentageAuto::percent(*fraction) + taffy::style::LengthPercentageAuto::Percent(*fraction) } } } @@ -337,12 +337,12 @@ impl ToTaffy<taffy::style::Dimension> for DefiniteLength { fn to_taffy(&self, rem_size: Pixels) -> taffy::style::Dimension { match self { DefiniteLength::Absolute(length) => match length { - AbsoluteLength::Pixels(pixels) => taffy::style::Dimension::length(pixels.into()), + AbsoluteLength::Pixels(pixels) => taffy::style::Dimension::Length(pixels.into()), AbsoluteLength::Rems(rems) => { - taffy::style::Dimension::length((*rems * rem_size).into()) + taffy::style::Dimension::Length((*rems * rem_size).into()) } }, - DefiniteLength::Fraction(fraction) => taffy::style::Dimension::percent(*fraction), + DefiniteLength::Fraction(fraction) => taffy::style::Dimension::Percent(*fraction), } } } @@ -350,9 +350,9 @@ impl ToTaffy<taffy::style::Dimension> for DefiniteLength { impl ToTaffy<taffy::style::LengthPercentage> for AbsoluteLength { fn to_taffy(&self, rem_size: Pixels) -> taffy::style::LengthPercentage { match self { - AbsoluteLength::Pixels(pixels) => taffy::style::LengthPercentage::length(pixels.into()), + AbsoluteLength::Pixels(pixels) => taffy::style::LengthPercentage::Length(pixels.into()), AbsoluteLength::Rems(rems) => { - taffy::style::LengthPercentage::length((*rems * rem_size).into()) + taffy::style::LengthPercentage::Length((*rems * rem_size).into()) } } } diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index 6ebb1cac40..963d2bb45c 100644 --- a/crates/gpui/src/window.rs +++ b/crates/gpui/src/window.rs @@ -702,7 +702,6 @@ pub(crate) struct PaintIndex { input_handlers_index: usize, cursor_styles_index: usize, accessed_element_states_index: usize, - tab_handle_index: usize, line_layout_index: LineLayoutIndex, } @@ -1020,7 +1019,7 @@ impl Window { || (active.get() && last_input_timestamp.get().elapsed() < Duration::from_secs(1)); - if invalidator.is_dirty() || request_frame_options.force_render { + if invalidator.is_dirty() { measure("frame duration", || { handle .update(&mut cx, |_, window, cx| { @@ -2209,7 +2208,6 @@ impl Window { input_handlers_index: self.next_frame.input_handlers.len(), cursor_styles_index: self.next_frame.cursor_styles.len(), accessed_element_states_index: self.next_frame.accessed_element_states.len(), - tab_handle_index: self.next_frame.tab_handles.handles.len(), line_layout_index: self.text_system.layout_index(), } } @@ -2239,12 +2237,6 @@ impl Window { .iter() .map(|(id, type_id)| (GlobalElementId(id.0.clone()), *type_id)), ); - self.next_frame.tab_handles.handles.extend( - self.rendered_frame.tab_handles.handles - [range.start.tab_handle_index..range.end.tab_handle_index] - .iter() - .cloned(), - ); self.text_system .reuse_layouts(range.start.line_layout_index..range.end.line_layout_index); diff --git a/crates/http_client/Cargo.toml b/crates/http_client/Cargo.toml index 3f51cc5a23..2045708ff2 100644 --- a/crates/http_client/Cargo.toml +++ b/crates/http_client/Cargo.toml @@ -23,7 +23,6 @@ futures.workspace = true http.workspace = true http-body.workspace = true log.workspace = true -parking_lot.workspace = true serde.workspace = true serde_json.workspace = true url.workspace = true diff --git a/crates/http_client/src/http_client.rs b/crates/http_client/src/http_client.rs index d33bbefc06..434bd74fc8 100644 --- a/crates/http_client/src/http_client.rs +++ b/crates/http_client/src/http_client.rs @@ -9,10 +9,12 @@ pub use http::{self, Method, Request, Response, StatusCode, Uri}; use futures::future::BoxFuture; use http::request::Builder; -use parking_lot::Mutex; #[cfg(feature = "test-support")] use std::fmt; -use std::{any::type_name, sync::Arc}; +use std::{ + any::type_name, + sync::{Arc, Mutex}, +}; pub use url::Url; #[derive(Default, Debug, Clone, PartialEq, Eq, Hash)] @@ -84,11 +86,6 @@ pub trait HttpClient: 'static + Send + Sync { } fn proxy(&self) -> Option<&Url>; - - #[cfg(feature = "test-support")] - fn as_fake(&self) -> &FakeHttpClient { - panic!("called as_fake on {}", type_name::<Self>()) - } } /// An [`HttpClient`] that may have a proxy. @@ -135,11 +132,6 @@ impl HttpClient for HttpClientWithProxy { fn type_name(&self) -> &'static str { self.client.type_name() } - - #[cfg(feature = "test-support")] - fn as_fake(&self) -> &FakeHttpClient { - self.client.as_fake() - } } impl HttpClient for Arc<HttpClientWithProxy> { @@ -161,11 +153,6 @@ impl HttpClient for Arc<HttpClientWithProxy> { fn type_name(&self) -> &'static str { self.client.type_name() } - - #[cfg(feature = "test-support")] - fn as_fake(&self) -> &FakeHttpClient { - self.client.as_fake() - } } /// An [`HttpClient`] that has a base URL. @@ -212,13 +199,20 @@ impl HttpClientWithUrl { /// Returns the base URL. pub fn base_url(&self) -> String { - self.base_url.lock().clone() + self.base_url + .lock() + .map_or_else(|_| Default::default(), |url| url.clone()) } /// Sets the base URL. pub fn set_base_url(&self, base_url: impl Into<String>) { let base_url = base_url.into(); - *self.base_url.lock() = base_url; + self.base_url + .lock() + .map(|mut url| { + *url = base_url; + }) + .ok(); } /// Builds a URL using the given path. @@ -242,22 +236,6 @@ impl HttpClientWithUrl { )?) } - /// Builds a Zed Cloud URL using the given path. - pub fn build_zed_cloud_url(&self, path: &str, query: &[(&str, &str)]) -> Result<Url> { - let base_url = self.base_url(); - let base_api_url = match base_url.as_ref() { - "https://zed.dev" => "https://cloud.zed.dev", - "https://staging.zed.dev" => "https://cloud.zed.dev", - "http://localhost:3000" => "http://localhost:8787", - other => other, - }; - - Ok(Url::parse_with_params( - &format!("{}{}", base_api_url, path), - query, - )?) - } - /// Builds a Zed LLM URL using the given path. pub fn build_zed_llm_url(&self, path: &str, query: &[(&str, &str)]) -> Result<Url> { let base_url = self.base_url(); @@ -294,11 +272,6 @@ impl HttpClient for Arc<HttpClientWithUrl> { fn type_name(&self) -> &'static str { self.client.type_name() } - - #[cfg(feature = "test-support")] - fn as_fake(&self) -> &FakeHttpClient { - self.client.as_fake() - } } impl HttpClient for HttpClientWithUrl { @@ -320,11 +293,6 @@ impl HttpClient for HttpClientWithUrl { fn type_name(&self) -> &'static str { self.client.type_name() } - - #[cfg(feature = "test-support")] - fn as_fake(&self) -> &FakeHttpClient { - self.client.as_fake() - } } pub fn read_proxy_from_env() -> Option<Url> { @@ -376,15 +344,10 @@ impl HttpClient for BlockedHttpClient { fn type_name(&self) -> &'static str { type_name::<Self>() } - - #[cfg(feature = "test-support")] - fn as_fake(&self) -> &FakeHttpClient { - panic!("called as_fake on {}", type_name::<Self>()) - } } #[cfg(feature = "test-support")] -type FakeHttpHandler = Arc< +type FakeHttpHandler = Box< dyn Fn(Request<AsyncBody>) -> BoxFuture<'static, anyhow::Result<Response<AsyncBody>>> + Send + Sync @@ -393,7 +356,7 @@ type FakeHttpHandler = Arc< #[cfg(feature = "test-support")] pub struct FakeHttpClient { - handler: Mutex<Option<FakeHttpHandler>>, + handler: FakeHttpHandler, user_agent: HeaderValue, } @@ -408,7 +371,7 @@ impl FakeHttpClient { base_url: Mutex::new("http://test.example".into()), client: HttpClientWithProxy { client: Arc::new(Self { - handler: Mutex::new(Some(Arc::new(move |req| Box::pin(handler(req))))), + handler: Box::new(move |req| Box::pin(handler(req))), user_agent: HeaderValue::from_static(type_name::<Self>()), }), proxy: None, @@ -433,18 +396,6 @@ impl FakeHttpClient { .unwrap()) }) } - - pub fn replace_handler<Fut, F>(&self, new_handler: F) - where - Fut: futures::Future<Output = anyhow::Result<Response<AsyncBody>>> + Send + 'static, - F: Fn(FakeHttpHandler, Request<AsyncBody>) -> Fut + Send + Sync + 'static, - { - let mut handler = self.handler.lock(); - let old_handler = handler.take().unwrap(); - *handler = Some(Arc::new(move |req| { - Box::pin(new_handler(old_handler.clone(), req)) - })); - } } #[cfg(feature = "test-support")] @@ -460,7 +411,7 @@ impl HttpClient for FakeHttpClient { &self, req: Request<AsyncBody>, ) -> BoxFuture<'static, anyhow::Result<Response<AsyncBody>>> { - let future = (self.handler.lock().as_ref().unwrap())(req); + let future = (self.handler)(req); future } @@ -475,8 +426,4 @@ impl HttpClient for FakeHttpClient { fn type_name(&self) -> &'static str { type_name::<Self>() } - - fn as_fake(&self) -> &FakeHttpClient { - self - } } diff --git a/crates/icons/src/icons.rs b/crates/icons/src/icons.rs index a94d89bdc8..e7066ae151 100644 --- a/crates/icons/src/icons.rs +++ b/crates/icons/src/icons.rs @@ -38,6 +38,7 @@ pub enum IconName { ArrowUpFromLine, ArrowUpRight, ArrowUpRightAlt, + AtSign, AudioOff, AudioOn, Backspace, @@ -47,13 +48,15 @@ pub enum IconName { BellRing, Binary, Blocks, - BoltOutlined, + Bolt, BoltFilled, + BoltFilledAlt, Book, BookCopy, + BookPlus, + Brain, BugOff, CaseSensitive, - Chat, Check, CheckDouble, ChevronDown, @@ -68,7 +71,6 @@ pub enum IconName { CircleHelp, Close, Cloud, - CloudDownload, Code, Cog, Command, @@ -104,12 +106,6 @@ pub enum IconName { Disconnected, DocumentText, Download, - EditorAtom, - EditorCursor, - EditorEmacs, - EditorJetBrains, - EditorSublime, - EditorVsCode, Ellipsis, EllipsisVertical, Envelope, @@ -181,9 +177,14 @@ pub enum IconName { Maximize, Menu, MenuAlt, + MessageBubbles, Mic, MicMute, + Microscope, Minimize, + NewFromSummary, + NewTextThread, + NewThread, Option, PageDown, PageUp, @@ -194,7 +195,9 @@ pub enum IconName { PersonCircle, PhoneIncoming, Pin, - PlayOutlined, + Play, + PlayAlt, + PlayBug, PlayFilled, Plus, PocketKnife, @@ -211,6 +214,7 @@ pub enum IconName { ReplyArrowRight, Rerun, Return, + Reveal, RotateCcw, RotateCw, Route, @@ -224,7 +228,6 @@ pub enum IconName { Server, Settings, SettingsAlt, - ShieldCheck, Shift, Slash, SlashSquare, @@ -235,6 +238,7 @@ pub enum IconName { Sparkle, SparkleAlt, SparkleFilled, + Spinner, Split, SplitAlt, SquareDot, @@ -244,6 +248,7 @@ pub enum IconName { StarFilled, Stop, StopFilled, + Strikethrough, Supermaven, SupermavenDisabled, SupermavenError, @@ -253,9 +258,6 @@ pub enum IconName { Terminal, TerminalAlt, TextSnippet, - TextThread, - Thread, - ThreadFromSummary, ThumbsDown, ThumbsUp, TodoComplete, @@ -275,6 +277,7 @@ pub enum IconName { ToolTerminal, ToolWeb, Trash, + TrashAlt, Triangle, TriangleRight, Undo, diff --git a/crates/inline_completion_button/Cargo.toml b/crates/inline_completion_button/Cargo.toml index b34e59336b..c2a619d500 100644 --- a/crates/inline_completion_button/Cargo.toml +++ b/crates/inline_completion_button/Cargo.toml @@ -15,7 +15,6 @@ doctest = false [dependencies] anyhow.workspace = true client.workspace = true -cloud_llm_client.workspace = true copilot.workspace = true editor.workspace = true feature_flags.workspace = true @@ -33,6 +32,7 @@ ui.workspace = true workspace-hack.workspace = true workspace.workspace = true zed_actions.workspace = true +zed_llm_client.workspace = true zeta.workspace = true [dev-dependencies] diff --git a/crates/inline_completion_button/src/inline_completion_button.rs b/crates/inline_completion_button/src/inline_completion_button.rs index 2d7f211942..2615a8beef 100644 --- a/crates/inline_completion_button/src/inline_completion_button.rs +++ b/crates/inline_completion_button/src/inline_completion_button.rs @@ -1,6 +1,5 @@ use anyhow::Result; use client::{DisableAiSettings, UserStore, zed_urls}; -use cloud_llm_client::UsageLimit; use copilot::{Copilot, Status}; use editor::{ Editor, SelectionEffects, @@ -35,6 +34,7 @@ use workspace::{ notifications::NotificationId, }; use zed_actions::OpenBrowser; +use zed_llm_client::UsageLimit; use zeta::RateCompletions; actions!( @@ -246,15 +246,12 @@ impl Render for InlineCompletionButton { }; if zeta::should_show_upsell_modal(&self.user_store, cx) { - let tooltip_meta = if self.user_store.read(cx).current_user().is_some() { - if self.user_store.read(cx).has_accepted_terms_of_service() { - "Choose a Plan" - } else { - "Accept the Terms of Service" - } - } else { - "Sign In" - }; + let tooltip_meta = + match self.user_store.read(cx).current_user_has_accepted_terms() { + Some(true) => "Choose a Plan", + Some(false) => "Accept the Terms of Service", + None => "Sign In", + }; return div().child( IconButton::new("zed-predict-pending-button", zeta_icon) @@ -390,9 +387,9 @@ impl InlineCompletionButton { language: None, file: None, edit_prediction_provider: None, - user_store, popover_menu_handle, fs, + user_store, } } diff --git a/crates/language/src/language.rs b/crates/language/src/language.rs index 894625b982..1df33286ee 100644 --- a/crates/language/src/language.rs +++ b/crates/language/src/language.rs @@ -161,11 +161,12 @@ pub struct CachedLspAdapter { pub name: LanguageServerName, pub disk_based_diagnostic_sources: Vec<String>, pub disk_based_diagnostics_progress_token: Option<String>, - language_ids: HashMap<LanguageName, String>, + language_ids: HashMap<String, String>, pub adapter: Arc<dyn LspAdapter>, pub reinstall_attempt_count: AtomicU64, cached_binary: futures::lock::Mutex<Option<LanguageServerBinary>>, manifest_name: OnceLock<Option<ManifestName>>, + attach_kind: OnceLock<Attach>, } impl Debug for CachedLspAdapter { @@ -201,6 +202,7 @@ impl CachedLspAdapter { adapter, cached_binary: Default::default(), reinstall_attempt_count: AtomicU64::new(0), + attach_kind: Default::default(), manifest_name: Default::default(), }) } @@ -277,25 +279,38 @@ impl CachedLspAdapter { pub fn language_id(&self, language_name: &LanguageName) -> String { self.language_ids - .get(language_name) + .get(language_name.as_ref()) .cloned() .unwrap_or_else(|| language_name.lsp_id()) } - pub fn manifest_name(&self) -> Option<ManifestName> { self.manifest_name .get_or_init(|| self.adapter.manifest_name()) .clone() } + pub fn attach_kind(&self) -> Attach { + *self.attach_kind.get_or_init(|| self.adapter.attach_kind()) + } } -/// Determines what gets sent out as a workspace folders content #[derive(Clone, Copy, Debug, PartialEq)] -pub enum WorkspaceFoldersContent { - /// Send out a single entry with the root of the workspace. - WorktreeRoot, - /// Send out a list of subproject roots. - SubprojectRoots, +pub enum Attach { + /// Create a single language server instance per subproject root. + InstancePerRoot, + /// Use one shared language server instance for all subprojects within a project. + Shared, +} + +impl Attach { + pub fn root_path( + &self, + root_subproject_path: (WorktreeId, Arc<Path>), + ) -> (WorktreeId, Arc<Path>) { + match self { + Attach::InstancePerRoot => root_subproject_path, + Attach::Shared => (root_subproject_path.0, Arc::from(Path::new(""))), + } + } } /// [`LspAdapterDelegate`] allows [`LspAdapter]` implementations to interface with the application @@ -574,8 +589,8 @@ pub trait LspAdapter: 'static + Send + Sync { None } - fn language_ids(&self) -> HashMap<LanguageName, String> { - HashMap::default() + fn language_ids(&self) -> HashMap<String, String> { + Default::default() } /// Support custom initialize params. @@ -587,11 +602,8 @@ pub trait LspAdapter: 'static + Send + Sync { Ok(original) } - /// Determines whether a language server supports workspace folders. - /// - /// And does not trip over itself in the process. - fn workspace_folders_content(&self) -> WorkspaceFoldersContent { - WorkspaceFoldersContent::SubprojectRoots + fn attach_kind(&self) -> Attach { + Attach::Shared } fn manifest_name(&self) -> Option<ManifestName> { diff --git a/crates/language_extension/src/extension_lsp_adapter.rs b/crates/language_extension/src/extension_lsp_adapter.rs index 98b6fd4b5a..58fbe6cda2 100644 --- a/crates/language_extension/src/extension_lsp_adapter.rs +++ b/crates/language_extension/src/extension_lsp_adapter.rs @@ -242,7 +242,7 @@ impl LspAdapter for ExtensionLspAdapter { ])) } - fn language_ids(&self) -> HashMap<LanguageName, String> { + fn language_ids(&self) -> HashMap<String, String> { // TODO: The language IDs can be provided via the language server options // in `extension.toml now but we're leaving these existing usages in place temporarily // to avoid any compatibility issues between Zed and the extension versions. @@ -250,7 +250,7 @@ impl LspAdapter for ExtensionLspAdapter { // We can remove once the following extension versions no longer see any use: // - php@0.0.1 if self.extension.manifest().id.as_ref() == "php" { - return HashMap::from_iter([(LanguageName::new("PHP"), "php".into())]); + return HashMap::from_iter([("PHP".into(), "php".into())]); } self.extension diff --git a/crates/language_model/Cargo.toml b/crates/language_model/Cargo.toml index 841be60b0e..b718c530f5 100644 --- a/crates/language_model/Cargo.toml +++ b/crates/language_model/Cargo.toml @@ -20,7 +20,6 @@ anthropic = { workspace = true, features = ["schemars"] } anyhow.workspace = true base64.workspace = true client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true futures.workspace = true gpui.workspace = true @@ -38,6 +37,7 @@ telemetry_events.workspace = true thiserror.workspace = true util.workspace = true workspace-hack.workspace = true +zed_llm_client.workspace = true [dev-dependencies] gpui = { workspace = true, features = ["test-support"] } diff --git a/crates/language_model/src/language_model.rs b/crates/language_model/src/language_model.rs index 1637d2de8a..54640419b6 100644 --- a/crates/language_model/src/language_model.rs +++ b/crates/language_model/src/language_model.rs @@ -11,7 +11,6 @@ pub mod fake_provider; use anthropic::{AnthropicError, parse_prompt_too_long}; use anyhow::{Result, anyhow}; use client::Client; -use cloud_llm_client::{CompletionMode, CompletionRequestStatus}; use futures::FutureExt; use futures::{StreamExt, future::BoxFuture, stream::BoxStream}; use gpui::{AnyElement, AnyView, App, AsyncApp, SharedString, Task, Window}; @@ -27,6 +26,7 @@ use std::time::Duration; use std::{fmt, io}; use thiserror::Error; use util::serde::is_default; +use zed_llm_client::{CompletionMode, CompletionRequestStatus}; pub use crate::model::*; pub use crate::rate_limiter::*; diff --git a/crates/language_model/src/model/cloud_model.rs b/crates/language_model/src/model/cloud_model.rs index 8ae5893410..72b7132c60 100644 --- a/crates/language_model/src/model/cloud_model.rs +++ b/crates/language_model/src/model/cloud_model.rs @@ -3,11 +3,10 @@ use std::sync::Arc; use anyhow::Result; use client::Client; -use cloud_llm_client::Plan; use gpui::{ App, AppContext as _, AsyncApp, Context, Entity, EventEmitter, Global, ReadGlobal as _, }; -use proto::TypedEnvelope; +use proto::{Plan, TypedEnvelope}; use smol::lock::{RwLock, RwLockUpgradableReadGuard, RwLockWriteGuard}; use thiserror::Error; @@ -31,7 +30,7 @@ pub struct ModelRequestLimitReachedError { impl fmt::Display for ModelRequestLimitReachedError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let message = match self.plan { - Plan::ZedFree => "Model request limit reached. Upgrade to Zed Pro for more requests.", + Plan::Free => "Model request limit reached. Upgrade to Zed Pro for more requests.", Plan::ZedPro => { "Model request limit reached. Upgrade to usage-based billing for more requests." } @@ -65,14 +64,9 @@ impl LlmApiToken { mut lock: RwLockWriteGuard<'_, Option<String>>, client: &Arc<Client>, ) -> Result<String> { - let system_id = client - .telemetry() - .system_id() - .map(|system_id| system_id.to_string()); - - let response = client.cloud_client().create_llm_token(system_id).await?; - *lock = Some(response.token.0.clone()); - Ok(response.token.0.clone()) + let response = client.request(proto::GetLlmToken {}).await?; + *lock = Some(response.token.clone()); + Ok(response.token.clone()) } } diff --git a/crates/language_model/src/request.rs b/crates/language_model/src/request.rs index dc485e9937..6f3d420ad5 100644 --- a/crates/language_model/src/request.rs +++ b/crates/language_model/src/request.rs @@ -1,9 +1,10 @@ use std::io::{Cursor, Write}; use std::sync::Arc; +use crate::role::Role; +use crate::{LanguageModelToolUse, LanguageModelToolUseId}; use anyhow::Result; use base64::write::EncoderWriter; -use cloud_llm_client::{CompletionIntent, CompletionMode}; use gpui::{ App, AppContext as _, DevicePixels, Image, ImageFormat, ObjectFit, SharedString, Size, Task, point, px, size, @@ -11,9 +12,7 @@ use gpui::{ use image::codecs::png::PngEncoder; use serde::{Deserialize, Serialize}; use util::ResultExt; - -use crate::role::Role; -use crate::{LanguageModelToolUse, LanguageModelToolUseId}; +use zed_llm_client::{CompletionIntent, CompletionMode}; #[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Hash)] pub struct LanguageModelImage { diff --git a/crates/language_models/Cargo.toml b/crates/language_models/Cargo.toml index b5bfb870f6..574579aaa7 100644 --- a/crates/language_models/Cargo.toml +++ b/crates/language_models/Cargo.toml @@ -16,17 +16,18 @@ ai_onboarding.workspace = true anthropic = { workspace = true, features = ["schemars"] } anyhow.workspace = true aws-config = { workspace = true, features = ["behavior-version-latest"] } -aws-credential-types = { workspace = true, features = ["hardcoded-credentials"] } +aws-credential-types = { workspace = true, features = [ + "hardcoded-credentials", +] } aws_http_client.workspace = true bedrock.workspace = true chrono.workspace = true client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true component.workspace = true +credentials_provider.workspace = true convert_case.workspace = true copilot.workspace = true -credentials_provider.workspace = true deepseek = { workspace = true, features = ["schemars"] } editor.workspace = true futures.workspace = true @@ -34,7 +35,6 @@ google_ai = { workspace = true, features = ["schemars"] } gpui.workspace = true gpui_tokio.workspace = true http_client.workspace = true -language.workspace = true language_model.workspace = true lmstudio = { workspace = true, features = ["schemars"] } log.workspace = true @@ -43,7 +43,10 @@ mistral = { workspace = true, features = ["schemars"] } ollama = { workspace = true, features = ["schemars"] } open_ai = { workspace = true, features = ["schemars"] } open_router = { workspace = true, features = ["schemars"] } +vercel = { workspace = true, features = ["schemars"] } +x_ai = { workspace = true, features = ["schemars"] } partial-json-fixer.workspace = true +proto.workspace = true release_channel.workspace = true schemars.workspace = true serde.workspace = true @@ -58,9 +61,9 @@ tokio = { workspace = true, features = ["rt", "rt-multi-thread"] } ui.workspace = true ui_input.workspace = true util.workspace = true -vercel = { workspace = true, features = ["schemars"] } workspace-hack.workspace = true -x_ai = { workspace = true, features = ["schemars"] } +zed_llm_client.workspace = true +language.workspace = true [dev-dependencies] editor = { workspace = true, features = ["test-support"] } diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index 2108547c4f..09a2ac6e0a 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -3,13 +3,6 @@ use anthropic::AnthropicModelMode; use anyhow::{Context as _, Result, anyhow}; use chrono::{DateTime, Utc}; use client::{Client, ModelRequestUsage, UserStore, zed_urls}; -use cloud_llm_client::{ - CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, CURRENT_PLAN_HEADER_NAME, CompletionBody, - CompletionEvent, CompletionRequestStatus, CountTokensBody, CountTokensResponse, - EXPIRED_LLM_TOKEN_HEADER_NAME, ListModelsResponse, MODEL_REQUESTS_RESOURCE_HEADER_VALUE, Plan, - SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME, - TOOL_USE_LIMIT_REACHED_HEADER_NAME, ZED_VERSION_HEADER_NAME, -}; use futures::{ AsyncBufReadExt, FutureExt, Stream, StreamExt, future::BoxFuture, stream::BoxStream, }; @@ -27,6 +20,7 @@ use language_model::{ LanguageModelToolChoice, LanguageModelToolSchemaFormat, LlmApiToken, ModelRequestLimitReachedError, PaymentRequiredError, RateLimiter, RefreshLlmTokenListener, }; +use proto::Plan; use release_channel::AppVersion; use schemars::JsonSchema; use serde::{Deserialize, Serialize, de::DeserializeOwned}; @@ -39,6 +33,13 @@ use std::time::Duration; use thiserror::Error; use ui::{TintColor, prelude::*}; use util::{ResultExt as _, maybe}; +use zed_llm_client::{ + CLIENT_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, CURRENT_PLAN_HEADER_NAME, CompletionBody, + CompletionRequestStatus, CountTokensBody, CountTokensResponse, EXPIRED_LLM_TOKEN_HEADER_NAME, + ListModelsResponse, MODEL_REQUESTS_RESOURCE_HEADER_VALUE, + SERVER_SUPPORTS_STATUS_MESSAGES_HEADER_NAME, SUBSCRIPTION_LIMIT_RESOURCE_HEADER_NAME, + TOOL_USE_LIMIT_REACHED_HEADER_NAME, ZED_VERSION_HEADER_NAME, +}; use crate::provider::anthropic::{AnthropicEventMapper, count_anthropic_tokens, into_anthropic}; use crate::provider::google::{GoogleEventMapper, into_google}; @@ -119,10 +120,10 @@ pub struct State { user_store: Entity<UserStore>, status: client::Status, accept_terms_of_service_task: Option<Task<Result<()>>>, - models: Vec<Arc<cloud_llm_client::LanguageModel>>, - default_model: Option<Arc<cloud_llm_client::LanguageModel>>, - default_fast_model: Option<Arc<cloud_llm_client::LanguageModel>>, - recommended_models: Vec<Arc<cloud_llm_client::LanguageModel>>, + models: Vec<Arc<zed_llm_client::LanguageModel>>, + default_model: Option<Arc<zed_llm_client::LanguageModel>>, + default_fast_model: Option<Arc<zed_llm_client::LanguageModel>>, + recommended_models: Vec<Arc<zed_llm_client::LanguageModel>>, _fetch_models_task: Task<()>, _settings_subscription: Subscription, _llm_token_subscription: Subscription, @@ -136,10 +137,11 @@ impl State { cx: &mut Context<Self>, ) -> Self { let refresh_llm_token_listener = RefreshLlmTokenListener::global(cx); + Self { client: client.clone(), llm_api_token: LlmApiToken::default(), - user_store: user_store.clone(), + user_store, status, accept_terms_of_service_task: None, models: Vec::new(), @@ -152,9 +154,8 @@ impl State { .read_with(cx, |this, _cx| (client.clone(), this.llm_api_token.clone()))?; loop { - let is_authenticated = user_store - .read_with(cx, |user_store, _cx| user_store.current_user().is_some())?; - if is_authenticated { + let status = this.read_with(cx, |this, _cx| this.status)?; + if matches!(status, client::Status::Connected { .. }) { break; } @@ -193,20 +194,26 @@ impl State { } } - fn is_signed_out(&self, cx: &App) -> bool { - self.user_store.read(cx).current_user().is_none() + fn is_signed_out(&self) -> bool { + self.status.is_signed_out() } fn authenticate(&self, cx: &mut Context<Self>) -> Task<Result<()>> { let client = self.client.clone(); cx.spawn(async move |state, cx| { - client.sign_in_with_optional_connect(true, &cx).await?; + client + .authenticate_and_connect(true, &cx) + .await + .into_response()?; state.update(cx, |_, cx| cx.notify()) }) } fn has_accepted_terms_of_service(&self, cx: &App) -> bool { - self.user_store.read(cx).has_accepted_terms_of_service() + self.user_store + .read(cx) + .current_user_has_accepted_terms() + .unwrap_or(false) } fn accept_terms_of_service(&mut self, cx: &mut Context<Self>) { @@ -231,8 +238,8 @@ impl State { // Right now we represent thinking variants of models as separate models on the client, // so we need to insert variants for any model that supports thinking. if model.supports_thinking { - models.push(Arc::new(cloud_llm_client::LanguageModel { - id: cloud_llm_client::LanguageModelId(format!("{}-thinking", model.id).into()), + models.push(Arc::new(zed_llm_client::LanguageModel { + id: zed_llm_client::LanguageModelId(format!("{}-thinking", model.id).into()), display_name: format!("{} Thinking", model.display_name), ..model })); @@ -321,7 +328,7 @@ impl CloudLanguageModelProvider { fn create_language_model( &self, - model: Arc<cloud_llm_client::LanguageModel>, + model: Arc<zed_llm_client::LanguageModel>, llm_api_token: LlmApiToken, ) -> Arc<dyn LanguageModel> { Arc::new(CloudLanguageModel { @@ -391,7 +398,7 @@ impl LanguageModelProvider for CloudLanguageModelProvider { fn is_authenticated(&self, cx: &App) -> bool { let state = self.state.read(cx); - !state.is_signed_out(cx) && state.has_accepted_terms_of_service(cx) + !state.is_signed_out() && state.has_accepted_terms_of_service(cx) } fn authenticate(&self, _cx: &mut App) -> Task<Result<(), AuthenticateError>> { @@ -511,7 +518,7 @@ fn render_accept_terms( pub struct CloudLanguageModel { id: LanguageModelId, - model: Arc<cloud_llm_client::LanguageModel>, + model: Arc<zed_llm_client::LanguageModel>, llm_api_token: LlmApiToken, client: Arc<Client>, request_limiter: RateLimiter, @@ -604,8 +611,13 @@ impl CloudLanguageModel { .headers() .get(CURRENT_PLAN_HEADER_NAME) .and_then(|plan| plan.to_str().ok()) - .and_then(|plan| cloud_llm_client::Plan::from_str(plan).ok()) + .and_then(|plan| zed_llm_client::Plan::from_str(plan).ok()) { + let plan = match plan { + zed_llm_client::Plan::ZedFree => Plan::Free, + zed_llm_client::Plan::ZedPro => Plan::ZedPro, + zed_llm_client::Plan::ZedProTrial => Plan::ZedProTrial, + }; return Err(anyhow!(ModelRequestLimitReachedError { plan })); } } @@ -717,7 +729,7 @@ impl LanguageModel for CloudLanguageModel { } fn upstream_provider_id(&self) -> LanguageModelProviderId { - use cloud_llm_client::LanguageModelProvider::*; + use zed_llm_client::LanguageModelProvider::*; match self.model.provider { Anthropic => language_model::ANTHROPIC_PROVIDER_ID, OpenAi => language_model::OPEN_AI_PROVIDER_ID, @@ -726,7 +738,7 @@ impl LanguageModel for CloudLanguageModel { } fn upstream_provider_name(&self) -> LanguageModelProviderName { - use cloud_llm_client::LanguageModelProvider::*; + use zed_llm_client::LanguageModelProvider::*; match self.model.provider { Anthropic => language_model::ANTHROPIC_PROVIDER_NAME, OpenAi => language_model::OPEN_AI_PROVIDER_NAME, @@ -760,11 +772,11 @@ impl LanguageModel for CloudLanguageModel { fn tool_input_format(&self) -> LanguageModelToolSchemaFormat { match self.model.provider { - cloud_llm_client::LanguageModelProvider::Anthropic - | cloud_llm_client::LanguageModelProvider::OpenAi => { + zed_llm_client::LanguageModelProvider::Anthropic + | zed_llm_client::LanguageModelProvider::OpenAi => { LanguageModelToolSchemaFormat::JsonSchema } - cloud_llm_client::LanguageModelProvider::Google => { + zed_llm_client::LanguageModelProvider::Google => { LanguageModelToolSchemaFormat::JsonSchemaSubset } } @@ -783,15 +795,15 @@ impl LanguageModel for CloudLanguageModel { fn cache_configuration(&self) -> Option<LanguageModelCacheConfiguration> { match &self.model.provider { - cloud_llm_client::LanguageModelProvider::Anthropic => { + zed_llm_client::LanguageModelProvider::Anthropic => { Some(LanguageModelCacheConfiguration { min_total_token: 2_048, should_speculate: true, max_cache_anchors: 4, }) } - cloud_llm_client::LanguageModelProvider::OpenAi - | cloud_llm_client::LanguageModelProvider::Google => None, + zed_llm_client::LanguageModelProvider::OpenAi + | zed_llm_client::LanguageModelProvider::Google => None, } } @@ -801,17 +813,15 @@ impl LanguageModel for CloudLanguageModel { cx: &App, ) -> BoxFuture<'static, Result<u64>> { match self.model.provider { - cloud_llm_client::LanguageModelProvider::Anthropic => { - count_anthropic_tokens(request, cx) - } - cloud_llm_client::LanguageModelProvider::OpenAi => { + zed_llm_client::LanguageModelProvider::Anthropic => count_anthropic_tokens(request, cx), + zed_llm_client::LanguageModelProvider::OpenAi => { let model = match open_ai::Model::from_id(&self.model.id.0) { Ok(model) => model, Err(err) => return async move { Err(anyhow!(err)) }.boxed(), }; count_open_ai_tokens(request, model, cx) } - cloud_llm_client::LanguageModelProvider::Google => { + zed_llm_client::LanguageModelProvider::Google => { let client = self.client.clone(); let llm_api_token = self.llm_api_token.clone(); let model_id = self.model.id.to_string(); @@ -822,7 +832,7 @@ impl LanguageModel for CloudLanguageModel { let token = llm_api_token.acquire(&client).await?; let request_body = CountTokensBody { - provider: cloud_llm_client::LanguageModelProvider::Google, + provider: zed_llm_client::LanguageModelProvider::Google, model: model_id, provider_request: serde_json::to_value(&google_ai::CountTokensRequest { generate_content_request, @@ -883,7 +893,7 @@ impl LanguageModel for CloudLanguageModel { let app_version = cx.update(|cx| AppVersion::global(cx)).ok(); let thinking_allowed = request.thinking_allowed; match self.model.provider { - cloud_llm_client::LanguageModelProvider::Anthropic => { + zed_llm_client::LanguageModelProvider::Anthropic => { let request = into_anthropic( request, self.model.id.to_string(), @@ -914,7 +924,7 @@ impl LanguageModel for CloudLanguageModel { prompt_id, intent, mode, - provider: cloud_llm_client::LanguageModelProvider::Anthropic, + provider: zed_llm_client::LanguageModelProvider::Anthropic, model: request.model.clone(), provider_request: serde_json::to_value(&request) .map_err(|e| anyhow!(e))?, @@ -938,7 +948,7 @@ impl LanguageModel for CloudLanguageModel { }); async move { Ok(future.await?.boxed()) }.boxed() } - cloud_llm_client::LanguageModelProvider::OpenAi => { + zed_llm_client::LanguageModelProvider::OpenAi => { let client = self.client.clone(); let model = match open_ai::Model::from_id(&self.model.id.0) { Ok(model) => model, @@ -966,7 +976,7 @@ impl LanguageModel for CloudLanguageModel { prompt_id, intent, mode, - provider: cloud_llm_client::LanguageModelProvider::OpenAi, + provider: zed_llm_client::LanguageModelProvider::OpenAi, model: request.model.clone(), provider_request: serde_json::to_value(&request) .map_err(|e| anyhow!(e))?, @@ -986,7 +996,7 @@ impl LanguageModel for CloudLanguageModel { }); async move { Ok(future.await?.boxed()) }.boxed() } - cloud_llm_client::LanguageModelProvider::Google => { + zed_llm_client::LanguageModelProvider::Google => { let client = self.client.clone(); let request = into_google(request, self.model.id.to_string(), GoogleModelMode::Default); @@ -1006,7 +1016,7 @@ impl LanguageModel for CloudLanguageModel { prompt_id, intent, mode, - provider: cloud_llm_client::LanguageModelProvider::Google, + provider: zed_llm_client::LanguageModelProvider::Google, model: request.model.model_id.clone(), provider_request: serde_json::to_value(&request) .map_err(|e| anyhow!(e))?, @@ -1030,8 +1040,15 @@ impl LanguageModel for CloudLanguageModel { } } +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum CloudCompletionEvent<T> { + Status(CompletionRequestStatus), + Event(T), +} + fn map_cloud_completion_events<T, F>( - stream: Pin<Box<dyn Stream<Item = Result<CompletionEvent<T>>> + Send>>, + stream: Pin<Box<dyn Stream<Item = Result<CloudCompletionEvent<T>>> + Send>>, mut map_callback: F, ) -> BoxStream<'static, Result<LanguageModelCompletionEvent, LanguageModelCompletionError>> where @@ -1046,10 +1063,10 @@ where Err(error) => { vec![Err(LanguageModelCompletionError::from(error))] } - Ok(CompletionEvent::Status(event)) => { + Ok(CloudCompletionEvent::Status(event)) => { vec![Ok(LanguageModelCompletionEvent::StatusUpdate(event))] } - Ok(CompletionEvent::Event(event)) => map_callback(event), + Ok(CloudCompletionEvent::Event(event)) => map_callback(event), }) }) .boxed() @@ -1057,9 +1074,9 @@ where fn usage_updated_event<T>( usage: Option<ModelRequestUsage>, -) -> impl Stream<Item = Result<CompletionEvent<T>>> { +) -> impl Stream<Item = Result<CloudCompletionEvent<T>>> { futures::stream::iter(usage.map(|usage| { - Ok(CompletionEvent::Status( + Ok(CloudCompletionEvent::Status( CompletionRequestStatus::UsageUpdated { amount: usage.amount as usize, limit: usage.limit, @@ -1070,9 +1087,9 @@ fn usage_updated_event<T>( fn tool_use_limit_reached_event<T>( tool_use_limit_reached: bool, -) -> impl Stream<Item = Result<CompletionEvent<T>>> { +) -> impl Stream<Item = Result<CloudCompletionEvent<T>>> { futures::stream::iter(tool_use_limit_reached.then(|| { - Ok(CompletionEvent::Status( + Ok(CloudCompletionEvent::Status( CompletionRequestStatus::ToolUseLimitReached, )) })) @@ -1081,7 +1098,7 @@ fn tool_use_limit_reached_event<T>( fn response_lines<T: DeserializeOwned>( response: Response<AsyncBody>, includes_status_messages: bool, -) -> impl Stream<Item = Result<CompletionEvent<T>>> { +) -> impl Stream<Item = Result<CloudCompletionEvent<T>>> { futures::stream::try_unfold( (String::new(), BufReader::new(response.into_body())), move |(mut line, mut body)| async move { @@ -1089,9 +1106,9 @@ fn response_lines<T: DeserializeOwned>( Ok(0) => Ok(None), Ok(_) => { let event = if includes_status_messages { - serde_json::from_str::<CompletionEvent<T>>(&line)? + serde_json::from_str::<CloudCompletionEvent<T>>(&line)? } else { - CompletionEvent::Event(serde_json::from_str::<T>(&line)?) + CloudCompletionEvent::Event(serde_json::from_str::<T>(&line)?) }; line.clear(); @@ -1106,7 +1123,7 @@ fn response_lines<T: DeserializeOwned>( #[derive(IntoElement, RegisterComponent)] struct ZedAiConfiguration { is_connected: bool, - plan: Option<Plan>, + plan: Option<proto::Plan>, subscription_period: Option<(DateTime<Utc>, DateTime<Utc>)>, eligible_for_trial: bool, has_accepted_terms_of_service: bool, @@ -1120,15 +1137,15 @@ impl RenderOnce for ZedAiConfiguration { fn render(self, _window: &mut Window, _cx: &mut App) -> impl IntoElement { let young_account_banner = YoungAccountBanner; - let is_pro = self.plan == Some(Plan::ZedPro); + let is_pro = self.plan == Some(proto::Plan::ZedPro); let subscription_text = match (self.plan, self.subscription_period) { - (Some(Plan::ZedPro), Some(_)) => { + (Some(proto::Plan::ZedPro), Some(_)) => { "You have access to Zed's hosted models through your Pro subscription." } - (Some(Plan::ZedProTrial), Some(_)) => { + (Some(proto::Plan::ZedProTrial), Some(_)) => { "You have access to Zed's hosted models through your Pro trial." } - (Some(Plan::ZedFree), Some(_)) => { + (Some(proto::Plan::Free), Some(_)) => { "You have basic access to Zed's hosted models through the Free plan." } _ => { @@ -1253,8 +1270,8 @@ impl Render for ConfigurationView { let user_store = state.user_store.read(cx); ZedAiConfiguration { - is_connected: !state.is_signed_out(cx), - plan: user_store.plan(), + is_connected: !state.is_signed_out(), + plan: user_store.current_plan(), subscription_period: user_store.subscription_period(), eligible_for_trial: user_store.trial_started_at().is_none(), has_accepted_terms_of_service: state.has_accepted_terms_of_service(cx), @@ -1274,7 +1291,7 @@ impl Component for ZedAiConfiguration { fn preview(_window: &mut Window, _cx: &mut App) -> Option<AnyElement> { fn configuration( is_connected: bool, - plan: Option<Plan>, + plan: Option<proto::Plan>, eligible_for_trial: bool, account_too_young: bool, has_accepted_terms_of_service: bool, @@ -1318,15 +1335,15 @@ impl Component for ZedAiConfiguration { ), single_example( "Free Plan", - configuration(true, Some(Plan::ZedFree), true, false, true), + configuration(true, Some(proto::Plan::Free), true, false, true), ), single_example( "Zed Pro Trial Plan", - configuration(true, Some(Plan::ZedProTrial), true, false, true), + configuration(true, Some(proto::Plan::ZedProTrial), true, false, true), ), single_example( "Zed Pro Plan", - configuration(true, Some(Plan::ZedPro), true, false, true), + configuration(true, Some(proto::Plan::ZedPro), true, false, true), ), ]) .into_any_element(), diff --git a/crates/language_models/src/provider/copilot_chat.rs b/crates/language_models/src/provider/copilot_chat.rs index 3cdc2e5401..d9a84f1eb7 100644 --- a/crates/language_models/src/provider/copilot_chat.rs +++ b/crates/language_models/src/provider/copilot_chat.rs @@ -3,7 +3,6 @@ use std::str::FromStr as _; use std::sync::Arc; use anyhow::{Result, anyhow}; -use cloud_llm_client::CompletionIntent; use collections::HashMap; use copilot::copilot_chat::{ ChatMessage, ChatMessageContent, ChatMessagePart, CopilotChat, ImageUrl, @@ -31,6 +30,7 @@ use settings::SettingsStore; use std::time::Duration; use ui::prelude::*; use util::debug_panic; +use zed_llm_client::CompletionIntent; use super::anthropic::count_anthropic_tokens; use super::google::count_google_tokens; diff --git a/crates/language_models/src/provider/lmstudio.rs b/crates/language_models/src/provider/lmstudio.rs index 9792b4f27b..01600f3646 100644 --- a/crates/language_models/src/provider/lmstudio.rs +++ b/crates/language_models/src/provider/lmstudio.rs @@ -744,7 +744,7 @@ impl Render for ConfigurationView { Button::new("retry_lmstudio_models", "Connect") .icon_position(IconPosition::Start) .icon_size(IconSize::XSmall) - .icon(IconName::PlayOutlined) + .icon(IconName::Play) .on_click(cx.listener(move |this, _, _window, cx| { this.retry_connection(cx) })), diff --git a/crates/language_models/src/provider/ollama.rs b/crates/language_models/src/provider/ollama.rs index d4739bcab8..dc81e8be18 100644 --- a/crates/language_models/src/provider/ollama.rs +++ b/crates/language_models/src/provider/ollama.rs @@ -192,16 +192,12 @@ impl LanguageModelProvider for OllamaLanguageModelProvider { IconName::AiOllama } - fn default_model(&self, _: &App) -> Option<Arc<dyn LanguageModel>> { - // We shouldn't try to select default model, because it might lead to a load call for an unloaded model. - // In a constrained environment where user might not have enough resources it'll be a bad UX to select something - // to load by default. - None + fn default_model(&self, cx: &App) -> Option<Arc<dyn LanguageModel>> { + self.provided_models(cx).into_iter().next() } - fn default_fast_model(&self, _: &App) -> Option<Arc<dyn LanguageModel>> { - // See explanation for default_model. - None + fn default_fast_model(&self, cx: &App) -> Option<Arc<dyn LanguageModel>> { + self.default_model(cx) } fn provided_models(&self, cx: &App) -> Vec<Arc<dyn LanguageModel>> { @@ -658,7 +654,7 @@ impl Render for ConfigurationView { Button::new("retry_ollama_models", "Connect") .icon_position(IconPosition::Start) .icon_size(IconSize::XSmall) - .icon(IconName::PlayOutlined) + .icon(IconName::Play) .on_click(cx.listener(move |this, _, _, cx| { this.retry_connection(cx) })), diff --git a/crates/language_tools/src/lsp_log.rs b/crates/language_tools/src/lsp_log.rs index 2b0e13f4be..d1a90d7dbb 100644 --- a/crates/language_tools/src/lsp_log.rs +++ b/crates/language_tools/src/lsp_log.rs @@ -867,7 +867,7 @@ impl LspLogView { BINARY = server.binary(), WORKSPACE_FOLDERS = server .workspace_folders() - .into_iter() + .iter() .filter_map(|path| path .to_file_path() .ok() diff --git a/crates/language_tools/src/lsp_tool.rs b/crates/language_tools/src/lsp_tool.rs index 50547253a9..9e95ed4673 100644 --- a/crates/language_tools/src/lsp_tool.rs +++ b/crates/language_tools/src/lsp_tool.rs @@ -1015,7 +1015,7 @@ impl Render for LspTool { .anchor(Corner::BottomLeft) .with_handle(self.popover_menu_handle.clone()) .trigger_with_tooltip( - IconButton::new("zed-lsp-tool-button", IconName::BoltOutlined) + IconButton::new("zed-lsp-tool-button", IconName::BoltFilledAlt) .when_some(indicator, IconButton::indicator) .icon_size(IconSize::Small) .indicator_border_color(Some(cx.theme().colors().status_bar_background)), diff --git a/crates/languages/Cargo.toml b/crates/languages/Cargo.toml index 260126da63..2e8f007cff 100644 --- a/crates/languages/Cargo.toml +++ b/crates/languages/Cargo.toml @@ -41,7 +41,6 @@ async-trait.workspace = true chrono.workspace = true collections.workspace = true dap.workspace = true -feature_flags.workspace = true futures.workspace = true gpui.workspace = true http_client.workspace = true diff --git a/crates/languages/src/bash/config.toml b/crates/languages/src/bash/config.toml index 8ff4802aee..db9a2749e7 100644 --- a/crates/languages/src/bash/config.toml +++ b/crates/languages/src/bash/config.toml @@ -18,20 +18,17 @@ brackets = [ { start = "in", end = "esac", close = false, newline = true, not_in = ["comment", "string"] }, ] -auto_indent_using_last_non_empty_line = false -increase_indent_pattern = "^\\s*(\\b(else|elif)\\b|([^#]+\\b(do|then|in)\\b)|([\\w\\*]+\\)))\\s*$" -decrease_indent_patterns = [ - { pattern = "^\\s*elif\\b.*", valid_after = ["if", "elif"] }, - { pattern = "^\\s*else\\b.*", valid_after = ["if", "elif", "for", "while"] }, - { pattern = "^\\s*fi\\b.*", valid_after = ["if", "elif", "else"] }, - { pattern = "^\\s*done\\b.*", valid_after = ["for", "while"] }, - { pattern = "^\\s*esac\\b.*", valid_after = ["case"] }, - { pattern = "^\\s*[\\w\\*]+\\)\\s*$", valid_after = ["case_item"] }, -] - -# We can't use decrease_indent_patterns simply for elif, because -# there is bug in tree sitter which throws ERROR on if match. -# -# This is workaround. That means, elif will outdents with despite -# of wrong context. Like using elif after else. -decrease_indent_pattern = "(^|\\s+|;)(elif)\\b.*$" +### WARN: the following is not working when you insert an `elif` just before an else +### example: (^ is cursor after hitting enter) +### ``` +### if true; then +### foo +### elif +### ^ +### else +### bar +### fi +### ``` +increase_indent_pattern = "(^|\\s+|;)(do|then|in|else|elif)\\b.*$" +decrease_indent_pattern = "(^|\\s+|;)(fi|done|esac|else|elif)\\b.*$" +# make sure to test each line mode & block mode diff --git a/crates/languages/src/bash/indents.scm b/crates/languages/src/bash/indents.scm index 468fc595e5..acdcddabfe 100644 --- a/crates/languages/src/bash/indents.scm +++ b/crates/languages/src/bash/indents.scm @@ -1,12 +1,12 @@ -(_ "[" "]" @end) @indent -(_ "{" "}" @end) @indent -(_ "(" ")" @end) @indent +(function_definition + "function"? + body: ( + _ + "{" @start + "}" @end + )) @indent -(function_definition) @start.function -(if_statement) @start.if -(elif_clause) @start.elif -(else_clause) @start.else -(for_statement) @start.for -(while_statement) @start.while -(case_statement) @start.case -(case_item) @start.case_item +(array + "(" @start + ")" @end + ) @indent diff --git a/crates/languages/src/go/runnables.scm b/crates/languages/src/go/runnables.scm index 6418cd04d8..49e112b860 100644 --- a/crates/languages/src/go/runnables.scm +++ b/crates/languages/src/go/runnables.scm @@ -69,7 +69,7 @@ ( ( (function_declaration name: (_) @run @_name - (#match? @_name "^Benchmark.*")) + (#match? @_name "^Benchmark.+")) ) @_ (#set! tag go-benchmark) ) diff --git a/crates/languages/src/json.rs b/crates/languages/src/json.rs index 601b4620c5..15818730b8 100644 --- a/crates/languages/src/json.rs +++ b/crates/languages/src/json.rs @@ -8,8 +8,8 @@ use futures::StreamExt; use gpui::{App, AsyncApp, Task}; use http_client::github::{GitHubLspBinaryVersion, latest_github_release}; use language::{ - ContextProvider, LanguageName, LanguageRegistry, LanguageToolchainStore, LocalFile as _, - LspAdapter, LspAdapterDelegate, + ContextProvider, LanguageRegistry, LanguageToolchainStore, LocalFile as _, LspAdapter, + LspAdapterDelegate, }; use lsp::{LanguageServerBinary, LanguageServerName}; use node_runtime::NodeRuntime; @@ -408,10 +408,10 @@ impl LspAdapter for JsonLspAdapter { Ok(config) } - fn language_ids(&self) -> HashMap<LanguageName, String> { + fn language_ids(&self) -> HashMap<String, String> { [ - (LanguageName::new("JSON"), "json".into()), - (LanguageName::new("JSONC"), "jsonc".into()), + ("JSON".into(), "json".into()), + ("JSONC".into(), "jsonc".into()), ] .into_iter() .collect() diff --git a/crates/languages/src/lib.rs b/crates/languages/src/lib.rs index 001fd15200..a224111002 100644 --- a/crates/languages/src/lib.rs +++ b/crates/languages/src/lib.rs @@ -1,5 +1,4 @@ use anyhow::Context as _; -use feature_flags::{FeatureFlag, FeatureFlagAppExt as _}; use gpui::{App, UpdateGlobal}; use node_runtime::NodeRuntime; use python::PyprojectTomlManifestProvider; @@ -12,7 +11,7 @@ use util::{ResultExt, asset_str}; pub use language::*; -use crate::{json::JsonTaskProvider, python::BasedPyrightLspAdapter}; +use crate::json::JsonTaskProvider; mod bash; mod c; @@ -53,12 +52,6 @@ pub static LANGUAGE_GIT_COMMIT: std::sync::LazyLock<Arc<Language>> = )) }); -struct BasedPyrightFeatureFlag; - -impl FeatureFlag for BasedPyrightFeatureFlag { - const NAME: &'static str = "basedpyright"; -} - pub fn init(languages: Arc<LanguageRegistry>, node: NodeRuntime, cx: &mut App) { #[cfg(feature = "load-grammars")] languages.register_native_grammars([ @@ -95,7 +88,6 @@ pub fn init(languages: Arc<LanguageRegistry>, node: NodeRuntime, cx: &mut App) { let py_lsp_adapter = Arc::new(python::PyLspAdapter::new()); let python_context_provider = Arc::new(python::PythonContextProvider); let python_lsp_adapter = Arc::new(python::PythonLspAdapter::new(node.clone())); - let basedpyright_lsp_adapter = Arc::new(BasedPyrightLspAdapter::new()); let python_toolchain_provider = Arc::new(python::PythonToolchainProvider::default()); let rust_context_provider = Arc::new(rust::RustContextProvider); let rust_lsp_adapter = Arc::new(rust::RustLspAdapter); @@ -236,20 +228,6 @@ pub fn init(languages: Arc<LanguageRegistry>, node: NodeRuntime, cx: &mut App) { ); } - let mut basedpyright_lsp_adapter = Some(basedpyright_lsp_adapter); - cx.observe_flag::<BasedPyrightFeatureFlag, _>({ - let languages = languages.clone(); - move |enabled, _| { - if enabled { - if let Some(adapter) = basedpyright_lsp_adapter.take() { - languages - .register_available_lsp_adapter(adapter.name(), move || adapter.clone()); - } - } - } - }) - .detach(); - // Register globally available language servers. // // This will allow users to add support for a built-in language server (e.g., Tailwind) diff --git a/crates/languages/src/python.rs b/crates/languages/src/python.rs index 0524c02fd5..dc6996d399 100644 --- a/crates/languages/src/python.rs +++ b/crates/languages/src/python.rs @@ -4,13 +4,13 @@ use async_trait::async_trait; use collections::HashMap; use gpui::{App, Task}; use gpui::{AsyncApp, SharedString}; +use language::Toolchain; use language::ToolchainList; use language::ToolchainLister; use language::language_settings::language_settings; use language::{ContextLocation, LanguageToolchainStore}; use language::{ContextProvider, LspAdapter, LspAdapterDelegate}; use language::{LanguageName, ManifestName, ManifestProvider, ManifestQuery}; -use language::{Toolchain, WorkspaceFoldersContent}; use lsp::LanguageServerBinary; use lsp::LanguageServerName; use node_runtime::NodeRuntime; @@ -400,9 +400,6 @@ impl LspAdapter for PythonLspAdapter { fn manifest_name(&self) -> Option<ManifestName> { Some(SharedString::new_static("pyproject.toml").into()) } - fn workspace_folders_content(&self) -> WorkspaceFoldersContent { - WorkspaceFoldersContent::WorktreeRoot - } } async fn get_cached_server_binary( @@ -1285,350 +1282,6 @@ impl LspAdapter for PyLspAdapter { fn manifest_name(&self) -> Option<ManifestName> { Some(SharedString::new_static("pyproject.toml").into()) } - fn workspace_folders_content(&self) -> WorkspaceFoldersContent { - WorkspaceFoldersContent::WorktreeRoot - } -} - -pub(crate) struct BasedPyrightLspAdapter { - python_venv_base: OnceCell<Result<Arc<Path>, String>>, -} - -impl BasedPyrightLspAdapter { - const SERVER_NAME: LanguageServerName = LanguageServerName::new_static("basedpyright"); - const BINARY_NAME: &'static str = "basedpyright-langserver"; - - pub(crate) fn new() -> Self { - Self { - python_venv_base: OnceCell::new(), - } - } - - async fn ensure_venv(delegate: &dyn LspAdapterDelegate) -> Result<Arc<Path>> { - let python_path = Self::find_base_python(delegate) - .await - .context("Could not find Python installation for basedpyright")?; - let work_dir = delegate - .language_server_download_dir(&Self::SERVER_NAME) - .await - .context("Could not get working directory for basedpyright")?; - let mut path = PathBuf::from(work_dir.as_ref()); - path.push("basedpyright-venv"); - if !path.exists() { - util::command::new_smol_command(python_path) - .arg("-m") - .arg("venv") - .arg("basedpyright-venv") - .current_dir(work_dir) - .spawn()? - .output() - .await?; - } - - Ok(path.into()) - } - - // Find "baseline", user python version from which we'll create our own venv. - async fn find_base_python(delegate: &dyn LspAdapterDelegate) -> Option<PathBuf> { - for path in ["python3", "python"] { - if let Some(path) = delegate.which(path.as_ref()).await { - return Some(path); - } - } - None - } - - async fn base_venv(&self, delegate: &dyn LspAdapterDelegate) -> Result<Arc<Path>, String> { - self.python_venv_base - .get_or_init(move || async move { - Self::ensure_venv(delegate) - .await - .map_err(|e| format!("{e}")) - }) - .await - .clone() - } -} - -#[async_trait(?Send)] -impl LspAdapter for BasedPyrightLspAdapter { - fn name(&self) -> LanguageServerName { - Self::SERVER_NAME.clone() - } - - async fn initialization_options( - self: Arc<Self>, - _: &dyn Fs, - _: &Arc<dyn LspAdapterDelegate>, - ) -> Result<Option<Value>> { - // Provide minimal initialization options - // Virtual environment configuration will be handled through workspace configuration - Ok(Some(json!({ - "python": { - "analysis": { - "autoSearchPaths": true, - "useLibraryCodeForTypes": true, - "autoImportCompletions": true - } - } - }))) - } - - async fn check_if_user_installed( - &self, - delegate: &dyn LspAdapterDelegate, - toolchains: Arc<dyn LanguageToolchainStore>, - cx: &AsyncApp, - ) -> Option<LanguageServerBinary> { - if let Some(bin) = delegate.which(Self::BINARY_NAME.as_ref()).await { - let env = delegate.shell_env().await; - Some(LanguageServerBinary { - path: bin, - env: Some(env), - arguments: vec!["--stdio".into()], - }) - } else { - let venv = toolchains - .active_toolchain( - delegate.worktree_id(), - Arc::from("".as_ref()), - LanguageName::new("Python"), - &mut cx.clone(), - ) - .await?; - let path = Path::new(venv.path.as_ref()) - .parent()? - .join(Self::BINARY_NAME); - path.exists().then(|| LanguageServerBinary { - path, - arguments: vec!["--stdio".into()], - env: None, - }) - } - } - - async fn fetch_latest_server_version( - &self, - _: &dyn LspAdapterDelegate, - ) -> Result<Box<dyn 'static + Any + Send>> { - Ok(Box::new(()) as Box<_>) - } - - async fn fetch_server_binary( - &self, - _latest_version: Box<dyn 'static + Send + Any>, - _container_dir: PathBuf, - delegate: &dyn LspAdapterDelegate, - ) -> Result<LanguageServerBinary> { - let venv = self.base_venv(delegate).await.map_err(|e| anyhow!(e))?; - let pip_path = venv.join(BINARY_DIR).join("pip3"); - ensure!( - util::command::new_smol_command(pip_path.as_path()) - .arg("install") - .arg("basedpyright") - .arg("-U") - .output() - .await? - .status - .success(), - "basedpyright installation failed" - ); - let pylsp = venv.join(BINARY_DIR).join(Self::BINARY_NAME); - Ok(LanguageServerBinary { - path: pylsp, - env: None, - arguments: vec!["--stdio".into()], - }) - } - - async fn cached_server_binary( - &self, - _container_dir: PathBuf, - delegate: &dyn LspAdapterDelegate, - ) -> Option<LanguageServerBinary> { - let venv = self.base_venv(delegate).await.ok()?; - let pylsp = venv.join(BINARY_DIR).join(Self::BINARY_NAME); - Some(LanguageServerBinary { - path: pylsp, - env: None, - arguments: vec!["--stdio".into()], - }) - } - - async fn process_completions(&self, items: &mut [lsp::CompletionItem]) { - // Pyright assigns each completion item a `sortText` of the form `XX.YYYY.name`. - // Where `XX` is the sorting category, `YYYY` is based on most recent usage, - // and `name` is the symbol name itself. - // - // Because the symbol name is included, there generally are not ties when - // sorting by the `sortText`, so the symbol's fuzzy match score is not taken - // into account. Here, we remove the symbol name from the sortText in order - // to allow our own fuzzy score to be used to break ties. - // - // see https://github.com/microsoft/pyright/blob/95ef4e103b9b2f129c9320427e51b73ea7cf78bd/packages/pyright-internal/src/languageService/completionProvider.ts#LL2873 - for item in items { - let Some(sort_text) = &mut item.sort_text else { - continue; - }; - let mut parts = sort_text.split('.'); - let Some(first) = parts.next() else { continue }; - let Some(second) = parts.next() else { continue }; - let Some(_) = parts.next() else { continue }; - sort_text.replace_range(first.len() + second.len() + 1.., ""); - } - } - - async fn label_for_completion( - &self, - item: &lsp::CompletionItem, - language: &Arc<language::Language>, - ) -> Option<language::CodeLabel> { - let label = &item.label; - let grammar = language.grammar()?; - let highlight_id = match item.kind? { - lsp::CompletionItemKind::METHOD => grammar.highlight_id_for_name("function.method")?, - lsp::CompletionItemKind::FUNCTION => grammar.highlight_id_for_name("function")?, - lsp::CompletionItemKind::CLASS => grammar.highlight_id_for_name("type")?, - lsp::CompletionItemKind::CONSTANT => grammar.highlight_id_for_name("constant")?, - _ => return None, - }; - let filter_range = item - .filter_text - .as_deref() - .and_then(|filter| label.find(filter).map(|ix| ix..ix + filter.len())) - .unwrap_or(0..label.len()); - Some(language::CodeLabel { - text: label.clone(), - runs: vec![(0..label.len(), highlight_id)], - filter_range, - }) - } - - async fn label_for_symbol( - &self, - name: &str, - kind: lsp::SymbolKind, - language: &Arc<language::Language>, - ) -> Option<language::CodeLabel> { - let (text, filter_range, display_range) = match kind { - lsp::SymbolKind::METHOD | lsp::SymbolKind::FUNCTION => { - let text = format!("def {}():\n", name); - let filter_range = 4..4 + name.len(); - let display_range = 0..filter_range.end; - (text, filter_range, display_range) - } - lsp::SymbolKind::CLASS => { - let text = format!("class {}:", name); - let filter_range = 6..6 + name.len(); - let display_range = 0..filter_range.end; - (text, filter_range, display_range) - } - lsp::SymbolKind::CONSTANT => { - let text = format!("{} = 0", name); - let filter_range = 0..name.len(); - let display_range = 0..filter_range.end; - (text, filter_range, display_range) - } - _ => return None, - }; - - Some(language::CodeLabel { - runs: language.highlight_text(&text.as_str().into(), display_range.clone()), - text: text[display_range].to_string(), - filter_range, - }) - } - - async fn workspace_configuration( - self: Arc<Self>, - _: &dyn Fs, - adapter: &Arc<dyn LspAdapterDelegate>, - toolchains: Arc<dyn LanguageToolchainStore>, - cx: &mut AsyncApp, - ) -> Result<Value> { - let toolchain = toolchains - .active_toolchain( - adapter.worktree_id(), - Arc::from("".as_ref()), - LanguageName::new("Python"), - cx, - ) - .await; - cx.update(move |cx| { - let mut user_settings = - language_server_settings(adapter.as_ref(), &Self::SERVER_NAME, cx) - .and_then(|s| s.settings.clone()) - .unwrap_or_default(); - - // If we have a detected toolchain, configure Pyright to use it - if let Some(toolchain) = toolchain { - if user_settings.is_null() { - user_settings = Value::Object(serde_json::Map::default()); - } - let object = user_settings.as_object_mut().unwrap(); - - let interpreter_path = toolchain.path.to_string(); - - // Detect if this is a virtual environment - if let Some(interpreter_dir) = Path::new(&interpreter_path).parent() { - if let Some(venv_dir) = interpreter_dir.parent() { - // Check if this looks like a virtual environment - if venv_dir.join("pyvenv.cfg").exists() - || venv_dir.join("bin/activate").exists() - || venv_dir.join("Scripts/activate.bat").exists() - { - // Set venvPath and venv at the root level - // This matches the format of a pyrightconfig.json file - if let Some(parent) = venv_dir.parent() { - // Use relative path if the venv is inside the workspace - let venv_path = if parent == adapter.worktree_root_path() { - ".".to_string() - } else { - parent.to_string_lossy().into_owned() - }; - object.insert("venvPath".to_string(), Value::String(venv_path)); - } - - if let Some(venv_name) = venv_dir.file_name() { - object.insert( - "venv".to_owned(), - Value::String(venv_name.to_string_lossy().into_owned()), - ); - } - } - } - } - - // Always set the python interpreter path - // Get or create the python section - let python = object - .entry("python") - .or_insert(Value::Object(serde_json::Map::default())) - .as_object_mut() - .unwrap(); - - // Set both pythonPath and defaultInterpreterPath for compatibility - python.insert( - "pythonPath".to_owned(), - Value::String(interpreter_path.clone()), - ); - python.insert( - "defaultInterpreterPath".to_owned(), - Value::String(interpreter_path), - ); - } - - user_settings - }) - } - - fn manifest_name(&self) -> Option<ManifestName> { - Some(SharedString::new_static("pyproject.toml").into()) - } - - fn workspace_folders_content(&self) -> WorkspaceFoldersContent { - WorkspaceFoldersContent::WorktreeRoot - } } #[cfg(test)] diff --git a/crates/languages/src/tailwind.rs b/crates/languages/src/tailwind.rs index a7edbb148c..cb4e939083 100644 --- a/crates/languages/src/tailwind.rs +++ b/crates/languages/src/tailwind.rs @@ -3,7 +3,7 @@ use async_trait::async_trait; use collections::HashMap; use futures::StreamExt; use gpui::AsyncApp; -use language::{LanguageName, LanguageToolchainStore, LspAdapter, LspAdapterDelegate}; +use language::{LanguageToolchainStore, LspAdapter, LspAdapterDelegate}; use lsp::{LanguageServerBinary, LanguageServerName}; use node_runtime::NodeRuntime; use project::{Fs, lsp_store::language_server_settings}; @@ -168,20 +168,20 @@ impl LspAdapter for TailwindLspAdapter { })) } - fn language_ids(&self) -> HashMap<LanguageName, String> { + fn language_ids(&self) -> HashMap<String, String> { HashMap::from_iter([ - (LanguageName::new("Astro"), "astro".to_string()), - (LanguageName::new("HTML"), "html".to_string()), - (LanguageName::new("CSS"), "css".to_string()), - (LanguageName::new("JavaScript"), "javascript".to_string()), - (LanguageName::new("TSX"), "typescriptreact".to_string()), - (LanguageName::new("Svelte"), "svelte".to_string()), - (LanguageName::new("Elixir"), "phoenix-heex".to_string()), - (LanguageName::new("HEEX"), "phoenix-heex".to_string()), - (LanguageName::new("ERB"), "erb".to_string()), - (LanguageName::new("HTML/ERB"), "erb".to_string()), - (LanguageName::new("PHP"), "php".to_string()), - (LanguageName::new("Vue.js"), "vue".to_string()), + ("Astro".to_string(), "astro".to_string()), + ("HTML".to_string(), "html".to_string()), + ("CSS".to_string(), "css".to_string()), + ("JavaScript".to_string(), "javascript".to_string()), + ("TSX".to_string(), "typescriptreact".to_string()), + ("Svelte".to_string(), "svelte".to_string()), + ("Elixir".to_string(), "phoenix-heex".to_string()), + ("HEEX".to_string(), "phoenix-heex".to_string()), + ("ERB".to_string(), "erb".to_string()), + ("HTML/ERB".to_string(), "erb".to_string()), + ("PHP".to_string(), "php".to_string()), + ("Vue.js".to_string(), "vue".to_string()), ]) } } diff --git a/crates/languages/src/typescript.rs b/crates/languages/src/typescript.rs index 9dc3ee303d..34b9c3224e 100644 --- a/crates/languages/src/typescript.rs +++ b/crates/languages/src/typescript.rs @@ -8,8 +8,7 @@ use futures::future::join_all; use gpui::{App, AppContext, AsyncApp, Task}; use http_client::github::{AssetKind, GitHubLspBinaryVersion, build_asset_url}; use language::{ - ContextLocation, ContextProvider, File, LanguageName, LanguageToolchainStore, LspAdapter, - LspAdapterDelegate, + ContextLocation, ContextProvider, File, LanguageToolchainStore, LspAdapter, LspAdapterDelegate, }; use lsp::{CodeActionKind, LanguageServerBinary, LanguageServerName}; use node_runtime::NodeRuntime; @@ -513,7 +512,7 @@ fn eslint_server_binary_arguments(server_path: &Path) -> Vec<OsString> { fn replace_test_name_parameters(test_name: &str) -> String { let pattern = regex::Regex::new(r"(%|\$)[0-9a-zA-Z]+").unwrap(); - regex::escape(&pattern.replace_all(test_name, "(.+?)")) + pattern.replace_all(test_name, "(.+?)").to_string() } pub struct TypeScriptLspAdapter { @@ -742,11 +741,11 @@ impl LspAdapter for TypeScriptLspAdapter { })) } - fn language_ids(&self) -> HashMap<LanguageName, String> { + fn language_ids(&self) -> HashMap<String, String> { HashMap::from_iter([ - (LanguageName::new("TypeScript"), "typescript".into()), - (LanguageName::new("JavaScript"), "javascript".into()), - (LanguageName::new("TSX"), "typescriptreact".into()), + ("TypeScript".into(), "typescript".into()), + ("JavaScript".into(), "javascript".into()), + ("TSX".into(), "typescriptreact".into()), ]) } } diff --git a/crates/languages/src/typescript/runnables.scm b/crates/languages/src/typescript/runnables.scm index 6bfc536329..85702cf99d 100644 --- a/crates/languages/src/typescript/runnables.scm +++ b/crates/languages/src/typescript/runnables.scm @@ -1,4 +1,4 @@ -; Add support for (node:test, bun:test, Jest and Deno.test) runnable +; Add support for (node:test, bun:test and Jest) runnable ; Function expression that has `it`, `test` or `describe` as the function name ( (call_expression @@ -44,42 +44,3 @@ (#set! tag js-test) ) - -; Add support for Deno.test with string names -( - (call_expression - function: (member_expression - object: (identifier) @_namespace - property: (property_identifier) @_method - ) - (#eq? @_namespace "Deno") - (#eq? @_method "test") - arguments: ( - arguments . [ - (string (string_fragment) @run @DENO_TEST_NAME) - (identifier) @run @DENO_TEST_NAME - ] - ) - ) @_js-test - - (#set! tag js-test) -) - -; Add support for Deno.test with named function expressions -( - (call_expression - function: (member_expression - object: (identifier) @_namespace - property: (property_identifier) @_method - ) - (#eq? @_namespace "Deno") - (#eq? @_method "test") - arguments: ( - arguments . (function_expression - name: (identifier) @run @DENO_TEST_NAME - ) - ) - ) @_js-test - - (#set! tag js-test) -) diff --git a/crates/languages/src/vtsls.rs b/crates/languages/src/vtsls.rs index 33751f733e..ca07673d5f 100644 --- a/crates/languages/src/vtsls.rs +++ b/crates/languages/src/vtsls.rs @@ -2,7 +2,7 @@ use anyhow::Result; use async_trait::async_trait; use collections::HashMap; use gpui::AsyncApp; -use language::{LanguageName, LanguageToolchainStore, LspAdapter, LspAdapterDelegate}; +use language::{LanguageToolchainStore, LspAdapter, LspAdapterDelegate}; use lsp::{CodeActionKind, LanguageServerBinary, LanguageServerName}; use node_runtime::NodeRuntime; use project::{Fs, lsp_store::language_server_settings}; @@ -273,11 +273,11 @@ impl LspAdapter for VtslsLspAdapter { Ok(default_workspace_configuration) } - fn language_ids(&self) -> HashMap<LanguageName, String> { + fn language_ids(&self) -> HashMap<String, String> { HashMap::from_iter([ - (LanguageName::new("TypeScript"), "typescript".into()), - (LanguageName::new("JavaScript"), "javascript".into()), - (LanguageName::new("TSX"), "typescriptreact".into()), + ("TypeScript".into(), "typescript".into()), + ("JavaScript".into(), "javascript".into()), + ("TSX".into(), "typescriptreact".into()), ]) } } diff --git a/crates/languages/src/yaml/outline.scm b/crates/languages/src/yaml/outline.scm index c5a7f8e5d4..7ab007835f 100644 --- a/crates/languages/src/yaml/outline.scm +++ b/crates/languages/src/yaml/outline.scm @@ -1,9 +1 @@ -(block_mapping_pair - key: - (flow_node - (plain_scalar - (string_scalar) @name)) - value: - (flow_node - (plain_scalar - (string_scalar) @context))?) @item +(block_mapping_pair key: (flow_node (plain_scalar (string_scalar) @name))) @item diff --git a/crates/livekit_client/Cargo.toml b/crates/livekit_client/Cargo.toml index 821fd5d390..a0c11d46e6 100644 --- a/crates/livekit_client/Cargo.toml +++ b/crates/livekit_client/Cargo.toml @@ -40,8 +40,8 @@ util.workspace = true workspace-hack.workspace = true [target.'cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))'.dependencies] -libwebrtc = { rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d", git = "https://github.com/zed-industries/livekit-rust-sdks" } -livekit = { rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d", git = "https://github.com/zed-industries/livekit-rust-sdks", features = [ +libwebrtc = { rev = "d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4", git = "https://github.com/zed-industries/livekit-rust-sdks" } +livekit = { rev = "d2eade7a6b15d6dbdb38ba12a1ff7bf07fcebba4", git = "https://github.com/zed-industries/livekit-rust-sdks", features = [ "__rustls-tls" ] } diff --git a/crates/livekit_client/src/lib.rs b/crates/livekit_client/src/lib.rs index 149859fdc8..f94181b8f8 100644 --- a/crates/livekit_client/src/lib.rs +++ b/crates/livekit_client/src/lib.rs @@ -3,41 +3,16 @@ use collections::HashMap; mod remote_video_track_view; pub use remote_video_track_view::{RemoteVideoTrackView, RemoteVideoTrackViewEvent}; -#[cfg(not(any( - test, - feature = "test-support", - all(target_os = "windows", target_env = "gnu"), - target_os = "freebsd" -)))] +#[cfg(not(any(test, feature = "test-support", target_os = "freebsd")))] mod livekit_client; -#[cfg(not(any( - test, - feature = "test-support", - all(target_os = "windows", target_env = "gnu"), - target_os = "freebsd" -)))] +#[cfg(not(any(test, feature = "test-support", target_os = "freebsd")))] pub use livekit_client::*; -#[cfg(any( - test, - feature = "test-support", - all(target_os = "windows", target_env = "gnu"), - target_os = "freebsd" -))] +#[cfg(any(test, feature = "test-support", target_os = "freebsd"))] mod mock_client; -#[cfg(any( - test, - feature = "test-support", - all(target_os = "windows", target_env = "gnu"), - target_os = "freebsd" -))] +#[cfg(any(test, feature = "test-support", target_os = "freebsd"))] pub mod test; -#[cfg(any( - test, - feature = "test-support", - all(target_os = "windows", target_env = "gnu"), - target_os = "freebsd" -))] +#[cfg(any(test, feature = "test-support", target_os = "freebsd"))] pub use mock_client::*; #[derive(Debug, Clone)] diff --git a/crates/livekit_client/src/mock_client/participant.rs b/crates/livekit_client/src/mock_client/participant.rs index 033808cbb5..991d10bd50 100644 --- a/crates/livekit_client/src/mock_client/participant.rs +++ b/crates/livekit_client/src/mock_client/participant.rs @@ -5,9 +5,7 @@ use crate::{ }; use anyhow::Result; use collections::HashMap; -use gpui::{ - AsyncApp, DevicePixels, ScreenCaptureSource, ScreenCaptureStream, SourceMetadata, size, -}; +use gpui::{AsyncApp, ScreenCaptureSource, ScreenCaptureStream, TestScreenCaptureStream}; #[derive(Clone, Debug)] pub struct LocalParticipant { @@ -121,16 +119,3 @@ impl RemoteParticipant { self.identity.clone() } } - -struct TestScreenCaptureStream; - -impl ScreenCaptureStream for TestScreenCaptureStream { - fn metadata(&self) -> Result<SourceMetadata> { - Ok(SourceMetadata { - id: 0, - is_main: None, - label: None, - resolution: size(DevicePixels(1), DevicePixels(1)), - }) - } -} diff --git a/crates/lsp/src/lsp.rs b/crates/lsp/src/lsp.rs index b9701a83d2..7dcfa61f47 100644 --- a/crates/lsp/src/lsp.rs +++ b/crates/lsp/src/lsp.rs @@ -4,7 +4,7 @@ pub use lsp_types::request::*; pub use lsp_types::*; use anyhow::{Context as _, Result, anyhow}; -use collections::{BTreeMap, HashMap}; +use collections::HashMap; use futures::{ AsyncRead, AsyncWrite, Future, FutureExt, channel::oneshot::{self, Canceled}, @@ -29,7 +29,7 @@ use std::{ ffi::{OsStr, OsString}, fmt, io::Write, - ops::DerefMut, + ops::{Deref, DerefMut}, path::PathBuf, pin::Pin, sync::{ @@ -40,7 +40,7 @@ use std::{ time::{Duration, Instant}, }; use std::{path::Path, process::Stdio}; -use util::{ConnectionResult, ResultExt, TryFutureExt, redact}; +use util::{ConnectionResult, ResultExt, TryFutureExt}; const JSON_RPC_VERSION: &str = "2.0"; const CONTENT_LEN_HEADER: &str = "Content-Length: "; @@ -62,7 +62,7 @@ pub enum IoKind { /// Represents a launchable language server. This can either be a standalone binary or the path /// to a runtime with arguments to instruct it to launch the actual language server file. -#[derive(Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize)] pub struct LanguageServerBinary { pub path: PathBuf, pub arguments: Vec<OsString>, @@ -100,7 +100,7 @@ pub struct LanguageServer { io_tasks: Mutex<Option<(Task<Option<()>>, Task<Option<()>>)>>, output_done_rx: Mutex<Option<barrier::Receiver>>, server: Arc<Mutex<Option<Child>>>, - workspace_folders: Option<Arc<Mutex<BTreeSet<Url>>>>, + workspace_folders: Arc<Mutex<BTreeSet<Url>>>, root_uri: Url, } @@ -307,7 +307,7 @@ impl LanguageServer { binary: LanguageServerBinary, root_path: &Path, code_action_kinds: Option<Vec<CodeActionKind>>, - workspace_folders: Option<Arc<Mutex<BTreeSet<Url>>>>, + workspace_folders: Arc<Mutex<BTreeSet<Url>>>, cx: &mut AsyncApp, ) -> Result<Self> { let working_dir = if root_path.is_dir() { @@ -381,7 +381,7 @@ impl LanguageServer { code_action_kinds: Option<Vec<CodeActionKind>>, binary: LanguageServerBinary, root_uri: Url, - workspace_folders: Option<Arc<Mutex<BTreeSet<Url>>>>, + workspace_folders: Arc<Mutex<BTreeSet<Url>>>, cx: &mut AsyncApp, on_unhandled_notification: F, ) -> Self @@ -421,14 +421,14 @@ impl LanguageServer { .map(|stderr| { let io_handlers = io_handlers.clone(); let stderr_captures = stderr_capture.clone(); - cx.background_spawn(async move { + cx.spawn(async move |_| { Self::handle_stderr(stderr, io_handlers, stderr_captures) .log_err() .await }) }) .unwrap_or_else(|| Task::ready(None)); - let input_task = cx.background_spawn(async move { + let input_task = cx.spawn(async move |_| { let (stdout, stderr) = futures::join!(stdout_input_task, stderr_input_task); stdout.or(stderr) }); @@ -595,26 +595,16 @@ impl LanguageServer { } pub fn default_initialize_params(&self, pull_diagnostics: bool, cx: &App) -> InitializeParams { - let workspace_folders = self.workspace_folders.as_ref().map_or_else( - || { - vec![WorkspaceFolder { - name: Default::default(), - uri: self.root_uri.clone(), - }] - }, - |folders| { - folders - .lock() - .iter() - .cloned() - .map(|uri| WorkspaceFolder { - name: Default::default(), - uri, - }) - .collect() - }, - ); - + let workspace_folders = self + .workspace_folders + .lock() + .iter() + .cloned() + .map(|uri| WorkspaceFolder { + name: Default::default(), + uri, + }) + .collect::<Vec<_>>(); #[allow(deprecated)] InitializeParams { process_id: None, @@ -846,7 +836,7 @@ impl LanguageServer { configuration: Arc<DidChangeConfigurationParams>, cx: &App, ) -> Task<Result<Arc<Self>>> { - cx.background_spawn(async move { + cx.spawn(async move |_| { let response = self .request::<request::Initialize>(params) .await @@ -887,41 +877,39 @@ impl LanguageServer { let server = self.server.clone(); let name = self.name.clone(); - let server_id = self.server_id; let mut timer = self.executor.timer(SERVER_SHUTDOWN_TIMEOUT).fuse(); - Some(async move { - log::debug!("language server shutdown started"); + Some( + async move { + log::debug!("language server shutdown started"); - select! { - request_result = shutdown_request.fuse() => { - match request_result { - ConnectionResult::Timeout => { - log::warn!("timeout waiting for language server {name} (id {server_id}) to shutdown"); - }, - ConnectionResult::ConnectionReset => { - log::warn!("language server {name} (id {server_id}) closed the shutdown request connection"); - }, - ConnectionResult::Result(Err(e)) => { - log::error!("Shutdown request failure, server {name} (id {server_id}): {e:#}"); - }, - ConnectionResult::Result(Ok(())) => {} + select! { + request_result = shutdown_request.fuse() => { + match request_result { + ConnectionResult::Timeout => { + log::warn!("timeout waiting for language server {name} to shutdown"); + }, + ConnectionResult::ConnectionReset => {}, + ConnectionResult::Result(r) => r?, + } } + + _ = timer => { + log::info!("timeout waiting for language server {name} to shutdown"); + }, } - _ = timer => { - log::info!("timeout waiting for language server {name} (id {server_id}) to shutdown"); - }, - } + response_handlers.lock().take(); + Self::notify_internal::<notification::Exit>(&outbound_tx, &()).ok(); + outbound_tx.close(); + output_done.recv().await; + server.lock().take().map(|mut child| child.kill()); + log::debug!("language server shutdown finished"); - response_handlers.lock().take(); - Self::notify_internal::<notification::Exit>(&outbound_tx, &()).ok(); - outbound_tx.close(); - output_done.recv().await; - server.lock().take().map(|mut child| child.kill()); - drop(tasks); - log::debug!("language server shutdown finished"); - Some(()) - }) + drop(tasks); + anyhow::Ok(()) + } + .log_err(), + ) } else { None } @@ -1325,10 +1313,7 @@ impl LanguageServer { return; } - let Some(workspace_folders) = self.workspace_folders.as_ref() else { - return; - }; - let is_new_folder = workspace_folders.lock().insert(uri.clone()); + let is_new_folder = self.workspace_folders.lock().insert(uri.clone()); if is_new_folder { let params = DidChangeWorkspaceFoldersParams { event: WorkspaceFoldersChangeEvent { @@ -1358,10 +1343,7 @@ impl LanguageServer { { return; } - let Some(workspace_folders) = self.workspace_folders.as_ref() else { - return; - }; - let was_removed = workspace_folders.lock().remove(&uri); + let was_removed = self.workspace_folders.lock().remove(&uri); if was_removed { let params = DidChangeWorkspaceFoldersParams { event: WorkspaceFoldersChangeEvent { @@ -1376,10 +1358,7 @@ impl LanguageServer { } } pub fn set_workspace_folders(&self, folders: BTreeSet<Url>) { - let Some(workspace_folders) = self.workspace_folders.as_ref() else { - return; - }; - let mut workspace_folders = workspace_folders.lock(); + let mut workspace_folders = self.workspace_folders.lock(); let old_workspace_folders = std::mem::take(&mut *workspace_folders); let added: Vec<_> = folders @@ -1408,11 +1387,8 @@ impl LanguageServer { } } - pub fn workspace_folders(&self) -> BTreeSet<Url> { - self.workspace_folders.as_ref().map_or_else( - || BTreeSet::from_iter([self.root_uri.clone()]), - |folders| folders.lock().clone(), - ) + pub fn workspace_folders(&self) -> impl Deref<Target = BTreeSet<Url>> + '_ { + self.workspace_folders.lock() } pub fn register_buffer( @@ -1472,33 +1448,6 @@ impl fmt::Debug for LanguageServer { } } -impl fmt::Debug for LanguageServerBinary { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let mut debug = f.debug_struct("LanguageServerBinary"); - debug.field("path", &self.path); - debug.field("arguments", &self.arguments); - - if let Some(env) = &self.env { - let redacted_env: BTreeMap<String, String> = env - .iter() - .map(|(key, value)| { - let redacted_value = if redact::should_redact(key) { - "REDACTED".to_string() - } else { - value.clone() - }; - (key.clone(), redacted_value) - }) - .collect(); - debug.field("env", &Some(redacted_env)); - } else { - debug.field("env", &self.env); - } - - debug.finish() - } -} - impl Drop for Subscription { fn drop(&mut self) { match self { @@ -1557,7 +1506,7 @@ impl FakeLanguageServer { None, binary.clone(), root, - Some(workspace_folders.clone()), + workspace_folders.clone(), cx, |_| {}, ); @@ -1576,7 +1525,7 @@ impl FakeLanguageServer { None, binary, Self::root_path(), - Some(workspace_folders), + workspace_folders, cx, move |msg| { notifications_tx diff --git a/crates/onboarding/Cargo.toml b/crates/onboarding/Cargo.toml index 8f684dd1b8..693e39d4ca 100644 --- a/crates/onboarding/Cargo.toml +++ b/crates/onboarding/Cargo.toml @@ -16,29 +16,13 @@ default = [] [dependencies] anyhow.workspace = true -ai_onboarding.workspace = true -client.workspace = true command_palette_hooks.workspace = true -component.workspace = true -documented.workspace = true db.workspace = true -editor.workspace = true feature_flags.workspace = true fs.workspace = true gpui.workspace = true -itertools.workspace = true -language.workspace = true -language_model.workspace = true -menu.workspace = true -project.workspace = true -schemars.workspace = true -serde.workspace = true settings.workspace = true theme.workspace = true ui.workspace = true -util.workspace = true -vim_mode_setting.workspace = true -workspace-hack.workspace = true workspace.workspace = true -zed_actions.workspace = true -zlog.workspace = true +workspace-hack.workspace = true diff --git a/crates/onboarding/src/ai_setup_page.rs b/crates/onboarding/src/ai_setup_page.rs deleted file mode 100644 index 2f031e7bb8..0000000000 --- a/crates/onboarding/src/ai_setup_page.rs +++ /dev/null @@ -1,359 +0,0 @@ -use std::sync::Arc; - -use ai_onboarding::{AiUpsellCard, SignInStatus}; -use client::DisableAiSettings; -use fs::Fs; -use gpui::{ - Action, AnyView, App, DismissEvent, EventEmitter, FocusHandle, Focusable, Window, prelude::*, -}; -use itertools; - -use language_model::{LanguageModelProvider, LanguageModelProviderId, LanguageModelRegistry}; -use settings::{Settings, update_settings_file}; -use ui::{ - Badge, ButtonLike, Divider, Modal, ModalFooter, ModalHeader, Section, SwitchField, ToggleState, - prelude::*, -}; -use workspace::ModalView; - -use util::ResultExt; -use zed_actions::agent::OpenSettings; - -use crate::Onboarding; - -const FEATURED_PROVIDERS: [&'static str; 4] = ["anthropic", "google", "openai", "ollama"]; - -fn render_llm_provider_section( - onboarding: &Onboarding, - disabled: bool, - window: &mut Window, - cx: &mut App, -) -> impl IntoElement { - v_flex() - .gap_4() - .child( - v_flex() - .child(Label::new("Or use other LLM providers").size(LabelSize::Large)) - .child( - Label::new("Bring your API keys to use the available providers with Zed's UI for free.") - .color(Color::Muted), - ), - ) - .child(render_llm_provider_card(onboarding, disabled, window, cx)) -} - -fn render_privacy_card(disabled: bool, cx: &mut App) -> impl IntoElement { - let privacy_badge = || Badge::new("Privacy").icon(IconName::ShieldCheck); - - v_flex() - .relative() - .pt_2() - .pb_2p5() - .pl_3() - .pr_2() - .border_1() - .border_dashed() - .border_color(cx.theme().colors().border.opacity(0.5)) - .bg(cx.theme().colors().surface_background.opacity(0.3)) - .rounded_lg() - .overflow_hidden() - .map(|this| { - if disabled { - this.child( - h_flex() - .gap_2() - .justify_between() - .child( - h_flex() - .gap_1() - .child(Label::new("AI is disabled across Zed")) - .child( - Icon::new(IconName::Check) - .color(Color::Success) - .size(IconSize::XSmall), - ), - ) - .child(privacy_badge()), - ) - .child( - Label::new("Re-enable it any time in Settings.") - .size(LabelSize::Small) - .color(Color::Muted), - ) - } else { - this.child( - h_flex() - .gap_2() - .justify_between() - .child(Label::new("We don't train models using your data")) - .child( - h_flex().gap_1().child(privacy_badge()).child( - Button::new("learn_more", "Learn More") - .style(ButtonStyle::Outlined) - .label_size(LabelSize::Small) - .icon(IconName::ArrowUpRight) - .icon_size(IconSize::XSmall) - .icon_color(Color::Muted) - .on_click(|_, _, cx| { - cx.open_url("https://zed.dev/docs/ai/privacy-and-security"); - }), - ), - ), - ) - .child( - Label::new( - "Feel confident in the security and privacy of your projects using Zed.", - ) - .size(LabelSize::Small) - .color(Color::Muted), - ) - } - }) -} - -fn render_llm_provider_card( - onboarding: &Onboarding, - disabled: bool, - _: &mut Window, - cx: &mut App, -) -> impl IntoElement { - let registry = LanguageModelRegistry::read_global(cx); - - v_flex() - .border_1() - .border_color(cx.theme().colors().border) - .bg(cx.theme().colors().surface_background.opacity(0.5)) - .rounded_lg() - .overflow_hidden() - .children(itertools::intersperse_with( - FEATURED_PROVIDERS - .into_iter() - .flat_map(|provider_name| { - registry.provider(&LanguageModelProviderId::new(provider_name)) - }) - .enumerate() - .map(|(index, provider)| { - let group_name = SharedString::new(format!("onboarding-hover-group-{}", index)); - let is_authenticated = provider.is_authenticated(cx); - - ButtonLike::new(("onboarding-ai-setup-buttons", index)) - .size(ButtonSize::Large) - .child( - h_flex() - .group(&group_name) - .px_0p5() - .w_full() - .gap_2() - .justify_between() - .child( - h_flex() - .gap_1() - .child( - Icon::new(provider.icon()) - .color(Color::Muted) - .size(IconSize::XSmall), - ) - .child(Label::new(provider.name().0)), - ) - .child( - h_flex() - .gap_1() - .when(!is_authenticated, |el| { - el.visible_on_hover(group_name.clone()) - .child( - Icon::new(IconName::Settings) - .color(Color::Muted) - .size(IconSize::XSmall), - ) - .child( - Label::new("Configure") - .color(Color::Muted) - .size(LabelSize::Small), - ) - }) - .when(is_authenticated && !disabled, |el| { - el.child( - Icon::new(IconName::Check) - .color(Color::Success) - .size(IconSize::XSmall), - ) - .child( - Label::new("Configured") - .color(Color::Muted) - .size(LabelSize::Small), - ) - }), - ), - ) - .on_click({ - let workspace = onboarding.workspace.clone(); - move |_, window, cx| { - workspace - .update(cx, |workspace, cx| { - workspace.toggle_modal(window, cx, |window, cx| { - let modal = AiConfigurationModal::new( - provider.clone(), - window, - cx, - ); - window.focus(&modal.focus_handle(cx)); - modal - }); - }) - .log_err(); - } - }) - .into_any_element() - }), - || Divider::horizontal().into_any_element(), - )) - .child(Divider::horizontal()) - .child( - Button::new("agent_settings", "Add Many Others") - .size(ButtonSize::Large) - .icon(IconName::Plus) - .icon_position(IconPosition::Start) - .icon_color(Color::Muted) - .icon_size(IconSize::XSmall) - .on_click(|_event, window, cx| { - window.dispatch_action(OpenSettings.boxed_clone(), cx) - }), - ) -} - -pub(crate) fn render_ai_setup_page( - onboarding: &Onboarding, - window: &mut Window, - cx: &mut App, -) -> impl IntoElement { - let is_ai_disabled = DisableAiSettings::get_global(cx).disable_ai; - - let backdrop = div() - .id("backdrop") - .size_full() - .absolute() - .inset_0() - .bg(cx.theme().colors().editor_background) - .opacity(0.8) - .block_mouse_except_scroll(); - - v_flex() - .gap_2() - .child(SwitchField::new( - "enable_ai", - "Enable AI features", - None, - if is_ai_disabled { - ToggleState::Unselected - } else { - ToggleState::Selected - }, - |toggle_state, _, cx| { - let enabled = match toggle_state { - ToggleState::Indeterminate => { - return; - } - ToggleState::Unselected => false, - ToggleState::Selected => true, - }; - - let fs = <dyn Fs>::global(cx); - update_settings_file::<DisableAiSettings>( - fs, - cx, - move |ai_settings: &mut Option<bool>, _| { - *ai_settings = Some(!enabled); - }, - ); - }, - )) - .child(render_privacy_card(is_ai_disabled, cx)) - .child( - v_flex() - .mt_2() - .gap_6() - .child(AiUpsellCard { - sign_in_status: SignInStatus::SignedIn, - sign_in: Arc::new(|_, _| {}), - user_plan: onboarding.user_store.read(cx).plan(), - }) - .child(render_llm_provider_section( - onboarding, - is_ai_disabled, - window, - cx, - )) - .when(is_ai_disabled, |this| this.child(backdrop)), - ) -} - -struct AiConfigurationModal { - focus_handle: FocusHandle, - selected_provider: Arc<dyn LanguageModelProvider>, - configuration_view: AnyView, -} - -impl AiConfigurationModal { - fn new( - selected_provider: Arc<dyn LanguageModelProvider>, - window: &mut Window, - cx: &mut Context<Self>, - ) -> Self { - let focus_handle = cx.focus_handle(); - let configuration_view = selected_provider.configuration_view(window, cx); - - Self { - focus_handle, - configuration_view, - selected_provider, - } - } -} - -impl ModalView for AiConfigurationModal {} - -impl EventEmitter<DismissEvent> for AiConfigurationModal {} - -impl Focusable for AiConfigurationModal { - fn focus_handle(&self, _cx: &App) -> FocusHandle { - self.focus_handle.clone() - } -} - -impl Render for AiConfigurationModal { - fn render(&mut self, _window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { - v_flex() - .w(rems(34.)) - .elevation_3(cx) - .track_focus(&self.focus_handle) - .child( - Modal::new("onboarding-ai-setup-modal", None) - .header( - ModalHeader::new() - .icon( - Icon::new(self.selected_provider.icon()) - .color(Color::Muted) - .size(IconSize::Small), - ) - .headline(self.selected_provider.name().0), - ) - .section(Section::new().child(self.configuration_view.clone())) - .footer( - ModalFooter::new().end_slot( - h_flex() - .gap_1() - .child( - Button::new("onboarding-closing-cancel", "Cancel") - .on_click(cx.listener(|_, _, _, cx| cx.emit(DismissEvent))), - ) - .child(Button::new("save-btn", "Done").on_click(cx.listener( - |_, _, window, cx| { - window.dispatch_action(menu::Confirm.boxed_clone(), cx); - cx.emit(DismissEvent); - }, - ))), - ), - ), - ) - } -} diff --git a/crates/onboarding/src/basics_page.rs b/crates/onboarding/src/basics_page.rs deleted file mode 100644 index 82688e6220..0000000000 --- a/crates/onboarding/src/basics_page.rs +++ /dev/null @@ -1,351 +0,0 @@ -use client::TelemetrySettings; -use fs::Fs; -use gpui::{App, Entity, IntoElement, Window}; -use settings::{BaseKeymap, Settings, update_settings_file}; -use theme::{Appearance, ThemeMode, ThemeName, ThemeRegistry, ThemeSelection, ThemeSettings}; -use ui::{ - ParentElement as _, StatefulInteractiveElement, SwitchField, ToggleButtonGroup, - ToggleButtonSimple, ToggleButtonWithIcon, prelude::*, rems_from_px, -}; -use vim_mode_setting::VimModeSetting; - -use crate::theme_preview::ThemePreviewTile; - -/// separates theme "mode" ("dark" | "light" | "system") into two separate states -/// - appearance = "dark" | "light" -/// - "system" true/false -/// when system selected: -/// - toggling between light and dark does not change theme.mode, just which variant will be changed -/// when system not selected: -/// - toggling between light and dark does change theme.mode -/// selecting a theme preview will always change theme.["light" | "dark"] to the selected theme, -/// -/// this allows for selecting a dark and light theme option regardless of whether the mode is set to system or not -/// it does not support setting theme to a static value -fn render_theme_section(window: &mut Window, cx: &mut App) -> impl IntoElement { - let theme_selection = ThemeSettings::get_global(cx).theme_selection.clone(); - let system_appearance = theme::SystemAppearance::global(cx); - let appearance_state = window.use_state(cx, |_, _cx| { - theme_selection - .as_ref() - .and_then(|selection| selection.mode()) - .and_then(|mode| match mode { - ThemeMode::System => None, - ThemeMode::Light => Some(Appearance::Light), - ThemeMode::Dark => Some(Appearance::Dark), - }) - .unwrap_or(*system_appearance) - }); - let appearance = *appearance_state.read(cx); - let theme_selection = theme_selection.unwrap_or_else(|| ThemeSelection::Dynamic { - mode: match *system_appearance { - Appearance::Light => ThemeMode::Light, - Appearance::Dark => ThemeMode::Dark, - }, - light: ThemeName("One Light".into()), - dark: ThemeName("One Dark".into()), - }); - let theme_registry = ThemeRegistry::global(cx); - - let current_theme_name = theme_selection.theme(appearance); - let theme_mode = theme_selection.mode().unwrap_or_default(); - - // let theme_mode = theme_selection.mode(); - // TODO: Clean this up once the "System" button inside the - // toggle button group is done - - let selected_index = match appearance { - Appearance::Light => 0, - Appearance::Dark => 1, - }; - - let theme_seed = 0xBEEF as f32; - - const LIGHT_THEMES: [&'static str; 3] = ["One Light", "Ayu Light", "Gruvbox Light"]; - const DARK_THEMES: [&'static str; 3] = ["One Dark", "Ayu Dark", "Gruvbox Dark"]; - - let theme_names = match appearance { - Appearance::Light => LIGHT_THEMES, - Appearance::Dark => DARK_THEMES, - }; - let themes = theme_names - .map(|theme_name| theme_registry.get(theme_name)) - .map(Result::unwrap); - - let theme_previews = themes.map(|theme| { - let is_selected = theme.name == current_theme_name; - let name = theme.name.clone(); - let colors = cx.theme().colors(); - - v_flex() - .id(name.clone()) - .w_full() - .items_center() - .gap_1() - .child( - div() - .w_full() - .border_2() - .border_color(colors.border_transparent) - .rounded(ThemePreviewTile::CORNER_RADIUS) - .map(|this| { - if is_selected { - this.border_color(colors.border_selected) - } else { - this.opacity(0.8).hover(|s| s.border_color(colors.border)) - } - }) - .child(ThemePreviewTile::new(theme.clone(), theme_seed)), - ) - .child(Label::new(name).color(Color::Muted).size(LabelSize::Small)) - .on_click({ - let theme_name = theme.name.clone(); - move |_, _, cx| { - let fs = <dyn Fs>::global(cx); - let theme_name = theme_name.clone(); - update_settings_file::<ThemeSettings>(fs, cx, move |settings, _| { - settings.set_theme(theme_name, appearance); - }); - } - }) - }); - - return v_flex() - .gap_2() - .child( - h_flex().justify_between().child(Label::new("Theme")).child( - ToggleButtonGroup::single_row( - "theme-selector-onboarding-dark-light", - [ - ToggleButtonSimple::new("Light", { - let appearance_state = appearance_state.clone(); - move |_, _, cx| { - write_appearance_change(&appearance_state, Appearance::Light, cx); - } - }), - ToggleButtonSimple::new("Dark", { - let appearance_state = appearance_state.clone(); - move |_, _, cx| { - write_appearance_change(&appearance_state, Appearance::Dark, cx); - } - }), - // TODO: Properly put the System back as a button within this group - // Currently, given "System" is not an option in the Appearance enum, - // this button doesn't get selected - ToggleButtonSimple::new("System", { - let theme = theme_selection.clone(); - move |_, _, cx| { - toggle_system_theme_mode(theme.clone(), appearance, cx); - } - }) - .selected(theme_mode == ThemeMode::System), - ], - ) - .selected_index(selected_index) - .style(ui::ToggleButtonGroupStyle::Outlined) - .button_width(rems_from_px(64.)), - ), - ) - .child(h_flex().gap_4().justify_between().children(theme_previews)); - - fn write_appearance_change( - appearance_state: &Entity<Appearance>, - new_appearance: Appearance, - cx: &mut App, - ) { - let fs = <dyn Fs>::global(cx); - appearance_state.write(cx, new_appearance); - - update_settings_file::<ThemeSettings>(fs, cx, move |settings, _| { - if settings.theme.as_ref().and_then(ThemeSelection::mode) == Some(ThemeMode::System) { - return; - } - let new_mode = match new_appearance { - Appearance::Light => ThemeMode::Light, - Appearance::Dark => ThemeMode::Dark, - }; - settings.set_mode(new_mode); - }); - } - - fn toggle_system_theme_mode( - theme_selection: ThemeSelection, - appearance: Appearance, - cx: &mut App, - ) { - let fs = <dyn Fs>::global(cx); - - update_settings_file::<ThemeSettings>(fs, cx, move |settings, _| { - settings.theme = Some(match theme_selection { - ThemeSelection::Static(theme_name) => ThemeSelection::Dynamic { - mode: ThemeMode::System, - light: theme_name.clone(), - dark: theme_name.clone(), - }, - ThemeSelection::Dynamic { - mode: ThemeMode::System, - light, - dark, - } => { - let mode = match appearance { - Appearance::Light => ThemeMode::Light, - Appearance::Dark => ThemeMode::Dark, - }; - ThemeSelection::Dynamic { mode, light, dark } - } - ThemeSelection::Dynamic { - mode: _, - light, - dark, - } => ThemeSelection::Dynamic { - mode: ThemeMode::System, - light, - dark, - }, - }); - }); - } -} - -fn write_keymap_base(keymap_base: BaseKeymap, cx: &App) { - let fs = <dyn Fs>::global(cx); - - update_settings_file::<BaseKeymap>(fs, cx, move |setting, _| { - *setting = Some(keymap_base); - }); -} - -fn render_telemetry_section(cx: &App) -> impl IntoElement { - let fs = <dyn Fs>::global(cx); - - v_flex() - .gap_4() - .child(Label::new("Telemetry").size(LabelSize::Large)) - .child(SwitchField::new( - "onboarding-telemetry-metrics", - "Help Improve Zed", - Some("Sending anonymous usage data helps us build the right features and create the best experience.".into()), - if TelemetrySettings::get_global(cx).metrics { - ui::ToggleState::Selected - } else { - ui::ToggleState::Unselected - }, - { - let fs = fs.clone(); - move |selection, _, cx| { - let enabled = match selection { - ToggleState::Selected => true, - ToggleState::Unselected => false, - ToggleState::Indeterminate => { return; }, - }; - - update_settings_file::<TelemetrySettings>( - fs.clone(), - cx, - move |setting, _| setting.metrics = Some(enabled), - ); - }}, - )) - .child(SwitchField::new( - "onboarding-telemetry-crash-reports", - "Help Fix Zed", - Some("Send crash reports so we can fix critical issues fast.".into()), - if TelemetrySettings::get_global(cx).diagnostics { - ui::ToggleState::Selected - } else { - ui::ToggleState::Unselected - }, - { - let fs = fs.clone(); - move |selection, _, cx| { - let enabled = match selection { - ToggleState::Selected => true, - ToggleState::Unselected => false, - ToggleState::Indeterminate => { return; }, - }; - - update_settings_file::<TelemetrySettings>( - fs.clone(), - cx, - move |setting, _| setting.diagnostics = Some(enabled), - ); - } - } - )) -} - -pub(crate) fn render_basics_page(window: &mut Window, cx: &mut App) -> impl IntoElement { - let base_keymap = match BaseKeymap::get_global(cx) { - BaseKeymap::VSCode => Some(0), - BaseKeymap::JetBrains => Some(1), - BaseKeymap::SublimeText => Some(2), - BaseKeymap::Atom => Some(3), - BaseKeymap::Emacs => Some(4), - BaseKeymap::Cursor => Some(5), - BaseKeymap::TextMate | BaseKeymap::None => None, - }; - - v_flex() - .gap_6() - .child(render_theme_section(window, cx)) - .child( - v_flex().gap_2().child(Label::new("Base Keymap")).child( - ToggleButtonGroup::two_rows( - "multiple_row_test", - [ - ToggleButtonWithIcon::new("VS Code", IconName::EditorVsCode, |_, _, cx| { - write_keymap_base(BaseKeymap::VSCode, cx); - }), - ToggleButtonWithIcon::new("Jetbrains", IconName::EditorJetBrains, |_, _, cx| { - write_keymap_base(BaseKeymap::JetBrains, cx); - }), - ToggleButtonWithIcon::new("Sublime Text", IconName::EditorSublime, |_, _, cx| { - write_keymap_base(BaseKeymap::SublimeText, cx); - }), - ], - [ - ToggleButtonWithIcon::new("Atom", IconName::EditorAtom, |_, _, cx| { - write_keymap_base(BaseKeymap::Atom, cx); - }), - ToggleButtonWithIcon::new("Emacs", IconName::EditorEmacs, |_, _, cx| { - write_keymap_base(BaseKeymap::Emacs, cx); - }), - ToggleButtonWithIcon::new("Cursor (Beta)", IconName::EditorCursor, |_, _, cx| { - write_keymap_base(BaseKeymap::Cursor, cx); - }), - ], - ) - .when_some(base_keymap, |this, base_keymap| this.selected_index(base_keymap)) - .button_width(rems_from_px(216.)) - .size(ui::ToggleButtonGroupSize::Medium) - .style(ui::ToggleButtonGroupStyle::Outlined) - ), - ) - .child(SwitchField::new( - "onboarding-vim-mode", - "Vim Mode", - Some("Coming from Neovim? Zed's first-class implementation of Vim Mode has got your back.".into()), - if VimModeSetting::get_global(cx).0 { - ui::ToggleState::Selected - } else { - ui::ToggleState::Unselected - }, - { - let fs = <dyn Fs>::global(cx); - move |selection, _, cx| { - let enabled = match selection { - ToggleState::Selected => true, - ToggleState::Unselected => false, - ToggleState::Indeterminate => { return; }, - }; - - update_settings_file::<VimModeSetting>( - fs.clone(), - cx, - move |setting, _| *setting = Some(enabled), - ); - } - }, - )) - .child(render_telemetry_section(cx)) -} diff --git a/crates/onboarding/src/editing_page.rs b/crates/onboarding/src/editing_page.rs deleted file mode 100644 index 2972f41348..0000000000 --- a/crates/onboarding/src/editing_page.rs +++ /dev/null @@ -1,457 +0,0 @@ -use std::sync::Arc; - -use editor::{EditorSettings, ShowMinimap}; -use fs::Fs; -use gpui::{Action, App, FontFeatures, IntoElement, Pixels, Window}; -use language::language_settings::{AllLanguageSettings, FormatOnSave}; -use project::project_settings::ProjectSettings; -use settings::{Settings as _, update_settings_file}; -use theme::{FontFamilyCache, FontFamilyName, ThemeSettings}; -use ui::{ - ButtonLike, ContextMenu, DropdownMenu, NumericStepper, SwitchField, ToggleButtonGroup, - ToggleButtonGroupStyle, ToggleButtonSimple, ToggleState, prelude::*, -}; - -use crate::{ImportCursorSettings, ImportVsCodeSettings}; - -fn read_show_mini_map(cx: &App) -> ShowMinimap { - editor::EditorSettings::get_global(cx).minimap.show -} - -fn write_show_mini_map(show: ShowMinimap, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - - // This is used to speed up the UI - // the UI reads the current values to get what toggle state to show on buttons - // there's a slight delay if we just call update_settings_file so we manually set - // the value here then call update_settings file to get around the delay - let mut curr_settings = EditorSettings::get_global(cx).clone(); - curr_settings.minimap.show = show; - EditorSettings::override_global(curr_settings, cx); - - update_settings_file::<EditorSettings>(fs, cx, move |editor_settings, _| { - editor_settings.minimap.get_or_insert_default().show = Some(show); - }); -} - -fn read_inlay_hints(cx: &App) -> bool { - AllLanguageSettings::get_global(cx) - .defaults - .inlay_hints - .enabled -} - -fn write_inlay_hints(enabled: bool, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - - let mut curr_settings = AllLanguageSettings::get_global(cx).clone(); - curr_settings.defaults.inlay_hints.enabled = enabled; - AllLanguageSettings::override_global(curr_settings, cx); - - update_settings_file::<AllLanguageSettings>(fs, cx, move |all_language_settings, cx| { - all_language_settings - .defaults - .inlay_hints - .get_or_insert_with(|| { - AllLanguageSettings::get_global(cx) - .clone() - .defaults - .inlay_hints - }) - .enabled = enabled; - }); -} - -fn read_git_blame(cx: &App) -> bool { - ProjectSettings::get_global(cx).git.inline_blame_enabled() -} - -fn set_git_blame(enabled: bool, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - - let mut curr_settings = ProjectSettings::get_global(cx).clone(); - curr_settings - .git - .inline_blame - .get_or_insert_default() - .enabled = enabled; - ProjectSettings::override_global(curr_settings, cx); - - update_settings_file::<ProjectSettings>(fs, cx, move |project_settings, _| { - project_settings - .git - .inline_blame - .get_or_insert_default() - .enabled = enabled; - }); -} - -fn write_ui_font_family(font: SharedString, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - - update_settings_file::<ThemeSettings>(fs, cx, move |theme_settings, _| { - theme_settings.ui_font_family = Some(FontFamilyName(font.into())); - }); -} - -fn write_ui_font_size(size: Pixels, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - - update_settings_file::<ThemeSettings>(fs, cx, move |theme_settings, _| { - theme_settings.ui_font_size = Some(size.into()); - }); -} - -fn write_buffer_font_size(size: Pixels, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - - update_settings_file::<ThemeSettings>(fs, cx, move |theme_settings, _| { - theme_settings.buffer_font_size = Some(size.into()); - }); -} - -fn write_buffer_font_family(font_family: SharedString, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - - update_settings_file::<ThemeSettings>(fs, cx, move |theme_settings, _| { - theme_settings.buffer_font_family = Some(FontFamilyName(font_family.into())); - }); -} - -fn read_font_ligatures(cx: &App) -> bool { - ThemeSettings::get_global(cx) - .buffer_font - .features - .is_calt_enabled() - .unwrap_or(true) -} - -fn write_font_ligatures(enabled: bool, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - let bit = if enabled { 1 } else { 0 }; - - update_settings_file::<ThemeSettings>(fs, cx, move |theme_settings, _| { - let mut features = theme_settings - .buffer_font_features - .as_mut() - .map(|features| features.tag_value_list().to_vec()) - .unwrap_or_default(); - - if let Some(calt_index) = features.iter().position(|(tag, _)| tag == "calt") { - features[calt_index].1 = bit; - } else { - features.push(("calt".into(), bit)); - } - - theme_settings.buffer_font_features = Some(FontFeatures(Arc::new(features))); - }); -} - -fn read_format_on_save(cx: &App) -> bool { - match AllLanguageSettings::get_global(cx).defaults.format_on_save { - FormatOnSave::On | FormatOnSave::List(_) => true, - FormatOnSave::Off => false, - } -} - -fn write_format_on_save(format_on_save: bool, cx: &mut App) { - let fs = <dyn Fs>::global(cx); - - update_settings_file::<AllLanguageSettings>(fs, cx, move |language_settings, _| { - language_settings.defaults.format_on_save = Some(match format_on_save { - true => FormatOnSave::On, - false => FormatOnSave::Off, - }); - }); -} - -fn render_import_settings_section() -> impl IntoElement { - v_flex() - .gap_4() - .child( - v_flex() - .child(Label::new("Import Settings").size(LabelSize::Large)) - .child( - Label::new("Automatically pull your settings from other editors.") - .color(Color::Muted), - ), - ) - .child( - h_flex() - .w_full() - .gap_4() - .child( - h_flex().w_full().child( - ButtonLike::new("import_vs_code") - .full_width() - .style(ButtonStyle::Outlined) - .size(ButtonSize::Large) - .child( - h_flex() - .w_full() - .gap_1p5() - .px_1() - .child( - Icon::new(IconName::EditorVsCode) - .color(Color::Muted) - .size(IconSize::XSmall), - ) - .child(Label::new("VS Code")), - ) - .on_click(|_, window, cx| { - window.dispatch_action( - ImportVsCodeSettings::default().boxed_clone(), - cx, - ) - }), - ), - ) - .child( - h_flex().w_full().child( - ButtonLike::new("import_cursor") - .full_width() - .style(ButtonStyle::Outlined) - .size(ButtonSize::Large) - .child( - h_flex() - .w_full() - .gap_1p5() - .px_1() - .child( - Icon::new(IconName::EditorCursor) - .color(Color::Muted) - .size(IconSize::XSmall), - ) - .child(Label::new("Cursor")), - ) - .on_click(|_, window, cx| { - window.dispatch_action( - ImportCursorSettings::default().boxed_clone(), - cx, - ) - }), - ), - ), - ) -} - -fn render_font_customization_section(window: &mut Window, cx: &mut App) -> impl IntoElement { - let theme_settings = ThemeSettings::get_global(cx); - let ui_font_size = theme_settings.ui_font_size(cx); - let font_family = theme_settings.buffer_font.family.clone(); - let buffer_font_size = theme_settings.buffer_font_size(cx); - - h_flex() - .w_full() - .gap_4() - .child( - v_flex() - .w_full() - .gap_1() - .child(Label::new("UI Font")) - .child( - h_flex() - .w_full() - .justify_between() - .gap_2() - .child( - DropdownMenu::new( - "ui-font-family", - theme_settings.ui_font.family.clone(), - ContextMenu::build(window, cx, |mut menu, _, cx| { - let font_family_cache = FontFamilyCache::global(cx); - - for font_name in font_family_cache.list_font_families(cx) { - menu = menu.custom_entry( - { - let font_name = font_name.clone(); - move |_window, _cx| { - Label::new(font_name.clone()).into_any_element() - } - }, - { - let font_name = font_name.clone(); - move |_window, cx| { - write_ui_font_family(font_name.clone(), cx); - } - }, - ) - } - - menu - }), - ) - .style(ui::DropdownStyle::Outlined) - .full_width(true), - ) - .child( - NumericStepper::new( - "ui-font-size", - ui_font_size.to_string(), - move |_, _, cx| { - write_ui_font_size(ui_font_size - px(1.), cx); - }, - move |_, _, cx| { - write_ui_font_size(ui_font_size + px(1.), cx); - }, - ) - .style(ui::NumericStepperStyle::Outlined), - ), - ), - ) - .child( - v_flex() - .w_full() - .gap_1() - .child(Label::new("Editor Font")) - .child( - h_flex() - .w_full() - .justify_between() - .gap_2() - .child( - DropdownMenu::new( - "buffer-font-family", - font_family, - ContextMenu::build(window, cx, |mut menu, _, cx| { - let font_family_cache = FontFamilyCache::global(cx); - - for font_name in font_family_cache.list_font_families(cx) { - menu = menu.custom_entry( - { - let font_name = font_name.clone(); - move |_window, _cx| { - Label::new(font_name.clone()).into_any_element() - } - }, - { - let font_name = font_name.clone(); - move |_window, cx| { - write_buffer_font_family(font_name.clone(), cx); - } - }, - ) - } - - menu - }), - ) - .style(ui::DropdownStyle::Outlined) - .full_width(true), - ) - .child( - NumericStepper::new( - "buffer-font-size", - buffer_font_size.to_string(), - move |_, _, cx| { - write_buffer_font_size(buffer_font_size - px(1.), cx); - }, - move |_, _, cx| { - write_buffer_font_size(buffer_font_size + px(1.), cx); - }, - ) - .style(ui::NumericStepperStyle::Outlined), - ), - ), - ) -} - -fn render_popular_settings_section(window: &mut Window, cx: &mut App) -> impl IntoElement { - v_flex() - .gap_5() - .child(Label::new("Popular Settings").size(LabelSize::Large).mt_8()) - .child(render_font_customization_section(window, cx)) - .child(SwitchField::new( - "onboarding-font-ligatures", - "Font Ligatures", - Some("Combine text characters into their associated symbols.".into()), - if read_font_ligatures(cx) { - ui::ToggleState::Selected - } else { - ui::ToggleState::Unselected - }, - |toggle_state, _, cx| { - write_font_ligatures(toggle_state == &ToggleState::Selected, cx); - }, - )) - .child(SwitchField::new( - "onboarding-format-on-save", - "Format on Save", - Some("Format code automatically when saving.".into()), - if read_format_on_save(cx) { - ui::ToggleState::Selected - } else { - ui::ToggleState::Unselected - }, - |toggle_state, _, cx| { - write_format_on_save(toggle_state == &ToggleState::Selected, cx); - }, - )) - .child( - h_flex() - .items_start() - .justify_between() - .child( - v_flex().child(Label::new("Mini Map")).child( - Label::new("See a high-level overview of your source code.") - .color(Color::Muted), - ), - ) - .child( - ToggleButtonGroup::single_row( - "onboarding-show-mini-map", - [ - ToggleButtonSimple::new("Auto", |_, _, cx| { - write_show_mini_map(ShowMinimap::Auto, cx); - }), - ToggleButtonSimple::new("Always", |_, _, cx| { - write_show_mini_map(ShowMinimap::Always, cx); - }), - ToggleButtonSimple::new("Never", |_, _, cx| { - write_show_mini_map(ShowMinimap::Never, cx); - }), - ], - ) - .selected_index(match read_show_mini_map(cx) { - ShowMinimap::Auto => 0, - ShowMinimap::Always => 1, - ShowMinimap::Never => 2, - }) - .style(ToggleButtonGroupStyle::Outlined) - .button_width(ui::rems_from_px(64.)), - ), - ) - .child(SwitchField::new( - "onboarding-enable-inlay-hints", - "Inlay Hints", - Some("See parameter names for function and method calls inline.".into()), - if read_inlay_hints(cx) { - ui::ToggleState::Selected - } else { - ui::ToggleState::Unselected - }, - |toggle_state, _, cx| { - write_inlay_hints(toggle_state == &ToggleState::Selected, cx); - }, - )) - .child(SwitchField::new( - "onboarding-git-blame-switch", - "Git Blame", - Some("See who committed each line on a given file.".into()), - if read_git_blame(cx) { - ui::ToggleState::Selected - } else { - ui::ToggleState::Unselected - }, - |toggle_state, _, cx| { - set_git_blame(toggle_state == &ToggleState::Selected, cx); - }, - )) -} - -pub(crate) fn render_editing_page(window: &mut Window, cx: &mut App) -> impl IntoElement { - v_flex() - .gap_4() - .child(render_import_settings_section()) - .child(render_popular_settings_section(window, cx)) -} diff --git a/crates/onboarding/src/onboarding.rs b/crates/onboarding/src/onboarding.rs index f7e76f2f34..1ce236f941 100644 --- a/crates/onboarding/src/onboarding.rs +++ b/crates/onboarding/src/onboarding.rs @@ -1,60 +1,33 @@ -use crate::welcome::{ShowWelcome, WelcomePage}; -use client::{Client, UserStore}; use command_palette_hooks::CommandPaletteFilter; use db::kvp::KEY_VALUE_STORE; use feature_flags::{FeatureFlag, FeatureFlagViewExt as _}; use fs::Fs; use gpui::{ - Action, AnyElement, App, AppContext, AsyncWindowContext, Context, Entity, EventEmitter, - FocusHandle, Focusable, IntoElement, KeyContext, Render, SharedString, Subscription, Task, - WeakEntity, Window, actions, + AnyElement, App, AppContext, Context, Entity, EventEmitter, FocusHandle, Focusable, + IntoElement, Render, SharedString, Subscription, Task, WeakEntity, Window, actions, }; -use schemars::JsonSchema; -use serde::Deserialize; -use settings::{SettingsStore, VsCodeSettingsSource}; +use settings::{Settings, SettingsStore, update_settings_file}; use std::sync::Arc; +use theme::{ThemeMode, ThemeSettings}; use ui::{ - Avatar, ButtonLike, FluentBuilder, Headline, KeyBinding, ParentElement as _, - StatefulInteractiveElement, Vector, VectorName, prelude::*, rems_from_px, + ButtonCommon as _, ButtonSize, ButtonStyle, Clickable as _, Color, Divider, FluentBuilder, + Headline, InteractiveElement, KeyBinding, Label, LabelCommon, ParentElement as _, + StatefulInteractiveElement, Styled, ToggleButton, Toggleable as _, Vector, VectorName, div, + h_flex, rems, v_container, v_flex, }; use workspace::{ AppState, Workspace, WorkspaceId, dock::DockPosition, item::{Item, ItemEvent}, - notifications::NotifyResultExt as _, - open_new, register_serializable_item, with_active_or_new_workspace, + open_new, with_active_or_new_workspace, }; -mod ai_setup_page; -mod basics_page; -mod editing_page; -mod theme_preview; -mod welcome; - pub struct OnBoardingFeatureFlag {} impl FeatureFlag for OnBoardingFeatureFlag { const NAME: &'static str = "onboarding"; } -/// Imports settings from Visual Studio Code. -#[derive(Copy, Clone, Debug, Default, PartialEq, Deserialize, JsonSchema, Action)] -#[action(namespace = zed)] -#[serde(deny_unknown_fields)] -pub struct ImportVsCodeSettings { - #[serde(default)] - pub skip_prompt: bool, -} - -/// Imports settings from Cursor editor. -#[derive(Copy, Clone, Debug, Default, PartialEq, Deserialize, JsonSchema, Action)] -#[action(namespace = zed)] -#[serde(deny_unknown_fields)] -pub struct ImportCursorSettings { - #[serde(default)] - pub skip_prompt: bool, -} - pub const FIRST_OPEN: &str = "first_open"; actions!( @@ -65,18 +38,6 @@ actions!( ] ); -actions!( - onboarding, - [ - /// Activates the Basics page. - ActivateBasicsPage, - /// Activates the Editing page. - ActivateEditingPage, - /// Activates the AI Setup page. - ActivateAISetupPage, - ] -); - pub fn init(cx: &mut App) { cx.on_action(|_: &OpenOnboarding, cx| { with_active_or_new_workspace(cx, |workspace, window, cx| { @@ -91,7 +52,7 @@ pub fn init(cx: &mut App) { if let Some(existing) = existing { workspace.activate_item(&existing, true, true, window, cx); } else { - let settings_page = Onboarding::new(workspace, cx); + let settings_page = Onboarding::new(workspace.weak_handle(), cx); workspace.add_item_to_active_pane( Box::new(settings_page), None, @@ -104,80 +65,12 @@ pub fn init(cx: &mut App) { .detach(); }); }); - - cx.on_action(|_: &ShowWelcome, cx| { - with_active_or_new_workspace(cx, |workspace, window, cx| { - workspace - .with_local_workspace(window, cx, |workspace, window, cx| { - let existing = workspace - .active_pane() - .read(cx) - .items() - .find_map(|item| item.downcast::<WelcomePage>()); - - if let Some(existing) = existing { - workspace.activate_item(&existing, true, true, window, cx); - } else { - let settings_page = WelcomePage::new(window, cx); - workspace.add_item_to_active_pane( - Box::new(settings_page), - None, - true, - window, - cx, - ) - } - }) - .detach(); - }); - }); - - cx.observe_new(|workspace: &mut Workspace, _window, _cx| { - workspace.register_action(|_workspace, action: &ImportVsCodeSettings, window, cx| { - let fs = <dyn Fs>::global(cx); - let action = *action; - - window - .spawn(cx, async move |cx: &mut AsyncWindowContext| { - handle_import_vscode_settings( - VsCodeSettingsSource::VsCode, - action.skip_prompt, - fs, - cx, - ) - .await - }) - .detach(); - }); - - workspace.register_action(|_workspace, action: &ImportCursorSettings, window, cx| { - let fs = <dyn Fs>::global(cx); - let action = *action; - - window - .spawn(cx, async move |cx: &mut AsyncWindowContext| { - handle_import_vscode_settings( - VsCodeSettingsSource::Cursor, - action.skip_prompt, - fs, - cx, - ) - .await - }) - .detach(); - }); - }) - .detach(); - cx.observe_new::<Workspace>(|_, window, cx| { let Some(window) = window else { return; }; - let onboarding_actions = [ - std::any::TypeId::of::<OpenOnboarding>(), - std::any::TypeId::of::<ShowWelcome>(), - ]; + let onboarding_actions = [std::any::TypeId::of::<OpenOnboarding>()]; CommandPaletteFilter::update_global(cx, |filter, _cx| { filter.hide_action_types(&onboarding_actions); @@ -197,7 +90,6 @@ pub fn init(cx: &mut App) { .detach(); }) .detach(); - register_serializable_item::<Onboarding>(cx); } pub fn show_onboarding_view(app_state: Arc<AppState>, cx: &mut App) -> Task<anyhow::Result<()>> { @@ -208,7 +100,7 @@ pub fn show_onboarding_view(app_state: Arc<AppState>, cx: &mut App) -> Task<anyh |workspace, window, cx| { { workspace.toggle_dock(DockPosition::Left, window, cx); - let onboarding_page = Onboarding::new(workspace, cx); + let onboarding_page = Onboarding::new(workspace.weak_handle(), cx); workspace.add_item_to_center(Box::new(onboarding_page.clone()), window, cx); window.focus(&onboarding_page.focus_handle(cx)); @@ -222,6 +114,23 @@ pub fn show_onboarding_view(app_state: Arc<AppState>, cx: &mut App) -> Task<anyh ) } +fn read_theme_selection(cx: &App) -> ThemeMode { + let settings = ThemeSettings::get_global(cx); + settings + .theme_selection + .as_ref() + .and_then(|selection| selection.mode()) + .unwrap_or_default() +} + +fn write_theme_selection(theme_mode: ThemeMode, cx: &App) { + let fs = <dyn Fs>::global(cx); + + update_settings_file::<ThemeSettings>(fs, cx, move |settings, _| { + settings.set_mode(theme_mode); + }); +} + #[derive(Debug, Clone, Copy, PartialEq, Eq)] enum SelectedPage { Basics, @@ -233,278 +142,175 @@ struct Onboarding { workspace: WeakEntity<Workspace>, focus_handle: FocusHandle, selected_page: SelectedPage, - user_store: Entity<UserStore>, _settings_subscription: Subscription, } impl Onboarding { - fn new(workspace: &Workspace, cx: &mut App) -> Entity<Self> { + fn new(workspace: WeakEntity<Workspace>, cx: &mut App) -> Entity<Self> { cx.new(|cx| Self { - workspace: workspace.weak_handle(), + workspace, focus_handle: cx.focus_handle(), selected_page: SelectedPage::Basics, - user_store: workspace.user_store().clone(), _settings_subscription: cx.observe_global::<SettingsStore>(move |_, cx| cx.notify()), }) } - fn set_page(&mut self, page: SelectedPage, cx: &mut Context<Self>) { - self.selected_page = page; - cx.notify(); - cx.emit(ItemEvent::UpdateTab); - } - - fn render_nav_buttons( + fn render_page_nav( &mut self, - window: &mut Window, + page: SelectedPage, + _: &mut Window, cx: &mut Context<Self>, - ) -> [impl IntoElement; 3] { - let pages = [ - SelectedPage::Basics, - SelectedPage::Editing, - SelectedPage::AiSetup, - ]; - - let text = ["Basics", "Editing", "AI Setup"]; - - let actions: [&dyn Action; 3] = [ - &ActivateBasicsPage, - &ActivateEditingPage, - &ActivateAISetupPage, - ]; - - let mut binding = actions.map(|action| { - KeyBinding::for_action_in(action, &self.focus_handle, window, cx) - .map(|kb| kb.size(rems_from_px(12.))) - }); - - pages.map(|page| { - let i = page as usize; - let selected = self.selected_page == page; - h_flex() - .id(text[i]) - .relative() - .w_full() - .gap_2() - .px_2() - .py_0p5() - .justify_between() - .rounded_sm() - .when(selected, |this| { - this.child( - div() - .h_4() - .w_px() - .bg(cx.theme().colors().text_accent) - .absolute() - .left_0(), - ) - }) - .hover(|style| style.bg(cx.theme().colors().element_hover)) - .child(Label::new(text[i]).map(|this| { - if selected { - this.color(Color::Default) - } else { - this.color(Color::Muted) - } - })) - .child(binding[i].take().map_or( - gpui::Empty.into_any_element(), - IntoElement::into_any_element, - )) - .on_click(cx.listener(move |this, _, _, cx| { - this.set_page(page, cx); - })) - }) - } - - fn render_nav(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { - v_flex() - .h_full() - .w(rems_from_px(220.)) - .flex_shrink_0() - .gap_4() + ) -> impl IntoElement { + let text = match page { + SelectedPage::Basics => "Basics", + SelectedPage::Editing => "Editing", + SelectedPage::AiSetup => "AI Setup", + }; + let binding = match page { + SelectedPage::Basics => { + KeyBinding::new(vec![gpui::Keystroke::parse("cmd-1").unwrap()], cx) + } + SelectedPage::Editing => { + KeyBinding::new(vec![gpui::Keystroke::parse("cmd-2").unwrap()], cx) + } + SelectedPage::AiSetup => { + KeyBinding::new(vec![gpui::Keystroke::parse("cmd-3").unwrap()], cx) + } + }; + let selected = self.selected_page == page; + h_flex() + .id(text) + .rounded_sm() + .child(text) + .child(binding) + .h_8() + .gap_2() + .px_2() + .py_0p5() + .w_full() .justify_between() - .child( - v_flex() - .gap_6() - .child( - h_flex() - .px_2() - .gap_4() - .child(Vector::square(VectorName::ZedLogo, rems(2.5))) - .child( - v_flex() - .child( - Headline::new("Welcome to Zed").size(HeadlineSize::Small), - ) - .child( - Label::new("The editor for what's next") - .color(Color::Muted) - .size(LabelSize::Small) - .italic(), - ), - ), - ) - .child( - v_flex() - .gap_4() - .child( - v_flex() - .py_4() - .border_y_1() - .border_color(cx.theme().colors().border_variant.opacity(0.5)) - .gap_1() - .children(self.render_nav_buttons(window, cx)), - ) - .child( - ButtonLike::new("skip_all") - .child(Label::new("Skip All").ml_1()) - .on_click(|_, _, cx| { - with_active_or_new_workspace( - cx, - |workspace, window, cx| { - let Some((onboarding_id, onboarding_idx)) = - workspace - .active_pane() - .read(cx) - .items() - .enumerate() - .find_map(|(idx, item)| { - let _ = - item.downcast::<Onboarding>()?; - Some((item.item_id(), idx)) - }) - else { - return; - }; - - workspace.active_pane().update(cx, |pane, cx| { - // Get the index here to get around the borrow checker - let idx = pane.items().enumerate().find_map( - |(idx, item)| { - let _ = - item.downcast::<WelcomePage>()?; - Some(idx) - }, - ); - - if let Some(idx) = idx { - pane.activate_item( - idx, true, true, window, cx, - ); - } else { - let item = - Box::new(WelcomePage::new(window, cx)); - pane.add_item( - item, - true, - true, - Some(onboarding_idx), - window, - cx, - ); - } - - pane.remove_item( - onboarding_id, - false, - false, - window, - cx, - ); - }); - }, - ); - }), - ), - ), - ) - .child( - if let Some(user) = self.user_store.read(cx).current_user() { - h_flex() - .pl_1p5() - .gap_2() - .child(Avatar::new(user.avatar_uri.clone())) - .child(Label::new(user.github_login.clone())) - .into_any_element() + .map(|this| { + if selected { + this.bg(Color::Selected.color(cx)) + .border_l_1() + .border_color(Color::Accent.color(cx)) } else { - Button::new("sign_in", "Sign In") - .style(ButtonStyle::Outlined) - .full_width() - .on_click(|_, window, cx| { - let client = Client::global(cx); - window - .spawn(cx, async move |cx| { - client - .sign_in_with_optional_connect(true, &cx) - .await - .notify_async_err(cx); - }) - .detach(); - }) - .into_any_element() - }, - ) + this.text_color(Color::Muted.color(cx)) + } + }) + .hover(|style| { + if selected { + style.bg(Color::Selected.color(cx).opacity(0.6)) + } else { + style.bg(Color::Selected.color(cx).opacity(0.3)) + } + }) + .on_click(cx.listener(move |this, _, _, cx| { + this.selected_page = page; + cx.notify(); + })) } fn render_page(&mut self, window: &mut Window, cx: &mut Context<Self>) -> AnyElement { match self.selected_page { - SelectedPage::Basics => { - crate::basics_page::render_basics_page(window, cx).into_any_element() - } - SelectedPage::Editing => { - crate::editing_page::render_editing_page(window, cx).into_any_element() - } - SelectedPage::AiSetup => { - crate::ai_setup_page::render_ai_setup_page(&self, window, cx).into_any_element() - } + SelectedPage::Basics => self.render_basics_page(window, cx).into_any_element(), + SelectedPage::Editing => self.render_editing_page(window, cx).into_any_element(), + SelectedPage::AiSetup => self.render_ai_setup_page(window, cx).into_any_element(), } } + + fn render_basics_page(&mut self, _: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { + let theme_mode = read_theme_selection(cx); + + v_container().child( + h_flex() + .items_center() + .justify_between() + .child(Label::new("Theme")) + .child( + h_flex() + .rounded_md() + .child( + ToggleButton::new("light", "Light") + .style(ButtonStyle::Filled) + .size(ButtonSize::Large) + .toggle_state(theme_mode == ThemeMode::Light) + .on_click(|_, _, cx| write_theme_selection(ThemeMode::Light, cx)) + .first(), + ) + .child( + ToggleButton::new("dark", "Dark") + .style(ButtonStyle::Filled) + .size(ButtonSize::Large) + .toggle_state(theme_mode == ThemeMode::Dark) + .on_click(|_, _, cx| write_theme_selection(ThemeMode::Dark, cx)) + .last(), + ) + .child( + ToggleButton::new("system", "System") + .style(ButtonStyle::Filled) + .size(ButtonSize::Large) + .toggle_state(theme_mode == ThemeMode::System) + .on_click(|_, _, cx| write_theme_selection(ThemeMode::System, cx)) + .middle(), + ), + ), + ) + } + + fn render_editing_page(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement { + // div().child("editing page") + "Right" + } + + fn render_ai_setup_page(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement { + div().child("ai setup page") + } } impl Render for Onboarding { fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { h_flex() .image_cache(gpui::retain_all("onboarding-page")) - .key_context({ - let mut ctx = KeyContext::new_with_defaults(); - ctx.add("Onboarding"); - ctx - }) - .track_focus(&self.focus_handle) - .size_full() - .bg(cx.theme().colors().editor_background) - .on_action(cx.listener(|this, _: &ActivateBasicsPage, _, cx| { - this.set_page(SelectedPage::Basics, cx); - })) - .on_action(cx.listener(|this, _: &ActivateEditingPage, _, cx| { - this.set_page(SelectedPage::Editing, cx); - })) - .on_action(cx.listener(|this, _: &ActivateAISetupPage, _, cx| { - this.set_page(SelectedPage::AiSetup, cx); - })) + .key_context("onboarding-page") + .px_24() + .py_12() + .items_start() .child( - h_flex() - .max_w(rems_from_px(1100.)) - .size_full() - .m_auto() - .py_20() - .px_12() - .items_start() - .gap_12() - .child(self.render_nav(window, cx)) + v_flex() + .w_1_3() + .h_full() .child( - v_flex() - .max_w_full() - .min_w_0() - .pl_12() - .border_l_1() - .border_color(cx.theme().colors().border_variant.opacity(0.5)) - .size_full() - .child(self.render_page(window, cx)), + h_flex() + .pt_0p5() + .child(Vector::square(VectorName::ZedLogo, rems(2.))) + .child( + v_flex() + .left_1() + .items_center() + .child(Headline::new("Welcome to Zed")) + .child( + Label::new("The editor for what's next") + .color(Color::Muted) + .italic(), + ), + ), + ) + .p_1() + .child(Divider::horizontal_dashed()) + .child( + v_flex().gap_1().children([ + self.render_page_nav(SelectedPage::Basics, window, cx) + .into_element(), + self.render_page_nav(SelectedPage::Editing, window, cx) + .into_element(), + self.render_page_nav(SelectedPage::AiSetup, window, cx) + .into_element(), + ]), ), ) + // .child(Divider::vertical_dashed()) + .child(div().w_2_3().h_full().child(self.render_page(window, cx))) } } @@ -537,185 +343,10 @@ impl Item for Onboarding { _: &mut Window, cx: &mut Context<Self>, ) -> Option<Entity<Self>> { - self.workspace - .update(cx, |workspace, cx| Onboarding::new(workspace, cx)) - .ok() + Some(Onboarding::new(self.workspace.clone(), cx)) } fn to_item_events(event: &Self::Event, mut f: impl FnMut(workspace::item::ItemEvent)) { f(*event) } } - -pub async fn handle_import_vscode_settings( - source: VsCodeSettingsSource, - skip_prompt: bool, - fs: Arc<dyn Fs>, - cx: &mut AsyncWindowContext, -) { - use util::truncate_and_remove_front; - - let vscode_settings = - match settings::VsCodeSettings::load_user_settings(source, fs.clone()).await { - Ok(vscode_settings) => vscode_settings, - Err(err) => { - zlog::error!("{err}"); - let _ = cx.prompt( - gpui::PromptLevel::Info, - &format!("Could not find or load a {source} settings file"), - None, - &["Ok"], - ); - return; - } - }; - - if !skip_prompt { - let prompt = cx.prompt( - gpui::PromptLevel::Warning, - &format!( - "Importing {} settings may overwrite your existing settings. \ - Will import settings from {}", - vscode_settings.source, - truncate_and_remove_front(&vscode_settings.path.to_string_lossy(), 128), - ), - None, - &["Ok", "Cancel"], - ); - let result = cx.spawn(async move |_| prompt.await.ok()).await; - if result != Some(0) { - return; - } - }; - - cx.update(|_, cx| { - let source = vscode_settings.source; - let path = vscode_settings.path.clone(); - cx.global::<SettingsStore>() - .import_vscode_settings(fs, vscode_settings); - zlog::info!("Imported {source} settings from {}", path.display()); - }) - .ok(); -} - -impl workspace::SerializableItem for Onboarding { - fn serialized_item_kind() -> &'static str { - "OnboardingPage" - } - - fn cleanup( - workspace_id: workspace::WorkspaceId, - alive_items: Vec<workspace::ItemId>, - _window: &mut Window, - cx: &mut App, - ) -> gpui::Task<gpui::Result<()>> { - workspace::delete_unloaded_items( - alive_items, - workspace_id, - "onboarding_pages", - &persistence::ONBOARDING_PAGES, - cx, - ) - } - - fn deserialize( - _project: Entity<project::Project>, - workspace: WeakEntity<Workspace>, - workspace_id: workspace::WorkspaceId, - item_id: workspace::ItemId, - window: &mut Window, - cx: &mut App, - ) -> gpui::Task<gpui::Result<Entity<Self>>> { - window.spawn(cx, async move |cx| { - if let Some(page_number) = - persistence::ONBOARDING_PAGES.get_onboarding_page(item_id, workspace_id)? - { - let page = match page_number { - 0 => Some(SelectedPage::Basics), - 1 => Some(SelectedPage::Editing), - 2 => Some(SelectedPage::AiSetup), - _ => None, - }; - workspace.update(cx, |workspace, cx| { - let onboarding_page = Onboarding::new(workspace, cx); - if let Some(page) = page { - zlog::info!("Onboarding page {page:?} loaded"); - onboarding_page.update(cx, |onboarding_page, cx| { - onboarding_page.set_page(page, cx); - }) - } - onboarding_page - }) - } else { - Err(anyhow::anyhow!("No onboarding page to deserialize")) - } - }) - } - - fn serialize( - &mut self, - workspace: &mut Workspace, - item_id: workspace::ItemId, - _closing: bool, - _window: &mut Window, - cx: &mut ui::Context<Self>, - ) -> Option<gpui::Task<gpui::Result<()>>> { - let workspace_id = workspace.database_id()?; - let page_number = self.selected_page as u16; - Some(cx.background_spawn(async move { - persistence::ONBOARDING_PAGES - .save_onboarding_page(item_id, workspace_id, page_number) - .await - })) - } - - fn should_serialize(&self, event: &Self::Event) -> bool { - event == &ItemEvent::UpdateTab - } -} - -mod persistence { - use db::{define_connection, query, sqlez_macros::sql}; - use workspace::WorkspaceDb; - - define_connection! { - pub static ref ONBOARDING_PAGES: OnboardingPagesDb<WorkspaceDb> = - &[ - sql!( - CREATE TABLE onboarding_pages ( - workspace_id INTEGER, - item_id INTEGER UNIQUE, - page_number INTEGER, - - PRIMARY KEY(workspace_id, item_id), - FOREIGN KEY(workspace_id) REFERENCES workspaces(workspace_id) - ON DELETE CASCADE - ) STRICT; - ), - ]; - } - - impl OnboardingPagesDb { - query! { - pub async fn save_onboarding_page( - item_id: workspace::ItemId, - workspace_id: workspace::WorkspaceId, - page_number: u16 - ) -> Result<()> { - INSERT OR REPLACE INTO onboarding_pages(item_id, workspace_id, page_number) - VALUES (?, ?, ?) - } - } - - query! { - pub fn get_onboarding_page( - item_id: workspace::ItemId, - workspace_id: workspace::WorkspaceId - ) -> Result<Option<u16>> { - SELECT page_number - FROM onboarding_pages - WHERE item_id = ? AND workspace_id = ? - } - } - } -} diff --git a/crates/onboarding/src/welcome.rs b/crates/onboarding/src/welcome.rs deleted file mode 100644 index 3d2c034367..0000000000 --- a/crates/onboarding/src/welcome.rs +++ /dev/null @@ -1,336 +0,0 @@ -use gpui::{ - Action, App, Context, Entity, EventEmitter, FocusHandle, Focusable, InteractiveElement, - NoAction, ParentElement, Render, Styled, Window, actions, -}; -use ui::{ButtonLike, Divider, DividerColor, KeyBinding, Vector, VectorName, prelude::*}; -use workspace::{ - NewFile, Open, WorkspaceId, - item::{Item, ItemEvent}, - with_active_or_new_workspace, -}; -use zed_actions::{Extensions, OpenSettings, agent, command_palette}; - -use crate::{Onboarding, OpenOnboarding}; - -actions!( - zed, - [ - /// Show the Zed welcome screen - ShowWelcome - ] -); - -const CONTENT: (Section<4>, Section<3>) = ( - Section { - title: "Get Started", - entries: [ - SectionEntry { - icon: IconName::Plus, - title: "New File", - action: &NewFile, - }, - SectionEntry { - icon: IconName::FolderOpen, - title: "Open Project", - action: &Open, - }, - SectionEntry { - icon: IconName::CloudDownload, - title: "Clone a Repo", - // TODO: use proper action - action: &NoAction, - }, - SectionEntry { - icon: IconName::ListCollapse, - title: "Open Command Palette", - action: &command_palette::Toggle, - }, - ], - }, - Section { - title: "Configure", - entries: [ - SectionEntry { - icon: IconName::Settings, - title: "Open Settings", - action: &OpenSettings, - }, - SectionEntry { - icon: IconName::ZedAssistant, - title: "View AI Settings", - action: &agent::OpenSettings, - }, - SectionEntry { - icon: IconName::Blocks, - title: "Explore Extensions", - action: &Extensions { - category_filter: None, - id: None, - }, - }, - ], - }, -); - -struct Section<const COLS: usize> { - title: &'static str, - entries: [SectionEntry; COLS], -} - -impl<const COLS: usize> Section<COLS> { - fn render( - self, - index_offset: usize, - focus: &FocusHandle, - window: &mut Window, - cx: &mut App, - ) -> impl IntoElement { - v_flex() - .min_w_full() - .gap_2() - .child( - h_flex() - .px_1() - .gap_4() - .child( - Label::new(self.title.to_ascii_uppercase()) - .buffer_font(cx) - .color(Color::Muted) - .size(LabelSize::XSmall), - ) - .child(Divider::horizontal().color(DividerColor::Border)), - ) - .children( - self.entries - .iter() - .enumerate() - .map(|(index, entry)| entry.render(index_offset + index, &focus, window, cx)), - ) - } -} - -struct SectionEntry { - icon: IconName, - title: &'static str, - action: &'static dyn Action, -} - -impl SectionEntry { - fn render( - &self, - button_index: usize, - focus: &FocusHandle, - window: &Window, - cx: &App, - ) -> impl IntoElement { - ButtonLike::new(("onboarding-button-id", button_index)) - .full_width() - .child( - h_flex() - .w_full() - .gap_1() - .justify_between() - .child( - h_flex() - .gap_2() - .child( - Icon::new(self.icon) - .color(Color::Muted) - .size(IconSize::XSmall), - ) - .child(Label::new(self.title)), - ) - .children(KeyBinding::for_action_in(self.action, focus, window, cx)), - ) - .on_click(|_, window, cx| window.dispatch_action(self.action.boxed_clone(), cx)) - } -} - -pub struct WelcomePage { - focus_handle: FocusHandle, -} - -impl Render for WelcomePage { - fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { - let (first_section, second_entries) = CONTENT; - let first_section_entries = first_section.entries.len(); - - h_flex() - .size_full() - .justify_center() - .overflow_hidden() - .bg(cx.theme().colors().editor_background) - .key_context("Welcome") - .track_focus(&self.focus_handle(cx)) - .child( - h_flex() - .px_12() - .py_40() - .size_full() - .relative() - .max_w(px(1100.)) - .child( - div() - .size_full() - .max_w_128() - .mx_auto() - .child( - h_flex() - .w_full() - .justify_center() - .gap_4() - .child(Vector::square(VectorName::ZedLogo, rems(2.))) - .child( - div().child(Headline::new("Welcome to Zed")).child( - Label::new("The editor for what's next") - .size(LabelSize::Small) - .color(Color::Muted) - .italic(), - ), - ), - ) - .child( - v_flex() - .mt_12() - .gap_8() - .child(first_section.render( - Default::default(), - &self.focus_handle, - window, - cx, - )) - .child(second_entries.render( - first_section_entries, - &self.focus_handle, - window, - cx, - )) - .child( - h_flex() - .w_full() - .pt_4() - .justify_center() - // We call this a hack - .rounded_b_xs() - .border_t_1() - .border_color(DividerColor::Border.hsla(cx)) - .border_dashed() - .child( - div().child( - Button::new("welcome-exit", "Return to Setup") - .full_width() - .label_size(LabelSize::XSmall) - .on_click(|_, window, cx| { - window.dispatch_action( - OpenOnboarding.boxed_clone(), - cx, - ); - - with_active_or_new_workspace(cx, |workspace, window, cx| { - let Some((welcome_id, welcome_idx)) = workspace - .active_pane() - .read(cx) - .items() - .enumerate() - .find_map(|(idx, item)| { - let _ = item.downcast::<WelcomePage>()?; - Some((item.item_id(), idx)) - }) - else { - return; - }; - - workspace.active_pane().update(cx, |pane, cx| { - // Get the index here to get around the borrow checker - let idx = pane.items().enumerate().find_map( - |(idx, item)| { - let _ = - item.downcast::<Onboarding>()?; - Some(idx) - }, - ); - - if let Some(idx) = idx { - pane.activate_item( - idx, true, true, window, cx, - ); - } else { - let item = - Box::new(Onboarding::new(workspace, cx)); - pane.add_item( - item, - true, - true, - Some(welcome_idx), - window, - cx, - ); - } - - pane.remove_item( - welcome_id, - false, - false, - window, - cx, - ); - }); - }); - }), - ), - ), - ), - ), - ), - ) - } -} - -impl WelcomePage { - pub fn new(window: &mut Window, cx: &mut App) -> Entity<Self> { - cx.new(|cx| { - let focus_handle = cx.focus_handle(); - cx.on_focus(&focus_handle, window, |_, _, cx| cx.notify()) - .detach(); - - WelcomePage { focus_handle } - }) - } -} - -impl EventEmitter<ItemEvent> for WelcomePage {} - -impl Focusable for WelcomePage { - fn focus_handle(&self, _: &App) -> gpui::FocusHandle { - self.focus_handle.clone() - } -} - -impl Item for WelcomePage { - type Event = ItemEvent; - - fn tab_content_text(&self, _detail: usize, _cx: &App) -> SharedString { - "Welcome".into() - } - - fn telemetry_event_text(&self) -> Option<&'static str> { - Some("New Welcome Page Opened") - } - - fn show_toolbar(&self) -> bool { - false - } - - fn clone_on_split( - &self, - _workspace_id: Option<WorkspaceId>, - _: &mut Window, - _: &mut Context<Self>, - ) -> Option<Entity<Self>> { - None - } - - fn to_item_events(event: &Self::Event, mut f: impl FnMut(workspace::item::ItemEvent)) { - f(*event) - } -} diff --git a/crates/outline_panel/src/outline_panel.rs b/crates/outline_panel/src/outline_panel.rs index ad96670db9..12dcab9e87 100644 --- a/crates/outline_panel/src/outline_panel.rs +++ b/crates/outline_panel/src/outline_panel.rs @@ -1,5 +1,19 @@ mod outline_panel_settings; +use std::{ + cmp, + collections::BTreeMap, + hash::Hash, + ops::Range, + path::{MAIN_SEPARATOR_STR, Path, PathBuf}, + sync::{ + Arc, OnceLock, + atomic::{self, AtomicBool}, + }, + time::Duration, + u32, +}; + use anyhow::Context as _; use collections::{BTreeSet, HashMap, HashSet, hash_map}; use db::kvp::KEY_VALUE_STORE; @@ -22,21 +36,8 @@ use gpui::{ uniform_list, }; use itertools::Itertools; -use language::{Anchor, BufferId, BufferSnapshot, OffsetRangeExt, OutlineItem}; +use language::{BufferId, BufferSnapshot, OffsetRangeExt, OutlineItem}; use menu::{Cancel, SelectFirst, SelectLast, SelectNext, SelectPrevious}; -use std::{ - cmp, - collections::BTreeMap, - hash::Hash, - ops::Range, - path::{MAIN_SEPARATOR_STR, Path, PathBuf}, - sync::{ - Arc, OnceLock, - atomic::{self, AtomicBool}, - }, - time::Duration, - u32, -}; use outline_panel_settings::{OutlinePanelDockPosition, OutlinePanelSettings, ShowIndentGuides}; use project::{File, Fs, GitEntry, GitTraversal, Project, ProjectItem}; @@ -131,8 +132,6 @@ pub struct OutlinePanel { hide_scrollbar_task: Option<Task<()>>, max_width_item_index: Option<usize>, preserve_selection_on_buffer_fold_toggles: HashSet<BufferId>, - pending_default_expansion_depth: Option<usize>, - outline_children_cache: HashMap<BufferId, HashMap<(Range<Anchor>, usize), bool>>, } #[derive(Debug)] @@ -319,13 +318,12 @@ struct CachedEntry { entry: PanelEntry, } -#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] enum CollapsedEntry { Dir(WorktreeId, ProjectEntryId), File(WorktreeId, BufferId), ExternalFile(BufferId), Excerpt(BufferId, ExcerptId), - Outline(BufferId, ExcerptId, Range<Anchor>), } #[derive(Debug)] @@ -805,56 +803,8 @@ impl OutlinePanel { outline_panel.update_cached_entries(Some(UPDATE_DEBOUNCE), window, cx); } } else if &outline_panel_settings != new_settings { - let old_expansion_depth = outline_panel_settings.expand_outlines_with_depth; outline_panel_settings = *new_settings; - - if old_expansion_depth != new_settings.expand_outlines_with_depth { - let old_collapsed_entries = outline_panel.collapsed_entries.clone(); - outline_panel - .collapsed_entries - .retain(|entry| !matches!(entry, CollapsedEntry::Outline(..))); - - let new_depth = new_settings.expand_outlines_with_depth; - - for (buffer_id, excerpts) in &outline_panel.excerpts { - for (excerpt_id, excerpt) in excerpts { - if let ExcerptOutlines::Outlines(outlines) = &excerpt.outlines { - for outline in outlines { - if outline_panel - .outline_children_cache - .get(buffer_id) - .and_then(|children_map| { - let key = - (outline.range.clone(), outline.depth); - children_map.get(&key) - }) - .copied() - .unwrap_or(false) - && (new_depth == 0 || outline.depth >= new_depth) - { - outline_panel.collapsed_entries.insert( - CollapsedEntry::Outline( - *buffer_id, - *excerpt_id, - outline.range.clone(), - ), - ); - } - } - } - } - } - - if old_collapsed_entries != outline_panel.collapsed_entries { - outline_panel.update_cached_entries( - Some(UPDATE_DEBOUNCE), - window, - cx, - ); - } - } else { - cx.notify(); - } + cx.notify(); } }); @@ -891,7 +841,6 @@ impl OutlinePanel { updating_cached_entries: false, new_entries_for_fs_update: HashSet::default(), preserve_selection_on_buffer_fold_toggles: HashSet::default(), - pending_default_expansion_depth: None, fs_entries_update_task: Task::ready(()), cached_entries_update_task: Task::ready(()), reveal_selection_task: Task::ready(Ok(())), @@ -906,7 +855,6 @@ impl OutlinePanel { workspace_subscription, filter_update_subscription, ], - outline_children_cache: HashMap::default(), }; if let Some((item, editor)) = workspace_active_editor(workspace, cx) { outline_panel.replace_active_editor(item, editor, window, cx); @@ -1041,7 +989,7 @@ impl OutlinePanel { fn open_excerpts( &mut self, - action: &editor::actions::OpenExcerpts, + action: &editor::OpenExcerpts, window: &mut Window, cx: &mut Context<Self>, ) { @@ -1057,7 +1005,7 @@ impl OutlinePanel { fn open_excerpts_split( &mut self, - action: &editor::actions::OpenExcerptsSplit, + action: &editor::OpenExcerptsSplit, window: &mut Window, cx: &mut Context<Self>, ) { @@ -1514,12 +1462,7 @@ impl OutlinePanel { PanelEntry::Outline(OutlineEntry::Excerpt(excerpt)) => { Some(CollapsedEntry::Excerpt(excerpt.buffer_id, excerpt.id)) } - PanelEntry::Outline(OutlineEntry::Outline(outline)) => Some(CollapsedEntry::Outline( - outline.buffer_id, - outline.excerpt_id, - outline.outline.range.clone(), - )), - PanelEntry::Search(_) => return, + PanelEntry::Search(_) | PanelEntry::Outline(..) => return, }; let Some(collapsed_entry) = entry_to_expand else { return; @@ -1622,14 +1565,7 @@ impl OutlinePanel { PanelEntry::Outline(OutlineEntry::Excerpt(excerpt)) => self .collapsed_entries .insert(CollapsedEntry::Excerpt(excerpt.buffer_id, excerpt.id)), - PanelEntry::Outline(OutlineEntry::Outline(outline)) => { - self.collapsed_entries.insert(CollapsedEntry::Outline( - outline.buffer_id, - outline.excerpt_id, - outline.outline.range.clone(), - )) - } - PanelEntry::Search(_) => false, + PanelEntry::Search(_) | PanelEntry::Outline(..) => false, }; if collapsed { @@ -1844,17 +1780,7 @@ impl OutlinePanel { self.collapsed_entries.insert(collapsed_entry); } } - PanelEntry::Outline(OutlineEntry::Outline(outline)) => { - let collapsed_entry = CollapsedEntry::Outline( - outline.buffer_id, - outline.excerpt_id, - outline.outline.range.clone(), - ); - if !self.collapsed_entries.remove(&collapsed_entry) { - self.collapsed_entries.insert(collapsed_entry); - } - } - _ => {} + PanelEntry::Search(_) | PanelEntry::Outline(..) => return, } active_editor.update(cx, |editor, cx| { @@ -2182,7 +2108,7 @@ impl OutlinePanel { PanelEntry::Outline(OutlineEntry::Excerpt(excerpt.clone())), item_id, depth, - icon, + Some(icon), is_active, label_element, window, @@ -2234,31 +2160,10 @@ impl OutlinePanel { _ => false, }; - let has_children = self - .outline_children_cache - .get(&outline.buffer_id) - .and_then(|children_map| { - let key = (outline.outline.range.clone(), outline.outline.depth); - children_map.get(&key) - }) - .copied() - .unwrap_or(false); - let is_expanded = !self.collapsed_entries.contains(&CollapsedEntry::Outline( - outline.buffer_id, - outline.excerpt_id, - outline.outline.range.clone(), - )); - - let icon = if has_children { - FileIcons::get_chevron_icon(is_expanded, cx) - .map(|icon_path| { - Icon::from_path(icon_path) - .color(entry_label_color(is_active)) - .into_any_element() - }) - .unwrap_or_else(empty_icon) + let icon = if self.is_singleton_active(cx) { + None } else { - empty_icon() + Some(empty_icon()) }; self.entry_element( @@ -2382,7 +2287,7 @@ impl OutlinePanel { PanelEntry::Fs(rendered_entry.clone()), item_id, depth, - icon, + Some(icon), is_active, label_element, window, @@ -2453,7 +2358,7 @@ impl OutlinePanel { PanelEntry::FoldedDirs(folded_dir.clone()), item_id, depth, - icon, + Some(icon), is_active, label_element, window, @@ -2544,7 +2449,7 @@ impl OutlinePanel { }), ElementId::from(SharedString::from(format!("search-{match_range:?}"))), depth, - empty_icon(), + None, is_active, entire_label, window, @@ -2557,7 +2462,7 @@ impl OutlinePanel { rendered_entry: PanelEntry, item_id: ElementId, depth: usize, - icon_element: AnyElement, + icon_element: Option<AnyElement>, is_active: bool, label_element: gpui::AnyElement, window: &mut Window, @@ -2573,10 +2478,8 @@ impl OutlinePanel { if event.down.button == MouseButton::Right || event.down.first_mouse { return; } - let change_focus = event.down.click_count > 1; outline_panel.toggle_expanded(&clicked_entry, window, cx); - outline_panel.scroll_editor_to_entry( &clicked_entry, true, @@ -2592,11 +2495,10 @@ impl OutlinePanel { .indent_level(depth) .indent_step_size(px(settings.indent_size)) .toggle_state(is_active) - .child( - h_flex() - .child(h_flex().w(px(16.)).justify_center().child(icon_element)) - .child(h_flex().h_6().child(label_element).ml_1()), - ) + .when_some(icon_element, |list_item, icon_element| { + list_item.child(h_flex().child(icon_element)) + }) + .child(h_flex().h_6().child(label_element).ml_1()) .on_secondary_mouse_down(cx.listener( move |outline_panel, event: &MouseDownEvent, window, cx| { // Stop propagation to prevent the catch-all context menu for the project @@ -3038,12 +2940,7 @@ impl OutlinePanel { outline_panel.fs_entries_depth = new_depth_map; outline_panel.fs_children_count = new_children_count; outline_panel.update_non_fs_items(window, cx); - - // Only update cached entries if we don't have outlines to fetch - // If we do have outlines to fetch, let fetch_outdated_outlines handle the update - if outline_panel.excerpt_fetch_ranges(cx).is_empty() { - outline_panel.update_cached_entries(debounce, window, cx); - } + outline_panel.update_cached_entries(debounce, window, cx); cx.notify(); }) @@ -3059,12 +2956,6 @@ impl OutlinePanel { cx: &mut Context<Self>, ) { self.clear_previous(window, cx); - - let default_expansion_depth = - OutlinePanelSettings::get_global(cx).expand_outlines_with_depth; - // We'll apply the expansion depth after outlines are loaded - self.pending_default_expansion_depth = Some(default_expansion_depth); - let buffer_search_subscription = cx.subscribe_in( &new_active_editor, window, @@ -3113,7 +3004,6 @@ impl OutlinePanel { self.selected_entry = SelectedEntry::None; self.pinned = false; self.mode = ItemsDisplayMode::Outline; - self.pending_default_expansion_depth = None; } fn location_for_editor_selection( @@ -3369,74 +3259,25 @@ impl OutlinePanel { || buffer_language.as_ref() == buffer_snapshot.language_at(outline.range.start) }); - - let outlines_with_children = outlines - .windows(2) - .filter_map(|window| { - let current = &window[0]; - let next = &window[1]; - if next.depth > current.depth { - Some((current.range.clone(), current.depth)) - } else { - None - } - }) - .collect::<HashSet<_>>(); - - (outlines, outlines_with_children) + outlines }) .await; - - let (fetched_outlines, outlines_with_children) = fetched_outlines; - outline_panel .update_in(cx, |outline_panel, window, cx| { - let pending_default_depth = - outline_panel.pending_default_expansion_depth.take(); - - let debounce = - if first_update.fetch_and(false, atomic::Ordering::AcqRel) { - None - } else { - Some(UPDATE_DEBOUNCE) - }; - if let Some(excerpt) = outline_panel .excerpts .entry(buffer_id) .or_default() .get_mut(&excerpt_id) { + let debounce = if first_update + .fetch_and(false, atomic::Ordering::AcqRel) + { + None + } else { + Some(UPDATE_DEBOUNCE) + }; excerpt.outlines = ExcerptOutlines::Outlines(fetched_outlines); - - if let Some(default_depth) = pending_default_depth { - if let ExcerptOutlines::Outlines(outlines) = - &excerpt.outlines - { - outlines - .iter() - .filter(|outline| { - (default_depth == 0 - || outline.depth >= default_depth) - && outlines_with_children.contains(&( - outline.range.clone(), - outline.depth, - )) - }) - .for_each(|outline| { - outline_panel.collapsed_entries.insert( - CollapsedEntry::Outline( - buffer_id, - excerpt_id, - outline.range.clone(), - ), - ); - }); - } - } - - // Even if no outlines to check, we still need to update cached entries - // to show the outline entries that were just fetched outline_panel.update_cached_entries(debounce, window, cx); } }) @@ -4242,7 +4083,7 @@ impl OutlinePanel { } fn add_excerpt_entries( - &mut self, + &self, state: &mut GenerationState, buffer_id: BufferId, entries_to_add: &[ExcerptId], @@ -4253,8 +4094,6 @@ impl OutlinePanel { cx: &mut Context<Self>, ) { if let Some(excerpts) = self.excerpts.get(&buffer_id) { - let buffer_snapshot = self.buffer_snapshot_for_id(buffer_id, cx); - for &excerpt_id in entries_to_add { let Some(excerpt) = excerpts.get(&excerpt_id) else { continue; @@ -4284,84 +4123,15 @@ impl OutlinePanel { continue; } - let mut last_depth_at_level: Vec<Option<Range<Anchor>>> = vec![None; 10]; - - let all_outlines: Vec<_> = excerpt.iter_outlines().collect(); - - let mut outline_has_children = HashMap::default(); - let mut visible_outlines = Vec::new(); - let mut collapsed_state: Option<(usize, Range<Anchor>)> = None; - - for (i, &outline) in all_outlines.iter().enumerate() { - let has_children = all_outlines - .get(i + 1) - .map(|next| next.depth > outline.depth) - .unwrap_or(false); - - outline_has_children - .insert((outline.range.clone(), outline.depth), has_children); - - let mut should_include = true; - - if let Some((collapsed_depth, collapsed_range)) = &collapsed_state { - if outline.depth <= *collapsed_depth { - collapsed_state = None; - } else if let Some(buffer_snapshot) = buffer_snapshot.as_ref() { - let outline_start = outline.range.start; - if outline_start - .cmp(&collapsed_range.start, buffer_snapshot) - .is_ge() - && outline_start - .cmp(&collapsed_range.end, buffer_snapshot) - .is_lt() - { - should_include = false; // Skip - inside collapsed range - } else { - collapsed_state = None; - } - } - } - - // Check if this outline itself is collapsed - if should_include - && self.collapsed_entries.contains(&CollapsedEntry::Outline( - buffer_id, - excerpt_id, - outline.range.clone(), - )) - { - collapsed_state = Some((outline.depth, outline.range.clone())); - } - - if should_include { - visible_outlines.push(outline); - } - } - - self.outline_children_cache - .entry(buffer_id) - .or_default() - .extend(outline_has_children); - - for outline in visible_outlines { - let outline_entry = OutlineEntryOutline { - buffer_id, - excerpt_id, - outline: outline.clone(), - }; - - if outline.depth < last_depth_at_level.len() { - last_depth_at_level[outline.depth] = Some(outline.range.clone()); - // Clear deeper levels when we go back to a shallower depth - for d in (outline.depth + 1)..last_depth_at_level.len() { - last_depth_at_level[d] = None; - } - } - + for outline in excerpt.iter_outlines() { self.push_entry( state, track_matches, - PanelEntry::Outline(OutlineEntry::Outline(outline_entry)), + PanelEntry::Outline(OutlineEntry::Outline(OutlineEntryOutline { + buffer_id, + excerpt_id, + outline: outline.clone(), + })), outline_base_depth + outline.depth, cx, ); @@ -5958,7 +5728,7 @@ mod tests { }); outline_panel.update_in(cx, |outline_panel, window, cx| { - outline_panel.open_excerpts(&editor::actions::OpenExcerpts, window, cx); + outline_panel.open_excerpts(&editor::OpenExcerpts, window, cx); }); cx.executor() .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); @@ -7138,540 +6908,4 @@ outline: struct OutlineEntryExcerpt multi_buffer_snapshot.text_for_range(line_start..line_end).collect::<String>().trim().to_owned() }) } - - #[gpui::test] - async fn test_outline_keyboard_expand_collapse(cx: &mut TestAppContext) { - init_test(cx); - - let fs = FakeFs::new(cx.background_executor.clone()); - fs.insert_tree( - "/test", - json!({ - "src": { - "lib.rs": indoc!(" - mod outer { - pub struct OuterStruct { - field: String, - } - impl OuterStruct { - pub fn new() -> Self { - Self { field: String::new() } - } - pub fn method(&self) { - println!(\"{}\", self.field); - } - } - mod inner { - pub fn inner_function() { - let x = 42; - println!(\"{}\", x); - } - pub struct InnerStruct { - value: i32, - } - } - } - fn main() { - let s = outer::OuterStruct::new(); - s.method(); - } - "), - } - }), - ) - .await; - - let project = Project::test(fs.clone(), ["/test".as_ref()], cx).await; - project.read_with(cx, |project, _| { - project.languages().add(Arc::new( - rust_lang() - .with_outline_query( - r#" - (struct_item - (visibility_modifier)? @context - "struct" @context - name: (_) @name) @item - (impl_item - "impl" @context - trait: (_)? @context - "for"? @context - type: (_) @context - body: (_)) @item - (function_item - (visibility_modifier)? @context - "fn" @context - name: (_) @name - parameters: (_) @context) @item - (mod_item - (visibility_modifier)? @context - "mod" @context - name: (_) @name) @item - (enum_item - (visibility_modifier)? @context - "enum" @context - name: (_) @name) @item - (field_declaration - (visibility_modifier)? @context - name: (_) @name - ":" @context - type: (_) @context) @item - "#, - ) - .unwrap(), - )) - }); - let workspace = add_outline_panel(&project, cx).await; - let cx = &mut VisualTestContext::from_window(*workspace, cx); - let outline_panel = outline_panel(&workspace, cx); - - outline_panel.update_in(cx, |outline_panel, window, cx| { - outline_panel.set_active(true, window, cx) - }); - - workspace - .update(cx, |workspace, window, cx| { - workspace.open_abs_path( - PathBuf::from("/test/src/lib.rs"), - OpenOptions { - visible: Some(OpenVisible::All), - ..Default::default() - }, - window, - cx, - ) - }) - .unwrap() - .await - .unwrap(); - - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(500)); - cx.run_until_parked(); - - // Force another update cycle to ensure outlines are fetched - outline_panel.update_in(cx, |panel, window, cx| { - panel.update_non_fs_items(window, cx); - panel.update_cached_entries(Some(UPDATE_DEBOUNCE), window, cx); - }); - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(500)); - cx.run_until_parked(); - - outline_panel.update(cx, |outline_panel, cx| { - assert_eq!( - display_entries( - &project, - &snapshot(&outline_panel, cx), - &outline_panel.cached_entries, - outline_panel.selected_entry(), - cx, - ), - indoc!( - " -outline: mod outer <==== selected - outline: pub struct OuterStruct - outline: field: String - outline: impl OuterStruct - outline: pub fn new() - outline: pub fn method(&self) - outline: mod inner - outline: pub fn inner_function() - outline: pub struct InnerStruct - outline: value: i32 -outline: fn main()" - ) - ); - }); - - let parent_outline = outline_panel - .read_with(cx, |panel, _cx| { - panel - .cached_entries - .iter() - .find_map(|entry| match &entry.entry { - PanelEntry::Outline(OutlineEntry::Outline(outline)) - if panel - .outline_children_cache - .get(&outline.buffer_id) - .and_then(|children_map| { - let key = - (outline.outline.range.clone(), outline.outline.depth); - children_map.get(&key) - }) - .copied() - .unwrap_or(false) => - { - Some(entry.entry.clone()) - } - _ => None, - }) - }) - .expect("Should find an outline with children"); - - outline_panel.update_in(cx, |panel, window, cx| { - panel.select_entry(parent_outline.clone(), true, window, cx); - panel.collapse_selected_entry(&CollapseSelectedEntry, window, cx); - }); - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); - cx.run_until_parked(); - - outline_panel.update(cx, |outline_panel, cx| { - assert_eq!( - display_entries( - &project, - &snapshot(&outline_panel, cx), - &outline_panel.cached_entries, - outline_panel.selected_entry(), - cx, - ), - indoc!( - " -outline: mod outer <==== selected -outline: fn main()" - ) - ); - }); - - outline_panel.update_in(cx, |panel, window, cx| { - panel.expand_selected_entry(&ExpandSelectedEntry, window, cx); - }); - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); - cx.run_until_parked(); - - outline_panel.update(cx, |outline_panel, cx| { - assert_eq!( - display_entries( - &project, - &snapshot(&outline_panel, cx), - &outline_panel.cached_entries, - outline_panel.selected_entry(), - cx, - ), - indoc!( - " -outline: mod outer <==== selected - outline: pub struct OuterStruct - outline: field: String - outline: impl OuterStruct - outline: pub fn new() - outline: pub fn method(&self) - outline: mod inner - outline: pub fn inner_function() - outline: pub struct InnerStruct - outline: value: i32 -outline: fn main()" - ) - ); - }); - - outline_panel.update_in(cx, |panel, window, cx| { - panel.collapsed_entries.clear(); - panel.update_cached_entries(None, window, cx); - }); - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); - cx.run_until_parked(); - - outline_panel.update_in(cx, |panel, window, cx| { - let outlines_with_children: Vec<_> = panel - .cached_entries - .iter() - .filter_map(|entry| match &entry.entry { - PanelEntry::Outline(OutlineEntry::Outline(outline)) - if panel - .outline_children_cache - .get(&outline.buffer_id) - .and_then(|children_map| { - let key = (outline.outline.range.clone(), outline.outline.depth); - children_map.get(&key) - }) - .copied() - .unwrap_or(false) => - { - Some(entry.entry.clone()) - } - _ => None, - }) - .collect(); - - for outline in outlines_with_children { - panel.select_entry(outline, false, window, cx); - panel.collapse_selected_entry(&CollapseSelectedEntry, window, cx); - } - }); - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); - cx.run_until_parked(); - - outline_panel.update(cx, |outline_panel, cx| { - assert_eq!( - display_entries( - &project, - &snapshot(&outline_panel, cx), - &outline_panel.cached_entries, - outline_panel.selected_entry(), - cx, - ), - indoc!( - " -outline: mod outer -outline: fn main()" - ) - ); - }); - - let collapsed_entries_count = - outline_panel.read_with(cx, |panel, _| panel.collapsed_entries.len()); - assert!( - collapsed_entries_count > 0, - "Should have collapsed entries tracked" - ); - } - - #[gpui::test] - async fn test_outline_click_toggle_behavior(cx: &mut TestAppContext) { - init_test(cx); - - let fs = FakeFs::new(cx.background_executor.clone()); - fs.insert_tree( - "/test", - json!({ - "src": { - "main.rs": indoc!(" - struct Config { - name: String, - value: i32, - } - impl Config { - fn new(name: String) -> Self { - Self { name, value: 0 } - } - fn get_value(&self) -> i32 { - self.value - } - } - enum Status { - Active, - Inactive, - } - fn process_config(config: Config) -> Status { - if config.get_value() > 0 { - Status::Active - } else { - Status::Inactive - } - } - fn main() { - let config = Config::new(\"test\".to_string()); - let status = process_config(config); - } - "), - } - }), - ) - .await; - - let project = Project::test(fs.clone(), ["/test".as_ref()], cx).await; - project.read_with(cx, |project, _| { - project.languages().add(Arc::new( - rust_lang() - .with_outline_query( - r#" - (struct_item - (visibility_modifier)? @context - "struct" @context - name: (_) @name) @item - (impl_item - "impl" @context - trait: (_)? @context - "for"? @context - type: (_) @context - body: (_)) @item - (function_item - (visibility_modifier)? @context - "fn" @context - name: (_) @name - parameters: (_) @context) @item - (mod_item - (visibility_modifier)? @context - "mod" @context - name: (_) @name) @item - (enum_item - (visibility_modifier)? @context - "enum" @context - name: (_) @name) @item - (field_declaration - (visibility_modifier)? @context - name: (_) @name - ":" @context - type: (_) @context) @item - "#, - ) - .unwrap(), - )) - }); - - let workspace = add_outline_panel(&project, cx).await; - let cx = &mut VisualTestContext::from_window(*workspace, cx); - let outline_panel = outline_panel(&workspace, cx); - - outline_panel.update_in(cx, |outline_panel, window, cx| { - outline_panel.set_active(true, window, cx) - }); - - let _editor = workspace - .update(cx, |workspace, window, cx| { - workspace.open_abs_path( - PathBuf::from("/test/src/main.rs"), - OpenOptions { - visible: Some(OpenVisible::All), - ..Default::default() - }, - window, - cx, - ) - }) - .unwrap() - .await - .unwrap(); - - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); - cx.run_until_parked(); - - outline_panel.update(cx, |outline_panel, _cx| { - outline_panel.selected_entry = SelectedEntry::None; - }); - - // Check initial state - all entries should be expanded by default - outline_panel.update(cx, |outline_panel, cx| { - assert_eq!( - display_entries( - &project, - &snapshot(&outline_panel, cx), - &outline_panel.cached_entries, - outline_panel.selected_entry(), - cx, - ), - indoc!( - " -outline: struct Config - outline: name: String - outline: value: i32 -outline: impl Config - outline: fn new(name: String) - outline: fn get_value(&self) -outline: enum Status -outline: fn process_config(config: Config) -outline: fn main()" - ) - ); - }); - - outline_panel.update(cx, |outline_panel, _cx| { - outline_panel.selected_entry = SelectedEntry::None; - }); - - cx.update(|window, cx| { - outline_panel.update(cx, |outline_panel, cx| { - outline_panel.select_first(&SelectFirst, window, cx); - }); - }); - - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); - cx.run_until_parked(); - - outline_panel.update(cx, |outline_panel, cx| { - assert_eq!( - display_entries( - &project, - &snapshot(&outline_panel, cx), - &outline_panel.cached_entries, - outline_panel.selected_entry(), - cx, - ), - indoc!( - " -outline: struct Config <==== selected - outline: name: String - outline: value: i32 -outline: impl Config - outline: fn new(name: String) - outline: fn get_value(&self) -outline: enum Status -outline: fn process_config(config: Config) -outline: fn main()" - ) - ); - }); - - cx.update(|window, cx| { - outline_panel.update(cx, |outline_panel, cx| { - outline_panel.open_selected_entry(&OpenSelectedEntry, window, cx); - }); - }); - - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); - cx.run_until_parked(); - - outline_panel.update(cx, |outline_panel, cx| { - assert_eq!( - display_entries( - &project, - &snapshot(&outline_panel, cx), - &outline_panel.cached_entries, - outline_panel.selected_entry(), - cx, - ), - indoc!( - " -outline: struct Config <==== selected -outline: impl Config - outline: fn new(name: String) - outline: fn get_value(&self) -outline: enum Status -outline: fn process_config(config: Config) -outline: fn main()" - ) - ); - }); - - cx.update(|window, cx| { - outline_panel.update(cx, |outline_panel, cx| { - outline_panel.open_selected_entry(&OpenSelectedEntry, window, cx); - }); - }); - - cx.executor() - .advance_clock(UPDATE_DEBOUNCE + Duration::from_millis(100)); - cx.run_until_parked(); - - outline_panel.update(cx, |outline_panel, cx| { - assert_eq!( - display_entries( - &project, - &snapshot(&outline_panel, cx), - &outline_panel.cached_entries, - outline_panel.selected_entry(), - cx, - ), - indoc!( - " -outline: struct Config <==== selected - outline: name: String - outline: value: i32 -outline: impl Config - outline: fn new(name: String) - outline: fn get_value(&self) -outline: enum Status -outline: fn process_config(config: Config) -outline: fn main()" - ) - ); - }); - } } diff --git a/crates/outline_panel/src/outline_panel_settings.rs b/crates/outline_panel/src/outline_panel_settings.rs index 133d28b748..6b70cb54fb 100644 --- a/crates/outline_panel/src/outline_panel_settings.rs +++ b/crates/outline_panel/src/outline_panel_settings.rs @@ -31,7 +31,6 @@ pub struct OutlinePanelSettings { pub auto_reveal_entries: bool, pub auto_fold_dirs: bool, pub scrollbar: ScrollbarSettings, - pub expand_outlines_with_depth: usize, } #[derive(Copy, Clone, Debug, Serialize, Deserialize, JsonSchema, PartialEq, Eq)] @@ -106,13 +105,6 @@ pub struct OutlinePanelSettingsContent { pub indent_guides: Option<IndentGuidesSettingsContent>, /// Scrollbar-related settings pub scrollbar: Option<ScrollbarSettingsContent>, - /// Default depth to expand outline items in the current file. - /// The default depth to which outline entries are expanded on reveal. - /// - Set to 0 to collapse all items that have children - /// - Set to 1 or higher to collapse items at that depth or deeper - /// - /// Default: 100 - pub expand_outlines_with_depth: Option<usize>, } impl Settings for OutlinePanelSettings { diff --git a/crates/paths/src/paths.rs b/crates/paths/src/paths.rs index 47a0f12c06..2f3b188980 100644 --- a/crates/paths/src/paths.rs +++ b/crates/paths/src/paths.rs @@ -35,7 +35,6 @@ pub fn remote_server_dir_relative() -> &'static Path { /// Sets a custom directory for all user data, overriding the default data directory. /// This function must be called before any other path operations that depend on the data directory. -/// The directory's path will be canonicalized to an absolute path by a blocking FS operation. /// The directory will be created if it doesn't exist. /// /// # Arguments @@ -51,20 +50,13 @@ pub fn remote_server_dir_relative() -> &'static Path { /// /// Panics if: /// * Called after the data directory has been initialized (e.g., via `data_dir` or `config_dir`) -/// * The directory's path cannot be canonicalized to an absolute path /// * The directory cannot be created pub fn set_custom_data_dir(dir: &str) -> &'static PathBuf { if CURRENT_DATA_DIR.get().is_some() || CONFIG_DIR.get().is_some() { panic!("set_custom_data_dir called after data_dir or config_dir was initialized"); } CUSTOM_DATA_DIR.get_or_init(|| { - let mut path = PathBuf::from(dir); - if path.is_relative() { - let abs_path = path - .canonicalize() - .expect("failed to canonicalize custom data directory's path to an absolute path"); - path = PathBuf::from(util::paths::SanitizedPath::from(abs_path)) - } + let path = PathBuf::from(dir); std::fs::create_dir_all(&path).expect("failed to create custom data directory"); path }) diff --git a/crates/prettier/src/prettier_server.js b/crates/prettier/src/prettier_server.js index b3d8a660a4..6799b4aceb 100644 --- a/crates/prettier/src/prettier_server.js +++ b/crates/prettier/src/prettier_server.js @@ -152,10 +152,6 @@ async function handleMessage(message, prettier) { throw new Error(`Message method is undefined: ${JSON.stringify(message)}`); } else if (method == "initialized") { return; - } else if (method === "shutdown") { - sendResponse({ result: {} }); - } else if (method == "exit") { - process.exit(0); } if (id === undefined) { diff --git a/crates/project/src/debugger/dap_command.rs b/crates/project/src/debugger/dap_command.rs index 3be3192369..1cb611680c 100644 --- a/crates/project/src/debugger/dap_command.rs +++ b/crates/project/src/debugger/dap_command.rs @@ -107,7 +107,7 @@ impl<T: DapCommand> DapCommand for Arc<T> { #[derive(Debug, Hash, PartialEq, Eq)] pub struct StepCommand { - pub thread_id: i64, + pub thread_id: u64, pub granularity: Option<SteppingGranularity>, pub single_thread: Option<bool>, } @@ -483,7 +483,7 @@ impl DapCommand for ContinueCommand { #[derive(Debug, Hash, PartialEq, Eq)] pub(crate) struct PauseCommand { - pub thread_id: i64, + pub thread_id: u64, } impl LocalDapCommand for PauseCommand { @@ -612,7 +612,7 @@ impl DapCommand for DisconnectCommand { #[derive(Debug, Hash, PartialEq, Eq)] pub(crate) struct TerminateThreadsCommand { - pub thread_ids: Option<Vec<i64>>, + pub thread_ids: Option<Vec<u64>>, } impl LocalDapCommand for TerminateThreadsCommand { @@ -1182,7 +1182,7 @@ impl DapCommand for LoadedSourcesCommand { #[derive(Debug, Clone, Hash, PartialEq, Eq)] pub(crate) struct StackTraceCommand { - pub thread_id: i64, + pub thread_id: u64, pub start_frame: Option<u64>, pub levels: Option<u64>, } diff --git a/crates/project/src/debugger/dap_store.rs b/crates/project/src/debugger/dap_store.rs index 6f834b5dc0..d494088b13 100644 --- a/crates/project/src/debugger/dap_store.rs +++ b/crates/project/src/debugger/dap_store.rs @@ -920,22 +920,12 @@ impl dap::adapters::DapDelegate for DapAdapterDelegate { self.console.unbounded_send(msg).ok(); } - #[cfg(not(target_os = "windows"))] async fn which(&self, command: &OsStr) -> Option<PathBuf> { let worktree_abs_path = self.worktree.abs_path(); let shell_path = self.shell_env().await.get("PATH").cloned(); which::which_in(command, shell_path.as_ref(), worktree_abs_path).ok() } - #[cfg(target_os = "windows")] - async fn which(&self, command: &OsStr) -> Option<PathBuf> { - // On Windows, `PATH` is handled differently from Unix. Windows generally expects users to modify the `PATH` themselves, - // and every program loads it directly from the system at startup. - // There's also no concept of a default shell on Windows, and you can't really retrieve one, so trying to get shell environment variables - // from a specific directory doesn’t make sense on Windows. - which::which(command).ok() - } - async fn shell_env(&self) -> HashMap<String, String> { let task = self.load_shell_env_task.clone(); task.await.unwrap_or_default() diff --git a/crates/project/src/debugger/locators/cargo.rs b/crates/project/src/debugger/locators/cargo.rs index fa265dae58..7d70371380 100644 --- a/crates/project/src/debugger/locators/cargo.rs +++ b/crates/project/src/debugger/locators/cargo.rs @@ -128,7 +128,7 @@ impl DapLocator for CargoLocator { .chain(Some("--message-format=json".to_owned())) .collect(), ); - let mut child = util::command::new_smol_command(program) + let mut child = Command::new(program) .args(args) .envs(build_config.env.iter().map(|(k, v)| (k.clone(), v.clone()))) .current_dir(cwd) diff --git a/crates/project/src/debugger/session.rs b/crates/project/src/debugger/session.rs index f60a7becf7..1e296ac2ac 100644 --- a/crates/project/src/debugger/session.rs +++ b/crates/project/src/debugger/session.rs @@ -61,10 +61,15 @@ use worktree::Worktree; #[derive(Debug, Copy, Clone, Hash, PartialEq, PartialOrd, Ord, Eq)] #[repr(transparent)] -pub struct ThreadId(pub i64); +pub struct ThreadId(pub u64); -impl From<i64> for ThreadId { - fn from(id: i64) -> Self { +impl ThreadId { + pub const MIN: ThreadId = ThreadId(u64::MIN); + pub const MAX: ThreadId = ThreadId(u64::MAX); +} + +impl From<u64> for ThreadId { + fn from(id: u64) -> Self { Self(id) } } diff --git a/crates/project/src/git_store.rs b/crates/project/src/git_store.rs index 28dd0e91e3..eb16446daf 100644 --- a/crates/project/src/git_store.rs +++ b/crates/project/src/git_store.rs @@ -14,10 +14,9 @@ use collections::HashMap; pub use conflict_set::{ConflictRegion, ConflictSet, ConflictSetSnapshot, ConflictSetUpdate}; use fs::Fs; use futures::{ - FutureExt, StreamExt, + FutureExt, StreamExt as _, channel::{mpsc, oneshot}, future::{self, Shared}, - stream::FuturesOrdered, }; use git::{ BuildPermalinkParams, GitHostingProviderRegistry, WORK_DIRECTORY_REPO_PATH, @@ -64,8 +63,8 @@ use sum_tree::{Edit, SumTree, TreeSet}; use text::{Bias, BufferId}; use util::{ResultExt, debug_panic, post_inc}; use worktree::{ - File, PathChange, PathKey, PathProgress, PathSummary, PathTarget, ProjectEntryId, - UpdatedGitRepositoriesSet, UpdatedGitRepository, Worktree, + File, PathKey, PathProgress, PathSummary, PathTarget, UpdatedGitRepositoriesSet, + UpdatedGitRepository, Worktree, }; pub struct GitStore { @@ -420,8 +419,6 @@ impl GitStore { client.add_entity_request_handler(Self::handle_fetch); client.add_entity_request_handler(Self::handle_stage); client.add_entity_request_handler(Self::handle_unstage); - client.add_entity_request_handler(Self::handle_stash); - client.add_entity_request_handler(Self::handle_stash_pop); client.add_entity_request_handler(Self::handle_commit); client.add_entity_request_handler(Self::handle_reset); client.add_entity_request_handler(Self::handle_show); @@ -1086,26 +1083,27 @@ impl GitStore { match event { WorktreeStoreEvent::WorktreeUpdatedEntries(worktree_id, updated_entries) => { - if let Some(worktree) = self - .worktree_store - .read(cx) - .worktree_for_id(*worktree_id, cx) - { - let paths_by_git_repo = - self.process_updated_entries(&worktree, updated_entries, cx); - let downstream = downstream - .as_ref() - .map(|downstream| downstream.updates_tx.clone()); - cx.spawn(async move |_, cx| { - let paths_by_git_repo = paths_by_git_repo.await; - for (repo, paths) in paths_by_git_repo { - repo.update(cx, |repo, cx| { - repo.paths_changed(paths, downstream.clone(), cx); - }) - .ok(); - } - }) - .detach(); + let mut paths_by_git_repo = HashMap::<_, Vec<_>>::default(); + for (relative_path, _, _) in updated_entries.iter() { + let Some((repo, repo_path)) = self.repository_and_path_for_project_path( + &(*worktree_id, relative_path.clone()).into(), + cx, + ) else { + continue; + }; + paths_by_git_repo.entry(repo).or_default().push(repo_path) + } + + for (repo, paths) in paths_by_git_repo { + repo.update(cx, |repo, cx| { + repo.paths_changed( + paths, + downstream + .as_ref() + .map(|downstream| downstream.updates_tx.clone()), + cx, + ); + }); } } WorktreeStoreEvent::WorktreeUpdatedGitRepositories(worktree_id, changed_repos) => { @@ -1698,48 +1696,6 @@ impl GitStore { Ok(proto::Ack {}) } - async fn handle_stash( - this: Entity<Self>, - envelope: TypedEnvelope<proto::Stash>, - mut cx: AsyncApp, - ) -> Result<proto::Ack> { - let repository_id = RepositoryId::from_proto(envelope.payload.repository_id); - let repository_handle = Self::repository_for_request(&this, repository_id, &mut cx)?; - - let entries = envelope - .payload - .paths - .into_iter() - .map(PathBuf::from) - .map(RepoPath::new) - .collect(); - - repository_handle - .update(&mut cx, |repository_handle, cx| { - repository_handle.stash_entries(entries, cx) - })? - .await?; - - Ok(proto::Ack {}) - } - - async fn handle_stash_pop( - this: Entity<Self>, - envelope: TypedEnvelope<proto::StashPop>, - mut cx: AsyncApp, - ) -> Result<proto::Ack> { - let repository_id = RepositoryId::from_proto(envelope.payload.repository_id); - let repository_handle = Self::repository_for_request(&this, repository_id, &mut cx)?; - - repository_handle - .update(&mut cx, |repository_handle, cx| { - repository_handle.stash_pop(cx) - })? - .await?; - - Ok(proto::Ack {}) - } - async fn handle_set_index_text( this: Entity<Self>, envelope: TypedEnvelope<proto::SetIndexText>, @@ -2235,80 +2191,6 @@ impl GitStore { .map(|(id, repo)| (*id, repo.read(cx).snapshot.clone())) .collect() } - - fn process_updated_entries( - &self, - worktree: &Entity<Worktree>, - updated_entries: &[(Arc<Path>, ProjectEntryId, PathChange)], - cx: &mut App, - ) -> Task<HashMap<Entity<Repository>, Vec<RepoPath>>> { - let mut repo_paths = self - .repositories - .values() - .map(|repo| (repo.read(cx).work_directory_abs_path.clone(), repo.clone())) - .collect::<Vec<_>>(); - let mut entries: Vec<_> = updated_entries - .iter() - .map(|(path, _, _)| path.clone()) - .collect(); - entries.sort(); - let worktree = worktree.read(cx); - - let entries = entries - .into_iter() - .filter_map(|path| worktree.absolutize(&path).ok()) - .collect::<Arc<[_]>>(); - - let executor = cx.background_executor().clone(); - cx.background_executor().spawn(async move { - repo_paths.sort_by(|lhs, rhs| lhs.0.cmp(&rhs.0)); - let mut paths_by_git_repo = HashMap::<_, Vec<_>>::default(); - let mut tasks = FuturesOrdered::new(); - for (repo_path, repo) in repo_paths.into_iter().rev() { - let entries = entries.clone(); - let task = executor.spawn(async move { - // Find all repository paths that belong to this repo - let mut ix = entries.partition_point(|path| path < &*repo_path); - if ix == entries.len() { - return None; - }; - - let mut paths = vec![]; - // All paths prefixed by a given repo will constitute a continuous range. - while let Some(path) = entries.get(ix) - && let Some(repo_path) = - RepositorySnapshot::abs_path_to_repo_path_inner(&repo_path, &path) - { - paths.push((repo_path, ix)); - ix += 1; - } - Some((repo, paths)) - }); - tasks.push_back(task); - } - - // Now, let's filter out the "duplicate" entries that were processed by multiple distinct repos. - let mut path_was_used = vec![false; entries.len()]; - let tasks = tasks.collect::<Vec<_>>().await; - // Process tasks from the back: iterating backwards allows us to see more-specific paths first. - // We always want to assign a path to it's innermost repository. - for t in tasks { - let Some((repo, paths)) = t else { - continue; - }; - let entry = paths_by_git_repo.entry(repo).or_default(); - for (repo_path, ix) in paths { - if path_was_used[ix] { - continue; - } - path_was_used[ix] = true; - entry.push(repo_path); - } - } - - paths_by_git_repo - }) - } } impl BufferGitState { @@ -2778,16 +2660,8 @@ impl RepositorySnapshot { } pub fn abs_path_to_repo_path(&self, abs_path: &Path) -> Option<RepoPath> { - Self::abs_path_to_repo_path_inner(&self.work_directory_abs_path, abs_path) - } - - #[inline] - fn abs_path_to_repo_path_inner( - work_directory_abs_path: &Path, - abs_path: &Path, - ) -> Option<RepoPath> { abs_path - .strip_prefix(&work_directory_abs_path) + .strip_prefix(&self.work_directory_abs_path) .map(RepoPath::from) .ok() } @@ -3584,82 +3458,6 @@ impl Repository { self.unstage_entries(to_unstage, cx) } - pub fn stash_all(&mut self, cx: &mut Context<Self>) -> Task<anyhow::Result<()>> { - let to_stash = self - .cached_status() - .map(|entry| entry.repo_path.clone()) - .collect(); - - self.stash_entries(to_stash, cx) - } - - pub fn stash_entries( - &mut self, - entries: Vec<RepoPath>, - cx: &mut Context<Self>, - ) -> Task<anyhow::Result<()>> { - let id = self.id; - - cx.spawn(async move |this, cx| { - this.update(cx, |this, _| { - this.send_job(None, move |git_repo, _cx| async move { - match git_repo { - RepositoryState::Local { - backend, - environment, - .. - } => backend.stash_paths(entries, environment).await, - RepositoryState::Remote { project_id, client } => { - client - .request(proto::Stash { - project_id: project_id.0, - repository_id: id.to_proto(), - paths: entries - .into_iter() - .map(|repo_path| repo_path.as_ref().to_proto()) - .collect(), - }) - .await - .context("sending stash request")?; - Ok(()) - } - } - }) - })? - .await??; - Ok(()) - }) - } - - pub fn stash_pop(&mut self, cx: &mut Context<Self>) -> Task<anyhow::Result<()>> { - let id = self.id; - cx.spawn(async move |this, cx| { - this.update(cx, |this, _| { - this.send_job(None, move |git_repo, _cx| async move { - match git_repo { - RepositoryState::Local { - backend, - environment, - .. - } => backend.stash_pop(environment).await, - RepositoryState::Remote { project_id, client } => { - client - .request(proto::StashPop { - project_id: project_id.0, - repository_id: id.to_proto(), - }) - .await - .context("sending stash pop request")?; - Ok(()) - } - } - }) - })? - .await??; - Ok(()) - }) - } - pub fn commit( &mut self, message: SharedString, diff --git a/crates/project/src/git_store/git_traversal.rs b/crates/project/src/git_store/git_traversal.rs index 777042cb02..cd173d5714 100644 --- a/crates/project/src/git_store/git_traversal.rs +++ b/crates/project/src/git_store/git_traversal.rs @@ -1,6 +1,6 @@ use collections::HashMap; -use git::{repository::RepoPath, status::GitSummary}; -use std::{collections::BTreeMap, ops::Deref, path::Path}; +use git::status::GitSummary; +use std::{ops::Deref, path::Path}; use sum_tree::Cursor; use text::Bias; use worktree::{Entry, PathProgress, PathTarget, Traversal}; @@ -11,7 +11,7 @@ use super::{RepositoryId, RepositorySnapshot, StatusEntry}; pub struct GitTraversal<'a> { traversal: Traversal<'a>, current_entry_summary: Option<GitSummary>, - repo_root_to_snapshot: BTreeMap<&'a Path, &'a RepositorySnapshot>, + repo_snapshots: &'a HashMap<RepositoryId, RepositorySnapshot>, repo_location: Option<(RepositoryId, Cursor<'a, StatusEntry, PathProgress<'a>>)>, } @@ -20,46 +20,16 @@ impl<'a> GitTraversal<'a> { repo_snapshots: &'a HashMap<RepositoryId, RepositorySnapshot>, traversal: Traversal<'a>, ) -> GitTraversal<'a> { - let repo_root_to_snapshot = repo_snapshots - .values() - .map(|snapshot| (&*snapshot.work_directory_abs_path, snapshot)) - .collect(); let mut this = GitTraversal { traversal, + repo_snapshots, current_entry_summary: None, repo_location: None, - repo_root_to_snapshot, }; this.synchronize_statuses(true); this } - fn repo_root_for_path(&self, path: &Path) -> Option<(&'a RepositorySnapshot, RepoPath)> { - // We might need to perform a range search multiple times, as there may be a nested repository inbetween - // the target and our path. E.g: - // /our_root_repo/ - // .git/ - // other_repo/ - // .git/ - // our_query.txt - let mut query = path.ancestors(); - while let Some(query) = query.next() { - let (_, snapshot) = self - .repo_root_to_snapshot - .range(Path::new("")..=query) - .last()?; - - let stripped = snapshot - .abs_path_to_repo_path(path) - .map(|repo_path| (*snapshot, repo_path)); - if stripped.is_some() { - return stripped; - } - } - - None - } - fn synchronize_statuses(&mut self, reset: bool) { self.current_entry_summary = None; @@ -72,7 +42,15 @@ impl<'a> GitTraversal<'a> { return; }; - let Some((repo, repo_path)) = self.repo_root_for_path(&abs_path) else { + let Some((repo, repo_path)) = self + .repo_snapshots + .values() + .filter_map(|repo_snapshot| { + let repo_path = repo_snapshot.abs_path_to_repo_path(&abs_path)?; + Some((repo_snapshot, repo_path)) + }) + .max_by_key(|(repo, _)| repo.work_directory_abs_path.clone()) + else { self.repo_location = None; return; }; diff --git a/crates/project/src/lsp_command.rs b/crates/project/src/lsp_command.rs index 2fd61ea0b2..958921a0e6 100644 --- a/crates/project/src/lsp_command.rs +++ b/crates/project/src/lsp_command.rs @@ -3580,18 +3580,6 @@ impl LspCommand for GetCodeLens { } } -impl LinkedEditingRange { - pub fn check_server_capabilities(capabilities: ServerCapabilities) -> bool { - let Some(linked_editing_options) = capabilities.linked_editing_range_provider else { - return false; - }; - if let LinkedEditingRangeServerCapabilities::Simple(false) = linked_editing_options { - return false; - } - true - } -} - #[async_trait(?Send)] impl LspCommand for LinkedEditingRange { type Response = Vec<Range<Anchor>>; @@ -3603,7 +3591,16 @@ impl LspCommand for LinkedEditingRange { } fn check_capabilities(&self, capabilities: AdapterServerCapabilities) -> bool { - Self::check_server_capabilities(capabilities.server_capabilities) + let Some(linked_editing_options) = &capabilities + .server_capabilities + .linked_editing_range_provider + else { + return false; + }; + if let LinkedEditingRangeServerCapabilities::Simple(false) = linked_editing_options { + return false; + } + true } fn to_lsp( diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index 98cecc2e9b..161b861dd0 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -46,7 +46,6 @@ use language::{ DiagnosticEntry, DiagnosticSet, DiagnosticSourceKind, Diff, File as _, Language, LanguageName, LanguageRegistry, LanguageToolchainStore, LocalFile, LspAdapter, LspAdapterDelegate, Patch, PointUtf16, TextBufferSnapshot, ToOffset, ToPointUtf16, Transaction, Unclipped, - WorkspaceFoldersContent, language_settings::{ FormatOnSave, Formatter, LanguageSettings, SelectedFormatter, language_settings, }, @@ -218,7 +217,6 @@ impl LocalLspStore { let binary = self.get_language_server_binary(adapter.clone(), delegate.clone(), true, cx); let pending_workspace_folders: Arc<Mutex<BTreeSet<Url>>> = Default::default(); - let pending_server = cx.spawn({ let adapter = adapter.clone(); let server_name = adapter.name.clone(); @@ -244,18 +242,14 @@ impl LocalLspStore { return Ok(server); } - let code_action_kinds = adapter.code_action_kinds(); lsp::LanguageServer::new( stderr_capture, server_id, server_name, binary, &root_path, - code_action_kinds, - Some(pending_workspace_folders).filter(|_| { - adapter.adapter.workspace_folders_content() - == WorkspaceFoldersContent::SubprojectRoots - }), + adapter.code_action_kinds(), + pending_workspace_folders, cx, ) } @@ -424,7 +418,7 @@ impl LocalLspStore { if settings.as_ref().is_some_and(|b| b.path.is_some()) { let settings = settings.unwrap(); - return cx.background_spawn(async move { + return cx.spawn(async move |_| { let mut env = delegate.shell_env().await; env.extend(settings.env.unwrap_or_default()); @@ -581,7 +575,8 @@ impl LocalLspStore { }; let root = server.workspace_folders(); Ok(Some( - root.into_iter() + root.iter() + .cloned() .map(|uri| WorkspaceFolder { uri, name: Default::default(), @@ -2425,12 +2420,36 @@ impl LocalLspStore { let server_id = server_node.server_id_or_init( |LaunchDisposition { server_name, - + attach, path, settings, }| { - let server_id = - { + let server_id = match attach { + language::Attach::InstancePerRoot => { + // todo: handle instance per root proper. + if let Some(server_ids) = self + .language_server_ids + .get(&(worktree_id, server_name.clone())) + { + server_ids.iter().cloned().next().unwrap() + } else { + let language_name = language.name(); + let adapter = self.languages + .lsp_adapters(&language_name) + .into_iter() + .find(|adapter| &adapter.name() == server_name) + .expect("To find LSP adapter"); + let server_id = self.start_language_server( + &worktree, + delegate.clone(), + adapter, + settings, + cx, + ); + server_id + } + } + language::Attach::Shared => { let uri = Url::from_file_path( worktree.read(cx).abs_path().join(&path.path), ); @@ -2465,7 +2484,7 @@ impl LocalLspStore { } else { unreachable!("Language server ID should be available, as it's registered on demand") } - + } }; let lsp_store = self.weak.clone(); let server_name = server_node.name(); @@ -4681,11 +4700,35 @@ impl LspStore { let server_id = node.server_id_or_init( |LaunchDisposition { server_name, - + attach, path, settings, - }| - { + }| match attach { + language::Attach::InstancePerRoot => { + // todo: handle instance per root proper. + if let Some(server_ids) = local + .language_server_ids + .get(&(worktree_id, server_name.clone())) + { + server_ids.iter().cloned().next().unwrap() + } else { + let adapter = local + .languages + .lsp_adapters(&language) + .into_iter() + .find(|adapter| &adapter.name() == server_name) + .expect("To find LSP adapter"); + let server_id = local.start_language_server( + &worktree, + delegate.clone(), + adapter, + settings, + cx, + ); + server_id + } + } + language::Attach::Shared => { let uri = Url::from_file_path( worktree.read(cx).abs_path().join(&path.path), ); @@ -4714,6 +4757,7 @@ impl LspStore { } server_id } + }, ); if let Some(language_server_id) = server_id { @@ -4911,7 +4955,7 @@ impl LspStore { language_server_id: server_id.0 as u64, hint: Some(InlayHints::project_to_proto_hint(hint.clone())), }; - cx.background_spawn(async move { + cx.spawn(async move |_, _| { let response = upstream_client .request(request) .await @@ -5069,7 +5113,10 @@ impl LspStore { local .language_servers_for_buffer(buffer, cx) .filter(|(_, server)| { - LinkedEditingRange::check_server_capabilities(server.capabilities()) + server + .capabilities() + .linked_editing_range_provider + .is_some() }) .filter(|(adapter, _)| { scope @@ -5122,7 +5169,7 @@ impl LspStore { trigger, version: serialize_version(&buffer.read(cx).version()), }; - cx.background_spawn(async move { + cx.spawn(async move |_, _| { client .request(request) .await? @@ -5281,7 +5328,7 @@ impl LspStore { GetDefinitions { position }, cx, ); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { Ok(definitions_task .await .into_iter() @@ -5354,7 +5401,7 @@ impl LspStore { GetDeclarations { position }, cx, ); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { Ok(declarations_task .await .into_iter() @@ -5427,7 +5474,7 @@ impl LspStore { GetTypeDefinitions { position }, cx, ); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { Ok(type_definitions_task .await .into_iter() @@ -5500,7 +5547,7 @@ impl LspStore { GetImplementations { position }, cx, ); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { Ok(implementations_task .await .into_iter() @@ -5573,7 +5620,7 @@ impl LspStore { GetReferences { position }, cx, ); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { Ok(references_task .await .into_iter() @@ -5657,7 +5704,7 @@ impl LspStore { }, cx, ); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { Ok(all_actions_task .await .into_iter() @@ -6041,6 +6088,7 @@ impl LspStore { let resolved = Self::resolve_completion_local( server, + &buffer_snapshot, completions.clone(), completion_index, ) @@ -6073,6 +6121,7 @@ impl LspStore { async fn resolve_completion_local( server: Arc<lsp::LanguageServer>, + snapshot: &BufferSnapshot, completions: Rc<RefCell<Box<[Completion]>>>, completion_index: usize, ) -> Result<()> { @@ -6117,8 +6166,26 @@ impl LspStore { .into_response() .context("resolve completion")?; - // We must not use any data such as sortText, filterText, insertText and textEdit to edit `Completion` since they are not suppose change during resolve. - // Refer: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_completion + if let Some(text_edit) = resolved_completion.text_edit.as_ref() { + // Technically we don't have to parse the whole `text_edit`, since the only + // language server we currently use that does update `text_edit` in `completionItem/resolve` + // is `typescript-language-server` and they only update `text_edit.new_text`. + // But we should not rely on that. + let edit = parse_completion_text_edit(text_edit, snapshot); + + if let Some(mut parsed_edit) = edit { + LineEnding::normalize(&mut parsed_edit.new_text); + + let mut completions = completions.borrow_mut(); + let completion = &mut completions[completion_index]; + + completion.new_text = parsed_edit.new_text; + completion.replace_range = parsed_edit.replace_range; + if let CompletionSource::Lsp { insert_range, .. } = &mut completion.source { + *insert_range = parsed_edit.insert_range; + } + } + } let mut completions = completions.borrow_mut(); let completion = &mut completions[completion_index]; @@ -6368,10 +6435,12 @@ impl LspStore { }) else { return Task::ready(Ok(None)); }; + let snapshot = buffer_handle.read(&cx).snapshot(); cx.spawn(async move |this, cx| { Self::resolve_completion_local( server.clone(), + &snapshot, completions.clone(), completion_index, ) @@ -6829,7 +6898,7 @@ impl LspStore { } else { let document_colors_task = self.request_multiple_lsp_locally(buffer, None::<usize>, GetDocumentColor, cx); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { Ok(document_colors_task .await .into_iter() @@ -6908,7 +6977,7 @@ impl LspStore { GetSignatureHelp { position }, cx, ); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { all_actions_task .await .into_iter() @@ -6985,7 +7054,7 @@ impl LspStore { GetHover { position }, cx, ); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { all_actions_task .await .into_iter() @@ -7988,7 +8057,7 @@ impl LspStore { }) .collect::<FuturesUnordered<_>>(); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { let mut responses = Vec::with_capacity(response_results.len()); while let Some((server_id, response_result)) = response_results.next().await { if let Some(response) = response_result.log_err() { diff --git a/crates/project/src/manifest_tree/server_tree.rs b/crates/project/src/manifest_tree/server_tree.rs index 81cb1c450c..0283f06eec 100644 --- a/crates/project/src/manifest_tree/server_tree.rs +++ b/crates/project/src/manifest_tree/server_tree.rs @@ -13,10 +13,10 @@ use std::{ sync::{Arc, Weak}, }; -use collections::IndexMap; +use collections::{HashMap, IndexMap}; use gpui::{App, AppContext as _, Entity, Subscription}; use language::{ - CachedLspAdapter, LanguageName, LanguageRegistry, ManifestDelegate, + Attach, CachedLspAdapter, LanguageName, LanguageRegistry, ManifestDelegate, language_settings::AllLanguageSettings, }; use lsp::LanguageServerName; @@ -38,6 +38,7 @@ pub(crate) struct ServersForWorktree { pub struct LanguageServerTree { manifest_tree: Entity<ManifestTree>, pub(crate) instances: BTreeMap<WorktreeId, ServersForWorktree>, + attach_kind_cache: HashMap<LanguageServerName, Attach>, languages: Arc<LanguageRegistry>, _subscriptions: Subscription, } @@ -52,6 +53,7 @@ pub struct LanguageServerTreeNode(Weak<InnerTreeNode>); #[derive(Debug)] pub(crate) struct LaunchDisposition<'a> { pub(crate) server_name: &'a LanguageServerName, + pub(crate) attach: Attach, pub(crate) path: ProjectPath, pub(crate) settings: Arc<LspSettings>, } @@ -60,6 +62,7 @@ impl<'a> From<&'a InnerTreeNode> for LaunchDisposition<'a> { fn from(value: &'a InnerTreeNode) -> Self { LaunchDisposition { server_name: &value.name, + attach: value.attach, path: value.path.clone(), settings: value.settings.clone(), } @@ -102,6 +105,7 @@ impl From<Weak<InnerTreeNode>> for LanguageServerTreeNode { pub struct InnerTreeNode { id: OnceLock<LanguageServerId>, name: LanguageServerName, + attach: Attach, path: ProjectPath, settings: Arc<LspSettings>, } @@ -109,12 +113,14 @@ pub struct InnerTreeNode { impl InnerTreeNode { fn new( name: LanguageServerName, + attach: Attach, path: ProjectPath, settings: impl Into<Arc<LspSettings>>, ) -> Self { InnerTreeNode { id: Default::default(), name, + attach, path, settings: settings.into(), } @@ -124,11 +130,8 @@ impl InnerTreeNode { /// Determines how the list of adapters to query should be constructed. pub(crate) enum AdapterQuery<'a> { /// Search for roots of all adapters associated with a given language name. - /// Layman: Look for all project roots along the queried path that have any - /// language server associated with this language running. Language(&'a LanguageName), /// Search for roots of adapter with a given name. - /// Layman: Look for all project roots along the queried path that have this server running. Adapter(&'a LanguageServerName), } @@ -144,7 +147,7 @@ impl LanguageServerTree { }), manifest_tree, instances: Default::default(), - + attach_kind_cache: Default::default(), languages, }) } @@ -220,6 +223,7 @@ impl LanguageServerTree { .and_then(|name| roots.get(&name)) .cloned() .unwrap_or_else(|| root_path.clone()); + let attach = adapter.attach_kind(); let inner_node = self .instances @@ -233,6 +237,7 @@ impl LanguageServerTree { ( Arc::new(InnerTreeNode::new( adapter.name(), + attach, root_path.clone(), settings.clone(), )), @@ -374,6 +379,7 @@ pub(crate) struct ServerTreeRebase<'a> { impl<'tree> ServerTreeRebase<'tree> { fn new(new_tree: &'tree mut LanguageServerTree) -> Self { let old_contents = std::mem::take(&mut new_tree.instances); + new_tree.attach_kind_cache.clear(); let all_server_ids = old_contents .values() .flat_map(|nodes| { @@ -440,7 +446,10 @@ impl<'tree> ServerTreeRebase<'tree> { .get(&disposition.path.worktree_id) .and_then(|worktree_nodes| worktree_nodes.roots.get(&disposition.path.path)) .and_then(|roots| roots.get(&disposition.name)) - .filter(|(old_node, _)| disposition.settings == old_node.settings) + .filter(|(old_node, _)| { + disposition.attach == old_node.attach + && disposition.settings == old_node.settings + }) else { return Some(node); }; diff --git a/crates/project/src/project.rs b/crates/project/src/project.rs index 623f48d3c9..6b943216b3 100644 --- a/crates/project/src/project.rs +++ b/crates/project/src/project.rs @@ -1362,7 +1362,10 @@ impl Project { fs: Arc<dyn Fs>, cx: AsyncApp, ) -> Result<Entity<Self>> { - client.connect(true, &cx).await.into_response()?; + client + .authenticate_and_connect(true, &cx) + .await + .into_response()?; let subscriptions = [ EntitySubscription::Project(client.subscribe_to_entity::<Self>(remote_id)?), @@ -3369,7 +3372,7 @@ impl Project { let task = self.lsp_store.update(cx, |lsp_store, cx| { lsp_store.definitions(buffer, position, cx) }); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { let result = task.await; drop(guard); result @@ -3387,7 +3390,7 @@ impl Project { let task = self.lsp_store.update(cx, |lsp_store, cx| { lsp_store.declarations(buffer, position, cx) }); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { let result = task.await; drop(guard); result @@ -3405,7 +3408,7 @@ impl Project { let task = self.lsp_store.update(cx, |lsp_store, cx| { lsp_store.type_definitions(buffer, position, cx) }); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { let result = task.await; drop(guard); result @@ -3423,7 +3426,7 @@ impl Project { let task = self.lsp_store.update(cx, |lsp_store, cx| { lsp_store.implementations(buffer, position, cx) }); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { let result = task.await; drop(guard); result @@ -3441,7 +3444,7 @@ impl Project { let task = self.lsp_store.update(cx, |lsp_store, cx| { lsp_store.references(buffer, position, cx) }); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { let result = task.await; drop(guard); result @@ -3993,7 +3996,7 @@ impl Project { let task = self.lsp_store.update(cx, |lsp_store, cx| { lsp_store.request_lsp(buffer_handle, server, request, cx) }); - cx.background_spawn(async move { + cx.spawn(async move |_, _| { let result = task.await; drop(guard); result diff --git a/crates/project/src/terminals.rs b/crates/project/src/terminals.rs index 973d4e8811..8cfbdff311 100644 --- a/crates/project/src/terminals.rs +++ b/crates/project/src/terminals.rs @@ -213,24 +213,17 @@ impl Project { cx: &mut Context<Self>, ) -> Result<Entity<Terminal>> { let this = &mut *self; - let ssh_details = this.ssh_details(cx); let path: Option<Arc<Path>> = match &kind { TerminalKind::Shell(path) => path.as_ref().map(|path| Arc::from(path.as_ref())), TerminalKind::Task(spawn_task) => { if let Some(cwd) = &spawn_task.cwd { - if ssh_details.is_some() { - Some(Arc::from(cwd.as_ref())) - } else { - let cwd = cwd.to_string_lossy(); - let tilde_substituted = shellexpand::tilde(&cwd); - Some(Arc::from(Path::new(tilde_substituted.as_ref()))) - } + Some(Arc::from(cwd.as_ref())) } else { this.active_project_directory(cx) } } }; - + let ssh_details = this.ssh_details(cx); let is_ssh_terminal = ssh_details.is_some(); let mut settings_location = None; diff --git a/crates/project_panel/src/project_panel.rs b/crates/project_panel/src/project_panel.rs index 05e6bfe4df..b8a7aa2220 100644 --- a/crates/project_panel/src/project_panel.rs +++ b/crates/project_panel/src/project_panel.rs @@ -2731,7 +2731,26 @@ impl ProjectPanel { } fn index_for_selection(&self, selection: SelectedEntry) -> Option<(usize, usize, usize)> { - self.index_for_entry(selection.entry_id, selection.worktree_id) + let mut entry_index = 0; + let mut visible_entries_index = 0; + for (worktree_index, (worktree_id, worktree_entries, _)) in + self.visible_entries.iter().enumerate() + { + if *worktree_id == selection.worktree_id { + for entry in worktree_entries { + if entry.id == selection.entry_id { + return Some((worktree_index, entry_index, visible_entries_index)); + } else { + visible_entries_index += 1; + entry_index += 1; + } + } + break; + } else { + visible_entries_index += worktree_entries.len(); + } + } + None } fn disjoint_entries(&self, cx: &App) -> BTreeSet<SelectedEntry> { @@ -3342,12 +3361,12 @@ impl ProjectPanel { entry_id: ProjectEntryId, worktree_id: WorktreeId, ) -> Option<(usize, usize, usize)> { + let mut worktree_ix = 0; let mut total_ix = 0; - for (worktree_ix, (current_worktree_id, visible_worktree_entries, _)) in - self.visible_entries.iter().enumerate() - { + for (current_worktree_id, visible_worktree_entries, _) in &self.visible_entries { if worktree_id != *current_worktree_id { total_ix += visible_worktree_entries.len(); + worktree_ix += 1; continue; } diff --git a/crates/proto/proto/debugger.proto b/crates/proto/proto/debugger.proto index c6f9c9f134..09abd4bf1c 100644 --- a/crates/proto/proto/debugger.proto +++ b/crates/proto/proto/debugger.proto @@ -188,7 +188,7 @@ message DapSetVariableValueResponse { message DapPauseRequest { uint64 project_id = 1; uint64 client_id = 2; - int64 thread_id = 3; + uint64 thread_id = 3; } message DapDisconnectRequest { @@ -202,7 +202,7 @@ message DapDisconnectRequest { message DapTerminateThreadsRequest { uint64 project_id = 1; uint64 client_id = 2; - repeated int64 thread_ids = 3; + repeated uint64 thread_ids = 3; } message DapThreadsRequest { @@ -246,7 +246,7 @@ message IgnoreBreakpointState { message DapNextRequest { uint64 project_id = 1; uint64 client_id = 2; - int64 thread_id = 3; + uint64 thread_id = 3; optional bool single_thread = 4; optional SteppingGranularity granularity = 5; } @@ -254,7 +254,7 @@ message DapNextRequest { message DapStepInRequest { uint64 project_id = 1; uint64 client_id = 2; - int64 thread_id = 3; + uint64 thread_id = 3; optional uint64 target_id = 4; optional bool single_thread = 5; optional SteppingGranularity granularity = 6; @@ -263,7 +263,7 @@ message DapStepInRequest { message DapStepOutRequest { uint64 project_id = 1; uint64 client_id = 2; - int64 thread_id = 3; + uint64 thread_id = 3; optional bool single_thread = 4; optional SteppingGranularity granularity = 5; } @@ -271,7 +271,7 @@ message DapStepOutRequest { message DapStepBackRequest { uint64 project_id = 1; uint64 client_id = 2; - int64 thread_id = 3; + uint64 thread_id = 3; optional bool single_thread = 4; optional SteppingGranularity granularity = 5; } @@ -279,7 +279,7 @@ message DapStepBackRequest { message DapContinueRequest { uint64 project_id = 1; uint64 client_id = 2; - int64 thread_id = 3; + uint64 thread_id = 3; optional bool single_thread = 4; } @@ -311,7 +311,7 @@ message DapLoadedSourcesResponse { message DapStackTraceRequest { uint64 project_id = 1; uint64 client_id = 2; - int64 thread_id = 3; + uint64 thread_id = 3; optional uint64 start_frame = 4; optional uint64 stack_trace_levels = 5; } @@ -358,7 +358,7 @@ message DapVariable { } message DapThread { - int64 id = 1; + uint64 id = 1; string name = 2; } diff --git a/crates/proto/proto/git.proto b/crates/proto/proto/git.proto index ea08d36371..1d544b15ff 100644 --- a/crates/proto/proto/git.proto +++ b/crates/proto/proto/git.proto @@ -286,17 +286,6 @@ message Unstage { repeated string paths = 4; } -message Stash { - uint64 project_id = 1; - uint64 repository_id = 2; - repeated string paths = 3; -} - -message StashPop { - uint64 project_id = 1; - uint64 repository_id = 2; -} - message Commit { uint64 project_id = 1; reserved 2; diff --git a/crates/proto/proto/zed.proto b/crates/proto/proto/zed.proto index 29ab2b1e90..31f929ec90 100644 --- a/crates/proto/proto/zed.proto +++ b/crates/proto/proto/zed.proto @@ -396,10 +396,8 @@ message Envelope { GetDocumentColor get_document_color = 353; GetDocumentColorResponse get_document_color_response = 354; GetColorPresentation get_color_presentation = 355; - GetColorPresentationResponse get_color_presentation_response = 356; + GetColorPresentationResponse get_color_presentation_response = 356; // current max - Stash stash = 357; - StashPop stash_pop = 358; // current max } reserved 87 to 88; diff --git a/crates/proto/src/proto.rs b/crates/proto/src/proto.rs index 83e5a77c86..918ac9e935 100644 --- a/crates/proto/src/proto.rs +++ b/crates/proto/src/proto.rs @@ -261,8 +261,6 @@ messages!( (Unfollow, Foreground), (UnshareProject, Foreground), (Unstage, Background), - (Stash, Background), - (StashPop, Background), (UpdateBuffer, Foreground), (UpdateBufferFile, Foreground), (UpdateChannelBuffer, Foreground), @@ -421,8 +419,6 @@ request_messages!( (TaskContextForLocation, TaskContext), (Test, Test), (Unstage, Ack), - (Stash, Ack), - (StashPop, Ack), (UpdateBuffer, Ack), (UpdateParticipantLocation, Ack), (UpdateProject, Ack), @@ -553,8 +549,6 @@ entity_messages!( TaskContextForLocation, UnshareProject, Unstage, - Stash, - StashPop, UpdateBuffer, UpdateBufferFile, UpdateDiagnosticSummary, @@ -784,25 +778,6 @@ pub fn split_repository_update( }]) } -impl MultiLspQuery { - pub fn request_str(&self) -> &str { - match self.request { - Some(multi_lsp_query::Request::GetHover(_)) => "GetHover", - Some(multi_lsp_query::Request::GetCodeActions(_)) => "GetCodeActions", - Some(multi_lsp_query::Request::GetSignatureHelp(_)) => "GetSignatureHelp", - Some(multi_lsp_query::Request::GetCodeLens(_)) => "GetCodeLens", - Some(multi_lsp_query::Request::GetDocumentDiagnostics(_)) => "GetDocumentDiagnostics", - Some(multi_lsp_query::Request::GetDocumentColor(_)) => "GetDocumentColor", - Some(multi_lsp_query::Request::GetDefinition(_)) => "GetDefinition", - Some(multi_lsp_query::Request::GetDeclaration(_)) => "GetDeclaration", - Some(multi_lsp_query::Request::GetTypeDefinition(_)) => "GetTypeDefinition", - Some(multi_lsp_query::Request::GetImplementation(_)) => "GetImplementation", - Some(multi_lsp_query::Request::GetReferences(_)) => "GetReferences", - None => "<unknown>", - } - } -} - #[cfg(test)] mod tests { use super::*; diff --git a/crates/recent_projects/src/remote_servers.rs b/crates/recent_projects/src/remote_servers.rs index 655e24860a..aa5103e62b 100644 --- a/crates/recent_projects/src/remote_servers.rs +++ b/crates/recent_projects/src/remote_servers.rs @@ -963,7 +963,7 @@ impl RemoteServerProjects { .child({ let project = project.clone(); // Right-margin to offset it from the Scrollbar - IconButton::new("remove-remote-project", IconName::Trash) + IconButton::new("remove-remote-project", IconName::TrashAlt) .icon_size(IconSize::Small) .shape(IconButtonShape::Square) .size(ButtonSize::Large) diff --git a/crates/remote/src/ssh_session.rs b/crates/remote/src/ssh_session.rs index 4306251e44..e31d3dcfd5 100644 --- a/crates/remote/src/ssh_session.rs +++ b/crates/remote/src/ssh_session.rs @@ -1742,7 +1742,7 @@ impl SshRemoteConnection { } }); - cx.background_spawn(async move { + cx.spawn(async move |_| { let result = futures::select! { result = stdin_task.fuse() => { result.context("stdin") diff --git a/crates/repl/src/notebook/cell.rs b/crates/repl/src/notebook/cell.rs index 18851417c0..2ed68c17d1 100644 --- a/crates/repl/src/notebook/cell.rs +++ b/crates/repl/src/notebook/cell.rs @@ -38,7 +38,7 @@ pub enum CellControlType { impl CellControlType { fn icon_name(&self) -> IconName { match self { - CellControlType::RunCell => IconName::PlayOutlined, + CellControlType::RunCell => IconName::Play, CellControlType::RerunCell => IconName::ArrowCircle, CellControlType::ClearCell => IconName::ListX, CellControlType::CellOptions => IconName::Ellipsis, diff --git a/crates/repl/src/notebook/notebook_ui.rs b/crates/repl/src/notebook/notebook_ui.rs index 3e96cc4d11..d14f458fa9 100644 --- a/crates/repl/src/notebook/notebook_ui.rs +++ b/crates/repl/src/notebook/notebook_ui.rs @@ -343,7 +343,7 @@ impl NotebookEditor { .child( Self::render_notebook_control( "run-all-cells", - IconName::PlayOutlined, + IconName::Play, window, cx, ) diff --git a/crates/rules_library/src/rules_library.rs b/crates/rules_library/src/rules_library.rs index 2f77b4f3cc..be6a69c23b 100644 --- a/crates/rules_library/src/rules_library.rs +++ b/crates/rules_library/src/rules_library.rs @@ -319,7 +319,7 @@ impl PickerDelegate for RulePickerDelegate { }) .into_any() } else { - IconButton::new("delete-rule", IconName::Trash) + IconButton::new("delete-rule", IconName::TrashAlt) .icon_color(Color::Muted) .icon_size(IconSize::Small) .shape(IconButtonShape::Square) @@ -1163,7 +1163,7 @@ impl RulesLibrary { }) .into_any() } else { - IconButton::new("delete-rule", IconName::Trash) + IconButton::new("delete-rule", IconName::TrashAlt) .icon_size(IconSize::Small) .tooltip(move |window, cx| { Tooltip::for_action( diff --git a/crates/search/src/buffer_search.rs b/crates/search/src/buffer_search.rs index 5d77a95027..c2590ec9b0 100644 --- a/crates/search/src/buffer_search.rs +++ b/crates/search/src/buffer_search.rs @@ -228,17 +228,16 @@ impl Render for BufferSearchBar { if in_replace { key_context.add("in_replace"); } - let query_border = if self.query_error.is_some() { + let editor_border = if self.query_error.is_some() { Color::Error.color(cx) } else { cx.theme().colors().border }; - let replacement_border = cx.theme().colors().border; let container_width = window.viewport_size().width; let input_width = SearchInputWidth::calc_width(container_width); - let input_base_styles = |border_color| { + let input_base_styles = || { h_flex() .min_w_32() .w(input_width) @@ -247,7 +246,7 @@ impl Render for BufferSearchBar { .pr_1() .py_1() .border_1() - .border_color(border_color) + .border_color(editor_border) .rounded_lg() }; @@ -257,7 +256,7 @@ impl Render for BufferSearchBar { el.child(Label::new("Find in results").color(Color::Hint)) }) .child( - input_base_styles(query_border) + input_base_styles() .id("editor-scroll") .track_scroll(&self.editor_scroll_handle) .child(self.render_text_input(&self.query_editor, color_override, cx)) @@ -431,13 +430,11 @@ impl Render for BufferSearchBar { let replace_line = should_show_replace_input.then(|| { h_flex() .gap_2() - .child( - input_base_styles(replacement_border).child(self.render_text_input( - &self.replacement_editor, - None, - cx, - )), - ) + .child(input_base_styles().child(self.render_text_input( + &self.replacement_editor, + None, + cx, + ))) .child( h_flex() .min_w_64() @@ -703,11 +700,7 @@ impl BufferSearchBar { window: &mut Window, cx: &mut Context<Self>, ) -> Self { - let query_editor = cx.new(|cx| { - let mut editor = Editor::single_line(window, cx); - editor.set_use_autoclose(false); - editor - }); + let query_editor = cx.new(|cx| Editor::single_line(window, cx)); cx.subscribe_in(&query_editor, window, Self::on_query_editor_event) .detach(); let replacement_editor = cx.new(|cx| Editor::single_line(window, cx)); @@ -778,7 +771,6 @@ impl BufferSearchBar { pub fn dismiss(&mut self, _: &Dismiss, window: &mut Window, cx: &mut Context<Self>) { self.dismissed = true; - self.query_error = None; for searchable_item in self.searchable_items_with_matches.keys() { if let Some(searchable_item) = WeakSearchableItemHandle::upgrade(searchable_item.as_ref(), cx) diff --git a/crates/search/src/project_search.rs b/crates/search/src/project_search.rs index 3b9700c5f1..57ca5e56b9 100644 --- a/crates/search/src/project_search.rs +++ b/crates/search/src/project_search.rs @@ -195,7 +195,6 @@ pub struct ProjectSearch { #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] enum InputPanel { Query, - Replacement, Exclude, Include, } @@ -1963,7 +1962,7 @@ impl Render for ProjectSearchBar { MultipleInputs, } - let input_base_styles = |base_style: BaseStyle, panel: InputPanel| { + let input_base_styles = |base_style: BaseStyle| { h_flex() .min_w_32() .map(|div| match base_style { @@ -1975,11 +1974,11 @@ impl Render for ProjectSearchBar { .pr_1() .py_1() .border_1() - .border_color(search.border_color_for(panel, cx)) + .border_color(search.border_color_for(InputPanel::Query, cx)) .rounded_lg() }; - let query_column = input_base_styles(BaseStyle::SingleInput, InputPanel::Query) + let query_column = input_base_styles(BaseStyle::SingleInput) .on_action(cx.listener(|this, action, window, cx| this.confirm(action, window, cx))) .on_action(cx.listener(|this, action, window, cx| { this.previous_history_query(action, window, cx) @@ -2168,7 +2167,7 @@ impl Render for ProjectSearchBar { .child(h_flex().min_w_64().child(mode_column).child(matches_column)); let replace_line = search.replace_enabled.then(|| { - let replace_column = input_base_styles(BaseStyle::SingleInput, InputPanel::Replacement) + let replace_column = input_base_styles(BaseStyle::SingleInput) .child(self.render_text_input(&search.replacement_editor, cx)); let focus_handle = search.replacement_editor.read(cx).focus_handle(cx); @@ -2242,7 +2241,7 @@ impl Render for ProjectSearchBar { .gap_2() .w(input_width) .child( - input_base_styles(BaseStyle::MultipleInputs, InputPanel::Include) + input_base_styles(BaseStyle::MultipleInputs) .on_action(cx.listener(|this, action, window, cx| { this.previous_history_query(action, window, cx) })) @@ -2252,7 +2251,7 @@ impl Render for ProjectSearchBar { .child(self.render_text_input(&search.included_files_editor, cx)), ) .child( - input_base_styles(BaseStyle::MultipleInputs, InputPanel::Exclude) + input_base_styles(BaseStyle::MultipleInputs) .on_action(cx.listener(|this, action, window, cx| { this.previous_history_query(action, window, cx) })) diff --git a/crates/settings/src/settings.rs b/crates/settings/src/settings.rs index afd4ea0890..4e6bd94d92 100644 --- a/crates/settings/src/settings.rs +++ b/crates/settings/src/settings.rs @@ -7,7 +7,7 @@ mod settings_json; mod settings_store; mod vscode_import; -use gpui::{App, Global}; +use gpui::App; use rust_embed::RustEmbed; use std::{borrow::Cow, fmt, str}; use util::asset_str; @@ -27,11 +27,6 @@ pub use settings_store::{ }; pub use vscode_import::{VsCodeSettings, VsCodeSettingsSource}; -#[derive(Clone, Debug, PartialEq)] -pub struct ActiveSettingsProfileName(pub String); - -impl Global for ActiveSettingsProfileName {} - #[derive(Copy, Clone, PartialEq, Eq, Debug, Hash, PartialOrd, Ord)] pub struct WorktreeId(usize); @@ -79,7 +74,6 @@ pub fn init(cx: &mut App) { .unwrap(); cx.set_global(settings); BaseKeymap::register(cx); - SettingsStore::observe_active_settings_profile_name(cx).detach(); } pub fn default_settings() -> Cow<'static, str> { diff --git a/crates/settings/src/settings_store.rs b/crates/settings/src/settings_store.rs index 7f6437dac8..0d23385a68 100644 --- a/crates/settings/src/settings_store.rs +++ b/crates/settings/src/settings_store.rs @@ -26,8 +26,8 @@ use util::{ pub type EditorconfigProperties = ec4rs::Properties; use crate::{ - ActiveSettingsProfileName, ParameterizedJsonSchema, SettingsJsonSchemaParams, VsCodeSettings, - WorktreeId, parse_json_with_comments, update_value_in_json_text, + ParameterizedJsonSchema, SettingsJsonSchemaParams, VsCodeSettings, WorktreeId, + parse_json_with_comments, update_value_in_json_text, }; /// A value that can be defined as a user setting. @@ -122,8 +122,6 @@ pub struct SettingsSources<'a, T> { pub user: Option<&'a T>, /// The user settings for the current release channel. pub release_channel: Option<&'a T>, - /// The settings associated with an enabled settings profile - pub profile: Option<&'a T>, /// The server's settings. pub server: Option<&'a T>, /// The project settings, ordered from least specific to most specific. @@ -143,7 +141,6 @@ impl<'a, T: Serialize> SettingsSources<'a, T> { .chain(self.extensions) .chain(self.user) .chain(self.release_channel) - .chain(self.profile) .chain(self.server) .chain(self.project.iter().copied()) } @@ -285,14 +282,6 @@ impl SettingsStore { } } - pub fn observe_active_settings_profile_name(cx: &mut App) -> gpui::Subscription { - cx.observe_global::<ActiveSettingsProfileName>(|cx| { - Self::update_global(cx, |store, cx| { - store.recompute_values(None, cx).log_err(); - }); - }) - } - pub fn update<C, R>(cx: &mut C, f: impl FnOnce(&mut Self, &mut C) -> R) -> R where C: BorrowAppContext, @@ -332,17 +321,6 @@ impl SettingsStore { .log_err(); } - let mut profile_value = None; - if let Some(active_profile) = cx.try_global::<ActiveSettingsProfileName>() { - if let Some(profiles) = self.raw_user_settings.get("profiles") { - if let Some(profile_settings) = profiles.get(&active_profile.0) { - profile_value = setting_value - .deserialize_setting(profile_settings) - .log_err(); - } - } - } - let server_value = self .raw_server_settings .as_ref() @@ -362,7 +340,6 @@ impl SettingsStore { extensions: extension_value.as_ref(), user: user_value.as_ref(), release_channel: release_channel_value.as_ref(), - profile: profile_value.as_ref(), server: server_value.as_ref(), project: &[], }, @@ -425,16 +402,6 @@ impl SettingsStore { &self.raw_user_settings } - /// Get the configured settings profile names. - pub fn configured_settings_profiles(&self) -> impl Iterator<Item = &str> { - self.raw_user_settings - .get("profiles") - .and_then(|v| v.as_object()) - .into_iter() - .flat_map(|obj| obj.keys()) - .map(|s| s.as_str()) - } - /// Access the raw JSON value of the global settings. pub fn raw_global_settings(&self) -> Option<&Value> { self.raw_global_settings.as_ref() @@ -565,9 +532,7 @@ impl SettingsStore { })) .ok(); } -} -impl SettingsStore { /// Updates the value of a setting in a JSON file, returning the new text /// for that JSON file. pub fn new_text_for_update<T: Settings>( @@ -1036,18 +1001,18 @@ impl SettingsStore { const ZED_SETTINGS: &str = "ZedSettings"; let zed_settings_ref = add_new_subschema(&mut generator, ZED_SETTINGS, combined_schema); - // add `ZedSettingsOverride` which is the same as `ZedSettings` except that unknown - // fields are rejected. This is used for release stage settings and profiles. - let mut zed_settings_override = zed_settings_ref.clone(); - zed_settings_override.insert("unevaluatedProperties".to_string(), false.into()); - let zed_settings_override_ref = add_new_subschema( + // add `ZedReleaseStageSettings` which is the same as `ZedSettings` except that unknown + // fields are rejected. + let mut zed_release_stage_settings = zed_settings_ref.clone(); + zed_release_stage_settings.insert("unevaluatedProperties".to_string(), false.into()); + let zed_release_stage_settings_ref = add_new_subschema( &mut generator, - "ZedSettingsOverride", - zed_settings_override.to_value(), + "ZedReleaseStageSettings", + zed_release_stage_settings.to_value(), ); // Remove `"additionalProperties": false` added by `DefaultDenyUnknownFields` so that - // unknown fields can be handled by the root schema and `ZedSettingsOverride`. + // unknown fields can be handled by the root schema and `ZedReleaseStageSettings`. let mut definitions = generator.take_definitions(true); definitions .get_mut(ZED_SETTINGS) @@ -1067,20 +1032,15 @@ impl SettingsStore { "$schema": meta_schema, "title": "Zed Settings", "unevaluatedProperties": false, - // ZedSettings + settings overrides for each release stage / profiles + // ZedSettings + settings overrides for each release stage "allOf": [ zed_settings_ref, { "properties": { - "dev": zed_settings_override_ref, - "nightly": zed_settings_override_ref, - "stable": zed_settings_override_ref, - "preview": zed_settings_override_ref, - "profiles": { - "type": "object", - "description": "Configures any number of settings profiles.", - "additionalProperties": zed_settings_override_ref - } + "dev": zed_release_stage_settings_ref, + "nightly": zed_release_stage_settings_ref, + "stable": zed_release_stage_settings_ref, + "preview": zed_release_stage_settings_ref, } } ], @@ -1139,16 +1099,6 @@ impl SettingsStore { } } - let mut profile_settings = None; - if let Some(active_profile) = cx.try_global::<ActiveSettingsProfileName>() { - if let Some(profiles) = self.raw_user_settings.get("profiles") { - if let Some(profile_json) = profiles.get(&active_profile.0) { - profile_settings = - setting_value.deserialize_setting(profile_json).log_err(); - } - } - } - // If the global settings file changed, reload the global value for the field. if changed_local_path.is_none() { if let Some(value) = setting_value @@ -1159,7 +1109,6 @@ impl SettingsStore { extensions: extension_settings.as_ref(), user: user_settings.as_ref(), release_channel: release_channel_settings.as_ref(), - profile: profile_settings.as_ref(), server: server_settings.as_ref(), project: &[], }, @@ -1212,7 +1161,6 @@ impl SettingsStore { extensions: extension_settings.as_ref(), user: user_settings.as_ref(), release_channel: release_channel_settings.as_ref(), - profile: profile_settings.as_ref(), server: server_settings.as_ref(), project: &project_settings_stack.iter().collect::<Vec<_>>(), }, @@ -1338,9 +1286,6 @@ impl<T: Settings> AnySettingValue for SettingValue<T> { release_channel: values .release_channel .map(|value| value.0.downcast_ref::<T::FileContent>().unwrap()), - profile: values - .profile - .map(|value| value.0.downcast_ref::<T::FileContent>().unwrap()), server: values .server .map(|value| value.0.downcast_ref::<T::FileContent>().unwrap()), diff --git a/crates/settings_profile_selector/Cargo.toml b/crates/settings_profile_selector/Cargo.toml deleted file mode 100644 index 189272e54b..0000000000 --- a/crates/settings_profile_selector/Cargo.toml +++ /dev/null @@ -1,35 +0,0 @@ -[package] -name = "settings_profile_selector" -version = "0.1.0" -edition.workspace = true -publish.workspace = true -license = "GPL-3.0-or-later" - -[lints] -workspace = true - -[lib] -path = "src/settings_profile_selector.rs" -doctest = false - -[dependencies] -fuzzy.workspace = true -gpui.workspace = true -picker.workspace = true -settings.workspace = true -ui.workspace = true -workspace-hack.workspace = true -workspace.workspace = true -zed_actions.workspace = true - -[dev-dependencies] -client = { workspace = true, features = ["test-support"] } -editor = { workspace = true, features = ["test-support"] } -gpui = { workspace = true, features = ["test-support"] } -language = { workspace = true, features = ["test-support"] } -menu.workspace = true -project = { workspace = true, features = ["test-support"] } -serde_json.workspace = true -settings = { workspace = true, features = ["test-support"] } -theme = { workspace = true, features = ["test-support"] } -workspace = { workspace = true, features = ["test-support"] } diff --git a/crates/settings_profile_selector/LICENSE-GPL b/crates/settings_profile_selector/LICENSE-GPL deleted file mode 120000 index 89e542f750..0000000000 --- a/crates/settings_profile_selector/LICENSE-GPL +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE-GPL \ No newline at end of file diff --git a/crates/settings_profile_selector/src/settings_profile_selector.rs b/crates/settings_profile_selector/src/settings_profile_selector.rs deleted file mode 100644 index 8a34c12051..0000000000 --- a/crates/settings_profile_selector/src/settings_profile_selector.rs +++ /dev/null @@ -1,581 +0,0 @@ -use fuzzy::{StringMatch, StringMatchCandidate, match_strings}; -use gpui::{ - App, Context, DismissEvent, Entity, EventEmitter, Focusable, Render, Task, WeakEntity, Window, -}; -use picker::{Picker, PickerDelegate}; -use settings::{ActiveSettingsProfileName, SettingsStore}; -use ui::{HighlightedLabel, ListItem, ListItemSpacing, prelude::*}; -use workspace::{ModalView, Workspace}; - -pub fn init(cx: &mut App) { - cx.on_action(|_: &zed_actions::settings_profile_selector::Toggle, cx| { - workspace::with_active_or_new_workspace(cx, |workspace, window, cx| { - toggle_settings_profile_selector(workspace, window, cx); - }); - }); -} - -fn toggle_settings_profile_selector( - workspace: &mut Workspace, - window: &mut Window, - cx: &mut Context<Workspace>, -) { - workspace.toggle_modal(window, cx, |window, cx| { - let delegate = SettingsProfileSelectorDelegate::new(cx.entity().downgrade(), window, cx); - SettingsProfileSelector::new(delegate, window, cx) - }); -} - -pub struct SettingsProfileSelector { - picker: Entity<Picker<SettingsProfileSelectorDelegate>>, -} - -impl ModalView for SettingsProfileSelector {} - -impl EventEmitter<DismissEvent> for SettingsProfileSelector {} - -impl Focusable for SettingsProfileSelector { - fn focus_handle(&self, cx: &App) -> gpui::FocusHandle { - self.picker.focus_handle(cx) - } -} - -impl Render for SettingsProfileSelector { - fn render(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement { - v_flex().w(rems(22.)).child(self.picker.clone()) - } -} - -impl SettingsProfileSelector { - pub fn new( - delegate: SettingsProfileSelectorDelegate, - window: &mut Window, - cx: &mut Context<Self>, - ) -> Self { - let picker = cx.new(|cx| Picker::uniform_list(delegate, window, cx)); - Self { picker } - } -} - -pub struct SettingsProfileSelectorDelegate { - matches: Vec<StringMatch>, - profile_names: Vec<Option<String>>, - original_profile_name: Option<String>, - selected_profile_name: Option<String>, - selected_index: usize, - selection_completed: bool, - selector: WeakEntity<SettingsProfileSelector>, -} - -impl SettingsProfileSelectorDelegate { - fn new( - selector: WeakEntity<SettingsProfileSelector>, - _: &mut Window, - cx: &mut Context<SettingsProfileSelector>, - ) -> Self { - let settings_store = cx.global::<SettingsStore>(); - let mut profile_names: Vec<Option<String>> = settings_store - .configured_settings_profiles() - .map(|s| Some(s.to_string())) - .collect(); - profile_names.insert(0, None); - - let matches = profile_names - .iter() - .enumerate() - .map(|(ix, profile_name)| StringMatch { - candidate_id: ix, - score: 0.0, - positions: Default::default(), - string: display_name(profile_name), - }) - .collect(); - - let profile_name = cx - .try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()); - - let mut this = Self { - matches, - profile_names, - original_profile_name: profile_name.clone(), - selected_profile_name: None, - selected_index: 0, - selection_completed: false, - selector, - }; - - if let Some(profile_name) = profile_name { - this.select_if_matching(&profile_name); - } - - this - } - - fn select_if_matching(&mut self, profile_name: &str) { - self.selected_index = self - .matches - .iter() - .position(|mat| mat.string == profile_name) - .unwrap_or(self.selected_index); - } - - fn set_selected_profile( - &self, - cx: &mut Context<Picker<SettingsProfileSelectorDelegate>>, - ) -> Option<String> { - let mat = self.matches.get(self.selected_index)?; - let profile_name = self.profile_names.get(mat.candidate_id)?; - return Self::update_active_profile_name_global(profile_name.clone(), cx); - } - - fn update_active_profile_name_global( - profile_name: Option<String>, - cx: &mut Context<Picker<SettingsProfileSelectorDelegate>>, - ) -> Option<String> { - if let Some(profile_name) = profile_name { - cx.set_global(ActiveSettingsProfileName(profile_name.clone())); - return Some(profile_name.clone()); - } - - if cx.has_global::<ActiveSettingsProfileName>() { - cx.remove_global::<ActiveSettingsProfileName>(); - } - - None - } -} - -impl PickerDelegate for SettingsProfileSelectorDelegate { - type ListItem = ListItem; - - fn placeholder_text(&self, _: &mut Window, _: &mut App) -> std::sync::Arc<str> { - "Select a settings profile...".into() - } - - fn match_count(&self) -> usize { - self.matches.len() - } - - fn selected_index(&self) -> usize { - self.selected_index - } - - fn set_selected_index( - &mut self, - ix: usize, - _: &mut Window, - cx: &mut Context<Picker<SettingsProfileSelectorDelegate>>, - ) { - self.selected_index = ix; - self.selected_profile_name = self.set_selected_profile(cx); - } - - fn update_matches( - &mut self, - query: String, - window: &mut Window, - cx: &mut Context<Picker<SettingsProfileSelectorDelegate>>, - ) -> Task<()> { - let background = cx.background_executor().clone(); - let candidates = self - .profile_names - .iter() - .enumerate() - .map(|(id, profile_name)| StringMatchCandidate::new(id, &display_name(profile_name))) - .collect::<Vec<_>>(); - - cx.spawn_in(window, async move |this, cx| { - let matches = if query.is_empty() { - candidates - .into_iter() - .enumerate() - .map(|(index, candidate)| StringMatch { - candidate_id: index, - string: candidate.string, - positions: Vec::new(), - score: 0.0, - }) - .collect() - } else { - match_strings( - &candidates, - &query, - false, - true, - 100, - &Default::default(), - background, - ) - .await - }; - - this.update_in(cx, |this, _, cx| { - this.delegate.matches = matches; - this.delegate.selected_index = this - .delegate - .selected_index - .min(this.delegate.matches.len().saturating_sub(1)); - this.delegate.selected_profile_name = this.delegate.set_selected_profile(cx); - }) - .ok(); - }) - } - - fn confirm( - &mut self, - _: bool, - _: &mut Window, - cx: &mut Context<Picker<SettingsProfileSelectorDelegate>>, - ) { - self.selection_completed = true; - self.selector - .update(cx, |_, cx| { - cx.emit(DismissEvent); - }) - .ok(); - } - - fn dismissed( - &mut self, - _: &mut Window, - cx: &mut Context<Picker<SettingsProfileSelectorDelegate>>, - ) { - if !self.selection_completed { - SettingsProfileSelectorDelegate::update_active_profile_name_global( - self.original_profile_name.clone(), - cx, - ); - } - self.selector.update(cx, |_, cx| cx.emit(DismissEvent)).ok(); - } - - fn render_match( - &self, - ix: usize, - selected: bool, - _: &mut Window, - _: &mut Context<Picker<Self>>, - ) -> Option<Self::ListItem> { - let mat = &self.matches[ix]; - let profile_name = &self.profile_names[mat.candidate_id]; - - Some( - ListItem::new(ix) - .inset(true) - .spacing(ListItemSpacing::Sparse) - .toggle_state(selected) - .child(HighlightedLabel::new( - display_name(profile_name), - mat.positions.clone(), - )), - ) - } -} - -fn display_name(profile_name: &Option<String>) -> String { - profile_name.clone().unwrap_or("Disabled".into()) -} - -#[cfg(test)] -mod tests { - use super::*; - use client; - use editor; - use gpui::{TestAppContext, UpdateGlobal, VisualTestContext}; - use language; - use menu::{Cancel, Confirm, SelectNext, SelectPrevious}; - use project::{FakeFs, Project}; - use serde_json::json; - use settings::Settings; - use theme::{self, ThemeSettings}; - use workspace::{self, AppState}; - use zed_actions::settings_profile_selector; - - async fn init_test( - profiles_json: serde_json::Value, - cx: &mut TestAppContext, - ) -> (Entity<Workspace>, &mut VisualTestContext) { - cx.update(|cx| { - let state = AppState::test(cx); - let settings_store = SettingsStore::test(cx); - cx.set_global(settings_store); - settings::init(cx); - theme::init(theme::LoadThemes::JustBase, cx); - ThemeSettings::register(cx); - client::init_settings(cx); - language::init(cx); - super::init(cx); - editor::init(cx); - workspace::init_settings(cx); - Project::init_settings(cx); - state - }); - - cx.update(|cx| { - SettingsStore::update_global(cx, |store, cx| { - let settings_json = json!({ - "buffer_font_size": 10.0, - "profiles": profiles_json, - }); - - store - .set_user_settings(&settings_json.to_string(), cx) - .unwrap(); - }); - }); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, ["/test".as_ref()], cx).await; - let (workspace, cx) = - cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx)); - - cx.update(|_, cx| { - assert!(!cx.has_global::<ActiveSettingsProfileName>()); - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 10.0); - }); - - (workspace, cx) - } - - #[track_caller] - fn active_settings_profile_picker( - workspace: &Entity<Workspace>, - cx: &mut VisualTestContext, - ) -> Entity<Picker<SettingsProfileSelectorDelegate>> { - workspace.update(cx, |workspace, cx| { - workspace - .active_modal::<SettingsProfileSelector>(cx) - .expect("settings profile selector is not open") - .read(cx) - .picker - .clone() - }) - } - - #[gpui::test] - async fn test_settings_profile_selector_state(cx: &mut TestAppContext) { - let classroom_and_streaming_profile_name = "Classroom / Streaming".to_string(); - let demo_videos_profile_name = "Demo Videos".to_string(); - - let profiles_json = json!({ - classroom_and_streaming_profile_name.clone(): { - "buffer_font_size": 20.0, - }, - demo_videos_profile_name.clone(): { - "buffer_font_size": 15.0 - } - }); - let (workspace, cx) = init_test(profiles_json.clone(), cx).await; - - cx.dispatch_action(settings_profile_selector::Toggle); - let picker = active_settings_profile_picker(&workspace, cx); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.matches.len(), 3); - assert_eq!(picker.delegate.matches[0].string, display_name(&None)); - assert_eq!( - picker.delegate.matches[1].string, - classroom_and_streaming_profile_name - ); - assert_eq!(picker.delegate.matches[2].string, demo_videos_profile_name); - assert_eq!(picker.delegate.matches.get(3), None); - - assert_eq!(picker.delegate.selected_index, 0); - assert_eq!(picker.delegate.selected_profile_name, None); - - assert_eq!(cx.try_global::<ActiveSettingsProfileName>(), None); - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 10.0); - }); - - cx.dispatch_action(Confirm); - - cx.update(|_, cx| { - assert_eq!(cx.try_global::<ActiveSettingsProfileName>(), None); - }); - - cx.dispatch_action(settings_profile_selector::Toggle); - let picker = active_settings_profile_picker(&workspace, cx); - cx.dispatch_action(SelectNext); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.selected_index, 1); - assert_eq!( - picker.delegate.selected_profile_name, - Some(classroom_and_streaming_profile_name.clone()) - ); - - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(classroom_and_streaming_profile_name.clone()) - ); - - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 20.0); - }); - - cx.dispatch_action(Cancel); - - cx.update(|_, cx| { - assert_eq!(cx.try_global::<ActiveSettingsProfileName>(), None); - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 10.0); - }); - - cx.dispatch_action(settings_profile_selector::Toggle); - let picker = active_settings_profile_picker(&workspace, cx); - - cx.dispatch_action(SelectNext); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.selected_index, 1); - assert_eq!( - picker.delegate.selected_profile_name, - Some(classroom_and_streaming_profile_name.clone()) - ); - - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(classroom_and_streaming_profile_name.clone()) - ); - - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 20.0); - }); - - cx.dispatch_action(SelectNext); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.selected_index, 2); - assert_eq!( - picker.delegate.selected_profile_name, - Some(demo_videos_profile_name.clone()) - ); - - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(demo_videos_profile_name.clone()) - ); - - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 15.0); - }); - - cx.dispatch_action(Confirm); - - cx.update(|_, cx| { - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(demo_videos_profile_name.clone()) - ); - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 15.0); - }); - - cx.dispatch_action(settings_profile_selector::Toggle); - let picker = active_settings_profile_picker(&workspace, cx); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.selected_index, 2); - assert_eq!( - picker.delegate.selected_profile_name, - Some(demo_videos_profile_name.clone()) - ); - - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(demo_videos_profile_name.clone()) - ); - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 15.0); - }); - - cx.dispatch_action(SelectPrevious); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.selected_index, 1); - assert_eq!( - picker.delegate.selected_profile_name, - Some(classroom_and_streaming_profile_name.clone()) - ); - - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(classroom_and_streaming_profile_name.clone()) - ); - - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 20.0); - }); - - cx.dispatch_action(Cancel); - - cx.update(|_, cx| { - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(demo_videos_profile_name.clone()) - ); - - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 15.0); - }); - - cx.dispatch_action(settings_profile_selector::Toggle); - let picker = active_settings_profile_picker(&workspace, cx); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.selected_index, 2); - assert_eq!( - picker.delegate.selected_profile_name, - Some(demo_videos_profile_name.clone()) - ); - - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(demo_videos_profile_name) - ); - - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 15.0); - }); - - cx.dispatch_action(SelectPrevious); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.selected_index, 1); - assert_eq!( - picker.delegate.selected_profile_name, - Some(classroom_and_streaming_profile_name.clone()) - ); - - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - Some(classroom_and_streaming_profile_name) - ); - - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 20.0); - }); - - cx.dispatch_action(SelectPrevious); - - picker.read_with(cx, |picker, cx| { - assert_eq!(picker.delegate.selected_index, 0); - assert_eq!(picker.delegate.selected_profile_name, None); - - assert_eq!( - cx.try_global::<ActiveSettingsProfileName>() - .map(|p| p.0.clone()), - None - ); - - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 10.0); - }); - - cx.dispatch_action(Confirm); - - cx.update(|_, cx| { - assert_eq!(cx.try_global::<ActiveSettingsProfileName>(), None); - assert_eq!(ThemeSettings::get_global(cx).buffer_font_size(cx).0, 10.0); - }); - } -} diff --git a/crates/settings_ui/Cargo.toml b/crates/settings_ui/Cargo.toml index a4c47081c6..02327045fd 100644 --- a/crates/settings_ui/Cargo.toml +++ b/crates/settings_ui/Cargo.toml @@ -30,6 +30,7 @@ menu.workspace = true notifications.workspace = true paths.workspace = true project.workspace = true +schemars.workspace = true search.workspace = true serde.workspace = true serde_json.workspace = true @@ -44,10 +45,3 @@ ui_input.workspace = true util.workspace = true workspace-hack.workspace = true workspace.workspace = true - -[dev-dependencies] -db = {"workspace"= true, "features" = ["test-support"]} -fs = { workspace = true, features = ["test-support"] } -gpui = { workspace = true, features = ["test-support"] } -project = { workspace = true, features = ["test-support"] } -workspace = { workspace = true, features = ["test-support"] } diff --git a/crates/settings_ui/src/keybindings.rs b/crates/settings_ui/src/keybindings.rs index 70afe1729c..9da7242e36 100644 --- a/crates/settings_ui/src/keybindings.rs +++ b/crates/settings_ui/src/keybindings.rs @@ -11,10 +11,11 @@ use editor::{CompletionProvider, Editor, EditorEvent}; use fs::Fs; use fuzzy::{StringMatch, StringMatchCandidate}; use gpui::{ - Action, AppContext as _, AsyncApp, Axis, ClickEvent, Context, DismissEvent, Entity, - EventEmitter, FocusHandle, Focusable, Global, IsZero, KeyContext, Keystroke, MouseButton, - Point, ScrollStrategy, ScrollWheelEvent, Stateful, StyledText, Subscription, Task, - TextStyleRefinement, WeakEntity, actions, anchored, deferred, div, + Action, Animation, AnimationExt, AppContext as _, AsyncApp, Axis, ClickEvent, Context, + DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, FontWeight, Global, IsZero, + KeyContext, Keystroke, Modifiers, ModifiersChangedEvent, MouseButton, Point, ScrollStrategy, + ScrollWheelEvent, Stateful, StyledText, Subscription, Task, TextStyleRefinement, WeakEntity, + actions, anchored, deferred, div, }; use language::{Language, LanguageConfig, ToOffset as _}; use notifications::status_toast::{StatusToast, ToastIcon}; @@ -34,10 +35,7 @@ use workspace::{ use crate::{ keybindings::persistence::KEYBINDING_EDITORS, - ui_components::{ - keystroke_input::{ClearKeystrokes, KeystrokeInput, StartRecording, StopRecording}, - table::{ColumnWidths, ResizeBehavior, Table, TableInteractionState}, - }, + ui_components::table::{ColumnWidths, ResizeBehavior, Table, TableInteractionState}, }; const NO_ACTION_ARGUMENTS_TEXT: SharedString = SharedString::new_static("<no arguments>"); @@ -74,6 +72,18 @@ actions!( ] ); +actions!( + keystroke_input, + [ + /// Starts recording keystrokes + StartRecording, + /// Stops recording keystrokes + StopRecording, + /// Clears the recorded keystrokes + ClearKeystrokes, + ] +); + pub fn init(cx: &mut App) { let keymap_event_channel = KeymapEventChannel::new(); cx.set_global(keymap_event_channel); @@ -383,7 +393,7 @@ impl KeymapEditor { let keystroke_editor = cx.new(|cx| { let mut keystroke_editor = KeystrokeInput::new(None, window, cx); - keystroke_editor.set_search(true); + keystroke_editor.search = true; keystroke_editor }); @@ -1680,7 +1690,7 @@ impl Render for KeymapEditor { move |window, cx| this.read(cx).render_no_matches_hint(window, cx) }) .column_widths([ - DefiniteLength::Absolute(AbsoluteLength::Pixels(px(36.))), + DefiniteLength::Absolute(AbsoluteLength::Pixels(px(40.))), DefiniteLength::Fraction(0.25), DefiniteLength::Fraction(0.20), DefiniteLength::Fraction(0.14), @@ -1755,7 +1765,6 @@ impl Render for KeymapEditor { }, ) .into_any_element(); - let keystrokes = binding.ui_key_binding().cloned().map_or( binding .keystroke_text() @@ -1764,7 +1773,6 @@ impl Render for KeymapEditor { .into_any_element(), IntoElement::into_any_element, ); - let action_arguments = match binding.action().arguments.clone() { Some(arguments) => arguments.into_any_element(), @@ -1777,7 +1785,6 @@ impl Render for KeymapEditor { } } }; - let context = binding.context().cloned().map_or( gpui::Empty.into_any_element(), |context| { @@ -1802,13 +1809,11 @@ impl Render for KeymapEditor { .into_any_element() }, ); - let source = binding .keybind_source() .map(|source| source.name()) .unwrap_or_default() .into_any_element(); - Some([ icon.into_any_element(), action, @@ -2969,6 +2974,524 @@ async fn remove_keybinding( Ok(()) } +#[derive(PartialEq, Eq, Debug, Copy, Clone)] +enum CloseKeystrokeResult { + Partial, + Close, + None, +} + +struct KeystrokeInput { + keystrokes: Vec<Keystroke>, + placeholder_keystrokes: Option<Vec<Keystroke>>, + outer_focus_handle: FocusHandle, + inner_focus_handle: FocusHandle, + intercept_subscription: Option<Subscription>, + _focus_subscriptions: [Subscription; 2], + search: bool, + /// Handles tripe escape to stop recording + close_keystrokes: Option<Vec<Keystroke>>, + close_keystrokes_start: Option<usize>, + previous_modifiers: Modifiers, +} + +impl KeystrokeInput { + const KEYSTROKE_COUNT_MAX: usize = 3; + + fn new( + placeholder_keystrokes: Option<Vec<Keystroke>>, + window: &mut Window, + cx: &mut Context<Self>, + ) -> Self { + let outer_focus_handle = cx.focus_handle(); + let inner_focus_handle = cx.focus_handle(); + let _focus_subscriptions = [ + cx.on_focus_in(&inner_focus_handle, window, Self::on_inner_focus_in), + cx.on_focus_out(&inner_focus_handle, window, Self::on_inner_focus_out), + ]; + Self { + keystrokes: Vec::new(), + placeholder_keystrokes, + inner_focus_handle, + outer_focus_handle, + intercept_subscription: None, + _focus_subscriptions, + search: false, + close_keystrokes: None, + close_keystrokes_start: None, + previous_modifiers: Modifiers::default(), + } + } + + fn set_keystrokes(&mut self, keystrokes: Vec<Keystroke>, cx: &mut Context<Self>) { + self.keystrokes = keystrokes; + self.keystrokes_changed(cx); + } + + fn dummy(modifiers: Modifiers) -> Keystroke { + return Keystroke { + modifiers, + key: "".to_string(), + key_char: None, + }; + } + + fn keystrokes_changed(&self, cx: &mut Context<Self>) { + cx.emit(()); + cx.notify(); + } + + fn key_context() -> KeyContext { + let mut key_context = KeyContext::default(); + key_context.add("KeystrokeInput"); + key_context + } + + fn handle_possible_close_keystroke( + &mut self, + keystroke: &Keystroke, + window: &mut Window, + cx: &mut Context<Self>, + ) -> CloseKeystrokeResult { + let Some(keybind_for_close_action) = window + .highest_precedence_binding_for_action_in_context(&StopRecording, Self::key_context()) + else { + log::trace!("No keybinding to stop recording keystrokes in keystroke input"); + self.close_keystrokes.take(); + self.close_keystrokes_start.take(); + return CloseKeystrokeResult::None; + }; + let action_keystrokes = keybind_for_close_action.keystrokes(); + + if let Some(mut close_keystrokes) = self.close_keystrokes.take() { + let mut index = 0; + + while index < action_keystrokes.len() && index < close_keystrokes.len() { + if !close_keystrokes[index].should_match(&action_keystrokes[index]) { + break; + } + index += 1; + } + if index == close_keystrokes.len() { + if index >= action_keystrokes.len() { + self.close_keystrokes_start.take(); + return CloseKeystrokeResult::None; + } + if keystroke.should_match(&action_keystrokes[index]) { + if action_keystrokes.len() >= 1 && index == action_keystrokes.len() - 1 { + self.stop_recording(&StopRecording, window, cx); + return CloseKeystrokeResult::Close; + } else { + close_keystrokes.push(keystroke.clone()); + self.close_keystrokes = Some(close_keystrokes); + return CloseKeystrokeResult::Partial; + } + } else { + self.close_keystrokes_start.take(); + return CloseKeystrokeResult::None; + } + } + } else if let Some(first_action_keystroke) = action_keystrokes.first() + && keystroke.should_match(first_action_keystroke) + { + self.close_keystrokes = Some(vec![keystroke.clone()]); + return CloseKeystrokeResult::Partial; + } + self.close_keystrokes_start.take(); + return CloseKeystrokeResult::None; + } + + fn on_modifiers_changed( + &mut self, + event: &ModifiersChangedEvent, + _window: &mut Window, + cx: &mut Context<Self>, + ) { + let keystrokes_len = self.keystrokes.len(); + + if self.previous_modifiers.modified() + && event.modifiers.is_subset_of(&self.previous_modifiers) + { + self.previous_modifiers &= event.modifiers; + cx.stop_propagation(); + return; + } + + if let Some(last) = self.keystrokes.last_mut() + && last.key.is_empty() + && keystrokes_len <= Self::KEYSTROKE_COUNT_MAX + { + if self.search { + if self.previous_modifiers.modified() { + last.modifiers |= event.modifiers; + self.previous_modifiers |= event.modifiers; + } else { + self.keystrokes.push(Self::dummy(event.modifiers)); + self.previous_modifiers |= event.modifiers; + } + } else if !event.modifiers.modified() { + self.keystrokes.pop(); + } else { + last.modifiers = event.modifiers; + } + + self.keystrokes_changed(cx); + } else if keystrokes_len < Self::KEYSTROKE_COUNT_MAX { + self.keystrokes.push(Self::dummy(event.modifiers)); + if self.search { + self.previous_modifiers |= event.modifiers; + } + self.keystrokes_changed(cx); + } + cx.stop_propagation(); + } + + fn handle_keystroke( + &mut self, + keystroke: &Keystroke, + window: &mut Window, + cx: &mut Context<Self>, + ) { + let close_keystroke_result = self.handle_possible_close_keystroke(keystroke, window, cx); + if close_keystroke_result != CloseKeystrokeResult::Close { + let key_len = self.keystrokes.len(); + if let Some(last) = self.keystrokes.last_mut() + && last.key.is_empty() + && key_len <= Self::KEYSTROKE_COUNT_MAX + { + if self.search { + last.key = keystroke.key.clone(); + if close_keystroke_result == CloseKeystrokeResult::Partial + && self.close_keystrokes_start.is_none() + { + self.close_keystrokes_start = Some(self.keystrokes.len() - 1); + } + if self.search { + self.previous_modifiers = keystroke.modifiers; + } + self.keystrokes_changed(cx); + cx.stop_propagation(); + return; + } else { + self.keystrokes.pop(); + } + } + if self.keystrokes.len() < Self::KEYSTROKE_COUNT_MAX { + if close_keystroke_result == CloseKeystrokeResult::Partial + && self.close_keystrokes_start.is_none() + { + self.close_keystrokes_start = Some(self.keystrokes.len()); + } + self.keystrokes.push(keystroke.clone()); + if self.search { + self.previous_modifiers = keystroke.modifiers; + } else if self.keystrokes.len() < Self::KEYSTROKE_COUNT_MAX { + self.keystrokes.push(Self::dummy(keystroke.modifiers)); + } + } else if close_keystroke_result != CloseKeystrokeResult::Partial { + self.clear_keystrokes(&ClearKeystrokes, window, cx); + } + } + self.keystrokes_changed(cx); + cx.stop_propagation(); + } + + fn on_inner_focus_in(&mut self, _window: &mut Window, cx: &mut Context<Self>) { + if self.intercept_subscription.is_none() { + let listener = cx.listener(|this, event: &gpui::KeystrokeEvent, window, cx| { + this.handle_keystroke(&event.keystroke, window, cx); + }); + self.intercept_subscription = Some(cx.intercept_keystrokes(listener)) + } + } + + fn on_inner_focus_out( + &mut self, + _event: gpui::FocusOutEvent, + _window: &mut Window, + cx: &mut Context<Self>, + ) { + self.intercept_subscription.take(); + cx.notify(); + } + + fn keystrokes(&self) -> &[Keystroke] { + if let Some(placeholders) = self.placeholder_keystrokes.as_ref() + && self.keystrokes.is_empty() + { + return placeholders; + } + if !self.search + && self + .keystrokes + .last() + .map_or(false, |last| last.key.is_empty()) + { + return &self.keystrokes[..self.keystrokes.len() - 1]; + } + return &self.keystrokes; + } + + fn render_keystrokes(&self, is_recording: bool) -> impl Iterator<Item = Div> { + let keystrokes = if let Some(placeholders) = self.placeholder_keystrokes.as_ref() + && self.keystrokes.is_empty() + { + if is_recording { + &[] + } else { + placeholders.as_slice() + } + } else { + &self.keystrokes + }; + keystrokes.iter().map(move |keystroke| { + h_flex().children(ui::render_keystroke( + keystroke, + Some(Color::Default), + Some(rems(0.875).into()), + ui::PlatformStyle::platform(), + false, + )) + }) + } + + fn start_recording(&mut self, _: &StartRecording, window: &mut Window, cx: &mut Context<Self>) { + window.focus(&self.inner_focus_handle); + self.clear_keystrokes(&ClearKeystrokes, window, cx); + self.previous_modifiers = window.modifiers(); + cx.stop_propagation(); + } + + fn stop_recording(&mut self, _: &StopRecording, window: &mut Window, cx: &mut Context<Self>) { + if !self.inner_focus_handle.is_focused(window) { + return; + } + window.focus(&self.outer_focus_handle); + if let Some(close_keystrokes_start) = self.close_keystrokes_start.take() + && close_keystrokes_start < self.keystrokes.len() + { + self.keystrokes.drain(close_keystrokes_start..); + } + self.close_keystrokes.take(); + cx.notify(); + } + + fn clear_keystrokes( + &mut self, + _: &ClearKeystrokes, + _window: &mut Window, + cx: &mut Context<Self>, + ) { + self.keystrokes.clear(); + self.keystrokes_changed(cx); + } +} + +impl EventEmitter<()> for KeystrokeInput {} + +impl Focusable for KeystrokeInput { + fn focus_handle(&self, _cx: &App) -> FocusHandle { + self.outer_focus_handle.clone() + } +} + +impl Render for KeystrokeInput { + fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { + let colors = cx.theme().colors(); + let is_focused = self.outer_focus_handle.contains_focused(window, cx); + let is_recording = self.inner_focus_handle.is_focused(window); + + let horizontal_padding = rems_from_px(64.); + + let recording_bg_color = colors + .editor_background + .blend(colors.text_accent.opacity(0.1)); + + let recording_pulse = |color: Color| { + Icon::new(IconName::Circle) + .size(IconSize::Small) + .color(Color::Error) + .with_animation( + "recording-pulse", + Animation::new(std::time::Duration::from_secs(2)) + .repeat() + .with_easing(gpui::pulsating_between(0.4, 0.8)), + { + let color = color.color(cx); + move |this, delta| this.color(Color::Custom(color.opacity(delta))) + }, + ) + }; + + let recording_indicator = h_flex() + .h_4() + .pr_1() + .gap_0p5() + .border_1() + .border_color(colors.border) + .bg(colors + .editor_background + .blend(colors.text_accent.opacity(0.1))) + .rounded_sm() + .child(recording_pulse(Color::Error)) + .child( + Label::new("REC") + .size(LabelSize::XSmall) + .weight(FontWeight::SEMIBOLD) + .color(Color::Error), + ); + + let search_indicator = h_flex() + .h_4() + .pr_1() + .gap_0p5() + .border_1() + .border_color(colors.border) + .bg(colors + .editor_background + .blend(colors.text_accent.opacity(0.1))) + .rounded_sm() + .child(recording_pulse(Color::Accent)) + .child( + Label::new("SEARCH") + .size(LabelSize::XSmall) + .weight(FontWeight::SEMIBOLD) + .color(Color::Accent), + ); + + let record_icon = if self.search { + IconName::MagnifyingGlass + } else { + IconName::PlayFilled + }; + + h_flex() + .id("keystroke-input") + .track_focus(&self.outer_focus_handle) + .py_2() + .px_3() + .gap_2() + .min_h_10() + .w_full() + .flex_1() + .justify_between() + .rounded_lg() + .overflow_hidden() + .map(|this| { + if is_recording { + this.bg(recording_bg_color) + } else { + this.bg(colors.editor_background) + } + }) + .border_1() + .border_color(colors.border_variant) + .when(is_focused, |parent| { + parent.border_color(colors.border_focused) + }) + .key_context(Self::key_context()) + .on_action(cx.listener(Self::start_recording)) + .on_action(cx.listener(Self::clear_keystrokes)) + .child( + h_flex() + .w(horizontal_padding) + .gap_0p5() + .justify_start() + .flex_none() + .when(is_recording, |this| { + this.map(|this| { + if self.search { + this.child(search_indicator) + } else { + this.child(recording_indicator) + } + }) + }), + ) + .child( + h_flex() + .id("keystroke-input-inner") + .track_focus(&self.inner_focus_handle) + .on_modifiers_changed(cx.listener(Self::on_modifiers_changed)) + .size_full() + .when(!self.search, |this| { + this.focus(|mut style| { + style.border_color = Some(colors.border_focused); + style + }) + }) + .w_full() + .min_w_0() + .justify_center() + .flex_wrap() + .gap(ui::DynamicSpacing::Base04.rems(cx)) + .children(self.render_keystrokes(is_recording)), + ) + .child( + h_flex() + .w(horizontal_padding) + .gap_0p5() + .justify_end() + .flex_none() + .map(|this| { + if is_recording { + this.child( + IconButton::new("stop-record-btn", IconName::StopFilled) + .shape(ui::IconButtonShape::Square) + .map(|this| { + this.tooltip(Tooltip::for_action_title( + if self.search { + "Stop Searching" + } else { + "Stop Recording" + }, + &StopRecording, + )) + }) + .icon_color(Color::Error) + .on_click(cx.listener(|this, _event, window, cx| { + this.stop_recording(&StopRecording, window, cx); + })), + ) + } else { + this.child( + IconButton::new("record-btn", record_icon) + .shape(ui::IconButtonShape::Square) + .map(|this| { + this.tooltip(Tooltip::for_action_title( + if self.search { + "Start Searching" + } else { + "Start Recording" + }, + &StartRecording, + )) + }) + .when(!is_focused, |this| this.icon_color(Color::Muted)) + .on_click(cx.listener(|this, _event, window, cx| { + this.start_recording(&StartRecording, window, cx); + })), + ) + } + }) + .child( + IconButton::new("clear-btn", IconName::Delete) + .shape(ui::IconButtonShape::Square) + .tooltip(Tooltip::for_action_title( + "Clear Keystrokes", + &ClearKeystrokes, + )) + .when(!is_recording || !is_focused, |this| { + this.icon_color(Color::Muted) + }) + .on_click(cx.listener(|this, _event, window, cx| { + this.clear_keystrokes(&ClearKeystrokes, window, cx); + })), + ), + ) + } +} + fn collect_contexts_from_assets() -> Vec<SharedString> { let mut keymap_assets = vec![ util::asset_str::<SettingsAssets>(settings::DEFAULT_KEYMAP_PATH), diff --git a/crates/settings_ui/src/settings_ui.rs b/crates/settings_ui/src/settings_ui.rs index 3022cc7142..2f0abb4789 100644 --- a/crates/settings_ui/src/settings_ui.rs +++ b/crates/settings_ui/src/settings_ui.rs @@ -1,12 +1,20 @@ mod appearance_settings_controls; use std::any::TypeId; +use std::sync::Arc; use command_palette_hooks::CommandPaletteFilter; use editor::EditorSettingsControls; use feature_flags::{FeatureFlag, FeatureFlagViewExt}; -use gpui::{App, Entity, EventEmitter, FocusHandle, Focusable, actions}; +use fs::Fs; +use gpui::{ + Action, App, AsyncWindowContext, Entity, EventEmitter, FocusHandle, Focusable, Task, actions, +}; +use schemars::JsonSchema; +use serde::Deserialize; +use settings::{SettingsStore, VsCodeSettingsSource}; use ui::prelude::*; +use util::truncate_and_remove_front; use workspace::item::{Item, ItemEvent}; use workspace::{Workspace, with_active_or_new_workspace}; @@ -21,6 +29,23 @@ impl FeatureFlag for SettingsUiFeatureFlag { const NAME: &'static str = "settings-ui"; } +/// Imports settings from Visual Studio Code. +#[derive(Copy, Clone, Debug, Default, PartialEq, Deserialize, JsonSchema, Action)] +#[action(namespace = zed)] +#[serde(deny_unknown_fields)] +pub struct ImportVsCodeSettings { + #[serde(default)] + pub skip_prompt: bool, +} + +/// Imports settings from Cursor editor. +#[derive(Copy, Clone, Debug, Default, PartialEq, Deserialize, JsonSchema, Action)] +#[action(namespace = zed)] +#[serde(deny_unknown_fields)] +pub struct ImportCursorSettings { + #[serde(default)] + pub skip_prompt: bool, +} actions!( zed, [ @@ -47,11 +72,45 @@ pub fn init(cx: &mut App) { }); }); - cx.observe_new(|_workspace: &mut Workspace, window, cx| { + cx.observe_new(|workspace: &mut Workspace, window, cx| { let Some(window) = window else { return; }; + workspace.register_action(|_workspace, action: &ImportVsCodeSettings, window, cx| { + let fs = <dyn Fs>::global(cx); + let action = *action; + + window + .spawn(cx, async move |cx: &mut AsyncWindowContext| { + handle_import_vscode_settings( + VsCodeSettingsSource::VsCode, + action.skip_prompt, + fs, + cx, + ) + .await + }) + .detach(); + }); + + workspace.register_action(|_workspace, action: &ImportCursorSettings, window, cx| { + let fs = <dyn Fs>::global(cx); + let action = *action; + + window + .spawn(cx, async move |cx: &mut AsyncWindowContext| { + handle_import_vscode_settings( + VsCodeSettingsSource::Cursor, + action.skip_prompt, + fs, + cx, + ) + .await + }) + .detach(); + }); + let settings_ui_actions = [TypeId::of::<OpenSettingsEditor>()]; CommandPaletteFilter::update_global(cx, |filter, _cx| { @@ -79,6 +138,57 @@ pub fn init(cx: &mut App) { keybindings::init(cx); } +async fn handle_import_vscode_settings( + source: VsCodeSettingsSource, + skip_prompt: bool, + fs: Arc<dyn Fs>, + cx: &mut AsyncWindowContext, +) { + let vscode_settings = + match settings::VsCodeSettings::load_user_settings(source, fs.clone()).await { + Ok(vscode_settings) => vscode_settings, + Err(err) => { + log::error!("{err}"); + let _ = cx.prompt( + gpui::PromptLevel::Info, + &format!("Could not find or load a {source} settings file"), + None, + &["Ok"], + ); + return; + } + }; + + let prompt = if skip_prompt { + Task::ready(Some(0)) + } else { + let prompt = cx.prompt( + gpui::PromptLevel::Warning, + &format!( + "Importing {} settings may overwrite your existing settings. \ + Will import settings from {}", + vscode_settings.source, + truncate_and_remove_front(&vscode_settings.path.to_string_lossy(), 128), + ), + None, + &["Ok", "Cancel"], + ); + cx.spawn(async move |_| prompt.await.ok()) + }; + if prompt.await != Some(0) { + return; + } + + cx.update(|_, cx| { + let source = vscode_settings.source; + let path = vscode_settings.path.clone(); + cx.global::<SettingsStore>() + .import_vscode_settings(fs, vscode_settings); + log::info!("Imported {source} settings from {}", path.display()); + }) + .ok(); +} + pub struct SettingsPage { focus_handle: FocusHandle, } diff --git a/crates/settings_ui/src/ui_components/keystroke_input.rs b/crates/settings_ui/src/ui_components/keystroke_input.rs deleted file mode 100644 index 03d27d0ab9..0000000000 --- a/crates/settings_ui/src/ui_components/keystroke_input.rs +++ /dev/null @@ -1,1388 +0,0 @@ -use gpui::{ - Animation, AnimationExt, Context, EventEmitter, FocusHandle, Focusable, FontWeight, KeyContext, - Keystroke, Modifiers, ModifiersChangedEvent, Subscription, Task, actions, -}; -use ui::{ - ActiveTheme as _, Color, IconButton, IconButtonShape, IconName, IconSize, Label, LabelSize, - ParentElement as _, Render, Styled as _, Tooltip, Window, prelude::*, -}; - -actions!( - keystroke_input, - [ - /// Starts recording keystrokes - StartRecording, - /// Stops recording keystrokes - StopRecording, - /// Clears the recorded keystrokes - ClearKeystrokes, - ] -); - -const KEY_CONTEXT_VALUE: &'static str = "KeystrokeInput"; - -const CLOSE_KEYSTROKE_CAPTURE_END_TIMEOUT: std::time::Duration = - std::time::Duration::from_millis(300); - -enum CloseKeystrokeResult { - Partial, - Close, - None, -} - -impl PartialEq for CloseKeystrokeResult { - fn eq(&self, other: &Self) -> bool { - matches!( - (self, other), - (CloseKeystrokeResult::Partial, CloseKeystrokeResult::Partial) - | (CloseKeystrokeResult::Close, CloseKeystrokeResult::Close) - | (CloseKeystrokeResult::None, CloseKeystrokeResult::None) - ) - } -} - -pub struct KeystrokeInput { - keystrokes: Vec<Keystroke>, - placeholder_keystrokes: Option<Vec<Keystroke>>, - outer_focus_handle: FocusHandle, - inner_focus_handle: FocusHandle, - intercept_subscription: Option<Subscription>, - _focus_subscriptions: [Subscription; 2], - search: bool, - /// The sequence of close keystrokes being typed - close_keystrokes: Option<Vec<Keystroke>>, - close_keystrokes_start: Option<usize>, - previous_modifiers: Modifiers, - /// In order to support inputting keystrokes that end with a prefix of the - /// close keybind keystrokes, we clear the close keystroke capture info - /// on a timeout after a close keystroke is pressed - /// - /// e.g. if close binding is `esc esc esc` and user wants to search for - /// `ctrl-g esc`, after entering the `ctrl-g esc`, hitting `esc` twice would - /// stop recording because of the sequence of three escapes making it - /// impossible to search for anything ending in `esc` - clear_close_keystrokes_timer: Option<Task<()>>, - #[cfg(test)] - recording: bool, -} - -impl KeystrokeInput { - const KEYSTROKE_COUNT_MAX: usize = 3; - - pub fn new( - placeholder_keystrokes: Option<Vec<Keystroke>>, - window: &mut Window, - cx: &mut Context<Self>, - ) -> Self { - let outer_focus_handle = cx.focus_handle(); - let inner_focus_handle = cx.focus_handle(); - let _focus_subscriptions = [ - cx.on_focus_in(&inner_focus_handle, window, Self::on_inner_focus_in), - cx.on_focus_out(&inner_focus_handle, window, Self::on_inner_focus_out), - ]; - Self { - keystrokes: Vec::new(), - placeholder_keystrokes, - inner_focus_handle, - outer_focus_handle, - intercept_subscription: None, - _focus_subscriptions, - search: false, - close_keystrokes: None, - close_keystrokes_start: None, - previous_modifiers: Modifiers::default(), - clear_close_keystrokes_timer: None, - #[cfg(test)] - recording: false, - } - } - - pub fn set_keystrokes(&mut self, keystrokes: Vec<Keystroke>, cx: &mut Context<Self>) { - self.keystrokes = keystrokes; - self.keystrokes_changed(cx); - } - - pub fn set_search(&mut self, search: bool) { - self.search = search; - } - - pub fn keystrokes(&self) -> &[Keystroke] { - if let Some(placeholders) = self.placeholder_keystrokes.as_ref() - && self.keystrokes.is_empty() - { - return placeholders; - } - if !self.search - && self - .keystrokes - .last() - .map_or(false, |last| last.key.is_empty()) - { - return &self.keystrokes[..self.keystrokes.len() - 1]; - } - return &self.keystrokes; - } - - fn dummy(modifiers: Modifiers) -> Keystroke { - return Keystroke { - modifiers, - key: "".to_string(), - key_char: None, - }; - } - - fn keystrokes_changed(&self, cx: &mut Context<Self>) { - cx.emit(()); - cx.notify(); - } - - fn key_context() -> KeyContext { - let mut key_context = KeyContext::default(); - key_context.add(KEY_CONTEXT_VALUE); - key_context - } - - fn determine_stop_recording_binding(window: &mut Window) -> Option<gpui::KeyBinding> { - if cfg!(test) { - Some(gpui::KeyBinding::new( - "escape escape escape", - StopRecording, - Some(KEY_CONTEXT_VALUE), - )) - } else { - window.highest_precedence_binding_for_action_in_context( - &StopRecording, - Self::key_context(), - ) - } - } - - fn upsert_close_keystrokes_start(&mut self, start: usize, cx: &mut Context<Self>) { - if self.close_keystrokes_start.is_some() { - return; - } - self.close_keystrokes_start = Some(start); - self.update_clear_close_keystrokes_timer(cx); - } - - fn update_clear_close_keystrokes_timer(&mut self, cx: &mut Context<Self>) { - self.clear_close_keystrokes_timer = Some(cx.spawn(async |this, cx| { - cx.background_executor() - .timer(CLOSE_KEYSTROKE_CAPTURE_END_TIMEOUT) - .await; - this.update(cx, |this, _cx| { - this.end_close_keystrokes_capture(); - }) - .ok(); - })); - } - - /// Interrupt the capture of close keystrokes, but do not clear the close keystrokes - /// from the input - fn end_close_keystrokes_capture(&mut self) -> Option<usize> { - self.close_keystrokes.take(); - self.clear_close_keystrokes_timer.take(); - return self.close_keystrokes_start.take(); - } - - fn handle_possible_close_keystroke( - &mut self, - keystroke: &Keystroke, - window: &mut Window, - cx: &mut Context<Self>, - ) -> CloseKeystrokeResult { - let Some(keybind_for_close_action) = Self::determine_stop_recording_binding(window) else { - log::trace!("No keybinding to stop recording keystrokes in keystroke input"); - self.end_close_keystrokes_capture(); - return CloseKeystrokeResult::None; - }; - let action_keystrokes = keybind_for_close_action.keystrokes(); - - if let Some(mut close_keystrokes) = self.close_keystrokes.take() { - let mut index = 0; - - while index < action_keystrokes.len() && index < close_keystrokes.len() { - if !close_keystrokes[index].should_match(&action_keystrokes[index]) { - break; - } - index += 1; - } - if index == close_keystrokes.len() { - if index >= action_keystrokes.len() { - self.end_close_keystrokes_capture(); - return CloseKeystrokeResult::None; - } - if keystroke.should_match(&action_keystrokes[index]) { - close_keystrokes.push(keystroke.clone()); - if close_keystrokes.len() == action_keystrokes.len() { - return CloseKeystrokeResult::Close; - } else { - self.close_keystrokes = Some(close_keystrokes); - self.update_clear_close_keystrokes_timer(cx); - return CloseKeystrokeResult::Partial; - } - } else { - self.end_close_keystrokes_capture(); - return CloseKeystrokeResult::None; - } - } - } else if let Some(first_action_keystroke) = action_keystrokes.first() - && keystroke.should_match(first_action_keystroke) - { - self.close_keystrokes = Some(vec![keystroke.clone()]); - return CloseKeystrokeResult::Partial; - } - self.end_close_keystrokes_capture(); - return CloseKeystrokeResult::None; - } - - fn on_modifiers_changed( - &mut self, - event: &ModifiersChangedEvent, - window: &mut Window, - cx: &mut Context<Self>, - ) { - cx.stop_propagation(); - let keystrokes_len = self.keystrokes.len(); - - if self.previous_modifiers.modified() - && event.modifiers.is_subset_of(&self.previous_modifiers) - { - self.previous_modifiers &= event.modifiers; - return; - } - self.keystrokes_changed(cx); - - if let Some(last) = self.keystrokes.last_mut() - && last.key.is_empty() - && keystrokes_len <= Self::KEYSTROKE_COUNT_MAX - { - if !self.search && !event.modifiers.modified() { - self.keystrokes.pop(); - return; - } - if self.search { - if self.previous_modifiers.modified() { - last.modifiers |= event.modifiers; - } else { - self.keystrokes.push(Self::dummy(event.modifiers)); - } - self.previous_modifiers |= event.modifiers; - } else { - last.modifiers = event.modifiers; - return; - } - } else if keystrokes_len < Self::KEYSTROKE_COUNT_MAX { - self.keystrokes.push(Self::dummy(event.modifiers)); - if self.search { - self.previous_modifiers |= event.modifiers; - } - } - if keystrokes_len >= Self::KEYSTROKE_COUNT_MAX { - self.clear_keystrokes(&ClearKeystrokes, window, cx); - } - } - - fn handle_keystroke( - &mut self, - keystroke: &Keystroke, - window: &mut Window, - cx: &mut Context<Self>, - ) { - cx.stop_propagation(); - - let close_keystroke_result = self.handle_possible_close_keystroke(keystroke, window, cx); - if close_keystroke_result == CloseKeystrokeResult::Close { - self.stop_recording(&StopRecording, window, cx); - return; - } - - let mut keystroke = keystroke.clone(); - if let Some(last) = self.keystrokes.last() - && last.key.is_empty() - && (!self.search || self.previous_modifiers.modified()) - { - let key = keystroke.key.clone(); - keystroke = last.clone(); - keystroke.key = key; - self.keystrokes.pop(); - } - - if close_keystroke_result == CloseKeystrokeResult::Partial { - self.upsert_close_keystrokes_start(self.keystrokes.len(), cx); - if self.keystrokes.len() >= Self::KEYSTROKE_COUNT_MAX { - return; - } - } - - if self.keystrokes.len() >= Self::KEYSTROKE_COUNT_MAX { - self.clear_keystrokes(&ClearKeystrokes, window, cx); - return; - } - - self.keystrokes.push(keystroke.clone()); - self.keystrokes_changed(cx); - - if self.search { - self.previous_modifiers = keystroke.modifiers; - return; - } - if self.keystrokes.len() < Self::KEYSTROKE_COUNT_MAX && keystroke.modifiers.modified() { - self.keystrokes.push(Self::dummy(keystroke.modifiers)); - } - } - - fn on_inner_focus_in(&mut self, _window: &mut Window, cx: &mut Context<Self>) { - if self.intercept_subscription.is_none() { - let listener = cx.listener(|this, event: &gpui::KeystrokeEvent, window, cx| { - this.handle_keystroke(&event.keystroke, window, cx); - }); - self.intercept_subscription = Some(cx.intercept_keystrokes(listener)) - } - } - - fn on_inner_focus_out( - &mut self, - _event: gpui::FocusOutEvent, - _window: &mut Window, - cx: &mut Context<Self>, - ) { - self.intercept_subscription.take(); - cx.notify(); - } - - fn render_keystrokes(&self, is_recording: bool) -> impl Iterator<Item = Div> { - let keystrokes = if let Some(placeholders) = self.placeholder_keystrokes.as_ref() - && self.keystrokes.is_empty() - { - if is_recording { - &[] - } else { - placeholders.as_slice() - } - } else { - &self.keystrokes - }; - keystrokes.iter().map(move |keystroke| { - h_flex().children(ui::render_keystroke( - keystroke, - Some(Color::Default), - Some(rems(0.875).into()), - ui::PlatformStyle::platform(), - false, - )) - }) - } - - pub fn start_recording( - &mut self, - _: &StartRecording, - window: &mut Window, - cx: &mut Context<Self>, - ) { - window.focus(&self.inner_focus_handle); - self.clear_keystrokes(&ClearKeystrokes, window, cx); - self.previous_modifiers = window.modifiers(); - #[cfg(test)] - { - self.recording = true; - } - cx.stop_propagation(); - } - - pub fn stop_recording( - &mut self, - _: &StopRecording, - window: &mut Window, - cx: &mut Context<Self>, - ) { - if !self.is_recording(window) { - return; - } - window.focus(&self.outer_focus_handle); - if let Some(close_keystrokes_start) = self.close_keystrokes_start.take() - && close_keystrokes_start < self.keystrokes.len() - { - self.keystrokes.drain(close_keystrokes_start..); - self.keystrokes_changed(cx); - } - self.end_close_keystrokes_capture(); - #[cfg(test)] - { - self.recording = false; - } - cx.notify(); - } - - pub fn clear_keystrokes( - &mut self, - _: &ClearKeystrokes, - _window: &mut Window, - cx: &mut Context<Self>, - ) { - self.keystrokes.clear(); - self.keystrokes_changed(cx); - self.end_close_keystrokes_capture(); - } - - fn is_recording(&self, window: &Window) -> bool { - #[cfg(test)] - { - if true { - // in tests, we just need a simple bool that is toggled on start and stop recording - return self.recording; - } - } - // however, in the real world, checking if the inner focus handle is focused - // is a much more reliable check, as the intercept keystroke handlers are installed - // on focus of the inner focus handle, thereby ensuring our recording state does - // not get de-synced - return self.inner_focus_handle.is_focused(window); - } -} - -impl EventEmitter<()> for KeystrokeInput {} - -impl Focusable for KeystrokeInput { - fn focus_handle(&self, _cx: &gpui::App) -> FocusHandle { - self.outer_focus_handle.clone() - } -} - -impl Render for KeystrokeInput { - fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { - let colors = cx.theme().colors(); - let is_focused = self.outer_focus_handle.contains_focused(window, cx); - let is_recording = self.is_recording(window); - - let horizontal_padding = rems_from_px(64.); - - let recording_bg_color = colors - .editor_background - .blend(colors.text_accent.opacity(0.1)); - - let recording_pulse = |color: Color| { - Icon::new(IconName::Circle) - .size(IconSize::Small) - .color(Color::Error) - .with_animation( - "recording-pulse", - Animation::new(std::time::Duration::from_secs(2)) - .repeat() - .with_easing(gpui::pulsating_between(0.4, 0.8)), - { - let color = color.color(cx); - move |this, delta| this.color(Color::Custom(color.opacity(delta))) - }, - ) - }; - - let recording_indicator = h_flex() - .h_4() - .pr_1() - .gap_0p5() - .border_1() - .border_color(colors.border) - .bg(colors - .editor_background - .blend(colors.text_accent.opacity(0.1))) - .rounded_sm() - .child(recording_pulse(Color::Error)) - .child( - Label::new("REC") - .size(LabelSize::XSmall) - .weight(FontWeight::SEMIBOLD) - .color(Color::Error), - ); - - let search_indicator = h_flex() - .h_4() - .pr_1() - .gap_0p5() - .border_1() - .border_color(colors.border) - .bg(colors - .editor_background - .blend(colors.text_accent.opacity(0.1))) - .rounded_sm() - .child(recording_pulse(Color::Accent)) - .child( - Label::new("SEARCH") - .size(LabelSize::XSmall) - .weight(FontWeight::SEMIBOLD) - .color(Color::Accent), - ); - - let record_icon = if self.search { - IconName::MagnifyingGlass - } else { - IconName::PlayFilled - }; - - h_flex() - .id("keystroke-input") - .track_focus(&self.outer_focus_handle) - .py_2() - .px_3() - .gap_2() - .min_h_10() - .w_full() - .flex_1() - .justify_between() - .rounded_lg() - .overflow_hidden() - .map(|this| { - if is_recording { - this.bg(recording_bg_color) - } else { - this.bg(colors.editor_background) - } - }) - .border_1() - .border_color(colors.border_variant) - .when(is_focused, |parent| { - parent.border_color(colors.border_focused) - }) - .key_context(Self::key_context()) - .on_action(cx.listener(Self::start_recording)) - .on_action(cx.listener(Self::clear_keystrokes)) - .child( - h_flex() - .w(horizontal_padding) - .gap_0p5() - .justify_start() - .flex_none() - .when(is_recording, |this| { - this.map(|this| { - if self.search { - this.child(search_indicator) - } else { - this.child(recording_indicator) - } - }) - }), - ) - .child( - h_flex() - .id("keystroke-input-inner") - .track_focus(&self.inner_focus_handle) - .on_modifiers_changed(cx.listener(Self::on_modifiers_changed)) - .size_full() - .when(!self.search, |this| { - this.focus(|mut style| { - style.border_color = Some(colors.border_focused); - style - }) - }) - .w_full() - .min_w_0() - .justify_center() - .flex_wrap() - .gap(ui::DynamicSpacing::Base04.rems(cx)) - .children(self.render_keystrokes(is_recording)), - ) - .child( - h_flex() - .w(horizontal_padding) - .gap_0p5() - .justify_end() - .flex_none() - .map(|this| { - if is_recording { - this.child( - IconButton::new("stop-record-btn", IconName::StopFilled) - .shape(IconButtonShape::Square) - .map(|this| { - this.tooltip(Tooltip::for_action_title( - if self.search { - "Stop Searching" - } else { - "Stop Recording" - }, - &StopRecording, - )) - }) - .icon_color(Color::Error) - .on_click(cx.listener(|this, _event, window, cx| { - this.stop_recording(&StopRecording, window, cx); - })), - ) - } else { - this.child( - IconButton::new("record-btn", record_icon) - .shape(IconButtonShape::Square) - .map(|this| { - this.tooltip(Tooltip::for_action_title( - if self.search { - "Start Searching" - } else { - "Start Recording" - }, - &StartRecording, - )) - }) - .when(!is_focused, |this| this.icon_color(Color::Muted)) - .on_click(cx.listener(|this, _event, window, cx| { - this.start_recording(&StartRecording, window, cx); - })), - ) - } - }) - .child( - IconButton::new("clear-btn", IconName::Delete) - .shape(IconButtonShape::Square) - .tooltip(Tooltip::for_action_title( - "Clear Keystrokes", - &ClearKeystrokes, - )) - .when(!is_recording || !is_focused, |this| { - this.icon_color(Color::Muted) - }) - .on_click(cx.listener(|this, _event, window, cx| { - this.clear_keystrokes(&ClearKeystrokes, window, cx); - })), - ), - ) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use fs::FakeFs; - use gpui::{Entity, TestAppContext, VisualTestContext}; - use itertools::Itertools as _; - use project::Project; - use settings::SettingsStore; - use workspace::Workspace; - - pub struct KeystrokeInputTestHelper { - input: Entity<KeystrokeInput>, - current_modifiers: Modifiers, - cx: VisualTestContext, - } - - impl KeystrokeInputTestHelper { - /// Creates a new test helper with default settings - pub fn new(mut cx: VisualTestContext) -> Self { - let input = cx.new_window_entity(|window, cx| KeystrokeInput::new(None, window, cx)); - - let mut helper = Self { - input, - current_modifiers: Modifiers::default(), - cx, - }; - - helper.start_recording(); - helper - } - - /// Sets search mode on the input - pub fn with_search_mode(&mut self, search: bool) -> &mut Self { - self.input.update(&mut self.cx, |input, _| { - input.set_search(search); - }); - self - } - - /// Sends a keystroke event based on string description - /// Examples: "a", "ctrl-a", "cmd-shift-z", "escape" - #[track_caller] - pub fn send_keystroke(&mut self, keystroke_input: &str) -> &mut Self { - self.expect_is_recording(true); - let keystroke_str = if keystroke_input.ends_with('-') { - format!("{}_", keystroke_input) - } else { - keystroke_input.to_string() - }; - - let mut keystroke = Keystroke::parse(&keystroke_str) - .unwrap_or_else(|_| panic!("Invalid keystroke: {}", keystroke_input)); - - // Remove the dummy key if we added it for modifier-only keystrokes - if keystroke_input.ends_with('-') && keystroke_str.ends_with("_") { - keystroke.key = "".to_string(); - } - - // Combine current modifiers with keystroke modifiers - keystroke.modifiers |= self.current_modifiers; - - self.update_input(|input, window, cx| { - input.handle_keystroke(&keystroke, window, cx); - }); - - // Don't update current_modifiers for keystrokes with actual keys - if keystroke.key.is_empty() { - self.current_modifiers = keystroke.modifiers; - } - self - } - - /// Sends a modifier change event based on string description - /// Examples: "+ctrl", "-ctrl", "+cmd+shift", "-all" - #[track_caller] - pub fn send_modifiers(&mut self, modifiers: &str) -> &mut Self { - self.expect_is_recording(true); - let new_modifiers = if modifiers == "-all" { - Modifiers::default() - } else { - self.parse_modifier_change(modifiers) - }; - - let event = ModifiersChangedEvent { - modifiers: new_modifiers, - capslock: gpui::Capslock::default(), - }; - - self.update_input(|input, window, cx| { - input.on_modifiers_changed(&event, window, cx); - }); - - self.current_modifiers = new_modifiers; - self - } - - /// Sends multiple events in sequence - /// Each event string is either a keystroke or modifier change - #[track_caller] - pub fn send_events(&mut self, events: &[&str]) -> &mut Self { - self.expect_is_recording(true); - for event in events { - if event.starts_with('+') || event.starts_with('-') { - self.send_modifiers(event); - } else { - self.send_keystroke(event); - } - } - self - } - - #[track_caller] - fn expect_keystrokes_equal(actual: &[Keystroke], expected: &[&str]) { - let expected_keystrokes: Result<Vec<Keystroke>, _> = expected - .iter() - .map(|s| { - let keystroke_str = if s.ends_with('-') { - format!("{}_", s) - } else { - s.to_string() - }; - - let mut keystroke = Keystroke::parse(&keystroke_str)?; - - // Remove the dummy key if we added it for modifier-only keystrokes - if s.ends_with('-') && keystroke_str.ends_with("_") { - keystroke.key = "".to_string(); - } - - Ok(keystroke) - }) - .collect(); - - let expected_keystrokes = expected_keystrokes - .unwrap_or_else(|e: anyhow::Error| panic!("Invalid expected keystroke: {}", e)); - - assert_eq!( - actual.len(), - expected_keystrokes.len(), - "Keystroke count mismatch. Expected: {:?}, Actual: {:?}", - expected_keystrokes - .iter() - .map(|k| k.unparse()) - .collect::<Vec<_>>(), - actual.iter().map(|k| k.unparse()).collect::<Vec<_>>() - ); - - for (i, (actual, expected)) in actual.iter().zip(expected_keystrokes.iter()).enumerate() - { - assert_eq!( - actual.unparse(), - expected.unparse(), - "Keystroke {} mismatch. Expected: '{}', Actual: '{}'", - i, - expected.unparse(), - actual.unparse() - ); - } - } - - /// Verifies that the keystrokes match the expected strings - #[track_caller] - pub fn expect_keystrokes(&mut self, expected: &[&str]) -> &mut Self { - let actual = self - .input - .read_with(&mut self.cx, |input, _| input.keystrokes.clone()); - Self::expect_keystrokes_equal(&actual, expected); - self - } - - #[track_caller] - pub fn expect_close_keystrokes(&mut self, expected: &[&str]) -> &mut Self { - let actual = self - .input - .read_with(&mut self.cx, |input, _| input.close_keystrokes.clone()) - .unwrap_or_default(); - Self::expect_keystrokes_equal(&actual, expected); - self - } - - /// Verifies that there are no keystrokes - #[track_caller] - pub fn expect_empty(&mut self) -> &mut Self { - self.expect_keystrokes(&[]) - } - - /// Starts recording keystrokes - #[track_caller] - pub fn start_recording(&mut self) -> &mut Self { - self.expect_is_recording(false); - self.input.update_in(&mut self.cx, |input, window, cx| { - input.start_recording(&StartRecording, window, cx); - }); - self - } - - /// Stops recording keystrokes - pub fn stop_recording(&mut self) -> &mut Self { - self.expect_is_recording(true); - self.input.update_in(&mut self.cx, |input, window, cx| { - input.stop_recording(&StopRecording, window, cx); - }); - self - } - - /// Clears all keystrokes - #[track_caller] - pub fn clear_keystrokes(&mut self) -> &mut Self { - let change_tracker = KeystrokeUpdateTracker::new(self.input.clone(), &mut self.cx); - self.input.update_in(&mut self.cx, |input, window, cx| { - input.clear_keystrokes(&ClearKeystrokes, window, cx); - }); - KeystrokeUpdateTracker::finish(change_tracker, &self.cx); - self.current_modifiers = Default::default(); - self - } - - /// Verifies the recording state - #[track_caller] - pub fn expect_is_recording(&mut self, expected: bool) -> &mut Self { - let actual = self - .input - .update_in(&mut self.cx, |input, window, _| input.is_recording(window)); - assert_eq!( - actual, expected, - "Recording state mismatch. Expected: {}, Actual: {}", - expected, actual - ); - self - } - - pub async fn wait_for_close_keystroke_capture_end(&mut self) -> &mut Self { - let task = self.input.update_in(&mut self.cx, |input, _, _| { - input.clear_close_keystrokes_timer.take() - }); - let task = task.expect("No close keystroke capture end timer task"); - self.cx - .executor() - .advance_clock(CLOSE_KEYSTROKE_CAPTURE_END_TIMEOUT); - task.await; - self - } - - /// Parses modifier change strings like "+ctrl", "-shift", "+cmd+alt" - #[track_caller] - fn parse_modifier_change(&self, modifiers_str: &str) -> Modifiers { - let mut modifiers = self.current_modifiers; - - assert!(!modifiers_str.is_empty(), "Empty modifier string"); - - let value; - let split_char; - let remaining; - if let Some(to_add) = modifiers_str.strip_prefix('+') { - value = true; - split_char = '+'; - remaining = to_add; - } else { - let to_remove = modifiers_str - .strip_prefix('-') - .expect("Modifier string must start with '+' or '-'"); - value = false; - split_char = '-'; - remaining = to_remove; - } - - for modifier in remaining.split(split_char) { - match modifier { - "ctrl" | "control" => modifiers.control = value, - "alt" | "option" => modifiers.alt = value, - "shift" => modifiers.shift = value, - "cmd" | "command" | "platform" => modifiers.platform = value, - "fn" | "function" => modifiers.function = value, - _ => panic!("Unknown modifier: {}", modifier), - } - } - - modifiers - } - - #[track_caller] - fn update_input<R>( - &mut self, - cb: impl FnOnce(&mut KeystrokeInput, &mut Window, &mut Context<KeystrokeInput>) -> R, - ) -> R { - let change_tracker = KeystrokeUpdateTracker::new(self.input.clone(), &mut self.cx); - let result = self.input.update_in(&mut self.cx, cb); - KeystrokeUpdateTracker::finish(change_tracker, &self.cx); - return result; - } - } - - struct KeystrokeUpdateTracker { - initial_keystrokes: Vec<Keystroke>, - _subscription: Subscription, - input: Entity<KeystrokeInput>, - received_keystrokes_updated: bool, - } - - impl KeystrokeUpdateTracker { - fn new(input: Entity<KeystrokeInput>, cx: &mut VisualTestContext) -> Entity<Self> { - cx.new(|cx| Self { - initial_keystrokes: input.read_with(cx, |input, _| input.keystrokes.clone()), - _subscription: cx.subscribe(&input, |this: &mut Self, _, _, _| { - this.received_keystrokes_updated = true; - }), - input, - received_keystrokes_updated: false, - }) - } - #[track_caller] - fn finish(this: Entity<Self>, cx: &VisualTestContext) { - let (received_keystrokes_updated, initial_keystrokes_str, updated_keystrokes_str) = - this.read_with(cx, |this, cx| { - let updated_keystrokes = this - .input - .read_with(cx, |input, _| input.keystrokes.clone()); - let initial_keystrokes_str = keystrokes_str(&this.initial_keystrokes); - let updated_keystrokes_str = keystrokes_str(&updated_keystrokes); - ( - this.received_keystrokes_updated, - initial_keystrokes_str, - updated_keystrokes_str, - ) - }); - if received_keystrokes_updated { - assert_ne!( - initial_keystrokes_str, updated_keystrokes_str, - "Received keystrokes_updated event, expected different keystrokes" - ); - } else { - assert_eq!( - initial_keystrokes_str, updated_keystrokes_str, - "Received no keystrokes_updated event, expected same keystrokes" - ); - } - - fn keystrokes_str(ks: &[Keystroke]) -> String { - ks.iter().map(|ks| ks.unparse()).join(" ") - } - } - } - - async fn init_test(cx: &mut TestAppContext) -> KeystrokeInputTestHelper { - cx.update(|cx| { - let settings_store = SettingsStore::test(cx); - cx.set_global(settings_store); - theme::init(theme::LoadThemes::JustBase, cx); - language::init(cx); - project::Project::init_settings(cx); - workspace::init_settings(cx); - }); - - let fs = FakeFs::new(cx.executor()); - let project = Project::test(fs, [], cx).await; - let workspace = - cx.add_window(|window, cx| Workspace::test_new(project.clone(), window, cx)); - let cx = VisualTestContext::from_window(*workspace, cx); - KeystrokeInputTestHelper::new(cx) - } - - #[gpui::test] - async fn test_basic_keystroke_input(cx: &mut TestAppContext) { - init_test(cx) - .await - .send_keystroke("a") - .clear_keystrokes() - .expect_empty(); - } - - #[gpui::test] - async fn test_modifier_handling(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "a", "-ctrl"]) - .expect_keystrokes(&["ctrl-a"]); - } - - #[gpui::test] - async fn test_multiple_modifiers(cx: &mut TestAppContext) { - init_test(cx) - .await - .send_keystroke("cmd-shift-z") - .expect_keystrokes(&["cmd-shift-z", "cmd-shift-"]); - } - - #[gpui::test] - async fn test_search_mode_behavior(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+cmd", "shift-f", "-cmd"]) - // In search mode, when completing a modifier-only keystroke with a key, - // only the original modifiers are preserved, not the keystroke's modifiers - .expect_keystrokes(&["cmd-f"]); - } - - #[gpui::test] - async fn test_keystroke_limit(cx: &mut TestAppContext) { - init_test(cx) - .await - .send_keystroke("a") - .send_keystroke("b") - .send_keystroke("c") - .expect_keystrokes(&["a", "b", "c"]) // At max limit - .send_keystroke("d") - .expect_empty(); // Should clear when exceeding limit - } - - #[gpui::test] - async fn test_modifier_release_all(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl+shift", "a", "-all"]) - .expect_keystrokes(&["ctrl-shift-a"]); - } - - #[gpui::test] - async fn test_search_new_modifiers_not_added_until_all_released(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl+shift", "a", "-ctrl"]) - .expect_keystrokes(&["ctrl-shift-a"]) - .send_events(&["+ctrl"]) - .expect_keystrokes(&["ctrl-shift-a", "ctrl-shift-"]); - } - - #[gpui::test] - async fn test_previous_modifiers_no_effect_when_not_search(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(false) - .send_events(&["+ctrl+shift", "a", "-all"]) - .expect_keystrokes(&["ctrl-shift-a"]); - } - - #[gpui::test] - async fn test_keystroke_limit_overflow_non_search_mode(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(false) - .send_events(&["a", "b", "c", "d"]) // 4 keystrokes, exceeds limit of 3 - .expect_empty(); // Should clear when exceeding limit - } - - #[gpui::test] - async fn test_complex_modifier_sequences(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "+shift", "+alt", "a", "-ctrl", "-shift", "-alt"]) - .expect_keystrokes(&["ctrl-shift-alt-a"]); - } - - #[gpui::test] - async fn test_modifier_only_keystrokes_search_mode(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "+shift", "-ctrl", "-shift"]) - .expect_keystrokes(&["ctrl-shift-"]); // Modifier-only sequences create modifier-only keystrokes - } - - #[gpui::test] - async fn test_modifier_only_keystrokes_non_search_mode(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(false) - .send_events(&["+ctrl", "+shift", "-ctrl", "-shift"]) - .expect_empty(); // Modifier-only sequences get filtered in non-search mode - } - - #[gpui::test] - async fn test_rapid_modifier_changes(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "-ctrl", "+shift", "-shift", "+alt", "a", "-alt"]) - .expect_keystrokes(&["ctrl-", "shift-", "alt-a"]); - } - - #[gpui::test] - async fn test_clear_keystrokes_search_mode(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "a", "-ctrl", "b"]) - .expect_keystrokes(&["ctrl-a", "b"]) - .clear_keystrokes() - .expect_empty(); - } - - #[gpui::test] - async fn test_non_search_mode_modifier_key_sequence(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(false) - .send_events(&["+ctrl", "a"]) - .expect_keystrokes(&["ctrl-a", "ctrl-"]) - .send_events(&["-ctrl"]) - .expect_keystrokes(&["ctrl-a"]); // Non-search mode filters trailing empty keystrokes - } - - #[gpui::test] - async fn test_all_modifiers_at_once(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl+shift+alt+cmd", "a", "-all"]) - .expect_keystrokes(&["ctrl-shift-alt-cmd-a"]); - } - - #[gpui::test] - async fn test_keystrokes_at_exact_limit(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["a", "b", "c"]) // exactly 3 keystrokes (at limit) - .expect_keystrokes(&["a", "b", "c"]) - .send_events(&["d"]) // should clear when exceeding - .expect_empty(); - } - - #[gpui::test] - async fn test_function_modifier_key(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+fn", "f1", "-fn"]) - .expect_keystrokes(&["fn-f1"]); - } - - #[gpui::test] - async fn test_start_stop_recording(cx: &mut TestAppContext) { - init_test(cx) - .await - .send_events(&["a", "b"]) - .expect_keystrokes(&["a", "b"]) // start_recording clears existing keystrokes - .stop_recording() - .expect_is_recording(false) - .start_recording() - .send_events(&["c"]) - .expect_keystrokes(&["c"]); - } - - #[gpui::test] - async fn test_modifier_sequence_with_interruption(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "+shift", "a", "-shift", "b", "-ctrl"]) - .expect_keystrokes(&["ctrl-shift-a", "ctrl-b"]); - } - - #[gpui::test] - async fn test_empty_key_sequence_search_mode(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&[]) // No events at all - .expect_empty(); - } - - #[gpui::test] - async fn test_modifier_sequence_completion_search_mode(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "+shift", "-shift", "a", "-ctrl"]) - .expect_keystrokes(&["ctrl-shift-a"]); - } - - #[gpui::test] - async fn test_triple_escape_stops_recording_search_mode(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["a", "escape", "escape", "escape"]) - .expect_keystrokes(&["a"]) // Triple escape removes final escape, stops recording - .expect_is_recording(false); - } - - #[gpui::test] - async fn test_triple_escape_stops_recording_non_search_mode(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(false) - .send_events(&["a", "escape", "escape", "escape"]) - .expect_keystrokes(&["a"]); // Triple escape stops recording but only removes final escape - } - - #[gpui::test] - async fn test_triple_escape_at_keystroke_limit(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["a", "b", "c", "escape", "escape", "escape"]) // 6 keystrokes total, exceeds limit - .expect_keystrokes(&["a", "b", "c"]); // Triple escape stops recording and removes escapes, leaves original keystrokes - } - - #[gpui::test] - async fn test_interrupted_escape_sequence(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["escape", "escape", "a", "escape"]) // Partial escape sequence interrupted by 'a' - .expect_keystrokes(&["escape", "escape", "a"]); // Escape sequence interrupted by 'a', no close triggered - } - - #[gpui::test] - async fn test_interrupted_escape_sequence_within_limit(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["escape", "escape", "a"]) // Partial escape sequence interrupted by 'a' (3 keystrokes, at limit) - .expect_keystrokes(&["escape", "escape", "a"]); // Should not trigger close, interruption resets escape detection - } - - #[gpui::test] - async fn test_partial_escape_sequence_no_close(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["escape", "escape"]) // Only 2 escapes, not enough to close - .expect_keystrokes(&["escape", "escape"]) - .expect_is_recording(true); // Should remain in keystrokes, no close triggered - } - - #[gpui::test] - async fn test_recording_state_after_triple_escape(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["a", "escape", "escape", "escape"]) - .expect_keystrokes(&["a"]) // Triple escape stops recording, removes final escape - .expect_is_recording(false); - } - - #[gpui::test] - async fn test_triple_escape_mixed_with_other_keystrokes(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["a", "escape", "b", "escape", "escape"]) // Mixed sequence, should not trigger close - .expect_keystrokes(&["a", "escape", "b"]); // No complete triple escape sequence, stays at limit - } - - #[gpui::test] - async fn test_triple_escape_only(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["escape", "escape", "escape"]) // Pure triple escape sequence - .expect_empty(); - } - - #[gpui::test] - async fn test_end_close_keystroke_capture(cx: &mut TestAppContext) { - init_test(cx) - .await - .send_events(&["+ctrl", "g", "-ctrl", "escape"]) - .expect_keystrokes(&["ctrl-g", "escape"]) - .wait_for_close_keystroke_capture_end() - .await - .send_events(&["escape", "escape"]) - .expect_keystrokes(&["ctrl-g", "escape", "escape"]) - .expect_close_keystrokes(&["escape", "escape"]) - .send_keystroke("escape") - .expect_keystrokes(&["ctrl-g", "escape"]); - } - - #[gpui::test] - async fn test_search_previous_modifiers_are_sticky(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl+alt", "-ctrl", "j"]) - .expect_keystrokes(&["ctrl-alt-j"]); - } - - #[gpui::test] - async fn test_previous_modifiers_can_be_entered_separately(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "-ctrl"]) - .expect_keystrokes(&["ctrl-"]) - .send_events(&["+alt", "-alt"]) - .expect_keystrokes(&["ctrl-", "alt-"]); - } - - #[gpui::test] - async fn test_previous_modifiers_reset_on_key(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl+alt", "-ctrl", "+shift"]) - .expect_keystrokes(&["ctrl-shift-alt-"]) - .send_keystroke("j") - .expect_keystrokes(&["ctrl-shift-alt-j"]) - .send_keystroke("i") - .expect_keystrokes(&["ctrl-shift-alt-j", "shift-alt-i"]) - .send_events(&["-shift-alt", "+cmd"]) - .expect_keystrokes(&["ctrl-shift-alt-j", "shift-alt-i", "cmd-"]); - } - - #[gpui::test] - async fn test_previous_modifiers_reset_on_release_all(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl+alt", "-ctrl", "+shift"]) - .expect_keystrokes(&["ctrl-shift-alt-"]) - .send_events(&["-all", "j"]) - .expect_keystrokes(&["ctrl-shift-alt-", "j"]); - } - - #[gpui::test] - async fn test_search_repeat_modifiers(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(true) - .send_events(&["+ctrl", "-ctrl", "+alt", "-alt", "+shift", "-shift"]) - .expect_keystrokes(&["ctrl-", "alt-", "shift-"]) - .send_events(&["+cmd"]) - .expect_empty(); - } - - #[gpui::test] - async fn test_not_search_repeat_modifiers(cx: &mut TestAppContext) { - init_test(cx) - .await - .with_search_mode(false) - .send_events(&["+ctrl", "-ctrl", "+alt", "-alt", "+shift", "-shift"]) - .expect_empty(); - } -} diff --git a/crates/settings_ui/src/ui_components/mod.rs b/crates/settings_ui/src/ui_components/mod.rs index 5d6463a61a..13971b0a5d 100644 --- a/crates/settings_ui/src/ui_components/mod.rs +++ b/crates/settings_ui/src/ui_components/mod.rs @@ -1,2 +1 @@ -pub mod keystroke_input; pub mod table; diff --git a/crates/settings_ui/src/ui_components/table.rs b/crates/settings_ui/src/ui_components/table.rs index 3c9992bd68..69207f559b 100644 --- a/crates/settings_ui/src/ui_components/table.rs +++ b/crates/settings_ui/src/ui_components/table.rs @@ -2,9 +2,9 @@ use std::{ops::Range, rc::Rc, time::Duration}; use editor::{EditorSettings, ShowScrollbar, scroll::ScrollbarAutoHide}; use gpui::{ - AbsoluteLength, AppContext, Axis, Context, DefiniteLength, DragMoveEvent, Entity, EntityId, - FocusHandle, Length, ListHorizontalSizingBehavior, ListSizingBehavior, MouseButton, Point, - Stateful, Task, UniformListScrollHandle, WeakEntity, transparent_black, uniform_list, + AbsoluteLength, AppContext, Axis, Context, DefiniteLength, DragMoveEvent, Entity, FocusHandle, + Length, ListHorizontalSizingBehavior, ListSizingBehavior, MouseButton, Point, Stateful, Task, + UniformListScrollHandle, WeakEntity, transparent_black, uniform_list, }; use itertools::intersperse_with; @@ -13,12 +13,10 @@ use ui::{ ActiveTheme as _, AnyElement, App, Button, ButtonCommon as _, ButtonStyle, Color, Component, ComponentScope, Div, ElementId, FixedWidth as _, FluentBuilder as _, Indicator, InteractiveElement, IntoElement, ParentElement, Pixels, RegisterComponent, RenderOnce, - Scrollbar, ScrollbarState, SharedString, StatefulInteractiveElement, Styled, StyledExt as _, + Scrollbar, ScrollbarState, StatefulInteractiveElement, Styled, StyledExt as _, StyledTypography, Window, div, example_group_with_title, h_flex, px, single_example, v_flex, }; -const RESIZE_COLUMN_WIDTH: f32 = 8.0; - #[derive(Debug)] struct DraggedColumn(usize); @@ -214,7 +212,6 @@ impl TableInteractionState { let mut column_ix = 0; let resizable_columns_slice = *resizable_columns; let mut resizable_columns = resizable_columns.into_iter(); - let dividers = intersperse_with(spacers, || { window.with_id(column_ix, |window| { let mut resize_divider = div() @@ -222,15 +219,15 @@ impl TableInteractionState { .id(column_ix) .relative() .top_0() - .w_px() + .w_0p5() .h_full() - .bg(cx.theme().colors().border.opacity(0.8)); + .bg(cx.theme().colors().border.opacity(0.5)); let mut resize_handle = div() .id("column-resize-handle") .absolute() .left_neg_0p5() - .w(px(RESIZE_COLUMN_WIDTH)) + .w(px(5.0)) .h_full(); if resizable_columns @@ -238,11 +235,9 @@ impl TableInteractionState { .is_some_and(ResizeBehavior::is_resizable) { let hovered = window.use_state(cx, |_window, _cx| false); - resize_divider = resize_divider.when(*hovered.read(cx), |div| { div.bg(cx.theme().colors().border_focused) }); - resize_handle = resize_handle .on_hover(move |&was_hovered, _, cx| hovered.write(cx, was_hovered)) .cursor_col_resize() @@ -272,11 +267,12 @@ impl TableInteractionState { }) }); - h_flex() + div() .id("resize-handles") + .h_flex() .absolute() - .inset_0() .w_full() + .inset_0() .children(dividers) .into_any_element() } @@ -482,7 +478,6 @@ impl ResizeBehavior { pub struct ColumnWidths<const COLS: usize> { widths: [DefiniteLength; COLS], - visible_widths: [DefiniteLength; COLS], cached_bounds_width: Pixels, initialized: bool, } @@ -491,7 +486,6 @@ impl<const COLS: usize> ColumnWidths<COLS> { pub fn new(_: &mut App) -> Self { Self { widths: [DefiniteLength::default(); COLS], - visible_widths: [DefiniteLength::default(); COLS], cached_bounds_width: Default::default(), initialized: false, } @@ -518,105 +512,46 @@ impl<const COLS: usize> ColumnWidths<COLS> { let rem_size = window.rem_size(); let initial_sizes = initial_sizes.map(|length| Self::get_fraction(&length, bounds_width, rem_size)); - let widths = self + let mut widths = self .widths .map(|length| Self::get_fraction(&length, bounds_width, rem_size)); - let updated_widths = Self::reset_to_initial_size( - double_click_position, - widths, - initial_sizes, - resize_behavior, - ); - self.widths = updated_widths.map(DefiniteLength::Fraction); - self.visible_widths = self.widths; - } + let diff = initial_sizes[double_click_position] - widths[double_click_position]; - fn reset_to_initial_size( - col_idx: usize, - mut widths: [f32; COLS], - initial_sizes: [f32; COLS], - resize_behavior: &[ResizeBehavior; COLS], - ) -> [f32; COLS] { - // RESET: - // Part 1: - // Figure out if we should shrink/grow the selected column - // Get diff which represents the change in column we want to make initial size delta curr_size = diff - // - // Part 2: We need to decide which side column we should move and where - // - // If we want to grow our column we should check the left/right columns diff to see what side - // has a greater delta than their initial size. Likewise, if we shrink our column we should check - // the left/right column diffs to see what side has the smallest delta. - // - // Part 3: resize - // - // col_idx represents the column handle to the right of an active column - // - // If growing and right has the greater delta { - // shift col_idx to the right - // } else if growing and left has the greater delta { - // shift col_idx - 1 to the left - // } else if shrinking and the right has the greater delta { - // shift - // } { - // - // } - // } - // - // if we need to shrink, then if the right - // + if diff > 0.0 { + let diff_remaining = self.propagate_resize_diff_right( + diff, + double_click_position, + &mut widths, + resize_behavior, + ); - // DRAGGING - // we get diff which represents the change in the _drag handle_ position - // -diff => dragging left -> - // grow the column to the right of the handle as much as we can shrink columns to the left of the handle - // +diff => dragging right -> growing handles column - // grow the column to the left of the handle as much as we can shrink columns to the right of the handle - // - - let diff = initial_sizes[col_idx] - widths[col_idx]; - - let left_diff = - initial_sizes[..col_idx].iter().sum::<f32>() - widths[..col_idx].iter().sum::<f32>(); - let right_diff = initial_sizes[col_idx + 1..].iter().sum::<f32>() - - widths[col_idx + 1..].iter().sum::<f32>(); - - let go_left_first = if diff < 0.0 { - left_diff > right_diff - } else { - left_diff < right_diff - }; - - if !go_left_first { - let diff_remaining = - Self::propagate_resize_diff(diff, col_idx, &mut widths, resize_behavior, 1); - - if diff_remaining != 0.0 && col_idx > 0 { - Self::propagate_resize_diff( - diff_remaining, - col_idx, + if diff_remaining > 0.0 && double_click_position > 0 { + self.propagate_resize_diff_left( + -diff_remaining, + double_click_position - 1, &mut widths, resize_behavior, - -1, ); } - } else { - let diff_remaining = - Self::propagate_resize_diff(diff, col_idx, &mut widths, resize_behavior, -1); + } else if double_click_position > 0 { + let diff_remaining = self.propagate_resize_diff_left( + diff, + double_click_position, + &mut widths, + resize_behavior, + ); - if diff_remaining != 0.0 { - Self::propagate_resize_diff( - diff_remaining, - col_idx, + if diff_remaining < 0.0 { + self.propagate_resize_diff_right( + -diff_remaining, + double_click_position, &mut widths, resize_behavior, - 1, ); } } - - widths + self.widths = widths.map(DefiniteLength::Fraction); } fn on_drag_move( @@ -634,102 +569,98 @@ impl<const COLS: usize> ColumnWidths<COLS> { let bounds_width = bounds.right() - bounds.left(); let col_idx = drag_event.drag(cx).0; - let column_handle_width = Self::get_fraction( - &DefiniteLength::Absolute(AbsoluteLength::Pixels(px(RESIZE_COLUMN_WIDTH))), - bounds_width, - rem_size, - ); - let mut widths = self .widths .map(|length| Self::get_fraction(&length, bounds_width, rem_size)); for length in widths[0..=col_idx].iter() { - col_position += length + column_handle_width; + col_position += length; } let mut total_length_ratio = col_position; for length in widths[col_idx + 1..].iter() { total_length_ratio += length; } - total_length_ratio += (COLS - 1 - col_idx) as f32 * column_handle_width; let drag_fraction = (drag_position.x - bounds.left()) / bounds_width; let drag_fraction = drag_fraction * total_length_ratio; - let diff = drag_fraction - col_position - column_handle_width / 2.0; + let diff = drag_fraction - col_position; - Self::drag_column_handle(diff, col_idx, &mut widths, resize_behavior); + let is_dragging_right = diff > 0.0; - self.visible_widths = widths.map(DefiniteLength::Fraction); - } - - fn drag_column_handle( - diff: f32, - col_idx: usize, - widths: &mut [f32; COLS], - resize_behavior: &[ResizeBehavior; COLS], - ) { - // if diff > 0.0 then go right - if diff > 0.0 { - Self::propagate_resize_diff(diff, col_idx, widths, resize_behavior, 1); + if is_dragging_right { + self.propagate_resize_diff_right(diff, col_idx, &mut widths, resize_behavior); } else { - Self::propagate_resize_diff(-diff, col_idx + 1, widths, resize_behavior, -1); + // Resize behavior should be improved in the future by also seeking to the right column when there's not enough space + self.propagate_resize_diff_left(diff, col_idx, &mut widths, resize_behavior); } + self.widths = widths.map(DefiniteLength::Fraction); } - fn propagate_resize_diff( + fn propagate_resize_diff_right( + &self, diff: f32, col_idx: usize, widths: &mut [f32; COLS], resize_behavior: &[ResizeBehavior; COLS], - direction: i8, ) -> f32 { let mut diff_remaining = diff; - if resize_behavior[col_idx].min_size().is_none() { - return diff; + let mut curr_column = col_idx + 1; + + while diff_remaining > 0.0 && curr_column < COLS { + let Some(min_size) = resize_behavior[curr_column - 1].min_size() else { + curr_column += 1; + continue; + }; + + let mut curr_width = widths[curr_column] - diff_remaining; + + diff_remaining = 0.0; + if min_size > curr_width { + diff_remaining += min_size - curr_width; + curr_width = min_size; + } + widths[curr_column] = curr_width; + curr_column += 1; } - let step_right; - let step_left; - if direction < 0 { - step_right = 0; - step_left = 1; - } else { - step_right = 1; - step_left = 0; - } - if col_idx == 0 && direction < 0 { - return diff; - } - let mut curr_column = col_idx + step_right - step_left; + widths[col_idx] = widths[col_idx] + (diff - diff_remaining); + return diff_remaining; + } - while diff_remaining != 0.0 && curr_column < COLS { + fn propagate_resize_diff_left( + &mut self, + diff: f32, + mut curr_column: usize, + widths: &mut [f32; COLS], + resize_behavior: &[ResizeBehavior; COLS], + ) -> f32 { + let mut diff_remaining = diff; + let col_idx = curr_column; + while diff_remaining < 0.0 { let Some(min_size) = resize_behavior[curr_column].min_size() else { if curr_column == 0 { break; } - curr_column -= step_left; - curr_column += step_right; + curr_column -= 1; continue; }; - let curr_width = widths[curr_column] - diff_remaining; - widths[curr_column] = curr_width; + let mut curr_width = widths[curr_column] + diff_remaining; - if min_size > curr_width { - diff_remaining = min_size - curr_width; - widths[curr_column] = min_size; - } else { - diff_remaining = 0.0; - break; + diff_remaining = 0.0; + if curr_width < min_size { + diff_remaining = curr_width - min_size; + curr_width = min_size } + + widths[curr_column] = curr_width; if curr_column == 0 { break; } - curr_column -= step_left; - curr_column += step_right; + curr_column -= 1; } - widths[col_idx] = widths[col_idx] + (diff - diff_remaining); + widths[col_idx + 1] = widths[col_idx + 1] - (diff - diff_remaining); return diff_remaining; } @@ -755,7 +686,7 @@ impl<const COLS: usize> TableWidths<COLS> { fn lengths(&self, cx: &App) -> [Length; COLS] { self.current .as_ref() - .map(|entity| entity.read(cx).visible_widths.map(Length::Definite)) + .map(|entity| entity.read(cx).widths.map(Length::Definite)) .unwrap_or(self.initial.map(Length::Definite)) } } @@ -868,7 +799,6 @@ impl<const COLS: usize> Table<COLS> { if !widths.initialized { widths.initialized = true; widths.widths = table_widths.initial; - widths.visible_widths = widths.widths; } }) } @@ -898,6 +828,7 @@ fn base_cell_style(width: Option<Length>) -> Div { .px_1p5() .when_some(width, |this, width| this.w(width)) .when(width.is_none(), |this| this.flex_1()) + .justify_start() .whitespace_nowrap() .text_ellipsis() .overflow_hidden() @@ -942,7 +873,7 @@ pub fn render_row<const COLS: usize>( .map(IntoElement::into_any_element) .into_iter() .zip(column_widths) - .map(|(cell, width)| base_cell_style_text(width, cx).px_1().py_0p5().child(cell)), + .map(|(cell, width)| base_cell_style_text(width, cx).px_1p5().py_1().child(cell)), ); let row = if let Some(map_row) = table_context.map_row { @@ -951,30 +882,17 @@ pub fn render_row<const COLS: usize>( row.into_any_element() }; - div().size_full().child(row).into_any_element() + div().h_full().w_full().child(row).into_any_element() } pub fn render_header<const COLS: usize>( headers: [impl IntoElement; COLS], table_context: TableRenderContext<COLS>, - columns_widths: Option<( - WeakEntity<ColumnWidths<COLS>>, - [ResizeBehavior; COLS], - [DefiniteLength; COLS], - )>, - entity_id: Option<EntityId>, cx: &mut App, ) -> impl IntoElement { let column_widths = table_context .column_widths .map_or([None; COLS], |widths| widths.map(Some)); - - let element_id = entity_id - .map(|entity| entity.to_string()) - .unwrap_or_default(); - - let shared_element_id: SharedString = format!("table-{}", element_id).into(); - div() .flex() .flex_row() @@ -984,39 +902,12 @@ pub fn render_header<const COLS: usize>( .p_2() .border_b_1() .border_color(cx.theme().colors().border) - .children(headers.into_iter().enumerate().zip(column_widths).map( - |((header_idx, h), width)| { - base_cell_style_text(width, cx) - .child(h) - .id(ElementId::NamedInteger( - shared_element_id.clone(), - header_idx as u64, - )) - .when_some( - columns_widths.as_ref().cloned(), - |this, (column_widths, resizables, initial_sizes)| { - if resizables[header_idx].is_resizable() { - this.on_click(move |event, window, cx| { - if event.down.click_count > 1 { - column_widths - .update(cx, |column, _| { - column.on_double_click( - header_idx, - &initial_sizes, - &resizables, - window, - ); - }) - .ok(); - } - }) - } else { - this - } - }, - ) - }, - )) + .children( + headers + .into_iter() + .zip(column_widths) + .map(|(h, width)| base_cell_style_text(width, cx).child(h)), + ) } #[derive(Clone)] @@ -1048,12 +939,6 @@ impl<const COLS: usize> RenderOnce for Table<COLS> { .and_then(|widths| Some((widths.current.as_ref()?, widths.resizable))) .map(|(curr, resize_behavior)| (curr.downgrade(), resize_behavior)); - let current_widths_with_initial_sizes = self - .col_widths - .as_ref() - .and_then(|widths| Some((widths.current.as_ref()?, widths.resizable, widths.initial))) - .map(|(curr, resize_behavior, initial)| (curr.downgrade(), resize_behavior, initial)); - let scroll_track_size = px(16.); let h_scroll_offset = if interaction_state .as_ref() @@ -1073,13 +958,7 @@ impl<const COLS: usize> RenderOnce for Table<COLS> { .h_full() .v_flex() .when_some(self.headers.take(), |this, headers| { - this.child(render_header( - headers, - table_context.clone(), - current_widths_with_initial_sizes, - interaction_state.as_ref().map(Entity::entity_id), - cx, - )) + this.child(render_header(headers, table_context.clone(), cx)) }) .when_some(current_widths, { |this, (widths, resize_behavior)| { @@ -1093,28 +972,19 @@ impl<const COLS: usize> RenderOnce for Table<COLS> { .ok(); } }) - .on_children_prepainted({ - let widths = widths.clone(); - move |bounds, _, cx| { - widths - .update(cx, |widths, _| { - // This works because all children x axis bounds are the same - widths.cached_bounds_width = - bounds[0].right() - bounds[0].left(); - }) - .ok(); - } - }) - .on_drop::<DraggedColumn>(move |_, _, cx| { + .on_children_prepainted(move |bounds, _, cx| { widths .update(cx, |widths, _| { - widths.widths = widths.visible_widths; + // This works because all children x axis bounds are the same + widths.cached_bounds_width = bounds[0].right() - bounds[0].left(); }) .ok(); - // Finish the resize operation }) } }) + .on_drop::<DraggedColumn>(|_, _, _| { + // Finish the resize operation + }) .child( div() .flex_grow() @@ -1443,323 +1313,3 @@ impl Component for Table<3> { ) } } - -#[cfg(test)] -mod test { - use super::*; - - fn is_almost_eq(a: &[f32], b: &[f32]) -> bool { - a.len() == b.len() && a.iter().zip(b).all(|(x, y)| (x - y).abs() < 1e-6) - } - - fn cols_to_str<const COLS: usize>(cols: &[f32; COLS], total_size: f32) -> String { - cols.map(|f| "*".repeat(f32::round(f * total_size) as usize)) - .join("|") - } - - fn parse_resize_behavior<const COLS: usize>( - input: &str, - total_size: f32, - ) -> [ResizeBehavior; COLS] { - let mut resize_behavior = [ResizeBehavior::None; COLS]; - let mut max_index = 0; - for (index, col) in input.split('|').enumerate() { - if col.starts_with('X') || col.is_empty() { - resize_behavior[index] = ResizeBehavior::None; - } else if col.starts_with('*') { - resize_behavior[index] = ResizeBehavior::MinSize(col.len() as f32 / total_size); - } else { - panic!("invalid test input: unrecognized resize behavior: {}", col); - } - max_index = index; - } - - if max_index + 1 != COLS { - panic!("invalid test input: too many columns"); - } - resize_behavior - } - - mod reset_column_size { - use super::*; - - fn parse<const COLS: usize>(input: &str) -> ([f32; COLS], f32, Option<usize>) { - let mut widths = [f32::NAN; COLS]; - let mut column_index = None; - for (index, col) in input.split('|').enumerate() { - widths[index] = col.len() as f32; - if col.starts_with('X') { - column_index = Some(index); - } - } - - for w in widths { - assert!(w.is_finite(), "incorrect number of columns"); - } - let total = widths.iter().sum::<f32>(); - for width in &mut widths { - *width /= total; - } - (widths, total, column_index) - } - - #[track_caller] - fn check_reset_size<const COLS: usize>( - initial_sizes: &str, - widths: &str, - expected: &str, - resize_behavior: &str, - ) { - let (initial_sizes, total_1, None) = parse::<COLS>(initial_sizes) else { - panic!("invalid test input: initial sizes should not be marked"); - }; - let (widths, total_2, Some(column_index)) = parse::<COLS>(widths) else { - panic!("invalid test input: widths should be marked"); - }; - assert_eq!( - total_1, total_2, - "invalid test input: total width not the same {total_1}, {total_2}" - ); - let (expected, total_3, None) = parse::<COLS>(expected) else { - panic!("invalid test input: expected should not be marked: {expected:?}"); - }; - assert_eq!( - total_2, total_3, - "invalid test input: total width not the same" - ); - let resize_behavior = parse_resize_behavior::<COLS>(resize_behavior, total_1); - let result = ColumnWidths::reset_to_initial_size( - column_index, - widths, - initial_sizes, - &resize_behavior, - ); - let is_eq = is_almost_eq(&result, &expected); - if !is_eq { - let result_str = cols_to_str(&result, total_1); - let expected_str = cols_to_str(&expected, total_1); - panic!( - "resize failed\ncomputed: {result_str}\nexpected: {expected_str}\n\ncomputed values: {result:?}\nexpected values: {expected:?}\n:minimum widths: {resize_behavior:?}" - ); - } - } - - macro_rules! check_reset_size { - (columns: $cols:expr, starting: $initial:expr, snapshot: $current:expr, expected: $expected:expr, resizing: $resizing:expr $(,)?) => { - check_reset_size::<$cols>($initial, $current, $expected, $resizing); - }; - ($name:ident, columns: $cols:expr, starting: $initial:expr, snapshot: $current:expr, expected: $expected:expr, minimums: $resizing:expr $(,)?) => { - #[test] - fn $name() { - check_reset_size::<$cols>($initial, $current, $expected, $resizing); - } - }; - } - - check_reset_size!( - basic_right, - columns: 5, - starting: "**|**|**|**|**", - snapshot: "**|**|X|***|**", - expected: "**|**|**|**|**", - minimums: "X|*|*|*|*", - ); - - check_reset_size!( - basic_left, - columns: 5, - starting: "**|**|**|**|**", - snapshot: "**|**|***|X|**", - expected: "**|**|**|**|**", - minimums: "X|*|*|*|**", - ); - - check_reset_size!( - squashed_left_reset_col2, - columns: 6, - starting: "*|***|**|**|****|*", - snapshot: "*|*|X|*|*|********", - expected: "*|*|**|*|*|*******", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - grow_cascading_right, - columns: 6, - starting: "*|***|****|**|***|*", - snapshot: "*|***|X|**|**|*****", - expected: "*|***|****|*|*|****", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - squashed_right_reset_col4, - columns: 6, - starting: "*|***|**|**|****|*", - snapshot: "*|********|*|*|X|*", - expected: "*|*****|*|*|****|*", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - reset_col6_right, - columns: 6, - starting: "*|***|**|***|***|**", - snapshot: "*|***|**|***|**|XXX", - expected: "*|***|**|***|***|**", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - reset_col6_left, - columns: 6, - starting: "*|***|**|***|***|**", - snapshot: "*|***|**|***|****|X", - expected: "*|***|**|***|***|**", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - last_column_grow_cascading, - columns: 6, - starting: "*|***|**|**|**|***", - snapshot: "*|*******|*|**|*|X", - expected: "*|******|*|*|*|***", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - goes_left_when_left_has_extreme_diff, - columns: 6, - starting: "*|***|****|**|**|***", - snapshot: "*|********|X|*|**|**", - expected: "*|*****|****|*|**|**", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - basic_shrink_right, - columns: 6, - starting: "**|**|**|**|**|**", - snapshot: "**|**|XXX|*|**|**", - expected: "**|**|**|**|**|**", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - shrink_should_go_left, - columns: 6, - starting: "*|***|**|*|*|*", - snapshot: "*|*|XXX|**|*|*", - expected: "*|**|**|**|*|*", - minimums: "X|*|*|*|*|*", - ); - - check_reset_size!( - shrink_should_go_right, - columns: 6, - starting: "*|***|**|**|**|*", - snapshot: "*|****|XXX|*|*|*", - expected: "*|****|**|**|*|*", - minimums: "X|*|*|*|*|*", - ); - } - - mod drag_handle { - use super::*; - - fn parse<const COLS: usize>(input: &str) -> ([f32; COLS], f32, Option<usize>) { - let mut widths = [f32::NAN; COLS]; - let column_index = input.replace("*", "").find("I"); - for (index, col) in input.replace("I", "|").split('|').enumerate() { - widths[index] = col.len() as f32; - } - - for w in widths { - assert!(w.is_finite(), "incorrect number of columns"); - } - let total = widths.iter().sum::<f32>(); - for width in &mut widths { - *width /= total; - } - (widths, total, column_index) - } - - #[track_caller] - fn check<const COLS: usize>( - distance: i32, - widths: &str, - expected: &str, - resize_behavior: &str, - ) { - let (mut widths, total_1, Some(column_index)) = parse::<COLS>(widths) else { - panic!("invalid test input: widths should be marked"); - }; - let (expected, total_2, None) = parse::<COLS>(expected) else { - panic!("invalid test input: expected should not be marked: {expected:?}"); - }; - assert_eq!( - total_1, total_2, - "invalid test input: total width not the same" - ); - let resize_behavior = parse_resize_behavior::<COLS>(resize_behavior, total_1); - - let distance = distance as f32 / total_1; - - let result = ColumnWidths::drag_column_handle( - distance, - column_index, - &mut widths, - &resize_behavior, - ); - - let is_eq = is_almost_eq(&widths, &expected); - if !is_eq { - let result_str = cols_to_str(&widths, total_1); - let expected_str = cols_to_str(&expected, total_1); - panic!( - "resize failed\ncomputed: {result_str}\nexpected: {expected_str}\n\ncomputed values: {result:?}\nexpected values: {expected:?}\n:minimum widths: {resize_behavior:?}" - ); - } - } - - macro_rules! check { - (columns: $cols:expr, distance: $dist:expr, snapshot: $current:expr, expected: $expected:expr, resizing: $resizing:expr $(,)?) => { - check!($cols, $dist, $snapshot, $expected, $resizing); - }; - ($name:ident, columns: $cols:expr, distance: $dist:expr, snapshot: $current:expr, expected: $expected:expr, minimums: $resizing:expr $(,)?) => { - #[test] - fn $name() { - check::<$cols>($dist, $current, $expected, $resizing); - } - }; - } - - check!( - basic_right_drag, - columns: 3, - distance: 1, - snapshot: "**|**I**", - expected: "**|***|*", - minimums: "X|*|*", - ); - - check!( - drag_left_against_mins, - columns: 5, - distance: -1, - snapshot: "*|*|*|*I*******", - expected: "*|*|*|*|*******", - minimums: "X|*|*|*|*", - ); - - check!( - drag_left, - columns: 5, - distance: -2, - snapshot: "*|*|*|*****I***", - expected: "*|*|*|***|*****", - minimums: "X|*|*|*|*", - ); - } -} diff --git a/crates/sum_tree/src/sum_tree.rs b/crates/sum_tree/src/sum_tree.rs index 4c5ce39590..4f9e01ce20 100644 --- a/crates/sum_tree/src/sum_tree.rs +++ b/crates/sum_tree/src/sum_tree.rs @@ -41,14 +41,16 @@ pub trait Summary: Clone { fn add_summary(&mut self, summary: &Self, cx: &Self::Context); } -/// Catch-all implementation for when you need something that implements [`Summary`] without a specific type. -/// We implement it on a &'static, as that avoids blanket impl collisions with `impl<T: Summary> Dimension for T` -/// (as we also need unit type to be a fill-in dimension) -impl Summary for &'static () { +/// This type exists because we can't implement Summary for () without causing +/// type resolution errors +#[derive(Copy, Clone, PartialEq, Eq, Debug)] +pub struct Unit; + +impl Summary for Unit { type Context = (); fn zero(_: &()) -> Self { - &() + Unit } fn add_summary(&mut self, _: &Self, _: &()) {} diff --git a/crates/tasks_ui/src/modal.rs b/crates/tasks_ui/src/modal.rs index c4b0931c35..1510f613e3 100644 --- a/crates/tasks_ui/src/modal.rs +++ b/crates/tasks_ui/src/modal.rs @@ -500,7 +500,7 @@ impl PickerDelegate for TasksModalDelegate { .map(|icon| icon.color(Color::Muted).size(IconSize::Small)); let indicator = if matches!(source_kind, TaskSourceKind::Lsp { .. }) { Some(Indicator::icon( - Icon::new(IconName::BoltOutlined).size(IconSize::Small), + Icon::new(IconName::Bolt).size(IconSize::Small), )) } else { None diff --git a/crates/terminal_view/src/terminal_view.rs b/crates/terminal_view/src/terminal_view.rs index 2e6be5aaf4..1cc1fbcf6f 100644 --- a/crates/terminal_view/src/terminal_view.rs +++ b/crates/terminal_view/src/terminal_view.rs @@ -430,7 +430,6 @@ impl TerminalView { fn settings_changed(&mut self, cx: &mut Context<Self>) { let settings = TerminalSettings::get_global(cx); - let breadcrumb_visibility_changed = self.show_breadcrumbs != settings.toolbar.breadcrumbs; self.show_breadcrumbs = settings.toolbar.breadcrumbs; let new_cursor_shape = settings.cursor_shape.unwrap_or_default(); @@ -442,9 +441,6 @@ impl TerminalView { }); } - if breadcrumb_visibility_changed { - cx.emit(ItemEvent::UpdateBreadcrumbs); - } cx.notify(); } @@ -1591,7 +1587,7 @@ impl Item for TerminalView { let (icon, icon_color, rerun_button) = match terminal.task() { Some(terminal_task) => match &terminal_task.status { TaskStatus::Running => ( - IconName::PlayOutlined, + IconName::Play, Color::Disabled, TerminalView::rerun_button(&terminal_task), ), diff --git a/crates/theme/src/icon_theme.rs b/crates/theme/src/icon_theme.rs index 10fd1e002d..09f5df06b0 100644 --- a/crates/theme/src/icon_theme.rs +++ b/crates/theme/src/icon_theme.rs @@ -152,7 +152,6 @@ const FILE_SUFFIXES_BY_ICON_KEY: &[(&str, &[&str])] = &[ ("javascript", &["cjs", "js", "mjs"]), ("json", &["json"]), ("julia", &["jl"]), - ("kdl", &["kdl"]), ("kotlin", &["kt"]), ("lock", &["lock"]), ("log", &["log"]), @@ -217,7 +216,6 @@ const FILE_SUFFIXES_BY_ICON_KEY: &[(&str, &[&str])] = &[ "stylelintrc.yml", ], ), - ("surrealql", &["surql"]), ("svelte", &["svelte"]), ("swift", &["swift"]), ("tcl", &["tcl"]), @@ -316,7 +314,6 @@ const FILE_ICONS: &[(&str, &str)] = &[ ("javascript", "icons/file_icons/javascript.svg"), ("json", "icons/file_icons/code.svg"), ("julia", "icons/file_icons/julia.svg"), - ("kdl", "icons/file_icons/kdl.svg"), ("kotlin", "icons/file_icons/kotlin.svg"), ("lock", "icons/file_icons/lock.svg"), ("log", "icons/file_icons/info.svg"), @@ -343,7 +340,6 @@ const FILE_ICONS: &[(&str, &str)] = &[ ("solidity", "icons/file_icons/file.svg"), ("storage", "icons/file_icons/database.svg"), ("stylelint", "icons/file_icons/javascript.svg"), - ("surrealql", "icons/file_icons/surrealql.svg"), ("svelte", "icons/file_icons/html.svg"), ("swift", "icons/file_icons/swift.svg"), ("tcl", "icons/file_icons/tcl.svg"), diff --git a/crates/theme/src/settings.rs b/crates/theme/src/settings.rs index 20c837f287..1c4c90a475 100644 --- a/crates/theme/src/settings.rs +++ b/crates/theme/src/settings.rs @@ -438,7 +438,7 @@ fn default_font_fallbacks() -> Option<FontFallbacks> { impl ThemeSettingsContent { /// Sets the theme for the given appearance to the theme with the specified name. - pub fn set_theme(&mut self, theme_name: impl Into<Arc<str>>, appearance: Appearance) { + pub fn set_theme(&mut self, theme_name: String, appearance: Appearance) { if let Some(selection) = self.theme.as_mut() { let theme_to_update = match selection { ThemeSelection::Static(theme) => theme, @@ -867,7 +867,6 @@ impl settings::Settings for ThemeSettings { .user .into_iter() .chain(sources.release_channel) - .chain(sources.profile) .chain(sources.server) { if let Some(value) = value.ui_density { diff --git a/crates/title_bar/Cargo.toml b/crates/title_bar/Cargo.toml index cf178e2850..8e95c6f79f 100644 --- a/crates/title_bar/Cargo.toml +++ b/crates/title_bar/Cargo.toml @@ -32,7 +32,6 @@ auto_update.workspace = true call.workspace = true chrono.workspace = true client.workspace = true -cloud_llm_client.workspace = true db.workspace = true gpui = { workspace = true, features = ["screen-capture"] } notifications.workspace = true diff --git a/crates/title_bar/src/collab.rs b/crates/title_bar/src/collab.rs index d026b4de14..056c981ccf 100644 --- a/crates/title_bar/src/collab.rs +++ b/crates/title_bar/src/collab.rs @@ -11,8 +11,8 @@ use gpui::{App, Task, Window, actions}; use rpc::proto::{self}; use theme::ActiveTheme; use ui::{ - Avatar, AvatarAudioStatusIndicator, ContextMenu, ContextMenuItem, Divider, DividerColor, - Facepile, PopoverMenu, SplitButton, SplitButtonStyle, TintColor, Tooltip, prelude::*, + Avatar, AvatarAudioStatusIndicator, ContextMenu, ContextMenuItem, Divider, Facepile, + PopoverMenu, SplitButton, SplitButtonStyle, TintColor, Tooltip, prelude::*, }; use util::maybe; use workspace::notifications::DetachAndPromptErr; @@ -343,24 +343,6 @@ impl TitleBar { let mut children = Vec::new(); - children.push( - h_flex() - .gap_1() - .child( - IconButton::new("leave-call", IconName::Exit) - .style(ButtonStyle::Subtle) - .tooltip(Tooltip::text("Leave Call")) - .icon_size(IconSize::Small) - .on_click(move |_, _window, cx| { - ActiveCall::global(cx) - .update(cx, |call, cx| call.hang_up(cx)) - .detach_and_log_err(cx); - }), - ) - .child(Divider::vertical().color(DividerColor::Border)) - .into_any_element(), - ); - if is_local && can_share_projects && !is_connecting_to_project { children.push( Button::new( @@ -387,14 +369,32 @@ impl TitleBar { ); } + children.push( + div() + .pr_2() + .child( + IconButton::new("leave-call", ui::IconName::Exit) + .style(ButtonStyle::Subtle) + .tooltip(Tooltip::text("Leave call")) + .icon_size(IconSize::Small) + .on_click(move |_, _window, cx| { + ActiveCall::global(cx) + .update(cx, |call, cx| call.hang_up(cx)) + .detach_and_log_err(cx); + }), + ) + .child(Divider::vertical()) + .into_any_element(), + ); + if can_use_microphone { children.push( IconButton::new( "mute-microphone", if is_muted { - IconName::MicMute + ui::IconName::MicMute } else { - IconName::Mic + ui::IconName::Mic }, ) .tooltip(move |window, cx| { @@ -429,9 +429,9 @@ impl TitleBar { IconButton::new( "mute-sound", if is_deafened { - IconName::AudioOff + ui::IconName::AudioOff } else { - IconName::AudioOn + ui::IconName::AudioOn }, ) .style(ButtonStyle::Subtle) @@ -462,7 +462,7 @@ impl TitleBar { ); if can_use_microphone && screen_sharing_supported { - let trigger = IconButton::new("screen-share", IconName::Screen) + let trigger = IconButton::new("screen-share", ui::IconName::Screen) .style(ButtonStyle::Subtle) .icon_size(IconSize::Small) .toggle_state(is_screen_sharing) @@ -498,7 +498,7 @@ impl TitleBar { trigger.render(window, cx), self.render_screen_list().into_any_element(), ) - .style(SplitButtonStyle::Transparent) + .style(SplitButtonStyle::Outlined) .into_any_element(), ); } @@ -513,11 +513,11 @@ impl TitleBar { .with_handle(self.screen_share_popover_handle.clone()) .trigger( ui::ButtonLike::new_rounded_right("screen-share-screen-list-trigger") + .layer(ui::ElevationIndex::ModalSurface) + .size(ui::ButtonSize::None) .child( - h_flex() - .mx_neg_0p5() - .h_full() - .justify_center() + div() + .px_1() .child(Icon::new(IconName::ChevronDownSmall).size(IconSize::XSmall)), ) .toggle_state(self.screen_share_popover_handle.is_deployed()), diff --git a/crates/title_bar/src/title_bar.rs b/crates/title_bar/src/title_bar.rs index a8b16d881f..17c4c85b6d 100644 --- a/crates/title_bar/src/title_bar.rs +++ b/crates/title_bar/src/title_bar.rs @@ -21,7 +21,6 @@ use crate::application_menu::{ use auto_update::AutoUpdateStatus; use call::ActiveCall; use client::{Client, UserStore, zed_urls}; -use cloud_llm_client::Plan; use gpui::{ Action, AnyElement, App, Context, Corner, Element, Entity, Focusable, InteractiveElement, IntoElement, MouseButton, ParentElement, Render, StatefulInteractiveElement, Styled, @@ -29,6 +28,7 @@ use gpui::{ }; use onboarding_banner::OnboardingBanner; use project::Project; +use rpc::proto; use settings::Settings as _; use settings_ui::keybindings; use std::sync::Arc; @@ -179,23 +179,24 @@ impl Render for TitleBar { children.push(self.banner.clone().into_any_element()) } - let status = self.client.status(); - let status = &*status.borrow(); - let user = self.user_store.read(cx).current_user(); - children.push( h_flex() .gap_1() .pr_1() .on_mouse_down(MouseButton::Left, |_, _, cx| cx.stop_propagation()) .children(self.render_call_controls(window, cx)) - .children(self.render_connection_status(status, cx)) - .when( - user.is_none() && TitleBarSettings::get_global(cx).show_sign_in, - |el| el.child(self.render_sign_in_button(cx)), - ) - .when(user.is_some(), |parent| { - parent.child(self.render_user_menu_button(cx)) + .map(|el| { + let status = self.client.status(); + let status = &*status.borrow(); + if matches!(status, client::Status::Connected { .. }) { + el.child(self.render_user_menu_button(cx)) + } else { + el.children(self.render_connection_status(status, cx)) + .when(TitleBarSettings::get_global(cx).show_sign_in, |el| { + el.child(self.render_sign_in_button(cx)) + }) + .child(self.render_user_menu_button(cx)) + } }) .into_any_element(), ); @@ -617,8 +618,9 @@ impl TitleBar { window .spawn(cx, async move |cx| { client - .sign_in_with_optional_connect(true, &cx) + .authenticate_and_connect(true, &cx) .await + .into_response() .notify_async_err(cx); }) .detach(); @@ -628,8 +630,8 @@ impl TitleBar { pub fn render_user_menu_button(&mut self, cx: &mut Context<Self>) -> impl Element { let user_store = self.user_store.read(cx); if let Some(user) = user_store.current_user() { - let has_subscription_period = user_store.subscription_period().is_some(); - let plan = user_store.plan().filter(|_| { + let has_subscription_period = self.user_store.read(cx).subscription_period().is_some(); + let plan = self.user_store.read(cx).current_plan().filter(|_| { // Since the user might be on the legacy free plan we filter based on whether we have a subscription period. has_subscription_period }); @@ -656,9 +658,13 @@ impl TitleBar { let user_login = user.github_login.clone(); let (plan_name, label_color, bg_color) = match plan { - None | Some(Plan::ZedFree) => ("Free", Color::Default, free_chip_bg), - Some(Plan::ZedProTrial) => ("Pro Trial", Color::Accent, pro_chip_bg), - Some(Plan::ZedPro) => ("Pro", Color::Accent, pro_chip_bg), + None | Some(proto::Plan::Free) => { + ("Free", Color::Default, free_chip_bg) + } + Some(proto::Plan::ZedProTrial) => { + ("Pro Trial", Color::Accent, pro_chip_bg) + } + Some(proto::Plan::ZedPro) => ("Pro", Color::Accent, pro_chip_bg), }; menu.custom_entry( @@ -682,10 +688,6 @@ impl TitleBar { ) .separator() .action("Settings", zed_actions::OpenSettings.boxed_clone()) - .action( - "Settings Profiles", - zed_actions::settings_profile_selector::Toggle.boxed_clone(), - ) .action("Key Bindings", Box::new(keybindings::OpenKeymapEditor)) .action( "Themes…", @@ -730,10 +732,6 @@ impl TitleBar { .menu(|window, cx| { ContextMenu::build(window, cx, |menu, _, _| { menu.action("Settings", zed_actions::OpenSettings.boxed_clone()) - .action( - "Settings Profiles", - zed_actions::settings_profile_selector::Toggle.boxed_clone(), - ) .action("Key Bindings", Box::new(keybindings::OpenKeymapEditor)) .action( "Themes…", diff --git a/crates/ui/src/components.rs b/crates/ui/src/components.rs index 486673e733..9c2961c55f 100644 --- a/crates/ui/src/components.rs +++ b/crates/ui/src/components.rs @@ -1,5 +1,4 @@ mod avatar; -mod badge; mod banner; mod button; mod callout; @@ -42,7 +41,6 @@ mod tooltip; mod stories; pub use avatar::*; -pub use badge::*; pub use banner::*; pub use button::*; pub use callout::*; diff --git a/crates/ui/src/components/badge.rs b/crates/ui/src/components/badge.rs deleted file mode 100644 index 2eee084bbb..0000000000 --- a/crates/ui/src/components/badge.rs +++ /dev/null @@ -1,66 +0,0 @@ -use crate::Divider; -use crate::DividerColor; -use crate::component_prelude::*; -use crate::prelude::*; -use gpui::{AnyElement, IntoElement, SharedString, Window}; - -#[derive(IntoElement, RegisterComponent)] -pub struct Badge { - label: SharedString, - icon: IconName, -} - -impl Badge { - pub fn new(label: impl Into<SharedString>) -> Self { - Self { - label: label.into(), - icon: IconName::Check, - } - } - - pub fn icon(mut self, icon: IconName) -> Self { - self.icon = icon; - self - } -} - -impl RenderOnce for Badge { - fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { - h_flex() - .h_full() - .gap_1() - .pl_1() - .pr_2() - .border_1() - .border_color(cx.theme().colors().border.opacity(0.6)) - .bg(cx.theme().colors().element_background) - .rounded_sm() - .overflow_hidden() - .child( - Icon::new(self.icon) - .size(IconSize::XSmall) - .color(Color::Muted), - ) - .child(Divider::vertical().color(DividerColor::Border)) - .child(Label::new(self.label.clone()).size(LabelSize::Small).ml_1()) - } -} - -impl Component for Badge { - fn scope() -> ComponentScope { - ComponentScope::DataDisplay - } - - fn description() -> Option<&'static str> { - Some( - "A compact, labeled component with optional icon for displaying status, categories, or metadata.", - ) - } - - fn preview(_window: &mut Window, _cx: &mut App) -> Option<AnyElement> { - Some( - single_example("Basic Badge", Badge::new("Default").into_any_element()) - .into_any_element(), - ) - } -} diff --git a/crates/ui/src/components/button/button_like.rs b/crates/ui/src/components/button/button_like.rs index 03f7964f35..135ecdfe62 100644 --- a/crates/ui/src/components/button/button_like.rs +++ b/crates/ui/src/components/button/button_like.rs @@ -358,7 +358,6 @@ impl ButtonStyle { #[derive(Default, PartialEq, Clone, Copy)] pub enum ButtonSize { Large, - Medium, #[default] Default, Compact, @@ -369,7 +368,6 @@ impl ButtonSize { pub fn rems(self) -> Rems { match self { ButtonSize::Large => rems_from_px(32.), - ButtonSize::Medium => rems_from_px(28.), ButtonSize::Default => rems_from_px(22.), ButtonSize::Compact => rems_from_px(18.), ButtonSize::None => rems_from_px(16.), @@ -575,7 +573,7 @@ impl RenderOnce for ButtonLike { }) .gap(DynamicSpacing::Base04.rems(cx)) .map(|this| match self.size { - ButtonSize::Large | ButtonSize::Medium => this.px(DynamicSpacing::Base06.rems(cx)), + ButtonSize::Large => this.px(DynamicSpacing::Base06.rems(cx)), ButtonSize::Default | ButtonSize::Compact => { this.px(DynamicSpacing::Base04.rems(cx)) } diff --git a/crates/ui/src/components/button/split_button.rs b/crates/ui/src/components/button/split_button.rs index 14b9fd153c..a7fa2106d1 100644 --- a/crates/ui/src/components/button/split_button.rs +++ b/crates/ui/src/components/button/split_button.rs @@ -12,7 +12,6 @@ use super::ButtonLike; pub enum SplitButtonStyle { Filled, Outlined, - Transparent, } /// /// A button with two parts: a primary action on the left and a secondary action on the right. @@ -45,17 +44,10 @@ impl SplitButton { impl RenderOnce for SplitButton { fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { - let is_filled_or_outlined = matches!( - self.style, - SplitButtonStyle::Filled | SplitButtonStyle::Outlined - ); - h_flex() .rounded_sm() - .when(is_filled_or_outlined, |this| { - this.border_1() - .border_color(cx.theme().colors().border.opacity(0.8)) - }) + .border_1() + .border_color(cx.theme().colors().border.opacity(0.5)) .child(div().flex_grow().child(self.left)) .child( div() diff --git a/crates/ui/src/components/button/toggle_button.rs b/crates/ui/src/components/button/toggle_button.rs index a1e4d65a24..eca23fe6f7 100644 --- a/crates/ui/src/components/button/toggle_button.rs +++ b/crates/ui/src/components/button/toggle_button.rs @@ -1,6 +1,6 @@ use gpui::{AnyView, ClickEvent}; -use crate::{ButtonLike, ButtonLikeRounding, ElevationIndex, TintColor, prelude::*}; +use crate::{ButtonLike, ButtonLikeRounding, ElevationIndex, prelude::*}; /// The position of a [`ToggleButton`] within a group of buttons. #[derive(Debug, PartialEq, Eq, Clone, Copy)] @@ -290,617 +290,3 @@ impl Component for ToggleButton { ) } } - -pub struct ButtonConfiguration { - label: SharedString, - icon: Option<IconName>, - on_click: Box<dyn Fn(&ClickEvent, &mut Window, &mut App) + 'static>, - selected: bool, -} - -mod private { - pub trait ToggleButtonStyle {} -} - -pub trait ButtonBuilder: 'static + private::ToggleButtonStyle { - fn into_configuration(self) -> ButtonConfiguration; -} - -pub struct ToggleButtonSimple { - label: SharedString, - on_click: Box<dyn Fn(&ClickEvent, &mut Window, &mut App) + 'static>, - selected: bool, -} - -impl ToggleButtonSimple { - pub fn new( - label: impl Into<SharedString>, - on_click: impl Fn(&ClickEvent, &mut Window, &mut App) + 'static, - ) -> Self { - Self { - label: label.into(), - on_click: Box::new(on_click), - selected: false, - } - } - - pub fn selected(mut self, selected: bool) -> Self { - self.selected = selected; - self - } -} - -impl private::ToggleButtonStyle for ToggleButtonSimple {} - -impl ButtonBuilder for ToggleButtonSimple { - fn into_configuration(self) -> ButtonConfiguration { - ButtonConfiguration { - label: self.label, - icon: None, - on_click: self.on_click, - selected: self.selected, - } - } -} - -pub struct ToggleButtonWithIcon { - label: SharedString, - icon: IconName, - on_click: Box<dyn Fn(&ClickEvent, &mut Window, &mut App) + 'static>, - selected: bool, -} - -impl ToggleButtonWithIcon { - pub fn new( - label: impl Into<SharedString>, - icon: IconName, - on_click: impl Fn(&ClickEvent, &mut Window, &mut App) + 'static, - ) -> Self { - Self { - label: label.into(), - icon, - on_click: Box::new(on_click), - selected: false, - } - } - - pub fn selected(mut self, selected: bool) -> Self { - self.selected = selected; - self - } -} - -impl private::ToggleButtonStyle for ToggleButtonWithIcon {} - -impl ButtonBuilder for ToggleButtonWithIcon { - fn into_configuration(self) -> ButtonConfiguration { - ButtonConfiguration { - label: self.label, - icon: Some(self.icon), - on_click: self.on_click, - selected: self.selected, - } - } -} - -#[derive(Clone, Copy, PartialEq)] -pub enum ToggleButtonGroupStyle { - Transparent, - Filled, - Outlined, -} - -#[derive(Clone, Copy, PartialEq)] -pub enum ToggleButtonGroupSize { - Default, - Medium, -} - -#[derive(IntoElement)] -pub struct ToggleButtonGroup<T, const COLS: usize = 3, const ROWS: usize = 1> -where - T: ButtonBuilder, -{ - group_name: &'static str, - rows: [[T; COLS]; ROWS], - style: ToggleButtonGroupStyle, - size: ToggleButtonGroupSize, - button_width: Rems, - selected_index: usize, -} - -impl<T: ButtonBuilder, const COLS: usize> ToggleButtonGroup<T, COLS> { - pub fn single_row(group_name: &'static str, buttons: [T; COLS]) -> Self { - Self { - group_name, - rows: [buttons], - style: ToggleButtonGroupStyle::Transparent, - size: ToggleButtonGroupSize::Default, - button_width: rems_from_px(100.), - selected_index: 0, - } - } -} - -impl<T: ButtonBuilder, const COLS: usize> ToggleButtonGroup<T, COLS, 2> { - pub fn two_rows(group_name: &'static str, first_row: [T; COLS], second_row: [T; COLS]) -> Self { - Self { - group_name, - rows: [first_row, second_row], - style: ToggleButtonGroupStyle::Transparent, - size: ToggleButtonGroupSize::Default, - button_width: rems_from_px(100.), - selected_index: 0, - } - } -} - -impl<T: ButtonBuilder, const COLS: usize, const ROWS: usize> ToggleButtonGroup<T, COLS, ROWS> { - pub fn style(mut self, style: ToggleButtonGroupStyle) -> Self { - self.style = style; - self - } - - pub fn size(mut self, size: ToggleButtonGroupSize) -> Self { - self.size = size; - self - } - - pub fn button_width(mut self, button_width: Rems) -> Self { - self.button_width = button_width; - self - } - - pub fn selected_index(mut self, index: usize) -> Self { - self.selected_index = index; - self - } -} - -impl<T: ButtonBuilder, const COLS: usize, const ROWS: usize> RenderOnce - for ToggleButtonGroup<T, COLS, ROWS> -{ - fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { - let entries = - self.rows.into_iter().enumerate().map(|(row_index, row)| { - row.into_iter().enumerate().map(move |(col_index, button)| { - let ButtonConfiguration { - label, - icon, - on_click, - selected, - } = button.into_configuration(); - - let entry_index = row_index * COLS + col_index; - - ButtonLike::new((self.group_name, entry_index)) - .when(entry_index == self.selected_index || selected, |this| { - this.toggle_state(true) - .selected_style(ButtonStyle::Tinted(TintColor::Accent)) - }) - .rounding(None) - .when(self.style == ToggleButtonGroupStyle::Filled, |button| { - button.style(ButtonStyle::Filled) - }) - .when(self.size == ToggleButtonGroupSize::Medium, |button| { - button.size(ButtonSize::Medium) - }) - .child( - h_flex() - .min_w(self.button_width) - .gap_1p5() - .px_3() - .py_1() - .justify_center() - .when_some(icon, |this, icon| { - this.py_2() - .child(Icon::new(icon).size(IconSize::XSmall).map(|this| { - if entry_index == self.selected_index || selected { - this.color(Color::Accent) - } else { - this.color(Color::Muted) - } - })) - }) - .child(Label::new(label).size(LabelSize::Small).when( - entry_index == self.selected_index || selected, - |this| this.color(Color::Accent), - )), - ) - .on_click(on_click) - .into_any_element() - }) - }); - - let border_color = cx.theme().colors().border.opacity(0.6); - let is_outlined_or_filled = self.style == ToggleButtonGroupStyle::Outlined - || self.style == ToggleButtonGroupStyle::Filled; - let is_transparent = self.style == ToggleButtonGroupStyle::Transparent; - - v_flex() - .rounded_md() - .overflow_hidden() - .map(|this| { - if is_transparent { - this.gap_px() - } else { - this.border_1().border_color(border_color) - } - }) - .children(entries.enumerate().map(|(row_index, row)| { - let last_row = row_index == ROWS - 1; - h_flex() - .when(!is_outlined_or_filled, |this| this.gap_px()) - .when(is_outlined_or_filled && !last_row, |this| { - this.border_b_1().border_color(border_color) - }) - .children(row.enumerate().map(|(item_index, item)| { - let last_item = item_index == COLS - 1; - div() - .when(is_outlined_or_filled && !last_item, |this| { - this.border_r_1().border_color(border_color) - }) - .child(item) - })) - })) - } -} - -fn register_toggle_button_group() { - component::register_component::<ToggleButtonGroup<ToggleButtonSimple>>(); -} - -component::__private::inventory::submit! { - component::ComponentFn::new(register_toggle_button_group) -} - -impl<T: ButtonBuilder, const COLS: usize, const ROWS: usize> Component - for ToggleButtonGroup<T, COLS, ROWS> -{ - fn name() -> &'static str { - "ToggleButtonGroup" - } - - fn scope() -> ComponentScope { - ComponentScope::Input - } - - fn sort_name() -> &'static str { - "ButtonG" - } - - fn preview(_window: &mut Window, _cx: &mut App) -> Option<AnyElement> { - Some( - v_flex() - .gap_6() - .children(vec![example_group_with_title( - "Transparent Variant", - vec![ - single_example( - "Single Row Group", - ToggleButtonGroup::single_row( - "single_row_test", - [ - ToggleButtonSimple::new("First", |_, _, _| {}), - ToggleButtonSimple::new("Second", |_, _, _| {}), - ToggleButtonSimple::new("Third", |_, _, _| {}), - ], - ) - .selected_index(1) - .button_width(rems_from_px(100.)) - .into_any_element(), - ), - single_example( - "Single Row Group with icons", - ToggleButtonGroup::single_row( - "single_row_test_icon", - [ - ToggleButtonWithIcon::new( - "First", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Second", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Third", - IconName::AiZed, - |_, _, _| {}, - ), - ], - ) - .selected_index(1) - .button_width(rems_from_px(100.)) - .into_any_element(), - ), - single_example( - "Multiple Row Group", - ToggleButtonGroup::two_rows( - "multiple_row_test", - [ - ToggleButtonSimple::new("First", |_, _, _| {}), - ToggleButtonSimple::new("Second", |_, _, _| {}), - ToggleButtonSimple::new("Third", |_, _, _| {}), - ], - [ - ToggleButtonSimple::new("Fourth", |_, _, _| {}), - ToggleButtonSimple::new("Fifth", |_, _, _| {}), - ToggleButtonSimple::new("Sixth", |_, _, _| {}), - ], - ) - .selected_index(3) - .button_width(rems_from_px(100.)) - .into_any_element(), - ), - single_example( - "Multiple Row Group with Icons", - ToggleButtonGroup::two_rows( - "multiple_row_test_icons", - [ - ToggleButtonWithIcon::new( - "First", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Second", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Third", - IconName::AiZed, - |_, _, _| {}, - ), - ], - [ - ToggleButtonWithIcon::new( - "Fourth", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Fifth", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Sixth", - IconName::AiZed, - |_, _, _| {}, - ), - ], - ) - .selected_index(3) - .button_width(rems_from_px(100.)) - .into_any_element(), - ), - ], - )]) - .children(vec![example_group_with_title( - "Outlined Variant", - vec![ - single_example( - "Single Row Group", - ToggleButtonGroup::single_row( - "single_row_test_outline", - [ - ToggleButtonSimple::new("First", |_, _, _| {}), - ToggleButtonSimple::new("Second", |_, _, _| {}), - ToggleButtonSimple::new("Third", |_, _, _| {}), - ], - ) - .selected_index(1) - .style(ToggleButtonGroupStyle::Outlined) - .into_any_element(), - ), - single_example( - "Single Row Group with icons", - ToggleButtonGroup::single_row( - "single_row_test_icon_outlined", - [ - ToggleButtonWithIcon::new( - "First", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Second", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Third", - IconName::AiZed, - |_, _, _| {}, - ), - ], - ) - .selected_index(1) - .button_width(rems_from_px(100.)) - .style(ToggleButtonGroupStyle::Outlined) - .into_any_element(), - ), - single_example( - "Multiple Row Group", - ToggleButtonGroup::two_rows( - "multiple_row_test", - [ - ToggleButtonSimple::new("First", |_, _, _| {}), - ToggleButtonSimple::new("Second", |_, _, _| {}), - ToggleButtonSimple::new("Third", |_, _, _| {}), - ], - [ - ToggleButtonSimple::new("Fourth", |_, _, _| {}), - ToggleButtonSimple::new("Fifth", |_, _, _| {}), - ToggleButtonSimple::new("Sixth", |_, _, _| {}), - ], - ) - .selected_index(3) - .button_width(rems_from_px(100.)) - .style(ToggleButtonGroupStyle::Outlined) - .into_any_element(), - ), - single_example( - "Multiple Row Group with Icons", - ToggleButtonGroup::two_rows( - "multiple_row_test", - [ - ToggleButtonWithIcon::new( - "First", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Second", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Third", - IconName::AiZed, - |_, _, _| {}, - ), - ], - [ - ToggleButtonWithIcon::new( - "Fourth", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Fifth", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Sixth", - IconName::AiZed, - |_, _, _| {}, - ), - ], - ) - .selected_index(3) - .button_width(rems_from_px(100.)) - .style(ToggleButtonGroupStyle::Outlined) - .into_any_element(), - ), - ], - )]) - .children(vec![example_group_with_title( - "Filled Variant", - vec![ - single_example( - "Single Row Group", - ToggleButtonGroup::single_row( - "single_row_test_outline", - [ - ToggleButtonSimple::new("First", |_, _, _| {}), - ToggleButtonSimple::new("Second", |_, _, _| {}), - ToggleButtonSimple::new("Third", |_, _, _| {}), - ], - ) - .selected_index(2) - .style(ToggleButtonGroupStyle::Filled) - .into_any_element(), - ), - single_example( - "Single Row Group with icons", - ToggleButtonGroup::single_row( - "single_row_test_icon_outlined", - [ - ToggleButtonWithIcon::new( - "First", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Second", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Third", - IconName::AiZed, - |_, _, _| {}, - ), - ], - ) - .selected_index(1) - .button_width(rems_from_px(100.)) - .style(ToggleButtonGroupStyle::Filled) - .into_any_element(), - ), - single_example( - "Multiple Row Group", - ToggleButtonGroup::two_rows( - "multiple_row_test", - [ - ToggleButtonSimple::new("First", |_, _, _| {}), - ToggleButtonSimple::new("Second", |_, _, _| {}), - ToggleButtonSimple::new("Third", |_, _, _| {}), - ], - [ - ToggleButtonSimple::new("Fourth", |_, _, _| {}), - ToggleButtonSimple::new("Fifth", |_, _, _| {}), - ToggleButtonSimple::new("Sixth", |_, _, _| {}), - ], - ) - .selected_index(3) - .button_width(rems_from_px(100.)) - .style(ToggleButtonGroupStyle::Filled) - .into_any_element(), - ), - single_example( - "Multiple Row Group with Icons", - ToggleButtonGroup::two_rows( - "multiple_row_test", - [ - ToggleButtonWithIcon::new( - "First", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Second", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Third", - IconName::AiZed, - |_, _, _| {}, - ), - ], - [ - ToggleButtonWithIcon::new( - "Fourth", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Fifth", - IconName::AiZed, - |_, _, _| {}, - ), - ToggleButtonWithIcon::new( - "Sixth", - IconName::AiZed, - |_, _, _| {}, - ), - ], - ) - .selected_index(3) - .button_width(rems_from_px(100.)) - .style(ToggleButtonGroupStyle::Filled) - .into_any_element(), - ), - ], - )]) - .into_any_element(), - ) - } -} diff --git a/crates/ui/src/components/dropdown_menu.rs b/crates/ui/src/components/dropdown_menu.rs index cdb98086ca..189fac930f 100644 --- a/crates/ui/src/components/dropdown_menu.rs +++ b/crates/ui/src/components/dropdown_menu.rs @@ -8,7 +8,6 @@ use super::PopoverMenuHandle; pub enum DropdownStyle { #[default] Solid, - Outlined, Ghost, } @@ -148,23 +147,6 @@ impl Component for DropdownMenu { ), ], ), - example_group_with_title( - "Styles", - vec![ - single_example( - "Outlined", - DropdownMenu::new("outlined", "Outlined Dropdown", menu.clone()) - .style(DropdownStyle::Outlined) - .into_any_element(), - ), - single_example( - "Ghost", - DropdownMenu::new("ghost", "Ghost Dropdown", menu.clone()) - .style(DropdownStyle::Ghost) - .into_any_element(), - ), - ], - ), example_group_with_title( "States", vec![single_example( @@ -188,13 +170,10 @@ pub struct DropdownTriggerStyle { impl DropdownTriggerStyle { pub fn for_style(style: DropdownStyle, cx: &App) -> Self { let colors = cx.theme().colors(); - let bg = match style { DropdownStyle::Solid => colors.editor_background, - DropdownStyle::Outlined => colors.surface_background, DropdownStyle::Ghost => colors.ghost_element_background, }; - Self { bg } } } @@ -265,24 +244,17 @@ impl RenderOnce for DropdownMenuTrigger { let disabled = self.disabled; let style = DropdownTriggerStyle::for_style(self.style, cx); - let is_outlined = matches!(self.style, DropdownStyle::Outlined); h_flex() .id("dropdown-menu-trigger") - .min_w_20() + .justify_between() + .rounded_sm() + .bg(style.bg) .pl_2() .pr_1p5() .py_0p5() .gap_2() - .justify_between() - .rounded_sm() - .bg(style.bg) - .hover(|s| s.bg(cx.theme().colors().element_hover)) - .when(is_outlined, |this| { - this.border_1() - .border_color(cx.theme().colors().border) - .overflow_hidden() - }) + .min_w_20() .map(|el| { if self.full_width { el.w_full() diff --git a/crates/ui/src/components/keybinding.rs b/crates/ui/src/components/keybinding.rs index 5779093ccc..1d91492f26 100644 --- a/crates/ui/src/components/keybinding.rs +++ b/crates/ui/src/components/keybinding.rs @@ -44,7 +44,7 @@ impl KeyBinding { pub fn for_action_in( action: &dyn Action, focus: &FocusHandle, - window: &Window, + window: &mut Window, cx: &App, ) -> Option<Self> { let key_binding = window.highest_precedence_binding_for_action_in(action, focus)?; diff --git a/crates/ui/src/components/modal.rs b/crates/ui/src/components/modal.rs index a70f5e1ea5..2145b34ef2 100644 --- a/crates/ui/src/components/modal.rs +++ b/crates/ui/src/components/modal.rs @@ -1,5 +1,5 @@ use crate::{ - Clickable, Color, DynamicSpacing, Headline, HeadlineSize, Icon, IconButton, IconButtonShape, + Clickable, Color, DynamicSpacing, Headline, HeadlineSize, IconButton, IconButtonShape, IconName, Label, LabelCommon, LabelSize, h_flex, v_flex, }; use gpui::{prelude::FluentBuilder, *}; @@ -92,7 +92,6 @@ impl RenderOnce for Modal { #[derive(IntoElement)] pub struct ModalHeader { - icon: Option<Icon>, headline: Option<SharedString>, description: Option<SharedString>, children: SmallVec<[AnyElement; 2]>, @@ -109,7 +108,6 @@ impl Default for ModalHeader { impl ModalHeader { pub fn new() -> Self { Self { - icon: None, headline: None, description: None, children: SmallVec::new(), @@ -118,11 +116,6 @@ impl ModalHeader { } } - pub fn icon(mut self, icon: Icon) -> Self { - self.icon = Some(icon); - self - } - /// Set the headline of the modal. /// /// This will insert the headline as the first item @@ -186,17 +179,12 @@ impl RenderOnce for ModalHeader { ) }) .child( - v_flex() - .flex_1() - .child( - h_flex() - .gap_1() - .when_some(self.icon, |this, icon| this.child(icon)) - .children(children), - ) - .when_some(self.description, |this, description| { + v_flex().flex_1().children(children).when_some( + self.description, + |this, description| { this.child(Label::new(description).color(Color::Muted).mb_2()) - }), + }, + ), ) .when(self.show_dismiss_button, |this| { this.child( diff --git a/crates/ui/src/components/numeric_stepper.rs b/crates/ui/src/components/numeric_stepper.rs index 5a84633d1b..f9e6e88f01 100644 --- a/crates/ui/src/components/numeric_stepper.rs +++ b/crates/ui/src/components/numeric_stepper.rs @@ -2,18 +2,10 @@ use gpui::ClickEvent; use crate::{IconButtonShape, prelude::*}; -#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Hash)] -pub enum NumericStepperStyle { - Outlined, - #[default] - Ghost, -} - -#[derive(IntoElement, RegisterComponent)] +#[derive(IntoElement)] pub struct NumericStepper { id: ElementId, value: SharedString, - style: NumericStepperStyle, on_decrement: Box<dyn Fn(&ClickEvent, &mut Window, &mut App) + 'static>, on_increment: Box<dyn Fn(&ClickEvent, &mut Window, &mut App) + 'static>, /// Whether to reserve space for the reset button. @@ -31,7 +23,6 @@ impl NumericStepper { Self { id: id.into(), value: value.into(), - style: NumericStepperStyle::default(), on_decrement: Box::new(on_decrement), on_increment: Box::new(on_increment), reserve_space_for_reset: false, @@ -39,11 +30,6 @@ impl NumericStepper { } } - pub fn style(mut self, style: NumericStepperStyle) -> Self { - self.style = style; - self - } - pub fn reserve_space_for_reset(mut self, reserve_space_for_reset: bool) -> Self { self.reserve_space_for_reset = reserve_space_for_reset; self @@ -63,8 +49,6 @@ impl RenderOnce for NumericStepper { let shape = IconButtonShape::Square; let icon_size = IconSize::Small; - let is_outlined = matches!(self.style, NumericStepperStyle::Outlined); - h_flex() .id(self.id) .gap_1() @@ -90,117 +74,22 @@ impl RenderOnce for NumericStepper { .child( h_flex() .gap_1() - .rounded_sm() - .map(|this| { - if is_outlined { - this.overflow_hidden() - .bg(cx.theme().colors().surface_background) - .border_1() - .border_color(cx.theme().colors().border) - } else { - this.px_1().bg(cx.theme().colors().editor_background) - } - }) - .map(|decrement| { - if is_outlined { - decrement.child( - h_flex() - .id("decrement_button") - .p_1p5() - .size_full() - .justify_center() - .hover(|s| s.bg(cx.theme().colors().element_hover)) - .border_r_1() - .border_color(cx.theme().colors().border) - .child(Icon::new(IconName::Dash).size(IconSize::Small)) - .on_click(self.on_decrement), - ) - } else { - decrement.child( - IconButton::new("decrement", IconName::Dash) - .shape(shape) - .icon_size(icon_size) - .on_click(self.on_decrement), - ) - } - }) - .when(is_outlined, |this| this) - .child(Label::new(self.value).mx_3()) - .map(|increment| { - if is_outlined { - increment.child( - h_flex() - .id("increment_button") - .p_1p5() - .size_full() - .justify_center() - .hover(|s| s.bg(cx.theme().colors().element_hover)) - .border_l_1() - .border_color(cx.theme().colors().border) - .child(Icon::new(IconName::Plus).size(IconSize::Small)) - .on_click(self.on_increment), - ) - } else { - increment.child( - IconButton::new("increment", IconName::Dash) - .shape(shape) - .icon_size(icon_size) - .on_click(self.on_increment), - ) - } - }), + .px_1() + .rounded_xs() + .bg(cx.theme().colors().editor_background) + .child( + IconButton::new("decrement", IconName::Dash) + .shape(shape) + .icon_size(icon_size) + .on_click(self.on_decrement), + ) + .child(Label::new(self.value)) + .child( + IconButton::new("increment", IconName::Plus) + .shape(shape) + .icon_size(icon_size) + .on_click(self.on_increment), + ), ) } } - -impl Component for NumericStepper { - fn scope() -> ComponentScope { - ComponentScope::Input - } - - fn name() -> &'static str { - "Numeric Stepper" - } - - fn sort_name() -> &'static str { - Self::name() - } - - fn description() -> Option<&'static str> { - Some("A button used to increment or decrement a numeric value.") - } - - fn preview(_window: &mut Window, _cx: &mut App) -> Option<AnyElement> { - Some( - v_flex() - .gap_6() - .children(vec![example_group_with_title( - "Styles", - vec![ - single_example( - "Default", - NumericStepper::new( - "numeric-stepper-component-preview", - "10", - move |_, _, _| {}, - move |_, _, _| {}, - ) - .into_any_element(), - ), - single_example( - "Outlined", - NumericStepper::new( - "numeric-stepper-with-border-component-preview", - "10", - move |_, _, _| {}, - move |_, _, _| {}, - ) - .style(NumericStepperStyle::Outlined) - .into_any_element(), - ), - ], - )]) - .into_any_element(), - ) - } -} diff --git a/crates/ui/src/components/popover.rs b/crates/ui/src/components/popover.rs index 7143514c52..24460f6d9c 100644 --- a/crates/ui/src/components/popover.rs +++ b/crates/ui/src/components/popover.rs @@ -50,7 +50,7 @@ impl RenderOnce for Popover { v_flex() .elevation_2(cx) .py(POPOVER_Y_PADDING / 2.) - .child(div().children(self.children)), + .children(self.children), ) .when_some(self.aside, |this, aside| { this.child( diff --git a/crates/ui/src/components/scrollbar.rs b/crates/ui/src/components/scrollbar.rs index 7af55b76b7..17ab2e788f 100644 --- a/crates/ui/src/components/scrollbar.rs +++ b/crates/ui/src/components/scrollbar.rs @@ -4,8 +4,8 @@ use crate::{IntoElement, prelude::*, px, relative}; use gpui::{ Along, App, Axis as ScrollbarAxis, BorderStyle, Bounds, ContentMask, Corners, CursorStyle, Edges, Element, ElementId, Entity, EntityId, GlobalElementId, Hitbox, HitboxBehavior, Hsla, - IsZero, LayoutId, ListState, MouseButton, MouseDownEvent, MouseMoveEvent, MouseUpEvent, Pixels, - Point, ScrollHandle, ScrollWheelEvent, Size, Style, UniformListScrollHandle, Window, quad, + IsZero, LayoutId, ListState, MouseDownEvent, MouseMoveEvent, MouseUpEvent, Pixels, Point, + ScrollHandle, ScrollWheelEvent, Size, Style, UniformListScrollHandle, Window, quad, }; pub struct Scrollbar { @@ -301,6 +301,8 @@ impl Element for Scrollbar { window.set_cursor_style(CursorStyle::Arrow, hitbox); } + let scroll = self.state.scroll_handle.clone(); + enum ScrollbarMouseEvent { GutterClick, ThumbDrag(Pixels), @@ -335,12 +337,10 @@ impl Element for Scrollbar { }; window.on_mouse_event({ + let scroll = scroll.clone(); let state = self.state.clone(); move |event: &MouseDownEvent, phase, _, _| { - if !phase.bubble() - || event.button != MouseButton::Left - || !bounds.contains(&event.position) - { + if !(phase.bubble() && bounds.contains(&event.position)) { return; } @@ -348,71 +348,57 @@ impl Element for Scrollbar { let offset = event.position.along(axis) - thumb_bounds.origin.along(axis); state.set_dragging(offset); } else { - let scroll_handle = state.scroll_handle(); let click_offset = compute_click_offset( event.position, - scroll_handle.max_offset(), + scroll.max_offset(), ScrollbarMouseEvent::GutterClick, ); - scroll_handle - .set_offset(scroll_handle.offset().apply_along(axis, |_| click_offset)); + scroll.set_offset(scroll.offset().apply_along(axis, |_| click_offset)); } } }); window.on_mouse_event({ - let scroll_handle = self.state.scroll_handle().clone(); + let scroll = scroll.clone(); move |event: &ScrollWheelEvent, phase, window, _| { if phase.bubble() && bounds.contains(&event.position) { - let current_offset = scroll_handle.offset(); - scroll_handle.set_offset( + let current_offset = scroll.offset(); + scroll.set_offset( current_offset + event.delta.pixel_delta(window.line_height()), ); } } }); - window.on_mouse_event({ - let state = self.state.clone(); - move |event: &MouseMoveEvent, phase, window, cx| { - if phase.bubble() { - match state.thumb_state.get() { - ThumbState::Dragging(drag_state) if event.dragging() => { - let scroll_handle = state.scroll_handle(); - let drag_offset = compute_click_offset( - event.position, - scroll_handle.max_offset(), - ScrollbarMouseEvent::ThumbDrag(drag_state), - ); - scroll_handle.set_offset( - scroll_handle.offset().apply_along(axis, |_| drag_offset), - ); - window.refresh(); - if let Some(id) = state.parent_id { - cx.notify(id); - } - } - _ if event.pressed_button.is_none() => { - state.set_thumb_hovered(thumb_bounds.contains(&event.position)) - } - _ => {} + let state = self.state.clone(); + window.on_mouse_event(move |event: &MouseMoveEvent, _, window, cx| { + match state.thumb_state.get() { + ThumbState::Dragging(drag_state) if event.dragging() => { + let drag_offset = compute_click_offset( + event.position, + scroll.max_offset(), + ScrollbarMouseEvent::ThumbDrag(drag_state), + ); + scroll.set_offset(scroll.offset().apply_along(axis, |_| drag_offset)); + window.refresh(); + if let Some(id) = state.parent_id { + cx.notify(id); } } + _ => state.set_thumb_hovered(thumb_bounds.contains(&event.position)), } }); - - window.on_mouse_event({ - let state = self.state.clone(); - move |event: &MouseUpEvent, phase, _, cx| { - if phase.bubble() { - if state.is_dragging() { - state.scroll_handle().drag_ended(); - if let Some(id) = state.parent_id { - cx.notify(id); - } - } + let state = self.state.clone(); + let scroll = self.state.scroll_handle.clone(); + window.on_mouse_event(move |event: &MouseUpEvent, phase, _, cx| { + if phase.bubble() { + if state.is_dragging() { state.set_thumb_hovered(thumb_bounds.contains(&event.position)); } + scroll.drag_ended(); + if let Some(id) = state.parent_id { + cx.notify(id); + } } }); }) diff --git a/crates/ui/src/components/stories/icon_button.rs b/crates/ui/src/components/stories/icon_button.rs index ad6886252d..e787e81b55 100644 --- a/crates/ui/src/components/stories/icon_button.rs +++ b/crates/ui/src/components/stories/icon_button.rs @@ -77,7 +77,7 @@ impl Render for IconButtonStory { let with_tooltip_button = StoryItem::new( "With `tooltip`", - IconButton::new("with_tooltip_button", IconName::Chat) + IconButton::new("with_tooltip_button", IconName::MessageBubbles) .tooltip(Tooltip::text("Open messages")), ) .description("Displays an icon button that has a tooltip when hovered.") diff --git a/crates/ui/src/components/toggle.rs b/crates/ui/src/components/toggle.rs index 0d8f5c4107..cf2a56b1c9 100644 --- a/crates/ui/src/components/toggle.rs +++ b/crates/ui/src/components/toggle.rs @@ -566,7 +566,7 @@ impl RenderOnce for Switch { pub struct SwitchField { id: ElementId, label: SharedString, - description: Option<SharedString>, + description: SharedString, toggle_state: ToggleState, on_click: Arc<dyn Fn(&ToggleState, &mut Window, &mut App) + 'static>, disabled: bool, @@ -577,14 +577,14 @@ impl SwitchField { pub fn new( id: impl Into<ElementId>, label: impl Into<SharedString>, - description: Option<SharedString>, + description: impl Into<SharedString>, toggle_state: impl Into<ToggleState>, on_click: impl Fn(&ToggleState, &mut Window, &mut App) + 'static, ) -> Self { Self { id: id.into(), label: label.into(), - description: description, + description: description.into(), toggle_state: toggle_state.into(), on_click: Arc::new(on_click), disabled: false, @@ -592,11 +592,6 @@ impl SwitchField { } } - pub fn description(mut self, description: impl Into<SharedString>) -> Self { - self.description = Some(description.into()); - self - } - pub fn disabled(mut self, disabled: bool) -> Self { self.disabled = disabled; self @@ -614,22 +609,17 @@ impl RenderOnce for SwitchField { fn render(self, _window: &mut Window, _cx: &mut App) -> impl IntoElement { h_flex() .id(SharedString::from(format!("{}-container", self.id))) - .when(!self.disabled, |this| { - this.hover(|this| this.cursor_pointer()) - }) .w_full() .gap_4() .justify_between() .flex_wrap() - .child(match &self.description { - Some(description) => v_flex() + .child( + v_flex() .gap_0p5() .max_w_5_6() - .child(Label::new(self.label.clone())) - .child(Label::new(description.clone()).color(Color::Muted)) - .into_any_element(), - None => Label::new(self.label.clone()).into_any_element(), - }) + .child(Label::new(self.label)) + .child(Label::new(self.description).color(Color::Muted)), + ) .child( Switch::new( SharedString::from(format!("{}-switch", self.id)), @@ -678,7 +668,7 @@ impl Component for SwitchField { SwitchField::new( "switch_field_unselected", "Enable notifications", - Some("Receive notifications when new messages arrive.".into()), + "Receive notifications when new messages arrive.", ToggleState::Unselected, |_, _, _| {}, ) @@ -689,7 +679,7 @@ impl Component for SwitchField { SwitchField::new( "switch_field_selected", "Enable notifications", - Some("Receive notifications when new messages arrive.".into()), + "Receive notifications when new messages arrive.", ToggleState::Selected, |_, _, _| {}, ) @@ -705,7 +695,7 @@ impl Component for SwitchField { SwitchField::new( "switch_field_default", "Default color", - Some("This uses the default switch color.".into()), + "This uses the default switch color.", ToggleState::Selected, |_, _, _| {}, ) @@ -716,7 +706,7 @@ impl Component for SwitchField { SwitchField::new( "switch_field_accent", "Accent color", - Some("This uses the accent color scheme.".into()), + "This uses the accent color scheme.", ToggleState::Selected, |_, _, _| {}, ) @@ -732,7 +722,7 @@ impl Component for SwitchField { SwitchField::new( "switch_field_disabled", "Disabled field", - Some("This field is disabled and cannot be toggled.".into()), + "This field is disabled and cannot be toggled.", ToggleState::Selected, |_, _, _| {}, ) @@ -740,20 +730,6 @@ impl Component for SwitchField { .into_any_element(), )], ), - example_group_with_title( - "No Description", - vec![single_example( - "No Description", - SwitchField::new( - "switch_field_disabled", - "Disabled field", - None, - ToggleState::Selected, - |_, _, _| {}, - ) - .into_any_element(), - )], - ), ]) .into_any_element(), ) diff --git a/crates/ui/src/styles/animation.rs b/crates/ui/src/styles/animation.rs index 0649bee1f8..50c4e0eb0d 100644 --- a/crates/ui/src/styles/animation.rs +++ b/crates/ui/src/styles/animation.rs @@ -109,7 +109,7 @@ impl Component for Animation { fn preview(_window: &mut Window, _cx: &mut App) -> Option<AnyElement> { let container_size = 128.0; let element_size = 32.0; - let offset = container_size / 2.0 - element_size / 2.0; + let left_offset = element_size - container_size / 2.0; Some( v_flex() .gap_6() @@ -129,7 +129,7 @@ impl Component for Animation { .id("animate-in-from-bottom") .absolute() .size(px(element_size)) - .left(px(offset)) + .left(px(left_offset)) .rounded_md() .bg(gpui::red()) .animate_in(AnimationDirection::FromBottom, false), @@ -148,7 +148,7 @@ impl Component for Animation { .id("animate-in-from-top") .absolute() .size(px(element_size)) - .left(px(offset)) + .left(px(left_offset)) .rounded_md() .bg(gpui::blue()) .animate_in(AnimationDirection::FromTop, false), @@ -167,7 +167,7 @@ impl Component for Animation { .id("animate-in-from-left") .absolute() .size(px(element_size)) - .top(px(offset)) + .left(px(left_offset)) .rounded_md() .bg(gpui::green()) .animate_in(AnimationDirection::FromLeft, false), @@ -186,7 +186,7 @@ impl Component for Animation { .id("animate-in-from-right") .absolute() .size(px(element_size)) - .top(px(offset)) + .left(px(left_offset)) .rounded_md() .bg(gpui::yellow()) .animate_in(AnimationDirection::FromRight, false), @@ -211,7 +211,7 @@ impl Component for Animation { .id("fade-animate-in-from-bottom") .absolute() .size(px(element_size)) - .left(px(offset)) + .left(px(left_offset)) .rounded_md() .bg(gpui::red()) .animate_in(AnimationDirection::FromBottom, true), @@ -230,7 +230,7 @@ impl Component for Animation { .id("fade-animate-in-from-top") .absolute() .size(px(element_size)) - .left(px(offset)) + .left(px(left_offset)) .rounded_md() .bg(gpui::blue()) .animate_in(AnimationDirection::FromTop, true), @@ -249,7 +249,7 @@ impl Component for Animation { .id("fade-animate-in-from-left") .absolute() .size(px(element_size)) - .top(px(offset)) + .left(px(left_offset)) .rounded_md() .bg(gpui::green()) .animate_in(AnimationDirection::FromLeft, true), @@ -268,7 +268,7 @@ impl Component for Animation { .id("fade-animate-in-from-right") .absolute() .size(px(element_size)) - .top(px(offset)) + .left(px(left_offset)) .rounded_md() .bg(gpui::yellow()) .animate_in(AnimationDirection::FromRight, true), diff --git a/crates/ui_prompt/src/ui_prompt.rs b/crates/ui_prompt/src/ui_prompt.rs index fe6dc5b3f4..2b6a030f26 100644 --- a/crates/ui_prompt/src/ui_prompt.rs +++ b/crates/ui_prompt/src/ui_prompt.rs @@ -43,7 +43,7 @@ fn zed_prompt_renderer( let renderer = cx.new({ |cx| ZedPromptRenderer { _level: level, - message: cx.new(|cx| Markdown::new(SharedString::new(message), None, None, cx)), + message: message.to_string(), actions: actions.iter().map(|a| a.label().to_string()).collect(), focus: cx.focus_handle(), active_action_id: 0, @@ -58,7 +58,7 @@ fn zed_prompt_renderer( pub struct ZedPromptRenderer { _level: PromptLevel, - message: Entity<Markdown>, + message: String, actions: Vec<String>, focus: FocusHandle, active_action_id: usize, @@ -114,7 +114,7 @@ impl ZedPromptRenderer { impl Render for ZedPromptRenderer { fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement { let settings = ThemeSettings::get_global(cx); - let font_size = settings.ui_font_size(cx).into(); + let font_family = settings.ui_font.family.clone(); let prompt = v_flex() .key_context("Prompt") .cursor_default() @@ -130,38 +130,24 @@ impl Render for ZedPromptRenderer { .overflow_hidden() .p_4() .gap_4() - .font_family(settings.ui_font.family.clone()) + .font_family(font_family) .child( div() .w_full() - .child(MarkdownElement::new(self.message.clone(), { - let mut base_text_style = window.text_style(); - base_text_style.refine(&TextStyleRefinement { - font_family: Some(settings.ui_font.family.clone()), - font_size: Some(font_size), - font_weight: Some(FontWeight::BOLD), - color: Some(ui::Color::Default.color(cx)), - ..Default::default() - }); - MarkdownStyle { - base_text_style, - selection_background_color: cx - .theme() - .colors() - .element_selection_background, - ..Default::default() - } - })), + .font_weight(FontWeight::BOLD) + .child(self.message.clone()) + .text_color(ui::Color::Default.color(cx)), ) .children(self.detail.clone().map(|detail| { div() .w_full() .text_xs() .child(MarkdownElement::new(detail, { + let settings = ThemeSettings::get_global(cx); let mut base_text_style = window.text_style(); base_text_style.refine(&TextStyleRefinement { font_family: Some(settings.ui_font.family.clone()), - font_size: Some(font_size), + font_size: Some(settings.ui_font_size(cx).into()), color: Some(ui::Color::Muted.color(cx)), ..Default::default() }); @@ -190,28 +176,24 @@ impl Render for ZedPromptRenderer { }), )); - div() - .size_full() - .occlude() - .bg(gpui::black().opacity(0.2)) - .child( - div() - .size_full() - .absolute() - .top_0() - .left_0() - .flex() - .flex_col() - .justify_around() - .child( - div() - .w_full() - .flex() - .flex_row() - .justify_around() - .child(prompt), - ), - ) + div().size_full().occlude().child( + div() + .size_full() + .absolute() + .top_0() + .left_0() + .flex() + .flex_col() + .justify_around() + .child( + div() + .w_full() + .flex() + .flex_row() + .justify_around() + .child(prompt), + ), + ) } } diff --git a/crates/vim/src/command.rs b/crates/vim/src/command.rs index 7963db3571..23e04cae2c 100644 --- a/crates/vim/src/command.rs +++ b/crates/vim/src/command.rs @@ -6,7 +6,7 @@ use editor::{ actions::{SortLinesCaseInsensitive, SortLinesCaseSensitive}, display_map::ToDisplayPoint, }; -use gpui::{Action, App, AppContext as _, Context, Global, Keystroke, Window, actions}; +use gpui::{Action, App, AppContext as _, Context, Global, Window, actions}; use itertools::Itertools; use language::Point; use multi_buffer::MultiBufferRow; @@ -202,7 +202,6 @@ actions!( ArgumentRequired ] ); - /// Opens the specified file for editing. #[derive(Clone, PartialEq, Action)] #[action(namespace = vim, no_json, no_register)] @@ -210,13 +209,6 @@ struct VimEdit { pub filename: String, } -#[derive(Clone, PartialEq, Action)] -#[action(namespace = vim, no_json, no_register)] -struct VimNorm { - pub range: Option<CommandRange>, - pub command: String, -} - #[derive(Debug)] struct WrappedAction(Box<dyn Action>); @@ -455,81 +447,6 @@ pub fn register(editor: &mut Editor, cx: &mut Context<Vim>) { }); }); - Vim::action(editor, cx, |vim, action: &VimNorm, window, cx| { - let keystrokes = action - .command - .chars() - .map(|c| Keystroke::parse(&c.to_string()).unwrap()) - .collect(); - vim.switch_mode(Mode::Normal, true, window, cx); - let initial_selections = vim.update_editor(window, cx, |_, editor, _, _| { - editor.selections.disjoint_anchors() - }); - if let Some(range) = &action.range { - let result = vim.update_editor(window, cx, |vim, editor, window, cx| { - let range = range.buffer_range(vim, editor, window, cx)?; - editor.change_selections( - SelectionEffects::no_scroll().nav_history(false), - window, - cx, - |s| { - s.select_ranges( - (range.start.0..=range.end.0) - .map(|line| Point::new(line, 0)..Point::new(line, 0)), - ); - }, - ); - anyhow::Ok(()) - }); - if let Some(Err(err)) = result { - log::error!("Error selecting range: {}", err); - return; - } - }; - - let Some(workspace) = vim.workspace(window) else { - return; - }; - let task = workspace.update(cx, |workspace, cx| { - workspace.send_keystrokes_impl(keystrokes, window, cx) - }); - let had_range = action.range.is_some(); - - cx.spawn_in(window, async move |vim, cx| { - task.await; - vim.update_in(cx, |vim, window, cx| { - vim.update_editor(window, cx, |_, editor, window, cx| { - if had_range { - editor.change_selections(SelectionEffects::default(), window, cx, |s| { - s.select_anchor_ranges([s.newest_anchor().range()]); - }) - } - }); - if matches!(vim.mode, Mode::Insert | Mode::Replace) { - vim.normal_before(&Default::default(), window, cx); - } else { - vim.switch_mode(Mode::Normal, true, window, cx); - } - vim.update_editor(window, cx, |_, editor, _, cx| { - if let Some(first_sel) = initial_selections { - if let Some(tx_id) = editor - .buffer() - .update(cx, |multi, cx| multi.last_transaction_id(cx)) - { - let last_sel = editor.selections.disjoint_anchors(); - editor.modify_transaction_selection_history(tx_id, |old| { - old.0 = first_sel; - old.1 = Some(last_sel); - }); - } - } - }); - }) - .ok(); - }) - .detach(); - }); - Vim::action(editor, cx, |vim, _: &CountCommand, window, cx| { let Some(workspace) = vim.workspace(window) else { return; @@ -758,15 +675,14 @@ impl VimCommand { } else { return None; }; - - let action = if args.is_empty() { - action - } else { + if !args.is_empty() { // if command does not accept args and we have args then we should do no action - self.args.as_ref()?(action, args)? - }; - - if let Some(range) = range { + if let Some(args_fn) = &self.args { + args_fn.deref()(action, args) + } else { + None + } + } else if let Some(range) = range { self.range.as_ref().and_then(|f| f(action, range)) } else { Some(action) @@ -1145,27 +1061,6 @@ fn generate_commands(_: &App) -> Vec<VimCommand> { save_intent: Some(SaveIntent::Skip), close_pinned: true, }), - VimCommand::new( - ("norm", "al"), - VimNorm { - command: "".into(), - range: None, - }, - ) - .args(|_, args| { - Some( - VimNorm { - command: args, - range: None, - } - .boxed_clone(), - ) - }) - .range(|action, range| { - let mut action: VimNorm = action.as_any().downcast_ref::<VimNorm>().unwrap().clone(); - action.range.replace(range.clone()); - Some(Box::new(action)) - }), VimCommand::new(("bn", "ext"), workspace::ActivateNextItem).count(), VimCommand::new(("bN", "ext"), workspace::ActivatePreviousItem).count(), VimCommand::new(("bp", "revious"), workspace::ActivatePreviousItem).count(), @@ -2403,78 +2298,4 @@ mod test { }); assert!(mark.is_none()) } - - #[gpui::test] - async fn test_normal_command(cx: &mut TestAppContext) { - let mut cx = NeovimBackedTestContext::new(cx).await; - - cx.set_shared_state(indoc! {" - The quick - brown« fox - jumpsˇ» over - the lazy dog - "}) - .await; - - cx.simulate_shared_keystrokes(": n o r m space w C w o r d") - .await; - cx.simulate_shared_keystrokes("enter").await; - - cx.shared_state().await.assert_eq(indoc! {" - The quick - brown word - jumps worˇd - the lazy dog - "}); - - cx.simulate_shared_keystrokes(": n o r m space _ w c i w t e s t") - .await; - cx.simulate_shared_keystrokes("enter").await; - - cx.shared_state().await.assert_eq(indoc! {" - The quick - brown word - jumps tesˇt - the lazy dog - "}); - - cx.simulate_shared_keystrokes("_ l v l : n o r m space s l a") - .await; - cx.simulate_shared_keystrokes("enter").await; - - cx.shared_state().await.assert_eq(indoc! {" - The quick - brown word - lˇaumps test - the lazy dog - "}); - - cx.set_shared_state(indoc! {" - ˇThe quick - brown fox - jumps over - the lazy dog - "}) - .await; - - cx.simulate_shared_keystrokes("c i w M y escape").await; - - cx.shared_state().await.assert_eq(indoc! {" - Mˇy quick - brown fox - jumps over - the lazy dog - "}); - - cx.simulate_shared_keystrokes(": n o r m space u").await; - cx.simulate_shared_keystrokes("enter").await; - - cx.shared_state().await.assert_eq(indoc! {" - ˇThe quick - brown fox - jumps over - the lazy dog - "}); - // Once ctrl-v to input character literals is added there should be a test for redo - } } diff --git a/crates/vim/src/helix.rs b/crates/vim/src/helix.rs index ca93c9c1de..ec9b959b12 100644 --- a/crates/vim/src/helix.rs +++ b/crates/vim/src/helix.rs @@ -1,31 +1,21 @@ -use editor::{DisplayPoint, Editor, SelectionEffects, ToOffset, ToPoint, movement}; +use editor::{DisplayPoint, Editor, movement}; use gpui::{Action, actions}; use gpui::{Context, Window}; use language::{CharClassifier, CharKind}; -use text::{Bias, SelectionGoal}; +use text::SelectionGoal; -use crate::{ - Vim, - motion::{Motion, right}, - state::Mode, -}; +use crate::{Vim, motion::Motion, state::Mode}; actions!( vim, [ /// Switches to normal mode after the cursor (Helix-style). - HelixNormalAfter, - /// Inserts at the beginning of the selection. - HelixInsert, - /// Appends at the end of the selection. - HelixAppend, + HelixNormalAfter ] ); pub fn register(editor: &mut Editor, cx: &mut Context<Vim>) { Vim::action(editor, cx, Vim::helix_normal_after); - Vim::action(editor, cx, Vim::helix_insert); - Vim::action(editor, cx, Vim::helix_append); } impl Vim { @@ -309,112 +299,6 @@ impl Vim { _ => self.helix_move_and_collapse(motion, times, window, cx), } } - - fn helix_insert(&mut self, _: &HelixInsert, window: &mut Window, cx: &mut Context<Self>) { - self.start_recording(cx); - self.update_editor(window, cx, |_, editor, window, cx| { - editor.change_selections(Default::default(), window, cx, |s| { - s.move_with(|_map, selection| { - // In helix normal mode, move cursor to start of selection and collapse - if !selection.is_empty() { - selection.collapse_to(selection.start, SelectionGoal::None); - } - }); - }); - }); - self.switch_mode(Mode::Insert, false, window, cx); - } - - fn helix_append(&mut self, _: &HelixAppend, window: &mut Window, cx: &mut Context<Self>) { - self.start_recording(cx); - self.switch_mode(Mode::Insert, false, window, cx); - self.update_editor(window, cx, |_, editor, window, cx| { - editor.change_selections(Default::default(), window, cx, |s| { - s.move_with(|map, selection| { - let point = if selection.is_empty() { - right(map, selection.head(), 1) - } else { - selection.end - }; - selection.collapse_to(point, SelectionGoal::None); - }); - }); - }); - } - - pub fn helix_replace(&mut self, text: &str, window: &mut Window, cx: &mut Context<Self>) { - self.update_editor(window, cx, |_, editor, window, cx| { - editor.transact(window, cx, |editor, window, cx| { - let (map, selections) = editor.selections.all_display(cx); - - // Store selection info for positioning after edit - let selection_info: Vec<_> = selections - .iter() - .map(|selection| { - let range = selection.range(); - let start_offset = range.start.to_offset(&map, Bias::Left); - let end_offset = range.end.to_offset(&map, Bias::Left); - let was_empty = range.is_empty(); - let was_reversed = selection.reversed; - ( - map.buffer_snapshot.anchor_at(start_offset, Bias::Left), - end_offset - start_offset, - was_empty, - was_reversed, - ) - }) - .collect(); - - let mut edits = Vec::new(); - for selection in &selections { - let mut range = selection.range(); - - // For empty selections, extend to replace one character - if range.is_empty() { - range.end = movement::saturating_right(&map, range.start); - } - - let byte_range = range.start.to_offset(&map, Bias::Left) - ..range.end.to_offset(&map, Bias::Left); - - if !byte_range.is_empty() { - let replacement_text = text.repeat(byte_range.len()); - edits.push((byte_range, replacement_text)); - } - } - - editor.edit(edits, cx); - - // Restore selections based on original info - let snapshot = editor.buffer().read(cx).snapshot(cx); - let ranges: Vec<_> = selection_info - .into_iter() - .map(|(start_anchor, original_len, was_empty, was_reversed)| { - let start_point = start_anchor.to_point(&snapshot); - if was_empty { - // For cursor-only, collapse to start - start_point..start_point - } else { - // For selections, span the replaced text - let replacement_len = text.len() * original_len; - let end_offset = start_anchor.to_offset(&snapshot) + replacement_len; - let end_point = snapshot.offset_to_point(end_offset); - if was_reversed { - end_point..start_point - } else { - start_point..end_point - } - } - }) - .collect(); - - editor.change_selections(SelectionEffects::no_scroll(), window, cx, |s| { - s.select_ranges(ranges); - }); - }); - }); - self.switch_mode(Mode::HelixNormal, true, window, cx); - } } #[cfg(test)] @@ -613,94 +497,4 @@ mod test { cx.assert_state("«ˇaa»\n", Mode::HelixNormal); } - - #[gpui::test] - async fn test_insert_selected(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - cx.set_state( - indoc! {" - «The ˇ»quick brown - fox jumps over - the lazy dog."}, - Mode::HelixNormal, - ); - - cx.simulate_keystrokes("i"); - - cx.assert_state( - indoc! {" - ˇThe quick brown - fox jumps over - the lazy dog."}, - Mode::Insert, - ); - } - - #[gpui::test] - async fn test_append(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - // test from the end of the selection - cx.set_state( - indoc! {" - «Theˇ» quick brown - fox jumps over - the lazy dog."}, - Mode::HelixNormal, - ); - - cx.simulate_keystrokes("a"); - - cx.assert_state( - indoc! {" - Theˇ quick brown - fox jumps over - the lazy dog."}, - Mode::Insert, - ); - - // test from the beginning of the selection - cx.set_state( - indoc! {" - «ˇThe» quick brown - fox jumps over - the lazy dog."}, - Mode::HelixNormal, - ); - - cx.simulate_keystrokes("a"); - - cx.assert_state( - indoc! {" - Theˇ quick brown - fox jumps over - the lazy dog."}, - Mode::Insert, - ); - } - - #[gpui::test] - async fn test_replace(cx: &mut gpui::TestAppContext) { - let mut cx = VimTestContext::new(cx, true).await; - - // No selection (single character) - cx.set_state("ˇaa", Mode::HelixNormal); - - cx.simulate_keystrokes("r x"); - - cx.assert_state("ˇxa", Mode::HelixNormal); - - // Cursor at the beginning - cx.set_state("«ˇaa»", Mode::HelixNormal); - - cx.simulate_keystrokes("r x"); - - cx.assert_state("«ˇxx»", Mode::HelixNormal); - - // Cursor at the end - cx.set_state("«aaˇ»", Mode::HelixNormal); - - cx.simulate_keystrokes("r x"); - - cx.assert_state("«xxˇ»", Mode::HelixNormal); - } } diff --git a/crates/vim/src/insert.rs b/crates/vim/src/insert.rs index 0a370e16ba..89c60adee7 100644 --- a/crates/vim/src/insert.rs +++ b/crates/vim/src/insert.rs @@ -21,7 +21,7 @@ pub fn register(editor: &mut Editor, cx: &mut Context<Vim>) { } impl Vim { - pub(crate) fn normal_before( + fn normal_before( &mut self, action: &NormalBefore, window: &mut Window, diff --git a/crates/vim/src/motion.rs b/crates/vim/src/motion.rs index c22cf0ef00..a50b238cc5 100644 --- a/crates/vim/src/motion.rs +++ b/crates/vim/src/motion.rs @@ -987,7 +987,7 @@ impl Motion { SelectionGoal::None, ), NextWordEnd { ignore_punctuation } => ( - next_word_end(map, point, *ignore_punctuation, times, true, true), + next_word_end(map, point, *ignore_punctuation, times, true), SelectionGoal::None, ), PreviousWordStart { ignore_punctuation } => ( @@ -1723,19 +1723,14 @@ pub(crate) fn next_word_end( ignore_punctuation: bool, times: usize, allow_cross_newline: bool, - always_advance: bool, ) -> DisplayPoint { let classifier = map .buffer_snapshot .char_classifier_at(point.to_point(map)) .ignore_punctuation(ignore_punctuation); for _ in 0..times { + let new_point = next_char(map, point, allow_cross_newline); let mut need_next_char = false; - let new_point = if always_advance { - next_char(map, point, allow_cross_newline) - } else { - point - }; let new_point = movement::find_boundary_exclusive( map, new_point, diff --git a/crates/vim/src/normal/change.rs b/crates/vim/src/normal/change.rs index 135cdd687f..9485f17477 100644 --- a/crates/vim/src/normal/change.rs +++ b/crates/vim/src/normal/change.rs @@ -51,7 +51,6 @@ impl Vim { ignore_punctuation, &text_layout_details, motion == Motion::NextSubwordStart { ignore_punctuation }, - !matches!(motion, Motion::NextWordStart { .. }), ) } _ => { @@ -149,7 +148,6 @@ fn expand_changed_word_selection( ignore_punctuation: bool, text_layout_details: &TextLayoutDetails, use_subword: bool, - always_advance: bool, ) -> Option<MotionKind> { let is_in_word = || { let classifier = map @@ -175,14 +173,8 @@ fn expand_changed_word_selection( selection.end = motion::next_subword_end(map, selection.end, ignore_punctuation, 1, false); } else { - selection.end = motion::next_word_end( - map, - selection.end, - ignore_punctuation, - 1, - false, - always_advance, - ); + selection.end = + motion::next_word_end(map, selection.end, ignore_punctuation, 1, false); } selection.end = motion::next_char(map, selection.end, false); } @@ -279,10 +271,6 @@ mod test { cx.simulate("c shift-w", "Test teˇst-test test") .await .assert_matches(); - - // on last character of word, `cw` doesn't eat subsequent punctuation - // see https://github.com/zed-industries/zed/issues/35269 - cx.simulate("c w", "tesˇt-test").await.assert_matches(); } #[gpui::test] diff --git a/crates/vim/src/vim.rs b/crates/vim/src/vim.rs index 2f759ec8af..95a08d7c66 100644 --- a/crates/vim/src/vim.rs +++ b/crates/vim/src/vim.rs @@ -747,7 +747,7 @@ impl Vim { Vim::action( editor, cx, - |vim, action: &editor::actions::AcceptEditPrediction, window, cx| { + |vim, action: &editor::AcceptEditPrediction, window, cx| { vim.update_editor(window, cx, |_, editor, window, cx| { editor.accept_edit_prediction(action, window, cx); }); @@ -1639,7 +1639,6 @@ impl Vim { Mode::Visual | Mode::VisualLine | Mode::VisualBlock => { self.visual_replace(text, window, cx) } - Mode::HelixNormal => self.helix_replace(&text, window, cx), _ => self.clear_operator(window, cx), }, Some(Operator::Digraph { first_char }) => { diff --git a/crates/vim/test_data/test_change_w.json b/crates/vim/test_data/test_change_w.json index 149dac8420..27be543532 100644 --- a/crates/vim/test_data/test_change_w.json +++ b/crates/vim/test_data/test_change_w.json @@ -30,7 +30,3 @@ {"Key":"c"} {"Key":"shift-w"} {"Get":{"state":"Test teˇ test","mode":"Insert"}} -{"Put":{"state":"tesˇt-test"}} -{"Key":"c"} -{"Key":"w"} -{"Get":{"state":"tesˇ-test","mode":"Insert"}} diff --git a/crates/vim/test_data/test_normal_command.json b/crates/vim/test_data/test_normal_command.json deleted file mode 100644 index efd1d532c4..0000000000 --- a/crates/vim/test_data/test_normal_command.json +++ /dev/null @@ -1,64 +0,0 @@ -{"Put":{"state":"The quick\nbrown« fox\njumpsˇ» over\nthe lazy dog\n"}} -{"Key":":"} -{"Key":"n"} -{"Key":"o"} -{"Key":"r"} -{"Key":"m"} -{"Key":"space"} -{"Key":"w"} -{"Key":"C"} -{"Key":"w"} -{"Key":"o"} -{"Key":"r"} -{"Key":"d"} -{"Key":"enter"} -{"Get":{"state":"The quick\nbrown word\njumps worˇd\nthe lazy dog\n","mode":"Normal"}} -{"Key":":"} -{"Key":"n"} -{"Key":"o"} -{"Key":"r"} -{"Key":"m"} -{"Key":"space"} -{"Key":"_"} -{"Key":"w"} -{"Key":"c"} -{"Key":"i"} -{"Key":"w"} -{"Key":"t"} -{"Key":"e"} -{"Key":"s"} -{"Key":"t"} -{"Key":"enter"} -{"Get":{"state":"The quick\nbrown word\njumps tesˇt\nthe lazy dog\n","mode":"Normal"}} -{"Key":"_"} -{"Key":"l"} -{"Key":"v"} -{"Key":"l"} -{"Key":":"} -{"Key":"n"} -{"Key":"o"} -{"Key":"r"} -{"Key":"m"} -{"Key":"space"} -{"Key":"s"} -{"Key":"l"} -{"Key":"a"} -{"Key":"enter"} -{"Get":{"state":"The quick\nbrown word\nlˇaumps test\nthe lazy dog\n","mode":"Normal"}} -{"Put":{"state":"ˇThe quick\nbrown fox\njumps over\nthe lazy dog\n"}} -{"Key":"c"} -{"Key":"i"} -{"Key":"w"} -{"Key":"M"} -{"Key":"y"} -{"Key":"escape"} -{"Get":{"state":"Mˇy quick\nbrown fox\njumps over\nthe lazy dog\n","mode":"Normal"}} -{"Key":":"} -{"Key":"n"} -{"Key":"o"} -{"Key":"r"} -{"Key":"m"} -{"Key":"space"} -{"Key":"u"} -{"Key":"enter"} -{"Get":{"state":"ˇThe quick\nbrown fox\njumps over\nthe lazy dog\n","mode":"Normal"}} diff --git a/crates/web_search/Cargo.toml b/crates/web_search/Cargo.toml index 4ba46faec4..e5b8ca63b2 100644 --- a/crates/web_search/Cargo.toml +++ b/crates/web_search/Cargo.toml @@ -13,8 +13,8 @@ path = "src/web_search.rs" [dependencies] anyhow.workspace = true -cloud_llm_client.workspace = true collections.workspace = true gpui.workspace = true serde.workspace = true workspace-hack.workspace = true +zed_llm_client.workspace = true diff --git a/crates/web_search/src/web_search.rs b/crates/web_search/src/web_search.rs index 8578cfe4aa..a131b0de71 100644 --- a/crates/web_search/src/web_search.rs +++ b/crates/web_search/src/web_search.rs @@ -1,9 +1,8 @@ -use std::sync::Arc; - use anyhow::Result; -use cloud_llm_client::WebSearchResponse; use collections::HashMap; use gpui::{App, AppContext as _, Context, Entity, Global, SharedString, Task}; +use std::sync::Arc; +use zed_llm_client::WebSearchResponse; pub fn init(cx: &mut App) { let registry = cx.new(|_cx| WebSearchRegistry::default()); diff --git a/crates/web_search_providers/Cargo.toml b/crates/web_search_providers/Cargo.toml index f7a248d106..2e052796c4 100644 --- a/crates/web_search_providers/Cargo.toml +++ b/crates/web_search_providers/Cargo.toml @@ -14,7 +14,6 @@ path = "src/web_search_providers.rs" [dependencies] anyhow.workspace = true client.workspace = true -cloud_llm_client.workspace = true futures.workspace = true gpui.workspace = true http_client.workspace = true @@ -23,3 +22,4 @@ serde.workspace = true serde_json.workspace = true web_search.workspace = true workspace-hack.workspace = true +zed_llm_client.workspace = true diff --git a/crates/web_search_providers/src/cloud.rs b/crates/web_search_providers/src/cloud.rs index 52ee0da0d4..adf79b0ff6 100644 --- a/crates/web_search_providers/src/cloud.rs +++ b/crates/web_search_providers/src/cloud.rs @@ -2,12 +2,12 @@ use std::sync::Arc; use anyhow::{Context as _, Result}; use client::Client; -use cloud_llm_client::{EXPIRED_LLM_TOKEN_HEADER_NAME, WebSearchBody, WebSearchResponse}; use futures::AsyncReadExt as _; use gpui::{App, AppContext, Context, Entity, Subscription, Task}; use http_client::{HttpClient, Method}; use language_model::{LlmApiToken, RefreshLlmTokenListener}; use web_search::{WebSearchProvider, WebSearchProviderId}; +use zed_llm_client::{EXPIRED_LLM_TOKEN_HEADER_NAME, WebSearchBody, WebSearchResponse}; pub struct CloudWebSearchProvider { state: Entity<State>, diff --git a/crates/welcome/Cargo.toml b/crates/welcome/Cargo.toml index acb3fe0f84..769dd8d6aa 100644 --- a/crates/welcome/Cargo.toml +++ b/crates/welcome/Cargo.toml @@ -29,6 +29,7 @@ project.workspace = true serde.workspace = true settings.workspace = true telemetry.workspace = true +theme.workspace = true ui.workspace = true util.workspace = true vim_mode_setting.workspace = true diff --git a/crates/welcome/src/welcome.rs b/crates/welcome/src/welcome.rs index 352118eee8..49bf2031ab 100644 --- a/crates/welcome/src/welcome.rs +++ b/crates/welcome/src/welcome.rs @@ -21,6 +21,7 @@ pub use multibuffer_hint::*; mod base_keymap_picker; mod multibuffer_hint; +mod welcome_ui; actions!( welcome, diff --git a/crates/welcome/src/welcome_ui.rs b/crates/welcome/src/welcome_ui.rs new file mode 100644 index 0000000000..622b6f448d --- /dev/null +++ b/crates/welcome/src/welcome_ui.rs @@ -0,0 +1 @@ +mod theme_preview; diff --git a/crates/onboarding/src/theme_preview.rs b/crates/welcome/src/welcome_ui/theme_preview.rs similarity index 72% rename from crates/onboarding/src/theme_preview.rs rename to crates/welcome/src/welcome_ui/theme_preview.rs index d51511b7f4..b3a80c74c3 100644 --- a/crates/onboarding/src/theme_preview.rs +++ b/crates/welcome/src/welcome_ui/theme_preview.rs @@ -11,14 +11,22 @@ use ui::{ #[derive(IntoElement, RegisterComponent, Documented)] pub struct ThemePreviewTile { theme: Arc<Theme>, + selected: bool, seed: f32, } impl ThemePreviewTile { - pub const CORNER_RADIUS: Pixels = px(8.0); + pub fn new(theme: Arc<Theme>, selected: bool, seed: f32) -> Self { + Self { + theme, + selected, + seed, + } + } - pub fn new(theme: Arc<Theme>, seed: f32) -> Self { - Self { theme, seed } + pub fn selected(mut self, selected: bool) -> Self { + self.selected = selected; + self } } @@ -26,7 +34,7 @@ impl RenderOnce for ThemePreviewTile { fn render(self, _window: &mut ui::Window, _cx: &mut ui::App) -> impl IntoElement { let color = self.theme.colors(); - let root_radius = Self::CORNER_RADIUS; + let root_radius = px(8.0); let root_border = px(2.0); let root_padding = px(2.0); let child_border = px(1.0); @@ -35,7 +43,7 @@ impl RenderOnce for ThemePreviewTile { let item_skeleton = |w: Length, h: Pixels, bg: Hsla| div().w(w).h(h).rounded_full().bg(bg); - let skeleton_height = px(2.); + let skeleton_height = px(4.); let sidebar_seeded_width = |seed: f32, index: usize| { let value = (seed * 1000.0 + index as f32 * 10.0).sin() * 0.5 + 0.5; @@ -62,10 +70,12 @@ impl RenderOnce for ThemePreviewTile { .border_color(color.border_transparent) .bg(color.panel_background) .child( - v_flex() + div() .p_2() + .flex() + .flex_col() .size_full() - .gap_1() + .gap(px(4.)) .children(sidebar_skeleton), ); @@ -141,19 +151,32 @@ impl RenderOnce for ThemePreviewTile { v_flex() .size_full() .p_1() - .gap_1p5() + .gap(px(6.)) .children(lines) .into_any_element() }; - let pane = v_flex().h_full().flex_grow().child( - div() - .size_full() - .overflow_hidden() - .bg(color.editor_background) - .p_2() - .child(pseudo_code_skeleton(self.theme.clone(), self.seed)), - ); + let pane = div() + .h_full() + .flex_grow() + .flex() + .flex_col() + // .child( + // div() + // .w_full() + // .border_color(color.border) + // .border_b(px(1.)) + // .h(relative(0.1)) + // .bg(color.tab_bar_background), + // ) + .child( + div() + .size_full() + .overflow_hidden() + .bg(color.editor_background) + .p_2() + .child(pseudo_code_skeleton(self.theme.clone(), self.seed)), + ); let content = div().size_full().flex().child(sidebar).child(pane); @@ -161,6 +184,11 @@ impl RenderOnce for ThemePreviewTile { .size_full() .rounded(root_radius) .p(root_padding) + .border(root_border) + .border_color(color.border_transparent) + .when(self.selected, |this| { + this.border_color(color.border_selected) + }) .child( div() .size_full() @@ -202,14 +230,24 @@ impl Component for ThemePreviewTile { .p_4() .children({ if let Some(one_dark) = one_dark.ok() { - vec![example_group(vec![single_example( - "Default", - div() - .w(px(240.)) - .h(px(180.)) - .child(ThemePreviewTile::new(one_dark.clone(), 0.42)) - .into_any_element(), - )])] + vec![example_group(vec![ + single_example( + "Default", + div() + .w(px(240.)) + .h(px(180.)) + .child(ThemePreviewTile::new(one_dark.clone(), false, 0.42)) + .into_any_element(), + ), + single_example( + "Selected", + div() + .w(px(240.)) + .h(px(180.)) + .child(ThemePreviewTile::new(one_dark, true, 0.42)) + .into_any_element(), + ), + ])] } else { vec![] } @@ -223,11 +261,12 @@ impl Component for ThemePreviewTile { themes_to_preview .iter() .enumerate() - .map(|(_, theme)| { - div() - .w(px(200.)) - .h(px(140.)) - .child(ThemePreviewTile::new(theme.clone(), 0.42)) + .map(|(i, theme)| { + div().w(px(200.)).h(px(140.)).child(ThemePreviewTile::new( + theme.clone(), + false, + 0.42, + )) }) .collect::<Vec<_>>(), ) diff --git a/crates/workspace/src/dock.rs b/crates/workspace/src/dock.rs index ca63d3e553..7165de23ec 100644 --- a/crates/workspace/src/dock.rs +++ b/crates/workspace/src/dock.rs @@ -934,10 +934,6 @@ impl Render for PanelButtons { h_flex() .gap_1() - .when( - has_buttons && dock.position == DockPosition::Bottom, - |this| this.child(Divider::vertical().color(DividerColor::Border)), - ) .children(buttons) .when(has_buttons && dock.position == DockPosition::Left, |this| { this.child(Divider::vertical().color(DividerColor::Border)) diff --git a/crates/workspace/src/pane.rs b/crates/workspace/src/pane.rs index ad1c74a040..c7a2562a1b 100644 --- a/crates/workspace/src/pane.rs +++ b/crates/workspace/src/pane.rs @@ -2832,7 +2832,7 @@ impl Pane { }) .collect::<Vec<_>>(); let tab_count = tab_items.len(); - if self.is_tab_pinned(tab_count) { + if self.pinned_tab_count > tab_count { log::warn!( "Pinned tab count ({}) exceeds actual tab count ({}). \ This should not happen. If possible, add reproduction steps, \ @@ -3030,7 +3030,7 @@ impl Pane { || cfg!(not(target_os = "macos")) && window.modifiers().control; let from_pane = dragged_tab.pane.clone(); - + let from_ix = dragged_tab.ix; self.workspace .update(cx, |_, cx| { cx.defer_in(window, move |workspace, window, cx| { @@ -3062,13 +3062,9 @@ impl Pane { } to_pane.update(cx, |this, _| { if to_pane == from_pane { - let actual_ix = this - .items - .iter() - .position(|item| item.item_id() == item_id) - .unwrap_or(0); - - let is_pinned_in_to_pane = this.is_tab_pinned(actual_ix); + let moved_right = ix > from_ix; + let ix = if moved_right { ix - 1 } else { ix }; + let is_pinned_in_to_pane = this.is_tab_pinned(ix); if !was_pinned_in_from_pane && is_pinned_in_to_pane { this.pinned_tab_count += 1; @@ -4954,43 +4950,6 @@ mod tests { assert_item_labels(&pane_a, ["B!", "A*!"], cx); } - #[gpui::test] - async fn test_dragging_pinned_tab_onto_unpinned_tab_reduces_unpinned_tab_count( - cx: &mut TestAppContext, - ) { - init_test(cx); - let fs = FakeFs::new(cx.executor()); - - let project = Project::test(fs, None, cx).await; - let (workspace, cx) = - cx.add_window_view(|window, cx| Workspace::test_new(project.clone(), window, cx)); - let pane_a = workspace.read_with(cx, |workspace, _| workspace.active_pane().clone()); - - // Add A, B to pane A and pin A - let item_a = add_labeled_item(&pane_a, "A", false, cx); - add_labeled_item(&pane_a, "B", false, cx); - pane_a.update_in(cx, |pane, window, cx| { - let ix = pane.index_for_item_id(item_a.item_id()).unwrap(); - pane.pin_tab_at(ix, window, cx); - }); - assert_item_labels(&pane_a, ["A!", "B*"], cx); - - // Drag pinned A on top of B in the same pane, which changes tab order to B, A - pane_a.update_in(cx, |pane, window, cx| { - let dragged_tab = DraggedTab { - pane: pane_a.clone(), - item: item_a.boxed_clone(), - ix: 0, - detail: 0, - is_active: true, - }; - pane.handle_tab_drop(&dragged_tab, 1, window, cx); - }); - - // Neither are pinned - assert_item_labels(&pane_a, ["B", "A*"], cx); - } - #[gpui::test] async fn test_drag_pinned_tab_beyond_unpinned_tab_in_same_pane_becomes_unpinned( cx: &mut TestAppContext, diff --git a/crates/workspace/src/persistence.rs b/crates/workspace/src/persistence.rs index 6fa5c969e7..3f8b098203 100644 --- a/crates/workspace/src/persistence.rs +++ b/crates/workspace/src/persistence.rs @@ -939,26 +939,6 @@ impl WorkspaceDb { } } - query! { - pub async fn update_ssh_project_paths_query(ssh_project_id: u64, paths: String) -> Result<Option<SerializedSshProject>> { - UPDATE ssh_projects - SET paths = ?2 - WHERE id = ?1 - RETURNING id, host, port, paths, user - } - } - - pub(crate) async fn update_ssh_project_paths( - &self, - ssh_project_id: SshProjectId, - new_paths: Vec<String>, - ) -> Result<SerializedSshProject> { - let paths = serde_json::to_string(&new_paths)?; - self.update_ssh_project_paths_query(ssh_project_id.0, paths) - .await? - .context("failed to update ssh project paths") - } - query! { pub async fn next_id() -> Result<WorkspaceId> { INSERT INTO workspaces DEFAULT VALUES RETURNING workspace_id @@ -2644,56 +2624,4 @@ mod tests { assert_eq!(workspace.center_group, new_workspace.center_group); } - - #[gpui::test] - async fn test_update_ssh_project_paths() { - zlog::init_test(); - - let db = WorkspaceDb::open_test_db("test_update_ssh_project_paths").await; - - let (host, port, initial_paths, user) = ( - "example.com".to_string(), - Some(22_u16), - vec!["/home/user".to_string(), "/etc/nginx".to_string()], - Some("user".to_string()), - ); - - let project = db - .get_or_create_ssh_project(host.clone(), port, initial_paths.clone(), user.clone()) - .await - .unwrap(); - - assert_eq!(project.host, host); - assert_eq!(project.paths, initial_paths); - assert_eq!(project.user, user); - - let new_paths = vec![ - "/home/user".to_string(), - "/etc/nginx".to_string(), - "/var/log".to_string(), - "/opt/app".to_string(), - ]; - - let updated_project = db - .update_ssh_project_paths(project.id, new_paths.clone()) - .await - .unwrap(); - - assert_eq!(updated_project.id, project.id); - assert_eq!(updated_project.paths, new_paths); - - let retrieved_project = db - .get_ssh_project( - host.clone(), - port, - serde_json::to_string(&new_paths).unwrap(), - user.clone(), - ) - .await - .unwrap() - .unwrap(); - - assert_eq!(retrieved_project.id, project.id); - assert_eq!(retrieved_project.paths, new_paths); - } } diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs index 6f7db668dd..52502c1aa8 100644 --- a/crates/workspace/src/workspace.rs +++ b/crates/workspace/src/workspace.rs @@ -32,7 +32,7 @@ use futures::{ mpsc::{self, UnboundedReceiver, UnboundedSender}, oneshot, }, - future::{Shared, try_join_all}, + future::try_join_all, }; use gpui::{ Action, AnyEntity, AnyView, AnyWeakView, App, AsyncApp, AsyncWindowContext, Bounds, Context, @@ -87,7 +87,7 @@ use std::{ borrow::Cow, cell::RefCell, cmp, - collections::{VecDeque, hash_map::DefaultHasher}, + collections::hash_map::DefaultHasher, env, hash::{Hash, Hasher}, path::{Path, PathBuf}, @@ -1043,13 +1043,6 @@ type PromptForOpenPath = Box< ) -> oneshot::Receiver<Option<Vec<PathBuf>>>, >; -#[derive(Default)] -struct DispatchingKeystrokes { - dispatched: HashSet<Vec<Keystroke>>, - queue: VecDeque<Keystroke>, - task: Option<Shared<Task<()>>>, -} - /// Collects everything project-related for a certain window opened. /// In some way, is a counterpart of a window, as the [`WindowHandle`] could be downcast into `Workspace`. /// @@ -1065,6 +1058,7 @@ pub struct Workspace { center: PaneGroup, left_dock: Entity<Dock>, bottom_dock: Entity<Dock>, + bottom_dock_layout: BottomDockLayout, right_dock: Entity<Dock>, panes: Vec<Entity<Pane>>, panes_by_item: HashMap<EntityId, WeakEntity<Pane>>, @@ -1086,12 +1080,11 @@ pub struct Workspace { leader_updates_tx: mpsc::UnboundedSender<(PeerId, proto::UpdateFollowers)>, database_id: Option<WorkspaceId>, app_state: Arc<AppState>, - dispatching_keystrokes: Rc<RefCell<DispatchingKeystrokes>>, + dispatching_keystrokes: Rc<RefCell<(HashSet<String>, Vec<Keystroke>)>>, _subscriptions: Vec<Subscription>, _apply_leader_updates: Task<Result<()>>, _observe_current_user: Task<Result<()>>, - _schedule_serialize_workspace: Option<Task<()>>, - _schedule_serialize_ssh_paths: Option<Task<()>>, + _schedule_serialize: Option<Task<()>>, pane_history_timestamp: Arc<AtomicUsize>, bounds: Bounds<Pixels>, pub centered_layout: bool, @@ -1150,8 +1143,6 @@ impl Workspace { project::Event::WorktreeRemoved(_) | project::Event::WorktreeAdded(_) => { this.update_window_title(window, cx); - this.update_ssh_paths(cx); - this.serialize_ssh_paths(window, cx); this.serialize_workspace(window, cx); // This event could be triggered by `AddFolderToProject` or `RemoveFromProject`. this.update_history(cx); @@ -1309,6 +1300,7 @@ impl Workspace { ) .detach(); + let bottom_dock_layout = WorkspaceSettings::get_global(cx).bottom_dock_layout; let left_dock = Dock::new(DockPosition::Left, modal_layer.clone(), window, cx); let bottom_dock = Dock::new(DockPosition::Bottom, modal_layer.clone(), window, cx); let right_dock = Dock::new(DockPosition::Right, modal_layer.clone(), window, cx); @@ -1407,6 +1399,7 @@ impl Workspace { suppressed_notifications: HashSet::default(), left_dock, bottom_dock, + bottom_dock_layout, right_dock, project: project.clone(), follower_states: Default::default(), @@ -1419,8 +1412,7 @@ impl Workspace { app_state, _observe_current_user, _apply_leader_updates, - _schedule_serialize_workspace: None, - _schedule_serialize_ssh_paths: None, + _schedule_serialize: None, leader_updates_tx, _subscriptions: subscriptions, pane_history_timestamp, @@ -1634,6 +1626,10 @@ impl Workspace { &self.bottom_dock } + pub fn bottom_dock_layout(&self) -> BottomDockLayout { + self.bottom_dock_layout + } + pub fn set_bottom_dock_layout( &mut self, layout: BottomDockLayout, @@ -1645,6 +1641,7 @@ impl Workspace { content.bottom_dock_layout = Some(layout); }); + self.bottom_dock_layout = layout; cx.notify(); self.serialize_workspace(window, cx); } @@ -2316,65 +2313,49 @@ impl Workspace { window: &mut Window, cx: &mut Context<Self>, ) { - let keystrokes: Vec<Keystroke> = action + let mut state = self.dispatching_keystrokes.borrow_mut(); + if !state.0.insert(action.0.clone()) { + cx.propagate(); + return; + } + let mut keystrokes: Vec<Keystroke> = action .0 .split(' ') .flat_map(|k| Keystroke::parse(k).log_err()) .collect(); - let _ = self.send_keystrokes_impl(keystrokes, window, cx); - } + keystrokes.reverse(); - pub fn send_keystrokes_impl( - &mut self, - keystrokes: Vec<Keystroke>, - window: &mut Window, - cx: &mut Context<Self>, - ) -> Shared<Task<()>> { - let mut state = self.dispatching_keystrokes.borrow_mut(); - if !state.dispatched.insert(keystrokes.clone()) { - cx.propagate(); - return state.task.clone().unwrap(); - } - - state.queue.extend(keystrokes); + state.1.append(&mut keystrokes); + drop(state); let keystrokes = self.dispatching_keystrokes.clone(); - if state.task.is_none() { - state.task = Some( - window - .spawn(cx, async move |cx| { - // limit to 100 keystrokes to avoid infinite recursion. - for _ in 0..100 { - let mut state = keystrokes.borrow_mut(); - let Some(keystroke) = state.queue.pop_front() else { - state.dispatched.clear(); - state.task.take(); - return; - }; - drop(state); - cx.update(|window, cx| { - let focused = window.focused(cx); - window.dispatch_keystroke(keystroke.clone(), cx); - if window.focused(cx) != focused { - // dispatch_keystroke may cause the focus to change. - // draw's side effect is to schedule the FocusChanged events in the current flush effect cycle - // And we need that to happen before the next keystroke to keep vim mode happy... - // (Note that the tests always do this implicitly, so you must manually test with something like: - // "bindings": { "g z": ["workspace::SendKeystrokes", ": j <enter> u"]} - // ) - window.draw(cx).clear(); - } - }) - .ok(); + window + .spawn(cx, async move |cx| { + // limit to 100 keystrokes to avoid infinite recursion. + for _ in 0..100 { + let Some(keystroke) = keystrokes.borrow_mut().1.pop() else { + keystrokes.borrow_mut().0.clear(); + return Ok(()); + }; + cx.update(|window, cx| { + let focused = window.focused(cx); + window.dispatch_keystroke(keystroke.clone(), cx); + if window.focused(cx) != focused { + // dispatch_keystroke may cause the focus to change. + // draw's side effect is to schedule the FocusChanged events in the current flush effect cycle + // And we need that to happen before the next keystroke to keep vim mode happy... + // (Note that the tests always do this implicitly, so you must manually test with something like: + // "bindings": { "g z": ["workspace::SendKeystrokes", ": j <enter> u"]} + // ) + window.draw(cx).clear(); } + })?; + } - *keystrokes.borrow_mut() = Default::default(); - log::error!("over 100 keystrokes passed to send_keystrokes"); - }) - .shared(), - ); - } - state.task.clone().unwrap() + *keystrokes.borrow_mut() = Default::default(); + anyhow::bail!("over 100 keystrokes passed to send_keystrokes"); + }) + .detach_and_log_err(cx); } fn save_all_internal( @@ -5077,46 +5058,6 @@ impl Workspace { } } - fn update_ssh_paths(&mut self, cx: &App) { - let project = self.project().read(cx); - if !project.is_local() { - let paths: Vec<String> = project - .visible_worktrees(cx) - .map(|worktree| worktree.read(cx).abs_path().to_string_lossy().to_string()) - .collect(); - if let Some(ssh_project) = &mut self.serialized_ssh_project { - ssh_project.paths = paths; - } - } - } - - fn serialize_ssh_paths(&mut self, window: &mut Window, cx: &mut Context<Workspace>) { - if self._schedule_serialize_ssh_paths.is_none() { - self._schedule_serialize_ssh_paths = - Some(cx.spawn_in(window, async move |this, cx| { - cx.background_executor() - .timer(SERIALIZATION_THROTTLE_TIME) - .await; - this.update_in(cx, |this, window, cx| { - let task = if let Some(ssh_project) = &this.serialized_ssh_project { - let ssh_project_id = ssh_project.id; - let ssh_project_paths = ssh_project.paths.clone(); - window.spawn(cx, async move |_| { - persistence::DB - .update_ssh_project_paths(ssh_project_id, ssh_project_paths) - .await - }) - } else { - Task::ready(Err(anyhow::anyhow!("No SSH project to serialize"))) - }; - task.detach(); - this._schedule_serialize_ssh_paths.take(); - }) - .log_err(); - })); - } - } - fn remove_panes(&mut self, member: Member, window: &mut Window, cx: &mut Context<Workspace>) { match member { Member::Axis(PaneAxis { members, .. }) => { @@ -5160,18 +5101,17 @@ impl Workspace { } fn serialize_workspace(&mut self, window: &mut Window, cx: &mut Context<Self>) { - if self._schedule_serialize_workspace.is_none() { - self._schedule_serialize_workspace = - Some(cx.spawn_in(window, async move |this, cx| { - cx.background_executor() - .timer(SERIALIZATION_THROTTLE_TIME) - .await; - this.update_in(cx, |this, window, cx| { - this.serialize_workspace_internal(window, cx).detach(); - this._schedule_serialize_workspace.take(); - }) - .log_err(); - })); + if self._schedule_serialize.is_none() { + self._schedule_serialize = Some(cx.spawn_in(window, async move |this, cx| { + cx.background_executor() + .timer(Duration::from_millis(100)) + .await; + this.update_in(cx, |this, window, cx| { + this.serialize_workspace_internal(window, cx).detach(); + this._schedule_serialize.take(); + }) + .log_err(); + })); } } @@ -5734,6 +5674,7 @@ impl Workspace { let client = project.read(cx).client(); let user_store = project.read(cx).user_store(); + let workspace_store = cx.new(|cx| WorkspaceStore::new(client.clone(), cx)); let session = cx.new(|cx| AppSession::new(Session::test(), cx)); window.activate_window(); @@ -6282,7 +6223,6 @@ impl Render for Workspace { .iter() .map(|(_, notification)| notification.entity_id()) .collect::<Vec<_>>(); - let bottom_dock_layout = WorkspaceSettings::get_global(cx).bottom_dock_layout; client_side_decorations( self.actions(div(), window, cx) @@ -6406,7 +6346,7 @@ impl Render for Workspace { )) }) .child({ - match bottom_dock_layout { + match self.bottom_dock_layout { BottomDockLayout::Full => div() .flex() .flex_col() @@ -6938,13 +6878,10 @@ async fn join_channel_internal( match status { Status::Connecting | Status::Authenticating - | Status::Authenticated | Status::Reconnecting | Status::Reauthenticating => continue, Status::Connected { .. } => break 'outer, - Status::SignedOut | Status::AuthenticationError => { - return Err(ErrorCode::SignedOut.into()); - } + Status::SignedOut => return Err(ErrorCode::SignedOut.into()), Status::UpgradeRequired => return Err(ErrorCode::UpgradeRequired.into()), Status::ConnectionError | Status::ConnectionLost | Status::ReconnectionError { .. } => { return Err(ErrorCode::Disconnected.into()); diff --git a/crates/worktree/src/worktree.rs b/crates/worktree/src/worktree.rs index e6949f62df..4fc6b91abb 100644 --- a/crates/worktree/src/worktree.rs +++ b/crates/worktree/src/worktree.rs @@ -62,7 +62,7 @@ use std::{ }, time::{Duration, Instant}, }; -use sum_tree::{Bias, Edit, KeyedItem, SeekTarget, SumTree, Summary, TreeMap, TreeSet}; +use sum_tree::{Bias, Edit, KeyedItem, SeekTarget, SumTree, Summary, TreeMap, TreeSet, Unit}; use text::{LineEnding, Rope}; use util::{ ResultExt, @@ -407,12 +407,12 @@ struct LocalRepositoryEntry { } impl sum_tree::Item for LocalRepositoryEntry { - type Summary = PathSummary<&'static ()>; + type Summary = PathSummary<Unit>; fn summary(&self, _: &<Self::Summary as Summary>::Context) -> Self::Summary { PathSummary { max_path: self.work_directory.path_key().0, - item_summary: &(), + item_summary: Unit, } } } @@ -425,6 +425,12 @@ impl KeyedItem for LocalRepositoryEntry { } } +//impl LocalRepositoryEntry { +// pub fn repo(&self) -> &Arc<dyn GitRepository> { +// &self.repo_ptr +// } +//} + impl Deref for LocalRepositoryEntry { type Target = WorkDirectory; @@ -5411,7 +5417,7 @@ impl<'a> SeekTarget<'a, EntrySummary, TraversalProgress<'a>> for TraversalTarget } } -impl<'a> SeekTarget<'a, PathSummary<&'static ()>, TraversalProgress<'a>> for TraversalTarget<'_> { +impl<'a> SeekTarget<'a, PathSummary<Unit>, TraversalProgress<'a>> for TraversalTarget<'_> { fn cmp(&self, cursor_location: &TraversalProgress<'a>, _: &()) -> Ordering { self.cmp_progress(cursor_location) } diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index 536af7b7b9..3e8c169a83 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -2,7 +2,7 @@ description = "The fast, collaborative code editor." edition.workspace = true name = "zed" -version = "0.199.0" +version = "0.197.5" publish.workspace = true license = "GPL-3.0-or-later" authors = ["Zed Team <hi@zed.dev>"] @@ -56,7 +56,6 @@ env_logger.workspace = true extension.workspace = true extension_host.workspace = true extensions_ui.workspace = true -feature_flags.workspace = true feedback.workspace = true file_finder.workspace = true fs.workspace = true @@ -106,7 +105,6 @@ outline_panel.workspace = true parking_lot.workspace = true paths.workspace = true picker.workspace = true -settings_profile_selector.workspace = true profiling.workspace = true project.workspace = true project_panel.workspace = true diff --git a/crates/zed/RELEASE_CHANNEL b/crates/zed/RELEASE_CHANNEL index 38f8e886e1..870bbe4e50 100644 --- a/crates/zed/RELEASE_CHANNEL +++ b/crates/zed/RELEASE_CHANNEL @@ -1 +1 @@ -dev +stable \ No newline at end of file diff --git a/crates/zed/resources/app-icon-nightly.png b/crates/zed/resources/app-icon-nightly.png index 776cd06b1bca36c74257dafbc4bffebbbc8f55ad..5f1304a6af8d57bbf7414d175611829989d122da 100644 GIT binary patch literal 239870 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4mJh`hA$OYelajGFct^7J29*~C-ahlfnix{ zglC$sFM}2X0|N&G8>0{dGe`*oBLf4Y6ay=m&A<@GC=F-FF={~7FflMN8iFklWnf@P zYtLk0fvT@zfB+9DA4~^iR;1?SCYIzEDFhVdD;VpU>X|YyFfcD*gqp|5z_5S`W(E_( z0%imoWSp?ZwPg$p44efXk;M!Q+`=Ht$S`Y;1Oo$eUS>!{NrbPDRdRl=USdjqQmS4> zZUIOagH451MQ%ZEYDuC(MQ%=Bu~mhw5?F;*Ua=KOSYJs2tfVB{Rw=?aK*2e`C{@8s z&p^*W$&O1wLBXadCCw_x#SN;xC?(BSDWjyMz)D}gyu4hm+*mKaC|%#s($Z4jz)0W7 zNVg~@O}Dr*uOzWTH?LS3VhGF}m(=3qqRfJl%=|nBkhzIT`K2YcN=hJ$6kq`2&eV!b zgiU$HP;VvY=jwxG^bPe4^s#BH$Sr`o4@Fl+VgXJ~C7EeB>;lO^w1EQy;zS#e3#`Bq z8tIamo0?agnV)B8YG`Bwb{mEa!gokIBXH_Ol0nj0ky~KpT$Bn*Kq2}0Id)*{(bAKR zKDsJ21AJ3U5>paO5?vBYQtgZkj7)S540VkRLJZBVjLfV|jI<35tqcqx#-ON0G6xhS zRuMs|#rZj<pop|HH!?6VFwi#ykv94m(&$<dIz#g^OYDrGTF`{ibwwiNu~~>Ljjq+d zC^I#$BoXXZL#S=YVo>!q`k)kvltRHV4iOD<akJyH(FbP~P^Pit6057&z`)?Z;OXKR zQo;CUZ}ghA*Gunj*ZUn)QBiSOP;=(4NkXD(o0Mjja0QxQ@VRlQBSFN2SEW(W`9yP% zgXe+;{*^`-zHQ715YhdVa7Fi1z!lwqC0lj6H?Db=v@&z?A>N$8DY{<MbfTy9`E*V{ zT>LFA`|JPT{f5uXuiwi4JRwBnc>4LB-=psD>A5Xae8y1!{-1rOvwICpM&W1(jD`Su z2yBRF{`~i*a(PC=em1k&Hy`!eecyL`UG6jX_V(4>r;k2UQxJcBw)JYwvmZrv*2eMr z`B9qncJ{jr;wSG9nPXElb$?`RLCVe<XRl{JKAV<4XKUciq>TYJhSBHyzSJ&war0)* z-$OZj<G3w<Nc^yhpMCaN&AW=jciaAK&aeCJYRGr)j#gav&5Ku;3+EX|%XI8--gUZ4 z)W~DgguqB4&-=eP#5R6sNzhpRT5iI$tr2lE&hno-7uIgC^JwjxUxJ2)ix+d2DE@pt zskZdRp6maf{M{^H^VvT=d|qYP7uNKJ-XHk#7j2N8ec5l(&YeoTo~NB|=H7gDVn%M$ zKeG=>+iaY7-l{D&?RE-Zy7}d<UdfeBcf-G3`YiT&Y2)?T8|;O=Usf(ItG*mx{rt^I z{eSVjH)`za_o<3R>ZA%cMXwJzUYlq<SxKv9@0z98f2Jv0y_jmX<-);9>c8jf&x=2= zb~iUo*fvqRZgX73va>~XuC>nvW;9>@^mFm%Zs)6SGPYXP{JWJ^`Sh**=a<4QIe*+! zG8SYmu!%k`F;P02dH?s@{PA<vuaC7dj*g!czbo|dPt{&t^W3!6-k*EdeLmWH^V1#Q z&p)3XN-Le(_*3m*?1cHB6#gFBKPUFWg1X6U54pV$Ru@b+zx2PA_2p4Z)oWT&+%A3j zn=jZi{IcNxt97p7NV;*jS2$~u%X6t1ll=vJ%vao+&YJP~1fDypQ5xzrnLCx)+_J*) zVa(1mI@3=*y))PDpXkroXSd$0IhwNc!Gu1>5Q*7aQyRs4LiMk5S~xs(7S+z5Ugyj6 zYFG5V<>s@#RLo16`&Csk-5@z2{ll_-N6ywPtqO`inbas8SF~E;!G(!VFT4a>%EjVq zR^98GC&6N#?ht-A^YPXaHrJ(`PtFw`P~97uX%N!7X11%}Ckchd;s>`ruFIM3`kVDm z>Auk8JJn{*-ZWLW;6+ZRYr(4KTS6Pvr*%cXf3n0Uc;Tl*W<B1P3N37Xa!Cia_enc2 zvi<nN+uN{yPm=k1JB3G|T@7YjeipQ^Xx)nGw)-PI*U#e7dBz@oZhoxY|MvN{KQ?`- zaXtHM57#=5(2vchXSb@Eu2%MyOPfB^CF4+C<<^<<di-Wh@i9A#a%(Gn<W{lzofp-& zKE%7M@wolZd%N@Zz3#gnU;U0fKf<>B?N=#&y|w0>ub;M!yCoC5bIQx`lRx95^v+jr zxVI+G!+poaQ!n<+nRM+{)W(O~B$Q9}TlVb>NpNR%5EqMjn;UlB#LRYijAg9AmMk{M z$vqz18+nhn9bOjEy!zDE$^}>7TRt@o$hfgX%l?_8Y)q;p$HMQoPR-Zf>a4J%SLRXJ z0-xrKSJNez#OX)`EQ%ApP`31$_sPXoYx>u9u@(6>I`SUe5fHjgl>L-2vy!#nyfu@V ze%(GZ;c<(C+nQb1+ZWDmee(GnOKEuQ^H~Bp*VbqR2kB`Q-}Z1nZ&w;=Eu%kSCQndC zkp8+Q4a;rss9pK$@tCVQNPGh0OpzH9Yx<V4es!|8EWUX(>#vW(jCid+i%rv*I>YBZ zWO}+JpY6=f7q{6KTx`v3vN*Xb@_65o%lH3;u}5A!bp7fUi6yD)y>F`jvOThIuIP2K z>2s?mtb6nJ;NGI;ueaIy{(RJS_v3TV9E}6Joz6I=ZSHQ`(V=&Dy@_XR*1LW8HV98H z^_g4gv_zBnYXZ}0vnflWG^<==KW{QxH^)9AzU~vZ{r5d@{(Q<Qe0$1w`<<enH&5T+ zZ8LxV&OJAB_NhMpf9~O%53|45KG=N!ZK}-2{WqjMgnxF&c3#%{8*cyapY`?UeeZ6r zxt1TCUbpwl2R73eudnWmpZ{|An}FS6#}-yxD3Uv;`n=(#iNrGTV%}w1{f;VIqP1fz zyO+JI{a0D}t?Z#8qsDUn#YM|_O_j9{D=yu9Y-iXVCWX~=O!%fV*6p2iIF0|ViuJoS zf4(@D`I{}c$z=0m`uQuRw=K;V^fZW<*fw~oA242FVc_}EK~G}+i7DMSk~35SrY8B< zR2EDwyf!N#aG&%7-@jQ7b5EIGU9iu${EFZ&o?BVwY*yRuOkAGtynfG0jmeBFQs++a zX6||#{(H-xNhfm^A|5wvm$i9u@buUBr-hc^x=`9#wDHUdlNVJJ#LjP3)3}ku?IO*z zQ)QCbNjr}FWvh2(P4`mmd?CwFmUQ8w*v5wNxG7(cXvr~EY)C!ey8P<DJD&nJ{$`#m zox>}am-8XmZ|Tg8Gp3Dh>uz)|2zh$**jDR+n5z>U^Rq7rEWKzxv75i~+wy%Azilts z7}3@nnEqbQ@L}HDs0XghR-!GdJ5|i&{_3dRofRq8u<p&A4R<&1)9J1APT8+|>;9#4 z_k~{{jr#ahczcX()u(lZuNPjv89(QR-Rd9R%6~N{O*vRsTJU4r)1<=wYcKLID^$-H zJD4BLZ1my&*GVCc+4(<RQ#Z`@ohR#d#P)*9K_dYf>BQ@eQl^PJb<W>adw!fH;dxj( zdvTD7OeD`PM&{DaWsTVj8%t_`yfOU8xIEuF*>ksc0CR<<;N9bA=kll-S3AFbx}DQO zbGwOH#A)NG6`7Yzd^^+v8xJs68@vyHQ})4!!K5>bS+7}+nP0f?0{0JnITi2ha9%$j z2A%b6DU&@?zbc8pwDb3w(Qx!hqSTpYa~qM*EDlCl3qG@K4qK?X!13D=;Yd|EHPvh1 z%=QLm88~M=nf&hgtR<Vgw>*2pxRCeQk*}GbwsQnX{_^@(xbW$N^SX<B&&@favLizz z=i<e!DUW9fHyk~<Hf#6u7U|udK6Y#E*>1`1U2(wX_sKH%zbzRjg|EiUySOBJ`??(c z;|6LsGL|z1?E8`tbM9KkA-M^%HI3U=pXw8@cRuRB;?@12)qmFI_1kWoH~;_N>ifS7 zKe_+-9>aWm_UHS>jsD#g@juVDzng!*<n!(6tH0K^yPr3_u-~_IzyJK*1yZMtcd4$A zJAVI{$L*cD3tpJ0q;ES=m|bu)BlJK*b9svCsj2^;iDWIvc#$ZTs=#`yD_-SM=)7$o z&E0RETGyNy_tL<^;D^uZXOmAJsJ#AgQut5JiIZz>92M?xo_+8<H^DkFEdRyhH0$^; z4-cNzb{B|`j3{{R;<K|i;4#ybS7wYKWz=l~s-)wERoAzzbQiaoS6XQpc%h+v&6*Eo z?2~lQ$5d&@I_~J79C9mx)!H!LAhWPq*Y?0KxqW5nef)2Bn@9$fB=}Vwc~%l1rL%)| z!tJNR+#AzddGoJ6jZl!k)uI;{X?>IJ_s06KXH3gh&CA)}UNb51=xXP@Y=!lcqNWz_ zR^IkzGvDsstP?-FPU=@#Cmy<a&~1yF&%%`tR#kjUF4jrT-X)UuH1zjoh5}3B_3QfP z&B$m!YAxJb)gU*ywWn?MV%E*~ukP)*Kb6;Zp><8Xjn$sV-{1W{u)a5%z5467=d*7{ zy*(e^bMWu#{a@#8&v|yb{A^#}J<a8n^YdQp%{H_@+_1lgarbpW_1>G)!j4Y~j{IFx zzGmN>nrww&^|XMb>i)hr)khCS-ah$Y&lkpPehXeC3kA1tpS*eVfxzHp{pGw|%RcPV zKG&>!UMfdZh&TVR`V4g@9-}DPqpM!HzA(L%y6%8dyI!kW)Wj7%ZBII$PK?=CyULT3 zdCK<tt?d6JB<GtLzWkYYSyj|3DE5Zvg(q#o4+KNfOP&kt;(Pfd=c%Ol8l#D=W*-t} zEU4Cd)1aWAuAQWC&%EFp*G=b?_-Un!m~Jy}_ng2TD|De(t?-Kb>fE_m*KJd#R&G~P zDBC~tiouJ|`vv%fS6>ah_x^pu<AkLOmZu+XmOnO0ul!ZQZRhM;|Gt$AD!K~TX#D!5 zC;B$?=b}4i$1Nx8@xKTcd%$YEb%)xNgAp}nwA8PqKEJoLLI3TNX!lg%RDSEpjJK}k zE-0Ikb&Q2;_MQCchKzxQNe$^%A2M=7t~8uZsMTD@ysIr;=$hJ;P>tHC{KRyh8%f_i zH|<!zF#l`eL%09Bdy;~#|J-~_>`Kdn59O@CS+`#NUwppW?q|i+zSr~Dv-xFhwU1xv z$N62~{@VrXC+qI%UjKd}X=Baus%zFy4W{vg)!2N9PfySYWjwDn@%OR9_$hU(njO>g z!tN(eovF<o6=T=f=g;2%`^?LPH;#*J{;aaHY@b)cKP6P=_TmROXYN}PTC-!>y%R~Q z>vqkYm$6xQ?=B_vP5BP1Z+*SK#$kTz=ltj^clP`A9o<p0V7tvu*M++NA8Sr7lvnw# z5IOzQ<os%ry)ARPRVVYk<Yj-wDR}#Us=(U=Vg|SWS}{a^;$oJ#-*r-3*mB#R$A!B& z>-#OLH?2wxP1(p5?|h<Bt%Jwv*47Vt%(-VDxAWbu$m#aqo|H9d@`Agp)rHp2mppv2 zL2l)n1`${FME^Vb=NsLAs>V95E;YV&(%EmtjnsF>Z$6!{3vai-z;ME0Y5hyyyF2~X z=1#h!y)!`lW;4G)+1rRE8ng8;WctjhQFCivogca*DYAXvM()bzReNI_B^oTn4+x72 z?)clFmvl)r&T<2LxX7f2a~GJmvG1x~z`VS$TPt;OT=b`n4|d!v?dvp7XFYNF{sv{& zc&$U8|Bsx0_VH}mPu824#KpP~*Z+OiUiaBsy{WHBem7fO*6P1ESS@vV_Wk-ee^+tw zvp4J|Qr`tF_m-bdv=QJ_m3iPaclyk-HH)&I&6oYmqFTAkZ~oQ!;XG$AY943qNqcqS zYVE!mM<-7){@&mu*X(=t+0o7E#}};Mf8*XX1|Bh~6W7YDcCX$P%XoT^!VJZiHy?)2 z5j`iD9;Hz@RV1#IbIRr0PnW#Xl9Y`pKkB(im@VIz?@y0al85}KGN<~FobGq>*&EN# ztJ2ucYUv%8d?DpR-|x#0Uf8m!u5OI{cxl;zfYv2<Q+oH@GL3jt!g}a$3L7(j-kN3I zY|RsIna(K}@?2PO<G@iD_tdnAZ&Ms%uCOtEvH$pBZ?b!bXTi>d3(L#$uHE{ytv2&Q zZ`G@d{%r2dhbP7I^ZCtNl6~>gk~d54if@tn&E$Atlc(awNM7+*Q_sv1vj5m4n)z_W z-lghlM~_{9qVmc++MrW2llkAT`yUwI?$G=Dr0d7#uky@`+0tHiRYkCsJ=zj&etk)I z+g91_TrTooS|TQw{+huadon_}DrNTTyQ~-4UmGlF%}ly1cVlkz+iuy`70D}Bz2Cg) z))(^&Q<^6E#d<b%$1Vte^o!wnRgqtl?3&C=Z#&ohE`HhW`Am0R_7(A2jq6`O*81C| zQRn#YLwA1V`Q!h2mn#3+eVHMyzNMaB>VxgypTF!cG5qb=^-KAd_g;(d-_++e^0_|` z+OYUq>FI+3b#oOaY&(0yq0p$vX;-X+`~9-R7g#tGV!QJnF0+uTV>#5&y0XPszg=j- zk~fdIKHm@xDkx5HxFNoNkMR0KlP-T;kl?Oz;BNL}oe1OJs>*;(&69&KnQja9Pnp8% z5i{xA^;MovTV)mse~Msy)R0_o`E%an$6Lgh?B`^zh&|97oOvqr@d9b~4R;HUhHpqZ zyqjaibae}X7a9||-1ppl^hBOJx=bx{sS<z64YjL=(Z(T7yFS#hmno<4>s=O~yvF0m zRg=cOa`l;KHyBvSojP}h?H3dG#7DbRSLh^U#<R^^qCWfEld#$aOp_Zfyk!YX)ql&? zKUrbolx@#Xxi|QjT`hlP<MQTE<)#(MUmV>HzSy#}MfqO2?cJzl-(A|tDOReY;Gy61 z>X|yjjE<~Ji-Sy@E&Mp6E=BDQRag+zlmD@iMNIxy=eC|5N~eN$UEgXP%GdXImhqf> z>w=#(TgTti|MA=P_2HxsOV`)_%dZKX8E<jpjNR8`-)+CWZIPKSznCrKqF`N*R7dW= z#rs$O&Xo^2Uy+}@^k7cqH0I!ooqM;gZvT4wZ^id}8FKlPcO8yBzp$%{k8At>hgUbJ z@B6&>=0)z`{Gvz2bXU9Y)n<t-`Oy9R)b(4tN;vjkJYs9HI&x3Sh21Vj=b5zR8suhZ z2G+hw5njc!W<lkiQ&0Ck_PjA!?~47lc{~4~{hMJK`6cb{+=f(lm&k&B1ux5(?dpG? zU!t_FD^m2@TJ|M5LQ;B{B<~hGsvUZ_P?yb3?r(G<!=$VK?+N@#GH6;qi?{M>*%s#2 zF6RV~l&!wywz@Lx#u7{OhMeQ)T4%i1%{p&YdoTN*&aLZjtF#|&_CIO1Zc`EWzqKD+ zl}}hO7Rb+Gl&M^<P$g%Pq4v__!^gZ<&PP*^biKXe_2kF~`OD{Z0?pKKbFR+zmp-&> zu0ZUy`q--1wwq7af8h1MBjF&KvUjg;bbfn8b<5lzF>g0t*!KTbz_z8F4BF+tM7J}# zm@Kf3DC>y+raANcUazV>S~j*nAD#;96>h(+wWxHHFXQ!xB^Ud$opLhQEG&H8B)e(z z^YiD=#qCM`c4mG}a<o{9#|ig@$4{etqIRe{)n+G6N?_kU^ZqN3?I}hJ)ZZNbHhW)J zr)t^^YxAl#$?IYp&n|z~{dM`f+Vji*g+A<iy}y>XN4BB<x0R_Y-`ADP|Ll?Z$!@BA z?LhqA_IaLjZf=)x;Y&Jmqx8;szk7T8B6mETarm+$*Zn8u`&@+G7xP~@aKGgC(VJ73 z&+p`Hu$pz+wv)q(=b4UE#Ku{|>Fk@7-wABDxc7?N<0RAmBBh;KA9Wc6y`H~+8~@;J zpDoj(n3dd{Hf1fj<0O;3bLv5b#|N(*X<?2#Cav)D(%MCO^AgV8(>cEQ!=LY(kImZF zSt$JVjXvfRx5(Q??n}Xg3oH8#yuKwY+NAg5Uh$e$Nt?u0XI{N?`z)(?QDv!C?bcNq zhxS%H*&N(rS7{pg>D$&9ix1yT*f*;{L3(nF)#r<ccjnE$`7>JoT-=X^InA60JefoK zuYc*fbE)&FyV)0wNUyj1J}phSn3}BDvqt>Cn2Io)n%&*FP#Kw}`wWim+gR`=Suv_Q zGF_AX@2Q{{t3Ud0bYjbyR(6!{tJ_@b`xd|d$=3y|xNd%sp?{q9^34@*op)SRQ*=IY zX0mDH8zbIHpG{Z)%+dbUdN4J4-jS8EXO#<I)F0h^(sAaCh_DICsr|WMtkn}Y-;j9v z=FAr}-7RwkWOn<UX63VU<UCpT@SAlKlf%q%mX@up9#PxcYOm=sTo2@!bp7oy#_N5( zi{Dv4P&0hJt$CJy#m<Y1v(CGJZ9Al2`?k3Laq#P}f9k7Wv&;SdqqlP6zl){@Y7F+f z__k|&SarAg>#O$}svjL?*Zti2*fxPF{b+3CU4~sp1XpYF{|jAoE|A&bb>r2<0|ypv z5M49XlzrD1j|U~^4IVu64!c|AX8CZ#=L=rP-`_m%&b)kT?Z>z4lr}#KJp5`)BunWW z;eM4(j~*79oo;3ha5tB~dNiEzxR(yw2CD~Ku66s)n*1)pFYtq@hK%Fxa;d=Y)65l9 zbYAV7yVk~9XHNB<<ks(A@5KummOOErFMTi1-S)<-v<Z{vO>8zP?GDYg`hMV>Ip6(V zr)=hnO`mN2ZQCB5<JW~BO>=m&p+$bF!W^UTA1#{?D$gzC_+Syw#v0bY#_r<VSGPXi zWw#f4b&^#^@=uZi&%NInOyP>9{+Cvzi>k}sJTUd)9<6R|X0NOMmilrbnd|3R&bi5# z(WUXreC{P%Pc<<?n;A*TYvu$`FH~EUE?(PGq{d&GcQAMLo}X{bULO)>=MTto<vlT_ zMb_D(b2aac){l;d*T_r`wllmL?ET^|@4eKdb{A`--o9HM7v8=7Z02&=Vfti!20JF< zpqq<t&9jqz&UB+QIDSJ7qbPgARk0VY*3mZ%`t#ngEwhRB-Ib&k>J<E+m-B0qVw}70 ziZa$i!u3xTH>+{JV7y&&cVh6jCw7ar3kB7mTespu$}RCauUy;vE%gW7ekIsX+g)7s z>IvgiTZ8yKxu3V5%l$3g8}#S;y-)M%Ezfa&;rcE3IGO2#vepLo|DTfI*HsjjJbixE z&~Aydy?Ers55FRMYEEhvzB?b<zCd{Exz@`Q9xu*$^;`JmsbKXd59U=(u;Y1Qb8gwe zizZhSqhnSS+dh6bwJmPm;?SkmTV7tCsD9~o{%qy>PBQY*GcDxi3W&u%N!pO2ea~jH zIA7_~>x&+(NO~>puG5}l_2JRHje5V7`YjIn8J{+C7k9Selz(-?(bz!w%G8jfuWvnP zozD8+D`8P`I;YIfUq?8y=N9uFX0}_$zjNl13Rh-s->?<dRi_`Ae1Cd5H0+;exV_|r zO^cKbjeTEFXJlHwx_=&%;O|MgVLLR{k~rN~N1YbiG~xO6SHE61zqG907WRBqK2MB? zspXBe>UJ^rXY`ncZu4sS7xMAU%GHxjy!f+6NoAqKt<Y^=(q8u$GP^7LTRX_f99X@8 zYwg!Bj?sqc`{Y%xteW!c);p6M(^=R)a(-d?*5X#BQ=RJGc#?VBt!>|u8NR-i-zz6x zXukP<XPsZ%-Sim@Pj(wUXq#JfyVE?SYnpofjh0vI<OGep9o9bx7P%eByQt~ItEf)~ z4#ECAwskGxI$0DK?)bjU;KVZCJd?l<PU!=JHkK=j1Rvy^m#Bn>^eAon%e#y%v+lnW z<KEe~%oxSj^k?WZ{*brk-e>3-c&oYk$xMka6^=sJ-{e0rPAui~7pW*(TwXFk{lL~+ z<@+MDl{Qo+7}|e-mtXU+dB2(Utv~wtRsYxjm)xQJCqqg?xIx~x{@AyZ|C%?~hco|a z|1xJwPpDgd`jI)&f!3a3(K&Z_o^}aesBUpWaO2n6vKgy4xG`R4k#Jw4ch13SPF&Kg zQ=5e~7H!lHc$#~lsPOviyPn+azgU(&Jl&9*IEAex*Z1konJX=1Cax>$D*l@!mwNW+ z1Iv~p@^=nwm+A;w(%9L3T1NRitIL_&%xO#Fo|&I15?6Xx><}=2Nk79iZRUh4D|vG+ zEqtoIu=r~}qtW_Te}h_Hg<BLXzuPqJhtUh;71}KxJRV#0Ckr0c&C6P`?G~?WeB8;b zNn1oEK1@lxTN-NCb9-02*pkXGl}Em(Y3*0f(35>6H)j+3V$qs4BI-vDO<wv$;o7MS zQ+t>FFj|r0EpFjxox>k-(4&&)oFQY-&bKqSt?S&J!MY-0%PswT+bY!}4KH@J1zsvU z^u%{^=C)U|E)0^Z@4GfjUK8$b`WR|dvD|OBJMVo~j@g2Gi(WpN@|?4`J4JZj9g~B- z*Kf}--nBmW#JUCDOvZ)I-7j<vR_mClHhOhUvMl4AqNfn7C|I}dpw{w3OLm`PjPIW1 zcmLkf%*vya)qT#{tm-`M{L8ev{oe!Q{(q--=muETJPnV^ZjpCnj{kYY|3CZY=FR(8 z%(wY_;nl5TtAnBE5|y&Tk8Bg;+adEM<c&mhngvt-Wp_V^H`$6ZZ8B2YHQQ!<&*h$f zU9#b->E8hE?Ndxo$P^0|weSdS)IIa<<Cd;Ff^V0qzFo1k%;K=JefzE66xOMF2bw=d zz7_azXG565?<Y4O9x~JX<a>U}dxkw{p4^-rnR+Je`n=12-A^YPmsk6&J8yNhOuJ@p z(BrbMxXHKv+$ycu<l7%TC+}bk`$Fw?$8`?hH2!fS>qlfl>`z14vhW*$v+kLR_g!R; zef3Yp@p6om`8kF);cHw<PrtmS9qBPOxGhC|dffCa_B^HsKTB)9y)iW}LBeFdOoC|l zf<*Se8>80C&d}QRE_BDu{in`7WH`;i^QUVoPgJMg5}&PKb=U9A|8}Q*zo7Q-<WEiN zFP1%C@Z-|{higw}tSd^~v-ht2lv}TBc20F{n1Az>*k0l3=`0%D4?lYy^INcvi|1+W zhbQW{+b&H$<g}gV{Qa`s=T67)X`B?woh8!i6(bzszd>*XKSRWccekd$KjuG8RiXUl z<lR5_SRMIaaK8H9ckRzV_1{Zf)@z<<=g55h@*mC&WocfUk2n1P>*n6BbNM~1|53vY zDIInf_B6FvZ4s;a)<@@YHtg>DAS*HDh0WFaIVZhh8m~PvYm(vWJKg76vrIQ{YW~BA zAzORz-LGosYtAT=*H6FYxcF2AqrjE*M~?rI(DmaH;<<UGx^wd-l@)t={VQ|kAKPmi z7N4^+yI_LPp2BnXzq4;~*s-!%vnAb^Iw*PSW`nrsoCk4nI;|nQAN*M^`uxc4?*XOv zXCCaxO^B0v!ocw&G%!7{zVY>3$*`8Fjn%))q@Ns_;(vzwuo35c#V$^{{;b4spDQ+s zk968jajZD{?@r;Z9{zm>x6igNVb&{K)Z+5Dh)F`fM{_U3%)-|(U$RQQ1Gx_fsO@!) z`t~HZ{*$WtTdsZV7vk)?Sc6k~bYgx9<i086>(c)@doz<v!s%!^xm8#Ef2~c+aNRAQ z{qjb0vCo|)8J$O2>|Uh`R!b`Ho}eh+xNpV&7r$AT{8C$&deCe`;+u2d)|oBSm*}{y zTGhO$BL6K*(5hJGTiwz8rin-S9_?lNa`MsiMFocU;|jbP3@<Xs&3<v(@fL63Idh3% zE~AaFMJ}&6#BJRz^5?={gUotm_SUex{muJI^BSYI9p3BBYkB0!mYcP+d-|uh{^I_b z*FVo+`}}mg<bGR&m(QLa`4v`aS+QJdT65j$!_WWC%lS5a35V_Jsu<agU1#39l{VQb zI4PO$3Y@a~@rvT33I`IFFYuG@4`w`=aGqg8|J%xjM^DTftP@{twPwBU@5avWe$<lT z((3HWfIR)GE6mTIJvg_jLQVW-MbcKQ#)68I&)I%thR&JaC8XN$>GovychiIKhZ|Wq z9AB&|xMPk0&*CD>yH6Qcr<5`5FkQSLr*5+Cp8)sf40V%TQ5jFqNw#MOZDlS=@;$3L z!*tQ^9ju#ckKU`XYd)M5<!D^VVSQ`fj)yt6H=gj{owMZphIrl+b{4m+%YPWnP!^YG z;##r8c-ML(CbczR*tae5Yw`_}{ifa7W+K&8bF8T`c>9Vk?AKSW)DjK9z31uU5Amnk z=cHc#&Ejd`|L4lP=yaW;rqrlK$&y>R52&<zn!dESzp1}qdU#p1*0rm-FU)IR)%2^e zMJxG<icIt{IH`DV`&M;9>q^<{ZPAs&)tNz)lQXK+4>KE1E`HN<P|i2IT(EYFdO4SL zRu^~q&MW+CA73nZleloZ;ITfzbY-WsFJfjh_NQ(#woEAJ*}uX)z_j_spMIx5`S<=@ z_-}VlOT%@~oPb+(mKMvUzJ2uH_dPFH<^QBNpOrUV-R&3FX2mqu(KvS3k*>8V$Di2k z^$KGDq(3uM*d$-c;^<qI&1Y=)JSaG}XvM+JVV8Z|o<*>7|FB~}=J0TB*u3E7m&NYJ z6mH`BteNwXasE|n_NPbmpFH|EZ_cXsy|X=&-*ar*r4@DcfyNf*#yLE0b#Z%c%rsuD zGDlduam9XiqlcA?f}8iI99tL>7bc>w-eG6*w@GAu%@LvHthVzmm)WW{{qsyJY1;GQ zQSx7AWm}H^yPduBKQGHUB-(W8(eYKjHWoLIf7|P5qEJ0adG2vN#){vsE(x=+?S1oX zqWr;E+g_>6F6Hz!y0CWL%IgBWvCiH74|<O84gIn@IwWuTj#gLM=|!9F#4XzUopn2> z%a)>VE6Xn~z3bC&cI4UG_=6GK=IKXn@%1xuno*k*75ApYVB!Pb?i=}j=U5oeKN2jH zU0wZ3KKPB>v5B6GyFT{wT}k_TD(8}6!lJ``+XYUp-cj;a!-By(exI$n?7A?YIhoQo z=e%6Awc@#%rys)<`;+VHHhlGCUGXk)otys8GuPYQ8y`=0`sp+`W%Ztj6MvVnh2Cl_ z=Km7-W|HjAOG~fax!1em@Mfi(tc7CSIo>muc^=_3QtGSuHTz3kDMR0cPq*1N+Lwte z(kaU+`j~8?rWb0i{G0plsTV2nC*Ib5v0rKQ|INI1yN@q9vyQA=&S-OpLqCu?{^wct z_w#et)%vvkGrak%o9Cavl%K1cZ<OWUN&PcLv+wz{$qRRRlxR7;Na1|k*LL{aT7x;W z=4?&8Yc5rGX-&zc^(ls*xz?#hsjvz7IB_WMkgc$A%6ORaG^ECNM_Bu#&@(}0pBEke zd@ztrrckCuUHGK7*MigPFEyW4l`(I9X|j(YMqk1Eq-unRa<~7M@*RsheXi_(c|9}X z0%srFlRNivm~~QJ<zsGjZtHJ6=(;7HRV_sHeD({q(pg3`(wn(=Dn;(`SQx(U$wP~a znwf8wwk!K*zPg}R;1#`Ym9T*%!`3>L%bdH+O6wbyrFi+OCawN*`xRe)!dF!RUU!ue zYo^&<JB<B)8P%2?S>B#LL1T&L{lDjLI_~v)6s4)iRr!nCs#nJI<JXi{=M6`<U*KK0 zt<Q0VSMO$5XH}V5+|};<zd|$)>`JTqGBd^H?&J6>Q9bSdVK1G08WwfmoBfV8I5XDw zYAw^wIb1rQFE-@FiZ6Vb<+p9&1p6;;f4$ifrWXC3(%$oH`!gxuUu?ULd^|F&Umo3d z`()xYS=ptF?|YZMN|ZgK%kpQkU48WC8TFsOp8xyiyi{q;UKQRqS$|X&=ejMp|NlsH z6;JB7?^inQl(MgSbcF7g`6{~R14mKcy+u<#KAtdlslFAfeo^P|q!Oc2rm!aqq)nBN z-u82-bgffT`7veVx+#A(9Q$tdKkqP?EidiW-96dqRLab&7q?11`p#bA&-lHK|J>b$ zb~R_UQ?6@2eV#N$CHkdK+4JXfIqztvme&5g5d3;!chOVPcDa3@xYC|SseFsw?!cO` zob~OwkL3p3drf;ceVrG7?zL3Bfw1v<nYn(y1uM@SQe#Xxwo|C=Y{Qqvx@*(sPS~+k zq~NdlTegL-Wph%@8E)DX-pX`*Z?W<8;m#{UTxxyUQ8Vq=R+og>OHC<tiDjK%%J6n6 z+u{vgSC+r!;*i|L!nU;TLD#`r_s#=><~i~C8$TDnziz!GW9M0?j4H;dY^&?GD|vmZ z{XX@I$!%*^s{^a=s+FyoFr(3)smMrR*&f$*>WP*{&KvH`>N?=p`>T)rrPCUvJpEVf zo3EJn@Ap^SxUpS!ix=DWA9-&C1Fd=Mq91jY%dg<K@W1_Im+q#hll>O?_4hSybw71A zS)gV7pm@X1-Fr<rzs&garT*))@3pVYx$<NDuQ3F_6kNBsaedvRyZkTi-F1J;^WW}p zSww!Bj&$4(zR3%nlkTW!tln{X%G2YmDOxFUufvvvz7u8cySyPwYg?vm_WKtP6g2gB z#bl?xG7|lMXu^wacS3flCx})19G*Mn?U6g328qJ_6*7~W(_Y?rU1IrZ!=cMpx672M zo;Yamxx8Sm)Rv7=b6EsTTl%)WjjVlbSH7o2;{tDVpyLrQ$FnTwd2)=8g(*v_7HhBd zn5Jkyd4t6j^MmSp+t!s`XLu<qsNwU*s!Fo-Cd&auO|{Ax*@Cod>_@sCV-K$W)7i%H zV*c7Jjg&j#mjq9-<cQ7C`{gY(<!AWoHvyqfzA?A$;JUc|mQ7iM((fnvR}Y`D`YE*` zXGd8<mu0G0S9d{-t(tVrrLq&w_Mx1U_)fey<Wp?esHeLtdZkCs(?sDd^3Ro)9B-Rw z#HLdsxgqI7r-kb7Kf<-!Pvo9DV0JQnp4^40wN3@~7mw(ug)kM}*M9k0>+X*EQ~ORV zm-{uvZ=t_g<}dkA6%Sb4=igPZV5{H0^ULN?|E<im8QI4Z#P@qgJAY6MGAdBr;k$FH z#C9c}_$gc7zc~KoV2(6f?cH-6)jcPheouJ2bfN98ne%_%xNiSlzHe^BvPqMbt92fv zJh&Wj=v4jIn3@p%Pd`5dZT{IBx93umY^!cGTkpiQ1;T;T<c}9NwCOKs>fQG+WRVHS zJN8dO;;9A;ipm^f4Z2pBKa^Nh?tA@J%CqU5dMEAurd<BQx?)9h;}P%Di+^u+=80`~ zdOAV!dsk%V5)Hklb?ZtGXU%smxfJ@UMO0*Vi;a|oKl_J_+4p2lbX_p&oUm@`<{2Ma z`W4nMb)D`U;vV($c$d}_-j_=6q;76}yl0n!<Rcm8O53>kX4_sLb+oK=Ia#`B-n#5C z34`Z`vRAm)r1-njCb%FnL1mD4{S?dsXAAUEad?5#?lwPcRpcp;)J;M38;#NhS# zK<P0hrcGB`R5yQ`bXM=K;e$-0YcCE@Z|<Ap-JoS{lXze7dTrQ`EuqiN?%JiM&(-gL z`MJ~G`ueG<bA%SGyLd>3BR0$Rg}YpF!6Tl|*Ed(Kmuomz#=d@E(1sHN8N53;)h>Oz z<NjLr3fl=xq4VVm4tIByM7N7e9gP&)X#PLbD79i$aHtp4#c+$4e)U~Wx5dgPD_&TX z{$1sd#8UOMOiKi9XP(%#Vqf8p37kCp*nj<+_Evv}i(rgotz*cKEv6<re|>Yhxwi4O zwmfIp?9I-SMeZ|mo&K)>xxne<>YEz#g#4CHQ{MJ>?#!Z%%1?>|ZiGu_GAlIsuFfq| zIy6)0_Ue0buRIw-qdy(mTyf<3ibw01oBH#nJ-7e%BwfDF;?uG3o>DK|)=qZt%eT|6 z|7&sD{pv@%p2;QYX<xfL^DSj&?&G;Jx9i?B(Te5f2lYy_%&nA!8K+9l4|TOsJRt1j zdg+`<`@@@72e{T8d7*J9e%-t<jwz=(KfKv<+T>1L)#=w)b{<IN4l+^Mt}Y<8;&x{0 zr-e)P<=Kqx&RJ2B<QOS`=x5b6U3Y_A?(EpU<Q4r-y85~<yZ?J2KgA=Qb=QigCrTKk zR;`kdI3f0(Z=sWh$?>JlH;Rrf+z>V6l>WWa<8R)aO;5W%?`^(xL##;II*T~#WwFm$ zmh*@;eVY(xQ?TrvhFif@|K?E7JBq9Ie#?vUL~L_^ykPE&yw*vfGjA|!hdBAMZLi6k za%B741l#JXw(G;Mnkc+5o_{e<>V%2oSC!zeAD(!b$@qyKm%aMZQ!xJ1?a!Mo?`WU> z;o2|06w^hU4zpPv(E7Vd>fXT*Gdb5<nJQFdU)K(J#nLb%eearJ4{hH2--5S2v3&Dt z$EJl>rwcBxeIb86ZT(N}{CT#&=f0O<JNxP7;jmq=E}d}QZ(j5CE5}K#7pe`vH>$-> zTFL&lQpxp8`pyjgKU3a0Is3njx8vk^zhH&$EqyMl;P|_u`@V!;J-WMK&eazl^Y<2f zezR@&`)m1~HSrVnzGdA%V;$?sU*A&Vb05v^K9jP@fwyu|TUp8M-MZWgKNkh>w0?i# z;=S68T9r?4rA;41$GmCq?E3a+B}4z2OUpKDZ>sC&3)%N7S$^O5&iY^X?SHD<o)nyK zB5?Vbrft&7Mt%El53IvZ-*it6m!B58a`6L>!fhoLY|qaHyp3o)xo4fmiNpmfqQXz@ z;Mm4@>c_{_)bQ|bqiz41drv0au;8n3Zg{|S^zD=#O5s!H?p`7KgYon37F`MB{;Hg* zlGj7NwyGT0n%H`@e~IduniUJBr)uAxJat+BqvcGeCl<8%N*!3XqBo&vg-QGTJA5+* zAMCYx^5D-RT^mJV{&nonzi8K{zux8&=yT6cXg$L|w)Cy$Tl(4$B{L*8HSD{jCeY}A z_4psp*TD;qwqAd9oXgeS<m*Pii=oVZDo-~1vgO^-*d(BKXn~XRDf7*n#lKic<>x&) zU!r-PeNB#W*j~AakOM4<^#>k?N8a)|mDALk5*xws^uW<MHN2Xk{AxGuyz|=I?ic!s zvu~Z4!I#Ebzqdjnhtj$eV>MS7J!#Qb{K39{@y(sl73Hq4biXqGZDLbip|Si#<$_sn z=KitLxRKB$dcCu0(G4EvazWz*^VY{bTXOM>x76>Kzor$b?e(~p72>e?RH16G&Cz=W zq0wq`?3;}@O*H!v9{BJlS0&e?3!xL=YfgF+-QE^xn-IS3){CV)3epp^wYT)_JO6&0 zp~EVk86L^%iJM<&HJ57NJ!5XaeOA8RuP5(qYU)LMUvFc}`d?uEeado+xB9z(sqR&O zdsw?}L$daUQ&+^K^E<Vd2R=1=vXVJ$*}A63ym?<*Hx>W#mDiuFmfzQWp}#UDt~pfF zUR?Uiyi&`MKlk!vnzvs$z0pHx?W<quy}!R-infvvNXSZ@(^WAwHLU(-dBcg_TzA%8 zIHgpb*>808^2<th7r%PdIc)bum?|tL1l^hz?~&DTy!dKS>#v`&rd@v$U+~tvd$?GI zZRL(|IX}7Huj@`ZggJy(?P{`Kd#PGg(dEF=b3BucQyGI^@Wx0^WuMg)Ze-K+G<1Ez zcb0qSI_}hYr$mdsXEIaMT2Z0z@-!^+L2+A>>b-5A+dKJ6FV*c*_rA1RlQZ_Y!lR29 za__A!%jkcVxoKtRp`?Z73QrEC%(>>iV5)vu(L52R#bynzR%H`k9iKKqa>fJc?FYnO zNy$i^p6;9b(v;EKu=d;G=({{lHt&u--oYZ!sLv!ApW!{TvGnM9t@5ReOJy|A{MvYq zg<+rP$yE_AjVxEnPj6~yI)0$zSh=8GSb)R9-206I`watfpO}|Rtq~M9s*T&ODH1*J zqGB{(`8W2|V882()lGBv?KpcV?{HMn^@CRPyD#vC@EmZElHy_gC3r-_uERJmP3cm5 zL;8i~dmFaxXjsv4Y3<Q{UtZqjIK`PbqjSoiHN_tvxwjd$^i|z-na$j%n`5^pE_Yqc zSL65ppZ>P{aP$4PH-a14c4c0^z#&!fXR>|i_A@W#HGWM@`ywG{_H4Cs!@i0MjE_HT zNHE~ocE7{y(nDE`6HDI(HZ&c4GWSf}W5=F@S8p#}WAmb>wYj+2Kz3u(scls=K24rh zSv3F7cP>N5#EqY{-ZXuFwNB_jptxt4&xC`eI`c%9K2e?Dy@dUeUEn;m<6Y-VXBPO* z=)0ex#kXE);g6<Ch3mC$DNNongGY4IgQTYivrIVxyXS={Kf9xm_}VtiVoCK2kz?A1 zKT1<|wIr@LC#B|@?)en*=BmYR_G{DiTH542(^uvx{-1Y<GlyMLa^|xY=kC4It#w$u zTv=jkXa4<?pYx7fJ-8}r?X2+r)ja+iHWYr*v^0JA<t;O>Ug3o`&)b`in{g<{AJLXw zIm@PEI`8jhmIp7SW2gKL-IqJ%*Ia=ETMxZ1>+aNC|7w%AvbDXbqHyf(!VBB3?$G5H zH(Hv0)BF0hqpZdm3orcI6BaR1OXtC<{_H;;VSZ+_iw>QaI8<wNukc~#O5@*FT8B$d z*m+u3r7GQf;mO9mZgoI*cn3@U#!&s5hZm=>ig#SafBPMK-K-C{(r(nwa*7Z3ulOi@ zf`d_9$=y*@?Qi7dWcf!&#J@2{Y!6F2XTL~#$&W9BWhNh#Y}464iKx`S-+q7H_5HeA zKBa$1_iWxc_2I$>35Lo@_x!jiIfpsf+mF^J-p-atIZ#qqYV=O<^RBq{J90iO(n;n& zcW|}^bC8YMi32CsA1~zZ7v8CLxuNrLPx$&rd(LbT_RO>@nGkH*ZF=v}a%L01lWVI~ z@11|7I-5U%mE}+C5=%CNhbJn%6ZRas=JM!t^tJ}2`5`M3Zl3jLe|>4;r^!1DC+!zL zb*aTqXMJRPWiI2Ayj5KrS8=yz#2(<URj^*WM6~0*ZBXTD;V+BAJhrQQgkSNEKeXOa z`zc3ncl#5Qz4L@@tbR^SnItSMEA*&U`E>SQrAO0P&R(3D?GQS#xvKVdPNGW8v&JNw z*pmDy&Ut33*B7Vo?h?AD|GSfM{-zDKZx-E}da$5s@oa}6wRLtcI%6%OKfS!ey8qMj z!)e==`;~u4-<ofE<bDxbme2*)nX8^h{p~)<{r!h>!u_MmGuU?Un?7?q#d2@winuSl z=URS<MZHX5*O~k#>WHM|8CSD4hpVKwW`6m;>)it{zxS68c!g#NHztMV-nwM{Bl={J z4`aTlm)TpNf}(xg@3L1immE`!5BpabV8$5Q?)m)Ex-Tc&ADFT2Q?uLl`py1r;ag{y zNK85!IZ;(#>GP`jT*f^z)3@(hqt5w>U8e3ypu_%y=jS*t;S`Qybhqc4bt=1-ZOMc~ zZ`XZ$I3eNBIVYhrpBl72oDJGk^CWwI<qvVLtQcqJ$?w|Tw*0F9Api2gRr`q#?~1Zd zGO&};&kB-pKE7#=$|a%Ln7|+&mS3A6Yp@HrUf$jt^Q7eI0rA6j%aaZo3xCKGTXXRG zmnRN|eS$%3<p&DxJ=3a6&$C-EU-eKyx_L&J=`0f;$1jp9tj}wn6oj_;y6dawS{_(c z6=tJ(wIS=rna`}hE=)?E;`}KyZTZpj%?w}sxE`!JqhK4K`n(~)$b5rJXy%v0k0<$g zx5x0G%XSF=^WxRE&u^B_*wHE%)FHxl)0Nx3dvdC(GRuE~$*<e)Nj#Vm`OBnmMOp@v zkYWg1iRI3-T)P$vdKsh~{B@FXVvp|6Ma&)_Uw#hZe=;>@W0!D`&BL4B=8^m|LR<Z= z)|p=H?Bq35o*BaLzhJ}8c{!d-zPazdww;|{mMv9!j%V|IwV4go`U{h<-~N>(bn0bE zPTPH!1aZdL2AyZm<~x;qORHURVf)f9ev5`*tM(=R`jYG<>eBW8^Y(j2)eqbMuC-H> zmwIqv_N|mY8NN&H|AM$;J+)Vy7g(-$Z{dfmT?;hKi)tDJ+OPGTKXM|(N<lH=+uJpI zS6x}N|Ghf@;kg*!iMeNF3)~JS);gbF$@_EarEhFbzFg<yF3g<y*~(z`+UoC?FT>T} z>n?x2=oi=Y+s@x~A3a^3_+#etuUr1U+a}`v|5xIvj^1F)H)og3;o3OIY|e|__6o}v z?2NtmM?7GmOv-|HT0B*oq}2qZPYQhFi!BlSBKq@Bn&E%_d%yPmFW#f95E`WHnfc;M zoc#YM@xNImyW&1t@7LZYUmZGywQ%X-HbLe_UN?=yXHuk=uG!DPRN*8bJN4z`^d)x} zE^wSYC7IDwa)w-=MruOR0*ki1=dnhdGUBCgEp5ZfR4U3ROgT7xN^yBmf*H@8lTOno z^=EKj$TsTS_jB8&o{ov1YAeoY3zr=8iqQV5o35U=Y<qM5j0u)jmHHwZ#IDWyAiiLO zk5Sp73m4QCEH`~TH1FVk0|m`=kJ}#eG9Rq|w8&^_XJmM2iqM1Cm!F9LU-EplAj^%M zLm@g9H)M8&%31vR*=4gtJLBrIl2*<AMZdJS9i8?~#a!5{PVnM3#Q>RX-hT-~{OPM# zr*c^On4S#zYV$Dhl9OW72InW9iq}2en3v@F9zQVYZ1@+}nrke3V$S+i9BR_s_Kg4K zf)two&+F}rwA6zvp7^tNDL<}B|G>V?iRa(O%gi}9g?S!7ZoKeiW=iP)GrL4)UaFt$ z`Lsh->d)3)%=r?vUsbj}QY@bMP4pk%6wNs%KW3X9=~&?XW5TuLZ-uW<J$Est_Fa3^ zq_-=sq&{0X<+Tv=y0778zS31m%uXzM+3TV$EpABt(>h(MC>7-~-+iY#=Z%^g9r=cT zFS=Ln+q3&vo=$(n<jmRLR*WnOY_E1!tbb-D|LfIr`AYAn^S)_ES$;ie|I&K?-{(f> z+z;Q#O}xbYN^xC3ujS{vnH{GcEKeNW``xTL?2?6qlELJznZDJfo449>)v#Smbxn>s zQ!#zk(&qJiH=8C|sO*o`O+R*Zp-lm6TV?f!I};baP?$Z}KlRGh(%?g(bDzY|xwv`T zs{|XfW3xGvQ*WFM{c(5d;YsWC?Z0hS4>%U~`_}|X>vNwgEFP?_zr^~U_r@jFstfmb zY4K;Rn$@j(J^bf<t#wk3X&(+v)LCQo=FQaYyH+))MY82-xr7@nbPBlR$L_YK?&i^p z@smR<C&|0B@kO7$ym+#jK)llC3(BPyseDNvKd&$R(f3H8Nz}9|Lhgm_rvrr!0y9&& z*UXV!RW#8^Z*uz#hARqzt&Zlef<9^}hnn`JAN*|28xrtJ&p7i+k?YQjx{Gd1yKZK} z{;sH?sP;<u9%F~-_Y<d{v5Y=);HSX6JY$dgx+Njod*UJ|T;RCP<{7xKiEFQ(XSLtl z)Fs+FU(#$o+-{5tpT||Oy0h5Qu#+p~>+g`h_?y{j)>ByxMBkWAiT}WOci#7PO_N*r zzZY^`V82_{GNr6LH2$99+OD6s4u?1%e6=h3&6m7oZ^GZY#dAcTIVHOD-L4bq-+n4C z;M%kOfH1S|t{2fPyWT#U&p3T!;(fz~{{I91%vS93+SEOL3Fm^600X8%`-X)%{&kP- zcR&AY|M@g%MzoAe!7p^h?40GRF4d;~-~a!yZ25}A{}$;y4t#!l#s(uLKb9R<OSUh4 z!trQH&cO|P@7)gMS=+efZ|}t4E&t2DO)>IjyBZPtGj0*DokLf0Pu51E7dbHwbNBSF zdLXeRM#ZvK;PzwLhfPOcia7G;_&6N6*uFM%8`ov;UCx1Tg|hf9*}ndq#q>gffrHDX zSG~%oBu*v3?(YA2ua19N%75{o=68WPHY~w=Vwj?h`wSbu73?dzyRNF~z<1YH7u#NG zfnz0-Z~bjGo*ZV4V4mEO^QP5tqG-iLgLxV^S2C(wbp@Z<w)3mA(=ImkZSkS<r#8hN z+Vx;*Ld}apv6elylQo(TWt;6Tcv<FalF_XhQ~T`Hn-5&uU2kkWD4TI;LFdxr@?oW1 z&oUJk`x*W;PMrRG^~=*7zaBj`SDb!3Vw>=``4wplYMH|73n!R4PV4&fD<Nk+|2AK) zlTW()1$HQG`dq3yV~f!NL;qh*U-WL5Sg)FM((}cpTc!bzqnUT*7+jmm5H2~5MfT)v z!!0VmW_|LSv8$`0aRKwyE8Z^;|Lu;I+bX=>@fSm^+FzdquUPEN&hS58V7_+4@_@HK zb2((|e>b1%zw|c$V3;j8Z-d?XM{XguHXE4kDDNov&3$uwL91hRLwd<p?$RsrwX<|< zUrR<Ws$<QT7Ervj%)RzvcgF&2;n{D}viQBs<SRdI-v70w;onZX<yLckaUQt2Io)1G z`I7n@g|M>{U%tJX_HXBv(=`zX*Y>^0XgrXdE;?UFv-75rHlM_Ix6{8)uCGWuCHtdr zo6gNy5h~&rUWnhydwM*rEYe}+;}w2O&K*!#{C20sog)j{A9HFv5}fi*aO(NQMX!2} zv4$9|DY2Cda=&|QrpL@RGUof=zq`+HAaLEL&1&BKDtDG??3=5xY)Q$U_xrg{gx>jZ zMM3Z>&z{=~aWV?s6G~aOzTlpIxbfbzu;>fRdREIED5;iTse8UiKdwr3MyQWa$N8VS z%=T#~mhii)rN~HqQEZb@l4v%!x_+wfY9-&jWt<w{wI;@GdvbNtoai+@&KC-v%=)2I zp~5@+#MSi?68@Ft_r9y$U2eO2Gw+{chgN@`d48YH+eN{!vjBe9|L@By{?g1Q<)y9> z^Wc2!lYj-RZ8PRM#k}~&p&hYR*jgd0I3we|)7yH3-CwS4KcjcAa(Ti&b;+$#(Q{|p zeqLU0QvFObZqDLeFPKf$4vP85KifI!-V*(9Jz+kdE{Pp@dBa*#QjoX$a>MG|3}22` z^yq#O5?J)2nD?31&fSe`T0B?nTk>x2Z#Vl3U3Z^XTb%K_t$E(soX2Y0^LgQ?mR#Mo z_JHV|4(Uy^4@}})Jv+li&Z2dVOpa@2%At3E%6xvU6jgq`SoTY#Y+5wij_!->U%xxr z^D(cglezWe-hZy!{$@93sB<lyFLLDet3`YNr_Y<Xnft}LGTlXcdAFa8GYXFUb0P4N z-_$-WRf((7=dI=k7F=QsWMXfAzN$U&$>tgf^R6ZR%X!o1FSUEzX|mgAQsFsawmpgg zKR%jyf0dSxV2iv`{nLE&Zk3Pi`@YTmZeRGG-R}4LNq<)E3AsGy)T#QP8_Vr=l7H)m z{$zJz%$&Gyis!T}10yR<<G1Ht2F%G|m7EczJ9l~W*M$;ck!1{vmaI+6xU}#wOMTL} z&9{|q#T!=4SujU$(+uD6yiZE08$D*si<u$+d-BW2FRB)Xo>M$>LO7DIfVJpJ=<|b7 zbM)19=3H<#SatAl`y;7b=F^U`B5V9Q<WDA6wl?b>Y?qtd)ZqQ-)Eb7|C;cTpX%2}2 zuTL+S&RlnLmdYCGMy^9kDz576a+`NdEV3p(?yy`{Xu_jOIa9kLZl^Y|&u4RB`D-+P zT3zh&2PexrR4QJx?kM<nZ<hFbW2qyRo`TIkZ_du2HP^B{?b}>^`<n+>_U4)&+HAY_ z%O|P1b>9>YvN)dme{0|OAd`!toeB5uY-{Rc`TT0nlOVhPu!XZ%%nM6CwXn=PZpjhd zxy*ZgKkiIFVyqUhAjsJ1<*#Sn+t2FV`}*qU*5~m8YtF^(QP}?9#-2%8=KnFKUuo?Q zQ=;oRQmYEm5}H^4zZn0b?^jjmiXeZvT=v>{ktT=cpa~bsS#E`H6A5FoebZNVpseW7 z@+(XF9cJ&FyshNH{U-_Bc2Z(oO2#KGAGYW$mH!l*{vjmaZ^Q4Mwf1uZB0TixC(H_Q z-*9EK7OUZxwllu^*3Ekz#CC;>_@^#7&2xye{;+@D@h6D~vnQm!j-Grbw~;&Y`r4*5 z+Z`mYv)(kiv3$v#Z7cJdgcPm_+h5RK^r8J%i1mlIgO3<ux)&=(ob1~e_`2C_t6x!K z%HEYaw>3*{Tun6opa1^v0p<S>Ozv}8Y_(>H|NG<oyy)}${(s)o%WflNvO8nqhVN<T zExaYOyr<86?G?AkFwQl=&An@f--1&aUpE?``ebEs^jjFWf|w#(PeH#r73e|Ivh z-&`Q-DE#JyY+K0J7b;SBj?CUP&uYQ5tCmwvG*8oXopdiO^TkWy)tLtkCIu~jF;RAJ z!MSPNTDeD9r&xu0UKL$nr?FqV$UXn)6h(Q4Ma?-M#P2#?ys+X=kqG1I^43|=EO|jm zp(_GR*61v4Oudl#)1|AHai;vtUq|*oX#Rhtj7Q`V<BY>q-)_y{6V6xh^l)YP{Jloi z57`TqWPh^CBwWjVr1ig5-cEaJ@%_-<?CrBQeElTy_EfXe(Yt*r6L|i*OV8|-NxS<f zv4Ll1<HcG3Sg%#w$PnbexFBSq%hL%DKTn_kt>xLH)$yj*J6@VC)jvP)-?QsS%_^K( zr8jIgZ#=Qy?8wI1p|?Ck92(r7oa$qq6v)qdS=H#|^CmX`C9Bs@-m-PW#>G>(xsEf- zOq%f4yLnpCnVla_yr|s0Cy~{r{fU9fI+lW->DR;Buh>prtfgPEj^)ea)r<Zf;M#LC zyv0T6;!(4BUe&t7N&7c9vhYehn-CuwQ0X<B|8K;^N$ro;>95+9!qW55*i$Yey5~db zi6aZ-yG86B4FUzWOt=!4_dATAF(lqlyLKv%$inbT=Ynq;JjwqzS>68kOMQ)R=f7G` zT{!E>mC%15?^iq!Pm%aPx2NfPxvPV8s?5~wrE3rE3EQNo>1>-*v`E2xfm`SH2M_;* zUH?+%U|G2B#PzQH(nU>TcOI<?yRgS_-L|G!Gt;}D)};M@#jx5chuwR9N@vO3+2<Df zJqYc{JR+Vq@t%aWNKu}J$n(H?sdxAmOg82`^`^Oa`)=bZ*WQ}QV`fI}Y?3pQqC+{Z za_-dnvD|N~@IkT4oKEljdw!z!)tU<)_^#O1rlWajW73oK(-VFvYX9PBKlIr1#ljb= zCso+lnPN`mU%AR!^Y*~DKYE9vpZxKd%Fp;JuPN;F^ZebZ-wx;7PYsCdFLK%aRVzx& z<&yz}#+10#H?Fs2R@PeG+_U1$T&-CWy%H0ZB(AsKb9kxF6=C^~Gi_$gO1XumJB6j* zgw9{#ePhXev*U^Zx!Ln~w_X?4PY<7;DlIPk<Qk{7fM8R}iAj;WQf4{MylOHz<L1J{ z_rBdaY2)T6dHfbzmUYEJ$FGz3zFgi@n{aWrSY&|si}J*i#;<Q3Rj7C!-~Y#r!{NJq zUf@ROt6}S-6((0)+52L8MU3{2`3sA~F8h>R*vXcBU0-mCd0p4c+wAwgYTrq|{^aUq ze~I7vWmiL{KQ7~%H({0iZ3C|tvT7^K)wXiK6<Ygc^Nnxj(Fr_%Hu2^yym;-^<8_^{ zUL8Jp&ojY2#EPZ=HshZa(;qwzNW2kydG-RAkMTLvR@c|uudaX2zdd5^B$n!g<$8bq z<?ns&`}yj{`c+-~A4fbrZ8v*k`jSu8Ez_2Fq^(_Be$2$0S6*TE%7jJEPKQ=Il=@7b z@bPk`)XqnNMgb1$@6vC!ao+lO&hK65)H2b!M{o15KGd_E<ZQ*Vx|nV9O6D6kcPIz0 z%X`Y%>~LnW#Nn2MQ+~4CKCEeeGxw3c`q^u9J}x-#!sJmqL*UJ+H=8t`iMdVoG*nD$ zlo0A&zhm0x6IZ3ae%WhR!WCyFuwl>A6Au#ao!CF~?zdgxuPfirHa(E>I_y`+!O)sb ztL{y`$iN!?pn0#B<}bcS59Otd99~Sk%j$2zv%qHR-G9G!r<L#dxbEiC>Ui_rKd;VG zSlPGc+G8>2Nlw$Zu>X4bTBgTGUE!zOfhofGPF#Mqn&<TLqEj3(oBed(derKst^axY z`+2^tw(qOYw1yvjyDRp=lybcXt#ujc+p;?+w$D2>cZZkPRj2DJ-7>pE=cMsOrv6@3 zUGVPCn{VcKwD0b9Y!}VH9LYL&`-N(*u=Y1Gh5N&QZIZow{snjI`qht>c5R)iv(sWV zQ}NBl^BoQGwGDrG)>nT}Pe1?1)92EkPx235_$!FZAD$JpaODmL7O%e>w==C=<kif& z)@Fs<+>Mv7%)7Y8Uyb8}=k2pi2YjP0?q49Pm=oFhPWseoHUrzdNRMq3^k0j(OqEaP zeDL&S`6c`M*K0RDHb1}akAtvC%CdY}?oG97CVFXs3uY}azoqulN8^N>nwij+H}yOV zwmrP&_f!7U8tIEKoA_NO``x;;>QhV5rrZB`v~Q`dUjJgEPVCnDrwn$fuIa|Vy{%UK zQUCvS{lAOPnI4qX8f(qjwZUS~FZt69b$Ypmuli$eSp><ZYD|rMD)PPX)Z2>%XU=$N zsw`<OJz!{Y{qObyF*%#vzgHeT7d~0Q_1)b3k34)6JJ+8Io%wLF@}|`V1#axS#MV4J z9J;pj_JQ5Pi$v{Zs|})`u5Ev@$8bV$`vkk!4Tsae9y_wEqSI}6e#9e{Y5a{FyKX+t z@lLz0d9r=;VZj%1%e14c&aAf1VLaSZqZV8^;~byP{eTSjHfQD|8ji^ukNnhd_T&pF zN=wY$QDRawY2xuy#)Vhcy*TP$nPHM#`pEr~M21UO^VGT&UY4zjd&1lG&(wW*E1xC( zKk}vfmgc<;f^M9DKhKz-`fZgU!>J!nmcHsXe*4+e(fw^h-rFlvzdbzlC^$Sru&d@+ zZ28(})6-2kEA7G-xLus?c|Ej4GjKxSU4?6G@(-2--&Z?u@X?=4;R!1H<L5E=*a>`E za_Xz0WS~$FTO{wtV>?%QUJCB7_bshVEPJ+WY5fL{JrRbN`794`DWBWGGB-t{O!7?g z!bf+SkA2-N^kjm>ZewHl2dc$fK6WxKkJXtb<gGJXSEg}c&FLvu6xJQT`K<V@)ya7_ zA4T5fZSb1%^8P0GP@goOY0lFhmFRvs&b_Rny}m`KV6W0~i3ehVi{6MNo_>2FdK&kM zX6?7ich}c^W4BuAug0bp@?narg~jrNbB}+1cAL3y>S}{8rysAh;y;+rd8Sk&(tMLt zhv)8jH5cP=-t8#*UiwI@%Ph?0c|lTA%i2=Mw*tQu{R@2NT-mm-R#9r3BkzYWMS+|7 zD`uCszIi;M@z4&Ra3eGO|GnpJe%&;$eX#L-`pcC&=j`G<Funfo!SWY5AMbxjxMp4) z=^x2f_Rud(jJbgM&?zQq{^uIeK@Bgw6Xre4vR-eWoBjBiip`ETR=x)%dEcg;Z2NR~ zg2lOak9ql;k82)u)~~*}GGhNR)6Abs%pNN+?wezu&?98C-fL^XB;7eS9=~49-{PNK zeUz_=l`C2FU~cn^3N7Zda|0&UE<C?($C1qF4&UvL+E><1Ran1u>bf5rMb#ufK6W!m zFffVkU~yl{8K=2IHi=zj#zA+}X+50W3YDwkdDax=+3nDHerVdJTSpgM($tDJ*4z** zx+Q=2iK_+OF3e~7_uu_{kK;{H--N!FjF*z-B_gd|5zqH=$cX!=I)yniCfyF0d0XN1 z9<N-UHOvp1w<Uixofss^d+wCpo6@?lzUY!yu^(PcJm7G|<>=eE+)RC)qyq|zO4NKg z-!-W(EDnqO@aiWc`wmX-Y0sZIJ~Qjo`*psdZ|h(Exa;$Fui|fi6LM=U&)XN#@(;!3 zDw7&duHSMj(Jarov~175Wz%m)l)XHA{w%ji%SIc+f)Xa}EZY;uHkjTo`@GJnt78w( zHmL)WCo;6(b9J(BdabP$GWC?UOjJYrgBTXui;pt9E9&NjYp%|nB7ggV;l|@iIu_H7 zN_eNqoDf-3AQAHLu3<|*TmH6Zi_d+Le^>Ub(Y|?=c;@Q4MYm=*uV2@^bg_Mb#E#d> z&-8^@ZZ6+`_2vIR3?hH!)0sAIn!F<QnWy`&$6JrKtk7qfdU|1U(zeQv!DhmC4`%!E zE?B=N$!4lc^<wYTDE)*KsXJn2k5q*3eYv)ooi9B~<Xl=Z(}j|<X16Q#l7HlDJ+Hog zyG&rt@#$+dibc<>{5$!rzwu;8;RKOZMfEwdu2Dv*Pp@n^cJAYC3r%&EzY1cJ$M>H- zX|jml=)}t4OYOxE{5u*v<1UIXT5LVfXHjzF!oH(rrL5h3Yl7Wge-2L5W|s+Ae6Wo} zd8Ki4-2zR&NW~p82Zh}X#iiD81iDSw(xv1cBkATDAQFAGOw85V|1Z1R{g$m)w*>C4 z3{tx)`@-d)?)u89@1DkgvHiPz-=EU8@4Us6I^t|R45zm(zB_H@!LEi`7q!1`m{%ll zUWY5@XoLSw-HNNemFs3a;JNbB@5tO#wj&2Jc|`AaPEHH(KK?HFznQ>?T@1D_&+c;0 zyREZBmOtRa)LWOhT{D)m=?E8|u-KmwEVNW?YR;qyX->@Z6_}HjguXj?a1*oqkMcX8 zt@a=L{`0;4;@di_Z*u$BhZi%*DIQKcu(GU)r+G5diU-@PEUs5xtdeqgz^|~OPn;+G zSIJf*1|PQKPthM@v}F$Sf9u_rvXGV0IP`1ydjSp6Zsv}s$G`G>yqciv|CDLjk87bn z^UO~x?ab6Z{7Q&-aYspt{m}zDvXR@jnCDKkGOpXOVg=XN<GMZ<Me2S?erP=5_5JO; z9Zz&_Zm?_)<bPwxU9yoQ?TUJnTFlS+n`Z}G^rjy0n4!Sr`MFf(iPj^|EXgU$Wmoh6 zJGlJ*@0Hu_{`|ae@H+TY>8dh@N9lFf<+q5QVu%R6IP-MEp1a=a2?Yn*r%X)XIkLHU zLJz~luH+Q1T{jvNDqiJ$X1;r0$d>Qsk;O%`GJhA$IaRQs#AD9nun80TnJXNRe|e>S z(qC4CTPK|Hsi<UH)yvaP`I~2FvIdkkx}EB_*|YInWKC(RpU1z5(ja-!SNkI>qXUgA z*VmcOs9gHMi(PS1Nl1{WjQ>4>PYaDKCD!kFGiSAdp+kUJe$<xY#M0xdF3y#nv4k(` zx}IY8HtnAld$rib<&S)Rxh8M@$Ir_zD=eI}V7*yn{O^Nr`poy1mA$@Oes131bKleb z>mU0+j<Yjz6cf}^*ze|Wd(wVEFU7{1l{y70g`cje(Kxe7O<nRFvxHTRYr^WQ&6{4e z{xh$0w=O99P}i-p-C%`q^e2IdIkUdr+V<Od$ujLynIvUN26g#wFJ_18eP8nPM}XW@ zF&%+bx<=iOv!Z#XO|w{CoAO;(r{T)IuSb|fcr@a)J_)?I&EshGioZwd%=hZ8rg7U9 zOFVkYey@|8YGYA<Y;r?)dF-sczt+}QemnmE*ZmW6l~zs}*DLDe_nGX{6TPxev*@XZ z&&!UhwtoXZ#98JmYDPD0vW?%t(=hvL-CxP84M{P3Jhk^(99FKnHEH?Z5cT&_63=?% zW?s$ZzIl|ZmU~8SULDh(TUNT(8NW8<oe;I@3jA>KyU2#j?WG3|UZfeO8t<Ll6fMlh z8vJzEyOhNI(@UQ`Vo==8GsRrOby1+Y+=QUG-Lam#nx0;mo@wwhrCqhW?1{2%r=jh^ zC1>`rHt=71m>Kpr@39WI<(BTnw^{B4C6#aPWb1kOC3V&mf%$jW*ZTGHZVonO%%}=H zn*Za&4|Tae?nOcWw`jd(jA)bjzI2Lq`qRiwrh;vP+We9d#}2K!dd$gc<%eByrwp9* zxD4ZrK0I+}Eh+i&Gel4J`Z4!*X8-xOUa90&dEPflRTt2i%yHwvg2xYh&g}cR`D4Vq zIg{8_>Mk(fvXNgWRJ)D&`-2I~?=I3P<7Dgq^mU!TACpr$!|7D-Fq!h0?JuoaBVH|u z?e1qUySh~^hSwp|cHVZLi=Avn+^MI2US)1_|E<9<E0i2<_fubNVR#&0(Cr<c<g~7D zTax-vZeK+QC$l9p`|?XW*JnvBYVO<aDzK#T#LOxo28M<-``V>Ey7&9UBJy@?<OuiL zG@PAqh$$i9X`Lw#)Bd~PS;b-ve+1W;B<?#>xJv7MtjvDi2~QNio?TF~F*ASKVZYSr z_xiR<{CcJ4<73gY#HzaBm|V{1N6!z6{CX6>YvG#xt%>uF?wH)1v2|(TW_iKuJGuS- z1W%tK(6O(iG42^RFKhdrn9k<>ENA`+Vm6)ccXISabG}(rowO|X{f@IuZ%%v@a&A1d zZq*Z;+R(U5n`<tGo|ylI^_XpWUE;*+ao78#Yh@~GLe`vWWOgq-S7o%~nC`T`?T!pj zoOe$Zh!It|lrFjD*Lkn^%XTcNl&-bT*B8;*(WhRo_HnLnz?&lXA6yoPIj+_63*-dm zzL5?3WmeX-=ET!&%jGY<^EqWPd&zCzZ?%&+?;qFIda0JD%CVL8gFwKJcl;ZzoxiSO zij@`bDP2~~UHIGY>m3=}b#edu{V(e==+<d5t^YHX)yC<u`-F)v?#*WRP1ooxKBV!o zWKEoeisTo^OBogqwR)eWtTCLS5qM2>f!C#jsZT5vV{=PN#B6+<j|MniV1ItBU8kIh zOQ}V;p}i|&Z`K9QM1#1n$ODBPy_cUB?c>s3TW9k_ojbiu^nrka{?W`x&i0JHXQt0A zo07~D?jF(73~TS&Ej+vG8h1``#&jKDOJz~*dN#k3c^_DBs7HQXINkHof^0Kc`Q?m@ z_pT5%dd?NXSG4wU{GL5*DfibOIcb#eQeRFs#YikyhvVqfQ_eNlChm*cyfY+z%l`7b z1ECBI4<@Oe*s<d2<U@KZ!l%w=WHmUct$CZVZP|mi#DL2V3qpJC%NA)F?-MAzwkr6; z@r9oP4;*Bg-RODY+JpN)n6!(0j4t&Z`1)k(LASq$_B>ebFLUIQ%E|Bh1!b;#R~PZm zZSFhuxq+YQFIP3^cb+xrr^2#?L_(hI3}x}U+ql^821BEr`)(scPn+${b=$)G`GssE zer?eDy4>m9ynS7=;UB+SGL`9NUAj~excn}EO3M!K%?Bo&oU69}$@dLc;y1nJ`<Hfk zvYyPzNA6#|mYr%}^X0(7kktpPM2zE`RTuCqs{QV?`Q!8?)tZptUq$iBm!F-eTc+F5 zrT?{XfqY>9$#uW1cAOJy_?A>Y*>2H}b*7vhtb%3}RcaTmeX5^X?O%7GyX@<GmmjHV zOo9J9jU7}21Uv6Z{}catX!*3N7EMuAzVMv(<*q8zgT8k^SKe!4UbSaS+2ZTP-=6ya zxpF_~_@B_wFN<OY%p8_q7ft?nswp>EdhMwvJ950Vwi{1g_+hcBL_kZ(-0Jy{d_;0` zEat9T)5EK>$?^MErK#7hI<`tI)vGHx;~Dm|>H6{QA~9lZypGnfma_g~EW*)AuKlY8 z%9ti|ecEnikPvD6Ib25l^n7y$uaxVZPFF3T8vRU4-r=Q^{E4IXTi(1=TjU;ZuYMYH z<DL6-7Dh4O&uaWmo(nFjTzXn9EhBYlcKErjOzA(%to6?2)j!U@8Y7-||L-aJE^+4N zY`Yez^Ekb1$mw@gbrWG0e9PDHhShqb)t*{u2fMdEmaA1_b>bdQUdLc88g;$R|A9e( z=*pNQd!rbS3v(Q_xWD3wo5n7!!#9te3as*&B*x^pbyi;G+_>je?agnUY%HF%8Gmcx zSH5uM;%dE{RTtd$UkID|&$qu$b@|;NK@+|jGkjgJ-=k&I)m>*zLKiF+pXn&ioB4r% z_Hw5{&D+M!JgGPOQZKR2H2Sc4|MV|hPt)h`vZ;Qz^8N7x{JWZ-PTYG$(J6Jpc?Ore zk~M4RKVYq4D0nLoA`@|adeNdQt&DC}uhjQ6oYb?F*#5|U!Hg0~|9#81x?iyPrfc!# z{P~|s>ddmtMH@nA-r}vhu`OTPb6fBBR};f~R&srMwf_k3G@p)2R?{7o8~AV3i9Iy= z!L>{{FnqtiwY1z*^^p2ocmD_rG_Ibned|TzW22{?<uVCjzh9NDy3Kr`>A6>d>yB5C zjre4Z3eP%Eo7Z#dTS(f4EsiN&vRoPG_Aj~Z_y5CM`5%v-D^@OM&-_xtVmZS-#p>gw z`CDxHKN+!EtvI99!}fY&Y0Jc=c`-}YZ_;sZTpSZGkuASLZ_a9_{w~&-ST6sc4ISHS zYZ$LywLik7vuVX+7RyowHmwf}+}FI&Jj%ji!OXBEpd$6_MClEZ>$_DrS?-tnhGaw@ zQ^{gyYfBLAe{@9q*imDzweg3w?PX?fm=rVlyvWNhA05T6NHhp6X)T#*x7SrVlEGzz zf|zOLgtM<$bQ-?)?3-t}|LfLYbBp)R`?mAF?b_{^kN$p>Y^pYcVRnjfSe@$MHIs}c z1~1@gY5392==`=}9p{!<!M7h{HD<6ByRKYwiT7UWL~*_lk0%>HiHbatYIJMYQGK)K zu-fwFu~YoR6xddYuBmyhDmdvzAmgoVrYBCYnXkF$!xC|8;Tzw~O#<Q-*JnEhSBfmL z<8hMvc7#RbpIwh+f`j`48LMCAu_s)OPYF*<jy|WAd?-m~TbpikK!V52e?OiF9)4f< z^yE$5^?QrI&Dwrn-FnBP=l?4|FZw-$&GvB<+dB4?k6*OHS++HOl09L**k|&YlDG_J zf2K9>CmcPX^_}Ig)w0l;9$!-)D84+{JWby%Na$~{@y+?_b|;xjJ~K}LHDO_b+^$_c zB}Yvoi(~ejG@DZ}Q@}X0R71&2A>Lc-Q3cmqqg0ETl`1xkUVA>tul3_hS6skuGv8DE z;^&zy%WP7GJG0t!<34FJ2ZqSs?tLxm(AVYmBGjQ*kK;9aN!shbi;A?=7*>7kmEZSg zhTPxivvr|!|1iGUXyrPqng8B{Gdtw_oRsXpI9bVX$%-8Ja8Ewg(O5QN_pBuzJ<oQD zzt`2j_`T=W?WLS+y5Aqo7Ja~6D)++L$#XI1712m5>2k}yDXbEYOT+V06^eJOXXUKg z6dL)?UMc&JjsES&Tt|&hs;9+B?Nhqrm-zLl<7T-)tEf5G&#$a{AYfhhYr1Ip#kU-K zU)-G89)G*Xe2Pc?*{}KYyUjJ$t$%f4;^`CY3=fxNZ+l!>(|w#JQc?I4<Aa#|y}u{T z{l{&8;`j%ttV^0Rn`BO;y=OdfM9ZDCWU2SxFZu=_l~o*%2z#)3JlQNS9>~LgYaLJ7 zk*>|#7q=|j6L#f<{_hRvT>1}BwkWfommahzbNR}a$ivQhpLuo*E{e5}2~8C{&^bYQ z!h#YT4xMecH_FNtdkd5=@G8lebTz*s<wL^P6MRh*8cO7o7A&fDo!*=~<@(||h7L?C z`UU>1W4UO&r*ui<x%^9yKO}Fh|76yzd5$~l&bytT9+z>J+>A{sJ$+uJ`1YembElik zkNdgx=rOUL`gLM+xy@NF_DjmX3bf>p;RsiJ{G-9{_EBresXCTB+Z+~N);j+tU`ELj zbMH@DG3(#3-uG$hoWZ{%(_LsklU>r5GRM~i0gP5U(%u%EWLK!?uYaQBb$ja~gAdX& z2d3SO_^JBpQsA4u6X&|hB!0IDG^zLr-8{9}<HV%a+mi48e>yD6^U71UKV-G+O7D-4 zx)MCMos6#A`M^h|QHI@D@Ugf358lfcRj%(5|DUvR*5AX`|9`!&S^Q*2;QHlB><Na} z-{0LV`poeD$n)#p?tIIXDG`!UWoC)ANPW-oVO{N7r&|g7>bK*B9>s6<X5Qp@bCT8K zpjlJx=brDI(8%!k6yw4*o;%7eNzCmHv$$X__F!t!MMf?Ui+6vPy!=z+qu!~p(&wq+ z?E7jy&r?Oi_S<pjoj<7mWnX#BHrcXLo{JBb+E38G7AB^meV%Vq#e|dX-Ctf`em?Pe zXdgFMWM_}jiLH!=7p>Qe@7f}8p_L<g*~!V=yACEg3G4`S`R8{2MLqwLY4V+O^9vT_ z#(bGwaz<ZvG1qgR6xOsU8<f+f+?U4u=KrL){??=iyP6VirG%(_+@!nr)5&j}n>Rg9 zn{AgDJ7WfC)AX9`t66_lV)c62IcEBAIpjC3Ji27ZxrI|xcNM(SlB}(EI2vc$Rep2s z?YW|<mp=SWzHKC|c(9u-oJr~2#Q3i{xA!t!*p~Y5-n{hJvpeN@N*U#&cruiPZtvQe zRkHKfe)fqkPM?2e=AiIul4982Lrd2Soe94#G-)np%7ddpTR2zWUNt4Dn%RUS&-tNX zOytp<xr=)n6!~wT*ix_H!zy<|(~M`qp@;vfZ?zOIeAytxa(epT>1>%LDmRiGCo<>c zI-h8Gw5;hvcknF{#VCWkXpun4E3EY^6_5T?tC`2DDd2d$S|MqH@2@M)RUaPo_X=$4 zpCPubf%o0D>lFuHG4p@^czw$99PtUfbL=l|ylwb*-HY8fa+!Yonz;Dqv*n_{+w9Cs zEM$cnp3ZDPRB@%WLdA38Hn*2zAFmnBnfj)=G0^SM>;o@YWQ69tOt<`dV!^xmW80SV zToPku5?eZ9dRmKxMy**~<HbN01|InW?SfM=^IzOe5mS7`<P*V`ayj|y9j2$O3O+K+ z_69$i8Gh(SwTa7Fe~SkvYCSF4r$4-4QP6T&u+K^%Uzq2g(h|o#zix-g7CFph%bT&t zQl@FqhUe;i#(A6_*2<^mrdw>~{Z+ElXwR$#S0p{vA3cebm-}*AP*LIBqRXD$vrnEA z*WobL*tX?Ug7dD7i5DMr9Xjs7_(I9IDaZQOELUchd(+Y_Zm}7fZm4K_`Du$XGuw>H zDE6cMR)!~Bcgilmb=I2E>gfG@SJKLYS(6w}mvl&c<@CCJU-4C0+){}L6J|5)6mJ%7 zDCcU>ohNE;)STK<F|qs6&H7K1j4p{wzEN*edw!5h=E943o2M7InlEX+^zQLwwIye^ z1-_fSS-I_P@b;`=a~aQDriDSZy19xQc1ygm$q?;*l6WIYqBHFHs@GG_vK(h>?~!vb zwV24hH>*56BJ*%j>cLCD8y94lJe+!?a2-?Cs>z?WyRdZBoj>OnY$x#Hor15<<-TU| z1g9{SCUKrw6OQ|LoR0gL&Fg3I!RV#MfjeppuEB?X8)R<ka<0@Wv0v=t79ncl-J$w< z(Z#HFe@-!{Yp=*(^|n^6nU(#R@BXc}3FS@q&*)|S{g$`z@A~K!<_U{JDwxA`SADs9 zzv_JSm#S<3BQ^8?Z~uM#-3KGK%!bf=*M4+_71)Ug9dE08yjeYbo=jtXS?~#ob8hxo zN=F*PdmiY9DCJybRpjM*#iAs${xGi`tGIE|j50<`5w9s82`d`2H?eW<m=GFp;_ZZ= zM~tPS*YSMadG$UQ%VR&~xij=RJ{)@Kqgc#)IX_kZTxR#JhAaJR!(>(&aV_-F$X%|O z{^o72^1<M~*xRq|e!l4x?68P^w(23vn;lPev_H(ce><-H`I|L$um4%^|DW>VepZ0O z!pW00*1uDGE?RQrut5XYwcGF3%qjX{D$o~SdU1dK1<%U2>@#B4H7#K@UoN4OV?D8P zZcCiwfxM>J7|AOohhl9c*US=L<H$LMOHPO7w8~1`*?LI=Ua?Uk%crI`URYd_@q0(p zeH-?!CjLL2`|D?LRWOCGwEb{0V8tf8xXBtHzcH-N{jp$fRhxVNbCu|uf6VrlO;<_( z!q2F<`HR?F#ofWXw(^$T`SRq%u@~JJ&RS`RHSXJaMOSs+j0fAKb8nR>`Ye4tVXYw7 z{*;hkXIi5{`@`x(_b2^mxyLG)U-9H^^%ifN^Lh%Wz2tTa?p&lJ`RY}j3zOO`sq4}| zzud~WJ^8d|@zEIB1s`=cs-9cu#_FIIGB;K~bz8{<lNG1dC@XulAGFh4(0@dGR?N%r zchOnAY<Iar*<TmvFG}U8`x319sZ)PC>;4tVpC@12&e$D%>M7H9+Y^Dlzxd1!^V_fV z{kYPU@l2hi;LD2b8J`3<3as5Md)<HM<t3j#|GK&`e$V^$_ixw>g{<AUcDuBO>i-XV zmYwC70^cSaT9=X{A<S8O<wc@YqJ-R;T$4nBC5N?2k6tKv<+@xluFN3eHM9HUL(3Fd zG}D*<`dyc%9<YJo<>LS&CG(p_Po^l&N)$4<T)zKv-2AfqnuCcKJem~4mNN@8Maoa^ zvfvYQcUUDVsB6%$SC*T(;ezim&&Bf3gO@$9(d&A$;9=Q{Q$M_RrfgOAk}1$-$t);6 z|2JXb^sjr;zU^ZFKdF1)@2TtA1G0rxjqm(BHvhxP|BvE-#;g@Tt+VTyywj#jpR?Ap zZ+o=JPtk8%d*IKegc_Y?vR#)t(?3l!+n_u*XYGR$zb<u`^R-=<^?J^%TCFnUQ@8#0 z1yTDR34Bgn=lE9r>nE9WsTwSk!=Bj$a88TtR9o^%V|7u&oPgQW*Tt~$ZCiFVoiB^c zSU)FD{%Gbufz>ibU#2M6O~_nzjL(bhg5#p|Mn9a}O(a;IFIBp51Ux>p)$W|(o!N3# z211<ERBwH`^xmrGb$^=q{jXU!Z&;_9?|(L_`_A%(@ilX`Q!e?kEv*h)Hn%c#LVIpE z-(-dTrW3hbms(X_FkAfN)023~XE&c~Yd>^ay;1w=z9%*Ngw{LHUNrmW&glI4cT4O4 z`OPYfxp*M^>*_s+cxK*J`(ga#{@dRTyUs4UyU6Z>pz!xnsqi4>c^_`ClDA2C;r+n* zdgR@yE9`&W+LdPa)uHS(KTpXVPSvF+7wbPRpYzf0?Yh0EQ_VkI=dI^<Xn%cgrC6$c z^zD0A4pX)><fxueyL!t`rv2c}qGi|a`JPTnS#DFkdj9Gs6CKv(Ro?#*cHoDB!aA1R z$Dt;=-rJ6Uo7-k#oA<P+ZprcJ-)}TBZpW59zPF4+(o*xrhpEe772N0&Z}Z8|Fm^4S zcTBgyFsDh6TXxam548_A<OS~VnVWdNe~F2E_*czBpMdx;A}^;LzyD|UmkakUvfq)m zn#f~!W7*r_u=KdE*#RB7@h`otK6Cx{*^_%gH+e3nW!3V|e@EhLSNnbbpYZK?{I9Mb zo6p`f*6=$TP#VHvn=U8LrdKBv+TT~{e#|vXI!tWMG4Wm3-&t|q_j6`gHRXOrdc;vf z{hQ%yxom4Zrv%v6Snm`{f8V<8b5?x#;xD`TJ=t1?G`8n*9y>Rg$xds6+#ikUUtYV1 zH<lX4-?)}K^TuVZ%ZVqnf;scmo`_8_t_}1JF@Mo&%e2Hn(lLDfx8LGSAM<{4?V0Yx z{yr&P$7uOo{hRCF+H6}M8@1_$lyzy!fw=Z9TY?#6%j$y;O>kCtar^z}4_#Ab**P+* zLh>zJc&s+v*?9N0{G^Nd)+x#d)lMtFTJq)hnfZ0W^Jmsy`?<~hPfHwoZQ{4|_}^+y ztTtOXx5ySs-AzrKX3#ZRB|dTQq`sIlN8BWj%zd`X<KWakr^*a=?dy9e(y*@W<Q5Od zYyF2h(|*{o?Uc)CQcat`e4p9+Xr9C)S`PVdN>=#)QYiki{K18b+CLQ3DmU4kd;j2! z8B5E$+wHj(zbxnb@t^8Q6VlyY|33MS`oh^YUX~$ynm$zQ4AnW7@?Udtxu|IWZ9C2G zdw0BIOSNAwk~?3s+~dxL?TmRpI2+O?f4|9hL+?|g^wJy|3EnnQx0f^J{bJ_Mo4MJV zsX%L6<;j3K>x)WRr8{3b`I#&VUKuQ55s~maj$!BefCUpwcIH`Rc(^nh-i|!7H+3D~ ztLGIv?cD{mqT_v%_RQ5}{`z45X49OR+y}#F2r4MNy3<`Ql)l2~WB+unla?P|r;F+7 zi<y65Vvm~m%}l0ny~E*+Ken!5GYL7S^p4NZ-8F9hi>Yd&>p9&{=>9r7+3)0oXS#MT zmqsjRX1tp4<@o>i;j>NzP3X#C-<IS&T~9^6hDqm1&ZB$zRt8~{?y0f4GfJMZ{~E|# zbShv=)lAEnQwd@(W(62TOcc|Les|%p;IE`#Y;*Ss1hyWO+R4Jd|L%q7g6szsxwZIz zzW%57)TczX-T(0H0%no<A}1m_7WMN^w=h~Po?s;4Tee5I;X&}L7k4$&HTuPMCr+*^ z`|TlqA**5H9WU+G{A^2kGt_^r=F)B2cjcB>`@I^6@^fp2-?#?6X*h7}z^+N|G4oeU ze#G)*R%X(jUkOis&fD--qvOL0h5a8+tP6g?u$;e<vH7ZIqs{f%tL;uaGzniSEmYVl zqAm1mn~m;PS<iUU5{;$=PQe8q%N%@{)qXJhwC&aH!_n6i9;Sug{PtwQi|B$-=GcPh zo{}f2t<4wr<qPXcwm$xMLNwuJkno2L<BQwsr}6Myo0lTO-<UMnPb}}2NdaHvOunNW zC#~{aCn?+Aw0o%TFpc-5ex%s<<cf@qJ0kCXuipRn!_n>k&n*AEaq@!_<=WM(d3O%% z{vW!#JkjFbv1QKF8&7a7voU&nL3%e!TV}yR`SPAai3c=}tL=EPd6S7`^{s1H&b~0_ zV_M_1d}iu3VNMG-))%i=GFDWoGaSl1V4+bam(Z5n>)7qMTu0{D(Vjg{EgP7Q%Dph* z{Lm%1T(#zSVHU$nZpq$t>*v`QG95ki&?NuP^y@4QonH6!eKb}Z2(X-=eZZu$ao&5! z)y?bgUM#w>_42Z0r}%KeMAZ!skC;^*GYn9Z+8E_v)-~m3$teegojXh)z0IG>9MX65 zYm@zMyG!Oj_%5lQyTrWL=)vLEscLVP=bFkzro}vIS?2nn#FBZR&^2Ehzf7lVihk!- zHk{WGFD&<(w9|*D*^hm*Y^(dThFAUjx*X$bCHyCAFj;**;IN2I@DZQD4dFA*`WdU& zi8A>A^I`G4weG_F)ayrgO}<xfPLuiEy~#J6*1eu)<GEvf_alo}6;<jfr5hJ-*;%kb zTdjRt>XYDkw{0Idn|C#Ph;83ep%Rw)>sHOV_qUe&I`BnqjQljIC9~<2u!Cq&%<JR( zmNsxZgg0|fP^ynoG2WqaFT^mlY~haySC3my==yck$?oyNCmad2D$#q4qH0bE&3}?n ztniMxStPA`%O^HYseZ5I;JJKJmOHdQg(pr{Tfwt$3wNmsA4hF#+2*?&j77EU?`32~ zJZ4aTpyVkR`Kdkn8%ylr7pDz64;+=R@x8uXr}@=HGjI8o#|2Jq=FKsCZ?(JbVeW_B zfy~~kq|IJ@zjt4+c^`jsLTKCOj{6&qD_xqjVlU6+$%nP~{+lFe{k^u(YMY?waWA%< zCad$)E*C93^`byc)GRNh)G@bT_|1e~b&Yiv+S0mh{e@cgl8@dzd%0lJO6zv(`Ew0_ zG$z?dgsk9WbFez{<7R-RF<aJ$>;MtJH6brK1RU5ngp;Cg_e{BZZ>MjJ?9}5Aytci# zE--=5Vg4#6#n8zIV`l!jeDZ(&w|mK+v!8ff{%!R6y6Qin6;7EZY>PY-dTj5eZGJc{ zTdz`dkL*1L{U%#$sdPh;G+Sfc3mFLwZjK@WQcDB(pYpLgUw!Ul#~G~!>18WSDxQh2 z>-+Thcxr{qhP@Jci(V{y99C9*t6RRoYumx+anF<)oDz(>1J(wlr8jOd70j?W^=`?d zJKyWAD{lU1_nfG3_pQg%H3u)h*`qb($lII0AO2R|m&#Bc9oz6ex2>4n`_q%j&8=5C zkFWCC{lI5K!;cd$i{I9j-`jO6y{lDqj=DwFqtr=xd#{B^zWJcUo%-<Lv!b&(VLt^q z;$Eg`>$jhmxN!aP>=gO<$7Y>deymw{zxKLcR@1eR;PqSyoihraD5!5gX|$2)-mVAx z!^(8MPG!vKd1@uYAN5WrWAjf=uj^;5`D*r<y<K>4?u7L1PiH*8_4(k!i-`|!wC(ks z{N3dO-zh%TZr?fk`6v8XXHz}hr*g?!$K}2c+ruyR#z@tvEnm|6mTz9&r7u5Oub=Kx zvFGM~qx^L8Jw0oi11A)g=Bxde{Bh^xu039Chi+SKTzQ~)qN)|obDtoUL>~Jsr}!Uw z$|$Zmt;t+@Iz_7fp-bMYjF=yh`CpdL)OqtuJW*$H-?#8wgNaL4|6e;_`+(1{*gqz= zzb{Ssd*Z6S0i*PysUotm>FLM6_Z8fJeWH2#C+n}W3QM1F(a!JO$nfF9$BElRT(4hy zbZ&pKh23wtga5B^hM(JgNthw)-rN7TX3J#zizYE-GUq0o`LTNLWs@!Hyi)1wcuQ^_ zFw4*T(kK`qBKU)K?}X0T3C!Xe(?6+mB>6e4-%(&C{O2a;G@i|`9ePTv6BTpLsp@y` z;M)K5yS@5mUP;LqQGKysg$3!0f{XHg1o=Hz={c$C{#j8momb{cba>Md&NVTPMz=YN zI<llBFD_pF!Rx^FKz5!8*LNM&>-uHq{k?X&-TeQ%<tFE(_B64tl{qu{+%@IK`#c|= zn@{`PS@Q3p{_C~%r-E%fObnWo7AQTN)G+aEYx$xNocE?}|B_-k)q7UA=f)4bje><= z6n?Q<e4OGN^UCaJv0;C~>DMYR?l?YP!zvs1Nvvl-=g|$lZ`HW+{~q>N?U@{2$sEo( z_nJbLYJ=VXi`EZkdhqc+eB!##$c2xUE2u~)X3H5Pe?`3uFH$!9<}aW3dN0qZw<_n# zRPAkZm%Qu{zAV0uBPHG6sx$wW;jixhzw;H+!&e-+rTXPc_?vA{S6_)K=G4xN4(HKH zsEW97owxqWv3v`M6Ax4hFFxkc=AXFg42$(<#}hn!1s}G>wB|d6A6XL}yy*S`kL`&` z%&glN&gh@>%ID~eyB~~iv@Xi+{_^|IyNchB>v`H;oh!Pvp5LfU_YQBep5}DaE$G}S zv)p3A1&eh5JKaCce}0OV4THInnR?6#hF}MSP-C@g=R@~=ONxzptZIF)C3u>G^Y*W6 z`^4rR=3Mq?xhzBIx2Yx1pWpAj81TK+|4PsnMIV9xEr$#9IOqMkG3#fU+>O@F9@`() zMn{@XF%nxJ^zoLOR)JK`+()^^+4~rI-J$|qi&^i7=Ds_B?OXVdXKSm@eYjiK_Qg<J zPM-JlHp@GW`;X1O;y0J`^X%VsKm8g$NEpt(^u=2y=*xoXhn8(M$&T*%C~{<~%DI9V z@p}f6(alDBd<_R*8=RcBt<2SmSKlw9_->QWiWe(4PnMS3lf3Qx!F4-rA8bB+J@2lS z&G%Tfd+Pms@Be?6ezLpkg5z=XKZb=CiDvU-TkkxVNjr3*qxH$#G(p47f6tjWUa{hF znHhOjtiUL$%`SQ3!6Nm-^*l=iwx@>9d7E@T=!f0+XJK1Tt}T|6mEAjgUCWW{DF^TE zOMPP6eB$t)sk>YQN)G6HggLmo-%!$?I;DC0vZD`lCa3egnPMB<v?iVXP1^ey%T$wz z2PaK1__#OLg<;vu-{x;i=U#8zrMDxqS$yWgmOYBoqZQYj`#Gm5N7W>8YV5k3tv9%@ zvwTZhoAc&W6&LS=JIh?t-#uFS{;_mT-!y-#>kA&dH7RL`(M?_G+1;Xi&uC@soV(92 z<VBR7cGZv6WjklC%XB>DQHgAtNQK6>H3BD&NJegXY{PX*Z#whyud}c7>;L1wZ(sB0 zS#*1U-B;<A)3R-+-JA97hVv(u<fZSVWo%c-{C0^yaKmoXViT)HbJj&|-aMsqbFSEh z1CiG|*PULo$u?qktW4qM_XZB{_+6v*QaaO|7IP{#&%buokLj&{^_r`D9|fx4_<wUJ zyGicqDY{=T2pc`tOg}l}leD<eb~a0g8o#+q&d%gIe?Xi4*N5Kro4d-tuMGdQ+O9#= zfA<OX$+k0m>t{qS^{bdAm#Q^;n@y}*icR&3UZ(U(8-A$o>zz_GCp&z}+`04X*}u$~ zdu83M)i2+LYKuPoc{2Y0(_)j!|EEUP_%7aj_`|+ZsY_2k-Ku=J>FfHB$0TIttad!3 zbF)owHrJOl)2UuEc8=HB%M-Mx&WKK~v#aRYAkiB2uuHFG_nIuNIal|W94t>;{czdA zrOB*pdrV5Ux8-&`j-L17V1Lc2v>?5?=97ec(|#`QH*uI;!ua%3@0Ls7ejJjxf9m1Q zRvv-LS9SG@-0Tu2zCAg8{=<)p^X2U-e=k0~`~TDQtzBA)ht+yb3m-1GslKNwzE$kU zuIulYtS(J3QrK$j@VBZ@QMTb{?3RmxqFaL7+rKPKmrYZ3l1&chTX)qle7X4UiRl@g z*83j@eQDYK!s~!n`3K{3{5v)+o3y!r=lvsP^SO!Je3l!B-Fp`NoZ-sxl5;^)l2MkP zLd)h_^FDI6Z*CLj546fXkR^0V>sEC5+5Dd;LQcDf&p6foZ`nQPoQl`4Qw%bd@2gDK z%X3-Oy1wyn&F$%59jgv}FHy<ddG+Rt%Qc54p8vME=I!L*+`=awP2w?+kA};!+eK*z zZ>X-xe^CB@Z~czXXD+v=@B1mm&OUd?Ve_Y=TT7z9YOb}dU3@9nulDn9J)v(wo6;|d zGd%opwD04U#@&(=J!?|$?wr@*x%8Lm=`*X$trhroZPK;-)u^l+GC{jJ`HlO&PnVtV zD;Gz+t#n$*-|hB&w@zhN@aHdQ)K>p__;#)FdFGaV!r#2&3*3|!M!L=UGbMKk|AIAN zgET&u_3)P4^6Z(yBqVleAs>siRn>=k`f-20|G)kJU)p{*lL_I^ic<3#1HR_mE%?7b zR*gaGc9dzBQtpS4ZM_E$tD9Z3l1X2lm%dOjfm2F?EwWARqTz}~$^Vw*Y!}#~7JEkU zOV%7y&X><v<Jb-{@#vg+@b=X558KUW-;{Z2Gf|ya&&~hy;*Iii#mZOq<tY1?YN*ZL z6f}FE?3oigA96igv{6m;)xx_C?|wvl+wqE5Dj=n)WQApnv+}o#i>zFZX!RW~^`4}6 zJpFxr(T^{8<(u4(ABZo#I%#FziPh`En7E_WJkPVvyQuy>?eDgRev!GqI}&zZtUcNG z^R{5h)hzX}r*o9VLf2QXy`*{Z<TdFZCyGBTSXZ<{$7ap$cO6!7pIjw%T?6msto%I1 zwOU~R>5$2s58h5-d3`b~tRwi{0r5<BWA?`{I(}VPx4ih=sS|UTY+W6ss-5}jR!CHe ziF~v%|J@69eU(r27ZscgHjVvm+Hk;|>EdFGBM;;&WhO`{d`|Pdw556FdCk|)yj`wW zt>jQTu=#LkKi`z6B9ATRfB&W$bhV6Y_pP{d`#Gefb+xW#ZS{O*oI5vkVY{7V$!FFJ zHlBtuuJZ~4&m9o2_*}B|u={s;nS1|VzP`g(A#{1u+0Cosg_XT+-+ETmtzGp(VxIHz zOYCKf?S<#ov@c@cbIH<RX3pkh0jpD%_D-JKR;j|yo7EWPL}a|LhhNgt+;OYo(t%Fj zkoxd#tM<;;vz<G!OpJf`O4d^izK!gT@zGo3rSEtiUN(ngxxLJyBkVm(w%mTxQ(E`t z$fh^vijUN>-#62VE#;p7;Yj(X<9tpf4m;j_{<B*>-Tgkx2lwXMseiPs85bDs_vHWj zC*qXy_F2ZWuN9fBTbbZw;un0LKdf#yi&fZO?ziv6&bM#2-LY*^6U)wJ&)e%IOuy&1 zua>dA^yclCq!UY$8rJn(-mqZiZ$Bn(OEyVMZ#nkI60i0t-ndzP;i&GbJd3M0WTsT@ z_6a+Ys~!_wKJ9i<tK`3H2TLZ0F}*NUxRvO_nt0Db&7^L6b@R=Msu4OeZ}zr2HE%h{ zdz<Cbm6jgs+6$X3JW6M^Z>tI2ylZoD#EX;pHBU~kCrG4Bx!GKB>M{xK}{;nki@A zI<lQvld{JB^2xCM&bv?P_xVgw(R>(D_41&^-B5L%Gv`tnboMB1YCYUn6ymi!nR})E zYXOFvVeS#8rbaW$-aJWWi`eGAc~RP?$)74#cQI=E>uLD?a0oWrvDy6&->i<wftGL8 z_`Oo2*mBhONgBu;XgGXL=EFI;nj0bwrHdB+y-_FgK-WD+<ocQ`g3+4~GDSuE#!iXx zn`S#lJ)eED)?SycwneuitzTF&PVl>%SD^GJS15ln>+CmHHmlc)ZYwg*bo}OHaWy}o zd(WODHU$SJt-W_aZ{Mwb?XJGk;TvYxOfKJO%DZLfce{TxKK@wwf#>eCz}vT8tz}=4 zbw_NiOtb&N>FG%hI@XNkPl{%&y&N8S@?>J*)hRA|jpd(mo0hH(x~=|Vj>a{YWxu+G z7&S`dWJ+>MUAOx#w%b;6WVQ2;mW?8gpT0HuT>j3ezrFGFTdUjqGjH@TUM~8e_ci=& z-CZ{xl__hrKjakOnpU>|%lt<H{trXKPv}pt@?FznStc~?+bfp-Z~2={j&6^eVe`z^ z@PzWqj)3XMUp7bh$o-ppGW=}pT}}tS{EVV&s{1y3_`kU|afZ{E8*hDA-R^Vus9(L= zFpX*Yl4gY;k|icS>8sPOT-%l@k;S$nGb?CYWsCElte#6Dd_|&8?fLE!lN>Lw+%`Du za>IcuW=l%|pH%DI@E)^pCuSYThr-(xJ(C5Ma+o#ld}`I7^U(gnGO@cYPRq7Q9o+Ky zx^6;(j<Dy}rCyKK<r*3duNytTFqL`6Tn3Aq-^_I6OP$o?r)cdDvUaW6xTk5dq^)D| z;q@<f?3Ju+nIcucpy!{koA}D=jn3=BOsA^b8b!@-TdEjgwR~CD6%$A0>OWlT6P#Jf zg@Vh1n&#wbS-LH6F_v((cRa_+Q5r52yO96;)9rE26AErd-mK-l(JS3>$*<(5QRv=~ z*@;_jyvp>_dS9~Sg;kNq`nPg|lU;U8XHHh=()`C9FstN1V_Sn`m&3x;)|Ap2Hr{Ie zKRsLisNUwwZ#s0!J>a#a$dT&{-+$q4OMM{fsdV_jj8#*n=D%t=yYkAUj7O)m*S`t5 zVXoo4`-K0N7c)FOZg<ssp7ptGmA}K($wW+9cczed2utEL?Woyn6g}3}@y=6RnP;{2 zQ%Adf!5{vUO+j0vI=W|tKU80<$?N-f%js257v28C7+bSo(kK3Tg>M(mpAp#cDE!OO z%`s<VpCnXBT3Q=_3ZJ#(sYAQ$k3UY@k)N^~uCxlD-y*8c5Pm84CMUz!9ozm-pP8_v z^0(Z+_V}8RlZ?-<G&{cC6S_b#Eoi~ROBKl}5k1k}R~4Douo@~`?0m?0i2Y68rml(? zT|wNd^p<((6^pE#)WTt#zBpk0{|Pz_Drv3HHa|UOcT8^A-49=jvK!vMog*{7LzXYK zI8^+%s_LbHu<eJZxU5)G`JY$rrdD6Xvyyo>oZ((79BE%>umv`s<D4H>`r$m|><b!m zPINO|Y<d~FQ}+?etwQ@BEmwD~W^3QeI{l5(i$1rolClq;?poohFY?c+t@u=xvQ~ko z|Jq%l?;AIMW?$p9`(Ep+O@a-6C8>L>Z%n!xsusHT@P%pl0%gClxt3n`63<y2E98={ zyHjJOy!t}Ht45vCmqKh$uUdNeap1MC*(`nio~er-)rOW;p1Y!3`AXAT{+6m9JG=Ap zkIj1e)}{ruT1R%B;WAJ;k^OS>VO3Gqf}-d7`YS6f!Z%!NwT|4I6t`*eT8%E*O}{!T zG$j|CPI<qsZR&*1to5IyEsRo+TAQgz9$Mz9$)3XbV@byzZ!e>^c5C-c_hkk@LJdn~ zU}pjB&VJZ3HU8=>r#_$9y27iy+XVGOr<aPBy=N1jGSx>TU3T3?{U0|{riORC*zr|* zo2RDdBJc23mVdhMOnN9}zomKZg#eRHo(XGC1#H@Kgg3yF_2D|-#IE4H#gQD_b|=fd zoZ|R2v`W@RcFCn5TlP;e5aritFEF03E^$WSW%bX)XKYH(o@aH<t4*6Oyz55YTe)p@ zQ=Doqg!{y5M_!%yi6_wcP*~Jgez|#Tcbq&G%=i28Z@ztZFBr?5W=y&Nr0?kB&DG)G zS{*X}y|UzI2wD{$esbF_y~CY}2`oRZ9^Ae4R`e%@rIX*e-CkfQk^cGhzQ8j6S62^x z6_OB875h`XPwdpRN#7rDIuzP4SKyGqeZJ$lywNq*az8`TYd3a@rJRoYxbUn(6suLt z{<DAc^95VxsVo<a^i#K6=l9^@s={~L?LVKM&R~e2YjN<!l9FG1Oh@jf**30=JQ{q1 zt9sj^!#3yt+%)IculZk{8S=2n?zK-_s_yomp_^W<iCrslJL|@=iHqlEehuf`$^Wk5 zUBdISOtosW5;iGyJIR7Oe=}yWNvN!{@p<$s@<Ya&QsW{<$w*~)jh>iiQ>1qt<I0<U z@y1H^l#P$Mdx{nwKD6}BOqB~;ZyE+oE15K*@PbFAv4Ysw6KQ)Z?kO_MO>VjKZQ<v( z`6gd42L`oY&s!wU&Y-^KnMGxRcSQ7osY|!~6E@#!@?c4#&dL`-;-5rVmfJsk(-*kz zfbx#$J<1z1C$_IHjS+r#YpGU^!dCM+ZxxI#Nm@6k`_^i17CtQZfV=E*ywUbM0fxuZ z4|%gK+9Ddf{_d1ziYkk01lU6Eg@*ln^3<eJF;ZNbi7!j?&EBn7elC3fpfyhB&*n>8 z?3Tnzv`>yU=hy#xHNK#`!N^z3qV)DzS>~Ya6Zbz-DHRv~>D7E`zvRy>BbEM3vs1Ds zDOOAktv-El*Olb$iih}0PHC=t`{YH`ZKpSxY{!=Fe01S!@Sm>dk8<Sxhi(%*dB;m# zV7ka@U)x*#x4!Fbax!R+FnQs<b^oMI8NL-N#-Y-YWkPytRwuXYJN1eyI!-4+V{zFM z?U>uVo~K&&8kp65KX&qE`Q(bDdZ`n`*94>=PrrX;%l_nzs|>?R!)uJyxBonIQNyIq zN+Tk`@X9&eoP@U}h5@@bzMAsFIWjjbongz38o?Gh?eit8R#;@tR#ZR5b;g~?__b*G zwzpHdt_NiG{#i9s`_Ta(POUt*i+wR%j+ct>|GoF{TX1~0&#}{v-JRZQa+k`~<~FvU zn=<2zScc-7A5X%Wr^*{GdvovjlFJFMvzmi_-M^e*fArPbUoP(7>iX&(U%wQ$^VfYe zTeZ$_j<{6%v$>qpId(iK2xNcgxqQL7(qrCykHweX{d6Ko%%9)-#f8R-Q$J2lpZ8R= z`MGD&g0+1NC(5p^WnT3Cd~E3L!qeV=Zx?#VUjMeJ%X_0I>$)AY*UYYHy%Mt2uZ}mz zLDT#3vof#KOKUpW*S^x8EP49y0s+|@k!eiowe{03|6ZlLpV?1sfiC}7*^N8v-ripS z;ox-Z5c||=vr<FiXBwQ`vL$-qF1K$l7M`-IoOYD4VtxNf?You}7=)R;qBg1dIy@~( zdfU?SDWGeCcumuRDLs5aekQ6<&Do|zN*9^tpSqwUr<#7lOHEn*igI@8w@(3!!vDRB z=T1~9UF5SXpyB&PLE+wc6)J~qUi0mBowjA+w(W-&?J+gv4Ez%H?FB<vi~sxk&kYa8 z8!P^M&tD#2YgrU>`%|G?c5r&_bQ#W&N3&RZWUuBm_b<9MKVtfhg$DmZa^==KxBHq- zFp*ew$}DqdKcD%#JC-*8pTD##f4X84gFw2Wp4IEpnC*8b9_n#ah^f-AQj326l6lL^ zck!!po`^aqx<22%E71PzrUN><dw!N3F|^lw&c9&R4c(-JTD6C7cN#lonwNHn)v{E- z`tV}v<HIk_XJ4KADQi~w(k>VKqN;ydn{PfpZlQCpr8r}Ca_RjIT=UHtKh=J1yyBrA zBOrP@N6vW-TU^N7HMuok|9yUS;Lnkl64L^{*|V-SoaB&he!f@ws&C!VRcEiPdYSa> zz*Psg=JRD~rn|Pq2-I=c^VPQQ*j#r&g6Hy0y9dcCOP2T4g%!KU-O8)IS@3C(>D<=d z<IVk-OZ%4`>M36Rxu9V7*)6=EKCZVveCmH?T;He5hmY^CRJYNse_5{4m^f=j>%9<< z;_SQz=b5LAr2j7n)c1RIO}9bofuC1+YUn-B5L;={AD?q}-d^|hjzOuXZSRGP+qFd| zWKFo4e5tm|`^dST&WX%Zn~z1_n{z!iJMN*TY`N5|mges}d`$Z9Tw3>QmGjaT&Hfs1 z`JkJYFEpkv|FU`VhYS6m92n;YbZ9XzObXx8_WJUHQ*W$!q9nAOub%wh<h|w1Z>L}H zJ1tfQ#cA?BKdNl`MCraH`yrEtH9ocsw^kb#u6i|f{>k0~U;X*bUvG;sY<b%Ls3S<m z{3mbd%8L_Mm*#(8@ZX2S=)+C72}e1bYJPS%|63{l-m_+L(CUm6H#R8DVdPoyaAToa zf2f*?*x6;@UhaPXeB;68akZ_SpY~hs`T707!|c^3JNE?tKlHAnbzj-JC+h6~g0|Z< z+ZQVcHm<+A$4*%7t7p`UA7}aJG2J}<NLTLucE#DTCxz#K@+doW=&G(ouzGEl;?8cr zhYnjOO}xplu17TG7N>mbrn9Msy#CI=`RrTYrdi?Jw`MV33lY1r&*tU#GmIy;F&O=M zEw<vMoL`Ai<*yIUr%b})MBW}QwbXvBa&G_S^Zo+wr>4YgJUw*|!v(GVlTZ1l1|ICu z3fqzy@nF@Vs_3bOydlAB3lcnMzdexUkgHI2S;%R_iA=YHYW5Wod%ovSKfOwcNo1Ny z!_CRwLMNT?xdpTTSke@-=3Z;~J*gQ!>!$emhF#ov(LY_tNiinpD!Z(l(b`QD11m12 z9A)aC6!-V)nrJ`P&G{x%C$aJQz4SBG`tsm%b^HB4Z~giB-(O`ApZ6?vtM|{lk0!eq z?ARtymXNhPjLFsa-)tUL@5E>C@}5prc+mT9s<Y1A#M4TtrN)*<xyN4CC<!Dym|8G# zanR05b|T%!4k)IlzwnH$OHSuzuWbuUDPef%Ua?}?69)c2`*aSmY(K&=L21?YN4hNa z3*9SY1>3@ed5jKus(y{y@VhMWUWS{;+)Y0W8de|8Z7{1lnaZlA|3%(bFpi1o_E%-s z%vavql3poH+|}@$WnqbPoFd1?hu2y;_kQZV%eJ9Gxk&HRhLqOX%<U&En3q}xUB0(! z&b7d0#R?XZ#Z3niq<#nZoqlc~k@)mg>ElS9g$~PZxl}Xs`wHcLf5F(#^Y8QP_T&4$ zy^;FUd^$Bg?y2|ejG4<z!<q#TSG9;&&FIvcD6moHV*c^zbJDsc-P)EM_TO=5*O9}a zE46a^^p<wr^}6Y}^T89-bqVTxF)P<3UY-4Ek@w|?Gq=B8!W_VLTl3|&L`xT~3BR(X zJ@b~dCVxD!fOpx`$X}c?A4A=Q)@=CFyHwKgQ2!^3$j$p!tq*m3t7jB<GMXX0i0QzB zPgy+{qN@r&T#hi@loKBHcn4R%=i~`&LK(_`t}`0lU$(upN@|n#?74?$_}x9!Bir@d z?2g3D6vGuVx02jmhQv;2x*;gJ?{W4CiNz^DPK#CN&%G_+_jigW@8J)r;)Yfm<)n?0 zlCy7p`p%$YH1}?LYLM*=q2pH<T<ndy`S#Bb<M_x~UX0?$#NPQSUU*>lqldYpT5@yj zE3vty2XBi<PF$YrW|5hH%JaF;B;M*fVz;~lH$5#pSeLuu)2psUiFKDg7N1_Z`qFI6 zLlv&hmGV0*weR|A?fl?j8RZtJRLm6j;=uC-69vOI{rSXZYOPxqFzs}r^N*dk7VvHI zN?yJ|#PE~Oi`WGf%lW)ApG>_YcIeKYo4W5k%#-HHM(q}LC}A_s54?KL_v!jcf#*W& zHu0$ERTq?Nyj}RBE&ciG{ym==cW>R(-L`3!cJASWN}IIh=2p+MonCkI@C$_xH|FL) zTfJHGm6(+C>ejUyCABI>UzN|!%4rgq%d+12T3T7$o!Xsmj5KDv$Q3V}v|_)`TG=Tx zHvE!hyC0)jx7Mxo>Nk;PcUp`JJ);}ke#yQ6x_h_douVzDcXM9)_vLQ6`pOl&3)|Kn z<#@W}z{~BQzMgYBncVtKd&|-{FDx=I{qwQ@UU;lc+H-Api~IcUQl?vrg&TZN`8F$x zHofAA-e7ZO>&q;s@Q0uFif!*KuM^t)zprOU#}vo-nH|p2(I0OMUo5|V{Q}pdT?UNm z=acifFMgl5arMpEs8<^tyv!0;&lOv`%JxuZ`-AU%K58tt3U4v}eExj>fp@3&3SJPa zTpAO4>7%w-mi=q*8>dRz=JaVy<r27S`%%ik;9AaeYyCqB1`PWb&SflM`#K}4sBz=r z&j&mYXTQq)a`oiN<+r4^*nBuPU*V^QXTg+B8JY7^o~F-Qc`W?-p;OA~yb^m>U7RpG zb^c`DL!VC7#y@dfcKJ7tPTlFaptm{Or!C#aKeOk_%Z8>2;g;9jmOS5C{j#e5+PRdc zT#@$MgEn8iTlsYAk;dmir5l(R$XLF(Vp3))-t=7Wu*PMN@aW3RM;Wpb3)FL-&aL>} zx`DYo(|3Q}LdKrj-#3*Nbo?JPO*-ky=ejF&hQ+TX>$<BZ>9wqW^JG=ih0GI)6`UW> z@CEHYT`BO^Ws4+7hk`$!?7I}M3s1e@T>AZ`di!JBpseMw(@t>wh*Q}pf2TMg;nFLH zcIk`4FHb+%5qhfA^wjG_yKA9$?s+`yyzTk?!WD%kk?4&+I~HzKno?MLM(vUX*RnsW zcKc;Nxv=@uvgO+YUTHm7nV@UZVeH_t{%o}5Ww|hG?b*FLwT7<WJAQu@c%XiH%BI^h z<d1y%FwZ8pe(ClmCX;hB*1cH1{)3I{cV^G<dslW=t(>>4qH^m$Sr%V;$?yBN6u#Vk zs!r%WXQ1%ZSGO1GKM}FB5C8PC<-+SjfpRNmC}<z9Vl1dT)9_AZX6Jz|%bPSla3yo| zoq8F(mG!*wRmBIkZ<Oxa^t^t><LaBS$-?R0uT>hm4tTt}%UHMWPI*;E^{!XZLSIU6 zeh68lcJ@Gg?bQRSbB%tQONqu!mtBxxHL;QJfS*axk7>J#zi+#;@ZO0hVh8O1&aeNO zHDUdQ)bzmc#UcN{To1W)QB#;f`<7d8w`#yb7TFD}(_}fSPP{nhn|$u}5fcVE&Y7ZJ z-+#+IdA;{t@}UBS2yNDk>U>F?<7;jFlGqz~c5W4DzP7=8icEsn@}#JXpQQ{xGJC9f zG<C9bV@;RIg$v&4jO%XKKKE3Yab9P%_xt($sehdP?8S6ttQJhRs7_JVZ#XJFBkRU8 z?a6c3%ZBe{bvIGZJ^Q-RrQ@ZG(7mZAD!e9zb{eMt*tKkjx=%%zO`hPQr!W4mxE~UB zwBrGf-;|?&);MWIe~Btl_3SO!S@z?F`FnTyvJ0lG#ogFt_urVYT=GHcUQcCf&WSq` zrW9XP%hb=Gd@=f5%|+WAQw~bY?OAMZw&n8l$!Dgt-*HsjaiX84bXkLE*W`_k0v{$> ze=|LL<8#?E2QG2f`uFPleQxdJIIJ#N>$%UG^~C&Q_Lm|v1&lQ})NNuq^3K1yRIK~$ zhk1Uj3#ZkuoaPgH;$hC+n`v2}Vgha?`7aRLyMXI8!-K!Mw<Z)t*87@m;G40f-Q?pv z(I^uu1^&D1|2?)3VTf)oI>~w0(*L20=j@g4cNuc+!kX1K3h|sY|NcBy^z_0VZ^Hjg zHF9~;zH9!fl9w-gOnU+)1E1*^^Tk}8E4+W&*02kg4#+*?F>m)?@>)#v=EnENWpC{) z_k4aVFT6GPYRgUo&A`bM!almHy}j+(Uuk!!LtAVqqp~Q!*v{Z-QHkBJ-<@3?9H(<7 z_sqX5p8MlJo~~qmn;>)K&!Nn`lSk~9^c6D&EPQK~6{qRMGo|Rp_8b4|r@Q)}E1O|o zwny~G)W?^Fk4-(SFSb%!;73vSFD~&nKVJM1ZCet)tx~ZyQ+Y#Nwre6|c9=x*4c>y~ zJUyn}$A8G~*gRKbic8ys9{~p}o~^CFxoq3!^>U3i?7r3}1?3qxCtcs+)W>bolyp4M z<)B2J+KV;@OP0%?GkNk(DYO0Qv-}Y{<6M6AB!L|}Eff>go0#Lv1kTl*{}HpSBqh*V z(nlld58s}{;eYgZ{jzx{sD5g`)t&z><(f;j>spzfT;Uw1{*$AVePPa(k~>qrnzUb; z@@>;<A&uuUmr8^JR_iB9R#bd%lAW9RwQTpw+^-BQvhFJa`sN6wueQ~;thn9z-aGYp z-M0hZ9U2bS+pTa}Ub$?Mu|;%$kg~qQ((6$Zl)86wAKLh7%Dbo)ZE=NGhx86PS5NZm zung!p{a}*lf|obAg{`bNT}+MCJQ`Z=R}^)8lEm}dLYIH8<bQK@?K5RQm1UpV+?U54 zb3N8KeccAJuex^_w$69%*^_29Y4XfJCA-$lS=nssrp9_l$${gUf3@v&xh|DNo_oQ! z_-Z2ewiWZf$}GN@?mlmd>D%=muKxef-CLz`!8!H9<$F5LCFKi6q~H5U$;???{MF>j zlIViOM3LpSsnNE=a!XRv*T`&GJy*Q#qL6>|2j-Zp9+7|CA;12$Tr%IQwzzZ6=_len zC$H!I64WR;s!&>UsC`4tl)#&M7HmdZ*TS@aey(}pmUl_J{K#98-+aGU6yN8{tlw(H zxkO$=vN+<0gq-1=b^32*?o~fOr1Czsfbq&YjS?2N!^wX<rgk=!zUxz#zb9Gn!}sLc z^LNym-#=TB^z&0?&Kuci&A(0Vzsn8<Z&Q@npEk>mqv|Uk^V>+hTYGo!+4es}?`v#j zuf`L@x33F+{rULwuQ*4H=5vnHr80AmanH~`U!7Y#`^JW^D{a?wTwM8NF4u|ek3R~W z*wIw1u;F6Tma<E^OD}PsT{xRBYFBE)X{N)cj)m8(R#rDGO#J=4=SpM3i<2SZ`{ufD zIXQFU{P4_c>)F;ma&(gsxEhq9pmL+&;Y7*u<=knPJB)o7?ebg|@#OS5=9YO?Z(p~I z@B6N6wJb7IB;bothi>>&k&BZybEYqHxj92(!5zf_Ed{YCNs$Krs;d{5u~-XzyyE}z zU{TAisxRVurh3gw6#h8zyr|x-#moZt4hq<>b2_%_-KAU+U(FW%5|yQASC}{W`pbQM zuxzvDtj@#hRo0k9hI%+X70X>LUUGxsZR`r?mrSdt?7W_Llbz50oAgbuXS(G-_)YfB z{F8M5#nLBhf840~BkT2q<<h}zeEp}68|6Obs<3)4`#mMR=Kj8*a!vlqjVG^dy!7S4 z{v5Z&(wPq*R9iQEI=(I`d5g~NywjKNgv~ji+8%J>lAl-akzla{v#u&goP8j5!(_ur zu8a={L-p%#i1ts~sqo(BGf%w4pX)hgmK$4xzZA~ovYa;6{<h;*{U;L&4a1E-ZRq~9 zi=(N3vZ=wRzPGIBeLnt~s=a&OH@*8W%O6bt6e`X4npd;L+gmNKXX@^pX-`^$PaQh5 z#QE3BESuBro-%*j%|0L9z;mTA=Y&=N*%=rAb|2i~IAPtFqto)Uc9$GTS@cUK@u%$7 zwNKRwRQJ@Ml-gg^x@1;d;p_J^eupnV^Cl>N_S(?OHQATH6dH;#Y;KZhzWDyn85iq0 zZ}qnI#9FfN^O(};Q&IDty+i!5k&ny1(v^FT_-?wmW6_sDm9VhLR)4jd&#WCbRT-K- z60l!(@anW$P78^bTuc!!<FZ*p1-8yAbdBq^HLiR2J9ZgU*uS$g>aK=<I{Ec>`||ke zM+J{RM$h^5{o~TyZawW=aaRvbtGdB={3_$JR|;n?Up+H-UAOMtHC|O$Z!Hy3D){)~ z%ICiS>(pOI-L0@w`YpFk?2XA3^VYZ<3loDTEq<@Gd;Re@CLu-Z&RVWX->}+mTc`B` zgT#VI6Mp~U`?4<YjmzD_h}4^cz5+Y+*F0Llx%TMs!x14-Z%@P=oBt#3knY*zv0EFb z#03^!n?Kq6X-~{W;jh<zGU{L0#g*UQx9)oG!bJ7Gms0+`U}=5c!?60daM*0SXRq{J z)R+%NnOi;Fv}yf|X>GQ*%4{b*)vA3Wr0_Mjyp>^%S@Qj3HuD{BeXGdlKJlQS?4M-m z14-G0IXn){;U$dg|8j0mclffYnETeZ6@RT>XdQNXd4Sc(&q4cc_NF~sR!6JzJo>xx zq0|?tqKnH?@;a;k?|o=j_xWtV4=eqPzdnTTx2pN3xB9#Hx*UmEZR4k>lPBpWIZU*l z&$iyfv(mB5sG+?4z`o7r)OJibz_?v*zUeGk!T6?Ui}zcrZPDcST2{B=?MD8@Esbv~ zDp&ANc{67x^TWJLJGw>v<bIdmyr|V6B<{UA_DR9&PZO;w79L+aTe{qHDa%UpTt3g7 z_ug0dJPN$mEclur{qRr7Mc4dyc_*5i8<JvF%b%(-T=$c!o~E^UZ*{_QsfQsmuEwP^ zys0tlF|q17e9YEuO4l~$k2?c<=N{X@W}Lt|-*$?b#py(og{GOuPEK(M<di*pboIj{ z2MsniWk<dIqukAMOHkyzNc}|b`v)&DCZ(w7@=4q}ILj{Nl)Mka;|w3Zpjff(fpb5m zz23|fpJ4sVsNDPC()~X+AAVo=`{l#y|9^hHcD_Jp<D4zBbF!IStA1?ZW8>KWg?nGK z{70Ln$6fXtnbvGscvqO?Mddvu?P*h*`C9D~`P6pp)v33hZ#CWUNBoq9J5EH)TEy8b zP)^zKz<hgTi{#&VyJUOfPL*ee$ZU6vzHF<xf+=#_Gu@9~Yqp50-<-3K`{k2=WkKD~ z4oUxcGI7`aS?{(?Om^kfX!`cZ#s8;Je#hJh?YWZ9c?-9^IQ@es#Vj&-;fY&ck}s8< z`HSy~II3+g8`NtNlnOU(dwxwlznU8$!)(RDcX>)frO|w%9<6F%eu(Z5PXt8s6 zSMGDu3{Q9VKbIU?w=BJIRV?@WmW=_a7f$A~sXdFXXXs>TmuT+Eo#MH3yK+$9BjHn< zyyi38s_SYh|LmQA@S<neWFv8gd3!mZGyQn7ww!N%{fCzif4;9}zZ+{`^XXai6i(S+ z83k;QrYQ=`78WMnsS{d|F?)&sXYNJbZH>A1-`4#*Zno5T3(v8#6}ML|4y%5pA^&gE zHjZ76a{DjMxstanE+O)XM2~HTHQ%>GuY>(grOlh%_UqV*Yx{M}KAfJ+oVffS=Y&c} zcNNjt#<F!n-T!CJ>AqikQM5+<z|o~Q{KVsLJ~+8Gye8~=@Dl6YSJ)nHS~^*jA@DNG zrl!jaOJkH@u{m)|FKD{Xkh?%AXBNYjXc=w$l}i#M%=T>C_02Q>$D`0t39s$DKF!*4 z;FDR_2IkBjUym4e9qEc-!&J+_H*VaK8NnYiV>oYHZea43x?a?3YWO#JUTocab$jbS z-@b0YmazM&cCCu$u5}8NFJ($6T++^B-hA%O4jyHHsl^tj+QUzWGwrAf*qwNVvtnBH zD^rVgXIRDV`^`OfnD54pEsGpV6?@K^?44zxvM%m`?DV3ob=Q}iW#ou@7J6KRUuMgv zdH+_e@M?DbDEm(~-bmy|%<9d-@{gmAO}v^?u=Q&0CW8(8&x<FrO+Uo{<V3+iaj}1z z&4)gF@0~F(BE(E1?e!~@veFMHo89IuU-#xhNAI@W8GAC;eA}vDuB_GmsYm!^*{cQH z16MqFaktSXcjpA74;DLR+H{MjvPrzI=USvA`Nl_WFaI2|r91olJ}67wn6mnwwvoY) zhv~MK6+1U4OW(CtpS{ibMGs$-3Ddj}U-w=<eEa{8{`TMUwJb6$x$F0^{aCa)XRUJJ z@;S0!dL`xNto`RvSFOIGHh%lz7q^$#PHgf_Tx$QQm1oD7Ud!E^CEgcEr#-${d8ys+ z%f18M1slzBcJnamUGtu5sASf6^H9pi$9$^{n5TD2XYzht`banFQu!pCw^^KD-}wLg zb$hy~+^qPkr>EX#w3u_J`rDs{bI<Sdy3@3&`B=}o`Eu*-FS$`ud@sFcZ+hwf$=iP} z%FB0+J+%4oj-zJZFK*4!k(#OSz4GAMpUN*biRQ6~M9+G%W#T=S=RbDcetqWK)3aum z{`$w-GHia{7+|(T*e>Gn_rvEuA2aB^>m0Nv`n@y1NN(y$GfPg>8HLmSX>PkycFwKj zy|R6+P84rVcAoR2lV4|lc(_!#^08>@vdbUeCV#hgG>d<GT7BZ`;upF(Vbk5!)7xkF zR|}*S_rKd1l&pS)Dg9YqI^SBG&AzWn`SfCU$L2o$am$#8i=V&W?)QfeANEBbI`=HQ zbltzryd84u?(aI-_{Zw%d_Fd-{&)5^Hh=Eu#!GL0qv2A<u2uE9^LS;k;@r%887K12 z{``9Q@A*GE>#V*eyI$#y{xs9!%EG<U<u4dCgLkenD7?}feRrw;>!YHvywkS7pEfW3 zfxUe_kL~AgHWz~H@|W&NifJpKw`-;!Z&sqZAL~=^Sx-6pRzG@t`0Vj3#@n7HEO@hL z;oE=9a~#bp{s`H;xE1j*$1TZH?(X(?whxXZ+Jw!ywld$mBz5iI>GM>V@VuBQZhH3g zte8-@Wuem!KRovKxP*C*`4mH=XmftPez_lZ4D9->Te2?5H_!Ixh}r+P<<h6n<JyaV z&)>xAb2r6$)~@sHJuwGYWvi_-pI>36eW%#3<+{U><nH-}PPg4Hj{63x`u;d~x%^<I z)a-9F3-itAKIg6ebt|0r1RqCA<jz0$cl}=SC}h@2mAZe1?HP0LEY}I0cWC7j>GC^b z*UG%vU;R9ozWZ&(?v4e85AUmY<=tCmSL{D)n}d9T*ZnUq_LVtRzTv)6=;WDc&h@yQ z(=WsNR_~)%e(&#lTPH-fPX08v>*3BzR~gpd-E(yEtZmYBZho-a%f6odhTeAV%W5wd zui{_Byz+YG-Sz&KGUxWTD)G(d?w&W%m#KSq;4NOWlE2%8+t;yQzM;1N|I79%C!<vk z6t0|X;$l_zTl3YkCnxio?}=@=`y=gW!}CYdCW4cGt&ZIqy=Cj<>^=Vv?pmxHv3`Di zM805ehU2>K?FN6#4)Uf<&h+e)xzU~bt7&%9!`t)k*YteaZf#e|Be`DoUG0z8)9&_& zB&}>V`~2$R%;%OIKQ71f+zY?EKS;Qt{NB%ax&7adMX#^<q}F^bthS{yaQe2_>ihpa zdHBuPc!n+Wm9K~M>%TerGOWqBwx7!zqNHH=@zLaVY5xnIw+vq^e0kS@|Hy#{&iqr> zmTiBuY14#@4?nyypTD~AO#-v<`^|@E+yA(_N%Q29QuWsfpRcUezjPpnXI<9mA9a7X zuV<bnG{wfm=BU+kR|UQq`_i@>Ejebs>*b01?+=&zM9KO85S$yrrny-$lf8I)c)uLq ze1^BS|6fgcU!RozXn*rO-t!&3d)YSaUVkF}&d-ONzuT>1Yy0C~($y}kxw5-y=hrWf z+tuSMrgg0Je_VfV+tbB|4{x_Dl-^sk(diHW{lgDA<D_e}g{8i#F8o|${ovtqK7}Kf z4TYuD9@u@nbA85~3lsV!UbrkYuKm7zztx@pb0-T6#mHW|7`OYVnBFey+6I&R6`g)7 ztqL0+-TQO!wJ5{3xE>MSl6Q=@`*$3=wAJn2kKOYfilzUgEa%vD<!tr?g=85?zqEI? zJ@c47nktnd^iDll^73W=h5bLACa2gfY2JJMeQ%p`rT>H*Z+H94%&Ur&(OvfB*PHF~ zvUZiXJKYSw&th);VfFeF=UL5dhVLeCzn{+Z;h)QC`JW4Z|0q6hlyR@o`rDNN`G22e zPaW~z)Nng{^_s75KK%H6<*e-6`_ampFCPA#zc+9)LvHuMBeQv|iudmQbVYmp!`)V8 zQ==z;+Wzlldb6KY-nnZXtoiXvt1W7J=cn_@#Pspy|2y3OQK!Lgx6I1dA%8Eg-xm@Y zlfUq=|NYAMA9haO96M83ab28$-W`W+(>oKwPw~C|%`;<v?Oo0WRlbCbYe$~W>HH?# zzFR+oS;wqz#+}cf*4?lDaPDF9w$F?8e@nf%azMv7B~kFhjnC&>m(3}iuXua;`#rP& zsAw*>KlSAP;{*3u&No)wdgH#oiaC0_@9O)Pf>%25ylVTk=i`oA-kXKbr#uyJXZNw# zYx{V~BgW?Hm>;r%|H3ol`~+N-KE8POaISo9fbh($8dm>%f$uNbe!Z2w<Sy&c)}CEf z_IoUa8>SrWHhQ&cuH9d$Z#60R6YUFn>)zP@+ERWfXvPM0_cIR)EIwuODTjM?EX#YB zoZYCZDdZm+c;xNwe%W{XmYnUW?(#hLeg=a{K+f`4p}i;HT)P{6{!Z=3NY>v+6Kb#4 zZY@o{!~eg3{~xyE`}O{f`xb6oZX0qplzqabvWb)Pc1TV1@+iH`8F}-oQcs)d<hXYo zlC@zCCK>#JmHu8gWR`sXsC0S8$zzrQpHGK{wiuSWuU}9W&bgB-<=8ncW$lSiW}UPD z^vW;q!iCH$r3Y4hO1hgS)XV(s>Ha_09yZV4KlgW=r?~ykM<xnIsy8bxuW$INy)c7s zVk2*o-c)-HYkOHss}qffV|Q`fOr7xm#pxrmmWyXI-#m4OU&d;sMP?uK^}7>=zdZl@ z{L0xU5A8qmS|#1dum6}<v*7mi>|={lJ}-HGs+V!!J~1_)L{*WJWnMOuDvni7%ze%f z@=5PY`#}-O*$rvubl-fHo_k7QMsG!;YOl-Xmm#me@mYN+Yb#6LG~fD|+LoKjR_|Y2 z<562;c|a`E_dw&POYt?+JFm{>so<Mtt-f<&VnLTH|1N8Wrmcq$bs4e$VhgBJ`0XF` zOku9+5@yFGNBO-=i{CzrEn~BLzL)7Q$HI!_)k<$8c?5-j^50<n;VDw^T#qC0<^4bM z|KC3R`u~IZ#7f~COm9A@MQoni)heIh6H!!l;Gmh=TfHU)*8{(HJnJ%R-dMWm-p1BD zK>;-!PycvK<ej(0_j)g1NJP$2m(NoK@9*=JyiscTTzJn`=RgJD#76g*!FnGrRPSX^ zP~$rOX2qVeicd$y`Sbri_#aubDn998!hH4jC!7pYb@V(>Em@YAe&uc08>8ndukh|a zI{W0Rx01GJS~N}Cm(<O<#hCd~c_X*#$`^hXmx?M(-k#n!^W@VHMzj9}$zC~f|7oY( z^b);aJLa%2dRO%OLfxw`4>k2Qe$W5^r~cRZ|LYX?{R*Eh6@Gl~oK1i0E55xr@>cVj zSjnWyH^;rU6!+|$^6=@rdD^;b7WwIwC%;&`X_LVAeK*41F_-4WPJ5W6T{3lgo34+P zGUrAcAK~WyiP`(#@l828ZQpT*<PzD7-wvHVX2H<pKVzr0di2!0kyU(0&!{Zv4Rh8H z_dOiEH}bFRvXfZ~C#B{bbG?zV?^XN3=U*zD!~71<603T}qvSWM#h=}M9^Z_b#dDhj zFDh1MzBs6AEqijx>VP*Iv2!g7-ge!oHOgEVZ(;iKQ^EY`-2!hnwbWRpsL5Hb4%`yk zsyl1$mP&<g`K{u$)tsj%PhITN?wIZ#xMbeB#tWL$?d+c({-G3oaYf(dB5}^`dOOcH z$NIJRnn{LE6rOQO_2UK6=7#?}&jyHiv<Qa1wQMOnDQ~^B+4h+%<GdB;SFdWlxlk<k z(xK$(<_5pNEKL^XzNUM7o6(UCm&5J0&wBmsqK)N*=Iy=Bhd5SV?~vPnBj7X7zkB6V zYrnW>Y~4B0)he-tUGTP3iNL<8V%1YPG8NU<ztM_VZd<9cJ1%94mwMae<3VjHYn``0 ze`{TE`W)k()0?-~mY#Evsd#m4@{4H?C$7H#PTu74<K&c$?|ypk<<G9|^j5IpDLJxj z*`prmYn-!gPk3>KxngH(s^!@`2`%dnciy^oqq|_+YBpZJ>Bi+NZ@j$VD|b*v=-jD! zE)rLAk2nM>s5^eRTz0kkNr94!?6SLUKUk}_Y6rhn+A+`f!Fs#awR8UD+!s3>FS;tz zV|(T{j(IyzT631Y3~l!@lHgW4ej#g4_q_En`-5wC#tKJo)J<fzlRU`twZ(OwHADC@ zOV-^+eQRH+8;X2y-WYAomV4Ck)KnS4|6h3v?q6b5Z$5WpqH)lsXUcY_Cjvgs_2WBs z_Wb1&Qd?6>Bw~70+uR>r@NU@gqcOXs)qT+?j`{OTas+lXcG?Rbkht<m>p{s5=kkT` z3#|3GTshu%w#75%6-Ug`t0#Mp%Ox-Uq5I3m>fmX=LZwL|7uPq><(xgEci}n>f42K` zZDOyzC}3e;JWu-msU;V-Hkn-5-*ahF`%KwSt7fOo)X7*ezwpxsyRSd>bSr&>cQP;b zS18mk>)TyrR(-Bu25%7Wi31YSQYSZS2lFWf7BO4woG6+3)nf9`q}f?fk6WgR*KxA9 zY?wH0<;z<eL)EjV$u76{NL{=x=~Iw$rOEtdU)pVN^89J}`aIoWTU6@$stxZPnACFD zaYmf8VY`;j>gGSGYchXl=?AWAPqtFix62NG+cP~!SYw-NamhNJ9ce*TQ`H*Qn%n*5 z=-yWzccFGG1IxzOCuA#LyZtsy{>(G&-^J=Ttx;R{*qwT=SsSZ1Sw}$TgJg~FwC3r* zPJic?c`?n1>#6tp#)<Zg3L-&oI3(ZKyw%Kmzvq%GTVBSt6PfKZr-*evQVjUdblvRj zTk*;n)8>nxns3ZKCHp1sk0-0Ozcz0^yTm88J9WKs&(D^_LG^X7rhntPd&Tp%&&BK? zE-A~Dbq{{yz0G&YY)vx*<6_y0+aeZsRMa0WousX$`Q!Q5>&uqMme%X=@_87qi&@FZ zAhqA=-3zIypC72qUFepvHMwKm2gA$ja<XsoU7mXVOv~Er&o3>0cI$F(%T968m++T8 zCcHkgVM=(qk@L4O2Px*wkIp2x_N{ivt!;cDmY^fF?p(>#jp}-t5|3_N-(7TIf^p=@ zRbmz4Mw-e7f)NR_6HnMCE>htvIuf?Avh>C>ht^A-liZr?Yd%eQKV^T}j~{2hU!2Rk zKtiM^an3KL8FP90xP+90#KWVHukp%y+HE&iVTu2ZFS<*fCi2T}-Fzz{;mkQ^=IO$7 zCS-*r>L22Y@Gj9?BN6K=&sVnP+o}hj7E0ZXlJz(|zn!Ih-jS;-IU}c*&X}U1ct%)r z!hy&=2L;cZo1i!^_{O^_De6wFX8it#<aaBbR5-A0{gZ;rhO9Xc6s4;!J+X1MD&aG` z#@A!xuCPn~{x5f%QjLi#U$=C=pEJ2(bNif~CtjU-`|$2U4fXwH8F{wv3)R=`FIR5* z`%=Vh=cK-~)(;P)UON2BZ1v$MlIyGt>rb$hU9c{EJ89wcE!tlSYYz7_CdTg->fv=- zTGM_1kO%Y3$#Rja7%uKNOOq<y^o6y+HvK-U?7?MsPCd(GP0u~mx6t4A`swy5a@TEy z#rU6<ez>%mL#0J*x?tFWR%ffXOmB~TJ1aH)`j1=X5#^7LO|3tYxK+pD((#1vuTJ?} zE^e=upD!C%@wNKFoR9k&;)C~J`<VOXeAm6sg`ZY8Z}`SAXZMnI-wKt*>vRit+08w1 z;PBm<7P)2WmsyVYt&(r$NI3OO?}lOiC2!eh3-TmH>^Zai)ikG{f9pPBpOK=)zGpW% zf8~cgnX4-1XL;dnoLr^T>Dc(EtL_Rs@?+9r-?i>`XzRTY29_PMw@$l!S*UsLqM)#O z$<f<l+b1_y?^vJl!^@XphHv=Oh=o$lbLO@hJM}uu-ni*^dX$^{_E)#7PLy*AlpMHo zZWiAG-G5EWvX8wZf()Jh8m!qN`18|ttCeYi4Ii!@{n4fz9eOHlR!OPv<}ia^=TBJ~ zhj`XJwBY|%xM=?IHn#XluN7{{%`0&2zPR=Fb$<Q-NB3LRd^xteo&WxWfQXV5_18SH z9`(8*6)WSJV<x%E{pvV3+407HCN4L<hN(U;47Iu0>^{sr+&)K#$D-0;!qj4e*Fp-J zE3B3LUfr21m{-7@d4#!QH($!9$*w!!7_hD1A^u)(xzO5O(<I)c1zl~>{CuNLVV7}E zr?lW~n-9@h3pSW)tdzd!y+Y5n;la|LG$)<YI+D@iR-L{xG7=^SCKeWK3^oqUTV5$- zzs=C&QCmBQ>@n`Bu%47%U%MB)Tygd?r}TBkOdi?OhxNbB_uM2oH$RM_bNRovknPPH zo)x7GxlMxIoQ_|PB;30)DZcX3BX_@?B!&;l&Lyf0xgN1gbecXNX-HR8(*Nj_bMU~s zrIWWw?^>|reMTZfufW9o>25_ge_e^^W{Ocelo<O}OjaO%*Mw&~Rz^Ra#ICny(d0w( z?KJvlGd*W~5dZ(~efhX2t&aO<er}Hc<F;`1jz_zt)df$s&N#EX){-IJ#Eq3-URLhU zxz5JFz741IExpb^iP*9vRC00oTUT*gp>GWZ)0dX)y1J6(&uNv8?5~qQN#F8Wpnqb{ zoF~sGaeh9r{iWvpwHX1w_v}&)%vfdYXA=0sTj-<K`76<fC&vF*I`TJ@J;CJT@n@e; zT-m(RH+zfrj_Ay^!(S8U<tnUbHlD-t-A<1!ns=j)OLBo|(UWxyTTT@igk5sBTiq!; zTVmGgiWn<?sVjM^lfLZr;bYjBv*_)s8OJ{-Wt_RBy>{lT{KcC-CtnTIuT?B8%~+^& znN#J*J^#u%sqasGGq}g*>M>I@;+ON{1N;Ao-#_WN)BoPD8P0KQ<PLnC)=}|l{TGFl zhw6zUDgt`#brr@7toe3+f90hm+cWdeu6~9Ip?uFxDq_xWdOGiuoZp2~jY(D7M<2YN z&?@SeyE?4>#z|JO#>qlA`tLv5@=4BqQ<39#b(=Po_j6bURa-*>>Z)RP%{B-+*Qu!Z z?wz04RMAO0^XJCwGJ9PdlTpg@=klDMKDEuSA3i8Ma#>_%Pfg;X;1d%A|4RB^TDRbo zZK>jHzU%KMaX!8G|GBwZ#2InjN$qp?>D_*kSN|<?#!Xj^LN2v}7?0wn2YGF`S8NQw zRP@h5nfs%njaxvKjFV{v(@odFZx>h&<cC{yTw%QNNIg#D-IJ3li8rPOT)4ot(lu<V z=>rQ1v0n4~4~s?hs-|3bf3j)w({qhJQ42!*(h`1&-%0X2*V5Qro@3T;8+HB`pPhno z@r^IhUpBC9I;tODdGC3?`^-Iig*h*oy_`Se%l@y;@^bV3zu#BA<M*fQ+3E}~FQ><f z<;8t-y>;^I?h_BM+t-%tDBD`I<zw^p_ZPqYVQc(;C^KGj`;MZ`whFCh{T6;P`cVCE zA>R_YzPo>u%K5Cn^{%<qwA-*UIeFoN?su1$$xms2oWHSQ)$Z-@mc5Ccx-V~Y#e%Y5 zpRaipaBkmY$!_xE$xNM;BYAg^{dSt?z^ZeyaLF0vl*wPFep`Qyk70R!pW%@`9V*jI zN*{+!@9kZ6W!InOlUH5+tIWo*jl;BvujYp3jU{1=bA$|~G>@oN=yWumoR}lqa&XbJ zxQeqD?29>jL=Wzl3R$k4Z+cG7<Cv84YM!4LJFfk`IAi^m+}ij@E#|kq&HelzYu|o3 z=U8jT-iznf8d)o3EH!>~I-~w`vcc-lWgpgy#=ktgcB>S}oki=-Ke#gGS6d`_rd$4y zE_c}eI9RM)xJcso)nm`@$Zc7eHr@Fq<Js#+S1dNR^R?=&JZ#W%XXRy)veUanmNG09 zk6&@ozvk&-vqkr()t03FHS(DMb#aFDzK&f&A$PNkUuAAPm@Tkd$0PBq=}v2bn{4Nu z-96oxi*}r7o^EAYf0J{fli9`tCr&?*PQH8Hv-u2*(~AY=dxO}sx0)<5YGicWojN@= zqD9ciI%CaA$LFj2tr$F_gJKtNk}b;7bJ2^PmH+POCqBmbk83X1Z5Ev!@pj6}g|)TM z>h?~4az{_$eEr*~*suB9T61?ZO5FUyIC-Aj`3n!H*Jjk;TDJZ`S)jn~+XtT)$ZXRp zy4g7SM}VWb&l}^&5=F<m&uZEDPBfkFiRU-jq^sl1^un^hY4`0gHj@uVil)4Gl0r9m zox5G;$JCeq;h?^{(dMpa8&AKey`|Z)PqOf`XJIJY!>mU$A~=_MJa9R7;$Edn_@XaW z((!*D&w3Cc^85B3v#(|I4_tE8|J6MEiC)>IE8OoMCB$c5%l_(nWaaE%8rN^+A2fM* zp&+R#Eo|nM`D@(1K3;Dgl6G;?1BWhc`#O=|UU!)`h{i~|#}+=>DU~F7bzO$kUfvBl z-1psD91~h@a-KM)pw^g}=^$lQf6L*&6>Ei%(c)BwUP<2hhxqvgzn|0Hxbbv}&Z)}` zX*Uy;?#r#@*}^c<*6n7=k-7I-C8gpQ9=9xbo-m1XZeEl>kI{!oIp;K)FO)1P)sIuN zFydV*xcsBA=d_4knf-?!-e(dzcQUSG*W-elt^RDYj`1p6+wmn-T|3zKXp{Hxg?!2` zPrZH_RX(nkP@J5`usk+mf}(JQdU5R!V}rO`x>096syDAwooJO)#e6?O_^(m?wX@rp zzPbG?SiEkjIm2nYv$`{$N?$c|bz1i7QOj-1r=7Zd>na_R{&(NxvzfcBbivuK?d5I{ zry6r>m2R49ICuBlWpitkS1x~;+jv<`eRJZJ{&?SIa~G`g_w=|w{iuew(5d;^Coas5 z?Axp3_fBGq_rXV{e^)41cADEatvtQO|LMKdh;ugE*!fFko*X*+V45ty`mI|zEu0=| z9$!QsHtJnEcGcg*I#FQGj-!+9^&(^3?%K%m>z;mk#Jyr+N$V1mv=s5+_^Mw%EJbWh z+vZ1SY8EdzdVupdOZ49dS(D}|h;!a}_u=@=DF)YlErg`mX0L7KV*V(YS}K&f+iz}m zug{{ku*;gi7x=Bx*nMZ&%I8nCtKPmzX<S_Mkav^SG>`4G_ufcKWp6sUs;V#8on@AH z&E{3I2Aw%OHu&G(u)hEIW!;8Lhvn~o{qy5bnXK7Q@f7c;*0Wc)mA+Ch++FqghJxwa zH5Q`x+L9ixHc!9EnRum+$76Dtl;C0JbB#K^8f_JxY|`-#&Y|6JW~%n4O3iW$_vwB% z&t-9I_$6tHUFz3gC(Ouy;?;hbanqUuF;khJo$CBvbI@JM^+agT_fwZFFB$xa(fi$g zMALje*V<={yWaAwk+~o|+bC@DW#!}ZFMB*NOOIUmphfkA%krF$2OaZX9xGM2JxMLZ zOo4mRgMUk3H}J2&ptPyN?CrciXS7V&7wR0hVB@qmj`@|9bRs(XmdF*yv%ho>{jiR? zbm``fM+f)WFqrQ;v(2K}BP`Z-1Mle{6D9_A=~kAtyB*KU-jQ;gqf)u4(^1HA<Bh!! zuX)_7wC6baFiFz&Q~Hj_w|2FwFTX7PVW~M&<q;j8v%H5JGIz({S*FW%duLY{dwzxY z;YJhY&P^KAUDIaI58YfkN%&LI<~1iGb~E_|-JB_8`zfoul}qN^>xEaZ>7Epy!(7UD zFKzp&gAp93nK;=6*k)Sgw5_{(_S{XqKOCW1jcbx`%NV?4NDDt;wkFnO?*gsG`3rlb zGtGACIfTXiSomDm`l*rJ)Qi)$P2JTZeL=w`NJwwu`AUJ*VELa{bT=IJZaBs*7U;4; z{PNYZpHI{?+4XZ}uX8K7sAOBaUr*?LEwd5ip}8|k0^^<9b=j@Z<3|4*B{%Op8w z{VkWn+~c2QD(~CilbE#sURYt%!xZ)%GcDTYXx9C+X!7IwH^n)wrS}{kn~-{5*sV+T z+3_s*!Vj)IsQuXQ{JD1)V!fvs{8OSM{d>!EqmN!G=s7xToyUc(XHE7TnbfSBv9#De zCW>k2<A%k?r>!@<yl`njQi!h#gGz?WB2SCFPs}lup62&5S%0WrKPW09x$HBiR8icF zg_ji$8J}@HutQhD;-lo#<PUch?h5h$c378iTA?>nrmgVzF>4*4_Be$lw-*EjJHNcL zIKjwGzVY>rO`gt<-+oFjd~(TI#78Y~YKptS&$GeLr?vMjapSRCxIyF9L65zBd6Rd~ z5tGUEnaQPRJDsKcT%*4FhKak?X0CH`U;fCt!e3TAiPyqa{rWzRrN&Y`>a3m*W;F=j znRKwELh}3e680XJN%s=>+~9mUQL`%ftMM)w*#(DrrioX-T+}`{Rc7in@i|5%kA7%3 zewpZh|I44nv!~hjKc2O;hOw|=t3b?L8;cW`&PQkJPEg<Ly<ODYa%S+chg*$=GB$k@ z+aq!9+>FT^o(Zb)uD|})avRT?OShRct^GqbHt%PWRWHovp6EZL&3wkThIzYv```NP z4`o&~y2Z{CcS)1uW8UKlD>=XR?aw^K`~UP;?|(Zw@={o>j<@<uI{P9%fo(!e)69m5 zZQM3eYPk_5U+-i-UYX2Zk}G(-Klu8epMjeg&*w2b-SBS8@ky$i_pYsV^q<74lF+zx zy@E$vV1W^%xX>2O!Vuw$xBv8UYQG7;7rT;^LA31mpPr~!Ui-_s-P1BemdmBQoSKof zY4uvUrL#NsrMW75r7o6QtN3+|;*A4y&rW~Z!Wvd^$Wc=F@YSO;*WVL~w^|suK}E%P z*Xf&uUgz0Z-lZ*g^kH(^5B(mm`57z*oejM9N8T1>e7G#glT$O}biB>n0?r8zH>Q7E zbB0ye;lYA#zPA-`a;^kD)#*8Med(s=@|`@IlfE>1&UD^vcyzPPj$nQ^#h|cUOZC8Z z7DumtF`t_FK4m|PTUn=M`Q6VlWlE^PmKx5k=n2dBxfV<<UlH?3f71)6sN;FOm)=F! ziQHYS_F<y-Cbf<SWoZX04+P$}{=W6}r?<yN<}SIyJw2uE>e|CTF5awHR-3%Jvf%En zLhtK2{JE(NcN&FLSl{HGS20_7`l(@kj04w!-%Ij}cTWy!j{IJDa-UDj50$_FBo8dp z{`o^%=BN6ZrAJK`%yktn`?itwQ!8`Y-D+|1zm_LgRexm-UM8H&>UdUHT<Xcn=lX@E z^IF`^bI(r_?rZL!_wmGZ-nH@Ji?1x4tX9t8zK-X@YMywfJ4-&i-_tSGTlGzob*hT~ z`;r;A<$Bk}C3W9Sd~9>cH@9cH?cCh{=vDfzT(?iOnRQI*J5y{B>U{NG@V1)t1ySXq z%MTqkW7+2MVe8L3>k6j}-mP)mA8hv9Kk{YOqZETrsYQMs4M{PQTsiwyY+e@2+vnar zd~)GaSN4YOtAae#UWtY5HrY2Nf5%<D86vNCmep$-TcrMf^FoS^!OOMHxxxO={(a}a zowtv(n=4@yzxDLhSqx{4XGy8*Z>apTfNx2}Ou4GfYWquOXUAvfN~AKRz0p-o6L_)2 zi~q3xXNCOq8>t2*QY9K@X8!r<p(|tz{R-y>WaLP^OG{h$K0v$w(T<O6eTro7$SC}H zs*>Z}x8t7iX<KuvpzV)de{)$YSF8U|_TJ9_t&=~VwcNz>`Q@F<8eZ3?%r#oWcDO}3 zb7HwusE_rlMebIsx9#+w8R~Pnq;#FvoqeZuIn=Y)eK=C0P`YVKq=kvf{$Tf4mp$(v z6DzQ03Ts+&{<h?6hMTTC41U;7fA!|+_2vaaXBM6~kudK>Oq5)B&(+unU7jEO6AwB% zOKe}Rx&B~6qV}cL9qnGW9j{z`ZfaW=F#D@KGo5Vv%JtT@!fgv2PqCb>I)3b0@$I7y zIsaC2r%JH36d&kxOvv4A71{Z(iNp7`ze)JD56J;NXZ820m>YNtI>*o3y=lquyja)t zXR2`p>t0RdkSUR~Oub{UaIu<g=DXUmxBK3|ZNB8om18oAc~`@k&95gJ@XG8LvMRb} z$<J}QZP~r7Nr97%Pv^)+=DpPy&Svd8Q@vBnlj$*A#-m?e>5{=SPDvaLzx9B(=i{@R zo~iD$=U!PpT~;C2e)Cy5orptgKgO)N!EXEUkU5|HzfbcQ^*c<A7hWKyDHAL_wc*TH zF~<z&`^ybWzQw;(_jj+?>8O}|Pts~#d4$I9Zk2gzr{22qyH9$ef7D5O%6_$TmtO2) z>3OlOWBr|NHm}2C-mpwqk#kEkP<@jl>-F0TmX9x#e0U``mwm_9)}l=3m&dvE{+{hC zPY%Af__n#-^ODrsilhtsH`Q%@w|>nJan|Ez?;-+UO1xxwEzmW$MYgNW?C4ROWp4VD zZX9LdFxC8)KYgx3ulM4O7jHgXFFN}{t8jAh1~I$Msa7v!P9#s0+W!2q=i8$lr>E$r zshr*PW3hAMgB6}f+J5}l9KU*fSE?z`(vIRI;(POC<9?do&vK}6H&}dht&vsX(}}kp z-kP@7BX{Dhg;Q_0`*`k3;gp!CduB=bdXbGRZTp+MOT`15608{6ZA*L<eHD801Mb^| z^I3iNUGDtpz>?BO!R)(c*D!uKHrL+dzGz{cZs@CmNo%vMH#}6mTGpH<xn<+D)j3YL z7t|H)l0PuTaX#Pr*Sd3iw<X59wk?V_Rr**YX_1tD`R2iVHHn5ReO|nmnuGs@>Fla~ zlU=uPZJ6h+<z<?;Hzl81A$$GTD#6`%OVa0_yxsRiEaaN+J$>VqyxW`|A3l1MCUB+t z()J~%l<wA-Crx^=WXTJTxHTsg?Vqk%6SFw_w3Q9dQhSSs$yVp}>m)C%nEfD_u}k_Y z>@0xrjSHtp%Px^`ynI4znQzgdhu`iOaNbjho>5!jo<8a8T!H0%S{wOpRaR{O)qE-N zvDv)ItMACC2h}`(R}4B*X}!u8W}yuYe}k6Ddt_btadCdxqGo^ITP?TyzFue9^47De zG~w3t(y6_?{c2i<br&}4zuu+7xc%g2*0;=4D&t==t~<?<6aDF>h`0!|_K{Q5uP@!# zux*AX*W~-N7!IfZnk~znXMLx#;`1vTt`$dPB+F|af4pt?E9vox=^Hi(OK+0TDO`Pe zt*ia++2xaux0!WcKCu3y%@3nDdmr|+vD^<(+xo}PU)`sx&gVvB$GQKva`$zxZaQx; zzi7sbl3dpAx|td~`1s;I@&lx0&)-b{ApCbz^T)~hcNgACf74WR$vEM>{oD_8>^J|9 z-+TPk{Pbc=gR-K#{`uDw4^7zESn3=oULx%|ukV@%Th*!O$*r$L${bCzrtXb9l-S&= zpdDQKG%}C<r<d;iPX+<=?S4!tycg<f63$z2o#XD&ldt%7!t>S5D?b;r8O++frS|f| zJu*Hwep>7d{F8Hnuj=2b0^fSBRU*@_KA(2EQ>lM4ySnT`^#k`h*B=hw*Xh;lr~cmb z!x4*0OOBUbrdc@-ds)~8W0UyzneU5X^jVjgtXO&Es$Z9VxY_4-O((xwzP|ihUj6>2 zA8yA?C9E<G1nXX1wST;McMX>`o8_P9ek?3SC-m68%ne^%n=Y&W-zVi-@k8EE?0c`= z-6!H8J@>xc&X?ir_6)yvl>BPZRWZ35`o-%?w3zx{C0W(Ec0Xq5zyDM;f9~ht6Lkg0 z&AE3;KS+4VbwT&_`r7BAr{1+M`SHZKE${Z`xvzF7O$+~Vlj9q&<FCa(QY=62;FPUM zY0&)1JO55amkGN{S@k-5PM-Kj-20e|`PT&YbO!(PPMj1x|JJo4m0#=6ybHS^=l4fr zg35`G9bZ0Od#rp<r{Yxc*Zlu4{y$yay#1GUml)^nuYucd*qxX8@bvJ{s73Q%?QM%& z#Gl{&z(%BemUHQ`lqb?!nb}iz+Z}oO-M(v{S@Ew2%wNKHZ*>2*@lR9g?&a~{7QCq{ zPI=Py<VC2M)uXz7cg+){#81t+Z5k~9sI$5L+k}5p%lYTn{o=SB_)Kk<mDBZ^6Y^Kr zGyL1ITj8|edauowcS^nU@@04-aI^l>3Yn5yf#0PPw{zH7`-K<g>NeeExMu5qdHJ#9 z;vCc87F^2EC{u_&Y^pD?`}BibPkx@hw$9-l+l`ZN95|N=rWtJZ;wsmOX%Nwu6)gC8 zR<!89@!GitC*Gzv#6RS2%==w`BKn_5gl+1gM0V}iR;GO^p6dlQG^g(P{klL$v-s(v z_<*F)xJMWC;`r2Bre<3TR<|aot2AwT67FES@RiBrH#RT6Fv;BF>Dn0|;d$xAsoR@Q zYH9oYy(WFIC^0PMTbc3AU#AuZA3I%CE_qh2R*7TdT;8;=sq+={_x#xtGim9~34wZh zT7LgM7j>ml)X4COu1@JXnd(C=?)gt*3SO)z+qmt@Sv~b!|LjZuvj57y(~BtEqy7BU zYm?ivb{XB>6`;@Tx8==&lm~lslVtVHk6fAZYeC+nf2=e1u*sEOSTCx=`H9>A;MLb# z_;U{44w)2TpLksF>hCy@xAROgHQgsjl^=2mHv79n(MP3XlEc5y`e*S)2O^)}T<Xa0 zxI2N#?~c6Oy<f-w7ghXutuHgL>h014NBoYo#sp6F`)d|$cHgu0twZ&_AK|yt7VY+4 z{UIRdhR>>tt`B^&W!=JC78_lXmTB<Xtf09)_jJx<rr!9257c9$ZaLm|y410a`=84{ z)p)bnyZ^p;)2O{n`{BAXKF`$a|Gu5gKV#vo^V!b9>H9W3o3j0^Z&I92@>Nz3<wTFP zZ}l4={++kW_qa2=gL?5BZM}nMl|ADbrdRBYQY@a)a{R-cM`hm^zPs7qVk-GzqteNA z);9;|oRo7C|Fh5iWp4Y{U0XOx*Kd+y<G8T-aY@3brwaRP|K_SO?Dwsb61I6&_p{G} z_h_t$_3F!;|8|wI2QSHtF570Jy8X`EnxCz4&u^bFx^VkP#MWmFag!x^BhO5Zt9(A~ ztjU$wpKm+fR9sDc=y-kY2lg_Rr$y&)pJ{cU`ME+pb8=tP=R*R8<@q19x%hZQe_hfx zdG)&XK~elhiK!;6{XXyFbe`y*x3buI@XnO!QlWR5TXfWKIPc9~Xth=E&Y}&R`?Rm= zl{W?3RQlhr@xT20*@;W@OgI*L$JKee%xexj_(tn&cfZOJ{r>30@a5_2R$Q$<ZN)13 zF21Pj2wz>H^^vss2j|*^H;c<MG!|}n`uss+O%99fy3hKjPO;pYS`(L$>|T(#h@au( z=Qn%)DlXJMU(9mz?TH4_hdU;?|2}(qzE1zHGs$(T>2u8sm2NS|q}(qPS(cNXG>b)@ zXL9rW6Ltr;=-Q`xhgg<N@=oIHOSib-JkM*_lJC2C+k3X`EU){r`S4ox3)8nPIODB* zY3tF4Z;~$*-%{XQ_H&xc@|5NLx$IBRRpu0*+L$Nq<FsMbzw=kF&uCh4QF-5%nISII zPM2LM*~Yx(fO7uCn=ctGr~7TNl-K<F&BM3J`t-k7r%Qak)i2#$TvJt(8pl?Ws>Z;d zx4-D`kInu0%ahBk`}vfkS4D0O-fC?fDVnR^`1B^{@t-HoFwA;-YAySPh;nJaTikA0 zdG8`8ubcSv8dJvWx2djESGRR?NL5=c6=PGLn!*;y&i^B|X+q;&-BpLUi{d{S2~BvV zAjWHM=70R%l9ub7)d9<R_Jz$6Wt+$8z*hg#<oAR-?dtlO!DiMP!e)`zv`(*mk$2{k z=8gc~?g=}6_HQy5JmDW{<Z-3;j8zJY{j29a*G<Hq-*;Z|@?~VW+`lt?{kQL4Jj>8= zpL4REC-bJy*Y!A><N01|E^nW(>i{2<)~2$_E;5URuU(&-d*$`A>I4BXE6G1gzqc;x zO;{VV;>7vp`OAHjUi9fNcysal!wt_Dr5I`Mf0}aKJNgvMrqB9Q4wfC>-<<H})wa#M zvsbTW$&Ah6{`WpNA=NE?x~j8W$!x}G>#V(eeZpHGtv{DJeco!1m0uH6BzDiay00dC zy02um(!zPiX3qbZDD>fJtjTtl(+kV8mG-^dU%_;?<@WKE=V4b`XL(32V$sT3yt7rt zY~lNDCaK>yAG8X8T|8m^snl0fHlKR+R#M%fQmyuszQnn2lSC~_gPAofz9_y*-x+(s zB=^_Bbp9U`7bY#5AITwD&XBsG{LsVSPTzKY7WsFySRupF=&X*>jen0cHkPF=*PQTg zUECx!waS;fTMu4MTJ~VAdVT5a1)uaUaIj6kwtx4|cPVpaFBCrsF#0%UbIswI1vBJk zc6sa#6sW$vH1u4|!inzvYX7c&+keGpf0yg7k3V1LTAj!_o54`&k}*?7^%C2+{Wluh zj_=oI?ot0<8}6>sV4>72JY&9W&xgiRbqCX=0KP*nL%8C&e3$;M^?J(twJPRpq=oie z)r^ZbS6rC!#^mYrK8dPHbBdlm@D6>M{=Qh=WWDU(6U7>J2e-#Gy$Vx)xlrw;b9<51 z1+DZ+Vv{-?_gCzkVfM85ex%v9i+epIPZqx48mFanm1)kooiApa?SIH|^@YFE+`Ex= zGA|FR?_Io6|Mh~n53b*qubb&1IpzAk&ztySrq(&OwO#FIj*R~JFY}G+krN9;exF>h zA?@k$)B`@(ckcSCYJcPLs(Gh=?!A6#)=kk_Khob9=8Fig`@TK=-;>-PPea4p#qV}D z6)0La@g&{qbn-v+!}b1a@j2Vx98t>S*B5;o@%Pn<;0Gdm9(z7lihsgY{WW_xgWqZ1 z6r0<<hI*ahaj(SW=I?v!zW&5CyM{ySniCcs?M!a_%Q88Kvvaddp`)5@;$mR~ewL2w z2`5snH}-yduDz&<bN7Mv3e}L=KZ;^KpIemKpSV=WU}l%tbb98pc{2<mB2tCU{W@?@ z{@(uM(^(~-%xzKpJnIW@o!Y<Kuk2TBiaNKi(EP&lvV+sVWFOo(hwX>%%ucQAXBJJH z`zGO}?jDw3mwv|fr*gk|*c9ikzhKFmtMP6uD^Hw`-l%-})7g-7i*N5)cx&e4sRiL_ z><=FPTwZSRbh_r&&9~Rw3UXb!B~|-+UeT_pH$Q4>zgzj`wT#+lhpFf7mj{}6wG}@s z+56>9PQ=P|wM@GTvjf@Y^LX~Pt(OdIPQ5luH)3DaX|es<cdJxdYkJRz^3MAfd5+mw zoL@h5m&oa>pWn&GS6o=I_}hoeJNoZcsBhY}c*5IHChJb#{n>r&n6j|+X|wI(CuT9) zx0l)Q=3947ZrEXKaiZPriOY(x9c3)Dxvljkax1-?Hs?vQ!}XuvPPN<Y`rgspJ%7@B z$F)^ehdA41r`(;AdHs)zPF4L8vHkKoTz8&+T3d8*_J{QMbs<T88eKL9Kgy1*d$s8; z_u4Df>#h7PYEl|)mssR&o42`(<NeYJj0g4EZXGf`_2TWKuiFkc3aPBxu583KH?B5a z)F&#(O_@_Z@kgTls|(Gkw;OdfIVrRBf_m}Wj-2~>>2bBTx<kwni$iX~`Em`y)2;@~ z#rnGQv^Z?~zUZ&g@~Y2<>t)Uq2dq4_MSp|G?A4;xycV~Xn!WbAd|vCiR)ig&)xBLD zn|Uoic7NIOTX*U0)a5HSb$B}1=hY~eecST9y#AAMlU!6W_pRr@m+O5$ptOKLb*Wu( zM>yMQ(>EfP`!ZRWjvbXfc4NxZ{Ws#cPqcDJf4Z^F$bum}I%W55^Se)T%N5z~F6-TI z*S96*CM(mvsmhc2?63YkU>-8BP`Zn`a@zFo-?C@R8QI#{JTH6rTDAJeitx;LUvB6e zDNT~QZXj&?Y{TMrUleos)924Lm3k0=<KzN8n-jC$xo7IQvma#Q-}xzSLf>)kyPlW7 z2_2hjZRT*xuCo93LmOMem$59jvwY*!n6Fl>xU8}5km7COyyQPG#SSc+XWw_><;BC< z$DhAh`Sff;*!3&_T6VV?&XDju!lpL2mv=M!D#zD;5k^~sigw@QTlY3sQkJ3Rde8NY z&0fmy&J{mxKV+g2m>VJ*e>>|G18?M#$6hrZeenj0*G-sZcIqrvacMdCLaC%kG1Tf` zk9dsDq*a0MFSTeivF@t6yiBy;o9ms!wO)fw0<!Klb6a^=em2^uP=A$kOZI`~$&D#5 zRh)Q5ue@6AXv^<l)f{p|@8=ZfM!lU&BJUOQ8h`ak-(fZRn7GpSi)+7M5U;O$miJU+ zm9zbfhDF`)7G#M&J;2nH;3_lU<IvpYdtKO>Q<m}l+$6PrhK1alJwIFg*WI!B@#5NZ z`MP8IvzK^8#7=utqy6u9eObkuoy!#!a^L>_@nQD<zc1S+Po4WkaowFC<?)XME$5Wm z@98c4|Cs;flC#;%|D|u8UR3hyMfQBRus3@hPxZt|W*Lj$-L`eVuY$Jk-1nCc1h>EY zmD{D8)TmsVzusH!w8w7u_0ukYy0+^6wj9wF%9}4Nj6NmHH>bAMq3~C5cyqGbbN{kQ zY{%c!w#_^%JbR<e$-cJ=_gODI3zUdaFLtlK6m`t><)X70?jZ>u-iY6+T;tC5^l|=+ znv3D8SMyfyiCg@cv31^_OZOerzlvCE8G0{eDwk{#Y@cFuIWK)l?atfF&C{O9&icXW zROp~OufS;AAA<}_rT`98z7_Lh<KDPfeJV*R`?B1*;o^Pyi%*ZeJo~zTM&kNo#=I3L zBShb1WtDz;Ht~-Jd$U%3qx$-ugs{cye3}IoE6>Q0Uac+J6F%?X@}(CR7HHY7HW7Mj zBg=2H=pgr6zeB6nBt;4`y07uJY4wkL!1`$3-8J7fpDGAa?x+;xT7P(%!R4(R(^REz z39YKxzS?-jq)j^oyiMYTShn*ybTvzx<w+mfaqsTl)6z3u=Y{WTdKCNqz^@haHvcu1 zE>}Ik?R}@$a_PgLSC5)_u}fuGC`89!+gx?-XX6tcL58j%uN7BXJGeF!d)|NY`Cp;z zJtnnP3jF`lZ-^XfNqhJE+p3LfIwkDyRC=XFo1*4hmAWsCn-*lo*6?4${8#V2;8kMx z4jv0#$$oav{rA&vtx7)Ecg^padi<X1if8BJENuS#dHC?5ZMnb1!o}<}54+s@$-e)F z+`T^s&vX8plVTmKF4fWy++TThy|svpfY0)IMia{qb;qxZwZ2pL%Ja=@PBp3X@^v5o z|6Sq5vo7DlruISEhMMY4f^E9ZiLy6KHQybJDSW=vmS=<NdWU}#4mfW-u_ONOvyXc{ zxo5DhUi-A_r~k)O4a<46)UQq7^<}BPX0}9ouQlJn2ST&YD<``q`-XJvIxQ5N$Zokp zi}UO1dCO}~n+K~0*6MxqRpPY{`zroPWwEngdF`tQ8{S@LlurM5K`P?0Fdx6rvU^8o znjEa*oK*VeoS)i6xf_!ic1PLCNj?(rmb!SfV8)jGcBi<mT%r9d&pOO_s66vsLWa0a zU-&lBZ_+;>GTQ_(c7G1Iues^X=_x$IQfeRfX`FugL^Qt9_E?kt><<%tN_1pzZ`asx z%A8qm<C*PFVydckzb^9~xO80J^TC%7ANXWfSI;oi;w`@VW70;yN%e-Z4H2fM_ucj_ zG^n^-nG#UWkn61ZDOdC0RN0x%P7H^ZOKb~JI`*#JpF_p6fYFd^g2JI|yP7*#o~*un z-eF$EaZj!rhVP|!R91XC`kZh7-=DW7icN1c<uFYYR6eI%ye{R8F566z3!G;ak0sA< z^lMK{W;RIR^SrlEbYrGi^NGC2{;!(!H_YjOkX!y#s=uwAD<)1Xsm+3C*USi&oLb97 zW!tBdl|S$;;OkNG3V*)3XSvjp;3^i+I~Ir6_D^X(qHy9e%iJ0s<1YrB8=22(E&IAw z$35>clkiNX<jd;1>>XG5z6I@AyM3W-<doR3Uh~Qy$JLLod6ECI$4tNQQRK_-_1_M+ zW&b=-$bG%<_hWPWCjrmfRf}FL2#RjaFz2`F-cfqY*Z=R;H6e{nVFs<swd{WUjGnl` zP4}QiaEVKV(I+lTy_S5ty5ApuaG#fZSNp~KTujZeCr8pRPn}uD8JCxCz+vSmWGB4h zM8aJU?IRxS{a<7Xx_N({W4^3qU(_^_G4zbjku%Qw88_P4W|kahinElS!l@-}ZJ(}d z7yk1JOTF4Tk5?^6I$O2vKfEdnXmD2VP?{X>BE+dH^f^De$YJ}sDI3LPU-{Y8754hi zG*VnV$8KkkbuaT4=NSw3+0RY5mHy~$x#cvynJr<q%=641@VM0WGvD0w;=`K5*5_@j zf6Tbukv(a>+?Bm{37d?c=x(_1?WDx#7#k1i1$PcH8Tijza5|#S|HdIN>j?tub~x)B zZh5$yXF+g!`UzQwmp`qFUW7`rC9nRj^i0w1)`na||33`VH#I+d<UadIfK9_&mn|v{ zi_=SwC5mt4RZrR!c%t^cbwPaM|5I}q50tD6jF0F|OY{Bcy*|BSPNvkkd!=;=p83lB zN1RH{{9Kf0{MoyIO><45iO@^QZNh^3c}!;e1P%)@3a-2B@S=Un%iVt(T*VZaY$iNW zxXgY3|F?&i%kRB9Xn&!$(c=_H&5N5med{<v+f$EEm9)t$OIR0C!YkC+sdptMZ+eLV zv-SmpjfNLryt%W=c*(Su&o+(id#|Ybys|72II6sMo8aWox7WA42p6zkkhE-imHrl` z?MqaQdBY=GFLhq{y5N3ETmDI}UAO-~DzRMkcw*nW%vQ_9FQrEwFMK}F&Me=m??4gf zESqXhjjG4{{)FFO_IU49(Z7HD`}w}xzi00De)1?(cBk38n7N&K-g`E_ZSt*iIHd8* zXziB}gLltF-aRN$m#Jm&EOJ?5-1j5qNcjmbN%e^)cQyTI+wA)O;DgHK2I>1%oKHR< zX5asZV|I<a)r;evp&8p{ZbdzE)SudB@{RNS<2#Gn%5DkoSmn>|6LI=_J$og4UaXwA z>2!J46Ae=ed@r4gd8vMvu^~Z9ao6d$hZikelUm&z|8zAQw|-$#u#t}BBlGCglPV6? z-)kBDc0@lq(3uufG1caI*QIZ>!V}uc4lk9NEdRto)9GTC{Yu_+`6*@U_Jtvjp0IAv zUox@&l*{+d=llK43m$*?m><V}{Yz8-s%3l$8Nan-1N~l>{a<yhZ|muRZ?9B5tZpzE z{%*Jvb<tmS%Uw>bhGvr+GZ`eNPpaHD_lof^ANENuml!A26>pLG`bf20`9$>F`!fn( z{Lt9G^Wxstpnocbh6*vq!>v5s>u)hi=>EO<!(_X)RA}1yki4``_r0yt8vCW*Sm`dD zo4QHqXh6=3nJ?F0wGxn;AZxYxM9%&s8B^&g9rhIkGFPU4;c?lQ8t}MkOEvq>JxSjU zmk1s3f1mZGbb~9;wtp2hx@^32R=?YIoYzQuY4SY9_3m>#&TCDXI)zug-t~T4`S+*C z`S|O<3$CsY&&}Pr>B>QU&rB5-$)4ODrjK<OoVgd7$~xiP1@{l9E(#p<cHa8NE-T{5 zH2GhQ+ZYafn7k^e#me}j`yaFRcQa0CguOM=2xbo6X7Yu>oV6pwdF$Wm0~@Sn8_#zY zb4j0j^TKQUmj~UZT`_IgIyFx$b5H0QtFww$sd0SPo0P-)mT0RyJsAAl>Dj6eiEdmE z-&#KPbDw7O%C+QfmgbYAE5B4(?D;-9-nigW=OxX^?+PMkJ~S-eQ`BK#GGW1ups#DM zr`=w_b#nh)g9c4*uD&`Jo$!7`uZ{|<kcmB?-7NX`R7Pljn&6|AuuVFLefHVp$VI*H z8Y;j1tc^4I%E!)opO5*x#vD75Na<OQ3{v}e`F1*6Pl#KvF7{LRo-I3b0?q$g8TQv* z%Zl%GY2N3zV`6L3?`0=!&Rt(^b^GUHcKL(9&DxFTYl)QP{@s1Kpr&WdzNvh7<v%W5 zclO!V<5k>C%L<px)9BvyA%5Dn-lgoW8~uK0&fFe;=KSh)S7+zf%&FSS(Un`<F7UDN z($c@_MqF!s=Ij>pGMgC9P`E_7&*wO2Qd_5=3(JG&(O<XleibaxyJ&r(|DCPPp1+6d zt!n;O*Vp}c^EbP*xQ5^2RX}Ki{3e#yVlt^yJ34<&6aDc<?#xV`pO5_HH)LOJ2%YC< zGQZK*YKq<0NoHbe+BWiR37`M|yNuU4{R#RpWhI-WAFf-PJH6`d;dbu`=0EAP@0&|r z`mgFQ>AmL#Ys0qOU*BpJJpa9ISiCfTrZIyl>#ReyOKYvpe*Qe!@ZXFKE0eAnl8cWy zGp>EH?v2EPW6M6?TyWWAM&+i^xyK%Kv>5*A@QveK^^xCbUq;*<jtn2k9o1|)Po6PM zDSI-JsqJY_@a0||sXao|6=#Jt>;BA>KbKvvtn9`e_iu{6accbgUoxxLrB|GNt}lM~ z!nQNJriI>dxjd<Qg6FJHGn4HaTZ#=gZcusQU%M;VVW!Tt|L5<`X33ru`@QyO){9rK zDxJ>vvPm&GHcZh7Qc#VYl&UZD(2-mJ?b@&@GF=}I3Er!Cx%Dtt`<mXv+SM<o%JR8e z$nZrfsWwhH;%MOM)0<Z!F6D4OxioyQ*8jTy#eQjZ@q6=}qBfq|^S*Xwxy5DM?{^II z@Aa%nOxsi`&{t7+P;^Bli%x}E&V|Ui7D|$efiHGk613D_C3Qn@y^w%q7}LT0YpT~B zCt1Be&Z0a0<izc+(^8%&`<y+luRmM-|C#KkGmk8id7z=N!8O05di}DK$}{e62+ug+ z?(Uj&>gVI{H$P9%7j65gB6fFz%&tkjle|JVuAJof+loPT!iOjU*KO;TshGZs+rP*& zW>c%~wMO?-%pBg&&t+U?S*x6R#r#eGx+O<6Cw6RJZ1CXyoky>yFQ0#-vh(uk1Gl!U zzZAH=q}=|+#vRK2HL@I>_N<qW%x<e;w$~7x(eS-NtY+%0i%i>s%P(=(Kb_U*7V}Xj z{nOPot8)$9eVL_C?32qi-?B&4{{6|{4NhxaUU7V0%lqtY@2ca9(qA6x2c2HU?zrf+ z>88rHxl+?!iYu+{H;}e`Iy)!&+qBu+W_PINv1vYzVwx_0D`?*l{VBKEPe<$j&8Yl! zzLxdNtlse2oIgQVId*;ebf!UQYPHq>i~gt2I;>)oy41PN>F`MpKK-IgqI;+9eWP75 zwbjUKb$H$9XgxK#*qL!#xWhRP?`jJZx8v$kKKuVcNyzl{g`JD{@-A=N>71AG=v+b1 zsm+GTJc>_UXJ$r}y_os)?3yl}=m$MdHe`CupZR~sXPIS>&)BOS&bfWI`rLu@!4KCJ z_Lb#KKJtd|_<`V;Gq+ZH&Dp$XwoYT7Lvq0#=Ly}tTX<Kn-EmvK-|uqqq4%#EYUO>i zr6do0s!F<O^-xr<^KMCSqPg4hzKEALaX;_M8*pz;`k>peTrSG4>b0}md)vkOjE8~) zZB*ZgSVkRs@MIB_vi8Dh`hTR9K78oy`=zqsi{mop`Cks2FNn8_T`A=1T>MYZFUtAd zrRgV^w9M!D^|SKvAz%N$J<es1dscPNJFDtD&4sn?_fz(p9Ig)*Z(qHpcl$=}`)#-8 z6<+eOuAbfF*=@F9+G)-ECQpti7Jr#AwMWapau$DhiCon?L$mXDr!W0GzxMm_)75AC z&KF%;dHwJPmNfmq@XMa>miwqVCmJ!Dn8<#9;aYk4M2ywuCvGlJ!*5qq{QR(%-)OV9 z(odg{4C)yPnzLX3iSeEsmV0c8-Hu3ZyM33Yg^HFQ)XxywSa@~b$@U`2t$81KR3{}q z+HQ4d@`BltweQ~iWRc$!XrH(!o^yK09k1`_mdLi8NcZi1@StFQpZwk%iXWE$SsmoL zzLw+Na|J0Oe*6C>+G2B98TRsc_0Box9g^u1QS$H=`>_Ydj=$2m%3psil-tkpj{2nC zl`Ayt71rO?yK?z+xjjRCLWQWl-;IwNYxbKpeJIfHFPwVd>_OwXyH@kuxVO{0G@)PG z=<x#a0;WkD=jgciGlWUqbQSw7DeceW@oIWL<DJ^hUq$af-OFCzm~Cl1`+cx^dmcx- z<a8IO?LXa~X*e*HIzN}2`@!S*H|~AQ&s{3Kxc1G(_^>&5OuVgMoocc=zfX$2<wnwj zgKNVVHuK!=UH^2sZeP#30*eP)?7}}MX!x>kS$;jHSAi+gd=68zv9imn@Y^O6>I64r z-1~RkI*q|W@LqAAPJx$ks-J7}NvmGbGKt5YjkjL}F<x7=zG;1`HfM%J@W(BJ(v4al zB$o9G=*_;8p>ye{cYek4XU)uWrruXBGL|?v<H*F>?>C5t%d=mw4ETA+cD~obg&&`* z=gzca)0>?swf)5I5Y;Q2_7p!|8)|o$-{z-*^oEM?d5jJhl{ekhT9nu*`{3BjL+6j3 zuekGo&rj*?j?6PfF{^r`Qn(5xUFSAY5ng37EArHqN6qtvxpy=2v;5ks`)Q|Q!;3~g zJ1g}`)ptZ1HfT@&bi=Zp&tNOdj)N!ue{$}3{HC)0)YNwh+3DU<KbrDg&u7-JjyZbt ztjnX2oi|s8%rnZ~ps4N?IW@Zc<v#Dz#`}Lc?c4p~S@-(Z<sP2`rwQEdII?Y0LX0~1 zd|#huroUA@GNgFSZ>pYWQ-5RCtWnCE$S%vr@YP-8_mUYZf)DI|9Wp+B)cehg`X5H~ zTmG{A{-JW*`S+Q9F-x>#Sd2=F8r`PwX;dy>!|a%x`#9>C#tyN$RctjWVQg}d6BCx} zBwbas;h15rwL;(Q&AzURiDy@T|G;{>eO|5D&4`nadRb!wbfvBKPFbCroW5Y6=h;&% zJlm2NHBbAZ^MCQ|=$KQd+UAI)RQ~v>|G9C^{ELpimi5hL`x+|wHbXb~&F(iB`L0*R zJk43QNcpve(XVG-IZ9qlW?!=F8@HY1Z<}`Z*UD!r4$aJ$TDBy6>q_QVg|DVc288J^ z>^-~kMv6n#=E8s(Y`QHiZ+*`1{FCo!(%Jj%f=J*y6Z0CqKXteIzt??w_UYT|H+K(o z95TDIhoiM_iz9o>-I?o8p1u7`FK*iBxoa-Gyr#Tnk$B$O$t^GVleuSJEX+6@-#0rr zEyuuYp|6zM*2X<c*OoX4%TBzpYm(c&fJHK&B~JZ1y+E0jxv}bw_TF<FKdIJFD?Pff z-};&00a;^)1ze$<@48(`b=?{K(nL$TP;2Gpmm(>*U3%PCACR1%UMS%t{{KeE?RGWk z6%N)y-%F>j>M7}3w)No>MTM<aCNC$w(m8m~OpI&Ic`Htrl=*uPoACC|+aj{$;oRVT z2L3%)Q@weo)N3C*6T;E%m*E^1>9kibdy6NVNUGA_?ZN*{ZfO@?R*jt))c+>*$VW*l z<|)!I5)NGdeZVZX^s!Hp?8)05uUohcKR3_cV07a2kx-MzJzn>|Ho7Lgl-}`RhURIP zTPGyUO$<usukTK_nXdJ^DM(SXUs(Eg)5Pr?W*!t+q2DdKCv%tPbFJl%N~b>kBVPZz zUqf3;;U`0S-4ao8)ma8Ir?RUS?Rf3a+_mm|wfYr7wu94o<(Dh(-x0HG`tr3Uf6Q*# z|7(^v>V9@r``?w7M^zSHVPx6y>)h|tU%kZ-?w);B@ehx{)5YC-Q$rlX%Zn@9{N3Ys z{g<28k}I>muzvQ^hvpgU8$)M)%9OL-Qjvbtam9(;97Cn1qD?!Zj%CZoCog_bz31)$ zMOX9cr7njG?`+<5!EAERNy*t>bCqTq@ykCrYV^PCPG@(G@cF$b-KLa0+bT0>>C@R; z^*t&V@~K)S-DIA#wBpgz=p9_@h7T@@skk<Lm|8BwV{DvjX;jRvpX5^aQk6xCOYz)Q zTYG<Ny_E;^AK7m1jX5{VI@nY|cFm;2QdNgLk8q^yEd0=4*^%9U@WV}^j!rdZweF4I zuk5b5yTK~`BiH^1yzceS?oQ>BoBV7_NZ+PyveBY9ie|r;dND2F`JMRI@>|^;6SyY| zUTU0GwS98_GwFbzOFH#+zC2hm^B;qh`g5BH+|q&dDk}B1njHPtm?u5aXZg@t%bNH5 zwX89N#m?UcPd|U@GWTKm&ZPx9YfN(<mQM_giFCc)HlZYF-nwT+Gt(DL-+izs^{ld5 z+cwqNPqp@HH9zxX7jN5^W%1Hr^Ljt7S1%(ojx-dq)#m<9S?T7g@<BXOuIGS6{#lI` zdv1oTm~v>#LZMF^o2Q=2ms?_dxrw_aM0$;Gy33Ni=j;}=8D0(k;lS7XdGGgwb8lVY zlKOe?2#buyY&q+if~>^Nt7h*xs<G#U(^0FX6V3Mq^&B;gdm$a>zFV%MSKi^>RQ;d} zt<t-${3*ScUM3dStn*?`hwjC*-<2jCpMTNyXQ~d<p-Fpwt={3XwkU1qu0=xWFRQ{F z-yG?kq{?-6mT{p~vROo`D~H_6A6=}Q5~DwCkI9{KoNZ~cvhqT~+W}I3R?OjDudG=j z6raA$`Si=(KH6^4=BnRI`yaIG7RojFMSLyj^=I<VS<1ed|9*wG!FT(@`=11x8QB@5 z=9!fo{QP7p=iT&a%WVGqe-VA3@p;Na@7pha-6=9Jpa1gprwE4If%$cluGjedmEL#h zLZz`DU*w;hjfR$)0+nCyKPcYH%eVGb%~t31)yCY~S{}Z(w&(Sqdv2L)9Z)=BeqWp4 zyI*^r*SGO3`mtjzm&e`>xfb&`e{Hc5I=XW~-VBo+TGwp^dbX@v-|%C_JDabnyOe9D z1UDJqHtprzTh?;LGX31w$mG(SPx<xZ|CeyaNK2}pzTmp-;=)HqxA}Dbeem((Qf;{t zB@Zt(PwDQ@Il*t$!+g@%!cXs-kIiqv33nQo%~p7QThsQ$q~Ooo`W#o3k6Yb7RP)wf zPL}P^tB~+pcFa>!Uy1#cigIH=A-(_9qFL^8Z#n+@Y`g9=n{C6E><Rnb^Q4@$8&)0p zHs`8j`p-w7r=OEkx^Dk%qyNLHeQR5<mYG*Yu*a1i2%q_^uy{iL=hL#r3<sn%6{Na1 zF56kocy;5pt1tW=*;K-|N%otplGHow<E1sDE%=z?y@WGCp<0n^mT_ijC7Sr|wn%;8 zTKS;smWfr^tw_@g1zRhm?H95i<C-Ke_3pFOw*u<tJ=Mh{)i!sm4m@D2^!8oI7L8sL z>3)WrmbsO>dCwx|^KMptJt^Ah_ZQQB9K0dzMc#8Prt-Uenij3PHoRQ$_pgx5{*dXf zCS~nA!>*_-vu48iC{@FQGkrY`i$nuI2d8G#wEEmsF{^vuHQzFBsYjfA&9B6i9Vd)0 z{oAz2L)+LoklkuZPazM-k$E=_<dkNszg!wzazf|dzVo&x9yeF-yuZKZjP;lGwZFNV zCaEdDb%<5JU-GQv-qN`fH?<TTOL=*u@b+@KA6EmF_AI_VZKuF*t!OLuxw8*Vxi*>Y z>edyZpN=Yj^M6ulW?lF1`hKQAS9uKVs-8DL)!G#07TMVBFX4UQ7t_>RPsH@a=TsSM zF1?c2yrX+g#g7NZ^B;fRV*XM^c14r_9%lX6r>;!9mXz!&TWx)&{HX69>p$Az6W8Rv za|^TbT61In=CTs8UmJp&9!3O&x-ZF^H}#^ed1K3l{=8M^PPtyMG|-py@u^uZwBPE@ zxr2+#_IKxUTCpWwdT90IgTUesVF9lN3M13<XNK<$ZI9OGyms>3#BbeyuQHq|JIL7d z=@hrb>8lbM&(|$joxrLZv(@!(*_vM(7d9Eb?lp2)`Z;=aRp@uFNk-FBKPf8D@%e3* z<Go!pfA>VS?4_JtsYxk(by<aua(=!>ER#-W70h}tw=`I|yyfxc<<mDWJb$N0_06Ai z3oa=LPycqsWKNmj2SXK}WxEcpt<-I1eD@<Zjw97=rQ<BO*2&YB?|3V{{^7)~+Xl0u zt=L)*h*lqa((@<ZDC_Ib_2+LasXWZ<&Kfp#qx098O-tTBNpaKs^J)J2saIE4_3U{o z(agU5q;a`@p!B_%PkVY9Jz_XT@++zp_h%mYeSu$i`?E=ROnN^4-Xm#O#>jf=aNDb? z^P~zm(r3*-wY9J_?S;v*5Fg(8N(WBdlN8yUlK$=0s&q*gw{2@G9{m6C*6Qn8sT%>J zDtpvcPm;O*WOCfnT{`@mD&Jicmy5Uic_RI}%%rAuml9T5w@m8W6np;7wu(954OEr$ z!xr0{N!T4Z{rt|+&!@%zpVGgyv+l&1Ka-!HlHW6hvB6;B$ykfnw+(sq$N74!wm-~g zjw|G@+P&}ht>`rhA(q<x%==%PP1(`XE}58q;GER!l;e}!rB5hKEpa?7U-Q>|{X9MW zzmx5gjy}kf3%1!}^KI$!6PMXf&%R$j*OAXS@0&(OcdC5MLF;ETXE{b5YuzC(`?cA( z<Q(7pU!UX8Bs^I=J??az_|uZ&q_k_5EFluFul8wuYngKCS$Olj)XL9G<&S^c`hNrS z%9I4<CHZM@=6uUq{;FpaTZ-;~u4doO+4mavG;g&$X|$ZLP5)?dbMfE8!`^!{UzS~1 z_blh!l%~(?BzIPt^)tTIDRow^+{F3H<L6GHM_TP>>jQU0M#wGCT;1UE@%hQqzSAzg zUJ|s_;{57H^B)eEZeMV!yQOqD^WLlpejj~Rtk(D4mE8Tch~>sfRfV75e(v8~X#Rh0 z%K0nP{KMsQr0<q!o#&}IyGHM~@{-px1-6QNnX2tSaICO9|4ho1NxvuhEv!DI=zM9{ zzmE@>-C1T9(!Fhso7mrD^P>Od@HbTbxcnq7IB;+H8pEIq$r2n^-iNn-Jl`?x--@r2 z${SXk&R^`+ta_*G%8m~k7KtzMjk2tqqL^)SY~!92l8j+TZvCB=w|Jqn`gW;+jw$CK z918k!({eW3yyqMCg_TvUb-#0T!N!HR=RW&wzjR{avq^l+R+Zk0yBpTpO4qNhagniF zEUr1r;Ngj+!=81QCrp%ZVJu}^vxlc{LFt4kUv{NbUR!#q<W9#7#^Y?d`{wT4efH_x zzN8ntH%^!&O7-WodCOf{$jj9q|KnQ)FIVNiziQqKA9YUNlj9^g^;pr{7bn^mEDZOV z_rF))_@&iT)6>^0roCIdEYs%7M?c>io^K@s)Yw%_gC~bQTXAdRpTN|qOsTwg-~YG2 zuctIE{zqTUq3#7Ts@<ALCdjA9pIf7CYrI15|C~n}ey2|PT`$uA{;vOZV8g=Xu*LH) zu-h7YO8s5qmijEx%>HZRgb*uz*Zaa6>-T-WSTr?Xcn#mqP5;>}Cvi)b)Op>W!YJEP zwCr#f1FulTRR-Q)P33Ww<(0pmnop~i-(O$(D}3LcKVSOe`Sw34P1V>VJ0+^E!Rkop z?*;yvTJP3QU&ms0TtB<t?RekW*_&UKoS(SX@7tQ0TTHfSo~|g{*&JZD_SMJu^S7-| zZoHs&T=e<b{Yy;_yxXR~c#WLPb5?;p+j#$$=Il(5-eEYQ@9x2j<=4f77?})=E8j_e z`7xvOVB}QO{>gSvSlsIlr8>-<I!i-!SK#{R`msq5jw-8&BzSG*v~zn{C_48KkA%0^ zrH2pS%gA3UezZyF_T!^A&G`=OMc3rN&(>&QcF8=gx>{gL>(}U=I;TT;6@vFXD;Bw3 zo^-C{x8Gl%hX3<j?ip$`m>a!b_Q&wVDuZ;<zY*+9vx}O_qM|d8x0OBg+Q@jd+?(m6 z@ua(#mM!A<nx)|O`1OP4mL;+iL-=~{NA~n4JiL4$cxA_f@?Cd6pIG{|bG_~6Jzvhg z5AxjRw)e@K9LE#Q6Q&jS)U6M^_#)u4;pT&9ZF=g0R<Z?tOtomry_va4<wt&<w3+Ox zACGwUed&$nRNWAJV*cE<%nM&=_8y$pbK%6Q$VumXmS()Y{88RT?D5x+tS8R}oQ*!) z;+sE(d5=r}rpp_C#8iH<NzKS}+5PFae){!2b3@XU)X!}3o_O-tDdrcKvOjM<BlpR9 zs`xa2yA&~H(|_LHhg>dw=y18n{;}0>&zDuqT8Ye8KOE8CE*nz5=AoSPr$`Iqv|P{I zKP&INSpL3i!nql{cddML>E^`cOq?w%oxaVD{ypU=qf^m}8r|dj_H|ajU(Ek0w(6YY zk0UiouP1P;>M2kEc#D0rXXa0iXM5%MpJcchI&Ecpvq|}cO+C7jUk#3^?S1zuV0R2V z$E%PZ4ef=D>ni2<EQ(&=Q+9K^uloEoWmjGaw5&1k_3|tW>5hnBedfA@i$+Ay6Z@x{ z%wKmco^sXe^?6R_h7*RB%S1j|IP5xn*Jz_nru>QDi+rCynC<Jn)lf)evC<LFd=8t9 zHXpuBe#8HB*%2?-CCB+RrBinuO|%Kszp}ac#4%=T?fzbc5IMt}VMiZaiN5NXdY0kf zK}o$wE&7dZnzpJx&+FN@v%Q<ac;IWl{hs5;O5cPycii_%THbYZt?2U0ECx5v1x9Z! zT6#%N^IeSJkI#oyZXcU-#)$D;dh2Ns#gxU3x5F7;20dK&bLBmu6*}hs9_hx#nKFO1 zde0^=VYp@8?uFdtA3w#G{5!92|MOe_iyLn{TED0pt~=S%yZLmS-d4*^>BZtEG3(4~ z4Vt1e7EWfnck_JQw*cPM1greZ8crvA<1d}lxpz~{_~My2Q&)f9J}E=;u1Z<*%`ZEa zo_4A_<4`vL?%o3N*^6Q<XG)rHnXG=QIM&ucZ&S#fUpMc)aNjjezgNiU>SCq`IgM_T zFOIsi{|nnW`F^0l;fZyjddB^6do#|y+1zkH?On~izx$tGJbn7`{QA6~Kbo`8MBIOJ z@!<KOeM@IaMTIQBF=f()UD^vSTr2y0YK69Po!+e?zOK2uPj4=`+IFRp+5PL$_s>gL zId+|6dg~DOS1?@GYx-+1f#?p78^TuGu1!r9Jh?xs{A=>uTJQajRRgzfF<JWm-f_7Y zx!<2IUo5mLl?yylx>Kp8$zlC0?ey)pGOtFTnj|{q)bElEqshyE8J6EL-F`_>yYSfJ z`BuFAzptwGr>}h-R3o6x%%y61;`Ju3M+ukxZvL@qFxgld|5N0KeAOfoySdG~W|msN zxDl39V{<9*M?<{Gf|fa}z1{sY;)GdG@qajC`c6&fY=WBNnRDq=7bh;6IrXI8k{3dM z&uQH~6?5ppp5mwOZ-RGjvH8`i|M|xg)h{m}c;BtQ^eFnu#?z;d?v_jY`dIc+nn6HW z(O;`i3$<Gqm$R+^efR&>FiQ>1hl{v#dmiN6+T$jB;TYeW6>kquz2{T5Aa7^HI@S1z zJonbky}az)PsyZkp9_zF?zT`A`hBCm<rPz<Vea2I-_FjiFXLnQ^*8wWt$E4om17=l znCEG1=jPDz{p`&JZ+cW-y4?7&gHz*lf^>=GRe=e=_$m)r-P$6tbShV*QBd1VlRFpR zZax(9rqs)prK~)|_Sezl)4%^*_qToX7O7vS8r<#INu{KIoZol$l&1eBp6U9RxO`H= z10Jkeyk+wi!KMa}TKk<ZS4h_^mNf|Fy1poem*HPv)}nT{g!G*uQ5j1Q=5*aF(_`+L zc=5-JQ;vL=8y#Q&<v6wH9b+I{-AjWO@%V$vTT>I}ar$@L7zxkj)6dDda!Yf$RN!>? zcMF*PZ+Y5X{QYHqeO=}2so~S6@Bi8UGbsLrS=}l58>OFBH+j07H*a|nII;Ixy5*(? zpEcJN=r*59ZuEV#TtU`_dw0C+O`)Zk$$N_xWq6b>`m)_9^Wo^x6OEo3`g6s#-$(r8 zS{F*k)XloAJ)MWehWSC=KII2D8Fsyh`TOCH#r+14H&f>GuzYgAbI*?{eUbfKvBmRN z+l5SFzURSO%Px8AQOSk}XN_H6`mu5C(d1fWs~Yj=vY)`k!q#h6flQCq+J8FT5Igfg zXZ;iTD(&fu@=JJ|zI^2VGi`s<swJP;7w`RXS#p*29jy}9>jocRpK4q(+vTKJ#MTR$ z|K98lpO#+#HN5iem#<G>Rlg6I@cEp5b?lsm9qA7m*h{Z97K>c4G0vE9@ZL&p-o1~^ zrGo$W=-cvz-EiUk;Gn)#Fi~Unvcn$~tJYa9;@zTgYbx`Ki?vVmWT&osID5y&?uS+B zciztsW#D7nRg?CAWobe{aJ}xfji=w%-Pq)}=j>!}KdC^g*PBi*a$O#J&}h3+`?ggZ zd1t=bks5M#Q`kMX0%gH^OV<928?;%jUJ%XUcz;spFN5`YefygGpB~x&TYO=%j^$0G zV8JC9msoXw-nnFo?AvvD9Zk>QI7<H5to+Gx8T;=YnP>m9hJMU3xE)(yUTD4`q>Nwe zq~K9cwo_aoT#9bL?u0#Ambk01_Pb%Lw!GzuBa)RO`HS`!owDCF!+h@Mg6WNSr5_$N zf0cJyeU@n7%m!n&M03lTy6b=4;AFb*9$%qk{W`X$K;WsDk4(Zl{f&G6TsXTin!QZf zc*p#jA16OG-~VN{Cw)Fcgst|J)n=)3pY>`VPxX4k)1a_GE6MI6XX2;AGqq<Ozc_i8 z-Rt>pURYKa&3;2<&f3(3je#NJr)J*$c*C2o<yDbK*(FY<{Nrhj<q<Z?J;83_UOMjO z$+sh(t2p>E$H-RhUmD}NhB3yuG>v)revz5GpTDsGb?Eb%i26g>lh#SSc^Rp)S*X=! z&Abf#>$RI5I9JN^X`QY9;racB<9e&rUMm`P{+)_BeTd=YC!d!S9S%JI;`ydePwB9B znVtuSM{umDrL$tUu2`bV>8`17-8s{%*tXu|H_+Z2cJY+_gq<?3Q+ZpW6t4N*&^Yz- z$(;2~Mg_m$b=TCq={|k>{;%4W*|p|ht=69ZaoY2aZ__sC-8-J_b^Nyd#_fp?p3C37 zS#djc(dE))wg9%Z#&zNecaEffb@n}aE$99&e+7H<*ubpmSC?`wnY-EcP3Y9V^w5{* z!x-G$>!aR1ui1X}&=TeD!XrXCMyDs-4&yu0Yb$?b3S;hu3)Zh*sAm7Nw02?kjgL2D zRy_Rb)VE;qVy#H?C8me+l;stV1+nj(tp4Mke?|UpS*?lQ>Dv8bZc=Y^)&$+$=Hnyu zT}Xr1P&V(#{e!79Pj_WK&3NH>E_^4`Y&BW0oGTlZ`Fy1hU2;ilRyr%R`{Rk2oU&$? zN4C4JxJzE`h_d|NJoVw8yGwJEXBCwlJOBM&YW(Jv7k8J)_<XqWxb3|IbHSUQrU|Dv zOqbtRUis;DeA3UK$$X0*Ivf1mw}GqRyY<@A9IjQ7o36@Tdwyg>VcNdn`ikp9r5{UY zhM&Dq<Enlt?8g+Q=Xx`qZCF;qshYm<%_+N+Z09bOii$WqIr>+|;dA`1HAY9yD=565 z{#<nP`D@B7=SnPt=keLjR$ma$tZQDXRBv_I>GCnR)$0yCDHJjM?Y2|l?0JWGk*j>? zl=(E<<Oi@QoqBTVsoIlUij!`B_%QRh1!t#n&7ViJR>;OY&+RI=IRDT4^zZzFRkHa! zM@*jFF5Nhx@z^&TDQhFv+t&+ETANK^u5=3CHT$&BJ@=d|GnsF*nlXpm>Ug!~%<>Ag z8<N+oUvjq3c^+9H*S^hh`Mq17UazzwwM_G@)*W0r;lZaDK5V88cUWYtR<UzQ8i@1% z+`fBh9Z%iecDDu0+3sgLJ7sjf*yUc@%6~6S!L|MLyyoccUlYO#*X($4uF+t>WXIgk zy)5ibwh?lI`FpebotLYz2G4VgR#%H&DKD_&WVFTXefdi((t5U?TyVI*&CtuC^ftp2 zpC7jkF5Rk2x3E5zlVE6lH(*KXiZ^e2lZ<ShMT#y-I$pptb>ht%k<6zza2z>s=<u>? z9iEDpEcN~YPGOfzk7OrZUZb-9={Kg{`b!UrtGL#E{C9}?yrDje#fmM>`|nM4wb2fA zUH8Q3mtD{8OD|S<ZqnY&{9*HUvuWG1*_9+RcHNtrnkzBMtn-lQTG6-zo^}dR6BinP z{Lm+JuI~C$`G-*r3u`rGU-BM$yD`3^D}5%v@#LMGYF?ZX4$0J--sExZ`dzK*D(NeK zPbt3`$@p+@?fp`Ind=rGmn6Cy>7Cx|_G>-g*BcXluMxUg{>e4G!ENQCqn)c+XBpUk zytKF_Ph^d(QoIA(R*pY^!e0llMV18JG~imbrRH?P^rbF*{5i)iYZ%XdzDw`2ww9i3 zM8}b$zC*8eF*5T89+nlY^{IKMwuAHSM62e7FSFXMmpJ(Ct$DA$-ngKy|2?nGR-511 z@zHVhAJx~G6fm4Q5r1LD<V}k5tDT?kYo9lnZF0Hbw@qS8WN%in{qN#gQnlqxr}u9~ z=hGcU-MlQ@PMdmOTDj%Ho0~8B#pJ#&&N;a`@nn<too8LmB}@-^@2Re~GS9gr=f2?Z z2esvy*6z_}f9&e!t8Tuq@|)tnCz~_hdbX*T_+0-MZ2qQ+<<$=6>Kh+zKD_HZb??`e zBoEz_zMDT@<GsNvF6e8`a{CDX+)eDa8QLO!U!L1_*O0kETK=+xv9(qG%YS?FLcIN^ zluiF|W7qP#k(EZ#?>F6<9enQ0F^*u#z1t0+R<3<=tD#1A`I|c@${yPqtunp&Jf){1 z_FS(cSHAN>{l(w+Dl}jDzULqF`5no2)qDJ^zqBsTP`RJ@vrA2V^PxyF<{x6Ox3B8< zm?ar^`D>C=Sjg+uRgc#;o#1-NU4D1^xxCt|95(69Gncj|aZbLOpE9Lvqo-Yuu}z_{ zpOW~YyaQ9_OYhwj9U&n+Wny#&f6Y54j|r=Hnc1Jwcvt=C;)6Z^gZbWj%KbFBF#Ek; z{+<)o4|L-5^A4ZyI*}K8Xy*CF@xNrAGuj+k@X$1E`kWWfb=azIU8($%m@ZOlaxhq4 zb&3Vo?w^4xswHfm7M3|)-~ILK)$Y7z*~n%MqhAc}a*@wu_Rc(T>UwXmS+|nESxJ`m zWV=7DhiwnVO)9VdW0uZnu>0d-lXD4?eDmWSubMJn-(&7qvDBQ!d)XA`)ncNrwy<0{ z-4#4{Zl&7unURq^H<^>|O8Fd&IdXQnl!`}gnfSRy_CLSPPfM#W%YVN4I`wJu{ELj8 zyUv}9NlJI)x!?J@TEhPC<LN)-jyPXo-?>}q>2{qT9enlke}4*IvR}eV!{C>1oNn~j zz4cQr2i#jySRnOGFV}4MHHGsmEJo26kK5J%_&L9KUt`Pq<7wBIufBSK?S1F;g&Vt1 zXLcwo6MKI{h3!g6`rAppCvJu0&R8O6&YOF~SSs(AFC&}N^mqIB+&Md2JAeP7jc2TG zYHy#{F{xWn)@|{{oo`u6&q>-CKeM^FaDxBOjwt4|$#Z|6WOF<fylb9d!Y=8LHNg+> z{H)fnX1^Y)zj@Xq-f3y)jJdBgK5fZ+GySq(zR}Xm7Yodmow>+(K=U(Swb0@`dq+<* z;nS`$O5dcJirX5@3fnENmOr;}UuKr}<b>BeA(I53DCzv3O}|stcY3pSs7~xV8)>-b z_2rujk6v14Y@(;h>$q!fMUwA~BRj<<8*VGFk9Z=W>HJ=x%)UU@xI{?h>=QQ4|14o# zH}wl1zFXH5J5g<asrd0o#;Nyf)^0L2KK!<K#kmP-tqCQW&pXbY-pcbJrOe5ISIC8H z{pGW(e!fm9_{#skbN+9JH;GCDJ#OvGZg!SPwpn~RbpO`bP2ZOO*57D6zb)-Y!>50* z-@mi^pO~@CTmPo|MHBhjhsCEq@Biq;rey!)?fWInx)-b5()VTlaPs<E2RjSkQlgvv zh0l7HvA>;bpY*(Y^Wk(9b8uU@g;wSVbvJ2!<-4Dha?@YVENyds?PM)Hky~N$=hOUm zXNUGIxykW<dQ7YJY0u+ZY?^Kfa{rZW+T^e!PFs85=1UU~Mm%}{*LX^N&iP$keoj-n z%d38EI=gIno{W!$z@AUL?|ZiYd$74*_x#^q*MH6_n15Qx<-<k)Q;A0|`5oB*>znl( z)(yt1eoZ?rb>QCrBbPnyGz;vw{zmrSy1Wf6b1rQ>(|6kK*Ta<;&f3^~eP1`ZtYJU1 zqmAnm`|q=A0@n9vuqno;%(^~7{P=OFcSkpT)?G5mea76)b{;0or#ty&gSIeV7Cf@o z^n2~Q;wf8Y=Q^=uxM-f?NUmYOTfF42wZLhH1-FyrWqqsJc6fi>TApao8GQcLv69nn zb3VvOJX+#gJ^A3#EAlSUpLaLQm#)6N<3OlfTEU{)898^m?JmqUOPBSsR+=cV;Lh>Z zmTiyUpDTFs>s*1(eZ!n16Y@7~Jbtc0@JrEMp~D_Un;m3RtzPxGPFTeGBWHWu{7)up za*rj=I{Dz{hD#r=p1ApWYxOkggp)u2Ts@m3W7EuYQ08?sFK3jnd-B?gsl~J2@0u== zC_du^`~4HXk1iP4n6&s+EqrQ~c_2OHv~Bu{_J4d8KPJ|_(@XOXIbfx#!_#H3<rTA= zS(BMSsAhIqywS?_VTwsN8^rmwug+3u;q=?gpPf<Nzqv5r-9+2C=Nw07zhAcV-sFvk z&YkM)<=t`fiSyyW)9-y_XJ$(1-hZQXp22O_lJB`s;tzAV7R6okN)P3od46a7uV>%0 z4k%Q9+?gZWd%i6F@_jA_4+iDMJI~GMHT|{f`QaDG{Y?9L8%*sV_ek$m;oIADjy;XV z{o&2&mp&H1@U}X9L2;q0C!4a;w}-3O{wmF``hB=symQW_y_WAY)bkb0*G>$*{q6EP z%h&hP*&i{kUiV61MgjAknR#>HEt}`(e`5EWA2Y>sUs>%o+S<l*s5va`+r{Yjdh2Um z$6CF2|8+r1P+R$B%aq!Z>!}kMJJwGw+f#5=a#K<AY{PGiuYPvVx%*&s;+l%H%l1~e z1Z<0rTA6)BN>*h<SI{?$qKfVBIdr~H^PVzyx<IMkS6+RKiPk1%e;%#fuxs5x(YHdz z&r4Pa#im|rX0~zv8`O3>b8S<|U6=Q@j}rUtKQpyEw>QPuFgNOzgMjymliq^O?V0~> z|LlJ&B>3#^HNU#f(rNlNI}ftvJ=!8zSLl1pZ?-s3qv9h6e%FYZm1$Qk4s9{d<^Gqq zJoV8jr>&ufGQv|Yn+gV9H$8A}$x)NntC|;oXxp~w?v9`7>WtI6{+q<kb&XgiCbU&Y zy7f!8K(1iy&oy7vE!SPXsI{Pm&17o4#ev6CuKVY9iN1NZa<{AWfiGqTm;LP<*$m9W zxE3Ye{5j>L$YZJ6PkW}g`G*;1J-l48JI7N!iP@evw|tkP<<AN0>x`}c?G)Z^sm)Wv zy!+@e^B*j$m=pdLi}!MzK6Z0~nC%R4PYr85M*STNXYS~e+AF~lFZ5I<;Vv_msI;wk zsKck55eiG>tJa2>JlwP)pM3#GT;VdoY1<4YdawGm^H$_Go#^M@MW4%p=U4?SH_v}` zeD31J<>{+xP6_=9`LyMXo5XV8E9V|Os!gtZ?QUZwalIm1O;~UblViiRhYL<DzonQ^ zUZieYsj%<!^JfmJLGht&4yyhyj=C#dO4=}Ssy5ql$tRvCDx?jjzlmmlmMYwHpru$n z^8w55qy9I2?DjOzIh!{z{D-X59#&^I?{6<cHeSj&#kia`M7Pl2Wm?rlRYPUzl5EZ! zKV<oTZj(95?kQI}*Ue_O?pbRyMIL+mHIEfmr|8|ADrU$uxv%))jp*>r4yPMf%(mLZ z$WB}>>2c)1{e#V$LqCXSe-YTZbboQ9V8{IvcRNlk<*k@gkTT!M=bi&+%|$JvyW1SK zji1ityZW4W+L4Vsvv}DIm4hvI-#Py*!))`y869ul{9<d?dZ}^uly=e~-R9cM_ZRW3 zslN8#A@BRS<5IeFqhqvF)%!QCo4Zj(I%Vq34fdCe949TyjYyEb@!?cNwMh@ROx2;A zWhs}OW{OGQQn<}@dIDqqt@_e=2ZhWebl968xZe|FnN=C%J*TAP;_W)&EZ6(nu3x&5 ztNm}{gR&D=y^i}^J(tcpblb+wT065qsyAc}U-+65wuaru9{4vmFVm5+<^TF1dG9Q* z4NLNOZRniP#+JRfY5osixx<Ib3n!GlQ#u`(x_7n3YMbUAr`S8b96Onwpr-eoqiKDm zcC?kU6mz=6t`8yeJS1lxHeYc;cHT3`4G+C*R19qGJ6Ts+X-TbclI1Op3r!K66!FtF zyLO3VymsY9Wzp+3-~L@N(qxgia%bx27mGh@8JyVkNyt{*r$TDl_Y;1TCv4jGnCtAc z?25|uXV&cznz+Mn^%=IspIXb0sN26ha(z#?@rhrW-6qc-nFOV*-g4G&O7#~Fnf)(T zl}g>|>+fUKJjh*^y0ckOrAdn2A)~@vYS+r}Ll2aMIhlp!ZtecL*m&Nr8M|3dy{$Ff zk#;~pYMHqH>zmhhm@8#6PHxy#?7vY`#^2$zShnW=ugZJuCoap4c>1g5yk@fY9FG$# zY+bU=cU4_6{dA)vkSpoNe7)~&t2?fFGd&H@`>^TJ<5m6VPImM=c<ngG7;vL-5^tWn z%1-4SsTbDm3zubbe>~01@0V`!rMYJ!o-ej}>6!D&w5}r6;D~nhO7q~hP26u@9Qkmr zwfv&h@dtLlZk`stlU#8~o2SQpI@iMa{~u|7{wdk+EmfXtWYQrKH79bCl~cvl&aaud zk8`$W=BqNz&ytUk4KQElaKQVYZ*<tU6{<}yO$|bNZr{CY*v}9opt(hFPuB{k%`C?= zMP_cS_h2v7H!EyB8}Pm$omp}7>dXE$<}=P`-V2>ya@MH)@w2JxBASmq`mCYd+;)@a zRM3hC=MrWFe(07}-<jC3?)-1Fz<h?ckL4;JEqvOTE|=W-**dr5(*;X|2h!Ih9`Kq^ z-x+jZy`2k-&$L5l{%_jzk@<e@yxxRf`(K(#uS08N_Mh6lZg$62523(b_L}!eV);)` zWOgW@4>1tTouj=^>+}JIb>5%Pd~3;?P<qWur}dmsVc@AV_NSC(#BUzIy?fr>t+Hlk zzP(HPyxh3@N$|Dq>F=L?UGF}P|K5+5^_Of9oXel?HnTLg^knsM(LY-qbHZFFw=fzz z*_~`~*uCXI$*x{5*-x$B-#0cL&~}N8b8nxUx&L^<p*K&C9k*%UR@k{&a?u~o#Rre1 z7+*8x;Q#;d^xd1$Po^)O?OAQJ(r0Vtnu%@~1I}npwz*$2^~k1=&TiM&CCxwD``W-@ zQObn&^GA)V?;l;uDzV|&R%dRziwC(Q8QN{W=kRQ<-(mL0_lV~E8|jO*?6yrQd9rZb zJZ3d*Ip=AqqW78SPi1+yHS+y+`+IXW7YIy}v8(v(!Ea&C5%pdE_b2_$i#|O1bd5iL z>f={_KYc!0^gsP(^ZWAUTFFULwaVPGz0zkl-Fmu;=}YRH_@}LJXNQ~be3RpUc6$Ni zQU0|$SKF60YfdUXQ28jeG~~+LloKtI1&KVfrW()wBfjXXQL~{Zw_KC0L&0bH(#icR zUELV%>i#Q-?Wt2sIox!^Wa`1|kItO0E52iSJ1FP>BU|z5>XxhiJk9^7U6SxuM^fg( zvyT(2S!UH6E|7Vb^q}?c{Rg$x;qJQAb7W#(cT8BjSiv!P(<|L4v)wQCygL}$zIX1g zm!+N$E}1>o$WL5-ZSDkh`<jx!tCk0t{dIJRi#)nBKI@V7tFnD}SFOBlVy@E=sP}K# z5-a6wf&NTS{pO8_3vOETCC`3ZrQKuQ@%BTQd(2rbnauY*)jYzx7Vi3FEuuQrpzXfM z_aeC)>)S8c?A!Bi?qN5L%3=}k=8e;{=cam|zqqU1ZI}Gsua0Gv@-Ln=>{m|uV!CJQ zZ-rQ^BaEBv*cUUq8Z(ut?O`nxzs}ozdfCGMdsj9ue*K{G?ql(lC6huNq&u&^eJXf# z&(DsA{X9N*Z0}U@^q<L@_Vg2Tx$gPDx413qzNg=>)O})C`9E1|+sl%kCb#ok=VEOl z=l%P9eqp(p-P^e~-xq21-&}io+O|Up&VN$BTiO<PCAsU*T~u~7J|tVp#I^rxNu1H| z@NEls-{Uq?@s+o9>gk@njm^xVbfu(aW&6IW&#RlS+n0&`xOvrn{TJ2!mktWw%4Yes z+FjK1>BQDDA@w=CW_>c&nN?YOWE0;U>AvWlY+tTPM(%8t`?b_BD_ryc-lo~%4~{;6 zzIvAb|JL<SQVzPb<P~zUKV6`=|NCR}A7Tf8pPqXE_uVy2Hb1@Nx!$p@T(7#3Z%zDR z6+dbJSuYK4Y*kKDmDaw0)!FH?an=`+ADh~{lnZkXnY=1zTm5-gl1GNOv-Xjeob>2a z%gN`(^f`ZUi&mUcwlY0vb^3hoH2Hn|Wb1@GRp$QDWd3@y=*qoG^(SxW#YWpzez#?t zF0aRL`+Ww7g@xzz{SSC#C%eUbNbqXe)w1vXoA;%YitgRqy<?ZH&(VU`{?sk`yC-kU z-+Xra#7~=S4|hIJHr;bEz5L6z+o{(-UFVd4(vtW6^t!Ek&u%{SGOF(Rt%+|IF5Y0U zAnT1GA5UqFRMy+Rpz8@m0v<jGPVUxbY+tu8z_d^yQ+FdP=ZlHcz3(2~tPs8+YfH}? zFWt74u1jkA>t1%&Jo~ch{S0n{V{Xms71O3|m&%pQ4`ZAaF)#mO=eZn%^OwSInuYC4 zdva|0sdS08MJG*bI_(OL#cGV3<RT~8{mi<vMDln)qlekWr!(!(-`(ZIru>3+XOiS| zoimZSW?imnr@V_kde3B7Ewl2@nI(7slspz@7hBhHC2ia8_w^N(-=ym&%ifQVko)&Y z|MR;4%xl<eY<27($8ps>dR;xC>-O=Sf3>$>9FURQZF^_QTv7AP;{Q4`9&f4raYKLa z#Mc&Y<JIe)eA1g+c<G19u0uYz?tCwN{Jn0P&ar;!KRf;Ze7sw7*X{j3^$-8Oj^<rI zzwGk^<KJIC#n-;y&9kb0&z{<+_3?H;UfQ>?ie=Vr4}M`av(fJSw8yvF-kO|haaRj= z_j~=pu5P}XM8RqeKE3VVR$D0_eIdG$!K@}A_j1+cxjKJ5_1~;;KVkZoMe{Uk+P$(v zb-%)wrD^(J?NS!e<V!lay}EkS@k1L{d!L)W;O}Mon##&&;gSveKe2tO{5LO@J7ZV- zBcA7;3ofd@^-+t=yLa#7mm>k;8ToU9j`#L^r->A|ys0QnxqUZP_{TxPls}K$1>KsO zb8PQ#o?9q-$l}`U4Cdc&6@O3nNqJ-Pj;H)N55t`chO)`0j>*2;decpLf2m8y%H1m6 zis{Vpw}W$%O!u92FbS|fp(OkAsbySGzE(MtHM8vPk|{UMZkat^%q%b5V)aLMj>mVU z^>1yD>3lg_|H(P!FvIdsUDE^KUb|qTnHQ2GdE%be?58%;qL0@cF_ZZ4DUi{aBi-+& z2ix9T8CQ332zPqK&)?fL(<@<dviAj>j$^79%8Mu637OILX!pshN<1-%9H~8XZI48H zJvHon|6`eqlsebzNVy`uw_5Sns&v9nS*bHBP3Jul``v!K&5twnCw@QtulaL#{Z8}A zm6p9R750~VQ>uULt^ZUgHm8OC+l=RtAC7Nm-u&FqV7}Uy2Q^af7j8X%|MDM`{|DZ` z^q=$n@sHXcm;XHC-Jd+8_SU_69`hf?;$?T_$}Xv&`|zXn`g&=Lzmx6CALo^p-~T@~ z^<nw_$Mv;8Kb)=Kx#!#Zf7xlf*C*~;SC?=&a_d6d4aQg6oVRDBE!c4EpltPX>4!cM zE26XgyT32s%@*nsiizBCQ1`=?T=VK%o$Ix=KHb{+;LWG|CM_G5cBH7h7JhZb_uK)E z-HGyRUtCIi;v8Gj5E-a&@7MF2f*<$`Hh<fAaqH^qmA>D2<yP99OE_>@yzzC7>itFc zC;9(awr;k>wu!E{*6p~G?00+X;Vn5|d~Ywg7dvwX<D{PwKNL0A<t|L;t$3BNG@W7U zx6qnLC;rd5GfQ3m`m2jKU#z@pH0jQ@@78Gy2FF(~>oDywdblt9NUHzpt?SGjn;z_X zFmb{Mm#`ou&-0fa>#dshp!MnW|8a~GMZDIf{$in=CINr!wr@8qDDnJp{C=J3`FFB& zrUVBhB(3>%zQFm;k{_mT3?A*e`+1e$Ck}h5-ctVN!UsR^Z0xB%?rx#|Gbd`+ah`{v zqAMmW5PaTn#Oq3??CyI{7W({IHPdkE56cM2%I!Ct=P$g({>jQ<;m6uP;&sK9Pg?)8 zyl0-eXPbiZ<cn*Mf3+*@y=3IO;$5@xM(6x@lj~&Ue$@W@p?>!F1KIoR&vfS4-Yfid z;pSnUwe!F0@xFZ3_U}%wwA}9<ANkjPZ@hh+ci)G{-|c>MzB&Cs`p$3mwEp6-Uv_za zs^=`+yxhLv_m0g4em``+uP<afct5`Gi}ioW_FF&NI!b56YYBXx>F1SIdg;>5sR@5q zDt*Y=c6))Ngc7rz#j&ZI`$XOx@v&9Wskqf}()+Qrd0=l^!HVa8>MMS@C-AO4GD)xJ z&2E8v+mtzuDTjC5i@EpjqV#EInHf(RRNwk6ES+{FFn-~UFV1(k_Y182@t|<#)7FU* z`wn?7XVIuwzl`^uShxPfyZ_95%-FoT|18bTYWW~-w9e?>%y)f~3?FRYy-jxLdABKM z-sVTTR;zl>FEkKKzjf8okolSHeXS(klT7oH{0?x$JiNVdZrzz<yUT8OIZ5_koOd$! zX$hyUnZ=VP=T`MgTvHyqn#QCE+9?Ml+}ZN|-BhWA*UsI0Ci`cvPv?u%jFV%V{$y#| z9hy;Yb|^wJ-*WF7?X8tDD|uhvS$I^(w({J}Tc>i^^A2yGo_$o$k}o4<%KH%S)n*x@ zf9Bi}^E&ZzdEn+NnUQZTj`$x9sY}$q_nD{n!~Mq!GuDfJ{Ay(+`gc;{qi1>_?(J84 zEV*vk`^-0q$Lu#8|L!^e_q^)|{BE5uw&zZNa{IDeRQkdBQ_TwQ9hbfQTgNW_pjY~f zSN3f)cQjgR$IdukR6S>6t-Se;!-qdazGVKM`Td}zob=r8>GNae{dxL7>*vMo|NJ67 z9ac!&N!u5c=$)JMeNn{qnh=FIoTb@v(mg#3w?2<#dH(eT^Cw{e8=DE0_4BK;Y?s&h zT2FC2Z55z+w*KRzF#Zo$zSOuJH%q;w*m{508_&9*bJkU!(b<>B#}uYMPsP}<p!2Tp z(RZ6?N&e=#+3@?rz4(?(eG7Kyh@Ii$FwmXdZ>IcrmsCMV{ffhaYbHM5&Go?V)UwV~ zOjq8`=x4O7+4VTaZBB_?l(Aa$F$cZi1yT>Po{Hs)*SzcVT7JW`>)@(+dpRZY(o+|0 zKJ~BZz^%qd6YJ#S&L0yLUaGyvUGQ<P<d;{k;+R{yZpN~oklOxzIoq~B+4Ib7zE0pZ z-1qFp?DJ+!(sy2E2Wj`eXbP$LWi{{o;Zw4&0~Wd&?0q}^o?cXpIg_ThkXr6Ly`_tS z+1(z;1cl@`UCBAD7+m@<{>S!z$KU<&wSBGrB!%n!%)A-zg}+<OcTJveW>Gx--o5?L zjXx@Xp7%Yn;P@6E{&(}P%{#aJ=TYJG^XZRz<g4bl<^MUrf5vdF=lma!f6qUX{Gk2c zhdamL|5e^z_*r_+-`YRbF^|9H&EK}%)MgLA&sr9n4`1p<CNGcH{_QJ$IYIGYYQVQO zUzR&>v6Fo9E1tJS(BkJ=wjG;0-aKN<e|5jbIsL&ZU!N&H>}>1jT&u9Td{ca9?eqNY z7jtKSt(4=INpf!Zxzso(lK*$xLsNkdTAwU39qeAu>zvcvzD)3jT1d(AwN}fD&g32{ zEianEsg#j<dgpTAO*#FZcNrgAXE7LTd!zAX%5yW3*d7a6_D(4`$v)Yhqc7KY-OM}c z|8Uwx>HaK^BRYFb>Xd{ydCJXq|Fl`@A^KO~VP(R_;G>rwd$CUs=lpoSGvkz*J*SvT zi|kdt^G<B*GFjat@16)3Ei_P`^1<TsYc?BxtD^bM{n{P7j;<}7yiDNX!@UP$^UjCw zZ|RKT+wkT4`U6^P_Gdm7lT!4$e=a@u_k_6%Oy>Nv+SqR^S*z###3}t;6qni3Bg^)s zi&_8g{%#ZcQ90$^(d8`mV(Sj_=gmFXY{6`OFwgV%mM@zN?7Z71mP&B!o}OOtz2ta( zPj!#^!$x^I;r;vj>l60WOU=tX{-N#rhspmk%QHFbU$&JxKeo7M^7verdG3cV{C6(Q z-;lX$bB4@g@h59HFq@n3+>en<VK~60l9pxtpib`l+8c}$<IZ0R3%d0s>VDhVUlF;h zk4{dpe$o}OHSuuxrK8mkmKo38ut(cZl54%el+9vwo3-PE?uJi`iFV(AGV*O(V*R7t zoe{s*h1}Zbvt06DWAW0->2KflW{Ce`TVbC1YUA^1+Nyi5b}o<pym<cA=A49iM;yMm z{!LE^`Xo2wxSU^oM!t}Rfo6=b)joEkbnkMX58t@TPghlQ{+)R#DD9nu?eUXkg|P>u zR?Usr^(BOZXUg+8d2cq)Fn#c<;!AgksD;{v^Dn>do~gI|ileiI`R<=(4X6FS&Wv)O z5GG;9ofhmhvsdNsi|!A4bEB`;J{NU(^k&Y}aOp2Wj#CYrRIQkss@^cn`Es`3`^i5Q zzN5R;D}UYzpZ}!P;?p#~kf_j&yLAO>itl=;uJUl5cVTjwkzR$mS=xiI-t+$aw!C>j zZBav5-Ln}D^}D#|oSCXTLwknB*Me8C4(Oe`F1L2VCbjk_A4`57ir@OVUP^}1y~{S} zMCq@{kCW|o+&gZcIloo?%)IaOTa@1%;Ge&ff8E2znLBn$+vmNXzvJ=m12Ufl&h6Oz z$iDZOU0uKVzn%Pd3gvv{XMC)dmpnTAOYNMGyF6E4D7$<3-QW4G#y6PlxA6Ag|NWy? zKH_is&L~!k@`L=ziL0-8pRZbR(CS8+T;8YLNiR<*PFDD;sGVfotY%btuIf?SA&Xmr z(@(u!nr@(ImXvFftz__US9oo6z=Ji`M@8eqm~-=Qbxx>Hoc8q6-Z`BgrmCw=w3%Wq zYhStf?abq4LhCapm2UpD`prDAjOyukzb^2Ow5rbai&-kxaHS-#tYmA5`aQPUD@^Yh zi~o5$cY~5g=8vg<7gj%g_@wX45!K>jpEV92pS<j;`HTZgd5Z$dpYOEJVi0idTslFQ z$&f|M!AjO^x7*6l4O83fH=k~?lHLFR+_b-u&)Saq|Lj(Fo&GyQWd8Tt&S4V%SCtuR z&VD*7<Zkt5PU&N*K)H;hCCmLhmGuI}JR6GVvmO58+tzZ(+3xYIwU0hNlnzs?;J4bs z!1<2NYl}^Z+O+jM!tA=m>Ms9S`ZjY%$MqFESv}@DBqsc_+r{6m7WQE3`OM2&E2WnH zXm+UXIyc3m=+yTc;s49Z|M5<^k!V%;`@_BZId)bb?EW>*|NUT2sl3ePzK802+JBnt z|1sI@d*|);UhA^M$A5f09~)CIEap}&b~brNZN;DF^dB?c6-G(OeiTZpa}M5d@M`@V zJ8j<^n_uwsFWlO0c}#M~L*pI)tt{*&RdxM(_h9~=CB7Sr+sl5pXY+npJzLs({VvIb z1G(#8O`Oi+v-z&U{EupV6CPMizHMK+t?d2m{ycBKf+fth6InR(D)+pyQTzMux9z^_ zim*K#C#4%Er~Ou0IpJ`A?$ye(n)4>^jpR(JdB8leVCk#{>nq)MTuc1jZ2hCQ{OHkb zYcysvw+a`@Je<Oq_(+>mj^*lguGg=RK8&kSZ4X$xp3SFH<b-VD+N}$$6|`Skt=cog zWY?em%a<&seQF6m=QpSFch1eHCXce8$taw^?s4(>jNVIWTNW=1f0ooFTxh;)&b1=b z_4CiZx!V^XKJ|XzcCB1nxrE5u{-2I@7?p73#xK^K^YCaEL;8L0Wx2l`MdT0vb`(;c zqVDE>v@G(1&6Tu+6EcNa^%fmz(RNJwY$NY<^}vmYnFotzZ<kp6Kt(+_jB}CjDy}9M z_oAov#!O1*cCuuNY@Wq!BUc#tMQS$x)MMxNOuWHzqRk~!bGG09bYX$W&5M|PjWX}O z-}U|T>Bl?_d8N)NLEjSpR=XW~bD8)3W%b;5$6vP9%WXd{9w)c!@sF;*=DYju6wBW# zmR}_-w_~UOufiKYl4TyV<y~USd-Of=@2<wXhh=`-^XjquYdL*EenaxDWxr?t*vW0b z<G01*(#c^9qYoeJUVix9`OjIaN?EpCS?%{pr|$L2^}COK3vSG<ZxQvd`@^$2>iMdO zILFgjOSdeYp8aPhkJO*Z(?nZ%k6GCJ&NVyvYs-e47q;p53HwLNo^79%b9z?U#{if3 z@@FAuTlrPC8tWzrU$d9DS-s=lmeV>r*~HfPOp-56IM*`0wR^=qVMi}snJK&$@(W)* zz8F7&V<q!T{`&`3E8jUHY4tTZFwy0}H|5p3>t;;Q+PC`Pi>t?3Kb_+0{b1p!G<BZc z;sdtsZoem|TN<!m+w#NurP+Q<mp#REo|>knt^0EOWeR7ySMTpB3Dv<DG;;)`bVNhy zGfI}2JYEqMGB2lYrskU^OTO#=Nb+~jc5U7uyZ+dWe={Za2iCuTyiZGc$+@mzyY*Km zG)xa?TD?N(xrMZyV1J`S*7XIdlNySCuD3aMRW)EGN2m7&{SSrTF81>%35sin^d+2K zncugK(LMZB<R{Up2USaQ+4Xv?ihf>lyznMeB2sI<;w6@@xTovC2+Aqj1@`}+H21%5 z)B8t0v%mb^`yw~<=%)`>AKEvHO8wb<sqOiJH!pkY-=#m4KhFE+W9*Jj>tmMB{zeuo z<NaeOdwALVkKZ>`|CcM5x8L#G;_vSbI}WE`I(JCg;{C3JD=*x<o@|%yD0|tGJN=0z zcl{%?o9p*|pSzC#hTXUMj9W?-`WaUzM}L3gA$7%LV%LQ|pB5_qxuTqCEtXKTlIPRX z&s)rW=Oo_ot9hOOO)21g&i7YunKjS$mmOx#J9Kz2>!(?H3cAd1MR(NI=0E4UU3UEJ zfvbvPvSB9o(~SHy4sTJt>n0Iq^ZT9q{vR2wXMQU%i{Dh^iScIaDd1hb{B!5~12;FV zGLHSY&gSO5OAHg`pKO*Dc6*{W;rO(53M~G2Jhd1yr_Rw$R$$)yE3f>#>}IA3O)r|( zCh26Kd@<X9=ej<9%c+f_K34TyR>u}jjHvuwS#xoU#+I;Kt<N*Io_nolmpX?vdg_uM z1LH4F3zbWg71kdxlnU)qum9NkH2r?<&R(Ady`D8QO$)aDx%-{*ecHaLn<o}?YAenC zUpejdy84`d2R2*{oTHHZrfcrO<40zuJo@wDnEoW*?%CCPPUqVWn<T{=eoS|D)wk^4 zXXL%g;nAZjbDO2Z4N3%dJPhA_;;`$vm+P<p`qq2OAmGHJ$>zK(mRP>8P4mc9cv8}r z9QEI-<*9ki^Ls`o%AaKJ2tFsi|Jy@RweV7_+gtl@te?ns<rqT^o7XGjpTcuBR`T`R zK6ROW%Sd%i{gkbzLMP0xn#*S1?7Hwth4ymM`;Iqxbc(m<{OsI*DPrM&m-9=1>wi9_ zd0*?pns0@h;*Uy1_WaQKo>_1tng8~h&k}j5Um}n6Us_`Lsi*$ks%Ac8W0y};J}JHx zyUVd&+Ul48wA1`|kH4J#K2iC*e!2YzZnsBl+nh>e_dJX?xNaePLI0DgSoDd^B{tdT ziVM;<oqBv`lhyOjXQI}|`!3G4H@X=)cd=gZw#w)eqK9t0II&>vqU#&C?-YN|(5XH@ zcwcis>E4tWO#_Vr(?jQFcOR-a9JzgM;Jq`9VsoFqZuDO3$2afe)pu`BuTyh6x<f&G z>O+T9i(KDM?W>mC*S_s3TRY3gudXTE&n!~Dy>rLGa|KN?y!u6p%0GEB<Q(cea$G)l zib3MjG@szh(=N~3?0)*a_!I9w^Bei8kr8S)n_YMHCp7CUomTl&)+_E-uaEG)z3<B} zFdXR0U!2#Nb8O<Nl*bK*8Aq5{RK%7hhAK-;E((+9&<si4JZVSG`rQXE%{>3QxaQf1 z30Hr7edPD!gV)(T3uWy(TmF81TE!;*MyBqSqt-3<)7Ig2Qge1CG*q&kkY%20%W~be zKH-InQH4NR@Z#g*r&kyCoRMVt&^XzC&!O#C)(2mV4YJAJ%G48fIixLW)f#t!SDp;% zAJk_GGVu5ZuG;+Fc+1t5T(g}kFU@EWXEiT8u>Sc*H>IO}*6)wEUP;y8%ez1K%H5Kn z#nYcQs{fPyWW@g0h3mzc*h$sD^48S!^DF&5|L33jpZA}hIhb=@-@9A<u;PrThi!Ll z4W8<A(NkV%)2)Mj=g&#ANKblGmiA%t<cl4?=^<NG73Vx%)gzg6Bwx8d)@s5T1>G~u z+HL1H6(_8^Hh1dNBinDR{_=)H=XdPBuWokF>~vITo3qDh#=p3d@TKLiVolCbv+4OO ztR-4!ywUpoFpT%Z5mm#N>@(-Tcy`k<HA7nOuh7P8-lZ$&o%Nspvj5#3on>pJ7oOxe zes&Ra;@NCD#feXz#Xb((yOie*!>YdYXUo@p-=%r<#4Qp185^a`^Yy07r+EH(%s%aT z-Q)fDQ<LV0KfNfq{QmtP{t`$2^UEIB^;5H(XUwqX|G9T3pL5FQ`tfdgbEWaA#*{?H z<$j7USgkTY&p1D|UAD?w?rFdAIqy`i{Wfb}^Gt8f{yWP`OJ`kRcB;edf}q4Ff2KWs zwOjs^?j&ue$5M`V?7!Ch(DKi@V#M@qPVW44ZVu_0y?qN#OY863X!G&w@@eI9YyGot z=bhDT3({VZk?49===4`vh1=KnzMXx4i~T09xk)xN9_@a$u<psCU3>1IQI1&nL-mq% z>>_oO(1)S3E_|>#uIzhz_2%<>3@^+|$}cc5yv;7T%eYKOC;HaxSu4X|u6gF#=>I%^ z!_=UF+ookQ5sxHl=V!=l)bBh#scZc|xtGg=5<;?>L&UECxujK)^S1f)>-+Uv6PIkY zR6WV#_{>**?u892Zfy8`d5U1Wg^#u7t<T5bU)*q6VE+Cat~rzRlFaw7o8i_i&1>TS znCZ=$B}~H18!iYv5#JSaU^QEPgZY{)8NSEb_Kx#f7MXtHt-Ald_Kmc3Obz3mqn@i9 z{(9Zyum7E|E5G;i@$9O!e<y11)r!uXtB}usY}I7e?UgS(rKGAiMI3y1dDHDe&O38g zm}HfipWt;jsGYMVS7+l?VY}#6*G^UD-<aAeYy5Q5xpmS@moz?2$X1TsaV!4B7u%Mn z0VP}y)#P1w%}PIeD#vmP51)z4HOnVA?mV0SMb|CbqU6Alv=-H~CB|}pLv~bjU45zD zcucYGZG=>sE`LDN_D2scelzM=wWYag?;*$Ad-xVETU>G7eqa4ho4NlVnk!FnRZnOT zUUj;~Kf?2;q3o^y(_S2Ly0HJ^(<d4XQ<P)n<}P{L@oU@Ve7=j9`Lv7tb~1_->P(-c zUU@}&@hZm_n;w7TBM+Wkp8IQ)Y*U70YI9qH8c+Cr>!`KSZ=)TReBOD@sWE50?Q#0> zWP#PPBDbtI71S8XYdqGT^4+E=-!4oo&w-VHqHq4jvrEL+KUye1cZp2*!?5zR{yPuN z2smz8kfnZpa`CGJRT@v5Wkf<6*qXl_h?EPm?>>CsUflQdn<m}XR$skk_o0n3rXO++ ztTtM6D$;dcYNi9zwepikWE7HFzn+e0JAT3B*497Cdy^jQ`nYx870<HVJBoaM9nUu1 z`TSw8iJ5qY#XT{@7sWFpd7pFoiIi*2^zJ$%v03Wk)N6CvYVNlh=gsLi_OnlOvv-&* zppg3Lx&2Rzy+0MFHa&HY|6C}x>HO^nXXi$q3A=kiV^eCH(#GVt=Him`tBwW6*u6`3 zO|6QuY>eBzTmH|{k45JH0`jLu6x#oNTwieEC;y_Kd(Nd@u<0&+=DPITdz<<1OGB53 zm9g!zSaMJPgZ9j8GiMv?O%JtS8M-LpY!~N}PjV(Tv7R?&ilnCBy!RyeorCN5y1c8Z z4|ub$u3aF!f7K%8Sw0!-3rb90l^%ao5?d+xtGZhIz+0;`Y-QZLe-$1&)3Gw}`AJb$ z19!d8P8T98<NBo)H$|z~N?$EJdNIImw|DBUb1VCg=S5fEda&5|L9qYj8~H}-eq4Ml z<#c3n$*=RZkKfCd{<Ged?RI3g&(#07+}G>s|J{6lj?Ba?+tkR}H@9!#GpRM1P*L%F z`RO&)M~VyFW6u3JKHYu7DgP&5{kNSLP;c77JzcJA?lYa<lm4H$1&^!?|MS7WFwMll zBG1a;!3Ouw@p&yT9~?Yu;`Lre{?)06wwq(_J8W^4>|yb#`lPW-{lSa8U%ia77xVvp zu-&)o=buln_9qm`{X8fxQ?uXhX51~MuniqwT8=DIW1REn(~d<=tm$)%|IEL<aDCuR zr>k9SndQQBtByXIkohH4-t(7b<sG$z@^cIio*ao1cfK^E@9sVu(~E1FwWpl%FpcBw z*`M{pTx;c?G9O7(p?Wrc_qFH#trBiOeBjND+Yf6_EU$|HH+Q<Hx}s<aJHtz^&X|2A z8@e8?sMXq=cxS_m>Z5*L$KLuJzQcFq!ri;=dqof5{Me8;ulLP4aW2ODm-QKr+FVie zF|ro8Ha}0Iw9mLZ`2P-<!k2&Yj{lvN_2^^llA`?mpZ1%r&tz3!`c5%&`h@eJ64^qf z@0R3jTeMB&@<Lw81AiDMCjF>wos=r%u6KC0t#8)d$%hZGXr55?z{xAkRb8;MCL!vz z!O0U&by)&pK2`zu7G9gitiI6J|7Cl{yIW6|99nsI-uokWtIqcrpBKI|_2q-onWEf> z@|ez^EDSd9idKmz-ynbSm{{J7_j|n~e(f%jRnDHba(Tm=q7LERi|4rMO-`))_)dM= z^L-!hU;JsG$)hLq_Fd<lSSO2zufyv%?fJ8I|7k7<-Knb&Ta?<#hMX|e_&86l^25&8 zv8Ubs`p;v^QA&Hh*!%F5Qup86&i1~@dEn8v`Ok6tawWb;JU&NWl)ZZN;LUsH>^c2n z-!?3p$scY!;WA_1iD-GQb>Ez(rY)QN|Hawz>Duq>1R{gOCglZHm0rAbPcP`*iR|A; z;xElCx#Bfx&$pu1Bj;;7OP(G4<Ei%a(u<YfIl_6uXPpSBJu6lGyXqKM-hCMv&vm+U zUzV{-7k6%ar+Bl*ZSl&$rF*P1|IAdaPT)Vk_H$36)I7z7a}!qlyR&Bd{Xgak8<$9I z_HGZ6h;BO}n8KN}K)KZ<a+}x&zWV}+@A(b~-B>YUx(;ieVWN8Q;$=rycxW+*>im}N zc(J2-ch13?ODgs(adcbl{N90W;+d$|)2|z8&kvFe7x`S%d+y1^=kgC$*Y#g|pX)vQ z_UHcxJ=r*NDuZ9}$NiW6^g%JdK5s|!#=DtIWOH2NX2qGOt}_nOcy^JqUE^Y*YuM4- zn<q{%j-M|+@1?_rKu5N>3DNWJF?$z$O8B$Uj!i84bAZST&Y<P1uRcgt_;V*K&fIj- z$*M<7w6&fqFYi^)%xqOxzP&e)@7W_ht0Zf7GfSRld}?Nod+r?GkmZ^?zrQJ1taRqV z6|%d{#3~Pze%Mf^BfV~$!TOV4M|)PDKda{TZ&h*ZwM&H!c3u~bw^_umjgC$K{pjiP zAALvmeHLFNeEqjw-sH10|7-t$v_GNr?N`y|Y&Qce>NnYZeLhd^-elw2sk}F@InK`I zu5w*=Q&@?8>O%#S&EIdNMrjmWz4>JAkLO?aMyKr#RqqzNo{~Iydr5BA^}sj#zFaFy zywq^Mws*ymEw--@tZv-E`}QM~^cyd~+ZyvHT5~ikNtKAy+%CuX#K6Q~b?UUQ{y~e& z3jY*d)O*DsH|b*I`rt>3TLU*NUo&gNud*LAzcu{%BmViosVuhFNty>NSSO|)k1S(9 z#CIpR=KmJ4H)iK9NiKTNb@9+0cHZ;TzsE40>)6d*!|=Cct>`f?f!VRzOlk)`o5~tm zZ}*;mpzUS6`BJp+_4NE>uT8QZ&aHfWR@=rbB~!%rLA(9ze=XOyCPw|d<B`@JWz0JH z$ide9T&BrxN!GewR~(!qaHBJ$a#nk9cv}9U7d`6xXZ~bezv!~X>cu^Ga@Wkf%ChZ+ z)!~)y+*fy`hOgtDB<msdwyS*ey~F42_w4y|HvB|c`K8#8vxDyz$u3muGWh>!=bVU2 zXR#-%jxA1Gu&?VSUxM_Dtd1k>c28Og13oyG*iG?noFq7X)0TzKb*EQnM5GBB?7x@& z?d>r|h7-&BL#G_QId4<$pC;v59~WJEpjjL?`^eeFO<t$7SPeY$t+sle`78HbY5Hu| zS{1|ox(UvgrtaJzv7XazU6)So<wNs!AFzHqO?=Cx!pk2*)7KPqJ#T2?T{LfdU|^^H zz8zeNi+Apm6iO+XaJK)raUAE=B?~w6Z?l(G|56l{l5jP>bi%~hn+mo%{&wN~bKT*5 zt<lNFEsS3-%sc=8n7u{RH~#DAca*s0@7ovi^Y8xCZac$gsj=vKiyr*%yD#<s$#(JS z>ifQlKKOTnBZ5mg^Y#9^H*9~GuFLLza&UXLkw!s)CZ9?6%({%z`(JrvY_;%>c=UA2 z(m;h6*?cyIvXZTpmr~#T%?f;QuyZX_b@TC*<kOk=b+X@h*2ri6y!jxKvvgX$)a@{{ z+lPO#?EcvJvZ_EMoil&mTJNik<@drK9&}jtL@MfeMe@;K%e=3a6*$&<Sx<@3dlqfJ zOVYN+>kp^;|CeXpd);nqGfMA2%X4kR$}Pb+s<&Tu+{3KLm-&uod9IIR_4Dv<*9hnK z$$>pLyB2O1+}e0*jnjs>r1e*fwj9U|><vEBq}O`EW0uXXB6ZP<|6XdES^?ab4o>Rc z5wRt6;f(48=5t4nEojg_n|)yR{u-szb~#rJF0J1GKD#}GW&erPSLZ}MmCU4eUwJg2 zufOD<`}NB&{lmDA+dMeEplx>NDPhZ7ES;M^|NoP3vwhFMz1Oo_U25C@Gp2LOy34ez z{+J_?|EKEVhJf6PIlg5-<rRcKsF=<_dP_jYB6Q)M2Wb-+eRiy9f8mtz`Dm_4g534s zfUeqghmLHW^DA0CG|boi_J{D99ri!DXSv91uuuq&V;8rQc6-z_|F|1#R?tTG?VEzn zyf|jPzoE1}u=5B@z=K0mnP)z_zv=Z4&C`uDtp#T5oVxi(MRA?UlKBeXUmW=GLwn_n z^II=lZ5N#7ZTEZ@W8;q<=Mv&R2gN1K`I$d=ztg+Bg+C0=^471f|G)o<^>?}8=$~GB zTNZ!N`f+{#cP`n7obUJA%l*CmQvH6+s>Oyedz#quUTqJ&bdmG+*P~{uK4myPw|(Kd zc-^wC*+Q$1Z<&%m-T%aNgNKG1rSkXM4#-$Nj0{|8${E7{R(o}f(WD(UTw7jxyErhG zwB45fb;$qLlIr`GU!N;aVmr-ycg5)m0$&tzxtELP%?#@bWYXl@w?v@UXH{a|p(Fcx z*W0vmUM!!qyEu$NL-}?0)5W?K{ttz+ZhPF>>3wd}pNI>gZhOuw$UW04vEbPAuri05 zxk{-%m-`zZJnwC|+<*5;@JH?9l)`IoeA*wTnlqVQuu>6D{L$-JdHh2D2c1(l>*lz1 zd@m@L5_H+UM6G0Be8c&3YvO(;n>IY%Jc0F@%yX6{8z(N4mHugae$rjd^#|^Jm^^(G zm%Pod$6@@1Cbxup^%tGAxBo8Q@tl7ylev}n`2a!PmJ^RoNd1tWZ*ce=&w}aS6h2;= zUp=XJ;(ML<dk#HQpV_sp;n(A9Cps;<)Fp0+Dhj@osVoWZz25e!Tp=fAeQ?`SgV%e$ zF-ThZf1c4$F3ah9n%A90L;rK_gQh!%O+UDvKM-$>t!SUQ=hKXqo27=6#J6aMr>EJ? zGOU?r{M>i{xo1WvkGlHh96TQ{zdNPLBlYP1u0``TGS?OU(vkjp(eE~Q<)Ov>C!8$S z&&rfPb8O1RPiy>rn-w*u7rM$V-#@**x5#wqw8E>3HL-;WR}~6>Y+ZPBh4x<Qye^xf zuMs?vM!QSRZuN_=;lFvO^WKSO<D1>n=SR%@yY>IF^nZ)@*dE-w;dh1o)xXJRfBwFm zqxtbh_`Jw@e{O9)^C8~FtzgE{dCK~c|F$LX`gict<otU6IDH-YeSaBu-}j#X@)_fH z=k52dFr3{J?w)3ATln?VuO%Ay7R0~hDDf><z1VcvuC$3SCp1mjS})aa@e2oms+lV% zPbqo->Bi18f7Jb?cI-Wuf2V|PPyE-3+XC)x)4X;(FD55tvfH$e>jj_Ow|dFu$eaBj z>`GV1-v_>5X1PV|-Qp;=geR}GPW`~yv&(Z<%wZHg#<Z^4Y?uA*j6Vzka&~PS^Sp06 z+F6~?QZg%T-z9nL&cB=8idhoTVL=l)qT-ECZ~s)VCU4$%q4bB(ZmOQw&#%hp&HJ#I z`?CGtmC|M>#P4c9=unpUv37}$FsI@Kiz_{|W|{`%NmZ>7i8;(S_fT$yr@FE1wHr@o z{+MMrrE%V+9~oyt?0PL^-*2+{yZXG|^mpke&wDLXylvokDmAdYLHgdWuqWRwGt-if zF8Wb0)pozm^ItO8Sq|NNvm^Li$E>!siF4Fajb)kFS_$3E4Av0g<%nb}V1LJC-Eu$b z-j93HOHa$yE}!JIJmzs(#%{^=3*JUObJ_ZT;&b`b{DaCz&7YoYZ@;s8qAmX;&*r7) zwq)3D&X`nbeTYvjQCjcPT-zNr>$2ret}dM9^skiPv0+C<-K!&Q>1QW*9*uU&ERaxH z`gyuuZ-rIRDevj&k29BWxJ)lm*E_lUkL}aICZ}y*tTvxHb>QTuFYEs>r88DsvsQRC zarz`jz7tN&l9Bw$+Vh)UC~bPWs9mM>R&Tn}vrD@?1L_;i`ww-0oMrIy>?zlqZzp)p zYJ6b+M#V2iXtv_7Q^}T3F2(M6z47VI{Xg!PJ<sp)aD1Y7Zb$Urmw*0emj0V|Tl)Tg z&TYlbzAdj}XD{1!yYkJK`nRvtPfxvHeNlXZ0qa+9%TrC>ujJyaXHH7YZu@-0$x5U= zjPHmtzp2K8d(r!Yr*}>dyS&BrQ?glbUbYiMSN<cHS!-sSy`0^?eagGYd4Ha!pIFuW zd15ZB&Yai)L9=qVrk^n{b0)OEV(+j2DmmMR+0Iwth3dYa`f+WiXHQ%5SM)i9QUCoF z#g-~38&`d}G2`RERdu<|5~^ns4l;%?m3G(6V?WUF$geQ!ne4-TzvOE~Pw&{d=igoP zY3BPryG3$_T{LrAI91T@=hyb>?DOU_r)s?puX}HrHursq!nMZocNO#hYoGu4?p4m8 z6qm|R4?bP8|5@wyZQn6<jo!UeZA2%xaqs^5Y5!lQ-ro3?mo}W5u<t*A{f3zT8Cu2e zr<Yg$eYF3-DU)bVdyD-q`+oxZKPCz2t$Pu>=l7paOZR^iO{z)DzSDjtWS#E)|Lyk^ zgC3ok_`FhL*Ez-Jck|lyH?#bz`O{iFIrxHIWZd8B>(dJ+gfa%T%9YKF{P1M`A66w< z&i#(JPJVi~`pvVyf3+DHBbPWETYwHjSzHtN=JS!CbI!K$oe_^;Toae%Y-q$OQTs8j z#N6b&eO-K-@9C3&m#n<~`gHdHF40EqDbE{kdz*7A&M4aT{9^Sq{`)uLY=xX+efr{l zWXCVbk=f8|9l7s+|32}%Hy?^E^}77t_`UxB-S-`q&F5j7_+9`0@BMYtH@$0fwy+MK z@{sFtY)#->?)tCcoLS*lD>uK`^5?_$ee5#4Q)NZ=@7?`;VfBk8`!@8Sl2%^-=d=8} z!pgY?UwRApZN8rP^hE!!>ko_KK!5Y;<?HwC-E+(_fKNcCMI))qvUuxd%j1?G=l}PP zXP@@z$TZ#S=Jg+ho(BIs{awap$1?V#uO56{Z_mEIy}^9RV}?2JYqsq9{y03Lx%A?N zvMowazMolNo4NCh_WI~UhhE3uKYp*~smN>wzrRm=yW-Mn|LOl1QjZV%*S%WuYUTeA z+y77ae!N<2+Ma%<B{h>b{WN{|<goGk;-<TvQ+b(fp044o-}9>c`{b7YD&{|h`_AqP zpZW9u<@-;*?k=CM|7U8vVqaN<{_)6l<#%hv=l(f;Mf#Nq^Xn_D7cajkcyNjNd%=gZ z>xIMCS^ar-S36(V{-<+^TIs1nip%Q)zu5me^tiIbfoJ2c*)nNgjZZyK7Zuqz`PH$` zMe+4jl@DGnSA4(_zGL<2?ECwKtTUGE%k4N{_xSV67u&zgKCS)#PwJbsug)H={&7m~ z>!rWKrW+!siU0dGU1RoPy~phTJIs2^f1mC>BYidg$M?F44Y|vos^2;L)cXJP@*Rs; zob0H)x{f1$PtM+rYcEb)E59}I*U|bvk5&l=YCFUpo?rF3_j$*bzTeiqc5y$iou0zY zY+Sc>|3bF=*LJhd+v9Un=GNie;rAlzKK<W!tw{E1>jPzdn{76~mg+m+|MSPYZu|b= zspT!doBuzZ{?Bgh-TRi$PbQxGRQ<$$=INff4XyUyg1tSaeGj{#w|!>aht_?%lGdeZ z$Gw_lUz<EIyf<s=^we7yrs*%PXX3Xn|NqJC{ongL+}Iy)64uKXu~=O;a~^N#)s6^p zlaOhgu}pnA!9LcGP7C#>nzLJ%#U1$c|IYgBo4@ei-{LgCcl*)ir#;r%tkLW{o@XtN z>G#|9aT(+J#htbj9!a#tx<*SDK8gPox$jKJowfxfQ%baTIf|?9T0PzvxOH*E1O5NU z>jM_lANtySegD=yKcefor_|2#mzZE9=JQ?rNbeo7E9WG=uE^ECU30AL!o<x|PqgNW zGg@!mq&neac-`BUwutGkccoZ;Y_-20RrsJ~j|^+Ig@?q9J5Lv`-SNxCd2by{Hvbc! zE}y3xC%rjwXLJ3>)g>DC&kUxO3#*AQUB5)xs`=)bhOpn;a$cNx`0&-mjGVLY5AepH zp1uFVgSe-!dRAL~X?Xi}-ThCWmd}qryXl3HzrE58>8GF8esiu}lGyIP*3N`ia)$Vv z_TM%C^xvERnVG=%Oz+B$!xsG$>VB60JNM}%`}%cXrs&={x!LSZk)2U##nS9)GCo<> z2P#;0XqQwjdALAQYn%P6ea9|b(y-jLbNaz2ymG23OHXdLytM4&3BO&sd3RsWD(kEY z$z^1&|6-<ReE&s9W5=gt<E@hvjs!?&>@rv5?63LR`Sfc2zr}6LX(46_Ew8WGv#DIW zd?7RHiFsM(Y$tx*^_!OGZjdoLaQF9#ziTGdoH>{p>%S=e$>zQi*>z{ny*hlh+x^qK zr<c|T-}%OVYr|6k$*G=}7pm>^PN#)`S-Xz^zRkoN6E~l`8&mf>yZ-a{|F;59<x09p zmrw9s8LYVci*<IG5$}cj_u_o!IUZOjc5G6I?WXM^-)xTGb9=Y-WV%+P%jG3)(|?G+ zPfPzTE_ZOp7MINL`Fq-qZ<sCrZ0AQYb^G4$0YT1Fw|jA<Yu{x|cr3p#ELe;y<dM`% zW=Zq%m2I<lWqx|qJWrIGyFp2BSC7Qu^<UrdWPaCh+P9E7XOr&RGYd@IcYJ+t>Y{BU zV^_@WrJr`UepQT*X#bUXsnO0Vv*m`Pm#I;y++kJb#aSj@*(}`G<^`8zq)&Kqs+v_R z{?zuV+zuuUQ}=Ny{LMPj-d^zQx%mds_)lMTawqMXu9OhDE0$gD<eY8XX+IVlcZN8& z9NLwst1~;_YLnK^4<f2&m$&eA=RSUa|Afu=GiS7HH=SJ1c~yB8SBQJ#nYs6Q*E|(i z`!Qv@X2QE<b(Trri+|>nl>YPQ{8(&JIpy@G|K|Nx^;_HQl#?qoPG1Z3Z3{ZJG5zvX zZi&*nR(Y@0eX30=AMV@cddTVil2wImst=c@=vcq{wc^BuqDzy*IA`2xzR%+j9jVy9 zdYbF%9Ue*#pLi#HzR7I%n1OrWo4=8k$@a@~O_-96?B({PD8yLJn4+>~`tBb&KcDaW zWs!JUb<O!*YJa)ZjWSci*)J}bdV=?Mj>t-lro#>?Y>Lk^WnFsy7#+ypoBid^@%TT# zyUu<V_^R-#j8A6W^E>A(9lzPMKmJqAU7v52cACprl>hSfnaj>pyB$*$W1ipV#S$YK z@bkIWot2{3FRs-)cD|NFWfRk*?1KK9mmi}hrM0~DIdFYj))k%x<D_p2G7D}q&il~K z5E2^ad}aN@^Dhge3PV{8S!JFJ98JBdYqx%{V*Xpf8wr;K8p{sMF1R6g_pZdYq+dO= zp5El19wEBmqUF~T+fUCfZLHj^^z+PpQD%Ss%S)No$<JT8DdOc;hUI$`^?H>Gw_X%n zk@6+t)Z+~?877+2tiGw+1dXk(X9frdP8U<S@9*EN#wzp2=C0o9TYPb|P9<<{KDX*q zmz+$;lsg_vWz<WUo}c?I(V=!Wd}+%9V+;Q~Cf`EUK54{!{CuY9)(qy@V_D4FYbWRA zq=enuaVKp0)%Gn-S3CM+RGGg$OXhfcU-+JpLor*M^843)*++SkPR>nXXL^z-6*yVf z_o+Gi%$=+4pOn3fwv9<wUHrhcCW3*%fx*+oG33of+i*Mkr&F9CpOK#Z@6(z(U2P4g zoH%Qd^Nnq0y8K_w?ko|GJsBnF7&@<5=VJVW(EZQrYW;o)U!L#BG534Gox8pF&HmJW zdbnD<WUIXNwMze0hXaz|KadIVXZUsJbJs?z51+695iMu;d@^y{LH_t&pXA+@Z#Odp zepRn|fA~{T+pF8`B|+DA-iT#(T*%VU{6S}X|Fk{3t%729BneMjKU-<)qh0HFcdgHv z;`<@V+|_vX)F;WZJX1K?l#A5YGYPORyr8t7<K-vr(gR!cb}LEVNRggV9`{$W-!{%c z?$+{bq4KTlC+~PW@A~QUFZS5;--@U9=lV>U{qy4-h6kDX+qSKrd6Dntzs&qceV1Ri zoj!D&U;phIjWWAgE}u*~%5VJblVq@Xu*_^}#W&VzeL<V|IV2ySe|kdGE2Ga3BGW~8 zP2Fs8d)nn28C;oX3^qp{GSMmW$eHfwb;hwFb=~PV3UxQ9$=<7x6L0o;{IEFK;rpky zJohCBCrDn)IxIddPDt<CA)l%aN#85l{~x(C8ra_Feo(ni-fm)_ca|ild*;ForzW)3 zRy3{-o0alzw)`%e<fo_j-S2I(mRw)>&emi3`hQ$XMQ{6mhfMr8)oJyQuKK4dRje=h zXKZbHvfFB@L0sO%j2&!`dgb@=&CaUGHnK8lV3P?f@NMq6Sz#Wsbhaa})n-Pu&yCZr z-*69X+0Qc7*~+e2=2Ee}{<KW9p5)%6u{JN)7`3{YE|{&uEUNd=_5FpXuZ;a4{Cpc5 zH*vDq#P$E~@iTs(pft-bM{y>5{IXLru{~8sHl&;0pSG2Eci<n*m6y0z#ov0Rc6#k4 zZ#S*n6RzbfEn9cB-Q(LI*dbZ+R5QnXx0H1yH?MsCgKOJaKg54%+5dHd{KB@Zi-P;^ z*zJ3;F19uow4l7W?Dyt3>y51{L&KORy4qUq2xaGO^5=EYeo+?2HYxt2(~1h8nd0jt z5}7;#SNQIoQ=YJ#eg7uqQ&+aVTDJM-rC%T9EL9d)Y`QJC`%7~32E9E`loNAron3n* z`}{4_cZ;|CZEja!yq^}-wr8$O&zHSxD_3p!$aly0va1=t-(};6DrJ@1_WpGBy8oy0 z$IkYfuOAfGf6|o6P0lP{{4)G+kM-%R$D+O_%N=L*wlI6CY|V0|>{{pi4Mv~$&)`ei z@#JE2zxN#t53fy+T$W2s5dBv6En@LIh2@oR{spZFT^aPkOiW^P{j@66DYFmqq%CD* zNnW_4GHtzK$W#5<otGFy(o3!LkKT=uOJbfY{rOMiMWfrtSG?Mpn<&2^bICu~Z&Qm3 zGY=ffS}b}ls{iuqPix;zxwyrCF7w<soeT%gX{jIo8FSUrp+LI+Y`00*xibEhN5r?} zwyD?d-05B^dB<lt$NXE(3ms1St~mS9CaCU1q<NKM|F5M7*MxGVFVQ<3%J;tdk=>z! z?jGgK1?;wYPv+P-Ts`NN8Zwo4N`L$n_l)&Mf=oJA9D5!KJ>1``SW@EY#3p@u&7T8W zKaJ;BtQ1?Hx28Fu(jt{rMLYPYC2vyD7FOw<C#1{_r2b6M-KTOj!7H+B*@a(f{X3Q2 zW%oSZ?8oBsIP4Sm{h1xt-M)XBwI^FZxu$kO+H&X3B7Z~wa_%#FzPyR++Uf;-dVh<< zW}oey8(=i)p25Ctul%ibVyE{!67!N!_l<wG>dk`r&rg-fFo=o7y-Izx%<w?WhnD^K zKeX&uKX9$LrFi{~MFBEe&svyk*6FOj@H77T)cqIU+sxeeYR5%m$rB8G9&az#o6U;b z^G4d~+S*IA%O>@fJmcTtty3Al>%8A}$JmoGRTGl`ZrONa=1F1gJzMU$Us#=WvGRKP z!xFw%U(y*Sbhd5sZnuAz<yiPS>GrdScDHy8o}`=c?%wD>hi8_qHsb;Bm=~<g1vi%- zVNNbtu%vy>yId*TZybt6OPu)*KK(m?-}#5}{GxL<T$_2NS876w(nn$SeS4n7K5fc4 znf)@x(@W|QU(3dmr`nk}pA-IYYgO*1UmJQ}ZBO%4T_pc4{=|mNsBO<b&1G7;>+fCJ z%}g8S92VFeXywkj=!?Y8n+GB*L=5I1Ia_%xWI{+om*1>7?VM@8rZbLl>LuFm>=sp# zd-Egt$JzXflqEVcqHHU6@ZV_pZWn)0sQyRF&vOjxdb*bePXAeGen)Fv_k<<0b<=NY z?-BebzEvf}*6KhstHQOXhT4@<{GW<?%Rk6wiqCbLy*kqB{U_U==Y<`MTH;R&91&&o zH?o#(edyxibotGl$>(3R&3(P6_2Z4{@{#xIp4z6YI%R2+J+)~&$G%Sz%`NQH-v7OC zA29c@%lUI#`L4~F!l(Fi`D+cyYhON2u&cb-9h21YSS`r<aLu6`E82vQZC2J;c%U=k z`22I~y_?IJ{ZHF5-L_y{z1Q+U;Bvj2w=Z1SG1c#Cuk4Ke^a$RjWpn4W%H7$ZfAYgL z9Zn^Y|3}^DeOg%j?TdZoPs3SHIA=a(EjSg-wri?N*qcikm)sRk9SPdZ^yzb`XSyF> ziqhoN70SNr6HYA(ejIx4ieyRZzVo*){L+i5D6(qv-g@P%lt|+%ht-+Kjw!r2U~)?} zu6m8+Ms2ZB^JHZq72AFWssE2`{q@iPU;4Mre(9}Gp-vKg25Rfhox9KfyW&`VP;;1# zQn<obNp}V2uWscE9)FgyzmJ^vYias)`G1?=2Vb+^r#ru`=HaEMPd~1=<vPQ^;&qwB zfsfv|FK$X>HtJ{a-kv(UC{FWG9@}L>HdWuO0*=_{DUPX|m`~4E&ipR1#!c*0vE1o~ z4Yy`xu9Z4(crh(``i0AWtBv0_a$hNKlK)Vd%@T9l<@B9D9>(icH+@>Qy6D(CVU@d6 zH>SM!|M*?(K3nTed-laY^If{cXRrLyNiKU=&t8^UU~bZFHsh$#Huku0NtMqUZJDLa zCDtE3;_Pqp<%(Iw%>Rdir86$`rf%NQ+t~JQ-MZ}|TAoY4E2};|`{nuPyVdiB_s8E0 zX-uzteD8i|hwN`rLF;+y=PYenzuZfI6Y;Ob?t|OO;sm~lHi8$dR5RE%YI5!PV#ueQ zKilGF*ViWn^1r_3n%|ems5j5a`V{wf{#TESTUI-4RO#9KG48mZc9y#7_VrhC&n~Q* z@V8_we-WG6-S=0r%w(r)M+*hLPffl0^P9swH}jTd?8o~=6zngXF8Q!QIA3m~*Wrx< ztRC9RnY%w9*5Bpz`^#egn|?NCGi+YZez-W|q~pA$)k(8`W`El@x9_6+Jf=riTI=_| zU@W-2^+~t<z7jjnN0ZugYCkE?<1Ld=S(urUSM+g`f8Ay+d0VF_i=g~<mA86aC!RNz z+h0BJ;NRc(e?3&Y{;A;UBmd`%-Oks1)wD_}c;s~V;m4Mh4i~4`%PJbATy2<|AlR8V zuXOJ6%)f!A)1%(zlnO>XT%7nxpmV1WV@vYXP_8{&G?}+_t`y(#$6d#)^tk(*2ZE(* zq+LxE%4YBQ;Sj7R$ibazcAiP_cxQWU%7-bM`(@gEZ@jp4#k*5!@tec-6-V<WFQlY1 zRK5#w@ib+SvpwU#<4S7Iin2LxYzhyqbUb5pH{s&-J&N*MR;cU~Jo@^fG>`8DoqD#J zji+w=NzLg0b@f4g)dPP%>FIorS;Ic?{IhxW{igexKWn8wuL_welp0f#abudx&Q%)k z7H_|2zvut2-8R#{C;edA@xkE#K8Y92*Y8`~eBWB7rTSL$tA6p12S?9M(tkZA{@)>9 zo`1i>(kHOyw}wx6pf9|7k%;dz!2=J{?9z|k-{iPvPKmARvf3+8w*4q+?3wp!`UdgK zv%;q3E<YMt(U54o&8YI<6J~LyImH`v#H#1Zhz72dw|2_Nu{!kDI_5#CXXgA{QC}vx z?VOr+Q}s%%=GD7=8K2i|>ylGRdz7@*q~FIWa!ZWZ_AgxgRnt~@hWV$<i5%Q{R-*d# zG0Es_d|NJVJp7S0@a9(CSJMQdEBo)9nf>)hDeG)!wFgI!N~i_>%W*uof=6Q4wwWhZ z7f3F(QTL6Xdd~i@#r~<;d;%L?#cK~*U#fm|$=G_mv$3!4<yn7SCd?Nob6x##@=gws z`)~Ij318R}`*rT_<VRsCTclZ%)^NSrs1tqkz{mbWr|w6Esl}IBY^wVAeBQ&k-0us# zQ*vE|-t+AHlpSxi=iqOdv_~Opbe3L~oSybz`M*Bv8Jb@@q#}L$#f=YsZ<tv6F#1W* zKTn1GH(czhoc>MCuD!mlEBfU#QO!-0-RD&p1nD(<<xRga@lnvv9~0&j$A306%5Dg~ z{OED_v_t(BR-3JF@x9*k+MNHoMNH^9Kkl2mSFEY3IlU;q^mL+Txa*pZbx!SRzSoPU zY~A(j@u`#N&sJ$%uK5+X@Ws^~w;bg53)iRg@BdKzwEo=V?58K#_q=h~yn4ffwKi`u zg6lqXOHO|7BXq(&Y`t=D#pyE-{%6-)Pi~m|mX+&mr|hS_e`_v%kFFQ3{_`>Hp8HWF zr?6WGa(wsIepdVXI63>&?xKpn@q16PY}=Q<QS-*CCw~OBubTgV(0h2YzU|cK*JD+y zXP7-v&aScWy7frt<m|T+8mkMW81?feJnnwP82c{%`)?Vi%c1ibeUD|v+z7q*<V1nP z&Sm<|3(X!J$hv3a5n;`sa^k-CW$TYR_Y!WsUuNsj&pU6k@I(Fn4-=<tHs!naFz~IG z_12q=+y$nltfqOaQy;H&zs=J1EIrOhFhozMMtNDTmfy5L&ootzcSO{7XRT9Zj;M8c zEqKeU-R9x$y^%p?zQta<K2|U=Pk%1f(AsZ!y}fYP;?2u~qgnJ;*zVu7Tyg2-F2`2R z6(KgV;XKk4zPJ4_%iMP4$OWhLr-6mJ_uLFN9_`;+y4Y#|+QV$+xAlr&=O_k-UiDOF zo%fmP1OMA5^MhFp!k4E@`&?Nr!I`5Tz*CykV82~iH-h5`zpb6|N87bu6ALbTCLS+X zpM7&NGsi3a`K!~*E#}r9I~`nc^H}RUJ^fFWP0k+ehi~8i?&@Hbdg8Ov_Cxx|yd!V< z=R6UAoEzym?M+IJ>58%x%SwS$p}S;#1U}q&wCCH8hn>&=vos%goU_|ru3q@_e`SNY zx6+iqf7rnDa>f;vbo~pxJ*xdTnQj$Vx|}*7{nxp8$|qxGKDJw)?<&jhC2!~OOaE_d z+0hX9&--%oVZUYPLYJ{de=_jA{Y|Xl#RZE)KkHw4|2J&@?|ruD=~nMfrp{S$U*>Om z^j+0{-JjqI!87Li8^t|+)=;`+v5wE;P6LUzUs>}T?0?Rc|Ge#}e&S)dtn66vs`HEY z{M)@=R_^i9aQXe8#lBo!=FqoV`2W82#rf=PQC0F!*QvkQ>LmVBV`|0LkC)cx?Cfzh z^<KXv@zoQ*{Y%sfKcBb1GO?z{a^k~=tlJ(lEe*HXZ=AbjkHGv3Ie|+xnHheBPIH*? z;7l<4RrhIZu4;O<3(KbbGV+x>bvgHpwM}KltLiuYCaJ5o>)5I%*uRzJ_<ZpHp(Npz zE4&}*U1eF2)@ZhDo#FOLIV&83IyW-vJNP7t$}rCk^%8I`V|uXH|B#!Z6z>wNctszn zq$h2Kxqn1C8%_&^8?1Kydh(lC=BMO@lSdLWwG&NyZk@Pl$XlHDY4W{)_ZWSgjJ#MZ z-FX_-J@clW-oz+UdbE8_=C*SRnV;Au-K^WVt=Z%7{Y%{Gr*{X&Sed+d_krzze9h~r zUSWMD7ndKd*nV&C(bo<47goFpS(YrLBG7loKyZg~@L!u-<`0x-Jz;vIywu-d#j-2* z5ieiN)VQ?q>RRc0yMNqSFSqZ*=lzZ6rGNDO=$ZHZvF%IccS?Iq{U7<({8{+-`q%cn zKU4i?<ekd<vXdix&+mi2)}`9{m&0yx&i}Q%;&AZ?HM@#mi$7=Hnzel4_3Jx7%|H16 zDpTQF#{_wgobq>NQ_sHNB6OzVVYJ9)HYKK+f9gLSRBwO(=h}O-`wL%ZT;BIR`JV58 zFaKrkDW^EZ_F7MOzrO8Hs9o;HhbL6oSvUHpr8D1cRas)UB;9~*0;lkXEQKSy*AE@4 z{xnhH^Ml*hvJ<9+mU8l4PkLMF^*e#x$mD|L`N-81H9tPznZ#4i790NUU7FF$lB4UE z%<1e*(haxyJbTXy`F5@Vb*W0ucUlDvDl8`t$=!Hx^}+mzAC?E--QK2K_M`3SgjlBk zLcR<pd-6P2nym6-UcTw}v0b|w7|$<wm1Q=$W!=-2v5R-9<|Usn{^2Rn;-a@>&JyR@ zH{W(?@+fz6T(}xo`g&*dCq{+nLWwFqMzgmMBx4Wn-sJ9d&112~#Diz1a<j+eR9x;b zer@_LJx2CN6MG+fM#hv~JJrRG=C-IuiXK0Au}x>)+;q9co^HOm<|V(pXUSevmtVK~ zzv2b`yXEyWcw$O_IG4XZ%{gtyxhL*Em)_oZn=--l_SB<^KQvb#dO70<Lsw+!>Yq>J zf9CU>&o6zj|HRraMKasH^-s()v-q|2D3_#d*?)_#pOdxsU(8LBmY)&xPF#*tdwt{F zU&}2%$=o<q|AMW|e$VfVd^JB_@aI%;MIWxNVXJ@tH(%mLcbSk`&@Q2p)3>G;O3nIm zO2gb*Qt}Two1C-fh4NaTJ1=?CoHlaiJz`xRw&2DZ;d;-^$&X(hPC4o?T_*It_`kT- zXBX)+$;TDW2wP9{-um3@yi1dFz3IcS|FLmT`BSf&CskiCoprKV^3y-t+_PoRzbn*m zH8Iz|e!ky*|ASUR9^)IkFF!Q?rE08QpRe37d5`|?u-jfWGhEx>?O*p}od~~}mE^2L zsXiO@m7<<=d9}@F+~)J?Wd5le{*zZXr<PjF8)q?2e*PoohyCYj?z`f8SvDIS-OqYI zS)*CEan89g>D;3|EE85An=4vz*ho@B<ZsW3PuW@O+@9Ah*dsDuZ$07nWx`zr!4;w{ zf4b6pM7XEtN4(b7Nh*tb)az~W(rFq?QvAQI>kR|0R(7at^^wk;;nvrizEJz1Zt%Rf zZtX5d^QFF=jj!OFuex{2`(x>Ge;m*G@9Opcac$|R``f*kqCSR68eMw%{zKz38|$;_ z(`rROeEw_oKz4RO$@KGlcMrwNEwlM@qPu<lznS}sjehi-yyRV9xbj*0uMhUT^DoWV zx6AZz$gx@5F3o9s-(G&|{gk}k^}p7CFx~UWC*ptlN%PtdPtAXPUmRO_^!nUK^Pa7J z#P`qs18+UgKjr7o|No8WYM;rYWfv-M+u<_jK<^SJz9{ZDTDx5~zLs>jU6&H~Hm9UT z!@6<Vi<C_klWpBMHFB7)=Q+1D=H#qzYbLds{`s?P?&WE1mzQu#%1#w@+?{7Wuj<K% zr}kgl6O0c#pM3B7y&!wOQNr>~YPz3v*VcAkf5vqsRaHO8C+sQ<kF@5jhl;gd+2=B! z(#huguxd{81*6nkO;PMZDHk8`3HMHM*=w?=((h-Qps`A`^`9q|o_ChsWc;x6`kpz> z&Y^|5F_kgLI^)-D&(`JLE|vdk8?XM#;FG+?ZEv|P%#s%c{y3)Nca?F{Mn1jd4;Nyq zpIkI~@Y#O`?`i%S?C)OLX>CpoU-s$yg1L1mS(hY!T{GO^l`eg2?Q@%JPxBg$CaQVH zC>^<bs@>guvP!I_4d2_}2VP&?5Or}j%e4F_li5uwAIoaXm$Ud>{%N++XNk7donJS& zt$s;Ne=gX>&9pg@zvb@J4S{lpAI7+rEX;9wr@HBhO;`1eW9u*ebTfYXh|Th8;DU=A zlhyAT+^rO2npOF_r6~CP-ZcUV?QP-heHF^`{c*oKZtjUSJaJ8b%g+6>g5^I~oHpl+ z|GD-5JlO{QxCMtB+~#+xJG+GKNSvD~%(p;a{9yPV(><4be@yu&Qtvx|!@pNyKQ8c} zI}-k<`_SRTTTE?s98Uieyhn6jn}6lpW8pD}m%ZkCx8VQY`Xi0@YK-@kHr-6UDlenE zi*1I=n!iU+dEMEd`%8(H;oMYX^*cBAvR~L`d#$0>_a~#GoTB&dYi6lJc108Rl}yp= zU%&Qk!iQ=594j-pXEHi%bKc*aw9KcFy|3&|;)O5L51wAgzhzZ>(xy$k==b(iam8H~ z9zO(svBozgSN*$qxu*KILZq8mZTno-)z6<C;Qo?m=;F!Hcl(!*++?5raxvCP(_$@u z*#5b(^`Dso$Bq*YtUq=pJ%5l|#+x=ft~Teh%5<S0oeyq?^X|Eslddh|yK6qzx8KtD z9@&1E=9==<G$m!bs<o8Rw9g4olu{1xudxr_!*0er`%z|$grinm^27VH<h`$Q9MeeR zV4Sj-XP!pzb!Oq*L(8l;q-IA)S_#US$Xw~YXKVBGQF6QZzZ0L;rZG>e_L^z1<5YWC z^VO5pm)i?Y&uV+)rO0e#H1(-UVnI>IdFC?Dk6A%Sb7nkx{+#D-+X4SuJddtAH5w*< z3iEjJq~MX;_J`W*pD^1bt_vx$UifM9!P1naflb1uUxYgvs?-}RrP8Gi>0NPF)hk+F zP`M@BE;Q-U$=h3A?J&N%h<Rm|qT`=GI;+=7Uz{mW^RWL<@8pB^PkQthy$hM&*&iQa zeb4pF@(l|m|9`&Z|CFb9U&*r9{xcr18LyF^Gj;mI&i+3iov%z6HGB9_{nP<9o5H_S z{~uuYk2kjv-EFRS_Yd3tinq=7+VwZyyj@Ze`L*)vmm9s!Z*LrFIXvlYuG;5^R@1{y zzs>*6HusNv^x>DrOE%qgWjj1S`s6WowYZckH=7SB-`tn_SnS==!=1m(8js~YpHeHv z&2wj4?u$=d@ul1DOWl^cdsX$<iS4loJa7DjSZ3B=E%}fdG~xJHx9@5vT~sPpvO3(F zTC!u;-3I~5HFYg-ywe2O^Zp;1-M91XH`ikiG;J*(sCZj`O>&i;d*OKGGTA$SxSn*1 z-rp#6>zJhfl%I;${X*X)8SY=5WUfE!{0_&QS#5SN?oD~nJdZ!EMPfJec~56e;}vgI zeRp#iIKNCY4`yiHEOq~!BCq7(&r_#lnzT7*D1WYtG2H*NwVnU{p9z=u9u~PD&3pU6 z%7@Dp`{sQ5{6c)ktyOw&Cv;b?o_@k)&t)U&XLWyhzGZFBH&r@(vdinm@dI;ND)Ivt z=glmU`pUDm;uMeLMMf^4_~m+KN}`Xs`d>Uhb<A<Hkt^TyZ_8`Sx|E)VG|rvA!>Yn1 zhn4x1YRapfm)0k4ytd<4%O<_4M_X9?%>rjvyh^cJFrn$`6Se&U1&99Ve|mYrUS95Z zsziVMo$n=&C##k8O7A<t8?%eEdwZMz%P`61nZncK_8g2o{K)6m3Ca5=cQb3A21|U8 z3zs|`zh>dw4^ra!DV*_#AN5QBI1*m})cix$;rO+GWd9tLOt#jVe$2d9N@0OV_BP2Y znbtQMOOEH43A#K=zwHq{b!t-Eynu7Rm-J3qdprCFU-oyuri06Qt9RWu=J=CaaZ&SD z%laELUA|9d%6xsAC87Ea-#$r}m-BP-f3_BXl-j8&e0u5WW8wd=u{3SV`PaC5{pu%` z8zb&2tvK{?)w+E)9@CGrO?7tS`(_yN{^`Za(x>areG{Kpd+u@d_Rk#~{5_`V3GyAk zq|06?JLl^0gI0OhcW3m3d&O;ex@4*0`{$|Q&7A%E4wot!F6SMv+g8D~*6?w<k?>c> z!s%&D36;riF{@{Pk1}iM-?+urVCGtp$EjO_9^Ls>YOr)+?vDq*qAqt{-+h96uS#gd z$<L=wx98cE>^OHi?~mMHiMuDHyk?ia3=ZebX`iZRwnXYo=VUqd!}CJaU%5Q_ww8bK z{GWQ2k5+BZm)~=?_;FoDnpD@CEVj9B;%7E=*#&z|e0ERu!lj(!ojhM<=Q?S|C;I5Q zsIK|{;c<WQ`8neA4xHk=WV+A!ees)rZr6{;?Kn7Xo@^Y)&X7|_YStf?++JR`eYto} zulwiT)}L|KHy*CE^V@c&N#yhGOS}iJ@x7n9{*U^xy0+l<(0)^$l^-V>Wgb(vvG}#? z_d)H_{e0&eCG1PJ*Pr*6xB1J-zkX^Sum7)Cv-dq(vxm)YUrC$$v##B3M=$ff^NQCj zo%^M+^49)sf8XD!n;vb~pI2Hp$Nj~Y_<uEgd$yfY7kAn?b)HDYf~(JOWnZ}UwBu>L z-mU$Kb-!-iT<mXCRMB$(!IQ0<B~QdiG@Q?FnP2g;^MQ5e4E`S>)upEIQ+EDRTY9AO z2A{O-bA@S+v)=yqdcIfV-n``L5BT113s4RJxbONw&$f?Eh8yCa$FeLD)v@e*baCwt z!<`TRD$L(|{=tiCrC;CDj8C54b7_0c8J81t+smGuJ=wAT?$ul)&gjFTyF|@mpRaDr z|L|9&uzS(EQt8d@I_mr~zq}ucEt={5ul7*plZw?3%%cBXegFQ&HP2r<suF!V%3B*w z9^qzv=y89^nM+|mHg0qNk??DJI@5zUSGpdV_nL+#9q!$jeMKc(<(_f*0`+~NHSL!Q zw(nZ=YF@^Nol7?AA23o`5OJwDJx`|Q@B6;!j!xk#@#{t9BMRm2$YyQ3Aa~a`!)3wG z=9OO`y;HmYZ11TD?EjB{=a>I;<$7b^7M8`;djnFZ=R_Vku~b(5^^}N<{M+g>4GNNX z8{3wAsQD(X|6$E%;fto?uNO&1y6=1azkB}=o4H-7>Cf5TZ&>|@_qy85jNjspito65 zw5Dg?$^Y|j_MVs*XZ6<Q9b3HX#G^;Ky>~Y~yZKN0{J&G3ce)n^{nJ^#A#}lyi4{&i zHdpZSpA4HPY@fK@^}V|HkCkUczvU|>7lg~2vvTmn{I4@&Pk+JYUw<j=m#29BgVygi zkMDW%T>dYc_NnV0(Jy<i&S(2x{r~lQhh4Ykd}HLlImNLpitncwllISvQt~oymsvJ# zeV%t~7V{tRx`(Zcxc%S8?rwKpc{=y7IA8yz`j$9Jm0XLnmt7q%i0^$P&SG>$EbLIC zamem{4>M;?ez$Zl`(BZsKi>ND+5b4cHG0vEix>B#E$?rP%M@H?_hr56{Z{v<nmc+! zC#xz(hdJwt$NoHJmLLAZ;==Ft<MAJkhCb~I>U^+*|G^aQ)eDm?mvypk5lJ_4vP}E5 zCF#(CI;Xpf>whMRv`=zO*GgKj$>w3e2lhWzS&aNSWihJ1c0UsfmCM{%w=?}{&W+HN zc{`W0ZC2X%E?Hsgp>=F-PqTbvHl1$w(P))u{`QQ=x>x!}){ldnVKY5gBU58+_xzvr z{?`6}>0_C9dzII`Y`t+}Q>w-}i!zpV6ZyYxe3*5=I$5CeaQm8qKRYiKF4OnA*Wt=s zsw%*Kdd8PSw>T%RW;%VAZO7|P%C0f)UxnTrShdV3C*-<(^^}tr?jDZ5|3C4_F56!> z*M6Vb`+1t4{qOEM`u{HK8))ng<#N?LaOL#Y_6lzK)zWi!RH{2C#ku_w@NqIx+Eo7J z=H8d@Qa7mC#_aGh6*1j;y-vgaeW~5AC;Bb-{j813JYE*B>V7$KgOZs~fY;{Q$J+P1 zD>^?{<}Ho?8200X>|V9pl9@ZcFdOeVq~FCIeOGf|=Ap13QuDrCJpaQr?^1i&qsQ`> zD=xfm|NkR@)2|xw>Rks{{SCX<wo=YH&~Em=O#LtH8#e4sDfM1r_vewMbV}Om-hgg- zxotCZx-Wk}^T0-G)x`%pH7?kG{3OgemnG?&<Ma7*<?sEv7j3ih(;9}r+v^KTG!$}M zLigOSP7wIKZ(qLhobo9<e$Cr{ede>QyU}8wYdQGu-FvuT_TPuwE-T(!Ub9Z({yx?3 zKR+LoRx>r`Sk$JK-Z)Xfu<WZ%&0KTWU8iqk<=1wY9Fnrj)xG(^$TeW!cK%li_a2^e zZvS5YN$`2ztD4IXu0M2M#(g&b!R+_z7@BK;xmRs2(oJ0|=^AwITWw9rnSJ~r<!P7B zH_zWJ{)PQ&KSM-ij+6YG1N-W~Bs_24^>Lo4=?R6oTwCtlowVp-Tw=oUT@oQR&#vSy zHd?gh<+*aH_1{14RNrdqpnK@1F8f`RS2Y)0|CvlNif?VWXP<2UmpLwZdZ?Aeh4gPa zmtL9dF)@iZYSNpzu!&*c_v>>QdKA6Y`qCNB)xPuyWAj$_uru|GOMUY<XDVZuys}`P z5PQrU9iPjbkHc?CzvX1FdpoZ~VNs7u%qPK$gNGCx+3%`&O!-iJzhYMZ-#yho-Z;No z9r%s)ef2+=d7rWyChYm#wOwn{96pDc&*ffhi7A`bx*^v6Gh@e%4HqQ7Z8t7Blx|mK zk$Ixc_eAG|=<OSo7ukJ}w_z*%lel32p|Z;3pV;ko2<|Z0DPI%d_wo7<DY-u%+t+{W z{-9Rt`#bXCLP^Qh`!B64$n=pe54^Kw>h}*)cRZ!*EAGDD{r3Og{J*AZbJhnx-FoTl z5y{!7#2+{XX_vjd9iDpIZIR-~-COQ&5)a?DrRIIG`<k+z*js+vKB>H0xO<D>q-A?G z4u5zcSo8RMy#1aZ$K!4GeCN_<G_uX(-~0FP_8)A=u5a9(UCF!6YWe?y=v$jM@_Hv% zZ}Wf6r}O=GuD+GvH6^8Y#~X|^)H^>V7(P6;W5P!<@ycnfe`NMfb*zj@bed3?&*pK; z^!xjh<t%FJk7`7%(yM0;)10${C3sqsmE8Q6DwXIX%=4AM>2~>=?@;sEA?{@9GQ-Gx zW6USD_ZA#(e2kypt-WZ|%NP@@YyUers;2zzp_;EI!b<mUMeyBv657>RdWrc>>?}@) zZB;A8dyT$2KfUF%GV|Yi1Mjr9a}TP1Ut^!;C>0i(5zWOmVSRjR!`jAETb&+;@cz!L zkUm(c#=v@6#OQSBw7Cp#)-Ac15%5WD@!rl^ExS)C7h9T4VY_FLcCh?YnPJI=2eZ^< zMR-4-m?;*{yun&Re5Z`Um%w9sGp?;jcF1%nYYMMWQJ*ZP9^|>!rd0dhi^WrX%zmm( z<!iDz`1{G}e!05;@Au97bVB^$8urhc-Uah&er{azZ*Jvs$A!&v-`V!FtutD%`+Bd^ zYW`^@ch$X;50@L9U@>Sgl}$OZ)>^vmmgULopFATadGk4s^RD?L|9|uUKKJSSm|tC* z=vmeH`Qzadn|-+jrS3mm+`g#AM>Yh0n7Mw>oa0OH{XZGq-hVG`ddqelFN0m}DmUiW z-*jPFE3#p2ih9qc6AmX-ek_!}&ew1MpC|f?ziiy^=ljn;IF+5{J@-=Zug>{hF|9W) zs>SJNZ904RTU`;`5~Z3K$GY3~|6RJDlKLzwGQ28u$En?iUT=M1_x%6f`~OzA``f2+ zOFw7aA``Xvt@hzx*ZH1AHm~k(S=TNyZ!dHG-p}G{vH#M2QqI4X-?Dmzi*C^UKaY3# zJY;8Zda(F+?5mf`dG0mGayQOiQ?S=o{Pc8-Kj-ZC9@aZ>`=`mf*ZV)SS?ySrX5hEE zedb>-Bbhm$U)}q_p7T@FZSR?=!<?+|A{X-PIu^^ZG0Q$({hZy?6DO6woo3J!e$6uD z=|lA+=g+RLjh~VDTxZvx6&We~%AfCjI{jE`A9vhx{<xnXKF?{`v19Y<y81(#-kzME zW93_OT224+#{KL0EJ{il9VP!QnfYtcJ>!+9rc0e|ukcw`b8)71eWXf2gII+a)0EqD z(mUR4n|X0@i|vK$r;QmGFmFjdqwt95TGaNYQV9>+=l?SE7%iI5t+`*K9o+908lCR; z;PJF+G1L64dYNV=MOUPXpIRHdjjy?|OysZ)gMsr3{p=@qAI-dcB46sj^Z8ePGJ0+c z-Ei{7lxFJ>zRn!{k-3bXUFP>B=gWr9i=HoeWxL6T!wX!v&#g?hw&}H7FFh@Nr`5;P zT`m2bOD|eh{G7{T-IN*Oc)z&%`JY!0cmIFjyKl80)Bmq*Mo&Uar2apNuQ|Y|>woJV zd)qd1-M0G~1+SJL5l`TnP;vNd^o#zPSJJ16-_n)5(eQD#aKQ6>zMV@PB{mB2uldt| z|F11y-M`5Pg7fou)0>VjIU~qyVlBVjGP(PJ5kqNgj7Hj#m)dR{*M4_@|HuBr!o`dF z=FT{`Ks7%+Xs5pR+_^uVTZu9=?z3}$r}8t;PDVBG>E^C4T+PCpJl6YXhgb2<FzWcd zV%3Xdr`4|d&I#P}_oRMR_Vmf~HYrTouKVv({pIHRlk&FjzCK;Ay+`K9?{?cChpXe< zlH&uc>jPJuvQ0VmvsETmYv!v(^$&jjYz(j6C3}y<S-C%j`^S$%CE9t8hu*vYzux~M zc+F(3rJh>T%K7t)r4@o6Ob^}nb3={s2eGnKx>uuq{V-e@HRHm3j_~P)jt_%Y7%lBz zdGh#ziq*}(Rm$vE<nDi(829wr@|M=h3GX!g{g{H<^X3LW=euIy^FRAWoz`THUvA=l z`z9Y?^*XguRllllmQiP<!GYWA-1m=tck$}g{u2BpZwZr&`27X5s(#s2f1mht_dTJ+ z4bP{o*lv65CjZ@s0So0BH>ExLopw-X&Jm_AyNSoY2kUk3HW6mH_CD3}TJL_7343R~ zVzrjy7F{_p!)MnI+s(p#TbG`j%VG3*o?HCf(1oYte)s!Z?BliDV<MkuEGn<laPUfS z_|MB8PRUY!ch&SFzerZq#y-5^;2q=`ozXeL{flPWv&7jfBHaR=lNt}Pu{6s>Oqyt% zDjK4)*6>SO#Pwc<EzDj=jyzKSak)SD&4)+#ucm~>W?p%9{?}8nUT>jH<r4`CPUh*B z_qgv)vcAwIAuXrwa<rP&>+;7J{&QB`J#}@;@kw%fT-{#ZJ|w>Wb<DO~{caVj_$&S0 zCl!ULop|}NthB6cu9|)Qg7XL7ZGZB3lG?mAV%;9HUfaxDq5{Kyif`ok$*Wv?@Y%Mi z3w{?ji_N<fIo+qH#eKn^mBpn8^k2HT^hn?Pb!ba}TW0v9B{Do$9{k^Ge>nW_4MvUa zm$+~KG;yl_yF$MCf4cm)_Szt^)c#kSSE{%wy{bH;%5b{**L>YaPV8=KtM74aQa1YQ z>76leZ9JFHsZ;q=y-%(>xZlM;uW6=Hs>fr8oR}-cLAuutsh>RFwR-yZb*Ig`vVZMJ zTyp<V(02E^e3{eQYtL>lmD?S#@8q-C8G@C926_hywih$(*k)c>-sbKY{3xYy_P){- zH?g0c@fxbr3RWg|-ts@Mvia)G9~&!zkE+&&c+Rg@OHw{<@A&4P(vC+<oXo%Z7&x63 z=y-D7^HXZ!bT#$x^~S}?)+_Gmh`+x5I%9RVbVPk(wsF!$hk}OBarRSRKe~T@%Q1uH zpAIjUsO&vk?#$J7+pX|wO7enEao?q(7Vn?A?ThYz7}{yLj&oYzwu@6u%a<F^SrSv> zKP{B4Cj4J><{qib3Z+8#LgObnK3=~)`R0Y2wiPGd7L_~PFgh>&PvXqfqib$6yR6!5 z8ug$}*5dI8quKwCtlh~pbIR5A(WmR?O_?_BHlwp~i?rkAhp~;vWM`i*KP8v=xZdvQ zyjxp7YN+RCJS+=2W_{7~MBk<A)urdJi64q7G(Q>|9rIG;-sgLb2XtqI#!ubgckafc z`ez@WZNIOe=2yw~?7_75-H$wOpEv!I$2GO$n4j~h%E|0&cbmW3`ZjClrNZZ@ZY8fW z*goMw=G-i1Kd$F%D}$fsDO%4gP@UNvnRmGC=lzOv=QHNZ-mCul_JcrN>Dq12*7Mz$ zTD)OuSN(Ly|4W^D|LLo)EV#ajlW}@=;>~aW+xOS~xN@-mf{;S|I+2^7&Mu!jadNcu z#l->UmP=lq3EyjbCEBqx@5wvSQ&S!P^40B|tl0OrLnTu^!skV`fbZN%8a*eQY@O8j zb+2#o+o`c3vC>7*`nub)T!&V^1f|7cyA>n!J}r#=6tU>-Yp$<CGX?HG-MIgu>=Gy6 z4X&%4)EC;<-hcOo{mRiAMp6A8aSSYBM>Z~3VPYv!x9&K4GL}(x>HVMjKh90rk+a40 zHviM8_bP?#ZhucN&3KtDdYgsgkzB26u_~|hx_Q%;zHcz8?P2db?fQ^+cOG-;y_T@B zN9XfWC$vt#pj+^@XKrY|XpB&KrW!+8-0z-^T6g$X-!lCeqNes}^FKa^eQn=Qg!&%; z@II;M%!%VqQXc(Tuuag^`cb5+P{|>M;?&dyM!qtvdf%9Rtpa||dZ(p$Ewtj&^XEP` zf4=w>Z(X|4EG~m#?v57@%t7IE)idmqMeVFat6l~?z4G&|U;K>9Z-&m9mkbxXPi4<E zvItuE^6-q3l-c&u1!2E)PP&SpKKGJQ*6Zp--m5APrW`Dgyq38Aso>AD4$aAjbX0lT zy?;B~S`<mjTskv-8sCe)^^WtlOwoTCT`TH)llP(L^t;ckzI<74eR0A{`NoU2%?FQf zdL*UmwXNv1?f0|#1p;p(`2v19s+0=HRlN*tkKVy-_DtcS!i193R@)6U$}eRd>b%Ri z`Hp<mm%wv}uGGGl{4;f;_%?%trvXzo?J=Ll*t3DzDJSLC5k}^}esi{;oA>)zcg_2M zl6*yfHOwk{l;$s*JpbLVUi%~EV*ifE{p2>TeOfE%bL!Ws``_<;dw#FpvS8)=3yVL0 zko+s{d8sUX+cqVKJr<XYU#xoF5gvcL?VHfumBk;eW%hhns$*N66uGSSqz>nT2gfC} z;x=U{K5Cpi_0I>ji;WvUDL-@C+>-v_{{2<vJDT@TS$eQR-8V+o*5eodZ;wSP%lE%_ z^~+eoyLy?grL^5c(daAps+cBpHvBnlr+oV4roXDGGmSR(Z?L~{N^IM%rE9VRmE<d| zC$dhT;qm9fK~Djzr)AAGeN)1^ZoING;tW5`Vs`FJ%BDYSzNqo`%?vpGyT~H?)Y5{o zisXW+imPwm+}`K))-6>3#zN+KR`W^<*8GxK*w&eN#`cKQO1E8i|1WuB^E3N-)?v+k zrnklS`x@;t6DgEfzC$u$>PD?Z_t|W!r7yE>CbwyXZP3u{^82ylnrm&%k>^k2|8eO* zoar3W%;H(@!o2a$Hc^$5%q4ugcBUU!VEp%F>8S!uizeaEwyc+?`T41=idhxR_(se4 zd*{ciw;lIZ^8e56Gd}h3y5@b&)xJ^5JWB&-mi?OL?lA4)=J@Jq_b<DOJ3cvW^(@>f z{HI!;ErY(<r?1~D`@TGBKd8vevg2Xw*X12Wp90msP2Uvex76m-4`rUF`zNYZ_Wizn z|5^3N(+y%G83(^kNP1Hfy7I=gcMc`u{nhJACaseDo$_cl-(1gA-Sux)x6eLr(<xUn zjW1zlLgVozy33acrrf)HaGCM<*AwP43$0rFbzJ~grch<)Y3cXRgLk~&`|H|6@BP2F z9v1)iq5I3}YV%;`jdQo}x_i#{f9;2Gx6fLIwW8b7b{x3fXm9@}xoGi{y9xbIxn>xh zZZNJX`!8MpZ+35YdgKxtnVvQN>RYZwUY%O=&5=QFCPT*Q6O)&+9@T$4q57-=vtQH6 zXm^86qR|gm>8mrIIMZ^|Bs1l?>zQAxCv-Y4tjTtF+xtxXmY3d<6Kx7#Tlx22IIUc> z=SJH4k3U|YJv{y2lj&ULpIoypstL@}5*FoV7JjsCpM&J9HL{PAqUVaAmu<PnqRtq5 zO;i7+(`*<0!bjmdv-)pnC4Dz4T$FA9#ymXY#}DqQ*SW4f$iHHB?A_JWQ_2>t;zo}j zv8L>}v19kl^)h0YnCnZ|m22MF+MXX|Xv2Kk=T@`V4Ck|lUZxZsl6`z}*}H-RCr=%j zl93i-@Qx>n_u&3BM`m_bDRgl}2g=Bptl4;i@vvl_n{jvRyH0WWwA+{YA5FP<<A!nL zguZhc(G&RiJo`gkmwl2=TF=0LrF&7qL*BiUyQLz$?mMyY?r6`uGj03kb<KT8f1i`( z6aMtW-%u-mZ(2g%zfUCwPrROo@iRmSJw28`b%ODPbMhIU$q64#*6Qv0Vz&9lEB}Lm zW=qU}ngvW!s;xWs#&yA;&8r+&eicy55Vz1wmD1I^d*;Oh<sD%~x)C#)nJu<jtv_d5 zw9>d#ec_A#AM;LR^n7~4ely7Ilfk?GC0^6l?wvMSx#Ie&^%fPipKq`KEVkuuLeSIG zQwlt`y!&h=vGeewu6-qElNXg++|=DQb;X=zr>Cixau=~psX2U)bM{xIJ+XFnrANOV z){C5@t!o|h^gyrCX5p}BPeeW5>^arHCb56ockA_g&MrK`Uvca4OuH}Fbk2IME_=Ui zzs2r*z8B-BJ0`9B6K`GfKKj3Ey6+5)rSq2e%-NHWF5+D>b$)K%iL>r%x9{EC;4`bX zd+({=1~LuB-fJ$~m^|}cXD##ZQ(^M!X<?ob%lK4y+>TA{7M|6AwPN<NRqRr%>O1w? zTDS7NKD|jqGu5)?i(|RX#(dk;Od=<xO!vI|P}jTr#+A@}8#)s%ZC!ioA?Lgw&Wrm` zr^LqDT5#`veOaKfGj98gJATuz^>a<lW@ET)pZinDPrh4jntv^q#Ei&8sfVUVb6s=g zee(5;ZD+6Yyr&tvQZwaCKUc<y97}xJf4_41tJhq@M&;f)t9_+JA0*COpRj+TzOjH& z<Ew%v44-Y~w;i;WW9oV1%2-%_j&t|hcwv$A`vb0D-p}&=;J!D(pV_VD_Z&=qKgEPc zd*iI2qo+3PIc_3boN6(*gf0HV8;?IP4IbS&Z<NKpXlmw-yC=BYwU0eGUBB;#`~1cF zsSWJw1C!m3p6%P*lOtQQW#2TmY-y1{hb3Zq>>nCvXT-*a-un5#XEF1pe1Qa?3o_4) z<+$5pTbW;UTUiR2`c_;hT;VP;b3=B-+_@&RdU%$8Nl#Xl`WxL<_<7m=GhWA+HMSRd zP1x~QS;1{@PKrPK7vni0Z`*v9T|D@wgi(?|>b2s!QtQ>OpF~QJc7AevcUmc#S$zAY zxLN;v@10GK`KT-H!RNhP(5<rO&pq{a{yHc3b$)-f|IT(zm>f{|Az=TFl6yTap?WN( zk^+0g^X^m`DQ>&N;V87RpgV7Cq_B_l9IkxTrrg=n<U6LVyj3Car8ob7OW&Qw#2m9V zzdoOO-MBw6X~#B$gN4UVTmGp3A6-A!^MLl+kdx~}o=!K~Xgh^#d1AV3Hs8hIJ&U|% zs@~eR=^^);vbP6ZR*EoInuR=J)^2zj@V3Lq{Ny(O>U+1mDo$^IanxT*Mp(yT>11*B zb61x!HVR~3`j&s|ci3{3C36?$M+AOTjgNgLZrOEIl5gIhT{&D?dw9+SospNEb=$Xh z&*ipGlNT{PQOAQ!gpZ$6d^u%h{Yf89#htrM0x!we{dssecuu?K-r4+<7hlocq8qg8 z(ehaJV@oe5^PMyoKb114Vru>uiMx->ZG943H`la(K9^i!yW-!{lP8z2X{r_U)4DqK zO-?TJ35Vm~(%$k+S(vlgU+d=_X5;7cKh(XJ3D8b9nD^E$=b4!`_jdcgD*JgpUD?(f z)LeG^r6Hf)-KzCzXHLD}80UEKq)+7MgFBoKE1OrEu-&+kDmlSW##$o0w%xw|(v0;t zBLm{LO?ddWY(rIO@`uRS_tv*AP6_Te4ofl3aG$Fszi!%5$*L)At@3v{U!B+QZLfG@ zl>JTe+suZPZTDq=Ki0ozWApjz@<S)SWWSl!!saHoqUO`n*?ayx@0@m9+vm&Xy-UwJ zzBIq^{(|xx+b3pniD|zUyGzI)^@+SI<Zn5<y)km#tg4y2nK$lQx=3cut~*@!kHznw z`upg^b?dK8e)BNDQfKC;uUA6*p9$Cg*#DRFz4!UWQ+TFaV@_3Fez7bi^mv?Ez};Et zIu|Z6F3exfv##>uvY_imQfb*YKIJjpcE4GD&@1)r<a5<|@&}C9XXKT67BlhqeQBL( zwM_TK%z}GM(ydLn=BB=ler*%4;38-D>ibsv-`jV7|369M&oSQ!uh=Ca8$NzoaX<gR z)%%zqb#LQb{2oTvPrNB|>eF^>cKr&b)83npob&5k9rk+8o*(zB%GRq)zBK=7N@eWV z7;pcI-2QKhk_X>#|8R}}`Mt$x(P8$T?^fkB_s4X9zyANubWQoNBUfT`HmOS|{pjtn z|Dqn>qZhb2v#Lv}`^ED3+Jo*}Oz&Oy|NE08>&L`r(M+}8t9~u9T^;<(qnvvdXC3dG zy&p0*SWAB8jA3{iBY54fGj*F)?m;_?%^gc3n|EFDov>B&8`sUi4L;hvU))L#8P;x2 z{q?TD?#SyM+380uk1onnTG(86TAV|0GWQ)%@2T$Xr;>A$?*3%({HWRe<LHqcJ8t?q zPQP;S1M7RE9p1)_5!#2XPMvS-T)6!3l0%>8*k?*IWGGbbubX+=$?nRh1&fun>bAw1 zs!5fr2^}yIVBhXOzivkL{Jg`=57gQ3w)D&|eqpei-@$lse6PKUb*SKaW52VTW2Az- zJL00u_1d!3UG4}!m|uG*x^Y@#Rc=)0TZc{ePkG#9dF<AGIiiHWcW!m5<JW5kCcS^~ z|EBxhkGBuJO_(C<7QRFLk55>O>4w`MPM%aclTf&b`Ni|w?lVhnolW0RX3r`8^@x^w zk<Pk(Szq_a&ppl6%IWsxa`6t=c~kv1h0YB>S7Nc?zqG|^)z$tf*HoD9aeNGqQn@ba z@n+81&r{slsu@DVRkviUnxMAkt>woq*^nSbZTIN-e`VJ1YZ~<5d|P|#P#@FW{Zk5a zR=&A)XeHmSQ;RPKrFG4{f8cBX6~%SuUOir5@?3D;{Tj>W{kQ*HPhTiAf60!=6}<oC zemtJHpHKGm)Fqa$Cv5+unt18-_MBk%?q!GU{@yrQ{V=8I?c1qG+V8C>yV*RO*)lbC z=G6<0fAp-?6Zm#qUAE*qd+xn*$H*|(Q+l4ao=*1Z@!n&tdRhNs`iG<itNCLs@6`0E zm(H>eIhu5Ox4_-J<YP(UcmJ(9E}0YkXIcA>SL(K=^FFQIrsT8xrUu9BE#140$32Zt z-7@{klbtWhEGoU_x=z1{R*l#mpp<oF>;Id&@ufa9KfV50EfH}pvcX}CD67fD<EdK= z5+cf0)|dIL?bhVKoWRnTyY1f*KAXaqe=m#sNnSh$8gNQy*v7STmUnOZ)jMq^*Dv2s zW%cWvDI5QI<+fRod0W_)<lDRrT|9GU$;LD$f#yPng^8DU$kqMnsh(Hduj6ty<wv4f ziQK2JF%Iuess$}NkhRkzphIkL<W>gJOQL(&?m77`&Z=Q=Sfet7Vb3rB_}2$Lj4HS2 zYa5Bxa#US=sO4|_W7fk0lUiZRqSTARLhm2v{+e*^|JT{qKeM{*Z!BPq%*>c)@6o*f zbod1up3?6h9?qUNk+)2E1Go3J9Ra>O&s!~OzQufFokYpwusGJuJEP87wqMM!|J%1- zOgBC5(sRw``*ZI3YrQ$syj%I|L6eL7+on&~aLw0$b+q)<ybW`2#KtjAHWoZ2yFv5( zS-#!PKIOqrR;1svR^ktzv~l-V;Z0{I&fFy#W38>edY=47WBDJUe$V%F<t$WR8ML!( zu4U%E7cD=dKQSFH(|p_c;PlBq=KdKr#*2$D{C_q7XY`ss@jiP#u+{(Z<LZ|+)Bf*o zpYmb)UeBsmDKdZ8=zosh#%q(g^z@6k9|zj_-0DAk{}=j#`w8FdN-0LKmwopgV>WDZ z@!Ro8+CFb}YWex;uPW>u*z?$W!&23s+&TV!Z)wH5=kx9M{C1XK->Tm)ckT3!u5Yz@ z+?I|%J}loOxxrZO?1A3CwQZh_)mOj8c4iCzN#DR6Z~JAE{MY>O8c)Caitisz?tb1L z{;zX;-m3$j9)!xp+Jw};D{y*vTOe|MwAkcjb{CB}TF$IrlDb+Ws>jKCM>wDS{%Y-b z_L~3dpCjg*_-V{oky{q?Q%&*blP>PhEt8`4zT6Ns|Ie|$v*qWMdt3CbC$u`ZHsxQ? zJn*z|dOA}AYv0*5UxgQY?==-!l4E>x#zM*KiT+N<Ii^L<)4q8_h<X3HtGNrcKNM7a zKQ3Ruy@3DjkptXzj=X=~2;M)#E<H)<D)&U|`9`ysZCobUqRH`L{ngFdrWreBCouP& zi&=d7!*cG3&kXC9$LAYso>Xw(BXX4Avqk92iP8({v+qVMEj>0#Dnc=AkM)!s)6GI> z8@+<^Y(7WuzFS;hEFX8i?(fONv+sZ0Xm;m?b+1j*&Li(@1V27@UAJge%o~X&0kPjt znIx=D>i)R?+4DIu!h6cy*;R9ktx`TOwhKG;Y?V*`Z#TD7o1V<7=qZ+2-#O*ivOD4P zV%5Ue$J^F?y}qxg;_>%;4+>)5Hn=Rwv6gP-O31M^x_q{r<MNE>i<|FcdCIG0JoT)5 z>m_|O>|Md`gL(NeUy519XSHqn(-peJ%1xdBkrV&<0}iLOrvAv~-)TDE*lt7WE@7#U z#ob9QkL>^4m|k)2f4;8%&zVP-GAvV2TY37<!T-DWe|`NX=FgNrKlkyohqDCN|N6Rx zPw~Ob9GCbREu~ZEr|w$op#J%!mdCYvtNJ}xelBxh%3FTgb@oL$&S}XFTXbGkmN$I( z*fU}Ny|uFaZM=@X`fD<5OWyQd(PjG<-L7x@Q(}vKnhvvKrPR;znG$>IEB@)*oL$ls z<x|Dof3CSbf1cQl6vKjxW(<}E>D_i0_9?5Jz2vFyb0N(3M|#26-im3nx0h{7);gFr zUr305)6+{<3^R57H<`_7J^jM*_xZ_AJ{9loe7vh*?IfoJI}3n2_r=rLcXz|>7OZ)} zd`0}X-RtdNm-;!rl=9P9w$AIZ+q|wD&rg(H@;v>}?v<Uwr9UY<ON(bmi)=ppGB@O_ zeL0iHvtz|AHaq_5td+YX)AP)1UC1WUTxXS8^TqFkR2}u${z?7Pzh|L`mMp(`_&~*r zzOaxwh8MCtS6n1SULNZVYtBiZVWySx>T*NUhnCk9B`;mv`R|FNu*~8u2VDiNcX@68 z$d~hZD#zJ%@eFZV?=NX7H-{|Pxxzm;x_sB>R}(8|i5rKvI>;?}%&L9K?&HzpeEI(; zgtxwu+443)to-k@t%s}a@7e!K4q_92`ohhxqWq50rp1nZw`We}oOs-`BxvPDf6?7F z8o#Hkcir(~-Xoct(Q#*Qe^|CI*!|elLapZ}d|gise|eiF{@DHL|Eu}`xZ*qiG|XrJ z>sN5}dh4<&8nbVQO8sS5jd*o$@}(y`cZdW&ceP&i{9Saq#EHczFZEp-%cbsx^&eQP z|5j;B*)z5^^DSx$b(Viv{%3LY(rc&c=Y1A8D-oXeNoN0xBde$X`C}UQ>F_$&e=S|h z?SA&_g~o4@ex(?*I67DNc3z14sn|`5jh-46CHZn{=0!GoXBRP_Fn3H4;OID<f6GkM zP0QBe$kpt%^(X31J^Arb|C81IDeJf0{>J_4=kn+6(eLXH?c_YK$us#;^tQd48<z0j z`=Qm8x6)aCr7Zu3+Z+$S$i}i=Of+Km(LDKlgNl5qn5O2`j(?@xsR_QyYx7vbeHiR> zG*g{!eEDP6@?ekm{ZAL8-%W^kHaA{v`^*&=;$4@iY*M~CxBHT>!$Gx;WnWK~Z8J$( zc8*2oVeWLsW1jA1zaD7yPOyJ5{q$z$1m7hWrDweRtmJ$|!(d6Rn9jd<*WNxbNt?7T zX0vi*ZT{oa_Q#&7y0P2;J9Q^Rf^XBsqi^H7XEe9TXyq)DSW))Q?2%~NUAZ5-4|fHp zi*L=2XRE*MF5dWRnhfvmyXK+Cc6}3iS9J1m&yx9@gKk-z42Y>q=dY~)saTTwZTBU9 zzZsEy$D<qUf7n-wc-MTeIS_vPmi4*v`ql4mn(dtzeN&R7f19vq$hvzkJlHK7=D*y| zR5Gv5?nY?${KjuPUsS1Z-FsFm*WVO>s`7ODX}>*<?yU=$bRT<6Z@Q{n>$`pF=2HjD z_WjDY{;_}l)%`)wzj<G1OR3=&v{b&;xY}xY)AhF+pASAUe9l<2>FA$n0pTm7E==6~ zIOY4})Ag^sc~tH=-N@6vW4q^{_4<#AQujae?Qof*@BEVG)BC=jJ?AT@@7lC@!4Kaj zE|-dViqEN~%e+{!e&gN$U+bUOzsmi8GKE9+*xHAIixNt2{ons6=VW&4Easvure8Ms ze7P&Q`RP;r^BbCGnY^0Myjt`1(YRngF+HVAe!>b)_p&ZbUT@>Ir19s8urdLS<5Ddf z<UUsHO4_`bA&W`r>oF&ulT*4sU-<a!!vEg;wY{E;tTpDny>Z*Oa7WRPfA*XH_5}Ul zoW-6OJU38m-`C(9&n-nhY{<SPlk1dT_orsZc8*W1ey16D56x>d-5z|T)M-)h|0#2= zDhejf^}K!k%@oGXXKx-0N=p=R(z_&)$9}qsXLI<~>{}1k*ezPEzqWbV<dU+x>$`3} z`~8ifB0YUe^%tA{XU+LL{9P>!Eq0d)&n{?RcKYU*qj&$Ed9N~MchS}J!o{m^_^WRJ zr2eA$*MVQt)0hgTUcVl+`o^Ig@o4qfSmW#-!CkwwoBgWKu)dx>>#6|n>(7@@pRUjO zG5fQ~UfGqIQU#?Bd6_paJwI@H$?|3fb>rZk3vX}E@>J?5SbK@1pU>8DZK&+$3ne_u z%AL1-yf|YbUr*(SviIc@8b9OG?Q*{C)Xzyjb>zU?KOYq2?H(4i@+;=VocSb{Stou} zSDjsX+w-6~i@MxrF1@@&Wb$-f!Lu(dmO1B~dpRMsfL~_r`_knbl2b1;K8a<CO*05k zeSPTGCCi^ial*4M_pr`9ec)-m)@F-I1@Yg1aQEvs|JS_rVcCkBUhS_ltrp!`wL*t` z$)x&lJ<|u40cRCllLXef-?uXV^`>O0U8=+8iofM`G0`i%?KW+-%6j{1Nv}nr)nn1y za;MH5S#<mCloZYIBiGWemcD#&;LnG%`m+0erT=fYd#is>DIrDfXSM9EPygT9|M*&S z$-K;8GUY>)dyf3SZN~RwW>(EK^R1fqiebOs=iR5T3Age@ZB32;StxqbXtzwLdg?m+ zmBIIBT5RQA;eW~6|HZ`W|4y0S(b4Ch9IiWQm7<s^y|I6h?(V-jJ>G1Wl6TMFq-CGV zy{<}q|D_Yh=T~<8V<}ym<oe62>Y|ok)YH!{UF%KUp5I-m{!-<Z|Js_?$&JsPcQM;m zPPn&RW{bbN`PKY`#((ur-deBy^-HavhKKh??dc7r8abtNMFL)2y}4(;m0*A7_UkFk zdOPo|`w}LWT6*rm{*RHVb2h2YTfga2`nx+@#a{pYv;(vxA?aO0!^@XD;v%*umzdo% zk<kuP@C%x|I`z`=qk6JyndMh#taF+2(#NRhV~#=#yZN+DJS!fho<7B=(0MhYN;I*3 z(Q1`LAGCaT@Yz{(t>`-vl9|);z3}KHmmQZI-le7aZ(aUSZ2pVWr{muEn3ddIJ5f-z z=FsEr^yd%$rhnQuxpTum4@1F#vM8TRra4WGcZ(w@Y}*nXVYp_l^rbWF&$u3rjCa3v zQ!zMwUD%Q>9lEz4^v@SrS!$#u*|{!pvXZ-6+s+UF^Wt7c-zen`+RT-7U~BJ6!9|~K z%}y*>zSr{Lo6g`bEWeLk?w6hS_n7xghMND;_mxlkRkW?Q~&E>zU)nBRwaHl`=m zM!xy9aeADE&G)nV^7rchn(hnvF1+p0#_yU-K2Dv;$a|~fS>XQJGC!=P{!CpeoLCww zC%wn+&Ep6A=YCUP`|QIbu{yTXAv1E<{qViJ>@xe5sVl9LW;+_bIdZd8NT2bPSW(ad z7L%KrWw);^c-VWPIqG47Z$mfFoFxZM)0r-vv-M}OIal&pU`A?c{KF%AUvJ$PX1T+6 zQ`Mu7+-=jpcz%kU*rNY2@%jcIixW$tZ%^JmtH&hvhgUp{>5lL<lVnaT+`3?n!;^Ux zCr`78TD^bHUmIjr%MqZ){#&xxa93x_&7=DIou@PwGHAyLFJTS8=WM;CNo?;7U8i+> zPdm?!E036!an*HRA<HFsy;|*x?^C`nuwU?R=}d+@KY0!(S-;V0pJ>9>d-VLZX}Zbp zq?jg3e6@1$Z$0l+$ix47^TZi@Znb|?^QyJlA!IC>@Zs}EA?pT<33Ck7w=xB8J8GiA z7B~N-?FUyaeg?61TIR7~CbDMypJs2-czje|Z?2x3?=In{HE(1UuFWjEaPg=p$L-I2 zY?h*Te(wG3DIb?Janm=4=|-O&6>p!LmR9$w_TJ2==N*=I@hn<b6T^D8_C|@2L5cL8 zX^)NHSbC_~f0f$DQhIZyWJJ2*hXY~`8}`mQ)Mb(C_9|@IHP-sjX}&zKV&%>EcsWYs z<!!yRt<FDO`snVJ;`th^r4<3k<=>qAykc&ZZUS4w0o6?xZkwLoQ)`s}#5w-c=QH8+ zAAXP7r~m(7_IufT|1REMQ(>;`SGSli=M@h_%+9MR%b)eNo7G&I-Rq}bS@FDmy-eQT z!{)Clr+%7V_tpDO_g{s4oiDq;-RfvwTQ*%(Oqgx%_dnUU|1UkVz362`<=l-|7ADr$ zxNZvnC;5kwb8ppJ|L?^DXQvmZrpo6WSIlP&xw}l(h$H=h|IM=B7ySy?HN1bq?3P>C zWE`#XdD~Jg(?3FUzGd&UD3}@kkLNnq%{|{%-8WP3eQCvIp87_&vq5r?@ka+cc@eK_ zR^EvgZ_a$vs#jmKW&W0>nTNwf_Gd}oc)e`%7K_JL1)rXD`=}O9@V_UOX!GPp=j~eu zOQznh75GpU&s_4VsivIeY3jMnyE)(A(!G7vAXfI%v%^k#QZ_%P?5ptGq2~WeDOP53 zH2>FytN*%NewuW$uj5lddhi7m|HulBS>?tb)Xq%Oj+-RDPgeb;QqOFota*-k`xdAF z+3@&MZM^TfsrR1Vf1}r2Ua7_q(qH;Ae8HL<QFE=ck5$N2?Ao^F<Xxo>76pwfhW{j_ zdM{QM?cM0tu|jG=Z=hV}Uavy|KUf>v{F4$kO>3LEX^m*I`P6!;CSH?sM^5mSDSC-- zd(e_{iQ(0RiJ~Sx+l{%)io!e9=LTQ*kF&q?uS1-*u*&RjL)6L^jt5d#eqQQ*bSpg2 z=e9u8wdpDoRDv46ELmgBKTW(><#zWpOHGdLhSnFXI6ZHAUjDMEXGM}!-jdhbXDHrM zY~fn}N5#Y^wn3~?b@Kge^O(6Cca=O4x@_fr@WEp5S1URfNqhBnDR%7Pl8yHc*r2$= zFT8H$+eKVmMP2Df+IDlQF5Mxa9r5shd*Y|J_KepS%U4%@{a@R<T>poX{H7z>r@oyI zJE?KR=!5&g2lk(iJob^PFuVWO_o3>8i04gh&#qO=e~Nh7&LfcCemuUW>v){}!+kcw zb_GgnoOb>yn!o<P<@=x3Ke{(&Upo=>ux0(auz&XppPp~rzxc|Fw=Ur|UQG8tNzBm- zofK4mWW#<ZG3P%5UOuyK94UWPQ~&Vs_L{qSA9?5fS;?Y#T&~9R>ecKkt1C8f^d~Iw zb6T4dlNWBm$iZH^H1|e&N!0|a$gWk67kjtHOiWqde&D2gL8wE8K!XaObEVkfpa5%= zwI7#y)V<I?<M7MPc+yqNI~UH|#65oSZf$uDlgpltt~IgjmNQ+Ha#yBk?6|P~&xD*= zKl}GwT)gPu{LZe*iGKU0wm;Lhaj1xFn=*07QfbbWm%}EnSg}gxe#6h;b^BkgZd@84 zG^JMI?UDGr`%K-;v7a73W6|9vdgJMiFB&D5MvrY*?~y$3*s*H&v&Ej3EsMiSZr|ST z(|a-e>#XW$3uo3&PDpyI^2Ba;TFCy@%X)=ddSrYSCKo(dT^*k^y>QpwXFWg7tOawg zE!_6F)Ky)MCra;Ab&$Zdn5@#)i;7`0*w*ueJ60Mi8mFntSoPjGoIlU=gTb}#{a<3# z7%$z7u~2K4`#K}!hlqR1w6u$=73=;~{ubXc@nq@m#l;_Pb6n-<QtH*35vaWR$IiV% zR?@P&+4x*uT@6`y<5F*@cw-z7pWer<cP?Hp(qA6`V|V^355+4d{cB%#9-jQChwF4+ zOY`F1S@zx+O>$36H@hjy%CIIzL%nFB{;?gCxSzj>o9oS%EWnljDZsGY@0H~LNye5d zZWO3KXL|7Sas9_z51Y+x=Y%YsXj59Dzut-?TsHRYi-_;>f0nM7m#clY@|NHv$K53> zj!cdHq+NJuo?*p&_c;5Cxt_-_Bs{(~)vWTb8vDO(2jg2#KF+LI(Hee3^ndxk?^1vI zO&#)YoAw*8D^tC>YH7@scw3$Bf>d_BuM$3qx2l4gZad!d{ovd5$Zu6uCijO&&lleO zB0FXGw)m<k0_AeXH@eR!+JtZP3TVINWWDL`hRbQuQ`@UPUH;xsD7U{`_R!(&d}&K# zc4f@Gy1pg*<CLA-c3W(GDS5~^@fY)HdwH%dUcSHg?g<<5#@(7<JBhtdzUs@lhpq7+ z*3Jv9JGFlM#8a1Jdh=eK@9Um#H1D8^=BLf?TT0KFw;n6F*xG3j^67cB;b!eji>1qZ zZt0qatXmTGZM)@%@YIx>)BZg&IVL8QX8(Tvxi2r5pPk&F{Ogiha8C8J!v!%DRl@Sk zx2*rp>hH(ow%n<9!usiH><6?q7M;7Z=-4Wm6(%`t&q5YuMm>?7>(p~;=8vQa2Ny5C zcycwLK&b0)nGIV^GrAAXXgg?gaIy9F%rEl$j%w!cHlIr>cU`?UWz)mI(bf$Sdn2Uu z)LtG*yz084YPEW1;iWB(*Rqp)EnX&g3(hreW=q<qs3%!>`p<)FsR6GyJrz%G+y8WP z-sz>fjgsv1vrUptKAoBVYPn%6fA9PqN^h&KJg<8<=elV3j^rB;F7$s|ahrAGrpdyk zNl&%@-ifw0{(IkW+J%Cv_Ro@=!`FYB?b3QXvTWU_PfwhTocvx`l=mFGB5!%L*f;X9 z-=lTEw31&f<BQF#zxq<_@zmWm-TA(LPhG0ClAZ*1^V^;)`yX#(^X<=iIl0<b{M&bQ zf0bA@aZ_2{<g%&DZS(Aw_gY`PIrn9DjlZOB`{5}$5BcX-{knbkg~dM2>>EFJeX4KG zIQe0*(?;uUEB+qY@HSgoB3ECzB&2Em+^U&fMn4*t&#kUL<9T<M^=j+4Mql6M8kE2K zB{scz`CBcKn4jgJ-hX~@bJaP9hJ=K?UhV7lf=?6WOa4jzZLE0^AL(R&_1e8{t*m7S z7jG%wqrXn>u~$l@+o$bIT)Q|_{U`Ah<@7#}nNU!1RWVvjVdjbTUqr8cd%r?r2j4cm zkTdR_qR&zmRk*Izd;V~VZ~Wtvtc7o+n^x=nxw(AqY4gfWJ#VTPZn-CxF8_e#P;+I_ zuT`l(r`&0fimv5r7q9ymId93!=-5}nsjKSElWsrW^iqhWAWP`p8nO3fPs9}R+0QIl zDR?Ma@sH7UrTJ3?MYk1Hd}s!3wF|u=kW(}NXOXP-se`4f7r)}#yo#-?dLPTQYm(ZG ztMpl)`L_r1PS;?Y<K`wGl*<-ZqT^rx_2psz{il_^E+wcxdNPesrR_39inz7Wyl0FK z%h!Bd{!n${frAW+b7gsQtS34;x0io>&n9X&RW9kN<qvm*dnY<S@xJqHTRz#n{$pEc zne~f`ul-U2l^ZPWj!gTNeBQpS;`#6Qs_}wTiwx$s9~RdCX*5r}@?X85Jo63NPp4(e zxulzREqh#W+D`J;q<8WXHlMFVF!KJHVI-_S>C@XrpCii{j>UgW)tKL1vDLunoVTd= z`>l&NIJE5v>@IfKNmj4!JQOd;dEeIN|L6ZVA9nBmA^qY6x7R!E>XJzrhg2W_3s<+B zy+C-^)bmpNI&LrN-~VXME}vgoo8SFRe_H>mD*kP-bioGO*9Q-VCf;H;xH<FsjhNG0 z{`9_{6w<5qy<o27fz$ifcC@kAw5v_d7r119B}d6q@bMDMKf4XBjDDC*U}omM(%E%* zLVy3s^jBL<yUwX@%DvAKzdgBf?wbfB{lBL^w}=1BzyB*;isPW+A!+lSZ$Ez!=KpwO zSwCw(UvEO?!tVa3p;B?Dn)kFye!QAmkl&CLR?T~3lZ+&Th_D;WgY>IEp7i@OS<IZV z<YR2W(lrh~kuBjHCvLlve&}iP@xM<Ux%5oDMa>#Fy$s%0@%RIuzS}Pq=E8%0udJ8q z^G`Jnek5_sdq>8zU9ub^rKg=A^9OO{&NnI$s@xe9{Ydphh}OqHA2jFpozaYWl=nKN zd)}L?UbAPe(>A_T6L;0oW}@7ctZ$l&HTl`CeP*6?*!Js5vXOZ1sjEBQzb?B_e$2Lc z|CLtf<3}0Q(sxQl*!^6sxb$mBt917DjHjz|(hrt!y)&wiPA-3!b0^9Ai?UpQlC(~5 zt-o%RsEAqr3xO%7?-cnOe@>LUyqT%My56ekg2=q^@Mrs8zBSHgKU2+k;p)^z9=Y02 ziE(j<xDNa%nPOI!{`Jh0`TtG{f3&@_q?q-2cKcf%rTK1i`jlCvrX4)J^sDuKK8;m( z{v3%oywGA-#J!c}rz?N(w=J>yQ&sXYtE_O%{hf1zIF?`6I}%(_vUAe8pU?j{$0t}% zpStSl)2`xB<D%?zb<s_moZVj^HMg5*Tccc7{r8x1`}F^7_n&*e-%j$6I`iTar!si` zf339l;$8Qz<@%P;b5eFs&9^*W|I)c!Yw;twAHUD#{}tc)eEue`Okagu`~Ll3OeW9Q zpVTt7cdpe7zT37JQtxsGwr)G_=Tmm6>Vu?Hc-PmPk0hVObnZI6fWKaSU*7j^YqgG* zJu0`qa+-6a)yemK?834(8~@Chwc*XQiL(yxdz9I{<3z&JcL#U>d^*i(h422diYFV> z`TA{7Z)Ys<omOz8pz>q?UI!*gpL)efMQ`=(md-8mJ|SAqKf!Oors_<)DF+*Tk1d$^ z?q2-VM(*~jj_kejqtCCCt+COmIA+a|cbWa{6T9}$cebuv^QhDzEVggj+?lhAC0^Cs z_WxvM_}TsEDFti0ZLzOTo^Mh%tg)|oJxA8y{vrtzy$x*Vt2X(SzC7<Dz%I5`*xlZI z!-c52KF0ou;@kgDRqdJYIJaV<;)J=~3@mY4;Y-UrH%&QqQ`XhgZ1se$&F^k~khu{w zH8VE&_OfoFBYM4D%Y_S!w6{#Ye8cdD`#g)s)>pSn{6E$3R_qUdcysUk24?$)C6en3 zx1^eW7SM2yX<fAXnEL!3d2g1euYc&-^zyTC{|5GoJ?)Yee9FG;S2-5B%1NyZNx5<3 zEyLo}l-mooH3n8(dc~|Nzc2Io^(||IKU!`$TBB^$Quz3aqw3Sgvo;)M(wMnW{e|Sx zJIgrMW`3Sr!7FWFDsa-?$menQH<_r<$*$FLjal4N5<532Pt3od8hIx$rBPaE*7N#* zmiO9TNGnF3?R}Fb&Q#%^y?yi4$$ooYCcgh0*xL1YyYRkm&;J#N{ogNl<AlI(4dzbq zSWTOUDg}mhufmr4U0(c<^PuLNDbHB`YFKRwo7MDm-v9if^Z%Q}yPN(jUt3z4RsMee zx8QTRHZz^8GPlRNMQ=-)y=hy>gWcEW$9Q`G{#dws-SY<P+&7O8&o`Q|RM&7p_5J&I zC8SpPZb(t|xW_k7GG|Iy^Qx~e_?nxy3%6JO-)HN%_2LD0|JGL>Joj%jDims;bT`ev zP?poaQMh0cd&#Z$lESZEoA1r<El&8Fes5BEP5GvjW%Dj}mQ+60+j81#)fYYG&HqpS zekT)BS8V5`8g=}Ue@M+~Uh$tNBNnw<AN<X;;L<a(1)=6PI?}P9TMN~h9%)X0ZT@PT z<FA$1mUHardacjbx6Lp{EUih?`*<tI>eCbFb*`~#53PB9)9U3ezUS=!i&o|__AE@l z`nGmQWNW0qA%o5K+m{aP{uHz`Ca0%)%fsM@=VsmBz;;#i{au@LpXFrjE|^`ax^wDS zM4P&O_|7u%!$JQw%yxWJ7u=BiWZvY!hf?};&zT(-y*Eefki*_TPvZBT-YRiU=jKhT zTc$f&x2j)QTkyHMuDiObH(Y(;MT^QWa+=?_&s=H$>B`r-z4^uruDo}fYM#85o@2D% z?|GaxPtp@vmgt?_n)5Wfr!a2VP_)Qt`eE*joHga=?!NP3`nO}*{ER<s4|o2Wm*gwt zbnjo|daXVa0WR}x3>w-;OJ?jl(IPs9+3orM6!X{_cmIESwmp9P_RL9(X6~A<HThCp zYi#1x8SdeWxl`s%c4(JAZ&UZ<)cU_%bN|%eYSNpu_t3QuEAzg4OaJ&W?f6RLwWq&m zWM=d=*ee^E9My0BfB*mK$|vhzwHy@tz3)|4&(+oGnK8V#YVQBId!7G${o|R3zwiIb zyk%of^z{w5zIt14%}v*qwy5~JZTm5E{cVMdr~S?OE&Tspe!cmx>y;9M1qWXn1hUKA z*O8e0@!P{2lWaC#t`R<9o^$Mj%#?|Wab?G~{ukdnCaSmj_L_5_BVXjQKb*6^YhQK6 zx7YC&d%oT+zg&Lf-cH4dIj5f<E}v6le{$W);~NSt9gI}GuVb-l+KRZJ$+fpiUu=9i zCs4@oiJQt6LF*Hr|G#v<&cFWuJNBC!wWYkeW7jTf6ss-1r>WC(y4h;>E<>&V8*{^c zJ$2i*($tg7MyIN<h0j!yt=;Gh%es~Md;cDM_)J``d+wFw&AP&tt2R76!La|%uTH)| zfeC*tcZ<AxvLe5%Ir~xNn%zw8$v<DM?zLRW6(6YAxI0FeLA$p;eQJ2kyDPt~RwswO zoPE}070;Q>J;m$!4&AkLo_g?F?#c~cgDea~o7Vpe-e+)q!=~v*Nt2v})jnLYNnI<w zKPkqUza(u>(hY&DYiEdQRY>K^PEkC%=j^p=mOL5e@(a_qo~xNM>)fl=!2$ti)6~lj zO}Q=djmb4&R(_9$xmAYs;o0Zyi+_ADuZ%f8wX0oa;nxd`n(v%_E@xNs$1I(BSMZ8s zd3j!8Qyq^AnVmjSQ2IFUu&7nh_UOIO)offR&QURs={n5DbzgLuj2Yj<=M4e*UNTXW zl>%Bn?SAc<m-y$>!yMP38m_=!p=}@U{(Ta^cjDE0tFDHHYyZ0`?e}9lJAd_ri4!+X zUElw0uI#=~%j4~8J{=7IS#j>O^=F0q@!y(uoYabS|9{Y;ms{SIE&a)yM|}5|@c+}i zci?#ZWy=r8mFw>R^ku8x|7!ZDB{nP6-(K~z&Gq}8UzlI}T{q8kBlm|l%3tj&<SkFL z@D>#qeK@TCzNEqZp7X|gQj@2bop9jz{400W$pxqE%HAZ*vUA?!cxn5)4a(cE#r`~< zox?a!(q_rzxdn-lU)w|yJ{Er{3_o4o6q9IR7ruR_!MDem^7}sid$=_I*|zpihn@dz z(Ad__A74NBxPfhjN71KFmp3a<t$m_#-m|KRZQ<L3)BOjo8FIKCw~Tb)S65x_{qIWS z?P${#%UmX%zmw%$cdtWg>0ExxfJMT;mcO^0^+Wu*_MF!%^4k8m23CeCq)M1vYFXCD zS0gGAZTYy9=M76^^}GX9FIhba`qsGbp5+M^j@Uns(q0`oX#b7%`4_`9XX%LydMBIj zl%(zY^B^Tr@f~>Gf`Ih(k`)osedmv)2W(9$e_pHeE-!uRjP!#`7hH0d4AGt|VUT-J zc#~lh)AU+_Z$E!+-*^14w(Q4>x8e(WJ!CI&boV}6+;=>$lfBm9n7~1?dELfUQqvY3 z=(Cg*&T|*t(<LyCm2-=kwClxc)91?`#yFNf-{qNCHF@sLV!iqL(s9rKK3U)DmSz2r zXH#PN(+_6s%<JbFGCpY8d`3B(?QP1<Tq}Xo_Mb9WRE9`Nev+2;YE5XcztDTzcEh9f zabFlB&saxJI%gHS@R_T-WQNtFN87z6EuGYK&Sma-@#-&At2mF|ua`9+*Y>{RncH$J zadr2WYgsq%PmZs9^x<*+w^I*a>i^%w*)9F^;hqEfT<a_@%{|usOl04&>mMG>e`R2? z+=wl{zCi2G%XWLaKL_*wO+B3cBh>xboITc^N7P>5v;3oy{rtwu=iQHUrn77lO?q|3 zk<<J6QUlA-cal@q-i>}%_QO>!SL_~VSyJIT8#i+gqYt7h4Sxy0?Krv4@Ak!MR}RW{ zzso<<{wsX`qWBkawM-{PpTzE4E^zN#u&U7>o$lN7?<~vxtI_h>FST5`{d-*PbWc8) zQx172YA;S(C^qfmn=WgCqj92h;$NuwySZ;~={%o3b#4U9UST!vNXPF7<dRAcY^n|2 zIr-}gmlH-SJv~pBZ$Db)Q^;$q9(0bO<e_q&Y82mU?YXs4Eyi*3pU>5^f8<Scx|VSB zV(h1VJAJs$bl8j6RnK}_J?H$x(7#PKX3-s!zVts!ov3%N`HkLrmIc|0p&4r}f7}TU z47ac`k3Lm$Hm}q0(UXlb(niN79Z$@#oXvT}sjD)qGgn#e!sV*0XSa{lrf~LZ+%LE- zS?U$``Q}=M%={TA<XC<>=11*d=-*Rd61eNr=}Fc;Pqy7|>c0J{S&z@fZr0<l6kBob z$qz4^bmpBYcRRFK{QE`!*Z=Cbx!7;>Iel|x^t$c&HzUn%3*Srnl@)#Sd5xoZFY|%A z-%EaYM)eDt1~tB~7QG*TPCBAYw%pu-Z~Nvh<pqn~HwAYoy_`E?s=M9lIZO9muiYo7 zX%x_9HtWEmWsGHkef)N}EM`UO|Lgqu?ESu}o~OC@|M=8-<Dqb>XY^m;E7gm>UoLN* zzRmjO-yi*QN$b93|45RtfAe|n{a?K~zmLyT)LhAP?_L=vcO$E;-mmRH<Z2#Wd9Jte z&GD6Mnz>o0bMBw7-?w;y@y+kuQ}@X2468hK$MU(H<)=HUr}h?Geb27@(qS+E-nQ&f zWIbQZ)N1t^x4LsTy-QszTVyL!^EGViTGzy|e=o|)<701|&ba$&?v>Tj+IP3xGo_vD zcs@VzTBzv;f4h?OHBY+Vp1;fD99!~`T|v0G^rM)g+I)rnGokvGFN`e87}?D@r^bYr zoOpG&F@B~`(z)|*v&){maE!dl$NJ$H|KEhvCjZD=+dl6oe#I#Av^yoR&1tS?vC{2m z?sAcU^4T2n<<cPwD&5N}nmc<V;_odxvsUS=RHg1^=N<3%oN@FE-EnBGX3<)ukoA+# zhP@H0n4ZD3;k??`1y=&KO3$3==uOF5pKX_*mnq5JKlM!4yb25cw+sufPnwqT@%GC( zHYovFflAiF{L8OtKAgM6$@8|PdwuCO&Us51cBq{FV?JqKrSZO}doNFzA3I4|u61_W z(@lz#6{Y!qwXONF<Zw67!?XDp69d>w`rl{GXIk(+cW$V^R^3W&r^VlFk7z&e_~~cx z{XpV`nhQ0$Z<OawIe22>36|941slQ`d1ssa4HiEa5aqW-lJ{2Nl8y_Sb3blyXgs<6 zTDhA|yv6MqIcH`iJz2lUztBbYhU>nU%WK-){$DxiY;GdD`gP_lO}_ivPoKKa|9cM` z`v-Q_N^>X4lJ&c8#;QG6Im$Nmip4_K(@onx{mHkl2~`(;<q+GnX8MCuYJRULxSyD; z)@{K)`>KX?{T`wBUcntaXC_Yk*LrV-@C3OK*Q2ie7fSY|PTT%EqVQ{Sknr7Hm1ExT zQnv4yA(A?&|3C_ZMgp7h;*;~0#J)Um%Xe1eb8_9TvS??nYQ?tChc7hVJSnW2U^}yX z`z_Dg;$mJo?i;p!KH2?)xlBD}&Wn{2MRqrx%)`IWe)DAQEAv{9l13l7m?`nrJD#~O zJZkgdjg>}=N}Xw?&lZLU$LC3@1Wgq7sGnNf=2`pT?`dPk3vDKI-k3_>d#%<Sp0h^F zPP5rv<$dk_^0qGj32gFdQcjgirZl>DlsP)_cs}No)fB#<Zu|Y++bc$|tml^~6nJMo zpIxv+eDbNLJ)VI({8aRI$C}3!6nbZTQ1G$Q=1QH-P#Cu==&#pA&gF+UCN5j3_+BbL zV$a*|iaTb^^NLjFOxIc2Zne@Q#l!ysC-Vl8_p78l3lEkzy*nfC!58wdefqu)&sOr+ z<atj>QraJU?6^VdX}=h2LHn7z_HnqqNx8md;?XR<+tVUt8w6DZ!y~hAY$-hSGuOn0 zclo;3aHlvW<Gr^g^wm6W`QE(x)0Digu2FL{m**wepO(LOiT|CZ{^RE5``g&RE8RNy z*g>-S|Mvg);-9hnUcFFH>vG|>-05ehOkADy-t_wI>oa&hW=Os+%()<|n$jsBzw@2h zM%B|<>(y8e$V8-^*Kd#8dbdxz==7>5A1-Q(x(IFk^U+C0MJV=f`QM)vv%XrhmwMY- ztdsj`v-$fkTZ7*(cg|lKDp@C|z&!6WSN2}Fl+&*2;lFpzW$as>QU2NHgZiF*_tNFc z|I8^(d|-QiyN8nQ+w*ffr^vpTQu0f4isM_k4a;?y@8~JaNSveO)b01=`qa;s`6)h3 zRlhX0TCWXre;aV++~W3v^R@dAvYs<bi+`d#X<qA$PpcngG)~^`l9)GtQg!9g3sI*H zd?M4t%@c|{b~!WmTP3Wl`=F3#|Mq+MB-;;j)-RD^XV96SHSPGLOY%Y2Z(f`buA<Aq zU-03R4?_^=l^C{PTl-d2XkY0r6@Q-K=3KJOe(K((jRH+>z2+YCv@RAHY`dA2RIu`3 zoU*RqJ>m0R$IdP9Jzvh*b9$TQr_VE_L!#9=4t=<w-^Y?vEKzjW<i(8YD@^lpvo|O! zAGi>5Jj2d2I{oIw%pZDoy>H%G1|4~R_pjui+3UhG&Pq=TOXGF<$&;Yf_3fod#)nGb z1q+Ve{l?&@ro!v8jCm{Tf_<9O*4|S83zxS2JaqDbp$}K(k6kIBC#^lW%;2?UtL@kO zOIA*vHL*p_X8IemopXN5p7x%#g}cs=$9Trm2NG5}DxA*t`#2Y7?~{Jr*Zz~uCueWX zuZP+$@8{RK$XPnu{`sgorSRZPllfEUZU3!nVecJxDf{XFxBK5W?hiNm5V`#JZutq8 zW%0`&txV;QyqMO~?^W8}8@gu0;!X0k9|Esm$rTFNcxoc^@=aB#QD)b5v$H3kEcx(# z?fu5g<9FU|-dFO$>-A@c^#7XHFITBZ?Gw()&!2198CG_yz9hr?Bu`}9;p+zH4)z&+ z*v)MG;YQ!q#ah+{Q-T+VpD<RO&TnP5{nO(9RL|X?mj6-wzQ*O0Ypu@xcNT{mytNqa z*B^dyU<F^Pz=y==*6cxga(vT{J@LDLv1xYqr#10;yVJ^<Yacl&Z`@yYY5gCzzV$v| z*Ixav;t=qkvFArpqGUkyDaL}RFYYbh%oUq@>vlg(|GVacXMMn5Z&St>ziiiaOH9A& zp6jO@wbAgy%FIXEw@xkeTz%~z|61m$$Gnq%2rT(K<4K;eEt@;{i!(j$b-!ot;0ie& zSfXsF5_hcBsUm+v)(d8D=XqOxl=J)VsrdZip?~Ir@|+z$c5eM0(=;0etDXo89`Dl- zR(bsB5&ykY%Ac4#PMk~mV8oaxu;;|x&n<0E6DRYzT5f)<u(_m6dwQVDj7|ClFRY)d z`qX~Wj9bC->UjR=du)7xsaxM)KUZM7qi4O1z;b6Do^{IUe^hkD9|r5UJe=s<QF{8? zk}?)Gn^K{Bmw5W>K3adfUJ`zNz1+W_|3AsgO>X_vaj{YQ_SATFmmSCBYyNz=I9onZ zEHpga=egj8-Rt_cOf9?qbIE)2|A+1;3Pi`hw_f?!KdmqI+NuBguE!I)rZsZd9PTvd ze{iK{VWgVhoY<4u{E{kKzAdX(d)<Cx_hnhovq0xO&MQ;D&0u8Cc(YnUaJA$6m-_bS z4u<l7nKW;kP*`X8tWfJJ%K`;Potj6%w;4NjtbBRu?p#hb&2p|qUfU0@{LCBfbmxGu zis0|hy4BNW{#2R9XtQHyNASj38UpKd?l&(wr`DC{ao=<L&qrq+JJfg|EQx*Y>~OvE z^7HomBEBTWTes2#bWh(6yJql4zs!4P?)p3PYP8dhM0{r*RkD8>R*<o0tD)5UNdDQb zzm9x2+o!H}{%oGbOZlCN1_!DI)E*xEqJNcTfmWf;F|La)tB$RUdoCcsRzExaPO`)8 zH~Y2u4i~Y`n)*p%spnCV`{x=DN9Uctm}s@TytL~3<t&z~9~+K&m!Er4@U9|Xhiz|k zPx7e;C#}w3vPwMQdL|;J@zt#-$?ewLWmnz{ijbIE*E;>go{Am6_3uB}x^N%=fk_(E z{myW9{aj#EbNk*kO|y9xkIii4c#AH4iDj%*zGV~;(%h01=qI+X;qddj{c||E@6CHQ zO?GaY_=NW>_h09I_(R*xIPP`cB+sf(uG_R9{+-#r`9^KQ(&yV&J=(*nvQ<xvxxb6Q z<cXv`FaMcXZoiJnbJjYA<$TphE;Ln4J=u~Wo#Nv(No#rYBD+tT&jdG~yv1;kKXUob z)0_BiMZP_#-YzNY^5@AG?d<Irr?TGNe7|DWpW+FheYY=foHg(5qYTMCulx7b{CKwi zcX@^ULGObrPiIzggl=yX53_su`*wYEx#J%dhSL_$<vy)zmg<=FAd4&f{OiM<N21mm zJ+S<6p35+TFGy^Ppv0u(SEf$pYP=MtQFCOK;bnC%JI|fJ+$_(ZP2ZZGob&zD{2xyK z3=Ajw>kg#<+kB|>_HKTbdA5gMzCP;2UXt;?Hk$FjF9sh$7aR!lV`<JCR84UsM? zl2Ny&=bzqU_cnV1gCBp%$@0b}<+tnY4COwZ-?_#*;jkJz^Xy|qvo{GpdGNnAzT(q| zyY&w7JJn{a@S0n`_`jOpF5_Q`b5nO)e?I5ZK6jeU?D=~p&stmg_h5*mY+X~dQ;AlD z`cmDy9doRDc5Kj8OU>45ZFsmO|Nrv%zs%M%UaYEn$8vQybJ^|8F#a{y51(gV{eRgH zS?iXUEGw?O(pk0H^XVqn*ALd+{jvGp=gG`lUIx6G@T1(^{NS;hhYl>=SylG^!yWVa zQ#LWY&9!;CW6J!QUnhxuIpW#8@|$k2k#l$2Vdp!I$EC#gnCd<_@v3IxihV-2OGWOx zOy9sHDRUy@DX&dnkz#^+`pl9$MaCKm!b|$X%foxkwaq5{xxjN>E4}klfbzN@x3kOa zIH&kMa4mZzH1%Heu11T?dPUs}9@^T>UQ)!79{$(+`F`6{11^>2Yrkmh@09t$rVwCo zbji8k1=k+)`B$ba2-;Fs@%_Pd&e}Pv<K%fwpDLZL^WQ9b-^Dj(U$@-a?VFg_269T? zNRV_owe5|e*P<4m-7ZJIPn&jycYodIMF-=hR9(6R@2m=TyfgL3xBLIK_ndBs7Jjj$ z>Xcl}eSx1G>nEDoUGdDF!s}I&(O+v{dN$l{^VK%JK=)`<AN8~Psqft-gPtv2zgE$I zj>zU0R}Nlk?MQp*AQyV)pm3w(%!!;~PurKL9@}4$`r0jrH?~iW?fBgGlkO9=^_G6> zyQK9zGk&9g(Tsf41EN1CzFybir1&N9#LD=oC(ZUM%}Re5T9crxpE1R^?4Vowva756 zR-QWe=ct+SL;I_ewP#*G>Ps<s|KfhdGXHz3+;&`IbGA)%xZe1ob-T_Vwv)m>&vY04 znc{e3%LG3EhxhV0CLOS?P0oys_TQ!K$jjAxrjT>Ho%jQ>OU>m=%k<k%8?Px#x%+XJ z_UhGEcGv9JXq>lyXeTvw`mxDhjJV?Yp5&ZASAOsL{Ll@eXZ6*RW;A^NbZ*_;&ug}= zW=za=U@1LSJpCabvu~L3rIRUjox)Rny1&ZrKM-fV<sg@l#lZ(gGtM&Ys=XxCYw+ie z^5o>l-OBTe*%nT5x0@BxyxZdOy13`9s&@BS&RqQ{<FmPD-rt?>{O4;n-#h+R?7QS{ z#meLMvPZABuao<CqW;TSseoO^rRFNUB{QPq%9ia2eWtShgRbqaN=v=hbDy#BWo6vv zw>)tuufC{TvbOx)t3&$>3WJWdv0o_Nc>3p`0KRoU*Hm2h`{B_PyQ^5~#_z4y<@Q!p z%saofO4~{1?Zv5k%-$$!AAO&vq+XfRa>tyXaWZ?r-Kul_yUywge2P%h`um6D)U^5f z=PvrWUvJMd__6tI{hm+xiOwb$7ytS&@Bixd`~UC%yYz7K_qrK}L$-d}!mHF(_EP2X zF=KN+{eKt5wfY;k>n*v)&^zs9miCU5LjBH-JYDg>H|u|1=E0WAeoXF1w}&K8&g}#7 zsf%iE?@JFnrz@|XsJr{q+BG8Vhay`SFaP>L<;K2;w+`1VZhUVN^Hgx-#F@?+K1Q29 z^~)|ad8;VQ`XW|$o@4pM(<&cU1gd05{(K&M=f!uC_bnAK`|T%hdz9DmZL+9FSM)mj z@9*u-b}wFI9&+x<l0#D`pXz@2b8VGJ^6b4_@v#Lv-t0T<<Qu2sU0>H1Sv@H%d|!oM zlD1uD^{$gQ=BI1yI$Ld^AOGV{g~WsTHcy40ysL8&JXI{>#5S|#_|?OQ&DU>kKB~L& zhKGu3jLB}fX&c+sbGZ|hwe&tSKK;1bec|^a;b-fgpIymc&d>F((f`mbzm2;@u6r9Z z7R;O0wafqOjh$(syO+MdS~2h3rRT-1H+@rIO(;kdJpMpN#P)2yx{B|%58fHv?A4Dh zwmaTnyC6F$`aoXe(#toFlqW1~-V!RQ^5^UWU#%TA=N6r>`QlNr^pb3NyHwiYg6^D( zty_;CxBDg5dByC4rRn+`b60=AWO?(C;_3_`n<*;unrF>@^;J6E=DDr;-j^kwpB3)C zkk-v{Fgf)|Yl*Z{`=p!+nzKDjT6b+I?v>uZB~u}8>d|-prw)jVd~Z1}7*cQDp&WI> zjFY=t@phs6e7}YNR?RCv)6$TwzCGBjH2QICe8syD52fXU`f`g;+$^2=O6lP2Fn6Y+ zf=w)~>$bcS3g7m0ZEmhj_&pxAlB{cUkG|RV|NP(T|Hb_On#*7H|7Z-iY5spd_We)& zm$7Db-~TP&bMw4xgK>P?=BZ!$UhhqOo3?dkR&Z!}UG~FkyXSu_b6{tzxUnrsx#UTv zis^$LuJg83r)Xr?RmUysS<@b6*>pH#qQTS2jVyb+!tTCR?MOX%vGBfSLfp^KpU)M) zPFV8h--+w-vBxK-?>>25N>al1=X^7_*rSS%=Qx*_s9U@WkY+nybcyY+Qr6U)ALJ`t z<)pT4l`Y`C|9kVA-LW^+UM3%D{QFGjlg&{V$)}|cRl+2r-sDYp-^p9g&olYs_bFVu zzZ8zxUAI#x^RfQ*r1|^})(VpiFZM3vx35{9JcW11<p+y-cX=<-woYF4IAw*p#<ch+ zjzZEozmm2;H{{Vf`1Fzw!<i1=_fFM*uA$AgUgl0`!=CTv=S$U#ny8m1FuQ2k+Qtfx zXLqXqn_ThI=sNU#m*j#ibK7KiPkS;ne$Y)dU&Ym7cTD?8L4xqR9hsk!lO8WQa=*>} z!QJqC?(Wt-iqjU{{h*RH^JaqgdL#DjCyTRYmaN?UB;cs1g!&}=t;GtxD~q<xdTH`j z=kC1S&O4|4nyNN`%9A@0-8rXxkHvL7H(hIX%4DCJ=kizIOM}god@5=jmNqp0tNihP z@*f6~i2h%<`2t+mAB*3^Td5rLgyotzJJZW6=@q>dpJ(_<G5j~5U)_>#x+k=yH+q-P zJpD<EZ{jN0_WJfM@^;e>HrgS^RV7gO{`ie!|Bv6D{kLLT%J<s+w^r|3ef{O$>a-I# zEx5&dIk=|eW-+TyQqtwzpzAz=<5JU7cILWI{}X;()Nf;Cj!Ug-%#2=k#xVENl++1A z=Dh8PBQ54^U4H%5-rcLRPoL4Mx4U0_Zm;>~)yL0Io%nONVBw=2!NR1yh3`wnU3M_D zKYh^k|8e9``@1H}*{|<MwnzTFF3hQ_DRecpFr#bk-AAuyg616Vm7jkVCSIZ!%cr+r zhg(lur{V<PZsFbAFW%=@TWYgK+Id@ROD_MMw+T*}yFMIkjf-^nq%CR5FvH})ynE;M z_`>Y1j+PrO$Ss$2k;~1SxLR)QVk6^;3;sG*clf6!1!gYhIe78wwRcwSq37*S2(w%| z-CgAsYr0ha_or%^r)Ppw6@J=Id44WJfVca!{kI)+WN$8NC~VHJh^gEfuOb$AS?%rN zuH%!`XKa1(C|l)cM5fp`*C;EUUn&e|6MQ8Z!p+Qr)AZx(-Cl>D@a;6;GIgKc!&dX0 zf<yfKK6uScN`Ln+>~7=iKVelK;(NRNGu7`uet0i`R@wEZdGimRJGiE2;i}A&EK?)2 z_p%BxXPmw@*Y<d$ytUlFO-pAr?$wrD&$rHC_4DAvQYYTV*0Nb_bFA8S=={dicemMP zLu3R>H(j{!=FEcA>gl!X;>1JU{b%~@nB>fTf~{8S@0$(J4ZIDWcq`v4Pk4CP<)FFa z%pKwTk3HOfLSfT}cP@;9a;1@lm8%_=ysB8L=H^^@`{Lomdu$S4&)qw%^*@%q=5y%e zS&Ir-E3M+)W$r20m2mATEj%>Q??_)SbMfNH3Q5k5MsspZE^<Wuag1SLY5C|aRPrn4 zUfn{zJ)+tVA3Z4F|CZ5C{^qHJwwJ=H1IuPSl>Ya>xL0`6qSFsj>Q26Ho?~%;_qpGq zX@@f_R{7rvo7b@R%*Dk9d#|lsJ!`^Db^Aq67$V-UbuWJFY;-BB;Ktjy|8D+vDGa|i zf44dL;Q##mZGYX*{ZNvUTkf}Xdh@>9|JbYZQ)d5B$iH>x#hW^<W6r)o+wzVFiSs<D z`}|<)`n_!Pb>kO5dOY1z=)lq(hGX{&D?Z+Ocd_63|JCh2Ec0V`ZvH-rr+(4a(6_mw z_b;WhGM`z{(trA`*eQ+Zb6c)I|M%eP0q*t97gEZPn19dwV_;YL>);IUjjwEk7N#g_ z-CJ6-bfveGn(42mYmGH_vpc=7hASVse7?u}W}o-IM1_7g%LJi$UykgZGP`s4j?(VF z!%goFE$!tO+o$rdTmQb^`x__L7Vo~kFVLUiO7Z{J<oOdktG1sse*S)`pY59{_Fv2T zS8#g!8npgYT&Oee65Fcx0d-{|krQ_ZFN$?pzH5p@{>h?-%QY1pzr||z>`qI6x6tp+ z;!>T4M?p8XHqYq16!c?i%+F-$`OyvDu@h2$-`HKcH1+hlH?6fR)I?S`>t^kqxI^jg z+=bgV><<3v9Cds_;|;6i8^PI0ygA;6TRR(*SV~tc>-92uyD>6l_5H?JgXz)cc_01q z;=et-7IE|PrYy$Q+a_*vUHxalH`kl0_HFjRTpNs}c0MjO=<zr%9-nt;QQ2po^i-#h z*H1H~JeG}^WPR5_?^pk%Pa<y14R_r*`Lj6s)3eaDvn9Jeg<f58d)M8X>1@)krm4#u zn56n~^1i(ufguNtcPNO~9G&+=A*c56-o=S^lb<a0va}KMb$Xy_ed_$4s{E^eq{@tb z-s61Qrg!F9kdf9kiz&WV!AobXeAn<jB6jbg_U0?O+oYY<XO=EM9>4S1)s0u9AD&*K ztMKB={c{%^%~!u%wCS^+?EyuZ*$OYu*sl3g|7rh@!w>ZDzA${)IladI>FWpU=XbI_ zHJ`yJ!oBxrzugr5ReOJ*+P!=Fz8BMl8^u?DI{W{E=BX`H=EiiE{EVqj?=NQaTQX75 zdds@CE*G~%*8F6-e<?(K@wLu^i($9d9aNM!7_FD+qO)kBZ}svw52o)r-M7F>JooDM zO-v_BBRT}X@*ENMW97Y_|6uz)yQLeCyWEaeJ?U4n{-0aJ%c+9vm--7FHh817;Z`ZL zJ7djT#pvIvR%^t9UO#=I!LCvHFlp7gM{KXQA9=X5#naogLF6}g{>r18(Y$vqz4~Ok z#OK3~9Xl>HetWi==f<?-myR{6N8XKE;KY2mf9{LVmoJ;{R=xA_#TH+irs*}UFDhdC z&hi~t_{!sHepa8Cxml_F9p5E<OB*JxtS$VsHn&W6*O~_IGgq%Z2@R9Eb3CQB=Ja91 zGa-LFeA8}Dm}3<`pSM&fl6OPN$>Yw47M3z^SIOAcvOzC2JkL=k;dQH7>voO6#<b)m zm%9B5N~Kvko_s!Gq8Dz{$9qt=ZArLu$#tfcM|^|wPcLP2W_Y{r$9}u**3SF<H|Ca2 z-s5e&ChqSo>#H|1XUM7SnR~cwFOw|WkAvYS^L#bajqIZ5EN<SlI=Xa?kjv(0CPCJ_ zG8pU1&#+hO*GxSUAh%R1D^>o^3r3#U8X0}rCx^n%ER?G+*(7pB)H)#j-yYS)a+Q|C z1@FyYt=m&I^>BF0-qK>B-=31Y4>S3H&RV{0$KoP2J3Ez|UJ;K!Sx@v2UB7Fo&4bqu z{n_iww;Zvq{%6Sc-+JwzP=~6!ALQzeStcIR{4ew4ba#h@UX{4|N}i;3Io{i!Ip2F0 zu)yYi&9$r5o+sBC{k-m1yy>oEOl&`olji-f=ReOIcWydUvgP)g1<GD_C&bPjxmR>H zZ*u!ihRU>Kcjr3q&V00JGW(xbm1WrlTVJ=_P5n@Obi3`9UHv^(lO8t6Hf3B~rK454 z?eHw`MY*SMmB^TEtX<dmAyD?WsQkpu{y#6@uc$mxIo)~g=bQV>R4aFVnOe0cyhY}j zvj6Yx5qI6BOWW10%k}cS{s#qEw%M?BY}~l|rgie%2S4VV{}9B!>)?71*-6`c-fF#0 zb-$W6>E4g2Gbb58eC2+H#X|h=8<8E+QmrSf+tvQ+wUq9hviQdq-_)gb9roY#<Nfci z?tN-})Ocmb*^+w`9yB_?zGt>|kLU$i=F{;rwH6xRc{d?;hFwLk@q&Z<Z~sj;Wt{OV zMyrfz?u54Qwpjs-S0Br4Saq~u)7)8;7wpyAQoMMvSG$~vRdw&-y4}2n>u38&sOeg- zX6MPz{UhhGl23p6eA77TFpe&bzbt!d<L(!*oye5zerlQ*l~=0Hbv8z=jn7}&xFKw5 zipru#%&s*}cRe=#Inlbl{fHQQpKQjLld5ZsBcA!@n^`@m+$OX0-5QOf-s1idPh&Z? zJS%rq>BuI|Gg`k{OeyWRk;p@*j6V$bi&x%}(Q?&Ld(SGrsOoN(?}s3sv$t~QE=Z12 z&sRI~^KVM|&dCR-SkIUiXt!2pGw<4$_tH-6zR<a1=2J7<xO1Tn8<%>PG)hX?T5X?Z zxZucxOuf%l5$r)<JpQhnJ>`H+LfO9fPr=LoP8Q;PovMBK!;wnHi&LkU)t@?5fBvBS zrAe_idnQ%ty?COc(X6#e@<L1a&ntXECPBwP6r7%WaKUNqnxcsdXKG99+-cLzO)NRg zuQliJap6}t6l$hU4P8IkId|6d8&`_&U18+iaqsm)S*<N~8}FpW)@*n?*=9Nau{pvw zrgcX}N^Cv7K<OK=oL>u*MUb<0)ECE_JUP?2ckDA(X8$blX4(9Jbo;ProU58sFSiB0 zo)(?aQoCsJw)+p`dM$rEa%=BuHOc4i@q3mgl#*d<5y=%O)V1vrOHW>Lhk;B`o=VfT zwTeYYz6U%C+Q(FIDdW4Qw$ilxc?}zNet4heNG@QR^Unfy7C`zjho7DEIp=*n)uR4a z>&DA!jrmtjZ{yo~bepX8j;9wrE0?cZQ~x{sZNTm~(UXr|om79pL-_ulf^96)R(kIu zd>MkguT7C%CHigeoh8}VtsXJ2x}~?_m?3*o@{gRx+biBWTv{o*a$9K1FR9qw68&sh z$-(BW8o~BeNgql)7$@%Aa{I;AAD&y8Sv2k{svRrrm3KCkvus`e_x9fuM^lc&@%w*; z8AQ!9Xv%Ck?7i!h&!>rfYMHLZuePkV<9GjdHdngnNnQw>X{1M(hVZ|fJEjW_0tL;| zq-LZFuid%d!ixQ{w{g@TRmH|7RhhdU?NQAB!n5bxJ(&ut^HW_sSNxIv*`H&mn#FFR z`Br-KzV_Tx@zNeMC%DZ$p874L?4<FJvMKqs-_0XFtj)iF`W?fG%OAJ7uyvoF<kDN< zJ%jtdU(D9Se^Uddu3|e<TzT&P<$wNWt4|*P!P{3Z@$A%p|N6)8KZouT_mtf&Tf=hP z?ZkXxh0iY0os*JpEZ*?b>`Z;>nNJeUf-_n^9S!Dn-1Xze?9H5KRSFMfwj5-LWvaVy zO<I>*&oRWHYu!wdA6EJIx+1Ja4zN3lJ$$?LjY--|mD9hv<CGqHg`6}!zvGJdhb!|- z<tIthFFnpC^PymgyWLYU^?eEd?`%y-ntNMEtu5iJap!_Hf7_h$&gU1p#C=M1vMe|B za?sY>aeDo^yAt|$VkTcd{E;=E+03I;-)h=hvBe^<-C~N4vrL@Suc0otc=h4;N_978 z=9ipV)DtW8d%>KA3xbO7DL30LTD>6no`_a0&zujBQ?%q`Ke<>&$1m%?q@46oVc%8r zPuYPQKMM<vXEP=AM%>)E<$a)SGQ%Pnu6$*cixS`SW0SK_y|vqZ`o^a;)x(9$LXS<b z=n(GvxPDpms*DnenVDBDx-$M($<7Px6;97M@Mq~nb;~n8rx<27d@xL?<+(3ecu~Y( z`nYD?vB$5j<{qg!bdb3v`q0$!Q`uJMk|r7jp0D9%sGsxeq_xd*$I?Z-YVDk<z7`=} zSJvuiohv=R=}K>uX!7$0XUjiK;$`f&re?617{-Og*d2Y~p`H7~f5FFD&u#i;UI<Qk zYVe|3$o=8k`-^rxUj8Baf|h===*#62Id`VXN}s(g<aqmenQNG{#@{>gf81a2{=dk1 z|3%_<#*(^8_e{Rte7!KD@chP4|69KQ(YG`0bpIo`i&Z>F_D|%`$8PsarX6E#(z<hS zf7q92Tc2zXW$~2OVt2f;Tlv^p&IhNnQ@6j3n6pD+`x~}{`|{RHN)(zJpQ!$0xg|RK zzzwnJ7l)6%z4ul2+u7_rD`GaWP4P0&Uzz@9uGdVP(8!Rzx4&h5Kk=^VkA9w!;lD`% zPu*r#3T)*wJk<Orz35Kv(ML1h<-SpLb-6#8@$SicvUfPcw)#zxF%aLrVgt)6IjMsu zYifCV8n123tL&Inbn$V)r`GDC*&Fx_%pSJQ75H56Lio<%gc&mh%iAXja(4N5I&!5> zI=Le?OKD$e#LxWHhV#b1g7Uw9+_+!IXGg50_1zcc-wyrV@Hp9f=hVoet&y*d`X{c^ zZu(@A-mPU>J7KrSyH~G2&Sbdp?U>w}Nh>oFTjt7kf0*ZX!Q{1$>=UzN2R1n!77)KT z;~|gUsZ8@nd?!_NXENUISahPPv+%OkL+NXbmsc`)H+$E41WxzM_StDR=a0+vsmo84 zN%b^5ILR{IFS|SVffw^W6<1+SGmb-AdCYVA)(V(qng#q4Kb?8&(+1CZJvS~q4%>A~ zI5V5keU5C8-p|zuk6u6RJ78M5$)IjZV_K*9`&G&8+;d;X`b+Qe5;idUsvcJtr1rRB z)xD#u8W)wBcs+}9i0%uX?(EGuCrExqYyQoIsrChGxtssalwBU^p2{m<#9Hw5f9L!^ z`u#lroGtz-Iw`T9UtIV9i~N_@wc7um<)(-p`O{&4?u+NjJ!z(5(|F$-ZJw9?oacT? zT~bQe-YL}|x8_X#enm9m(d&kAgDC-#%lM9MT^rNGZ5n>tW3}M@9e-Q6Zp0l|>(2ZX z#B6&dGkEblpDUejA3jNb6SGI9@M7<VF4=ueH&PRJhV5Qwwcc^Uue^$)>ovlB@lMl@ zcdTgXSn<#60E4=7!?Xv}0%9X<ECl_FGj_Gg{N+e*nqKE?$gpVgmScsF*r!FbpPl^G zX>Lg!_wpC3@A54Cax{N#!p(V4)cL>6s4Eq`w&{z{`IOx^a)N~Rlpa`jYSDi+(~=aM z;u9R&cO5(5_<qe>@$S@vFE!;$KebQsOJ%(HpifFcfnUOMx7`#wo}?u?w#|=|DhjV` z)6TkP{5rx*J@K#ybFOoNwZYt;V^Zz;7v`@nsjIwSleVih@%a<UhRb(?Kh2xAV^&mL z$iX${d=9_-l|NlN`o7~+)oty9#V?+H{?A|Y!KR--k4u#|vTB0L{QC!3Kdg`Qp7lvc zvL@}8$qJjP0#*7?=al@=Nc;6<31j}8$t9~w=kK2A-ab*aBEfmKNy)|lr8G~8hL9a9 zVHdKaUa(y|*xf((er!$8T$!gYzHmgB-!xsw_ernS^K$$guNO`s2Q|_*Tt2iqEVq%# z?&Y;jzYIFJ@GR+*?b!W?VUj@gB<UArW%q<Saue#8Wjm|a#NE8QT&a<@oq1;a=a9^p z)0!gFr~Z$x-G4BiXJ+5z6`Y)wKk6UP|Lc6OpmOD#U{&9;111mbe|p~b+&8OcGM`G; zEOYh8r~lqpnNkw|#CWEs*hAAj&UZd)shmDocF8W$YiE7b#t*Z6(z7cwqMsUsnZ5hy z|2ZoEA;;I4hHnDmvo1OQG_?o~DlxeGYr{mLImd4`sqZg*6zb;H_kk_9mVL3z9$)*5 zsXX=Ji!DRC;xxrOj>QGN`zF5ew^;F%{mn9Oi!auv_}`X~W!^tGpV8)vV%T@NH+Rf3 zQqC;7{OLoD-`h_banaj#MDFDsdKhgmU(PF@;modepABB|>z=FH%;(h9vr~7n=Y*Z% z&#&E%DsxQ#`|Nu2-=JkLviDE<%*WK7`9$L0^N)v@a9%$to<6fG`skj@h_csv-p)2Q zjeZa-V`pZ~Q1---L+i7MY>(_SyYGv0E%>&a?)JYVv2x?el3HGA`|sa!JznlGxsWxX z?uL3^hEq=PmAscJPgd4s{_NK)`}gP0CBDe`nu#4#W=I^1U%r27aF}hE#$I8bh@UUI z{|G5s>~jCamS<yOsy*#K`@a8iR(bPh=Q4+BFb7@<2tV{M^NiZf&bd#_TAI5)ttz~f zIb)ke!5QIR1*?O;b;g;iq#`D8&Un{yGWV_vcYVNx%fUBGo#a|h&Ohj?KVfl;_)M8n z=6v6$f?=(%{|4tic=Xt2rsF>S_)p3XtgCY~PBHuyySKP`!iEn@@1OavxN|@~ZH~Nb z<SC9vTI$uJDHUlg=R)Q^bi0>q{UT(pPGRJOExei6mkT^;_5HDe^J$RZ-nl)Qvx}zi z+qj**Qh4*h%<6eBa{upqeqZO^3(@tDUN-I*-}(If;=1too_+fQjh`M;ExY|wu#N4a zv-a%ES2hY4PU6eYm7aPz><FJRQ_5<-@|pAVj2E2VXtL|9JMZtK=7P#w-UQlzOWOM_ zW%m@FsF@x@%kQyV3BBK<Zugm?KP|2=Hf6!ap4kZpxi?OiS|Q{bSMii7ZQG6B7USzv zTmr)D%$(JmPiZKsGE0@5Z?t@E_0`8}U-XNIUQeF|tev{%ug1xL?ti9bRW8eUs@wPS z6I0~x?fffjqRx4ldHU`8RJ(AxaD(~2+E%-Tr|v{+d@H;dt;Jb*QFga>EqB=qDchD6 z4F6{aXs~-dI`wUB=fy^gy${|k`5X8A@Z0Jc%X5qi6V?gLp1xy8nPH!;-#_JrZ}lGO z^zHa^-X$pP)zap8iz3NbDJK5c8=rLUnl^po?%TO*e!e?*!f3}#Uf%hB_MvWnmnmQE zxO8#$zLVL9a!qm-!?x8|T23&wOP~3N>(un8b`|{nJ5O31I&@*n4nvj6xit*3DW=;t z-8{rIr){>0<?Ivd-!*n62Me3!n3pU&HGh7|ObdZN{;I&~`aRF&XS|J<yp$LFaJEO& z?Q>INdF@nfQkFb3Uikf+a@dhX)yF^D-Y2*2{bZ!#F4f;WMYdj{*>UFVcc*lF4cCP6 zd<_f#uf*}>sO(7xi_k|8w4=pk=LnSDWph%05%xaFer3G%-FG5WPrqL=<xyBoa9B4B zlY)ENi;OUlU%P^K?6ofb=W>t1!sg0luAY4tCkLc4954<v*t_BBYP+&coaXyhFE06a zar@S(cPcU}Q?J(M{7!%R-y|ejefcuYvz`3ko2t+M&))y<{hPd)y1rMh=gvRInf4^g z|CQ<zO9ubDN8d5W1sQWRu76h-^15;P4=?2(t0q}Ry;@nZ(sM`iq}XPk0LG^Be|7h_ zpJ#BjUTl=S{pXjBi9eUrEdShhEb!TcbxY$Op0+MIwa$LBcKWYSJ#J5?s2v4wWqhj* z{DfL2W?6o{U(kJ4-=H*v)ncLZ%d_W1*!#}gp2(^=ExhN3n$r8)p5sCvU+?kOSMYhh z{#MNvj{MALF+O3hR3hD{)&BG8uXTMaFe^v8P=GJw&W&fM!db7GT=uqa{B%{-c4Hs= zN};C3wiVt7><_UEtL0yHo2b}3b7@bF^P=^#;`^gqJT>P`viIkk;&M5<KTUY&p-Id8 z4#t^p=wg}lAf~PCQTgWjoH7Qx-{p24m2+<F{c&`A`TCllMzYh+J8zy=;9WES`L~<@ z%GDptl;7KbeZnWh*%oY!|Mq>>*LxfH|Jv2N|F*7fyq2Z<Y}$|G^`Ac8tzDyV+OxPV z^kVTEHOq)cYxehQedqVQyD|66%lXwx%xS_$f1mpQk88J($)31EtJ~$?cdv8(*83;_ zbGu#R$4ZZrSqqhKynSo;|9<Um5yxX?53YHfH<0-M;J(G3jlZYu)Bk(w^F(o`-l!<c zqM-l#+|R$a`y_53@UnLAr&C|=Ua$WgWcBp6d1lC~>1^R8{K0YZ|313&UEK3;t@dtl z`}3M5R=qOIoX;Jv`?T?{{J%@(&EJ3U+i$4;)c#I=P0HQQyWaJG%Ic2Qbk8XI_9MaF zsAJFj-{JG_*#7y;!||m0&gT7}kG=bv|7*>rnlont%O&bQUaT(r{%LnjXS0(}ij2?q zb-&iJ@fV3r_y2ol@fF_fv1WgCHqQ=^T^erwzSQLYGew^w$(^wWzU-(hXZTd}e*fg9 z=l{HM4=-`Lc6Pe`_nean6He*zv>PvX-ue9^_wN4xN7Dni@5SB>uXuge{NH?WG2hzn zEhVp3R=;TGe>?Br=Dfu1atH2Je4Bf>cz-?T?}{$}U-w>a*+1p>ra2!zd^l{UulQa5 zSoo#(`akSt{C3H^Upkkx#Qpeld$;-i-)g_CJ(n@(&z;jVKPl<^U;B?PzExhK8hP*c z{X9SKe(byJXRIph|EAlWn$5UB#Fgjo^14^QD=a6nIG0p^pL*VQ`rI|P;R{V(UEa5t z@n3)avx$3nKPcBXGWX_b>zG*IdhXrHyZniPPNw;q0{hR!m-8~R)!*H&{j^;F&A%tb z_ZRSf$(u0u_!IVX-;20kKCWlAv_8FHM_g@j{`WuoYbIOx{V8kPGxta1`|Wu@G9=6n zwiO4(|3A0&Zh8H8(^ns^yyKA<KV|*zx68iC|Bu^M>dSk7GCirifBL>Z=iWWl-+Ng7 z*kL8{`!7FS-2dUjJO2O2pO?x1`pEyr?n7dR-;a4ruha9tzj?oRWA$U}_si-n&+cY@ z@_gF%Dy`qi_8%Ev9Wz_7IN!SP{5$FYU!?aecd9DP`mQmbTYZ1t>H1IU^HLt%)nI%U zZudRujn%8NpQj8RH~m$v|K0phea)S>cg6oLf37BU#7bO<Yu}d&eX|dqm*StN&;9hs zu*`7(r`7tVXFKmE&##zpz3TIpGsV}-tM{aSxaWTEo!z(Ta_X^iOYiSq|Nia1&$sh8 zzj(Y&Xxqe-6`dTnobQ*vf9GspwnKi)o_W8Sp9Hz}iKbrmF`V_Tu&is|k1x$96q4=# zzrFVS-8a7L&tm6Hum3o|_KE$%XaDw=tddyYfA{T2)(x{lH!B^OIqhwlmdV?zelr|$ zy-S}>Zs^^?dV4`sqCg?1?=SU#uYz}r@BeV@-6`$bNwprC5tH=4pJ;EiTavdi{rB4R zFJ(dzYX8j)N{(FOyTo{r;o{n`C1;mZwoG(7rX~JEBXE=5$I1S0;(lF<p1EYkBbVcD zxyv@Ssui3%xFB)zUWt$Lcdt3^*jxRm-Q?fhcd2Yeb9-G}^4Gtx`(19o<@cfgADmuf zdkd&Nz9RW^+G?BW&#%0c3H~>2?dtg_)aGoOCXw>5{*Qc3w#DB5_)U8I|NJfytKVMH zCjaS2{UpxLp15C+s~FFI;N2W%eDv0xt=-G*f4_e}@8NbU!N6yH@BHiDJ}-a2?_2AV zXH)(+1)q`s_2KAUSGFJT|Jmgq;Fh+Q3^ROk`JCr%llO=Bs(f|m*JD0kDX7LFynV+U z57E<&*V=3CeqP`6+@AUFq6-rpJZ~`--}-<3zuof1`l(F0bANtPc)e0>ebVoBjOEQg zoI98DMTh5amYF5ua(L1rm%BT=)63=mdf(sv`_=P(a=&UUh2k>pPkJS9o9;aE$)7hn z*~`=Q><&Np_2OM`{@$Yr0qr{ldRONbNiPasExl*;g9pd1RKA>biDi3E$@bsI^}mC6 z>;L;SKTIylU)_{*Sw%`sb@{`_{>yDYl@#hTUvwG2pO}?W`hMTX<C&M|{hUzt#;znx z$|h#Yj$P+#-%XrsBO;&w*iy6PP{64ip@%<j*8f)Ct^eoK=8M+f&)xl+lCHX5C0v`E zCDJ(a%RJl7k9M7Xpe4O~^Sfu$BEI%+x6m$5{QiXBZp-gy|9@w_6#HFrG&efvV$n<g zGtwI@Q+N*ssVyyjxIEtTcX>d#X-V_Cvb|mN!_UWC6n-y!bY*$2MO9Ju0h5AxKQFc$ zF;;y3DLuz~=d3^c?XS*XY_HR)<@vjE+f7%wyG^q{$!Yz`l{t9N%;)Ef`A0QvfBt+c z|GPE+e>V3IJ-!>w^77A59d`6Q-T8HbX`;=pX9q3ztAz0#E<U;>vEz}~MFF;#iMp}( zHp&-oZoKg1;r97g?J6wa-IHxGyLj%H_-7Ax!+<|bmnyaPmp05VWdC>h#FsrxQKEXX ze?IlB-LhHLP$&7UZ05bmA)E3xFD{(9Hri^w-}G`d)AkC@<9m4ZA3ZsEmm~U&-FxNj z%^tgI-12^xzK^rm|EzG9Im0srCD~}vcx?w~yR!`kn<HL^)O2?6{x#9QRbv=1?@~{6 z%OSO|#+;AyTi8OlQVf*%1EcIS)XT#4ex68uZS+%isr0;@(kQkqC-Z;gKQ*1-x-Zf_ z@9y!fd$eyF@ip)Ak$4bPH*w}o@f~*`HcaOeSK~{WB>5>}+CP!1gYF@Q<rmf;yf6AX zL8DIEY+ZEa%y+i`?SI<WPmG;Bebt>%xhXty&C<1vKks}Cyq<e%{ne?rfB8z-PI$KJ zui5)XfA!s({G9D;c5>`EyZ7M?R^~?iy_S`iZnLlX6mpT%xPF>1+w^6{1&2>eV$VIS z9+>m%k<5pAl|T3WS^8YkL|eb~ytLm-?JMD~UsONcH?Y%ADlK%nGT{LCeC=&-wDzif zoW11AdXXp7&FZhT)*Es1HGkc;IoPEALv67_YG5t9b>Ru)_(`*`?t2iZ$G5F<qjTwL zecoRcbMo0!8;<0?egDeYUT4la**EuoyxaPv`<>T{?5ECbZ#CZUc^f!8y<EAunE%7f zHyP|FWR~ls{)*VTRi*A+Snh2bP0I~4zcbFL|8;DS<i+)qf0enE2F`w&uAMeB@_V83 zq%*gUOKg2IMP4RX_bK-UrkNi^*4tIx-(|Z^H(}15w#NtF<^8|m!|-YYN86m>*|WVC zAF`cmXB@m%k)7F)qwsBr$qI{0n`V`oF5}kYl|5`0la_Yt*2R!^U$30Zp2ccHm#(gf zsyGqW+<d_8Y3<JFH*b$xG(PoY=?#kddhJ2jwlzm;j>$7`eW>%{+4?N4uIj(DbDoA8 ze2kgm=}=&GcnNd%rw%0}?J8D_c#Ag~c~j=HtJ&_^EWm!=lX>o}<Qb_JJtzCufBtfg zscU_K)#F;b=$z)usZ$wdJ`J0!x^PMBg%8(Uf3kVle|)rcs&C_4z1`8q8K=uCAM@Q# z-1uQu%UXM%Z5z0*+twTBt8s~O#)w@DJhVkLNizI-_QjS*0lykzbf4Pon5+MEwvkcb zq_pV=|1bZy`g`Qh^+s0{N?GS0tp9)OwC5_T3HJ7ZMinoGPr4M<BqUDse%Tykx^dg7 zmBqPIdoS}jmMxn5%kP;L|HNC<PnK++lKDaOeIL6`zVU>_jDpAc%JH{D<WCzhZ`{sT z(){>9%!Dnf<)<d`Oy()MrOiBLSDJu#+(8aOAD?hHhGV?5G86<K-Ee%vb3y5B!E$Mz z3g)J^pzOF!8{$`$y?fWb-8M~NN>%x6(G9uIH#Z$kRdCxrhu`r3H^XUDI|DE7JAHCC za~)&w+O~z4ch~(?>u#@%PW{UN^<;d2gU8K=%GuxEv%GF$XZ3Z6E9;mdoj7sTge%Rz zLpJ7r{1uR+DJoLYapU1P*2rsLvtC}h8NI>o^?Tjk1v48@^#~nGsPS5xFs1o#*LsI< z+txnk$y&rwcRK2cx_(;8>TZvVX|3g-?!J+o&FK)zG_^O;|Np#I{!edBIF(pkSmvjm zVYB_x4(^OuCXxq&eo8g+>R-r8Z&<hK>5J>Tw&|H&Zcu7Hr_T88`4hcP&ja_O+V>cR z|Fl@2I^ja%3O|NpuKEI8?DNzmm*gH$5~*CMc4p~Qoy=qA6>NWbZ!Phy-<sojN_5Et z=Yr2%yzNux%C4ErkoQ3TQE{vAx6fCanXf##-0<)ztNy3n#fM){P3mgY2|u27Z}sEg z123++lz*5uXF^y}c!y;x`{bS}`HOfDuQuZMdRVyjR$OAcxAxMDozj}mE?#wwIlNW+ z!KoeJuHAe0Z~4ypm_-M>J|sk&<+8c%iwXbNbfk0Nlw4V{;t4C)`JLHp^ZftG`MWM} z+wXK#Vt&FMsq)+Z{p;R}uY4?S@!-`1_HA?19_RjwP<STF-zv8Ea98&}zx$pGWQ-aQ zFOSl`X>_pd$5YLzYSM927hj8Lnxbg8?#-$v?_-O(C9E6$e=HL`G~3ZrPV$e3Mzz>F zyIWxmzKiFq`gmpPR7bD4L?6YLe6<yAXPQ@ka`3#I@HE_$xn08HW2bpwErTy#)W=9G zouApxx#sNV-!@7g4Xs@2zrwZP#=fWGdd54m3M(|jfA!fIx~Qfuzg)9r#U+M$-D|lH zPPEIiQY_!}lC5{$RX#tZ7tiMlAGz)0RTRy|X35ia_DI;8*S%*L<_5SH?=1Vx_xX@- zVTsL=OTUBXmEQ4BzPsnyTG_Dg8?`GPMfMz;zd$p2v0TNLUt4=4Z9;d7`9}2Yxj1ph ztCZ;>aba6ig;zA}zArnQ^T4Jkx#SH(xgIZnoIbG1%+Pk*cfN10{@H4DFU(T-mTlF0 z(QVWIOpQZ6_3ys_dcdFP(6#d1(Idw`I$Qjfd3X8d#~+s7)+(vp>nCs1yCJq+^Ua;l zk&pMf8SITM;Cvsy-Z8u&VUg60Njyc(s};=(6t#9a^3KlND5{rqK4{71r5pGETl=q| zV+qec<tnLP*Z-{#w@^94ZaXKj_}?R2zQi)IXO|;)@LrfdKe;Tm`mfe}-lfSKiY50J z%{N)xJHa}&h&y=WBAH*Ufm0s-``F5T^XJLWd*?Flf140{xs^40q3@Z~CuU6P<aa9N z@|@c}_056Cbh-Pre{a3JdH>-C^-tf|eda6nY?nPahq>X{?^o02o2+}5vf+-F!nXI< zOk@?Mx1L;;bmZfK`|9<-{Iu&^Su!7cFV_CS^Uqx3PpO<&@8JjjJ3@WVKX;E(%dT9{ z+_d)eX7PDRuV;$<^A>M9R;XNh{H96O>$_Xa_hlbYd2=WIgnuE!ci%Uw&$Z1kGWpf| z@<DiF`E40yqbE!?Pgl!D2y=S~AKNxzJ=ebNvC&y>7f;{a_hwPV^GMs<%e*J)OzYgr zEOKtj$?HrF>1-1PXSKMsI0&Cv%kt{|f##!!eBSLpdXD8-sKe@b2aej;toHAkmESPT z$St<_m6pa1{b>(>1Omg?o<DW#d-p5Hf3b2WHSy~{r4+1n18W8U+!4qb5Fb#bNd zt+|&U9lLYxJmccYCl<FSaXkOlouJMt7?GNA;mZVxjC75^?~cs8b7x1E>~`n)+ef?W zk66ws6lw{+==V2$YrbrM%Bx#<7wm1edSUxS?R4T|wmUZV7up#v+8VP@c(rzJuoidw zZmWVEHHK8?sC!ZJ!7EL<-_44fEG%@KS?7k>G56w&5sZ2{JSB6(nJrb4o?c^dEdMI^ z@SJG3Mf9`-X{?uZ#4S(xtY5lAW!lE;7mRL9-NDztbas%~+NgfUt9cv;p6z_FR-|QH zfYQ6Z3mc3yE=@kQ=^WPql|^1BIwsX^i`}gC!A^Tahl!xL+%GeYaNm<E5<14Oo?5I~ z(-dwLB=;~O#_!*@JZXEa-0tnX)5Q{}TLt+ioMvIZla}hf$*S@GY14IUq;g+QXJfeY zX-(tfb9=6&o@2=13uV)8R!xc8EO7q%uX~jr_HUk}`{l)h{mZ6Ku-X%5X5h3~{N%Hz zUs~PE(toT<<o(q<-P4#OxJ~0_`Q7q-`|1@^PbXKuzv9ZKW&Kjq>%{U?ynVq<JNP=9 z7pzSa3Tzb%aaH$PvsFvXp!=WS50{SM7i`&I*kty$<-ZBr`E=SAO^E|HQyJoQ&t6qr z{)Wx9K6k@!>5pF00#nQ-IhvKcb`{hmtGEB~cR8ZU|Ek-J<KB}317(w%yQT}*y03Y} zz-Bi?F#4(7&6COM)2dFKslT#bM8&V|;C!>vj(mZ3MkD2R&V{*`iX_^TZhj5QyJVI4 z!&&@|TH(?8{e`}IOQhqZ>l;tXSKKt)k$bpc;hQX{n-WW(v>m@IV`C@Wkoz`T`Pf^D zU5Wwiyv83lSl6x#=W580U!Gj>b3>{36o)8|&Q#sbY!mNvC-sTnpWdGNv2o%nftbjO zfMxMsDYpbAx5wOEx#Z8?t_8&fmkJJjW_+g1H1Tw9Yf4JN(ewkhDSuztS*br37MD1B zv_k&*%e*s8yHd9+?h?zjTb{LCbxrCDr@Zn7-~aWNvQ9d-N0c*e?uUI-nHx{)zno`j zF=M*!!IF@$hUW_+#23Fd2zvWo)a+)-+{)bRH}!t5+hWU*y8M9r*NH__`_6Q{dbsLN zm*lV3>3iJ&{ZLx@ec8N2J6k8cYEk%pWo_`q<B=5;xf__QJz`I7|LEH<9r?qP?cDzJ zKkGj&|DWx5#h&*X+w%=mte5?4+rR#w{Qen}KfRi;tw~<5EA+~<X}31SB)kckV{!2D z)*3bQ-C`xPcCJ0DyQ=8NL*{(`bFU7?#9P`qRZTdqUi)nCyY%p=TaF?VR?Ka+Sd%P# z;3@xw^PhLE4iVOw_{2Zy($RyaYbVcQSu9=fQ}5h{l65;avYxWff9_p%bgkZ7=eC=3 z8O_)DD5O~E^!~~YSLJq)$US;@-W=O4Ibt?UN7t+rQoK`gBlnlo8x0e+*GuHD9ALQ+ zULk#H!LC3%&G5q;t#2!T^SEIa->-7WyywF))A--|<#I6}(;HN6Bd<LV5AF$FSouXy zZH~91*lsOeg~Gu0mOHabXWu*i-A6L^q1|>VzPvBzJOmDOdgwjSGil*B+UTG3Fy|w0 z`J|G2m$t|h?Q@Cx%@QjTeX@Ot(EER&>Cl|lhuAvbhC44`HvQDP4O45o+&|rURkG~4 z!}RL3SsRS)c@AimfA|(KulLA73%2A*d4F2?U0;2OtGIALOu1yMF|+!QxpHwaHPv&D zg+=?@<+&afVZR}1=l0}UN{?`TY5UW*be=Nq_>ID|&gE&_hwYtJ=BIu-soVL^%<o0J zW^Z}BN?SI6wb`7uJ!<X_4=4H^Irr=ZXNH={x$0N0I@g?8j23>-O|)9CwKQIU$vx&U zd+zJgeS3cQ)V&BjS5kZWOx5xAQzLVCU)ORFRQ7M;%zxP888vTSLid$Kh31C=4r$** zl9NAQh~`>(#p7@A@zMnamt3bXI?eh2@`U%hpZn84tbg+L)}}?@SJmJ9@O}3Gckhl( zeLj84Mb)gpe`4NqQg(f`p0g|E>;BzuS<ZfIVr+QqzOc!v(m7mb_m})zdsKr}3O-G< zEM&L0xZ+;3sb_D>gOe-sI#<O$i>sgad09$sv`XZ=)sK!QJ=A`AP4!%A*u=?>5fS{B zI%e8muIXw=U0NNhe9D;df~L9l<qzvUo6~y^1x-ED)Ly|iuQcc$|67?*tv82`dh`7+ z)K>ns;rM~+ZcaCO=03UnjC1~zX}y<<X30JLCTY2X-EUU<^TlNW37c(BF8nvG^+}xB zy2Y<v-PYh<-|&8;V5YQvy3C}HL4~KB{_>Oy?PHm8Cb!4>>b_^^tG3HVZTof5S8jnE z+ob$oH=RH9+9`VcoM|qXo65xY_*L{)c~1B8$S${Ent6fO-bVAMI<LHw{HX6b%K~lv zy=#maVtZWeH}1-?HoGHidU|$qwseo$3dhQ)iVqXlnC3n(nKaRIfgoSaTa{@?_)b`N z30}WpczoJZ7nRMyhT`{b^DxTqomMjO{e!*<tjY#@pAM|{ywGO$a_Ww^8`S0tdNTKL zT`Fgv<Y!nZ|5V^%nZBg-tx4+}4xOC(r*DqQKi8>K&of0C?Q>#T8GK5A*ZRz>AN?L3 zkj^~Smr-iv-ogHNg1+DDrDuQcijy&w{So$9b&j8>YV)oMs|(6x)67#&x)jP7{+jpg z|CRH9%=dmWuicUVCG*?raErX(^>44&?$z)A#hGQxclD&#mT6DfrY$I|JS8st(PN&~ z{dd*t?glRB30n59#WEmoPSfr^#yjt+=pI~Jvnytj`>E-Sx1Fo@&3UHq^eqEp=%%>0 zb(=(kd1@Zs>Ns}v({kxV(aUc93A46sSTgmkoKyRnvaSchiEph7Ig~!K80}Gs_?9od zUA7}7THm&(+~CT^^Ny$QYE>+g=`LLEt+(LCSK}S*M_h~Vi2YRzd2;?x+78~?o${Y9 zI!1mv&>GsVI$O*3$fAqOGrG2&a*{ikD;HcBsy5fGRdA<*UQZO`%p<astPZ$dKXKJ$ z%GIZ-mVw+1S&wdY9?=wE_xMeHzP05+);QmqN$;~j{pFgIed?!*9~>$73|@JySW2uh zBt|bpNqf!Szg8?7CnA?klVD!vc%|FKW5Ge$I|nRoaU5P+nYP-iV%w|VteVl%QwooJ z^FLx%Fxl{Ny6BeMlWljOUnpF0r)Iiy@*9DQAFmSlUoRHCa3*y|&D5%?#{(Z~#?^ej zwSE038}mPR!q_ffZ9Mko+jqP6FL$0v{YeUAUE*hCHziCpqRQX7$W=j%>xN$M+?@w< zW*U7_^+|M?HTPIaL8bg*&P$tKWhtgP$jGU0I=uI&ZsX-QRW~-K{Wj%tJ*+G)8tVP` zYG<4ddtH<Hv#YaZ?pNJ&Z=YgrarR)&fuu-JDa$8MOb_H%B*^5vUVCy<{0G*}PfuPt zzQU(8T)l8&!L`e0vuhm$c*>nW&FlEQN4s&ZK(32b_`mtTX5Re9|MJ<USDTr{b&F2@ zU;F$&b6B1JS3RGlk@jD6ew>sE+ETOZ#_p<FvYbo>m2GnxZ-}qEQl|fN;Xj#zPiGqp zKHh2G&h_d-l99sWbJfukW_WTvKBD!+RNsope)R!`AhRtWneCohrE2=cZ8`exo-Y3u zMP{897pMNe(s^dv%vV3!|Nl8GbD^f$gkcN+=c38m-OoumZ7Dn*IpgBQO&_*Ra!s1O zMMiYu;dNWg`59Mvdi8itc&W)R;kMkTL$c$}ynOK;R>4y$!<(A7?0Wd>FUtw8!%cH{ zF2A>GX8-3Wh8Zu#R%ZIQM&?`!dpPrwq+MsnQSH_C1?S%><zL_Z#gxxlzhJePRIY&3 z$wimcVh_AnD%oND=4npV1;<t896Owo?yJbuUflU>Rl_89erf*Y(Qg=JpY7l}f8<Dr zs6dT+`u<zO9N8-UI{u0JKYZ7#Tm8GY^{ny{?t33Ou55W`@uc<lTdBs<oTE$Et=zL? zqn8q=Szm>eciK-sDVYnW<Q%75;^vL2a5^HnV+ps;p(EV0FPwXzyHC&PSo@vE7}YDu zm)P{(cs4A#sNf(q$E5E?;GEoh!l%r+quvLe?7#nG-y4GtogI@bt+%I^X4_3MKeZ}- z%EwI?*ME(;c;SBMd4<=<C*7$^xs>v}?~KKzIhpEKKVID{dOFeI#KqH`0tV{pr;U%M zY0YYNY=3I!^yRtwopY=HT>N;*IlWw5?ptoz(d4W9El$VH@_KK?`RasDU8`-;^)08` zzcjbI-QB6*?(WGw@9Pf7DJuJU*S_?+c>ZSNvGb??uiyQtei<w8SFP<%(G@SF+5gow zdfs|{gKe^-`;KXnmL(rTpJ}r@2Tu#V^Px%Y*W>wL#13$lGtP<mm3q4PK+VU#$ysmo z?av4A;NeZo*?)*z<6_8Wrd%1W!}F^Ty}aRjI8}hp{>`aQm7M8&BH9g)Z3_J9Gke(; z<M&%MF4u8N)csHvf5d+7=t0G|A+k#TGg-DItLMM5QHfVpuUuj)Abx(&vbl+e&-Cdm zxwSD|@bclUU(Dq8eo>rO_eUX!Ez|yEchTy}Km3jqRZlF~dAMrz=BG1Kel}0ppta>p znAVeh*+<;Np3W_=n=t><>YMF5W=4c-^53#6*t}vd$2C^9J%^{|%4}1+uxm>Bp^sW} zGdg1TZ``gmVM_Yf`UhQ)mR=UhiC8MS<b`(}M@aLMLlf`R?K~ImQ_G-x?^e|J^6oe_ zIp*nkza^e1=WjZtb?eL)*QasP7hl<&inz4HT+%N!c_aI}Z<0IO+{BjM6g;zLQ%}eG zNred~`De;hJ$-%5C`(A-Txz23`M$(=7keFNnbepj$*-K{7O2yE`9$nTiw)bZ?wWM{ z+2z=y@^-&;1<qgf<l85?ZSjK(p+A;vmvu><GROJI1&fZkMVA&aKVK=oQ$Kamb&2hI z+p4TrcK6>utQ}?h`oS5wnlGPnoX?q`Se&}%XYAA2)B4u9OS9XC@0Am}y^d><yHs`S zyOOz^Vr#EDhIJeJSGt^x>-xXenfJ~mU)7kG%`5Dy_<eYOuHSE!{z&@ul&22@Oyc~% zRm*sZrEHjKbdmoKpS)G>d3WcnZ;R)Ai{JjYJ3ckxi^Pmy9MKQ&eg6OId0k@p-?`5P z!&dL8dYxLj^xDG7>(;zV44!l4sDN|ytw!cKmMgE!NMNfA+qO@#KVFTYZoR@}ZsRmL znLm;ow@+SrAJj9YQJwFur~LiP&&y|tZ?CYoTR+RU?1K3JKg@T^60WajlMv3h&u1sM z=WG6xc1tGFRk!}_IgxTmQ$6tyQ?Na|Z;AQj!l}>l7UnDZ%va#A?+p%fmR!mHHFfXL zM>Fqax3vqG-gXQ5*kn+y^Sth_((yeL-W_@J<!05nd+woI+ZWw^dik2T{QCFNJ3ei{ zH%T}57-RM)mJ7|h_wiXAIhk<M@6MZpCSRjkBU8hTf7ML-B{F%JR_n6KOMdgKi$C0Z zFks@P;tyX-ugIpR-hEQMTWm^?X8HePXN6s_@~<m6eSKTWKgYP^IWzqec@+OC26*Ut z3myv(dV6b1?(DE{Z=-$8vt~4G-haPF%f{e~o!Yw_J`5&3JSHJ!Jv}?7W~!#Q+Dv2o zv(5hBn~<D2hAf4xx!Ti?&FxF!W_`~rzq|bVmwvlBeus3k_*v#A&A!H_wQAQAV}|g> zR&T{mKgnZ%eQigxOlI7iggH#=KaPC9^LG)m#|wqp(rb#HJyJ4f7DshIa}PRDynt0` zMdlwL<KI^0j7Ar3{U|6CyPBw?wS=ic{l$`{_x)_-{$HszZTK3tcvDGP#drI<tnVk> z|IRr7%BR%eyjIwTH|~;;+gzFQ+*5C|3djimc^S37tLFS_*^Z|Xc`v$yj|BcR_1sv~ z@Okq*;|m_<2Mi|E)iLq#zwdl4UzRuZnX>1Dv<(V3tt#KJzk5ELi=Q<uc4qwj#(0ZV z)=lE()=IXDR^|VVcl-bST0h0p!Ba~1O8T7xYH|C{f3N>~y-tz+A6L@8m6OkwZTv7* zYMy2@+oT6wX8KnoRRZSdBp2K`|AxWhM8koF2M$P_FpLTKl3V=LZ=UVW-w*3QJKw0~ z4SP4iBW!!^43=Vpv+ECAYVNOmEXDlttJR*BHg`^5R{tSzp?Qn?Dej*eXRbLU`@^SP z{ZMGt*5iSeottJ@@g2DGZ{oB@`|Y=Oq%vA;KYMIi$8wn}f%q3r>vigG<>y4q+hTib zW@)BHT#DSjlC}8_fkoeI>;EaL9rQb8QF?#%AIDukenjrums$DwynkjK-wXy_d6TS^ zm*1Z~*<*0?wbxNDca^UWZyp>7{&r94>jfSC=ts@5Cl8+x)Mh&Pz_5+k-e}4{m#p6= zYOH$>ZU5!x;I#YQu|A=vLDq&FHlOu!zB#e^SbKQj>1j1Lr{BL-`)a-I)QU+50<um% zz4~b1F`KWU7Y;4-suEW@vDSOCXuf)m&A}<G@>VzG+I{auI#%Vq))7ARu%`TX#OuPs z*9z%<Nfx;eX0DZ5=63o6N3#4G_2dHXe?D(qysD%dIas+K|DA2OD`c+kTEC;4nHe~h zpYA%<DXJJ#Ri9VLzPQ3|?a>vdX562xmv313@r{v{p3h#-^=#}htZKGJ%p5k|GNp6& zG|jx?rm3pBs^!I<r;68~%;l?yoSOflru9Xp{p2+{kr$fVu3T-h4`z`mZTb<qSo$w_ zSk;|IH5)d&I%7GpXoH7Zu`a6r#Tq#NHmiMV6tH>J!V^+|ddI`)2@<Cktb5$XGH3g| z-KVZ={B^psVdFgqg}lA&K9a30a(tVfSDf^}`+51}=sN}(Ke=m|mc5twQh8Wj`@eL) zy*cN{w-fFcE10Up{D|MdC7kj%x7#Q7=wm|%_KNL)v$OY<F>OjRJsZs^!*xQhfn^8# z{Cyj$Usvu6IeySg=#T&9jh}hjn$upL5H%JSJ#8pFVbaT2|DWx?bSv;O-_PE+H`rF` z-m-f*m$NhID1S%75|J}YPUc29<#T;npcl93_vT*y%%x(vMgflN9<(|?R670rL%Lbw ztqZT^|IS>;{O-w%hB~*<=hN;kGShgjH*XP-hPdliV_P#hrG~Tj9fRe%rKK)!*ZVQW zFg318_uDerJ8O9vR#yf2D;qox|Eu*hKj!)emV?m+j88lnFDJ8WwCSG@+?c__ooIfz zsBpV->a36h1`qCc*1y`nNHtt!uF;cK`~PwtTN)qtDpPy!r73}LzZ66T-rsw@H2&SY zv(6^pZ&qs;+Vfv43%3`|?Jc+XZgF}VpKaH(u(jH6ZSQY+{#TRZj^CM6p^uyER@MDy zYpa-K{`Y6cEKi9i``jdXQf?=jZZiHZp{hMqVxQZx%h@vQPj{H~@x5l;ZurCU_EFBq zPm1|Aa7<~px)4x%IL1Na>m%`dr&d?@?rwdWcl_Vix;HDHw%PaI{dV~+caE^=A^V^H zi+pB1yCwbmj<@~M1DlRtlaHQoqV(vquGi0=2JhycUnb3)#Hrz~E+waTdadaD&b-)e zE{;jR`kWQdoH{Kl%-*J9;-zEL=BRx=;&VsXg^<=WF?BPo-d5>!guhs%Emt}%{X=Wp zv68!il5@8&$vw<4ErU1f*yhKZS3F<t`~9=l%kKWUkG*@ZZ+4y{D>2`L@xEibo>Ai8 z&);n~|2EOCkN>v$)uIorD<@j-5H|hs|JC`=W?QFcnX7M~P*x-O(f7*-Yd+UywN?E$ z4vMW_pY&>rYH-)-H-WPzzP<J`^40X}7b~;F-c{=KJ2J=dos*mQ?c=&Tav$tWwr`UA z`{eKL>HB_!owCVYdgaF3y|?o-rEkUxPJHGtPx3@w`Tt<?vheuzWm}&d)Xfgi*}U%3 ziTILOHKw)y6&nA~t^b$BtD$n!?byw4n|`aVvpT3O%%x<Ud3njJIZpgOQZ^Oubhz&C z&b#f)ml9CZas8Zp|MyK+<>>}r?S8VopV#j9e%(ID|A(@!gy!yxzVz0;+Oq!s-`&^u ze~kKMb?0idSg>!Sf0EFV1G+^A&W2eT7#T5tHnl7Mb83DJ->VgK?)siioDr_|k$3;J zht<FS?meFS#P61l%cf+vNZ+kJ`f)A{7nXax++L}y*)nbBZl=p?bWi`B^dn{WxttBF zALNC%_<Chuu)1k))wm*dx8LRNf|?I+lJ9of9zF7H$BtxU#tnkH$=Xv*o!vqew$A8! zHi^qLNOrB;l4xmb-iYlF1h4(bQSe-_{(&{aIhRsq?}lR=KU{A5``vJ<M)H!4%<R`S zymlX&>9@ZjG1ltDMaBy=cl;38x#`-At0&){-}7Nn<?>{vx}Ty}MhTIj57Wcsw+Zeu znRROKii-<=bcxqZwp#UjqkNhDxsrRAUrv8#);HT{p5Oeh)i0g<`MFP*?Y<Q<t*WhB z&8=+KwBJ`a1H%=c_^!>m?vTTsaOZ{Dz7KxeH^(2+G_kvSI=e0Q;8t$8PZ3Wu>Xfyu za$Yp=pQ^Z^Lao?S{apQz_AQ?#sR&<D|1jypCGq=bo_Ff+udyx7|7Ya6B=7Bok|e7i zyWj5T`?pNys_Tupcb`tLEC1fu|6f;V_HyCq(=+3*9{;gSd7}SvD^3sHhSz2_r(EOP z<#+M^U1@x!JnZ4K#&<2BdH4AS@BTc^@r~dmVRlo-eJ8ek)hwHEuWldP?~}bhdk-7W zan8QRX_TxfRdfAy?VaCse`nwEzTOtJ?L>+~ckI=&h|OB>ip)%mcHL@L{?nVk$~$rC z+Lg^em&axq`o(?T=IG7F6u#r2{x{7_3*9F^sr(e1GkIl@lF2jgh{K0@B|oXJ`Ml0^ z-Veq}Ru}b7<Zlf=^_)jI>{e36g|;i_Pln1od?;!!>6Y#8|LR=m-Yk}CmOeX`J5~$o z;!+Gkm+<JO-%>Jua=|01RAQx(dS0~XwQtc(DFS>dYxGP$v8b#sns!pQz%ypyo>Q~u z_Dk1Hb}`>%U9HJ=)Y6eF{?p95;$~^9pzi0VEdLhBX>MKDIQ#yW=%Po{KP}uFVD|OJ z$~o`q%5&5hD&2q05Ef03{!qC6&j0sQomZ`Xy;*00w2XoM(#i?jZv_6lbZenQK=1xT zw;I%nA8%@o+u0~-yw+;wBgF%JoB1Bj++~<1aYC7$Q})fH3=v*)DK5RQX^!u2p5xlJ z<cHa&%kOFocKaTm;CR{7vG&<z$EPOhRe#kQ+y8qtUoz}flbW$TOCXX*;r>H!^V?rD zGq$j2#{E0>RCT^_w3&R_x9j)qZtVT_wY+(`&cnEA+p|Pfcy(-EPB`QIuCOcTnd-sQ zdOS9zue<8bItuZ{c9|Wyl6q9b-($+tJihB9S$vX98)pX><-1Sh^GtD2R{L|G*`jO1 zkyzJ`+S~4?!iTyS*DNnq?w_t7d%O0-o5Lk(%PYC%wS}#w8sGUJ^1V5FYmwFa;(zw9 zZT~NS7_d{bev0&rkJc|MW^dNw`6s#NZfD^Jjr;vZmK&@dJU_lJGC}q_Q;qBT@8y%_ zYEJRXY0upq-x@yu(%X|#-~S~0o+vHSy6?mGt#;wHwReBEpWDEE@YQ{<IGIw1k|L!W zj7N)Q{48R>T~*%j&SdV5y`L}n%3a>Pc-!w)yFN!tzq7mZDDc6DhmzHA?Sm5Rj;>!D zece+*qo!n|>YPt<M&BN|x6Nt!Wu(B~vVuELt<t?@>b<!=QeSMngVN;|dHm3qWMy%9 z{@_tpTy*HkW3#Wl(0jae{XXxyjPHMH)&!{p8cw>KeZQjk`@7k8Mp5bYb5snJXXJ>g zncQqu<lnZoCY;$O{<O~g506&;+0f5&UghH!9;2;CU$C9aEc=nudogl<2dAh!du-gC z6WfC~r2p9}Uu@LwJLCKo<4Zc{1*YYERK3KU^rS<(=I4&dOMGt}I=0kmw$I)z+c&T% zmKvwWs?4xU>-ehZ_1j|xck4v|>APn?)zi?cbuV)fwl$lcY|L2TH?MN7@r8ANowc)9 z=d5w6|6n5X_@yFS<C8PXPOnM|iMScb_seoZ%=6%x@qcCHmoSJ0ohZ!|QCuiobbw`A zv+@r~o#d6Q;`WzjHOkI8_&4YBt%BL}H@q&{c4v`A@xpoR{_U-?&jKx_zQ_oiF|(fQ z9Cqiz%?IBW$WE`xxU=Wijpv=d<)#Y`rn9ClcR4Qm@RIiopOf4M73M$9+P4Sx=;xKR zJ~*m><yzvWJm)9V#dR4o!j4*eoMgVnZOfL-<zgLv4zWBB)D9L1nHyMjvsp%@ggVNl zGYHI$dA@IrY+&iTsQ$SOotxy?SfoGL)d>`x<T}w87NzY!eM8+p=B`~T^-sg&d0tnY zd8P8z&$jb?{kFgLd2ID3)%HKmPjo+g?CIn42U{<_o&T^TWm%-!LB&0VQ<yGINS1r{ zyenL8+VqEOek`4S!MUQK^uSTOOUAF$n-qE586?jbM>PLG6@H&FjLA6T%UbKwnVd^k ze&$$__|{}~Vxfe@+?IRaE3Qf&)Amx^VN~X{GEUtu=yYI#Y|gZriT6BZIk>%bH_iDW zrDuA3-WluDpLkYix(gl=2sSTk@4K>;{dmd5$F4CpmenuJt^535?AGbxUHK^C&vgBr z&FZ%oZJv2+ISbpLOX07SEkDiP9$n?FH(BA!X+@8WKX29<rEGo9<bJo;WPQux-%n;9 zxx==RfAL!_iRabMr{aWk_dZ?he0*1JNMNh)q;C$LA$Rtutql^NqqzBRrnTcC{|#S+ zo*lfqJ^s$^y?=$aGkC2%#Cq}MqCZy*g$--OOQ+rxN{CCfd}s2v^3}oZllqJlI95lm zVQyK}yz%3<oezu6e;-d{T3~x5&Vc21j~-j}!Cg_EsUKIX>WC#iayj<m+Kx=aHLvoy zwtHUM*istl`Jto#>Iqc~74c(kLJc07OL^JT1umMqz2#6l*OO8rbh2yu2af42*$S&G zTD|L@di{8?Z9>I?LmMt1h&pwuAm*~!O^4||oE?3W!q}74Cy94-sGKROTc*wDv0m&+ ztU=%-zLSy(%XROG-D6=aTzEVt-upI7Z2d;wi$~8kTz%Q?BP0~ZAkEU*w&UQU+4cvX zZ9KK>;<7!iQ$xZ#LgkLlt@-%;^WXXZBIkdu_j>Vr$3)v*yqCMe@4b2PmLYq=dV`n8 zey`smBd4mxTvHWZ`N><d>G6W~n=i?9Ms$kK`nV`4X6n+(-mj)QR=ixfvAO8O6!vv0 z3tC0x9vxC}+EO^lZO7Yto4%fpUAN{|N55`wZYo1~{*RV*5t5U)zH+O0bT)ooVJyEW zXVub%aDVBB%zxd|n|jO7SgGpWe|xh{=!VQ$>!XXd_yjC+S-v$q=Rn5PF6$ay;g8bu z{+w!eZJ4b2kbC!oQcJT7jTIToZNlq9nI`7OE}0PGu`Jc_nAmm>rX-6p)^`_5W!dYS zt)J=~KU!+gEzr0!yP<LRO(%`rW^3mBS^md8q+-^cZNa&#LcHdx7BAu7FXHxDy4Ff6 za?vZZ%1wNy)@i@Y+b=hp)4@vl*3$PswjWyaVb;eo(O%h?xAk)$OU*eZsBCcX{;{or z6$%+?N0MFEJvj3HqhflmRNwpeeT<6fkym@>HcDUg-t#mg<&e+SMaN%QS!TZRs`!65 z#sAPQ-5JIV>rSxx9d2xwH<~#8c6;96o!%SHf4_V+-d?YW<KgoS$&S~vOS*zu_15+q z`XxsiW{QM9yZLSD#4FqEtqv>>OFDWy|7>*H_VrZ>8&4@&OS~}H&b8>;Hi<A%Gokk) zCg+b{J!dGdCv;%liNNp~C6d!-?$%>m(J#A$Y45Aq8$uUogxAeYTkg3*!%AQY?>{vO zmkXaVVvUPG{O{4OxBE~W@yuiL?z|GI{R?(RRs300%@+FA=)V)s?6|^@y|bRx*ENd9 zu}Pd#|9&g-CA;a{CEcr!mu&wT`*Qi+)Ws5Nlf(HKs-zSD&$4!Y*bslNF<b7qP0stN z>#r<ikC<t*<Irg>;k&O39lvNkRo41`;B0xis?dT+)oE)xV@hUk67JlSarmcB-fQzM zSEp_CzdgrRt!A=g%T<M#?^n7{2AED>n=Z7)d;SJrZwVH4@lUF9J5PNQkD6$upp|>; z+qAm&+s425ZQU}rKOoP@{=xTOTv^*Wwf594Q@nqEs`bjq^Fp#qv$9@ZiJKc8UatJ6 ze9ivgJr9G;^UwOIyx0=X&)x4kLm({fSni<{D<e+IMhk4V<MmGnVfeVDKgs!Vx%#U$ zj9+IuUv}NE<Q;D9`Sl#zuRAtcegE!lI(YVp$;91%ifYst!dRI7(=ukb?OWjPdd%b4 zjN^67&N&}em6bdovHn2O#>Dxp=?|_R$YC(emUm0#d9*Z<BaD4%Uyo?%%!(QF-g(Sx zY1)5co?q&g2GQFucFj@c;1&G%*SznHhZN5**jWHBE=C^evCESuJ`%He$@f9~o`(64 zx9t&C#wuq{|F~3QbC4rTqB7x(hx!=>Vap4v-g}lrUO0O1o_le3A6tCP$>STsZ5~=R z2UNCiiB;BRwfWGy{@?A;+DWte7=3FeiL=+UZ%On_;GFd3T=)LXzu&$8fBfLLpt-dZ z^&Y7*eE(&wFET$V&Li=f%yJ)P$DNBNsL4EE5a0ZNZrDFvl^KdEAtj7YnfU%>&7Qx3 zx#8!+o|T=GTvb)uPo1?FXMP+du0H8s=vmF>DQs+g&n2~bL(R1P9~(OEFKJov!RM#* z^285u4STcKPhSxjEn6b%UlQ`tO7r%$c|W%1J-V7AYMU1BWO&LmF30|uZj@<W!Qr01 zfXia0DoGz=PkEg(5VW<_-*toM;En<X6SFL~UAE#*vF-gEp9Ds>=xzx#n{k-m<dTn8 z!NKm5hT!duW{c*1oO)hu;iqDcdIRy2BEKIWejCr~|7G1NrdY|iZokE&!zbo)yjH3d zX0*Be^FhCS)TK%Pj~VA)x*8ny?{QC`w9Mo7TlowJwXFRG#7ryCoSX1x!T0>cnN9aj z6fJt(c;H3z^1r&@wg!lP-u<VlMvWmvAatAcL7m#1W6TA7Eq3=z%Y-&(wcJ=^a%Pcn zvk&(RDbq7Nx7}aNh(6Bo>Cek$2bTq3icol{w{*^@%L&)6-Tre-`f={Vi_0%RN#3M% z>1jrZ%Od8VpYAQPxb$Mq)8`Mg9_re3-p!o%ux@d@?U~MpDiwhzTsXXC+@H5HsoVTF zcsbduiao!<O={woD+j8cD71@3{@JQM>&zl{wzKn6r@l?R6n(5?l9IL6wWEukXqeS} z^^N~pAUL(Uw8`hzjzf!nUOuQ|^YU@`?Y}>7pa1{v-COZG{sU$g`Sw|#GF(s+#*pe! z_Q_D?r?9#HR_mbD-LE*;@wF7s`S$<J`M=xue$p>^sJYTaPgc$5--B851wTCn7q&17 z3t4n+<qrG6F1E^3FJAE3X`dC&0akZ5XgR7el>Jhu$a_}izvor-o4MQ>>tlY^d<=be z&38|&?b4plxm8xKyB?WtEn{N&A+&VWnk~GJe~z{-&s(IOB6#{~#}6iriJ|g8S1?a< zG4EI=CV6N1dI48SO=Uq2>&65AJGacydabpxMRoG*mzvrOUTN%XDrq~-eMWYZPt}{_ z9LrbOBp-Y-^Z$;WqJsNgnTAH6oUNVtN=8jEG}&BY;>`~$CK>7Y+BEQ_7IbADzBI)z zB;35^MXC6fr>;qgf`ZHEJlUOL?2*2}RIkrI)+BN<Ys~s*sol~>J9uXnehQ4A6S8D! z{GP>5NnZNmB~9-x@$^>(CoA9BE>g+-E^qzrUAwJ?FV53lm7^>DlIxS{rmb0V4$0pY z1$FJErWuD>XQki!IrCW7Re#p%CcE7XhZHWv)bM8J9&hF^s8ibV<5^$3^--~q(ga;$ zmE)#`uTwS(CLg%kxZ&kHiywJSB~_kJn^J!*np*Wbo^h$q?rZ9w7TSMTI4?B+p&5tz z;-~6+0<`CF7@gSl<LAtIY?}^Ed3c+r-LCF2zx&SH8;Wj~YcIaNY|q(b+uQvoPr6*M zQ}cQ8!Yo<tztPIeZz@(XPrPYznfIfCU`z1yJ^LFcA6mKl-nQx|$=~1n3AN=-Te)Dx zQ}@?-7kQQW6n<U!dHdkphXPAi=@i_2dBEE;z<i_Xqm|01r<}a=VE5IR{?iZsk1zi) zf9n6RUr)Yg+;gt_A;cPbg)20y^|bk!`on(ni!bDTI^e^mc<$h<4K|N&)r4IU`qX_k zZCT3fi2-dNQbXrW{rR9E`@yN~_yx{;Wqt+<`z&=W`J!~`+^180;;G9{-<Fgu;XGe$ zDf8yeuWMnK-1ca!|LXZvB7J|HZSeDg4xb+{UZ1kx_`7j_mCD=Ghf6dUd$sLLaY;{I zBIC2>)5P*yCi^}e?Y4O>J!MkHPRog3Q$43m+@{c<_neL4$&~#iZoktHY&!d3wvE*G zx|jVPpGEh4eYV@6bI%2@=j$WF7aR`Vo}KIN_PCAPDyHVqzPs%8Z$7@7pP({7r11Ac zU4iXWlW*Ql+PLsQmGI*y?oYUW+cD=yPWgKx@u;W#bWes2FH$U(=Xc2Poi<`!z1YWC zQ#oeGRt0Y!meX;|(<A)2^&d^vFATGo?09R3|FnwJi&owHcRJi5yE{pazdWamA;)3m z3g5dHAC^9A&1C$jy}(d)N#V!SixVR}{3e^}96OZk>bPa!()@7aJj))=n-`=R^<_Py z@0XdbikU0xV(O-x8??|^@4C~JR9iOn`i>XQJ{xbISluJcu+A!};eq9k`A=rEt~<5r zaU0W<n_g@8w0Cvy>0Up<`CQB5PNBz>rk@m0e;2A_^~#*-po`XiSK$afwMjlVR&06H z>c3v)esw?=hqU1&HnF_9>FsN#zPFUy87-?BJ!yik<b;G-N30I_&i=HSKVSTx#v5zJ zZ<XdpM1nm!E%bcqbkr`V+Ne*fJ@VdI^3UGq^;deCnD1+;u6bOs*;dltP2qxP!!}L1 zeTh>a*q2FtTPEtp+IQqEbA9UTw6wcVy%;CvMHOyPE-Q_yntlE9_c{0WR=?bN*INHi znbG`TN7=5f+TazJa@zIot_7Fsrs&F_Du2Ig#~&vp(_b1b=LNijKC&>(4xfDW{FbuW zAJk3=vwpQI*sr#$bgOLKtV6v^rbT<1X#IS5P3pF|cF{)rn=2P>yR&PC{>}@J4JtyV z^V~jatyNr@FLUT<-)fJ-B?sLrWNwxjnCw;KV)d))xH=_;%T!0quJ`(yTCW#}4uAc6 zrgfUbp#^24`VAp73ko+F7d?wH(EFA=%TQ16#F}lpIF2y#>r72uWbxxuxBROGVvD)f zJv_)N=ccIIGvDatjz1|&Ibt{W-edKQdgX6*KF~BTi}&8feCcn7g~!#^!#u(Zv}P8( zTBmK9x!}t0XOT-wSi=^px+&WpTy^jM$-0YYB|QFon0TsTwNKcxHS10<Vwkw(ZSTXj zTJ5CdFAwg@D6QObXnJg3@Q-u(>F1?udHv%K%|Dj=_{&~~*YDbR76sk5^J;0|^{aU4 zfwetrqIxf<RxDFED75U{^7Fst@_1~tdltCvDEjv7!h$me?`r;BxL>v9smPg|ySID9 zY^;5t{Qcd$pPRo=4ES{Q{9O_L=T{blnCx7|WN&yqw9)8C8&kinnttGBLGI$i2NF)N z>{%|eEHJ!YfbBu(J?^p@uBSLEQ~6cx_5E%xI(Tet#C?XDCm9Oa|I7a~pZDxaoo$`k zohqN1zihTL&r9tpZeMlp^n+*-`Mb5x@@4LR;}0v)ek@yK-+ymyTQEB(_fDRJ8=Rdj zFY{c_|FHW&_&GIw*2%X70_-1z>bXDgWL1-$o3!?ytbqTMWLt5$iqh}5uKyRz-?V3v z=(gSJw{95u$A$J(6_qy>9M?6D{#4jKch2(qFAMLs*Z-M#$uaQ3O~vrCsmtDc@>B}^ zotEHJxMjjb(U$K!Puz&NE}yq0^L4=Vt7)g4{+UWVNr;(be&pEC$T!>AOFue%x^Zy9 zdG+;AW91p0*;b$F|2x&4#dZ1#w|_n|a!)p2^Z)zd=!%zFR_}kT&k9$4@%NjD>=y2R z4sVU=zTXx-p0w$p_l46Yi*B56+Nrx}!3-mlPuuwmuOIq0=kA;jLZ_{mnk#-uCR-k7 z<az2p-+sPX(ysSP8|G^tGg{lfVXEImu?V@=vg!U4zFzVC$g92XbbG`ct5?U?N5mhz z%C?vFLA2s@bLXTjkE*S|@l?r)m#<M{xFLNmYWu;GfC+lht|n1UR~5I#H%O$&1_&oS zzGnZb!Su(Szv<=k|5~rRbF1e_IAip~h-v>mOw3z$Zta}7Cno17U7NU&dqX(yflp4- z{Fi!_CW=2(T{WYu>fzH5k1lLEvq&P;JF(m`ttf!m!zdt2H=Nz#e#?t*rT(9NyKe<t z{PDe_^VCsw8K2qvdyk)ZAr_OVHDTtq$^4HdKXHg|-+Ms&s~O|QKf0VPrLyWPQ_Qz7 zDE??aH#508jyd|^>rBSV5W7Pcm)jf?OZvR=Vd}2@);(XYZZE(8f4yByv-D36yUN0# z6glU6Kg$IyPVfF}|Jhvj&-{r;fA0v$y`(0`ddPg~RHJN(8>#-n?1%69%hdh)x%7=% zjM6fhNmqin&5Az0y>Qa~!AITM@2;GUPf$O3ed*nszyE!F_j>=w`JWak&%5a-G=0TX zZ<QU{({Gnu%1bSaDLo%&vvaq6^sX;Yw;#UWS@m&sXPc36W%<)=>HfaiCKDeD@13fC zPix)MKEGd&)nYO=Ukfao>?p#`de8DfSoy~g{nN`zB6fUvd-TY5oj@(?DZ%EkAD+uE z_;Y8i*S-f!|GMV?UU&QET8kYU{XVSfb93KxYV)V97dD(#4BZ-)ms-8Jg;gi0Zs|s& zPfRQJ1aH?+)Bp8(OY5s+%UF)B6N*S|%FTWj|HPv9?Z)I^TFWK&JUDdP=IUF9#!IjB zK5xBfyu1J3({`cNzjS_UH=HSXd;IkVqbn1)++5mw;y{;M-OLaEiH&(1rzktcT{)@F zT(j|3Vd3rCi@UA;E46QIOEP)7uDs^{o98*kZLUZ4k9n(37IF!fs}oi@CVK1Lp5snm zO}QlA$M1D@f9^A(qp4uw<qG2)Vrw|8WFAj)JlWm0@T*czhMIw$=iaU}r*+v3+iXoX zW&Ej#v6^-Kwa9AWGY_JU<u)7aKk)GVgZ$-h4z5nR$m8T*Q6ca>H|M);Wm)-S*?Xn? z8ns`a(%xS7y{_Rr+hOhZ*WKc-wsm}ZV!kH#LrGC{IIn2wf|=^4xXP7Nv;*!o1-vZH z{pTzc8Pjq8l=Gyl4|TQc&UIaRvcO6v{G;8b7d`d=cgemJ$^W?0=D-A-eP_HQ<$k_6 zdY8Gz`R}LG*AM0YZgYRD)UOhBEd8AA&fj0E!~Q*-H%De)&cp4M%ul)ZZ2xDUQu>K6 z^>mqayTfLuIek2(LC>x%F146DtD^EwK-rTg&GqjR!=6pAylxY3&%AA`^RAsMCJ0~V zZ0)EK+UWd!dePJk^||fU*YDl1{qk_~?&bE?b>Fwf?>@rbQSqkx+muGXqEGtf^*gWo z@2r@XTE2RJ;6$^ovj!g5849}3``<tBoqz9<X1Da3JjsHEk=qg{Mz<&2z4_6G;m=-g zLC(ypEsJxW1X`#~YTvY;=gvW0ov&PLRRXstFvtDoxy9Mv7P-%FLrrSY-c1rdnP<Z< z*)+(s9!fHdF1*sXWum~uDd&&6`#p;m+#3BzSM*f0&83i6c52S&|JvyXXQ}Vq$t7Q4 z{6l)8;&dC<C48+Lel5FgH#gzM0nfK5n)MmpmCXs<Sa-NRqy6hC-vu?x)eBE@SV`ON zJh}U2@1_qd39-wTd7OS+Jw>{A>8<@fCfhzdan1SuOX|U+%)2+)KK-j_<$tenQE>0J zvyUboagy6MSMl`jH|GpfW@uU*x;Qzu@!j?G5Q#j{xe;m%c~@`j^PjtZ`yES;+l{v~ zZ*pXtuIvonX}D(9ZIf3k^Dj+vZhrZ+DYsfLW$&@l>_5k>!+!=vORE;J3%$*K{c88; zt|{W3FM{1zgPUIknT4fH&N*X{x9wtI*|*7ZOWxV223^~{|8v=1V{4-+PZRQ2_1=3M zXf<Wp(zvoqH_vUEEVe!Mw&#y<<I0SmT#JM`?2i@c%j;D7K0NDwzwIUW$GjN36D$uu zsc!%4`e6BT=l(sd+R?e2Lpd&7-*<|6%9PMv6GhFW;CD~D7HN3C&#>BmV$a!z<G=5* zuZ^6cqR}pM(Xf8cH1krE9erZAKTQyGy8kTge06vF`q+uJueZnDuYIB}cenQEd;>+P zV~+}7AKi4t?3}&9`JeX6(|dz&>`*k@cS!cn{y*CF`jZ=$ObINz$)_ulw|O?}_KSsn z99NdVTJT}t-{_hzUEf#gpYJu-{~YPIh;N73`ssByj3!;5bfaQ&qLBam>V)r8>p!L4 zlxz9Sm2!I9jj6d$-%dESH0DsqJlmZsuJhhc3o3p8?w`8;yLo?~pPwFc``inz?H^9> zWPT_4c>aT@&bz9(obS5XM=ZZPb&Y2C4a<o5|NHO8ZZMKfDLirF$$>MEn&xl#6YX~R zweIw1YcIE{eR9zfy83R(twrwF8hMv~oW!<{`OoY7yJqQrnOqks98u<Z;QO`Pw*2#- zeGIvGv~kzV=oR;)?KA_k6xYa#PAl5re~HaUey+>PHHH%x+TP|1T_E~J+2#D-IDaE4 z{dU=f^IJW<HTON5vg*W&4KF9hAAW6dr)!pn+@<v_E;Siz-EZGb(XzUe7Jiby&(fi} z>zw+X*bV`&`*vqHluG<ru=b(unI*n4AGhv$|F8YjCoz}3p%ZtNPEx5$iDWafkn7X3 zP}39jPu+Rc+|PPb*~&dpcW(xmYOl9S{~&s5Y607!buUy^r}CGT+j%ZC-1Ga_*}Jy= z8^rbYFI{}q?~R6N)^_prZ*(`9+Opp{6l}{i|B4v*dA=}awR@kM4Kg}S*6B<+?tk~2 z<cyM~tpA)YH%^?nqU~%}n_DPb+@~z14Z7+Nc9h5M+PM3@=I6L|r^=PKU-rEF{m9O9 z;ve27$W?y2`9fDmR)q0O(7M$Zj%mfLdwM8A_}($q_O4A{bvtKN&E-7#wOmHzX~eo$ zodwMcI%0yIXY-wZ!n%;7_cwoX<&3)4e*L`%#3i}|*cMHCbf77B&hGD-_dY!LuIuCb zcedzb)HR`Uqpvmm|Mc6I*Id<Kdik62i))E$UA!K9JzDuzJ$Zji`Ucx}y^`e1Mm?vV zrH3#W9OOB7WNLJe)+8eyb>RxpFY;H97;ju~!2Hy-`3e;u7q6BrJ2~(5iCup_-FxR> z|M%*lscK&ppX-IYO_*YrI%kuIkoMt>T-KZ75n;;G`+s*nS@Se*-;>j84}`}%l^Q0z zd%Dc#=S%B@T9V6V^*?Y8YiBl&(fg#E_wdi9c`N&E%rs9OI?Q=s=H02`l~Rh8Yc~aU zZ2H6UVXC*!jNR)sr}|u6samykuIQP&6EAHP&HCy1enYC=Q{!JdA3s$|IOx4^xeoW9 zn0C{Bse#|FSZ(F`Db=GVB&9g5uFd=8dzRNntX_Tci3<MRdL%o)N{w0U=GClQNfBHp z_B}Oq-+NHu$}ZEKSKD5394plBJG1Gw!Gag}GL9dxHnV2%X%F5iC)L#$V7c8Q!u+e~ z{8KiEA6M`d{j6C(O=$a!v?NCVR_2WpZ@f4^XZ3fkH;2Q63$0%ra{m70?-eO8t2pbe z^GZ+H$_rn-vG`=0W@cxh=kqy7J4LoSm1pa{mt`pGn%iU3#__&+b`ev4i22;yu)Afu z3pa%cx!ZZD{5U8wH~jXjg;HmDrW<qD`Dhw{;W;z+Li3~D>)*cp_oM#dQ#}jm{&Rep zd{(yqe`-fcsz2Rebnvd6&Y8u|7sT==O+PJJUNYyUe9_d^Ou2{8I#2jhGoSI?>IJ(0 zLj-GdXYO)UVw6Z*w08~Hi;S)+i4!NyXI}L>vSBs<>(^WJKPjr5S{`8{*IzJi|9?q7 z-+w~iH`^M2s?)nQQDg4IMe7g#e?IfTo)b1rj>)Hjcvjt=`hLwf##ABGIYQ4Lu`iB! zdH2k1@$h#OA9<!T-QJ{SwYKL{<cyo4kCHTwIv==kcEMby<FB?H6g;8&)N#kDr8~^q zE3Ua#6rX*oaO#uU>L`0l-vptB>U*a!JX^3nmchZTcDJ+JS<a(jcQvQon6PWfY5u4j z`6W+3<X&3xIDK#VvOoJAKE2X&);G9wv2(MK(g~hhe5y&TC)e_p-^$x%eDlJC^GhqI z_r00(M4D}TdHt8u>qB=pYV`j<8CIqDeqUww_pkT&FvZ`qI;Chj{etNOAt!x#&O4u_ zSvLM&W&hfJYL9MS6UY7ixAIwaw}_?|G-&)6sr<Nlapi$SCXH`-SADDe)imGY+vDWy z-x6Okj|xw}_b2+^$;Az2c4oPc>g+CrS=inDvQBvNi9FVx1Id>9COl8PEoyciQIFd` z!N=H?!FtzS&b(N@GjHqmKfNIFWNzL3-xJwStM@%Ev$^weCPRR{WW&nYA$xiy7oS~a z)NJJDFiZ9zPf)Vh${*|AnrKv>S&$w(dD>z9SsZSftI}EL{gr)xbecnDd)tvi0s(Dj zrzmV%y4FG3|MNEa;5;_fLyuBb_3Yk>#ZTwfE&Q*Ny<6YD;*{~j4Z=?p!ozF+yXSd4 zSnk7Kw&BmqOB<uvK0TYhi6t&ICRKW4Vub93)I{eg?q%|AH%<0;sxxz~<h#2k^=Z;C zH*?9QGF1xdqUJt4{K|)Sd2KeHQhxV4TiQ)Arn;k(^&h4&nU$WO?cl0y`FCgM*{Jvy z$&F6YCXrhwu${iprT)v3t=|9l^#}ZK6Vs0NXCD-PQE>P3|4Zxt*leFQFFv8GpYKED zxqO|Ri7PHB>wTN&Ip5?}yiC)ww}J%^c;zaMq8n!|;59klP;5BY;jeV$oTt$htrENS z+RloH{G2#v+vIP|yhS?J6N9GR<vX+^Le$1X$?AuwygHLA`yvl>#(z&GAEnnmIK0|q zj>}Aci;S3C{1Va&|IaAXTleKtRP6`RG`r{wUyDO4H#GLIt(<T7wqweq*vw_s)|%)3 zY>#SItv=6u=DOkB1x8<asxmrnPj~5?Gx<st@8m~(lQ>p!PpWwJT*XsSI(@gfw`9V0 z&z9*%jczhueSg2-mvUI`(X&arULCo@$r<Rb*7iqTKX9qF_T~Q{_SaV~?0R?5%r!h! z<Gq1^qT<Yn({3<n?%p>4Ma!4`ecNuSa}`|Fn7PX4?2N$OjJ0`6Gs?d|z2U=PbI_jm zjQ;bTN}p40D`)oidRZ@6$2b2$%vq(C3x0AeaN9C}YP^o3X^#Diu7h`3buVAt7`Fd7 zPt>1X{^4yhOiL4+l@l|=Ij0n!I=(`7#`h_??U{FYDt>l_8=mTJIJIW=&LclwTC5h< zWaeFU=+Lg8{Ursqcgi0)NV)xDIdXhuX_%v%)!ij)dZeH07#CR|+M8|ux#FD9x@C_) zPMB>ic-{DOyXTGDf!id0n&dO{U3zuo<(V~N%NlPsu622_Va=9k!AYli)BhHVZhMz* zG)aWJ@{{x?-#L4BmqyJ^JKV}^_wW+up^LuD9!3@|w$4mrf3r)V?8E<q`+s`hWYjpr zp}xXCPkP#}NB2Jezx4mx_fK69n=({)xD}c{Nnh!|QMLBL>g$i(uJ@Upk!4a}xK74+ z^W_;^Z7<2LxFh?)Fi<}KjN+yzv2&go+cC&ji|jk^7h?J6;Pm)+_sgU{wCqt4mVJ@( zvgpL6_ue!7?rbl+wv%BeH_Oh`x4xNsr9Lp~<m~;roco(jC2Pw$6G7G&p?9yftW7w$ z`bdI`z2X74i<)0&_bRAZD451SmDG#YWK`2UTD0eBrI3uyB{QGP=X9PIO1ezWFPDir zDNuORWireBU!UTaRw~t=x_$8XHM`Z7t-Zl<>HE3Z8(tb^+q}NFA^zN#qmfISnw~bF z-SGNhx$Cz(ClfY3V6aF{w>F;B*_`?3>UO6EygO^Q`7L<Fowrjp=7C7A<j!wT-<|Ke zt`Vye`^;>|y$(Th3*W`>re61Wv*B;n>y|fCXHM=;efW;A^2TYF1%;0y<2Q4+{%zi# z9Al{mTBYvy<IO%}e|08_rJ{2${|K}AFXbNoI;i~XG{fGrd?Gwn{Dmf7^SQ5=e~mqN z)3Tyt<?|2eV*XlfFCOk-em8ezbDq?;ZK{`f-lz$dTc2HE{G*7$G)?+QwVdHgM|rNu zmy=Z4KHJ!(*EIZ)+RB`5+o^Eg$-vI|+mj%*T}o;OJDBtBJ!-tBoKtM-bblXq_s>q> z_YO%vf4oZk{7Ug;;mtB{7TFWkVK1JE3+DY_E*$YiAaH5;biOj9O-notDsCIpHqC9% z`{ZF@^l^Hp+mp^Ka|1q4PxhMg#j$frr-xIQ`lZsXMn)5jjt5^4-qWx$?)_=odNszU zT<&`w+3YGWS|WNT_rKJi`RW_lE(W-=>+v|r|32NnX=#1-cdPBP_x||Ztl74-eQ%EX z9LI}$)|VQk2FqH_oin#SXZoG&_DlJv-k;f<Ufy5(=+V24{&6>Ie{a8cWAD$qt4k{; zZJXA)=*QbTzqa+>SeLdTqO!F(G0FIMO|f0(iK3jdZ*|zF9o4(`jQ#9|S%!0({a!c( zg@5_BKDzLe{xh!CA6^vQ^3*Nq-rMlH_{*~2k$IM>2PSO)-?1^LrfA_Wv8k_}*w(FH zq?WU%bQ2GsiD#uq)S*e&l4tcwv$d+ftG;uft)1h_%te>nZmBIj`<9t$YwG@QvKKwA zN)KPv&VQ@V5c!{1eZrSJ+2@zIcQo%kBywQCwPfqGs(I6UTFnXyUyDuod-&G<R?{uc zF&}r820j##KX^kaWA>w*6ba+qmJ_FIHeT5CWzW;4yi0P;%4|H&OzYlyWubij<c&X> z;!<zE?cJnd&2;bW@l&78R&Ouu@3uA*W@r<Ab^L95)}&AmDJfokQ@h@f1Zl^bY(qAM zSz-*DCYeuo0v4qeUX)$T>$1XM=3Y_LEH>u89MeexC)62#FBj?;Z(k!}G?C}n3(ZK+ zuvWvJj~1?R?)y@5<Cj|Rifexb@+NuT&&uG5`mowOJJ;ZF`{@tLn!S1-1NrvODfqEG zq04kum$Lu5nI#ub#0H)@nIG({t-gL4d%)KtSB=g-ahFSKf9d71Wz%*~Zs(6|*Gw9# zH6y)?KKHy+^H-I~oBqk9K1<A2-1mURq4+1i)_-D1UgaPh9smCKmksuZl27N)Zol>I z|Koa_<$td(FN*9r6Tb1+;{QKc<8o^Z_p8_c;N(->cUpJl^cNSl{w#ZRYT?xAO?x$N zpRAadHou57Qg8R&X8B#|-+wHBcl++)<hj%L{ZjL{+_PuSk+?T5hHur<HP25p?);?^ zGEXOc>*f5!AF~?HE}I~g_ow5tK^&X^jJX9fXMbb2`_GeJQP9`0$^W58)GO^bQR0Wa zy50rG$ZGPxXsw=Evokq$-|J}!&X?C~IHb->n5^D-(KYSgk<6gmK_$n#jsLC?F6X{( zcd}@c`|Xn|+;cX3Ns?1q{zt3u<Jtd$&z=>Q<QgU_nx9-b;db2<Px1cKF1fpno`mOa z7iKfp(b0aLo;*EKO_HO1&PS;pZ}rn_1r}9rdlN3%y7|~qp5tHcwyin5XuT0znq*16 z@tN!y42H+l{VujlcYJ(Oecy@q7o(T#zAQVNvtjkQREC9z)+{!;A2Kg-^<<B~=>n(I zEx$|IeLe25Jn?6m-pnh@Yr8{4crUH}A|apn)3SK)TjiWfM-<Oa)oWfD{rY0}l3k{b z>`t@J^{Q+?|3^0Fb?ECdH;0HmLl>qt|4po~yMD23$_mrna%qxq<-$`t9t9l9`@HJ= zy{&E*lS(ts%&%PbQq`vBQS<w?{db;gZ#;SXUun8?>(0CPVlpmnoxHgCh}MdtY0;); zryeoe%zdQMzF+hDLd|=Ra$-Gy{@+o(c|q*v*ZW@E2G3uqUb?+)o{IN0oycuDC(Cl2 zMB5n5L|Q}&A5}bRd(`x(iCd#9dex4HO^=$ayP6gWDacK_v9jo)h($}+LB~Gb$h?!& zQch3O*}5xw?Y!m2wa;bh_WzH{-hcl0*G%Wash{7zub#j6`>pI-)$48Tepk-B!?d7h z)8@-fy4puAf6Gs=@_fC0-s*iZS0lD*wr{w9S|jYis-!ZDh?m7LUUn4l<up|ty!`Ly zlK08FZd#Q+`<Iy4oVUOIFZ+XjX7cur=?gf!Z|@fW|D^YBcYI~@XIA|;_l`Quy)HPr zEM`hC<AQ$cwB^Tcn>78n%C$FT>73T+duJa@^~cu!?q2^suKt_#lZ|hVshn2V-gQNp zVNOy}fyj;0JW<|$ueI5{5-oEBv`+iYwfgXJ`}N9APqwAreD2|-Ka;8S(Q#u3TZ0Wt zWYY=^^K7TZz2mvCA!+_h4U^Oe)BQDK(P77Cm*0D5$s{cnq<?Dj+Rx8j?lA6Wi%)Ho ziIYxa)%Y|e_~8zx(uIPvO}2i$xv1Yxao(3lQ;IGh6K;6AHala<*`W2?7T*!dEWLDH zVfU|NNd|91z8}aH_So|O)Z@t)_ZqlbE|^`m`R?0DpM%frcjq0xy(MkYx@U)Fm3Kz1 ztNi@v#&d;je`>sD)KnQ5$j@%--<82EdF5&EYO6H`iUQ~UES_?L@#vjZB7A4!(@zz7 z1zeeWk#oU%_H}bF%n>M0Qey~}KPQpRI-f0Z?<LJ8lV5OMUeSB|$EkH|ULHDaw&z%b z^q$gf3JJW84%;p-OkD8AW$&Lo<vXP$HOfRP9XZ;>nUBsYn$P!Z2LBo__m>Yvlf|!Z zFr4Wk`b%sg=j+OD=M5(n!r56^eHI&6-N>;2w%&Hn?`QA#o_gG1yRjkVoW00?qc1Pi z>N8qqt8YK8>%QIo^1>yLiy2(?18UWN@MOMRagjOT&I{91Z0A%94A}xL&mHpIAU7w# z$2Rr*fhDdcCC)N|?<*wjR&rOK=)S-Be*Mf3nrxf3HMOlhw;$QPb9$a`xaWdtd_UTX zHx>t!*G=2~;fkAfb))~Uy8rQa?|lyU?Ti*&e46wA?$t71ejmF3zxCIe4GEK+Gi6;E zcOGazGi7a0@0>?E2QI$bX}{+Awr1wG$x{p>lKeh0Ehyh?dVaFObcqF({0;Axu8&Q% zp1)kY>RLp~M47Gkt3F1_N$b2^_Ug*QS9%}VmP_1GGM!Lg;vQexCG|+qgHLU)QSF<_ z-{0Ols-3t04}aVP5$nl44_X&xoUQ*HvP)0jY0;N#g$=HrN3QnW<GP->o$t!Qt?SnA z_u~9D<vIVqGs?T|e@uPvabe|Cb$Q;*tCNL;CtvR{Io8kQZ)=(9-uLRn{$GNJG~=Ic z-u@u3+pmf}r|xEBWU8wTlM?3=t^A*B^Dke{D+z2g%RXS`|F3$htXQvj%E#^=B`#Hl zr{P&CLD&3_-TNz;_w`R%?SYdal`DPk#OeOH$n@)*<CDgKXI^qT>=mz{U$;@qKa}@P z#dqJc_4C|T+Id9$%B=BLsGYk<<j8(M{Y<tWy(?#knQ}LpoU+>%P&JjWS9#r2BgrfL zhT^ZcisxK%nXhSm;awRh0q*mBC$?4Mx19HqvSo|HU2jJ0>X-a{@p?f_;1cKMO|>uE zzW@BR^VW<RG8@$XKg>V8?i}xH_ZLE$3~81U!L>O(nQ?we$rraZF~7Tzx!me<4#!jW zkTc0QSKM2@fyc>Nrsn<bPiz(|Gr#Oxb)7l-)vT*rYiho1w9=f_^Rrjy=|h$qk`L1_ zq(@KPDv@}9!qdNRPfZUglb9ANx3uL;?fe~kexH+%KPmnBP)OZ_+x*SGzg#b^H!7a) ze$cP*g~n>lS4sCah#GC}bUJb+)78iJor_5NoL|n4>WR+2DkrZj*ALAMDLwyC@8qQQ zZmRPiUGYx#QE{p|$Il_2^m9X2VW{%TUo-vpKl}c-{%d|d-=CSwtk*q0@I_H&Z`ePc ze=>h=@7fUFs=MK*=ouHMilZw9?#^4r@uGU|>NJK2t@gFN(l_7E`|<Gir)`$^MGN1i zem<V(+3)#jcI<j7p9h?0Z2FYNmg+oz%F`6w|2X$SuR*Hl+y>tM<93yr&HtxM{CRzs zWv+0l-Yros6~k8#P2zul-k>urq~7$G`P>?V5UbkoT+7(}<FWtGO3M5@e?MF~A!kqU zmn};-{btOHXP7Km6I;y|bS<k%ZgJr|^I*Tv9eF0Hg$CyiZ~ksyHc>o#@6_X6t@%ZA zTfW!ccfDs&sXV#zw`_mW73D)mpKs|uqo_QY=g*DI&w-((b<y@3D+^4Q7HwsGzl3LA z{#|eBF1A-&E@t;QDpcNlwzjKzlSIwU=;>OE^!KaWauZ&BKTdYjO3(9Nv!Cd`_hIN- z@<Sx+*PC@wu5a$Hntkd1owVy3Ct4+HK5Ww9TDoi6w}nbJyQ4l|T3(g<Bks&y87o8K zhS_p2E^Jy8&Q>X%%(qW=_1rlfac)MUbH5#)y);I3N$dvSbEjq=Gg%fB7X2o5r@hRH zg_A$?w0-`;m$}vUhMT@oQdj?%b#tnxKROWQdgpVzmY9WlVR~ym_x?<MgICRObSFrM z+f2DUrD{s!{B@ym+a9(}?~RpWGpywC&C~9f96meg2hTsVUCQ!`lO1B%!jAUkoc{U9 zd3xFVfAfrYr`w;`3fWoOnO-OVYu)F{;s>ku9MmZ~c|bF7uSLTZM#s}$R==~ubFR!~ z&QS<7Solc#<&oJ7f{zt{__jTWlc!ZSHtoZcgUWF?)yyXL8I&cqn{;`o3h(jZ_~5$L zrf9e4K8Cy)+a!icoAW<^@A-evv~b0@3rDv&hQ~kNVt@PJuR^X!#;=M=?V=B7l&yC& z$_#3JFn#_em;Wozzj=_LcIk&+=k@uiOZ|WCwy)|Gw~S2<*xB~hszb~-Lh;=Xg>_u3 z9i&g%6<Nhje*9qZ-pFIc53=Khr;1yDnfUpieD#Fyf9Bt={b?TW#6B;%{8H}EuE#9W z%Pdc%DtLt?<VrTrW@4D5^r^+H<MXZL(lc6<JM+J2h#t_K-hZ~mux#CylM|8(1U2W> zTs^{nJLOZv9-rJJ3Da!b4J<fQ7o2l+y|8v&+AJ5#i2nD#_f?mjul<;I@A3vV%Yxzy zBGGmCzsKL&`zKw$eOb<W6YY&BQh(R3uj90Q`_@ilPp$rWpRVAz#L3=oQogb#b)TuP z{P<is>FcskwcsynKW$pEYHsMw69uXM)kaOh$KL3Px+v^#-LpV6V+Z%#jmhFhb@eLS z78FT8-!5_Fa@wA`4-_xS*oD4R%z7O?nfJ0=>k6qmS9A)58@Ucgx4U#|YyXgzefKQE zxAy%rnJw>bZEKt9HT%z!Lt06##}!QO9ps)+a_L3mkIrsEfwE5%`s`h1Yw@q!V`4S) zU77ul%lyV1U-mxbU3KT!DVFJ#k^ya8;<ZmsU%$VDlYdUzs|Go9+0ZY!Oot@zSmjSz z%gA?(Jxh{N|B*Z20uzhRs`0{0FXhjBHNB?$F_*Q*^0M`RZeHd2B=CUYQiajOmu_D! zU0=8HRSI|9pNEb=k8SM`WmAkUJ?uQ|DPPgX1?-K_?n{My%&(j={m+~PAE(wicb4#^ zWCV2!rx`wBe|u$jS<(5Y?)|*~4j0dO@wz2{hS2T&-}btPCWTLYW*jNEZQ4rvxsLj4 z;~950&1PKvaZ{FPZ&&YK)1+6IHXRUkmlWH-^xX;HXO2C&Eh-w-w<f++@D%5oYagqB z#+&1lj(Os~7tg)-AMDPrSrWjyB|mf4xjnr6KSeIL?6^^Swc*Wzo{LxdIa68}##JQ* zx17CIG;v`}qi)F)qpF|oj}&)(eDGR(|A#60lTGgFI89H>nmM_10lQZBqqkrGEWNy& z`;Eh%U%cmha$?Q<f6IOS=#zi*$|A+yVy>lE`vOjze2MuvJ?7u5?APa8dOzvjT-q%B z_D`pBq}$to)?mG(A#P_2DvcE5eLAM)JbHAR`$kcla)M)&;|JYt-d8Q#Yj3jGT{*n2 zrkqvoWYveOn@f!3FYV;sqn}Y)ZT<h!>NkqpZKm%36lU^lHOs^$KEEp8Zavmqdr8f_ zJU2kwE^(dKne|&Dx2|-EZg#uOw&hLkvXv@<Ul**Ik}50}BbS}zY9t%^hI!sb*^Jnm zb{}@+uhX);sWpo+=%$pvzt}b<kAt}>LbK03%=KI}QBm40tX@f_`QV*+vo|JX<wh}~ zzgNuL)0%2F*X^cG)cYmEcE$5@>*ca-9y!F!JH74B6xP~*QucDpKfU9t=LSEjVVV{` zwM*lb<cpVLi>GgA*Rwy<URu)@qn=ou86p~6uz20Mn7PXo*HvX5GN@=j!@O=+&LvkT zClR?s>H3@O8y?6!zq_UT$d}tU-~Df#|I78y@$ggof{sYqEk1H2{lon=f1Vm-2+P$n zx0gw)&l2rV75TI6-m}D;JF7kin%gUso;@EJ-QOx3m-V>%Nw)RPS4*G7xNeupwb$Es z<IR*6Zp*{(9td`*yV{n-*kHuawk_garDpc_-`}3!PuY5`rAzde?!4ab0vT%46m}^u zj`NE3@^0CzJ9X++g*9=;oB{v$th>(H#N1RBxPRJJ&HK#@vghU%-CJ<4p3&jP9|?<d z1v`rK<{tgw+BtWD^Op>J<?7R2+p^rGc4(^qb-1#ZEoy)Gqx6No^^e@;ZteXiYgc>v zl<D?aO3tc@2a~t**LUbE);-kCOa74Nc<;;fyL-Oq3Y-=)uWie<wqn}t8(FpC#&PT7 z7rjQG1!BuY6~4-9%5jyJpZI88DL?;<MGgPgQ-@2~oqqSte#5cLqaamo_RFe52iZ$2 z(oz_X*G{@~@ypr9i}ja8_wWku{c^!F&i76Gt(b?`owU=Z?%BF{?ha<5>n#<0|9&2+ zd_SXgdBF!G#Y6ouuchX-ZB4%K@M8IiY$KK6y#5Q*HT`e>oLM9^NB6}M3+=$een*3X zGaFWJI+?`0b+U?(!5U@F+vh)U{546K6k~c-tcrs>*82cw<!5X6-R#fy{y40^vX=4t zl^3p6FHJeP+?KJmZM>GX@Ka*kpO-On&t>-=pD|s&Wx?9h;Xe+Xyc&Mv-66}4{Own~ zUOU-dIO@sx?i;Vwq_~CI-<&4LT1#+TddTlnBQUS})!Mtt_b=Z+$+u~ync&Yo^N$!a z^cRUKoMAZLS~x-4K_bGpNQS}dzY>>G#bfVHOYa^(dgJ(!N8PpY70UY;ddPN*Jej0z zox5P$jKhy)_4B^}KM?<U-u~wQ1ygT&$j6H<<M-qJH~+sW|DUg?=7+qmbbHt4TH^Vh z$0<Cd^pj-hrmeGb11Fik>0SE9=k(@VvFihQ|Hc2jKYzLN*J(EwZd-X>&hgT;7ZPtv zw#Leu$}@cxsf$_h^3<H%x}WYH`}`clU2kbd|BKu^(<IYb;8C0R>g<RaH~dnkF;>KH zyLp#$PKbKngVrf#8_Mo7J-n3rcjf-?pQPRxzi^&(J-B(2W29K@Kj-A1DVH`rTpG9K z&Lz)T|K6%Qt+RRfc7dzq%$obv{_ppFohd#uS>SPf>c*c{-ADBEcOA`*z4lHt;!pbX zgQ6C@uI5kCyuYdRK=}15y~4Wc{1&&r`>0)0*)vJ${p$Tk*(V)yo%ZQL``lGoJGqu* zgveNX&n-E|+PgU>*;uH&sW!^*ue3Oy-_KJAzumcX-rDqB0r$lIuEza&(YM4iuLtXI zC|D$2*OI;P@LGBCIEzyMpHfrX>fc8EnBrMxykhpw+NFApl^1sZJh9qBYS-^r|IYXS zdQ#4J-}%8be~!-AeWk0slug&%Z)@1kSCt_VyVUHP%&(1(zRNwc!rsr$+P<+>N9<^O z;SI)$H<Nkt-X2r?oYyeXJ9&?5dy4ZFT^Y8zKogV7TgPh8H{`4E%oFc1x*br$lwVx^ z_4`eimOuIFJKOS;#q(c(bKSJyVvo0<X8EpPZY;bCvYkDQENKRfci;Wg|1233#@?#m zq&V||L)AA;KF&{1_bBBQOwyTtY;se=J4vod-;3BMva;?zJo^jVQRX#r=Ig@jjBa|d zP1^9#`NCap_2fU1C54hMRx<r_`Plx-|HxkVXa0+pwVRwR{!RN<_U>!_!|N62=2!oF zHMNg(isYZ=#*<cA>Hes=w>Z|<MSIdohwH~34^EmRezjv;Nbr2E89xOkob2vX;a_F- zk9~5{hk%u(>37^^yQKoGif?f-pK5fTzGs`&4DW(~Cx(7~?*yI}M&;frYCpE={GY?y zuCv?<-;{Bu;PrHl!h>^EPF_7SQA*;c=37nv>1%dL=+t!wEQ{ao>wcagIp(?YAwGv| z-lr@BF8|P65_{`N(3*^FB~ythD-%9#dA@i3`St%EPcKsVeCO#ro912T59fVvjjz_+ z&TvRK#bCBm;l%?i8F2w-LgLJyCW%j(S$-@3)#{nY?S5r8KFJgeKd`<sZ*J*?PI;rx z9b0Pt^a?YEhkt$LA?hh+Udbr6%S7w#oDKE?y2o`Iu86i+{V&Kae;K>{wWr#IZMn{# zrW)<LR<+jYeTsf|&yIV6?u}<$oRU}a)fD%zp0x7%fBuNi-z)cj1?j7AWj5|Vd+$N) zd%trm4R#LA7LNkLLJdljU74=W*feX2*jkVJ)ndY(kp>@bE=*K;^wB)6_*ib3l6mdD zxeii$ZK5W`zc-rErth}qe#ybBoVnXqI%&yYHm&$zd*ykT>hi}gb*>#xyQ13RrN*;y zH|wh@#aubbc}EUzoS@5|s;xaiC~60@ilgq5>C68VHAPB#HcN;HS-UknpOGM|xcO65 zhuM^x<<d_NERvHju$Y_MT=ezDsi&v1?@i)VH#ov{e$QE#)srV}U$_3MCCl%*dJ}i} z^UP0rW}3Q6KdMtT!E(|od;3(i9=+G!yf)~}KE`d?{J(k4pZcuoTl2phttg3X^0;ly z|Eu<2czxrhM+feI2;G-h=eNLX`>M%4VF7>Mux_`CJv-x`74v$&nT%QmrPKYDJ2?8p z5@f^KT6_2X+VM?jn(a$X;ZsS!4cE@HXzbg2ElXtg;=0m}4_h*_?d~=n3`>8zn|)1v zOG;C;Sr~g*ruV6H9qZ#KPt!b@>1}GLHFwdBB8O8AbFJ1y*IrvFe6Qw6dyV>Y!P5_& z_|<m(x_WIvV9uPtUp=>TrXCk#oOX6*z~r_A?#HJnAIjx6;*^nAFPhz_wwtwWV&ZHM zxl0w^F=~E1R_-zpergXszB2y$>z?xc*$lV$G)^gdu_Qw7o>E{)S<;<P+xS=MDGOI; zaatMtXrI%)%QL&(!@B15KF_&6Tck9kFBvILYAZS|pHewR(uKe1mfqH#kD`uT+Z{P= z`lc)A)mMp3VV=4%k+Hh+AggYBj;zN<`QPsGweMWwtv`Bl+~v7(=}BZA({#CA2NFZe zSDz40mAr3rENrRLnyNpWl24s$+_HJKW0tDXL~WairBl|f|FKlZMq&28DMjy9euaP8 zENApX-1k$`&R^Dw?~eE|tSQjmoz^=0*2RdVFJ)dz4eTr4xEBkBeK2@YA<1{0<w<U{ z+>;H4LdzZh-@9MMcxRE<<F_W6Z<u|ws)Vi_x3DsQZlc596ujMFUCAMVRZEOA<%_1- zP3}(Q@Y(*ukL3wZ%8yIB%k^AVNeVXj|G3pCVYIioRkg37Fg8x8wDR#%TbAB}FTwSv ztg@a-d`jAtxV>HWRkL52j>>6c>phF)b}+hB2Yo4JUY}s~q~U`4zS4}p;`OyZ``;aP zb1}W-=q|gWf5-Emv*LOG<^6umwf#`}F2Aa^e`Nox|1|4<(bCPUG~PdAPA`}L_0heo z{+qS_`?!auyG=iYR6Z{Vo}&GCsln1yyS8Y|Z47mDRa{s+(I(&V!OS!3w+L)42+mv< zx$z)_yNZ=<;HTG}9;c>nQ54mWVfb<5>Eiq4_WtcLw`{+D|FdMh)b;t>CV#tiD15F$ z+Ix>HeNqeT9Q%1*AGZoLtGXC4N$gH1v)~HdP(}67y5Rp0{r(<PcQjE~FTAuWJv$&Z zc8|}h#_0kjQ|nEd95Y|KNL8E)nBx`wb*Zmt=8LD#9Ugz%_2reszF)^uul>}BoGK@$ z8!xx;b@tPZ!m~9DBDWdeH(ueU_~4i__ucL_JK9(dbS?D%rO!AaWPbRr_oWk0$;@Pb zePT*cvv8kF%H~tuJDx7Ae#f85y-?@gt@JNZJPVd6^zi+D5%GZORQ;(v4>!8IL_D(2 zGhX3%bK%YH{CacKl_nlnd78HGqkosRp>RXU35lcI${KD4)Ns#FZ^+wabdBS{MkQgh zOAq&?_V2hod8<@ucW&4o*Qsol*VGih8MOze%sL+6#-y_FRz&Y=rKz*b?@x7{o|xKp zXV(d<BUi<Q{M4BbFE)>L-P0@``D3=)?Gtw!nw-s_J<$Jur#fTGg^B7VTN1lxxf=DJ zIDYTc%Jm%|3R;ive_Hb{>Fl!Fh2CW%7XAt`E$^aEPLg5v`N{4WFlWz`n1(55&2lfy zs{0{QasF~q(eKNg4@=ZSZw8vac(lav`<eUu^gpF+PI*`MeS_4F4+n&IzyE9gKP><E zYzvNG&I{hZ-|?B%W&f_~2c7bFZ3}+8H%~G;*|_`B<5#baO|34M|9$=a-Mt^w*Kab~ zbLmvWJ)O&$Hz(^(bhS=>+7Oyo6Zrk1l8Riw;j;x-#QDk|F$4)r4g2O7@vqrBa!OiC zOWJYuP3ND*GMlfvbIbPc&Ff|Ff353Z#+T*FnfUl*`6scPhux=erY}hRkRcVUXY(O; z#X{ND{ffH^OCQ@8%4b|(_jma}+c)9cKf1kKS02uC>BX5(Tq0{XtUYb~mxqrpP0>Km zQZm9&E_`!n*oUHYeVzxceXCxble~T)yv)k?&h0IWOaDv$*}Nw0?DTZ4H`}-UnlLAH z`?uHc8Vl#%yf*io`jLwV=k_0nD1CnU*0keW5?5_eFWx#y|CaPSsXdcl8wIYHp4~6? z)Ya{h!s)UloAd7S8m(Uyz`W<-LRA;1yG3gX)c!2w?%u^?TXHt)-BA-Ktql9x%b!Hs zCU0*~+&edGUYbFCDu3V4{aa7we_<>u{yg)^het{B?+?Ao?KkZzn7(VWDdPsAEhcl# z5+t0rCf-yC{&>hk`*F-RrVVp=Bc|MGR^L#2uf9NP^WxNwg^M@e+|8B#ny*o6=cmxq z-?yeKsK>Qu?fRVY=!NC4?#JKM>QYoTOyA^`vSOQ~qssZno3k?PMOMbV)X|ypLA+=7 z+wE_s|F@aQBQC`r&V4HP{vDBU&eLp>95>2TK21_<=T+YPh`FCn*P{PE%Y8Q9|4GpT zzfSBqUw66w)Z+^?`wPA1?npenn*Y1S2Jsc23{%y28TImeZ4Q{PIiIQU_Tx*7|5n|P z{HeWkrq0bnCEf}T)4X0V+kcbS3Sco1iCcJtDc_21`u940eg9uOqBq1&ur2M{w?uqp z`0F5<LuZvO*gu|1cqkdR>&MaR3Mu`4y_ajc{Wcw1ULqv7)AT~CQSO=PujcHom}Si8 zUa5by+Ai#;i2V*tv(z8@a~uDK_I0f8Hu$4CyX7k5j@(&0mj7Mrpm4*id0%s0L}$Cg zyTbNTwq#H5qzN5j3mIc(oH#DylwH5EalJw2#>iW)FFDpZP14tBb$_ln?Yn{aSx%Q7 zofEd{_LlB#pR|CB&rJG`K#rbYj`7bM2in@B-<_P2yYTeI>pJej=S?j>s28y(eZI8r z*Lt}n<^^9j^RF<HSSgTO;P%zaG_gOtq;<Yc+BF9&7eA>k-f%~0E7musZ@3iv;cpbL z`&RtPvz~|V+om}OALyO1W^W4L6LRom({qt$XB*!8RD54DXAS3pW%H7a!xYNi{ndN_ zJZJLO8G9BS-gQgDwP)fMnTW!#55lI@IMp0jxR!55Lh6#_Ne}N?9@y=?Az4*NdHpLR zzvQw5XMJLvb-nfGDS7u@3{7vCkr$dgd*(;!hv99JRVS`*IkmNC)kBT)+Y4-7q|Vze zzoRHfVU1m{X6xLj@>NGZbq2iX^Jh47$0}jlsWmThCsYT#R%WS4I=Q_lOGq&^QSy@H z@Bhzq{3GRK-|m|1b8MGpeA7z(sZr}*9nW|f#r|*K|NH;uf7&#EubZ>Uzkr<D!;io1 zI=+vIZQ7pls6AZA#l&7WiN;>P^JM91m0eYxk&W|93iv<FI={liD(94GO^bV(o@n8Q z*aGH7A+c-ENqlRwwJDn$AF6I4S#x#eCGX{vret4Hx-#)Ya)Ra2S2mZOA8akUQnxkK z=;f+v-X(`ls~z?VWLspcy<dC%lE3}uu6>yDG$pp==<7>)AC_w{KM|5WB;oUgVbZs$ zh1nBY4(FWfWwGfw>VEOb`Gec<W~v#^n;kLPc4}v``2j~8)}0Qb6Vxj<PG0+|ciHsi z5--ecaxAS&*2T?z@WW%_)k&LVDnG^S63VMkV>qy#y?HX*nLQGDt954S@{3CT)v><Z z^ZT-|O=81O{e*=gYmSCkolIi6HkmEguzR+E<hHsCH~r4q{d|z@=BXvi_k?+RUBWNv z<!5KKZk`rDKk|mk{jCQ<C4|%pi{69rekzwEcQ6ZFpJ$qBziDs2>-5VS3KRF;|E7QG z@paW^v#jS2ZmexQva-3JZ<1wCc~6v0&Xr>?6>Oi2<pkI@ufLah=aoxU7<+f+M<sU8 z?u%O8C%f*mPj^ZE7JKFdo7-x0OYNG%A8)sRVejAB)n4y%CHE=Q>AeOovaC0sy5(%5 zm8`t+PRYq|r=zE~S*=NV`>iHUIcxcqExmfBU#q7DU#|UV{!jT((7l_j>1sjwA?dfa zye!$uTH+V^GW>mF+P5=D#1%7J5-KKM{%8N=^8PFRzgQFd<<l0QU*fx`a;bp!TD1UX z{lJxn3q+RJ1-lt)B(z?BsU7%bVP5?uub3UzT<5YpYBt`ugmt^3=547Z$K;&FjvU%p zx0*}l4|n*!bw{4Rt(JV?@z{RTwMJu(m90XzU!AZ&s#~<X_QEdBKT(-Nd{Vp4Fz~q9 zo(&f6eYNE3@`9fD`p-LGEHwMz{EQ2B7QnPAQ3-rk?Nf?`)ONbQnEo%PdeZY2i*1WM z?#Bn-J|1v;yMlf6*OQaKm<C*TX{|_I^(LFk>1W#U$=@f(KC#$v&qis%>@)52cGOL< zj+Kdhv6E-MDYqoUBK<qUpDbB+dkD<;*A-v>x72@^cxS|YW&u-ywAf##^R!aK**R68 zs0aPKx-~cGom=VT>0WvfpKfz_A5<u2bf|ix`ShAj%i}ftn&&6@7rx%;tEf{sCt>QP zDY}Vux18=w%AB+7jpwB9nKx<|Z<Q$UVlUlTcXW4U*T0V~J0=@5W+;2QE{#7fvF6Rn z0PQuox{R0J@GxyF^37W;DAqhNZboz4jz#=u78o7gZ{?Eow59TLO#AZ0lgku&^v?FD zI2+zLF(Kjc6xPtNz-K347>WnHj(<GUtv2g>ZT(Y4JGL*!-d)YFI<=$o3H$u4BP~m{ z*_s9He;S2!R_}Z?YyJh%zc%{fA(uJl*uHO1e|NX`?f;rsy@S)&Nfn>0`6B%N-Ms%w z&8E4YQP$TAFHa0}mz%gdeg6mTsl5wsaz^V-SzV%AK2KMFW~#u-NUIay|9{v!@$=d9 zdkmS}W%ltz)fpW+HUIkWckKW7=DBV;$bX<DahGRy#1B)8m!+EB#yoW%=3j3AxWJ$L z=*jG9tN%Vrc)dxML;2edJKg1#bDrD2w-c*89lP>jzx-U4-m}qls*6n?XR`2po15BH z_4ez&=Q?q0@^61vNH@%WId$ic!|D9loQoD(Nad>aeJbgew4J0oq3QZ=23MvPk3w}6 zu4qWtg~$I4{!}6QX_Ag7i^$?f?l=D)t^dDwxBvg|_Zuf$@oY<!=~-Q&9K-h2``+w) ze~&wox8;>s&U3c)ZkjS#di~eECz5l`Kffqo*yK?kut)FXA)WZSf4`*P)7drg@}tY? zf^j!ve4b3c;_ytUc8a{L6j$x7utl@0gxk0Lu2_C@vVBqIclZ70Ubi>qJ{MoLQQqgY z+aa|-p0PLA{+YtD@)mELgsuW3L-&z}T_LhdDkjHqM4q_t?()B*EOVwiFYVWv)BMM+ zr{HU_U;9^%=&Y;PP1aVdJ#%Wc%>mx0YPXx-r<E6}F<d)zW&Za+)n5w&EGOG_Y;1kC zCupa3Y+UTk#$Lx4-beo5iI-w*PP((fPwr1ob;FUil<ISzKYh`%yb(O3^r%JuAGU+r zE_&-TS1Uez|KfyU+e_(VHv0=^t>1T}QEtbECicy7^Q?XBR(-ZS&~>k|qyE8!#C_Ql z=Zl1It8CHS!+kS+dR*O;oO^vgUTy#7Ao%k3v65d`dhb@-`?-JLy=T6hk@V-Abq~)> zyuF`c_fPe^bGp;jYq#+mKYiUc#q*NK7qiaIe;Hm0De=FZl4B4&?-gew&+(H>=7KKk z$p2Hc{*O6lv%wx=d9~){_8XKmyoKDPK56GkZMc>mZRWiH`6m9gCNItzTs*C-W*MZO zCz<|9B-AVHiRR+SH>vsonvu7zriA?3<|yxIb6ok=O|!JpIdkRDsP|7$*Z;6mu*gEh zzS1SHbi;2MiLR#V_0~^sS4Ot}cy%pY%J-~c&+p>ab?fg`Z2Y{-RN+`%(}!Ed^Ean( zY1-}SU@JefBzWuW8~rtZ4UJ`e^W#J%txwNpseUjsP%u=<QRK~Z-oIB4Z_sT#a^Q36 z!~VKQm)`N$|DEd9cHwy4-lNlx*B$)%z`p+eyUMs(Tjy}SzIB>U@#);-vgRKSF`m2~ z&$0XE?cXJ*UVJi&VxK+NHmXzQQs#~6Ps`>V)!Nr#(WISo#LiUvRddUNZ?1cNY)bqt zG5ZG<$7jgCsF`+Cwt3^zcY2HSRdoJ+$e6NcX~7Xw{>hV4ndJVJ9Sq*CJ^9j&mfoOz zySf?0&R6cg&_64ff3jryrv<sI_I;~znscqF>CQ&3ea`2$z0K4Li$7H;x~?%bAu1$n zMrH!5X#PdPg46#G^2e-t&vfGQK_d^74JIbmGn3h_GJWD%&0PF=I_vg@FK;IJUY^;> zss2vYgXhAD1ceXUnM$b*Gx!`tG7W#Z?*DP&=`Pu43NkelzP5`^vgoZpnDQe3y{gBr z?RM3wyBR!pAAWkfzNGhX-t^!wzlcvddUKE8`R`X2?dQ!Qe)a2uh0z-tZ%fWnpF7Xt zZ?lomj)$ARu*<kdWt3Syjc@)hyd)<>>hs%sAM#|kalCjCU%{PkJ3Y1c9(Q7gwZHM9 zlj?iaWW#uV@Evmxzv1-EIpp=vuP0{ep6~Tr@$$!0_VP3P((P-cREv+ebz7;d`(%>M zkRP*iZ}sO^={*~svAs8VvG&pl!`fi4N5N^?2Lc1?4i)Mi|MH+G=1t*Ao<|oFKi^1E z+Z1@krS(hx%|(CSoLZv&$2|Ur(E0v)zGDY|{49S_Wh9W0l{sH#FW3H1ovWJNM~~N> zEUpkP|8Rm~lF4M*JDSPAc@FXYTW{+udCt2mA#dO7Z-@H$mG4ge_JK*5fqjX!rTT-? z>Iqi@{f>mGbF+psO<opvDl_ey=S%sDixY1@<4ivt6DzfH)4EgD(+#Fi`6;)DzjK4? zjpb{0$+kH<-#Fr~r_%iUz~kxV-(wzKo@ym>y4t{L5g)5urFXvik-Z%oUY@vC7AS0e zJK!VN*2L2@{zUwHv?RVziKADzEyA~~AY|)np$y%Bhn}w6zh=>%*Tqh3YcAWL&tyn0 z4oRN5dIQ(RvRTakShmN=F0m0YcC*^F<Wu@BW%->)PJLr?OG$4qOpMtjvFO;1UR{HS zx<;$Zte(2;T%w$LE2r2v`nx{MmPRiBx|Y)uH_mM|T)kz@qDWm!=4}U6WwmNAO2^My zBKZBoeElyTzggxKN!rv(w1z8-^gB)nv|jV->+`;fnAbkF%83u8|6e<MdAIn!qPd=j zo=%D0E7|uc^XRU!MbBSY{o28G(vRiOr3>4&d?I9jwu(g@a5GZK5sBQH`r&!te*b^G z?|)kV;8*_pGxw!hjZJR__gpI}pPy&$&)fgvQ-=A&l`R1(+GoZ0JhQJ0E12TxYq9q6 z#l#t2hx^azGz-q1XZBQOLC)zXsuQf%ZMd#1HmUAq(7cO9JPh@Vzb;(sP`=^!7D*Lr z^`*Z~gv6>ZJ@#{Y{;R5*l&OA?lM@cPd^5L7O?hy(E<FBW;HmoxYbV9Nbh};}$RT*r zeBJEmnH~k&7ZYwNH#S^PN!GXiS$g4RjgM%h_JxCgnBG?wFg?iKx%Tvug&jY<9=F~# zzxnGt_ZFFoKFi8y6T?J!|NH(r!M%T~pg_osKmK99=XWxzUF55{I&IB;y<@!*iHFT= zg5FGi?k6oPV&KGPW@i+>iLq2j=vnn5m)Xyh?LXShQ(MW|P@6XIm=w#`tUZjJD-WOa z*<s~tFRV8IfY;tBCl+enE_Z0(pKcfvkyCRsLVRLs^}>4nXUcn7?;gFkY}floF-sP` z;LFJ1QwToz>-Gjqo8m@aEA}XBRkq_fD_J*6H8k(ZKlEwC?5(-cn?6ropa1Yw;^dcq z+IIF7ZnyaGeXjoAZM*ODGe0bH(A@TDo9Su&ugwb=^f<FzDi`ekxbbM#qL*IRucvMh zp1yzAdavb4><9Pr-l|#e&TzCdZfU*5LFGM8kEJ*KdEr&w^=xwe<-0-q@0~xr?C|!h zH(o3icE7vy^b@zU4HE?~Dha9mikw>{@j-fiUG4V^>^~Ve&p(={`2VMZ;HM)WWjXxo zpKYyie)z_cPxO;c@zmB|Q=A@l@_c^wc@H1cp*uUb=wzj)O3a+}!Mk>A+|AIJva>HQ z->F)}7CXVd#^-z=`wzZfTR+uLn&G$3>MtkzhMfyeI7)rg;MnK+?~#V_gMXrHK3c7v z==Azq$*X)L|3#O?SGRmOylA#jVfnsE3+_DgTUa^6WPZ=G!=E`jv-6YKUpM3^uiE9P zH*IO%(h^CNsGAZm8;;vOa=&exccC|^+<2owOv?`i5x>h0@mKG29t`EZBwNw$&wnU- zUR!=l?aXriKjph$hwrJ^tt!1!wEk1R<woa2g7aMTM6d39v?cfIi;AC@w)2+8`Ttxf z7d~&><O5xIR<D0q8c_M+WB2a#d5;cTxj(oRcl`j9-z{Myy*u?~-yel%ve%`k*M@uy zTxW7m>GrGOm22Z)XVwL)ot*V+b_4$=Y35btHeZ6>woKeC{{CUYy4)ppK~su~4IO4> z?5e%JT;-{%&$rC~Y^UyR`|~~V@{Y6ak#k$~59)e<a@%8fHs{TicXj6!_Iy2bdbfG} zqgaU@hrV9jdzF9coJZT=2-uVx*W8P*`MmO-h<oeT*3XMun8Z`+A4G@F<(VRLiSxNF zmq~-oUj@mxN9r!S3I03a*JN#&&S3KHoqUk~=1<#}osL*rxq8nV2WHR18P0K;Aq72( z(-y64aO-{DuAa!NFy~47923QoySt}bmVDn^|Fco1<?$auF|jibLXThi;w&w{=Yy@u zx({EO7S8=RDe{Hdlla<_%pbCKUF998t%T<+S*gx&>F&%Gb0%ImQgwC4k*+0AwA-ht zb~8;|%A_^d!CG*a44e3?{Q8MZJ8DbIp9#%PwpwWGr{<*c|K9%-?E#CXta-9psruit zi#^ePs?wp{AC383zV9=?^K_T`%C^5>(tqyY%=CM*=Khn5ecW-+W&hNth5h?vJMVaI zjda-h&ezjt7s=?h@}(ujK5GkS7rQaf-NIDo!k0}8Gq$xx-&D1+;jYvc2wV19UN!Ie z*0VeL@0ol|xl%FFH>7&*E=^n3u4NOBna@&~u4_N@Kyl8!3=glwLrX6|5}tNcxw-bS zxc3hg&n12x>H&s+FY@2st9rV6_j9}dr+tbf{&*L=lpUAbwLssN_2kF-f6UKs&w4bi z=SSc3&Lrb!s=|p4y_@ATmY-eVZ_znv68GHPXV&qR+7BPK%Y2fT{JWQr!&3S~QQpmy zaTj-qP5oBCi)*vcnfQ`meL?Q<dBI1nepJ-%5sNf-4e$2%cl#+Szd!F6Yw5>A^OAm< z&26Vo)^k{MEqS88Ur@wk>+R>^maUPUaj9L49?s1WJpFv)`<*+gU%vh(>#J(}@XO;% zJbUfVZTS?QKF^55;N^n{{pVgitDmXx*ZWQSWWA!gQ)@h2_wtE1sUMg-gVUj>;n#WN zua+zssSj^isMS2yefPHFLz`roobZ;WmBH++_lxW2PJKObGv~n@_1l)sjLhPwtlR&3 zKikAD{WDy8ycCz%|9>jI`+Lp%rFV_zS5M9mjCmfH%i5X#Aake07X51{7uQ`}`eE{X zvohY$46CRT?{a1XZBD6`yV*a5+&2;W@YDbBj?$+cHHL>(^X0N4dsQWR*WW7)Qq(*o zmGrY!v+%HIw*22mVsmC};NAPuT=VmenLJAi8U@yG&pxYY`}Fm(>9WmcUuWtsoT&6W zL{nqmjU{Dl9K|0Dnxa)FewsMtMa1g+7f(m-&yW0^+xq-{b<X#dTi@Dm5*KDXerE}% zobAfmCo_Wtrrw^Mx`B7s0Z)xt398P^LYD88pL2WFB);-jHCAgMZGO1%h^g-u#t0VG ztxt7ABIFwQuB^M0vA=t<!s7?2AC$$a-d_9fm60&P^?k)f5&enX`(LU$-#gH|@bjh9 z4GF<3PT$^c_$heK|Au?t-$(BakNd}!`_8;9JpQj%?t%p8`O$eM{XHwX-h7)^Y;f#$ zW!SOk3ciAEU$@(T_p?^5{q#2Fz@*OFqT9Mfi}v|+7v9Wz`gB@*_3fv&(wBtfcYC@` zSnbO`?{140e`)!pceg#4>qNE4MC>g-eQ|Ae*b2>cQ?AGL*CuN5PZHWwQ5kc>*m<*c zrqd~gnURXO^M0lpv^3URRqoV&$aU}gtKC!O*mo(pHB{uCzkRLWqS~PL!jkpoE^TSs zs~=o6_IYwo$?ZQw{b#lQSv4k?=D%)SQyY2Rs&lbGsmIbC94DL<e9Cvf{%Phc-u>fR zy<LvkPYz*yi%PTmN8Z0X-8qxN$MnjzZ?ak*%n}91yp<$Mt>oWN4}R%>$Gz0-ZI=>n z)r?o();70hu=pmgIHsrce*M2gvn^TI*ZNiou}o2IyI&$u)1y_jWU`b<`cjhvB|HjU zt3Uoa*jJdjgy&r5j8{*N2PirBaP;p`_A{A(&iZmA)3obz=W=G;nOl5n+0Uhqm1U|n zJ`q-vJ#cw#InNTEhX=mZZks78758H?L*&Le&&!VGY(Kf&q)}eB;pgWG=W-aI?d3bG z_GQ{slMmDN1Z(Fkdb41O{>KlSk`t`&xc@CW|G!b4d#8q#OrP`*7VdY;YyQ8v{NL23 zSH75iiOan<CWoUT*IvcgXv8N9^Uq%-uCq_}x|g`wnWJ+J%H|%PUzXy>S1lCK${fY7 zv2peU&pS02we#n_X}pkfIf?rtcX`N^<zK^@m(65U;IVtTp_#+?$E9@@PfISo`*~$D z&lBBUTIaT`on3Kx2Ftm#(&1&{6<6MyMdzMc#o6@L=7+Q#qwl?(sSI7Q6IR`SQ2R%+ zqW@y2d*m+GeKC_)x2HNUOkB=)Z*Kke)t=G2JiLPD)Lp*ry*j2RK+kh|@9na%xs4Y2 z4|6_!TxA<@?#`}Yzqc(KC+^RG{BFXU*rh%Sr{8v7ySuagL1MJT+B%jH`_7u%B6{I^ zk5Ue`tk2DOw<~zc<h56?OS4P<I3fJNTqW+;W@*b3t<FDZr?W?#RsMhC(z$}O#t((& zKZr>?UN+zF_WL7mJ}ug8Hd%ekp0%E7!SxS9{J0~pMF*aJ<WixY#T3A{s5QVmI6L~j zmbZ~OyGZ&Mz5u>CWz%@3{QNZks_(C&PZwmrCoep3c_Ewfv`@!AUoT%@Kl^g<WVzQL z59L=#_(%j_7I;~)O!=zD<%As_i~EjUUU@6;l0a9ZT5NOi;i*nRCmV0nXIy#^b@YRb zjJ4F<drh1Mi`wNY6$E1bPRcZ^`n2zp%LQ`{qq#<gKQ}IXTFv}Wmw8gjf*U7f&Yb^h zyJIE;i)-PDbK76c{SqOs$sY99=EIap;tEggT$4hlX)?4r^xIWR&)RjX@WSa^6X#by zxOnzK{Fb0McQtmkhrAG(|E0F-`_A~EmSJ=J-wU5i7rEuU=yB6YKEr34bGJ_R|1`NT z_~YWHe@aRsQVti^I&Q7(tn^TiJ9sX3pZeVAYq(mqt<x1Yn1+Xb?b+c|aB*QvWt{5U z#>UhiODD6P^efutbGE%XpzP$H>$$eQbKY#&S=6llpYPK?Z+l^eS5Ac+<v*;g|6JZ2 zYE)bM)Kcr~1FgL0+I4}`&n?^P9qBh~gKlqRbNQ_qhYyq)u$wlwP7cfq_uQ5`S>xx5 zlhapTTexk>RA*;NmnqDqKLhyWPR5DIOgehGNIt+;^}quAyREg1y*%%Z8b68Ic5X$% zy^{))(kEYHx2RlbEBf@FcbtetUUO2^J?}*hu{lSgwM;#h|7-ELJ7RwC+`%6!UdIL; zF{wYTx?}I^g?;b#q;7h+#DPg*(`>KZB|_zs*UQ)a-CkMG@xiB~A=CWk&9e$?<CHzv zELvRxl6D?B)ROy2w(f~@WvFB8gP*;#-!$wHPTH&MUSuFu)^pcs_iSeMET)1x9AQU& z&K`ZfNHyTH<&{b6uQuMCIw!P4@Uh9U+57y$j$L}Rr}n|@gEo?T^Ovf$l>ct2-TQn^ z-DSgzE8f<;k@=*N5VE2z?Xg$;YX#Oj1tB>z*Tsb%XKvW$Z2hssibtVr&Azki(;iLe zK0Ke-cdpTIx#sEZJfD;o1yA@`$QfoM8(|c7)G*~D>z^#0vI^D9pQ7@`SWfzd-g!0W z!qg2LuCCm2M)|&+g%7iFlXLIv{GV|wrzeX}+g=vnwDa5knK2EEOSW_@J6XR{-s<$P zW4;wEVKugI|F4|?SClW-Hm>Mh#nc5~Z!B4V@c&e~KWC@prG%|n$2-|u)X+*Tf$bEZ zi_MIX*0wKfQTz9qeiTbhVV@~0Sa2tAEh9hMl+19q*NRNv+=7lVx3aX@MyvbGSj4u0 zIb8Hqn9*0pLb<a`K3|)6jXQ6{be@DqhfXto*mnNpcCJsn|I)Za4cBe(|9Q9cGHZ{r zP5#t1cjuj&zWqhXx;Ep?M1#)W+2JwU9%#<qay@NE;}J*pS(`pDa5G<h>D#;X?N`tL zXTEOpsZmc@O?KB)CgB8zzblm2Mn$jj(PViiGG9OP)A^GV{~jr0%ClGKj#hZ~^M7T^ z{#3WA)1)(b{l5yFYdY{L;gTr3&d;NENt+&ZyUR~GssDBIU5Oc?k{73KkylrmHk~Qm z$>m1uVjr$q=d;+3_3wPam6KBuaOHNtfvey;;}_R+nNH`vFFGXeu$9+xMpyq@&dc}S zFrWXhaO0kv2D@hOdv2)0ywQHc+bie#L|ZO%zg{%;dv2ck-ACURrp~Tg^Va*zoL|fH zSGzNHZ{e$+Rb_PN<SYi6^^;c?JTT=*G`_V&?^rYAmfVC)#`Fu9Bz76E@w>Kcjpx+W zZ2aB58&y(yHVGaMn(>im%cTy^1fl46C*qwR=$?F_Wxty5i_|5FExgy|PY60Eh4i~J zPix)al{=?xIkWJ>yO*{;-u5a$BAm@I^uB|-(7!L))8=bm4Xty`Q&Lwtn|?r4^;*OB z&X)OmE?Jy(x8f{(ni6Fd{BUjba#qKUYAnm%R9$%=Z2#E1Zl1>;R$;M~U%TUf^or;= z|JRp~{uw?0$!YtwDV8PYy5@4tkJg$RR<l^#<dMa+o_R}IuP3tp-)Nr5T=t>&b&vS| zX$t2rMB258XR)e8<{erZc0e=ybi%!bdL<t?cB#I0G5gjpm%3a@WOB^ZY^euJ1UgQ= zT6X(Gx6Og8jI-~#R2<Bk#bd;v(|_P_&EXY4{UWznIZfZQ<ly?U_%$|jx3ZrK3X46F zz^Ki?Wa+epqP}elz2;c)Z7P_<p%{LX!N|cc=vMA&ty-VVLeZEXW)`QdYP<>#O>^BM zZ_Od=@YHehoU#oIjbpugcNzFiGLhb{+it5rA?V_zvdV+%Z*5W&stmhInoI+AroLI6 zH{VTCUDG0R>00$Qb4x1yEZfo_`s{zseZtE;)sv%_U6glM@PdR_xp{&qlTNgpKa+QQ z!IhTAAD<SgBnKNA-21??bH@##d7e`aoN8(*-+OtB-;D0c@OiuJdMhrR6aM&gh3guJ z#UAQmVGcpFDtL_ZBeUN$nX7th$uI0OT=Qi+`<%*qMWQL{63vNeXU~|Pznip%b^R8j zS1Uq}EuHw%#HGIQ!K>`OfBI%Dy`R8ZFxR<mtEuO%%tZ?Nzt;CT3#DCrbw$?g<1LX3 zCyWvgv_;1qU>3h)?>w#bd#~*TbG_9vO6zX@xvAkl`OgLR*Mgo$Tfd%od#t?EoMYef z>dLQk&Y8^lX?@C3VX2(e$(W-q{kcU|&4)@E%uYJ~54J!3p#FIEzl$7e#G;nGuKKz) z|DD};Z=Qc^{%lWTv)!7^WdAvJdEu<JCG0=u+*=p8Nno2ym3aD+_JeGvH=TXF{Ku}S zzc&|}28D-}o}B7``n6SmXqNK2Rk5ts7OyvYaQ~q1@^v5gY%}KQ`!;FngR%xrBVn7c z=Rc=8Pu7hUYM8fYz58mj9O0H_Y^T-kEsN&(SFlYu{4Afrt#fZuj;_1Hzc=QucG2IK zoxi3#ewNgXzHhW8=2W14o3Z8Ads=UG`niAKO3rUTa_o@sGMA)$MyJyZQ#dCo`4(?E zR{tmXyJNL~*uiJ1FFVTI@4UCK?mV2=f4%q}``dWCKg%?FSFC<?#<}jv<z2q_w>D0W zdFeaH{rU^}rt6(;u`_3<msiv%zwi=Y9($_Wdy{jmUaiOZC6kISMT-4=k~e)mm&<Vj zg*`P)r?^B*Sa@#heA#;c%W;7t?CajVsp?|?!<NtVCD5j_O~19M?QX>V^o5)CJ{4(m z^VY6OFK66StMI?P#CCzae!I+?CF{<8h^UaWY-=ogQQ15B(Jplh#+w`Ke%=&ZzUsC@ za)yMD-=yV-FC1VqS2?*yA=A|4mPfwqRKa5pbXPvJXPJ04`fp<A!PHd2mPgkQPP*A* zmNs|OrBvn#_rd}<Jy`tDw(!D<w=>k@zv?lR3iHcX9e#aLN#J~JO7_+7Tsq-jP9}SH z*G!&V9-u2;zw`OEUahLmC4Jt7j8Ap6KPRTYZCKc6R?NQcgZ8_#zpuS>{(q=;kNQKI z3#*o|VG>ys(~-Za^jBRRU&%wq`JT%jPh9MiC>G1Jom)~|I?pQcQj@CkVXX`A9yR;F zv-?_{^Lzb4`zw=s_8(vS;Yj}bb^HE(dAD-^Z|>dN>+6bN8nx_PTig@%kuS>FVQJ5k ze7RHI`u#cHw+**he3d_`tX$#ydWn($dXu;xg6r0WdbK>}IXX?U#z;d+Ibe!qz2ss> z#T$<Lv!wp$e0G|;&+5gcER$mCa_bAnbatIN+wt;qR^;mqY{w=oykb+<HgDqMHDwPw z>sX(2ou700C8zhciM~(5cZn{0qFF4|vZGWx_TWVCq%RwIm&Sf|Sy*}ZaDq&ofW`SB ze*ebbDSgeUQwwigRZY^i-zpH`Rw|(OQ|9+k_SauG&(t~EH#;um-@X6hdhhRjZREbF z{<Jyoozx4Xh3Zl}UoEa>U=Nur`h(RWW=^5-l>aS<gX0t|C93+4SzR@geNfcx`FD+Z z!JoOiE85D-zOZOI<fU44tXjNBv@0(7*tXwy<|&4%PQF(=vr_upGjG15n-0lx_U>4z zeQMLMTtoA9N5uaZER|ci_y+HuyM-r~T-}r4URk~1$+zA^pThrGMRzWdR}HC>{;)sA zIjm+4v$93>CC|d#qVoE(Exi%pHM1Jpu20P?&01jgs_@#=dlKxo>^kiPC%k=AB6Vx& zT=zG{lI=W2>+KI2W=MC~&paNsYvZ1|e=ltnYcp#zS|?LdoDg3Bv#4-uD*Lk4j`2Ae z9`h@d&N@B*|E~V!r+53l-|9Fh;ve_R#bx!TOw-Qerh9j*n*MlqP&xh77AcR{46}A~ zN51r6l0SXUF<_&X!av@3u5~}n<L}mfQGb^ncJ{C3<!Rcs>-Uuve_wlk@7CWZ_Ww#a zWp*Y?f2OY|?}<IjgtyK6Q@YbPd8?M5&4(X)xBuPw&A<P|8z#?)yxTh*9`pQLUz`2C zHU4*bMdmr<qtY|<!UJ@si>&)O*S_VPLWH&6r>3-<u8TU;7j3bceo^^GsQaf!;<+C# z-%L}wZE?cI#9~TiP34OCi#v-aT{Zb8W6>f1OI-fO-TxZahAqZ7I{bh1^k?mqQhO6G zyv1Hl^V!s2>wZZ@DsoS)+!nkoW|QzD+vI%@wcbBmzwe(Ud#r7`LgvfJ%B6l&IpcVD zEcI?NUH`;cN#du_+_&8&Yn0`koh84lxcX*K)HTP)!S>(R-B=&<ch$nx*_Y=YNpaYi z@OVw@uZhY>K0D`sUG*e*&%SS8-o=$|-1pHxo;z1f`EFS=^Q+zVWp&>V2tO}BZ&#`- zT>Ub6_lunsqQ|G4FH3ro=V$luuJLo*e=j0_MXcL(BmMKKg!v~!d~eKUak0;}__^x! z-uL^`zh9hRBfg8_S$bBP;+6CJ*LB}fR$t3@_Ym*D60?A1_c#1K&F;1|^rv6;75k(e z8Rl2di~aLzD4o;QGkLnnx7Y9ZnAR8gx4x_{VskV$IbSwkcZI4ML;e>o|6tcC_I6KY zq8;4cY`EN1z@+!v_V#XDV~OSM2Uj~U=2~kL6U#Y4%zK+(^@bD0e~<Y#-D`XLaNkwU zEEn@rR)^eOETvw~m*>({J{C~)Vrh@Ln@G*i>7Gl^-V)4uvFXsx+^1aj_t$Mt{JJXk zTjul&_a5}-p5hkgxwqk*qxtv$sn<6AI2^O#CtJqm6J<*|_$HldireJ)U92;8vU7qO zkH3Il=l(~o6Sqq<oz}5=x%Re!OpWB#|L>+QuXK83?Y>*xu2g@$>(lP^luv84g|~dr zjoX!OSDyO)L%ZI)dxwuV&HK6LJoDoxGp(jf?D6iHEE-*I<=L#(`=~|V?#GdL?RD?o zrwApSx*&Q^X~mLK-Fx#s{jYuZGrs<Dw8!SSsdsgFJ{4cMC4MI9!h%P}+h)iW1UzXj zW|EvcM<-B!UWfU~Ss!iLt_3r!$=JJgvXyfI->#Dm>W-bK#4`5jzkg|;QER&8+tU_3 z`T1VYWmZjCEAZmF<d+|Amlsa{{-Ix2u+(%#p;5z|&niNhPaT_baw6|L*J#Vn<=b)R z2UA#t+rPujedf*k3g3k8Os{lZ(_FkSjbl}5ao^f1_NFzrEJdQvJh)JjXYV~bRGWFy z_O_?{OK<=3<(keD_3NPOdFBAUho|%l)a9-`RlZ+a_g(A#@BP14r8)~1I>pbrV{|a= zUE=qrf9oG!diQz%FQLh&^a7>^JP?`Z_<HYMI~M!f9tEd`Ra1TbR^5KOY&%P13hUb) z(+{qHbkB&#?#s!x=Gl|=a{SBt%o$(lxUb{9E&j|?dY_!+&PE{@`_I$rgsV>+e0DAV zp5^~XN3Q)_$EjU8dG^J{m0r&k;+}TJbYC^m|MaD4_Q|+Qskds_EVnB){!9y2S2wTy zQW88bQOW<#mC6#4WgTnfmo)L`sR<wQZ`l0YR<e(4o}Zf8!v|@u-_BQU4a_jno-=FB zGTB)N^J5YtPo7E<$kBdu^w*mkTngt8S>{~fx2w$i9{c~!Q;AZQ@=sygOLw@6J!?Ml zvo-hdqGKCt<owO;D*a}3ul{#xYuDp1XMzsN8Z_laUQ{@|=gcaV9ft}mBb?o5F*?+I zDDsLHT-4)#qwUT8dsF4&f3Gz!d;eGByT*Z)2N`*Ou+Qi7{@?%q;p#mCEqt0PXWjp4 z?&tMS{1f(AC2Bjf-&?&+cmF%z{8s*S|3bxW{nPyz*K%vuv;U9(6*<qie%Gm^T*23N zq=kPCIdExGOKW<9YsjYh!%KopmtIu=X(0An$w0@+%FNG2>T;i@E06Cg+rkOQ-|dof z@7u9(B7f%1jW<3C<n4Lc+ZArj@I>NTWGHi7&5_1s6`BhoTKY4O&;9fFrO-T%K=qwQ z>zr17d7{`FW)dSS;<m53V{-E2O#cVr(gEQwXN7I!tnQbM;L0h{m>7N0_3D?Kmoj#T zaKF&MQ>`}tSMBSgQW@I%YLj|&Ty1|GvE4m=U)kKbOLw*J|D~grv((;W^7Vi`z1e?q z7X02dbDLsZXLGviBJ0G*Cs*@$Y+4hdQ<|}Nn$SY=qYe>1vwHr%<UMmj#GA#Gw`1jg zmFYbXI`8}4dmd5o=YzhDkY&?!KHc<-F6Lk5le$lx%t({GxcaI-%Zs=3gOB+N<^Pas zoM|@EXyV5uvfp);FaOQGeQ4VISP45rYld@w_<3BFXL{XXiF7%tP_sJh-FZXK4;K~I zzIT)R$s8$@kt*mO5jHdQ_2<=fN2VT8VcV>q^xE(3y_$a+-#hnzI`D3%{ho6@_p4JS z3^bE|oaQ<%S<dY1n{H^4d{Ifil|%aIJJVAyUAU^+S64J-Z?$@9Fl8I7^3=Qh+jn|| zGa9{6Tv6$~P<Bo8)?QP-DX%N@X6O2UTo#z~)n%Q@p16kxc3S<q`@iw}`b|XzOCP*z z@4c6M%%sjrZ2ydJNB_58|NiL8N-JHfDa?Lzmpesh-aEbT!-L=D^Z&fwzhmd~{ge7x zx5=z-SikR=F5Cb459j^AJf-W9qUS-Ab@S{$iHE1WUN9lQ*t$fi{iI?=lFIJTJlkJ7 zd$c9q@4WV{Nb&A9w`DTXaX~3-v+u`h%wO8KqwV*KnWnZYnssK|_HZ<8+G|^)?Nzqx zMN@rOEaz+2*!8=k18@6!mt@4|-saryRiw9rF-bX##n;mO&ee>tnG)8AtKJ-bFZqU( z^WYzi)pZBD6HiK3F2BpV(v6#~e(r*Q%l%?K<UUnqMm`8pw(5^#_E8j+JoZS)tm^62 z=sz5){6ZT_-}Ui*J*7C)XGQ#<SD;g1c7}D%UY)u`Z>E59L|vhFfsS6x-ABR4);;OZ z`mL7mfN$SBhTh<{QyA+)MHzoP&e~%3oUd`$JgeHes}C>aecqkGGG(H<2-lSTyF<RP z&ivyW>G+0k%65e<XMNutdNq+h{@&hyI!Ef~Ij@hNUF18#=Gk1)YyYRd`X4O*B4uOA z#XprXm;0*=44y9M$$0<dP4?UQn{NN)vnXHmJ6+Z+_J;lIs(=44=O+jAeY<DBInZA; zdyip7&hp>uB>riMSn*_T<E@Hl>*tMjV19d~I6jB7AgD0=J6rU<d;QlliuHRBw5|D) zDP{fYl0bdavwf)&F%Oq*Wd63jbe)0P;%9|vSJ{0I@1OBx*1h|D2YxR#2~!VMu~?wD z@Wnj0``fjA>>oXtxA~FOl7n+)+2ebdYQ9_ucad6uD(IhSq4t8g?xhXVQbyicYd<V8 z-1L{z`q{bPZTsgxyZi6;f%zOlxp$AK=l{C*`Tg`id(LgE*S0F1>l|X+ky3u7OTsKD z+do^)<f)+%d*N&8HunFLDqGe6-Q9L(w_sbz<MgdfeA6y#9ryhe<Z<oaqgBpxewgMm zho6i&nP9*n_d#Uggr@zy9NQ*;4?n*{JSm6uZdB3>o&7V!Ha^W>zwS<n*x#bV?Tm{r zZ;gL{^?h!I;{W|D-+JCYn9C5o&D6rNOXKUFUsCx(Z>l!`y)`Xo;WXD*c3Oh&^Jf_> zDCgp0sSRKF<6mf+Rs024xjj=Y_w<>iPwY!SVAHky^kwPew@Srycjhk1D3wzEs`yC! zQ(s%)=hX&+x3%Kxw&nitiJpGL?)8cA?9cmOxL$tu;_<TBlB_+aY&|rabGv*tup2#1 zO27K>gWA`<HeWygk^lT@{^Pvn#eI5WQx>e=wB`Q-yOr0OrcK|p>`b#Zf1O|0^9zp{ z^)jE?nq0X!H|CT?o^tw`Z+<(<rQaNR!|;Z?F1S<p$a?Y5A1=wn7YTJA(8!(gCsV`m z>MDaxeM=5LSJioWqdPKIb;73$cT5e^yCNC=l>V95e?NP7vVBeA_ea;)U$<oDEt?#7 zSM}K1j0csxFEUII7(Ex#SgW_{ns@z~(@~j||1JIhc59+o<fq!*+7D88mpJi1xB0Vk z)|NYOuB4~sFn=p_d;jz0lC8;Gc{bk?f8ftyd*;^$ZiT`>M+KLA-=90_THjH-P|FMJ z{G41WW%ZjMH8?PLCojnRegCKBf9E~6b9YTEe)@ms{?DIlbe8k~S=sGb#xr4e*T%~^ z83}$e?Vk@m@SivB);IrGyELb3X79{2S?GJOF(E(usoBqP{unD|mQ#LP`A%u=@e%ke zD`QgsssB$zU*9Kp&(F!VulHz8`rjmxVSez3(ymR{ix0IMJ-hB`y^SO0u91hVfS7Tv zR{jc=teJ8aKSJy{zZ}?es-`<zVv5E_2@fBqf7~};*Bn2*=V<B9Rj=RwJDV=ev9ekF z=f|!4s`m+4o~Z7)@X0Ig<960mNd<B5w(A_3JB#wSPFujq68i6~erb5&{#noYPVm@F zN)esKxSnrmXxviWwvLq_e0W%v&kd=1D7xvd&#UegML{YH_MV*Wv;PbKF9VOyQ>{up z<;!oIyS(xVUU2Tu!_b*I9XjGqqSHL3Ycd^n|LI6y&}Sk2Wcp>Zyo!E(S^KvpH7-lf z%wga;{lZ`6ImfK42R^M(*kkiU!rbM>RM`i|?i({-uvl3var1fVqkQ#xr#mNSGX$J8 z40)Boru+KUv*?gL`im9>nJQUp_b%=!TC?!ctvToVEZ9G2?J5x8#*>p_@!mC+yF`%L zWTtG(_4(iTewKUW)L*y8!*<Tu>$l(9G&n0cY|ozS@#O22eGk`fXFKfU_+SlNg1ZZI z^me@~>36uw5{@2Tr2n;|UnMX1s*kv{dJg;B#}4QEHZSElH%a^8lfBkD@`8Ih*S(s4 zD0j*W+fANQqQO}Qd{-@JJs~d7YxUxV>nC@+r<s+K-vf6XFt16SQ~l50zW>)u3m%SR zyp4jFOP=ojRR1cxzVZ2={Ws@|YO1JiJ(;Im&gPw~{BqgP&HfjrGu+=aYY(5!OHUme z>!Y%})l2psWbc~1qhyuELxV%l?VB4F42v1({Ns=l`~N^}V}ocEW8tEjo0m#ft$WvU z|J!ZBw#Ztw^P2w`?PK14g<s2cpKOs#Wk5@w_vDR|KP@x7s$O&)|K^hOcWz48?mKf2 z^=eOEczv3d{Dwt+L319Ys`IC9J$t|FWX(s7n6H~`j-Hq1^8GHq&+k;vxrPZv-fCM} zPpxe^IAufbW^M)R=zClRTW2*NI>j5sCeoYkD;KN~<MI9Sou%=QA3qIa_nLA4O_YXn zoYjNZfw8ZB%5_#xH7`jNTG(f9ykcT}-s833r#U=1a{umxFX5j)#oy<wPSN82C+K{m z<nc>>u6aiNo(or3zW*g~_O8ie{@M?R-p#asuzCN(%@R!x7OlGaLb~z4r|Sh*u5VuZ zEP9Sb)=`VZuRK<Q{0F*}=50^iGEq5i``wG4GIcK&Nd0r^;fszeU$Sp?gL)d%hsOOC zGao<NUcSEQ)Ss)%=PnG&j#|u?c{Eb@%LM-V7joMk+rG`Rn%Wsy9e*zO*CEbD(~Yz; z?tiZpuju5Nmcx8uQHJaJ{})5&@!!wSJjx)t+~&f(9}B(jgs*=7UG(c4`M6%4`{uDV z4qXm=Obq7L|KHecDzJO<ft-WYRq_AT=S;aSah7?X<;KS!|G)VeJZIVSrIw~lD~x21 zti5}A|NHVSM_INXZICN}*l4`_du@!=q9r?-K9n8Y9AB~eleSpVBB`TK78Jdlc-iu9 z&f+b>1p-x%e@gEb-*;(q*=ZGCwrzWDUo!4vpEsd#*XRE4r!Je9tuJ)4>b+eQ<n?Ju zdG+@X?e7y^A9OcGS$4$zxtzV*eC6y9ok2^!EjhiSo%6i$POH*qhNm9o=WY8t+r2{5 zTm8-3ci+~gm&gD3Z9l*I-!<1)n^IkCKYf4Fe}{dc<i_BIIV)e}|I^#8^Z11S)t;6) z^Ak3GdZGT#R^X+u+WESFy*E-)8g3>XI$E>md9uwEIa}?gw_a~AyZ=-8)w0|a)l~UU z-`;&X{QT3AmN{2K|F0F_asE%}Yc_|jMD3&E7v`Mb{Hj}g#`=$(H?Hrujn8^rG^uC7 zwGSWK^`0<?Z_?Sfe8ue5GF7XuCU`Dj+2X3?qg?*}=L^<X$Mlv3rGEP}ech3JQIRvJ zO5NQi_xs7yJz2YXw!fH{+Hhj^_T%SRws&2!Ke_VP<vppZUaeKzbpMa-e7TpqL^#Fs zV$RLG|5onz!P5>2lh_W~rfl0Y|7UZF;)lcoi|m%a?I?e^@AB^Qz5nIZj((F}dR_4Q z=Jjj-ME_p0rLQgauANK$<F(C~pPw^k+~K!-r{CQ#k_{UYH>7Tw+spTe-=?gry#5w% z(A}=ZGMAUz2IneFmQtC!DB?8VO6hqvA6TQbn_qmm6u$nm<J?uVS;Oajb&lNsd$D+> zl4C3D#@z=S{>aoGxEh`vu;uRbvyIJ@-_*|Eapbbt6P>E?n|8malm_pLVEDal@zp!` zY)@Xcdo}aq<apb|wtuUy+Mj$e`~Mf-caIP6nOl2n@qCMG%LC2N+qv3zH24$+U+8qb z*IMm=IZw}Jt>3NK<@x`<O<z^db>`2F>n4Ymwx26F5pkPE;6dK^Yu(#_2nd=yS$}F~ z%G)6Jzkk1F_J8D?9K5^EWaXrH&sM7zD8+2s6jYpY+^f&>is{805pCxrwjEw9nt%8D z=Zz+Za<ao)mp|s8opmEK=faaKFLxH7QM!5V`9+EC`;V5gy;pADxnILy>gvqTH4~oR zGJTS0o7G}?bzKWfUcBfXlkktF@_i;BRx7T|H|g!!6g)%SIq2b~hpRpx;I_Zc);|5n zvA>mtQQgJuiSO#UJc}Oe@y)Y){F<wkMV_^UH8t|gx%MBGE&}n-A4hz$JRW^vPkQ<6 z+Iv&{wQIX_efuS3DkrQC@z^CQD9Q6~`T1X8?bwv1bCorZhaPEVe_B6{x#Q0AGhr&r z|5lzn|Cs0BazFc3T+-K>CTSnOxUKf$j}83nf9L)CTR;8Sf8MaAvHl0TH)Xszaq6M} zz1n@8=2pu$zY$daq2dxHu%`Es#Ga&W`_1w?8S{@cF0`=U8TEaVr$MjLrw2iA)fC+& z)m|trS5aqLQ+rcLNB78K)sx<in|CkJYxuNc>NZ)ILQd63t$UWMi`iH<cUOI6nz^T> zd()IB7epO0r<K(14Xll3W>!=RSiztrG3Q;+WRs$1e)sLqt=}X({`>4gTfq$>%Q%Ka zu`Bx;8jAK6=5<G<a&?J1-L|Zrxb1zScWgqNuK4%jQ$N>n$6lFbm+(mKz^VMQif0GR zEJ}hEmcQT0UiK_`v+x3)Ii;bsLV~P6y5$nJ1GenABA9uSdG$Nx)9ST8uibx4*`2j^ zu?t^Aooh(?-d#!O+`CpVpRM6iuYCN-efJf0{RS@4H#gp{IA6i<_;Q_{U9^1d!MzvT z!~8Yv|4vHvk*J%=@^N3?X5qhQmDk<7=%DbSqEqALj_xlSUR;8i{d1(}tlB>5R{J%T z-uJvaf+z0@R%@N-zIk$br~i!Amuwhk{)+$q`TO7LGk(->vWnnkmF{|d>iV`-O42!Z z5_(oy*{L%hN-MbbV|DY<GLw@3Gd5;>#$8T(a(|nl+N98|cg0Mdav$;^Z{2t+!lp9Y z`I~xd$w7aIJ4ZKvP}k%=cw$~t!NVoO%YqHp`<ZQ0z1{Pb?}@<qFe%PuOCOhMUi#6% zcW05Q?XRg#Y4skTgv6A}bU%4pud7qrWUH?5_SPqs^*`p_`g<V0KI8k=|F3&%xJssG zn@l)%;O$)PBjxow<}KbPy!+1u_Fug9{w$y8>U;lgEt+cnyY^fDe;+kQ?img(hJqir z@otZ}v(0p}RY||^mxPc7O;=sI&RvSOUJ|`N&3wwUos}o{?)0pC;C9;6o|*ZrioWtf zyV6V9&63R%AICqFQ}KBoGvk1B;HSRRwjIt4#}lrXu1<C|df+i-k1$8`Btf1>b-Y1l zk{6PmyL4vj?RpflDaV^Ndxb~y1<g$N13Las(-~(MX}IK1J*g_3-}yIO&)#r~VEnaJ z&!&}Eu$xwL=s7(6cjS7n{+lm5xp(*fS^A$xB7Rbe=${ki^KaY!f0}K|x!{8Ha-X{G zKYTuh|NmIO@%MxN__VKe%Kd+L#^zS9u}e9B`;(FX&93RcIb4^mF8X;+Qo2c#xilb{ zJyrc?WuCl!{G$>j#>u&Xr;?4*Du3Bc(D6!`+$s0(m2|Vt!DEb@b#J7tZTDa=n-<O) zeST)o68|e|t1nOOZC;g^5OlAzHl>?A`SMeHJ+pKbr?1+k+Z@#R^LF!Hl&vY(Tl$4_ z+QaqvoX^F0Uw-@R_ow7p=9ZO)ik7F2a4y{cbNau_`TtV{-hcAGdLecm=hg3L`nH9) zpEEgP6e8`c6{o_q`qS-8LgL3w^vnddZ|q$zdUKMB=~^a3zVuGBTdL|2rJVXto_8nQ zjnuuYU#4(LVB%!fnxv((la!@@vAF5YTHPGXTDZjAr2g1jmd&3NjypE5>FnZh4*0t* zM|z3O=UK7>(j2><n!l{RWDv26dwb37=>?Th4rX(r&%F4&qyNv-n-z;zJYG|_WMj;- ziT0nbMDOnZEB$@(_CKqYIoI0!Y5dQV&$;K*tFL$4|39rRKL0=1{`u~|=^ym_PHArM zJ)H1(&-4E`<JY+VWz*i*RM2+S_Nj)(M6cDcbDV<gKku#Ercr<Ck*aLH`~sc@nttpF z8^!)8@J#;jaMD4pUpMB-ZmK`BdW+Y4117njE+H4a|9G9bTA{|{n^W^Udc|y`$PETM zeRE|V&5?ZR=yB(SgJ9{G<$l`lm#DEHO*^T#>s0u@FLTUTVsAYPFwakq_*3M6n{nEq zvnd)yt9m<TZo6F5wf}n2#rVG+QRct?9h0nkuu(p+@y#BaFR{<d^=tRaZ&%UXZhOn_ z%Ewo)&%c%X`=mAJ|Nc*FtIBKHM7SBIYl{~rMXv}i3l^KYCuR0>o^^9mC!alT(k8;b zP0XlZ(}5cgw7kPh-a4CXe;KA^qG?=tB5qdi{tvsJO$t3UbB-(LXGTY>2Vxo%cWto~ z&23;Z(=)rV;jqf@M1_A>wCap|!p(#V5_R_a@?{?0I`L)tENRV$QB(6InBHD*J$>(@ zeN}hMKa;;(f8JGlFZlk{h0dL<8+drLz5Yf7zRX;^;jol<j>8YOwF&n<o_FoMaC%2g z$l2<jR`-MTw;h{0bMwNDM!{{*J9<)Yb8h9{DW34+nb>Y&hM(uZ6&otXDn3>SG~Zsk z{;7d?X-1jHBHnsln|`a*Z(21$T%IvcpPH_Ga&-S<?cc#$1jApczEIV+%E*y0s|Y_* z`EL4|b-I4#nkV}!Pu+f{a)(FjozaYGejg(Ct>W<ZKcBbfhq`&0{QvE85AOb6Kjqtr zZ*nUu&nLP+sr$M;?*88c{<d3wZ>)d+e$&%EvVXRp34L@fFYMp-^)}M`*yk&^xpp;d zI>Xn+{^(L=h-5_hu0xvto}Il~5%y2zPSNk%yTn6X>K{kBdbC}2ELu46#D4kgi_2<` z?VE6cvtilZ9$&k+M??ebUAFIPZuCEOJ42;;U1|0c+p`B!_blXfI$qo%x~Ej3^l*xI zl4Pprs<lQxo_Y%Nmp_vE5OX!_HDA|G+tj)#{KAh9uI^bT^T(&?6GvZ>OKDKz>4r@o zir1Pn7iCT}WqkGJXo9qQ&BK4k%ld16sITb1yu01LBJVrf_iLZU_Mf>o@nX|rvFXL) z@po)LP3+$D_I>E5Q`WNQE}vU-xc79!BR|2(so@)Mo;Bn@%pLRk=8qS<PDsz2+bF@T z`JnRl;WDMhZ%>s{ZGD9vd7X%M7p`x&%9m|(xx0e5#IW&p^&O_I4?d+iKK-CQ`_AuI z$-6yndZb7{+J671arlGF+n6`!zl>#5cP*S-`SQ=~U*>1)PDZO&{%?89A2=~|*%YgL zVsrlP`ulj#-YX{e)f26IXZ=lS?pB<e8_%1XeSf+AI+OV~?!GNAynA<M$G2pLFJeCz zZ!%qH9XhS;!TSp*8Iq5DOWF~X6nb^%Yx$(~oP1{AQzy)g5^I$ooz<5TJ(P1;Rda<z ztkkIw6Y>r#P19O1Cz4~|DyB`1w>-Y++n<@f@s~rKi=K?&$^Rd=eq6#hRsP)Eu%JDB z8;!nQ_;My#kJrEI@FIEMQ1iL&BD@XUIfn~M4*vhOyi!i$uib&$!jGS@-ubjVL&$Dd z(QIb#|6IL4KOQ=H^+@4bpGDC>^lty1|8sui&*EG6Pu@M%uaYd>qI_x-i@IKAR$SAM z)@`+)#eFKK+-;O@sOfIKsOo=VNqEsZ$J`w<pUuBsKC)UT_2Q08k;^|`Jvg6r+r){V zwG(2V9hlL+HcTqCWViLr1G~;Fp77<faKeqEPv(0*uD%=K{&4d`%X6o9l!qjpZYlkg zY4bVY?fFi=$`|_=%si(5eeuNP8UMAInKGt$-`Xa4nLV#$ad%1NO-1GQ(6jwAJ{fzA zYXV>2mH&D2E_>Y@`v)I)d++}IecsW$yuuTgJc}Rm#~#0{RsV*4{&TSdvt`P*=xSAb zo@`{ItDdvxg~#S|KJ95=c>Dd%Z&0z1E!Z&O<5uCfrH`teCQQA!<52H5nU9Ze*_VIR z`OB`Z+H1b%)sm01%r;H1yvez0BIA;`47qaM^Np=u$J+&~Kh}1tsb5yix$_}&?dtXG zE=JqTv2d1_{9Pf+`cvNWm(_=s)N~_O%{33tYQNR}#^n(4<&Zt&yC-iLA|%83#KZk6 zQ+j4DG2UstH{@vO(oEN+!-=kkYFk3g9P;CD-sri`nNs<98(V?}&$|cx6McS3JQpyr zx$V36Y0B{jSv%j&&0ctxC4cuObw$re-Hlp1=b1|!+Rz(yP5xQ3L;U~!_iybz6D(NS z$R>H}OjPpw(BK{Yb%|APoMsgrj}+U=9V8H*KY4CbK%Cx*lr!hu74Dkt{`f5I>*lHE ziM1c{_dNZ(J$SeMudm@{={Axw71t-TPhyk5!~ge3eT>retusXeokLS%mdeN0mVW=Z z|4;nE>>0eb``#ZE5b~VkZFIFT<91P7<!{G#jn_}k_;Kmfs!K(_J05X)l!W;5Z#~}6 z<jN9vxn;hNc3j}A&WbB7%eRT>W-_-vmA-E?yCD1fgUR0u9{sm^x;Ng|d%EZ}tM;Nz zSB%{C587TnaZ2~3E~8v}Zup4}xuM5q?b|A_?Nr_;V*}$w#`1nDyUt7%zO6bh{d(lm zrEi(a1?A>_njmj8r@_*|!eOuPv<V9?`fp$=cYpfVzAEwi*ZXzGso~q_X{_EnZ&H1D z&1vWIw_9f=gtuM`jl21F;g8V&&$h0%3H&tk&TsJok=cBfyiD>p-gKmXZ~ith*0hZ2 z%xOu!lT|mi?t62y<n77*PedKowz%$Pnc%-~ukV(yi><e=yD3eZs`vEeceQO_ru}U0 zkAHIH|I@qA>)-BVe)YgrLp<W-+4)wj##`o{+^{b%efyLnFYVTF3m*4W&@r|<^y<#) z4-H+3hHdToO{ab?ynK!E>8%~A5mj|3^i!R993m>utuA@pJCS?o)c){V-^3zbf1B50 zHCMOWZ<d`aQoc!zVWnu#thF0V4m0;{gPjGykiCYtpj55F<jCI#@u4#%*SRHH#qC{o zt?T*C8n#`LQ;#fqvO3kYj-%nsw~6sWS2{{f7pwEyMM^%3uSnQl-Lm$``r28?6L&FQ zd1!Hq<+kt4t74V0PnY_v4Y*!(H)#LD(zFGd6>GCxB%fxrMYpH!`W!4?cPd8KHQn=D zp7N~wZy)H_e41$>&TqCd{1{u!Y}So_ZQF0}=rLq`dv#^W=F6++-sCi_f4Rq!rQk0w zXW;|O$kWCr%X(gve*5#c_Wu6U$($OKtmC~KtMC8*s3KqDwz&9Jsq@{BQ<pcFoW8Wj zuWmM9#0T*mg&(;56jpiMKW3?9{^#4C*%QA!$YyFaE3%5UjVjxif3Hz9Vg5VMzt#8O z+P*oo&~ysh+VgSxnO2!4u~w_<RkhY{OP8!sTA5;+`g(QGA%DvmJ1SI*4&*=GpX!ml zA;Y`REan?`ex&xC_?x?I3I$|OaT|OPXsmzrW#`?c?d#iWE+(h{ynSMQSy*L<!mYep zH%~l0JAHlq?{3o{+a>m%;C#&WJYikVkD2W<_q^{~?Fg7QW1sNLr)EmdM^=^IY}`~B zc$w|Rx~ZLSTiC@D11GmSh}j!&oW7m&ZS*_$>y=E8t_1#S%&9+pq(pYd%pa$x)TiFu z9?9=#`FYV?v*k)JvM<lyf8Ra!{O2F@`@cSn$_riB^&n;K35|G#^`*B<<=0OzQE1=N z>LJd)p|a)rCGTfKCTn**c^Dv<Ic>Ry^yf|Ied2Y`au%e0OtH{5|LV6n)%ERz7Yg%3 zZ=71VHB!$kNSr}nQc8%}#$2ysjHiwz?YYAxkekB!h$CXwBXbqGi61^+lX;mw!|_+n zcVQW!Q@dG}HgGICow)476QNe2#)=v59`d#EZF)J|_49HY_G>OnR`#t~q$Z}Ky?o{0 z3ssy}%>}%>SSy}qSIpQsMY*C&mi<iQ-hFu<J8nuxBo?gB@zyt89Xg>^f3cQ#qFjuZ zCDZ=@d+*x^-MY^;Z;9##M&bEiJ~qxS(Ybl<0fWd=_KP+-LA>Yvw`pg7V10Wyl;O!% zqx)Sti~8ihZ+lr}-IKr3+x%3@>STcy!H#uILYn$7i)Vhy`JY>JWOJUCZ2qUB71uvF z`+chF$)7a)yqdLWi*Ql&;S<4umMKMRecqODT;s6xeQ9(~xWhsr>zJD_+nZLnvBgf( zs{Lg0RP<#l1HYu#YHhhgaepq?M=W?7DmC}%iz7|@R*H!PmEGEK!N0Qq(BpRJ?kzbS zP0}HMIwY<zC~xSTrL*Y-Yi-D>Y5xM}PM-R)vnua_NdLXmrP8$ym&5x+{N#Qt)i|_} z^>kOKgQlyKq1lEzlkHDcThCyT*`cQYr*pyc6LKk&-#p)*_q3FI&IXo02R8QKS$rzO zd=pPuM0Lid1#7yuc{DA_<DV~3-c+<GHNf%T{f%{*C8xQzndV4bH~uHVbnL-Go9*4} zHnvV@y!J|7xl`0(a>eIErxV_6+p$CIQ2sXOyH?+iDqes1diS>Z|NgGttv-{b<MIBA zy!%H_UVm`P{kZnjwnX=%{f&03KRobk2$4!Sdu#Vn5sO``_sjO}X36V+)>}1sIWK?d zS!+SH`p51o6FW?{|9tkXbuyp2PsEh%@#kW!+Uue}uQDq9{aNmwfkf=X?eiBnp5I>; zTmQMr?rn~^tWC<DH~efXPxWTksc3LLetpFH-L{wQnZK)Kc1=<aa|%{F64Wp3-_LUH z$a{_Q9VdA5js_&OPLI0E8Gh)W)TE>PGgFl1x4zu6;bG8ZTc$>K%`=O#UP~YJ-OsjF zBkUAQuJYyuU6WT-WSPsdn0-=ORVsC}d)I1?Qx_NiU3L9Z?BC#HiJ?2zX{h%3JbWQ| zJN3AxwF~R1RhvuhoDO-q_gX<_981p$-FdkS?!1sS+z@@M^Q62{b&<lpKQa>i&pj9F z|9ffwC}HOMNIBkH_q!*!?$nDG*Ro{Dk(+tu{PO+U^Gk0(ld(3_a|!zXAk^%bSb|>e zX%Th%O<CFcvEPg~Z+@=pT$-ddRlVWbG&6^U^cqgd-I8@PPJOGIX3Ths<7|?vO|0JZ zFVTyg6(vq{w_S*KQvWdhUh%xE|BwECwZBr<Ky2BXieI0(k7&L8Bb|T!$5QzpU320W zFFDh4RP=wR>@U~%em-+5U+>B0eOD**HT^XI%XjB)Y-!pZ{JZzs^2{aKPiJ#oW>{&& zd+eZR`d)oyjugftGv9tzN@r)hz3reyp@eiao8_J_!fk~Gof6_b^VjM;T-SEJ|2^}E zv%lT#O4iLcxFOJ^;P`LbFEbrk$4O=-M@pBz&%Kw^vG5n~dxq1eMeDW}Ey`K;t@S2n z$oU|fFtsI{Wd1f@)>iwfWxHxN=ld78xt2d<xph-RZee`Ifv&$!XHIo|`RMCWyW|bm zS@$0e-~1y^*F-n^&e~!1y6A<-rTt!OUQhXdAZ$;;QoZf`y?Rb>emt6Wt|CRxPN~uO zqkyFTrgcmcxh7;!(2_H-IcsF|?Wdt+!er6ka%X0_@#I=YpNUPoWbS#fdr9;Gt>}-} z7N~#TyQuf}*XS!#?-hBASAJVk@@n<v?j<=3KQS-)>7Lf!&HqclfA=PVZB-{ct{yTt zBRr}2-w|HB=xcN3f8MX~jxq32uDCUw>t;I3{Uwi9#9zzX^HI66(qQr>@qM3Wi*j3E zN}nWn)Z48>GAI3Ib$xVt#P0J;A_OWH>3veL6f|gH`w(9{`=i76S7jzY7QU?Mnd9}o z^XP>~yBR)AKDLp!ob$p-PycQEI<+px-%Pmde({pxwo6v0wtacJcBy?y<#*Y8=bj&5 zamcy$(D|Ah+gDicxhy`_X|j5$N8*Y6BCX{5ht2YAx*J-AG$mP1ncgaRsWkJ-)Ay-5 z0aMw(Sl-{ne*fx1Nv3zNd{+F4<U4FRJNB#J(R9^UJkyT9N!k!{@5Y&X%Pkqo+g|x> zmwLNw;z8?|u}*DUjo%us`}=aoq3x5uG~NHmb1v`y$MWWbKX=;inzotY;A0`_>v75( zB>m@mn(zi~NSyFlXUFYAPwgFhSpIzc|MA$nuY2xAG_5_nW#-iRJKH}k%*jzOW0Egi zbxtg+OmNfei%U*@O*MI>Qor`{6J5JsPwWi#<SP6;vffx@?ysNA&)qrx{lcPtrLezO zW-~X7JjvToQRvMsf86Tu-g<t?y&J2a&YrJUIYG+&<M!v*udJMZFl71K)tl}zS<48D zim{(==!v(fWnSujiLEYXD~I-<1$$x}pJivUc9*+e58byw=i5;pf%;&@hq-q?<+t!Q zzpk5BRhD<Da?*{tFOn|)=vHUio_O=rPCf70%Y^1#`KBc!**h^Of#2Kp;UdFTZ}|PQ zW`E_L`Ge1+HSF808!->Gk~6g~R9Q4I76!E2tSY@IQTJ0?#%^j~x7oYb)#u~ancwCN zR$AK{f7x04On&N&qR+pwcQ3d9eP2!H-h!Xs-0YXjx&%F%lPrF+>A8;3&r6YFoD<z| zdnIhiFIO^talqz+*Q&CfIV)IwHrxzopA!7Ibz<h+;}=gBvso6rcoH?s;DPOS{rhLM zPxL;|ty@!7dw4nfgDFXt&%QBmOcIIpJh_Cyr1m`PlW7c|%YX8n-r4QGJO7X0-b>$2 z{+`tP<FQ!&lW)_fTb36e2z;MXx?_^SKG~B_T29OXsxe04yHwT){VNWfzH#e<z~yfW zDmYAjHtc$yaF+Xgv}7#1?$SNyJ~O`2>zgx!^FZ(G?dzT}%-wodbpBf@HktWM9<0kh ztz0Y7vvnJjrFp^O^f${d`QDPMSbX}BiuB~i(HADnyt#1^V?|J8z15kPgQAgtcD*T! z|2tQEcl!PltD9IqO<pd0+$Y6v{%Sr?yM@fTx>{y6PV19)Y>;}w5$7CsdTHiL^|?M$ z_7>~fbXK1*^uI7$-r7L=`TxWBW*@EE_VjD*?zZ62@89O``u)v?e@mm^Ws@%~GY&E- zTM8CVxzXn=>{_-&Bk0qlc8^M~%1u+gYxr+VX|>>r2xRb%xY1Q8H0MZO&Ls!)<n1q? znO!KpU%Be#oK>fufByTo?)CojE1UKNxvweySH1r0?CVkcP2X(2e((0?)ECPP#TnoD zWJ`ujEa6ydotpH#m0^0}<~dz!_WCBzVxI8H?~_-+r@ZGrmT5&v$1`oqF38pA|C+XX zkM4)wJ5D<ea5vVKZE!vo`SMfcw{k0u#|-ul_&3V_W%#{k{pseuMe}cI{yY$Lz-e|R zm&Yg9l$fZ-mJc#(ymfYHonNxl{<OTJpO0I>%PaSMUU*gXO`4+VqO?52dHdw(08g*B zm(4Y<Q`cQwk!u_<-Ouo8d5|>Mdk&2|Hmnjc(o=t&;IucnwDiqG>jy{VwoDgzs=4n$ z*Y)=2T6fA~YaKp&E<f{c@=v4uAJwmB_ivNdzw^-Yf0SCh)x@bmc|ZI2eJsj&f2VHZ z^4x!B`u{5#d*|vWslP0L^;_xIq?!z8|2-{^^AyhcuFDKQ!WzD>`&h-NXQK9L?E31T zj85FzF7YJx1XJrpjhd}@@^|ORTzx3?f7hcnwaMl4cs^WX@yu9V|G}1Rr|ylP`hu#f z9W^F2{@><qd+BNKa+}nzH|zgo?PGS-T(bXU_oV~7Pg>1pPyH^o%=*t<jt{|Y>G!Q7 zN~2j9<feK3{K@$&y;iIK!PNf?`A#!EjTQC_Qh8@LJA(7gWR26h;u9Wm+<17L=bY<? zQ|DYyEVGx6cz(?5?3-C-YaXYuX%q<x98C`T*|0P={xFk75Z|NH`4?WM@J1ID6dr!? zM(M%Xg!c*>wJMxv<=b2AR3&FlJbd8PnhL4Pbx~E*dQ>$2h}NCFY5vc{PG(WnkA$@` zM;j;K-^wi`8R@%#$8FurbE3O8r>yI$QBruyxwcpFyN2TT?3Sph@t<;;(hj|nSR$PB zQb0dyjbdPUNrLs|mj#(0#Nsldr+wP@Y2|C1|MkVcAMF2s<=Y)&`|W#wu<u_Z7Ra*H z&!(Ym>byhzf4=<G2~RXNnWp#XRYOZO$I;Z8Qj<3w`jE*x<J1v_;%Rmk!G|*<XBf!t z-MzWw)TD_5LN&FjT4k?Rtli3_P@!%ea<=<`QT`=w*A-rFi!Mt3wcgsf&Z|wYRAWoW ztvgNZwwBl1*-uyM7k|>T-QUuDf=$GKtL~%Mabb&}Z@K(X#r(_KY|W`+yH?i(JX={V z_wnJ%-M3%+Fa+sIvE{uwwR!7bj^_W#`Mb}keBs}&U-Rhwha;!BZ%RC8Z8Uo=clEnY zYO3G|t@mE<Hf~$~S0PyBg1=%$SEU5Y^V+&a;Sv8;PA^H95J;(?<d-S<-R0i4w%o%x zv)6Ddas;>8MTQ!@jc=@QQM9g_nkeA$A?aw<Ifhd|XZ-aST2}MI|Ju=MwfWy|H%i8& zB;;R-WRJB|o%xA1uyj>lqnAA2locoD|B^DhIq}XW7Mt!Vr!xXur)eqr7o7C=l9?v{ zNJi%T+2n@sh<(>PYwWIc`Q`>DU-gv9(h9x)!#gI?d&X4e#Vx_1w=XNtjVQU-aJ@u` zFZZ3g(M6B+K&9q0LCc(4O$%kF>@cdGe9z?3EZ*j=A3NKR>i=%-JzT;fUTZh+Tj6!z zLftBT`2a)pP4+H9r%sqBh<-LPcyXoiQHj%$t#>`Ip7{2<jLn)!omqV5#qRD9KD*Oz zK0V{CSieW_+il*n=LPixKAw8sqWy1Aq(D@-%$dapt2PU2YnRx3p6`~+-oVMJaP<Gf z{ZF#1F4R3ae*cg(V|~-PAMfW^s%&_9-BY({)qy`1X0eKueVbS<oAt#uwlkV`CT0|_ zbr#vLchhxqe-FP1&#P_j`qAfI-J5pUrXLsY@koFF;5oyjtFBXcp3JM{_AdK=)L==l zndkHejFHP{MV?=-&&Cio!D8Z(1)uk5+!Fg7W2W}~<Nu5ZQJ;6LE$co<p1d(X<J8Jl z=a@fhSI*!s%MiBHF<Z@`SFCQj>2U0(iLWpHKV4J!en!8K=&{8=mFm|Xx~%LUd+2#y z{`~*x`?u8oE&u1amv_DEyx6(f+fJOkWZ!VgX{%uTj>oH#f9c*oyOBTlUflPdWaqHA zYzr^At>btUny#EskhAXWGyB&IRRwnT)@lB=Ty<@4MXK3ES^o)#gWrbE5V^M9)|u^6 zTW8?$)O~X_vezC6bM6aiRGzo_?}on%SH01Xx$5zP=QjUNqXqwe+*r6;>~*Z>CysW< zjcldIWd$Nm|2Yx1?%x8RoNfEH4zKptK4-T2s=LAyyK8F$p6aO{{xD(w`Liqz>@miB z*NMzsrPViU^Cu3;2ah&dIq&v)+_p^Pw}xkV7FS@(k!{9Ll_fv&7fiV3;Hz^l=+~5x zx$^~s*}guX62iCPXVsOL#gpV)-3sQ<R!@p**Oq+x;ev@ymDT^$0uzB&;a@Mp);T7A za<qTbl%AmX&{eJGp8NhcOk&j=&gNM@&2#>&e&~~;T*dUgX)4i%GJ7)X{Fb>q$#RXI zw)YQLR`pz#J3C7gcYl1;eS7`iFUKo4p0D4&_v7sP1#2^ug4#mgsV%eVDfc)&*+=<* z$cmDU687EGC2q*=d2-~|+%0Ncab}lq-TW|Rx2U$qjSJqJ+xfMBOn8%WVzz?c68jI@ zaS;y_O*Pk@EHab)rC=%Zq+Q!D+3=OR(WmHCEuQG`D9N_w9+lMD92$R@I>-p$ytsW$ z^S-pHDv3%@qwh)UeQ<OO)LEL^XXZJ(jF->We8>CTd5gFe=P`chKfLVhfuf??>ZhmY z->Ca7U&r*n+S2asvFW$osXsbA%|E5#(Nj|u1zqb?YDbJUSf6B?dI%jBU)kP#CzF59 z>h;cxBEu3sAIZDCZSOhfb7zHv-mKZA#5%V~c!~MbOx8=^#FsEXGuWkTpLow{#{$J? zHycBf>NL$xPuSGAzh}b1_Q+cw86UOG+Hml?kx1J6EUPtV^Q)Q``Ba@tG38KT&=J<r z;Q0BKIr^n>dp%cRnsduS!QDOjw*xbNvd2x~|NHTd55uQ*Z$lS`>SyX~xxe#$TI#Qg z_P*rZCq>uUto*R<^b+?89I_qrnZ?659_znxU{d)!=3?au+8j5(i1lBYxjgh$&%_Ch zwp~%vm&CF5UypnB`(F8siR%|^nkMN~@hZ16pdmZ(?gf^qcQ<uJA5uPS67VBtQgMO5 zdVr2n^mM^b4FC9euS=G!dviJRCXc&T&!=N<r#G?0F0;84v!(v@9BsaP$9ErEbztLr z-HclW3DK`O4_5x{RMWb(h_U=>;lBN6d2HV6`yboVkl*#+YCVtNkHv4p|38<1{QH^x zDeZ`Qo7If{-%r=gYM9J)dSBz(E0Pr#b#rng=Gp(NS)e~lZ|UBgN3KT;udcr0v^!?H zg!PK1>3b~AdM2lq#sA&fw(#6eU(c(zFKU(NhYPp&G@Wmdv6&zn%eH!D?SqB)ABs*s zc)8Kt*j8jBC)1?d?gz!UPi(H>iwIqHBA89@;IWDFfv(pIA2RT*JYu9VwdsSa<<HK} zh5EKdQtvA5V`U4Tzi4r=5?W>}v;Ut>?w4QRUYXbR>xcaMEt6YY{(JjNRsRl~B)!tf z>sL8n`nBop^3>mx3=6kco_W`pc&hZzlDAX7O`84mlG)^y%^S}?_TF<Q-0rEYgxB{^ zE11Kr-~DP$%zY&gda{C1ExUByFTK)bYmA-0y{VXeNss^kslRovuKh{%4=r)tJvp|= z=(6}l{S<lU+b?q6%}bW=eXaa#?`y630&LUjjGg$}PbQtR5ElBa5-$1h`TbDu&)IgL z7j0u+-S*+|u~U~0J<0A_7j{d%{H~Ry=k$Fm<lddwIg{ZC<8rp$cCWp*&OLwX>Ga0) zR^F-49h}$>sr=5Ve`Nd9N5o;bq+Z|Iwi!MZi5E_Km#esVtkhSm6pjl>FJUOQwE4cV zz^DA~een-jve%YNY|7MQRxeUM<>t18{qKjqySgXb40%HX9<5l}$?x&<_L{Vtj1CRw zi)2p!-O1|kxO?uyl}jzG<DNbhooUkdMq6U1_03B^BV(nP@MfP1*()j1HZ64KsW9`f z=^9hhJ@i8_dX>xk**yR6(YH72|N0BMG3}Z%+q<<)V#?aN^A1?=UK(aC|90o({B`nA ztS0>2w&#s(qVe^G6QZ`wZLE4FB=PuqLShsbo(6CPX}4`$8VBXrh|-{*9&cypJ7 z5Zg_U-&4B2J-fP=A&tL{W#^2gi-W?axfS}IHICqWWj6oQ>;2bW8ZquFc{EM*>6Bl2 zb5#!}b6Ycn`OJNG@K;FLp&R?{vm0&IfAY_*GCk+}=18*gOP(huBA>FI+hv@4msNh} zt6Q1|R*qA)F?7pReEu}+Shv`GBNZ#*=|2{3nI@jTS+@4!<m~k>3s@Z4QYAICrC%>` zbNj{qxGP(5>zvq{i^(?w+Fsq_Kedo!@m~RE{!dHJpKt8^7Lt0eY{B8P?V8tx&Tr&B z)5-i+n>k~bbfbaqHV-x@tM^F)a*NkC|0>zJE&b=5Q(sygSC+qhrk-mjAY$enm>J3! zA!}P1q~YZxQeS-Gy8b6cvziYsl~)fciJSek{4~|<%rVZTiyo<YhTDeR*?#EW$1+up z?n?<*XGN5*j@NqLqoZ(OjsK^2T5j8)=gi{y^w56B*J445H|y8;l(?o9*amO3x)PJx zvTv`FPT_>haRzf+_)Na9S~a<qFLL$eJC**P8u{Lfx3$ahUv}nP_4U-Q6$f^GIq&k| zME{mKTvrd?Gk@DNW71V6cjq1Rp9L;cR^$85+L1h&BXnxV?-Ohjv_Iy3Df_~Aj`KvJ zX=>bziNF8(sGmJ7#i0^nXP@|*t3EfUXNgRZ{#{QO)@AKe{Yu~N4LH|$RLhcK()43& zj)%8iPPt%g^KaVf+mG}2PWmAewEfA#Ln&*51QVARuUOdX5gWL4ZQ9L;4rzOTZ987_ z=1A~0p?61*`|$JK^9j({T<Z~ef;;}7L;9wqolmvIW#&$-KgBCsw26Q5YMXyoE&N)p z9envRfA1-l<=hb|f-PAmv>tB!$=C2ZDN){1`E+qa=L?f(sWr(y8)I4`&rN%NB$ZWc zhshuRN;k`wTuM=aFP4bjWSMuM-JI1lN5N!e>7K8D*BE6wpLz1;|G8-ey2tY+i-Z2o zxbQQ0{@2vmGXyq!RQQ!&D4g_g`tmnDRSTCly|?V-pCMoOG5hnn1`f?n)p7k53pX^g zUS75&H!1xgyGN1x``N$dRXl&QE8Na1^Y<-rtH*0^7e!BINRjZbdikO;Jalc|)ahvl z=I<%D?$Nit5Or_ib^a_SgEy&r*xvW}scFxxa^3$W?!!^J($-_ePgPG|+jyg$V@KfT zncF9n*(+Iw7D{9v`td<-*Y1i6;}7bQak84>#X8>pkF|bXvD$q{f1@D(`OB+6CwtD< z-ml$%?NG<u1Dx_cA75QN_~csl@tlm8s=o@SSZe<WiJ8fCdvcG|hZWp;Rf*SLySJ5G z;1b_<eEz;2wb%E5p26qFeEqY@Yq@@vj~ssYZpUpYNN=yp5ZS2`;<D;{%@?WWdHp{e z)}C8t86ZDnO7T}-_noH%UOhV!V<=qi`B5wXYq6)HeCRBjQg(w$NAG@nY*g<v<9AwK z*`CAd9lEodeGL@*SzAmjLYFN5D5GW7$f!|o$Yh>tU{r9fOv=1+@q?H~+n?{eZ%=+7 zv$!^5-{1RnpTEs}Uu*MGC?K%(>gMaaJEMcA3W+j&a1Z;kwnj>F!`I5$(Q>PWuc^Hh zSjrz;dpPyf=b}92PA|8I6H`vAEP5{~<C1l9+V&$4>ov<>dH21l>DJS#a@f3L*`9CA zt>F=I5BI-b+@II~(bb`Oc6w~5SKZ4!!lyQDTC1?U@1EE!|CH!+aiv+$Q|~FH%YEUL zPxqaD`f2U1J3mTXl+V`q%vd$o@tMgS?XWkidQ+0L_PaI<e7%^^C$}@`-|f1WEkBiV zZ$3D_ew}Sy;qMRq_7ms+TXk;Lq&<J`{a^g|sb}Zv53g#xrh7D<d1;!eb}sXfU}<*s zMxEGu-*p$IH$Qv(d0zF0E1lZbKiwF3x@>))OszfnMR(@s)4B?shXvI5Q!h7(o=8?( z;W^JO%71fk{Fc<G*Dc;I_S*6HL17qQ(4I)mqOXdF<SHs&v#-m&|MmLM7o5jZ1=RW@ zV<%PpxW)7O8t)-aO@(gxMGLd#5~sGO@!UHsz_tE|ga7j_8&90<n(eactGQB#+Jt@W z@$>II^4+kF`_1+_U%uX6U-<vYoR%G*EKhoGnpm~v+VW>B-@NoW|IFC#8P60xgSnz{ z58nJS&=7ZD$0o8Td#~O^%Yt9lTc4=KW|Z5R)=A2I%Mh;ex0KxwK406v=6iYU-u;Yo z4DX%n{U$x(+H>b^%mU&e!g>krEWeG<Tm77Ha!X6Fnymz{M~rDefwTAH4KhkeQ|$#4 zmY+(`VF-OCW;kQfdC$t9no0hPbB}T#^@x`Ip6dAiPe%ERou6zb%;~lLd_Mlpyo%#f z-zL{TetG%5y8hvFlfr)maP&^!@v3-Zq}|-zTJF5x+$|p`l(np^x6o$q<>xPKc0H(> z^ULeBahke>$9%@tf)u{B3Eg^MjAoqM_(pikpS>SlHwf$06g&(SWw>*+Gwaog*RdO< zg5sxg#NN1-QMhfU<93gb12PI5JGFdeg9Qv#I@P9zE&a8^c;mHLl~nW8?|y2B<^S=| zzccUm-^XuN_w`vSrcP|G+MxZftZ?@+zyIZRXRen>d)0AmWGEHMiF>HY>}j>$H&)bB z<J=eisrk1(wc9f0-#>C#j+Napc%7IVm&>uc{-<QSpT@jh_P~4ghZ{P~j4n4W{qa6< zBZ7tf_q1DP6_=c!@2oJlTlnY2H{N@NL5HT7m0Z4FWvaX4?a@We9Epw0+&j)6`z-xi z`rekxt($-B)w#UFYcJdNtmyaiLe5P(zw)%kQ}(r`v#N5Z@}DaIA%BSZXz{+LzdlaS zecHdgvJ|!0p;p-TeD=CM_pQVC+)F<*HSco8r>t|;o{>h^CQg{VIwg$%(CMjnEjEAo zXqxfLCxvYhgTezXi_KoWtZC}g8#c!Om^%CR{NMMoZ>Q>Ca9A&vy2n{fV7Ft+gL#)3 z4!h5Bdn@#MQ?7dQ!3*yh-Y+{gi)BLizDR@j93N68_pL~7iVW!Kb)FY9lktO>@%Jp% zkfpm$hM&s$axPNp<G*hP*2@gS7k}-#`Lu++XW{0}2K@`)82hv=Dhz$<Iq&(u3&-zo ziLDJ{cIf3hzx#f#c;EK>KW^sdoUi})?Au)*rhDHS-9<tYU--QJIhk$4ha1ixcWe@r zs64f{@9u(Frj=ZO-p;t%pIqBhVKprz;&s506JK?1oNGThGu`^#uF#TSa&<2f&Txmy zTr5wlxt6qIk;cJeq0hKH-|fw^`IqtBOzrIvhAI2%9=$Ipc&cFk>ZIqUYRyH?HJ$w& z;bl**o`3bWe|dOPQ%=nvwU`;sb)U=pdQKe+JRS1%&+$6GrT+E0@_SvP=k@(o+Wp@C zOLBjH{_h7{-<sF|yZUzZ{*w(`_)pBVd6~TJX?e|$iEowV>y^WwELHz;DQwr)gJxHE z-JN3o{j~1sEmI}JyL9B&uM=kT`*!)6XZE2(GZof9ef;!!u-wkO$3!b%Z9XbHW9o%N z(F=YH6rEn+6WjG<e@U6^6q~2_YPP%AIuus^t9`;GwckT@#q#>!Th`=1e)Zq<p3|?d z=kKUoJ!m)KL7bBLPu<&78M9vLxX3M9Q{m>H=lVc+dX4tOFPsvyud4q_I`6EV{_09- z+}BdOkn|HXo1bs2@3*eeX4=2?uj3SM&ypQQHE~XBndeQvQ_{LD>?Ob6<qw-G7yoMe z)c9>>ilynfO?|U}T}pObBz*JXjfuA;KF%#Po31q3?Ojc|_1vPJ!Ip-9Bt5>mK6xIe zeJ*_W4dqRH^TS`f%9dRJL21(ZzxNC$H@I&*|JU1Er{zYR(S{KAy^n297{xzJKX*^R z?fjAt3l=?ha5kFT(y#fH$?Mib^GQ3-$m$0MF&=(&EnRZSoQ1+E6HFH$&@lJ)U}rNE z-XtJ;=W&#h%DcxC#DB#yr|zlzu&cB0*4Y^)Q8#Z|bD6SL?o0Y<{Qt$%x3=~lZhU(v zUw!$TwEg!-Wv^4Uw!gG_dsXT`*ZtIrZ^heBG&74Zb8IkuskyQHexKIQqx&XBHZ9kg zR&d~At3jm<%Ub7fpGW>L6gW3<dY{pJtYmC5A#+Nz|78C<nJu;6vz|U&mtJmhQ*hVE zi=S5c&NMhU-$=f)>6ZMLW|ma_rQBCMUMebF>5{TCaf(YVxBDc={4j4$+K10w=TB}{ zc=_p=`RM?=g!HeByfq&l2X1=b{A0!~j-#ROzAGmMyyrasrT*phyiXJ5?DSHr6;24> z^pxfMwD0-(_}lk>HLkXK_WjbgTjmu-tz~(UR-Asay8<sAY}obPtmE74?V;<G{bq+8 zw_I(zjF;E{XRo03EhVi@M=q{Ccxz4mE*@Po9hprz>uY`L++wz_*W<3_xS7K4IBjp^ z+Ot!<W^I#QsOZm_>U7*?YuJy5@Q<N0C)<R6d$hq>dflFfkG{#R`&a*2{=<xvmB(j1 z`fm21b6<kceUF_p?bSnMpLovQzVFNNZ`#jf|DVoEF-zQj@RzO6%fp?o{WZDy_QeMN z@|h)C6Cj)$$QYY9+0>}kX3G<snNxH>&AMK=u)EZ!ZpHbEk3Ttb^7a~j&9<K^zjHI= z@^`MEPIu1oZ}&R;%Ak_-{FPO42lHb+1g|s7{CK?K*TSW33%;)X{b{NRlXtLSq0D2m zo|y)G{XZT~lt`Sn;0(jh*7&_A9oQNf|NZIcQ`WL>+#L9Mla*rPpLw;<%;ttZZjVV~ zettqJsxsK2RHsyJo#R4tp^_Y()+e<ojHa^=p6$)_EQzy{W31(vecn|&Y-_RD{V$f5 zX%TK_2~&CdHkZyS%AHvpG$qBa=3mGA-v5m6xqm#^|2rjNy<PR0P|v%QuO9oeWGTZQ zuibxt-K|;jL@7AwdrgP`O%LZ8HN5ecyuucSUOm<BH?QFcbI<t)Q(i8R3U^wnV<<c^ zpY=z$`kFN@9ImG6|MU|!+jnQ4QY&MS*l%%S&w-#Hx@t>uxmzYKTjAp7epBVdjIDFB zGIni|u4G&`S@%%VCYv8Ci)-vN__odTnK0GLt@FwDFU;Z7GZGt*pE52{aSnN~DK#u9 zVcPqj=kM$NGpx%vcvAc9^}6TRzNOin`TE2>_Ez2B<#Bi7{#TjKnUd-+vtV84Y&XgD zra)oG(}g*E{^#7Zs91e&!X6L(HI1cV8`wOrl(<C6emTUqOJ{c^?}qymj@zAIa6j!p z$cBPj-f9aTC>`JQVnW13-ReIP=TFD)o6Gr)K~yw4Wx~B;22Z#2GYtQ>-e1fAZ-tZ4 zTf-Jp=1qo7A3iaD4oy{g8QV~KXl3US*8rA=@}h1TRX3sb%i_#NN}Nai4rC=+e3_GM zQ`FXTwdIR?viftM9aD@pq@B*Xe{x&3ScoEj{);!Zdn6@J*FW4}dAk1Oj!*Ze&z8+P zn`Qp={Ev%|Z7xmh%`o|Na_>~{JI4xJ?_M-pW1-^r?AeqLUF~{0T(?^HY@Ywr*_`Lr z184gmwMu7tEtHinJoxUCyy%FjhN^hx!xs-@cr&K7@_3~jNLu_o*1d1L)t9Nq`<Ti( zty%+<wAbBQ@^sqF&6x*%%~e>}E)L(!x8UUql_$$vcJ7k7bz$Sq3;MmO3<t`drY0S= zTy;sQJ^9l*(^QYb4t?3&u&Is{TQt9!o%Psx=6HWk^!%0j>jmC=yy0<W^|qWjXUkLW zgi8~n56$jaT^T;}if+vBhg0vRSn08r2dr7b#x8C?r;7XNxz#xtZY&<vRvI4;=sWsk zI{ACcmuzI5@nO$t#@d~+mks<J&!wc_J1fBUHQ;B|LYdkVtIvPk>SM%nQcvXVquzx) zR-aDZ{~Begx#3hv*QXP{+Z+0CzNxbE2>){EYUU}0^&0uYFPE$Dw9>mHz%~8&gijf* zFW=-!^C>wCtnx}Z;Ic0D(ez)(nrbWC_wYC0KdiRz_}fiFC2vk>F@O6#ZJ&hYoZ7Gh zEN6Bft2V5$xmup>BDX{NR%u?aR<gL(`Q=BK#g@4p*=;1W-*bAxzr96bZWjaWLX}iY zd^962`u*eE!Tcv6GFfDYt@A{&OBL*IFP{7P(_?|bU;pk^XQ$mQu2$XFw!X$W@MQMs zIjjHtsLXNj6Hmzbe&9UgzJr#_?K{>?nytQFFXm5m{mcFTe%0SvB>zfS_kB%Ex0Qit z#!}(c^>aHy_WsrT8r^#<)#hPPnTwh9l9Ol7z1;Ff;RyF<g<2<x+2SpC<C*4i{Wm%0 zl~&NlZfe)WbzNyvMo!65rZ*Sl-cGR1U#Df(=W2Uy?{wvpZ?>81t$$)U)7<*ewuOPc zQ>2_)e;OaSvqU9|!{~>9vWS}9Q)iVcb3UJZ(8zrDZy=XyYWF{rxDRt9&n*s^(ZO|c z|HaHJZa+7>T`pWzpTiShDy6#UMNjniTOxZ;vIV$pIT?F17BpqF?wMgY!<@N0RQP6_ zWv(wOt`|A9FIXkvsqdc?)AcexJ=`hOD*xZ9=-^THb`{04Nda@?U!D`4KXsKXry<9z zxjBvpXRAM0y64;}w&|YXbC_)<jgQ?*I@_?I=G3~AlkPWZC#dg!TQGG|$n}jy9yUK4 zIyQ%wb(-{-F0PGR8u@Pd#-LgC#swV9gH)#ZD!Dn#=ijo_J@8rlJnnN@d@Ss&M?g1I zoLt%S$xF50iRTcnN^tnE<PQga-4Rjj=E(?dowIbW0zXqw)!8}!yk=BboaXlmQoE(8 zAIm3I_i^!GmK9sJR;uoIJaBAL)9-ate5SnF;nI2ic=GjvtCbeMQ`tqj&7_Vj7h~06 zi@asAH+QP4N$mSiE39XlBsOgSl<l-+KNtJ$sf;>rn~kg3mj7&<ae?#k!jCC?oHH7h zylL&cvMn`W?Hr%q{G28ib05jDto|F*vg^c#Pd^q<dXxR=&J%-v-Hn1rHs`M>4!-(# zsz>VQih19C?yi{X{$)m{{EIa|%M_k|j&^+NBUWRw%1p5{)BIAOO1CDTe9pt8y(>Dc zUsRM@G*2u`6~2(Q<b%hV{EE;*t1WiwZf=fMQy+F)Whn*BDP5ww(~z@r+D)NZXSiE# z3fteWnen@P?U}acv$rY<&sfbjNjm2PAJ0kd4>65luB@+(=J$Hvd*ojJ`cluv!xfDa zJyi6g7WQ;GI5`J1Y`??yD71OLU0Hu~_#d|K;xgaW_AmrIng8vTa$M+)PjlQoI_qcj zCcgiFQT?-J(pR~SK~K`u-g8<lh&%WD%vamb!S<=?TN!7*TyQL8tK;)!8*hC#n5o-z zA&c?y=beXEo-Mx7wkAjC^S`Ro54W7s`l<MKEswfan{Zfc%uk2xX;0E0uX<rKbwZM+ z;!KU!Zf6IXHS&J9RBPqB&$_KR)&6AZ%9603;dix;^m|_2`|^@tmDu8ETQ}aU=+5uT zU3#Q_+XBbJh^h|zpX(OCt^Pk*y^?#$b;H!|np-dDD}Gd6q<qr-@$9@Ghn@fKJhSF( z@PEN=_7Mu4`{b9%b+4%jKIZt+@dkHn&a<4Iv0pYOJH3*y`ku9;@#3y4|7~vXC{294 zwa9Ju=1mg{&ph6-+3`Em)2!HE5xEDCEz?+c=+!oXrE*C=%O^}f9_lHV82;w^vX~zl z+3M>fxy+VoZ+PSy`E=f%)_u43U*!39q3`@ON!RtW9-8m3oV{?;*7LhI*m@pLOu4Ps zcVn`m67v?x+fTPXIofgJTwIUOBqfcGiB}KpzULxZZl)8Z*I05dgS*`C+`16gJI<9B z=GqL?_2TyQX&-US(K)BIdCRO*Yb@$q&fmD|?fNR`T)^jlwQdWnkB5ByG^gu`=c9-n zdgrEvJ099TPx-2)z?%nQz1qG%rWm`dZEon3QRcGU^f=*E9($SFd_L(JPO)a!^<oYD z^eh<W?n|lM@|(lvxl>EXlSk%`2DW>ST+NgSNP4k-VWi*5`8RHeTq>zK8T^^cH@Rnp z$=8yYXGb3#n3~p-H2qCjq)<6iLi#jq8MU~{Q*SJ`sXup)@kV0Q{=B-=eBbocQ{z8$ zO)Dv1dbKj5PVhlWfUId^;e%~wuD-lkV#c^N=<&1T;tsX{rpKi&*txCtP5!>j>UW>F zZ_}^+^sB77dTCpA$s_f3S_{I1*Bo2vZT&-uEA{Bq`F}z#J?6Q#bNfq<L;vq++XpZn zyY_}NLwaekWX#=}J}!Edn|N~Buf)DllHa%NDrfikmCxl~e{!99E3Z~sRw_Z0N%ZRJ zL#MQMJ3VCF@+o$y(fQAp)Dnx_TEFTmJMNv<@4fL-2op=CpPhoKyx%7ggXY*7PoICk zvRg0z{a?p<HxxeJtp9ZD+okFKA7$@{xJw44J2n`zi)xAO<-NS^Wa0}?|G8%)Bi}_@ zoRBP3-hSz0WUWP|+ou1^JsBd``DpEmaY~7CPVtE35q_RG=h}AZJ5Sb|XYlbpb=i6E z>pwX$H$S6@okayQyC*$;!MT#lpY?W}+1{uUHf`U?Yn=Pm*H)fV`ZRfpR&C~+Bj0$A zUAUUCR)1RT$=Rwm(x!)p%-p3D|JS5-O<u^!@_wi3cCL%6Ds9UJ=55QoJ7L4VB5e(` z+2U+3u7#IYUa<eBQh#<eZ<^)59l?{fYi$y|c{0$hX&UDdfjRxgvG;y*q#gNXULpGG zyurW6LAh4pdza5W%ooI@ZI`g;!4zSh#0ifBdAb6ZeQC1fSoZnjzcM!K2Z3iIg`|Sa zoTpkzO2<vSXqmqEVxRw3p=FBOdl}X80~Ht<e=71hU&@U-s&1%rsjSAq%dpPuhQ*#D z%Y=5WxsP<5omYpIEV|1qbzYS9sXcSvtCP$>PrS=n<f(ODJKFV<pv$KApMqzvt|;wH zSbrhyfrzR>>Iz;%6~R|~)!R-)YHLRPT-d*Vrue)w-3?y7MyozMwS9dxRiSK`=LhZ_ ztv^@i*V$FwI~pu?lX0EjKck2Y;bW_%7TuV@Cun)HJHhD#Ge_=gvCN&E%=1r*?qQsA zp=qV?js+bLH=H`y=q%{FIebp2+^LB8Ql$k?RCl*7eIvcOU`cv_i2ll7!f$qPzT!Xo zf>q6R(`3KBr<yOVv}f<=c+e2=Inh#`q3ixb?skDBHN)HA^yXds-yFYhXYH@__=h{| z;`)xn|51D58qV}E%;2E7eC-T(ru+XG@3BcvS|$8>6aVj$Qx!LNF28mB<iwxF1p#4P z?lt050w3ObsIu`{5BrQCMj3ONUViem&0_wudTlFv;V*|8=`fEV^$V3-=XTGY_s3V# z<aVuk=@Io~e7CoJD_T+IvFJ^A^P5Y$XMdfa9rRYa>6*esOOva1YxhqGo6hscUoJ~% z!Fkc!bB;>;L_gy@<rn93{C`a1%Y9iHSMC2Cz3bH0@MPgz9zWHBpnco2Yfp0?`>^=w zc{9ec%s(qF{~q$U`8z*$$L_y(i}uZp48GX3tFHZ6_*1KnAJcYE=*(X}xkg4?){(=- zN#(9&<R$5nWsA)Xl2aJI7w?OFCSoY7rW9keW%HWVSu>A(zI;5%xwK=|l{W1?iDy=4 ztXGqFG;<cpmt1|m;!q%8-tqbOu5G@+*D3zs)Z)6+4bQ*-l__w#$mbbo`f6YBMYpn? z7KX@ub>F(=84g`2aY#9E?nr9-^nbY%w#P}=Zu_3~L#$oapLfPpNp<BzA&U$bAKzqX z`_%c1NZhVxf%pHt3W~g`n4d0amC1SH^Vb9Kf9^ZJ{rLTDx%2<;kH0(bao~X|i7n2X zm+Mda5P9X=@@>DrnXm8r7QSjz=<-Hgjjfl<HwAcqU-v>rt$c!8+PaFwGgHG3yVXw( z*5Gfy(WdyPd;Nk$(fTKy+AkHZv!_cv)#a35EOT>vZS>s@@=M(F9(?k>aalHm_nQLy zoVw^gelx0{9&Z%-5cj0<ro@eh+)j?H>#An{U^;Zk=F;{Lca)kgYCD?O?|Z#Ce0zDV z`Q$eLnEU&_yuAFLsbIkwQMuAdSEXFvI~{p{#g+ZX56NGro|p6ZR(D3b{5tTmw>S4e zpUuV1pKiD1yjv_=*?r_>pc+Hm*Fz@NdOh-|PV8HnCw^o5l!$eYB6(+UPHoP<m&TR+ zOY2tNEp0oSr_)zg{hrifwk&wDclDIno%vz0R>Ib1r^5{GjB356oSbmG&FgK){HYB~ z#A6eU9a+k*bzhQ;cIejqsK#Nrm6P2ess7Qy?UB2fcHI&%ipga9w!Qwz{$Ho+KdKwq ztDGn<=6+yzd?V8>#&0|BbZ-g${61~(uA;u%TY~-0zBD{w`SjGWjI>9t(w2u};>4~T zJoiIS|5D^`PwC}bObq<vSW`BLd1Qn(e_zuX$iJWWi|?M<x5e+&e7v5&?D9!Ag^W#! z8tE@X!<zlhwmdBTkP{hst|uWO-RYL~<mnv?3TMyLPE1wn*IoW*&9S#UccMkEY6z~{ zd-uWSE9ahvY+fx95;v_mq5X$xMxy_ku#Gi_3`wQFAGWQ0Y3mas(JNpT|62I`p(*Zh zd<Lv1j?9dE{Hy!;?ezMOt#5VT@7`5=JHDo;@8i91m&7ZB@7!RV`Rs(~w7ra75A?O| zt}WkEQeo&^r}V1#e8aLWO{cH+e!9i8cv>Rcq?s>V7D_mmPCA+p<m$26XMw$`Kt{`4 zz0^6;9vht{SyH3E-H7^nVS{1Ho4{>_7h{*L{;Sda$wwmEdgi%#J679nvVL%ce@XGo zTmNqu@J!<{$n|;g`2=r}+JsJTmn9D~C!b5!`JLdfz+E=@*&+K+AJw<L*1vPJ?x}jb zolTUr(ZT3%#Yb1Z5m{f55i)ht439sH3U+?FvR!9=s9IIanLi8mmUnJC@r~uxy&A>B zQ)W*$e$vYmS7I^TwmP!xSiHB}Q^P+Sx$SaYH)z{vo`1G|-44?(T|;&!wRuNmugL7U z9DZ^8lDYi-=})V^y}DD(b+|&=QuFz##p2t(|6RI#+x;Ii#UBW|OT<0CG;y6>_`GEk zeQusuA(X9l>0y4H|EUdULUi}XJ)U1}!TU%k)Fe_=Ty5eh<s)rf*FGj3le^Uv#kMKP z&U&`!+}k;U6|=r3`c6FiSujJ+{8Z%0^C1O$+P<tiBqMP-@?pb0_fHddSOo6Li5D}o zkY>Mr+axLdn&=l7>51Rx3hbFIYvcDk&3byDbNih$cc%MV2v%L+oA~o@=l%a8X|wpw z`F5_iD^LHu?EN#@cljTWYTcW?p3UBGUC$l%*HX35+vV@x`|zyljep>&OM2_oy!<s~ z**C0sqpc%t{_sg|_<^GJJAS(N?RxSpL3yS*Q<eNhZGLr~S0}VMGT*<gHdWaxJc)<r zf%0MF{aXrNA9#>i$2iBbWAgC?<@pvqkwRN9nw_x{`6e=Xx%s}=Uye6CJM}kve{u5f z@c)ND-_DMIzxv^iCZ=7Rebo(^7{4!A%=dYAEpx+i;eFqZxZZ0kn>tm{V{P^+<++?? zEn>gjTc74#i2u@E(iJ$@S+Vz&^W7(JPF8RJ@nPTnsW+^ygkO(-skAV)u&AKsS9C@C zU%|;N-<U!yl}{J-6#UG--(JeLEaREYQ`r^=CWG5eHPbqoCrT$xcE4~^`NM_`F2(#_ z6Z`Z-!SC&E-TVEwf12&W*0gh%%=V`W)`x3tsJicPRQGh{&kO1Qw!gmp{=dDs@y^M% zQpFmPzm8kmAIjo<8pOQj+cY7C!0F+w{cB%6n!c~GX1RPpXe)2!F=NBPEl*qK?|6S` z&oiz&W~U!yN8UVlO5z32DxIyKRV(UTQctaJwAyau`tDQ0oj?9Rck8=tu}WXON<X3K z>G^2;bquKtZh2e7du>~Oyf6Qtm2yy%dr9x&cR4lRzuO#YxhX38@zScT%r9p~oLzNf z!540O=|HnBIX_eT=PcB@pm^2r#hT^`$%|8S=Y~oKU(*m+KJU*v;edvdmz-ALPOyLB z-7;aenNdN&x7?r8JUQh59sU`~c;kBO*8C0ME>}%Dr5J91VA-eAsge^O)daQv4|pB- z&?r_z(TuB!`G?83rZ;^X(w^^|%ws*Rd4+7C`}s#(EDiW43)&g}yEXT1dHuhqZ>|45 zQog<Z&zbDVB>97tS5=?znUsFrm7BkGa{b?*>@__sv)`=9nviy&r*NryIMb8&decL{ zn(BEScXXS4!rjS_eK(WwPUe%3A1L<kJ~sEjjOCj8rMuqD;ydKXU-j{sbFmD^-M8!F z)CDCYUZ%Xgk(`&KQS2w{dhCX*qx<}-^IK0;UevBReD0p+@yU_0Zhdn*AHAsvH_*EO zp={Tw6P(K5T7NL<Pqn<Y?`^x>;%1v?M>Y0jPMH4Q=fr_aNz*l^yzH+07Z-CnuQ7Bz zum4=j@QY@w1+(^DH#%GWar&lZigSG%e4Or`d-6n0TH^1~_-|W6+L=2RvK<jzH)ms+ zgvulL_R0+YYnA(p7o5)9s_)_6^fiikigKg8Mpa7n@A8<NdHZUni;I5zG;f*d`j4}p z1V=jv%(-$`@v`J1*4yW}N&}p3h0fzK>E-qnuIl#M_r1=3JNv)T``3E+Nu5!iY;$Jw zW4?P!m$NpUKD|w2T?CW<e@@dM4|h-LZL^#);q0dExhFHZT8=2rzo59=?5LGt&ceg# zMaP%dytP_*Xw|u@CdSBnrHb=*<a+&{6A|$(QuooCKR$NR|3dB9zI@}4ySwikcdggN zJM69ZUjJ9qGniNNed^oq|J=VFQLueGHNs5CTdQ0B+|IR2_1`2u>->Mm>%rdV&&;=< z%=vyM>HUt0{Byr8emVWb{Fkfpqqu}M>K~W;8BIyFyQCLozPzRI?n?R1#v2x%j5NI_ z{BJ6^Yns+g1<g4VIPX90e*P@G;dwq&KwZ!|v+3^FV!{*VB=2G1*Jz*AQ1IcSS9Onb z%c=xt<KCT5_1HdIiSydepLnG3GNWG8|M@3wh;2H_leXafPy1baYaeq@-<JP#-s;=$ zYZqDTd@^{?S#Yy_j@A2q``d*Y!MAg43O_a1{Jc~dkao4xB=@tAne37?kGRy%F?rm6 z>6f0up8Py*<_z1DxgKusc1*jTmXeg@{QN$j*DoH|2{$C(&-2hOZ0}@}lRS9)<)r<b zFC*T5*wPs9TXjI~vU17_?tcs!lKYfb*LX*6o8^DDIN|Rb``XmsHo{W&dw=`w+gILs z-sX3k$>CE@>F%Gkxecz@zxeh}x<caO!n=NRlIlIORUInDW*iDq5H|O%_n-OvmcfrE z-pJ)iF}kb0Ln^ubV%viE^ge&`c4>&kkCJD*Kiz-L!OqUE)69IF{r_I|ZQ=XNX5Thk zpRd1Z<@pWalUo{+IF0r_U2v&owa-$?sB^cBn45}(rPll3y{vB)(zE#gl+cPmtFI3Z zn3VNPnXi^Q&(h=ZfNN9jPjPlV)<^$tF!-xk-@4qAseESLr>=C#snu#d_Ot(Q^gXo2 zzG3E`BN}`suF3swt28mzF23+qonh&sUWw#uGp7sMmL9n`^Z2&-|MBzkGhTMr{x(~+ zw|aNkw`})c9)C`WhTT71pdK1OdAjx6{FyQ3k<(&zkNmq@$0PT2$FGT3d%mr9HVnO= z{8Qsn{3G@z_G4?hy>FTQTNu?XFjsRkdy#F;fnsCE9R=Sn^;V1TzAkxxuAjzBwyLb> zR<W@P%S8RXv*WE@)$R9d=N!9i8S`(O@utlu((6jy-fuLNkl(*<`f5J5=?7-Nn_`oa zlJKVSeM5FX^M*67XN>3X*|_(={stE-M)$o(Ma_bay-LvgbZmq7^_;-HjQ+a?XKJ&) z*sSBZc<1Tk#aRwElW%%jt==ZHH(+ti9E%W#1-vb6g-4z_ncF<u)-KGksrFFw_nQT2 zhgp{QnN(SYSqIHeKbPEa>p{Y?{qHko_}rM0yYln5Lz}fVr`7s$P2i4g`f9$nG<v2V z|LvW78qP6&xTrR7{;|H>Pwv`OxK7qiXZx^b8AJ4Tuc&j?KW$dUPx{<-?}53TPT}+~ zSLgdSOpBbpIsLxs!>jxE*RIe$*qC5{Q9G`;jlF(W&XJfuTCGY`8*94LjVHZ|`P4sO zajD!!?aGBM7y838XMe5RY_G2K?qFg`$J!q@ODFEtYg{QBGiTFd2dCwRkG=@1JI~>X zJGrVpubOlEWuxztch3J6AFma4Ls_ip;nch^%_%QFy%U^oaBiyn_Z#<*PX8D8>(a?p z;wQT+Rak<!nx)^aS@p1aVXx5A@VYhgh3{{f{>4Y)wECt^?$Lg={VM`lt5qiW*+qTz z^Hk8}zZIIo<9qsq!o8yW{c-!sRs|$w^F55&XJ5n>6~4Cf_@WsF*ZE~aA3nGrCUmyx zdD_%K;m(b>c?wo9GXFVuu0w2f(qqk@>D#6COYS$#Src^QTgfBN-5CyZx4k{*mKi?# z-817yQ`IkTW?H)TrbljKU%tYLx+7EX?5<I&%sYGUlzJ8a)1aSA*cf{~=Pi%xNpCtD zX}`t)f?l|G(6Sd6-<~Q8-zxjPbdP801OA^s@Axn*lQWtzYs03Wn~iqAW3bAY;ykA; zOS5F&!Z*duvKc&uManA0(F~W}{)ofQ0$4sJrSPH0w|iMVe>QM7r@paRy3EqpK-1$; zn831EO)V)2&F@;ePu%}$zh3`%9G|SxQ_+6eZ)aXPFJ61~S@(5L?)uC>C3mLHmd(wO zNwhlR^ybv;%PoyvGuPgz$Xl&ZedAQmB=!r8Won*jtF6AMUE@o+d-`{mW7?PCiH@na z&NgnE>in(cfcnK5ravb0d1P^()D)fHrpx{5-H(NePJfzL_t)NR3AcOuiDhp1SNR{O z{d3LZl04_zGN1n^w_V7g!@PpOEW_Avp-s|vC5_rkdi_(jAAJAwbHDL~ySL_5w_SBT z?V$Dc7@K-zS=CDUw@oKs8NGe7#+N~>pQCA8V|;i6V^fdKj-#KiziN(U&+yU^Ssmy7 z{?ay)gREY$!GAQ<KiHLiQVVnV!he76g2I)rlRS65iJ0ZB>*?zeu<fPFj1`6ZUK}{T zxZ(bnh1$0_&$oZJjj@&4G2_GCOZi^s_}CR0q|U8OYS#IENH8W*J2%sDJ)`%`mzvIB zBGqm+e(Ypha>gTq{dJIyduOqh%F8RYlf9Cor|hpi<mk2SL$~-^W1gNBiY0T7uV?n* z6S-z{>txXPd-oOvYZyM2_v_4lS6maH_$qKdH}7%}zckZjtZ$x7aX5YKwv>eK>JsP4 zoGqPvf_o41+oVrC6?9#JD{SRN<L3)4=j4Wen$^A~G(a;vvg1Zy@a`*xnwqs+PFyzr z)qJ8|uPjfEp<M6Y?s<L}oy)r}D=xJQHVs+z{o{%NdoR)W-2VkL?E+;NC5G+h3!43R z&#lRv4FAuu<W~ILwv|CfjraDkxvLLNTI{U(e%|EN^@}dgWG>mXK<?bXR<~M)=-Lkf z7jHTz9x>Qf8g-vXpXI8c%dKxy{bTR1vwt4CzVD2!@0WM$EjGoxWwMs-QrfHj{>-*_ z*QeR0c|SD!_GORC<#nEYmbd1wE-m29ypVA5w5$1^@@?7sR?CFm>+kt9#k9Bc;%P>m z&G|)@%dbuJ7Ps0OYdv>i_0n98?8ce##_<QNrbm793aUFDCX}-0kLbE(Z;Cy3&pNQM z;EC#{r%&}ObFEIRx=fiE{!zc?VMX<?+v{@P|J`T);o}VL+wcDz($-{OukuBE{i-$0 zpEpmuF8o!%t8bzPr%$eMO~~6%Te)v<|MTJTZT7k^g8N*`(|>Di=ic}6X7tMwwbgfI z&8PX*CGP3axnDn@ab8Ku7N5tal?wTG_e67E7XJaQk=P!+K1`WYB;w=xH_PS)m+fXu z%HOOf_~%8>j_N(D|6TfaPrjn0TDe+5@3Y3E)A4o(#pAtWSE$H-)0k~6rWPXFo;EFV zt@Qd|$qGNi|GC@!lc?6p%b)*e<@A&7Tf-_h>!y8r`s%RA`%8=ppS;7aZcWlJ_&;Ag z`$w>E*sC?mV`{bw`0KjIUn$?Bzm6}rr0|2x|0(}-BqRl%Y8ChEPkyj{t*pRA|DgF^ z_n9v7?z&bP7u0Na`tv8%cMF64>lRs>DI5+xv1ZqVmyMxnx6E3OU7x6VZ&&F4gPfsv z|BLV9R++>n`II&5<g&aYKQ}G%v2yrPuF*AV?cQT)t@<{qnKu`@{akcf`D@zFNt18L zoNU<mryx*GSn*SE$E8{8jDlLLwEI<W8U^i{yfjDV?Oy#uJdq1oo_8IYGSR90>;?|` zM~`>TWOxu1GRe<Bw`A#S1J2q_pEh|eoog`llp?c=Tsr&gvxWwe{qlnAr!FXpF}K*c zWc}jq_|;6AYqbv9y1!j%Y!jDxtMNrApUCDTY&jJrudWJi;kAlMyL0OD#GjU$8yBWN zmiLR=wk_wxzE6>9FJF8powh0UXXsu5wSI=nGb^9HzhRqoBv)jgWS~{KK>DHuwF_iR zg1A(Cw9jp3XFuR$G{eOw&WR!F_vMem)7`6HA3LbA<(A7GX~|{I%CZ|PYx6}~@BK1T zlFLp}nK8X2<G`E;M<2~qjEfCU)?B{f&|?SPPGRe#8YdZ-KgqZq(4>&1{`%_w>GhAl zzP%+}a)inCVX@uoIVP^t&u><`;G1^!;>o_+QxDDythQWn=s3Uq_w#Xnj+ORbHg1n` z+qcb8cjs*R;Eqqi9o5wbL#$$^2YS9_UKw4o-cw_i((;eLzJ}ZVtvbm(Z9xF<rgI-x zhdygCvShZKyWm^8LzwvoO{Md%?4Ok#&i1j{|K;WE+h3ob7Ee=BvnvTab<k|V{?dP6 zuAfp!@2EZAVzp)Gx(hYSkKBDb+5W6@?Ub3H7HDL?h@Zd2Pw^>3K&0!V-yAvozrH`5 zcF8vGLy7XHExm=Z(i+SXvvvP?8LyrH+pgWZjEiCJfiTM})%uszR`#2|RLf^Oz4n#; z$!(pVlr0M$bGn?F?YM8Npc}L5t;Zf$X8SC>^D#2*;j<@84kpO{isd;SIiJJRK+bDL zRqf%YXYcQd{MmI#Eo<+xC#EZ>DNfw}N@@iML#DH%$>9mg4jUG}`qsd&Gvn~Vq8Z;k zHLUl%I?(mPV-3r!c~+4-minlj-m9K8HDtnrsmre@*FBo;S}Wg>`bIeMWwqYln`#HN zHrTr!=PuW~*tJ^lMeS+F6%R~$OmaSKyB)h!+V{n&a+MRWt)>^3DZ4+LC30ZOIj{1A z!Co<?t`lvI&d*tV+F52xibX?e(1k6=Kib10+{2tN=~e7`btad?mqDbsQ)ge}#m;Ay zkK7{kBv-sGSt@oezo>BH(u&ld!N;r085j&RV>A~lP11YneZ=$R$+Zpw8+JW2z0ne0 zRo7<atl$0Afa8+zc@@?zW&A#I&2uLdGdAxyp+2`tNJ3rUq`h#<?w3DYSVXp{lwExI zJm&lJ;{uuomu}v4ILE@~rlb7Nz%|l3rGB&agwL6(d}{G2OZSebG#2?srMuZ=?>vh1 z*HVc36x_T&^TGRvN6p@+sXi)YyZJc0Z+m#8>4&L1*4Nzi+cza--ZI@SZ+Y@0Wp2ft zKC^Rmd*sVYT9u-o*Y(@(vi)~W`PLCbeZNPm{!Qe*t^fZ?_slI0s+rP}HhyXQeq?V~ z(w=;LTC&?Lt4+Sy%m1yH%MEzm!t?Lf&Vo~$|1_|atv(#^C3f8s;|Z@s*gO_r_<ZS( z-B}l#sd96EOk|y1w?lqTnVDqihx79U)jvxZG_R~YVaHJs`*w5h(!T=!lIn+ZPo6t6 zm-BSr6n2wIGu8hF>vwf*(?6nHe5+%F=HWTk6Zf5J`V#v5kG17W&bgD+GdfdW-rS?P zy5yL^!Uar^bf&VO|5fMebHF%p5%cVl$LukO+FmMXRV`joc;s;N9MvpN!EFmtt#fYW zNW{F!op;N`*LElSi7I7z@1|WZj3>GO>h0bp{d#KAnXu_Xzc0w2Kg)ICF1L7L{`Jzx zjQ+(t8rRtWy)FGUDEh&p6KZorCY%t>x8C@^l%H$P=4$8MyxSicXZt#wdNkib{puIb zB8lhRjy9`hy!4G<K5rHl5wJ;rB&@6A{#Ing<D&Ob$M>AAy~^_S_RE_OFKkGk9Aw4! zATQ`lK#ZGPU$}i<+3p_W-yQRM7vEyp{K)L&YCiMnta|ykrygW2%?fWXnD6w#?!B(r zQ;9b&>719^mh%1Fa`s$|ndIez0;k>N&$-*Nas1^pS>Cj3;>(Wng3|my)-+7;i8Qxh z=59EBr@2g^$T_@r;l~5wmVQmUj05Ix*z@A>5w4@kk+G%xOs}5Fu2epy`uBU?{l&MZ z*ENR+`>bE|K`kcm5}#UJ;Pc2#jyWkZpOsb~=62r`^l_qrx!$id%U3N$KMt*rIiK6) zK5x&F$F<^{vI>fX_xZf>n$A4o{Nv|K9i|+1|MyFH4|k(leqtu~a{s?`)?ZHj+Oz+T zo<R7Dl=pn^7uNsmu3?zF`jGyfs^r}VKW+GCQk~&@X7jzu(=vS%s{*I2I*@%@P+I)+ zHQzVlEA(ZGL!XB3-1qv_t>pZjQ?B-}uWPdvGfLv0cS)?WslP0YIX`uA&x*xUIE6bq zKAE2WqPD)oZ$-|u^^5F<1#dgw<I)liQC@6OWb<rV*Y<5j2|V{~yylgtE;*gcl8|Za zE3A0rr~b!-^8-aKT_>E3oT2shn8U?WSIVabUlLlmuW3c@N%fo>l`D1+76`;nTlhrq zN{!kv{f^z29{&FOeLL&bYwtEjq<_%2j+(|<f33JZYw`?tTj@Qm8xKu5>3qlLxuEYO zyG=6~&UkM6IwjKnYR13ypVa*HU*-Mw>t=7c!dWEuME|57%dgK|xrb8%{^f{?`g!dA zb#7*{(7CfL4<50uYk!{?b|!hHbb8KBj`q#(UxmlWST@)HtXcPF*`tqK)^nuJq~@@E zD)EuMDY;;C-o{hw+zgqtY_-1c$}H!6De$DX#pTpS!HLllU9%kSoHN!I-)(06VvgZ~ z^%pH~Jgt44=dt+X)l*G76$>=DJ3ZX0PaZSv{nVAQyjYFr=6Zw4vr<@QPU|=Oc=}U% zr#5S?kKN^ytA7Y234dWvwO;CQbpBiy-FF`x4@a)^yB2z1AW;A1gd@o=>l|Kw`F~@> z`Z>lfQ)6w8?)heP_@CG7goBdD{C=JL)&Gy(-{42wjeS2}zP{aUbLi!#t+Eq~bRO?f zUH4LU&Xvr4*OnY9NjE9IZIOG);C=o5s<{Ve7k!@h!*0o8W`mkb^}pn=%xl&9s(I8( zoQF+x)_sXhx$(b5e7#x~7yQ#a=fY~}F~y&`-Cus|no0dKUUR;vZ7#Oow4{HE!n~T_ zPv5@$9((iNw|$G>UQPGkw%+oGf518$*(r+|E%hHTCp16S$<5K&Bol16P4Ls=^RXuD z{`aJp{?p!UotSdt)@H^dS}&5g+ox=;IXuPUi>3U5RWsgr@4E0zSbEQsetwt6Pkbh) z?uoi9Pq=WvC#A!h@w8X}p{bX>RJ{Ky=cvyQX-_-Amfv2f{py$Z-H#I{KH2;8)G@Cu zKVAg3SH2T+T31tWt6eL(Ls2J+;m{w>&2j-dUu;=ZxhVMX-}Y<2qDvl5w|HU2uzAhg z3XkpcAL#E(TABRXGwDgC+zz&U@qce@8A7A#tNKdx%vYpnFH>W1@!RpqXTv$3kVRAH zZBMgY!L-Tl{jP`0wQumISmmut__B%RoZIZ{)sK(gY2Nx+R?&~^(o7SN3aQG^n#Z<y zHZ#9?=VWG_SGey?viz2#yj5{WW!KdRu2Ye;S@_%f|5@`7mnKhsTl`=D`>skEBjL_4 zf%#Kg1(q)_{xIu()A=`DA$^KT+7E-K=ko;Tv+d*1G_tO=mXa@>^0XwK)&79i{zcy- zc=s1Hu2TCo$?ML0cAaRcIl-Ed6B4;2G&W^D5DZG%`)h^y-KlGLN*VHBepUXH^YTpR zg{M#Cyi%?z|C5<<e1c~++cTlB>HoinGuM9pEqC+Yw|}c+B7Zq8c^vam{&z3Olgj*! zYOXh|s@1)ozAQSB#y<VW${<6%(-Y>-|Muy{Y-csyTZg8;DETq@YssV7AKREN-<3Kv zZ@pPiooVF-g^;3^6C9-#PYJGyS97%LcWeA`%D4XH>EI{L232eM&CfAiC|{-AKC!<1 z^ZqYWC%>Kk|K4lO-OQ6`aS8@plsP{waOMu>3WqJcfm60yeR(hJUdOOc_589qK5rxC z70j9W+@AmaHFx_J-alJUma$Zty=mdeVmJEV-BLEkmTTQ3pQZ0UPAu1`Kl<k4v$rR% z^04i`ZS!fS!bJhD4S)7>#h?HDPDLU&d5%p?<&#I>6xBA)|2K2`&ZnVv(ya@%Z-wqx zvyN~(#OrM(cwOr5gxf2AY^Zy+_RL4m%Z)d;FA4HGXQgy#s`CBh2MgxarTs}}X^*gP z7K>i<_)Tlm_iyt{95+mPqx3<ixmUTn^U?gZ3~#z#_`6OikF%}`@km)J=HnrA`P>VK zyFR6>R&NeoP}Gp;V)gXp!Fct>!j3<FEWGow;o(ZYeP8-q%j){hzT|o9ys-G^WxlXq zKQ^|VI)C3retvcT<|Ec>x7t5`zy1IC>)YS|OX!DGKD_tsYW-O@hlI4S$Xip53(vP@ zE|~g=gZF=_D|>S{Q>2wh#<R9SwzqfA$4M<Wvkv<#y!6vA=66d@PwiQvcw(7LAX}ze z-HVqTwNrIAeG)r(g8S*B>`iyFCX~xnPVtiF*~xUN>{6Ze-GY2Qy_3l)J#mE$I^yT~ zgjQNxC8;~sCv_-jOnJKgw6~?cP4VR8%XVz^ce<IU6uOS}?QHh+PgA1RHiYfe5J*Zr zs&TH3?et`JH7)kW-BFKonb;TJ*|e!oN?!KUI)k|%0y+XBSx*OTwQeoh_24Y?g@C5- z*SuDATu(cA*hQhk?#T71dJ`*$hRgrgF24Wk`1+|@2{%*RZ$97F`c$RI@$9FSo<bX@ zJ-zu|{l>*;=bf+S?&_MDcwRAef`nCU?#rqb+RqkQUzjj0-nMvJiuz@vuJ8;$(J)~i z=Jbcwa;_T2)w&kzIc-0(sQcY42`=F)(z+SHwa<6cjpI9*CfhY{`XUxxGc{0uRdo5? zd5wLImmg#=%09MO;O&zbjf+QCrn6mt|7&%A%H`KzrT#GUmu(gNylqq53O)TS%ef2= z88vGwYW|&hAf128r!3v!O~zsOXLAm|J(9%!wt;t#sbQ{C#A@A#{|`>(^$YkODKqic zf~PCwZ!J&V<ZmNyaH+>Icc#mdzeOoFXP$p9=2pnhNK;;*C>p*s{cq}~+oC&U%tTKw zeE9G)gU6MX8y3&hZrEJoooB3dxKDr0S^K0Vu@)LV;R`%vgiin5<C=K9;=sWT6$;Mx z48Pacf0f_2tM+?*WzX>wels|hR7)My_P_Y{%nsHYjXnW&N3xhdm_$uvYJK^mL?UkP zjhAX2!N+d!+RP0~dDEi&B%yxez4D$plhTjR;cRwc-rvv2@M~)JKD89#<+8JTET=YH zcx!yeW~bML$SD73XN?wdsBTQ2@y5i{_m+y@#ba7WCa^iZX}QFBXwufno;MFXDbl!W z^5>skj{L9wdAITk>;Fp6-+8cYpK#o*#YImAirj8!$OlZ2k;<E?`Xr?2aP}_O*03o# z2bzQICLZWm^NGXZx8r;3y-GU&4eo8q`Z;U0?l*@YDu<Kv_fE+-usNPRVej(z%5eUF zIdfYlI-i!XJlWn>+A-HhA^A<__H~`9=|`%#sy?ayKQT=$bL(sU-UlkD8eLD^vt5+` zQT(^eWwS#D0_UCoEU0+Rp89XmJkKLi4Ns@lsyp$mHC5SnnAO8-vixmjmQ!b~Ed{2$ znbzRb(Y#psj6-_tx<B470cGx~|F+53_3$n$-){eB>TmtB_OA)q#@!i5=S>P(le;oh z?}y*oJDjqfcXd<~TD;Gn51u3=wEU4%{vn1t(Uxl8*9EPfv2e$Gfos<Uf9JSsE@ob7 zGN~fvQDOZ;mhT^AbHbi0{W&XN`HCyr^ndcbO<zmq^qyOg{pNw`lP|9x?{Pf)YwO3Q z+Zc~ATWlBBIp+D^HZwlz<A+(5yB`+F?d9rx^-$YBOdxk|<W}!MrdE+F?>e-Ttk=f` z%v8&mtv<(aQ{joIq!uZ`on0A+r)r<^P0(AuxBvNu^?Uzn-QSSDc|pE%Pg_T~&C9<c zMbo5jyXAJAIu{(+{#D@Uv`DXL>qkcqWgM5RyXyN)tNEzEjrUT$)b!5{KPRvJ;T#gl zccw3At<amNE$JK+6Luzk{`I5h7iU???+?$u$K8~BD*HSysXOlC$~oJbQ%cV$98tW^ z*&NRD@{OYR-A1X++DwZ=BiT=RNX?j}9kJ`g>%OIGIsyUT^0r+1cD=IXoc2WX{m(yr zJ6n_TbhceZ?r)?1q^-<~%bxZHluEfje{uTr)4A_w?b(tzp~vvnhqWc|^j^x{Pw;m- z{rQRBH=VDu%U`JJUy6C+Wqsrn|M?Soj60Q<otyXX8fb~>vB|fS{eN>jxtn89^X~i2 z9nY?+H}U!32stkMH!#jD>RP3KbM88q<$oS?AJDNjuak5-&88<GedZK<*?hibf{W%{ z*?LkiYLkr3zQ6aYO!P&BijO=moSXA{^`;h^q>SguIo+*)1Qs<HE#m2y+beWCOTl`A zN?Xszt5HWSo9~~zw*7jFk5Ng_&!@#aKR%Y9npAX}McByohls0$MU?rp`!&<TcOPNX z|LC{;<MRD)JIr<BZq{|@_g~3fAmCmeW~P0!XKn}2lB#(ZQrGdkJ-6NNi*6^&1^$d^ zwOA<?>kV7XJwG_!|CRAUFs3qV!}^n3YVS5X{kY1RopPK{)FZ$C>|5qnH~!t4AUbW` z8yl}x{p}(1ejje-p8jw7{D1q`)&HwIbC})IT$^G2-kRsfwjO^MyFcOZR^<&$yeplx z@3Qo&>~K2Aot$;j<VDg2%hHaLCKva(8V-veACzo(TOu>q(vSX<-v5$q!=;Pyi@F1T zT~n1$j8LE0_Eztz+>Ixv*EYR)WboYJ!yo(bDE%V)ug&#OSH4|pzw3nfJFgd6%qqDq z`@-)to}Rf*|Dm>HhX1{sMbj1+IDN?6c9nsf!6`d4<HY9Vb8BvHE)bQPyTkC<gp!QK z`dcoQOt7;!x3RZ4#pK@Pr&mi(O^yq_HLFU<eXlEDWjEKQ{$kgx57k`a6_Xyl`?AL9 zeY59H%jF_dw0R=;t=$mH%<VW~HS=M!ub%T3Ph{XyI<x;mw^IL1o{wQ$!uOYL+I#49 zm(c~q!>eDsm~@}dbLBDSl*Qc4Z>0DCJoW9?=HoWLhqCM9zltth@b=4s)!L3zujor} znBrJ)`7U?-jtzG!1Xt?b3VyT7Zlj>$b5}nfr}=w!?0x8~^VDcUO>eZ%#-n8yKY5$v z|4BA}WdGmVPHn}4jp0_00?nRlo&KPCc!8jB%h45V6W$3${`THvInA%;s@Dtmy3b!( zGVlGGmL*?1A>*3$zP}m2&*%pkTmRj*JF0Z?kMQ{yd$jefrDtE?nHw9kBL3Ih3u)({ z9C{=fayU5Vmb6GMPu*%+$qQUNx;9MGP5AM&JN}UQ%$Hksne484e?Xu<=cb~<JGp7I z_h@L9?)a2d-{|X8z_<HZG@sRxUazC73+;Y{TQ8OIzbWd}$@hiPRlwm~XIWI-;#naa z%5&fCJFvy%<n-;8XDt3-RGgGh=_jpYxnSe{_+Ouc6jJ}Sy1VVrH|V#r*JgO0#`Ix# ze(kqk?(vnEdG9;sUx+l)5ZwOn(+<&zcepPpa_r3Se0*nFuy=?3*24@Nnx{SM+kB}a z)L3Z$k>^UKJ-5~ElAig5wf*xHi`;E|F{&-=XYX~%xA8)=^ga0=FR|l#ydz!WdH>>V zLQmOrC;gYsyHQxCYr`|8o#o$#yQ|x34EgT7$OtU_(#>PHZt+r`RFn6LbE>~{8ENc4 zBIbK|seVbulw9_hY6-7;L6NGX>X+V}R(seb_U<Oz8J>SaWzS^Ur#*bPanX$<in8jZ zOX7HY{Vy~w)hiWF?TuOVQo_PNdA_KmqtLmo79F<k6d%(^%Jta|nJtr*7yr|EyK4V4 z(HEhT{L_y1X(cs;%%8jAdt&murz;uG?VEc>a(4ee+d~KbeA#YyYW9N~=X<Vk`--!F zKgz%7SNGXtS<Msc`VD*Mp6$34``CMZe){#l!S8pRS=_Sy(oN;PVH=LQoo)Ev{_peh z6XxF<>ff$bf8(Ag@WUod@w;B%lua)-U3ELV=KFT{Bt{|8$sY6hmp^T05BPCtWBTa_ z5xF<6&d52oRc?9Bw?D$mYfL{SO-tYN{$6fuL5<_TCrXuEvn@V7*_*;{^L=4OX>Mi8 zRF+RZebHAwEHTI^t}6@QcPILrR_Mn$YEPa9R4@4T_xbeIDNkN?S5E2Yp0%hw+VUUI zrDCbe%$sF6rloI^t@>kop~-q<nEx%e!`D~-JS?Eb$sWCLdT)8)g_+?IO~PVd{C;vx z7LST|d2+St*7+0JW^04jp4{Rc`Qv2Iu^W*(zT%J7?;UEejPzD`eA(}NrO)mDgbK~e zb;1=N3rZfZHp<(rW$-jX?BU5eg^;I8%?IT#%(rFT;PuYm^GW{SwQt|q|LXL<zWMSD zzx!-67_YZwAKh(p?q=JYGq;x7X>Yfh-xu&OZ;9vgXK70R(@U;hfAr>QN!-Wnzh%7? zOmvht#mwUM+<T-%LE)Oo(H=eL!;fyWMjpQ?c$If+ana%F+fq3%T)Wp|Jo)J2*IZ0H zn3u{v%PpTT9J5y=-A`~!$fGTa)@$Fa30<~jO8evmImft{<oeBVKCx=Dr1Wyf<*My_ zq>9RZPvbm&PjIsFrcE<>=SE(dT6SfsrEi~&)huiC<$v}>1-JiP<g=lcEw1{Ib>5%D z8Y|y#nl-6r)0=mppGvHBcXWSTaOR-!D#zzJUXjdei%;_B30O->o`2<4={P&4<>H^) z-P2;Tos>2!N?w>%UHP(K|DR^W;}glR&WrDp2x++ULe!+}?9SJRY<|spW#c4u_fuHi zzoYkSJ6m2_MIMX0*y?_hYwMn^(L0S91iotu{WNOmG~P1DWv<Ajm$wp^Z{Eh=ey+mq z6VqCY$U}U07~gc2w#(k^v7T$1yQ?GW_={k{k6Ru$eznwgQwqIsZZ?1T$)*_fspXr3 z+UDL$ir?^_e@d>z&Z%0}y6%@xnN^5Q;7eCM62g#v^Iqbk_D>V!F7LRmpmutLY4`m# z;@jr`>B>6m^5rg9A*=8otJSMCKfA4a9-O#?dj|Jhox(RAyZ*ec71vETu6E04YkX1B z<nJL7{ktDLm|e$RrY?{z#5gn8^6jjOH*Lpmr|r{L+0OqYFz);Dg^Ks*?Y;UaE&q4d z$>J+b-Ukc(;#b99d2RT9&jr51)n^@MMe|;I#iD+@RBht(H2woSBN;a&6)tu@8j<+1 zK#DQFJU)6e<Hfu;8m+HmLLbjNt+-@L%&nI_tCxB>GRQ4oeP!ih+2pq^?$0&P=q<bx z%)~9efqk!O`lESoqb;+iE6N%$&)f0!*{;3q&0U+#bi$3S^4VRb-sDdYSj?~~=|PwK zsnw@6=l;HVN5k*$3lGbgK2Z??mXn!+PgL(a((&Tpqy#_NC%(!(Zv#$$Sdj2sEYVp( zxv(|(L!%gD<;#;&2X^^7$Og)Ned5YJJy9~vCGx3qYsV2ayWD9zrQURO>=4^L<D5&| zbCDanuGLMn+@hD_I%fk%{<=b=2X^}Je?%{>@yc?k{c61LedXz6HuJaEU*u#tXys!Y zRWO<H!P<QZuP(CHZS+_EVJ=(!&5Y6O!u%HjQ-wEL@@zV{^7Z8fHx?D&n%0&&_w5~H z&qaPOx48e`WV&fV+y4oSi&NjnU6qR2dRJain02b6#pLW7Ep3mDOMmgdRGFCiMks9h zV`YtohWF}uvqB9fDRLIDT}mrh<13-M_(JjV@SnWvBB!XIFnBZd(T$GaRCU1*2UKLz z9?NcGnj|XDAP}{z`j@k|1mC$68+~NMYp3Qry*BbIJ?8Lq#`HaUwj7t;tQxlOP&%|P z=heQ8uO`^N?~$1K#3ol}R!Y0`8&k#J#?4i)xApuKWU%2`_@ZV~{DTww3m@LQxHFP5 zLBq!W;qm$pui{f3{`gs!-}fs&$!i<Cb7e3;i+WF7qLuZTHsyquEIXxEO1@b4t?);z zmbAy8Q#0qD|Du_<V`r0|HIH;_xbEhM$5Or6AC%}^e7BHyW=W5Bfy@R^mi2BM(hmy9 z&ikfiCob~wk<=PfuiJSwkH3}8JzqNS!tw0WA7kE5lKd{vWAS;Kn??)Yan(ya{}gh# z&3fMCdz@|*tD67++vH_&zO%!^?uD@HoPTl2ardJKuNqHh882R5*;-anw6$Ny+Uj(W zC7)iT=7bX^bBoTf>7KeQ%9Y9cs<idc@2RFUwRf*Be&xrtOE_omzeloWu8SOM?|nPC zP3L8k|4!zh#ZLu)YJ~4E{P_E9dh+xg3l)DI5Qt3JG^^?Fw>GioH==z?zs~F5n=#+d zD`K0#^yf^KXP@}($+WiR(zjChP^0zUXfEfzV>f&orkxbETc<qveThZrjkC){XPkZ> zt-oA%=^Ib=^S;T4{1b1#dvz^D^Gwj{r#yFO2-;oXdvxq?!=%;b_b#1O^KOv*@!?^~ zE7etBPPXg33~rBgJH@Y`o~l-2^Y#``Ptrt{=g%7oUzg_P+l2GlraV%8xw+KvYoLUf z&x-cSIp@Dk@E6(rsC}LHx|#(E6-%tE4hO!fPM9{;=2z_}$=K8x+aDBd?U{eOZp!-D zjmdACLhNo&i+QRpD0KJwh3SpFQq5IPCp3?WEz=VFD0Y$M?<2G6LFVy!ae~(WCMN$B zIVu#Jaw@Cx@Ur!<rQNrMhv{8X=jnaQop{gwV%x3FH@2sK*4S`y@!PHGuNkzL=GF>p zEeq3W+x%gbh|q26sqTl`dx}3?NRe6i=koOE126Btx7$2d=I@jH|HaqO?e;vdGm0_c zL6xKbriBmkZ@aR2uD|lSj6sxpU9H|$n{y1APEzWkb7#I|XkRF+vYP8b$q}}rl{dKp zj4b%N8Pr+##n;c#a*=5>f9biPdeNcPf$d3#Yuwlu_Lj{ztGC+skkyPyj87@y*k+Yu zYX#nZPM73d@3*Oe=k`WN%W3XxZUKy^Tuy9?*&lABkYRjq;ZZl+Gi8rXg-tZrYPMU+ zYmSx1e9nih9=mR+DIJ)U%09{MWP<XZX?@vgdj6BkBsmllTAqG-W!^VgTsLM~M5k;} znJoYF7p=Pro^bwMEi7ku?$Z2A`Bhhx(=#3Ce~j7MnvmGwq`ua~?LofaLEd}EKR)@i z{rL0Hlhdp_Y?9pX?3#SesCdzY-o_=hFZ~3L6ic@_I_=^T^?uHskm7T1`nkl6hOZL) zC$z_Za#G322(RsW9L{n?p<_M6q-C4+Tq`b%?KW^vRlB9QVpnHhL4kzQqG#5Vb*_Hl zm~JL_Z&B!%>vyk2oZK|`$CLO5Gsz{gv5lrS!eX_~wyssLGUn>cmR9bcyz<1sZMAEc z={yYFv+uz+wa<xB(uWqyyv^LTC76>*X4b0u+*e9d7JN#yZ$Gj+=8Q$9-*3_5=a+ZJ zRXj6$di;s)zZ-v)F1v5NyNr|ZyXD6lfgc14JZ?68vF1Ga`T~bB{}X-TS?AI}S(r@e z|2lma_Zsi+AE&}EADh8&+pTna?yX5X_6huQwp;c$d%yk1NhXr%NvHM}yga5H{$3_* z*3#Mz=DUY}a+U;LFO|7}^)0ty(NnKmjrwyF(oOl?@0>dt@bcY*l`jfcxlK3Tl6-IL z!wZSWJP*b4-ZY<oGeW8V@PoN8&t1RDb$f=_miDa+{+^sA8I*BcZ2h_1FE3wOJ{5HM zx#Xt#yaqRh-N$Yo{99}PEoEPl`p#u+t96uiE_&E18&|m_>EWt2jl#G>rCm7z{NWsR z^UT7}oB1S^rQKY^G5u-Pp{o}*%`^%QmzwFMEFsrpu`hQ0CfN-o)9P=n=;XWg`po_E z!smusIhQP~!%j#1ldargG~rmsp^#l~8<bXClpXpv$+6X;+rTH!cxue1{K@I>nU`PI zEx6cp-OiDD+Hsf2Fp1pKOF`j#Lie?5uA8zrJm+7sKbzR&zsAk4uD|PeE;4J&qo%Dt zd-d&0pB@yQy+}cSTCDZXeAPLfi~%86;=NBFIk@eya@))T$Hlgn`fSc$Yy5HJ-j9Wm zUk)p*|Jh(;A~LV^bzCEl#jQ5Kw_ox#gZOPSv!^lsyw_<nH6Smq_MykM-hXeh7C6q+ z3|4o0`uTxN^(UK6zRPQ7um3qYz9vTgT$a+d^-Y}%CLJ~GsdTw)Gux$cU&K!ZXExb& zKi|ZsrCutsTG;zzONYqE;Fr8ym+g4X{ATRAdcgNoef=uI%m+Ere~a(`fAMW@{o9qM zmO`Zpt81Mft3U0&()Me??D;mQ&fm1KFT9v7<M4q&`}{haz%bXKf7vpNew|~|O$#$+ za%U43e63L%``ui*_(?@y(wCL{)ebJT{+oK+qGa=@>01sxnXFc(Cb@fZe&?>9l?Pwj zZ?dh{TleqmwVhFn3*J?wrRCm=EI2yjSTygsU#3g+f^U``GJSA-;Q>p5u5zZt<If*Q zoVsM0_tEOQiHF&%HQJpgI&Zx3GJE!HNrhtJ(?fBL2PZubNLqcDefNqkvliD^4HMaX z>Mm7o-#AYuqgHq2&mD)0?*?95v?$v4MeW@0mA~5#y#JZ)pR@np=k+<)D|2*e`)(x^ z-^}mHy_#8YE33Vvb*Xjki6vfgPj)fi@B7se-e&dk)ZVh0e;dm=^_&G-!?#87w?+$| zcA4RGB)4FW(xQdUUha9eKmP1`_+r-6%$o-e{E9ikQfv_sr+4yP&?BCppcGE=ROaru zo|~s<R@~$eZkQsi#<5!U$2IdKGaid}Kb^N+*J$<u@!!)t?iHoWOE9Wl_UwIA`rG;7 zPxeQ-Qx<KMi+Od;uhQS+cA=bMV)2CH3mYB_&$rcoaOD0``KhnJD|w^|39?PqSmn3k zRKe_n2mQjUPP^^>w3cD-OUVGwqwH5-dq+I-_Y+{u@RuuXi8JkzEdAw|CwTGNmno4u zH?Zvyw`qBHu%+gefzR*D@<-B=QWQ%(?7n8E7M3(gIR%|#p7L_Zi3dlL!xrWI|73OG z{DJw^*VjC9b$?x6w9w|XP24*Bj>By=AuFd`6>Lmi|7%Kq+|{S2y!2e6)>ZtLJ$;S4 zeWmp2OP)P%_c|Fh)|@x`D15c(Q`R$2^SHfip7;K4%)V`HS5f*q_x_=dHw&cndrJdS z(|QC-kCdB;mA_hC+Q#vqPo*%wIV*nMqqD*@z2-V;l%||Yk@L`zJ@s_D(Yv3b6MpnO zojJeeR@m}Y#w;1PxgPm`zI<<H4OjPHXO291rFw>w;&v73y9*!g_x0p|w$Lv6$#b;} z9u-Qr9DJ9}4Qbz=w*M{5>4Rl2Gv5?)q|aPEH?(~s-`=V|lUo%sv)ry-YGjbk-=+QJ z_JyyTK4j1I{OHnV{w-_U!V}u-YL^vnS}DEx<cjT|-JEVO4*soTxT5%xnccs6KcAG| z6D}zJeIdTiMxRN`(QC`$#TOqu*;!=pp2_k?z-k@7PhpQkx0`5XS%vn+u@_6v-aF%` zX~nCEgj=E(&yQ%WeC2h#Z^Dv0Eom=Je1xL)Ld_1ZTDLKgQ*ues?mwqzxE0)5X{Ew4 zeB%^<N`Mu}fk_NI$meCadI%1-5)pqu|quc#FzAKMvS4F4RF{j}md>l{Cm)Vn6L z64PIJ`)l22Nb!>_xHmIZmhGfv)`ZNvtTC*SdwkiZZ8;>o@?gB&p-V?OY_(>siSX#@ z+hTh;mW}U~lx=g`tKe$&{zuQ38#(=1vxs{;8%IX+vpLK2FNF16_^w_pw(9Aw<^A<H zxA9zzHqorV%qylopLtih^Q(}D(~{LzeGuzXE|Du%xK!Jh8eZlRePwgKpXE`N&dH7% zI?@k?CxkaopU76kr~B#Nx5m|bUObQ5$MW*?zgJO>D@u-D{~6%cy{e{FW1DLIw&IU6 zLGDvlTXxUUd;B6nD7EZ|Jxi+a6K{_?t9PC|SI4jV#I=pbQn^RvkJw|U*;6lG{FLO~ z;!@K&IqyR+w?Z#_Lz#DRVs+hx=MQVvg)!*G?*3q7&bY#S?)l@c5;_@oDy8LKir!KT zdU|Z_jkc%Gy0YbEb+f;FF8|c%Dko=fzMcPkOlw8z^0@Rpl1pmdO*nQ^xH9sPmwIaT zVLkQ_kFU#cE_i5v(70;Ry&W1tn_Z-(_U=AB&u_x%sH*+U+qPwTTgh!IxPHvN;@M=K zNeP#K|2wq!_WOU6-Y2wsOxeOII`RJRQsHaSkK4Ar+|2Smy>~Zb`lbY%S6v>~IWyiZ z^IOhv?rF*Vv=3T$o}Zap5z}<c?}%CY44WBSgg-o1Nqe>JeCqPN10F5`+frX0cdJ=) z_W8c|KlBRL)%e#|iQJ0mbk6sPy!!0N68VaVpA!?^7k1QEy=Zv4DsQ6L#n?R4=Y}g9 zxwjPvB&pBaw7Kr|mJ`!bVjG#yzg;2}UUH=WqxEUWz&P7wK9OsMCiqoy1^HgMZC5kp zRQcKabz8L~E&gnDv~zuD)^})Ej_<sMTh9rxo6awpcE&fyJ^w-QrXQ|haV&NUPhMUB zmb&4MMzh3<{ans_QWNjSeY$AB?!{yIIgH}{&pCIo8|CO9<PLA!&v!_9TC=nO_x&pe zHreDl3VaDYeR}G&A5$H2UCytp>M+Z&Iqem)@5xG+(4AdE?`Fo!c|Mg9W4JcI<5tP( z$9?^>51;GIeEeSBVB3mk4_fA*etazO^rjs7#^vWf?Ml4n-mv%A|10PB9D3&d=Ru%> z)KbTmh26T$A9UiDsMq-H5tp55(<mY;bV|*R<w$vG1V?2{#qs@I3!iElKNXVNyZP{k z3ONNk@%_@XE=6g+k&<SQ-8LaBw(H|xu5H5mmuT)bxHvC;(NU&=jSUyJC8^K<Ugkf` z@&AVQVpGNghIug`dh7Z2T#2&syKQkYGiLRnRc@=Vu}1y=r)Kf#)Dq<fS1Lct^PLwG zSTy@W@Jg<;cfyMTWGZLgbeitjyiH(zXTiyi*i4fp$r+!ER$XO2ASrk}q4eFOO;5Sl zZfD#{mI_gMCGcwQoAe*kYE1nMlul2%T=c!b;{}(pHFL$0LndVj^;J3N+uk_@r(IaG zXTtO%M%x^-b8CcJJdMkG?TdV}IT+PWe{fPWN|Tx~w{Z5va~_o<4gGFuhc=6N`n<3y z)tdXPMBq?Vuu`dLT8KT<%%;{wsWKg+J`z9TCfImqOuQ;s@q*98`a^K(c4d3k>E{J% zPuZV{cqJnL^U>0$4qI+HPtC9jROiz?Ab6w5ch>uujZ(Rm6FoN?XLkQ`OZ{oX)vfUL zR&&7?&KoyZemPa2l)88gn}@oU&cyVe51tn$SL^zIPrvY9hQ~FjeVZ!7`!(_zg8M#v z41OWrP;-*mrf!K3%iXQ^ktPf#1$BWAPVp)gB3qT1XBe;W3EODfoWAiZi`cy_sjLm} zZ|k?4v2S=;Z1#VN@x-DdT}cV^+Rv@1EZVS)r?&gPdi|@ZN?dDxbT7ZPs$}V8W0N%B z8z<KP>sV4%q#=9BQ~AV;T>(mQ&pOsfEV#h7ky&>~##4I(6Q$Js$;;-y(b8S_aC*w} zTYEHa+a2C_^2da}T^md;oOJr}IRE>(vw!P9SM5_{P%oc<-dkx+h}O;Nt`UWWg4sKx zcd5T${mUvwWBIw`-lwIH1ul%0?)cKY#{ZO)QsMan6W?<+TIKD3*5PP#{FTmK1@X{^ zz3*p+sdmog;hXmR<*ZB3G;V2!I>+Tj1O~Y{U2eJY^6JjHp9HO|=GM(m5$@&rw;+0L z66eFLg#j|huecmPmU^6TuhpUerS2S+C5Zyvp6s$arOwv+z5DGr`S<kPZ8g&(<2FrX z`C6!9rg)=tLaO%J+M6$!-tCX{KH?{uEKy?geY5g|=TkSly5@E4MVZsl2hT)jXuAl# z4P99!r@i^}nW<|WIG5{ms%0$t=qWy>gfWfj#>oS{=}i+oo*J%?ow{_AYU=#H2HBuF z`;8MPIz~NR?8V{vet*Nu(6rw73Wq{;4;G#9;woC5(`C+j<(H21>uc5b%a;9Y+4}WT zu39et^0T#hr{4Q%xjKt3NGzR|!d8^HAURt(X<CAH4*UPK??=NT6Eo#b7Tezy?T*~a z6#n)&V^8R^oJ+S~s!BC37M42tvm+{J$J<=dPo4ZbwIpWz%d?x#f6C{U6SG*Y#7sw< zOKsCW>-~_-P)~TrKhx&dC6&{kD#BzIhUe$Kwb;}*SDC%`o9n9cc9R>Q^K7Y9>Cm5i zF5LC_x@|l6y~sGntF>^S#_@A0aaqfB_U|%3xJ|SxMom2bmi$HGUrL1&Cv&ESmalAe zDB@Uhv8Bae%gIN7I<s$;PSf@|D`Cg)`a*YF!?X*=C3nj<KW`6pmtTLSKkaDhjH!Z_ z8(xckyM8Tm|Ibe`cbP6MJ@3Dx_$8b7#GG(HZeLx$)Lq>s(!Us9Bt$Oqf9)Mw-Wx2U z_I38Bl~a0+ORfFQzguRk36s`g=AHY{lr4VxroZp14cR>pCpw%vHvN@?p8YA~*Csu8 zvKo#YOF6uqdB+){?<=P5o+T;RP{xvXDoQVpdA^v-6+W-K#tZiSXP3V#SHJnw6pNWb zs~p?9)-K-Ul=e@o#I<}uNtd4bx^o5|KmAYpw!5`Y_^umJS9T=1$Ry(5r(eyc6FuLb zUzBiW$KKV(r;qzxZ~SL=`fTQj53MelUm|ZMR2*l&@#V<*2SSDSezZB9zC68E;@ZTH zQkC_*_n$sLz0b0!RYH39=N8Ui{;d)UJ@I<`ZGzi>DHMH~ZWy#>-%hpg7u$M@u5Qeq zySvHwmBI|qBbrCcuKZ}6tuitAXW+bFT@!A6%l{*=@8EWpZ%6gFg+#auX*X<I`1$i= zP0!OjXEyDAyJWJ@&*z^nD$kE#y-{o4Fh6ly&!vA8jD;6nDBpSAMT$*(M|IunEB8<M zPE?8%dwpK^;q)6v((hKBRy_UF*z*EY*MV)XLcc`466dRDO-+!$`peL6ajwABZCy3Z zv&G-4uUUU3a+heKu8KO}<dO*|EHWM69ug@Le%9IW?exM;=ZrW-7I@Uf-kGU$V_)^3 zQ>@MT(z4Tc<jB4Z))u&a?MC!`j&;!{*0Z+l+~TnNv*3Q?kNf27OfKC~c&XbFeD2aQ zS=%BP*{S(AzSYzitkC3F>6zuTz~jjptEJvLj>49jLR<K?Ih$wCJ+036Yr*CXjqg<@ z#r@_cZ(2P$E?|n&gR?@?I_8&~3|E*P;%fOm=PuKYa>JAl5BWkaYR6>S<=Y!2KL7N# zG$Ckbh?-yg+~n)qe5%<VTQr=$QrPn{;ZnqxKBaAkeU5+ozw!IB^Sjco$KHQG$NI}& z+wCo>XSb=`KC!K5Bb)cOCK;`=heF5Lv?Mq@MfY%ouH180{z15+=p?Vu1s+bJ6|9O5 ztpe=gt<EhQ4JNhT*=FNWR6Su$W!Bcb?{D{gw*6VNFMI9ZKj#9qPo92J^3C%6=I?RU zzSVEH9>4$LhX1q=k2KdR&J```pL<3pU7T0ybocBNf4aBxZ@I#_EQeElhW&>nVLTti zix<a#u{xc-C%WjUi{;Osffj-6lX>5UEY_db%s=hKLRH%`Z}sdS2GO6y6@IWE^m^kT z;3NHw+2x=cuXtu<2-hFeh2}FaipEuZZqVOr_~y-eNoifHGw-&uF^Ms5d%kb_k$2m+ z?^9l1@Wfm1vu1^Fnf2VItnq6uoOYgiC|)D+yzwTkn2=@M`u@#JK0TW~t)ixMg<9YG z?(@$lhR2-w`ap1MRm=1>ZQ{Fh{~ca>YKy0ydWSZL+iJT@CpP?Z&M@!nNfchRjF(@) zVb%Uu+^hXWM1?=N8avNFwCV&;WbH{mOOf<RhKcuu!xy(q*mKZGq|2|y_FvX?quzwO z7gqjoX#0Q8^!*LDEdpwa=1rL<L2`=8UO{J#e=vkhDA?62)i!6QOz4IMmp<IjDG`1x z6DwOBbD-fyPHHWOud;&m;}>cl-YoZY<M^Xj`1aoX;=VUG))%sDNxHZp|JCL#$2N;` z`GxLG`5BusmH%<bu~{a*r`Mmb3!Xo5PK4S={bJwkT$5JF99qp=_9@J8!#d}b8~eiz z?zSF^$^CTl<>ZQg@^j~`7H%jm<$Unt-rQ_;_v7Zvcys-vebdjpE8w~`>4%UtkF09{ zfzI0n!RvmM9{b^Lz5GMV$=BKsDpo$s>-)Pq=D~?ejf<H7%voY1w%Pby;DN6%a-Lj2 zAG&FEA-k~4PpA2Q%2G|P;rry%1a8J|IDcwixgwu{_)f{wvKLlLbE-}>*m81<9Ye|% z?yD1bFJ2~B>vE#{Qt=!2r!_1FZhf({R<?wGd~+#A;ws<WBD*rZR^E9Vj_H4V6sUJ= zit9rLrcFA>Z(a51ea51sf6_<1(q&Q)huYmc#t;1b_qeDj2;P@SSoil*+HCV~(>-1r zOYc9JqI~6oe8$m>+qd}Z{XM~4RX*9$YpOW&%zpoSdoPx8CfB6ybbKkibKCE%&tWd} zdW9~1-OAqN-MaVAQvHx>#ar8t#C}=MymIMNzEvkq#J+m6^&;!Lr5{61&0W0vg=o_4 zNrk7kYjyFQ5ngzw`BHa6{TU7GTVdwA{C*winX+fsSqsA*9K!Rpc2;k`$1iwg+QgDC zF7ChEYB`x#PRj2rSw3z1Hpa;+jV@}dup|6O{7|MkK6+O1nYRS8Y9$ZYUZoby3- z%Be0p;ZxJ*Ra8tWu>Y~PW5>ePt-o%pl?ZvbfG0RrdXfFtYwK-4t_q%49rNk&^0Sp9 zX47SsA3E$(yLj)HPloobD&bY9q|9o(wj8*;g0~>B^mzKZQw;^$@j^E*cl-$uo^HFj z;a!!^v=?O)w=3MLdm4RB<Ze{i)-0B-COaN2wmg{`w`hG<?>XMnFI5hG(s=S{!xCe@ z{!~7rF3Gz0%2#{TzXfXst#@p;|9*7N?CA`Vy6w}7g?|`cP5-!ddG5~4cVC#ZX2^E! z)|I+=@IqgT^Z8Y_vNBITF10vlV41BbtD7jm^<b+KdtEDc;nqC6O_Pq#mC50C;oD=m zt2^$jchT`swjVDpy;wQfeC<1zD0B6{uO9fa=Sp3@y0h<%N_xMPRqEt#96oy&#iwXg z+}`)xU4G@kn7c7@TxFZo!s2c`={7larms?@Sm?q&&JQQ_biW3!^I4VQoAFR}L&}<> zi&5tkH!@fUTwJPmin~6MNArf=x4cao(_h|I3iY(%2(~W>w@giL4t}*@iMhp1x8Q{x zy!}fS&9B+ilyl)j!Cs;NNlhGmF*znLS04T#vR@+fijTI}Y_0lJJ`VkFKXb0nN`5<| zRgqg@{cGzN)82nSA}yz6DKP!ZL2-S@y&-EiFFleH!*WV|#h>KqX(3nIwLF#9*GRF) zvU*GZt+^KKz@y6d<Cc-f6MxoHy_t(vBz<_*?W3S={%xDTNZr)se`l}%z%}*6Z=G{r z_HNi3uOh;q>grp;?KwMa)x{{W((~)B*tGf|8Q=MIWy17Wsf53){F$Sw3>1$&Q&`)j zA9h<Cv>NM_x%~n+Rn@6cJp3J@v)<1=u*zYvICn|^FQ#(VUo(TGLh53=?>@CYyLUo@ z(4DO94^8tUeE0L#WxreG(^)fjQAVZr)M<(TJNc7lw=jR~$T}n5e`&d(*|Sv=YEPTL zSL}KbGne7W`nWqH_iHY+Z-0IMQpi@P*Wb2_sclyN9JN|lp820@*vqOfRgc4L&M*dY z9hZ|WJ-+0?SKWv`ntW?lyN7LiGfOA9@A~SZ-1r$PWn%1h|9baG-(Yo!b!Sd+$YXPQ zZ(6``CU4%7W@YB`lxgA1<m{M2c3E%)@tk_GtZLuJ^NcwOo(tNqFW%bNe<US+Mb4qK z+26O7|2?X{ZFT?Wy5cYA_}4F)S9apsM&)v)oqb_Te#TutvN9p3kGF`)aI#Z{=|KtW zn=Ah-2xKq0QhKVaiKWv^NBZrY*`*Dhi`Ftfjw+nhzP@0ijP*`~RVNpe9dn;IuO)t; z(ur>?zpXi#;nMZu-BIb&F-J5{FQ^e0ex>?erhA#nf+bT7tDY=hnVZb`;lzWLKR6Ga zO;@rJIbpp!{9)Tc=AD1M?Dc;?xBWDw`d1Nq{E1E$`|#QETbbvvY82M6mmT(!7qRDN zby+j};v#{DW-HI#D<*uuV_mo^Mpj*ik>L<?gPY=$>)$PMFRsg!E=+GR(sj%UJgLfD zP{UI%Gi_>w-0in2{5wj1M@K*PFy8ny^PGXvaZTan3b(8a{@!9;H?wuK(8^Oinpf9% zyNm5v<oIldfSefT?EcCo^@eS?SysQZ<&S%P{-o3OVEHY*LVQ{VKkYZ{eK<G#`g`dU z_PgFo`u&nV`YCvW;-2UO2c-1w$8ai`y^UCO{)t_?fOzeSWaFSmRw}06i@z!cX72a2 zo_EtN&irPp)?G%AL(>kN6wWox-S8?QP_bqH%~jz+uTQ(Ti{~!zn51V{^~HpHYVlW* z0|!q}<J?y%T>swr_Fnt{>sH&l^8PExI`|-vIecsUJkMj6#y1QPq_(b7U)tE&^IVuM zWyXZP57X*qTR+JE(%OG6_UWP%Q8O)-)E_GZGwU)>=H~fOTJZHmQUl*S(HAcSS}pE< zX|oQUc<g}&|AGBd8Yis<6&H7Jd%o|``!J)K*B4v(rmOTHd2z^QK`qa#rIYOsS3lYt z`DypPzaPFGy}$G1fm=QoFCXnbevR$xx!yv*4Id;QKfTVm+wa@VR|kYXOxzOskz;Sz z>jPFlj_td1=jl84+Dmp*EDxSL>-K4;=jko(y?Q1=g->>AoOC&(@OH_Rqx=>B7|s>{ zd2m|x^=AGFR*DjvEV?hHH8f}azG|pu@ae9~qRDShb$Ap!@SB}7X;W^K$gYR!I-z3C zM#AkGVnQ3m6&f$ipJZMs>0@A9)N)d2ZtF?!YL3ro`)1nweJEWok!ib(b)LoV1--9% z^R9FRD%m(n%oV9@OYx6;Y1_oYmRJ*`k=4BA<0fWSt3s{29hZ(wm^M?dD)+5#!%O{! zC+bcCp1k~?Jdb`oJ9x|Sa?z;=_s#y?TK+!IeBNxSn@yhzCtcgVMVco_rs+oL{O*5; zE-ybby-Q`D^DNj|0I9#P9sOkNDEs${62l_CPp22}7x{I>Cs)i%oby|^$x5+oq2x{G zdtSf#w#z<B|7T_6_Ifp*M*=I=SvESJjyt3A`P13W@q14H4o*2^uePJ+=wpYJN4G5# ziynBm`n?wX&w6~(X2ow0PpgKD9l!kkiT0-pTjpJ}pDmpECYZP1Z^7yOLle~MwU|@d zzc0%CSia}{E5l>1_rf#2|Nr>@-=W_1J$LfI-H0pR$7KJ@talFQGGnWNvNa{ooOjL1 zx>YY_SI4_SEnH?_epzR5x6h2^YX?f?>~<QSVx0bfVbWYTHvR-F1CN9GGpcSR%1l`m zd@w~uuxc`&kkzi2j|w~9y6|ybGrpnfbmr}^%lATaypk#f(iaFlDfPIq@U`RortD__ znjgo${p`Pg=iaa7^4XJJs$Mp%S!Hanr~Re9lF~6lMJvY7_jmnNluf#nC^2<aoCBYu zh0UeBt|{jdZe6I^6ddR9plahc**!=2q=ZC2u;ttAF6@=}5K8F?I`(I`#FQAj-xq$p zcU(0gA<2$ui8|N+6RZzbw%bU>J>}MZD|J`bU)oep!z{e%$l6lg8zN^~m~FUE9@2Sa zb9?#wm(jo6ulBwVeX7&4BiTCVusqv~ohGl9W?7jDE<Mw_C$m1)?PS=Ml2-v6kDj(u zcAl{3Z1?)T%YDomcXzz{P|Eqr)F5;BUZyU+PX%7)>q?Z287|%va{9U9pW;mWzAYIV zQ;!KuyEK!-=>~gZ!p81Y-;{lS<f?D~Ym41karM3L2YtssM|CotV%ZdBcM5c~`-v4V z``htCT>hfZzHh(Rr+ojv`v2+8w|VQ{Ui@_{E_u0<)rE;#ho;HfdhTY}@lTaq?El}S zM5Ef~H47In5*KLg_^|U;Ig@|;4Xz2>x^tH(+CCD$d|-Ae3-9M?-epgszl-`D)_HOz z+A>r9z`@NAj@lUoaK6-?Z}2kk&yy#a7QcjAi-ofy%kx$xOW*sSm6x{YXl-$foPXi< z<NN&*W~V(}>%6=8?J-fgc%lB1+L;g5mfl(LyhTo3N&j7H`8<o8zW3FpHUxiW4}0Fd zb!Q1j$6eDMyT7&Bv!|V&Q?e;}s@4fLtsma8hw_S=6Z?PmDkrg8-%;(q>+oT1YuNE1 zefK9v7{3<nm5<$<Hls?x*v#qvZJGRO5hm?srH_v-^8fp*_wDKZ<*Q5bmqivV@Lsq5 z@PEGj>JuF9*0==ju-|TdYwZpe5xx5_{{*jaVE$SCBI!+1hJ8oG@m)Jt2e^LntM~M` zwZEVH^4$Gxr+O1_M9LIiHoIcGT!c&L)~Czcn%MkK1xv~spPsGan#=6kQ)QNGd|q(J zf)A5K5AOM~?dY95k{b^c1qY{y%`3<(mU^)6_Uscf7Z$AjE%JoJ@BO*EQ>&*}-FrEK zsl@I6mgf8)!4`>rEJ0hDu5SOdB00q(GE=&idFKop|I5E3R(><L;M{Tfn_$@A@ZU#{ zAGm(sruE}Ik-u-|aq~3Yk3Bl|np~-KM!>7pf?uyH>oryH(akSR_CNjifUalEdlq#; z_ZzYI-EKC0xh(aAF(7aE{e|<>9!a)6JUadFEh}qA9|j%m*L6pZpH9{D{`9W##L~Lj z<QG?bFX<dBZ^&52@sm?LLBMSZ?{|ZxtEyW*Keb4W-#ERqUdu!wM^*7-YyZ7l`~K|S zE~$U&f9>&(<?VJ!FCHmconZNMgLl@8um!LFA8@-q<)Cw|%=2k{FEaX1C0(%i6P5c@ zTFfZ(h4y>isYXlg7rk7hw^8=9o1Ncck!}2GjZayM*u`~r&*<#QUA}Kye8hxpcOFy+ z7I}7kw693N9l1nMJ1~VyrD6A}Gr?v5U%WVW@^XJM|AC#B3>NYFOq=FPbY&<+oo0J% zRn=FX8!<N}iM^w2^3(FirVIG)@wH4on-Fqg%_ZZED+(_*Z21s<?p1-vlAd#OteZ9c z<7}SZTzF&W&54&*KJku{JRDkc@p|9-%%@YtSyz_KnD$SSh4F;-T;`~`QTw-j7TG>Y z{jpD)NY?aSG8>+r*yCrl;N`(AtJ#Zcwps6r)-Qc_)JxcHuY+3h!ps>@zBt}J!=*Nn z(Z6G+$)N}3J}O18w&;u7RbFQKd93c$+$c$Zjfe?i9I>Ac%{r#+HFpk+iIn1WtDc`J z7q~w(<d^9bxXslnoN%g2aMqd^OEjczd)z*Mz-Dnl%E{2*eR6&meknIsHNAOqI9#u? z<A$r|_KP8B+R`VjOJ8tuaf;f$W4-5IsczhL?u_zIn+3eeA3eL|t1kUIW7weczhQSm z;is<n#=Hr;Jj0VdEHn6XK<K=FW>33bW#UKK;#+H;9Cd3H*>`{AN`sRByUen08L+E6 zI<`zqU$cLu#~b4lpEmO(y!1)abg!DuD<Sq!Q(Iqt#`JuF?=9_HzD4gjI^FDt>$CD= zkDIZ7l<ZyD?zk=}{dQL+GT>8)dmcyLw@WLV-_BZ=8h1{~aoI1aibZ-epKRE&l=JK| z5f1qS?T?PVI#DEMTzLA2$XBMc|DQP5OmK}jE&WW)#AajU=f2=y%bzwIuXw`zNIN;~ z`ce*EMV7`Jo4%|R%u8%{TN^V~`SZ)~|9bELt*<KlQSf6~$N9UQ3~^t#oJ;zB_H<cJ z=hG7+5z`J{F8g{}k<YYpf{pK0`y>7e_ut*xt!KN!=^>9{4y(^L$r}g%xY#SL|DMVt zaIN6I>4n0*`3`?)Z&}LYym@k3`)%vzZeCBm##*nDJ$CRW>%pgcG$(XU6tDKs&1Y}- zu`2UnH`RKx%2HTlL3c&Rb*KEDhrJqvVlA^z6o0kTdcOXwW#pCF{~pYWi@LG=YrdFE z*`F`Amzp2H3#@ymu(~dE(yYEi4M~Rsma6y|U%A{cbAL-i`Hi3A_P5V@-rLWz=wtVr zd(+gGPM*B7><g=J+oao9wXZgaZU5NK=r7~6?@W66bk@!bha_z3*Qhhj&1s$!#CT!K zNAKAwJEiNU9CzzZ+4uD6y03Qq8MEF+sVVyZwD|d3yP`B%y5ZaI4;?-0I8R*VJ9^ji zG~4BU8x42t)ZE(j@NjSVlButsJYF18UTGLwR<`!ci^Xz&b(VsUT^wVJv{Y=rojl-M z^}%zU!fKW$*Oj*COu5V<GQsRy*O@4p6EB$T<{Wq#(0cUclvwXoW-DI$$u7Hlc+#GY zpM0LA1$`>4{8asacAi1Wg4Vs}j8;FdGA;NKVX|eXvfQIN`y6cS4E`LkmELsVrCFH% z+x7SM9XUSPpg;fJ{ev^FZtU!}y*g8PsdY)y#@YY}i$!yd+%h}VOji0{wSPRP^3<*$ zA-j2f_U}F*EpRnm%<f*!^F^xa3qC2=uj&)L@-@7TaYoHIbr<D|l+I=RPuy-6di}h; zOytPCv)YRt`>lms?Y4YW%m{JZ_voVC^H-b<z6I~Z81{(1$z(4MFTdKGd&t@O-R1c3 zpoXl1OOZ>3-^*sdIPdgW!P{?VPu!I4dn~_MB)G1ZS`bs2eqq%jQ-)_dzlrUbV^C$7 z(U3iH@;3d~A50X@CAjWuMh0JUbnag#t577vHu);!g2D*~`uWwr3R_$jOyF@U3(5ai zeBslJVz2ifc&f$tKRGsTbWAW1_20@?|LK$M5`Kx9d(H^0ddua1cdz7$<i|dXl-797 z*!V9f#NvaTrH_YPZ}5ZI%YHU|hveq2Z%w%DrKq0YP;79fVTJDk*?(#_QKbjUCJNd| zwyJLK`<SVmW1efgan7+Y!P{J?o#HH=&UYuC2sZ29a+t|s)urG|YT`2l>~@#9eb}P? zwuRq{<9P}5oP(y{+`Q!-i^W%-oqM9VtL>3xWWmPcj~4w3;|$owRZ)33;(vkA`P&@E z#R1QrGO{fBcSyvIV_tXoKj|$=yL<jDlihOi!HVURJLaoichye3DZzHj`}bOhg*Gg{ zHmOsuFKa)f$h$_c*}d^^+WTTnxnn7lbe6pc*mmXm6;Jsv|NG?u6}pLG3{JZ8x}MdY zuKT~{&VR|Tr}RPhtY*JX+pOMQ9qM~`d`%7vO+S6)eA4`k7kR&<l4klEa6bAF{;;7T zwXkd5_ku+$?xfth^=($Qgwpb#sS8_rzQl9IOgLJ1;hgNhZy&$x6w8V?=!q<fYLWZ* zBG6B73*$buxIa^a*~EA4vsc}7mu0Ka%i|x6R=?$)s`hx7hunc(8YPET)qPmK?bm;C zhK+arx9^v$`En?Io&Ds)@oh#<dz$<1p8NaY@bTMM-HrAHM4bK0WZv=fbi})YM++ux zeg5KG|EH`oHf9#GELXDQzh2$!x_-thxn(7X7QekX{c~2lRc;yAIhzZ1r+ZDe&oud} zCtE5%<@=Fry)>s&8y1*5eLwSj=eKKe+9xI?dj0)Te{*%@;jQaJcbWD+DG@N4y(?qt z=@(x<$bS-_{G?6q&;7@HpI@K1FIYHoI*-0Om$<b5o_9rT`sJl;`65+(Qioq`&1s0q zeRKPJ(6YKK581x+{P?^$%6GEF?ZZ7scmJ7?`?xznM`K3$`}-lwHZ+z;?P`xd7X9{9 zkenvZodaJ?$_<KntIGE3Y8EZ2Z24v1Aiv}DnRk5tJO8E57jWRKnwKk`{pU!w-qR;8 zoNV!jKAlO=cVBviIbxM(PVvddo!6ZozYCjp=%>wR%iOXR#xq5?Y+nCjuEIWbRs9Fq zpL{wVZYX&kd&8z_y(@#$m(SHQL3ZuDEjPb8OW7~_V^r#YdrN#&-Q;aMA3s#v@S(3a zHQ}Y;w@tqMyCUaEYyY*3<Op)-U0~zMVE?Df`v;$n?LSk6-%{n%ub*A1qh*p4?!t3& z&Hmc6Uko?t7kvM@RsYV-cg6XhU&IaH99i+@@%pDrjr44|gdSYqu=$k)*ST_r7hHcj z!!NQg<2QR~JpZX(;{gYO*jsw1Z+|>??qQVh*{{oY=N=HgdNit|LvLe4)eQ5ZQ<r~p zd@)sj_WJd^8qFz-vP6%c>o2Qbc0@g*;!gk3R|oZ@HMhNgcVYdFdHr7THY%I%-+6T0 zj+yCrRgcMI_sYxnU2h%hH2iKJkQMvpy5p424p}GX+c&O%N?}<P(_rJipYyCjmc6+Z zOXeH%!yLLS*L|lyx+u`MJ$vD`(27S}e??wBn!j@1PoB4$KL3*nb8bH^(h&W;<?+S* zy%P49`|RRgTYQx<ck-55S#$Kr&!R^E_}^m3W=%_Zlk{)r`YUYgTaU$h1bFQDb>iDh zuetNz7nd`AIC5Iw=I@)!<vXK`t6O_tJt&^3Y|y`<HtnzJ{ldcPos-jSoZGE#);$l; z&)r^FBde*MKIauz{)Nw#K@Zpe{<r#e@*cad`_A8aRa5e$|KF#xZ*MN=XRiM3@xxN1 zUj2Ra{*L$aEgm+n-=n_swgsQhwMHwyuvt&qj=rxs?|i%VT}c1)#^OIGj=l~5cRhXe zXY;sUyjm-kGk=o4UpRFVr@Q2o{Zf{F+YK_0UOMSe-O%~7H~+cqea+2_LyzzO=51=o zyS(;~1^49Ze<x0Bu4-G|FSq#ib)%KhySZ*n7TGhu;_TD6q5025vrdMu^cSn?>pvK~ z(E5PoyXnVQ@B5v_E3t}qF7v<l|8GCvE<R_DjTMXg4r@j6$WL`=qu1r|+a5gBxt~Yi zjLrVP|DH>-yj%A6=|jVP%}q}~{n)lW?(UDX(|uSf^;!OX6nqu*XYPSLg%<+Xq*Uzv zczfgL&fTHT{e1CNr*>`G^x)Z2M+cjuI}cTh-1~4`ZkcU<dc)*1oR^R5s9$O5;CZ6? znk)BnTY19f4J>{YeU3MOEqU}r-<YAh?)dCC5)QE@`~Ll2SJ1=FWmkP@X`{Yvsdl$< z{Ta3X39n2(?7wRN_czPG|F7gLG$vo#yWa41^6B&SZ^UvR>j+=bad}@9oO!eAcHG}* zr)QTeZkMtDx%y7QH>R(fqXV96oZD`4PvqCF?Xjs$Pj-~m70uYR{NDdV-{$;X@sz=9 z!mST(uk!6>;ts8=eOGpG&y3ec%k0(UPA>fz^5XWs|3)j@OctyE=M-kEdSb_BP`v5c zDwaK~eP*1ptm^o6VVe4uue@q!((S6%^H&7#vc5LQYDw;@`+GXmUmuQ>cr>s6S<3Gx z`}fY2E%Up?uzSacyMnL2&d5EiT-l~`WWv{}{&#N9dn$OBE13I~<nk}O)#Iu=>kgdp zu}GWvGUfZu_{S^f^oQQw^KtGCcKM1|f6X@;d~bDH|L2|e?b8doS8Y<Mc{DwL!;06^ z@+Vh+_b{$|`aLeK(e3Zb^q&t;e(U6aWNxGM%4G-tmjy5Wx5+QMe<6Rf#uUY=f4|P( zUH5=j$NsPMqo60e@3-iQs6<EE{On)9d|#!aXs#u<%kkSUnP)CvESVg2>zQ6|Q=Fv4 z1COA+DQ}X#-M-%{b0%ti?Y<dD&wP#FBRPAT)t9=G0_SHdUp`*HZ^PbyZ?9f|#9Z+E z)BF2R?{eO-WLzDve--O}iSHY)$NcgUpErBOtMa^6n{)qvv9Em787<!Tk2SPvweZHg zqzxBei!AuWcq>|0z39TH8E1D-|ND8VbeRV`<NC(eHd~{v8lIZ3`d!0P_WaL9sg-9f z_`2$!y?FUxyI}RJ)v{LScLz;aeDp<&-Mcw|*wwGQO|`b>S*`e%<x-hSY1xI}i|zlN z`1V`AF0uOC>at0EfihAV#v7cA&$IgO-dVUY-KcfCMP=SC&U|s5>a*WtQk7~8et*fo zbHncUY;&W;6!+y`j`FiE8SYm2k;(scwfUQi2QwDQ@OSmqZ5Gyg^^4E@)SfwuR!Lro z?(4Q%y_MgxE<JJjtVp+|ao?v|9sF@6-yqYx&TPAwF`r-cQIYDl6DQa8S>#%#-l{u! zH8~>V)0dW-cLo7xw_d&THqIydXqNiazP;bN_z!>3+aK&vmU%#AdUy!;;rYB9<=-y8 z`|O$BUz@TeO&^nUj~@4k%m2BteVcv7r)Ood_am-<)Q$P7S@T)%ijC){TajCK&B(no zYfDO1gDc;^#QWWQt0peDTl{(wvyS6472W>I*>h7>rvH7*{Hy#c<7o}i#2XVbu6A&* z|1tAh2xCe~uZ6(nbrb%7h_5R7ef?)=%$x51m0^Bu2exM2*N9lYE1%W$3HPGX4^Lyf z!wYmg_uu>2WxHWAlT7%s_f{*H^@$w4ztHgg$`iByA5p$@qrU$4i~SXL)_?XaZ)m;0 zD~IE(oyzO!Haau9grmz7Klw4)UOl+W{?}UZZQ&n{7WV(2e|~+H>7*DVw~h#X#_WYI zM+@~gTt4NQ?#y=l&q9ZF{}Ss1m;K?d^VZ|ye!t*cTw2zyCZ`)pPd2^^5^~T~(^Otw z{v=MUV#$8?u##=<MsK$t+ZMS;bC>4Z7v6KW{ki%5-`4cHlXogPL%!Fv&j0a#ovrif z+BW~N)qG-czt>HDcy6`Nt0`|CtXi5^J>Yq?rm6P${-1Z&Jo>t=EJAnLWRF?ft6rM? z>&)38Y<x2H=&Z;SMNXBwG?}hEo++ZGZ2mVSkwxQt|LSXNCQV%#kp7Z|LHEjXk*4cL zduA5sHZ)y6;?gxOUW_rVMewxg+!X;?1|id)9#mBG`0Xku_-E_?x7lkJ$=|v6W1f4I z`h=$E)9)M#oWyhMRl2+IO0^BMu5fP=R_N-H5}E6;>2uYeh;6I3*WL^hJ|rEb?o@i_ zQR^Y8DX-VIuj4WjYt?JoV3^xFSNPVvlT%koE(qS&kdT(f@St8_WphT5-ch@mfs^Yu z_UbytH|ML(e`@e($%YBi?-HIov0hphR=&T~_Kqj-x?8TY7u5d=?{#Q#|1;xg$MvUs zMIJJ&`m47w@tR$nx9&!x2`THDZMH1^^z;1V)(dJTQSav8xIAUm)5WVE=-ryk`0=Uh z@1N6qdYrr;UI=`swO;A#_Pm$ucg0=B;*u0y?Ax<`%f$a&En#(A;z)<MX~hAqtv@ck z3zwTDXYr7wy0Up@ZMjdShDf5_t?hndn+zvZh!<^Y>3w}`@9fSMQaneq!+tyeGD`h) zs!Nn{TDQDJrvHw6AE(DpJKgU8?{WI)ZGK-1n9k+REfL|K*i!fB`TEUCI>$Hy?tJi{ zSecV^f6^u4eO9T#vz-I-r<z}zr<toL>bk*WqWq~u#-{y-3+1oyR=o-@i`jL;-01-` zyZuM+V~W3fmPawR8$Qik^628NfIeRLWiqp-))c*Rh%-BD_esh5X2bU_k39T;ru+5z zpS#P+P(8m`B131k(fRksFRxte=kPl1>1zfhhj{TeXEpET^68!G9>xnV^L^UceVvtY z!>+Wl2dY(hEnU|qTwJWyVkue4X?|~cYigO+4p*gTnQTUiGdr_hxN<7V_8GA+ZqV_6 zByher``wOg_oQ~4IVB=Xum8!O`i|w9liLn6ubs>rCkvRj>^;!m_~+FBKUd#=l~K3< zu)w|4x-t0rHRro~G7Cz0)%MiZ-EMrwG@plSp|;Y~mEFQ6aTi~HE#c(VzW8!lvh3Pu zJ>3Lv_3oRx&u8gZES}}_=EtOKGY<Qmew@y*v(wkIEqK$36V6Ib@3t+=^DA*Sp1gZg z@h0Yzw=$h42a8u~g{01!{^#4KJ?Y9n`+|PU#!i~#k)I|$Np|0fjq`T)Br&q+EvuQF zd~dJAzKYK9tX9Q>{#4nBTHkyw&HW9%Z`dop?MprP(&t^J!+V>VN}D+|+5hx@6UmYH zTy)yBRo&35_+dc4;+D4#-{j{V&dc9+V8Pi(K~X<4;~#E*AYlK`uclLeVd13B{4Iv9 z?sw8BTxKtwB4Fdq|9&|;`wZ@^zgfCs2UlL6_(^$U&gZ{^zb5{5O=}UIy={IL^N*_f z2JZf{LpQGdn;>iU@$~(Y%->h^?f2LI^6dLt*>t$oS8V#j)8hZXDcbLh6rRU9?e|Hp zjSin{FB<ko8u<UY;lJzNLGjK#Uv+k<3nZKGy}-GxMs?3ram%Bz^;gO=oiBaPShVz( zT5^}ir<315DCgOI<tkD+>ca4Fy4j{V516*)JrP~r@XJFYsr`lSB3F)?!q<8XKRmJT zX1IOcb=GX#(=F}CR!lklROd(Sv+4RZZ!e3@UtXXm&amTD@U~c9xwnSj5}NIV+SQMB zesfIkW-eus|IjX%pw60l-Q6jmEOD>pq-2>(e4cLiRYGfYOy)+o*liZdofGxf%*uwR zY{rWFB@<`Hr6mSDy7)@<Uc)2~BZvP>zb6aGxnxNy894^OcRI!C_Lz06=QsDi<`s88 z<o`dkN5*^CBV%i6hK3E3d34&!cLe7r-a3_)wq0?R#-UE$rCgTQZ`Uo@*${prlX-pf zVeL&S(>g0tR5E|hn!)c`F7i_{@e=1NCE<U(#uIvcMGS-sFXZf>w`7hClXL$Mq1=?c zKK_6A7HTqwz82fJ<m|QWn^qgtU8$JH+waUed;OAE(LU4OO<sR1+5YS6uAR(5*MC&h zM~hti5IN)A@8t5-H3CbT&wMNIUj1$gf87@+?)#;RXZoj3bYpUQGtEgllWE(h^WV7n z9|-u|+Hs33w^WJY;q-~SD>*()HWJ!4{btuHjt!N!t+W_=?b1Jl#cvH3F1p{k$2;q# zs{X0&ezW+ay`>Z0vb>%wCU#=uti5Hs8jp&o-(GHCvspcPg2cxD9kK5JR;pR}^)T5y z)v5Q+ZD5>UJY)8>6F#k4c2AnGr!G4By>sivPe=T_TLWAsp5fv5Qsi0t<JFP*TOQ4v z=iPO)gR@Upv)N-$!6Zk`e#WIr=1Mx*_gpWqIx<}ph~ru-z-JK8ZFQ=f*Wy<2&cn+d zcgQc`aCi6rd*=L=UkN|vwf~6GW5_sn{)pknS(*Ow`I`baS8Y$8_^nOLdV%@OH4Kcd zk)pTm*e#!R!G!PL&6zKSd90?(KdYM0cXe`uN###A?VNJgeP7qlk<lwuNvbRjm{xOV z=k1A4pKIMTPl&A&V32*zmw(F3Vf)qlMjE$Qdc{vI3)nwB{9spvN@IG`6PF{iZ$xdg z4iCTZb=qM!H+%N?x9=28pX>WM?Cs1alf-JR+LO+7E1#L6&wkv8B`wtc>5Gi^#rw9t zE?j=%vdCs>;j=~svf?Sr>r@*u<X5b=-eVKxIs3`l{x@&(K8u;WRp^iKElO>Eyx8Wn zUPDfGZr%Lf57smtjNOyz`9;n^tJO$u{_~clxe|YC><=|6c(U&d_&C*dS#E08N0p7- zd~J3?p&Sp|<{OG|-E5EDrsnq1VSyZHuw5bN+9H=TDS7q<;xTG38FxfVc$ztiHeE0D z<JGyNc=z>pmx`aRe+1>_f_bH`?hAhIy`trur6q&stRIz+<;r>)raXS`>hxDCZSJI} zH)LIvXRqISdio8nfdAI7X6_5yH_x+gzTCO&*|YaAx+8kcPt?uovfus%oXRql{Vaz2 zh1~zYQfJcmw8U9%yG-;VfgN|<zHwh}+U#j~bicjFQ_hfI_Wt!2jcMY2`<`~*;QwFp z{k89@of{?Pmc4b}p0Bjy3X@kvvuo;fr4-wnolMm=mmAW1JS-#szA?*Zy7Ip`a$>~p zyJw>VyuY6a^{<G~kIdwMU3v4nUq#l58O#3P6ghtHjMV1xyUvMHa~hs7$rn6Ty?iGj zLz2PY>Y32}7n)H`OCG$4mW=*jS)Y*AYS6;|>y>hLkNCpVV*V9Z&n|!d{>S}S^G>re z@VD3;wOw4_u)cOSUrKVCk<r@b@(<5uKK|HUHcRuf<y9FD-WnNamP9t2t!&P7w*B0; z<4O2)z6ts-f9T9Tq>}TfLhN}RYdJ5Ayzvy1A4jHHPiM){|FHk_srAybn(BXUowvW< zqn+<=)3pA@rPKt)$+8|9(PDBFvmbqPVsYQrJe6DKGf$1=i3bk@bDh{cPHV58vL`fu zQ|H3T=9@NopLoj3&cZd@H}As2JIN8RgHuftPTX!hzh7qg?Mm6`mv`9Mw?t()awjgR z+v+#}+0|n!&+skd-E;W<1DD*`;P_87Wfa?_tENnv`Df|<j~b3eD+G8~rk9y~=v(*b zba$2M>SNpdrra>QQ?uq|c!2(crJp(OD3<JP+V9WL{5t8@w!(yYRg?aHo&S6#Q<Lx< zM;lA_cArnWm$t|YPJ8FrP%4%nVzSO~(X5*cs%j>^+$XE8bbspHGZLKm@P4&O&iPdJ zgv{VbUxsNH-W+zGA)jz+{`7xWzP?e*sCk_s-D!RN(EcyqE8@<by2;RM-u-FQM60bm zLc#fq7S}#f-!@sk@XrU;-CwWyg);2B6&`q3F3J6StxST4m#*nFiDj2OUooxxvGGUZ zoEdc+N@mz;{(ian)v~w`C(mw9c^fReNciiA!V}W}+wGie7tL`=%d|c=VR6Zxg-UiC zA`Z+@JQWdMq$Ml&q|<mF!zZ<?cP?K#HuG}Z6?Yqts~77gos^le%<sa9m;Xc8-PhTz zHObW}gdz82{-t2Sr;C1w{z{Q@mh^b|?Dlf0qIHXkcQWj#`En-syPw?VgZtM0)$+>- zo|YWu)V`|y^e*4!6ZjsR?wECify@4>$lRm*i*z@iG|nj56*m2Wr*)0>wdF^?{{41Q z-@{7YK>q!vJAS9Sc1p-RIqmeND_T=_{{Eevf&X^0-QLxqx<8=Q#Qfn?7G~R`8ejFz zn^Oh+@*9>|-;cH0C#ygCs!Vi}eS3$~TSu-r8rR#tOYPf#Kz;6>V&18q2N)NGdg{#7 zN-LPrdD5$`Qpj>+$6br5oYms0vPKpr`=XW}_E)@lcs;`;M~{@94I9|B4u$6#9bs$R zz4Mu`QtA;sEtwN;(V}n5m^Bu2H6%Nq`l|bS_NHy^FJ-g-D43h=njs})*&B0N@q>3l zaCu5$6Z4xE$EAM%`lepL`n}|4Cu8BlQbw7J&P=lknO-h5GFuUM>Bzz2B*VF70!}Y4 zC9iOjV(LzNz;AZsd(01k?zgkGF3V?%i+BHe^YVVf1jo<DN^h0&M07s~s+ZMSt)6^! z<%KQDY5oUzw*UFdHF=w1;7>~ifw>{CG*%XfhG{<d5}q5eJoe+R3nz^2)HZWubA8qq zld^larK;^yb9|xLxnDY^+q#$dH$OhTR!MPc2BUKKjiYOq>$csw;<?+>?xcUb?Cd@h zd7e+UOl*;S(c<qvUz)e^XIJx{2w9;M^MiXPCg;?DZ8<XC>h9;h$gf|U=Se0{lV@}~ z{^nVwPH458{Qfn;k9SIZeNxJjZnz=;zr=~6rlNCf3AdiTe%8F`x9q(MWqRTaws+=k zJ!W2hZ$9h4;`e(#>9JiafAIP$`^rl{8a^(GU$ac}_|7*S(`Ozy^|8?`P-*UoBS$WK zf8%+ap^&<1MbiWZ|BHPwX@?hCl^HiF>@I0FwU;$Da4hS%a7t3Iai+%CKhw@Q9`1Bo zvnzXVK})*f1*@wYm#1!Bwe9oILi436M_Q*VPbjOrxZprg`tQDS+bw%PS+9R`^Lb2D zhULX%cbSsYOYXAjH)r(w$V9FPkg#EI65Djxe(D|W$Tq>nTy1u{>)GWF_}!>Hc=-k6 z1^4%hnz<P~U3J8kA5j&)n{`3^u=pt->1Qf)9~=<<y=%s#zxxDK#BJ{VSo$`*+Ll9j zbN3<lqo-3$dwO^CRnI<UpYUOAxS#2RwR~C6woh-jxpYpYFk!OMCeBB$alaiZ6Q^=| zRi=8+V{r0uza_uxlKkA3xem4~KLmN0P1lf_d;VAWXAb#-wVzvdPFY}(S-i5bPTl`? z+V4<lC&rmm4kk~!G2iINm!5wUlH<k26Xaf%O)xJK)((z+`~0DgNc>Yb3pvhd^Z)9! zRS1gt@A-A<+c*2a9`^(bKi`^@k|?CU<7&bZ&O<CGPqSv%OwU<3v0uQDGtix*{>5|k z$%XoJY;Vr`7gu<@wj*?Ae@)*<$H?nS792k>)o-o+VZJUYcUDTL{xi47>z9i<%3n6S z=4@|XQ6#nVq@%kUx9x{0mnW*iyHC5D>aI1Y_+)ESyTvESL(58KnR>}BVa?xSzy8d& z|2e<@ZNBfv%C6Fl#gcvRij@_3XMTH{eg9hU!_41LTs_Wf&AJt7lK6oA%}bGmmoLxG z`=KUg%Y5kIOSg7r_0vi_Je2$X$SsWa5HwDV%-MHg$@>c@ADC(EDtkWt(A83>$JZLT zkL>x*|0YHKW<@Il-vLRFC&tX#uP$!kZd2O-Ju&`Naeeh~f7^q%ufJ;5mFy_r@@b;U zu1OwuXHBnKYIkF&SW>9Lwh7-#COA5`wclLgFMdV#K94k4U#~=hOwF7ZNAqt^TJ4<F zurYDU+9r|K{S~bh8{CD>wq8thG7SH8^pkOp@_onLFDtk@4j#Wyc*<Kn^_f0fj?U@! zBTtri&RDmH^J8{{Z|c{{di{BsEwQm@vNx;El?Z6ssPp&CUllPH{-Bd@tvH`~rWh4C zWgI%vJIUjR9#8EJ6aH@Flc}HXDb8QW8@K(dPuxWH;DYayC;Zv(H+^IK##@)KZ&rA@ zXWuHhLyMMwa((Nu<NELY-QsPv@ArRy@Gbg%^*r;|qK85EnGLN=C+?5?z_ip$H%@Bu zBK|$U6dlaZ`OUjE&Hs(C%Exwx#I*}jWA#ivs4iD{J-f={B;U(PmK<mQO_}py+uZ7; za3+J_Qw>6IwQuoPtFP{}_-eV8abo!I#k<aDcA3}c-_7BcR?bzKVSg!Z)yMn?!QZ#u z*tLJ|>AU;Q?50m=Saaj#$8UmiQ$ME8;8#B%KIga*W6MeD<E$P_{x?qOoEUpkc5nWn zgVVcC&O7*E&5c7`>zIp*r>yz0<-hMo#juSZ?=(8SNqC}cI(^-*&xcFj>i5gL9Z9?^ zU3z7s>+Z|*x4bFxnHM#=bB(G>W&VZJyqPz9F9}v&dB2YN<(CuBc4tg=UB34ScR`Wt zC1vwOo7dLv|KqxTysfXT{e5cr`<(orE01qqZeN-G`)+-ytv%x^t$mSak{?7B^xDO; zSKNI$U;dklg87S;=j~?r9<|<<6Y$N@;>w9j!HI0k)>~(>tuA|hL-+ke4Ws)7&u8DT zF}oJNXJ<%!B%`Ic#`jwr%r!0Vtw<1)R$F*7SfjCM<w0|icX>`*^k!M7Jg`u_Gk><j z((Mm?Oh0KXwU*6aBgC#!{~@zAF)i`4cwt$wWWe!tQ>r6Zt1UWIp78bR$zKbtAM;#E z3=mQZ-lx3bDTly!iTVV`xarOZ0`K*%3l90reItg;BkYz)*iEAjqeJ5N%h=yozd89{ z|EQ~AM)GG%wmiv6?qNbx@7*rhdve{!#Mn<K-d`5$_d8`?kv#j<oz>H0+05)!=lVRZ zY<@8Hc;9yUAKd-9@qgCNzRmvs;O335U*y(*DmfOO-ru9SId;*kJuwF+tW;b)GkBHw zm6PoIPV9JiGTKjJ5lj4G2O;|(8+JdDd4Jn4j#*%Nb6wH&x*hGlkv;2$*p%jf{_bM< zS8~F(lfBce>vBCOIEh+)OkT|<$=hj{^2@F$r2N678U6}_^*5P4?mrjz+8cgylg=@T z{F>hj9b*r#J$>XO+Y6QeqhpuE5B&6CJb%A@?#?;;t8)K8<hQGteeRRoI^n%`R}Xhi zdw%1eS(W*pPg;ymrA14t^5qO>6-d1CR+n9KGDL@?PI-~RkFtg}kxWy|O4J<BC1}r$ z>F{4$r7M1Jdd=iFJJ?iDS>Io}@;cMR4Uf+YuC&-JZKa_1CUIjDyV1{nzp@RxGP@#f zUtB5NTs-+W>;5yRn`LgS`@AbqT$wLs(OY))r9V&Z$`)veC|B2<RQxmfC5O)bY<;P} zq19>OPEr4UF3V}My6U&L;g&)V_s$C}rFOeKlC1+1UrWaZ#Whdbp(nA$J!i+Wct(-7 zeHClG4HgF+-}X%A=y48qQLp>gJU6O+SNz)9v+8%PSSa`FEy6k<=Ecor*A4F3Q|7d0 zcd1`!NW%Y{4|V4q5{s#CaF}K6D00wod%uv{{25GNBdn87Z7u$AXtQ9Od8E4S+a2Fm z3;elXdy;L|kG{GdTetf^f>_L$k9ON@=-#fGt1@%N1f_j%j&nLTnf{so_s-t8oA*2` z*Hzf<W3zhM-rVb}-meQ_+2kZvay>$A>HJGqj{Y*SG3nm0q3M39UewF-#Qy%d%jzXx zOMh!p*6M6OlJ`(h_JQKs%ts}Px6|Uyl62DDHr1!6`^DMVCnnz6@K8Nw#_Z`GdB-k? zr^?=ac3t6Vx~=f4xr|4{Rdi>U7cQFIKR?Fer~JQvzw>MB_-*xH7M}hbG(WU|{;%2b zKkr=p=y{KQL&M|_^M?{vdSVwC|D0NI&*HJl<Az;<ihe$3Er+i}9IJ~{c~J5&Rj_2z ztn*%b=Wc&+VY%`3gei=iG3s;QY?}UAtoc<zjrpGi!7nG)v^3@?n9ff&YuUN!d+7Rm zytd7&tb2|++b&h*>9*b9y)UrupoKbj2RDBb`@P`ZC!T#i6#hPM{^P3$zj9rCG<UAi z(~H}3O}M)_Ld!m{KFZ2$W0bu}=jfHSc@I`wU4NW#bbk(4Q=(R()ycUhKD|yV&5g;; zx|<Xo`B?i`M}Owo1#@FdZpX!MdKsktM&jnJ;JQnnS2lK*G`PfOY<zn8Uh;Rg<!7Ck z>k2w&ADy)L&V$#NtJyrQd4!?@F4cWa_YHW&FhwPlLusG;-08YfVj(|t0}p(E`Ec#o zWpAB|pJ{6`o>n^6V>4O5?$(-`)dthoN5wn%X|<hTD_Ikt78w4);PsQ69+qu03!d!F zxmc5XdCP4D;n%{Js*(~mHi{oN^Phdhuqa~A?KujyPrv6+&G+2&JL9<xn`X~8o28cv z7UksR+AO#H<hd{L^AVpD4U#=<>Xok_c^5=%N#n`cvo!dzza96|c}Kea@A_oyFDab; z&)P<*Vg1IXwQHqy*x9XZDl^mHORlhbeS*tf|F^_Oi(`^X+LHGoO&anx==_tP^{T$r z|MwF6>Gjp~JJjnl&3|w8=M@ks<Z$<ot$24UU-r{;?b1Ab#v4B3>kCR27jI9#z2V=Z zIqo5HzSbL;Z2URPt-rZc`ncl9IWmb%yX%in)$Fve*S=SFN;2fMwPrv2sgybWeH-OD zMcDi<lpNX`y+(BZ6t<PG^J*_$NO9(wZ}n;NLI<^i{;d~O%ja;1-UvC7@}$vg=I+@0 zPoB+v@aX=-aDhmT#$Xn{oL8l0bC^yFx7_~Mlr-__j9f7$L6tk_=Uv!VaA97#w#nKG z&#v1)#3hbw43Iq>c`x-*s*=z#^@K;ie-_Gkb21b+Pmb}l-f_LR=s{rm`p?!C@yGbW zuEq0(Fjq>h*+1Q&#>eExCdRAtUB0n7&c7m%o?}||<MPf#rQL~Y&Y#_`+;6nnt<Glk zS3kqx#NxIoSLePyu#hwI^T#JgW}aib%V=`^@2%kbY-W$%eV+5fb{>29{(=ddKaA$M z%eAIAq+Xo7>%eW<ka?%W>^)~MeDX@D?$95OCzGotUpL!$^nuoSR?$60XKsIaq+d1Z z;ll;GcQ~q-%&Ah{qQm~mXB)5I>;u+s)V8hp`1tbSEtzN19xYn`M7?k7Rh3JXd#~4- z<QMb2Uv{?1q3U%e&%Ql}4tn#PQVo%RRi``8z%F*rC1&9`;n=OK>$2)zsV9o<-%^+* z-FSAxOn#1xmz%wh^z<rJ{qc)md|*#Ecm9u(!e@`qT#NU&dN?WE>GXuc57z7X{p^Ib z{&uczeOv50D?gQe;ti8cuT!`-{JXOuFlKku_uICD$8Q)(9hZ#rm9k1)k^O)A+{7f= z>suas>{S#@`Ohe}Ct`VQ^U=wi^Xwk%&(qk$a-iR^_Q~G*<j>_s=TkTQo_qVi(>47U zF2rxTD12-EWVUJ9EmchNb5(fPH~+|7wDr_<_KHRCg{BI>a0qD?;TMZ3`NGrYI*l># z9$(+T#ldCnTt`33xGXu>ZuIrU)|$ju344C`={)uI4tw~mZ+^v=I;|UfN{-b`xz6J; zAw;fup-xQd_Kt0=mz=#9eiSLY#u)e8!+QRsm*w3Hb51tfMV3m~E|Hz$H|0!|y6;b} zQ!M#vEfWr8zfs$KX{nl#_3jPke=a!RmahBp(8sH3O+->p)K?8o$MEf;@j`#JjrXiw z?^)pDsbHAB?gZQ6ic?+FJ^p+yJiz(((8@A#`^g<=*6dL6RnE#_7BQCDReQ#K-9{_3 z_m@ud{NT%}x%W@FKS%%b^8&`%{sCh38>fHG|My7ZkiLZ?_nKR54@`u1Ec$&?Z+)h# zpY5a%s}F15Ja9z*_Uzm$Qy$x&U90OZZ(G<c^>lq@S{-Lg#IKr@4J|xBBjOMD|Glct zwQeKFOZL!~J<Ay9?Mv1<v7Yav?dBVf)nS5lQvW;x!+v|8`u1hYQ#aGZN6i9%4@=hx ztS`)Za#T_|FG^F@d+C+6r*HRniQIb?aW&+DRB%el{7cLF_rH4d?b`fD-)%Wkg!v3L zk9V*0SM&dAdj3Z0FAjsJl0oK^K3$ZP%nrU})Dp?o^j+zRv)vQ#M8R(^*Oq@W<tt5W z5z+r>9lb~JLc~e)N@el&Ix)(xo>;A|%v=9I`u0q-RnMNk`Q7^5-|o=o`|>O0nHTkD z=H3^1e*5Pard>>a0ela8v#0+&Tb%#o<XP7z!p_C>WwUM9$FQA}USV{?N!spdiq+&w z%hOl)>~^~!RDQss#G$a6|B<Snn%<|0W^!JU>ryvq$?q#W=OedZ>x>7hqvyTVd$>}V zwKrtr4?Y#Xyn8v5%Nw|#2*=g9@-3+R^OWn?j?Y`vb{>1@q;`V++9e+TpXr9m=VkYE zD7-iP{lGl(rIwL={k3mr-`7>_{uQzJrq2E|9)V4Tm#(HAQaSC^Al!5M&jRl<0|x&Z ze+Fyg@{>1jawUg9K5toFwSf0aO@7~}+$?Vv&fC8BC!dPFsFAz-;N4F#^VH1eoXf5_ zvTf^q`NXy1_$-MNtB(8p+4;U{uG@#Br4LM>Mb9wm-zlh5!@Ruqs<pZDs>G|e?_R(2 z$E>J*xkckvKe@MYkG@OUXl>1rD?j7Oz3s#ER$E_=xkejTnrA$V+Ew{8q1p0lm(0YY zpCh(wO<=rvcZ&i0|3lrO!N*^y*f*I~HkilP-Az%5|EW1S!?)pCqJZtyt0vnX+Z*Wr zjd}FZ>9(!4<(KVqlMM?m*zXTLpcj1Xn@;78ihbPw#PYWZFL!k>Kk}T-Hoq>Waf$WS zH+2iw%SEYkTs!%|Uw!{yb@`K?L4Ojok`r%hZAyKu<2GlmMbVXmo7i`}-0pWsh0E*F zjj3MMQ3<xfYubJO^!aUA`rc|?#jK|hM(QQgD~c1`>T)W~?aubDXb4*V=HJT68guwk z9GTDGaB-HtGW~z@kE*7EnbIY1tNW(^I&tN6u(`gW+$(RP+SW?rT)o{Z%S(>e9Z2dD zY}R;hylEce*KpkeZqItX`D*j)A6{0{@@}YiiEw!?_qT`Dck7uSPKN&fYP40q{Wx%O z@7wDsg>lSxAOC6F|3sg8UQXn}s|pL0FPyq!)okErr_X$`&^GV-#mfg}5+qC>d+`W7 z)v`Lhq)C!})%qXtlEVL9T3mQ~Vus&aZha$0kF=fY%)1RLW~yk0ds(Si-PqZ(IH`1l zir2iWnr};<zSB4xexhd0WaeVWBRM~t9XjXgyPy5S@xG>9Xw7_Xx29$_GeZl<Qx?pd z89v<#E%@@jsC0Ar(#4(g9e0}qq;olGb03~=chI*<=I{Q$>T<W^&hBOo(l5MF%{J)~ z=St>Y7meIootFD!8CHlXnL1QE7Yitsm{0vJyJ2bb+S051hl1m}F8N(k&%JN);ORW( zt6TFNd%rx2U9d4@>S>XfRFB!OA2e)f&CR`?7PvsiUZLMN$ec~lxnwb)o<R`5@~4?K z9q!)`O?xCD<|%&fYbN*Yz(|+6Jx?agl@IV<)ch+!UYv8Qw3l~-zYUY9GNTns{}$_e zH#n=<FD~p=j8b#;-e&f(jw>;H;l-S%wu`>R{`OO|$%(Ymh?%`L*W+fIUe4SXdvX@c zZS#+7)ZweY+P=_b!+WJ0a=T`f1@*Cf;z<l*<<{FLl&V>J=Y;9|gDofQ9`z^H{-0lw zQGHszKI8Y5_4n`O1=~9pdsgL0+|}F=KX0m5k}iuz_g%&<f4%oViWD}v;=T2voWze? zH@+Eu^HlnJV$sGcK|P07uT^>5zfDJ;dE-+rAERAa&cA1G)0@5dz_s|MXdmOc!a4ho zao)VF*jg>=I5$jT<-E2Y$5VoA|9|L6imOVRUpyS{u>AcY=XrhU-_+mB7fjV!{_6+t zy5x*^zn0G^Ytt&+5S9Kkbi<UghwuJ>|MxX}zxjpF65p%7+Jvor<q}*i`5@#3A8UKT zq5jD)U4HCj-rU?H?8nBx;*{u{oTny-Gb(N^^!aW0Hk_?y`qV$K5A<ojPL*K#8hF|% zU`v^j`n)|-!ckA3rm7u^U|pQ`$$P?<4=ZLqRIpb#klrjCZ2KqT`4#UJ=0d9pvOIT< zDwxmd&tzqsVmvqW<KjayGdr`MmpTQ04`y7b$FRiHB3S3l@p*NhYtQF}-xS^VwBLTy z-j})I+vESt-zPQqPUf9&6ZP38kE_@nK7H`6>>CCnj*|kF!h4RrV|b)oQ+blR=8x^y zRr<_suODZpJgsj3W-#~ugatZA$)-O#xc9s09(Z<bTiXYv+&2f3-&o&K-?5`ep_t*a z{iaQmrT<$sZacT=Kuz=NfMrDsW7-Y2_)MOdP<gngDNoT+e)C-RteZT$riBOG|1`C7 z@;niCt&Ov^9bSj+O7Q=5vp4bfpDP9-)3P6{oN1rva7p70lS1>iNY1Va5j*}rNMAHX zGCy<6k+uo3yx))9>g_L8nfgtv&?RiqC&l(qvBWo%dim|L|6aBA>X5qmh~re#$=2qh zzmh*}d;4_#{w;qW%2yTqz7xECd;h;f+}WR|$4!y>I$P0WRh;EtiQ^j+#Q7ctH!q5u zI&s?<DWS@FTud9>eHYB@yRvvr<r>p7-T4y5drQ8~o@TiIS6q#?;gXpLwpKED<*~d_ zo^>)l>{-yEa6b<9{EI6X_)p7Nr~m1(yAht`yX3F0_Vs<Qncj%~&3Yog`M1aXO};KV z-0Dv|o3oxRJMm0>uhd$bWk1}XD{r;j-~T`Ga!c`kh6A2<2Li86E@|0*YlBq}U&(7$ zwhEaQY|D2ziLt!YDXaUZbH4c1J3ZNloTfXbWOHWz*R*$QF#6;yswC|opx!6m(08Wc zvBUgOh9A9880ysd)_;*&CAxZ@9QW^<4c$|&-WN#QRW{Sltn_izy!hP6gSmU#@*aIz zb<V|I{Y;5mr?+33gccjW^|JHlp6&d*&Hbw0i<RkW;hCw97vz=|Kb9&zu_*gunPT7u zshh0_+W&oDpR50zH}jHJ;GO3??n(NI^t0w3zEh&!<{`ExVnf}w<!}9Jy1g9~8Rl58 zbw9XlZJAb@C11&+sr5_+mrk1HT;dB@*1aj|^XK4muJu347M*%|q_MIuK!2yh#rryE zax6`b-ehf6k&8@sZ;{^_9DT?&+qLIhoAc=q&pNxA-!81@W2{!SHkgriHCSTaq9yll zs9d-u)*QEfft(e4)}LwK33@_#zt1&?rYw3j#g&8go9XZQf0p^U*6h&{HnH(5XuBab zW#y~5eC_%27nx?H?~>M^G%Gjekcr~*p!l70T@xK&-S#|MxAcF%pL*rK{T#*0iJv8Q zJ>OT8|NFyvyX|*7`bACp^$&Ib+?vC(BP+I2+@ZXNpT!~9s_Iu%!Ra<F;pDIg2Zq<n zpYHDo>`~V{6nh}0y(jM1M0JkxSPAW&lIbbYRpCnaU%YsvySR@bBlqf@t^l#3eI9(P zL*+MkvpmfUdv;`@UTv853HQ52x$<%oId6VyPhzaUz5mIHZA`Ng7W{o`F21>Zhvscz zx7^9!`!4XmGYUJ`l%UBv`St<tkIz;xO*rqg=huXysO^&%^XG}btJ|^R{CjgXi~kSP z|8JiDS9aFd^)E`}KCgWs7-#9A7TS1P`*gSs?}@&Pj5j-PPJHeo(ZTo5C2wEfQxA_# z$JLYBz1@=&zC@MwDZ9Tr#2OgU(cQdjmA~4JW806Ul&yW2C+VPjJ|S=6+;xRACT@Q> zJk#DSQ@Tyz=Oy+@&M%B4cQOZmpLN7B^I4h2<Tf6Gqw5%Imh(i3hiqo(;NxDbHX&{M z0-;mqk2YVQVmnjdK`_ruhq+s19DkTg_{wSve^|MG)#ek<;YXrYZLw&*H?zRc^@^d* zg6XY_YFwud@-YR^cVs&M<lG$B=!no`4#y^IZ#{83#k@@OXWi{%=fr-Rn%6#h!=w=N z|9-t?Li(o*+q9?n_pEC&USa0dH!0ZiPpaCy2On7PED}BOqp$wAzuJ~FCDW$;eN??< z>B&RqSR1<6nJ5T)?dZ7heQv~;WcI&;L0{I+Phoi~S;Khtik8*E*9Mk1@*6(QXLVPW zip+2Rx2pEDbMWC6UHd+kU+#-5Zk|7R<0hSR!txf*m(HI2wbst-@3O9o>~kV}p0s$( z-po)i$8g1RmdaTjOMdN^^pKxfw)Fo?>qB#FOnv_B$Xze<{_n)cb(@vyn{AFyO|Q9} ze=O|M%`KMGme0*uz2}(pj_wCHoaJ_|3)~~7+d0Erc1f;?!{fDKI&(vfcA4z!)~P){ zxp&LbQ*W4`PGmhlVM)x)r_VP|oo=kLMPpI_w*6lx|3A9*f64i0Hp?WP&eiXz{d<r7 zhUMR>g-m-L-B0wpzgY1upy1ixbCIi`SZPeIXPe8Qz%{unsPM;&hIRM)--cIAXkNt} z*H>PCE<?RwtCT=<OrOm3;|DcZYmPFDR&dB2e`mc{b&=<!*I#1%XSDi61ifha%TT)8 zSN79k=iYjO;HE$4q~FRc`F3zumIm|1+A`ID4uN?OPFgd(n&?#?)hl}BmD|Eo(^K!+ znEm4H;R{%*6A?Q9;bf~hSJ`c5WquCaKE-+Oea9u48vN&l0)Azee`?y}c&2RT@wZVW z*-m;#m`%klG^X5}eV}2sH{b3>2^07^93yoar_W9L?HY3HVn&pI$eq?B-<K?J@~enb zD>7W}d~}|W^Mleqp_w&G%iRU@eyUjY9WdTteDhW+*OUs5tV??<B3-*)CO%vfch{hK z-K<Rt`yCjT*}kZ6Z@Sy0yW`_}sh;b3rG<etx*VGr!jIW0C~s@J7_)A}k8e>=-cL;3 zD*Zt7RNu^qyN_QTTglN`D<HO{CNzy>RYLpOl$M)0!GYKM10o|&WKUArrf=xxvxDPP zZQhDAO6d(pe8ZAm{oMFkzd8Rs;w~;5{^u^Ef5MaM`SRxi_nAMlw9I<8XQKWuvB$4! zL$?;#9{#VuIj4D5q=&_{pT+xcs_fiwK=sv;M6-xjt$ZbWPXCKBwA=j0?br)5o!C34 z@9#S9CK8=?ckN*(6aU)JlTYTANZEf^J|q3-+mFd@KcBkKc(r1_`hn6}O?6*Xb07Fm z>OZ}7-k#Mw-L(vb&+Yc8h%tPBfB)};i+j7}mruOEN2Yt(*_0mVrI+8TNze5=e(mF& zf~=*{led4d>SW$iQM&hzE7Q|`2bgY@<b*%Fl*XvI>CXh`S6h-#hb&m!oLQkhLu^8v z!=#A4E?+rr1l;$W=e3+C(o*fp{=@Ps3=cM5J~vakmSs+=NyUlFek*%o%I3k&0${gz zRPB;(tM@Hoo$i)S3-9X>Ip^Q3^hj@rR{dqY%%0b(_2B{8e|4%ia<{*|eZMI6_owIY zo<-O<drJgfC>70SEBWaB_Q8sIPu5J|5fu{g(*L44&x3&Wp2?>!u&1c<=Pvlep{ReR z|1IksSNFwj)r+tC^?y3``>o!Zg4MfRm+rXrSMa!m(R!ouC&eQAQDqs%Guj0n+%r>> zRPetoAg^}eQD*es8-5!&en(&7dpBk6`-fImZzf9a7hYc2T`e5RDv<P@Ep$urp7v<* z?l&oKxie4I9Q2Mkb?2$tiTOv2!k1qTTficJ<AI9V{U@a&zR@$5e@L~Fd)~Y8ylrl? z=><FM7A^N%;n(C=Hfz-JJW^?{n^!QQ{L$)tM^f18zD!|F_4H19QIq;Ax~wnymjAYy z4VyR1H>&!k?|r|Ng)=2<5C5X&Ju|jUUYYFtr2l-!dWpiHDap=BeywSS!GFC{m^=Pm zHp@=G_h7SC&-oK}buRI<3`@jvCrPbY&i#0b_XhrFKU3bg-G3-p`R)C&v#Q#+a}Vjw z-1t4^_kp>;-Ss<J8J5}of4Kbrx6k_zwtQvm7n6N+T)3n}ow0nYq{%J89;1s^E7GTG z9?5Rn8eDd0^=_|jg*x~51?JP0KiQR?p8NXoTZNZ<PHkL#<Yjkm`Kd>u>?WC~CC+C! zTzas|emA$VV9ugI?VFYCVb<F7Yu&@xU%biSbC|gC@#P~&rES;tAFs0HD?OxgqtVF1 z$n(T$&gD!W=Y=;f{aRI8`b_S{lf&xGT}LiSs>N|K{JB2&$TIGSLc9Ci<Le54PyGMm z>Fw`-Pr7esmv?0NWODuG^8;5`rluLZ+U7PTHzwclik$B58{uw|+WZ`h*K8+S?%}y* zVb&6NlT&P>;r!Q6bGPf+KA3PybwTX!ln=azABl@bv8ykWDp|WE=LgfW`8$7@%$>aA zit7`hue|%O_6rN%Ugjk1(e<E8<<#*-Wn6q&$Ai<~F89}+`C)_4Utz0rPpmS(TrWSQ zY_MP9m)k?vuDAY~%%>kL<+`Q781aOg+2G|1jXL&+-mm1=?JrQiExdl$fytWux%oA} zr!JbH(EU~Mj$q=dFNNZ>UW7UID)u_A`affPeDAtSW!X<sOP{PL7s+=`y(s^(c+$}& z>#f-L+dOy_bHlCvX+^bPZjM*!$K<NeJvA5iBtN>jjb(Gm#54cSH&}72)*d}+cKxC& z&u5iMC57`&Ry@(HZrZgtIfwPkuV<6ormvp&)%eJpYwD%<j8}d#?E7o=%RHj=Qq0`x zpROdOMl5BJ?d!Muk$&#y-T%q6u6|`Nh<j}Rzd1b4@%KLQ<!iZP3z=jN`&rF(cwYWN z;oRmY7Hj%k%)27*eEsFwe)(anjKq@XkAE{|9dwwtXw4VLvI*4<&#$;f3AfEXs9=%f zF~h9H?)>{lXI@5p<N0^_=bQ>|<NJ?xY7_+VNtu-8u}{~L_)zzY*JWw9#kGUkZ5NkU zwx%0z6FzA^T`of5>8-ui;!a}jr;1hYF&Fsyh+SJS?=*|&^)B18Wjk)FKXiEfbo$1{ z+sY13e0?V}reQ9ZVDTZLB&DaTzl+-yR{uVef9K9R1ID`V*7A2^L~Q=<v}T{I#Q){W z)Qp+oJ9kFkxXknFiOO4tmA+z)EuSauIDKUAnbKb|%cm(Yb$C=+C2*W@JX>vZ=V!2( z{U*JZ2@`wd-rTF5XZ3yYg#@{W&q~;2jk82ML%RFIdLp;%JbKkk%VWaMeXY9TFBV-4 z{h{;fT@`bbnpVP#MZCpZw0_RZo58p_ckg?Z=Ca2(<i7Q;TJ-Cpo3p=8%_g;JWeSxi z&$N2{Ne~t3J-<=<(elFy^5yls#Sd$g$_vW=96F(&$Q$ne+Qwv`tdX$5+vlcl%Ktw- zzWsPyb>;6T>pv)m?XPK;=5GIX;D&q6=PmBH;ty_3xOQyg#1+QOy*W8gmmZe%Kd{1K zr|<I_iT4BcZ}h%#z|Qc7aQvh8SzlC-&)c#(x8r@}zC#M{-<EPQo;h~$T5|u<BSsGl zH>|L>UcWElW8}P9&Hc4y@4N+c?HcrEt~i=`^U(7rtomKDTUtLnT&u6juzBAt!+(Ye zU;EebDg+&uOlMnle`UDd&8~Q(e++B?{oeoI+q}N~!@1%=lXkEqFyFJc`=@X`QT|Br z{kIuUT;3l@pRIq~D3?JZeuH>}^nD(k3nErKU(GPysH-+<%i*@&m628q7qXXlKj)gj zl$;uICOm9e7vssrTU+$R&9^Kqo!Z*?<8Pq;gfHpVZLDIdA=^^AmfO8hbyL$%(7w^B za^{G~p_0|gF_KN2Hc9N8yuDBB!Uvg;X54{o;jeP)E_R2^wcMlIb!Jn)j<fXLu7|zr z@7}I^?yR3P|EI+EjMXz*y5rLiFYY?6^1_ari(|{r7ZP(Ne6Am`HELh}_1SVY<?ML( zk5cN%wv!K5z44wq=fcFTZ-RE7>YlB;WlyyK>80L2)(azQ+V?cCZ>>@jS$@kQ!%3pk z=Uy4BuIgno&Fkw_Rcf~EJ=LvIku>R~bbBYK(?q#RpL{IuykTzHW6_Zkz&^j`mxsU_ zW7boqJbq7C%s#^Eb9-j5vWe4j@%;@4-&^s|zQE)+zcqd{3%|mqsc}IXugkvv>$v}` zvToUT?lW?sGk)C^`zSt>UC%z@)~3%&$EGdkG5c}kgGc=R>#lXeS0?W2m-*V?r<?S} z^xSQxNY5pG8Va&gd>xj&|2Ti+s@L1Xz2!9XZ*KH`6{xf2=?$AtYxe6@f0S>ZQ>8ua z(~nhuy_%k>_B&dixL&4Qaq93AqlKC>uhm!mh_raKef>1gX+=UxvkaH4VRY2k@as&) zoMn^$W&A#H@#0^8v132~-<$m*=K44J+858J*Zs=nuQAX4bNF3?TtfQ8cVhBy`-JTo zFQi?F|1jt9xoJ6vbxyvUb2lNDe>J1a{Y##AFG@bT@iD4jXtmGHmp%_gP4?{wY@6G@ z`r@PT0``tIQHj&jFI7K}uF`M_QrEt6?%m>qiMMxM+v;j+ykPmSgXd$<tLA<B^ihlb z=+@cUA(a}{ABE&9MVIsOePZVSttNJ~Z*}e4lnYy}lGZNJD?4!0v1iSzo`8l4+ZS#; zd`gw&wTAx8n|@v0e|9w*o1bNjO1#49=P12b%qDQv>zQTi@4gWHly-gVD|Nji*R=g3 zP1f#;=-1PmGgVVc_590*%%488Qy;6BS8gx*)mVQ`z1i%;n_admEvjYie>!ZkM)aOy zmnqY}C%Z+S%x=|BxP3=@i^%M4a`n=`I?Hv|uIS&m?Czc`svG4GOYRA->{=>W;$L}Z z>#^sxlT}Nvs&VeNP}j(me)_4=v1WZ>sz&_#<`Ys~g1S#1%YVxH+vNT~c>RwFHXiBX z?;IRHd`bS*v|zT5!D~6iPA|W^#eyXrjK4pMs2X|SXgbQFb@NAO*Y%Zm?MpfOT<ac8 z-BrGS+x}g_b3ZC>dvyAnh+4J2qnGggyPdmFc(zUN*mFhlNNAcI->T<64&QP%)Si0Q ze(3RyS%%Eft@B;Au9SY!oa-IF_apy|)Rr60&1L%<SpB1JEfYV<X=k@hsw?Shj!doP zw+|&jx4rGY9GmRtS>KtEYIP&+(m74pguJD8zpU$D?cei_ySez@<LPHO8+a=}p89rh zxB2$hCch5fD}3{+>P{k?eE)*E0<T3^SLe(6NK7mVu$Z=Q@418NYO0QrKbs`981z*9 z3iOY6T;<f^Df$>)aJ21%K>Bno&D5f=SC9H>mFe{N@XqwmK56>#@!Qtt-+swQ>{@jG zQTuFWqZ>Zz*)unLYb`rlP%<lGgKX88o)tAyWi|SEFX*eBC^_J78`K%aar5V)<(@~^ zF-o$ToQmx;GTvY;5WB-c@>7^?dDVHte>V^MfBp01XJyV?--(Nj9t7o0FK~G9b-t+E z^35B08eDBM%OhUR@C>=5$3J;t?1ouyj-CwGP-+Zj-fic3jZt^E*<bHEy$e&^D`&h~ zta^X4gt|&?q})Azh2HmB8tIC{a*51;IrXEg;?A%7{l&3t=Hm1p&952WJTl-qaQmdQ zOvTc(6Xf?jdVS@TLBrz|qwj|z=5sDvY+fj~MoM7URsN^;j&;u2v7X28yPtc&+iP*- zMTqpAqk(#V&AO{tiba*nPsH!2IOM&eEl^PPczD^a*pw}K*Dim5_;8(lvioC|$&0l5 z&#rl{wVf$ldtv`=`CYX~pHBAX*k;N7@=JKC+59<X4bv3(WR?Fq#j{k*5NUkPJ*VVH z)_t9SU-X^bk8R9-9-H&Rx_m;lm-<z)aOpP3>q{<3H|41P+g+BFBKK9(O-$mhn_^y^ zVe6T;g`E$}PvtEz@%s}kyJflq!_FLKf4iNPq4zHebmw0<^<SbrnE9i6NBNP>|8JlC z&Hg2*!}OxJn$3p?d*hePwSVy7arJ|*7h4L2WRmKO?;G{>39&2s?F#FY-16|D!pzwl zT$uIG$vrP(SpHbG_j2I0yGKqKhp|5_nN@oI>y}f8v~S(gZ1&$dIrCWB=5?2<1r20h z{r)$%ef#v{>qV@RvQ}#?_*&!&waR^0^vce?>Ueii_0g+0rB0qYQI>Nf;j`wg=_i~0 zW1p+ZmabyfzW*j<S+|#-WbT_q4{sb~nX5O&u-kJ2x2g51%U5H6WvkDZ_;K<7i;r*T zzOOB*K3i_Pz=ert(d-_rjOm%}K5?-rb6x!Jl=84{c=2>WCdd9h=gTdcCb7)B--^dD zsuV94+mzk7M5f^OzvDk9ROWkh*LddEXL9cQa`dEAL*0X~Um{GmP4Yi^*4*O$cV+%{ z@?EFSo9*T>mN<KylX>1Z_Vst!<Wz1P)bDQ4U=DEg`R=nKZ=ZegpUqRI-7qs>SGHB( zr+&hnlVwNP{r5feO_^!2*@AoezeQ(QXFQFJh=@04d--%%&IzWTf1j3ZkG=OVwvOe6 z>HX@;>htky<o5}Fe(kh*;#@0>jqB9?x^ho;$gDUzf6L4#tREuTGBpEt6y&Tj3BT=r zXimiqe$J1l@0?I~Zko6x)?fW_j@O30j~&JC8=PtK-v984MzVCOYxM)+FlF&N{{4R{ zek<GmQ*g@Fx6_kY<J9BeVz+-CyYl}-1*_bz75zQsExdB_mYPSO59$l;Q&!$1t!}Vy zP57#7U*(Mor>^*)`X<1%;FSOA_{+vm)E~_hkbRPQb7s-3=e6~(*2h<W;yJnV+_?#r z>$EMWR=<zm{qJf0k8t^FdA~2ok^#FCzIw|XGWT4%SdU#P@z(hkf%gw8R@ui0KUdjx zIKTEb=jNv6#z!VDoO<S<;p)#N7BQw3JRLVXw+hHkPAQd`bC++1+}VWlOS?<T%2TQg z{@ayJS-Y{DSDh{D>yK!?yyJgnoVb~A{L?cN))R_FF9a%?=elq7bNcOQ=AqQJ>vH}j zu?X?*4*iN?`Q|p}um@pray2zAS_Yfga!V#o=9xcrn;)m_)FKC!#&>D{L0PfuO}<WX zb8S?(em}f_;lXl)4!d^=Yu5i_{C`(HKS$rDI=@<%yW#zhM)qy#^K5V0{nB6md5_U# zCX;vb-cLNYK&v-JIDA{e-`G{VKCk-4_wJqv`=&!?^UFDANL-kC!|cY2{6B3=mdkN+ z`#)d|SuXWM`di8N=S!Q<9Q9_{G2uz+kxX@?Pelqjc1Lr+zg>5^vF5yU)Jv-?li9Dy z9$0rq_R-td2iVF>4LD;(!tY;*Te<qlh3(z$-xa4GTA(XZXvV^C_cQZVTtkaw(VQBi zi4H08d%W)dd{-X-@a07A+wwJEzI{{4f4lqNm%VRy*FDKPHC1rGt#V3<q^#Qdzk3)j zoP06mf768H_A5i~y;z|rCOG|fjjH}O+dbt+PVy{_b<BNeF){em3!@`SGuGAQxD_S6 zeEnpT7~`U~zb5Q^EzPy|NJvV>Yv#jN8}3g3Aj&sWiu*}u>qSPp>ex*c8zd?%7aq{p zw>`i$wX7&{elR<0ySp)0-N!TE`D((Be+g#EO3ptQvuP^(N5^Q(s}_OZIG_KzBsOJZ z=5LGX595UT|GmxHzjuikLzs;G-^yQa=PUobW_U!V_!aj@b2a6DhvN^Kq*K(jY|eI` z5Pip`R^DN?e{MvC2b-W`UvQ22|5q}FX^EdK4zFf7d!XoLs?|Z(rp6O~2Il`Y?Z0{$ z7Tvn39mf20rGF{k!!Ex6VJel5pQia&bh>OPusaaECa&g>bX1`7Ek>rt&xM@7gfC|f z^Yc3tUpp%?ga4&Z)S2I*|C!(3lUo-4+tZ#|=EeNKbEAL8JQX_mc>UAR!`Wq`f;+W# z38$+rvfgk}zmjXpJXx{Sl{SG5&lb<(JZ!LX&Nj~*qT&k<zS_-wYIE#k|BbUBiA|4s zaN_d+Yx}1(pZp*tIz=+=$TI&{5jLZmqD?Aq`}&`R`j=$XN(F3bG%cREoJl#l=z(1F z?X#aWmef74|Dfz&eV})4^wOITr=Od0`Z_DmzW9o5mS4VE>gT#Te&P_gx`zA0{pwF* z=Re-}zIED-bEPzg!Kp=z2^C>4SHAxuSjt|t&Hl*qC2#*p><sG8$yjtFCxO>Lo6pBd zWJOiuf`6RN7j~XocJIdd*6ogQFE1Zvo*|X}e5312p%SjGmL<OVR&5(9T(XqEO4u8m zZn|9aOWMX}>Fn)-Ugk>{+&Z!4`xWmydF8pPNg}rcHL^ENo>#Lt{Y}TjBf8Zm)mC{W zN0_MXs+Z@Hnvro~?|bLz^M5{H7VovN`hfTHQ}qw?<EtkfeEj^<#E*P`RjymT{mJ&n zMSa!mDIVzz7b|}WyYpT>xc$VldyGlmf6A`E{F?oDbHb9BEbpdWTeAG}CB|2>*Lzd1 zoP4uncW|3-e7VKK72ntLv$UV*`!b>Yf?Z{w<Ah|3`dEGU_uEWrvR`P$uybWUH9iq1 z6gd57aaA<)oKk^8@iWKr^j`dwSaNov(XS<3vHf~JPyEgtf5CI>(A|Q*(!>|L5C1)R z>kms-z?4nWg(oZpe`Z~jaXhVJDsaAkVcFxIHkV7qs-8^TqRuRvmoWc){TDHH^L1(& z+J1`fJ{+^kU2yWT{Dtc*5zOgoJzr)_W3}$TZM#bL=S+*#8H_7GFj;rViE90G`(P_( z^!510*>4`Z-*75=9W`Ab!`YQ-i|?aVPmX?EEO*gE<*d{bhZA#ngRY#MkUx1#ozojN z%e<xce%+0dXqhe|+qEZUM%>d26Uw@#Eu1cHG;?`SYJUEPt@cOzQ`zHw&iLh>U$0%i zanfbgr5`WuWD0P#T4;0Se(?I}IYPBxH<!Os;hOh7@Au~m5>4~#=1#vV^OSvo#uc64 z`_k|69|{t^^s8(7#aAtTW}lu{Z|pw!-e<|lxBC`+K3iMKy!a1~s}obhpRWh!9GWS= zB;nii4a|3>AHABZyjE%HPg|iM92?KizU22R&W`JVgB>?VjybnPe$ux6K9z#vc`v#A z)qZ#1dGUO&htbL18aM80uMW|>DJbB!=;z|tzitk)nNoSD!q-fi9NEbh@-Jlmrno7$ zuFY$zJb7k<@RfCJhnTeW{e)&6{mn1o|L^7bKWAnhTz28y*YdW_#j%IQSKj$}wEF*? z#^bFHF$sSH%4hVuPv*<B@=W+BYQ<^s*ef*3rF0IfN~>d@4ddaZ8fU{Tp6umZ(f4O} zPM3p@?rLT6x9c`o%2rr?xT^np<$mE-?oOU7howGUiHu6Pm3Xgv-Ih5D4a&cG#M(=O zrhI8)lw7GXcO9El(w<YDcJgZLHYrprDf)8KZ;kt+!x9V{-&H=C%op~4=Uia^J<0LI z%ErQWbJ6Dco3g@#C-2_>ajhR;NwEG^bBlr}yGpBCO7Cn7|L{6*ecj`yZyn!F5x<}P z!H_F8iDPp8&rXr8%^|J7R$SjQdu4!Ug#1U@Eyu#%t%%cUcy~_g`n;(p=g-*b_GXb< zPHVvWYwFXRY#56gmicw*^z_blUVUwnC1bVbvKbQL0riy?pJz^&*mS@({Pi4G^=`g+ z!{{x}OZ`r4xtn75(DhQJ%>}!i>mBzz_|W=qTXc%a+<#MkZK?XT`suC1*7sv)*nT|4 zeY^bcgQ;?VRCAJoL(D6#UH<<v`xEn9w&|^F*1!A{ldI<UiI-cOcL(>cZu#c7501QF zR3f%4a?j-X0V|#B9$a)cdwhQN;;wGpK%cvd;x&aTE_OeD<X_#ZKD~a*r>}dLOw#C0 z<#;NRaerNRP5x#7qMZs(Y@9+LV!nv$7VTwm-{{YpQheEe#f}K!YljX!y%Jut;#mKI zwR29%xG>sH%`8d`ZDx>S<t~kWu>M!y-6=-Ck>8k^_iol`%b#d@EQ7sR-TwRJ|6e!% zU(>p0iPEfBOU3^^Y|pFzW&a~NJpP#1Z}(CWcBAIid2=<L%dD47blmZO>beTX6MB0- z`oEmSmnzJV@nb<K<K#RwwW7QI$IXvU-hOV@WadYUVwny|<W0Hx{zuKn?|H@P#d{l1 z^99E7%l-GWI(b+r=D|zN#^Vpmp2S!!NKVmV3f1{)d1Mo#g5koxWoNT@uIjc9%fAu) z{>`z2Q`^m^tuH<4<Xk)3pRJay?5EWO>kaGX3KUK2y&R+JZ+d0fp#xUi?p-<lX?^X( zb7j5p*}E%LH%DwQoh<ls#$4<3yXRe4!u#stnfz4253=?Jsnu`G?KaqcdC~gTQjYtx z?4y<1Ntg5{UYxq&-{sW-JC;nZ`+1Bb(?2J<;8Rf9yll3RuWNT*Gyc^&y>ssF>86if zJYTYSuC3sy1hvCq%Kub$b<fTFfAOjJ{9Th>8{R&wzIyf3zu4PdA|8j9URJNUy4C9K z?~XrTR=(LL_%caSsAHAgGH>_B7Ll-`T4(!z*WA1UOIYs5e)w>ryKF<C7;kR&*FVnd z_wLyH(w0B>{_n^9`TVg~H`m!0*H=ILT)sJ@(_`P3?zayYceBmk(~<u$K61<97s2~a zo?d)F)cM<|vW3F4g=Sxu<6Odf%XfzGzPArno|r4Hu_f-&hmB{~*i1SR60fnZNZ=Kd zKt+k*^$SHp+xbET<N`}R_0Fzxxu*5P<z)Duq-rZk+qr+PCX1c9=l_wl?vh2yipjsc z+576ImL~?wKRxEZVt3gI?+XGYEPe9zhiiUq+h}IC<h+CS<E2sJ(|lUlF6s;ZoWsk$ zV^@6A!G-gq+81f=&ApPD|1?U@>-J$bd#kEX_fCGS|IGjI>{<VLQ$GZqI3MseXvOQ5 zR{w5pkKNm*T+e>)!!jNno^@7T=a%U&6Bg$F7(K)NidFCKR~CjI#s%h4*5W(M64>YS z$XU!$tn-UZa(EfTqq1&>zvYS@H7de+1r2VK)r`buEOM5b(a)Qz)Sk~)@$tuuF!`_X zyN~l65n1l6wYcDE^_i#4FQ>db5ZcPS_|EgEM^7_|r1EVkt9W>dYdw$L1Mc(<m(<GY zk6Ny%Sn_&7{=R)30cmU(1=rX8{ObJlP<Cr=l;V`%H-dTBJz$&9=x}>YxiYiJ_53#v z&KCcBvg!CtzKnlsUW?n8mj8Z||M886@PFri+5GeIyXVhO*Rz`W>3&y_zsl`jF=>Gh zi!bgp6kKY=;J7UA*JSIQr(EW?rJLs6isfbYIdn!Z;eM&QNrLOIW`k=F*O?oiIxlUf z+faCGTk3LO#^tp$4!C;$Ji?I1)c5wl#q075^eUTGo>pFdxJ9yrE&6I>MBO$0_j?)C zMFle)*u_P@Ej_UzZ`#V)o|ksU`L64_75qi|U)$O3d){3t`+RHf+w1>te!jijzRY^^ z{!QZ6T1);v5wv>q;N6C}1Xlan;JQZ|8~!OyyVbD7&+osss%DVA_~{S3FXXp=QG1|c z5|d-m_rU*E)U9t!yMKD==iARa@ItyW#Q&ORutBHj8R=OD9#dT%oOE^gN>Vkur4rkh zC(J6kdfse?p|bkK7nA>W*7C3}-g{!+4h5IG&5Hv#Q@O8p-MaL!dL_@q9eNx!dG;j+ zpKNs=_4j8Q-w#jdu)EYFAQNzHdgLDY^U@lwDl(5<K3U%J;nJ%VH#PmXH7`$R&GH_O zhq4zg*8fibw>rCi`vU#F?>GJMUVrbl|Npb;b<F>Nxmz45ovY+GOMeba^^>R|HO)KH z6;?gx@}3(y8|0=(FtSHGiku3%qv6V`KWDF1g!Lkql36}IXBCVlPCtGxWs?7Al_CXU zb(^R2S<bDSTz-7&)S@HZTtAhPS96P$vwgUr?KYSH(<HsDj+Sy4o9SYUwtwLKQ0jEL zFD~{;X5?cHFOS(9pSZqv%e1Ln;Z<A8vT@7O#a9^)s8<{~yij@bwfuyMx8K__L=-eG zTcm7tTrG9`4Go*^Z!_<)eK(9_{jFm@K~hBf{)<2@mdlRnoB~^HXY}|rMD<VLjJ8^} z<QtRe+q5``<08{|r<8M?y8iBz`CIq>DoPps*L1%uVSRqO<)qY+?&DX~Z?WlWC3LgA zjFK&XJ5g|kk>A26<?1Y*%I`xwqkAT`%KiPapJgUbaFRINt{1Li3oZu#%3w99I5MH; zlX-sb{68Jv3k#Tp?5A7E1g|UF<R_bXBa8Xe<Lvfd-izuk8j5PoKBal{#I~^3<vlmT z3$JMx@om$vIk0wfVW9TpkckV#XS`Zef516zt2F!3UtcUPdQGv{^kzJIL1dv=`qsuq z%Z2-VMeD9E{>r;$LJ*h!`{^^PPDIa^+)~qIFyqGa;CVKx6Ik2!P2{i2Ib_S^thG1B z<}3F)hD(tVOZqf<^ed&6wx%ADKeD;Eq(?USD}Vlim5aZq>U=U<XEtBe`i!IX&AM-g z{{H^&(x-p*!z5eA4F~`Km9P1t$+sfDk$<oA{+U--)b6U|+M4iDeBYg|9m_x8lH@7; zcI0hCBiDPE0@oAu4SquF{@kq<wcRu4jf{X(c-~xDYwgJX3*x&S1)b7Q@R{$L5Uwit zcS4!K$#+au^HpbuZt7S3d1Iov-OBV25exsvzn%MX{j>DS`}2#Row1yE&@7o>B8Y7T zGg}A;<Ed+0rlMJ)qCL!9DtlH0J@s{-t?<?VLw8uxRP6;^`cY3qm9L5@F4S4ILL;a- zr?Ie5OJM852Q5c8+QuFGwkG}M_s@IRy{>!reCEfXX;%!c*Pi?Q`|jzjckfs4uaEYT z6Y;CFT6S~cu}m-h&^bS+u6BFj*L!YZ%8B<^r+4(uJy#;}WMb$V`PjvU$~-?W@Y*QN zJLYf1yvo{dZq4V329KmP(r$~|Ye%Q}=pBt_|9OmUy;QgR(*sAE*OpGX$tUYp=@oW_ zRm@q=O69%$p6{!Uc21X%i~0TN?a@9x$qlykQLC@qNEPCBYiiBVv@Qux@7{Om@Xe=< zF*2EREY|FNkoX~>>4{SPI%73`yOW)L2CoeEsO*d{PwO(6>SLD3U#fAO?K5w+V!M3R zT$_0vaylztZww0AbbxvPj_UbUa$g?QzS*_*sQ%uf^pB_NOP)TOntvy9j$mF*rT#nB zhi>~M8XnC5s+6p~{l{vZ!#gIdeX_w<{qsSE@FJOzrhJnS>&DZ%1}`6MJeyXu>1`Ur z?IiXCyLAj34m;gDJK;}Sam)v)MA-?iJB{83*L~V~xVQ9%(uo~0s`Cx|tNB=FzvBMW z@r^;t>dVA^x^dT+FBJFkyx`G(=G1znr{aQBIhA#KBP<t%9+-N6R>-b9q0`j(H-3xe zNnKNRCUsivS4|taQ+`wITXicx?9dCZK4KSgI_>+)Hw_Do%MYAVxxM;NA!o<**q!SS zyS<#Onz(KA#L4`BeqD9Zu#;kGzIrtB<qZAu|If}nnpR%>WTU>@hfg+f*Mu9+*L?l* z^ZWk7-xvS(o(*3Ww5LVuL3r1y<YkAdKLoTc3=Gh`yE4#obK?bz!;T_#;rDvhS~LY} zDlhzz?HXj0S8~nNv#i;@>=eIX<r%*@CdRL2QWkqwub#{{x$?t-lM5DG$b9^^^mvlU zd4{9YVwZ4=|NN^l&1!bnW(MxgbEhXuscGL>AYZvGcy=l8;YsIbEW5O$Ir`Jm!+M{M zDwfPxF{@^#Tj7J3Z#{Xm<<#S94E~GcUOhJ<V)Avz)4Z|!v|}qdH|a=UbegBb93Qr{ z|IYf^r(Ej)xJGviuiu;W@%nwc_t`HK;`!{J?>(g^yy3W!<?7N~%MRI0ojP~vY|km` z?k5)Iy^6WLmWQKovf^~<q(kki9_dCN*}3P$^0!OQ8B{bduJmUACl??R`f{^Op@r?a zNvr$jMIJ74XLtL1B3bIwr2U&WSG<(&uW0!F(EPmKzOT>IdzDMMYD@p_|KMo<eZrK? zZGu)g>On=1mj*5hyzzF{!Aaj%r&wP!IAD0-hD-so_sOHz)QdAWu~sH9mrrcxedHC^ z?wWJ6ORk0^tfAyn1MdcbZ!Hd=V)AB*D9-QX=i9H|_bhad#Dj?(OHZaP+TglnA-DX~ z^GoehTxSY}|GmRiYw**WFQGv}rD6Y9j{P@7WxHj2uEdtQe_i*=I_a>`D~Za0NiSCA ze_FkC>sI-{E?ZK+a7;TB{bKvtCyw?}3pX|hSQ{3UaV?r&cd*aFs@mNA--B#-zq_B7 z>hoUK`nky}{+cj@*RN~V=l)-<zQ1GfvyByNU!5}CUmUxzY9^Ox$F>Jv%iP?ao?az7 z)vxm%&s_`OXQw<xTaWK4SRq_;v^jQv#*Qw}n~v@cU9v?P4sjO~WOG&?u1h)H9CH2d z!j3B<+ESn0uUK6Akg#vX*@W3W%Jy-MA?!>1o_+`nQ=YWEGcaPZ*(~?(;swf6*nWR3 z66Sn<?sde|RTta5L|O_TZmtzQ?!cD#He`n9!wc;_2Dh|2)f*cMB-cG^x^l6(Z-<i3 zuAYXp2Me9pvt>R;zjAn)W24bg=P7RDtg-2f_43#6`(I5u*#FLQ|Bm<8;x6ksmxfvT zEGSr^w|nAOuDdBOs+L<7#qD9;5WeJw>CGg&FB<oLPMR(&D^n^~c_nb4F5|&<Y_<0% ztlaeRFViAzyNaA{ekqL=i%%{8c$}x}@MMN3TDmW7EJXC3p2S#rnVVTTd(YkR>BhpN zpTDZGn%R8pFlu`H@{RAz<#KnTZ9eS1dzAV9-VGL|_U4}g`IA3<T5zI8X7+;X{m<`w zjB<OldD1!;HnB@9-><on=q6TE_}~nS!ke^!NB=mJCp7CV@qeW<XH((4%VuAAcYn}M z*uCk^>0?&c71-pD?OJ2``Z$Ahr90=_m~F-roM%^-NiN;LEp5$x7XhOi$GK)6pXAKB zDf!Vx?U=%2ra^P--TjQ%(!N=Q8f|&pkSRC8ayi4J7s(u6Y-ZECtv{yj``OfYmpNm` zi-1)hcmy7{M}GN|dV1S}8;MsYtgB(M_e`~`RE~MF>e2lB_wVn1$}GR@!}X(;JLl>D z=44>~KTG<2?cZIO-Pc`QT(JMxwUyg%N|bC44LQ2d$?!z(>&VjZ0;MYkZ%dMP-_2+H ze64Q7WzMRvI+Z4I<_Z2v4|uOVHB3$2qrFaw%_x(hPfu>5lkDA_M*<Fc_()0It@KbZ z+N-2(>7fv3+PG(8+ujeysvk{U{HI7bwDiym-@4PGGp33%`$VlQe(~|ZOkV3RUIr;v zH#0XpeI{p>vB7-ZsnwHTe(3VExjIqcX`g@LoeZ{jcN))}ZP^xEBho#;H!Q5?WW&L; zsZpCwuCF^~Zr<*y^SoPDwm&l@Z<)sIw4j`scBj3BBsSW<DPJC3$2B{Y{dcKaz5bQS zY&N+cwy(P%x98b=`N%yFmbQ!AUvYRL{Y58Z<%%#@)%nIdj14D;Ojlj)_3qwx-~1z5 z^>_aAwesIcbnaMCcT|}F&JD354}K>3(vCjUCx;)4ikqaktb0<p@84GIZu7mrPaXA+ z-@124*zI32zbuQh>OZo)zs>(i)xXX1=CQ5Y1erU7TIU~Zo*=*K>tX-c1#$^osj2Pr zKb<Oje6X33C2r@*FAE&^$(UW~nr(LQ)t)bhqJNqg{yIH1o@L|h<s28^XB4^3*k!x> zQoNDn^}L3cA`hkCX<VPQmgR+(@W*YAPpersciw24@kJwkoqXR08#S>zGLh$gdI?WV z*zLB+rfUh`4t=HMU*FgDJaNe0t)TtY>Uz?t)TSKneGz4M8fLsT&3yGqeNWcTpy{>K zH{7|D)UvOoGkUAw2JP_5hjSi1`}A*GQvT1c(Q?0oF2<irUndp!?cKB4;=kwr-Fvh? zMAv%ZsgKqn?|!&GjXQVAGeF3iaoxv|Gb>Ui3gmqBkS!5hm#bkeVj8Ap;&<un`v$(y zLT|M%>kgEp91K{ZX;Go%JLM{uYw6X`e6RJ&Y&T8Q_S)vW@utyPg++_DH$EzNKV*63 zNRD(;sgh@R?~%#Hr-LLO=O`|5%wycRbb8>61X1BB&h97gxu|dY!Y#{VCT7exZ^equ z-(Ll6{Bm|%_e6#$o<%ub%riB=zX(+lV7~r%Ewj?n%0&$dZ-VBOYMgjrcq*2&(UtR@ zu~Cz$(uJiRGoGCE-kEyS(tnY8H<NPyq`zm^f0+2Q;6}mMt-Hz_7@3p)rim`uy#D95 z`29t1wtd*bl)rQL@A_A57Uf?KHEi;6b5?MRYxG{86CI#FX>*n3Im>zpZ^zPSPi`~M zxHLmx&xc=Yk8=Opmgd#;_C)cOpIMu}?#+LZ+jZ~e0g084{#I{(H_9pQet%nhi|``p z_f0ArQg$jv`5ZpTc8t+0>D?5Yjy}g3-_jO6X}<W>am$>~lb^;^nyvg9`7+H?WPime zy&vl@nj6dgOYCc#BL2zsbSvY#)eq_<4=K-ARX@AQkLBjX2+ozuUwEE>GU@ots~hH? zDph;R8avbV<+SxoMi<H-byxh;5ZDwDkh1RdvHm~WD}@$#MOhSVQ{SVPd~eFnmU%Ua zixQ%)Jm=?)cvYv6`YYrm%M$&PB^Q=N_b*;o8SeJY!KvymSC5hC-gj;buAX1-u-)N< zhwU8C^hfeS?J+n1@0es)d-=Hh-<+WMZ|bvBtQ8Ahho86mb#MRfzsjMr#8)WoyEIi_ zTlBi(%)+YDC0%E=8o&6+{kS+`<&3yqheZWv_eC=9Ff{zP;_~9AU6-a!$WeG#d&E0g z`K0|x&DuPbC9mBdCyGYj&h3(V_x1mmS4SmH6Qm4pAFO$JT04hj*&fF=J2p+V`A}x^ zeCw2%0?i6M>uf>`Zdx8{7S?_8#PZO^3wJvnPI@cmmagU#arBdz!}CtR@WOXnnr^#q z+f_UBpuDT2>lDsEb?FU9tolziTX&sW&hzuBxlC-#+V{#f74Iv{mmQmbF3zTIo1}}O z_tP^oT70(sd#!f#gtOG-W$FKgCa#p0e8Zw}W3_O`b(z$ITLbcXl=*KMq;$?>thA^u z4X9bE`u5=OZ+~14os>UX&3WMG73W_&CLc3=ayIMq|4s2XFLw9x>94!aUeL$coxRRF zW!~|x8H>Y<UkH8V`*ynd%<A>lZ`L2O{dZxWeCMBuWomNQev2G<t~9-CLnCL;+kluS z`mgq!7Wuv4Dx*x#&R5R965e{LN4TVX!oMt?x5#;4`SMkJJUyhg?RtHAOJe(_6Y72@ zYd+M!EngQ`^S!Tl+ewp&PkuA*sEeD<+<iP<woRfWlp#NHa@kJa34F1)RPR4&lDzwM zw$R(9_p00b%9K409Nso5-LgA=vhVz(s=Tijn$GYzBBEdC{;Fqo#r)N=v%~kk?K;X_ zfAZ{VC2y;9%K9G?x?km6o|;mvF~QsZP>PY7dDd62HL=RK)PCLAX}xB<`mZ!cE9c7^ zXWv?Vir948?zThxtiLZ$IL|z2`L{Il_&4o$3B`|vZ$J01ePUmGw7SXp%hNY6WgAw0 zssDU=`Mys(>ucYLv1!(dJW~rRx|b$(zIS&XKcAM3dB;VK7ay)1-8pIZ=i~>M?Rzh5 z4%FH!Q<uLtbaj!+R%2;SlgLKNnuN!O%ZpkvePaCA>AnqJJt?S}W3JVrJ+qb;9$Xzi zE9p>3>VE#r>7UoJy=q&wr_v=hh&8iq<Mp|da~_4xPh7k?rPk5y-v>?6rX%SsqR;Pk zT{(a4kJF8#wyXv%Ij0{OJXZhjrLKPK!36gu54Nt~J}uC0#{p-v%Z)GhtGUI6CQLth zL+R>)7gv|xR9h(djfb!P#L?pl$6n7eWbg^w7H8<SWSzFv<kpG2m$;;#>u1QeS7a!9 zhQ3LeQ>XH%(_2X6%>v&`J&_s9AFkP0aeDW>%{!j=ZSJ1D^_6ay$fJ`E$Ns*!&C_#; zKc-;1(3*_=sl{P4U61QK{p;>EN=lGPyyzA0vn^@Uf-9mwKYUu1@uZjKqe0?_meN~t z?5_pYvo;+{Rehh9Vrlp>jlFqKz_Y2-dDSF;eSa$Tu~IwkE5FqA_*-jKJ`1?mRl3PN z?eux1RbSY5SLBo6Wa(gsseLR*1Mf9&ycBjm=A7hY1<n#tO=kt){rcu!bK<A#&f~7y zyo^2WQsJDJep)eVs`e@t*B@uHt0!IWJ0x0Tens-<)x(ocyUg>Pd*Ah-`@R!<V&-n& zbXJhPZi{73*~~N3H5GPDah~@vD5-;Q)lL7NPo`>~pH}nze|YWSvE}zZo;<oU;e|5C zid)-f3s#)pU;V^8x?OC380#;a=B?pbt6~;^bT#G|3)KmGuq<$C&$cPD3Zj=p^<Qak zs$u5gbvXAnY3U`SN)EYm>z>b=7rD(+Col4)=FTVa!onY=_B@+<!b@EsOQ*Ee{A<CY z-is^wzNfSpG2OiJGW+9)Ln^<rmTMbLIGq2kg`+z&UbanL=9Np2?Bs@1Dmo>1N`%<5 zOwVe2r#!kQa@whPSCa7mf(lLH0+IRUJR--tmcF>*_C4VQ!=yFSS_RrquB?l@B(O5$ zXtk5#e)W2`!=7rUy(K$}55+xaO<Z|^<<oRWzSk30u|-Z?{)fvcu5ZUr@sC{>8LSKr zSsNcX{K|+un}3yYo<Mw%WOL9J=KF7U_$@ZrH0SO@gOcAyo_v?$0>suok_dRjTl^w* z0<UairGVQV6%l69ltm9#P54w%zc=4U_mWjGyVIVH3wl<bPe}Ot$lc{{7w^qCHal~p z57lTa_0n&fWN<3x%Q|aM>&=r*ejE~ewZHz#Y|XomM4p{#I{JNI%8s(KFq1QkfBvY& zaunUWdaXv&^W?IJHoKp!{@1Va=5S?^E$7;M7jyk??8=|&r=KRWjb}Ui=J+*wN7gk7 zEtziDb+49b<?mOgzl+VUdVXAf=l4rTrswCpXNXz!CjZxu!}Z^0)>ras_bZE^)BU&c z^+xutol`pkr=BtAS-CW>aOp9L*!=S2aoVy=jT6rD?u-)Zom#PLOW^Hb8)p60;$cUw zW*)o!$z<n+>YH~Hvm8E`I_y2P^@pm_FX1N&_I?{DT}<VU&sWWRbzxzmSbatN)Rifh zUI?~G&*QlEaY9DsgY?Lk%aV^4K9sriq$H{Ay=VKM#fomPUJ1tXd~sGk`Ra$MB*TIq zC986h#aTX{n3h*p^6dFmuaBkwMWekXHa#)&i07WqUiLG#%x`&*z`7GZwy#QvwF`RA zzr$t82@{Ww<M~ay7ZfEXF%=g@wZCFC@42M8Nho@m^Y<@$c{$DIy-lpf^Uo~3u_Ao6 z%go&djAu5)ul>K_l~n1sJ#4px&Q3G;{_LAOUwUz>VYG&@^pEM2lU^<IS*#I~SMsc; z;rQwcTTb?T%FjMMy{h6|sk?Rhs^b<p&ywB6mxXTccBzs$v9tW3{F+I8@3{i+P4o54 z5Vd<diBYJOPj;W6@7ENImZ}TA64%RZx4o2QbX|JlN5X_dPp+6Vuex`GO>L!C_A9~8 z!e;fDRqC4r<4;a9f6cmY>FtZ#Rb$kzOgq~!skFVK#N)x8I7Q}q|2zqg$^Dxc-hV!2 zTq<ep@mPl4#{Z#9#-2o@#g?&Q_g)6fF28?liBIa2XKGeCx0mieyt7|rZq4e*?D7^_ zzI`_*Tw>CncxeCXq8k>{(;1V>)k+$Cr|ey7_mgqq;d`Avg*VRd-dJ@#{>JSqzV-6e zPtJ8N+S}=Hu2#Cgl;z%ccK-h}wchKlS~0&oRo*vu*%dMUsqrk1%JpG(RtKXPCq0vY zYx`HA=<oDthFZU$lt1^9D7A7}Y-JmxH^YWgL1^bh8QC|<zYcV&%P(1a?_iI5YS-C4 z`@*LGl3iYNQQ-K4-VZTrr%3uRy}G#Vg#4U`S;rY~U1B`D)M{}=s>a2c9+I40x!+$* zYO-8<U<0qrWOdJ+EJ@Eff9`0MSJm*(T{FSF^qFS0Yuk~FiWeC#Ph7C!lC02rbww$M zTxMCxxf^rEif<Jw1e|u0&NcSj?x9m%6mAkHw0>f0)S7uoMk&^Ye)f~D#~v+wmfL1J z^P!toXum|jl<Ok0l>rPB%MLqhEPblU(ZtF*L8?h~-U6k4ueRNE6;9IV7Fo-&U`vmO zkH_JC23{=AbzAIZPm9b?7Mdn3I!Wa|vt3nz=f4ZzD?^MIy^8o2d@gKqX)E94s`Gj5 zOc~0G>b;SZgRPiEHt)C>$-m{~vtQFn?`6uYNs3*tNHq2L6}QE;F43mkl_?Cqid)X_ zSQ2PBbHbzPia%YNIC(zw+p9>f;(vEsMLF+Ch}GM~O~yHq+xVYc41098iDeNlYxj#w zJh$K1yik}ump^@K&=&WJC!8K#+Ij9Y+xD$fLZ5iA`mplEz702Qc09F}uYThFI#ZU9 zh3n9<$DRT|&an6Wb-udoe(0y)`bvRo*$zm$Y}>~7+V*-#h1UCZb^?$5n3S|OcZM^0 zZ|r(@%e=So+=SN|7GVu<xF#ICd(Uvink|PFn?2jr<rXbXoO?a?US3I_M=HZ=dnv)W ztuI7kHN{L?GkYQ!ZIe~6zuPPAczh9~z`xIH0xmo5=5bXh3KS`wx1uZ4YWL%*jsId^ z?_!9!{@5#L?!t+^-pMa699dR#MC|*L__)=6Gv`!Hmi%#mxot}OX}2jnI_;&4WlElx z#v7W?3bcFf|GN0lqH3?{Rz9D7J{4*vYA(LFw?T2ut{-RC^ftAha%a0HW4Jl$&yBt{ z+?AYc(`L4P=!zDf)VadiXYK^S81eX0#fgla=c@g`U)|94R8A`FTb^=~!?B}t>pYa^ zeQcjA_~g9y+ll!fj@wz=ytbTqcys)cX8j!pTdeBha(AdT+~~ghTqFC&WzpBOT$Wp{ z^HEH@yIv!%>FHII-TF&{%QI(h-aX}mm%PzrkHr3~uh{=6sz|<`tMX#u*~_~;K0Fsa zW4d$ACyUwfm!7a)`+P-M%}zDtZdk+2lAPBYZBKR0ZOFKOYE~J?q$A%0FXa7Mu{I+3 z(+chz3Cmg3RPIP0)tjo%o;Jz<!a<qm`m5jmyM6krcD=EV|I_pt8Q(=XYM%9NzF+-6 zx@=!{!G@h{b@yEl)?WS4*y4iZ#fUo}(_N3A7n_mq^LfQgE;rX{=~rHvJ`HAGV5Hn_ z^)}MTbasRC6^Sc{G6Pck&p+!tc&_XTgME~A)m(Ot>3e28V-$)Fdcfx}SN^a}-TEoP z`s(~0b>6dAh&Jl3>Dkl8EhzJLf~?-NZ!NE5nWyeo?G+O3*pralV!3(g2^W@m%S*MS z^Db=CvC<Y%@ZNtY`^1bX%={^5$}T)sw`;Te;N;LD{j^&uHok3IN{US~``QW(cjHt4 zr<^;cFZ$z|!BtZ=)jw|x67F(Ln$$a4^W~1Gg%OoKrzNHZED?M#V~^P6f2m2!PMg`! zRE*@YJALVxOzuKs%LC_*2+W+<6Ivm*V_EZp#SbP5KAE~J@>{@skL71<Di_BFyc1ZG z{HgrL{Wbjmy0)hn3s2_RG@VmkJ1)iOs=NNliR~YljZ=?bW;z!C()h~;1*vj{J#)h* zPIZ{|>G0{^4CkEH6Q7tpGLbD1wmrB*M`Q24KQ2By6<m1#wyFO<#olZnY@k+ij{D{0 zz5AXh{0&^6?2xu#e!1^~q$|ch3d2O=ZhNRbx9K|mx9QPbb%UvQR>+?a*4J6Lf1^Pm zpOW<H9B1X77k1lwU1iRH@m07jJ|aiguIRG6{(1jDX`VKVgZ&xiG5Tz;`+BFp?lrIb z|L+Um9*w+uYx@eOUweg385e9iURHhO#)~T<fzJ<?=c!x?^3XoFHc;@YR`L8Zy}l-D zp|d7WZnyYS&E&9HC63)nP-<`ZuCDHLj)evf&iL<8QqtRIVtODed-5@_P4+J{e_hFC zbo7t@YHHVXYWdO5<Ggom1ePy9wBpG6&wcAyA1~c}aAL_s?R`EEq_m^o)_wn_a(d?R zhDGV#agP2BFLbh0S^Ez)=Y@GhSyij9{_xC3)%t<avdho>=c=U!YMWhNZ!jfg?#4n} z--kDt!i>H>>^kNqpq6B$^0ruZqHHt&y%avN4HAdmZ1;HMJF!JKU9xq;QqHI1wI^l1 ztqCyN(9roR^^~6Cjey<Jo7Zkz`l)Bl%>Fm0{1(-0aCg<H+H)hRZmwqbbH~)PEDeq4 ztXWPrbEvJn6aAQRj=%Qpr!yzlTe+z1y(ItE`$lwK($pBW-q#-|oo-=fXPc%NC=pS2 zDWPS}xg(B~bLSnr)!FqayHm8QI<!l3QfbKV%PtQEm`xOSdWO5bII@@9>KO~eULPa3 z%Efwf<8@r@B<HklJp0J!w`X<d=EpJre2R}~{7ALh^d>~jChD|SU3kBgvhbW0#`|Qr z{Qg9*<KvRHdh&S1=B{nLUBc6U$}%d}?5h0z;o;f-dp{n!|CiQzJ5Q={9)pdko$}Xf z>*rQ}n7_B~cON&q^m38P=2f>1*`ni?o|N7lQ@k*Y=|21O{E(WXg6DhwZjiJ5^nj6D z^j4<KlhDIG<s26@lzOYqZr&uIl<zIeQnce|&+Pj)*7{%PymnuFnO|<(83~)03o`zM zzi8E~`?tqRXX34;L17#>j!N&cG3adfJJuW6a!2OaQ_gK}e_u=~IrOTJ>95%$KbMw0 zU1}c7x4qfX<l@e~>fGgrRvwI%3qLR4oSyK3YyBll?{{yGomzTejmzy72c&FIKI!hC z*$~Q;HbuqqRLv5d4ILtLQ@PEKKNVp+@W6nz<d@-xAM=<JPo6EZU~A_s@6h5ur4;(Z zFK>NVD!1^wR}Z|`%si^UmnUn+5r?O_DMyz45y%L2E^ATYQ2Ua&wj%b~s`Jl|>Pepc zW}dQQ@08E)rsqg7-<J{;_IRQ&n{(Oyw;P<A85QU532^7Uy+(AGH@lnIlryunveO%j z9vsh_Y!fhVjb3d1f@Fu?Q>I03^huoN9}<(5@O9ORLmYw@i&jkk!YnA`eo1fD>1-<j z!Og03L!SAlExNag=Rnw|iSeb!pH7}NNBvbBx96!e_od!B6Ccji`6w7Ita0Pa?2;3o znHD{n;&JZu8P@(+bJew{EiAb#=FB<cM-W@-&FJrsn592;bQmUYnKz-i<{s~+ro>eX z{x7aM&g8E2rQ@OetF}kc_kKQf-`{hh%)j5kpJATdV#kl}<#Vi8i?jXxnZNhv3*lAm z*H>NIf26nLmVawlYF~T{`{GLr7H?i=RL!)&%~ED+9LtiQfmUqt{O1;h2j$+p_+#Qj z4<Qk`)zMPsg(oh}4E`zUB5@*F_27a-rZ-*)eB3R#>f`J<S((*2)+gOn&dK`U;^61B zQA(ZOwekM-iiPue9Xgax)Sr+!nV6ZPDSXoO<p#;=hkPfh37&II;93zTyK4%+bwOL^ z-LrwIJuhA~%$)I4YU!Z|ZF)IcV$&0o8Y8;P7iA={&);%2OZ1D2*Tgk>F=@(vA}{2h z>PnTI+PP+Gzc=58XZ*Wu91`Y#Irb!oX`*D(p=5iXUyc6DDnG2ZGI-iq@|@dJc(2pD z)envN4vEiQ_gzz1YWnQfC0>^oZvW!kBNY7m!Jk8~jFh!r&Yi{nCNkMoWm`po8gE@h zX8#|~68}XHbpLs^$MOBsdfmZUml71$aeUtf-I;6)Z4z1%ryi;7`jj%MDyGytazb`` z^%T9BjZ?qbp9=oTS+i7rrnBdUTRRS|dcu2fk)i*kqE*`z*V`Xamh+$I(KK!TBORr` zVK1u;R2>3devxnan*Zmt+aZe=r&52;k`Zh<?U;Xb&WqJC9rJpQZmZ{5qNAbz$Yq)T zuKXIOc<rArdgZIX%vN1>-oM|W^sB%BO%dkC=>1jC&VAqewd?=pjr%KGwO(c?Ej@8+ z{##w%b-O&<PQ4cG4SRXfarL6hGdBcXxM{OEa7B>&-mvbF-wPc-FwN>JUapX2ZgeuR z{m7}?%$?FpUwDUox?r(tuhER7Wh)+iX}>SbbMu9?*u?j-JtrPDZgaoOsCifWVU=Xx zAr4jhty)@pbBv8DKYE3yBww{Max8oCV2bNs9eY7m?K98cytV)M+sCS|j_1q^v4xdW z?MtpEM|`*yy3AN&V&$40R^4Vl*2KEpQv6uUe5(B3h9i00KXti!8f$OxOh47Sd&$kJ zZ`F#Y!q`f0avo+h&u?12{<>G&qrFW|+t}+{Ua6<ob}e7mu>bRWmM_ovn}2ljh3~M) zlj!zn(Q2}YS^9I$`SWp}>Z>zOCYE>TJ`LRV<aABz<QF1osy=tWC0B0pUpa5dr1^%5 zQx_g{{c<F-@AL6SpBu9*mfSCSa@<NW_|OOU8r}td+}yva85oq$d%8G=1WBc*RGM<U zbve%`Cb;Iw-DMoh^v=Dxaxv~=_uIN+nO~FHW}kIWJ=58+PIvY+GYgrP4<DTO_nz9| zmoiUf+n1HfU-(TQL`{96$?TtS!QWck{VH=yP@kB;(7KYT?-C+k=_lO|>U4R<-v95U z^=`L>SKrnz$*K<v{HamfvbKM-Qf!!F_LG?{Gx_foC2hVd>UVA8^h^F$nZGthA4rhT zH&V5GrSjCt_O8{gk897KJ=;I0w&wS=?=_DWvU`=xpD)QI;<;O1xbgho?&te*>R(^5 z4^RG=+gY(PTwn`tXw)AQ9j%Shr@Q)^Y_&dTEMAn@5c51ywc+!E$J>S6p1+#iaHa6= z$2^8F4>G3gSjzQV`(_J|*U1O|AG+?$-6y@pWe4*n5&1js4x9hrxRiNmV&#OOxWFfO znNKEuh<eM>#@e^6_^{g<mDEbT`AVl9kDo7VuWdPLFFT!G>f)uq9nQ~HJw9CXVxRcu zNzjp^3%XAyzL8~EwBdd;Z_Tz)Ic`>_rAzl*5Pr0Mz10&F`{jCa{BJHe+9c1~qnDlX z_!Qr{KRxNcN;i4$bBz8t-C}Xk70w?j!W%bh^UO_q6p#>{%g*d?k?*U`xW+aj(s7D? z;o^7wCwpEs&FD-|_<FX>$H-gZlj4dqJju%Y-svxl3tE=*^tyLt&c!K`r%pc8IQLb{ z^>h^fzZYvNDs;~?*I${OvHqaR3lpIv>rySd#XY<!8YMrYKS#D}bK5OuaKAR?oz;?t z+XhBw_3yL<-#yBgnJ}^D5R*k(g}{q{Eu0JO_|kkT_thO@G)(1wJIm@#S#Q(Kbq9j> zd|qO*J$&NM{*9lO>fBzw;B(1DC!raC+*_CS)ZBFa@yk=-@@2iF>nsX3AD*XZu_)$w z=k@%_zokRg@5ni_PRX9_ua^AupUdPf-n+8<ul*hK->Oaj&#OP1`?k)9<=^M)=WN&9 zZTSChcD~i81#GRWLl(!2@fNJQnU!-Tb564H%2)fPck(+5A2(I961uoU@X9G?m3`t4 z+Se+-=G86T`{8K&-^i%-CxY%|={GpO3Q6!tp7B?BUy8JT^TP8omAmH%m`z+a-+s!H zw%ICOKIsQPoll<>_C#;8XGiF^bDrjGl5BH2L?xN#Og(U7vXJYA^AlY5FEN(Car5HW zBitpkriK~0B&oYD(Y-7x{ph%4bPj*&G5yOQkC{HI3iR#xA}BTE$3u(ca^C>0yPY%t zh5VZoY+_vh>-tqkFPVZ5Umfit--vEMmG?wEZbPHTxwJ`+e~lHacRz5RQf9M9n_1A> zrAuX=(czP;{p`c0uT$^(u(U@YOG;ix<XF!s18W{0KOTuaH~U2QZ9leg{hZW=ot+(i z9f2{k78Ljel=NA2q)dNO6xn-l;>pw9c{je93mP#CDOmkY-oE|e%JY{P=RfsmS1(sQ zXH>i4Q>uW>(T5yrLJ6lGyz36EEGth6n{{Z7){Yf&*Ti4t3Lld2ku1n8KeyeqMecOa zjqg&O=b5cNXWDqk_H}lodI;{yh^*o0_;zTw@tSy_d0({7E}LRIIpF?u<=q;K519Ws zsPJ_a_rB#VpB{&Qo1!BUI%m>E$G8JCe@R+fOj#}@-d!DP_TTY#fc(yv&i!}Z&9M6u z!SRLV!SSZtsV}ctpZnJ;C;F!?>rJv(<-}K?4Ef^%BYl1DE)#xw*d}nMx@7QC^=r(# zU%06|KUa+8b7rtjH07}}l&UV>q;mN{+~;eHyN`e6yk@+IJ>jOe#mu(W+F28hpX%vT zkx%SCr*I;yZ&B*Cx3l?APOn>&@WS9u#LKlE)1A#KH!PHV&LV5JQ#o?$xn{nJ6V~oX zc#xO4ZOL8Fv|Zu9UiB<A5S8s@ZOIEOOOTl^AI7@hW$vG;uWrcwQJm?!EouJw6N`<d z*8M4bR=A!wS2p}Oi>78r%GbyI$9;6(9hn&F@^rf#>l{I)r$rBX4;b5cz57<2Djac@ zYxk${=ORZ{wXW>@b=LZyiGDoO5uNoVp>YY%Piy`96<hMPkXh4w;-@yt@;jQRZzd*$ zY`Ge+e8uu3oKw7(pLr!{dHwe$PNqAq&pQ^}`FoaUqQQmA+jBmJZF+5$!Z)3vb#p@H zEe4&Hr#E(m3mDxLZSGXFPnh~H_r2Y&AK&Iyx$be*efsfbbjimz_RKr(=d7@@Uq9{S z?AWK;=Xoyp7}>lGl*zpyr7Bl<e7V-E2{$=jKlf&>Dw}sYpzPAwrOi*DGCx%OUCF** zUE|Oxy{8ZFKbGba^=Bz6e)Q06p3cPdrP^;e`{dI1zMAFSJ$-*-^+)E~i-tXHR&4Qt zo_$vf9NHSM&OGOGu2}t)_nNXUw{?Z<tJ{oDzUBG1Y3Vty<>vys{~YNzb(<^n_4(4r z!R2waucqDqYo1<pdjEz$hUafZWPiWx@WA}v-^F{fKArpj>G$<}>%zbM+otu>_v!}k zx)Qsa9?MSINjYp$H0OxF?Kex*^2pgeELR`MJfF6<ZPI0{A06K{|8@n=QM&rUi>LS6 z`}XC=>bk#WFZ0b-2wG4g7<3`X<kZe;@2Hd?c}cgEH6JsurHVg#vA{V!Qurm0j9JVa zRko<llfu>sEqvVm_S*$Vuf{*y+=cm1A3oN3_uo_tiAiDVOcP~%ZXAvMQ_}IkrhL;e z=BXVLWvph}<>BGCX2?bazVLm&idS-H((*?}Z#enQG*5+1TYm0joUlfdp84_QH8u~_ zs{A=q<O3T^Rj%G)nfSWz*WvRv33~CV7Z=7Hb!5mZ-Ze9=@o0y^p9|qJmn=PGB|hmG zrdnI^op6{d6L-0|Na4{Qqx9W3zZ!JpC`*d1FTddO{*}c|xx*7vZuEI3baYf)ZkJh< z>vGF^!=BByM+Db-x=Fs9Yr56eWar+l2|-1Bn>=?hX$1zXZwh=~plbf=>6CfP4!<cg zQmwqOozK&FZpn`rAI;eZ?HP>bX8TXnSb1y7)6_KYZ!faD<R(6wD6&2E>BOE~op)0- z>o--tc+h|E>&N5!L}&f}F<I$?aKn6&gQow!*S%VJzV2P~`M<yJ-Fue1>hk;Gv$f1B zSMsGySEq$Ozi4yX{+v?Fx&8+SSFq%TB^?#ooTzm9qQjH2zj0qb7;9|2n)cl7sdLGN zl}B<X`0bpsYIE}MTi4gsJ`VYG`;^M1&d~MuuepX;Nv*VYY`rKVd*n)^XyV0mb+-vu zx$leKc-)=ZcfnEa&F8NdH|bxF2yAQ*Z~h>xpT5_s`S#Bv*LRCXeM~UEZ*k)S*Q$o? zda~DkYS-E-{?;+BI1ny(qqH&aKd1L**}A@{BXM(=3Y53`xh7_reCU%ow)k*!(Zwl+ z6LdpcmIzJ#xI5~k_{}rh4z;h{y2wTHS$68PsRoI)!A<T_(}kOL*zbkwx37vc)3G>S zc!DEd?1S&(iN%W|E%}#sq{s#eSC@SA6#nR#yWc{h!uH|O<sR|eVSnb8x>d}Z@-y(J zY3~WH)2h;v$N4I^zPqkGStCc|er(u9@fjbx+)mZpZ20E5%%yp;ZOfh`8q9JBTAz1m zAL?P5Dq?)%!HVl9&T*lwziT!uS;ejvuzmHOnEO}lzHOO!a4zo!#nmBB^0oZdWm`mB zUaPa`#wMrBY!9~Iba07fIh%2qj;3g1(LK{3>&M(P_Juc{2+~@Aa)Yt@`)8LJt6vN8 z>byP|e}%{L{-yMq|35A~J2rpM>iCzt`7Zm*tXud<UF-_eG>$#bC->L6FXXTN_I>?N zc`1eay8nB3<$Yf@i_`tGXO$_>ypn~NKWTYQombU=|N0csN20UNOiACjvUle}`5^9Z zv1gRJj(^Tr#kC^%!t@P~j@fN3Ij%L!t)ItAQA%@eAA51h>+o~JTsKcFc*Zg}Y)-3! z=?<I7gJGq0CtUf<er{_1)G1@7XB8YKQxaj?m~eXPmO|mAmrh&$lo(jJzkX1>LiT52 zJ9Dql-%WzTn)9oC*M$q+d_1dn%P&nP{cn$QcH0`w?Q9o%dF6P+;R7?aqzO3Y9CV-V zBeY`5=Jh?nD$F+vJjF~Bng2N&+H{2+l94g$ns;Q%bCcHYdlw}W1nxdh)j4t5rD1K} zwmZoIk)ITp?KX4Dykbs`cA7hlW!?VlX1SVUvX-azdy2kXTik2rV^whB=5&e3_+!8C zif__?cV9rX^$C;EwMl|CA5PnedlxDz<gt8toW%8L!SX2!l>R+1<c<58B&D7-T}{{L zkgjyqRq6W)Tqz%3u-n_eV$YnnCC!RC?yf_I5+~Q*tn0V#rI{?RoA&2pWZ}byf4uIo zUNwB;99;70R;aD2!qjfxoNwEz1B$+=8s3uprgbPcVv^fFl{rR>b1&ubn>_UVVVe-_ zw)?TS{i4l>l|IR)-)k&V{HSp1mZi(4^LH*B=WF~JDCK#~_U{Sp^f12equWg!e=Jhd zuCI9>+W+tR?EEsb?ltG_RavT-J_Iv;3QDSb9L!%I`7!?5bk_YlHg2q3yzF;=IQ#Ea zGq3SRzHR24+4itZnD+qh4Z-aA4ePc|P08Ay)z`H|c~#?|ef#$;;Byo?v8;VU^S#@T zq*8Rv{Y`YuYd8ut0$3dF+g6_|Z`6s=oPPaw=Q)QG_BCNPi2+f)f+tk-N)~t(%z3j& z_)8wU$%j|J7EfKacM-?*RlS10IG4*#V-@}BQ`YqEhRS{qe_II#aj|CksFPZjE3+iq zV>z7TU#aNdnLEc(wMFc)qT>lJ=B8ySTGwn^m}6B~@_#%!k-Uf}K<+}qA>FC25yv0M z9PF6U^sP&yB(>?#_rF)yv5Oz~$h#stm9@fg{;ssCFD_X;{Pnn`^o3rP(33go)iOO> zdf4?Z9W{Eia<$Kl3ymD-UjNd1W3}|^i)H(EtuX(<ziU;!qVva~q++iJ6JFln(Jj?F zbgI5!dfW$3=?M!~ao6pfej|tZW5H^<%}U!QU0V40mxH&EcGjod>072P<xq=W_egGo zvzbwWbe8<ZFqu6s0*pKybn;dN?)D4q+b;7ktpDq(inV7<gq|2(zWH{t**w-$wa)za zw~JQ>#9W=PmH*?hdUWMtrN1Y4&0ciF)8fHCp`(^omycw+3+zAVu{&1ym_FD1+wZK( zR<ZwUc#&SV#^}dP&5VPM4QU%@udn+stA3I0$?dBh_r`|HmS#HiYFGPNg-0=#+Z*qw z;4Wn9m#&DA{P1Qg`}~zpK3r<diCx$jZhmV6vw^DnV&`c}Yx|m`KL<6k`>?LwINS3} zUGIvN&9YLm$2KwdCZ0-C&edFZ!+nu-<tuqvPpOldDeVmI-HD|Nn_4DJuPM28;*`kg z8JmxuP1x7=x@M{7<lb*lm9JdIjEWB^ZJYGGIKbasvY)q1NheCF_VLuDEc2wy_nVS? zC#FAfN}3?Bu0~b<-;KVo{FS0vYje2mrzacE3@bX4V`Z3}sXG1GrL870hMp{PJZVeo z=U)36_-NX;Gc#l2Dsu8W=cgPv{X9Ri_SfaJ9bq#593L#R+4^txT}uACXt$I6wOdyo zIL>XGb8?1$tig*D+iq@@eJd?HwdJn(mxFQ{J3nr@Cvsxzmx865o4QuaIp+4sO7h93 z<9d<W?^~sFC#ZzonO@?eJUxC=$dtzkTGy`FPn;yR=IE5?DyG_IH}rBsm+cWw_xsp& z;j7BwIbL>|PhT`2=ohVCsigaXf0gCFA6iGNI66)gm73MQQqMc=Z|Je_RN-&S_IG!0 zSnqiI=H_4hyu5e!|GkTz_alC_k@c6&P6=Ay=1=XKw!81ZT6v3qX{9~+_BU?)ua;(? zoge;r$E0Z<hZAm3=)2f|xnpCPZ;eOm?#!P;)1{|fy0hYwkGnVf3*B!kAD%NQ2)S>P zfBM(d<pN&%A5E&yy<73pBW3!2LH|8X5~q$Fm6e<8Bk9R6C~`4U%Vv>>lITvJGn+Pg z$iBZ~ao}<2_NIsZeOo<FsLQg?o#L};j*VrGeZ(tv`-czN5|3%<Og`lI$*T2awlCWu zK39+BZ_^os9C@Xt_We+Fj<X6rv~S<MFBcwF%;~mqu~1g_bl>v&gyx=!@l8{<zG|}0 z*f=rf*VEXO>-F^;C(9nm32(n=Sh;~geW~ulcGlHFf4lfDJ$lLSsHC%Jt?te0^oYg& z-%f<t|6KIxn<|^6*SsCgcfYC~)UYkKJE30QJlX&L@rl<0uCJ_rGv$Vp;o<k34F!q^ zgxPJJUR>2>Hr~w}^yW9SfrCp+dL3(<cD2vM6vmPy<+xj%|94Cf&3s_B`=FkGT6oJM z4OOe#Q?9NM2sF_YsQbn7VsAx2MXSo?J(ty!HfV=x9{RFtS)O#wOTkE$R}ake_sp0P zy4g(8<cc!S0r}+*g1>BV@APWB;Lf*B{gLdB6@Ns&|M>UrUvBr`v$xCpbn<TBzp>-* zF@D=$9}=?8-{)Wo469dO6?M{zY5w26$@;c8ZqzJho4S3K{_oJG*-jgFT=HEmCBZl~ zNc75!k~_&78?78$kBen&m~p&U;;2}{yB94%3TI8(3MMYmJ0W@Jr_8HQn`f&`YmS_| zFK<n9^gQV)PL3QF6BPK3wk}<hVI}s9<=)owU;l63_0GyDb>l&9U!H%PR#!=S_w!Bf z%XMGvq-Irf?~1{J^9v>@oi+QEzV)JP<hH3t6+>_F{hVIoc;X#9^N&hfV}Ge{1|Kdl z7RR$)kmh`HqH+FSQTdCB%1@p5)RmmFd2}LLqFi<M>+_mUpL7H>pRu{GJ0HaNF>SYq zmER*7g`N|d#ykw2b0<lvNQUTptS?vXQoYLe_S1y)W1X9FA2_!>s{AN;`^UbM>(4ki zSWS0tt3AAY!{@&`sv9zb<31LuWxfy&<57~k;AvQYC6z7i)X^^|+3Qy-G;S$)5MXz7 zbxmQZrqWg`J%huuWmHv~ZBF;s?z^TsVa5G<S1yTcT6fr1v%KKxgl&;2D+A{|71RH? zIj>?#|6JAUoN9}Vb)PJ{d5LQ_<Mr!*yX`e<Q-a!J>=fT#<Mw@}rJwl9ezL}W{sm=y zeot;6bL_bEWP1spV$aE2qQ6Sa=Fbvazs7b)tiRqJ)nB)_edBvqaeeu(zJH82|FiQS zz4k7$;lOjdio2)3@s-6d_xl`Ps`-cQZOA@9-OnvPpWik3F1ec8d6Bb6a;MPC4NATy zSr-lU7i?r}w)Xt<YkA;rWw#g+nZ;oyuT;LXB+M3nZs3r4po=Y6yT;*_VyV)N2ebLy z`xmgBS8<X%ViwKgk?3%^?7o5fBAM8oZ_QhkQdneHS%>l(oD)A2z&R(X@>=mDABl*@ zP1!=`4s7dvn|%AiJ0HC`@aEFIpp#FT?r%AI%3W5y?$g1U8#acCOi!G_^22lo$03_H zqWi;x1x07NiY6J^Z?%mspFNrXevkUkMr$|E@L3%d8@fc-Kj}Uv-!1g)+;JE7wS}AP zDyO=AnlM%F%@Mx!Ei2X2dYG%Ym?sw>__pXEv$NZeRx=jY!w+mqRQIMTI~5hK+iaQO zo1}D+MX~CG=DCs&%mQ2~#=p9ct!D_EqRzg^^1>zgYLD-|%bo;U`Kte!#+-D;@YTHd z6qTxq84HXQ`=)NrSi-%=qj>ANJ(I;PR>iq!v}!!qF!R!Sl{bv>{xcLNoStm!ndkf_ z{BJ>Y*uIs;K8to(PW)`cxI&sEcG)COpL=r;Ta>cgGrSzB{Z2#q($>Wu_YQR3oiy=y zV!$mn-dsVSR_-mXk3MbVF<P|eq`&M@$My9c^4ImQ<bJxl^@h!k*AF`7z8rjh^U*K0 z1L>Zgd!A4JUhlr_!|ylq>pncSPX8ufxpmg<uUUR?c<wA<{3Dtbv_63QT8l&P#;Ey1 zcP%(Ce_Ql-=i>tIGa2S?s!p$u`7aJnUfO%;&`rIU;YkzsIz{|CnrLlt_${-XyS2#N zhQ~G<KhM2d;=S~gxXiN7<~Kp=&;6!JFMSc>bNa!GgKGKnq^zc@TX|Hezf;;|a^&M_ zgSj)T@6Te;`2Tp;x;@KQ2L>}HE8nv%Q9izRw#^A=M*Bxk?>HKHJnd`0oHpxGBV*cM z=Gp27t@Cf_>UnD2YMv;Wu=vd)<!kLLb&vbJnAB}0xM}avZU=6zxjbw<ZLj-_rty48 zYznaE4O}mxmTzHI|1<l-<3gXjXVz=nEz3)r@9mlVWDiUD1?{GiP5x49$+Heusx_MI zUgDh2V<n*3DzC@6^7IbdyXpbChl*0uZ@w}psp)RyT<W?~Pms@Bhxy@0iNziv{_d9E z%lAK+v1@JB70-=L*&MDdPnTCdROfpWvfQ@v>9RNuk@t@{^AjBR9ua+}$!}M;d&=&Z z6aC5(5q-DAW;{6Q(Dc@9eUa>2H=~{AZBKNk%4$^vo$yn-yyb%94YSsDH=kLqzxQ#n z!ozLLPae0Gdb5AsuafJHY=3+2p3UF)`Emc9*;2p0=r}cO%Kxt8{@~ec@!9KtKKvLi zBXg-G!Csw7n%#WG<I0U}%cN86^cVKW1S~SSk#)51Y~S=_J`%H3&Zo>jw(ydR`}MRc zq2(1<KF&<CVrOGo9-7<a_s_`l@8hDcQ<ii{Kk*9}KQ)tOXYSpQV_MJN2;T`2n>?-d z%ZZJ9PbO?y&6gj2`*F#a=U*}(Jq+TTZg69o>0G_=4Z#I|(|LRRHN6g-Pjz$OxmHwx z`C;bEt)|IA3+!$-um5yZtLy{+TJQc#8|KEchP^t*D7K#AWk+&)V)S%|J%<k|XIP|6 z>Mfk+eunRq*|{ag7ZP7DP>$<!)L0qh!=>#eu_~ZRwQq^@tiJ8Gzd9LiM#`73I<0HU zuVt8UC~JytoLbgasjtEsssZWK7k>EQ6@2sS1D$CLt-dbqm;PD7H)j)bov`mFnW;Sw z&MeihS7MfWbXxR%LWJ*%lgw2Ss+0Nc3S%p^`KKowXfN9QV^Z`ZBk_AH1Lv@x>CQM& zJjHMAr0^S(A08eQ)laVro>gu%<H$zs<@E(ecxMZX%PFdzGiOm(Yl+Q0a`*`EPVp)6 zkEU#C@nbA2zrm|mdt<iCo0J2GtDU#Z{;{L%=sUamy8n46_q+H0Sl7Gv?(Y5n_Neb$ zSf{PM&G*gW%>s>Uq|Q5?zO`hz%Y$q6U;k)}&)$7KJEFRE)=f?|wj_&%W>rba^^aR- zeJOosd;Eno@0<nJ-8pB@+{ye|;>(khoX9NO=uyUg(ksV?d7VoB##e8yx=rXh@PD!K z%8Vy1`;%6^((I{Qr0o?Kx74dWYA(N7^@FRG`}SFGbF;Oa(c&Ry?l*~5kN1am?W=~D z7P_a|*Br{cAkJ5k^-=0(=IpS-t&g7WvYjDee?zTQw4FzWS=i|K;?hUSrDqTD#?6r| zkO=9C-yqp6p{5e&WShakp7Vk0x|QoflRaj$gzZmmUwgx2)*N-N*T+IFJenlyjSBPG z5A6Jts$Q9-bXc-7XS23Q;>1bepBSyDdz|1eJu2AQUfKGet8PhWrzgwHDZEc#PSvwE zJ?4{niBXeztM3;_!6F|I50RG}?hBhXZBmwKay!nk*hj+UZvRQX_p1_G_f=^!KU{R! z?q^LTL)fRhgEG$TpO>4w$mu>8mKMur(YxnJUt7@A?GicRH;*2PZR}+Cd(|M#5ux1h zDR|1qhVr5p>ZhJ6?5g5on^;`^m2b9ErFhF~=AM@v&BvGBV}7t)-^f{Me|**c^;O?$ zdB2pe*8j0jO|bmE%)K4IW#zx__V;p`U+*U{qwDYUBah5JdkS9Yss0=;XYnm5w{%{` z#nXK8^`G`}tNYpSvsf4Ry+!IxVX2aS*!jY>x4sv0E<F8FYu<8(ijc0W{Ji(xzYdq0 zyK8RN$#Yi=d*@EQc{yy>O7}u`&7XZ-nUy{_C7sj^OVy<Qi(cxMT{A^?p$8l1lb?1? zNfY{(Hisp$EVKT{RI3|P`+TK)Me@u~CsSEAcX<3S>5JQ_eQz?K=7(uJGLAi9sy#X9 z?~4G5*&Xx#?z4_#syTbF)63oM=fe2nxT{)o*H-1Ms5X1?;dG_KG^hEZCnX-fKBO(& zB@vN)+`;9{za@W;=;!PD-P^ysf3MEd$aTgW9?sq-BlfoP?TjC53$KWs=ypy2(3JXs z`SQ|Ftmj4EFVeK^`d)p%^xJo~2^0Bt{fg0@G3W7aF`id1uN?{7@}9l%`ea)*zYiKV zIr38;?tEBk-Ch0ek|_&^mkrY!FYgl{TtZ#6Bs+PMoD}WUxHMMp5D{9w$ua#@ZgTXi z8{3x0c*{<S<U3Nyq%kM?z%>^i^S6QFE5o;XZ(6jNY1Qk*?3B)3=ar{k`CWX+eL_h} z@GFNGOaAbm{BSuuW^3iA%Kcj^Ke2y*W2drd@~jziuI&D|fB(*n_4ltWbiV)o?H{I} z&;PHfjN2VA!eYW0Q2snS_q&#V{JhU!m&?bz*w>V-e}%iY@4fu3n#M52<6n24eSB+` z?K-;$Cyu@Q7q~a;M^ve_``0sHCjLEpH1OxuKv|jP_Lr&|`c^bsEXw`5xJu=<#~VHw znIiXTT@o34tggSaT(4WE{z9(JPmOJL&({NLOuTYdCyo|YmMy8cS;ZH7<U~-f8Ba?| zPfq(UzN#6)ebw76bGG#!{rK91QQ-GV_fJXb7bokftzRagll8PqLE=i`wau?2R?bLN z$>ONKx{C3XKU+lkB~9Mn3k-GJi(Y<Toc-wO+Wdl}Puix==J;|xGPxx+=cR9_bbCwt zrhxnlpVu{9diZVj1D$fq50ib>*mxG$oIM~=>Ll-GRs3v^oygQliibQtX+MAaM@R6* zO|5=U!Ic^UbN@x2jEZ$rJ+09AOG*6}qwT8)p)-vf3|AOR7!^!^+~&#O)RT6`#KUQC z&R0G`i>1Y8Q^aOu3w%4{;<{p&(HnR5pFYYLst?aD6TAPf`*Yy8CCZyxmfC5D&e{6Z z<<#u#YrMfbl;V%^G%AWec3mQL?JvhC_l>h}elVWQ9RA!?O~`ENC(XFLXUR@)c5$Vz zxUkiT_lj9Tp_|bRqxm6!ZP)HF-c|l=Nx|31@`v-MJu!Y{v$K4I<64WITQ}<O>YXeu zR=r$I-=_4{S^1bXd+W}qeS0X*(>RaePm}12$*Ip}=Pz;WKY4KS#NG-up8of?|2MGx zTfN=9j9-4ved|rz_m)<qXBTd@I(}ICIbYw3Y`asZe~U%4yT90SWuwf+cLxL4_VvlU zShOZ@j@2yLmx5)IS2*Q+ZKL~FKiY1*p8eL9b^m;fo?Q97F{zOKg#xq0+{JuBYoxdJ zec-D;`eJ(Cr?B%gPR_b;V(0Xu%7+TeXYVO_H*K|`Vmjk5fwkK`vnH5|%NCbiI&q=; zl<wv0lP`z8IAs`dyR)Zejm6QQg$`?9l$|%cJRxK4w;c=Dskt55D16|7ztorN85X>g zE=-WUf9H7v+a*IQg<xUsw;yr}{xdsd8}!;NH1=*(SukZbdxDxwRrk}B8lld-l;w-| zJPBEFXxg&FGV}f}QFc+*yiss6&3wP|1C>iH@oRr^&XVmv^}j*#Knru`iI2QBnX=1_ zBMX`?Im<I0k_}+rviJ#$cEiI5B}>=OTYJ}yrJe1H$_iu0$TVxw;|{B5JTZRD#=O2m zWci-VrnMh}^o}l`EiBp7{LA5`&_Z#Exn&nKA51&D+;rl08Q%+2`u5IFzp~Fy_SS_d zb;+;4JUiHG{QTSe;#afJS3fAx;n7*g-|L`!fy0Dplo}0!A(aX~^a%XeA9RgJ^LjG> Re+C8y22WQ%mvv4FO#lr_8leCH literal 242801 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 jlaorG;Ym&+1*p- z!++$!>^I*I{{9>-P_9sU?)u@cZgYO}El9oAU}#tz@lV@H?vZ!8dhhD@Kc>!AS`aYp z!2WE;hgEy44|#KPDG9e}TRNF~P0*b2%Soc?M%P#MsI8ftK`VIzF38OZdf$+Aa{iyT zrOKIMAEX&qF49)M^^mzKOF>}=lRbO%8(X<H$8GfuN*TvCZ2D|h``N4}b+>7}$s3j5 z6AgPZEL_tBKP-<taB=1JKd&eK<!;issINDpR8r_tkH^&luADiN(wlZ<upOJQi_vaX zf2^3wrqsp9b}Th`XPr|vA#c^Iw;d;=c%|6A_U^gxeww9=+vd>QU3t8^^^!_D^X4w; z?J&@OnIzSbCKI#w?T+MU`z;Sj7g)GkEOTjJ5S7TW;e$c<A9kjtCm()zpko?)x%vhZ zt91R{*MCH=c%HXN4wgK0{Y!<#jjvOG<p>^_SR$%+f!F1w^0diDQ+4Mr=gSez**W9< zm4}tD0}32$bM%wlqIFMHzex9YiT`s`W*Ps&TgRe)xV<h6xwBba<Yo`^!*g?8p9yWv z<>_8Eapsw#f9kT0P6k0<;$lUDnjNp6Tx=>4z1g*Lw(6}VKIeL7y}qg85&EJ=Y1P^} zci%0!D)?JlvwG@%f7ev$gDYh%6}VaxqLysf;xy$$<i&q0{Cc$}E#h4FZr3k4g|m%$ zESd$$f-95iYAhP~UQU>j>NGE|_Nnl<o%%Jm>K;z7+jg~gee}+?3v`NW|4y^LYrCYG zBVIzcadpFkn%{-ilJkz+ZjA`u@c;d-+3V}i->Z7v=*sThd*Dd+-;LKd^t}7CS4C8H z#j0ObOioP?L*MpKSBcoXyw0t|uXW#vd#oq(_(B#2uU2AyxK=Q<knh6E(&wUEt7A@c z=n0*Fb|OgmTJG7vnbRC%Hl5=;UVZv~%nIEG!vpi4S_$4f)TuS;n9HTTU)dL4V!7U! zYQfg4++@3=<y)hj^ZoxdbB&~*>x%rFE&2aU(Nf_h&lgu{WyxQyYwYVR>|fHhCUt^# zYBYEHGyzksUEk+@E%+aCDe^&_(M`uULE9H9m6mh9c6`1p+c2bCF>?9s^S9FNe#vh= z@bF09>FaB=nAgZn6kq9fb=4V9)4=~bH|1X|N=o2xUsHA8_Ce<Q*qw}@-rRp3)F+al zoRi6Mc1Gpz3zHI@n+w!gwFC-oRISKhYPXAekhDZw`JeKXRi8Gf?}^gqWR$M{z1jay z@fRWXiI>;*nfLeJde5czC)j9lP5+wbav#H9msYy$JM+LXqj2F=w$_^$J4@4V{Fwdi z{z}IgOQ)J_GU~q4Yw&x*;<o-swuO)9O?xuAJoHLm#_7M`=dZ6i`PAfwqr%Aui}#&p zb3WeOcZyGZ+Zj<SPKQu8t1B{FQ|k52liX92>y`(75b8YpWJk%w+Q>;>+KN}259+jj z=G3{uu)0FXZSAj}7bbkpel<Uk-~X4?$7d=5kKXscj!F*}{mr&%<0+wuf0?J{`90gP zd0(Mv-HiGBFK?O<{Gj@vHy=k&%8$Kz-qI4PN^$2eT+7WCFZ=!^_}h~YyJSx-El_3i z%S`xo{-~9+XU4qs3C8`^>4%L!Bo^FRmoLBROriaiUH(<q1s1Oq+|$8-c;YJN08O@6 zK@uU-VK43o&z$U1`uj|HeDzJc@0R8N{%2SJ`oeb3KFaqa%dM*Ee!qghMWs!BZ>jg= zSwSbmS?gCZVt;1GXPW-M9{cdUZOt-apUD@L`42_DzxRz{WwXUau?)jx=M|pCd~s>b zWv-#Ucbz)Aubbt}%T9aR<>)3=+7>d&>(1r~wjP=O2MMbmq%eJYkR7hXv9$29l}g%1 z5woNMUXugg-<EhD?|+cmyp?&D;paPN)>$slV|4#n^I^v7>>_uMh7%VTTozB*t+w6u z7Q=}y*@Mmpo>ZTFUTM>Iw=l?H(>JG=aTAmuCQIrh>VGlqaM2c8&uqW_@8#2aYDp&Z zJ_bBlkUo`Z<?~67US>W5XBB7iNZTrBNcg=^+%KCaSNI|PRBe5f)zeww^R`CTh-;{9 zv*)*~xxDP>w=+yTOgR{2e}sKhdmXlyeV_59<j)GKkK%<RcXW8TDy)|M_4s{wXa0wV zJPFgs#!+go-qy)IJ<Q>z8!D$(yw7~<5*ByGqN~e7&z4!mbc;OZIK+GNjp`RJw^RR> zE`?t;=e_&W=ya#pJQt_L-^K6G&E1w*Twd04?EITY_r%{O%l|BH*fL|U+}h0vzP4XW zJ$bX&|Md<$bL4^EDTeNo7f+m=Uf{oMYftI3UEym>U+ukgG0A-jE0e~LH33G}hEnGi zD}=8sKG-bHpT1tS-)-)Pi8^nWeE)V;DlF<-#F5q?C%yYNu{O^T*`Ty;f@vy?xNd=r z$%fX`^@pBMNxJrnAwzJ#&5`eWt`<L@eI@99=Q%E~pz{Vh^wZbIO*QVdV^973)1}XT zo^JeW+xr*X9k^%6R4!F|bm`+msUP|`;{O`gpVRYum-RQd)3__^V}aADD;r}NgC8$6 zmhhalNt~nqbwq-awBqF@3mQ_lIWU_fFP@azE7bbBQ01&kfc}10HZM2rYtN>J+uxk? zKmCn({nO_PKdpQ>zq1vX&r$N^%cFNjOLumAi5zcx5^?W#=IKBCzh1rX_-y~});HfL zu28t;b9bfu8to66r!OA<a5F+dc8B{^$)2aS*Jt<#eE*WZHT3|;*A3HNR{7q1zk0*# zmbqfm+?$k7vo1TcQ)|L0vD{r-b%IWMe*Nh1YSM!L>w*<8rS>m-d*M3gk;`&#+>(qO zSzey|$r&Y~T<78&f7i*be}SKMqxa`ecNPRLU{H10-DSldU}h_jE3@sE`9^=Pa}wzr z&hT_yEfjjY=&yg|yV<MOE!U}4njj_m$M@Fa=*Eav&e;>Jv&7#l<v+0boFCuw+T5-0 z`D8;?CRyIR`tkR-FCX%2teWpmTOTdVkmGl52JZ<&mSR~+wo`Vmo-JcfD$8G`TXpUE z&7Xl)w_=s&&F<0p8+fco;MIh4bGNY@NyaNPuS`(<F8RHAQ(Hpe`B&=Gnsd+9e=FOa zWt6hYSoxI=YvzVsf#I{I>NV%M7?hv<)xSo{p4qdYA<*xv;=-H@@3O&{eP#wcmpCFN z#bhztCaQ$*O2c$+<B$yD2!j)wFR;81wOju1`1DP`La*Jw`m##Rt6k=WeX}W>oZ+Pz zjr`fKEjR0)<SgSBKU~$2G;yxF)0KiRaa^8@n*`&sCoopO-*IizblqKzS2j0p?5<kT z(>>cEzuIPZ_Cf}Wgk0MM%TtcxFSb=1%sQBLZ`<`PbBi`jZ9J=0J7c2pf;B>~Cuc5U z*{i~;tftH|@3_IMd*bTvW2MbpuX_YK1pd0|(UkNzZvFTB+v|U}-`_O*<;2pN_l=^z zymV)Co9Fn&ZS%DK29{}SrwN$WtMe@Gd_VE+diE`Q@~<;R{9O~a!j`Z3m{)Y{qDfAf zufya2&Zzyzz5b^Dzfb4Qp4TU^d-7Xt4R7^v*~#80{OxmE=~+9*E1b<cE&u1={C=-u zd+NXU(XYO%$~AB76}w=!slf4Gqk?3#dg0WKxgXy670#QG>0YgOqclxqgW$^YZ$}c> z8!wyGyHbbgoudbvduCSCyht7mX4NaIliP*oIBL14P5WQOa&G7Um#W)#l&!hem@#|$ z<+NVez6E~24;`P^{z@(K8&BJ^wvw}#?_Dv-7qk(~P3XOss~On*>&$cOM;(64r2=Z^ z7&;#av2~uFyNEM9fXAhsF{|ru=Ue4GPlvBlvmc*7yED{t@#^2(jHWI0(l*^RN9&@( zLWX9qR8BLM(%a8mjz0b<I8XP;$-I--*J?7#)cWLYiBpVB<(<<c7JARa&6sDZLP*{p zR~6Nh=N~MUFmhTh8rl1OZ~YtP`fGAEAJ*TNtl)nCo^6d;duYs$!|GeMX7AV)V`h2t z<>ap~3!Q^lW{cQJ@bn&Du(M!S{LCpEtHNx$3pniJUfOO~E7Rv+e8M~P4P%@8!SwX` z2ODp{ue-tbzIj?j&I=Qv&C5k5|GdKaFkVj9`tiNac!|BQb-QLCJoc^5&a!{+Z)=?? zhwHu9n_buVC%4GNq%APsTzTgT@$5_uku9MmqACt8sR~-cLhJJ$Y+{-?@A`v!C;z<( zY!(ZSi%!(@v01mhMa*H(`$syfo1FgeO}cu5>BOUN37NNcZ(iyo-E{8Mg2jF!*-gwZ zqJ;8VW(m(c|HS0P&IIk-O#6#Fe16Z$a0%YRd@SzBd%2!HYN^>tX3UCOn;+yG3w`il zI6SLgdc}sRVPP|FmD=VO{Cg5PtG+Jr<-zZkH}0ohTfVDQj&Z8;^+)bJ%U-5zZV3%& z^lmP_>a_S#%=L1QJIOBIM!nlN9=FkySTcF?r^MfD!tK5W75|&RZT^30-Ou}PDSuAS z-4-!LJBUTZRQI5|QH~{N^0t>7{{MX0S^GNs{ucB5Kk8Qh+@Ec$=NqGM_oIw$ZwkZz zFonw3ubXX`_6hYSTv;|zt!}B04$HA)!i+iAaqS^&GjDFPVKh;#I<<IDST3iBfnkvI z%s=yIs-$o0{Z$(K?Qd|y5+0|EbMBP0uWsmTJoAp3?e^07#@%t>9XPV)JiaXV;L}3Z zTL=H1ximE=BUV*a!p=o5m}$Fa)5a5zZa<e@cO~xZ?6tR~1+}a|>)H2CTe9U-h~TSM zac<Sg*G~Sr=`OuGGQ;Oc@nSJ9?LMyyCHgmhAJ!1usvz@g%elR*{VOakwO8`qaaIwV zr?q0IZ2WdM#)6-BR^7Xka8D>}p1A%*mea~&9k+DM>$i9>{I~qGgZt!Ad-I7$XEA3; z{#tx``z*)WuCp^@txKlptk@hHt^0LD^pj%i7_PQ`Rpk#qyK``TEN%VjUaY(-yGY~W z>k}Op+#lN%eq&zzclmbR4b#n7*YGpzsNdRmZrk^$y`L+OJvzH{T4JbtsI}DGJyB1c zR13Xtp4QrC$<nrM(lr)GKP&dtVY*LUm8QHraB^O#WX6;1rC)j?{N0!KX&7-lnro`D z^81|2F#-$$w!wX!i~Y2-w_aS{Tkqbz<ZF#d+bx%E5|Q=OHK!RVF;8pmNpHIRY0XKM z2~Sk?ggjFv9G~32d8w|#!06*vz8mp|3omArJmd*cUT3o4j+Ii(!u_)~Ca(@jdl~!T zZ-jsO$`^ViQ{C2T&s}=mu~BBhGn<9s^In{Bdq4T*hN2hSi~HTmeBIYAIP|@m%OdLB zxtm{S>&{U!`n%*@(}X}%MJ+X_@U^nCi{x(@YX~zfaKB*mfBGBl_%E~mpTGI^D_>US z-GkE|f|73dZCcuEu6cp`%JJWSCdba1d&7MHuiR6=l|H8{T#VMay0$s{K;82?FGV5I zMy-3sOS)gWB$pV>ncP3$HDE>11ckCwtljYnFJt(xZD`ke{VTBS$#dC{Rd&`^ml9LN zJEk9Lh&rcaac#>SO>@)P{Wp)kJij6P$oz{NYSmt>%iiAobkSyBJHENa3zjsV;Ry0C z|79GT^;~K7vfc{WwC-QZr-f{qh2PG)RW^xLNZjQqkKX09)0@0rE%m${$91LW+pa4a zwxI(0yBm&Qx$U_4s_CiTTh-ERr8W9&?i^DR&NnSsS;W0<(}mmTKL7mqf0wHj!<`np z=G`r?B>C9tR`4{>u9ci6Wa?kWy5YNos7B6gm1B8j-*Oa_w@#C`ese!J^1*Jg+I4(W z3x#e79y6Rjci~m_^3W}FkL10`VCy+Br&@lWt9HN?-AgIl3ciPhQWl(@+pn<N;@*x6 z9Q-T+TnD~fY&)#LsAP9EJ@db`bF9F*R~et}6r%cg&MI|(ED%ZMd0QHu!l>Tak>Gal z>cy-L_p@D|ZMFU{!X|TFby3Vpt?6OWMrB=(cNpDDD`q!-<7hG2Ao!KRJ2y_Z1B+bS zUaYW*H4U2mWvB6tU!V6}oi#((Iqu9gL;b|>s}ywg9T`t4nHza6Q^`>C)XiG&$!F%_ zbSi}7a(?3+hI@9k>vAVDH@j|JyzpGu&UA0po9nL^geI?lBoV-q8W272)jW@ucatXa zh3?apQM$NbX5VV}SYu|f@boJM5}!Q#LbkYgKDuyfm&vz_m*-uH^O&r8&Y8#UViDit zS__Bw@3*hkmb}w@^iHQ0M;+g$*-Sat(%sp7{R~<kC$TeE9hOe|c(UI%eSZGA|Ih1R zt~Y&NpKvz*>1>;ME7neU!Q<KK-u?0Z`4b%0N>{!u<p1__n()7<Xa64@WWRQsU)snh zPw$Lt)`#DhCNh{G+<*VuVUt)Rjc+{yEtU(lo4s%6oqYH)h*5|&>*{%3Yj<;@rZvjT z^Q2feNSOTCzn7<=EB*cQn(Cn3`W2hpZ5G=&WliOEVJq{#bYSWen|$>$CZ#t1#FO23 zYu~x<zP0n&|GsSp_QZZV^yy@)tp5GrqXn1tB?`R0%li1`=Ti^L)3QRBGTxoIBx>EX zH+C})X|P%*877?<yYg>)*mW6^oPA2?j$1ONPSbCH_vi0kK3(qb)6O}2*-Ef7-Sl$h z_>}ZvGW)z*vF1r^H>deUP4QiGX=_5&#EtcR;qsgIa9&FOpkrZ>tDE0v-1*$1P(!k# zb^GJj*Ay5SGYi>I%+$JdG_99Wc-4MA6}^A{Q$MF43t?5vX7<{&t?LYX^Gluh^`?<w zYiIhEUtV<T<qF?0<==uUd8bcy*|zGJtx?_QG-qYO7^VrIZv@Slc-NEl%<UIx2k#_p zm_6n3B#Ezmc{a60y$UU{df_6QKZMOaGR^7A>4{Izm8@f2eRWllgT=9|xpSteyh>ci zdEhtKzQ9SJpL8w`F1~8-lc24{qQ!DNYis(WuG-DkJAIa|-7fZ2<jC=ZzowYkx^t@> zKeBg2;mKK(Z@hP0_4>D>qhP_cnje=exk|Uzo_bZ?a?LVs=eP4mzG_bHI@9?g;N5)T zx5-tP)_e_<DwZlubq@U2X%w<$W~NPchMo(<rV0PtQk9QZ#TQRi*<xkPw6U?+Kl1mk z2a!2ZlIis-d$=!nNv_r0yfXGl>zi*Px#5;SI4An@7F4Z~7e4sG!SY>a`ToeJbwwhJ zHf~+g+4u0mq%9Inmp`34t$*uz)Y<>fXMHZe@xLNwVMW%;*K=Aek_%_N{`B+Ttc7<s z3*XxJb!z^t*X#cuxL5Z<?!LNv_p5_)`~J5)w=gz%#Ij?_EyJx}6=yxZ#p)r!@m@Lk z%K?{jde2TQZZ$rdpix+VYwx`IlP_=y&Y5DZ)OujiU(5YFE*ssyc;k`hr+Mu9k#`j} zu9~RN5Q(_Hue^WnVov5xhNJuQ-`9QkpK<*6#+gh<XZ%QauQfPlVw_NxXW(h^rtCsE zN1&nlm7@E7*B(j=S{?M?B(Ph_N$ROI%lcU^T*0@Vu24*05`4(z^iI=*(w1*l&&@IS z@DXBCU#p$s-kj|8<l;^q*H{PJ`M!-yj%bFwd;h#Lz}z)|?VR76W4xp`^=7tSnaZ*2 z(xwmFAH4qN!T3C2|KsL0lf2&U-H`h3gIVvN1+#2;b(?)soAiPvIx*%i2%6esXBNcw z{A^F(?0r{{$1Yj^*D}WX^mmTq)5D^e8qaT(bFUCxwr_8m#m??Cb#8xe%Xc&NPiuX0 zR`b}eX_YRk=S@yICie0AU%{^@^*n+~FF1Lq8AcZ^<UgZbAeodeZX<W|nQ`97x)$B< zPozXL)je!ho?6l1nXSgI+|G9Fz18BltZNSrr=Fj;tV8t-lj?-<;zds$7Ce}swmx>- zg0{<3wHHJli@j){%XPx7JMgSZMC+r7P_+a6{S0f^J_!pf4Cu&uIg_EmPo+YR`$@K7 zjYRZp4Rx=_leLfS{Aj!Q-CQ=-fIqP*_cc$<YMF4*Da}H?dX}KfmAr;Uv3VDYW7p1Q z+c)8O!i{#<3H7hO-c@x-{5!d2?Pu%nw~KmZ{7QBxPI`Qc`|`&1-Wod`jSsl%{+9c| zP;!l7j!6MqtAFd~o`CbV)n{+^t}H*M;rBYlUNZ8R@YGEg*wmBbBzOEW{+&|%Z~osm z>JR?tuRro_yN1dNoyG?D?3|4*4`)o{T6_5Eyr1>V8$gZA`V7ZqE(VYPevS*?-aL=d zM5wjFU+5>-&X@#Q2aP*sA`>2{*?2FK<6@fo$1=ci{jJ`aRe$=6w_W}=J-7J7<vp#& zP7RwZv!hQed^-EvtS-&^>ER(0Sq|Jgw{msxw4a*i%GoY{6<NFEmhap0^O?cl{I{N~ zb31?QyWY(-^Wz$Eg$!EP?=Uf5RyvjuGi^tZKhpyLK=rBYN%~#4Ln8G!Ip$BgpvC-f z=~DaES5EeE=1%x%n)hC5!l#3_acre2?1v``y!a92skz~ZMto_V2&=@@yQ17t3iCQI zs_E3s58jsid)_SOzp4GaSGk4ljhQ-vsyZ2U_fBZ&d$-{B$I@)3h90YMH~r6B7BfE- zzxuL`cX^2}N5hn_RxvYl)Yhf0^fvq@uPgDU=G|vwww-R<UaYy9Cb53w&c0W#luE?B zLKEhityn2@<kR#+bEPFUzDp*WTw7ZbD<C;*#pyT>@5Bv(GLLR-c%{eDTeL`u_1t_v zwpG7*r>cl_Hd+~+%l@(F)h^Q+ZhPNpKB;;rV=<@QE@sJI(I-;Rj<Byj<9f58t7rD> zcjgmKYcKNJ9G@(<LM14`^`Fhkt?SdjxE+pE`S|j`&g4g{v$iz}a>kx&e6@LVlW2l- z>9*FtYftk(nzw0Ygu7LZd;Gc&e>Hp$G@iW_>3^!iF#X|)9<Q5DV%0OfmzZwlu(>{y zUGgNyxjP2FRc<>TNS^TMlKl40CQ9Mehpp+o&bPmZXY@bb9sD$Z^P7j?cvkrP|Ja-U z?&7VfKDL(w?KBEl#Gfw@Sv6;yu5kW_%;t1wrM;`qw>EwWTsJ##vi4%zGbtI7ehltR zpRPFNe@JHYTfgrY=kGty?Nj%EFt6|9st>;MWoeiCla4xVnSZN(h!hL_Ihh{*<Ms{n z{h$2bR_E`#I_H1;DVyG<GCcEzZeBWmchzl`bW2<Ho19x8Jm36$|M}+iP9mG1F(({j zKCO{soXilOleq4E)Xb-k&c#-Ld7)YLCia)~b;hH|W`Fy<_U>-yZ<dbBGiKVna`^D3 zP_NVIl0(<78@<;;kHoPk?+|+#vE{Y>HT6B^r=1*^sUG$#{ITeDqfLKe#k{-RPj56w zc0W1!@TY>vwF|lvUhr{-ZwW1}y=N4aF;PWkUWU9Fx9Z{3-u3^LuiL6DXuiBOy{ERv z=tAS#)=bAo0bRMz7rl{`SRl={C?u^`E7Onb$m5t*wIT=ewuGnMlJ~6IeEQKhhUeS4 z7+<XYD7JSi<Mj>Oo|n$6EI-TJnRC59jP*aSm6zy~rB_ZiUY_LWcE51ue~)zsJGQUh z!CI4%@^n*w)cnq$_soBsk%?kmTCzwgJEuEBU|n5O?5Qg&A4m&qb4#(|em>{My~Edq zX1P3=kn&@Z&L**rLe1+6a;^NPl1wWX8Ac@DU9(-3^XiJ%WjZnvrD8u;`7FK8IkVAa z?cDFCzKK`nuHNwUslw%mO_p^&aeRx7qSn=JOa112sZ{vav#6;ZS3fB8RVp!Uw&-u* z*ct!i+f<kQ>bas;ybGJAZ8qxRbXl0E!LB(u)K34J-{a4dujV~il(T5pF4vu_)-bI; zy0hu-T*;PHaTl*@pS8Dhwg-gWc^lRFe8zO!`xl#UaJyE2NU&x05zIMO7hrHH@@`wg zr%x|Sx#yX0la#Kg-?X*6d!yxs89vLCTzOTR59-`oem+pX>VQmtkNxco-yeGG_k1e+ z9b@r-wd}j>OlzIORcC*F4?Dk}Epv+7ot5m*(-+r%-o8IEf8WP#dp{pkJ#X=?h3)2z zpl@E9O#gdc&I?_#ZHdFBB@ONO`Ey%jt_yuFwiN1USB>sS=Q<GcK3Qr)ea`V|OV0f3 znkZm?VUaT13z=`5=gv>NEt{n5cOtA>-AnbN$alV$iPuF|NTsf4Pr1D8y!Wy*JKxGq z<8q6ZEqlF`(c+^*+o}B5atCMVC%3;}n|@1ZhZonb!rsM`<kh*WE)<<@;BY*6ZIQ3( z&lUIDLVS+5C;ShNQhXgFA!F}*^q|H)HKmnJ^4_amQsM&iZ>bt9t*o|v?|68I*pj?V zZM~@G8N3Vf+EgUJ`Bm{AE~sv4$n#}jSaj});hwF>)K<w}Dz^+WSW$gi`YgNhZi92P zcp2tT<NQ6nqHy8ivn^aF#ktBCo?{aHx=G?Z_m}fNn`G3}-m5)Zb>n!Q?CtK~Cw|Nc zNXb6Tt~_<&-uH|>{7hXLr8c(iYE^sw2%LGBntZO|vaKx3<J}+P7T%faxntoUovDY{ z7;nA3+NpWZhuQ?6IVmM|$Di5$&gSggwa|96ma~+BbnRUJi6?iYm%VkVz5B!Rg~AD! z%pe8*N!@D~Z@SKOWO3TP?b98X-JKe#UZq*A`R4LBvon{}tL6rL3z_NjrM+1|JbU(< z>+=p5s%@PAF?j*&Z`Q~aulBP`J$}DvR@tiBzY9V#QnG)4-E}KUce;_uOw*!_u6)5G z1uF#JD;o*EQSA-sWmFG+yVxObnR-KO|JOrh{_{%AOt0H9bzE?_zbfS_@+f|>1=B|d zrS8+*JhygxzYwYE`CKEj^3U_PO@`5n*#rJrS1X@?y1?J-+T4AS@$Tx!RZp_BTV6K) zf4=si=<lELzan?<)4cGle{alhPW{vNzoOmM_T4%D;MTwN*<qjmmlglJzxlhI^_jX` z*WL#CWvuS8(oRs=dAj}76dk41OFO+&9gnT~wnlJI?^)Y9&6V{_`4rM7UyJ-wv`)+2 zb@#2y%ln_i><NA$82M{m#B!^j4+E}7ZVZh)xBu<=!t{mCLf_}B)J>hI`CEnMRr_-O zEz32_=LsBnC;CQqMrb(a=NoPZ?W}z!X}^3KbM`A+dd{xO6-(u(?NxgyyNz{|%>x<M z<`d`C-)x@$KmG=P{fA|D@BFE=ZZ@xx^(c3`$`}6D`np(?yLUlG+QJ!~YdxMQUDaSo zRkO(BJkHG$UiU2~`9SoRmj~v)sp0J9e3HC5V2aJ+mO~eLuAh1_{gPyvY0^9gos@dp zMi)zqYahyL?#{A4=~nwJE-U<6q*I{J&CLJ$N_TF_)|}7D4r;Mvo~Nwn&TRIG`Oo<U zKOcMEWs`F?b8f!4#!BH}!PXbDW@(fEoW3*nY=hjJ*!-6-*LI$$Sjp*dU-{c!>#s2; zC!Q~u@9y2VgL_}2dzysBVxu=VUnl6rZB~jq`oqWX?(CeIChjFn-;F(QxFknhG-8|A z{PjLBH}A@aoojNoBxx2WbMxN*WU<($$VPV4iI$J$l1o=@JD{Mo%wTJlwD+G{wqULE zQ<Bw{*SSA*V>tADh1H@7ts2TLKNWS>e)W;=PB>Hj>LT}=hYFUh4ZZUm9saf&^C)e2 zlXC13Pt!RoFOic<(NDe}HGUWu{ed_2Z3g=uwKtYWRJ>Co4A<(OsG3@>UTW&FwCq?z z)00h(*;eap-X#_MwAOML>Dqln<LZi);ZqM<On7?4X}R4}4)#so4$N$wFy;RK?BDg@ zia}%CXXkHUy?U?gvYqv5>a}b;O(OL<GlJI}?P}>0^7;CElkmTL3=h}8$)B<H^|k3= z`)b`<^q+=a2v#<b-+I1Phx4ZP#_P5DydoZl9CTMcx+=9)_OAP!%9O+0juX#SrAU9A zF#U1If+#-u?c2g5GdS1&5Lc|7!Me$@*NXL%z}KAnzJ4pt23=XR@STLL{HFYkdZCA> z%rN@!yY}wcri=F%7IHJGe3$W7so7@#b@Kd8m#y^;ZYbn9eGRz$^V_7rj*iycbD5?2 zn^H@o<~h6TCDry{>s)==NLab)w8rb!Q`(bfMYwFUT>f^a>z0eU4ubi|ujdD-2Z^5A z;<D8KTl{u41`Vqx%yW2p=e=q2n!x<fOkR)iNPWn+^&b9xM_kS*ud%;vv^=I|pTLbk zx2Ab{8yD4X61!EnW{r#=YZ1e@Jg(!a&vv*?bt?XSVxeZpy~&HY(^ma|zeF=CvhDhe ztup!Rbb6x7Lv}{U-%@h-V*9poZv394^7nOu6D^(zbi5GhX<M=V)BZj0S2bE1aP5<0 zZq4bsb@hud>-$Y&f?vLv2LE)f>3G4#kgk|ryF0kE^mNQ^vAzE6zUDpi>T0IU367cG z6WLhi)T85PbYsuDRkzYi^gc;-={mVNu{?XcNiDOq_w0ne*~S(-t!JOVx%aaE#RF_w zifsZ+V)~&Ri4GGU9df(pSfs+p)$H4p-srF7@^%hm`v%F76P0D^Nh@B8tv|}&+3Yzf z%Cxbe;2-Pv1zuui>#dkqxt=%vdrQ+Zbz|SFfCoh<R<Z{@ZJc`RWX@9ogO!0bO!9|o zimI9%HuJA`oUp<4)W5u?SM?^&*RQ+v@7MZ2dt&2c-&p9*+?Hs6_S0sY<~5A7FU*|q z|LJCxH}7-)=ii)t|F`4npZm{0f1qS3;ZWMuu*2!m3_q2pE2qy{)iIaHgiY>eV<T@$ zoi0zO+PR(1GyiJDOz`2k*CXT6)iA?xE&tt9%gcA}XNof0>sEAD;k#v)x>9so&z2tw zGnZ<xF*<4d(&U)xl&rAOVL|zw1ewpAn;!4ddjDnOy-+`+6PI~2KZKdHy^zV2dwtGS zJ!|`!;|AP{YG*b$^zUCB&Hq;W{}cI}kIVnhf14hDCtGgG+&f#(zLdRZJjKpm^2UMr z{k4A;w)cI~2=$9>)cyP1WdWDkq_DHy8WO2{p2sw$TW#;V=Fal_@1ylx%VJcr10INI zIJp1Ssx;T#=v@6cX6<&Ldz02j2Qx`*S5LT5Y{6rG``eeEzN<6eZ$7qU)jQ+Ep66N~ z{NXM5z&Uf0Li#fENt@T7I<we4S}==C!?4&U?~0rAU%&a!rT)+04!Gg$)so=0|DBEe z^!JJ1)z5NHD9-pVs}g1Cy=sU5omGmVQ3~&)`*+Fta6I0<=|}9xx80w`3wP+vuRA`; zN@&IbKdXko-%*E`%&Fj5Y^0ssROplTYCqp&rV1O??#TBK*jB%@S^X!lI!Bk~h-|<@ z9;3|)vKyS1pGf6QKQrI(0QaZ4=Uwa_yH$D|Q#dm3cAfm+aFyFB_Q<}>oobS-YO|~I z!ge2I5o6S4o#y&3CT2^->nnN(UrtHXab2pOR;fAV#FWa*3+GEL7j?VY*5YKoB%ODk zo#n@gC$b+UZ<~<vv?EwbEB%wcbDG=R?Oi?Ej+g)P@G(0Xx90ZF+n6VnQ)LsQnQ)`? zrjCZ~uRp>!zj=NQR^r^4c1bnh!O8zc^DSIzZ#7MS8}a7Vu0=HsYb-vVX*hW|?p<@O z-T$58Z^i3>iqHQ1{h*y;Mdyp#pU$ncx4+Z9e&vD96-9m)w)r#vZ{PRJRO`>)zjn8G z)Xa*rZFqTpueM*)T6Py+m+D>>qw6o9%PouWmlLjJeBong#lGgHDQAXdz=p<jv-~e> z_FUPZ{)KOX(igcee}ul5uvzMQ?yAyfkMBLzy|}k;S<3tR{VlwwBWLbr5@Lz3)GXgA z?DoKZ%NnsevviU+ELr8~H@D^288MH5P=<D<G_}L?k2f*~yshqel3EhHbMM+YnL$%c z1WXM|6qW>jE1I;xzxr_HcSXyP8$s0?x!(>f@&1)Ig~y}mYxSvycez(zPD;Ah*yMPN zW1D$6>&`ptCtuSnpWXOi-|GsWSEr1odM>)+l5+j6>#+sf7GFy=;I5q<{h_q`MNcH( z*_0EqO!pI-TNWoKE!5#)cQh@q-|$$r`r$wE*@iz?@SY3uKNYoFD9SNplTWv^k)Vss z<T>e+@~YG%o-A>)*defq>t%pN@1Zljjcl8_mF{!tSxFt_j4imbEoJJ;^z&|!*C)>U z{5<`6uIHqdtcsQQ&i(ku{=dHZ``mh7*8?Y-tV_DD=Zd~b`M`LnF)UTfG=1$#UDKWS zbSLO!?LNq;oxNj?k#e$+kiAC^FLR@wW_8rTjsNC3Z<rgZHevJAe0~mzWAixKpWKs| zdB>=%_=#z!vyGdEi@a~o@f8ZHRjt$KCKtwN^<-@<m;c{rTk)xSZIFxU0hKKc+h#-> z*OzO4kKi<EtLN8DFHb6eKX*~-+mn;EckkPGZ0|*}l`J8LJznoK*f?qPJ>S>C%{S7u z+vlmAYxbLX@!Y%E2cJJ!8@u0_WUyk|9yuOO?L&3q6Q@4go9^l8)q73b|IvKAU0eP> z%qV|n@#siV;FO9Q`Mtkxxxe9#uekc}*ZO}=v2phbT()#RVQ*ZMWEj-lDBS#bkx`Uj zrr1;qi~nnDe`nu&^<6ph_wV#xvAN9ed@dR2KX*G~zd$HA_T7E^rwTJ>G~GO&yxqRe znd_BL-?}o3N~Mq6y#j@A&wspkZ;I30pEtgX{@%Hc$v>`}N!{Uc^eNpHu{VvMOrGq2 zD_j46&h7i+5A+Qg*D1-QPhFH@e&T}ocZQ3bZ@ueE<I70nV1Mbd@>$47(cPUoh6?+O zr!)7gQmOcTB4LVjQthQzH9WFwSFQToJ}D(i_3Q**cA-hXZysLa{7;0@dup=T)CU!D zleSe{isSy<n^WsBp<e&K=&uwPR_`mHTEmnsT%E%%$Tg8=s(^Vg!!)H2rZeNG@-?#P zXWZ%keSNJX!?V3d^o003tUF)+;+lP^Q&G-V+4@v*InR$(G8cDc@;%Z2ztukV|EKtW z3u`~z``t9F@<Qx0k)3O-mCD0P3pqn9jjeC?>8`#N*&eid6D#-I_quHCx|0^VC!aU9 zPqx|VP;b|EkA+DfBX;+`ll$MZ96Wbpol{BZ^!A0fO~1TnYVHc+s=TMfY^TgHbGiBt zySA$qAstmSBQ-R?U0YjV5@;Q!JzX>S?N*22w!oEp1GX+RVYz5z{%!k`J)2%_+mdEx zInnDs%Y4U3Hv4JE=IvrqS2B60dqL9X?YEro*ZHq!D)t`Rz_UTqbjF93>@8|HpT7t= z@Lcm(d{nKH_|n5qGSZaHmbx6<lF9dV$=%~i=XkS(wiGXJ>k(LZ@SLkbRl(aGGH=&? zn=HFfuDnTyr{(m!9#<7@l}5Iimzmtm(o7oHe%N|^>9>{la`L%#t({KqoVP&!_Eses z(OLceztXQ}$g^l|-oh?)%dUujhw#b9^Q%P5{)?<HHk`il?env0uYYdrdv99r^Y!=B z`Oic42PliA#4h!@c{^k=?;7@?Q)0KDR|-77D{%kctL;%||NEx=yKCqjwS!BmZ|jj? z9Fn*4-X;7oo%Muox>(9x0V4)a9>1qN*^Up_FJ(Eja^f3}24U%lyyh;IrkTvwH)I$o zFx5n8vk6Y+Y}A%t<dgVD!&B(_$%d`+H?80Q-LJca|I<s!N|BeB7A=c^w$y#UmbKoC zDGQDD0=5Uc#k4-#GV7$pKAuCL605kkC38lV=4Pa)PH1ruJih4eV-;(aC7sN@EmAJa z?w)&5bEh*UJ!<pKwzra}W^OqgeM|GDu+F5z$r8<NZ#HRXO<VWB=-uKc%d^9_Uo9@T zzy9ssy*$4A=3M4+kIOrBsv7pDnji3C4c(R?w#f2`w(ggZT}KMTip=<&CMkaa&l3h6 zn7XR?qEZs~n&|4@>3rEM6CaAt<TyM1+u8O1Hh;Un+-gJDjqF!@PfrkI(CiD^VEE$D z-1h4^^0JTqUimzyc)jMPl!7G-r+5g~a?6Uo`hW1zv85LoRSg3bziL&iy1rp5?~D%f zA8pdL_05xmC4!ymGZmd!cPXeD73=)hSGB1&6KL5b(%$#FeG=#14T6oUukDQ5)--AB zI@1f&R!vhij?Qjb^ZUE!xhEF!S8i`Qsd)7H#$)Hr=S@%0&^z|S=Eh1xy_+>ptI8(L zS7y4z@*=mZ^zV0$-+%x6_ij2Y{ObBjVKr85^}B~v*eCzkqw_;TbN!}NR)x;&IOc6R z_0PW5>W3eF^I5KA##aY+H=*k$-+LzAEZw>^X2F@eC%X>*(=U$yB67s*j((s*iV26( z6hpO4l@+_0n;id2YQFAr*uLWH=|h!4zoylG)Lo(JI)CrhaQnZ3zyCb9&)t8+s6KpE zi%wqbH>>CyXQqAf6}=H`-M=_XxL@znWiQorAHKI)|KEO3)ZF2@(HxF%?{~1&a?IFy z?wlxN%iG9;xVOb`Ci8ybZ~L}6w@$LAd-h-H0vFR;S|9(NS@&>@qOy;Bt5C4^?W>O+ z`|~d|o8A!NU|V@kw@L3bUnyr>&2``YH9XTdB+kfdKhPFnGV@1tx8Xg_3yk`Koez#P z=w`=m*ZA4e^t|lzq`d{-RjXg$ZO_nsDm1n4#nn>_?JoKrIPbB=IjeA4%ew}bLy5ms zteY4kE8l#Z@#&IhZU-j^%TF!IC^?(m7sH+2im6-uev#{5xo$oGX}Q<g>m7Jh4(h(S zb@l7-Ta!0ity|=x=EsnibLqDa(`mB}XCu}-dSobh3BKT)EVXjuGJ8&je>Z9wmA>fg z-`=4z?`6<bR_#OH6B{@Gb8Y)^#VA?*YOK`Se>wuDi{rw$veSb5fAN0M-SY2lh)FVw zi=HdPp(u?ltPG}whZzrj_jz<6_g$Mx)Zqm>VM?3jr$$OFV_PIPO@vWfc&ik9LeTQ& zwly*}a|&*6iB7A{*?DXASG7ok>TG@&rPuuIu@WCodCquXJE6?&P=n0V*(@9z#GV^V zTyWQ2s4B%9%wXniFo8uz=8P_H$$^HHUqSb8XJ6Oje<K(^(`oX-1+sC6PpX}~*Y-=? z>y6EujD<`_1rbdX9~7_Hsx43%n-n7Q>$RZQf<Fabhh(qS2q|g@{*Uv!v~=3t9c3lT znH5tu+Bl^iO$cc(<Xto`A%-=qc2B0erjnGv=G!6a{e8_R_W5$vCskJ0Z|!wG%k7_f zXY;+|GnSsys;)R4GJoN`>DLeaG(O=a8!d6d`Nf9S-`ZPJWptSpT6E@oP1wKxy4`Or zw%>p5=>JJQ@NaWd(Y>Wj7VCGOb7?o|6v}FMFZ9T&k4SbFJr{M9{oMcE`8RIAuW@L~ zpD*hFc-|$}&DQs8jGKj0=46?EohfK@(D=mM8){FZs#lwYyz9$-)q2<RH-}pBy*Kq& z?)_^x6Bq6Gd&Ps#b1t+^GqHcY?!nC1ul=SOR&y8+3eN4h-Nd#ve$I`rzME~&Ssgbp zC@WN%v;3l7l;qP_FNG(VR@ONk$W%>yZ5VfL-)zlk!G?u_sm5>I%c?~>d;@RhZ~yIF zUHyGmfUezXi9nwdvT+fNcQw{cxNrSa=)o?Ybd9xVf3IX0;8E!hF(`Fh`tnp$kMFq& zR_rOKv!=`o`rzPJH0>6<9RKFIcW>S(Rq+u!XfRo%DDTON+qE)%{6A~AemT1C=xbw3 zwg(~#6}DYDm4}vSrrc*=Cu_gx?(WwcR^0C9JT-p`D5W~?NtdWj<DXk`qRcGZ=xxv6 z-OMvKr9M&+^a=QU{m{d66FO3+rQKj~O)-@FBpK<kr{1j~VFN>6bziKo&E~c1-PjxX zCeEHR(?Gs@mu1W0>VtDVQcle%)M&bHB>e65rQJNfl?fHU3e{{TA2@i_hWW^KE-sH# zojbqz2!=d<f978EyYO89TCW8iHL;JjDR?vrUYt|$XP0q`tHWYresxh(r>{qw4_JIP zj?s<c4ZY82D5UP{Hto{G+^btyn}6>wHt7GFGh=IKg6ZbuMU%U$tOK_$<<(~D-cs?u z!ag;jz$S0cl%FNcVJw1f9~S2HME-0$zf>%>*r;MzkIspr7svbG>}^VE+52SE`qs_2 z=JS4WI?#6c`;Jp*viAILss6m;`?m#wud<d^9}y4anDFn@0tKhHGbA#7)gN#8QI%`` zb3K=?#+}P|vftd4Z>xT5Zq8L=Ces^hnecpSxP9LIpJ$H0eg6MfJxAsJ$4mAKI+<<T zlJZE4`@8hJfQwOo&TRebAN}FS+WY@@?fv+SfA;5kkH<ZUHqmj@qds2RQ_{C2u1}IR zO*Qo|k5S_bhG%??3%2o>``^ABzx~n~<y*~ib0Xa(e?(24x!~c!l*X;^w6DB6d3oj+ zofT6e+H8;i+?IVWPwQIBhflHE;eNl57acR6)Z@#&YS|$LffG&_9RA$zQ|T#xkdp1A zx5lT8!_e0w>CE>v*4tL?y*1})i0B)BzbxCtn+~yoKLo|*#4xJ6f09U3b>z8qV1vH< z>mx^Q)GMrv`#h!kdi$=V4|P_nIYPK@Ph2=j%4l!t@)@;L&h4Ky>F=-2#}+WZye)Bi zNw2Ed2PdYrNs@+7t`%}AHFh-!IX1+f-a5~hh3#}i$(t!+9M?R5GvD7~d*J8Wos$b3 zT%Su_*cI_|p5$4(KP|fPC(alzc6aza@#_<Tt%lsD`);`^B}h$;m3ZzMF12c-<kH!9 z*B$P-dd;9B#d4x)X!pjop@L?7d7>NH4EDLSsMPOtxO?i@9^U+A6O*cMIc$ng^}WRV z?P=;4)!962WAZpZ1qhXxy(r*q=<%$J&V1n>#$6F6^~Lh!%uK7OF9FqJvsUb#5SBXa zL2Ag-TYFtKLsK6+r+;Uvomty)dME4rLsRyaOg*4gD6HIgE^H3VH0echD|I#}*h$te z7Jjzo@Qc_F%B&~XubS8}`L;!`e-!iG9a_6D-8($>QT?)a(PutsWow?g@bXWPJlm4z z0ituZZnepEyn1){a))WFR5E5NO8%F-DRp6~VDmzo8zmEk?nOFG|5ZIjbHj1>Nw-`y z7ONDkvE8YcdTZ8NiT_nq%S0j%_I?r6`l)k!viMuSe>-BgtogS0=i6r+qH6#DSdzLy zJ?Zy<ojLy>TAbXWzu~m;T&b<!jJQrVyfW}C`S*OevP<2)ipTEX9?bo&GsW!T5+#YA zqDeO%#%|xY`N7)xh4<b2<>RBaJexU3qAokA_SUz*Kg%54G9oVpD6$zn;!RYJ(Vx2K zl#pDsk!#-Umo4SG#ovB1^fB=$9p=*$=WE$`<732|Cr_5JD)U^iop7!+WWnAqo)Zp~ zU)g#x%qIBRm7Cm=i8`*EBU6>v3e-<ypQFy+HZQKwcT>mgikL?{s-@h4>wbCceyZX) zvGb!;#OY~?((PY1c&Y48-!#|IQb=o=@-0!@g0)KL+u}~&d2{gC^JzCYPnpl1aVuId zomDOLb^Hc-jfbaiAJ1mL)n4~)V_qZ6<!6O#XR`Pe^{sR3*JUP({J1j>bW^d%D&yxW zmjd%9emOTO#U@aAl0|pxiguof&TqC(JDRbg^z`rYSmhe0(^ozj3)Q9_aQpYW{c+$1 zi_fv`tExNY`7A|lMI?VMoFljPT)VWu1_sS!2cC)Tt1fPycvEmz)VA2D_x9)2ieCI( z9ekkoV2P&LN6V=7FHWf!-o9hd_Hpjihep3Y7;Y;rV4UN?sWi9$)!pJ)*3@Tu);Szn z3@rTRx8^fS2ER>lI>uhSvMA-E+KLAEgN;Y`p4LqEd8flZb93AMBlX%xdu009KN@+o zCb2EgINE*l^Jb?0MMZs^k}QsBXzE02wEmWOqgwMV?pVPE<7Xlsewnu=+TRM~YGjp1 z-?!hQbSw4l-s+1?N0XaPwK-fX_dMAA)o0z_<Ez*2OPOEsGx^(}zq`M^%AVi!C9h-a zm3doT{@O+9&%F9Le`!gJ%7T|t|5j-Ic)N5#ilV|5*-gD~_L?hMnogJ#DiEBtNn^fZ z^|f<F&h`6#&bXV~cwqPR`<dnYll{x8-^Ty&u5YaUcYFuCoV|R;)9WU`9aeZ5*m*J> zJ6$<fe!`XK^}9Ca*FT<rlfVAQiF+T<>@Sa8F;99$_|pS2_S^w^v!9e0thzasXMJ_1 z!AVY5rO?*A$gU#Kt*sWT9-NNY_qwb5#`O@VCqXawB;TK_ccD^TdJ)59d-LZaJ@@$M z->Q<8zV&3O!~V@aEvZ?2-~PP0Qr51+Y}_5PdP~y1m1pxW?QPlhq_Hpbw?WHFtNl!M z6P{}DSWmvB@UU9Fb6&HG`R=Ag7u@Ilci14oshTM)GUdpc`OaLPf~Jd~SZ)n?c6h3; zu?oxI>}$tLK8IYFW9xge=Wn8#6Wf=-gT8z%I!xbN4to8&qd18*&gGq2^__dl^{*@5 zm~lKTc_!I*$4cmUj$z>jtsisy<OL*ORwp>J*WKBlC(2o%s4QtFl2V^Lq4|;8!eS4b zo?|&edmlE1WOwD5FkYH}I<YhAqvPjC7E^>Qs-@R+tT<I7xjJm?E&io!8(qw7<c~h; zw_3d*wtG$Q3YXsIsov*VES4YW>3w~wM^Q{Ag;D$+yW)vdbvHxagO^W)oQ#ue7k~3u z|1bNuYyA5XW%OK{!VB0pMD27pHBxA~-ahf%<YOIcO=CYS7fN(o9sX>V+gtH-OO<7u z_zIq9+4oHH$mqGPwRooHtSg)I_uAcfy=+&df6ZT0&$d1CX|~@5_HDei+1hTi!iSkv zEr$(P*q)eHWm7%df5y+^0OnXVqva{(@9%Csyzr_9zxy?NTL$Y*j~`F<uRUY;_oe@h z`M-<pbN}Dl|9|qgmEm@bXIm=u{{C9swC2{*{H?Xxn{QmYEpeG?_UszBwX5y9MD83s zBNM^0GRJkppEap^PJ!v}3$i!5*&bN2Ec1rTqCb^&oBoO1)=9mweqH(AtLx`4`PS`T z!r8++GyCAL!mEaXhgm}`8WJbpc=i2i{?;@9+rORLJ$={vfEPUO0$nAYDSHfGU2jyC z6<@&N_wLAwH{lXGw{$e3&wE@<xHqq0ZNR0=o6m9ytZK_VdLqt}-|T+Q!yi5_o@X{( zxVOakUQ%tJ?#vr`cQ0}{`A638@O$A}t~Y7^Z^bXlN}v0S58h|JG=Y6$&D4`#4cfPC z#HXmfNflx`x>@{N+pD%94U<pmT*pe6*R^f->fa;wKR*8W-g6H*uX7i6pG&#*rFPSV z&r{~GaEUxO`uN*UzL7IhFh5l+Ny{~8PWZVTj*_dFoFsU6-)O!S*Y^1REQ`2`+?Bif z`M$0wIZ(-=!~BPn>BI4NtJ_X$-I-S4Fq?PI|20<W8?Nk~dj7U!nr7_6wI`LYJnL9K zvtHe}UcV#o>#G#80F6X@!NfDu&PGpt$u>#AZ?khVo1uKpFE90&tf)MdnS9E(cle~X z2^c7DUl^Ocd;8CTkkje2y+rdF*F+VH*BmzLR%_|{^-4!V<XCPuvz@%$?dtsh+uf8G zN=e*%f8n9&ip12o@Tfakr?bAF_>eAMdGW)-cS~-a|IVJK_+r_CpGld@+P~$dp7nQE zUo9JUKKQF!YU9?!`H@!4>ryJ%T2lKQeg0K5&kdX@>T;rE*#o8s7I8H}nXAt}u1J}Y zz|t=^q5A5slnkLcg+@|5KaW^dB~>ouDhiY5Xo-Gz&$j*Z{kv}j88(@AJvn=R-?y&6 zH|>81f16$Zd-|JJ@p<l=FE6(H>$-)xe~S-ay7ZRuw}O4zPd$5;+jeyB(p#}&`iDP~ z8IkpWZPeGuUf3wa7#zCn{B_o%fTjYmTS8*?<^nE%j|;5YlzNu=Ub;=}yq#s`E85F) zAMbD!uw*wf)Rri$bGBYBuJ``;?fA{+(P#f3wC+Ena_rEy`&k#au_rDLQE9t!@4W-N zM|<&=eK#Y|Fr0WPv-O9Gu}5Fd{N|$}_dcvH7qxw<8d4Y>^!(%*FE*avH==D$bE%!1 z$sy&saMPRSRhLvBJ~!w6H~+vx<;3ZAGk)LLxj*GV@%<lhsi6y3opxWlCN@DsL}4e} z2KB&OQ4<?{JtEbsf93G=dt5mA;QS`m&$Y{rq|D{WS$Ir5<(kBI+k~@bw~JYfL?6#P zc|Y;?YU>}o%xjOlY~`4DTBlulj}#jZ=c$#PD?Cd6Rk*WW@2lbez-Dvegiy%r70bNz zIyhRndTzw+-O74Me9>w?o=H-*uVXKYMZ7z~l%~?7d_`pW&w|;1{_9Gy&$&{>bU#{f zsnwdteS#{M@@CC~3tCy`&b+v9b?DE3Iuo|dy~6tBqB?KQ`=94mZvJsGZJF_e4J(c7 z#03h~Pf9G#v0pKB(%Ltt{bUdEA6YQv!q(@EvI@^VH!X5)yDYnC;v1vtC2LpQzg?PB z*kIaPberjMP>c>oeU|5G#d%NW^7$(So_4lgA)>gig-0j*wQG~gs>3&hbjv%hdR>ZN z!Nm43uk*v>U4MS38#JjuR?i8y$Y_79=-eG2dG+4qOQ+|mc%C`qBlV+hDaReLhvHJb z8u~15!r{U<c|6l?x!*<oX|L;V>3FK)BPn_>Y3b7SjRB!9D(4H9Z@a(e825|I#(uXC zuGqo$ul~dIe{25!-T(i!!J_HY^WGR4>v$iG+K^ZHMgH2{=8%kS>lUu(oU>>9rSAnS zp04M!IMsY4!>{zVu9BGE&9WnuS8Ipf>U>4#YjbaN<#rU_`mtvd7uylnj|y*ZFj<y= z$$L=if9{o>!|MAlHJ;zk`o}*n!CpzDx3AUZTZPAaAvS&%|E2RqQs+N#mauR*8gZ-m zo1Nzj)<wa4w(k|&Z8`0=_v@fD2kT#Ogde)8JZJxAg{o^F5@}lHS~3C4DmQ54PB4)W zcIMwJ&3MF0uxVrdEy;s^98+CXxePxViFOvdZjiZY<MyEK*7G$zk#l{T_AI_?!6Z3t z&zE0)TtD=8{4Kt?YWIev0>ZCZqROA~zPxQet=Dp*?37cg?~*S?#;SVmtx5jHW6XB) z&7*~P7tAs7?CayWd)%W`L-3cWXqo8_*@K(EsPM%qZgjV>Uo4!R>b*0+TtcC}R@rV! zCXcbT=nS2ymEX@;?$(XJnRizFVa2?rRXQ#8$1{AET`N*pYHWK@Hb88ClJKf_$#dGj zmX|)*c>no|t*gw!p69Ljoh@X1@I>1UzGG4eZ<jWnI{oSOi8BcjXY+Nc3V(7h%TWHY zMq28j$mN5Fc6RN)kiGcN-z%N@f9BlUx;s7X<Ug&BWFOnt8{^n!u3492zFOkY#N#)( z^7>Bfy56U|=xyk?tkjcPjN316sQa>bzWd#YhM6wUS6^!9oaQ#|`1wV%ZsgP+5UQL0 z^}EEr%dekqOF4H}@#+?<D=%lhDQOHn`X!Fl>I}=_z&xEM=B|lnR{u8LVi+6WZd1r2 zI(hG(ll?d6|NmTn>)*lu@9Z<zTi(iZ=L~;7r)ORNz1?>IPW*f4IK4jg%)SCg8Ge%; zq2jMnwsdV|Zkw*xSrR>+Rl+1|{`05K&2P5f%wf39Zhv%Dp87Y3Q-5cE|I`=O$~-|r z;NzMOpG<FtmyDgCGdR**I!_y1eSbUt?{eO6|L5)fdab&IsZ^D1N%a%`v?-hS<l8UL z)#+zEcf3}s;+t{H=4BJtn{JA%fB*Q<)|J=hm#?j<^D&qbzN%%$m8Z<Bh0f`EWF6b) z_vQHajaLuOU$FQcU)XaIAK`q)lHP_T)55k+{grKN=}^7u=$ei-=NSHWuDKevv{7K$ zsW&&<gU?ibYdH4(R@@U=9qSce{u^;FGT{67?(Io|CtBUUlWwVq2R_}iXNppWwOHt( z3OVlWN{c2b&0aiX0oO~DqV^Y8)ECayIlII{{-%h|nbSKr=9KP@58Cwg4j)^N&GaWH z1a=-U`njgz#AMSCnoDmBv)q}*(D2nE`Aa9W*zB_#x);=#<vi`FJaAx+z1Ig-7E2qh z5I6SL?Poh>=G*_5H5cn>bKi2n$4?=oTb8Fe|H>ieQ#lPEu5LVdJK#W*-43OI7=735 zwj&GW?@IJsiB2ytTx^?TVYz+9{mTyo?<VYvxG3fRSw&)Ro7AjGjw23w63?w>obz}5 zlDJx^xAI<5Qo?h&6>Qh6rF;7JT#1|+Q?p)=&n)5Ihq-^f+x2DqfB$`1k$J!V_57fz zYd0NBkF98l6gnI9LdvJe%vwt7j`ZeM4vkB@)&%*M=CW#Q-@Gp;(z2m{-THMu*c#cc z9AQ+;+>z{^wr-k_e4|Z#_PS=f+q|pPwp?`Jy|H|G`tol#&)41hckllH{>}=QwSxW` zTP}a>3lI}xnY`$7To)5puwkp2wxx4f|BT-D1Ky&`c9pR7-!q!_Nl4~eLD9c*-r%ku z>Q)we#Q#^Qa6MX8_t=dws;gA{@AqyC$!mhF>#_p{qD4-Jv9hQ<J$3Sh<&W=fy<h%5 z%dejQzdZWce}Tp@)=Gb`9zm8b>saR7e^~VQ%k%nk@8<1sTm1Ix2P?fkHhCRUm;6ed zGhBvR65Z;TV%{7K*ezmgqcW%S%|zu*M>vaGBoynC4MhctcAsiW<_PBb&6T>F=iuy~ zUv;0ZJ<(c}eR|7eFYkMcUfx{G=xcKDm6t-zv%?E~ZitDfSt(U1G<5fVx|ZO5I{BE~ z-2UI8k*#IPH)6Kfm(Q3G!k1FC<U;gEnZ2tsWp#Q2l%C2-yA<4ewK@4i(3gvs-yOZv zpLJ19bJEkoblK92H=oztax9#DlKEs$<hI+Ka}+*H%2u5Cw`q+)nbss1*F%q_1?O^a znZU@&wxRO%X8%fAk6UlPy`ENccafPxT14V~k7tHX9(?cpAIeN>`62f9xsJQYk>xU9 zV^*&!KV9(kFS7&#-}J5`&zrrs=bWf;(RkHvTa@hR|4PBbYR;OMu4{L0a0yiA&}g{* zN#v2G``n$Cos*`DJ`VVOuyil;$(E=UM_t48HEgn$YO)>Ri93>NCLQ&6;R<nsbeTmW zPF@b;PFvTOS?~VPy{co^%KtWV9Q{^b>h?d?-8}WhpAVk1F1~Z*o!GngUd>6C?2@z@ zi^?r;xfb21+7f@5W7V7l+sV&a-S>*^SE?;vq~lqz&U3rs51x%GH?vMyM}KfuTFi4u zGyead&*yK(|LOie@9xg(MF06QM(%=wMV}-;=T)pJNe}*gZ{orAB`)v2I6io-SsuIT z-Ko20mag>vmg9YGW>`#b+#=15GpAT;Dci|SzhByH?fWRCW&cFy)q%=p(H)CwckuuB zJu-8H`JMe<%mo%_Ie&TF&#(U~{q32wea_7P&Ux)3=kK2R663)%SC?hupXK$h{A<t2 z)&00I@7+BUKczJZH}CJPKGoeL`OQP%-C;o<KPQ_R-vqvwPBpk{veoI}RljMDjhRai za~;??ops61iA_6Z?Yw@$s7Kdaf}P_d&on!6rO7ws{>)O0`eV_+_B^MfXm0(vw#L2o z&LPLARH~<5T=iG~wdm|GH|FPZEsy0E5EkGryryn*zo&YA)w1LJ_Wu(9c11ANpD*BY z$WhD4E!M@0mfZ}xAJ6orZePGYky}@p_4lvaCf0n7_w~-Hlg-o;oc>L^5@pS$8NI>h z0*}1_UySn_Cr!h%yN>%DIhva<rQ2kGB)55)QrnM9^Env*e*C?vwD8bHDWh#YHy7WE zTx%+`z%b+SOxE8r_QpalJr-%6SkugsVJn@IE4oNHZt?u<k&kZ)cZaU(>2Pt{^muXI znQLoVZ<$S1-H<qY@ysPpeHZUeeDd~fdXnVyW@(%Co8NxDw{NBT;{yv1>YaOk^X$Ks zvVS&r-#YP#fxYoKbF-yV@&5l}8?6`D2j$+h-_5pZk=;v?4VK2;8p$pxv4;<Km^aj= z@h?l0Y)zjxvu=A(o(aq3Me5Ttd|DZs+!|L-S+ra<md)Etf-OqPUCFTWZxutbMYn`T zT+^Js!wX}cZ+NjXezo<dk54R9#5Nb+(R+2*amOZ=4@EQWrs-sTXy%!uwy`t*<IVGX zlK%gj|I>5#&OXfvwT?V3OSJ^dS`$~FKhVcv@>=MIisb$^W+xxSKiFFILgk>;H<jOK zD$k~Nt*o1~WxLFxf-^U(b|;1&Z`f3J=%;pj)bwk|gMM*oRm4q~X^N2aKKuNk?h-rR zkJ0fztD67TC-C2^J3p;x-Xe7w<GxR(h6j`%+&=&QcKzR{|G75Zs}nPLw!?B^^>@8D z|NcH-%hsvCso47XZ~O0eT5EqiOkRDrP^wvMq0sKx(i2pJJ<eCHR!G@5d1Gu&$n1zW zGFRU}T$8VJ&m>1={!f(-duN9996ml-N4JwPS>*=7{botww_TzaS5_CyIld}A_|43O z?ZvTwcJ<XLG_pvZEIt}>SpV38sm}dervlQ`qpLq{36K>%ZKv@eMAnwG>eG34|BMH5 z!Pc^Y!CdQ>N@z{ll%x38c=`X0M?CzTZcO0Ob19m_yyOhe^7tjcjyHOHFFU7OqQDq= z(D}x$i2O-4Cm(tW>@nIq?Ji^F+vR`eDxWiN@7Q_jc3`@}4uPY2r?0;aWZLqeMr&6# zztrE~+fG&NeSUf7h0QYVDfj1Um>qOz`fK%G;mE-Y34v9w*F5_sD{pQS7k_)w!_y~! zUn_a>dWqztzgr)?xS2F5bgkm<lfF;6vesE#%MRS3D0Jt~tm5|`9<yxab#<mlrsjV> z)4YUdwU_T{lMQV%f8F8LQ0aK6q1J7e&gY}~cWXh8W~sa9%!IY>9tBZRSA%$8`z()N zyKau=wKd;A>-(P#<2$%8a*O-VuZ<f|-&g4flKN9KJ%dA~j&<*Mh7^H|84Qa8OusBi z-|W^d=G-_*=EkIpAMZcB6XY=Q?XP8j+wU5_@XKJ<-EzBIcWvv+bVZYU?Q(Z^T(ruq zezf!X`&-NHzHYLu`Z8ty)E)dme2WjCKYL<A_d3&Sr&%tpb6T0P{z&n%$*I~i>cVpu z{n4K<C@@J#G9->wQuH9>I&J<_kEYwkS4nDoW0`0iyzRcM%_C*j?SY>T%1^xV<<^6Y z9k=GD|GQsOc|YuP{fBGp1x#_L7<}TL#1%Sn&SVJ69DXNW@^#A3+@sB+&e;dvXR1o8 z|Gc|p^Dg^0H-Eo%3jQp7=e9+~H2+ddwxBJ%<?ruq|C_hI;oS<cL`$YO<`XkpQ+h9y zS~xwk2w=(6dso})#QjRmL-KL;t*yUiuGz_|8v2>JMkyij?%j#{^4>mq2X<Hl#{ak6 zCCl=C^;X>yb_tCYXD|BY8r!7bo;>|++V{C^KYUB(Oxmz6(|5||skx8;G%nGRvij*b zOS|cUtn8-+-bK$oKMcyQZ934ZRqN!ix=AJ3ovkT_b&)31E2-bpbeqJVFMm60?$Y<$ zUdtFANz0yhVGV<O%d2@28kUo6Kln|!5?yJ!T~Q=B`^*1exmo**r<~=UUzn}+e0#Q- z!@7+-mxL{!IEgzu{2UK|z}rHDWzDW?r_ao3=eX_Kx8v}+Je4CJrJq7CEtoHLCR)NN z^<CoPyBAci-n-0X`Z>k()TR!Vh(&F&E>dguid#?M%}906bZnEp$?0}j?ez(#o)5ek zM%vbVObe?DgG&NRZg|gB;OSjftNE(8k3pQ{R?d}2;sG06+0OdhoqO8mbY=-ta#W4u z`~BB{yP2tHgiLwD8d#vb%kBP^Rc`DSnuj?hLUIdEJ*tvfRJul%m1EJAUEHrGmAbnf zu-eR|nY6C9*Z1;+HTUPvWBoQU>QU8!!Y!9KKY#mJ{(pt>596lZ3~`=j?<FCPE>00g z=1#hi=dPY}tyD1R)y!W)4KE_UMvIlm|K2^l@k^Dq?7H`<GF7H*wV|(*s?<!Avi9A( z7Q<lsKThnG!I~LbrYe)gC#~N6*VdqD+kff&n)sam8`*cLo^vU$+O=Ka+QoF^4V~%! zAq-MKR(+1U|AyiD^M$P2XS1w~+TZSLeSG?K>xpcUOkd9L+F|kh^E97rrPYboE~@<r zatddRVlUL(yfHlfx^|1owOe6-grZmG{QCZW&ivb7^WqFYSN1(v!M5(|gzHlBx7ZCk zJe2#CKN$GVOPSel@Y&68sntJ^&foI>&x^fcYhqT}ESHUu)R?ieIMpDo`NfPK)2DBi ziRTh<J>a}SP-MA-rNNmT$@IKq-#iv@y<2fPDLTSQ`>)(8kDhf?H`xF9{HLS#m-@d& zv9@*F_da86Zg=R|aHi?k#{V}IuT1oudT7<TDzC)rOY3e<6ge67eBoygv4)Hdw?CC; zJI&-{e|=%9K#4$QYJt-688@TCl~;#9yTqv&cv^V2U9sDaPE+nwTgT&p>ZjG;F5t1c zV*5zHq386+W$DTm29ZiGJJi0;O8WP6-mH5kn0B6C^psC!mF9^;sgx_6#>f6U-Lg<j zC}=s*>aAn6)xhEH`HHIhZI^djEV$>@y6^9*?>x!Nwl870xMcgn4*$NdpXPl^`*5uB z$k8`@cWnIk%cjd<>C@k((;j%GOei_zd2D0CwL_vk2P(?g&rMpJ&MMh5dEy@R8BvUz zzlQ10IT7i|@ig@3&gQj`^xw1#8EiRfdi1=wkiuM%X8AYT#;n;%Y_t1c*>1mZcfHob z9e-=z*`;qY&K5V0R8yYw=;qDJ=EeF8J{)sUeo$g-#Cf1VIwM{+ctZH^``6Fg*G<#e z6>w$#J?4!HDKoyk%;8>mp{McetBad`9lp>1t?TmbKIgn&_w9;y&3De)RIbZ>`S;o; z<`3Zl9%-F_YNTiWzkTjo`0s0(zyG~_xui5~?RDoxZ)FedNPVf{!0uVVr?cQr;KA8d z_g$|z-+oZSS$fcB#k0M+GYhr9R)n)MG0b`2_``dWQJU^~7U^rv^O|K+TANguRnFxs zxWJRkllVdLQP~~w3vU-5n)ai(*zVA_SZ^OQpIRF;&!%-;CltbO7Vkdx@Cl!_t&C|= z(uWsJHd<#>obKP@_LInqc>J#V+g$mYyUTvc#>xArwoa}3Y1C5s!IY~l{z;jnI(uT# zX_gfQEk&h=KELZUlzFxzr#{X3_u&P>vOLTFb|~m(?l08uzg>LKop1iU1u8ow_k4bO z=HD0bxa{B0T<zX_Sw2$u7vvlC#Q&zkt<8;&9j@%*E3DN1?UB*#IP~}4YLWPZhb4CV z?$!leI6vVgXK%)q6`H3{|B<`>{nDhwMS0ez(vIvYJ{bAB!^mjK7Apo-=6NMbVvC}+ zyP3bNH;H^-|9<bbrgUA7?3L0R0=_0cJE<`%x#MIO&(AY2thecf8Fu9;tG`IUw|w_m z=k@>Fa<t>jy^TZ*u4^oxB&MvJ6mw<1vbk@mWc};)H*>Zp%{zbWp($glzOLC`lM9<; zUVHdliSBk&eq3qUWBW^BBJ+FW(+vm9Ihgu>exCa4&!4l2Q~TFk-?>6e?)M>`Q?eJ$ zM83XFZ@aW4)H`Uxqz&`u)TjwAneljn#iXxaOm06k@Qk)^yl~>}V!_>McTcqH_x!(< zs%fCPrd4^u4CjUUk=u9dPra{yyZ-04gftZsE`_ZBEV{uyL2FL0(sa;1D7`_$Ls#d= zCC=(n$M8pSx87H`y*ih_|NiH%rFGBhW~vJ3eJk7k?D5;#@qc&i1-0Pr|8rne`rfkt z_}%K~x)=5w+91PXS{GM4Bb+zHuU~Ct%ESBZ3;4c!a#%3>W-`7uaO<AlQKref>3d?5 z+zIx}_iyh%#QC@`@VoeO=WL-pvU|i^mh){(`9IUKVdXcuB?r%~R21qgOZMSSo$&JO z+p{n3T24J@&;NIGP1iDZtEKO!?Xl^W_}TMzje=|B??>w`!jsl5T(aWj%38sl-yM(6 zzABXd@xu(u$tl%Ichy>#lqW{2ScR|p+}ZO~pYOdP_m-|~e-~EfIxf%2M+Mne7|R(n zZthxr^nvdpmt5Pv%hlhWuK%OFyWITtQQ5N<3=tEy$X)#G|0(bJ<0bY&2TF|!UuI8W z3KYC_k@=L!U8c?z7j%E_vOUUUe9$fEjPPYK=X#s{UkrDiGtoC}?fQJz|6JV0-{<Q& zyNbk`1AQ(OTC+U0IQjC|bR)Zsb-a@|aCz8tgl!f4ne?^2dRvbAoBMB@L;qwyn&0>) z@ydti4KHgRxaZu+V7{$U?eVLpr9)(EO-e}0tKEXL`r5^w-d`d1QoVz%!0O!rgLI|m zrN=sFa!TA(-psQ~I#R?t>(4&B&04=DZvXXbJ-5+ix8I{9hb;=0uG#dq;80r8uFwmm zt*6AEOt58hm{6n;&wTUn35Db&ZT}T2YLaUr__&wzEtZ`bUn3{jP#MI(LAPjU%lb}< zA5~E)U7At<H|bs$kzC;@cT4e1fmm*>*=*t4Z@+J|h>*;9)4Jx~hZ7xVm2NC?;JetV z<UED-WYNjVMmtp-9^6QI>BNzk6q<hF{MWxxzw^8qZ&%6KtYlVQE&6(9p6IpJ(>FBK z2V{qPrusfgz97;(T`Hp{;lk5hEEWF*Ramw=9nx8+TTr+yb^iYTFSWmG-!WPW@`u&V zjg^1+rs=cMDmk_CP!@(cM$gl?cD-)WT=44L$=Ivs?Pqt@TYf8lWVvtGw}hp8kALhm zeCDID)$oJW3ZADfG3{$v)%%z8T>5CK&LOa8uGsJRU{l8Zzw0+Q1<Vy(RDWmx;kH=o zfUTPa&;0IXm(M$V%<=pRhMUFzCQZL`Oz}aP)AfMUhtn(>!<&BZkz#FAdeQyu?6;e< zd6{m0cw1PeEd2d%;oixLt93eqG`ycWl?pTbEQ)T8+Ve5a_wDjRz0-cV&DY=VH&@FL zeSUoYRSTQz0vrFYxH;MX!CqSp8Grp5Av@NFNuFS4;rD9uy}f!}Q<R(;%j1>0TnjIG zIV^7pxThj=`K`#h!ffw$uJ26V)e~>3t4S<NP&<0$`XQs%)vAwf=DgWfb5~ACp=a5m zEg~~Z!tTc2+$?dqXUfdfnnz3hZ>QV+-SoG+{^Q|od)HUD$!k?@S$tZD@!G1r@#SuR zr9Vx+uylTor!nttdv3#m^q(K6|C|2p;P3tU=D)YE?SHYh(c*%^u{#xa7~UjoVcjLT zpzHp#H*$PC`1wyAyQbhJWt_Bpf8Z0o`Js|`B=pZm_xwrsIXCmCkum4nh6_ULZKGFC zb#_~&R4C4P(~RZ8r?y9?GC7O*4OCw?s$FTd@MPbR#p(6LZA#@Uzv(kOGu;@MI^5-O z`Xny7ojuj=&Ed@x6!W_L78kRX%$V-I$u54O&V;J{X$peE*1T6X+fHx(dXDqzUtL`r zfjzsA{fvvrdHd{HROj>`DsEyX`=@0l*L*AL5!-QM(z42L_P$w#K3mh5#C^XzFSj}& zLF`pc_vF+C$||QeEh*Q0EzNR*qm3!(xeUYq>uI7L61!DbZPdPS!u|t8`u24FirC2u zU20Obvs;BvpRMdY8?gIC;QI-lJbUh(n7>8$Yj6E0(dy4<-(URs_~x6f&zzp$`v3Nu zIdAT+^9_fVRx8FmeJz!{N9!VMQ(N@>iGkH({MTw!3ole^A3mTMZSYR@+xq{P+Dd<{ zdb!|TiLKeG+3y;DyfObfGx2_PyWqKFH?AuM2(w7eELJ+;$&n&-I;`rDfa5IT^jOwH zhM$Hh*`3pN7&B{bS-W?!?`Ih+W~sTeuQWD(w$}U+EO5J-p_DVR<U`Mbw289%JNRFH zS7)`~<Z9Y<eob}6rj+Z-9xtS<Ce66MQ=UCjHzX#yXC2>?ehy95S+){e)+$?z%0_2S zD+s%EE8Dhz-IHDU&;M_j{8w(Of@^Gjpl45UVoTkPC`*si2}J?*M{JdEI8UGSQS!Qm zf69D?mcGu)UB~X`e^M|#d%Kz8j+~If3028<j$@~v&vtIN?g^eywu(o>{0D#ihyS^y z$L}A1QxsA>^<fC_$^&NSJ?orQlr>nl>Be8(ba}I{<d;*sgc3{CW$tc`|NV4-!u>x{ zxm&mMD@dN|?(<QYGcn{{!-w@u0(&X~w!Nzl-@j^N!sE@Wtea0NEf6palr~%Wt%LbZ zy?*n($PYFweSf0mY&S2vF4!xvGkQwomf5wBHf=THbJ1IqzNSDa@bS8$6TeLE1yB3w z@hT}O?cH78jJ1<CvL1TjD6^HVV8YiqyOqS}oW5fGwqoDJ#D~SH|AVG<TzU5L4l9dD z;Cesq7qV?f=T&ljy!k6X^}#bq;kG{|hZQVesCYirnj{o;_{JozbeY0dL(h`rC(I2u z<m0aL9?<#v<;#_SyYK&IuKxS=efHYb_l{>A`S|~l<AXR8FNqTuG=AQ1)oESm*!tQ* zaQ<Vh$?+_KN*zB=xW{dn|7WIt;ydQ+228Olb-Id!RlN+hKB%~(Ge<~ox3{vowRP#C z`{AH_1{iM7e=VBf)shuic#-9so%yMi=dMqcTk-04V1NGuLFHAgSu0E@KK<a>^PW-C zbW=jjGq<VMjt7+f9h|vSSMtS*h7B3Z9K@%++@?6?EnDd?zoGzX?nm;?#}>7V-QN6Y z=k>|}H+$y2k0(Yxc%?A?++_dBGAdcKSiheyiSeqt^lHsbErIv3%u997=ie##=2XMy za`N4wjk{&6R3=#;cdnWAV&28too?(^&u?ef9!i~CVrL-Vu=dCkDbA&wipyWEHoJY; z{r{v`CO6;z8Gn6jcPxJqIP>_k|NWbq1OEkD%vr>;QAH;6?la!mJ*OXb_MLyQGEtd@ zPx&wF?Ml-FC;s2Jo^jy0MZ}7<du{8ZmoOjD=`_&jOsI5z>1|%HS>fBhde-uD#jEwL zri5syG`%pLI5(EbS7Qz5^oBXv7FJssOFJ%m94VgR5%qe;-r_$O{^|d}{(n>Mz13y1 z^Y(H@on7@eNyF_t>)9t05*l{RW60jNuBr9B)1}?+ZZ7QmAO3bxFv@e?qIK&=>k^fC z?tIHb2EDoyT0~lGQ<dfRem9%BVy)Pr*L5=%-rqM{L}jP(bQY~ewUgg9Oc3!d$~eX& zFq1v|hl7sW*1|}O`gOh8`PBuF*VZ4+3vusRlkQ!zNLg>9YKUd3UH__C$$M6DPf%eK zxqY_vZNLB1Jz`f+yjWOXYFaLG`QXB1%srJ;*cNR*63w?hf7&eV(@c&9T*qJBzpvxx zczxy5rOdu1{~GNKfAAE^#lPSCG5-Ip_qQe=4^P{+<;FthW2q^ZSMt1cY`gqIWS3XW z6^GYa3EYx*q{Nf=?q2Zs@6zdZY&Re6|FZvA_qQ*Tl5DOj-R4tq{;puMbd~C*(~Nt! z@7t99>`3;%vp@I$`^6u9_Wwe=$<?gq%NFnyUG&Jk|3bjVD1S3|dz|<bg?NPxi5r!t z=-;+%_~zb}tQ3Fz_-#4P<-Zfer_8nVPqL{!_iVPh1Cv%%#K|S^b>}_ZQFNoIX7aD! zf=|xYu2n8j^NC6AmpR$BDbYS`nn=%XNxALOQv?^}$6MT2P?J6O?%B_k8jlmh7s%hU z6kpuB&qMCrgf-VsNoq2Qyv?7Yx_gQlvs=8nQd&vbI<p^--2ZKPEB)!yi<kcsWJ<Pf z%(K{-AGyxq!K1HL9;*2Utin<}o74|iu<bkc#A~tE?T;slnij3`wT|bnnD2R4#Nx0^ zR82wjOi7*Hb*+op9>g)SF5z8&H}mzMjG$F3V}<@`T{r$9ySOaoV(rQ_E6?*R@u#=` z+{5U7DN=J`eL>Y~uIJl5*cF^x^=}J(Y;$%AkzBIrgoohM^D`XMN?Bh&Q@Clkibd-_ z_oh=S30sax&F{C0$^In4+0Za!R`YBrm-@=D$|>7&B$rHn@Gvj`Md{j?8(g05was?h zHo@hL_rX`9SI#&(WYw=eC?0Su(4>M{bE5pCwKISH$$W72{VU1oe5~0IB>!ISX?r5k z^L0y<NmX&eF|of-!(3d9O2b`F_3Ed#U287oj*xq8mf6>2KRfbzXtw_=g8~=7y;+wQ zv#!3~@!>(Cil9~Mf@vPTj8a8SCt7+YZN9$ydr9lWsjQZP2G49xdd^~9zIb`~DWwZ~ zt#ywxe?~?<$;^Di_epML`is4;fsR6_!mFxXmw%eQ>-mxEc9oxw+^d~$eD$HhqHmi2 z+z#$tb1Up)+v05@Z#$e=e7QAsCGMYEH9NTS>sJ2*KmWhV|Kq!RpH<P4{Iz!{lm}&a z*5+nK8hzZi%~a%{+i$U`zjasU{I`w~zS5n}t<w0&U~0|0&~&cOsqFjIbYpn0{&=zC z@`dJxK828L4<flvzlf6DWOT$sqOV$^eMxnP#q`au-Ye?4dcLz$H8>h6JMDn=%~O&6 zKVlZy$DN+eb)PG;`<+DDzk)hfsSX>Ll}1aB{47_hyYP2KF~3ppiUhZIfo+S{tMB9& z*>!2f6Q4T9{Yj_dO{c|h8U5pz-|Kl>>0EF|%!l`nWF4OteGu$;dt#mtYs-|%s}sN5 z);iZsygjec>{i;msY_~4ZgXIL`oQOe<@Kq3jouO4&wqX}jce`VO~uUZtIV}m$VR?l zx!WAsfA5N#4~s&iyRWdfb=cxHQ@3vanZJ*HvaL<?rgyIYKK|Qfdzqp3%G&Q??y@J$ zKRaGt#dL{hu~1{<NrhMGp*K0srFzBA3tj9t?aZ1LXZQ~9z04-EpCKpK@p$LgdLNP7 z*-O%ceAjQNOS|{((S>^-cl<cBRWW#3a?u*eC5Hvwws$O?$K>Rja_l#2(z^yG&M$%2 zW6SGyxam8$D6g1PI{$*xlbI_{Ms&=Lnd!+mYkIMYa9sAv^PY^6uY-%CBEDsuU2|~L zv+6~0Z~LrWniDGTI%qbRW>oFkB+=d7pks7n#y|D+lSN*l;wn)ZGrx-2K8}n3*1*ts z`p*B})af5P?GoK1=5SAF=T5t7p=WIso3c7RLtgv0<mHP@Pdm(<xb~gd#$&;ya=ho$ zxhQ_tnVL!rA4NK*W&Cye?9j&VHC0d{&92?DrLMqu@=~eu<w2F&UljlR%&m4fJvpIj z*`M#)>-S~E|LDB_=6c=d@Td>Fwm()W+pcWaR6M<*&5AR$u_*MqPYI91!}lp0@*ST% zXP0<$*;tSD{>7s~3!;|Wwmx^&<6sM4c<<g~9fc^@Q^lGljK3li6wYnxUijtFh0hJS zPB&zDO4eNEeZw9z<%jW=`{I^sKFf+k{NCMHo{{`VM=rvC`Q+4YtpIU*^UuO*oBN^~ zxhFK7W8J`<DBr)cKj}%hFT2d6IWK3-YN;_{ofypjm8Z%3LG}4S$Bs8D$}bJS|Ehb> z=5_kk?&8#h+z_^0zv}v$?(@nI=Dyg+AQ?58=QP6-micct9sJsPbPe;qn+)sx-rhA> zuHcn?M^B+f)pXx7%e8guzv=Qk*)TP2b3fa;=NEJs{xe@z_<P9D;LpluWqt<_TfMS4 z-?i0c%G$s_->7yDk)HHTdAXXeWxq7vVGfw}m*;8-8`E}o_6OHk7-|JN)lZsc=$9J4 zJHgU(EHxoIZsSxPRe_&8i@SKGbM;Rp%r6wtJ|VMi!}UJTKb=;4{-3Mau`Pi8$T8m* z-nEh)xpjQ1j8>A<m)mUmt9~rG$}Hg7zkTn16vj5WC|_Q5e`0gDn9bzHTSM>q2k7LN zZMnkF`jzd$hh-hk9y1s#+bZ6llDKth=B$6Zxy8c8_d0Z3Bp1wndt%*V&PG;$_n9VZ zRyI8_SC(G<Yhl#iS8IA^PEem5l@_WvE$B5@C5H&Z$2KG3x7=loDSL}peGPtHUcY%= zgv|-&O-iM%3v8n~^soNC!mDw+Z_3^mag&XX#d({inQ$-Or}RK5^R9(=gP)c5<+fwp z6>2&8vobz>;c<9T)D*pYnbGklyRLYfEbGxo6H1sRQ+567`?*P5O#c5prLBKkeE*lq z-&^nhNHuuk=yhcJ4&GObk9|I%d-UgoIU6QcytrT7UUe($-~E5b>~l^3Z-4Wa{ryXy z&;vVVo@SRAEY#ANYOzhO>U`a4sn0i>i>0zH9j5kZr0X7*W2`TUbJ;ZS%47S2{3jWk zPd|6~y5l%s)!J<W|3375$z{zuP|B@zd+)mikB_TMcd!T*_ANPD!++=ejrrmdZ#A?{ zcF4WBpdlPA8Pj$9K~M1%c`oDXX|kEqyF4Zs?%Vyoyt{U-0C!*Y`r`L|pIZC`-RrYu zCfdEOj%J-V{o2tyhn^=pdDc$ibo_ba`%KrJmqg~gmaBGZZYaDyX@Tu^_Wl%+!*Qx1 zin4*H+b6C3_-8h|>9*iSNwPl=+$?lTX8CugGR8jID>m)ox7X{Fm$T?68T1v%|Mq5X zY*t#{6e(oC-EB%+(5LNBUtbF`wpe$qLZj!*IfbmkzAc7LQx~pU?J@aGtYzsRY0FPc z#br&gZ$D(F>~hrcx%)G`yUd<NIyG+p=8GTZ-27V|zp1+1KHW}}=Yma-bnnTefMj9z zp6M=+jJw~MM?8vRsXcP%)$LPVzx)piXgM(ciV%AoG1YM8oQn@#ww{O-nCMi`aNRWe z#PwT3MK`0q+pe6;*6!ilo}`=Id!J*{g$5m#C8tIBG!F(wa4fzN<gET>zuB2I*-e*a z8h#`P{f+v<m398e<5}Wtwe`kn#V6(+PW%;@AT2QG)0$GQ$E|OYm6uDso*(+pqjtSs z$>A+)To)+q+IPV~L$&I2vc6Gs>;q4>q8!sRw{q8*+jA$&JxnpMvS?+P@~ye*YW&YD z>TlHdeTn@2_5PpK-8cOeEZh>VKIdLD&#d90)DOoy-1jfff4r0b+s{+i-+rzCUR(YA zV7ra_O`T<S*Xnu&*SIRgvvLQsoN#&6JMZ_7=Mnp_ocC5>@H`)}c4gCl*@s<<aUcG^ z{d>-D#zN(pvKkC6m*@QS5xG|6+bWQtdqp$&*H+^jXS39w?zm+!-~F|)_vtJ54Fwj= zNSWyvw@yU;lZ7q+tEQ7bGUPv*@@$;E>5X69ghc|kxPG&JdgNK&HSs2Ux#!g?7Opva z4_=FYo_%EJn?uQhAK0^=ytb9UvNzFYeWoU(km=LCi+zqTpZ=U9!<Kqiu6-_7wP1RB zkoSWn52C6q-MvfKWPV_qw&ZY%wB+I++3s&8r&ed%FfY~>j+|(?_*_8mf|f=xZ|&{R zUw<oL_#)uC+W0B!t7V^}{%F=6D_j3m;X@4nq~4ToLZ;8($*{Y1P1gR+`OIt4Z8gd4 zNsVW!{zkAh&Y$mkL@EA&JJ0`1@jtb{Ro8#`{q2Rb)Q+9+rtX}fU@UaQ>3oCn7Jl0g z42wmJ8MP8Gq_gc*S+U~o8>ttO>wYJ0C~%tTvT_TbQ2^6|Ac;v$4c{22`}1UNdUQ15 z&^3z{vyY~iF(=-2v%dZB%NN$&J1fIWvoBYPcAu=aII-?&T$cdL(uBY`17DrP-IcMX z`aG}CHAkc}JiH+|<>*rH%L_xU&0IX?bo#v9PJc1AP1_X~P1UpzUB?|ClI~*v^^mCN zqfnQ~qk*EId{-Hs4rOC!RJ}S$>-FV1%mLMIhrgRdyDYf!d_G6-^w6D0H}9zuvAO;F z|EYCb^qWG;t1f+GJEhGPd+?fF^XLDM#Akp0Z+-UX{T=g;<m|P$FmdYBU)Ga?wYLgp zvD9yC`n&&PLjCza_t}CNo92GB`eo`S(DC1E26rky>tS03j^|G4;Z`|&=D7chV>#sN z5^;EQ>3p*-n|L`gC-ke${PgF{=3BM@W&hl9Z7vE^3fwjM;L;f<=6I&MPSu*RG`O5W z<$==j`{#=?xFv3UT9f-ZYQgVB?_R5Di-kuHFbMxnvx}AIo)h!2n87N3Lhk#m-{Rsd zzS-s|sBXVro%#NjPRqFlsYsU9t>64-?me!5Z{^1?MQ_f}VLaQ{yeecG&(CzLQ+svU z?dNQm!1?Cm#Sh0mPh~AMRofbMC;Oa};CBzU8Bad!Q)V>ewBBj!@pFrH)|MZw9U&hg zmOSfx;@MagsBkcLNkiZrjRI~F9f96Q!380@FZU*WJDmG-m+RvO*AUH%yX9^QU2IU2 z=oQ`*(R?UIXmNyx=4-ns*;^CBC->xvoq57uc{%8ft-@NZ6YDmqaq=&k_h-*W*R<`I zW^C#H?C@y+&s+7(i#r=w=4;>BbiVQa8kv$vrEtysi{_ipoz5%>oc?GTo8s~~DR05% zCT><!WB%JtVW$nEwjOg(+~3K_C%!dq%0^+M2P&$z!R{`vOpR{Nu8^@k{r#a=_3gKE zWy`zfhfL~<Sn*)%feG4|&(GS{_Oki{*Ynp&FFdA)JUtb)DYQ*TJ34gz(HDs}J2sVQ zNi_FmJ(LOkufLU@`R;O$1MPg>d`jNh3rjBDJSg_^<_mHEG}*T8?`CAQ%xq=hS74ed z6d9~i)EW7ziDAw9%1Zz4y}P)We%Gz|qc3qq^VyBl9Itib{$An!c69!ap1;THf1NI? zt$m^qQL{9(v-!I8);IS~t#H`Y@>$+^)2sa2pRakp{ol9u@3&~1@VEcnra#U*U%Jll zj{Egh9y+ccbk1=qRDNCdxp>*Pe<yb?w%PtUg?pu;rUXZAN8rKf5BCXQQ1yHGxz?6P z<h_*H>~FQ(o+)vhlW}W3Be`s8#-zNf+n&GSS(G+$<EP>c(_8swsJ-|q6uQ8BW|>x$ z`c2+|kZICuxfYehF-6y~&tYWaaXbFfOwGbyA#RgRn_|kbVo!<Kj+=_7W^UZiyih3q z*pW-(_dEKou1`Mw-|Ba)=cP%h>8u@wX%)TuRJ4qu1edoivJ2JFN%#07d+fgZ1QV@- z8B>nw>h61S>Z7)=wYASa`8~E@nz9!vWLMg=W&OAvBgnE*`Naicv&p;-te(vlMw53f z-Sllz&JN8RQ?H%K{kh9jwPBt?nwRsp7seMKJW|N~(Yx}z)UJO*94{B!WgiH!;Va<& zyhos7kJ<E??M-*zm~NXbze165(c$+$4}LQ{a>hRNdh5n%Ur&|&mcQ}wN1S~DkLx8a zugMGBi$lKYDzi!K`A~OY((&h~HOtQ{z6g8It=!V8^`$N7L>B|=ljZmL=YRdRblS9( z1Lxn*S)e|*O?6#&z`XzK*xj<%R&<^9xnTFAtMNzT+nX^$GBd6?`)>QpmODrA?{q!G zRo^2tzhC^qFD7Yrf8VQFzu5H{=Pu>@7opD@(ml;_-*FEQ!(fSyUC;kr7Ph|GS5{aU ze<HBSxG`eV(Z4IE2zPK_vwz^H=y7wGl%h+O*Myfld^Jx^{-UwkHh5--LNMd`q>jhG z7ltpWow;d_U9|GS6!+^43$Od{{dAG-_x`N?Kcn|wV%mDLZ*x<kfaK~!Lczykf9-0m zV_g^d{nVNJH~-mP`tDo(`YrphD%<&248nS5#qN^caV#hKYS7QCOuwe({kAH|`u+CY z+~RFtmkLLlsD)T{n)<Ca;(qhDQ^wXhYDL2F%w|tN?bm`^7d7Ov{V&dX<9G8!BF|no z*{2L~Gnp9fJW*M9KC$wjX22$nA~!a(ODzg-^m>`T&yJgBVe2UHw5OV%WmEU1B@3<p zSBuN#yt}pbo<Vn*!=az5bL39Ew#<tEIZNhi<rem?yiEBLv(1Nc()Lf3=Mxil3hw`K z`0TH=yCo%Rr7G<QJ-F&T=T>h!pK!A$rvJyOYsM9Cc57sBcymJR;N@-gY}S^x+wWBd zPCk00<lf~5*;C6_TuOeVvMJSG`0h5nr?F*1cQ-E85j$`CeeaY<#d#;M>&{{gs5ZN8 zx`g>0^Gh!`n@xvLsNDWuYv8Tx=rnWZ&4V4b8mGNym~>R$Nj+Ngt+z8_LeZ`no)3?e zp9$FdsJh62%f+Tf`0@ABBMU;x7+Tnmm4&fAS+<E~vgHGF^B8v363Hd&rK$zDT2ETy z)p3rcW&TdHyqL6;S+Dx0)E4ZW#$)_->x-K+|GPy_x$cl)bhY4bx^OyUfPtowMK_0o z%@zmgLyqDT)fcDR=^k$SW7k*B65?6A&-2`*+z4ad12PjWWf^3$dxZ|YN(gV|{JY=# zn(Pb5`B&u{8~8JVe1)ypO&54g|7+_$f6G2aW#v!dlM**3Ep$A8eaXJKcPf$B<F6@e zAAUM7RP^%6<{QFK*aE`qS8n|+k=Y)4GJj4_)mLdn?m#_FF;oA(1z*L3)eqNydX=qz zd-}dFN1y$v-#WFYFX^}Rgq2a@KO1{=YYn5tx;Nc0=)LeQf5ZRn(r^C%D!;#h{e6wX zV;$#vc{%r)dM^K7?y#%t$?AvOvs*3|X-|meiwK*`Es(oN?|?<fnK*?aW2w~mO0i(I zo#$>}I24&Y*EB^#Gq9ljMdSO1Gt~~}r!LI-m-czj-Y=c@_vNlX{x<LZjV1=)?#bQ< zSuLX!BKP>0x$xM{S#h)R=I@V<PI;|%vs$0ACKgOf@JiaLpJw-Cb6a0f??aod*75Ho z*K+SuT;82foqzG^kq29o;tS+6%o?|U$~-Z1`ieiL$<Ed>!Y*t0l>fIgif-}Plf9z+ z3(G|R7c9?8aw^$OTH5!14)<nQ*U+yzQMXBbn~Qb-gP=0?g|VAn%?W*bJ3!~C!G^YT zRRto99M`xVFU>6UDGF22G*OtO_ufNevaag#ESbu>Ytt^d8{9X@aPVATqJG}NrE{_2 z!i7-}-u~ES%E7R(=HPt6J8cgeZP%?S{l#{kaqDW`W%2?>lXaKHaF&^GoqW+#V3u}h zWM<OLgO~O^5;U-GNRHneRDD*5@7)59YgGnK`<cE^4Gvx~sp*U;=RUUL3kx~5KHv9M zsgUh!op2+^>e8v0CYKpr;tw`f&YUV6%X9bVa@Gv~M@wEamMq!Z;!^PP-2PiytIguv zV}+&8PSY_G=rbv2@9Bx>>upo|{=!ZrUYVgWQN(1<lQ%CWWKOG;-Lvh||2*voYk|gF z%uF#JOPU)>mNSHG*k)(<twLmx$oca{&-GZkf>WndIx?=+Vwe%>tgo$MQX<~LB(n1R zOp~wTp8~leLONsgg(Z2#et(+&TwI%PTe0!A-+vj;KbaaHpLOp4=5NvU@2}4`&Q&}j z6RGpQ_@&K*KHa~Px3xH)*;ZVux^+Q*{m=dHnrrX<yijF(?Y_b4wp-ucuB-jW*;65r zym<1&C7)-xAFf?ru(asQHg29?WoE5?>-B`V?U@d_dq+n}d=*{V%-bY#UdgagU+}7x z9KXV~L@R}30{3tHe*d>__c`{W11{w!ekZui4`f@gA;4l~g%!s!ceceY%T8Q<`CKyE z^5i#z7iT@^GK5t>vre1DWZJ?1lv_c$?pCaLy~Omr!q0cJsCV-99b^b(xFyND%hqZ7 zjTz^rY!?q>iPSp%Fm>Wi_cD1lv(wL7CaXLWXl`8fLohVOcbfQFrr4O4l{c<7Kfm_9 z_}vSKSC{?Ex!9Bzg#O&h#h95L@#}lBjAm}HMsQ2iqXpJ09U6bt2xbJiO!wZpwWmh^ z`<+FJ4%<7J7p%Ycc$WpU#FQ{|u9-olEuLj2C*qe{+fR9xmiD$|igxvv?l1o=z3Zl} zYxo$jv)6j>VMVoeZKp72gN>pS)wfDMoOMgFxYg3KV^-F5&DH{c3ymwk+4uUmsoYqV z8Q9hB8QHvG$K7{b-`7u@lW_CWic=X)k$ay$T)l2<oj}hFvEx^bneMHUUQ}sU=05KU z!_9T(U$k5tE_ol5FD?6P!!fDRiDl-g2;=9uy$zX;_c$Z0cIgI9oqO6%)gbM!h~&+( z$3ou<XEk5c**|ZIm{<!#Aw$Ih_6bM1?8?_~vrCJ8{G#vE0Upzn5xYOGQ*pW)AoTim zx|pimefD+z@8gRDZ7sbRYqREyX-p8e?N>Un*ZJZx(-P5bB8<_iRx@Zm@J*dCwPV`) z_xmh=hsXVF`Fq8`_F~=Z`rp}SFZ!y~9g1-KsW5Nv9A`@{2gNx)tX_8J={@t!cKo^> z|6BI=J$}1}L-FsA@=ZNaS(tPD@WFR?Y&YLM%d~#kyDfiAkJrstdG+D`$<43IYJ*R^ zo!6VU{jTF2Zehm2Lze4GG%x$P9C2^_y{}+p)SKLo)=v_@wcB=9I849e*Yj3tfBMrm zGOu4hZR1+`VP=5Qt1s4Pcbu1<+fn<jZ`GT<HHs>m-gTBW?0k29vgOp^6D;Ri)uNrO z%mw78sPW&j<~lD}zvZ>(@&L0pefti7=5YwVU#uM0|I0e9Z9;m(wXmBu8U=mH<tyxV zmDlgsa>8uV1kpK?oZlXNZwprSFSgeIUYnlyg5P6P-;8CwtdAVuHJoc<-(Hq{`V8N@ z;0(Knt*&mCBD$gunu({SX6{pQs+%`&k?G`vr;?n1g*e>lzQSmzE5y#vaUz7zd!BK> z#qtBJPrWB~?CQSsYVFC{`ImJXl$SqlE%u&w<KBl2=eoR99lIy4D{XwhbnVE3NreI| zYy24hzj_mYaIUVv43_UrFIRi)_cQlOc<P`mJUMXvMQQ0L`z$t0tkhQQyT1J2>%>3C zb1!a+p80WQ+|%npOIB^0u;0inNA2LVmEwoAehTffafo+SQY`TK$h>#EOzOGF3tJ;6 zh|Se8?GumqeTn_Si(o6Z9b8OT^jKHaKiiXA$2wn0dr^4iQZMU0&V`e7mzpjS<l88` zCjWz0#oxwRM<o1hZl7p+rNh3iewAo}TXwL(-bV)u_D}e8(uh;R$>85)RztzP*Jhlz z+rZ7>)^U)>=*HiL{{OvO+p_%5uw*`w?D(*ElEhP!vPe~34$Yg6r^OocQgXObbaY=Q zC<Si&Uj6l|{|$e$=l}Qrtlr<2z!0?CNy*^awj!n~1@_Hti5s^ZJLs@c>)aIkyM4Uh z{x946^B4cywe0VWziFHc`EF$*s&a8{(8~mw%z{OU_0xB8s3^|hW4^sGVxqkxN9xW~ z>TyXAd~PN9R~?&m#p_f<^w+${DUMcs4ZqJ?y;>6fRqWgY#wQN^X(w(QJxFXjZL8@h znZ|vKd$Mls`qMm2%#~+DR_Cvuxn1_6W7~eGIg=8qma;w&QIswX4K&xh!OZ?fdr|MD z!VmUxYqk}8$T>Z%U#yehep8awr!nLT#|4$oF}962B}M-fZJ(&)`O{jaaaTpHyyJ!` zp5B4&Q#MXM(X=AN@d!`Q-Oi0X30%M2SvxO2JXGewSJPE&tL$hvxA(A*Nh8DcG|@NN ze9o7SobA{UID6{a5BcW{YhCY}UCP+NvFwR(OVNQWmP)~G29qYr|6hN*nV}<vHED)i z+WX&nx1Qu3+f>yb=)X*O(c)g6>0dQneoS4gYRq@wl2Kb??yQ-9*H&G$kmEdgxMX#n zC!>_##iIF9En+THZY{qu^H;>>RlgOY7BM_j_0B%XA7iB)+?5dGy7D5|w37Ns?BAqR zzMK~2e4O7LHCgHK)_=RV&aPlpJ7K_9{pH7{UlVwH|3A4fyLV!`W#sw9RY`N-{aCyI z`6a)}Gi1|J?SI^`NH|rH?cXa|BFU_?hW%ORYMBM+y|q6HCjP&=_efb_LfFw+@z?tK znvX@zmE8C)cklP#6XLEJFPVMqyr{+^<|iWJ#^=p#A2ctXZ*-w!^4n|M^m}%RO<vxS z*Vg*K@qHEl4h!ytO}hn;?wVmM?4$L2<?4SGwhWfjcUu1Uzv=(?%k($z|2F?$V)=jZ zve{SvRYt7TXm^>pI*4uS^uV6#{G16^TmSCQ%is6#+<!*qk4L86<~#Y_A>1qL?d{*T z%nes$1(~-<ecYsLu=@IR%hwIx@5XG3jkA0D*HTe5rXkC)cH(cH9kT8zw;OK$wQZA} zX(w}9z`(fKBKY+D;^G^u6IQHx<LDD~|A<Uu${bzR=hLRy%B3FA_`gzHWl4SZo4r<= z34#wTj1#(je!j|TU)hjRIQzwsO_OGyKCS*HhsiwiWfg-EEBlE`InnH0YAS7Ky=@D0 zY%jR(_TPOxyL<V8&t?U+1s7SrmQ7l9R!Ku|ZoZ+h#(|KtbLV-#`#tN@UQsjMD^i)a zyLKsT^Rc@U#x*tIttyMy+qnF^KfliR7+tz}Y0X|Hy`!2J<~4j=>>(Z}%V$&EYg_5q z{dCXfbhQ|_m*NNAGx&I(OkDHkME~#WZ@CzHf?uqPxaKL4dLu*QRByVO54*tsO$mkH zTD0xvDH{joF;re!)Ev4-_{1fq`-N`b90QY9B!ATPU@%IlpK&?&&WsZug05u0e4t%b zxmZl&+fL7)ekpc&S;kyfQc~BN$Vtp8OgWOH?fyz-Z$`^{Z^P*K$FB=nt?z!kUWncE z6rbs*?S~U)7RbDCx;$03uV3><;8)3yl`*bA73}z>S|c^Qx26jC2drGAdh+bui7pGJ z-n#BkmP-CV<AfO#>q?m?M;erNF-`Gzjga54xTm~CUFYC*BkTE6(<8c{M{(auw_2CJ zLP#)wvfri6np?}+8c)AJc>Q_R_bdB8zu%W`|Kni&%GZIu5p6mgQw(`lX)iWCUR7Is z^8&NHb<N#_vV1=!LzhYXDxL5{>fG%O`{QfZTK=E^Yt7&0`XAC~f65!wbT~(4@lUE^ zSoF<r&weY*E(@-Ga&^=E{3q4^JsqDpbN}{Vdlx^SzT^F`2C-7l7dzLz{#B#KYgd-6 zr{4C^=%ex0h+T*8<=JJ)@BeQ6?cQbkEz<4JxqoVW?kg6QXz_Y}*i7t^(}eBc`h?WI zs}xKF>zksSygwvzZD^a=+~B};wtU9i=@!SWo_B6*UAs+GO7NfD<7YBly%S}=JdkUO zX1Cn4O2u_ewf^ni=qWqy7(SJW5)9><acT957;pZjh6ZNUTOV#F?$Vg~X{qJiJ8||; zxGmP5tbVon+=M3f;AdyEWuke`PCH&%uX|hZd4A-L(@rwqj3fE3yLfCnd-0b=$rP3i zCmjwvvAd^z;@;;<p5_$EzLF=E8zkoP{A-?`b)m2JNP*ldwH(gt)>7da^SPF(-OE_- zV|8rH)QV$vcZ<TbH@7s4-Ijb&VD!oJ2IteK975g3*P2c|**Kq>|Ih@HAI8Op68}zS zc+mgwy4J2@VWZO*)*lI26hHIw<ug_}B05prpC&HaGsi{8c=g1@XO2haHoV!qC`a;4 zhwLK(&ERzJ>wA*6x;GrW73Rl1+qQG!xz`cx%1hawP28%rQz+#o-^GG0_js>b3S4cv zF@r@{d~f{Pi+K^h>Ye|z6m9BrdQ<s6=%Lps841DDGsAiLJAcPrs(-CyZF;TQ(aBe^ z)p%2%lx$DE+GX>p8kriq*F_$Yo77gNmX;ITm5}`Qg!odYG^K;fBi3EaSt}H=d!mIA zM;H6e+e(j%PoD8VwXb>_^P_}fmI-t26~t<%FS4)tbENKj`G3*2$2uHNZGvkK8uhck za1(rSTtlLK+ugkMiw7TGsA`&Q^QCs*tLzKLkJc3(y6^x0jQCsmf9dtN`+@}-rg?OH zEe&*cz4+OAS^Ol9j#GbJ4T^94PqDsX{^Za7taI}vQ@%8IFP~&~>#_7(b+$RRT8j(k zR~PI#n|^`KBIGO+!@aZnO0GZESnKlj-_`QlTkWq#&KB({Tvu}|CuPaxZ>=&jm0k8t z*V<}q6vg+mm~X1)lUE$2&StR^8v>ht?ywL@c@?C7=I6}M9oCnnbk_HNJ%8(PiBTz6 zl1{y`_Kdiu#b;PVrR%~zoKDzO@8aqGpy?f(?+KGnRp++r-|qfie{A3PfA4P;#+?(G z`E{}Gk|(+Hu5YqWeTuvC?sC%gL;n&CGxi@iGd=d<?`Nt9UYKs}J@<5)r&}*$w2#rG zFToqqnNMmP>U8Ws{zUubpXupLKcyIVoYLPC=svG`Mr~l&leD$@1sxVyGfrsdSl@I0 zGjE^w-07;DcFer1^uK;KQ^Td#OXlV%xeI^V-=Sbz6}ooHbNvVTS9^2ru3C1oq(MG7 zzgkO?Z6eR-od?<2wmZyr<Ll4Ojdpure1G<Dv(uF_q8wYa@68De3l1z4J$~TBWrd3@ zF&gc2MXrjuZA$!-q0y93`o>K=fL&&a(aS0knG%i41qXG67`ZaT1mC1|{@6Y7VAK&C zD@i9dBZ-@x*Vz|a%s%=+P||*1%_U>0kk7@*1<9vXT!aPtG#E~}ZaC-8YnS-p@Pn02 z51t(Eli_{k;QmI?W=m4{pEcXO(u=h@UX*5jbl5e)+vfO+%vEQ7wjVydw2pDN)1uT% zyo$z09~bhwOy9q$fMdbYb$`2KAKv7-a+>3$TB=Ihyq_nXCfj`SwPUxPKXuaM?De&m z>Yk<79s0-r|M>k!5jm{7TUMqT-Z<^_@cT{IKnWHNffLEwa({n*yT0b^y@KceuQ3OE z<X$O`urPHIQ!5fXwIn<E+sufhgxBA5<g4HL-}L3qyEp$|yv(Gfmt>aKeBY+ef6MP* zLs!q=eavUIW{58+lh=64xG|$~_3GQc?CzWNCfrS(ukqaRV8K1Tmz(BKf6#03bMo4R zQwg$;2MksySHF8a^SsIm&J7Q@Hr1^7w$){3#v-=Ou778K-!i$G=g^CLi%LY>IeotG zDe>IUvgL!zhB{TYkeM^nnhTiy)@psaa<BG}Eca3WDcr$te=j*@Y4uRTc{!h8h;%@o zjoBCF`P;Yt4)DBip?t>vq;Ib+-~F(e?EJ3o{ql&*ySQ>X4LZ4nm+ZP{G&^znULUt5 z*~h9?d?Q-U&X{M?a>Uf!@Ag)kzyeM6ch6sYytr3iueT+9Wza-H$$e4GxmTAa+J3ZH z_;&T2X<oq<cfAk4xK~ieDIz3!YUw6{?)<~o-@anvIKlqUGq6H#>&wM50R~Id*k4<v zb0<Z;Ey%ni=lS=-m!6=2h#+gfz8s59A3C}UZU60CbyE8@%NbMoDJwfy%BE~Tvf|dO zOU&6uhvxj&RoDA2HH-1%ziZiRP6-@d_`9*|w}@cphMx(iZ-jQe{~_*aWE2(quPm_l zvH7$&?6z;Y*jBx>7U15tlhZZw`s19&xrbLAsO>DAtz_MwVJqXcz((U3pZ5kaent1Q zp&ssQWh*<*Khr(3d1{AW;JP!?5gcuM*DfqM%yadKlAc4k)5MGIvu6CCom<Y=7$kbB zS+Shs&0+JWue<{+R-apY&1<qju)9o3%bOL?y^qgt$`Eagn^HN;vG(oO>Cw;r3xAvc zfBt{Hlf}lJbDVi)n>12qx?XFOe7Pg_>(B81nJ4zyNwWX0TK%*BJ@3JPyUN$)EHF5z zthkBoShdfpD+NmP+8sKcJzEo(UtY;uvc~P3PE+;*X;s6^k8AUFT?!{{^0q0yziH!f z-=>7D-(QOaca}|UvE+Q+5GuDvvc8vnChs}^Ej-WptR&w2=6BM&|9{0@b1j7}aw}9{ z)M)HDYR9KrWtBN)hS5*ndy$9r7~h%Rn!YJ!x?0P#EgJbn7ayAndke`KY<q2c=Kb~s zFDJ@mzVy?7<I0sZ&!}pP*`wOUrn?L_8m4`3T(?orPOnip=UMML-H9u%M8^w%-w-(G zM0|5m%GA5Y-#%Q=Q{K}vbLqqdL5=0=l?*(c$!bMYlm%|zZ`q^DcFFaey}*WZ{Xv(u zY%{G{CbHWrRq>l6t3kew4qM>#Z)+B0Md_^lp=tjv{$}3g@ZM{^tHg{2Em!ePZ9T{% zI4fbv>eOQo&u$476AqZX$z<#8l-zxLZbr;!eHXv<#0hERT|p%RY=83tpA{+{SN^Vd z%~-}O<xu5fU)lAEy|)*|WlvoBDQ<<-i^vO(oMnv*<z$Y9+*D@$67I{Be=v7%p5cKB zRxGb18UFfh&FEfSXvBT^oQnSIe?P=h#k3Y=D<>@qYFc+#N1@7gxtz=rxh*;~=SFg{ zE}ighjeE35e$!up8*lz~IL5HM6>UH0vVFz*zSG8i*_Z8|CSKT*{o~#v*OGL>@B25d zv+irOek7+MeC*1`w~`aP9WvK^bLe@Sx5xcjm1b!4-fQtE>mM9D#l_M*@$Gppofksa zU3X^w{}CSdH{|r6{Tcs%{(t#CYJ%b4iM`EVo*TD6T2dFbqi*Zre=31hrx)$N7X5eM z!<_o?AJwmOS;I=d)&#{LSCzOEHUEgj9=7Py7R7xB-u-aCEq{;IN$|H$%6iVm{Ej6n z-EaSXvH6Pl$6D@=y%F+zl20zOVO6-!{&EMK!=hL7ryKpLUY;(k=q;yRAv^CW)3)ED z+op@Y`e<y>vtWX(ieY<G&4d}L2AkS?cOAa)y`=YyaCQGup*KtBeEsQpYRO7|CZ=|d z>(;L-Rj+0!1y7aK59Z$%yQX{2oJ;$UXVxoDGd``xx6AKc;(d0Vk89@G{cEY3r^{y` z+HLqqMB?%+iSM>dkzZd(S4iY6<T)rOkgCh{?biPVERoX{Ce<vIecSA{MC|ZApRAr& zHC|$>HmXg14_fLx_PBY9efORsoe`e=UiZA&ciV{S>qp-H++};XVUBLM+yhQN>%$eY ztd5$}p4n}-OKbkhOchdgV4o1ML4L}_gRvzYVV@5Q+Pqt{u18eoSjhplIhPMrt(A)P zYVupUXqrk1JFiHivHSlur`Q&5xH|RGk#(j*$uSG_@&qb3WuylFy=5%>_uR>oVsE2` zUu{#-s7i^ho|$lxLtw7;&10f}pIzXb@%xt1gASiFIxaRVc8R|an!feLdh^%16YuU^ z*W##^_@43ak*OEfpE9kyys!Mro2(?6MS-VOO6M+iX)s`8a`<)Qgi?Ztce|kDJE=vw z1<N$qD!Z$`oIk@TAjEJfIX0Dd;o^kjawh~>J++yHqgOh$_RriEFf~)?;_DMXpK;vT zb~era?dmiCs@NvwO*oyE;N5ZJh?Q~A%$&-uqbC+FF#cdyzy9a{^rpYD2a7s<%1@kl z;W;_dW9E(PsV`YL43$#;-A=jx<8A)7GymPs{@kA~_+#U|IfZQ+nbk>(+gLtLu@|<n zHrlh-hB?Db!0<l%Tgx4Xm6+7{JR}lX0$iMai8yG4?|Nw0kbLlpsaIw8InRqlDPFI3 zF>m$E^nX|I>t<&2^!}1p2@_7Abn^CSl&P?bo3^U9JG!K=B*Z(lMQfk?Cu3fAn+cik z)>QoYb8HvSwqr$$|J&)#HR3SIi95G{Q>2QfkY$wG6;E-crjX#DM;7twUsEpexn<S! zou^S~3bXQoC(obscE_gPey=AwV|~K+jO)yf`Q1U$8vJbGj8>X)<?<pTRtxh!g`Em( z%bfq(F^17<<9kK{`{iqAuNKsLrf|u5x%4%YQ}ci9_BfsKm+#7DrG>)J58nK{Ve{;J zFCC<3uri4)Z2QPF{Rod&n_JSt&dnQ3lJ54ck8WmQX}0EbmYRCE<HfNp#uDpRrq{{( zb=S|>IPHF?%}V!+g0=mRPdMM>kJ-X-c8$?>)*`Mj6ImYK>=!?rwG>n;CTErGEx)$q zAahXY*_-ief4`Wxu7|CX^RQO;IqrvRLt^_mCmOuIxHtZW$R3WryIT$~Ha<G{Qu&1q zAy*4@SJuS*a@l<^Ga&o9(GhjFP50eDiLr@k9{bu_JeQOISNz2D%l|oBl?$5rF4?=} zymwU{qi*}Ic#rqT!hLrN-&^&AM=?a?)}LDY2Z<?PCq|ba6#OAr()BX&;#|XscDD;N z9|SAR)Kx0b+7-vUt8*)#(5p$AE)R^pnkrYWd-YK@dd44>sC}PKslQ!b_lx`6{{QX! zGmjr;IeBMg;{S$^%D-hL1XNg8XKw8;_<zHXM=kc=cj@?lZF@h)p8s=SFiW)Mv{HMf z*w=avW7TNM%X=hBCdM{j-FKI3>jas6dE4xj?|08gKCpGcMz;FeI~OuTO5b&?7f!eQ zT32AVam~hE@1`4k6aUQMma<3gNyW3buc{2Y!ewe!8-5j<9#d*3>Y!2KbMf8n?~mf1 zTQ%K1v8?%uc=|66lVl0MDuD~@i|?3iNppGj{`%Ad`3nv$VUKxSv1seAi_a%{M1PHE z`LvPMd5=2x#?wBHS?+JTt{H{|Ft>VdD|sIBIzw5l$?e5qA(r;Jt#z$lftPq5O8S4B zDE`0e?(W~lxsv`9a#)hC2$v~_-g!QIpL|f%IVKV5%L=EObG#p^9F)oM5Z%;fI<IH0 zmG@19rt=<J8HbrWS8sbU{fz9&hgBJ}c_%?vUA&w7Iq^OJ$#waBLhlR~3(pbo{B_LM zUOJcghuxf#O|xIi&e$|hb&88`l{Vw~sNZvi9oqK=zPr0OTU`8kS!HGJ@ni}4RIgeE zx2?awzfW3MetmP^`>#(fUjBCKsNsaII!_O7Q;e^8cgSjqYWm-U?fp|rCj~Ie))g|| zk+8XMr+&g?-pliEOZ(;HXLV}!1q<oA<OP^D$IjuqD^XE>b7QK#zh3#S=Ls&CIew() zNq?y>Ja%#E!Drv(KCOPexb=>H(${Tn?aG@o{?93laDHl6RO<9PGIX0jDuc%Mt^4Ed zShDZFv!?9v?%TX?{hh5t)_*?yX1%|X`Q5$6jG1xV|6G3mSNC7Pqe*saz=Gs8{PX9` zDaaJinRLF;LS~nt5$6J(Ci$!L>i->D)T_Jh{lj+uFP6D)V>*`gyUv@q^zQ!ub6gcV z3=YpfyLd4Z*S+%j-!Iq|U%vMG-QMD8m;RcfCn^5(-}SunXk^{AY}(3g&v)kDd-KJ| z#sBj`JNeD$Yo3Mvw%-5s^;=2942k0hoi^W3p5SYIMg2CfH^cGHSA9WdNA8AAE7qu< zbMe*p2XD*Yrq$=3x2;b*_^jM;{^5r!<O&ocGt-xCJX#);b~pOW8z;VkZL7UcYMfp; zZ{Gc_k5d&FZjL?t_qTY#snEVl@>d=ozaBLIOL=c+QLca7o$Tz-JN}-Fw13Tb-LB@# zl_vHC2g4<*1}QA|<$8KyD!cET`zpKpp6rVoT(YI-#B0jV*5w=v-d+BF=efX-|E*>6 z-kf~Qzg7RwtSe8G&xmZ#?R`IIK8Mw}uR6K<@`>}UD#iTnn=HGQ%IkOQeQ!})%<;c< z>~~pCF@!Jtr~Y=<`CD>x-u(F!cl&Z+*h9&$n=5BDw0h|Vt(YhAyWFqq&4UEPv|pcI z`dTk`a(0|%u`!_kOLz6Vf3jSSt`ja_`}}dT?qgQvOHW-+XTIOR`EdH)4}WY~J)E_@ z?``g%|M$edv(@%SexIUW_H!f_NdLN1{CrFQ)K&B3y6bPuQ=b|dUHQnQ`LvTrN^-LE za=lr-R&wWV%@1Y?%uCP9Q`@_@M98Oa&)d1Vn;Dm<*XVZ4@-xZ3zIXS+S?PHzmMjjP zW9gLF%<pJz{e0ezpA+wPt&bLFu&FCj-5HW5?!D}!$A+wycVA7_OFyP3xEMB@ezRgO zGgq!z%5#Z7Cv0umX3NdLzrQm!o*KW<;xvPWPG-ZI$LjtfM}w5@QktzJPaZ0~bm3RM zyxpRff~#vv(?Xl;+9j2Y8l>Dbw%^~mO;4{WYQxuWyA)JE?u}7S%yUcJ_V=sf#r*SI zzq~)V>(@ff-I?z<-hZ3eV9>I7@0(}8q}FrH2(_DdbMu@H*6SV{ZVDBA`)Far6gd$V zjmx|D?Ao+?b?b-YD`H$Mw|f12pKc*#^?3R8>AN}&8nOyEy|~D~kNy40{R^HPm!9x9 z{F;)(niX3ES9hFweYo9!_F>E1HdWK(R)+&i)^V&WY<%Es`SIf7>~6*oxf=m&H+l{J z-!2vZ5GgIO)}3E}>Q=U5n`>wPpK}oS{$y=l-j-!O*Bt8ShsXb2viHwP|6BKe-QM5C zpgV8(|6dD?A9}xdD!`Sp@yUZ14jPPA*X+49Ei)bOT(4R3zI=arzWtAYbIt*kDN$+} zCagk-3lHxT^VfF{XzS~Kx|Vfol4lZ=<}}AoDgE<ej2??v>S#Xj(Q4Lx!8p-YysPrZ z!=*-d?|eUDbat|1f}dXaZr5r34oBt|s9Ju!clWc{44IpDGjzXfeo?TM(<bBRgXZr? zxkUxnyQLpKWGbZA_PX%N(}xe;zOR=n2~Jw5ATjx$k#VfQ0iT6Ad(8in-&o!*VrR*W zj5h1Y?2fp0^=s(n?1`26(;tNXk$twtk?*Nx#jh_x@6F57{oVa$?7#lb`eY%u;D)Tm zOLI;%rmKek*;6UM)au;siXSg7CAGC*UH<JIJO9*;!H*Y~E%B9Af197je$j39=Z@P8 zcoyX}xrt~8%)3=tbEj#Ex^BbABRwfOS3mp~_nuw2t!Bn__Vs(S-B^llt!laCk#Fg9 z$J2awHVdbt%|71v?e1JR{=2(1_*HC5*d}JU^Y>w%<xgjCcllqf+UXk~*S?f#L)t0n zg_hl%F|m@}7j-Q-B-UFm?DKr*AXsvC#pJ)6uO(*2ZTf$m|LR6-qt`X9mv{r@9WL4( zPxF=d(y{a4g3p0%VF9}iCkPuE9|~V7|EgK(k)LXc+Pz+hqh>F1T&8d@tKP77W81~; zKFuQM;;-Eli?C~An(A~dzEhO@wG89ItiUSA?QJ@RT^x3G<%_ewUeD*WbU!As`K0#o zelbBK@9SX-C33-sHwdL>YQJ6_`gnqSxTm^W-;)HE$@`W0_po!lV9~Z`e#UbmLO$u} zx2m;r(baqXlW#9EuK8|ZKV^0B?1*U-c{{|q#Si<gvHq|B_lfwM_kZrjw{Ej<DJqF{ z{<g9y^3&nm_1hB8U6gcZtBHM9*4uu>Hauif=E>EyU+34Xwfuj5_UHQf-`773{dT6r zMAo`=&Ie7+9|E(UUMQ(t7JaBEpy-Y9!GED|D;9j>PiR@Z_q;~D^dS$HvalCHQ+z(n zoHLOrW{Ma~zPI-Lo_eJQPv#1llg!6Wt*Y)A{$8KP+IQ|?LA$`?i4V{Gkek~*G2#?Q zP(l0kyKGy}OMkk%?b*802a(^D56|Ib74U4Vz49mae&d5k#w^E6ch(#T;;EaRd$&pY zYRoM~_Y%F2vo4)HfAO~eB^Bmp4h|g_AF3+kzO^3|vrKqB|7c69a)gcF*+kI=J7ujm z3J5mu+b?4{$-uq*LXwW3lRw9a`376<!`^<>TXOYwT)NGEk!p`qH8~4;OZ2S7ayXX= zub*-<XhpEzqFjN5Ao13-$5k)HmeyTd=lkH~ooVZ%udvOqxPPZtc20r8zV2lVU0*If zELYxYHnV4`k#2O0euYMcNrad}O8=~d*|Wma-Ye8kop8IS?x$nlD+d4Px;}yWJyAQq zIw-vIuH(IOpe?gl>5h(OykXesE!RsY$y%Rwn3dr6zH#4<&t9jcq@)aO8NPJxdmJUc z{Mm%*w|-ZN-Q!GQ{gCwb$u37mQD!+QZKEdbFP{!4u6`z!93#$gOzh<Y1Fc=HDo59w zXcS02nd3RZSve%uZRV^K$+o}xZz<<_EfuX`mux!YBXjHD)hWKSn5HFpm#8vI_q?21 zeE4f_!=D{natjP?I<&Ih@~|(z(!I8&Q$y(X<fbiUOAd1|O?7=%x~lfU&0{-j|0UPo zl(YG@uQp=+2itImWNGcxl+E)T#0?LcdlmoFzwKZ1viRHV|1Z~@+$etkQIR!&!?U-i zF21_v#hBW#xqM0DZb=4H>m&BPb0&nBo9uWT@J9RpkL(HGYk$A}zQz3PD=P!8ea=x$ zk$P|Lyq_q`)cx<Ek?7?Un?3Co|LuDow(VN@@{eCP@h^<nGWX{!F(p~eVAFnC#iF!- zam<lFN^fQN8a0Kf7f#&&cn_oH^j$A%eU2|SdgC%X;APK-daj9cmmHYm<SaNN@1p4w zM%m~heg(&0;wO(RWtXp$-~aD*{q=u0?f>7M#`^!>rO@`jR@yrR?<YTq3KlI`w6{=6 zs_NN#-8QYjN56SeOcQf-J9l3Ed?`CC^k$OcSGCkFf+d^h#a9_Mz2iT#JAf%z`NpM( z2P02L6!V?F^u6%hU#oHl&mYg+=bEpaG;NpG;*C0isnR>*tPlLT$aS*6C%gMqb*uod ze^Jqth)-NIr4sGE)sxg5w{dB#d9iEfbVn`Sk`J0k|K{avWZhcMxFq_CS^oLC2Of4m zS$=JHjK$ma8T)JlQ>>N*Fsv<hTf)C_mP@K>`LD&BqAcobT?9|Qc_IAYYs=~xN{1)L zvd$Gr%ko?jcrt76%TGscZMazeJ4d@~@-eqf2Sk@tC<rhtUdfei*ugU2U8qmGYyYqC z|Fix+l&?9y@AKXA%o)!zmQT9u&E@37;g(adcvD!{LRX8+7oCz%DfIeTw|_n@#$4jH zvi`};i1p&^of}tIh)#9b)U)6ncf98<-a>)Jb;~a~@JA(FVfw_+w7~BAjZ(*?*uZ&T z&n)Ha?B%&%bvya(`lUtDQe19o(`RY~rtD2qw3_<0Em22Ahei4J+0fs2eP8T(F-@X= z!bBVM_V2%b|IZb_`*1UtX0qST*OJAl+LPBGT)qCn&;M)p|COKoJ4i#ecH7SG^pd^* zCmfu!*l8wn>YM;GUshvIKmToO>-J<aKIYj`nQ`#I^#2#9zwI@@w{83Vsspy-xixop zun9+<J8*?<+7`BDo_RkWrRy&YbD9?A`l7pN`pe?3i2EmYYMsp4dslbf+*>=->eUP{ zS*LQ^tn?AMbhj=nZJx|?WsCC-LAz#&K5VOxh<H%)YfpGn;w+Wr3MOB3qaweZ(5eoZ zdjHPHYIVm+Dwa|2h3vjZ-~X5X?aQm$sr_6{${&Po<Sm%}Sn9b)NQ_iX$0qJ}=1|Sw zZ}|mNGQN~(-Fm%`X|^0kIO~2Mo-OLx6FSVrxRx&alw#rWHq6%Y|M#%QxqMQS76!AP zb-#6Op-!r8iQLc4mM>%i#9L#HPF-QXd-<mK$4Cnm#V3n}nr`c+{7=uA=-SYEe0@~C z*6F{`Rvl1`o+7kDb_1(cic;UPj`F&+i<3mx#81ts=K69#=~Z3XgPZ-IK}%B;Qr4A6 z`Z`WkRalnfeSMxnp)Y6ilohQT_#U6Rd3!2Da_)tuHXa?r1v~cL)NhNwFm=ZPv2%J) z0%qo>@G%BmbJ=uh#jlS#AtAOeg$#-!c!SnoomMv0rOoW5L*(TD9GuQVn`K${zss-t zd|KfA0zFICwig#e)XSNhPL{|#Iygf?(5pRXW7h1xBVvLVvJNT8yqK|=w>z?;K=RM7 zZ@;s-#Wu|Rs<XRX?1vQ3LdSIu3&O6J7-zM`n4jO|E_<M$;h*Wn3*wUP>oy8}{Z}AV zxZ~xT$GZi0xNH!NW$19;bj?0sLEnWf*E2gVo%M^%iZxnu!tEE!?t8bUUHO;RAm;7N zux`E6*^3Xo<mXnY9)G!i<L23&!MB`RC&cS`1^cA8uGq4F|F2Ws-;V0nUaR|SUUzie zx;%j?zrH3o-M=yCg4xZ--q+r)R673V{L<3nC+F^)Y}P$@e%{+he|Q*={C~Uu$MJ7f ztAE;8e3-YfIx%zZTG>v{g-cUpP82aIzkhG9CiOP%T9NwmnMn^{+?xDw-P}C;>vf-w z<bAW>aC&vSLeD0{v_~_))>W6gaXhH~|8mbtdmGQ+2il*uI3LzX>scTw*LX0<bBW!x zTt`<~B@rKqtjUU}mYz2)<?Xy<%%b#U&+MBl2RDBaQ?;7CPS=8ejiLO+iPl+DE<SWz zl9!b_mw(T;-rA!-Su(!MuoVakaI^{=v6Zi@jyHOKXZ9SKCLw+1ZKdBE9kvPSMtcQH zFN}Acm{#&^2CK1>z`;1BBlnb8;*KVFJuo@tXF9KW`dx$HN1jW>n5eu|wf3=B%Jf^i zfxAoTWlEY$K=7Lbvso9KYTH}9`tw9?!cDJE;Um{e&M*5ERsD9q@j1<tTe_z<8Yg=y zxw+nA6kJinXxe>L%#T%h`;1^A-D#))Oz%t6@_5^|eEWmfVucJW+M$1K6&A`!rcYSa z)uCRsH{rmo&akwL&*PX6d3(#8iTD0>@6xYO-D7DJKHgie&f{7?mm}F|mCv76wH+Vl zO#h}oX_I%kUf||5A7SZ|?2xmM7{7bQ{a#d;?0PxU^hMI-ue<E#{F(GOZ0oUr@R)!- z*N-G9q~F!|W;gAK|Hql~;)SG3nmqflFt;}I4OebAuMxSl<?*D*6e~x*guwW%99Etz z9^R*~nCvT6kcqLjYTak4v*6deCtp|FTtAtlV#w*RQM|?Ch?Qsg9DlPpi8(y47(e_? z{<CF5&!WPEMfVIQb=tmn<?5~|i#>W~|B9w>XO4cK`|jNTrO*EC&)ENM`@gDU7HiA; zz5dl{`L!RIYv!?c-u<!OD!xW*S^duSyRB?DR+n!(`}6<xZ+GACxi{y(^IQLGRf|*4 zhs~V3M`!(s@6p_E&gq|f^K|;VMgQ$Bj5yZKtv4{{u)JAw#O~{(`5WbJYZkLITq*o; zP+P8N@7uX-=GCcn+KYMJ=6NirsBuqw*06f%&Va{1IUmgpcMSPZvT32UvZtX?dRoC@ z|DEqLK5~E2<V{*PWd-ABO9gH7ccy*k<4!cJRA&{vnYX~kLfClze+#?(ITy^0w}e_Y zscwl(mA{wGq+I)A_vC2Z3Cl!H^ry5P@pqT^`!J`7r&UUext>)}EtcWb!*|ouHD^AH z$X*o5xRL+YpR74fFYdHGfAh5e@0QyC2iZ0JuT;ESX59GQ((ZA@+Qq!5@(#S4A6~uY z)}sYiz1Hm7J3Yeg*CGEK*6(XC?EAh@SGRgGQ)XPX=<#OH>cmRH!jpS$g@^vunikkN zVdERA^qS1d-f8D^wm*ISjf3&w!p&*Qa<kUTn=H)zAD1#`*_#b|rACh#g(S}Hzy9>V z#Uom;V+s=L(rV^JJmfy+eL~}E=(lUO!F%++cg&X7xx(@N^uc!ry+p5Mim^yLCAipB zblY9plKO*hV%w{*O;0y>v3O5<#<=2}-$s?oiPI%|)7p)t?LKW?_G{&Wz%>2BzNFY! zL6_gWmbxi^eSO(_op$**8L1&(j7^08-V07iTK1Le$kCjY*LBZdPuiLtyLS5~RqY_Z zHC3;dOi!KKdxYH~w=kLKjoDp=HT8Zi85e3ZV;>(5-e&jyfYOK4YZgCZia56LR+7QZ z&#&0FY?@{8;?}?TAD!oKuK)Mzeum^1#<x?wB~^9)tSJrswygB!sczMkN3MK&dH3GG z)&C#8{&u(iyX}=f&T^Ke9F`YXuFfru^xuEanLq7MMD3Tw@>})mK3?7^oWr?er`Z&% ze;49v-qzhdX73slaeMjyZ{Op$m*20wb5AQ}lJE1QA=PsW_a(o*`QBb=uJ%F?_dZVd zbIbPe@7&Hc$DYmP=;t}HvmYLPwnOi>-3~FPiN7P|!ej)~j-A|fV#*u0lwBL|pY#?8 zQuz5!K<!h*x%Cf^{;oeZFUD@m-7ooPv+wP^`Z05H&pG+c?nY6@C*!3Q&NW9Q_ieN3 zWGH>|YC&n>>a0t3Z=PS#QTTUmyT@XI-oW)2=jj)+bu-;OG3%_;#EF|3+qQkbxB30w z57BR@S+Xn2WVU~rx}@drgUP(2_Qq-7A~{b?iY>04p3rqN?DzdoC*=10omv(tJc;AW zzsD;&Hm9fv7*FuN%cgIpY*oth{%qjK*DOcYcrQ8}SFm=`k5fVq4=w*u_<xrxheOb_ z2|M3ENPcFQ+V2zS`omIYo%HOJVh=l07Angs+upoAKWF8_^+v0tIvoGaKlJ8d&#npQ zb=(iuKR-9^`PJa}v;6EdlY4qkgta9cxb*RYc}3Yio|^{UuS(m37QX+aQ&!)3c;O3) zgRO>#I|_FTUJ-D#)QWnxx~bwCv+RF<g>y$YE>&<?W!Jm!#gEw7`1JPE4{uqO2t1a1 z?4Ns~bkc2yOMNF_PG6cP!G2q8O6&O|ku~{`YFmn*>=%EuPo|Qqed_cBEcIXhe7u~n zUH^nLhvUQVt$7I&ym6~Pb<ec=HAy$c>3oo@j4#)rD@HeNA33we+xN9pT;*HQ-!;Ym z>OY6qADkB#ckrir%At>TTpPV6%uMp&`W|)BY@Tb`9g`n_Z^!?B{%x<hyvgBTjq`G^ z_#Jir@Hd!m*Ykp37cWUPuI?}NJrQ<S(5~*!krUlIwl9(@U#?`myxXJx?;%#^nhO47 z`!>CKG*kO|*%`OW@S>bmo2+_b%8siDX?_cPcp_GBrp$IT-PTez7Q2?4{byI++x+}p z{W&??e}BK(>3p8>`O(aW%jPewI48L{?dGECN1YXg1b%<N@x6&PDDmL$kG2&Vuj`WD z*ZufEajliXg|Kclr+%4J<(-TiGrq{^9Qjcj)*x7IFB9@-{Wm_54;8&3f4f;Uw|u@? zyHVg)le_VP6wyW>b(618o;gS}&Hg$iR`o@h<~7a*hr>8;6n_1k_xaq1p5Ho?13iy@ zad|B!%UA2Umi_yt+5diSE|)cFNp{$fvg@<Tl*ABDW4rmP&Nn<YH@s3hTh$)2$@QVX zV{xcb+dIka$6pC_v^<<vb61Y#08^FNZjs5)&xlRimGx!c{%2iL4|FnS-Q=rej%~M^ z*en13<octL7Ztlon&frwO_V%-LHX&G;`pzB!Z${wE=bkwxtP6eYyHFO_Q03($~ldu z{MDH~GsUe-UX?}DbjHWfm`1CwZ}yaV<i)L1J^8U@g^khsjIS3PS6;MI+p;7+pYwgz z|Kgk5KY6ic7V-VNGvSEd%orW((?Z*7)}3uC*vzIM8l5%u;^}CsrsSx@=Pm}MMNC;a zA@RJTg^sGvE#t#N1y?3KTr1WbuXNimdj0&u_g6z7gmcQfIUM<Z@%-bRT^1dG&9fx} z*6fY@|0;X_CjFX+#^1d6f9gK_^L<q8%<EfU7-~#d`ReETDM#I`Qyy+EyYza^_dDCx zd@A4f)%x3B^ST>z{yV>3^LLd{>o?(MX<;w7IA0Hu&l`h2+d6K{Yv9@1y+*<K{lP7M z{*eh+x*YXIPtCIA_BBjh7hyF~cIv{y^&4I<?LQW3&T-M`99zdFk)0Bg&rP+y^38hj z562r9uAlw+U+$V2{}WbMX`QN*b1#I6Ek3^>D`1(_&6l58nHDfz>ihEW%*vi8s#DAU zUjD;jfBu+JnApb&)rn!N@94OA^xfQP?7H`DW5{>U$vTr2t@R@t6T~#jUo>)EW%&Bu z=1apa|6@FtGQDhft`yT)xb}_o=IVEurWMzkLsRc=sdqW;!xU_@f1&-MgoR=^U*3>4 zy>KEj{f$Po&hxpezB*=Bh84t%S+CkW&pO!nWzDPFrsxTwpSR~Iu0O-K_|jyyI^SE` zi%l4FD(^>sDy{ZtFq&iA<h}8tQgN@ZhezH#zEeeu&YOH~_I=x+FrDS$$`?E?bI<#j zBzEsBx%Q)fniadk_aa8&eh#&+LZSO-rdjnzJ>R=7ve}tyGXvXs9tkFw<KgLF{`bH6 zo4GkRvP`z^?AGs=&+q-7b>`Ho-QPE9Hz)=!bJ^@H8W734Z9$6r4L-|5TsI$bw7=#5 zC;W@^-=Yon7CG&QH?8HEwaG(pN)yX!p{os36q-~zlpF$9oI17U)V|8Mx#ujab>CYa zmndF4d%?cNc@IMN?zwAO{r>9Nv@?d!Q*?~YZKuo%UwbS5?ZP>W-49Heu+G=Ej8`$! z#%8ParR1}(S=hxmHvib_rFi=FijXU(^cEB@obJ(3xy$RE;EY>Oa$Mv#2Q;%y->T7k z$lh(4k>I2v7A@w3%#DlKtfqzvJ0Co+@xIEYEY)P{yr~Ky#}lu6{MAv<(SAMO-dtm% zY<PpBh*Y1OUz5j_wVkRwKeicMX?mv4>LzU)U3uq&-<`#UZJ(31%v9~KUj6+4(W*c3 zo8o`U{|~MH^y3cS@uMv7PjTlg+aP-U{tU)ohYc?C+b^5)y>GsMd-eWr*@3tJuibwC z*yq)$I@KW>CXE|^f1cO!C?ZAS#O2;w9Aei${H-afI_<~LJ=-zSw#6YdtmI4ekMDB- zzt3U`{C4w!?XK_gx)H`Q?yU=-b2{`SvM&2R)j>SNVLLPL%jnl}yG%I$W#%=m<2-fL za!*GbgZOlBgE!U>pBH^K2uu{%`BUYWWo22?+ujh79bp&kMCUJ?)2beq@u7YD`<u3c zVb+}iu8H&hn=o(dE9JSzdgkh_mN;3DH^!6OnhbY7j+%2oLF0~h*@iPZUCV;b{O+&f zG`=KS8!w~ZVUpKmFCx==SNFCb`v=3Of+Zp6csKiRVB7Jh@p1Z6$La2(T%}f(Y5|J= z_g$ivu<-7wJz*i@bxP!N5v%fn6VeH8LLJ+dvjsi9YW08m1J`NR5semH4??#XEpItE zC*n=)Y(9s%V%K6if=&r<nx~~@+Gf}Bbd6d%`!V~J+(kX+Pf8cRVrcNV?yzgo^an0- zTkcOaN^Rsj7Nvf)WY&#y8jF-{tv6cDTkzT<VCf}cQ}3tGH>gVQudrFS#C_LW0kQ6U z6Dh_p7G=4e&Dx1ijy`Ek?+UCCt;n13YQ{e|vC1<JJ^U_P-lhqs+TOj*-I~Q^E}|7t zxz=jRzx>J94D&NQ8?wFDztUjgJ0w=1yMFP7?pZS&+zsF9uq@d6?|jK>$++7e8CaCF z^Dk?2RrKFG%d{|Ns<>at(&#@<h8;{1@%|epa!=$wdi&{vEj=fH+f`%<)SZ1G>$~jB z!Y^XUlIF`Qvihsdgq<#(%viC2&1|cS;(FPN%EpZk4HK$9{L6{o_nr0ksqnZB`@h*o z+5TTXJ@CH#d-a8z0>yVON;RHuV0F08>6n{{ekAMb<?rjx<;{KjcK?s7|L=4C-u<cG z{QMyq)e7|u8xJ$j&b-jszhTLD@$DL|anj$W*{`?0v|IL+`}NdE%6Xe~i&JYX72Y?^ z_*1q!QO@pN;M14KB(860kghV6U-4M($hM-+ue!5YR;fwde(?K8zMiqNqv&^~$LmWg z&K}=jebdE_C8dRj;mTwFD~Ea0&X$Tyy><L&_T`H$7aTJ4eP`Nz5^LTl&vA3<!u-Y` zD(-DJF4W!VJ$?6EapBy*ADbs|npz2*``cr-%&7fNl3!+t$CvaJ3pH+*+|Oskt9Ark zdEr`kW^=p6juR__E8gCoEWCS<&7}g(&WaBvGY@g3&FzV<_@)x~_QRCf#Y%^?zPQZM zoTKdRa^mUTNPBCZ=Zf7&r+#fb?{hfQ%F{AbI9BB0jT{xvU4<9Kq^`QU-JMt8{84DD ziccTU$$47O_41sQip(E_5?hBQ-xsffeXU9Te$mTrZ0TXllc~I%a!p*?Ggo!0&%{H0 zXP5aETO7F&B5=q1$g@P1hF}MayBR4h>T70*o!&6bDOGd*YHeMcjs$JZ@T!}qE?)cX zIzzc|;|ifLV=nUr0;haFSZcIr3d*-^o%{Xky7<H|4x01k-i_V6wA&_ORqBLit_N!# zZ=THg%3Qno(~KgXuAd)eL(F>aZfz}CwdbPS(L|M(o)b=MYz%p!m9u0QYp+hSuBp^r zAI&pIK0FQMQq*_boVsRfYt!fFmU=oWO?%dSSTXHs6|=-gzLbbl)^j^19l7PA^;EIN zS6RvMCTHt|WAE<&pR@PR)aq~7Wxmx{ZPcm{3tYXXbN%u>jj*YAdCpd!S)45=rC2Hb zAXHWE{-*miU$?*cdi_4fHQQ$sj$Q5wsCf4`$jma&VCCQH=cWw>?Uq>yQ;Q$1Ug_@I zt>k>q&n)YENR8`U4*f|bhis!4uh~>DHm_V(;cl(SxkA^Fn@Q3qq|WCWybN!7y`ZaJ z*s6Zn!M9zf6^qSN9xSx#yg2)H%4glRHml<o9WirGUHajTmi>MSolQ=Umn<~!mxy+j z(7(64`*~R6+!xIcTo2627fH5Wv#`T@<Ngbd7k}`xaTPsb{QbUc_lw2_Ed7U!-=Dbh zdH(;OKkoM5{}<~VZhK^ZaM%frz}-n!T1NK{yiCwa7fW1J_|9$m#?t%_zEAdAn>8!; z{4SmDm?D^&+wj4dXIk6EWvBI1RW81G7a6Ufb@;`H$~#A8l(dhnHW8W@{<m$$_uBiL z!;1J6g*zr0-U-`g{7n0t_UWb3rdLmQ$VqBfwM=->_(|YJ!5c%%D)R@W%{&dNtiN5D zf~U+`!@(VLxiKWF^Jo*-vM~Ae)8al(>0<l1SSYh(U*-0=>$Rc`&!3CmFqk;qx>;e$ zG!w<eY8w8hj!fJ?*+;(1*HkfQ!(BV^`M2feE}Rb7bH(SHtw(LJNAZSp%Nx84r(5pf z$=Dz(y71ABPa850iZ793ob)!cSocKvj^aJ$x3(xvd(F|_F1BadzF&G*1aemRS!`T= zD`@2o&reSOY8NUkR8;uqqI=DD&NQZQ6~`-f&l~&tzd!SwJMj(6`e=a-3p4Z-B_bGB z7?|A=wK=vduiPLY#I=X<TE?YKyf^F)85=6Mm%c5Zn7)5be1WeQ$B9!Pf}dy4;8Z<$ z<L@nNYs=fM%d6`CNibRW&a<o2Xshh~Szq||PyCkspWgo~GO_4-cVg}FtA9Uvryf0h zX+_4_kacFaeukAWmVDcJ|M%7W`rCFj|9yYIoNa$}*4gcvPx>xS+SQ&vK`n~gbDram zlvHo&-ZbM>PnV;+omd`haK5PWe{H+G%#K8^<?HX?e5v>8$K8y=Evr(jUK)yIr)Fgw zxa>G>juWSQ+<&X%+w<;kT+JSC^6cc=gK38&b5ypR{1Edzxr@y{EyyLYVO@IR=8tAu zbvFq*6^e`eFU)gNF#D=3VczR<y)91QMUVw+cYRdg+^B^*TvL_aeGxhDuvopXR>8a2 z;X**wg!tc&XBYBcHL|e2z2@P()oW6+GE?-wb?%<e`24^O#ft{topwY8FFm}M^Jr7c z?TGc7n#|G~&$md0DjnUWv-))KJKuTsMcF3L9n?y7|Chb`JlD@{;iDxz^CFI3w&eA^ zwkFfWJoM(5P3QLMGp`j<YW-gSXy)#358e3}`88F}IBM2x7~i=`#5>*LriYJnOy6{a zL(#7jrz-Bwwyr<5@7weLi~fGg|G%xa;-50J=H!}IH|LLSd-6iW7`6p$ca!Fh@KJgz z!WFIcH{+k+^Q9?U4@~l6nipnJ(z~*$Q=#B8cM*?o#!JU3DIS;g%h;7psP26fu5Z=C z`}*4d`M)>UTS~pF`E6Y<?6Se^%eJsmOR;|(4|TlE71vtyh(6?q+_yu1;f9Xo6MZJn zs}QzuY&<u?<#A)zY{R&4hZd%&16x*nSoKsi=x2yyl}q%I8S?_N<#-A%nC19XzRqh& z)mvZ6!d5@6Rlm&6rortogT%^Hd!0CTPMX>FNOni4x3liUsJG0P9U|+5g8qF!yzk~q z<JE<wbvIeNHSKiY-}lj-9(}t=Gi%S^4f{8x&x=ex_uQt+Nv`9=39G%^tN!u*{{M9U zztb0=9MS%6D3oF_M_{_htk`VRtshxg7r5TJuPtD;rGA^%|M&I3e`lZh@BZz_$;0ao zOzl7GHDm6c8@9I-9*9?5>6Mf1O7T5&CF9GDZ3nmBc;^?+yddbKe#)8k+G6P~^WrK# z2G8NlpTwdpJ%=;3=1b99?h7i*)}Na^{ea!0=MS1Bl6Oc~6)By6yRnTm`}ujZ$yctP zH<b9huYA#W2UVfzzXdXrUix-FkUqWPLczzzjSKl%xTnMjpNaE1+rXe6-W}nxWxZ*z z@dh0&u@07Vu?oV>h2b2>UcdjdS>sWNq+UzXdl}Bkt*&u)Ul(czo9YP1pV0XE$TD-r z>R;;53Qle9JhS-8as{51wvik+XP-+CWYltcV|G!}KuD@mV(P0Hj;-t*7uHPw|1MkT ziM>?@$7vtS=M#B_-_4Iqd%c9GB~heip_O3g+pVexbZ<SGS^Mk9rM^-fuM(9<?2#40 zapoP&3g@SFaX&K%N_=#_>-C0XUoK6WyT;f0=|MB$oBph6MkY5DBFsNeIV5+qdR@nc z^MMM?Tb~PV{<PuH7Tf6aSA<So*v+P->n69R)%|1i|0nWm=f_GkhYEM8+J-OrF!8QT zz<W{N&$4^Id1SX-+Ph;%!}6Ge9miHS7?@Ns+s4OEFm18A^}<NTDC+;&)5qnK-?XPH zP3isIXmrq`F7l5@+|0n`r?fLorZr8>J`?U1D4`ke*lSk6dO>iF(83v)l)lfu6U~^z z^H}A*Xa1WCnQ2m+CI4q_>d3xwg1=w?Vy|~xeC7QwKD-+f*9h<AEWEooR=Pk*Qy^mB zzmNMLpIoJ~{k3tfV0%w{(y1#|`+tA8&yWAPQ~Zto-&65XQ@57uGMC&o$$uiUfJJ*k zj{%!dR(j^Mw2M*Suid=1@Bgdy>rdVP{OA7pQ`HA0BMw~33u#;RKH!Dx`Bs;eK2MjJ zze}Edo}v8s=J!5-UzKP3{NFIUxjbOH@0*#Yd|1L00;?+aA1QWu{i4$C@mvnY0^iIN zl8HAJcqiHJv)(B>_uGdR_p%?W>@Ab{w`Sc<m$IW$Rc(hheW}=d?Pb>gmbtd2%Niqm zgl)156eF~oKPd!-riXB??O9&Vy6lj7bef?|Wu4m=-=oK*cvUpBHoQpx#K-lUq2gQH z{Og^qXZc=7-f#cA*h;~D9ry8RTfauHiS+;8eCE@&2Z5P}m!$e<{<~4Zw`c7x)!*|u z=AOv^a&57{v+$!8zj)WANN7wuu}fMif2w@ywnhsdU(Lg&yb?<_(<^h^^cQnI*>wK7 zhDz2pkH;}9mX!Xp%1VlS?U1><M54)fQP{hJIelMaf3KDQ!`#A{>Y}E&;bO#I$@S7x z*iQTql`boJ6#Dmi4qLgq#P4g%7B9~XF`K5cJx}FHWWr(r?;>gIURR&{M*OA{y9BG5 zn5~NrKMh!S|4L+^c~F*~UR};L<{Xi<we#)&uf251;+2Jnl7Lp~soILKd>SgcT6ZSy z+&gRXJ4tsvv&S6<pQeAA)O$qM;7NDtTL$02<eFOJXBW30ynIL|ZAZx=s|7XB4W~vY z28jG+y>Kja<&+JfRa|k3kpWvDMwgvP-ucj{UD~WGQ_h6_k=hm>c9W|4vu5jT688Ea zvGMuj(8l;UC6j_)$2&oGeDf!6XgvPt*v#*u^?zPms**E*_V?fC`LW6WRzLr*U2mE2 zKjW&m@`)u+B$o+wZan4TWwL-}cip`O@_)a_)lNP2f9{Oaj{{u{E7o&3Z=LeKcgX<@ z+1z}uo!)sK7x(So^k$jZ>utSzpZm7)9hbG>*j)XuSYztaMQM%BuiFo&I{eRDle6tZ zpL&|o6cY<^DTd{H<iD-EuD4^4O~E=(zwBv`KmJ(Tt|j$7P$KtopUQz*3*|m~EDE@1 zQ~G?Wsm2pa;qC9^QqM4QJ0CTE=ldcuX8ji*!42QjPc4uY4PmrboX44HJav)irI!8^ z3f4>uH!M7~V!fM0=<gW*V>&MjoB0!GHm%s%^eHFs%1Iwt4n_M0wx8;ILiId)($!d4 z!VG1V_fNGpGU17u_Vw)}?i#K%feDv|3hYj<tw=8C@+rSA+0Gzy%=f{OKq+-Oc6-lH z1upVksey))WlwTNC%Ju;m)dJmqjcv<OQdtVbBmu@+ZWHp4_B03H-B7O?8MMJ_vEQ5 z9sV3&{w(AU%$@T3?y^hgw_UvTR=3joKrUm+(S`C!nJ!Fcf@d;)+tb9l?%P7vqdHM< zk1;hZN;_s@x2DWk@YaUjr8`9q2i15tH92)3^>zBWy)%RLfv%!d@>Kg?`F3A+S7U{u z36ILRRx`Z*yDsJf+bxIwj7Oy_-%MXx#=P`Zr24tk#fnKE*w)&+^XTubJJvK+?)iJo zo`aWm2ydBrlPPAk&W$S!E46g_HspFcE`A>R)bPj!%`=z0f)$l3brOQC*^{QVN3k$7 zm$}`Jvnii&kt2SU)hul>|A*Gx2dlRn`=aG<{pZtP|F%#6z4w0-4}V%O7q@Ai@F{to z@}<`rpEI>8t&cCvRKIq2XYKWWAItyG-23;JaP{-I{R%yk>o0aDrWSm&atz*|vTzND zU{0>dw8hiia+vNjFaNl+(v+cmbzzBx+_k+16FXjfWfTipq^nx||L@G$k4>!nlk^NG ztM=ODIL~j7ed9a-=-;b_rUk!uHtWpy`Kq+cf!k}zgH92%{1C6QbIN^(9Janc>$K$9 ze3ha@%jby-&1Ais!PGtH{7nAD%pWhMKHhm~`fd?lUAfDwg-brFC|um6y-e|U(nE>E zll7Z>H~xG3=~cq<=KKE>dav58<y^O3hTVe6(a9&df6m{kqkA>k5A2uo`7745LbT&b z-8ns7>%3X##CcUDO`T$vC@2R%)UsZ$WWD%dPnck-tA%KOBa1^@;DX(qR)LA`5(hV& zdsK1qrNE<W9?#5LMY=o=WXXgS&6^^2cZKnXplcHYWbY~O6a}Rwfd&DEmizqTE5jD- zKcI13S~Y-oiTvShD|_aPa%BZ`G|sbVG+xnoc&hE%*8D~VH&Y#hsmssGhM5W{c2%y7 zym{<DbCA3dUo=<S7e7`}BQa@LlPk05U2>S0-Cbg_dz)c(sF7g(lg4w)x(Zua9i()h zbk02=vi6*iUvyGltbwdJhv<>d(n*JNz1CZPdNX;Z_WCJ_?O~HDuFv26{L%LdZ4#f) zRz<{~U@iV|dg9titj{;`l-%(Q(6g<&*M4o1s=8CtjgkY}m#=)Ov68EZf3n`%+ipP( zr+$&<qKT&}*Q8EKK3lqO;e*{thj-ak{g~3v!2027^?BDb|EK@IrGNXd`<Fl3>tc6K z3_Q`bmtz*sG{t}MQ~Rvep88)B`fq=3{D1jBtku82pTEBPkAx!c>zTX?{<)bxG8gNn zxrLnm#mTYy%e(Gdlc#wtaGfO|b)d?u<@lHFvvWnh7p|}COh5cDN~~f|pU{q`;(R?W z#*Nyt=T1&zDZGATMQHqO*7NUDo<9#)IDD(E?enu+n{~f(ey=kWOt?5{yHzv8XDdS% zi?f*-=6#+uq7r!)?h3Exx^8pk4qDL_oLgX)%%70|ONOD>%E_^Pfq=@o&nX51TDB!D z>(-{+jCu3i!}W_+w`lr-N}hcp;o;&p=0A+tF>%}0C$Bv`SJgXx`M}`yRC7vji>}_K z58Kv!+PUyx@rHFd`U@x2iY*tOP_sAAK|(Copkd4U8?h4-_lBwFNA>@1=Sf=XDCwS? zf3tjRL+*VGz9Z=yuJdK<yf1K=s8a6a=lA}0;s1ocmxYD*Yro1pawp7ti*c_|$kdh{ zOV6xT2~Y2D70Yh_Y<~KXiD`tEyf(wv&3|?|$}kvT{o&81k@z~Le0CsX;}rIrds$3w zuDEmco1oPso-a*5%HC)5FKyQK^f<G>f0=6Z<~M6)-6h!fp15IP^^@D)SNU*3g?d$| z<C4P*eC8fo^up6NV1uFjUI&Kc%XyU>QXG5~Z7$|8Hy!BgSFqx}(-E?cb$+&z|3nT? z4!g&-!M^7;-^{*dYv?#-hD=|#X53t91NAks?2#_+lf<oWPI}m^WwE*FgpkdbYn!Gu zN1p%qY~j|v6)Tb!b?&*@mcyR)X3dJ}Zu9p@d$YER_j)<bohQ7{#E$>b_Gw2pHm~$= zy}01a$>{oh_5Z!UO`TtVvhL^lJwl@YVh*gFtT>Nzp3h|&;Z0YnwYYs)m23Z2J?}gG z@BY^9_kNtH`=T#*quswQDe~f3vu5$*Ri9oqPCV>zFudu9iJ|SqU!R|cPuMbLUfZ89 zQcvujTlk!2Qch@0>?jVOG0lQi=Dpj2G-G$32+gg&HbUkaGMW}~h4vDe%F>_wLrS<d zmP#0(xg~gMVeJ!tZ|3Diy-u<0Ugb+9Jtpb$N?%b6xMw#tw;&*GvSW9S)Q7UDQw#dK zj^69mTYBxiqrX+sufB#eA5wx7Uq9cmy@yMp;eqoB4q-2KkwzD1cQGYj!Ge0liz0$M zcrUpc>s?D|@v1!b=1alKbCx1@o=41D{5<XSBG1iYy_WSl-Ad4~O?h%e_@NWRuLO&H zUe=uK%sBa*QR%po?Gp*x?<?z%+tvKv9=7{Ory|ew!{KhK_iv<luU)#>AY62o;?F?# z%7fWU_B1#*uHn}Au)XbDd3S-p0j5K<9|gEhn>|H{k9$=~?jpUf-t~{_GxGQR`>j3a zTiCYf(9k_<*%R6t3$tGcuszHb3fO<4$b1P?C}*^0y~x^wC5MwYe92kZU?a=jUjNtd z)*(3`gCqr>&tjE_x@}~0Lu7dr#51gOw!C7Db=#A#rTC^PWBI;^sgEp|IAoki&To?a z>*Z(ni8=VjV+FN`9FK1n?{V%i`n&Oj<{m!YuKfG6dit(39IjXseShuqk{MDbBPOZ8 zSR24#CK*y(6~4i`#%^2A&)1r@%L8VWd0bhjS#K#<>F3P0|4rArm9|A`0SWO1=0|L= znk%l`yMQY?G1T30x9#c$vuopS|9?9D{Y~@#TsQvx{(G-V)n4<K<Hzl)w#rBUHZyO~ zid=uV{`<L=e~*>#%jUPMxu178cJHCx@;6?l?_v8r{dZ)?|I;&Ak4Tq(Zx%?qb2(sv zFt>N;wj;-W`CQMDczf*B&(D8K-3^un{OIG7SzK^-k}0Rwex)$$e2%l`Ym{>WtK!$Z zkK=e~6`Hua`kbFxd|YpPd)dbSoN1GM`<0CA?V6qX1Q=ZIh!lSHy}~_1`Pyz5Im>yq zOs5PN_}vgzotLe*JuLa@P6x5Rx1B4+>@F-XJ|}<Py@0QZd1k|v?vA}Tx>dcuPb+Y# z={vDu<C;oGwpw*&;fWXKnP2@K@!hPqHAgLtE3)%y-2$d1-|ZMZ4b9GObhI-Ql@M-s z$Y|AHHraBr|A99xUw3VOa$?uKd6Re!*EU{GDRFCCBlmX3qO>%3vHiCgEFGVpxMnUM zXmY2*Iq0EX%G=-X|33Tmuf5I0L+VTJ{oZOz!NS{?7h2Bf6e+LV=)B6wR%=0s+1?-i z3uPV|_ipvByB2TG&Zwbu(c$NoR*ip0e6Kv28#s6U>=(iFcV(~N-<KpLz}70)xJNtU zQ>3rnHCeGYHU|X?JbW|j8TW6}=<Ax+Gq2(4LW!wLTwhb(?aDuN>r+Gbho^3>Nzaa5 za8^9&srjvUUS-tBkUFpBtF8slTBebmt=3bs$e^)lZQ%^YIRZuE`VF6(-!N%pH!>C$ zWQr)JzRY+eVe;B*ueR}8cK&Hj0<IfF&ra-^V5C!YaV>YJvS_ZlnHlG-uRs0$?Ng^u zmuHcgThqO-^2CbuKXb1CKb5T(pLA}1b)oW>iMlOwmp(~lN#!k5)PH^d{oU_e_21u4 z|NlzrbN!c;uYWeyo&9Cpv3$X#E4}BrKB<VZ9A>=j+iAsH|8xES&^0eZCZ&kQKiABX z`0<@__vh!8Y&`wziy7SheGYs7@ypK4J}0N*FYCi!#c;a5=k2ud{kY-&@jq3yJwMjG zwtv4na7Nm3pOdM9y-kOhTpb#ucIrx4B;EL0aq_2*8pi=^{<?=d=WoA$|988=kDd;W z^F8%$SD$r#Gxnde=hqbRg<s4!K935^OF7Z^a@D@|cAsb3r@!C#{r(#JiWko&l_f}j zW99w&qCY_5^}OHH60dp9v3<^Ul~-`9v&QKR*MuC_y9NGp%s<p!n(=I(LuICf(dClc zWuNCZeC0o_JYmA>ECq*^g3J%*U5%NwvN>a#dHB%-0n@bNb2NJA73G}T+in<nLOt}t zW}8*f!t5M>R8CmU;r$SQK-uwz{*3>j9@@SCj_qS8jBoR}seSmcQ~TfD4*elFC$L8! z6Xf4g`ekjFdc*3e4jsqb+%K~E%{U~pZK2F=J^8w6@#e=FR+I+tops^ZqWEsM<$Jl~ zwl*8?|5^V(F60(hb`9G^H7S;()hQntA9eM{N!f1xdf?m|VLJ`!J8_5Rb18LJvMz}@ zY<lX2XP1QVyg42A!n);h$2J-CrKbhWk$ikBvg&KotDcP+%XCW5&-Utgvh~=E?JW*R zzQ1j9S{v}fU~k$zr-_n^H`(sBPT3IgB{HU+X?2Fx<)UTf^5v}35~(4**Cz{UY$<nn zqAjyK$Yka%$?wk}`gD5d?_7A};^gJ_rc)Kqiny$ed7VAcxA%nigpZBst3}>jwc36E zzA=AS{jx*(^0#GI1+-^7{@kB&|A+SdE$#gJO50XOiB$Cm{koJP^m6^ygTJrui+H?v zHRHE;zxf}&ZA+SeiQ$He&%Fg_(!-zKRyb(M!=Ji;DWgH_r+YbkA1fu;)-5srxczL; z>qqh;OQq}PO@Dvt{{CIp_uLJ-HocWY>zj>8R${A@vZ8=3%NnlI!26Zr52jDMCM9{} z_+$2Oi?{!e+ww8j>XXX>hQQtKI?F6Y7YK`_FK~<8yI$8NGOgn1*68UO?|CwQ?@;2j zuYE3WaIC*)>ZM=FsWbD1sy4DN{9qI#5G~ZEP$i-B=6qx9BR)^noolzN>9hUo;JS9e zBX8C7gKQ3QQ{L47wExThR({Vf{<p{9|KI+4%I~}1Y^+PPeD;}VS+#6RUBPlVz|Z!* z?~gl=KVN)zeD@E-`S*8-7Zx1WikbV4TZ-A>U$ctL^jW@|OWlrgA5JuDF*L8`>p!k1 z+|;mArhc7~poK}D({-2o@}6qvszo+0(puWSCvD@o?}lLsN7rQNOjbSKv9x1ir^(C; zHIAi!3OOG1-{EGh=2~ET?A7WMvVNyJzfCh0J+dip-qDjP#+_lJKYtY55KT4}HdKA| zpjbb2r^TKf`yNKTT(~5pVfh>O`mWw3+jj4@2q^hBNl59T7B}<K0LGVW_rqR)-CSv5 zbS<|tPC{Go*Rs8}w`Vh2?oT}Itnj$;n3q9r=F!g|+*hBwG@o^nbeG*Svps8>b$)j| zjhh*?)F}ME!>WypYO8sgPjCo|GaR!_p3ldr{$<51-jEe*4zR6GTD&`=tVMgq@k8$e zU3(t#g)ch$+U&*4tp9s>dQ3ugebAQ?{>xdj?rlbd**n!qe_e`vIEqe9(W$w{dQ7zC z(y!;$-}hzc@BZ}v^!}WF`S_c5ob_{W>{L10^udqO=WWyF<H0v)o;$I);HhjufxvN_ zo*0R?2S#Ex`5~L`_;Fq?o1|$zIWsqdr&Z8&x#1=eEe)q-i9R{z*Z(Y<_Eq4)*~TC3 zOaXznw&gV`ZTw-f)#?5A((~t!8&2j4pPFTMdB>MZyU6Fy3*Stiw{hda8H*m@Gdz*b zC2HFC`Wa_-<D@+w8vgd=mCydV#z*1x&(NE8H+kC*sQlrn{=DJR?X1HuLRKx%;t!fR zCGo7%6!yO6(+h88-&-|ZCB~ikN~-a$DaNT{=~FIj_55kBQ7gu-wbc1<{qx)ZD@;}H zAGqb}5uiF}p~g{rhpU%L_wv=1iEAaLUOG_mY0^o*OC>7DkISW>UoB>IcB|XD+D4|h z?|HE)C(eh3m}ow`>1?pO;Wgv`Zu5ihCYpR(d{XSW*Qa$YZ@ztgwv|m!GHj*gy&qDk zi?{>2-ptuC<3ww3hMU6fz|9WF8un@I(QwY`PEUNSmVa?w$m0q6!oM_1TppzVFKxD9 z2+&~(*w`Vwz^-CJmO#j-^1by|3PmA1W(RvNc`ojjntVR{$T^{N+cpYa^HIH~xcubf z3v4s)9m|SUw4YX@su6yMLwT9i(`v7(#|B<bSEn>SQd@Xz_0A7kLPuP~e)Bl`JQPX( zyyfVI>C;rWx&Ca@GW#I%ko79h_bdB9L`5a9GrjyaYiY8sex#Q*dwNjO%<Xa>Zr+aV zk5pT#&iWXB(F-VTD15)qp{3#RB6eScu;nievy{Y-#Ww9vv`c=X65r=>Oy+f4l6FOk zzy*Qxtpfc*S045H>`Bx(HBal=>rYRA%Y80Cbl?2V!Ncl00U>MNGadMud7pQQ%TxK) z_x3M~=(0|J=e1C)<$w2y<R8yt7*lUP%&+6UpY9_pB6R6N>#?`$tx5-Ob1=pS^adri z=&YCaKm1R^{oaZxE{qfInYr(d->=rdB30k}TU1PaS@4pGW4oG;J66cBsXlmD87j8> zZTg!HT<?;9U)U6@|2;^8QKvL^a`dBxlPwSFpR_jIc)9VN#6{UFJxQk`Dt<`h&O4;C z-AhpPP2)A&4^GLeqJJIxbY%9v?Wr*-tiD^nO?`N}dRO5#t)<DoPu%<a!2HanE&4%I z0xt%81s8ps@tQ$n{>tWwMazG>FTMBft+U=CvA0_l3SO!)cADlHzgK%NXT*}^XT)iv zQ~Ahnd7-Sxv8MYQqrV^Byt?pb=56_Vk@8O)6^#>&lqENA$*b|)Cei7k%UNskZ0)i_ z+5cWYZ`7O*T=X~P_Z-<<l?&`Lyzd1v7VH-@nY&AI{mHx&+6pdQ@@w=HD!w?Sua5OD z*SKfD?Rrby++B})S95t~rE&gV^e|v4``o)9bte7#RNQ)GWk!%t)2j_idE4Kne2;k_ z9xE|@_p_5eiXDNf1^G%VUH)y~w&hV_$SZGwEm!uqiEf?6_{_=sypw1<f1#ekO0$Vm zCuHq6XfkZvX{Y!nF;ugxIO2Kv`#CKiIQ?f#SZb1f;LL2^$5+I*URrqMxai@l0-ui^ zEK^G1)bHH*$E0A|znN-5{1X`e?8&$myyEJytVHHWzGLl+7XFEU9k;(w?!XVf$PTfi z^H!yN%9*n6+0;+lzP;JJeWI}+t3{fJO4p_;vG4QugNE?uN8A2izy8$!%#a_<B7L9M zFwT8%Hs{!_;@_SeCHfhPKRsUrt~qf;ukwkM#l|zI|N9wxMfw}D{MdI$pwUZGohLWu z`<&@=LMt-`wnWS}VA0wvAT{sc!Ww@0AGfN-8a@lw*xbIl*rmf!v6XlKeCMCmT@PB* zuS~L@@$2~UXDrtC?%VV3a=LKumAu1{DBpH%v(2&$<(j1V`#$GytXjAysOo&&5AB}< ztubwt4?Ik&9yoAvUuO2cdHF+|;^W@TQ!_S6Jm)OfXt^@SX@$Gn9<4ts7bSQnGo13) z=(XQ3FzfQ=$!mHS%&3wmf4$jte(TzNzb*Spm;HZaDjv4JW~IW9wC)c&%J+igW+@x| zcCRtJ68=JC-kj+>|0jR*S|D~@y=Qjz|K<xTveP#jwi!Gw4rRLe{Nb4gx$_^b30|gX zzJEjF<;*W%JEj~zYy55I`TsLHB3t$v&Hq*?VIltco1e%Yu0_Uar;LIZo!A&~!(r1b zl{-$4-O`ixo_{|7ckt``evMHsmKA0^n-;HZjL0=V&alIAFN4^!t_zRS96PssNea&6 z4P8;=$$#=ro9nH$Py8+}KC0clm(lHW_W9S(cGdnqBWGKYll0#0-+J>zPq7awvZ8Fq z!{_}E{>B~u_wu*@|NQ^QzfSynASC65RQN%~dmHRh-(HpuT>E3ozoVHBF{gs(NIiZO zdGs8A#u5=(pQ8nj<bvl<R#`pqh{T0N*Qe{0lpPIH6a<?-UOT(_Ua{sUkEe+dM}qb$ z^js46_n#lFcx`!h&##4@7T0^We`U6ITu_x?v`{qom>>VO`#tGlAN%)xOI!SWS;VsQ z?b>tF=kM(8D}J5N-~M+;rcSW1=bu}-RY#9>YItsuJvZr~ikX!6yLIQQD|g0!KXh)M z&Ayh2VLkJtr<c_J|NGoNU4P$~MSDMq*9*GV@pZ?pw%O6A8T9Dd`@JrCA=bII>sU@Z z&j`$%a_Eqm?u@q#d$?Hbl5Q;YP&>=7wQ%K^Po?f#l#M?vx!~+r`MG!z<5m-IJ+Gru zQ39;ZDGvQx+k(E|S4`nL%5;0BYiGiKzqt)zwO<}4f8je(5`CsynsZ-?oK|7J4@Zxv z$?{KXKB|W8&3k`7*xmL^dR313<&OEC9S_PirryagNR+#J*y-hwhkJe>cHg>}*X!FS z9nL5-q2$Mvi!YpK`^qF%s&!=s*A&i)D^&W#B<gw<8P+5}jNJMq<Kdbgb>Fo5t@caI z?%%$h_t{L*ez!=`W1Fsi**81ubGNZ@8&68~k!Q1S#mBpUa?%n^eAVK3%GJ6+-mql( z1$QaVJ-iR=+pi?MTQ|P%c;;of?(3}6|75FQtM8Y37`Fen)Xq(JZ=S3=rx30*wfKL_ z^T4a&H+wXn9}Ft{{A}8}gd3_>!KPW&d;a}f{h)QHV0h!4uL5sA{))&u@S1HRL+Zz? zjw}2te@uyMUX^x2J2#T&_ybLWMM4U98gJgx&2p+yJhyDpZ11bzz3Qf|NpQUS+JF7t zkIcVMTEBO@`zs`Yv2pgCXqmEu5^k=O4$Tsf_iXDlTXHDzV7~~<W}bvYeWE^hIoTx? z`@6og8eRy}oV~)dka6mxqcYXk*B?%7^()WT`SvNnHYV{4M{k&gM~Aro{iCUxIlH!d zHZ8nwrr>x@M}Kei!c|jKZT3CBS9{5*?WSkjIluZ}KUV&I$6u%aZsYB_twEoJw&=1) z71dw46{NWT^S9m8RybEwhu?7)-fScCIB#LuI=$6%ZK}0<dNXbbvpr1W^1fUD@AS7z z-sjiP`>(y`!|@39$G3W&F3wNipa0Nx_w?tY?20u@<`l+%S-G6utw~l(C~0m|xj{_O zC1oWRJ+T@IW}|7p!df29Dc-m7`ocfYi=I{4JvuaNy=JN5_JBkXtYw=(#e=XI^^ z*3LW|X|*2=c?l-fUtUc7`{nF*L8*krauunirgG-5ZFD%gZ%n+m#VCHoh7~t#(z?4^ zjjnCq>Gn@&pWW%Coq9_-7k;YT-7@KErQk<BUVr6J2ZJ65W;YxyyYpcFtZz?plvt|X zNFCk1V$SV@MpsQlJ|9VQ=<2^dW4*=0V0Y!I$N7~Wulmwg#3pcGTwLvmOM$b*@4ow- zztZIDdTK9EO`ZLzX7!SH9x@@f678E=vzKhS=5zk)c@IyXpVr(?--~OxW0o>MnUQ*K z-};M<icD?pylWf8_5YPrWNk3&KiJst@v$hkKd&U$6QNEKoocn$(Fy+FqZGX~m%S=h zeP0_DwsQl^b%kAuF4KbDPqegX*8D!saX@}=_=`1c{;gjbjKbc}W4k=@!O0-kb3rTE zj;))zu3@&2W5kX_9#+zMJGUJAAuC#xoclv<nc)PE{m~QVud|C{ee5ov6mqBF#PSE6 zQ_d9b-7+t2v67W_UedGV&o`eOT<remo<N7jw=aJ*j|upsy!K#<E?ahSQY(LpnZlib z7b``MIV68>zmh7QIRE_1O9!g%ZPMGza@4SDuX(7IPf<*J5UcuU{b@aQPd^4LNNGz} zIg7Lu@o>$bH_?LY`p1SO|9LiB@Bcdf|3=-1X89v$FZ6Ew^yXcL$;QnypH1G%d`F=2 z|K9Jsr#@({dr^Hn*k!)u&h+WpL4}on8subm@!C}urIx?Dv&lU>roPAV-tPad)i0ll zhn@dFoAGz`sX0&F9eR9|RoeuYXd3J}=$@I$l902)Lu^CF!8p++_P#v_jdNt@J#k@m zzjFL}dE`1HQ-Rs>^^*fzwjSBFWlrdy^2stR>SxdQ1g}1=%zo?)^8$-RuU4mcr(?_& z%~xM9Y?lA`;kb5JQRb_8%cDN*o;;aD)~5E?l;;7w(Gho!PT6(+kTLtuNtXZQE+xr+ zU$g4@;W^8FwoYk&@bSN877NRV9^=bgPg@Tva4}1y&Srk}UGA&!f~QU?deQm26?eb8 z9`ybI$ArfRE$lBaXl-4T=3r2={hr6m29v7_Z$&40+_t+`v$-u;Pk;V}8F59|7e@wf z<T0NiB7V_iQAMklUC`@WjV=jq{vTS`yU#8zH}I48w`Ebkj)e)TyRO{+NXoIzRO_RY zU7&!m?d-=DM`O3#JAT>P`5&*)){Psc_tzAkD!p;IV9thchims(p2)xLx~+SPTe9ij ziREfy_IZnp9^9~Y;6HKv(|#GbgBSYC&&JAmvq?^1N>$|vyg&cv_1;&k3i)P{PyY7b zQ90`J=XLFx>aM9%l8$v$_;?F_O-R)0&5TU66PLMrcA4NrRn^P_6WJ=$s|Tt#@faj- znfCKY@cw0vjNh(UY&<U*e`LjvoMm<lrdn$oJ$ba1<<&W@Z3H+cOU9OmzxcFB;f9k( ziVlC*o!Pv1ts?o)9=#Xxd;ijF2345~XAe9uln(y+<f-RDUzI7DdleY|=0{6u*<6Ua z@<Z#8;6DFNeTlaBE59F(nXJ^@eRM{^@&`?A&If-txyCE-RD7sj%VcoO{_mOTZ}zs! z->Un`vGd}ZoU$0jGoOo%z4f^&|LO1jb7|F|{Tr)ximy&kcab`MBXRzm*<W{VyR2JX z_Pw(D|D*Q6qKKOso?5Eui(jlZZDT%G@o&nC>92l?*M?QzT&r(AWzwpXk#$F<It6w( z{W`w9QGuZ`-QvK3zGFMmmRu5@aKdTMs^7Cj>YU^Z0_IHk5&w7k{jJ@f_e!>|U$sy6 zn|oW1*|J&Ua|6^u6_r`5cSiiTTNeI1n`w*uhIclb%UG{@hT5giEuJKM)ZIbcOJb!% zbHu%Erwo*57AC#t-~XjZqUUYrv0GQB8h0~F9=5pkTiCPtM^;FLnA^jUgp5{0?Ma(^ zwndnWN(B8lGyko{iJ7xDu}Cs_%r$*|B>ZvQ8t+F{nO7!zaW39-X3E?zKaxE^G2IE> zA|4WWsUf8Fpbv}sx!a28=VWO;NH-Ja+Vny#%h$nT$HhXS&*HDmzw)kqmR>c@qcShy zx3@#*sw^JKMgP2d1H`t6^PdgM`_>j&e~0f!|DDwVnX3+kE%TiCgH1cm^x1Tsq{rP+ z9EGd+D`f<>{}7ur>C*qm<=M^ak{D;`ss^QrC}*!-9xBKYp&O|&`NYfTX<YlP_*1o; zl6%>jbV4;$H4>aYUF7?6<iY#(PKzt%=5cf>`D(P!%PdSdwYrio`^9GNSw>1m?`GZU zyz;r?TI>GrrzgLB-|Hb~n{+ENwKJh=<v)qzj}5c0rpGp1>uvG))tv3&T7P1y%*>;y zO^IQf*~?ElK3WkZU?`{A%+<l1wo3ZVx(DGZ2VYCDeDvFRib*I%`OKYNj#FEGul<%^ z-n{qQKYOz!U2hBfjZ$ws-4MQU-pP68PybK7`uYFU@I~AHKRhAxf7yitb5!g#WzDDY zJw0T%r=r+&!<0)mp9|dES9m@tUqo!lsY{n82mLv6LVsn=qjHy{%N!rhJ`{D+F5GL1 z%38Lk(JNJ-RfGxf9lrDAhyV8S<}XsEzt^VBWr$MEX!i|aXzfh<eY^g3^tWfT-#3N4 zesTVl<$1>(+X&NCe}if3FN7Ri_wv}>qV17adpR86*EbqkSc-a`=1i;cZ!TOZClK&w za%ujq_a`TDrMTVMwX#L`d$icRk6trx-$=gPl2>JVh|%<i-dvZiOJ^T2Cdez;T#0zK zW9BB#ClBTM9IBFd7vIre)x)-O=bfnMZyzq$@+yJBY2OKn%f^qtPjNJoaei5~g8Rs$ zX?`bUo|nw>vn=O+nzUIZz+9R|FvuhH0e9Es>a>_oQ60<0)0UPrJ)FYYl=DF2N14?n z&xsBvuUuRfu)=lW0=ebumjwj8o4@1cy$gXG9NXN|JUfG4`?B7gv&G}7{2z7o>1@A> zv&^5CHqT-#^=H+|;A&B0^?p6|Wne;ynb`jejXIfg%|yix#Xq<zpcF4Qp+_(5#-~r0 z_Iey$_@dYM#sm-dSOtMYl`~iFOZch1eXroZerv%^?=4^KXfrFRxWemGf5mQv%IE1D zUaY;4Y*cY3)^k;%-^s$Niwip}kDWh0FYLuBhgwmo9+9IAnTmpnFH&rZUim&VmWip_ zk<1nR`WVBfS&0j#zAKx>r?qD3!BrE#8$~?3Yphvj`?h`K6OpPNWxC-n4Zq2;^e&v> zw7IG9?7{=x|L@uME<W71Y|9a|nybcU)&G80H~fwLSzURbnO9}MneCHP`xrlN@G<4u zuP*UUe8rUG1y@`$Z1-0EIWWb3v(Nk4E(?@7C-AK}#Mp4~s(oYiTpO{8=QbQ`D4e~g zbVlQ~VCHHuhZgxCf1mziJj`Vp`DS(`Yjn*|u56|R*MI-k*WUkkt^Qwm_>(7d(nYpv z^sKC!#<nwSYj(}u!|aC{B#m1)_Vdg?YSY+b_SD9YIa4&*Wv##)^IpTU=4bk^LK@lw zSnlrrw8CmOS946HmXze4!hhc_*h5YUX*zx8>SZ{S`*z-66aHWQHjK{8{7n*yR3o)| z3)(-=KcKO|Sm@Zo32g5=d1jj~Y})))t6_z0QTlJ2LmlDkSvMNVYD)evlsn~H>e*u% z+~HO|#nvk%ggtD5>zlaOFWfdrw<$`mT#=kFb}!f?W@9_Q{?06y>SW!!9Mc{znH=}a z=JXChucJxPGq&3r`SqsQe`47%FS_QI^QpX^$>&X66<5p_w%l*2*ub={NUGiS+uBzy zvc=40sftGvmeu_63o+*EoHzU4<BdU9Z6=4qB&8;>Z+)n^LQ!POX=#0XkuL|<elc+Q zqp6!|{MChBTJ~s;OG?Z3`X`DHKTAfxY;$bB6KxW@(Lm2^clw9zre(b6WmX32N}nt+ zyR$h_-9?6lqdUXpibIA@&*N^D#g#!e((U{ItBO`+zbrlyKYI`VX|6&yedFtDXMg3b zaGf3eZJxSa*4~*XJ+iDK4oz!g(!6$S!#0CHgU<?iO`jc{gpVhD>B{=R_~Xyg>Q6sq zp7qw+<?HV&Ilu4U>HR7EcRt%2oV#Hn-!oq=#;d^W8e?WK=Xv!W{`HdCFXvsDc1-x0 z+0?x+|2i=)%QJ|$s65NbP1v*9;k?(q$$19fTqg;58qAfbyYw%;%xT54uBeZR!Dk%e zxH=np-<vLD`geB!&(+`l|CRoKwM!{h=$}}O-?zGpl3%}CT!?sW&83;v@cHT0&h)0g zUB5mjy%0D2D_zY{FsX2x%+&>gr~j_IB+{Bwrr;En9@;ed&xDT(DQExlt&p;1h)7nv z=wiEGV9vgKHzQ8J7h1Xex5AQ*pV~X$_Gwi`zpL%s(5%?I`O&<6)8}qoS;VnMi^KVp z&kMhky@Jy+Mb2s(@lEgjDxh}mdPYgSc6IKFuuB@JOAejg^Ca$VdY14_(a0?;jJy?> z-S2HVns9?LQnT-tYr5A-+fz3<pS*dra=)j?mCa5UzptBqswE=De#Qjf6+Du8JlhR# zE2@+@uPVxwzE-kRa{cV&Q!4BSd}~9)y6pov-YLXzwQS&8;Bn&>L-*MpX4ljEG{Pzv zN@8|BJkYZw;n?c#89!JGuck1BH&0)CBVUnQo=fWXG)?c`-iA3DArUvbEw^W+Iqwzk zKX9t{=?&e4%3o~THVAY4|FZvc*WF#U*Y|yYU2n|tYSRj<1v;N}6)c|JDO;T2SZ-8y zr7P}rj_)0f3lA=CpYvKRiGOP4wdf5gp-Y?uLiEeFCtZ9o)4@Ob)Ik-W17`1HI5*cV znlAG05UbI>>261PCaQjMT=PIJ*<&F~<y!?g);ZGC(`JR3^&Hy!p8XAIU)_Gm-da9) z$Lk#{O`e^NzGzeONOsTtX^-cqE!poIywT83{zLx9m_mWuN3!~jwoh3v{Q7UR%n2q( zW07K!j-XhEX9v#<|6mlJ*z}_=Xn*&i*J~bC?B-31pSRZN+{%ytno?6W7Or<loPOZ` z&*%T={_WlWvHb1)f0yrXQ}@@Ks26@g(cep~ch8DF+}(ULpRwguo|XL1y3q8F+s8Lv zN^d8&vvdi3PSlA|Y0lwW+PKSi$MQ#ikM6oC`Eup4y%#$SHtzIq+wQ~F!ZCN3{j}s$ zO(za0`m>vTp5r#DCuz#gXFI=p&3?kxc$o9bhKnZ{jGq2J-TSb)^!c$%K3#1dA3J#$ zRvdi)$Td(-GHasFYg75SKLxdB=5{xdZd|w}v9fxfyq|$sTf&sc3zs-QeYnAy@W;U@ z!Do8KeY2!bx~n*|&MkP-Y9{)TNyR<YMo0Xb#HZlUtH*Mt%s72RUnk#Y$*b1DAj5Yz zgW0cgtem)H##N!G4hIza{^_`yI^MCk>9+N1RdYmxxdyL5PJ)QU{SOV2{|-m&-#@F! zT9)n1siY6nr+&74ws%?5wp&wI^B&ik8!9yAlfg^dI}Kgym+$mr)ll?0wwt5)=3BjY zjz;qyH8RUgzb7jimOO*Ge#Xv?{NHZx|2z9)39DvKlTl%Qi}a70FW+XjJP0_cvo4;I zlWn70(#({7HY=(w2CaOx#Pw;r{njn}awS~XGvC)<>-Zz<%+m9|?bSNF#b-U*e(a}4 znxwZ`Zdc;7ANOm_s`%zOzvZmF5y%_B(ZzVERI%{=yy}17-%gkLR{z43Uu@BY#mmnW zKL0+oZGryZV<Ode^2)!Rxf@*l<DxsyQI2cJJ??Vb$2e*(o^ej?(np&*oyQ?d>?<xs zw0By*E8ME2YX31mrgM!<#0`^-MNH;JVjIp2)-g!(nX;d7{qVXi{g}k(U!RZuZ2kM8 zJ%3I0hwpFL|37Lk`}d`3!+xC%u2Rvrnzy96&p%JODX4$JOd;-W!fKnxpWdjyp89T9 z=XpU77t=#uZ_HPaJtdI5jN{_EJN&MX-STYC<x2O&)$Y64AYNGP!aL(?pvWl!@uajJ zL2N5$RyAHR>ai}nZFFLR6qiK0|5jbIN?u7F&HqAX=^ynbO?KsAiQ3V7UjD62?s49Y zAC=C9_}sj3&FX@~>8(sn;TbZU;~RSn&iS6`Y~6J7M5))mi9LDeierEMR$H)8_32vy zHlBNZk><B_uP>fqv_0dD@07x3k^VNHh1_ZX>KsDbuAHpMwv76j%>1DL-s<Ix0s@yw z@+gUFeM)q^yl?rP{?z<y=3G<jMZa8qA)Lljw#fAU<xa2QTOA)0&TZ-HKQr^%<g)V` zEO9xXR)5G6P~Japme}`M5eGE*l=f&Jb$hw)!%_q0q{<H#{0}{2V)uz&kxqE4<ksoI zZnpkX>Vg!W3F}u?Kh@1xGegy8`cucX=flO*Yzi`8m}sfKet+5N$dAAkoW8wFzKF~G zbK(DX@tkD+&PN|aPpd5H72Oi}^YCn2?j43U_LHB#lskQKlaMU$L=&?j%X93H-$<N) z@#56<_qAN}{+sVl<d>g&`(K5})A$=xSWnF}e4$c(D8g}ORtiT2?>Fo1<=^(^*WbQZ z_j>LFt^|2q%Xon;0#Euv#q;lNwtIK=UU<dy>gAgff|7rRe(jad_O4KtpSa_f#YQm= zKW62J5`5z4E}GnR^1O1@IYz28+V|LlwmYm9hqy8;*bl7!YZvtHSKHD_-vzF&n)AKA z+azJu*UwXq@k@W(@=IjCZnI|Gn)T7IkJkCTy4*X{v}9AkyT~7w*O#_0;tM&pbpHMu z;_I$V*qnDgp}^=yuE8Hp-DeSBcJmlJ9eg;;=6qnr3T3~kZf-BzXWPhYIZnQK_RWkU zFJ_Om$I?R{l&m{o6<@fw>da?e<s}9FTG|h$t=t^<kvBB`lhhXV6Hf&K`=9Hri>O+q z-1EpXK+0Wq(Snc#QfwUezx)(y%RlG+AzACfnN=5>KI`TMU;KS9k=4cVyU7aMIh=V% zCZ6q6>+|G4Uvjb4%~_(yBK%>9>7os5zdql1P1M=(>XC@|_Id1o+~2!0U#*H+eYp5y zjgs_c5h*5tJr8e2cxtQ?t-Nt3S!mjp83!xUmm40NKRMIq;kp}|E&oN>rMvz~aIycq z^)E_5UAdE;C;i~wI~O+cd%jTKZFySe`0Woou3?7U^>_Ad<(>5CW5bTHDce#)4K(iV zjJ{`BxPni7>mGF_jV@*D%QNPApV4Ja;!h8lDII-vnQGjLY17)z)=Pd4Ew?%JPQ~Ty z>ZY09<=c06P1=`K^*wC=iT7<<@8mW`ZqB=RagOrI%<`rkZ?8U8J<gJ0y63*djnWHs zrmYT6OV@HRAF8&9=li|?!>8$QriVTKuMqX?o5hkI<MZkJckMAU`4qfa#POhR>e;fd z+w$*QZG6A~SM2YP+4<|(4%`k|V{Gd;VgHA{6}(&Dv%fuUz{JNg$IO7`+SXmAzt4z> zH8fs&^C@e;68ot>M&VmK#Fp7qGxIx|zU#I<^oK=c&7Hi1t3I)@zHIV8csJ2xdvV>L z@9FA!Ki=e2-Vtm&A>IExV#li4K2w_m%aUBr#wl&(5vXWi^mMLQWjAxf?^j2DRsX#g zKK=KPI;9_%Loz3yV*V|cZkP1-<{M7mtPRFyAALSpNybG@4Ns9=^PzNslG5*^zx9pZ zOkyj(a(lzV4FZRwLOE0?YHC-o^-tD!c^vX@R^ivXUpRk1nLB@Tx%|Ir?`xdr3N7R^ zUaKa$^pkP_rtSAEKRqegwA_E)hIPGH^(D`R{Oyx_WN<o1#xH5j{^M^JTll+{KWsX~ zw8YHl%;j&>3M&@|7&^4H1Xw@u5{r`)7xr&4j3_x7a;9$MJq^zy2i9c<QFAjz99LJa zv3|X&V9k`>2iNY};-Z^(B72kcCoi{B#*}u~uE|s4qT4r~xy0R8=HnU>^uYJpZm*x+ zVwH(DyA9Z9d~aNlaPt=1QITmT{O*fg8#(3oJgnF+A|W#O2hYm>IS*y>Lr({uZVu(( zUQ`urS}B~Cwf5$RHOu}z`gDN%=I*mX7nOGE{}4LHEVYNFa;nXZre8`|KS*4?Z?JyO z>TA9X;!6a}=T+1$bLjp0sno#R@%YBcZ<oLMJpb?JFBK0gU2P`01)i+f|8DaVRt~j~ zKb#6xuN+){DTn!`Pomgc`NLI-x-TqGY!FUooV-Qrzy9rR{rwxX>W}^TKI8L;AkTT9 zv&!Q{^S9p)dNHF^xHT?IW8uwr>o)xVUjNtn+pqq*JzD?Gb(5!<Es37Vu~H>~H=BLw z_5&ZD+}Nyj;n&Q+R|`YGdB5OY|M<aFw&~8Uo98Zct2MgIt0DGH{A7C21K+~XO6R6T z&g#n%8J_2^{1Q0!%;uie?#*pBY1Myz7{0SFUB4rB*8M5p7Z&##FRWehIYrug$4<lP zF;B}*PsyG1_xxP$MmIO7MT;9IcuY~-5y7@SVE@dNXidFu>jF4q(o$Jo_Vsbrl{>kX zuqJmu=iSSB=7QnI3j$_ZJH!_5_B?NGtnB{g&kUarEmyc*SRP23GR#{Ntl+#$`h?C? zZBqf^-Mt&nvAL`7suw%yu*TP2K<)M0nv0j2H5jw%6L`7j%$m`>_G{P~<~vuu$Q17n zJE8XO{*K@Cs%uW0-aoX#Bkru)(>+tqneO`cNXfg7Bh={e9mB5%a_g-Hoph@!o<5Uc zFxTQO=;1ccJE1TyprQK+lYVHy3a%3(r{6W?dYDgAIx$0G?{Bt+2JVYz7YA1@yfnQ= zys~`dt^-~3PRI%<u2td8$@jYZDSWBZ0mZ2wRCx3kUR!E6zd4|;Dz}bfCCALY4WDNJ zG(0PH<FAsBB+K7THpfhrH$T#HEss&Zx7yj?)GU8STH3VS?%uAuJfYY6QVyT~tld;T zv6zSdnGMU6s}C3M{d&*du|aj&Uy-;;=UrW8OeL>t?lF1a%y>L6#dMbi6W>)8lWn%g z`cpEt^Zi~~q;QR8W9iYAfA^lZ|Nn^V_x<hhe~yKRKmE^gHfPP#8t3dJdp&NJsES$P z>`U?^y_?S_|7-YLfA`*xkI~<rMZYiNY4Awip28DV@OIAmF0q|a%6l8Cwr(;sJlF3o zvFr57GS{}gz;idPU$9<Wx3S+*<Du?UyH&3{MQ)y)=u&Bse)I^NV0g-l6`6Orvws$! zS#@_;=`N}M)UPIg&&)mWI^WyhT{n5<O{1Q0-xR*ew8D9OcQ0J6-J|EY<h`t+-~CU< z0-E=gwl<zt*ra?&$0C@4cli|g8<&IjozeU7vy?yPNLNK!xLf!}y})@p8n!2HQ@7Hb z$?W|2Ny&Dp{^XenQpJYvETyzV*H4+@$NTh(l2Vd!p=ipLU&eBM{crEO@9&NiOT6H? ztV8(Xb<WkyN^+aHHze`A6%l=GdFl85IDMtC`8}0$K7K9d<|t|H2$3j0t{$=Y+0QS| zpXDa!eEoWpb>aEo_Xn0*9Et2%6n)cEAf{F0j%jB7X~PR;l5<vho|}07_MPVzhbKDS z=y@J4`oDw8RaT_lY-+^3x6AhA@o@%lZSLCQxW3_B$ExQKFE}Qwyt3v%NX0spK9ggg zyQhRn@7aH{>hPq+wU2J@&VKWq^Q+?CSCL*b1@@GFS-2!1`|nOJk!833NkxQD+qg}~ zEpf{{QD)N$g)>GPPn2I6m}~0o@;fB?!JuPpze7OSEA2h=Pc~#NGdm<%uHtxls;5&^ zpvp0yrRjg?SI@pz^fk-A;;-W&li)dajz={(K3DwhVUcXvz9;qjBZ2y51}ZZ5j;lH^ znX&3#VUcg?Dc0LbkyqP7dupY5{s<LEoX|1T+FAX5UyA<Tn)`JxrT2?$_`lVr{-gV} zw7D{oi{GxF{^0EM<YL7mf5OlI4-NlkA8GslyKZ&l2}aGcA!2OIvOS`Iw_j{nT6k09 z*9%jX6$?IBANc1WB=PFuue`9uW#)Gyoel1Vea{rJ%`$2U-smsOrFSH`NY6g*T;(Fg zeT|<)9_Gw#R_{N5{rj6W!lzw~j8AVdzPEe6x}=oKoufgTs(y+44sAZN<u0czcW(^8 z?(+7#cNJ#LxZ7|+;oIcvp)Xu^>ON*Ze(*uU3}=>2m)<0=K4g2XQexT@$2adg&(;eR zO%PflDEj2`rHc$&UT2m*HC^E1+OuZo{p_75{wlS~|Bg&QE@72pAkxb4?A`nw$JQ$6 z-Yh@R79fA!MP`nRv{LYk8=^%#^2s?`x;iX+*Sgp|kIr~nF=y`Fb;r&q{z_^1_}<NM zr@hggte2nTE?j2SZ!<osIpO1x^G;vH<kZ8ub5v99=j|;xuc=zJarUQOhKdarf6r#= zPMrGkY{;vSuv?Q(X#_+({OTDwC9orK$&v4yQ`7agX2se*`kR=)d+n-b-H>~~1JaJ2 ze>St<J^KFk6&-wvzb&eRw|n$XD1G*F7DI=Nl+pA#Ypc5N8P9$4ynBz))u(xPjVFnV z%Wbtep`@R-i1AW(ZGTUVsCZ+OeL;?hM6l!~gNKaH{vH++uDCX)3pxFn-zB>>q>Me- zaq6l&|CEmE1#0j+Yz$d^+^OP9PrT`SCl0A83C+(Vatu^l*s|_!=s0E<UwN|b<Lvm& z{c?7lKX!IrxNfj7YPaL_+1g3h|NUOtRC4{ppWAOeOQ!JL_`lWsjqdk9(!EzCjvT8x z;q+ux+Fc=mUyLurZ!@yp-Lo@UaM#0sxhfOCO=v$8=k)zd@b~X|VX5Eu|M>oox%%Vf z|78<&nN_8piM>~vCK@-x`F74vouvs=i&uS#Fcy?udS>0azAe+gfB4sZVnW0A#W(!g z_%qI2{C%jaqxgctgYF9klFL6VXkH`vSLNA<Z?-Z^l)SVyiPYIu>-_lb75F=4;+;D` zY>rl}k^ZkMYI{8A%QxeD#?jZ)ggf)3HC_iP{ZTx^$SLWtzQv<rTKoIu1|oY>H*5?D z5Y)OjQ7d)n19^doPqtMQsy&yseB|sZtLUlz&)53(nF=Y%i*d1{U;0XT+}u|@{PX1I zg_(&H=eKPY3F^}8ww|on{nxheY{j%>*|`iAt<QB<*u9vkaZw}d7NcT@lM#>1l(xTX zOS0x1XL@Xx@}=>0pvGk{seq3&CC`T@#ov)TW;?TjUo~}WB!BhaH~aGfj1{Kba9P;j z>0(;BSxD~Rv9@LM8|R5Av~DX2=Jd-gsZiAVp~P|OMdIW4+DmrrD*v3etaRO3#UGoN zq$h2e^EfnRhQ{~Em6mCrf(|KjSDMef)V=6il~H|nWZ<2PNjfamZ$C~xE?_eCediT5 ztqBFS5h5*9UlwFU8SGv?C6i06@^O;O;m`B9xl4~kM{iiuuXyHTjs*9y=dx#%L<%fE z<eRWXy*wABeXY3g_pgQ+l^5%|D>U*aojbI9%JCgfzJKCgx9*$GA)z?cTPMw~#>`lt z5y0JO_@}2>?y=>&{RQXaYECBqi|;>X*M4~8>m;G03ii7hk1U)yFYJD$#e;KiCyRdj zKke_6ujX&pn%{4pCy=zbO-+z(!Ka*^H_sZCdM{ix^Y<ZzKQ3XST|p~)&YX-DpLR8| zXX9Hp<|_`nezD*GxvuuZ58c<UF*!4Wn+x*ZgbM7vk;-C}s&(#oqjBw_^b(e|)5fZC zT|wflVGbFKcU)skPT6B7<0>Egfj9Dt+S;VK@B4m<m@!S7)VJH`h|rv`zK8!vJTE`h z7Ir~jXJ3lN=8oU-w<1#9Il3>NZl7oGbUeiPqq>o@FZ@PON(FZq9Z1#fjt<oa-<C zQNLt;cEysEEoKrCOW&`bbYFJi4yCPM4lLf%SGjM~ldm6YuD5+?SbFC6+EZoQmizZF z+jdH;wufutx|XZk8IN&WSh#p^VRv@<qO($B_oc?-1uLE!TF#vERVu(?Wh=All&icO zQ(YPMI0mGOUeh=uoOsUHBC4S5hUzAxo+*lglIm904valjisyXOHYL>iDxKF_BN(4h z(A&6e{@3fgP7EUH#@Wfr9Koh0hwe{)V8qZpmHWPVSD|r7ZA?y%zRrss;cqr;{CFf# zem>r<XV=N<DciHAIc>W5xOZ>d_mCpnY4;PWdotB#a=*>U3_QM6Naon)(4*56e~ML! zPSjiWWsZ~bvTv0qUaYyqE7^XA*+*F+{v-Ru|2jHfQUkAAv?YF8t8n;db&p%$kN(Gu zxlK=%e>1*jdfai(WzXvHcZWA`|0DY@lvi&4qmo;~stZrXh1Vq&PU&=$dVawxF8clM z|9i^6Ru_i;Ti@`ZJV4!3Xs(Ke%7Mv`6<U?`w=sU(U!1i6<LmY7HvE_V_RPP&%kX%e z<%P;6$K{S)aXPBfAI`R7%T&o<YovOn-(cTU9Krv1m!Rm%!+Xr<GTZ#FtIWx-`QiWe z<-@ltPU`D#J8yif@$c)dM$K(&mkKgAi^nAiF1D7-Pk!m^JGJ<5lV01bj}ClN=Os6% zTP!!|i25!wb)M*vc**PkwlmL{{9bBtzq9`C=loSoJ+%TY4r04Hqd0o+GzcH|`})-} z_YcqM%zBm1@@H{Qo(UFnb$hq)NDIk+y#BAiKveDWKlhF5=3Hit1_v`)zr;wexh!{3 zin7XZ>YkC-QJOgCPU_vJCObFgox<$L4I~dW<?cKs*fvMo!dUfqW*d|Jmu;;jDxM|D zt8@*{moGZ4IzeS`LzL!gM)TcE=CeJ0^C|n@g01CeDpSpzPN*+h67}Awm0A3EhwBC_ z{S~pdx1W$PJar@OWHZOM|CYXrCcKBO&Y66;^F#9a@AUtr#jhB28pIo!<aVcD2zVv@ zbZhi?quDx6HNO770TDNsm_{=_VoB6z?N=yRue0^QrMEuOO-l;RiprxswRa0NT}U+4 zvNo3HXzUQYw`p^9{FcN24r)D?PkC;1<f(wV-?2?Sw>frS@)qMXI3(WVc-<?}>Z$R= z024d;?(`SCTsI!>J$Tq|hDSA*@(!lRj1vz+1(*~yi&k1*U8xfEKwx`-kLgdgkFq_6 zQy$q0EWEkVC@MT>@2~kBVM=Rz*Ay$S>OX(=n+VhF3#ChB(kf#n?EI7e{ax+BxSF4p zzmMkE+?7iU-`|-mVq&NIsqubsha}g*;EEM5-pv*L_W#=IZ;!9nrR4AbESQ$^=$`hg z#6-(^)0o!G+~ogAQn|InEp)5V^WBS9Er^|w@FV8YBd@~KwzdbWg=g<`R6P*(g+GQh ziDi>o%RHNXJN&Bl2yIa)IJje-kM-S_OHr>BMcs2x$;^=4H7QYVN$#e;Il1e!Ym@!E zZ+NWuCC0M$Wrml%OWeLg!M6h@>|>ieeLJseKF`T3D`v+pnzH?s(FN<Tzt5O{)8{BL z{+1vpwBk%>-@XHn7A;(G|M-EBX;Rg@Cr{<>J$gzYF|}DuG2MA*(zchnJCCn<zx9mG zf+oHzZxYN}lC=VlDaB2wzxMFUgvRREqNZ0*eb1Eo^Hl2L_bR^qx>4R-7j8&bOT@+S ze}A|C%T4=adE2@KfBm|8R+;`~T`Pq+{HFL#SuXc;&Gzf3Wy3=@-kSLQ?Dw5LD};{u zzWp;J#y)<x?8P~!9pw`LH!z$mJ9l#StYE)`95<Y!4t$dAQ4uiRyyiD=#oZYb6;xN` z>lm)dUBRw!W5@L0qDR6jEL^i@{U~1Ou4+BwdPdHbMa(<%=Ct2qpO@vliu<GgW80@w zo%Skd&I#KvB{FK-hXzsans+nL-~RTbZ|U{a9KXhi$NxWj`!;l^&1t)jpIlb{QD3~# z!N2a+#<hGiKfPM%@zRnlNWrO>M|PjHm(}Bjxf?QGE)~@csJp-V;nqafY8eAgZ;`pV zDev1ARPOBK`f*n3@Rb=K=iS@3Mf?B38%7+LUbk^%8+h!L5SjJ=-M_u(U6bd>|2k$K z{8PQj@u|I--JvOht}EugdHMc!?)GnI?plBQ8y@?!de!}Em3fg@zSn;fF3;J$_<LII z|CQgJ-g6o}z15eva?QsJGgJ$EH!LaeK3n=`<)T^Z<=*Rfz0PWyygVj<jq%BXl!V8U zVp>+*PixA`lFr){ub!`Y?8Ha5)TIKC#5LF4e4wd+*!Jv|$F{S!ZE<_N^x^{DWfwYL z*0DZZ<aTMgmDZv=AE!hYC7n#3;yv%v^U5H7-qyKZddpvF97vlcbj9xSjxFao|E6a} za%RL;hs~9IerChbc?{wQh31|}Ec9j;)tt8Enux-!>n?IjHY7`#bCip&TlmfK&)RQ4 zrOzev#~%1O@h-1O|EHewN4S#OIzRfXSo^oL{xR$CH_PqwC(gVw<<hB3XN|gAqCU(q zTP7SAS9RIc-E%^3$jzg|$FzA)tkO{{JHWGK!74MasQqo5E;)Jp+G*ffQB=9+X@Z5= znQopdaX;RGc0D*T=yqx+1;l5+p2>B`r!cg_J7iLq_v@1Bd}|J8rNw4fo>Y0r;pDT) zxB33cYpXxZS@tC-goCaBlFoDm?&KF60xzs{diS=x?y}yzKP(2i#|4;<7>Mb2eY$!6 zZ}hkK|IhzFEIQTNn6ucSRcv0!q~@TXr}XFL&X8DkX2qtNt4bQrEH;~^6zR3GZISmv zkA)NN2|ioO{pqIF6rW9rJ<Ntldq3>qy8nP-neKa!1Hbm)eRZ_v=j8fx=giK#Ww5+{ zbLhzx1rIaEhl^CRRa>?j%RW=P6u;0Q@zmU&hU)Y8w~NQ^%8&nj%>2#6$Dd8FTxQ*S z>#SMbyiI2UiWdelo{n~0b^q?}?Qg2r*IkeMe^Gk%r~eGafeZ)rkME70r(gCuCw+U~ z`x{>6leHJ$$o(jhvp7>^$z|r2)I(=(*+=Y;c&?zDw=472`B2ww#?Cs^PK7R9X);TV z`ImCnGAHA-y_Ui4+hqUQS?*0eZ~Oh^24i{Knk-Ap)Z|lVGE~0!PBvnw5OZ4i+$$>R z%QD`b0-qLqckx>CM_f2lcupJVhT;jA1f-fj%}>gcjr)GTnwO#dexUdPj{ni$5(3Uv zR$j?{@IfJB&*L9|BK4B~tbD<}=Uv>)P3;{8di@#fXYTR#dP%6bo;zq#et78#jX68Y zHQqnEulDRxaKE`D)4d4uD%QR7za&4{F`HSK6|s1vu{0KJ%-dF+-@>kQIP9jryYR2Z z!u&$E?snGsH&);OdHdU~*Y{)pf0^-pmXA!wo!h>?lQZV%Jz#P%n;0M|<a~RJukwDO zgUlC}S;@RR_`X!ZkiSmuvF+_CmnE*Z{c32-Ynzl6w_aG*bUt{2dS*k~O@<{LX3eI% zO(L6xmZ|Q2@<p%5uG-?LaPR|_2N|wvv%@u*byJd4b&svp)^)YdxLLf%p~5vM|8MOT zrPbW_!Mi>z`naf9jeC0_!-DuTQ#R<j{7sVI^Lzc9{XcHMpR5x6U~BuG#5XxjSLf!M zpDfh)bnB5I$M;jo6T;t~$+&8{U~11HFO~k4lOk8jW@>(M(3rz*n^eJLn(!<#|7k%q zmsX`L*GdnLm-_`i^&PU=`9oo!*0PuNU)R;Hydf!ka0*kQ;kCLM9s=I(S{Emzop+x& zzxvzO@O}G^{n2;)k)8YDTj#tByL}!9dLK7&5sy0egzxG8L;u#VH~hc-e$DhY=hmh} z=eV1mOg@}-W6rs<=kI3P#tF8|Jx#c=QczHnT{uW6#qC(B`m)t4xnninop~R&SY)j( zk4i}AYs+gp&3Ra38P1<taW8O(*gv05TEDaA%$v9FSl{yRwsDWIhfk~v-|_6IadOv8 zC!K#ky(Z22wl6|G$mE9qn<vYvMJuyZdVbAW@;q~esNungquJh1-^-;u%$c@gtNi?f z@-qY<Y%HoeIJs}e4?CfMF84QmT6B(6)Ryyv!m>poB^Q5q#h;%coc`VYs!bcqtBY<g z?B}^JJu>^0&f$X@k&0KIGrrz_yXKbN|2y+Hn%}Fx+Q;otwsxV79?yO6*P0b+$;@+i z#OWTsHzQCz>65@c%kO)5ZYOChU45$EsqxXGK$TO@A^Uv!PP?lZWY?`KHM)DIQu*c- zQHhP$MJE}Y%5G!dWK)@cR7Y}Bn~L2LWB<MmPTkC9Qw~px<TzXPVu_R6k{ioev{XX> z70Nc)SLv^@E%QF&ATH{ydFHvPp2nKEl&rvx*&U5SYCm$+%dXbw^Zb{THqi?Y_MbHG z%#B$JTa0WJ*LWKI^Zu8k^t5%sjEX)M{n@E9hKj`%=T`l>dhPkm_wqOXy>dSGQBqyR zXQtC}TSf7{vsN#2XSZuJD}Bu9nHLyYa`awXq3+>7+ov>}t#RExFIr0A=d@KNPQ0sU zyxNg|kw4gDL3@!?t%<m0b#=kV^=u)jDGCL-UMF8`)Xn^yqnqE&&a|rd|3C5Yr~fDY zeWac7vf5@z)T`gCwVuZ`w-t)JE{j=yX2<)q*1zwq9-g=TFZ!+i_1f)gGxlGcT>d3# zGuP#G^Y1zF@@w4AGVk7Fu|zOriu~Cq0p&BY58FCfn>^Z>c5W?gO}R7sqqS1#^*+1Z z3y&`0d^ssWr6|<3P4<w=$GWQHCOvxk>)(8O)%AOYA<w3hwm~Wp-8@p>&KpxoedkTJ zD$c*=l9_Z&DdcqR#kRfacR4z$6dnfVomn>N-u|-H>w^W}SKM7ycKz6-gN9pLFFHv1 ztFbJW?phZ0b7h5!dPUmmHK(T?^YTw*bwAe2pisp<@2W^#^F;+`2AjsDQ~xqDZ4CE3 zV!QThH^2PfeKRL0ite0fd|BdoUdX?w#}!9X4Q{-ainHE4zy6=-?K!z`*!O?`u6)?t z<-r5ymmU2RDkkQntYvQ#7w9TEo+8fH>akJc>5|2%T*9KSW!TPyKE5$Av3YImi!XwK z8o33MKW;vmqS3l7V4mh%>EujdS);{;E30^?SRRco&}K0@wPyau>u0rCTyF5ZHamXM zDN&NULT6ih_zbTVtB?PRp7MUJ<We72H|@JWc6X?UEj{~TpC`+!n4g!X)fsScxC$TU z?R~N%bKm57(?z!me&t{B`<CjwwMx(IRRh<5J1k$6l7G@=-ix(6E~J#3X!tx{_AYkU zChi4|A7fHQKHNDo@Alid&-$KE%X$3cHXm1W*46HN6T-5S8KrIFrJtQsV3~3$eeTXa z2{Vq4ACXs2cwFlAo)F`?RXX%-PRjS!tGgyeR5a@HPCK;Gcv-q_NaG`uxQFkbbNsHq zDrZx(>CnIAU2}R=d*`spK0Z^iBFV>%^ZfsFZ`aoTzkR>Yrau4O;>sp-?p7|r?OV^= zeNO%T;^nz{a`unp!q!9=M!vh*uq9PwX6NCC<CYQI(tVk8e;&?uO1vNO|89In`JEru zoB7U`>vMR?dL5mpqn?#o?o#Qc!pf!QZoYG8z1?A<wA>Ys1=0;z-u8s8*;v>5d+uj3 zmN@y<S^uK@54St%w}ph&GrF-=$Eem--_Vm&{<lm{lGXnFjmxUHROheT@GCZD(Us<v z1z{mSO|C8PsJ+wex>Bd0w=(3#B9#V-JM(tkh}gALTxN37v3ngC7%cfx(`<jAxb?y% zWO4C>j${9JSTP-UpZ4`bYn|j_@t_Zd_6nA|yiS@i6CZ`eB+l)BEWB*@te|91jb-ZV zc8O`mE1lV}?%*eh&+oq9y>sja&(Y2ci?&}_@G70>c5nvg^Gi#PoD9C{bLQ>*w%UGo z`O|Ldn_iu&3oA5VVqBIP*dZsoOI@M)tmn2uUK918`7=Ih{9Us@kB8mit)*)~v!5W3 zUXTL++@Qr$+%X1XGPl?Ee6)(s37I5y(nH9_HgDV3md%qIn)Oc=PJ86ld38z8YR$Lj zcy#TXcdlW!SrX?u%iCs_S=M5O+?DqaWUVdxKGS;j_s$&^Fa76rZFWAGru1at5}oyL zkGh*h|GttQ#-C8#{c^JK^GQ2*eF^YYaXwSib20ivUt7f=*SFJWho?TiED-6@q_Q++ z^TxEwt<yg9hVoQwU7kF(uH1V|8`ovlQ#WtsT3g$0)_LjeXgKv$$%f3YfA(*w`nT@S z{<QwE^Y<@XFHTDIX-|4Lbzx6l$C9-fDs{W8;*ZPc{Lf!};{5FVed#A|KU)&8P_%7L z-)e{7&HVqfe?NFtI^{2K{*LM?w*rj(%GGb1h8)l;nzh`(K(t@<(B<#OJoC4;DZe{* z??tz<k{A0q)5GSyZoyBM<iEML*0|~t2Y*9C`(G91H5-!SxSrSqbCfeiE^<h(v3`6d z(tTcr+soox&5l8nT<W^^>{1q$vt)W=y5ObQt2fnu<W(%*D6jV|tSXvRba3Kqk8PoG zbyr#gZap!(zDQNM&QM!vd#N5<!Z+d9HY#r>U!H90VkAEAztdtDjt<se4f_OD{vEyI zvort0oHNnW`49c&e*U~6XPTOwyP>Fo@TJI8CpH|oADlVss8x05tH)A$Kbq(N+4c9s z^81?~n2S`LK5^>ik~2=LOQn`)J<WD@KenjA*PHoN)Mh`cHGh9IMK&pKmHzhsigBKc z${DTctj9d2$%#FhetWle{o*&G?T0-+^lXfM?)-30@!r)=Dsw(af7<29(O_2C$sDb@ z#ml*M`G*5*mqv&zx$$MMrg?b4b3^{vaJPVqwbg~?tR=@!)js^;VWH95Ev<bv<iN76 zaRvH~0<EiZcm!E`Y7RBu$vxMg+0BtSjcYT9RrBwpq|J|Jt>FoqdFT>D@<HK?G6!yG z8o6D2Ez>Xl?V<JkZK}!V1%&o8Nwtd4_y7AgnNy~B<(Gui%<I#b?sN8jUb91AJO8Bd z)P;_&4WY3Q3e*0?9_@OeIE(kx{raX2ZJT42(xvX5NP2ZEV$JoU9pW4QcYnJY{?BPj z>9<>NE(mSi{7d+Z$44i}dmn6AH$JnR@_%LR`P0AmeVeuS>o@C&^`43C=T^*rWE`h{ zu$sl<PmRlbNvEf8r8e(Ln15CC+vk&63+CDuYp*M}c@zGkHuAbpoUmxNXpqXm7yG~O zuvd8Gu=Get-y#EP;frUUXO~y?EOK3^v3KcuX;+O8#uKO9x;TL$k9p;-qw_K=*JW*= zH0eg=EnBU&0)b}^7Kc~gOU!SIzkH%n(>1%+hk2!@>-mryp3j{%n0Y!ZpD>7YNE=Rl z5q`3#!7Wz#GG}#lq@Kf*x#xKl98`}ty_h?HduKtF&FPLCTU>gdoy{|KdR|%|oA`z| zz%0nYFg#BA(C2%CYaKF{stL9{J~czM!aeKs+=rVdaBEfjCik3g;OkqnY-QPwkAKfq zt-hyxFMaw+Wrb_$LC0RLO>#ZQ+WWavX3`q@hh3H36Jl*6#GYr?e2Y*QTDDn@o2Qt| zW^<x_dt%_(V?B(TKPG7|uHEk)$$WLz=0_`eCQaiAetNH^=17@x{fX~4Th>hX5Po-L z&itR(&pu?>a9ZY2<cAh6+o`(@?4+d^m-esK2wh$%f6#fQ*|CW|UXnTg0#~SRp1=Hn z=wmala;qsFS4=r~gcMZezhqIn)BfVfkzdaiszmZEJ2UNQ<uX}D7Q?UJ`5lfHmscw( zJzY9cL9IV{!uE&1pU&WLmFZ}j_4}jER<@Q(jVx2GP|f^efmdN{%B<HuZQ?R~pR{d# z7h{(~NAt6(jQ;1%bb^Xbq`&wcU^RciNy)B5PfmV$KC$6dwppZqVYAZjCoj{L&TQOY zbDA$yRwQx4o!$R!Z2p@*lRx!eVTtSa8CFh4N{(v&hh7L)o^QUp>QDa7@9}?4r+u$I zUiJIg#&o82_qlpBV+!|c`So_T&3?A+gm5E!_~NMBSq}3S-(Dmw%i%k5!m8St_slN| zT+Dqh@OI+z(1otP&8ybcs{C`E%c*f`*P*}Dr?+1{P%(#VyN{BGtd9+cM5ML#-MVXb zwcowJeQTD#QD@n2EC2T<x5%+|cOpeUu8h@{XMH93a!u)t_I=`a!g_yLztR*D-}kC} zp>0sgo6d=RhY!B6bT2>CQ~lmI)@fnRZg-j8X<Cu}_kSApCd$6#Z+XY_@!v`TRTs<q zYj`AP|2a@Pd&QlAridq(H;ZOk$Vrwx$q}!5|L;v+%Figbr~7?cMamb%{f>3npq_F? z!T#Ry`a`AWDGnx5o~{ee9TVU<(Gq;bEzq3tWvNTuqnCUEb!sJk&%Nete>U&4pXIFx z)63EoE3b1&e2Z4l@92+8zQO!LNc6i@Q_zj#%^!Cru^!pB@m}ZG8QIM{>KUU>8a%qO zalLYfkFr>jgR;m}K6b-vDvPzBPH|#=bRgsZT^XSVXE_;<?0fsNMrh7K#sG1HSM8ni z6uVBHskB(KWMZCi+?`Jc{Cs|DNq(L+BZ~dU#q8?$WqaGI->fxqStt2<tJ+3?rv)?i z?&)_DNq8reHTi3niC51(@soAEDw1BJTyJ_cmx<PMofdaF+HzWhhw(huzo#{`_&V0q zYb2LQ&k@SH;%(6>?*1rw#*rDBIX1J7f3;QLJ-2k><@HSOW8{pFM>3rMwq@1M|7TlH znrsePDRF!c*Rl8?o7dkk-~a7>6Yt$68oCMpr#t=Jze(%=@--jSGxl#hqjA__>c?YW zwAM-6-Me&M`%mrrtNAzk>%T19`}f=L%qb$3K4&kz@a{j>HYc_6s^**52Bx-Z@-EFv z{G}ULpY|5BXWYs6KB%5WYRBqtpLf0Ds<d!-JhEz$bI2C+#0zqLzcY?p@-f(IfBW3A zb6p1K9!x!6`dU|N9j}w+qyOhL?%$mM?`Qa%`@g;a*VV{>Us<i~93z$C*UWTQN0RH8 z)3x$LSC6ktN%ApSmHS4O-`{_2{l~3O&IdOxIuXSX$Scrt&|%}JINqsWPEAXnxWZAI zqw!iVSIVga6TUt#+w%HLO1k*;@SV%g9(gg}r}Y2f-{&v17w(hR772PL@syW0rA0IF zqyA32f4`O5_D&H?3BSgWIIZhxG2byCNAChrrbA}WCA$6Q?D;0Qsq^=az=t)HJg(oC z6!~y%!nPZiqpvz}vaU*#nijCG{N0^Yjw8oAxO#Zc3hnxQ@yxo<$z7_aPSqxcwb`cL zI4*E1&6DX${jGx7PwGn2M{{!Wrlo&i+mk22l;C)aQ7FKt$G?Jk8jE>&7x&am)zjgL zUvh3sXY24At;<^>=fSTNvHLjRT)s8`4*%1-HOERiYU9~ECccNJH5EI}K3mZj#qri$ zt}R!AA)w-)&g_O$vx@R<{c9{Q&0^CG5ZlCh`0LCIg5ClwKV^DrkH*Sgjf)Fq<2bZZ zD20t<zrkL;9)<9PFE^TVwo3CUwA?$v@$JgaN?VI|SMHV{@yQDnwtrYSq2<(s2h)yh za7sSS=6LN>J}1BQCCRlX3NmDK3U};@xwZe-U-=tqdnWZR6my8S{ePb2_Wj_$cRqjL zwAv$c$w!BNM%{_t=O&AEv+USk{yOLX?d2CQUBCJ7{hCwvFEKAap8q@VipX1Y&WLxB zxoOTXPEBID@jdX(-Vc3YOJ9YaKNQ@aUb6P;nyGyJ>!;hlv5ijI&lR5Uz30$w_BFB3 zRU^z7t(RSw=Ekfhu(YB4JDc#9!yD%1Ro8u8_V>q+x{A9=8P&1n8CQG%-s`VBUiar( ze{SbLk+z*8Ob$D?FPXGZQH1|-`d5>8p?i*Q+vKhGM*0r7TlAETx=x%eISMw<Bpqjl z9XGZXm1HrU%bq=zk7=hvk<cy62`;-gO>AlRy(v+2XQIIh!$TjcstWhXMQ*)*EH3P^ z+(Hcpn*&Ykj)kxIww?dB$MvD~|Er%^PVIM)3}56NQ7#~GRo&UvSwZ_7&)<sMce(A( zPtlO)k&wKiv*PH>W4})PXpUiG460@OW@G)_OsVMNo6L#jzLioB^`|R}w>`^TVg4}v z<kK*dbDJjlwS>#9S<6!#mbikY>0)*K1*xrZi*DZdet187;<dxMt`A!|j?YNtQaG>7 zqrdF0>4{~YyzO}>Ub7W4cpb~iJ#qQm4&8b^SN8K80$aYcZg}xwlZ~fATyz!Fg;@4e zuhP7hX7>D)pQgIH=V;<I_P~-ADmPLpKi};B6#tQb!b-*5tfb|R6U84tN>egW3*L84 z<XOL*ee0rS2E2h0dlJv9C-JTN{%oDi8XJ?P9y@2P^qh3*)T4iDP2%$lqb$}OJHBjr z<N}F1#=TRrw4Hgj&-A+Y>yOR1vJIk5x#qQ1rap3O7e}%_HC6OIZ*f>$C0(tu{b94u z(mQPzoV1?*;(1+L|9q>w!+{`;idFZy_3v(u|8q<`@MvLu!^0qLg@k^`W2dfO<LzzR zKUGD~(Q@bW_ox2L|NB+`Mt%MMy!^dC#lE*L`0IAqsd(+70E4oqDpQqyUn8RxQ=V3) z#<F(*-5k4j&F#<Wx%cI6x>nDz{MzcebW-AZq2oJ_U6ixGwS4*1g=-qDBRy0XCU_^l z`dttwdi&;=o26f#Yq$LG_-cCN*3{Rp&-~bB;On(=3+ugCo7!09bn|a4)=poOyhkHZ z_wbBk^1Z8k7)>fuukYq`Ix*eE>EX-GUvke#U-sk<SS*poDk9-NKmCP(;rAw?6IUyF z#D434TfHsj&-TSBx_c8HA9%m375>?G{qtwBnG?%AJzW-`5!1RZ>9{)Ce!r0q)0_E` z+zp%7&aaM7kM~YF<8Up<$3rq;f?*4rGxt70<K9CNZOi)u?hEyn%h?|j<qrOpk@~<+ zZdHcHh9@nDk9xmzQ{L3+b@%>zH?vL3O&*zN{AS9??rM4T+_Ecs)4V3>7j^UIG%Ftq zYm+~nqiW1%W^iZ9--}mftho4cb-<mrTL!(=22WOg>l0-4-RY8)y5NA)AFZR?j@GSA z<+Q8{jx$$dIUt;M?C?|#{->VtTh6@-yK1)Bw9`1g{nkzC*9Lp{FghFwZ7~lHH^|+U z7XJF#-M2Sfj<BW}YX4=_{rt|BEvo$kv#poOp^u06Y<{D9V9Exa(^;_v!uuX{&pmy` zcAe&a(e{5&-bC&${%v{s+J>3u*!kCs9Nq5mC40wqz7?uoi3UtpVwP>KX_?`!Wcc!C zu%v4}!@0>3zwDNs{lfX1|DXE*?A_mQ+P6Qyu=lCqi)uZ?I(8<-Yb(F8nlI#4e<E=u z)Z^{-8OA)?`EQt?{^za!ut59&wEwAg^}?LJiK<_HmZx`d)z8*=|2z8rPxWsH{m;GK zyIn5g7}w1+%TvzCS1-GeEbM4>$!7I828DzxckM6SSaWyw$-Hb1ciZ~smDZZuJtHp9 zDr>%Ow3#_GGg)g!X6}v02X`pd>i2fAd|GDz`%e1Xn|G({K75<@hsz?0=WocBHEoia zg?(i|e{vlyJhSuI?yYsd=6>sxJQ1z3=2~*Sj?l5H+_H+Lof5uAle`x+E9?^uUL6~H zQ~LG?uCi}CzgE<&j`5b#tekIfuEpzXPp{5?*^e*t_GsJ{J2ih}j$}A1mp}~5;`V5t zjjtk9ZMWwf;Cbz9R`&Ps9>tOs>zZwuy`Eo~|1!aeyLrbhsmbcM^*5y&^ssOEs4i?2 zE@~C~^wP<9m%p|8*Oc0BKi_((?bGx(H=af2Og#7U^U_zfqV>xUO0YIRs`UD^kEK5? z>Y}rliMDf@fU{3r>IF*{(}@<`|Bf6<b3U75utm>2`}EeP$q6;;*Ho1&J6o=pOmfuE zSabZqp-l59rNsgb+YH|C)xPzj!Ccr$`SA{st4G!LE)zLq8>F|^`gMz)Z`^K4bN_`8 z8}=l|-TN?olh%|+D_31J@9x^?b0xNE9p}xquY0$fltg}5s^Yy%TJhFOucw+_*V96E zj4w(swgxl)aE#>b`>ekHW^izxnXRs{kt3@pd*7*b4LxCNpY0L(DqYaXlk3*FqO01b z?Yc*;OGw491eb#i9Id+#HPpYqU4LKB_NTzYiB?Ar&E}nVamqZej>!QNe9tM^+E;GK zk(Cl=TUh=7o^AERqrbm(->*@fvOnoxtB2F+sHZK5vimKsuescCU9aoUntA_M-`{*V zdil29Kfe6>E+3?K__l+Wx=Z||c}7Pkt5$eFk8@c&#j0(7#BW7TFV&09kF{*--#@Gu zcDs6L7T4Ynf`Kg()tem;eGQjd79Nmrr~XIy@3>;-L|)U18!vkK>&0JBWn;c3@onLy zPZbM!mWl+oyOmZ>;oxJ=v}-loBIP8!lXulr#Vt?y1vmW351q-(bx`o5!0F@G0cUsZ z-*_jlH)2zO_5y|%D&`mOB_ujbE?i}?qv-QTJ<(~2S;<l-cn+FqT5GDjmb5!5z2b$1 zMD<d^L*hZnGdU+5xolRk&TQTDhrcBGSiNspIjKvZjuKpTc!A{-!~HYuQ{#U;nZN1! z{oi7|9nGn^tjj9>GH=Lbgg9%774a#}UcSQR7u#?9P5n1+O@F(+G3LUAzW;fbEDD@+ zdylYIaU7OjsOPif(~fl=R-P-B_sn#=Xu3#lYwa3QX%AQDRhGQ{%Qm01T^l93*JsbH zq>HW+7XJ3H*UwI7Xz9D$rdnch<@z!elclu{J?<U3m)`H56!gYZ)1~Rh;%7Ds)AnS^ zxh<W<@avm%LDDLz&=ne&UvG7Knt!9k*R62r0mYqZTABt&qn3BKfB*52PqIe#mXmEs z#DT~kD|Y&%JQQL+^iUvfV!NJDm~rqwqX(u{4_Te~&)K(fYae;Jugurr>v`^D+GZT} zt;}aQ8~xv|<^SK=xM=6a<-cc`I7+S)xcNE5a`oCJ9w(poyiYuHXa9fJ>cDyRB0mKq z`$|sTO5XVK_Nx7-J~6I&_nUR+CG~H2^J`Dbt#3PW^y;p>-AC;{@7$d&@j`6xM9nDM zZk}0&Prdl>>=K`TENJpUjrXggp8H?mNloMUQq`KUHu}xY2fPQ8z4VQ@*-w;imC<N0 zyr^L|+3-P-u+-7_0Rqbn_ur9E{O08HR;BdMo7Q-zPWej*oFxu1iLoi>2w&e2cC&E8 zsgk{Ab8antx^qQyPv|uFsRrgnu}ZyD1h!jgY;ws{WV#?Y`%-VocHSe}N9x0#zCYn& zzH6E1u>&cOmVUXgV2`uW4fPX@IjLa>jlawjnC_9j!T447J?TXYSpqk-Ew_wZEgx>w z7q{i%oKp{0{yejHwi3_lhR2)xIL=Nu_9!XW;Lr8*Z~61rociA!x-ve}j8o}S!`_{V zyY30GJ-_--xBB^y23ZI7&6kQ_IM2Lp%Cd72muffb!3id5DILq3&MlfG{d(8>#0ks& zzyImIptbql+l^0ZTTEI%nq{xud2W)slhV)l7(ZEM^GghBkN3~)o3+Dy>1it^rI$MQ z8bIr+zRcG<u+The)t5Sh7oK8|-zT^(ddRVg(dowZ{@D4MF@c=#9acw#t=N{9s%LBC zS^B3d*KNJ*6Qj`n)oSl$!|V_96`pi<n4tN=$D>6j{J`&t)w{2>R9QzEK0hC@?=hoO z{fD5c7+c=SKY6^=I%2r@PP%kic<vhK6<Y!_LN)z0Rk>b=-B#FQeM+fa#5+Lw%0><| z^&aWhZb#(}OAMA+NO5FNX!yhM{;bcvrR&arS^Q{aU3^E#{`GZtZ~p6VzxD6#hpy*= zOPv;fpLb8IHTz)By`9Br)5V{En>zo0<s$Z5iJv@fX{<JoU7~elx4QD06+IIR-*@du zYrDs*Dzf@jsLB<u!wZy+EhU0IBi}eKo~xLA=|$<YuorBrJSHq%!lQdqaifcOLHvY` z7ow)#ee3pH@BG3A*=OFqDdkWT2tWLQ_c24Zfp660rVlr+tZ%J7YkPK8t)aJQmt=K; zk>p0nSyB7{ovi<y`sCl{cdS!#&xY-u<$mVA(7h@N6URla8|5Y9RrZ-~_?>#-v&%y( zKcR0@@?|gDW}WOlzSAc!FmQ+9XS<7b4yLzGy18CA?l1965zq|3AK&m{_d?z8N0=?v z9q50!(|`8vXGd&J&aG@*a#cap=!lDuY06Zsu6Kg3`JD^)Ui(#d<WuB^<#Qg+GV*#A zd`?zo!>t?s3s!zwwtn%106CF1-zb67t5!2uJd27S%z0Z;#_^lo@xzI&`ajli)Ky5x zNv18oG3_&(GSBsEPxK|TIM!WyHAletkkob1c639w2C3kPV@|cw2WL-uG`madc&PC; z))%UNf4|S&vUJw-5cP$7w9UC^ED%mw^<`4XDPc29{^c!80~61tZ_J$jI5_y@<Vm%x zUJ-AudnW{CMD*{TuJ+zJv4yqbsf*elQ~t&_KWUY}4!;9dO`Q46b-T*!YYlE+jMk{m zU#xxW;O<2V+gub?zL<!siq7S}zVpI5uSHJ{o~beWMg{NOBW2%`DZR=vO4(E6-my~& zXK((S&wu`ZcKrWitNxsK{^{*4I&tNa7Hu`hs|U~QlG}c**Zcgz`?=-cPM)v1cHr6b zU;fHA-2%eu*53~uiFqQ>a=BD->5nZfe~*Ot#x=>UTxY9s({t+CnMTLHuh`}i(`xvn zqRo@FvY>M75?7sBtC|f%*S<gUs-p0{;<UIa+m7k*+^s*g|M9%I*z*&c&e#1a4$S=c z>PN?8EfYVj=lQSh?YtQAP*RjhY>BPpJQpdOuO?{|_cJdHj^AA_Z!=}jwJFuR3YKN7 z&eRc^$P;M3#lItG1&{8t=x3$3?4~}ndAs<=;SVROrQ(+|UtI0%C)m|+-Fjki%T6=t z-;<8a(^7u#So)T|a$(ii)YGPJrTbo}S+<man4u+I`{ue2)7@#8gLSyqi0;i7&%Ua5 z<d5UG#feAC_U-5_>+L_WH&3c=nQc~DX2$84R<rgL_Z$yw>|GdfyRnZWr6w_7IJG!o z-m^K%3=6GK?_$f<;dB>Xd0>T%?D7cvw(PZE1blZpsvMA>!d9WMgiU+TD)|!c`WZ`0 z#Gf7Dci*;<fp1TdVb}5&q0b%d4BuX5f4>&-YxakPKZj;|sqZLp{xOv`Oe*5t^5ye4 zS)Z@Hcdz>Oc4gINK3A(Oy^W`YiQbN#wx5sT-Q|V<W+s39?y<0Qib-j#rmI`>@m_)N zH>UkM60(*5CiCR465_$^!HL{@dV5ca9p;{*@bU4UnZX}5rYLIcIDUDVz?IKeg7b7l zpB1)VD|g&ybwv4!#f%2Il?pB%Dr@e&SZf;fr<aX+)kf1P-)lkhG6!w`E1&*hcE)$H zpy2vTp00OaWd7W)z}Q;6ms9`2tE~J|f&Z-^@0f_JVEOp*B11q_n71<f<3l$7PKwK3 z&v&hnanayh?-}~~hC$k+TJHJgQz{PJzVrF&3r_u&2MVq4UEjY=E^s=d0N3=bvK!Ku zJ>1E2FZ<70spx-(EbPkS8-5Gr|9kP!*;?-V7H-M+W*-Zq?jLSCx%2yO^%$YfhQz+V zD<tfDn2#=-dN2IO(#bl7&Qba{-g0Zd-mzLGu)?8L{`bM(@{tP_d8Q;B|9r91aaEr9 zsfA9KbLZaWZQ+>R`NY(E*}QJEBf>qmGA~t%U;h7iT6%qA|K~WBkCLhUb=%F4?h3ss zoVng)f%0R9q6;N#EAAvZFhBGV(Xh+5Oq1}sUD2<7^_1BiM<dg18vact&NIKfQM^8d zm!UFr(%SgKw#cxVyREM6xOVmScRBHk=VrJ$IBR9CS=!~I8t?Rn;dE`1Z*kd!T_-oB zg<jz~dxGQR_qe2bx1%BR>Mc#opOiLRFm(K1mKv$E_cFr~DUqCI$4@*F&v|~|@TteX z8vm=zD>Y6<uA7~@zdmR7C7(4n()PN#<jm+wl5h3Ww%cE~cUR5%b@wVWdRL}yx|Urq zwMr(!pneLs?p%W#qE{YVE$=)t-<+*uqAAm?8Ea1Lwzd5G=he=8TaWkG+dDC=dc|7n z-<Yd<vi5?y#&50ueLNaWdkQwI`_H?v+`jU7i-Csrf($>4;CYX$ZDgD!>c2b`j&o7b zyYv6cn`^5S&M{uUm?53ZD!6|M&xRY)QD1GRG~W8Be<M7;GWDy)dFA(euhlKQ#WJ}( zG4bb;snrQm#~OpS?>0@Vt^VC(YgLn>V7hhRbfYatrshmzio3UL*PoStbws8+xk>nI z{qGFr>+V@~>3f*n+L@P3zit=VaNXwcq~z(J4!)I|e@*D;(QCQOHtpEU^r#_=r`qo8 zmTzts(+lzv^rzi$pZ@#!p6?BEFZUVk;kvk_CTGo6fr*A!`4;fDir7m(KkKpXu*{MA z$XEeWrw!YRox8%f1jp5jYp!_xyYAC1e@C5lAz$Yi`!|cn+Gn!7Zj?HapT7P54V4p? zC-bIg*F4+2d9uNZqMs>OW=v$TnfySz+2i}vi)$;@yyF%w+>jP>H2)n-T=VBeT~h=9 zPW;0so3ya@L|epz#PqE;QY>mErz-Wz7wySUzN}ghskfocs5kS8Xp!BqdjgTs2eVFX zJ(F~*N=Y`hHQ6zF74OUIf^IkCe)HtT729t!ut}4<Y9<k`G`s2YMbGxdfzzdDrT^}? zWT^iVr;^#p*<bPdP|2!kUi(!=a$`4~YFa1zY5Jn<J!LruZ_H=EJ%9h)*%EDya!qmb z_g&vA@!oz-p_cWc-%;VaRQF1U%w44TVD_YT!K3ZZLe6Cde*PVDFZ5;K*>`uWx>qG1 zU;L`sT4kTz@1xdbJ8F(s70#^7kkT&BJTvWMTGf)Uj0{8FNyR_E-F|=L{;%2pBa5!i za$*c(n3KQ1{qTY1%dM+_J<(!$dzig{_av=`()HJ#@7sIqhP?eE_Nns{9`YVJ@-CEd zs$1BK8}sY`d9Qi<|7*ZMLD_lcg0ES2t`D#%J({Do&13zAwl_ix`O<=_ZfE+v7mmHX zV!@B^AF6^mO^kMF9#i|o86_>Ui`Q%Jcfm{tt_gCxO|~v5f4pwTw@Rt}LjL}(2J__V zZk91CJ#vuR+;aQ#V@tI=`*?n*m^it;)qT8mauoOX%TqWm3vpT6N9%m|EaNay4my|} zc4lVjX}h;gHFeG})<pPgut*&;4vM_q*x|5NX8ruWv)8_9KM~>N()*|0UHjwL>->kd zMti!S{(8LNxU_HL`W@5E#c$<?Z+SU!C7<Jbs}oBm-}Ri}A-~S8cu9?)>_v@N;Q_mr zOU69#JYu^!=Z5LK=%qT@XRdQx{3j!~KYr@A<rjRt4y!a}-nz}P{%mn9@086J=6OCY zruJd44sR_pkqO*fzcPG+@RO2)&NG`%y}ENfVz>6iV>j0oZ(25`*0#F!cZ1OiHK7;# z<2>d}Q8Jf~vDm!OkM-2y!#gs}P6XXAH$KMy(NivT<CM<U-v+NY+?fDsAgfhq`z-v_ zq@VXOEckDQcO&Nxp+{AQjwjr@C)Vz1mk?!{aWrj>&Z9>z7LnhTHcr`+z`K9>QoYSe zJ%ajE7Wv){s+}D)chZ_mEcJ%(XJ!W8WqhT`vs85Huay}mPjV+d77uZW*(2fkc2Db~ zOFKl)2|ZJ|JF$0;B41^7OFA$6>-c~7_<cRNbXS`Q2pn%Kmuoxo>zs9YzWaKHDXyV+ z_zHvSV`JYfW<2|{^ZLT~Uw3tP^4!#ZG4omn)0Oo9t>XJq&hP)>r1k&rLjl!U2ZP?L z&FivE{k7;OgRcLY#Pv;DMq;&Q>)$k=E>~W<_Pwfxi3_J!T=6{fYu=XMOU(tpg}iZ_ zryyE;rZU*ZKK9<7SHI*qn&<5<=2%zCx#sDtL#>lquA3IdJkn+OI3?-fpC#LGmdo$i zdu6?i!rd2df2~&G)MNc)@qeZGteX>37j1la=ZjXUkp#ot?Itw=0Vf(Vj!w(XoN(m0 zOVtwd^*gMbT4O#}CRwH`Fs`qAZhaz4;&8z-L!G<EPkO3OeZ0GS`L{2B5=ES)dQTg8 ztG!vddGp(>J8`qzZuK6}RMT}<WOcjflD2^7n!;l@_j7UAb}gNFPGbA^P`-H+1MKb} zpU!wQd9R<NQ4YJ-9_@K+bLXu*G$HLy^`~=fap(U_ZuVGwd*P`SvX$HZZkAgfziab? zvimvucS7#0{*vyxEAeIejbC#fS(ZN#Gig!Ik}zsZ|MunjW5WxVkFK_NTg&-aQf1Y$ zL!37LRc(ttFHw$kl}h<~B+N%Ld4uzk@CJ?hQ?93&KNa10obP|zTWyZWuob00LN(<l zU$Tm7-&S}o@W-O<3y)UoSU;Q^=f3AchQY?ZXs(r)LqFcJa^?)?6y78M^KR_Kg%yG# zv7D#B&6*yZ5#~KZjmLHUj3&OKq8m4ie54XS-}7-kzfvOMWz!VbhyuT*7F^FgxDw0` zR^QFAe6}}QY-y%W#T94c=g+5avwq3e^-`)(TjtDi|MTJcnX`{ME}YmBu3wg9mNl`m z_3!>1{XJirYTwT8___O&f63Akw=GBf5AD8Vn%32w|JHbU{D!+Vr>pi{SW#iKtnNkI z{g7W#8Szst?XBz8UVkyM=+60F9-S|PyJpm_EC>pp)yh;gt3@T@udQ!sv|rMGZ%e-I zucDWI-5(h&#*{wUhNJRU%mttBE9nJ&EWy!rS8Y<RD1>+ZfBgA%<&L$!DRz$kd%v$? zo*jSwO4NL5jTMbYBG@J=^={JGw767Lxqe~ElEo!SPqWwmJyQ3fxju7M@q}33_G0xG zXN@CiqK0uye_p-vaG#jlzL-&XQ|O+1{~z86cs9MQjmPh7=c|8@HwQ~;{M2f`(PzH$ ziN5+I7Axr#@n`w{SrcDhpP9bbqS*db)tY$c!0=pyIPvTJCPpdKt%bMqsGd9@c_MwG zqNBP(C98*LZ=KGY=NB@Ld=c4y`NtXcd3z@tMa^lNr{|Fuc;;fx-WTD#M}#{X?00YS zd^RQ2_4kgiYu4m!zH8FT<9+0d_S$H^iG?~`*WdnHwvQ1so->2h=SIYKDQ}O|bRoT~ zm;5!SzV-Q-74q%V7w)Mo3Hb+iFJ#DCKS_19jFRtC18MuszkX-WdH*FvTKdY`<ENS> z=Or(>(o=dNwba`(cwrmU{7-dvogcZK{V_AL-#sLfd52tQqd<+cuqIp6VIQa4m%KOE z$meuPu1kCAvfD-9Xm^qqGxz-Ccb58xFA$lw^k#E=|4$y(R@;3Ct8MLmrI<3MtdL$G z)wcD(ET<noc2#=cpT7UorrNjC_qVw7pI^K>O6%;y1IM3xofbLzBy`F>jbrZ%>-Lx& zl{syiYNJ)WS!d_$vPm{oQr?<ZTrR!d_<oOG{jud89T~P>FYEP<QkJM>OLfQ{x^-6l zTmGL;`^4R$9{nknUdIxZ-X=3`=yz-_zIEI#?d8lqt{v;Ow<&#(eVP9%|LXgw@Nb-~ z!3XQ!eDAD_ki6%d-1PpS?$ry&H@)N+$uwt4YS;R`uwd@#ADf@P|L_0*`G0r&|3Mau zg{Hmf*m!uu_hVhtr+bL%T{if1=Xv&)Kd%zRpQ}ti`c+F>V53li-Q>U7^Zc)J>-JXq z#l;7t3WRD}-C>S&-<SWbO(`b(Mpp5*Hha6Bi$c!3z0$wsl0Em2woS%*z87<Usof90 zS9J4Q@k`NvJI<uOVKn-{mB8TJ_JPG%!RYXb)MIKXr}B7b%1l4GX=!!jt}_bd45^iZ z^WF8CL;@xUK3IGCVC~Hr=Q8dqbCqlLT*x`IXu{!ZDwi+46nuC|XST%Fw5R>N4fajz z%_60DNGfxSte0bJc;0`bOnti|Uzn)4FXKMX#>qzuRcd-Im$R}j{dmDdih19`zrXG+ zuHDSoT`jfe<g}*9O_PpwarSDglsH%xF1LS*(LLVRTbDiRD%3o8_V<Y|2cAa!yHsT( zZXYiEX4Mz#AZ^7bQd2HZahv$$Pm*Mxgh=>zhTEn$J5N-e{GxX{V%xL5Hx15C`QIh| zTI!5*|9rLG|Nl%6f69O3esA~c!}HE>U-w1pfZu6d;R^NhMIkAwwl+t*`M;I?ywG=0 zDsIJ=x4V-3RgJ2C-bvp1{)u9d|Fh@64NkB4qx!@5gu}uM8~4OXiQG+E@RnuLEC0B9 z>sOm!S6QYnUDD1wcVVf#+_7VYPp(8ux7?FBCwpDu*ug7%zbZ{>b$e*~e(#g?TLq4P z<~Gf!&o14wZRvq;;udp7?rr^6Ir(_Ls_3f~f0lY|op*V{ryr~9zh4hyd2syj%#hS$ zNqfKTS6jfRZS3QtHDAoFuH{qLqsOaQBG<itd5QPWzH}F*t=ab5Png}hbR&Q>-&VY5 zTAX=&VxJI~g_luv^XgaWKRc{=dPO;vSvIt>cm2P8P(!0UjI}!ZZ~3XBmuDPi2?~5J zc@g)1$&6L1Y@gK6TXUE78i`~axw+DOc~bBq4$}$A2PPe=UC({c<@pJYl+Xn%r8}S8 zdofd4*`00E-Y4_qW=~6u-8xb5T)+>WJKSefopQ2f))~i{A7jW+R`FA0JhAG=3bQ83 z?2{j5{!O2BCP1S3&2J{x#o33F#d2=!D7;~iG)X8$XWHfJ!qT02pMsqeXDUx@XFGdm zN}7g6^_`v%mmK2`KJ?r?J5H%(iv9dk3eJVq^L~A-I3akF`;tfS#VE;^-F@i`H@qvX z715ofm2P?2jKfLROp|}JNM5XeDeKNi*3&m%Rp$ITaC|L$?wz*8SyLJ>83&inSoPF) zzgE5apTCE+*SoaZzkfA-=keFq^=p%Oxocjgu0HN~Gtzv5+k3lp=YCZ7&Uln`xMNNA zspd(3e9g~p?Rp;RroEWw`@=sO_hv~vGCT6Oa&PwhgPTRt1RNG@m6<H9!>?zzA=#G4 z?S#RuuYZppzE~yh{%@)2X2wVDkFHgjNcXW{U(I_=>2S_YHIq%Z3NBB(?5ujDEs*#1 zJnc26*Ivw8dFlD_<H^_W9sl`Is`a96uiQS>AceS=SL{Fb{C~0a`rH4%>VNz5u-Sk2 zuIfIkv%B|{$+gl56&(@T)%8)**BsoopW}V~b@}%D-(40iG`bkjc_nFm>HLfak=ajL zc@|&P(2TwK%x<NDlhV@n8???JKlo_=a%*j&g7VtyT})@ruetr;h@AaSo~QP{+pq1v z-&Y@Zb(3EIwZ%UUJc`kCw^BWRhkYjB?6~dcYM%#|bjJ8@^S$yfoS)f0v}AEIQ<i|x zg3NFSwLshNS1wDKuktz7mBlQteJFKjsn_=VY{xl{bx(*bs+)1H!@%wT8Q;pg3j`SU z^pqq$QgEz%F~KZq?p%=@lLBWOhF5LwxcHlG|C{&IO=mGJUlN!Qs>mi|ku$?N<~V1* zfDK<{?q>#vfBB2ftg2?|VBQtFZ}YwO+3k^Mla~01O3y!#*V=G#za?jc*!xA>1<#*l zQ~1)OAh}@4q+lO^QKmhg_Ly+>GrN9CnU+(q?D~tpZOxOfe&yNtN94xYy`O@A@AUtd zRI+9Aj&_~-!6#NfeXSv4S@m!G!aeU#>)+6?Xx-25fAP}v&taKI_I&@qT>W?Lc87f` zHgoUIol>&#ooHXR$M^H;@>2@l?G3c_zxLnj;PUg&my{iLC_V1}tF}Vn)t#^h51*#1 zoYDRsC8ZSWx%0T>%9NCg%P%fUzp^;i_`#RljTcvV*EvYGE<2{6c(cCR_jIvrg3q>p zH?Q%w7)_aQb{B)0gn(MIcfPbw+cjrSvpFjxS_A%c$xi?BZ)?XR&XVK<Ve9`d|0e&} z{r~ZXJ;nJi;)H%JK0dGOESt*Ng0htXpKe~wR(zIZc6u+by6a5_sTWf|`xd3^96xd> zV9w!FA|Y<V6PD|V1U@`$DLQ+jt8vzpn6*Z)icIUmloKj5ZvX7dEuU}r{+f8LbXPg= z-zB-*=Ep1kN?-IOf9<=a@e+qP!vo(6Sbj0f(b^f7KE+#Afc@*V8EO3s-)kg$O{mph z?{RH0<ID3k*QI%L?Q&lwF8H?J>#OMT6-$L(&)Wzrw%sHXWxt_Uz;2tD>c`#ET^lFe z`p+dF(6&3V>92{a=+Q*(KWFym`G_?Lzm<7Z`2HAo-+@c-EU#FsXx9ka+*uLWuGQcD z-@3`&|NWAPlk4xz^@=@Ib9mmIb%v`=_sRS`RQSEp<7}hT*AR0Vj}7OI<>uZKIB7I7 zoA>CGpYMYn{QGqHsZZq#(Kz|1+=?~V@87kvc6Qyu#{1^^b0a(B*<4v$lp=Eam{fMl zN^OpK*;Q1()%<ArX@?~}7ta<ydB56fW_-3~l`RY3&aYeCQk5%aO%|S)v_x1-M(&zI z<`$dYkPY6y|MKtOU$rWnQ@lETZ{;+l!+$C^&x<%;VRAL~z}$Ct_ov(cSC8X6|Nr9Q zZi@?b_fs3qpLrQoUAfMlJ>{9>q?0zhdSPCX;&$_xAN3@i_uj$G6m#u-&db~-KezR{ zen>m{Dna$~XD%+~n;h?_bFeSne%$8EhQk@RbGL<j3)cTA?OGkg>h<z*<e!-}wY%I; z>q>kxm^j}|qGaE^bw8e6oNXd}=boiX^Hyi)BiEM|$QZ4doSd*Y<OuVM+w*pP^}Q@1 zb+Mo-;=pMJW#)zACS4)kQUa>H&ZX=Jl+Vr1lM$Q8yL82)7XdfKL%w8Oo)f8;dg$IS z{r~6I->m;5|NlPov%HWU2XoR}4^^68nY`oF-iI?CriWLbkX-gK^~JgCMVFo85<V|# zy1QwL=sUX;EvNo2uQl<#yJFUg7ujdm*rn-uY-IMm@mB4f>Hewb&s3Q?^PSQ@KC|s( zX;1pixpQ3Gyjo6dn|#+QmY2ag@}lzlv?|H@mN(bzk4!zfc)9$#7dP2g-}ziz%(PUZ zt8VkDS>94blUH8k|0c|}ne~6>ET5}3fAjsAo?UR-=c=)I1KY`8->p~c?BDwHfUs!T z&FbTPr$f)Pb@eqCR9IEslrElo<K#)L<$f0;P8@ymaYM<KYtPrM{Bc$0Ww+kt0^3;? z-GSGZJk690imfl*bnf!W8X^1mxLdsycO{q=9$DADh@E+j@s*iIkml8s|EgO8k{RRI zZ2x*=$-ej3N^8^~u4>ZSvnzFvgm};`DVH0D{M?s(c-n7dPcpu{raQ2cLrOncN@2;< zDvP|^FTeRs30ZqQj$M9Ma|{b-{j`l!%vWC7_s+AFUpVxVf{*E=m0zydM{(A~pIrV_ zf9?6ag%_BFlpLQJ*G8}&DY{d>^zyHCjoP=ff);Ln^E4xt<KFJ?uGJq^EB^J%$1XT@ zU!q@?-DzHWF0<yQiw`%<(q7J0*V~nSM|my_$K$>t_5ZC_Gu(Cv8(*4QCfRn0x5X~< ziQS0<8bUMDu21fZQerpLI4m<^nP1mYFTTnzsm9N(&T)%+ACLH5ojJG1u)L7H%E0aW zM8=SypW7a0{ao|0{#>JRVMMKdCFiogSDxJIi#}kr{rD%jUF8*-OU+9gKSoYc7s!qY zeZ%Gb^L+j9^0)SX|Nlw<X1)KjezH!efe~A?dFoU1iMi1d+kZRzK3;FKWMZOSVD<rH z&n<tnoYH#YxlJ{d=8H*xx^1}Lah-SMrJuZJElRF?LOb-FCwVn?#|K89x@B_Yys7)w z7c;r}-)8;l`70ei=gr#V>4j(Y>yozJuT3_+wb=c@y(J#T$L6nae|qiKr|(bpntc1h z@vr&x9_NZjGq}H~GW;*gcGBN#cl46n?a80*4Jv-PFkG=U%@UuoPw_@&z_HZnhfkCo zk~wui>RZ;rIg>Xpew4|(wDoEa=WCYbIh|W>&KCav{d%t<!?*D8mx3v8&P|`ebzS5B zH}_+!+YU2)+yB5Xc4Fy`>+v$vS>GO>75zT^VWPL~;_fK@a?L9b?(F@L7NWMMd+t5^ zOW_N6QUi1npQcGDPIX9^bl38GlY8gz<FakX-psS95#RVqV8fT*uBYLgb^mu)zdJoq zFI_?4n(afi!wg)8Z+h5Ls|pJ%bMG1b_3YZUlv5!8<BWSB8T{Fg&e$cs`h07IRz=$X zD<@y+#>Bi)W?ryO@mp-jvYXzl^KW>se)Rv$bG!8TXxsn%b~P<r_0I3vGBbE$Go60j zwPJr5^zf&-^fHB$D;5S#d6j!D=!2R_o>I%D-6F#GcRftEl)ifGf@_WWRGH|X5<3m= z+bi&LW}jy0QJs;K@^kg&gzqh#MLy0y8s)aeYJXsM-8J)hP5z$hML#3G>g{CvuFYS6 zhWV7Bw<`1MC37$B4XZlw<<_5>{?DSz0_9bk1fMqX-v3@$^yjeY*(fQ-sXOnct8YK# zUH|2WvaqDj%NZH${rvlXzpMVX_x)ex-@W&L`2JqL|8Mibh~<U3T#+5c$s5!4^!O7y zs;geTyeT$sP5;W$!;%M-c?#TnYi!Q_Ie+ro+qf2{#CeHJbau|m)YvLF|6Rs0n-6?~ z>EAa$ljI1h(Mo9BC$V{<(u07%C3_#FPI#y1ym8vkZBsvAmAF0kruFmfZ~gzxR+Z_g z|7ZPgUvc-O9j{H#@7+>(Lg`Jg<15wR8T^%cCT*X)wWZb?%?l~}F7aGWb=mpff7XBc z^s;q1@8-e@7i2WQa@gu!|M$$M?Q{3ll{e&-S#Hb_nwgR(x&0x-TP2qVuXo0*<m3Fl z=Gl71+1$B1uC6Vp{m<yJFtVHvbcO74affUXtE6Y%3fk*b6tBI$RBih!fN$;6OTO<L z{^y2t2yGGIQP`=$UM0oTcjmph;K@Z{GE-t-w?}Ys7X_-%I`7thwBo~NuDdF%JlcO= zz1sV=VITh_pQ$X<G7mYg;9a+4+ETv9zmLqFp&R)y^2Fib|6g+U6jmkJT&ddjkTo*= z)AzkkGTzE9z37lR_r{BYS8uJCe|vJVQtN%vr$-+z%>Vml`I~#6zrQ_S|5p6%Uw%1O zo__U^tH-L&GW%NW|Ejw{ep~jA2jAWb|LzUnpDX@cT*qbmg6%@q#~lm(dNj9X|JDs# zQ@Y;f)}*!%?H88|1UvjaeMqrHagBt9U7W<Ch@##r=NIW-sams+*|q<XmzKxnqT@jU z*QTAm^!VkGiL+bEPggJQeb1ujy`4vZeQKg&kizQ-7sE9%#Z{r#don(_EJ_Fx`k~;X zn72Jq;dkk@Ra5S2PMzOd7MS&KQrD$5`Dx~AdGqTG&z-v5Z5}RA;OQ^Iz;^ETWOe_y zA1@y-?AJUj-}AkFZ~dEU`$`6-gL;m~K0Af^&wHoL(y_H^;|0;V?F|0m8Fky*`@dz% zGY3R8O%A?YsuU?TVOg6)46~&{$ebC|r*(xtcY3jSRo1BsvyN=+u)P!EP;zbJ;hMJO zjodS*>ZtKgb-ng}+Si>s%!;P$cxIK_@O|l%)u})41zcMbr14X&X`QEwgWi(L+38b1 zXF31Q7L;o{wM5O*EBUQeROlM>tl1jDB~f2$Zkrf!|K?n<hi&(kO%E=~Us5%HP+H8> zAW+q`ytYwnvb(kG{ol!2YG0Wd4B4a?Zu_==XWB~vZGXd67iFtnpAg_{*}B3(y>4Bg zjQ-)J&VOF+o6KQ7w@|8GD|*u>%}sx^Z!BE#K=j_FdFMlSPh>EjWiGAK|36u{WXq4K z6J`WizTk1(zFMID#N<!E()_Z!c{ndSYU#|HIQ5K4v(=nX@oldQwxp%H@_xJe?Q@|i zQ{LJQ{~m{Ab_v|6|L6Vf(rNvh^M7*3^G-ARG_!Q&x(~Y+E?cU7c;eCTvrXrfKR?%5 z`#$>qw(IqOX4QVU=YIY8tfn@vB{B1#n_ZJNSJJA~Uu0(@rsz@d{vP8dNrA=tZXc2m zI-V_HV!S?{J;S;!ws5~e*rc5F!+*~8?EkJ7e(cx3x5+FHEe%KRJYN#``Hy$~Ig@v7 zTqXOSx!#-k_59R*`)u9*ecXI)-T7w2$F4r#6KlDj?+_L=4PV!AzfowW|01FI^H<H8 z1ATaBqzJ5*-_v7VIrFU14}t6Vj?MDBeDIy!W+gFkaqU+vKf`)CHOkbtpB0oVFnN7( zv3ll<#CtV=q9<Ej+I)mFX=T2J2$y5%X@zO$f;Wc5TjpmioIPRN#ljo6jJNOGWOw;$ z)`mTK2Pa*((>@%xlyU3rxi_9)-|>6@k63rE?%IdbZvLLPxPHghd(RE49p<e0^ybv5 zgcFW+E9;tnxV<V^6~(YU$<}5v!)>p&Q`4M-A8*-PnrG$Q(U`CzF*;B1js3f1o7tz0 zS`)w42w(p1p^)S5m3mL{>5c`p6V$W66gyr&FyZ@WKBGX{i2M_;pG{$U*2r{o`O<(% z7v^$ocRzjBYtoIahZx(0W~W_CULhvB`PFg$c*UZC4A$wYsms2p{kxX>fFa|tdfBvB zg}$5#MUq`Qe;l9ucI<L|uwl82&!4Hug_ka|t<*MLBr@Ud?Q_kyt&Yr^S7t1on0?A( zk<_MHyM+ui8G8@r1PFyx8J&p=_gk~^<n9NRd-xl))7QJ!6&6li#S{BCZp-?*yPyBe zXIoh$o#J*{%_!>pE!Aa9+l|XppQ#+ME<g9C`u@Lde}8P1zkNG@ue<HljO9IC>nHv3 za1CbJTmH{MZ2qKsUv@na%Ft2Pah1rN%gtJ-u`{p5ZMpr|#R_X|cPGsASC0L3^55am zAAE)ZetuH}wx3%ty(sf^Qtb9c|9`e+@6x$i^|$rdGm|e<K5=C9U#pSld3*HN%*`h6 zc1@Dc_A>FUO}Um(?|c2)iImmP-mgjx_tDzM(|hrTR%XnXd9sZ=rrtXzb-b~7_U}yx zKIkeuwEB7F<l(*9@;s7DGgm3i5%!sT;CZaV?vE|s6SR}hzFV{6($Alk-+fNo&IvTz zEK_~t|MScRdqjc*7hhxhchqLNVPllisa1g&W!~ue%AaV6Yks0>G)d{21B;?se)1y$ zk@E~U?rpn#_33}{{5aR8hu$u`u~_}{uid?}Va?AfEL2yOdg!%&WmvXydk4q-wR0m9 zXC*HYTKD}!4zt7!CBa>v><j)%F6)@~LPa>rw=(-|Fq0$~@6YN766&uLw;Ro2+-zdR z_QaFTXjSgFTe?br%bd5I-v2<n#j&B}{mK&NN9lh{i`|miOlCT)P;-9M9ad7IE_PpA zZsw`m|IbyZ^96byvfbvnc>A1PtBy~J4qp=dvgzGpv7DOeaomZyn%w*BrLTAx%;1}p z`t)F&<c7%np39=qb`O57j^6IqEX&tu<go1H>{}Q4tF{Z6eCVkXp2|0E=E)r^D;rc= zy}3-erYI#l8>T3+uH}9@FKlVyDTS<WUp~4P=q5N%(RlxQW!=I*GhaP_|M`X%*8!b+ ziG!KVieXV#xXVx6kNj4iH~-f6{eN|Tf9#Ljy!~F)^7GNb5-wdUzKTjJyu8P(baj3z z-?o{Wt|E_DHXjm7Iu!SGO1PGxbZY+VOK(}Psnn-^*8Kfvvp(adc`sJ_MCG5=%|7(H z?wA#u&f%{6ho!A|m$sd0>@?L|QClqA&5_<bX>vpE(PL6fPCTb9zJEFPOMm&lY|ZNI zyAS5HxnAa<seQkwfANxaC*pX_Ihgu5^FGQ|WMyVO|7kjJ_X;M@xIXO*>GO8BelL@` zA@Yl}zu#v5>eZ)Buhq=V&UUKYQn$wc|C5)KP1X80NWH2kNnbMKR*Q4xul4FurpZ_L z*Ts3S+UCQpdT8YZmxq%63x)K*$XM?GwK7)jUfS9k$?8e5vps&#KAm~y*W%CRVa$Kt zeyzN>dGlrU*Ae$OsE5n5yjT0-=9<Vl<^5Up9@`^pR=tRQ^yy=QM!=R>`~Pcfzpu2< zpZ8Bah2j4f+iMcX8aFKv(VOycr{MyN8y*E6(@c(ObF*+xooGCXEo0tPM$Sz)kN8Sn zo~CMZ>2kk(ra^CT4Rf418>54{%^IFvwOd8bsV09i=J>jG`Px?3vsI4^|3ov*wrOcP zy{n1s=lZX`9;y=!-kUDH`GuWXhK>1gO6#?A`ud;ewVK}j$$X?aDVKSUX!yE6vaAV$ zF4FvW{|0e>3$!Y3W4J6nfq(5KscmK&MO;_*xOE=BDUzkoBbDy`{<-7n=Fk;y-efS@ zS_-CQuiojulkKhM>qGy=WB<lg-K%@}`hL%?f9;10KU`o}o#f%NznwSxQP>{ge|~;` zZ+>T=`TtdZ=kx!4p6Z%%dWRP-pXjOSb3HBK7;jrlas2^>SMN`jtzK9nwr{<5?wa{F zqQ1IQN@J@3emeM1xB7o``L)O;3nwcoIn1^!S!i(W>V1oiU7fop@i6K#yM9m?Wq$N^ zYrnBQ|3S|8Tl~Y$)EPZb@4H-N&n>zmPU+^Z#L%Tzq@Nw$us!K~#_QI+2$Q3+5!dfY z3UyVyls8c1NK@wA`1DugGVikf0>j1WGfnMUxJ2gWt-X9q;NHQ#M_4;QG<@rPw&#NN zvt-4T%bbfo7<t;xNt4Q*mVNzuu)D6c{z)Fi9W&pnF$qsq<o7skBDK)4V{NCv^RE_O zcW?aLvB;ad=#Q=L`-(j=^DlO1*>*ZPUjB2^Losfe`|J1mYkR7#ga6!M=v<OyaxU_k z@$Uoo>c78lo%F46-kdiVIM#e^vvp0`{bS$hcQ2+sa_#P^-n6o}++2kF`@bFcqyP1K zxTd*uTz6&ZIN|yy&1O5-_gixmBTsakyv4hTAuqx@L2HSYQWp!O=-jC(d;8zoI<trc zMg3tAsd}+<;=&uxR<179*r=Ch{lr8dAw_4&)ND1!SM3k7>RBbsB)85DFq8W!@*wDf zXV%M_Ha`a=t(SH7(k&VL&Iji+#X0Q0ZK9>I<G97*i8jJq>g)849ZwZHnD)GIs8BIx z36`F~d#<wVmRD;-g>>DVLqB$I*Q(Ed^Z9Ci&0#s)JxdandYyXMH;sAUlx#LGmc7qC z@5kBxfB)y!`kSxU?`1q+KO<50*P2#?D3v(}cs@(-*~Xzg^(ntAi|ala#h|6xI}Jr* z**uRqO}99`_0Sg&M!&K(?h}|f<7e4aN+(vt94J1q^$nL~WN<{!=cAU4PTMYASaJC9 zchgh4t4;Ny;xiMyA3MmiEa^5>Fm_zIsMH|k_bm>g_s7DV&uov-V*0c9>AkGn4@uEa zO)K_E^E4j%^Vj9uC$AI7+jSf`)Q(#e*>Gv!%-pv~UH|u$(+{+R=P_>Cy7bZhw36hx zHG9vU+m|%I=H0fvf8W)ofBkU7iYqPi%NZ{HtUlkOUamRCt3Cua)jf*u`8}<g=iI4d zSG-wH-Lk#4JEnQ{*PPfj`^#rk?~hB%{`#WrrqnTw-5&Mb-c|b<@-^4INIqk}TCT0J zyY%IYqm6w%Q{E)H-p`ZlQZi+}q{4dkgX`<k-&?PTly2TAD1B(%1aIB*7QF`9GU?x+ zS@)S2dmerN!e(Q|F}2Rv&u>Jw3G>Yi*XC`Vz1S>2fMbEYl%~tkoWioGV|kZ^Gh;ii zUo+wtpH`}VueIZ=R>0P>)I1F%W2e%{uu1mEg9BHdm?i$_dEt@GlZCxmvtuKc%Ij5x zm3MR(A3ojSx$M;kf9V+AD9s(hhqP>V9R8E?Gjh`3f|Y{Lm=isUnG$awzjxBknEy4? z(|n<6Uq1OJa&iPU%6-x^?fU)YkL}g>4-bD1ZOeO8e7^4Hw!o#m^FqY${#^S^(!_{E zrT^}|*s1^R|9pMFX2bv24}bQ5zOzF;D6`Mabzy;Nl`rd=SJtzizq$YKQ2d6?qEd6& z%1owQJ@=$HbDhrnV`8Vb6}*i&ncrk^`2Up`tRFvFy<2@@;nY*niDK(Qoqf5!G|pJ3 zy+|ZYBmYgxn%Aa3R;DboI=5=-B7qs#CfpNfHT-|*bjDwnpVg(_Ay>1PZ4iwAncM$s zd&WDa8GF*LztrCS$yyU8eSEoba%`el=>O0DOnu*N{;%+n-1%JP)7OhZoE_5xf7?yA z*_dZ=NdE;}0RP{J`}RgYVM~AC*?j)yY5n~o9&Qh}ru<3ZtmaTSJjKLqb5^=z#b)X0 z6NIm?^89quOX{=jR-se(pFcAB_pbEM-PQbkE+Pj%ecA5(Zl}Y_Yqp!O9ACZugNTvB zwa#o;%bA-Lr{<n6e0bfIi@!2);pfxKceZ)Op8JrXdA*mrZCg`#@+8Mey8~WHq`Oyd z5Uag^AR*jXNkTfyzfWtOQ)x(OvD`kUryISTt)CpZn0M;+GYN*HGpzL%CPwaAcDo^~ zOR-y8er@uf$rsj3-FdNhYbm#}%bkS3ztfjpithYou`E@;Y2B^6x8^86J$o`^UYAC; zu`hdN)Z52ge&HMI@-<5*A2|Gd;-Zj;wmw|4Ep^iuOnRw!G{@3=!s^zdez791dov7; zgD*}BU9!gD(cH7?Z)V<o{<dV_?kdCEYZhL3zKGkaXXB0IF8N)3zrXL7*!p+>w^Qbm zKA5j(|JW+NZ^u3ErOn1y^%tgVG<Po1+PiJ_^ZMuKR@S}`RsZw%#J#G|b6vEy?5jO@ z{N+5Ihev)K*tq`iug`OTTK+z^{*R^g%y|p9?_6^5%GC0+T#dTVuU}Hwq$K8*EdQ%0 zckbCW+`Gbxb2m(xYaJL}A1~XIac95Q+O6-G9<6q{GOcNsJZo#5#g#?(AAX*hw0dGq z&beLBubrRGmFRgkzBz05yC{ag&)-*Bt>a6(a&Cskj$)J81K+n@b!*(;R->lBa<A!u zpWMcc866_6$zl7ytPqfJH!O9{`qu7KrPY>c&@w%nOS*XJ6kEk^_UhMf|6kkpeQ$j1 z`Dd<ihNpi|%j5BJja%Q-eCcV}#O<dqYS$Wc9<hCrV$yc!0cVKnrMq`NGzz{wvTeot z_nHeX%A8m|HEto_@uEzxm0$0>>NZ?uSn>9dz@zBiI{~Y98?YUdlC0R)x$@)<;kvh% z9c;y=RvfEcD0U?H-S@s*K6e%3O3wY>$Gl3ldF!m3Uj@<@^JM#elG%NB2Y-V9*^{di z8IFbQvwGftV(K|=3pMk{rOg5i)BJo}GhQ0LP$;c0Jyf(!vCLEPxp<?ZV!y$5A*t{m zzH>5Cq@_>hWo?(du3s#rq&t7{ldsD9ReRTKZ`1IWp76A7+TPgex<B)0@7rJ$ab%;( zj44)b(^cO6{_@AD=t=SA<u?t2Zv=ew-~9DXBG;u(_U$~ym!qmq?%fc?dHUD6Z=b)_ z|G59}{hO)h|DS*3U-#;KR7sT1izicg%J)gNa*0?lOByZf(*9q)`cwVMx`)%_8b8@P ze2mlSf4lwPPy3C3e{KE5ux$D1(5sGLh34C>_xtgA7t{UU-&TKP|Nn~r%~$#VN7ih~ z-n}f8Q>N<joXau0wOp6^rF=MHZ}I2IKmGqF|6i7qzsFi_cg#!wSXGRbY{cY4>JL5s zC+pl;axF=)>d)OTa+T%5)9WH#H)iCvC~Xv$NqqIhykPYl`@KDr&g`(^ooZ5&rB(B% z-01XMRsDTD&(~;s)NVWf*1^F<a<aj?S;riNJydoXZOx9h`o2YU-qo4uQ2{$7&)x`d zx#)20zUkdf`nA8#-+1{=Sn&0`7h*hH9teMkl((&#Q~d7OW8?D`v47@vnq2!nqbFjH znE&^~KkrLq9Sbfzn%nk4tT)a7wyoYg*#enwYnDEgTDaqm{#x-gtqGdJ74Kplzde6d zeCJZ2rq5H>B!-JmpMPp;Gv4*1GWY+37bcR~-d9p8q@Gqq&dp~OdbF`#{{r*k15fX- zo$)#7oKJe}G0SiBQZl+t3;6s*M6w-R41R1(`=7G+f&antYnI)JowoG7<+}8c-<ypr zL~p6<e&2U)18=&lobCIAmgoC=SvN7hU0d4HZn{fxz4Q^r70s-toCV?wGM*Z`*-YJN zJi#tacx|#$kI7P}t?zWj4u+;_oz4zAqvp!eeE2fY#p}!;f1VSaq4A`^Ay9Y1`Ed3} z0zS9vemoXaooBu0XJ=fjv6i+|M&NxL$H?Gy_6u~w{?2~lRJL{cNyC?+pC6c1h(y*j zH@Tm1*^qyI{q*DQ-^%}eet-Mu<nM3ic5hFxay{ns+N){d)Sk7Ow}K3(efSe!@v&~h zU;C;bDq7V?FXlSrz52DUa{IBP>yNFR<luANqN8bh{`|Fu*M+OUzW-ZW{rLF$o451# zanGpj&@TS9=JCb3`vY>n6saz7sy_03eOUj=|C(&Q4}D}~y;ASxINZ|Z)sBe1);f3J z(r?m_4&P{>nr*iH&~(8GDK5e+{)Z2yh?FuLw3G;(3(!bUa#WO<dbs%bE#IGUns?^B zy=KXHZ10VWRkIW`CmcHMyq0n5tJX*Q%WMOAmTqF_uq<BZz2EWOO2)qHi3Lly9f<g3 zaQrv_zXN@%4>=uFlDfaJzw7Hg-d2?}Qdb4u-?Q!Rs=qi_?|aKR!S{RXu6gcB-|qMJ z;^E`hHY=U@I^m!w%cjsHVP>zDzOP8pdtfw&agKQir|yYO-EV{1Y+JskWa#s*_x*3j z674@T$0R}E--ii2Nw-dHckj%bqo1mlaQFAj56_S7N|^iSw<xQI`t@?D-D2M~JY~PA ze0%=*xPPTv$+-&sPX=CXwNl6L@Un<jZq7DZA3M8s&+Kmz!n<x3{eC`=^Y_BQe{xRi z$`%JN&f1XtY|_!2>tvrwf7s<%%JApvy2@W+BH7R4qxtz~?2BS|fB4>~<#+U{rwj{M zMXq;_Tf8}b>UG~~8!o-JT5@k)^by|<mWX|K-}kXUO7CF`SXCL4ugY5dTK?ssLLTK8 z`#(B{O`n}$dRkg(N1ElSOKV^8-6~587Lyi=5#PVQY-`oi{olWRUubtbNz!%Nr|aRn z^8`xf-kS0Jf6ak^2fy9dp1!-?^xNuyd+YvxPIKc^eO0CVmEqlM!~b_*{r$iA{hloO zx)1aAe*VUOMbY-%tyZV`ch^nvWRW`Jy|{77N-?jJSQ&v+XBHVxdY`%@NdIToNB$Eb zEAIyE`qrZ~UzE$cQol4Jxn=gEC2Iucc=fC4nQmB^s$;%prxxF-1Km@f*11cZ<XoKb zj_K>0>_z|Hg<Si1QL{5B?8#jtS@YIa2|qqwJ#)$9+6Hc37O|p>H>El&g)UWwEwfq7 zmplLc{q2HN9VXBBtqC>t*L-(()rGwaXDt6&S(RCT%<-o%ujS3Nt3Tbp`PkiG=ciLk z&qn(+Kjn$CbLUq0nmqXR+s&D))@jG|m0y0}lMCd3{oBa%z%1$i|EEccdR*+bjTJd` zlRfF;m79~fcI$U}OjDUv#kWuT%jG#-QWJKq?&nSA<XCru`S_ghY}>;uQ_VadrL5p` zn((n&XhZQFEAx#<(}Pz(m~d1$>F0{y4ez?Rn!kE2{<Gm+Ma}*f8wxhIoL_Y7`H?So zE(*AAYdTl9(IqSYz-zXpj7h~#H?3-py9veaU;02)Mt_p*tg8u!&7>90G;_Y&Wly_0 zr`>4d%G+%w28+{Ws&!h0Tf}$GUT7KUw0mLT6VYvaX(ek9o_)hqEzQ19JH7U8TkoOp zkF}XAGg^a=tp2#+63>BZHNM1i7U7%wZ97W+-B(?bub8-S!To85cK6?R7nTUkukSo& zC-?dPFYVRO|4YQ~@lo?X`|*dVa?Ycv*TR$^Y*0Tv<J6h^vX%d|-~7LuUz`2)PyBX% z`<es4S1c54<rkd%Zr<h@-B%9={Mpg8G0)-K#T%u3?1GKgzV}}{Dq^i;o5!oa#QD*S z2Np{=CV9yUH%|Sm%X)dc?1aXPJGAAwKOF3k>}k+AT)kydK#hF(L%Xh+>|-CxCz_RQ zJ9HzP<6zbO?!tVH!)oWJf7`NfVR!v}H}$nEryUECo|i1u!(G{IByjBW%AW~l%%YpV zl}LY6J@<N2dMw*Co1@45=PhcEljPCa)!G%hd*Oo<mma(O8?zj>Q3_UED3R^DLif`n z->#M7Yc(@jrY!V+^sDx=o%ib-3;vxp=+pG*S-VPf{S=*>-wG3-U7ma*O{P}WUNvBD z=jW<kcV`cqT_sw=PQ6FhUDxNhVie>hyX^iG3*FVPeNA>5OjmU_-6|cz6+88&(f|8Z z9V>aec29TGtM&K%mNn;*Y-h!r{j;MMMW`kB9^*K7%ISD-;*MMAqu;fjm=dLPal7=V zU4}9Zp^Ek|PQ6WNI-BIZ?E3AknXl_xHfZ<md^uHGWL{773@4U^gpAq!IhlWJ1-w&F zIZM0GE6DFpF4JGXMXzVci$`u#1E%X-3z`w692oJ>^uLbnvqP_+PZqrNzKwU@${P%# z$CE>MPiu&EJ8`dQ%HcQ9&-WH*wN!UcnWdH&U|d(L|LOCk)A}u+>K|<Q&vids=z7;z z)oin+N#9oGUhLYw<h(?{R%y2K_j7LM*ZjWy?O68u+q3O!t+lvcRh>-E2r$-d&3>J1 zCOu{TQ<<dLWv^e~?U3udEO38%M7F<nsn9H8rRuBJT6^rG1x_ceJ>K2rzb;bt`OPy| zCNG#+t#l`-W$mK5jyHB>u^YJARM-VX+*!P|`g4_Ei}4fNS#!_M-|+wM|5x?N+x_j% z{?*~(td6Z^-V$kbc~``HrN|)B=yyl|)qI?8_D=9zvyouYy_F}nE{`(bcEtLHddaJA zZhK<;nzki&bJcslHGJf=^|55<mt$?utN;8sxr+PGt&{`iOXg}eYwToe+Id#zWdGS+ zM(MNPl~`DWwQ#80Nn6P*+G@0!WzEeQjh8tK3{K@TdGD9l^``NU#~0NpJ4I$np4%Uw zbU**~44V|C6Z2g>*9uPH<Y#`<xTNEQ)Oyj_$Upa@*GclcoA$Ev@Qq@=mY|IDUrM!h zW<0v~!6-7d_=fbmh>bn@%X&UB97szzyohIOmhQ9~nYXqwpHru-NMzBLe%7ze_)oBA z?d<=JOC3Ihzh!S@k87}c^j~Pwh6|4+Oe5zDot;*{S&g;ju+7pBi$wEdBRhWDdlpX9 z`*VRa=P+~H-BVA~b2|>3RaI_idYZe%F~Ivru!Q-MEkb+pn=Yun+*Pj15y$i;>Wf9I zCV$4MSr7NAu^LElS+b{Ht1>nFvrs#`*COG+`27B9`{Zpa_Bj1%&t9=@T}QyC7UrTo z7q`#8oTZ!a-#Yuxx8H&HzVlXpURxgA;Bj-7NbPH;18qCQ&qRIhUzjDgOmBsTP7z<P z+?ypk*97kR?tOkw#`f*!Bh%VA?yV8p!REBs#Pqply5Z9&NzJNTUY+IDx>vZ@H-meA z{I)PL+m(mEwtU$(sY`49Z0;2woL-;b7x#LT-NyL8*8B6OA6LKD;<R;L!<v}+{=S8M z<vl;8ZS~(>3%O_c?b`E37hi!5SGERRzi?agO|L|g$kJmf%)S3#cFYhFJ*ITtW{1hf zFVUMBU+#$EZQb?Z*HbHh<*DTl?M&aypT~E7M|oR8o8ms--}59ndJiOoPs%#Vy=lSy zg#1+{*LScRPH*_rxb4Sx>E9K9Tb<O8yID>$u6&byV6#$+>BTiaY!AgGa#+mVa7e(U zh;fdJM!Ldj?cj}B_L(yc@24G;<H+T3pRy*nv6RW=e45*=#}2;h*XVznQZ4>9z9qt} zEBxMu5?1?ndnH~Txo~nq(ah>)H?qr|<IK-YnJ9kU_R>0qv&%v*-#F84wchh5r_l9d zURN8Hv^QzZZkavh(}Fowby}VQnr}EZOH1sSxq1%!jWx&X1+!l*>xettcK!3t1B?F6 z<=AOf)qYup|IaVO_ZxLJ-+z&1yX(9#`dHD%>#dPXn4doXa^}nXHVL<rm5<}Ezg9f| z-}U#Z=Re(B_cwRWpD-`>T<YS5=bukCzt|9G@%VoCpPKyEzwy5xzMlAs{b4lQ`nz`9 z7WuwdH<dBy-Q?O>L007*D<585@FsyVO52%PTzw(yt`qC>r%JMXEH`C)B*U%NZt9R4 z$*Ys?v@$r~hBcz{>#J$nx41-J1<x1PIezB6<N>D52XC9K(VlgIfA<=L((EVt1^sJ_ zx2&K3?eO>iGh=1tOW*G@m}7KiovGs^uce|v3wH5)@ALnvDs)Tqp-G!_Nmp*e)a`36 zCmD8Zj?NKzxI-}E;p-R7+>a%$3D2wJxBs$F{sWuzUN6bC&TEmUUwiyK-v0V{PoARw zGNC6`aa&Kkdu<x{&nN5QneUIkt*Txh^L6gZ4}RyPT0Uuay*W2)^3f|-mg&BE;GrsU zUQpv|K=G2VQo_fKwe{TJO+GQ-zF?Jh&%&xLCMRFKQ2F&Vd9Bf>61E0Ag?aHlroOut zs_mG2Eaqs9ukktOvr_^+-TF=*7JBn4+{Iw6xA~;v<r;gg75zQB*TX<#{=)Ru(#F4= z|L?M7b13`w=-AYCGiIG^J=>(UN#u0GPa(N&Nh*t;#Pf8?-)q!4F-vaUy3X?HA$~2> zW(BpnJrXuo;-5Q3^h9gVVgG<LI|J9o>~1Py%Vp3q=34yq*FBBnYu;bA*w&=T{$owG zU(Ixnf*#&!W_#`j`9w*c;k03X?)FOMu+-$Q%I(>AcR!!^pL_ME|GR8Cp03x*Gwod& za`o&kq2)}$Z*H<KH80v({aYvN_x^o{{^jreTV}U(-J{Qsx4uvRwl2R?_FUb?&tE%b zOElkEJ9e0JMSfYJ&-}wNc|y7Ut*L*%9NfR<^W*j~_rA8N+1IcBDg654?k{6bzv+ce z2XEi{P;<D?qj}0>#>cDP3+Jrb@vO}J`}28UT)zC6s(R@EvPsEriW3<ZWNQ{ZO`ccs z^2No7oE6S@Wt=}qPsj?(IPiR*7W1deFM7o#^;?f`=g#}nFM9jf&$(MZXSA#;$yc&E z_rm_+{e^S3hy`3wiT{*w@<!Xo1*=L!1WxTu-`g_nb(+~S?&p%4p9B7|pSKoW$mA8j zFOTEP+veiznRPrT_Ah2rc-;7=+@!=NL|L<qo2hfkN3-X%cGulKx2JBBz*P4A1#u!) z5f%LIDtyx}>~sogE810&B)Q$p!ne@<^&auc{~cG8*P0*Rr^)lu*Q93F)a=AF8`pC! zKPk3*n%#=hQ+v5wGNpJ;l4mSE=`sD_hm8VP&;J08ltl^4+Erb?DBQrb;qWcD!iVe6 zt$6Q!-g%L8dhUmJAHCk+GP2=c$olejb#JxhnN>d~&I>#r-TwR=UrhAxBgW^~wZA`O z_WA7#+qh2$)E3OV*SWO3p|IrJf}1a2>Rp<3EUWtEr#`VYd$=oiEj9SNUVF~6WjbNG zQygDOE!Rrz?EA61``PVZ4`cq{-Tj@l`r*^(4}aS4={RQhGbif!w~em8r}ug+JN{MX z8~^$G*1z%n>*{2`>93qpn0sF4#=9$BqOad8HeWVgV!U+Y)V7&3pYG83;>+gDue~*7 zPg<7HlY7n59o)sMvZVzyrA3r_O)EAp^?&1XBP`QD>tXiUb(00ED^^K!{Oab3;ygcz z=|{?4>A<UI?{A;A><!+q{##m4>4u+HYu4EAG_70_8}aSA?&8LT*?Cta@6Z1KBWTsy zNB*K7&cXfs8|;4z1<yR3kg|1G#eYMQ1=ly$KYRC9RQHzDo|Jk&iL`y~4Iv?~4a%i? zczk)f8IJy1JST5XCub<zY17vGyAqdPNYdhy3|L#e=j@v5-!7-vBro^MN$i_?#OKfK z;ANhLZRL3l`<2gxTy31h<~Q-7{^Pv-N$z^PZH@}gRB6lp6#tT`yJ&K@kIB*^|M_#~ z-r9V=u4%sXwOiT(enmARRgS9^*VzbfSgRQ<!lrvmZ<V;>%!r6z+cR~Hs!TT8mb4#B zchUC#e|?8tvKr&I-5hsj|0rKu@`bnJt^&(}|HdaPH%w|OYk9ncQ*lkUmQJObs<>QN zio(1lr5P(_f<u-Gd=ghUaO+p;@{1+@KlKkzzkQ|ec=Ow3YyX~#|MU8rcl`g?fq(t3 ze%n=k--p#)#bVYwYp&>>Wv$0fnUub7ZW2CK;`cCaU8|kM_n!OWyYH0+yKJ3RJd?|+ zhr=%1%<JHNnQ!G!|8Kqex&F(Cm9cNXmz~v^#I)`8>#J+H?bjTh68m@G^Vq*})w!*I z?;CSG&J2CEJhtM7#r@n3`dxG9$FJo$lylx@w^a1(N#9@1doFNEQzG_sMUCfSt=#FJ ztez(Ny{8qn9NZ<;k;<aEMLSXRqtyZ~)$LKo8!{&H7*A2z|8V~gzqqLhd9@ic9#5O9 z@PS2B!jZ}Qa5BfqCA>44K2IoaV_(;7&gaPMW+S?D>O(_olkTrmndZOnEY6;>lxbTw zhh(qx+ub20A9&9Doez6juYSnq_~FLI&#dB{4{#h@zun&2w(((dtmBIP4yOd$tgak+ z{{Q^F`K-5hsXR}-F@5Vbx$_nI{to5M89XeUd`ga8N<0(Of_XY8yb<u+-%(f4BJ+@A zvj4PuIr{~8Za@6c?7Zmjf(^QDo^~^~q(mp&aO`xnzOccfLCHC%fq{{a!H@sV!@l%8 zkE7~etv~h0X!Et5Q(PXf-uV9K?)Nu)umAeLf7PZ<M*C&7xTp3`<ZR`v*}>aCkKwuJ zNddQ_{og(KPBA}Tpg3Xm&cf@HXWUlHkXim!aLP~rwkHps-#K2w<`5Zl;)hg2v(4+} z)e6&M&*&fKeV%@N$G%-%H5wPX`21g9t5-YGqFtxCFsfxv;Dya8n|K)4%>1zPNX6W8 z)1Cb$-HWevw`V??aiVc{yucnEz6M{_5QG1(|L?M9XyA%2(lk52;OyR?Avq^mzShXw zZs?JWUnPHO>hzgUzgFw5?0xTRdQj}q)N6u{rxGriHFiH=ANOEy{V&r$Z~Xs@h`s4f zVm)+N;hkOSg-PAB4qeEY$aO0A*OrXh#OF!hS@m^;Hab08rJ@urqWZwg_p<C<Et68c z&kFlqn^&Cq|2;bQ|Lfa#EAlQzrrx|g{YNu{##+W5pX{Zl)t~<+?^@^9?DqNHtNITg zWM;38-aqTwn<Y}=2fzRMd0MpN&9&d}*T*#_|L?mkP<u^v?TpBiid*e{CWN@UU02(@ z@?}nJ$-y9(y`>jhx9cgUaJ;#}QY@Dfb!n}v+=7pKRjMztN?&ib5B~k!SZ!fMr_mfk zld0tuC;wDGGkRj7xkmEaN8x);mg#n!?`2cd)$`fbM%K?yxzYW8<9r>SBO4XhZc9DK zm^FK`=$*UAPo5MzAHV0&)vLZ|rW&~~*!twg*0blB`Q`0Su-po`#Ie+SLdKSY4-cZB z<!G<0mSF1Hq3*M38Ef+6@9*v!d+!%jz26hIHsbG+`L*|*8jtNhzCZe$P>%W$-ZcV| zCoc-L>GW*Bl<}ZMZN`OJ(#<U19N+D`<ygZPwM+W-N#}(pFO#1y^O^Jh>is_w1Cuz* zzMMO^O2hl@rC=3-^$fRCZ>puVRJ=QzR*@pYvSwRejGylYuT9>JHd`4!-)WLo+;_3P zHs__ynxh|H|J>!=+F-)MyV*=U?MM5CRqpqc`We(dHOq3Ilqe4OD>Pc5EwuT@oS&j{ z=C8izPvo>0>8m+sKiy@;vE*uTrOp=p>#m<a$N&B5up?13pi}wrH`lK!MWqL?oO)=( z!o0*U#Ole4*~gDfXMM?hqNd}Hp1Wy&QS<Q|o9Z8b?$9h+({=yC_n-Ce#XlV0pTG6b z{P;fI@JC+f9YO-neYD!OCwF51&J3~B?@#^DuX*YHIAs63Z~m@HV%JuOizl!D_Lu#6 z#m`5Fcw{&~7c2_?|1?Xa{^O@6Gf6$O8~bbb+<$a!8jI@2`q}SJvWc;8Qhe*3x<x5q zis7+d_32g{I#Nu<OL{7c__tnhGB|er+P#VOW!VkkUOP_Y^Ro5_9XX<%804#eZQ_=1 z?DMleCUF=!_UPxw6-`T4ip-tfW^(JQ6xWp>?Ilm1Zv5sMv06K%`*YM%Z<gN0i|#~h zKD(D$@3QU353fE|Rm_TNu;AC#c)p@l`9aOonT%q;<o^GC^ghK$$}o@Vu7vy2*IO<h z)7E_z)DYFQ#=riT@sEA)|Gu;6R&ng>^J;k2aQlSLv<*A&{kUiSzN%f~(wPg(WdBdx zl(<K?N6@||>xw{ue}~@Azc*85LSGng{JQnodF3h*28nM5w{OdBV9K1^cRp?pPu1@d zhvSMqY)mdM7Cy94skEMAyjO1a!^BO=ldjh1vu0acTyPQ=k>g#~a`|BA>o!-0dH<r7 z4=j)?m?t@Xs)fJg_t*b-Im<D)xD~va$k!Y6?&NI2X{}RyUA-PYK2e>z>ukr#Ac38G zA7oti`)%BsFs(6KWY&wx>%Np6{+2$sbJ~^<KR*9l9lqo3&0P~kwdcLqF1hubdG6%L z68u?`%Om9$PkFhC-LSgHcHzGM+Q&D)zG_f>nOdD~*gH3=A=Nsw^;){kJcE6I&y?3l z-Tz!0FEOoNe2uyJ^*-J$KE2bv2j2|vJg~X`>i3_~+x~~w{nY;P%zS?++Y|lb)|$%7 z=G9k^-uGtup1uEe^;?Fyoo~I;J2l#5IFg^Y2V6LN-*Mr~TZiu@t?J54ovRzPsdWd# zR+d#_HWFgfv~Aax2tAIxT6r&Z^UNPHw%)osc4&l_DppIkP7BI3Txohpo~7>I`b5^B z^>3Q0iefJAI?)o|$I1M{=iQ$d_Ae)u_&w$CQ2%NusI%?iq~If6=WpyX5XiE+oVkN< zrFfr_pX!dRgVB$&H$7kYg~@(z*x$|R`WxSTyRhon?ne{9NVQ1cS?gN*bb6c-d+#bk z^Gm0G$Z-5!SpW3<%uAfy_pkA)eE*ZaF0e}Xe)WIJ12Sxx4|w|j{`1NR(lXV0`D)L( z#TU0qxqDaLx_0zJcj3&PPgv(Po!?#brRa)ZcJJCUv46XEMLCw+7o6IE`d_tmTHBAB z31$0~5ABT+ycpP<yJVtD2hZ6r<=dXA%T(2hYQ9$P(f4&|Wct_bCb9d-k)MVUlQxC! z?Xea+Q)#h(-+F6ihBogUMWJU(tj`uHNok$w3KlsUsWvz4U0HG0@%cXv-8eV(?G~MV zO^>+P0=)li;%KYQ_OYI}IAGxq`yTB!xs8uw^zX)=JhDrV$A26D$G!9a+h*@S_t$#Y z&()hYwO*Mo&%Uo<WAyu4!~8}4dHuc2_BrwE|N1UeJoSoGZl8eW%}xK(P9Bxy%KH1W z(|=Fz``4oX{v8ni_~qwOiyP|4)+%a0u4~fUvEcEZFLiQXYyYh_`aj$L=j0!+!ryq@ zzhf;Yb!qb!-wP%F&gCD!ubwWrZ|~Pb<}ZWUjk}LWCsoflc0J^6rsM0JuixvVxqme! z7choyFKycM;QVZ(yT@f#PpR0hzUSt@OwJ2aB2Sg9Jhh?YQuov9htp??q$+AlPwruk z{8l}Cz3a_=(N60U7Fub)KKgiX6oZudx#Ky(NB^n5Rbt-Vq~CY=wPeetqEvlVPrV7N zrv;pmIIXL6{b*x;g~2g-n-?7>i<rKfn)hwVU48sT(FZqvVS{VZUro-4vd?r`Dz;(A zOgArqNj1;bWu4z;e!Vt&?SKD=^*@gP&zNVU5p(d_BJq9B6Wtot?_FQ>^!2(MpSSEu zoS409f3L<Dx32*Q_#VoApCGX}a@lj1lGZQA%zAqHTr+M}il6*mJw1Hc6IRYQR`IcM zaY_O+Ziz+wzxI1~VVu!YpAQ_%1#c=`n-OlYWy1+i538FphYzj&UQqL8+x+Z{Nq3)3 zd!w}fLd~7l^h3q3KfgLTui3BrbC0x#<7DfiyOIn6ff*4o4u!iFxB6ztr7g^Qm85Xt z>BWnZb=Ud-ZoA50!S*yj<TmGZ+v<djkkt#iTNKY5w7P7oO_>)|DY`VOs<G$(`oA~t z9pC?J{aS_vce~S_ChkZuV{{QX^t@53{*2J_S=<grM+6i!Oc#`&78la_CfU##`d_Q? z`hNS*GyNZZ|97H)4O3a^#`||zEG{gNSXTMyKIh6e+xJ~vpZ@0mS^d8%^Zq=Vyzo!p zu_)bAu5*r|*YY&(OPeiNZTM1mqp3!<q941f9E<TzucPI08BHC{>#Aoo6h87?n#5Me zyJ8QEe_8WW79Ml!$<H;uaJnqv3heyWeD>(G`Cd03-P>&5*u`!rROq_@NX_BQ?gfQs zQzjfRHC%3IJ^A_p#wjnQBu^=p=X7YdeBt?EVs<X@%i;phNpoM{H-5}+A)F%D$ei@_ zM)uC^X^T^9;&Z)D%y4?&rn&Li?Jq{pGlXBepNbIN@^P}@_2>3~U;00&|Gocbyp`<3 z)&`aBEKQaS9l!WY13$?BX|8W7IlB7t86h3kNRv}VecMv~s{Z?W-dg=4FwyUjnuh2C zx8k<ijm2Wlb}yH>MeV#_&R^IYP-qmtXnweWi^9cK6TVq4Jw4Bo#fMGC-KPBfgXJGP z-S;QgJ{1(Q{V{{<e(=KRi;I@bU-0fxL`~)E4}UDIjCQ#)u8%AImKRg5&Yqy`AC~vS zDXe$VqpJaauRiX1cuUS^p`7=t<*E4_qAMKw7v5UETKq@n|NHUMq02(l1>1PUMZ5)G z9`kc^(eO+PTyV^5?$6z-;?a>R*Bp1<|F&aC9sB=>|G)lE>ezK;gVGTOzUTnapkt?H zetI|cX<UAJ%2$Q|eTScr{mw(1U3V8QnZqUi=CxJd_WM;m=WG9cw%Grj;r^d%)sF28 z_!zwe_0$4vGcUJRmjAZjQ{VRgk9r-Gzx|H{6^6QhpXa-Z<u1B<xoI7XMRAPq3a(#U zmmF|C>|t(I(Wt&v>dE&ohD(Pz!sDWDd}v_SykDHp&eFNRZ`#DRMRHr2rPj)){9d(i zzp2*iiPu$HlNcEmlpnOU-1VmW-POuJp%W)RXX{-f!OPDzDR75I^1P5sQ}^fIDmooo z;<)N~!%yiatN*AaZ#lDg;z503^`6ZdXIgb18b&Y5V{m4y^^X6}6&rW&*T#!yGj~>e zR4C2S_KZGzcm~^wSMMHgWHa0Mb%RE&)|U@443V`Lj|mAmoM`s`xvqjEeAm4D*2m?4 zFShTp|K<Mg>%_%QKU2PFxp_bSRX&R+(3y>K-><9r3WwxbPeg3&D%q+1{rc{u^OwI{ z8WbMh(0$(gyw*e}LyPb!tV`34d7YlId~vQ&+?5_=&N$1&>#Y}4%MZVr7?w1XX*;Ih zuUL`4@ojNM_2<$(-`_Z22sUisU2FNx_L)yH@4_vSPd{p~&&f{9DHPSVF)4Ary@!!u z|1&+cD#`YP;k+%s8&@9HIM?;{7_*PnW!;oX2c`d31o}@iJQ5&s<B`>+*0(Gy0!_F3 zwzbqdJKkINl(qaS7i-Cv`%{EObL=1H^hPMnT6k=dY6HvN5D}+mm#j~$D(z<qcs2cV z-3|Y+wCsDfy>(^^o7Vol7hv#ho?YMeFoq95-~W4eb!`=6$n@QU$J-}xPjre5xO+#U z`r7YrC+Z)T{}tH5%@B0p&?Bb3E9A8f8g5JVY_xh}{9afjmTUFB<IXuT7n;w`EWNj# z=i4o=yRm!jS3VT?Tl}m#S8i$>hf!JY9(RL_Dz;uhE#h49ic_+-8s>7TJdwP8a;bve zjoI9HznHYNI~U*U`69#=tTpk0=fZ=xOZ8OldCvNfvUSPEBQeEi?1V2aJW;2=c)LY@ z_s{oJA8ec5c2;Wh`vqtCJ`{HQOPYPK+crn^lgqyp9$V|!$8R;Y7qze0)OxRHq1c_Z zeg?<i^C&RQ|93|H!%P3#OUq8Kjhv93ymoDVmegm#2ia$uL%sj(od5rL#q+u4JbNtP zm$Rn2IWm4u4(U1nJuE`9-{J5}hIO)45oSlV9US%-{+!Xyd$v@@pwa1^bL?%lL-~L1 zy)C$Y_@zj?x<$jZOkc|l1(Gv2xy)Jqc5iL<^LxBo-Da{?No~=wJ2Z9D+xNveyFJ!? z$!}3V)@*J6Bhzf#yF;bv3=N{IGbP!D)v_~<rYqfyou0rN)iLqH>!yVL8$vXl9)@*? z#y0kCU!kCzSpL;}i@>?7Q*t#Yn3$A>N?lWol5W2ylDux=+oKb<1bvX*F=eLvgk{fy zes#-)KQZXId`UcE;TF-Kp503>&0P27^Jn3j=jC-`?`uEYk$=o|X@TG)^|k-Ra%c1i z#jN>w^YP@zS8rLLzOA{U{ei}VWk-6~u6ndgp_(_<^-f9EBiDv+(tB$Ean=<4eD{iV z*GDrhhsSrmKf7i(_r7^}?h}y%o7xRE(>|`MTd)1DWSxhGo93*~8O2TP%kv)|z1lvl zQMT#I)KKq#Ui>||cC%j`F8f*cy`s?PZ1Tc`-zS~w^O_<0a#DHlkL^WzwV#WQUfFw- z{l~|zlWe+I{h92?XfdaM)83FHf3KfSYreVqLDr$;ZXYI}s;fIEYj*LTJEO24duH@+ z?|%tLce++4Eftsh{C>q7UhydbZR?qyW@QTPmh~_%y*YU|J5R;mC)58;vz0V8n-Iss zZhvs+DX-Ro58Hhg+}q9`B$siHebFcRr;9%KW+cQU*49k7ER5NzezNb#HNIWDKVDIB zvU%iiglBf$dT~Z)%e-=rQ@Rz?I=1fD_rAo?ESsBWbcbuLtmr?}&e_j7cIXNC?q2#n zLV*AM&V^~`fAPr_9QUot>`;26uwr-N-Ib3UCOaF?%M`v*pSDF}mbz7H&V*IB{_Ap` ze#gwz7!=WFeR<uFT!S4^Om{t`O3D|UW{8>-_}BN&T8mqEe(gT}ar2rO(RphQO$ZVR zW#CkBmM@+&$BDIZQt`)jkEHrVQ)}e%B#Sp_aVly&=nFquRaVt?_TonM*;DP5L|YyU z+~>OPRV@^Gd2haL^?kndkKb1AI1;=3UsV*#qiIj-_G_P-&bwT+qOfvjQ$ujgr+exj zYxjTr{NuxWTUqzJ*DOU>I>onbUK&03&1@I5l5<`f#Y>fn>lEJquzj`e6ifF!!F@R& z=Fb1C68HDh=Te^S2_9avxi9Y3E?T<#3TwT_+7Oi|tff!SuU-2$DQSVux;et-mGZOs z7gxAOX@wfeGKOoclIT0D{j+_VzOB)uAC1!P26Hd3YxS!u{$IQQf_Bg^#Z=yqy0W+z zQyJE3t$6l#T|knlC~H>St|FTXAHAT&W5*@?q}CKAT)edVc<%9sSEJX|+AlliXs}oA z-=}Ly|L#?PXRdjv{(suZ=FI&6Tv1b7YdDN`4KL{RrE<=_TamIU(|5U;zv7d+a?R$n zoco)<%*>Fr)cZTLh~dU2$Cir;iEVQKHeK-huJo>`PvKnrJdd8+3trCXeb{)z@kOTq z(^>(`j^Muu?sDeOJp<yriUU1o#y+`SG4E-M?3sXn)(<)^EB>xoJ5RmBvN`_!b=g(S z2UzbrEm*ep<jI_5K_fLeJ)1^uf1|~_Zg1H$r)NV*!omk(D>PXg3IsYXv+7QjN?!N) z;IvhNMt!=WFW3FIzqPIK#o4D%OM9;UD_tr!X*W}o)TR%%>q1_h+WV|C$2U!X9ZQFq zO0m>J)=w5**OtEe_A&STatq6S>^dQQC#IU+f3>MSNc7sg`kPsmSD$T+e{kT}V%ErG zif?qCeyWGASd;T_-MaN3=Iv{KU0<=WYr^W4)l<!)M6yfbKj%+vn9ja7F~~3Ygsbq1 zg?oOc?L4CY=aD_jiiV7^-3`L`OB0g4Q~g!v?+&~(sWjiONo_%u@~MW!`|rB$j<gm0 z{gkUyJ6JGFfOW>6q>x1mw{*L=G4vj|Zn%DmjM3(r^aNRxWlk5ae7?zd=Wle<_PfXK zM!dJ`n6u{b3{A(&a}0mKWMG-`aqF`g>Lv_lK0la$lWqQ+{Kd}??PU?$`OvFeK|!eK zMZ@Wj^8b(jm;b#tbKOiw<ImH+{QbM4)MCNHgvY(-n9IuMtMAkl-QD~(V9MW_SF;s< ze~L3rT`_mt-U$~C<MzCG{p^CoE8VISoKJp#NxQkSS>nKfPs~MsSsEmlJb37?`8uf2 z!X>k5*Ui;Ot1hNQi!GmZ>>#HegRr+v@}{=VN2x~d&Z#x*-prklx?z1!{2gAqow;|o z3|O!2VfirWoq~AZ9ixo;Q;ys_uXcyEruH3jEa7IHtKP#{{AWV#*7i5Gl`{eugm`;j zpH3}hdH>xaj?v-%YMqT8I(Zrk)XuIAP(SYe%#b5d#p0Oexo!FVi?f#IF!nrtq+z1m z)*cY%=sPQS<8t%XuJg=(=KLR+?|*f^ajLS1(Mvo@bk3}>1u|SA+G!=*Dm#)bjT238 z<u2Uv$gs4k#pqPThQ{5YXTHq%m?m6&yz<TUuV+o~)&Em0dwgV{>hD&TNndWYs0f^V zmCNTaWwQ0H+dC8%t)3A)xpOk}b&&}NkN>WDe?8zxou-&5qsL?~wSw;s43WBpA#qnW z*)6-a<U_z-!GdLy)vLGXM(>*z`P0>7DHEq_>EiUyA*-bvbZvqseUC6-d#!fLnWG0S z6b#*~EZnXJHQoMoS@-C^vPXsMcBv+R%V1aeS{ZaTGgs}5<`W^gr`m?gr;2~xApf8L zr|~;RM&8WHydQtpf8hToSeI1#Kl-^wyvJ+RAD8bPd~b5Sx&P$4-g@u#zGCiDe>Q%~ zv$sCXv8{ON%!JG9Qonx6b>AzP_u0GupxQH$i7XY}EP^_Bv^yR*K9v0JDt5EQpr3JC zwTVOb_xtKOfpf1jFWIo_vZGYdG}$GF{AaAJQ+nKLP8^*5UdHg_620T!&KJ0^vu0*+ zE7eS2v|*km&lFGDTC16bZ+e<G`Lu9tHtI4qW!1hNylYPbm&v0_-WWzMmih}b&;MH- zz~$h`*wnD#@y2&MD@qHuD!nVt;;jF?LHCcOy=r#E1NX24E53ZVcQXBh{a^XN{sr$} z2-lSq*rjt#bZ~Q?_)#KgUXa@w#fNcgP93qk|2|Co+j9H8xA<l=nHX>%=ag7_sXw4W z`N!kMpG#%j4OVYCrW1Q$#uJ~pS5_@BwkmTl6)7rw>CsslWcXfOZo5y*LCN_pc268K zi~AxH3k$AiRen3%zK!ozQO!5K*skLb93tyj(t0)uJh*s>^W9XQ(#lQTX$cb*QWzRE zX1TT=x&3zEJnq8M-<N)9o4oa5pF1VDZdzf4=ckOj*=uK<l3M@&wu$xqg_RwR->=%a zMt@wqrSX^K$A)9)Lw*S998RD0Bz=aW`<~rmhL7%RB&bhaubrfo{=fa6y;fC|dtBIw z6{#7U7`n>uSIhrz|NnTt?8ZE?*|YqYe70$M%J#LVaY=9Fhp#8@Gst-}2Gv;vy+8f( zrDqc-|H`ZrJ_k>}ym{*S@nm*4*4xSR_k9lTJs!T=_UEC7o&(2H?-v!VUVZP*`<{!& z8z<fiUHqMM;oSGf7<X)4Kh5NtlKSy=jO;HZ+8&;}+PeMZhPzXiU-ehak$=<|Q_jY~ z(zCo?ErofiW@`bLgh1l&y+T!U&UkTe=U`prT<`ruU$i4aJYGycXGPPb99=o)9@f*k zHo+g2_>N9G_p4Fuj#Eg0gJ4_NgYTP|7k+<}^j-1aWcmNAcigitXMN%|q1)H{(B$$- zKWil)>$)U7@7nPCeEhq6$Ll}M|L6YWS#`YZ%+Gtwf4%TJ{w?UV4ZFd?#It%8b${R8 zx-b4fOd+#y^2MoMQKo#cTn{B{r`(Kc`P^+TvEC?2<mrpzSIKJ@Hm|B$#XU>!!QC0! zr{&(I3*~q<MLF<0md2&bU+pi`)W6F~HdG-%<o)Z%XaBi|?#k?C_)z;T<ie?(jQVLj z0S4j`j~z<$(gW6gTX@FzOsDyM|I#=0-{*=dudctiq<xPao6Bx1&7TYpW)+LgUGX@? z_3l&0tZU^f<!nxUJDu;N;`UOV|GlF|0jGn5-Sk(MnJ*o={O>){W%&1I{@?wN=a&Bp zi(-EK?WfMJr5Dn|{!J;I9kNcdvB*#9_1^9KIoBVbAjCac=IrN9Z#y@nAFufLNa#!a zj7hmCbk`L*7;bxda?y$8OUc>`!*3aj?B})<EV%fFd*x5>`u3;BDLWk7ujfmu)(Xb; z?NZjBU&?Uz!IVz|v$sXOo;*kNqby_j<6YK@4Qdlv*Q`r%DxZ9?(c!{^3kgCqm9mQT z^GcVf$Eh<4P3wHG{f+5qUWKI8(%HSIY-XC}HsAOpZX*`dviQ?^$^OX`nG>#Z96ac# zG_kYks#vki>(@Rto2xt5*Z%lkxO@MGOUnxUJ+^KsnYp%mk<a0UkA&=b5*IQYTaaG9 zwEn{***}-p+e)(5_*iECSu(GCiKe4o(eloR3l@60tL=&WepYwwv*cv;?$gFoR`?W8 zldo=8sao@t+4u0vqQu*4FHdxRr=a5JlC8^Xc7L^Hx$VVu(-+5@RCb(fesg|_K+Qf8 z7IpT&MXgK^E%_~XSeiS<OA9A|T=;(B`n};!ia%PqyFKKk`9&@%OgN*!n0l8rS^Vhk z3|Gg;GjHGJ`)#W&)WqL>GJoNN)4vuUz3Xfp^isruVZq+?umyjY9i6>!DSzap@TR;o z@sW@Asm?lac-n&msgtKCT{T*IZexPg-Swgg2P|Kl&uu#2xc`Uvf1`ij?*H4pV3FTH zRg1@WwnQ!zYgP}foSP@7_(qQP-RE-23GV;5DR{OBhtK++HEFSs!nb{5Yf38P*RybC zR(_6}bAFqh_3l44k0zhdJ{2&nZ`H(Qi%#CQJN@{?^X!b3@rl+fpFXI!xi4K;yIf$q z*{Ax)cCj<s8hli?DzD#uTlvn^*XI}-e5=1)VOf;2kWWt5i}l^Qc|9|~YhSFtTkqqz zB1K9~uhB=Pb$cws?oYi<qCM*U-*>Zm9z2zs|AtGLfxmBdkLk*1lU}{A{P{}gVVUyb zMc-=QiR+%axBl;{Ip5`i7eDo3UAEQH?)9PRUpDj#=yfb?EnBM-CMkK^zwYI9xBq^A zeeU~}zsV(k=3%=&(~U_t`IwE6@9OU8<34g`-gV5aTaL->D_eQCqC?Gdp@Qmug=O10 z_ANHmyXD_4eQgi-=YRl>C(ll={=^r2|KN(0qLljci>vb=K6!B^KQx4Ux6ndQAFnUn zZ<iD~1hO^AREV6oe)2%xQ{9)#&j0Ifc5=<yv1r0nt}@FP{EAIS%6zhemK(Mny1v9% zbnCR;85383nwzUp&+;H({Rg!bZqc>*75t|xPW%tylS*dgi#M6hT=pUOUta1yZGpKv zCVURhP-Wzr^!)ez{}1Q??f&6i|MK|6hwN=eYkTybo9;2bSa<AfrsVX{=?xyA^Q+EJ z(w%mw{S4=(%D3sBF|l`#-M>?K;h5DM#Rlc-{1CUd-`~dG({a@^+M?hoRlZkQ!$qS# zB72+O&H2yz9E>Y07A+}saCl;PSg5F>SZ7u0+=|nO?pyu1|ET1%=bW5-uioxC$@pVy znQhgd*5$cJx@JfBb!E<fGb25{rSDnN$7Q=O<}LnmEh%z|*@94|K%w9?NBdjF;nVgX z7ty#mM|+Rl(wjmlKCfnbDYZ^fHCnWyddj!phO*V0^P9VO{ZC|+l=wJrYHrO|+xqK` z8@LLOoBD>Yy}p!RakJiscWS@CZNGPP`u}tHk1lTi9vk8A99;j_BBVb5?s7RNliwoB zp&~tx%p9-Y^H}P!{qBu#(_Sd=JD(mC5wh^D(}whk@$q+i%D?QWv!AV?{on9%Y^<io z!pd#wOcz8R{WyL64(s!1{(Fc1Zmw4Tc8hUxrF5FB&?l}(O*btoBD?0T%FWWsTXNL; zTn9tr-1xOxTZEh*%*m+SuC(S{j`m*m+I7{e$E7a&|9!IV>LRP<cFLk=d!4Q_8|pmo z-Mcy8@b23`I#tSIL5WL3{U$tGfBNUwtv26E#TTT<Z>%wH3VU3C+MSVw_kfY=pPfPO zf2+SVCo(1J=-!TN?C$3Nv;N=p|8oC6#s6FVKu@|+%&79vobSe>QmW0-Hv*%ZKV{E1 zas2DrJ?rh)KaHzj&z_>~eE8D>Sx(DiRvaY{^KUuV{4f81`t_|JB8%9VUqs$IV)Jxm z{mMBnuX2biIjLW1_%qOQqMiD^YR`bw*fm9wbI-**Hd|)5jdkXa+jo+McBVA{yL)=~ z!NtGtcTRr$_v_}x=2IE!*T(wK|JM}y_Ohzj?zhF$Zb%(Xj!^bwap?>Daxlro$L^$0 z&?&o>O_?9E#V$`=W#Oz~s;z5rZTZ5x0!=;Y{Q0($vrab_{@8S2kFg$G@>~H6mo>L$ z?qg>7@iJn|lOT>w=edpA7q$piWQrcsJ$3t5_^hX4-c0?wviIHp{jU1`L+$;4PX9Qv z+^+NfhrRdP`Ryvi-d*Vl7j8VgC(b!TQ8%o~py1yg{V!5Jr}pqTUHYoc_(Xs+Tus2_ zx$NfMBCaRDOMKnr<?&2EBk<qLWBRok4ysO?OQuy%-R1sF`~JUGwbxAcNN>zN_ncif zQ~qT2p?}_z-ez|+A{;MFU}x^lsTSF*>ER%3!X$b2_~e8s)faQm?M%~YF`4wPY~6<F z+1G+*-g>cln%PUiWY74Imd}1gee=Gsv+Cs|v3%vp2UBMCFFbOSy|8M^Tz!oO=amZ_ z>`u=sK391lJSSg;LDK!cmfGpM4)JL9url-OA@kqQ|M`1=!~ehgzt<nLzF(*RTj<Yo zW@)bJi5u63vuv5Hn!8souT}j0#TO3UrSjPwTjjVOZQdYy_vK&NH4Ghxbk3G%uaLBP zJmr${pLh4aI{)}){eJDkW90^Xe<i>Ae~Xc{yZp^&yL_8dyQK59=7Q#wQ<K)_PdR1S zS*^wKsj0sBI(K8{lzn0gs&0OIAm6ms_u<ks=ZM3c?`?jwmz_^*-wm2}*|2}FQHYwW z!>$kgP3j`kRyDqG7Sga~*vuWfaOVf-4#9=j);8YJQr_qmG(*uo!8UWs-&^Y%X0$6O zz75<d^R9Q938#Y0*3Fu;->yq#Qae+dap&Bl@|h1-DLBha@o3_z^K)J9sk|+1%I8PY zbKk9ARP*U{y!`ochfmD*Kbn7hIQ%?0T8vd$MYc@o<xGR_<yt%DytZLyNPZA_SC3`N z*W`Qg@0kL+)790oJXyuPj;?m_3e)sq%!z!u(4f2NiFUDl-8bt4Q>N`~=8U{1DDiNL zD*yS7UNu&MyY64t&8gx%7WnaWQ_oCqj_o<j6N0{^1*LeOoy)M~OlE%l<x5F##V+OQ zZz!>NW>j|D*Kq&*->-V_SL~P+y>DOekuKYVE!!{eS6lX}_w*v;c$R>(tm;QobHA^Z z>wLRXv}%=l3Y!rpOG}8yjE1t%CoC<cWriQKntYlVrBuTF>)3kl|N6H32min3{SEtn zZvU63d1<j?a@TpjAcoirn#W$AGU9XptXuY&w=QL;@qFFabru)oK5uRD@nLR%9Gx^b zn?ab_fBSF#5C8vsv~Q2?Kfd`~$9Zmko=cu>AHSQObL3olc4xxWgAu1y4@U2u-~BeK z<MSTnJ=<6uHfFx#e=BGidFaToH7qlZp2#|J`g;2R`$@M|r{BG+$x@Kca6svF@UHwr zQW<gjyYCBxMQP0rcyZ?0(Z)~Zr_(mw$vRe}sXNn-H6g64z#u7<aiQyhT>`v}Z)dLH z$etRud*QE$2_NUQBt1HrBPIJaw>Rd1$c~UCC&$+cF2UL_8xJXZTwt;}l&N?$mPbC? zX2-#|@5KD))s)_;{`iV%|Ih7zr<qQxlb<erJ$Zh$efgZ+z`nwL&t_;X%W6pelgs9{ z<%`Jg{u$iz?6))gG}w7Jt42O*{I^>rvN&%^&#XiDw>$~B@VmCN`}4jPpXKW$%Fgx% z{NK`|yg9G$i1F@;y7^Ci#0|Gw#BO3Nn6&Bf=DKILqAM*NUY;!PR{wTXO0nw0zFro$ z?<VhSSBGe&a6Su7=h3X)rg-JgtVa(YeZTkZ!>S6mKZ~A(Th2LD!>?N)qOBkG<!$Y| zg;Cf1-j<go$vvNXSN%iK$2|p~B&Sw<w(CnY>N(~)dCe0G#X4Std)Lq1sJnA&<=lI9 z+kgB&6#t|C!SecF&rc{O{JE!fUr}VApG*V8@&!w6+qQns`)XYovhn!+<A$fjq#PQi z$TCf75h+=mU{n37lp)Wjv;R$nb;YS)*A8}FERD=7?B;L0k>u@qlS^MhLV9h<;?83? zB|^?Szbt=OV^{65eSUF4?2}nbK7C)ca&bk-`{-n)#rcM+>jjP+-<4+3n(aKdcdbp) z{nkrNZ!eyHJVnyNdHw@%Z)}Uj=9}uGufFbh`(5Lt)SM?LE*$CIzjRf-!l_)puBb%y zT|XCHk(&HT-E?M@rpD5puYH3eb}(H_GHeO(-THREM}|k!^s~46C%-+MXc+T;UZT0* z@u2>jMQ`-1G-m(E3$Ibzz{=Sh)64pQv;4Qsq1>~}+dmaAJX>e&^+Msn{6CN5qYj(M zKRT)ZPq^m$_Zoh?-?8(L-~4G?^C~!BJYX^7gf;5iuU6JOYv{8c*m!-N;Yw{W9oK#0 z)AxnE+EuzV&X(`xDgFQfzv*+hqeM5B&$)kXXPmvIl~vc@Z+CxB^bB8CQ<>(<G=0w! zjr$+-S#6bsr?<VX{ivLEdUN~ZS0|%cf|UE#N#?D%R`X)pI<Z5RPI+3Nr5#q;JgE;W zI2<s2qe10Fn=F&9IsaIk*By+NRQ%ze!WP09)_Tfn<>rieD(bdBMQ0}5_KJ?0VtO#X zWokoFRS9eRmm5<)IPM94&11PC<Hs@c{k_xm;~u`R{rUVu_x>NEf4=Vjxc%d&r>mPy z{h0z9bw8Sm?mE9NdTX2~|G_^KIAm270-w%FIp?q-af!N8nf}ca?S8VRY~Rj4eQlS? zCms=K-W<1L+S?<uBctcfyRK@h@TjE!gZ5v`(=*KP&0ol{Zd2UvrxGmlY>XQM)SeqX zt*$6OHs9v3gTrI3Jti#kk2<F$Ez6#DmHXQ=kq_(FW`CV!m)os*HD*ud#df8&*Yvj3 z9De^cTbF6g8jdFqZC_5BzNzAIZivUOACU}v&PyyxlsS+6Gt+iCT${;lDK4b8eRZz# zuh{)>-9OCSZr{BBU;MxQA74GYsuiGTc&AuNQ%>|~_d-TBm7^|wN8d+p;rQrjc2UcC zdy>w%1yd{i0>0m=+J3+Ky|YdAFQNOtuI=9O|9gGeRuBKSMKNNhdn05{UbdC#41JTh z<GamFk8V-jM-Bc5cir8Uq8a<uB43W_=))ODm$Gx$MqKt?WRhE-cTuF~S+2?gXO3Dm ztBa>zbiMtN(mgwS^}_>|AtBzbpZ_u%)au+Zd#=#IpuhR5>2q(LH%Y9i57e*dzPy>R zN#xR8t9)6WXRZ+~d3TpPsPi+HCf-P&=l!@iFGt()&CaDU&EMtcJpPtu{^;B>Zp+t3 zXT`qGyxOw9>srH>>IAj!oxZkuvepl7Z!)`LFCbE-c>K+&6U!?5Z4xKP8vdL8eeUgD z6SRUB?e{A#cU|4Devt33WA}dL;~D;DHzuCasJS}-u8+y7o$s!FDq7%U>dc?_x19O$ z!^6ck_5Wn5JymBh%r)U*I(B2lfz3M7jyujC7b;p8F0)7XvzyPu*GU!377deBUcAjb zdDDqOrME1iX&2XG7Dn$U`4WH69<|?-by|b>$=-LxFRguY&hGbQ`m?p{<feM5y5N<o zER#bydD2c>#hehS@bEtr6UvwQaq`M$#g*qz&N&q-w}1IkZgGiw`T=3fgtm%JKdIzc zy1Odq-t_u!`HwS-+oqeJFL?iu(=R-=xVBdM{euW5YZse%W{HsR^7&g>RP81&NWAq= zRdZhRIzu~^yDWMvw>0`bzq$GOs`Q6H3Wb}ZuDqPu8GXp=`JEkCpI-ZDv)%hbZ1;h) zbNF|cUu2rZHMi*94;j$~j6UI?S8TI*HG5b40>yI93`ymennGT7I_E5|g>%<WYSSq@ zbccQAl4h}h+u7UApUr5Pyn}xh??S7mfj@F}r!JbZQ>5=UYe8t#lBt^f&-G_8Y+tGP z^!v%rc4ePFofe<oA$oeJtbSyY-evDcpU;&>PWt}n53l{#bp`1cyp&tE?^wR(VA)%a ztP0(Ale}5vJ*(#XTx1dGtz2l7ytei|^GQ`91~pqV@1DXlg)a{=lwCYN=kkfgj#`I& zY}V}IbaCB(ae7h+gF;61qZ$F}a`v?F>*CBI)8?)HT*WeP)^d-Z;-8)CW?kEIS>b?w z=9ccdE8a3L7qb)eHBUAumE`RRzfi{EqY%9H%T7^-Cy)C|^NyXd(8<nE*wx$BEInPH zMa}5P@{|8~8GdXnJNfK|=C5fA8z)UaR<QH<6sGh!ZEh3QGA$E@UN-s2c@_w$uUx4w zb@KO$B{?6(cqPvNo<EO$!c*Pg23d=@pKo3lnY4BPnva`K-{vpe`MaQ@QT+V3iVaHN z<PJ+czskH~f}%q=_o^tLj9pV|9aY5Dc=?a{yp7*x5M;9~XscYdWkTzhLsKpsDYsIM zQcW&>{CoG^zd3T#YQNYvOcfC{`La*5{^*(=te<0)?Hkz+T;^P+GGAx&z6+|NRT^i* zqO`wz)qVQ#aBt|3HE~U*+w33x{{7P;;wr1r%>FK&Et{s42UTu%{C1yZ^TYkSels3e z@*w8NCy9h`wuuv@vaX80kx+Vmta6#S-z}5-dN&Jdi#JDo51HmIc*c{zI{y>1jD)1G z;Ai3JqsMlgJfwfEc5~eEho&0Y6ZTKNYZlVL5`0R$_1LHB$6A(tUCYXGROZ9n&MkWr zqo2ocA1dsSSz~2)xMJV0+AUepJC`%O-DGz7QeK^Y_6uXd0B@za&kYh!2Fn~(_5T0v z&!3W<jc;~Z&5?aw#>{_h<J-cRw=9-R_`7mu+VWcJujSc)LS%+%-k-F;Cs&%}x8FUs zIYMeiij?B42cI8>a;BZO^xU$Efz@K=b-xWQh0@OR<`$HnyO6y@`FdLY?-C!Y*7a7m zFFkUIl30_Ko87^ES$9#y)RhMq!aKB+ZuIM#mx-j+tMbo~^vd}Ar=mDtv?{%0k;~n= z-sNJfJcn|$r$y@tt~$T5$N7g~g@X9B8)BP|?iKp`{OMEPbMNQ&{(Z8ytxiY#6`y!n z@|!7zu9dfKJ;RF&Pj6{>lNUXw>u^s5@9Og<{nOUJxYw#(E&iMN$(pj+Uzjuc+Fu7Y zF#O)U=t0g3ZQ;`ue&>CbCThKw%X-mTv*!P_qvr)1-bF6YZ4mGHK3Q4sL9?P<Vz%Cm zC7*cjpPeJX9?w#KFRuRiQI9T`zUy^%6$SkL@^|$Wu1GW{GHISN>US=iV0>@x(G?PI zjM>R+_RpI;w`$UCvD7_3A{uQ%C-JCnlnn@(ylR%UUC#9ro7zgvD*jyi8`?OhM=$pN z9lrJcT3UO|CO`SU=hADlUr(9r*W7h2=C9KDA2Pu#jp?+q%h4l_3g?7l0^h!=;VqJ6 zta?*>|Ch`T9m)PYftyc!i}tz{#fClloXfjl563@;cegwic?2GlIWPB8ut@v*;fQI% z4<!Eu{a$#WM6H1>*4I+%y+=c6=eOVWwS2#$cJA1bv|ix$66QH?_G&%(mr(noQf*fD zda1-~)3uCGq)YvA&$KAAPz&dn|20-=<Fg*My-Eoco=r>os@UKEn%x~JWD+Izo#koF z4XdnFzqdNA!E@{m%I<u}!ys{URotqHJhRzUE@pD8N$Y5Y2(IIJ;O#$a`pYf;$E4@P zS6!SSWjVbf>uBrhLw}k7pOQbA|F3ty_?=6WmY?>#m?Ct^N9}CdnOP^*MU-M5oIJq7 zztH8+&)Kh~_f*wwjEcAA%uS8=RTVoO6J)^ACE6iUw04K`+nLjx{4crAeloR5(MC>k z#li+|fr=l```ms#+O@q_dcNhax|}B#!ndY)Y0Y21ZqE$!U46#u8a^<swcj>7bV_~% z|6Z;ralSdzFYaISz9Dm7ZjRe08{Ks?Zm-yt@I`;h522|_dk_B%yW79WckixSr>Bc& zcclD%|MRrO^eG36|ID?MeezXU$^5oe`?tJ@=To*aO#WN2$T$1w?o_>+PYsQ}g_oi& z7Bk;{9Jk~}N%yOFd{)-_Uo8H$%kPu;yMM=?sGlEiO?vTSTmIx|^?LRR+$zHMxe_~d zFCDwWCnA1bQdIE#*6qp}ye=Y2O<oJ_cSyEQ|FQGw!<-}`W{)5D3Kpe>Me)3E5A&b@ zd`iI?jRfO{RngxbK2>;YxUc)|D!=JdLV{jwR1p1C<ltQwKh-+sWMS@%C3h|)Ke*4c zci))@ODaq4r<C>je~M&&y4|iV>{*d!k=q2j8>z3Po!xe>Uf$<gRFQYky;gjBvUkPV zQ^{N1x-R_Q(zEu$nduu^U4K=rZ~d!&!0+(0R}XG{h(CXQE+a#D`2DI+v+FMJ?>PIB z`9{xH3$>u8pV^OiL{}&*n%Ml(>R0U!uB*lij(A>n+-C90ROO;sWy-64$DjPacmH7c zyg$m(3G*t%^lk=9WN<p#mAsuK=E)S)Yd>+9Re<TAn_u!gxN293i(hp4y)egk+a0F| zff-)Ywyll*SiXouVwXd4<Ls%YH*_R&^cse77%W?&^G1Vz57(r(tA5DaR%Ej>NUj%N zQndVNaO_G=jz%R#j$DCFD{A8J#Z(`Yo4Moaub%$2X-gNJmS$X`k?<o!Fv&@(P;0tp zrthhM?+Zj{8fMP4@wk&%P*r84bHly=+}{Z+F1==u|MutP%ZpY2Usile+4||-+Pr&j zxn}j7J=d<V)n$lG*1KQz`yq#R>H47Z=lpf<j-tZyTLX$7Jq}m#kZ7vctUlKsy-+SF zSU<dBW7}LlucHeSC#wE?bf##pyjae}Ox}a#d`Hc8R_xO9dmhLh5oL7Mk|jy;>(0dg zYaicnnzg_pyDDdb=PcE9<xlY<qQBBQCWxFC@SOK0ywO4K$kc>}&J8ZDvjZlu7<K42 ztYhIWxSFx|$b)9NHMR!TkK4pkO*V8+T++h0$YEB_>7ok^YZiQ3XYKGpw8@Q8?UH_a zp5r@}RSC(jcPe~YD##LW&iK!w*89JzjPLE;RrQIb{K+osgFRn={nP(*Y<c|Or}1@r zvh@#iH8iJ2Y;ldK<lbhMc`#&Ol=#_~FArax`cLNAle4;v$+Ft(voi`b&L&;dIc<8c z`n`B!(}hPVhf`mjxGuFosqC3_w(p{P78xA{Avs2g?CXEOzbVYyb4}n;h{nvbbDgXk zj{f*#5Uy}=l7-KViw>m@i#aBRSS{SLd;{wxrhr}d7<YY{c2)HEqi?Z$em$tYqi61T zIm9GvgK*DBMQ5Hnb<0<Hg)~1|)%ne`N2^ZDVblKLD{e|b0=~!MQZv0@y-|#>k^8jN zP=Cw0t9!L0OI*6`P6<Yc-`O<rS>FGp40b&+jsNc32$kMj^-#RHbCveXz|0FP#NYp) zYyU%evB$alKWFZ5i{9HP#`>dV>$A<g$I^;dN4(%_Q!x3R^wZ!>p`l{VPpP}Y8w|H= z8%3UvyBy?MY+Lc^vBx`Uoz=-Q$9B&uQGB4eXR_D9sj8p;PP>^~e5Cn6k*!w7)#w$S zpLZNt(CV7CLLgQzK}&1$>TWs1xe?Jx@05=?@`tpDnEAy?x-$vy;NTE>_%~zWoW`UO z5mxcjhu=TBxNGC2qoR)(mb3L3nYVq8+MCS#dE<+t$)cYh=w@+V7P+<Ln)|1GyVz@S zwek0@x?bA8Wc~O@;G@cU5j(}5Ywk6y|9thsi{<=mee11HI?X%u<j|A2A7AV5YBGEX z|F`-73(XDHbJBaWIW8SE<yLFGz5d~&l8;8)>b8Um?){<GljwbHrSW`G;mifD;otRE zGxJ2(ys}cAt7D}3UujqCA?NPY{OWewTe;pYmFt&0S-N53(ibmFd@mn8do9aK%2wgZ zCD*?S3hleExTH^?Dc0!7dwvhMm<QM1fa{hj^Z1UwIkauM;L8MEa}N!#=>n|bf1ds^ z_Oo9ysaG&VawBI|)WaaruWyW1O7|Sz*~@1bH}^@l#LLUwwy)z(S$C(37Qa$Z5dL@P ztDRIq_SwVwtwpX3#XReDmWVR$S@14>-_D(Kx!;R<s&bp=J-Hh8@Oy85o$T(v$G$tH z$IO4wvnR!BW|xUrz^AQpT%`#`-wVz#JDBjF)p{{&uJGMi`-7X7b#hC+(fR&Nfoa{J zAD7Q}%y&rG`l;yNT6^yg(QS1$c72;nw`xBsd^Gp6YxxQ0lplHFC6iM3FLpg?+P7(1 zlhtEu-}MoJyFP49Rez~??Oe>EDoy*_FIHDF7Ok(|@%Uir;)k^-qJ9<c4>Fseel>cf zDYMh8nLHmh9todtXs6M~j5h}st#K69{&nkjul;nvZAL%a4*pl0{dTU;Jd*_}ZZb7z zzST9YW0IM&)8Ox3Kju%qn`be;{xJUmUu-!SgU;{Q%QK&fE%7@xF-ed$c-e)mR>oY` zaYlEOCU){#33r_P-I=n|#_7S73(j?`Qx#bjoOzYp6{LLNUAKh&|9MkZ`Z*aF?EL=q z)vH^FxmVoEd)Lpe^(9Ov;^c9Y)-1cossHa?Pu+F1B`B<W>tWV4oC-ON%Y;trM6*<! zloh>p-}m;Suf_Y8$_v$W2Z%j7bad;+w(bj6cSPl$<`pL%eiT?cd-AR;Cky!Jmz);8 zsv4Q*YVt#ISz1l*yK^5b8lBuHyi4dWT_xuDyt*%Tg{#_@fEUkg*fJb6XNW9L+o;rk zaGI`Yc=+lKcXnTjc>aF&`~R1I<gMSnbpGF0j}qUT%q?dP@pIz5eq$|*N|=H6do$Lu zEwP71)#o2OeR}=+E&IRxEcQ0)+PS0O=aP3)@qzD`yl$)TyJ&Cu#Mu)3KzsG$!h`GW z<M-}zJMv=XvYNmf@8!02zo~DzJ$JwQqtf>wFa2wt*Qm!$-pBOML`_6^1NYN)PvyKl zg4fS*@1AOMhO0rh;?%moU(Q{0o^I*%YjOC@n8$anUthREc!P<3xx=5eoXM|MS-2KV zZ<@SdWkByjL9uT?o|~zpUGe!4B{Or*N=CD4KmQYkFXJ|5r*x!tZd{dbnv>9(8vlIp zsRiFXi_Y)=d+%AGuHyfBph(u>+;EzuHYhgg!_lLk79F$j*2z0Ct$NOPUWLiuJ{cd8 zUVGuxx^~7R7t6mZ<k(!^|3$TB-W1hGJ*z&Nw=SE`>AFvO!;v4(drCPOr@ZqN=b3f? zd-d^!rrv5VJGHm{u@2mE#>HjFn(ha#kuM%rUH?^iul2*O9j?ZLESX;!T@$bV`}mS^ z=b~&|ogyv%4~OkPw152ZqWFf<yU1Ig`F>RI2|PMud)&8a+jE|Z^!wZOe?EKr^&i>e z)oJ~XQQSr!eYEDxD9%je)PHwt+oeTz>UvKq`)V%DR=Hy_L4!%yFIl|e)fW~2t7|Kz zs-uHCWmXAZdi3qvvFGPnzSQx?zWpjCKh-<YYj*VIn2hO`C-+`Iw>UOYUq^Je`=?g6 z#ksdF-_5oE^xJm3vud|otGF}&wVun$ex+yrxmdnuSn}a}_uC_h|0_bar|ffMKV5J% z@b1x&j+#j~pBXMqFu8rb;mI$B6DRicR&a;#?nq-&*eg73N5ny%%rhGg{GDoh<i?$+ z@}~=8D*GIouB-k^etXbPxXs}1U472JHwGJ%Y#J9XEm%~2x53t+k!5-N^ROi~4`Q~; zOqQsSH9pN#FUYQ%>bv=J<DROeXLHXKE;r=w;9AZ5a^}Z`+#burYH>w7BP%?W5-0jr z&3^dwW()hXbur~!3@75|&3w(D7#jK2ME{hM(0{?wTX$Z)e!ps!XV7{cv$qTl-Bqy; z$9hV(|NcGGb=A*0-Fb|4=^octUArkgb57Fzr5`S=<S$re#+n*$pk39+daM6zS#x{; zyU4QDGFnk#x?6T=d{#g7S~gc+&3z%mq%S!RJ6@QqQLf%{<bp}t)cK*Reh$VL*DwAj zT=USpPV9T1+>b>^0~B6X9lK-C5bRUt6DYk~S?=!tBU~)!_(h5YtwnuW5?0PX&6D+L z-?T&5Di@he;*4JB5HdmX{cM)7d2eOQrbRn??R`<Bb54Y1y=OAxX&d$}B3jRS*G`oA zwuh_bvtC*L2ZiI4+Rt)`o_gWKeBN)ukNNg5PyMR;&baUIz5DT%O;ZJTx0XpiKKb{( z&}-$8Zk2rRin<-kYNtE)?0-7#pu^^n4PVyeOpN?0XSC#d=fiFxKFR;OEGa=Y+F$LN zm>T5Poq4a=KfTo9U*g<G4#NYDX8ArBEKfZ<W>?{NE9lvYV%<Oab!@%?_sS>Q?5MZ1 zapkmIedcDt#N<b%5&_dT@r5+c7VNCNxRGU=P-nxRFo8I=sywZDz1DeO4y@QA<NV?O z+qa^tHrY>L;c#4eZ9Y%0uHs^)^aFdDHa_9}74>}SQ_go6N|!%4b4uJl@?f9dzKta> z4~5Tdxf7wpJ@=yA=j0-f($BjD<nvOG-nd><QX|w<_SpUKtOC|A244&$dc5}PoKQLv zTv1@KjD!F2v5WFM%$<{DTMo!Q&5q8LE}K_-f6><m4{P_-{JeC|p<iWx&;7KFC0x1H z)p>U>FYw8`xv;zMX|8wIf=kg(s$o+TKhD|l==t++muD?+EhzlW_%FWxseW%wW9<DR z6FJMC$W_{GTvunbEV!+^?!#98`g6zkaqrT*ythYvcT&<*)9`JMd@A*xE3}qmUoSV% znRiC)bHqH(`R&uE$sX4~{+CnX#nY9cN)P{7&h^O5XEyeDWV__-4Y~FJg{=>SD-+K= znXz4VlJm{}B<mlaUp?e`F7_l}<Ig7f)>RcdLQ<mL<L8u{6my?2=l*R`kt1y7X>(r9 zJI}a(;kU`3Cpkn(917a@x`AP-{l$F8Yh^cnm7n3ixM24$sRYHDDV|Y>zbx7DR5vtq zX_ApY^Uswlyf^;Xa`ykZud_}s4><N)qPjukIX~0W$@`Xme!`(2x5w#?$;&hEOTFFx zHB@_=@bIeLoG88G(92pcy~thDmA75uy!z)?-1?wfuZ?wV!W$lVsY@Q%xh|<NCtFV4 zTJERrwqtA0m<e*-{mEIge5)ku+$9qJ410wX`;)m7Ba>%8m3()hbh`~h#5|Twt5uU? zKP=5~;owiY7L%~ya8yc|#<wlHuV&Bo{(ooQEA{<`Y%&`HH-%4I^Q5UqMSbzbTHkCx zQ?bmq*)uYN-ig1ym?OCCfy#@g`r*^3@7TNZ;NR-!dTWGoPiJ3A*|T+rN^(w&!#>M= z(GK;uB_eXCS~NL--AL+c^fA)s&E}0do!GDP{8O2z!t~R{cl5*q-URaquCOrFkWejI zt~516e15h@dTH%_z3^{h<+euZM`FahzpUg@dm%d|c)>H*E5a&2--H+%OzLZpnr&`- z<jHo`o+Ab8cP$d)S2k(Vl#egy5%^-Z{acsPvT`@Bv&E<O?!ENAv&?(TTGeAxwe#zy z{S)CZiad}!=>|Jj`oFzTb{t{69$+k*FlpMinos|iol#uw(0$3gVg0PPMYmNMuepdF zyVvSHao#j1lkZy!n4V17X17f%obM^0J*#ejh-=4__bi>uc#12h&iH#FzT~F$1ZjD5 z8F~4~TeSZ_*LT<Jc);<6=ZRQ4@A{M$jtLDer#Onb^?th8yqQ#EJXQL8<>@_2oN~(- zA8Xswa%S_kC>5=5lXYM3dXu=;@LbSLgKNGE6He$!6r5i2K<0GGxz6*_{x4&AkE!o) zzCM?UL3_X5Rjp13)dX%uq3*5>F7DmOCtlGyvh=Ig%JRc=+k7-OoA<Dq>V>b^8PFBP zlvcUBLq9^rA~QA8^V@xu{#^{8_Dv5zR@Ld4t&y?$S<H*I@n0{^`x~-j^XK3TTjRG+ zKN_9dr(PUbID`3Ahv<^ZnlG|H9=-o@xMD+XPG>2L=p-ekP=(|BRgazRXX8EdDa?Og zx09aJ)7UjH=Cu7${SwB-(WjKb_wjJin#8A-kCY}a@Z;8*y&}E6*rf1ZP3On{?*+40 zOqtUe^guJyb?NSk`tO$aXE`squHL5prvLlN=hnifW~_|0F-lZ4_fc}_YU=A=sM@*D zdq>aY-#fAu?jE>ms`oLnYLD591vaAGqL0#ExxW*55EHTP;GT0u$6oo(|ETwA$1I_q zlv{@GHg_*i(PolJVcS13H-5*t#?F5KpE^Pp3|bbP<KF2$Z=Pby_X8Ob<va!a_Q_vj z>b*6pCdf0TY*Js=u=v%I4f<BouD`r#IB)&5|8<J7x-%!tQ<F<O@^k(3qLz<_*ZwcN zpmBWNmJfUPi+-A+5#6vr^kri9uFmyKXV|-%z5Mcer|E1lqr*-N+dEb&zAwyG{^?XR zPig1mxB5$V*B;ASA7~hy^ZR>R@fViz7rUb68qR*}to%A-jj{MP$*XTO9NWK`B-(48 z@8x`NzCD0rC%b&%t(f#}1|e+0IW>j>6U>)HzB}_GJ+wbRxbLU&z8llE;siELX7XKj z(Cu^IkM2df<(DoAhpX-VKV3Y0$DTb*hXpj|F;tgkdQY#I+on{s^lgi6r0)Oow!fZe zU3zJ!`!-uPQ1ajw+cQTi>Jv5fs|=FfH#2Qr!1v<Gx9?k~nKb)!+yCk*C^%lpv{BdN z<18bsMf&x}_GD;@YwlO}%-%keJyWAx*OaAZQqpnvHvu2_o;ktnw`Jd!h$U-|O=F$) zsUx{JH~YkPm*rj4omVL>Z*_THsQFlvOWW>g{L#B|!O!)6emqvYW$O>a^>gOWVo!P> zm9)2|y86y01@7%1EZL2iTC8WjKCpe?QB~ay>q2gA7t20*OY3A^P?g#T<%JJVE#I+@ z|A$Q~BX`Qp`;j`@rz;jSa76e0zIm9TXr8wF*`JLnOOs>1c&yr?>hHS!!OzXp;|>OV z5cEFdzU%mtr>nFtvG2E75P0UR#u}aXrHK)jGCdc_{GB@EbHqOb*E1Vx<~*>PwYBn{ z>q?9IzqjsIb+|q&ym4~I9DWyj&BHnmL!9+Bo`?9P>2Ys=c*{or^t*F1ELYZBvoe(3 zu)Vm+K<)efWv>3>0+T;&iTKyUx>W9J!D*xH?Z!vz%4c^c{{8>$#_HIYjgN}j{L7<G z<tP71@+?z)@<O4g<;&N?S6g)cnlsvYCAQu9@_v>!AG2}ASxdolw!RC^LishW{S{cd zdO_9qU-KX7|NZ|zzhYnY^>Z=eOTrf}O>oLhzV_d+ZOaAC#HAeJn*BGJ)V3b3iv0G} zuI_pFy^A)lU3}(=_)1K)53CMynW_+T{%BVB65pd&&hzl^c-mXy{OXF*fjO+%-D1=3 zY6e|h8`;v6zHCxZ)r7sWT=Cx`CwzS=cu0oz0#o~g)o1L3B3ExXs+w`8+IY{F1@ER_ z|MZ9DQ&Ls>>uc*QHAA;rELL{BU~BQg=)lE&(N%_a=cGk-*VaWXIv3sdT*p`Iv|76n zPwFH)22F(n$7V!+n!4X3SaVOv>yOKg&%J#9c}kq9R$QmunL3f*?R_~9`8qGGsHxs{ zAl)v+{@1P|#^X`HR>pX1PTt{t@Y;^vqdS_pc73}Tennuml-KmyZreY0a!iL8>rT$d zt=YTp=p|t<R=elbJ_>VotKQh8K515Y-{I36WGp8uM=3e(w%=ddWL<Jslc8bta(||~ z;>rz9-JUK{QzGuAxIgIYiSVEG@YI8w9~QW7sjH~WtYlCtmh$WK*Om1A8_=1R#!?Zn zXm6`tdVg-)?z}BK6?FF`$%Z`@idxAb%5VSW|99qiv)R5cLfx$vTubMfXf0M0Dfaeh zZ4#5Pc<zeO?MC_GTk3c2k@;BZ{8OdpZ^+E4byW!s0cJ+4=WO5$U9NZZ^S$Xh%U4@| z{J7iA__%s>zx1SK8-gESaqtamUE;8H-$b^_d!v7^n|-5DsggNsd2v_F>Iv#4E0uOP z$a5VFS@6=z{X*%sBMirWul;oY(=Mg2<#XoCy8r#&p?Z9S&k3b%lP<=-4xb#*a=FK| zvd^UL>TC5IPi_ZiM!$dV9P#5B@23sY^SRodEve}7IDasB-?lH)coh#No(wFMzkk_3 z>B*gl{W353y}x~P_$lt}*l^%vsh3CJBAv%+9ro|V_C+tW+}Y#l{qfdB_8S_HZl2Pg zHO*CH)2ZUz3i%y(a|5_0erEa<^gUx+pqdo>>n{Ql!Fg&SFaE!sxS-{=lH*;EEqw2% z94OoS<FZxzRiAHqhGI!e>dKgxZ?8AK^S`sI*=?rvgSf>Xx|Wn5+2(twSZv4YBa;me z+DOe`^tHBpB~QWrcVY|&3KVTSbJI^r7&o0vS5;mSy)td%+J!AU+lm;O&9`5#o3Hz3 z9><J-hjOmx6+T@k!W45s_nm)g@H_XP)eBOhTY9741$BuTB*=fut)FcXFP9)={^sI_ zzMz*!D`GUh1plmhD67ZB+o`^}PxzAF)JreK#BU`nI=WRi>#NbfDKFF~&j{l1ndRS5 zwPJGV(p@`F+ud_@KJi_^|M4G=w1#I+%_egnH7}a6M@d7d-e%i*O`(}AX*GhU7WFx= z@mY7lswDB~5xeD#nQ<RPCYi51Vp1{r`<1oDo*s+;f6GYzy+5{4>r-sx<@*O3_ij7# z*|d@MmB-ZOw-wdg_RKe4E4k`{dx#R>sT0;qSh*6o_G#SwRN5UcGHd2b#;Z$&TfDE` znl$goZr8OU61KuqR!wne5iYHioxnI_;}4-N{jo-=auPxtQe1S;Z#&a{W?qlL<861N z|64~dPqwa9Sdri<zpiBWj;-ezgV^1x1TKf?z1;Hf`;$w4ldUwQ?3k}{-k&XJv2E&w znG21A_WBlZZ1hfQ|8OiIk4e?sq)|{<@b|WCwP#<a$H(m}`nb}S?^eas|GoW-%Qo~c zynN>PI@5>S&t_kJUi|kB=erxF&lwJ!()Sl`{mqqkvTECl=#4)fxGuZ1t3NkOB<5&T zA?t<YhVbd)W&OLS{$81*+p<L0(Ru5il^bVF+M4uI?CDz9i4jII&P`KZbSL;N5c~IN zSE7-t(Yq7ccOE4uC2-v?ocB9RbI;blCim=q>GVknmUpFlyj`vRE@S<llBL2XsuG$9 zj&J(;+R@2EV8c}3)L)5f!yZQEcrvQp4qnv|uCE-;+H-Ef>6c4fCv2X&Dkj8e&Y_$_ z<<!G-4CUr}wX$t5TbZ-ap|f!Ryak-$S9r3wE_y9;GHr?cOJ~)9_up^oAL>^&$rt;* zbVcaXtPh9kQi2w1-nt{^EwyZ)R)f~9oP+T->$LZrwK(-%q9bM3F25J5+UxFe`90qB z_tTyK`As$AYYzPQA96|j=xpQJU)&7+--LMPcYKO{yp1=-Yr^aM?`rqgR;mkRDu--j znOk~$*2zW6HLup*@2Xb6pRYdEZRuV!8_~1#=kB%4nRjoF?W?d1&Bv)pt1j+87tdKP zu(aKi$4~3Ui|v{(k4?Dh_EJ_;-Mym2@3cj+t@oD&J_}BBeY}5s<rMeh+b+$vJtB1d zWWm#NwXa{d?@BkbY2cH1k$SfBo6DUQhZl)>`4=2tXU)!Vt@78)#Jd$W?VmkwCVuu1 z)NAa~<XLlShW?_X_g{4HX=<BiTu@p%bC1rp?bjR*9(!*cV)w1anNcBx;Y43rtNH2= z+YJ;sT?Kw+$4l=`s}|XCxa;XH-P3iqCOyf$v%5U&+W%b*_3!il{{3NI|K$Dw!M;a( zL+qqXnz`#*bU19o#5XbXtjdrKS#fihhpV)cW~18~RmBcD0f%^XkBdiV_+)(CnW(yL z)r3v0FSuFV_K0uZ-=Wp{<_Q1QgVSTZ1^;EH&T!cFWQEwNX<TQ23yRHF<5ey9x{>`d z=<L7CyL`ek)H~A81>Xz&aouu3`HF~JW$%|AT6p1TS^QJ~uXCm^@|pPAKdQq&C~Q@; z_Wym;pYY88-&Zf_K07#``-@XWJjbNh^>Rjzi_H`_L<VH@&S*OIQ^s?7Q0zmY5|8Wl zTpMOd+GbUE^atzY9J|0>sd4}EvXAcOFC<%@zcS!i{B0lqyuV88^7dub_dhX{UTpd6 z1?PsnUu*mSe>^ET!{oSFliS5@z2@8Hmm6*WsQYuW-ltT~4PN?QZ!|6*Z9Jy;Bhm3| z+l2B{yRO|a((w2>+o-tH(%#CdtMrz3^*7y{yZ`E%*wizHNp4k~&JuVsO6xSshDkP> zEGG6J_H=IjX&uVEAikWBVNLhL)2Blm`QwBgYJ^@2O-i_TutG`h*?O+ytbVCwOD4#l zF#dLm+wb?zM_%9e>wfes{P8?$g2CetUs=pLe+zbNI|)4Ex-ywJ_2Q?0B0W)DuX+SI zZFxh*vvPC4tUdj<o&SCRBdhx7&;POgJ9Yn8_F}g^Z<S6p7rx;2_+EVJ#I+wn_xLaM z>zz8Q)o}iH?VMaWK7Z$&`X#^nANi#9&gx7po}s{ceM^&byoaLJ)Pe@b|GQUA`w<y? z_vX}9SGZ)I8@$ZyV~(mhtcpzzet9%%iIs2hn``R4aZ?}o%5RU-UsPgh<8wGA{P~Ah z{$bm_X6|vn$NNLsQcrQd=&qIa%Ivq-y!pqw>=wh?bL^Qjxzs1I1~xWdERs}hEU)<9 zyq?!JiNV%?S#hS^>&OkC{{?VnM*jC>))!ne)%*ne<Eief8{P|t^ki#tF`g`sVV?BI znoCF5TIRsQnrZWU^g;q2*YW7q1YIk*Z(6vwy6g7SR_*Y)H*JsYI(YKqMGL8_?Vlf6 zFeb4CzpcIM`RK*LJx{jzu^Y^)WD9a)`~2(Kgj2hg#t1l8?L5VmHDx+iUh3KB-(Q}M zseHfV_<!4tJN}m+z3Y?U=l#%|PrC9^%9_n5i&M^fuQZ?VH@H6Z_3qRAdaTRtu03?@ zuTW*z(ak^hZrky3jn#s%lo?yK#9P=66&m!9skv_X9DCpcgH6qkX?v6YzQ`!`-Fo#` z{FQGf+_#xrf3W1rrav0fWOq02vIsf!@5qxP@0F~&?>0u%HcecTk!m7(S<Hzw>yrNo z-uM-@-3j&Ie>Mx-)c)g}cKc{{UG@2-*cWRS#6H;Ov^#2d!>Kj)mtTMQe|rCC{)Z{4 z`~SZ`|7ZD)_i;~mOn80Y!|mb3!kri2I611g?$}^EKX}QaJ^RcOXLJUw-0*sa+JXmr z7p@KHF%`ZtsX_gT)F&0MOLm8(9ipz3Jf3c*!63}=vz)!@-idj|;_mLw2WohJ8=qga zJ?)IpzKY7s$a{}%y{|fU#)qhz8|zkh-#YcSEz|w2?1o*gZ_Wr6c$xl?oN+aAuHow| zO}GE5emi}AFYmS4`a3yloc?~0j_P_WD!t)^_m_=ZGql2*CD(w?VPn`CWH>>;sAr{% zXSr*RVsief?Fu5jt-)gcE|;}D3N~EL@9CG5inl*F;aT8@S=Fz9i&=9Y5bI)`a_{`- z%gHkG`R=XzTjkE|dV1}r{i5%WY91!PKCnOBYX6=cAD(45DT!`bZ~L9CWzVX+b2C~e z1TtQ8pC|U&;?JM98=GEw^oF|5Jr~P2zvArFbNg+NzkKvb)acXY<55$-H!Vnfr{O8L zVEe(MjkBuj`HN$AEc+$%2(-Ye?rzfmrM@R~_)cr5wrR7T*U&p3bRgo=e*FYJKD7^? zU29&ye%-if`|R8Wr{>kx7goNVc|M4xPfUR!ctPmx4DX!=c9$3V-Fzw1w6G@gRM_fm z$z8QK%OvtWj^uM~&g=I|HQ{rQ{BIHMc;IvT`nb(?n}v9tB!VI{Sd|(jV)k0<R(m|o zzF*Pw^wv3Z`RE3d+>}eY&sdL|+I>}>8eR8g*9K|j_)D=bMP^L<Sx_BTuFSgRzUquu z(^BV7N}4Kd@G(zl&I+*y0SAMA-f29%z>$4IcjOk%ikOWBMcJDtm{d4>UfcNLrrq;> zirME|&fL=1oX4ope@ONHtb#eZx{hJpU;H{BeNFNBcKV*ZMf~^my}Ca(&rG|guhZ5N z67g93yVH~-w$_IarE5;&;aoA}$x}yl-D|7A1V72E_3=BrU~|#7;Km~n(gBC`1Nm-T zx86SM(q!R#-3gPPJm%S$@u{2Pj&;8I?PA#zI#K=+PpV>UCoFeg_ecM1chFB?k;`1t z!An^i0(P!fSp4}UpQm%<XQk5u;jQ{JQnNpb{g`p&`OKpemWX)Fnmn^1^Y-d`d%o8f z_f3ATa_@5ey?14cH)%d!;w#6tfN8}CyCXB!q|~r%t%^wI@O!Pi<8{))121m#KlRLi zrx)8~U6Jc=w~%dFXIZb{@%P?F?yKrc&7+k<k7+s|4~+Uy7+%9KZ+C3*SNo_ObM1DU zzZ+V*GE{#g&EIxp;|Kqf*Vc<)cia9UXv*?O{@?g)Z5a7{xJ$w+qujz}w=6WcP%dO* z@3_83{~~wFBcDB2{ueA22uquIT<^xV)u*@q-xr;CAjmxAQ_176F@17MFXn&S^<V7P z&GWfRp(Pr!o*ymj;#O^%?HF$(eSDf<bE98<v`}Q|9X2)-hlnTUO3N2i2^=c=zIN%a zS&N<&8!@xb_pag<Dp2(}@$$ljyqU}aYx7-M^IcD~o&M1>Wq<6$E|Gu*g`Z#BJUM># z*TwA<b)-tJI=v0y*k;zn#M_|$G){L<kk`4ac|ICz8CWvbG~alpS)7z<n>GD$SxO@_ zZ}>dpc^(&be4H26W7iPd;}X2hM{ez#?qkLuxLQ5eeqk3&5a-<X&$eB5%j2rE0Z$nM z9=>!q<33fu=p_64V1Y#`!mkT<JZC?dQpeorcS4@sT&|Bd?_rg|rDMnBH@W%Ry~<Ls zt*g1uAGi5;oK1aK`gwbeBEN~zv$%UL)K*q%$e9%{TRy#gLAQg_9>47S>+=3(iprKh z+Er}H@Ha~R>*<G{mxP`Nt$vhRd^bpC)!T5sRIQbICp&sRUt4VY`}_L1y(P!YT#IW; zOoT#r9PKwU6BDbK)XzV+qcf;EUG?>(Y?}blb$-d~j)p$Ez35AgYVDEo(1Ppb>mOCS z-guKgTY7fO@rRoi^V_6&^6!6N{-$tqO#lBZU;9Gtpt)kvmdDEH)bh*a*yV<@ElsI= z?J}|Ee@2O?R)$)U=-2WOIa-p(v=5&S`1^j{pJXo9!u^KffuGp#Zd%?|9mrz(B*lI; z+qUwoyPHC9#oNefpP0bV&vmWI;lyc<s!WcQBcCl-m_?QdsUJ0+FU-R0DSVX2^?3BL zh~0Z@Rn#r+&EYryk!=t>L-)Ml?--GQCGD;~Nilw*y@9;v8CO@aP1gQ@dP#z%K($+V zc;C4V-{yJNPMLpB{HU<nJ$GHMV{uywukY<u^Zu_DDLLbs10(Cf>S^9eLDyqHsXQ;b zkf>-nt?0hpvpCy_h5PP^+V_@dp7&~bwsvjom+RLYwE3;<ed753|1$j->Gf$}yRp|n z1u_3uroq2rO5Pt^uvPo_^!4*@+y1+CM)el+WvPHOacoWMzhn1AEl6BhyDoiw;De%v z=XU=8U8>G_!0pNMlj}B~m?NAW6Ze<xa(BuEC!utK=m%{#qTe{0w{D7OPO}v`@b%uz zry0G$u74Q=Zk)X09z1F5w4K`C??OXQ^QhnNYq6T!8nDNj?bYK87W=hhq8@&7ubhA4 z%b$f29u6)_LMs$RR}1`nzI18w)vl`o8OvU<woiAPf9(A&{y(--(TAq6XnlTlE@Qz3 z0eMR?t;>;;=k2v^Cr?}d)Vn~(;iEy2rUz5|kBPO{0z~xQc&^zH7qsw6z>$M5bGCXp zPO4lbIs5V_KG$yshiyVCYMw7h7inKra>?jB@A|@zKUP@^JUD(VKexE){$K0=yMH{q z|F6A@w>0Idi=)co)<w&@Sd4z^?A0y)WB)tm`T89Wr(7MjyF|~5d7rE?Z${UJ?1jBA zv=1vjTWNIqmb7S{|ATGLQyBZ|PBT_G{#oaj{rbG!KW8U{kPQN-F5Tw4B`bF1;*;|- z_KmX_*}Ulw)o|GF%;|pV_2V9)1)W~=YxIpY|GsE0==J=h^>nF-oOGNXv;On%ehUrH z*{;i9*Y<|D|B67hoq9>L%MV}f6@n?7<Y$L%+W!6Q^~jY^H=J6q{sCW{^qqs*n=OAI zvRZDhrF(bY4U0qUT}KbAi1dEV-qq{X#>KbdSM?Pp{kLCLrfuF_eE*;NYVm~T)uJLB z3{E*L>#j25p3r+$MM=-=_gq(}BEyuWhkEmqPt6cpmG>z;(87C#*?)<vSHoEq#9K_S zJGC9iG&)+goQ>bk>19OVoNf8j#bN`KLKCLn|Ls)2vAXZ|)1y*nZzlSkvs@zS)OqTQ z)Xx*;{!J(LU-@+GS7i|Y=k0z5i#PlAPB<RnveN8)(#nqoUyU4^Y!}^T3MmjcH2JUK z67xo;^RKx&%1wfdmBQveIQH)I{e|qxdY>gkidy6MNO&GjkmxpC|M2Vg`FoG7KK*_1 zKl^6CZ|ip-ZZyjO%#)>|uaeuivcLCnh~4AIA1u%P;@Nw+=ltQr20zy^)X3Eb_jzr~ z&76^8d~9*omuE|!=ku8^y6`JO=8*YEYlgrE?ft@2UQKkYd6uRyS>O35ALEoMQ*slR z-u!)?=|$-GonLcjuF0}<UVZnVOJa#}ipev}`0u~8%DN9-52<3%Y~Q}u=;7XC_7!D& zD?Xm_W0<nidBqi`r|}#gHZd#B(t9}FHTlop8$zAQB^Uo+&inspdBO2@ySH;E?EQ9W zU(ckwKC4%M4%Tn9I>b<NooTVko1is<k5#qutB*a(uJaI>;gS0OtsKMS)gsB?-`_o+ zsxS7WX^H*){(CWE<xfLdUmVIkvOOvAcKYtyv0C@G{=Iy**5*zf*ZKVW2dC~k^lZhv zed%6n>=y_7@GfAGU-wn_cBAt1)GxlyJGXA|*s-;sddt`C0hwz|ZoExbjkxv7B+o|Z z3g_L))4y4}PJ1wK^DgP<Y=(cP#$CT?9ye|MLgt0vxq2pDs_e<$|6TYJpV3Om$~$>x zo{tJ||Jrx=-s}0(ml*b6{`P#EyY25CX@#dP_?;A2>=s_Nx~jV5i`3iv{Ji7}&e$WY zzS5}?+WaL4Zy%q3X3a;x%YtXU?8JX8^7?ni`;>j|;hlv{2VO<#*eDz`S-dyfB=u?H zTS>LUxo>CwWm?pIMt8!)!uQ+v|NfKR-1qnU+h6B*)SeXRU3<26%`V>O!NG~|#n1kn zbETb+_1@1&wgYPGPX_RXs65!?65+S`QtbZh<gNwtCuM%On!D0^XSM3JS?!mu#h3rS z%OWs?<+Q+|8RrGey3g|-KTuKpPAD_Cv^>AB@zL7XY{%;6xI{cVBYKNt(w5$KGuACt z(_N1(%<w7Ryt-YZs(yR+{t^kDor{^1bC3NvE_3@=`mK=gBa1yE*1O#JS)cp5tlap( zPSJmb3WuT?3T8f&$+)~TK6BfdJ^uP#`s)@eOE3S`*Kzr>@bkjifA=vzx_Vmt<C%ho z#}yOQvX9kPKVL1FcI)?rp1PRqFY|aao*LycT$<PM`oRG+nUiyQ81Hy8Y}kFP_UDh3 z$*&`>9Q|eV?Zmdis`z8S*HvBnSNC4W@@ZB7P5U^>4W`GU4ClSReM*d-`S0^?@$>FR z3TxMIzhBqFZ}%aX^Y7W(-=d8ky}PB7@(*_la0YiD-4^%O#`3H)L-zTPbNlW3r@!B8 zKjUACi2Nmi8L<lQ^KBiE$IG8(Nd7o)-rOaVB$+bpxBXZBvXV1!^`zL$YcJjMPfXao zTBy=;n^fWIP;IBvEk*Y?OJD!>=Iqt8xAsQ|w_nZOJ45Tm)?ddLdU>qQ%<-0S(%!gN zv;K8`{^6FKIPurUr#%?vPF>2lEmfvns&l&At<VKAO1d8>{IPo$$}v}#Rd?lrIJ@Vb z)p?h-4q3haQ&jd|WqZ=0XKCA+8kYL;>6@P3^j&xVo0%VOUo@YsRh4KYzUcDK^m^mW z4fikmyWM`9cO&{twEWwdaT;yKSJU68J$*h~di}F!%1^@%{B!KzUnX$E=*--0(_inB ze5%7V$Kz7|)AqQIw8veZyH{L%dqZ)v{0(2*!1I}JEqQCjeJ7;-xx_aA<R#(6?;h$R z>iibgwtaRNepgrT{#<Rl@4n5;b?wK^YS+qEo9C{58*aC6=f}GY4n23bt(tlLea+kG zwvA@YDR1N6HZ(QlMww0fUvOvhr`s%X`FUlp@5CsVWluQ9w`1Gw#ie%rfs;koug}}~ zKGE&s#{K(Guj}SEw>r|NY;UEd*tGTUKKr`u*BRudJ}fCcEi-=(zg<L<x!d8RtGi8d z9>_^;t$g)*>-n=6rA}3reDa(ld;fT~{{FV_^J1IbS4r;+VRuyHuBu<{zfSw>^V-|0 zwvx_n+RKYRc;_GARwvi{UT*(ahVXEn@-LTp=JU?fYkljtY>~T_!?UaVT09;o286$o zUdMR$F0-u3EkWJWAEp#scVds29v=T&=-mU=9gDAjdotO6<FO_CEM}A&w9Jj&uOk)K z=yK=c)LN-PcKff&Q65Xqm)Acpugm-UvQtZ2d4J8%BAr!RO4_qDtmA`B-HTJQ6k4qQ zgn9Q^OMU%W9rmZLaJp7<&7_Nae}6w;P+FKgt@$(~pX!y>`btx4>iecH<k#I~7Jo@J zpI!dCx%rNLdkWXL?brC|p&FXR*B4>4T8_6eWsO_3yy!{ynbSW0e$%X1ezv#&=)Qa9 zrKQc4P5k#~%uVHR(+)b(#_Zr)IK|_Rka$bMt{-=*?KjWx-MV8>ufPr7iQ5$`&R*?P zGFkp-lJoY0BhA4p@5Vn~IbB=U>O=Cw1t-+_7d)JnoLjEJyxvDrr1+uKA79rS2Yzf# zbD#KA<JA<?e&H;^h5d6TGwE@$NxhGs_A|xYK)>k$6JM5j^6x~EGhfx@?CTnq%kSIp zRUwy6BGl!QcFUp<%gl21%-)L3uY3J_<C=y?cc<^SaFXBItnzZ|d3mn6f9|~7sGIry z-P~To{Z*x+>Q`igG{q!}x>KH+dx%Iq+AH;anfbctx3WF)dv>|BUidrHH=6O(GvOa! z9?KsHzyDu9%(A5SFpDpnm{I+)y`H7osV%Q-)_$yPGJ79C-H>12=EK5>jVtr(9&2y2 z_N;j~@%5%tQx$VlzZp$i<NW=dsY=B}qwmYae^qK|Px*am_3HRP%{!W}&-G#2lKu0g zfXS=pi>+s!KQUcKqhILuTs=(*2L;y$2dA3sWeDN;yZ`eE?hn?kT*ZeggBJORinqv$ zeZLX$tF!w0Zqd8?lK!&a6^p_TUVfW0tur(9gWp%Z7Y`q$)?Z<C{=z46!2G)TVIylx zOG!D_YE#zUZi}lS1{Vr;yZ28INpgGKw&kjEX1|m1ai`X-`&$_@*-yn6+gyqg^r*<K z6I``VC0X(LiCfkghpi+0uQ=a(w|z;+xhS@!@{PYvSr<0UFwjoqT4@!oBYv7?4HN$a z&tg0NrQh~Wyf$C{{I(5#OI039`gVv}E`Kwn-Di$@-z`qRTR%0_edA74PPd5*{W0y% zv@l0Mt!;LFwUa`BO4is|igT&eKfQRbL^b;0+G(|4%Wo`WyrlE^mZjOJ+D~b@^-LxA z_TT^4Y~S$y-#vYi3(u`B{ydQVc)qA_kFIn}?YrGvyS_hsxVW16!*?coF+PJ?#kwEk z9{=<yxO!;+)x)Oyu7+IG*><GbOgf%_ir|LtWd_At>-poW|G!_e|Gr3F>i^(}$|+8k zil#OmZrr5_8W*#*l9@TbpL@@G_qVM0`nZTs@?AU}AJh%ojT*mCxf<%XMDKxs$+O8t zOZPub`TSyeq5FDkZia1_>THg#;$F)#bHVG0UTPxd`xj4o_`gdiswVV{{OL_B)q87x z%J{Ga)j#`lrSGcAX{SxOYI3{oY;ai=QgJh?YuTS8eRrnTuCt&1_&}pl5WD@(fYmP^ z{p~qw<)Nv+V5;h!|8cu6=^hN%kDJw9^7v$)mHrOBj_Inp2N^`NxI$MgNIx`X_uY2W zty&Y4EhRhqh2F2>x+?l8J9;*QNdK{idOXsf8y}s!={Aoo<GYj5wSK0SPd~S0tr421 z@cFFizs;AnNoqOH?VVB574x2XZ7o;MO>wT@yO}!*a!UU0X6XC&<KNMnbAIxDs}Z@> z`FkzDP}ib4+fL->pEKV!ch$q-?{@wF56b_0Y;n`h<#FNa#i6&Gt_g)&)PL=J<D089 z<AvhIVqSxO&!3mN)3Y~qwy(0uv$s2J_AJP@=YXbnE9-Q|?O}p`f~PK;2A!+kSYcV_ za%0W^vhMjmqU%NL->3gC)-GAfopmVwozMysH->2u|MxxERlUERQ7<mG@s{z<X<=X0 z?wNgF!k;){GpoB)ze>Q0*Y<5U?Xx-Mbo}le4%)u@Y5mKG%rkHCaz~vy)5~(mOp>$q z5AT{PPx&K4=lP!2zrWMak^bfT{PXi|eRr*V=6`nHitw<jCsKu$pI1wDI?209@A<74 zib=1U;v_$&{r__u65s3m$|r7_*u6C3Qy24AtxDyoThDY%Jnt5yAfdnIe7pFArJ{_F zf~@23maR3+o^^(|Kw9jNMX;6~*StkeYcHt>*|!w$`57et$s>v5VPIO`*-bti)4Tf) zO_ytYwTrvtjGp&1pO(l4(`>Fi{&MPw^?Q}r4Q-w&S?udJnBJ0|>yl&sMT%+m*YEDf z=N}aR-&!xq-zT>`$T^hBuc80K|Bh{eYu1J+S-qWFc2VQ2;lUE0jKG*VvejC;0{0R) zGY@<@5O6_S<(2mPDTm)Ke>FdqXXe3Gnew}rI6SXkrY>5%&F1cgRMQ=o`eq5wT6f_M z$8UwimqPPy$knZr-oECy)Q-Bw`TvjquXs{@qxL5El<&`{ERCL)t}Man6_Ie{qp4_+ zr1Lh#x?^lb8&$T8-z(g(Os4yz+kw2w*t55!%3E(my{xtVvGTCjzPs^j41Z`p-WajO zRC<1#twOid$J;TId--io?g)RL66ePvFvI$RSNNm*4YLb!npjSBS1XFl{16qg@beP4 zCZo#jzZgX?Z}Y65e{H4Adz%H?NlA-sTU(0O*W8%=&#i9qk$Zb4{@j22v&6R?pTFh3 zh6U?(wg%Z&&Q9=Lbm+c8T*|r07cB(**zI$>^>$`ozst*LQ~RqVb)J6fz0aywcf3tM zvfo!ze^yuj>shSL8db;lyZqRqb^O=lq>bNq{OA76rE^DHXSMWe9TvXz8i}u?(w`g+ zVkmz5asJ7<Pp9h}J+<DkV#^V+r7zld-EEB*-;$SoCi<f4i-|98WVCoj6h5rFzrrN( zRQ<P<fcIVI;s$Jg7l>CJ5@nK^+4QoMVc+Ao?=`Z+gVjW}nJ2fdZ}nMuCtlraA*(@= zc3&8GQFP3&z!3E{ycT=S^q!<W<^IlaP&b>|VeOaGYcj1Lcyh~%ysTXHUPnxi+tPA| zXa8xN5+)0ugwB&)rw{&~_*r89hj`&xQO|eoSesk7G$4p=uU_8$<LCc8ia-AKlTh{A zukWt5&s@&vX5rju^8fXkAL`xf<(tl*oa;W}`p*t8_Pmp`l@hk?W}JD(%73+J<lD)c z7Hql_@WhN=m_zqr)0NIg_a>ISG+wA<wN~|?O`hlazPb4mHn(_*%ExQ?#(s!8p_I_j z@A#^GYFhVt_iOb68@%KlpSd)BOw&qfm-d;lxFo3Mdv_dzR%PkUq(AT9D{RPkW}B7d zdga`CfA>XlGAG{UmoI)1)v_*OlftpsZPAyckL6`em}B$eAX|OO93GDV^Le)wR6~AW zy1d+f-lM*_@=bgU>(4&>vNqKDe?|oRx`tUI=ARBG$$t#2pBFYIjE#|L?`NLwn2bm6 zsaogGy>Ax#^6}$I4MCf2KAxvpCBkOuJN=*IbhS)w%LJCpi<u&<o96ny>`eHvFyGu* za^dE4pTA$=t(J(tZX_2ri@Pv}r7mLWqawi>_nMgk9C`%jHB@E0{8hNDWae1CIp)Fh z{l7NvxE6jxciNB7QA(k;`I++;zYIU0cklhDA9t4QWj?%h?_<-vzklcdv8|~5`|#DH zJ&v{u3xh1;_Nad^{$9^7n$4tCcyEQosXfYiE$snIpYB>I{PJx;eCmlMT)UkYwKqF{ zI`On1v^(|0>gst-8IFhBc(grV7BKtEtm)G1I?%Eu^uwLXZyH@ep657c%YIwatoF@t zk9g``srjA_&X>|PRvDQZPWx#0J*D@n_DpH#dEZ&Wtu<EN`mNjG`0aGLR)Jmn)4Mh& z*IbYdv3Xgz;(7TEEAit-FP92#X<j*jv4QpE(bC>lb3=)SPb|Xr8r%0T4RQXUvdZVA z>D|3md(Zt_BpSgXbmG&Tj>DzPioMT?Kb&1qe&mPFj1%wP&HT3fw*P~NKl3B5|Kzr* zsW^Y{A=8taoB6LBoM`>-vh3<So11A>#k<vN+>+mJ6Nm|Vp`_Pd9Gg-9;ryHO^8Eky z>#gUo+=xAKx<A<Po3@U!hnDII9oOkD%fE0$bb4+tFcIb!Howra!K_N}z}sALt;~(K z6+aH#KFO1H?U&!`)gDIT0y8b19SZ9W4gK@=^d14FJ*Jw9|D!*b>)w30@r&l+z+0`$ zK3&^V;l!D}F4_6pQ6tgYx6kjHzwv>T(}%Vb9N9O8H*j5e`Lt<$Soy2BH>S_7?N9Mi zP@D0;Eob2;rmnAn9ib*g^7;Mw`+mPU`RlWp$PE#u3nE7gT~>Y$>T#R!SD#Dexxm6R z%J-zZ7T=!`ZLu`s&rVf;w^WyN+}sv7jqCgyj`}>Bbcp$t%@pD0OrCbHc?`utY<|K` zP9mpI>FiI~_KPK4Fzbivln2WgT{WX#gwH*4@BT~Qb2~R4h}P14$D~ob#8px-=EfYI zqgH3W3C+2^Cxfwe<Gxc;XBW?08!sC3-STlg<D)&fyVK*R2>#xuU-ISK1UU&8w%si@ zE45}9=1sfZCm_$oDZ`;U<5))W`M1YE^c{<ORsL>{yG_VKRiCG9-A^?=FDSZ&U1N*6 z))V=%<c+8ATdsaNdzm7!dF`8{Q(vwQUB-5sRd$B;!8r@LxP!L(hKj_p-8Pv%VZ)Lb z{tvbuJN9q>_`mLMCjWuF@~<V;CGWdeGyQK;y_=dSb?m;vq%#{7T3@N`4{9-bXcCjA zu}eiylHtL<n|pVpKXxr-Gx+eW?Zbo%-xqHA@oq(eXv1Mvl~Yci+Jj4OR4c7BE%h#{ zwhj>6qiOQ>JD<MCi4&7NR8kL4`DUcazf^f!$GKx4m$=J`c{a{bY@VX8`Glu)_QJED zcd4}OjSTeOxIkvgf?c-+TTbSkymNeqNz1jX`*yF*kIm3C<j*V=@3xy4$K_~zPNLu- zYptK;@dt-IqwU0>2!BY~y5-uIIU(1*#9tKUrrtP~FUX$8wtr#2k^iheZ7k|9T{Y%S zYqp$`VO_WK+mSb#Mm|xS{~pae!eXK+XMQHZR^n>xJ&o>TnX<(TH@9o<T6$nhN{d$* zQ;9@=b&qY?YaRA48d)ZXc;|g?6kDJ?=f2;ZbwB#e`9FSmvw6ooTj|GY9B*#F+jaDI zHp>&w)>g9s{rBEY!7ndoZ}2Hm_bmFmeMWz$g+WEY(*BFn?)k0E|MF8Qz%xF?&Fr%B z^w(v}n4_aODsJvdc+!)zZM#L%Tb8X~|G%rgFXdY66V@%xJy~M*Z|}R_+KeG=-z#_X zWE-qkdcOOD)1|{NxgVase*ONh`w#iz%WpAXSYLXme$sQl;=;bgi7R_F44iH#-l<yo zCg$hyb&Q&yj<beoYgN>q|9bYR)aI(jEgc4%qWX_JIxb5&?!;+seS3q-;kPTUZS7qu zmKMozE^|Um=oJ2AFSh#s-LGh`%4l1EDfV@ObEU~Lg*8%}OHOT5wwwLL(=upH_q;t< z?$`f6_;barcIQTg&jxP{wMz0`ye=)(=G`_sdftueNgI_f?f<iR7Eh;<STvh$<?7x4 z-0w*Ju4+H)wEp7*&%&*b1O2vCaZmU&<(gaGWTE%#r%C87H$P@%mte=nWxuObV!@&( zoIjqM`puo@J9GJ`%kMU&b1;4W{mAqn<Byd62m17H$`$z>v-j5e&RA9C5Y=#M&t;|# zi}flNb4)7FF@?O=ET6SqFY4W^|IydQ`mS%?*89EXQEzzmhp<msEB<Y`6Ka&E=PI~N zy-9ZK`EAFg4H$P+A3t~gyxZBn>H6z870um#Z%<de#*PQpo%^09n#!I2w$0>_>I~iF zW6yt1SyFX`QC>LZO01A*1&fAwG;_$mZ-4BbxzAW}qIqW9qFASALHkO6zxk5WedCeF z-e->Am&HAoO57{B%i*=yvsA}Z%VMfO*qyhIFiCN2iLaf>6LsU)@6S6PU!VJp;Y)V? z{~xDs$Nrul%)7)$^vu$t+L^p*H>|o$+cKoRc818rxUKn|AMYXP)inF{>C(pg@*j1h zZ1&pZthd;v6SvT(_T!G$OSkPO2G_j$!M*szF}a=h_lK=teedkA@&(tgbXVR8EEZT2 z6m!va`p?(N60btEA1`VWSfH_nY1))S=fg#Qt!(-&*lfSQ-fkQBH?LB)<Fl;IS83mT z?sVzrNz2(fah)fORyAx5<q6@QBXF9<pX+2~vy8x$U2Jh?64MUOcj{yCoP1+aZD2we z$3?y92Pf;^F^Ot^Is5#`S~;`Roqq2pf6i2BDOxYKY(izsNtH8#1&-&~Yi^}WJ&QSe zrRdkBw6&jHITa7?O`F8fe#%8HaZZhaXjRo(fne`$`)4=mxtCs7o7H#Z(pgTs?<?;& zcArj9J{=b(8Whss{&Zo<=}QjLYj3%?PJHjWlie}+_Sc6p8=6jshs*Q)xOGdeU+%7a z(E{!N`?k-G{I}8K^sEyVyZlaVZ?jw!dx>52!qf@gdlXfrGCd?Ek3U+(w239i?S++j zOsd@Dbm^dDN|Scve>nJPp~>b~_pAP#IOY5MUC-^ix^{m)?Dg5jx9_gSicEusH^qW% z{@(xAFf4v|XyKiyEX9BHpKW<L|IXXEdpB7Q)ZMM*KX8MWp{BD*>B;<Jj<3HS98X)f z`uOtuotw`tKA133=9TDyANw~j#5g>ad$VZLwfA-rk~6~p@4mj!KHiq`vF=eT4iP(v z%5MLA|5ZM%2&s4Ud?c#x8*_YOLPU{uU%)=gfWVfiq75FJ3vRrBVd%Qh{EnJyD4W~i zC2!W2F+O=)y7d32pW5rU=FY#m#B7_`?`vE0)+slMf2+{ixO(2%IUVgznxAzw<}8-I zQn&2TL)CSE7PDVoC!kf|!Z1mRqgOuW#gw?~VUABf1^z8_^|WHFeqy-Es5-}~<?`vL zUfZJnywPE7VzyrSSeL6#&2^zAUxtW(*z`I@ZISgy&m8<SIYaP_<;HiJ7tDWOJr!fX zz1P+9p^;9({c@)e-N&1bUU(f;^Wly3YxC_McbvL!zEt`XbNb5#(|s(r4Pp{=-=@z| zeP;B0NBOSJ%oC5DpQl}7x$4)-Fu6OwcimT*%wcXg=?mKrs}Rk{ZWpSGCh=6|H%t;q zm(4Md-cXoUw61Ah<o5U)AJhFT!D0Iut)?nv9-lN#Dg21FYhqgMuJZr;=9@NtIA&A- zZK15^yU)(YCms8E>~m(v#q!kpXCEB8OqsGje_FC!MR?=&_<bd%U)QRGvgvn*FWH+d ztGD^RlRxjT^3zS?v)~QBMqR)Ddx!Gso9`C&&RW>xnX*gh*`o;}Q?AZ>tE#<w_4^+$ zL~@p0fADVo>yx@E7MeD9zR%lN|2Ox}y0`ido1XLDn^!NA+pW7rU`|Z4s*YanCBw-{ zPqx`kjgiUGKX#+*fb|BJK%-~sQ?(RVwQbm>73b+~ozYzX{Pr78&IhdWT%x_5&stKx z{a^JXDk9Y|KK0Y8?TuYbj{G7EC+OWaaGQE)lGoHDk!eiMkMh5MJ6fM+-o2sc`K0Ho zzS`V-d`hXsfTeO%V&&A7*~W}A3wCIitzfV;TKG0>>NMM%4_`WIF-*C~X7A>7>yPex zNn_K1*wf~1*B9>V{bH2L`<!w2_6xf`ADTVC)V65N=_rm_Mm`t#KUNA({ScHH-f`K8 zz5RZh`Z3G(>$W<_C7-S-XIQi&m0_Y(p67+8=I=ReGAk0YIP+Ovr|Zl}f2#0N(T0JK z=|%2`@2YdNGV>k_o)*6G#7OYJSw&-_xaNE1wG|!x>u-MSJJr7T!Fk&`^XBpCA9!SQ z>F{#>c)QsRTP^ziR&RgfWAJU8%cB#v9dCPdt7bjEBq*d>?%xpgVR`v(@$$0&_WB2p zKdSok<HwU1)35KW?GbpOXR_!)>*nqgH~8<dzOBo#zRYQ;)_o&%s<f`z%1hE^eg~G@ z{gl<_uy9mySbKf*^6Z+|$4*5R9e1n{IhI{I?ZL(4JK1M0VZE-$;h1^o<W%9Hk5A^M z>z-n{xb7&+!`D;xFHrfU*m#JeS)qkFwLCU}x!WU3OVgx=C#p5sE9~^zTR#qoy^r3% z=1BG~tF32v#J>i)PW+xcvsHO&<%L_V2PNv&{BPPCX*Ea6e{&3GQTSA>9<uy-8f)0I z&b(^@ug=+fur9W`yz$&`7K>xOb-Sd~PFu&U^P3z{`1-H<?BbgH%j*UHKe=t+|N5`@ ze1DezDz2G#i_f;0F%$@_<J6tAUrqMTqL3riM(27{E-d2ljn`0H&z30_ai}=X<a$!= zd?A&UuGgI}xJUTf7wvU4=-s-?^7rmzn=H4^4rDZFjBfH~nV;rV#QtZS@(MY=DSM>Y zrC1YIZkb={94Gv;{nDwj+dociuRnUb@8${1*Uyhe&gJ7QGUDFPTj%^iS61@k?uSo5 zeL7uo-Cv!TtFLc+#g`8gdrPlmWUiiA(41fY`nBI;)h92HsL$c%GPac2f4-P;^OVav zXO>-_rEc23{K3huU$5_Dmv4UkuASl7*Do(u-T2QFSeCxRB07q-b+VgJp1t3i;_a^^ zctvKkMlR7a-N(K8>l>z3+GoGtt3IB!VD<K$_da}hc-Z2fnfSE*874&rwwDfmY*e~1 zX+~(tgTL+1lM5xq7Kltcz<zYy_M_IHo}28Qy|B4kD87qf*`=q~MUE_CUKa1OL4<Mj z<b+Fm_U|$9I;;0vz-j`|;g+xQElgbu9HmPno{RPbGdO?gRE@fHXnLjD@&_&{*Q4b{ zbb3!en-cucd74)Ef_+=p=Vh*LP2_WLDA-)2F{}86(yT4lJI{Gbx&>NomS*6WyLWh^ zdWu}`xevepAK-ud<A>rQSCMKTMiD9L`GQ$b|76P6Jbk#S?2UHb{!2FlgYGRUao28a z)l6Gi_wV24XLn_a4u(juzjHOro^bMj*z9dbHg3OPCt(tzTeo6bG?!qFb60h3^>lU7 zhM>-9qi1rFzqTK{V%wR|!1~qlTuZ>G71u0fYwycknDKqvj{DY)oec9B<5Rs_8cRCA zUX_1+au<J%eBG9%KTmah(B`r|(X4yD<=sTFDo6HzKIhr1HthPBTO+Nlvh&ov@Av*r zv)}0M)!lPh`~2bspT5V1hH<SBkn7mgR^s{Tg^nlNjav`Af6R!H?-p>_|L%R?zCE|| z{vVM_x4OGU_=;}PmFvp4ZfG<-d%n6UOZ29Hq4NIlt_7cVRF;4LsvISMr<^Y^>< z%P%Xw+pl;vazSfQh>z2xypz8+%5h!(diwF#y}JWHw2F0o_db<7i|hE(>MNQ_tTu{< zKgtE&E?m;PyVF%Obh=KFOY1wi?cez3&6)RO+Ckej6BaGw<LqzyQLlS!(d7q|177`o zU%Scpm?763o~Qdi9Y}vydwqjN)e6^apGnnQrO(GNzxtlbTJ_;UmMa^xI9`|7c)gX= za#)qD^6=2EM`as6m|SSR&lMXrv-#e=W6^h~bZ(2ABO~8`;}yg1)ve!*_kZ|aSo`}< z)^7HUNVN&l#a5i&zSlHax5UUQ2)}y55U_}6*Pmr4yI71l57qo}H2xR&fMc(>@1?9V zhsk@&HY76}^|8I%9lA!6T_!}&iF;=8EZcc?`pWMYzw_FX{{8;FOH8VNC6X>V^~Xei z4!ibf<pq{X#+DsoUFnK@qcz08zm)&*@=2*T>)q^!-@jhsRtc4yGSAIcVk^sz3A?1& z{Z_~9@3nkmJx9*Ars3?wrwTk(Yd(KF$o~G(vuC$n-fnuYE|9g+A^%pEea3^cm*N<? z7};1hw(<BZ$+`Ss|6BRnZ|B{6`NTd>UYP&DD`toJ7tYSVe?rslcjx`4$8RGwKHU+% zwZ1uJmDaYqN2Q-%40p`v7h9sU^3R;jyC(en@bWjS?rDdEe|LD_7MoFcWkcqwMPIKk zQYe_Zvi<3$j9K=kM=CD9OgddYO>)b(Kkt0Ik4{awv{H77jP!e9er}c6m2Bc=Y{5<s zwHWf&>ppybu=%s7MDFLmTl7wEv#eg5dph~(Zks#q!R8)s=N!@A?eMm>ZF}!-PP2dV zo7HzGSaB`oHVDj>pVwIte!@{Y{!)e}laKb+85achOk(2s#uv+#FL`5Q^$#B588H_x zRfSwSvzPC~ryWxTlene_M*pq)Ui4%)59_O`I@<23(@ZKgL~FA4Jz?h!nzH69bGhwu z%{?jqzGl=LKAf-n@vpbt^%*uVd`-5eC+~~WkhbnTcWmR1P`?Ddpl6NmAL&g?<32O# zoS0AQiih3$FPal)eyfuI{(k=Y!neUOv2oTn;+^7Vc<<4Bp=7UMc>i{pjYHOXPa$9Z za{;YZ%<Y+{`*(lH3g}7fVvzcyJ7q;ul>B4KQ_4RInQQiYtNYeP$V~CLIm!H4<wDW8 z-`jY0{(f<hS^F!u|CE^bl^@?UPfZhFu*SnR&Vkjw>(YfYXFryz-77EkZj0V;X?L!f z|BRD9ThLl3oqu<(UY)G|V@8a;G{3|CzP@+=4@qtRRX*)@-J!{{t23u-CaGz%Uc1`! zQ~jE*tF`HZjkVW{CLX&#@ng>R`*-5{bFNQbEd2WpceKoWna9t5-C_;wedwhZGPllk z>i(HJ$@cB+2iES%{GD(on_HttYvV8G*+F$CI$A;nLBB-gCe58Wg`1U2_?F50^}TIr z#uKmVewin381wD<@*Vs3tW()mu3J+1tM1j-^X{9P+TLnjnW}#K=~mlK!VkY$vrcY_ zdpmD!;d}1jn~URfBdSa5E6Pp3pGvpsGs}qc6udT*bCy=Z<*M)DS;tm2hO8Dk)or^> z;L8#<u7a--n$I1yA{PH%=HtF~*5CJ&g{v510=}26nBVQ*#(Z{d)stkdTRkU_ooi{6 zS^wmr-er&3J3ho+x_pF>TWy*<YvIW^9a7&O{bf}9cltu8+`PjV4!b=6dVTZM>+9C# zulZT9#G>NCj-@@;vFX8l2Tz{7xa!aQwb?c8;rjY)waT3q_a;mJ*%({)Xa2oK2QOOO z-q-4H`zLqDj=FT&SLc4oeb!8US1hacnj`7A@*Mr9ynhcDig(|3y!f;sH+<jTeXPam zi_Yko{9L^!`qUCug|7TbZhLP%etf*YZOz8Sh<^u9i=Y4a=V$u~pFcIu=h73qJT5Ig zb5>@K!Gl);dk;TioxO}z#xm&d&8Pi$zpkzS`YVF5!EWR1w|}?ieb=wAkXKK-Y5LqW zlC5A<S!BVZX>OMBaa{+z%9qz3f8==a+^?Hozh3p=u(_4@crF{0-!<2A;c~y*KNT+j z`Z{fSS8L*5ro&V3wbrOSXIRnM^X$>K^ScG!slUH_+wMU6w)qFIYP1#4{=#{XIodbb zdyd${hldP*N&OO8^VM!&hHK=G1Nn<q*zsrQExma4><!0_7uL!)xfjjbwIb(kpZ!7c zd%x!X*#7Ut{?_^b+xKsX+M<6dGwoYHBLg?%kJWdSRC25J4wSup9~j~)Gi`p!)BP^{ zbH2B>$V_8?y|PN-kkP}-m+wEib0O{Fvs-)8+CN)Xg>}tqx$;(FVNdbC;@Pc7YVYpe zbX#}Y<VhZi8=N#^o~{sfzwv%fM(@XGQXPEli=NDJZCb<Jy=$$>kH8=QjFu=JIBmea z{_A_Q%R40&|9xcOF*p2xcYVUkt6Khrm6f93Rr+@p^*ukr5E1%l)`PW|H(&p;WA9GS zr{Q9)BKuqmuXejBH>)kq^SHh4Ve|6U>Cc2B|9)t2S86o**}4CE<`(-Oo#%H>v0VE4 zUges0$Ns*)aLZC==J_v;rZ1S^+qgR1cG^6qleRj#Kle#T_RHH!y{q5kxqX+ue*D^h zH@^!ct_iz7Ir?R3&*6ekKPU4ZGJf*iU$ypOlg12(qNQHvx|`eW%WMChweRo0_;n)_ z!{1wP&Fr@>x?sPt=#XaW9TE14ciyQ^o-L62dT#OLFvegp4S^<okvxMHxve|*?TXRu zFJ3)0Ud*}w{I|#Unktu%&W~#>$rWEH&2?zsrX=UiYr$q7va4*lq+e%RAO61Y>+BEj zu5LeWcA`~i<JRlCZ3|=m{4`_#y}HR?)1~p`@ot7E5wq@|Hg9cWiu;`4Zs)vy-8Rc( zX_2-X)(6e+{Z75J#%Xe1k=BNJ{2TY5mDs-Z%ACB}j0{oMPCG8Qr@T?vc;tWgy6IZ4 zxe}SCRI2Tr@-f&@RdLA+bItb`JoDP8N^(tGe=%w1PcgqGUxUkwLfm%j+$CEnCerum z{0sND$$ze%iujT8v7sg9`HE)#Gm`~%ecvklGh1rIJo(a2uUC;fTkWnbF}_~7cP4|Q zphL3E*3~N+7Tf>Xy+QAAt0U{Vjo<I{{aN&eVM|VBcR1(jOHY4fTgHCw`SRh+QHF)w zm)3{;l#<`N?)UDc4XJA{pPbP1?2hLzs~6#~l9Ep>*rggW^Zmrv#@BY9xopT7o2eLo zuj)^MM*X`RFY<To-78u6{|R%&{iw=)A2^-)gY0-8yF4oYUG}XmOyI%{XP10WbGKU` zkE?w<|2mnS;a8EpRaL>Zf1i&26aUN*)OkC$v1Ij6zlWzxeJ?6K6ZDWh5wyNc!mo)T zz98%U-iV3$?2Na0Z5h=}e$BfvJJIz;O2+Z3=ew?bF_WkWyCTb3<4`*%L@IP;#PqlK zQ+FP<4!<wsSy+AdIn!!I&Zy<FUIxcc8E?A$NO^6{Gn4G|T-z(!OJ?3#{wy-Fx^#=) zjMcYmR6ZZclFN;Gt-9~)z3{@ldtUYZ%Zyp!WNVc%&2{^)vv2F4eE-(*jPJ~sa51aG zg>DDW&vkb`uziid3>y_ep+yc?R`E>q+VjZmlDYQHryi@e&TZo3Y<tA1{!3*+bLL3_ zMiaLFBe@GhkH25|h3m(gY0uMo1LaSzjI3B!V8Rf)@!x5VSMzcUc(yF~8<86uanAgC z^`!$R1e&sD`o#ywY`(nVxNqzGgQnRJ7q_h~FF9#gykXWBbAt;>HFp996iQoedu`Nd zV&3jC^ZJCY<Cy|Ap$B4q&R5o7@+dz}-i3`nTd#FNnH1-&dJi>bug9}o1J`RRAId#< zi~FDU@!6#u9@3Ak?b1WGd^4M^yyx#V<@t}rzPyk-_5I%OWs+KU|F%f7Y~;PZmuc3L zZ>7`P1+K1En}5qvy5{Av>mSU1ot9bj_4)jL`~IDpYxm>%;&uIs3@_pu-cAo!`K2EA zv?lAcV)D$t?lM!OTU@o96t9KF2>ImJXW2}@7O>BL-BE`FCr{p7VLRc4xUye$@$O>} zzFA4zJ)O6+W6qJ&!S+*@`rZwmBCe|b^vI=>5Us^$Cms@h$Lb)cwa(P(!zEX%$*Q|H z+)zs6x$`TXW0BmpB;kaxgfEi|pKj3caroNY7U6$?l5uduVcl7sFBUTEUdunVe|JoO z>;%2!|7J(N{WyM;U2p2Dqm!d&r8AmX+N#}}&SbIK>id1um#6Z(6&A}Sx^6aj*X24Z z{h;?A?^C-MHS6BydFuAGWzvK;9lOJeE3R&S)PIX}-|xx)h2rkk7<|hu@4o7=fyH9m ztIkP(mnQ{O$hB+k2zhYtx^qAK@l7vJ7P`Oa+_TMDWqaTvjqeNQ*GJy{#j?8W-ygB% zvyWH2zW2PK^7ol68=p-Ix?lf=@ZXeNp_^LDy!YvxqFjjuno?%RoPTd&O22f>x`)O1 zvXhp&W7-?3R9$ZgsS|OB46Gd^zwuALBVd2qq3K}TZ(DJ7EsZ(PPy82_mel<^@$LT~ z2N_N(%e=Dm4E-7I+*R!C@7}Q>rD8!_=xK}PuI3(Dam(*qvr;>M|KwIPo@MIUH=f@A zyCd@d-(L|-4ewYj?CNgR#@I*Q^<M1Z5-7cA1<R__J!j&QcWs*&*Z<RVt$>^58>hAU zALjk6sw&IcXqd5Qc{9Um?+Mp_EV;xLm3FpC>K&KL0@h6zX7%f)*vW0*(7xkxl4-+V z{r4KHxF_>Wj9K&MjmnhC9BSK_d|7|Tzjs+r<!h5~7w@)Bw7AJHnRWZEMZQDLzg^n) z-~M{7it0O>v?KOozWcJ${_U?`{gpV*(9F&_lWUI9?4`S8z0=iXCxnR{_qsPjUM<5( zt9+u!hLy9Lzom6b=cfc}b?)1BF?3g|*Sg$obAHXa?j`+g`i^yngueAVC-z@^9v`>g zx=gTSSK+^-&+EVVZ&v55?J{5U#rPcC1g8rZYOmd|vpA>TXW#$-p8Oy4kKXZrPi07N z?DM*x&BxePzA|d<x!>;DKUT~?R$lp;DQvxC(Y-mm)&EZXtqu!+ye)t2*V1GAuKoJ| zQnzs4)DN-?@+LDsTe8)1U3liQ71{X=y5SEv9$ZL@oABmovHJuEyN74IF05+n(U`ud zzb5I^v5I;ZwSR$^&SsVu)ik;1+ip5!{dDi{yI*g--meq+q`g!)Aokmedxp!~%)<}P ztDjWwd#t0m;Sl#uiJ8kc{Mj82T9s(mcKx^rLr=?r`M2`qYYJ1F^?NM#aO?9bwh1tl zd`xfKvUl;WwZ%J&zJBE9s^`o;dv!v6+PgjPIA3u5tcW!!V|SZfEBG~R_k+%|tsGCZ z41T7}=*WD_u=#+K;K`ttc|M-@d%9lD^@$OGuAH}8Q@Wy3#zt!TExvres$1K%d*@1A z^NPK*j$^jqf@+UndW~n@3f}+wnI)4OwsZs6*LUZxCn<KZ85plluwL`;?K8P5-wxM& zw;zk&H%~u0+4-@F-AoVbi;5>EG)2el-pJweDQxlWK<BcPjTh#=Xu9(%Wy$sCyrbSt z`+xnnwx63T_h{|o_eZY&vn=|(GIK-8<e+Gav!=!VNv9NE3Kq6*l|OZ#`)<M|X~wWM znltBd*D23GdTUc*OZ4`4-`{=j`7ZOY=Cjy5yLxf+)2=%X)&8iP5gs}-sK8~~4%Po( z4{uwS7vH<#{E=sVvyb=xF5Akhw|-stg1V=cQ=8^ku*6Gh=kSR{q^;%_I<sm2$@@lI zedlf1C(fMoXSZgN2Uo)dk(hheKHSLpwX#Wid2Nx;Or6KF!d9CP9*~nglY2_sw@}@3 z{oXzK?9Y8pB+u>8du|t#{4cqk<<bfz2d6#mkFN8$dz?}33N(;TENe>oQe3mgao$y? zh(k)5cjm>!*Z-~W>3{ikBP+vSp~^3peZTkzRJCsU{@--bMc=edv;Ryv^rlAKw<%~# ztCKtjqle-2X>qqIriZUT_Wb$s=O>u7!t^$CFU)(Y#9!e2@b{q)F&9dgMCG5_*V0sc z@P7Ml85{rRi_(wcUI=Uoy%qLUKT|azU}<PeWb_e*Kg*}pKD#=D`?Q~1$AOmSK9>En zLml3K%l?s6`tbYS8?ie#H*j~i-Z-)Suyetcb78OFr|kWo^``NCCG(}JGdD;{3u(M` z{2k<y!4WUbt!p<+%T4?LJx=!(5{5qv^;H(_p1bq{qo_e@M1#Xxt*KVWV<pSN|Gw1f z(O)<3cHLVckFDmb+C?WxXFpoGcXNNWV{dJ-e>rQ}=Sc!Sa>D=9_DtQW-K((V=Z=K; zIjZ%Fd*AMRTiyTseB7hr{{8ar<7<mU`kMO}9{*&$K=}S{`5fUT%JZvVWcmc?YR)Y_ zWx6SPZ+>{Vx!m$+-6jqV$0}Jh?wgA|39-17DfC4sWZ(4#6LTYZBOkt>TNDrw`#kTd z_a)z_rMvt$Cwhnk^UVENr!xO}&a`#EEM7QXm{Q=JW>@t`VEO8DK1RPaPp7Y+_wZ)> z`}X55OT;w1Dpzdn-Z<~U>vdnez3%q+Yh)^43}4Nyuy5~l*Y+H}y!sc9x4eD-;a3E6 zLu%#6wTs^_-X0eB<KdyZC*up)WcE*2v7fnBHg@Ob`%i5r>nzo4$QAT?n0WrHZc}aJ zmpu))eC!=w{CJU3bKRNg+WAZCqTgTquf?FI`o_My$WidlB`4h*bKg3+UM^ZXRs7vA zuh~0uQ~y@@Dn36l_t$hU^`j0N+?RG#DR52veY{&d=HkZx1zYRFRrOad-G5?Y{?@3q z|K8Th<e$5K<Gp0w7pd*q3@@(Pw|#p5J~>eI=)ooX{#9#;{XcqGT-d<5^b)sP&oYrG zU0ixWJeRU!n%HJO^>YpRG39O6x5E8>Zy)`dsqR)3?poETbI&ULZ*zOYn%t8+)BZP| zm*AhroE{`1_B+tx)H9=ur;~5|e(+Ys<6`E#tK1H6r%BuF{+p09(fECHZtUxabI#lS zySw9-?a{iguQIM2DA;f{;<1yZ^op(DPr5(yTKr%CRC##nji|62Z{kg+^M{;TEI7^9 zZ)uL_(yP0taqB-T{8OFbqVTi%+LnZ%87JjuTvz66u-pASTQi|$$swJdxuFwo^7}uz z9Aw^5T)*Yia`)u^`g%$4oZAe)PuA(rvv)S?<ZpP+GU51=rX@^2WI0mmRqfcBq851- zer)_^aO32+%NF)O@4Pat;#7I?`||bc_kY|_{de_sGB3lg()$0M^Ka#TudjJJ^|)q1 zpg>)u!oQm*R>&8gKJp@vW9gcGCfm3!b4iA_Iao!_{Jdf=-?e8uuU|L6{<>aVo5O;4 zp)2dn$M^0YdVBm;)?N8GR^2=G?$jo5J-#61th0j4Xo<$<tgC?sZ%lQX`DMnb{<fv6 z!UY$mc@^n=IJz?E9XspQMeD<_zs>vKdh;!V+UeG?&&NCr?_B!(S-9reo6mdKoI3R~ zJzM9y;yd};q|#3N1KqQi@3{GW$NRIt4xF2M+bCL*aZbP#hEL2*J2@Ga?Mgp${o60) zDOoa2m*dYX2P|J6>v_ej_0f6VJyz;X0arA<uCsjcl8kh6NMblYCwhVGhc=7zop1T| zcMG=s|NOq0J%oQ-s;~WlwFz%NKdj}k51IbKW`C+L-_ot|jlBM+VosTye08pV8`G23 z8re1u3~BscZI5#1ZeiH;C8~t~(n~H8dA_))JGU2#t}zJ?aF(<_;P8P}yskTUXXe^` zuaGm2&MM)L8jkbu9J$q?nsDqKgT!5*n^mIT`}Gf7eyvrV?%p;*BlYa&!eTxP->8S$ z@#}-sD%Sk_I`8x6Vw;MB`-gfT{f%1tZr+>k2Y<is+57MFiAk$hthsu<E%ejmPA=iX zDfts>W>1(GbkASzE>Glz;?}%8D~^|JA=O32pTF9-_5b|3k)0vDqN=p&%ZugV^L}mD zRMJq;m6^+}Ail2lzLvs-s5MPZY?>KNAKRWtF8UsPeE#A0|84j4$Nye_KVtC&^Mj91 zXFZLNi+%9rOU{n}*^blaZ7C_KF}ZiOnEA)Mp0kYKul<O=KY7m-mZc(FLKBy^bnI9^ ziy`5W|E^i5Kb+D2vrBw|D(?~veXdP<ORO4h?obL3pHdKNIsN_IwI@6kkJ}oxid+(U zG5hK+ChOz*Kl`?Sl)e8|V*l56yVmpd@8s+%s(Sh3>aw>Atv|l5-C~C8mWXVRM5+Dz z-8Q`lds|k-pcXazgIh$(mH-~+ovN=shaL|Ul~H-1x+KCwFiqmUUg4b+D;Zv>y<3_k z{?*Ch#LwjarCGw~j8pfxGOlPB-C=56-g4mil<luf@)=WP82sKuObvRt+fnd)Ou_T^ z^)3OIb*pR{oN^{lW+@I5iSgf6d*k|vUr(E-%7tGy_tUEqKKF5E^?phH{Cl#NN*|5{ zevB2cl%12i$@`miY1qaT%krat^Heeo=d&!Fd`Vkzk%i)gsU`X{C0FDg{JUBH@Y%NK zRc{Ww&A(j9v6U-M<+f<+OW!ZKC%?a&yVhjqR-+>t3s+rSe`bZfo$ayacK%~C)uN8? zuq!XFHl6Z6ue{ozZr|FxYL}D6njaFFw*2!o%F5d+E1&Lh^4XzdxBth69oP{aw|4!l z-a38W`kb4#^-Yk3@OM|F<iiwR)-`KBAHEtkO<>Ns8EbbfpCc>n*wC#rF`^`Bf@XL8 zjn^?J4{-(Ec_$*jr=mP|+tYvr=T5CIsrvfrXT|lCA0<~Az4F?x&XZ@B`-JUCqFLSH zj~~l=<EtX?Sa^5~9NMli**V!*XG2!zE+ZauUGYVpPk(LMe`e~<9r|~7|K0!jYyJMe zo9$bkUq2r%{>L}MMA55z`jQjj3%>0B6Y3&yy0WPL)2l<Vj0Y}WWUhI~uIu;f?fQ2g zR<+OU-(6bPeEYR`L~ey{a-h`d&pVd<i_5S&c65iX+C%+|;f1a*ukAnQ%soNvo#ccs zQY*Q4g)D1ju$XaR15e|PS1O+^+%zA|o*U|@6Z!E>yujK$E*s~`H7N8oPy68$oFIM8 zH||)<&*09C%tKS6&$eA>YB-VX$o^b?vG2a=U;kOwywctr!uw~=+H0@sw)*Jnt#`k9 z@AK#2n7EkM=h<^Ob}${DZhk**s$1BRD~Bdm>X;q06D=)HeX`|xb9!L0p2cjw2PHuZ zJD7VFexBpJQE~e(Pt#k;bN=#=KK*i*Fe<-rZtI_@o;#9L9_Zhlx;QD`{>+PCY0oz; z5{=t_{p*q2bu-TY<PuSv`I7D6=XCi8H!t%C@W)PKcqz>u^wTHSoa>-W*wRV-irMyA zZ$+!D+{;-j=QV$iemzs-)AIcF`~N-v@a$K|na=)~TWxRuyYVXZ-zLSt?N%BdCwAxv zh)*+g`VjU-s@rPYoX+=+y1ZSH{`%$TKltzaS-kqy_8b43LZ*nYpTG9wruqG!w+fc` z?z`bTO?yL>QU2b)88WMPF8r-)x-7b(^I_nzWZSPhmOp1H2<VEunW-_2g<0fCS-;=> z{{Jyt{SoE|kNo=m@*88_lkfk%Epoqqh`Jg6x`e~K*DWUD>PE&3FU+&WmrU4t@>cJv z@>f=WZ(3W|Jbr!u*yXE6FRu!1)lj!Qqu=q!S#i?m-4|ljc3iz(VCY*b!7R-+W&P?u z&A)apXZy9e>x-3dSOH^`)!9H+!_-Gj>8i(tP8{KvofNXWR4&Oz_(gFyuh18H``I@d zw?B4}7g?$(9IG}#^u6)weV?X_e7c=&vTC2&vcg~dcX#|yG`#ow;N*8fZL(i$D+_mO zEqlJ&`&U)VMUUGH9%mFt?i4QbTGGmJrT^2@KTGoOu3UCU@UXwivxzbj4*R>#Z&>xI zyuP!&%_Lj+M)KNq8w&mTKi*lhu>bq~zl$GUOv(tjcxqRv{&eL<r_48g<9@H`(9=J) zwoKsbwcGi<lmBqcia4_7^osBIe@~Otvuc*{HZYqo-Tl|L8RczzRh}t^wcnlX>}IsT zy)WtRHl><B%iq8FXy9M|_rJuwn8#I*89%&!_3CA)wblRCtDAq_kDK}O%B250G+4L1 zaQ+swPLVbFqrz`r4bdk$As4tbUWAM5RNtLG&tu>IKlfV0E13PxG2ID@EAc;Y(^gye zjxCd|%Z1I4#ZCR47UjpOatdgEj@-klv5<NH;g)!<w3}1T#L92q^gfGeHj`4rrC<B! z-g)r;@164xk}54XefwF-abCe%)bFI>f(as=Qoa4Me<Uhy^`zgD`d(k~C$r}KVdI!L z<~u4F@9dBI@TTnG*LN>pRqj0UL8_oy;y2f^2bMRlwnmGHPf}mA+p~Q`nuzO~;1AxP z`omheuju+oI(++Z!sWrVzbu|gD^K2R&^vL&xO%-T+m?Q=9LxWQ{Fc=CmYopvP!qm& z^-<lfb<4Rb*L}D=S!L_R4+T&9*uo_q*Ki&!x#oCUt#`xO_F4BVcU@XKWrNy${d)_h zy|j5P*KqoEPIAzP8ngZ{so$(m$u5gA>XTQLsl59)e#bVO`O}J0womTY@Hn=8=4QpI z2RBqC#h;a2vB&-Uj_;SJs@rNw&HVp*?rpO!xx07XY-(R!V`(3K{qo*w=WQh$uI|a> zJpT33(cqdN533LFK2-kk_yYIY=UqJ`r?ZP66|&K=j1`NuYggE|zEZPhrRU<D_b->d z{bw!ze9iyEuX!0X!qa;mKRzz|?f;6FCx;sw)^SFhd~lXEEc@gX2DPKJyNv#_DDuQu zcm>LwS(|sFNwIeNfum2m1>NmmnKDNtt`FZ7eWl@m)`bYqg7V$^P36<}3r7id&PaOe z>}a)uGiF`%1jAzSKPy(uHBVZU%x?2n=2xB6;$wpAGrwL>Pdn%k74&oAmM0CqG6^RI z`^>+8{P9F^-@i{x=k>x*Kl#aeFY<qNNlDM?(4X1%OyMP3cbw)IEw8Z;SSj8Z7`|vl zSi#jdGPBRscI`cW^zo#wNcCG%+8RQ>H=;kuRPPS=mR>j^okviSWm?=i&Vs+sFMj;E zq3-){R?d_OlJ^6d7Pf|~C~Zw$eRIbPRZUZ-6RT}!=E<Z>H@i#xH)T3-%z2^Vl`tEl zJD!J%t_K!g;N3S*ytt~$XxrPwPc0Ls^LzO}@9Ft$zHZ(6x$_=XtbcbZ;r`bIztdII z7EL&nzf*ng`py2F>lUk@T^-z1v?%09ci|M3eU6)Ac88s>>z|<hM0|pG%+KHDZH1?# zrapN+k-2cou@CF>!?pi&d_VX8;lEWs{QLTv+rn<$7Sj36x%~a!@3}FtaY^6oROdEu z3CtBbWXSkvH)GDr?Uk7q=e~dZ#O#el$LW`1Z6{A?-aPYoYs<C&N6&sW|8Kl!=Odv# zJL7i0n_u(qe!S;r`)>XkK`*^b@%CR6cU`e}G}u?QZuOJT57WDK;)O+a+NR%2a(=cf z>BWEh{pIrg@9eh~Z(Ur-YhEm_wR`sL#JhLy+-p&gdTOq$e}=W@%l<yY_C-OhE0-1M zr9Ph=W^h#MufUTB9@6`-A9q?RnD_Bw;8&>!RSx-!r<*4`%@#Yrka&DG>t?PsU+cHO z-dwwT{=2sc^S4Dd9^~TdyEZ?3clc`Y2T7(%yPM);m*16MI4$IAt6zU{6ffK9hd0(T zz5n&;lt{X(noMwo5XUmMMt;f14<e<rMb1845b*2}Yo3jC*Tkh+(K~8|`4m^N-KzY; zad5U5tKygRU)J^fsxf>iO7}PY&B~oB(aLy{cUw{0`@eViA5Gu)@AGS$nBIL+YyZ#c z?YkuI$Yj6H{76i)($b#X^y9~+W#-H9F1Rh6wEno@HY?%i8O0ADFp8}^uqf5eB*Qr4 z<sPYqJ_qvy(&7_bjxUOB;?cj|y{MyT&gmmuIp)HQTMu*?iCt*j=OUl<cGX4I$=pvD z)IPc6f4ivg!0ByE-~ah@W^Jv!HN!Kx5{GNq1~oq({?@*`e&Io8-HbX8Hj^ja!G}-h zt5-^G+ES=p!gp{+aMZQthdjII=gg3{=C$e2sZZ<u{olHx*!Q|L{{i=y=lu8ntqc|a z^Wv1n{fqy_LZ-{=YO%~$pQWq!u%N!^;*ZPDD;Cu}=eSXCcJh1r>O{LMrUrhOs&=-q zRx!?5{Pv^84V619*J<3+>hKRc{o>0JA-3<QncmIiOI2w4GrujSkJ0Q%dDIJs#uaO- z{Z{wJ_cK1dp;oEp$*eq6p_ffqPU`OC19QzpR30zB*C6^QGwy!<ZNH7H*xr0Ow(Xa0 z?9VSLhwHfRo&8`}B9&tvR$BP*;)TQ9m)sf`_|K_Hto@d>l}A6Eq14hL`26D+_TNuW zdi;3CtA#p>f41BSnd+-$rgib-dha4vxfe@X#hq@6)(Not7lzt4KQf%ae5m>Fmgzj^ zZ=6oco)cbaqpo_bYr*<l@zp!eAAR|Z@!#+NxAr&A|Jz!>qiH#}3)Af#rU!Wgu6GD| zi>|&O{Z4VYs;yM4<yV30tEW$Y{Nh%i?&Qahyk#aFIpH~f=_DuHmMK&G_GxQxxS%E| zUG)9TjP0s>^;lM}ko>>yK<rA-j~qu8!}tBYG^KJIuU5I|PKN~niq)lBQ;){H=Qtq# zIOg_ycZT_Eul+mR&cD~BQcb_T@WN-CFoVC3ezHG%_x`}H6SgM~D(RoHeIj-I&18XA zlh?nFAG_Y@Kc#)!3rCLv<(qyNnmupuO}Mt>|GQt=|E=!DtdDInzwREle0ltjLvGXO zM{s^=byf=87ruJ`e+l-fYyQ91dpGyqxu%`*QAyi4W6vsyuj*8q>Gg?s|5=wMOF7u9 z@BaK*Yg6-q<M!LY8u8uy9H(L%?|w7dwfc53$Jr@72{i?dTFl=Z{<1jCW3kA+w*JV4 zo6QTHpFM3lTd`dGtKOUA*J3muA8ibGbyi3}G(+8X)y}`+S94YCo>l~G6z`I}eW;{A zE4A<P{|o$6E#>4I=e2JL*5<h4S~~yu`MLkqYF<CJKeRQj$7F++g(3gduZ=vrw(!2z zFX%H>_gHmlO2rHX!xx7?N?kl{D}39f!hzeuV1sF<xz9XdCXRWR<%*e>bjNO5&0ajK zr)8$O<(xp3^nAG~Q~Um|cviRNOI>~UiUN&e)?1`}S8RV!K55-g&PjpkjS1~Hrnb8^ z-k&~4*kVOsf4Tn==1&RgWpj>LMZ9ga+jD+no9BWxvWBrAqpH}R)iik2IL|F#ohrE6 zz4+?$t6sB34R-gfnO5{6Hsjhxu~kBM*DRbo`JHDZZ_6{)nOA>@E2%xcx$cdA+};DH zr=KtK(Fj#(4xRHa<lVeK%Y8WXvUdtt{d+d!%F{<YIvN$x=NhZ!R+V>{yf{^_zr9`{ z{C-uF`StAS56*r)zvrE7?ZfhQ>lV+CkbGVE|98N{;F@pe&0mW@f2&ycdGY<O`Y(^3 zf5`fNXw~}AREgJyy2f)w=J~z9zN>=YiS@zvJk56QyuW|{y!pq)7AF4VW9EtN8>BM+ zUOpA~e|!Ah<=0o6FI4CK=6a6F=^DTIJJ-(!iFpj&s#TM`bgmn@vuR0sZC$B!%dvL8 z*Xjj*UzGN(-f(NqqqLWzfAX9gX00x5ja&WnUfAjVyFY!8UD$kd(znn_ir-7V&v<sx zLd0YDB&q0qZyqeYx4qCJKwpdH*rVu6t`oYppSiKv{rhqC-&3dU7EHh2|8|CRg6_=s z3H@6_45BhSI@Jw0BcAiHW}W%7xFz+<JN?8d*O#?>9lUMJqAYr#NAB9;D7F`xORE>3 z*EnP`cjFs>4Ij@Hm)%Y*&9~1!{P)iGg?p<~r~S=X#k|_~dBVvm;S&Gj-%ed<(a;hq zy)rXr#+j)zpJ)Wmj_HY-veBoDYhCjm`HOw+QUOyX_b1n%+BIR(8uxdufq(8@XPCY4 zt)o|!eCn&@nS!%B<!;~4ajRJN{{H*@=`)yGx2y8M5|q^Y7p_0=(Wh5NnTu3YM1C~6 zPL#?LTDo`Nv>o62J@w1Kx=LiN^xVNysS>~H+$lR71>yU=RW`P_a_U~ZdUaBG&rZ8f zRl-a^*6+-lzWlzGW!3B3+S-2ug%8B+X)5tt`TxyP=djbo`V~9t&G;le&82r5)dwBu zQ2w~(nVQU-QySAU_B1xR{?W5Pm+|MSGqbq3eqm{8qDFn}i?vf*k0$q3&#$(rDP8() zGDo#gX!+l-i{xxOH*i0mIALq%Itw9|5X-QsVW)gcy%mnH4b@OMcvRteNcLW}gq;bo z^(9aL@8z#E*ZU^F?%Lk@r_6*J%ogwa?=em0_P@M01=BCK@9k#q4d=Tk{oc&+jz3F_ zwpe%Q`(t%Qx*bQJCLZ~&>M`-rHg&&VV`&$**y^XpX3w4-GR1IaYuf=Hp>C;%-?Y9- zKMid2Sd;(ORBqCn1TB-Q(i(=sfJs5QQ>J;{Pg~F|DY0UAtTU6khmyla6~~j6?%S^a zuGyru<Z_^ooBOw)tGl(WS%bA2PZS(TVGO!i^k>VO+CPjs(cgUe|DD_TF>+={?SY5? z^1HY4hwz6M#xB+{?i78y{*>~Jty=_-_Gzdm@umM%+$wJ={W#;}wuuvu-1`6e=#h8# z_qT7peEIA5%Z{(lT0Glse>8bc@AWnNzr{{hJU{=t&^~|n8HKx+Tx#o<NIm;a-sj%x z28TnZ6%M_BGjqxA%NEzVeHu2ge*V6H<sqSlNb_HM3(n5pv$N`x>YkndW`Z*E{ffKx ze-HJqJ@L)|>;3fQ6<Uw}oxXOuu<YsPa&g;3muv-Qu+Qh+y7<GUCEkt)Zl24C4_M<g z<$ZTka9tAj#{2h^tDmPow}{=#l-zx1SC`){%eoJn_w)MS`>8eW?jGTdA5S_7aczv7 zdx62@&DVEchaayF<ho`p@XfbmMa0U`6=DxF=CzmDhhI;x|9x@Qlm6S1dEdi#yq)$_ zBX!rM7;`m&wxoNJrTgO!g?{%GzSw+I+LSZ#UPCYEYPsXb*Qzr2U0chN6OlJ@x`Vf| zXx_icx2$3p|8ck*b<Ct*xw<yzbo8S+>=V{k>CZUJe}2z5qw}GLp?<5@7;5h7GV=PA zUh99?c7s9U`R4_ac@K9s&6V4=(UhMzOOE^f^9UaQ6M6IhXbSC-d91j~>DsP-Q-M6z zPs?0(DDGb_wECvjpR>A0j-?n%&(2N1ePf!({P_*)TMFg|2>rg!9q*-WJmK!zhgyDJ z21^dUXV)uQf2<<QG3>+X4L*C0@7#9oZ-c$<lBboD8@W3fk}6(K+ps{gZnKr-6!&Y- zQ(M@=v;SW`ef4uur;m;*@0>J7ftg#vr`p?J_cXH#Op|$e%65-wYiID({5g6a1%V9g zlZDoDT;Imw@bmKS+3WvF+>80Y^}1O8y8p*sKfO9xKHAZNfA+tXXWp?j&Hj5lPh(EV zqL6}hPQh%~bzUsWIGm|2DK5tqZaS?bO?`R5gC@>r<so_Xvr5ZqckT+-kK<Ln`I=+S zy8p6wt&isaYm}E+ckQ|Pd#1@%CJ#4G*|BPhsa2WWkKev074Iwv)L2<>9J!QL;y}`# zZQ{1E(_G7U8r^E<boo2;w&}9{yP~fB&v%=7>D|8gJDU?zYp-9-`n<uXcwuU1SK&0P zjE!a+)@V-Naf_>KTHx#j?apO<Zd0zbTU)#>&);r2caFlsE32G*q7wgA|J|B@+S)q% z=eniuSJp{3G@ndj{8Ljmooj{DMT`Fmj_q^J6Bex1I{7dvcF&aeZPBl%%~;9%$}Ye2 z<Jl&Q`We4d>~+pv-uyVQt19GKbo|Y3J<s(enjv+M6a{B5UQ_b+)U>X;&~q;qbja!0 zcO2KL-NBS8+SH(+_=UH8a!Km_!?p&l*CyXg;WhvA-u!mV`dwFKMN4BNb^HIuEobH~ z=ACj^!l_DU;fv$PXEWVQ5$3wdaM|p|%9zUu`x@911mpP&4;?O=5Z|!rpE&QC^t)e< z?6@ee-&gW8E9c?sQ}rvqa-5nYy*Jv6eW6YAStetPoH~<}%S&yZoK-!R#_1l!a8M{& z;RT0-h)vs)M3XHazuH#(?)~&XzmoG_%>T9P+gGb6q`tFvO|>w5#JJ0}`<VEmB~Eif z=h(k(vb|{JdQ+$?P~ta#Wc>ZZHB1ZAz8g)G&z|UXE&TC`D|Y+LlN#Sf9Gmz3?M2Qr zEBDE6Dm9<-%8s$;RfztAFw@sw8#*-)AKP?1>gD1YGTbYirl^!mP@cl>H~X3UZ!@h` zy}g&W3q^9?sO5;M_{Z8BpFJ(+YW58sM-K4`&W=_mK77}EP<Xg{hWWv@Jq3ZYir)Ud zGh2rD{NZz-g&d?lp3CxV6<^Sx;`w@2{iVZ(VfM92MptIMZZ5pGYj6HXo1VI~+N}os zdo9F1w`yDNcof@~p59V*%-x%5TiVAT%KkYr=|K$2OD=A|{ZZv0iw2+Cw%ZlrjtV>8 z_Ia&mxavIbRp%UOODRi9Tf^Yf+ay_?Jj36&@LMssRfrrrzB1!vcIyi5*jZ0AMdH>L zK4po``|G!7zCy=^qBX4c>uzOuDk$9aw{ux(@Jb{{=0l#q$*P*w8z%H8_-V;>A37-0 z*s-Kt+4TK``+TR?tq<eB^{(no!Ogq(rv3X7U@N)de)R2U5sUdtWt=W~o@hMu@Z5IQ z5R-MEs(pI;BPZI3ZuvgH?bWGb&&yx$o1gkW|8do1<`3r!W8crKds*>0Y<g(?oBGSH zr!CSBtxPzUnR~Hdkx(Z`-OlBnYKJ{4H5wR%*jaY1%iT4}!q&Qw+vl><gvf{A>hr#v z@7Vb^`mWx!9j{kUd|16ZD!YGM{`%LY-KTGhzqZ{yaluq>-(ud~4W8|*`_CKK{Z#yY z=a0tarwlrt4O&9Vcc*>n5D@KAl7F1$tz(qBV8PagNx6Pe^XJI$vhKL8YuPqqe~46& z(ZZv;mzNkg^8U}u_IM<5zx4g~$4Qljlh~fy{yBYwTg5I@B=6ow^X<)1j?1?+tJFC^ z+-T=sTUY%u^y|Lwzy7W1F+Mt1w&!brbNCC}{f{$3pWXiYJ?^qX-yYYOlXqXAeSNL` zyN6rX-kv>IT)@jg_$s&MmsZauy3gkCk=#<Up2b##xx=zQx1i^|%`e56xArl&cX3** zY5kwU>i&Dl%Y=nur&^ZlZt}YSrq%G5O;yc(zI}o-D;n3mjB@BW9(?;xX~0X*#Vj)t z^x7^fO;R|$>ubG)S+~#$w~FdjS9Z?-tZ*W(smY+3ul8PExjC~#$?AX4o)x9M+aGbg zbp4g<^>Oj>J&$ZpPkMXQl;L99lXV8umomw5+O26?EBdr|(Vy!3MlM3^!k!#!g`6hc z;*?+0x3!OH)1tW+yOm%5bo=@Lb9|Heb^Gt7|9^1XZ>#$BZ;F<h_vtmuM8sAK{SIA| zy1dFl%CuEjm*3AP>esi)?$gtj=`UpoSUYv!_y1`coqw-<-;l6Jd6}|_`1FK`|IcUt zww=s4{r7a`hkdpZ$Cq!@Q|Vh&9v6IM?d?f95jhNHf=@4JY*M)@dvAp+=d1(f2c_j$ zBW%JC@_bHB%DS{Xy!v(SmscHb=20GBHhF9`+SPFL$nOWI7KjTknmu{(i)pVm&RM&# z(|hscDU%MZQrz=6#4UW?o9eQVW4o(zo9_NAdXuo??{gd1Bni%!Rml@{%UlI(7=nb( zdffReDpST?7y0dHuhPYZ|8pf)M_i7Y5~x^IQCZMY_HmbxcJir5diNrpSgo12;;rVl zs^-*k=bR)H?Nf)Ra7}gBDr-9<(6E-l&~eLAS>C<d{&r6nUvOM=>f9aT@e}6>&poaz zX*7X(7R!VlyD8qQ+E+w<zL`H+@{ZmK?d|eKpN_{rW0Oi;U7^QNe6IJd?Q_W`Nn5ku z2t`~!{q*YDFO_8y><kIa6^C-V=NjFMWBmGPxnS7(1ylYN)UbFyo@~g|dw%Y(ebcrC zyy?CDKfGw~NyZ<dG5Y!Q{@i$cS^rD?|B(Ogt6bvv#G|>|J_zX)Ut2%n@n3dthUQ1k znamf9%oZM(c(B7bpz7ZHRL=lLR@TK_y76}N@4vtPe{Yniy|Z{PYv`4vV|SD9Y;Ibb zA+LLFi<srK2g^7X1>IT7P!ZB7maM*O`P3K5^4p7|=W0*P@(gWA(eu`xTxHG2FzdG1 z@}-<A?;J8bwYl=&aY;;n8!HkSyRzcxe7(%2(^7UUdDA$l=QK+?KkuFUc8A)xpI_7G zBD&9W-hx7j#>w|qB->@2d%mc%&q`pg%mz7zsTDh$cV%#kUVrlUs)F%CUE}Zm!fRG6 zn7M1=8oBza&|l{3=j@**lbyxj^T7O>=j8)eW)@`roj$#y`*!a0?$=By2DS3G*^lP^ zdD8hsY(t=~$&2vW_m6hX7oNLBg25r`O0oX2_d)Zl1CFq4`dEJVuHa#h^*&RC^g>mR z&OH?LNsHr8(Q}`g4i@3R?AQBhSU9(S@!pX#kyYJnA6MzD-HZu4#TL)!&N6yt)x7#s z{io!L;=jf5`A!V`553OfWuGH!`%e2;_sX!NvCSebYc;+nh5B^NyMH)#LY;osCg#@l z`Y9{@pRs>kT_;nZ|HC+GVsLb>NaM`v2SE`p{+VsuBH}2?;50+;`KrySw_O)6<9YEt zTP>pXiv5fCil%2`Z+u$En6qm4rKx+&YgXtyc90OSQ2xiOomM1KHS??b%kw?yoS%4J zdA4OV=^1T5zjHoIo^0$H<3;^xk$O9J)yA!<4>y{?x#otk$Ty)wkz5aZ+a$df-QHzi zY!dVTcg=F2RT;06HTn~5IOlD9=$Uz4_~EJQP4heUdoF%aytMWEk}94z*RxcQ-F`H8 zV#JFo#rgA}OSRYVZ!9*>%lr82sebd-m+y}*J`)}KnLp@al=acn*gO9dKU&AD*JN7u z70PeFqjXHf;rwgnBfAO?oN{t^^z^lozh-*sLQ>w=-lB_tV_*NcwL)}*Y^md<KGoL~ zujEU%IWAov{l>FemD3<}!kY6(tX1M1BU`HU4k>ClM^F79UdNNaF8<<IHikc1dd!UZ zr?vj<*9iK#lgl)|V<PXoin=i7%D@9^3K~p-OLZPaRvi1h!8OOzM)L`$!i}n?;$3lt z38B4g%ja=Te!9orcZEXn!(Z!H)<nHDetc<RNrUt0*2OR8$~rVVnU)4ramH=l#JYa| zfoTq@iEW#>m3>X6#Pn8qf4ktcENHRnt4o#(qBr&=zvKG*yl(16uA@o2o<?(2dM<sI zDE7K`Ulx;y#|g9IIe%qT<0?z?BK}pLirH)bEuq?8=)$e@8#_0JhfL9pIJurl?4GVi zmCU)|q8YX8{-r5A�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 diff --git a/crates/zed/resources/app-icon-nightly@2x.png b/crates/zed/resources/app-icon-nightly@2x.png index 6d781594ac658d32e5fcff01f66543f7f4f70d93..edb416ede489be0733bdbb00c467a1d828173e56 100644 GIT binary patch literal 716288 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≀oGJ^mGC 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 f#Qp6|4oxm-moC{ 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⁡Nj&ZqRQW7J0H2McRdy8z3#2t?#V(D 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�Dsxe#Mgbi`n=0ubb!Xl6P0S++;kl;_aVst*;lu_kTIiUB@>~ z&42cRWtnHs%0}^=cyC}fziO3(UC|ol?uBzRbI$SK|Ks&n^Wc;(uEpYBWxCqjb0%6y z+_R|p@bq^3^e=@vY#Ggp($Z2@6|cV@Z#Vzy_=Lshsm<30omGrFlcw9(KL7B>-`2E# zqTTcBqMve~q&|2n9bZ|n<NvvDxi13GHU{|B3N<RZA7okjXX<&|>#_}T@=Z?fx0S}0 zmGA#CPkV*;QlY7;7vFknUP^zHZ2z_R7Q2T=PWa!*t4^2u%=i5{U~s?Ie2Vqgv)9i3 z>~@$a!d~;^-vReLdAkEQd?qcrz2{fu>)HK$`L&bR=d72ODV@I9<JCI*v>UJXm%E*f zd@6hNq4NA)#TD<=^MC6LbNp=kQ!J<bCZu0Sj_-a@^t;;i&wZul846sxQ}npyw_ezq z_QTryzs=d#827fGh5c5B#;d^F*1vW+{7rrQ?)m-M`&;xnBGWI$KRa%(u>A93WBqwD z|8~ajczkQ}?@xz+U9mdW=kmAl*t4(eZ9+5y7u}rR9wv1v<M7cPdzP54O}S;15XbS_ zWo={o_AT@F-p!ts+SJ;9yiQow>YC5D(3B%y|2{3B7dCst1^2Al#Yul(wsARMdHl2O zTEp-6I?2mwPwn2Dbn2bI->l`v50pLsy-MF=U%aMae#^T5yPj6%zpHz>ul(Sx`PRSq zcxS(fKcJcZcWL&#%74cmD$lR0T6%jb>&ECl^ZS>iVrxDvJRocB8zwKQ{;q|;^Z%i4 zr_RF4m&x0`^$*XU619Dv=Kh~&FCUJM|E}z{&3L}q5w1IGx#ID$TR%OWU;V4#c`I+g z>!73VKaX9mdgN(y|JSF(hm+;Lhy4%w9<{CIh~A!Mt5)4*QQGYP=asRk{O{Aeh5PP% zw_N`B{nqoX*9_h%S)}W@?wLLL#9i%Op0gfrOO=`}o}VRq;YLD_Zf8%pyUlTx=?@O> zo@E~YtYYy`uD-3^7J-uwta>Y{-o0i;@9}4gU(ed65v#Lkd%V4MjsNFkaa$AfHt_FQ zKV|WX)L_wn+xzw{eQ*Ei<#H1<Th5Nqdfj!U%zCD)>noq~_MUC7{+1-SJ@RVV#e)lv zv+sR3>Fbt{SL1gF7yY@!uOj!nSSYIK&)#pW&wBp_tu3D46W7eQ{cFgy^QW)OziIv= z`WV-n%jZ|x-n#A~X<y!Q=Simdt26)eGjlo&1p`i<ecx4kx#^+sNpJb<vzGY>?Ntl3 z>r_6mJ^uQvWjljw<K7-tOJ;a@MAJC>QA@v>{{KD4+<wpg-B@?|a$y}?TdjZ4zghk7 zzSghV_|o+3vKi%z=HE%55btrdc>SL&S@t*A9Wxa62y2KZ9{a5Kxy^-HYR+|L5jI83 zWD}2h!A~Al%&PqS`IYgCujk{XazlzsAM~7+j$c`v!L$19ge%8umoGYg>UW^Dm*dIL z&-736iw54mlFV>7_SaR;vy<EQ|2=Cwm-~uki95rclV`INr&j7N<DGi&<3#`ac6WX@ zq=!j*KC9c*Y#>(>_t_(PaoxLZTey$A^?cx;)f8RxBf5FFUd&JMBK4>38QdS5<*R<@ z@Bew1|BsvQo{972^IoRU`*UKFnnHipri`pQt3s!5C*z+TcqF;XM(RrR&$H&|Ua>VK zY=4(=@ddNY`>fCFR6NxFT>euMbhRYlYWeop44hxt?F)Z@I9b0^@64YLW&7;sDz)}@ zUSI#n+s%?@Sh_t#`qAo&H{MTIc`n|1s{g8HL;q@B{aPRKvpQicOD0ckeq`-e|L^~` zld45CCOiB(u;}>X$NE;EZdcX3fAZwXht2<I>7_il>gw{aMPB&i{Od=jq@BP1@4dU- z&1WsU|6ECWSH#&iue@Xa2ajy!`bW*?{PvS47coiOhz4=qyK-=bG=s_X6y5G!d`g<1 zZQ0n)D9OFqna{B26mRe2ltaB=R$G0n|J-~0^7|d{w{yvQDt^3SHd*|mdkOP{rSq@d zD9B0t@zdhKx!XN|zxw}MU+$**)@~*5RXs_8#kaRO#{E6BIn=W~fSXOSE@c02*4UJ1 z99+wvY`5^t@j9lQ=6ZuYw{rjD?la-f-I!algG$8a{$4akn&HUqed@9%f8Ojrqdt4Z zqlH2Yv-wx;xBIBQWqGq#f#Ly=bme$aLGuim^(l4BFC8zaF!kE2KPPM5&%)g5!_KOH zdhx$9&P&hJPr2t-yQu8<^QCz*_kM1^e7N>5gT_?lu#Bn3*Zq^9?|2a`%F*SPdHr9@ zH{<j5dTrO998hhDFsuKxzdl}2On*a5Qq<L-dd%~WFTA|?>eqj^9(U*bys-AL_8L>I z`TG}F?yH`fmRuEV?i2T3Iz8fF#z{u0Q=B)?*G${!xQw6i>6r_uDdv3fe-G_t7N6yp zJMY=2%cVclz6U?EzaHu(r~h{LmxHHwB^(ofyHWn{oJYKIk0<<-xmDivTX*h{yVp4- zCAMw1Soy44c7?z!qeqQT7v}0XW;|Uz|LRF2@ipgj+y8#vUebKTz$`+p<nf!j^_fx^ z_)c<}t$My&VArc~rUwkCe0_gA?p)S;@6z`Dzn^@_&9ksJ<o~H5GR-|tPJLtjSHre# z&vtxyIDc>PkM93T>zOajukW9od}!I@jmN*dIr#8weNdeYlR&LU_jEB2CB7t2`?@Fd z*Guz0(+l~T!Dl`3k9GXj-h{aLjGgsad6s;?W$$fV`El_p_Xg3E>UEyQ#g|%7$nZ1X z|Lb(O;2G1slD_GoyZTs{*R7jlvC7_;bMAqd344E8<}rAjFPzg|ts2i_cg4=_c!qt| zYw6{+%ns{?f8IH?JzOiSpSO0&jhE%dZ_MxH)O{_kP23j#HtYWremS{!dqcNRk2IEh zsUEdgzxmY+TajC_{y*Y`TaQaU`7EfpgYm<pd=nXW$KA6WRQ0C4+ke=upl9+6jY8!u z)klNpew>r6F3KcyzE|90xz@hV?YA<wvh7{AG0`U5XLf{|{Qsra?eqV6m-FraAASEj ztBuK=^@YI=EUM-V@fUp;cy$IJFin#z3Ov_3^Qn}++kwQl3qm|@o?pfHn!V)Xf3Ih~ zEYJUJ`S|0;n|<G^`T5@0w9kK>%J-7v@_M-^NgI^j><eN}^W)?{?f+LMdGYM!N(CaB zm!9~~{O$WTdmp2NPVVfAbEV0r?k_a>*tx@9{ipV=^B)#!1Zr&*xMm!>bA@a5_s`!` z7gbc(a5jIo=2s7!^FHf&bC=ntUExbVAMVz_v&xiLFlG9&!#f%3c~<=GDZO1Q#ICmb z-y^n(mS@tPvh6<@%3d$otZ8oWH+UWI)vWk^SI_Kz9(CE`-i>*@D=S{SzO!V}+OJy9 zXTyJF+;*>fsQH#%N_rPp@Gd{Ys}YJCX16{&9G{r#77~AZeNLwIWAC)ZpAT1mpZ9xr z`{CKocHE2kD|h1@%euNX_TL2mJ>6evaaNo$Z|+5I5C2oXaZ9Uzd7qyDZy%q;fu6)- z!=L)z(^o_Ur17qPJhkU^dbOEkx$52%iykYSegEXzryy~bvvc?VQ*Sz(IyLOvAsr#s zLrkX+Jvs77*}hbOTlr`2;o7a%nbsR3rk*YFEO_F=_;0KJt3`fy%gWaK?K9sn<yZaZ z%)d+b@IUA*xV6ZlHt|Z$i;F*>9DCq&@3L&N-mbu+PZ57}mRyKV%Be|k3Rz|(AQ%(K zvz|NG=jWdfv3jre-?$-ggO~YM%cIKArKU3!4&BvxdZJxyx6DRvwW7}bZ}zLk?_+Fe zQM}Q1uzu%LwS)fuFB$*h{(bUc|G(|;zcb!@Ha&k;a8!8i>G*Hk4JS%X{bv1popSzn z-nS2#U2iV$%>4DG@ynLBlJ~!F%`ats==7@M(%YY}SuLto)U>d!tT|?TRrTP(_^;>v z-dk?6TENAy&uMKJOa4o>3BgbJ6pmOq2FH{tu{ac6z012w@uB|1x+aE)B@E4rYacx6 z%-c|SbnX6G_3=hL0g_SbuBtAA^IxnC*IQ{~#rf}U^}P3=t-n0*y|L|quTIVE=qrYe z+d6YYvWrij4l<l4yHCx2iSgfQpFi%tGiO7?`i+@Pi|^-ePCVs*b!WkkSB&;tQ)*8n zZM?iappu7={a@5G7wJ1@PuCislU`}1FEO?2ax!zf=%iO{4C1>V>@={td^Y4ohX1#X zZ&sEpoVjJ?_ipohuh@I%8!Xu!bvdt~`SZE8n<hT{BAds+!pK#<RG@ro%dK@^udZSI zlRCdUg!$~kvxa_O+oQgDuwLADyYE2Z>UqLH=GOkM|1BMre&f2r#eG%Bc=;!<JlCq5 z-MDF{`GYH+^OE(ln+?rWrhoL=*wS(DN3v{wNwLkZomyLX4X;VPs#KoYF6&$?u{w!m z&90QAG0MTF2h3lsKkgR0jnUa_L+I^or~jxksMgH9>E~VczgkNAEwe^`mi&sZPNBA( zM_A)te9xBp&?Pv{<x$(M%SU-%pSi2QWlvLp>PB&KpZ9+x#Z_9l*OwpVO{)KQ+E8_U zY)|6N4=z6cgl^qC<$J;^;aYcSV{Pf>qcc{up12*cboZ~*|9Z5gLi6lS*Mz!ue&)ab zWs5@Dt^?Q4+RuCQ;L-dA_J54G^T+=`-0pU9`3&)>`kVjv<wex*>tnVsE;VENxybKl z?RM7nZ=AzKyscQTs@zcbnSTG;WrOv9^`6T--8*m6icNP*L+<}Co14tYecDQ2XG-3; z!pAxv3_eadbbHs1`vqEE9lw`9(+*nyv~#2Dsvx21+uu&rVwq;ze(Fw1VNvy|W$SVZ zuk>8ndhFV=Lo0qaSUnc}!8Fb7`J`Phv+SAXyxyqsefP3j+l@h=<@;`(4^i03`PQ`X z@%g8D^G{F8+`sHZ@Am6;?LQ+$Dw~dORD9GaXxd%;Hlc%c$MY2)LF{=_W^dQsdA+jR z{?eX{m(AB*=F|Ikd-+BdW!3Ck+on4y#~<1nWqHI^UcUaZ`M!(VyF;(f*1pGV+7xbc z;`N7ZazEDof1#eWDsS_L4<hP4`<hqopYn3uv*dRk)?eSeKcnsBR+FOT($;(G!&5)a z`&QMr%IkNARiyoVE$GkiA)KM&=OK-K3Orga|Fi{Hv!=3SFWU8EiA3P111mpEyzS&$ z#<uW9Yx|=AQV*<GU2&M)cfva&`ulCQ6?rKi*SAjD{b@^cG4H>w&p#S}T`Kt@UjO^q z>G`i#c4w`=ecNiYwD-!ShX#d;oc*4Q)-jppOgg@*q9W!;>Rz)CyZn6O|39|-v2fFS z1JSZ%Kiilmt9zPt-cGkQ^n5M6QR^nh%dEtQsnQOmK3_V28a`P%eZJM7L;L?N`X6*+ z@v`_|Z?~5wPX7B<;%@17-=|;p7xjyOZ7e8Q^+Q)`E>qEigr7}&u4La|c=EMlUX4g+ zZVXGtB2)dd*UqoJofxhaw(n1#5PMN*hS+c4zenZX_BaKeo6&S{lE1^lV(HRP>wi8K zUM*Jp?0)6Nh5zp5*T4TX;bCjgw-g(J1Cs?kZCoFySFd`^5Vqmn{Z(P%IYn~&zXo%z zX#G6h=49{Wx4SOY>7L(Vw#I6ymibo|mFtBnd3kd_wu>_EI8l4bUpwIXVf*jJpL}_X zgx<cs;kDrHBI!u37ea4-pG@L6$?c3Snbgkq-^<2O^hfgF(3d^?FI;=FsqVp%<^L1> zUwF%H2}+8o+_J}S+k+#Ec0?9$X1nSBKKzAzmS3y1+`p((yFR{MZ)aEYe5=jFh5s(| zPKoUb+<9ZA-f9E6Be%}3-CvidIPIk2@>l;3ol#q37pS`9w2Wt2bbaqJ`Gr3}zO>6; z+V6LhU+Bn2+qs)x87Un4nRbr<(`>zX%l_1Y?&jGU0nW$wJUcRLhD`BkZ_b-uo2F*F zO*4*^;uB-x%$xJ$V$CTp|7W3c+3k|64Mc)&H(i-tSZ2SWuI5$zRo|QQFZka4|8(!Z z!Z5MzTmL_Msrvuvrv9xaGfNj;607H~Thf!P@!Kl#K<%lsf4p@p<u>m#XtPmliqGjt z6nY!=T0_OT=T5NS&gU1iB$U3l=JmW-Im_$Q(U914u?EII4Y#YNp7i9iaDTM&^ot3f zcOBLLcl9~{`T8Hz@{9hTwBND*_~GA~(l;+Gzc;`2=uzdl-j;$JUhNHhC+5?p#_9Ww z`Pzvrv17T98yw5$PMRey{pZR0i?=5(|0Z#5>aW*^wE?x~E{pwXy(PZtk8ABD=C;`R z`y9eDr!tl9wKf!7Yj{0iiM*qTb4Azu+F2rO;ad{(?=P91Dxbad>Gi@_-M-x4CtN>n zbx~i={-V*dEtS)^6_h1~FPk47%6qfG{zTcqD&4hr?`)e>A7*@YmdQG)u!Flkn|-oU z@9Mp#Jdfc-Z_3TJ`#m21p4JrhfBNi&Zhg+avvPf29FOupF!lP{E3eP&-T!O*y+;@K zy#8|DgFnWe@x%EO4yrzXkDRTqef;NS{f95bmH{tWE~?urR2iOFvus{;^~}3l7jc|s z;m;0Du3Kf#a{o&5!56iS@>|7@{(hf%QD*m{1Ba6HOE3ESuKb_m=90~^`NXLy%ol5t z*S)e^n2~36TWh-p)78Hvj@PqqP7laff4J;|7e|?A(@Sa17+rm_)hEvO1;_C>Bpp4Z zoOdC|qTtsaZ;4w6eJ6i8tt?mn?bJ%MZ<C`XX0G#J;G-h{_|Os8bC2HaKT#wg<ZsKi zeA9uN<%ikrKTUc6pzUzwoPGhDxYrC360dgM*d5$ovS|Hr&FsSIr_AQ)lzMkh-FHFZ z+QRR5)N|#`ABFeK+2PCNJ+;PD=1zsoues*_{PjQV>)(Hv{_idS3)?Nx?eV|A+m-z2 zievxr?)sL?nm<|kXX|Cp@?#1(a&A|D<F6<CYl|k<FP4{ls!;Xp`^DZ@+@7aiCC3MZ z+}v@;qTAleJC$#Z-43Z!7Vo5|+nMcoam9UWzVym}6?5#I7VIl|@ow8At-7y<bNTI4 z9KJ5R|9S0!6BdpiV-`1ssb_yZ`*Ky*|Eia%WxJF(LY<EF|2)0+XXW+XdPcrC-mWe) z%KK{4z?^?uFF98(aVG!UBY%_akDB*NZr<j7SLRTgpN;zVl7|<)@9?hGUH;DaTd-c# z^uLF<DIStnS*2b4sz}d7;Y0GSKGOwHf@Wo{G(W31S-1cG^8UZs+#g;Zj(>IM>)rof zvUdtCH!Lt-)N}KZd;iTxQXTP+ABo$9w6W>z>dHM``E*HM&xOF#UK+EPTiBhD;D1wH zvz&E(!-p-0l;{39bo}W1R*{P>VSBdTZ`k(qTu<$hv!Qj1)E74=%>8D)=V8y(SEYqI zj(=46+p6Bo+F<<q(fZ`u$-A10L|Glqrmg7?-<Taf(|yxpW!cp-!p$4|<9bi>N^IG; zBiJtO;KGoi`x?)8>pv*oUbWZdX4$mk(SjoJCvQxfQh5E}L%yj2JzKYn=(U`=x#Y&A zVx6XT{<2?>61cpz^taYcX?n|UU$*G`%ioK{wuH{Q+@rW#yr-)>Zxx$be*RN|#KhCR zr{2&1ag=$#RAT(wPaJk8$5!NWeZ2PNY~7rS*o(iVWn}$l=RV1D*2`NP{Qb)L(-))P zXx~0-c8uL8X@#L?=ie>--$d)ph3c+`?@9i@vi>pa{-VNo|Eqr&|9=@P`~BA*&f?Fn zrn1l7?i-)v?c~3xx5uznUXoF9`MU+X_DU6pOkFc$Q`upo<qFErI*$t+k?^$h<9h!! zCi~X~u5;Qd`n6wN{NHEPUc1$LPW&{pmi)4`#V#fuk*BxYe!j8p8h`Zp8%eR5w>G#r zn```wny$sLKK*96boC+Mp!e6VmR++eUwG}M%<+c{_Oe9#+zNW};4in_+HPOhYYJcY zU%s)T{>gRUiD!<t@AM46aPynQ1@nUE(_M0MZYjQfV5M=yedUTJ8M4_&g!hI$Rx$o{ z@So$?ZrE7>xuONpVqX2auPv10gd{yqR83kQ*=cw`SH#El^Z$+C^EPhFy;*t9ruuzx zacqpJbi7dOk#!u$)dZe&CuzGaN}1`vvGECuHb<-Zq67h<?d)*}f>b6j`E#1(b8xbF z&S5zcEOL~Eh3&Q{M`uA2_ffuyrwz+?YCR7s)%#uaWB>lG`+LofNBy3&DaSSH`0Dqz z?)iJS?*F^?tKF{`$!B&Rn=yIq;eY*N@65~7SZa3MnVIum_$t%K7xpO<785=%I{WD1 z(HU3w_W4~2wXplUig_yY?psHb17<7D_U`?uvL!S7V7SgB!R7J7_p6E&)pZ?ybV^I4 z{=Sel@yqh{Gdp?rc&VRLO9-wx%DU-7Py6X((SqA1H>UYK$XPe};G7$0GzAX++5hY9 zjaPFDjjH1_Hhz&-`^@kxHTkIGH0wRDcYQFZWE1X*Ioo>v#l+AD&s`7B+m>zi)L+M* zIiK%9s8N2~{kao)!{4)iUHw1O{2$YdIIhC}`p>%#oonSTjWc@?WcU7s*~9ri-q-#7 z#9fv0;Noiin17x1A16;=|GTe$=I5+>pJtXxM<zY=ckJ^ly(eHiMeg<9#b|ZR@r3 zu|E(LG&{Jgc*`wA>4r7pbEf>#?%9!f%UzoNVjaWrnu!Ox%~e%zUp0zJJ9d1^p#(R6 z(JkwaUXLkl*eWNjFz3yRSxtSXObb`XMt?o;^yy{7vC~fbLf!<&yWC3P&-YQA|Lgu8 zi-cBhQGIa--X*>B$_^WwZK-Ul{2%IOtH<_f;)~sKI_>#a6+Cy<dbI`XKQq^Vp|B_* zx+Fm)EI#*~mUDF;LrTpq0n7C#gTs@*tpCP;u6N-znJ+i0YF^5JZf)4=KZk$chs_Iu zT0SN&J8N8M?YG|jgiQ86W#`hPM?5V#&fjS~u6X9CTa^gcqg{u*Z+||VsBPZ7S+R7l zq(Yni0oi`HZxIb)I~8A_xxYH1({t~!&BwgrUOWsvdvt9-<9BA}ZL509xz={<`<v}B z&6!Q9;MI?kw;YqIJ5KpD|Npz{?}56s<sHoG`>WRIiZ85upxn!MEFvNGe&R`vu-LzB zxwF2^u8mZgace&-&kY}~i+i%P{r=s|t9O{<n&z(9In{ERxzQ8Pf1v`q61$#B{%+cu z(emco6JNEOm&Z@8pH;EN@rGr+=h-)BDxcn1&u+8PYRhUVHd*<%+*|LbSh?H{eEPF> zpX}=WK_BMVT<7k%F4|cC*?fQ1&$;)%d)Dsw`{C0pyPV%2?Z4i7+I#+0a7MAb#Sfcx zFK%C3*tdXlAMezTS|jH@X6?t16o{=n|DTUxW=XHMgw<ZL^u$-rO^<8B{N}aW={-IC zzwEo+3>obs_n4X&evAISaK@$2o|SKstuh(Cd9uVMb#*69uaT7Pj$*R>#apxf=Zj5c zBHB57?cZ(|G8X*I&66>8#?^+`RqwneR_563d%LGrdA{%2w|}|(n|Ahd_tfWHd0W1e z?Vyxq{J)R;gC72vxbeKH>Aav9_7PXE1s2CKN$rTfs<-jj*(X6ZwVyuR&plCF>h5-6 z`tNd;>%UD*neKmg-v5PrtI*swXZ9SvBUQr7m+^l(cJrP@-;2EB3(?DL^*JMVWbtYU zz0o`oC%Nk0GKXb(Ycy4*tDpJq?%eatbDLG6*uu|YyFay;?DdP0E!?Af=fISk56f+| zw>TcZ=yZ4Eo(*0b+b!pQR$9fU?z3^bK5s?!8(F5g7oSdixZO(nw+YYPhdW}qYfW!( zYs-Hs6ZxFUJWcqwiuS>6i%wnpeS~*%$&X`fF1`A!`<^Y?WWTP;_FC@b`q%n<*X3_r zm;dU&?)`roPrtvw&RFyFo&~R9%bqirjB>qh--*Au`{c>~i}QcRCft<1Ja0wf)2ZfN z!dy!y+5WOU(A9k2(cL@OHP-60nLpze-|&DX(z$CaRhP=1ezz{Mzi(G+{1=7yDuoXg z$<7y%s>+pE_Siye_S=0OmV0E+8FsC)m^C4yO7bk5OzIq!_AINQeSE_4)@ywo`B?Wo z3}g~rwk@pRS1-)FQE$`CD+YdBiw|nB8a<j~vLd={Deu2$40oIow&~t|z?aecopbRr z)0|n|hRa^gb6ak9bY(JQbMK`YFS}U7#JtDz0LBH~6Qs}OLs!bK?+ui<&?ykLk zKmVT0i@)Z}yl$8jyu6ctrTg6Gou65zUtt&OlL+Ep!20OjbgL(J5AWO6IlE4HnNt&5 zo}*F0UD=x{|L4p8A5rOfQv#>+98)t33Vb?)XPRX~PpppRn%Tb02l|a4Jb572*ZbDw z^nNDQX(e|;9-Egt9C)zcRZK;&!sOyJ2U6!`1)O^PYKg|xM@@I%_Uf-s_O4)FY$doQ zcLz^!_U}2f9FE1@EwI1P8~15XVCbY$cd>a>ww{|iXUFU}+y58K@2&BQm*cse{_ofA z>H9yX$6v1GGiUuQZ51i;m}T+*szBd`v$sgw|2oLQ(3TV{l@*<1ZMfHgVal6`r^cU8 zH~!wS-|GKk<xicSySu-aN?R57oxSv6viOf{tBSG|O_t;=u(`MLH*@9k`<b^Z)trkT z-B{zX^z6S=v3vpvwq4&7zDp<9YN*ZmeYNMu1Ot5zv3C0x2mOC9e|B=Cn$$D?;<pt) zF7mj)T3f6j`D6aa?z=ypDbH0bT5OgqX0hq-p2!2vZ(_@jFt3`vT5i7f`wvXnYpUKE zdR%z_^YQ$@Ka~&dEfIHn@K3N|_lD``EVDL#+x&9v`GYnaN}oL286(!VGnZF^-9)@) z?}nn){#@IAKXuwK*tx^_-l{0oOLFR*oz(%BeA~OP9$hMy7Hj-bT#IYI!RH;0PZvp* zR;YfT^~Uv;=8kRe|FxALV7jR{@5kxS)9#c_auZ>Do_or(#7?VuhKmMkO3Yv3fEjD1 z$0nb?QT>PMdxi7@-$y5s%Q-f;&8vN2QLK33iRgnL223`s5*s_$=Q$p3mwB-IFXxnW zF-yTo=bZ1K^5JT=e#VjVWJOd>T^V1fxc&BSpLyEb^0V{8%e((v{kAsw^BIjPTj$q3 zJAVJlW1fEf`(N(L@2@!;Zoj9-?fk-hKe@kJH2h{ZKf3X9z-_~=g?AaHPdt{?zYr^# z{x5E#WJTq&+neWqYqxq6ly_TQpz?S3Q<=*;a?a|Ffxq5(9cvZQxU*|+-Ou03S?XEl zW{Zv&$(&mIOTaQV@T_@(@af<HnVRlB+@kA`ebT-6<Z<WYI`21+Z%)`D8_ckQ>-f^1 zBNyz8)Q>K{@^;fdKc0gx__n{1dQ`dfLm%S`&O2otr-U!bvG>n4tJ_w7ciM?|r#}7r z<)yC+=jAV7f317g{##G2T|1u4|L5iL@CN(6?=LD!<=*(G?<=`F@mR$D2Q1y26@slC z?>p(vFPbdBE-RpN-R`?wa~Q>TrQXs~3y|HzB0u}ah0MoX6E96!Q(d|-BCC0W=?~8S zi!*|M7F27yax>Z={~FNGFg5V;Qp4pHvRjvI`<?N0V*H7ogR^Uw${cy?ZvWw8%%eiy zuFof8jx724;`wUT;Cass=liYQa%+Cw99DLdTh|XhJY0UU<G5a=_+x&#nNgM>PM3A; zQ?)zauPrYptI>2!>tcY%<3o3y&pGSneBRL{v2*Ip&zIOfTK022bLX9PX6gpH_G^_9 z(QOf{TP2=af4j4;=8e3%igmG^-hv+!np1N(?LIK6zj%^dk9_+CIi3D2OSuDSpX`E{ z$32LwscmPpw=I)#C=j)uX~p<HeZAOKvv9Mk;*YB0wKWQF=IhDzNNL~tcX|!$!(H_) z8!rcD{(E)fZRycxaveL1+4w})e`UC#zNY?!ri#<VbI;jjxi4IpTlG%9;n<b^ivleA zdtD07DA%74nq2g+S#Ev%uC8axmG(cI9k<Wsnt0hi`~R0`PmjNF{&r!_o)a6d9gyBH zG+CCNb7^5u-rc|jH4@V|_1*1a*`6!Vx@2c4|CJZ90sEI6{FAiDMC@0nlDo##uc<x_ zS4{and}3X{b=j3UXB;-!XYXT7+TT69c41wUfBD(`sFyeVwazul^cPIaoocsSw0Y~p zJAwO3kGGv~OxjpoT#%P+|I^w?<c~$);YGKKCvE$5#G2*Ob~o$zNz(U>=S9yk`*`-} zz2||KMXuRDTt4HA<@Mdq!m8`<_sQEQ_Gt9QE_&R1?%-_&0n6sSOP^F6KeO?4tY^VR zY5TYfc5&htxnDe<di>%QwW;bhMx2e0EKF0na=y5SUY*On_|U%{`sMj7@9Y_NRR8W_ z{_uNi!Ji8gtK@4!Wab82m@NGicsfbjvP^$l)&(&Rk1lc3dpBBj_FVbKU3B$q^4V#v z^^W;#_MFr1s4wEEo*pyD>gcm=)*G$zlg=H@d;W6DF5}XVr;>WQf6bX3`N_lAJ)Pl* z{V%^`hN{;5rWw0AIHsL_;kM!AU#$)P0+WrcR`8g6F1%#EpK<cVlc!mZoNevpV6Wpz zD@ogY_(#%bPNVK!e*1Pd9C~*9{9E;1`y3jt#alVceX&>HE4Tj6vu<g16MN(3F1F!M zUJEO^o&5Ys#%ZNeR6I|}^O}zrA3ZJp|K57~{$J^K<v&-gum1U|+kUOScvG_Ytxx+e zu?I6pyY(yXWK@6f%`@pzV9Mt^%I*bH+WRW{oZ=;zUa!1f!(devc+GWT$)x$8mfDty zxFnxDFR^oR%d!fcs|B}x)~-JleWmyN^!%-VT;iLab93G*^zHTf_$Yl|p30Kav#n>2 z-siq`T+V2FcTcWU#j1~LPWoTozwEsze0M|Ry}D|-sEte<_AV#1_Sp#QP3+pw7k2N) z=j%opF(JQyetY(Gx5*-Y!_S@F2Wl!_cKbB$SW&3<hWo|Qqpd!Aw{ln#tebkuHcg-H zI$_(JDLzFH&UH)G?mw`?WLM9|+Y8)+;}{n=_x#V4-og<sbG%<R=x36eOzV8<Gak|X z4{dqdr2f=sGW}X^qpYR)cf+){GCspQsqYJ99&X64_6|$bOI$HWi{E7Li(dZY;;)PE zEtqxwz`X<K|6OU%I#TF&+HX#j^AZ;Ch1=HnS|91>Px|8;aVJDY;NSTlMxGy@`1saq zOboqzw~G1Lmxs*D%~pLfJh{jJ;qyaxuDCTny|E(d_{7J5Z~k?ByI)H<V!;!xxsNxc zDZjq|PFp@p(py4drK_{w;lsDqxJ7(=X0}f)UD^J9Ojb`#I@e#V<9uvvdCjNNBCEJM zFC2T*B4F`9OI}NTg~hv9yB#x3D-T`?oA<8ArL6MWqc+d%cU=1F|Bkoasb6A{m%piA zNWJujQU8VXyWc<R`|ay?X8gSNw<~wRP3_|%&t3FVckNj@|IF`|`#&tJFZ$GN^WOh> zYR${XdkZ*Uf7SWSx9Ho~4J{LH9J#ndLzsVN|N0|QfAyI}szNO~g(ldp<ItMfASC&| zCZ6$hW3kjb4u;38t5(WtJ#L?O>Gy=1uiU3D*Zo?@@Jx{X|I6f0lQQ(ORzJ1f={;R3 z`n{C@)+diFkICzwS=q&Z@Zd53t=G9tdMa5h*Dy@3-=d^Z|E+%Mt8E*3mw7+fy3zN} z)xWpmpG-K!-dW7ET_~>ZlF`IxyK59;_qAO<*KOHobMR^h|L48T#(I0LQ^eY`Cw)75 zmo;3fsMxM{&#twvIbt^1WvR4yZo9Ny{^1PojW!h@?$!6+uH6}}eBjCs{qh`^dA1e5 z(&rknFOIY1s4cklAoP&BqWp?m8#EZ^GaXrftS^!Cpo?fztnzZ+ywe}EO?TRCPYAYY zpW+iMF1PA#hJQiag~@e2IyIBN?tio(JoDb9%m9Yar)jHo;$L2E&=D6gXWO{<@nyxz z_c5}8epZLpxS6|3#VdFS?%laGpYQsno%(mz8y+*Sv5Q{WnE&~v{+*TV^A!RG+9O>Y zDpKr!%Unp+o^ZHMv%<iyN8$v#=6;qB-~TPEE7DzgR4nGpjv3ECY*pHmJl*-%L(Z1@ zGR?PZqVsMYc%!u2UHz1-)uzw6i$1XK&sE6}`t&mV!|c;`K{>alHMc5#R;-b{Q?O#5 zrif4R&l!%(w;9e6oG?4yc!$WAoi`S?oqwwqTz~1R?XluNkCfOie47$*erNPU-<x5# zugse`**mhZZE1hGCU5U*tA}?kCH4eGcuz9hCcLSXZHmmck`w<JZcj8@Iy-p!w=KE% zG9EWyo_XBm((@jle<H`jeT8Lnui5`LKNeoRHtU|{G}hd7?|Wa)F=Xv9Tb6&n>#(Ks zts_SQlauBjJ1ej<_VA70Pu@IVAbQ5`NBJwmrM=mr9{h%7*%!WBCVcTzn0MwlR}xpb zv$RyD;Btkj+%;=IOY51JHr|%VT0e1BV_=T<#_hQm?T++5p0vx1b>-3%w=T8wL_AWK zK2-7Oxp(FDh8-H^oW94Ly#CC1ovSs+^Hh3K-aWnzKW5E7RVT3R+!9@N_G&M7L)iq~ zO>4NKYu>mi>sx<wvwGb3Y>TkoH|=uCWd6H5dF^%?v;Xbl>v<Zq;rX8ZSLN5sdh%|L zTc(o{tvCI@fBo0`=ce_)-WXQ*zh+~eUEQBtlkBgzDtFSo!za=V&K8&cX=Y1a|BhL6 z<z20)XB_-tXL2+SMs_wmh<z;l`_pl&syBN!?CxJ~DK+~{yKs_VSO;HFZ<FWN{!U5u z%MJSSm%hb@zj)k#CTi8)##7mm=O*6>kPGFHf1mm2R9czYGnY)>JT2AetFI!`&8_3u zwU&S5*);W8zGUzjfy87v!H#dCe47&YFLb_{bvyH6x6n>*qi;>qjZV71&pyrSux0+Y z!W|*|D=NSIbuHMx*IRkQ{?&Ju&Z)oq{8w%Lr?c_DivJ&*{{7&3Ep{d4$;>kr@8W+X zv*H0$s^b~;TPF@y6cjrO8hE8>9M<2YJwHLp{qj+6w&lSr7h9r@PQR^*l-|~tuCnop z+w%$8AD;!Ei_u6vum0qR<ojLv398|lMN({fU-Py{`An5}=P1j4c6*8F{5x~pe_xx+ z!}jQwVpfmMIoWxqmj7szx@l%Dbjr2i*M4i$WqbjRM$29|H5-1^UG^rrH}+V^oj+@L z)PDNv+K|ec+%xxqO3256!-{&B?2hfJ+0?({Z9ZSj`pR`tnM?L@x)%qq98Wnhd&vtU z3BPrB-gL~Jb1`_rZSl)@gfy%L_N^`N5?QuApHblXqLqz1_nzNy=Hf|i_PsedGu1d} zuF0umzMp$PQ*mo|O|3bz%p)`3;_5Zx?jK4oE}omeVN35vyG1L@zJ;HB^pw~8|J2K$ zT@0I&duo)KcN(xe-K>nbSkW<eX_A0hHf!CqhaVj0E-^7L-m9}`=L$`)hK*)I^3T(o z&AOcba3wKLe6*iy)x`Z#5&UAG8Zy=ut*|uW)qCCXcJ}H(nPX*2x2nExeH(7~L6BQ6 zS8#^4xxw4+yW0-Q7;N3RaGH>z%;jx6j|mn(?3HQ1m3_55sH`zz>a6dtBPN|S?BMPD zF>$wVsAp+Z+;WlLee=9m*Z35fdmm$!Ij-|<$J;B57T^0N$5C}|&bPX+OETwth}(aa zC8~byWFMVA_GhX5ZNK^0)^uG~pBMMe*hp~F=G!m)o{HIOuj;pV{Q2O<<pr<VyWUSZ zY+b_i<yY^jUv9BS?Y_*e|D|17dt=$e18ZfZZgb5wugS6Yd;KCuP;rX#bKCY6xsM`d za$YYzXTEiP=d6p(4x2*eC52tz^XYKN7V9~dQtw)3H!T-A!`S<b>&=u|{i3Ju%rxI* zdHq?LR@o)D12g-xmYwEPy&W@O;<<s`uY-(V{uJHXwVSo?amDAkjcTj^ym~jgYqGVR z$I*IAb;F{xf9DOAWE=V(NBN3>(c@HbEm_%rPRcXB_<HKE3o5H88BbxDwQJ5r-3Ws- zt|_v{`|is5{61?cly^^a)l}!BVgdVHHQS4wE{L(bSKhYs>GNWC243mwc6;|<wzr=r z5%s-w_t7pc^>g3P$X!~sJ7wd_g$r(l3I5a4H9zoR$pMDYjf&SNNwC}6wFl0y-M{9O zRmSvhQ)T2{ee<s8c_ne<m6Y3oZ-(_Lk3Oo`Y!7#`{IQq+0&_u?T)Ph6yfVY%wKats zqAic<U0q)PVEVnB)3v4TZV&!3H&}1kT(&AIuP#J<=l*K>)sgY9)BU;Lny=k!5pkK% zX8X6GIzB({N%i;MTRB|ouzazwa^n5K@P~^Yb<SHqYqH6n%{!PFLR;rQKglF4YpQ-& zeE*w*PlsgpmnF_kTKG)TLw`e-{T2UrSC7t~_wkbPnz${qc5Hfm<?4x@o#qxBee;eq zz4vg8vD#QMak}UBHT!;SdiOZ%xApq$)YgEX6P)Yvy5?W1{<fvQJbKQuw+X_Z@09IJ z&Q;ee472&R^t|C5orcnNlXr)>w|kviTl?bgo`*NZXY7c-lyAL!&+2rs-MfPXQ>Gr7 z@@iwg=(I(Orq@?ZtbATmsvURhv7F;$GfVgB1+JlMznK4IKU`d|_MW@rE%W!ha)n=~ zH~-~4zIk0}$?Ds`cq{i$e11rK<I3n~x0EW4yMJUmAM2U_KxcN1u>2prYuf`w`;T1l z+@mM*=ekeE4Rf3C?}O}xO^XBPoLjuM#N2Z0sek9XZ+BQ~oOrxKEB#VKx6Fp%C69Od zC0~4bw6J&X{G)rmgc~uueW<U_{B+Hcnv2~RIWO3s{Pmt`D}T_Nz_9!GuNE3VW|J_s z{KlaCi^-bZ@>_y{YWm*8s%ocALblaJTR(nvB};;3^5&B+uT-2|=4xzMD-;uw$v!Wt z>{z$C{xi4v;Wbm+OSjAvdU%M{GA6cv6>IW`r4NE99lx~wpu2M3vn_95UEepOWtPRV zFMaxxvb?7WoH_9}*ss;`XyuEW$#1i*WvX%(PyXSv{mSNPx8nb7&i@$v`&CV`w73Lc zUrcXtcER(yr`jF$Y$h^U%Nwc><+rG-v7PK$+276(E8ggQVqb{rV(*@3v$y$t(a-m) z_<W)~V##}P*~OY$`?VN;KCL!LTCT=k<a1Uz_I+1=L|Dyd%k7W$Y{<9hKU;XKsv}y( zzdoHu>*2FrF~JA#913h|Z<`DC>zh2>$Pm^N$33_GPNwvVkZbu{`sWwetbdc;cJAd} zeS^5GD^^KNh-9-2k>p=?MdSf%vAvD{EPh+HKk--2U;CuN%=PQlXIBq~(v|Pi9_|T$ zt&nv&^YMH8j5poC`dF`3%=**vboZ@?KEclpoQ^M>Gx`2S%bok0-8_U68;ul?a2PC! zE4ro{BJw*!ctyyU!^gwl9K3Yz=)RyO$J%`Uyol*OAoD2n_f7Hs$Im9Nn>)jJ$A{pp zQVXrzU(Trc!+MtgPfku=sNOa2N%D%%{x089qc`D`;eGZ;J51~J_XRy>|94ma+a2!y z5|Lw;_X7|7d0w3s#HOWqeAdsC2b1-dOg^~y-2aX3%BC@IzS}-cO78iy`N*o;z834u z2Pe1%R85Vl#CsR%Mf~mPEs<%jSw7j)#LoY(@D(PfM*pnem!>)W`ty+Kx3QQ{8;{P@ zH{yS{Me=?4wAkeR>ATX5d@Fw!vAa8XU#NGvRm^eeLZer;7vG)etdKpMcHC08kWyR} zr+<xq{{fczbsOh$&nQUxd?x$&2kw9gx7x0ynPv!Av*<-UtcshMypH*7#v;~bclRtc zeZ??i4`W<Us(rCUtonbQbuZP`f6tjLy=_(S8k615b7Jm<+eD>5f8e%Xq+^enT;=Nw z{=($UbR`z)zAH_9>kV8N=l)$^#{7pZ(kMjlf#u1q^Gn}v|D^IvK*aZAa!gyo(q50X zj~D-+sxN0;9+27a-JqxVptg(fp)E>MhU))w9sI0MHn@d*UJT+ae06Ejx^CVtMO@*t zgSTG4&|}ATz3APyFV$~^el21SU1vPu;HRSh9p`1-)=%gDHc^!^hv|!P&`H^)sb-HW zSt3@w%&#e&`X)x@cAR5I<teFKGUsIX^or`%F7%V!7p4<zeL7)NMM>_XZIM$GvW{H4 zFe6r-!E{H$Wit=yTL+73=Da=lwyJPv|Ca6XryE0iSS&lzd{}tQlFhaWf32ARa+j_1 zj5!4dj&=W2o!}xa)0AsznQ*`8;oiL`FTaZQ)kwN5anx<=ou7i|Uz@**+n={cJ6(SJ zY;iuXM;H3ewO!rj>+tIH?8alazP^#4mvGDO@f5SN7gyC}@0qxqn`>!z;=t*Eytx+E z@*8KXMAlAS^wU@EgvjR=qSi8eE377K?m2Wt;`yEXIv-^(y(rX>JoQ|({o=AizMtIf zx8*-+TWa}Rr1cwj=%r<WAMTwps91U7T>ApWDZ*8s6Z#b@yGn08`QzbG5}cubTtMo| zuU>u=t5+u;Yu}xwe$A6%@g)BB?aQ~YzyEnhX}{%hm49E(pWEsgw{kk?#B7e)R{U*^ zH+MbUd2e@^R{BpC|Ma)YtRW}lf|^z+H1oIrU2-~#!LH_5soex#wh3P0S1*_aaQsPp zeT?DUayABbol0@_=)c<})(8uKkoofW){mt7`bniZ-}ASw-y!_xWph36iQ1jj$_4f8 z2kzcZKlda4*TL&`D*cR4_TDaWW#4?irqAh69Lu#sk65+0E#00i#wxWp;7pOVw)5>b z8_XV93I=RnUwoq|O!Cg0j{K<Qir#;hUR5*u$SrSGaEe)<Yguf>{5fiAJ=>pNUe<Nv zp5m>I+xTW2cau)K@Qg=Y(cp~bL2G`4*aHO{1M1KAi7k!ueX#Ya+G1{%kI(CW<<@8a zi>^w$mpWPhzfqR-_gHm~1uycyPW|YyL{r*hY0;Vai|xNo7m$3oESTx%qJ_0<x+Fcs z%UR{)Y6Uk2^PZdYF|#6P?%g+8U#`b0$Zzq>Tk*m@dm6*KSyO+V`Ip_Sm$t*=;Qf#7 zD-uNWg*gQt+^Y{dKgS@_HFw%dpZwp?Y@Y1@Wxq$Q?q}0U3#&Mdlml*86=(dP8j`rC zZPDB7VFnhT<CB{%E<KpL+U}TJtlhQubB+G>wzAF5GR~U(_{Lk-#ku7M7uj2!^vx%# zR@f`2>uPiuuCd(LF+I;?V)?=Asx5bY&gAX-r4SpOGhO?q+3%Uge=S}+Uy-r@fBAik z-S?Ttr<d=m;N21_{mppOac+*c-@b-yGF*}xzgEiJl7;Q)iL<G)(q7L}9hSyMOCBi7 znYmK7**`bv;ia~Pv4K1JlRP5MhaTNF&-8Y^#hr5k8qX|3s+V7w6>4f>H=8f^)|G<~ zWcRYHUfvt1`dds=I)BzSzP+brmX(~I@Xund)ReB9KmR=Ge{tJZb^qVAUNheJ<tLWR z->o5Wz%U_1@toe4pQ}sneN9we_BSMY+PdW3X-w-Z!smMJv8yOlKJr^^$CL2anx(DV z`Oi)GQ02#1FWS6K^j7$lM{2qrt5&wX4NEk579o?Y6VWQx{ygb+z^~rITMt8KC;awf zV83wex-5ISs`DF$sC&ifw+m|bo0;5b{r%^>?Y=+r>;Lthj?OpY)HJ%1z;o=?(ab=D z{<;2YcF7|59z4&nQVTn>`cloc;~u^SanF^a&&)_O&Di_!_WIPCJl!9qI%VDKw;HQh zoDkdfZd3XE;|G>(x)m7l{(tZki}}J1?=5%_@MRXPP|iQ~;`Uj!-+BRmnlh`;empj} zR_gcfe?Rp9zdc%_e{Z4Sj{gh~_};E5UR7N1EWy-)S6Aqc-;89*uRm`*4LiO4^JH`L zj->}G=bIc@@i%GT!pLvw{lA+eKTTn|%edWkQ&t{#ZMeE{OvO~sXzr`4Cg(k0|0CnC z2P2c86{Fm~toKaIGWPgAo1A@Y?NztmJ8d)1Y(8=Cv6=0$6Wux14>fqUM}5@YzVE<? zz5{`KHu=wa<|QwqAfe5gVaM(Iu$$?B$o$&^v!ZIRE|!v7zy02hoy7}ho8LUReYW<a z6$J+m=Kk00|6}30RU-TuYwP~FA7&r<-nnx<Tf^Set<_W%EvsJ2S@iUps~o>#YgJv4 zHLrxIxIwIheUYZZ)*3bU9lqhaPTacwM*Go`zSA=7lQe6x_s-`unV&cDv7m_PqTlJ| zQEtzbntwj%_1fw7P5o=F;q57Iioc)NPYK?z?rPebKf;YF%fBV(nQz%V>&`T92hBOv zuP5GrI<ZMlZvKfwWn4=SF4yRLu=e+#^d0H;lBSHI#}7XFd#BuM(ep(bB{kgD&w}1= zfAm0l)8EfUzLHkgzpyjyy^|_?yD$BcLO9>E4I6LXYU>gbzgnZu)W6;3=q|yTwb|Tt zYgp$kzAEpq&^s^h`#Og-dz%Z%;wK91s@*TiWlSl{YPcPgVRu_m_;}&@2Wh5mKZ;iD z^3BNC4Oq(3-M7Qm^@MDe_|<<(Ykn-9CV0oXD*5}l*)<tAiuu%k&PYzItvR?d{7UCU zvvuLDa(}z;7F)>#DJ7Nk>NGw+eA4^8|N5Kk&K^?X#}Ab0>75aIutu7P^H1Jtw+{w} z{4<|R>}GO)X!fRRkL%Z>v~$0o-)4BY&hpuD)0RZv<TI;Y%(%1t+_thw9t(<P=VaZV zWc!w3=>&`IH?(E8-}_xwQgdbFUyY`{H%g*H7EiWGP5jY$QRZ>a-|YJRb^&R<W$~_V z<{LNWKm4Nm%Zl%3`@Uz<i%fr-WCjPUxS?bJbl$_o^`Cq8O!;$(eKSYi`kil$J5BuM zL=5;P9vjFV&C2~Gyk^Vt7*j3z)i+B1b!=5yG&#s~;`HXy=^2LN&zzladyCs-hn^K* zr>fO3qbkH?Qb4xPy=Q@KBK!>}7q66wm|nxT*Xw{pUjBFg54%clJoK+=`q;r~X_)rr z|F5YXe9l!O&#&-mZM_+uzyIHxPiEKUG#@En;ug62;7E|&kwg0}`I28RYG|3X%Q;&7 z{x;tkt&Ydb`77dYc+O7k?@F2XYI@q7)j#5Xb=d#i{IheN`-{cj+iTSO3T(<IJ^3SR zTwuQcqwVteD_cW2=DnDB@(g$N=_gKyH?df3s!)7&<CJ0FS$plCIDPTQPnYepySmfj zZ^zCbS6<zj7tQ~$B23`tRXNq^o6as~GRglOE%N=*UFpW({0#5z+0E`LE&9EE%Y#3i zGVdiKc4QQ<338wI;?Xv<eQ|ficQG#MGtN!v%39B;lW_6oh1o1iXC7sWdD5n;nX&1> zoR>~dTW|a;y?C(cv{PM8X7{Zps<mRd$s#8C8p3AJSN0x#cH;;ChA9tcJ0A6`VLTX> z!Xp?IRVFH6_9XVoGp7Ts=4TEoI;u}GzGHac$b?@<DyMR9i!S(lEU4zlSJtN2*&ikf zyRa;mkvOIv)xT9*K(s6E*c~q)jok-AeD!`WOSBA}u{_~Up6b<&`F!@CdN+#aKGEmO z`f%{!X`ke?y39Yr^&U-|P+XGazlZB#P0#nnlxI^{xClMiZ+++6x1*Ng?14+S)g6{~ z2|GITXH%c}j@amX=XeV~N$mD`yT!JA>GZiKmyajgb;L1GterMLv#4d+?2IkZ<yZG> zI|zB`KIZGG`f$)>?G9i4-NzSB_BtnO%re#E(#B~49G|@Hz2<X&*|yk6ar%Uuo1Uj8 zG&1@t9ki0HDGVwUZCaXramL5e*HxR>?G(OM`mMLZXQ^+S@mJBlkSaOBzA3eHN=z&s zJ>T^;L@s?-&z>)S(OowVCw53}Gr#97!payjBmUhzwcI~^Dfh3PS5)ufDeMccnZtdj zO3^r8sBA^&_2>33|If&o&iV8DPur0c2Cl~zsVWU$Z^^OV{d{VZWw@1KpXhM|GqH~D ziI=*vu9z*my{6IpdtMdOnqrB^4-y5%b~rzJApW?cv2Cq+u;ETKizu;>qrV-j`~KQi z-R!^M^yc%tzpNa`A1QD0&I!-eoV#VpY1;|Wug`8y6%MJleg0^Vq3umI^+R6eTT0s( zSygV?TQxKD@)gGmj8FRC-nhRuKKa6|#jhCF-I%f9j9lL>lXUm6sS9uEZL<<%_;opv zX_4eoF@gDeH_q)^|MpQgZ)NeFN6BZN2_Dm%ef(Qkz{{s%kFUM;72KKQX7zvdN82ln zyVc5iCo+8ff2vPU!cJke&yt7gWnUjIC|)k9uYIXN>hb{>&)R9ZSC+Neak}3wUG0DC zwc3m)8?)K3O&5PRnQ5N1f3?t-56c7YPTy_GWUT)_?brT&oBuKYKl-}<Qnw@DBe_0H zyQ_UN9=En8UEBCqTgp{Xpt#~ujq(96wQixWQ9gZ>>pgDC-Qa6lb3NdS)(e{=p~VLm z?epK>{j*H)oSJX0!bgo8K^NYBo7NmJa5?Mp%CdKJ3|QCwpEiB<hN2Fp`$y{LOP!hC zWUZ0s7=5)d-*9?9&jYF3&F{^-I2q2&6?6M^&%W`E)tbj`7kiyzZ=Ubt`uOU2pZ}-1 zq08CW_hrhhJI>Q-Ysl6t{7)iJ;&5b};dg1%?a?#MH4guFJT$>{!Z%CK*VFbEZ*4nx zuA%=ulR}Wq`AaVZQdgckc|CD)@LO-&7_qtbo*r{fayJSY6uowm%DLq*FF3FDN356S z46oU*d~;7f@(%7^+{&{?q{B{Za&*>9-A64xl1wKrMlKLcp3GL?8ZGhW$AVL*cinp+ ze*ePpzo)_$ID9-8vDEDGx5gR&!*^x%Yi)ee(_we$S*$_7`r8+8n(u4PoaTM?_k#;_ z{^sSnd#-H=soPrj{KACQ49A!@DRc>UJX@=3SG2~w<-F^?S9Pn6=B#v{`72Cab7MWH zM8@(tAD_!M#fG=6nA>;jP5yob&d7SE;xnu~GTEF9%3S`aTrUhW(h?UuBbZgg?h)sy z@}sjqiM3;%)xM8Eg<c&^`LbHxI#z7+y7`W0cVC_8$$ayxp~u_6s!t`mdRH@VI=til zrc>MP1o%D&#Bd+sSkhb_zo41<%SOu@>F(Tr8W+N5U$`8%qtLH!tq0dJ@99+^0+$?X z*mIjXZ((j*?wu1}Iy+mtzOjpOu*l5I%G-V+r{j5;_BL73zw3RYrJk=!eZH&NgU|m; zUbgV`7xiaf$r>1aJ@YZBs(#+&10wVNUMTC=|KtBZ>uH()7yeq7ckdZ~wA($|zm4%{ zSa4qbt>aoo$1_WQ&*;^S%!w{JzxL^y+iJI8POKMn;C=aX+TG>9CpO8-{NdBN`Mf_Y z{%ADk%tHqz$nssQxGMV9D812X>x!P8ztkRxP7#=LuwB1x3wPL!)X(ZC|H@sdzj$fw zQu7#>b8EZz&Gj*=pSdpDMtUXJ$?2>@Ct6?YyeeL}pR@n0#LIcV#1049JXp?arJlEZ zO+>R>LFJ*fFaKVDwd-qemSEAtk6#L#Lu74(+G;0etX?-yw)@G>yjSiV3LkY#8$2eg z&bhm-jbn=V(XT%zE0k-v9nKO~k9xMo{Qv!5zwHZu{<&XY^Yf*A?dMN3qJNt3{p{wg zd^~N3YsnFR>#fcihu5y${*(22lyzftX7IdypRb4q9XYjF;OaqzI?+<A4X-a)W|}VZ zd)A=2>q6K%J3pyl`6)M-9K2X(x!_lJMz6e<y;0-&I^Hm^lu-T$Gb)$-tDgTzq~JQs zDaPCTp7Hs}J%6;*qF;N3{-RdP`h&c7Tdtmyo}`qPuQn%J*yMakoLEoQ!P2kCHhk<f zt=~0e-tC*8!-eZ|kKBL4cVW-%!qaRS%5(qOKiSBgwE9Z2*3$V)PM2&|b(g>X!*kxG zvg<wb?Pm+M)rM@}GOanE{oRf=%#|g_l2`I-oT*8!llp2gVV3OW-CLU5wZ1;N()4r7 z$z+4CY|ndEnOPpboVe^>Mp1|ChL3AK_)Kn2|MK@}>7HL=-_)2V@4k4(konoQmM6WF z<R@D!3cKJ~v%z5d&#qhbU*Gvv+<#&AU`n#w#`!zvO0h?NJypZ}`gZBd`DbLxJkM?k zW5}w#UaDQO|F4+9n{Ui+4-J<|hJT$Kz4UBo+HRK9ulRho@~>QIzS?I_Ta}*ox#ZBt z6BvRD^s2w-&b5jD?s5N0y!*Ca=ah54eD~(Cz2n{R`t|;|S5N2vd8;2=_s4(#y7#9q zlukW1_tD458@B)Cp0f#9vHs**ekbXBWOMwIjq|N8|L)8))Zcq7v*r&6^W!aC$9vXW zhPl_S<F$;~tx^6m?uFfgGK*`ODSMyIIyh^qVZqk(Nw-(_#b-RN`4M1P;=4fL{mbbx zWnSkvU3Xpn)Vp>4aV1TOb-afKEX$21iv5yIXFhlG-nDD`f-k1)8>I_#s~msc{Bx_q z*Z$ADH2eORHwPB}jqv-meAb>r-qZK^ueHAx`atuI^ZNF(HGe<vyW7}pdb?kvqqX9Z zhho{EhoyRk$qvt2?>H1xp1HK^#$$C2S!LII)iuA^|1^l+0*#G<N6L3xE<06a{B8cL z-mClPPhEDs?{#Z9pJm_U>OA-Vb*6Tu6PGNG|1bY>&DSW4thWc%QkVkfbK5!Gy8i4z zrpx?u3vQGdoPBM6^4Rf}cW%cRm^zuR5LBr4<MiBc_t}z(KfXPY>NKt@NVod=FpDQ5 zr8id3;&7;XsU&Y)iTXY1+Kt_ME#J1z%yWGF#Np$i{Fl$#=0}`4+P+qHw#>7iXSBB~ zTYgeVfA!MZNPtTwcK6yapS<uY!_d9kZ}<JXGwoG!{LdGkULBYJ_4VZaFOQz8*FWh! z{k-nqU8{+C>&o_b-7hP#&V90vt#IG=maXdIt7`r;wi-UOR=iZ{w`kAAf1%T5ycb$s zx3<i=%qP(LtWC(~-j`y-fZx5ghicODs^)Rz`I}apX}c{k|G(PigR5p_oAO_Iz<zdS zxZWhiCGslI6;fxiI=t$;)fUWpbk_#U$otDV3%_1S4zS&QjJdGJS(`U#Y2>@qX+E#k zYROuZ1QiJ$`(YIJyLt2B#hzz#zD;{_rheYqG~R_D<~8$QD%-GmcjMG|y?Ly&qi#r+ zWmNMvH3ew46zhpSxh&7%WSk$hb^hPKg0>REOpbN22SYMFA66#zDynK4RJR4)K0N)~ zHOZ1&DH-do6lv|Bb=l6GA;aj?gWrxZD=h4CgXdq7FJ5&vW*+y)&xSJ7lXmWGUGIFO zB5ynUPK#q{6ZFpCo24RupzHAK5_#sh;_32lyCQ23xZL<6eX-~{>zx`qwWnGep6_aO zeY$1g)tHa7wNL)Jv-ZBhBJpYBM{fwZmq*+#h<1&6dA9k0_Eok1AggnQ|2SRV9J2qT zaX)oIvO90RJo9hueLn&p*uKuOFq8j%s(t$XpVjtNm98~Y{QoU;pFaP;=05MGlQ)&+ zTJ1B{t*)KRymrIA^D-$3+xRVCo9+@_R(^Worhd~ot7j~Gd_bOW{lvz#cF!#~n;UAz z_MY#GZ@66cvG?d);p*R3;(sqT?tOUa+rj)k(ev5yF+UD_^zD2i!L&87_q9~`alUun zYhFt<xa@h&kgz{x?t=WEySobA*2{djn*A*GcHpAtu7@Uno@ATHHbquYj(>&JO!gmX z8odYAVwqCT7Vwyf@%?vhoP6q#NZ`uNXaDi^XS3(Thdx=HedE8G-S@9|Wg26O?woz| ze)GOPzl-Pp=T9@dQ1RozS*8ugo|pXTQ_XgKWmq%8V0BAFWG&|*?oC&O&Ug0|e_Xav zT3D|{bNRm`rfEzQ{Ni2+&$F5mUU#;#Am?OUn8dMVAD>yAc{*idgar@t<c6M^v)(?r zwP)Ryox3zdcAWioYxW~e-`IC;)r-%4+IoG0y2q;>xfLa`={}dgKHT)zr=;lKSqI_l z>o=0_fBN+Q==|E}pZ5PV-(OSd9Ut&z)xImwqxU}-p6*|J+g)tYk=u95H3Bl#RdVAp zn{R&lT4xjO@Lx(~f465^xBjZv8@vQujrjLDnCaF$lM?T^vB|&NdEe&Z+3A=0`dR+5 z&%Tv1cZqiHF*f;AYMuKI|G5>`>8ztZX~l7k#8)95xl2B=$I4~w_9*NLp7P?CZ*s^p zYr(^2g-YIryULcmJ<xmeo38q`^-H$Z$8X8kOF6EyX?5(TFV@$0G=H5DP_Fm!e8kdT z{_Edko<D2luBut7`Ecd6v$+M^lPj%PEb1-R7W5V8>F9ja7JV&2t<ZA1YF+zp&tem2 z$+J6kYmdGN{e6wWVm{BqmsXEw?K%{?|09do^wn)WH^u9k9i`Lve_Ubp?aGYF=Spp& z`z&~k<7ejGS2MgSIDfiw%(>)-Acf?Bw-L8uo@!kVy}2*EE$h$X|4&X&zyGyX{`>6z z+rO&rw*QtM_ul;f_J-(E>8EQN)6E-=^S%W$ule}y!NmVF5C6^Hx6$<G6NZjs8h%B; zcXK5k-+L+dPHs_+(T$boZyd3Bo!PFuO?aAeU**enIkzV*pRH{2_E5{ew7m{L%8QR( z<Kw=}!nsv<`%9toSD4uCBRH>ZG}MrbJ+A((E%9sK^z;7`7VNd+Tb%wa$ofUr;@CaR zuH{Xl2Q#f_bbY#IUh^&9R`K2J@*EZ$*LM-;zQ3I3_Tc>A+4C#T-=EbzuX##;X-M_K z1#9=(9A7s}^Zfmvn|cE06;68>`2VOd!+jfXfk!qM&G&s0Z_@m+e%aSc3%A{C+M0d& z)aKrA&#boAe$?%_`-nSEf48Uj*5-xRC1PLZyg2*kWrlY1{kRRQ|JS@)yZ?dZG?PD! zQ=E?0JzT$5<iF|B`o^H>U$wvI{_hfQ;yY-Ry?5_=bBBH(zLOe~e|i5sycpm2YTMNZ z)5_0_PFA&3X?l0#H%sTe;?;)xSl8C><bC&QS3+x1-u9e7;&Z0nx*E^$X#FoP^?3(P z+syyX{}s0PXZZYkm$qyD-}?Wb{EO)B-(?q%{Rs2?x$9;<ucFCY8Rtyzr;o1qc^zxs z-}6(jVcSOg!-n&pv_G*lO@6wurf;uN^}3G+7Z|4t?yB{QvA*_sRXYERThq^MEql2B zqM3$OIl~iuqg+4J`i;}%_s!J*6ME84wkj`hit^)0hCw3lS4%SYiJq|jcEoUJ)Q6RC zb~DN(2~A(j$yNSLGndiIRDQDlt8G_B>ZMD*Z$Het^mgHqg^XYN^E00tsGH|aod0NF z&hoN3e&U}N=GpTp_V-)7c;_u#_2$gYuGrifr=azZ7Dj!(S6;s5FYA5&7kh(#d(<rP zw3pvo)D!r($(?=j*@XwVtjf7O?4EnQ`L-)gS?kD+D}O}A|C^ffJelOs{W4L0{S)t% z`5Wz1c5f)0UovM$@}ZY^%u+vZ+sl?9aI<$QgK&9@=>Jl~J5lpCZHuer-cb<#`NX{A z%gPcb7MMr=YmwJme)8j$zb7xuP~6qLZppdK4OyRO#P_b<weV~2@nDU6(^chiy=~>U z>D-Z7RJbKcU8(Z(MaNyDvd2?CEnenfdVkM4wd?XWT8Z-#4tk!ub;WnR_4*f)|MUN> z>yNSfd3DYK{ptI^o8RC0=ZycJrSVoTBN}%9m~-6J`SYfIt&<Js+dRIob-(zz+GYBW zuGWjcEZVd4Zh85R^Ix_uY+3x^naq+E5u*0lAL7E_UZ{*Z#}*sMcg4|1FL*t7+xB%# ztLtYTez9EG?Ht>G_Voph3zhB!%Uw0t7jpjgHGRQ}65B6k%Rj4_td$(I?^Q9U-02?6 zY`*P_)vrCaQQGvoVgB53rzN`#b3aw_&HwPF`v0e1_WP3;2xmrJZkYby?%f#c6g};^ z+j(v@wVyR=;>~K#l)EzZe`B$a@7+6V8IF`6><PZR@O8xvqvIz6lb>DM=%)8paP{+~ zD=Tka|9`0d&rh|^Z~OLTD;NCdI1qa~dHb{9U#v^re&7FP6a3nR@9dS2k00dEy)L$1 zDb>aI^7A;Us*gU|@zbgsKjj9uy?%amhlD|===IqjmbK~KVCixfa;lH+l;0L@5c#0u z@$}mZPn_PlN=;9s>}uNnpWExC^E(3-P5HQ7R>`HWzc%5e{dJkiEp>6v79T(Q$@*8M z`MmG^>+Dnxt`usjj?oTCociVK$^Ii;uVwCNwf_i@n>v5~TT?dmy+Rxp<Xm#5Tsd~| z;A|-#QDyu2=_{D7wM#t>x&K$;PABslzNco=1+Lkmg%!-L4`)8RZS418$_LYb3-#QJ zH$8SS-*N8e`#)3lU+A0X$M1W~|F`Y*^xCtFPuu@>-~Z`T`TtYm`t{${UzxA#{MlzG zV6Zl&u1xDZ-=|}}-(!8ZUjF<~P1dh!&&ri06H1qFn^)}fFzL%dXIti#_5Wsi<UM?Q zr@3%%$&u>+lX~(T6NC7|Q+I5SKRLtZ=9MjXa^u514R_u7+;RK2$o|Zuo)&rB_s{Em zcT9R89+&FV@bc%~?I!19Iu5KA7vG@!>RR04?8zwxT!;6SPrUc<YLSG!@tgAOQ;V6V zZjI%5m+TyM@7|_*reyhjw|^THT(_JNCeyb$@^BQt;PG3V)w9nzIWTlRHOb4gPSl&W zk#qTf{<tYC%u7%1^ia4gk^N^K*V(y0cJ4j6>E>>I7Tw2s^(l6595>m`Sz+RK{zn3T zr0VO0YqHl56|?+K+Sk}0`TN%C-N)xh)mtjGou894FL>Psi<#+-SJ$~0o-)Xvv-j{4 z<#|>o*FN^Y{*mh!TkJv6r1bEOYbMI>&ow(fQ|HK;OluML==d7r7b12u-v<2qpdtS9 z#-Yv{Ez{gv6CYo-Ug+3)J?*o*-Nzf-9_z?t)%BGL^{nTymZ@AecV|n!*DkNyo6NSE z?{K=dr{jEcxRi2h|N75&f6P@c&f!{e(!TWdH}*#{%732a*FF6dz3;K|ugbu`d+w&o z#n*k(uYdUI=lLHDJ2vir@LcBU`~DZ__Iy1i{58_CW3x4P#nh^KyC&bXc<Ugyaplz& zGBx|yt+u$gZ+N=n@f_C|)4!zMey+09;JJJ@@4l${Li~PD&bYn~EX$P1uld~A^!sY| z<o(xGtSi_o&bgo6`SGQA|L2G7y=N=F&G6gZ`dDg-h`&jk+-Knl=G)@xFUP-GUCkbI zYVG+eH?11iU;BJ`=aQ+~4-0y&m;DiF;LqM_o3rYse%!ssEVrkH8~+ygoO`q?_ssH# zb*uhOZVuiY5ce<AH#U6X_x5LNbaTJ6Z<Xy(&b`C(P5zse!Tpsb$!8u`zrXo+`~Umf zir>xXEB;oy^Re;=_J5zv>!#=x7{1=sU(EMvOKr>dK)<Vt#M$*VSl8xir=880&MLX) z{9%vKA(n;5^nbj_Y(A@<`|7*4bBRUO$J=%@topRKRzCLE@tLAM>*BQB{B*(h3Z{Aj zT&$5C(<krj&3`Pp*z8$>xcb|;Gp<%Yb?@mOd+v6haqir?uPr;zUh@mD>s|iH)XbFQ z-M3ZE&0I5$?5^&)nD;esu58}-)6(6Ymp|UC`up;!`~TJF<LbWszc9P*W!>xT^<O^u z|2=rW;K}BqGo8~oI=y&Ra&z>8uCUu)>3a9iUu>&9>lXQlh>RQ~>FD%JlV$E+v1mz| z(k`&?qK3S0+br>??rs0X-}p=mn{a>Ug4@4}s~<OW@6QeTc2xQ7nc)7Dx-oWq=jJ@@ zt=rx?b-M6W!*5r9G%j2l?((W(@n$dSTa~JrkE1QGoJ}`4w`q4j+u|2O?63A5xR7}J zN=Kas-~DF4Nz4zf?~`D@QM5b$=Az;=CVf>!{PN3G)BmT~Us`8w)>>SV`%FKqbFq|s zaA5Q`w!fNeXP-~i*0~cVQ`+i0GrU_;`)Wi+&@L&dlE<2gJ6=3)n6JO9^&`8KT5OHt zv5A+yak|Xj#5|{#EAaM%?eEMicU*~KcUjigv);P!(!%8|*DWvJSt)hd!g<!}hsQSc zUp`mUc|Y&)+pi&8lU2+f2q?_w-qzb&`}+R*_$T|{&c8S}smiwMXVK4{`~Q7=dc5w( z*T-k;f0V7Q;PYJc{Kon2tp)GyOD-?lyV8FF)0v<0>Z^ZQIW)Upj`333x8|+N(QOh@ z8e64eGroWI4_SA7<!-e(vER>0@l4ZWTl#TM)t`CE({J@0;hHbnd*4W_V777o1L=3K z-U!eByJg|I*OfPZ+=-I+tL|X(4VP&y>2#g9>SIa9TlO#C+#O$9`MP_q(BQVb@q<Nd zpYr-L7J&-|Uu$07SS**&wDMR5!<nzY|4qLB?`i7}@%Jw{?$k3BxR>A2&HTS~b+bqV z-!C1u(nlJ1Z%*IZ_}JRCY`yrs3$MNjohxhJ6j>*b`u9e*N38C)r!DIrDD5uF_>>Ur z?rW`Ia^gq%-r3S@A_`Wgww0FI-8|=z=HSRC@O;sXJ<lg!_Lb@>`FG%0?UiHU({{X? zU+Ns}IZ;~icG{AZ;O%miZ<@2e8>%$ke)TlPxJPT<t+qEVIhoN0z4@1WKOW>cyLPqT z@4T+L=cbw0f7mI(pnmuKpBuBM|Np!HN;&hMZ%;l2*MHm^Jg>D=yX2q20@0gCD-ZYY z{iW3KW9N?~i{Jg{*thrWY>=M+BkH5}-6fZ`gOB{pIu%s<{N&n1VZ)GZ7bK2KTI#i3 zx|MQ5KE%krXYIyW9UuMA&PcuAYQF9HQi<BE4_%qte*`7R-!VMO+mKkB6Ck_om6_&N z$-<-@*{bb@c}&NXCWn72h?c&!(X*seH}|^l4(2BBHD>+wx2_xv3_cV8XzlHSV>jvw z)mh7Qf1j?`d{g$|*>Xd^Nt4|jZY=Vaz5V-YLa<VP{c)Fz#}a-htor=1aBij0y3pgP z9}-{BDHdmbobbkiL*vXphl^V_F85n=PW|l4`OD=STD~8CWAPyGa9-`3mBQ_2F{^CT zF0QY#v-&#sJ_CaTgQtsQ2t%aAhIz}@-hTPODmbF7KYTvBOmg$>cLk51T)U`lkUqaH zCNzBx)Bij1)vrH2)3@FGr&qr2@u%{C)Ahf_@^#D4j}<!JIj@)L-l9`KDtXMqQ-1ys zocZjVmrC8NlAk{scAgMsYPmdP!#9KMFL@^GQ_Y^2@d$iBEs$&W#i}a#BkK|E&V|22 zrwS|;yXmLWIPK<j!OZ3N?9S=4UF8Y5mRNN6#(^^Vyvw=jzx4$c#TDC4mKDuT{l;4w z$H{-J?#kK{(F2!eALrBHK3Bt-^<$Ict#nt()V-T-?llXq+8pzGBm3iDt@82rzCV(c zYuvj1eS!YF;QfDozW@Ki+-|qcpJ+L*cMi`TQr{Q3U(>C=nV(d&eAk9bv#5;eJMM=u zOPpdj^|oWSS;T<{Wha|N7F|i-_tv<G<F@A6jp22|lel|7EQ`DG_i}*$&aE-qy&P}8 znYQPHpT$It`dtmDo==Ic_{?`vt>I}|vWCz~g$1D*Z+PyAxmv_*7g}*EW{T_M8t04e zLu{YC?eF}gbbryE+J`&c;-?%~>i4tK|D@Vk(fceLs&m(5I}7zl)^k03_{gxctGn~I z#owA)Z|=xhZ?8W6Y`!Lo3#a?my!&}QDR~o3<nMf{ICEaE>|=$3x_-(T22Jn%p~YtT zXY39><}N!HZ?v7&?$qXqS;f(7k4yfKeey$KPS&6Kn&AZ>e*R3bpQI?g{cquJ^&M~X zE3<d3IU?WYtTm%RV8w*{-8Rkla_iEv^^$s4ShVKt)VS^C8lyS2;_jmuHI2U(U1!`P z9N%oJmR@%yXw!Ks*?z|3PkWgZRqGzQthbZhZj>dn!&k_5wt)5G=7imgpPG5bExW#_ z;*x!F*Y3;(%qxUqw}yQ;3p0v&JmrY9&~qorGjC7z@AH}a@{>z^klEi3Bhx1ZOZ)6z zy_kC>agWrbgxhnjyjkSC;hdt4b=s3$Z;g^o>`A6`q;B6-?L8@Qq;$@@Io<Df-YBfA zPYil{<H;lUlUCE@A6f<O_`lZsRE>S#f1}kYe>;Nivp!Cr^3!s!Uif(tZHeRZ3nQwZ zIX|9I#<xa(pKG*1Uv1u5)*@5AEt((KUR$4|9selA$&@eBzG6w<wM+%SU59?o@E5<z zU(fDw`=tB-_0Rn_b@}EROnFyiddbXj^)#8BSB1NL5BTpqD}9`04{x=a&GyI2f0@^Y z${D}>Bf);Zm1W+f82^on^e+6)fBTA+Ek<zj*~i(}JRiPP+ptqOe#a4`)-P8y+n)a5 zHgL;g`1iP_$K3AWtpk%b+s)C{-!Ly-_vxRd?qWiH^CiBrcb!|CCjC!_+y9TnES^8h zn}6A-o?h+WJn`KtL;J7Aa>3l5lRD}xcAt&dyF_1{FFjUys`1YcbKU>2th-zG{P1Lp zRmT6kpBg4KYxf%(_IG*jEc!RS(X_QmZsiK^`4d*!9y`l^;rgbhcK-@4e)yV{Y~A7; zKAZ2>R9}6&%1>AKKew;`EWW<rd#|-6Q{<-iDWAT3$}4}^Yyaih{j%2)ikpJ&tYLj) znkcs5_MHdac3)pa2!=$sMClx5lVVumb39C;;I}BxuIO%_zi!*?WW#rFe7wm*;B)vY z?Olh@zOuY~B>d|K&Vz?u@%6~(FNsQDD4BA8w%YF#*Pi|IjnT6?uwaW~=_1qhVM+Qw z?uIJ`9$Wu#--SCdm)bdNo>-+9Z?b4QWGX&uQor!zJw;&~HqCnS`i(-Xo5XWxg|5;) z2brdx2wL2}$#7+6+|(UQ_8F~fJN7~Aol)-#g}bkQNHS-K^Azju@x2xEa^vgPbzd}Y zxQi<1|I7T%swW=eCiaeb`-QTPp8MU_e&gLZDcoVz<mK6~XSc}cWaTTgXEy}RI<FAT zeedn6FqOmX?pDUv=d$z7Rd9P|wKTMB%A3ly-D>rRt&SagvP17^Zgj_z_u_X8!WU#n zUB98}T+5I&OV<1VlX3p+d(&>diCC*r)|;()X2aZ%6Hi(;<=*^kP%P2I@L*Mloa*h} z9DEK9OV6{+Id@8aO|xu(_oZBmO5U|CvXXml-{NtzO8LJ0^_N@+CJAAqTW6X-1emia z++Zoo`*GCVRDxMB<k9s_xe4ZMx4$j-Wn6rHhSkg+vlms~+0Jw0ny26X!^WmfwN<P+ z&KYSRJd%r-@s?XP?del=T(%{9uekNc9mPj@Gxp?(vza+PoFu<?^;Y3W$MVkX$iJ<z z-tz5o8DqW4?+$&xpc?Xab831{+i}lpb#v!9P1qGw@b32(t0_Vsw%V5#-|B4>^_^7q z&42Y=$H!{@+b&+$o?9^c(uS}C)4=ETnb!3_rTgYdKKl5%@{qO10iG2HA7^oeRBM#Q zd#bEE5nlQ3$T>;pUyM)BY%T71{X*@efc)2EGmMu_2v~etyXx_=-B#|!EAKpiuyBIz zm&x@a50nlo?p${`>ZNS29P<M$$@>qx9Zlz53>Fu5^8DAwzT?pJsIJ5Lv8A%>o-xVA zOb$<VR$p-H6xYt9owMy2_SSzsuTf)h>MuKkeBa*}aWAfXd|&wG9OHS%d-~^u?K&(^ z9Q<Lh{_(zBOU(m!n{IKqdt%o{ahBi7`<MFo+<wx_G-(P8=f_-|YqAFl^QZp5wc$sR z-<(2@^y}-kJWR1(>bh!=h4hrD(#Z=8#lNIWi=}g^&0Zb(SmxcfvlbQ>alF%#y)}HN z)IQ$UbK`Bk^^C1QF29l3nK4J;!PB$*KLzRtTGpE}UE@4+K<U)EC%sbN)RftMLJeHP z_8NZEpQ|7BNVq0zcQVfbuA?EduY2aNt~qX-xAOGfJKOkn&RutG>qq9P6E=h!W_;kf zV6D{q>0`j7`{K*~J>WF|DSLwNMrcyyeA5%L+vl1ub`N;poUr2qkG_DH^XF_~hq=pg z@BRL}%;xj5S224Y^vx;qkXY4Ua%2Y^Yut@*5whRb9A55gD&Xq$UP5wPcJc3ohwl$E ztyyHY>g?{bN7J8(d2ig#caKX@<t*>cF6HLijBAXazuE3vbTodSN{iKoz46OG-{x0& z@M6XF)xYi@^L)f1u>FTf+_$zJx^=->$y`}CZKr=$V`n|uCbV4G`+42PZ45EIw=^f+ z%+FnCzH?*w+c^^!A2<K>$yC+lhEs>p4b}cimY%E^_Vpom>>O%zW^9-7*;%1G&Dte2 zK<j7INr^qLsy;7^^fySXnc)%h<}&N|_>db){Nb*<Hr_qXbmQY~kC*3dMB{&PB!mh7 z{B<HD;Y0d|YstZdc@L-7Zs%UO_RYn~)rZw}MJ~=X-sAhgbW8H?_YIlbFW)r(wM4q& z*u|<Tw>KvH2EG1ap2u5N@wh3ogtM*ixBvrBaqIMt$FBXFd*|F7&gkc7SLd-?ZJb&6 zuuw-aNVuy;E$?}vko4)gWS<R3^)CLih`in=%x2sg|L}%^`8pA%mA>+aXYZ0Z&3C=n zo9%@qLwk3x#U3>eo|WNBfjg%$yTtjN*m}FylWXPn?6tg?9{4j}DGHnX)8XzjnTes3 zv*tfM&M)P)>*2o)-Q~Q0ugp5!!nN-3H3^3cM=Oi<HoWJqxBB(_*Smg)Z-4K;KUvFf z!&Dz<&-udq$eYN$ac9=HPx{%pde_+iHNS-H_rDe1UuD>OTPQ-{@5-J0|0eTyb9Hy* z?2Fyz-?inZr^$Z%X*Cb09on%f_npRu;1##)!&Glq>^_j>Zq)1DE5G!G_Y|9*?rfV3 zDi^1)=e~N*Gkc!9S_ik?PEVhn8EYcuIP`srady7-&Z|c%q5gAu{elCz(fi(plzn=} zr2cr$oWAamKrz?C@}{2fxel*pf8HtDcgUkCdhc=Ph`O$f`U!z4Ok5B0`?g;Hy3D!9 zXt|0=^}dudFVub?F}(Y{r_!|J@bs>meC(ea6wc^=bN?N&{MnTgv1-c`E(%XR9<wO; zws?2$;!VCAW5v$>Qp}Z^TJ&k{^n}tw-;;$t8lT+QIqUKAeM|S`y#KiN;}MnpU#2cA zD1L32yFXE5&i<pb@-xFG|15m0Zf=+{;ioBUpR4%MhQoV;Y@TL+Go4rRdg8U#U#_jE zj&A=pE&S&LZ@Wv4%L`U7{(aGFz4|5j!z!Ntf3j8Ef4b1u|MlzzT|UX*QnDd>nKu@+ z9ZSt&I^+6JVBwYQ=50NmZ_n&LQ@C<@{pFo+pC4UZv9?T3VB_wso<3J^WGYqM^G?Yt zkY4un#@8DS#SF^|XVxk^IL+K9uP?Bsd-3cW_Mh9PnG{tQ&TcL<DzV_)^k1#p@n^*I zX~mC2&;ALud-CijNB5ue@@sCj@8SP`DpS*lkL~Nm=WC8^4?fnKG}mm|0zN+0%2l%N z@109-eEIZIu~7VTj%!nrM`vHzmy3auogbB0Tc*TcD$~ie@XL4-_V0}K`}mi8(+Ygd z`rMN~EKNv0lczmX{#n}Jcb}Pa>q?btcBrc<`tYs)FfV_v#`*Qi4GSe=7HtnWb>9Bx ziU%`xvQ{69{C1L)oqb#STGgJJT-o2^{Jo;1i$2|GO1|G^FlXLA?w)<^YksNU4n6fm z`Dnri-^EYYNQd8fvexP7tY^i_yeEshcT{Xhz5Aed*7?&1zTB$)9%agSMgCmm`*5EE zCX0Vw`)|8>s`c+Vx!q4@o_WvCHwR*G<;(F4=so{<ki&y(%U|PdWmlpOd`)bwiM{Y# z@Q-DB=<(YdYuBw(Gi5DE;%>OLzjw|_J=Nru7q?cgot|ZUFX-lZ>;F607*B4$JH1^> zahYH6u@$-(FG#WICqJ)nR%rQ=C-O#d;k6&vsyHjpUrqh~Gc>p8-8`xEn=!1@mVa)j z{^joG+FdLw{;Y8Gvx|>7+7>E`f9HOBqCGF8rIhU%W6Vp-`!B8>za@UkXxF#f_K~M# z{yhJG<9XYz8}GK4SF-%dJsA7$Q0=>L<qr?`%3o$Zv;DbJn>n9e$op@eE=9UZ;q$IO zIPkq|q1soiyu8?omPE&ov&B;q|5PvevFQ5gMJ(|WCDlK!ww39%Z19)S%{sxq<zu~W z=xMh6M8%6t%Urdr4&Ruv@{7skJh^$fTf%qmnkcdMu`}~`=KG6G;`JQ*YNppRTU#Zc ze*0sY`@01F7f)t<tX2rB+r%Ycac=fK^}f}$9(+H_^a2dj&ZTa6`lsm_?|=3`>(+MZ zcN}@eox8z*tN*u?b0r={GZyaFlKX#TnyVyd{=(I#E}B$KiZ|!E+?KxU_4C^d5<xPP zULO*0T<;a_Bpz?Ft*1A8+K0u*)LVZp_$PQ@oWak@&EVkDW9)gKmU#4M7&pb46*A5a zo!o6S@96P0XMZLc|Mp3{+2?Srx;gmx0iVg;$J>}1Z~t1A^J&h+iGQ=|8xIs_+ZJc^ zRsP(Ze^&9gYw|mTpbrbfYc-a%8Tj90yucVL*{;Pp`I(S7%eGA8{-@S~FAs9~$JK>~ zrJXR$zVCNJl<U~Ue+um`j~$9NE?o~xw6b~@_SXKPk7D{W)}y(9GIu9BDkUr5Y`kSx zyre(y+4S0!_@lq2?ROrYc1!Em{W<HJCI`<GRa29nbg21%&2h)yR~dOXKKh(?-qoWx z(A#6(jVpEjjxYVw<8H`p|CC?;Y<*?OW?|#^C#7pn)hRnqn#-ni^zm$yTVl8VT*+Fk z9cr3%{QgVf**i2s)^O)FZ=5LYu(#%8-<&(M4?OPc(bpHXVBTE+`t+`C9|iYaJDJ+t zF1~G^`4(r_yf>4!sMj^yv>%JuGlQ)?ht+B7&7+sjzpu{kJ9fQr^PP+7F?+)t0~X$T z>LGIUS;*z(0r@GH?(CN8PWX6x-=w|om)Lz*HrSma-xTaAzf!&5LPs>>7pG34PV>Zo z-%nRCrs?&|t5{5A-Wq3@_J_|umusWu4b!rRAIdd7ML#QwTzmcdRP?Ran{o@5Z@E`H zA#e7b345Q3oecXUQ*QVE=)&ye^i7Lf7If?`N_q5C=EC*%vikO|i|3vFKD+Q(=OTxm z%cVt^+6_!qsw)342rf+BZBfEE=dX%)O8?xKk%yl={>ywbFk|NQeREIU_^`KZb)|ml z+J{{;?M&UD_09fdD$d(d_w;vJPhgMC|B`nf;(66?{WE3yvh7E};oD1Hwn@o{N~SFg z{q;v>-;N5NvzjdbQ#;ObnZH;cHMf0d)8>0uo?e%+R6BD$;?C!yHSW{r7esxZ&3~3- z4qrRJ@BX^GWlyUAAIZM|@Lchg_j^}2SFIH}{-fdX(nYDsVy%}v+H-$?n-%oz8~3(3 zx3ARgSZ1>O=QpK}`75_@9;@S;wo8cddcp=XxvlGC6drB;y)JD-T890nPfYC!cjt5* z>W*tQ|1T#U=00_=$FD=H{JoCcC>J;BtzD&T5q`NoR%7ENh5Hr_j(KZ}m#@9PeBaZl zr{Dinj<5Wgd;e4FWpzIfyFw;K@rMn;8P)QA%f3EZS95im&Ep1sfuv@~FvDw2PnNQa z+03wdS@39;QL^gnw~9ydPan8_@^_<|-IXa~F^!iiEY(kTmL9vZ`PtLoPLu579UM3u zi@mtcK8+M+f3)-E0@kAXrk8)-oS$*oY}>IzzN|CPGu9|vt^53Mv$Ec$uibM#oW9Fs zQn1>*>O=GUDBhrje_z)BUadF(U->>SU6JMC&$~G<W|rvvir)ISurP;vQt<TSF(oZl z;!-;#ADy}xA^QEw2g~=zF2{@SoHFHc-9v*HPruClk=R|`SD8Go{7-qj>@L0@C9$2K z3z(!%OGzw0ddzTx<GQM(Z9SQ<4_NZYsKo5;oOF(LFUxPm!>x?&DX)Z1Ut_eff3ted zM(_DM`;J-3$Vxmc`dRh&-B0`9?sh9nA5Z1Fq;Oot@3_efwlb|RT9c)V_6w-F?4IFn zl=ov-AAiLh%~f}08BC_nv*x$?6TLshnRUh;#RWQiN9OK6T%wcwUG3MEqID9|E`3tB z`xv)B-ORu5<8j#<gX<-e^NzjY`EujX)$D26kJ`j-dA0qX9C>o}oAiX*8jkOC|DT#3 zzwdW{-J?&Z+<#7f*{N-~Vs`m4#ucTvEIi&$KbyGKY^DDj<7Gdtytz8douOiPOmF6t zRqFf?9>}_E+BNY}rNUlc?&RvEggg2@Wd^Ihz05lPY|o<bxixP@Z4Ec^cfWfPoxJYe z3^nzu9rxb%7K_GRJ#spta$m_DuY32zEZ-kl+mfs|IjB{qWjkZ?g>H-Z-@N*<`(A?< zKOTF3X{&p1{9EOYs<@kX>yCJ?nY4F4%iQ9HPadp3yoJMIW9ku^%O^7<vwN0$*qocZ zE&H+ggM~U~`D>F7d+$8|wQH8$F~_5P(dxO<ucz2+Fgxg6-ReAtd7a)2&E>alPF&xc zJ^SM&hl|s9edbY+IM@5NKW0Pls=U34qCA2g3$J+a?VZ2s=BahZYUiAaH}|PA-}vry zdpgUf?Q8h```=X`YWleA-@HGC|GXYW+tj*zKkz~!ed7n#JiZTh9~>2a={MJ!ef@PP zzG+KBMBd)U;-F;3Nwxcvi+pr<8x=5hOB)^#YJaMgFL&myo$~ihtml?$b4=Rwf6=tI zE&jFIx`j^_Yr{qB_sHxq-+JOx+nxHS-<SWhi@hSP->axDl((`t?$e{*N%<Qew=j19 zn%-@^U42#0jhiKXb_Xv^+xF$&D>3VpJD&Ra?q|%~<G6I4oxy~JFZ>+$Qmm83?ALHE z`}^rlq2vMS)oDLxovCd%{(Gj=toGaX%UoU+uAe*k-HM*B4?fAZ|IOu?FJ}%^3YFa9 zde`>*&<|t(7yhgp&;Aayn$+7p+eGQX>TMg(t@n{VC(ib<bZ(`$!Bn1LrUl;&oy<OD z`Aw;}Jabp~pdg1s*DQrv^R6#*4wNSEvutEI+c|skj`Z1@U&PDquT*TQ$%^UjHtTzD z%c%Qdah7m9Q@4pJ+ntLGcfO47t)0l=<Z(9fL%>J1*PhQ>M1BP2ET6_C8zC<F;`qL; z=8vOm4{rYO=6I#cL6xJTc?BoD8cl4M%e3|K7@K7syIk4gz+1oIvbD@t_NjZ9eLTr$ zyN*Ao>YYZx-I>hhf!RJrd|yiQ*wt?Itp4J+&-lRfXz!;Dw_Y=;scZVlDs=n{aQ}TW z|ISCoJE^}`eVb<ZdxyzJsfSw}y^3;5-<f>a^I*rPbCW_1-c@+rtpB4Tk!|rfUjLD> zk7fGb<yRe7<cjSNUetJ@-u7Gj;@(#E*GvXi^d4OOP}Q}Y?Q+p<S#61XS3D0^*nd9o zC}5ZNxkWi_j<@E|XrA16d|gNHKh5WQ@B6bB7YpY7%6xc1d1-v##bqmJ9Wgw5IdexD zx9sOccIot|=KZ`I?5DU32PpfUtZHM@YqYeBm|e>*Qn6R&_`cNb_AY(*n;QJ(lMN?6 zw_JN>_o95Gm<=D-Uzdrh+xk{3@Z|~R=dAs*EJ~^6x0b1_yjw2D{^3WdeB)-mLJ`66 z>y~XhxHs;6e>eVRjxyUht-jz%m1d2Gw;nwHczC_+S>>5KzW$hEa!c}j$@Iu`H)kq+ zJN~BO)5Z(A$FI5l&HfttUoEgmVVi?#n0tKSXNzf%FJ9>WI;F6%dF^q}#9tQ;KWF5A zicLKG(%rLV?V`e`H$?fT?0d~9DVGs!(O>a!T9frwne9FI{Ckg{H%zrM(wC9Hz_WD6 zg5rQFwh>PPe$Q1o!Vo(r<hQe2`-QK)R`$vKcWO=**9y3t`#Qs~_tIo1(;prF9LHZq z9C>@N^pf4bC0`;YwoeYP+dJ>^?R6;+cQRfpcFA32ZQpaMKij|Sy!1>B1%^bf8=Itj z-|fjrNo+Xcx|8!*Y1Z1ESqGy3*ZwKEW3uH>=RxhPl&M?o@Bi6b|E75T^lx>)6D2_# zgzR*xi@rX-*!+Fpznh!I?M^ct^j}k$a(z*7sos%i3F1ex1N4P##E%t6{`i^x@t4?@ zIO#L47Ggi<l<X+|xl&&z`>6t(y4Uf5(C&DNgs{NLGK+n4-`(VCWf9oABXXLt{lVb; zSz8`_Y;3=;U}~>u#a6QQP1uwqr`vy2l#V#tO8;fbKXj$e@o$}y-v+ybCChZ?@tfMo zDN9-|EIPeUf7hz?3t<N%^|hQzBo;4HcE8WJNAJw(g_c^TmY10u6&D(*OBs8*$Nu_t z>CmOm!KT|{4zr!+%=o6fWXd{U&70@h#rNvfeJQ)9Zu@Cp%)N(}&rhwfx6!J99)8)s ztH^D7jFH&9*+v$&xii9h4A<!!s6Bl(rDviR?|Ea7#ZB#@Yikb_3KefI%u~?z>tp@= zYE5Kv<iGj9uJy;<tNMHLsd$~+_v6eLPRp-ax&QHT2EoazexAIqRCOoi%h3rbr=~eJ z9Gz}%*B{r&p>MnK^D?XZGG89f)Ia0>(L=mcq~@=VT~kP1@%M;?t+h5UW_~nUnIB{D z$=~AH?a5#LHr(h_W|=RN^Q2wRzP0`A=Xkd7{eQ1W=xN=rUiAE5p+?e!Z}+!WF8%P8 zn@#la)<T;<7g;=lb?&*Jv48Z^wO%9S^PW9lzFcgTk^gj;V~5R!jcYy@?mMeH!Tn^6 zZ(0#YruccAD8;kEf2Sxv-H`Qv<ykBC+TJCK_ZmLWuH!S|(zMv0H+>st>$e9}i@q0L znxrXE-2IGk_uiLsdvCF?kdd3b+Ve!O>8FmLi>{q7Idr~y^R?u*DP8}z?|#1a*1w%v zmtRYWPL~fC;?T)Er?}-5CsXvH&aO)f<u*>Mnq#VVOaHt{{lV{nDhZaG{C@T>H1RL# zshE@MwP$KsVL6{~u54m#%IC^Ha~m!FjNY0xH?A^8Ssu1rDsAmoD{$1}>c6k-s#|B= zI$P%HKUL+<lU;uqQ@su}-rf2|zgX^A`*a7p_DB9YFN1#UydW7r`Rkj>XKwKy?pZ#^ z_L}0cS1lZIJ>N1d4K3Uxg`cZ$i#puZVrR7ePuhm$i51r@A1Uts)}HL=`B$OilVSN+ z>yH-K{v>V@iSxg+{#0Y&&s+HwKR<=We}D0*{%@=PjaEa&|B~%l)7Dx=Y}&rumrr!% zX0eHq*G<-ZKcV?X`q%GAr}-s$8NbZ6TJ^I^bh&^*uilDNYA1i)V(0(;YWA0keS330 z2K6ep&N>iMRjH%;ar5MViy5t+{%SD%RR348<@wKxufKZOf1LH0ZSVP&60DV<u3f&R z@0Il5@aXFqeQ&$eb6Ad6e0X)ZYRQDZS(9doA3IR3wIfXamV&FC=aT4u2iCLCt9x?R z=D2ybBfEI(r;8Pr)z|I+q`3U~ymP%TCNIlA^f9q@eQIj3!CW?*DLt0<$Gw?#RDTQa z`Of<{xIXf}nR&#HGso>-eDdM$xKcW2(PW?PHt%nm^RBf>UH{tSq|s-|Ctul(UR*tI z<gLbSk<C+}wa#ka>exiBWEt<Gj3?)IvvKho<nWZ<&5WAM|HuB*EBhZydcV)+zsj*@ z>3ip^>*KG_{drHm=JE96Nh=yxuqIEllKo(3S^VJjQO5h(-PyO3el$$H)7`pouf^3_ zO`-bcVwaM1pGj~>8+>}es`AUzk!`+u#EismS>0PFu6vN|=%ULh-}z;4z*W7Tz-?7e z!zSO*E4aOSn`08Qki?;Ftg_Xwen@r)>1)lGF*x<$%*ma->l(Qtp1X6}P2`AqUTzb+ zDgUhGQsoey)hS2Lc^+lrEm>N^cWhza?ZkZUb;p+LEx2-4_u%t4U4g}%vkQLt+kg1J zx-?Yw@3(zIZAUrd#BaTQK6%v?IpLQ*fp0Z>7e1Y{E7p*I@x!xrJ5^@&$p1d&KHb0e z^XlpMKfdgb-}jlnzV+6x;zY}t5{AbG3UBBxRW=gXQdQY^?4sIhZ|1g3pSQYX>uj67 z+O<*KH%@k`lk3Wl&kr3no+qNPIBkD$)9Pz0*7VPG+!(WYLT<IUwC4=fTZ`{x^(DOi zc4b1@O3PZ_m48K8&Q;A^{7OduLE5?14@*S*YbRNT@3RP>^fcM%@#gFYYsBSlWWQET z*rWR9(GOAn>0ekq+E`}JsJj@^s<D0Qp=ncd3)1IZoV~>DQO9H+hs0zx1B-^;ZhV}t zrd&(STbyRnXSj7y4d)Hn^?&*<I-hO*`EWVUgS0#|R(a`NDRHY9mwj4$>o;qy;`(jZ z8r@$oT76pa^OoS7bV-N9x?hgHVlCs#Qa^TV8S}ff$=Z8<g;t7ea*K6)vu+Fj8U5}C zQLbe1PR{qc%rEu|{?K@=ZFfB2whe>C`w3w-&#!3J&$tj0#2L5b+m*I`Q}3A8yz@D9 z+q*Ax`|jJ{rWW^U=bV_5w0f5Lr!)MI=5TM^u;HljiuFHw^<(!vt+p%sdEEZ*tEcim z*XqA?X2^Ri;5@m3d)u#;haI+N)>n4CxpBJs%Ez+13s1~8yKD8VV&{}~DYyF$9z2{m zb)P}bPlF@>CHjwD_WQWeIe7gn`&?TE*0m|qpD)Y{)>LErIsMhKu&SIs5rMgnQ`{%= zt@N2BeR(G9r80Bx<JbCD?Fh3-eQlGv{M;VK(0Y*-h3{j#ZoPALfAY&boBNKecIOgp zmxP$i@OLvGy6*mXa;5IE`M*8=4!`}W*ZTTH>3oK3|AQvTAAP-mM<R39nqP~jeSI0f z)$yABhm&$D>#o}UIK(||cSevyiN@ty_djOrn!djF7kl6OKb`k$YrngLwyx~n&!7Lc zF|YPl8PC=!3aKw&I7hkvT&Q^`VRMCSHVcdSsl>kJCN(eT{N>M93ak#?q^bVnN8IK3 zYI!regKLhijp%0;>(^<s+;~`aXHxn^pS4qB(ioSRb}tsUkKG)W8*Ke%P4}aY&BgqD zcWWj^XF4tq__*#)@gZxaQ~p03A6owm?QbsSImUjXj&pw5)8Z|xn{~yzw{gc<thrv4 zx#g><`U+;t<SYTf$?*Yy_9{HF6~FQ<expoG%2RWJ32XkWzWKAeYvGKC1s?egor;C4 z{py;-El%&_TG6(7;*VqL^JD(K|Nj$omV(XBJ)btRPrv`Q-LCTIviHA!JiXd)8?tV0 zdbqWpYpeL$8zJ(N6GfN)npf*zc5G|E?5)gd_iZa*@UOVFZ(7q`vtPweGG#MZ_VT=3 z7MygsV0-ks{f?)em<wxs)iS#3Rwcae$E_o3a|*lrvzA|fdw|bP<yleR>P;#p6;*{l zR;nJds*9TaZ}JM6;vCV*p>cK(9>#M8eQdrtO`%W9Prp2<&~Wyj9s$8^H~M3`<<E%T z^Sdrxvn_tjNwH|XvWr)xnvZb5F1_y+f4ktyMxLs)ZAI@^Fh#EamMEI*)y@=aclcIq zzTC~Zo%c^Zh&k?%9k|0}?vqoykHu#nlv*KUe$zZpJ^p9t{-X-={SM2Y_#BX(z!%jp zLn<$xA=7=?{65XYHx$};eO~fSdp^&jIgj=fNW6cxxK^$Aa?^3sf}~&dS7&&#edg(o z`j@UV?c7wGyOY8XxCY#MQDxE>8BpWd%F?BIJo2fN#qEy8;m<_3=0DA^(^~L5)&KYB zY&ZRwe;e=ref2cD?!UX<{6Dwa|6RH?|Ig|CxVn$&^4tC2zCNWdd*W8$nj4$uRi+C* za9b%S>RffjlOvmRaokeT?C%d>WZz_*qWil^D)sit<(l)>#6Qz3Q|wvkb7z)i*xF6e zecYxeKiuCc+UM)>I`-;}$i}+qk=CBuh2Palr7e0JVDWtB4<q)lRj(iK*yH(W*71my z9((($H)h>+@Yie0HjdrA&!TCeD1Y=W?pCX9&$7~NvUGLdHXaIEzt;Qyw!DD3G1nS- zS}IcxUk^OMD=4|%L+X8&I#V4hpO)m|X`dNh+zRarkn54xKf2mdk^hNo;(lqJ@Z-N< zte*d4R!Tv9{SLPW{{$QOum78K@6SQ`n!m^Ef5iX)6sH%kzo7DE=v;>1)7-Dk{Uh3t zJ!O}ymqCiHS-^SIliuHbu71wbIhJa?GG+c9mm^8c@oTNNF1g~w%5hF7df9pfvoA?{ zXMc;%n?EZ*PW-y@-TdQ6?LNxA7Tb0_f2#RUn@7{G>FumN>AB!t`Ga@6^P6>bqT@;$ z_r)JcuR8kl`K3KGPW_139z4B0kNfd7V|%H<?cIC-OniLl(OUf%c4negvGWUdSH^s( zSmVXMu+ZiD{}`VeU8mIdx%58Hn_j>9D`#+Q>KU$QwU2MVVrfbgKc2T#J9ov-qxZK< zc%|*xQF=lCkM;daj`KGjY)@ZNJA0S31yk7Ko}dY@7bYze`2Ros{oT6U+nYYG+xhKl z%qyYzrpc>zys-#%+q7m<=UgMMmKcR?GN;W1Zo6pY+dSBF$UcFyll}CE77^itiycp} zE#csl6X4`@VF`B?NM^kqDzQ7}`1j&hF|X#-UW=>F-*^A|t?Ta6$!AObLeF@gi>rNa zS@n8t?c40N-!Hn$C!aGtHisdLM@nJOSEIZ23bF4k<le7{HcI`_ayabY*&e6u^TSW% ztlgZN=N9+mxk|8Q<K^jfKj&W7-v8;vk;M%4Uh%trY|P)e{`&R#cK>f~_ly5==l0yq zbA4<6tKOA*na)=ly&`Y#Q?tT<fq#0|u$o_dvGm`KHN5{zrC%&IpJ6R2D*blDGo8mP zKZPVat~As!(+>Dv+<%Aff57(avK5ziS1nQaJdyj=*B3p@{v_XZ%X!wbx_!sI(ywn9 z8x?s!3$>3sU{mW@Z1=?fy_T?WK}}K33SGYRNX_*-AKBd8GEYj!_px}ww(PYD(Rm85 zCvslX;M%^pTDDmGN!}c}{cE56R-R;C)pE2y%Aj)Um#fM%EzZqxczNQutEtkq<+Zo> z8;4e#?>#7yk)7Ywq^njh&;7dZ@sx9#IU8owtVvXUz08!$l2yv<8<SDRsonX7(LbK$ zr{+I$pM0G8$8?F6b35K#J@+wkXZ*+DmTiekuh@M|cK6!FSDE<2p`%PN;PkcPne&$` z-<}yR`~Q5&?;`)SodVbU^F7RDOZU8)Q?tSQn&0Q6>jJNC+m|S(d}ULy_Pf1b|4K`V z&zINoIn1kb>&x0h;rFb<c3j<Ye!Wa}<mtaR0{SD5?ON2fQ{u?A)^A5&UW^XE>dSug z%EYSN<GUx6hFmG|%3i2b5z4u%rlRMxu)Eu*eZSr1Uqm;*n<Mvv`CR$ED^e-nb)!W@ zWBIm)zFVrh)2%!Dq-$;eU$xcWKL5FSbGOa43kCLekD~WzAAS@3?eEpybDMqU|1s8| zXZLZg{uM**bNV&k=3W-B|5#*Ro|wS;dC$Z>=Vi2S=GLBg(XfB{#)Nqjrp@1EbV=`C z1Ec-#_sf^x;r}JEre$6^<Mg#wb9QoEmW@q#TFvsu?aXzdPu~j#_q}58JQz@`B>hx5 z>Dc*XP37%<*T2hiuKxM)LF%#nkL)hqs#`igY3W=+jniW6Cu>%58w-{M<XSo3SsycV zz0pD8`CVpv0~Yo3&iQ<`m8E~}TEpp=V-7!h@Ue+G$iwYp<%^&$!GeyU@c7q-i_T6A z)L1TXZQt75NQ?TXw<gxS&px;7MC<Y8e@--t)VVwi?3>!8;{WXDw;3sKwTqrgy;S_& zR_FO~#%nG6Wy<x(t}};Rb&mC467%X$=>2LTURxc$>u-Mt#6OCB&DZ}w!>^)tdAyTk z^75?5C!!knz0Ho)3+nxQG`s$z`v3TI6ShBPwqV*W&rriqp0%sw`OVAqKVKd_`hQZ{ z+9j*E_WfR(D7)Z`(vevQgdQJdES%zSplac{B&D9~eERu&w?*`cRg2wq)c9Dl#K>Z* z*NPvt6P4c<O^Q+c^U!r|W@@~^A=70nBB4E+JA4mZD;05@YQ;D`CVzTY&h9rFx9@CQ zeYh&|*wcWbAUE68IYmm|`~JE7ahm?K`S~x--7^?0|DD>;9DXbB$n~uStf}*@B$I`- z@*dj+SuC8vzwd2~xcuvux0AayZQN^wgwECfbnNXv@!)HP*NGX=d(Z6h5^a;wUi+zW z(UzB*K2u(~o_xOT@Vh=ag9|0<ohPL0?09}GvE%r0W4nFH-;eeGSYtc()&81fr%+Is zlw-x-IW>2tI9uXDfmLrmZr0z$no<0C&h(H~>gCbBdkc$MN@pFEKfC0?U)Be+0=0Vm zR~DNzb7$Vn`re$S);Uu;`>%#^;GJr2^PEF*rLOmrj%5lQdcmn0&1BtWP!|zhsgz_k zcd4$R-Nz)m@4E}^db~HPRHr>!^nHa1{~3neMG71St8;Rqt1I)?O})))SCMzz>*EI9 zcN=nlEuJFNS1R=0_U7X&uRCwp#%EvfIe9DW_$C`Gofo`8b|0$F?5?*Ew~-8K`?6Ah zxA(%_r$N#8CthOiWb0eo!M)2%XrV8QsMX~2zKqu2e^^iU+jK6MVfL|OdBWHCJ)K!s z+8%bptJy-D@8;vnj;}ckD<4Yb_1afX-Su~62W$Iks|#nIT-+#Ju~q82Te$CL52?J{ zb&ox&MRkQ+Dw4WZesg<sMb&z{=>*r=mBDkCG9Ry~xqJNm&#?M;yOdt6UT<Uf_tO2J zU3Lp@od1!u-saJ35#KJ+_fH~AZ>APh75@{NJ$KK_HHjSMH(Ru`dJDNFrmf-NQ;p7g zGfgn)(e1Ah$y|Ya+^qImdoL&|9q}tZy-*-k`TyD}slTRf{qpj4TKSx=Z5|T+1xEW! z?cC*`b`&=V%{+JJ?8<K<>lKW+80JkcITktZV@jW{!$IK{vFc|xUGtdnRqEb?Vrh=h zU9a4>JB8lbD9h%&b>gYr0j0J6!fbo*%rsi}HPdkAeYwdWLgz+iztZ9R&C@-5t>fyI zM?>daiv4hud0w$el#hgn{=P5je#`aO`{cFqU*nKDzfpe8J=^Ddf3CLw{Oo_!>gUxw zE@EuXy9DRHwkzDA5wI)m;|kXJLw?VnuG!G`{0cXpg1)f6&!5?8m)$olTvKt&dUon$ zrn$G`-f-o$sWM&c{&wl$_1+r=O<WUvbJx$C!n^b8>SL`z+vLo*uU*&MIa{9B@+i;4 zEyuSBy{U=VQvUSDy`IvjIKeK5vvb>}m#&O^dL_uF;`!5J)?ELFYp1RzFaP^`w^u-L zkT*|$tj^UNS6pj;vhn+O*&BE^_v8lW9m%YHm367h?MGv@$$QlbjwkC?WUNb8-M<+B ztp4NsJ%zv6|9{Q?$1N$o^#0H3c599^e@P8^@FDi|?&bx{ThupAb>6>AE#Y_0bSuX4 zw=(>@oQs=P7#V`?EROi>ziwg7^K|mRndR=x`;52F<6VDh!IFEQS6FRa*RiXl<6GM0 z)*aE8uSvaTSkXTxuX(D0zKVFTaoPQbpO3WaI5W6<WOYi-S8ob_s<7L=$uc45Hp8W3 z^R6%JS{W0yKI^_*$PGT<kmugabNvL??(R&!?7m2>d6lX9#Mvgna<g~yO_~0&=;++8 zsH#6n&R5eE79Yu6(UzfiB4$Rj=8Hw^E5*I9a;~$oPUeqTTl(klx!sdXBv=@CEB`Av zVRm%&5i$3cwsTi<W=-jl&;9#7t=BX+c4_LFjB}6noz9eQo-|pB?Kr1-uHcg!%R=|{ z#TY$OV(<}mRa7lG7*KaH#J2RToptnHktue@`LoJ*+`T$C{{Gj$`Y$K0wyrz;|K|R` z&t7h>|E+tHsgXO(^q%DU6Z@PC8c)UP6~5WCLZse%eb|;qn*|$whR?fH(XR47mQ6zQ z$jgWc-KW-u>E3QTlo|g>VEz@w=(l^Lx86v8!ryT(#P`(8(4Eumcz&elEG~Zgr!}_r zUgX>6l@_PPDy46q&6Dm7$WRD2mcMhOJ?YJ1@r*3J2VGgG@67Vk*zrS~tMQsx_0Q<1 zXV;y5?t3nG^LvLIYA1{21aq&aJ-rpv_#@_OuVn&Xk9>uh;_^P@ZF<6+9&;{uHDg=x z{2M;Y3&YN;E_eI9RsPq>@O$^F?`^a5P%fxuKfs=uKksGtwFC8m?4SQ1i#nJaEMEKC zAbWBBF&26GANO_~oV~-Uag}Ce`J-%!)BM{zidQcd=eaBOG=J07do^(m5$m?OS{6Q2 zWw&`Dd^fjb@dW<u%PT)xb5H24SoK3K+xf<WL*7TXr@RVt|Lb`E{*3BNx~EGg1&BY~ zHaREuvGbjlwKB7P67;9_F1>&LM_FvmmtEF!&L7rZC~V$R8?&`pf5y}qr7>?NF1Mc* zETg%zRfy~M*@f4hxLjA=@vH3(ljU{J3489;PKwcesp@?^H!pnGRJ)_%Jw|Ws=Jx5o z^E#*VVpqZIioDKrou5Y=wA`|ILYeQ!+~Sj*slk3<YG?6gUf=doSxMW^w+feDS)aH= z|GE>y9M%I8E8a3i{wh26=h^$%x&Q8+-&gf(#yf@&M_1<G)DO@5eEw~tUE2e7Ls2<Z z&&oxQCz$iet=cACq38J~zIk4>`251%%WEWdbNfH&+mrNlZBMEFlWX}m_x^7*zqZ{; z$o|H%MUTE6_414R++Xx|_RB;g-zP20+lr*$UGvD4zZsJe9U*6$mb)xT$A9m#pS@AH zUmU;rU2Ri!&m^87C$79%miJlr^3QKMMNh*@yNZq4dZSj!<g2{jmh+EuT~kGmjeZOJ zsaaDVnXY)bX!lCCZ&#<>mFaV~Zcm;)ee1DJc`^ET8Ks{{rf=0PyB)e9Yt3K(cuTd& zny>Z0l<gmCUs=2@e(l3En)hF2Ycse@{F8N2d2JT^G5+PYm|yEumwyv=yj5B_WAkLe zX%SW>Jj(ucFB!z22|S;&PidWxlh0fwzF#kjS6!K5WB#(}ncc&*mmlV)Oj^66*VrZI zUs%oB<vd!SuV;I-&o>Efdt{Na<=}?=EOt%*zpG9L|Gm}ecBcP|?B|7huVqbswEFX$ zyt(adCa*Ty^kil4`IEh8+Z4TMd$z}Id#Ys0KX3VcWU<Zs|96!8|F8eQsIIlO>1^fp zHCp{9Y3pX5-k~P+EaKFqvZo*3Syx?YvSWJkXLbDvQ#YY2AMCEktb80*th7D%u`=J| zk0Sopczn)Xcj_%>E}eJb7iW9(Cy8Tabq@^1-<uZ}zMXp9aN$Yw`_5-<9)x$rNO*gx zDlJ?mxoFX{D-p&Wz2!|4FHW1Y(<kiC#^cF4SH<5*$MK3wEUyw@D7|l+)Vi08IoIev zp2h#Fy6!DokG!prxW<2>&f`9txAn7s&Y0|eh{33A=i?1Gwwuf?p2KH)<3a6p)iUkH zzS7RqXN1^4opI~s(j)5@l-|>M{A%^A==lwwUh96XXgscaZk_WTQ`y4wiV`=+Uq_yQ zzSGilaLufcn2g_5ms#eO&*|P^U-Rpb`Fy|i<{!5GQs_JImYqTV$X=^oA@^B72<i*` z`}-+Q#=>)LabNhOvnTWaUFQnyzL>U_^$2&T{)E$ygzfT$+Tz!n*LIzhX7F1d%Cxj^ zo$u~bJ92{!)hu63crs^Jnej*Api-sKwdVi-ot?^Jd+qJ%4Hb=jdw0rIy*Ti6`PLVA z|BADwObz{*#5Mm^-osF7`@<_3zpxrv)%9K2nELqF=9f|&l6;{Do;uH3XjX4ve(l|o zHSX@LPgoxL-#fTOB~vJ>>W%M(fHQkI)90-<JTv=eN!pQ~4(sLemzBRqng|9>_N!TO znqOBuc+=OfQ}h$6{8-{w<a`WSx%rLTt*qH9znywCyn6oZ`*M2MSNTJZuVOw<)~kGc zC~qylQ$n&|hx74;?LrQ}Lu@$>?*y>rDDCmCxEE2jf90HGir4iS%>Li%XTFfMSMkns z#|)FN)eqk+$oS@&yQTWCl<~^9D>ugfu9jcLa4yw2;+5Lp6{n~2zAAh>;XqgkyYbC3 zN9kJ()%!$OJ=5Q5$hY%apZAQNSIoBZylWRqkTp=v=Sn?tt~KSN`G)5iNs?QngoHSr z|Bv_LFyE9LSF~p_`{C2Jm$p5#p0?Tbg449CMJ3X`y{~%(7w{}gv0L)lE;xqo@Z9Kv z_6G+aoY=UpZX0*ZTNdGi?iO9&yO_6by5G>`aJJpJ;imhZj~nLi(EHVV`pA-d>YYwY zujkABo&Dh6%`<){Qrj<_(_MW_^ya3%#r^VkANI=U3-~NbdA?!J;%$94LhG5&iez25 zTHdEPFLmGgpC?bIO*1L<nfPYTjQuALZQvI^W0>CbG5D?dq%99;-<g;k{8##aME;+P z{y7CNG*&53bJFWAmrZpH_qfv5nQvWwdOClk&|<?HjRRHZ{=JBNSeN5oSu|m>n)2lY z)u(J1P2BuTdNK<n^v`wvyW<`4;OD-%59YXh3aBy2`EifIKltR6y~l*Dj~)=ZUS`hO z*T53_La5<l{xkd9^m-=K>+=rlKCF>d>R4`jYFXUF^c5#!+Y2u)4*#=8vaL1Pv}#}W zq2JDK{@b@1n+LyH-upW2m`&-74D;5B#~#k+4`1`v_kj6?LZ491fVFaqzZTz|5p?A6 z#`FKSMos>H*FCD@Ouh4jr`>x`7)?*Ub#-pn#KOR{6;GE7-K^xTe*3%rSNSV*vvQT~ zz5JIr?$j}SaJ)6!{L9muPhU#w$<6uq;MYmV_FesTGRM0ns6J5JS7v->^+^V&#X&h+ z@A}P7?e=!|z8Rf!ZF9t{`A^Gk<nZ1Td?RIjF6+qdlT9AQyWE#e+q*h0d209@qhh8{ ztx`3Ieob3-Dynxv@*1_nZx`*-V==3nZBhMd5o7p<I%UfmyY>3>fA5)RyIz37#I1YF z&i&J}3dO@&mnu))z1?q#a8va+Z!?WQYVy&~iyEe!{{19UP*HHcxpG>`Vzx<>@_hJm z-mJcH=UUpfi=mnRp&kip*I&)IdiJ-T;f=-P8M~Cvbk)A!RO}+$d?eefde8f3^*^HP z6L@^ydm1|J)qlzG=588G<h7a&FDeiI+2St~TFtX^_H?ObR?|$DU%7Gn)GU*AzDorT zG_SvPr6TYSpWD{kW*M6u7`B%^y})I0aQ!C6(z#mE6R+63{C6w)u<rF^>T7;GF~8su zI#A-0cWQ^s+2^<B|G#7Xt2?VcI*UW9!uBwWpS_UgubC+mSq|<9I&-sN^`ov-y#=h> z+iP37r)M9uwc`#yv}o~6h5-IMpFa1!u}yJ5YqWOr*Jq6Udk>hL6Pake^20K-wzkP7 z-X>?AFW2>cQ`+)br+u;3PSd&CFU5Ekit{;dEZmpjQ&L!9Wpw*&%2v<oE1LiQ{(n?@ zYSH5yXR}Og=P6R9DX-Qq_4za9VL`Qu`P<_)8%#wumR~<ry<y2}mjceWN8UIXhs_CV zf4yfrlkRapjY{49LPFWSwFN618I$%eJMm0&$v3%UA3M{gaCTIEUEC|Ba=!6KsQUVa zn=F+7T+@%AS0SqucAGi=9-n%^A-RvfcYe<d`@ZP1HCx0#_TPHXSyqdPefQ87yFOX# z)05es&IR&5S8j0LRp@e|Z(*b5!<#Cz=icUz)UuK2%;V#kwlr6L)r5rl|Bq_zRvg-~ zzfNZzyMNyQU;qCp|2l8?=o@oG{kQKAe}8*${Qqb3xW7C1e-yMkTWy)37c&2)aHhUR z6z8Am3+!Hh_S|}!_jOld(~suB+Dk9ZZp6jx*>EF#_Op`U32AYrg+0r~rgdj}1&6LR zKk_T`@YCYI!TEQ)PI$?ybGXd9ZJ4?1$hyhe1^XHOofwkzOL9})-(ITqoV?3FcB#^` zf4TLZvptq?*&!31*8X1N>r#V9A$9wroxgp3SX?xFE1UNI3k)0WBl~Jw%Hm}+G?bf` zv!v92b=vy-nZ3D4N_lHX*T;_eDNZeXD~}}x=hf#<(XN-=nEzF@u+XzaaQS7==+dMm zeVt`o+aKP4X)gKs^6!GBeDkVa_1)R1Z}UJen~(SICQpa6TklA5o4nGg`o6BEmg$9t zXG)pg52roPuhrMADqn85?N0^Mzi0jvzAyQq)#JHh^4GpKE#7PPUx`pFk*~I8ICu2& zip#UamD6(E>o;6m_$<CPf_p~g*MqmG>CHKw^!?qoWG}X~$l0R)zuH7uEnnF8KV887 z{P8Bozt@6pMFe{*8_LV=+;&p3d&wl1txVIn&i>pKIQ#a=Iqv(~%eW_%rcFP5u9)SG z%Fk;*?Dni{onPO$=zX@mN8D$AxeWK0cVnuSZa11DAQv;O?w8lMc;}0bZyl%e+$anv z+OqTEoUl0Q6&pV#{(ZWqO<LsP<Tpakr<SbzxKnxVLzyqH7wzwCSjs%rtJnX>i49-* z=KKl$t^e8f#hsb1hGE+dtl`x!Tb$L*bFP(5zbIzzlp8KLw{y>CQ1r-cFyq|9E%f+$ zlzN26Q~#v3WqnqB;arja9*=Av-9A72l=*R$o4p>t-q>zj(z^TcHFmcJnxY*)ucT$` zJ{EI&b;9imn~XNY{v472FCQP5s#@DwZ};Nk`Zo`rEc)?MI9X`#E1BzU8|Q}yI&G4_ zd@3f&fTeNAXU#3{@?Tzrt!1%Uw{}LwuOoA<u5}vspIZ2_YM;lf5K-0b8;#?l7hDpb znWFlBce2%j<E!qR&r6SE;CTCb;<Sr}cN^wyI>zR{cUj#@BUiH%Yb{>LocJDLwy5tZ zZ|hODqcxv)L|mJ-+2bf{Y}ePd5$rjCv;2h;ZBKpee|XE@uHA8|Uu$1&<J{@LSLOfR z{r7b}+pp%>>bRN>yDM(*?m2M&?-BQHp}JmI=eWGvdt>$Hv?EuQ^;{xU*;W+BDOO$E zknt<B^r1!L&GhG&9Clp0naM1pem_d(A@j9vk?rbt<<AHFR!`xOIH#ERre?)Lj<5G` z+z~s+dFZ^-HeL0~-;<{N*wmq9Y`0<&KTBwre?Zoes})<zZyd>9zIbhuib>eibvp7V zeoC6xeVdT@z@_%2zeJGKcIj^~tu0R<j{f!1ymu4x{%;%%jZR**!I^W8pWR`_c(3}# zV-5Rxl|Ej7L}t#PzPHoADyXi%<MihnTVHN2yplNKhp_OX8yWGN<wYJoUH<jcLgD+| z6K`iS`{!NlE8E{){@ePbOm>Xy7E6iudLH-MS4sZw{#YwgdWYdo(&b-S+{HD!b2!|S z)-Q2+{v_;g!+hhc8TF^m+W!sxY^L*M!{;crx7w0bQjyP=KYaCQcU@j#+?s=r-yJ>P zCAu$~H;~6JVomhw)A@Dj?elj(Q~uPG|IYa8Y_(@Oyvm(r&-_YSH5BJstuU55x-sxg z!pEg``zM*)<Nt1YOPlq?_D>I3|6ZALzu*gN{rCB`B{SzA6|#A$fBuW}j;;O&J?B4F zarU+TRs8i)PU6qYeh;3-o)vq+TfDPiOB$!uF6ZADOipo{?Ykc^-Rr^38#4py{)t_0 zdv><=S;6MG)pOkX18dY@%ustfWr<)<?yWulXB=PLmiPM~N38LOy=sbn3+!|5K8y%{ z%`27dIM;jA??0cH9=RK&{ZqjD{?UgUFU`GLdAZo<C!;;<$#a+a9_*IqGQYkzdBvuO z8@ERkK5omNT$9gg7-s+E;{(>ej?LNPqR*ILZ#%6R8Gm0Rmh127@5}|YpKsXzR&PH3 z>_JBV_j?s*p1S$gU0?t9-tGSq6JLwepKsiCw5oRHd()zeOCJ8&aBqg!O!E&{!l&=) zp1P^+anG6aepxzO)pl}xe>eN}={B$Lp*cS}FU&E2xqkn5=Q>Vn&7wJL_VoR{+2CHe z`+Z%F`%CWXnYF?}3B?Ec9M$dZj%}O#JWJT~{|DzU&SraOnE#u{IrC=!_ha*`U*6yP zc<bXk)i2+<|3Brw@0Z)=dtveq1YbOT%zWqY?R9GfFMRyVy}LC{SA{q6F2}Cx>E_de z_`JVKZN9kh`COAZ&z9yT>agxkoeMh)An1To<4>tQwLAK}W)_v0y`PgRX?IZdT8{qQ z58df%Y!wCT`JHbS{^XI7czs(`Sk-xgAA9m_GtSv|Mj^+JT;O}==x)7DEWBp|yL$Dn zjdo8CxN&Zay1rdIkK2#OlI42rw6>O({PT0YgZj?~v;BE>B<W_+ksd2Q=1oTur61|t zzUBN^a)wZ3@?MWN1#6qhuXio_aNWSS`0V|f*=EUw9-H>^-a9F$#QwUYq~TJsx&Ea! zS;dV9bYK2$HNKJC_ITbK#!pski|_uLA(pPW?Vre&-52i)?%?lwVJ>y^)qceTO@f!b zRDUF>tC{H;O^@>m%v~?BLizCew6pJab!Zu%>k;6IK6&)b1&@~XTCY9Z$|f!9JJ+yH z+5ea3@$VfA|F&yHcStVa$o6>EEK`4@<V5A?w=4l$ig=gTOp}>mkiFBf{EMVj_XE`@ z1swCNG<T-OHy`HAWO0jE?QmNA;H~JCY^GTf^Xp6}u4Mnuu_usYcIo|77cLm&J5D}% zq+~|dEVhPe%d-MzD%B(?Jr=+DW6R3qjG{jkxv34y3i)q6i0^%(Vy570w`JzaGY?Ch zSZ~cyI%}hHecwx|Gg~gRG_3pjc}863$u!G|!`wIXF70uj`1#ORhH5LvRhynPthoKm zYSYEvXRWT^c9+hIo01%R>-Ft@|4v85vcJh(K38DL_Or9|&X-G{bDsUqz4rQ<EU~*1 z(b{S6Zj`b6@0=4jwK4Zk^kW(G*O8plcPv#)@Atl*-6N(D^7L(<hswN-Gu9_QHhxu< zfBajge99D-?R64M{Z}_6OfQMkI2XUW_H%t*g<Z$3N{>2$-{rTL8#3AdGtRGBHfv4H zU#EqwiR;uSPJbO^k@V&k_qwz|Q+9#Ed5n9wu1Td_X;3@Y`rk$V(WPBiS8Z)LX)exe z7sxbMV#jlK3D?qEY5A<0PfU{1MO<ZEUoZM8<<3{*XYBg%XuS~6t34O;)j4z@7_FIH zDZ@}IsVE+wbEQvK$8i$7Q7W6B?^4UJ+}#Cgo!?ex-I!bRd&R9^TP+h}^P|!?F}C|{ zJ$hwfL66D0^z^!!pVN3%Y(&FL^@<irm+~G7crfKr%B2}!E1kDYUQ~B`SFvQ}foJcy z=hz4*{`OcZ$!L@}kE3RTqNKe{=&n_5q8SWZ3>&UU7wN}tZdcfl%)fl^+<uwOy?5@e zShC#Ea96z1#%Cc%4!ib!xwl;E{9Wm44JS^u^~?0ueOWlA@jc(7WBH-gt5)sq{=~-m zK50ef-WyAfFHd%@U3cymt4Q^3k6T_j?*CtyKZ)b2TW@=rX~u)u!LplWU79_2$E9oJ z1*|<>yV$hI>~d=Q1U5;}M47E|W(zkIg=!bw6KUY?UD(SmVf)E!^|z>;tqReTbeaxc zytOKAgT%RnwM^EzlVo=u))zix8TW%ZYyOtYCN2^Q+_#!m9|<~~Yj#Oj@?h_(>;Hm_ zWtBHBcAoa1`<LYY(7tas;}kewEI+&RYTV4M-6i+rrvC^m{<B23NA{T7uPeD$Cg$__ z@_w`UM#{7=Tkg52>XgqsiJ<LgcdTJt%dPUa%j$FWP2Ce+iH*0siY_j_XZ<evHN)*I zFXc<0C{Mk8>&CiWziJ&W=7j3~E$c8md1i9L%FX=?Cq8b-KdJQA!+dga6@T?1nZNzN zp6oMhj?h?r($`!p=T_#qIzGmq=jJSz@nP6}+1t)yiDmL3;aZE-{}1O^{k?r@&szH* z$_9B{KOdBT+t#i#N&Np*u|@UWx8MFfyE%#_f?e<aHLaEju1ckBzPZ<?@8;hw{7bm@ zw#9bu-282Yt8RbUA!`-$b?x#SueQ}BZO-`Ab7@y@tl58=kljDOmDx^v;3_pIZ?+cO z-BU+&i|lsBUfDdqrr2<2FoUA`|7GuOwtsO9XFR`}Y0kxy4RaT#K6-Y@cag~6<oWrx z-tS*v&bn)E|Hj9bp>@laPPAUPBv$2X*!h<#aj*PZ-+c~t3IBWMhEnX4CqX$mx>?S0 z{PDNg8b6+wPW<KXlPs9_f5Q(Q>4vPSyZ-k5ZDjtvWllqp_19gzaj#BqKdUq4+e7EG z!b=;)x8M7zevxD0&m-HPtiQv!;>w4tHyzBpzxq69N8i`jBlt1**-q|&TzB67z`dEP zM6+)xsfT5KQR7*V{c^_seG&|tj^(|1|M1gZ`xWue0)B3duPXU9H-7h;p9?F`t(`r0 zRkqW`^75;~r}L&dA6pd4ASrMEz1?^F(`&}98%(kVe_otu{Y!HFrjR~`jOXd<&eGxA z83TN#yKS7ZaJ!-Ay{F+<Hcl`oEMBiV<H3~QvUNX|Bs1ULIC89lb8dBBziO+seui@1 zGx_7!h4XZ$CdU3Y+y7f_rlQHxJu50JYY#P+X>(59pB22g+>K*GWw71TkbMb%BSZv5 z|7}VY|2>6o*;9XoM7f$7t{b=Xf8`LfS5BQV!KQ1%q{k=Cmeug3YFN+B{`xG=Wbs*P zlkbsY*Oq<mf3##i)5-01$Gm?2RrE^I>yn$aTdLn?663M$8?>HT%{viW)o0xQTIt5E zck|5GX1}|Y|FmJ|&-0Zmo9zuA3Gz$c5?%X0{oYjd7vD7nd?bEXC|~`@w?3gO^7-*^ zjLXH}z5X3*@KWFt|L#PF$x(|=Upcz$R#FaAR8MSghuAH<pB}Z$Q+v89&)P)%v0&By zn0)`=gD=bXxw9|-cKQDQn}_cnu?ReHep1Sz%Uh41*jBVAUVh?Y^#+H7?cHYjTzXYM zcO;(Dl3!Q-gVUMoy29t@KlFZP?hCM5mbi7|zZ{Q;n@p-D8Qa^<?tOi`y=YQr&Ar+) zyKcBjSg-u{F}10=SIvUU(6szo;X(a3N5U?OE?E$#ocAbOPkA!)7a8#%4yR|l{J8hR zua75Bs^8$!&B+MM3;Hm5%RkTf$!rf-)SX#4Eq?7osrvV;9ae;@U9VD)-TmQ9$n}NO z`->0h@7ey)W8K-ObqdRMFWQ@Ptt&MQynp>`8rOBPe+(gQtkVPTzT$t#yKcdYmzT}b z51YJVIouj>WzVAN5!d$!g;<=ojr|>cz{id?IaAYqonmIl?ChrF(^aFd|B`gy|L^PO z(`DK=;>sJ&zIncA_x8DeF7E&ND?a-5sVE&2y}e;O-0b#D<9FVXy&&M^$zyJozfUdn zxp!-MbHp_@LpGkmdCFqF8+6v|Et`1fY|yuD&M}YO<{uT+*!QA|Km1jK(36TKN6uT! z`Q)_F>GBMvlKG3e-XF@zd@zfNXTPOfPw`wG$Ib%_zO4wjD>3!Uj2goxtB=f<Ki<yb z)=rdEaq+)veNxNpq@kH~$L+ein!hF%-sG4pvd4Yr-^Kj;S@9v(3CAb)@agDx_Fetj zHM>&#uiib5y<bJ2Cq}3o-u_m2+uQ}(N4n)#Jr|9?GJE~|AE)K*{@$#AF70>!i>!Wy z#K+U!9$U{Z`B<NONj_`-+tb@5KUj$!h_y<u3=Om{%974F6Mi^$;*^6c+YNu2-dx6; z{M;z0D=SrLMyAxe{=;hy?3K+-|MQix(Y2S|`Os|PGVNV^Y(kdYwuxQ4?Sav?Hk+pI zU5D~Ke=7x4{6Aa&p{cxHXo1I3_T{oxd={3UmIbTUv^96v@0JKTFgN$5;I=PiS>|l< zM>S5oNq?!BsZ{gk`dj6Ci|$pNyFbR6DQpb>EL2{m`z(@Ucg`WD-@J~+OZXqGNjltJ zdg9#OY3FWSS<Ci_Nxx3dJ7D$GhvmFYN-meb>J%j8zCZh=J$c`Ti+0yKr|w!AruygF z@=3<iE~^@SeYe!@7!UKd$Vo+WDjxrT{_k!7oPD45_m(8pF5dIu)59m7!M_Ssjxfe{ z1TWqnmZGv#nLRfy^7hBYzEZ)<m%ZGm%D45_g{nCl0+;Z!T$P%<ZKk|^&Vj8bEfycR zu5ZS>sAy(x%F~RxPHn$GC+aP?`AGlXXpx}Z>}Y;Gp@`A;mqn#!|BmF{wUf&~TyTvu z-4*#@S7ZLc8|6C_3|8Kf?B2r6CtjBGL(MH`Rd^o93-<np2Tz%B*Y>=BwZ7={&I5M0 zeC|Ip6{|dAs2>scVtLME-r23W2j_fkS8ETut#xO*g5@9gsF(Fmmhby>z5mtiZ|v19 zdG8s1B)q@BdGBSXFUe8Db$NOgYq;aoZ>(|CeEw@=v`-W3`S_PLQ+xe+CdIOxn7uz^ z3QOL}gYrqIa_5?euVeXd>h~zh<@UbSVfO?WuXS5Jz2RnG=%?`@aB+YB2gAu9&iVJ& zC}nT|x$?uY%`s2%PJJ+c&vp5msPkKgVCMrne*Dp>uhG15bB)=jtP^cKCmdceI*6}1 z61s+cyNS@v>5AHWzY9ljU#XH6*2%~<PJ0kyvqpFNF_!B`rtX&EDVOKk=I!~?@{h;m zmA!Q{6bzT&v+JBcOTtKH-rp-`+g5*(eN?u%>iJpq<@<lf?<@QDW4pag?JND7A73uX z@2>yV_x|^Zm$&zQe|mZSpYQAE$Nhb~`tt4k7werbyq>YDHcUBYu1M$OPshY-_a@%e zbJ*~myK&Ar5&1^R7w4)I^FMr4VA?cSL32{3U+pbnu?tr==B=qHn7;VGmG;HM8K%5P zAGm%zu!XOFtF2hV*H?;0A~$XFaz*amS!JQ-uOoYisW7C$@~z>@3p-Wpv-W!3cbgNT zeOdGV-3xWB`R!_qT{~xs?)X?4FM9ik>5<Skk`rPiPIqKZFY61GNsc&pTXEYBXQOO` z&AijZcO_@eZC_$1eOvKa-Qfv&Gqm@eed{$_)T{QZ-c<QrZ<L=*StQY^D7B#X`J!8E zy^Z%>Twm8XJKyACWX+_@aV%@Cw=M6_d0l?=V(_xsH|OWd-Py9!U*r4H$J)^=#B(^M z|Mi@z5BxvP-~LPd-_Ohb&o!SvZ{G**e!um9xa!MfR2>5x-K=*NKe=(?__W9Ft1fL- zl<~e_c4niYSi8{WAa}+6clS)rUl({r{N5D-7cq8|<2yI~IFPtL>t||SQped{=Q7X! z{;`y8&K}+@=Ms~HXLdedVb_yc`M5cmsXhN!lXvvi_YKAFA1~Mc&`1b7xWMh+4EKKd zs+tPL<!9^sJNwG6Ox89$%$WBoWA%}(QG4f}`q40T-#31z4XkDIszujZ&L33N`OLND zTmG}eiUaP)*nh^<id}cCI+OWxi^9QaW{-DOOkDgvLj1hmKi@0cpZ=6;^x6G<_4Vz0 zZU5f!ulW+07oKK#;@0U48v;@fCO55VJ>9*=#5ViSwC=0^|9^J({O@9I)XSRA|90n% z6_NK}bo=iuWK8lCb31BayXEZR+^S~+{M+s@=}cU3PE^ol`<?Ke7Pim6eanko-H_<h z`(|qJ*3TUMw>EE?mH*)B^9>)K&#s#PgwI6(hy}xy+_MGWY!CLFH&Wl&^m1Cx-M&{J zTl;TMdd)lk@}=!}q}uFvdUpO>_bWS#*KE&^8x4Z&qLmr(YubKCy!^5D(pGNo;}_Y) zk8fJE<Iu}}+UlRRul;(K^=M_R*pqYDx%TaiboyRc8*#->?X~aO#YdHLPd<5jTvKeu zy{V@0N-dr9S);_Qg%0juxx<y0{e|6oQTm&j>}2P;+D4kMrzRi$?Y8~F&X)C2$HJDG z^1Vy`E^gPqazpXG#lLTq@2U88<@=tBs)_rjyu7xr{9aYnuS@#&R<$p~?_X_aoptzC zf92+d^&+8ujI}2&x=gF9ZBUr`)9QDk*aNQF`Cr_gyE9y4ogU~?{6A)Kk>0A>Ki+~8 z8^f8u9DT{S-#|%r+VNNS%WO`ctSHdh*Pt~~Pj6Yl^pl@8${Y+AC&%wx+bi#%C9ka* zqL^|`;ZJS#YTi#rBacfYA6mO&-`Oy$XPoz+y;;KYaqR+`?jXZsPb03rne=(eq2CwS zHpucY&Rtd0Y(6c$YRZwts=*3ZrmWNAUmv`d#hdYfc5aFDvis#fZ|pCgpFCw>({qd6 z*N<DgoBmU+=!b^3;7NuwY3tNuq4w{8ovqcZJ^fbFzU}Z~mGZljPL)NsCpFwsyJ_`q ziPmhJXiwLbwT%y+S&3!*6qo-M$bD^+`sV%5f2qx%lP`39|Gdq8(u|wxIT+l97W#JT zeSOn%X7O&;{fhjbuPCP7(etZ0G*?C_*wp@FSikg@ieKuYOV#Vn{wzAB`&{yPwSMdz zyN|K_{_}r);a>jxZ^X^${r{hQc|E`O`Ip)MukXHkUvmB%q3;U9r|%2ZFPEv<W3cYD zd!r@a`y!cJCz9>g^k2=@-fZ00oX&CJ)#~$ivld16GlZCXpR8EMab#bg<iY(J&2bX{ zqZ+PpJ$bTea^{xaElrNoO^oYatlN>NXecVb{=4dm-dCLa?Jm_UU2VA0^a%rdTI_Wf z|FhjfGDUALF6GsEtT=Z)_W}0y9=WR*F2>DS?Y!1lg5l2L&TOYC_Y&r8ni4F3r-1!^ z@yvoJk8VHRsW;2!ZFqJb<MqXB9!eEn^LL)a_0!bcWcB__H<$kIe8b;xB;BT~N3oCX zda~U!fxgd=V)`3*a_nALd2)SmMt102j^CP=g5}%ScijB@SWx2encAv9%>NH&^Ox0Z z?|q&Gs_H8A%07Sf`*-8~p1OnW3~>U#k~UmtYu?;(K|^x2-o2d%3@4Zie_htL?fmX< zEXR~OCyBbVHYpZ2X3N^_krK0fUZ7`DbSrlLGUutRvhM;p9=qQCc#GkC&tWB>`o;MX zNxM1IZY{r)9GdTTTXODk*T$?3Px^yb<`%CupX{#{^GS*S`&52gjV;04PlPA%=H8xb zBPy2uu;|mrAA<UZQ?*}4F&h2~ymrIeUtFg8#=+u)Gt5uCUcwsjzi>fOWK-0o&y%zD zCY8&FEl6RoNn`k0l<6cfHNr11!ddpoJC?ppjtjRq&v`KIO}FRXlMg37R+2X|T^O8U zQ`x*U=8V5ofJKAuvp1*3MYP$!+wKX{7yqbS|8n|0%e{-PU;q2@_j3Q*@7~MT|9@QW zKmX4=@!E+${r?>dU!^^l+i_R6s1vWe>bA{}7q>o3dAfGnzw|!^EDs-dwAI+KO}oJm z#@o>}r%5mOwzSCHxmP^+vewW4e&p*$vuvKnSC-70as7pGc<HgT#py35FaN#Dcvj@i zp5zt3l*{_W|4A>I#jR#H!^`}FvH#s?&3lc0Si8UQC^#bj+GW?4XS`Dmt^3ISe$s(l zclD|EF44)`5)JfC+4Ytw-8)(y_r%Tb*ot|qvolTAt9T6TzZNev`gK6Op?3X$hriWN z8Z<sGU#8M#>Am&#v3p*}S~u9)9dfLFur%Axb=e)pruD}g_LZJwU%1is@UoAJI@0YQ zmi^cxcT8Mh+qUVG@BC;uBk}h8u_!?qt0zpMy7Q+_o1Am}L6HCb#e7U9d)#K0IM>GZ z*iZZNwnJ$9ajx1&%a5I%J7IIb<Fk&0ZJV!&zn#2%ub+VPdjCH!#r^Jon<<`XQyW>X z`}fxWe=oi~y<fAZc0yOZ*Thim&lNXSGKw~w3-h|$`J?=D!AZMi7d}2}{{Da=Vm<FJ zCFkhY&ZTvXC);ml_XI9enEY5Kyzr`oXvSI5FKYzl%x}(0|L9dZg*Q>zJSR^6<^Gam zUNhwHEK;BTHBC=;n%v~h2}QYWL3{KjX1eDE7x`Y!HPCz*aJzhg&;QQsnvlZROIhAK z9dWQdaJ%w_g9uM4o8hj4heCE)duw95><ZuB_x+YB-k+_$>8aM^#{T}~wa)7&{e6<U zrS!$~+2zRrr{W5|$}DOoO@3v$K8Gva;NJJ3WBm8Bm%ceaub^kuk?FIHYE>r(_f^(@ z__p@goxFLw1$X>qc(C*K)5V9+`~6=l)>i-cR+1ve>$T$RbQGALJqdAIuMwgd_Vv_e zj+B`0^2r;Eg8KF?jjhr<KF7Iz*R$e16C(ck?kRd7@nj+ErN6x2a%^SU6P^j0TIuQ3 zw61Jh9~YW_wOy<3%9NGCmk&4V?vR_oGn@D0(fCg{c|4WHPImK&=d3Mgm6f|H`_4+! z%*)_oc~ao1bFJ=PF2A#qB^sqJ$mHopx~VsZomzVTcZ!GM@;ARO7=C*8V8-_>b@BGQ z8#T90`6GIY`C4GctNHpu4Y!ZZW;>xiC%D)2m)kn7n4C$R-(P9>`~Uwi_4-%F1A8wY zxBvR#%j^9=`jTfBB|Q8P;Sv7#`)#dY>1#Enao@J(PJY6lrZwwIdHjO!8(S|pZYbaU zD_-sN!$`|*hlKNf9CVDd4%+d9@6*)jKNj5CS{P}UcH3;`gN#0j?MIKbcm187d-%fb zW6P``m|Y7rIQ#Wjr|0#ma?iTTWJj&+KTpH+SFmj?EecDYGVvd;bfRIS<FbS}-jl}D zcO>=eTvXk4MdPe0D|6>O-*2Lye3@n5CG)zT+A=em?d2lA9L=VK2B~*$o&0)G?9C%r zfoC_CMZZ{c{2s%%Ue{cox4y5J9GsS^W!QEpI<W5Y_N&~l%RcK#AG)Gg?q}^I<)_kX zY+4pqxmjx6hd!%XbMJyxk<}Y^?w|CwNme$&z<T+mzsLT6eDP)B`u)|v9{vCM;>)r8 z*QdRC%>rsHrYGffZ)wz4+*-@`QF8wY>qW*Z9vl^y6gl2-`&NK@<FiT2zD~<hmbcU4 zDruFRu-;3iQipHX)v6!Y1xl(ul%3yR$|U~#%GXf4I|X$wQd4RhuJ00L-ghhVirU7k zqou3OKU!a#X)eqyYEkUf;s1s6YIeYt01GoyJFPO_eWhVZcP!a#zHGeCkX!jcdR+m# z^eh!7Gl`l_d2ZXi7j5iaZMwU(d;Z^$gKNFynkEYSI$7_L^3Ibw9M!)^yX;<Omw{!n z{j?{pwL0#9j+E&9J@{hz{`czj|EDf~o%{QzMB`(TO1rAs+ow&L_HjF`)rmNL!T9j| ztI^9o#qSc>GGmQ@)YWyZey8p#UGAGu#^9IqXX-tJ+&?Q{eqp?=I-S|%x^BRv+QNyh zg3A9MsmkB~cQx^I@3j`T$5J*+Yjv8JuRRpM_tQy@A75AI-7a2uH2%Q${Y}Nu#mpf; z*E2tIdE6~xeEGua;_g#hOMdTP^;%`|znOuv@66+zwtvTNc`1)~PBZ2&{jq-P+4DE% zc0d34e43M}!PWhT4n>zsT!|KX{z`@G{Wh1p`Agm(TYYx>oiN1;Yo3c{TWibP{O9fD zjfoH{YUdNVc=&Sbj1}dr1(ync|MR&zLqjS#_RrGCw`*Uozx?TXeBmG6qkqGv?6M6= zc)IObOO3?(syoifOH$tOFVB(WH@{iGIR4z;1lwchmbK0Jv+Ku+jCDQR+m#w*!%p@2 z`dZBL7MIt~{u5oocRPOVRsOvCXZtN)Nl)xPQ_q^Ge%>=a#=P)^P`lO7#O$B{xPM)a z6Yo3uD|@@hxBLYg3VF+}W%H<I94UC0^_)p+)7EVd9!DHK@sT&);^)zc7k;guD--fV zJ3Q~}@&}Xio7+y^Z_pF|sKqDVcGXX>V2yQI*D=F~uhW(;t?1GHIVG_{aIrrxqminM z;H;GGaYYrME}cv5J+mwHUH5_dr>F0RCj6N8XUgjG>-Ud%i*A21#fopU?#=At`$^|5 zV$VjuS<YXyWAXB~^R<f=4;(N^zsqv@sMVuYvA<oJa+CK2F7~`o9rGgpt^4}S0}|#5 zCwTkMNECPPxq9ov4Tj@Wk`HwHPrqB4@FF*_?%AcP%Z&?@cLk}xIIcBOI{A&!v<C(S zm;A53mNBh0*!f=8FZbPsjq5Wa*!Qw|q~#gRpM2f(Z~60Lo2}yeS&Wk__nqwBG&lc< z>Yn2($_1Y9Tykvf-|RgfL;G${{K-~-!0veR_GA_%PqWI-45xQH*Urhd`6|I^-TRm4 zI4`T#dfgkUo8!`c{kWcI@n3k-#s@Z6Z9Z=_TK!<6f$`H>kL32RYZ02gBP;ir4D)ic z+|#CKxh_=QcbsVd-1GaI^X-yNKf+t?$q7Y96mb-A1~vF+?k(o-XEV9H*y^NRp7~eC zy4@SICI39*So*qP=SKE5@y>$JG|MNoDj3v+zWZ9`H~ILEKc`(@#v~W)o%~TKFE0P! zMy@-b3g1n7drxK|SJ~WrwYZ|Qo6l}vr`t8%#-{&3=7%D`vg;fdJ_;XxYqH^UQRaq^ z-aBVb*igE2u_4pf=Kl|~*$V`=fBkI0^jM%mZddi~<BvJ+?A-PHtp7XPpNppV$K~t^ z`<C?Zdv<Nn8K-BV?tJ@pur4pY9uuRpUbxKt&DHs?Hujp#_n%tJp5WwI9To3!$uIOL z(^7r8iyt=Yb6<LQ<cZnV<9~Q0Tt#fOUqpXZ{XH{wUE;yX?{ywd==<~Ovv*xxPjpJM zy6%gs&$b!-kLjJICuwr^&l!P$I~Bn%yX{3frR}W6CQNpZHQ|(azU_Hg<?5ROCKcyP zywgfgP7ewyi(xB!sG_y*GPB~}=JxXNj$I1P>x-VMue{dUcSVm+r*n_0vEIp*3>!<2 z?}{>Gd1(_j)1}9CQr7O<=XP`EOuuvXZiVyBsypSZwl>dRS>3p?<k=?{zK~K!B~JNJ z?eJT-p7$vJ>gsf7e4ni&`0@ME{Za`(B)5OvE3j#OH*=*L+oGR4m>MQ6dVEa$rfh$$ z<2>zlr&1r&55o0&N;!Pt8+upTiPk+l5nJ4!o@YJt6n{fVjLv8A;!g>6aeEK5Z2TT( zer@NL%+N<Gk|(Kz?DD$zbArllt6IYz-{Y$aZ{6x<_v`v5nB64b_)uc5rINFQz|}vj z$CG>JpECCSb!7E>ZHLU@y^+@*tV?#PT5;q0(TffTg(q=e;0k>_>v8?pz!Th`6j(Gf zWA@HpT0BQ5kHN_+fa~pz%gc^USe<|K{cCI2qMXh5YZ5iNidMR7T$ym1`LB{IfA_xM zj+O@(Ce7Cl6Q4TO*))8%TEX)x+g`X8civ{msXMKq7<2LLjvGd78_VDJZ1uDcNbkrI z=3jT?XQ$)x?uU7?EX~h*Zzb2BnD|)cZtu}0kFM<aG`V-CcHhLuVW*qs%T5#A8=P<d z*-fri#q7D<hOhJV70$(<tMbnLvG$|8xWqcEviGkK$DQMQGQ;vgP4nR+AI}?3Zd&JD zy>_|c+}Jhmf37k;_x#nG_<M{kx1JgQjX2)?<8`yK;;j6;wrX+pFDAWaD|#v8mY}}P zPUeQtq<L)X^`0DxY2)8&opSK;gZGMzuUaQd^~Al|Z_GNmzxUk9=dY%T&k5-H`D<lL zuXaCsL-YRbySJ`qzBYLLyNl`JuBZ2G`;*>E+a>U`FL<-sV#PjX`FiuFh!dZ^j;}lW z(fh-X<K|Tl|8&HCX*n`|`tvO<Z%j%agczs)Y*=xv@an$@jBDO#E&R;B+UlM`!Q5^8 zPA@35-XMK=r{VW6jz#UZv6+gW{U0WJPdN7TuxklpwV&zB1J!&z+lu+Z4~uWVJ?r|T zPg07^kKa@#{Nw8DEqv{~>{!5@WmD&6dfFQ~^nd+)d#jweTiLZ2T@zKL_&PhI;uW{I zy%jLgi)dQpa^KAEPTiMJ&HURx=YE~j$Kd`Xx3bUu!TNvc>;Em=_1}Keh7EpaOqE}^ ziTBPaiEyyk`0I^=WP4_C@mzxmn_mR1zS3I4%H7JFd!EU4Zp@qXfR{Cnx%U)y`3a~0 z+5MJP(yZn};CZLpyIeO!UN$%RXw4jbY~O+pJ3n<q7tX5Nrn}wwkxF;o?yQ-oBaT!( z_Tr6D55N8>@T_Xf?1u~O#F+w$mM)t+{m9*aXDd$ZyIud0-Tvvx-aTCoiV?rmmgY*o zEt4qqxw+r%%#7e;`P*jm$=WRAZQJL%ZQ;Qm?(<u2&HVViHIaQK_rixg7V!bg&K9~T z7pl(E{<xvb{`v|&&wFPX&*=a8Vs!4<v4&vIeJz)CcYeHfjybN%B6tpa?-R3}^qofj zJ?kr9KHkPz`;gmxzl^rgjFbM>g%c0k8s5-+p|m`A&Xkt{S#JWj-#1A#TbOfieec6Z zIoyFkeaBBt{`W~OgF930dElIP^_Qz}w0`|}dd>khQ@cKIW~W=X0)i)PFx;{>Hviv8 ztyt*;!Yg)8UR<nk{gC+`ttZLS&R;IK-E$NSY0KR%Rr-g?^xYgiLnfc<54S?z>+0;% z-xyqOSNA%9?~-Jlt!ppc`80uR`a<6qn@b-(xIgEkeMwz$KmV)~%5pY=`F_q-`pRZ; zbN&6UX8&tblUccV`Mg~xRw+w)sYg#QRBHQf_%k~4xkk~(_evk;X{cK5zqR9pOzPX+ zw=6GpuC_A~xTmL4QJVUH+rnkCbNY2P?|wU$C%XTy_vT#Y#eF?r=jg<)y~?N__IUBJ z{lR?ay|z|vt;+eV`Qv5(x{d2}XD|J-rF!m}2@f6}+Bm7<oO8nUi0K#pY&u(b`j)ru z<o4;kKR?_zykfXTqxJP8^BpGB*QS=VWeQuG?sNZ>lf2v|ecqPK9=f(lHx@=2?OOO< z!fUIS$dBrpX-5yelMwUo4c1^U+^x#X|MblMr%wf?>n85~z{C2>A|>#UPv-2Py1&Qk zKYhQa_4MtxO4-KS{0#H1+uHy7``G^TulP9bwl9(44IkR>Zr}3pq<S~!{IXAr-iS$V zoxYgm$xXKP+w_ID{QA-BH{a#Z;|Qjo@ktNdGrg{NPw&q8G->872h~)^uNIzbQzjR` zdX}dyRFZd&|4divC)df7vy0}J{w<xbf6G??@PA)!{G4R$ng8c!%1(nz=l^^&$@{6E zUM3N5WU@*Bh{%H(c6;uze-VyMo^s2ud``Pfgzm8}NAa>sxmxSl*~zW*CaYC6wX1(l z{3Xe}E`H<6-q%{r-=s~BMOr=QSkJAnw;-hEAD4IDGsee%7xHeH($*ZApRlnxbmKiU zTP=muXUg9uRmVSeURY+YYGJumR{U|L{O+<nJ<L|ew}l6@GW)-N+bz@T^1Xb^+$oLR zxi&A?S_r*r?mL*O{6wqJS2p&ToNdi2+4>y}NADNME67W~D6=d}{?t4(^_GtN!rHZ! z*8TfmZc91%G2(cOw1(KBqBqx88Be`g_UGr1>Hhyt&BzPce<dkz+5Fs;HFM?5V^ZP@ zdLr`0Z+kZeZF};RacSeeB2#&z^)<IHY<rdRFl^mD|3@eOX?+%JHdFi(^?6n?lm4&E z>vycZ(<cA<cs`FUr&y8jgXK%sUAv~9RCu`edumVYY4yCX&x$`BSzzdVWZwR^^|d$u ze%s-=a-&n+(Z0J}@g=e6?=oDv%Tp%EtN7=N?0Li8x%E#|?|sp$>Ew+q37(eM`;|rF zcE73RvST9qr*KUR>utP$)k&lDIp=}Qs)=upg>BtfV{~lcy>I=K8&`3)tXMR!b78k_ z)$`DG_t=~dH@9C%&|<sp$&--8I5p<?{^Kgb4;mO}{gk`)glEdXt1<WamTiqMT*mR@ za1e{1_o|~;k9XFebvyM-tm^3z(}|A4ces*%u~t4m9@W$@$`|>3!@KjZu4P=Gv(j!# za=xT_@JhF37yNv(_?fmz?LW8XTJW>N{ROUZOM};ZR=V}fzN_nCtnbN<LLHxzR=>W? zvRv)jqA5(4wH<b*KTZg7TW8&Q$!@ld!(CqIY~#t_c00Bun!7dl7(bgLzx}1DDD$pW z+9B-k+D>S2y77F@YL@>0W?k=Oo!#4(*Z*A}|6lpa_NPDP8gIKZ%zOWLe^veSlXvs$ zR=G1qs7LrmSVZ`|d$Ih|t81Gs+1F{m&x(v>S#YB<O8?J}f~QBE-->2zE?oWe-8PGi zFHMK+Em>M``G4uT{_AbB!5vf6?zvtEbN_8+D=M0>PQT*wpLKzcc7z>>TF;xGvvouK z&-Cuph;7F%ENig7b%DR`JAZ7!;j;M0l9wNU{NZey9qIT(?RxCHZ!6Ar%kQhMdU?3~ z&*y?aE;6mH_tfK8_zF7q_WUoqKC?b8@2!>PgZECN*8`nj&i{~g!)D^~(x1v9=4V<x zxK>AOjB4%WlZo|u^P<t8&-C-WV;hsQ?f>7I``r8PwsSGBIGKXqIw#s5<6$Wb%2HbT z^p<$>SzF#6v9GS3og)4vIAY(`z>`(KPOD$(|M_#7iIM>KJ-s~}A3k4T6gNHo;qwKr zc++Bd`SX7p{STIyzW(>JUz6CM9lvcA*SIvgtdVCSuPO7Z8#iyZel}kI%T-@ox_wXS zUE8c(ua-++zZ+IRnR$ZUGPyl#Ds^oC?yre9StBp9<A(p0DLRfPcs0+2D3lAfZ9RHk z$-8uEbe65Ufq(tUKP->5WY7P0Hk^M?lwoe|t-#zj`vMLx;Vby_dqzq6k|S|fUpBeV zyk&a+^P}Gd@5<M5|D0*_?9*QH*$#F6`;GJ)TwgKm?pfD0=eUfPKEruG{kj)@@qdmy zv7Qxv^5MtXuOfD@S2>;PZIzoPdXBSBS#Rc@ncF{HyzBkroXEGQlihO_<km+nO8&9D z_g%^Fd3BFW?|UEk{LQY;)}5te|Ho6EQA@Q?*R5%Mrxjnc_GH+)yzR^(%U+f}y1Yau z`gv&7#}#v9-<cX6v^FnE5OaL9a_V&X?Jw8duMKXKWWMvo|G^7uzumw8oLv0nYGe)T zhXVyVALfdc`^*12X1)CSz8^onJaT{k<9G4Bs;{f$vJ)6TFSrtM&h$`r{_}~2e)HaO zWgd@Blz+WZak<3&C%kU@SJ-Yu7CmO-{+^|5(U8UeqaZ>i?QYDX?aOjcmp9-2ocn6a z&rZj^59idKkbSl8S<*(1<GJteyjp)KIc)kLBge-<x2^tc|2Q$Ix5@k3e{K8wd0YSg zm=v)j`ngW~C!4nRLt8J29+xXwBU!aY{r9g|+EV||oi8xU);rax^eKI=d7;)q)g86* z_9EXG=I?kebMFtcnpok}<<mdr_&o0|O>;OKku^u-$(w(>uSyp^I@%B%JWK6u>D$cu z*y-PPeGZv?LZ0h^`uyE?e?>X(iw2l&y=#~_<MwqSg#}(oVXL=m%wB)o&{8(LuW<hP z4^w9Mi#{pZ{;nw2Ir#>c{q9rBUfkaQcYRoKAkV0+-^y}(-dUfYzb7gw6xCmv92wvA zGyPC?wEcZ$gJm~9+X|eoe*ahFz|oiWpGv>w6<&Nb>6^?Fon<eQ(i459t$pKk0*=oV zlfT)e^&skbNmS#?(^D2ZUH_FT)_%Sts3q@6WM!L~*{y;lwy7nXd*@7dnf_yGZ|$^; zec9`xjqOS|KT(i+wB*t4hxVVt?TUWgP?y)}Rf^lnZY20*>BbKy^H*>w@pC?1`%WV) zg<IKd$F393mOREQjW_w%D1Cj`Vf&8L?JT!#={@Ts_o|BArcOVy)?j_oi(9pMEzV91 zeQrsOOF{L*yw2n7J)F`q@mVh~Kl!c5@pAuz1-|S(9Ip;sJo`ap)%L@wogAwLpL2bk zDgR@`vlH$9_5aq_e);mU{%PvpRSvZZ2D<}SI$Vef_0ZFuF^^m7)@hAMw)hteeR8t7 zxe~ip2wscH-`&U^VE4?#aeMb#&q5oK4SOEUjA^X=pQxZXg*PdFj`s5_Ym4Kb=CPH0 zewtS7&6j4qOKSb8)WT^Db?2_TU6ru%lSw+bFzCacO;$6mNSpnB`53f>Xr}z133aiD z_*=ypDuVp??kuynmiV@(jia^Q<lp9be?A;*^VwM3c`t3<&c;C2`FHKKYok-e72Z27 z7WwyPR$FYrv6Q*bmvl$Ve#&z6%$fRO!l5IPeN9sASC0mMI;0>l`G$~rk<{^|mML=? z&o-ZuyBKV}jpbPX^pCe(_D|Zhye{v{yO+WLFLf`s|9#!Q=+_tininPE=hyt_zW@Kz zOJn;lo918tF1@6wD(};?`HaQAa&?bZ7}#x&Z+Vj1)9UB`Ny<6pdCP^enq3yPDJ^?$ zZPPl>DS7s?T*&72vh_b_tcm{NuamWMR%UVLUf%ad%eS<iDDB9+qG9*BF>-;`Kh?t* z^@EDVqeDF=Sx#P@$*z=~Jk>0>sQhMs)P$egy(Cw4R$b?N_vnlJ|0m6tzyCRLdbxki zuZJG%tn+4=-7WDoetTh+-~KsH<~)yG3_p0Al`nmso8Ya_xHEoPj1BK1U!y%uvQxZ$ zicZUO_kK8V@x_NNCnr?eGOaO`WPhQ2epgD**}1E3d%m7!yHVDg_f~`KidjDkZcPzi zzP<j*^0@ywFY;eM2QTla*!TVay6^Vi%;W!u*Z<3}DTxl+H19`>zw>IrFfr9Q$8Sno zPxMSQ`qg>#WH@hc9#4M5&b_C%muH!lL|=%KaNeRcr69!GPyK4>(+e&ydR|&_y45cz z|9|f0gBdml1AgnPuUgzJoHKnz`>MCIkEuUrSgD!2j-SgbG%It*tlXI181tfQ2d0Z> z?d=J?oxHj%wxQ#=S%i1Gxx=^D+~U%VFHHT*9xe}ixvC)Z!Q>=A(+!6E&m}JT93psa zT~5>F7fH=3Ul^}0Dcrv%YTL0nk2~~AC*GCme;~YCKjp~LWQ~dZj9Kxr-z4l#Ru(PT z%qzqbdts@E-0rH_(?@)AEu`b5uJ_mfK79GO{m&0y&fWI++y85)`||5`uQ$GDNSuGY z_2A43+50gQ&eiPN`Hb(|z4`|?<L|`X-F;x+K_=ZzM`N_M1&hwyG0{B5^ZFO&oI;hi zj~(2nhJ3v)$bJ3SR&GXnkv&$^GF5ilcjm8p#ysO3pMAya7ZZ2t7d3v2au==Ws<aNj zom%k7ghBLzLH?W4GUlT8!~5^7J~rc9O2nS-hf@3Qh!rfh{3Lt(_zY=R)$BcHlJ1{2 z^)yU$U4FVRx_681hSh-yzvgX?bm*^Ekh>oBzv@UA*WMjrr%rCY(zt4x(sL6F>God{ zPKkflZFFD9-`d3a{!x!p-8I!08PZC7e-*~pZ~S+p+|K52@%^g*Uj+Y_+;4qnQMqit zNd3?5@Lz{KYFN}Ba?9?K>z~>GCI0AaWB%U-#csy`w_V*ZDW>aK+(z5DL)AyF8t{2o zFdZ*_c`4v+rBK|}H^N@5Z_KLpUW?J_*xskRIlW!#!I%1}n%*;$e@UJ56P>-bu!OI^ zaMm*R)1kAsS=icJv+~yp>ZVy}F~v<>;_4$Toc-C#|ND$p@8`uoP*^m7%9e@K*G=X9 zXtTk$%16b$Q~#^Z$H{tmM|k#rm*jnK?QmFf-G@cTuKl_Fle^jLk)QnI*$JPf9p5(h zV|nF?%<I#<h5ThAmV7pynwo2+a`sL9>6|V4e;Ah-ER0&IDz-zzxV>3j^-a3B&MLv# z$?smv|9g2o-tKkP>KZ-w2j7?*o)>Muf9K`z^7r+BK2AO!&()M)x;H9ba89UZ*wx5l zgSD+C5B3PGd^=TOe;J2MRdz=4Y>AFJe^L#6)Mu{V{!rupPh+h+zozByJ{H9%+8kZ? z@p*5b{nurQhpudUrLS;`vFD%d)!c%8OV|1^m38W0nRGDz$&0|-mRrus>3;5J|9Q8t zVrOaSxv9sc^i5UY`|<n;4tai&V^;YWjsvZEhj;&WfA_1*@c$Wsos|VI8vWe9xYqQn zF^#$W(<RoEal4DXPU!7^#gh3yS{d`Eesi7qVaY4|s1p}W758qQ)l+s+nKR_7Y2{6; z?sZ~yMI5JpFnaze-K}`)qI$+|?Z3Rw7(#ZfisC&sZ_%myes|xi@36g*9C<CbyMFhb zJNArU=I0l!`>t;KPkUL*?|r?qH}7Az^VtEZ!%vnQe3^LMiR1ZSvz&h~wa%t@JwLT$ z>E>tkPXi2jt^S_3|GrC}{l}H^{SR*MxBvS*Zqxtwe~vwU`MvJ-t1q|bU;nH(PkYzT zrb^GiGrRS(`a(78jm@{`Pnumicd~YFO!%R~{dRG0-)J@8w8?aO@==)k^Y!A>JyRz$ zm-^W{h_cUnp?%<5-~Jy(yKUX%xqtZHPY6z4Y+`=JPVUIm<gE;E`1jh>6lU$exJQgf z{!MMe+T(2^{r~Q-o^AFfthh;Xp<4OL3BfzAAFW+!ByxLu&h>q-TSbd3S07m)Rei2t z`R9XM{$*Y>n51xj+irXIH+t7^gk1M8c(~G3Jnk4j)2GFIpL99??%Y@Szw@~E@$ko! z9fc<Dw!9R6OKV1Lx9+5W#k<RDBUtAv-iu(-sn?pm?fjMt)-Lz{L?@QyKI+N;lvnJ- z{Py#?<a5O?wrVZTvpZg%*|oQ?p7Bp`)eh$C&lcaW`2NLH_P_kawg0}pw*FdiQry0} z@>g&DpLNf-+>E=V`}kMDgLQRRpYZMf@^D`EyMpfRkFP{1yz3Hq`OnAlrIn!N6^qcg zAI+)0yRScgA-q3h^8A0<&kKGScNTP<uxG#C`5{}oTQq3SH06^k*FGv<QL}Zq=<;v1 zl8pIB`|s_DJRZHn=9!G~*}d1iSElVZUp8r0>eG#H&T+5in4I4uw<f5#-~+cVYvBF4 z9=i)(@8x=ZQA;Q@w(#_h?x=m6^Aao`lo@8OIFNkfK$N2OXK`!!IXgVmTI@YCZTI|= zFZN#jD$jJudjBJxcC`^Rl+Wi#um5m2KirdBx<AF_-gT2-p<+VGz2C~~Cro_vkF7rC z*960l2No=G2%9>)cyi5}<gi{NsgsL;xz9NyxoDZJ^!Y#atB%`;OD4tcznT~QZLYwk zQ%84qXU{U_{jyj7yx;xJ#XECtzAI1IZgBpu!yP_{-UI!A)c5~Cb^iYm_y6mn>KS|W zb0Uu(TU1sSc;*+g-s*~yV#TepNn)Gh9?r7P@47RkbHlQrxgrtw^eTRMm+jf9kW=0` z%fD)RljQW^44=)<W?FKoU%%_WwDpHWw$qO2`L1=3RUR50I{SH=%E_cX_cRjP8YDtC zUERFW<b%GMef;aX3&mfX(vN(x`OIo>s`fYRmSb1xrh_*^N?$s!koqdM^-<1@OBanZ zo@ntrS5yuS-ju&;s_qkBhQ)jSKI8p7t<Sap>V?*WUoV-@*SO1G_}lx~tTXQ`Ige-m zYT=RHH|I;#HqB2bM6Dl}yQjN;JG}MZ!^uLG*Pb{?TCG!jb@z-(h|IH`7>UJ(*^J>6 z_v`OqPLVSx_^{~p-?OYAl_sAso-pJ4=MRhat3SGXd3xQ~iE_+4%6|#(lYa2;<?MZ~ z>)+RW{PNNM?~^b6|7KsWZJZ&nXyx<WwTaKCb^iU=Dsf|XT$70BX4@59IgWpqYER>r z=GdLG|7YJcjg{q&yJf3Anmg;RZF<W6(=Etc<x1bnCujUW-N`rJQfzZ%j_>W8^^zWJ zJ(vFMlbEXI{@mpAo19A@Ew=Yd9*ZfEp4}2-V8tday?dU~k7vwjmSx)O@?S-CDi>R_ zzI?DplKYDA!fTyIMd2*>BOh#fwkK!ig;@KideU5+1_F{jJYkXB-#(c%?eX30y@!Q_ z^}cEBG3l~jdsTFQ<D{umT9S;N_57v9&$?wg<-Yp=DB{nuDVxRaO0@}u>f~-eVC&b% zufJYoidEj^+vT<QPcP5^le{-W<JIb47v6KvuPv$iI#vB^Vnc)JeU}B#`+weas99^A z|1I~a@g}b$qW?3BtF_v5vJ5T!KZWMSS<k-ueB!k78wWSO{(dF;7`Nh9l}8mCOJ4K) z=YE$_jBs6LX&8Gr*y_1XhVA({yNd68LA`luExkhXUMl}o%c#C_HUG;@=_=vr?*%f$ z_b+@qA$G2wN&MHapvT-Ej0OP$(d)W&IbVeSpDz33+H|vNMf-W}P0U4{t=1jiUYM;r zH9s}zwZl^npUl_$H*bl4lrZmO*kX%S_ig9@v|{=Dc-@{ojL-XhwlX+eI=Qw=$baXi zEomKj>won2+g_O*9Wnd%^0MHkvDfov+y3Uh7NB}XOljJx%bz0hng4ySdtqPow|MT| z+)`^MInZcip8BD!f<G?Kul%e3%DG{e-l18d>L=D1Wa{tcxseqAi*46h-}oaJ*1S%1 zx_Y#2``%Y)kLoWByPG~WxAt(-vA}NoojS*7x7uDmVEH~z{YXaM2^Q~OSH8RVvmZ;` zlU**ggTG5^c5eBU-plF=KfYIN4cTzH-fc^Yi04rOWv@@ytdk2CwWLgotya<Wi7gPh zvGMl#72mY~Zt?r{X!YNK&j<f<>?s$>&kIXod2`S~-14jME(di!9o1ct)0b|05q{Hj ziS3rmSE6fQKiO;1CZMplWd6#B7moejyn*|gTK3s!vHa>YJATx^-M-#${(txKFFYUi zUfy2!{`B(uzxIE9TgO^t`*U0O;(69{nXX@WP$8&we0t!lm@UqlpEorx6^V{I+Sq5g zPv*IbZxH8=(!HJs+__#jW!5xb*y{0S{mL27_uB5`I?;Dvzg42I>a^s|*Bp*{703Pc z4A+^%nN<CYZN9;QMej2od7N%ATE9u=O`zT~jeCpZW}2zJRd&C1B|1`<d-YbvKB1q> zcTCQzIOI9Mv*YeIxdp1%B@(qo%j`T3G;U(ykDQgDyIStzYDMv4&Y;p}<`$z(N2Y8& z<F>GB|FQg?YaEWX6>JW#%TgBbKJHiBP*(Wsu71osxmW-G-T%Aw^yT&cFFidO?{dp< zu72KKztEbyw+<btDV9AXEnw{TWYuPSEpexL+}XcQ_I|chn9&fPE@a5EC3^caUtzXc zza(6KMIBZPPZ7$JTYYI+VelrledpDlA8IqbnpD0{)I6|8Pi;DDR{TmX&*~ek-TBI= z>#lriRA$jD%sSe$l{J#*rmkXy$s?_uMj!IB^@IH$1c_YRaAWPIV~w}`=52aDB`E*T z(&YWjD-*7=z4mEaKQ}ic`gEt{<m@SLrK_`!-#WnAz3fuz+w#*pBc}A1vU>%rjoNx% z`q*_#i8C7hC9nU_mwy}mv5durX}dhb9lw^%${#+wJgvXK`nmS6b1$`ao;zip8Qnec zddz}NMpJKp)s;V-9s0N_z4;pFx%n5qb6Rfy`<BB>Y`aaEUC@GP)t)O>zMrSh{&%Im z{!$#DSWR?g$j{)GO6!E2E3ah*#PvkqTYZ1_Jb&TSB`Y^|7eDwO|7O?wxG%ZWC$AIp zzPoXUZ1na+^LFS4IK0zaadArBoH@?+|7Y#GSCH|fyN*@S`gd`)%2CTHOLTvTrrs{D zE?>O)<U9}S(zlX^N^9KKq%3??8!-Kd&7?rp9#gr0$_i|%UH$qMlls4EX!q4SE>b&F z*52N8$1bW~aLN0kzWsmReTdOvm0fmYLUsKuIiE|Lg+44>@O1wNC5I=s4oI6ZnAJPX zd9c%Vg6+eNm*cm5Qrq#(Z|9BG;idLo$<H?_e$xGr|Nqp}m)rl%KYf|`?zhvj`o;Gu zW_%G(-^C$r7UXAkZS_NQL%VIOti|_yWZ)MoxbN9CZU4USAFkIK1=TvP%)fTs)~I4# z{;IIYHJ(acPirz(yX>9h!Vr*_JWXaV=czCLyLqp6sj|jiT31-p-~Q`fW?1jq$%+4$ zK8?Ou{WdZ3W5ve0m0u?9e0{Hr)4^olhPQ=B%BN~t-wENETE2LtcwvEsYup-dh3!=; z-WGr3_pb}^%(c+4F<AOZs!n))dB*WG4=(y>U0J<i;+Hqud4y65_CM0-`j&e2!=LDV zsopb689I*c-^4gI<<HrRQ_7~lvHI)X^TPAwxldR3SMe}DjSye8GM72@{>Nm6v~T8H z()TgE75KL6_2az-D$hU9dv*T`drkZw)xTew)PsX>JO7h8p_aIK@t2^<Z#P=(cxwOL zLE~#y+T-+?;HlL|HzeJDAYPocX5vlLbE0#f965MyF;8H{Uxw9tYI+$spS={=nHwU? z;r_RLKa0|ZSJe)yoVN*OzIn9t?f-_^GWDV_wZmDwL^7v;`?alb(dXDE-W7kRN37}J zy3Oj}iN7<n-bK53{(Aq#Q+DTNzwmIo8&^O0U%2VWdrdd{x5dT6cg0Kh{a^3#ah-(6 z(SS+YWwQ_Sncw`Qtu&XTf5uOPsmXI!Cn~I*b^5@i@K*;z*j7um_`Kx1p8JnwO5a9j zhi9QF(YeNKQ$+)cR<E(&uBcwjcYpEZ&&PHibeO&_c*Ab9OP8N-eYZI1ouByLIF^(! zhrlZB+|?Y?Kl%TEk>39Pv&5#`MY$|_>c_S!?hG|xvj4I@uJZTu|9AWU9N*>f>${Co zl>d%>JEzar44i#*YHR1x<JWoOif>#=O4<Kdt$UsL`UkI6o^ziJ`+2q~o}qf`WIOf$ zQCAe#scwkLn(cbYQo}qx;<{1hpJ{v*MOTZ1{+x-Nb*<4UaL#OBt?wJfVxMPt%(?vi zoA90Ua>a?I+qT4ss{dV<ms0#O&Am+j*NPuAH*H_%=l}cpsTywuxjl@J&(7KVbb;)q z=gs!BuCP7MX?#B6y8jGa9krW{6WHJT^`%}ET==H;WRPEBp1oh}YZv)lM;8XXQeq7J z_$N8)-v0+*lWcBWk2x}1>7R*G^7Y)cxBd0w=IDJ6n3GetdC_~z6^vyPlMkKsPg(k- zTCwWhrt|ZkELW19si3@U@<+9I=hDA_E}FemRj7~u)7M8oAKuBf+i?Fc8`}#Dzdw6L z^j~D16+dmNen#!q$us_TwpEMk=5agkWi9{yH@L!d+tp+D_uV~z<B!bt`)gnM+R0xz z@t|^5Yt#F14gIGViZ|X{vPf6y+w)&Hl|RO;<*)9TF=@@y%OB6~ej;aiYx4=-^S*a& zj{ki9SL+Jf9G&-?>c-8xcHhZ*lfE{Pt6=B6<zc~Z_dK)|%FmA4#aXR-)FO4?=gke3 zm*4TX-Z(E;vN!Qb;k2^P%KUfLLoQl#{#5CDZ6dzGQAY`O768X_joB=H#;vBm89)0T zJ$~%5kK2sb-=E#QzmIjc`IZZ>N|*8*ZvV>h-uYvlq}3mdmCNTG^t{ErL!RMN#O`>t zXL5-W_Vf0u)?emM@i)!5U%jz@R<PH#<24Z-y^lMj_S`>G8PD<fF(b1|T6ScOZJfoY zT7@IeoDGhx7HW#HsI|6deSbVk<gDh*zjp1<k4`U@441XsyITMEoZ^%B*t%I4`7Je& z^?xNSuXVrv(dVhTXT$GnF0e^?HZ%JeM^``_e^>Iv?$aCj-gWNyaiH;1rr<H7{XP>u z+ul$A*z$g{Ajh3QH-oc3y%Ss{Ad<UvY1*9FJ@qPqyZe`#8Q6ubbTs&U)#l-!U0i0; z2X|h~eX^x_W^Re*()8;2wQrxb)|+ko#?N)W%VJHj&9qZ)x97#*vYxuBXI@!_=eK=K z_gCKP_kAoC)-Ud`=95U%nZ%&SHH-Bp*}VLnShGnZV$zFgHP2$UZ);xA9xbqbV$E}x z=LJjWA3fb3U6=Mhu9x-k+xPRC!q-hTE_$71&*%DWwd|`sU%srmrm~Lpot?mTu9ZIu zf1hktJi?%{()xPPCfTlp8A;O?OIU>TT{Sy>k0GeD|Jy>BYbxu%rd|owe!L@C{ME)F zM%Raxncrt=9}T&Ed;Xu-jC<Ce>vNFhP50e?>Uk|o-52}X$M@~c+4e0+e|srg&ur_V zg)_NtA8Tm!*1jI~AmW9_wJC-z*V1+M+HJF4U*!5(6}&uh)ab^Q)n*TG`YOw=`COKC z;_fo9y0x1$9m5u}%xEYsGPv<e^v1dHCv#fDc@8QUFM9b}^2VaRH<u4Qno@Qm!CiQ| zwAW^)KIiK(8B1K8+HH>4oz6*<IKS#|n!QTX#iuND;!3k7vsOP|zW3&|vu~LX_;PI8 zALH$PcD7QM!>#{~A#1EO!+EwP?CvXit1Z3guT=J<^Ggo9o?V@5?c-#U<|Hn9>Q!9U zcl`*>nSQOeSdzt#FH2X~{ckF^iF>zfWh>+M3RcFDVwOir=HaImvebH?1e~+DyJpo* z@tW?mZ(NKa4|f$_xmdPn_WF<iO=iD3bM563n;xgY@Jrfr`TYOCZr-LVpV95b^y*0B zooPC?lPh@|AC<ph|99Oh!0=L^&s_1oVE^dUX8}@AZy&!XS>e2Im)1((FIQxf{iW^h zF5{X~+P-DZ<5&C-w65O16_uRs`O>?1S!8io*?Q%p6Jv#Ee|P<@>&KZLpWMAy%;|mc z@s52fx4TSpIyBAq<d)^@W_yb|KAGb@HzCF<!TC?xp49!3yQlU4xwrbk?1EK-zJhms z_Z^;B%Wh(n-I-c&Fi3s>6^lTI=TFV7TAUrXSL_m87yBsiQNPS4fd%tF<?z?WJl^;C z&~mSt*L!YdW+w29zGjVGx_6plN(uLtRGrDvYcA|lTb#>xZSgnd26map8W$xsY%SCq zd<?Rt#40W7mXYQvIkK&9v)BB{mi7GHSEk)P;~Rg$(ahR*=hVf4jgQ{jEOGF=cbZ*x zMp(dd|FwrA<Re%`oUNmBk2@+Eev~l(`~7C%ot-i>4<~c&K9L#sf9L$?k8F1D`FnEz zoA%qk?tl(<E65AUE6ry4Qp>PLXLZ5rw6#;Wc5Kpk`u*JZ>?GZc(}7O92}{@SPg>Bp zymU>~v-J|if7vXBJKqG0b}zrVa$?fjvYQuN<2ANj?iUkpaSJ-nVi4ps@m6PPGOxp< zSu6i6Dw?-+*FM($4cc3!6pt;*ZBl%yA7~eOVVaTtb4jg-b2(=x8%~_E>ZN6Ti^ulA zdp>PR)!7iK_i51@!Q=b4<n$jr^~hmv^KRv>-|aOE0`*cYF1>FGkF#ldv|nw~@-Y49 zuL7PYiJ6x-K1u!Lcl5W_-$v!yH;!N8S*rI{-!s0z>z$)rHv7x&<|AUIw^sA@MJ+Iy z{@{p}c~8~E_&(w1Tjto*?W>w_Z{Dpnb&vKs9yO7g+i%*l`ro9tcH8bv?Kf7LG5_ao zmUrLd1GU$0ayVUac&lqiNMN>oIh)bdJL_!yS|T?^UzjSR_h=%w>aH#Ad1X>E0q>Iy z3ck%*biOD2mE?{E=K052XWA>I{@3}U7JBE6^rO&yJZqDKU$?rqS-;$E#xeiX=XmF- z`bT3AT|8$g=6!$nnH@!{9>1bD&ONa8qt5gr%{6D$ivlmyD8wXg-^dc(8gVG}>8@wt ziNX(K-bS3#e7wbAq1(iV4(&c~uQP<Mn#%s$OYPe1<+lRDS2d_i|18CM>#F<Yb#)CY zG1fa>_iqdOxVQUi<$J+L>%wo_-hUz<&iL+icihi)eAni#RS2)X>?I`U=VNMHC2z6e zOYHT!$!8l6P1qqhrQl4-m+2w1Z?o^)G5OAf%dD?2@Jkmxb)UQA;DvRc`6s@Xn6&%% zwy*qF&y8M*2JZ?LGXHAiF@x{K@#(d<3V(VhOt|hS>D1SL(o@;b+S&SuSbfdR_@|+- zA8e3yk<fnlXk}TWQnjAP(~_0S+zol#Hv4z^o;ef$-SEJpwAV7#c5$aKAGBs>e>S7l zU;j#OQOSy}!h7={&VF8)vn~5^#HyM60$(aS-9_JJJUo3zVf*@RBIbriX3ybpEL_BK z*sXXfn~~ket!uxSs!3#=pI%~Z<EQb3t0!!=#OAF%43ZKuci3O9$=8Z`cvxJiPyg<( z^UTuQpO&%Y$u!<}XULP8747Wy;L*#+{kFS{|BGIGoL=j_EjKD<i%jLlM8(fc(^^G! zR!{nRYlDUEAw`b!p2xdyJ$}*6t>0A{I{TNDXQA}%jVH6>AC>s+zg`$!toO*`;oQHO zJ0=`A{rd5dLhc7si;r)1v1epDw=7C6{Be7ICfC1j)925N`+HXV{=T=-mrH-I;N51P zVIRQfJ3mWg$JzZcLQcBkesVVcUDo!eOO~b|4F1%!$aGik=5@@c&Yf(le6XnN@4VW8 zD8Kug*WWoO)v}>0Ti#LPbIPn5=bG^CQ}2IV`}C4Uqm#jw_pi*H#6zAesISwD-7aXC z)^lfN)0(yKoJ^X{5?)^mulc&-Ky*snP3inVu{`A~v*Tp4>kR&FK63ob>_#>9bg%p0 zqIz=}kBG-^@6QT&<-Kn;;}e}2i~YY?ZNF>R|0<pzt$X(4o060M&ZWDu>wTY3li#<d z@EMoO%a~Wod0#KzxGJ~f(f%(Ft(TwwlPzELxxDW2$Ikg;PrBLeUn}Q%aD01;abNZw zWA~KL3l)U#f1a4X!(S@sz1za5m=6!bi__|*ZIjt%=Irh7oy>E+k7tE9_YTev4Y#A# zi`MD&M)yztV0vH~$NH>ee}e3vzS!aCU~oIr!(-`$?_W1(r(U+GZ#7@UW|se6@t4V! zxY-iiH+JZ5zj)`<{Q1uxGe<^8)SIkNta|RdR(k*6CttQ@{g4W@G~wL-^mll`tjnSO znXIdx?DW0<dxFfA&x`H8UATMp?b}TsGp@c8u6-T7!t&nx{c9K(#D99Ie)`q4boV=E zA71traAg}Fzq9p{&Gj!kZmAu7yy9PBpJSXX!-d?}i7RJ(RcoB@JT=ym`SYF6Gp_8& zyE$>SP3==X`C~yp!)AE3cz8^g)6cQdTQvXP<7=;e)&Huh&His*``Y$@7JL7sKZokS zA2~ktj$7jUz%E01A%i2YKQcv1>fishuIAwR_i`0QGatM9MZLaX^LFL4j&H5MqV8;c zS{=0JV~mj5<7*qslW$5MeG;`xs`}&0|FviP13qv}dz^Uc<Aoo`t>iwr$?y4h-R-z| zKVJ*8>9MV^*GNb=+>3WUz9G<ORpG^1_uQjxPla5&$HjAxapKb}b-4wT`Og^|reBkp z`@DX!kOiZH)}N(vcP-+-+5HYn6|m1ay5s7>==E*cxqGao{r_M1z4On!=dWX09fiB+ z+tz&ly880!{eRxQJbS<P(ZdDnx5_hweyr1Y`m!n6{PD8Nsim{c|A)s<Jp0@Ac*8mK zt#O%lFADq9<+>lGME||?*yZu_%*fZDYy<ynRQg*YcBJL@pGzgT`!zD(>G*iw7W*Ss zaQX1LbG7G%em^Mxb4^{Gy@BJ-2SNMnx%+=Jtv*v%b7m+1iW-~aDciTd`Fu;K|Kh*; zH+!Sc)ZH$<_WfV~?}qOOtB>E{RGD$gQ80kfw$;phZ${>27VDM#p%2A6k92g$h3(DK z3<}k3k$%$<veLYz`K?;0^ppSrCxOmnueEXxg$)9?Hx_=oSe^g=|IYL8B_GesUh}<r z|9`s*>zhIMe%8L9RowTnC%wn=dQ7qGy{*@NGuOX5I^pz>Ip=H(cCnumXYl)eI?}4@ z!Q%RdTjT$}k*|N{ZhF0D*K%`TyIJuj-dFE<#eFqhyYiJ}N2{9omD_KuP6hpNSbaf* z$GAVIuXLun`F@EL^|vQZ>=8ckN$9IkXPJc0g59zuD|PQb47F7AygQfiVp_xTTj3Eq zHBT*k6+F-Ar$S`dq(t*8@z?x!)&88nci-FoP05Gm6x~XBmAJ!$p-9NVZqn-3<q})3 zXMY!O{PCpg-1PYd72makzb|j$l&o<`cy?>X?l<gK3{MZ8wkkLj@05KnbUWLBmPmy+ z8mpd1tNE)Mq#wO{QAp<4sm|k%IacxAic0RPwhq$zJ!AW}9YQBgv4?H?^6=V9qsK1G zoVC{VofbXSxp_<XuGPlM-@fRE)&F0=H|a-JqWYn^#@u}=32s~|9jiK;4y=FC@~O{1 z<lg_eUoSTu`SWM`d%1m|)|V{MxO@8i%LUW;rrmknwlvIV(NcZOdp?WaExgLqe!(c` zl6v0yhNCKl-;>i9X4`K#VwPgMuV#98?;Fi8r{_7X(G59jmn(d(K}SSk=fT;pkDAoX z+#;?U$984+d#=De9e=m%_}Jz4=vzbu|AnsGdb6K-@2~j%;b{CG<(%!clAH$CaeJOh zHF)(o9-R>A!z3j4Ca7=U=L_$TSSYHlzvVnFpTXs>qW+}RMNTEhR4=dw$S_YXlTKrv zx%|0MQSS*QIqBkq+Xbp>6MR4YFbuycceQoP_xkh7?cZx(JbSn@eXHr7HJg*1f8N|D ztls+U{_*!0Ql(bPZk&+NYCKi6D^V|N_8<HDcc#rN<G;J|h`Rh~`1;<=<e-+j-qu;~ z^W~=VMPL5zbYtg2_p1_T_UIO|GMnGqHgopV`Ri04>fP;$-OcXjb#ImF676q?&ZM55 zDUtVj>zAV&bZ=*E<?X%nYWh26mtPUxdG{G(?WdVf-{MzhWq3R_fUPud^<AZ&lYxge zu`b^<Wpe7vgA;WYTv(C!`ue}4a}Qttr+Qy*%BpYKp|Jsy)$y-lLN;@{JI<IZYs$Lr z;H32-qW!!Eey6Utgugy}Tsh9%IA@ztO}LI+^o{bpD_UNZNo6k-3-LIq+2B2YO`$>R zl<AFHUh7Vs;C->nQY~*9ch>E#2li<{(Pm4@nq8yRrS&Cz{hj~c9p+r#$$oDIC?nll z(SEM#`+?*C{&?FjoX_^>eMsf}bfss@?isGp3)-s|t@b>3->0jEzAb-Jmj|+c+<4~9 zv|XRnKB)9Xe0{2CENd9i$G{x)R$^63qqt1;5AU-+CnimE^)P$0E+t-fW*$>fz>zTP z**~w<&VN$)pjr8INzZDzPt#@xZxT&D&Fn0nQN(iBaJBxka~un$_GzqG@3Qmn#^lg7 z$JcHD8d8__T+f(MT=-w;=k-btqD#Gxc={b$cdh<s2UGplIIi~G8M(86-TG*rm$IW@ z{YS^qZL$lD<zv)l8L@SrJH9L^ux&M0YvavAWwC^p(XoFI@5-P1bdyABve~ZE0Piyw zZ<_aocW|;CSKcPW61}F3&;F@N->G*^ITLy3bh{Kx(d*bY<A>VM_kXvB^Y_~pKK*d! z_j-A|4+m$rf3LsZd)WB?!R^!cynSo<|Iq>Q{ROW-bnh=XUHc;JLStTkQu>};-m=>- z&ATr(zWeYh`n&k6H7pe_;fHP8CMB-^Zx-qpI)6#dUtjOH)!CB@Z-^!y-FY_rgJ{0s zH>)^x@2A(#X5X)Ap1DypZae>T&$sqv9hXa#e6%F~X=-wA+2yFTq^A3wd&-i-MYk$= zyc7Okh&UhA$>YiyyKR}c>2}U!C+>~6ax|tJdx=lFeeF_m7xx2i)`&@M|Alf+pAI=* zbW6+Xd+VCBbI#4tUSx7MUd3BCc|F$(m7Ltk2V<3`E7$f)K5IUl|2x*4U;fv2d0U%r zvgUl@zxbxGufM+i@Bd%%cWi53a+m)x@>|ojd&SM?k90TYM@^j}ZStVw;>otS&#T%} zR~(sgV(-~0UMEWYKAHJHc72)~F8iRYidm%0QmpPw@P&`MMPE-8UE&Rrwe5ala!$T; zhBC)o{;Hbtb+bw@=Y~u?+Os>UNTzAsmjy>Jx}D(iU$V4&Nzs-iW(9^8vm|Ptnm*?U zSrQs>Gj#S=-7-F|-Y>DbOI$sIEwu74COogrRCb?owLO<}a_QUSiS8ZpPd+L=HQOhc zSK9YA=h=<5LSa=_TmE&k8~K=O*gP^&^31#cLRs4N$kS-A!gZyWA}$N{7krtYxh8w& zN%pU;R&9KX#aF5DO<wrMkZ*&HX7&Ul8^OhIWjHKEeg(L@8d^<tc3!wm-oV-MVy5UW zIiXdTe%8N!Usn13_x~%W|8L+ucXKDZ+%4u}7h92vuzA%DazD<<*T0&kwt4ov8zJep z*2-q6X{)*1%UbPvzUq$Mv!A&o56v`<I2T=Tnbw@?wlrl%wEN!6VQ)?bo86J)X|=cF zIMz1TR`c7HQ~gI-&i(h==b)gMH~EY7tECU8ncinQ<2cpgVfxFtL7_T@bMy|b+;L!r zY{1c(uWl`DG;dcnJ|}Tx()w+y<L*BZn?7}Kv+Fzajoi+=7RR$0cpdu_<$UX4?)o`0 z73t3Ph1}Jb?_R$>wf2EV_4^Yq#IIO2eD+%@y?x)qh3}eu8V(hB$8P95<g#h`{4VYX zdF;m>51H;ezQ*8=+SEw)tLh?FD`(j4UT6NJZSv&Rk4hx=#hTQ}xvyMdyi@eL=ds%n zq5mb6WwY|$%1?LRS!yQoV2>Y5^X=_7SNh2RO#kAt;hMGE-MG)ep}UUF?zO&q{q~>d zZ`VHDX646x?<tE`!@u><u4Qz-yMObVVy_YFlA@W>KLz9VoW12yT$K|L`pI)iQLsTD zN349F@$>6EQrDa_R>y|>oUeQE>*3%1&f-j8{(O4;e&@3Mx%sko|I5F;RmyB$XQdSN zG_^nb^b?!gGx@c$Q$??_nJ%lSF7p%G!*|Twv-~St-K~cEkAhtP=RDqdRp|U3t+#LE zceG8Pn|05O!$aknl3p)kw^z(U@4USxPOtoTs`p-*C4IOo=(ed!^4*Y*HEy3DzCM=x zaoP5(-@i%KMrL=)_8OQROD%WZ&sT7CvPxgJZBoOv?SIRTY&|R9I+3YiVeC_XGm$92 zxZJk28_WV`^7cNzQP}-#-m!DCby<Atdb|@>h??6xT($F9n%w@6bAK2l^4(tReAjBu zlkcS^tv_TZ|26u)@?L<w)75=<9W<NDXWyP?8u82Q=sf<<GyYZO%CGyRR(?e3<DAEC zkxwQcJ`_}6@Z-Vzos~c4)&CFNoALM5!`1uOSf}l)dH=!muZep9oe-Y5RsLEL-*-26 z*;j;2(|N41(Y=pP*siYS*v7CLj@Riqo%a-%b~;VXxA$^NcCZNdES`6rKj;)|>%k3X zq3kQ-?gkbyt6Z}2-Y?p3WB6Q%;o}Rx4NGSA-!d0WT*jX~=lJ}XvIn8xIQQ*P-o7-c z;J>2EMZqQOCVlj{UX|n2bi1mB)6!%1QMa!~TijfqE)$+*baGXytm98x#W*v)jEgfa z94S4-|7PLNp1bV6?AsO>uY0-V)>STl$w?2jA9q;%`6tb3`>y5bw-SRZ?>EX?U;W|y ztnkF16X(q*wWM16T)*?3Z+EFs*vdDn{!hHJ&#Ir-^4+)2zS5~FJ&Y4`cK*D;dCu;2 z<G1Z0H}m7K*WE~VD&1y!X~{w7zfldhn*2`f-kxP2bZ={kV%VyX<0X8`$K$ugGrj)X zowTCPDSn%drC+IhuxGmIA;AM{k5qXrlKq-7<(L2Q_&35<ckS%I&tGTpJbxMcF~#?@ z8|NGDzghj@as9ug?smUVE;njlWnDGteWk(QVC$;YuP^%hCd_+mQ~6CM%6O%k!<x23 z2WI)7HCMCmI@9^@r1lzv?v+no*e(oPxzjr@#^7XXx38YWiU`gmwG=x`!@`YoIiCt~ zbA+s3q%E{E{zxFZ!a<H(!n>G_8JC!~yL8Grom>^a<lCG5GMtyI_?GMqKGNT-trl9d z=oPbpE%&<irw<HVtb3}=&aay$d#%qmH#bGl%#c0D@9f-eZobsFbMGh|%&0y*HFV?c z)@{j4qjUYYS%gTQtmW{~nRDP*rSGa=Yi1ltmY@5(<@js=8T*niPO)Ii`0#AAOV>_* zgKL|+m@Y}LslV3w_?S7TA@}bV$8RAM0^coqIOS(a*ojT09){k16Hh0Ec<lXYIWzfh zRAZdIai)Yt<K_J_E!VdP^}6o$Hk+{Iaqitc0SC$+a?3fG&P(uGRb=t1@?Mp^L+LN$ zT@oL9!(T6F>t)@=rM22Gen-NkM_zxnzMUd2@3Trm_O@#7vy_y%6N(wK<O+_mwr#nY zc;ruGxG2l+;|FIN)V>O>4co9O)c%@hrYrZ%=Mp^`&GwP(TfbIlzhdOeQQffWhWy<t zkF^Rft+=zPtH<JcjMk64b^9I6+&??LP_Djsa@j9l`6Es0c1#za<)j~Byrv#3x_Kwp z%cSVsIcs0PJb8QmZ`Op@KRmsTH>4j8*{Ch_i$}oj>1})STV)+{L)=^LX+2dru5)Qk zaLQ5LSVh%@x4A9RoJ>3$w5+d();-{j4SO~HsYp)J*1+$Hr<aO$o_HX==iR|~(bsqd zzRY|a5-i&66@N9^NZ<bdtoiTD>phRo;9C1w(8Mab^l0+=Cs})WY_{iLF*;QE(~)1Z zc2;4a<I=wKl9J1QeV!986L-mMoBpp=!evtn7P*K`EYL2SW1Y#@zI^q*A1ocY4*O3& zt6W}Mniws5<*z2!o^QL3&Cfa#r5?1(%WdYiPsc4ZzaLed_<F{syb}jiBKsP-RYT7j znoP`^u*D#kJMtBS72hNCxSOY9r!|#s^?vnu+ReP>)}e*kvg=NMyt(1Y#;A22?JnyM zO5HJgudK+Ix~2VJVCqq4$D;hp39}fr^(?kW{a$MIku9+1DW{j$mdg>(!ar9i-o3R- zb-AtE?<DJvLx(D@QtkV`b?MnmDZP31^QVu&-$HNi=y<(q--3dq<afCT-?pB8z3bSF z<d058MN;m&CH`B@TX6pG<gN<_-yW}dcy-#O-SHtJlU#GNne!EkKK?qi?^F)wjfr-j zlAlli7wSJ}dj2-{V<rF6e9!H;|Hii9f3|+?j)EtZ>(jT-61nPaCv>Uh=$;j;o*Qx5 zCN7n)P1vLro6$T=VR49_kXpEZmB6eiYq(UCo`-yWn)SnU*%h^8+scgIs#{5$7Yi?3 zwN1?I!mZ5fecdy-ua`PrRxkZ<O+~=;{j}{mM=lCK)S8}uUAb6q@fGf-#i2>*Pi|~k zA#pjId(&b6m+N%qSsj>UQYh81{%m~Cs(kIb?A66ww`w;m?o`b2j<3z+KYVn{;qzVD zMLk9pzZO~vpHqsiJvk#(>)s2keto{A>J08oquVJmv$=bDR_$NA&Tyg9rVtIbe325d zUE3bnJWb!hcVk(0&rQKqUHcvLwQeU#ZCl=Ly{~D*72`8i{0#c@S3mQ()*G9+a$fUY z*-owK{a1G!oHpZ9d4T2A!_Vx*migUtm{@UT_KKvam_tkMCIsC(dbe<fpx&!rpLvqr zNqRM{w$S?aDeTVd{VmTewl|!*aBho1tlOJqUNvpJ(?!bvY9BN+)AGBmSASLR(VBM? z8<|Sii0+wtsQZkP$^+dkyTo2N^R;i2R8YB-m_3;zTJEn<a`xP55^_sbC(Y`PwL55Y zC?~X0;dRL41zH{1zkTNzh+BMmI{(<>V(EzQQ+1YIYTA_dRBhTXuf0<O_0N{rv)st- zwVn3N#P#=<H9R^OnS8FXRz5npOHMKJxuua=p~7Ji?e<usYq!mAS_+9}yzOLSn{#K! z3Y)jjyOT;dI~Jd9nkv)Gall7s)r~;8m3r5@J$^VC_};pvkn6;_&B)-!j{R-Ej6RtS z+v^W_9z3S_=}7mxLu?nS3RJ9B-@m<H(-l(bWO6S3Nuk=wAhB%*&iaqII``dZy6u(v zaA}L2{Mr)vHw_=!qIdqQ-nwni*RGT01w7H>xwGztr@jn5cI=lfTi?Z~D~>^{%L25D zr+(qzwBA`~_J^$>?V?$_pEk+)I<cHvK50py#&Xw?yZdAHOPX^$B3s2KR(mYrD|C+O zh*6sz@3183-7WDNMwW>QCrUoqXEDzGT+DB?hh1;Z30s-EYxAlf6#O`n&iCE!yZZY7 z$NAsg{cCUJd6jSSN}b8Oo+;n0^16Hf+LtdWHQ%&W{jg;!$y%n*aL?FtnbL(fTh=gn zbHy_hc=E8Rnu$2Sj{g1I%bwlz_x9NDe(aX_6C5|5Q1d={@$=djT)_gL7c%$--L!64 z6{@rB(jmSBOBQ_E5S{vX_5+SQ&1XAX(pNpZ)^~OL+^4tmUzX)xerA^RV@pr;4~v93 z_uqW(JrE`Pf!*ia+ER`m{dWuxED_mL5-C1ydgt2@@2{%2=6A|}TP;!jG-2Hdg&LWb zA1b>$wZkH{wtc<J{Owx#9GNp(2Mb-dGk=><5WOQeykNcgCzTCh7Rmx&C+p4<Ucjp< z@_n7Z!NYUiLHX=gSN*;g^UlU$<+h*EOrqiYlZF3xI|Tgy<;?h6VS7Q}?PF`RKR=E6 zI`zjkH_`38eydt-kDPi(Ew)Iu<*Ate>o>Y;=Y$`r>GV8(C-U`9*ZN(&ELH2nL+2=8 z{Ga@O=PUEp&lTP$zfLl`8z(8f?Yhj;YqzwknYSsNd7s4^^w^haK9AwL9V<NK3wGN$ z9Gy{-^yb4-r}wuPPraX=_-Nt@&Yo1Y)n2B%e_Z?+nfah*IqNw`jl<`*9ecB8nk8#= zPTI46|9oxNaI=DKfxYsRx9i#7WJvXW?a&iabHn)fSMis}t~eDn{`lIl`d6BG%)Zz= zw+t<oy1z3yv_Q`CvkPm^l;^j91vVNzx%OD5pxWn1K$iH))Lq-8S+h>Zh0HdqKRxq{ z`LB!0HlI%mT>m1$*l%9ryuEvN^sy&*-cHCrQ5kIeIrMI3km2pAUGHMGa@()1j&7>? z$PxdpN-^M7f`NC`R}S_04sq*WsIafD7rx>5sX!@B`c!M_zSu1@c~2d?cGy2eTY*LC zi)*{Ud07Qv-6Hj=Kd0a8U#76x&nfIn){G-Tg1&F%yOMkT9%d-pJb0JACh=9<HvLt8 zs|6gN=7{fWjbb^fWVc%GMOoq08Ol=~pC7+_tLE;jb-TVx%PlD4wfmiNa}9S8OGeV8 z+({iP7Mr^zHymHb6XbI1dck&{m3q$@`wl8hS`*M#7OnSa#-l&qY8umJQbSK)joZ-C zQoBGxt^SzT%dH`^-}*kjH+Lyl?Y90^sb+`vTQshIe<S|$JBIq~cbkPGwQjKAI<I<e z^({WtgC9OL)SB+|Tk`9v*n%(dj9O-EU%&Hi+WYM7uH*@Kl6?xUN%pU`x*5AYY3oWZ z(fz0XUEgycxlT*{=M5IwM<z~Q?~A7>e<}#S`I`0c7v*DK@0=}GR0Y2Mwm9L%%iX`* z-?LWxJ(sIkZ5y!o&DyBBAD_zw@YlTaxB2^dmd<}>E9YQyZvP0GFL$1#&$BvP&S0SU zJH=zN<mK`*rs5_M?pd4Kg3adro|T{KVB<Kw^=!wI$0wd}&MOy+`O0$E&(Z$#vgggW z@05Hz|76d;#1|6VGPViXUwkru$!gAuy&Ezo<-N!g<eS>j{iI^b?p1RmpS&&e{l{>| z^i8I+`d6EB-{zZwAO0-*?dxJ`*fu%hbBs)FW%Tyc`Cc*yejRF?a*s1h{kI$EKknDZ z4o;K#%eS~7u=;q+!s*?|b}rgvxpe(G%@ZGu>K@ML{Q2&{?7eS1I**_4FTS8B%l_@( zPU{66C#J|3`|teAZGUq*Pv63V(9-7@SDxGa$8P1bgh=h)=hr453U!+p=3{q4XL8VL zpCp;z2kh<A;wBs_bXfQHif3<3zikKm{+G&MG>Z#fe^)uM@`%5gtxl(D>`#LmtaJbF z{@8w4{?Fm}mNuXFWw%e?zwG&v{i~)gsdcq){AqQ6!6pCjFZa5u<yLpAeDr=$$?SUE zd*ZeYXP-E+ecf$S?i;^i&bC!AT3$}!)p~vLD%XlS=ZuLB*Ie%#Y?zjxHlyWGYpL|w zCwj#WJrjTZpO^I1;c8)tLCTKAlNrnIH&**a{|i5OLWk?_R@O|nwan99wjG<gAavP+ z^Op_^%A^)Vd7QUZ*q3towTSG;iAr93msDFyynguFq^qxa{^i5=qVYKyb<bSwj73+e zXv#moX7%sz!_M#bENuS9Ug!7!|4q96{-+av4_~f|wlClI=k5Mar}~~Ot1G(v_F@xv z*z2UjCH73qeKYM{)?~{SDkT<Ow~xOi!Rgd2J6oUg=BxRE+t!q`-_?zay%7-cH<!s< z{JiNpr-q09e}x|N*4Kpe`L8j0q_LjGZ$a(vs17fyV-vo|@6q<?>^3XE=KnBrPr(lb z(YmiKeLvsGKaZU6`*NGo`zcn7lKPirD%osfRGaxWbkEB9I%kf$9lKyvDbn`cc8dI4 z^DhzSZ2dw~4|Be$GH)#?FWI>F@R|s>rG3T)k+nV+IsNAH`{Vl0t?2Q8w&Ut_rk&?6 zvt8X5woJ$Ft#`-!v+Bb6A%-ID&eLw~eDYF0MmhR(@`_Qd}=^$%FKNHD9OPt=OO zSHW;yes9=&4WYJ;$7gUndp220q&M~4vqdhGyrXWUb4yEk+_idt_|mMe>kQLPUg-6& z%AE7lsU_;ELFdc|TQ>%>zv50UYO*O-D!TTx_qdUoNPAAtalhnd{S>7S$(6CC_e%xd zG#7p3y*TUmlRM(#o$PkMrsOt#dideA{g-6@`U_J(Kf1%5zmff1Im4c#eAb7z%l&vU zzxv~EyU&aLGx;u^xiWe3rdc-3&IMC!3ZtgYb@p8`@6U{fYRqqr%Un75^6;NGDgqX- zoUeGL%E)^K@4MN`C!;mlaN=qf&YBMOf}^d%%#H~O^N$^`%q;W1?6qm}o2s+VC1xL; zBirbz8=D(_L```fm!|cK-0zn?=2&069^0d$7rR{d<1+)jFZ*vRo@o6lbnC;``43{Q zHr+9LcuAdOVypD3rHh%CbFK(+ns1W(_`KSo9|_I1wst8EcE=~&a1IWCxzf~6;={I= zM&hDE%r;Xt#(Ij@NM5&o@!~+@<2!Dz(pmVfHC@ZI;4GV3uw(6qa+?!tmCyBQ<SxyU z?Vh|+^x(mTn-0Hfc<a9{BzxhXAUlVpCi7MaO$z?1xm}*~L;ePy9R|%GC!de|{Ji=9 zGv)Tfo6Y&w*Z)2E@bxZ@4_oVh?JCyeN!T_?EAOz7NPbO(3^P-(Wu2sSUn$!in;9l| z%sOJz7xr6*l*kz<sIKA^`r*T!C9pwNGa}6C_2bn?4qmhIIy|wxwQ*YW)u-kg^%@_n z-qZAgImvLP<BE$H%+Bkdx-J_tDV%-B1J|#vbN}3qV*0eB@Xgz-%|hPH0ZVgonuXY} z7HsvB4BHl?bX<GE<3PFJnX`?43QJ|5ulv3Au<-d9>ko3>$N%&8TF#%a>Z<<B-c?pR z_ZP2zaX5E+hf~NaK36AZ>ujFfMKkmm9u;x_o|Q0T&g~HHV;Rqsw{tt6EZ+1^xaC=9 zsMCtN8EeXJZ8Y>3a_yJQde*wHGoo3Je~v_|($@8RowHPqtIyl2r>h+|nf=DIZ!hO< z-08hz-Il2`&sJ3Rtcd$}MrLtV^RqLh3;k#9h*j93vgI%9Q>V2~f8KPs*__b7u%%z= z<=U9Wa82EOA?eKtzjY5EDvi8p)5tPi`0^K1!?v`ew{;J!-uf)>VIi9er_$B4k%^uT zIilv?zYW%%R#-HB?enm!={3vx<#XJ*&RI$nizj?Gt?{|7ryiFtymLdz8-Dgz?W?7} z2kv|@w`427N2s)7(zaHvohjc`_n%JJbPv&3-POe(ksqV<eQxUAjMrNf)ESM<L^aQ; z|1UXax%aM|MLa{rZrk#0#r!pYF6+nsJkxI%`~1wj6IF|%*xBApVR`CYbnYO-<*2tC zCImizvXWtI@WL|1M6q=%rwIEWcduF?)_I$K^^vRJPGtMHsQy|J<GlLD%m>}6g^G;b z4)SYu7Ce|69l5ntd-a`y-%iH-tGd@Dx8A6hb~w6Gvh?n^pxx&mOzN~d@LFL(>fI@= z!4sCT^`HB3>hF;@%T@MXQFC}pk8Za#(=RM^wVG4+GW=2dY`>RVe0C*7yzcSxS^Ip| zuTAU<mRcI0-+HpDB;Kx4m^FE$>%yeNd1{|KI`r=}{9I)vqqRGJ%ZA>@uYVFhGTxgJ zu)IrF{(7KBX<A~gipQ%5C+dE*oeiI>6Zf~{?Wg5M6_2_n*RRjljM)Bcl2O&;==P6( zd3gu6T=Y=7^;@ms!?yZI=ilDz7SQ`!8QZz()_uP2TeY+6GB0NF=XLN_?h{>f_owB> z`Y)T;bA5R5VNG4ugm|%vZ`<!$*euMClB@l5>fy!rd&(;A8}}E=|9kkn{?*jOr_X;p zbntDM-;T@ryN!I`zdd$trMf|r<jL0#R^5>+-h4c6CCz?LB>UegVdLAfu?AdUOI&Ym z;oI`#^j;GsLw<AX4f|R@wra^acIGpmTK8+mHI2Uq>bLH%c(mPWzr}+uJ4ys9)^%jn zEei{a`~H+6;48b;&;92uifkTj+V;1pSmI+$&N9b)c5e$Mx5aGh+xzpxp{Bc!Cfq*~ z!O`(h!%06m!`;=SEBZ`OVfl&gwO?$zx%QXG)fZGe{kgkceE$k=zx^e@KTOgyyL<7j z{+Z@`B~Mj8Za6E@aQki%yGr|!rugrc7N=z%UNh^=cE41sS=wuUb9?V|yZI}o$KMaU z{<)F4Y1ixTDR1g@%te{&cK2E9?YYhV>6_!0V<&DHa<_Y)J+2ifIPKp0)PChvD)|AI zZmoE<#doqKTd%d3>C>6Vb&S|;9yhP~8|Y*@`SH{PmV7K9ssblkT;iX$bz|z?->Uho zM#mkGJ1pIEEaYg`Lh+|3PR}UYcSUQ8T+pKh*IsYsJ-gP(YCX60bO*~_n`R!_%;UE$ z>iM@6zu954Ra^PCuh_Ly??7)~N~~zP_v+L;1}~TK-mWifXMdcxXy^3U-|4#}Q!Hc+ z&s03{Y`XnNExJc+nf+Vgn4T%S&+gUzAbj>~-U_Bl9p;7^H#%BlW`1`)`$U%^=<pIz zIUm)+RSVw#)3&>^>i4-YhE*zg>%(7mUe{A()VVEk(m6%++l?(UDLM8vb?@fKSuW3C z#BQ^0ALsAQFL$!vVUA&0;pugCap2UKXN9G*UfOB~rKK-;;@Nw1gSz{^yC*mqYb-4c z!n)78PM`C2ZF57&`uRzR+TREo&YYBgY<EOXTYUh7wWyr3$tm9?anbF!9^@zYOqex! zm&D|9R=Mrg|J2VPnm(T^XJ%gEwp+3nzLj3kY<i(&e{#Q!ZpANUYcYXHd+93e!U<=J zyHu`Sl+9ZhCOUg|RhsqdDYw5o+bzh^KBY!G=k>Ak*X`aZOD4zHYu>Ts&|<4|o8T_} z>VW6=JKvIdGrI$ej#M3tzZD!fdzYB(cPll)86S(3`!{&hKM%btapK<Y;9Ik-cK$xs z`l<XNf1pRlosByd>?*pwDuBHzl|Qs(*-;tk@GTv(U#D1a?=WH&+V<tJ(3BZZzieEx zNwxG@(NPUP`M0@c8~3lgtyvtsS6=?(Z}leu|MyM3sIxAwwxPdFs4hWMz5KVyxhB@n zOZLru`Z@Rh=MxV(V?}<j+y9(&Tq^k@Z~OK;)9(h}7B4>-7JXT+=7>t2@69=1HC!wc z^FI9%k>=SQ`$0wVlR?lyb+^=arNy7O=iELko2Pm0^XIkODo^!i+%B*Y`oPha?;VzW z<5}LTLmoYOh2Gi68*_thx!BHm_PXq;3$tBby`TP_YuoR6zU-geYm)zL|2G-;?4vE5 z-(-Bg|ClemC?U>&($#H+iT+7{Lrc?anG&AAE?jfh%I|P`y2u}=ko&)#-&@|f#P<2r z`n%S9J{+}fe_l89e&AZOn>KG3_E+f5-1ViraywU@-;XZN+U<IAm!7ZMyf>%z*0)K= z+3Yl$Kkm9X)qA&K$9$cwaWkZM<?g*#q8E2psdl&g<-+Z3Db5_H*^m6m(dqn=>3+$# zcYDtD9`iajld|I_8yOu+4xbHrn-h{4r&Jjm7$7mF{P+JC7aJv2UJ4&sKB;nhqK$9i z(q-CV;vs_iftz*Dx76({VQ4?B?Eh=0%;9Is3>+V3KAC^#E!T0@xa(Iw-drLwIVo%Y zN{^jaPhT)J=lmzpUM%}bxcr{E)aH$weSdFsyqQqm?XGCe@IACia^K&hCto<n&vCWi z7_9&EPW-xUWfCz3kHYH98#bJ|c}%`o?ajB%cUDgLS^UlP!<XQqeD36)pW%%PufDOC zH~*YoZs&2X@Ug9JSs<^>ZCk!6uUPC3icNeR!N_Fv<q%W7o!z9Fx+hcj=y9E3vV2xN ze{SjHm|gt;XMXnne}(t?7vFCOe)2WsZ(=_G>?*VT|1aI)cAu5~tNlJd>Di&~_`btt z@ze{!T3-!+F5I|L+^5T^-}bmnEZcOG`Nf|ZE#ec?-P+a79tPPeSu|{j5Z*Oq>t&aP zDS8S_UsZCe3xb3ndui-?*K>4&>c1z)W~`CCRTjJS1s_Ms쵔XnZ_HoJnf1q?M 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ⅅ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 St~Ub%1B0ilpUXO@geCwEBdl}) literal 923937 zcmeAS@N?(olHy`uVBq!ia0y~yU||4Z4mJh`hI(1;W(EcZ&H|6fVg?2=RS;(M3{v^P zz`(#*9OUlAu<o49OOX0>M_)$<hK>E)e-c?4_$0P@x;TbZFuwWgy&*NaOt$Up)^B#t z@AyBfj%4r<<DB3ju!&=0+6JpBj$LB%hqD%>POW~k^G-7Vi;K3Gba%O%UNt((VSYnc z;vvVahizQ4tZ(_c1;bjJ9J}~gGMLsdY2B}$S^3^F{r%QG&m@x96?=CDIEZOpP3L<M zns%@H+`lz@uig4={A@;Ar;E}=4;7(NYBUH&Q^9CP7%dBESR6i5mpm%e>GH^(BY)pN z?fkbtEB~DRzk73Tb=~RvYp&h8JiF-6m)=<WzWVqxeErwfy*(RrYW6j=)&C@Ke|VX? z_xI1Th&A8te*63*XMdFD)n7*cZoTo{`s>*Lq;1KI?{L=}*7ePgl-!^H)HnX!aeMnB z^R?{K>N4}C>-DwkQ@(GzQv2uoExyzK(Yo%t-`$t~U%Mg9e$UNgUuVW&u99e%xqtuf z@7g(8HM{%vZ+~oY?%3nsUwdA^*xOhCYwJ(`^^Z#)w>(Y{d;j+AY}Wh#|LtD>G4OxQ z*Zv;+?H@J&pZT%6e(le~Kl-;VydK)>KAt}NpIu#9&DX7kvHvz_U4PB~dU|0`-LcHm z76IE+W$OMcerr{>-RRgx{qnG57AE$4<Hh}~j+NK!oBDC)wm$jZ$2|w%S%gU*|N6df z{%_O%$3Ja*_V+xNKOTR4{?Yf}P5#|65&re##*d!=d+zmm*BvYTQ}xTD@cVvo`*(ex zr*C?^Q>Xv2q>k+QLK{)(_T$fA@4WfBz1-^jkH3HY`=6VxTOhmUeR9t!(eJO5_s`#- z|6|elgNA)F>kE%PK5X&&6yv^Mf9D^6e*FFEnaK~n2a5mMYd$}}d)`B<eYJAuv;S1z znS9?W?%eAiKkGi;?0Vjk{Nv;CJ8{RqUVSY1`N6NN(=Fn@e@;3V)?+&VYF2sqRloA@ zW&7s5{Zn{&>o1N6QC!dc*83K(FT4}=)a2X!Vw2<P$Ns!|{QIna!J6)(3t!(<xJf)X zcRSuc|HtN!{eM51{ChX~!-?0Qw%$Bm|MbZ39?MN}2K%n@N!&JCx3|3h*}u=+&+OKf zuj#a_3;SF0^xmr(-gloj#k0>ldU%d<jCJqzx8Du=0t<ZRujl=K>DbpV&(8m7JTLNn z(<{Z281r-Mx4yrAH2vJ~*R^jL|NSw@dpxK6{MJR!ubI^Q$LuRzv#_v!PP+Ix{+`YA zA4}dpnEb{@uCFou$>%w**XGY&w=m<5^!$bMSm)og$iG;1bM?E&ht&HmcVyhl{q|D* z`;M#n_wAEkW->pne;lzkwq&2^>&!^`+NfUL&xgL=ocH6-ho2v7ZnMYaUze+>7VBRB zqVPnweS7)i^7lK=h0ooXBxBjhw?jR~e%{p`*JH0gInVSu|G!M}#rMy?bo{-`zde87 z_1^3b+bgf0+m&s5Z}l$X`_boK)#k_kbIY%el3$aXEWf_4=ij<3%gblD|CYG@^uhP9 zJ8%Bp$P>Qi^wRC+zaRcM_x$wS+P`;qm+${~4xAfVR;vni9@+1@r}FdZ{J-a4Z`~*9 z_WsBEeS3dDnVfiJn)%_bs?UE^=S-jfzGTDk_s7p?n(d3dvor2)Mt*+(@#`hejy?bO zReQG`Z*bAh0}slQZ_i~hH_)wdH~-S^9DK*Yj>oygVxt_3MqW%C;~T%=)kQ*FGLJT` zFPWA)<4}0n<Ew9TYG&KFhreaZD_lI6uVA^ZRnKWP_2c?$d8IF%|8A0V^?u{!r+p9Y zdj6K}y|Cl!=R@@iCtrWKv05PE4ztW3x95s;_{ycUe6!{qKL6_bH<N!K71Yl?@Ofkv zZdLh(``A`JZ5elqh&&a2QNM!1<nIQ@Y95zPEu2@IU!ZZvQhuG<+&NJXbq;kl?ypSv zkdj_-puYV%Cwpg~r0l}m5#sgRX3L!0_c-p)zPqd++%JD$#?V;(Ht*{EiaCi3rmvf= z7v6XM+ZoB=$CBZ;+E(#fFD?AMeA5nR+c^z;HD-K%b8x2NrXTYzT1wAL{aR_tr1jLG z&g$Ljb=|qiYhGQA^(j|6_hoX=J*#JZ*6i%%J}-{^sL@@0|IF&boyrQE<zFgHb7K#= zw@Loud(Qdt-va~!8vAYQYT4D#KGC?;82I3@y?*-<J#ot!hfluqFWRU5taa-38SZxb zmo4slyybS(j(HDXd~s91GCz7|Bm4Ks$9GD}`dTf~p8vi?%zB=3|MTLM$LrTCOI+E% zsQHE8hLe^iXIcOJ>C0aC(qe0J?4$SZ7?NuBi)#ztg#CK_Sfb-2kNVwHt;xpk<i7_b z^RA5v{;SYF#jnUY;RG|^)YnJ%KW~0_Ufi+w)PouJ)^p+=8P4oIbpGe&5QZb|lNU}p z^f_$*G4A7v*VfJdUEpwF(ffZhWv@T~&C!%G!+hU%8BvZTgO=YhkN-%1zv#`PBzeH; z!Gd@C&)jC7D>r9Tu$XuB#oqWIH=<aqBxXFSv6NuHI`>DjzP3$1%gP#^<1#B}H`!PC zx%Wtao3M&uO8?&fGUsm;`0mZ%`}ynr-?KmFo9~-fDJ*?0;A(9l|C$@w0xoavv{#+k zzA<j?ynDA2|D?Q8u3g`w{FV1J*Js{?2R60|dg#umkJ+3&|3gE-&fd^$`Hz+SEWb^^ z)IGWLt+L1TbJm}q9SnW)+20NK&M7>5{%dvF_aBnY`)Al6Kkv<w{_2zEy4%y;V(q^t zT;3&9C*0V!ZLjq7Pwx`uSA2MIcU#`Jy!CeGzvl`D{3v4+0cASV6b6Nf9)B7?K0BM9 z|EE8<`hS^(dH&suH>Y2|Er_s_Wjj0jq3hn##d$a4l&$~$Nwet9U+0nWzQE$QL5%I; z-T9%BPn@Rjy0Egj(0tPZWebPrpAPi+?dN;_vd+2f^yl{L{qAWKzj5=Vr2KVLyU=^< zp8chU*eQ|4w?FQ>@Z!rGxgJCNZ?dv+5=TTEnSMlYaEYX*-<=RMwN$StZFkNIuWGrQ z%hna|Opf_5H!kCi@$cttpA5v_F1~uV_dL_#O}h`?n{n{<V>_)mtI|_u9ZcwWvqSoO z>_H}b{!QWBy=T{*{-h%+)64gNiMSQl4ilav7QJ~QXBK=86HC37c*I=d1ux$#gF^R) zrN26=-R^Fl6~6gpsEB3X36A)>5BKx#@IBw7$8T_@dV_XP-wtcH+UiBkSAN{-o+EEz zdE(9bGhs?64A!09+;yU_@3nMt>w?D3Tn|h>aBRz&<L+@HenzP4ha)o?<s>S@g!VSc zUc8(6E&GGz^S;x?!EI$V{|t<N)U6G-;^HkXI%85EVtYemW_@{1nnJ?z%@6xium1V) z+uTahBhozW<?kXE?<V<g-BLHB%Cr7h?z$X)_hC&EL$+mMk72l7(U0SWzpR)fe;e0& z8_J!i`fz;j#h0IdK4<Kl_%)4fuMx+y$6YNO=Tz-?OAq`ZbEH=1MAu=>Tiu&Zb<5nB zz23cMyLHvOoL?0Q_e5FxCU_mQs=xH>!js0&p35b#Z(Ng9^JdoV*557X3-6oToM<k- z)VS8ojNx1Fy2n57teseDKS{8uHX$*?sYm<`Yeceib9s@G;d|TWdov@|yAzfs$L~6p zEg0<P!(@N%)(;thf`kVbj_-WGyR606(c+wN+J)ouZ*Sgoo7J(i&*4tr#xKc--Q~_L z__^<?kL2SUNxY?Oa%Y+QdmHuA`4k-(*uTgfFLu9XzU9)cb-$V4UwuC9{L-i`>7{Ia zUEeyY9?dzRf4sb$EqK=rp$d^3r;ppNEst7nEt~&_QMUNZ`pvh@uG_3{pQFJNyy3X* z=jR+zGkvECHCf9ZU+dbqEN!wXgIMGH$@|RnSr;yO)Mze~edqr_(eGybT2mH3D|ZZ- z=BUNW^r*^!ExdbyQ1gDlKUE1Emh3++qwvr{M{>W0%xfpM$^9#hg>QY^rfkuoU47c2 z;k~QBh594T3O=3_Z$fq23ww%xGcDh{`+t1@{kiS}4?e8>_V;tx#^=2WhrZsmxGtU= zX}|vT-Q9wJYPPQ{pWn}%b^)9vC#o`Zx-eCIeinW&?(J#w_NSBcW9I8CTYvuY`B|jY z?R(d%{+G@0J-l#z{x74Rx<JF-n_O7?ZXUcg(e~S!`PMgfr<XtcbA!7*NwV&2laJ7* zx^Q!^y9c<RA51uM?V*T*^JBOE;EB@4jj>mX|GM^lm^f3toauI5@iT7YsY@@;Sgt75 zmK*vk@Jg=4|K6L|4?o_JZ7;e1Q_nT`-8Qug5})@ytCBfpIXAi7ZddxjM2XXajI0%p zXM|k3wbqa!U;?A{B&GN1U*Bx=xn(qGpV6H4aZi8z%3Wi<exbJZtH*nFc5L7Fei6I2 zaaQ7<z7wa_*FV^?fQ4aZ>Bp0aEba*pU6OA;=@FYe`SSt8%=0C$?pQV(?>c>Q&6$65 zuT3ne<88hw`{DCv_P|-)G9UXaFF6X<Kl-7w=s{SoZN?t;e{wTjl#kw=yY8FOV_&ZS zy4*EadvbYX4kU{D?%i}`@s<-Q>k2fkow9t!cV*w+>CNHCm&$ycTTu2rSLX2s;|D6w zOgHxyt!e)I&~NSelZAi1|6aMX^U&lkYaV)ve0_Vk;>-E%8|9N5d5k2a!foQGh&_m# zV%pEMQFQjXj(*m8*N>Hk9Jw|@_|(o5Yb-M#9F36MWbniA-`9frExUJLoo6@i?awo7 zKAv#v`}#{Nd#jwdb^V`7Q!3(b*IutJ+N<#5(LP0)Ra#xUW_H%`EuU%1U6$+?k{s~v zO!blSS<~;`D3U2IvDp5*;L*0X-o5>14CTjObIyGB_+^8F&+eRrvl8#VAIdghdsnsl zMG5ymzT>h}IpT^wF}Tk>*wpKnuC6P?SANl=+^UN8AeW(k&SYlsp1#GckF9TVaJ41m zDcD7b@O(O{+%A4DKJeL{W`Xp#v&;9~6N-F)TjHVJUKNjI&u=YEE0=a2Rb=K%6_P!u zC$nthp62hC*9;|m!{^+;ZWw7Vy?&$dkI%m*KaQAp^`3q2>pj&Hr^_YJKTW!Qx%!U$ z49V2)w@y6Mtl#Aewj7DFKfj58O5u;n+WE(Knrtgr^?rk##k#5U9d~vevpcq}oV7wv z>N)dwt8}l>sZN?Zywn^I@9X+`zkK!^rus6D1@C^9?>`&3VWrl2c~$or?kN=y=FB+U znti9)J1OA9ymGeq51Z51g&OE;G4bgLeyaRGt5NTM^PVfmBE#iaj;7o-_3taI`Lj5x z-2JxQKkaGpC9IO(mp5eCCH@azaHeT>n7zE?((}i^?pa;>|IVw`_icX658E5_&{|T( zLq(`Bg+WEgUh%`5zhA2=t$SMXw`|+Hvh-*1;R)Y<{m6gw^vkyXH<`KRCt|KWHrR2O z^HWZn^}^PjRTed~H?7S}INTRCg?H75&kr<Z+67B$g}#2#aGxPraz*v<{~~ukN#(`D z%*kuk=ooGj*4SkG;<1LH!`l@X&-K2U^DxRo-c0s<fd5-IG2WeXPwHQtxp_*%*AHiO z469j}=gFkUu0PBmCs|<5qb;j>Vd2N~r=mhqW=A+3xb@TS{6jX?oDy?^xpn*Jy9edY zNNYEAi*^=ZHhp=DM|?SRd*YfmLRkkNij-Tb@NU1D!qNP!%R2Sh<@ei7gEsHZy7V%m zLr?ze?FCP@KWj?qxUai(QCylaBz%s*%bcLR!;<&gHW%8z`?%{O$59J86aRGy1s8&9 zpUv1UxcBsp@5PU#Y=gf|e7yAy*8`Jl8{5w{S-;@0%31VTEHx=|QJ~A`Wz5?y-^^L1 zUcQ`r=9T6bUt@hHiWdu>-+FO_{+XcQ+Y3I;RCsV`=Voo^)34)Sc=UeEdb|4Lj-#oC zX$|a*w<P%(IC*=Evu&z(-zmPQ5PU~eWQSDt!@n`_B^5qYKK;I(-L}e=P3#o^f-Uxi zykb)$5_((BnC7;txr@H@%Quc#{wUYNf34Y0-t#3!HVd9InqCQy|5-UjS*AydW0k4? z6>$e4$=5Fv&ba8ubQc7OtZ}qFYt$@Jr)%-L>S5J>H-n8gb?!=>ueQ81(Q|XSWm}+p z-SXtk>+Un>$_Z@dkh*%pt$5$`$o=OP?w*mE?wY+-`*Z!&#do)=y@>d()Z4?cBh%&~ z!{#)X-?KfN6`x7S{$Fr;vB}aP_ok5Ivl9<J?{JvEeltf?iPdHq|N3=Fi+;p>Oi&Rz zmd^U=#h0S}8Mih|uU}|jk+o2Lfi06=Rc2D}nvzG7M<u;yKEAL}ypVM=OLqF1w?=bc zT#$=6%4M*@vMcywb*16)X2ydF+)XMRPI0CC|HarB%-OPU<yyh&6RqdDU(bKaCAUJA z`^fr-3+{*7-cRt^u!ifmQ=&oDKKUgN8%p)q=e+5ft138I@=@_)$^D0`oD`DR^i~`3 z*Vq@?wrS;dy(=zOeBBmha8N=}dPT<h*mVhgiT%fF^CPSiTtqiL$a#FvT2h`Pz`n=3 z_F0W%z>#NhH&1JyZT(jkbNKeQ`Xj#+WDnk|l{tN%|Mt$Cj}O;B`2KzF#`HbX2d};F zk^DMaS>RV?_V4HIhd+Mi5l|7bm-JwBQ2LnMW}d(QXWH+3?`x7Jw%(UGcK7`Dq6+IZ z)AM-_f5?4VZk{aR_ue3FnzF`xZW*iXhua$K_9<9<&f3HiC2>Z(^=X+^Lcxr)2{OAr zZmRoqS@~k|G577u_1kivvwe2F^7L=nM1x&@r$pXfPF!km-N|dEQB7*yzSEpj8tr*> zSr`JQpILL6he_n>uBLr*d%g;9YBabu$Ex<`gEfbCFqO`CTb16*-`~IBx|7_S$KokU zEzVmf2;HyQu<rTHsfV5(<h=h<LX?%!hfjNx>A&|=uRl5Vs_68goty6jysw(^CFcCO zM^dl%uJ|I(RZ;n2ahDY@S84DEmpM&(>HAJLe48)Iwcz57kZ0bGO^bL`_OG3F`_usr z*_q6dLPByeeBaBY{_kXddG6NF$JJ8n<J2A;6kNW)`B#nP^4o=HOSry?pW9(nTHx@) zM4|ibxuu)kwT!Dzoa?t_Z<gK{xP8I(P5X9eXD>fv{A}gLOqR}sl$ZS6E$p>YxwotD zt>pf%8=9SPu=MTWjAe)Io`o%Sa|vu{O<}OID|k_EwP&l>1>Q9ekNu9Su>C!gZ;J26 z{U2r5U%&riM=*y0m&c#&<$r22d^$uQ6d%fN|9Iz7Ox^vs&HE>Q<5hF5Z#f+GR_w>i z(9GKbVsmC5IUMn8eV|?7@g4T{Kb-m|%7}NyMFsrV^@{rQ`TLCcE14Y*T`TS`Jj<}E z_PUkW)_Y$ij@`IYx@LXpndgS)+n)EITC2BfooHXa?DuUh1{{&WeQcXH3v9P(^m?x| zwJk{Q+PmG?nzp)MJAB&Fm5240NJ{69&%JBbvVM(vsxI*5PlDi?88>t8vd#5)=Y00L zu-)||&oWaq7v4!pRY)-6+u<&{RzK~7xYbFwvd;C#m%XvtboWNO(&cKyu3EW|dn}%< z-nhl>mPEmoezD5A8uMrP^m1I=@nxy}?#(gFv+X7e8eco5zTVLO_vfqY!n3|i-TA*g zxhBYALh%-j9g8}q8@lW{anS56^I3O`9glx5-tr*n%%<YAmp0y?+Gx&Q78&s0nfX{# zr?IQ#&UY&kUQ{1;J^!}E+B_otYuOpMxvZNL3U#=`)^4x7e9~ltWm{{bYR}H;!h0p< zYy1DQzc*%in0Ni&5w_3id)FoB&F#B!+^oLtoJ&z+6u(NNX32rS^6&qDnDL#*BJcY9 zKHZMbhWF}ISvag&3bdQoCb-SrQl7v4XIcu2Y~0_(4%1(Ix1Kh>uNiuV)n@r!r~8b> zm*3gTzdv!_eZh0<-~0YQ+can2=5^6V>_VOL#-MKI55YF>H?ix#Zhrdj>-^|zzj~vt z=f8RT=h>&H;eQx-^24|33mj}-%;?<x_4K@tO~ucSU8tI}dHZ1l_0*EtU&_)}h^JnE z;d5Z8L+3h?Cy7(;Tz0s>vaNs3_tw%+1?$43n$8?4mpsmTyj*?qp~zGFOgWFp9(%q{ z_U4>dA$KQwYUlZEWtIF`XQ$0v74WRQ@$i%5rL6z>CaR|y>K?g1C3Z2h!mFLuE0i}F z94r3Q6*=ecFQ3O;|Gp}*IXrzX&UxGP-_A9s4em%asRyszrS0&rpSf@HCi@ks=BZO% zJWF30>-jedPKlOz+Vg2fX|3s>y^BpA=)Fk@@Dz-@E}VI-e11>PdE-sNSL7C0NEmMv za$<3*4;47J`Dr(Mt(aEV_S2z`ZLEhHHeahv6*%y~#e8?&p9TfSqbHOY7Bu*WUz5z4 zwAtvLwaj+CZ_JxE{Lp#*F}!?|w(%^3sN3tdPo2S7A#r@-U8%=g4VriMI`D2~zOy5= zce6F4!K~RGLM3g1P7e=?rAzE!jx%91xG}T!bMkdVIk^KFw=4gI8@gvt5i5~8)1Ch3 zfp&Om<I>9ynp$qN+eLTmX??sbs7Glp(;f5UJI<_Geo=vcZfD#Rg$jYkl6?!(RkWMp z!u#f1FPR#}W$@u(gv916&l3Zt*mkg7+%<Jg>o1FU6Gfiw>x_Hjzv6P>g3tO~W$}6E zHr$m^Epb?v{7&BCZGLjzm5(xd?{9WCFEx-0*yYfBPd56(irq%<FRXj8>uaG|N=*Nb z_SC}Io{u~>3<W<O+E^vHlJ+Wii84)QS3Z1j{^{k9<@Pac-6wZ^^R6&fJJW0b+|v`< zMBeusKenH{T*0Gho-ezk=@ZvJ-9M{iMe>tBFnN77wCBIWT;R)Yaem+S7Kgd-5B~nT z_^uUK$i`Y9Rd;sow><y+wv_#yb7odj;5jCFnOn-;kJ`I^@A7WoJSP^UaN~2YkBr>o zoItC<ckcxEeEzif?0=n&eWDx(Hiyq_jo0_8jmSG#tL9Z=CHv^%gP??q&4Jr@p7>R> zN%_G9aW;>tH)o%^21Mj&trKNU%=y{){D{NhtIIr6GfX2`7+pS3w_`k1xajqHA*~=b zi|tK@p&Bnb&Rf1dy46ML1cz_G#?*(K7YaNrN}iH%qL1s|Mv<n2%3Zlhybf=s+>+VX z7NgDf#=JzZ@{nC)!;2;Vq`$?pxR$+hUuzr4edwmGZ_*591B=J191rXo6<rm>&OW|b z`J|}Y{Fn8f4U122vg`T&(Bj|LJ<{KQ&;9%IZ@Jgqy5!8|=kM44_*Skn(c_PYk~f1; zr@Y{WoA>Rt+aJ%D-gfN7hwb?>>;L*{-<$Lzr~UBii900uZoYDRW}W7FSK$lK$78!v zCH4rct=hKogY3**$JQupdi9#m(ZKx1%)n&=;+qcyRmVB4@r)GSvP{UdaCsm*vxw&{ zD_O-Ww&q$+pKqK}*yU`rN#)I<Yfo6-8f2V4mgD->hrMUg!#NB0&G?ctJ$tp5Jwvf$ z*4GtnY_+?bT>2yDiMomR-A*ZJzNf>b`6fql!r`4c;_EM#M*S{0;HSJ{gSPg&yPS7^ zN=x1-5Lubzo4l<w$og(Uy5*s#X~O6G7-buUQ??fRo)-yzZS-dQ)SGf!Bqu-IT~V{t zDR-ai?KQ{B@?U@COO8BloO!|V^@3t?i_dZ*LEQ!^tLJ4Nwz|BqW9h@~Uq3J$FDg#I z7#tWX#dB{j!_5rK1L15e6P~_0xGz9gyQU$_c=vlry(=%}GXIxz8Xj`IFF0pqsL1Ds z8P|6k&b!Wh>yBdp@445kj|19-FS`7<tvc{HZ{u0s>z@T9?>#!UnLSH^?`GnMch?J+ zs93Z;I56|LolQd?xAN`ztk1rD{*dq9@bF<>P5GIt{JiHc%}uirK2q!#tjzeR_TtHe z^tD^8H}8w8%23|1nRPES>nSVIYlaW!_-@EQHRIiO2ibYN&B<F?gdcWPul)DNWusbY z#FwP?9v>$)oO0-$J9{JF|0c_)bNQ<*rh3d06BOCg%xJ2npx1t&XVWUhb?skIILOM( z-PSGSufE^IP)>^LSROaWJ%@}*d{#`=*S{C-kv3Y8(C6};%P@FCrYs{v{C+u=taJA^ z9{>2BKRKqaXpP>nchdj%%oKH1SWqYPc=4^ODQ7?2FlOd2>%a2ls#YPJh2!;iTKZXB z1sV<P?x&7FT>QmrimjaF+jR`GkL~OF)bs8<HIUT%chl_L+bAU+>x7dGC&hTb{wmds z^1pL?$8|9~VQ#?#>;7)+n)yJy%v|<jo5NLYwxF7M)~$b?7!RycVE$fbr#vlW!;+=* z_dnWrD{tZJM8zrB`=i|F@aKf?xc^Q2!tKz>_dRR%%dW+l*X@hn^1diu-Fj8CZ|GJ% zwaYBGo4>ffI+*u!)v@oqObT@m((9H__7q5!G>>ibJ(yT4KiBLA<KphS&T0(JcSRaa zHacF}C){1A%qpMin>58VIKa(mqg)Ns;jE*@X$=b#`oDc@c(;cA1<Rc#Z`SXEQ5teD ze(gK^ZOyISzaPE+%h#wCfBm1_krO{Re`t_WHs6uHMc4Jik^j<;n|)ue+!ih1-y=6| zLCCuOZ!;EdO{kg{5nadryZN~My`BRv)06+znlU}t|Lpgz+4FxryODh@zdyM?J==eO zVeP+1pZVqgo#x?E5wd4G!Qi0u(YY%;zwYPezft=Pb6WS?%=vcyTy!Nf`!!>|t*iGH zyPqwz6-&v^xM)9l)7`Rb-R3JJ7VrNi>em%qp~+v?cw^p^UXP7;p4M!4m1GQBt7*4H zDsuztvGeOnsvH<uQ?D*K(#LQhN;l=~1YP&Cf1Z*ysq+(Fye%;~GvOjz>n>NZ_M0E& zBsZ!ped)?}>C~FEi3>!J9o;PcmN|2xz?RR`@@C7dbaUSnl+b-r^;&oHF23dE5<$|k zqTwg>0}uB+`D~~8(I9U9<2&ohAAGN#u<^O%jM%;VANt7joclfTOBiRB>tC(cHl7#P z2DYz?%I*6(@to$SO76|BC%(kF?#^4YLE_k-x<cl2)i=Ufd}AC=&6G8;nOd5jpOaRb zdCM!~0`KRC0q?IHdOeQR6L4FzLb-KwS7F)muk&`rw|{(Jd+_hZqqmHC?(2E!Zi*|g zT5n|4e=5(+YFovl-5SRN!($#ge0f$JB~odTweDJd|4!dqtLAtvKM=p|<J8<Et5*GK zpXz3FN_L(}-y$yk@?BvsZGYT&7jkd;g2y}VPn^2;@DBG+cUS&ebyjt6bW^p^!rAA1 z*Pc3KYFXo7q~+Oq{MD?|8|?S`r><PkU#*#>^<$TF?mp>H>1o0bH@7C=`MRh3n2+DK zSKD852S#j)pFgv(kB|3pm9)m6d8&J)FE3ber75W;klAl8zkMgW*q-TsTzlHBgW9-H zE6<Sqy0z|z#Fi5kN}u=os83MUI;C=bGE-Ba)WsccT-W)$WdD@^K3@3idc^v(SHIZ` z1n;O9=`Nd@^615qq7L!1M^7<u&dDm9=Aghi`QI6Z3Gb)g4Vk|0L}Q=MyH#uUt@srC z)ZV((^+yd4<HQ9Ij3WY6e0F5T-%U?g)-F}6%+1WW;M63g`e&jCPpaSJzt->gd*KcB z812h9dv~Vr=rwfh&wQ`2da288Th>P(A|IC)ZZ<qq|HkviB#9eO{_q9vJyggsSMc2> zw%Td8T;$W+r(e4tox%AbMZZ;-Uu-G!iqhkCd$c<?8VD#&v$p;3s>7OfqTs#th8%~v zQW7gwt9#z}H_zZXc0SoI^xpA%U(Rf~7sau#>cjKKjhnaKyI1(*bYxGD?4l`Gc2#WB zkalQi=0B4Zkd%MtVaIn4GxzI~cQkg-`%;&rAiJjXShb0s>6EyHIW>G9KQ4d&8MZO6 zl3%(t<Ms6uJj|1IBshfT^YAwBTan_}_~@MN^x3xs8&&I{7tNKvzc?Wvu$d*_J)U_T zXJKit!vDYS+>So!S-s`g)06dT%$k1fe|G-y)xY&0^6os??ym61JnH8c>-YEn-`|(p z>GG(ZFOq43$DaugKAw&L<F@<T`DwfU99RDRg;zwvsb_Xc)|JbrH)Jeq+CO>MUb#Cf z?IsHKL_IS${*Y!MHX*m^b3OZGsoFc*nJX4_9{y=_YDQ>mZJ@TA{j;x}=M;0k-AcJ| z!f?(_mgbMbCD)ivX&Yak_xGL9W3Gd**UgI67d&8E!H}$|dNpLztETkYi|-5G7@v#2 zdoWTwZT;OpJKqJwq^G(2{ZKj{b8tf3FI{Vscd|39QcT`Yom>96%7VMx-CEXmaee;n z6K3zu%V$`GS|+G9OWb9<!o;i6rQ}-W?8cqs8}_7T-V2^XnL*ihU(NSl)LSa}z~qr{ zAN!`Q|K9MWgeg=!PA&`R-6#L4>;CqMj!}DA#ga7N^zuDl5Y(_fKj>Sy?3$IwWX~@$ zst%iT%ihSh?8b>ZHx`FQh3)MRU0fV~x^kOb4u@Ur+hq>=$#NHJ8YcQm*|L7>lF>2Z z(O7cAtmE{>l`lolJ*^9jcDo*a;B&}nv-+t1^)F0#mCK6nc5Qoo<ng|mp0d={wu_@* z=gza@W;02dYQEwOYq5vlpQ7^RlOA#{&)*+cvNkCA``0IZrxrbynX|Q^(Trh^y?$_` zL|b}-bBO*r|6k%k@81_Cyi7T||K|057128r>Rq;7yZ%nD_OZF-m!RkJuUVeVIVAP$ znu~b*<Jv&6X@2gquQ#`M+;&QDf755&?B1#)pSJpE`L_AV?#*9I`YrhlEzj?$zQEYn z+Z}6HCo<cKZ~E1jZxZqr+eWv?G3_ph*|<z|Li(-GHT}xIHRWB#>psuR{j!Ajz?)}# zS6sQZU7@Jr;4bZ~{o#FAelcY4x9czUeLi(jqwn$HNCBCnrAG6-ay;HmS*Y`h?<t3v z>Af9&0T06+^uMsGn6&TvRPbxs&plOBI1X^i{hxbciIaoFEm@Hj)xCx9H_m^vCVshp zMW{i9Q{4oPj}Klj&pWO&dDC~EqD9%KHeY)@@y+sIPA&nC%k<iXo9|hCkCAVE%ATgk zA+?rU&}Kq%hT@LSod*`A$;k6CaHly|9_*_y3wkm8C>ztQ8jBC1etUO07Vu~7kxPH~ z<M(;v_y26phqG;)c`CeNvY(MjNLbLz@24lr+!MYgwaa8hNXtQ|m#ihMR$9+DY(B41 zva&(%owe1ij+<hiYt}!wyC%6l;#kDnWZP}MPcw}TUKIQ2bglba{BCx|a`{5Nt_hpI zF52v|$9G-*vYleRQN?EOw>>y`=1`D`4SUJ_8(-hl-Z6VuxLnxo_2ZrS@tO1OU;W%r zedOVf%gSvv4HFiu?|l7p_pJM8{l2g7NiBc8>b(5%^dugM1*w_GAKneR{yt`#{=d4l z>-YVAc=*4uBva=RenumP2_ApWv#j_uyS8|b`v0Q)_I1U3TJBFtm3KRI;?S<*ofGr+ zwii_<-ec^$Kh-3syspfmG|#6xWgg$TUq3FF6-aHp{;2NjQ3H#4Iok|p-&9X-OZc`( zp1thV|7TZTCtCcfk9%y>v-Gq0e*ecorOjeZK8tRBe$;lmxFm6h=*_0u<S><tUt(X+ z71;SLIrD4lJ=><X8i`|<uD;&us{GX~OF*N<IW7L-oJA@JUwfFFAL28a=JLG#vr1}t zhtJM~Ea^Rw5>jTdiyGLi^xdr#Z~wGymZ_VQ_@v6=Xqow(^D8bdb-bM3*5THtaj0U} zl2D`SZFhS<X0Ub?mb<^@`yTux<npmJvH5QpHV5>7x2m&H7cZ~V<H}hP&Dayxp1%M6 z%M705H@<Q`NZvJZ*BpgcN27kpCIwA2EIrO28J*6lu-m>Tt9;*_ws((vp1ff^r}Td6 z%nYui);y;`v$(bYm+U$BEz|4y%IlU#A8wm{_|nv=>v@^-DyGFAO8>pA=f3C7XPaHM zUDG(tk18*54-6INo0h*Yk*~9x&3(IDd}Zp^g7{-UJHGY2lUP*u{}3PV>0^5Q=ZtQa zO%1<)T2Xm*bCqbh&P|QjS5ID*Es*<EBC<M=`%vyTW|lj@xSyx@t(}+~xS{Uk*@J6d z@r1ZEaL9$+HQlap@8!92+dI-#$rhn?7N5>)emnMcqg>p?lSXzMdo3@RRdsUwb4>i- z{O)AWxff|7M}@E6);un-GdbFPTjb-<d-wm>ygkkDc@|5S-gEsY0WYN@&o6FxnD%Do zx*l~Fesjx3+!3bb{PPq3Rjxex^Y4xAdg)ewj(t*6sZ~Cm>-)HD+XSW5vT0x6>`}aX zxZqu1fBlhHhhI;;A$#usQ|;Y$^{(lc-XC+7PT$^GaIbuAGUxTgb(U{`E6XgL?Xl<_ zYp%f5FvZ1ZUoZLW;}+0rEK~AjajSrKi)d`m#YmU9dmH*{p9>{b=zQLx`D?z839Cj| zmEvnwD*<lV$mOl?k1jHmJ<4dRpUlrK<`^#CpD<Y=VC7eB_lZ&hf(${rwJ-QYuD_`W zFnDh8?Na&UY45-0eVFx4xLIlKh8T~h+&R`!f@k>B9H$6uOjS0O%X>d(bqCLBo9(at zru^-Dy-{xA_XmvYYyUTt&zl|+;Quh|N?C=B-Dl<bcW;D$yZim<3z5TLqeE^TxU_ur z4cov&&rCn_^UP`T{o3;U(u7R$%L}y?mVD~F5N~<!KhNp>V>UZ$e(Wm^_%}WB7Gs*g zF2xed8+CRs#U199?TP2__hIRIeXo4mKj+Tb<-rFlE&Nj6uK3)(-(0Lz&2Ur7oQF@M znB{!fq}S}|JN;dEhIMJ>(%-Rf3X-n#N;{VGH^t4r|MBL}e|N4X9$NHw>7w7S9x(lF zx*>eq@q389{PiDiH~#(eH#KtK+(%8FNB-MHfI9E~ZSlW;-LJZR?fQMId;dS~zgqRz z|8=5d-~VsD4;S1GUEz6u@-FRkj<%gql@C+jOZo-QnK)B>O>O()5J`;>Yp#CG=6_tf z-?-s{+m>M4iK#2B(vJL#*e~(wc3`^Qx@-xKKYi)XCo1;qY_Q(DRZ}}`=F-e1xwm9D zzk6rnICqb?gtt?*+GajUOPSS8l@E>?|E|$qoE)_L_{&!%FETjFEqm6iPhYJQXybiR zLL}v{w?snTf*s1YUg-*(@F+;NG7J2Qp6S^XxcgLtQQA~rw#bDO<m&Q&pA`(K-l8<o zWXF-E8XpuNPc%R1Bb2xIQ=Rt|mJ-WPCR4PG;*X_YxXG3;$Io|lrVdAWMr_GOL*aE_ z^k*`yj+&~g{JLc6GiC`vSGV%37ETsj-=F6&rM<SAKQ}b+cP-D03fE|lZ;Qgc4@+e| znA<pI-J6m~5tfM`*C+HwvIxw`eWf*7VfUf`|GTQ)ud^kGP3QZtiYF^2b*dp-=ni)a zr(~DITiB|d*WUMdt+&WaT<YPuHI37nuCdJdQIKXHyI=l#?<ei&7uO`~=|Ag`(eJ)C zF=q0^1#J@c|6<o)Zgk1r=6bE~OJ<dgl=<Y~m)G}q-Rm=&(DY7t#Z~(k#k)23JpO#o zuirE6(%0QGL0y3-9K)k6yWcF%no_ytsL145pWO<zr_4&=ZCqCymbUp);g;DJax>h8 z9FNpB_N<P&+F1Ibq5Au8s|SLC3|DUIu6h2=&?+L}RkzXXV(H6!9{(w{kzx(F`f-Vt z!i!ZOvYP`EtAFh~`;I4~IX%{V^Vy49eSLSzW~VQhdOxx5lPBBWT@f=IqwK%iMkrit zT-cKEp!faRy&-oE{zz7}vp6$ky=gzEFezjC(aRdI?>wHMyZ%kw!OFw)zN(eh^Yy;k z+5PH>;kEB#2fhEr^vEWcvuHa`Rp;(pYR|sdX<yV7Erzc5${P%udY3DI2`Ec1Vu`(b zTI$QYL=l~ql%pmyQ-%J;Z^?RMyd<vs+bIpjO$n?fYc8hl3{J>=<G7riwdJ^l)#ude zYf>qiQCo~!PpteFXmEMgy46|tCp?Jj-^;e%)=0W**R=~T-%1px-xGZ!-F@wqEVHXy zF6WdrJM6l%jWi?}WhG^jLT5HIC2FN7))*g4yKMb(D^ot#il)+JE)Kc8;?P{}-OpH} zy~=u9U+!l+7&YaBC-;(gkqH|Xm9u=Wv7gQ!w!-v5l#u*ZeHqaWF{1W@-O4RdS6v@2 zdwsEl_xJ3N&G|j||6ko0|3}_``TXB+O8%6eI{f%{`T6tn(+w0R{+Q3Pl5v8^pXg)T z>)y)m`O97Z?bH7M@AmJg`BwjT|DS8=Pb(KTKKQ!k-=&tx<qLv&nX}t}%uJ7ujo>?W ztRnJzB2Regv==UGmTWbbboCGrOL6_?J<)1c{6W9N?{=IKyZX-JoA1p3PK_p4CjCAw zU-G8Sh~d3V!;EH`=bkgyO$_9C_1rJ6;rh*YCOi}0zPTd0qHb-#iLkPiZz=L_H%_)L zZ(H~vvi!Zf+^SO#Tf);^96zq*>MF5RwB2M~erj7x>K3Dp17~b|7q5EYB-mSODY}KJ zg~=#W^vo<>kpSnHhxMxWo>FYP5GGM?vTZ`{_T$mM%Xw-fPWxRqIe+fT%LnD1a<hIN zzAVYDzSC$o3-gpV*^G<nm%gU&R!@1k+Dcn*bEtC2g4srOi(D47)qF4fePZ^<^Xu3x zKZYz?mRRewlkwK=gO-*rC0|>8NWD0Fxz^UieQc8(-zxAvsxsgapIYwXy+OS6O-AO9 zo}M@V;+`AN=DIKN>a_riO0vUUohdx2GYw>orkP4?@||d^viHxS!iEFN$K|$VSQLKQ zCAs0%BJINm>>G|cGXL`X{QT6%7lGN;{cEbi1)A2dTgIPQF#jQkL9i6x1pCF@xh2Wn z=E1XVUy05*#Ta*GYx%jQ1y3gE>iy1@&D6cA=4El^_W37EMc9@rh(GGLEs=RJVZXrt z5;Z|4l_f8uS&Z+jY<4@|Wu#=JptM-eYa9DvzSgHoE9OMpDDwG|cya2n;(dpI7)&@( zSP<sMd2q*}udj67^f^|&U9>ZNUG{oO_M`JQP2c0P_4JWD_rD~}es<E`rrj_9&K%jN zPPJtc_wOH{BjI>)ubokGSHh)LiFMD4vt#+z?{ZamkdYL)aWmVqvd2*hr=MKg)Yq3$ z^4oxA(uV$K)dda@c&1!5d?l3rq-xiVHUIT^Iu6`4PrJ4_nmc;gF`LS3kCPjwJT*!^ zw&cehv95|$GR?_1o`mGZh-rv+Uz>Jmx5h1Ifiu>VHwqkd?tHtoaDCjl&}|?8ZPY$@ zU|L^omX1rtIhX3=PZb+>?B#e8q&ffVC!znr0W<Ec{<d_fwzvN^wrA6}FOqef&Mi^o z&XT$3HP7wPc>%MS5`*>mt-3XZvagHmNV?l_&Gx%$+}BkP!YnqGr}(uVJCt)g;)Fs& z!rRTq>h>_oyElBS41N<lHy};CU2R+A%g7fovF|<JJdN+YaaR3?c}&V>>un939ecf- zCUZr({I%Pvv+A0zGxwD?iTqWEPfjaNpHn=2uE6iM2%fE4i{C%Kexl{2*xlw3spJ$c zg9nPooUY%PnyO~}p?1UZ9>&0}^JS<1x;bO_{M_m6zi+Akzx}@F>$mdTbN~L@egEgz z^STo~{zN-(bW!@4FXQ(<|N8IzxqSWqKc3(7>+}4-?*C_R|Ms_h_upgxf6L$e-T%Kg z_wV-wSKdh87Ls&Lb@G3#dVkNm`_cWq;$Oc$p1$2@wWkG7+u0xYQfr=9q%4yzJ*dsP zVwX|mhSZb|vwtl;KmYZVAAduC-gug(V<u_;dhgx+mAvXp=j(s_^UquAS)4b|;~Cdm z<-YkTzAs5|cDN<UD-d|tdcNf5vda7=xj|=V>UOSM<a}?Jpv8oj89`IlnQX~am&+Ha zkI^u0IeJ^UvUY9o2J^19jz0=goDyIEish?*Vq_#KqST|K!7DadzR&qr#QRfo+;27u zMf~tsYM{t$bVgud*_M@|i|()1cztmn=i@awFTR|6Gc8cd=!Z@O<G-KFKCwxh@eK*J zbz2#!9Q?ZEWrqDV>%TK*)>a2?D}4ICd1At9R_~-pxtzV}`jz(gj?OpDSoO|f@21GZ zd)}<DUV0#Q^Wm3UkL7L8l{orux72q|TaKj@v^7`dh@Vh!nphD!T|+#(t+{KhAAiA& zGE3#|tj61KXZA|R#{U=LNf!_LvZ?9spT<U3`6P=nwd5NbdN0mh;INW?XUBT`zBm88 z`S(`JJX2+ze)Il|<L|a_xKrCZrEvYaeKo0yeJ^wG@s;xnOv(|zuKJ_aLT=6M@V0YK zQ(h}E|93ckPvc(blZ=wi;!Va2LLLhq*SM4#A;Npp_2X3L`zMbD^!A@qbaU(6c_IJ2 zeB`sEee?HiEd5g}|NQ1T{|i?WJ}m9dS-9_^>ZUj1z5Tb?lZsZ?-Ti%4f8tt`t98LC z>kfEYPyE%J@H9N>Z^Gulo6M$GbMnsqUFR@o;_AFq1Mcr@&au?#`p*0#_h#+|-4`V) z7v(k-%ZO!FIvlug<B;%g)@zR#&v*aMP5Bq=oV4}vVeR)X?7lt!STld$hS#pInX6w- ztW!9lna=usN0}(=gDG0OpKU9Q*E2jWk<s<*cY^tk-wRDU*UxI2p(ya``uo?H*4Of1 zw7=G)A18k=LhahIUw4yv&s5%cUJ=CJ)OV|@s(0tz_3?q_2d_WA_jXz6rq}aAKP^@e zzb~(ot+05>tMXSb8utFV_L1eSG55@bwHx=eG4AnwegDak?u|i<ez(b7-DvKx=0cOF z=o#6~1$GNBE>frnROf!<**mj}`=R@u)i=%+b;V1yTKFzi+jG6?z_(3xyvgsb?~dJ< zy?L(EuGe=WIT&{(%Sl<5um5LYJ*UU?Tg_j+n{LOxZT@%8;la{w+bbILq`DL`Zd=}4 z9H(b)He+M0{q1iLcME;zacgU0*lfG#)K;J4I(H5)U`$Dgnv(Ii-B0)Sp8R*tLQ%YG z{w(%|b0)9zciKLqM>|4KqdjP*WTdm`EiIlb-7AI~bAn6vw%_CZDy;G4#P`MXlYf4@ zk^Jvn(T=*`cX!wS*r_ViS-<#%P=m{(`wDS;f4<p#_|w<@#yz+HZ;|8QZ?x%pzW(8x zf0xg%Pu>6X_Ww)szP;zY{rI~^2+P8K26L9my{)%x(-72LXHp{_KgS@g-Efl`$Ev9T z_r5>Q370q&;>&+=gX`O0GxjF!uWmOAIB`YRvpy$r$~W<w?Wrnj-NZirtFt)&`@}5y zx1T;T8}BLjCokfb6V#PoWEZA+YqHdPr#8P#ce7(JXI5W1sI@vdRZ8OB0~3zfffG6< z?aQs?7521A<#FsbjBftjJ<D^2`}&fE-M-7Ge9scu{YfWv#n0UfH|-PIHc3#9Erf+7 zWV5{O%0TPR`5kF5EyX&&iAv_EW^G^Gw&lWu-I6&=woeN4bq?U&<GMUvRHc)FC3N9y zlY3ufazj@-&vC#0>eSiZH|$*ZOXnp|t9ny)FE!}O-y8Feu0ChAW1Ha-c~KpMG{*in zr~7o4O6Rq*J$%H|GkLqzo}xX13=0>YGwTokx;X5#2W#7eC0&*AN*V=M(x2v(aQ**U zwkf)MYsI^dXUwAaE=m5A6FEaP_jdKl+}9CLk48mD%D=vny2bp<!Xo$YPOI$a-YK;8 zo5;Jjwe|TiTVD1Fb?w#_@;Wcp#+`fgmRa#kM^ugZsjKz-0(MNiE}PV5RS>>y4s+5$ z6^Ca&j~%o&GF8q{3k=>bz4>m=O13n&3rBpjPdml<HmY|wJeYgzSfqRZ;fKkmE$@5V zbO^nk>DT;CAf;6QPqoDfA%*1Hx}!0z%pEz~t|bIaPv4NGs(tY4KkvO~PcO3NaAdGN z{!Zp+-AlgYPzL5cw+$>l2YII@ml*24m~c<CK=ql|i^ea$ult@lmh9<z_DVK->aTsz z7;U#?OY_ax{@Z#&Veq%t9v|wT%xmb$*gpG$a<jsjNAfCs6?3IH_Jm#Ds}uG9)!n}L zrqlL)DSbEj;4`J{M@PTc#=YJ3|Cm+55xFn*cQ*7K+;py}clymYO4C}m&3$+$D4#WH zT0+o|o$qf*ZF99g%JuR1ze9~W!QU0^inqK>kX~P0R{OCwO>pUbkt?ji%IB6Z@OpE+ zU|+MN2qVYT7>Uzbr%ckF7q{}QeXV$9-%SyXBL{Sg5_&%`W;4yZIPLBJ_`>_!9Xh|A z{yH_HvS?QMRJ|D{3?IVzx7lc{I9|F*MsDZ3y~&&|yz6h3pU#bIN-dt3ed~MIs!d}2 zN5ZGv`1twv*S-4|+j_mO$oiDvYqIaYu7rx<ogG=7KW%mxv)wa$8!BkCqU)xX$BII3 z#bCC7yU!L01RwBktbLO|b*|)!*N=X`lm2(N;w;akH%XIS3p}5?*H&Bq`#wAQ{{O9y zA3on#xa;@L&rd(y{=XHJv6aEoYW70&-rCFE|M&IsVf{Z<*|+1R_1A7+a4Prkin7Fw zAHSdeTK;xdZMnpactxpuWu3cPjm1s(9o8s%x%2Ap^NW|~H!i#>uC-{oAM;|Dv-1!4 zx=Ju^m#Vvvo%;E6HJh^xU#f(^Sm_t(+eS0jEuZ|a`%G=P?6UnAV$a^V`Yo1M;vk2) z%z2Z0Q$!mU-c5>5{A*vreKGq7Ur9j<OV4$e=lQLT$8z@E6mgy%>6NA%QGEZo?cs|b zqT>G4S*-7tIjnqq;<uI+H-x@8<s51jSDvu(eRxW-Pg3a)|1Y=Y{;xe_BfjF{`%_*! zHf}p{AX$4=<mY#$2j6YbiF@<l=K1!*(sD7z#(SzKLKZJm*c2hi(_wZ0P`0C4(ew@B z7xpUO2&nWoH3~Os5OqoN{iap=JYm`bhvxJ(fwSwET#iVY<H~e3bD3V-b0HS-t#@A+ zIh0@PZ4SzIOg3d<i#Y!3+~b>ZT&kZO@83S-(asT3JMk^|*7qDfEf-|gg*UQHb-l78 z-A&<vQ+=V#>Rpc??P5>3_GV3mZdF-tNL27|i%Sf1J{IV=d#P&PHohh%v;UXZQ^we1 zRe=YVExIRZd{Ok;MN5a$t1I-w&f3h0K4;y<ey{jm(<Qm{OQcKLp3K;CVdDhm`(dha zE4c$y_HZ=n$}f~M`MqdO`QD>@(j*%*_9kptV}7mI+H&*LnT~>YTovA)`ZiJa;Ib9( zuWsSp+a)y9N$T&LHv){h|2MR}?0M|JmbI^Q_2tJ({deYHn7Zk7re5i~w^>Q;XEwDo zzqohsM8uOP=E}uSQomiFa&@1=>eFA#)=P6P+_va-^pR~FEbY7d9`;DtI438pkbA!| zUN?Epx^15FE>2U<GJEx#wL0!@D&}t0+bf&yxMA^~Zxi*-cAvX8<>I|5`(xtPuujc& znc%N{;qXcQP`}+Ww&hpuCVpY?58mm%#b(Z#MdGPaPnQYB_lYX4`&aYLnE8|#<E57o zS_zR;8252Tf0&hiy?e9k_I81`IZ`@u5|J}FkBQycDL!rG=AsK<Kh?Hgn>ypOqD#fm zx+?CH7Uq>3KO1c?JLq$0YI6RUqX!oVg?>F5G2@^>to`P9zhouSzDLAY=wEfMc5~ht z<y_viZtFFTsLpSTKdyVa``3>ToL;YM;@&A6c%*f-6s1pic)&qGru=2tmBTT@++Gbl zK0BW^tuMBps@BQW6?6T2(VDOCW+-i*y-`MqsW<)Z=4&VJ?0&72o0xEGy<;lhi@HTy zZ{2=dIsGtCMsRUEqrtv(J&l<ONeBAZZhhXrG~o2YGks3H?=3dP1w?)DR*v`-&VM}q z$F;j3`|BS+{OJGx@$={Pv#J<7kNoEl@m3M~U;psx?Efz|C;8VW?>TIrebHO8&1d<? zMwM?Bt(L8OCZxSR)-BCr($=+N9=FKt-M^%jyX|=nZ~OH0T}YBe!eN8rr*Xx)4T&AQ ziuPJRc32oO<@%f1o-QjkZ<Bv@H|<rQD%bq&A=3KK58s`*yJ7p?d-IQ|tuQFy`_6yZ zLVo{_vMXPA<-U@1`k|-VQ_9u7Ghw23x%l$Ac_znh)y+J&-m|9Htz6hR;ZAbs+-=)U zr0t_$F^jx^XmCQ4i?zH%VCF)(o5sz1Pchz{s@N-Z$*)l*rLxR&#k%$ji~n!qS+qjF z_1Qt&*Y$}7F;f}$bzF;lx@VQ$))Sp`-fmo?X8$kx*#EhH^%*}7*O&C%oE!V?e7o-7 zbKAZ-&XhgJyzAf8_Q2oE12Wod@6Y-5mT&%Mm$0Y5L!|^`Sw$GQRO|RR9ANx>=Ks=( zM=nkgjlGd~aqrry{RMJA{#L)X$=_I3Ic;%Ry2HW$?2Gc2g~cwr6=EI`XnkMjl;^7| zsrGx4NjG9=&N`>g$-Cs7Sjw^e32rmo&9{ZFo^?3fXr=9f(yG>7WdRQ^9@8_rmE0qL zY_p~D4Ut8Wc@}0DPdx0&UDUdG&5@TE9;fT2l-?A$v*6;r3!D!>6xhF;-*@@nm!%Vz z2I&0S|9L^V&h;6meP@PW3Cz#=`ND6;byelX6-oPlh&j%Cv24RjOSY|Z&rdpcex1Xe zLpxbdM@Y%b7<B)8owD*o1i$)@SkVZ}th*Y!t1BK<?fTVGt@c+tx%Sht%Hl&-3;+8Z z<2%CiaB`1N-F__vqka3sGkP|>X?ipzpsf69U3|Iq=6(*21-6e|&(B}V5}+_&vTmC8 z-kes?=lwUs_S<J=Wz02aW7*xJbC5yf`p)eE`yEZM1uk!1@Wkx-=I!qv8}I1oRd{~X z_<ZYIG3#56a$Ed!7F=$(`t|U#`HM0K&i?L}XCce)mfV%I_{t|eowZS!tJ935aFfsD zzR#--tbNp<e_HhAsDb^C{5Y3~`9&YX&U(J<jhKE>N{H{f+N$0CFKy?qk7xeYsO>G= zqv~X+qQhuuFk^{jyH2rSbUK@QzN+))ynUJSht#4gV~!X^P7A*7ZWp}&PvJY;TgGMY zHuBhc_A^*Wy?(}Tl~(<*qnvfVMqS6O$}L+`PPS*h*;DOdYkQ;W)r&W~sv~E;-~aB5 z+gaObciDJ_I_@f6*uK%{(29#e?acQ?JH9!1+3rd5jxCA!abkhutpoFp)<jAMuxY>J z`4-CkcP_^(#d&cHE+@S*GbpWEbT@&;*k*?M#ONtCSF3kdm*$6yfB$Om{ORwaYmdKP zNfYS3#l5Vw=$YN+t@}3i8?1QXsFe03`OitE7q(2kf^EH3|BgLhcHmCo4dvgPiudoX zk+}T(=Azy0Q#p#X6Lh!v337KoWte(bWP^)-!n?{1I-eAE{C8&Qo!BRJJaR8f^49-3 zHdFThepkK!UoNPyXr9Q^;PR+mK~DbvpY49@|Lxsx8`o4{yl3CNym?o@or#~QczNpN z7vZVL*DX0@C7Wj%{bl$2!;ulMlotPJFtc9qu}pdK%DB(FE^aJsUUL8Nk8l58_!+h- zb1<&pm6T6=T~@{`Fn8YH6X8-S)^|P3o1~)5dOyp{Wn|3ZE8tqGbLT?3+)TgqS4&f$ zKjg@>e!0hW<_bMkyFIh4S!diS_<E+{@|(MnFRD{s_uPz<5O<uIn<C+&;F5J?drD9M z_hHXTn<F(M!jvvwo}Km8v);9KeLd^VhdcbP&2txMD!I)2b%BV`9*O9}!Zn#&PJGla z`g8ap+tqKbmTd1HADHv>*Gk)czb=0ZulwnLbN<hz^Edu~pTGXwp8EVBr*`+9u0C!d zl6Gz4*H4uUk5@dd5%GP+Q56v5b6v*tK;4>Fle3H7*d5s)^Y#Am%<HA*D<}8I%g66c zOJ_LmQys~kaZL35G_4=9$4o?@+_Wm#Bs0zRyEZSw#Zcd0{1wXzy2`G2Z9cp3RRQ;I zE`zWG4cC{vW80On<rI@;@BJ?|k_->iSEpO<-jo$5_voN;^6Xu03}TxfT)TJPs=^|w z&NqCM{v64`sTUU|EMZ~ZzHX<`t4|ZBX203A!J9{SP4LwxyOmFTniG19FYV%{LN}fU zZKLlI&3Rv(o?1r<nXO$|&B}WCVfX%Uixmm4C0I3MHAIqc&${;8iT(J?s|6n{k9{qf z#TV4kd~l_yCAaRa(k>;t+t#zrnx&n%Qu>a!f4xLTQDeZGy@mgG-#R`s>;A-*cG?o+ zG3{BK*Gc#-IJq!+uK9}#OHU=nZxt6=n>kfk<kCgobB5o0Uw2z79k;mE{_VnD0~VQu zM+1%=nwcuTQ29dIOzYzx;}|V2Ejy^zu&<pd>F~;&-nTmG)4BZ&E<BDc+3Iurchzm@ zU0yw2Q<z^AeYjrACa1CIdHVIwp`90f=lC@$ZIGRp-{_m+_d{lf(TtnQ8fSzi3GI?T z*wztMDHH8@O77;bq$M-DXI}7psqff1|BT98$Bw76rvH!r*-`D{9j&jOW!;**^ZceI zofFlkp46Cd_-|wJwllN7P5r${^Yp&eX>#XsJC~n{ef;i7pMIV0JD2xS<|m@&S6IjG zDzWLc{p~UFN>S2uS(f=>?}8uRSg(F&<<~DSe>`XJ_<6Hv#_?yHV*`v@g3LFF&)b<_ z#<pQW=;pOC>OXE)o|83NSjM_}QJ(#~=MK^jH*8+3IPK}Ngh{8q{)t;GqatDc=GSIr zg+qHSN*MSi|2)jcf46C>V{LEJ_M)!I>(rZa+V-A%_OZVvKcDAB$=>V9N6XJv-mv^v z7b?m3e&$oIIKQJaVi}Xyuh!|gA3j~=wef>?huzbe<*wy_`TJ?@?&JTDZhz;$|I5+O zpY4D4sS0)48-Qo-86TMZ|N6tY{%^sboAL7cTleppaydGBeZX<|MHhMnw*(YF-)@}! z)K6l@rbYMpmhZcCFZf$(>fZ+jOw*WuFV~ljKUJe%u9iG|P0&^L?};9|t!x{O8D<17 zW{&I+S=at>OTfhIn+qy3yZibcG<O?RW-EP7FIQ&zdoYos-{<<HV;6t?Jv9C6wRJ1H zUD$TCJ#@&jk7c!5fA6@|*Q?>I3S}!losT>JaEh+cHgh)FtS$3yEf;217VZ16%!jd; z^V)}SNuI<4pT1AJmjhF`tm!?Tlr_OE`^ts38)7`OUH8RKz3h9n^vZ|Tf2CgUNxsc< z@JQC1d(TVHyI0r#Vg1ej|C9D_XZ!ST{{OT$>+A2gUH9F)OpM{{ttW407k%fJ4d_h& zxGRFWPp8v_=f_;v$g0gR_Bs5r`KoYAQDf&-r;{>C{)ZF3J^Y*_@%6FP|1Xu5p}uNY zc8O1uuc&{!V(Yw_GLxBQ&c$4uW7G6ZruJr_H`me6%*Qi$#dTyZoG7XcdttP4D~HHc z_HMJf6zQJ&(6mpI5fKK@Yt|&3=5O9z$!ovn*ygjV1b;NLFIKp>iYKZkdg<kN=Y?)Y zS<Q=ke5Q}JH(OZu*qJ<$^fZf?5)*IrR$ji^btb8AcB}D?tM|A~{_CCPozG<J74t$s z{L7~J5V6AwEYCwj6`J)}cC#8}1YG>TJ5V^uGBM|c&w7q`qM2eBe(FBCRh_W0>}+h; zX2TcaJls>Ie(YHhW&X}Uq_bA+-?`>ajje@+>($)Xw~Mh|=iGehj=I6yj{(xhm{c7% zFL5t@E3w{auKSt0tMp&bib&h!zbweYWXbpXIedoM&rP>YOq^S9wE5;m#YGKWXY_=( zUs65y^@4IjINOc|$Ne?eZP(>kv?(q2;Hq7FEAq;370=qV{;ref{I}7OpYJF8o?YO4 zNBDNQ(t}2^rZ=+=PFnN4lAkBdrF~+-q(4$un%1p&%rVEK^v{f621%>GoVcd7K<nA$ zsVCl*CwKe4+gx&1spG)j`Hd^j>6C0acjQOmxe1!vB0Eyqv~^wnbsgL5(p&k`ctPOP zHQy_y-N^YKz2I#2nT_G|Exujo{<u*5^Eu}GuWlWf#Gm%&u3?<NXs*9)#+g1VdC4aM zI$rv1hRf|AemwsE;;c<C|6DNqY0(_X;gPiV<IUg~{)|F<ZkP3}&uS?VnkKj5?)p;> zR?iK+yLs+ME;xFyVe<S95BDVPllZ<bTKekL*BfTAZtnhF8R#(0f8(Bv)KlpzCrv(- zkTA2#_^8C0sb;><e{ZUKdHviw*?&Az_r6>4H7SJeoBe|$knQpN;*2v3o-9@R(3QPX zKeCx8Ve@R?%P~_l4Dac#kMKJYU1Qv|@BW_M@{JAG>z{Q$@Bd%Q#w65f&j8N*-w(+C z-}SF^|Gk{w)rSrKP5s!kFWIc@xc9xIZ|2;p3Dz}Fdy=rE-9q60Mm;_^MH@Y9@vW;C zU2QGqk6Os%v>+_?;fp70mn*+Ge&X=_#jUe7HcedlY1aw2=ZoDgBv{3_Ze4N8LO<Zp zKBZvR=@k|m{>heym6tz?_1)`vGHOlJD@K+nx;ihI9J&_r)NJ9%5eRNRaNX&mddl1j zm;C=8(0y_Ku*u%~B@+WOxBUK?*<F?rJ2A9Z%3J$#<@~<7Daz4%Yty8f7s}L|1o`eh zC-0P5WVWk>Nx;J5l;YJJZ3>HAr+xQ0ylcXu%p}Ggk6R3HuKV`){l6`>|IW|)d+odZ z_SZjuZ)5$<z?a#4m|3-4!fN_UE4I6m=iZ5|3bIWN7xOc{AAA0etbzsGzn*VXOJ9q9 z>~nICnaklYJ2l>Y%hWA1vgK?drp(m-n3`7q>q>e+Wb3WcKyio9>)aETPi%_QYzPZY z=eoE@u1)rJ`@|2f6P&*rzT9~?&vYx-odquC=>gdbnY-RhdM#7Yu;TrKMamf)E@v)H z7UA<x*?w|aL&MT%UWHt%yZ^_UTY4Mz_uQYIRJCUIUdf|L+z)OkZ`gRBC+lLW^BcjN zmVpl?r*J&qmsO+uLR2z@E&PRj)|rj+GA?Vwy>%A{#!s}geKqIclnZyR6ubXy*c|%o zhnz@4&~7~ocIilwjPq$_#b;hTsFE*T<N1Dr;9Z$Jv8ziocAM?7Gd}S~)X(bcs_J`@ ztMlGyG5o5ra8|wHeTDJC#og2P#NTdweQwLY-Zyf3shsoHt`U45b48+EBXecZk@KsX zr$xkce(OGSDEZxi^LD3xe*7E#_E`b9yw0w4mz4tHg<A!(-&`yY6`Y{7>(89(U1}U_ zE5oWE#?Icts*`o%u3((TB6HV!YN6E^Hy)9j@s$78;SF_3`rQd$2EmKw#l4ohzRp2a zZt?Y9)hkcBzp1?wsF7e*z1uy3*|A4>h7eDU%iJBljz{k)cWjU}KK(nz><mMp#qw)! zr*-OasRTTk+S8MkbNIMz>!DezU3W+HE$lyjS;sNq^ubkzJMNvZc~K(ZG&xDe#BjRF zb&Ka#N6We;jEnxQlw7#=!cSQ?$<y5lp4X$oZ^v$qRAP1Cu}9?PZ4rfpo&Mnse2*U{ zM~Y2Ro+6Y~JKN?BmzCY|wE2xw*YR=iIDOb5nA6|Kw@frGkS)#E@kZ?DNJi87%PZa+ zJP5v0H9^%Q_WZuAHzy9wbS&=pac`dH5o5&_FLaH|%cMD__-;t6Px0Jgkoxt(?Dq%% zeHU0GXxw@J(L>++^Y&N9{J*i??|A+D?$clArzt2*{PErqG@W<9(fZ%?+}~F}KKi#c zF<_5l+11zI%~yW3UM$HrH~4jCN>%jgT`ShDH!gO*cB{fu_qw1}1#j~g1EWiM&T;qm zFMiB@c#iG5zpmY4_bYZ@dl_=DP5OC7#oyp-eY{`y_`i1#yD2MvMLGV;sX12;Kk7RC z?m+*W?3*F-u_+a&4VPS$(t3Nw=k_8qo83Hb^aR&O9V{zg&f8n<8d|^p<(IO=+cP7N zMlOziBqGM-y?4{o>2pi>Ui7cD$bP;0`iTggRCVry*{5Ik`Ed8ix;@Z}dZ^~+(DC?d zfm6x<AJ(j$d2c_5+<$ld#r>~7?-T#zX-mvDGM@j|bweYY$!fM0&Iil_e9x6$nbW3l zGf_gT|FMz1Y~w8dW1DyOME|t-C(YRK(I-k>c8ck-tmEy!?wsJ8n_=L(!R<Pq`kk;& z$Cc(gqk0S#nm%whOV^1XSAO|pbI-xh8FvkncDvYoc2yO~o3nG%|HFH)cGv$;`Tdl6 zuIc*D{dEs!oL68!$`BbZ-*-Ip%2#gLn>YU+$k<@L`{?t#&$gb4zYynMy>78gjpXqc zFW-gl@K^8U3u$)Rdwu$*bGOe|PD}KywB06SVi}%yMqcE?Lgl0W1`+}M-wXJ-vR1FR zVebhQzjNmy$ECms-H>hF*YgiIJ}7qI6dG%F$S}*|eAdNn0`W&9bmsK$^;CbtF_$gv zyVQz3Ip5EgT<dFav)IN}adtuT96R$J+L02XOSP99&i#KwVmbTmb@w;t_I&QE`rK`_ zylBp}P{!7_g_%Emw#2_aVb>I^ysLh@Ms>mhf#QSS;$=Zyo*9C&H#9$oHfn`TviUe` z_ohqwGtC84G}~XUDPmn;a3<p4gZVozuQg9SEB!^)tMiQMO@+1LtfhV1ZO=ve&b{8s z^IzyuedzZ?wJkZznm0Cg-7MMVT%NKflfUTN$35$AzvsQbuJi2X`|tFxT<-pL&HaHu z=|BGD3G;UP?VfY`kkz}JR)S4a`j<FYcV7DzS3Td5A@R=ti=|F}MHjz6_^?%-E!U~= zezWur^~<Gmwz{&--7guv)AsR?(@w|h@2@NF?+9v^POaIfae9&8QFc51QmYrXH$=m2 ztuIFeaQ-_c5g{7U^`QJ>@t(`?LxbfR`B-;u2-j_oeDt*OQ(3Oq-24|D`bixDJ$yN) z9ec&jq@H^|-ErlqpK7vQT)k5_P7hrd&Z5=L^y{>mE#I}J&cO#(ggcm4-(r+yoWQZi z)j|14M5JFa_oE8V%S{X7V^2!$nPZ<+?<^2~H{F8$$r9y+B@6z@%;u=+ZfuIqnbp60 zUU_Ojz*Es0_t$@KeqH0mvP`TsaayI1f#`MSFAd++p3R!Xn^#;Ct9=!%O%$E`a< z4}EXEt=}`z?9AtrAqRhl{GNBuP+)%S@&9$dg7@4@Y<?@9%Pzm@ZS!`Wzo(M!o-41o zZ!drSU;VFFhwFdNk5roY<Gq3;L+6ot?*93ITI28jetNy#@VEBkqgCQpEG4?8zS_U$ zvTek4sroP3^IyH2D{^jjR{7@LPxB;RXlGshe!7({C$+4@$z8Th^At<gmi%mE=68`@ z;p^jX-pzE~_U-3tb;~U4*Y{VmEV7Y~n5p|I+jZ~$%g>@+{?BwQTs*;zq1Wn~?kUb_ zZsV0t6%J=DfB3X?a^1Ygvc?UMm-63=<M`Wn>1D>E7v)x|3&RuEbne|MysFG%u0#Hl z8LW5rD$l+b5+A9gd}*=Wl)m!bD^oRAS)5l|zGJoh&Q_uNiI2-24z!#T&%WeX&KI@z zW7LQA-0kVozZm}&Uod&E!?XItq+egnw^)9WyS3lG?Y}l>d~Bjd`Bm-dGbaXrt63<= zaJ$#FTlHvq?Vk&FZx%flxfx{WtYfrtiO&AIn70)%Z))~w1zggd@=Wu|^5@OJB^t%g zPpWb_@Y<sN;?)|Tux*8(a@0>LE-+6x!%=3{lrU{d+V+~X#e($#KaZ*%7mej@)8tgG zPJ3g}wdmuyZ3V4KDSNhy_6dGU;phoiooK|Db*9y8`KlbTSMTO@PrTTrvtW+l{(H^q zw<<GvskSgHXGgs^F}oYL?apka>ZO{AyBd$>2kAYxv7FRu$a?z81)pQ5Cq56puwYfG zxaOnlFJ~zIj`0xPpIT)7cZbqh_If^RQ?Y4@U)Fu?@7epXKJ)*%`M-j{U46gv%MEr8 z*-MOX%B*_Ti|d#FjNB4GVc8kW^QD5Nhd<U-uH~A?5UPD%LZafJUDEgFkH4AcN?C0X z<XiK(IL5fh<)g&RMwdv3i+h{`oDbT3;Z1MQe8wevSCp}RpUjgxCq5c(6?4887y16h zghhEuuBq;Oe7FAV-uHp4<l#A6fk&yn(lZru(zi`k70H?8B*tvj(b9M5%sj0LQ9F`L z=bje{xvFn5FK+w0gUgiXOYW-hXm5F{&2ukcj!~1g@AuSO!SBDu2{LOLT~1)vF>~cx z)D~a;_3`7xGZU??<MlYc+?yf4@$Jv@KQqK<^R%BUb!eZVGb3W5v2<VYs>?05FZ>PD zmKE=km>ISD+S^5+TN1MO_ikq5TDCwq+GC3NoBkP>xgM0A+Z&g3{pB2Uv9(;a`#GQf zUR0j3`J|4ZcAJid)lb(o+asekiNyN%tTlQVtp1SI+QHBM+<LPW66c+d{}$WrIGJNn zNbBzu0o~7Yk8QYp>cMN7bk=LWpH;UATSdx=D4Olwd-|QgnP-37-<>?z)N9gQ_Up&X zh_?^tIWBzrt7i878S+)^59ftiEjCn9_AI_w|8SS2z>=pn`E#Q<RCj&#QFLC+%Y5zO z-5ZaO$rbE<`RvBGmf~%%bJwQ_xI3~(-|wlf|6K9o@qH`V`j4PSg1WN8#EM291{I-0 z=lA@bdcNxS;{UFhr{iUh$p-naIQ+e5`Sqva*Q$1ZJTvR>De)DD<HNGUeWg}*6vS!F zJU{>L{-*dAu><$)a;nqZZr+fd&88incH+Q#qkya5PVhc?{FwRlBirB)Uj(zBFY&4V z_Arp|gxy@P$q7@_>$Q!T9<P7h*~XM{?Dw93p8D>8H^1BK(ax~V=lS#Sv_&_KXTLq< za6XLJb_UOe#r#EeUn(7H_Z*Z6Fe?b1R=elN!W(an9Sofkcs}6VC+4kf!D@5*1UB=n z`8zH6uF~a{tni9Sf@{w)E!yt%#_QN_-$Lt7>w|3<3cbXex3BsZs4MAhVZt?G$IHMO zypCx*-In=md8SuYv;X3~!vCsGLW(VEOXhm9yb2SJwY=uaXVz17u~7BE)8m$v>t7VE z`CJ-2TQ~LQ#d8~Pgv{pa`o4&P_thKG2RB@6!y~;pTrOUizWH5xuiZ1Qs)chF26PA* z^1X0c!L~yuNSR-K!>5^Ngm^o9Tz!q0EHA$M(6sAYnm)^+Ju(h$+P9fcU7UWIZ}(=| z)H7Li$#NR6??|lKc)@bUxr>dT#goNWeGJ;Kcjns0BWYU~yg0Qf%<Xek@#|B*7rLuk zjq+{hG@m$gvhh`sgVkw4jc*!KdA&<l9dLQOiqnqw@edQGX8Y9oCzs8?Rlm3EdvJcg z-08MdrhRg@#pM#`6Xk!mbx->x)n;scJvHXGlKZ6`tH1(>h)YW(SAJf-c41W8#zo6s zd}{U-j(quJ{h0>ILmb`jBjt6rxWC{$&G@qDmdp3AKDu7ZUVL_(%<}l6S<0{M-UI$m zi(ltB9uI5CwNi-L?#_B?h4n$6ubtOdsb(0?Kjgn|VPrvA<Yh-k?QOBMv#pN#GrCT@ zJXtM1<kcaEA_HfxDSsB`GG=+Yv-b$ZKdI;_>R0gCZy7p6xVvWWU8mOhJj|?dB2OM| z)o|9?CTwSTPug8yS30@e?z{N;F2*T0tG2E%S*2xh<%!GcrAccR8!?-!$CdZG%PXy! zWgqu0G-+R9eV@Yf6!XaatokZRH`3j1x!lbEBzbtFZ2~{nUIsS4cam#9l<p7{tUD2w z>}LDT;;m<)zj4Qcnd>djH!S@1=2U0@wN(kxB4;-%*~%|wNb9WSZ?}<XE#$sm`0rk9 z{N`rQ{Sh3x*An6!ek;y9>sg)8@_rG^lcvgE1;5^}C7~0R6xsK!liIv>@x0~Vg8Xjl zExa<hDNAq9_S=bHZI|@DTv`6-3g?c$CsU3t%6=VTE|YC{S-{ifr^@0}X&2{7d|v52 zU71Px&g9n*1=m0Od&qWM)5HoFb}{kCYrZNiyS1+2=bhR2dp_5EF8T8_U$)=gnu&4$ z)W!yvLvN1$wwd^Y^XU0Kf1jnlzV!c?fsWnp59{5Jl}RvcHC+5|>$bPME_=3WeQ>+= z>v~<*jl+wa!^_KTgwFcN{aN62>&d^5ogvxvFLwu=d*}7m-QveR)&&Ow@+uMyfBB!v z4S&|WrAmu+_rp&gPG;|x)<5+5v-R%}54FF%c{jE8%v}Zd^O^fs&Yh`oq4e&{#>1Nz zUSTNs=$J3fzW8K__s$EO<i3|%@H!s}ZQpBGUbD@%c7gIEx7C*;zc0Aw-`!Z+^P?v) z;_aEJfd4!9zp<=SJDz4(W;LNvIw>-1e|uE)m5T5SPclnnJy^eI%g%hM_E3){ea56C zr4vdEn-tyJXC2eDl2{`pooc@K%%a^D*Y%Dc%oFjj+7nWwzd2Mk+x2wSq~yGkEPi(j zi41Fw{mUOoUUsZVoKT_J`h8YE&t&$ge%y09|Lr-bkn;aYQ`L6~{q)EUVm~;egt{-^ zi2aktB6aKd_W+&tS6_a7QJ=qu>FL+IyT6ycULC9WC%i0ht#V$%#HVk!SG}v6apm&v z>-Nb@4)R_8^wZ|g2mK0J?W5~vv1gy-byGX~z{Pm$=C;>Iif^bbpZ2_ny<%_uk=h2C zqPqUDmTh(i7A$7o5#6uzKg2eD8E>)FTvM^xYrlEPMEC8mfB*E9mte}7-r|btUySXx zx4IOAJI{PQRvgA!{%z{7$p#mAk5%oib75#O{e8AXh?Tc%qF7$wlkCg$HMBfGZju*& z>%8o<$@3p2F^B&frrGR{pWSj$;ZOVXFKp-58e8zS`@g;VP`s`FQT5^do4&u_pB?>Q zDEo+{89%@Jk+*hrKd0K-#^$n_s(o%_t0-TkC-eO9T9ZRZ?o8yknR7Z)B;cd1lMdT9 z9p&ErtNmubJ!hxouq0vrdwwBV(^S{zpP74iHxx2vnQr=jO5k^CKf{@i?*z}^yMDdw zXU6Z#)!lirAusfQY@hz*$B!+BZGOV<icC&D%(K|bpM0*j^2djS^YJz3!m4AnUQJ!g z6M6ez&XuH_PxL=liFelhnv-*V`Nq}_stJMqU-Wdjf1Q80<<!be>g!m}EIhl&n$0fi z$34fJQ#MYoof9lKd(P_B8^d>Pdide7$dc8y({e0~8Gk2s7p+sim9tBE?~k9yH~)C@ zRo&vec)acHuYbSy%)BA+uR2l9?T%4XLD7Zg7Y#q&6eO)=KCnsfo%S8~n~w?)&xz>! z{w8c=-`+o!;pV-*OLNL@n+w!@`a8ASYs$Y1jmx}huFpw*-jU#uE4HTf#(Bv(e-0R4 zF4p{Z;*AB%t6gXNxEz<Z2mkE(Y@~Ma$Gj%4`klS@64ndD99{n;JSx4(JX!PET=zGg zj+*su>qTU2Kh<v0oWaU?!dm(J!oVd0sfJmyoxhEz?l;(R!G>eI{rS@44>mQ{woL1c zi!!~Z{7?Nf!|Y=_&ZWOfnw}Edo4t3By!Th0u$zbfzWx}szt8rG<oDN0ITBv|FqZhO zb?RkT-_z&L;w-Euyf!4q8D6-mDqzLz_qezIyXL){b@JBRj_7|~SGMeya`RE`nF1WY zWc#<({;+s<j{Wt*wGUKHD#R^Mzq&Ug<fhxdrh~@~|J+|$`v3mk>hEvQ>rVW^>1M<r zWWRAo_2<+1@^b&~?yt4E@;~LqqWrrad-&YTGqvN7<$W+s<IVVCSpDY9i?1iHnVvRS zCpAa$W=6pk{sI>M<B4qc_Lpx=z0Cb_d#q&D*9qSpnCC<UFiOiX@2k<|aJ^+AJNt5? zY}@MVoV)mI6!-2o$Uddh@JspddmgJTFIj7@oDLC*+|v*my+Vga^ONYK+Iz}7+LX3( zA6t8BgG)Hm|9bwUhRP2rzf_F1C(g`hZ8M&1^*crE%c0_F3r@++n3?Krbm`xUqWn|S za)UMJ=<sya8CDDb4BP6lN$GLNqo6+z^&EE<75@|a#_|1ip|hOd8Kqy9F|WO?G8YCr zeskHMYVk+1O421e%Tuq}O)@F%3~y;qf@{gvf|jmNKk}oG-pNR*TakPH%)5h*9LF~` z@^$Wf;`h2V-QkJr`KP<BSH0i8uuOQ-lFhFBiyZ%IG0UD=cfqkX@#tyEk7kkV{p>p~ zzn-~Ltyz>&-d<(yq?OO?HdmJwKPvP|>&oZ*)g(4$V&mt>i(DgK7j?L(t~=HBN-|*c zp(h@0-*#O}bUCoj$a#lB@>!qU4I&}NdnZhMeAmRL+V58Fly@6!MKjOy`UONf2}Yma zt5J}kbN*pP*WL%xj;Y)7r!h%9FX<GiyVEz1N7~@Z%d~}kk&iMpJYOgp?KrdXtzgKf z2hK}BJPeD?f3$b*`u*mc{>1mKzj)9>rvJ>(KK9DJ^AzhFEBhO+aEq~O3Lm@HvCw3{ z_O@-WW<5@S%092!MMue5ChJ{E*3_%6ZWc{tb44<Cb7~kV*Kb*I_E_1K?K>9*zI<r^ z#qxRMS>~BOf2+iDZ#`kq`&=Q=`ne(O=8~h^&wt(8<FM*IW2%K-#$`#Rh93`X-=E&k z|CZ;S?1kJFcgn@Yoj?0=+!K9JbTwwTQ9);r%H#QhH*`u`W`>&gu8(m1D9atzHp3vo zT+3VVt(>_OqvzFU(`Q61JP?0<XPw$-hc)~xVy-vKrp>hfF1*Wa&9^@$O*PlQ8_zy{ zdFt)0U&J3ZZdBj<<=<BJiq|K1wg1T3@`JlgdZy3S<N2W*mUtT4-*7qTGRvg+Z0O=- z_pocLb{@@k*&wcJ!=-e#$hgbXXvV7NfuaZWxZXUzdvt!G&U+mRE3wE|=MJP^xO{R+ zm)zG&I}b=DR-aU2<G<c?@8PinVHdnkrJU6HoIY7sa8doK50hmDpH_?ClfU;cbzizf zkKp6O%#u&VR;cY>dg6Lt`Flt8n$#=39empAbB=HRw|3&!M{6U)?`O@r{$O%w*rS;V zwfo-i9R9X2l}&J|dZ1Iw#P`0N+ID?gz%`e5lQz$5JrnU0vm$Q1T-M3>{JCtS4S!$N zhl4Y9#F9GxuGqQl%wEo0wiaK%zTP%H-dgVek=yOZ?SJ;qpKo8E-g(4dVU?<oePTi5 z{`U6$Kg?g1{&mm2zu$CE)>Y-;6`b#XwC2A3bM(%aM>=ABAMEbQTSxcrjF5fxvs~iJ zy9w_fZ}zLccW%q4y~hpWJPIV9X0&U4+oL6=Dx2hdW{WbnDBHDy12JpPvYwiC*?H>3 zCHqTf91AQye3$pCHnZ>vH`7ZG98JrekH~sh{y8ycMcf7-sonCA_+~2eD;@aQoDm_h zbYkIj<p(#lV$^PThHeU;*tucbOB>na3zT;+=9^%?aLvoB%*-VsRTqSOCAZj~Xm-0= zexqhh;}XN2hc+@dC#5O)Mw(td{-|7fy<*1N+tt@%tJLn!YPo(`Ae?Q}hSyFUdV$9q z&gmTedG7P)6rB?u`9*)8D0~$vy<U6k!@q-8GKCgvR_QL^d+1tVkL`wDrDp9l-KEPr z3_0>UcSLD?_%5Exw1<sNxT;$xjz#p3<$U$8B7Tmk->y6mC_l%&{=CffntdT*i5-*H zs2^^RIWP9=!;`DWd?k*rxG>Qz?73@w_MQFHFa6ltv9fE|pB2fXZ>Q<9g!1RFsz2U- z*l<e3{C?NT&G8}o*NdgdKB{Fs$9F3Df>_R($#-vi-jiV4k^j?(XO-kPmNWM9w=Op_ z%A{{LxmaR*Kv9;H>p}0&P3)78^t?S#x8XM<Poe*D@zTTs*9&4(!XHPxyTWm>GHsb@ z->Jg4cHdsOeCqj|A%B18jrX^=_4h;sZmYU8`|`itucmmirm;;aJ$SH&Q@MI_g~a@Y z>zBvv*w^*y@!^Zf44E6FIeVU!_BR|mmZQb<$2vy)`pWY&wVT_Pxyw4*UteJGa$>}V zug(!u7#&z_YkXpDcxK*TmN;4Hf5-!Kt9uFdq1|h2<|qWr+57ph``Pb(Ur#n13oH&f z_09C34$lXV<BTQ0Pcu1QeEQDs`p1mT>-M_3)`(7C_~3?C;k@%#u3IxHd++8|_&51g zo#p)|_kf-K4Jj<@&Wjc2xHy;Xa{sW<+aPcG;kMevni0=#?>El#TlV0@I@=`~>tvqv zxXa!MJpX@9_V@n_H~(Q~w47Q!{lfPR9BT}nqXX02!e*`fRzFQ=%2zR&jRj5OR@*fA zKmBy}6=5^_6U@%aYWL!%r+`56CNC}rRnCZbU%&k#@0xQL2{1;dPP*B!^Wp1zFaKAh zsaqV~7?aD^`)H@^kN7Qyp^qBwrQebFPFNA0aIBA6{iekETl-gEt3I<|`1n$rhyQkO zl;*!D|8C~*^WRQv`n_|>&IJ)%=QlT{28PbNmR{L$>;23BUF^%+|31(SyIHB+RI}uV ze{AOp{x{1cOroQkPD(T$6nEOYy}bKdk#$yZ@^aoD&U;(kdnAuCE-pE~rM;qJ!Y}D> zf9lR8az&PH4cD2wjqkkUMz?dJvF_o5q4u@eyWjkOF}Z#J7jvD7KR8`Lt%1ObudnoL zx4rfMpJ1{5zRdbYYjdsJCoa7|FMfO8k4JA$vmI`?-In@7>vcvT+XJ^xsnU}Fj5l3; zH^sX3rs%7=b<a&V{0>!$D0pGJ`d-i0Gp_&aqFHX{91l)kcF_341-1h9g}Q6b%IW+2 z^XSF3o1fb{_iD1mttlrfiw^GJcA6o)<Zgj#uZRP`&>5?rryN?+x4e_TktAUHBYee& z^8L$g7yW$r;#0M1)|H8OEzTIa&DJST_?D(v<dJ@F%H8M(JoiN2oz|UQU!Q(_cYERd z$LA;3?u(n3=hmkA;?p9%sr!SuEhWBwW#?tv`oVc`nZ=5!CMi!D6FJz|-isD6I;ie1 z5c%ul=iL)I*Ym$w#_-WzzB))_rlRfL9+d#4!=6dcB(Fa>p0kG4ZF$F`ea8*5?wl++ zzHz1d79)>>L(PE!nR_1m`g@ZnIX{1Qn|aphcFBsU3qfyg9zR$A^3<cvzndfYje|oH z1RkwkFk7#z>S>gyx>4jEMeBM7-Fa^WzBauxd8Ttp|IWu=KY<9BqfRg9#L9czjqmF} z95%V}O;gFagdIV~3pGA_CVF$0o2K<oD2y-d4f>LnUvlkGve}QnAy)I3m4#g7p1X!= z{_k+sgpkYoPDD&=K3aACW6bro=b<h)(>wFcFMXc*FzH&&!E|3;w)A6LCOE|@9gTNV zdH?R&i!*g^PDfn6C+W~=6Z81=nT4CC7%$k?9M=80G&Ozq`BwD{5C87UkK#`0*LmTy zsoyp^W%v4xdCC!+wTtDxK781+O>)Jqz#C8BT$k)MxU_lkx47G<B<^3m-h26p_%*@Z zZO*#uI^-R9-uNuxQE*J~{d1pJ7Mo_PubclN!Rq<!|K~&>?0sKxf8NtA>n`o+;HhNa zEB`!xmFwHB<ynahUri)+bC)lWV0J&7cH6_kb8Zi_g>v{_<|BL#(x<drM5Vv|7WYxy zebw>uM&Z&Jlkbc6mRqTROrKJJ^>D84)r45nRF|cv8*KkCV(6Tso4nzwx5yv4*9V{9 z2~=e~+r)X~z`Kg?z10pDyJ|N)=Z`<DAhGv;>ba>(?fsXdQ{yL_rlc61ko;1+)=|6h zDev~8jR^uCQ%bBSuhTo;vtM0!Y5Rn@@RME_=Ny!XHHj-Z;e1-j#Xs_Nok(JP<DnDR z%1eBA7_IPHD#unSvf;t*=DT9c6tb@tAKdrp$lgk&U8*H#gEwlcypjAK!@vH=n`J-b z=eM4}x$B;?LSWLqht=w{&&=Rh_h82Ni2T>5cJA$Y|LeDytgRSZlxKT?`JQWe%h&mJ zD!2!72e6c%6Z>Vhqs>tLTkadx>*@RakI&HW?mqo%vt_Ts<F0qg2`_fs$hdfGO7gq+ zeV0GItPtOOY+w7dRtx_%?M2)QuFDs52=#uS%spdLV!&2Et9u*Y{n*W6cyG(SZCAf@ z1z+IHIpChbQ}MF3pSLNf^}UFGzm;sARBVw~ZLiVni99={|JRm9)qRUTzT5ui(WjG~ z8awC9q%bIa6mHzTJHD>k=HHw9FTZ}Mm(%}l&Kj5~bzWdzwrK9H6)O2>Uagg0aXxRy zrmMYkBG)?>KR&r+SNv7IY<~6gQv?#)+Gi?Xd@#LW9>2(L<Jnh^2$|0MxARbrB+u2U zl3rgP#A*L3$bbIYz}2-qT4VzMMBNR7DtT$US>Nv3wW&IJ_U4=VQqS`jMTG}lI{x)t zxRpa}>7$Sh{OR8X=B~`SwRNIs!`@wY>)6v@H860<&e}ZjR)vVH|FO<ZbKJuZ+1)*O zvQ@Hf?}Z0#iN~LdZu$6f%YlXZCJymwduwFG(w+rW1v;m^U9-l}n1!$W4|h*ZS$@G? z=1V-~*97l}o}0Lu<<Fgm8bwVutKVE#eJuVsHN|(wEkg-~)9c=_S{qIga(k!i?X>XZ zg6r<rmT3OI^`fBq+nUKyx23#2y|%1=6>{0mcEY#H%2!(63q5AFPKXXPv*dXvHs!5o z@n3^?*NyFuKRl2tzhCD0%@;NYRz#&t5DP53`i$><<9DWwHY{~lmaYF7S&`}SHQ~s< z?7TMx5AwceF6tMbw$0_4zgtdVdy5=Xm5|Zvr>@`bWZ#%xCw=`?S$7@(*3%zK1@{Mu zRA?1_5lw02-LDm0l{|CCtE`!(!D+j+o3Fk)YsqQo=HqO|8k-dRCjM*#8|%}qjc=Fr z{|>B=KOv&Y!?R(Fd$&*V?8hbU?P&{t*)}D`U3$b9+OH?=c-wA4NayWq983<(&Z!2k zyd0->-Ib}Ea$t>C@FS_WL3`7^ZBrj_yjOlj`18NJ8ukvxiC-Pg7apx~ST2yhx<c1( z+sZ}j#aI3nXIXZk(j}Fx#7;G<ea+uh4;)xb7k_bb^buy=Q}o`M@#^a9k9*2<@+)Fo zh4WJ~->h2uonf7|ug3NZTUVMio?$!No$#+CjmJ!I&a2in6Bh9-nX^!@(d13|JyQlL z9aqMc3wl;xIl9Z}MM{#(fypyVzwU8w=VrD1^Y4I+Q1GEG@26g1%81EU-th9~w`aHH z=gD55vn1g`+s?<If4y*;`}mi_?L`SnbCyXSP^xA;D3uawn^Lgt<?%#ax6V_cd<&U0 zde^L1Y71<Mi<G;vO!!1%N2TBjE4$4Hc?7(w4{!N?My#jqjrB2wIi1fwr!TBf|H5jr zZpps;nZ33zBHbT6bUXZfb9ZrNNV8In?WXe)$3MzEo_AtGvP@f3P0e+=8+oFP7jLXH zd$ZCtwN>EFTEQppYQi7wD`!<+wQ;S+^*0YcG&Cq#<#pJm%lT;f=uI(rU;QTW_nqh2 zQ<nH_Jeu%X<HY?f?*iJkKf3F+b|Ui(w--Wh-k5eo#C_H4wY>51-1^7A3}zj-R&kcl ziSJpnE$gD*RJH)0CCz=}*Pk}_Tu;!cSdc7Po$@wbdi$eWZ2d{xEe2}2vMhhLxF^S4 zDf|AT;JAYFqwTl82VQ<~d<Wm`f}hVm{_xJ1m#hCMZ*TwqvJSV$pBu`|44v}THg^Bk z*KJ+*_I>a4Q|1r$IBB$>`dS;Rs~l1uDSkWs?BX|7d$wquX0zqqz1q*N<&HzGx+wpY zr}w6~MyC8Q?RdZNT8+gGy`INyRy~b{I?LxTei}Q4<xA|jly*bzS0;VsANZonEW#u{ z#Z?LXV!0S@-BR#t&En)|f?K!FUi8$U>F$a<5+)53q&7czw`QAd&#v@1=B($3UZ$N@ z)10Yx{JaI5fYqc)f6rvFayzt5Tv@-<So(lKKz?;<=AT`D%Fe}iGabyo2#M=fCYtT^ zP&vJb&+f=1ofZ3y9*9c{_evUm<9N39aKXxwReP>pFVesIqWO$(c|;G}8fl}vC6&dd z7oH|Q2)o;V|8VmhBdgVCB*N#$w*`vN4U7EyqPizNG&1i|-)dLg9Xv@^=MF9ixV>4r zU4l_n!qU`8Q@Oc5<$BlYr_ImIuI|2R=TmyqmgiOTv5Py{?sVGdoLa^I{rQ=~16L~y z4j)|^cI}S2<jFnnHOeQfm?@q1T31-N_SnP6a+crkDBhkmN6ykNvEiG5OL6nZqTna| zt{E{r&%-$xjaXe3R=L-y+bbU}*5l_|(73H%Uti$PteZCca#v!%#BY5OT$ZKvu>ImG z8Li&>fX-68(rSb1#E9m`B9^7o__j6``?Bqj-d^-ad&O@p?TK7w+4H{doWJv;SMDUO z<JLW2rHdPq3m?o+?%7-S-C)kQ+%-G*n$9*ov97Q0+cNia*|toV7K<vpvMp*m^-pSl zvY_FOCqIJT^gOm*_uJ&!(WRd&EmUjwXR;*3zT??;ZD~e-?9&v@3h`BMxSQ=%OE|k$ z+>y9_xFk(;$9J7H8&{?4sdw(bJd&sRys&oPe34BF8<uJHJ3l%V*~ck+aMQiW68?)@ zrUdP;e>U%P)cGy#2O<_WAGSDTv|NX2L8#+mx3-(Uw-2)a2|TxTSH8!7mR(HVDXYq7 zzvbcfUa_J<{?%vo?lW39vgb*DyR&bO%A1P?&-!cpXGo~si#^ur;hy%h=%3f+Zz~ce z7~S}>{rao<y*?J_{wHl*zsaZX_ms>YezB$e79zK<PY4xRD|0yW4cD`qIo02j{N-o9 zOVYnS)x=DsWZsv08S|EJM|N#Y&|1S&Bfd6}``Ed2hBKQQm+f5mmo3{tw^DrT>D8gx z|4!yb@$SBxWj*Wcwx&RS`(q1dU2{|Z-1Oavm%To0;@o_JU)_6W`dAz3MSK%r+WGpi zdV<C_4wuqRYOC%YUiQ5EfmXTA-RM1sPrt1dS(^AFXM=WtQ1VgR8c9yU_bQJV_h}cg zN$)b)@R})liP6pn`*&}CvFV|G{&f9b*_>5Tr`pUswk#Ks=8~*FtNG{5O}_ISMLp)T z@2<5^?_X|jmeVp{c6vqQ48=&b8g?i56I;u|UTrkd{~YWcdfjwIC?nt2-M#B1&$^cU zHUIjdcO!rO=Pmz|Ec5@rk&jaPnB2p|pi-Ap`2E@D?aMD;|Nl9$<nPvpSMCSi+<Ceq z=>PkUhSj;eo7c0aUR(M^wj}C`uG_TfGtWhdO9uN!W;wInjxU+F@;lE5tE11Y=H82S ziU^oIeeV0^(N|a(xJ{et$RIWIOp{e;g{9TqEq#Y$G@R6G8TAbpWGqm$@?Z6Rk<>K- zmF_n|3ln$htTIipUez`4W9!<EZzq~Wt+xDoq*M65sBqcBt4}AKJQ20RO_t5k!ud^c ze#wnh8n^7~R=4c^6Mpz$VU<?fXD4RfbE{qVE;3?U_U~@*s=GV(ofC6faksrt=H?#P zwutGMU%4F%bekPm<A23{+M&3qh2_!xkIHL>|K8{ma6j_*`|3G2^k(gyle*QaWs^yh zuhjpg4h0(&Zbyr_Ec$pmE`>R9O374{j=v1<D>`$9oNtxn*U7(T{9a>GAQQ{7q2gQc z-bJ?B!A>V-*rv_d?D~{}yE(Eh-$2s##FpA4b2zgyIB!a<w9r1UbzG<8#8IbeMz1pu z56t1y@w_R;WHE1Q%fk4VcQ&Y%CAO8Um8j1uEuFhLgHM{bJoSX-)?-t94NH~RpV@gU zzpps_+V1=!F_-sm9q&K4dvI6w)S(5kf7>RXlKJypsI9s6wcD0cUXLof8xQxaoMZC( z*PW?Nv*tR=rmPigShc7ALb&$S7qg>Qe&r~OnX0+I!0RG!a;)ihrQg}d%rdnl8BCuE z%|FPMInnS|_4eFkHsNDNOsOJ?3+`LaTV{RWt<G}CwU<oTcV!(B+!16ZdVcPzP8olj z>BbWBChyj-^4+&!3M1RUva6x<bGGpxj=S<q>ib_!7T5eQWwW1)lyV(ZNq_mn=I}@H zPFJyw&3j6iUw@C3lHcvxATClDUmd7*wVeB-nUP`Kl*R>bmo$klOSp8%$KacMO4j<4 zFNbfwQ!LB+ReU(^_+PIrZ#XhECWM=upV_+fvdqj&cCv}V0!MUS?dgtSPg&@~TXOtH z^HkBNmK>|@ezf1K-^XtC=elpxiVGVp5A8hmsY&9|vafq5_AXYa;CS@WcI98j>y@3c z@ds@JcmAz^I%Q&@(7_X@zRx_8a&S_UMs`U^fM?6q+k0J4w*J3zJW%Vyn}iF!rT^P% z1<$WubuDJm4uR5;=QB07Ka7}P!5``voifQ%-_l=%<$Epn#uG)i<8v;`1-!ksGqKUO zK~KN<e@Mcu<5esTE4nXynD;PyTJ~Y@FpUc<{j}z;{j%eiR8v`;SE|sVCn*Zi%`-n% z#LIlSw`AIJ-5(-L*;aomVBPa<nS<Jt?F=z{|6Fio(3fuJ(TKD*tZ4iGJ=5w#!d)F7 zkuADRo6bkw3;eWjTlYdkK||O1)&YONzqV53*muqU&BGt1zfadc^S?R&|M&V+`+nT@ ze|!40Fq7Jh`_`-$;v2T!NK}pDRdRT^-dtb$L#b3X)4c1VN{ei-mA%YAcChYg$&bnR zt1ABd+&^Ebu~R-A)E7za{O$km(0ac8Z{PQZKhghsqF`I8)fT-!Y{E_@L1nA0FED&# z7MXl;rTBFx_wuy0%CET?6;o^ORusRwU6Hu^)3)?i(@N*O-_XRjd%k^_Sk@QOW96@$ zRI?}FkX`xG#2}GpTdbdX=7M>;&5Ct<Z>_8Qw8O9d;yV+eg8i#LtCfaKiJ0RiS^p(0 zy==}*jZ3wPN;|ZL;;+VAxIEo;>uYGL&j(}6Dcr_UewVHF`aPa~ec^N=)L6&yfTYd@ z;kKTH#S5S6zxi9_SUcZ({$6*1=E$^^)6%`{QuRwJ-2ZN}X8fQyXI-C#W8kqyH-*h! zi{uY&6#jc-vt(UOx@XR+)R44$z1sX86|yz9G7nnTKAw^BcZa#;N#Eo&4l9{IfAT^O zpNw(1o}QK?VHEeiQvLag&Bw0Jmy}s{Nu70ipqNym>rB=2E!TvOO2pmvXP^64y7FvY z?mW?5an8B3+Qc;aCAha1I-l(3F|zfycogUVN=l$Q<$d_NnQp6=rZ>zgVUYNEsorm4 znDpU{&gVT%RZ@=HHqQ#bJm-%n=7{@RFk!0X+J`lgOnP}w%sTaw>XPnmOxw0Sv@KTR zMq5<+`k(V=I<5HKF72ayz3#xp+wm-uv}C?4ov`Y4*U!7gH7j0=ZI$`^>hHaGD%T_; zJuVhyvj{1BEaGFEQC$)?<A(a<#@99KXRjUoqZFJcq;@!W<rPN59gF9_dw)Ex$ccd= zSGc(~#r*i~68Fu2*bg$N6~qcm_$adN@}a*~4<5WI{&B)ob2*oFs!H`&;|<kMu5Fw; zE8|Vp{}a!T*dCp~G5CKu%jF%*YWfe$t+I?!nk`$UF!wdbIVmqsm*nq3?Xiq5mSM3s zo%sJ$xHG)as1Q(fiLAZ%ZXW9&rnTm^|CB;*nol*KyYZcr(f?V^fx`D9XE7|_wAqAX z-KH<@4ry|q3qNK@N-BN)T9oaaUZvMv<1mf)hgIx_#rqcf%``l=Bi(ZA+Kl_UJQ*Rc zb_#UciObrGI5_?G_&@ia{#;d8-kZ;~-_5<h^u?`B`{aUuohYB1eOe*I=w9Gy+ZhaT zhxf`vuI^i>yw3Tt<3hQmhG~jiCr!5*-e6OkbNAY`s0q`Aa%TAY-Q(XRk;nCi%dhu$ zBJXw<k;Tm%Ow(uW7h`HoTWA<?k+tDq+&g|9-stQ8E8HJ0+IO2>F1>8|jW0g@JpbG$ zWOe<r)$Vwg{ZZ+7gkuSd^OY|BP5+nuoqAF8@4AG#AA29vxl}H9c-8c=to`OTWtm%x zk}DEUH!r+0KWENr9`?S{uYx?5CAlvy^}XbpviZKQ?EQ6rV-KEKv{&;+!m>#VtExgY zA0E7M=yR6qqJFs?7w^L#?`->M=aLzBf4PU@_npe~1E0pRr&pJsov3eGe)VF;#os}{ zZx#JHvPV?evu*p|zVjaE3(lNQJ#)VOm+?38|EK(KU;kgS@%{hLdHes~{h#*6`1!`A zIW}f}h0kvB^-7-&ix0n-c`VYQV*QuZOj>tu_!VEik?F7dd-lh5zqanatlyLH>-qk~ z&LjPjMhp{vY&<mEeE*-a$ojIBzrW+9{VvG<af|+HBoMm3Ynj~4()ypFQcn!>ZmqSu zaiyzWb?4NQ(CxQuygQ_xwVjb+$@mk}!7q~-^8T@Fi1?+~G2RSz(|G0^lss7Cqqtjn z?yc4&OUKvdU$>MsAL)I$x|{#fbg?d(r+wGbO4BYr`ExbPIQp5}N2Og$Jx%MSOw2a> z8*jGkU$~aZ?_;V|Lx%VYsZ4XbX^VSK$-RBKOQyq4)^*EcZ4<e|Ia;YN{Z6Sh@g#7q z(A&65-z>@SlA%G`-~6x5Yi6q2-n-g={Q2|*yBD9P%$*~-S@o5%=Sw#RwwdSVK7OxM zn>R=F;%VE}MJ3Gho-g?@U0Nf3_uQ1@ORwxuU+xokzHGIp{+hrq56(SunwZG*PHe5j zOwq@dt3TP)rd9UN?|oBTc{A*!f&03{H}=n)Dj8gGvi^Nzvz{8~O=<nUl{rgJJ}`Rv zMncD;`_rzBbFro8wC5<>#F{U-y{z(dkD*tR*tH#Q*(SGM`nEKdc}x7-I@PswUF^*5 zzIQE-+<5uByKu+We&;QmcE1F9#5!K?+`RkZi?^pT?pm?0Ib-x_r~9|=;(hmQlm6~_ z{N%jY_pQfFyN=xrSsYby|3r3{UrFkOvx{y!UzE||Nc!se{O+>LO+VwGesE{2O?$G+ zw`;=mxH<2(-qVgST5~;6E#&i#jJz)uV*6Tq&d2KciL0r~L~ajC7g*Y2=lb;f?5b&( zBl)e~>E0+TE=lrRQ>B)*aK(d6i_0ne8pZ3%>gTjiOiVBP`^+V9!uh#57asK9)pBZ? z`g=1=i0zGMB60T@A2YtcJ)N~v<b`wFzZIrWwO^gw!B}G1$aSDg_Q>;>$@NUaOsWhk zboDP>()hgZw5~+so5!umsk{F;U)vje<HMqz8<ZT*Jn(d8XZNcw%1ql^%hIrF(NUkn zw{wb@nI5j(^WyodO_xIBL>RLiuDlbgp8Z8u;E!GZ_meZ^!`~&Be=pBUDq4Et(Tw+Y zS!=WJIOQLnqI>Mu^yc`u4M{Vqp6@-j+b34}z^6v$U3agQaz49VXq6nAJ@>7_&7*CF zt#c111Pcfz7v*36xJ^TG)hd>%lmzJ~J*)2=Ixd-^&2>UF(^|kz-Tu{H(Z(yKRu6Pa zADNytYZN@gWc|p@-FK_;-MsgUZ@&Bb;N~CE>(`G49iCC$v|!bdladmrMGw9Zddg$$ zu;W!kD%;~af!ODL<*n<FbMS<)^!}+5^f(;#lIKS0)KC#N^E)TMRW>!my|l_tejv3p zR7>(g)!Zr(i-{3T8ZQH12d*)GFI5sEyU+f2dhd1ZGrhYuZI%D-^lth4|4-#N>Hj;L z^#7{;|Lfl#{@Pt8`+1V8Xn1#!;l0VvJg2t_e4D>GP}_lV>mso^_lgXT%;5gMRBG7- z-T8NA>%T>R@83Tor{PGyD7aKO`1r)H_rD)){kQ*0xRl_6s)KA1frn-E9XM8A?T#`% z$?$RBiPf9fPaL`-@<gksLHb1{yA|U{qwi7Pw?3Kd>Zx5fk@K^7cBJFX>~P6*#=q(o zOcZ#OR&mp-!{h6{6G6?>R?pV4spGt*c*%0l{1>J?j~y<)Uva+On2Ax-$}d1>oxWyQ z2~Xmb-H(0#&*_`7Y1swu3?2!ciBdcV7bTdinQD6Moy~6MuuPQ;iQhlVywpG79<$(8 z_QhE%Cp$Wt-jCIPenQ~#i>DTb-kzuCt(X`bvPO&9^YG#o(`G$hx+{9V_`FH?rmBYW zmQOr*!$#rClZay%G!8I)bP6|)zaS9VD9)<&Xs6=jnkh3T-&|WZwTHoc%Y>=HVv96B zI4XaN-14rsk^Rid)|-Xp$M){qs5yhd`LhA<mgoge$qKVHH#QZ?iR6CUroL3{<~;GF zmI}QSzsfr^3hyjF|0QSX)t6TcXM8M@YyEh%@VM`q(AO_L9p@LE3e5_Bsqtyn;@Zg{ ze>rOi6>41iz4*T6+#I$AVg`=K1pSj`=9x?WF*%c+n%?%*V9xA`Gv|d`YQ3F#<=e*m z3i0j$;p2C*7U?TTZ;9HnEO|ToJKlMTUwM?*d(PChpSC^X@{jYDdg%wANr+e~oG%Iq zeH9cEugBT^$Vygw^YM)3<+Ypawt9t>39Nlw5~ej{vK#+1kHil`IRfu39`scTC~j#t zjF!n>b$Q0IgM3!2Bmy~t-fXvBpmkaL+y$k@dyNBxig_Cj`Y9T1VlUaZ&c|rpcde}2 zy=NZ_b-niWQ;k$pGp%t>`*QLSr%R0Y+ef=(f~?Hmz1hhy=kk^JKVx*5+>Q%2?=@f5 za{sk;`kBPCj|snztvWGb^T`K$5*fDt?7O%u+qi&fF8}qYKy}tk_A@;D-_2LGOEuDb z*0$1!yU(@6-D1%;nS<iXW6ar@@?s;C7HOZBO^$lav#&LdcZ<@giE~~5%(PgX_;B8v zH46kxbtad7+T=ISFZ?<W=UtgqyV-T`-L&*Kvrp3Ld?Dnr_wR8BpX0v`TO@XFcljL^ zd|~J6a@&26&nGT@$MtM(>trjplBJ8o6*_(#T$Zr#HiJZeb$8g}y1iGA+~~Tb_(HAb zis=ldSzOOn|7mBOm;Unmo0{q3`=%S73;r<eX>)2=u;|O9C9JLUb#_f**`1xG;L;gl zQ1_$g(u`|A_kA=Kd@337d|8ChsXbflbS1nF&Pd8wd|rs1^+^?rck-q=Z^G;poEOHw zIaU<-Q|R6Ab4twTH(rR)Ea;ed@BPWH2HA~@3&NA~-4--Ff143lwc)*e{q?%n)&CFO zi~qMY_WOH9gR9TxBuzMWx-@Icj5$_Zf^(E^_pD{xE`I)r+4dhgp+!y;kDDtO{K`Il zc)o1orut9P(>(r2EQnD0sLU7sBi`@y{g=1@&Ak48(OLnss%sLvYKwl|TE1=m_lFEU zbI$+nUr@#F+qd@Pqo;dL@6bKg^ZZ=g$5uWa<x_FtwT^EsCEmmtbN=@)sov^U^!VL} zUl%nLEPT%K`|~LL=ss8dCT^X1vX`G)_D|b_K$VEaJ)Iw0TXlSr!`8{k&0Kp=dqv~C zOt#*F^?UNxy!$vQy4>x?+@Ol8Eni(&pV%4Anf^UqGOlPvxcsq;q54TB3IThUvzr{5 z_ThDe+q5ZLpQnVGY}YxrCV$&w<J@+w#dX(bJd!<q>x9+2_dkAZb^ZVL?cvEQE^gW? zHt)8v^6zgg(^{7O^04Xl3pBAxEmD}xBO>XX5d7xMmo2S(??23FIkYg@@&w~+BOd)t zTQfT*b7iK9C54(uIbL+*JWwDa_wGZ@ZH^B)=i^U44E)B<$LW7e=(CZxqQ;CJCl?r> zbMBtNx7To5QNg*bl}k7TB(vIIzhZ2yW~-YvaqiC_j!IKs)$e=rWxi_N$?S=Votn#o zy5!DuC~GWFoU`q8vC5WXH!Sy-P4;+Z>@wv}L29>0+|HG$S4`GD2>7*eYN1ov(-jUa zuN*G6_(+=luz0nALH+-U_bbZozu!8KZ_fJZU1CiJCC5#-e~$EAt2{??+ug^TBmC7j z867h`cm92>f@7a&%IOF`q2T*Y!V4zE9xj@5qtK~i?IcEqM7LVLGSl16mo_fCWL0%8 zdV@yBneyGX)#uoo4~QR5z4yuM%Fm9~A?3U`Kb=|mah`473x@}eY+DzunW!43z3F35 z-~76!hG*|~DPHG)wP(S%*6562nJs2Fs`^hmy}Ea}GHQBwR=<^#@pJtXUav&{KT1Cu zv9jn>^^_SuBIZ8d>)%=t?8c|{qC{(kWBdsQqsf!y+kWpjvio{+RBz-S)7>`pn!bIZ zef1Ajc+Dnl^y$`_w{EA%%}Yw`YF+^=j1QHTtK7YHU8H7yp{V>{i@IF?JL$jOa=BRE zy(_#cQO&QFS5zVpuq%Qk;-K3MDYZM+v)Q{27%X^v+nMveM8%uX*IYUs1t+>%D;8MK zTIaY~um2g-(z4ig=P$oYyu4ZDRexMtJf&TyflqDfiys-v;c4G?@4p}x@!sy>jbAeR z?cz0mwbg#`ocSruI4b7oitb%CXU?8DA^&sEvwaKFTe5Ak&vtEW{C?`VBuj)%_4@)t z_k7Q;Qc=fE3!dH2d>@(HB_?&+Lt~X@*`#A<jL&2|-(F!koqcVsf91B*m%sPklB)9C z@#}9{|3<OUWslx;YUDdCh}|Xcnp8dS;QIu2y~i5zg|!Rz_J3CDcyRFf*=WOgJNs8n z_L=`^vi0$EwbwTCz5dJGUcN_oBj4|Jr6+1z9t(E1vA*B%^~ZsPnfv|E$C-U7WGkxL zpeyjiaEfxo!_sdYyBd5y8eMq7*vemA&m(s2&Sq=o#65ZZVm8vQ&XONKZ+-gxzJpp( z*x~6MOqCA`SMrP9El;R_6Zq)Zq_bA@J_jw)H+gq?d9?F%>H6~i_tQR0e6H?pNccKm zGveMslZkd`W(fb2ofLXS)ak8Tb$|Pw8*7D`=WqNHuy3!-um2D4?#{2z>paqLFo|)( zkBP@#U;qEl{P?^-{B6wty?;0+#!4AI^1i?;9rx=UkHdpERTCGx6{=m^8u#(g;$)}g zE&8GVsvXZ~T+^Mt;I&rQ+hgI4oA>y$F@#Q-y_Vly+?jo{nCVrE{P~fSB@?%~uAe^F zt#+w})RmvAAs(*zlN(>^KC`;nxj-yFv!J!7Jh$se`{gq^4cDc1DL+x=d~I>#>eNTw zzq+oUcymJ2No_`7%EV)gf20FGo$k5uxN7mS3&$63D62~g2<LQpcuV@v;irLHTjgdu zbT61IQZTt|XZ^L6H>y`Omj7lHT)d)_-FMzWITns9e;1grg}-ppn857raB$iS1p&zr zR;Cv`Cyr?=`iMmOm0GSirB!Wq{_5;NwuCn_3eT?_zcF8EHTh$t&Wi_Tn<wrzDlZgV z<Z5+!LH3!7)<ughE0h%O+82BC;Da9r7#jL}&*!FIyt2*d`&9{@LpuD;f#)>N>0Z=X z8S1V!v%Y@G%@&{6-D}R5h?LB=5Zyc_h3&<)zw@Raj`0pu_uXXbt+#?tH=QqDXz3jn z<*UVuKP;2p?4EMO)}iIVv66F^>W*_=6;4X*_+0h&vDe?m*Y2sUM_Ud?=$dKXFq}TK z$|x(;r7Sp7<!fsD?#JKvxM^GeH8(ywG1BOF<F4CE>C)%4uS+%iyW4(FPkS7-Wzy}b zDdE$&7_}|swY(E@cRcIL6ngw#oh5q@H)HL#^tG9(AH^>9c&Dtn-EGOPcJd<M`o0Ta zK77m;($v;B>N``D{b%>K3okjux!1C0xoS8B@GW}Po_t&P)~Z=Ae%Kl{lr`)SFYzjy zrd`r`E0lHPi-aRzU&Or%JpOEd_dLVX@@5+pCkP(>yvN|dL)D;mYpXB!jxJcgxu#KP zwHAA)j)sw^UWw9|xP}UqI<;r*@8-^ozW@8&EobKpQzmi8zt@XbXl?A;o04`S+-mZ_ z^{#!zsW*M6^xP@o^~vr}beXpBjoEJ5ANzLOO_~}qYu)tU$3Ol%^4xUa=K1q=P0~y* z9Gg{RdwbvgbFHO&@6Gu;V}jPo*{lAmu}!^K+r#J<;F#R`PUcSZFMgKxuzB+B-}ZWD zbG}d9zrA{~SYPMgZyDyt*x&ant)1Ff%bym%-@qtS%wmd;uR!dc?Dww)U!){7pWApN zFT&-LjzjnYY14iFY5rILXq<7`t$aHvujPf>eb<e7T}@L@uexN!@@1Zc!3y8c9X*|k z{wjX!eENgSjA8X2JuU;5aAgx^u}ufQly|2G?a*^Fm~y;-XG(F*j>jE}>9bvTJHFys zxr8(MW#f&>@8<JNsAVa<DfhL-w7t(O;#Ruho1Vs{UcOR$zFMDtHOtCkV(y~aB{N); zj@~S*;rE)bY18I**8{uqxlT>cO!z!+r`zNEvB`(Nmeg7=duZ-|JpRX{qQ8Hvr+NJ8 zPy$WBdhV(GeRKBGzi;l}y8UZ@&)(mCCGlS?<0M*-|Bjk+>1$%j>G!p}s-OMk{E~BJ zmmyQanuqF7_sF<fwsPDOWph}cDm9^|T*PwqqL1R1JpVR*SfkTZyl;c}l~19!-P$Jo z6KgG>5xOWN>|!lz=)7MHb0xPb$3J8JvUj!XZp$r4oEJE^T~uqntPykUTU_Y5YbPtd zYFF<(+;`KR>BFk;^X9Brp<b@M>*9nh9d+L`Zg2H6z3(x-J@(Xlh1-nn@i*tMdv5Tu zzAd}tqv89bckdV!O)Kr@d6~9-;T^?4rYqn1>MqqXejX_8aky|}z|MJHmlp5`OWJR$ zEs63w6?bxH@ZM){X6HG2PVER-__6iO{HPZ{OCs)0SRZoeo7~Ck#+xe(?ntw4jHte$ z+wv=4$>&U4knQY7Eh~<qus2SuB^Pf8hTHU-v8i-r^)&18?0P#@vLfYUA@6KM<4tFO zKdp8ByS9m8*{(7JKYxJ^=hhwE^1C{&ecC$FQ|jh{vXqzQEE_d)4t{)9GuK6Fa@QTR zxjPCj8T5<w1_$IiTB=z;b2Bt!Yj#Q3%X+=lia8<pnu!&Qj&ED~R?pq<a?CsaTg$aC z-1*ruM)ONW@wq>evPX7ojDGMw)!@uGalf9(E7LyTJQ87C!NBM|B~oT*TsM=^t~#E% zB3ETYPA``-Yqk^bE{nTt`R11R1Dh~5^Cbyqr5cYeQt5m%$L$&Gj4$Ok+V`*=IX%Iq zoBNdE7N5M=lO*@AtJQnAdC}y~m2Q=ijeW9jU7q^<+Wy*3HlB^QE5b_ABTa1P&kCD6 zf$Q83+DKk|YVe%*xt45O^y)2(^|qdN%-}lK_Q*~?Zl<pA%NvPvzs^o$`{vH#*W;sn zzkMkef0}rclil$Z<rjXlCkLFK>ywt3y|mcisIj-I^05+~w{u+|mDZH4{wDp-|IYR@ zOHnSPL!O}<HhG+9Ov;(ne5`>-LN7@uK~BG9!XBNLr&dW^t^(JTDvti0+PHo7y5{$; z?=*e;*1f#L-pV9yF(>8v`!a3~mxhn4_MUjsv3Ae*LzB3A=C`IfU0IobtNf_lrX6{k zrT51E_7J^&;(q1Z2Ax_>#Y2*5IVnYw3$(QyAAIh+RnTl~ZJM@5o8y9@$-V9UWsAG& zFYL{9Uai0B^~I$1dn(vp$_m{-P#xwdqc5LW(^9-j?%m0NL)B&5Gp64-YSa87VU4&? zrG9*ssodWk`!_Qk{e9fx@>|)wzuOq4nM+G;H4em{=*v;$JGGbpafEp4zLk?hRMKuO z?Z31*<$%PK7k|T;4qY<7c5U|rmHUmamMnb2+B`3guV5KlpY^Y^GmAG)fAO;=cBy^f zykox%7W;A7-~QcPI#s9Wp2*$qX%-TSQNJ$)C`GThZTDQ~ru1qiseiJsRu}ljJvY55 zcO%5<xS#3cdG~vse>r>k<=ff6+voqUx3#aA%i7g>q@SltRmeW6;8guy?f<Tse|3fZ zSOx1+zKUJtd-q1tH#&QdlTGri!~5?lykkpq=;tX(J-e;vEf;%+#p&a$IZfQB?$})@ zC|G=A<^6{;Z>~SQV}Dw3cW0I5+sm#D2L(UqY}CFgHjUpw_oge8V8D%l`@KBxZoM>V z4=U?ajjH^(JLJ$ur8wPJ%pdFSr}kLse)-s!`{Y>pI{)X<bDukT*_Sf9l<L$-9{xTj z>xA{D{{@TMgLm#0y!z^l2}`JO*%oQl6K7(NsmA;aI%?s4^>$a^X|tpyY2p^Mc4s|s z++Ti-F{GdS_wD#~B5Q-gW_Ud^VY`rjXYRUFRaG(J76~it!(?-eXX^^|fB)0--TS?E z6W`V?mA$SeAM~bH2>XiaMLe|OE-n11`gYkbKQkud@>MI}msBnM@TPCgZHMV<f?6w+ z55JrCIc(a@mrT_Mo8{S;f19*WsCbLdD&zC4i7pZMq~D2uSN&*U_nkSKqbxPjab|hw z)7qZ>=dWttU<qEs$EJAn4Bv9|GON0~|33KtUu4VI{%!u>YxbKz|2u!IrY?WY`MYnf zZFT5j{?bx6@vE!Z#L|U1vsdaU-|}5GyNxN%QE(aetG2hUt6rSWu|6JFo+f5`_|%f7 zw7nNP)7^WQEr>i=868kH``7BzjW2Dz%4+V~2go1v=CYf2R3u<0Ti8q^M?r-b6CFR7 z#i+CKHaFS4yZCaQp33zNY4c3mGuH%Vc%2eH?D<~z+9^G&9p|5SKT~Jsa}<2G^1RsB za}ok~w3+>vZHj&4$z5upGsEw1m~)R*IsYCVokmVy_SdCpO0{pU{|?s?JW%&D?)t8C z2Uw0>e!kE}{-N5tC2`J-d%IOHA3k{fPmA`h412!iE`7=AVS;{w&wezrRcwrQ6KYy8 zyJ_$4b&-xH%d2PKTBOurJ@5QB_b-jRvsP-AzT%1rc{h0(!|LyAzgMqSG$;#7oBd1p ziV=q{PpY2ijGpJ6Ix5dLSPPwdlhClOluc&$m*}b~YG>|kNK!qKxg^XrHQ=^|S&E*A zHtQ{A*WafS-!RKdIIvc0zIZsB$@X>0vOU#ptN#>N2Ya@QT=?-%D`YvlcV0Nd!v75) zUu=2(^uPlCBTu$%ye@aF`s2&hf~&31e=gD$<u2oq)nlC_(&MsC)bGROyI#{*i9DCo zNwz#F8>##6=f3Rw?>_%5Wqn?EVB+ELW^<dXi^CgsyqEuRX3O!m1&bE7%?jV$6r|O9 z;9tPcb=vx@l9AKGj*4Xm{dS)w-B`%B|J0i4_n*}qFL|5t_dwf5tM5;%Ds1bXJgsAm zWw=r6l6>Hb-FGF6bK!e~`?PYCmd$Zw+jm}T-f>AQ#(4~x3#SVjhOo>(l(}zhbf5R; z(!ZLPzmm)E&ij$4U2ev_Y({m8f19RrS=-GNjt4a#e@{MkrQpmZznJKX_6dba8Q&$| zSMQ&ne&_I;eF|3fGmF0{+;%%7a%Oim>*E_++se96m3p!8q~;eCKb)6z>t86}iUqfx zC-eTDTK@ju`}xsIAC+5D7*y((6x9EJUSAq{`o8q;57%#6dF=ln{_d3c<oyOy?3Y}; zl5u6>``72ztp46rKI=nYjxP(F#LHCcS=zVv9$fKpnu~uxj=s^2YnPk-?s_^m=k8gk z8)8`ysjF_eF}il5LrR#~l=yNNS8lVbB~1S|#qfzFWxI-eUpIZmA05kAZ&c5niM-;u z+p(yo=IAfy)Ud~_ZNHAWG47S#8+PtVh|s=8YsEB=mfX61Mk>VOe4zSSm9I{X4)w-| z7AjjWXcuGZ$(Cfy&=oy@l37^2JMOLAm4aDj8uttyWJnlJR%Vxp47K&Qiwo3Aee%$5 z+HB$cGj11O*eZSYX}>x5i~8$Dij&f0ZP$K16#mmAU`O{CiL}{n5gxz0Z~ko3>gpDr zTD0&-$XhO^9?Kg`=J_nI4*zubrux5~hu=oNv+7^ha4z^t-~HkmuP?@7C%u<<6{g&M zRkG(vNX3OT+rT3{f(Du4M`m)p+;L9o<FAXCANKyebN<hqx$nCFzALXUmzZ~d`Q)rw z;TK#29K6<a-is{m{mCp<HYI(751Z-rwWmGeb#HlY5{tHye6>6_WPhdc4z5!5Sz>v= z^QU&4*{Ey(LczQ=IOEK}ss)`sVi#NPCVu()?)>Sa&WqRoniD_uSgQ5;uNK~cyH3S* z_35WI8*Bau?3|hSx6JZniBrLS_46CD@6B5Omv?@)aX_NjlpiMqHou#9OSbAj(IS)o zKIgVcA76DbJ+{!|Tj(rlcgsuREItodw5_F-X1@L#F}pXiEdRYb^G=P|;$NOjHtJ2T zw-pJf?w-dy!}!(7JV6h~2VqSmwk2j<*M0ciy_n((jC_h`F$PF{SP*O8(OmfM>h1Jp z=bSF@lWMcM9vo<W{nVnI#RnGuf0uM|-o%-Q-P9Z>ZqU(lnQI@Gb~C@EdQ(Ny+oo^b zar+9addm;1=jd{TT?_1swm7b6V`i)0J*jcgt~{%|id)<^?h=}rv1VtXKL7e1ZDQL# ze<_!rBg6e_ul)S3H!{mzuUdvW+8gOP?LXM;B%nP<sWn`?_@35^*T!XkS<YDI2k!jx z@m-}%<Ced2uhZu{zCKp#AM#F4)+g=kSMJ2~w@k#f?mxUSZAPa0>%|%Q`yS8dNHCai z?!h&`=RwC;JpEb`_I@Y(m*~~z??WyxF4eqeeEaR(8|yD$Ji4`%l_9P7_o|&j#X<Lj zAGB3(UGYPXXG%oE9p&pAcNyRCT+heWs^POEBTrMfpFuu%vZa4PeOjW-ggpyOIbHv2 zC?+0A%KCL<?%8eAU9Z1&Y&f;`{$3xAdn;pfi{7l4(hfbm{-2!e`QH~R->%gN*nIx| z(SNt9GcK>lX7rg9%lY$%-__me7k7U>Wg6*U#=XyGrFFw8v4e3n)6&=NRQ(t+?b;hL zrz3x4zfW_WTa}f#+B0wA#1r8PoNt4bFGxG?{IOSved%7w-(R-ByEfl;{`UL7+Ce=R z1yIk0b5G^xo3m5@D%WR61lC{X-svFzO}92tTbuj&O`bM!v-&L;5^LvipSro~n>UA; zj!E14oXX4EvMkel!}mDcHCXrVNPlnr?l&T5f<kuBd6)1+Y4MXs$+@%7Nyhcf`}+0Y z$Lriir6;CYiSlPX$t@FK@z9|nTO(!3_ULKs`kxDWwB~4~t-0~uHmcK6GT!z{qCrpc z+VaC3<;U~p<kyFtWRB~|TQdLSBNyA4$s2EaUUgmRoT_cNrzP|k!*koLW4>B1r@pOo zC^bv_w9@IXf^yyDg$sV|n&`S%x2`zkRL#Y%w(VNCFM2*cvh^)bpMkP~D);ZR-wq1= zdTuUd;Of{Y6?xR`wECXu8?Fl+-qz%y(EI+xlW!RZ)zW7la(jH<HN>%_cCCf@X5%^L z4ykREZs@*pS$L>s%7?kHr4)>7HfbJfXW1FmeYWmK;D6bt+{-M_y(yG9XYeJh+jwiB zj^YgwMw!%8x-PSuwq<gJneq$VOifFu4!ry1$IXxb>UeHv#lL(1wtWBp-DQ7&tUvbn z!7Q$0&YXt&{27@%hb}I8_2<-+-t-&&>=t*oY`@9WlPe!OFYxx+pW)#wvvn8niOsyO z<eJkbxOw(=ok^Qc&%OCobC%n?zdRfPKQ>1g*#4Q`9b7Cue`D~jn|<ErIQo|TRKHcS z-EQv0NWI_}Yl1KIoil4uayHp`w0KJJ%kNt+M}Bu;U@AN9dG5I5XBWpsnJsOL-}fh6 zk9zdy%dfBN=6!i%FLz99^Xr(`Yns<{8&A48ZQb@4+vWUr1=gHdt|#+U_V3=E|7Xlm zyXVLH`T2?`68+`c$2%_d8I`{@YGseB$-AfjoNs=7hLOjX^;2(_Hl4M+V_A2te8)FS zUX37&^N|uMFOu)CKE-s|Fw*2&xMhmg=7!6Or`T5S+kL^%e5?B0Y%#u=?FCc1nr3h? zS=?S}f1~i{;<Eq0&S&ne4G;*^X}py;^XSPN25g*v>;zkGmCQS|zkF(R#6>%^vKLRU zc1+yl%#d7FbYl^VR!x>ox3yKY#!t&l-=rKfr*eNiyJ)q?{6|GG>aOQaqGYRH-`><; z8n-X4{a5GSy06`3I{9yQ)wVJ)ggeeYD6wsR=x(QA&-RHg58J+(_gKcUa&dvyO}<(G zr!Msp**mpa)2jUV_a@tgm-I?vCw^G(8Lc+QZRL&NsrUNJFa8qS&8aJ3-ZS;AP~+;m zEuVI|W_z#8*6re$BDGVGXTz1-zrAPi-uXW*vd!cz#}wAJVt#L%IQ8A{+;p^?zIfT* zfd8zFwr@PIi)XLBbIqjbbo#nTLnUVmA;u=Zxe|S!OZORXIRAUz-Mlvz@7EoAa+2}j zsgs8qF2`+A37OZtb8o=+C0};R<xiN#bjt0-fu2e0G}qa@{u@49Y17}mh6MtuhT9)J zJoDr6R!?6Qm5ys0&&%)r;xF|jWXDl$3&G!(UR8h2SHH`BY8IE{`}2%t*ss|5{{2NU z^$*WJ{dNAo{4|e09N==K%HnDLo``=33%>1-Y&xcz6`OKs!35r?zoOOhc9usyI^k2< z^>`J}0_$u8sbkz<ZY_K0&A#bOQJUNG+b61Ib9T?WSp55$k4FE~(i3s%uTSn?{pxb8 z&8f|0?WcSsqb9S)u8G#*x$gBVKIP7WoNlX&)r&2z+VbvKdbr;-ZqC&F-10xmDz0*O z$>qqDN!<9;T66QqquVo7UEM9iH?04j<F4-d`=mg|D&IDb^IcJ|+pKoY-SX|hM_1mb zi|(CmUDL45uv#XhHFJeKZ?&Zld(RfX-qjQ5b=`UrJCjBK>J2>;L6HLnhFmZH7zvv) zGt6yD3O;gb#lAP+?;oqxnYXrL$L7b07Wb7Eu9&e()x_}eFOmG6KI@HGN&&Y_=dHuN z0c<NSD=yqsab3b?+U+liX_K9=?uc)8+oPQp@XWUG+{KA+1Oqg-+eeyhd{M*0Rbi_d z?))J(<XD1C^sJ=^n+#@49<T^Y^mds&rTA;tywbl@7v=xnocmn=ZPmZp+v&&N%se*5 zs5++IM*ZdCxM?-Zcb#14^Jd+ft9b`4H2+%6<yg8n)x>@6mXx((f#Kp-XWsZIJgxnI z<k9EX=h7N?9&0Y$zog55)<&K$>wK1-txmr-f8Qt8?Cg)X?jBZV?o6Hfar+8Co2rcX zhYFi`N?8{_3fnCoyy)`D3!fJjXX|fDeb}(OFlvVCvBmoh<zIc7yHnr5LE>{j@qz;1 z>oct9p8B(SS=GXiGL4(ANlwX**b|<zBKeCzz`>e}5^vvB%cTm;xTSISL$Pe+XP*D_ zpWj%&ebc0woKu}EZ!__I+ax-@^>C}V0&`1Wexi7LmBQLx7c0LsZ_!+rCT67&`*ptt zXK+L3%<s~d7wqA%VcFe&d-kRct-BZk#p6X5JctwJlRZ7Brswp-V9hh@lR67*t0tsd z?%me@cz^c(Kk5HB)V}{-UcIlTzUL|X?6+dOnZjE2QeBUCUoT*=y?yi7<~)OIB`j(t z>~F+s@@^Y5pY#1Kc*<Dg&&m1X$z|np{gmRDrn7ztW0T`z<}X>Z_>E_BV94yVo*J2L zeU;@a?33$1iSN%_|Nh<E-|y!i`~CU!#<}$dMp=1h7JOpX%{aYBo$I%uvG=YDgVhpi zn6p=ONp8`;EuDRRhUIfxgT=A0wWrO<+;byWsVRx|{EaR0RhoW#t9iFgo4(g@vfj0+ zrM<U*9{m?|(P)y-)Ww0<TXz}nU2*RI7rl)ao=1L>3*B4azcWK^X*hRpBZrIgnV{_X zelPWQA9DTf5r4c&w6yl)f||Y8O(o|?Pr2b^=yTIwQ073qWJ&pK&P6Bxty^;|pL>3N zze1@g%bXiNolWb`$voIS;Zc=L{3iD98=1xv+NxJ<ub%&TN5m8}ksG#o>b4m=VJ{Ra z9xM#s6t*GUTW0!-V!yNL_i~LiPj4yBd1rhs;j`saT`TYO=!;T3eXhl#zg!MZdHuO6 z;8L?{&)>(>`P=P3u04Ky|A+7M=l{2VuQTz7q8l57ko}d4ug~;r&El5*|5;F0-x*k+ zJk8?Q%-xMo+?;~BH#GA+{P_9tU*^s4?%jL$b4|p-(3D0!<)ZMnYeFVxiW)N;#x0q> zUDDYg!jE~*kygn+XJyYV{}}f|KkSkyUw`^ZhnL?^d^#j`=)@E!?gQ~=b$ccjeh$m~ zx5;`=-;ztaFYk{1GU>_EYZZ>w)7ZX*SQ#yQ)A>hj--%z6k!kjBv)z6l^LcY>TVUP? z9lzVnlm1LRcjZh+nT3sCD8HjMOAJ@<6U{qed##z~21#_UJ9l@6FDGlwh4R9?OP-14 ze-_^6mMFk@Jhrs1{Esd7*44Fhr*l4-Ipf{-6BSvPAEYalT>tT^>d?>f!yIpVj{SPl zZar<j_3!U5xuw4R)A1{bi?oh^xnfq6K8Km>gqCCK@77=Z!M3^StwhQbw`iNx=-534 z!jl)2_RfFy-sDbZz*adXpSP{PZq7ZquU-^vR^KZVAoDrP@wfg(i#SC_Zo#7&nopHN z{I0h}2%GZd)Vpb`Np;UU)%r$a`N>@t)2#pHgqPMD$|Z7S`zpRDeq_=0=(JeC#W<rp ztuLJGjO@)N7cW_H&X7adPgPb#EO^;&qs=YFU!%j;x!hfLO_?{RS+RTmdLEW33%)6B zj=fQK_p63PVN!YPM!E1QswV568Yt|YbL4bN6^pn_<y*(i_I|FVY)kd@*Lhy4<p_6M z>2~=}Vf%YgnQ(rVgumy6Bp&Zod=R=tEcHs$))M#UyF||3Um(t&{Gco6-y=Wgi^+LQ zPTn`se-)GN_x|XQpLUkll)p{csIH@2{p^;8>Z`f^Tx|z3Z9jgt(>*??=q;z~2b1@b zA5tbXy=Ilnu-vE0l>Tea-jc$HM>gGdzdwJC_s+Qor?9g+UQsH_>$;n^A)t6#ND5nM zL0svIhRs`Ayeyb&c|s=e#T~hp6zw(j`;>w#xwi(-xJ_bid8O}aKcK2~B>9fqo9^=N zT8nzaNf-B<U%NDY``4RJ29p`NUTLoRvy<Jh?BWdW*SEdbM89pFxK;PU%z)n~uB8d& zu4Cm^zrAIjg<VeKPQw+|2{Xm4o^26u=JqmgP77Ss{F7;UK*}aJ^>>fM?Nj&vKk8on z?}z_~z81NbIdwKk8ATc#9n}FZ9TUGdTs5tpb%R|{=h)HTo2~9YTea!QpVW*8YZA8W zemz_B-RZB~%=)cMj(l5Ux$xSqc{(fhJ$rp_YU$sO^I_+=D4&tq^1mSJ<%{c|G{RWl zt3RsSrygQ?P);Lz;?HCMe_O7I4{qvR`n}upN8lH+ZrN#1?Ne+EJv&!kI2qPa`b_J$ z>9bDFfMpw#8yw!Ro!%p}(Q?tAvoixYW_UN4zR_K`y!2gR#eeas^|EFLa*JJBuKV8Y zHkh#E+|I}Dkr5m}N~g~KD7#f*#<N{47Yq*U-dwoeqVn|hex6hB-k0)i68?KPL^;6V zdEFF8gBJ(4t~T3QC%w<?>e-~iZ&ySZmb_!y8g{PupYe(X4>C%kXZQ#o|CbhX+noQn z{U_<`uk-)*sS4RIIl<uYs9o%P{=dWVvT{G}OY66ovu>TXD6{gJtlw^)*$bqNCA-h> z{OHA6cX;=Tg<r#`Uo3WPvA^Z3xH+|Et#VLJii-5k(A1e9H%YYxTFT7)*&nslb>{Ed zP`d`nDyi!t$;oPM`Zm{I$o~AN*?s6j$(ijH&*RsdRr8Cp880eHw3?NAncL%C_>~o* zdwXWR+Ps)yk2_oYxoy&xZ+96Ny}$S?wkbrFh0Rsl<f^saLyygA_l_^hx4M_uxXPZV zsQk{~IPst*3xgZtuGjV63wm|v`P1jCyMC-bcWdt2==jw2)5AsNx3~rVn;<)BAr~7X z@61n&j_q`=@sy0adLvswvn=CG&eqedk*O;T`{(a+-u~I{W^iq)=8;2h{97-5pPH;4 zWgB|tW9rXjE)m@&k1t<KY-42PE06kUDVgx&d#Tm&Gm|u;v#-oaNPBDHXZ`FyhtS1y zHw>9`w@v0bJnyEMmC(e${HHR{9Lzm(q3^O~6T^bSc^4g$GMzOQ7ps`2{*|2{$Yy<t zS7(mkMu`jcJ7+Y7rY~-|snq_(V6O6&_*GMy{B-n=q*b<*vU<HJad?uy@R0fO|5e)U zfw7g-mpNakRTemCnUL}}A=2P-%A&Pyt96$rS8JYOirReeVN3D8`!W$ic1Juii`e$= zNxQl1u+Y}mDZCPM#VwbmZu|VY*lyC*iz}Q978a;^<*TKJZ9Tj;JGMl2dUE^Ob2ojZ zH+SDT<0n?SQNmx`R@yHwa_jrA9CBYR)lPf~eaCCQKE}~5J*-mlxZ843zXz@79vWRc z`S4vw5PSUXw^j3s7i+xch~+;kd+xYXp;2({-YHKcZ+2!LJs@N}%Q`=GqC{-u(<dvg z|2@-pd&!?Jr_=?u$~#In34C6n7;hSG#T?2o*T-Oz+G@988QaIRzcu<YK4p#cviFnC z-ZIxd<BVv5^!e)B_ii8mynkEnf7?HMwGVSI_x>GvT}t=GwW33R6TW|MU}v(Do}17A zY|oDCa>Wj3X8m)T)Ax%d(8$q^#XIDP-3;CQ-OtuAUCp|9B7O1RH>}C2m)2CTcr7pZ z=1ca@y!UU4e#UOezP)74d4=nfujM9}Mq2#%WxcEHOzoNtG5){U^@Fw@bBKSFTj*O8 z-xOGGadYkZ-G&OnvEiqFDQyrwKRZWdzVvI0d+#>x>`vdj-fh|O(+yMpm(Sv4-uIfX z>iRpa=F4$$*Ti*1GSgrDG@5ZG&v8M-`4=AqlWITe<^GCf@mV~_$<asV^`gB8^j{xw zUz!lD!l2XQJn=`s%!57Na!0>ua4_7+bgfR_cX+-?!^a~hs(U|Iu<xyEDD#YzmY6D1 z(ZeUnzI$q#(E+pDrBcmeS0-?rmAqS=dO#%BK48-dBhIPa4SOZC*{au{I<l*!`(my` z<KYWJGaWZ*OuQYL*kNdQYNh=q=au`@1vUDFnk&jbMA$OP74uq1KU`E^JN<0L{gB<i zvzK3%-~RdO=ldI69<>WdGI;z6c=U1d{tw%aANy~fcwp_RZ@MO39}mTRQGd}R;>$c& zdfz>-Q+G}TDSGVLIPK&A<M-yX+}@UYJ@H0Nw)pco)$do=P5im}pN7lDB_}*uGXxlC zq!@{mITW$KI;pE({p#eqjqG3E$XzYj!Mrh5>rTUqw$wHmN5ey6snLp-OE{#LxGXy5 zlk!YIuJXO@^EZ31Uz(NNv-8|v9Tx_dt2?ACe%{}G)UJAc(mKoIGQ~a`dApk*PAOn% zww75JY5K*oQ;;FPa*N&(m!+1wxBN~NxOMrRtLY5K=W?rJf0Y||v|QFVl(NwMkh-e% zR>9e%&&rz15(L;E9xI>rB9iIIf-|l0mKVNx%}TdCoj!fC^(%(HsEdwI*_;#E4s9-3 zxoYp+d!7eXUv^jhKXl8X`+%IE-Nc_O?-t*_b$)w8Q;2t}(F9#{%h{c`xV|`7Ur1HF zq&)SAN}?RMqa6>==C?c3+5X1yyc1MDQMtCWB+%;6O7?_;xW?)&)=#q2jBIzms$KiK zIcMRV^edLzzn@UNFfBc8hm%cT=CXJEo99hE<P-91pG7E7$&}cm)st`C+|TW`=f7@M zvbOV-C0=v%mC^*J$2{q9t531qD|47*u1mRlv~g!rDQl|Leun5(bB=4Bs^`^GYm{SR z<YEimek#HC<iWMy0#sII-CNN5;NYtCkJ~nX%VDWa(v)aiB$d-K&v#{w`L2b#%9kpr z&3Q2KvuKWN>YA+i?p=oqH*n7_Uv8}JJ%7tO2^LN7X^UJE1DNu{g4?!*?+Fz(+7gn< zuc-MdIm1x-Mv!@D#_AiH+gN`oS4FY1E-W;Rx^U8QvagK%h3LOO)i$YjrA}RSMl7k- zlaYU><#ekWoo1;=g@PuTwXc6}DsgUlc=6@Bh~tZ19Q*w3Qd2;$`U-)_J0~(`P4}$0 z5WhF4>#emn_aBZnv9<ic(;F1c`0n3-^uAMy{cytcH!9(r+f0~pnk3J3csr}+Z2ngB zHm4_Idy><Y8_H4PjPJfJ&|@-SV$z&8QS@*4&HFkAM=PcUJh>$L(!AsJG~HX%*JaGi z5>okG8$YX7Z^hdEPpiUsEwcYkX6TSiW)KX&-^}Nczo_|p&xTV6t1^$P6kP7{;SM}K z`P`W`2{%_Y`S;fHhBdGF$@sxdoS8%2%`N2ccZWZIYVF@vm$xZ89}ZYlGHt<}EB7`| zV|vp0{A@+~3xxyces$fKJgxubk7q)$>Wt~14syiUJiM92qLm?TK26Ng;F`dPT#5Y) z{!E_NCp7WM`^{?{P9JUDyV8cCu#83YYSiN->k_~3ImV9WS@AuFCSpz-O_~0gL~zVG z_CmGWNVoo(vb?ZtGt(cBYd3{Dw{<N|G(N?Z89&wcyU_d-TiW}$Zmri6ICd$N(>=A* zn}bnpBP-j+r7{uUO>ckq<7)J6w2O1=*tD;;r*pyehkrS~efH7$R4dma6WSm)L)Y{9 z%edFQ4>qj)!hKg&jZtq~{`rzCzw^p88CU+|+19>BC}!UV(~xBoA4@WQxy_)r$h*6F z(TQKLdBSH(^RuiC+ag#OF{$`j+-j!tI;VsS`|8rmzpl5nm;L{6vEG5lU)A4veXFpI zt8ZHOT>k%~&s*lzef{(9ZTXy{=q@9sg%Rtb%6@6jG+p!3i>dJYm!+jA3@T2aICbuP z+?FN2OBckS_Q`!Q{hrMCx4ZtHvt{0`qEaV2W2$a*6!W&j>DOg$9}Z^IixYo;sN}hr z8IO0d-jffS2B!qyEfJ7bs_ng>R%Ym#xtmL3fmCHm?9AMcRVMY{&d%L%Hu}lWhg+Dh z?sM_o)U^9aa$-r{nb%KGElN?=V9n|_)1Kj%^d$X4Sof>N*Du?$zM3Fgz<8wW|Kl4% zwfD+iXrwDK&fLGH#A@;S9g4pf_qc?5+w5n%v_(=qrQ7LQ$f2Fn6M~+;Pkmq7vv6g_ z_eXn|%dR-7n|*iR^PKKSlCQ-g#8Q}>*-oW(a7aIwW_f>9_Qki~b^I2po%5r$SeHt) z*e$Wouh_@(>)Xt{$j%239=%~Iaq550qP}>QNW<1sPDLMn2_AW|IcuYL$i~8df(=r0 z`a~GH=iKx4bG;MpAbx{y;Q?7j`^{1s>L>sBh4!i*R8Mu<xWc0SjLOSO1`k8+5bIpa zZU&(qfyu?&U!O}jBYRLU*dVdw*`?O3r~?cE*Y>kVmnE*2kTsw7c=9Ii_|IM?J{MD% zzjQ6ooyeCx@v6xs>x;Jp=Zlx#n6p1f{!0yCRqouWrADu}?l9cdc_?g7)y7t(2(E`Z z|1$$mS;kp=Uu3&jUdP=dDNy<Qc=b6(x#gSgs9t=zuF&2v(ub+ylcROSL5Gy&=)Egc zzbWkAFmK!I#ukR@nxF4QbE@rLa_uksw_{e{Li^3WMMY+*6zscEw|+v^yq)iB{L}bP zUCrCP<JO;L2MieY`6L*Yx&@lPQVsat_;`-TMYeex+zq;S-E;A6S@ry>i0kPMo(ZQD zCTFX?S$E*q%~`p2_xBsW-n#3l;|9%z!Lw5ra;gLclsya5IhRzy^uWZj<Dy;q-ujge z7N<)6wk*~7xPz(rRAcJ2i(7t{u|@4m)V|5qwD!4}M5Sirw7Jc9cOI@uy}spxLb^AH z)`oC{cqT{Io}za)0=6foxyjc4{(F~q-pXAIa#Qnv@V#T5v3YjR_UcP=6W=UNtvtM7 z>z2(*tz33DGv-c{`=*hz)AhkA+ar0_&9M)Z^c^kDCjVd4xHfn0o7?{^_Xc0*Sf?KJ z(b--7-;auz?6tC{@j?x+9di^9tS)r?ZDql@PWQu+HO-pK_Flf0YPV2EIqJvM8vY3^ zIf6FF{kDC($KlmCZPA_O?4Pr0Z=B9ly5S>L&%QN3L;iy2W1R(;cI|zBA#L9Dd$%qe z=PdmiH1EBR<Ez+$9=?Q^vENS5RCD&>n=idV#_V#HrSwf}q24!7C7BLreHVU{cs+6@ z!_|+WjpkxK()RX(HtB|$KJRT;u&m=!;bSoQ`dleF<#htn%_R12KT{j?u<kyuoYzte z8^1oDwk`Y8?;oGN8HCMd&QE6iuw2V}r3z~UZ<!6(ZrdLJK(FvUEN@<<=BjVj6VoiX zd~TDsaBkJ!lC2B#w?%x3=v~LKMaAdahn~~3yzgE1HoCR>PyOxqe{+wAHTGYhzvT5q z#t#*LJ9pas`XO$gckc52eD!17w+p|PaJ>HJZ^ZOEgBIhNSCnUN`;izs`%1iaeOAE! z`(2kBMVoSL?o0_R66RaDd*gJG2h##}MFpO2Z?4i5*r}ywH)Vx@cb0*yq*1@KM1SL> zrzyc|J|-n8<-SuK|91)GFSvWJy=L`-%bRp;k8sWOO-k6$d39b(mizyx)CTrz_sg$- z{PuofTDOmuQHS!uwuPxP!<O4by;bP?-jy!@>56gd2_3&Be8-Fz@oi7vIHmK0c+j`* zH{W{Sp6Y694}3d=N#;b&HI=NYpovAHZ47-cSNwY$n!|L}-`Ggu!=q$#hwqBadpdm- z^W9AIExuQ@UMN`hIQ3yq>y7BW8X@j`EoCopOmm(4{@k?4<>8O+86OvvaLuqfG4q|| z^n-ebs<+;^c6}CS64pKI*NLp}v+n$;ym((#;%NHwJ?;~Zem!o#=lqi22F9+eb?@eK z%<;I(tD4GMSnx;h{Y6HZo$nUrGd$nra(7SNUbWYy7ZcJ{Ruy;en=jPNe_haEYE^*k ztsUQrS<F&YJ}74Mf0~)wm9z3xY6<Jvowp~bl(o+J>dm(Elx3>eUnQ~S>5W1ap$~*r z*<AawH=R4j@HaduD(>^1xTp+QfumwIf>(}K-(cn7@v@VPJkYSI&+fYAfyr_{rSBs- zuccgk$NfO;jo-ER9krhyd@nwIz|h(ESM{V@HrHd;EY!Ijs;_WvLlSSeVU&*1HroIR zz3dgM>$^<_=lUre6Wx|1^iUyt{sg7@RkrUJ97qvfJ-a&7JFco=^@6OOH<oZ%WWQlG znyYg}v5@t4o1@>vf|al17nIJu!La4+GC#djCk}60v3Fi&L7DG055?wV=egNFr#D!f ziL&CYJik$fV}r|1iB0o&+HhE@Z`KH(aQ8v+rqw=|?k!;RX0X|Ld(E2KDHCGNS!b@) z7o9g%{C9$5V1MDO?A1{#)-V4TvvNJ}G(8oTTE2pcn?kz_1wLqMd^B3yt@2xCZKvN> zbJk6P&r<p4wXgl3G~e~DxmQVu-UOB<v0iLvRxw!z-*&C@xU!sGpjMLoO#7`KrW_~9 zfPFo#Qonu#G^b2mu)Oqb)4nxZcpt|+uvo|PjzMAaUE$aKuWj<@zP(XuxU0=Wb@s+H zNoQJl!@n;`nf{k4>i@^2|G_2k7iu2eOUZF<oA<kZ5{EM5ty{ardN#QWN587Nw&&Qq zh5vjS_IRc<+>Q-9tJvyzQt7g!KzsAIu)s+FbhE1)+6%)b-xPb>_EYH955YIxTVC(t zH}u!YF1Wv{Aa{ow=kxs%jtv*09u{Bv_da8{!YL^$u_VvXm+}dBcj@lBKJ)GCC-+vY zEDq!J`?cclV{!g=`|sQPkH=Swu-EMQ=Mr;MZvFAs{s+Ep?f?Ha-<<hpd9=<4Lnh<% zTH+#)OsnNy-Lv9lOH-G)F8WXU+>4%OZobeJXCJ*jldvn{?2fc4^Npj;PFSui_)v9r zN4mYc+_n=Lxi)he>?@{m{%d=6=JbLn2Tr%tv}F@6+?#RKt+%wp;^$)*v7i^5zDn&s zRqj^*iPuk6vtp6O@(<UHLUuPl^NihE&35m`#Z^nEtg_(C;t5?g*=W<T`jP`jj352m zs_Sgg$*;y<9=mYr1l2bw6OX#vD7oKbX6eZn3*8{~+pM4Gjnn@F_4_tloy5+a6D-!Z zMo{9zX;#7X{B}349oCk6rg^8&b8O6=ddbvCU->lCf@5pfn9MVj(Fta#-FDBhvHW6; zi0${j^D&c}DpJ)<%0q7!8}YjtSvtvF)LeeJMAF$pG(ByiJcFS~7*E2A6N<eF9Ng?n zCFkB-{ib~F?AR^rF7mw%JB&Qs@26i74h?Hex1X)VsC+fPIx}L$5}DFIDYdlAJGZTT zbN&-sSBBB<gSW!|_IWAqxIbg+Q~q?zhT!!6&2yPvK8r|R`Xzm}ZN&3GKc5?a+~N^w zAOGl%lA;r<%f)Nwu8SQ{y%N`>vuu~Yi&(hGom(%z-)wU73N*g9_BzKBriz2Meb-FI zSX{nMl9^iW!a2cuzuuE@r?c`iLZ97msDIM)ah0Y~^}pMjV_zJcc+g8KK1<C(=Yo>j zgMYiPlxV+jTmSyhdgU3SGg{`ozv!lYti9x4*Bdj}BNIZ`Ro!D)q{Q*&^Xj@UH^h_s zt($KKI#(;@@A`kuesWXaX4cyKA%|KY<Z?Hhe#;WQ;bI)u8Ic<YDzpw>Tc<a#Y8i9f zl5nTDlMQ5MN(p80Ywqx>ZY<_+xX8RYF!Akzzx>r37$sKEJsTWp-nY9zetCwtQDOX| zt@Eb8O*xnASU$Ptrn(t7|D!u?o%&)8hY!v${rY{r=@)L}i5aOLA2i-phJA<?Z?xS~ ze{u7@>pqza-h`?C(a`04lWVZ4?1xnJfwi@FkMFts%;(3>D~yJjYg7z_oZOG(ZZcl~ zXE}qO+?Veh-%5@ZY`)-^@KL76r+w#o`B%vS?F@{WoyPgc=6!ko%jw!~FO`Cxj{*no zdEfDQ{ljJ1%tNW&LA={#4~c2^Nv!&PI`!-o-|YBoBY)dszh%?Dt>c}(_ufsRsq*~` z`>Trf_r*vryqUboUVy##r$X>Tu9j{-shaL@_iGkcUjM%8TjR&i!MtsXxh$t{ZP@QN zw_g2C`4pC<vl7g)%F?}W&CKU5j%K)@wBw;nTt;*OZ`5X?>2DdgeEqHv5%_h^<c+MG z-o#9?S7ZIi$mTr%vCr&o@#S|9-(&e(fBs1zPigvHm!BHX-zzqx#(I44@>DnUH<Vk> zZszjaoFSz9Qn%~t?cX+Td-Z0DY-Gy?11WpG+qd^u*ZwWOzwP+zkH3TqY>gP?*4ux3 z{p(lyzw5_ye@CBw`ET*tE!%v)=)RJ_T&Lu^N!Bg-wAJ#tFDAXKnO<NeG}ky;jK%E+ z>vfwI_sUB89KNn!prrSlHN^Lu?!6V$tPPsqDTN7C7PA{Bxdr^0akp&wmD?wOD(={Q z^KtQ_x51q~E3NyBt-I2#w(^Mt<i?u*S~tOtLsWc4py-_og=u0Z>iIazZs|38RIl4; zX?oekN-0`Fa;}YLmUD|h?cOt0yepK&m^Z(FF)QJe#m|0=w_mm_C=GeZIAO(E>G{X` z&-`>auC)D(%$2>eg5_;ZUPdo?f-5fWHrY_Wk?)8U<8-6#(#97qc&+%gK=$h4o3#se z3hP}6ckvB-bL`h2ucl+Gcxo+5Y!!;@-})FjF|r71EG<~X)jZ*e*N-g5bdDg=3r{C+ z`gY2!Y;Nm`uGtyASK4-@EIyQYPH0s(&r#Penyq3jD|T*;+tl~hc7xa?Cgs%hI~NP8 zw&cb>Ziw%W3b?!YZ~Cls>D#mJg*EC29q-YZZr9PrEwe;RBO)@X)QMqrQdV}&z07_U z&a_pmSKf8;2#K$aeqoXPH)Uh#6i3&9sS-;b-M4Fey2f%ZL$rw3l+Rf_XRKXxFEl;< z&*in}PTH*ArmkD-Kka=nhb?Nsn}-WFwJdp4CT+ZBU2uNh|LQHyU$SSczrEXB+T`t8 zW1|h`N49PJqhKNT>&Hg7c_ukm7H-p7alO@A_RdjH%k44WL;dz{fBMDNvZ5{PTUkgm zgTuY~NueK8Hcpe<VD7`Xq_gOa$;(qY1}(qam`-gdH&4_&)berOw<SlD;@2~ZbY_Nr zKjU$2$+U<>Va-JyYgyd<tM@e)pE__@Z_Uhz%cs1IwJoAwxL@JeWi#WI%A~7Kt^buG zjvKVg3NGT?7a_1#YghY`D(l!cPPYoCm9VvEO_`aQDv*EcyJ^(AUt3uno^Cz6Cbg`< z;8mxttM0EAzkhGO_tLnG#hmN5ofyA~EkohlhHu5r`;vC=d~;~tdykdh^vqUkJQUiy z<fJ@{`Y#CqgSr)O{M&*KS~^b*Yl^+HM01m{F_SgZrF)Xk;>z-lKiKrQCi>ai98H~- z%7@a#Kbjb2x4rCooBcP3*H-FGddii}4)ad!s!t7Md=|=fXS(Z`1$$IVTzg(mJ2R>C z^_}cLA8r5NmAx*+@UMD9x?A`jdAFN8Toro1RCqNk$mQMgIrT*Kt<MQ_UD|op?60kt zJJ-nM_SS#fCga}IEL(pZJpXB0=(n$p*H$p3?NtA{xp;fC#L<0uyf-sS-dx<bYHy6E zC*vai7cvhY&r{H=WNqVHlK6~ylJJRZ-Fwp%>sA?Su-?{ieK2du>&5SklLQ%sUK}{1 zs<LB?@Y7k}w;kNP{lVwSVGo?nF8v+<On1WHeXVc%HD8?!+x)|_`hyG;Z;dYR?&mkS z6F9DUU*~+~<uiRV-+||y>785Rs}}TG?s+7^{9sS=0)DXzE1s{svLw=ZLSVIIv2v}t zL7U3E*_LKHyD!x|TBQ3}Fl4LV(WEXR_C_z39d0++rb*qk$$$Ut{kw1RKiQvu{$6($ z)FA2qSj7S=d9J<w@TLCSd-KD;>obm3^fQRe{NHjoq2M{!tODJXyMjC)a=w&VG0jcO ze4y4Py7}HcH-5&eT3kz+3{&zxOWvIE!gT&}&c2^7PTgEkQMpZz`Rra6rlNHV|Jf<# zG$j|7o|QXXH$m5(EqakTd&C3rP5+Bt6?Jf?rLH%Z6}h<BysG$Ne^$uUnLYQeUw*T7 z&Kaq-*)Q#{&lleMgS%coq_-iUongYJlGf5?smi;2KRTyv{>jlCGAsQ;BxBzX<7#e~ z_dy#rJ>}cX+qgoyDXVK?>*QH48Wvn}GCB6gU~|f<pH~~>%q#;Zt}HmvaKJyn-SO;I z$sX^>mZ+v(x(-WT%-yYVYeo4}<Ld3~>6!_)BB|%HI*$0xGQVuw#(s0Pz|V;@=D!M3 zmOkkd!N54je3Poui}2e=t-j}YZ1HtDU#5K2j=!e<TEXi?r!#Ag?U*j-ae3#eveFyo z2iDxG+_}NeWA`(e59*=vYj)jS5cWAv#Gr`1@Y8}jTQ%l*y*d|sF`}x>w{e2@KjjH4 z7w*~{u{=h7-MJSx`3|nE_!eS1=js_bmg=&V>~AHvuef=9Yb5V2Ee7Ukr3<uOuV|Fp zwtAOMTBC4ntI|J5YyZ&jAGeO|fB!@9#eTcPp3nPkNI3ko;%-oBSf6q&`~B-O##uEy z-W~3_EXK<VGPpNinJTMS6m(_IOBsF**&s>p$R#?l`tL=iXKY)xN$%QK@1NEo4{v{e z{w?owUBiJ}%Pz5HSC`6to0Io{&F8(Pil_FiXO@}7JpZoV@fx2nWe=7Lamn+W({e)| zOtCmI@n=iG^DnIb6yK^HpZbPtqw$o#Zr;22m^3;30_PpR(3$Gh$&~nGpM$%0(X&u* zIn@Z;h)bI#j|xuyUOIoNYvP~EZTGM24=sPgDERHb49>r~Av3?1pFYgH`5|wFWAt^e zt7Ro8G8$zXE_v1R9JrQ|z9Z0kLE8@v$5?JN2X-#ksqeXdgxVkXu|HlO5Rfcxy;LVd zL09B=@`N%ApSOYO(R*rhuhwWA^L`UNAZBz<qQL#N!&cqizY~JbPx&lkz`Cg0=l_?4 zJL+p+GrVSsk=70Qdoat3DK5mw<?YnYJM-_FUJw6j)NTE*Z?oE~x$|P53;jB}nRUVY z-C73I4qKdvd*M(i5D@=u*12@$74I7D|A?eq>=(QFO(6BH(j3SB<$;~T{SEQc5>~SJ zN9?Y0zp^X%$;C#cp2^#ni%7RV7yVkehFR(=$Bs|MP8`M#>}fB<-x_Yrn{d+Z+jZsN zAB+4p|51-#ao^fu%l-Eo|6eox)_84(z51!WVXtp~N~n4uslIl(FT)y^)W5Rdujl*> zXTSJqtK6dOo+EaVMawtxumt_G5V1|GbmH`7e{a?DR>fZP?DX(ZO~vDu4{g>c9*NrA zy3T<iBVHu*Yxa3t2HvTc-r8Dot+}%L#Zz|v)0s8(bN0S_et+)r{@ap&XV;$xmmM!5 zWyiMHuU@6st+XurU(I%vv-bJSrNvS|))*Y9K6_ar{c3yO>LX`21>~i$cv!o|?qGk- z@omXDUS&Dm2CYq1OTMOm)n0zNXU(sl({8f=@HoY=`?1lArTvDFAHH3;t@YrIXD{r} zMK3z^Z!<@Qg4zrYy&N8fg3xV+P75x~jk@^vcKV}QbIZ($v3@zK=2g=+u(JQl?Rcna zx#RBE6-8SPt^De3`l!|G*g`$|$o3P*EWG+3OVzd*Z{mOa!SQ$T<zr`z!`^PN5l`9j zLUrBUlkN{*Gfvqq@x|dz^L5>fHCAUr{ckX<b;`Tmt$%CU<>_~Yx#7s%rB32n<-6wH zySVv+s>|h&at+ZZ?}}6{y|Q+*xO<%X|FFjK==Ia8MHVMmxQo<cuTE+7vpwJ=CaJF* z+WXTXePec5z)Xpm@4Xb5)+(z?9M!7bTR-hrS<>IvOOH)GcVy{bxzOE@CH0;v-qW0* zaO0)jt$CrTHj*yfZ5vL!b5oFa3}B!9M{2oTO2}4+CvqR=-Ms$kcX-Oq?B(h1YA+|P z+_Em>+^k0;$x)gTt^sYcgwuW=+&z{3`=uFIxF;*JzCK{?GVO5Nncba@icv+1lUX0X zlC1jCB4pU}{ENb(IZvl--+o8-#EZh`#fy!5-mF=FwW7gh6-z6l@2dp1X2wgUJNf5$ zG9Fm8;+ph(|3LRC{VFdV6V8Y;PSL4PU^D#s^~(2M>E~<~G<J#vEVRmCN|KqMSdz;# z%|7>bS>*C__cXRFo!x!)rn5ug<EqQEe3&#RZL$3^dC9*dy+tW%p3Fy=+-HoIG5x(M z)6++FH-jC^zp%IBoB8sV<!nv=z2hF|iJ7i%3%3NgEZeta-?vRh^Ohv)-wk}v82d^( z+>!P5dgc?Zv31Pb3;ugO(0tRq-RW#X<<ist1b;XOdaTpzS-)BCfY<5`@uh+%G!s42 zyj6?RLRP9zy}RbN73132GrSBujTiM^NEU~4b{KU_f41x}i~B9LDy!Y%{F|x*yZqYq ztsfF}cJn+trV;bvP+n5Q;`4gT?Ur9OJ=pY0wy9+ri<-uRuazIZ-rv0U^wWJ6`&z$V zsSG?B>KM6znK2;6-!pr{YxYHTW|_6CROff^;5~I(DO!61hkgA^0fAfUfAV+USQF=G zk`(*oO3r<UGPzx`5o;PF;u-JV5I-h)K=szujm&~k=a@cBT~))gx2cNbL@(3T2isSu z96DcbbN;8%u}z#}3FRDDLk$mTO;&o-rM#D;;fJ$*IEP3G_wU=sl`ZXdWqa@YY5R8O z^{K@!YgyI_*Qd>4c&FZ~Tc<EfJT`7c^#oljE1q*tEP5oAH{|N<+8o0$UF87ZwjIWa zTlBN8#)$4&-95R@U*tgGoXCX4V=|$2*OtzG>TG>ve)EM?zfI4pH+w8enDa-nk4bIG z|CXN<{KF>aI5HF_nSJ?O^L=jRuP|mtx!WvuarHLWl^H%%{M{H69$x=&`mE4DPp2&Y zwpH><?C;;J7+m_20{dTH;hU2ix!_*>SK|V+iIVXWd&0MImvGrN`P&<~a6f%0c4d#C zV^-)}Q@+Df8H-YQ{=60xy2yBIYjc*6fI+vJZ9s3m;-NF&EUcagOc7&UwnQuZ;%~)} zCraUk4_4fpIJ1N2`2JPb&9j2{9*v9p@cA8g&soNJu}j)37dod)+?=BLJx9@6VU5fA zzm|@TUkW21lq?b06)a}yYs^=<+^+w#@$Pf?xBNfp|8MoTFCRp!f4{qt_w}0C`!gHn z9a3I$o?A;J`*tLo=K<!=x0tuL9KP6`X=Qt__raxadUNc$qOQuBE6sj*&hzGrGwEsi z5z{re%FZa)*_TS`UwNRLH+7~!?sxgLEZK_v_od#RT~g5_xpHFW)5)9fMmCB$Uy@Qj ztso;1_$@c++PxPQS^M<AZgTAGdv2PNxRdQrrODd=92$$RU9p&7mRWpcg;7SE+J%H| zcl)CFPe<O2-Y9j*(|_VrX%UyJ?M=a_5_UZ{>e8B}ZfM*!F>JQp`-kVk64@sAFDz=G zvQ@t8RgQ1A{~Erv!q<3iGc&GlJeaiT@x5rls35VcA}LxM%vgWLzxXM~)FmjwtFh8E z>tLwrpJVf`7F|32lSyPnO{>bJCaJn9pKhofx5*0cW<9MkWvg#K*8wkOp|$LjPiY-u zyO8HQgMA9Sj}U9=MhA|*c{{I9d6s72^MHNx)$9h|&*u!e=QiEh+_=xbHgXr+scQ#V z9u;lLPgr45eCXwo)yM2RZ3E<AMS7?oT+$V|_%i!-!-gq($0TNlJF@5OWYT3dzv!y6 zuy*zTHTRfr-g8V@5%Azb+(b4fc2Qjik!zog)Kq^o3Gts^<*heMIk02l3)=_*%SlY# zcaG-<^z13@by%MGF0$s2?2}EM-#EV2E|@DPmGLCxh11<04yH{8x&beOw^-fX`t)1h z>vdY*FSee&G$m0i@Jed+hHr+;ug`LxwkB5T_@(pf*EwI`{AG5|>{u_}hDsi@<~X}; z2lAM`RXi)_pAT8Pz5NV}&&p<{qt)G;gm0c=5V&f(jM<j)hR5xe^PUMC%0BMmO}461 zXJeO->A2=?rE`j7%X03ws)e!o!ndD@b0~P;TF<Dk>xa^_%ieeUtopg0H7Gn<wpUp| zDlOmrTl>DgoxR42=NK~smt45bk)YcY+a0t{=i(lvH41_89F8x9SoGeAcX3@ZT|VP! z=ld6PyC1w?5zP{4e{QQo!aqaq4Mtm<R~<O0!l2>R^~mY_6q~XKr$r3PA8;;9+EDmq zT34K(CgUBeNQSa|eFBU2W?s9+|DpWCt(abil2@OP*uIQ@)A4ym@<H2qSB~jl>)T%E zayn^ooZwo<30K+8R8H$(aaUJsf2HuzX~y!!tie2D-VQBa3%$jBb}uO{(cFDA^WWm) z2I;132GheOmyf;R(h=X_bg5wD#6T~jBR@BHPyBzb?$-^!euV>%zaB5JWn$>RF8{N% z_OJMVx6`-&mCF44?BcaNJyu-y!^7umInV7)UlZdhsdekey%jx<DKGYJy~k&|KI8N@ zLk$*f2D|NZ)Gi#F)MUHr@9wU>+z%GEt)Jt1_SyMI-_@>lR$s7qJMXs1o_3zU*ETtQ z^)P7CIyyUI9qR+;t?SG#bZk7^#&g8Za{?cu(WCD@(`p6gIVNsRzxmW>_15V8l}}H; zyU71gkli5Zjgb+<tXqk@0vl%@oGSk*-C~;QW;y;o-z{6UgLWQGv{Y8Mee><@y=s|) zIQ^eb#qV#Z|6E_0{C@xZxAOm*C(HWV=WINrq_tHb&ti^ov#pEI%=YAIlPaFcJaSlH z)bN4B=}f!Dp2HijZk(sb=OwhY^w$0Zo6jAd{Ovh&6Zcd;ZP!gc$)Z(Uj>^k~nP)xx z*HyZkH>GfSGh^<)BRYaHhgJrkwYV0(?Zmy{t$R)d2CvQ7m!jg-A(;4g$`cOZB}T04 zY)?nY?MUntdD6WgCPgdMTB@!t#rpSWwO>tc+YW7!cerd@Ic?*L+DR`i{)ov4_ql6m z`ZDvu#64=4pQ{*q1j%}I>qhp!m&{a)-JzCU>~&f#%z>f2;L8-zBi5~#^OYD>&V+Ai zJN%<nV!o@`%@ZG1&UW2oI72(OMt@&_#S}*V<G~Jx7c|_CPOA)Oe9sps;o_>+e(=W; zo)~crk%X<Cz9AAnls`|udg%1Zd3PW7zu9ubRQ5om{(rO16t=78o31dQ7Jhb@QEA%B z)THf?qpyippKP77Rq)M@+}B(;8MD&TR&h(3dRlin`lh+9vR&TXb~xf<P|4~yw-~LT zzkRu_dK#1J<vBUE=O?r#%kE(ekbZpqw2m70+pc@BWgX^!Ykev=FYbod71oYv*`8af z&i!3_y^3GvAdgVStR3t+EV6UG;#nm`S*33IPmd~2ReoJjsUPrFa!J_*6VKg=)~heM zt>u>wnC)4emz_1w<G9;%!M^R6U)28JVa9dr%9VXrB=b1Te9d02Y3Mh3mnDAt&{4aS zY3XZC*S=n`F4_OWKKH-XTw2DuJKhDG=0#~=JmeFS^Z(7ln}7aZ70o&JbI*jS0is); z+_=m<Z{?z^@0=Q}*e_YdG{v*N^j!T+sbIQk`z+%W&zpXm)7EL`-)%SQHe2@ikLtAR zrV9=?uhg1-=n~u6rQdh6ORIk5aX&sw`1*_zf1Mk(cJsgLJZp*&?)=5+xl}E~_xX4I zsL!THOlKzgGhL5-=yt0v<Lrk@wSBXVpC*VEr7v%Z&}VG)+{KY2-j!o9ul;;lY`3~I zkJ!_0yLLOi*(^b;9gftk+#~RO;{N-QGv7#5O9b55bmjJ;I1|+g4+;c?Os7{jsEGA& zPtD`Cke;!#{ryCi13N1=I6O`8xXJ7g#Mf!}y3K6Ws;_EsrHqHU9N4E_IXrFI<hX;A z<*ze5j8rmAm@DwaIx^#B%R7OW|Ih8JIrLM^;;Di&*8$BNj2S<rPj>k_I51ec23~5} zJmr=^-Fw#tjlYuD17@z99~gagcYF@xnWFfRM&Xrg5^|}G8OA^7R{neT`SYjS^~b?I zo)3^7&!yL|UY`H!Wi9g0b{=~Pr|^s2o?Cu+sbA;c-r4x$!foZ5O^baU(<V8uf3T@L zv9ecgv;D-gs!p~JYr5XP(5kXY?^F#u8LHbG^s;?kw`1k{JBi-|nf3N1?iRnFwQc{- zv~|u8_*|2|^_0aOOq}(rabCdg<DZzKoz8AQRQa(gLC(ea#rKn~vy?tt|G2oUEc@?* z+?(0_SJ=05xcs$>eG#K{SNY@O&Ns|`p#kE5@44Jq+$Vazar3qtSB%1Qp85rDDJoMt z(EIm?{Q7Ur{&l-;|MlOV{ywzZ`<0CQZlS;CtTSFZUT<pLy7R80jEKmrCS8`iH(!0t z92Vs{bDpv?=DOgJadW{+%g5)}*Wappv^svfdH(iqvGd!@Z4H*J2($<mG%U86X(%=I zq`9G_iJgRXT6a)`fZH|3nY@!*XIaT4rOYXv;k{q+58J<R(={62ob2`wYd6nPvU(G7 zWd)<V*^)V1gQvWFm3`|;kNufl&)ywL7uHVtAk<)cZL0O>l>IA26z^TU`uF1LSif`P zU!>TKboYeGzCFFF)X=$+gQM$G&b7IjO@5pS=T@!pd)dI;y8MWf#;J3h-xVr?e#xlJ zmOCSR+<^ZgSIG{Rb7m1!Ua0iCTKt)@oNdKMR+ahZw`%%4W!~DIq{(q=w(XnX^UssQ zdS|h>eV3hdJ+D6F_e1Y1pI5xu-@CnITGQOUlSD3rzP{<Oy^xE|r_pq)_nxCqdp2t6 z<-K%JxBK7avvh^Cn}OD`MhWF3GUh$DbANL)FZ)*3v2LN!p|YIWm&>;v39?wpVsb{W zsX8<vq}Rc4<=r`*Kb@M7*y=ZKIZ;+>+qbTAV?oRZoyDaK%`MJ{Tv%5t7kNy%XkzKI z2G1S?c45b?$MZO^&U-F5eed~|{l@wm%~Ni3a-<o_3LWo@l08-`w1)A@x_qW`C-)Xd zw{JQ357_z!Xgj9fH}&e8KI!M&4a-&cs6}l_zZ1+mwR+n^<_QUE7ozm<dpAru+jrm= z<Ly%pYD)#4&UqUoH9_A@X^UORrGvj$t@aZYKJ!(P&B$%qwr{77)wXZcT=ShjtSR!w zu0IKWtk#J!H{!NmxiB}7VUCl8Zr%0$bxJRm{$0er?C-}-n^%iHxW39~r(gqv@`{3Y z2ftKw{Z5FV&TY;9JVxol+26mv^Bw!F!oAwTIezcq&UE*w2lRwkgs;~>jd&8nQs%bv zAdA7(qjD=>KQg!VN>;j&(R{A@9s3WqS89$9-#58UK39E9@a3A2o5wD=Fi7hjco}+d z59gaJmid9-EaI*O1f1`+(pXbBvy^|buV<Ct{Qbr=W0~eGIQ($Y!Z^1l${SwJ%zD!< zVECl^i+8oCZsB5{1@m_OUEcV?Q2q3=kY5uIPv@K%ow3EoXU3763zl%aJ-+h2=>B*< zwf6VH@#Y@Ocw&kV&hlc~`MBn7&$27mEpO(BW-H7nxy@{SOyT~)g$Ez`MC3-_yQTU$ z-gMu;x32%3430a^DEoCY^WVz;=})i!-)0-ve_j5f>8;0KEB*?`hWr0Jwch0Xi`}8^ zKK6em2xO$ya=x-+PPeG}amqnm$S_ag4p&UjmD?+~PBgllz`tUyoUE>u<Gjw3Z#S%a zx$p1vNZTv?-XB;WW&7zni?v9)i{})5yH{;)pL_q`_4053f9%$MBeVbdxz?FqT*@D8 zXFY%7TXmp!*u<$He%*e%rBidl(>*yEkxwI^OzN|^!B8W@dhV-JecA!Na%;n8*6-(x z<7dx#=9O}vU#sJ*uIr%;u7JOtS0>M$P`dQ-t4DRx#_QkS*mQI5`mK**^S0mL^#9TO z{dxE8Z%?vwZD&#Wad6#=q`V6Y6?Z(iIj#3l)ydtWZw%z;-Ia;ipRlCac%l4yjp;M{ zZalatlTvd>@N>^s+vZ=Z9&DPqs<7^o%!KFP9__WykKaA-?UeOzzTI2-(|p^m70E)3 zW-`&y`U_h6<GHz(PkUJ;)_lL%_MWl8y;V$Yi*7jVZ`4U!RJGmOFnRZHt;VHMCiW#_ z3}O|%--YH!u8BzLo7s9wU}B6_!2|ImKFj-W9@{p#PMl(!*yeR`s=;Kx;+Cv`X^OYp zmi<WapC5Pdd&Tc}^ImVV?mF}3@#2^lYXlA?mT5&<RMix=7KsNtygKzYWLIC1^v1FU zi2*y=w#kK_s#p5m=B*zkqxR15fsW4W6&G)L&Jvm~mHJOk=9mz}*#%Fdf9^fua4qm) zVc6ZR^>e5Ar)bss`(K~IyykYV$;TI;CLH5xv}gM>^JexLY2#BTs<!T&eeC<&=H>MV z|9y(DOS=F6Yu5j(_CMCYsrZ*@EMGq3x|Er(qo(GU*$(z>7w=7MX?W^zapl49$F9}f zR?m&yW@@r^YDxL|TlM^U<|}6xZ@qBwzEa!S+7pYN+1P5QT1dP&H0N_HGeg<ugMPds zR&$*)qqF6j!UD@}BR0tTIBxfB_`?0bqt_>fA?$JLyp26a4miB_XUad=wNi0i_({7W zFXK%euBogmrk?***l3$1;Tmngzr$%wZ=~g7-QG)@SJut{`I$+2QOS`d@ejT!7@cO= z{@}Cm1z#q)2>p2**e^^ox@EcTy!<*Thgoc?8B19exymf}=V$o0YkD(uL>&Cw()h$- z*Z;Era<6X-E|6e4@nX@#Uwk*hH8)KSl)D<3Zy3)q!Sk-%8TAdPIJ_okhVQWJO;vs) zf8KVs^oFY9t?VzpzdM_|x%<6}wLz?d)0^AM*FQ2pSbr@+Eq6(z`|K-T#~gyb&C!v+ zERz;^G1;}#aY>LIyYsQT;U06cvNNiGD>JT2d|tyWBf!DWa6|Z1gvN>;oFbAI(?T2N zuQ_dCIA1$=*RT3>Hu@HA51lu}?ODKfhw)<L8N0++TMi1HeEs#wGKTF@8O;hScmo5r zp0%;IXfafFV484ZZRYP?{f8?b?%i|vn3YbMonT7OwvsQrVsrhq85CcinIW)vZm(qF zWoB-fqg5w9ak9icO6Lsvp%^u%HDbmV1#fq!YAtQXrihbji4*U#9hkbyD@V1%Ph)EJ ze1-Uivj?p#8vY&%T33B%u5P!wq0%|Gv_y`#RnpIduZbA_l)n9rF@nJ%<JS80x!#_? zBOL;(ZteTt)^K(igM6xIUcBa~a?J>l6EnKJZVNH+RV}W*A-X{=!9Al{*5GKR{kq&g zx30e{ulRQ5`W#N5Q@iFnc)x6&kXQ2W-Pf<@Z@zt7|L^*nk5zmAajZ+}zyA2EdqJ%I z|DExfjW5gRdfj17UuEQxSN8C+=8i14k00J>zIqb-^?${#&0oLiG9L=K(XTU$UEQLY z>lD+ZTf0NHSWHp~^gJc?BYksU&OP3<=_fR#BmN{5F5cVHTx%v*Va<}Ncgy6h-6m&d zhJ7Y`H^}e(b9`Iu-mRDa_Rn5ip0_=}@nhr_=Pi?!xaLQR)kQzLv)1d>gnRQ3|DI_7 zRK%zwyYj5zoT4)41;#>>SHxQ0l$)8SKdIT1&3E|bDve`nGSl`N&fOyDz>x8NvC+o` z{G00Y-g1<PP1v`P@5-Hvr7ZVa*WQv}&YE}j<LzzM7PDu|w{*T~socK#@WX`9iTS_p z@;RQpa$wS(Ikz+I4j8V@C>A~Vd_lv3<2PS_XqM6sbB`3&@!#vrw3xwaX25(s|J%Ro z8ML15s_iRtx&7@}%$1WXEB(^jIFctWb9!|DW|v=N=J^5^Yo!Pd%?Lr}W^U`~D`%JA zHJvZ5%i1m{lCaKJd8gsyLzWtsawim({eC=)i%)6c-Q?f*Uj7p`%ARQJvf-s<49l4_ zO$Rmx%{BEF4_6ib6Zw6CO>wNRR<eb*z&c)r8;|$i+q3ueZ<hCOeOff!3k1$oTP^qA zcDX9xq=P_+`+aAIs#~+I_g2<lotD~me)qk7A_{?`1wLY5=O28rz<HX*)k{wk3eNJ$ zoDt$<$qBk>{W(JEhWjZa&3Ut}Dnho-ydUx^iOVY}z2AUi(c|vY315FEt>2->F!f~Y znGLn|3*B6=n|<!N{-<aD%lGlM&+IqY|4y$z_fP!)wR?H@d%o5GyKTSa_U`(O@9*mv z+ULA_B)TPb-OZ1a{+4;I(mf>;$(~&0Fg4<m%kzMnSsg)f7k9FnMNO<cEOoTPy}Uyv zY|3l1?w1eVzOb>rcI|GSJu{1i{!KrIeK)QiEVWN4zZm%NNMYnv@jJKYRL-1o{`so( zUOg`9gYy}0aVbm2lrHUzmfw&S5^a0dpEF|XM!oIjxm;7Px;7Q0UeHh9-6iSpwC?6F zlSQ!-O!LG<7Qb13=a8M1Gt0Ki%qFG02X^=J*v*hElP*aQTz27lZ&r2i4TX5=yu*90 zFh5go^qbQzI={H)`^<NdM{6WlSN-I_ud!k>hjPffxi7zN*?a4Gi<0yM=B35=ne`U! z^omwy2@EZc-)<(p`1;oBhN9J_8y{Ogi8TDtF#oYbw(SguNgOkl{=eiM81dvT!*X%m zcbWE=pOsqg+cx{PEQ9{_D#oKW{7joOo?qIsaE+q-PR>b3=ZH7g9TH_IXTLuE>(n>- zVgk}lOSPXnKGnH0&u7i^vTBaPknpeeM%MFh*DSX#>G)X06(;!8*5-A6|5jU`^DLj% zo7wDk^uE1u?$T^)_64^YpPjmRu6+Kfb?cWDE#A`EIG_8|&buGx>*on?RGFgNcgbj~ z#l|~sZ^TlUWv?&4Ze`3gT~AGNuCtGn;<`e{4UEsca_c@bZoB$jV%i;(O_w=@B)2S0 z&3yj1>h^(#?PYuH9aldru`<2?G~@W=nF=B2b0*7%T>bW)iK)j;%<+#k_ZsB}wl(|> zzf)4ar>Z5HafSL7Z~Oa@tM16(zmjG(%+`;WENNqk+|HBf{>?4)CEJA5<bW8JxXcu* ziG?Th96q0Q*X6T&_?mU8CzHP_$IY!y3F0T8ecZIKXHr92bYIT)@S5{%2O9s&GVmOc z>;L3FM|khwbfJLYO0nq|?im_78|^aRQ6Id~-2LC3u!#mmg|D=hx$$n}J9SO%=M<kQ z8>aOBo3y>gR9`rE{ib_=CCb+ReQUpG@9+A5rqz4o*4saUtPWlnAO8OD)cBRBf9^gJ zT{R(Y(cDQFZ<e~}hMwNN@q%J5+paAK?%egYn9s~?I%U_QdH3o~gAKGh#a{5$T>0t$ zHXzDqO4G{)7f*g>sK{c^Ihn&9W+s(+?P9vc^w71pXT+Ae9~IqXzj^oh_iw6oC+{$0 zSD$aAz3Wnbtm=<vAD=}XNN6bDY&CW2-$OI+dYyUq<0)VJc9oKLv7TFwTRiP;-p!cX zZfrhD>8<~zW4TAV&$IBYDcf%EQrA%>eOl8YzPw?PrG(S>gK8Xa7OE}$t-N`oZt$er z_1jlmJ$`WatvhqR{Vd4+&BpeI{~q^`3v(K^t@IbX4SaHH^U@WvA$J$#E@>`fRJWXe zO>@C)nT0?0O#I9k`b>77?BP()!}_!3AHDnXM?h9orsC$ba+^nuU+#aN`_R=;L+g^0 z!qyuu_0t#2=2jkBxitKCTW9ux<1CG4_c9&!e%Q8hTKS3>w|nP*JY1Lad3(nv_IPdO z<cVs5vyC@5zy7pf-NrAm2O19ipX)jKoSe^9j=r0xCI0g&8oyWUGb`HXcGQZ)B0Q2m zZD&z@J&(&`zOWD%POh*G&YN1B-<`{UA3gVEy1_qg9ntjWfQEv8g?Xl1SF!e%1>aT@ z@XZlSiE%rlcv^b~Z_1oS-;!HruDSJc(P~#)ll|w<uX^sn*6_>Tc=nVVN<6a_Zm=)~ zX04gHc>~|J{Vr*@GS4w*-kBGw(`u62%`>gZjsMQSkM-YYf1AJO-z;7IZ)NwJx>A>J z+GG98nfY1R^{EDFwmVOjoeKH+Lu)bX#Er5{c`VD{IInP+?lf!b_R18qUWbL>%I&iL zryDkzF~)Q<CS0_VpR(|*;*7||{}Ifq=e^w5*6jAC|3N~=GnpSV0#2*kkUX_2^qO_E zsld4s!3lxN$<xj{3Euv0x?$#-piJ*;y#XEj^7uFHe${`@s<_WyQu-fHcg~wr8-<ly zj_3y+yFPEJKa<SNx6S|BUai)gmG)<QXeyKBlnwj$p5x8fBQnSQ&)sP|b@DCKPBC52 zeN?5Xdw9lri5;DNywN=jS#5W3ij^&MWRp91xvPQOO7dRYwta`~m^vQspPt0ackJM8 zZEeef^UD}?GY>E7vwYSOnNfOFU@>$0-8o0TJeuheD`dxfZR(V}*;d|Hd>EFqMl9{) za@m|?p>iXgp=ZYaCC_b&--L#_P1qwKBdJmlvEq2cufLOKT>SR&*4FRwA%5*Y?H*OH z+w*RX$(6^8ogEkhEPh=7mMncOddruTN4pcwUN~_leuhrO>h#8GOlL&4Ol6OCyJHr? zp%7-+)w8Cb$MD3e8HJO5`^qMFf2+Ur$HSSKXM-~1`dL*MdTiAMxT<e7?wgyF9IgDg zronRdt$F+Q@kQ0MY!sbwdnKb~dHK@0{oBu)-8D^kAZudJ^rdGL|1JAEvztOJFE-zj zu@dmQkhXO10d>JQURtwO2=P4m9M+pXXXU|t-9jr)N4`#o>MarxZfG%*XcB%}a(eT& zpE9#=bZ=?pZ<SW(ekOZ<ds+T>_pqk<`_cv9Ja^0vSTkXj=h`b*IRd(NabD41An<nH zwz7auK@Vds?+;7(QewW{h)!{uHqS+|z^RwJZ2FBO%Mw<q*M!K+U$>ocM9!i+u;VY| z?vHn0zkYw??c4fqkmjDidUxK2<FEO@?%MTl{y(qHnfFCM&TunKa^PoMaCNbnX{%D@ zy9El;x{4dmW}Z3S^rpmKpep}shUk%Iv(^m3b2(Nru4nf(F5SK9r$>uzZcbveSbSEi zE9-C3n;Kl**X1-Arxb`Lo)@w(y;y%e`$KfuqP}pRPl6I}XQ=uwvD;KPVUhktCvLy^ zAhSEncKi{x!S`k6ZaL-n{qeQ^A|g-A`Y#%9OlIOtiVnZz^84W3lMjkyBHRq#lof5@ zW!LzxwrcbK+is3#_9g417W{v7v-;b;>i0Lp_kH92eQLVhrtkOuFG%h9R`&JDv9jc1 zmp`!wGc*!17yOm~<5&NzvoTUH$wuPkR^83cf_lLT!6#WxuG+s<OFi?=mcq2~5N1w! zHI^S@7nHf9GBgbgE*U#An`p5vzT=$TaVTS1Li-fAG{zlnMb~DevPuheDCJgf6Hsd^ zHlJrW?~jfAdFFRBRfE!lDv$rsmX7_jfaQ)up{1~|S=JQo=SP0qZGN_!i$zG-F{C0u zMZ0<S5*<IM{CBdl8T=>tt@m91DIxNb!(j2ffCt{`HYF}6)?6=~JtrxSL+Nhj*Qifh zllJC4H*Vs(fBeKDrN@;kPpiA$>9L))S>{}1b;uPD2KT^Yi+5bSU+NKcy_w1Pbq~+| z$$qy}4Wwe3%*xIm*zC83-SS?$p3Zyun`-}hG?_iu=dt{~^7@SS4C(4%L;g*1at2d= zU5mS0yFc}x{np@pxgVd-{<hlv-D<4@{?{`~AB(NscInFVnOhG`jJ$FuBJkKOKVwF3 zqmoTo6CE}46<pq#<Sb5}KiQ$}#4oQemnU7DaEpPjQ>o#imyR*B+p`l|)vp;2FlJ|Y zaK-qTEb}t(`08F8yW!ii51&<eR!x8OxpG?GtRI_Ov)(h#npJh;yH(29wEog4R<}h{ zQ|JATx%OfoL&F5GKcQQ<viwndQ@^QUMs4p_2`T-Qxdsg<v??3cwx7Mf(7NaS|AV;) zb_hIhIc<J#^|e)Ei9C-Mgf<>1zarIRG<oy6y)$3OS9d+i?A|b+^+E8v+?OX-9q8iH z?PT!QZP>Qpk@xYXo7AjNwJ%b#F14zfQa<5c+}4LN+^O?^>{)(!rb6tCxf%`Lf;N#1 zf?HBA^cQR>sW_Cbd*;q1wco|>*Kjv5-MJaf5fUWOza@*Qnmw)T>gszpIYl_9M%n#* z9w8jbm@6)y+o-kafQIm#6AT|WZHQ$}t&Po-xADFdV;oR?jNLAI7t>^euR#qe(z0!t zn_hf7RC$-N;z`|n{l+H;YNuXe^>B}lIr2&|PST-Z_xX}!&!<91q;JZy@89>T_!!Ur zjO^m6%HFb^tlv3j?Vb62ZfvaVo0FH*-~RcxsrJXi>2D*gPp@CU?$#f<4ePG?Mrkc% zR(vq~0RMA~T{{9UH_T@ap841AY}=KVJSCgW;@v^&lh1MqUR@WxU>9ed?_6~Oj`ZCb zB^mr@>!!Usu&6md?8qj=QWeh_X-%u99TpEwUj0}!KVXp!!<*);ZyWY56Fjiq^Om&L z|KO@arBgl~Wm_4|;2QDL`H9PfGyl&Y)nuIFp}o|ta#h2mxNiwL>$8|7Z>TP5NIbAs zQGvnkgY10crTOPShug<ZdvBY?WD{4P5xxnu_}Y2bx_STptdF?2FT1;Gxl5v<gq4Nl zsi4^{J=-EV)+pX^mtB$ZXTg!iWm1k}fwlRn?L0b0Sqq=7>R}UzxfZjSP1-J`x-T=N zA?-wz!iKEIoXnfM*IcvnJ1w>MTYcH8qOb-FCz*7Ps9y)x{Q3FL^fpJ-iW%*~XJ&;@ zzVz!w?NRru-Dd2mvF~08zfGIHetq<t`48>qzq{9zm$@)UcJJof)jLjY3BF(>ym#%A zx=WFX23<K1#QL~RITfBwzIpr>d-<I8k*n|XEqtx+pL3sYiTe5ZxB2>9t|?k538>bZ zWL?*saAZa9)W^C{ssj$lo96AcFMQ?5c=Obn!*6xxI%V)UmR<4YVG>YkKHxCD<acL# zTH^T%{<dvJ?-u82)hF~;9Q(CFq_joyt;FShmJH9Uqx;K?3O4C1l$qx8%q8e;)|sW+ zD$B(fepk7L-Ps-d<NHKc)d)xT7^Mn6Gt2ISSEt^dQT@zj`}?`?;-mSUY&j+{gdUSR zcVd@nC%;ld_W77wpO>BZU^+pe`u4UcQG>3u_oc_q&b;$h@{a8NU+H&@fA&}3-)O_S zwRd5#;mS8(&&+o$dUK`OYVth?zcU;^`FS26j969JDkS?}b^qPH*{?UPO*D`<ONrRi z+;-mo<JPie4<5a`QphhR9J=Lm0AtF-W=6KPca*y~<;~<1y>i!>*|Gdmw}Zp~J)1gJ z7dx<?;n;dKDYxwDt`DUQ7x%8|kv8_=5n3tU)Zq7)^QA+Pt!imaL&J*L$9uDxnQL-9 zZu1DZ-n=hY!Y6)V)2-Av#)>&x^Jnf%mwmfe=1Qwy(z;WA6Pv8wt=lO6SF)Qu`=?Bu zcJqf>x~Fm{)tx(@`(@r&v&NkpPgTATzpJ@Hq|`n=@RcuLT_68}`5%ATuAS_}RUN2y z@p)D1Z*7LO)&zmKoSV0-tUu2&p=6uqmtuRaI}#aQUJVgkM;Jb>%I0QjJX>XU(PEnG z0(RLvL#Gc$3#ZkmIx^}_t-UaFV(PVf*<V(!JXGA}Z0g10XZtd-Pr0JY_GxN-ctsl5 z|5TRgDGPb$W(F$GC_8Y|%^@qyVBd#5+54@1{Bx~pF39a>UAKGh-THt18>jCq_gOH# zA)Mby_^rpRS#vWTqim~Q9+z!=|Mmn!@xH=`!ghxpuFak<U?H$+_D$8NB{6|bX$y}A za845LsN>Qq$#N{sY^aGmvSvkO_AyC|%?&r3N_(D9yw>wtV@<g}>z)Z)A1~nC!1?|} zg1@0zhGz7Q^Rl`{uh+i2c|hX*sms^AK3Zla_^kTgljysPjqk$ZE2|b9)e>S4P0(kM z?DP}s`a3Cc`L`0+-wQl6Ot$cC*pPO!yNkg_J}zNz&)esH+t(klNxpE-#eEI0p~0d% zhOr0y)0VhTnf_o+caeyN*2zW7YdiDYd2K%C3G>a{SsOe3y6tA!+*cmo(_czodGT5) z+T!v1tv{{5FSoA#{A{Z1`};TET66Z5T?jnCd}B)N-b9|2p_`6>pT20<w^JXN*7>rD z+Ib07&1^h%&_FKv=&!Wum{$w}9`{qazkbfxUAeDemE(Q>``Y&t>|1;v9Q~N~+O2Ws zzU^1GcIaBGZ}Ple-NUZWzFt!)Lbp8O?5?*~uX!eVBnG|qFFAelaQU5W*I(Q_WF%WZ zPx-xSe5a4@;(1fvcOG6Sd;I%0nfO`FhAADPKfO}K8Z|@s|3AEa`~R2qH$l@1iZT5> zpjO$_U3I@c*DrR}{U6ub^~#I=pzJE2gQ_WM!2xdUYzB@e&n`{Bw<hijlSH^U>wG~O zp^5DaxHT3Zo3-x6#JL$)F4miR@^IFjR@)zF`FX0N$g8XDX`#oTIaIuV^Gfo^%DYP~ z=gz)0zcTjkgLBL7U!ME%>paI?v9KPqlpJwU-P<+?iVYP5j?IaBCCQbXV6X5w`k+<B z+_v39E7d#B=xjT9@Sa4)BC$g|nne!>8R)&f@K1f}*~)@<vy6ZK`TPCtVt%_V>uVk- z|9)`#{)XAh_1_c}3oP9hwZilJnKdhW7788xKCSUW(T1eC`{Ebz?_P0PC?k17rp=Aj zE52WR9+7p+w&1w-xkbUJc9x#fk5b6})c>TQFGNQ_bpP=w5zA9%88M_OW=v!FQ^7F( zYWGfuoXj01T*1#)TSTy=$L6kf$u8Y!)UiGClJ$nL>sA>_S)LNFKE?dD+y3I?y?Lcy zA0+Jka=!2D-LHIX+om-M^R!R&b8o%8{7u)DnY$lPdAg)3Zc(Gp>}=DHlaClguXcuC z{m=ebVdc}wOyPgZ4X;&bGe4UDHaRgc`(ABAn*H3OyWd`4*kmSGQmxLlD_eP!tKGDn zsbMlx3fiw3pOTpG)jt1GB-gnrvkN*e7Kwj2(WBJ*@$*Hlo<^lj+XHW1uvXr1HvP$# z7dJE~2j4indwY$RR<mc+@+8A6>v}gByjZu)GF`tg$lf_ao2l(Y&*o*)seGQNp37yl zWXxFc_Ky6ahpz19=@T3?kL^oR@KP_jW9;#<?(*%Qy>A{~xX;*lL1AfOX0(JuSJ$O^ z-svLeezpn<R&fRiuMlx~vMg9uukGINSYd`k5j$hQZhaYfMPqSbr?}m1#;fc-(zgUl zQx95wG}6>pzA62Bqw8E&>BHh&Q?IRc(-gcZy4Ct6H{))li4Gf5IR3d<a(?rXdLz`M zbK=LhZF4nqZhv?XxA>Uq46&(S^0=4{GS(#D-}y$sz{BzW@r$mn{M;PR&;61qwubRS z^TKkWx5DXX7a!ZV_p?oHM*H3B+#UH5;q`k`FL0dNBxtgpOG8)VSgy<7@V)EJ*pDeR zY%i6b<hgtC-6?*paqCzOcFJ06O)oT1biLl|yI{w5+dWAWdJp`%(`c44FQn1(>%-!+ z7q%51lekvQJuTp}Zeqx#4VsVG3b)4mvf86@VDrB{Qyi<0O|i&G-f`!%?H03})wT^2 z7uilcddTUm!m|ZeLa*w)EQ+&am@EFa>w?dR_ud=As`ME4s&7@kVs?vR6^G5`I_47{ zmSxsT+XT<`w)3<kZ18Xh&DpMXfHTbXZN|p`d#`?Um~ic;Q)=z<>XlD8zGa`^I92Yr zDtE2h$tLDGaZEp-yezK%_-JSCOYit?uV1VGn47zH#$|n@A`Y$xo!VQA|I|1pB`QB~ zQ<{2eElX8W=u(as&5j|uESfVDI=)Z;TQi|{KSR!H*JuB_pF8zPp4TsHOls<gWn^Q0 zG~HO$xjbWIhI@=PhnCvhKLOJYANl<{r&8cVvu@HA_oTPUOZ7Y(mTDAsZ&v>%|NQ#t zIJWzXwHc>B{S$V^c5&@yN3#ZosNc7@m+xM0Yd^pK^+wkRkH50lL6&m;DE$n&-R_yq zzf!jHozi6~*SK3}IegT;s`Q%4**1;ymxS@PoRa({TfFX^c=>EW>f|<#m<8Jx1kW}3 zvvYGm0o&4l#&4FXPffa`uUP$Z{^O(woyF@{mFM|ePVVY?9x=D>`IZOMRKF`2O!j(h zu50v9v*xG?2gCh>fUvEWOA;Ic7o2GBcv|^3;NJO?3o#|Hx2))2b0uTq%)3tvSgwZh z{c!v8|5BNDq<p!h)OG*38|?aVH?HshSNi)@xP2buf8pJ`b{%@Ka|6F@xq3i=;XL+q z!N$bbe4kt!XNl}zVrIQWadYkjSA{&oZ_5rxW$chCt}GJU`hSmq^)imSfZdTV9A;~B z1c^B^iuS#)yl^YwSySrDHBX;7S}oot$X9!stI}*<p~n?2t<`#lrYtNu4ELDz_ZiEU zYdBSNo(!v+;4b=_$3SV}Y{t{#2aG-{tXq3?<7Tax+mCKEm$6;E_->+Jv-O>w89WX( znkP;vPcY!hC_SOT`}d-!?YRQJnRi7ro^5VSc$^X2BlNp)@?j;x!@m?Xjuvk??YjJr zmPMlduWf1T=P9l3d9Sl*_43)<&dk4IQgc<!V$Jzjy-Q_r^7ej0i%hz$aweZ+WKO(z zsQTDV9gRhrE+-$ok6SeP=aPxC%l5cgbUIF68}_uu__F&l&izZzNgiA9$w~8EZOz)% z{p=gIowDR!%V=3~YL4-m370Ch$}-*4Yu0%^6WZYPMp*vx+){>vb6?8%<uxdCovF$D ze*LZ3y=Pk*8<tn6d0hN9A$e-ZuR{s19L2nUw=w!Nowa{;Ke&9IssYEbOTQB8KmC65 zXM+;=?9i-W|Kr?RBBqB=&56IYbfW9zAO@~2v3gscZ+V;fD`>Ox`|bMM%U1{bEi7lB zpyj}x9VqhZi))tI%z&DFgJd72I<*6;t+{>a3cPln$<1Hm{{3E*w)$+`+gMhw{qd^~ zR&{u#OcP>YIlWO_c%JlHHf=}t5}_3-`WtLiIW;~!zdiZZ+&#B%PJjF1$;{dhZ<MP) z{%J0I*Q0y-kFs4lf1mKXnTv9cFVBje8T&=&V`nVujb%l_+a|rwNQ%Fj;Pv&AO)qy~ z$t{E1U+R?KIL@n(V|pQ=-QsZh-mXvk8!YE*+iM#$9hB}`wJ_a!^Abx{))`rn9dBy3 zSbRyh{?y~g!#DS!$X&@3Q$9|0+Hhilxbb5-(`$E`1FbeKVaZ#aw}+`fh+92<<369{ zCEIpRO<*{$(D`vuNVjUE4r@0bgVcV-i0ZORzWCc3(<cSQ1W7uxC-{E0xDa;RIr>;t z)f=aVY8`cz9}8zyZwcVr@TKKJ;KYrQ>CTz_*SI|%F?IYtoZ~;=T>jzV=ik<>-5tw3 z@$Z|6qlZ?NZPXP%aHd2}qv?Fkdv@L4dwikA;X(YbexF|E_+U;fQ~iw%frfP#`+seA zW0?C}BKmv&vbr|)slnGgOgiq}&kd-4&*&rR^MiSV(#(~qTCcyWGRZvEn<f4$`7vt{ zgLG4!z$xdsg^S;pIoSW<T&%Fzn6dq3SL)icb~`Fc@)vi%-EY1rGGf;9((ju;|KPRO z-~aPFc#e``y*tB$kH47ruFI?YHa+Ugr_&*S%&uK|x+1guRvD|SVb-OG6-x`uW<F)z z6?0R1R_+fsnH`5$#GUk0{#ND4zrp8;5d)L!e?IrL36mG_?E0^*DdE21TySUUk*T)Z zKl%g-g&)%j-&S*T&$TtFyEV@FFTdc(u>SID@2zr{TXpiBzIlClY$%drEGx1;Tt=<q zlwr47v(!F|wO2biPhXq6LhHGq$f4tvPHbw&%<eTxnts*It6!HNcjI?_)%|@R&*tA` ze_x+r?musF>ZI%Y9HkkiJa7F{c|nCc%kgHK_xWz-Y6ET->6r^SG^T{MA3r6PS!N|Q zwQ}|o1)~q@u6Hfi{=Hkb#Wt07!`5`i>b+IsWg%${ivlN}-0ID+VddJmsSfjG{v2>x zqrK7CdHc_U`_dLONZ)2PWIp=XUQv1FzT>vsGLFpGd76a9KNhBDS=cf8e3>|Hkyz<A zf$Prft<!$0r`|F+=6W!cGjZ1mE77!Ff*eyf$EdMIYBEW#{iw8DWtCo_*5*qO9k>rD z2{?NFx?AWqyD7_%Lq%k2@*iW(LyR8;3Orw(xA|^Z^tI;A$Eu8oTl>~-T&{cLf0yjD z^*3w2s@^{9AFcG8VQ)|F&RoAsYrj>qw0CzXbKO{-u_$8kDUrkRvwI~)7#)P>e_6*e zBl>)gsAapvZjL^)<oUlD{_cn~`j+yFQJ}so?17}Ca`uVZyB1$XQ(fZDHEwENny&Ku zn7_Dn^An?Q=PDRag)}*5={M^el|EV06t%D8=EbY*5mk#K?!0C3s=6h0^W2hq#V2L2 z*w?n}2(Ng=u#lr@V@}1Di1Ty)N1SH(&3CNowd=;BYxmSwH^_2oOft1vti0OCIWp~x zI)n9FW_D8{$IVL&Ira)CwJf^0Ouel5$LDXo>;FyJTl;-m@9X6f!f)*57aMk8T{7!! z!7|;3sT=$E+skiSXM3U}U7zcl`P8!<Gd%gfm5Xa$o#mOb`04^@?Hd~eLJkY@hURb5 zFmhn8zps7F<(%5Bq`R80BQk=8C0ILW$;sV0$mYZGZ_dWz8TMP||DTzEEB@cPd;7l6 zZr)q-(&Wc=t`lap%Qjw7FwXE?cyxnY={ixC?ul2^8??)&+sB8U^q8g^?%=-g)S?H@ z&NpA5OXqs;WMX`7%bK3LhN@#**EVdfdUpT3*o*5ije<{8UDiG0ujSW&D!DF2oJTUK zqbKS8d5!(eb`6>nFXSXK2EV#@;{W-o<)Od-O!_M3wWjvPqdj@r=b08S?aKFjoqYZ; z--5#|pX4@Nv%SIW@#<!@_=3Cdj<#53+rHhfO!C7kp0`b<bz+;gFjn(FE3IEy_&)Mi z%XgE;o`kL+b{;Pe+VtdpdtdNv!D;{W7b&b~ljK+ZUBJF2W4-mA2esY{rv>l_)NYw0 z$av7EJoMNzYnzSY`gS?>b{lG$Wo#p2&voa_mGF<%o&Q_gr2C1($C&{-D^>Wuy<F3? zKhEuevGMmpIf=JELJj@BW-s<!y65aE@6Doc<8^*;X+G!EPj1t{t@L~lwWa=P^SW;V zvkxd0DzHgDSN$iQw#-AZo#*_c-#7kVths+}N3-WECc*D3Q-1B(@4hWmdg4=$-4Cjr z(pgzlJ8wkBe3^NN|6{3XZTkNI#bs81Z{6Pv8oOfN<p!QMTmadE=lE~G&#N?14x348 zy*@jlrXT!gmi)5x;yRPJUq5Tti@7^Rva*D%QvUt$P1dV8_lmrkF5yAz))=OTb?u+6 z^5yuh_W}me6H~Po<xcXQ7Q*hfDrSZ1<Y%RBvdS9s=Y7q0<StqGeR1#EN{Ly;8@A4# za+%G2Wy-?CC&Dy3ZaHPnU&_b8VKlYy^eKkB|83u<)!gTw`1GIL0%ysociW0*=$`zU z7UN{baHE`KLKmNX6LYwK+U}kIChh(INK;1li20(+i|vX}7c^X0$K4(}iEI1HJ=POX z?G}CXYlXW-;UR$vn-^9Jv#d2Pc)#Lft?&2xy3{AZNXNTcpTA^!wbGk^F?QeI8CCgy zddb&Rq@v{EVIcF_CL$&9#T|aB{Haq`sPQZ1G0h4p*SW)4G)qOZx@651MzK}?QXf*z z<mD9kg=lxNOqii|jE^O!SDY_}wIOt|>Fo8MI(t(tetH$;eQIk5PjadxtC8hwjWc#- zpZl1m)QL8RMmIRdM9+Pemy~zFQ%xdtF^h9#EX##gr_YuJ9DH&k`<;`B=jY78{reuL zf7|t+ca5~#6p<B+S`w6XO>MLNs=1?QId74lf3w>E{`UO8DO>Yvi?^0P&-wrKfBL5L zcG7S6Ravh)e{1#K?bq!B*%{8wXIMGUwvQ*jW9Qtj?|F{T{8D^)##_F(Cyg1WeZ8wa zt@J^9s8&-#n)>lqcalqYFWInWb&2wClW$v%tJ2xaSKO|C+G%?1@w&IK9^X8dAFpWe zq>B5(fu5Q3PRNMAab`$AedvwZH73`ULSA!^uxNQEoX$|(b9~lEu3NSuj|Cm}Jlyrs zbdRfM=k=-g3<9zqGqV?07DsB^9uQb7bv5wdG{YMQqU<-HxU@O3ss7o~WfM0#3S?M# z+{iBe`q4Ti?Ih1e?+1Z)+h2I*e@m#D5V-f)=8Ci%*U#L2$X=GwcwXJUD*gL$^KFZk zK8oJ3Fh)dpmhAB~Wxw*M^`49!P0<DsH-4?_k~~`VENA+I*&?}2zMTm-HY`+?+<b@0 zl7(Zogm_~6#_8KuXp2dol2|b9Eb|TNw8Zo@mhHQv_w8!l@>2J-V@w8*$>)TU%D3;+ zH=V6!X}`HHXI9qfZ@J(8RjcpLdcAv}_3iZe_ixu)D~pNyN8eBQzgW-iq#xsyJ%{h5 z*?#L{;HZ|`aXEYOjCpVJm)Y?-Ja#!%{MPnu_{Ovy<^nOZZ-|?n-gn}hkH10LhRO}= z&87Ue`IZLSZ!y%VIro>{{_eiLhj*6M{7$|lES@d<Zb|bcraPbbzLZUCnsRTF;3oNN z4vRiNXOc>~FK2z=A>+FAui7m_&K3qndy^z0S)MZ=G>m_JY=OiA;c0ui=Tyx+GI!&Y zg{&Xg<8SZdJOB24x|k~e;XjRbr-hleZ`#TJXAQHo<Hxpu)v6iXSJ|Eg$ZSfoy;A0P z_THq;KLzv3|5SgDiL7hfq{FuU^(L-6E5)An@J!NoRNwR=beF}<)Tn@`{SPD$wC<X? z!Z$N=>%72uK@5Dp#T&&hceAnBZ2kN)W&8H>Z!eeIZ&;k&pQAIMdBK9sO>cObI_|o4 zo;|we&&gd9ODC?JxG2Xfidn?-T4lffnNu6qTkRLSnbEcI8edTRjzWowrcm*N(WN0p zAC6o(>SQ)?|MF?|7O$78iZ-ae`EV&$Qlda0rKZ>Tp2`}IYTgM`IN1z>Zhz+A!0Y9+ z^V{U<-ASrG9;X(pRkvCx@=lstF~a^i|BpX{4mZA>mbdvIzxUsltN&lxZvYpJJ0^iw z)gCDQ`tSUoMRPB$XKNLA3w6q2Dw90pswT5_<LRYowZgr8Y<15bu5d6o%Y5tHPN{#F zHpM;tCd;G!y6*3V2?v68%T8Vqy3O@a*689Y+nn1?yG{i9Enz?IrkYs75x_QyePXic zyt^_JU+Q~Q&HG@z(24)yN}=1DBF}uSbuw<B650Oy*WP1);}~m<f4|FlprbN(es0DT z-@x74;<HZ*i%xcw&t}}3&T_x{-#pveZ%5XxpI30^ufVI^)|x+VR_hlm+w_`I_Jn}t z?Ft6z>Ur%QiZZz_Uzm;SR@pE0w=lV|h}G%&<h9R}mVXxPueZ|k;IZ^*&M8UcGQUvW zz<qY5eEzzp8Qc78Kli=;U%;OF<v07vcSbCH*0#}0RUBXHymHOqT60(O>#Y5!bX1R> zZ+>v7%v$pXZ`|s4eVo7Q{l!08@|^ZkU(IrNtJa4JYE7>iJs;ltQo1&=N79jjBYYL# zq=i3K7d&U-{t!^MtlOn>{^xnVk{{dqoGq-i)*57{d8Gai+MO3NO`j*v;y6!_^A}AQ z{$?lH1Cc_L58sqx+t5*Zq%$+4xJ%P%*PC;l<!u#dyZ?w*|N7#8^Zfsr>EFcvujP5m zQ@`f_yZxTu>i_$T|9*0{{`R%w-)~*2={AxsU*Pq^)n%{ViX-JkMeT9krwtbtym(Q2 z*wE!{<F2|}MwgfwmR$a;ec{pM8OAJi8U;sl@@KGb6!&SGqMBu$ym#`$N$K}r@EEx* z-+MoXQRK_DdB>-(pZU@3n$hCl>^twrtX`F@K6R$5-_h$Cy=C1~zX{kbGQNIlm(7Nm zSM&`_Pp&w%sY+aU%hXRf+l*}t!mkTxpIs;a;GqBSU%MtKo&7H!(DLBzl1j0+(KAzS z<y>uD&8m3Z_h#W_+b^Lzs`(tQh2FY;*?LX>`|Ib5xYio-$HW-g-?}Kca#3%Y!*$X9 zvO6T~HWb!f`}Z$S`nLS-AbZ0Qee(oGU-rI<*&DBj{kb>y*X9G$L^#tUMgCk^XPA7R zM~jJ>W3uM;z?onDPO%v!%l|%kywblqfyt@pWp)3n_pAzXyZ27G$f|LQ)$sUoU5_;j zzE1mXo|{|!?EKq9e%$AC8`&$%w@9w={N}%lX~En#k_Q@gzHMCn*Zte_x>x6KhVQqz zUH>z_{=D7Z|3}WfJ-_Mi4%@@aS?rS>muF0T`FXje-|TM<4HLYyiZd!1>dyoz`)}f( zX~y`}ZQ-uGRm-nUo~3c`#EJB650yI(h0Q$^^}G1Z51F#HE7!jeDfs+!e$KNcb8Fug zzPq=x?WlI@`P<AprRtdHT)Zc`t<h06YnidDvw6zB^I|t^xBZv-ai_xc>PPW1_LV{l z-egQaaD$;QXy2v!lWU|m#J6v|H_N<W*<aT7g6-FJqb}Uuw{O?KwgZ<FE7Alj#KgC1 zGi?kG3u<~^<>o08t#$2_+tPBzzLg;k3snBQOO~>qx|O{1)PDJu*6*v|C!9LxcxqeR zvv#GuQ;RdT5{=6`9D`CsIP?=8ywm~>cD`<x_@2=l)F-lL?&+DOISyBr&#$}2&}h!P zV$wfH{wdn$CyCtr{UD=l+DWws2Y0w1-L>*n*5S{q59za5#Ar^K9yBFPvoj^~^V{o= z*}C7dbgnx#{z<#oxyZO~SHTJ)y^FFP9^J8COg*!-Twm|Je%sY^$seDohnFOTe0?4< zE4Pkq|D~Hgb$+=Xt2Vg4>If3D>sNQ?DDjb)&SPJ4=+`Y@y=#AjHJoE#zpwe;KL4-$ z|7D;;aQ~C95lkN{{(8q>kN-Wt-g@peu|K=rHzt?eT_gSK3D=bjUiYOB1)7|5H_J$L zoRDn(n6Yr`_v=Sem-4-PWNff`f!w^QX9L%YCrNTu{!ACSxN^eR?+sF%(Q-*ka=U&# z?bF+|_N&v+eJ)(rP78hTU-dv)kLm9&h0mOhcH$1*J&EV_Lb#q?EpVI4sx8w!D{{dD z!QzWMd+%$C?03vnb>KSxAvNX9hsb-}Kb~<$eW`uB`u-Mm|Gb=g{$a{9g0)vK5Z$#n zcIl;VKTgjouEGPZvI{qQGr!!%<@GoGR{A~j=fA(*ox8X0=Q+FT+VuH<ek`rM_wV1c zw|n>Qw!QhWBLBJaZ^2*>k1OtHtFN4FRel(9eWUCuKh?YM?k3v2beQ_AVH4*)BX%9O z^>^35bYuva;W=fqb3kT_Lg=qY$q#0TRvh>&`|?ZrUp|o^k!g?CPTO;AYR*67(+&%y za=awoO7uhqd{m8ixmLj3k~Q>9bDX&Bd3V88GUu00IK1f2p~mTsOdfIxCA*4EmkRZo zz6v}qVS3`?{uq&j)U6y=u5UAH1#Yae3o2b$QsJTKTek4+CBdr^)%l+VI=#;%w4b=% zAoc8<=FerR#r9j&&E;>#|1wwKT_v|#JNod>H}Ze~Z`!-JxZuTPHijQH@`>UvRIZ;B zSe5zGPydv_pP%h3@<rDgZC<`BbFS5e3A2;8igi{lyTWYuZ80DFmHA(F6cjhr7Tpla zu8w41cPqo9j(dx;fRE+rgN<81uQH49j4Zsl;DynGUrCp&-C4W3U7xcCr^!`sII*zg zIsaOb%}W@boUwMT2#U5mGK=fN*D{Wns0MDX_3Qsy9-bF4XVW(x#qWQZ*?9l$Q+~ld z=kovE&*x8(yKybz5EIv*^?qBw-+J!Km(5Z4Ehqb0#e|j4%(Hg(X>D~1YB(TgQ0d<N zHnlkCe!z*|N8vU3+smI%+Zx?9=gr#pw^b$_VqSgl_KnKUh(!uYj{6vnt~x3b$ZE&j z;=n0(Y>Gp$)H=zI_Jqu30!q;=v%VHhl!-jgJX22d^_;8=M-L@5t602q-<+`C<A-nQ zRh`KZ3E3O230BxIKM}_qZdd>PRNd>}_M2{BUM*JekK<`n*!`^RcPG?@giq`1`zxk7 zGnlwbPBV%4VY~6Q(Dhli8Qocn(m(G!(XndNTF$L6m0fZsPF((g?d8kZ9cR8@H}0LB z^?UjAUw726Fnw5X{4c}t75?+LZ+(35<;1nA+~<Eq-Rs<2bnM3hontTm2~_TBeaj(T zd-7eL7}qDBl*c^+t5;^1x5TlS$~yG>>jX=_68*LN_l{o?m(Sn$wbSI*nXJz)*PJH3 znBP4|ZORE1#x+dKeLZ<I%{J_AY!rN;;COXc!iCt%utmx(ITdpv@9jO@su2C5F7Nk) zfB(+Cdw1^Jx3@Rr_U_z1{jJQty|%Y@Z<n5YQSXLD&Zhj?8(uGBIh=K|RONtC2H%r4 zTTLRxBj46FGI%Rrc%;-cub|@pUjCfz)olM09B)3-63~0&*wB$AU#f7SWdEtnOQs78 zeel_Mw})rlxt3SQIv7I2B>g9qb++bCZZK%P!TWk@XUio=t_>$1&FOI8B(Z*CN$uQv zjom?&s`D*(sm+LGVOi{>eC|(zw3OE-gT8yaZg_`ZtKRE9rR&4ZgXgw*Fo{f6-evvw z3g2h*x9k6%nZNPtzs|k;ejhC7+im}~{9WJwxBPEGI}KFV9T#di{yP3u)xV4SHFuak z$LF&D{LFRgh0}7e2k#pWl<wNu6d^0}Io7sf@xgf81Gk(McUdytTmSFOtaEqIPTlnR zciNXe-QSLk3v}6&@(P?5$M!_W=P%!Wn_rhBw<6nm!i9PH$<OYZvb<55_5X+u+opdO zXTmQP6o$(goaj)ztrj(#{ojl4zP~nZPn*3*?)=1Bb~&5kH%zT@@;8lGicWg0KPx2t z>3gJvM8&stch*<@U!l7$_{yoxd3p=eHtm#cw{7BI9w~S0ylrh&uKD?U>Zw+*j_qlE zw8E!w(dIMLEb4OZ8av27Ejj%2!NX(UN_ngVUu@yI`tsY<yW7vq``)r|_ulQMzYG^Y zi=5dYBvRr0;pDW&*&KY#FV9^}-?>Rt^q8~hgnx@)f8*=Z3)$&B!Ts%*6%Ox{(yw<& z$L#$7rOotvM*h<huappT*%#8U5`Q|lJT{!ZIOF^}<%fUImcRYGS9Nasw2!ZOROY;k zJTG$CSn)&Ok>w(i!Og;55gd_O<z;)Wm$>fF?Bi~Je8Pr(=^T*@ooj>?|4*FCa6<Xj zzVewX?#Z3L{k7AJFU?uVcc<5pb>DN<jhPQB-z!UTc-U9Y>0Xg2CK?`4cw)|qcR7tl z`^~=@sMSg_ia6|KD|ox^V<p3@b2+P1CgwVYdYmq(@LjXrHfyG@zHa4j>&>+vzG@{p zZoX}P_1&I-*KSuXwEM-oMQIOfLfxk+yQG#|U-&+G&X%q>JEl*cqal~36{_LBZL?Q+ zjX6J$pH#D{(VNcm{O#3l(T;r=ZRdFLi*2@dFFtndvhDRv>u>gY-JW-_L^`Z*YBJl@ z>i)fbx*nwoukSUv`50PoE__-Nxx42>fV`B0qs774JDz6hlG*N@BD<J=Td&>8D8(*t z=dhL4;$Eq_uVf`1<I*1M%$hojzwG>^-kpuhC+{y;{aPs@v4_og(G>Lv_Uz4>%P(JC zQC#4wF243=-bEvx9+k<9V`d88^Gh;RNuBfimk)y#14F(@a;k#mO4F4RY<b#uG}pT> zl`j|D`dsc$1;Y!6l%44_h3CGlW}S5EPvV-rmyg))3fS?seDR~l8>~2{oII1Xa>fj^ z)E5V*1<x=4t$)+%&Q`-Y2Ui?Azt%YCb6M5tgc}~q%XbG~xVU)j?Yq9w>!&^lP`Z2b zX7aWPdUCpn+D&%bY<xe99$>k}%c!ug?DJMug}!TRPQHAvd-zVy)af%DpI-a+q)q3$ z_8jlWUsR2+ivOOk)U|W{<EwVY3p+O0vY3>GSs!jzN;b8s<H&iu)7N3q0=>H@$~<%= zixmoYRmCUl6E+dMk!Qdq!_t1uky$qFI_t*-Pg%EuZE_yPdDTz9yeqa=Hm=^lAisC6 z28+n?y(Z0fj_rRY86&<WB6;RL+v@@iOG6Lb?#t$L+QG9%B82tF(o0iL9gxlr;}N)A zyhGp~gV-UC`79Eln?p@AUhoMm-uq(iJm*<9TH#XB4l!zJyUe#QpS{`ALj8x&vWa(D z7ug4}+^XVqUew1Jy}>H_k;?=HZ3%r5NuQ*~(8l$3dOv5Se`Y^_$~xoIvAp+p`gYr0 z%4LpQf9p!f?p^zi-CxgVo%v*jS5Vp?!}kSO&NZBkzI1hM@cq4iWutzps<LmW^LZ}* z{N>;8^KZ1v*Rd2l`hEX@>F+<E{l6NwJ}-Q~B5BKY11{!!#;1&Cd|bcbX7g>+_a_=m zOWoCuZ#a41Amzx#iAfXeH*ejXUCn**kVdnz!qVF7*Q!@uJbPIDplx&MZZ^~XbA5jN zJbKgXhB=?bofGW0FG{b;S)Og$Ah7c5;v;G0jMCNyFJIrx{UQ5p_V3<z-y2w~>^vPp zb@Vu=H$8o}Am#2sKC>yTkDoVmO?S?H8~6Y0`n{VU-_@Sq{+!q4|JCQ`_kRwL-}~!) z-C@wS`0thA<4f;<|9bKG{vRKA&HevwhqPT>-u+J-T7)&WT>rgpyUwi(Hf>u^-P90r zlA7^X%hEf?=ceS9Ria$~RMRHMn#vx0x<br1)X6ok=Wooa60=V#7xy$C%0Jr7{{Hlv z_FG!7)H9;;*36!4U|LckJLTeCl@m***}lEM)8%cY(|5*i&rLfd7M<IiQ?Tam@n^Py z)%<Tx1*tF{W8m;x%d+H#aa5Aq3&*oP6Pjgp_~lE&ettg3A})2~!##HSTjqBErp2D0 z{FYCLSz)rGMvX}K!e(vv>yuVYcU*d3VnW{SW}VDD$=1z#vv2<OxBq#k?$1f@>bpkV z<+_{ezvQv}JjmF}9MRLJ$Modu9`(gPrfdA{WHdQu`QrOKg@cXrd$;bjwvdyXVVx@W z-RWB3!L@;RPHoP&J0_R>`MKXQsV}G2uwJrYPiuMjLD0c#VU*7D**8Pd7F=*T^*p8W z_yO&WYg0JP6M28cwjH#3tkA@`fBE-sY^AmzzyHY=KFDXa_{^;dX}dDjL?oiNRCY-k z-8(Mw=Vl<^^sI^2i(9T-St9jGq$IcM;-y9l!xygC=I?htuD!{exlyS6#NTp<WIq<w zP4fa7;|;Wn#6(37G}s+}|M>N#qcR)s$C!LxcDKo?X#M+poB8K$Ia6Q#B>Z{K|DXTY z-r%pV$zT3UQ-VQm!;X$=-HnDG25&a<GEOm?RC=kVi<5EUPL_i{uSKHI_i;0<-k2_Q zy?v?ow$<C8C)GYPIRD3IO0C4^Z6~zezEJp8yXoXbIn(!nyS>aBS%WqFxipw+jMr`T zTUc9hL~Qo$&whMe+rApTSG!R4{q6a6yx0C2+<0hkJMq4Q|CV1OOKWGXY;QVKC-`G& zSf#<L^eeA}cl0ePiL>8xzjpy&wXfl=jSFiZcziqiVoMU6#cMCd^(OYIzc22*`+Y~` z2IfW8oY$v!);e;nU443g#kG00_wOxi%-(%7`o>oK-OTrj=ggHfa@c#PRKDtG^9{og zSNVf~9_)K?kAH!ZYqsc>&%0vzWqGrT66QRYRLae9+GH58`pVY?0f&#e+y_nW@8?_b z&W&Z6bD;YSm$}VF`@|izj&&5?Z}V8e%o!*5$oBQk*4Ap}kk5(lk2D<k^>Oo=t?_Li z4@QYDPTmphvvKn}k9P^7+)f44EEpb0eiUn%a)^&Zva$B}R_&YjdgpguYnYHN;Jk9u z(#av`LKpKms`_zk5z4+Y`PJdVYb#TZOxftqVKrCvs8xDN=)s$31GIXt=VWpx-n^-y zGL!Y*2cL#GjxStsC)iRqFfDX`<gkQU@!SJO<tNkL#`gLw%rZZfWGuk0v8voTq0Lw4 znbflf3l41NSYy0)ci?mP&};Qh24-6r>dwV){o9>y{GiR?<su>Z%T}N6@4d8ZZmN1@ z^!w6(KXk;`<YdqJb$oM)2;Zkxu46qd620qllisjr_%?`FOCM-EXWqT@#;@}~p7Uy6 z>oI0tEbJIG^O{^0qjz-qcV3a2&)?SWt@(NC-8;WU3$|~+@mAs4EJiDN&K1i8?K%(q zUQ&Ee{)Xv{50aa5^Sp2GYj^XyE$l!4-i^=S=b7IwzWV5nxo(E4@??ftR&t3O_4#v_ zUfXl(Ma8`jdspA;oE70?^ZdxVFNW^R{>;;n;l7sm=Z#;})};G4TQ|10H*uskypU9y zY7u>C`j^^uPlR@BoiJM{V|Z@r22I9oztdwL<}8bv<n?q;D&w)6jb;lryk<Y&lO?<0 z$gLDkZ=oNqiJt4G?*4sVYTxg5KQGy5Jxi&$SNB_dJ%9bTe7XMpVkgdk7U9iX=gxNE z@z>w`-ksaNf7Y{)k9|u6IorP6nfWeH<n*O8N=A7PCIwsE=v91E<s_@Q@|p6Bmj&m- z(z<!=PrZ?uniLt{@8c<$%VTJzIlt%f9{cQ#8)dn=yFX4{{LXj-52I<C%g&33)}#lN z+JDJgx8$?x*6MDBqvhSxxvGv?1WR!L^ZvcP`^k?)E?tIHw%sS9j8Zvkb>^@Jit;>{ zD{$<Q?ek#_<=Mqtym5Wa)9i2m!uPGbmY`uZ!FW@E!-Z}7X*Np2nL<aIRSN=tHh5~B zev`}n<9+`7H*ak-SC^Pba46rNwxVWk*w+K0*_))c?9*wqT%X=MEpcwzb_v%vOe!C8 zE-uk|&3WEv>-_k=b8nu>s<Zko*{)#6xG%3&sU}Q%L+H&TEj~M6)G-)~ZB%V!E7WP) z`{ur|!okXqdJKH4I21mdZe-V(p}l~=Q8S=uHG|Srg&+6LQ<eY5Us}Y#>@0bS>!O(@ zZzyBs7Fj92gxUnVJDD0w?Kiu=%~Ab3P3efvU4;)xXUtkwEVR8at7F!4sZ^$knG+{B z-%l@aHQeJUzkAZffF;W(K3SqVHKbx1x1rAK)5;gpR-S6|na}PcFhBddh2H!d{C1V+ z|LOm~F8*!H&(rz0|Lv>2X%zf@f8VdCO<&7Z0v^r$)2rlF@NJcZv1hE_fj0*f449wn z-`<<DXhy~C)&IJ=c;uVU?y4%`a!~kQ+wo>|{mE!!v-ZC=%Xj(z*UeAe*?A~Zbcgef z{+l7y3g6tX1y0HIFmGJZ^z7l82JZcb<UZ`{;|u@2?GD@PS6{#C9BB8mezimR^`@2l zMjL(~)jYC_?b5=-8;|}g`gVZhmrd2>?WX%pen<SdtL3fbwf92L&G+*hlReL*B^K&t zsdN18G3%4QfBvSkY02d(+YO06Mp<Xw&-`yFnsw>r!)b96Mz!yB*5C9yuA|_oDt1EU zS5(-xD<TGN+5rKRk8YaatNLMq<*P$&(p$b2l@zX&3TKGB!np7rPow0S!l%~i;u>>V zwz#U@VgB~G^QPk(?T!0#-pqgLvrgbd%FPogZwwBuGh>h|xNT<kTIs=o`&T7R*K_XK z`L?K*fkA4!#>5W{Gj1{H^WM!?2>Y?8_KbITSmud<T})OQN6oLC>?ppzx!2-y$-ISg z8gsQIPk5X@{Fdj2ulu{tUbR!st@wOjmnGTr^}Wx3!$p~|a-{HGIQih?foW4T&fbc9 zxPN82z)eNtSqb@N8%mEhE>C=;(;M_%N;&vjr772>d(rw|n;+a~T%bBr<X@ikyrqm4 z%gncYz45_%p1NF!vvArZ-*a4>YCU631O7^X+id?;^f&wduSfR%f4Mp>Pov=Y`A#AE zxxSIAW)=F=`gh1b?&%Pfewwpzy7MzHp`&)0J)Cw2_*Px%d$ab(zUHm3c;m~h+)ebv zdfewmTXYATvx<DZ&1~|?lKHjD{K9(w2n&XS^4If!-#Yek?OmJ7^Xul{xp~lWOTwZn z8y3o}PMB?>+>tC-Y_j3Epowqfc6(EWcg_51zd!t4{_W@L=-(In>t@Tc_=wd1Q99b2 zSpG|L%F%5BHw8p{p7zW1{*pF&{qn}PGgGf+s>rf@iN17xUCiRWJ}Ue46b|03$&>yd zIr-0N)(88Um!3E<zyA~Ks%t`D^(Pc)T;#f@^VN^3Zlh^7`@PzjXKXFoYTsKa)}1$< z{By(9HKt3_y*9m<SbV9LUHo^<b#sC9U%90u1<cpU>z{tRe%t;(p`dB%`^Trg`B=55 zPX7AW&-;Iv&no`3-|@oR6>6_$vHjYALgd|3mvy>{r3>C4(aSjd;hv$i^~55MEt`23 zBrZSmKu}U@y=kl~r`gssh3*LgNAG$v?$*{gbG=OBS?k_|H?u2SvrIOpM4nqJ+4|xf zS3>y3u&Zu7lK%>1%s5}V_NRQE?aJn^QS^oR{UU=Uf}al<u>KT1!^ZYYdd?D=E!$62 zh<{Z&w)d9dWtj{8`~HYl|NFyQmDhj$x=p~X&6cf`l*)tld^>+eYiU8c&b{ETSv7q8 z+q(BweZKYX{kz-q*V^wdeN~>ypu@g@m7f&X5$VlGJS9U|PU~H0wL8H*Q~Jl;q$P9B zo>$&*4nBB$`OY7antXhBXLEi$7xw$0ySx5`0=vDz&vqGE@%>trV9w`zdGDVOwYO^I z(jsc&%$Jv5U)8YOU`Dw*v+kv|b=%F3-Tt_C={iw`ueB`hR!@5SJnzLW-WrxSbJ5#> z_aY7z9;v-C>EMUG4?oO_s4JWL!@O(q6x)Nlu3CMlT)mv#@hNkcT~j=pY3zEAhC|oZ znjW1vWusnDwHfEn#E>m@mkSszeHynInWsc*B%Cdp^U&Qi{G#T$xLJlFB?lACroB4H zd2^1mp-0Ud{yF~XSx@+Lzx1rynejaQVaYYN7i&+azqOlha{Rfjm0d;K`R3#|-WCTV zul&nW3_G!r|3O;dwBsfUs~Nb0t^KAhOE{%}PU3(TBd10=M=#q3{dTz&<H_4I=C5Pw zt%>(rar@g><8%AwO&1flyW%8Zk;%o86{fIgy<~KlTXfL=Z@<rc%T5iMwwZPP)X3D7 z*>lqB{yH7ZYU52ltKqmWsEa{vWrp(Q2p-vGHqM=vI;XY;mp7Sy=ef1ev+01_TEWXp ze1s3qQ<>;twU8xr=lv_Y1i4$kwZA^0V^lRy@!Pk&d68-TpUuyNF~wv%OvtY7IGB_b z&+)h8W!sx5_ORRYmdJi8=Mm#IPThT%BWw!0QO4d@cWH*I4Uf4_2X6>fY1*E>&DebR zi?>nX=ifM6##hPQcx=tGVC(vg8jl}Xx~*FO|1x8vt@q9eg;O_KX6EWtYo)Ap{mFLC zlW&3_kAe^L)q9#wyM)bN-rv!<$;UPFfY)y$yQ31D?B<o;IsA|FcBhi{O{1pU(!tfz z+y1eL-rD@@?ejTpG1vET%{26%V}0W@ck;>2E5#2AKekcqu>6?QX#3G$@G}GBW6|Rx z+5fw~oo@F3vMImV-nNw?_LI&(n+>uL%AW1}bgNAN`6`}uKi^+JCAIl9-*uVmlDj$9 za&36mqcHb?lJJfs#x(b9;epB%e%UhiGkATLdz52ozwz(Y{aNw<U-)k~wYv5C{J;BU zadjEXzqUurud5T>@}d1ggaSwUggNc%ECmVmH*PlDXN%uIkdZ!_;m)dS8#69<y)%gX zUUTaF1hGk1E5wcXPk43z><Zea-0V7Iu6LyTR_QbjiAhfWZS3bo%aoWpf^Rf^diCqn zJe!+0OMkz&n8WJPwst3bLQ{(ue~4}Hx+3dN?d9hxK26du3#s^eX=dyGs|^jC?<wD0 zYVC1#cN}NJ#qGQMgLSqn(fcK@vygE?@Dk;v=Sy}+rZDgSVeO^&B(gzWa)!Wj;SWt4 z&&b5j$(?F8=YWN-Wn}%#=j#JENX_rA<THDgGhM9t+_tK`-G9U1OxVY2|8mElZF9HD z-+FaME}#A7(#?zoO&gVdYah55x#jXZ+j-e`+v9#RxV@IV8+Ys1AO3gw|KtBhgA2mP zkQteI>sK$g|Ly(O;pc0Pvbzha9C~;8r$yK(Ed8Y=o5fMH^Vi!=OnZ+irYyO_|H9Mu z%e4@flE1+o{%>uUO?|meOZA0W{q?%#mSUN)uE}W(EfGlz5@x$5EZk;1oguO<wxptb zU-p-oZgb>s9$uThOL2lg?`%oU#h=@pLuaP{c$ahe*aAyK?Z<w{Z_J<2x2)y5jm8{l zuK!op*X6|jzGZ%^apUuak5ol|o4L(fX{6;7E_-0*cE!hz{J)HtwCm1qUaK$7_5bJc z{5Qwv*XDgcereN&CB?y-wO1RhCzmP&YRr3hX2xbeOUcYFt)=C5^H;yfPI3xZb9{~V zgJ!9n&v)}ry~R<WHsz;}WAxO`yk>0Gdlyd)?U~rno+Ykjpzhqqc<bxR`t{p+KHoa{ zd9Ulv=FWY6Qa0@>2Ft5c=B>!ve@Z<t_D{ryX^w^Gb;KQayXk8;?ti28I_P5m8Qpow z$_uU@OZ&8`?OU;j2XoBCS2ZbN2QCFzHq0zdwEur!B~jre-;7QEqQ%Fqx#}bv?q0Ej z{cGsKI^ITQOFOR>ACyJ5Jc;akd7$d@DZ@64Nt;Ffn1AP0u{6GYXLHjFPye^AtBkr$ zR>|Fe{ipWs);IUV?6b4aM$6S+syP#WBEn+EgZD0t=R|or7#8RpnA@1$-pDdnakb(+ z_vdm6qOXkBZ~4a7{Vgcu^YjT1%Pvk$Sl&@A&n!G+y2_s?PdP3>U<x-kv!1%Qaawrz z=C}ODP2Xf!{N`j}IBhKUy21CxA_gTDBlm{4J=bQv`EcRhk2Bk5tWIA$d-CqJEC;-< zaEXWi+{c!B-|_6*5|z!2A`5>`nm9>VMxpsOgTAs?QpOJ7wi%(mVkuWdJWXw0d2v}p zMV(4qdurL!Rkan2EWS*W&!lv{k~`pLaa1CGetmkC?Cn46FYrf(<!6h>s!g$czaX>v zSmkksRJ{~M776yb?FnnIh|Q5Xv)cSy``owX&9dM0G@h?z>HWPcXvKyHb2-$`{a${- z<HP&r+Mq?>W<*xsIDNLda{iCJsa`*?JU7@VnRVa6wCVDx+U_%UUMdl%T!U&#!gm@J zU3j$ay5jNQf(?t4*MD2GmG#We6X#{4FYMX)>~7{~&IgsQ+uQfdKN+-IWL~SDm!#;O z&(Ale+EiO<2;Y18WMZf3VztKi<y%FLRK!oLOpH{R6Pa>5^54;Qj5%A~x0a*?J3cMH z{ddaD`ha=gFMK#~ODB+N`=xmyQ!94(GaPt!Eh0XC4f_X1hVYj{E&IGge;-<8;$1Cy z-hV^af$ofI4MRcRJM#+UJwNm@&F$V>`}x$lr{%NG?#|uzTWlAf-&+4f=O?idr^*_Y zP0w*0lP_8LQ=RFUh;Hady~Nk-O`J@5kxeDpDKS1Z`__EsJouj_fIXeVCHU{!=6QD6 zdJ#ek9`W=Xo{;`i;gwb6GTzSG7mON4$#0i3ZZCJQ{`za_-s<fK-dT8ay>(TLSy|h? zb(M~ttfFBY$AzzNs+F2gNBYPAdayXnzWgkE=Hp$gfA^md>;J^=G{fX|tk&CR!4;|M zeDB<Y9ycG5N#K7gal=>EWW_A?X-~fBSq1J&|HAz;I5#T%=_6r@^MO;Ok5pc*^(b4q z&{)FCVVSAZvSst#FBjxq-#vfJ{QuYMZv8uS-fpXZ-S1=f=EgauH@)Sa>lu3V(k02H zmFE{bI$ZhN?=^S2hd|Gpc~|A0r!W7hz5e>s-~U@d^U&`ff=|!9f4TJUpXdAT@?5x| zBw)Nj>(*RWcOPTXGUrs;Ek`CYvhqxqoLZ`VF*kg>`|8O@zGe3rZLa0#%?XmWWbqd8 zKAn;39Hp{(`Q+^!Q8)PI8kMYARiuJ%JnlWW<I3#6Uz%5VuNBMv<ni?C!AVm>{nmV5 z9LK=ByMS}$-&a2x_J$>_FKS$~#`^Z9&Q<fmEFZo7*|uQ!Mb8_)lWV_f-`}vl{;~R7 zuBOgVg$gxhg{migZ#ll5xo7r5U~%#MMawqZPE0=@x83J|`uu&{<oDO)ZqLt;KCsat za@N{wA|eZ=8#w>W(D}7$xy1SfmFg?g#95c0IOD!sL9S-y_h|82|44%?7gM!vJI&m~ zmV52j47ay-FaFuyKFH(F#lYmqnR)qdZS}Xpq-}*#4;j=~%3fb_x^3HmGeL|$7^+zv zn6kN8Z!|e^1nxJ|YzQl8UnwJSqhcqE>uCv=!g=Kt>)+JQ5p3D2^JJo5UeHRWXqk^Y z1x++Q-#6y|Tl=R{oGrbGNAjxY_XCY)UuXDpsa<Mbu&T{CRpdm<wpT~2Y6D+-hT5NA z>BWD|^7j(wx7MF;GFV()94o?o#gIYkiTKxCwlL$@i@5j4ZMLq~uG=qRJbA%iB?)Um z8=X@zZf+G3p7DJSRud}^&wEz%!YgRQdIxU>?@ON#M)DT$oqBO)g~!FK2UISpx4yq4 zv*o$JG{c2Orz>w=n04}WhsDRX%J}f`U1jPwpT}B>WKLMTz9D78*$Xw%TY_|$M7wXD z?6hq884?}B<jEqlw`ECJ)ww5cWv3_dZs;m0Wtum2TWa~zx@UqZ^GxFB<<6N>8}ml! zNQa=HUqy$v9Y-$5IgSKw)t@d5-9Dl>&oypi{rb+1jrlpt%?*qG#^|SN*SKvx=Td9o zo$}$`s{Q`25)K?_c5t{cFKTgEMYC?{+Qv$`i=3(Z=O?~@u;h2#Oc(z1EDc^;qF07C zElKh!O$Z8}#k8ll{He^UKCcCyQ++=z@Y8iqysxxkalnjz{+ZdGs;P_z5^aS8w$+`} zNPam#p2J{bl22)E1J7n|!E<MQES6mO_WV~{_2JveVVl-Wn!$VLp74FqhFeSZ<QX<Z zeOBAb;Ja`}-Ybv9<#qO(y>Etyo@o4}*pN5*K+~xM@{w-^4?Hpm@GxQgb30-6>gn%# z;<Owdy0HBdx@kPMBK6ur<K6O%@lSs<NSNJx_##G$&5i$Gx^4Cx^T_OZRYELl^q89b zHu~`{(K*^&kUr^-Wb6}W=1(=t_I|FESbpx3VWYspk3t92Tjq%*@}xP5t~gSuTCm0N zLGNeb;w68Twy`mM2+W!2wYO92!2JEjoL{)grZ?sMKeeLjr*C!Dqe_lz3JqU2KU;l@ zZR_1@o4%Hpmw$V8RXT&?$7a8Eu9Ftmu6Q#c_Ka&#`phYZ_=R%g9S%M$*uZc9C+qg= z9Mv5g<w6{UXPWK3?9YC%QoqUnq*HavKgRF#ODB8?5-K^#*4i7FQXN{Akj~x4P`Gge zt4~nC<^~^zTj|q$ul}29b$Q~P2@f_gD4a8j&a`q)lFEB?^55)l#q}>|)_z$Z^83y8 z$$vjQ{XT1bS-Q`^4Jj;#PX74&GHH5lT6dtnWQn!Sdj_2i)gsoSJAHH9U+KRov;X`3 z-1GZCc)?A!r(Zc3Y~uF6&i;S#eBGRDU*?-c|B`tXRF~k8XuW!FsM7~7sX5kG%{-MC zUUJLsTX3w~mh&#dg464^*|L}#%51)}x!Uof`?rNUr^@ozTrEEOr?>0I5-+`sU{|g+ zk@>fS%(kTlF5@|7CS#uBHF;iS?(0Vm2QHs5aK1b9)p=8+qM5fgS8TKJ_$z5Vw_x6s ztdn6sOp=|y*#CL)`djb%zb&!$J0B(PGu+Jg{G_pOg1AVElECeG;;EVL7tVd`d3><1 z{QaBH*Yn@D+y7Xy@cVMJDXSE}`IsH))M8>NXJKD|{jT9}K}LxrrVIY;8&x{0mdiFL zcKof-c9K7&bo|Ea&&Ed|EZb>0|FOoY#gf&}#aJ0uGX=kH6lV}VbFkuP&DX&9aYq;I zzp~&|zRiW|+THt^UFUvk%zDXotBS+Em&I7bfPDk=(ae;%`!7GlSv+t471<uwP+sdW zdwFcPr|Of|vYgyEd*55Ne7JQ(;rDqTnXHt({5#n9y=v!S^z8V@^XKo(2TZNa><sP~ zgbcnNZc{QcQefL!!X@XnH=Cufn@Qht-l-LRml<y5-ZOq29ri7~{qyo_sTL;g>-B0J zZ92yt0+<?iu3oX)%)V2oZ_^wp$8BAHzPH#Hbk7SAI`nq-gqO=F+>Djp-}+W@x$CJP zZx$WsZkiUb$Nl+)nX0xL>WZv0)+iauFs$K}`DiYs@{V;b!_7XCo0V5Dt@=9aYfj&* zh|i`nnfbX-y-PDCUwr<VaeP`u?n#5)_IGc+tjm;q!{eySQfNA-jxkIiFG*nXrNf^@ zg7yaoJlo3t!Faj~e{Qg-!{vF`zfWOadbK*o`l(se&7}+Gid&vIrl99?L58C=Ix1CJ z`*dVXfw8NZ`GIXpXD6)rt5q;5(rep+<PV~;@?QL9RnxdW$8qQ=Rhw)7@ThsmATxP} zt;Dni&fcLihh3I_-epwLbk|elh)VQJ*}DBI;ji-+2F`x|`}X3w=W?Ix-K)BC{Z=qr zYwrAecUQl=^?!lON+*wPKW=^aB+T=B-ubX39u}_0Yi>qgw+_%Y)X#K&aPy$`T+h&h z>2Vv>ogPe`T<w1#Pxp@gy@^bL=RCiMevoolt@-%1S+ekoX!hQt(az_q-miSQMuz`i z?2BuWKHHXm$Q9J+_?*37t7Y4Aw$59M9V<`BR0Z%oJ6E%TK_U44ak<yi8`H#YOxz{r z(^yn@<*B-1utENfY&$>y4QhLyoH`g>wpvl(ovQAZ;)}ZNUO%pA?RYe^>+@Hi0EW`{ zzofnem)I&QoY+>WuDn81wBm*f(`J_V?|0U}&92Ma#d}iYutehWiCg{7o!Z&%#}hqO zsySKWRk@UOQ%>BW!`~)#&f>L5PC0*oEkNnWHM`?B^(qQkSC|w|JS@9u%`nH3pXtSp zt12GZk-t+eR<4L_(v4CznC^M6bKZAFwwHBH(+z!C8FFp!dKxP<`8?#=v|Pr26aU}h zJ*$u1F8}`R=V{|VTp2&k=sY_8>Qtb90sC`?*v3UI{XATC`CI?KW1GwT=bpkJg9cY? ze}=eD1y0?}8w;{xi=CGi?}?xDHOYR-L8fU9_LIf_%9t{|VZ0&twvG3VjGDoOIUj9f zj?DSw63U(wGXH(G+`sN``C--03_R=;Tg}eyu0MS`h40(9%jw^qRWJVgzy5FV?s)sm z{7=`m%{d~sQ2tcqhuU)1!0c%P6Ti;9HShkddxZjXWed(F=uP~}R{d}8>(}%D+&=y| zf6pe+n(Ek?eue{&zwX|*?9b%?rPf>R%~*E{7(~Bj?R3?ie23X%-MUkUmrZbTYnJ$u z%)E*->&JwrJb6W3s+U9#CahhwM%?lvPnU+z<GRaE4GJ$F2+Rvgh+oxX{qpd=Pns=D zBbdZq>@;BuxOTu<=V7@SSAXc%ZCzDQ97~_a{hw8#5R#G+{x61u@d<~7QgPfZ#viG_ zuWh&6rtUxgbf9pn+2lv_rWiWR{CjMc1OKX`6pmw(A_vUN)qlTvYW@33s`IP+dtd%A zX1^}tz`E(}{&I)dx~YfR8nwSDgomAJ4lKX*sl$(_Kx@zU&n2$uB9AP%=UDUG9setO zdt&dBWb3c8k-RMG>F2DEd90oM=K@P^*&#*$_F2UOek^h_k5`;OxbW;Y=K?eKtLwUE z_58N@TfgqZ>b-CI4z^b0%l;Ben#eTA$@yUTYWA=5_Rd(r8aS=mQupjl+dEq%!{%<h zZu!2PXJ6>|cIF$WeZ|W2@+aO+`WBQeSh|Qu?t<Hy#z|Kh7f9-E-=O;7z>j~5CmMP9 znev)E&sbbaWc|S=cKp)yX_^i)v63=fkALgGU~4&i;_D7U7o)TTK@BBI2X`cQ_|&Ev ztauU6cPb&)<0O+!gbS-JbA#jQ<7<kfww#NKnB5~5!J-tAzSdz?MR-TE@9*bJc$kH= z;^Wz`<OhFNXnLWw`@joJ&DYLSo0@zo&YXI;l0~WYvcwyP+x8LRXG`<5e_h!W*C)Bo z?__)a8^_ihXO^R;FP2R;sY+H5Z>$UOjNC4pz5d$)1I-&RlH<&79%+1>zNmE3(yV~B z?A^Db(iq%#2c&z7yYa4O*Wa*^vCnY#37*}N0ZWumBp=IDPivGgs#q_3f9a|ol?Kbp z#(XTbyXU@i>P|6hoHgglO2?%BnE8&j{XS1K_U>kBo3i%gB#n($0$;3kUr6K&?AcXS zZ#y@_>fy|&^z<!T-#M+hl40@nGwV51nWwFvJNxfX;Y?wh(4)rcB-dbl`T)}e8!6*E zDI$)Gm-)B6H(oWnJeQe!LC`lZN3qST-5Nxa<8*JS3kd|?n54`s^HgO?)8;GBTmG^# z><q9z{6189Hs@@+4F3Cx_loP>J~#L*zRi8<{`1%TvwiP7UzAs1Ixy=d%SWvPepbFh z&+Rs{%5I*2KI48(?BkpQhOd(K>^ka(n``vgUw?jmrHbWp-lM%HYz`me=6?)hoXcXy zeKTWgx%o;aXWyAGUNElz>7gZmsN((y<D+uU+B?q(wawYI=_H@dJeFTR7d|q)cv;7~ z;{WWL=D=V(j+O_JO@CP!avsSn2~;gMcHHMRjp<w9w6jj9uPR-1xvp?y*V#kwzn<Ch zCMJ=6(v{4I>g#T=>vi66=KjgkZ5*FCOJ3IrOnq~D=c1DJWq%jAKA38?{>RMVKCv7Y zE}^_#{I{9pq>X<4I(zcozMc7pt#0Jm+ivhxToumnBq&-V_K#Ylair(8*|W7@$o!0a zrJx;UTAi*S(A~tlvDCp%Z=LV9xguSD&m1QCi@z;g-4J=>#hSlvT(+TqP996D3}bF{ zd*$SiB9Yy_AYxMc=}axANiUA8P8I#Y9wMgp&EMcpjPs&v+rPcKdvo9am*3xP*}Fyc zZqvh^bMJE)thg(d;I(Pq(eriZe{KI<QM~)f^A-QE?>4&;S$*-uB;T(;x2@%6`LXi< zibjV1xr}n_>mNdzb*o?hdKv#q`s{|kP1;V64W=@NSl!plt@l|`mg*4WTKd*+cf5Ay z7l9>#*Y0G_J+Xqj)pR4ru?s93pPn9GX=3MGnJ{m?n^u^(RB%e5ppH=L^m*13U#`&K zvLIFJUti9m)m!+DKA4uW-?tZGmu8vS_U_69uO*vOpHA2Ndh|`VtQ6CAbMtQ>x7QuI zSN*<Krs&$4<qW2a^wzda`m(?(t}9WryyMpM>e&DM_LaHs-|e{;*7e3)hU06{^w-np zB<|Pei%-xE{C(n<X_x+~&M(g;XWl&d?!x-c^9BlgFUWLS%YKpGw8i<fL6vz^qTIy4 zYPr=$OO+kwrUV!*nyS2b^_Ba^e@;h8t9?7%%5~xaqt~B;Jz=c(&Kz2L=D}U&f+<Vq z+?%;4?%(!Rbr<=s2ln5K-X8mjS)i$e>zB|>L8VWXd<*6Kvgggn{mxMRx%{R`PwuO3 zIZ4gbTg4X1`@+=njkjr57+PAsPVJkLxc-&noz3eWYHZraXdmx-_4$tvk{ow<F5FoV z_TZz?0oS)XB(yKKGV$53I5vxgeVdl+m7vsVTC5e<z4?8LAI<mPTGst0d7+1T=+xCR zVUOn>`Iofe<nd)4&kTHjFiTZOpTE6!2H)WY4l|Z&M@-hsdAfG@t?GB{=iUCA=y2Mr zKHZ>q(*fncS2H<H*v>_iu`HRyq&CS<;>U)!voo$UpAOiw?2hqFMYgWa*Sbn4We!%T zTHQJG;`itGJGVc`X>*vvFkd5i<C^=LwX#kt^uOtSn`Cs6pNW}w1=Gxr2icO!CMTtH zy^8sN=)Q2acGimYw-bA_#h&%?l?q98?&M8ae)+Qc%{_q$QyUmBt@)C3@LS++{VS{8 zI4`;W>0gw7=G{cQY9$VK=kqyVmOkIb{?B~F`gJyb6Eq{Q6dpEnb>~g3^WCM*a^;6) zibb_$f5uzQQ~FcR=KZhz_D1tdgi(~%JkxpI_cTwdNjICm<g-cPyZEnfOZBBUD-K>c zxk%f4IrF1(z8xLD*G|W5devX;dF9m3Xibxss`BexoAMZ%Gd@{7FWb_8WA^n;&Ti2m z7XLS#^<x(Q5w$JamjAlU;W}2oOMD$Unz<~JCJd@IaRGc=jz@i&RusoHA-&5u%^*PS zRm6{<Q?G<BX8mn(`tN6kxVxMTVQN<o>hv6+8@Z+MOOQ&?1)YXzB9Gcb7cD%dv;V!j z(X=p|aNTeLgI3#lCq5Kho2JgWKvHpm#mYI|@1JEKKJAw$nGo8<8MyDbLJ3pG!2{NR z=6Etbyw<$=Mm6W7p2-d7Yk%{l71dv12ul^*(WZ36^rw<ecf*1O|F>;_@p;;cgy%b7 z<Yg$IuwNz1xs78Dv%&&ybD<3$>^Ju{Uwd>SJ>zrpW`}P_CB3%4&wKlI^=-B}^P<A) z+l!woUS5~Yqv>J#@`}J^wH+_3-`uQ@-}e1p{r!9Usxn`D9;g-+UdevlE>Xyz&-(Jr z&}Dz4cWw{)HNE6n$!*c5xtSMEY|xqf;LVAxYu_p6D4#N(^R04=x3t^FGq0A)Jbd_f zr~j&JY&Ut{spmZX{O#^;HiP@OZcP%2V`7kZcp6!=EW^@Daih~(rj5^c39R!nWnChW z6V=<a?&ad8Oa5;AbL{>`Q1eS1()`ljv(Em{x&8NbuIXFX${gh1v_Ue%NZ8usNamCc zTr7vKabLYs5u-GteDaQ|bsP^J-YMlT+Lc%6;L0FZ8ZmPLQ(fK^<$x>m*59oc)n>eT zSfHUh;pm0cb9XTvb9RzwOHY~T%<@U!aGlPn#VZ;GMHCJ%HDZfVye1|YKUH<YBgyxH z7k|Be9shq??bp@!w-ipxnBVW7s&=9EU&Oj)4}?~f7>HKPxpRN(<HvWStAD<ldiVbQ z=1Dy{r>ES|U6|56E93IPW3u~#4?Jp$e4D-7Y*Mlt!%NfcCt5_VX~o^(I>sz?c<aLO zO)Ib6)cmFyvgG2b{3RY+cgv(JKCu0Fu0*f!gy4r4wNC|YdaZVg`uv))rs!CS#^H&Z zmF~M<NzG(=5XpY^Qgzsgxh&z*eU*;Bua%C+N1l)}UGV3xmF$5}3Ji;$E?Xe=U3Sm> zUCq+zYhoE3_N}|i9>KiAV)DtL(D)fwJQ=f3y4Gm1h+Lle_uNApvk98{Mc3L_G%jft zG)ZD<epPus!OTc;(FgC2zH?!}|J7VI(%vk4D@5+T=fV9!3(l`x<;hgN@<SYp(<B*_ zv^yS|DPrxClYZE2&R~w59P%W&tC_3UvM;KHQ+eS!drqlpj+Bgg4h^rjH-n4S+Mh&; zm!}9fuHCR;`=52Jso}p5uH$?AKAbsgKl_#)t5#fG?!V;T>%(h48m@D<*vup<^u2rv z$B$WBV%1ijp|i60X4|@Sdv^9;+$nRIL*T@hQa1T73fE)p?OoKo*B-x=7C67hXW6f1 zo3GhO@TMvHoa}j%wU@g+(7jR8DtLl}YCTty*6jXGd}*tfZTl8;<wEm^vv1d@uPYWb zo&ELinUZxp&jb$pbF7Kv))O?&aSDGE$HEYIaOQKlxtv>;o@kiapcvE@`E3!y{qLN& zGClX0@|LZ1P7@RO%zt;{w1*|JEc_1^NPb#S?0BPfNkZq}kd5Le!#H0{HcWr!l(cyz z^U~_%XGY1jKd1bhSFVsyUz(A9J~ut+!@*0_ESQu6%vf9a<|X-<-<%^AQt);o-z1rz ze0i%G63%Q;UTMctT~iQq_uoAwWzXDJ+h>-mb8n@_{(K+!SShEARhsvJ<yP%uKRdJE zU0$}e_|LPK!MER+zx6pO<<8l}*3soq7!Ve8VDaUbtSZm`Y>_n-K6j}w&wpdp%A2cB zsjww1b!l%plll4UyV7rbT@|%^n=fP>uH18@{l;pBE6(mti|P~2kMbP0p3SuVjFGO< z@^hP9ucRHAvsk3@Gsg!B?<K8||JmjXzMB7NZk*8f%#yVnVLkI7YA8#t+z>CiAbyJt z*Rk#g(@x3#l{B8|9&p~j@LqP$+l9UtbC1Y1tZT^$5Y6Z)+Ut_bw&B#CwR!U{h`ubU zTY0+w94B`IU)lsS0j28B9OLx=jV2RUEPQz2(1LSnmrGKwhll6Joxh^=$v>~5S(qt) zZ&i2EoWJvU%nfF5&^wv1a?{}m?OXOXhk4Jx$$tKq->&7{fxmxur=1sHSHB_5X^BaV z%VR0?sR>Lo_BVa&o3njin)P9}-(|;tGft5|vCQSSpP|;0xxokXc0J#*NOYY<sOGiA zmv%`R7h}F<PqOXkoxW4wI8y0HF3UgnU)=A^86GT~@3bJzz5dA8&9m%xEmZxeG{4kn zlMzSIf<J<bjxnE~#AN+(^W`6BufP5k-M^@z|N8$I;D*@$#n(Ug*FSummijM@TjKlU zybV7ew8t?s-D2#RmXRpYzB-LRoaH7*T<_M9g%W3VJUSM&GA`ZB&3Mq^>|Q-Vt;hfP zrS8m|)7>K?Qxo)e#f>vMIxVe#${h}tIaeHDe0b__!M#<lj2)L6T{*I|{n3{TIdhk< zu>Tl2^KDU+-gVcHT<=a7w^gx=vfpk=;MiJNbo}1`126yG&*J;RJJ<a&Bk!wS?34YL z-hQhXGea>#T=)BnBX?!rzjfdL`IKFKW&f|2vBg)ywrnkGe|3fF-qou0MOQ?nWHjyf zRK5RpNN0Mtf#Q;aUB4nr*SmF<1_ivF&c1#rYv}DV|84(2tvg%pylDDlS2m-JrUiek zUC%~O^W@>;^9-ytVS3CVC#UedV3Ig1r<FtaOEZ=SlV415WMMaXnh-OG)k)*>oBiA8 zNiztxZ!|i<!QsZ5!Oxd=!P_<ayTd8gKA)RW<qT@6ANSba{yA4SmoGq!p(|td;$%l& zJ=f-y@6IGNtLhZwsi-_zl$Tn|-gYR=<9FKZo!gf2`M>PxIV0BWE1+t`EUWQl`S*t9 z7d%-~BRN6>T4x4E8om$T&3L}DygY1M*Xw(%s<zeh7PD_XvP6eLlJ#S9^|FnM9Ld}% z+doIY&h4$@FH5uGkPuDIO<~I2Xgy=$^obss{9E5tevga3$$pdVZR!`D@7sF5=f>{e zbhMTIu5IqYgOgvcW=regNH}h|ah}Bb?OW$ZzrFJ8;lIAD&xcEL50_q8%DwXJE3=6) z9X>bXUq8xwsI!W9`mIMBeUAUyvC(W+>5+?hy}u_v;QfA~s_@^EPj~+wTy<s%lVn}m zmL*0E83v^@zb{p5-E^b#Zh+3F!%00Mo!&+BFQf@JeC+w^YpiK)5I$#N@U+`zb@$FT z&0N9yckN0~2SII4U8Ml42cMU-9eeV#O;z%(-P1p(oc_FWik5eH{O!|%H&Tic#an-M z|4P!lxA{mLqg2!X&dACuXTmu5NVUF<5T312XKJ$BqT<-LzkkXe$sMX{x}oOiv}S4V zx%#!@52lsw;rZgY_?+WTeu3Pu1c9dbIH!%<lQ$Pii(LC2Vb7fNl_%%YR;6#cyWcvc zJ#T#~&Z2d5DcfVK4#TI7)trB)H*jx>V@q>BsKFqt^g7-7?A!zf@7MP-`qoRbRO~*u zQ9=22WEp#dV$@E~5YAg$Zo4j*x85rIx~tK^;M=z2V&N(Jy2A7CZ=S90e_N_Darx!9 zsuy1@^-f^86QRG_S-|M=RJIp&XE+`_Tg{(aSC(2FE&Q3?ysY@?-t+7X+4t%uN|~t} zP5N`@(4?>Dvx;}^-K@dSa^iw%+&di>(Yb=GYz`?)E`BS#Z@2v?cYC&t{B)`BiV^w| z#mqBomShH3H{McPo%3MfeD8BSH|*>0Eql+*AaieF^MQ~}34)I#r6cU`*Ibxaz_vTl zcE8vUgYKWklicLC9oeE6Am=G<<YON6RX()LNiejj;F9=<&CLHqy%{(Yv`;2XoT{e4 zI5GAARHut>GLDf;B`;VdoKEGo@Hr7Mtso~ouxi<T#zlX*XRpg=*(C61CO<P%jlO5e z0n<`}89WOwue^17y6*11GSV4kci(K?<;Y-jOX5p-aG1@x+k#b=_xLXT-<_TO`^mG& z-#u6Rj+^t}h)-Jn<xIEN3a7)Ksi7hoQ}kM*oF;D-y5)81MZf>8k~<5Y<Y#0r5Xq|e zVtj{XSH*Q+dHL<lUv(Zdwb^R?VsY=jx^Cm)&u3U{CjC@q<1s0`!g}~^#YFv{?;(-R zde={BEc8waObc7{`s9|4-#6FHnb%x9a~aovp3d2O{=WJ8)%@S$#~-Wvs~GyP+kdZO zVUSy2|L*IbpXKxPQ-A(G`>du#|A|W1GbXMZ+g8~2SMvm`O_j5~u6iX%!lYqk=%J6M zRYzwss?6Eq==E``W8&GxJ#s4-aEf^TKk9jIYEMeIi8<Q_E0f#+{=BW5lQjIw4qbS+ zH<XKKVX4@aMQblBT0eGJW#RcZck?ZVr9UJutett$<JHsbB>4l+zcX)^e41bTXY#ju zzvW*zgk9@bFW@g=*LYx(zWPH!!LQxdx5@RV|Gvm?zwx|Xb+?#p0#}8C$;FBB;TLx* zS1LpqYb<@2^YAd!T{ElhAC`ePHf_>bc<%lCH#6(z6!IILy{z(lQi9|1D83}^lB4%R zOKyrDU>5z^>=#+e(YI#)^usRgVZ|C!g_mj%>U^|6y);yYNiJYx`LTBlfkK}YHuw14 zy~6MHZykGR^=_8>)2VxZ_*6JNd^64U981mGmDavXIMXr|N|tjum+)(um|iO5y5UoL z)q`F8wAPh-S?6!<Fn(mkJ#S^xW5Ks4n);-AI;DOuRJeRx=gAQVchi0m!Ntjs*1rC; z|M=wdjhEBbf9$DDOS?7q+NOKO{XgD6VgGybqffZp%Ehmbl-+qUhwZ_FH%mJwHZ1ko zWl&;tDphwA@2m#7H%?t!7TVRU6Th`+J>z?8-aooVW}L4p<ZkL7F?L%1P3QP;<B*m9 zx<8`)c>X9Sb}ij^wqVDBLpP@wO09_LHDq4xkd!o)Pqpd45Z7<6HFx`#vP+3*vN+7V z$&|d3`_NA19SSoNW}i1ce*C@k-s9P!Ws|Oihq<n}8_w(I8t4!exS9Je-<j`S2Ntf{ zH%;qV75kw|v9(5%U!AIcwrW$#$=qXCm}Iu!<Q6%wRV-C-M&J~$T^n<wn`<_1znFh( zrjv8P?58d2;fwEI{%3yR!1Fstzx{gZ!+7SY-&=Ec)uUZa!Cy<ie{I#d_2t06l#Z#J z_B76X_$pUrW36%5+AmMG#PUf!iTqZz`QAdu2fW`uq%AxhB&y<+vMx?z_mWH1)81V$ zn&oaifA71UH*dMFddk#rvEl6$))MJ&7LF>)&Aid}Mps)GBu$ZSxx004&a0nFi@a4% z+z_^HYCoc&dp~pk@9J&q{r%4@dBi8n%U<Jd#K*BlU0L8{Y4H9Fl`5~M3UAueE>`g~ z=HA}jlPhj>FetNr&InM**70PV&D^s{eM92sYF?JC?EBk4K2Wv!E#|g0Gxi+sis;D8 z=e3qh{JuKBca0kVx&B2p?kn5+-_Lzxc3jc%<3F#*J14*WR(iQ<i}1mFQt6$7EJX!f zKfb9MhFpBRTke$UWZsJx58M>Y)t{awzvoMCYrU|;!bwcqmg`R_ODfp<J?5Rx42vsa zkw>OzS>?~L@%SruY?C7UOjWrkuA^Lq_Y^!IG~C+TYGt?k;f!b7B3|jf%J?5#yI|v! zgm2>KK5YK#=OM<^HPMqlz2>Ux@0g|87uH;?P>RsCXlBdbxwCvu?dH!`nY`z>Oq{`g zcyIq%z5P|S>=VlBZIf%K99rVH{Bn5HgOvC}e&Y{v3}5W3Ki-*V_xr-VeSg>Z#=rU6 zTCH}?z^;7n9Pzn-H8!}cQ8QR`V9ALlw;y-j?Z3$S;k@0ftKALi&jM9>B0gKyXZNa1 zoMC?B+O5rQZ}~PoWXcfPyuKj+x`6l8*e82$<f@*o+Zf`1l1s(eLS0-SqKu#EaP_oJ z7Keq4#H9M4y_sV4_tDp{`~R8uACIrT!d$WE-^}aEpgZM@*C+n@^gmDL`~C;}9=(|I zTr+xk*z88T8?86IYGR#iO@DE?t7&w8JG(}-`CFDa<64KT%srJAbsNu#e3zP%SnN{A zbKIu%___M+F8NQjrdC<R9<%xxQtj<@>*AW<th%|?ALcwv`t-AS>bZj!-x#bk7l*sb z_eQ<tzyEtv?c>?^H~j5mvNied`bh7Lz{1p+<;}Zp$jzO9xp1p|&HMImH&0(b%X!st z(V9yZR-*YCeOE7STFT9wGL>^fn?qzowEkn2{Xu&Y_JxNov$_?v)A-H%WzDBb4lKGG zcqOK5n|Qm}v1M$ha_87T;AJVD@ags<vFMv+7Wv(F;aiffMn8JKl)vFX#)Z8HZk@1M z^04M@Z?0nR`4>0mow%^%Li7Y<y;E^PAC5TO6Y2Q*y}Ur_lFHJWwe7cV7a9hi-7X_( zB4TNi`kGJay3qXjg@#jiyc7%av{Eb%3%&iS{Ep&jOR4!MjsK>kd);@~B^skI*sz&z z;=+oQ4=+8kubMB<Zr?8(d(3Xrp?%^}ZsIcw&o5fF=kSq;g%2J|J~n>KS8!p^vf{n_ zH^;r^Ywz|mIbI?*H>@!_rQ9WZtzgMihAUpXp9|mY@MM~(wX@T-^Y0v2j!egYJ8%8{ zc<-FtoBR^Do#B(`J)UG**lu6B?Z!=uvz7X$uRMCc+&*zfWU83t>-(#ZXs#~mp7UBm zJ26)6=rI@V<I6MUSy)BQx*{#Y3!YVkTK%{Dw*Qr{??H!M7iw2_O=I+`YWsBQUiZ0$ zwgQK_+?-w{MWn0EbZFStv@Tuiq&4?a*Q9&5E^OSJs(aS(`Mf=M)V)-F7+q)ozT0?t zp{3S~M~B{j)u~$aj3tM~E?rq#gTemJ*AqX_O@5-o@@=Z@^}eI$S!c}9+a&%^=H5Yu zx5uL<l-NnV{4(`-sObUI18FatQl>Jybe|R3wldD}c9i6a!h2UP@qBhQ>up`<n`Ft# za^;pq&RM%T=k-h~u5bG9x_@<9v1V51O2#C|w{BtY4}3puwY)3GRms3bYFqt2hKp+$ z7H^l17F_ai?!1WiI|5hbEY0jqo#z;;G{tl4p{Y)dkqoY1a_Vm!dtdNb#_`$9inMEi z*}B^q<O?}&ovZXbDQfgS?$^UrZ)fZjYpG7Fut>4iQDn(Hvtak7-z!s31S&n%f9Lo+ zx{v$Z;tK~lzsGWLCB8aw%JX6;lk$d)rJJ6~f3w(}%wM8t@Iv=+-#a!Y?~A_fOsh;c z9SqDqyEXo*VCoFcX;qyfLNb}%g732J&%Wik_kPBeg0xc~`>MAr+n0avPS6H^S*5w^ zGM@z(EaQGxbXGc|e&W^i2`h^CtV%i5mUllgYjdQ2_T-;Dim^?eLaR5g+Ut5u<$JDy za0%OtdC|YDb^cp@h>>OKs-8ZLEyO>UXV0xuoBuFuyL_0Tbk~c<Up;fxtN(t}ZMb!_ zwPo)ee*4#-&s{6q(c1j+f@jBH@7u3qC)xdY;C$!x-MiUBzZd8DU#VJ?erEGA!--#o zEuKF8%e3a6r2h@C{iTm9V-<d__|(f+@M|yMHO9>aqNdz`e$A`)C_c7%Zmyy4EWQes zjZ&2cZm;iUDejxWc*^G(gMCY-zD`Kl*;_ll|4nz!DJ)SuxzpSvarJrKYv(@euKoS> z%L?`n6@NFcPwBt@`0M!{>*oKtQ$CyZpJ={w^7H643ERofOkCYlY_oSx*mqtfWl{3O zv<tkCw|!$^_>#sl`>e_K!<YZ(7n^KL)wo`kpVqc&jzwzc6~6uzuQdKP2(G>Pp)s!f z`Kq-~lO}l1?h|U^J^yA=a%OZ$nAXvpmCeByy4O}u*!x9CQ)H{FwR2kEmxK+{f9~F~ zywR~>b6K8CtxW{a%+TEUpD&bmSN>X>_Iu`8*GdP$ibwAsoBrlL$k(8fcj9*O?$!Ta z_S<itzCAtp^2gp6C1JU5F7@qteUh)emiwL9Zfn^}|Nph(vA1T3mM^cdz5B_auzaCq zd9-!N9Y!7AEt;!mNb0Rv*0ZggQDgi26-Kj_y!$3Lp14x+)}(BCB!5}m=cvvowzwq^ z`CPtE{3s{kpq!90d+)7ArmK?f|L?4+Jn-jZ^6K<mVdqpee=ctAn7g_m`P_uBsmJuL zOIz#+&7B+ZeMi@~^=H(M&5uk-Qk?yWmu=hQtHEsX^A_fv<Nb5w$kxp}A5}z&h<H87 zOFpf4MQZn~uTIC8Wt|BwSK*kj)5vP-an`($RO6zc2@9R06NG=y*et^mc|a&BCCRbj zp2q~Xn~yg<d26R1cPF7Ie&3$w^I9zCrB9wWYvpBzZyQ(q7QcAn<c)6{<<F;9v2vB! zRQOwW`<QMz#Ap%9mca0$$EVpMZo{&e%G&Nr46M#O_FqoDUE_Z}xAvXx5ti-0&1Lql z^66$-pmf?r-8*-(Sz6AWlczolPs!QAs}x-<_%*ELf=+`G3&YlWt{2xmbJuEI2}}Na z%J0jq7a~*q*>)c>3%gc%js50=C6zu*S`&|YFWN0HxkDtaH$z_8d4+>u;}gj(C0QXG z-pzRvo3?N+pPzxV<lU0M^?kca!o}~uXTNQ_`yu1Kld@IphW>gkrQ1qAPWj1m$=CDM z>T|ntUo&#PKW&vgi({$@kH5l`j;+RTa;kqb2hNx~af!;5*P$o)(+c8p?(Aj1{r;}o zx$^Y}^VL4?5?M7jKqJ1lDcmmZl4OS;_qOB@k0T%2WYo|6rZQ7JB-xxTi?1b=N&L(_ zZVgw<=+hbg`m=ar4gcN#<fT+6;#TT#^gs8vb0rHlJpI{Mda<>-rtVc!Yxs+0597;s zpN@Ly=s4|JR7l|so;U9qB2*W>x>>k<<zkV%_MI(BmN!K0&a<y^*Ju2|@Y*1F$+|5Y zZSKn7{#kY8_ms=a-@Z0>HNAd)Q*YANEwA@}pQqUT|I^dC^V%a*uRkhyaP_<0x0r{& zq}aI_p1qkLEwF~M!g<48yYojQ-rv44bvwsCNefc}_PaK5kM6d=)MWfu>U#RZrj5)D zcJkE$s#$?m!L}RjGrD{Uve+W=wfK-Vx5~}KXEvK@N*<Ur!FJ;eA+C4Yl2Iq$KW%Ew zvVF0%M6ck@-j^~Lyv#MUo824}&zfDk;GiH|#y<by`RabtS+WiVY)8M!&DGlW*xLJ| zqQbexHNG*WZXw%_ckeG&{4{3^!|?#AqSY5l5;nvy{(Rt=t;xi|mvb|&xq9-wXka<< zI#=0WY?ilX&YYKPyoIEDiVk_%H*S6Q-OPOc`&~a7k0)=veLK24#c#@;4>{pV=?nfd z^~&qt&rbgJ<>k41_5USjcu00ieP_P&%-W)aSE1os-|y?!yUW9iKAes8{{LeCfA@q( zA%-s>b@BNLCTtc_zGcqlAUDgNY1i#N>g<XaB^ETE&SP)B7q6_Z^?&kC74F0<O2^b) zo%pTpFV<#^WV+}yYboD5_f2co8%t)t_2^uGRLhoSQ(2hm#)^L}Z9-A2t0V=^%&O61 z?3FbrlV8TxJmElC@!bD&x99)=SDynaKmB9Cw_42KHP8NkYya)W&)T}hALit)(vsn~ zf09skx3IK%vz|DIrt7!JDMkOaqjs7Wzdg8-`<=xmo4|;!ookJ=w=*hvY}~dz@38Mr z`Q@j1c~l%!*Mt<S9W{@<pyPWmGNs`mOU~)mZK}_IbMvilIq%@fTHv?1f8P0jxv7d( z=kJKzjBs6D$HBAYRNYVS_-*TJ|ElMhzt6mV^--_xW}oj@Z4J#z_U+Mo^VvWC7XQBg zop<l9j<Yg)9;?zHxo@Rq!McWhSCo^SgVip)zInlId2mzns%N&ZJa5X}+M&E!ap{*U z&s5&??{IIc`Zw{x@fA6Hugb~r%{;MF{#o2>|L60+Ufz2=Ke4v{idNavPl_wri(Z6I zm)2oTVQ<%2kor1ROq2DoN^!00Z~M!&xuF3?Y7YcTZyuidtlcqOXsg7kpA)z0GU^2$ zt=^G!ZkMsqEMu!TFBh<z&Uflud@6d=g}O@>6TLtDa(pTAB`p8qV@oDGOBEe?0aFtP zA@0B57cpdClbTjlw81REO>k@f^r{-J<(v;PzT3-4ypem~%=g;-wqS(g-NcUO*7V?? zJ)T~-^ejS_?C3fF^xrw>;%T-M&fmGtdXue5;G=19{tw4Uqxxk^zTK<VDBU-lSk-l4 z_RV1S`<uK}_o!{*mb>P9Uh!3SRY3jw#|8!y3UwL3?C$gN)|3r7$dS$!uuxa|%DUs- z@|@4tMCoUGo>_EhR|NkVravq8K2xyea1!04z1i(*W!mZ!FCz56uTadHI;Es5Cv4vp zoo21oXM$2svR{9HWNYBmi!vI|j&D8wMmehK=GK32Kkl2(pfW?WWZj3KpS~r`>->^n z&>tl&&0O|CBCAkT)hbe9b<}D_>8)40&lW!1nwbB19@jO2G@jj^x}xX4-rThzyL$be z*@o9RLZ)l%u2A@+`k}>P@wvr9v)Ea`vlv7t$E&_RRJZfQGZxm_r6<I`{<68Ca7X-> z&fz~-f;y%~CH@Rm5?<Nm`sBRHfpe?x&SlrSVE^Dw`u6Rw#NX}Ry?P77q#L@<n*-yN zwz<|CpPSUobh(i+b*h`=^1rLLEZmgS#KU##=812=Y};pcnawWu{;-$tqwRd}d`1b` zNWK?m8h&p{w~C2fyzGC)r}MiQ6?)fc^UYh#-N7PryQcE@r55AmZ;R72cL+pQZ!1lF z|GjkOqOHLXdTP(ye$M;0<|fOV%H&Y?U@k}P7t9NU9eUiKM)vQ&|7u5>b@2hI$NyI4 zyyrN}!~d&qld8@BteIP{v+XON<D1kP`go`Ln{^i3S4RmcH~T%<|K9#cj`%Y1)<=_= zUT{0-H55EM^EtutW8I>;>RUfQ@$`sQY!dy#9VAq&u`=6t%k|9(Id6Z>^zr336s(=@ z+)&6K9U{ZBI#5V$nS*O$KU4O+#2o90FEcl{G8A&Hs@_mL<*Quup`(%=ekbFbZcJa~ zqf|2|XL_DL(`K^(k2fXv-kg2Q#>-!BU6pHhXX4u1=X*@|ZhkSZiEGNU`aKmNWnRC2 z7Z+QXa(#C}lG=_t%;}6rWsX<)vz?4!E?_mP<9}QI_R`jd)R@URMOSTdQjS;rY*=5J z`j}Z|2ZO+}2Qf=0n#DXb%8j~hqrM?7yF{>~xWj4M6@7tVRlx=B5BTe+B)Ak@Yw5ns z-tafAQmeN6rTDt_`#*tOg~5>SZ1D9h|5wJ#wte4c`y=snY3tN0);GlMWo&OZTq|z9 z>H2?{^6gM3jm)5JZnanTviaDaY`=S^`R?De{JX6Gt~y!m;e5M=<IrX!hb1o_6|;z4 zSRr=t!)<%xmy<=LMIN8>O}MELk+Ev+DaB*L51b|m>aE$xrKON{-8%KOeR8|=+%3hd zF+r=pIe(mO|M4>K-8%WwBI!-6rxvwNUe@ikc9HP*`f9QNzwiHEqWG%3NXt*G^zU9B zCdaoN>X~!cGz8W!=T&7`6WwyW^HY=6%Ch`}3ljD``+NDB$gbvFGTYb~)-1gD?ofes zP@?SzwpJmoK&jiOeto~_y6;Zp;mB!I&uUFP(yaW*PwwBt*9T>VQ$9ZV<56h$mFH(x z<1yuqZ@V&69^VY=tP<q^_u&5OO_SR`w#*3XdebWKeu++O`J%05pA_0X?DN(rE<Jy! zu*l8(Q%~P&>-A@>9QIZvpEf+#{NjvQ-}Yxaw7(c%a1WFJ+tPbp#B|cc+9gMJeSK4z zR3X%8xXwq6`}(=I9<6U-Yp?yz3b8!@s^0h4gOqmL=&7>rSI==zv%5L5nJI38me$sT zVNG0LT$iWMTyuSk@DA@&KD-gZ#zwmsx_kJ-IpW{l`nS(c=FJ781nVEMezW_&2N<+( z)tzXX^3zCCC+_pv>FK)4Ro%sPRSEaJLyG2~%`+}yNLcl~=hvTt2QdsAZ*Ebn7Wf<& zecj(+zlgc=L9@<ZzFWWeo-4ZezPR?Pz`2mx^eqn`b7aa~P1}@~cG^?8{P>#_H@Ul( zODJ57>rZf~eQ<z(*Y}pM=bqoOkPo;YUd}Kz^l8aivrcF37niut<rZ<}6*EUSY}oR3 zXI|WHpM^(uWtw(gRnV=yRx|x8<Aq7TtfNy-Z)9ENI&)h0ir(GRe#Udon)<YH^KMp& z&j;kxx}tV=BuJT0YnkJ(bN50;c>3Ba<u!KKRaaEMEx+|l>%+>`d%u@;a{gadF}>l& zi7ctF5;mW2WOo`j3QzHO2#mYb6}k7~)u)WxPx8E2F!@2k>CoBY;;eV?Wy#$(mYw%7 z{q(b(^}^>Z8yfEH)>Eo@nzOE!TT-?~GUEH`H5nzzg5E327bfluDqY(d5On<Wd_jSV z=@Vaiv)D2`moZ<Hm?HdnNv%UK&lyvz{Xg#5<<7jzobmEIZ-W}^?*o_g*B-vZz+Kig zGlH8>pn1cg4YMb7ma84v)^=gtZ*J~7c2&k)K2DnzlbcsheJ;H(TIoPs!FJ>0{<}<c zOrwrUc}j?FkuI4SIUz~rk8RYIX~%z^>U^_7rO}LSoB1cfDV3p~;@{L}<o~<)zM{_Z zF}Gy><XW54?*w9!p7(8DW19K=1OKgkr$Zm*DSk>55n^5Yk6UN%8lSKCd=hQ9cN~cL z5u4@Ru}Nw3i<C)KI|bKnGFGnXe|XWhxo5}RgErTUZ=@VFNib6U+Gq5&$iL=a-}4I3 zYuRu98s9Qt*us?Ae89VPF3;N@i^JlKr=BK#UwYwvU0b<9)$ea>ch*~;zp^0VrHtgV zEgs#+Z2z!kiP=>CTB91_wn1Q<@1p9!tc3{{=UAF1efq2N;Z#wp*TdKuQBAY;q|O#+ zUa;P5s(0S~-CwDFO%tbHjC79dRQ%a|kZD2Pgjj~SQl<w^+_o*Z4nEP+<qE!ieTmR| z5na2-UwwK!bsJO|U6hQ}td;i)ir+c=x^DH)+pm9a|Gx~h6Ri2QAVbBTeFe6EAKd@9 zw5+4{d%+LQ>VFsaU);1v(!|02d1p@ll62?V3U+mto9fHi`IbmuU(u|`vunFA-{#*_ zPBZP2-z40(W4*i7dL=9M;K^ok>vGGtzAjtmB%}Lvjodj8Mpg!q3q=MeJufOYtUn)e zL_Q>K!b^?E5o}L)Z>p0qEJ@kYJD+*Efkw*eruB~B6+YGdeR9n1-;d>QpPigMZKAmD z>A#*V?Lr&84z*@a6E@z$Y;ybkpBGd2))n)!^O^*iKe^n<=quhgnZYk@S$Y=x-z!aB z0*p%@`(HGaQCTj0kKHu4v{m`Zs=abKyV9Ef%Na4&?O+c0w(G9bLY3tr9sAB4&Q7`M z&V6i~ng2cgo6&C!R~vdrCp<kLW;OZVI_=JL(aeekX@?vfExx?wD?7S?LEic0>tzc+ z$g$+9%O=d0NxXbeJhCqN!bA)41qaUMEM!x2ZeT64o3QYE^pY<M*+EmjE-4PaF1#uA z_Qz>gyjJuESMFE1UG_k+|4iVOc5{QY>oWW98e1HFGr{0xWw+eczgxJ!N^JiBM#0f= z{i+2U+ZZI~<-TdG=XHINcqJ-oX7B2q>+{#>q^wf<ymQNg-whl0+uyr*@l45yze)wh z9bB=33KP|KN9MPS_)Xb(Oww_aO!kGmz<Y=9e_yl7x-dN4KT51Hr}0^zPU9=n1<$8x zW@YE43e5Z^BNXy@*TR2{5)M1wyDgX8`dLk&{b22+sQuS}@t-K*kLsS2&Eb42ve^E` z>+eNAnrturn?K`!^XfzTo10(fXI=gy_IlTj6E{xqq*<gdv%46h-h9n>>w*WnGgRhn z&CpZIX4~kv|GeCkFDVlrCV!h(di~@L{yA$ps~j)C_>q2Tp7YdQZrsk@K9km`rv4Cq z+qz!3d{z6$nQuS4fBW(wUGPrM*)spPcWs)>?Y3`N!?->*<*eP&2=j*Sxc_r(8w%Mj zs9jjc&0O|A`2EZ5qU+!7qKzvyRJZT@biiO+#`82Dt)$4WCt78_ZKCad{+g>j_20$m zwkwMdG&~TVl2~%yB71+1>;}hW@uv6IdCcF)=FYKi)6|q@f6W;?Z=|bRT#u2S_&44q z!s0NSX!?rEZ+9X+J-z-WT~^RoyG8T$?(&?y+gMLLU9(o;UC24H>NrN0Hws)2BX}>* z%WpTE-hB4O@;J}M`rXHRnCfKq%{{RBrUqZ7(Y4R~Ycwo&nfYzLUd}r6%9~%Dd>g_x z&DYwcm%?$=QGD@Q*LZXD>p4Hm?mHZQl<+>P^J|Lc%f;0mNgwPjyidJ8XdHE9;hHsf z^KFegJ|5ta4Z1bQ!onbhOMO>gbMs@H^*jw~$94uRW?>BAoz{PC*2I$s6J~5vIIC>5 zabMotSjW3FvtqlKu%3Q5yFy&}y~4xlrpNm;_}m)fTz%9wO^NZW{rqV?Q$+JETY--@ zlds8sEV>kNt99lfR@;Yjms&0QZl&#DHm}z%?Qk%|cZ=x^$0jIFQDQiHYfkAhZ;dO= z7it=%PqfH{RB7%%aa22YjgW3*sFPrh+Kp?!xzFxxUeU^^-!QR6vbab5tLX-|W7*Q* z!+EciruE<cdgZNFB-707ldhtSyLA7Eu%BHhEZm`Z{_UllXK&x`POBHb<)6l|?U$k9 zpA0RfNCn$D-_HC#99;eD%dK~L_Z?WKy;nTYKBsQoWR-tn5(?4>yUsn}I^Y}2BXs)O z1cq0gU1vRVR?kWnJ>wXib$Dl^3imFrkiE-qKaXtO_tEm0^sjS#&l3J#eipIUz`66N z`r5_q&!0w`#jj~msn!)!otewNdrJP2I=MsZ3k?I+wCv^`%ikM!{eE2z?~jVF;G*-_ z*7|?k^5)y0*neB_@#kdw-1?{K_qN~v(ff?;?tis8Y$+cLEq?lkThw!exm~)c8N#$~ z&PM(<nmY`3&zUDYw^n>&VEwy)wW%{~h3({CxGbJ_z4!I5h?JN_7WId$g&JBFoFC_` zTH_zE`IE^cv#g-bb!!|?zw0qoKRH)E#kE`G#mOpx1HU~gj(JN6ZC)f__hDh}XKDMZ zd|%4e%<(rkw65vw8U@XbA#20T@)cO$ZuY-_tKa@_Veyn%${X(+8|Yn9ZxG+Ec{x^6 zrCq?M@YjDn$LmZ|_mV<PuAiThAwBJv#S!^!uO266oJ#riFv{llrga<*)=c-ZpM`}c zzj5Kdf5q*$6Yr6Q>aP@CH<W4JlqiTl$2&JWxNTPB@8;h>&Wm?SItl(c<#a>OLEzuH zdEYq?%3nQDEp}XX?~{fT2A_*JACO9oa<buIIKSe-1|yHhmm*)z_;o9!+Bxe(Ky#z% z<b~I~kK8w&r#J1G%h4Xgcab|?bh)mWsjstV-x;9ZXV!cw+{N1C#{}UQyJWruN^x{w zTbrb==VRHm>b_iBui(^0{MAjq%d0OYD^H%|>Mq~hwmzrwyw^%O*+cFn?*s(Yo2(07 z*zCwZZ?UcP=aZA7NA~Y=mH+0?Z8Yud?r@!N@80Sf{pTxrxbJ2NQ$gz9vy-OGn%T9` z`0R?Tx7BkU<1FIdC{6f&{f0K*uYktgb_v&93aX|&j;QA3%3f}3U6(3v^Z)a==l`aD zf6G3<?$*4I!7S4QqXfM!oH=D69lqbduhU`qdh-|4d$?FUqW7mPiummR;ZTMD{r3hj z2O}g+*x#i0?f2G|FVkv}N)=qWXWzzD1(^dH$qLS=SZ}p$lUujkKKK4l^SVp>{?81~ zufO4QUb6P)d0mHyu+qH3^ea<enXg-%xTDdiQfP6Dk4$GCTgElVhOO*H3!gvmGkLuv z{A=Cvx4dlKUxRdl3v3?tZ(pu+!`!%3b%`od<7%0;=Xy+jc|8ne=bh2od*J*I_sfh7 zfzC^BX>Ty!#%!NprOVyy7kuHr{f6)QzS~o;Pn9sceye)^_3t~(jT>1eonaATIiVDy zC+@mZXUdyNH%o5Fn%ymAQMwc8|BJok{KK$F+tBql)`-20e~@I6GhHTe`jQDsUP&uE zoYI(1xa@nk_x|HKo4?0-XZIOCvy%VHKjWwDr$^8J$~}Lx_gmCw!)G&+n|e1te7|$= z3#H1%RX5M4G;x~v*oEa@xs%_p)1B$^rEbnwR{u^*>KX{=&TsgYclY1VU%zH-4*o2; z{PD!3bu)hn-&^$PdFE}QH*d?1$bC>@7p-~ORbYE%+O)&dEWO{j8uuITV!u}A);>`< zO-)6I`^A-Ot^B838L!rTe|D75<X^kH(R_uK7x$U}y7e<-zwAujyx(SL@8t{MzkKl8 z(S<!xp)b{A@0LbqRh?}yXAM3k{Ox*~X8=b|;hV(_b=r%rhVRxm>^{l-Q>4hd{jdK1 z4Ar%N_4&D948ty_KN3s+Z&>lEUtX!yn)USBOWPK-GEaGZ{9SlKSvhC)Ubc*s!h2Vw z%w$B2U&vhfnRIxH7oUJ%P3GkfdjHJ6-fF(M;>g!U(#G~1xu>V}z2*3qH>+XsH>)k# zKW{Bo_2yYO&!z3et7l9~X^bZxPA*hniD6GjXIT;%doMwE*|(YJ7zz@@N?x&ete?2( z!);TCPa7l;vpTeR-WPl`LDpjas@lI-pa1yxuuEA|^M?3?mMHZJAJ%Q^Kj$^)&D-*O z2cO@)Z-2<W@KX25e|~@MendD)Ykcc)C{xyMisDO~BPEb+@l9oRmFu4NIX9c0Zj?M2 z8)wXrXy4y4S)NnN>V@$JUVbYVF)I<}WX3o5r?zVSEU?+GQ5LaDLn(60b*6?sPv$MD zvIdhQ3f8i7PkeRjd)nWd6<;UUZ<DG2c!%r5pF^)D87k_&Uf=TbLHx6tzn6Ni?y|Yz zKHtBr>T{v7eZ1-B(nB$CwH&uEIKKE(gk;N=<tF~Udk&v(kv;tV+PeeA*LdzZIxhOo zDYY^q;AHN(>I}Afg6Rv^n69#z8oJ$(W$PmIIgJ&jiszC;++429z36Dpy3V^?Jz}j> znqR2giwNZh?)(+0lb-hJELP9m!f*d$;oi#(43~B&6{dwsuI0a&{oM1uht=Jcq0{TX zetiDz**iI5QH8$CP4-JX0>1dC7+#6YDGa>6oim5?f6V$vl?^Yh{x21@;@K}Eay~`e zQAYT$ZFf+lrq&C;gYL4HlMkC{TWBl3OXxZFr-W;F)9gk69sTWo|F>+OEplc{=+Y7& z7E!ma2U+j#)yP<XF<Ja-4x>$M?!LG>|0=#~E3aR5@)6k2HPN~`Yw!NKn?*GyZj0jB zXSiW<L;T9BYW_8zySev!86J)_2?*@5O$glJCgAYu`vS)NhhJ<9%G+4AzNj8!*R|C+ zQj^WU$Bk{$L~m72b;Xm1lfB(SU!Qq>p(pK?xXxc6*F%mMee3<wk1{L`_0ZrctGVLg zsL`~3jRY%)(DQ4o>-PMY^j_JpI=u9|Sjo*5r#@Kj76{sQ_$=?L#ml$#%gLWxA$Lx9 zW#sEi{hC6$cW(GyuMSB#`aEmZg$H#pIwG%&%(`aJ-Fm%eYTf*kcUIjyT&BQwWzw3W z8Xj$7Hn;zaEX0~URnO(l=X((>A7gc??(@s*-zxrWQT1LQv9U*!WyKzDj?1#kS9tBz zbK%#zxoo1#?R65WrV%|09x=%nEYtkJ*I?<|AXnEClCM_G-LOIHp^sit*aInD>7a|> zt}XK^E$Q2CC4G}2&wRUt`p?tnqnaxJoj7+|+lN77)>%vEDSpq{f7hw)KFWN%(Er;s z^|h;iP1wwG(<HUII<(9<SFd{Uscp+w7znv295CLnN-n*8g2JNk8#VKOzgu9N6Y}f( z6A{jG<|>(l=4U<!cc$sR$bR;H^~P1s9M*a_cAr~xXo(nm-ZR&PCo5b!%T`^xQ0yUQ zn{3#{|D5N*YLS1ebq^#H>#Ht3|L?nit*M9UK<59O%I}qT-N|>{ASNzl=6!PdEyh!~ zzCC_<qhT`}TgBIFGfZ}roqPPz=YR7P2ixZf3of2pHt~7K8kL}Ht0x*hbeR9UYvs); zh2qaIUcIX7HuHz|zJ2EAYZu-BcKq;P)*bR}|8L#+7nf_L^5yq$g#~w4giQ@&oqL+^ zvLKg7$~=qwQrq}PGp#+k{?%l>*`l&L<5Qz&hVbi2Jyw?en}k>2vYNqB6ti;P&i;e4 z`6+95dvVUcsu2J5`a7k3JI6!6w{bh_u}=tQw`E_O{xW^0r&8^X=5Lll7fYKBvlE(l z0#o<iXqA{7nQZ@XHk0wjW7l^~)7+n&ANzmf-W`?a`#wt>eBNWqw5T+R$Eb2$+TQ)v zH7+yEL%)6e%9^ldd(Z^NWt*cPKR>44@b6CU_LKfLb4?N%H+?D2xm%Vt-|&9U5ew1l zk~t^;Gk5WSuoQc1G%L*TN%vZhbk*ISuZ7d~s=nV$dwTwy`|f>pe@kz-htCQVEIi{C zpy)dLN)>0|t?JnL`wk*MKYnav)%wZEmDhDv^T6s=xmu5AFBgtvSk|@jfJDN@@-2OP zcb$7_ZRyq(#<;9%ePZgFOYWPTCNE<=&!^?|<?D|lX<>Wg_nezPgZ+8s@!A%%eHYpk z0!~hI>Hn$r^MgvcD68-`#tmolF6>*s`&(K4mNWbR6j#^T?tcR+2w#@|o%{dA`KXLP z%WtOF&zFl5sLyiy7k>83o;<au>yAD#J~qYjRA<6!g9F9S1DsdxoK+>s>nSjqlTA;= zKIoIZm#vkiCwDZ*M{72V$8NP<uO5DiJGCURVrB5Dzsg~+FSGyAog>xb&@h#0Myl%e zm7!+?zp_tQb&WAJA=X!#ue?_-J2fNndfz@5`H9oss@wl8pLO}B(FN|%;+Y>+u58O% zA}Dl1ETZn`)9c?}$Jbw-)VuY&sq^l&1#XqB3<p=~y;!wqgX8ryxe&%IQIX|y=9%ku z>}U2BdA$AAqOWtGID~i__Bzy@+P7lSk!|O7XE3h0==rbb!Evn@lS7W1u^G&5%VY7d zs`d4=a+BY>*Z7H!*6fK%GMp8GpS)5Iulc?r)ylx-zh{)?!!OA>^6!r~S9RoN`XqO8 zHOH5){?HiO^h#M+ETlW>n?=ocInUB_ivs!Q96aMtb(%qb<Ah&xuJ3Ht^5o?Ds@`$L zx#VIq+sX)M9f6at7tBxG@P6^j4XgiD?ahk0a%%yXsn*_en{HH9pIuydeO~EBK^HIX zLoWSa?;Y?-NSV>(cFLhJ)8WX=BMq}Z&kb$;-jJjr_IIMsI`c&qtCuqE-Fk`Dqu;AZ z?<CXYfOlVhmSl0B;%Zpuvf6d2m30{Jje|}G`Ws)xEdDO5Y{$O2L~vb7(Q3If^G<gw zrid&o`77w7m}&p`vZTa^RZ^F<tE)qsyT0B$m!Wy1GjL0G|KH1OF@K~yy?xWW3w=V3 zudWS`_T{W!=GJ(BF^luW6|NUFJ|0}MH}v=B>Pa8?6>nHP`c?hgX;H)?zuu;Nt=i3V zJCmA3{$H-LSg=vBAZW?6c{{f^RO*%M-u!=O+Aq;bdikXmTc6xYzs>w3Xi>{o@8$Q{ zSdHHW`?;wGzo?C0V_Y=p+=iw?sTB<DEPozIcFQi<SKU!#70lskFjsT?RXf+ClCt~M zr)$NAux(G6!C1dQ%yH_s#_(>%14~(UsecmiSz5m;JB{i2gNE%3EWOVzZ&`EDYW3e; zmiG*`>a!{x3g(|(6s5@+*rl~@m)u;{2GNw08#e6|ni8Y8_}wIp*Lq*t;tK2SRi^q+ za??3`?cC=64>ima$|F;`i?=Z5rfyD^|J$|KH7R7mdxw_a23x{-42<iJ@~&o%nZ(}r zx%Efv*+a!K@@ZRsPixUlzZt`^f8C4UWwY%}?^|!>-+gc0v)kwRl9{>x{NlPH&Byd( zruNlRfp<IQ8J_4|2wlm%|9qx~&1BJ8Z2u1Qe=?p``Tn`NyyN8W^WG{3e{W2%yIohX zB+=aX_T5V>T0G7tJ`iDkb9<>rXzXO0rm(qN#20iMl@v52oYP2n<Fm|1F;qrDtBaf2 z{&@YqqB;83;%+g;8FwH2+|ir2;Ect-eEB`UnXA9Q-CO%>XaC2)t)Yw!v;KGe6<XtY z>&;r$Xs0<mangUThvhohRNpy##fQP-`J)94VJ78qQ5Ld2?u&L@tlli!E$J92qimmM z<9@Ed+H|({;#j}uS9W~Uj5^MwF1DHJpYItXqn$qA{CnD?Sn{^nUitQK_4@sXw!Zx? z9aG-3eT~>JjVry5XV}WFUfaeiP*+%;y8fO`khR)oQIqGMWm6yj^x1fXm1Wl+4GRy0 zrlXvqCPK@ze?+Bk<hc}lfMr2+#&VNru4VT*-@DrCG`>sXJfPkl#;V2~(kPl$*)eV1 z2UfAi_U^1F_bd}}*c?Ck_N<-XUaxcBvTO%$sy6#$@gwZ=e!u1SMfvTo$z!dkvt?#D zufO?y{g37H)295(e_YmFdGYzo&~{O_R<FCRSFXiq%7}73DmW&!)U_adVZMZ&!lA|| ztNJ5PWUhav5D~aRG@<eT-i4nvpD*3pJH^jd$??t}BZ>7cZ+`Q<^oz|cy>(aa>UNv7 zFNFs+pGRIPiEVC5s}G!TJfwE-in)`!V&ATvo`0La{>S66(3v;lwSE<~UA%WxH&)>3 zv>Cd*7C&E1)_-$$c6DfZw_P=3tAyj^kZqpz`37h9v2xpqoz;Byo4M(3;daMEyX@>H z&D*6XHf6)Ue|=2iobHiFraA`tIUQmbwVq@!J78L#<EeA*;cqz@)+{=(N=lG{{Y7r4 zqpOr&Xl0CZ;0A`qxetR5zS#0c%fKm@<Hx>Zu@B#VW?kb@TIa3)lChL|)|_2$x18Iv zKWn>ET3g|pU{-~sH?w_tvKZ48IPOLIFVmiz+q=;|QYrf4Atu&;9867>3tsYyeTlY9 z{uA%LqGp}dr23A9nt`&bR;-EETDtoDR&}pk*QE|_P@k~3R^bNMvXlTvC8mu5O8#EQ zHs#)u+qg|{-Kw`H*F<eQBdrZZ4vF7we|NR(Tb2!b=+?hHl@od$(%0KsuQCYSvVF&Q zi?5DF7cQ<|?=VYry6pj}bWffa=f4+v_NVmC_|}^f5OOwhV&O5T7lB9oKiGYkxwdHA zx&9xwHdrc5ED0@Ti`#f?byEfF(NM-@#njoG?}}et(&y!IBirlf|CcA_L>YpwJZfC< z)~njt-9<<EQj2Df#OuCSfz_*5hHhS7xL#$4M&ZfnE|=%~%dtpJcxSg|Yq9l%2dr*W zoYrK8`EBT!xY@|_;^!kNqF=VpTi6>^u-^E}o9r#hDKD$9NUYsn6nn}uhokpn)vcz< zO;$S9d<uFDGXKBZ&0AJixBAGOw?-GlHw0>0N1A@nyzu|Qtb)GM4H{uvSbn&42&E}< zR`4EJ;%0p`qxM#pgzf7p{X|c@&PDe!<|UogeXk=pPi)S|jEP)o&c3&1|JwCBZHcRA z@*7{(dIRI=FG<ONQg`Mv+`ZTKdi#tC_vJj;<!|4={d(Kf`!8nwty<(0|3T7j(^}>g z7TU%V-s00{e^1|j>eIisY0Ues-}}Go=WO%0lJSj9@BbYYzJJjD>(=zjjBlCqUkKf+ z``xhjK}gp1b&<6qw_+wdNl{I+%RN@g)pqjX$;o@aZ(`(poBjRy)pyZxg?XOr8ze*i z$Vc8?Gq0dPZ%_F4TKTp6miO&{%3-zrB(rePm-cKWmwWfNlqz1e$-QM)qSm1`|MJ7N z&;HNhEy~Stt;tAx9{1q7(!u>N?moL$KH<VvjXyKR->1L#`jB0JN&Hxh&)bf4o$8nS zSUw)}{1)Gt%<LKaJC%W<+SPt$Q=mhd^yDvrw*znKy-k1j&hJ~MHrtuk`&Fft1Scfu z|I#Yz{dM)>?rmOW$y;6tJ-fAR_WNxGNe;iGBRLnWns@feR)39zt8=%{esOz)+}Sj> zTfMWC4vO9A+pN=Y;H~55^?7^>d)U(tw9H7n^4}%E;D&C7=j;g`Y5Mmnvi(FCuRM`n z;<e}hosEC*^v>;DdemEe_pW=J?)tsqQQIn%IjzX9RAifk^UrJ1`CDx(w|v%AV_j*W z6fSwDcg3F1pPtr#t&!x<E!-x1rEJ>`gFOq@zVeY@m#Ol7i#+qPM<G4S=Ww1;dHs8J zL#Wt-)dx06y{)slKhvq*=k$*~ddmE)VO}~DzAs|xcDr$GisU=X-cA<g1d#>r@0S^5 zf8PA@)$;#2mj7Nq4{ON(3GOVLy8mykpLy)hrKz3Q(+;GGCuuFZtIqZ3fWgyKoJF3t zucVe2NlH$?5gc{4>S<YT-KVKnHQ(Rmd8qxLcmD3(la8HOWZnB^$L*kq+{lGyXUevo z;gWmt>GI@%YHIV|9KXd-<FH`iCH;&)evCS=Rp)m&c#CcgXim)!tEo?Uy6o@kyYFig z_W%BS|LOA`^BR`_Ef7&=`SZdfDMZ4tUw?m9^8TM^r>~e)khguJq~P9;W~RE}B%Xt7 zdlWddjt3N&ojJ5Mw{i0K1CtuRxAoa{%f0Yn2-(}TS3#>TZue$~5AzpY&sjXfL%HpY zp664cy>p88EVwa$>W-5iJ7!&TW$ry$R@BSFX*$i7kCU<ITNmqQ=go7AuN6<!JXK|X zQSt1L8rhOlzj?LNDsocA=B|sn?!ChC<y?uL>#O`)*JjKu*%h1NC34o=po2YS$@QPV z^JZA|<t%ovZmu$1-E!Thwz}fmg*7)Kzp#F~wYteUwM*=ZpVB{pM@?RTE=OyKT{#pt z)ri$@wSy?D_`jW(x4k`_x+G$8iQWeNq97&F&fURA&MrQUp&S=07i2Ed3J-M=Znh2k z#=1>`W2Kd2O6mv0rE#$<Z~b4<_j^vRzmxH8J+IDtH@u7PX08Z57^U>#h=V_)&XrG_ z53E_U_ZriFtBs*-lQq&96C!6Ze?7S`_^H^TFs284f~Md2cKLaM_RQ{y9f7iG7tVZR z=zbNal+gTbwt87>W67DiX&y7;kEgkp`CR?A{+IPKdzYy@`!}x^x}wC*?kQ%bef;oJ zyPXe>__{oNFSz~9j9HddP%@*cn>poEbR_4Kr4o}{w_mCh`OVod|K*%(D?a$&UH5sj z{>dyKQ-$sYO$(a~n-%&D1(j2GEv-10&=}Wst8K%+#S+OUojL@J4{M9wUtLw<TYKSx zKxZcxv-Y`+$quilz0=)%RqNz7>ls4DcRc5>KV&iKjYs0vea*pjb~Umt$;W4MN|(A` zo3j3w$F3cmKV%Zlm$z)6W5~XC5@+^CyPCW672n=(yS*XHwwBi^`Ov(EcMK=fesHo2 z1!(Hob-j1_WxwjdRL;HquW$R6-L3mpp1(Qvz0{fC-x5wQ-1~ga%o?l3nHmWkKPpR? z-M(<G@OhN{?yGg*v(ojK9ktsZ{pM@tmdS1he?~@yhn;w7zB7K+tsNWmWhb0s@vyop z+aS0?>sEit&WCoV!y3+aJ-6#IXJ9f=5?R#Pf2@=Dj=Sdp#kU1d?K}^bbiI`6ZuLl* z|7G%`Q`)=pn!lDcZ`kizr?@Ha(2U&NvNiYkyC>!EZeZUl<RF&Nv#~_CBlYhp)&KJa z<{S>0W}d{jX4icN<Fu_znlF#;?FeL&w=y~KJ+(TUX=iGsa)QRKb78UXHSC>!pZC;! zcvyU{GUI`d_cv58z5o7c{{hc@=_9v-3-rI1X&zHDbrI5jt9l^d{&l8#FW*O+u215M z{h}*jKCN`i`h8W*_M7Z;bQq?r3hcWRFPJXW@x}eur>E9CmbLF@-<yBLnsLji@{<3V z3GZWn{o&kpMecIYVWu<O;{S>nBFpSneU+H__EG!7!cQslFH9@!U$j+NhqqJs*5tiU zr4;N|iRY}mF!Msy@4w3gdgdJM3DoI+E}+BL#C~wg0gXp0X`WZ7u*La1_w?0oIV1mn zr|tfISJ$UAJc#~x>;AvP|5N5{`~O>GpVgxsGM10H8UHTXXYpl|{tMT1f6IEa=5z8_ z<5=H0Hik_&_9W=4q>BI7Ny4u8X9hpuZoO@=>zM2835$1E)fV5n%p$06@nLH5smU3M zSLgM(I6ZRMwW?pn<-l{LS_#k80;iHsTpKb(8ylY6868`bp8R&be9Z^t-{;ErxyzcG zpKE<QpUpi|a86%}LC3D=R~Poz|4vxH|IZ<%39d#@92bU%7YE!`|JGg2u=`YD^?}Vd z7Z@?mIoitlI(5mTDwWi^8r3SNUxm7rdI_^~T|J(AXT$pl+bSQIkiAzkv_q=yvcKhv zebM$Pf{VdG&@trMi;u54n>0V%zfj4)O61pO9U-wPi=Y11E1S9XUA};A<;Hhh%T!LV zUfKJ0_nx4Kb3|XVv=;tx3yS8v=j<8W^Omu6TkQ2~vJWL2%dfMX@NfFV#}>M~LxoGk z;lZ+1X3L^<IFf=_7-&CG*4<H(%Q#s}|2N;!2?Cq?RqjmL)A`kjL91l}%Z#s@tkR)I z-GKppN`X9WUitAKYTr(s_0MOK?2+?xOmqUyGEUgMS>Q&}|HlVvgG6<#ZFjF>VlJ7p zx@nfh9@9y8*Rq(j|NES9<iVV5KdWtVPWe?mV%=iBBCiD;KR7V7GaR1!weJ1B@YVBt z>g8tZ3dg)Z`*oFKguJ13rLvda^`=>JKKITh^(<YnD#_e}d-*a3rYp*89`H6!z4EU) zHrTb=U+nSI85tp}XLtl|u6s1~!M$$_=e=N%Sj)_7<6Tkdly*s=kjq-`_{8kcCA0eC zLik<w?tR+x`8>;-Rp+Z!ZnGvV?Ob;5m6_eDHMM*7>LXa+d}FOHRkrP4dRv<9PvJYK zTI(51fj5;FJovUI>5_M1>Z)mc1&KCMi*A*RW_Y|&Z(-}+=rk|o{YHyD<pFz}XIX!e znJK|^b^6-B^UT*-uXyS3$tb!f!NtJl#T<6lJ+J%T=&3XaB(}btb+ymb;AQLD)FKD* z<tlquPtTtvpEdQ&+Z0o+YFE#+!n+gLUq9vyzFPaMZkhd)xK6o>z{ZVBSRxfJJUg@@ zZ~g54+0V`2R-4CYH$GO~Vs`6%e!R%;n<2Y*-Myh`d^GaTGJO^m^9#HZ3)l;4Pkfs@ z`)J+swOQ@c{_Ni;|K{{J3%Qs(#ZNCVhZJpmw^nKXyIVi)jBfh$hy8cUuVh}gTzg~5 zjpK3G+v~(m&N`W}#v$jL+!nD}N*hY+UnuRadnd0WVZ~U`=Jcm^X_EN=B+qR|Lh+*N zQ*y4~cwhLeaNUVR9M(>(WgDdqhTQ1NdiP6+e@)(MQ<m@37BL96wn}=gX%=UF@K|uI zc_`}?sh-0LT0GHPR}1PiJw0l1w|m0;<D45>6KW(G*N8kS|96vpbHeu<!vDLzp1fs$ zF>k{mb%TFG+5xwWScH44Pfhyc&%m^6dj*@CK!k43mbc6|Dhe)UtPV)ETlK>5TzD&^ zO>lp*)PesW3S6vj|9kLg-fGv?>G|pgKR*Xud3E#Kw}+|L!YAL|t6BTon~A;jf9ce> zl5c_-F2ub&6S8&53IC;;j6e9=6ziIO>^ttWNpRjiJZ<-yA8a25^s*ZwQhIMZ&%Y6= zyO@Dhc=jSL3k}<8_g=hXomYA1+HLFeRnHQO^$#R&nf_rftCjlif*X7OXU(;*%wzo_ zwtpUDL;lC??Y}4UN2h(AKfS8z<&|YWOSb&H`1|{f^KbS2=h;?#x>x_@;?Fn9{1^6W z?dm9Fi~8iWeBr!+HnAkG9fC(J>{w4O2nv+xT>SM+lAQT!y{V@zw8^WNik6&Ow1{7p z{m6B;h1XxCo4@Az!F=_@+{F>q2ePJftzL1~rO-T!wPSwL)f$UCH{SoByFc4pf4_Tp zfQ`Xd!=z}b+Vy$UPP$pXy)tRyW9N<jcK>pVqxyF&%d9`#z|2%HDw62mAd_<={{FTD z1>CRx{?h2GNLn9T81?KYht#b4+6=+#kFHk9n?64#@44<*!Q!fQc7^^@X1tvDb7o(@ z6Teyi+~kjqk1x+LvZ#vR)@&VTTh_HsU7-1URo}KOoA}sw`sXj&X9tzah}t)D7QUCT zG~UQ0ox?4BcP+b9)?SDB$9EW~eJse%EN88<7v|wVBf_D|CYDjzFhl(K^j_=tjdl)q zt<}%=@;~(KJhgPio;l~GVkOU)uWs?0KXEbF+VlP^)vy0E)#&?eH@zX^OwzgJX1~1n zTQ{!VoO7<aX3M?fQKri!L$YIoE&enzc=^8cRFbVdx$DTBD{;ynRNs0oHrZzPC8hSs z3auuOsma?mum!Gtn*K;~`_@@z;oI`3zF3`oY3uZ;&<XJpOER6@L^+OpmGrDNIl4(P zs3VN4kwL66EFf2OPW4o2k)xthu8T-<c@=q<=f>ZUxm|H}Ub?rCTR@cT0U?12Yu<}q zP&vMlJwuLV@q1}|r)xsOs*kI}1GhT!Y^Y7nVtllvI&=2w?FT9j-3+jQt$HH#!nOBr z6Bf=oTgGT46!d~&#<_fzcFzO+4a)*ME4;g&xrZ*4<k_wJ)aUcmlkW~(T(zc8sKDv< z!83&=Jlm8l!Y5r6X5ai`{qlmTtL()b{I)#wFbMrUakAc-p!xc?oF@{38lJZX7Tsdp z`YruT_RNUArYq-%Z@tQ3p|sX^yY2I-F+s7bm-STy?8$%r|Jb6nX|}s-ZL<15$5nrd zc71zvug9F#LJU4kVS8@b#_eZtc)eEr^&hUqX@$2>w@RH!-*rhWbfe6qBVRrVhqZm2 z*>=`j>TB!ghu;oOo)p@-WZm>BG2dQKUUo<4#YfW@|6X6r{mr~?^&Gj<MH-i8ntT(e zVqy)NozZ-#j%Bi2NSw-fkt;_om+r6q*A=ikDj`Px*{iba4X;mr3zu9Rcm7ac{1*2~ z>u*O{HZ)ega=)Y1A@TNR&h6*#x8J;1z5B-P`?=beK7G4vcsu{u$+-KvXZfF|`Mu=7 zSQje4RW~i>^^S*@ZSS+MGnLi`o;m*U?YF(nPixtp-hZ#1xkm5UN70qn+CRK8NLoMT zCu8;EtT`*|II_>k)%Bj`t|||B`q`0lxkKpN%5$r~8?O8!AA9@Y+l;Fro%i0`Cb7ib z+x9!F?9}<G-J#dQO4qOc)^)r5y|uh$W=rQ9&Kah=JHBTwQFoG^=WPG~@-o%6hxwf5 zye?Y4L*qc>lKt;Frb#w(#82L2lk`d8<wGBV;0BKkq5XHaH>gg!da0RrjbYhB(H7$! zN1s0vSx_UCuxa_sm8%Oh@85QBv`jSS)G8^P;F|5QfwNm8ifP&AoUWRA>#uIu?V9uC zJVUa`-*ZwgitEeS?=HP~v*xYw@|SDHjCbVcoj-DLk{JJ!x4M5_nWyo!H}Bn1o0u=f z!QdnKV2ebvVE=<+|36amuC~Q<xoMhYiqtRIyY%g*zqc8x+g4|Px%>I&xiZPAQVx?Z zKF`?26UqJW4ok*2@wa80)Ll0-M2a?B9L_mVarvav>IR(!oMjUfyr#*oN)uxKI&Jlq zy)UaJ9_-JNQWJ>yceCW{<L4_G?mxP2%<w_CF8AC0|Hsez{oy?RKtw`Rg5$`CH(S3y z*|+6LnT31*O6|n+0>+0qR2pW!@(ep)vs~P}hh^`~sc#rUuCQ6%NZ@i&y&s~h)^K-H z3QHpk*Nx||?kBLeUCmysT+C&+YVXlqUG`oguNt*WsuZs|mDx<Ll+RYHTa?r#DY7ls zyXXG{{(tk{=0!URbzSFPE-bO)8&6NH=1t+3IpJ#`{XbUs`Dg9!Exgqgd%4~ptlb^v zzW!qIo}j(bTxYBO58W<xo>`stm6>t5)|;&z$7~n<de+D^<-hYA_Rou4n^~4lG%@gJ z<KL~D7MyRk&RHSRCfzT`{a?iIzn&*`n#?o~_FqwsxS`zpeD>AF@>9P?Iy&~Xgo*Ch zGr9R|xQYNHAIA>I1+Iy57t&*cc5KLHxaxOdhwm-sw|i^9h)D5ojW=+&T#?V)ar2jL zTCZWx5tS+1B74Ki64p%8<7#v33^|o~eZ?J(Lg%gJ>lr5fKetzFHN*YpLh+_gDWcJ} zts1iR_L2F%j2o8h?K-49lWFT_IVKxH28CTop_`c7`FHJ(Uzc&Q@SM=gI!UIEHH)rT zXsfj~6!u)+xAv*8ch5JwZRc61g{}LTnKqTtq{2oy@W{s_qB+$~?H6;dOioz(KWOEP z26nD|tAmzq4<t1g38baG<~e7}vdV9hC}&gG<oQc^-38V?cV{zWkdoJFE!y(^urtSm zM&+ij2O}MmTE86W<x$-CCsMykZC+1aBtx`C^{gJHx32@lrZcGaE@aSm*1UaUo<ORI zlJ6~d1-A)qUIr%8)rC95wuYZK{^EEeX@lc|*9Y?qSQmKc3;O(#yJz=e=g}3)lXOF# zR;p<=GKEgK(RI-7$(3k_75)xRM>?ncVaWc~v5&#aj3rwwY*nWFboI`{eSd8JopjMy zDckfm!1KY>e*L?TKQB0K_<K!7V2<pc#wfe*rV@ONT-jG7wZpr=-Evi4rq1vG@?M-| z>20Q^|GHRCGUqd0*`?np6=eQk&Gv^9mJNj$mFIG9TgrFg=<`|Unm5XNr1vbJvsTIG z^r};#o1RsjUso^NIpOw<$*dX=bD1*yX9?YAxgz%1<R#Aq&*buh(>VV&y6Q$PJpNcc ztGRmju3KA|Xx?77_x|ns_itP4i~l$g{QJk>uS~Ny?Tos8UUJ31x|!kaDcg1P>(~Fy zIej!?_UYt}=l6SjJE|@J|Cw;p9?^nDnwMFa#Q!S?)MVW*_is2S$yaymw6;-x&5{IW z1;wrxXSO`naq`)a#3JQ&NA&lm4>ez%8m~=Anw55tg)v**{p;<Ce75~|8xKjEvmBkI z7QN)&sl!c-?jqUtDTY~23Hs&@Mc3CI{G0Oms^9PDFPwhemtweb;FbQ_7t6M<6zmcE zA-gu2p}DnqN9^swKROWxOh-QK_mDA9i*?aIe7(t&VZ)<9&v}z>xJ>gE+O1^GVU!hn zu=08&|J0frZyL>%=59G|CO$u-Yqgh!;alr;i4;!m-=9yjL?2}HVft|(;$+XmpiTG0 z60<Bh?sBW_wpRPh_lx02%t^6N+8O^IUtO*2(0%xz`_8z{8B0FSv<NrO<+^nyX7?gS zt?l~vHkq%N{_!kVSut$Jl_2%I)1|Du7TjbHR*0PcMkH9iX4bK<eGivp@7U3hGqoZ4 z|IaE$0hS*erq5@E`l)Z6@kSwV|1ECalNOhP7+N1qRJ?zJy-()$tgBHB^4__vRvl-9 zPR?^#xQ^xU#qZxH{^qL|e4af0+RwwO|6a_$`T2G9&nh;CeM{Hhy?Vax-oIb=I~DwO zryJ(kCQc06ufBd|iv@49zRLN<mp>|TPH6tDV6}R?Wbvk}=et}^+?btzs@g?#y=m3? zCvSSZZdLsMR&U44!0}zmc9+kW6Im*%IxQ@=ktN4vuIPq*HtOBjd8*rG!G`dCB7r5` zzt<f4kiR|r+v5AbH|9pGDqm+2jgU8d+}VHmsjZ|;%!RDmtKK~OJAM1N+xlI5D@%{$ zB+XyaaO9f3aIg@Y#e+x5k6Ioi$yKiYv)F%Y?Z29;fY!c~+QO-Q8=StbY2;h2{%o_x zY1i+TDU4sQI+>hx<?QDExpTtfsDRQ%@0!?a*BU*}u<UL*tH1tA@RtV~-e>o)7O)*V zdh6w?H`d7x@=B$re#|J~S+qy1--uI$NrOQ^CBb=WpoK4slChTK4)y<2gOwN>7BpV< zzg+y#r(ml|kKxvP+6Asv%w;?E_|uBM%ufILp=#y5swBz3HML*(nq9dfUcF{iQ!u~6 zp_E*1x<$(D)&Fl{Q-eb)RGQkCXtJDLH7WROMOA>>LJK2xCxP{=6a*VjuvH&B&arU& zO<`UCDbs}gyN!dE=|<cBu{pcmQ}W!BkH2(2uGU^}kZXAP_WtrJo11_Cp6omB+L?1m zYEsjRG9ec6>U;kk1Z`u2drnD*DHo_q?YJ$dQu1o6t9ok=*SXbN#hF|AWFGLD-_nbo zGxeT)pCg}7Q{>h2cQ*Xvnb6I@tNxwtr1qqkxD`R%Jez*xyqawBSk1HId`;8AQx4Oo zo=__Ae-L<IKItHXhQ&+EthtN6Z(227qA=m=_rLc%Em<!JFo^UWUh$*I@samkR@J?S z7qn<>;a1V><h6)>w>kX78J#O94u4ZT(642+`WcI(#u4|sEidZtc9bf}C&=V?)bp>> zP+AxAVAiD850d}q>T0}BnY2PZUL^f`iDS1{l6;-6_%gRoT?Su_uSh9Y%Oo&YFHrt| z?$|Wr(Bt#I6dzxC@}8Md0aru+Gadup&Q9jpY5}G#$*(6bQTv<|_I1<cZG4xCEk5lz z6;^cR^^t$i^j^5SxxCfsJo9Zz)R)RTqUXLOY})nWJ*U|=f9Z`%2`jVaX9v05leqeY zeQ{sc?+dzG-&uJ0a-=iu%We7+mL&Sl(!C?QY47j6P4D+^XWY@J$0j~8JH7I{L(^?> zJH8D!zMkcH)HdJq`@{0H+y6f6?VpfSmo?MkBg;EC9U+_bk(W*Or0@S}+Vj9Vup?ho z;rhIv4{|iw8)Gc4zTK>DY>~8SYv^w)@4t3c$D8_keJzUj2Hl9fEXgDF|HM|$gMYXc z^dpp4-mdDAYnw2O^Mml;cwGY<{j=`=<~gd-Vn_J&oV<?psP#+K@~-+X#!$KJTR_8} zU2QKI{1^VXFBH1vZ?4e6sh{W8rG@fUFh0N0v>|kUZB71F%Y_;#hdd&-_B>p!_Vd<T zR+bAc{R?J(uDgEEOZZA{-MZTidmE<retXiSGQX$!f+^PlzoXoDzH8Y_FIag0|I~Sz z21Q3iO0K19JPyw^zj`w%Wl8+;$A_J(S+1^Ipa0P&V2J?}Pr_;|2DSa~u0LFClApi+ z?bp}q8LXTluGBVcU;Oomt#O-Y)M|m7q2Ag3+yy?-f6{ZbnH5EUPxm><@aFe@(<!ZN zs&^g#$3M_-Rk@I*`j=;mXJ6Gh!+XXKe0IyV!Wv6|$BWdjPdga!MYrSoozFY@)EA4L z`EbO~(qsR>hg)j@>relDeE){$*SEj>%EM6O9sl@W^ZpFS58m%xov)@?AF2!#u|Jt1 zoSJ^g{;-7Okt3nCg5l=OmKOtrb=LMwwUum0{PMBv?27z5Gt*f$J#)QTJ=Ko0iCx_9 z8?tJm$Um_;)t9`bOjy79Bq!gPy|!!P<qr;w{c=%KxnJfU()2g@w$kmY-bK!5cZ6SN zEx9F|m;d&-{jcU}7I(L-o~2vD`KmItmF;BxYPKy3>H919@4fx~?bYdhH}<_f@;mMD z?eFXEC$+9+{rLK0U)%4RO&>R~nu@+<IJf46aVq08)(ktDnw0`;XD?%(*U5g0FT}$4 zay{GCwI*LyEev;Be5>hkk3-es`<gz>#QT1HG+lQu?!osb@3)_kc-SJ?ul@V$--GKu zGtbwws5flW(0apqQf*GJo9(P;ugYQ@Rur{0%xG$S(eI-uU^eU5-td^<Z-rG)FY3K| z_43or40X+<7K4C~WgHFS=gtI_p08$i7x%lJW}xP_f7!{eQbsR6?U7^E3EK2LV)+7J zHuly8v4-}urYnvHOwpf}+w)}Yhqp0LufJR=rgeNDhj7M}HEiE!F-_j5_v6SaVJ%j> z$M+7(u}@jVzc2K#;l0z^*SLj^G78S5tKMRfJoW0qC26B$7nd2`I-8hv)qegQhlLLE zcc1(?@^`kowQT<lX~jJ*3b|n$k``HZm*omRQ0e|S)yG7PyY)pyoMIE_hQ%6=t3>83 zc9_Lfdht!R|AolLkG9@lzp%a$&6~M^$+%+8tK-`QR<2n%zd$H7EWsr)^jgT)qv@;* z7Jn~|ouKqURk?EJlp0;1dAaAs__jE@TzGnQUvty8tN+@hY?xjNGhC6X65z<=7Rt;I zm)v{xSn;8|y!yGb6Zc!l-_^;OyUg-RX8moSHwP+TEe+UmVgEbE6kE+7+2`*}eYRKj z(8@(-N*j%>xfTQpb!}XDa)q$Nvq`tpd;$x8zY+P;=y2i*PitECCj~*>_q(r&i1(FF zk?rLQkFEM}T5z7%4Q}ychH2Z&pVqY3zTW)4I82)P2DkdWg;S?m3iHm>>DU-<_A&3= z2}bD*Z!x|JXBZX>Uq8xRc5|1=tA|#X4Oea4e5k2YSfSvB?F9$HGX=XUI;_&RT4h?X zUw1rd_eVrnZk^+zSdoqsW=j`v>z4)k$0yEj->d#y_}=Q4d(KMECl*L=RQjpzarhg@ zg|2Q1*HUHcXCWWmV}37Qy=uSO)LX~@@2$9b;DB%D`HJ+*FV?0`-Dk|r(eJY2?&YHG zx0ZiD`R=^(s{ikrPn|NGzOiw>hR$vszs>e>SC{MBFS@&EOKHS(_M5k-KL7NmV_s#z z^@Hb5h$$_uI~Vb?C&fPM_LcVei`MF_I(Kx%R>7Vb3C6BlC!3V2_?k)--AoF3@47tc z#e7G}M%@>e`QnyjWM(}-sUGwrO8@v#i%lkzj_B;Zd9Hu^)t&p}EAM&rcI`U0{h|8e zwW=ll942Ruo4>73()VRzncBm>$6$ULlcLY%+R$8GL!T)%;di#X*e+IG-hJ)dopx0Q zmPSQ0PKD+En<JKM$qOu+XL?LVtv6=bj-*$iZ-pnn|EOTlc&y>k6c$bAGyU~tVm-Q> z3eF`k6g=wG;@Y9V@tR-%w`cF}t(&80u_>WphRDzVoYkE|PCcUSX_w>nRa}4fZvVEe zEgTsgW~*gcHcr2|eCdaW6MtyG^ZfF2sexbN?<Cuw&;JT6xheVbTa0~vrKFkgE$c~K zjGAAn=lMiD`f-8zd|X(f*T??mtate~W;(G6A%4f1RJsed9V<?{B+~S+MJ+Nxo`*^7 zM$#3&NAqLi|2{e2e>|S0_4CiKx|O!f4EGORfA_ThOS-PWpJ0oc^$OLhmw$hq<G1y$ ziL#_<gk`Ug$%>m!H+cQn4#m42e!qD|J8P%LB$bfKO6Si7D3^VynA`7EVQe=$G%4BJ zap|4TOdp>~yYw>N1s-f?3_W_E`D|u(py6ANmEmuX_kMkql6G{?<{R1<<M!NkVYzd( z<koZ9Z`Z#q-v7CM+s*zRaVpaobRtB*than?b5(qs^!;3h1Lbeo^VffS|L<?k{on5r z%IELTcwc+BY1OofomTI+-1u{YNx^^H-$~IMcHQ*3VE&<@t}dgm=HXupj)o=YW{SUK zF)KW;%*tab#&dGtmkX0t^*Gk^E<d;EPp4=gznJ2T9nPEh6L+;Hvjk2InbfqTYOd*{ zz>>YITGpQblD2g6s)yp=*uRQw<MMG)Ja&F|td@S-UM0b+tY7YBEm_Fkx0-3wx)2%0 z+K?unzt2P8G_YRDXA@h(S2aK8-rEhwKa~h*sD6}Tkbkq=g@5<27dz%}7P7e5!mjkA zV`r80F}CwUCA)<VdhO1OpFgvt(x-HVI#;-3#ffI-AaBk|EE68B59N^v+-EMdef1m{ zLo<d0_QK!aaQ-_bIBS8-VkL>%`#egFD<p5{nn|<8E#Ili&>#2K{$@>3|Jt?FPX#Ww zX`A(}f^%00<NCmvS2%2fCLUcik*QdeTgg*FAfeNRcjk)CO2;xvx5VA#d#Li?M)Lsk z69)$GLY-VYR%0efffKfz{{sJ}EBG>G8TG9UVd($svryM=yJxl1vvhUU+Mv#J;?+sE z1^xTN*pB9~ce3b3uV=Y>)QUB(lV?@*^>Ckew~fzgPd>C|=7gHccninP95P1>KFoW( zZTrl2f1g=8ea<Rt?rq<@y=rUv?xPQqU&MWk@{!^_Cv{>~Msm@~mcK?hWj4&sN1nc7 z?2IWpXm&IATe|kaBdIYTBcES!RPL&ZYuPr5K}Ib$$IyYl&Qr`vf8ma}Y1LiMS_ebr zC**k8NGBV$JfCh6q~FQ=VE)Eco91u7@%RGQN6|Gt6&~lWTAWVs7R@wa+0a>f>ttSG z{M7|-vg<F{@vQjsc;A6lf)1<!34+m$zqdSF5Y%0G!FBfxmM~65r#E@^t_>AWTEu%8 zzf`l_*p|AeC;k0eLw%iP-Ur%#)Sc7MD7NWTyV_co`XJ6~?yB0aPm|(nD!0A0v()2a zyI8}=_F$X(v<)}Cw_Vr$`Tx_xTR%5$dHbmAzwn=~?2{GRXG^xa9!#*TU7BU*zF9P% zJ(}~_m*SS^yA9eVynT|=#T${Ga&2$Mk1HIvs(P-eE}j3TQ!2-NeNpoN0Li(Y`_GkW zJp5iQI3Y!<QL<#xzpm%=FV34D8p-<F-<5k4%bd((PfV;2Jldt;W+q+J<EHTVr=pyd z@P&1Twn-O%Ubwk()8b>C_IIR`x~>-O<PUC=u~G@;S+XkbuUA>fD*rdB^Pes3s=qqx z@qTwE_J!fi`suf_cXw#VPxASmX=v!oxuvfC{n7QU*B4aZPxzyEAg5Q3Rl>mY;XaMb z*7I{ieyqH9d}3Re=MNu7zK?hI7?hN6-y*TbakmD`+6?6`mfP=Dv(IS0E79To@vCod z-RFeURYDCa`!oFyeBiUO?T!3%zHy^)S915VsUb%llIAW6Gz{9n_R_lT<Ecp!(p&vM zMr1lWd02R+s~O4}_&!r$e0iYBA;~6en)T+q%5DcP!=4X|zInXUVP5=KzsJ_%Q{Vy_ z!|v(bz003|>8{T^zdrx!Ye|M5)Ap9_o?m<8Qd9janVqXtj8?rjSg?B4>eIKHO?F&; z;q4w2e1ZG<LABp}mQmRalg}G<t$LDgq!naoI8kktr0wcuTs_ZLYyDi*Jm+WS;wG;K zK_8z;#RS(God%3uHWxTk*MG6vVaQw5(rA&swn?Ur?^dbP{wMu)e}0?gu75D+#_lka zN9~M98ulFsGrd{2ec{*Z-!9+x{&xKT>MZ?z`QPrbpS-v4<hRxS<z;odRlk4Ej}Cmj zQ1xg0=Y6+l<*nz_HISNcV4-?x>Y+wE6P0Npx8%OX{gsututPY))%9~$p0}78pVN+O zaxza=#eGN$eEY;|Q@qUiz><WHTOy%Bp`A%Wdv<4hd=fa{RN(~seXC-g1@Xea+pY@h zPLY|#r@CT|W9ilEkiT`I7v7fhnErQUe01iCV!%%W&&b+m)4oJ@Hi`&kTAo&PQ|MA! zozin4DD>Z|`|&%~B~uJvzQ3*5#LYT$jmrvo>A!QNcC+dDY~ESD!9Zw*(MFLEekl?v z;kE01PB^BrOr6<zVrkOSuOhAj>8I>Zy!>!Gd!1uy>YmNXAMT`W-EOd<*Yp$D7JKFS z*Z<tm3hh20$o|4KI^=AG<j4DWBRYHo*C)I<zk74ZoVk~U7auZSzFW1p?K`i+#r?up zLuGawueaCbnozU%+@f-=lNWxtT)G}9xprfpXXExLqZLKI8@d*+^85RI(Ji4e#Z@~( zr$lQnl5&5*e(lWCNyoA{Z)X;n3xD+S+|2I1B!+?W+uEWOG0oG=>ouQxEA@y;+**Bc z+pYQG75UH3NL~+Hl6X)--#F3jtJfP*ouge#CQQv>TX3gqW|ic=V+qeL%q!@56ghQe zXPHp=vL!~pIreGa_{-S2^?<ccZv^9-Uc0cZR<mCmd4An%U*_G_$16k6Na`p)4coMS zZ&BM5lLKlS+x}RcT4TDVs%-K^=}nibb!2&t{FBsMG}-@n{Z%9To5sSC<~I(z-#VnF z7Cd+A9{1AtPKBJiV&}JCV-GsQY!JjcFZ8(pf67r|HSfuKH?n85XiS(nd4aF++n7Q> zRh{WO`Gae8ca}9Ckl5qO$T0U&jJU0{PrBw6zYk?APNiJ>u$%j>PwbZGYKC%~93HUE zn!;oJ^H<{5<7wO1$xMG?@<yk6jmqku%g@L6mfhnu+wb>d`+rUb{rvW{_#2nPE*#pn z;q9qLmNi!wf2)4;THtDTi{F%b<sHw@?DGA*w*9R9w)Hj3|DF&OjaB>WGhuO)Ox^5~ zbgd`LC6>S1`|=id$~zH8&h(q#J?GnJzjw1fb>N%4ef+xG4SO~UBq#s3oxDxt@7<l! zPIY=(tKR11STM5cMz6lbHz}v@k8z_SqcEd{+QvGk*!#!$0<PMrJ_-D`;)UIm6RbNL z!#n1&X*VzkY5%`+Eb&lX$fMbu9FJ;RV%Pl<*3oS^z*zV5sqB#*K4MLCwk)=~E%({- z^X8WO&re)rv0bq^P~yWWi(g+pCB1h1aeeuH18zaryk*Q$opJYV57q8)P?(p<_uztL zYEP)ILfij4r^VmjIDGiE*!;PA*`g0*>`JfA;$ZmTDNtL~b0bTuMPN_7-g(8NKbP?y z_>myb{pMp|{niizr>y+`9U1WxW4AiZxpCeszdo>LgNgix&8znEr3GwRabv~bMM>gs zj-PazVS25}tZ4Olo(-xm?+JeXbFrdAjOEX^y`Z_}o7pyhKFBYB`N6oOVd)~4Ev<FC zdFT4x7J7YnF^_u~>p_iU*R(SopNE!aCTwzHoRsEk^HEOXh>@j~%9}V7w+kE=3xuW! zJWzhtmb7cqav2j1=l8XJF?Q+;?@W)|yrk`$RQ{fIzjl>|NUX@+*&(`V`sDBbA3gQ{ z{gA)z(!bTA3Pvjzzjz!Yp|V+PgYt<BOn-NqzqNa}KmGp;|4q5^1{EJQId?y6{@3mw z-SG8l?C+WDqmDjV7aA*{xMQy<6W?YL#Vc)G%&YFTUMbrkB0Hh*!r|7bSA)H$-e*Zr zau&UL^|q>t`{T3ojD&6L9^6n0?{X`c6p^b?H|a&nge|$DTeXU!{t2l3VUz99oxfdO zU5{-WpHO7X)Ell_>lL1EYGz-Yw1?x%(=Eww`qVGV#t3kyB&?4*^E<V4UC>XvjZU0T ztd9Q+4)qAN;9%bw+@9AIE*};WwYO^jyxZw--QMjz#9;aIl;oAQF~yS`W=~nHt(BqH za8f{_(emMb^@DnSQIB(lmKd;V?B2(p{eHDSQ&h#<SNqJ>yt^X|cWt^lwQugX@?*EB zx;}{97a}0Z;kH#fR_nve;%?>2v=7puxm*ISPVX3vioQuPx;(T>&bheY$;ycL&EmF_ z2Xpw7Sg!pjj&kk2dM0(wOTU}qy7F&0l9QHxYZh=yQaW@#$w`$_M}cb|gP~?u7PsLF z0an{ZPQ?rP#oyLGe!fiU!-Vs<&i9;`@z3%+aJ-4j)}dIjbEAWAW6G7q0S(W8mw8yZ zuPTwum1Vx=>KJ(;L;S>=!`mumHy@jL)n%2g$iwDG^A@)@O7ZXOzaDV@+w)104-MbS zsqEeNE&8qImf#haq!z1YpAlXDw}h9sPi^gzi@zd2xl}B<>+qFl$4$;2gI7m<vTRci z@ox)XzR}y^bYr-RmA}^gOR76U?lcvh{a9)7xy3r=y7s)Kj8ASCB`voXPv4PpY3I&z z?X7FYeD7b_(kvwz*;}l%z}M@;be4IZHk@voWHXo_T0PF$9cwgCxOkgOs{Xp}-EOZP zRQ_z4Z6z=FV>hqbrggQ!U;lY+DU_cj^We2b(fx&@X?vgVeQ<BP*c<a6(dKst)*g_Z z>zlDgMfJq>nr%03iyU*-yK_x%yVr{yxvQ_fIr+72!|G@GpVe6STotz`oKx9d9r~u? z{=7}%UzSf?EOLI++YDZn=F`;+Hy%%T-S6}0$~rcOtsHZ_x2l`^?ApGAJ^%9Qm)6_n z-rHXP<NLpLbN$(OSN}23)s=H#eSS~tn&!C+_7Xb3W(EgrNiJev@jcpB+Ao4(v$h*+ z6K}C=b@)zwo4mx|z5g%Y7Cv|F`1(v4`BEnq4qihmBbPf}Em_7bGH)YT?|9fRVq1|b zYm>xd6l1r%|Autx^KDwsyblEI_Y+V$@YUnhrUQm+bD#d&)D-_Cr#Ak1$K7N9;x_zW zaHrpD`K9s`OwWoK5>w7MKI=CY?fP$gPTTSNM4c{)z2d+0|9Rea%(Y|Tn<NpI;mtJJ zB;&tur0I@2#^nq<OKP)TfBd><e|<CSU3oTxsV^80xdp9OZHVcAf3NB%(_4e%!lqm| zmZ^m`|J!b?w5V29!clC!tM1yXdQw~qmru&P&wX=63G<fC=YHt8Et3v!PnUns-FWxZ z<K^0k7KV#rxpnh0dTTeFTQ+&y>7(ZH2c&;=K3tiREH=SJ^W38&Z1Xx3r@#JEWcUB; z|GV?z@6Q6y0$06_`}gK>+U9?nD`o`#{FJaZRO|S+?{1<7;XbX7Vu$8B#b{Nn=>5B1 z?25Z;rQVmR*<aX=6&Ww>2>QG4{5<j6J?bu<j_dn_KcD|_FL$|hyOs7NWBEoSjh&H; zC%JBY8YGz@6#BIGA*)(L)4fo}7aoGnT4ny<KCKo1_K&|VW1>z)E3fCyW4ja_Pwa`y zPyO*}GkbOM_eG+w_9xp{>{mQ>|7lOQ%7WWD^<N{muD7$jS@ZAEG%=Sm$Mt&;8FO;J z`t^hDHMc-QWzfeK2YKO7kF*YRFrB{?bm4#H|D`je-n1_Z_FD9{b)x@8?fFTuVv==C z#+CI4s*Go-y3RdX87jYtrA6ssA-~#zj=kIF{fS}xVxak9(;~Hr+Zw)P?^HP^c19pj z_-<vD!*lZ|Q?Gsv+;1P<!C7^>rJq%5)AwWV7Vz}H6q#04bh@RGp>@WU%Uyxlr(d%C zZT))2g<~;8bVAhT2sQ;7jSCEE4{fhhe|fcW`+q@Bn+DwmHlLnVoBpo(=;&#D-8U&~ zS=KGqB{M2l9@E;|?a|bwJGJth_cJTE{FE)qKi(Al{}oX)>9DLMpXWc@m7nf0$FWB8 z&L}W*nfA+SrfH$?o}#d6<vbT0!bLr<hn||+GJQdfn(br;nJ<-7Lyh-t{8}c*`kkS> zq>n?)FyQL64R+hKXSfPAJh~@1BYeyJMXTg4bEur?IFhq;8_RRw*{<~_Q#NFa$yymp zo?E6e(_xx=MW^fsk0-_v5|N%EZ68!hq<>B6;AJxHS@lWfy!Myh($X<gc%N%$JYRHq znP;Q1sqclrr`0Fz|NdF_lr?w$Jh`f*Baf!9`cuarXPV`(=zPWZ><`bM<!FURv1_!{ z22U`!c3hI-FqcA4W9*hER}%VFGUv4zsJeB_Sq7b{epWlHCA`YNe1Wy{Ms6>ydC`hD z!cFG+<VyKmm?K+y_uM7E`QE1QT+6PfWKR;RXR_A()+=bk@S7|A*)H}qw-jf3biet; z*(u=ibI<$oxT{?Yx}+NxL~=GsuAcQXUnOqMg5!1@8v;x0lrKy-J7MskZcn|r_XK0t z>Y2|rB_9tn6yNm5Nr+oDzf_k=EPzwi&`IpTHG?PvsXvwLUMtUEs`gyq&!?1UKHo(D z)r&T4aN=jYT7P{S!-;K)huGRY8)CKpYMiOxJwL6S-~48rT$uHpHh#a9r860fWp++m zwMFIIjY-pl+iq28b6mePv+(psM%~)f%G`xtoxX|QF27);F@Ivy*JWGzq;rIp_%JX; z@m%;<^Y>LkzFd9w^QYU-hVR>W@cFLYVXfS=ER7GD^a=ladMfE$rGl*Kk=skoJ1(2d z;NyRO&)oBW!>?y|wCr^9UpmctwJ8fTyFp?AOTordDuM^so@|f1c6$EXwEsf785PSu zJPcXKE->YW-|=Z;zB3HC<Ui+d9uYUa&&}>9FE1_d#*8CnVZv-ygHE#s+wUG+53bgK zi_$f^#C)L6HZgY>gO-V(+Rbk_7qxa?7jbQD;$*!y&!|G1smsWF`~5Atu18xkl9N8B z-ndt!)x_;&W$?Ob=Zb>&ALa>sl|8ZI!?d$K772!ZM^oNRH`!;xE}auKRl}XNrtxlN zg~h>pF|zB{7~7S$W!5v7NF^T5&yU|G@%CJw-7fQqH<NAm>ihpY5vL+H(_q=<^HMAx z&Ae%M{~tYZ>w-9k{IhSjAB*3J_D&L?we&*Nip0e)udjXGT@b{qcBjH-2TOv)W7X!J z!KH#s3`v{BlTNsIn|Zx6oOk-3-SqEO^Pct}yM6!v>8B6x|2Z@-{(e{Zw&&NkKbxBU zw_7W;sOOWGw8~+D+u9<Q&PT6m?~5~y_0Vj0m>0~y*FX1!Q?}$5=dIC)VoIVG=~T_% znRa#Z!?_pY9J&(DoRRCDa{N$2dP1x6$%(9Y_oQ@n9elD@T<W!}!y1K?$)?w*Oi8=> zp=-gu?J8?rcY1JN{}x^S{`dRnGo0>6b=)cxH$=U(aolVA`^Vz*Z?3)$-?pWCcYNH< z{XgnMe}5HUV=(`A`rq09x2^APPbsls_Fc~$n6&>Jk8_Ml+5XlKa?Fdh9QB)bM3=ji zUfk99r%StH_4Zkvo0svhSlO<dd-B}1rX?#<nzbDGUhOm%tceX*V`H7F&)<~BYRDsE z!EO05DCF$IpuZVQe%l)qMu)f>cfQD6_s#W>R_TV7#_mRw12uY<*DO4GSToN@)m}y7 zvBN>B4Td^Q388HVpGl}Pojfzc_Qk{>IUjf;9Uo@s`U!g%t=cS95cc8II@X5^SLkir zrIoVZY`K5c+IH>cyw<BeZCjSGmbu??H{mRJ!BpAr|L^Q6buCY45B{`2yH~}Ftn{dI zsx?vD;PUP3`%}dim_>8`JBHrQ+WV>Z)bytJ7W}TFk^D2*)R>lhd;QHPboH+#wQ8=c z@ekPb5B+l!c*?!^h?Q2QjOo#XED={dr&>O|Fm+L>XO3Xlye;MiVZo1Y7VsH;_p+DY zwU6V-hP~>x_FFge#9Um#^6ZY#_fz{)8`Oe!o^$4oiTx>UU!0rL7E^fNG2B5^hFv~j zN=)Ut2^zm#Wdt*rGXhSF2(fmiDRD4w5I-nay_NBb>RiW~a9uk!uR<f%GRLPnS+6ZM zGtELbt8FSzvb{3ji;biCbc<b>TCM1#zK#7m(^fL4x`tHQ2?xj5i0V!=^VGGItN8tX zZQ;Dff4Xf$ZcYjmJyUGNS<k;-NYr)z_L(`d9Qo(0^6TWyH%ao>#5dZ0(U*Q({QAI@ zOLafy&RR0R(RM{$$=vX52RmlX4PpF}{x~_@@P6!L{oZQM&h2jh3YW}}f56<&KIN&b z#Ll+f!&ZF7{2wOX*kQk-{FLX^C*h%sjjN|yYCiAS#?r8NRl{|qrTLtpMX{<JFR$dx z5#(e}^P9r3c}0%F!n7NQn{Iv;m1Vot;FPT1I`iS?oqN499A|!GZQyx#+x>ah%p=7$ z$v(gOS$@{?FO1EekUPIL&D==zR=(#f^~_d}{FU)HGXE~E{rDmN#^0CgXRWR~ds3|~ z&&F`hO}%T5wl<HIA5WI5ei*mUzm?<1*2xUQ8_yo_;HZ`{d3D-FY5uFj`+kQS_BJH> z?+g1Wd)?`SUBQ!zoaztfV`3Lvy`4ItVC7t<T!ozD2dkgWJupF_CAC`UZ_l^vrE1>y zLbfPd{7yLYMN;h05(&#ww!X8!ocPPSO{vj(U%bH<KCv}wOq=t!lrwca_{`8TWl@n{ zwEYu4si3=YN4pceLVpTw{nL;-gYzD5bCTBl6O5BM-R%zbSJ+tgZaJU*;^>j;P`h?J zOSP5U2^Th>7keu?@4~)czqZ!?S$%(#tV>zDm_x4H&r?-RckbO!-ha1mvdNF2>^Oti z$?FV{er1{6_ib9XitfxKVfvFr*Vb-w*uZ|sZN@kC?-^SI{3}kGtg!iSXt<zX^V)lX zpUeIlzwKO7!SGx6XzGQ&<!j!j->u$xr2T?><nG&f8TY}9UOrc)G1Pd+h3o%6Jb(MC zkM(C17D`U^4Ly+Pl<B!KZ%5tge``26jJU-%z2-8!D6Btg_5X7gK?`K_w>Sp5rf*Ac zdc~I&aA=9#hi*k9?$kK$Ut6_j{qCP*x@pzk`n+?un)$g`g+=aC>|Vw7Z1Fca6IG+h zOcDQghH^GkefYM!`R@z&`Wt^<Wr%E2+&bZgW2l4Ow}cmy&)>W8anAwIsbVEOYrTrM zN&hyVpYwKKXjI+RN&o*p+rRGH&ExSm?mk{#_KB;A`@=c@_|4)MswYg8;c+S4yeeU; zr^}bc*Nn;n6gX}B?!~h3#D&JbJ$aJ%v~QPATx96aiugY|f=~I@sB{@Lnaxk;J^gg& zmz2JfI&)c@OAQ<^XszfndGK#d{K6A5^9!BM%QtK6{?ntzUSj%efx4T6%9eS_HD)}w zY<F1MYF(_{RDNl4LW0azd+|&Dj3$z@E5ftc-nK7Tm{qnt_{;HW3{KaX?((|ainN{V zZ1!%iUbR}3^>r7GT0W}<FAf*nn`t~laK_Ks#d5ok&Q-AQ*P3*#I(F)UxQBs#Z~vdm zQdOK9WqZ_v@2}3W6Y7umeN0&OV$D^Kd8a0;+|zS#2;Cq!zt{bISGnIsH-)Yo2Ajar z7bStOvkM|;ADqFvx=Tro>6mBJyqKd*oVH!Y_3WMJw>5LG$tt=s&t6^SO5n>?SCgJ7 zov&BX-=sP>Gv!#9&19)2mG)_W_;nhVXz$s7et}$oW%m7I)4!c2k7Yg|HNCuh+x+zP z1&z9gRs_7+tGrcn=^x)JV@A2Y%}Ea;b6=F5a{KD2{`K?hsxyotE=3a-Z0pTRQ43b_ zKNnV&Q0gh_d~3Bp`6;nOQDKj5x*x5p3%wrs@Whr?-vk>o#I|jH(U{lr*mH{3%gV1Q zDPfPS7p!_dd)t9+doE6U@M2fM-!|Rud-u<H{cEi|XUu+Z|HHO7i4DOiKLcVWiN>o% zZdIQ-$3@w9;)-)W&(C&n@U2;Kkn2Ry*ZvI2*TTC5Th}`L6PwAYE0OAb<LH^!dN%z5 zLdSOtTv!=<VdDk988>7FcU)iKczmYd=ap-syx--&>76$@r}yupqq~IGbXE$rpWklw z=BMaEfyet-ZkWG^`zW6-<L`fVTW1_N(eXJhQT@`K8vZ;6zL_G2j<0mwefGKSHkOio z-%p>O6qVTI*7bXF)N~;Rru*Tc-+JTk7T6Xv%G@va>`>aM$-pCXLPLOik9ct3T0y&i zR~WT#aNjW9b|hqO`lVTub41E7rp|Jl`v2CXr8lnLXP$B{g?s4-z5ZM6hL7|UnFO|P z63X!Za*)Ab_ZBV_?M+`*s`(S{xWAsnm@xhKm+W&Xd7O@cOqrX`FZx-|kiDF9$(x&P zdW{ngmMr{W%(rOXCD#mtce}48c+70IZA*6ilPJcsK8l%T&hNhlC+}r0k$G(PqFX_- z&umFf+QN3H2D9{IISedwzrFi7fjRKS28HPM=ZT^k6F6j8G&+o5nN8y?2&$Q>*0en5 zuE9L!z5VMSSH`{h_pjsP_U10n(AIW2t&?UyO!w7PX6N6l2z1xYV7R$xy<Mcd<BVk6 z+S-#R6cbbu7O~Bk`9<f5!m5cg+Rw)Ssup?^5wgW1qG!vS!n`fs4=vBs{$H|TYUwoF z&RQAs6UEn-%O*~C$w@tCxU{fst?@#Rf+_sVAMV{BGp)Zq@%;MyKiW4xzmEQR>;Avy z{dr>Voz)I0%NVVa=3_bIb8SXtx|)=rxmw@*)rOZvI^TrxJ!sLgU%krv_(a=>-yJlM z=3G6?=V;{4(Ru2{x2!0Mf+Kq}zcfiVD_9y_s+D{p_$A!+;Qn`<8bVBx=RzB&Sx*jq zbz#He*7x=sWD_^vz3u<+!F|J^5?jT4nkUy3IlOW%J+O1?xB9=U^`(Bqf1K&e{V&!) zyMMdxj9;?1mx#ZuyFLHw_P0gvq9#7-PD|UHRGc%t_}Tq^M!GW!UnOZt#dcV1_}j1k z;PH|c-_V+neNMX5ueW4*rJXmJ`Ni{K(jsI3SC+=-8jfikJEfJpenHP0UjOWnAmjVV zA&0gZb+{|NE^$m(vk9H&&U$vXXLP{kHxaS^>jLaH9C(z|JN1yi?Zxl^KfH4N{U*~` zaYMZSI*<D03d_H+sAf#8*?8)_%jpLV*FW!VO6NZ&7ueW(&T+lad=s<I%|(U!dsQ7B z?WPopGZ=Ab7^QQ5c9%G``I5h)k=ooy30H5S<+hU;vm&;=y1ZsyNI;D8$Cv{u4yj@y z4=Nrwez%qsJ=t9~`{W-FJLTQ1r-O?cva;95SC_tKoNBGh`At~pj^p#I2est`+upw~ zk*%w<;FnUG7uBw}gJVHvsKcRzwg=oZ8AG2lJ-6I^T_h=Np2iM_r!%koomG1z#lXJn z>%NOcd-lkmoBXfW^-hzd^WOcs2gGg(F-o+i&wA~8@Oa{`-0j;QZjQTEX|-=zTFW=X zZ$8gBe05s5Rr=oieEMs})V4qMJ$t=ft(i{#(><o$`&ISWgUHnkRaXmQ<!4D&H@DR3 ze!p|u!pJz|p{iTVuc*q<lDiFgkwPz**XfjRzn?#yr{&7I@AD<APy2c<41Xo(aIodj z?u=!RuN|-0_I1`RJIm^(cUNlIX20MypBsB4W8P_#dm3eF2K=m*J)e61T3+z;SRxu~ zw|+y{r|jDG?{D@Q$1r8f8&=$i3-;Ui_r=Sr?mujs9Nib6s#H;8mgM@GGJ9I$FNu8z zU*47bmTz{!So8T}UG*?+TT5B~{Nnvvx5miDEq*`y%naQF8|=I`ep<6T*6Xv5!<h@m z9FM-|iH<+FTIk%)`Tr#vT?>zLoY<RH?egfd@Wxl3|L3x5_-<%0-uKge?@>*yV@#jh z=Jw9kZ9OidZeM@*Z({uab@d-Ktd-ZY`1Dn*-D({fzU{p-$4r$8Ztv_eZf`ro9izRh zc}w+&Fw?&3V(B7<h8ZU|NMG>U_~`v==hZd)N;kc~vu%B>zg_jZw;vD2-8I!N3XfX4 zzjp81pSSmK-gvRLd2`IPocVu@Zl=d?U4Hjb`%zc7={#*`&YsTso-bBi@uO?%^=UhH z-(UHXvAX8NG=cP6D*L+^&wXcSuJ*Ki!}|}u$F>QqI<|TFo!lbc1)h7)CD<LXx6@d7 zGhu$<-8tL(J97dyuy$NuVk@`hrC{}Olg5^R4~_O2GR&K?NnoSku}hMV8&tkc>sQ*A zrta}ro-<;V#l_aJ#Ng(*{M!3P{1YC@Rhj&`Ini_0{>M9ByK-zVU)>+k;_+<p*TTGq zyA2l2T=n_!zlM#i>#_~**K5}AdEsL%@QFi=nQ{MxmlLjW-SE!(d$BZ-<(pr&Tfn_7 z(^&MGPY4uT74~m*h%Gd~wXbHr-KGVBBJ~wIjb&b&oKAn_o7}x?MM3C8kH;2@H(r`~ zBwJPsE?;}tV%@iYzvUI)y|{k;zOt6k6~%(0hw=Zv*5@C8EPa!$bIl?Lhx;e)*hxs| zJY68?ef9g!@(7I?EPlcbMZa^Ca<A&eMF*-Jn76)0PNFe-Id=y)!>f#ib5oLj2?iwO zxT;-i+qdb{Pr(wK({8Cu8UOCsO#5s+-SR9);oS|V%6=HmOzr-p@5f*NQ@OgX_Hq1q zo`(E`+2vn1&o^iJ`rP74a^R&MMuk?!CC-y_E^?<W`E|HR|JxL`YmCQto!U4{C^xj0 zaZ%gH$K7u3uO4zAJtrWzrewwnHeaC)t0y;Y5l{|hHQrb~^GmT*!V^w|ce9qptxSns z+Q*l`xH0zYNA?x3^1g+CtG55Cc_bldD$}co5XR4|V`sWl?YhVGx4-`9>S=$@mw46H zU+B;Je{W~=-tC_sHJ*1j+n!LR7vJpnI{x{Nom0O*DDfArwG(7z<Gpe{lVeH5qB?=N z%e$6vtMYozP(R{&@QhT(*3#wN25kQlk5=;pA3c+1H*IF|R&7V74r#Se<2iQuYx0CV zCMdsmXpH}!qZK~6={X-;Xqhw9^S|XDEDxrv+|8h<!f=^&@5>!_>z^ny`d?c)xj8Z< zY0H5-=Kt8O_?CzyEo!VU)$%$ODrNk4-+K4DOHvcphOd&moT_5Z!?sQA7sr>SQ~6>Q z7*}U)?vRvb(F&O$zhdJ9?-!qMhjuEx2)YtAF(US?;Y^2WiIZzj&g^DfC>Z~5<L%5X zucy6uw{CmJ(T^&52RB=Gi^*`dvYg)#U%tn0`BW<lbDvdwg{=CGAB3xtd$+Z`VE3_F zyXaM!;IRvD5=t3GH@bRVlKZh{O+@Kgewlxap;lb>Y_%sQbSOUzH<h1Kx#oRBh(>(q z&491hBqbLzZo0WWcjm&5`5W|-DqU2!W_daHY3-7{&2HqdKW6dUg{y>ow01UE*ey)S zn)+-bW999))n&W?J67}U&))rVckax4;d5SO*DP<jow0k*))lI?9^XFR^elYJ>A?E- zmYDL{F7=D04Xdid?XJJ@i_7b9FI;<hS!h1H{rZqXwHZ@Gb7f8XKIu&KVtc}~Ak=r& z!n=xEmR04xTQcpsSqfZF{aC@kDo|kd)n8+$$BVOO{`X`Pa<&!O1})Hgxohp}AJY5h z`TIEVvv(CZ$)~A&KDjlvrq66u$3Fh=LJw><%AWn2-gGUx((dP^8B3b}zKB=NbbNk( zf83S-(VV*?=Kovt(nyGvdmHogmhZDoj4tf@8p#-U$!tZfbNb9Fl`l7F1bUSE+h3^_ zKd-fX3rA0dQJ9_y7Y9dy`~q2()Y`fYi~dxt?+Nw$zhmtT6YeP6Q!kIG9J)QDDeV0j zQF-~crj*8)#hw#qZ@l&X-Y<_+U0>@yAI;eRYtfC@<|p6vudVuZqpaZe{(QT9h3k(q zqB*$3Zf|S(e<$Z)r6xn^9rich&c?->9w;hd-1fRmMJmB;|Dnwc9k<?0{9fAZ`S|** z+N=ZNZ>yLDL{4*^S-JPXD#zz*PHo%vT_WPB|L(mmZtOohH<$X(kO<Yb7W+~)PwQ8N zf$XY=vYw#5@3NzuudGv#JGpC;-J9cgYAco(%#ISAw?X2JUY(AM{^TiNlC5~O_jvII z_smGyJ#&%H4W~D+V>cVW7E?}=wp#Yr>hkxeSCWnTnrb#AFspD*P`l1j82zw%i`~V# zRauE%(r+_2b_l&S`u^h7jkRfSUvIq48ull0YuPr>8*=N~8H`o#9BjBLwB&6?grf2W zp0Y$~kr($K)EdbBTw!Kr%yr<^8m5ki#iuUmzsPBE*|2BJj1T`F-ubrNc(>5`y>CQr z${*b2^<k^I`E}lc{pqVyJD(d1e_2-}C$lwN|LRY>robH5wch#R27h%PEs5M1|08N! ze##4m+>df82?9U3Ygvz_JUnd7Z6G$^{#Ghez=f7D(IYpS8rM%v(C*s%y0z0qeqKO~ zh3ASLT79SVk3Vb<fBoqqXi2sCFVK=|?zqd(+UqaQx$Z6ZYhvdnmoR~j@JsXlh%%Wj zU^uj0jm^>3vG>0~&ori=3zj@Kk4$aaWco&a?&|RLIk(Q=3;Z8xRsVmkjeu!rwifTC zE2k8>7N0ln)lO_m;u3NTG+5irvS8sN|LNZk$N6-v%PBMeRxST;?lf<)kh{rCB!0hg zJ!;NYxlZW!N%#3%S=KlhO6Na+u}@w8v8e;YmyNt@t!DVGsnhRY5%<$q%;KeRll`9Z zq-fWU#hdqUUL~6wAZop_$v{gpXuXZr>`Q7NGR?!y!wo*2)@fh&@6);)e5-2RN_m%j zIkccN<YDIl_vI?n_`D1{B$*#><j&P;%4L;VWfaA`ORswFY6qrETaBZIF7#~(I(tXE zio01wyz<FsEtlK9SN;E;^^(loA$?Jmd-VlFe>*qjTf$k=np!@83<?i+wDofd34iwt z$zLQs;lA_^wsoZsJ6UeAKFXFdo@!xq;wa~2`}+U;r=H}PAu4x9rOo5YQiIn_HIKul z_Gif$zZCU5CwA|h+wNVr%zCn#HHD9=vdPOuxjJob$lj*6PU3(7L*rGajB`OOn{M8# zdwuHL@42%6>T6S7Vx#XB2eh>>f75;Fh|!UEEYA#Anyd9jUO6nZfB7}WH<E^?8nXF& z<wIKMYkmFay+Qg*Xk)jhW6mVA#!lIXzfUqY^fG7b7Pct;y_n?0cFkP-<-wU3KTkc8 z)U!bA-f_Da#|zvRcMKd)Cl)NosX1MCoB!?8tL)$2|Gk_2`{sW0Ti@e*%4+W1cx<!v z{$H+>9PX3mZoFp4zL&|xH|Wa!LwO-RpS#0k9#?q1OxSTj?ts`vHjRB>LY7>dZ`c~J z(Qln@0Ef_32IlSvcK=p^gA4)v`_JjA&)e|+*7fTBcW-??D|bFMvrJ2kDd3D3=gS3! zYkoXm@h@q;O!kxM*Jdl<|1^2?<iM?m45!*U{`T{}A+X<C<N5bX4O<J112VQ|ytnGk z;F$XL&OF0Nt*vZ^`(q~E4+-_`4a|9SP<|7O@ZVyY72Tbt6St@{uDVsovv09d{n6|f z=NlA?<mYBAnju}Cnduz*R_06XM#~55-QMlg(yI5l^-w*X@wswt$ke~5SXfr(Dp;A< z^)LRrqn@M4`AhMqX;ZW3-uB@Y37EWI@`m+_N86VEvh)4Ge0z3U@~x+}7v!FPd*J%| zpxxi3t?~7iHxBQ-;s5{Lv3u3|Tkii^we-;EjN;9g`|p+g-*M~UWj=o~F?rb+Z@w{p z`L^??{Bpm1HKW#Tx}JCQ{{HNnlYQUeY3Bb;b7Q-ni?Vn1^G`Q*?0)c%>C%%A$|5SM zM#rD9I&epwbF*D8P~y8OcX8{F`%Aa~yEMsl*#fN-9xdB1UQC;K{<_Dz#dEznBbkCb zk8(5|XMW7n9r=E4)ZT@AJy-vEt79)5{xbgi=ZaTm=N|o0S1Y>dbic7$ZSm68KR-Ez zc{}deZ2H>4|DD~!teiRAVMa5}|DIFsR-DVFTo!($;6wc8uVE5L^H`Gg*9y)~dz7EQ z{vb!}fdf0YC@`E@@n!y>q%FcPBviI>u?9CS@oO|=XcwQmRd;>zl`Ts`9hl+{Kg~HZ z-6VJE_QnMhHXfJyCAep|_4X%q%(6_~uMd2d`!R=Qnzcv4??=|(UR}-3u$j11;jP$T zo>soY;V0dAF8zLyJaP4#%O#e(7gi=FMqj<OY{sfn?cpyBU2T@_KgcAd<Mt$q-Qeo9 zX-~7O7xpCUo?K_ht(M);ZMb&nw`=NKPdtizzjaxhNJM>E@z=ZcMK=GQWt?B1{|2;t zux)=?`2Ppb&vyO2GxvT)G4HQkmrrG_*ri-4ulGgM*eaf#PjF3INWPH9mc_2}`_DJG zG00SHT*f_nw~K3M$>kN1RZK57uk+k&v(U<CV|g809mlb$t4?)zdWQst$Occ<ty&t~ z`@~H|zo%feP|vCbpPe>Zs$U4GfA4Oe)vB}bG2=S5Fqsox3j*g%KWg{y>h!ZGHBWwd zQ0KQtZhr3WGb=(WrzZP~n3TL)AN;TI_Suc19TB=_a+{91&$JcY?zw<ZZ<SYe&x9$v z_J*6bY^u_3Sk)iQZLnPP_MK~zr{foAoqJ`o%9kN{R^;*O$zuMEy1jQB7hFB^JZ9;< zb)^pSwMw7Po?5a>q9bszmZ)Q9kiu4@7kaDbl^eZ2*x8xuVCWPRvs%rv_g7Hu9G#3j zPvxQuaSTyWlOp6>Pv3Z~v8_|k#cB0{EzQAaBD20_ZhWyhmDO}%{RBr(wFN@68BRxt z6tU{gubu3e>*I8XGpurHtg_71Ez4dUJUqii?U>?w=UsIwZfyw?Uq0k!b^hP?_9U+s zqn^UoimENUua~!-Yud!|nTyL{wcZ@TofkiAPETLBB(r|Uq4RR`>8uAFFV;ng%C7mI zcwF++U)z<BI;X$rGvH!bD50>9#l4MzYudi`$}bI7G}7NGvlzHGemfXZ8hqL}ZtH&5 zJ0Tanv%lC>1)S-Wl##Aa5qk4`-P*4Y(zQRwH6*KjEq|T4sO!qLv=dw_WcPed4!<aK zG3QA2Hp%;2Xa8mYCjV!*_3!royAQ_gnf~^-eI{e#@2T;1mmC;$&hK4uoMqpiH`T84 z!hV1D%zJ-Za5Ym-+G0Ov*Vzs4<9jZBuGU*)W6VEy>YCH*Tpv8Ya_=*9<CU*>giB-t zx;F+cEN5^i%X)uxQhIt`rK-$vt(EV0-Mm`(sqS4*OKzlQ+R5jt3ak%g8-?G6-qKK6 zTURIZMJwbFJ4djk(ONA_v#mS7oRpG#vb*C=)$)^C+%5j%@~@wL({tNowtGT3d$*HT z!}di_ly4rr-?8<G-Qz_G<?hmtbTcRHP>*=g!{p!4{#I^Fp;{Z$^dOFwwJ#X`EWRH+ zlF)SH<tfic6-;L{xUc20D^>1lSeD1mzQ#ZA`H9Kf6PK9ruAb5ySUGQBS3?ZTU!jo6 z1`>???AzCc-u$|L>u+iPq)<y`=gV>jxNd(g|KylG#b9n))`CY@CVjeFwx#^j$-MIB zxqT<)^7zZHJ2Y<m`NI5rx9qpsY!+(2AFbZzJza9=x5{s;_Sf6rOq~2S%iK}*zlr*@ zEA76;`ZwineZL#tmwc?H@$54m1qM&e6OGEpJk6G~e(1~IeTu(*QFp`Y4eGA1JG1m} z>pi&5AU1iP+|MxH_~a{EoU`2(JgY4y_PUC(y}TiQOjw5Z4bR($DRX%v!ftMy8~AtL z8BL@8>a#A_DQf@ef4}$KI$`IQ=U<tQ2^Gxv{oD8U_S?_>dnQ+LFZr`FyIZ0(X+?ju zfmol<o*7q+zOdN!&wQKte2Il?1M@{EZZ&Vwxi%|J4<4GnqI}Q%>8Ij;ZG8K5Wut%g zZTaVsNwd}7a&;e>FPeJ)dBCso`0Y0*3I>@zJ#gIWmCV88QEv?&Pq3IJ_$%n#wZkO} zYuC@<mAIY#DgNamW9ImvQnju9UYq}aFXu0--OJj{v(59Dt<AI0_mK(~HKn!5>*MM( z4f7`D=?fpxS-SaYjqRU(0^vMT+an|HC`<@s^-%fg!qgOJb7Hc;d&I3s%YvBfxuX4N z1b=K=tNEEH^=DbVKF{-69Fr2(zvcUodpJ!wS~u|$gUC|$!`0LL-`*0wl;LsZ&&rGE z9Mulz#eH91`tPaz_UG5lzkwQ=hvP4Q1vN6ycuQQrdu^NFQnyWkni(R+Rd;K4WZct| zGJT_Q*|NMw@{zXj^Mm24&pU0;i*@L@UD7zHw`9viK0lT1T05N%aXeq~V6&E?Di=eS zuEvrb%whW;d{OFbTOY7~@+zkt-%>?4c|LzM)kM7PbL_u=)%F>k7abei0(Q>R*x;3s zZz=!wald``)!xNiM?6DcYo%wTH6BxA-SfI9&h*0ZX+8Hc&i%37`g&K>DP5*3l~*J7 zFZjHx@L9!*1<#t@=K1((YDsF#?hn_AF0kJEy*TaACWD6!+ZeSLN=C6S2>G>j?W!Dg zrM<E|W}LB&@3t;K?0CrNw5LGev%R0BI^vf1C6!;C8MVg!z2k3bi5rpce`~WOsj2x3 za7N2Ztl(|T$Y1HhXD@!@r|W;m&-|tKPTNewB^l0tJGE$6zlz|_vnwWeoSE#!`az^R zd8&Y@op!*NJJ)5IX9caOnC#WJ-hF@J)s7=tYz<c~1}}K6spgfkRd#~Wi`qW@xHq}C zHcYS1Yy9~4@nTu|nl;ys2F4%ZT6{}Zr0U}DNh~K;o$HNKFSBNAJ3d)UCvK$<&yS!0 z)xVO8j9hP7!^}4BV7lP5Kq&dzk-e)9Ou5~0P<!=Z^>y)Umj5bzJZD3fc!?*cvFNu~ z$1GL{=s&Y<pH<DYbe}`_qntqACw000)%AxRPH1Z^=)e8cZgZ19gRk<j)SYdOD@E1# z^G$1V)01lxw}<P$t^fHx|IMq|Mwz!)&$Rx%y5Fd}_<N>zl70TN7t3_tG2Lx1t=*!x zZs{q7R^{|H!DpVj6+KFLz3QZTgn4Mf2KU96By+=7#We3)*|pDYRjK0o8~>-VaIN*4 z@$Jg@fPm=^jPeW~Rr?rrZ<LANBo?aNTfWuXnsv3KkU}lf5e5fMoBi`16#a<_*%VpJ z^~y>zTwTTA<Ii=DW#TJeU0$|u)BDaH?;mzvPI~pShikt2$2)1B-`~7{xK_^icgEbn zrA_NNPaN9z`K0z?)5dMjHh1-(H(`p4TdMwI<)wTT7cs3Lp*h>NYEq_U&bVT~JFt4j zv8Rz+dS_mhni{es;q3dogB%Z@G;kd-)>;|+KwnjL>Xk6hSLW&uDi-*DOn)aDJ9n=@ zTk4@XCYtHDC*LuVb!of3^+|o!zkRBv*318`|MC6s#v9^q-{|MRfBP}CdRp$?{_@pt zzf0bJd;0wJZyh(n!ms=)&$D}bPm-~mwQ5=RGL0t%yBTM^KL7B`k6o%!`LlG36%PEq za9he`_MV%+eq3u5R<GG3$HjT+?F-G-h5gO3CDVF?Qm-EpbF*IX;D1O8_qBJ^S4?%7 z=rOPVX^_E%h-)I8Gyg>T$FT0cu<za3T~hl@IA2}(UjC}7+|$nd#Zw`_JH3B%Hb@jc zo9F32BT)0*ZG)tOl7d_Jv+u9_FQFS_{C&~6Me0{IR(52)PikEwm;W`5<+uS~`PJ`< z-W<=$8)N4bZ@sDdI$pimfvI7puH)XPXSPN#Fs#u#eKE&Ft%7wys=h)ww*y!Dt=}Kk zua63<O||=WK392poleDjzBOO3$rx6f>AXqU@=|k#(9YvBwOdwe|2nO<^q$(1Z;mRP zqigRvMzF6G+r8`K#pW3HTQ@lse5M}SUq7w+<LqfS>i@pdR=auFZJSZ%TD?P6lFH@o zDo+@8X+`e|VxQpidRJHD#-`S`jTbx9x4p1ov2b-b60t{$&6fGy|GecF@=geL9p3Wr zeA1*t9NXBxmbA&eUV3j*!k6o^KG$qj`_j+GRy&+AI$d8<{Pi)YrTJ(k>j&Q2)att0 z<oMmw|G#*CR<5>VL0-aE&Yf=r9Bn3tec8CnOv>B9#NzeRUGJvW^qrV((dE9#MTA{@ z!HVf#4;n;oA6jB${6ahL%)~cg7mdxuy#8_2Ic^m8>WnF!`XhMK#h5oq{@TpR=6{?m z_+KwNKPNuV;6wA`EpP4a{eAa)#_v-s%G&-*83ctsdmYr~53B$Bdi|{8<o~j9dTKAO z_<1m->{vPJ=H*w%%I4mlAF8}GY?Z`ssfzyWuXRtucs)-~4Bc?#RBZ3OpmK+)dnYo) z2Gp*$nwsr@?t_iMi;1s}9hGqTf2nr2u*Rw^?m)I;#m(lu#=G@jtzWXb`be$I2fhH6 z?q&Ug6KmoZUG}tduHWq}H+8}9^v5@a4<3(Nw`l*b>Yzh24s?h2UDMIBufC-l!Q;X9 zw8K=$qx{$cC6QeA&^MuqMjIJxW-+>Fd@PUfeVlIaQ%u^iRL&+|rJLu(jrv#iyB!6l z_<Gt+tIo0C>iEb$MSRPWj+k$87iaV}W@${l^|rG^_}ILaw<1L=tb$V_Z9lI6_U!E5 zyL&6|esd3T*|P7$8Edsy%a&ZxJ~l5yecOkK2ER@QX01ie4RS)$zQo5K{ZvrK?xq+z z&whE+>?wOTyZruB{>OOftGkoyZTdFPJ25R?;^4icoQDYuPJA~o;_VTQ`{N^)D;+Fw z<z3UNz4M$O`BZ0Am2^FKYY3dMVsU@aTE=~?<tghHL`_O&dD<t%q^j{a=dOeNr^>KL z3$)gCKizu$W5}D;)~YX7x$XP4>c^8++e|g*WhUQFetvaVT-OYjtLG!wkIdj$Fsbv% z9EQxRGt}NO&f~OupB?<ABfEsr_O#*Ehl~E4v5z*iD2tk|w7_wesOB%5qe=%Pr`2A( z^Wz1(ufS~UPgN5{R@_Qw37?>_V16A-byvB&8YlB3-uwG`zHNCf`dc}3PAu<*jsucf zuYNEZ9yZt)aDL0A*anvyt}B~Z=So;a|Cp|{Y)Z35wuI)kO2(37^PX!s_Z%|0DgJ(< zKTGLJ1IZ-~_Ma?0O7|{Xp`^|6ZS%g4#>ItsrZb{Ezd75!@>$?v{{7YJ^`(Yt`#oQW zX-9IWoI9JvD!sO!d-YwGg4j^ib~7KJRDlTRS07nxN(;T;aISaQUM)TOb(+ZRTjzbx zZo7Z?{I{2fGuGeJ`S$DdQMub+ZSRTC_Fp~s)<1hYi><ehR<%#tBF@0b%b)L_w)J{` zSMA+vzxVy}%xE~cPSr~{F!$%)w|wu;=T8*TKb;X@Uz)!@{`}kT=>fOIzdt=Jm>qic z@%tWwc`ut|8C>5@m74NwUQXs+<;r!<2ac??XI86WJT+-%$l<(OlhfCHTs`9qbF}=b zH;OCD4Ac@YAHBxMmuGkCU+aY!?|rw<_k5l9*eUj~L+!iOx3};*UijrQyW?u+R?}+< z4HxbuNLyt;I<uK+WB3tg_QkR`8tJzWy<gPO^rX^+i6{MU&C-e_*{eblx~x@Kf6RB( z4GXs4wNjkB%*|G<Q!TAYVI_CuufH;t&wj<J+*WjZTp7b${&b_fnz_xP_<-jwB0r?e z@)oY;IB5OdHf})>>)bUG!U`(VA&XDteK1t~bn;{6^_unT9tJRO`u}V4`3S}SzzOfR z8!&1)%w%nybNhDroAP_V4;buS#IoVYO6IN1ZJRi~!%j=P`+hUro+MoQdpg@u|8xV5 zf;{z~yJPfTcUU-o`RAIviT#$vlp_olZ&)qnua)V)kfxa~_D$zYo(#v~wd&eh=L&5X zl@>M4KhhEUV&j~v&&*1ruQxrPe*Ec=`L{m5mi`S|0@NIT8Fco8-k;PEuf@|dY)ze? zUs^8k$Xiyxr+dONhv<j)H&@Ry6`$_4nS0f`9`}%=vR7_P?Krp~%YE6!Pd6{T3G_AC z;;Ec&@jjwMXP@j05hIVUXD)3}JgMbhrxx;G`J2!5``t^vTHmice(&$O-8=aByB^F4 zw>l}J^@Dl+_s8|Wqpi2L$l2~#l=_Ij>ThkxB=&iWGDXAw-zZBkcqXvdxj>8c?$jw; zgtAUCg<5Qi(E3>M-*~cKu<2RRWW{f;x7L0=b&E6PUZ%j*>1V<&rCkr*5_C>7t<mGl zu?4?=M>Y1X>zd21J9&nfHuH%><ESqiW>@VHoUl4-TF@Ehdxt(gn(0^l=!)hR*){JK z|MdM=Uv=T%O_vp(YtKZ82kq$H+`M)Fk4HP^-xE$3igk+F(`+C)$!_738~h8-Y74Gh z(|2r!5{t-8T^^piCr7-$ynGjOQRIYa(G(dq*)3YfC&X{ry5H@-R#xHE<bAu&F?`$M z=Cn{Xb@>8~TiG!-8(5#`o<INmxLAq#^4)y?->R8<Z(6OLx2FBx>9?UdA&SDQ{kBGY z*`dC><HsBRH_SF$8SE;vk2okQujxM`X33S`{5R%m|LGa7Oo0qPTyBPxcK&wk+&BMW z;`y1^EuIT`JAL&yxNe!yjI=wC^)4^Uig=@bZr`!ZTocz?l<WOywXF@AB)L{kG2*EA zs(tCw29bO8MT3pR!XB_~yIirM|1+DL&)anITPm$5gXgWwt*gnj|E1u3Wz8J--}V3g zpRxP*<I23t@soGi?N_?2&T!r_J8sjtsAo3~FL~)!oh+O;lSwU8bwbhpthYSDtaIeJ zqIY>sDDL<sZ)dFL#UiA0`r8%lGgp^wc&yA^uWTVO+3C*-pWC((46koZ+7c=HUt}?x z`{D=jDqO2$kG#m3edk!k*D{G3spE6Ma_U#CV`qJRuw`Rh=^~3o4%T;_eYhE_wW^oi zxxVG@?~B)yj%BzQTr%UWn8B)`7H8~cw8-iFOA(py={wmpl)_bXIIf*v$TLqTZLRx$ z-CLXnX%mD^g<gD-_Oo{s&^^}ZYQO#C9L|L9BfX2F_&V0jP&>RTgVBJ=y5-dJ8-|y> z4(>Eo`|J69x`hA3nG-o?ylz~umQ#Kz%P*UkjK@ANUVkFszkK5A+E>SKyvxja|6FD9 zO2+!*(-`*7GcSu0Q+fG0xw=oc(SHBT*}AK?l{YqgtIm(pJ!{)G|B<40T^`%@zKqqE z_C3G<-IFmnx;vOz?|HjeaK#}mhxXbB=PE2@&%b@M!~V$+ryqyD_AXuL{3yG?Xt&9l za)o8Dl^&!WmFZeldPGXkE`5#I@gF-^U0f2Hw87`5(E0k!$C-srY!0;6Saq=ZT+YjV zN~IU?x$J&7pL0ST_qK}{Y7Us}x!iZm*Lu_SJMD(`caQ4XDn@f~J=Y6Rmu2ssw)?14 z$c68rwkO*xUF~8oi#_)^b$7YPp0#WpFaPh`CBn18>Y|nMf5Bf&cCShTWEM`Iko9J( z$D7rq2jll%61Ljg@A=i!ZbsiGn~M>FPc1wRX7wx+RaoHf=NafL!S+KxZnt5b!x@3K z8DF-4@jTh|@Zxf{1px=k9DfKLwRm&9|NOmAwHx>&A0%$w|Ms?6y{*jjX%9Z{%kFqN zYg&as#-(rV+n?=>*!aID;5TQ)j(Y10??Ra-XFTkRoA9ih%|K?=yhx>1`JTyw=NVFG zy_psGcC!?N@1)p`dKFxPF~9yv<@We57Z>sUcJQLaO{JS}`WIi_%9fyYVYgSef<xy9 z(_=9WPDgt-Pr4y7x0EyC$*canb^o6Ke^T)${Jc&>{sZs;=DxD`f7;jn+W$|cHtE4@ z(~xVSN9VTL$zR;hrfjO`bk22YakC}gbg$2+9>^s%8g5eOJ}P>3b`B%k$LaTiSZ|vi zIO}!z$^PBzxL)|4%L<LL|8#wl)^x?3rbDw_)><9i@u524!~4uM{&_NQZseMOJIHQ- z<h<YGg}RR3PgceJsoM3&ue$czZ2h<Y{@wF9ukR8)ae>hWk6CBslmcqs%v9d|dv9); z@ap{^&O4^cPnf}w8XI!gaci{3mU?-eg00~X%FAN%Su7W}<gS`v-D{qCr<VJ{wWpi< zT)QPhI8=V7iA@QY`5M`I=+yk|^OYY?aZY+KHm#!mrP}6MuS70Ps#+wlmT_gbw&%oK zni=<gYp!iI+MLDYxYOg)(NhWb^8>ziEUM++_9W%T7W>^T7hOe~qbKb6s<YmDeT%}; z^@TDnr*qDo|M+p&2B))JcNaXcSf#)`*@R_L`r;r9Vc#|9H$1M*v=7Risnq*pjo62` zeD)jP$NV>J61Z=la5SV>=de(Ei0aE3-;dda-(?ol{=R^((buLs&M-jr@(d5=ITv0W zc<IV*c6VmJNfy^tZq`cY6$duw?7F{s?UOs_o>r7{Tdn(U_={s3-x8I^{0M_E`vo^I zo{yWNB>Lq+H<LisRriBS>&-nKPW)Eve#a>)|N5$M*jv*kk;aod-$#Z`-?nCr#Oj4M z&TlHqXJuYWZ>(%_$XUYI$z1i%X3eWwp>u1y8<Y0hB+j|%&fQhmx9U;L5`Kns?g{Vv z!@vDhxBmTN`ptj8<5hmI{{L+2-pU`@*82PNmc73*@2Bmt4~c)~uPl$w<=0e8QSf~7 z_t2ZZ>n!r@Ol~|X;obkr>(lNz&&s!$sE{vvrb1xD=B~IkT4`te*0U(Gzps?P>C`y$ z%RHMjRffdmC0pK|ymjT=t6P)yZ|$<2TB)~t?tv+6mw$7v_!#<iUj6lihN}JlbIt^c z2LwMqeUIbl=fdn-zpYdEU7yHOS--*G;6urpw@aTsNq;#n)XBd>_&oEB6t!2i)%pAH z&#~CcB6>-R(XiCcz<%G&msf9wo%VdN$#CKZ2G32b!D&`8iQ4Ju#b^6HHgFui81`Y$ zrSwAGE%LSs>=9y@IaY1ds%AN?D)M2YI-|r~R+hj6c{j`+9NemVAVTn~?1LX+|4yGz z+}zH$Vd2s|_u0?VbvpmOX*gEl-FV~V`&SJ|4qea4cyB0cBy#ERujkwP`kxCv*}L>7 zPrh-~dES;9n?<MIiyk@rRm}7A;k!-gy!+!^63bV8nslP!v+Dg1f7YKYwd9KOy0D0O zgZdWFo&|l`1y`&a9wgMHG`cZ;+4=rZx%w^HH3ucXdmBvu$5nU9=}$=AJ*A(|tB=Ke z)A{|j`l|cdR1QHtk;Spk-<hv&-J$ybYHqC12JPEDJHIWqpRE05<?nen{q47jx9?Bi zefxf9zuCgQsj>G=?%Nngw%ARWR4;s@F}qIb9#^z=^4~khLT=h!-p9nS<u1dXl<LFM zThdAx!)AnL)_MppKOUlStALC7(JrrT;_3|&5&5PwycfD(;MQc>=luDI{*}Kc(l#Gx zo0HzSWACp=^>^mYy>iI#VbtG9%g4EM@}hXQxv#f6?{cj2vE-^_*AA}zcDl#Qa(!=l zL(T<;Pnp-VCTS%5l}XlW$LB1(ejt1GtgfH{^%-wo{c<okG=D7vf0s$RnD?#Uak2X^ zpF2D~W4p_o4_jDU8s)S<wr=Zqeyd=v=-$8Sg39hql@e!96bJ07;+MWUuU6xK_O8$) zt_kO-%`i#&bW+i6*3{MZO}SYc&VP5i%gwagw2Ntnn$g2wawnbdCttadU@d>%fH8ZE z%(eErd+g?1`?(l=q{JQV+n--c|I9jhc7Cffv(h`p&PS#p$7gSLRCsf!Mp>4ZV{<kO z1M8{3CTEs01n0*|_>?xtd8`h2tQELT=W6|n?ln9afh)yM7}ylbcw92eQID9}5Z=2e z*;LzQvQfqv(_iYUHm&_<SM%uWosbI1wg2;w|LSGWhZ6F~pZ?!nk<by-q;N<)e$Te> za>Ln?q5Q1h?6f-HZd)`tTTSO>f_BC~$)*C%PR6?Ptb9{H%y3gtyKpRB)UxF50S}Ij z1|#i-<}6+vKab852so%<rp4rTMM6ICt51mPTOXeIy>l}*8#AwP?CJMWO|%I7Z<nSs z-{WMQ<dx<3+Wk}CaTm=$u%Kc8Cx>g-+3b(ig>H+~;fN8I=R3-}T-M#>l6RC(-U?yI zrYg0ym)!zwuCGve9hs=V`ME4-sCUM(TyM3gr@C{+-wJ;9P>QT^`ER`3pd}-GhK*`h z7W2UjnIl^l?M&aMv|-VMMbq_jc2}RS`*!^O4ZHmz6CN|(4x8%B-Wl=tP~@ttL`Kod z)ocAuDbLxJ+8AlYY#AZx=^(W_DDv;zldHEWpI46L=VF_ZF?-4h$GfYiXZ3v#d(L(& zh5yz@HJ%F#)9#1f`MdYZ@%3gRHoq15Y?#B<w4}<Xgd|@3;lWVSd|)ldg3Ts82^D2` z>SvvpXpn8Ct*QL>meWt^bj4c=A&QrM$|uV<)P9;*y*|lu_R3iruYD%f?oZxXdnWT? z2p7wRb#8H2m>yhaxwUKk+FkW_wJG0U@87on-<#~;`S$bQ#{XS?{!QLLZR@l9Gml?S zpIx74xUBoUr|7H$7iNCUSp817D*f#93jXG62|+dQUi-HevcxZDS@wsg`snSeGYaj6 znJZP=v;XsiG&(MqU%R?9e64X*Hp{XXx2hOC-|(E5tX<6UXUY<V6MVn6l&}WfC}->I zaa68MTJUn4>55$}q7n&JUoR)|Can9r|GSNGQh1`>)<5hFR$o6C?K-{6K5cI)_m!33 zb_$gD?t9#u6Z=AM&GfDf_N}U`4zTD8iiE5Ee*5rJ*|Sx)+7nJ+In}&X{z#aVq}O$c z`8$GhWVxla4_sRtb@jPi(}Zcisv2fK$mMd7-*)S<jB#`_|4&oPimexCn9aGazBXW= z+v(WfYi5`6OV6ABkZXQ3-@Iqn+gb82F|5g2E0MohUG{BVt<K|JB9pFi*><a2p5uy% zE%4Jd@(HtCzsKRv#)D#S_f2b0>0i6SKz~o>dz%J<$bCxHE97o%4PfBAQW~6O7$7VA zea_-fGG#uZ{~3HPs{KfixxQW9;^`aft?3GmXS~XCr>*A=t=d}rU_Wcb`X29w&Y2pI z#XRo@&tK3Y_{&|S{q^rt=NCtKTFU0^uf6{7N&oscRaG}*o_j27p3&+lQW+9zd{cCK zMb6^Yt2eEl`8`eMcBF2UM2JV^woS6>Z$InI-g`7|iCoj|;Qw<Z9rWJ64E%B1;X-mi z>Hbw~H>}zpt6(zu#pZjH4{&^|G}*$x=GyTiN=(ctz7J}?YBDh2Q2yfDcE6F!KI)4& zw?Yr=ThH&?_8M3%^$$ABxWM|x(tA~kA7*@ONN+o;ZSSmJ7uU7YiCHp0YJZGz_1*aW z`!=7i|J`cR;1}c0z<A8UeBH{mAAigLk!zWLbKT0l3pX}zT_3w~9i#C{{V=g>SsAx~ z++QAfnfFYDhu5v&feAAcl_PiZ-(4^<CzRcN&cqi9hXkhnitt`+@2-91W>ewCugxNS zF>1DNx4JViRBTx#wnXCmnU(74f9rnvzxnyKx5n0(VPE6=yQk;>-NUMD@1MBFJ5awc zWgY9^v{FvyWv_zN<{D^ru9$Ik*Th$QnWX*siq8MxWz*?qYb|R~c~#BYtEu?&%Ju0I zGsDiBWQ+P$it^Shm}OL&HI3Woj%)vy>WM#2ZF0TZc6Cux!!LFFf0@p!w=ep;?bXG1 zQuZ%HlW$nepL-|gk9ho^jr#WWs>c^T+2vJxomnhkit3`aYpWcuC%XmC>YC@>R;C<! zaJs`3_O+tDSyyK$1f{sH4f8i{>It>|Gt;qVovWvBho;nuxwFFz<Ik!4Xfu4)(Rv!` z^=_tutJy1^Cw+38jrtr;E;lt<&Rpo8ssH1B?^!|d75(BDzFV+|=Wsv%rEoFsB-4qw zm!Ad8=Pg+D{j1~m-Aj#GpPD+d@cyg|*>mcW@GL=5OC~`9?xKThIvF)&ZD)%4sI|o8 zn{nhg2+DD_oZR86vLGa+v!~8VNswt1TWHS74-B~>%7zzb2~EAY=I5uWB^mpV_uK8y zp86<$%hvysY>U^O=x;GnnXIwu*eutp=^H~ELKjS2^)#sG_-4IDhm<=WRX*X^=6dzG z*qk44^i+%DY*$SD@@&Bkc3u0Mb;lc?J~8pV|DRiU&(|NfN(xHqN|!x&GQY#nmA@)* ztHLr931KNdwhNXo7BAW)v^Bv*B~0B{^orEgj?m6MLfc9bJ0{#My!J2uzisH&bv-Pf z9-Y~)C1`hEnECxv(bG#G75~s#aDmtQ(!OnLIW`zx(sZ@|rm^rc>+gH%Gj=EK?LIO0 z{l1LfFS&Q`|IM;S^tzko3ZGC_`HN|b;{0r<i~K!$aMpz{+zm?ezO3Qe(7sV!E#kA3 z=edUX<pp<(HoDL4G>)3TgF*1{+@l)qO;t<SzRT5wI@?xC&DJf`+OhrGI=yLJ1?7QB zlAHqd>aJ5yB!yfJb6mpY{lJ<fH8~}YH*xo=+C#4%9QeywEznr#R?T$0nvK``<xM`8 zPOjTCZ)B-_xOm%S)f>BMbC@#k>K_QpS-U+iwJBs}pY4RSPcsBGtd-N|@a?F({-xj= z!-4GH&6Qkn6JHA4|NQT^yDd9ovd4wmvu0n`-t%g?6LBD_Yu|0&f7a=JieJ;;g~o>+ zkvx&Sf5EB!55La46BpBXcY;sW<8xNtb805N)$REyEv3<!x4Ti;l}A|P*5nvjh6T%- znd4U<Tb^Xqb~fowPENhVhVydr=aXLF*}N&!@X~~Br%nEe+~bJl?bLet_H{<0rj$Ep z))!_WzipwqUmDfg_-~c4cy*mTIIl!aHdf?fQ2yixYf8hWpPV;i=AUIZw)ePayl>vR z<)GY|+u1i9j~LXptcm@$D)+bXq77-PmlZrKOx>KUPAufK%KQKS*Y(wNmswlO?%!0J zQ9ma$M7}D=>F#8PTqlW26$6K;Ip?k@$RB#0G`k_Pr~dRz*O^SW{@*xXZe+AM`$piF z%6B?yst4qH*t;igjBO7&!`b(U$4!iz!!x%gR5!u!U~0ze9W&WB@INo^c;6~(_>=vp zn_KlflPvM16WVWEwp%9HFHd;VA|LT0ee3@0Bd%Q&55+59JpSD|XS#!vyyL1TvwRNu z*7vb!&e>~x`{S36*S0d>m?WA`E^V6B;2_UmQTlgV?a!y{w-)3SH+dv=En;C@oj9rC zL(RK{#{VBBy2~b&{LO3sP<K@?O8lSktcsQ&6E5oqWgKxZcK;Uj(e$=tDc`5Qx(m^% zub*}1PI^0WuKVwqCbKK%3xDJO9=-2KRiV?XJ<?|Ke{LJq|A_|;R(`Ew1C@xGzdpvB zJpLinmUdPvZ%f1Tf(>`y=AM4J-QnNqpKDrnbFoY-ci6C{BP?%`L10MFqkNMirrx@{ zx~$%KXx>W?Wm=VBkgi(O?0a25V5{%H<*YnUk0jiy{a^CoqOWf6zFS&xU+T0L9d`}Y zI>xe+{jM69Ipg1N_s=@k{@=_0=GnKX&@wfTc?Q<DwYl}dEqPgt|1R47ejC2Sjjd;m zLDi**<eb_4xsFCEF5;c<&zzUCe6(iAj9I}O&wb~aw#VIqvyt`I>Qkj&{&Upo#T%E# zS3i9oze+69r`fe{_TE(z&#zvq{PybHnN#e=k?}KhnPis5Pko%(bLzsfe_I!-&VT&x z!oBqC*Q&NW^)QrKzIxFuoeipr2|Zoefe+68+b1>kMB{@=;e7#r^Iy*@ufDW?{+jgb zz8t3tgkohyPOyrY&HvBKwM1P_%b=ujZ=9l->7~h8DhzQ`EgyXrT#$I#!@}?HnR617 z+wPU`SNtK;xqq3v0jFT7<$+~l4!P^rN7wCiU$9fl<GV_M<^OF*C-!q3xo|sLMdB($ zPhov`pmXJ}jq?taZq2^9*!lB9^+y-4Z4$NE6xeq7l*;#S4O!{7;#({$KABoXJg*j> zx-mkU`R>;Tm-TLy?)dbvs_O2yKhD2@U)&`S#%Ef;`LtsCqsNUeE;OZvo6FVM++Gwm zbBjiX#FazI^`C7gX*nr6rLURy?Z`s=-7_ZM`F8u+v9`m#y?oCqmfq2pjeBaa^@xa3 z`V5Opp{2((S2@4A{%q$=(I2bb<&^y-Ypgs>GS*z0u-GVi#)93GK2`9}e&KlK@#FQk zjsKnLJ08FI{Qcjpwef2i3dLCdF7t|PN{G0)^Tx!dLY^yyf*G2ohA!rD$XdMb$~ON! zZ;$@3&f<LWQS?pW!Qx9_6&da|zCARtGb*`e*}1nh{HiatKKBM@&P(|HCV#6>?``SZ zW(*~l&poTzwY`|R=>)^fpPxH9SAPGIc4q6hjX}A-ZP`IzFK(+oc5BjJ7q{@B`}xaL z!oNM9eS}3YLab}$(zV@7x7M1jl1;BXny{^E`-R&X%BR*g@$TBO{;SoDtKR-PJHp$i zOXxmp$c}thd5kUW^sca0AwI<l8-K=_k_6{6hFrsRzqy|c`~S-5c(IrqI&bpUt-8Un zK6KGJttIMz&s8;Z?e9OdJGb-a+tX?3?o8+SZmhh1_x<hXJDmm0H8ZnbTin@m*Y56C z1wISrck62w^}JV9@$OtydicxSZTYu$O5S(&-)(Qc<>!It6_+0EGCsR)cka5G^}876 zpDRjTZ<)FOCg0g>J0okp*p<Y*Ru=ks_wDa(J8#|o_iNk3@A1qb8rtWL8<w2fIQg36 z(PxX--MUw|{H<)YW8$4d6X#oOJFIbeJFBitdVc)^*{K_(xCNPFn^ap(qpFj9&5j(i zxZ3)lLN4!O*E6NeE9REmlfH`eU%w!KpmNKV+`6d~;@<SGdSWEuFP=MF`3<9cg53eN z5C)z2+lOcWU-z_T{<g1~@8jQX5y**Nq#G5w)SThj%I<Tl4JsFy=5O6TWzl<EO|}9y zHp!?C)=NtJ1(lZPn7@9jvTRAv+DSfcH~XA^`!ELG`+TBwUC@Q=%|5%>MGTArJbf5% z<eYdCb+zbH?b;i&Rs@vK6*A0!)fBPxO#IfpUmHG7)pS!)+Q-2by}@Cd*Sqk_841(5 z6g;JKO&2yY1?s-|SSlLfexXlpM&XLr<}DlE9X`Br?!s-&W=Rh=7%kqfeDM3U(~Jjh z&ECDfcWts<v5>~&1(L@E>dt9p{B7+K|5>s9Jge6K{x7wa8}#1EFqAKnPxY8BYSyzs zo3%<odgm+N1Hwo2H~e0mv{>uE`IkqBEKGlI-ref^{hMEw@B0t=NA55rihd7aatt-p zjL!S>QRc=!qnQ0Me*b@+fBW-mZx!g=+YRBX|NZwgF8HtchO@{#EY8MI=KF2FzV+%s zeGyyLe{o1na7!`t5U|=~^w2fc?3knK*Jf?G)`Jrkgqb@fHcb4}&oQrUwQgNXgVrC( z+BXvU<^fCZFweYnDkNd|&O+7|6Fk;Sxuo+ePF`RY9LDPQ_Gxtf?eF`3*K+U8T6Don zA;8pli<FM;&L2-6-#4h_nrO2AN!p@MbIcN)7Tvu3^vdfy)nBx#Pi@ZGe)&gWq<Is^ z4$rSnVUst9g?3JyHD}xX<~dUfrI;iox*7UqnK{lDu}<D+sk^)&Y0mV;`wAL5=SP33 zzUSZ5H7k4v+qtf?#rK8g?zw9uP~`rYvpwS54E@<Yxp!TiCVKrSNS5=N|0Chpievh= zKbtRezxtz~zRj(2($racES=X^y;|nNw)m>D+dsulDP5N@IxXvat{VJbYO}{ce8ri= z!etDhauZAz{|{b#Dy#R^=L_Hc!p>{8@~?h(nES*VZMM#`We@mwnXd9LPUu%R;T37w zc<6%6(>ehS<LEDG%N!oHzHnd4wqA?TRwcOafqeA?hgBMrJ+p#*SRUxO85&71%UHy) zX`5R+v->LBeT8Oit3F5AU&;$~eAx8*{XwQR9}0UfCmw#)X>2`bolLb{@pVy`u2yHO zj6UCWEQhD;>HWnKxM%eYkEv3U^Gbq+PFhv7=E@)V?zhUVBQjy)pY^r{$082Q*z>?q zYsGbz=otkniGI>OIZ3UV4no3=>aAZQRu(Iqs;*!bS~*W-S48kb4NLzWd)My@;kp^R z*S$|g;JSEr^t?4YXDD!7N~&slGihZg7w5KbsbWj-C;2=Udu~wqwKT!vcDnWBV)f9M zC&X4Jvi}jjUH!|-pEt$vME$O8(ZrYg8s;iB@T)XWoLbtW@_618mou$pLg}f>w^fe5 zmwKNpJLj#Y%U*`ye?1Ik5ALP;gn7JLE&Kf~&-0n-Znd9_;>0>_YmWR=nBeTQP>OTk z`kfKlvsTy5^tH?84{3DWHP0k-{)S6kc2V86f}RKN925-umvUN2y(i)S!>0#MNHR=V zcJStvrfi1E@1p(O-%0kkaBCGOT2FgDQ)2nnCs*g6l5^@7-LSdAcl*<Sweh0<Gj7Mp zz0JM7B>J|W-O_{UYj?kpuU*r;qVC$C{~R%v4?fM()&Ht}_jq8ZrMlsp?`!ti->Y>? zI8g3UH1&UUgW2gqHixGSy_qda@3(RZNIl`cJ@x*!-<I3f%d^jHJ5(DVll+|Z?I8nY z$wKMr6Kzh;JLV>&A;ij-w<^%&^QA@xwbL^HryCwjQ?%F?G*#AftLyBE`|pcBp5@Z- zbK!HRJr|p|%CWu6W3E2`5PMH-;;pJF;S6gYY&x(?fxAOlW@+>jDLw(_DIa2NzZ)OF ztn+Q^|J|FDj@;XrFvay@LvF24z|Bp~=Q}4Bel4n%og&-D=My$(_vUwo(N`^fZ4+Wr zgBPXtDcC27sGMF~aV6*QoA>4h4^wlL_Rf__YH2M@QQ5J|pm^2+js>co&Yg>@7-f!i zoM7-gvBopWFXmeAmMb&8C%5Vazj~}J-e{>^;%v2;g@MO@-43&3kLSj2olzq3!g}%1 zz=*l7SN{~;xVe+@<#FZj^OvZ8{mJ@#`?oUrtt)S2OuwP`=;6hr5`*0TsadWDx>;Ln z(^Q}Rt0}nqsaIpi++Dhls$Fj{{`hyV>T$<XcAv({XRd@uT5^fL-dALQe2U7Cg$(x0 zED}x(RsRa+*!?;E^iOyEjnA*8KZ6>fiR%sb|4)B=;Gf`IU&FqIj~L~pt7hNcpZ@;; z?DMa<r9(86Cq0}xBQCf8lCXPL@>@oEVYTEW{#Esgd#^DU-pFHH5_+<7MRLF2>F=jn z{-18m*J4&I-(z{@!QGvDi;{mnpC(bRvRpRxfRCcNppf8`e;=CfFLrdDV}9$h<&GCe zzgpe-nKJ*+v)5&}Lpfh8cpYo_+Lm*oI&bw<q57n+t3y=Pj+HgIUd?e2p8CiA>~zPK zlRkTGP-*|>XnOH#^P;B>hje}|%ebpo$NI{McU!aY>q&2Z{K!bS6Fv1nh|1(wivCL& zt&WyXjxIf$H}Ot1H$$!2SA!lY-pv!7)<3t{DSWt8#G+ej>fBknzy1ZWeEU)BYM?RW z$L45FhWM!m#4B&Du@w=0zd}l6>rx3}mH=(#ADbPvSSuZz&K`6@KjZh#(3)d4M=#dA zQ;5BBiP^!QLv0mvvs&-@-q&%WJ~Jk2>8gI?&{Dh9adMu-j6XX40;g5hUe(^|etWA+ zy-aLE_EpOa&Qm5qECN<sZfvfX@;n^Br)-_X<a*29RJ-HpE%pN~(_6NlU`W4uL0!Qi zILX;d=jf#wEWc}Q=JiXwKe~OwqutXQ^g~}hmRWh}*ehoyhbKO5O`5Fh4%Bax*flTc zPn}BN&iLi5uI2|CB(gaKF0Hw2yZ8LYzh@rg2*&(+z<VmkSZFu<^RUp3`|39}iN4`A z6l3fCY`oD&=^@Jp)kFi9#;jzHi_7?AHf>e0>;IM{`ge{4%gRgYclP%ep1!!e@6?qg zM=GZMP<(F99HQH$v~fB6>s<SNd~r`j<;B-Xad^5OlF=3Sawyga)b3n+(Qfh;Gug%$ z)3O83-TIWZIjcG~^ZKJx@1MIqs$4bYdP${zL&Qv`1`Bn)C6CH-XKtN7nJH+y<s#8| z0l%B<Vb?24*jaywZu!3Neo60~e?|g7X4m9g-S>3Ccd=WNw_Gg#ue3UP?fC7T?}N_g zc6447u%F#y@>%rCf4fgy|MkC?DnD)v=3q&falmfQUgmE?+7q}oeC6SckeMP9_U5V7 z=Ld)5ep>B%cWhen?K?T^cuO9BPcxh%vSfCHu<+mgp+`>M^Y>aK{^N<_{;Pc+tA8vP ze|tXKZ0YoEnW1}TuP%RE&1-Y>?Rx1AhYd^j>2-hqxtR69S6z>_dS88i|FgZucwSsr zX35mwRyODQ&!+9UXjx?F$t79ES|GY&+qrnD>a(?T<@8MIwsr-GY(KEyLiqf-dv4QA zU&n;Jli@s?F!{VQJF|}~D|cd?v(e`Jt9+ArKSs@+zUO7S{>t^U&B7MVGL6tmbnl*Y zc;WxqYx}gLWP&?eLdvc+<vuz8rNHxwvxI?X|8djS4RY=={s-lvpZsrj+wc16s`{mb z)hkYAB?dEZSvPIhgDeK-)j5prI-93<#V2bYkbFMv_4bKx6JE!s8-*|~wmdRd|Kzfl zTRt92x{|W=?aTBDu5DXuk8Kp~yH<Q-Tjat6k#;EuM7m~`@QS@Qy>RU1o8qR9WhoDG zgipBMcxuO!aGU4D<bSPioy4wI3VR40T0K?d--m}ck~dsmxOU@({fUnza`CiAspQ?4 zkFqJPElm*gIxkwKv*GR1-Dh9Fmj3<g>hlX16+TSSnZed0{&aKU`7HiWZg$4*sVaLm zgj#$*cx?5KFu#ozTys>8KAJq~zed2x^%~PwUV44Pvb^ouw-1M|C2MQ!_}6c*U7r?t zzBcu=V&mBiXTu}Cu`w2b9+pSe&F248FxUQHF=%OJ+<Arr<}bG1{`=<ew2yy-Ip!~@ zI;+LT>~8h==?{)8+rD32?r~w06~l`ojz@c+a6hu-<l1F7>tu7@`YXG4$n$0;Hq35a z@Vq-HQ~sxknu<Qh>a;AbfR?4JJi-k1j%T*Mu3=+nP!U=2RXDx1sP{mtSEJI66W{jU z|9^P?tu1?(Zf@XDRgm1p?78>-{6DX<t?lKe?l}CqAZLQ>)3=wp+ZhhNU$V+cYQ^gH zw~cP3>ddMW=PP;FvC47&yo1GZ8DAI;6&z2b`3K})_@K3Vc7<=q?(=d1N!vcNC3!Da z|M+(Q!FdO&Ka@vEDr6t5&%afFeBH76x8A<>&&|6!`)HKFj(g@`_JwXd@2)m^hdo>9 zx}5kuMUOmwd^*vx)+OPPq4k3P@}+64+^*S6Q?_^a&75>kQTzU_6Oo(&r-T%%f=nOW z()`enu;AE@2kbYjpI@J2$d#VG`=$H0M^E?nKM$N1b~j3X$NkzT6O7##q$jNUcm9?z zi^+oni^KI_+ns(I<#bTGW4GJm9KLojjyKUCtR7hIkTPn{WKEI#s4r5aV&F7OdF92x zXg@BUE1P+&b_xmIS2xo*(PJ$6R)MKYOm%6TVYEr{J?0y0TDTh;?te*1nVD0n=KI@3 zW7fsnr)_0AeP@cR2&{99XMXW<KL5o15}qO_?Z4H2$w*V-G?V#J-o?;<P^9>1(|Ymr zvp=HF_OA$gWVf)zx0>PNGN)h0i|6-rx!tQ|En&7YRJYgIxsF9r;LX*}kmGAw7_TI; zo%DFtJt>U!xSrTcty3Iajiqb3RxLd=XS>flon?u081MYJVYxiKPcFq$`ndK@!@NL8 z)9RS;y0S@m4Bw71Ijk&Gv<tNowx7OW_BC_u8@()6M>{l(oS9B6S}}EA`uUh1<&#{k z0luDH-*bv(v~O?Z&@iZ6Ah7!XJ!WS2<Y@6p-@FbSnQR_VC;fx%fl2BXiJx}o7*|Qm zRItdNdFl^?*y2yDZ~Ix6bvFB^7--Jy{5$7_$tRZ6ZzrE$+s3~-Y0g6r)pzFklDFf6 zZ)|I<ydm!_77#Nv<SfhS34cx=U-4e@yy<4I<Hj>ZUQEuNxISjKt8U@Hy-F9P8lF#k z{l5C;o9w?Qrfp8$*KmNzL+6;vqsj?O8#3AALce|0<xesDxnt+YrMd0px#s(>YW>T1 zJpb@Q&7t>u{_gwx^8dHm-*199n=jX2$oW{uYW{&oJZn;8kGcfSVt4qSGCh-h;kI|r zqnNT5bj_Yv=_(&~Z9N0qv)8&uzO=m*Ti$bENsETMt$M$9OvT0957J)lVh~WWc&m`< zH^-4*wdDUF*9LE)&*$=@d>7m}`&MqUwwbW|hMfV5FV0vp&Pe$B>BJM^^G>#BT|Yli zF6GWuPR?dDmDslB=7N3ay#mgEsXQjunRkEQF@b|Vo*UEeh{tQ5{Ayp_=;NIdQYJZF zl2dkT@g2S1$<5a$$GSY=`{KOp^Sq;TUir+=IhfJ-t;?`&fyEs^g;2-PxejwBqGs7R zEW2^;O=fn~j{{3IO&5LEj(%Fgy?yJ3_GrVkep_Po3^X3}-cajdi$3wqJZG;}O!F`P z%VDe&p7b)b8F$G=ZmGXz-t=(Y$3qt~L+7}BSk|rl=te)2h}Cmp1<u^XHG3xRb=kcp zNa)VY8Hs1rDgvKAdv=ORW)XLkW*F~;S&IwTuV4SBTi@=o)$CG7Cr*C08P^?uZ+Tfa zyH$1GZ-FgG{vAE_qjt{LXNg-<*%hz&#Hw@631VlSKRs!ZbK1uh?*&cPEOcEn@2l~< z8!;87wNv~;-=4I4{8;_vf`}zz2P_z`@LykT|L^>pN|guZ&p;b@n&Te-EB{~UJ?no* zaZz~aqvoKg8g-BVTdJwDcwYTKQPie>;ibJnwvs2mc^*4Z-8Jjro=m@+%};!bA1rsx zc+AoIX-VbEH_tE6(BJcxWjRkkV(NX<RnrpRaP_WreY#(xaP_M~?PXd!<}ffcFZi~x z>-)Ri_qX2`f4`;X;=wj0UvW+k#R*TA*8Y4tckj;K+xxaW-dpaL_1j^Z!~Asrsuibp z#w<2;;C=l5N7Qb^sjG@7HM=NrK25&3VD@DH-z$%%v3Hn<GRP#ldj_f`=PTzjs-@T2 z&VDw-AooD^KJ~A){L+1Kt1iap=U6r@vQ0nG_ibJ6|K0To{~x^HlPmxC*=sR{y4-H- zcb9G5Ie(h+&FXyHf6MhkK!f-vzUSv0+TIj)Sp{wU*SSK))|#2|M?s*BuGV+2RozWm ztbS|EL^-xG7BT*f7wxaO$5o;Cmf=st@^}4fwaWJXU-@_afARM>)#Yusy*hIIt)XnR z%v^)`=}GNzlF>bnI{xkBiu${EZkpYby0<R-zed){zKFMdTx0Q|wDjt#+})fHydqcK zy*oe0QvX(R=P!2c@0Q<AZ;H9L@SeoVrp2vV21k3&SlzfHX`oyxy=#ZWWPYp1E5znn z)){|GPn$ZksaoV%@+HZ_6%L(oj=ScRH&{iAvNwitxP>#BuDKNw_Q&VEmDc?ZH}OUX zDaOc|DMp$>Pa|eA=+t!14KP`?Rw(DB-l7(7;iVhTO@AW4|NO+Mi`hQ}dFVf9_nx?9 zw`m90yr%Tq?>O)MC|yx|=sNF%QyU8We?=)tuDvufYHNPT)2-e`o)b50b}hXzx$o>- z(R0!(Ub?Pz_$L*z_WfkZn*Z5PgqqSXTF9oH7W~mE+4Oz=UA`~-=V}T#aDRKVh$ZpT z*06VlzUduZl9TtfJ}R4NoV@m1>~sdt((sV$Jb8cK<cP2OzvR`N_{Z}kSkGKN#`Hij zL+FeW>;6s#gO@7;H{LC*7rhm26gj2fJB!|`ncOWdj6N)r+e(z*t!GfJ_1pdb*|Sp- zGwn|LT)e+TZ{3NFMUwlxIh!Y*J^G}ehRG(=e*5opI~%!ovmJT2?QNjPOWP~2tvQxH zS(tJyp!-0uN;&TWnf1M*mj#^~zNGR!vUs4j`^n?`x2_-mbLiXb`<v}6-oL+H|KYOy zt&fV%N9#-4f_7gIo3JIm{%3S`M#I~Us#k8_F28m2Mht)1zW-deOt#iJ?y6T6Ug)=G zLest1-_ExBghs0L{_I$_O`YX+(fVyY6K7O0I~;df7Vo(FI`6UEb?SX{c^IQ!u&tB1 zylfwD@vTn=d!CdqhzQ);x|ZoOYt`bQSO1nadOr`#z30Q?zr5`1?!Eo-UrV_jH2Nqy zSid{`_MVlu;DXCDvvV$X9hkP)W|GmlCEq5NUAlhwMA`$E-Yjvp6At_1%Mu>`T;a|% z`wB-PgTO7#dy6uJioaglTXpU0%7lqY_jWy>e4RzjSo^`&m>Y=<50nenMmKUYUdh{S zpQ1FIGvKg0{}=JPdCXJRUV6accrnM{!R&3m>IF@fcRso0Lj8~H(u(*laInrdek<ix zekv~AX!;3_897;<|BwBhv7L8LpY5_o&1uqX(eG09|L*tRQW{v!@P_&R{J=SdWt>-M z^y<u-ywbn(b!2&xT59a)u&X~bA~I|=za)HP5s>02uCh^7+m*$+?|*OLl8m_m4cxku znWI=`EOzYPJvo;9VEoOT;EN}}AK&15=b6v#gl#ic{odMtaLyN=N49F6N3!%2bdSnO zG6m@R?@RZ(SKe`Y)jY<HZSHd&4c!XPbTMoao_^>1^aJLbPWNr;X9}OZWx5id+^dgU z=GFfMk4RR4MkE(pH~9DA|E-==-W`=w7VHuIvctJj(tfIhM0Ke9Rk`<blS|!CXw__F znVT>r^6%*vjM<7;<^=53;uhW&VCOEd`cydALa9#XYbuFiXQF(6&5OLS=wXiRni(#i zT|cdFFmyNFJK<_W%dEDO_n#D$=Dx50kbJ=-arN9qrh#X}i~A<*-e2|gnBD(B+-K`W zgBcs2oZ`CSaP^B^%`Ro9NAV$R`M)`?2)&+n<YfW-<bZu&on-$!6MOY&j`N$VUwgin zBua$sR?nAWwQzEC43Vz6sUGuQ;_u!?PaR`2Eu&v>e^BY~aW>VuAoy^n<+}JkzqG68 z)L+)pDEFAKdc}>{2ONFHQy+)K$9-9qbj(J$_K0VvlHc?r_jQ^IzkL^5oBMFZx=<#& z9mi@IwcYlzM>$NnGpmWI_ec`|onI=Nv8{RPYRxlVY`CRwzia#BpNprh-<S38tw(!% z##GzN(BH=<n?B=NbwHDYzr;q{knfgUG-FYB<#yel_oICbY|I|K-uL%oCZ}o9%R_Sh zInwf`&mZ_zDkV*Ov{y6YNY?(BGx=_{xBfj4`11WNZlQLUO?yR~t+n`gEOd_WR-c^C zXeufF>yyT}w%Aopd)PuPoqA3*cPcgLWh{7cS3SD9_Q7<!uyspwe6M}|QL7rZRAP}x z_s<Jm0$=}ImCuV<S95QACI?s0-mT7unqHV>FqVH@aBlVLV$m5dzxA%VdPiMZ!k8h^ z>*&qR3+k`AUft~&ZDFXPGts9lYFkys*IJHel}REEJ?Au@U5S3lKL4sH+tMY!=e-TO z8^8AZ4|Z>bv#Y+n_DQT%nlZ(WdELV!=Y7MI_>FgRNomzPztN88k6EPgli|Ej^Zzqh zsr5B8lND_*Dp!cszFM<xVZF2`Q>&QeB;93ORPG6VJFrS+22*lK_4-A(qVIcObj$U+ z_lvE!c(&3H-UXTr;R|`cT~Yh7pY_2it{0EGBs5>2FI*bOK3R8b@y7{FE?q0lt|Yv; zFO=*)J%>f&k7U1Y;o(xn4RTg1Ja@fMaCCjPZq<^y!`D4o%nTo#v%F!OG+XtS-Io>8 z#}lniC&<)ak9$*h{a^q8_U~`g>#c4)cCY^Z;<A5krhUEr{!Qoi|C@Su`t>raX=$%- z+s5?wO}<f+CHndEbswfvHI-p2?%m_8P&A!ieJua*P5x-(t;&XplYPt5j_NJ^dm_@> zwSni`GG^ncPL)^7Y-c`szOhO!w<1n(-MkY$j1Bs?E}u+_QQ%DBd|&AzeXwU6)A~Q} zze{&qTzl!$jt=dh{DofOY@L$J>Oy`sI{voZ$jW=QYW_WDx63#6Y@goLn_4f-5yEN3 zlAwFw-jrpFRnH0^xyulEQssd`3%76bi%CLxZ`uQya_;@wv}tPpzW8r}wKxAny~vwj z>%riCS+~cE^&}(fk*Y0+P1QEc$gDrb{_@YaZBy4hoLsv9<f5+~3ah>~7rw3dyD8VP z^7z8V_kAv%Dk#V-FpQD!zCQ0^)gI*s*@_p^ukkvb@}E&r`*dsli4Mi$f{io2m0V=& z@-mG~Wq2uc@Y<DVDWP-4{p}0gFVxkSAFwM~aG$lK|2R9xzn>y=vjSUY?vCZRoqPD| zw#NVKXJu>tm0QHRtn4nI>+QHRuac_{f5=_weMR`S_on%6JKQeEDRVE#_UD-#+r{92 zbfT}}C%5$SW(ix942FzFyjQ+okZfvYNt9p?Y1|^_)bYvHvsJLk^n%%s#ijqA{7*W+ zKK}@KCHkJcxPOc7*WP|;|4rrIWM_-!z^UInwk;~(e$I;{!Z2~_+}dR#lAHZFTQ>w2 z?~AMaW?r<lEM#ZGmzO5CE0+eXJjTekh-uM;=%@E@-|v=*3NjM(>~ad<bpQE0i6wn2 z)I#ShGFrQ2$=+pekJbG+EU&EL@IWzeQHz|1;`*}{b8naae|CAj?yt+MGk(1}sB@}) zRaL8Tgn-CSskPi|Pk7#Hn;O?3S@dSXBkNnQljqG@wEyEO!{#X>CtZAh%`q0{GQSi# zB~ztxk^c50H&-vLJiO0xz21~<dHcTY$nP(l6C2o~lDwq3S+28@qh-&IywiVfy!*2K z>~Y%#?VI`3*=E0B_g>ZI&Z_1;)5^Kv;@pQ8lQwZ4y=f9V>66dJ`S+G@cl+?f@r0j4 z(9>BFEL>jy1Wk-)vaWjb`}EZtwgH+f^+A7D962Tt+`gzh=;#$m<!olNx@0^3A8)Sy z7xL?Mlw;~U$fBWo=EB-lMQSUbr*Ud7<a+b{@uAqa$!2R$l@}W)%GxAYY-M=(Z^w<A zk}?K&yEvHw)_}>$EMZeELU~*EOEAt_V0G+-vKk-DUY-W-DJuhOZM7cC{g`8AJ8^MC zKx)&2+nfq~EBhFi9r+csf+ssNnE#1EE3@s=MIUat&gfedBooi7_4tYBJeJR&maJ;G z&+pw-<&?YU&)L7O5AD@*JbNZ+Jy`sGkN7(Nsu=drH-CON=d`@mvk(ZKaw5^pOxtzM zooRLFlx31Ht?QEeu-Z7vjA!wdq_83eHJ$@mwTnyz7xgkWNPg#PStN9Q*SC+!k)E}Q zNfBQED_^C%ELh#Ji)HfR89j&hZPj|TMV;eD^%+;mzAXMXBERQw+GPEIAesMhjX@dz zW!^H67ET2X$xYoq!u=N&Ps?kwTg6e(QOj1i{`2I7SqZ{hZT7DJ7Uj5q3;(KXwl{@+ zyhOeBxNq|?m~4`?K<b^@0X?UcGJ><GF5pV2owZ?yZ-ZsnCy7O&|K_irq|eSFzSXVa znH;CA`i31Vl+=?%R1;4A5@Fvn@xbb;^IMOq@J!}czTgv(mRe+SOu}LR_SJQ<8?+rw z<<(ekL_VK)K=k94z#g5$bti<5&;8W9cgJ77C!hXx|382I+t1nO-xgN(POLlrjpy9* zw9H#pQ@@J-xiHI*!9>CD`lL5&wjQq9eLhZp>KA*-``JwT3jG_Ja}y7#o4E@K{EK+$ zJZI~}lfKMTgKx;ZxxTh=%1nFrugk7qXt|&wR-a=mth)S5b+qEPsm6sLc&4dW*EK$P z`_f0@y!(SH?jvfOZL=d&xLNxq9$NSBRpT%5fXCr~CRg>_2&-gOtK5=de__u4?z`hQ z#mjv`?Jw^96*}J*|9I-tzw;axyKOpjPxWSj@#~Ub2_jap@=d+k2iuQiD(1wh7`Fx2 zu)LY-DVk|0ytzR#=e48fUIwlo%(pljJTB;3a+f_g;r{E-%x&?Vs?jP}*0pZlzF7B# zu9;Qc-L$s4WA~Vjcrxl)&t4sSJgwS6x+DH@QC)~?l$BvDb7I3jb}qJzml9tr)45H5 zi=1KQ-u<HbvnKc63+s>F@Y=vwwnaI%r*KMav`GB6*!@NE2|03H?A^Az<PMw_J)m|Z zIdYrwQuPN%kF8su_h$9_`qMwW?UvkP-BP;IZ{2K{lHhCa^{leHua!(nFxu~D)*XNM zkOd>pgk=4uz!fv(o4>I<HsSK=_7oQ|Iby__uwk$MS}g@dJNs7?k9j2hH0tEN<aa9W z@O1Vcrf-+M<^NY?`Tvvnw?Dt4|5vdw>{DF-_U-%s^N*kX(B5}$^VOW>HFky{H%P2s zwt}a2P8{Qbo^LBIt$Jjhrg_b5`UBhQ-GY24CjWd|;TG`Jb4_=}&-cpaAOHOeeRU&9 z!2QDePNh}6Tsf`lg7^3p7yi9}*F!wuhOWTFm8+KD)LT*Ndyy&a{oe0&#y9j|FzjjH zYqYazqfX-=wcjruub;jD`Ss1~7^hmVP%&0?{9qu`cUNnt@`kH=SJy4jKfXdTY=(cp zxv~wcjJF?(iB>QFmFzNaVx6DX(r^y#ulz?Q9bo<O>%~tVbLkC6Z1M8pzwP%Oyfy8z zt;oyk)2=wr+{dEZZyPV(XrLCh<mdhEPpdQfet5(=iU##4lpUT|$&od)w9v5MbkE)7 z`qnr*{w3Fp=Vrf8K2xRkqMy%k>7}{mj!d!s8B7idJ_o$YpRHZBZMV~>#|JuDcP!DG z<@utm(Q38unylhyJ1?ijax>b#Ze@J^@SAK$<g&MXqK^bldcRuRb|WV3e#%u3*>Bs0 zuY627Ty31cPLpBlmM7oeeSOWQ6w2tBuGXNsDq1vQ*7@J6)=O%?)(E{=P}>~SaDe}y z?zd-~g2cG?$!)NY>QGoFz<p+s<YSKyRTB-AJm+t)j}+`YVtiXQ>G3QBhbOkx-JEL9 z3@;wuI4BjYZsj{US+qT~d*0251+71i&EeU!b;-o3;?o-D1&3r5ztDD>U$v=QOp#gc z{q)qORZgsWt9h3jJ7uvnNVBzVaOAnNpgzE&R#EGp$Cj?9fRGa!73{0_I#03d;%YRW zIzjQ2$jJ?Ei2)P5raoz0RA{@d`(FK;RjZQh^n!C%FvU)`xa=6*zjbFo{NtZ)T8%H2 z9>-mMlvDdBb^Q?y%kF)VI<GaJ9nQFtIq@9Jy6Ve^wnPUM)E;?MWb^I0L)i4doXbAH z19`ed$|9aSOg2++(%5Kv-@f_%Uc*dz3A@|ZxhA{XaLA|iv@sVvH;LZApTp^|+^2gU zip$hEj@{U~mNS==qhJ+(eMj7%oE-Pfrz8C)?%|SfkPe#~yW-W)RH44V@yY?ub*lD< z*O%oqKbG73<<L407sFlJt1{FYb<;(4yw+LAPD_41BV)ByboZYde%W)UOyObiT{Np_ z-<P>f^_5m%cA8sHyMOd+{g;y`|E>Q2YHRJcU&+-0pWZ*2{<-M9wPt>f=K5Lv+19`R zi2l3r=UCF6`Rn)gTOEmbz;I`;uZm{pi96fZJv7+z{N3K~nZ<YWUW&HdE!cK@X7t{y z{USG3?%HR_l;y7V;rHDi?|16vd^dg}S$Q=6-K@~+_kQ!Z-I$&~d%d^)9xM07OHUNs zxGrP|e$vX`;a66Z;C<a7%<pc@%GTxz^<sJE9bXD}W@_&a-^eEOI3gqcwASvI*$=PR zxqPzEi(ka?AhcFq*2Ca>PuK6n$5+G}Ht!55PEtKFce_Yg@tK3k99t}1O2r?Q?3v%R zxhPF$L)^9HQtsypc{!FXy|BDP@~i0#2BzKx(uLRN)gSq}Twmz{>-<YIHPh~%bg!Ne z)qi2u!(S|Q^{sDuq^j8F7S#zRJaL`AkMG8IjV_KY-_zggTAwSM^FAfnOl)d(_cwvZ zCzhYG<K5SP`|Bw#v-j6~*79vxn4*^Jdr)0+*{o+Sy(~=~&ikBpC&=aBI&XhW>2bY+ zYDAb}gdfZNRsL)d25wQyg3haD@0E=1Rlff4-@kd+d94)^j&g`NJzwc&bJ%dM$!jKu ztQTTEf26LJOth8Ul757hw`^JF%@397KR4dFYg=#TlBd3V182>C{|jP_+FG$(S#!)> z0_4k998Ge5^v|)o=Y3@B%B-C~3+CGYEUvEmyS5(Gr*61@`u+cWyO`6z<}35en)&0~ zf^A)H@BeP?zQwR?qUdAACVA&c?f(M)$REG7!?@VlxXLNmbk!-*+Rsc533vRQN?nhx zb}e2y^+S57tbvpN$$tmxUIu*YZ<rGLorTLTO0el&-0B|t_no3)QtP(guS|Sz#?av8 z9O9GqHG{qRjp@=$Ojp;($-aGeRl12=@r}^p9|0M{YgZXveAA~9aM9zCgrat*>Ds9p zJ+1%eZezcY(f$8+H_vg&kjoYOXNVjKXZk9?{pCrwlL7wsmNC0s*<cl8z%RwQoBP_7 zrSZZO-+5k1Rov!v!dJscAfrcf(&AF9qKiMY8u&W7{srFs{Hm5&dO=42K3A(tUu(>~ z#jCW1S(2A3PMWLYm80@bQ$mjM#fqkt*Cwmfw&`p;a;5HEW~u39uNB=_s=IfsG_3pa zrr^oc_u+fkuT0)P@v)HLtT~=P7dIJAP6*nx{l;latqnhR<odtcBlRY`EXU#W$H0b3 zXNz7iUh^rs!}E*HM^T_u{_y_uFRcA#b}l&8{XVoe|B_0>swZpMl-aW74lbKiADq<9 z)%WX!?v=Lm*I#}+9MhS>%yK5EgYVe;m066_I)lr@+2m^WOcW76qw?J_Ih$jbsOodR zd5&}coly}#l=t}P;w3A5e50)2R;m<ToaM;C@mfB5$ETa0f2la71nx~T?fAbvi{J34 zkJk|<7R79pDTfw6S~YE+%7%*><`!w^t#W6+KEP%0)-$mw_9}P3yUXs#$8C$bx>U+8 zO5WF$>b=&oAcalBi*comEXOy?STWmk->s6<_U<=xd0A7tNn=kZ<8#(4stm6euPbY3 zE2`-Kd~@Z4?-t6EkInS2-&noS?HF(M66J-mf+EE{3y&O~!lQ7IcN)hv-(1IxiB(JP z22AiOWBZ*uQzR~O{i~IGk1ns+Q4#Co;aC;)orUMY>2u=s6DsbDyUkDvwq<6zu*5Z- zaj~ao%U4aYh5SLRdkXg(7kav>am*B1$$sJA&g$-yiekChb#li8tIZ@dtfp6VB|Y}6 zv|VY$W3`<n!uJ>N#0-^?HK9ANXk6H;s=xe_!-=o^e*RE?Ch|k$cIjWCTe_)xpU?EY z^mFCJ2l+R-8f(t4pWXFUFKSwq=(Q_;N(;`dyg2ojL~5nc^?NLGmaUS)g?+cGo%2^8 z4q=&*)Afll=0#KT#m&BLZT<BnAJ5#XNvQl#SXCaiy4CK^+fr5Ij?0o9x6YiEU&MAX z=h{mdUD@WEBdrJB>h~%}NWQ;3fAXaJdD_P7@;_v~>8pKw`sG&E;?}qJYu**ruZ%ra zDb>zA>GPi17NP0azy02|`Rf-224!u{l4<vJCCzzkQn=03&Ix^M-~4dXjLNxod=ttV z-hW8HGxc-e!MNTnb#E2>9j7_ont6`JQgfpJFWJ`u0@roaqSt&7yegM^+sDrS<ITkV zYuwV#ocTV9x7&>I*RzSUR!8>CcyzgYOZb+1Ta26Q%o(!x?^}E>Wdlpl_U&ujCU2E` zvqWpcoQO92+sxNY9<PbLZF0xN;PtfMCmHwN_#eiqw<_1g)v$iw>h3q&=G)5Ty-43w zI{Q-VpH=n$w=pvC=i1LJZR=`1;I%Dcx<T-lhoNuGZ1hE@Wc7bObLuGDgLB+(j|4Z^ z_D-)=HVo%tZ9DMsPm1p0^F3c2wdB5B+phA=)yCWYGw+FF*@<=!lX(pmMQmAg)uyhZ zy5hOLwOsvY9kw6a|A1y>nBy-0W3Rs@blg66FVp^2_eD-#I&?(H<cJvG)GOSt9n`~T zhWnqoes$6P+!KqdKGtk2P-B(7uj%t;;V<j0TA6wKm!+7vMmr`Yv^vyJ2z<6D^1_U3 zE0*<7-?!c%LXAD{igVu#750FW_l1w%kp24m{eKBjJ&XHC;wl&ImDFK6E+i*+{@d;N zS}((Ct4@7grLa9GU@g<!{S%7Zqm(9ZvoZ>BKDv{eYZVhi%dZpjbiy6j9PVi?(_J9B zdG%NG?U$Mu#oe7YY!H%Ue=7D}?fCMnc)dlDRrU)mKeR0@TySjVf4)5nX4!Wyl73;| zT*;xf=#kga?2sL+1=8|`IkY5rer1JRo1V-W=Ip-luhjVq0XMd6z58Rw`e!_1oyP-S zc-lUi=<_;vhU<(u)3p9v6chL*5c-;<{aA}t{tfe8O6^Ja^OmoE%>P|=l}u;0d)Uz$ z!SBiX?CT1%I72^vEf&-ZFN-&x+%1$8H}&A8W1?4Q)J(L{J^cOFg-L5zlZDb*-w0Y5 za;Ut1<Rjp%ylT!th6`sLmuzNwt~B+lOjFh$yZb$!X5TH2?`6%MxN5h>9IFjdAD0CN z*M5;cmY+4>O=y~mOvie|ot{#HE8?>(A32sKJq_V|>we@SgQQ2TzuuzsO{z2gt~tOG zDtzC&`gPYY&jajf^H<tm{691F>PPFBx=f;GYQGArmBgh)c06~gZD4R>shYXW@yd<v ztk;T-np@nm)@LmbxOm?2(ietL6B%Y{EKg8*Xzc#@Oh%mbs{0ngiyX?V_E)7O&bfBF z*r;*6hmtePRMCppC+{Z+-dJ>WaezImvt-e(fKRLv0pFdb#3k2jZnboZPY79^UOi1h zKjTjGy}k?IPQG&LeD(ZUsT%jSfb{||v;W+g`G4+=Kf($Di&&%9lxY3=ex3U_I}cAt zvTLH-gx$=|DOppmzWpJzO|U=SbLRVliMNGLY+^P({N10;U}qE4d94S1jz4yl*(Y)x zD=c&V5U3FB?-EkG-b3SW&c^vS9?e*A>TAN@CW&3fc70o4%NuAWERcDe!M=NoiNVIT zS;`OXzWyyekbcc0Wx<twmv6?+d@?=K?E9K0K6|$bX|yb=xm{oS$Ravjbgk~pxZ1Y| z(t=g5eh+{4gu!o*#ieVjYnL^D*~WF{>(&CXo>e<DG!v_*htL1qcv6>bmd!lfW80SU zxy+rf(!J=Y^=0Pg$2oX*Xe{v;(XbL`nv~o#bH0Ci-PF>i^F_;KOj}Pp=`!ZGesS4m zl|)9?;$pE!Hr#tAf3i8~y{VpU#q;g!b1KaW-&DO8DX;lDu`iEZ=y5}jnMi)6R)W`> z4G$;I$kkzB?zoous^9+m%DcO{&+|!S?_nxA%(7T3t6WU^h<Fy~)$c05Pkev);v~y_ zqn>Ib=0C#TM{JnPo|^CMpP?b#6ES7UYs=hj2Tk)%uLl?Qr5@vyspf8&`CzgF$BtV` z3+G<GeZN^vPb@Z_iEV*!*b=|0YsYM3Sgx0)&7PF6x@BX%gz%BNzVw~fBdw!1=vAnl ze9?5Dd#|8KZN~Bi8y~W+dYF6r?Y{KefA)$^Gjli=H@Wnp{r<Q2YmEGO1$Hz}o6s!l zzf|={uIMqxDK%Sbe_plzz|T8B>-zQU->zPdZ>r>)y~<4Bh0_;J)kw4alz(dv^?cp9 zwfkE3rSzE_W4kvtT*$O#Zq)ej@wT_jb$j)B7mroF&bsyLWy|05$6jiGsg&3s6{1qG z+svHd^h}-2+_iR5Tl``qcATB0bKC#=)5V~>boO6epK^Zv{;%urUbX*Gzva~1`3>iC zxGvc?mh#)})~Z{viT&@sQ$ISap2vUY3KTmlR=c{N=h5H4T)#E<ZhG6bT|_kNSwZ0Z zX~9hFRz}|rv3jkHb2MODb*oUgT0gnw^odj7Uvcd1UvSz-E_?ks5tbwKTv~$GNq_iW z_ni6nIqUnWOb?82%)TtsrGDT1#q{{7pkk}~O!>dBlCACUO^$t#%jCtgfIq<F`mr-f z#(#F}te4~wWj!YF=;WUDN4$8G4`hkkH0f|Na0QjQA9Zl5Oj@XAnRG$=Z>inA^K%#b zM`+Bn=a`TxxGQhXI;Xq)8?_HVl=}NQBeV9)v<B}W>Fiev&TrV6w=YL^^I}$6JG;}O z`yW1dRBUr&UfvGvTlMSpBwDrZ1%96~MP6f~xNG0z^KNVray?ZE@2(zT&=q4#TOI5o zSiNb{?U|yp)C8tZ@!<dY*Z6Z#zy<ME)kQ(=VT|i?9X>Ud`?^m5`Q`7_j>P<aFAfQd z2z@EHlEd?C?g_h=Y`AyqL5=Pb?e<wl>uxeXeb&PMCDK1))#KOtIv2EJ%oqEG%J*Me z&U5AXzn`(0QIE>!Y%oYL+Zx#sKTmOA>OChR&l!f1jb%=&Z}4WAXD+<((Rf??m6KK) zO&s1yS+1RHj!ayz=}pPwi>ACa`|l<mYFxVf<h2zl_6@9^L5+U)U5yL51n-53Ts%~J z@Vkas?S;MDLqh6V{Br;EAD+tRRsFnOf34emlPRyeT_^Dh?($0LWsGg$TJ?=np+Wbw z4CC?Ra#KC-N=KN7zJBAlB;2lFDKI5@ekI%2nOEQ5(#}j#UwJ4=d@jS5Uq{$JuQy#V zWtP0S1$X@UUp*U@F1!-ekMWx%)^%>mq*H}io?pII`+eS|I)CDpHK&y|Ze-lf`dyyo z_++Q5-s_L^L?i0geQrL$q`>oqyY<_=gXXJebLX(+da|_4c_wt#qVMzOb(_|TiSEzn znDuk1{EVI-Gjk3&moX&l+4z3XcmB8a-~Qd-{&)A$fB*l#ug{!c|M&k^$;bC)B6c}D zJ>qFS>DZih`g&Q|b+&suEw2ARac{m!^rV!RjW+^KH(T#H*xqrXvTKc?4$suHdJDQV zOeQRt;5$KAWTon~C+nu)NjxpPJKSac3DxZ5x$iYZ7BX<_%`)z4U6m%-x<*FHSlO8E zdqMsCy9dvNM4$g&>;B&RPgBXn^3^uBe|W#oTDfxGL+krL{WeZ+Jup?%fURNeHePl{ zi%C8S9lT5zm@<stZC^5NqT?=hruc=<53V|Fn9RWw>vH8tN)&5=`pt^q|90O_$)(>~ zbpD3e#@RdD=PWdOv;Kj9_iqXLv#sB@G)=6siGKILEGqa`l!4g=_y3DxKQZSxPqoy$ z81-};i-K?U`(Ivn!*WzTzTMIjbys6r5^tURulL+5t=T&`TqKVeJ)Ys4k^7|kMK13L zPTR}X4XObz@7Jxq%XHi2f%~6(wQC-KU~H{k?Cbt~|D#>S`{M&PTs-!bRVcKh{m?ym zgLz^L+;*-wA-u)5JJ8JDE9~!`>=NzS_a^jMp2#sSweHHekTcu!3X{RhjvF`rzAX9t z_1wLvTgK71=i3Ro@~Hox|M%_oS$Fpyuikk<??~n3hKFIT%O3qY)V1S4*_P8BE{`_{ z9pc}{<0!aaF+*=<xqSA8RbNe8JSOJ^+*UqZaQSTa>jzgpEmL2*tlTW{gtf)|%>N9l zs+BC??zqqGs&&w(VB0~h+b<iGqPXNT7JC^mvA$4ewU$`=^3A4nhUuKgHqAYJUh0^~ zw)1k^?WXP8`}yTm!7CZ%m0wf89oc=eCgc3SFVoI5J1zMl{w{vo_4un-nzt1#*Jmhl zTfLOIGtOb=vh3>jzvOS(|Ej*f<^TEk{hQ|3|9W0F=YQ;G-Es?i(O<0m5tCoOlD=SF z6kVRR?|64+a`pfBHNQ_YZP>2S<Fi{_DONV~_Vk?jd;himeWPw4vYPd+tN25{v$IxR zJ6bf&ewlqUKl_Hg0v$!X%WH%xEV%>(0%ouHFuy%vcSzs**ydcz6aQp0C-1U9dEwR# zllZq$iu=r`|2*O(D6xoX$wQ;RwRiaMef}vP$~pV2{I}eG(X5&&m4B}v-~RvA{9Bh_ z&#g<XuG)Kf{oQxJ<+oir^?h&A9IMv(e}A9(d0yiB;U&hWH_p&-H<IC~n<?@5K>Mp& zdC6nqT0b85d|_685wqv`#3b{acQJzD-S75#Ezr~U_|{?>a@ILg{JO}MGhXT~2OLB1 z1uS+eRh~4n?V^8l_5Y{d%1>)u_+P5sz4i5<`P*jwzs$eSUH^Yzp8bE_>aVAcriZM| zdmlb0X?CRN`Gq1mivu>Wo;x?CqA=!mOM-^u-fc<=n@uxr?(r)>urp7dQEO&nb(czT z*TGd%SG2NHQbX@F3zlzl<rDQe7$m>emRV=P-_z4pJ%1PDb%rzHY464pF3Ehhi&iXJ z)30$ud#;E4#_QMeXO+HZRGG6?f7Qmdi2<Lod1eG^X3ZB@n#g!XAz+TA#%~qY$w@yo zHZX>-_<Hbjit7oJe-k<Fezz&sJf7b^&(2VF!kuCk5p65($^Z5+oH1mnQa<Of#WN=E z-`2@jC043O6?iEM9O+_>Fp!(zHr4D_gg{94o&GHxlY~ry=ilE{ur6Qx^sAEHt)g5O z#ee%=EL)MFHDS%%Z`<8hGrim*$01XZ%dMSo@qUD>bBP(}4PI@*TAN1;{{1XXxof}b z+j8y=$+s3<sx3HL_(agK(Q)bnxs*rm1D`+FU~q8E_~MuzCRpA7=)mUVr|M0Gn-4Ey z7wXR__B^rFxM|5&yQ&&(?fM0WALXx{#a`DN7}WfgYt1~vNenB4gx3g2D{IYcow`%% zzzVg>g3>F8drfZ}P4was*xfKM@XVB}dC5&-&N`k4g4p$3iq|qFe`u@=Te(60t?b-F z5oO8ALibu`m2A$gzrF9%Tl-CKzx0;bsOc02RNJonxN3#J_{PpJx0Xo0Uck#P@R%t; zAa)Il<D7Z(EyCw|E-<{f)|ydE@w~agL+K2DiCJBu50zQE|JlB%a}L=Uu;I%ShQqhZ zCV5T0+tKx)h2^;DqwTlvZ~H#~fAa2I|L&$)-Md_;o;uC(9iM%?ui5#@o+@p#1e&t` z6;=AV9lS2((AymB%F}+z!S3kI)2qL^Httn86?H{P^y+2h$>(oWPxN7B_|_4~c#ZGM zv)jAotdHpApI{em$hv}Yf?4%V#jOq%r9!Wt)b1=#vhUq6d&)5j<IXnTk4IkhUP~}# zYSV5M{4@XD>T_ALd_Je{xbZW+HoTb_c3}O!EdMV;>S;gD3q^eXTe0PW)5DwhgH^Vv z24B6s;K8%^U+3kkx<%Z~kL8%uXvk3YXUW%+hEFULu86*U=sjV2%tgB?y<Ea-|Ce4Y zSTU#ni?oFM!7!C3-nyi+3k;2Ft)I%W+BeAd^c-7dJGK7l&xaZvI}fa6lzzL?B|4Es z>Dp)8zvoo;uPc-Me^Y6%#Js<a3g@+~8~ZsIByCEV{!p@#F+s4P>2>na8H;&MA95_X z$CfVifT2YD9FxqIe@RJYmKRoAD14Rtbm^->;E`}n$yYfRubCd4Q7QB0nlJE8XNJ$# z`K(#G6+N3Dn$1`HSsCY^cm3h>JMXJ)*S*<&JblyN<XLK2CI{boaQO2$T)xL0&-oxP z>37-@Cy}`^J&QBvp8KC5|98=ipD%ttnfIDaq0r>psn>>EY@b@Wb3Y1Oclc7>_s9MA zFUwf68QqqCjL}b7wD14Y^|!XZ4k*p)d}BUuW&CD0)uz}57Aw|AD?Yff{E&@+K#0yc zv6dT?t%{3kGqSgAux9Gsn7LhCTI3h++rMGuVvE0Ra9FwO5W|hV5y!QgYy&xX$`Y4! zbzDrS-?zW|qq{t~IJ9MCc>iOyDrY^D`$WG*eR@GtQa{Ms&MMV2cye{}X3eT|ZGEqt z4aLj$|NU39WnIsG`wq`^tMtBaZkHTgbFJ<jbdtS!MgPbV(>aTT^e>+Hy+ZN-OCe77 z<AD$N-qBx?u7722<X`jOAI$559a#b&X4d3gpUwaF@7wn`w%^;o@&85nJGXx3Z8>~* zqQVNM+gGk71k5j)n(T6kg>CAKOY0s)GjXisn6T>Ep5$8N-mLXPeM`a~-AkIcmOIHc zzQ#u<VC(FzYs`#{k4wL{WXh=iQYyU{m*~TDq<x0vYsSY1CdSQ8$|?|<%D=I8O~8-B zU0>!ey})wfRp<H~ONmI`bq{Tfw#vVV=>0Bp<#{M$6Ejcb{Fk-+<=&JXn=MdKzfM)- z)1tG#H<zU5t+=Ju<o<X?mXx|hOButJEAAKfecUQsqHWO2z|-w|uBiF@vW9uTW+wBp zhuun=<-oz+8oXS-Z=YqY?M5Re)Aap*iVtFV)as|0oM3UC^VMLZQ9fhB&-Gt6rk1=2 zDHY>(Wb%=l(X_GQ=~KIf#dfFHufFe}<o<@6cgwu{%x50|u8{az`}pUoUCV!QoN<=l zquKb>^2=6T$B*k-iX=|^aHW|T2}w+v<gqp)^b_aRH(!@1Oct&Bcchas`l_S`i@Ign zS}9j~^&89g1l`HvDbR9LUAD%-X3_^0)_<YrcS{|=<htO*li62aCKT~p+1~MLZ)R`E z-?XOkYny{a?{8s~vuG`<XRxT;@IWa1Yk&L}y$uGNTI=RY-x5k-5Ipnx-$wrCNR!pQ zioZfQYgE3r@vZgx_w_ILZ~uQEm~ZFBnML1OSFC+o^3Y1Z_`FcfzRIu*?;3)516-%B zJXL%$Yt8N6!%Ma9t?JR)GEeu|S|N)_4jV<wXI~$Rt#(+vB%&~d_4fVE6_aj#dv<uX z{LT3KFXG?Q>wo6IefY&ZLo)g5^pk-?)k)@cclZ5wkI!Z}V9xU7&5t(>X@Uaprmmg! zm50?yv2xaw2RXkBH@(pOwt4y2HT{}bXNpv8%DMeN$7O%H0%MQN))NW*vC&&tRTxi) zE>{1!XUdGywfwzXkEq_&y1DO=<iTB`j90p~mfv9ak-Gao@fYh2N0FSh6@6Yw3IW?6 zREmTi)Z{74u{fN)Z+@uv-!<pg#H_RG-go-$b;V5U$R%6E_bW@!;%G_E5}2ejS2%t; zgQ(%j1N)yXI1)X}P(_YKOULr@13%FxRhH6Ov5$V<{j~YQz7y9LOYC*CHV{zQlCk>M zg(=@=eqH4KeAVyCXAh@{rsuZS8oXXq>hg|dS4V5>=GFg7m%mRx=BvTRuqBX5^EO{5 zGvjTaRoyuqB^6BzpDZ{Zal*>r7(<7>&aF9Xp11DNV`N{p<B$fAcff_7T)8WIRy0S6 zv<03|N|`fp(ck9W1s`_uSm-PhF>tI22#S{bX*pBzdSry_!Rcbc%?D0xWir^akwJS^ ziA+JR-n9jf*xduR?X}#t_gNL^?1M}<7#uFz{jbR}Qx4sjv}AX~)=)#|$ttIgye>!# z=PEyUZTayBd(2kH+`skr=l-qxe|-FZ)o%a)&(rSgR}wyGA$8>nKY#rzD_`ZWDFt=m z@6NZkAAR>eROKVnHII)u4SmYVQ?4W}T3`P;JL+^vrQf+L9D&Yu1~)$io>xigtB}h% z`_gConnRuqzJV!Didvd{oC`KLXr?awDzeR}T{kA8XJf)*R*%><S+n>%In{3&Y$;qR z>g%+EucD#!!BMyQ1zU6eiGTZ2wLHGrcJIBH*VDdB|KGjqOnmFDzX!DJ)3eiAUzfBw z%nE01=}()qSpQ7(PRFV9zg6G+e<sjWsLxQT$3SMoUv`e)2W)f|<5Cvcbgi1(rS;Q` z@6Yd<U3X3Del}HE$(DYYcOZB79Kqy=7x*>0EO|BNzWDvV{%D*{b*JU71$*AjySe#w z{!RNI_uk)n|M$E4Zfn)wv;Ws`-2dxhf7HeoYjx+H;o-EMoA-b_N`z-i%(D+OgLzl2 zy1wF9o5eJx6HciWi`FTMZN5~fsKL4FMS^(LJeNgZ#56kmqJ8{MByWk*@%iU)Tw1Uv zJ>=7wT}t&|Jgz%3o)l{=ww%8-&z_OPp}#!fo9xE;$kLT-jh@f9%-Oze_ukyrM`ske zCR*FE|6S60Uh!yzVrbsVC9kzUY_HIJoOe9EUofEiKs$#N*Zu7_RcQ+jq>7q2zn#%I zfBO^$5y$ryGlh3rYKAAbX;m%jGME(fB#!Hd!jm2OmEXlY7qOp``EPz|qkCu+Q(wij zz^@)Y0!j1oPF2|z?dfdX%Prg&Cz(4nq$mDNV~6&`Rc{)<r$4abzn64yLF0Me;tA|w zb~B8N=6^5|>`Ygh%`r(qp=Yz?$>$CYnX&S!+XW@~?rfgdpfe{i-Y-kH<K|IQt*FrR z4x*Xtt)~{edgUN+V!gE1e?bWY#{-Xe0ykbOEpyFa6H@%;_U!P2^XvXr1#dA6c_q+r zF_@KyOXAaSozu-HoQ)5za(~v%`CP+H;P)iu0Nz6VfU4j6y<8jFZq658zijW#4Li3L z-adE4p{iChC1b`GlNG!PH+HYtq4`1f23Mf*WE%!HAud(ngbO>hzDYdkJaSp{fIv^P z;e>09^BlKIbb2}3cIiy=G>Ky1-S?b-`P#oPj?ce!`0xJhpMUo1KKH*>C2RTZEaT0` zjwQEeY+m;<L9Ngx=KL|M(}%ThtqY0syXM$^>Mx&yiF@iT9hWx@`&Qkm^IQ>9`8hix zveTrKfoVd{{KBe=<ns3Y8$Z9i{B5?~#75f}v;R)NH9z~d-EXhm^B4c!F!Npe<M?g! zD_zxQaNbyV?R(mq;)_w$M-87U3$uUsepT*w>$s+b*ug`dfsv^Kd|SUf?MvWm$t$l~ zmv*r|Mpi^(PuEHo_3Q3s$Mn*5xBuN*xi0d)a1Nu^f9^<)P~EUA&vq&mGwJH?i<7SX z#=Y3@aEi$1<V}umyCnCXUh+Xqb!~oOeDiHTpY;=%_TA3ga%RP({!@$Mug|>}^m|=+ z*Vg&0r;g0<wRK5$o%gMk>kG@F8YPE~+h_DJc-1|eBE4qA4d>V|*Oy37vNTn7USJeq zI%i9x*J@({D~FAbHrMVFV0_L{+Qj*Nh3|>dRH*=C%L$K_OIP18k*H5&QRfy`{lD|! zuW5V#FR(Fw_P|bKgQs07d#;Vt*GT2EOX}7YuM8)?K6*t$c_o+4yx9%Qq-NR7-B*9< z-YqT{DVDh7n<sJAr*GadcZx&G_V?XMJoENzbyZ&4wL#r(fh>~{%j3xtD-Twi+GeXA zzjC`!P4GskDd&?ImN%b#e#}oie{Jp_Un%411<NA0d-Q}B*!ADtcZDsWs#-wn&uX>P z99Ita+1wXC6Mslg?TBkKv#sFlt<OWAv2R&5HH~>;R{V<Dfxjc7nc{fE+_+B$-7~vf z;u6iW@x_wblh^n=^z^@<{Wm93*s`&m^ZVh$2jlkaVD!$*F`Tn`wal6L)ay2Ea+9*{ z=Dsbcso1itXYrz^lO6|zM=go^SXc2*!%H%E>#^N!x}8ouci(a(hQF#&eY<sMJ8PZq z426gLIL>r48rr-$n5P^)y-;jVY0ui6V~c#Q8J`u54tYD<)&BaM6Zeuo%Q~ts3cvo@ zUZ3T^zWm!)7KS~C*Wc}aUw@<N^na$>>v<k-OboW39}b8gI1qNQt0`#x7T=5UI_`Vi z-Y-|Y=*(K<ttIwrH}~p;r5ap)p`z2~F~s%=F|!JkE{;6Jr*&n;O50U;cn!bTI@Mdd zaZDBDe9n}0Z}E}SFB5Oit^F*0Kkfd$NpCjR=5GIg;NJgJ*Jm}Z|8{tP)EoVO&)UBo z{d@fFcKha_4cwp38Xqk;x+S{kf1bB<|7#5{nN1gRLwoj?GBO#<xfnO3hsJ+-@8qQ; z`~6I*khNmxy}kv@CC}9|TdZ2V;eu@j-?udlOG7#&7JYi&WSe<$OUuKc&huVrrw?&; z#jbjGg()eC=l0ra$83k+Kkt4u=1@N89=Nw=6@#tYdYQOmd}~A29p8LvN4orTlQ-rI zZd}hTu4z}E_~?Sy1(~RAGg;Q=xgJ#w54vOUisP#A!n>J!-dKm6Ihl82_H3~ud^b+L z$o?7_w&Im&x2Hhe+~)1`x7h#7u~qoKWO1LD2ID0OX7$j6drKKkU9DUH*z0O(z%Ps2 z^BmW{OI;<i_{sa%j=Q=YLxZnIU9n+cypnd{mh&I=jJXf*O#Zh1@+-frbPHpR1D12w z_A|0f4b1MV2ovQGadHaTxIn7ai<?Q=SN8)~)kLqVi?^<AVCGqMvpW7qT%rE9w+zz9 zr+Mny6u;m2-e@9Q|AX4o2Q-D^M1?NQkMg{q`qAmJt8bND=iUhnahEi*lvkg+x5&lO zuu-h;tR7Ql&=&Vg^KaHQXWj2n*{AiBy<rOb*JiDVmt8;Vrk&&3p~kxOXj!;?K}?4A z_Kbd^groPRS#3C`T;6eh)sY#Drf&sTnMS^z&3s1Kd4aLWkyRh%CG&p%o|?m%)jUV_ z(TuHpBHy0;xWwQi%CW6__H^^LN?#|ZosUa?BdxXn#mo8&wG*yRSt8?CP@cX-CST-* z?j5<QA^}VXa{@huPCov(#^acetHpf12WIR}EzMewOjk{wBNd=3(7rk9Ss(uoqxHHQ z;;!q5v_7dY>6w?6(DS{fpLas!`SouLel(tatsm)q#59a4W8u7YDN~<2)Mx9Y8f2cZ z`t<7Yw1gu9QEZd1&E(Xq|IT#F$yn))xC4Jv<eTSdp*!1VrHNJ_exm(h!uka1hv^Tl z&%5X@a!2#+e)ju2CigmscIrM;nNV~5v&0$ZoSNlF<yn{PoG)N}bh3x|E2ik@jGPRH zf@<uU)r=D^>|Se}kaVBXg3m#)K8a_Ugw2dw3sS^Ad&2GVf8Jv-s9Ed(r{;)Q&H5?% zPv@UwiMah$J>bvxXIh^lla{Iozm!y89=QMFyu_t*SG`q!o4X;^X@f}F3E>N_KD#9N z!w=5+u(9C9a(3k^p@JQONxp%b1*I%zzU?tkoHL`bw)Ns6?zg=zQfrx&wmg;juQ5f) z?a{$Sg2A&{IJLJwUBeQooV4)df}ig;$WGtdp?j=$m&Denq}uS;CDu21Rm)eIF|Uxk zboBqy3+FD>h5ff&U-~A#{U7fP?(e&%U)9_E<naDn-CHs>ybRaEv)(amIdCHM;+cba zA0!^$Tf}uXYy-n9j*iRW$9LAL^o5JPe)Vl%+hOA$HTo56PG`TV6|sC&{(9&8;9tVc zc3j64%p1-;p0H@^>&w+b$tLLyNpttcvOMTbO5Z=}+t$jR8*isaGq^3B|LB1BO>>#$ zm8HM;)&9GA{FtUvsKV(_C+befuV&rmal27UKv=j&c!k84->WJZ&c6(NExql|sv9N; zl+PV(ivC(`xp6D={I|OtvfsXql<{19&E2NK_WSbpj2xHG-AeAdd8a;qexUZ!*y4jB z?Vlc&e7$QQ+h<>s>%YGI6Qt-Y{Jz#c^V)O&1V=OBxuRSj-rP>yFmuM4!)fV(tAmbn zREgZrEDm)%=#boGxpL7W)>kr(Go+`?d9&zTK1akP0sl*X|E`v_eeCf_EHvSlhQ{Uv z?F+x>E>cXJ6eXFWc4_(kZ&TObzIvATuC_?EvD-b1p#MKtAFcZ}+5FqZ<^S*1{rebi zCVqRB&(u(sm}9$MhH6^nSe`tk!rgV1A>dSM<LZoGp=}$q7Ob6BDsA8X&&ew2Tk6b{ zt3Ka%ox1U0=-2H(e9B$=5|l5lmvK*biiv!C>e|GQGuGa7&C^=9H#|E$c5{^U51T^| zQ$l953(t6bKlaedRq1jkoi;hVn9RVktwF^n;6q`d^!xIh>oK;P$Df|6bYkccIp_UA zslan;l+~5Dsvh6J7O4wAej;>S^4D{L7`e_j>z8Z_XSL>-p?YtMivvSdzKl7`wF6Ol zod*mIAAVub{<g~c?z+tZmK)c0q`mNIYWvW?oA>)hZnt@=X04`SP8@=IohemDTUO*c zO7c&76d1*J!#sW6@*`)0rYV^+WppwetFU5pUo!Qxu~LGkSi|g9_8t663szs#d=|J> z`0PZ_m{-3ig$8^(ZM4$BX8x7xe{J*n*#$yhyMEC;`h-(??UZkBNmE_8IM*mnJZZ!1 zA<%t*J<y}ONw?;L-@$jTYiEga`lfpra`l~Aa;0@ggz3jqn%DNbFwNbf<GRh4>q>B2 zgxm)Go|;J)!Wy(Kyqx{@bX}B`e{^xhF{A~~HJ*D?;Miu5H<m}4r9>~do@B6DeM`y5 z)j4Z>K}oVKhsm+3&5s_Ryb^t;=KFuQqL`c3r?);d{bC_psI<CuW%%0OZ=19HZ~RO; zeC750Ull8LulpXV5^Jn_YP#&~G@WJ_FRO!+7mxTpNWZaw&m{BTuBvT+XIk!f@!;;Q zHwS+1Yut7^x?!cq5BI=nUwhVQ&kJu1=@we^^;3>d6obTN$!{MXEe`sBf97-F#otaW zc+}zd$3-+-<B0O_eY5o%8XeUAUK*^8XZDmbczZR9U3zBzdM2AxYa`8VFUtAZ4p#V@ ziO-1p$78cYT~$1^AfW%|Ar^<@=dZ8g6s}6UCmj2<d}Z?F9;dZ$9xneY8*)<jF8}7J zm|gM-Q!O&Se6*fbC189y+hA78Yu#UO%8zNSa$sS1{bTpZbe;0*zq&3`i_bnhwCKS< zrU%Q6Pox}eY*&6Ptl}A%xz1{S^gLnqm2O%~m}eC2ow<vH#YVX2+!FuaFTxmpWaSnw z+%IBf7s`I}M<h!?@ArGZcd&2r4Ut?gc1A*VhQ}fOq?sq>&gO1^ak1ZwH}q{O-(mX_ z`3vjQ^QXI1PWs5v=yELXVw&XdY1Vedxw`w(nHJQ@zbScFE~cE3ZLj_L=z<5ETRD^- zmN15Ia>`m}#&7SPuq0E<o5644xA`m1AG%oc^5Wkt{m{$lzyAAu>3!?NtDM|rbo$?; zzfUh;IH$Z{@0ZQ=p34>ro37tpH^b$4X=KB@q?jU>%(l6o=3C5{fAgy9a+hy)^6a_Y zmG>lFJO1uf>yyiw|NGn9Xk}yfDmf|3+sk!lGAvq^#D6Wwb5E=N{tYLr9!z;uUYW1s zH0MXnQtPSTxA$CMeZ=Zxx%JuIANc=#{JJH=ht=>c_pgGc%o^XWNQrhHrs)<BlM>|u zuF0?ceA%R-{42CH`*ZC7wz(JhCz|*QT@apnTlmPD6pqe!39Hl!Y69F!^HT$iH^nme zncZT&!@;8%Fv&4GJ$2^E<j{mxtpimrU-mXIPThCpl+mwMK7YN0#Mcxp`SWIhMQ2_0 zJVm39*OD{8_~@?q@yvX`^5VIo@nUz@$3K1f<&@v?{<rS-zoo71YI08hJZMooC#mr2 zZLt7NTf-fzUIn&aUE=)2Vs$~D$d5&hrd-~fI}X%VU9fC(_FVHzx#P};Rekf~C1XN` z6L+X@Rcu%k-_kN$ONpyY*}*(?{x1$|Wm}Qyv7v&|x+kK{Vp`XmTYRvaZ*IJzpsYz- zWcpTh)&j0to&>`%?p3kJOr+*S<^4{!li$FXVZUOP(Q*#H=ko$C|8$*da_sy@eygKA zMe)-7bCwCOsFM_V=NJ-jS6`#oxc>b8!p-|bJ{lj?2@<>OZ+$`O;KCyh>Sk@@-Fp9| zf2Yy=^{ZMG+mm)g34f@QzPEmUcjZwoMuU@oYUkhVD~$A8F2DVbx}ov*wrdCa_U-EM z>izeWcXe6v7t^W(0@)tF)R>aiKj6=q{Xjzf>#8)?Y7e_b@!J(XIDCz6^t)7<rnCN4 z&X>ttB8Fej8e4`MJr}(c*tz|ffl`54=)J4!8aWj@=Kfie^VUeu@8pM7M?5+OB>A%a zr&QdXHHl$Dqf+q(^L=w>7$^!HT+iusdSm;KJ2M-ex;GZ}u&#;eE)sH9isaBLO?0TY z<JF0kjhS`R%JJ7$rVmFPEZvqrs&wjC47`0f^Teg*2XU7(w3KIac&<Mx=QEul_)zm3 zbNLPHgU-13Z(Qs7+{&F{t;${Pw3!Sl89O?4rBlM@{OqZ*Roj}=Shx2jV+Q}Xzf#Ws zl||Ri)C}CEQluGGl2Xp}qhap_3!7&@nE071M6%m+<z79#RvVyGVAS<OkY$zYW4+sd zMa1=OWCMJit({-gJup_8H+AKIhYLXq(su=fN&fNQqJNiftyoBD%+n2`8VhPUcxP)( zNLc#U`y%_fk2P^q&p-A%KW%|u+1tsh6827-`=lY<+<qhfoOOGTmCTd=99X;e(90=* zr^)c&(|fS(wte+XRu|bTTE^1HUoMoqZSnh#_P=vKK76jK*y4YO=dI3%+B>1st})GB zFpvFcnBlp=E%Do;X5^IZR0;7+Q2uxC#hM8popb(6omWlP>S{ilG<(Z)iA{!<`x(3s z-mKM}7v5vI_L6|d_8$J8wK40Q{1RSU*0b|)@4qhlcBwIQS7gV2!-*5k82@~5v3_32 z>o#+3#k{(I?cXG~Z<lV!J?a`hSBr0gilX0x$a!*a=UN1N9bi|zJ8?_c<^@0FqcoEE zYM#{{6;W+}_&4%x>Sm@rtG%r5s=rG-p4=X`^;V456RYz#l0TWN?Y<PvEi%2NtmlzH z@R^jYzf+i;_W8RhbN64VRC~-~w^}Gz+<B|}8}_D;|02KVD91EKdPpDV@7<=n`P_pO z%U&CCNBub(b8P3b^Ge<4bZ#ZD@=wy}o)^er%$3q>oG!ih{(+RO+5dRldV4n9WGv(6 zF}Z9zIhK9)^XtzV!hUZ|zFo9EeEW|5EN>St+HCWxQm?G^>m9jw_ix$QGf4+CtZHt! z-Z?qCWcI~X&JUc=3udc);JiLj_oY;J?Ur>`(^uLXi&e=;_%Nwl++-Q<bNS=?1q&Lt zNvAhuesaz)UsdEOJU@TSGE@7<zam`^wJhyVnOpYy&lR>0>-NoKXej^k_0iGqaXP8L z?q3hPIVW%ZL}Q*8>Gs|CJX;G@_};x}y|dKdnc#|w2Tl9RL(e3{u&H)?9odwzTiSn5 zYee=s%Sr7%hKg1X9r>z49o$reL%%sana+8~!7C+l;+N2c)5_8k4n`h`eB`jY_WAAo z7lo{XdL~D($#IDLFPYBX6ZY%L=J0RNKF@caxVK{clJHyCyW-CLEMYGZ=3CgJe9Cr# zO00!q;NzU4<vm`1?=NaP_Rpzr&*?QCVPECc{ytf?N`A$0>Ax|KAKvc$o@)0%a;lf$ zZWSx7XYA8Ge)xE<oaD;QwW0sJwByvJ7ID+29Xuh{rINL-lW%Ppcf2=));sB>IiV`O z1~1;RO!GT^*lIzRpPGX%OJmL2hdv?_EJ1O%zos;@21+I~EEd`;WUTVv<3fkk<)4NR zzdo@`(OxiV&lEdu$@SlglZ)5gJO8qFL0{40|9sUKw`Z)Lmut2_<=2hPuU|{wet*;> z<GM?`jAPx=UmG@=X>*2&MozKy_n4uwDoWBbp1WXqEcdnT)o-pBo+z3o`FH*F7Hxr| z`9c#NIonoTKlWR7d&-6f6?0hU@Gx<I<N5JmvS@-5N7t!Uniiq13|C9J>?SR;yK%)X zIp=qB=zk67rJg?XUT#`8Rk^t>%(P&`5qGXCg-5?9SLcO(TEifIrASr3YTudJSGyjC z6lWSb*t{-GmHBVKVAkQC&zCJY{{HK(r)`qSvu!jb-L}c`?7Mb3H@c0TWowE;&W*Ds zc~`j%zW+VgGXL*yf$mjV!5b3<HZb+y3*0_=^)Vl{&|7Ssd|_H2m!E6;_<Gr;9sAYY zxw#U&Cu*m5L{73=e=45;R`a?yQ@#m1Mslbvo42FYK=%BRYe_wllegv=-fWtzyy2lJ z=Q@w7nLjvN4mfgkY0v-sKuTLV+EGtoal^zjGjGY5ZWHt<m5e>XV&KAQIc@7ICY}i{ zqS1TiGe;-%#N2ch-NJRiN~<EZ)Kt^*W5bowhy{#+*XHRhSTAW-!SLXPgVC)c%TA|o zs-0f6PCGIoO2Q;&V}`-weLqibJKpxzMR4`ZS9dP{KlfEuPSuIqVOL?*{=YjXX)1Fw zhI|SQy&;p!&^&2w<CLWP@vTu}0UzT-&gMHbytb^^ee>$u_G#<B%}5Epc3yRryMkEy z$?tpD?+rh1+v&F@+>yCG%<bXt-*PguVh_F8b@BG{eGg1^_`Ob?V_9{(PI8&{t8Z#y z_iIn{ES}`2VsHGn>Jgi7QnTx##ECN6ns+N^NA6x;`1?$HMOTjC)N7*W=N))Bwc)|# z)>^i-Nk`6J;(oXFf*<3B2j?G4RWl~Ey8XBHi#l;;LPds>tK{PkZ{`Ja+*xMXe8^gQ zd+v8L`(2KwAJ%sB#+YpU8+ql`l5`I?X6*wkv$mCGE??#5cKeLk?0Fui#2zJx&-FZ} z^Y|Ytmt?}$DLcM#CJTN3(Ud%m@y^!Qyl>_2?EZC#dCO5JqmS!X2~A#G9QJ0Z$}Zyx zTkL+G3R=HuGlR&Ml1*l37A=@)b$Vfp(AhVoYTu@cZwxc|n`p_^F)^<F+4*=ie%@Qg zq6}h<8evNotN&y2OSz@cdHhrZ<CV3o4l}mf_TCm}X*T5h;b5S*G9zWn>u)p4`qRY^ z^)EXgXrsPBi<5)Hp<zMkX6tpVEwvB!evaSrcXMKlz#5+p?J(Q^t#8+ASO5JL{C4Sz zJF_>{8any>a*v!G{~&wQKKE;)^{tC@IZyG)?%*^NZkXV6jpvrNc&6~q`OO6nd(vBe zTuSzrckGIAJ5b$_7OI;Zo!^-#y>9cAT^U77zxg?GXBqGZ{P_Lh+pEL>Use2hn7ZW9 z<=1m7K{M1ZR{Pxlo37jW@A*8JwD<AN@*j3?^ocSQ6W9`{ctQL3nO(cG-mf*6+K{GU zv3~oDgzl>M$5t3Pt`hvdJGf}o!&6#88pXo0`~r%a(|tJZO$t|f@cBhU5%+`@-?VOB zo#AqHy5cmA9`+9XxSE9b^&d)K^V#<@8B8(Ry5QpK%l5y2o{wH*-8AoMTegG*i;|`O zF84c!<UDMC{d_n*?CY|h_S?O_>3=o0*d_I1lT7zf4Jp0O%MY?R%NnGwzL=PHv?p|Z z%EjNcFLlG3Y(AX|T7K_iu|&n=&cpq0q9;|?7I!~Mv6C&S*PeVqqP^{i2TxO@54-yh zO||JPLK-{P2fcM|a(17vi|Nf0+XX-0E-Z<O6!c$J;GnRw<B-{kRj<E%kg)%$o&3CK zsw=zuoN4xbbGN#;)TAD7wf6Fl2>Uxp`%7NAlH{6z7wWrPL$lYv`I()SaA@oC2)+qh zs;y<7eRJnD5@PAn|8%m8^|5CSuX<eR+)mE0qz}Sh%9l^$bM^eN=AT{o%wv0gM24=p zaoD;3+~TyO#X`=9_N|cUwd__~e=n@#+lLq<x!|OZvz8h2PiaPPI(?>i{i$~cCKOCO zb9ULSj|Z~ic})vg>={341b*zA(VhBK!u>f9Kj$396HjXeo&>2HxHj0tG98;yDl@gy zF)5}~d9~h_@XL}9(~TL+-40Jva=UkGiC1gC*w<3M*1a<~$Z4MAa<82#@J6`8`N6`d zGYshmwjZpXym!M<%aUql2A0WQA`7@mJd^$x)Z997uP!rSK~#IK;NAmEB9dkw$@z9< zm5rVFbI+Ys?@z|+m7V!vqw&X0fx)vc_Lkg%h|Kx!fnjV9M5;v(FZSPff$8^7htj;z zNgHqEZO^@`X=ndpwMV2?=PDlqrzn|=*Yz*7h*q548y+xwOSs3=`MsiB7#aFJGp$z@ z38@Kw*bx4;KF~-y^y|l_=`Z%pG;m|}nd+y)JkzPxalTojz}-0ZueVZ;Yv)XxukCYS zW+i{>&h!g%eY!`B`|9e~X_^$W1<o@3w=HPv{&P`f_mcgtvn&yE{qf`L-PHF#I&`<3 zy;JaiJ@12C`%U^hbAJE%q7Zg{W&`89hevEXrY)T5slzZ;*LRAmk%!nt3%?}w6|W*p z_VK^vN#Wahp7HUT#&tRD(Qlu9<EnmAGV5yJq#rq7WbSO+acKXGuuqqxx9-`=o5^sX z?0^YBdz$Co`HZ&&ZtOC9t;;K1oA|=FAyoOomHl?xzG~X3eQ3;CaY2rwy324uxZ5pb zVU=4Y8~t-ONi=3p%vicg<>FR}T9t<k0XbO-m$oQc=f%!^@HqYLmG3Pl`M$Hn=xjTl ztLJ#xZ*JZBTEWgO>kl%7r8NH45HJ^coG7%LD@u-amx^YT;iNCF1(HePODuLXn$3GE zob=~*kLl4Z4N`SY&u4gk)~J>;OFpvi(3Ng0t#6a(a|xLLF6g<Km-lUld(YmrlXG+; zn^TNfiYGJ#pAt`466F)K(0;38Ui#tlhYinI)ie6JWJd?tI8~c2nA_Fk-H^tZ@*q8x zGj;jn$S+MSy|ee}&F<M|>}R}kZ)wv$#$P^iUR&qywBNHa{rt9F*H1?a_oV!OwC(5R z-M_1QM0j>ra@KK7`C!Vi<2;k=on>!Jd~>F9C?1-Uv}r<Qhgp%mpIckcJIm0Y&)wJh zcfP*$I9!h}CrywcRQH_a`)=i=)mvt}?e_6|_<nQ7vD!kt=livu_y6m)-Ft86bzz1N zefyTZHUH=OdCUFJUKcEQ|2hQO+ViMYub;7M)2DMOhnnWLG3U(+&3U!d?ZC~?s%kG% zw2V8u<y4NnT&3pz^ze<M2FXvBLdRNJLs-tQp3}A})@zf+z2hkdn$wP*|9P&we)isY z)k$|fZiH;iUGHyKo0{$)qt(3fMXKLI+W;4LxkXy*>*^SkB^%jqSN$zt#cKLisVLMV zQ{=dD^QAnozYhfdH~)yVn8E0Ee}Tdxk5Jcq{elBuygPH)CNn>r+*-!eoxi%NaN$4Q zlk=k{Jo{B5cVy1_cJEDDA{IJ3&P}|!%<((>@-z2tCa_MpdGPu1J3Y3~`BWx6o4MuR z$)NYy-=?!ms&mV-?wa~yewep2uf25V{z(s)`0VeBS{|6eFexgjch2Q{-6?JCVOtgL zw#5Y$e_43;V%Y($1;!lfqCf4pt;%BTz5D&|-^r{0tbb^_bN{QyaSvS^^PcW-=`f$f z$>g|2#HsF&ZAhJZR@RUED?Wv)J~;jBh1Aq)4bHDB6?e8xEmu2mO+HRAyRB1Dooj;X zgbUi)K7V2|(tGatf73|b&pUndu>&{beIC@>Jo(qv)O0*K;F6{F+`U@@H->Iqy!Sgp z;yR~8j**d^m+Lqey1!{|+`RSXGHHdmt2Qp{(hHfD>AmB*O2x8mv*zsl#^c7+Ay`{= z%dvp-@0-o5np=6K`j%@?e{hT0n<YX>+e?sHtJB-+^u?rx=jUB!t`%E;x^Byz^Dgt1 zCZw_2O<i+K>($PtORHW5b#;lK>rY%e^G{%i(W<x0%-HXhf0-m4qO#a|>OU_*hky4n z9IuuK@ToNav19UO(q7Z?t4@ASS8qdZt;iEU+d?_%gx4n@8l68|w&vPR^S?S3oAlTk zM7!tJ25sHk^qu3;Nv20T@4qtsHZ6p;|H$%wC)2F;6C@XS3EL&FelGIhxmUxoW_e~u zCWcU6pHJsMecs^dVe<P3&&r_Yqs?n7rv5#Dh+&7i@v?(k(w{R3sd$9l&AwB-bwyZP z8>eUD^)D_KlXVx)tKPEq{#lk(kvq+@4f2vdczWs%*_%A>3AwX7{_%s*j2o{vueCc} z>&I{)NJ7xSmTykTLb(F1*6_LWr|K%X2~2$8m00a+8NEd{cFsP{z;iatK{el3Ewg|1 zxN~jQntlA6jQw8MU$E4_W-7R3dgGIfTS6;}RVzAf+BH;)?>%K2rNxjT*ISbI-Po^v z|MQtWVkYx58Z4fuY@2t)t5xLr5|_KTRaB;Q+0`}PPpNT93NPWC!XR}})t>qEqv}n! zmfe(PXZ%yO&@O+|{(bk4aFmoW<xJV)pcnd@V+qTKZ-EU-(=2B!=6bc|=@-dY2{KRr zOL;Kmwt6bOR`_pT`u*fJ6T9sRbw8d9UhX^p)cCF04mq7T%~rF9TcWF6db78BH##=V z%E<`*bmIKl9d+!7%qFjXwZ3O-&Na!aa?<N|h<PmO{}$n)FA;jh>&B;>(z)%d)dsm+ z?3bRrw3Ydhr5lrXG{gNjw-h><)7D95=w5kuz(w`(mboj|ZLTnh4tf95oOMx&tl-u| znu+|qvux%?FU-tSh|E>^otxf%uxx1tr&q=Ql}DA<$JHME{^rK^1JW}%e|^xA6&8DP z;)d~7i;v|J&e1oc(qqaJrscPP@X^)odh%vtEc*_b17`19o6fqHDSrJOdQoe&!;WL$ z`>cL5&8fPhXUl$i{q@iO|FWyA_7<;KXLul6+k1KYKh?@)ySgPeJ{2635b9G*Ywb8# zuxw&TS*yaCnN0I|#N^V-J?xri%jk!;zFzcdhGxX#4cBhWk;t6kx6o#C*FLQZ)5$+7 zQrA!3J#i6Bj#TRZA9h<_wlZuxw(Y5aqS4n2+wWK3T=ic+ZjXBUA(pe6SAO)|6}$2* znEQ#{-#M=ihGuBJ<L-PU$$0TX-L>QOzL#A->cqTLnjfTi&L#Bep}Nz%;$$X=&wRK; zRe;s>n}^n7{p?T=gUE2N?_1p$2A?pWP}Ft2^nvoP|4dsvy;MFeV-F83J)!$!Z{0Vh zGi=Ab4=@y5IJTZYdB2I>ih`8>)`@*_4xxXY-p*#=x>&!Nqvopr+{Nd28qJ$@*~7MR z^5nT}Tyaz9u8S9)aAe8+-|c@tzt9Z7#Hw1r(j^l9>3>}8(yFOKwY*2>d`Vxy)BLUe z$oXp(W_7BMZ>;*K>yUZ!^Q~)-3+6<Bs`pnsD5Yebw!|i{fLF6AnD6t}m#=D1+qD%v z`5|*gzmIFZgSNf()vx?E@?RVN{yC5pE_l@B_&qUOA<s$n+XW|E7#v!)_I}YG=2n5d zD?>#*)`WNLR5jA7YFehiS8XkHqq=r>6qCr(Ik)BNZ!$FK?)z3?^{F;Xg{NxX4d!m4 z(+k%|y5<{c+&JB|FGXJZ$%9bF6BG2VO3eA16w)g{WzESj7H)?5$_$M5idLD`X|reZ z=j^(7Ye)4pIn&IYb^aNFna_9p;#hH+dEL#IpO&upl)06Ck_VfDfcpc3sE8G_;@7O2 zC0x6ir^A->ZYS&3m~&ILS{DTH3zp;_N$7kPXe0j4JLJ_arQ)kUgNlqgq?dGghaM78 zW?FrYZMEB)3bn6mf-^n^KHXodAI|x7Yu7!Ky&G1)JUs10{e?4U8k?eBl~4aM5C67V zIr8J{vs<k4W(T~?dA-%lI-cvhyXfyu$2m6)X4yGbz4A4#on^LYVyal@u8sct+*D6U zB=AXZQ*y9hR&a=McTL>3t(j9}<)xn;nkB$3-J7fJxqxZ1SN9*O`G!(gA6tI9db`H# zcI|Cz?n#AtX}eXpZ>)B_y6%`@w&=F&-*@!yce;IJ<%#zbj?F7Fuu^;bK8NL?h6UTJ zHNS;~b@zLPtZ6ieQ&j0zuVFa9Uvy*26}?G5o3Fi<oD^Pht;}uu=h@%>sT-YGw7uev z`JW%tzA5j#@K)R>#-fi=G-aPV%R}RDwkzJxE2&a?eSqQEY&#~aEyq~@^>$8cw)!o5 z)BXA7$k6Xh)xHxxUiq%xQhQM035Rdj>?)q3_D<{6e>~O9*X?>&m7Nz`%apli()#R% zE8mv#p1+^}@6FDy8&?T@>-PF~>o4aP={bQDOgG0^v3V@8e(mnS_wCEfSuASX0+-ft zF={kMUfmjP`7!14z52@sF6Z7(e*DeySiF@%Z>PBMa@HR&E*RQBuH<Gb%aB{ydgSe` zwBKv){+F}6<9@-Fe-HNyy$u`ZeVLqjg6pTo*~OD1goSI_O#1r76oTIBh~Ii#c=^DA zl4Rj1FSl*mpF}sLsUCaCWz+rfh~~K(pS2DW!VN_RlQ^b@+-zKR@6*D$FMXM-WEdjE z=1qN3YyKih!d3JxpGg3#Q_nj7hq;xf_qNW6nY7QHS8UQZlLmilPLW5Y%V#9YPpS1y z)_Qs_CVWx9ey=B|uH4Kr^9=Wsk42+JoNTslcTxGbW^?M5M{Ki|+uX%B`dOXztJdGQ z|NIVf_WnJ43re=F?0ouU?V8#z8Miyn^39tqZ!O1q<cda?>Q9kh%M*7qf3W4N-X_wx zbz>*D(1U4uI$pxwTQ*Az`HF5S7PC$Nwb%Rh1J^hDQFC6j8@>4V_@CHX^~}?S3kA$$ z&gVqu-2W`rk$L~m)^7Xq`7?h05!9Z}fBon3|4Ttl%kXW>uUmiLweR2W``PRtoK<$X z+P)QTHk?!IALo#-K6mAjKSj!}GY|bzW<EMmsrKs8B@W{LPCt4W#m-eP6Fw)hyLn-- zym{@Gs(8bB`AJu!ZLfK19rj~C?|Ab4)Dsgee|U8jItCeb8J=SJd^-N8*4!(L=H)K@ zv30fc{I}2dS1je)Hz_uxPo333^6!(wE8<qJQDN<DH@q3IwrGRet|<AJhq+8&&P$(_ z$Dt#|Yqetb;zGICZc~qWRGD4-eb&}vjm&Z<Ub#T`)fa9V3SBwEa{B+orwX<WpBF6u zTljFQ<d=P-Q4Abc798+bKL0>H%6!U($|6IpiQ7CbZOgKa@X+@OF-*IkA9zXj<YA4c zS&BFP>RD?qFvo`pvN3qB>TC$yu(_MBG1C3p)88Eh=lcV`EmE;(+PU!Z#+BF3e_tLj zQA=;tEC1a4@$o-*927pGlYd|CZHdTL(SzZF4+OTPFM1Nkdho?sj-mz2_BuS_VXF7M z@=@=~6UX*Bo7C;>E?cj>C0i}i_;6x_o2sr%b;4z)S!;i_9286R&*5)i<8pJnpmAj5 zlQ)Y+7v5UhbhIVnvXF>{ap0T{d&|#R-00o=>coS@r^Zvfs^64edSrP_Ta>kBHseX| z<q{i;&Wo??$uUe~?LXOfV6VmHP|k8*scl-B7Vkw*hBIau++2EAP0M8EeAR6lycXww zoN06rTX#11fYvLkN7)y{*4nN5c6Htd1&1b&#E{t@)ob?lU*0NWcI;K%>I#u>Nylq) zyFarynEp~*eQwH&52b?9Ne`{~7js2KHb(aBoyB>h!iXiUdEVq>KU8n_wKNnTH=D`! zD(3yad4K)?wg12HZ?pYB=G~j}J!klZmcO5Q)OK!W{GYnhx6bq3&Rb-)d_&ONgoR3H zzuwEbT{+t&aqDiQp9fB@lxnm4xaK#vL+XPW`VE=_oJ;#Uk6Kwbr-m8i`~0e&VD+Xa zDQuP1>a*P;Ib4(0+TGrzn)<pjbp2{c(L-0yZF8%romAW5bt`4b`d`L7m&LDO)Dg8k z{q$4K<H*MvMSB*mULqW@pK-$>t=f<Sp_at~S99YZNh+BB?PDsKk@C6efoD~~q1U<z z?o2&X%VZxci=W)QP(W(!56Lf&l708;K5fh~`7`^=bFK@I8$E*`MjrjGlRu^A$dgH@ zvUGCppNm*3*Xtwq^S)3*ZD{lYt!|;|PbBC3+$XWwLa?LQmsRB<)BkB7%+nN0x|Z<% zvdH~gE^=h;YiX?$hv!@EaAM<izY@DW`^MJA4}U+H*_xsHea07oIs4*{yt>#T5^`O8 zzWjOX>s+^!c&q9UR?p$z`Lp-vv!$Y(v*zB~R%^fWMdnfu)v(QTk0#y?V&YuC*>$(L zx>kl$CpV{9(~Za5I(jz0t<U&9bHeUEpIP6oRUZgF*>-mArmvB@W|lcoKU!@|CmZ~$ zJSz9ur8M{TX%XG;5e=M6f4wzyT+wv#ps|CzWU^sm`oUSVD)M$so4_ShRlbeOZeGu# z87Euwj2#1)T-%qRU29Rw;r3?XEyvW2e=dAJ|2NoqiP&Q&|37C$etB$?wzzjL=Jx4l zKeh&4UTkJPrHti%<iW5**_SK>-b|Rb^nHIqOyPMJX@wj9#tqZ#Zf&jo|M|TA_LeYx zrkW3_nzv5=u#5kB%G@Xagsw(l8tXj9liLM)-Z%z(hpbghTRB6kRU!39y<whqX#$7D z{EB+l-^{w5UY8C|;3_<|^F3=$YW(%qeR8>?s@<6z*roM<Tb73{xP4C~r*p$}?V09> ze=u2|y!?7@HE7WBLH5i~-}gFkzxunNWo4-5B<?-DUf*PVzwA4@r|Fqk$hjA-sjd;B z)kPh*X3DuJhH|Fyc!mDn+d9?Z%ZkbbF6-$mXD&HxzS>!wFt;jxans5NlNaSJIjs6s zZK9lp!+~aw>s$rD3XC7=$L;gKI448<Lx1txhO+gN2mdF<@7b9zI)(Y&QooWlrKum< zPR+kkc6z1aYu>5xfBp$<k<d2jd$jALkJBf|dU=Tn3W?_(Qcudv*W<jnA~4odYj?o5 z`=+yNSi92CrMNDM%y={HDzC6;lm|nTJG+L}QAwvP)`OGTuf)AP`c>1?KRsXj1WU-O zkUZZ`BcaOp$Fj_SH+mE=>&n~Vb+%UUa%k;Df%(#bhWlBbyB%Y#scv;XI%{r-u7lIO ziA(fPck)T=%CGWZwY~no+(O$!G$Yt^`*ZDhA<d22PB#7fWlsEbXgs>+Bty=wZK--3 zOQO&9f3%)+GFr#2%yp&O*R1z$qF($-@;X}P3EXp{r#_yNYg_16c`|*iYeUkX$m{Y8 z1VR~j7V(Q4D!ciLp9pa`55GJ2s#QP;ue)nOdPv$Di{<k^IQB2#w#>}?q@u8bRWUSv zwG`utmg~$DR+qULndmH=CXp9?wctbb(K8=5PZDP{II>Nnr|omQ%f<JlPg1%ccWvf~ zPGXApx#|%5Z`C9=HW#ls8!tqLZp#t(dcJp3^u_J9d!MgrvG}DIy3{GDP^j41xKI4s z*=tj)S@+BDUH{`f^SX}UIZNK~&7R)luz-EltY-_eG=*6Cw;8fJFzPT&<o&(caks4K zmze1Hn(uR!^X{uXzS6No>*l##QWXvQk-x1AlUP=@dz6*uRA1V$LgM*zd7&*ov;sA= zx9Oda-d+1q^>_dO!fp5eKR&t6T%K!#LNT|F!v47ZbpbWL@5>!F9AntLY0-=4^<1;o zGwk=<YWv#G)Q|6r|Hj5DfmJD+?Xt{`Z~i~C;KG&mQ{V3dy*?BjWwbi_O|F^I(E|sp zj5YnbmwH!TjYw6QVf`yI|KO*pc{8^#6xdz(f7BzWL49&yz&foD_J`MB(3hLJMdfb$ z?~cZ)CYyF#nG~#Xs>*YhT#0{5jiYv(blffd6iY=<wi_k||J839ygNUwXZiGFmJfwq zusAy|_^4wm@Oa*u=hx3J*^z7eLGIQru^ayW&+bQY$cL$_e)+iAL0HX!C3*W_sU3zh z3Jf>S+O>CGQnG>IZK>sP9acQdI}C#!I9tZ#mUJd~T)nk4@WK6xP2H>hpR_o7DC7U% z8u`CI_7jd?Th+HEjsHV=>ccJl0$fK=+-IBhtft%Le5-Tf<BRS4mc|AbvA*SN*u11Z zoT2hc^@k&Dx>B_@_Zn=Uzk2qapZ$MJTmOA4zs^M*^X_~7jxX0<^*Y1*63@?DtA8AI zswlei;m_L792*u_F55OOoxyxV?8R%(Klc5u+)$Br)1gV4;a^nf4(=x+T%5u-Hy*^? zQgaoYA2mg;JZD?gF}3~6SK3Y8`?+Fm(uV`$0vXL_&7$2Kn{z%_OnIR0=h!i^OjKd* zBNxMlGm9z$6kc)m&iPlV>|k|kO7QnW&&exRM4AXn7`=>Fnc3jwu#hW2y<)@T>MPd! z+HY7t%a!GS`}ZB+2GI-eCQM`fc}{DB#o@v`(LD}sg8MJ!KYa7E;*o|L;}hE`5doP6 zRx)yL&d#pBCAG(m+d)u$?c0@^Qg5D~p8n-w0rNj&^IgkBuggc7GG6J}o7FY-WA}Ha z`%lWVL{z8rY&Kf@jVqk_zR|K5RU(U7JI+cpoKa!FR#fHoR<`)#x$IwOM7~c7m?IHu z{`5xzqnC^0g+p#)+qur~&-Y(n{_g7)rVo7k%r0O5Z~iu*{zPG(*DR+}t7Bb?pHJH! za1MCtc=1$2Z*u0;8%u6Y=A1lnYoLbJln!xKF5{4|d#j!nyL^m`oTAKstSDeVFB|(g zOXJRE6Qgr)?H2mX@NlDC{i#A_&5)o+|Nnj4zVCFF&cishHP3c>AG;H0ZfF1hrGE6& z?Gw1Rxh>FYpE9Y6@1|IT-RYkm%IzsehM9+58XLb9o8ODHeI=oIxbE!~=G?1yZfb-@ zb$knb{kO7pi}N>Lbw+j3tPf$#-`9F5EHS+P#_GEC)jOSC>vx*>^X^?+zWw{gz_Y%3 zx=StZOa7iV^+DBDm2Rt!Ls4O&6)83$r&4vVa=)8W{@(k2Bh!)Dd}2-+j{DbnU9mNk z{(f65CuXD5)ENm^l~n9s8!Jgnm?7h!#Gk~#BRQ#Z&208Lmr4%Q@;uzZQ?jqH{4Ccj z^;Bj@jrZT5`+N~qxcYNO?!2qa85f1?1#5S$5KzC^v-)UDmq1VQ)jGx2vZcFf!#}*W zz4~_6+`>S)ZcfR0$}esSH_LC^{HD@gSy(Q7kz2yXRqI6=k0m+wZoN>u!f<I*qyFmG z6BBe~FPzBQso0f2%V<M>#KC*}?lc&)PmQZ?xHP|+>Dw05-~3bd?EPL^pb~GzU#Z|Q z^~jAvu7m>PKWmPCxBeUYR*Iu<^Qv~Szl(q6gm%u2dU09wjm|;i&f<?|Gdw;;C7*YZ zH(a@R$<kTh^84bCNFEenUi|mK-U`=^#@yR@vVw0+cQ<3Iwl!Qhp<&kc9G>etSwDy0 zXrKOZY0l)6Gas!I|1JGmv9u;QC_C$=Blr2X^oyAr-E6u4@IJeICSC6D>qU3_>@Ftm z%3I)f`*V2p@1Oi;-`@Yfum1bR=KWiWe=f=GWo|yY$e3L)Ea)=lFTpJ`v(L)h{yr`3 za$3(DtJgnSUWl8itXj-7hw;(0gxzbHx^0g<l`!pDGG*_v=91_+=YvAdmnDj?usvBU z8NdH5?~CPmr+2@IyrdERc*W_3H+QX^TR(r#!;()wf6TJIHT9t3ueG%`alP|Om^?Fz zyPFjQS{J`g+r44S3-xUA3&tv^Yv0+H{T6*6YQ<MOCqig9`&$Oal8tv8_Ws=?&hk>o zCHeL2s_TjBtFQHo<ZtI^&<v6MlCUpin|Pr~?4u~@$*xT&w%*>QS9VRiNB!oyHUHy& z&HSFesq&l9Np2R0+wb4qvMZJ@usZ+OX41ip6X$X${pR_w`BiOD$L594cPHuY;Z3>m z_GrVz8?g)ZTl0MUe!UlNk?@``^?||ch{2l+?~HQx<o}aA-{;SDGp_r<mjj1fcnxmp zJ(mc#T9LG_R&ddxRa=%{kaP5Ld~ocxh)r9;t#1$Ct}gQ}*C^Rw;mCH=YW}VH%+a}P zPLyju47<IExm`QwHm8s1yro_Z_WYl;k7b$OQhxXLlHG}aUj)iZ!=z4jNZ*xDUaR6D zw(7@>iYx1$@0qabom7ATqpG&z%C+aed<k0qu+TP0WnKsK;<+yA>PeP=j2Fw9Y+clp zeN(5nfosm3hv#qo75jUK^KCRs{D~_M_H*VfK6K}teM0c|RypBk=^5`O4pjJb)iTX^ z`o7>&r`oM68LpjD%Wh2TJizB_5bnF>VVpyDQ#`9$s>|y1xBr@xL%WZfOcoI-=MI~B z`&oAP#@^+{Thq4(U!V8FmCg3at!t&*XTSM;-tKx8pV%%*@xN0=uQ#SkZsWQy|Hb-C zsGZuC$7ye#SS>gZ5_+Xmscn7uyPhKnM+E0cEsMVG$6NBvg3+#NZTsT+tJzG}{(H0F zLw)*Qy*UwYqSNZ<rTYkW{5`PEH7=XABepE{-$(F46;+TX=#Bax`nNmp1okWQv}!5@ zILz8!Cb&aNgyVumt3bGli(cMjL;pJt$K7xA73${j8+`pSjX`S9tSOos#9vtKW0OCe z!e!`@z}VAJSb4av$>GNfC6xrBARV>RSsJ$)V^01#S{<)s8@G{HB<rq()!sF=Z_nOk zmS9-Hrxtoqb=q>F{iRFu_|uL%RV{92@cg{tuaozMtIUk+|CI7yusv|ZYOZHLQ<hxq zJ|3Q6`R%E;h0j(v1v$Px!LTbWbo-_wM;VwlC^auJ+APX=(5B~$s^u9Dh49-s(M}s= z1y0PD=UXJxy=bQBlQk^y0yS2@`a0VeUA?y8#^gsc%7dKd&z)75GGS)Bd!PNPPn?tG z@4Vo@Ea$@`UiYa*EL5{&RW6I3%lnx^m6mQ_J}O@@4Le+|qqKqZ<O8)&_A%|R%^a3o zJo;BG^mb_H`HPntR_zdJpZwxE*ER`__fxNQRtA~dW;zF~J2mgV^6!-=Ek3OB)wmnp zX&Pj`@Ij?(zrFUM$>$Wc1sMweSO;JFxp?K*Bd3`H4&PLrdQN3d+s=0aGm@v?S|r3! zV&C+GTd4n{pRU5Etp8VpzRrGoe`EcJ+x5r$bUFSWU41^Vb4Bfw#5whB;XBy(-#**- z){-xbH;K{Gx8$7Hldbz-)o{-F_)+qz!2U2J&mH&HRCuUtj#+g}Zi<LZ6`R5jC9VU- z>~B{w?V6GMU*d+3mrXJk6VuZaTZYdLYMdU)sr47<*(ASz6yvtOVtvh|Mu*4gOuRzh zK5wYkTX3{h`usK5tD6|wRtRL;C~Xxo+3L9Wt0~L%JO6y=7|!3Od?Sj1oxRab;%Np8 z<L){S>-W433D%CAZJwWhJ9+-!3w8gFx|c=S=k>qr>uhSU)RkFpI4R1oJ*MGIDMOe+ z*|}>|UtJAiX>jIbYqg(w=INo983$U0B5fwmoya7k^`0x^ugsb^y6jIaU+TD)UaOwN z$nYja^}gZ7qw~5ljdCVRd=lGx-DB!(`3U~_jQiR@kKbQ>Zhr*hj(r|kP7J0(wYReD zCVP~qy%XJHY*4u{R!G<S^R0*4lfIdngoJ%P6>q4?SYaE*Uh&YJ^IL%V(Utd7cs3@j zExxlgWy^KbYXV=A0+ycCIG{3j#ub58Kh*XL)HC<gow=)iahVSjzh|;pqnKWVg_XqC z+k#tiLNC8fJK+9Xgn>Q3>E;zy$=wA@BibXsl!ci3dvWYAJN!@bTbS;uebb*_{Kd_( z{tN5YBYzE7F55q2;YlX3rp-LUw?Egg<eYWiP!jP|wcxm|av9Sh@zAT<t%9}dot9jT ztlXfvMLy;A5z9btkr^7olNMh2{Yc$_LvJy!H@kF_{ie4qh5`Hadlz%B706;f8gV%5 zo3@YmJKwD484P)u><jltn+1H7<>nFk;Jk3rDLcy#WmooHwd~`x-<Qm`RjIAtm{aVL zP}&^nTdzE?tJ^>R#io1jw#k8vT!o)+*665i-n0EyZT{NHUo$xlK5#xE85}?9&B-IR zTfH>zPcCEcm0@}D;KQQV&%ZE=EK69Hlr@plC!ST$LRw4f>A#)d#iVp484lcdtk5^z z*UJ6sjmvs&bE6je6w1wiJgs40RAyJp*L5a&GjgXkm*^OMJ96V)dS2(}j|EAAp8G_q z&pM?iJO38)iRj(@=77$!Yd#vAQW~{(+*?z8Pg^!Afz9AT^z|3YtNWwnLIff-4_Lmd z+Z_A9o@IYem`rlcnfr^Du|=hYy=65tUmS7Z?R&%DACFr7f8)viK(-ombWia5yWRG` z>Y}EJXHNNe*6G1Dfn|vamor;kr-XmqyYr#W0-4JX7RCQRl4UjdXIhF{=k^8p(+_2Y ze%`uU&0*pJd6vmM92+W^>IkppGg#F2vHicN&=2`&z2mQVn2H%*xLjN*KjH1^_`hOv zk1M5!TCuJX6El>FtNqv2*s}4j;*rNe0hZnu=2_fYIj?0~(Zv~a8mz^$Z{9o1yl9r` z&4xz_0zOfd@(JuaEM_$%_g%48{Lzq9&81QmxV7>fr)QL#THM9%l}`j;y^4HMAS4tU zS-HA@GLz)(oWRE3-^oJJx22v0iF~;t_s8<Z!{q)O#w+#)THfOFJnbaFv3I(dXm1Il zv&(f?*0Z-=?nFKbd&m$vyY{WemQBATlotq`xLAGA@PDOCx0_I@q}S<Va*^Kxs~4GW zT=mX;{>qH|Q$IKsF0M%Y$dIYP%NKgZ@%Mh!qqQl#3{#DTH*4)n3A&WLM?Fc@F<rh& zVAif3w@+Lw&YHcz%{kz!a$>cKx$H;vl@H3aQV!@So;q=W`_xr2u5(O%f0(<@`Of`P zC*%@juN3gtv39ZMwYGDX{pa6mpRYgs@5B5(Tb^H!&vKvGBij8}Z-c-rg<8I?iVNCS zSw;Da`JH1B4%8K>Q!8Jz=ZC3p^Ca$ICDHS74gP5pdRw%#84j|qoz9}mD|D$Q<Y2;e zjq}!3R^4{W+LdN%M$7gttZj3Uyq~;O@X(SSsfL`FR=6ayDIAg(zq<EWad3U=qP-uq zo^KF)S}b~5bW0_Nh$z#Fy~Ym;9quw4arrfQ$<+R|To`)TEXnG{o=<;1f4A7Cv+!zq zn?cNO;}G@tZ!G>F^84I>`}+QbtDCy@@>02dPB!+Ku1ih7qG{O3y7<;%lVZ8=drwST zbzMBC%h+*;n1+?Wq}BcYcR$>;X0>$Pzwc{!gE-5vRp(5!b9J^AHZ`2z>+UHyV+upy zmo{;hi#$sv=dfMh?RII6ryR?S)e`E}bMsk0b)GR54(>?4CN!_QC)4%QeCAj??VWtG z5|3w1IhgcD``v1<#jeUPJ)-4$wVq4;Uoowl=i33d1(QDRQ*imdVDD<XUo*-AZdSi} zR9AO)b?~vJ68ut@b@><5!@gJ*{}221J!AfduX1cZ6&9~G=u20f8@VNW{iAbCUpLl9 zo@}jkR7(0|d;81Y_^08otTe?UI9f9DANGnhR?C_HF!y><IOAOF`uBn77hTY^Srrs4 z@}*_T?P=R{4hM%?oK4|d61Q8(LQ~7~?$sq0E<Vd%T#sLRJ~8Q!$Cq_!UFRp>oxsU- z^XR?}y>3i37bF)QP<`)G$Na#3gFsKUz<qxE<ZFytG0(S!Pu*$2=+ghU_NDb>GxJ;B zNu~;I3x2G;Xj=4k;oA-B3H|QJQYNUa%sM}DZd3I)6^ZjZKfLyQ5Y}a89cMm2f8zZ+ zC;qvuao;<0-MxJExd$_<g+lkfI&)=)*`%L5Wx{tCZBI_xb#Bcx^Udqj1*?pOP8?1@ z+Hv*Jws}&&%szcis1d#VOX$J6j~lC|3tW2qU-qZZrN>(`uKwdGYk9=gSi3%cf8&o- zU&az13;7QIy?dAc+^Aps()v#KRKq;pf^(Z<OO}7Jl=6;dUUBG0j%e$u$c$$N`#DwG zb8kj%@70uOx#=`T{QRe`+-AmWOTO&+`_=dN@A`u5-GB3=*bgpV%Xr|!#D7PQG_B~5 zsMosnpmOP-r1H;y-`~FcdTy1iA;Z0m*C*`zs{YpIpYf&Z?rNXBLj*c^ES@zzEbw#> zyD3lhRHk2Auf*QO2CA-Nt>AqqdrCA-Dt+PMke}<AB($nd2R?B=zy0I}@uRb+YguVu zN~`_1=ki{6OQk2$+I9V#AFrM?|7zU6ip2Bt>sL0<TCy##;;)qU=Vx!5_g21ToVZGB zMUH=0FxSKw<Hqy*{JKjo?p+wCmA`Dhdui5#SxsfO*|kk(8OJu(Fu(ZqIPdm)>Gx3) zS0ALbs%ZUN#I-O=@5ApkYzG8girzbRslVumX16s~{`7jrSCcRMa+iPPd;9wHMc3{= zr=H2{3K#rX{NjM8$y=4HMHW|`9_q4KNJvlHAnuWG_o*@>Ahvy;KyP@pMN=Zrmsxu+ zq+UI-b=AeB$84MLOn$N4<(p_gcoSz2v-uy%*>bkbtBe=F3ZCkayttCTmOE0+H$K8M z-}OTHwvwXG#q(xF%%AGwC0G}5_4@ZGC+5Xw*t>k-coM@|=sR6S{=MRblu-U$gG`C0 zZZ@gf1#axSj0Dy<YfTY|4hhJ)czStz&)-$^9fh2JZMM%2$gI7e^yR@$b#5L92@%!< zj}Cq`xN~FA{*ABS7XSXaTK@L&{eL7g*C>`fyKJqsTyjQk=u1tD=L_~JFPpuhY+b{2 z+bOG9*6}nb&0IcXilpN@uT`tGEY-F#OftXlKGJfv?ZySN4|ekUGOG56zExa!Z2jNM zzuO&EwYYY4&$~bGP_4!9kG~f;O+K<fp!W8`MFy`IYcAfa<ff7+?UFig4QF`Y@(&B= zg@>P6ZkrUKYCT=qGSu4f%*k_EGe17xDDwJHyx`O2JL29R7Mbeox4EHfum7Qplfo;v zy@`L9!!mhBxJqc}!A<O+*G1TxCR{f)zLxrqMYfG0`t9ZBdAeVf7W}z8>HpbhuH6^+ zr`*0R{zG*=Ls)lucy+1a7bS*cksA~<*ej-;Uo|bCvuX|h6@yL{F}1t}ekUCmSh+rF zN5_W+1i07u<#{p-IsIT=zhz#jEc17VzOCN2&))<G<cR)u2;HPoz50F9dzV&kh74Y* z{U?_#_-?c6>%28TP2c_gy?a&ptv4($-la%bh@JbSo1VW|==uBFfJ-S`_TKo<!WwXO zUDk7F`@cH-^{gtFXCD72+q!&hRo}@7NA(@8rfm;a6bcF0ZE2EwWA?gYj-&Q-EAe0X zYuHWmY<Btyc`nVWUb^>Hq{exn%>VoLhFTuKd1K|?HF4+UCRH=N5OE5TW)u20a~H?4 zuI1ZzTTI=P^+xA5H|x3-F~bvFH!k@txOMLQQvV00aWkSPzS#J*TkWUMZsjrohm})y z-B+`ip}$Sy;}yT^>M3f$KB}A-3NA=i9N`Gqlz;HsOC3qoiJ`MZWhFlTEfBKUEMPEY z{)Tmlk3JsDF%;te$bQ_Y(6?CS!NcRzxF0O9el#;R$Nkpdu-_LAa*zMMRhxCDCTzCQ zG5xsaQ}45x1MIH6d>C(%q&NS{JIhT;IXUMKS?P=1a`D*~^uJxF>uHgGGlNc!+OZ|3 zu1j~ns#CV)t&jV<x3$hmckPW$rnlCJa9e60{9ZOK&1X`9LCw>?*K8XKYDA82+<N}{ zi&s_W=X;6>KYhZ(r0mT6>Ye<(q#WaqtT%;iW-<INv0E4&cvI`;eKv+Q7Ka|2idVm3 z+CBTU@zlKs{z*B{wU6#uarDJY7l%HE+C!x|W#QjG&;OlqSl;~2e`Do_)te(YnFMWa zMREjB+N<$a`?84gx<B*Re)j(-U0t=;7`!B?I=Afp5AnBG{_9G+h)?ejn%gx=(k8U; z!NOpzPsWj*Gqt9E+$``w`EO1}=#jT?x4-@Ns{Gc)yo1jiUKy-7eSy(H;pLh=7Y=ON zHO-^EMNnpHz^A=?m7dSqaDX$0agSvwzfyZz!?M-cJ)%bnCQW_h8vp-RxkIV>O7Y2? zLQ>v{g|O6p`*{4V_eE~aUgpl73O^bzdoK8Qu_5yfZ(i+U28X?+k&aq*c`cXEJ071O zHREN8IeWmhrN-v#*VU?A6?>egWx}B~HzWSMXro)$RC&%O_2=1N1l4;(R{4k-OG>OU zIkwSf!KCMR<!q;(JF!At>&UtG-)syS>#7oio?S6#TO{{GUVrv7qYF+(+w8n99Jru7 zgV|7ROYMn^A(ExbOWv88J(Irh{!i7l!_L)hZ_Isy7Mguoxi#d{^T%QD#qXH6A6jM3 z`21v5{O<O1eoKqZm`xbZG4=IyrhD27XwFml@g}$Drnc>dy()(z&t+Zx{JDD`%MT69 z#>e)G8w)~<Ee!lG*=F(_y}RmwVfWIc{-#bp$#r`tF|qTp%T#aBFgSmQeP8<C?WLl+ z!l90#b2qlD+?cE^Ep}JrEw{DGs>^4&)n2cw+^`}_yGompZ(H$^Gg%jwl^=Z<_y5wn z>DJYMk4pC}G+HTAy@>x?hkC|SM>A)I2Y&ZI#|824sSS~K*tm#`WwOa1`AzMvqOo%W z`I+~;b@bfC>}Z;|dd9rNer8@-SMvI87$qcZj%i#}F}S?wkhX)?(O<u2YEBH$Jkh)J zdZ-U4drZMTrWC8_`DqOencMD}%PvribG3{=Sm}Oya(@m>b=$VLmo`i9Uvu8%Wqw68 zTf-%Z*=Ca}A7pQnV@!EyE`F~3xlZ=mPCkQFHJ#Sq$LiN9NIdKLuxeFS__RKi3+GL@ zJ-(;(v-~jkn}vJtUpgQw?&Qlnx#s=Oqb7}3Q7dM#pRoF|V%wiHar?g8{yuyEm%G{g zJZZbCtZmOtSp_D3@eo&T@L}nBvpw~;&zVKx-XUtvhpK;eO6rUK64=MS?CtNjd%sCE zKl_$ydp}WR$!$ghR-x)0e|Oc^OzXd961Z-)t7_$gS^wHaQlnGy%~{?z-4xk;XrsFO zPrtqXA?K?XZQFV;x_@ufugEo*oIM_M&;BNVV@Lh9nEW7tT9eYdg=dy+=gY~vUAlj1 zuAf!1g-(j#2KJv0^{p<B(N`zSUU$8)M2PF_%0pR#KhpP3&wsWzcG+QpilY`+r%m|r z!?FIdr^FLUot^B-s+M0ExLS^?v6p|(-LG@SQL}8DUDElGR&!sqtn_r-%}dv4@B4l# z`DKIT_YYwwCuyzC5Z&b-zeU~pg;dtm6N^^b<y@6mX)%9YMcl*ntLN>!J-Jz^_E*HF zpIxPQ=XvGI+c?injGFtR-TbxawM9$hUl+8#e)X1pZm0T%y=)x*VL`8MDJ)E$#QN^X z``;z)d%wMi^bAeXX)tVD_&7lHvE)tn!rWWD*KX(3F!5@?*JQ}ev0^k~yuq<$cZc=4 zYw4%E|Gr3m$d+H<V#Z_7uUvF{mo>*r<(S&s<Ex*)J+tj|)zNGEedkm6Ox>L1<g;DC zVR={K7SA2EtQ;?*)J{uE1=l<{Hh=BKPm@yQz4f;lINp8zK6JrX)A{T|wR4ZFlqILm z5u7YAssGlR>oRv=tqrqd+tHSh(h#Y>_kZ9%$CKM@D*U$VZnVF>IXy*I=*vvTt^y<O z=ytQS?fdKg?o1MDe7&q9bXV*Z*^a-GNo#bNa<^a4_0GNF_A+VJk7ZHMw=CcJLAb@w zxq4~;{V!&Y8S$zjvyaU#yPujKeEatC!~M4>?N^+v6n-pbhr8l(%a^-2PkA*q{f=c- zXa66)uP}?@!2gT$;@+Rp1~)aQhV1uOjeI;aerkh)eA52JPpe*NwOenRF8_{s%1f`W zk@g2HHE-PI_-QP$`0TUW-{k)v*1!4h*KL7A%^V>)QzuRhlc}j`i9g}C-}|yd`_Tm) z=h8x1lP5AC+ZudztAb{1sA2ZA-)Z^R&(C}KHt3w~88_9u)CE7D{o@YV^uc)Pit<zS zlR_u(d`$>TpXjEx=-7$~DeYSeB&8;sZ819HA!~k%c`{qam!IqXqPH+C`8ca%=j}jt zaii5oom?ecoIEycSgLq2a)G{N=dKx2q1T^;_J~{wN^U*yzL57z{P_)*cNs%xCoP}W zbLZ~-TlYm`7f-TS&Dm2Nmi+$(hm?Nkx|>1=BA-WkUTT@Qfq{8}_k^hdqM_%7GVlBS z*5_dOWBL9|Pi5_byRPfra5t}O=}{4?R(~ftS5xTuL6Zg-t6Bfg>lm($ni6oq@R)~d z+<wiA!l|2tQko{qtEoQay45SPLrTy*%1v#{WS2wNj(&X;xYS-gBJ=xiH`gP2)#^w8 zWU{7noH-|Mu;}~o^)C0lRp#so4>~q=jb`Olwy@vc7wx=ut<w$dF}`}vSNY?jsxK8R zp^_env8Sc2<?Xi3|MThix6SA6vfkgAq#k;(#^1^R^6l6fos_VpB3CDQ31oY`Iv8HM z%U~gwK^yB8#s<;f4@4KY<Ob|lySICVUO<=Dk30UFSLRNRU}X>$w+#=?agy8@ej!ZN z{MdiDLlM6$pZ(exzMZ>p-KsV>Y4#}>`eWj4x;8|n?VYuLUX0J{2+<YYNhi6^UR!l6 zGLrvI@4?C>C+5>#4yD|88Sbq<5Ei_YtJ=Xw;HFpD^sDK)g>mYyIn$S|&}h<q5$h6U z^!>B!LA@KSo>?!B&3yN~_%?5OIq&_4ED~~48%=67wrA^qOPJKKDty)a_v_x)|FYk= z>Hd#j-nV13KQSD0fAvpXO^HE5cF(0J%`Ik(Y8PtqzpV*pJh|k<ryL{3@;QB>K}`ay zzsA*sPW)Xr!{}{R$fb#2(z}JvnO;xf+A3XY%k<{2M~rf2+}8KWTnCRSbsoFRT57$z zmG!*g3<sfAJ%4XCy?k>u>O1dm-bvCon%PdxbV-@`rpe-Y^?N_hhY2jJTs6%zC;hk) z7HrTbwt`i-l%eXt`WX>yfeX94R{Z~SZpC>gUWP6XHVM0x9#OaNt@!rs-HIc3uD@|% zaOZmM@x#{e`!qEjdG&c41hl>uRlerl{NdwI)3EA`$v(4+xC$6;&+<ndw^l9Z<5@4Z z_*KQScRzk#)SCF>_e7KHmsQ&ihRCxY&)0jdes@DqKHs^Yb1I4sF3xS7@`Hg@d7=3{ z<ILn4ZlY>GMb{NK=q@~FkX%zFboJg9F6RjyYt5%;=`$M5>Tqe`KFZ9#eC6td#cIDC zG`2+eKbw3mG5@?ma)0etLpMK$gn+k#i+`MtzjbQWx!CkQJP+&Dj<NC@JdxPXy5{ii z-_3LT`ft@st=PBa`PO~8M;8@0<m}oXc!qgSdei!hqaqA3G0hyFZzlT4#oRwLV`+Az z%G$!IcRiV&Yvp=h4}5U*SP75Hn-sUJ=XOkC$Xiu4uliX0zH{&Hi!tu~QTVfFvVr!! zYW?UXpI4UI*Q>>KRMmc8AmOrhd#IEKlkhs}fTF$i*Xr9j|F8Ni+#`L|pmXiat4UTa z(bXC5mI2cX^j76CCYx-#xa`G6-i<+zkI4Mmew9hv;Y3*x!}|pO*Xd^K*XPW8ucA?X z;odc?2Rgg%-+Se8A>a5<awEewHrF*@=ih+!yBA*n`qlnV+~)cJwL{k13dm%+Z>h8h z*C+|zYFA~YdVtx===TxH%&GHcSUuG*ZMIv)|3kgLIK%NV|E$3LHpR=GBI{Qr_Dtg8 zDf16<G6=e8+RMc-b&smmO_ivmauYqZ=^nmXQ$t;s%hmrp9l!Z+o&Q6H8-EuliG6LE z_4ki>JcDMMYv)0pBfGXO)_5zG*!2Hw1pD%wMM~j6Z(f}474_~^%lSpCJRCKGTZKz@ zFGzSDw=Qpel-#5TGS_ELG2t@ooi+CjYj&8qqoVGTjc(kM+5yMXn_kU$@vZNJ-((@L z@(J3jVpcR&mZn`Tt@to6v~@EBqmSiem)S>ncKFn+NNQ&J`-x?1am@Pn%og^FKa#ow z&e}2lH9x!h*`8+{eN4_Np}UffBpu@U_$cedE$KN+wOypD3z=WZUrSP5YH{?2<H`rY z1*cdqzv$3hw8X`?(I|AUu-3mNmEj$_i@2B;?h7<Y3=Q_#+qLg|vRZLk>x>Q??`vz; z9hLv8xN7d=^Cj*=l9SoB&Pg~d%&`1WCQ$A2(M`eRL6v?;P-vpVR-4ER`!;`n&$q_U zLL+2vkT_?c*k|?kKd&u%R><$?@x*pw)N9+SOimvaR>|nFsi!|~imzEaog*hqP26o) zGFRgvzv|e^dmA^N$WQ!mu*GWi|M?{z=O(5ltlDa}o2Av&Q@hS^)t^vC-u0@=nzw>p zGiJw${Fo{9*kS&vrn{Z-^ToP5)kR)tdHrHn6Htth^vn@+R$X~~cKjBBzg-NwzI(Ty zNO>=;HlxjWuFLb#fa^bxYOX4j`YV#ITcyM@?^=Qli+_CAADN5C9vDpGyRfkPYrXMJ z!M9D^$+7W^ymYizt12Ei>?HmAxq-$>&&fJx=G`{BbA!LGC|UmRpZhlpf8IIAFK=iW zY;^wByFSOatDZ2wwNO(qo8)!LZ*q5b*IuW_$hj-u__R({m=gSWqJ{e=M_z_a?sulV zk39M9fbqwg3nHy2QhTnP+7r(p_K7Rcm{E#z4R=~^)d|agCF`#(WZ8c#OkmUWM=~i} zjCR=G6znk#>L|=JyM8FJqW`E|<8<cCee1Y`PS0ifzTy>Y$Fs732e$gE*Tym=Y%x6| zcJ#WR+r-mZ7t=~TC47HR^6c;TTe3F!Q_m8?2329tkPpJG96x9JoCsh%<}!WaFX7i~ zYF8bfZP~i`ed^?Ueish(`YaJB*mI^S{I=}5;vNqh4*scU-DD>AzS$=6P~0pvxt2w0 zn)1c8hJ^_%KXtz!*}-M<z+%T-At}{al^4=)ERA?Lf36$jB__4%(p?hj;;h1for+xo z>1$a{%l}wTiu0S@8KLPm_f^k>D6^S57XRl=U0b$czABgbQ9Xr~%W5N5Ts{5G#gJ`Z zPX5KiXZIg{WwPybWXA3rO7?~hEVm;2eG*J%H4kvb*{nOL{o=#Y86g`Jn)vFI9@aIB z9a+%H_GRgv@=cFB*Uk>8kXU)OCH?jH*HR%LZr80}_p$JTZ3_3Qy<e}1*?03#v$9r? zh*C7u+1syp@<=F`v($O3H~el1r~93zSV{;5$~>}P&6Q`_@TBbQ^3NCJ_SN_|^xd+_ z5xa5h`WDGIUtgbpp)LH~<%e(g#r;{6TLM-Znz0&RU!LVquC3VS&nWVws`KpyXRY~x z%6@_$jD2S?FsQ9<4p8qj=Px#HOt-ncY7y7>zmeZ2Ii!oP=3|I=aNltCf$^sev)AqW zxBT?S#n-=msZx*gXE<Q}W!AjE=j69Ce3%~`ay&z)XT_$K;ThKhj-9=_Hg`_h{+nBr zuAEu0fJ;UqWM$#xccQ|Yos&*&R(Pm$`u4ZyrPZgmpN*4w>f^WM`?puq4=!NnDbTuF zay94GF{fC&7tMly1P_Q7t^23B{*N{5#vd;hit+f)o?H8Q_Webh+v<a-OpZwX*vXO~ ze|KxvQO-`Cs>|zRw<jchdO!8`&o%o@zveI0Qgx2EbhhPu>g!c=v3TF58y^=PRy2Ou ztCh5BqQs_OhUSa=8&-sD;Edo*zHp)|Q*`qKoyEK2n9eqerd{XpNc2!$bIFxQ`~G#| z%yY}qTTg`qrj~Avxfh<mF4G;HGIdGhAD{P~#@pOua&vBf^STv#bIaYWOFk}HV7Pc| z;-1QL54OLZ`SZiFqe^chx4yn{=gy4_b^89*Ds8D(Pv~2$NUmP?FGhaN`7Le^ei!Gc zG&(aW+3i{}p>Mk0p<LUKl}{2@-3r^3mc9ABuJKHFH;3nL%Uv6EZfS236#b$Wx=7N+ zh2N@qTEfnl+a+%wYps`-E4zK}f_PQk!XBBaL8`mu__uD}c5}bN(~YeE7rYS<OE`I~ z<A_h!!&kST6mqrJhfWE2Yq&*VO}f4Ouev!4g_v44|K<96-v85`phMf@pZ)Z>+q6i< zEZDsv;k4&-1;_77UnhF9ht?|@rq6$pEZei9s7n63fgSU2rTn8@P73Sdo-Fzo6#7z6 zmoLq6cG_#E$+t9K1ZcN-rkZ`z<#WEB{dRNFq`i}j{vKu1ni%>h^Wy&ei52U`8Un8; zbYv9?b$rU``}}n2llZAB+cY!kZz>l!KkB-8Y(n|leRJo%=}~6)xw<{BI$+n;&(iuQ z>to7AGtyVh;Ah%o#d^7-ZPFX}r7J|-75rG<6_|y^riV0iHKkn)x#+jyY21e;=b0;1 ztU}K(xG-(&`|9j#;`9GXTg%j?J^wv_Te8^+v6E(Mm-;!^#WlpA`xlpxKDj^mjP#O^ z5&1t1jCwxpv%T+>CTimPZ2O#(v7#;7iCnuMe1BPY`1snLwx7zFHhG?CkpBMu_J+G# zp59l=R9KvO(UjL`!H2}i_qH8#j~Y)g-)`m`r+RPW+pNk5cA~6eIV+c>$XwRbI=^%6 zU!Ln_|GYL!-)nlj_?_P8yYWp)@u$SI4hOc1om|RbH)s2W`+-kQUdlPutGtvs!Cw$> z{cT71|7~w(9uU49nR0)-<nKkkI>PVQ^Y0Z?{d$REN5+{SyK@}BmI-WO*z@2CtJ;+m z=7xh4p3iF#s+p4K@%wLKIkSPCW3SztdtM6K?f-2S^QtUm=;JuEV=bevrBI~uj`o;z zsm#v{(+zLDxLmaCId68Q-~CM<(T7hdAJBD{PQJ5c#>&Q+8;g%RmgoE4UiG#;eNIV{ zSm2BYAJ6=5t-P%wyfk6q%KQ5_*>;xoeQOO)_xddQerv_^ZEvq??@GO|oV2X>_V?Rm zyAQoEo8!&#_*G@;eT@eflcyV%cP~A0*y3Br`NiL7q`$rDeRYnvAP?VBfo)FT7hmyM zC%*Rk3VzQ2TerO`w60H2pMN*F{`kR$!V5F@ZjPFBZdJ+YG)IYo2bNjCuev+`j+`A8 zvr*>#iEjo+GcOsg^7<0_=0*fVQqJ3mt<!IQviwm~&3)k{<NUdAWZqxxmbiDy!c2a? z;lHAsvbW-E*8H|BTqf~|XPc$NU-{?zZmd7TY2cNT{cCTZuG-x^=bq9xzZH(1`?aLk z-~RW~(rpvszprR&*iw5SZI#H+Cm!~khmNf{=JTK?!_HheEj)T%i7ZotpIELr%ZH0; z4|VOelexsFehr)UwC2KR)!PX-;(}$F-^xoiIA_Q$;q!SB<94RAV!@+bvt)m6Hv0eM zKB!Sy0h+lsUcdETt$ow#1vjgfHki!eN$%WNyIi$W@TlerSHBazTnxpmMz(@lJ&(nt z?l#%2DXyMgeW}UBS)y%YjF#mG-WBiIe!e<pcKiLdQ$OzKxgBBslh;yU?6C6UVeS*1 zo@T2I5*T?59>xEAP^)y-BgSWMoVo?mdY+$KYybTeFYz*7&U$6(s*KBbz6mW3b?IKk zbwyysdAF+cx5tF^%?mR2^6UyxU1~Oiea9VRq5fN;55x72=6z|}ue+eof61g&O}@u# z!&qmvp7#)m3(>f?b@A)Cxor!k-><fx$m3_}mRmbzOV2gYuI?9mG~zTWC7!I9BlNO! zE4!e??qvsTw3_zG`zgMdbnw`V5-V1nxZ1Lddu&=hProtuJ9qNG4XYAcPgu?0y8i1) zCxNp`f4u`{-`zfGm$;LW+>W2m-$w{+Fz}9Ljr=)xefY(?ZK_o@a|<tCONbLxi0XRa zGxhtC^$WM(Z@#kPLsyU-Q>STD>yzRY-rO?lXE^kxCw~$PU7mH2XM@z==RQlk!~UNB zE|sUa;!a9g0WVizMYq_j&0kL?2dv-vJxhgcF5mvG3BM=o+_h9=N|j2W;n&ZrR<bYS zR5<wT!osDtFCKq;md77-{e%IdqhQ3m$eSXj=4o@3Kf2Ud7WliQ-nxE-S-Ll>n4zz8 zsmA@OU$R2d4xY>GYz<FoNWQDI^6az56MT&)Oy1>~Z*ADedUWyk95?@MGx+DO%HV3- zn-$`6+sEgez?G}q9L~!eszgNEi@v(qFD^YFbfH{&#_@gTk#kiw4s4xZFz=iTE9;!8 zB?0$L58qwXC2=6Qw=2x1m{E1n3#Si8-GYHP^kqA>j_zb(`>heKvP}Gg=mOnuD&H07 zZ(rqN5wOrUp!B?2nIpptZMW33r}b}r+_m|rE63tnAsnZIGTx|&@x6Q{errv}J&XFq zG3^>ZmUT_FpFH_Z)YQ1HaR04-Ti&gzNDG{1`m|;72DV0po4Y)wZ=YiMpiPrI#((`5 zH6M1*nscF2oD+Yvh_$nN%&w4rG5hAjbd4ojCrAcvU03?{hVJ7>SqDWHmi7Ifn|<L> z<ig)hoeOIO)PiN!1iuKqDr%IG^Vs6!&FiOsnq+1eMDlOEKeN+IRU*84YVDF-9V>lJ zjeTi~JC1KN{3$uPA|*s|@!g|uXI);h-A3Ltf}J5_@h^!h-&Zuv`udXZo>0^0os)ED zFxv<l3naJ+F>5aSs&UbeFXLV`J8xFctQ793xypfaW_BFr&pUbPLWbF@`|f8~U+TBI zz3%PQtGNf-l6f?5NC`7v;g>TroTPgv{H@*j>q)zFzj>Z-X?UpdKkHbgtk;PH2gR&6 zt0rgiGI}(v`|xn~s^<@*-%mTgH9U6pJH^eh0o7JF7hhYs>bb->iRS?e8upz#DSXu_ zasIO0w%)kUjcb!+Ux>|CT=7a^<>H8Ysr3@M>&2aRt>rnOWdA99Q>5!+Vb*=?_?e<N zm`}dgCwfz4fr^0S7QfB&pSY{N;3zd)<bS+inR1lbUpxO}|9<s4?9gaR*`}#?=}Kq8 z`4c?~4P{F|Z%SMf@p#VK9`?KD3p}oM1?M-v4S%XE{`MimB=_GBn)8eDSv%eup4<{@ ztFSubfY>Ch1RWpMoSk2iH>@)3WIMEI<$LDI@^v~s(vMpvH{3k)Z*j(Z^Cr=h{GwdT zq@7t?Qaj3+Hi+DAQ095+&bY}UBk}&`<=3r0S0yp*abBPK<JbNS_Ak!c7IgY?ChqjQ zRcM?xd38m;km-h58zaK|oL3!QT&MY!_fUl|*Pla{ye1b8Sa}B;?KWUweUZT7v03@N zUHFzu1#j}}ZvXoz|9{=zW833z9hYBQW>?>IWM>MS77sg{R7`ZM54(`B`p2vJb;}#s ztGi!G2$fwokhrn9G>7x`>-O#UdK{kYmV6iJcfI$nmAs@w!oBrc@q0Hd`@MO=DXF<3 z0RiS~Dh?((IIQBb@ZgYJ+;vK#_u#hG0{MH3?BpHJ`@a<WQqiyV?BMK4`(&=F)s=+? ziPg5O{2p!eAT>VOF`!jNX7h<i-_;9j`S-j#&gA{-JRg@n^W(+y?kCK(((l^!|IE8z zT)&TLe?0wjUSC0qI>)NReN5+d9cJDC#*(#p_tAaQT2mi-{$4GX%aZh9WtI5%aES%e z7u@O$x;yXfvbWb?zs_ZzVD>iXcJY-nk!mrs^a7Teb*C=*d|p|SWr?U(2J70~)Jd7E zW<8ATS+v(!;nkwJsKYrtzl7Z4{kE0fWj_+G7gZT@DD79zf==zs10wCBoNj&d?zFzT zDl);#=TT2OpS`ix0`32fuFKi)c-1uRlU;9=SufI^$zSqgbL@(H|C;-ctm)a3VvyVv zw^NMOea)@wDjT=m*l%FiER?jhJ%x3Tn`-$sb%_JI_Qu-+^>vw2H@31=ZBP#rZ%H`5 z{^^mg$13+fnv=#6u$3#Ws*US}$)5DzXWPp*|JPNSsoiq$U1gZ{Ujsdhc{`)bcBvgX z<CPl{{<qwX^%2t-kBhzcKR(G!*L3;%%Xq@O1CJM&Wz1f-`HoiSoO74{-If#;6REhl z=Tx2VmmKF0hH3ZR5BSLP1--fZZqCLsPfpVrI-Y0dZ<$ybyhyA^lkrdrQ^;J|Z}Y-K zctSbN4Ffh!(%+NbpmxkFPib}gq6z6LMxkA=9AEFVxxQlEudQ8{ZJVtpU9!>o_^~)* z%ksHV`))=VuzPJWQOvw-n>IIIGuyr2=5xy>Vcl(V<{!@09&?gr|F~C5B<|w+-=^Vj z*?UdBb8a(47!>t8w;yH=s%BbzD(;y~Nk{xb*9R#nyHD87Ty-&N*2L7i_t--+4J#N# zR`#wnn)$RuwDZuln~SPu7+mTPbq>0|{9ojnS;m6rB{a2<wYwU`&wR0ZuYw6*f`9B4 zzx0M&Ge(<?U40v)US5A08r8v{l=H!p(<9_a_{A6Qza)~S#onhc4-;SypKp4m=(10d zP_o|XGVPDfOkUrZCl{*8UQvE<eI>8U?3rxh(aMLJ7EiSO7^UfPT5oFW)EA*<m$t+m zW4ZJF-VLquHz#|SG<UGF+^KuEb@>bH^JSU*M(gsGob$5EUO!8_UnB9jCw1ml|1WFy z%I|w&`TL3Je5ICbvy*FOHm?7>lP@6UiK*Ci;R8=t7!TJTxt*{#cVoXb&ot+x*NJ?& z-HpGusBe|t_HC)B=iIm({!DFG^*X;fbGTmH_kBaSSM8TMUrh}cC~VRUlbmU|@UPN- zzWbXFu`gNa+PZJLY|Y1OlP;fJF;k#(|HiqZtlHb&&zz^|xc<lwA%{&j-0}|FlxfOo zvTfFj+%W%-4UgWR@Rj@zb&FrW<lcPl-U2!IX|-oHwZ3e+JM|Zno>GtLwDt3*v)|tS zeAmn}S&m~rPt@3dpS=6*IlG@<iv1W3{ggcgr&nK8<NYgT>DXv@Y<bs@PyKTDe^>ck zxz<=0*05F}c-`H0_5)`uda|clt$6i+>qfgrfgjm#)YRIqaXaWOs&s|xP?e+6tL!;C zNAe}ruRpH(2U*=+0b1RCA^T4K@Bb4V!s9*tix=OS^gnU?V$V5d9zUiZUdVb%JM%;s z%P;Mlo`GKtcF!qMOOrSpB<Y|S?<k*sq4?z=35k!@cFS*F{JhX|+v~H}-}3)I$o>1l z>Z||m*6+S?_~T=-^hr{7x!V@JcUIkF@S#m2@k`vc-yi<1{C@BE1E=gW)0fEd?U4L@ zKE5{b`Qx3e0^4<8-e0u-<nQUz9&<98bSxApFsSJ8s(V_SouhaqDv{Z^*~PrY`=ZCy zBM<I&-{S4L@h+;s!1qn{oN$$m3$|H#6wRBxIRD_$nVr^=uU<)i@3KhRa4}--3R%zA z&l+ov7|qPez9RJT?z3IB&-#jQH5chrNnA+#y8f%n6^^Kq=W4HvUz`kD@RcQ@{4<YJ z+s`a@FPq+-|Nj)#-0ph0JnXKvRB3udImg$nN3KtuGgnZEDfOS_3wQ51MH_y77rOe{ zefjA{>&sF_&+FMv<_tM)yIfnLPj&6jS6SKNx*xyqEiaq!e1%FZ-;}AVk_`Xpxd!!b z44JHYcF|g)B$xV{mD6qKu^TQ}%BS1t7`${#_xXnxbC1l>Twq&muxXc)nO6E8Yo3+r zS;8*s{JOYq%hx0|p5M?nF@(`1f+3!zG=?#5&k2jW*H$mqS-t(im(~NkmJb|$FV>o@ zraJNZwdk-Qm1WvmIgcxjF1S5e>C0pz#sf3F3_a)cS?A<w%zMe%V*R&I?uF$O2KE&h z{?86|?M>u5ck#CDc@G~(mF03dsT+-jR_|OR^Vw42WB&ZTnFnqD@8J)~m-+to^18QA zKkv`}|5CpGblsPWmmChrC-cOG&O2Fg{rb7<4;~hsy%?OsQ@ZW^Jm(+TJ3c*`@K*4j z@!>ib1D<U`(e0~J`VJ(l+010ZnbK%FX*H9+?eh@5y+8M*7xbyUp7Po*?Cr!C;!Fol zt~&bfn&e@fJmC+j4+I?l&MUbt6~(Y>OXs#;v3@Uw_FU0bMNBStigun>ePP^vts!N) zCzEUAzJ?_U>`#8&<49N-++^z+`iOn^<=ebUKW}oGB$UqBxK3-e=hXQ590`WLZK1|D z_-yVw&7UA4a6LguwR763`GyJ4EK9>8G-bq(Uz}Qf!&%K%DC*7U&7pI<yHsx}g#8F* z*uC)BTqltU!4e!TcMJ5Ze={GL^&vf{vvB`Gu4l~k`dYc`w(#aQ7kRGHagl!MyyC48 zTU&1Y+{!N;J&Qh7?0pkB!@Dl5HsyAL_3jf-7kpl0+x2x$s`As=CefDtnpIs(*3F$O zs`ZeOp>-KcWZsq8g2uYfI?Dyhm-J>Xcr_vK*8H^T4|vp$=skXx`un%#%#!Rkh5JA0 zes``qa*F$zTVS`-F2ij>f(0&@?yqY;lqRYi^!Ly6G;MAP@i{h+HeRXPlV7*)sLyBF zoZ5-!&ZgG9nZ~g4-rZ=q<9ChU)aMIo@~TAb6}ms~=8bd5EPlP%zVc_^nI-2eZZ7*K zxOq-Y^Gmt2``4Y;vCfb1W@k3&Os$&`&wV>?i}=a1Mm6WKgG<^b$b5I>jb8MZ_Z<(z zgR)wIvv&<6^`zQYpR!{RnbEAw(iY3yRh`>h8=ZW~g+-~rT*R==_RA^97ojSRDN&aH z*01{6A#bseMPatTi>0lA%$Y0kMP0ui6vln_jWBLV|1#0}bN0GB^9{LzqL~^vZpMj7 zr_D*0dMW-uF;ZHxl{^2u;(`4)9-q)+R{3bS$Na2#tmMIKJD#~Jw0)86>D+aD*Vdy) z&d2SW;Qz&V!{qyCBE;`EfB!!J_M4ugWqS`-bn~CN%zG=r+y1joT8r;uU;PE|cfbEs z8+@TCa;@>hoGZ$T4$m&fvgKcvIV!g8!m&jLIj?@X+_caNzNM_4>!*A1-r^g_Z!=9g z))4mUSAkEW!KDuhace&J|M#x0+A9oRMpU_zA>s3k|CPFquG1#x^&MFKV98#?f`*6R zQc44kCS0(Pac>R3v~lw@73BrRAD6oLGF<p{{6(vLYezbF;FL94`=l+(YdnoRudlvn z_p2no{_p$q-(D`a&%IxLb={;D+j8AhrZfk?eKzxbXvD*12UmUDy1sVv!WWYdT={gO z!Kk6U`R8eWyQdvej9kg9RnB}bzxKRT*&_K<PbTZ!w3RBSd%v9W;*#Lec7IrCbART+ zBL`M34d-!}@4Y4vcs*EQK~cZLGPY7(jRZlnUZWNUzg3@Zw4RGyz&@v+-8|#5tmeAs zTR#64d(E==-J+%if4VF$$nveuS>_e6qILBZ$89We%B%OZDmdMXGv@p}FJk=yw%^RJ zmvITci1F%>H7Q)q6LxZD13Oos(@k?}mP^7nI5_)GhkSMVu+nbpk|S*A>vpqRv#vU} zFG|;Q-`<<1TjpHde|Y2Ho!4uMs$2|gYd$e8w>M~Te4lagU;9t1?<yUP?5pJ$oDO@< z=)lqP@D{^7TcLe#ic2Dos+L~6vF+iM-7(b$e1TSL)@yz6ObC{J+R@9vb$}yuvFq-) ze=lDAZ_l%<EcDsbfR%3)7;VA?3i*OnbT6*gTbdTs)Dvp0y7b+jz0a>Xu6f%X)=)LS zWS@$FW`E9mM}yMdt`iR&=Y=~@W0<lfEjFTK@8cC&Ng}ZipKoPR_vhg{aX_<)(dhlb z>(@=4WK<%3zN<etl^c9_QF*0#&B=Ygr`m71|NCA2c{#uL+t<2Bt!$oU|MSJYcjxUl zeg5Nm`fS+6S69!^W0K%3KgM9$6fb{rO4I_=LuFe+9vNtFu-oqLvUbWV2K5c|&C~j$ z0+OD{Yo8JETW!HE<hlB>>dC%aT_$0BtR{s_^bBk*{H=6H{h7b;7M`-BKZTwoJ26*> zF&<)RkT_{O!(Zq$&j#M=l+y<`PDpKG*fU9ViTT9bU7Ob3(2c(ksUFbFcemw~ZSQxE z1L~S_Y7$<%HmSK}%yQs*7|fYEDM{+_7M7mSwe0#q-<=bUZkTs;ol;Zbs$442yd}Y? zfJY+IzSB`BD({?FNlj2g>Al^&ds+SpE)bp*%DZ;bQHG6Ir)=R@a=8C$&D^W6O3zk* zJfbMSRnK^)<Hf3Ek(bP+JLT4H?l4JR%-x&X`0dB4d5)*7KBw?~{g=TIYW+v1RI<lj z|E(;C@S|Y2#TQ<lI3S<U)zG6Az_sn>51WrWckT1|;dMj5>!8pXKCzyffQfkxqTQNI zD`(#mw2}+1OFX}Qe}4S_zt(2Y%g$Zbmtwn+^ZHohQ{{PkoAqU8rblg0;CZ#?_phcv zrE9Z11NVDL2+Qw0zP0+}p~;F|BJ(eLb%bf|<$uiEXc#F{zS=9xxu<vw!>)(kwU;Ix z_l;|bxUuO$=>JPK+`G7<d^X-qn|)sWmdln>iH1uHLY-gi=;#y{$@`KmfAZdH#TaSM z+8>iQZ`_-Bc*fe`cV>ImyGUO-U!c1B(ElFYne%SdNw!COODwDi>)D!BU%-+odb#sk zf9;DG8_PeeI(9|ysB(fSXM?~A(dYA4{R@w{Et7D`K{3kc$egc50(bx9#8%4dcDytG zR%N&PtKsaM{+ra)Lgr>BH{IXr$#8>_^|9^Au#LIitW!mDr(BG4Jh)rHLH5?KyzTM% z^>yLDfATOaSm2==&7k;-N4{<Hb%uuN=hyfAa&oH|T;RO){QRgh-(P*rj)~7}Fwcqn zZM(&s$>+*UsU@>jJ|B<Jogvcsx=+*K*k`WY66r<G+xQ-J_z0wM3gm9%Ha0k|b}l9A zNA;ohZoy7<->|5A``u+Xmby<^w^?=3jMn!3v)9!>_MiTke|`(Y{YLO{lzW!FzW-;j z)s=d_629m0e_ivqw#!^*yImfqclD2}pJd06js^}VUC(x@RV$cfg&s+LyH-^+*V$D> z<EK)(pZe4L>96le9y{N={qj@3@9W>Z`z(LE=pXB|A4UwCGji=M5*}=Mocgk{YSO3g z%PP;TuYDW6N^Ih!`0Dx5t%1M(Tum>t+W4!j%jVfsv&&Us|7XPqKm5BW-?(Q<#*!D@ zpH=ShrX)Ib1_rgZNjkFWbu+HKeX?+K@`HO?UOWHZd2}eNbCCg$n9J(*DQpGP^1>2> zMNFTt9j#isUErkq)Aep2o-!GR7o-XNoz1^zdBERN_lWen_f-Q@-*3Be{I6AQZS%h9 z<hMLYwTC@s*=xP$XqdEeW8C-sukQOiTBGXaQK#GT<&4wQngZ5$tNM<9&YGjMuvR6j zY*qiNS!W;acwDfcbrb*EPy4@nc^=#M@ni63nJ=%e`Zy+EonfyQ$+gF};GIY+lf)gL zH;MZ-R?I$Xp`#Z4HL&2!zKCye#Z%;;Pm^X|H=|m6mA<{VXSLFc2`1UnT1VA>6{sX^ z{AZidzr?xr{$BQ7ao;o;n1v@CT`3#+ck8)LD;+N$Tc0tXJ0anI_RI9Hoio|9!*zLf zY@EIN{uceWb?48mHn)-q%+!&pY%QDi_DFhb!>-0yy{fRI8IEd3vEPm@{&!i#cBMzp zwpE`rXPn#Rt1PXueouUd)5^6cSQp6foYuV|A<a>^`>*cr^Z(N8PyhQ@ziYF8T|u_} z|2OV$wf3_AHQt>+^?z_B>xD(T9*8jQ_V^X5cikqnr+U+s>o?}VU3d5Ko3f+F<sBzl zg>1H+`1wf!n?-1tT4><a1v_Rg3s3M5T5)>G?gLA9l~`X`z35i`yf=Zaks&Wnc}?uh znsY_$h~B(QrGjgMUoQT&H`LX<^V9kR*Vc0`$~^T`XysY)X9rI1dR5=|Dt42^QjaCt zk@NQmteJFUH<PT-qdrZCwKH-OuKY{5Ul)34nJteS!^_v2t8TsO?cHN-yUOlU<gc%9 z^{cs!mpz~N!DvQ$w1a5xHM!2C-!4wud)3<{HMw=`_wURK7x&&=+`?w|WX=5huWh$+ z9ol-{d*hY)-QVJpJ{{_u%g8aWQg8EtcmMvmzyAEt*pw^c>GHJWN8O8Se|&Fxr7iqw z#UE~!^NXA6-<_{>3s&j9S@qu{Z?S~Cx?1D1GE4WrQAffi?PJQkaq+NhZsAF*12-Ah z%$>J)+x*r9`BweCpZ3e{PyYX=e}DS_&;OrJwf*yA=ie`z{cmlO$<1i^eM{>cpN`l~ zg?$s}FXo*rqOx+|bvcpe9<H%p-pz1na1rRg+L)3buKa@`^6uAp4#M*uUh`?Ht<}A< ziEUcQ4O{K$#@7$blVK1on0S4Y{o9jkZnFi=%h_CbVPT`}+w-rIj+f~^NZpzc_i<03 zm_uFH)m7c=oSi0Ty<}EM5D#<z=5ni>%T<}DdcEaey|ao3l{Lart_R+{`Sn}=&F;VN zo4$s3ZRW8MZL+)a_>?xc^f6l@<m!wL2F2yK&xkzo7W-+flcPlGh~7B&t_#<$HL1 zo<pBo8*k%@D~@)`*~>olr2F_k_`OrEyOUS)%QumYGdDUE&E%U<y0SR_c+}N(%WNOK ze|+Gu#hoomN9AwX|83@fD?UHxjYU1nx5&W2_We5ci>EEP;B+h3cmCFIH<%vu-@m(M zWBB~~p7p$0td0}YdoxXcK04p4?B<)}cT7n6Z@Agb-5*3RWqdO3Sae+Df@@V|(utTj zo7Xn0cg=Tr?eyMTSb9&ZO8C~*3kyn?&1Z0UZT6RO8;^zS%KETp^7fpJ`<NlE&)&z^ z|9uXt{H1Ks@B21%&l0)h5RUL~d#;y;)`(@@4v7^%=96MLr|jm&riCp0i$9qNoe+K_ z!Fc%o>PuRyLPT9v&(s$>Iz*oTZjiLD?bYI(9ODhI6E1#r`2Awdg3n1C;`jVHke8Py z&pIQof%~xp>*4t|-=so+ELdZeyT+wZi%Tb&r8axNpTx1m2>~~ClJ^)n#BEjjVaV3) z*IeS7+aMSBkvU`Itv9<EqMSoEa<2|CjTNd5yTg)KabP>&f||<JhZwfRZFx9Rfn!R> z-WUV53m0pWm^1eHaq3Jw;G#5jMbMk`7Ax`=XuH>2F>mE53;(_T?~R73+Fw$g=azQf zytuKPN8#v`WCla4qSd7{f8E;<=XqiC^)HMaA58@qEqDLAaB-H=$DIq9W*xff5yAO; z6RYCdpf@@>TjaOY-`~48`@7u1^p^((R{db8HZ${yzHQ>ZbB?&;E1sT+TE2%0ek>hJ zTF#q(+b@)xT%RB%F`@dYv`K0YXUYM=Ty_rwpWiAI6NMH_?G9ReIc+l2`2{<Fg(@E3 z&lG)ZW!IapIp>eLFYT3@+%aF&TTwMP>5|UJn(Ir|TRCQ3JF2($jPw25Z}#qe_;-21 zJDv&|hZ)DFe|z)y{-*jbzvH*Y?~!{`@XNFMwetCeB_;)ebz8!^gbf)bf7Y@vuT$Lg z*rib}<mayUEYmn_K3&XhesO$t8Vfha!RMC0Hh;RgIqT596#q@d+^cS1y%qX*74O^H zfBXM`Gp;WE|3AC>P44c;=WkBBcwpL9W`oHVf&MuOb8Z#)9C3DBJSpsp=C7smZ_aAW zHa4oTa69?`%}1N!&5@a#pYDtJsxx7R_DZJYhhIAOvNSLFZ7}csDZ3XhI@fM=t7<i> zfA!l}LG+*9OW)IrjT3!d)hZn-<1WxxS$gWofkh5alJ+YVEM2v=)5-VNwrfi^X&qUx z$1ckK*MtPe5;F&(y(amgH^ZM6sa&<Fu4XdvIA=Bc;`Ddl>yE^AwoLfD+4HKk+LNuf zrSI-u&%f+S$JNJWx4$QZY+wApy7zTzeuWBCQHIrbMlP;1!QGK<N_#hMzq@+ZkK5P1 zlDal%dkJYr>qWHcY|3A=?@;`TS9g`FxHdms;?mE#<Ufyu!41FGTh<<Y->$hb2futT zsT&o$U7dmXr9=Qvki&wzS@xH|S)@u?S$bSc2@blmz2T|Nzf)BkvgYZOi0x9y5R=|e z^o!}BL2p%!N#D9~UEL$Eo4DetKZ&okyZy1X_V-Wox6=1deGC7;?Z)~2KQfuG-<JG7 z@vz^)c)nfozj&F<rQA6-o|_x^`N-;9BH3p<eP#xPfB)MyapyEE@AIxY2OF3Z>W(&b zu>L-+<KXw|fI-{^X5k98`+Oh%ayZDn^)St`zkc)J$>PtUe(~iKZXaZbe|__2f8E{% zOZxY)?OE=St6G$IT<4LNwCmpe5z?<$R<bTOeDTo6AuVL${G$y%x5QcWzK7r6rf>hh z_ILXKCp-VXc>GPpu=YUht45_wugd$A{C`d5+COvU498s|W@;0c=hd%ZR`TszoxSOs zQS^~xFS`;hJ@}o#JeTc;XUDZwrb251kI5vkvIq;kO-u25xLM$^+zEvSfo)$u`$<Rq z3Q}ENwsHC5hzRipQ%%Qb??VmW|KZuPWAWYNv#;yFeY^1O#ix(Awfm(VRCqDj^-GM( zhYBm%H+#RwM`?U0uAivM@L;#C^!-Wv-}7(h?mXAr{OOXIWajO~Q(qmjdstOaD>=Pj z$_59eAG^e~doR9PG;uxi^3n=zb$78zozsj<EsK~fZ)jO@Pr2!QXI8R?@x8@v*71)r z^7y8#N~)S<S#)vZN7MNFkaPAw?QdRwef{587KS~_>tFub{eRKT+5FX|3w4-$x%n#Q zUd<Nec)MWc_hu%`_j;Fj;(mRW=sw<XcJg5fdDg^<sl7ig@0zuDRg=uh#sAKVm^dj% zJYYOhcjP($thKx4_)Yeoj$E-NWAUy{`L#dpvPtDEky-az*E5)@%T~tk+q1W}lkXg= zJI|DLchQ2#Q%hX;?+-3r^kG-<z5o$P4z<*)r&>gpC-z)fB4_Gfc1-g1hFx|I-^;A6 z56zwVzq;dJiJIX*uZ24OD<*Z8+<W8jS$@0Z-)M&_#f0#jTX9=&`&?KP-N*0JFnvK- ztHM<_5Bq4=5Y~>!ol}cvb>;|5uJ;l@Hap$NA$r2b3VrJXlEE#u3)N+8zpQ;_lxxl* za4j`(f#R%u-&H(M&RzR(Uv+ZBV(HD{R^NnPf81NB^w-ogQX>1AXL<DUjc?ok<{f%J z&;RJV_kCVd(w;jM==0saQF6n6_Uq?sTDDhzUn$bHp}}S{Urn;2K}+18z%4uX*m*7a zGtW#c<l=%0&))Vj&6^my|DVpz`8(h9=E~0qX*82yow8z*pY8F4`C8A_f6p(h&%XV( zw0o}1kq>{}=JKs5oc-?h>Rp!0vR$?swk#^+$T<1LX6Dz+lYZG6WJ)c(cE&J7dhhi6 z&E3g!H|&4b-u(B;@|%5Mr_MdC{>JpnD*n1K2Ei%ExSJeqaBPtIGSibmfhqkRV_2B0 zuFKc!*Prvf_vHHEB)HwZBtNNK`+PR98n>{S%GJXM?fyLx{@uO*&(hjo-}2vVsk<ih z-+V{d`ahe^!{3^Bem)c#rKrIaS{TE9-qOzfWXeqO3&kJh3=JJZ1LoCk5)KGG?6Iqp zv*iG<+Cra#)HgF46clZ<>urTxl#{a7Fd5GX@;F<%Qf8sostluV$*a`2U2|V>^~z+2 z`^}Hv7KfPB+AL-73)v@buxeuP1zy9i0nsW#6Fpo%?LWbGYW|n=mpwN8sj%Dn;z6m% zgX&EZ?#~*ZEok99_^fK?G6%u^%9Bi(+%~D#&DFS)9j|&RPyd!kv3~(4hetC*a7<cv zC|f}9YmU~^ub%dN*#+m5#2XK-&D!~We!ujpBfqPdrtV4e_F#^jki)W~&3NO~-oOQ~ zvwL!87vG6o8GWUH&5}wh#fEc2V!mD#XKogz3MB*_af^J~@9WTZLz(I8q*aAJTb$Sv zkEci940~u+e#36Eyh-m-;np2pg-J=9zZ5Pz>2qG))!MUb+GfY!ZQr}TF*fp<&QOZ@ z&Z>|l>cMb8mOp1TclxFYj(7JRJu=<j{{D^mf9=zLzt}8)Gx47*^RK$R&%d~w_Py9& zUjICSi{-;DE1xw9MMpj~Ucb7}p2udj#O?OF>TPB-Zm8KEWxbNyAkJU&Z9#wVVU}#! zwN42oF^_LeEb$I8S@C>JXLq5_{QKYce(hNip3rNy^X~7Pt$(lGad^)e8Xvyl`!>&c zrz4a%`s&PcPdp?#SunwV=lv5691Abc5K=Y}{w~N=Y2%zD&7tU-|9JPt^z-}f)O}<A zU9of9<A>bV=hxqQYQEbxwWt2s=a{c+nx{T8i(7MC;<?lrGw$e`XLeO8v#flt-`FkJ zY*1#*IC-XS$nNM3``5&L+`QqfI(Oh<fhHZ-$y0N*1AH2a9v;!oiW4}XVj-B+>seRz zBu*xye{J@Anbg~CbKmYgAhK?H{j_59Ikjba_SyR~j)jP1smW~RTc{e6VSQDrbZhSU zJ2NLS>NVah7Myt3WWvwQ=j{{U@Xei|Y&zx6_mr*c*`iHiZ%lRBl+JBwe{b~-8{Q4~ z-{cD}e{weC^-9sR&x9X~asD~9ZQG8jJ9{$9-f<;eOE{v^bi%n>uGuA!(`GK~HLoMv zMQ+ZPG_?BrpDW(uu5QTBzSMs&K_?Kw3fa3~^Z%TlR`GUH)g<4vQ%%}4lsSFU4D~qd zw^`ZoZP|K7%jIfM*S%E*Qd3U`{><*<675mEV6*U4VB{+&8>0;p(aCRCd%wDs&6j`W zg+7x=sK>(<37Rja-7Nck((cCt?V_O0b9ROYRW{9hd)fc~ww8(KG$v%SJe|>;b&9i@ zD=PG+`M=#_q8q+3=t*d-k=^p5j_Li(1#D-yJeveWn06%YVEGcr%XYxvk<=f%VujOE z;_X>3-rx2dzgzt*_O4u0*Q?%suF3cP4f}c?6}`UcYI;<^X!^#Q$U`0}_c-qy_}czJ zW_8+&`SU%hOD3euO}=tRXUg402HgxRLK2@aXgH<36WoxH%+K=Sy<_dlpuVzKX&0KV zyY8)fWvm)I_4<o1uYA2b&M&{o$G%Vg$iu9FYUPz{ymkq*=yiWzlHR3f<PjtveTVZ4 zqX^IAU1GAWOBh1F*r+aEvcc-Nl3)eXi>+VgZ#^x+{8o1{b7*VB0f%?#%nmGChtGYv zvCzJ7^M13-XYTM#sI)KO&gpJeQH;`9%NwwDCU0aq>yqOKLQP-K;$L#b$U|fXt823A zniXO5CVo(1@piYKI)9tO@8Axpb#`+PueQBt6kI7Mm=L{$XO6!QZ@Xhl^BN9sg_|c1 zv&V9rJ?*FYtuV<{^s=Ca)X9sUo}QUb3USOI3POwI?W68(JM#bBv|nQX-)fz^a$1F% z>G9qruMgOYy_kEA>AK|a;3}?ZzxOFUSbjkC`lhSV9{SE@=Ns1+)dgHQ_VvZpk5PID zcjlyoeAYj>x}kqg3ct!e@gBvwg(}lRuZGuHepk4DCGLWI7q47MTq(mU27%Ko+KK<! zW5Yvordk~T_fl7V(NX8*1k=|hRfax)<igg<{t77GzH{&WuqcU}j<?_P9hks;oNv>F ziQ8WI%y^^Qe0_<^lxnZq!-elQOi41+Sh;?c%V(LHRUesO^xQw)e{HSxzK9gt{~x41 zw;gn^)ru^&-v9388LlqfGw*NJ+iUf|nRxF+SuShOuj0FlyTlwMkDKkX4Q=WQjBmYt z==U|<V+&XQib&39VOW{ox%KjnV=uP*E^VH<ME`j1&h`1{4`m*Gt8>+{>t5pORXNG> z+>#12gksL_O8+g}`gg_;uaovA?k08?nfI6HO@3jVHS^2X4__lazcZvYF*9WUUgP}J z)%x}P+jkl~x2UarZaec#a^N9OGY_E&TfS|6a^7I|*(FK;H*U9Qz0DllEjHI$Oe}`w zLSsV)=VO)T1;6qioS$r>ZSa?AL0%I>y7<?v0&zaIxr@u^EU-20|6@DN^)2h$<9+PC zzF*$=hL$OvHq-O^BYso*Yx(SDOCRL;u&ny{My{Eozs4oW-h8da>Qfm94{Q<V`mXo0 zS2oN0-+TM4tFQby*YO#Do!Rqx&Xun8i|<-$MV>E=>6>=3te98h3g?IO-;;JV=4(iA zQ!ldTQ4!sl8!<sAX>KO-pBh<RwXz3Sx)np0ehhX_X1V{>w#p#5nlsY!Ve_PW%CDnV zOU#-2Ho`PQYuDC)zh6%Dw_Gr_H1@p$+pFLJF11BHWtl5GpD#Qq%H=Wl?vFP&*ZPF~ zP|TcIG3VyDXNUi;6gB0$W@(hrvch)jx~lh%&!;5hUb>}j$UjM<^5Va%>edx8mh)2| zZ!TpMPby(Qv+n1;pFE7GRlN2e5A+PqHMq$B{N~%g_o`}C_cD63u>Q<{$Goj-t-ch) z2Njkde0xB5Ha__J=&*fdpx^iZuY*Dso}D=1<O6oraFN`w!>&`$^LS;uuk5wkvu@(e zfS*>`HaE{Wu+$#U+t9u0tfBcG-V-hx#V_=y=<Jw$<1KsW??M;RqlQ<WRya6?x7tN% z7;OLl^VRhIiNF8)g&cNK4@|wlw!BvU?d14>i=?+(ohi7sz(KdD<;6$!r909VEt8lX zzT^(K@|r*s2{XMi7ljo?0urGii%uPV?K3%>jYs5}=f-bKvNunXe(kG%U}Aoomcf+_ z^N`!DpNl5G@Cnu5x!vQ(A<Gqy?@P1a-OnVqUz|V4pC>L^Ehiv5a$&!UVfQ0d*>+iV zrvx_ZU&}ggY|5Itu)cxIPEBURuWMV`|Fj<Y@lh{i)ABfzU-g~Zk}Goq0_^N1gt<0z zo32wl%~f%JbGK^Y7wI_*!;f~&skGzXVDwIuz2d^<ljloJtTktzUNqNjD%U}?Ilrg< zpBoYy_+EGQs-4#E^)HgSePVWWdM-6=@ag~6|NGfPJLO;V-UeAdlVqOFz!W}v+xz`V zyWi&DzIuB7iU8Y+C&xE_nJ4@srN=U34^KhWdo`I&*Yv8=ly;o{d9irM7KRV1yXtsv z<$O8%>vOr7gInwUXkD&V+l3AV1%-c&NzOIgmg%#{wt;)!_k4*BRUew?<e2sqb*KEf zIO|JciFjA#B#-DIfrG}&xlFZq=S*pot7nN?`^i2eY|7?q_8ZslQvcfNx!%><Ax$Ae z`1*v}cZz9ZZ#hIozFqO1uqB{IbeZG9>SG=L_Mg?nIGD~m?p@W%)UH`|ZS}7QS10>g zWrh`mY}_uGkQOR6@l1HA@Y4H@r?xw21i0#lx(Y`m%~~RGwS1ey(KnxSmSoJ|sypM0 zN@qi9nx~jR(CTX~jpl}YYqK>Teb17#?{}D-X&bKgEpDq5gJtL6jZs?`6vW%Vdii&1 zT_oq)gOZ$Y8Wf~g9+L@ND#QJMX&L8Y2gy~Xd()%$sLyrZ#}f4QTAR}Yq2q0n)oV_< z%*-s-{WIzJ1lP&-St`{N16mZWU%YYN`)YNc?B`TliG$_ac86RpstS7RBY%DM$!-?g z=t)nvF?`G0BJ%3dL8q>5Jt9{hNc4M8XjXd>^z#abUSF{F%Vx$`vU<;j>?ICdT2ef< zs&wMN++^_vZ_)o5vMWDTTA6SCA7e0S+n3l&ZV#?Zm7cTR@xb{B`IdJNyYDlz-XW6z zHk+Y=dFqXKtT~!$8+|yecQEfSdh{#VM*jD&W~Q^%sj6lxTPHY8s_VVi{Qugbw@sY8 z!{_lwWv{DT7cOz}^yY`}-<~gF+A;O;clYzw*AB|t9Jjq>YP@jyvEv<I<5oA{TP=6c zwVLJInj=5O=E{82n&hb*5b|@M;i|RUW0o**vPf_kJo_1NsUyYsxMNeq>g=pJ@%xz; z=ed40Km0u~^?v>L6kE=>XB0TuyiT(*ExN(Id!Kv^$N6YwgLj6P+p1Q3PrYHVao3Xj z;ZCm&oqb%I4ANR<`OA`DSy{cD7#n#c=yG8}8-vS#vttuiUN4(D$1tYGH=)6>Q2m>( z8wb}LA>n2HJ3gmhatNRQj#(}8>Cfjgqn^4by)=7wyzJX^G57ry8{M_F8%-`-8NMs~ zP>@^w<lWn7+tWU^tG1ll*RSKlpc0myvWm$z=zjgm;~TEnI{cQ>>)q(Us~}<WH~ZfH z^^=X~X-THry<Et)Vt3%11&i2kXNf#M<QAyCZ2PRvK<|2~sPNSAb^E`>-~5;?*}eSw z`q$bwK|SoPyMHczzx}|g_=TI81j-)CWb?n1d3t-xdiivgscI>^)fwX&Ki|vwztiD} zGXt;Z`d_^^f>~GpzY#HAxu)E?ch$`EO1XX|(?eM1%YXf%_GNwbd%4wOZ&bf6v01M? zsZYe#xsLxs@|*ZybMODIezCb}(R(4KvRARW?>{~}yZ7%U*QQGfInJW;{ALS(ZVumg zi*=vU#>D+{%w<g~^J<E>h-gbJF>+1H*zxWjyX4~QHY?&SoR+g~xb)jw`RB#@aJDUa z6Q0-ZiW6P`{Hh;+IZNm<kFKs;24M!GO{=<JB&cLeH2k(~!lP{yUd0<8Tv(?3x>2f8 zXyt>)g`Ng($$KQGY`8Bh+Bwy+#_9dyI~|jh_SEEto%_M}nQ!5doBy9qDdC@1#!%W- zz;ecG-NPk+^EEA{8CNbzxhl(9e#bQY{P#X?-g$eoDt4)8e7zKZ+m&(gt=v8G`|lV2 zXWBg7`}XbAe;ISt#BBR3^o(2d11}0L6}l>?aEpD8qP*=?mvWuXq~<kBlIJgJZDVL) z)%@~VG3vtqB%glu|H);lzt`V*U-R02<Jq$O`j5@^sqH_Lqc25so)^rYYj*zjetCoJ zn=i|+JnPKb)6^xiVA3R`IsG17mR)azLM56dRQihVA7683g_C+$w&VWPFxSFMlKhS9 zD>MtWxxR^{xVVZuRDW~$fCDqX*=xy-|4oEa-}9Esc5N{@sC2eu@1EtimzYLHMx>fD zmW4j&{vD+tT`Iw*md<r7JEV8vt2veXHczr;`LxhEanG`|#;i+PL-(yxIr)7X`-cRF zPRY&lrhF0Q?%KJ!TlwbUZLcQEzT=#1TvKL#V6H&o<y}|TY(D=)&vk14hkO5~*GT7I zFU%@@xGz1_tRZ$Y-;cDdr%L`dEuPnVWy4V|1#ZVPQYt4_-*e_+ofG`m=VR%vWG1nb zZMkxL^C!(%_$|8Yh>_NWW6w2qCo}DIuxIPo5*iStcOdpsb?NR`dg|G?MPGaUU8VHd z>c|<*Z2lFMzMn!FPO`3fdPDp4QM-gCt60|Vdd9i>(Y%6ZfA+Z?OKV&{^*e*%Ay@nQ zqsFcGt)$)m^DdbgZKEFg;_kN;U*-?5q;F}@k-VmJ>)`y`o>f-rT|Z}O+>i~Kz4hIi zdz(`qOf;$!w@Uf+hJj6zaf@v2uf~;Y9d?ObeYchEmT=v-3rQYlnJ+(Q=<&=kc6e_b zlWg-l!DoW0$FcKl3_ltSv(83OVVeKY^L)hm*}XOA*Dbrhsr~EnZyWv`@atw~U|${U zGAY4ojl4_l8H?z73bxB9w&Y7Z(Ld64s;fRHdHThC#*#xp=J)^XE01f?->4_Qc$IW| z+iw-klNY0`Z!iZ~-Z0f>w9cOz!K(Mj)w(Nvo~BFJ$JHl3#=87i`=-g|d5(VesmND0 zPL7}L9#>ZU4xYr3{?;>l3&$&&<MZ4^Z_jVM)#<`7KX3n*n&-QGu5a7c^}i`>UZl2d zw*AXGgMHt&-Hi)n%J^YpaO{x$a&aqf_t^S5|Mw=%v{bO{uB+K#HtE`mNutL#?$*uo z=_zFhP+@GcU{2q<^60E1&ns@9bB>-J_&lEHgictb<#&ri?mt|kSN^ULpPmvl=ZXFH zFx6My7sCGWHC*HPyRh(kTruz4`^S@>Z;y|8GpE@(i?`^aLx%gBJJ#zmKOSU1|Muu- z?W4D5ZtU=Xkd?l83G3P^^&g-AH#g?~c6~*KGFMg7l$!|$qt^B(wTP_c_1q@(ac@o2 z`*$B_e%o}bMP6LQYH_b_piMc`p95PgyJdqjmD?j5?2k8od!Ds$;gV{W%a@baKAo?3 z{QtA~+m~No|7Cg$RCI<O|FU-r*U{Ey>ue+OxrVFXl`!?RdVXy_^}_7-xy)C3d92nu zRG$hOUd@=(ZhPa_obNx+{QGr|yD@(9;q3Tw#&tb`e!3Uu#@yVk&>21Z;%u|lBoECS zoQ~6D1Q!^1n18vf&&>Sq_1{wC3vpND70;v!IX+6id~=Vb%X*{L9lv9Zx2)Cb+q1g% ze)=WndY`N_si{T<G3EllC6`URGxwZWYs{j>uD0FA%q*b-l01cJf3NmA)o1QcRJ{;h znP586uaH%$y1rcC(Y`=|peWG_X01KO_x=2Cx7$CCDdU%!uw}iUWA19p%sC+kZu%X( zwe`34@fq8<iuSl$&zsS4g~6canvI&g#s@!<oQJilwR1b$h0WB$tB%)Q{H}B$%zuq~ zOmVSXy7;|AH=NYgoZF<(I#F0Y=Ig#D&4~)X*c8pzmu;<&f2+yWKGC9+>)XKq2h%I9 z+yC5@Iln^eX6O9)y<E)-EujKm>azYTb#TUL3wG?xn{T}3uh}~(BYwxZ7q59lT~b|H zyJNnlN?Q6-byucxCeA2<c-fYMhQ%5M#+Ul`CT-ojbJrT-&H8qW`TnK&XdEf&I&#nc zKI8ZA+0}9LC6DLm_FQD2XL|2+<j)&TVKZMwvGd6bdd@vJZ_?bIj1|Tu99qJ+1UOzZ zstdR3*|8n#)!O^k_WN($)jh{1CVF_)*y}%cKbewu{#na`Ba76p>TAX}Y`Rw-FKWPF zJ(o2sXx+NS?lY@-(hq4qiaR)K@2Y){kG>Vm(C1;=%JwlwxAy*}AE6;`3^8fFo1|jA zlaAbswQcmzGUoDS+vBEk>3H&m(C${NZF9AmXYFw3FK{|4>G+hx*leq<?M~SjqMvi7 z-+Xra-`AaUC;mL+J1eZSxy|;VZqAn&t@(mN_fFmjy7+D>W81yHCjPgEb5`}NP4fD9 zp)8M&zs>Su=Hdr2C-beeG-e;TlJID8YrukM-%CqPqvo?b_?^bPtS3_Z;1=oK^%gHJ zr5SH8N-!>be@!p$<f{!|x5@N7#xnlCWwk=$dSJ-MGjDc&jeCFD^W^3_zQ#?LuXWG+ z|M+{m-GOOk3}$O1W7vIyH}JTWzkNQ1{nY%kH{DMuDh4P$G`pt#=Wy=t@6BHmBt$*x z&sTSQeY$$K_+R<O6BarvtDdy$-mbd!*;YoXfO*@gtZP$$`0ovxmc{b(PrU!HOJ}Aj z*54P`pRGGvKC0-M=9S3HMiDR98ZO@Z_x<0$hgCnW&w0CQ);Xv9d1AuBK|RX8Yvgt- z-2E2FXt?w{N5q4gm)~z!t?}N>{CsokhBe_Q3$H4^;`ma&@m92-knrb2TCejqZ+?B( zx7#}JZQAcM%U-sv`u8@d>?~j1kALrP-T%2fe&heo^?SG4|3BH^<Mrp#w+&h1rJuBa zc{S+1daBp`?s?Aj>-rh-tU8JBZ#RBlFIXA3w65YqghK+mN$H%2J95jPy$ujPC%*FP zADLg=hKjfRV=K3YR4=*axZs!5{Kh9!k2bOM=yg2V<g~!@Txa%=C6=#k7qdS1({;Gw zej|6~y>rG&(P2xS6>M3*n;$RU($~Tlyln>S{Z?5<J(~+^a<j$R6uvPOK3lExmZwMS z-VIitdAsI*ws>nJToV2I=cE?p%>K`c8~CSwH~z=5HS^!IS%3ek87yF#?D}!;#@@#T zGFO-q#CQT4`UH~r7z!>}@-8TMwO;*u^Xk>o^VUl+bNNoKh|4{1e&O)@&krAJY*2eC zb?AFRiAi@7%eU<1_qMNZP~0}-{j@JSw_lX4Vat9T_1Zx(;Ch9H^@=setM5PRpRS+O zG%+efDj+~{-)pB1-Dx}P^2+O${heGJB{r?Svt;@I_Gj!lh28UKpN|VWT43=iX?Dwt z+=inE?*+-NKX7&1?zOi}t`;@yKkIb9F}>=3(hTEA5kJJQD;HeQRuhagxLe^D^X7)5 z(yZ6t-Y=|MzxVe3ZOgB(|N5Gfp+Y=P?_avw;sf&nxFYASklNK^wOk-!Va<Y_TU#oM zmp(b)Yf>f0t#xRIqqf(NS6em&hxRYs$hzR~9BVy=RqJ%@S4nSMc)0uW@2|$ptNOFG zi}GK{G@eTTddBmIrtnd{Zl3(Yum7j-@QY(VI*GyKz)Fz~kNCf{U-~T`#&|rFA;Up; zj*sZy+~0e|8pPM%n(Jw9E8pi~c5T&0>#2=t8(rUcuyvlC$^V$`TqD<;wjULb+o}_t zrkh!ZYEFLSy=ZRUi+2-!Gz&O491h<9?Voz1;vB|#0w2OJ+_)M3cClFb?1`st6+KY! z`ca)5GLdOhecr+S2PFUhD0MRB;tL9mKet#nN4<eR{>HyRGX_VQj2DZOTi!Gslj5k3 zzWnJy=$zIZfey>m(Ab$@9QGK_*XI-Qddb4dW4rZU@OrM81^)#)I9TS%*IUhxwEjFJ z+j#q;;MGxQMRX4_IqOVn^ytcVyEsGiXfAhB+us(kE=}W`PUapLqQb)z<fD{=7vFW> z;&|@cy%+}e^{d2J%4V-&dAV@+wlwAI0`~6}CakKvVQoF9d#UBW%QgI_8T@a~y;lD= z`TRfq6$L+j>=K>w?VC=Tno-?8uQY|H!fG+i37bO&=6dlv`IJN$i3p|fSO0c-|B%)7 zu0%!ayY_fntv_{h*T{sbt~|FxqE@dUs8xnPd9g%uuJXRU3)Xh3Xl@Rgo!qx)75}k~ zeI5bA!nazsCd_}##@ZQJUE00#VntuwUg`NWZ6E&r&d&ZY?Hf0{tL@Zz497|z@4K>_ zvv7CXd$Yq+_wEP^KDjG5`kt#B_v+=QT5hcOt?kxqn9S25^1*WUvGZG+bL4u?imdC- z(mmtKU3Yxj{MgM+Q@2glx{>7VF+q5-_3f|cUaed&mFW4v_{B}HN2`QhtGv=oDxEj; z?zGu+9>0#9`D!iitIW~~2X9vyob$=`VlfM6JrK9ElT#__ze2+DhzHkZ@-MJnIluUp z;lfuBIud0y&Pnc)i4(mP;m{-1yLs+be%1#ehFd1Bo+mwd&IP9fYPTc4ykE5M+Pv={ zOU{>WTKi|J1E=2URR8F(&^H>ljkcLe7v^ca(E7OcP|AeI9EmXszcSLpCa=w|UUB?} z=8tTZ%dc|3mX;`<IAzwe@o#lWbc}L{&;y3=6B$*0EVrETP)eO4W0lsfh<?sa@$VBZ z<|XR~aNa$C)S%|(zOv2PS3j74yKtau=grxvwky70t99u3*UP|AA?GY}CgS38?Qh*L zeje7C{jBpTqxR0bTyKOex(m15TAY)5`_`RrUCpy>UNai`vh1I9!@V{|s_}!A@yXlw zW<_27UFm&h->)~bzuEuT{Xg*Y=f!`&u(SU@=x(1gz4&_HkEHp3o?bfek$p}y({!eF zy;tieYp5N3a#gQkd1S_1p2_|jA9C0jnDyL}PqCPAG`w5g=-iUeEuT-MZ>-Ay=4pI( zF_(_R1~%!I@BEj(UK6iO7g=zoX5ZcNb(=V^^A`L&W2JrMajWBjpwEHYleS14epa2B z9V>Be`Q0tQZ@lAFa({i2^^TDBs@lxF>$OE2Ho9yQf4yjL?2(`b+gq2`i5Z=^ljd(R z|IKT6nIO&`4|<|El+IfJ@w;vC3DIA2dnH5^ek^^<eV{0MzR-c#-!m7AmM+sg@JjUg zq{)+4d{nsQW_)np;bYtr4+;mIkPLmzW0Di_t}`La=$zKun;PdrwSs+F#UAfCcJQc* zyZEGUJAT|-wM93hd)=CB&Zk=T!cI$5Osp2nJ{8)%@b>%j$+wp+`X7B@cMSV?UOt91 z&zU0@?`!AdeG<3&fMEK<s+{NBssuMLi@kL=mpSIW=Drta8cs@1XLyzWGJe8&;Vb<1 z@m>DWRv(J9g^C-~@2Pxi&pt9S<ssL3w+Ck|@(fn47N5I8e9m6S+p~{c`P#QsRA+`$ zG~a@>+ugD$3O`JGY#+%NPdF`k<Ywc~pU%})e{byv54}!Z_V9b)(hzy^^#7C0I=PNG zSgjEkel>GZ<O}IjE^7Sm4CdTw|Ndd#^CfZhYTryc-XuTODNvg(b3OE<v4@jPU0p=f zR@2A7)0cOOS_<+{6Ij3UdC1?;9S<h{eO7nY?o{{UmTPVI;-bI2JiH)0=z_ok^W!zo zzf>OCboN1yB$H};*uoZ}{g-dVM*fHq{SczE$kijg^vR~Xo6r9}wzOiy?NxqqGRYz{ znzBP$!`NP}$@x(~=gq_J9GRb{-+wm?)rhLzTv8_emL<<*?xcG%$6j``o~UzW)tD2V zx~NlS%Ari}&kWy>D_={vasR^FDu+j*5i$JC^=xj^EVuQvEZ(l0z1Y%>x%QZZg3azl z3JT{vyb^AIe620={j^oonLX{7qozhQd^)qS|A6oTzK`01vUU?vd^!Zy?lAbU_{R*z zk45YiJM3fI{924Q><>A+thm(bp@LLh^znA3Z52YH@f}<LvkANp6m<-{c1P0IMrOvI zsn!<9l3wlfnRUPCmHQUO75b5!si&^{xYhnSr^Va8Xx<q|$7JS}G66g416Y@8ee6i! ze=I&T<l2kQBc(DM)Rykci?2F8^WclemvxHYdzZSM_^I2R&(3ozYMu9^n_^3^F3P%f z@jshMf)=~BM!|{fW#?GBB4rLfDXu!-e%_KLdB?`be-|=)A7|^}mA;gr`5{bF;BoT0 z-p9|cJnq=5ym0-hQ)^<s*}gcDDG)nl?{5~N;A*qb?8mRau{JaH^a*`<`rOw2(5h7y z-)5-CvWK|U);DrRv4-s0`(g8qYh@8a-;TcgvT5$rWaG^BhUcrkwsZ=rTsK_pZYSt- z@Wk;(t-Gfe#vcB7@W%g@T9ef$#67$b`*7b~wK?frDw&RJzQ3Pk$JY4s*0kV|UnLvs zBTSb&-ruuipS!ih>BD<V7w(9A>X{Hb$2Nd@_TvS{>l4l`cT_O=T=|IQ`l=UyI&Cey zz68precdpj&X1ReNi6Pfsp9IVa~8@+T}|!|?$nty)!;^p&xDR-dH+T8)wi<S`Z1Yw zE}FEh>vZPpuOAE~s&{N{H=I_g>Tr{F8QUDohDrO@@13=uEp@h!Xy20HQn9l3e@B|{ z8M_=f-!l95t*Y0dQrsD<`P9TZyXU2AhArn_+q<(m%&Dlm^z_f0tv9dC3pae#Xd@F{ zRB0#B^O~uMX^QY<PXD^F?-LWmWM)p;dF<2~+u);WFHB65-|y-_a{I~mx6=Cc>vhlO z<lp~y|Lu*s`n=y&yr=TSna-@aHk*at{QT8zc8_-&J)Aj3CNr;EQ2OAC)sI6j|Nd?L z?zUr{zVXTe;YTKaAD?VJZ;?E=;an<<Y@@yZ61fQ+8*GpM;MwSWBWUZH?z{T>Z@zpm z{rxGwZ`*ITjq-oL9;^HIDyO{toAvy^J9X`UXjfPN@mc({DND|$PxyP~i>)tg6i+fS zxE0=fd^dacaoO*Mo3|&d>=d19EXk5k{lr=&G1U0x^v}{aBl|u-sk?kn=<b@fRlAKj z-dPGBn#r7EWY%yjnbYvxi5-=?6Q1-u_nkid!X%Gq`wQp7d`mnp`A@P~KYQkH>#h9} zKVmo9rIyR2yxe!@`Pu0wtt=)~^u77`^GnLb);D`zJlGg-oxJ>&k7(1XFPl3XoV9M5 zv#&{v46c8t7+_-&o%`6(?{jpzVP{W|!1Wypt#?x{OKEU1G$sh<1ZN1JXxrsGN1Sot z!q1N;Ot8McYqvr4q6b3Xj$D1Ep4BHKe?r3f&5FXgG0gfbKkaro|6a1W_{U1ubk%5f z_07NcCd_U9u;@)l^zzS#v#X8mlkP?|TuYf!@cG{1?dObV8tO>&e0%lT|IO3t_YZ3~ z-?HbZ;!SX{tNs@H`^V$>N1vyKd8|lXy|=<$j3vU9De`aaah|<Azxe0*_k79zcb1j= z^v`=%)roZrq7S7kbNqL5{#oX)`xqu|RXXx-mfg|SKkQl`ABaefy*aO`W}(OBQ!Kw! zUrtR~C-~=p%$aFdSy$MHg#7*T%d`%(rS(wuO8H6Bt620V{5@WK@5iha>26W8zW>`@ zpm1xJ@&0G^zgH}ln-dax%dI!}(wW;Tp(QHsR=wGfdZm|ps{hI>(T|ko7A#fST<aF- zdanLb?+k10m4B)}Y|IUvcJ`TA$!e90tF?~vmHz!!{5`+^=DNe$UnV;|f2Lu~tNQNl z{Z9qgo2}P}>@M`}c3?Ye!hYC6>xALs8L!PE!h712c21i4q`1a^dIRsr<>A*|H@jb` zPBT3%{HxIA)6w%*!NG}3BN7e6Rti{D1hpP;3*G+h{pFblf0^)Agzen>{8bJcdxFp2 zN<ZN<-#6S3_I|WYxUpk%_?zH~3RC9P2?mJt-F5zabMln!ORCy`Bu`qEXZ%JYJLAn$ zXZ@_37Ze*(mu1~wq`;$H`?7br@~ww6t#xx}R^AWYQoybHNl)Mymxz1lv=d8w7W3}7 z$5pdYKkU*b%d$d;qtC8Pnh|CfB(No*;)J$iLO8$6udVAlmj&DCWj+ZCH0rjzAS9Wh zv?b7?M(IH6o%^9o5leQ4hq>r9y<V|QcgFtR>tw<^e`N3MxINM9EW^Yvab1R%v-Z0b zH5sop%vpA7?!=(J|IEMRLJMtHZ@0@?8LAoo;SFDI{oFEMh6PT)1$~&5{x9JD^>rN& zo8B$9ePZ!5b{uBQT9#H_y&;j|o!Hlh?54BNbDWFMdMdhi)#AB*<pL9YS`W6*6$|?u zC}|(r(96^GGfwkXo0jVXy;JXbye7S#UZG#Nk14gvzUK72`2Xwn?)o2T&CIX+V%PT2 zEoDuGJaf9#oGgk{GoDK)>&b4B@e}y!G*xrT+1mPr=6nABsdTA!$vk;sSHN$^M*%BJ zq%<dr{Z6~MOLNE77LKfWJuHHI)r)v~yHBMro&03KarLCG^Oh0elcwF6q<X1^GotNT zONmv%wbHwaelL?klU5Z7YF{g5NlZU-&wB0@0cUk*1>L%Tvl_Es?C6L(Yc%Ekbzw<X zw`c6a!E<LGii=r(X5M)&i^W1qvuf5VN|l9tJ;AZ7@|&<vi&iw7n{SBZ%E-&ry}}1~ zfA;#l(d<InW2F{ekuQp2|IEL*#uPK1pRqvu*6vN;%3`Pf&=B-W@7TL3NWF}iVY2Lc z#*m*}%eddPsEfY{{<h$I@jPZmr5o(r-m_jLx9tr~YWw+7G9=+Z^-tU1xA%Vy{k?ks zKUe1F=uHoGi(<JOJO#fBAFC_7q!C*Czf(k4b<eYwjf*a|YH}T%DpR$3ihqKlMBxPf zbb<Z(3pTx9D{0F3ZTI(&+q{Bi9tg5;eY7Ujvt^lx14A)WKxswvo5|bO|BwHlwKcz{ zeCz+`@%uK--}i5a?dJ2hFWs5k`TWt6+`F+7Q-ASta$46!ES$ApmCMLVf>lj6X&UGC z=Ul%93SBRG{Xd^l&Gyh>@!6LS3zTmqX&vWGs!8rOW4}1>cSS7czg@hawZ6V&)b-i9 z$@ReW(yvdnj(Y6B^F6aeMQtm$D1)1Fu2jaGm9qopm8wO{$<I00%2eX%Q1GJmfmH4O z!j=Lb;h$3l%TxEwF`eVSiD%}9a~<tcOq>(uTY07}a(ZRMZ^3MlUMkojXeb=%z3$}h z`~C@C^PYz?xE+x?rnP0_)5nDenkJ-duw&Hv(#56y#I!}J@Sc1^bFGh(yQiFW#0Aq{ z8IdEu@;0b(GRU(oPHsB1G}L!$)%LBMBN8rndCKN^F-jc2$+E+CrN&d%xm<3qZe3&c z`YCqc`N1=CTh&x<ihFP3l==N~eq~0&=hOdqxU2r3Y*-LGt8DqR^|BYvMNGSN@N=Zn z^&Dfz=hN(Or!KfQ?c%fc0{L%Na@jXxzD>Hi;cU{1je8eY>UQ=xojx4hB73LmgOjs$ zH(ws_rR>fh*PBv{uBH3*aLfC;H~GGNGxf{wZ(n|Gt>*=ib$cs5{uS3%`=Ot4<gfP0 zT^1f`rbe+j{F+}Jenf8ld_?Zl7QgOqT5c0(tyys?gR?++=O(Mieqx@YS^-O{f>mRl z%csZwU0xxowTXXGnJ6c#s@k<RWhdV9z6#Itywm;t{`S|mZFwY<!@t&K{yB4}=iBo6 zb$U}Sb3{o9S47X$xt99&itB<2-ibo<oocct)t~-h-YfOeXQ9rVrk@N44+J_!v1Xk) zb@@n=nZ{)){S>1Lzm;x0=l(spw|h?aqmZwQtwT#g1v;L}P5mMvyx^6_8_~(9wg!ou zmu+0NN=$UeHn+z!3=$J9=jQ5pJ=4|Rkm~f%Bs0r;1A9N$MyCstS2e9$)RVoCLsGUy zC|N~gR(#xI-6d}qXD<JsT4n!t>%+QPtC(`w5=D;PjO>t`wIZv6k4cAN*_8#CHX7x` zZqU+BjC$B{^OTIIuZm~q&JE4n*>A6l96#8moh8P?!SJeh;<V<Qt)J$zM2Q$_ez>i^ z%JKRt7xz%v;DBkH*QskwTeXid!m9il2ZPcE7Z>*P(W>!==Oa6XYQDuWiqExRy2oe4 z^5B3&tEbPgc?AbOOMX{<P28D%(B`&#AFmAaifLD)E>3-#YMxYbPg&61hF9TV;W75N zol_kbH8cL)x$3`2$KqTCgB$aMMUGtDe!ldjlKV`b-WJI>q2<yIOSB$$Zh6;YTX<|= z(cg~5Ka=j}{onR?^8VklzfbCS$xiFPkrtS?yTQ|~mS_Jr8QZ^JQ)+iLe!mdbxu~r} zQp;@}(>~FNU<RQpXRZm}I4g4H`$p!(xlR4GGg8Zq&ifPzuGIcBFTCdT%X3OQ)9tsW zl|Db-xcX&{-mg8K+m3$|OPI_){ixD}m{L2|G^L%|RT_nHVFnD#R^II0x}diE>95mO zGoR*3Gk17T+>z8WJ2QSALxyHn)W`d#E1v(@vf%CRy?2c@TrRw4{44s!NyugCmS?Fi z6}2N785y)b9?w{1ShlQ{$@;77w;QXc>|e>T$6a3h)!UdI$5tE?ZtzYtSD7WXR_UCb zXO=vdmf>H%=M~RQoPVpePJWwfm?R$2!#QWIza~dj8GHK@tvnH)vu^V5tVHGiKDxKh z;_r^9n)y+m>W@@0sd(EQ5BXvKcl&{biEl5lvShzfJ!#tXR(zvt?-%Do$G@?Lm0CW& zeg0>exzpljPa0xXGfp%$Tnt~D;eLD7rd69owf;t$@iOK6^wi}2^0%+wVE_O9jo+J9 zZ%@;)=9&F2d+lA9BbMLq%$|8-jnmYptz5jqEJs;RxilY{<PtQg^B1$tC*P_|tM@t2 zUts>yHLYgx#T(`Z+Y}sxTKkT!N>VcBo>@8jvdf#j;g9|1C-=P6*4wWjmy|wt*K?Q6 z-=p^3NjH8rBl+KB`>pZyztl7OqfW6ml(Hrq<9*Y5>-&PL6NP#{CtKIWDoA{r@G;V8 zrCjFXjgIb%_nma8`v393-z~hGPI`r@obfzbId`>G6w|>X&8o6l>k4d~wHsWM!%qB+ zv=WvGwu<nXtHA6r_4kMA|Mt!NrM>6k49oZu|H<!4l};~gHn?t(b?9ekr{DPlnha7* zj8~GT?E2>W^y3<Jquhcr6~0cDA4_HwJiZw+-|p9uWd2{X`r@|CoWNs!x>;x9*7v?g z(j(W1+DbE|MZBM(?*IFSB)8a`rHdpIZ!j9y{B2YS*b=w!?8)eO$>=w~*gJn8|JG$G z>5^o$!nccut2ae<bIqdn(bsocM2SC`tj60beDH?Kf4{R`Yl=m$X>&=W|2!?adYftW z@0+{LWga#E=-D^RY*uyJPRs097k7CqidrtP+0x+Ub<<5}PjP#HnGsXJg&}=g3sb@c zi+2*8(o!*VCELx^)0Ov$ay(5s@x8`hL}b2%_w+^Svsf-|u(<KH_CR0i#6#DuznVF% zi{700{?y<2U-h@Y`p2m=?s;%so8iNu_`@%^|KB<3^?zpeg4NY!i;q0t9px?E9K~_v z!~QFbH$7CPg7~>?6kYT8Uio0Fx#;ZDUz#;+T4&j%N`pUeM^B&eVRF9yL;kpk&;>6# za{97e3zkN{p1Sv({hy2Px4DF!Gtl^SOyS7f$=$Cj_bdN8V|!8B^70P$Q_U~jO^@A> z)chqCx>fsfkPR!F&Frq|Rr7ZI=v&<+-^r7HVP@V7{%;JuQXG}yzgEs(<+@nnp`b>} z&3e}Vx<5{|o?6vz{ylf*`6cny3ENvI_ep*{cE9jJ(%f8m?&)RCw|_qf?^*Xb>Cq#O z-%1<QHCMcQv2o5C%?BS{DmY9t*4b-yEcodsR+}v2F4mM$uExKp_V7g8(4KxB0hYA_ z0Y&1Wp`y)qR~|oa_`p+)^X<DO-xeJ0QR*x@uu)%YzUX(4O#)e)?=@%Cte-Mp)yZjZ z@_je^Y_S~zSx1->i@1Ag_AF&je4KgogbjnWC)eSHQ`WXf_Uj646ye-7Wy;@bLr>>L z0XOG2ve)xXSupEB%JTb@)pz}~Ui_=qd5+;VwQIq@k2ZaL=(peE>X)v)kI((Cu}ad^ z4-fso@lcqf<f3Ot?9Fc*`vtpF47JSWguhQ#+U)<&VgA=8f7dB2{a(YzbLvX{9N8%! zK2ATk>fp>vQom;Lt8XpQc=+X%b-}jA&eUav-iF??*WF_qmU!|kRh?S@C;k1~m8!n8 z*D{>>(<8o7)hF2WmkK9;j^O?^d%jII(`xllW;xPS8n{GJQ9!%Zszl|EP+WK1wH^HL zTqb|LJZrO;*cpXKzOP>U&3+RibYY=frN4mf%?}68eCKwMyR~}VuK8xH@uCNHjuoh7 zI(umD>-MZ_d|s2K_IB;ucXAG=T|dORzCBy@OigOT98b}!GT|NHmd#K}aGT3KPnj#g zZBfxH&#E`tHEz2<+U#-V<`I_W|Hm(3I@9D{|5b-gyfX|6^?!(PvYm}={JYN8ks;^B zwtF+vZXbKz^0~qC-I_mdZO<_a$r&-I&E31`LFuJpyWqdO-@Y!~lOJBuG>!H9_la8n z0#55+YxJ1=*sfWwtl|88rMEY~aWW+dR61Q+_0aq0t-RCbZ?(-Y{OP_n;hWkF%ail` z{SU-3IE3z0|G0H=&e0s7ph<7N9{zcg@x0K=`am6{xw`ngQnr5oOPUX@)w;K-^za>? zH+Sk8t~G13@0+h|)@E5(`|JFkf2Z<Zhi|*`ea(_vtY_wE&1Kv6*26|(w#}3atGU?s zzDh9sKR4Zdqchio>PxnQCsymZJe(ZvaPU4uM?s5}`{QLZQsqwW4?Hm8mwx)Kl?=a^ zmNu8EtpAr~qw$tqID*N2;gtN}Hy>sxOQvt~N|60{!PtTS{GszjySE<<{W16L6uDcr zb8pqpP5sgEU9a@5-IN3Kg>0(%ntH6%4Hx+zsI!i5&R+B5%EX5^<=CVRq#akeW-q*W zu|lopnueW^2uIAd^xyHXer{lvXg0qzZ8^90nQdhbYdoe*N}p7%*E{*o!d0JYt$YIm z8>}o=_S=fw_B?5SdxBWwx_!r;x7y9~Uo&xr@P?hM4+*ed@LX_d^Sr+zi$8v_H%u>( zU2WU1zgw=Uh9l~vO4Xa+N2=fT=Uoo=$>cI{cJ2O_{C<CJe(j;oNrmrzFMR)h#-u5G z1&S?RX0uJW5?!@AB4lN=VD;_E$4}=>J-bQq%1y5eDp5Q4M}IsJo#S=3%U3yUwn+TR z{Yy5#d4A!qOq|4KFX<=g-$S<jzrX3voAYnJeocyBugjqSC$#-n>a5Kfn^`s9JWF2Y z!rbB<ta!uqmw?B@<q;?SRdNH`;v*|NS8*Iuz4*Xkp^W@Q#wWoWugM-?tQBq2ylm&& z&?ygdq%OABul8E}%1q1IRrK~85eeB_sySulR$4Er#7wIB9+cepW+!h~b2jen5eAd9 z#_pO+SKQNDsIw@^lZE}@s`^};6<-es=!EwMl(1e~b4QbL?zfcGq)&bO9vc5XZMyv4 zZ_mh!{tKR4ipt(G<1Jh7a7<mzai(Yex>bBzN+qK<yf``G`wY=9-_(=$&z`gVO2%oQ z<J;8PrZSavo;tkE>*Mw2eZD5zq04o>CD<81I<+-!RKGfBlHEq8m*-}zJloMS_gv9b z!G7CqovK9}MXucT?GqQR{dR5fRi<o<2a=0FO_gZ*trOMvJL>ABiiGoX0;ftH+{1pm z)1>aM!HZn6$EVwx%Ul&%LmV1-StiZ<F1=}KlVet_YyP^G?>Ya3oN>6H^k!m{eQ2Rg zMq%LTn!Kx5k2n2J*}wY8g#wACW$P76!!_h~$S*jSXBFL0Ur_7O65D#eRc3Fmiv8*p z+zKz!vueY3u2tNzy;(U$LPS+Kq)TtR`(}y%*FvXF7BXI`Q$7EIf@r+>%Z&?Gs@vGN zNQ5rF7_c_+^_dGyrtI!DA;D4mR2jmrFd0o)=Vkhn@qpA3h1kT~Z++xge2#44eSMkF zy5O36&;`F1jmX~3jI(~PQ7C3@{kyB?u26UXk}0c?@89ONJ61o&xk21|$Fr+lxpj|< zBUg4iJ+0sWthsQGsCsC^oB3b#WVW2tv$#3$?Jc|f+4)@0A{krnu6c9xNr&e)QC5Km z^4ss)85A_-hVE{3^4enWx?rsWPiV^W_TQ49YVYT$p5PTIkd2(Xvidh~$mzgJ)6G&o z(>LhboKN1BJ$1MBixmP1+zO6%2Tp8yaDB#&#jaZHZ|B)HJuebirzYDObF{5+L(}3% z75_BkS~s@yG4$kkAN(wHFJbPA+kpXs%k~{v*{m5dtxWpjx3_NdAK0!mW#IfVRlSDq zSqJk6z5uT`d<<I_3$>~gyu7#QXvdWMjVu-no7TiVo%ZFo#Fm4sZ!d}SPX1kd;cLXS z^|vZ#+`j#f?R;Tt<<1jn>Z&WUjEkgu7OxQFvf=BkXN^$IWnF)2TEAK{TefqonCeg2 z49>74r`)$~+I8l;sDwz4fbZml*E^)A<!@ydKEFTh?B-Lm*1q-=>CI^QX%X3B^=@ja ze^)J6qq@9!?AsfSF`G>LGMYbKtXf^05X3(1e%t%&>*NEc&Twz7esq4S`YqkiCqL&g z?y=hJ%c-{PHP3=<_SXkPZwlW!^=@s9UD6hXtIt^3R?9Bi>{H-&w`^XS^gPusT_2v$ zdwx-+Yxl{vD~_GD0WX_bpT*k>H8_a=Sk@A>(IxgvbtnVN&B}$o4$~$xS2^D<&%bR} zae2e<_qU6FD)0VT;U^xr_uh->fTMlWniC8R(wsMiA3avkCU@(`oR=R?2p(3{<2vwW z^0^MlubfZXleS1V+>^~o;}H+d*rY%CpZA524&PgEy!9(<PB2s4q<sFR*jg3IwZ%tt zw325l$#RFjSzW@H)%#V=T3do;%Sx7%n~TyvY>tU;3fySdqnQ_WwdsiQ{zwirwfvo2 zYLT)f`IGIQEfCW-X3EKG-MV2v3qMblv}@9u$+ot2o66_U-P)G)aK+K%=WqYL%bdi& z$!pU!Pfi=XrEh<Ky_Re3_)^f}+_r*0WtvjL9fjRin`1Xz?%8;PZ9?;-{^<VW-TU2r zk~Vn$4t=|>6Lf*|Ct0=XfL6oc`3(;q`F=Zi)AzLh?f8G|_U?;&qka4JYuEkTUVl>M zk2x6mjp2qPL-Y%a2?dp`hxzy1-gH|_Butb^QmU<o>p;TgTj6|yGQJ|eCcJb!KV_0e z*!k|LrD1BNH+uzMW}LatuB!P_E|Ae!b$8mu+3y_x+`TJ(NhAAJ>zS^Zw?(2q>nDcD z^sLZM&VO_F>+3T-F%OqC9kS}Y^`3K5v$WsW_~a*2!kNww0xs4$bSba?`Q~Jn_T;P5 zY|bn8-Qy^F_<G8Wvvu*@%<;j8wuCYYF6t5wJkT5RUsr$5?^oH+uiRX9YQd_4t7fVR ztC?g&A8dFw`%l}XNE;<v_XQW#ljrZ5@K`s~)|@qv`S<sQ0lp<RTbJ-nF|_2hl4V{0 zLY~)M{{rKccU=u`)7w`v9X~wRmjB5He!)4GFQ#ztRWz}v)_fI_TK(~;qhk4=siCgX zi(gp@h}<x<tO@1u*&gB2z3xtOkF}cN^z|vr4?O2qbT1INy7Y^V<)afW_xjIgtNq;& z6Rz+>i{0?T!GH5bY&QJ5r!J$iDpWXgmc)(&ma9}*rnb3S)`op@TKX+y@up+nI%FQj z-YEYQ9Nb_Vxb^E=kM?fUm!cX$`xhta9Avnl@HhS7GsgtC(w{FJpZ<Brn>~e}MN)Fk zs!emRsu^_tidgB;&$Wg9OX~V2qqm|fEGl20zvalWuD|{qZ*}wIS$SMCk{f>hSa$2> z#_|*iS82C}J6^I0uI8VyVZ*is5~4>P*RVA5@bDz}YPsr(zESw`=0S8v{mbVrwPkx5 zH<;`(zsbs0z1r8nOvxemsWR*21=`vXSASod=kRfl&=)Q-*GVrPZ7}Xh__BK4agC0r z&(BHP%uUkyApHD)+;uU|cdKkyE|6)Q;eRqBL%Mp>{>X66{x`-?<z~2T4LUK!B(dq< zN->ef5Q&FTXRA{0HBK>PNZmeBcjg_I84}SKCop_@Rd`4Lciqox!jtzN%91=75V}Tt z@*jq$H!f|B5}$JPe2-Vol7I6o^3J|Go_^jwLWc87_?z~yiT-@E%nqEH`n3Q1{M+$= zKdFDy|9emVMrO_RNt;?+dOiQ{dEe@?;7F;kSIEz&=}l*QY#UQ|Ov+`D{@!865O&P| zBKw-_>1H#{TE3JUe``?x)u1AHdmFpKB%Rf{YlSqPX;|BOa~tlz>Cszuz(pkO$4tlX zOQ)#{D>L7}{*Pl>>-%mkwy;Mp{FpBIOmddk(DdrPQmg#IODoTxV|cIIAaPV-w#KOo zPL^7Xf)TABC75%ko^yOvB`JD+!tq1LU!C0a`p|*g7~PDYInB<@`vdzs)`;fT-B5cc zx=%gxv0ldu`_D(tuMYp&=CQ+Td%LHVC`)5F_ksq7rW;{u(wSNHlN$7L+PmlMT6s4A z?b(;=-`4;AT7UE3EB=2$#!KffywEi7gVZizL(PNp=4L+Lyt@0%;ah)$4uwd3-xx0D z+~c%k&OL#`6I${*ikDTc`6t<1e?L@r%#+*RIcCyEsaiq9c|P&6X>%Em`MWka)#epn z{5VB$F{6*$#Cz-CE?H7!a9QHWT;AoiH;-Rq<uH^|e;Dv#nnJ;iw}JnTZn2yF=FqZ~ z$U5fdnH%mMlKi*#gYAxZ@uLN9vsEtaoK>Q+>;Jx+OOHO8{b)~$V0}mDf_>|M|1R#A zoDm>DHAnsRt;k=I(xEoZyLWxN!9De-hF<HkRu{pQrH%<JO7=Fne9({5t>)2}z7?Ix z`K7Q{Y@TpUzXEeh<KJD^UB2~9TzGBXN9*d^y)QsL=u7cSYa&12k!3kve^xBDzH8>j z_1jJ)Rs}pbSMuK2T;apa_wDuzmKxnVz9&p#%BHBES<YK?g(vCGsti>YX0ouj<=7TC zwS2q&i{sNAJLB>!SQ@$Bw%^<HbKbi7ZWBZN)pY(no_<<%N`i&gb%TaOo8qr_U91u7 zOIx#sNyj{NzG=~Vmji1Tm|R=1*Yljvg3q(t>tzZwyS3sjYB`*G-I5~W;Ci8HZ~N8t zqCeW0J_(%Kl(M^_zy5{j)PtE{@9D7aa_#uBpw2#iwNl{nGi7ZHwma>)Anx+{(8bSP zUi*ZK-*caSv(a1e-i$9c2@UyIj6SStVt<uY*svmmC3#m^-M`KQJgXL|uhCsDE0H<j z!+PC0`|C6KvN!GCe17fKJ;fqIUt<=S8orqI*HkDp{6Yl#CAr93A*yPt`$ZaSSQ56W zyHzL$x$bm#W&ir1IKj0=RL{1}MUAnVq4|~N$8vVt)lRPpWy6_N7F-ci+r8|i)U;gj z93#8<P}7$dH;b4quypRsc=2I9qs<P7hi9U_m>xteJt<uI-{QUgxwTqe0t$=$jWuT; z*<9w3Ewjsby<ou4=<s*E-T#jG%~b7ZwyRF?lh*RypjaC+Wsc3eeBsNB9{hAz5pZVu zqgzaN(sEzQzZoXqPYL~Mds1t&gU-r3)(ea`HBC`FH~;%7GYNIOxz5Q8EP^aoEnnSp zkIiB7w@l$RGbZj>uwE$PK+}Jvo#nIik9aLT6?fH4IJ<FixUO5{qxAtL@*+1xLO*Hd zOj&f5xmve5G-#X0qItW0GNTkCY=kS$Obn6R`F`uwUn;CpOTXEr8wcvnEcg(qAaLFN zOO}oc@7-S?BGu<=E)khH;lXp)|Gj~Hn>Nl1S<?D=kHyC&s}>yB$_}}ZAykp4Y?!=p z`G?O5_g$UepZYK}IP%hwl_C+RTXjqpbEsY4tGXjuWpQ_ecc`7h>oZ&ng7<4`tYWC! z9Hv()|LD2;QwG*!eg~iLeRI%MyN0Q1l1bbz$%~c_4{X2vcI2MRzL|HzC&P&NzrPmm zt^ad?)2#fhjja03j~t6UpSE&D30jDKDdZMAuRQ;_+wNAosvmdOzE^A7cje!M7onVU zB14R?Ix#pXOtLZ3oH4~d+3c!E%#;1AXE0{*u3&nf#aqkD#iY({U$=2aN%QBqp0(d> z<*X#szD4-7IY=)Ql=!+z@7I>U+AmjBd;XIBX?p3y4mS@qpV!AK->oU}i;|ufyoLD? zUrr4hW8Kg4THWPG{!ZJzZ+kX_!t7OZE>?xIaw%=x&ycdnK18NP_fKGFgu#<CvnEGn zr@c=twAs1kS!X9Obv>AEwEpPv-LBE|S!Zl{fAP@)hiWzc%X|OM|CjInJKJ9F?PvL# zi}(Jz+|G5}&G+H(w<q%FKgB)2fAEU+&AE|whyPn$=G*Z>`df8_ZQ;MB+G#(&wZ50V zC6^N5b8Ei4%7To^kC$z`urG0<v*Bc8by=~?cYf@x%}Sl~D4Q|q%8vc)>mDC^VlEW< zmUo`@Rt?XPn=^x05?G}a<JYkmnk*{0K4ZnA)%lxz8RzNTGM>eE<+dQpB(dJco@={H zj_WcVJe9OHJGaAk+1yCQJzmG6edaGZ*PGN{cK`eLc#Xa-wf%>5^zMooG~}1R{rE(Q z@zj*u^f`CGb$VJx?b3Q*uRQsv@V7Z9Y!1dr`E3#XD|3N=v*^{T#{P!sw~uYU_g!ng z=WL#Dd`UT3{R-<&on9^QfV-ae+pnsN>tCLo{(pVhq<tlhOHDS`b9=q@(n#hxE?1$Z zdVoixJ=xpHPyND`(?;Gko}tbbUA<E|?2jBaR-EO)<SM;pMyE}~sur#|g}chDc|t>t zLRPtjEel?7?|k*G+xGQ8p4Vk8zPxfmLhGt6t8CxCzh76e<#zDGiE)xOL4u}%HC$6q zT6bN^SrpGCu+Aqc$!yhaZSyGU>eV(1g#}9eH@}@?&c3|Q?CR8~?qT*fB?BYwX3c-R z_*&a<^D>F^X0qoNFn_naFEH7VO;x%z&t~Q~uj6IAZ@s<LbU*Tt3Ez|)mjJ~H%b%EA zzb%(?n3^gSdNRVn)rMjEY}sYPTe7E>#m+uI=cx0HfW2oIc=_2X9^ZUq#qz1jGCwVJ zt9qReXt;jJcfFdT6?1swZ;x%;o|WJKeQ2B572BGB=lW)b{(pV;_`Ne{#CtXuWOsHw z`qZ;?gT~Fo*&J2V*cnCr_I}^n&=uOm>~`th-|L~`cb;4IpZfjsLxiO{)4gS@_HGVV zI9DNZJ89#Bh_+X`U4P}Byx-oc31WIyvE8NU^Uo)OE+W^89j}_Hwo9!Q73M9ly{8=G z`Ty-(cCQl?U8-2m+*FmGy4?8M_dD~R#{Pc1_{1Lf4~<Fov%i&3om5;k&7y}XLVzb{ zuf_p|`SP{p<p;LjmzwbS@2Q)imvl>n!+L-1dC{{j#c7AzL63_*{>wO*1ZM7A(=W2j z<wK>)Z4SqEzgz|9gs=qUImh%|So!~{)#B&3kMlfbbK$XbI+gi_tL<m?rs&A4FIRYc zXOI;?^4nSeS5vL<q2i^Jgw8iS&0<kq&2*Amc*QJ{8=8janCt^07uGUvxOOek#^y#v zRr2ALs`aOp)ffXN#-4g{(Yeds$E$6(*n;`zr}eA9Vt-IGxonQqhUUHVl`W_Gb*VSZ zePxrOYh1_gGeId}$zPcWhK$yQzwF=6|CM#vk3WmsBW8Nt`e$#s=ik!ZJz=i)nf?X6 zYSxkY${x4u_sV~Zyxko?`8#j_;k@wb(3Or}%fsgGvA&&H(Y>D0;*j?mMb(=Z!afQH zGjz=7*l{pl<aR6b*<VitF3&im^gqyItIDxWRsD5xa<kqhu=2m}|2p^Le&6cDr;6Cw zCf!;h5ZS-Qk)fMo#qXcW+Del(jEYolwZFFCw0?e+!2UnGYWLn<%-p8S@J!-R;OV(L z-4piykkMQaWxcrZ)L*VY6Gfu@AJ{0$_vhdKyJfHWy^T%#&fe1BXwIfKJM_`ES>f`z zMG2Y*^DZu5wr|D68*6K)p5)n6aQAkUjKA=antXHL3yuFXzP<btS-ex-dr_A1-3dun zf09KV8or;bsB6COZ0&q+|G8~z{Kb?qH6sicT$^7yN#wN0RRib3f3ejr?sGJ|9v!=9 zuaz0R(fRk5wg=C>8srRpcS<;3Ns#*Ry#3C%Hy>r+WUtSe{l%AMUDEuYDV!l5p$|^n z6DkOL<YxNo`N{lu3h^&O*RZ@_u-5s5lH~FGX+Qq3FK&?f&VS&d*M-#F@4q+yUw9+D zKmO+Br~Yqu{W+#*_el4a;(;SJpUZdt_?7=+0mlZ{*V6A#vmE$UWToJn(D0mP;beRL z{c7Gxb9A=7ezxWB%{K=gI($64v{CS$)G^zt2Rj?*idnOm>2VqQyqLL)&rO!|@jkzl zm7zD-j!p1z@Sbzkx4Qh{%$1+>?yI~wG3`*`^VfdcVwGP{dgFe>;zm{G>Ib#{e|ToB z$`R4-y>5Igbi-$+3d2`cAsr7c9zXoNVj^3e_v@zm&uibGOMm_U!sjN1jL$!VyCe7g zI=fy%?RS5Vozu5{N9Ufc&$;3$@xc9EPVBz4-F}J|L5m}jdc^lt|Lt<!rLjHx%a-r9 z+l_D4#Ijv}wMb%R*51`gtc)|JuAO`DmU$1e+Q%bLSPk;89BWFNl9{hmcBX!puKn-- zw_d+Kx-U+WLI2Oyp3~N0xgGziC$;b5$&n1avu@k<iNT@vld9e<<lA@Y<Dx@n?X>&W zBwsaT_r1A7GQf%Ve)V^^a}V#uv>aQ#XL3f|0(HHQg-$xYJ_pyT|1s!mb^P|QAnV{U z=H~m22gRpe_be}4UboYB<Mn-O?kW@-3G*)BF0at`eZRFVSLp2}r4pX!-I-=4ypUAi ze5q;Pm0mXA8f)%E>+*=^^$Wkx%VTU1IMR@?AUN}37)OSH>GdD>N6xRgw<Y6-g<fa( z!9&N^vM0VcT`Z+kbW&+~U1_TQm*kD}v!0s%I(mN1uL;LOe^@Vj;*rqn?@-|0XptH) z;X$Ld#`8aw`<72B+<m~CrCE(-y2%cPQ?{OEXBp&Wi|u;LPVJd~`f<+n<^4=~5??l7 z-=n3G<Rt!hmBfNgMohZw<uWtBALgIskn3FZU8eTk{qUoARb-|_imI5-*jrTRKlkUO zR}YT83KSAa6%;s9`}&r|gmmSlbI*%NpPRh%jNMU*)Z?XrskusT4Klmjw&>5+ntd^A z!}H{%;)<u2g#SNlc<=vT`}d!-{%=i81I`@xw30rio$hR%UHP)p#sA7Sf%N37+pev6 z7QRs+LbhFFadRx+jmk|=lhrmyN$AY^eo0@vQQhL($)+-&)(_In8&#_8u2uT$3Cg5s zi7b9z82ms$^u(sFoAYYsXgZ1rn+iX6OI^S1;y16Bx;R5!ZD;98JGXGYaQxkIL;2P2 zB{yDND1LOWx<4T%d11i|w(h#{9yi`?K}#ouHY%h~JS*hP@LEm5_?(|oLFdd<b@QJ0 zp8sB%#CIUQ_iWCa-=UY*YbhUdT()Sz*E8q8?6nA~J+onb=Zn{GW}fG|wDbR(cM8nH zzXUE{`o}h*<f@eG*6z-Rm8}PL7+M~1@NS89b*ju<FHv+~RPVIQNAHH|D+H=GR3CaD zoYVLCn#Mn~7a_kYXQgU0|KOaJXU+X@xgW=*<9`lZ6X%~{D>(U8$^0i5p7yvIP4xMD z>q37-N&TuLY}v~TT%z6x@1OQ)|MS{^PX!g;Z>r7x{8hYc=bydL-2Pv=wz0OpZp+^9 zUr)K%r!!96bd$->=47h$d8G?l^8&BNNv#cTVtw~xJ%578jBk-Qvi{d<-e$j%I8ngx zr`yu<+0{jPid~#+?i-eW+4p0$x((A3=K@pKJcn(uKGrLxBl&FlQ}`}y3v_Ny_p&?w zw_L3tZ1-8!<o;OuC9&^su`RT)E7;3+Gjzkrq$diIo{AFTQ$2#>SG+oLH^Sq@6_E}x z<;%C!S1!2zbn><8jS{Q7!Vc+_F}wV<D?NX3>#hg8Bx*b&HgY>2n{j1^MDe8cf(t@Z z_&2Ug@pYJCWZ216EqwKIi(#k#YyG$T|KF@n{Quzj|08;*!^^C$hN;R`?0t28-K=vH ztmf`B_;=u|SBLm_3yG=k%#WD%aOYR42+6e>s2}yJ?Op9qw<fapn)GIdq`el6hq#j3 zLOWN)-><yCe&cna$QIH0)klpJem`H5ef6iawr7~2quJ?mzatM;i*|de*67J_dQ_Kg z&}vxV*6k(!e(L`zD-=xQwYmc;#Bz8!Ke}11?bv-X=xxKk&d3H&uY(ObOuko~vOXnO z9GhKRRkLNoYPI?o)fW6Yp|kkr#hgB_a_p+4-5!H^rT1SJ%0^UH9rL{9|DllS!Q)D< zGmmD@E8U;tU-C>RIcgs7raq2<OCA2#SQTEc*`I%cGeY3>E<UkIt8P^*YV?{<c-JyD zob3R2{az+e5qR!}zwF=Spy@L$7A<;F<~AiVr1PuB-NdRS>lIvTk7xFa>_1qsW0wYp z&4CW*_SI=$BUW3*B<CcAirTH1cdW2_Vu1@o{3@-&%H?;w8d@6VnD<=%Ys<vF?O4|& z>lNuc_ujuFWU>BVI!pH3>HO|r)+~Os<D?}2nrVIC+U|eOdcP_`y{R%}mYJHf!31Hg z_tv7}p7&N|tqSk9T~YF!ZC1A6)p<It0V4Bj&TZW9oU~M-Yp>nw*;8LVW0{ujm??Pc z_2MWS$pf~N|7A`zU|TD8{_KyxdJ)dk+<P9s_VnmY>B_L5IYsEKW{T^EteOo0X?_dU z7d+Xsh$*-#U*-2!$vdiF|A&UA`8^Nz4)fe!U9;<EF5iL&JB#I>e0Nv-of=T^!67PP zlAqJld#f*+Zx2}`eUq#6>e*e}d#?Oiv*_mY1=;q~IF@++S9Yy(ZV0aV-;*BNnWmZ6 zp3xuvY#on<i}I1r@=H!mkT77LqxEo$@=oRA7NumNx1J(*Hw#2m-@E_n{`plFSFDd3 z@aEi7`~Byg_wW6GdiSUCx8Kha6^lP^&7hf4>dBK(`CR13t47ahKZG6hdsQcKRZNRx zVc3?KJYka<o3t=<#Wr&hRdt?<>=(@u7p%=$5B-bLpIf*4J6o4$@U-_TY&;E>R~agd z{$J^wdhr7DiW#A`CTg{dOxisp&s}m{u(WEXvds7OYiBoY=MWQTJ#Nm_{z5wL+kWZq zJ4#n=DZHQ3x7cf5%cF}*UQa67KOEec@M3w{1;tyd7BMlsQf}0I)Bg6_cddQTtIsuB zFfwqg$<{Di@8;XLN&Nob^q3VwN@X{bjJ&_Bck|D=(2=RQExoa@f%VmWccn=s|GB&t z-l-3265EzFd2T>Mzo|uJdh^jMyqZTAZ+iK^tl&q5g0j}JQ!_L69{YD;o%V&y$Byb@ z44fC9_hox{r(T(7uqVFEa7#^&d?{1%vF~ZeB=g>H)<|6as{7q8nUibO@7w~NNXlqe ze?jUj*Mi&WRg=1tUt4bv_13?C>(aMld-l59|2ErR-(4CO`qSzE9yfzc;&xkvlsrSb zr@zy8`*m%_lEZa92@Q(R_uf5W73iOruFT%Nyqouz_<5f%Oe`KE<*L!j4wt>E1v)3N zHpI;T*`3bWC>XNzd|GxW`{UImaalL+xH1^sbY!?EE3sGY@e8~EGWXrTCx}e2-SVhs z^Zz*wF>gDk3mP0&nd_zCr+m&~p?+1{MYiYrqnEJEKP(rv_{M9W0I9N9OIl8r=Ji<# zt*&9b&h#MSQB9@xoQ5k~`3~p=-Iii`lNS|jyZFX^!=Hy(wUqa)6A9(+<qulI`C)>n z!I#o6^FFSv+i+D~eG31#haabZTb+Mx+w(5p+<Kck{eQ(aP7~0&lQLN{S#jFuuT#^w zzqc0h3k5z6TI^A>#m-2t^{%vvicF4E{e5$-H3jRBaNN?H677^*KUscX<Q7?lyE=)} zx#rb(8CDBgyX5aZcKc#lOzLXq^UuZDf~rq-GtMy*XDZR*YSCTdn-J~v$ke&s!7ftR zYloX+!|WZ~k2)>Nl{&Cs$&dBx-_P~g!+dnhejDQ}+dLRloq`(-&+O`w6+LNvEZ$3; z*>&>byLb1RX4U*iP3PjY>MjrQ>3=I`cr-!LWw(Fb1NmdcESDl&g1o&t?mC@6%DU?I z^7(AH6n_XYrie9laRsoJJZ)@sm*4NZ@#@rlH!T!77MuBI^Ir@2btx`h|JT$vU%wW` zzpwlCF6DWCQp{ZW82c%H&+X^SM_tre*i~5j{@gNwnQ<>?EKcwUnN;HZ{%Glxi`tEH zDOXf4u5fo~mMed}e{+-5*Q!g=yf03c6siS$x=?o@h1o4d;VkdLrsw}w%XsMt<=lPa zzW?j<x4-ZI7nCV&Js|4M=gckD_IRh_()n+0->=!=FK;if=D?d9ogvE0Pi$ZC=wZA4 zHk;M5kG>sz_Unq?&$QQXPfmNS&Z0DLMaqp@wKxY0?p~SIGD{4YTW#m$N=SUrneP7W zQ<VXO!a@BxI-D22cdrWmF0!FGaK+n8cJ+H#1&J$H9y+MG>AhEg%Twi*%*u_bCf#A3 zHY<Le2@-IV6l}~l-N^Q&C-?64pSOw@WPQsCvu(cLsP)$3CKJO2Z}SN|BYxNwW<GXN zZ<ONISo`XAk|p=S1GU^%ertd2-}>s{<z()*>l}8Wd!2+lLW|j~MYGNC*+2Nc*L<^{ zdF<i~PbI>i*}rFeyo^D_>u;2GLtJaM)Pku^rgjl(M>2$WYJHfiVz7L{`f0Wq*W{KJ z?alX`pI-Bp^V_;A?F)*hA6~oka`ur}i|uz+7`CuKeav@h%Vxtl_n4+M?|Q$LwbWR& zS+LwncYo~aZri)^b=w)W>+ju*|L49tcYjvsv3v`|MH(;8vQ$rM;^%iTc6&2-%ho;e z6Fe=~Wfo63D{$cMt*!lXEr<0iz7~shI9$~Ec5l`@>s8bCh<8|Im57EupL}3}@9!Hk zj)ZsaT^O|4;6jrhlQ!cWxj#NPI77KV7^mJ4&I-ACHc88~OK`@I=_{5@y=q-&_$~d? zK5>h%#YR~?DvkbbqFbd_AMo41-&w#-wMtD;<WG=y&*q*!b%Xga3PriU?=4?1u*FDi zW2b0B*CSPiDWZ>M_+zw-EK7H;nI?EcDpYs&%o2P4qStQM+(Nc8n8j2XWh^wlc+t7Z zrFOr2eW}<14YPwc?iFW!E1fw#%{)z6)z&!Dd5w+I&8LgB6x^1oM{Y5{Diq8pQnKx} zQ~fG#@1!Skxt7eAk1}miOc3<Ev}|9D(ZvmV9AP_;J1u8SKeEU5S#{Z*Jx3o@>k9tQ znEq4ztVvx~ddqV@E5^dJ&F6XcZ`mI4*7E7p?AP!Ao~(K*_3izF&riR9T9VPRcSFs2 z-utKD&e_$p>-UjIO6AAm;x6P~*1CM}TerLof0JzUEsl;WF9P{n%Wk@FTiWrJ>Ell2 zKf9VsPHg@Ah`lvEckQ-N1=qx@JN&Cxu-|SKS#Eo<`=w&&whiya!`8(n=>D|b8C3oI zz~j!74<9|hH}%nT?TFIbs^8)+eqLgq5;~!wev@p)BCg#nF1@-rnKs6WxAho8PY76S z)%`rLM}IP}Baf5g*(cXk8Jcz5?>wH-c9Hd@%$?dx`zJ@Jo7-%b+Iwf$x+^n-gx;`Z zR6VqO<M2yM;q!&Y(qF6QUOl|zZcmw!WOQuLwq2XzZ655md&m3yuhZ7*9aZ!7j%ade zGTb|-A~BKY)89vHewxO=;dSG(c3yDfI6qUY^=8NY{Id<;@c0@ZEx4#BW@^v)|DM=` zjaMID*cKKfJ-eaTQ8!;Z_rnFD11sNhuD8}*EwS=)`ls94TY_Hw%3$f|may(gWZO{5 zaK?J~CCPcNW;()iK5kQx5zarnGPC}hTUY(o3;Q*q%9*>@Et+~ZV>9EVb6++EZd`x9 z;ecL8<$=!~Vyl*%?=TZJ2wP$t^80z<opWy!%#P;Vm?W5PFzsl^%M0r#+CDK}_wBI! zzZ3Ut?v&4$?vcOSQ~UR8__x#Xe|$Fb9Ms&DaAwigt<8aAhPM{X2rHa;%r+@W_}qWi z?^9><&b@X0)WWw@cK+Nnn`N%?*8U$>*>^X8Yj@L{wq%B%u-L902^W7#ipH(1u-MRh zS)KdI%Maq~?*C)2Pg=iT{HGLn+0gRK)9W|ST~*&)nan4DqiCKWr}32^vkyk<Es<QP zWt3CB!BC^{`iVV>N&OEVSTTI=vQv5=@2*>Eb)jz|mqlQ~vzZRj<_lgN@9EN+TyMcO zdDD*t4B5P;pIq#xc>ex-@cX|xvT9#7nhxpzWq9A2{r&5|+sDIV^Pb&1&iF`KXx)6K za=GR6-k$xNfAhBfzg@N8qW7~;-oIu3-8&Jwd1u5#|8O1K<{-jmJ9+knhk|?iek`2$ z*Y|~T=|-C`Z-RGlUG>|*kY%37V9|56@$l?wHaWhaifYzto^BVK=bmvXf4^MX<aNwd zq5n1f`@+Lwo9Z~*pPWC!%zh&x@WP!RyZf5YKZs51n<;*EZ~xRlZl)J2qBWB8&o^~n zX=c3qZ=u)!17(vw&AI2j>&@)n3w0lJ{{1-L&a@$Q>f=oUG1i$e63vJ2N`|Wh@U3|g zrsyJl%HxBw>(rRq=9d#%YWR=Iok_?H=~kF?&ULD3e)5UNN5Wf|9ayN@&{>!rbl&a3 z97AjI>n|CfDg^F)vHYwEx0l%Fs@nZ}wJI`mOG8S2$aj72@S8K`!H?#X_q^>Aa)eEH zZmLqXtZcX%ruH>^^_uu;@msY2F>L)AG_T=LcxR<+!KKVsx&D2^jmy?-Omh9jDWWth zdeZenIqx6mf1k`BBE0N`V(SSZH%{NQ^DJAw8HQT*3&?k^>S<BaeOox?*|FtcY!nn- zr-$aMo{%Uv^DOXL++M?}{d+odOTznALQ`GRIPMkgNN<XnD)VecsO?F+7THx*`x8#A zND^;M{_@UUzTz%(nt#)V{6$S|+%X3El9&DVFqxbeXypF5f#;OUdD9oWTc5Ady72VZ znO|!{L+>1U?YC+6qTQFTy|}aWzUC^CO}QuP<LA%z`1yQh$0`4Xd7dZ#Mn<vBPkcTn zDW=9><;L+B_si@j_<i@Vvwd-A+U!;@(-w8#M)_YKRN1o5uYRrG{Zb@Rf5$vg#tg1y zu0f%zzgK0;UwN;lCmVBMewy{Hv+}p+mp`9><NwF+_4n)kKD?K=J^oRg*W6tHKAvqY zhh_>ps?|ST{EhGEdW8hhTs1ib>B%KV3~Wu+`<Mb|*>7%_@v)lc+BNx{m%xtc0ijnd ziwynC{`~kFn;PwuaJ8)7<M7hI!dw2WVL5TTKFpWJ@YR7U6O(u8IHYXtJj$_m&A#}M zV)ZxT((kq$e_Uz%oB336z?7Bt4(7*RGOTl)a7W$BZd(;o;g-0WX9fR!<}ozAt`RA7 zlR>#{-|=AP8yBY;X59ZBd9d(d^)d<5=}BUHUxwazq`G0o$^8w_GwQhmZX8l)mHq2x zFA|ZurMrPuJzm1W>$=;FEjC^?I&RLZ?Cm|TY@T%Rz>@3$CW*D~BF(<ce>q#9<ymmw zY;`*B_~sOY(c)6oHyh7Q5La0>qsguQL0PTUmK*xj=PSCI%~pO3?=AE8lF&`!G^)Dr zNKwuG?V?p}#S<pZxxd}pR_mJL;iknwlfQ*2DZH~Ns`h)WR{h5Q<zuhCq6tBQnZXB- zw(V2Xv+6h*y3c;m(evx>su>^Y>a=J+_jpll`u&@S&&4G9syj5WEMt?H>3OKy^wGp6 z-=!qkU8-A-Mr0cm``nV*%Kd6%K~Rjrd5P*TEz-I(m~t0CNd0!^%O(4zc7FOwtHg}` zuD+AMm)Sp~mFqI!ohxGh{~i0*6ma9%!u95oAzcrbFfLl)&2wb-+n&|2lR3^@`|w<@ z&1%M4xw@G0u8&&|8U#hh+wgCQ7hyks;^Bplf)8BIO0CmxnRokd&+T9TBd5*(J9F>8 zxF?`>K}YwUGT57Jeco+pc8H_!x$k0*J8s_){(ZVz`}?mw74FG*Pp;>Z_^@i$j%fl3 ziyj#jwoF$4ovQX!mTln)&tIqKx{2#9biS|c=d*5AMu-91ycZQFh5>T~N}ENle9GaU zU%&t7l=HW8_bkl%VzzMA{3Yk=nwwYjL~FknT~$7_b36Nu<&XFNeG>m;-rv>r9}?Pk z%ioA~4)vc`;Ow5jEcLcTb&Ge7$(_)@o-eHR*W@f^_<k_#gF*)*a|`ps-65tDp+7$v zMn%88x>a-MgFxfXi|OKD9Fv7^xhu~4Wf{);O^E-^6umP?j|!(BXqwZy_fUXZUz{aB z)83>o=g#Oyp&c_{imY;*QF_ssLqN7-^1q9EMla%TKUpLA;nK{Xo6l|4NQm=nar6I@ zC2#Zd{-d4q*Y+!ZkqhcLVRO*(hp{%-ygLVf6iuD&q83<aZ4`N2EiCoB*@jl9#~DHL z<})_fYj}me+#u6<zA=RT=tYNvsYND6AEr-O=&I;Y{B|kN$%K6`6dx4l6(xjr9%;}D zjdK2RUWfIs;Kiekj#m~vU%o0&Ygaq-KARNHt;xx<8h%f+@BQ1IH0Lh+?CaUq_wH}8 zc$K|+Z_+}A_(#nbpL-lMW=~ZMd2vifws}_7!Oh`Sx1Q&&p7iv{6|<!RA2eUsuIG{y z)KJ>FFFB}}CG+siri=xxO&f)_sBq~tZTGp&qO~AO@k66{W5(vAGjzJ<`!dXzXvwT{ zc%tTdvblvRw|0|V)8+Zix5XPK$H=o?@cP$&fnTF~QPX?d7wL~}*8ML2UK}`2q~}!+ z3-htJv$*$JR+y%|t!2A@a<YrK=v$>$uY^^0@((7jG89}Q*{Hte`ID)|T(?7eMYuOQ zGuhorm*SN=!@PM#!snk4-oHM$sFg{VH!{1u>zsnLaO2kn_t(Bs`}o)P^&ggwpfe_N zqSvJyV^gmRMk$?WWOYlJAG1UJ%Cv-ye0%w4Irv;(up#4bf@|ONSY5s!d$eENUdp;< z{<QhG@BjY&f3mIZ-%hLY^v+GZVOQt#-EI;K|9{5)cDD4sxLKd?IZmGKn#%K>?OV>G z-tygV_in#r<Z!+uygr?ELi(4JyJjThe=W54Nt0nQW8b#&ibsv?oMUz3@=Tp+7cT18 z)UVIjb<szB-`edfcncj4sZY*2@AWWozg_y%)(xpMf5$C-E7|&8^fu#Wp4(HB=Fhya zw@hx8@w5x)HlC{UU6J?c`j+i?{;{?0=gRRmY;{yvwej!Kzbdz^7JaY2636}QR)NvB zKF|I`*ALAMd%CK6{=_3eIlU)2g;p!g?{xjO#8%~FjLM$J#=ULocI}I}%=sJwe)e8} zTgdWF=eQHo9phijzt%A1t}`-SdfP|t<C*h!HAEzL@#Z*w_;yJ8y2Yd@l{*)giFD5O zm)%*^n>pdb_e<}7K3=Y^uBEMb*y5(kG2T@>1J@i#*Jksy{wv4Iq;k95r{N;kt(yCH zuC23qwTCNWvaZ&QZIAxTZk#tmFW}|j*Lw_}&E!vd7yH#`>Bc5AZ+#2jPqVGuLnkXP zi9BRmk?QmKx3t~ARV~}Ha$jU8{9n9R^uCZo$Rb_89?|Xkd@09Fme$EVy6Yqnmas@d zW6jLUIZFelWU(*Moms-ef5`Z$aCd`7kML8C0~a29b=B*O8$Mw0n)SwG(*4|N3q*a4 zmif4T)P39|s3W!Y`{O?+-+S^m1~2AG=<r{zP^{x7v+cXpuZ(MrJaeNfx3Qc5l-|0q zh0j5#Sg}Q=``gNfZL5-4ZY@~QtQ4WCZg}@bmErTl{%^sH&v_ce|48-k|GnP)_Q&<l zr9>~CopdGX?#CSMt9P&8)?(c6^?3T#-8K^r@ofz=&zQ%u`)|ocOLMK&OoAaSn{rgD zTRjt>E_{~rk@cL?_V3?LGRcUG@7)sV^KV5G=N1FO_SuRBhs)}}AFKOtboz<|yI<{C z{jz%N?7tV^zRMH;eRlo+EJM5X`U_VX8)#0RwMqJN^y(Dbx{BobU+w!h<?s7D|IMd= z&&&4i$rtT$%`FoZeY@rq_mr>Q0T+crCpt2A)pu@jl`p@h+4*D58I=Rghke-GxF+ha z`F}|4acJl_p)2Y8Y&0bMg?WA%%<U0vT(e-$DGuQV&Mwhu{$GqQ+|gzZTNBK{_~YIR zi|iv6i*?#qUUo|=oRCYHxzYb^i$hM<^+#EsckpsFd-5}iu3H%V*k;E3^naSNA0{q5 zerQt@Q@x>O>h$lNzPcQ~d2UnleIq}lciFvN_4Ul}e+S*|iZ89I5YkN#I{cFB;`L*v z1cf3le(3mA+-7L5Bpmqd`Rr8}r#5!I|NNNoYKcKom(0pS{YQWMn<I8JX(<Vcy7HaZ zOJ#lN^Gj(1+u3X9)wi(Sm@j#m{f3v**D8)gRkm3-7(*R<*v|<ye$JMRX_Q|3QFvAH zg2MIEH<@Nv{oZ2w;Y|?Bs((Ti9q(O(&MZ;vaFyVF`u$bon&WyiA7#WTCjIug@c-53 zRsRn>zogy8-Mls`#ojD#{r>YBx?GF+&m7${J>oz|%fe54!r8jkwCGrA^L(lBc(N;C zW)RaA#;){}LE_%k_xR=BFV@=oG_Er-Y1`K<UG<k|b0)u3o}<Q9sJCQ6@Pgp$6TUl? zFTa!a_M_*?)62qE9(nRV($)Be`dq;&i?aN-mZqx~M0Mx!|Ki}jX|p#dB+$`MQ6h9& zZT|6pOInS#9mrt_bK<%BYYF$;zw>IA{jHB(++wEC*?Zun)Wj1njEh2|+zqsx4rqUI zO~_Avq87C|<fM!1hYrh6{_ARZ=UhF1o+m+}DstwD^IMW#pBqPr>`iqv6aVeW^@mA6 zX|Coq35L_3Z{DusH+~x#`}?bM;|CVi)pr*hJ5wAdyzF7lADO;~k2rL1t%%V6*)6m! zf1+%HQ~Uzi$04_@RsW=i&RuG{(8=NY$`@}#7o9vV*TTCi^Q!Ur-LCg{XnnnqJYl}) zr*yY^2J3{`LW_hM?$@$NoG%J>n!U@+XZP{Lj+Yp}EIpTUAks<cNxH$Utyi`+-Ypf$ zJGhrcmQ_mg2FnZGl({?CY>vL_$1c4{Q_L{wf|w}7rmvoIkqWHu9$xsaHJ|gXSnk~= zUj=s`>D&GGg_+v}wQz=Q)5TTU7Bt&zJ2j8h+i@H3dG)B-Q+8-we3LVu@6^tI>zkWw zZr0pB!gNPx*{Xv0&Fk&m?{8OQNU$|(WD48eUHY`@%~k{16sraHvNM)M`L8;5?%}Qc zsO27OSee3_zSJD;*pVS!HEFHSp$jWpo$60%*~+CavWOF!Aa}keJGx@OT0zj%cMlD= z6})%YHZNcJ$cd!<v}1NDs|9pk<>n-m=2U%JoO3DZ;q~mEFGsa+d5d*V+jM0nV~V)T zqWMf;zI>G}D|>eBz@GB=eL7AD_h(8q<?L%We1Cs`zD44e+f)ACV^P@|UpP1Pvht-3 zyZ12EY;riQW8a>;RH?mxmQL4yXCLEpT3yWD-}WTs-7JjnPqcc>lOT2C!oSyV1A{lP zq?T_`S5<rYc=_9J@_DE2|AKbhD8;X5IKW*e`>y`a_D?2%&u)}`v8iZ{5dZ53D$WX< z@0~x)mAWw4dFq;17uqEzGTDZlU-6-<OFQ7`*`!qr)wSBf`Npfyvo`;EuwA7j!>!Eb z(hu=7_vETB<arf*TX5jLQ^@CUThGhYCFJk>v6jv4-!@sh{|jZK1Dd_|o@dR!{`Jep zi}&h(H+sEW#&A*d-R!C@PXxBTJ}PJb?~q;1@8aDxzm}KXwYynW`((xL6Vh{@-C32> z{N0P+J#3jmLP<jX=9VCd4Y@v#%%$F{Br39f@o_P}AwD^2>Qtv#3CFVA&8jM2*;)B~ zc>2EcFPXQ!^!A=vJ3AN6d#X_U(vGdMR4k%-skc{~nZkz@_Ek&nh8|`Uv)&lyv+JQs z6|3InsQE7fj)iTN@#lZLKYh*9s>(xl4R%e(wny+U;F!dq@NtQAlBLVJd>$uejhhk) zGVktJZ03yi`m^i#i_SYbY0T~qx~%)2?7gtka<1fq&?He4c3<UH3{vIOrabt5ucYQ- z#*%gXJ}$*Gw)>tI6N!ntSW(ygji2StJO)n-Zre4@zZ@R^cbcK0+36dT+<SYI-VVj( z^F7xxGrKy?{bzZSRk!zxHTN#77sWiEvcx02k~DqXw%%p5os|<BcwuXXSIgzyyFc8S z%lcrl>-*xrtxOl?49gEFJlee0@qNG7rq&<*ZbrX$RZ6$ZiVEbqRsC<PZn<UM_if^X zuFU)Dml6~?o*g{&QLZF!|N7cF3+#+nUcaMsf_s9y?V@>GrU<Y;sZ2Pq?twMSzj=%q zHsZ-LTCW%7E9$XIKmGkb%kg~58Y?YB<y4Vt+cH|xddqm`uHIp1D7`3Lbo-Q$ry{`} zwXck|Z0p)&&MXZ2>^ogTv^sVJ%iakbk6*}z<bI#noUZk_-+fzM3R3`!JxhpcUzHQn ztLtGQYu_+1oEKt#?0U;+%_^-`TVi$M*19k~*zhE%NBym}iSxV}3JczsZ@$tvU1fj4 zyKSml)F!!Q7A<OjlamxA?x^2jvfi%hko_gO-_Hx?JmGT-lF6IgAMsE8x8mF9+v{uZ zGCx<;ei`Db<05OyER(b_^zVU--zK}y<uv)TegA#tJ;|%NH9yX&3)t$<wd(elZkfom z$Bx0?F2Q1(o2Kt&usQNM^S$NW+I!~&SHHAy_Pm<!f9$sik7{{rgULM0>q{5CT75)Q zc!uJ>CEJ$l+kf=HN5Kt#y!rbMsmC%DyzJCHFXR49v^&$*)2YYv`L69YB8CoTed~Nn z+2smyEwz?Lu1!o~V=!@DRCVd!r{8<7m-2Ys3EJ+zl6!q`lI+T}Zo<+vwl!~}HZe$t zH(7sD{AYWst;cL~hBddFtoxIDTaF((Ci2!u)NjdVhYyEX`ZmaNoL4(ubz0m@IGKOe zm2KC~XWd)Bo!dh!<YaR1YS-PDS9vzh+IO+kEXSTdBE64g%cstd{q^f#{7f@){wckN zDfmOt#h+R%JNHfgasJpexvZ}$jXgc=mXTaZ8};7IxNe&k;vFKIV9xX1#+q69b` z>`r%=)_y19oVOqQ7ESb2>e<1+DRttFtUE<P*5Nng+Y}f3a5yrn9SAv{{zq70)}K!Y z!g{a#{@0x|BmCX@E05SdyO?R5n|5IO@86q!l^gwT9Sileo&ULJ_M4)g880iXLwk)S zbFII<Ir@FASoMz!xfb#X8}pi8EfTwF%eE*Z;oy70AAPnjUmHgn^wzBRZ@2zqW7^|) zAy2BvM|sf#-4b~L>tEL=&i=DF_utL^si48cQ{R47ZCqdWu8!x|$`$rDn|M|@d@Zj^ z(g?2pH2tN`iy3B&%XwlhDr-)S`}T8J;!Mp9qX}aEDSK<n7d8ZRDR`b_kleyN<92|3 z>)L?)g5I4MO?J(#dwuNbftD{N&o|G0|Mu<e`g8w|&i`Y&+xmam?|ZhtpH4cj5NGj9 zWz}lc?xOr<YvdZ^48;w9mY!~`yIgZk_*ZfEm!o-WV%*+GH5O?y$FjX!-P#fTMND1u zY16Uxu17j<8<r_le3%w_cY}bfGsCm(p6vnFL2F|KYCkrw4Y(qz@aVm%!2yQ_9nrc) z3tVc;?=mDWmFfGppzQwClY3mh)+`9_l{=#3u3Tsq@OSZa!P@o0SC_iC_utreU|(L} zheg*~$|5a-)_5l|y?k$L!10j(u6BmtkBj#bV$-&1{IGTs)>Cd+e{kD}r&BIjCGowT ze(!(uv%7`Mj}%UE^JNJUP!Wr;KAXqQaiHpUSG~OMqf06io-thfwxVnM^2d9(`kidQ z@!(=auZW}h=A@%>8LZZUH+c%zZPHkn(s15*^%JJPY8BP>lNyD-{GYew(cI(|amFp{ zcHM0hYEt6}*p{;URh`p({j_@PSb4_7cbYFMDX?hRz1Yv)+$;2X^Vvna8a{Tac@>@K zkDSV;_V7DX)n2VqzEzUKwm#=M)Vehz1Z^k3cNbjqNT>Vdf^Sn@w|xIN^Q;HYxh3Kg zobKMgXXLQnF`i%a>D;<=h7DdJj=G_i+N!m&o$7C9%hijYPny(I-H{T`DZq5mkN;cz zlz{j!r<Lj_<SyN@pZ>gZ@`h5D0QZ{@owADGOphx47smQAuydL2^B*T?W;a`2ee27= zZyu9vfm=Fj`^l=O*UukX#jty`nj7ne#N|vrJwI<Txzzag3hnX|YUdT>nYXcO-$uWK zyDTC(l$S|esr!Go+0e81)#jHoWqU$y&N%eJCUQMj#O%L!?zGw6e8gGz??%`Y&hPQd zSJ?Gs#Y=oMzMNZVvp8X|%)GbKcegi0t?u8pef^3_arQ<T>pVL-Cdc-iS@UJS<{!Ch z`5Po$Pp=f%C4ci<$b8mk|F%nfezhpyP}AX;fQ|X0x$Sqe?tiX)c;RM8ryj4uX+zV+ zo1^c<#ecn%Upsx-JQa_{&9yCVYq=g<9f^7>`{mTWc7IPh3pI|=n_oOyI4>B7FU(z0 z$oKLFi<au#w+tIiSsm@$<v)h8&8`y447@AC;TCwC;e6RO|2fG~A1?SrZ2c$l>WE9@ zp~6nFDwEVZ_SWwYB!=v$yqUx!A#CTJ&tbsR%qqR?_o8!lH{Uj?w_jP=@mEd0gT>^4 z_OXPO>Md&4BEgYKms<0d>RAQf<XG|Y>3P=$_Kr%ozS~)e?dx=KbFH58XV#WX13vxS z^EH=NSor6^Z#ZJ1(Ro+<OUA)BIek)%0*}K*`A(Qkn%}una@)(g$)!w=?61YV7jm=g zKfX7(ME0oc-rw9?LQVfaV(Jdu^U=7a;-%knFI^AMLf$`?(bKyADBp<Pa9ry4%p32V z%vc%Kn)n%0(&oyG`W5i;M@`<~K6{`2&9`0~Oohsh1Z-&jvi|w*lS(hwKV+|Zm|p!& zJ*i`=Lk3rZvwY`$>z3@h-*eedyK@T$2im@|R+u>Prh7$aZuRWjy`FCt96l44%q`Yw z`<e67WTlK>ps~I;uSFRu4z6!Iw68dMXRg<?yBwBJmsxtO=w6&&(7Yq2>)&Sw`Mu@U zOSN5|7GLIAH;W}}lHA>i&e4ZiqC-4a99<T7QRr%Pkn3rOS1CQUU6TYS&GF^b6gcwj z@6M#<ve6$dz4~tUod4VF`TDw%Um{QYFEFyM{c}s}w}!&6_kBW}xl7A~Kds0*{A^7} zSmDh*pEN|P*(S3wPu-r&Z{sv!1K+BM6v@EA!=f{s^$*Pb;le0$MyCH_DhH4H#+?~A zW_~|oeS7QoANgGSc(<$$OM70bBzC7|T6)OW;IySTwU^H8N&U*5%o5IZJhP~wh|SP2 zp+anfXs^j3{_btIEsqLyPTvwXUfyu_x^JVhtn~c-zxo9oHmukE%5wGF0T$7_1(SIC zly`jnSj~{yuu|pcEyu>lgZ<X6XChfGS6cm_yQJ%li16HrO74cg@7O<Xhzsv}ry4pX zEbxxcdB5s|CGwr2OsjqxOU#(wzoxHxe|DB*>dp&=V!hL%%vTA!Kiv|*aaOZtXE3v> z(29mB39;9FV(M)tswVNQsXD*<m&ne3w%g_t<GI~sX1-&sJv?=aThGK0qb5($TmCFx zLM8@&>Uzn&WBv?RdC{F5KBnR_SNCz+zFp$kcR}(%Tr79Sf;Y8tEIg9-*~$|*%z9i? z@0JxL3MjmM{fcMWQ?+f**EaX4q$T;yRp}FvlH}miKi~B9#{1RtRz~{QG;_`Sc0i*^ zuWyEQZ|B`p+gf}Uu6weUQ*%}RubE#|43x`d9$Jf5ZDEl(C#`+GdtT<2*(=tr3=nTh zUw2BaZ(D!y61(>A3xWmSoebK-sFBg`n=y5|$-Tm$lSL12My2gt|834|T^5eUtd-}i z)<sSUw%z=9&dh&uW!(*e-#&>kKHR}P$?^K}=b8tW&JwlP{Psma<g-?Ro`h<of@AHr z`!~6J3!@Vbhj5=V64Jabwld|p4zI$!JbwZ0Gtq)S4*nHTj!v%8j9x3TX0vbllQ^cS z;Zti=n)!X&SXoQ0K9!^|3}@_>Qhgqp9iDw*$7;Lxw+<R_`*=p`=Z?-u(^EE8zdPQ~ zUd`&zS=yA>xvDjzRzZSy_si#X=Pm?&%rrj`wRkSi>*}jjXOET5ZdA%s^KCt4%5hNN zNOn`h$Mgk(oA$ANJtdgOq7kO;?`{5(=iSv~P0~9){yDC(Wl>f^(tV?vGW~!Rch5{Z za8Yab!c}`U-3)ItzPR_uID+GLp-l$EMVtSkx7@X2EKakD&)z8?%pl72X0^kobI$}D zb{>sz+i3RaZLNM~^uplzh6kT4Zk^^W63KZ>=3(*0`1f||>lj7er2Kx;E_~i`zIXi2 zbc2H@$~GKnY}P4jEwKp_H(2tFPqI)t+47CL>d%huwmLTsy={~DZ!ogQ#J^g=r+%>D z(WI3OB4-S$%l^4?_j}qVgvC9XzWLgYZ%?MOwlYsn>0DFP%jacPTGx}EqpP+?sB2B? zy++3y=d2k_QfBqK9e5>}(^|CCtp5ATxfA>EXkR?WWZ={zY0#sUlrA!tjq!ZOOpmVD zPp)4)q@ieYeOiIT%8;8f>s<2_4_m1)Nn1#V+udJfHc?CZ_PzgR-HPcfdy-3%ec~+U z_KErI_0eK~qg(5Bv^2HhpVu?PtXm~+YHM<N@6PZ|*EchK_x8x`*?j_&mvm(PG2HUw z81wq9r78<dlZz%DXS#PTGEeTYphaSh@Z<W$v6Bj2et*>m58R!Mi`V~FTJ?GV&&Ogr zYC8|yoqJo&eL+iS?RR(S{+TKppItaD%-qOSHNRueTZ6QYjc0uBTwqJsa`Z%Nw@l&E zMPC-})3=y(sPdiDn_!k@3odilhHZ#&wOzk!-IK;G+qrU<T>W=-{-1rm-{)^#l(_oW z`u4Q=XoKp%$HD?q*MIB2Uz2-%>cPUDTdE_(m9}&2%3EZZ&*dbv`fIepCN3?7EswJw za6Vh4P^bK~K*09?lA8XH#cZYTV<H5#UgXb~_%6aG;$p<9uz>%(i;X<n#jCv@)n61I zy?^!B>*0eb3BM1?Ydt<=yKBS4KkFpFu};<9|NT|*RzZ`y5=WB1EP8vMvvFH^;SKFm z4|;sq&NP+_B&T}2#G0KIogcW7VXwYx!1;SuQtTGJTp*!;WLMIi`zdRdu#~RT5}5Yl z<^ry))U7OiTt3|A;?6DpzCZUxYU|_d^ACUAbnf2z;>Gmk`AiEpEVvo$e5hyY?-j37 z)~0T}_4|67<VHqD31-`k%1$%f9Qc{Gq-Wh);^6jR^{H8%djleCy)RjGXnlH6a^o?_ zx8D1gx7BUZ+wkH%fA(sxI|~>Rf*EGt5O4qg>-)7!>sb#r9a%4-qJ4p*%qv8v>7>x! zB^7}yCe;29VO;-ljnL}<S6VHK{J;IYy3lC;R1J;5%R9V{*u&=jd@(t+Uu6}iF|*Is zJ_7^mq}X5s^EtW?uHF_(w`9=$$9HVLV{80*mGcS8KdVJp<(5_7sxJL`^GEr_14-{^ zUY9($uc!2G#KCiON(w4|)J4By+<jtM*u%d|woN>IYs0S9O9djFgxnQXlj>FrDcxmm zSaCef=zhW8$=`hY?%iiQbVk19E}zYuEoIBo^yFAq9Z6{ktXKK>)G;Nx|L|S$vubms z>`v}``TBAACh0VpXf@GaYwRkLfAlh3e0j}NROWh##-^onp9#)C{a3(g?ZqO8sJ-7N z<~UrPIpxv3i9&OK&kM9TGygpg?|0UFU9KB7Hk8YV7zLfUcwY8F+S#hKnI~D#CBG?E z^(zZ?@Mi05UcN47|Ju5>XZxn!%}YG9@cs0u!bVL$)4Y6EEt4+zy_R9_@{hVz_qZcO z>T>RxeEyx`%w0A8_4R8fxh_WEJ*=_q%EU~QSCQ+*9Hb}zt^8lR{r6+r88&=E;a|5| zOSG#<9WZzF`%?6{=iK>uo|9@PaqYQ(@hAJVbH~NlO$us$iU|uxG=@ydUvol8Kw}j{ zAJ?6ykJ*0hdGhMRH&2EMZohw8y60?s+sXRkT6s+O0zU2si{47I%Ejpl8NXniswKTQ zvv$gkP_+pcd^U7{3)%8fCe=RehSc`sH?9}t-_M9Y_u>DR*CLK<8TZVJ5?jqMQ^%K2 zb)DTczVl}{HiR~n&HE!`m;J2e_oc|>r8VAeV)|SU!i9L{t8Aw(Dq&z~=N8I&byM`V z`#HCzR?+#<oCPkqK@3{9YQ-D2s;*6~%eOYIO_<H`X3uulnn#wxzVpo`-YVp*JlSsE zb&*40x)JvpgLy|?66`sbaQE{2`JK3SG+fty^Xf~@uM(7^1A}`Oy|MkSrL<#GeZJ`@ zt$&Y=6&xN*Pi!cb{b&=+(3W-e;yvfzKKGs3_vLdXbU$$Cu;^P}_WrS;)A1QK8!Z+* z;}LJ%T(Qr*=jzhF<7roNHB%O4xnvwEPPi|2xz?jWqHa~x^(6<z0(F$w&iB{<skNOi zd@Jj5oB?Y_?WX!4{QnyRlU~XhN=q)7`uomJ|LvhZp7XiBX2^JI1(*pwc`0Sh@W%Oa z+k;8syZy?~F1srH=$@$V3>|}<+v?AlcfQdxz5n<h8>h3=7xD9DViz9IFMT#I@48jR z?#0GaZ&_xxuD9P=_xt@n*6P~5C&IT~zusLtHE6%etnCh+^Inu~)7$b$BW*PYPcxhL zS=RQw9z1M{^OWb!7KjWimi_53bS+tN*(#xQ7S0dX9UU21|1Yvi-&=qF#`ULu0^fQ= zi$mTf2CVlnQ!Oj8lASPN`cvoCHuc$`zj;UN-8WO-vT)K%k@u&s-j)grTbZ>%Zjy}D z%Dn~-d0Pw>4+!6VY`pZ9le&qP;G0ABbvIp7A`1c!yz0ok_F}US`_ZngEb|+JidVi| z-}NHw{G@*Yj&A?!&)A!VJ-I4=v))eh;*HRa3Pl(7R<|Be7vCIsfrqVV(Z_h9$^Tbe zS(KzWrEIE$T+Q5&L#u_<YtO2DYLeWW;2WZ%63P_*XYT5WZ;r+}EclrbX#Htt)4P>% zzF#drpAy~C(lC|XD?}`W;n=?iuNL^t@7kc$aW^gWLPI^zlHRsgg^8t_+)vlpZI<Or zTb{CP-UdF~1%7uwrm4-<)aqYkkZd#U+wK*+7cTKVnwflc+lt%KQ&sb4awx8Nb*RCc z?Eu>b9i|qk(0d$Q{ycXM3w}@edunTxSoOVIo4A87O*DSVDYbdUwyocO->>$VnW3cd z=_H@Wzpef|7Jr>{X>(WRmn<WWzEzR0dbq=ycRY9T-12@^=;X6CDObgpHb0Dfl=C9r zjg^5>jalGK={lzNTi1(hlT4<CTP+i-@c*g%??Kk;TTZLatzM^mRI2Th>Acff_hm1x zXfO_${P)dwt;-C&ZA!;nzHPSXoG4hCsNrwj(V?mNXs-(6!lWpbi_>q0C2!H3nUs=p zAc)s4`P+|)|H}k-2Xei3?cuF1+g7<@DhH=c>4L4Sb<tuLQ%m|5Nr@{TPVt{$(P&h^ zX~x93ZY{Ukl*JC4()S*lalhw#z;2FzhQ;+uBPL(Cc!PDzub;2X4zB-nt=U=4T;_O` z><_7O1^(*AbACp)zGdQxdS2I?^?R$|{jc}Z8>R*JnzNk0|8nwCyS;_lDTWML4YPjz z@w;lK_CG@1|4*K7nd$+C`8#W}^cH?QrE~Q|W^2Skl@HvBC-@$TD(|&8_fO5H=*q9v z`|s9Pc$+vTe*3%Cby7w8MYe12-M#*9xR_Yn)8KIRX3Mk3PnBj1ANcFY5I^zknkxNw z$~QVP98a)_&ge1z*}l!8>wH9SmHftXq3bcB`J0|hi_q|nJrP>+(1XeQZ72V?OujT8 zVVx`<4}s9^GcVaEziWJJ<nd<t3t#?Obzw;oi=Sxe2d_>KGC2OMpiM4n%aiMlmh!3g zS6=6*Y&jy~eCtv3J@4#>^g~N@rd;pb9Lpefd(|}4$tN^!eg6_O`Ihh&^A9<bmq~gY zKjz5F@MF<h>2L0v^p3sM)zNe~P@(s4cKW{jsmnV0n|Y-tI6bsGpmKlhtUN}0<0#&& z-S?e4zkf5`nNgp=t$&4VLF}?lwUC|m95IEfe$Rbtr+1)lRl4PjReEl%e_d`bEAIT- zs=I4dnvib#CH{l+Oy90weDw0N4XI2TuW$Lrttpa^W0<q^*<ly^jwJ5$($^1O4~-I@ ztGd`YSaX;6hs8`WzJUgU9#^(b%G#19Syx~9@WrGQ@u&VvkG%eUO8divg&r)S1*SKc zl<&?wUgNr!arUw4NtK(9b~uPRbsdt)nwao+!BdBLPU&Ylx1HS@+ax+l_<anyXLtyI z3t=eeFfMBFlb#<c)a<L9x$Y{{#plh&ET=$+MclZq&G5k~{{6kbUt%xiB(o`U^Obup zxpvTD%^c?4qFv=7oCORAOTUCTMy9r?v@dGd_RO|$(gw+uZd@*RZdNkAtXDIS2$KI6 zE_Z0(rc->+9T+!=be42go_Sk5YoVn~{}1!4=VT@KCtcxcnS5*g8S}o0PC`W|e0G^# z+&+OL;N<MkV`pB)hAE}~sd?}3ADhzen8$lOorhyp6QlFO%aMXBpXVI)TAy=xqi87a zh4Qn%xn7CQWGP+Fzw6`dNiV|lk}ZErz2*tMk|N`7ydghYfu*ia(`<W7Md8<Qevv&< zt=U(897r%d{BmdcjNQqJsjZBnGJ2~T_bq7L)^0qR%eJUTyPDVb#i``-A09DAn)@#; zKm7ix)2q6G>ppW6YjsqP>1WN)`sL7Lx_Ev3mglPi9<fYgk|}OrzgHf?k~SmCy{l<` z@8VgL6f##Bp1v8b8pU%o?4tkFKVpG4A8mVGgiUwY@!z{pJyS$wt(VPWuYHLjvu5h$ zYVIftyW%Q;)J}idPamO;K^NkiFRe{k;b&#BxU?;mWk=+B{we9H(yMk{U*px`nV>JU zW5t&TJ2%%ZZWb52%&Erq=GZnFBdsmvuNK+||4TOvV_~1;|AcpySK?=%MV*g#dAxT& zdSj8lRfL;hK=#Z+-aYMlIwo=kg(+V7Z{NOD|8`XTzqR$2RqUF-CVx$_YhZYp`e8%c zhlT5ZdLHO&I{t-c>*4tMI;-v&t`nYm?c17dUcG%*qP^Llw|3sUV*8?d;=GGWu2mne zH3qNmNLusCAtBMi_~ZGP8Zs+AY%*V+b`tn@?pMdg^eNF7RtX<GP?N09c7WM7x`(~@ zd0465)G1*hzT84HR{foNB;jRe|0Kgns#9h(DlYigv?55Y`(ww7Bet`R&pn6^)vr-K z@{w)r^mFNFrnLR^k|{J7_IdQwieq<wRdW58(Dd3X|5Tk--{_sc)~N8fST;HTF{f4O z7N#GY=dNFqbv&o=ruC+mGrkn+n%!K$6H{3<SJvO<Px*Goe?1S%dUW3ADBo8<=;q9H zs6}O^F4NB5U%i!ePtzYBHs^Zd`g-z3{h%E=cfap^!`Y~6`#R%oz@@k_t#9ofi9z=* zZWl(W@~_cx{-6KiNyAY=(Fz;m64&h7?r*H`I~UFU7&GNasOGWjcfW0F+4-(aNl+v~ zzfQ$tQ?iiuyA;dGKavgJPhgq%a{pXQCWorGr<-y$+LEqn_y&j0&QAL^D<WQyL7;Pi zz3C?XIX#W$I=BBBS1hwr)tFc)UcEQlPGjP0_cv!+ZcaXZZ_=bE?UU!7Oj9(AFtuE| z{U}RC#>FFtZQ0V~9AvhimtTAA3B!5;?Ry&*v_{*=-O8F1k^i*df$8U;AFLkzW17I{ zkSM0@Jj=rKjOAUG`Q<8atDb!0nNc#)!fj2K<Zh|fM<F7P+CGzHFPa`;`)Rv!ufB=u z7J1F0(=6sJ{G2B?XoOj>SZW)dpR_c~s<%sSTgVL|>HZGMjp~2b=xdiQ->|GX@WqZB z=XM33?&M7P@cIT*#O25n4~tD46{2*6{%&A)dhK<}<}m-Zy>ArUo6Y>yGqW}cFl@;A ztS!eVx4_`){Mivg3&RDKR$Qv~h;4T;?D?%GARg9pqcp8xZg|6fy@r|YMxui5C3hQt z>{z(>^hLJ(jbF>S(%+jJm>t&djC}G|^pftWqm8X!=WdNT78kGo$@JFi*RK24l~u8~ zTlTK#5<Yon3eUE~Pyg=H4fNwpjlLIr;DokzGyB$ii+710<yqqqDA#aomEYNqIy{>^ z4z4Mw*s#+_<=33=rJ~xswZGU*KXuKI&gZ%lBFcXDj{UX`LT;rsrLz8Zled=q5?z=3 z;mM?_kFLrdv01!*zg?)pl+d?)X9~40mU1x~EG$j#c%UOvK68p?(cI)Y^W#4+&?@b$ z`}|EV?y2L~OV1al{j%S07QV3jRlMAj8s<X(oa_}s9xcX-cg^SDs5ae_vdYK*3^U_~ zBVX05GMBShP0d#J*w8Jrb$)HtljX9Wm&@)l_4P>gFct8u@Td%b%HDajE9LBOVM}-O z$$A`LzkIXv@BF=Nb=Gh8Nn&pu)!kcD4V!0Pu)2ET`f1ls8^rr`b9U&STFp}6v4zva z@WtI#U6yPAS};a9zCJ4Sx3QD4yg1|DEkpad)QJrjcJ??;JAdu@Wj=N5IqwxJp8frC z`?2}2#9l409M^@r_A@12lyx*L?`<s8zq~QjKQ`b)l*4=Di`v$;cW<k1>-;T#aPOp~ z&WWn*2Tn0J_di`3EBo@rz26yD!6Nf)I0O`o&fia$mv3gP7E_RTzg<hxfz>{HvwNu8 zobpXCY+bls9C%Q`empwOkMTh5_UE=cg7lwF&sLcke|^=wZyZh9?rM#{cJy+c%R9y? zwrs(SMR|`Owmdnx`pfOdJtvi`P5)m^>SEk&-V)N-__9jw&B^r>d9HG-3QgABqjo=U z|L=F+zds$He|!J``+p~%y<NQ}yg<qA<yFrc>ilV&wGMVX?cc&4In_AiP)Mt@HXq}> zxxO23mHl=2z-=~hmR6F3^vczYa`#fKEpNT4d{kpo*O<*H@Ur+^^n)#pR+bC-OTVTk zuKQ8bKCx!0-PYutNhR9nmT9givF6-({=vOBjJw(MUw=*h{eQBMxay}xM~&XaB{~=T zENO_fe0fu&f%~J^p6{GJ;`PgB6!NFBOA4_*=wG#R>ZuEVezu0HzFEFa=y*Ac${(Lx zf0@!wTSb90CT-l}kI%PX`OSOKe(Kkk;wpSnxxW9(zh@ubm>pH&^xDx_I4$_l%kAId zu1|lNpTv?<U3d7!{`x~!&peeT@!i_#f79h+>s_0hc6DdZ{}EoDbbE2E{Q65ig$-d$ zyXH;lPv79gaBr8HTaxR9wZ>VjMogV;FC{qlwG`ids-4~7z0Y<2mg_gx9sZno?fBNt zW%G}jA1my?ckaVV+1=aS3=b^|TrA0Xuj=pAd7E>*Qi~#46$<8WG}Uy~7WJ7C#knei z*Kv1)=cz4|HIFp1tER59TE;%7f7T;Q!*wsFesQ@V_aNzu&f#mq79Oz%z9(1L_x<+X zV)JWXslx}R4LdeBnUo0$>jhnVI%#EwP{CW<*E2Tz=?b#nX?x6hUU>0`J9X<;rRmFg zpS2M_@2ax;yS4o(J)4P!Q#sx^hp&jAY`@<B?Hu_Zf0tUDzf=B_9$&#<u#ClL&;LC) z9DhIOOkdIU_9=t*vXd+3YL`w6*xmn9;aKg(6v@YX!?#9>q??3Y`1kh0yr|7zKmR#+ z?P+cQ-=He7#}7DO?L49)%OGy-a8YE@s;olgqw^U|-e@|^;Z5+J`u^5^`_eYKFYGby z&lfPAc$|Abf3Iq;$d7;=_Nhr<RFlQ(e63vfiM@9G{anz;E-QegBVa;Bdcz6vtkpjA zmBmWMZiU_B77)D6t?QMt?adn5p9P|tlg{n#Eid_+x14Kc@Zk?L=echFdHZ<!TKALd zuFv*mXDr*q-BaoxartFI&g$Pc=E+72UixrMIP=S$%}ccf_b?b7;MC7?y~-lZ;1@S# z=j8i)F6OPewDq0^-vpZjJD>7=e;c^H{(Nrwp=rEP-D&p6w_jVHe(+lU1>wbg&Ovhu z+H9XyemJ+8e?!0C{3pMkP4Rz!E3__q{d)25psguN@sD4Y*WFrkY=7fLwUBv_JEQ_0 z-xkbmwB(y3-5)t6-#?4(l7!;3iA#3OetBhe+UjMx&-9En+^0G#-!E9vUQn|tEl8sw zv?b)}rJxNKy<1Avk{M)dcD!-aZQW>B{rlXz_i|GlR_szawdnu%$L;)OANT$LFw>KB z-OBay^G|Zsa_w3_>D;~DTFLx}V<IY@;!Rx6u4-*_oWvmT{8W03v1{z6Drs(}2AP|g z&#E^%2-!Z~s?HNv_|Yz8!AV!neTFwv?PE8|?GX<>e>YJ{e$^Y*$Ii;WYmf83RaaNz z*wc3Ew^N<amEyB=Lm6BSC{8-B^~-8<l1<P7i){WK#fc8SZOxM+e_Zczx$JZ#?Q;F@ z$G#z4`l~#`zm}?fbBvNdzL?>Fqjtc;$XsRJ!dIc6&#f@{`Y=4~Ufbtrzdad_hs&x> zRteAVcoiOY$@;7Pv-WPcSNZMRx)zw_%Y2V8P3!73VN_`f<5@B}V}4+*<N|(!$%k@Y zb@NFjcvaO2`AP?!zv=tMQ>`lUy7c3>I&wz!66f!qQCW90bJaq-xgsf7m9HJjWjr6? zbm)+lf&1B?#Zt@8tV#-4{Pm0BWUIArE;BcsU**k`!*c81jFs||o9j1gmDcqyjkvzx zKy8oE;x#e#HL+Kns@G+loz~32JYx%gh(!LkmzkC~?SDT#|F-aFs`fD($0d_O%hdQQ zj-A*W8W|mWvfFUtzjB6f=5r7I=B^X_e6;n`%7nwloFC8cZFl*uo1o#!Aj24y!Ov6k zOd?V<cFKh-1rL_~J^A(CF}8%gwcpL(Zr}G^e_OTHw%ltD`#w2dHU4V*-D@$^OMwvI z$wE&!J4J7JTukQweOPPGcJ>3y7C!pDW)WMoMw)nE(}93B|J9yNYGC~15ORO9lh!Sp zjO*R32cA7YeLP+5=GRR}ecr{^Tw;mKnEZOP|F-R?j?4=P)e?Cc%=EiiH>NqKkHIU4 zHSBF}&%_qb{pYnzzAu>HXl?ud>ZhL!(a+9sGo-ez6*{QWy{dY?bpOZn$K~f)9Ngwb zuXuYTr2SWl*n-|;NsM1kUDTJq61~p7=i95d<z7b?FY*$*cc^Tgl;>o(*?dy6GmaER zEw+z-FPfCScdg^^=q)vBH_f}tRE&1rsB%r4b)$M!S<}qaqe*M@C50JTE{G?rNlmjB z$m#!*IOEJlDIR+xzpC{w-204|XB*$#t+ksez%u8WhWx2&?}K692jc>d?q_keG!|UN z#CM^}@qYBxNoG7btSrgL9p}vWr?}zNm1oWh?Me$}1;h?Bq@O#uN{Y4V#op`teNV2v zeZ(gF?h_`D)kc$-F@5ji6j5A}<kjH2RyE~^%)Ga^ztyz|u1k57ey{3x_=amXc`Cno z&zv-!CwTwz&6yFa?RF|>+%+^+*ZAo9&x6NB=i8CreM@BAgO1KTx5eOgq-(PM`<;z$ zZ<4y7OGL>VJ}SMrz3@$Eh5gOld|gi5nhbuoWVa-jJbZY8eb=S71-Z{y43F3p+|OTE z&3b#arg-Yz+7h4RFNBqTY)*)^m~FUm?c&$pDirf98e`jE{qQ;%mS^>f;m+N=FXLG9 zcEqj{DJuE!`*C|dYoDZhE0coJk$S#}hRW=oufOk^tXrH|d;h~N)t0QgO{?E7Hs1NC zJGWnMb%aNjs;f?^!iG2b^#x^u+&-MS)z8zG*=N_=xjW`=IGa?Xr>=E^f8o`aAM)3I zp8uzF@4mP@plv3u`#x>kQ{4Wv(cr~hx!G%0Yy9G2au3N<SNo=%dB)?Js@-+X#j9s9 zPi+k5jZ)1yc4cx;SKXq(shc~G3H<%BOyR_jpZ_f5UdDz6YR_a?Bp&u9K4jX$9Dn92 zn|sC+!;O57AJ6{udZzfd@0Ty;&ast=Vt2TG)j3*1q^WI2_bT_=t1o!C7&*gijNY~H zU;X69@uL;>)6=AXTRq>W=Xv!L<KI=9O%vBtZm;WYUh!FR&Ert@<zbeO=7r|2S##ja zZP%ln$r6rhKix}OZ{uySUftks=gFBmQTP3>B?=t2`IEz9dE!JtqVcx$3CDWBm%Li_ zYs+ee-dQK7CAh9<QfUk>KDF%rb(5@luN$(J8062*Ilz-NHTMFC`&O?M)dwG@bKO#D znQpRqhDp-d<9?0{O}l5F-0@%LN^sa35A}YpXGd7rM3<h@l0CrA&!DHaPw{(O1XDxI zs;WO%_zvc7o6w}~KU*pA_~rzL6WWs|1o77_dOp$9wxO@)$-kRPOQx-u=vi`b(F3QG zd%o_QeCl^$0YB%Ob15B~sj7jUQ<t%%9ryayre5F7^eDhi?p?_<A;#S@C*RIJWDy!# z<9nQKhi6IletCO)y_oWc#x55WueJOC7kH6)E@dUpHG_`~@`nurcDS)b8g8G#Y0})T z#igw6CZ|)8`t0$a`?teS+dF;T|D~bE^}TL{Ro-hgR=w_T<??5bz7qZ7J?YKdNxESz zY}^|<80M_J`jnx!*KQTxElqZ|r4<6R&pmA1&(C&NP$Aq(M#8zb$=TK}<g{4!?QYp) z@;CPX(*G;^d;fp?`h@z&>h((*ncU|vzw7r5Jz{*mFe!A6S5Mc~$Zyh<r)7C1B>nGr z^rop$sN`@h%ig>5R#sfUz!XvGR>0`aJ!?g0?SX<18FT05$!t8nq*n09(Tg)PxDT72 zD0`a0UFCN&T!|y`#B96e648;X-d<+>BYThOjltH{6Q|lgs9JP>p4L<5nNNSr^?Y7? zWiQ8(FMov>TNU=)kUqOL-SzzSoe!)wechM8m3`x1r5TLM-z}9>V>WNER58^4@jHEu zuG`~p8)FQ!>++RXep-C+$j!-5C*O<fG^<f^eQ33s&BBq9V`f!?eT2_6j|J}R7gV>M zQZPKJ7aaek@>8JScCiO@QkHjG%coA8yU<;XFY}<AfIfpm?~UeA&8*djzVS$FzvX2N ze<Rv=q~ZH%t^6CsjJ=(<XXZ2oC~+(8;B;u+*LJ9U;)lL#lKK~HW_`)&JJlO8m(Bas z?LI%Bdpmr?xEBWAI_~(O>wtK066=JQIeT4?2`_W3{bbm7rSV|K+u*5l9#}b6c;#{I zIdtL%`<%@i`g7zh544B-@_4#FH_Wm8Qkb#7>|2jX)TAvbmsZ#_cU$O1MKhUnUz`wn z;{~UWTipMd8)weHs#JK=<cq0Nf#k*myVl1FWh^gSCM7Je<fpU2bm1j`jI-vOpFbk` zdY%QRY8QiHq*LFN@2meet)29!(*2Wv!vv--k)v-}Su<0=e4NO~@>@AxGpqf%NygrQ zzvkTA#NU3_*e`!8sI%47mj8|83l15PLvw!A2>Q3qf3)+?hVvQeWoFFR&m}K=`5|)s z=7jv-6nCY%GrQck`Yl`drC9v6%kPIhZQTuLats$0vCk;UyR+@*zFF+AlcxN*C+f;C z^3AH-`T3f)M-Bd1R`2*N{mpv+SN+?SKLU3zsXjXW($W`Z8}8=+`mhwVyYBT?)(5Si z-F42BWXslG2&nk<EY~WdGT&{t#o04~j>{!)sco3T*>>4PQurdn(?(ClW3MXj_cyaI zT3D#k*;BCWmjSaM*QU^m9*ykPiGjbEWDKV{1TLSO@ZimqLn<!Pir*eGsEfGnQAxD) ze{g5pxy?;2HK89WlLgq*gk4vz>XDaO^J~Lr!^u(>R-#dh1svatF3RRw)|@uuiv25* zRQ_cSjp{=0le!#Euyf5nVqsFh(LSWne`<5!)$-kU*HmP)q+N-xN_w>4*pL0SlaJr) z?;nHWI?Dp(=NAPmpSLBd@>;pxlLc;}`Q4HCH?J~wn__!<;|{AeB}#W5@Y`wM`Tz9y zq3VRE-Axh=-&-~aWJY_QG;H8&V0*JW{m*{Qi2j7%3mO^^O0uk(c2UFO#LZ20yvY~N z_~(nt3$8qO*6>%ysYz*HX8w-TV47~R{@*f%t`egcMt2rnUvH#2WrLuM9@E;13~q&6 z?+4%Jo;YQTY~Ak@cgg}ci2Uup5G3)-O1Nj|#FHB{^{)rmJ&!x`!ztwYOor*E8vj|; zMIIJ9zE(MYI_{c>l0?di`a3s`js>>IylH;BBZqaW;NLx_tHk}vQwqY?|BkS|p!|2v zy7$$GdQ3GI8FuL&x%u=;Rso}p{M;uFA#(h0TJMJ`{58CGUftt|>8=eDx13kCOySBr z%_5y|yMlc}Fh_}^#MvcZ7KvMX_cQ;JbH1<dck_tFF|XMHQA^ntzu&WW8LOCt=&RKg z$)#%Dzj!ZPH1}iK7IA;}KPyfKMTUq;8aL#oJX{=hbG45E=No=T|A_ORCC??dow&}? zxI-&<pWKRH757tiUq2hY$|m9d5}CREFDCD)*>!9A{W)(xX$UZF3#;Z5w~01blQqZN za7M(^-hF->wY4T^KI{^^YWe<d%gXb9>9Gm-Id|;Rt-UnQIOO=js!t29%>TTMWyjq4 z2OXm}lpVRpDBQmHiK|J$oT+R)Q)lWrZgH(Do9M$nhvC}ImIu4k{1Q60HHd`nb=l~@ zDfgYBriz<rP~>bgnQG}7%*-*jN;uEEo}N`z$haye=e*`;_Xd>(NAg(aDXN6|-#P7- zG*jefy6nU43JzSZHHU8;6_ECxSJHHH<EMKE9$W}%3V0E($#MLpG1Jz`AusnXJ$=*s zMt$(%HFhWZ+Um|F%rP^5>0!81{fA7?Jda1+4&6@mKV$kG)*6~J1mDQNm0{G$rgk&& z@s(9=D(f^VeVMd=l`u25IBst5l-hXy^3QqJyKc@d{TH?`CYLv1sxC{Yi2ISBPc<L> zaJwS2MAm8IjnLoLGcu%C-TV@p{$s@^kB9d!?|ZqTLV2<7qF*gyvvb&wM%=wW>#mMQ zM$fEC0UvGiR~KFLV~Cy2yx<_ynptWLZ6`AhHh=kh>SO({o%i&Xbn1u&H*dN3)3Gch zTj=l8e=>r?EVHu~)Nj|g=E1Dxz47kj)iW=%GO@gOsQI!-I(gaFo68t?3B8L?<<@d! zi;E9w5{}kdu>C{lYd#0}wbo(3Yai*f@lW$({k(tjxe$ilE&P>_wy+u0%-K6h|3iPz z<r|l#BscZk5?UF(RpR!huA?eUE*826%Wh9S&NT6%lyKCYzTLc@U%200w@`iLFd-|| zR9=eReCr9_^N;nL?5;(&&eSnv`0>fmD*azv>I$oLy<gR;1{bf@%@%*m@lYb&s;GZ! zb*#;`qbHsR21|(CR^4>IuifH!&CZS#-``VMw@Ce{s#twl%|M`n;k?#ENwLEVSfAx) z*4e-Ay`H`?uKCR&+wac~%xFxw68ZMOf5Hb5d+(_q6OVnK6YcXq!T#63gLR*0-_Lyi z`FM<c@6RLeRWDcC-+28xbzdA~gZMA2Cx@qh-eSO@zvNBzgJ+Dzf%(_Vv~$=?+eJ?9 zV`o0g@N>?S1)*WA9rvQ2OgTHt^XTUk@!}18^@Ehk#geoHrY3G;x^m6_di|3sQ?2G( z?;^UZL>rr=WL9@>@@jp>BIwY-cJX<HNY77Gv&GJdA{*JeR<5^REWdYM{~~^`oqr`3 z$4LB1mH3_(a5eb_UrO=8c`Ge%TV~v9{W*32;YEh2Q%wx#bHBdDcE+i*<j~3WGxuEz zUzD*;kLh;nix)-#FRqIEulHV`eszZBn{y8z$`xL?aIJE$U6e|DoNF@E#FbzAkCe0s zZ}fZV!@?a98$Ka$K5L!YslE5Rmf1uEtbTuPhrasSWzP!!2HMP7E~di!?d9$4?u~!{ zDp$JvXxZQXYnQdyiYW1K+CmYD2j)Go5I9ij^k(Pk?!&nv{9Ot;S=G}Vj!2%n+WdSW zqr$!K+kVMBb@F<9P3VM)+C#a;O-gJs_tuMb^1ai2C%%i>J<hJGD7^M;^YpMlYt@>& z&)b|!Hm&F~@M7_9EMehWQIZ!mx%VwginYp@#gi6YKhU~z;pgKM&)sL7t19z3WzNf* zBPyIB8(X(22u|i}cm3Te+j69$=wr(6hFL5+cMH3}c`c1!E^=>1#p69f4hQ5~k4i9J z`oVGD=*%i9_YZpv556hxyLow6s8P(PjiItp39lT^yy^V(Z0b@;&M!vw*&;EwExJ0` zo6ZaSG<P<t$W3C{l(60*c6OBVi>bb@U!Hd=dv6pme__1j)0OjV=jyEco143M-xPe* zy~HJ1^30jdBXyxl-l{V^mFYUZ+UXhA7Nxwis#~8mc0VzUNYS@y^5U4Q`}?Q+)R%{B zA79_@%Mhu(N-BGEIJcc~u6*e`b(Ley+tVb3C+=+2{(rLm=k~Yz|K-;w_+MXt+i<^P z#cD4uAKUp&X%+t?%kEfkO_ZK9CHc*DmyKt-vbJf(d%SvgqwUG|tJku<=V+dHS(=r} z`XWgtQE|g&*X#oqK3w}|z3%6Ox@B+Uw+HUC<!<PAH}3o}^)~z7@@u81zA9`;d#|B& z$#b&epPK8j)+&oPRi`<<`F;NQwVih}&zDqxvb)?<yU|&OeS=rT$K`(?mxn}7)-t<& z_|Ca%A?I6PpP427J5n6;_$S|@>un1nuI_vi?D2t9eUCa*jmmW!>(bvV{^}ZVRIxI( zEauvgS)<7H&PQd_44ZqaZFcak%JDU3*I+1{bD)BGF}vN3@0X7*Qt~@e&+_3witjeB zgoF2XCHkmMs1Ok8N|9gC^#4cI>q5sKexF<Ff23yWtznDnRhqzL8q1(FU-wA*!^bho zOKz54_wqbjmM~?;aWUz)vXb`Prs_o#b2;XA1U_KbzO_#ONn4RIqjH??J&(@*viUZ1 zbg!K6R+qXHarSymTA<a}C;RhcF1u}5@owAsNI_nf4ThOdW*(f!_cpHmW3KUkmc84K zi+*GNcW!3I3^k{XkD|)DtRmY3BUN8Fx$pQg<LLD|3%d_zOr%4m^|PE;DAPE0OiYTa zbDdma!>ZQ>^{allZR!<Ue{+|HOilb%Gl7B!udn9(yepl>UHfOj4R8Nl-<;fEerw`c zm(bFAaoUNtM`jat=+sP}bla!8sgqrTbEnjD#=`hMyO#%#OQ`v-YI@gn`;Tz6%z>i4 zLN>l<r)}LFWz^_8`G8hlV6g9}haL+be_LbrT~^vrOaIW6Q-%}j_O<P1|KXv(CujP4 z1)<(+8vEIzw;VsI;~>O8!9zG$#ps5l%*D0|tQ8h3dIR@`@AFq>KK;IS?*41W3NO49 zo-n@Ny3SqbcUJEN-u>^d)cwD4I8Zrk^1J(24)g!j6czZOJ?lsF^X(dK$s5(4SKp}4 zXZ=#xuBoPxy2(H`!%N7}_whZqSxyr|(sMumjxMcdxT^hl<+fw}um301|Cg`7c<5#Q zt-5Yy#*el!b8ZElaQO{7<LuK{E`~i9u7`cH_G2r)T=MLPnM$+GjCmz#UlP{ya6~K3 zyzb*-+*&YSt2ba)zGJNOCpP~#(F-~@1ly)9-DD(oRdidJ;e{2B|F?Q<S@b?`%9h?K z-$b_T3l)9c__^%w_vMeHH~))Vy<*+PRS5x)?#0YB4GcNf`svcCu6}O0)b-bPIG$Ov zEGa}G=XBfFLaSBMbsV!Y<;?2R7c)AU?$)S0dsyzn?;m1MuB~=^p4PQ0WM!rLw=0S( z&g3YraMX26)Jl$RJa_%Y>orW`c`T|S8u5Q??|$61*tO?O7+cVvtp`pE|L>dkKc)8F zk8K}+D+}gzcQJoxc)?#X>%K6f`1#wn{~xQ&;C!97{hRf7_VjP^4$Lae>n&~NJtwo= zarqjU6fL8%;ca7*6w9eIHGa&KU9SAP^KtiLhjTJl&n&$=OI<?w(1eYwd!PSN{(VpU z|DM{<52t@y`LFp|jNT*$i$p%Nxo2j+zR{}5YS&O!_o(jk64uYf`8kCQ4vV>3*>%#{ zV@u56e!r%>Vv|=(*So;lN1mOcE4RG+6Z=P(Nuuk8tLuU0Nf+neJh_!IjbnFUSU6L6 z+|{<`um>qiUbwZgbv|9TYGGl?vet&EGiScB*sosnjMFW3wbP^zQ*&qaHT-Bg&v)I< zAmU)8j7z7iibCYsBsqiizI*2%d%!lgDfr>e9bOI>=4-CHsLd_Ju}MT><DYCFDXr$N zE#KvhU(~ske|r_fEE_ZV5G$9W(NfD-ZCPvFd^rC|9_aDldU1N*0}JbuhLa8-IiPps z%b#k2b2dfsB0<|@zpPxaNiCNv<omk=D-u4%FLASF>{z+AR-d(6BQiv;Fn_Y!`GxOo zO%yE5CYI}_dEEA1${3LSSE}*B<v+$Ohh{g&#YG<6_h74wl5~`2Oi*KVhIz-uW~QST zl<gAtJi6yRuR?#txh<<cE$|d8+q74Hr@d6@#EFR-%VZ@z{M0qf^Ap&%lt!-GGCyK- zO6(E=%WGG1v+g&G?b6TUJ@~$LpS!_ap~*%ivqEF?GeaMnxLZrU)s1iU>0NM8`sx?U zsZTQY`kT*S+RA!^p**iDZSlMMEeUM~1^W-SP0U;CC2>wbSgwby)bQ-qQ|on^S|U8x z3%D)ecbX(uxqVgq5?k%e3z90eH-F3%@Hb{V!}Vd~x^~A$E7$Zfe+g3+nEKqe)5h$q z=kK(8k&Kbg15P?|9sO(d{rUW`P0<oF-0y#1l)l7lg~-*P2Q41|?Rui>y_zw%)A6Zs zSCi`c6IDKoo~-EaaC!9b!Ng;;4lNhGQ+=K7<B^k(r#CKeJ?W|TQ6b=mN7{n>`+pz( z?3ljy?R(eS-#gziY_NZwy7^v}V92|5%NL!}^YIGZy2m#51=HP@_dho8afn!#)~UKo zeVfR&^k6+L$DdL<Tf!{YZ)#A?VCmX<`@>F#7wh=Sl56(X*?;SHTi5FAcJzj%{nuqn zULD%Y6Xv_&sL!|M24$U#dg9a0>#dyq<jvOY`E6`Wd#=aL)A{v>Ibori(Ec{3_G8w& zeRVhX-FSTQmeR4N-`X|*coU|H>rOfzK6Prb%2YXjn=KL7-g+e^9=<O9XpZ1yiyzM( zt(x~iKPgj^@&1x9xi?qR&NE8=s;YXe?4b1j9t)d5uK(_C)r<MRrmSpLW>x;k+RgfH z*UjAz=jrDEi%ux?6I&}(-97PL`Q$Wb8~#7a(cypi8U1=}L%1V<#H3q_Z2Qc2?wro0 zn+Hxe9_Nj>_L+Q^uVBgZ*7<**N9;MZEACcBzU$Fh3vN89{_fIX&aKc8k-s5&@!gPv z^VavwH~0BEX}xds_uRbC21bRm58jD+zW&F~r{Wv<Gm;xuq#JG9*LGml{FdF<H5v53 znBD+Q)wk`I|GT!#rvBF4>MpNsRS~fbC$(1;oLKc}L3#HHi{<=<b7GD~?0+`zSXiU2 zjOW5w(;&9Cg4EDsJSF?2t{8{BINmWk!m+4i&x)eGYY#p$`MYg`%c@g{SDHUAwvv6b z**soB^6=M$D;$#(_iy`YcKf&cs>e<(x<_Z&2F0%pzFT?Uj`85sCl8+=V{W-CVIj2S z#MucyD}+O0WoDk!);_*UAWi)8$1b77vTqT&GX2i4wEJDVQtss+o5>L!I?=<?Au#B< zTh)^{`D*W?t{;i3;%IHn2u!_i_FRMgko2K|g%0oPRUS;e!aeUsceTy@H}8BNE-CF^ z(0p*d`lZmMBIZd~8BLBASM#+im-5=x6--U~+U&YMKBoG;qp9*$z4!mm)yOe8RV6$O zo%@*YUyh;rj5ER<CuB8MjJGa$aCZ0ptpC^RpO(LwzQ1ZqzkL18vKy^ZJc_r(OX8D_ zT6JY>>x7b5Irbj2nB#eXyWYI>+ziLar(YXOm0IRD+BFCCDe!QuY0%xnvZCTacF^Se zS7%54ldL_Zdolh|RfwVR4%bG7U<KLsb_R)azMc2nE?Y{o@b%a{*3`b(6&LkQF4=xj zl-QPQihT3G-C;a%VzyYyT)*XI>(((zv#Cz4dA6eK^-tk~NY%C-2A1(lLL1C_j>O%$ zcQ{70!>}{OHLYSB+tl+L*)BVt-<rcD;XZHs)RQ8=G^*F{(D<RaCPU=v8gC&92Llb4 z4X<`7SUlVMtF+=!^;W%0Q$-V)=iCffo0=4=qm}Y+>z$dp%buTo|J|!{!$N_bAJe;7 z*ZxY-T$L)czo#qZW5P<EjLkP(?2p~@&M-J?;W;^A@-byTxgNev_Pg>!7#&N^nTq#1 zxiV^{t23-=ydb;0<I0|>Gl}-|+;;D_PF%ZPKs>m}!Rw#n^Q1KXuTmm$vF++}ELoPG z;5Z!VoxJ_OXYD4>%Wf-9oO@8To~<x`;iKqeqhD?5on0@@-g5Hx1)Nc`Kk==oiT(GF z?yqIclWQ*-ztoTQzWVp$8Vl}+EnkbnyoGGV?e8&MQQXYce?K~@M)LQ+$qxG#lm}N_ zy#L=PJ~8BJ8f)z1eLYV3bA<1|IW^^Xwbc#x;;0`odk($3^5xV4JJ#qG@Be%H=%}6# z@?CD%d7yl<uY-`0w&pU~4!gJO7Asxc{rmUixlu`b*EKuT|9X+3{L)PBeEx%(tv8<W zEqG8jC(ZUeOLy~9g*K*WrqwxN9EVizl`qXt?7qlj#(PlnrqJI0+j8vX#UEKd1m^JH za$29VYlQ~m<%In#-EC9-GgLYc@h9wm*Rxb*p$&6%fndg@t=pNV%<O6EdnN0?thQi- z$G@hTLCGnLRxRIP%#>f)J9k_CBdMyb3i~(imB062?6<}&z9Snvv+b3)XiuE-d4Fiu zha2TrZ!?%3VYoNx`GZ%R*4%X$@(}pFxUH}ITyE0FWB#wMINWLfZ7tpZU3cA#@@Rov z<%@31C$`6g91Cg|=h?G~|3HT8R5_=sJM0^M4Np4%Yx<adai+J1#Ru0gEeCO*XBRu1 z_NUjMDa~JeLT}pJgfu;&b0)v8o+%65AbEhJVw2t?$$uJ;Hr)7ri6yB(_W7rqtFxtC zH=X<LkaOKM=*QRJ+xZz7wtP(S7Eb1SzJJgERkq4MdpZuXtSXJ=X;EdZRykRxx>e@M zmiLF3JWqdUE|Sz1c7tUvQ~Hmf^-WfnAI{hQUY1n7)Kg*hnq>BvnmONl8R|MY1sNMp zK70OBe%)vJ|FggSsw!L`&UV1NR`hovN9F^IN(aT#O8z%DzPogZGC7+sYc+8{wo#Z# zE95Qz%*vJO(WiHcZrXQ$lC#&{oS#gEa|=JE1Wx^WPVLO9DFN~gC;hhxM4Vy|`gV7R zlHz(1u`lyyzdQG5*79958QfN`d9^Wrx>{26!JE|=G91#h*z=c6T^N3kceU0w=_n?( zF9o@$)!9rRPuzQEcE8^5rumOcqW?$w`#63#RlFlJ-$kn8_Z;r(bK5xtgb(s`tw~pL zjk8?%w#?-p*GGMpn%f=$$67x}F>E?3uENgIaXVdS`uf7PX8mu4{{D+9y(KB-DH>M( zZ>CdAZHmGq9aR|#^TiCSH|6JiS+$MFiuJC^tt{CoE+*~oZEwFVj*`o0zs$(-_IUq& zA)QkxZ6OOE$h;QXn-yuYK5I_)+AJSlha}Nc(tG=gm;Y2WoLG<)c*y*x>9(#V=Uw%e z`+wX1|KIwzn`$m!`?Z+KSL@g=<!^$<mQBkYPx>(!1w>B%wf)GUh=bQ$*j1$2)t+r$ zv2UTTcv8CC)YxvV-JEw`KAsw(xI$=B*DD2QMXUR7Kd~^daymV8RORh2iGB8ar@F4x zi_^cqteW~=;nA9PO!IoqOEP-iKKwSa@fJs;MQ_}Z7bi}!oL_NqqW^qJt-EjkZoBPn z%&FF!e{V~AT^rZO%a^ZBs7l`w6PkN7#P;f$duQfd*kr~0Tw3j{MaN>-YCd7xZ!eu& zR(s_5I!bCymgqcD_cN$jYyCD(eh&7q_O4YsPe!LH-CQTK^vU70PwyI!eEM;(%G)vN zQIz)jYVG;oDs-y4RG*ySC}{A#6_&*=@#Z%3_m>|o-1{f|&G^t{u^G=Mhc93k6S-f1 z^e^LDmRsvrd8Pa4F_xNYPB_H8{~OEnq{_F&7iJ0G;$9Q<>|-P6GTRAlcNlK&s<|XL zNg=j+_T{@1dy@T+&3P7?))*S8SbsInE`np>x^n`N`ybjJH@-7vN<n?)*Zeu}q62=m zeCuCO9JHac@orV}c`a=Z7NL#mw?8|7Wk0{=?bO@Vs+@Ld=g%LXTX^NJ@am%p8aB*6 zI>+*i1WF%l;kMoO`i7a^?kd@t8*Xf~FSoJ(Z_oPmUv<XBLir2V&Of?y)aQ4)=Z=lF z4e8AcqMYXJZ*JeYc0c@zqcO|vsh!6k>CE^V-Tg0OU$6m}n}N#-58==3|0nU9P2T(I zwY~O5lS@<n*6s1)np`ewao9`w-@ed;lKoo_mtESo`(Rpw-G1Amy~2?kYu+495qj;A zdn0+1bz1CdjXM`&8o#S%Jf2n~^nvk!Hbe8ohM+E%8QKR8H;d-5Hn8OB&EFSl8tJe2 z;`PBJD-If6n0#>F?2O&AE56=)%-!m%`0VDv?Tw<pj!fHZRIU2!qEo|l7OuqO=lw-? zc{8f<UHiR5`~C7`9<lwrbJhlg-t`svdH2trv*vT<d!KCOp2r$><IkBX=Sz9_t*`l? z`R49|X-vTrm#NpNFJ9I#Pk6(uridli81Bd)y;qfzlr81VBW^lr>C12B)thQXUflX_ z`QOVeY>oNG{TGZ4F8r65i%H4bu=~}&hZEnL{g5^CzUgH7;SJm8bswtktgDuOX>xb# z1f9eC&re@p!da)!Zm@dQIp)c)Th<2)>{|QuE`znvoqHeeJd^yT$r5|F?B43VO~D=u z7RBGta=LbgwL1NF4EM6oMcXqRl@50#bTb_PR($%gdC&e7ULUO=7X&5lHQBz>ouqw? z*?wi{lO<0qzHoMZn{wdyxjD19+AsESo*4Px_Qrmfzsp4)@Er@=eD~1bPldnk1Z~I< z;D5ZrtNy+-bM(BT4JEwWOt~CILPC5v?w`CiF=3&KD0^2)Ud;YhyBHmf{E0r+C#>S_ zU&v_qIX3Dj&XY2HxT1D%Z1&9knb$Wqh(^|Y68JXv*uifz6x}koUNmj2&Sk7vxjtw8 z`sqJ!g?P3KRc*B6I_G*TY*s|rIyS3$rD+NLzqUxvUhNPd-X85(E!Q?pV#)iPf5q!> z-mClnJ=bPGbLhN{HEc{L@86udAW*XB)z@QBTCb}4Us}NxXRVsow(*4UOa{*zKTV7h zolB3cwin7tDqYCX>-P1AtZi3*=KH6uX^sy<jB4(sKYJYA_M-BX!JatL6U*gq&fdL0 z$^Oru`t0Lhn5DN1&t+x`3=`=V;9Kz7L#J1x@Qgx9qSzVB^rs8L|L=KzI<rCW&w)C< z7o6r_<^`Hgzn<##??(6QY-VR2)2FNE`Canv)KFHKt|6zu!N2D&rx@$2$i|#7Zw7`K z#rHxxn2cWkPRbFTTNeBLbH~<SUtTh$pM2mT>fb$4-{*xzY(qwk)*OEyZbd1(D#x!H zd(4YHxMU<M4jjx%a%K8pyy4OXnO|!yXMVr`Z{puK=l}K9e*SS>H(>Xougz2T9%|7D zeABgJGt;dpTiOJl@Yt?QJ3sTvl~B<Gi@Cg>YT0rIN3$Q99JW}gf>n3!p{g}ThV9Z5 z5{}RCSz*}ic9&6#Gj^7q{tb4;sH>S1H%2gYv9T36cJ^1^5PN_9+lwip<>~=XWm&wJ zPixQ(VPDq4>Sz{XyG<Z2xb@EYhpoR?<rr>k*m8p5hKKQU34=f8-MN!X&Q1Px`ET|; z=@~0s?pF&qTK3ib^;C!qYB**l+f@|1JB_U>I{Pl8@}26Ch%2YppQ;bJQ@xcn*e37Q z^sE1lc38Z1UbC>}Scg{8-^YIw@2uMso-ggN{>OqNbAr_bn06aH-E?A}%3SWRMaoIv z_m(N!Uit2>yGo{g(YJ&(UyfZC=$I_Y^6UAu!%n(FHg*2*?3rA8eqNrqZ=DC*@^fl0 zH(xjHwq5z_h{N0i%<HF?rM-_;y?ghIO|#jp<vtBv^=i94by#8!icNiMUEBKl$?X!W zRjP{GC#D^;`Tbt|`nDCTwA=*0MeMOY_bKJdngr3QUjpAYPK%g$Re6^7ss}!Me#^5j zoUq1dXXlbhtMyLVOnUDzX;Z_i*5~)_v>20j#Xg$jy+QaS_ciOP*Or2f-z7UI9s77O z=<@uBJLDab%{4CxZ-{xAp0tTsh{a}-<H;jOrp?%3oaihh8EW(U^Slg?ALr-CvI{Or zpS)=9iK%ymkN#_F4J<XwdTZV5P!gLPzVO1o#(w#TkA4dUHe~jnT({JB%>r%hM~ZvA zMW!%Ve>;4ZW7Da74+D3{E4^OXwXEMXoPXz)^hnlYzgzv6E(@416R<Nsi=DAO@B5<s znctO8RRtcJ^5XpOsOKx1j6I)!)~^anSKEJfo!pyZ>)!k~7IpW|e7V^4%17bek)j=u z{>M`1b8b_4y^HHZ<(i=PJ}Yx}f2v*B*16HD=QG=Wi(BO#yEn9_Ra*xbG^@Rvej)AC zlAS*v`p>sG`?6rpn~Lv#AMdIixHaWN{<X#{dNty~g)s-hJq^CyoBQv_`nVUHHmZv~ z{t>Y?_sEHx>bJPIb>t^hy$KFWdHi8d_cu>g?J0J9-ni;>bcc!6efaB}TcftyX=~NB zqA(-rtSw(sxP6=V#iklp{#(uZ*l0%HpX_b5M{*gwPjZ;$+GHPO@c6@XMCiiwSvL-K zI7LQ#a(sznX?gcC;!XLD)L=(G&;5_KZFs6?5WARN`_GL9whO)=*eLnHIH`-h+eVzh zGxWELr#aUz@7V0*&9UuAFD&vr)=@KW%ONk0k8P^HRb`(}3gy-1GFB{HAI|Wgb)S^g zpQS6G%e0%VcG_r^nOwcU=fSZDQVXpor3Fr~c@gQ7*~VzK{nd}=zufg7i+|7E|D$zb z{k~7%4}L2=TD9Pqw6LebEhZ+Hw@npX$C%RsiYqs2{xJ|J)7W#o!t}iRf()I*+RGcd z*m_c&LRSSJc=Y-5qEd;89b&3pOD-6{Ox~~7tIzalspX5q(ZB!vxc!a&|7-cJtB&#a zu;qm;IJ?ii?_;;iMlDOlrfBzGsZEO>_;ziW+9-HCP*m@rg1O0;RSOEHU65kx-fXCH zSHxqZ_#FiXjjG4TT!ea<{0m~(6N|2Voh$okuk58*W`DU`zib8WoNzpT?Zq+2#WLJ0 zqvn~+I#ScO_EnwT<w%=-`xy)UVjKKInOIzw2rV+#Ikr?()pY8~NYSD`hl3&|t%r{p zhi+AxBoy-T7#m;l+c_^M?D@2}X2a>X*Uy&L2iTiDpZ)nKhpqWn*(A0d^?l*|SC~6* zOk-4u64YYWwmail;vKB*BC34sM^5i$$vuY}<UeI`i~I=>+gWwsAj`J%o&3jVvmJfL zVp(!wMnQr~XwsqZ#k~jD2QQxK6e{7K@baYgFVDnA_jli2r<yTXa~_b@I>02dN{zK* zy*<<R6?4?jUdzkh<H(Sq+<ZuQPKm(Pspo}rg&iA@nhLe74h;NUY@*YpymS3(AqVa@ z29Zl=lU&5Kx)p0Wf4DzL{i1*B>=l8)SC0iY|Jt{@@YAtC$66<*<fls*!oPcp25pwG zZ9fpv5Rf06c<5^Ld#?knZ(3Q;NZEBU*B=sAO^;cVvWVf#8pRb${^l~yVHJ2>UYveV z=b=~Ii-{{HZ_sUhv-ni{WbrQdqNvuy^TIL#^X<;f>UMl-Q(X{a(zRawuBYV`6IY+# z?2gw@S{XCeUs0Npa{mv1QTx>S-J30$Yf_a~I@rvU)N<QY&6l#pG-CRSBfmde8@yyQ zs8zlY;<?q#H!Fd4MO4VHwQe4gxgN*%2F<^iDLnb?l2y{~D~wj8Fv%SdH=E!3BQ!ln zVM6Mp(A3Kl6!KPGS$0ca_~81d^@5xqe;(Y%lT;G1g`Y*?a3-JaL$4(k#)A5?9}<L4 zdTnRFmlOYJubScG4Lpg#%;!9^gjcve*O6SkFK2V&_glX6g-?EPEA;rbNpjUS=D+eT z7oAGw&zCRT%VW4-YyR?k1x+7PCWhXuY;dyZXR>?~sVx+;zunf5McDUWsLrufh8cf- z6ccwvX*^+%5dO|GKZt!}{Wq_=LnnNWirib4!kEAzBa`$+Yw|)7E02Ka`PD(`53k?( zzJ{sS@R#2KHaG1_v1UB^v;6<<t9}24{o8cA-}i5eAD?d`@Zk4_4G-dWeqmyAdn|QZ zYKPn{uBp0NGKW_mYMJ<R`V<2z4JLzp4*NeY(r*`S*r57(pL^ouu(!WwAJy=g)9$s= zY2L+((17pub$gUDt+!|Wds*;ov#eWVkTAnJDTlEBiEcHz?az*zY{+GAIM#Llv4p>v z<$-OD>#zLsGuOEIn?<36^|y=MgI|nYDS!A}`PpA9tL%R9Q6u`v_it?b*&XksPV?RI zR(a9kvKIluE6$2dwz#n`Q|xNlrcl4E(vH`bpWbh(XHoh&&y@AUbe$3drwdn)@bQGR zOmtfwU$JQa#qB@tZ!f(TDa6h8wbga4e0Fy%>l&@F*SXn=@v14OlqWni&icW)#cWLv zzZug*&90JAhlDkoGet~pIGW#%Hoqa)9C*j>Q>j3}RQ6i4+rlS;!~}T%u1$C4vvJP% zmjKVlSAmPhpi9=r@;FO^zRmZa<M`&}cJ}81v9jMjw>jLANa<O^zi82$2M*SER<Aa{ zzv-{||DSv39_M9!@$zBD=gXIvcDK33UGL*qtgqi>doeq4#jJ-;5{(IJ<?1rE@9Xy3 zN##Z^z7>)4=gsdWUzE-EuW)*&{KwCr=I5t`$9G<R^6%dzu6e5YQO8w>coj*`#XVZg z7hayVJ$AP7((f%dKm92F{q=3m|8Mg5Ok*BPuYN9le6PjP3(T)(1ouBt6gi{qe$z3u ze2Vg_thr(TUw1ARy8Ds0^<-N)Q?t}<2eF3h%FzPXekSkUJ^QPi)Ao}u)>j23HXLAY zGA{pePx#lDmW#p8+%59={`TG7u66kEPvhOOV!waQuFtvtXi<`QpL_AGS=?Mle{4PS zpq*(#w`|nY2mju6G`zbc^CVZ8L#2(qPIXnIX~R_RM(!TQIT9?HW_h>FE;_g#b!Pg! zV%4pN1@@df92<f?_usMGo6kCzaenpY^@Y4S_7M)>_4n>S-|<SFwSG}X5zmtFUHv>h z-CCw^D=m5r{o@TB_Wr8ded(rS>Wr)MmoC~Kn7L52aZh#V(>shB9g&77=fA75YJ7J% zbjA8`wX%X`x%NIw?8P-cWZ&fytl#3ZW5@Lm2~Oe?JDvsV@^oIGGWE!^z3zgKPt>Rc z{eClPo=8aO7VZKkw(7Z_%{GtXR&iHVWqbeE`C4r?_tUR~&-z)@Q+LNb`Jj2|m`j~= zQ^}6~=9}b=j=%Y7v3gD2x86s6FRiaG-4^!TxWD_p@r_HX1XM0&nAUNfX?$GU{WdZ+ zrgUw?gFU;Z`#e~n^?S$t1f31Lru65}$gn*9;?u!zb<Z2;FTOZ;Pkm_O0i}=GcAsOE z6_g`htXc9ZRMh{Q>#q;{*WBLzHjd@rg0s*080B)Mb9HViuL^nU>TpD_=Xl{1o;P!U zc^0@HSQ7rR>&<hwXI`1-HK#lJd{jOX!u=)0ZwLGRMX7%iuB~2mDK)Zl(>1Rwqe-no zR~Jm)xZc8e=C^56q^2&uy6Bek25*<#^-`9+l_~w(``0dFczz_st?b-Q%hcbe7VUD$ z+EV{s@U8Mm*RWU}-_7S|TDYiAo%&g>;ktyn)ytZ-DJv6??Ug)wP3XYOH;Y5rLq7^$ zXZvbdSo`7V<dyzy4_0$~$lW$BF}U{j_#^vrLD`vaB^Z8e+OGN0b{oSJpX)bQpOxF9 z9qH~J^m*p-_ldR#ckQlax!k6f^K#4gFKa|O^3Atq-}*5xRXM>`pi#8e&bX;-P06gL zALf5<Dou;nvf}68{1o<U7gnsCvmx+ro$+xCrU^Gpxcr}|^M5!mcIDy5#%G7`O5gjt zaqsu7FLDG0yaK+>`(fuXNsp;#Q(?+O-_8k<uc9Q}-`o}9v0c6Cy-3v2>I2)mlXQK# zHr($zwuqOdynXYr-&2bZAKA12zw$RVQ`e@WX2tqfW@M-&7|i_kbZ+3p^2z*aDR*6U zRWrJ_PJY*UwSP}uk9OY5GcSApX8&)$zit1&dbzjufB*l#@bB;cWpl5xrS0Bt9`brU zL-`KzMSC4{mWb$DW=UR-RMd9aD0+iyx!5k*fYjqA${cGl&*TVNYh5V#I^%kUUg)7s z$A0vF^KZ)Eu-ZK4__YK7yg$z@|1PTAR2P>oFiYO5<Jeb4ZuL^%CEB-2Wp2dV)i%gV zMme5L-ju5;<N9hJN8#&*M~naWT&+uAXghD#Ppulii1u&A(`VQCY}v%eVmtYfXphZ2 zmZSnDZsCioT@=a<B+HI9zTWola7lmQ-kom+^AA3$W#@4^tLWpdCC_No&D`>R`Fs&+ z_oj<IzV9}!`}tz=_a*T`EBGg6eO~%=as%7e)R13(3~OH>+x)W4_M^@@^Is0v-9K&i zl3gz>R6e8Z4QKB+-8t7Bbo)goPZ6+A+qO4E{(XCK#m0=_RST;xA1vR<d}rRei%Ee6 zwaLuewO0HSUY;(}WS5|)a8K5-E~uDMv`Foy<+gl2sfQ7^=Wf}ZVDn+Icr%spLlEec zU+>!7?d1}Ww;2UAFK&09lE5M25?Sc?=y!#^+Kb3MiE!2`ja!>PMbBc4zg%5i^{d)U zUQMILs&&7@iHOh^@g!c?y9?S<zw(8j6J9G~>NvGfur%s#t*O@B4I&R_+$xazQY%&P zW%JM9TTf)?T%Q;vV7YBU*;l(Ay`6!*buR3teP<`!xf1^3`qP7ZUc8^6p8fs#_kFv9 za+!_nrrB@#)BVlz?1j9?JSp2-PW?Er<Xn}#{^}>JR?M8W?@M%Ey?1d<Rh;|BK+|LH zgbV!ZcGw3bTwK}Rtgaof!u(Ei_}+<oGUaSmU-xQ#aH2xi?$U;amj*W$s{V_&`NR5q zuKYjI-+SN7&*qPMWB;$8@7w3w_1up8*EFd6zjdCs>dF=2X5WA-d)=$pKGe+)-+k}K z{&p9&RexVBysGSV$%vytVMeXPN%wu}Vf}m5w?wnZiijjJrDX7PPGfdREdRB`mPvid zb-#e+zP3L_r(SdVW1vx$QokX*IN_auuCkj~-P!!D-*3O)DX`>xqWD#*=?^(AnGQrp zhX?gdRLFA`ofvxF*K>*Xq}|0OHB7~OBz=CaJjtxhA(7l#eX)gyQ{-K7-PZLAeM@Z_ z95urZ8^{Gu37EV=zDamZ^ZWD8>Ea>1|GC5XGv^3S=vWmedFa#MJDID?x4Y?Y3^R=q z`!Z+pssd-`2d8q=7N%Y;y_v-LERr)(G0Ui8(VI?_U+vu)CwGK(&i$&A;B=d5>P}DQ zl+cP}JI<P%f8)!O)~ddaDdoeRznkaoG+A>=xpSVks&uSw^&`ox5&LrvZrZrdjHTD+ z!mVcvI!2648~l=N9wq!fahl_t?GG!d<5h*bxbg#xA6(QD_PS}kcgpGwf)<~?7hAux z($wJadU3_wcIO3&TU%Q^LYn+;3tiXj+-<S_Rj1#jSjERP7q1Aq{=~rUu+jte-;X4( zN-kPA`&!7Gj(}DCWz1TRX@*%--aWnbT`ySuTUC&EYXYa{SM|kq9N){o#=YD0CjRnf zPp_!Tbw_4#uCnGkKb0Z6^I}Ds;<xM9*%r0e#ky}<yi<PTw)B{cH4A!|-#qB5ur+>t zf9u!u?k69)HlDVcQ@K7#yVR@njkZc2zt=W>pMcF0DVm-U*GiT>`Sn3-kN9@?bs_6H zt>qp}7s_Q#Te!*hfYuB(PqVfy^<9s=E(kKnoe%1@s|`G6&1zmXMRrN=cehkCiQrAW zWiJ#I@?yUW-7>n7?lI3VK_TpIPF>p5I6uX0<pyex7tWd2`?yK9>3Qf+rKr7vHEBu* z|DOEj(5rCmSK+^(tS57XBwQ75F*iOuS94J+sef4>bKulc`zMdD|Jh}g+@`=kLtatD z+4<xRg^4?vKJe|mUK7W#)iyn6#;LcS8v{f6OD5KJzHw`s^ry4Ium0TTW$$>p3~fC3 zd%Or*P_)+CwQj9d{jTpB>LI_SmmkpRYkYh5+SQ-gfl9V7e;TY*J#cN^f42{R-{mkR zt8(OQtv~lqhkJ5C<3Z8O)m;p8nP((<DzzN=ef*o=^;qY&(9c&b#0+Q54xgK;`p1)X zbq1@q(Zh;q^1WBS7~hmJ+!QRDY0z@uiFeLy=@VCyW_L7XGN#z@hn()8ruDA%=kBtg z9I+STOA;PzogexBW^Kz!cWu|=#ML+M9V@o|VCSQ|fbmF~Z{v{)gEw0=7qZ=Md(CiH zC&D_@<V)>b4xbZ86TL2Yon6de9=u^m)z$kI`#y-RzSj89#Pu&nRkV!f?b{h$C7Uh; zy)v&oBFWr+%}Hf)k1&63yVzu>`jtifMfVpU_y%6zq|NYw34A!n-PE&dJk)x>d|=)y zG?VRYoM?(g-ST@o9+^m#Fn>N}v-*17l(U^53)W^Ct1GN7z2k8#yZ!3#!<Kb(I4td! zyQ#WdNm=<ti6taeF2UtO*MvK(&hsgyEpg^`oVwoi)soP??IK1oZN5or=QR%IZ8f`O z`dRnLJE7ICaeq&^iXQ5`&L8r<Eo+wYeg^krX>Iw@;Z5y_CwcI@aV+ZZw2iO3D;J=2 z;jn2H)9df{&M%Iz-oA6P$6frFa&S`iciS^b5k5<HrHch*dMLIn4GfEYIO8DS)#LqZ zmhIkO$gse2_U@1F-`MLv>fg5i&+b0E&yQLDP5-}h)4!cxSAXT+$4*A3N#(4S3HnEJ zet4cXyY-v@y6r~ChXtvv;Uby47})Ac-i3cXKB=qoV^eKNkAo~rfb`=lha8kw22E*7 zRnXFu_57j}v~%96bIR8hbFXQ>*mi<DwTb7Ve`jl?q{l+7#ntWi4%;o-u+05}YW078 zjkBzb?m_R<c|Xdn^mkXCl-IQ=;^z!g*QC_`xMR(UU+<@<SM&c|<h4|!#8=nC#)eBo zaE9!}o|aWM-zTlQyX@W$j{s(o6^@Q64ZUH)Z!U6Q?=76jWXG6dYasE>`2Dtpd0gB4 zeeM|?3*r?2_4W3=+FdUfD{%@eR<5pnvf%Gx1`*boypP{5TG|kjY`bff8HfD!r;TqN zrgiV!5p}8R=hbPUTkam&9H6waTkDL*gNcr|t3HSA{N7d>KU-pZo5ji1Z+Ldh+{4LZ zuy%j{r7VSe51t=s-tRhf?GhEfQx7IiIFaVW@%|KpTlN`;w|Dma%k;m)#>9ScxlHXn z8R_H3EoRe08})@ANi(>Hl!dIk^-RLvGvQz(BgdlLO{%Xxr!VK4X>laNc4f?tzMUD~ z6_<*QUYkVR>XJIJ=BUm4in7q17u{yByBJ?#uM*2R?O65EO3{FnU+TY(b~C+fJ#Qpr zsu^S4&bu)xv_3b)^wqKdZ8H|%_6_Jg?3Yotr|F`Wl&-b@3=zkpw`OKP?wTeQ6v`U2 zC9A?}+uowvNA4*$1XME}VwtV0o06>JyNuz*vu%f&UxZ!!J~2;5{q!rnqmTaVPgfHy zoK`Ec<~}piL)Y|p4Q&Z0k?tcIjv*Vj&QrTR`^TR|d+yeY2l|YDt~=t=mgb`%dF5j2 z?~lb?|2*9lq}O`AK6L)pf@`}DwVcxK^n7c>;@%_b+N0*1B$&B>VXFsI%0(x(z(-nY z;;qLS1ejHlx*2!-gxzrEn%){~a!jjKBqK*;``7dG7U_HaTURDpyT3KxSYpz9cycz! zWy$D`St-s*X&cYiU$pgQdaYUYx`Fxk<>)(){%0TUT>e!2+xtJ)|1bT!{Quqg+h2bx zt-c<=J=#Y_CMQZmS3>layHQt6@gbFGF{$EK87t$NrGGbdnS8#cEMXa%pnHD7?T^;4 z_r75&+YvYU0K>MMGrm-7#AIEIzThJGJ^K5q|3>jET_61RPVSezq1gRU@<DUyuFWsp z{j+vol!@OKP~n|qbzt7jEgPb_PiA~R|C4ue<Q(t0?_C^(y3MxOK5uaE2yF@t3aELg zvg+y$r;wRGv)`=zmc(8Va={_c^}2`D-Z!g#cP($6A@fc8cE=pAekZ|Ol5>6*Y@0ES zv1-r$<1;vYu6Afnp2-rE8E4$MOF~&AOn_Tn@b<KAF;}`5ofRnFC^Y5MU&9{vqZ)O8 z({KOvzgqW@<M`RP;k?VZ&nsO|dKx*Q_IZkkXn4Snn;d`CvN8p~Kbl#-Ov_c&y~o*C zY^~cCpSo!lE2}P~Ynk1iG^fkqgWcWCt(SM#KRx|=`~QRULCcx;f(8tJ?ArGD(SO+x zMyCs#Rtim#bSOBsSJUjS!*m^8$*()FvlzKsdD$egY0hAp@S<kUv8l5Z@6FlQ6X(3@ z%VH<KZ5P@Mbw9{=zt|oy;d%QZ2~nl}Z%U<@-Y)*k`73buy@M-V0u1IQKHv`cq^zar zZT#!><Hfq$)m1G#51u%tBK-Jw(x0FOPg-l|y`8mJYo5Z2(13|?+j&KzSuV}|{_e__ zqUfg_Q#NoeY`GZxK2NQ@x07G%<V*z@vD#g%i&lR>UwDmY)$V`|avpQrE?jqWxv4$X zvo^|QGPm7!=?ovn1xf3qFCYHdE8G75cKZ8&O@Hs*x47}eb$9>#^xuc~$G$l)XTL3e zYQY5QKWQ7bhbq6gvonXQV?xPht=Fs8c%D=jT=?z#RNEPOe>PX`mNoD^Ec#Y1)8^F5 zP?p!VZn|#AeR&=|P%zSV%KMPLqHOl0*hMc)-ERK8SG2sdp;~SBqn(RCHI#%NlDZNR z62Y!|HC@Grry*i%3H$C!r#`{#V}H%&-B{HivsA0mn9G>SV#bt^G|Q`64ccE>N`IHM zCMcPeiwPfNy(AXeZ62nc#c{5&?~I(&Ia@y-H-<g7jjQ6VS*INIe7kv}xvTu5XPgEP zj}~aP1pifFxOqS+{8#%oH<f+0n;acQkNy6pIc53xkf5YyjiVLQ7Ejv3x_Jhp73U6x zYNt?z^;PMHj9d2jS-Xoq-?lPqMT3LM$$yotjDd||?n;;0pZECmH(hjWWsFp`ow_Jx z@wIdBb5n%2Zk&I6-qxKbZWtUaNW6SFeaHG7{%uq8CBLimO-s63(sVaw-afP7^R`W) ztHp$aE9|DtQ+c>XoYP|ErepJc-KHJbXe%AJJ@`fKC-+Sox;q^f|KBse_i2*g!(jO* z%KP@8>-SlZH~D(ClF-p8CxOkArm}vmvo=(?C)DC1%kic9v|XS}lz>FFTEMDj?1sWe zvJTvQGViIxRr5Qm-~J5`$m>10y`gQ1VBee$ReRy4stpq_-d?K}d1=n)+{!jBnTll_ zFLlqmxMZ_Hu+a~hHQUb=JhQZ)#K2^d!LVd&Y2mKb%#p7rE||f&C-7+Z)Ij!g=1oS+ zvbmS_-R@r9bg63j64Oa(jJBGZnK4spW*>05#VsCmn?XUur}m@6UMq_|7PlV=mdSsQ zS$ygCo33u#HianOjca<RUfvR(e$Xs<>5aDF;;Fh1%Nlkv9=!c@^0ymPh0`5+(~=lU ze|~u*XB8lPi$(e6kJ^}34u=>RxP()~!^)+nCn~dTs5`Yrf+;s5^yE2?`LixZEB`+3 zD4uV+<HR?gTk+<L7c3Xrp>oV=DeDprUB;y=mVK7kc;BM)*uJy(57|}Z`%L|Is;-~K zQo`nlamdm=>dA83Z4Rv8a9iP9LxaQ-;jD=(4%TFyFPkxC&E|R0vwQz;__wh(s{XRj zfB&@wA3e<6-#k?b=sdNer!rx^#xwR0i{E~XNuOzG#IVX_%7tT(b(r%DC*<=kbGn{* z@J0H&w~2cmS6QvSf4v~~aKvNFg|(^^A2Q#cX!6XjdL!TVw7jD%6VEEYkoNlYB{Zk< zVaC-}a@CVg@@ed{crf|-)TXlRXyG;cTNDM&<tE0kUlw??RO$YtlT(T=?yix#y}n*x zb)cQ-`R`sI9M<R=C2@$&GRezGc8_^=t7iT2qBxO6>FXC)#Fjd2JaN5c*NnP<_ddL= zdYvpN;M&Oh&il>Xz_m^9=II4o=U=OOYvT+h6}J8x7CE;)J6Nq2v>O{OtmWIm9VNx; zwNq_U7x!TYUZ#pEB0560f}FpPZV8$CyhLt?JBP+PCZ9<YWs9%vGnu#7$Dnp*{-)LD z^NtHdeK{GiJzuatSUKTho$(Lb`B}{`?edDlH&$J_9Qky0@U3W%xOn~dp!N7?u1^nn zkT#Vyq?-T7EawjlD%F=_r+nFY=%p8Hww&#;%}X_QXu3LDO|(`i%KH+%A#4fX90%@8 z`psM>rOQ3$&soEry;D(tr!>c}NY&5{PB$$U*9J^lDOjhSxqsdpN2imMe|;;yebxP` z?Z&U%#)m@Hk80?v{a&%`=bn@&o@*RFukv7)<?6k&M^oV2lijK<$#&V-)+}5veoS+1 z*XO2pr3$IlOHY}*Z|>v^O9~7#V1MvtvDbx3brv!1eVY#nYMvFgJ?Hh!?KdCqb}!kR z)w}mDJuLg+*r_G#=G!k{{dck6^mc#$;=ld6KmYIk|78Bn^_S(hX;<WAUuinSym}W; zg~g-J^X0*-J=heEcr6P*w?4_+$Cjbxu($=&mRi-O?rFj*yfZzws~>jQ?J6y6l9-?y z^>@j?|E+5k=gr~iGSvCrl^kVhr7af|9?|wW%JP30hh0X-?3nnakG;6ER%_g1SRJ;N zMPX&~qn0?&4QVzGR!jve=6<u(7BsLhd41}UKgTT@o94+O4k?anuiQ!7z_>>=f%k## z=3foJMLsWBHR;LTju~2lq796VeA-@B_m`+xeKl%%YjRHg&HO^E<b2BmTN};%yR_FQ z@VA^iAvoJvDbe)a?jy{eOLW7IE~&e_`Zhyo(IJKv+xtCdF=*E_rEc}Jms@h{Eko@5 zMFF}^MVD@^{`F8juq?EY-J{STOjR;P^$UO8&z(Ep6{_oX?tQZ6%6hI+4!NJRo*B0; z4)}W1A|q_hm8a`U?_RjZ_*OvKcFJ0nyytpeOewpoLMJjXFdoQRnBSPrFztx#`qW^N zX(2aV3T!m_rgLbB#RfBP(pXuya^L*B*YX16Ex+7fxv=To!PgJAeK}(L_6>7m!Uw?) z=cB6v8D=>AJ-13P{2k}wv(E9hi+q+#Za?t8N>Cw<Mbl@ox^8CnB{!pm#;TF5?`JM5 z-yXDQf{s9@vBPJFZ|5!Y^rA!#tTQq?!({WKO65j#xkdMz?7I^<DuXuMtggF#-Nv2& z`%KT3!OvJ<eB4|4?c2SdN=cD-KdRih-*|BMe)g!jd|r<}=j}edsI03xEOqXrzT)fG zKIs(fV`NONymYH$XS$(t-8;K2C4t7lmmYjyHLZKyUc-lR6K+&2J)d!X<@`(MF0O2h z+pM+UW0%;ibpn@;K9pdITAO2gI4ibv+02MpCbHY2H#74kseY4s{xYt!X`bpW#@oMh z!^0x(vN5n1|F2Km)RkTwa7j0<pV=xk_^Yvt9P<I0vWBJSxA|{cyJc=lV#?2^87CHc zl`nr9{<`+Pnsi^`RGa>-+t1}#t&Z&URBL!-r4p%YvuX8~^-TT`!e0dMvFdS=e(;X> z?aUX|VL>yS5~p$U6;~;)zdUoQ#O4T<tPG}_yZW<#eVKfqQ|klE?`MqX4OkhnzRdKP zb=RI}&hdBu7H*#O>qw99&NVko_Vsx(ZIEV^3@hM|GQU-@;s23acbL7HcH5R6__=b) zeEmSCfIG$;s^aGdzFN5S@;Tp^CwDaz<O`NAIL)@PXrHSL<6m{_C=RnvJZrrEb-#Ii zBK!MGX3r|+V>il*eTBBZQr)`cNyhOtSHcsrA9JWJ(|(b!m%=sw>Gg_<e>tu#_`OW} z_mBOby_mG0m<xXXW&Af`;p>L%;F=?)k%s?f>C8GZgLmWNKYq8rR|*{HWS3*qzs+da zo+|j7|M|r0KC=&hi`jDK$ouFwb9dg(6Z!7&=EN6w>F$QmWXEJ3laiJ@_jsG<*{|ns z=skX*b<tsko71|_@x6_13sC?2V8@yDxeWRrK!xOm>6d4CUz2&bA|h34=B7<S{LIa# z)^NX`>yo{CO@qda=P!(vStYh?nwp{iNFcPr_9g4;;w@T&!t2=<Kaw_i>3DF1kkfL7 z#1grx=J1QhTlS@E%@uq6rGb&}i%0YA9-~hg7GDnN+0IbeEBp6==A``ItgMsa_sm#V zteTN=CNgin@$$P4O;tUnhH6R|KX)}m>B&{P1<cVubG*m1;ePNvwb!+m1@?Yc`P)(F zvf`=O*9S9=>X*+x%UOA7S{UmT&yW+XeFj=-u3p>zC7zOvNj2^7TVQ|laeMr&{ohxA zH~Tl2UHfsG|MvJBrT<DlZ@jmD*Cr*k!+tI?kKaG=xjV7?L4iYk^(~D<M}8jCUiH`Z z$H#=A1wHEv9lP5)FFLBRue`^4z+vj9`ltxq*2!h+uMQf0y195&N?qzJe_x>xucUYe znJ%s!F06a&h2qUs1N|&_7pxcQ?cu)Ld1PX#*cq<i`O;b+a*jT*X5VVu@<?rtdbgLN zT~1?0T<C3<RoiaN2zuh)I_sRAQoWj(D`(p21qZ&LdZH>nCB|b1`+mu(tJb71`B$Rw zS!mXpZmnahnU1&K=l)gY{b$)W`Rm*CI^?hXx_F;IJvVSc)|<*+O%~5J-K$jG56$v> zx->z9ncpaz$wZ6AT42vl+t}~fZYHi$R+>lH?QXyLdWP|x!3j6@fJ+%JUj*})<i6e< z@zZ>*BBQ{H8OjBGA`0uydNAs(S+%jWA=viMyn=6kBrSTcO@0=-ct?SqcC^8(1qYs8 zoYcCjVq$N?qx1iK)z+zG_AoX2U90Zd=+nAQP4Dvl$sunKm&J<Cu)Tc4;HE7D_mbXQ zzfugR&s+7zOF&Vf;=;c57yd--O<mkw?zbeTzpCv)Gar+L)`4iBZ!eM=Z`Svxx8_Z0 z?rxEIe%;$aB&j$(xwQA2h=TtXu^A=?1)G=TJHPSO)le&~ygbV-wZ})8D?D+E){Cp+ zbKJH56xT2Hc$VSubg@<g7rUi^PqXadRod59?TUD`chdjB2TjMA*`i(cw;N`89EeE$ zzRJKoYLcN-+KdRrV@LY?T6kDKhb>n5X!qiQ#0^KuHO;dR%uZ4C+v)GZA$U^Yp>W2^ zEJdyVe77tnuL+r3*qE_zn)eGvnFRTX`h20)=5tPX-ZQE8(*Iqi{#z-*kk|HPDqDS6 zXn&b$@|hUM3cl){b|3$&mYCyYY4g6PM`eNd8pZYBEFZ+NELk6#Zob-BQ7GhAw9#&+ zIh^|^c+Q>gw&lvkQ>VI2Bvm(=t9=mnymi#7`c!;Y>7`{)=V>wh&VBd#z?M*^%4JW^ z_!#o@n?7PtUEJNQ{C4KlufmHLEjoYO<WN{c>Z<f(5gJk{Djrh|cZv%e9eK3KHb6nA zX6fyj+~>?$D!PS!N9D?Mt2aM>RPCpFpXqAo@8<rAvCX_2zm={G)e+e$KOxusfXFwg zgc;Y~-&_&R<Q?7awubGrg2M}jsYz#L9jZhwJG`;n?#-t&#qqiM#dnXk9r<@c{AcyX z1B-e&zCUfcX#TE};rFNCZ~v%Iu2{?aci#qaMYEqNDN9!B+k39L9Ha0f*7#xkjgKE( zfB!!D?C0xkIr}pb-?6U^7Yn`DQzgWH`?$%y9=pWJXFE3US@f23OKpE9;~|-lJrYmL zBNWvO?*FsR75Kz0E4ab*SH$%TIg-2j3#Y9Nzi)U@RnX(CXZDOQ9+Osm{UK}@vqr7s zeHdqqb+_}!xJ3rqjAxcuwbrEE{K6BqCOwY**#BcrysV*-77UYFXY4$twM(H;YdymO z?wY+t#&Hj{{rCUAY{OIEov7>@Epa?=%jD#clU(kHc}x24ZI2G&T=wa|+d(1W*5w=0 zCnQ;?1x7A4U&7qSe11XW)M;`Lr6ybcSscJ~a`j}-a})A|Q+$H<zmxy>!u!I@pv3oD z!U4=dFZ&*t$N!(jxTeX^eag!vnkCnMHz=-qcJT6|LKDfw+<U9uw;h|B;p=w1{#tW* z&pk)|T<*8+g7q4E4mn(HmgT;<Pe!zZOF+>%M^&p_gx%Rxb@Q$hS-r<ExnDe+&Nho7 z#yu{4xxwrg6BKW0h{&|g_%@~X$Ta)e(HobaUjO!z%*E8&`*(U)^VDasU3=Lk`o;Kq zWaLB#3E7pu&Mau^UXVK3+3fWT!+CdCth%Id^=sqz)F^M(1!i+OUUB%Ual42L@k_Xc z&2lQyR}K_xy;D|Ipb=Z`I>)2p&BPVc3VI}t{}gS~-dk>472;WZbe^ozLNo8$^KPcK z7q-s}-{SgTcBSpbXa}p>d-ZNpHNUQUXHpX?-<v$CL;6DvgU@P1vyW*xYHN627;A1@ z64+nV!MyU@kMfOsSyryn)r!5k;_QZQm!_`jPYNGYruEH`6U=C2%NN@kz`&{Hbv}1; zPMsJRbG=^FMdR6(@;ms}&*)egAo`%x_3NnzTfSEp%O5r23+jmU^l@xH!!lvc(v*q9 z$8NZMl|E$l<EIhl(U~mgRGLmKdEn>hzQs1fW$xKsx0NLr9H*9q2<kK}*bw#hC&Oyx zW6vjT+gF}7r;}rXu;v2I?EZr$o0wicwyfUtlyfKh_JD`xs^vj{kALscY2Na6i9p$* ztCQN<Z@bPtwRzR^#_w}OUkXjQ)Ve>d>w~E363xJbNmF;aGM4t-yet)^VxrvQ7@q%= z$)L*NP-NKF_7m6CLZ2o)Hf*<=XB)}0;!D4mQOVyW>wc%t|2=baUZGE2LPq1a+i8z) z{dLctRg&D~B>lUbL3P^m*dy6$4XgGDnMhQNny&2a>@Rrzz?W-6pr`h{>08`eWZyYf z|Bvj;yPBBJH2>r)4>86a%)%^JE>t~>&R>|Jvg+g9OXrW+zd38?lz;W7rr1@7H;sEZ z3!c9}V3k=TcYpR7?taEkN6c8y1*SL6WqCL2o8)zM<_9m8eXrh^^DIc`cF3vNI@_2r zEcLgva7xp`K+Q0r#4Ab-|G)2ziw$|J{C1LCeUqPFL%<xKdB!0^H~VF?MOXdyeBMyz z%X9dU>2{IdvtA!6HvU|B+TNW>=}E@{t|Up-jKojgFV3&ws{fI5!fj@%^R0AWb-VfZ zHcg9&VPIHi_fyJFHA?D_vByt#ZMNTS>8jTmR<67$C|YhKduMS?Mc|*1$8n$T^-Wpw zkwJH&)`g_+S7lwkypQf#+!MZ)FJbAG|J_GSxLLeEJ*-IWzBd2WWV>1CXNSL!XO~+2 z*>Y8H&@z?PS63FTk-7hPfu_`3E&f}drEg0FTsoC(pM5pWu(#}kO!}eY3Enx1o|_kc z%eKkL53(_hvdG*Ywph>o?RS>heFpE=`abS|d)og0?{DJ&KlQ)8e!r&KtSxBi-T>8_ zRb`S)jf{OqcCjgYUAEs<U-xXeV6pq_g_-MBs=vSEJ$}hbdO^<Lx<A>@-7D+<u8#kZ zUj2Kvrk|DIf$|H>E_{o)F>zMuv8&e>o>wl|c#2<bUhMn7{J#?q3Yo6GeP~;MrqdeP z18OCie>zi)E_f*2`fx|WZu?d_eg@&q;!=MmF?_lDe?y~o{q?wb{a0U4F;q0Jj|p3l zy5NPi?G~>Nk0igHvZr3wxHY^li8;r3R+n*~lgYY!7SpY@FX-7B@om1Cf5~xi<Dw4n z$+wn7z6-T2JUVqn;7`dHGQ}@VBEm9P9OGZz5~vm))*YLo?Y`lR*5eni);^y2$n$pB zfz3~}nJ>6#6^72=xt7P_rOH{SjUp@FX}MgCh%8IqZqrq^a%<D$=BgdsI}1yC)VYpt zpRfF_;MtKsZ-cqp^1YtSSzgedWxdL-`<Z*S>6-$6=kPhZw$+6A>#R<kv)u1W-R=o) zc^8Xi{{BnYB_7n~$hdn!lfSR&O0)GM+jgxwetG4;KauMV>RS&i+p+51sg(1-Z=71Q z(V<93qt0?^{>kb9!54du2RJ@0yT<Y8^dSfD$E^_znmfuv9?#9Q3ws^%*QPU8D74^N zisvG0(`z?pFeucp-Z*lSTOzf6LEbwBj@5l$T8vV2dy-GM^nPBDCt(>?7INu}$ke00 z3hhyHAGB8ek+|;G6fI+I?s(vQ*6KTVLgsoe+E^XRxPKV~|D(`1j_Ir)ZV9smJb(92 zG3({I^)dQK0+VbMkL={>Gg(}}KlZie<DCNBA2wGqFL0LPiWIsNA+!1Df}W|D9(mq> zmi+bJ&ASi3OX+R9x#`cQ+_mm3lck$7UO8=;RC@IHx?+~_(C-@*5}35rH?G<t8dP_4 z-QnfO4JU*$8ab-6v0SwfpP9qV;=1}9>$m<U6Gj$>>S?*luQka&GF!Fw@<ZR~e(9#} zCc#v8R*TS(sL-7TP1#%L2H7clC@E-NG+ds0FRY=~)%N$r|L@I1FVyQ7Xsl|qkXy`j zH}!v9nttZ7t((f{Jz&q3iOO}k`+UXaZY_<;Z<Eid1r%L=sk^F3!nyLdTjxdT+3)PK zr@yk|Fb{E`_Nj1v2K#0g<JHYdG28fs!aq3#a&BmOxy`P9c0$}F2c<Lz@vycT7M=yA zf}!`0+qoS*;qmzSS9x7A&E{`AIZxcV^?2Wfc{xc6Du(Jxo&9#9Z$<y{yj{5ey1~8M zhNj!EoqL%3FSPnR{|vk2ueR^aH>%gq=nIJdu9A{jmT`B_p>ov<jl!Gr&di!L-Rt7^ zTaq$NwI5d8H<<Y;l%X;G>Us7HCu~n=3Yx!G{&{7;|1It1GY)*0JEs#+_4RAjLDOQ{ z8h<~r1KuGsZfc3Wy3e%f@2R<Z{aKYNH-!K5mYw4Kof{hwsm3v7YQXl-b=8yZ?h(vj z3h><^+&PVT=eo%af*lhbWOjrX_%BPSe_U(EP{4ZN*u_M?CBc^Q2Ic8yISdat=jAe~ zTHI}`4q}+l{h`XcKRo?&bFZD1ug;3npVyc?n7h?E1xgI#ud_2%UtIa<{-yieJ=`0Z z4oqNvSKRbg?}jkb0iA!+NsWe@2hQ)ld}e)0#F8D~oVSb4sS#{2k&M`|zw?&r<bKoK z`P^m!)qXbop9IC$nx(PqTYrq@!u#KW@pg$$6W&+n=bl*Tttj1laq+#j2)+e=#vi|I z+taemY)){%D$7?_g!S@&yOfp}Fjeo~x4XF`ncICgSHcm~q%9xQ&PyGaob1Uk?a<!t zcL(PinySvx75#Xf?f%1C%+J3a|GV$CMeU=X?(1IbTv6Yg{y=*9(g_nk+i(7!{&rgG z%~A=o>$iT-DW2VN;>4OY`%b!qD>yJI_-;`5n6Suh^~M$Fr#<oCk`iTqfdA9%|7~%9 za{hDK->CbPeo=&xsYS!dfKjBuX>#aP-;(e5F2C73?Yd0znXTV+J>Gv5SU#bnqx$^K z^!HcKm_DD8+!twc^MQAcU}<c^(*0f8M=H8s3NbDAEb~p}kGqxrYMIJ1ChsXM0WG?h z&$B<ZZK!EfpSnit$G&&MTMGX_y1M$C&E&VU`*$pp->Nxl4f8Bhr?QLBgEy?2bZ!#E zIaQX~97zT5BAX6;?m6HQWEs}^PVU`uwP`z^ytF*0^5fIa6GoY_rSgq+GBsTKjmG(I zvbs~=PPFyTyc6BPyv(p&!FZb8QO3t_96YrRqNdIC3x7Y`c8!*D>`wVxRwc2*+Z=pt zp8u&dE<OBhyZ=VM>t*v#-?hDV@RsA!^7Y$aPJMg#_1fyK%^xd!d6u(3UX^&r(oFoz zA>AUGfZMO?X39q_bjb5uq4{!J0awqe#Ri&-lv#acxeouzOKJFP+xYJ1!3m4%{NB%e z(!jdcO!(-z6`t#@R3hEko~K;zIrJxY_r70|)-wAJl~tYSI#Y6J5>sER$kM#K#?=Rm zCOf%Ijg09^`}ihl!^ybSJY{>niF{e>&^+0G=XTDVgMr0)T^h5N?Q(iw>Se~Xxmr=| z`SldepBER^$xJplc`;h~XhiSUQ&SgJ#ZD~?IuJAC%cq<*{ddoV8OENJ-B)+?_r+rA z#whC}+;eNTWN5Qk3VdJgD#<Tda8=Z8o7svKn=gvpM|lE`Z$#GVH_4~o<_wt-6m^t^ zamJ(X_L>p1y1lM=8nZp!w#w~-H_M!|wJyOy$EI%0f4An0GIN-+LF%*nzrIfs^zjwR z{v6$B6vD6JX@AwWL~B!|#nnGMpB?t*yyC{M&}Du3wA=}E7CvoO{?k&g?iR^$&t08$ z`&Qnie;2xU%xT&4`N7iWLW657vU)>$ZNJQ%)EZ>Ib)k#7Yg_vQzpHXD-ZV(9*e8BI z=5}3GTK#+d|FXZ2RqwxXuFle?)#T2qAStVY$i7{XB?SxAX2(x1ap{}9;`1fFgb(W( z?wBl#+rK+C_{*6Cc`UzGb39p64dQmqca2r$xn98A-&A{mN8^<wgF{a1X}v{1SA`@8 ze{x><_=h>`vn~g>y1F!h-ruM8{*$@>ajoo4zxnPzy5=d~F6=#>=aT<RL%&dKZMvf8 zA|Y-@(@oWDbGM$|eBxYC3%8N#Zk5?D=UX;ZmSi}dc=%zX?7DqyWr69=ktqr@HJ4m2 zzi1bDx8^1<`zE$*CtX{`A0m7SZ@=?zYre(Y_SRoWz_?Lt;?=YX*4b}vZe%{jugfl+ z^Go2c($pDE1+INXulTeMF4ow2OL4=krTlNw?SHj@n_l-S|7K!Z{qL9=bDb~DyL(J7 zGRQ1GXIGiP+85P6j*$UJH$VHkC_Sx`{if8$_|o_pvzM+9)_T{yi)-qSMH}zEz9(*Z z^wbuwIqNn*-NTYMzhM4e5k=RR{q=1(<KLw-t`LiiO8uX{Id1d21$$a0cSmF#{jy;9 z_UmV^oel|5KKHHt)*GGb#+BK|dj%3yU(7d=OMiROB4MTL;m<0^y%GvK9lw?y{@MC} z!XoCQPS&?Kf8U}X6RaI6z*y4o>%L!enf%hA%gg8MAJb7;H(8S}@<@@FT+jMl>jnOP z^?y*g$%}K5$OFdn@r-e~oNF0Zw3;2W{l3BByx;WcGo+utaI6n|+w1hf=;NFdFYXu? z>L%Xi`VtU6cSTEjw&hf_17S1IU7nhK*OYNiqp*X=R68~=Hev7XNe)X&6c(Qd*`Bw0 zhWs&0&Wn-htyRCH625#&{`2|oEp1_|h-l$ITCX18$@;rx<Gs5XXTy5+w_5MWU!sw( z!<bqfv+?SNvdFMxrqvqnw0_l0kz2%{^=yJ*;{n@8F%tsxG*^e#9qDad$Nt7|QI~zR z^sigHugyDuIL#}3A(xE&@BRamUbAjElC-ez@Xz1h9z9)udw$)o=(4)6?YZ+(g|9fa zoA2g4^s&o@Ig<C)O^w-$i(-R0rQTTAa!uR2uJ*lp_nAMD3aW2?rpC|E$!Qd_W>CKR z^0`BOf9bbR&c6H7c^8;$v3nG=eC~3_MY&$4H`dG%U-eV^ZU6tLLOIcg?|s{P)X&*k zC38Z|BsbS@n-ui_e>AR(IwF&BGt#?lk2Yfkcl>(^hWv-xZ@-;iJ!OVte2AK*=E<4r zZ0Qa;chw7}wr$t<R=Lu~R6SLUp(%PLOR&d_L(T#h7x3}?-+5hBOsZnlr?botr!4Mj zxNmOpD&p(oL(RFmF0zSzHrfxo4(c{rzQ4ac-G6_k{eSNGjq(5U_om)a7ki{<v0@J2 zPM;Hh0#=;n@Uq~QWjGd@&>AUpRqXvrAv?zI10@L)tKNAmxx9GOt4n)dGhRvUmI<}F z%zDtCm0|YkyK}xx-d^cl!sl?A<%5x@jN8FGUKb9R90<MmW9EsNiVa<&7pImV+;PKD zL*rD=tc<YLOi3y4w3r_((h;3gX1QytN2h&s_@l<;(>{EBT{9&$Z~b+WKi-=6<iMqk zHk<G1^DWnEt&s65>Jq37zb0z^YPXj0w8JYe+0N!X+#!{<Nl9Wxh36?|*>=;c+FWPL z$w7HZbEEhzs*f#By{Tu+FEV)^tDeKD*wAIdGuK41=4_ZJx~N(}?@Wq6M}W3lnp3Z- zY~zk2`42>%H%=*^T5!EyVaB~0)m1l_3-GMEc&oeJ{2hDlYM}<JEviN7&#y4dsLVh8 zlJ}Y*e;KD9>so`;3)duVb$C*^_5VkH`;F%7PP~?!|6+UW>TfNbL0M{34mwQb56$+O zkX2$BFA{q?qwwhOWL3{gzitO}a5>zY*O)81HmZ*y_wudpi%%|mtg<5JU_>y_M@Jp* z?d+X5?`Yj-uJ6xY!_0m6p21`PRqGgd*DP3EYW3mWtOZgIf#nfLcC37O;8I&fLRc`1 zqxLnvnfppEoiO`kx%+8VFt?j_*2L+`4Y#9%D!IO;yjP8Tx~K5owaqS;53PSjod1^c z{qnb~`hOSweQ{L&*3%!0_P*UWQ|O%F5i8s7MSZf8lFprnXKs3_c<SkuwCiFYf4`Z_ z^Czx+hy4C~|2AyCJzF|?!kg+RD`ifkOe}TgsIj^EabXtk$!G3+4I`Afz49||Ux`#W zHAg1m>n}gUt`*vX4npUp*Tr|$|NY=Tf2+k*9g!PsYi2I0bv|YMxBkAeRrx0sb?XBv zj0`Kz>x#{^)0?@ZR$E}{hRH5&0#SiYY~t1}M~YJTb1ly8%I}-FD{z5Inwsq%jvZgB zSv4dWuEjYVh|G?k%d%>nuwygt1^rG<L9R!Ob5!3Xy_^3yitpOAsGh3=TkkB4Zb*-o z-En+kgToWY`3ISe@)&QpPV3m*lrUe%;rL4S+S1@dEVByI{Hw3Aso(r<!MN({JA=Y9 zB}T*V?tZ(=)<17pabwn$2i;AFPi<1a%9DBaJOgvql=)lU7=>J3JTKn%TA=p+j=a9x zksI4iRIIo$|6EJT+<QyDmL2&V9DMj!q|1k()ELi_`s)Fn@6@(@{L<&f_eXr5V+#Mv ze*ue%FIK#9t?jGiPdHLvd;V|xUYF3XT}6&v8n@PYcpq%mXSbRhQ6cX8)Mdk=%~y_9 zRd$Q@MA(bJ4c%xu!NoGUE~r8JthwjrYm@tJnRYL>Q+_75O}IJpU442U=YuA;3rPz- z4{zl7J3C_ao$L2{8LE8d7M5Q8xxR?Mv6GSGv5gU9IEUR#kA?F$UHYz-q<^aKW6bo} z6_*wXMBKQ&%;~iPOU~ba@y$Oc?ft{LsPB8il|#=&Z+?sDpZiUJTkM*(R{hVtF1>yE z)HLcIlV;YGKe-CauKd3exy~=<g~F1slPnP$iy{`wd~%B3v(9S2&dnDt4zJIBYZG6~ zuO`CrZSCLR95*($OkN|y_{h`KN&M<Ott7sLulwA?=VjK-dsg9*`Ef%|tHPq^eR?xL zU!V6;mf?fgzI%)e`HxqpM)NlMTmRW}?^bKvo^Nl8+zOZ!XRT0m`5&6ayx^Lxt68Ad zT`ncb041TtjFF`?7WD1^)}!R={l|DSljg-I*L=hBc4{z--^{jTPEhh&G50gWo&4JC zM&@~+<m2{lxc~F)Nxj|jTa4Y=b8lQ}<>OlUBqTdcK7#eA-^qDj{>EiBM15WKBRu4; zLvXi||B8iTs@o)gpMEW%IWuCn_VLAY`gnHSdaoxen&_>%G^_BVYWb8ub=<sm{Bsug z3(ZVr*vb(yQMga6Y4V(hvHU8UZ?;Z4_O$(p&%sS1UvtB=_Nuh8Jzf}EFP7@M!)H$C z#6|1{Up&LL7ihU=T1`CGY~fnYZq*SuxnH54>!Jkfr&f(^-yd${o*M5S=6Z(l$0R1F z2Ra%GEuVKz{=DYWB%QC%7R`#aaSmL4FelJS@YQCC)uE1a_n9xWE1GsANG8KI`v=1U zwv(sYub(mr&gs!8QL7Nzx^X6>_NFTjEgHJIST&70n5?eeRg}oNxpnhih1~~4cP`E^ zynFJa_}NQSKmFbHf#2`#e?6XC;n%n}h5836eRFDOnLJD9)hpWrk*B41+t=OSSN}_q z?{oKMYsCd+ZO)7z*0Jr4sBJY}&$y^??fj<+>+Txrtm-|>o`1OHvG2k{{fun(i9XH= zy}fTFwO>@E$bMmw+_A%D^0di^3{BtgmMBNE?%BF`_WE@!PN^)~FC=4ENSu8qxrMW& zYewr@&0DQ2{|b9?ubB0guUyY_DaWegU*c{RTv%5XHuucr$j8oI_QtN<Ei09Tuk*C_ zY+#;z=0f_F3#X@fwYQ$Tk$o>G?ZXK^8TaUS^+y)?H1ynmKV{z5^?SF*|9F@3|B?Ck zZ&~}YEKV;><c+kr!dRb{ArQmdQT5U2wm{09r&pw#Cm9`ibtdGp<^4m`1YQLEwU~0| zJcq=bsCjd1pPDZ5lP!Jz{>9_MCw1Ex#JHRGJW>jKv1XG&_Kirxq8qngpS-MnW%aK+ z)!&Y5-n^oceZFjGcx6fS_S5`t+SmWTpO$~?{lvdE#tk37Y99>0ug~CTW4wQLO3T{R zH=3{Fr8ixkeL!;CL1t$8!yOA#pVzFJ_LMibu_TM*oy*&=QxEN1{AT*AYsSs-`?oLR zlhA1XxVLKO!sK_`WTLDWU3+}1HC;33@jS<=*9^bEWPLq9a$j}o`zeAUe{Fhy?}>cQ z%}_bVR)asPvi_LW7a^_xbw2Xu47nY4i`3?(`irf4#<4)}QDX|@q(wU2``#TqyROlr zSbB1I{rQbtJQMWXuUf6P+T6P(h3l>wYp&ddITxDDwjL-edgyxn$ISU#`@8Mpj`S5p zZ=H26GV}cno3<knUJoC&eGc8+d))Q3a?|lO33DCiFXcU0s%v$a)ya9uT8#vgU#5)r zLi!kmHF@SuGiDSw=~%&N5@T}B{6_rN>2)&%Q*M5|cXWc*!9!lwtbKAha~Y-x<m|aH z-T8D<(AjJyR{J;FGa^-2e003|UGanI=}B5m<&lgZJf{?H7dPkP+Bv<pW^U%=^Y2RX zsw*5O#8;;?HEC$(Xtb!U-gso;qB(~CTi(WG?-RRsq+$Dg+oPMAME2~t@_FAx-IHQZ zHICktyu`Q2e)G5N34bFma9uxbQ1iDk^4Z5Y$?sB66aLiYpS7&czERenxB2wTb<H8y zY9-j^&s&&>6+0fEyjDN{a=Y=b=tT<()+Gu}KK9KcLGIDP)vUs85AHhFFV`1ITJj~E zrNjNZq-}htWt;KdYft&o=PI7u+|CxjQNsL$&G!GTMNbX(o$xl*XVMMc5~sRh+wEG; z3UR~B-+cL(o0(aw@Z6kN*7QC;Y?Hc@-HNH_0|K5ErA=qQG55&V#Et1cM80(Cf8vbx zdiaIao1tv;sfrsfU)_EEwt6o!!@XnIQ~%D`mfm#OSCMzKfb{1B3~Mjl3A{PcF5L0p z$FsFfiS5EdD_+cVWAexpoN9ftVeOLjA4N1dVkQ|$3)n}^n8^Nj%Zk>Xa)uR7x_3V^ z#~pYhdt_rclfY{)#W~5R%XEL{9Dmw>>-yF;;el`Kofl+t{HqkWC-dmZ*SC3p8vYo2 ztUGn7Y2VtOOfHr1k}PgVxg)o^*hHpOZ(HP1!9V4k>dA?Iu@~=Gsm0$^vzTOcCrwF| zb4vZnBZu#=KDEllH+|B^`9F6`ohaD-elE+m0HFyl53HWd^!kUkF}Fi_Yj(I*q1fmC z2c{)#SE5eKws8lRH<)N<btKoF*|n)s(bT|7?u!tQSkA_jBkgLzPdW~nyG)ySHh^2P z`%Kzdu`U0k4)n4b2*|30=mlEdE0M8OKQS{Ub*|bv`z~Kj@$+2&yjfb5Z@-D$yQ25o z|33-Z0rmE`7VJ%vxw16QY^KCCj|s<i3a@UQsq+8c^Yim=gzx*b&$j-5?eACN^KNWT z_ka8I^Ya<q&)?fBFAzQ<dfQXt<>ym8T{i{ZNS295NWNfcP|LEJ-^rKOyH%Pg%+zJi zq)mZA{>Q)io@2dOBXeWb)TPFH{Wn)JHKZ`^I3nR9CNXQmZ|zt4KWxkz4sW&G^&vUH z({Mk}fe5LS2Tnh-S{Slduy;$r-VJp>_nkEU))8pp7s|JCbIhtukqe{NA87NsUo=Il zkxx|XmcY$93t9!v*~m`y%<k;-4J>H<?NvE>uMz84E(77xz-4!Rk1t&i%e3F*mG9!{ zwlBe1Ybtv?=UKLXD&DuXwz%VN%zt(J@4mb3|Jz!dE2MvY9cIM!LumHW+Gp?H#eG}* zB7I~2YNn{IYCLnBJ<ly)H*<>g>(6h$6o}iNjr<%KA(hOO;Ju+LEcIyfQ-zHy&ir;d zpyqe+>Q~?0YP=z#?fnUd3@T;>Zu|7B?~LfW{|k<2YaEspT2j2x^#;p@rt@$21Y{eo zycvE|<(B(eVa98YuIbwuYWZI0-+B{iSH67D<NgiJOy&mhtl2!J*96L!-s^1En8!Om zbl#)yFAf~nYT#lFvkz83=Xhmtd!6Tc?LMFXer5~56<2aFTvEGo@7($e_Y@j}!!`=- zNXcY4oiNGezzTn%klNr6M<3i-!Y`y}WBmV%B*UI<ug`{`-(snDWoonGgvIaXOTLNH zzx%FoL0f`Q*?*=Dn(x<D=EoWLywhYY4$_OynCoNP@nS)k&|NvntXq0(-1grqaW-?W z-d37u&Z(#u<GgBRo4-oKi3QRH2P@X!+qI_l*(HW$#oXJ@>+aaU-~QHYb6uI5$M1JO z|F!N^OVm_b^Ve^GYI%!hB(s#1I6BmGvGYXOZP;oWb6P$5=8aXV6`SrA?GTv4QDu3$ zZp*a|8P`6_h90o2t8;TW_lc);uSbgERfdZNX-g9Mj})y^oFKV$*^c<R;SA>GNxiC_ z&X?3wR2MRYsg^aZ>W(PBae9{d^*IywDn(~q&7BbG#%Ar!KO?4cgTT6!<ujsVl4tGd z*&Mn2E?b7VA>V?-iuSy}7u=k9xRjY8?$ykrQXS9BmT8_cyDyxeRW`YNGsiYIxsX)L zsoUmXU${TBw!JE#ZVHFo-=J4dQ@9I{-;(sX$oE-ccG1$$^M7wTA?J9<+Lu|tIedxP zG7q+6cYc5QF=Gy=0(-NO(XWVoojy(83u9xOS}hCp1d=!WcA66S<mCBXk!;SX)_Z^Z zT$;Cl)qC$7Hw7z(|Jio`BTp_7t$w0h{k`gS+<S(G?H`Ut<UezK%~#1SqJG|l<*cv1 zT#(30N6EX9k$?8^JU=jZueU|>O!51j&q6(%mnDlI<XjmgH)q#AhYR}_hx+PqU9veW zImJm~OXtBg|4(Gs`Mg@RAYp%AXY@6zX;NR~Qe+JZA}Tq4B*yXEyb&_~p5ipm<8F7A z1ItRm7wcHGgrcvq>Pnttd$Ho-6#)l_GWqs<eOIa^BhpTW8a><^zu?TpMCXD%Y*+nm z`c3XQt20T=<(J-q6OImiISn%-pRcr?9vqb(WHLGZ$L2ZN`nxTP&3G5tu-Ii?m{<B? zk?vylr*Yl=2d3BVyUFNtr8;=ar0=uO9QO0OdWoNPOK`M*(U+OBte1EMR_r~0R95`z z?3gE4mfV^fpv87N(RF9T_V$GV;u??j-tEZ0Zl`Tge5z)Oc*QY}kMr0+t}=BK%iPAN z)vheM_Q8b6q_l3Q>#v@7f4_9_vyYZnveVsrM-^&yxB@H0kM<~tzuj_yFJt53ho}A> zI{$Y`?U#$;Z+GAS+xhMNO{ERbf31tDUiNLK)Y(g~o6c6fuUhkRmDRCM1D}^ErHh@F z)%<#^_IESgwlZok<$o?vID2!Y9?w3JD-(|fTJBE`;NKpS#&PDVMzX;<e*?W$@3dc@ zS8dt%<DQ6Lf(zfo%)SKGmAOfM+2>x#$68%;Fwo%Nz_XU=HG{D%%Lmi9T2Brzy$ErW z^fU;w*s&^E^xT24oP#Qpnrv?!|5$#t$>yYx0{1m{evu4euZ!oad<#>ia$XA+-=K4J z(K@-3D9y$0)uu)zA`z}(DswKM_%N+{`qu0l$)}Ip4^KI8p4+kCH8<}1qlOvG%R?F0 zb9#GdJvT^xyISM@UOxLPH?r^ZZ>UXuo6c&SebULAh3i{4!=f9NOi|fWTrXU{zIjub z1fSd+q3a(HAMVtV@!qt3<_1v{&mC^w%p#{(na<*j_*xn%xxkry$=j2X*(vQkfs7hU zwl+Vo-*tV(oDA=Y+h^=P!jtK>YU8p3ImTU!Y!4JZ__5Y1c!%BUtf;_Gp)&;Iz3;3} zf3Pm+dc&N<f3Bvf<-dLR!*ljk`EAduIcGQJM6uubmcpdV;^cFnrL=m1Azwpc(DT^~ zbe~5SD;Df4+FvaECgbvkn&SBMz*DZ(OMS9=%O(`QT^8|K(C6H#L&yJdxJ_?*_m@R6 zQB7pk43W-?O(G|BL;g5tuPEYI*mk5M{>U=FzcQ<WPWTI+Nt8=_ttywOyj4DuRpLOE z+VP6SObKbO)ZX3y_iIl*cT!!$%DL-y>a?S07-knSZ~XS{&EM}6LJA$;U0uDn_S?&D zwgV^6IVyaZ$Eb2nY*S%CP=xtG+fB#frq@lm`DN3*<xFgU>)GG#?J>4-D0y9_s-@ob zt^CxU>l(a5lRJy$)=XMZtDjJ)I3eby+x0H5$O#wMUz23sab3FOL1p^6(<e8-+C6Q_ zNv+h5OKsif>@Mv(DHRdXq;j@V;Oo&S@02G;Co-;W?mqQRDKU8GzF>|$VN<6pNjx9? zV@GGK%$_fcpGimS-Q%j9#5?()lU|ZS3x7I;Xr!O0PTP_1)qm~(+%xT2RQf=_c>YEa z?R)wLa-6HBr5|)Ru-ufMaw}u~!<#M-#s7BxW>b~9c(Cm`uT>u7ol>@|%-L@rMz7_V zHS^-~I>#f-Y6+_<IE6Olc24D*k>2=tq3nZd-Y63$_QMB@{=YNop1S;#-jA8pN58MG zIh=A)@UYG){qjvySLc{Zviqb-UK6$E_At0J|M>Bms^bh5((&N3@T%Dlcg<Uqem*OA zE%+0C<;~Kk(ih_G7S`2l&-VBc%PK23msxM(+X;uKy!;X{^@jQ9LWyS2kSB+77*@Pq z;2gf?*Q-a7+WfIWzy7EfcZYx1VJ?uG`0Db9uyVC&M-p}~?0)xVQHtNGrLI$SFGZwF z9`c-LJ2!F5wA-u0zh|-?>Y5cX=Sy(;r%6o07G-h!pWd9l^u+#KhLz85rl#vR_#Sj_ zPgwgRwXW4A%z0hOxrvNcK0aKE$v!EunJyYzf0b?)<Zu)^dF9;N7Y|ODTua&I`QTjk zDkIrk3z51XI}c2kKX)--=H|;&3;ehI{JT$fruh2KdW996jD9<C&5^$ItRg17MATv0 z;ph!(x(^-Y=6`jn^0S^$<#Wl)ZF2JQAMLzZ93oZa*p>gz;B$OGGtcpV_yW!^x1P@{ z@twRPc;A{oajZfsI*<I?!Qn8kFrcMNpMO!=insZN`E5O`x0ea;HGZ*#F=Xu-k%B$9 zcg%^MYSvvTn5wv@ech_<=cj(I+;Q`^{@<nZvl;(yf4jJU|5nZtsgf&9i@)EmPkL|r z{mlRB-2At<=Wo9;-Q4{8o%v#pdz*}_=2jRsY&h$G?EJ^Nnw}T6EdToN%g*<c`YpeI z!oT>g1K*C@g<C%MJXcUVW$GsR-D&*>rLl$nmv*#Az3#U^@uTK%aryGwtNYj4|66%r zOM3aS84YiP*dhcSTJkjBE!*G!-ByCbFhxN1RsU+!-9O9g+obMqO!fTmJKMnO*8!Kb znwZ5Mlk6C{s-Nt+w9|arjweeFnD+iy@_xDD|GoPw*JxU#6|Uc+IXn8U#fHqDefLgh z=eIB8n|)vN%-4&*kJ(<RT)*|pR@nvt=I?L6Hg6QVpETR@Zclv1G!Kon#}s<=H$?2O zeRp`})&1T#?`5y?mrlNMywq4}YU7&Bl*cwQkEY(PHN2Ml_Pu<vpG?wqhKBTSSJ&Ha zt+oFC@5$uuxqkB%U#t-Petqlt)HAx?b1yyKXvW68HC_5^FvG{geFeVL_MP%^xYwWm z|JKaHw62ay`BM*~(|tnb&RzN5cTKGPbkk$1&%zu$_};Q?)|(XebLT!a<{tr>3p!^8 zn;Kl~>Rs9@{A*_Nl)E|WXDyy%o^9|h^i3aw?$-Z_kDD(pEDcEUxBkIiP`TCc6N|^6 zT5s#c_x4mJuaDoqMZWIS%-T;U`QIGvo?QFkpzrVZJLjHz{%!O5x83?&?n?XpwaTVc zcc==MURiKVc|uLw=Ia6b-%t55_gdJozZM^6K4%E(?P0r9%subh+3CBdTd0_Dd8i)$ z_jN&CYG-1@CAGi^u5z!6b*!;BO_^fO9|=4Aa_Y6F`<*uomru6cv7V!$<$3m;ub(GB zKkJ+G*ed>l(xikN=f1T!&)wV2ec*7yIu+&SYy&yp*p)kERUT<9W7*oSmc_i_^~A^x zRg;c!c20BQ6<#-!^}vekSjjCa5-p$irM>;gd4A)9*P*}f+-1!cdn$LCxuj>syZ4U^ zo_$X#JD0ereOsc_&iR4~MZb2H3pKsJp>XH%-jfE>t`?zr$^}zYlNb|P{CB_a<l9u4 z*5EAm+UV5hE$a*aev7?%I!8FN;pw8H%`WwPGG0^sH!^odPH|!R@L<M0X}jthAJ=SJ zFuA;XlKgfrYX;eRj%5qZ$tRRJ-IThy!1(K&3$6>#Mn-Rr_?~!p?pNmBRs8W2{#<V5 zT-s%{={tBL8r1zgB+h(pNm%qT=d0%Lm7=b`nmvQ5=$*tIf1&-+Pv5XtE66lWouVRR z)%{|U2T#if|4;{W!QOM8jd^b+#V_Ukeb?3CZ*@}Aw)b|woQ9nEiw99EhuUsk;AXA+ zGa-P1C+e0;^K;4EDeG7#<v8qkzB-n9v$WOSru(NObyzOU`ZA|d%11Z;l(<|@g2@9L z!OaeSjDbm(XG33o+g2E&-I^P;A}0O@yO^WayPxMG9>-k~ztc05BUx4{FFUnY?3nl0 z&7JHjua>{&D9GwD%v)-3`-XA-WQU2HWp7#Bxwq>?(x&P9=_~(CQaa(M-`P>~`_Goy zFY04M{5iHYlzwz5O9+UzT0PBbu7SY4tXQ2>R}>dbTNiPLF*^0h%NoOF5mRha!q!=A zC^>2C?X}U!@_X>LgJ<XM6Z0rucEaDzBH}VbPqOsx&nIs*rCCf6Ik<cC#H*8(1$w5b znAo{Y6fvy*a`F0G@%o3$-=^>XJ(rCshOyx0)|@k+r~UnT?E3z!`+uH=zj^j;7kk3T zbe4SE!zX4xxPQ4I<h7c_>xH}-b>A#jNXkF|?REFhy}CEnZ!Z3>p3|bbR%7$5UZ<N@ zGS7DiR?GPGYkWDLpV_i=qUD=e!Vj-#J8V7Sr>P(@y;jD>wvXew;F)WR4I&#;(zPPq zGG_eg=@YU)*spGB_A$36ErnyZ(5L=>N0ya;Vt*AYbbUQA>%2#M*HzJt(|*S2Bu2>l zd$IigRe$i01mjAzcYz<|=bPVd@_hXM%$mh_7c)$fi}_Z%lXc+^_213c74yvOqRl@q zd6TtYc<s;J3pvf21_u^?yeTnRh0U=ixq;;kLsGrojIfX!%U6~eI4;=2#+P;JUaw=S zUI_2>UjAdf5!|<3-345$gqQZ@HvC=o{nS5$9ap}yTU@$+{PEfLjTgSBZ_Q`P*5+Hh zB#-IU+q2Kl|E=8qz~O#W^w+%J=soL8Hl#M_CzmCyNty4&5b;Y@^ICOESF$bVha2xI z`@BVXe^<Lyik;{^pwP5+#t|uH*@NEuuNt<;2Cs-PDE2COvm*NUbosa3+b)P^NE|b| z@@V^msqdC^xh%`b+_X+~@m48@k}qE63(q{4-<N*gz9Q}ZzaQ2+{>{G5|LynxZ{Od1 zumAo#EMD#Rx9#>@zR!F2cC!4vo2jXqVogVLE-8d~JErGbG<#mj<N7)4+{w+VQ`^6+ zF_cqoI@ejnSeF~HMZQEv=S<RZgY|+>Trb4y+>onjzI~>e<7|+1((<0&kp`!Z-P`fN zmh+dl``V2b{S(h__;aLomFx{~xf=Ugv#rN-Hka?(^f<L~KO5Vtv|QsAu_@Qro5p9e z*9E^{^?3fy?RsLXi)4*vnZ&y)l}-I8Y;^PNd5t79mdh<^C)OX{)D<OfA|{^Uw_!=3 zs^JT^gIm*L>zm(j|5`n>%Bh{lR&|TvS0PId*Y~}$EKjPFY);0!P_@fUj%E_{39WP5 zs&bd_#n~HvuP4n?z8d}c*~;4jQwlAeOCDN=i2m4Z=CyM1+KgARI<KDf1hL&0c8hCj zep<3cBhyp*m`0?Ljw{RN?OZ4B+2?v++Z_-y<@Lw(eTVmkZ@v3eD!%ur%tbDfBW1D* zoQ3Cp&D&eOw{(3u!-41@j}njXTUe<iD}79OR#}Lc`BhHi1_L(XS5gjvi%v}WZ9S#1 zeZAAhrCZuIPjsC6_}JZp4DA|nOlLYZlrMU+9`B3rTX{eGrQ_Nx(?b8EB%i*$+Y3Lx z51TFit>66S!$rS--C3C`5V_jM=Gt8OkeR#K13s2NbiNp%Ez8CB_o2jz#`Q(3Tuk5B zrUWk5e|7nYAM1+AT5mpfU$YGKe%Z&`^EWGGxqiWyh;Z|Z8CI#~^H^v3$b`?I$L-o0 z<HPg7gHtr(b-T>O0>$m7M;5EG_OjTn%b&;fqB3E^Y>%UDQERMCvZp1Mw>dcX@rR3C zSf%LX(Jm5VJpb@Bg*DTyCQY||k<G%Xbl6KK>CnN0XL_DRFpBVZEtu0))pq#e{Ln|C zCyuQaI}>8OYt64mEB2~Rc$%9M^XIg&ab@oPoB!td32))`SbyjA$uo;w{5kjz^mV@R zI<mfXra-*1eEk>M-&5m%y8iz0IDf;^$Y|mCpC4*3{M-MtS6}(``7>%S_dTEX({jH4 zj{c>!-(R|%GX1sgbR++9tLA-r%eT1v-5<GSf2XW%(`2W#u9<U|oS1hjIsMKgzObO8 z?D`EmmdyF;yWxnXkVoKEGviJ5X{-7=d^XrDw`#JDyZ-h}j-Z44+kK_%F^=ias?<*i z>i#@p6m-BcYUah}w+VAx_?k0Q1aI78+f%@}Z`JFi8ao3GLiGBNFHWETzve>@S6fv; z^Y+({zvQ<3tKJac5ZkZQ_l9GW>m6x3mD5j6_GJoxar-u<p@T`^X5S5_gflraxTl$Y z7yW)QF#h%?mbS~gqpqyFF8AQW%vWVLOcC5^2gMjV{>M8r_|41+Jn(c&@6tB=#|t+4 z3P|TL1y*cttmsn6-SkmOv|_V@*|sMi|GFM{RVA;d<-NRgH~%V!)|P22e^}=gN`3G8 z-PvINb>pLQ-Ps3%>dT_un|zy)+1vE&-K&4=-}L|g!F*%M>8kes1^PdB-8#NF?}nnS zhCG{>@qAPJ+l4n-LT=r@n51V^WApe}m%O7Wv;4ZJnaRyb|C*cb_U>o>ti9rnrb+BJ zAN~hA?2NBBd1jZ)*zj>*#XgI6(UNQK*$z+H)1)V8^jE*gR?xh5YogPhwsS5oU$^dZ zxa#zGuC9QZ^pEryeHO9iorm-EcgHfHo&A2p{rA!e8@AtGzWp0_{ZsKb;{V0>r|kc2 zy+42dSN(e7_qE>+UVn4m?&qO>Ki+Wvl3ivS8{y5Ht2pI$WzZ4{R}1Z`J)h@r-<4x( zf1&m8ap&TLrks2{WrqLtCRD!WbJ<;;rTJwYo8$TIg=P^f=k=V-Uv&JMd$9gvPA=EM zV?Jgou^y%38#m8O_m5}#yytNw-{SghmkV<{JEV8-+?SR9P`aimm3QI<i`K*H)dlL- zQ+rbFwP!T!id?<dbnET!i@!y6EH9cj_vVRTmDkQ~PC0XaUiR7vqTl^4K8@(NiEgu- z@_XvcZ06VME<aW{9tdjB*u3)hr}X`^Ru*@^TqCmPt%8Hb^X&iME=|1<Rj}%h-<tLY z^Cb(fp3Xm^<ngz%Rz}0b;_VX6tzOJNb4A<s%9s9FcwDHux619-@_)a(kCcjTxPEU_ z!Hu6w_A)0heZTYWF6*X?n&C@VFix`2Xq`4EWzC{FJio$@R<$pCk<|9}xBbKYd#d+} zf=aR5KV~iK4-CJZ>%Hh>*+(h+-DTF7b~Qz@S8e6%cPUhuBe-v&?c%7#b(0z;UjN!I zVij(3p65zQ!6DUv0B^y)kxx&qX=Zx$Ix_Y9)!B(roQB_g+;<3DELlGHoo@MlYZ+Im zwam-~bEKz!sW#X6E;_Sp`KpP2=fA14o-p-RnlP2&?W-1M?uO16k8&z2mQ*CBip}Z^ zlwojvQ2DUb=PBa^X^$mGeJ?RaRQz4_pzqk^2F4@bE8-;m)@x>MseG~ez)h>9*X?_E zaV>fAx^IR@qe_#@H3qxAOP3vZ`9gR1xw|XMcEwI)erLtX{x!+=bm831n;uQh`pvOm zN^6t3!+Y27uZqJ%&WEn}HY+A#t$fbK+y$$SThEQPI>BU^^U^&g^lr}GP3$-L^JJPT zucb~h$~tCb%NWD4L0$HdxZJF*>>4glYySpcjps946)IN!@1F4Q{{N5b6Xa`OOBZ~5 zR<?Hj&zbqR&)0lk{Ord{(Iva({90=)Zhd@s#BiI+tOD8UP0RJZzRH<o#q@SxrO27G zUAsHqG9F|**E&PYR^#>7-=5hi!pj~S7yAB75<X-oFhO`;6VqK|?Z>r(vkklj4~j9* zTX5r;xO-Urk>w$6=Q~T+PhP$Jz4U`EyFUF6%zAs$jnk>d;_Jsp^9%oHdA7<wuUp^z zZ}sn+85|nRrnq%6T@gAT_q#lF?OKH?lWxiE%e-o$CVlfiBb!g)YK@2McDYU1ne=~h z+djrDCFv;7ul(#5PMbf<b|0(xoU^O{?4nzLtgkt;IBosE#=30bVZoW%esh=<)@q)9 zEOp7N^Y^1zG1g@ZGYuO;f){vPeSV|(Pr-#tk8l2#S+=E;ht>X6(bssEWR-it=B%bC ztsI1vDqrtXI^fUr(&2S!^u)>k-j*e`Es$<LeCfL=%iF9B5f=m7GQaeI2RpswA1lt2 zs1n(fevIdF<xjz5+eP-4yUbxaW)^+Ce#x5TO&gRaU)vn!HOu_l{KqHcZZm3R%n4ev z=F;^{u7L9y4wGlFm`bpQ9iL^qi7D6koJ{+Q{b3I48uory`kwB~^mq&VuS;wf{M_cg zoYT2BptN`1(c|q-nKc{F2^_v9>a5{DJ7St_!sk_o1oj=@_2o@vZ*T14b=9w`4d%^c z%-@(H+|%x_!&|W6`uo@a7N)j+KKbqKnLYdLw)`*qHrf7f?(b9K_qYH5XZ~+%?fdWb z8TbGE`kiYU|AyWEm&{zj3r%a?9^@q4PtD+Yb1`x8iY@0}{yEz0#<F?!v3<1(xsnCf zSAAUbe~W<643;p4Cp;59?iTZIxO9Bh+ZP3UKRjL}?H$ND=ld4_D-jMKI<^)*sNQ@p zK6###&9+1SpR%VsW{q9;qHpWQBE_ALFRsg*bl2|Y?N44x^J?d6KJXKn)K}VXI(2K= z($$Xl-BYW?ZhmO>37l`vu5{(E`gzXcyvvO`;TefXBQ@MuroCNc9BCH$cJ@m3C+5Xs z*(MD~I3E19m6|SaF6Q?4-?uXE@0Ib_{r;eH(Tgc6dzU2eFS+zr^H$x~Lu-Wmd=yXZ zy8hlWEvN9Tii20-H?EcsYxWz<*(fga^I#6RJnyv68P}g~uO4+pdg?XKpILl(+co1E zS{J%BL}swukW&qOxIWcTI$&AQiqNfVHfc{?6Kkvfrty4u*zMq{3CARl?5+E{5z!{| z%E}gP^0T<JZja<uzQ0j_4fa)3_ukxmp6A*Nk+TJ5MHlJ?K4>-+aB04}7=F#{?WQ^E zsmt}<Sx=Uv1Z!++Kis=!j;H^D-xIdIK6s(p^x{z;$sc}>pB|hwF3YPZvz9$|R?^z` zL*=KQUzKSlDrt|Ea{C^gv*wiZOOg%Qwm4dI($g(fmwKJ1r1L+1ccm~~vFw&GUq$}< z=Lwy`JIh|po#pv(`-}Np|F7KEymZh!_50;>E5Bu#ORTN7xxmP=>GjO=ptpbR%Hv}A zmfY35xHwGm+Lnm*xy|<uuKfKr$5zGBsenuV1NZvF^`G8w8pX%4*Vpe;7hXJF`o)2O zZ_Np8r?nM$jOE{4;N!R7a{AMP<{w82TQ@$dP}}-lY1$O?+<i}5UT<(Yy?W{bXUBjo zL0gW^*D=2EeJaB*89o)RIflC(*jpK6x0sluI8-#WA4n=rx4F%imEbh@=DVA}-<sVl zE2{k2_EhxLlaR)ga~U&YVgy(1SD*dd`uFVmzv9u?{!gE%J41TG$Gh|Y_SJ5;Ecxtn z{F>$p{rEi_!`H`u{}mi;&{(ajY#b`zTl(Y0#I=vuUp~0B(1Xk4rkM82hWjj4p}B14 zk~cL<`+9CwtPj~K`X_>4=BM@1VA~b0GuvN$-uunpZ|BR$whICrnydw~*%mfUxw-PQ zSmTsPme+Rg+ou`+{uDlc%bFW2b$9c$Z|~0dB^O&7{Bh?3HSUm;D<cH#z4<%b(`;Tf zKV&g1IUr%d(Acw}sZA*Bx}l1g!|VeKrtA_vworie)|&H^djl2r$~f<i3b>}bE;w^} zmGwEfM+t&a{HHdSEJ}^N>o?(;aqoFnXJyw3$CkgyJ~w5j*X+#x>Q@I`H&_MzpC|Kn z%a*j=8Vm2;Z`QkdFyGo;;li0SX`95Y8E?vcSQ_E(C@z2h^t|t8Ldi3W^O=H9SghE> z%jovy^|Xf@v{$DdELqJp%cp1dyp{2sUP}v$HJg4W%s3&a8gOF4f&Kf}@VL!rxwq!J zQP|}SS<l%LJyP$t9lpf4`Gt>@Xr1w@iQWQhrVFl_ROlfQop$%u<^^AKH{H5DQEjfQ zwDrx?HOm-fmafRX&yX51{nc7No;OL(`N}NcRvlaL<)_jOp_#5{#rIWblr>y?J4;u{ zEcwCO(mAZp!hSN?+_YX1yp=ua&!J;K_d2N<on!0X#PDic!I5xA-_@l)tBqMjmOM!` z`28Vds_?40hSyC?JByN>QW&-{<!~k0S<j6XKOogmlk7jwX5;>!+VzL?=KtIFcXj>G z=x-0(uj_u;ze)b@2Y05@S?!O{C!Rm*@jJ-+<E>k>)=9_xy=1ePciP_Przd9G70k8X zFpp!2Kl}A*J0D3!-?VKH^H>mllf(Q_dB>zPEn=%Ls2>tGD(?NrmOE!=c*BbsUCpki z_sl!e5U^%_Bl}H*?YrCCd@BsT-%>h}`t9aqfo$vS^BQxjt7gCXsx7)OWb5vdc(2BX zU1migv*g$Q<;dW1ygQXAz~IHL_3Q3A-@X&~?)ib1@`8e%pEc>4QEA_HrWVY3b<BY) zqJgWvvi14Frq{84UiIf*s5zK99sM4t6VdQAHPg8=(fUr_>zX->7Bflu)x}$GzIRV@ z`RdJ0zkY7ai>P01<<H9f?O;=5s*qA^*^w%jv$eZk)V$zX;918cxzzH#4#QQ0Gk2cX z`DWINGA-FAGb=NpsO#-i?mruOYMb|N{C(Cl`Ovqnqs)JWI2ESuD+xQhw{@F{>*h>< zw$=J3DSQ4r%6T7`e?NOu`TFheOk-<*@6W6LU@5T2NyK8i&yMZu<F(DjvrY@H*v22S zty%l7K#J^?le<D)vP!oVOjSS6xBWorxscCmgCv)Ih?n&XNnzQraw>275eEZ?t+$0= z-zc#Vek%Iw#=ZYn*Vnbb|K8vFfuBb+l2d<Qg|qs4fiE6L``(<pa%Y9}v-i(zUF!}Q z?K)xLX;`_)Lw@RmbPIcn5V2B?5A&x7Oz;)EnYBMJO7wxYwP&N<SCh7P49)RZ&L3VL zS8<{-EpLItLG{L>eSGQXRaOZz%vrZ$CI6D^Wwuh@MHdtcc6<`pwQujH!+og&_nf+? z{NgsgThZs^es;g~zxV6TKJD|!-TgiD+r|%PZmMiCJ2v-qE7u;bCAN$6MH(A7n`(Dl z`L%LU=hZ!z|B5a8bYaqrFK5nZZD9Yy^Q$GHux|It+;-=5yt7<%Ihv*;?%;xjq% z3=dd3LiNf^7Pzin7JS@6sj_<WGmAe*{A&;YJ6Zqh{kDex%Qw`;-u(am-`)64>ucXS zbC}CX&-(u|UH|Q7|M*)kMPf~}_}#YLSbN<{yX)b)m9_R?EpBc5ox}2;QRM^gL|OCO zY)#9wm-<PEAG2Dw&Y`%)WA<N}cVFE$bQhY*9-h-Q>5oP7-OVPEulJ<qe3hO3I+yuO z-TM=F&O|srXPcmVPUPdi_pc-6&&$q!C3t3W!qp68Gm{TnI9+rbcv34lcPw$g*&nFC z>txmI&9)gPUB0TD?brjm?`@V){&J+spNZke4#$P(YZq0|bn@!AyV=+s$7OoW^M9XR ze@Rtj+2QvmGmZB%aZh4exkRYrit%Bla<k8-FE01b?>u*1C3=q8{`39!(r+6vvo1I@ zYu%6P_aZ{7jBXRy<Mjm=7`uI#%6aguO10sNQ;*lly<f1wIQhn_#k|YD&R(?6wr>61 zODn%BnoTQl5j|TiC*G%E_3tv1=c$+?zN==YbH0llOuD%D;>NX(N8f$<eyRC?##X5Z z+-Dgb4PHI$I2yQUZ=xJSd{2m|_j#ra&E)wRf9<Nat@<mU9mbINYQFK@^?&YgY}%rh z;c)D0NOX>vs??@3!zq^b^PJa4uD*SB{no3zhf*$T8Apk;?ath-mUK4U);zX*Ew5}@ zYg6aH_jAv!{SYk@(wWz!Iq$~IWyVpvSp94B7GG}M&i3VgTx_hV{Ik>F4o<h*VE^|Y z|C?WF{a?$zKRYsY_BV!w&q}iW*VP}Y`}FgE-ogFeTlZ#`U5w_MS8`s@p?u2Qi&CHM z`QNVD^Npd`?#iPx3|CU#?^N4f|Nf~kd%&4y&f^DqO8zWa$Ma%cqL5wNghd~t_8w_@ z<Iu<N*e0l;o~%CC=l{BSTkN?%N#C<Qeluui>Qw#dFRBFIbR8<T^XysQ)taCfHhoR{ zYu|0I*#gO%W>5VgcvkM;5y`pTSzCUeuAC9J<&yTF*uLWI<wb#S{a;EgIPD|uB4=i~ z(uc4A?OL_aO{`DrN_Hm(<R~U&ymDczu2f9eW&LII?4*i~{48B!jWauSzuWzI;4LHm zLPzqs=kEix3*>9RrO(Qr7MZp+aoPSOPYxx>9@&>%nQ<xZ_0ySJpP$T*=;~T<|NS;b zF%$m4d0PLqA2HOlE#;iUuX<mtEADeA_j~PK!9OIP`<`^37q{lQ{jdBtcVDlqO0E80 z^*b*0uf!CCUECre**9aCJEfoZasH9fq<m1!+D|g+{6mf{Gg%i*kjbhNTpgETqb~cJ zcUIh@qoHa^=@;`OOEz1vHaz%V6lQk$gwluWTQ*NLTo5cWC1n$*O~e{6Ch==ozPsP; zQGBN@(yO`Rw0y|LU0xNdUs(Q;dwycw1s^6+&yRa_AH>FJhB?+hESzThdGmyAuJPst z>su1GYwd2|)?E7XoE6I#n-%dMmOkQ^&(>|Y&%gD|I_?GUr`Ej<X=Za{4V9|rat^F4 zRo&3gT(y|{!oE+dWY>lNmOZz|T<(wajEU?iq1@VjpS%(kmPoiPcc1(0P@cE9Tbj(P zBNKJsov63?Ql0i(skwXeTOYONe#dzN3l{VS1=h#>PzY6u6j~NIS9$8hIjIH5H}*KM zOcy!a{&~S&{!Vo_*4S3If_3M!F7LQLQziZU^Ns1Rv?4ei4)lKhrd|Ji{jLA+>VM1M z*!+Fo&EMze-(3H%d4Fd8&*}e|Ui>@WZoFdl{F+ai|K#o+UJ)BAkf0p!DCTp*(>qJ{ zxlZ1+wx8)|!IIs=(l^s)-u!Z7=k*gGb_Pp*^pLt4$!7F7`0?+ju{oi?wl`Hahu9iw z_#5)Cv_4X!cQ^e_`PQF3wl`$I7ktxh-nrD$;`!s%W^dA0xXg}VbIz<X&fhVyfbXo^ zO6L2)$!FxJ22T0s6MBA@jxAT-8MlNJ8#@{lbDJiA+&cSUf8)JB1zSHpyRzT<t3r1p zNB!1~TW6ad%#?Fr`{AE?i$%xm8O!x_F^;u?uM-?wJ|u~%?#jw}IXQRkRgS8uf!F{4 zuw#<5yjnOv)B0KM7awEub&;!czS~@LXP5j`@Fn}z!Q5NxCZ8&ewqkaCRL^J^$+94M z->Wj;E4mCxziL^sm|r|lw_r=wec_pPW`6Fz&3y?I+h_D%;(E)Na=}JfqU2VJ^VRz3 zsKi=7>&r`mo10BH#~zMij^aOa;`3hDHv37RG<kmqH}_uIKgrQ@o8v8xl2?|T6Rzw# z?xDnKRUfo+O5~Kf7az7HNPn9)-B8c;TJ0<C_H3h9XN331pOI)%J}SrlWo7*Qr_Edj ztS1zO?_IBdxlQH3hE>%*u3!G~t(g_5GNF3is?hBC_{1HLch${haH*C|SR;OJy`I+W z&D(#Mh1LA~nLWj$?)l>UoBIFP?(flg6~6D2YW2T=YZr#jty=K=kN>wTb?=t1fAjL6 zbIS9}@48+y>F}=2P3_5ietZ7&vN$`75BnbMalLD8^;*N?*sh*4`<ZraDao=p_u)`f z#n%?*!wqwnXzk{kc|&2f(H^ylX=`Q*+?&mMp_`L|?Leo4p_kD5U$^SM{%W~>TYlZ! zg1>gnCsh(I&D2d0saW}H>ba72=S?;nGd8>K-_G2~)p^Hp<^MSvi#pDqd9$KHb>HIu z?a#R%>?>GP@UwLDGrbfwCK0QGze^%dFN}CUC&2u!Y0gGIo=@Iet{<Is<o;9Z1f7y? zkKa!9xh0d3KCM&4nseXGH^By<uk=llb=t!-{h-aCvdsqBo7$@vzbG@fy(usuh-bRb z-j=-0It^V*SY#s^&Q1GbcHz!kamGaJX%R=__<rAr%#-nF`)7Q7C-eD(d27Giz98Aq zV>pdJ`~UQ($<^RxYF-TYPK9sFP;K8<`$F<|&#{^9P1#Hp0h6Veo}YVMWMi~CpyI;R zzK-~+PpnpqtNA{)mRcX>S4vsiE14arlO3Q_JcaX3)d9mM9?s`$7u%ieb#R+o6Zm(c zOY5wUv+rKay}xlAv*?zplqcsO+X~CBh*Dh_I#ssNN-=A{zs^JdQ$LtzezU&0k!2n0 z?xUf8x7DY)ut@TKDY?AwnGef$$$eWc{rFw6Q1;=e9C6;ww`MWC-Rtz%ntxxDbBk$g zb;{l4+4f83Z@BvBqv>1=4%xJzJzZH}Y<BZ~*wM97ft_dOEYA{ytIyW4s`71rZ@+!# z+4nE+q`i2sw<La33S((?wQP{nf>5=GUu&N)-d?M?Yxlf&o@zJPV*b^i<GB%gv9SF4 zlPk}X|1-Wz+*_^6+qReIKiAaknz_>rLzFHCOf5YcwY5!$>%dCI1<t}I1uOr*+OYh> zHI?Q6oK#DDbZ_#TzG%BpVzKRb*5mKLPHgSiTsG~p$>hcdB|BpC8crVkxB359`-W5d z>;Ipx`>y<ZY5XtCy3<7){q1WTbLyARwCAch{&9WO^nKii9Zwm%E>*CQcq_Cx&Hm)p z;}PwLW$KTx9LfG;Yr^K{BX(1E^E}<VX)jiPt=?|2{BpsjVD`0K)$5K+2lwn=C){UR zXWJ|P^;4VRosy`;BdI@@Z|cnDU;o@ZK_!&?;>D{<v-zt-e=YcCAH@GaQe=aDb<4ul zY<ioornb}{ec}>ydXY%yEVhmn_Qh#sDWSJlomg-!?(@n7W0~!_6DIvy5EXD%^3F5g zXXZ^ioIZH2TRi=R1M9vi?>@8~<BW`)Ei|K|Wc8xvd}e;ze{a4nbBv9vSR1iBEH`C} zaz&iE<FaGUjx{TT`BfHAyBjk7wER-Rl;af{veo;GEIzM(ll0zI?n*gp>qTza*NdVm z)&(BkclKQNXGdo>*Iwgk+m78{cGk*6N;>Yg><x{{--EU-DopJ3xpLQ?&BB&%g7Edm z^kn&Lxeu0mOfn8WK6>j`M}=Gd=L=Ii{_0=-bK(4pu0Iv2)jW4vV<RHE(yXRi3ok1< zu+ptz)@Ig>SGre&(wS1$zC6*y7jQIb-P)e7JoO1mKjK_=zE74<YT2{Dukn_euuQhq z*?wcUiugBc?>t|WF0}Y|)6t#F-%p5b67#)#%j4?$?Ae9yuKl}Xp>AICNhIXcSvlT= zhD=$JOWn5GOME{yFS|O`;N&FlzVwEk4@M!|_r@6AVz#T_w|V}rne($G-yi+AyZ)R0 z8|nLhs+c+cU704#{30su_TQiUZ~y<)zklQ7C-vMfaf@^HBh}q6?5&K`;C?Uiv+UZm zqq(=dSt9(N&tK48+?+5;N=3?4zy8za+owg<w=T#|-#Az9R`vbG^B;Y?e|<+w@Iuu9 z`JOkz*JT2v_lR{||FrDyuN&t>x}}PyTDfMj-r7I&7L&70mD|lbe-EF`%jYXA{xGec zRi|>3Y#I}vp3RDH%`6pSKde2AdFL}eaDL&wW%rI<k8Yj3_w~iTyYtV#zG%hFadO6j zgR@z^^GY6kRAF2{b7A3>i4lja3f^k$-j>1L(__X|$><){)jhrM(LaAC>zCgrG#YdF z2slh$v}Ezzc8@BS8DZ5E`itf&*&ok4s&n`9@eu9gb-$(S`0eTs)i~$`G4*cY+v7eh zK=f7g&t0YI`BsO^7k``X6=v9|^E!G`PTbP6P`{dd$DK^?C+m0mHC^)$bohVQ#C~dT zWMCLq{Knh2|IX-6aA$Zhqhy~rxX}h$r}j~l?M9%zdECytCawOfl>uwj)V)ltOtws% zY7-Ein!49=(`z@@?2b1(6F)An&UzT0Ru=5<EK%z?_kHM<`>S*$CWODgESI<Zzh3Ia zrB7x!6f3M+@<8a*@qo(3tn7a?o@>1CWQ?1-gWrZ>Wl#0pAFCJ`oLn~Fx-~KF$*~TG zV^_T88~#lza0|0?Y~5QKtA2n#utQl*vTlyOQ;(w)$H5~_QKidUd?#NIcpGrr?CR^X zfE|neG4uBe`7K<0An^Xy4f*==D{h`xQmiuPcsHwS|ANz(WG*s`B=qyX$=t!m7qv~l z<(KmMsp3}QVhOA(GZY_jM9p6@RqxCrKObIq4I}@5yTwGR=h|k!Sk?3;%k<Xk2MZ#f z{@85RYuNdV_w-KxyNw#Q$2Ks874&yHOkSV9A)w>P;-`GiG#}oaw2RGQZ~fjEkuE>I z7ivy0Fh9rl;kAAB|CN6)|Nm2;d4B(wd9mgfo~-}-b$>?u&kvTHMb_WDAs)Xc?Dv+4 zD~6Jf^H=JBd#e_*Ek<Y3i5lB;Ju{!_Zko9(DaOn3NWlhWj#PtdE4K)$eRZ%dP2ZKC z`78HoAGbhp$D7QKooja`)u>Ir8(g(+>hzP*QZ@UV|GinpP-yYi@$}p(qtzD@A~<Br z+T1%Cdd_dG-DdZ$RG8<<#D`Z|ceE)-^sM12@$srR+fY4MR5WSP7mnLSUJ0j`oI4h< zY$Kbav4q&w8*h)CF<a`lHQj%?`@vHAZ2o;kvW>1RXUvRlDNFB8onTP0c;m_{|EfJg z2e)0UUG&=Fk5<!O-_x$$2lVaE+i!o$>m0L+!$YFs<l{~JXA@-)F#Mi#+?Y*cs@ZwL z`>PEnorvPp?f55Kc=(OUq4bxE&m*2svzlPWu!V8o72mRTN9;D;I&S&uacAKbKCcfk zF~6l&_rHtH-u*YDouRVrZ}G!}C)(II80|{scyrPC`<fZwYSTp@%KtncIlJQ9JlV~L z`k~2hzRzDOD)9DCRY2hD15%gSEDEEyo|bkzClN2bprPqD$E4q;tUMDFH>I*i+z(H5 zW|nz&-1Gs%r)>_A47IbC=gd}JWqa+sXgq(A7C+0PV-?4L9NEfR_tnziRl}E$l8h1T zb6K?9j(6CkvZmN*XJ>G>*1E}VZ!XZ8Kf@*?Z{LyE;j8z4|97tL+w=X|>*M!ttN$Fm zKllExW5vJky{~V|FVbCd`Drz8$-iKhJa6s|nZ*(bm)_mU^3Z3tI3#!TV11ET!)wL| zca(W9=B-YBWUKJG?#qUQ=`So31J3hX`0qTs`cc;W*|zgpA4{(NDReII*bk;_z6*3; zeLF06@`Xt0RnB7<wYD_|a=)m_`{yOS{BY>!$e0%4+<MyuU#~Ts>#?|ezvw^n!G-f5 z3LV?bAo@M|j&QU_mFLpmEoEQcNnLU|^m$H&KF5lgFAQErTC51((54YJT~?#)p!1Ad ztkt_#eU;rE)AH@8=j()q7Yx1!{w<a_z2>@RY4tCi7gq#y7&}8B`F@fO{t=Y?zVvqt zOTzVrKXWoGFVzMX+_GxUoVHSK?bb?r>zN-J)UKVaICd|&h+FK^?yp;RBosC5e81GU zTzv+k;k7xQL6<Ckcb$9W^q}#)pwopEi3y@AYK*5C4!yUCzNHd&Z|}W%*Hhld<zIjO zGrrDl`pf@0ddtH6O}vC}&-JbTW~3Uis><nnU5wtM%Fx$)-%Y*}#@*{P?Z({w3>pdi z`ggue%rv-k)%ob|X$5c8gWmqNP2K3{xb~WC%&JmtiLEErUby(<)b;(n>*vk-sGBvP zm05-L$NBhrJwxX%E~DFrUpwtN5^;W-$e9JlM79U_N;0jQxhyW~qz~_b37SgHo~DUB zDazH!t5z;g&U(`<rJJZC^)#06S(*j^@BABA-(?pFJUh%Q!IIc;y6P3%ZuamMvBI1B z5^S1P8_InPHx#UUWDtG(VeLmF{tfJUERlZd-0jbPY2BQ>-2BJ6R-6BIl9xVyt+BYD z@<4T(d(iPd`{sUEuIb&9hi;0_X8z8$LFLtyrPr({zT#+K*wHjS@>N1rT&v2r4!`~$ z<)h*cJ5+3oXPTb7#4urV(@*EwD$c#q#`f3EH0r9a%&7e;Eq}xQr~m(nd+#&-dwxFe zZTP=;@r|GUU;1{Kzy8P0y>-RcYv0v1v~OOep!>S~?}y`2VI7iRFRa+EEL-{INuT;v zix=7zk(Ngd`3mKtrTWtB1vY;@xpLJE?)}jUj&B2dkG_bqDE}jMO}prX_ARMH<(j3% z!D)fTR&lc}4{ccS<d_@7<RtU&Jew7rr#@FV+uq~4^0b=AJ&w+=h3988?E3cHH`(Y> zqOMV2Uj2=4x|(5Y{#M@Q+m%~z{POnTc_)%Mf|!}M`!?Lqe0Zv1xrpRH31{g8r?0sm ztl|lq^6X?%&)s=^?71w<SUe9YJ~3};-pgs=^H|_<nEUmXfOY9_%TvYs-EU5wG126o z<oD$a7W=ZdOkJ(PI;(thX;kIiHJYq<cn*a3p1h#p!QA>HID2bPX|~`7?ha3Bhc$L( ze}d#s8!o?n-{8lTtoj$?5;x6xjJ}rnR`g!HactEOZ==q|IoD<#uv#7af02DUf7;BW zvo=NX=P?-A`LAg{nX|jkYK3s{l&$*LD~zmuYksSH>o1$#<{bKEb55*-VbqCbXaBwZ z9QS*#qVt{WVOvkE3fi80>&(I}ahEKb%XXJp?f#K>mm~gK@7ykX<}FiolO7mEc`jSK z_N?J~;ePwx$gBJ0HZOfp7c3@JCA)IH;oRlR3^(qQJSb7Mc6kEZQ5)6GdR=!+wa=`% z{Z2Px;d+LENB?(kI{YWJdQ<)VKJL>`zU98I|1p*S&HwM#``b;6G9zCFbBD!BNc>2s zK7WhpI#burxq%huCDtev@BY%j=fkgmvHR<jN4rX<MXiZi_~iWO;xwfrN6WOob6&aK zYbTJ~$`HBQE5{<X_L<zF;`u8YCzw1ln7Hr$dP$DtIZdpFnOFP&R%Y0p-<*EWY~xRj zcgMFpw~dz)xNxAQoB5BWgVQuE6`T4WQ}@-aFKPQ-zPtbN&0kahd8uu9z_i|z=Ze%* zu2r+2f1dH|>Y0#96TaAdaecA;Qhdq-{s&U^la9sj{^zibH~*Bz5%Jg0y0%%L(=&ek zEBwZ7W21L5ufMqayb0arAG3AV3+s<|lh0YEU9qqDA62(||034yUu*v@mj7G0{mGdv z`c?n-+8Li)d|^V@uDZ$pIN!H3Xx7^+3WjYxm*qc+^Mk|b_Jq4BGXw1IKWVyk?v+K1 z>EtO#9)zAwP-*bfdY|~s-l|9?bM>3N{eSDD`|AH3y0`b<tn1bc4|J<zV{89x&Gh?U z8WbxjBjCQM{JO!1&D@7~$~9Q;nm(0Jn&o}Uo?2tS;yGtcPSqu?=&MQjVcff9_2cRX z>Mk{huWr33<<X|CZR}`rS?5Ln8KappTy_4Ut!L&Q=ePgE7QJDbQb`r7>1o~x_g{6N zf7huH^|mj69v=@=dH9yCdY{;y*E_W>PLrDYvLN7FeE-%q<!#O@Sx(6=S#;`f*~S-- zZ?}GVP=E2^k>?W_BOH&<=l72e``7vQQt<CjXX7{R|K@F<Z~teF?2qOCxwf^}+WsB+ zWW6{+tmmOhYM6V5_HLE~`X{ZPSZ|8q3~>4K==;?s^Zfmr=k)7-NM9anz`3As!i96! z=59^R{XciQ;WOc0`<c^poD=G=eY;a_HE}_Yr=r+(Yj^8elQ%9^p1Ve5)n={71<#dV z-&>x!zQ_AYpxcJ2PjikRJnVesetz6Krd9I$7hCVxn8q@JVZw_qDXCY@*wwGj`u^kl z^?l#={k>fO>HW>OXQ$SFmX6=H|F3!dN=uD-tr2h7?SJr?oaLBudGVLvSA4$$qSh<x zg>MVFm(G7KYlDZ`IqSLa-rYOBvNycnZ_8b_05^lg-)XWJ?sA^}<@4&hdENc}z0;>1 zUR3{JzvhbBN$NS9OKg>IGf%%Ww<mW&?yt6g9HGT(fs0oE4c@)??#+)s5>mLQoc;W2 zUv^J_1dk(Yh}l8SlXhYq>PMIs2>ahY&a;Ne)OJ1lCd)sik4=@MqeJA+S8{wfvOhb> zVd60fbw<Iz=TEjRxV7z%;_1qy4+b(xYnfOwl5%W+^}e(2fAcNEWMldn36tV|%0JRI zp9xG~oFO6`Hcjk9@wMz%qD+sj9ew8&xG%M+VQsn{<A!7I<~KhuOu5*!E@Ll4iD|Ib z9gE0J79B2;0IkW9?_AZ*qf5Lc*5^71Zu$A=#r+z#xuIeSMw!b(riVWZd;i$PRnwax zBD?<Ii@Jo{Jo!GZEW0GkwtXqS`g)V5<VRbM1KP#%AFH@-m^)34`Sj|dp1PfdBFmyI z`Q=}de=A3n*2W)`T6rb@p>e*I|B=n*g(niXzhdiIQClDW*0||KY4YKwg$BM`1W#{@ zJkHqkuxjJIBVC4udnN>~@4EQ9%%FnJ%Vm4_q_C+0q0)>e7jIUMZfGo>e3IW_9djqw zwB0+_@d~KCkv)BCRjJv;d6vg!ZQlH1+T)zQ+7s)%f~%6wue-PT`~3HBul~K+_x$%W zev1=U<_7<6?fdUuf9KzxP5$<O7wX-gcfPcI!Su}!;<S%E+{5%y$}!~DmXyAiW-nbQ zNX1=zcEg%+VTeHNG?tiMFIJ@=*c=tNE`82a4a0&gvs>S@&U~1{vmtv5(^QX77v}k2 zHk~oWGWFsGPNf+KG%k5)3rT+7a^s)FFMH;H8!l^|XE?Q4c-s5dk2E)(J@-lH#goV3 zS&skK{R|2BXPnn?HEM}Kd{gH31IJkz0xqY$4_Q0;<f<<g94#_au9`E*Tz<!S;M|=C zUjL{acTZcVi|-M0zWSx^CBu@$>I=IM@8+uPoWA|v=l7A~4b}^O`+xqR&ZOWhq~@jh zM@{dooLvL|?DctTrWgFIyY}<_`tSA?dTBvS8ZN;mnbMUnA1%KnoU`=QXLE+u$aG;= z#l>IR9(?2aZ=v30`}{~>^x`e2+VX|}nm&%1vMi#Wf0B=uv&N&}aqnJEeziwMSwTYW z4s(i<&f#^IGiJT6|IEiwu{-X)7sI_n;<rzCF!jC=50cN-H{QTn>-FVK)2;cONu?Gq z)PuUK-e#v{RZnxTOTDJ}Fnu*&m=&*)%26GcDT}5Cy__=N#cBpi?E*G^#mVpX%$jKS zWPXIl??r|BcYm7AR2A1uv6f!+blI=1nTux3=l<Z(aqc$fw!`T&Z=cs+RJilS{NP#7 zoVmM}Zr~1Ec=^e9o<)By#J;~>ecoolmGWtBbMHTYQCL_tM_%BAxDboL@_^lW$L=`a zIA8a^Y1WOR%DZh37U@|1cj^3hroqa1)k4SE2<5ZQc}z!jSfZ+~$vXA&KKYRT!SLJ1 z57p6&)8;wp-s^05{Fz}(SZs2@p~i3hFB%S9>fCbbBhNOMn+wx-b1PlizDvSd@5D>S zrgaR;?&j?WI9i>=ITu7uTx?+UDD-Vt6@OLucGl$nuQT|LU3mPk(QV;rt&PX;9Moj{ zANfA{CBuZ5-~QA&?En7f+CTpPN9!}%U(c=ma?$+l`u|(^cNo99dfNK;qweX4Kdxok zs$jIVCxvT!Ot#6L?ikU>A+l@I&bV~9MOv^uJW{MLYWZkmar3uuWhcYiDT&n+WDhw^ zTzUCN7;9zh2Cb$E96?!kEe<Ibg_@riWE7mb@8|3jUyfeSX_!!VUFo)#hkugNhs>u> zzACg`x0xG%^QR7bbhu$-^T(63j?MTvKl1u|#!U}`N`C}aZPz^U>O(V=G|LRRIbIS) zqI-?wQlg&-y04t8$b9JLt_Q)VPG$A;sJ>bHUOHu_Qnl@?C2P++`Sjj75aq5gvnlq% z{VTZ(zd9IxuU>oi<h^~Xa)0kC4^R?5BK_IT`quvSVHXV^&k~-K@VcS#VB_pNihN#M z1cRh&@1FEZNRV?BKHqfj*M^X($0Ty+H;A$@KD5dD-;;jDa=}KvXUy+c&&Xxk66IDl z_d#*V)EO?nWj7l(J!JhJcR3+@gYUG`2^+udHTr7JspeH{@=GWs#&VmSg!+Y#+3Xo6 zcdljsv%b6}VnbVo&!Ls`-2=i7FXaE4cUOLK^32wi$@&`ctIljHHg7SQ?j@5{b2-_5 z-z|nOla6U0V|>fLH9zS7^@m(-+Z<A|UhnXa`H{55&p3DvOUj0}xY(vQ$FCQ^{C<$( z-kB=3IEH2YduFg)dwy+ycKXFv`n#?ikUtUmSnGhKc>g5XcamwRw%+$i7cjav`QO^G z?wRR29Q~`$IkO*)eZB1O`>#K@?)^8Bd;UGe3w2+2nK?W-RrhMQ{O$d}rvGogyY;}Q zo0p}lYo9+jW_p`{an9M-Z{?R*KVdBVeK)l+|3PX~Ty^hX?qjh}_g3CyXen8l>R_+E z%WCJ2_1kA<?>m#aO<+axvfW8@cHEC>KD%>aM#6Q*gL0RvCoz3<`7rmoMRqK=;+wnH zSMIWR=j1mlmMkw-Jb1w={`kR#nf0!>nXWl=w*+3Fr+Mm*kkuX+?*)4-qu)Di=up%U zQ_#J#>~P0#N3MoI@BZ9vkN(9ND^~AZrY<{g%l{}P)w%v2ETP{go@Zg_{iWp<=QF)- zn{d``^YAxfJnMI5@84mcb$&z0k-s6YW4oU`Rt>x_{8!1pX2auWd<XZv-mu}T@m7YM zq)L}5y1iiwZL(iT-G8wr{>9?5c%^5}xjc(g)R_v5B-6HZt^3I}{lwMD>A5nus<dZa z7wJ<zkjrSYSNBn;ndH8rgXM|&R>4a>W~*Owlls>2%OQy`VXw@ueNPnR-`;)wwkoyy zd)4Z=v$oamjvc?fqqlc!Rd^`Z^`ngJ(GxdLym;zdPgCR7U618g9T!*;^jlWVDJ<{Q z)PssM{cT>X<WDH*D175@<kTpa!m1m%{q_A=CxxSd507f(Y~^H~l3SW?>#oLRm!+6= z`<?asj3W;x_=wogQU5lDpIyRnZ~gODB~^i^&NeKZ)>5ih?uBdp*nN@p^+QMY4A!OV zmZiz0*G<zcli2cjL7TmypvB5K?pI2cxnDkO|9*5f|JMG0kLKV0`^z@^u;sibercAT zs}~=u4p=SF(6VdOh1hKmW?NOAW7a#}zOzF%N_4i5%h6iC>?@zbxubNlUsujA$>3`J zsd6jg>LIR02CDrP?1y;Lx4NsC$|u{r)i7pQUYx&o4#W8w54S|PFL9P>-^DUx^O|5Q zjYPKz8C?JOrR(b39GQD^W5>OStBD8ZvL`4f*?!?!ZU23$ZT-I^|6cz8Cx83v*QvFC zE|y1q_|LuL`*i&{<sa`SF1b2SmYaWn_hQWp%PM9pYO&f>yfMy~-K6#GAw?t0kAgQ+ zEjP~AuljOaZO@I4cfDua{)nsE?mE6IK{4;<mOX3z_x8S7&-<M3dVKYVDN0iBz6)K6 z>Yb>$!*6H5^!FU4)a~)c>oz>FzkV>{&cclPZ#m-k96T1VYntubHN|M3^~b%LQs)hr za++k$Eb3#pDPNd*V1D|a>p{OHuF6X*<jwb0xX1i?%gp|L8tw)cB$+bLc+2lInbs$> z_CoZ_uf3<fd|y+3VSn%j>85)*987nnR5iSOyJgPJr;)Dzt~Y&;jM6Zb@qNpB+4z=P z@;dkJ92Kihu8i3l<9(#CHcxJ&&@T_x#|i1T@4eb+?(_Xz>d6Dy*AHB;-F@AeS?zmu zeOu3O_6rQ{bIvqGu%swnou`x5-mDm9X{DF*t@mnUw5!?L&GIS1JqHc91|`)WzxUyO z+qRyM<v;#r-PTjM!=F^ekrQcqyK>)_|I_s5g<qB9PZn^j;NQS><TTfu<hQH>!b!_l zu3s9MKIhk*<Xho&eKXD1-W19G^XR_mw0UeM&z60f!|HMV{Tikxn(w6N%v!ZoP_nfC zu+=Gko!eoT9-O~<b=^$CZ&N=vr@yG~tlpw=<6%(OnRMCT%F|?~Sv#(gO0Sus{iymx z-%TyYoaV)GkA(h5zB~}oqrBYfp!c(V9+jt8c%CR(uX|(P74x#VIEN|c_Fqr_^tkij z<@5g!olp2%_u(NslZ1a&-yw%pXAVCIoqEwyK`!f4#$V}dwQDD4u5o3l6Sr-D|5UcI z;HTWPM>U$~k~VG-5@xAbxMkv+<5~gYs!W<f0@en6i&YEN9ZH`aPn3A7VynhE>l07- zas@-@HPc_D{_K2P$v-ufUF^}$a2fUG3)M@RIWFk%?U3`xvS(Z{qw@dMM-_8UGryPp zZk_!8`pX8f>t9!VZ8_qz`(Cp;|2ka>-gnGVyW05=nRSL=6PBJ?y<#3$WN>MqXXA94 z80o(cJ(FKNIC^oLm8XFJx2<nE7r8pfo-z)3#~|RlFQnAo{z$K=%kQsu{dISxr3T#f zmiJL;X|=oTd0XxDJ%J;~qHf>cqI%=p=~=((QY?>2`L*nPV03ixd()edJZre;^WT@= z`gd9B%2J7qjO$ikyK$ps^2U;tKWE-xubZn~{k>{;+<OUz{F~WZKNnlO*FIE<)^GW9 z<w8(k?F7{snNPer(tfsmwsNqn5{X<K96ae)-Ln&i)}8pVYh%NreN0R;b5?ZgFL>)9 ze)9J12i1B^EtC0pST{Plewok6*~e^^&nIB6Z7mhVAG3MW{dIm-yDoV4C>$}~%Uio= z#{wQJ<~0F5>dt#6CB2U<-6~SDY6i1-ffC<!leFjEGNGI*sfsu1v{$&EcG@3nc%S!$ zDW563oJ?!lv42go{`@)?$tJgEUxwO8ZjKis3!mgYcqp>=cV0+m)#(}52PUqccve6C z>M#3K8p0<EX36}z^N2y|(Rm*Kx9!UF4)XJ8Z25Kn?}gy{ds+&Ip9gE`BtKj*N62Nt zVgaYFcMWqw*waEZ<CebQ4LjUo#MGpi9`xs#@ohP-4<1$`GhW_FJS!&tuyOIld%NGT zOxx1@<H9BeaZ8VczuC2q8TM%03lh_v?AGbyxG?zp!RhmE)c=hC*Z%Ea_4zlm?`O^Y zzyBZik9Xqw@wZP;`^(R7wEA0#MZ3*{DmMS;d;agA;}*ADtAT04rOhiJr}xkKHfc@z zo?to0O>-oE1)S-+zKPQ)$l~YiGc~_9TANOF4tagk)%Luac)D#yXLZ+U4d(3I4BP9^ zKYN}TAh}r0LNj4uo(oH@V8P3`S;Zk!Z{7~NRUMZ6J4Wj9o#UEw+LacZ`%)vg)F^?| z@w|j`$<z}?X3G3?+&7%l`I@qji{Chu?Zw5Jl3Y$%cYEA6EC^~jdhk!gZsVw}vn66Q zR%k>g9C)(k_Oq!ucM_SN7T<fDyGQe;naFxu1!HNZ39IL<-&*e;6#F&8@YmFTCogfZ z`TcXAB5K}VkSlq@bk{)^2aSVQ64JlwXf3+1V<zJwm00_Et4fyfo<8>Bx~5D}UER(t z%LSN~GuM8bG-039)Q{;Rt4oC%93)?#Y1%dS*!ve-n^^@OWihTQ45^$~RBa@&l~+Tk z_{@WN_la2(|MKY8HXonkIYWQB;k&To<<|q}1yrZANEcrfkAE|Nk?Hb;3pvgLUFTof z%5LdUxb<t+Q!VKPx$JM;|L1I)^7eAtO_!TTRL(U0)>w8oh$AOU_E^>QxgF+iFW3KO zaebP`v*qfq@~N`A8^eB{2~F^vU;cRSmxgWqw{&*fNR;@ry%D)HsnJ1~iOF}y&s~<R zSvAjZ%@@AEn<@8UvC2jv>+B~zo8_X^vo1fIZ!H(Td*{8|{{O!C-^l-WD}VOgWn$j< zO%}X3x2qxP%I?!_6Bia8yQgaK;PLZYX70C}US`~W?X=_RqSq(pT|E(Yd~0OhVY9l< z>>YLo&O2ASecN<)=iA+#{}%4&KU6sJufCRP)C1{)J>Siu9<S6jzVb+0va0ib?2)u3 zxAyeUJ*6#dd~7T0{-fDn{L3?5M*o&s|D{#$dy4I^uLZ}rRSY;8r5l;wZ+mpUBW!a- zn`iZb$*$}+){+xHxkeSeXzKaC@u3#y^$*uBoMZZWt)sswl=TkJ4Al)hZ8rt?m!}<M zeKMIVe#xpeic6zyHcyWhXt?ouUjL@-cbn!1yxX`dp(wPdr(NN=^np3Q<C9h<<|xao z{_FGRdCZ16kKXhJ>3^4Bo^V;D^v0|o&#OY1&OX0<{N)16N%x;NEf3tM{k_doJU*Q9 zfWU`F-j9`E;;SRqoqw-2fieB_#Ws6qfvh<-DSwxy{@U^PF+XUHS|w<&`ljnS{yCYB z)2xrZ*>xmt;p?A0WrhZ9=H_S9-U+h&X1TY&O1F9;!*Szdbph*E^T-&#&G4PROpc>+ zLRi8DS84voTeLc|+U(A6Un2Ok)Gx687=u9SLp~*uZNC>>R{rHbC9o^2>vmS--*>;F z(vw`>>TPv*uxtGM?Ko5O#-ptr3--9jC!{bhzAG^?bBm4j=VBXUjWP}{ODo2zzty{+ zPiCKPe1PA+<+(PyC*Rv@))J9_GHl#me_Q#)lrNAxcWK`GAD$PE>F>Va$=cmxqCNR? z_cYz<?=GlX&JoVKd#7T1;jW5Krf9~42D>NBxcu<Tn!BHmgydb_xA#cW^_nl6TQ`U> zmvFk7D)$(1D@!l1a@`Ol&_0(x?b`SD$FmmAH*H?KAVq2N?3+q$UQae>vAwL>u}Oc^ z*LNElR1a9~dRW4`<H#<DEm}^yXPCK#x0l^BcR#k9&m<wCwm3=c_zIqRO;ULmm1~tk z1+JWsy#KrZfB63sc0V34@7}vF_uzm1MQ<Lba{r6pZx@-rUm~vdnO(;ly+adE{Ak}1 zXS&+<M8|^FUpAX-HmtEV4$ht3(JMZ8;>u>W+XoUjYUciae*D>m@^%gNI;o58kzexG z&-U1wH|Mg*mgn=H1~o*@uzlaRer9P@K1=aCKMUJHU8dlYiWT-^2GJ~yOW9+TKg)Q% zX#913-@Y|&2XgM}UGe*S?(g^5erNyuMSkiV8GiI~Jz3`YUdSOtGGs}@UxomK#lK1} zNlf~BBxmi{PVUf>dsP>-)c@K=2s|usZIC?w^6Sc=iR-@o_&2%KV5zl>qQ`RA(4!w# zO#6Myg?CqzEkm;FQ}x#5zd!yRuTW3r(o7JIyx`fl)nEE;@umyb9Brq$Ua8NB3kcT9 zFg<QMTO@*m!Rdg_rq8jy`~SX-l1_8H-2QOOl25%;KL7Y5^}z9MGS6|T$Fq)`7T!&G z%<*Dns<2E{Jad!$vHb;+W!;Geg0DBf`pz@2J9X+GpTE@?1CQOGY}poDvc65JZiCe+ z2Eo@U&5TFZ$T7$4-M+a+MB_F?<eJS&B5xjeirb!Km>yK`cJ)a9ISxJbx$iTtGv5ko zx~Km;fTLy#UzkuvgY6eR=iRn5EIb`mZvET!LVudt{nOi)CS`pom3rXt`{0=eO{z*8 z_nXSE3w$yyw={O{qOHc94iUeq6cRQ_MJhF$K7KBJzFl@*YHfSbyx)~#Pr1_$t2r9} zQ?eFhxOA%G^n1<)7S}hF9^928;+fnKwShf(o`&9bz1(BxSHJyU{rlSS`&;h+o_l|r zy8pLtKhxK5IcNU%(TA+$s;mV^x0GB{Xu4bTWYg>`-FI)SJLk=)aPGO&g;2+e(6`%< zX=~1SY$jV~BERYE&y|k<UtV(9fBAWg`iwP_-=F2yTok(%ecd%k>D7Pk?9+@~CJIU- z4_<Dcqx;1(qj<-<;FPVqH(wXBK0Wu?w-uXJPx9MLs;yF+!Ckw2<=^Y?GF`Jhn5-{f z?Om9wc<pC%tlxJd#x49Q^M01kv#_&UpTYP$LD9`Ne((9p*hO2G7VtQ4F!0)PX1C?r zg8fgQWc|FdO|YbQr-$EScirENpQqWJObPtIerfA#`G?o_mT&lJc1`u$1TX1urpR~Z zp#}oe&i>5%)W4(c#Dlpd{xSalVlN;3{?7P^bX-u-E!)(eL2>Uqs|DZAVBH|bnVxQ# z({o1fzH@NeOU>&Y^O^a@%+56Sd-g>4tA9FU`}q0YpsSKv5w_9MY|)!9M^${UnjLrZ z-rjqgt}|&_J#KgHix;&x@#fkUqm#RpZ~tF=RP*`GwjJkNrA3}6Tc`+UJ)QW{eM6{& zbF?VSrm$&^wy%CpHhZU4Wl*Qy9=0_rWAoE<&s+UgDEGzb+wa`i_}F23o7QISw{KJe z5}!{AXFI1MUa%l(X4L}+b>o#w8cU~`W_5Qlv_12v$QA$9div(MxX)Jp21yH!`d{Ht zXxe+=MswrSwamiV%O6BMxU^d4>8W2^nK!>S_@TGVeC`^P<lS4|>(4tFY{QcLyv-mZ zF!HC(l~<~L?qRoQi9ELP{Gv1Qu3_qJkNwfh>kjX{|9F<^{2#j)?Fw?g9)3+I?CRZ_ zD`FR@J-^JMu<^8VLBee9GR1%oi9AUQ%^yDAEtKmg{QH}d^Q3tXex*)qW(o=4difvg zZt2Aa{Z0A%%k9tDcFc^J{d|E)-qT4N{sqjMz#MC~wmmfL<tkp!-}?63S0CQ~M*iR7 z_>J>_{7|kg`n>P&-u?f>-~4L(+w=aN(udR!YX2F&J3js3mF}?RR<7N&tzCir>m3&S zKc_Q;VV1<}EjQ~f%r<OZ_Ktn)@;4^;IuF*SMCm?qy6c=`aQfL_vG)2-_Kj;N#H~2` zc^%WX^?&1(D&#Gn3hww?^=V0iveD#H$>{<G0_Up5d7tp-c$;qXbxXP;t-jg!?E8vk z5|<5K4CigN-+gcWZ<(22FUjtgIC8~!x?^r{;RK6|Z5t;B-SL)X?EcrWU`KF4wZqI^ z#%Wc{?D8vI|E9>7y>4*mW6+(a_)SXw#6jQh?tlHyANyT@=7Z}t^`=C&D`#A?42lB$ zgXb@oV%*QPhi{X`hh+|v4mdMdGbOn^UUP}(Wxv=`{Y7)GX@sx5x^1oU&-t77Otfs9 zF>iWi$QIAoTg~&%FZDJy*sb$h?9IYB?fhv~8&1!9q{nn~e)YYYvNy-2UaLAZYt&zS zJ4tL`mhJlF_nCW}HK%XAb|tc{f2ZgzX~&x0ZR@uRJeqfD2YapiR>Nc0uE*c`Y_%=W zm*t3c^12M2HOx~cmcDn4nsOo`npH!`;J}pH*R$7Vg_)aOdf4D}fLX^(j;ZK@I7`Nl zi%XuLOk97&@zqn;UF(&mH8y=bxb33VRhvmN(-Vp{)<{lsI=J(|Z7VYk$B6%bcjbL6 z?O4g_@_H6icKqRGDJ*a2F|enaGtRKtWW8<U%U|jx&K28&8O&aOE3=q=u5bGG*EN4% z$GZkpR9EkfoSc4d_D7!Yw&7~q{%$?J=;1yww~(b3`U?(vix}2@k23xD{l!|j<gJ^v zKI|!%VfvkaT&g@>Z`b<`!YdlMZC}2g_4S_c`{l2A$_wHah^3b%`PTR7&r|+3>)bYp z%`?k(c%{s!f2ZrkJ4xjK#{6s9#-)+36g%qA*Ca32Zr^M-TR%K9%h-3j*gx;>hdj@( zE}N<N@8n*E4OyzMFHOF$qdi5g;hF-!cRG*E7W49C-|(Ma4BYp(C<e?tP<1S-{k}TG zWbWSyi{Gf^)NM@6*ErNO>5i7c2CpL*XUy^b$>qRe*vxTWWnI?-t8d1+YF42?igmxg z{dnkq;3YR5=|^vwo~qh)%65I8|5^BR#DPyUQ?6gp5?XfT?*pg1YW>=O>Lxr{nerv+ zkCTY0q$3}f*Y8=;2d7mmXZ)~jFX%+`o7o?GZM}1MU3$oTmdo)ri_86+LDSQoBxoJ} zDJa3+d{0&~_;2bY{`dJej1%-6AD-W9XJ@AUS4=jg)sOAVjRFA{ubrnF6^@?GUTSlg zLGa-_2J<7gGo2^u=Cx0{{kW7jIrwQ}jEDPS@%J+~t~ir*)pP5U48uuo_ql#tPU2*V zt;jqUu=d}ws>}aAJGY-$wbbBDo<aDc)l<)DF{K4OW|I|Qs{dy%Q)68>fAxGb=Vv_( zWpNV><Hck>>Jqv>aX#6{^h068dY;%>W{js+IfpdXUb&<hVU+4z{h^Cz_KH<%S?S*k z#2Go4F(2i>9$BZCS^o86qf1-UTNm-QLf;PFRCO=A8ps`W!}IiuL$?a-c^JJs3SJbs z?ak-vZHm<C@KR@ze8whrRrd9lSE&;}E3&m2S-9Q|vcK}_pY85@wU_^Wi~n8zrv9`1 z-^bH(EARh%rT?Gj)&KtEn`=L%e=m!4X7K#_bh44<yqAZIH6NVay8iU>Ljj?6&yUUA zDj35u_iv!}QMrO++D22-0>h8T=QsT>h&fwz?c%n^DX;vq?@T|sKUjZn_xUUTa+QPS zBR|O<F8$@P_2H9i?$;%+B;KwIl2<PfnDXvl@86xG7uw!(q}RkG_Du9rHL$5<3F$HS zn0-&}%wjR)*0-0cs}oF?K766fryW(k%Yipw#kcB}Qj>Sd77PEid$)dlv*DqOdM7u_ z-g{kj-KZ|IY_om+g@2d(IgOv`esK7p_Wewm)PLd6t{1o2NsFA?aQ@EhmFsrJr!p~v z_HF*zGH>arV@W?ZnoT_~Ve;G8L2LKf=!mt=2DN(0UY8l1tX?EA`@A$3n;CaCD_OoP zb!laSz?2t9z8hyrT@U#1YUV3v=JM~qr(K-Abct?)R>4G--#4bGH*goukDa4+E&T24 z_V-@45=jY59F}FAnNt)uiQ(XuoAIk&#uv*A^_8Y9s%&0)Jxw^KpF#2KfrLqS*QzP! zl`@BvZdiF~S(vT!q=a{iOXqrRS3OvEs3iThg9jIbO-t2Q`zqi1DX&5Uw@>BaC|G}O z#{RSS?sOP@^I71)de6b2!R+__inst1{bwrY+!*CKHiX^Ge|y_&L0ZHijx>oc1{XAc zo!xWu|DRaiiO#y)vI^JUdCv2E68FPv7p57ooZJ0p-`nNuw?sDur^IJ6G{k@YmbU(V zaKc=rXzAJuQ{TQV)-zDgW|U?QVbWwzY4!A-e|)c$>%%>)@-=Gl>yvbqCVc%|ruzBf z$(q-mOMOZwuQdBQyL_2@*@niYY<h7L>7vItA5=WFU2v}UYSg#FeUIjF6nxoqLgee~ zTF1G$Ka9n5rRUFQU#xI%<N9=)`Q>&E=U+4al-oBgT>9Oz?2K~@M8Dc}{yf1jdCPZ| zz}?N)*dq1BQe$#;estUk=Y0D*WxwIN)6eYR&fhaVf18vmfBLqneY=#_J$yQ2;Y!A} zEqk|D8e|!?I6Q9r&Z799VTIUR=0<_eU3_=`3ty8d^A@l1J*LN(C~ux#7@Ig*<H4PM zkF|1K7&>>gME$*ZX>+s)tJu}rg_GVMNjafWUR?Hmf%Uf1>YW_hr?iQG^9ZXvQh6s* z=)+Ua#fSb*VEp%X{_Wk@qrX;#Gkuu0_uA>7kN2GUBwv!@CnWgLj?H&f%&bC@yO)jc z`mJ9)YxT)>fen0R%!g`tdw1_DJ-~PH*Uxvny~<NQ@-o)*?%FGT)yw(xtqqbUrRKW= zROYRC7B!8VS#SCS>(iA16J9N4t_*)L=dfJmg10@b?d%La&z+9zt?XNQUAQ_RQeus| zd&FF|P|wBhm@1bspWxk;(YNwLz}Bx^epj#bOy8`0>DRHQe>|+8%67!W{aX0Fi&5^) zD*MATA8+qE)w!+W?Y>WQ&)suUe!o<Boy#0E#w%OYW!EYm2-!9DW3kz>yW(Q6cAC1( z{PThT%Q4pa3qk1%ZUj6Ec9Y|K?sc~P)ns=0OLIlUJ7)^?{Qlms=q3A(U_;+1o*CDt zx!&Jic#m_XUG=e#y)S;M2RuHo=s?xYl<*oJHG7k?GfW~^@BFH@Sjw+qXsj(*@v$J_ zn&6b2RDYSK%8IiGt=x`H2ssjTp36e!VR*EYu=K*UXP>{XKmM=(|MLA={`1d%EBGG# z?P0t5Hj@tzCd>cZkSd<Mr|a6fiPvtZs~O$<V|^`2%CXj>+a_Y_=iUrA(_cNtO4YOE zS*uL{_1RmlUvS;`v)bvMye2>X{^{c2@oBiT>OcZZAkRFvjB}rwugtBwlVmZe^fkwK z^V4ldN|iRB)#rGqTjnt#_|^a0hC5m~ZZ6KL>$%>*yJ)x5{=D+AsSmG6EIfVV$ks<U z9}0b3{8Wyk;Kb%!=ET(pS8yJ`x1G({Kx1#m!nLzzF|1E|@@Tpl)5NuttezY8ewS!I zt)p7DCCDgs&!d^j0T*X{-GA)4{MjQMGuVz=U2OE#V&=%&I`ga00*)KZA)c${CYZeR zs})zBZ03E}&ER{w-NmSjOxl@$l)F!<uiNl2)Im1KzAcJzh2iX&=ByZY)7kzK4+37D zzY)H=X|22PlG-cVQ(o*AxvIjx+41+uLuTz~zm&3^Y)V;DHu+e;);hnd`3HWyoAvsz z{nK4q1*?=bW~AiHotMu^?>Z1<F8k`<jQ`!P+nax+WZW&VU)MFa$yA81rtQMwZmY1A zU(z0RmYN$v7w|Fc;8}jxeyPy(7ZOcIyC?lJH9jXZkGpQ0oA=R(&n$K;R>h01n0ndy zzPIy+4U+^T#DwPUy|Y$~)%>FO-8Ia0KRTxWKP$VSSbD>n<MVVl6c*$;N+>HB95L{H zzU17~8}n@f)&_q}47N1imQm;QWLwu;<+-Bb{%Xp-ZOb`2JZI;b=5ShM@8wEaBREIe zXu}B+bBE<S)clNI&hkC+&HwH9^ZE8$*4O+zRrlZD_J`fA$;*%O@k-dt<@!?Ruy<O6 z;z8Z>ujbt@{C#RsyXHIP`4cM~w#glos9q_Zbz8Jzv5n5J+ur9_Z2xQhKq|(1o=IZt zzgsoak52uXeE*C;Z@Ts=9?gX3C1o}7H^1+lX;tmCjqCTN{jYO!(svzLKb!ykcI#?} zuYW#0>ua=mBWC<NwDw(P{Pa9=-ET(I_MTUqtn>O)*XM52t&`8cQ1#4TAX!rQ&B1O_ zH`AMN?ls;Fsh$5gP8-O+sC*zJ#VC3`>{HoIjy1|J)?U(SsB=8{N5X}1dSd;A!s)S5 znaek3-M%^byNC+Q1*Z8M_NLc06}dO%vu9rLh+bf<VN|nw$tHpQ+h4wtbY1&>_cr_Z zReR;W>(xp&W*+-=>D&&H)n{)ztjoUgQ=O4Ve3M>a*uqco?_*j&e>(77=&*J}a?@OK zwY5$mx2$cJeAsR~vD|%jb>Up~tv`*+9($P`*!gqS(Vy4f-se9n7SHunsX=w=^Ym(1 ze{<D!k+nCnQsnj=f4P-abuwq2?3d4RJ;x8_Y>>XN<?aoaAA#p%6`r~?i8AfFb^Ej8 z;s&eTP74kw37`3OL1nqbp>jSCkwCuXOCmfq)=RHiWVN{F;QKo_-Mj7iKRw)Wfphl5 z15X8Kq*!^Z;5~d*ZEMmj_nWs>QjFu*7>jPw@c0p5%yg^PcJI&3-FNG+7#)qz-S|^? zzUEtzHI)tj8V-m#hq!7w^v>nAmswP`jCqmd)xFH}Ay1c{m@kvGBy>^U+l)86SI=9q z;A-qcgTm)5Yk6et*jh~jJq|Sgzu98;`UA_;`XsXhz0dvrMu}%?C*)e(+MT~+0#k&7 z_4Ne5fV=m%3cjmc@pJD=HwlJT>(#GkUXR~<&-Y+0gAP~2WbGT<nEU_T>3P3;(T#`I zTBRxlC(he=+(?edTJNxZW@dx)6ZXty%-yq08}y{AuSW&UHIbZc6I1tbea*>t_s@KL z)qT_M*U9vPjJhv3#mfqpbIz1mS==5}CKu@)R2p7ArQ?#7A*T?l>Ym^CLM3OO_>nU0 zZc6HrT;ZJ0SxZE}o5e9qG~1ddD8bgd<J4X+=_&Ij+Awb1$kNN0&(f#7_?qm?6tk8q zhfaF^FOFYZ8(RHgvgHr1IcKeYEGQK)y>qwHm{say^_?xb`?e?8D0#m*Hzz%(yudAu z`@)jf(N{8!r!Wavi`wPYT{`bPW7VsfS9UJAU*2G}Mwj0pIi|MCgstX_;HuAcE05VP z?$HR|a-n(KA=775%GOu9zYbOYA+n%rQOQ)6GaoJ7c*QR7HA*OQFFVJpaI|h}!lZ`o zUma~SkN3~DXEbnRj8{G_IrHA7=eu9m*f4b}3HUv>J+`^&skfkxroWuyB-emhB0E&) z8t(E>y(zhXWyho{g?Wp@;&y4T+|Im4Y%Mdhg;K-zs0L%cy!n35&Ay3e9X=7Z)A@Z4 z!}~=WW~aZr=5wlqTO#DcF@-H3_N$b29O0{8AbWY%CZC6?!AwgG>s?;<uNC?3(&i8z zvtH&jQ<%i{=U3|X=QGS^W|}iOQ>Q*A=UukRwc2+HtjA|vUN3k1_0dIN5+e-dW|)Xq zvb_4(ApN1R<8I;F(gdfnP5seVW3EMrhaR4(<Dzx=-KVlt=iI|eLLF8)*OLP6jI6kI zI4mk>XUnHPT50IPZS+!;^@f<wLeDiWorfadozI$mo-fPn`HEB9HpR`<opy4a_m{~! znhfg%>a6GKeQWkV$B}dDQ1*SB-3JBUeG}ScJauWKS^cC4DM?n*x0T|*<O0<i|NoKM z_vmL&@zv}Xe|hX9_0NJf1oSQTn_DflwD`lutom~q%ySvesj#iSXSMF~oAZa)e=(fd zwDZyTqU6B5=5GhScG(3#tn$fF&)Soo(*Jk&)pwDc0$hIV2JU4}FLXBOymQMwIzPKz zVd`8?r|B8jYVHb8aGK}xkHyO7=j^^shVJXQgNsxcIxCYlJxn{lAST_uVM5WxZM!z> zt?FR^_T&Wjuex(#TXv*3%SZafBriPI|9_hDbB+gxleVt+%yejo^lE57bcOp}^{4YY z;&-pvv^<>WLvBOu9c@OL&Yj7gGyjzF=GV@czd%QI;haP#bFE+@hFE8tK86bmRX1Bk zTmB1=lDBKKn|9@*=g*bj1fNfQ-Fp7u+<)`_u)m#L!g%=FyRcj51SYQecV%Jw$9G@1 z?E&>lZ?8Tf;FA^3<Z7o_CXhRGmsjl-bH@uyf=-;j@~z*aSnkTNGiUcD9dkY0I`Piq z?Do}rzA)dO-md*CjHR<E!)UHpz}C|zs@%+)XUcEg-}S&HNzL+d<rlNcb<1WIZuqgE zQ|G{&g}Sl7Pp>%;&6gZ7_raXXCM9Eum8!=M2BhyhEq|-s|No-Dd-wk-e`8jAxa?)* z?jwy~!uSfT?IjA91qk~aoip0O!xMh(ylR^N0*7~QcXl&Ygvs=@a7-#VJV&|w-}A^H zoOAWIB(HMW{`a?0PvN!3Ooo6NOCQ#<?Cm;aJJq3MQyf3P`|n3br7aZSJXnw*?0B*@ zDMKUhgqzocn=^EyZ_B22@J1>;nRr$xBIVNS;|JF^H|cOT3b|RWzyAC3`-qFx;`2Y| z*lba$(Tx$|PwnQBl-<jGeZ%@}`SY4B+iy(1&Ofhf-e$dL#@o-Fn)>(C{XYll-dERW z#Q#4x`P;?ry){3V^)g1EpPHdMRat=Zxf!2VV43KIvMbX08n!RGdSu^QGR@Zg_3q%& zso%Ud2}Zc>Gj5vxkV&1jrT>w6U{1B~#?D>=zDSlu9~b(~y}I>G+v1$9?4MU!bN{(> zH2ci-(BH0I&*z?7U)^=U|J;F$rS1*uf>)UHv0qQIP(8`^cYD<P^7XdQs%z&>I^`7c zo?~Ty>PyC$Gp;_d>*MQ9G9DffzqsdTXTZOAGb{g2>g$kXUL>I(x0zYkvvF-Czkq;{ znB9c<+ncrI-o#6J?5eQ+?fO`<Ot0TklB4^YH;e3S3Cp(IvUhgAJ*~g@`_nY>b-T?H z(vv&5<dOsA*D}5?p1#<{Ay%NM>-)2Rv9={^v(n2~UVHuX_|ach-U}lyeD~a>>#Vft zjO~kl@0@QT%Qqh{FJHB<YF)D2vwdd2x4wE-<koH;p}Fz-g=x8^0?%^N!++=1>t(<E zeA`>mt08KpnZ?m<a@CqlOE(CI9k1*9*6aE9kx~cW$30mOIrz;2^LZn3&&2a*g<Eeg zEpg-a-c(bxIdb<j&pBx~nJsTz`PX4OzqJ4H{f+--ew>;cykJ@5=3N)d4$fEIWzsUY z^FfScDZje(fg&qI=3A}ass6`BGz+fxu*A+N{p%gi9hmRacKTL&DM#C~v-h4Ht^CKj zTZ3u!4ffj&9o5@IuKjc0cHh3e_}cyGBxaF-hq;Guc;1?>ykXP6cfk#!8oS@HE5x}j zny{4Bu6(-ujqcCO&zkMY{Pw2f=iT#5j#PUmUz^x{cj1ELjP(uoJvOjtpJ4vY@q|-s zVTk`z-imil@k?(TJih1ob7rZ5m72!J-00Ao(GB%HKg45ZE8O+kW!09F%FxxmhACdp zP0guweK2dl?(-jiig)j=D^*EO5fzm;o2=SiBbF&Ex$@7IH9O4HUUN5vtXs?eI_I2^ z{pm~0*O(kn9X?iI)X8|@X!iey`{(rX?D%lsFYO}lq2mYt@6GU!`D1(Y#4&}_6I4|{ z{cnov{ynKa_m`lR`HAgwxrB^lzwlf*aFlDYuEH~WD;AB&v~53qn&RJ@KYw&@o=CGi z`vZ#^T(^=#AMNS%RG;=z&fwj@`&XF$AAYE8edfIMikjS%Id9gg?=e{0nS9aP|Lmdn z&u{glPuG{^@tSgDUa9`Z|M@!KRKCW<CBNrqy4)C>D8#tp7Gq|(g5>i<yRYB=2<pUc z+dJWB>V?_gtTn2ViqGZvhZw&M<>dO``Ei=aZ`;fMS-GmSqLnpNB?{_x<aZ=5a%9*L zkifA}B;G@JQPc{7#4Vi@FEZS|kbNvY#bWs;=eahKryXAhIXrU;kbAMiYajb_$K|;* z*WcNfe(SDT^PQ$uFSpsI87rjf|C)6&;nUB^ZwJ1)Ch&z!Gi7LYSZm+NER$9z|3LEo z&C}QIx7`2x_}d;{OTDMO{QJDVrl*}Ry^-_EL^vd2WnK3t_W%33o8ruqcFQ(9l<$k4 z_Mxc8;9Bd}`uMvZ6&L2d;8qk#`Fi_drQVFgcP500@6rC&b*T2AZ@}HStGiUAnl-cE zJ}c?fIpi{{pt|qx*Wh)m<qhW@uf}jlSUz2|>K{+mKJ}kR-`<SbYLT_CXYbU@M#ekd zvo|+&3C+}#&9lmRAo9b1+GL~HB%v9v?i~tj-1H-I!I6$80k^cTH{AX|?yfOk^)ifu zb?(RAx2_$%|FgP&b?l>*`~R*@KQr6C!r|M|?(j1=3LZ(YP51p<E^|jfCQ1I&!wLR( z7k>EN{vqs5f7BF1Z|U}ib1zKpZaMt*l-_G*nTmDl7qbO}St11d<m;~)&*QSHx|S*Y zK#f(Vi>W#w#Pxgkf=$6w9~b{JcG$S%+6e{z<K?d_%4Lp-aHtq{ZL4N9t({|F>%ZyW z|K>)4>z8Kr{x$KfdA6WSyz>xm=({DaU25MXC|s#q@0iY~Ho2ius$8~Ju#naA$~N97 zlX}D4lApLmI=ni3#dwmY=HVQ%lJ7q%*yRcY&n9Oq`{Lm9S#Zls-@m0c3La;3-`<gb z`eHpZ%gReLZ|L;%J`l`S|60G?=Ih6%x1Nd|(|#2_`W$%VOx0csS-VT~eUp!wo|aCW z5VWnamR&+=Mo;Bzs}n)aw)>m4K5Fe+zv#VG<c~PFY(WWkX?J6zMXxIISU<$b&Q$pF zYM0T&+E>*V=N?^oA^pw8OV16ye>IM|b!mIbAC(#6q0d=!?|%AGtoePb@LQ>u3ySyr zDs9>u^fkA2%deA?i8I$q&OP`+LdH9%u>JOl*_8p2t?Oc^EPTJ#d-1mz#d8bp`E%8t z+~Xv9rRv>MMiZu}@=gZc`Hlxzu2nqyna{LC=(Ki~XDe?k8=Kt6Vn*?erzXGKKEdwn z8PoTT_TJLcW=;D!(tg@-<&?gySbNWU?=icjbDab$<NI%|-j&x|8k4!dBc5gMEwgNw zoQ_jMGasGV<<<4~lF@a$UEBTncC<BHm6e-c+w<yT^P+PH3X}vIiVkzk31@mZb!m%i zh_UAX)9EY4lHYB4b!gJ@qD2o3>-KL>SX{VXuFbyjf6T=HPP>JBIBv|D>(IJ+;?d`i zzb3q4P+{{`y|8=HRQ-cY7ykdQJ@&cdQ{4M0n*F8K`8mcb3_TWJHHe<F->`UJ`+KK` zC!F@}K^I-Gf9CV^deCrhpVo(^>nGWMe($+?>D$%aA#V)VvTzs(1$<6F*>wIaSK|J& zmeJ*6S>FPUCeN9>QRl^pDbJ4XS!?R@VOC@0-mQu=#F!X2l&tu4-gMX1!j9r|kt%1~ zzX&n-Z(*#TTz{)M_1FKJeOG^|{r}GRt@>X5-MUB7^#{-8zk9=P|Nri{tNfe($1S^g z&-lIQ>GxALCg0t*Q2T)KvnBJ7*J+6@wJ<bKIbwO*^v_=I+Bp{fA@jm6{JL;{j<k(( zjg@}zySUT4uiySu#m=xNb^Wxv_4B@EU2UIrQ}&g~%02#1@8l^wdJrnG=<&R^oWxpH zW`WencO$u;UOV;ga|-*L-;IjfdnA_%v9CS(@H9hrx0k>xS4nfr9bW=Hd)rS)&pXHw zma=X2$+HXWEo-jl-T%L-_T#7OZv|GHlcQJse!N%mW|`WSNvjn74nLgc93-%3jlk-| z_iv}`g|EIl{r*P#UvGZvR{WWhTX)4-)TF8=^2eL0j#=d~Y^D8=n*ROuW3=8rU*^K( zva-elD)DB5IyZhw=a-2nvi$vf<=xX;>(-Z*{XaVQ?C0xmXUo@Ijk~{pi#Wfo@O8dz zk5;WMTJ^G^a~|8=CRv7wvy`qR*2jiR`L#2fFfaSI{QHd74#j7yI-VwqZT&e<@PXwL zofd0})i!rUK1W?BUE~#Nkvh%7Vky5<f58u<tG}MxJ{MuU>m|$BbGaq`*~0h@X&3Ly z+K2Cr7P`B8(j)&`&U4GHkNOF=-(x<o<fz@R7t!Ci>t8N^v#j^^`Tu|1cU%|Ok2lWn zKb4jFHg|J%;hv8PmuIvD$E>!SA9`Igeb@EZ()W*FToljq>;JiV_vGFjeQhSES;fhJ z++dMS?H#4r2ZCO?EVS<S$=ajNG+VBh-#xC8>$vYZ_PR;O)026c?ybJW!?H*)B{$Cb zY+Sb1(K!J}Hs&2$+sFR$``y;lmpJxS?=1<Mc3<iAJi#Bvw@;P@?p+#lX-B!ivx#3f z&s)O#+`hNKUgY9-6~=Xc8634_Uf(g^crYh`%`!qh@R*Qeu2iwWec9r~yO}>fe->fn zocs8pkE_{4rC6EWBGm^{<4%izd-iZC%i^EbY<mJ{+sg!YoNtwDt&2VtG28WfbJg=* zj1@tz7Km*2ojUX53Adlprg>YKxAIr6nOnGam*n@9Yr>wHf7+wNHi)m8eD?k1bNo$5 z4E0Ml=WXhp^|7Ka!#$1pj+f!|iM@R~*H^^f3;HV0th73pam5Dii<S+kYFuFx6W1q2 z@O*13-JtNT{*~EwKIKc-Wv&^oGd(7ncr=x<I%n3V2&2b!o4?gGykb0O_bzV3hA(=V z`srGg$7ftwch~X5ncPjr?<{oF&0d}gKEA1Ko1<85lw{Gy?<XG2V7U`?cJ6^=uGzWC z_LHw|XlOUQ?-Q5NoT1;9+j3s-%GAT3MbG}`@OY)HaC}YhPvr*wGQMd!SLg7zP0if1 zhR-^Bd)bav#m?y|DL=U{z51~6gH>kZ-!(J+7{1)wv-5dWY<O(pc}u1ZYw{1qynEok zWRZfU!=eH&ClSfdYmE-9`r7e(uILH1Gt5Hj7Th)syPX2M%_=$@oExrAyz}6}o8HJg z`Sr~6O$+nWwkot<h!&q6BD=roLeakM9s-e^=_m5%+ojG@GTb<Q*`#X;`!a97+AAyH zx9PL+-`-P2^5;%(F#q#;4a>EIRgc)-{#Qxko&EBB)%l-?jBOv>TUmcFkB3E3k7>Qy zw8|ad0{5vtzWDmP^@i8khmG&%|2T8*3RCoD<{E#dt<`ZE_dnhb-F@$GSN5cR>ubAI zc-~LdiOACWSS{7?;He@5?~Pmq&5MU8ai>1{*yHn|cgcZ!i;i6R|L4(X{V6@dlUW$P zoC)d;P2Js@x-Y`m?LoWQcP3p<ra!y)oqsTS+1s1qI-zIz?T!~c&B?a6-!OUF;&0;K z;Rk=_7@i5aY%O?T`<tnt+gGZV-u-jOcr%BNO|_b7RZ#Pjl9EDGHVca%cV_rHcAMrN ztJ}4jzj&FUW=Ylw4=*j*h|+0Q3$`a0u&Fij#iY)hVQPBS?NsIrwz~pfx1Wg9nBe4A zmBzdEc+chH-%sQJ-T2r2{}uCZZu`H*D_ToUioac}UZ-=PCofMje0_gu^8D3TA`9o6 zta2@_jQcHet||TH^=ZBlQ2~Dn{v3HHw=aEpyMN;wBk`hV5kDDUB{}8^gmd2S^poIP zc_zUi*lB9YqOF(j_{{yaG^)eytoSz9NYRK{n{GwU4S1ei{qIfmxA?#6^@sm0uK%)n z+w6JU`pq84KlfASdz$^NN>!lw_#vD3CdZas5`DkhR=eS?j%Vtty>F*KoBFlJZE^k{ zz8P|nxwU39^Elo;ys*2WXok%O_5(p04w6aXb=%g7@GAfQ>=X6aZ&A?2osL?&*VxX! zqIZ1mRQ9y*2lrgwrL*R1dVuo6li%L&|Ns3z*Sen<%lGkJt=F%uxEt_JuOzc5YVo%? z<&KSB(&`(Ry}Lh?_mf@2mWtBzLAO=^1$zFCxwc#E&;G3Jmwmsr*KPVM=WY9AX<Wmr zc;yEhPQ<*tn|a}5<%7J_jF0ZE3T0isI4s!Fv-gaudG*`5B0hYTENPiN%yqU*s_QCU zCe?hAX--hS@i}(lW6rO!r7SHXjIxro=EiY#8`j<ab-vI()Uj@VJ$Hb@*PDvW8}sU> zZ8?8-*QOm!E-5>!=9V42)mFP=qZpIJ3NeL{O$iz)Yv*PP$IK|)f24k6#j<~M_iTHU ze7?i@fb`8HNw=eZXa%&L-_O9oQI#67t&(}7XD{orjW108D2dkGj9D&~+M9pIa&ZN# zNz~U>io6qD`_!33R{hV`5!zjTCF;#ai=+n2*J*QSvR<9hD7=4rNtfpxW5$#Bco*~+ zziLe1peIslB%mwh&swBb=CDTW*beErJiS}L<`llGp823TLhs;>ixOpwQQQvs3<Vdr zP53-bC+n`{Yq4O(68Y~UCSMXZF#O?et!xxFExmB8l=s|nS5@m%n{p3Y+t!~+{jdM6 z$iV;9qUyD?+*d6*?(%b|+4ApiE}XmHBewcYnDEUn`|PvdnzgQJ=rW%9ZL!1VG=`R$ zySRUx(Ac_xZ;r--*Cx6D*5yUT@qLqAoAoM6GW2=y%{TjZ++WiWwV;FPr$F!;MYkOr zb!GkwnDhv#8BTt(`9s~a<KI-z)nAS}KUu=}`MzmCPD?u6-gL}M!1|)S^e(>)TZvz; zd%pACx#q!SV0`Ym*a5?pZ}qZ1$UmuG^VjEb{h2+R#p;eP=?e_#Pp`PL`}g;`U%t;Z z^p-ujOzX1Z#Dn`TT*=~pRCwx@_3fgkGcLW03wYL18KJzmev<C<IkwfmmZ-W$U8@o= z`?_eIy_Z9x=Sg$Zz(>0^HeK|OZ1!CEK<dfP)Xo1FJ^!QgA>NGVOq+nsm-TxNmOqR8 z9dGe{+qaD=lXS1S9o^xhr}e^Nm5}DT^HalrS|o1sy;;>|EqO}%!&2+Dht0w^ryn`L zDgMlx-6!NuOR6^(l-`(qsPe&l^|{6B(SGx9EZ6_vTU+<t-c0&a*YmDF9<LOAzEofA z>q@VGwKUwC(YVcU*#mR$9ZCBi#7%bK-FhL#=8)lOk6CN)9{c|EhW}mL8Y}(s?0sjz zJKy&vGwjLLUvKDtD~BU!X@zWQuZ4a%>#JjLe(9b5sL0fH#<psW|J{?zY?C&`?{$@S zVbH#KOOyAwmgm(wx3`LJD`;+(I`wSzEvuapXYyXLtGHA$L>NR1cD=Sqh;hkoZ@8QP zt76XEul%<IpU#b4H~+@ltHsvw?{ahRPqa0@v~K^l!VgiA%V#TcXsz*1m%hw%{4{UE zoaqU=YrdBl{F$(C%l9+dO>ZamYMC74ewmc1v}yJ=xmyi>?CnWO^B=}!{*bMV?OR__ zuzt3W+wc9SUnZ%nm>XgAu+JgueDOXL`By7z|2$n@cHQn*d;O~hmh8i;F5jwI^XEb7 z(kynlIfq^}>FLEh{u)y!u-*BbH!FidO8FzHBM*2x6q6P!*n4hwTzlh>XS(?MnKf_L zuYGgt{ajXqct?AtT%L{BSom~u9v;d$zLNd<g1_3`-tAADOrQL%3^w3A;A1Ih;b?ZK z`4scM<`xFa-aaG$*1vs)x>hzB<tg4Rbu)H9e_xv+U;AgG?arOs`s*Lf{xMHnKdvzE z=@J$P=k_9L6U~Sh8V9>fXYEp6P%E-jclP|vrpqGN_8Wiv_dRv5yyK208zXNehtvrZ zA4X`sShH2W&66=d<<zdlca3e1_3;T#Id1E!b}-0AR{D7UXLmk<Wj*eX9^GIGbDVv5 zRXq0{Z^0f{2Fu8d$`H=#BAdm_^hG9T^UvC@;CgBEhxbR__<!Xz&yx{O6T4Yr#dn)$ z%e<B83$n`}NlGtWr^x>NjPKoDC#%9IAD(3XeIIAeWC@FH5iD;NdBiuQ#iu9l=*?Mp z<@)Uer_|t$-t5d3)3@4dzfV^+Ua~$km4S5+i}&JdhC$I)yI3m%ol~uwj$IOuWM7rD z=J3Y6-h+*S_m}j&Sj#?jqUB|#%fIHj`iC35;VTz>YU?1rnXjoRzfZ?*{oLQSyxSP; z4X#c2`c+8$?Nt+7>xf?!#r?jsE&XTj6}YY}5cFFnBX;|9hqq-0;inSBS|v1cLoYmf ze9t6Tj6r;VJ<HT9#VZ0IZD!19I%V$_%d?9?p~#krvFQHpL<hIfi#IMW=3x--e&5oN zpDJLqHR07>_4l_!fA{&vZ7t4>TW~vQm#w6N$D8fDw05{jUzgJMJTGu?Qn}(Prfi87 z&QrFpVdfCp&Ae13>wlx=iEc0MlVV8%^&1)di#Kp)p9$^J&-L##);hUwbxIOL1mlx6 zmkL%)GxJf?xX4|@vAg5_c1DK4Ipvp(getnuUr0M+e81Z6{=<3UC43KVwi%z#e7s<f zv4>miZr#~OH-9N!INM=Mzc<V2y=%^&HZC-i&t-X+e($-7gzv@2ve)A!5|kxaG&X+N z_h!j^xm30Y^SXUc)wigBQ2%Bz-I}8@=$x2I^`ry4ITpVE?f0JX>}8LS>Ca?K|1#z* zdiK9}?z!(}mk<0=_s@I#HCumYP1e%2jYU?E>+ZBK>6@@FoKNb#=x2udwLcs4o?jPc zoNBmCi__s`PhqTxnoP#@J$oLW_-<8Dkoo`Zd{gmPai8~2-@9X*UY+&*9Siy@Hl}#R z1bix3So^)Gp(gRL?sbQPU4LI)w>;&?GCBFU<-w|i<!mo1JU0mCuK#=Uv*>r-8C<82 z)tzU0zI<PuqR!2G`=?!hs~$e1ogqDQc0|xiRe8;ZsZPs+H!NRpu)&YRP5%C-b58Rn zUs(I<<leb6=Kp)P^Sx^N2ZjmXp1$1JXy5#M)n(TmaW6FQ+}vI8`EB*y*%P<F2|YLO z?6(E`a<@I^WL$JTGXFKt?un)9>m~aRpViI0mAiQDcin_L@mIvouXlgOu-U;;P^{6= zxO-B$?uI=<YsFYz`UTW{+opKbvB^R6sE3A^t^aRXCZ`22-D9moCNwgK1T4Mt&+o*Y zZ9IQ}DgW-h|3mlp+y4(&pY7YT<?rO2-Luto6Kn4>G<M6*tK${feEFAWxA)$2{}x#p zUpyUXKi^#-F2eZfmokpSm9_J-u5Z5HaP?@Domb)F-19Fd%XGLh@@;-Ix2botNuyzV z#i8E|oGRQ5{_kn7dVT9%@!k!x{jbdysGZ$kziSi!z1>^I`Tt-0C;$Jx{+sfDU;LwW z-n9MdJuow)a`VFNTkV%07Ph)!;Vg5e<4n)Z!?VMkG7hhlInT26;nBvK&ure_o^x({ zL0W8PO{p6z!xw8g8@uZXbvjNh+WZ_UYJdLAc7FO@?(kqe(^~emtGU-se8>OHLFtgJ zQ}Kt{1-@6!l=i809C-8i&|#*T%>SoxJFtjr{<&KJ!+ciruI>E$KP|j_XItq*rqJh0 zgD)uk_AKA}?Z%Go*Qu8t7f!d(SAH#fu<C7NnEw9@&mVoy5!X0nF}3AOoYijW{Ig0G zoeMI(s_r>$bKzz4=6~RF)mPBLU2N|D=P&$9b_GctTbTa2_x|^eMR_cYT+fdN#rWTR z$Dm~P_(7`pnQ5LWCJb!B3=0`TrnQ_aO?lAd6#XUko5c_5Wb>w#C$3zZV)npGbm^Wv zxj-}3eT%<snN|8wd%IJm(*=>n&@=x}<je}y{<dS?jWx|2bNTkXxToI8AjD*vy1sKs z!`&ka_DvCS_a8mKeL%74Er(xlieNbRg|2VAd$vk2O1v}Q<eysXYaFz=GM1;dA*qug z<oaZTRD*1(1CIO`m@`(IZA#y`UWB3Sp*7ph0+#U98zMOmi!AuhxS4m|xgI-Z!pAt1 zXBGu4yE5{$v$|M6oH)5ga7X^;kJEljz0_%0q_AxF>4|rzE(n!n@JVk?VcSqTxp3(` zC&%yYl8rH&UoXvA&wtGI(r3dH^F!_le?C*nU{yLtzVy$&?w?;b%{;kn&D;%%I^LZN z{LHjUKPTTVTc~EBd`$n<xt;MhGY=ds%(gy%|IYp`?Dp3~jpvnLcRP4v^R+9B-X6U5 z#_*ihZVl!O&TF@pD>^AH>b?Fl<KnvMul^Z+PvK9wk#h6W38Qrr*Iut!B`TkGk@1a| zkJYcs$Nz0miB74lWo=&n?XZH;&s)+$3UVREw;nwDmfUG;ko!z2Q}<X^G|Q%ATf?tS z-2U7`w*TAD<?BDjEDz?GY?K`L_Up5qTiz)fl(<&jm?`Pw$n<gM%=|aP$<yV2n6P~3 zJfdrH`D2dj0jEW|3x2GxKQH=MI%SQ&&ku#eyPsF;9=yMV$NtsZiC^QlEGrXJVDb7K z)WTIQJy+yUZ%+J~nTiU+xgNqym$?tH-;Y1{X!h-0)+PcEUb4Tx{rC0cwR{@$=G-j5 zuw&BEqc8aa_xHShw?1#;>>FF(+sOX!*v7r;yH@?xpR8<)qa-GYt^aJ|dXxEjqUHWa zw+<GwIzPJfXFb2JMBo*Ft7rq+YoD|2jIDH1)p`z`vg#;(c>Y~O%kMSw609OO=+x9m z+K6uunWUZ)vpl8GMT&9Gxk;}iOTTO9Ydm;UUbx42Ti24mPLhl+a+AOM*><XG>D;_D zbK;8a6Bb=bd98ea{pzjq`8+unpY^|;U(owzT~6g^p$7J3-p1oh6PKmGkFHz5zjMm< zTiO5CNU86C_e<|i&F#4NX-{;kpB608D{MF?wy0s5jw(<5ia*ufdo%L|SggWjH1urT z*D}a9tgG6;VXJRppv?O1eLOErj8Zq4#zj3S?c_)>ie#2!Su7j>`>yLug>vhnCgF2c zm1*y)a<|0`%wTx=G~i;c+r^a!`CrT5sQfFO^0@qM{px`Gwf|QAog4ovnpft>k-85b zE}T1TZj@lXaOo+PCPs($1IF(}jB@%`STARCopA8XLzy=oo!=YEd6&;Rq{Y$no3U`= zN4A9B4;u0`CztWbT7H?x*}LZMA|6RL@6UyjwfVMk^QB+?dG*iu_r25p0pBAp**1t; z*a<W8thzt>mq*ouTl13LH~q|e=jeZxi_?I^sWny2I;s40>BGoxX5mZkUJhEpw=b-V z{c7nJE1#k-i~lgJ*kPTi_d)#a?`fO)rt&=5#eH{XDZ8!q<VR7QJ2%`p%wOx?cKzv% zzp+>R4r!_}`MYUWXD^<+)R_6!-+k8^CddD2ozM9Bf&Sk+{*U6~_wU-y(Ic0B=*2hn zx&KV(xZF`{&JHRO&57bKbqhP0^Z1EjfTo$oMxJkBSM;j(zBBPZ%zw2pbCJ5U#_2t0 zuUG$gnpvrw_3l!B`kt)+i}U{PEiExOUCYSVQ=WZ(S&FiT8C!^~h{t2@FAKJ^w_E;8 zvz_4+8Xu|KRMY!`BV@-<U8BQ`--R_E?+E(x?QQzjy5FYP>-v>9Z2R|5A>fPEJC1`z z7v7)Uw)i+pZ0gyX`fs}=BUkD#H<_2oy+I)&?)Uv<iA=Zd+>dgtliVg=U~ITC;p_Gj zT5bYKOk&#(*4;nN81Nu`W1RBr%wONr^v=EsY;VX@HdCsdU0Aavt<e7G#XUR^kKU?3 ze?#jV!(6-9k}-cZFWSdtZQ%crBPfwQ_XXPxUe~1U`(m%(P1FAxc`fRm&&2c>*Kf>T zY9D@ehidov<9kKD{~o-&fkBpMk}%KynX_a?cCD7S4m`o3v2d?IL)fc>m2WdVZn5a^ z)R$ZL?b3ar?iJU5@Uczax+eJz^B>Q`_cwQ4DNFU;byFk%rCDB%6w5`9De31@^A7fO zf4;ZF=-;~w$AV;&uF0NyXp^C%ddooSyhgIZB}P%@+gx7{>AAgrp3dBU%8&or_x<yv z&oBBcWy!5-{K<qt(0KJ+U6;8t=akp-Z(<HGXyA(CmhVr0Q~b(>=K%jxF-?~1CexM$ z*(GS%2(vIhzQcF7y>8#FTi>~_D_-AGD(sNB<*&`-oBMv;nR-F~P0goDMR9?H=1sPp zxndW;CC1MXlq<U>%z5wHI@X>O0^UFLKUT5u{<ZY8xNY4Uy-V11hE?pHikDmeTa;UW z?tWUfaowaFOm{Xh=4f)SdEC!)AmX;xOqcS7?2XeG-7HT~{x-*<RpWdF=Z3p??YB7m zlghPTe`{lXy-m{H(q)eJk69|NWT;nUBsjM2-sN!nIhUi>E}bj9)m#UD+8$qU?(Vxq z){fiVwPyNce*V4XW4G#&7uRR=i%jxK*`(yj6#t?#u*6b`YjebU?&re4pDsy{JoZ=d z<znRnENuGjYpa=zO`11<4U*u<4(8ashEdI9&gF=FfBWYOx5ZRBG9Q<(`S9|^>g=A? z_ogpO_LH2knzJX<F7{UV)I;mGowYPbcMwpUtEC<JO}I_#R_Lb3-W!6=6#neK9{mwC z%aFU?DJ#-k!eUA54DoBiMZr_&P23q1_SHG>cHyVT31V3%t7=)6Zn%GH(%KY$4yOEV z-E1b?6Y6(<n3ZkenXa^9gE)f>x5gvS(iLr0WzGl0O^<G^o?}wCAgyWR1-`dO4xha0 zpSW3W-EHB!hadRrCjVuxui0o`x5M1ooKZ3Ukp7l;8x&WsIhFON&+DgyR%1o?riewd zJ?WMfY5#f*+}5cF=sBGVm1a%378==qA>_bTe{lu@k(OH>UtLd&_om;PtS8U4r?M#Z z!Cv#Kjn~Wd-|qPEpwylFnEcFd%6u#-rvk#S^PN8Jb**)})()}5FCE*9Hm<O4`OGbL z<ch51g-X>slgdT=e!bfIl_S7tfAPAM8;NILbU1kLVk_Fe=+A-u_tn+YxqQEEn>6FN zwhjBOYd-9(_ltj*SYIhWf2(%?^|pt_yVvMn*w|D$lO@>0G)6@I)Zr6XcsyD){<+`( zWp(Z6^!<P8PXCh+kpBJbZ1bxN+59ZYKiOX0_uqA5i<U&^t*U)%wS+_DS)IOYRQ|Cf z`fdA@$?4{0wWS+Yug;jcg*U+Lps0AiVerI@f``@@gyu!&ZRG5#X2|<k{#uZydHbFD zo7pppUb%CdTb`Z0|NHYbr^;?U&e;0x_jS|D*Ix359e#Y>%ua6Oqh~L-3;K4w@4KIC z)4H$m@{Vo24h!q2pHh@#W_x_suUGBx2|3%_QC|G5Zzle&{9?v>Z1w@Q-t64x$=qc; z2~F4ke5_twTK!&mMfXvYrf(cVk9Yf~axF>y7NBReZlh1O?04Cl5A5FcUstG)+38>X zV69FT=S5@7(_)P)zb-Jm_D>+%=kaQh12@xn1h2WZH~#C|8flj9c<WC38}Dm}nF^xI z9!HwpQ+;o~>1U-)(HzEYvD3}MYS(-}YjJE(pXK%1TnW{`mMlDeOw3ttet-L&s{7Z^ zHFo2!)Ve<w0pV=IZU5KVa0ko%-q%+uzSJgVpT|~f3EhnaYi=>L2FZWr%TsN->i0Xn zVD_&lrMXrjf7eT_)2+L=D$a84#v3`@b6vTw?0cZzwAb@{5dU<=O__`$?7K5x6^D1< zlKx(KN%G$F+x0V4%hHYssZCpRaM6ilv9Z42eu|eLyClsRQtR4ZYNl~fxJhEg)9G3L zjvltD@m12+OFLFH2h_%>H5{tz`*%^kMn3)N#~6_hU7un(mtB^h_+!48(&95GtRfCF z9<qG%di_t$qqS{9ksl5&QGBh+bT7j)<IeX>@rQQ3F{|7hH}U556LZ)%eD<CFpZ%_U z>urt}qilHxXLh|1CzERyGTh30=iNVjUdL=k*YtOrtCUVO|6AU!Z5^}SusHtlkpt7W z{+q@BlV{1#;QNOrOKsR3+`xOaNztK}RbKx8_k+Lgy?--@VfNpD->oJu-aOGuK~>_0 z>qmxDGn@Wr?Oht5wznqeC1cY+p#vUk=A3NXcl6*QXCcim=|&dUcJ>=uZ}s^geQ~Se z^s{@|0uCCnpAq#^`K9%AbA#sWULC{lj@_#&pTsLEiho}A>AY0({_7uFK3<W0<a9xT znbFyDo@b7qq2OL&?wZ${4V|G3XOyf36%Opae)|ikG)i6n_jmaD*n{<1(tjVG^}bgA z@PXIfW1=TsKV@QmdhA2Z_ghuE39-AA8^vX|U$wfmQf~j56`%j6Fxo|=w0<nUf1;Zw zXK8|O=mM7Lm!*sQ?#+5peX&k&5gW_gP&el-xArJVq<(F>9%{b0V$Wvt`Soo%t)C_S z?fA1jH*{XK(+}2HFS6~LwL0c~R^7sC6!m&y-5ke-PV=wN)cAVm!qcmBr7ZTpQJpPY z!N8;y8p+pJDkxoFX%P56BSD|_f8_7F8&Ub(kB`;edVK%$RngwK(=`=q_Zzb<klt{? zcE_$yYfTyF>@03gSbljom+_l?r%D#d>8w}&zI?Xr?=Hzp$<{w^f4z2Eb`InGcq=!> zXUl*6U8U0`v-;82_8|7}zbwRgTO{V!wN=i%dMr)J_JaP)MNOQN6+s_s;}k7AgwAs< zP$^&TcgTHepY<(~xVyI|-(G)v@^kzA`~Pm8ztJAv{r6aY?Rh)fztgV%mJc$}oHP9l z^SpNkb0=<*+ZuE?Fm}S<@4t5R@B5o-u}?p458Dlgiz#XM7l+sADqrZ<xp3ms$&cE~ z3$`U3J#f+Nc3QUQ-ZdI?E5F?fuKx9ftt8?9*`GDrcJF5Y{pa&^-ku4I50{9^o-R1F zalQxh8DqwNriaIb=N_<;Dbx^Hzi~bruk|tWsIISNO^Rir0(-s8s?tnP{yfBLmi5dr zwEz9V85tK@&Pv$(l>FNrRd1Gdy`pzTq+UVIqw1Nxs}^&9P<wFOrMoB~;*jC9HSAmy zg;wrT|9>oY+8cL`JK;$w7nDxwzKFlFb`yuoBHK5OE{VP>bIpvmUE*0D_<g!k!{)@t zN*a8}H@fXuR2?j45wM5jlG_r=?AsC^VO?!M?=RnzTql=YswS=NdadkM%Bw@1@;Cov z$fqmDg>QeYf9rp0_Zi=mxE;pV^0x0@5Xw;S@z4xc@hKN_I-Yk+U6U;Kt@^g;d9p+3 zlLeptUS#s~x+Ask*2)iQ-#mT<yxxA~{nj$0-49%*-P^tAO6UBK=PYI<r!Kh|=KEYO zs%omn&sE!UdnFsyZ{OA8;7>TTXwRWFZRZ?+|C79tBmI;uZkKKUulJ10KHS=nze~OE zs2^kLwK)d6eGXi&>aFEJp)@0K+1l%8e(QZGc2}A<M?G!n;%XO`tgZ7iW6uA*Y4dr- z>*-PEzinSfr8!PkJMAaSB=Te9-04QQZk2i7<>q3s|8BH<oqj?0r$vvFA3RUuR7g%y zWxu*JVnc7$gw(4}g0hY-shU&PpPqeN{af(;zbC%^o|(O9ZmQ)CueUlM_dYvVv2wOg zQK~@Ke9^57n(qexY<IQvSu>e&-b6-)u!h3(7oJDv?oZ~tBLDy4{0G%>dny_~&n$N9 zW$`z-u&Clg+3oi$Z!FsDWy|+Qdig8q$X<_}?S?bHv8%OeY5uYD?DhJfUh@25iqEyL zS}DSTdN<E~wXsdKjK978>5rK^55(6WaMiKVNi4HT;@x#q?24>H%dNj^M!b%9zn3-M z$iE)5yj}Ls#;>2Een?3&t0bQ(yDy|v9G(6-FTed;{7w7!u{H`?o#!OZuD9LCVDYf@ z=RPsL_&+l@=7+K@cbI3eOoMguUCjl5-6Nmt$X6^cRS&H>^SXIr?!}t(uh$1~uU<R9 z__OEUZFL6vd^PbZ^)b;eAN_kH`#m(ZTs%V|!S}e7@a6^Or8^{YS0>({esZ_##rT4= ztuLQ(+3lOpotmianYDKZe_=n%yv(<O8>*OYu-q5he{-^~;{F|O=Il>S-?H0zukigm z|CIE!CgI7(tz}=%zIqy$<1md;ce#EAf5H@-r&euiFU<SGGV687-2D!j1+^D$wXe0_ zwsKG2zaPRX^QEqR3N-1h`Cerm2f8xh?N+_>cNNaxI52g#iF@t*S8tkUWwt%Ah`JXr z)09b8bL%2Ef4-Zi7R=w;dMwQ3osIr!fs>r4wp?$tw(8O`kmZtSU0UXR>+#>aerun- zxUpf&HlqvWS#~mV=l^lt3@@|tELppx?1QdubX~>Wp3560C#F@{d<d_exnOb7`phJ; zoh`{*FBnvX9ln3B>4@lgQ$z2!ey^VR{cx;vul5u7UDG`wOxd;QVY#8PuZpOX#ncsr zlP0zbboEqwEfLvmA>Y*9di?W3$y<N-$+qyGsQCKIF(dc)m%f8_-u=x&?arc-k2sH2 z)e1N-7V2#Gm{gy)Zq>ufjSVlS-^xxo{J`e@+GeTMeDht@#Y`(NczrM}IbtzM$YQaL zN{i^(mpk}&9AH=4+$7>*yMO(}NTmq|Kd<Nh+jRF0-?!EO6Vl^<7j0_)oqx;z|JnN6 z40CK<d+u1yE}OHxv&6?LS4W%S?Uvf<m;dj-%v8UBeSXbj?TG&J^6%R`&uD&}pkw5t zyueucrt|HTh#8!xY+pQV)r!y&JYl$E*6hb0ABNx0Pgj&(=U?|><==nr|8~~?|6QN< zygOu~b*&zgKbtU5L0ObN>({LdGkEUud{OSRia+OjW!v?8lW(qR7OXh4i__rH^munO zv!gQZZ1?8}F4f6OeENE=UKM}H^TlokUk?~FIA8nwF5vaKH|(;$T)$*ba!mOwaos_j zeX6|yTj;fg!3$ZdBChaFF1z8_?6pcgJIB{C*GYXs)L}c$FF|F@dIs-KYG|!oFf;3^ zXj5d4y{Kc+#uc3Fe$C8%wJA8fp3k@W#D-bxWIua<3!TE{a(ej!wSKA6i?g>*=j=Me zaLXV>?v#bbmN{$}7QBCPFyN0xp}gBNqs%w%UO|pZ|Mp7!4xhZxRclL5NXLq6N0}I2 zRAyeCr7RsEG2crjLo~zLT9|2SWx4X5w8O_58txv_k-8PF`Fh%p{asD7PrUf}Qz9U= zLG)kkbVD(L$+JaosGrfyY0KIA{d-!se*JsX^E+A(Eq*aYh|zm}_}neWy#H6S%T4$z z{?y9o%hD+R3ajSy#pfR$T+3vb*U`<o#??CZ#z{7wEqCk>KYu#!aoy~v1>L%;+r;B9 z{m#5TtNgrR!SwF?jq_K!U-)Ue;`@S!j~Jbn`te<V@3Y{XlYP1&6R)dd%^CGbG0s~I zA`e>MPe||e?orO3ezGO_I?r~+*DE)RaWGjh6!d;Raa+=QcAl+m&sQl`UPsr>42r#< zWgWtJr-d6RZnCZXb>`p2{r|szj6JP&pW%1oF7wg};yS-}&u-OoF#7uL>P<lhsm9iY z{{y!^F1^J%Rc?K#f*;#~_rL#4w*S4k%x!Or+u6T=v(LqE5d2V){wt{1wXH0p>qr&H zw!Q`d>l1CCdsb@i4!2nF=;`DSnSY9R_9X1jce-!9kA11;7LlpmavT$;xtg8+tJ<`1 zL-}7F)$E1pozo5{yi&YzhgoJrLUmH!JKd7R9cez_sstb3d;9m|iLMnN9RKXuu{-{D z<@`NDOLs0k>G%Ci*7Coi5ldaG4?4YWND`0{mI!oWv<c)tHtBrJ{Lgjk)~0{oTROjl zd&jb{*PZeiIhNd;_I{tD@g#lA*V?s9syE+THS_H}#j>7H6VKj!VkZ%$d``;v|Id?d z(g*gQ%ggjg*t;s{+G$Ji|JRI#Og=nrw&b=pjaK<_BX0dGe`V*Ze~({?Ib>&V7{;+z zEB?5Gn7oNUW7_W8S<(UvC#{v5<#$k^WAn-Sy5+Cqi?x&G=d-wQsCds|-q3QjmvP@e z*WbVIzFu1en&o)s>RjdIU($7L!MB2WjV4uTbzk3@oLi#e7RK_e=!LRIl&H#j*Ml7o z{bjT)*tHm&bUyAr;o$jG{9JgK&aG3EnC<m`N6uP0+xfVZ0@I{er}W@gB8rzJuBsg? ziLJf#dQ#W-yx1#JN7rv#QRaItN$XAf+(mku@-%`9ghX$wDUmyH=KFo|K&`t9O4|3{ zJy)7?sX5X77@w5~@2r2FQ+mTY7gw&8-(`5_m4oqS+vKDPuCLy;rV74&A8s9VM(&;d zu}Qjt*X~S=t*G6gGhu;ZD9`js+J~CmK0o`s=~cn!k1<o<-mvg&F8rmyu42^e@}-kY zJL0UBM;Pn;%B6?pJxV!Vm1J!)a>>+CbWRYmZ4;iu&A%kx?#@m7|699jAKPxe|M#Ex zTLUZO#Sfp#O^p2X`k}z2Lwk(A6;#|dwg2_vcEO2#H=FAD5B2k_uW;^Xu)a2T-tGyV z0#`Cx8t*n5%O3D-oX@*F=TAg_X5RI>^!R_D*b}VxWG*;t|2utu>in8dk^F3R9~Pf~ z({BG`52Mxhy9e7Jug($D{JPS5*X4bw&YOaB{9mL5+Ds1IV*c=qisdf%f0?I}*l#=C zOz(Q;s-}3&?d|9Lvb}mfD}2myj>=46mf1G1(LYc=_poBR-@$e3pHI7Kbz`0Er}gjD zci;T)I=d{qto%={^?dv6*Z;U}gqzc?I424ouH%#Kj@rc>Ao|1Lcg3|2-(9okrb+7v zzu7N+Z&q`;Mss5As$do0Q-}Bc>zZz*IpL*J5LbcsPU&qMtnVc)e4-V#r|F?cW9hbg za@uE^IMtK$-yF5-?t0P85cK#~*s`g@?zR2%RP*M~ex@BzUHg8@>6tULELK(ur%ZZy zfzh4Ytlh}|)GvpFH@C1|GUHfkd;G?4o916H=ZnhTydK>kvotF{y=lt7UR9<^cdp-N z2$-QckI&y#E%HEzQQ+ys<F79|#VbYVNX(7;!owvd@})&X<y(eSF{^vIT>`)Bw^FWO z+m5TfmeshlLH1r+S-I;$lmEL~4+SsY8{g5Ldh5@sO0PZc9a}@YHePgaUuMm)e9iZt zug_dd&6*tj`<7Jpob%6KKX6a86_#boagUD3IAd@<(y?HUebQoyzSlgvK0KU|YhKG) z_VdcT_eDQ>n6_{CFUvSuy3?o3W*!5NfXl4j9K)+i-0OczWCzDrr1o+CFo@uM%O<y3 zd@ieC$~mzEEa$|y9Xzx5UHbM@vN0?@w|?DeS$SL5#Sf3ST5`%Q;b;@e-m;hF@#*-w zzMoZ}zO4Ma`~SWBx#z399ex}Y&(GLs^m?&oP&U_-Z2m*a+162SCY@~wve$fBereLp z1DdZARvVm=`TuSD>YKl3)V?qO&v5(YyLTsQ^}0;<tv<!>yy5s<p9>b>9d_|&b49PH z?VbMr->l!qcZaO#x%l0BrhH=mh9I38rHpF4A6gFTyKv8S-NkWatLO7)TbUwnPSSF7 z)VG}E^?%EPn3ghIhlUhqfeX3cg_U2-EcxdjRjp{?x&IjRUGuj!l~u+!OPTZiD%x1L z$$j4SeBXy_*E}Y*q)lxJ&GddDo|sa&Y+k9_x~R+SZ|`mv(q8P+;@}|4adPLU_bmab zNqcP$erwKYx>i1iSLp7ux}C`aaygSV^j|zUaI)&Ua<I31W0WaFiSf@W$*5@A2A16q zTpZ5cf3&aa>$a-uKX>0Y-@evV^_z)d#_t)~Vm%2PL~fOSmwWMin>=e(8dLS=&3sus zk69l$>#MfR4W7xBbE@$?zghB)BQ3?OJ*yW@*u=e%%b+Cf&2FKF?eD(wF;tw6JALu! zt+>_aI@kVrald-)-=@ROGY`+y{aZ8J|5is|)BHm_6Mj1!le&0)-WJE8l+?!$SFE>r z;9}ktce_$eG&}3&o3D=|&u}vpbG@DE%C<=_D^|^`EYz*~!s{-L)S0W6=S^6U<F)j{ z-?PRXLTl%BmQA_s+9kGJOv`#B^Y`sPjY~FdE|)j33Yr($E9JHS{GR<!jdvLT_z+cl ziu?7;^MT!E4;|lrZ;KZ$aSV_-ms5S<=L6lJX)Lc^mw2<@n3^l~bA_-qvreSr4(kQh z)qgkKdYikgy=+xwJ2Q*mYu=2%rW*6=6qvr6UU6OboqvIb(~b4%*No0Dv(kJK@#4yZ zhF#ARgDY;7w%ob@@Or^=d&9@x>m%6Z|81KdeD~S6Z(Pqq{DeAsZf$aT+wAzVH;8k8 z^Iq5gufKje^e$d(x6Ju(`v2_j=fA&mbLZOo-NA>ZoMqiw*BQ0<gwjdPKDh&L9e&=N z|5t+jtNH$)rhC5sdzf>PU8XQElAYDaD4<X`^^c%LmzccQ`H$sQTOK}~+0^&!Ol+*; zkMFzx?!Eup`S;fN|G5|b^)K)K`)mE*@86{Vzxw|6h2zmf3bGF(&R3~e+`efX-!82t zdTWQ?scp&^illTH_-(WIGhW+nG+~CQg|*UqU4`>vH;<_V^v(I<v$o^wrOjVT%Jf+t zJh<}7GE#VD<om6wOM=wzd>3t8u`Pey?RmRqsbAq$TW)?W{p~IL%>O^@%aY@NTipKt z_5Y_U|9)Jq&wKu~ea&yPKwjqsm#_FbZ9R0t>F`M|Evw_Zek5t9%xgIz8?tu!cZoa6 z46~0`>}cm@;a=FLY`<yaxm%5^K2)VV<A|J=a&g`S(^)JlPOwFk##?uBa78ely`i~y z-G&&}84f9@N<)+yc$R-MTq=ETqVd!TORw%tzI{yYS+!)uw(R#cw(nm~aqa)T<nQg% zm4EJw9Q6`=D!Jr(Sn^CU<}Kdr+7dT9s^oqvUk+q8Saqx3;)-_T%&xNKp^kdYQAQK{ ziavC&TX<l{dPRN7T?_4H-uj51QCi&db#2viJvUKChh@!LvEodjj#tyC?f?E&>@|b- zl24I4r%e;Qp|N{@;e@xW(?V+F)-=87=Ij5Tv^P}Ylte~+@cT0bX`Y9VyotYbV_8Wu z&%YmgF3#$E{dd;<(;J_;oc-#s&g+1=%u|sET*fohmU(z7f0o&LY0gp6zJF8Z-w3t- zKhORr=kH5r*}uJfy*o`hTHxxY^~KS_yXU^DUER!ZoNbQWR{ryDTMOpD-nQ%%Gqd9I zY1?&bKjj(fc0}BY)7HK{J2Ilv<=debT7vqi#;dy*>=m4FWY=qv#%=Y-W3HaN$NZN4 zjHK6tFt#Ne{(IKWVZMFiv^v|esc$bWOXIHlwR~S|Vdb}b)8EMdW#8ZRpgwckm(Azj zOC(g))LNDvP;u@3CgvlwVS32qGhQdIoEBclKB=v!L8J55VXiMaE>pkH*gyMr^o8s9 z@7%rlecylOo^#9R%ZVx&MV~U<T~gisiJ2upok>ehr+S(BjUbE3lRX`M&4UlFn6+N0 z$;?Q}zbn#JmH)!R6KcQD7f<!&$dy-1usO|pwBkp#HIx61|J*`4JYAuDLXYaE-c0W~ zU9^dB!6%1ly!#K@EoM8)+#I$2+Vyxf=3G_oC9AagB&QnJwEZ^Y@80af@JM3Q{mgl+ z3}(@9Jtxde4!@)SE@uk!aW2N)zpMFY#lMrCEUU0N^bGr%%|g;Qa-3^KoUZWaOuVr> z$7SW*Osl;-<=;ah|E0Y@$IrCIW9|E=HX4pMvirl|md{_l`e4*4>&EHA*Nqrn3rj8v z_&GnaD^u%el*S5=wr1wV+u!c_Csfn=`PZu2Kd!%5vH$oR^M3a>xAl>$UZ1x&zyI>A zZ6wnTVa@}K<_C87$6l;r4k%IHoqlD_rd&x5$*o_ajs8sAa59BW$3|SlnPG?hzGKDD zwro{?AD4glwJgJjX?wjAmvM7cUE%z_EV}(LS9)@2?R;sE^A^@Yv%bu~-Ftcu<BaU` ze-#U6x~3T~6_E8Z$Vm}dBlcy7m#gA7UB~_RLOHdsUh%U@m?Uz*QMDxTfQ;$ZQw1yH zH^_Tfo<8{LxsAbO9+O*hFFjLnn0sSx*@a`b4^~V|eh`1L?wRhpIW>Gw?%$RPySLi< ztzY*Y%Y+9LJ}sHw%vTU}#y#0veQ8ghO<3xIsj=T5NQk_e$yZqH7sguRJmF)~nzcGc zEiAS*Hu3u>CO3V)d6Rod>{m07x(Q9L0g@Lk+CP&x@N>@3dmL{bYPhtOzf<K|vXXVd zM&at9`NDf=9amhrvV`MB%7K-dLSlz*a5##eI>$Uad&y<BP``vz&!%iUcj_H4-*nCY z9DU2I=d51M^81f=z}wuJA=88+J-(e;y7}AH_50Yj{P@X!zTo)s&#scai+&52-gQfm zKQoP^Oqs9yTYmrC@XdW{Cr*~7{^#HKMJD-k^#5PwZ?^xt`u>4+{om{VdjD>&|2Dg< zz9#weznOeFse3nFJK&Y(`o;3R+bj9kmV3nlbLTQ~bbnmS^<wv74KKq@lGR+UFMqzc zQl#H<V%gP+M-z@U-n_ymrTH=^>m=)yxZ2wr!$Os<7Owk|Vs5Vc*gpM=!TPfY>;68H zn_v0u%cX`!GdFKpot9OGE#kW#TU0UJ+dNI@`H8cdXHInaNa*u31<ZdrGlTX1->9i; zmu|8a_$;T;nEpPvV}az<Z@Mp9=V|T=n9S@Kd+Te%Y{s=O(|I233{(0cRB`Lr<><+J zaed7>{+s<zD8;)m=@~}HEdCa(!`cz1<S<osa-QRb7rwJtHE&gO87y4ZHD$Ff(}^WJ zg_~U(I<9X^TASF@_3xdksiM+0W`XG&&X?8heNgvswtOLfOeI&<bPYqHvzHH9UNvc1 zv9f7FNEy@hvXE=%_Jm!!<$Kyyey>4s^ivb}GVN2!EM`T2&Wq*#vf)^;Xy>sTt{eY+ z$VynvEF$tRYU<bPH>YhqcRJ_bOeg8k@>8LY*d8nkYxIuV9Q!7B+S?#DnY~x}WpkSM zGS3LuC|Bt7WI4m44SKb2XYQK)z*4?IO)~5J_hVueX*vGO-qbg^ZTK5_S?>Fc)alFj zr8j#veKrhixW+t_pYQs&%lCI}@~``S>RBZ_@2tm%W0|#9$I5PcE6wndXPz_jy7>K8 zi@W`=-2A*|(IyMO+pBMzrSRT(zm&(&OznWz-#1(1cKqWwP`F-xZTVk;8|j)%Z_Vna z8(-7%3i8Rlc))MMg_ZZ+nd460NY)Gtl{|Xq*{9|8pKh1c7T<38a`NBY`v2jACDobt zpU3ZUTj04`&XMzY<%@+g-g#yV*msCEL<v`TZ;&wYPn@paxLL7>>)Vx{($|mcsy8?P z{Zs$<{(tKmOZDyQZ#Hx;{#tbKg@uYihr^FmfqoXB89p)Ii7QQ8A>7isHcayL83pdI zf7UVWUy;M;K6~AZYS&_hvrA^B$nOwSPt94&z4wsglD}<lZ$B)SdmzlhaeJj{^RIH} z0`HIaJ@>Vr-@g8-^*`C0FS?uVK6{?|*Y~&dwoZ``2UGrVzJBmy!?(Q*35tdV>yCe$ zv%8aXj*`LC|L5<`H@!P4CcNoJS--_)^E<OSnN&QObj*wnzFL+tNn`3R)z@jIqTLRi z3TIP{E;s+1e&)*(@x2~KljT&5nL=4Cre?h`3*9)&l_^K8OW4Tq%*@Kqv(E_#zI$7} zcB}2aoY&v?@qcePS^eI8j_|{W``Wi&kF$RHM`Afsg#7yG4Cd<U=!>&5b>`pP_5Mhl zV`$v`)?$16jM|LDHSd#Tcg;K8l03(avxNV!Is?<TNiSj^-#Wsw;?w84w>#JPv{`j* zT*MT*SEFoV?2RSsDp~$tH1#X%IBL!-@@J<1-sJ1QrGN9^|E;E$%<$r{_w$1{W8Tfa zyU#Z;pu@@Ot=aiVE0!KJ9UG&K7ozNwr*%v{@*^<%P-Fa?x6P%D7fX1<g#H{_B(}op z=H|R(=IgIN`O3ynaW`&n*2xDKH2+H+Z$A)pY*j`KdqA0FXKULgy~u+K{MG`oD^5>d z6gOAy73a3^mWMTLe#bCyhdNHMmVR%W^7U@-TK3Zc4@EyWa3n5h?hJh*q?GUMe`}#f zS6qg9x%7qSfAi-lEcm|ZNUimzic3?()QrsZI9whwB)9bTyF_~ADov6U{XFsKCidwo zv|RYFI7kWcY>~;^V8$+0vTmDJ-oJm+=Gkwvyqiv(YB?}Vv@Jl`?Lc6cmaG4pov!~c zYdk;kjrZH*c`s$e)EMO=giFr~Jo@;J<xKLi=~Hx+H;89143Bob&wG56VsumT@20;8 z;{rG=uLa196?MN4UT|^l54Xa8_S~@fJN8d8Yhg}KF#fcEi6{Tkb@sQvO}zZaQQ3L- zK^ESQxI#9e^$%(^Z&_#EesFoibp7}n(farEZf{~_(9bt~_qxL7Tk^!FORK;2Nin8> z*Q%-irX{U?LF{+Z+sf(3VvjU@GoJs~<lC9~|9{5cp8xOV_K#ctzl#4G{rma<NB5K7 z>8*C<DrmkJ?s0tGqIz{l9oPAnUp~38P$FRFhb4`R;?{gq3EcGanDO*oVxjALO3u38 z;@+3Ox0S(bFN^FAX`9XWZC9DR`pnw9-b=<W{kF=rBhw}_J}=unJ9<+=^GBz3CEqH_ zH=SNOchj^7e1{jy&cC<)|L_05FEE{GuKn{te9a&2NR_N(#wYa8UDGa<`?Gbg9iRTK z&o#Sqe@^y&x_DZ2eZvFRht;9`H^$|O8?ES>JkR&tZ}rTUi(NT9Tx`9KaiRTtB(#^< z<fpPJf9yUr;f->EMws&?mhT08m)#gIHT_?7eW&{DZ#*Wf-RX<7>YRdPLlU3O-Mr2| z@vNnr*Om(l>X|RxIwc|bw!g{lovo2GQ_F#^U7?M?d;SWCq^VeKDb>vXB_$xwF+1q2 z*OqS@hP-AB_tKR<O!-+?T6d({F*r$ZYK2;Yhz^_olLpRKqmnhH4bnUI&*-(&I2rMB z)1S(q6O2vEGNQe<h<^Oz_3FH^<F5C-B@ZS{n{(PpTkc>+k0tNJ>x;xh&Ty&!*!4@k zdK;f|%Vx8+S=(>_S+n}{t)Cxn=gM#XE-@wCK=zLM++5acQ}=|bN=Mee|E)1Yn(2yy zjMaxdk9N9m@V(u-aEY$v>{oO5e!sYX>wEh@Q|8XnkF<GtJ7i0{?%DZvwsWIZ^EWh4 zuDbQP@?+7K&o^&hI3%wAE>lH{H^qAX!W*(vlj7z%Z1PY!6miVbr!k2Cm+Ut651lJE zNj_-!5_;{F;#T7ew}ckyrGM4tPs;n@Z)*SJop`;N*8l6~;oqLF|1-U;xY%Lt<HKw| z=ZY`ve;V$sQd4#Q-t4?pGq^)GFO8N`b7WeqxX;s;|9jvS<AnO{FVA&qs<b%j=UGO5 z^#A{2_O}mTCi(_5GuTxneR|4}_IY84b<vI1varvchK^A>N6dqhwCCD$&ogc;?7p@! z*~sg`CzWq~t%tY8sT?SlND1R85E772`NVdtbA^TclrK`bs;drcoqtqhme|E<EDR;t zAxq=`%172X_CGgP6D~f!dG-yq$k_Z0l>^d-nd#4drXO14ox<-eTsW=WuKV4^HO=W_ zt<5*O51z1+?lwHRsI`l2qNd-LsWXlkudV-gV#b;!d}<Nw4~vhtUFdpPclGhJ?x_6% zYi?@ZyK3cfTkxG~RKHrBzM5lTKSS{BE8m)a7~j~k!T)#Y^V8Rpy;4^3-is=3^o=>z zy?58|g?H_@uBv-@!<pUROVPXe`eldG{?jZe%SEhAnXfbOsP^qs`<%VdeygYJx*1kW z)lBZ3Z~b_D!AqWHVNTjzH}AgRuyoaJ%QfF~{xdhX-P`ley>2ffL)`A^X}MLd^@$BH z7vD^<F%t^<EZ@w~e{sk2bhi}eF4Nz&<|ZL_^UYY!?|IbqulUl}2R$~59Em3HmzT8f z2~fzN`L)uuGoCB-)1s_*S6=>Is-C)RqJ!jqbB0X$#E@*`1<6UGD;K!`@9|pcFFvPh z#V&Dq&x+<J(|4w)-9C6?qs}>j11=29qbe6!ZdTfU#{Em}PUq)yE0bzeAKv0_<vc0u zz9C*!uOnP_?d)CIoo2fwtxL+b-H%)~>1^)q>7NfhIrBbqL80^|(aX&IQH&DlzN#w% zj>yg`oagZS^MPqxe|b)+#%%LY$WYkYKlM-N3!5&nB~PoS3O#D*W~pIm`n|WoFo=1l zsPhsQ+pSzL1Ueqgzu2Uk|2pAkRg^G){`80+XA~RvZb*7_a_@TU$x{R#Ok&C{QZIaI zJ1>-zt$BiLYv0jD?sGarzf8z|lV11ExL|Sq-W>;j$1VFQ+*u``yljEWq@7xdp5Inq zI_P>qY^|d9hc##XlXt}J+tc`AzV@I0C+GiTz4ko*@Adku|BvGTnft6L_$S2NdPc4w z=#s1Y6|2ovn;B2_WtlTs8Rd9v7x4&?m=i2ot#TtZir=8X>{RgGpLS6%xL6Jx_?LR| z!y~)itAgj|m@yeFjOxjjos!bYm3!sMj@pllj@pU-{`bY?=Eo(cYEmaX`nz%Z&+4-0 zx}J7tnLLlrb*$XQeue4%AM?3leXrh$YT5fK-pjMku76+u?fcu^_y4Y|eXsuiklF6r zV&c=p4C?P}yQc8_@TzY0$D7qnm#;eDo6w&ly<%;WNq|nz!T3via{3O~ypGJB8uC=m zWu{h7#h(jI7ys#T{nK83dCAsSlG6pgC@p9*Zg^4}rt~zlDE_s2BY$=1SLQ!~w+}en zcK_4FAi!)Ex~k`Z{L%j|8;|asz4rUpb`Qy>J2#o0l<rbHm&0-3kuBHi@8=KpTXF5# z5n<5yD{{s8^KJj-C$q4$W)utBMu={bNlvi+@paV__7&3X)8s9eTe%)>|2^$cC%fJJ zFj=n~&S|S9mNi^maq6I3#ey~WBBNJ#9c*a2$9e6|g2JUfTjmILi)+n}R{LYONJmIM ze0Q0Y$-9}q6>e&!NH%cX(9VrDfBgK-^tylbxBaf<{C`)IlXv+1EnCOP(1RQ29bQs4 z=kKm(kvx56_1p9BZex1Ac<yrDm)|B@R2DsbZLF8{_2=ICDdB2&`q}S&uF3b`SNEAe zYLDMpHhIb2eS2iyTw1ke-WPek>uam*wyEs8v5oOa`S<jvs!X$+u0GmV`~2^<+_(N; zLOnWa_|Ld9?iW&H;7D4U@rlK8%1Mq@?q8?;p0)Vfx`{JNSM78SowNAR2kEa9T^p)g z&i~*2zU~^|ZtdOs?%rPi|JZsnfd|W4?M~YL`N5dmv2EF}MYB#nk9<`&<;>*XV>#0{ z?Av61uWAB=L2$^rC?CIu-2NrvT)$==x%BRC{==u;**z71UtD$ncD(-2`@;A3Kkl*f zvdm!dvN<7_yG4xqO{x~tdF|U(Yr0>qz23TU|J0ttQHR2|*WO5)yR(*0%|Unb*T4l# zmvkDoyyF%6zO#G9qaWu(63XM5)$Vn2&e`tf$e*(DMd<p2JtcKZ)pu3wYn|K5-70hQ zyS{*-P>#$Z+vM3Z%UG_)f7jRL)8bFxsCgvlNa1oj2BAk*uWi?CpX{WwW0NiO#-~NE z&QD74+R(%H>_u#h$>DvIHMbvhX-Jr}!PY}p;vx5R+nfBgS2B#45|qEYU*EsrTxh8p zGmFsCX+>;dQdZ1tYiIIlG+Zsqmo4b>s(%)_GW79E=86?sA&#FH-`u#=c7LaXjEh2I zus)0Xt<9hJ*4o$Kxby4#?c;YFXS)3Dc<|XkFV<x1@y8)O<=?*d&8usCAse$+M{B`X z2E+78=R;1<sA0L4&UJgs4Kw#J-ZBL)`}Cs=dqfkXvX6M@$F0Bo`mAu}**M)9KdcSH zKJzS;k~ro%Riop-;_YCDa>lIogk396Wr>tGefk>|azrx2=kEeNpWeg-;pU32{?I+< zljKrE>Q0CsInj7;mC!VI){cwZX{#Ik&#&hE@gc3{$q$=-87KZ7WBvPJc~t7-iu-SF z?NpVBbc{aw{Q2CFo}bg+9Q}SV{_KvpKK_dJaxTCATDo4ITs1%A!Nbme<xiz0U#qwH zYc%ji?O?asd?AJZ8yi~#N7dG_7xQPSTuNPIptO<wt)bA(vZ>YbqNNNw68rsiIjUQn z*9*H|vN;idY=Q74gT+~rJ&b!E{qq&=Sy24(dFR1x=Pln%Y^eCN$>#1wO;`DX)TgH= zSN?i_gJ1B5)OWtL^LdWv*^}OQKl=N2LD&4FK`VIlx?U6=4Ew<Qu(9#->nSI=PAcqZ zSjEG-Y0@p-rhlisLIe#CcrizcAFX?4Y~NbH_v<%ZyI(a{+7`jwOk9i4x4aHv?R1ep zXuMC=p+Qmdd#4NYNiGfB1-tj{JCy$KqWs^TzPcZNJe&Ww_wVWYufCfM8PrtyLL%g* zu3^b7T6|=Y)=kYH=S9~?9=vgCrImLA|Af_CXCjz)teAFIMLmtpx8_^mRS&L`h?PkX z6u6S#%T7PFsp@|$bMp0Xi`Y4)e_q_+p!Stz=Z(#8Rz3X3BiGljYZ%xxb=zN_YNO}h zEiFGYoVs#l-vj0wS^gVNJ@~EizAT{k+zW1%yBnrdSHG{e-?Vz$jrqUNM1L!YdUNSr zuCZTPTZY<XiR%W969muAs#+L&vA0a5u0S#SL`d!X*9ZP{OyRw;{~UvqtU>6an#x_< zUz8ue;TJL^IahT?i*bDlLx^i?cxdOz`b$?+|49p;U(+>>;b4a6geZ&5cWs+l4a2u` ze#|*K@yg#;ySCdr9HmSDy_xy#&6?LbCch_`Z?}o#zRhXiEcM>B_)CI;Sk2uwCO7Yy z#=^=vtK+}(-do+Z@~FbwGn-|uE)r4-vsSy+%`IhR@K*WUy}WIIrk-8*<DFB+ss%zP zJkl0LxL<Pnka9T1o++7gh0_zmZma%muQ26=^6J^&@6_F#EaX?}nAg?vEjdZ@=JLvz zmxpU?5*dVyr(9vQ;ots8HsAQ-`H%XojQL-De{1R3Z=7HA<L@)QZ@Kw@SZddBGbOw% zYvITY6b+kfzhOa!`pvEPb$Pk%%<peEp8u-MGJkfz$Be$sh5H%V&fS>yv$Ib0ZKC3j zj2n|z+)B2cKdbYevgG#Mv_n%>{)B2Cd7aBR{aN*%B0KBT{%bQl>Qs}SF?C&FvGPl> z%8@;gc|Kv~6~Tk&`DIGGRhc$aglW|}H90prOxER=SN^y~#kNCd*N)#d-DZla*G@Zs zzRZ2}%&qnNe!n~K9Q*&-(W$jBwfA3}^q=`yZQYN=&4Jyw?yh+ecj);HR*9(Uoo3mK z7}t7Ua_fvsRrz0ct@?NLrQMRz*Dhp9c1nE>x>r@%8d&`Od-=ED@&BK92-kgj-2e99 z!z;BRTn@`OJ>TQ?V#e(Md*&_Q(xJFyE8C83=@*yxe3~p`FxTJz#^cEn$|AFj#ma0d z^$u!yZsOi|E&ZKs!{^-iST2c<%!?}0H)igwIeBzf!0J`s{=M(*f5x1-Ft+(MpU#{c z#z{;km=up`EtuA{bh8@&RX#Dlc{<K3j2)yypK;$@_T^#sA#EeK>_u^X|Ia*fC|mF3 zzIv7Bu_bGlc87mtVx75Ac4@Romdt})GX1;!MVDOha+B4%mG8#7;L0WS-Mw;OmhU$Y z`FVar?P;a6lUMxkX0dpuzr5pOI=8LNFRA1^EfI~|3|)D;%UGGNh@^;aP)JzfWijDE z)IzmG1%e%636Cuvwr>pEn($`c%p>AQb(ckmAK-G-*fjIpo@GyZ8kreS@;<)svm)uu zydyCO6g>;0teU%Wms@B0Up!to=S5qgD&xcLZ_mEoS_Nt(Zx`>m;&dcGVv5GBiEeW{ z8IrUbHr|@0vV`^M&BiS!R=GHPig!!>jFi!xwJ)PYkU@Dh%OS7LN6J22v<fwTam{ca zTbMr6(LGFDtKtHl9N|ug{&L<rS3dcRTUh(+qpW|w?OC(HFY;xRSDYntp`!4b4-Nm4 zM3ythiYp&aJGb;5TO8w8g_i9crsr3k2vc1%qv(Kx)Yae(3F%o<M<iC*g?T#eKc-gn zwqrrnglS8!ygru|=G0+WKU1fn$7^0jL91p<zcx#?(&+{%R=#Y7^Bfh)VxO-i-MLW~ zoU{M-qW7OazVJNaxiOpZQ`h;ArtcP?{j>FA-Hr#9PA0yOidO_ZFurp@{w0S_%Qgv_ zmQSnM|3&O!=oC2PGS&Z3qM!&@g9EGiv(n}=Pp_JgkDVW8@BMm>`_G%JS53<ryKQf7 zexM`d{Q9cb-g>WX+kUA>yWe^FJZSxX?H`UEmzd7luKI8P=ODYp=kFiyI(z^7zk^*= zwdrI?HB(c){-VX{!CzIF?B5A;37t(z`C%NZw@vH9=0|yr(hstkr`Fv4x>(%Ip+_)O zC`(I5IViyH4d35W5xv4j?;HBUdv5)Ti+>+@@Ye@-f45ujlMHt?`|Y=VdHHDHagT~C zQ3-2wX5LEMQ)T39Jx6fUX7P(mq5)snjXa-N2L6<8iu=Cpru>@;`|qy%c}HlTx^?Wk zw~y7sb;1`}%-?w2o715s)VO=eDU){|qB2e1d)U6s{(Z}aQR1=3$pxxX-*&Of#RV2^ znC$f}iR-`_jf(D-thLP{bC+&VPnoN7(~7P4vD6<v&x6^b4aKPw-!{p;{k}=CS$oR2 z-oKko8x*(=a+=fUUa9uw(Ehgf{`(~fUXQH<e_VN1ZvT+;$dOYqtP|W9oL^tO`|bk! zKNV-niUOCdGLGKCp3J*SYoBK8x>LmqPQE?Fx8>5|ALVb2=l`;-&ft9c_jvu)GZ*e3 zn_4E2=<D^z%J0~dhN*R{HfgU6{B+h{^Ik+vtoo%nXBTZ%xoP#RtK{32^WXiR&riSf z-NVgk^JalM=LKt@v{Z&%`ekImzCiYY@9)2tzFof}v{C-ff5Cgnc~>_dovblup+GkG z)IU8><_9ZZS<X{zX&U{kbFu#oi3`sAzI#eXi+6q%zItwd_dPxC&kLNm^jb;|UYQZv zU@shS_KS1fvR5xRso4wVKDJHacvbi3m4;4zzS_~UFRs5=gtG@~ZOxhUw50ZQCwDnN z|J!WqSC1R=YOee}vTM%QDdLTmi)&`jP&Jr8QAYOTn`-&;N%BYdSK8ZKuQ0#4JN}RA z?YF{O|Kfk0vJd(cKjqJPt6&!8tSv5GWiiT=yOyvtO}r(3;7-@1eFY*9Hy?U$^iMHC z<}C}0P)x|Tr>B_@Z2kS){r9i%{fYg$FZb`azvUlyxBJxE8?HJ^FBmh${zQd_e`=pU zTh}B~W1hwart6h;W%`PXJOj7eO$uMExbr*9sjzLo3&sBOb()-?F7(3dfqIhUt?h|h zD?9FQvs#>fj8$B%f=|w>_s&V<>*3bc@opUfYTQ!)(tL|1iwETWtYd2G(EG&GUdMkU z=tJuCce5)rGSeeYaHu_A^f&D6yv`qn$Cl)IOue6!of54s-t$fAlHtj7d22WGt&Wn3 zU7gsMVrIPan<>XJT{-8A_m9qawZ?ASGC_-JyuP>pb^P3|C1p`C>qx>1A?en@MK|*E zyFIT6B%aQ_RP0;JAF`Fz;`53#%<J|iv?LyRtfRJ3)OQy9MXy`Ot!LGQGnZy<IJv_= zVS6!Cz?-*fsbUYrzlk;VEu6V9A!TQTL1&~$;A-99(>E-S{oK7Tu_iM=ZvEBQybK>^ z?e%!NcYzYymV5CDI>sA)W=Wo#d7OoL!g955hZJ)s3UJA=Kk~g;Dx`fo(?e|TZ;o$F z7SlK7EiYf1z*lgmuUq@#1_O(O>)9O|PJ5T+{Llz<ZP?;`;e1DzzRdY>SM}Axzk{6} zC9?juwypLv)>^Dr^uqRZ`to0otvW@7=NKrh<GS;bdun3o)At+Pm-MMhJPAD6wxZH; z<9ZPlo-4Di78!R*#=c-+V_n*+vBSRmroDn&^Vh814q`7fJu38B7bI87Nis@IdOXc$ zfz~b;HbK#Bw&$#mS9LXAjnvr1lNZvX`X=2a?n{h%x1i~ja*vqJhtfS;A77eSr1mUC z|M=I3JGBJYTn*x%vsSvkPqMqNQth;e=WJcK4;RW$N3Ogi;P>unx3tan?e}&aoL;le z=%DVq=f8NkJ@zi@cYSxVuAS@DFWWo;VOh(s4xgSq<FfxUz5cIV)3g0QPQN#Ec-mz9 zG9-j6F>i{6+S-LlqTE{(f{sjF<Nc<WYe$=%g}89?)st0D-LH?FdApQ-r8aL&`o@-H zPN_|DOkEshy^PLQMSpwt{xuTHtz12kRrYV)lKRcHPMpn?x;eP21SGS*q;3&7zDl`S zuII^@+Lu?arUpKkpmWT%u;zM`;L_yV<@#|s0WFnZzwC>>6}7LbCP(3b=ktA9irezs zZ+tR(Q1j)vhLoa-PtE@6cZ6l^Jhtl2Xp)X@uFJD!Ra&(rc(>9joyB$66&5{pnCmaf z5w+Qv_d}1-d40|8R{oyGZ~qEUXE<5%F5s%v+U>jxwr2+NEdMrJq$wq>w#@9D{Piu@ zIF_)5D%Z}{Uu6{JC~H4GM3wD<O4NTf;Wu-S1~i>DxXBr`Mbc%}RfpPHTV`rAA6($D z{{G4(d%p>;IqSxoTU+;1+&;bjo4Ea^-)EMvR6g)r(;LUD*Oi(YUR9sPvH0!U@ZP^w zic8EtO0l$st47Yye>a=C_?Z5-O$jp!9=C+fTl?nw6U&|7FK<gX%3F7Pal-41CUSuX z*Irn#lflLHwufCuSlz*YAO1aMtx{X!`+KK`ov;nV_k{SRtFmog|H;c`?ah4rY}@_! z@1;9z<D>*O<kt7;&XiK9s<iSgyBJg6vphy4VV2W{i<8Cgr+aO3D3@DeYb^S9Yv}aj zyK=w%-S4h5p)GsMqo<n|?&}SHGTps{A*!P{u~#_ysl)EoEIeBGyNi#PA4`evVZWev zWZxt{k5`LX^=tlJ@KF?KeX_*((w+V9qn`dxm;SKZ{nG!X_kV=$-nqBw#)o$Kd(12^ z^h1nO`>Lz^Wt_RJde<uWe5oq$Ui9yu2xsTF=??cwgLt@=<%;%x{lq5B`A*v5&)4<; z=Goq{-mR3Vv!-<}%RX(h`OT9mJiJ1TlNYXgnE2%<>$ZfXOX;5V=9}JMy7QK~&Mb4z zY}ZR`StPel+4^se$Dx$TCD}d`v?9}QylrK6oaL9C<$L&2j!TnZ#Du+bjTT;QZ(0+) zeg2oo^u{Gjfd=~uo$K?pZ#-YiZ_3|g`uF+XyH6Kwov}1?!3^Q^ZH10qkAfn@tS>rF zoXhI0c}w)hB(=Sw9RcwM2Q%xq#HPAkIvQbjB$jtYgxROPs|u1=9hmuC{B_k9y)`i> z5;T((g=S3ofBezgQr^wmUfpvNSB?r%n(4oxFuiH-v2PK-HgUzrCw(#e_Aldg3GduM zo5@bgI=9Q6UHDYc@U+kDM5d#EYxJ$<_%hPoh)maTKVaPPv88q6s@L*Qx7ud!t>e^Q zv_hcD=lr=0-nX1b{if<pdd)J$eEs#8kZG+2EutN}C+g{>&$hU}oBicFh5jAc4*TPR z{%ZuJn19pT6QnWaiJxt2kj)Kdo?j8IvoB;ByeUty%XOQ5jz48(*jK(vhppM6t;+81 zmb+f*tKDAXwP8_Y<leqlnoWvq%$^~Ke%35=)GA@&+?&BYWlDS6mbpb{+qk|z{lm3` z^_9}szA4*vj#ve*ZfJCEs?u%fl3CNrEMySKo#VQ~xZdy7`oNFpXUkUao$dUg&{S<# zu@oQ6tIbUtpB_lyf2zQ`^6ji=FE{?|TVa>)!tBd)@2^}}la9o1(~RRjapo)HUVde% z7U-4uE|mTJSovE|ZC%e;1O4raJH&hCxGu2u9bFmgzEOhbs@^lVx4&w)SzWuEu_rpo zR3=X0MZw17ryoyVahS!5<4?yjiAA1vRk{pvM+!pwo+YFN8w4B-6Jrp*YG+|^;lV1c zlSN8z_kQzJ%&*Tg6EQdx=TZ=|g^h8owxeg@QI09m=Uols=jSx`Y8`RaWp(D>S6&@= z{P+9+y7!*P|NsAAwyH$%SX|4u@KE)(*z!-DwyT%Ks0Zqt+`$pj?s)$}6t7UTQv>_b zyV@-8?wvoeQo7N{^?~O^lOV&TB6D3`#RUXJ4^H*7I;o~&ar@~br$}YTCf6-~Dkff0 z1v7bq4m5mJe=HKSe%h7?7mpsDcG>yKB^!Qk7PG9^jtjPDpDuFPls$W!@_akD8Rf-$ zx4+HfKk&w+Fy?0Er|e}~wvoJR<kp<5al4u*vA$_-?)1y<cbw&7*ydh!3{*L@L_2x@ zneSo_L1)6!zV5nvT$N?38+YJ35h<Y?36HbH#Y1OqTxQMo;Y723z)b$V>}tFh>mD>3 z=O(S6Rh@Kmwc*=x!=R5T+P>lIcPzVjyQ^<c-5LdZ^R)Eq3>AO=nuq7c=T<+hx4Y|T zy^uMH&%@7kzVLHBhgh`}cf6PEy);#0qYsbI%sVST%~RFjVD#j#O`dW&>G;pv-}L|e z*!TBWEptWPoqeA;F5a-4y(jJGTF-j94bO6>8YC-tm;T7w_+EIK_y%*cRXYr=s{`%x z7s-3%+^n)Q>yN(H{Dqw<=&Tsu%UfoT*UD~te`DF64a;BN7C1XQ@a?Ipx|nPm<$yxY z8u2YATZQj&h4($)VQHuMQ0z1V_ldwlqY9>vAy0daqfC|WX>PSkeY`L7@7nLLcDL@` z9=q(zt=iJo>X#l2PwX^aOmEtixv8f+=U3#%?4k#+4!Jb_PF*l}lRHzm>7}VVZ(f_f zar$F%1KkIk^8Meu%fI#Q-vznz_G#-T?$Nq2>7B8pmggEa;Txjqi+*u991-HTim!fr z<Kb5Mxt~uc@8pPOZc09qq{;N>sD2$^&KhZse_K!ef6LhQOup{Mf$96!O?1%ND{x8p zzm%?@7u)JTJzg8HXs=4~<EnW*i}B^m2TAOX2d^Icey{F#aK*Im-_?H~yIyx+PP(Jg z>g>0F)%RV0H{4`?m%QWG%d(ulAJr=t-CTTOQ@+DZzt;PlW%DPS-LPvHW8~P;8+*OI zRVrQ3mP_aB>)A7|Jghxlw_j6@)n)a?Z(Osl<gUz|w_ANO_Y9eo(*X+8eVQ1Ad~-Vw zKYPx@)AVF5yL^Po=8~P!o45q4cPiYQc|FuOJC4z;@Q=FVGghCqdyk&5XyV_dwkfoS znL*}@;U2ShTbCGi+1xao6rr@y^Gnqh^|d8`o_@OEbA0Db)y&NwgdeWwm=|BTe%Cg} zEn??3ZDow(nBySxQzx_i#_N=n%)o&2(UVMCI0_kRX5SC4p4RMdRQO@f+}=mOg8$9w zcKIfv>@2mokEza5=!#Rr`LKG&TISGub5&pbJCw+{<;DtEU8eZ~@2@{mRQv0CJ|c%_ z@iWHb9MaLN&8+0_ee0fhocn-E6AQ~vT{j7~qA8qbj4y~VhrA8R;S}?T>n{EFarX7> zuT{(pd(!mJIF&u#E)d(Z;O@$d2MIebe=2^#I4Ri9_C`bm?~2Nc`&B!FZrtWxZkfj+ zwBxasNrG6C-^>+r&l|CC>QGs~NN9rVUwz@#uhy|2VA}5TVuFa#L#40hLV8abRU{r+ zQ6<e(v!ZITi?WLNWUgspZ|pPLth6u7C~p^hF~h=Z!>i9W2P9gh^g~?(zNv|YeB8#x zGNt4TgKlx|g=$x(H${Q{iR(Ega6a?U_;A&->ZxDV>J>q{vb@h~wRRk<N!)){FvPoL z=E9}PAx_2ujPfhuxCLCePHnhY9JtioNjG$=@Pbp}G2yJPEKwfD?xG7i>dd<o85>f& z=j}*vTd?c>`AxCS;fvMQTV>b8-VtxQu=Lyghjz1do+%dZ{rlYY;4wGZ-`}e?q_5En zO4)Q{6@&kT)6KL0Cbplyo44JItNhrjR8y<8;8gWr3zJpiI%B5#o!i1En=8f|@VEKE z2J<yW{~x%^Z*eK!B>(@3^X}chBdSwE8a60&`0~wKvRR8&D3Mvie3ezsoy+%v+c&Fj zR9P-oRb>9Ur%GsPmgMT^j2xYHy{5BD)b}l`Ugw<nK4a<(rA-rJwjRq)nix<SwAz84 z(<OLaP=UV{pXc8d?=Jj(eLGAxC*iuy{HZe524xQ<8-Gliw{T)vhF8!e7UqrOdv8s? zQT^_gr2lbs>-m1)YCM>iSF5ZJx~KNqO<`iV+?_c)X8qYwvf=QXnFULQ?#hUIcX)}Z zzP%cz+vA!xIg~@qDaCn%hQ*rnEi0@<-UnZQ$-LLA?P$n(?R()2>3hFq_j4(@UFvLX zRneHacB20#hQ$oez7@{s+~!~szj`bC-8CisR_j^IEb}?)R5IIk^g68O6tdqc`DKab z`l~^q7dsZFF&$2mO*r<$hNUd}jU?NysR!qNS6MB4H1ic-l+RP!ExV_bw8XDC$kiAb zwd46;;lh7v?;<bTd|Q#G*1P>xt~J-DgB_f*jR6tyM+}r=XG~R#|Gru6lHij?P1dcl zf8RWNdd+U@-#LHR|9d=ttNoA3?q~M;zu2f3Ry|`+<Jl$OT+FuJ4XMeyWw!eH@2igA zHUD&&luVdn@Z;!;b*_ySllUA34P07Q{XHXE_x{qKlTY(9zvXTDdzCL~&C!+L^P*#p z6mmLxs-3&DIQrIvUYDpq$-O1NIntyZnr7@sV2ClO+J5)=+h?-B?f=Tx-L(7LeRJQh z|8w7*f0p)tnfydeH3iYPkqNV6ew5Cs_r21=a(mG#_4<`%!cDV8JDIg-9dmJ8l(l;P z9K*V=cgyYj=ly?uJNx&i{C~{5_uWjsUGpQb+AS+s<$};_o&R%v_C@`6pTDKAVe&!2 z?v1ZvKCd*ieB{p(k*L<CbgfF_=4bmY^LOvB-*o@?E%`0>?+vFu+xxv<;lcAe*UvmV z{%z{sv#XAM>*P2+@#=5Ksh3(sBfG3msd2t}xKsQ<SElYSxqb7eI`H3}cQJj%^gEBY zu$iUw-@f&)w09}1mG|^#eb1+zi5E#O5DMh@c`#kvXvKlL!V4S+RBjubRx&UxYz_X= zaHRT4mZ4+Hr1=?#bygi~OFu7h;NY9Zw`5k#ncp^<iy<w?dGdU*&l}2WRnpVWCT%+P zU6)D!$UjBpi48`_?Yl(TCtOVKtbUiw<;6Kc?8A!c2Qv$+KONb;frVL3O?ktr^Tn2z zuQ_dAGWY6E+w6@gVc#-0N9O6@@z>8j9e%X3r_(C^R#Nw=Kf>P&>*Q9mK6d_CY;Y(c zSfpKQzOAX^lY<Ll9S%luy9r6GVEOR4T=4jhn{5_fa~M~tZcW*6;ZS<~Vo_z*Z10b9 zZ@%Q@BzM$GAMm;+#s1^>v#-1M++$!^f0Nt7?3nIZo?q-?FTK5MKH03i5x(??op#-{ z$t`DjH%f<b&0s&7U?+ajF?F)r73QB;=G?oqDl~3o`G&@>&3>XG4|=pB(~b)Z6;Gag z;rwcQ;i&;N&n`_YU{gP6ksxo?`fO9iUQy2cdwoKRArqoJFRx!^Q?;Slu-&29SV&SU zIA8FTWZHu`i32H;vKMEss!~|(X5`2s=v6gy?`Au8*&HUR%>7|A);Y2B#w_(R&}U*( z3Ay-QvSZZ@=^`Iht$GFxH|5ZIO^qwc6u(E$5U`M5#47w~=H&xkF&9gPZ)6EB=xoYz z&+m50SY&?oz4+ptDt74$pRJM&JIQl$#XD8j=*aI&pQyKP7WDPuu!-gnvzmSCUft`r z9LH4bXUn+8nVZg;RV9(#G1+y~zOB>s^FQubx1R6En!Ep6-*&y0xs!dy_le)u`BNu| zb+KqaecrgBVfm^fed6uEOW7Lge?2}dd@JMKJGrahr}xyZy~yU28Y{MOiFIOBbim^@ zZqctH&Z?E^3%h2UZ0cdHV>I<X-?G-ayr*)_p1Kv?-S?KCQd#+t=YWQ3fkW!9?bQkO ztG#9@F+Tix$e!)(&m%3iRrd@1=Bi$~$301O#k{cO-R_2A&LS5k`Zd}1ye^R5Drs=r zu2nkI@%iP)D_Kvy>3tJwwRI<pLdOHOC>`PB0ixm!pZo7^-&+^RaFtb1v_K<p%ZvHn zx&GN?950I9dEWIPZ`G#lS4FmE6?|DTsbB%i<O6fF*6fRUea2_?ii9_YTiDld-K~8x zpMi0c&Wtx#jJ_G4Y4{eo;F<mI4|5#8J4y+%m?|sCuHF7=hpz7&<N4AKuaYLq%+<|W zcEHG}euhrNByMRPhfQ&>_ibNsO4;$Xvdl~I6M06eQ>*6Z9iDk2@XQ6tw6{Kfd(_ud zE?awOC!4~Y9$}fR?~FG68^gAUpInsM_5GyQ^t1xz0_BFI8)KZm^F}USo4_n{K+mw- z>YVGFkK62T-K;CEN&WvS`l#RZ`CH0sQ$o4E)CS!OUcOOi#*=#!PE4zRzbO0I<_j}6 z?3$N)V}@$x`Qx+vc5KtKZ%g4l>G~@Db5Wkd0oUIqlMcD+=qwJ1-ZUdUevR-VgYY>` ziGdfF>i5r=-L3y*OEdQkW4mvq8UN0?W@dY5Oy=hFySQBE<FzH*x?DZ;*n>A;dz~Y* z*Ykn4YyI}yu?>G5&)++7Onjfc*@2C+x99Ht{7!$%lm7|k+oOM93jfy_8+(7jiys%= z%Z220#B|n6an|q2+QhK=#qCEj92txOfouC;AGz7($={P5=HOH3-?_9qdS6YUgHLgJ z{l@%1lkK;({}#Swa<BS5y9ghPa=!n8<IA^hNw*JwIjQ23sjt_8C4BF7EHgd@SgSDP zyjD7}yR<WKuJ5rWyH4fJaPau{c5zf+brOHgo#xwZF;X*jTQaPf#r}Qnzv_4Pb87`2 zZSlD#&~72RFDO{SUOF>tRnhTX-<Wf*aBvt*xy3oJ=bcELpZ4ZO^IIogzp%9+<+Ar2 z;hQ&3iTO4$TstqsEnMALY!~QIQn8`_3Rk<B^R4jfYadkeZ8`2)U7k=Ks1<(Abm4~W zAz$C;EN;G*eod}(-v5rdFO@k}!rx^6db7mX;=!Htj)uN7la;?s>f<?Puap^Ia`vjp z^eD5%r|wH7Pn0qA*(8zrHt8rs>*gB@Nn#~xuZ&K=>$$dd{etMD8!tsXZM^z-)yC;L zi6V=YCi1owhnm~6Im+<1bxPjcdWpjzGwkRVvHW13XTE83{yqCzwHI72p1xRrWl2$p zm%B`febu@g@3vB7PU-NU@-us;2YfX9BctWAxhF@gH$UrKZhfo5)!(n4Uv@e5EbU;& z?xI;2iup}0tgc9%c=CKe#CHez90va)bv8EFwpq4&xh^pMJ$%+cA&IrGt!qnA(DS=5 zruu0|Ef6(mmRr|yZE~vltBa>^_j;b$D(1}e_hxIY_vbb9OxR{s`e<)G$2B>wJYvH_ z=6A*OQf$oMrth`tQ8+z$(&BZ=Tl5YDpX~8?mvZ;T_J+j5vX<4l=@-8g1uZRoQaYu3 z)jXpM7sYpO5b`vuU8FH<weN1Giidw2m%U&0jzjG!i_cY8^Ly(S)Xn5n(1}w2c*(+S zdrKSNJXx8rw53-BUxzK5S|4K6w<cw|t*E0{bntuKeH)|>evPeqkUNo~@Vn$~fjwF4 z_St0Wi>L~()V@``pD7|Be_OTWd)t36{f#w#ocnDZP~ZIQbazP8imrP9p83tpAIpFE ze3i;_ul{<n{`tqosi)=teF%+qwoJ26-sjhOwONGooQvT66?-O}Iyp^<!%xrYvY;q0 z!{$#Fxs{*h=gcn-o4Ws%mEpeLtS>(Q$`|FvS#X_d-sI%9exBO@_K&f%F5f$-&giP? z^hoy2p$8>tHkWn3rR|jY9r<{(X#@Mw<DI(x=QFAq^8%Kv=ynWS$2rM2yuIzvrzXMK zr=CUZS+|I_YJ*Ll=$;g|PQGU@_xJFw7CZFl)vMgO^Omf#mt*KiQPJ<eQSKZ){b=YL z+ZB%`1fw%=xS4U89dfLGpmb`(+AVJqnmi=BI!_9J-`V1<`DCA<_o?qvtb0A~UYTba zs3WP}E$Ar5@;f3~X6dBcQNQkgv@bEaJAt#&kB_ZpYyUgttup8RzFnDmdwKi(0{tm7 zmR%J3{nJCib*;7Dkr$U0d=B0+y6^3L@%vZd^Q(_|{WM-&x+<GDs$?PWflqH4LN=(L zefxao0skbU2KlHi*Lb~yn_E^XNf<8M`6j~n?QXA)H{@!pC)`|@UR~PVa8vu!QT2cy zKMXtDXCBj1s?AH+*3iAMEO1jpT{b7{qVQ|(FRq5|o%=7^+HAMg_S$_FQ_tF2YVT=j zh<$kLa$HVgus*;2wT%G@uk8xdey|&a=*SpVY^y4pB@`5@>b;Qr!x_J&p3l7=<XpYs zzkUC{cL{SvLlZdJl=vdvF-Bb#n7r~Kzvc$7X;+WDW!sR`xc2{#kN$7}fBgUPVw-)g z{Mq}PF8|!E8@{($_vG36mQUs${3Dp1rJ}t=T;xOKaz3r{hewO1&G&c9<-J+{{-gWG zBz3i!x4-r7{eATO?S~t(MgM32zLft*ysWtR^0c3qwEpv7Q54&7`RMP2U@pe4H)RRk za#cOEV!gIo$Hb;xVq_4WuE*pl^tYz|!Y*~jtIoUQuP-QE^XcEegLThW*I%e<x%{tt z@AtXyg|2LxdQ#}|lWC`KvAKx#Z0DKFV7F72`SHTL-!C1gUAo0frj)N*y6L3d$_izH zYv&bX+^qc{KNOq3-{eBZ$7{|jp5;&6k@)4+zxUgsjveg#%Kr96&4q7ODu=ndZ0<N+ zJon`K!c`Uf`&FX0_ZQS89m)`?W+^^ss@ju&=lDOdAL{k?zQzT!CuoYiS~My1y{^_d zg<6Ff=M)YHMEZ5fAL$ZMTFV~EBF1;jY|-RN@7LUN`F-YD^4p@@cHcM`FbMzZd^BJA zyhh7Ar;frfoAiFSQ@?JmIwx~$-uEec8|i`KbnsoXfXYQIGGv6l=R?KYHmTKR6+ z8L`>@&Ht@$AM&)tZ1a3x+5CLAd(%r6p%?nr3*@6LX4Ws?kfQ4Fyk9t>T;-wG3C;sc zUOa1x*yVNQmizI(+dK<+H?lp--styaVHUe~h)suCcgDp7_S?mB`lS|pRoKhrqqZVL z_{_aoj|_98S>Ef_e6FgE%V%h~{zg<(_kuxT$Bpg5?wz$MiY?PpLWGVne|@FV<>AvK z;92=u>BfSyD`HI#_tY(D(vmse7$(7XZl3If6H^SjLXW9$Oy8ek8L)m&=O;h+RdwIA zQg*YQ)%c~*`>1Z-0;LUs4<c_Ko?8<$-TL!14;{;@B5vLnK8kul_f}`T@Ukj?my~G` zZO0aHB`U1L$KgcAl388<md|{Yn9%LEXNh;HO~93Fnp0C29udiz8Nn*+(f?WU3hS0t zy%(aso|blB*LY~|mFxZ0Hx^0tTw~kfFA}()OEA{vkHG1bYrZAj5nh>FvH#Yj#kJM{ zKleTGxbSZ7(FdaX@An>7egDI5LC<8lu&c_xEGo_>Jd5=C5)_`VyJKE(X;w@F*9<1k z5MF;SBhQ1W{nIm2riSd1a&Spi3T?XDFtJGdUH;~;H<xaG6&Q8k=Z}C5>n)omoo{kf zZ9O$<m9yGHorU6D55n0TSeA($W!t=OJM$)mPwVABJXqT@>Cc%3+l(R{?Coc$q<0;C znD{g2-P*c;I$!RuFKIu&?(LteCuJW`oNBvYY=ZhZ8|Mp2D=OA8w5a5CG6elrtC~{S zYB<|k$YOcwZVmY&@4$~6LOd@Uo8@eeOyb?b!Do?h=LWN@OS;<kH3vlgeqVBGsvF0{ z-uE*Y6y+BmcE2JQ^6`+vgj_Cbwj7N~ZU&pf#DCl|KbEP^*`Ts(VPoXGp4v@$`FR3! zbQf^M+}J)(GeT^tTd>pl-Pz|?hVFM@<*!<sxn|k<j&(^19eW$Odg3pgSyg)1^E2br zJ>2sdSDjjR>g*NfZ!Im|>6|(%HwCuptvI>FHz@po{pT|ccja$fz1DVoW`tYqhN(?j zb0-|ByjXKiW^Ooxk4jj`0kuGRvm>j@JZu&gZ%kxr<kS(r6}@3ufU9-VS_Xv_)rv*! zLM3(|syz;wB`xM?D-!*2#BhRkgrb^@Qo&JA1J)|#ni<vsC&RCP=ulYw=f*bmwBn`j zI_7V^GwFY1sAWx6>Q+I|ZNC-d*H#7oFHve>_#m<Es*c-6%LEhM@(s;10vfaLM{KD% zz-Mg`nk>{f$#wbt=_(U475Cm37X5K*;sYUvAB$41_Ao7E{1x!H!S3Sqxtz7>3|~(z zj@;l;@lRNyur?=7TtIfl6#Xd6{rA@_klUyBtL5ir0lm-B+0{vzowrl}P5k?!#AWKe zqyKBB%x?aFxa@TCrEgwxdKxA-Hl;eHILfd0TIA1kbw<vS62=Y5Voj-`Ws|p69xuM} zZBzHl+J|%FH#A@Vm;deC)AfH=#qQtXru6CIYW5X>*>B#l+OhD`4k1A!ewL1gd3p=Z z%wxQ8F^KiR6wfkw!5PhxoB#3c@MmWI|7Whe+`G5s|6kf?PyIjNWP-}=-}fu`ujP!i zsqwSE(XcB+&E`w%x`K5a^ES4w=Dyi~-A6*d=V{P|zvXY`F0S^QCLSrfETwPJ<{2jh z-U#%wE?KcZyY6>p6^q65w^94}i#}hU|9j{8+o93-^Z)*=KGt$M^Y!<NeQ`SyXHR^@ zs#0-%ThRB%G9KGqPI$3?t=*(jt7Km<xj4OiSNP_JmV!L7WBwUeckTH5T})hlXJzu1 z!{Yy*EA9M|bMaMVXTa(Q$HLeyxn-wSZEI7xrm1|j+bnpS!0n@3`Kz<!RU2z=2xs+g zbSyl~eBQ^vsmmd2<=5cp2cn-pi~Go)To#u7VA+8*!;{PZA5Pc(<f*ry!)$Rz`KRis zVj-P@J6Y4k9Bw(y=ggJntiAle?Lkm$u4;7kKl6l!F!|W-^pnqfV|(RiR-T_~H)sFU zo&KL0lXd?_)jsNK=4Y{4;oo}w#r&0J{vu3eUhkIXv)-PzmRr?HqM)%}S>e?4&cfSu zYy!^vD);)WH)lBT`kRzC^KB!|hf|sbf6wOH+uS;7_xas^&p8=6Cf@M4r`3DbY1fSZ zG4p=zUV1IA<-wbq+_Kw_ig$CJG@8aB6mpmUh`y&o=7X3QdCPkaGQMn__{aF?hf`Cm z7p~g3?S~EvSF4ESp8q-v9QtIY=pQk?7#@~zKp-USC|BZ*z?<<Uzpd4_pQ|nrW1b|s z_M=nt^eH9F&Yod7cCgLmmC}UrFO}Y&(Qc9tI=lC5ebA7+(9ia#%Xx`MrlDmQkH1|j zeVvK9OKYF<+}1+5&CDh_k1uo_Q<0i3Dw;j{=oZ#B?{8l3VASGn*_Yq6?o5ixSGivt z3akIkY5Df+x5kDqElVfd475&m{>^l|v$#AtC+3CynpICOR$Cf*YBP1Vty<#1r;~kb zi%8zWsC_yTtkX^Gjy=Ei??*F#YkKA<M}M&$)3d((D|cU+KKYTt(KtWbj1!AmuKg>$ zls@^HsqzLHagObg9Y=X>yzlUHm8sfrrt#@D1v5_4V?H>A-Mralw~glIAMPBb=MIVp z?pVI>;fk=&otiK2O*nSukjETHM&p^U&tL0b<msh+UF>6ih-*mc$u+0eA8NAlUy!@1 zYT}`n?()@>d<|KJd}dXpE;3+XxVp*Z{-PI$o9p;gZ_i{1>-yIJLUv8X?|>qYSxyg% z`zmXr12X1j9*#V8>^a*lp5ql!3=W}6-hQ?&`)jsIbe}Y}p1snQVZP!kgKy6HTPGSM zgy+a{&QWDu$nnggX(DIt%io>f<*U0B*teL!y5{tKk(NPmw8f5u`)Z!=T|GC4OpDxF zlNauLfKj;2-^NnU!1(1C<Ckwk9e;kg?q<7yZ&ldY`nGq6*QpoG2})vEbwg^eYtxxm z>s<a=&ApzY-+P`jq$2sya={+$r_pakggzzn@42CKK4fuae~|n4S4s>K|Bu{UwxVYB zR9&}hrJho;lQt`+E{OQC=0d~6DcnsOdf!+NX&=iy#^Drt_0I8BSu3r5T9FCej{Ya+ zZ#3Q^!uoBt!UeW%5}Z4aRya5Ml}-q>vfu2UR;#vi<J>IKBU9uhW_ld0$;;csGHsrE z(-l=gWxc0yvAl1Ex!&|KrPTJm&vg_1<y2Z`6JCGqd&*0PuhlunE19L|u8xxPGFbD% zIq1v3N3+^YuW1OCdhcQD`>|SVaoX`Sr}iiFhMR|fTe|+wVK$~ax9&J>>yLUWpB%6I zeb4;-=(WwB30Ei9y7w&L%Fw@7{ZX+f{LAm=uisjw_Qkzld7r=Z&%(XS`+pS|e=PW) z694~}{r2|bljrt{SO4F={)E>C^*Pm>%%;U@s@2|_>6YGj_}FGvgA(pAK_RO}W;MSy z{@?pxf?jR?#FJZvoAXz9z3&umVmMF`vSj|t;*Q*7IX}M11^@p1_xpdI`CE1RnI6hl z=_I{c>pwrkz3FkLd?j<>v0IZ$*xS~0WIl;9*~=cgpqqK3m@ubV(zkrU`z*5=-sUKG zoA}6`y|L+mLuZTK>sS6S7jKT4x+UJpCZNHiccp5k!0Rrn$PLmj??vn^zdNrrN;Z>K zdT!tpYl{@C=jtNyCvNm~GI}QPxZ1^vXQz5!^lKK~V3WnWIM>1MNMy>#8tupC;x~>~ z$9?-^&k$U8EmGc7S9Z~#%O}@<^nUfvH~#h8+I6B%0$qhS?^$(hX_?nkQ<U%MB-Hr6 z@?m4cOD08!4J=O%pLCd$Vt-@-k8j&7k-U%pGA><zZEC2rAUHsh|M5h=sO9GCuRjA# z-=B@^+n0JV=aO4-_iRDk6&F^yYd^cP+wj;-m8Z8Ri}vMtitxG^xk_1HNr=6;Ysblu z*8GK!9Ue_o-SxEd^cfccD`w-+2gzT;KD}i5kSfFy^<u}x=-0<mE|{MFsr0S<{Hw;( z*WCHnK7KNxAoIyg>ww7#0W3c>ncR<5EOBb`edF04y!7rt9jVu$nrY9k&SCBJXWVOX zfNjRNIU-kd+#Fr_53HZzv*Up9DjT)tDz^{!xKFN{mmi(*EcxuIpO=_L7j5H?WL)NO zb+zWQS5{Gs5(X1JUoto|3rw2R!612I%`cr-%}h+|dGb|MmJ}9yGQL)751qG_eSxoY zr%F{2duZlbb&=XTeo`W9Hbh;j{=)PoVv>yAeAVOTKbd^JmMva2X(#){1!sMv3NxGU zb#uC0jnIF?>)#WgE4QPpwnXCllRYa;9rw;W&m5K4QQBYFZNt7{p0)C3hNT|Q9?UWf zcv>5-I{8Om_)EcxUZ&#~Rk~_YALf~*ES(a0E~=AB&wMevVD{$;FB(3^>|8R>C+}9e zuHnD45tU2wpa0lCPviG*rk?OkO-t&V6OK;qTe$c5+3wY4Tl&6Lod1{8w@N2!5$gdV z*OycO@bj?D6!~4f>egDpay_+nFV~>eTv5&{5>uvlh_kM?T-E3FQ0al!n_4xF3+u{- z91L<wxB33oDwHqV`s)hw(F3b(0?ufCnC{nX#{Kl=s#=E&>ofwMaJXFXp15UW5_{BY zhrRcfEos;j9=&vS;;OF3dv8LwC@m9KIxjiJS2}-z^uxEptJ9i))%PkNQus0R%K6^@ z%QN?ySZ}qR*wPbuYT|_U5A&+l1oGZ5;<x73j#4YgbDiw^_4T5LNqc`keN=sX^(yZ7 zlAL$vrOTYxx#gj?deMzy@i`wQ_*<{d^s5$2c2Fv~cW6?`LBH69F0F^lQWiU8obGwk z8hNn%&zdbRCblgO$2e~rooCj#$JoNwt>b#>xz^LO?v1LGlJx$znQd^huiql+%ap7Z zx?<*x<TLXHA1s;IyX;~@{6=x{H`7;zadT(=y_fVvFCsbNM&+Z8>6?xnPMe!3`qqmv zWXIgV`F6)1sD2Y#TrMLlAmT9n#YX?VT(@$!y6oK{$9>*%o#`9%$$AmH8`p^BSDz4j zp8c?T0oTi5|ESV!IWwlrwcB<#k=_3Lhk}<U`D-R^FFvq6Cxwf3!_HjRT$@Q6y}3v3 z&0;*V|8wj7&425X!>?C=`D6X|zV<))oe$=h)N?Q$U3tZhQ@U4o<&L9MwnS{HezEgf z>-QU5-Lvjzn*=iUt-1fbY{T@kZG30r8o#~I`d{w%JOAYW-}Yg*Z@Dh$ds8cJ_POPC z;CUOhjuR|ei7|Tp$2$3>W7B&cb$=87x!6iuu+O5=j&Eb%_A9B!T>O6Xe^agvKNcA` z;l<oHD{bxXbN{nR>z7Rs7VQ>fe3*Xl&adKK$F|Hp`%e6p)gQ0wXZN>V{<%N*``)KN zw<d&L*cQ^6w`uC7^=~yUp1q(H5N};|ft!ml<Gpi?LFtFy<X0)&6Fa#7a6N0RdiwK0 zjZk~{6}wY>p|;Juw*#FI-glWBUOlOPf5IE%tqk+tbBl$~uxJkCsP^5^v+vKMzrGH0 z*YVbdZ1`$tx%z?6uCvyg9%`rloR=C~yx(d|WY@%97u2h-&I_r#b!JjTLzArI?64bY zM~gDo{+YZ}_1csMnOhm6T4Gs2k?Gu0wG~`xY0=xcdDgz^`{Va?R^eOI!emYXhqb<& zR_}OMwyyn~?F*lVwbMnPq`Y1<_g%GK=f~REdz;MHUw;KEB=5$l{#Uy4FFIiV?z_qY z-wItWC$oK>y5&z(URl_tu2luh%zJ%{@7aAhzTez+Yw5ym7iO~6&f9!$<^MP*`>EE4 zf>v(pZ@B5opx${{u`O}Z6WiLYvG*_BOV|~lJM~IA>-<p8$TWwCeuZ~rXU)}-`1q}) zs`d3(t!obsxb--7r<iCnxbjR-@i>{IaJW)UV6O&;hxCP*?5@f+obO*}o1R~!;du6{ z$xF?R@jR?2&OEsL|1IaX)eF*$<Sg#n-cGx-^@kqw$I|8HwOcoyeWE<&#^kojeYHXk zjKN8Fyb8Flo^2{@GC1*hLEJ|V4cG2(1(}ITQytvbNW5=ZP;)bB?&MV-&dh<!GPf<* zpsuoR(Y>2G><79eR_|Nm^Jw4Uj%+5TIqQ$KR&6y+yBTKnN@{A;sU!9>xxHS;6plY( z5Xe{{^wg36!vU{`W*a}_Xcex<Q=QirY<-~I$nYUy$+yoO6TTjb+x{Z>*!5<{NBSWJ z5-i6yzjDt|{HxEhV8c2~j`@sbAME#}_w;pXnQs!%e6DuMb)&v-Fz+U&tM@9RLPalE zS4?;`OKPTq@O-WFw+yx<6qjd9zdtxTX5r4et-(JWczLGSA7e1|P?;M4sL*ZJo3ibj zUpqUgUJ%Z{zN^8lWB#t0*W>oAzps6Cb5yE}_%^BY7biF<&is5a$<A5!kQ4v0C9T(+ zY-evx`ys2gdfo;V&K#u&-QQ*@F(`DpHvjI>^4e0A;bwSE_ki%$iXR-BUp!YmdgU3k zdw-!+bkCD`>#X;F*+)H<H)?QS{3d$j+Pt&hjwR1xIq))0Xytsx4Ize4Qw+5}73Y~U zYG-a_Xm}VWy?uM`>MiF>r@lR2eM{be^-G*ZeRQA)s~p3ZgrJupUyA133O{<}!e>>F z=`3}oCmt7cf1Cg2%}Ta;*G|X!t2iD%&%(_)!E?>!<E_*BXSl2~zxn;x6Xi{-ZgKgn zWwF|Q@wjJ|$!%T+i&aw>mKAP_Fy9*Xkx}ty?@H#q^^#6C>aADj2%pp1du`J_CCNom zUtKFNNNy<!W}U&aN~xeDy(dS;{;&JuMSm9Nz71^1xUJmzK7O~-j|E-3zb(rA)VAtZ zO|)wMCIOCyk2fzFFdh&+Xc)=uS9or>^pm}&mZu#`BJbR1JSoVqT~+AjUe@Tw2aEsz z<EuO4_@6a5ihon}rS_M5ZyDbVkw{(bsdLvXP4$rHzwjx^J*ivsKCgPQ>z-Lq=-HOg zob0-)UG2RkZnquno^A_0dj9gcbNxBajSF%W7fg&+HBV<^)LRri&(5fC18>^2hxgYx ze>%5&{^q;?60UDI|MvR-?)~?*{?9w3`|aX!f9<#Tzefh~1ZTdU+$FKH-@`amXX**z zTJudwOv#BcQ!Z-l6f`zk_#^RrX-ZA_mid*1)vXl||Gm4n@88w@Ei69{o;zDs|J>I9 z-*Hn<|D;xj>Vs>t*K;gUVRq}B|L@(uyqT5xstzpI0|H*{j^qAo6z!|$#m8F4<*+=y zdO`lmHCq;2^}Ed580={D&f!|~)qBZynw2&Zw}p<Tt$9`Kemdf_{OtLg&etZU*Z+JT zpTTfo{wcoT7_+ZRt<A3M7EV0!&En#*&|6w!@@#WT@2jhturiort`e4uS#eK0(>F=! zfLmU!Xr7GV<=FVQIoogFxP19&UwU7SUhEIU8$4Ef5_s}-TV74La_*C9!rGiI<!STY zFYVCPbW>uu;(ObEVgAGEr?)9@Q<XTsapl=995F>7I13lW?>NS<HZL$kaLLv0JAV}4 z|19PcXgJqLO8UZ6fnaaewYLs#4K$1q;Y#Cf3#-qoxStTQqV?o$7aKi?>O;bBU#<B# z*OQ0c=lL$B35pwf&ubo#jw{b=I8z{T(j=oU<D1|^(?2Iw<P9eHHi=0d$pjC0P6cma zG7NmgSah`7obRxafuJT2+l$ZI&l}v7#FSGeX@5U|g)yLrN&Usg8)vetOBe+hawGQ2 zoie@_*i(Orl{GYQXNttF)_vzS&KzEFeX>BGcCx+nsw0cSgL=A@SsYjAvn_G?U-8A( z@+kk>g)XxePKgcO+qtS$TK9iJO-hvTy|k83J6f5gg1&U{rxh9P2w8tibYH)J*n+0L z`g3IxmCo|n&UO1ZgY{2JkTpL$+n&pjIy_q=zuer~%6<4rS>rOR2$mOL*Nc7Lrp$0~ z^@dAbraC<5#HZSKvxi9~M!4RzHC_Je!m7Rh)I+{1ul)8}X3CRQO6ONCtiN_Z!6u}3 zbIacaJ!c+F;o7~Jm7(Q<@V7afE%%*$U;jSf=)$^jg^`{2MhQmq=X08q`qy`E%U$zs zS!d(l&kpOo{%}@@y?P&d^`lhn*7Mbmt>)gJawCK>Wm!X^X@00+(p9(R3*;IZW%|w> zkew>V;J@<t^|?{eqAMO`2g=^het+f`!<_$lfp1&<j`$t8CU)+3)%W6Ul6IFL{hYSK z%i}cT_A6Hpe)n<M!hd7)xvXXXk1Py5pSO<f&%Kv6x9|R)IEyKWf8YN3Z~i@IXUlWj zp!;Rr8aIap%O}0KV%zx1aO%Vt$x|nCxbWAiIHZ<-u+;WAAbcUN>(%omrVsydpUNu< zI3n}?U#;(y6&Ft}e5La5^OA&v3ckr(_bn)&`*+`_UdOjbEZo%Q?wz!rE1}C%mFe`V zCdoXdOYSRIyou+UwI}nT$b&_(oua?1=50CZraJxS<n-IQ%uFs}KQ65AahJ&!d%yqk z&u*6J>(BRBt(&v$!L~x-#T&)c7%R22%9ftJvgf&9UO>}xhGS3Pls(Rv9<1`t>(Syv z^HfT>y4E=ehaBgyQa7|&^(;SF`q84V!9gM2w(sw*lM;7d#=yuDmlycq_Ys#JD|(lD z-3eLXvPJqqxi>>?+)C^9)#oPnHZEY$Si9rct@D~MPdI-6UZ20#`1Go8-SZ0bs~P@Q zEq_pNkmWNYr*GpW*4Zz+-fvO8XTLw_k?a5C5qdwL&d3NBTWwqT{DrqqccEK!;QGG~ z8@AsT`13_+)8th-o(C<DaRp^ez8hHAXnnW;&Hk!q+381C=sGND|Nrxc$=1IgIrf*; z-xt!&kcg8yv19XL)9b2}Oe`|RweP)CJTr5ON#NhTU*?y(-P`^CpZnTR`?t@I7XR}* zboX9chLqnQuG&s!R=p7;t}3aSxtCK-MDuj?mzL#O+1_pq%*{6J=Na;LuSmP)etuo& zBK7}vukv%!zwA@}d;iC+_ctFu7M%M3{hsgpl2)f*HagP8d?8hwJIqs5BOxoiVV&T< zb;fooUDMbECSUr+bJ#YqiRYl|WZp&m_dnRnsArl+_Ed5Ude8G;e@*<)%l~PmJCnsd zw=G+Ihe`8qI%8E8(|7Z4YwiCnv$g$~y>VWWlgG68F>j1^uK#$g!##3G!h^G7Ohwne zYKfeF6t<}J{j7~a>#fV2m%g4k<&Rq8Yu2N)KDU0axRHO$(E3E(>Pvd|Vuv<Y<lEa{ zyw<EdC1>ly*>aZ`lro=L%shW?mwb-n0x>_K6>~prtxIE<HsPC}_q~+&*@UIyx%RnB zVkc~kkGr%@^=5=2-;X_$wq$sH5AKQ8t63*&vs|sA_1?rIsg?RwdWK4uCcP=YD4B4_ z>8!X|ja41Lz})QP=MQmCvt78}DUdsR)ob76es_@{k7qu<>2x`Pd;S@Ig#)vc)VfaU zf6d8{TYvpEFY^P_>ZJlb-b?h@X8CO`40S$ZwVD0PSw~x+w+s629e@6ZVOz?!9gF{7 zQIQJsTl6(pMl;bytT<)4LgAeIEex8TIUUKHxACyF@7();TH@;OQ_u0JdYn#CZ9Z5p zDwNORB_3|6s}v*NrTKGDRZO?~Pw$X3lOi5Wd@}LW>2EBxVN)MQhZL479I@ZrD6!dC zj!iOTGV}2l>su70rhZVIP!+s%y-<OqM9Y#xOFH)N-YAj1<8JyFSG~98=bpRYlXm%D z<>q{0LG8S7{n&t<#$T@|%S~&Vcxz7Y`7NdC?17S8BAc>Sadq8iSoO!~Qr;fZPrPo| zE@rFTofW-SljEM&g_pGpwj5Q{^b**xLTqaF3ndY?w{JGjd3c1Ue$#&ajEoHCzz-}^ zo9wMsqMZ7>C)tD)rCnIO@EA9H@yi^MFD<;EXDyhXp&DQysLyhXTZYF)PdPDM{@bnl z;^${=z9_h!`vzy3>-)QJliLpo&pK+8w#7T-+g0(EzulR7TUKu<diJ<u!W^C@S6bIG zXFhu~^ZA;GjgBXb5_;#pdd+ya>~m)I>tFWS`|WRje6{=AWcfSJH`dM)s8iAQ_mY?r z@Kku6{`T{GcJ6aZcsu3T^2e7N6hegqS+X8(W@kLSq}24aQd0MU!*VRErIya~x?sDP z|Hq#zcFFx*x9;AZe9LUgp5JvxzfP<>!C-t(Kk)PcjiRTW!CYC@PpdX~)oomte<Aeo zUn@S21AENv8ejRj^>ce9MsYBR8?SQj7qk6ZQ?@zq>s@A^ttvMama#RbumrXKoileW zv(}%BPG@)YpK(4=vC+=#%9Z8wERJ1Xy*18KYRYaS$xeoS5k1XG(SpnteMw0UqI(bX ze3~l5Tp+>07vk&qG5g~-r6(b*x$c5*HfE~}X>4K;x>hKb@#=L|%GSLsq9$(yL_Zbo zpAqBm&6jWKcN05iPqDQp-5j6h9CT8Q@NrP;tUJB2bn~^F=dZ+xu1XNn6lgyy{$o-` z_6d&}B?gBdeU35SDe4+;a`lDl*Uzyv%YN(;3~(@XVY{Dl!f`q4$)l6k?h-qHj_IAg z^vX?39!zH3@L|Q2f?bR2Otm(iJ(kby_(DeXcHr-5k-HvI%n{<E;``)u-K*ogg)*Ku zwRPs$UixEtS}upna2nVAs|W9%+;H4w^3oNjdM5S=v24kBSe$S?cj~Is3^nK6LceZU z%HDMG?Z5MO4;SBD`ua9o>sE=R&q+Do6duMT#h<YYe{j<5cbfIQb2jo>Q$JjO#d&e} z`<ip#+Id<3*L{}1Rk}I0n7Pyb$A`ejFK0aXvQAGm?R-qbq!k%|gNih6_nB;1yrnye zpH<=1w}-YzdDaLSIDh(ojq&^;*8ltd-QIt>`rrNP_wGqfVwGKc*S$|+lnJ)!Gx@j9 zQF)pY%jZRJPuJgTl)ZeyJmmh%!xLjPGuPcM6ICuwS(vy|gk#C~*{Rc;Bo$_Ny|#(k zqA^7&KsVU(eq?XNW0M!NlF$1`-3`y}zHcJ)+C7&uerC3-K){a6FK*wEzmzg@t@4Ux z5nJ3+V;*&c@<_MnyZ^|4XSuEJ*N%f3om)J#f@801Mr{#$_1WjGoJ`FPGlmj-vFet+ zb|>A_ZklZU@Sxb(tv+kciOr^;?-#FaSbHsDxx|AtPs-NEE)U$#yp^5pyJg<V+5gY+ z?XaAmUom_B&2^f->kIVPEesLho`3zkpvJ6Ef#1(8;<(-S$A;CwQ$CdS)5OA1k?BWD zrcM1CF|}p$UA@=${BF#?@XV_#d3V3wE)lNubqw5zWt;p}j!5UoT)#VW$ybGGQtlk{ zZr*#f@wkDc>6E^n+@novXY?r?$b2y4q)@_(+1Il_gO<tXtyf)9^QN~feOJrll_EP6 zFNx<g-0JON?=D{L_gp1im{Y#x4O`cTrCm$7IzAn0IC9*3r?Dn?_3g6o?G?K>{=M_% z#}c~*-)4%7r&*nhn9y}3^6)=P<ChOiSKm6j<f4939arkjqh{g1#oE(*zkmLHx#zpg zTDGa4i>tbCPPaeYG2=>m@CvQRx74kU-IP{+_cDR~UVPYji%7PAkE_3y=4&c+JV-wB zyRgnyyYkKdocV8b`8KToy-m&f#-;Y<k&D{i6eiDK$0U5w^R@8G$V{<M`xj<NFbaMZ zRMwna;T^JXvVy$$^sb+uD(afQ8X9Es=Gj^@F})RaazFXJd(}s|gsS~>el0qvmU#4p zm9>($ijmfAt~~<bZVoY$XQsHGC<*-Vw9(x{=4V8RSB=SqK2JF&@8yNRUzmlu3H|<l zVBd$V&u0`am~5ID+GoKLxL0yv*ll+U*6YHDT&1>(U4NM$dZUV=;c)!YHI9iv2X<VF z-tlcJV=>2rM803@M`|Q0o+hkGSakGq{r?A1J-LV1yw<(CzPl;-j{j;QIllcF`@in5 zKVA1Nee&P<f9J~=sqy)Q`0QOL)>L`YX?jvd!sWMT-5O4$^sg0qY!am=lC?AAb)iL# zRJw@C*=_$Ve)*>#S)n-bQDyT|!%vl4=DS88<i4c7xA)NPCWg5>G9PFDnOAe)n&INT z^1^`QA-)`C3``92(&fH_8Y)$D3=Va*2nng4WJ$2O5S+AU#q<EC;JSU23z=BI&({(N zdi;FGDvk+~9|F=JENW2ImK3WHv%MvDMtIfc<XC|{fj(QZnOsu&ekU0Ey(tj8Ap8Bf zE2m05L#G()2{F~+6rL}(4K25$o8*3$e-+;BZ&uYQYVdpWyj#X|-u2F6fA!gnaovlJ z=Qn)yJkK~w>&I_i=FNIj%(7(Jyfqv8JQOO<|Ngr?x3KZb>6VFWPRlH|biM0;KC0e_ zQ|4Xu`OPUg(-TbnuEc#kHThiiLir7*JI#C3lUq03?Cx#$k8be%XV-l!=c{3`-~}Z~ zb>;)DA8Y<kTIb`qQRU(>fyGb%hOJGW^OwQW%u6Ct^K^UmmRASfZ#6cXAOF$LbRl!6 z-L}ImW-Q_|-mzb!4iqOIwNH9*>uAu`_?~UN8!vB|A}qmrVXI?a8MA1i8cTQ05d~|v zfP>Kj$Igm{zL}oCHMr=`c9n082hH=$BeWxSbAR`-w2Ky33%DTS>G@k@-!>D01D>(+ zW)2%}?o0cem!Ib_F@9Q)*XGUgV&c)w@*K-ts@uQK=l=Ir+TuaU|N1+V>e)r-zWe{s z{d>;G1HGLO1<fSWtA$p(Zi_t6o6i0v^`=Cly=OuJuc3=nZ9~(Y?!cdF0?#LN+^Z_& zwSKkW<n{f(*x$~RyS>Zz+rQuUpBDz2?pJ&1+2B{_dUs)mBZH0W>OP^!H7l>&75-6g z^*DW9?xL=$kcrj{8d~zV2+T7vY)JT?5<YoZN69(q>gQ8-EX%9kFkkR-&!4$RcC_() zagN^4uDkrUhP>-<jsoV%6NIjBTNGq(H1jM|rg&zzi?pi`mzUxSO*esQ`In4W{wfb@ z(x1SR{(<Y;$wp53>N8Vqw9ei2i0)d$=f7rtpWHK<ob9r2-mEPaXM8(%?y(u0kMF(Q z%&L)mOPEE+@*s!qD%Ba1jCZPeHme68yV?1(XX8|hUwkqPufE&%cJB7uGe38-&Ch!M zaq_qM%<1b3;)=C%rv6&A_x{|-bPb(f*#U1k?@bL_v$@P>Y2N#}QZFWYhv`Vq(&^fs z{W87z4gW8eer9Kl9XjGa*YiZbdbBg6ai>h;<<&>>l1+?j)-=R+IT(o@x);kNAo*+l z!CA9s`7c_Lb*Zl>lW}ortlqbeMKyU_?(D7H8@AqD7qpT-)NGE%w`~ix)(aN@*ykiO z&1(Ml!f@`3vNB2Y7w*0JAzMszrPBSCEf(sm^UgQDnsZIUJL`T(O{(i6<!$ps#H?Jl z&B~v#WR?G9zanS%w<2*{^#y*WD4c(NX7%JxOU}-{wr9oP3il%yx2<xS)e@<c=(SC+ zXO;gVv0#NB$E7PzNtamO<|;kA`JLwJ)=l@N&YhafDsOmM=wS2ZwYS&DOG!l)<T5jM zEpYnn!r;GW?<JO7C5Bx)GuGUH+Gr<xu0HINX4KkNW`S3+r)Tw8FM7`>99l1x_oZy- z{?Ol!uCq64d3VSzxwcwMGGl8i5Bu_!YV68Qb-gOiwGWrwOOENfa->;nwZo)03_-Rp zYmDpdk8&s)Uy`i7^W@mJ$NIPGKChE4v%fm+rEaqPhHn*|RTT_kMGtCSx8%>?uN1~N zarZ7Ok$<LZvzMzLjsIHhx+p4a{@(RBSno71ir^R7_4wbz+0EA?TlRQ=S9Iy|k*I3@ zagozAw=;!%ii_2SC!B|iwuIYfF1)+=dcxIYzBGSRzsEDK?YrysA!+yB8>eq)cl_Jg z_5JVNrLux?#l9E)Z5Jw8rZ-jA*mbnbNIC7;ej|v1osZ|~HuH7s)<sV^ck@*+_p80X z_B+I<Je=tw6RdO0*67!@o0}NA8xDBHgjg}$O25;-DD)fql2;Y=GQa#Z#fp#5)Y5vX z%M>wzW0R{w<}oYbGQU+GtEL%#l+!)-t+8#r%KWRZl6)AFT{QSs3#oLKFUyD*c(H}6 z!L?!bwcfVtt=FH=H}?8t%(BTRn88Qnw#r(;=(hr^A1!>KQ)RrZI^=_oS?tuhxA|_9 zB0J@)f9!1kQ&nDbjYDQ<e)jxVP9Kh(|I+mDip!=Z+vM9nZUjEQdEg(9Yk}(R4W0~v zA(~uf4Xf@~sCkO7+9sgp7gN8fTCMwDtI>z=9fG{yIH!4biDU$X>c}~6P=0oGTJyz) z`|5k9^8A)qyxXE{3g^YCUmdO=?@FvXvp`Rjb?4M?)8FsC@Qr=KLYBqtAp%=@--=`z z7x1&kS~2h%@ju}2&iKc7Xa&=W$|uLlw5r`UfBV>WmhH~=Q(u1;9g&KY-BwomH>@~P zs<6Y>B<jMZ$+jDEeWDD%nD!g(Uez(HX7+(On*w+W_W8VcSoiVMv9jvEOUj><BiElk ze%Ms{*E{k1nGR15=EdFFa_ax|#OP<w7Tf)}koiBm=5RKbfrtBnwcazn&bx5jPF(rW zqpHXKp`VXti9T3eX3%K+ulnBNw`EsYZT8-MIRDQ#`;EWb``?trz4`mT_Qc9r8#w3a z9V(oW_50JmY6GVeMvv}YQo9;embE`LG$PgCr_<_2*~M<Z1)`lA#{%3Q&Hr)cz$L}q z`MK6wDXM8(=RTa0x5odipvUnE9>V^otWq0dZLE#_HY^CX58lJh`Qw&5lldRXx4Km) zynAgUB6|W@Ept55Z)I|MY*?N#x$>HC=MrOuOMQlsmo_i`d(P_&tA^D4mD|_PJC}YW zoqfeC_vo%9>q=(s`WgJ2-ZK>m-Y;m;ba3tt^S>!1%F3`xZL86u7Z2?2%n$YcA<bd3 zWO`Y}PwsCs&)3}B_hJ5>8|n4mxVP>9rz*YP?)I6#+&AxYHaOmBj>~uGzUHvOa?2E! zBb(2DY5K7+CoDkyYemVC&D~|U*ByRhZ@yV}Q3g+T(Cr|(8*;Ck>P;g&D^wVHKJjdN z+;BPF>i3#U%Yy$Y<}CZ;`Q3V{eRHYQ<Rs7gnwyRbb}jv-cDLqkT)qUu`rD@kLwlA; zJES_*-Dzr54Q$=p|J3=K?&E0ZEq(_*`sVH0!lgIUM<t3u;>hM#dlg&5HlHvIyU@S7 ze%tp2)lZLwo=sfp+;Jpi>GTUxS6?iON^R?2_i$0xJ+Wic40EghM=~%S*>EG6V_9nA zhI_7&r<B_Fv2@FMm}vC<`#D2TAu4bZbHbJs!+TuEvQm_uaY`LI$u0Zbs@m+Ak$BkG z!u39C<+pQgi*fu)ou}~T7$=jDwCX3LlN@<04Izq83S9n~Ro`P@7ku@E3(Jhp)uv_} zFD;#%An4d)%scO^MEJHM15eX{Ej4>D^!NO{CU~N-Z;z{}z{%YcRR#9G=dgJ$x8=d* z#QnwR7hg80W72GIe&PAy;mk)lW_>fIC33cY-+!zA-oJb6|84p^yZ)Pc+0H-KnRiyc znx%0otx-swwc^(Dp0zIi-S-}@xpzROipg_-@O;bP98B|7W9~AuKE1T2nVGR@!LR*Y zpEmH<Z}PveQF-TwGKLl9-N!gi<$c*L`sR8Ii<9T$Lr2ODm(Tn+wf3uYexq0QzCXUd zCpYCRS)?5}#Una2J}J<<=ev`gU7OdYYpU5&?SU_Z68abaD}B*uRxM=8b?&R(9-#$X zS8hyV_5ZUmDmTAU^-W2atstY=WMh6kMX|0ssw;OKauBHIaW8zce{$RHZ8rUTuO3@u zFL5&C$h(WXcZPC%by#Jd-8+ff^tC{n)l17fT^6a#`jWoh1)dz{NnLDbn6<t3`d_rj zUFh~~Vv@i@38vbXpiKfPo23-Pd)&CQY?*IqIR=ZjB%eNbrk0iK`HHSom9<jk8V|MC zExsi+k2T%Il_x2g%fspG%M<C{PyVI6-m!c^d)Q53&dt}77|$`ii6{{ZR*?~|>M*{+ z$UIrpFg{{Z9ox2<Rqqv>wr#cx^Ld^vyCGo85rdgME_R+Vo3_VfyniHhSKX3(iTV$5 z#@&o1nw||O?oXY`Dx8<SOs<5fYT2vosg>R7j#BpiQ(7Jhe9%6~yyLb|*8C3-a{t`> zcJ=cKR^=}hV%xmVu_SnYz4hz*)DK_MqrXOO5zRR%t@}mcz^M%T*N)W}3Y<^$=B)1Q zobqd9WpmxM_B7$Hv$wsOS4qFvH8<yS!@Xqd<Ijz&s}9x(|DC0)H8orG+rneUqO*^O z#IC(F*_)a1o&5A^6+8cROgVp5|Lo@j70GvczMZq)e?jYi^zME4ZceXT9QrSR-37Du zQ~!<ZnYoYD1hPseC;UAjvN8V&_eq|G+n9x2MTJWEa+fZMd|&+j_xWGDe($P!df$}$ z-Me>hq~m|@vaR{E@u$K3_j|tA{#?4DGX17hQ-+V<_g!jB%~$ax_u4#+N^xFQwc#ko zlY6(<tToGg={kLu`_ba5*ZW?F-k$g3|FkJ<+U_;3FKb9;;*EIIA+|KrH_LZl$%UNn zK`fVMUc18hoViimfN|1A|CB8PAGU87C@@Q}s>qHqIC&>r>7U5#Rj*ZCj@lk$6Te}l zvh-?-zDReB+uh5P|D-c$rHM?K_N`Yu^wzAOn{T~kyKORmtG&$af6tD{GJTI~Z!MF) z*ckp<b>9tESJS1c2U51h{dgYpF-KynM$mm17Nfa)r${T9<kjD^`@J*zxBb6s3HkA& zzgOtqmj8E;`}Z~T`kk@Q%@rkHys<V&Dd^kQb5f|Z@lmb!#4tWHk;kcTB-5`u9w~3$ zdS2|7!N2F6hF-qs-85clD(-CCEoQ+l=Hq%%q5n#k7E{MB70th9ev@xKmN=ZzqntE9 zd#l;X1m$JEQf68mExEHL_z$%U?$DfSnD+fSsGz+28hqkX!8x144~BZn!+h^lZ755- zdU^G)x&=~6dv5P%@V(wVz5DZGm(T4?R#m?>KTPwwGM)SPujPxDm{ci*FHODhboRv^ zbLLA3FMhvgl2e|~gNvK(!oDTBC9>`JzNP*AwzTlVH4__Voc1cs{PJ5b@T}RlnVJU2 z-n`$r<`?tK7iv`-(^!{uK4?%rka_9F+Pn)A7oMk`X`9Bv+pfLmd(xXs{XT`o?iVMo zn5Zk(`bdq#K>Xrv!}QsW7ZT4ioSR&KK;HFWh+3_k*6$@}PS0#!mwrui@hj1_TrXr( z3I*D>99XE%<kIMR-s!`{fVpSQ&EG2D{@Q;px{{am4v%Zx^1szfr*Y&4RPKG>x574k z{^1Dg-fB)}nXBiop8RRsv%B{9M1g{nJ-Na!PspSmZkajz@b$lrxh&lF*^f7uZGRyz zZ?^sI#k)7->t4G{+&p^E!T9ymrd77b685clbvy8_%W=2XoU_U&a@aWvjtO6z)48ZR zUa^(C-SooC&bm+o>4Upg>2{jzJlie)_WSoG=R@ah4%zYVh@@L+^is3f#oNnIr)(>- zE52H>enFg)VhL-)SEXM*4=XFT?EYQf+^}Lw^^4>ye_S>=i=19EF=4^&?ccxg&Fz1G zyEx8G)%={>4MUIXN4S(Sl5Y#Yt(iMd$3VyKNMr(Iq})dR^-)vLRhQg-;q%r?e*OwZ zMl=6KvReP%aIF?OU2<gq<!jM?n<i=APnK5w|As&P(6x2P-4j-dPw1IC@!N{auAZ4Z zS{6;$8as<k{c_!QJ8*Yx@+=WZ>f9{hy7}9mn?4F0=NfPCo%q%+qN($sz%gG<!DBqX zuQc?h6~{y~9)7#&i-Fp=kCQhFh~Af-Z1P1kUc_EdLE>BZoR_`DwJ$fHU`%t_H2a9u zi>a4;>T36G&(v-D>cHlHVaw-=qbU}<ed`Zu72e$D@R^TM&vD+F+QqNCUaBm+IJb6> zLX(x6Yvb?Gjm)R+e0yxU_CfpFvfj%Ki^@&D)o<C;@$`cBZ5DP;rog%TSLx4Ed_9fR zt)Zx{mV0%KK+WzBr<^2Rh8seAy2WPPd2`x3!{<jvWY`WlPQH}B$FFm_yz&HVc4vq) zv}!k0UpV_xnDdGKth>5?wY5bLPgbw7<lnwdIKf}V>#hIt`%QLhSv-ojw6Bid^lo-< zM9iEIHR&uVybE|)xNpzTNaS8<xt)J`>-o6cz?}Yt40BkM{T{`$1V$b$y^xpn`&)s8 z6o<pBzc;uzk3W{oj=x&%BarP~y{x6duz`Wg+v^jXY9iB>GmQs>Hw&|Gn2@w5Mq@|+ z+N_`FtnKeRbZlhoivIm6|8Lapw%KX-#Z>-(-t+7E^ZAK^u0A!}ngh#^pO2en=kS8t zKv4R|wkcw^kDku7=YH1lEm0|;|H=Qg*+05|w^#q3d;eeUh5zT*R(!ZueShn^^2J$( zdwmUbm<uYHCQM>t{UG-_vbwg9YjcafFVF59$_D==b5%to_vLN7(-?SE@x@KKi894f zeebKbMJd@ynw-0N{@9_vN2kebJvU>9(k=Nf2WQuvv)$?aDOSwKr~Vm(q+A7?jopXy z{)-zHMDC1h<xhTJWx%2q`s%7*#7Uh;+FJsqbR4fZt@^rB;=HUH&zwR&XP2AbAC#4Q zueiuMqx<*lRT9&9Ha*Tvz8=o`Xv*Z<cN`~oIVrCc7h84Cl-sRmbHz5Mj%Q{27uCPt zR;eysx<LPX*=?T-R{Z)o*B{OL|E7NCgg?JuzkQvx|C7D{x4Znee%F7$JZ*bAgLJyQ zXl&fp^8vRPUwqEEB}VSnBw-h(&zyyS8dh?8%=;Uelv_Syo8gvI_RAd4t@Afgytkrj zcjlZEMPA-FtdA9}<J|P)cemmJPiH6Ng^a3YGD!=YU8DJ;AFViPwClu)qm7rCmjx^+ zV8}7hbQ4vXc47*%^G(*k+BrJ|vwMWK=DkkcQ@K}fz4@G;>u+0`t}GJ!cygN9ncX+o z1YQNHzM7|KGv)i)FS*;37Obp#eRcBBmV2%&`<ex6rBgDlRQG;Y&Yj1(Z$gg$8nsnV z^u;+ZEqs47MCL?@-M9I&H}`v%R$OXOSaiLo@LoY*k>{Ju-|Z@x_|G2sxntvuj0Tta zU!DZrSlqeeR{iniVh%6kly3@T7w9TDJa4<p>}mdr;q>Of8S{jNVl4ENznokqTI%=1 z{MUj5N*6kG#QQ(p|K9a1Z0`aNx9z+sJKg3lRlhMkGx7Y~{uaTtldj8pe*eSsHbt5( z^JVvo4C6-r{p&I>9WIO7Azk~;Lj222<Hl6gTIW;qzE4Wm65qW2%FEdBf;XXy6<2G` zUE^@^W>a7MqDLDNH>lmxT6L-5!>s(bGlCVJkC@qQE6h*k&NJVqRycpb@6Dg&N>W%- zKD-jQW6r;QBHW|Q|9JlG^85d%m+kpeeP-de=Uc!15Lf+K6UbV-mf^$fJIbzaIxZ|; zy{c~Grx2EH1}ok~@ffOkOkKBNV);iI{!I(CH#!=<<`iz#4wdX%a<JKX;n%I*wo)rk z1Y8f_u;leSQEmTwwmaNYUwh5JdnjW0%k$-CbL(%&HCkU#o+RCT`kZaR#*(wLMiY(( zn(Uf<d?MEcj;6^0mB~u)ix)ALRT@~ui}Z8_$-h-Sx%!{^ie*1)?Y3?%{J&+vUe?f? zy+^v$)D*UeI=-H>@ZrHz=Nf<SK2~qD-9zB-Jd=BZTQb9Kuhp_y9elpy;5^?|Gmdx! zf9eRicr+(7D6Mds>2K?odvCB6DEzR<&<VAEF3GgGZkfw^p0cLz^B?V%->^M4WaBp5 z{WlAq$Q===J>PC*|Lw=g6$j29*mi64zvvzzo{c)4Kd;X4_nm#T)G9i}A)GZ^R`YEo zhxgC#;!Mi-4tGvWd#jW7-tq3Px94xYUv#ed-QMWyX2(9bUW&N7t?_&s>s;B;EkE}x zV|=_SBDHFRz=qYe^GY8T8>!~)HQH)W>G+%bJdfe_RY&e!zq`J0wXN<1{<SLHlfMde z_6VJ4h~MD6?%)p3MOP+$H2!SAzhBd7hP28BkpSxtamK6{f;#jL?b)(FUyW^<h5uEb zl1F@9+xA903+IT^J@!UzuJuNT6({thRi|~hE<L}0+m`3sa^LU%eBM4f#LsuFU&8l< zo?9oCKC(!kyRxZuJ-f&1ZIbJil8d?|$_!VsWbZuu-rnZiTN`7`k999+zh)LLy%{|x z@XL07uQ%-78=JqaIjZnR-Eqc5o!MWQI%`_b-}wA}a=7H=y}#e>E-T&I=<#xT{pHF3 zqqk_(d^o6ld#cX2_LFw%uN8vB^i8(qY}30Ho+ST~Urcnx`^V>1j{orM{+_sXck{k^ zO<RorJYucB6}$gIdEM{%w;n&9JNKO85AnA;n+w0F-gGuBoBl78F=7YTN6B34TgHFx z?>jz!%9CEVS(RIAf7Dlp%_;PpsUx)I_xm1`KZnv+e^Z|PLBV0Bjsf>upJ?u~nDiZ2 zmz<xmHGXPFFFR9v=Yh<gjmCdxr~h-AA9*!v;uWo@o>~lP@vqf4ofLYk6ZV($*AkI8 zqJcLbKJQ7Fz0a|B&JiZj9DQ|-3;gr1US6kiCHi^I5iK`OZymuLH!gu{*FQy-hc5jt zwza5u%j3Fzrt#4@=jSa=TbTBCt7UkeR{3Lbz|*HR;)y(4?*BD^3sPAM|J<vW>bWKq zt<5*txl3;P{9C2loesTdWx4**;q}qm754Ja+dF68^J-1MbuBgQ&J%lUuQLKsTCH_T z#XgS>_H3E|@67reiJ!UOW}9y^KK5Knxnk`LAKqPhV#g-1`-mSq6uNA!zsE#@Ma_1J z@{bl|z7lASoGpL1C&Rm_`qoC#o1F9Pf4=ef)O{<h$81&2BHmYLUzb+xWn_rkEPg(H z(}EW(3XUWk|9^|`;RJq{I9rdNq_hj$|A@1ljXWRfS^es&$~iByppe9#Mf!8uEEuZl zW^nTAy;9<^+Q2AUHi7Y~*6mYeJt8kxnlNQfm>4}{kAixvNt}x6S99K;pT_wntgZZS znijNnKC;zrytYDg{juvWG-Yn&cXKkk{nCCh<=vKq1owaY_S@f5IJak=(?;EpLWAUr zpoEYGo(~ord0FBzfxqgi@j>|@_xZ7#)oU#;yjdXa{eWi^GmGr213!-l>L{OB71=nG z>2c%DyuA7Le8NJ7HBWXpysSMb9=Pw@E$yj{p#i5JzUaNKT{2B4_L6{NQTj!7$uD<X z5{z~`Eb3PdnQvdUQ{m3BBYdwVZ4Yct3(9`OGUrJ_&eauRx>=kLO#W~9`%_TeRHsO6 zk=Eo-=k{HWn%~TvZK|dDRN+M8ukfDpTvf~Jj^_A&(7lyVvM%V)Ocst8XF}Nee3T?p z6fSmq3hvEqIO(ZUu;h*^YfRw5xR!6)mS1cc4xX41{hqOSwSf|cRdSwjnZp-9qvESu z!-Cuv&JV1dc6Ia2OKTIa8BS?m>|U!Rt<cJGXW4%B<F7YHok%z_xy5}0e@)DTouL5} z-=qiST~ss5kO}n<@%(tWuDHx4Ew!_Anw*1#@)m}b{g-AmES0bfpMRgdd8*%5bEYYw zhx}3wiFC)+ZoV-8!}mQAJ-kaUnZFfbvg0pMHk1}!^T<wbm)}<ZAHR3@e%Slw^Yin3 zb#H!zbzErvrqL|2>Xg_s%eB8t6|y@$&rLkw{U!F=B8F_k>TB=w7kya2Mr!h0Gqz5T zDY6F|R<+F3dc^mjD!^@le)O5&X{GK{@*0Z_-_LVT66SMzu*A)|F;D9C&d`5H6bv+X z9y0Do(G1xUIqP|x>*)imjCQ6HYMcG;_RlL^F1fm^>$mLupSyIV3xX84XZ*EnmQrwA zv)>`=MxVsv&Qmw;{fdYTSZ$fh!kLq{h;4skR*A}<P0pPT8aJ#rX>Z}TUSoN{anJU1 zD|{m4S4!T}{<`4#sVoVDua-Qs8zTSftnYco(Q&dXsYrF{H<hx9Q?DMoxy0BY;tb#W z+#JoE6U!LayH|hxDE#4{diaa*Y#v7ef2n!bp6vE|d#5dLvSZ^rDQmAy*(xWwSD%;~ z+;!|(`Tf63%cGvwU!U|3v<<%YWL{oA<E7dU7nNI71plN*ep<CJ?<eDz4aZX!FZmoN z^4mp0X#0GnpKG^mvz+y{a8ay%`}w<#oa_HsA9$Yi|Nocm{}0H$lfU5o?_TwN_Q%>S zuYDTy{}fEy+jDJYM&>D|!UDnD`|7qZNWYuhG11|FhwZc9$8KsV|4ElzbUgOZ=F;_> z!z$8*H6O@sG0Ws){9<$~Zj1Q4oZPiZ2gDY8Y!>&pz&CB)PxWn6685^i;+gSlm*@2R zQtpLv2a6s_Uht{B!5R4f@~i(l<)ke4#Mo7?tGZeq^ENd@bq2%zT}%r%l*{p3J=S)e zeSb15^VDd?+Z!3LE$s+x`E4b+RoCU~_OqL-Rg;xCB~n*63H=R9u`kuly!@BrxQy@( zc7a%X2iL!s7>@sc<}Z~|_iUc!R;AnVwWm|(-Kv@^KPxip^}93X42Ogz(gieFKTkVp zn>&-6)oaiB+hSdRivP>2XIY%MYOr-%soAEZQcK%8_2xWDy=WB~9?-Nn+<mU{JN_nC zX-=7V9g_$pKehvhQ=HxxC%!&DL9}15DkSuL)bbEB!K}oJed!xs{rWz+gw4wP$=TPX zmA&7deT~|i_2uM(gy5MT=~mm8yvoh%%dcEhAUER!%fgMTEZ@A{aCL#~%e^9J4kR?W zWv_{9WK&7BQ4N!|X%}4hu-vPzOGW0r=5zLtnIUfyjkOY`X4?3PZ({sY+n#jM<K&OY zo}3Y<H^{C@`dQuc_WV)dJ1>0>>t+>S^H2-8&c+txVHao^FJTfQrNqu0v!kG@$|2P< z{gVGqu|QVSe`};4GPwV_S7yCp!!E}?b7md1_j{A-bZO)E05jFEbN}WS9GQBa`}=&! zCzi35o9~<7Nn|TspYk<P@3{Xn(WA%jcFLu*q|KP!_qJSH;;-Gk<y+GCoZ)mlGGT9c z$bsIbg1%)*3`Yt>H-8J@xRT3I_295`rshO0@yGWJ{w@$&;yFFGm~lzg^R*c#&RUAI zyC@m<u<&qx7JD;si-AY%rYKDp$;F5F85lAI2!%ZM;OV|;JaM_->nR-)+VRU2KI}aF z_`Aw;@pkv~w{w=xV~q`T&rxeWBw94r(XnuWqz)S!gEKn^&#Fsns@5f+u$j<tb6ZgM zv<ktDzT$W1XKXyL^62nPlaFU+K3NkL!s_#HjTwhXP|rQXpdUKha;Hw(ysUA<^^(<D z?@oMfObAE_ofx&j`hjk>^Ym@y@7_(BqCU^_(sa}1m4Sz19^cvaU3%VJ*&fyy<}ZGM zVh(P;-HE<Jn>9{rt~wcdJ@v2U%Z;0li^ktDijXN<U-9twrtE*uFEqU}(h2b^n|7{d z{gIVPJu}t6c{;GI`sJD{vtmKj((Sdm+NJNy&YzCt%n22>b+zuhd27GS$z8v4Vqd#F zS}So~QXyN^S$WlIuNO{JxZkVv_NiRlzhV))#v>`g&GzvzL7V%8SG%5Gv#RU+hpGjU zQ$$v>TeRr@Zsh#kb~>g<dArTa?_3`zPdq4kMnz5fuE*Be{gU?|ea^l5W9htHQH^eP z@y<t|8{!vCu(My>HOFqI1S_u$_fCzAk?Kkzi?6XAKOH+`Mw0%v^Rwhxsx%C@Na$-t zRphL^m%V%8-$2z%i_&*;NxX8H{w=k4V*8uJ$K*DysL9iLmioBT`AfcY^@1fQzfXF~ zAUP%EQKWs7l+TBP_0!B*Uu4A3m?5$x;ctt+`UKYKyU}OG9!nU{o4!u;V%?v2?+)$d z_MKKc!(mM><7A)OYp$OBHFXUN|7?AaeEfb+B)j|b^V4s5HkRN2YrXCJOU3Kbzdwc7 zoz0WtFsMGizyB9=vY+koS^p*+G5WIk$f*aHzH3Zcx=6*@Y@^riW{2Gu-DkQ;thKAo zyW<`z`eEbRm)*CSw`9zdlY3jf|J!+nC-KiN-mCtf|MVZ*-+wN@UxurSO`Lz%$o9I9 z!BM_KH@!{O6AfJV@0YNYJ#b6<@4;n1&#DKl*FP9F;ToG}|F5~d-*UHH6?qr!yZ1q@ zRwMWQOqQFU6xupwD>Q6*t3R0`S5)^7n_7DBwrXa9SktmwSC+5;eK#+E*6&+JKfgCM z98XSNTq~5ErD~?hVC<Q#*=2d!)v42i&zajrv%TtKFqgfqz=xVcR}}K6CZ7p7s&)6! z{U@86<LkbDbayM8*<$wi&to0|nZ`1~nl-ojxt7-iG^hN|=~eIBzm6%nc5m^-Sc!uE ztu~9!X6*Viwf4FG{)GSA|A%jy|1)G8|MG)%f8P6_JzKM0)OO$feg74sHgm1|kn{fF z59|B0m7^0m9e$rUn%#XeY+6_>_p88yOUL%?+4O$TfB9SY&nKOg`rdU*Vsi7mggd_? z>=<=!v?qnQ`P|o52+gtE`q$x3<+QzG!WNtk-|NpZ)o)rhL19_<4a3Cy8<%d6*z){P z{@H#bb6vF%>C3aPzy1zh@uaVCfpd$j%Kp5TJzQ5NO-fwAwc_&pWy`IX{RqldXV7sL z-f}+ZcjL0>dW*u+LLOazaP~>bSN5Juzt(Qb*jF$qs4B4avgYwtzj=G@&+gc!vTx4y zc}{9fJEecWxL%fQ<`5b7cZ;6xhI+=s&VMHwufG`0`7FKbjociaMUhsMR)#V0#Rv<< z%_tCAeyjSDj8eslRW`!LAMXb;ZuM$7b$ol^8_mNF$s&GdRv-PX<#GHu-<l4tR5sUp z+8^S0byhLt?5V#gEa=|Wso|b)Feh>04`FS$i}l+CJbihL^u*7$><!6M+mRqH^VRK9 z@65u+s$EP+8xJJ+X3beSz5gx$#KUe(@B5?~qZ1o~ZFaWow`6>HH)g-Xf(G4}B`;Pz zh&*If5Hr(c%N3@!NlFfyJVBc$sb;9F80l`Ry6Kc@x%OaKdE2oRwHMp&u}^n8pcVT1 zaoVaQ=Y^PKy6>;9(r4{|eQX`av<pIyIBdTiKeAxI^$ypQw=OhG#j#D)=3<*^Xkq(N z>f_Eio<0tFf^%n=SS|Qhd0Dt#E#kIZOf}Pk;+n-v8~)A|`JX71>vhHVU|NXDkDQtH z+f8p4+)t9rzqLZX?tI{a?uHp0c7?vTo=fO|KeAa!S;_Yd?+u=Lv*TD#?Wt!{iMHeB z-<6QI<6q&soA%aR#s$$v-En8-lI!kgPG8i^opXZY-!_g*0TVx*|Cs&#!13tBm?x_l zrBAyq>TOksa`xQG-8G5-=3$ZS)~wj-{hbYpLK{CTYfrR0Wb`6@+SdPG=`$uQH7GjK zxVbZJ?%thIJ<C?@edV?+<n8m+4R%2n)a{pCy!P|l<ZY2EwW50$t|;4Heg970#aUCY zutzn^S#MZAEqad>EC2UDJ~_`Bj!v4C`L^9B^w$jKzQ18gnal4=M@_P-h(7X+YnRB^ zkNMTN!&S6pe79%FYtNjh`|W_?^CjoiHaIQ}ZwmXWbav(pHO5u;wSHU%#%c-~e`|SE zg%_=zRPuG_x4012ADg)MvZh`7DSlQ)Vd}fa(9}zRIIpF2qy_of*6DHnm>C{$clFO1 z-s=oo_I=g6lo+|}hv~**x0iE2#O%CeqjNXnN|Q6g&z)(`lgc0HRCYZwO1C>XMNs9r zMo5-a0C%fW_d&iTZY`@S*R>0CN=DRv>a1AT9QeL5{VLNIp%qW!%MJII$9`C!dwRC` z;@X?q{{{Yd>;A02Dl~oNd(L;yZq%pT71%I$_Yd2H_cH%h*2=l|Za!zYKYYpb&woT4 z3?!W5e%4nuv^8A*xBuVO{2P~pbEp1Ky8rjy@uXrOFP_@{F%R!NO_M&pTH4OKpV_99 zv&?bBp8~bAFTxDV*kh|V*)b{`dOrVM9HX<xH84i-n^foDZ#OGXzW(gPIPa}*lF+91 zkIx&9@IPuY{aBOg8~Z7x@LS8j1AloI^gno4R?Qn9R9G*ke0S~h!+*JwR;8JnMQ>4l zHYwohJefJip4+m2;8=8U8$Ub8x!z>$iXWD<^lWb)|NeRN4sJWQw`_5H3Kb3>T`ueW zxwvFvLz0+6I!i<QS>DGx!hB|3opfxE*{!J=+fObNkT%<>%k<^zg?ENWSq><O3NtLQ zdNp&W|K7H{>o&IEmYVX$%BDW|`0teZ-`D4Fli$Cexx>`gK5OA&_P6KTzxBx9Dz#~_ z4LIPpcf#4H3Wr;tbHDBDjtZZ?b*jo$0UOcPDsykw{@V95nkh}~zw`pfBkSw@c_ltN zi62fp)}eFERXT#fZ*xtBglbc!<Zp{Eg<m~spSgM@Z>F+b4@+}=(X!w}z{}SO%TM)g z%ym{;==p7R-rKXUzgDGIf3DgamnX1ym#~Pm`8H=K{T<v>d2jm{#=SVk+`hJI$JD18 zF6`XbLYdNLzHwo3W@GmIW&g6LXZa!*Nk;3V=NX(bWO#(TcWG65d-NpE-FRPq&1t5? z$KzJ_HhF)$a%k>$dvV3r^PcRwyjI}e?FIL5&28P!UhK3@M<LTO)l9L_@x9oUtIC$* zre>R;^L-CVTgzG9y7EH3p`UU`OYxR<3H_ztY&=gMnjli)@<=pmPuqEhxjOw~FI;)I zF@-GIE*5H+uJ$A(Y+4;})z32u{I=iTJ;>wu^u%A$@IYw)qE##X1sFpw{Q7&A>w7or zs(qSSlAU2K9FL|7e04}m6v|lBv`(3EYsx!?IZGQBOgqORA3C4a+U<+^%JmYS!3z&F zPrW{WDf@rVMIQ4qm|ZUBuRgmd{NLiBl{vL*pM`(j%QaC<WkQe%`;4`nTh0Zjwr=P4 zo4K+}?0(;>t#*nBcvvPZdg`jbk6rZW`|8{G+j|%e3S9^j$UeO2deq6<<(_RbMHyOM z^{Un#OP}DBt?+BLC_~k!{?9s3KPd^U>{6WAHN(+q)1O<%yRIG5%X>M0_nOISZ43C6 zPxNQc)2TWY*%;6;>8jtNgtft~8+pHPOw_p{`lf!J7}rmpBVud|TYpdIobuvMXQ$Kw zts4sKm*sC=wx{lW<@d)HXWnc~eRRkxDfCd3pLmwljU8+OV(XW1-M_N_s>-qSSxt@x z>Dz7?t_)W{$`qh#{WT%>&8!Wr3k?+vo%a;|*_pZ_Ur}vlZ)bMT?K!3A&M~nn|Ma}| z+2*{S&&i3WTy<?YIT?P{Pv87z_x#7q*LmlMU-4gcK<Ld%k1M8~3)~(}ka+WuXLcdi zQNCdIwwkLO&P?AXyIwJE+T>e?N2<6ko?WFP_ncSs3-f$ap(&o(saKi<qW#lXef_Mh zTG9PVQS*i88lhkF7eucXn*Aa@%(`gfRX^893s3Eh(6lI5jOm<zGxC*5*5rQADmj+C ztT)|KYx)i*%`;>ABx1cjYD4oY<6R|OQstr@b4wpzQt`OOy?UC*oBNFE9ocRR4y0rU zsiY*ywbUN@>V05MbLqSmJ;&$QGxRxkZj_Sxl4xXdAYekT{-@1xvHu^5*WdfrKKJgO zdt09TzwY?Eyyj;!|9b;F6U~?Ey3zexFWE1gWU2D{z#5(Otr_86hD)#IGSq(3kk^?V z9$bGf@$}qtf4-fTzR?f5w`lJDe|OoKWZvFs*!jNhzxs+LY%312+}Y9gD!M#u;rjDC z-h>N;*|k?I3CW5%9uPTQl%?jFtdejmy7|DCCFif$Ju2pO2=Ek@bFADpe?@P|?pak4 zCaU{YC1$HP$*-Gg=yvB(`hlxoHLtkU&s1E{nJuO)9A(Nh@t{p}Z@tq;mEEyxuLN^# z^f$W7!gjOD*W&fray`SJ42E+Ze%{j(-10d%o_p8Zi9O=nY2CLBf<=1WY`YJ|{dcLJ zr=)iH-bCB3Lmpe6IRuos-&LRN#(2wt{prE;%jfF2$+mA^`-@-eMnmi+t-qVO6aTUA zwyC|`*MEP@>6hnkCI5@NeR<z@JEPU<JIk8{Gxj&$SbX3r!v|l(aIUO>3u@!Pl=pti zZgA36-+FDHj+&DL`|0=F1w1@m4=nh?@Iv}TfRct(uyz{vL%(g}xl{kJTkG78Vo99C z@Gz!BEbf=-=Qk^KCEqFwH^|ssR<4Pwz4k6$sJaeRz=8HzzFT_HcAegvs|@Q`Nvm$$ zw$|z2qu~F+zu)NpTV8gf?jD=FujS<KtCm0h+*$d1r(~l2j-2+po5ItdC?C&Qu&7Xe z)iY&Jx11w^8GSFN`MHN*GS%AX#2V+fL?fd!fsL_aRmK8N{T=((EU^1+Q}s34>F!R} z^*4p9RUH?HJDj_y9A>fYLa}t{gV#P6ZN9Z?2Cn3q!<pqZ)g<{3C(m6aMYZMjet%>w zrbeFnGt=?(qqcLaf1R-S;WFvPxyl`CTJv7|Sl&}_+|;wLV!=PY2Ahi>;%e*HExNT; zP=rO%vY2saXYFZc?ltAR=Wky<JAT94XKTMjvTM{{Uzd^RGAVr%W0Tn&cP?=?{*b-r zdnOoY)a@+_?y9=B_?FjO4vl@xH6PAC3QgmBB#?S9@`6;Ye=ZxNvNH3GC2q;<HU~N@ zPKsZB?RWLV+it3gLQlM2_Y|<HFJ)g>GB5i#*S9)3tFALnJ`9XLCxSyh>j+h|#fmTq zt@vOgY4CMdWGu5thVhKRiIFFFy!ay`G&_p5;r;n8CSk^~*mSmMD{}H~95de3F3?e5 zvnSI1)Wi#^YOOD(U;f$YWgMNiX_6>Yyx5_P8^;tgmOpX({_LQ}3HJ1`GEdHWqcA?n zGYM53LK}Q<pI^lgrs^-~k|^IBWzER2uf9m-2v-gpBXbAKvwwFk8zgc$P3=%PAk-uL z>HF8cMHh`lcsFPKnd2PK?aFhr|IRD9<-%IdrO}DX7HpHJ)cvt;nX)1M+^u-73mabv zPqJm{oYj0zy#AcKXX5g+EF~MRDQ=p!^<U{-J4@pq59KU3UOjf>+@vp+6@GRn4+<B) znZ7c-;iK7MpX&6B^>Pl~lf3pM2^~1%RTW*l{OY3;AD@&R)1+gQL{Ahyn<=z)?i!|5 ztDO%shh7b=KKb_D<j|ET!;{~uz1b|NbM~!q+uelU50}49`+j<xbls|-ZE1@y*d=h8 ztiI;<sHQV%!5%xKWd>$m4kGKqbKPyat>-DuasA1&R!xWh-0gF}-n<i0>Tx}}@mv#U z$D3S{Y$Gl=AFhde*ZehlRJ{4uUd|~z*W6VeZFW0t+bF+w`-TNxZemQwKb(?JVcf@% zv`**i^U7@(QX2ce-%H!RvvsPyn)V-?CLz|)7|HD9Cd~_i_B*fF2R^mVuAhCwb}2LK zl|GL<*B7Y051F}?SB*nm@xIHoTLv5^hbwn2aC%w$_5GgDk+<J}FRR_WS^w{~>2F`X zTBYhXJ?!WI8A+@5`gVA-ZtT(dt^6TvW@^0e^R@;4Z|&p1zSk+}PTIEmnKwgGw$Ll# zq_}-MvaZ`YJpKPV{_n24_IDGj4p!Iy-Ipje;r(f&Y~SW}^Edb_TI8%*W6f&&k|&9M zn#6kXqs*#%n{VY`Qj$1)|9#5By^oseBYq!wzC&$BlE|?TvBt*<v7wB=N(DV^zI{IG z)P7Ic#^IPrNZa?ggUSaP-<;pOR^i#TUDuA*Z8$q^m+$Mk^|#uS-t1iaaitpHhleva zp0{UhUTJ*(i%m?$HOcVED2>gxr)E6;G~d?X-lc!(kL<qg6)$9d+{ATzYLZsarN}a~ z!)Y$RlfxJA+s?cYCTVf9+00JkPm+9vWAc<bwl75`Z!7AzrvEy+{fEdtY0J-o361Zw z_wVmI$#Rb6M`P@({-~?}op+y+-)eAa|9?fHvN`7Y_8KfV*EA;x+fA=q&(Y!`_SWyv zp9=Yz|5Q7V2E3hUwlM6b&98!Y;fG5Y{GQ(6uu*;y&U8cc_vu6bU9Agul?Vvw%6L9t z`BHrAz0;q3h0lEYP4l;;UR+kTEcQ!SSfio9ietxxR<vonpKaK%{_bmE?gOvCG4Ter zDPQEc;*<K~<&50lk8a)j`NzBZ$HV2bB!8Un^V2TcbyXp8xzBR$2{%9g)m>epni^^} zb%js5n#Y1&ll!9QI$860b$I?y*)(h6voj1vrwuh<2F+jDe}lREjPR_o3&%fRxbQ&C zpl8lwuUQq|7T=8A^4=^HyP=)=HR1V>4;Nle7wb$Fs#-Dc&J)p9Yg#flvj;cjUC^G- z&HR+rd9Q=%m%1+==hl38-n{EnQ^4+3tEX#K_;_47U7^@zFZ}apO<MKEcdP&Iytzd_ zc~SKD(BwHr$ComC+-rK~p8S4qqJKe<!{&#F*;#_MxHJmyniV|1X7~Bp`WyFu$Jd;z z`#=A0r*8lM(qawuZ(7qAT<#KOvW}V<60*Ka$<X)I_wHZYc@JhBiE!;(#un?>$^P3~ zSY~y<@uLc-P`6%(hWoc)zEfsn^7ylPo+4|lhrY?TdCHkytLEsIFucpzZl3Yi;f%r7 zfHz+zx;Dgf3EzD#tC^O){$G^SrS(VbH&3ci{pWgeqvrecL!mQMUQ}ftXL)qCBcu3I zBUAX}U8;em-QhtoCHZOVE8hOSlDaf@Rcr&#Sw_)bk*)`dYm~*9o?i=RyYhSc%$%#T zw-QhN3~UeIB@}AnZ4>m8@yBzG=iiQ)%SX9hySmfXZI?|6LyMoCL%)xhAMdUGOrD{8 zb#vM^-t#CW*A+!Zn@$N?8<KM|xcgjI$f~S{hJWiXcuH`%CEAwsM$A9x@p?TITe7kM zOUZ%!d9`!<b@^;>?AX2VZ)SB)r4?h#r@+WeO)IIuxr@IsmKvlrhUM&i`9|Ue!;hPx zPAQ8L!!M_6%yc)}!pbnKW*3)Gbf4PmFLDeH)@nzlo=nXvo8VacP-Dr9^8BkBceWif zdMIU5ZF%(GrX^b^7|8lunV5Wh!;z~e?g*N0cl%$-eQ=g7qus@GcR$?_+Wb_s(O1Qh z{bmzqr>_rV$G-CayO}3gdSBdAd+g7S8wESI{r@sIeoOslap~V59`?`D{5p+?b>7s) zZ`&SD`@Q&YZQY*<CpT>r@|Z4|n|mj@;@#BZZ6|pIZzKisK7Q6ydD%1c;txr-^?`f4 z_LkoLw{T-Mlc>|lIgi(_ng3U!efIWzZNo3+y9E+Hew$gAHm5Q@OHpH@%0bo;wJ`4U z4suaXe`Yy+T@$0{vy9QFc!~74xN0`Lvj>G`(jWckxbn#Jc2F3zcxZ?Uqx-%6t$w_> z`6eCfDs(#9_<M8hxuzqfi?`m2cq{6+|C_aH-zk$N-Vdscq#LcaO^)$ie(d`vX2<rl z|97VE|9!Ol&4rpDU(ep#_ht6~6YJKme_(9?;mQ6EM~>fyo08%~C#t+Unj+Ufb?S>H zX0x?c*?#p7+RwgeZPQ%mgNEni^>^{U6YTkwJ++?wxx8G|)BmgQZ}`1i-Fo|sXM5l8 z@t^Zd>48h~^P0Kst9j?Q=X-v??r$IPXXDn4R)dYPPRt8dwX*L%k-j!RzDR%jl3nNe zg=$r}8y=tk^sD+(_KJ(uFSc!b@pps1`KI-T_l(z?$?#0Qa(>1CoR!i)kDL_iSSz-5 zv+84w+gu+QrOYoGpL|=McK^PyBM(zZasN|=XV;R9#S+!JHx~Jbx3RIk<5b(~A9H{s zly&#q`J7EBH{BL{FfX!awMj#pkos1~!q+OZb>{2NKm6qG3+-FqmtD5C(@wb7F*id# z+UB+HrlmI4_b-ZBe73({FiSJ8>m`$}ncrpB|7s_ecyfzx3r)PQn78{wIqSQC=?&*M zDgFC0<9o)!jiR>#La+Rr(c)0N&G8^du0*lmzWA$A(J$;9w{NNKJQ?{m>UNaAMpft8 zV2&M^?8W2OU;cml)}|Q~O0La&k^e+^r~e|~FN<#Ea(}pdT*zpq{n~F=g@3)}bzt4! z?)rS1_kQKadLM17w3qh(UtMdzX07|jHNQ$a%-3Ik_O*@i!>zqlGduYX^?tTVJaYb$ z%nx?^pTWPc|KD%F{rKhY5*9O<KDmCm^XrYhO>D0=6UUi<o0k|CS14Ab+}GjzvS=0K zi#x|!qB7)OI<Pf2FxdaP+Y<4qSVG{~3O$Pz?>?xrO_kfnBGn@pFU=yslNIXfR_K26 zveMI#qr0<@2EUwdZMFW$S(o!4WiJT0?mfHY^2BLUU#g{^ugNkyB(Ra~(xFoe93297 zaj$i<&#S++ZFl^Zvp2L7bWgYh-C(L&)%W|kTm<iznO7XDgk|@yUwnCyW8=DOt*bxm zh&=oKd3DaYpXdKQYW{XU+$WEHoo?vFnLb}D9ISX}Y)RnqTk`in``!&zn$ORi`nl%F zni9pMGva$AZ%vl|zu9p2oQQ=?cP-ZECZ89~igxM0yg9<-=#e!^><$yS{jP0g_@gIK zu+H=4EQhIbA(8c)d=9NT=gPt^#?f#jC+YqNt(KB*rrXsCmp5md>k8L3UVqkS<I2C* zK|W}^J4>97$i!<IS<DIj1wzsdp|hl_1VcNSzFnC&OMpX7^h8!nV34-Q*UdAXLtf5& z%p=w1uuhAsB(#1myXN7_h5HVdB?gIW>|3c68u@W8*O?9L*;IoBXQZ<2s+C{a<##Ln z(cjW^yLHv(RjU_YJy5c4;v4q8wZ~mFjs?3N%3M^q{Kobap{suP@7?xVZO-N?7qjq# zz*H6c@^xV~+k{wUS#NkQ{v<J>>sG|nFJD$N+)+>2y&`FfMZ<(#@vPX+R~P0~9bNb9 zD{HCL_k&t`H$}FnuDF!2o|h#)C}`?Gr4LijOpX(LvmnHPiOn!cEiW;1U%{Wn8JjJH zR(;Yc)VjCm(c{^AHs>>buaZghGTeQEInmmwON>uPfl)^5?c}akN)exn((l*34?SEH z=lEml=kt$cWS<%zkvddeCI8kjy}wb>-}wD(rLq*A4RbZL8Ye#J=xmB9^}pSo6+9<- zWACrXw4kJ~f%_(3KYva0=8T-Gc{y{v=Lclv*MAS(l(17{hWk>#>Tr2(0mWPPCeLT- zs3tSS+>knGxSQ3nOm|`8g6DxzLSp|kW`wQ0Wo4E3z;4pDmew%GYsPIq=D(9{csr4E z9&2^OLCa}!+g>;wbG_jw|5YseO%B5unfwPXyE5NjV0ig(c@*P?=!@GvWIx`~_~8D- z32&c$lREkT?OWc-|M}%+NeU%ve)C^7Ux4@d&ag{)%bqXVzj(re=Y18<%Oi9<7Usx5 zYI{9zaeax{?bG7zY1fRj|HuD!Uhy|xZ{4^5&KK@|tYny!78bj7cFRhac_z76rah?^ zyZ(EN+TL|t{iUXBw9n<Fulf<b^r%ps)O~G>|B?*ix3^6?mtA}BeSTxlQ8lq_rqfPk zoVUL`N?(+_;Db#1JkvMlXXZ>|VPk52pW(jA#7X63`O1{M%p%_9$tkx!o+{($dw=EL zltp&OHl+2P^u46;Vix;Fu3))T;q9^;UWq=Na@4M~G<nYq7kl$exxytcS6toss(SuW zVO_qY-FvyLnXI0v-`c^@zo%C7qm{sHRVL$=#z%V6WfU*?%%8!MmXO%*#*mU?^gd~2 zcedJ(FZ0AEpZ~Y~{YrL&N{ts;ccd-$yZ_S8F?pAK%q045^PhRYJ-1%l#8mHirvHZO zt=9$Tw)bdfaD*A?YqG6Q5i3g1{N$dV$~7TedxPugxo?zrOWbYqRCjsQE|O*uxn<+h zdwl6zDh)f&h&9eAbl94H(4;Hr^5-A#&b}_K*qg|(CvSc0RBMSoE0zHMUp1M>o?qfQ zpJSi#{JNkWtHZoA{HyBNnfjYOm~S3G=^!wp&0K3i>B>ti37ejB_DWanDOZv@8xyx; z_m#kj4q{<W4FX+kz0<q9D)=L=#|ECCxqr^4dpt*(ChEm8A5GAbX$_vVkZ;XK@7F&T zoO)eY=&=4!<@p<nP9<@5&G{Fj7W;mtTW#7T@kQ~bZu@`KuKIp|?%PcpyzDj<q!im7 zT*o(i`nLQ3-M?M?TAyV9`P=!M-}n8O-5vk0cK34mhOB-D$%AJC8P}dT{vtVel8N?< zZ`*nnX{~<o&EvUV`L_=bx4(JVyz}T){(!&k>z6kP1h|UMKkVs!rvKHIsZ8mn8DE6r zcpPWXdm&|S{Ok6_)mj^67HwMKz;Gh(Oj`H`!7U}h2J)LX1l(LyWOsC;OY!lNE|pxC zRj-wKxUG_}&YCf4<`y~Tu;kzSb&fo#s26;{Jl%fxzq?r%?jHX5(za@og1`cs#S_v( z7c$iKcwISn{#*K&{?naJPV<k>=;#Vy5xBM9w5fuL#pd){tJ~k+r_PF)_;v4wlOi2o zv<$S~u)nU7<9M{q=~HB6!@rgn6W{oXl*)cP(6~}~HCJty!=tZOzW3fUueq?*ex`_v z{eHvsa~Qdw|19eNc2dZr!1M3oG)Cr)qEonkFIpgX^-Cm!F9YkpuXCGHRA&ncJf5ax zY@x0BXjbuGvl*gu|M>9R92YorD0P12e4(YvweuctkvQ`?lA&V7HRj6}!GaBwr_KDz z6B_EK-B(pKeap6kS+5-V*HqnZVcM4Za_UyTX<c_+cTYPQ(e-hDcB|Pn?a2$3s~4(C za<_it$U1rAQ^HrL=m-1FSAJc=tTgkW>>ICZ_c~gtx7<r>{(T}PYG=T5fA@_4)qDPI zt$p4suQXHd>pcxA)n5LG8jl+v-2U?9+bhrWWy$kr9Ac6xV~9CvAvK{hXKO;d%Qp$p zq`So(pIsNV9+_LVce`rlpNOehWs@$|h$<^&rbH(M3e01TGj&$k(2`Zl5XQirrp7p< zdtX<5S+wMrEJh#GjaoauO=PV|_hQqNcy7%d65Zc_<njleKgDHM?0@!T994d=xrI?; z%5}a5)w#+39P4Jfus>efT=!`%!_uW&FX|;3zk9RcFYE4`f9CA9`YU>{g^jQ7A-DbI zng<Et*Q-I(;dj?bb3B-=VOR6@K$+~mnK@ki?hM=fPR37TXx#a{!fbQS5vj!+guD(K z&I)V_H+fxrUb?kz(WC!j8UN?~vA=1)@7r(PpY>ace_z~R`97a>UUzTsQNN~+HRlxn zy}NE^Ea#x@&>L9lbItIWNR+adOuMOFv;LZoKAxw|0$*{eNC}rPaJa`-Z@tHNi7|QJ z*Iz!nm0mu-QGfpT)4DaQ-}nDukiI!{k^ix4E{!5zGZaHS+)mBQUEs~&zq0vM%43yi zcZpwiH;pcGUwyDGJ$C!a$O)3^r_{Yx>|L3a#m#rExzvE==)8=d9mS`M1;3Qo-%dQ9 zIe)d#cZPFD(I-lN>+O1-)T()FSyE9)X3tZFg*VQLdxX6<mVfvAoMf$>vh`=tgmvnF z*z?x8C_d|{b$Axd@NkRz_nK!P9wsRsa$mWXcU$u=g`D8KD~sftmUek-)e0|<&w1Hi zb4LH#wt|$G3T@e(&7y3|um6Ua1X%04N2DK_<Eh{u8todsS1jt?`MijAx27Nea7*l{ zuuZe)z9kxAYkS-+c#EC?a>uv3zR?xtxIME)ymnuN3F5l;D1{%>f?s&1>)GC2Io0Hl z$=1VH_`Vm-k<3U5vQ+L{=B%80lK(r~tK}y5rhlH?WBI#2Awu9!%9+ou7nfVIZIjAo znRKOfW{QSdvD*O!u>(7pOEvSieez}&u32wWS@2M)!Y<DB@!DnXVV~ztGW&40<<YOX zauE+R9sgDAZLT|TqvyrXFIS3wo&3ciw0tkW(Wblxv9PlOTl$+zyYjg<T2E%a+qi3X z)dQbhe@g1zqpvc3+;elQQatNce%nue6Q%6$-nsAnd#(Q7?EfFkH~+Q&zdn9L{m<j_ zH$VNjQ4>&H;vc@mN6T>0jMHbHGfK_;bvc2b^_I(lXUcn{0$z649h#xg_x#X}>1VY3 zwZtudG{yZXtiD=vowatlo<)SHhT*|P1OH`*71Dh^9^I$5jO)Omx<^y_bZ^D_Wlvoc z>?+PC*6H<s!RnuK9XI!<20dCMm=vlky?9dudk@DF;gd|fO?MR(Wvc2~x2@XLWi+pd z<x6Pwq|SgXv)KaL%9y_%wSTYP>y_ES@psQvrI6}`M;~~OL@~cyv16TQRM3B&y8D8Q zT^YBt)N=hcycMsXw77sf?rr%t>zJDx-^$K+=iU0IQlVQx=+qf6-E%$Rb{Dg=R@i;6 zU9~a&+T;(u)jj@e;{5KU|7K?He_Z(R^P$bQTXoBX43?aCWLTNL=85@>W*@nTlP?#q zZ+f(%A-w+J`=^JaJ^YHe&&b$3>F~>BeK3>Hs=1W6F68Ue%QH2VRNA<Xny0f=iiAC? zYf*Uer(u=cxiD+<?kV@f6%=0_ZM*NA=_@v|Bxn1D>jlzH57ui*^zS<=@>(I#?Y^|# zQD$2)>9x1-G3hKcJ8{$E)|WFU)hf)oql8%OBHp+PuhxoU-LYQh$hJ2#8&Z4aA`bsj z+3M49d*goBLyQI)U&>Z3R1bdo=hT|ZPo-ZxQ4VuoKF2)&;nk%P+N#budv_!$^ko_a zSMPWKQuj#jc4_7O*OTNEf)zQQzZF*OVsH4Bw7k82o7hxgPliu1YmD_w&hcbjzj$2k zGEYkLgp4Jdo8GK-UCQUQiQ}AV$*b2-ChO_FTK(;ma@12b8-D){ch{GOO=|ztk-grk zf;Vbyj+{xB49C}<FO4%_FTD8RfVI}|3}MerQ=_-d_$iaS{h`F!9|?>sf^#l!UX_x6 z;F<dJ&vuWhPSqTrf8Dk@*Gwkk@Z68v4J4H}Y+RmOQpS8>j<`p}3<>$EKJ#)#`Acef z{4;9eFD;*;RuQq~LCLfP?_d1vx3_Mcxoqy;clWpc|MR}?THSa5Tc3T)zx~vYxm_0i z_E%Q^{~z1y);2PPulP~@X}`|W+X*)cdv$eNJ5MYV)jB37t#kI6ukhBmrpu`>CwJO2 zh|Em)nNyhC_H4PqT(_&Q&t3bl{KB`-r`cRAtRL<R{Zs#Zd;M`aDUJdw-*0o@@6k7~ zIM(MS8QWm}eed@FKcen3zWGuco2_zmv4g`eh8Ha_-fua4u<QhbxsY3?*3XqpDLr<L zJO?McW>4LJ?5*y%Nw+=wm&V*)p44^3&u-3^npX={8pWg=SF-H<n7;7Ds*~y=9NO=1 z|2Cf2tnvA2a(5>Wx7sutCAOBoA2qcu=y3U}?%ysQ!yWynB=7dk-M98_xIO!#P0P;j zaTWR8qSdN75#rxX8+)fcIn3IU$zpW7Bx28tgxl&2eoec-Jlr>ZZ)_(I*9{Mwt`5#8 z`a<1uXZm-#J${#as#Icjz{#RDKXinA<a1JmQhz2kSsPyB)7kH2aQ?hhalWr)<h$EH zzdtYT-Eqb}?)S_Y{p%|tJD+p!6VB`U*I8&We_?+I%K@Hh9YI@m&2&+BrrCAR4(t4J z{=PhhdrL<m=gZF@uFvqe=(w^YTjridhrOj|!$wD@AAyCnJ6OIS-t5&jQ^#@tHr8E% zt!3(OWRL0P1sqT+h<ll>8TVt_UeHk>pcCw_u9ls-ea0D;*L#<CYri?aMr7N9tN-ov z)z3ugx7zyjD6cL}oVoLx3P;wWsi869@p{WnJrg<^VG;lJt>VKcD>UD?rZ8wsoW!ux zvG~i*HQc=Wj|<tkxpV#Ym?5URL0W0zzuKOS+Dje^>YRV`GP^#FrEQH$vYfuaMJ_J2 zIX~B|ntu7!U)z9<hN0<umv1upeS2N@=7VQm23%gI`t7@=@rucl*#&}(53nvjYPstD z)pc)9tzf<_6w{(vd7$RT?bvQ%x%!lElf(H0?i7f9RoS@z@QEj~J=tA_k?9#W)w>)! z`?K~gvlX#UY&r92af;gVX}U!pxC6s3HXr{c`FrjEmFds>_>u)XZ#f;6<M(lww#(Td zz_4W7VYWBiEUX!d9Lt|)mp(KVWj!Xya@FCDss0`2pBGd-oH}*4<t(_&#TFELVZT8G zThh93Ox;UzW0lobWbSRR@UHz^Db4ULC7sEpUOLp~H-F~e-}!7B4g!pex;7>(`}fXD zyJNm?>4gOvhSQn~yRuGsJYS)uFW<-{rX2crSLpe&-MUR@PVdPQPx$Y$Fm_AfqReHc z>paSS8dUN|G&cH`Zx0R)7gprkUCS(Gq1du`)vAeG4L0$*3QL^`P-vADf3zhb<nz&c z2Uw5pDY?79X?;X<f`}u-3H$8gv$Y)-woI8}?mIL-Z!Vqp^~gz&g}-))Oiw($NL5kt zAQM|=g8I%EA^yi^XiTnMEXK_kpCYNl_2cI8m)o@SBi#Lxw{Uc>6yAGHQ_J<1^0IHt z>`9KBQw2JWpLVX;$ZwrF|7yU(KC|Woi3T^#-8!pOS<U&=4ldzJo3QGD?TytN*;&#m z*V{SVnCPPyxN@?c{6Q_PAm+4f@4vIFBx^<$HSL?{VZFRUKG#*_tZ_rkgcsXmZ#y&y zZ;4&tw>HJ^td*5J_vF5+E0Rg~jV1-$ztkBV^+-x!L-XGSGhZ8SGLZ;UOW|L2{n$!= zw+Tl|qk^_<V%a-&zhlF)yu|4eU-CAT$Ewb)^G~YGTKlPCyVv0(e|3e+`(C#!<LP?> zTF1nyX!v6pW9{BE=7MI?`RSK-7<XywC3pqqHz{ws@p)fY>%v!^wE{Veo#!3*H*_k# zJIZ?2B(u5BKI1?dOOS=q1l_3qsHvJ~jz{^HRNwnowe|Lmue{55^33Lc!~g${HE;CK z#=mp*YmR*jx4!W2|Hu4)QNL$q?~qaXU%W*z!vFT9Z!8D5Z*vw?OLD%wn2+tl&ep$i z*FLXpY5pC>TzfDi`H=iw&1GehD*yG@-JY-ebN}bS`uc?L{OZ<rcW+m}-^*_>X?a?6 zwUX=YGggOB{{0<#J-a|xzGqb{uZ(Hnk$JJ{ubyu>HX|r`w{qH%$FFPLats4MP0Pry zy#Hw>pH`(K^DV(F*#bkqE#g1g->hZl^=#$+=}~FBSS@Jj*`k99bEZx{SD>iyCb{?c z-qv*PyUb<MvM<@wI%Ttb)F<D`IGPyqBIjJ;AI;xC&;Rp(GkyP${oA(Z+ueS&k1@R` zhwtZy70=QGe;m9f89Kpp+oqmJHD|OKB+d!Gcs_UOqwi(Oif(6iC~MtfD*w$QBWk#$ z`N&+4Ydn*_=UQjC-*7l~{^;kZl=jDWGOB{}4?i~D%q0J|;h{grip1HAB_13&-FF}@ zz+-aK4?Dh@Jl^SRpE%x^zj{k@H?Nt^vUJsBxw~Z6-OhL&!t%P#|Jd~zKZMVu)nx0q zt$f?J@v_@O7gdhXqfL%?9;g3G@SME%LX?fSu%?>C&Ena@zwExuwD@l-p(uH#p;Wg# zA9TGNXbf}L-i8I<dv|x8+PvZT1>ppiQxj+C3i@oHUmhhsiA(X%x?^un#)kC-H0c_Y zKbPQo<-Dxyxlr+b!Qzcw)12q5{oWzT^!J7O@d(NHrOdv2SUX?2vc_K4mU<zvV?k8R z-2>K4x0?<n?$FqfBCjTKv^GS1vYJGYzmC@Gvp;60Zn$@fBgO3T-#y!Vs-jvK*9hpJ zzx(2nq$D%%pE}0}@0)5>H}Z2S|DLt5{NX&S<Lw2$%O8J#TmJvS{hRe)*V`wTf4*-f z@`rsvj<dz7Ouy&K+S~rk)G^Kc<e-=u-M64EkbQ%*d+cT&EtdmR3Z@nukY03t1&jZh zUB8XX3JupED}7buT69!v|KbfYl_wk$H_njyz$qoUE>Wm<t3>+2eyvR_W;ITqG+|NX z%c+-DZ=5=CD)!8hzPOVjUm`@dc`jZo-y?URAnM?;fc-P|yrn}nDr%d}oi_Jci}Kg% z{`ek-^=xK&=e6(n>^iJC^OmT{1ToHIiJuKVY)A}KvgYoWaFt!R$T0n1Uw8@kWD|qP z3Hxm{AKbj*>;2E%`djh6yS9!7+@TTn_ZPfgc_?=d)1i-LpR49xT9d#UDmuSRQUBg9 z)}z-%H_VrNzau{&^T|Q~+Dfxc`dmHCA_njLLtdSZJksE?Z&PHK-Mj_GS{19g_B{G) z8z6J#`)rObMUPKM)Ejt}0}eSfwm4sSYutD+NbakNDVu<}l*3sSv16W`uagu-!j?u0 zICuv{D@!^(<vDn^^Sk|qM@e3@yaS(VcK+-8uKHTx>jdkCliXifRBso2vFg-`zlXW> zHNQx4N3c3&u*hha_xxBf?|k*)(nE1<td@oRp>rP|nQ&G3WQZjrWBQfliXzdu4H0%V zte+QV>C5EI{VCVe)4Ok3@jAIDb<a!>D&}-_PCasM+Jztq(G6_6RvGUPc5n)K>ADEb zH&zk&SeX<ZabcOev7u(glgWRQ0;c!!ER*s~-*)fRhaBBWOf_Fz)m4?<78rj$wZlPz z)2Jzw?c#|ASNXjhlrlME8z<UxhwQmjrrudly0tvFv7(Q0M)Nvf1M4VpnFq`Jcxx?k z8zW>Bw&;9`EIj*nqy8qrH6K2gFJjV`X0=wm==`I+_p-|+&l}lU|K4oKKKb>7d0BOJ zw*A*lp&!0W@3wmL=6e0(dgg=sm)`utZ(ntF+Pu!+w}L$UIhQRs`7LYGv87Xc%z3A< zb6mKVFmLr*hR$=cN34q1-&vNoUO6yu)9Zx}-Q02a;!Fi>7Jqtw^1rk9zw^51D*o@b z&+(R-8q*|KGdc0^nSIxj?~1)O@7ij3u9IsYOFy%SOLyC~>5D`(M6QJF+PjePMs&{# zpV}wO=kH(4+7WeJJ8nKR<BlnZQr2F|yA;RLVRm|7YAcuWuM3<nIs%z_XKkMJZQ7S- zflUj~-%5J5W}DYhL7}<aY@Dp0l^8`oSeyUf^n1(Sx&ME>zqS6)n{#y^{>p3nFTcNR zrS4t1^8HhjWMA&i=1^B#+uq8c_*VG7hpXJh<0qHgi4+n2Wy!F#ZX-jM^@$#r*tO;# z9^U)3;H&Sa-h`lz#Keog62*Rn{`n=k`p-VKbN`xZKR8`wwEZ||-_aXK=6C*o!8CJD z&y23RwAB^rB@BF4&8-c!ycdcOo9cggzu@2E4@*tOE;kp}Z_1eX!l7g4qdMn>s*kp> z3!Z5D(@BBLF}!Jkh6&dM=flokT+<_7E<P(PaKHA)F{?KAdiUAySXsjUX<u9KFT$~Z zQ`n(<d*UWvmu7fST3s2$<C?u#+21j7wZWTYZzYG*kuPqna(NPwa9hG%M>XV^<LvL> zwXB~_<_L)V+1%j0$m51h;FMF<8@yH&v;WeRlG6wl;5yUgFOiWnuef@Bs?duB7v4m% z<|2tL*B2C9NhqYqd#+|r3$P3gx?)$pYmScpnmuP`#ICuRAj0KvzRIbzk!#a}?zR=N zs(bqnzGhHZVpkkia)4WwW1ruvN%40cUA48)2wH3L@Oj4c%g4=@=HGl=!fSY}<i-N8 zeufLz(~~B&|N9pCIJe5wg0Vrd)|ah3Vd?a}ea`R0V_h#vY%ts}H*>{o2l?_k?nV(S z&M=#~RdWQ-a0Up>;#WwWtWzan`+%dhyn#jaLXNF)pzO`n)1DUaalBxZTX@4Pa``01 z8TJYWM{jt9zMfHYevQ{Ir+lSVZ?Yafjo9%lwl(IQqhp0U^ADdLt6n|#m@B=a`(m}h z;;acS@!f&-ALqL)zjkN7z5M=gZ+5||1y>wr1zNG$w9lKfd_~Mkrh}U|z3}m5P&a<L zZ=Y1Gg4FLf@Aj$w_uhJs`St5Zd{^ohsMeo0GDw{G%Vz%Zwv(YO5fZMEZ@xVfQ+`=< zeqO&~&9svH$_IPB4r;4hoyc(gLP&rq1Gk@*F>~NIG2;MEH4i3@83zTDoQ^#9y~_|T zufN$uKVWK_zN$lG=lgI4jgmBnSt@-q(`x;~3?_^G_!YlWg17qHo~lL#&E&b2^85am zrHC^sT<jBEyh1%*t#NgxqBEE6diQzt-FDHhcbc$xn_qeV;a-%M%<(wU?nBqIEYE3Z zz2my1q!FxdsBv%Kw}s|`E56;WerK4~^XlQ85+NxO7K;fxc8Q%hkgzL_OMBt3_v(z< z6MOznn=BN6KY5MDw|_}B^Cav!?tH81Q(Lv{R*}_*$(ts5U7DcVbYJCv%Suz}wd#}g z)C%5kKQ#>uKbV{Lj??|o{Ky9NV_#SgYy3)C{7Lc*JKLQdZ5v{fPM5AK2`pI^n6JsQ zLcy#0U4znJ!LN3wL>A?TiaO3^ynJOw+)I&&<R$x*9+W$-WypEh@jA<0@yp5Q(~aLg z-B5YaXTuS;zm>Zf)K8dA{kJ{qQ_CcUKB2oaU!<npZRcm|NfF-|R(-enOU(P-ys9rY z9W-T`J4?54pU~O++bkZwd&w+qp8orhc>b-@yooOV7T5oopZsLLIJ4*P^(^{U<}=yV zJhvxal}>0pD1ZFQpKB43e`Va8m=-vus|NntEi|{qK1L!wV#@@{x4rq!@?W2)|NZyx zUfuKT{n`Ef{u#@w-do#0=(wElKBB=tZL9hv@x@I$OIW=O_PvllZ1?NuiH*yd8#KDV zt?hB?&(>q<?>*WS@>q(arup96vU9CcR~Pd+eE-yOWNw{Ol;z>HHUD~YX70Q_d5tMw zLG{`l^D2+sdhVm%n4HmhdG9VepQtD6WOA&cUes+UeRs>_Z}>)q)_~RhKYs7q`~B_v zn?DZr&b2*vW7~Q;<$G4I_MDFrQvG{a&T#4P6FO&w=XV)ZXHU$Q+4|g3T6&kqy)uzq zY*(B;x@KmHFO2Pxie!1rAog|NMA_tRLT|a(YM9uX=xn>0l3vAF!L@2H!<JKK-1|Ol z{#&!@LYC8-Sr)y_4=U!~Y`C7>_U+9c(aarRPMP2CN-{C}8}`XezUT3>vmeSX7X?Po zJ!`djkNl4{k*zCRH?rMcmLxBdtaMJy{$Jlkzpt|<FwJfKJ*`3J@r58xmmp=8Tfs~p zLLTYaPo2`7!mitxKhZGYC`Um&-vOsXtNwi0yylQb{ep@|XJ2mx?-1V|o|d$lX@+iy zpX{7{QCGLOIDBZz%IVqi^7&of#>JnR=N|cF5^STIb~G$h%gJYj){esE`%Vacd!`z? z`qp=^Fs1HJMy_K9@}*5#b!ST6K5&q12nc6k$kWj1c&c1}VZZgHL;Z#k&fIZ(*T;X+ z^;eoRDgKR8$-L|Q$vYDFr_Gu%VL{c}K=&nq_b&^+*f(j_LeE19GOZRHRhcx_)-MxM zeLvYf)U)LKx}4WruJLHi>0e*mUhy^9{`Q&o*Yw_27i8?nyY%{3Ossj0T*jF-8yaUl zKffmDX4gcEvSsN@n4?WJwj>$dN#&jLc%uZfL%EmFs@~c*?^h>uw5RSnH;0wy@!XsG zdpfGx87ewmW-dO~p)hCuTVAfeD*g=*rn5i3p=9~Lz-{WO%OVGZgmPq-J_+@bcjmM? z&6KECJ5`o#XT8`p*}?@)g=={mC#x2f*#73JXgbp^*B{yOnuS}xDfwOPrFj><*U29! zZZi<F=Qg>wCxD$v`EN<sg*ZXRnZbW0)@+K<Q<PV&^VI2|{kl2VoyjI{?Wb4buTz<u zE&0VjH^e^p`{!S6jjoWPe-WS8Huei~`T6`2=XbJR;^)6tzVGPfj}7@AK2L%gq!V;) zx<n7CSag;$KD%%zOG8-cedQh_CMS^{Jba6`Tky<g6FMiOzC(vU>OqfO<-C==O~vyq zCUM`cW|-7_Z<=vpjDVJa>ajf=m86rL0+&8WQ(wI#oU_opxiF|XW7S4~Mz^#TA<y56 zu3PK3YS-+q&l?q%ANgr-EPhPbQt*fHT<Q4S2WK8AUo$hlW_dK?kY2_SmZdR$=k<d* z_rKh{p3!K6;>COCk7w<Y{jU4kA&JBNTQ!fvhonZ2gl)T<c6&5koY!jiU%M&Pv+m%k zYo;u7Z!Di>aL#kv&ev8IQ$HQ~ujJUnqP~&oyn|o-YOiHY&tiZ4x$=Ht%a=>J&RyDF z2ezy#WwPBXz4(Ko=%?z^4PG3Ai%PngzV+5jDbX}xp7ZnBf+yYytT%#OJ@?EDUN}Lf zJ!nH}-{15-&zHDt_+iS-!FiyiTE0F>$>qfggFuD~>oaez`X1~$nRp;&_0HwHgZ8M` z8w;DU{A6JL#`I2Hty9SQ^<~u$Hhw$ipA#rPRl&}FsO(p@i}j2gwVDrZYh7%(Yn(H; zD=2>5Hcjx*p1h)a|IX;P{O7w~{ae5Oul$X?{f!wf-Q~Me)i=hfyp&q};-u@!K;AVG z%|Rt{cji||d;I>L_T+ru+5X*n4Chi8I!HPeZPw%IHcbn9y6tT6lkN9*9TnTL|M!i3 zAGhWwJh}hz$<+Vyp8ZY>wnRuVtZ@nUV-lI<wr1JtGBNpnF;?cF^^50MvTT)m&f)5_ z@wI}^8_sNlRW<c%s}y`rovm_}{`bW5zF4XC#D^yv-d;?4v!Ya2cw<PD+4_ygYtAs0 zE!I_RVJP&o_;mCA-Z}Qm_<N36Sl@n-VfbmYaQ>7H?Q@?nUZ0uQS>kDap+M{K$+|BW z=RYv^Tb|rqsh9CG#>8#?`^uO6iTw(ZcFZpR?bAO*UzOw(sx$c+_&t0pBUkcg{q&xr zDTy6E`oH#nk(u-T<D3g(3**oIe%&^G+o3ZbU8GADAH1mEVe@`5{{r#X^+`Tbr7Kp1 zEDwBM>X_J`8$Zi0;k;w)&$`Ah9n${72YXs|TXI%+goUs#UY|JoPt@g`<);?@{pOzF zQ?aP`+lnJ`b$hbsPPr0(EBMXhGhdBwh4%~J(O;aqIcrV6LBNKzOC2jNd9C~-)p+xi zVC$yC*VNrVy!X^~XWVyl;Zd1mJ2E`C1Rnjdra3Y})<N;c>?3;IcYDp(Uw;j{S;(|n z(=l?Az(+yG^uWFsQ>$-faBU0?b-Hl)#nc&IRpu|=Nc^0#M*FPVqWLR0KKB^iTkYwm z{&oK2gW`L&L%+<L^`b*&^|UKZ0$16m-d#0G?c&V@OM|GBjZMNW4{S~zy<s0-*qX7R zKlIk-`9UG!A#cB08pOOfpS|DQHNMR8(t%SMA%(Y}CzZX@Ne+=TIlJiAq8+BM_qwqz z3y%@Eut|0mcU`C(=+EJAc=F4sUvHGsb!SG&*=_UoJ}}qFw8DN<=e;bc%ac|+baIKY zT|3t-`#?p+<I&f%Jja|<<<Fa^DSYl<Fq@T$;klYr{?#3BePvH>9j`d{E2q!ohVW<B zlIN?wd+j|w(@*sl=bSVisofh7i8uCWa=NR`y~?fK`m{i9Mbd)(zVU}`SMQg;mbPKW zhYQCQkNq(VwDT36F5q){`il>XY879~JgA<?qV;0!tBKc5uX}|#Ocgfoe0$_~lFuEP z5+}W?E-#CJ`)>sW-01vhCO&WPqV&~UUroPbce(oGcIm$OUG)Wb`7U})WSH3Wiqp*F zbaRt?tkCY<O{H^NTuKx3CHL&T_eg#D=PUQVdr0k_So!dG)oq7uf`>}ZyLIvA=z5tt zNbh~Cl(lf<cY)vXp}#gT3*LyG(eOLUdA{Mi-wD~>4q^$<PwsEf4Djl{VYTX#lxSb} z4UzrpZam(2e1ky9hv!Gx*8aS+zO{3MmQ`r_y1z0_ms-y+S)X{}&1$VUF0V&XC+5xS zP5!^=XjABsO_GLcIvIyGSq~qJPrvcJ?q#T%NZFrTy9}i76=rTUc<zzDd}2}X>JK8; z)243WDC>;xeI4gJi%013LzW`7&XY%HoVwvHmi)A7<>IVGM?2PKsDEDI@3VgDwwXG| zTB7RhnOaw*L|rKFo~LNfd{rZOYK6q__ePdnhAx{|?75om)RB<Wuy#>aY0PpVPo_0@ z%3oIgV0!RONift<-ejGZWuIN~R!xTa$yb)FZ0dckv2EHH>kHH47p+=tW*X35`dU*? z>AR%+T;FTIO9Xq~>uQ{tQ2Sx)y*F3(-JbVw#i{uhzlW<zn`W7W=JfBIZ@$Y=?SabO z{!M?AcpsIUpZ{}q$Gdh9mcKTcu{L29-@EPerLRk6oqxFh$JY3*uV2gNy?^)5L-oIF zvN!XbErHvtIupZm{uI9Y>u!~v!LCqTSkQR?qKQ{t=kgR=je~}dEI-_rzGb`b?>F5) zZx0`yTl;tZAH}Nw{l^#Y{r=Bg#HXiAr>4=Q$mICEZ+gYOb9kTMxB9p_(#7Lb{lpUz zj){+-u-@Vi{W5*aym}jMrqt~Jdju;OI!dlRpLL_RtFvnT&lR;24@_7;PkOuM|DAUG zSGT(U<iAK+5hSf6X~2D@>)8S2BxzB@MaSj$86B7=_<PcWBYxX<pZd3Pt=dgNyS;Pb zZvOn^yxYDuA>Bt~)g}E^uS+8)?G1jk?qf~pW3IW5uL`x3^f*%%o$6V1xQ(^SX4!_& z7*FXVbr&o79UZxr1*tFEQu{#I=F*`GRvw3)BJa*GKDT)P_f9d*lhe76L_L<6yK~a7 z&D?MKU&yI+<wW(km(;feUhMkr^E*!I2A9rR$qI|zn~jw$D^>PQFK)0;IxKO}U##SY z*Ruos(eJ{xalXq`+&kYcW~0a4dA8!J_b<Mh+Qb-m_0{U%(<DCKTC{wn`BXbL-Qv9g z!iE1A+&?Wgx%-ElVOrsqtJn9eG~b^Gy4*bbo6}dFOqKR4Gd}P5@`R~V`&a+Z&nZ_` z=Dj>|`HsZNd5vl2BCKa7dW5Z<Al1~zW6=26(<grQ#cGor)wFLuD!Rrm9y4w?ZFrlc z?sMwqYPGDO&V>8DuUc5_-?On82{dRbH!_9`o|VaTi<-z?7Pvq_BO~0~chRiN41r5N zFijER)9`$v>9XYme{X~r&!M))+F3jMxGtEPd?+ycC&S0Xw<#@qzWjp+)5_+jcYK{2 zcr^Nx*X=ibGP5{BH})L4lw{%~9_PKLPb=Y|ajeNAO@a4{bLK|Azuo6xcuV5dg0Loz zWk3G$?Ybgi`h+j#Lfk{^Pm#P{d|er*U6Tw#r;6KJvz_1d&*8)6lSyGU5<i!C%)YXP z_1rX(*wE>V*RqBxheb`Q6_V@=*`duIT{3lAoMz8Qzf#@L(eM9WwKfoY6TraSZJ}c8 z5UOuEW!6cJ&Mx67-6D&lbJtG2C0d|lT`DA@{wn47%!Pk<-Vc6pA@l!c?GLvD3m<R3 z82@&b8vltoxf5=3&#($^<kVf=aI<Xp+`T*YI&CPhi;wzLfAP0rrNgdC_Nm){Z-0~Z zy5#)cRV$1mr7fz9Zp7MJHca5iO75M~A|861d%5b4U%NXKkNgc-!@g<O%6W_K9=fia zF=d8E&{rO#C~>1Bla~E6ePqQYQnmEarg<w@JcwX%cJ8;Hd`o_n$i|=bix#Pe9{MG* zVdDJ$`?@?UCM3U`|JKggAf9XG$#tAUx*RMj%qKi~HYDFsXbRdJ-c=a&r^d*8#tp$X zVc8uSE-CN5&oZfOJ65)Ia^Wi%GqqhdyleRKMAtA*-596KFJRWRUZBk6lD|FUE7$*T zl%iQSzmC5>c_vd=ahOxprQ+!tIlT;*?cXmd_2{w`Z`fDZ6u4II&^)ny<*KeTZ68!W z7Ga8J3|^DS;1v0L%ZgQEoXfwti5ah4b=C8E`~1BQi<k8;{Ib4vlKDCD^IXjj3sb!w zBtO#8*%r3Ee9QJznjASV<Tp&T-e|;j$N5k#OM`Wjple!$pv6MD%s+h&_BU5fJ-06M zp>59X8(F87UZ^u%KUg#8=-O|o8FejujSlV4;$z*PaKEqFcXLgO{=KTi_<yJFx9_!# zPy78~vAfPwi?nTzLoUugJI{4O6u0WkD1$%kDI2pLcvu)~QjazA=;>{$i({Co_4Hq{ z-QGuQr?daL;>>(+|G(S&)A`HSzbUcY`s9CmiZ9Dz*7uA5wqC!M6ryx+PHWfifBO%0 zx^VhfZN5_K|Ky~8)xAow0~<?zch+`sE&nRB+UvxmvgaDRk0dp7{&*O7ed)r#hTpEZ zE!Z$G+Q;r?awhYIKksk+z8n|5?TwYdY;C1)_m=NITRqb=&3U3o^hV+CrWKn~f+sBv z@>F7x`13CRU&4>)5@rwT6Av&*PxPE96rt+8jd3@Z*{Tq|pp)M>C6;~PTkXGjc1OhO zYck1awmwp+ceu-6K3V_$-sf**t&>cP&ssj4k*wC_5GM8FtWool=iCRq*#G&<)K8H< z$;NAQI>=!6rNI0CynQ{{dSae)d47Mn7GrTMx_;M>lCYaDoB_7(v;E&rPB*JQUi(hz zwCD`o7c5^=7{7>3+3+GPY^xnF@AM-M;+-3ASZ|0=e6R9s`<%|dJLJ1<D~~R<WO=ZZ zrGG}@9=~gOq1)S6gx}B55}e*+wvO?Wjl|>x<MTQ{xPSlZQ16(}*Df15Z*9zq3vTQQ z+HZNMD90XBQ}2DMR8X1qTT}CK{4BF;3pN|oEWWVfMDG2Mwhx0@FNo~Zbal%;oKp06 zfdFU8ZPP7btG|4A;$~W7-0xg=?VHXyug<pO{1g2G8IA#8KPkU{eE4;3Wo<*sz3tPj znV5}d^p)|q+sfowEb`lJ%guA*;<C0T2a}$~Z}UU4_ZlhqoZ7Tz-od&Z;a3he^z#^5 zd9B$j>eN#e%Jt{r4GA^wN1Ir^c7OHn**kghA9f{ACSI8}9~ka2cfOIIb#v9R&;oCk zwAV*=-7tOiZL`L`Gb}&9`~RMGb<Ooi@r#eytqwh(#k*jU<@?Fs^}iUhDxI1Yu|?zK zM+g3ouU_n_>Rj;t?cYv~(!>RpYpU7)B`>d5*6#Wk6|j4!%|C~n^9$~~9{ZiJ=Bexh zk$2ymSvlM~56c`>`cU`i-gjAt?bf=@SGFux<$Li@Tu!Er|0SzngpG)6jn4w6XIdMR z9ZvR5=?=?UGO4nlYiqIHLbd)W`fZjXPM06Hzt+B-nsfYG%k%;cx3XqNsg`>}x68Kf z+HfL-OU3J{)J-<~jBA&Brg_WkcRo5bPx3(Z?nRd;Ivkghv}P?%ZC>{KzD2?h%P(SH z=Ra(mx8?Gm+qbx8)jwcy+P~P}rq7l0_QsON1=n}%-n@k2Rneb?s$XV2mk~){tHU+P zx%U1yu|uJC8CA=^zdU(+-BsJ&EUku-TWlZsUeDRu>?N=`M&yj2)7iDw)4xs%7u6{? z)T>{2xp3?9$1~3ft@BndmRk3A!|z3ZPhJ1F?eA0m|A*`(?>*Rk?bQKRSLt<&`ya2W zc4$*_dC+C}x=u0S!W@}*-A_M><v!e1AQP#bu|MpJ?ve8N+Gj^ka}`-A75#g@Rjqj6 zhQu131rr}t>OZggTVB#M`M`_<t*$ALqt`!={Ccc<%F_ioY<#yDi*DWQ73jA3X+{;> z{Kc8&%nS?Ogh%^b_1rh7M>6bNYuYsf<H=#0jM9p^-_2#S^jrVR-R5zLg9GEm9Saf< zi|I4jGueE79co>Ct5Nje?{bI9hY|!2L~r>&srjjDaKQ0tvC#`(>}zMXcjUNYD!DGv zy7+~p$~M2AT}f8wt9zeLH2Ik!DRuLSfPnVIlVJ?33$HetNdNFT{7$S|@YSo*a{-q^ zIXYZFv=uGbR&2g^)zscRridHDLT6pPZ$(d;_S1CFVcw>cJKaYPPHLFb$mqinz`Iz2 zXWgrJB8iOqYRod7f7l5-Jb!-NYQOO`&6U0DHr|tu5@)V1T>K|{@AFe(X4Cyk152l! zQg(X5%@F4%E_tT;J#$I>g&+K-^Y)Z1I})coL%7M_`qDYpX;pJg^y{v^@%CJGcd8iE zJo&dF;Y`n6_O89&6U=yjOHptNuX@+4pQYb^PyhD0{&l+J&+^?L{QupwUorE4HpkR| zAI@68sZTKcx;gppy3{z4JIlhn#8Vp?pB<Vs?Sg8=uSu7F#25VAm^!Ofw0*B|$Ksq9 z7JT1csh0A{$=|<u{r?01w+~+i<vz%nU-x?Vil6za0=gZ^2GKzo|8~4Pl>K+_xho%Y z|FW32S3FbI^Hok}NS9*L=GUo})Ax$I^XdD%Ju~dqMf*7IW?(yaisyA9!@Srn;(sOi zx7qJutJqYLefaV7H9`fuU#3sLzT)tf*x-fsr)q<yxbw0kGB&K*CUg0@C;uk7g%>X$ zSmdc@+w@BLyYi{p69PRtn_quF@c;9qZJ~A2UT%Mi&5z~$Y4GDLX5BPhbq4#T3XbZz z+p3It{%uTuwSVvKzzy7scuh|iPqPxce_!I2fMA-r#xJSOkFEy3G5P;S_WOd{J6?qc z7DOIM{`>je(a_k{llRtsU-CQQr1;)$r)@92a%BxR^~{wI+UYu7_*U=DsF{m5CO0&{ zUuXaH)Q`#8kvsRDI(6XM`Sq#)dddtq6AJ&o+0_&-K5frVyMsZD-AnE6Z@QQ9^m*Fx z4b{h&-b|d5Tg4qPWksjwgZ`IGO}b6zw>o58cx#??E1^s)vGM23(%$CQ4SD$oU#$(8 z*&xHu`I^^m_JO0NJJluh8k(ehHhW#!a^2hh{ZrnIy}s8n&dA5TKl_@Q`N7`miE_Qp zCwph-f12p$-girP!<;FW*;BIE_Ex68&1ZQXa`Snbn(MVKo>PBLDW21$HcP@K{oxrw z%Zmq3-?^S`QL{{;DWSFVoNR9PE{|T91qBiF62C}a)!lec=-s;m(*iT!Cn=ks@|yf> z_Uef{8C-O>t!`gxFV6S>Vu^x_{OxrHd>^&{_if5r)6=$7>Z>!W$gu_ge%?4E(w($F z^X~CW{BdPnJ3UVL9DZ@k<jQ<U=E)nk=&`g^y==X%a5+E2baB8mSN*uHsV8mrOscxi zELxVetN-?nOD`5rY0Ow<-OIz*w9kI>wi%VREB3G3JEx&tWiw~a;pfiZTRtY(E*I;4 zQ5oA=EAUEw=B&o0EPCHo9A35JsZy!tl)Ej9jZQmyAKNzJpHA`Vs)s(`crFG-na%bt z*}S8Gzw+@NKCU}wo6@>XuRZhpVxp}z)xdIJn(pPh3~LTO??3)|;i~(lZ``k}oo=Di z>&Sde^>nX9)30R=TI<xkzWn^s@j(9j?3%Ni+|6q5rYO!hoX4c|TtP$d4D;1@SKk-3 z-<19ISo7xPn{#)xHVW-B&j`u7@afgN@Hh2;Z`WVmSMuF-ts>j0Gwad})1H~FOL4uI zx#s8%j&!S|F$Ns(<NnNC!?(wy(O0a8DedDT_5#kYX>IrR+}8|#pA_Wwt0e9J*TgAn z17$7jgd=S$-@Cp&zu;}*Gsb6Y-`<goKAO{T_G7J~q^nx@q^&G_=hXFv&CN5v&JnB{ za^+AM>l$mOYPk!pZhTL<4YoCxh&sLT6iJpodg0QHtaH-UEghnbhgMYk-P#{<+4`;h zwPVv2jV?x>bbA+?GSOC{<m(T|t@9?onC^J`h;e-6>Tuu1b8ekDA@X`HTPRc0W`%bb zEuL|x%$S<*n8KHSsb^7K@odv=3zOL<F$8V76U8}gNkPTbpL!)nBEyW0KJ*LiNKbs~ z$hXpE>7^wRg&{VZbqz1b@NsE`Z(0+;{O*9D(L$^BR}9&U#iK;{0uR)@(Rp>}w#7}Q zR~0Fp%n5<K`|cn1N)tJ7(aB68`qI&T7TGlx&oY#s^KI+T)?OfQTGo8@;Ne0Z(=WE? zV}uRbC*I2B3uEf;xW?|CD-+II)yD8Uz5b!PR>6+VxBpK4yLr~n{h!0?zuMV+e&1C8 zc~6jrMa!Ne4O-IMJh*NL?3(E|(_>n0nw#@xkNF9q*}?y;KYv$suxFQL`~BjpH%l!4 z_xEr3>%a5Az5CqsbA8nY|NTGNR5=S>%knIwwq|raTc6O|$MHU^tU6LvZoANg&U2z_ z2X}5UslMJPHN#^2fA+PPS!N&Hd6p%Ifk*byi%UCqMlCP-y!T)I>vIPmyE@*EWc)39 zKF8<%%=zAzWIk5LtM1`Eb!qAR#8jaJwOg)zRebS&M|r7T*7I+x{#t2uT)rnAF8ll7 zGs88dM(!%#)C3<ZExf%cI%MUPE%9O8XQkfNZfkyAAz+}T>2UI5gx411rUdr6e*-U> z7<TyTY|T`VZaCdpX1nR0XO7kWzLMUgSgRA&rKQ<{uLPb4C*1Xo&U#Y2KqfI}P5Pzg zQ0Ihchqjr^e9lrYp7_5fJ<R*bhv-XNkL}&}&}rIa-@qm}UBx#oF4d=6{@to^k;^H3 zCuowHs%n<ub99Tg*R3P>PkWvhkg{`q?B?j*cYEp2BPQ8d{=Cflj6B7X@0@cs+;Hc( zT;=;Kv78Bx?+=$QzI|rFPB~qMKK}LJpMOnsySI6IzRs$aG{Y=5$%u>BwJurnoOv_3 z&gU2d)6J?Ky;-)caf|Cds489gvGdfb1Qs@~_ZKFc$R!<Ka5%W_sK>^0^A5^HHlGh? z5qcOi)AZ@nMz+<KGj^1A9eP-E)pQd#|5_fgi1ue9rRQJlU9~M)KV)j8*M-^a7k908 zuA8}9Q>X1)YwEOslMWLWUyW6}^y13&GYVHG?``GgZ<)P%*2BB8H(zc_UJ$ccAs|IQ z-r%tHrH@JHt7ID%^4PAruV1(1K=`4c1v7uu`ip!%9bB82Zsx-jY;wGD)hXjmC!(6w zWactB^v_dJ>4<thbxJ;4Zb;*?2q%-S1A<;00{??T_nF-KaxN-%eSAVnCY!^gHD|J> zU36C{ySCYI_JQjjiE~^InxxFJ5$0Rgc<rdx1(jPz9WA{3q-44q*)P^HDVXqGG4|k# z;W2X0<vVP%begG#F2~iX&Aw0gKBRo!ocJOkf+1*{bn4`DGyl6j<%@d1nmZ!S<?o%H z#>HEv37%c@d-5WS*Ee^5o5vbpmd96k&Xn)unzFhTJAJfr4cE*TIWIETHYbbkd({2k z-|jA!oquoPwV9HKjGx<HzW6!k&hF3gx9WdP_J8wv`TL*)9J;N392a(Mjcr+TUzz#n z;!WHv>m?SvTa#L1$Xb+SbD8V-@%trt#bR6Di<K}*+&(?idzRPP-us)48}5An5-+31 z5s_5yI=|FXIAjN()Q+g)r@rM}wXwI}uU+ZdT{qK7B|wsc$)s5~^5*3;lUf+0e~2tR zu&?O<0>6^=KGE0ed>J0PWw>XY*9e}Xv>@=N<DcWd6-?(o<!at|eCsa_cGY4L1D1gN z<8Knw1dgnn$+DzJ;Jnkb+`ehexB9P{GEazPyK3ojobBx8#{2S3-I2fja#f;dTb}vb z>nU;6AzF@oMI^uAlxZ6t3Nr_-S<C$D#KH;j98U~(+ig1_^ZfLJGofkLro|U82{BA6 zk-YH!w(O7Sy7~=!1WvSYNaki1S#4OK&F=E&7V~xKX9-_6@v|Rda_Q}PqG8aivwTxA z!-l%N`5HX^zjx<c`<lbDu&Us|$%l2?Ob1%>B{t7UQ)KgSjJo<}`>yEH85$P@6AxHS z%Q((;@RY5$ql0yrz&v@~TRu%uwk&`5zgTl()6t7ky4P+s@w`0$_s;nnrFZM~<L=(H z|EK@I@$QwJr%}%zwa>pR{3P_`)u{Qujp8F%6$LB~tX}p#Vd>3VCz_Z<_yxi{+3U<o zqB6=O%Oq}Zc(A8F_Weow|33=y>%aW2k8y0+yz|^`_4_{*XD~0(_#GAg|J%oFQKxUR z<uz^(c$?n%{(#tm@N1`clxg`(9G+ls!1Ip!f=kRB(%5!i+{C018_IUQ>WFYgp6zX4 zN9}7Vtx95PM<Vr>Z4%thYpqbVr%mILYmQ2Hp04kH*Ymo6MH;+b*$M69?D?tsN~eC& zRLO_hsx#XAoP^)XKJ&=2@R8g-%i)jF%Qs((^A_c9f4z4@N6Q0|r?zWX_c$C=5s<zA zx9dSmW!OKb1Kht@#9tpe`OA34_j5fB0!#k)RmrlPto+ZC^yg?F+d(a>c@})(*Yk?y zzRq3tF=5#(RYCDz_7+7l64o!|7A<M_`oZwvn(?*f%}xPXg{}owZ=G3+UQa(_C;8Gj zsk80z!)>oJQjFL<JPI0eXSnCiOq#3fe$oHg<5&OB#C&%(sm+>nLj2llkK@`6hcldK zGZyuEsp#FkFQR>^_BuoT-^lKBva|XZZO+&ruqw6sqrfWPq<wF#PDF=Xv(owY@N3;( zyD1EN()HK7$8&G~;g`B3;8wujcY<5g^EW?p%x8NWBG0udq_j-Wy=&jnfLTWyXH5yb za(`l^jHCW?t<@LxDi`Q$)pX3>=w4<kcW2|I$7V}7=0tG6cFVDmk>Ck=F0kcRXk$39 z(<kA~b8)M~r+79x?Ula&k#+8Zi@uS(`^1-PyXQ{b&bNEr;}0o6?+U-mHPl)bC!-K~ z#fxWA=gg&Cc}v(c8Cqr;8C`L_AET{R)B2_<-SV8DJv-N%Z<lXxy?d1*F)cUFwB_d; z_Tx>5^B6?S*4AHpY}=g{BfI*d=ElpSMn*g9u4UfOSsna7eVT*_)8~oo*QBPrY-~54 za^KymUSm3k;m$^r8^tVNXCCyZWjiK&HLz4``IU_;8>eLK2o4D1w&Gj#t}K4@h0R&- z!oKl+JO6E4VR!3=dF)S0#43JN>nEiBm5@ouVU784=JxCNS*NeMEDE{&`pS*W_35i0 zfB7Qz`0<pq^E;lnc5K|=bW|{XzM=68$;XcW!g~VwXK_E9?9j~jPUa{7J@1LDEUXy> zb~HJ2wBLSx=zG%2xv%%!citoLwYNy@#-X<fnjuSVZ%Cbq+HJaAqW=uX_G#t}ic=Cb z8#6yBs5L%s&=G2!z<7(XdvnE{Dx3LR#J?5Um@&qrF!eCB$zRE?3eK<GRR3FE{#8(s zL+`5t97l9s@hS(~M}~{YTO3#2)UmAL)NjxD!uZrx&u24Cem3D$VsDtw#d{OhE5E<L zrEK-#N#`$Ct+F~iFY=32A?ugiK9_dIr;~f;p4d|I<yq6tkFP~{KaX2|bM}@aOcRY+ zrIs6AH7enImm>W4@}j(dhZHp5>O?g(=~a8(Q4b1#Hp@F>=gf4r--jPcRVm%PUG&TD z;5@Nlh5Oqda4hO+eJ$*_bft+)?&E^DQ~9b=KGpd0H_Lc0*raIp)bLI6Z6gN0Fvclr ztM<#3|9`P(LZ+cJ>;4aw0tGRVSN?1(Ua*yWif)70nIj)pzt=BT6h3vxZ|YeIu~_{^ zB`$#zyN{;aw1{`!=dTcOy4JQQEB5(ZrH0v+)f=wrmHzj8$=b{#?{9sY(d_PRt!dm_ zV?3P2gBcB7Sf-1t*D76mwk$7Uex{yo#;S@L%o5S3-&Fq*{FX2CPNZaqZRmmaH@haX zhAcVB%r?8v-=ID$_0?piN3PkE4l2$6e`!<2<1dG9oK#k{IF(g;t>Lr=uV8bh)m+96 zS`zKd@1JtMS?8eJw6lJHQ=t8-`ftzc_ON+`m(_0FT>oMJAM0(aZ@&Cllk`k}sc+(8 z$(he(WZ8c-#dZX>O#3>IfoBSXkne$v&DL6-nF;xM3(Ssd9u(VGRm<HVKlA_n|H0K2 z<^8k%`|tnhmmGEAiNv?-48pcQ+&RyjnY6XAocH#uZ#IvoJ$~-Pv}Q}9>s!UiTim%A zA`LCByj4EHwPvXa$Cko`<KNG5GdvVqbmG?Y4PWb)tzqm_nR}GknnQQVRPl?iCZD?e z>M-Z`c?Vt<Tc1dtQpfl|_Wk|Z-l?Zo#K;-$KUcHh!E4i|OqNO$wN3n6+C7_c7;N`S z_ZoB8$`otQcr3G0RR5XhEji8^&l?U%G5$Ye<UZ|h<@DxkmRGJ$TVh_@gvZWL+*9RS z@aR?dH2M1vW4st8EMKQSv5Z}$EqLlDpVr^_t?v)Vy}HvlQ>LJ9*_vq!&fSyYnPpwf zx~5DtVyD%eTOWU%Tg1%VTF`&PICZHWLkUaIwoA|Zb1OExO6s1rnPXda+&1e=qQN?E zwF}JE;tBmcjkgqnuI%nR{MCE*mnXYlThI3YzR6XQ=@g%D^Y&k%++MF<XY#9V?cozV zx~z0k2-D1seHV*F3R}(<uWi0^?l&vX4w1JzR2w?Y<Cff9cxm;LtqiexQ^k3#-}e=t z)qV5m(scEk(|RXtZr!ofL~oYaiT3NiKm9tuP;ox)%z{}=R(WdEdz=<sob1N2K>a79 zYhOzQ6LY4+x{~;&BE5&ULE1APDxST#M&otQYu;Ob#6kkCIz7uL7;ElweS1Bi`Q?9I zMT@CA7k(RZI;t!ea%)fenrvNjv;XFlrF%{&+D8k&Sas|u|Nez5>`uK`TD^U(^)+qP zl{eg{zn!^2Q9)g7=EBe|7OCqLMI!3UYh44EJf1AQ%yxcZ+TY)={?_xevwbhV<`~xd zpjD}}nZ2U(?Yb@|?@4F<ci2yUA@y>ac1Ed%!QMFusjpQz^qe;Igm*ZIMm~Icr|JI! zXSUL7_sy^0pYNw#wV!`Mk=y@w991eOf~L&;^8VACUDh8u5}(}YUwq81%#QV<8Pgis zW|6=bHxm_PoUH126s9odlrD>6U$*9{$1m&J?xlen{|cPW`p;Tuap%OPfG2LD!B6Ha zYS?^M-|j$VyHeqmqhhZajpnla3wgQpik;5$=3=qGGv`K4GGbi(Cgl7Xu}sgcKmY8Q zV|Hf#DdtI+kBG}ndRL+JS?-aqu<_1U?tTgh{9Y^Ge?Dj({=j(2$%TIs&ik-8zZVF9 z9QAJNN3Ev^>>>iJcZH<Csm`wt`2U-aKf%Y!IGQoZKwF1bpj27mlVa(IMCFW^=h?j; zN!UGnR(`6C|IYW^wJ)BpVU?d^Y0hov$e(rAaqp~+B_CCqxQ{(pJ5{ll#c+#*<=eSJ zC(9zZqxuCkPJ5N8B&WH&4?Z^Ky5M0>h6|l#+>U=IUpux$>h+55D^=5zyQi)$5@68& zafZ+F<1VA$rYm+I++x1gH1(y*loL4*lX4y}%kh1-XSo}%>DtLIwmVf$>2UC#>d>yp zJok6cMVkVvT8qyNdf!YJ*oLWBxcw~?N;vb=E^^DA9H(WPN1iTAvu58Ax}(lU;Oyax zyB_U6e>pJQGd5t#+@;T2=UjCXt?uLWHkh>H<&M(pNgpnA9w=@y^SN+4GU?dnZpZYL zGn)eEA6Q@i?tIf{msLM5sVF>7JzQgK*v<96LDklO183gi#?rKRfuH9+TYF@6#O18a z|CzZ>n(nJ?UX>^F9yHh6vY2DTiq{9SJp(Q>&e3!^5_a|L?+V!+>ON~a1-g6|t$SU0 zQtRX9mlqg4lm!$+Bz|YFTJZ7w-#7OUSXNY9->m<s|38tHY2DkP#<cT)oZs5t$nuS? zc<^(-CU5rVJI|IhujbY0XlZVeG0+Kl<+yo)p{_{$*GVnc*S|M-!v8)0Er0!a<Ny7l zyQALf+yB)zU_ZGj!BX<|b5nEghKe;ekI!;kv!zMa)u8U;UqPPKc8Oa&^X9T_@NQ^c z$#LeM=7L$eRR@&|4SXZ28F{Rtk2R{LeOUXG!@ycjV`|RAlL0FGp64=oubHp3ZAq(N zo8TSE7xx!#7Oq*6-CMi-_v{9}Gt#%B->unLm($Cc95efg@fuF2dYj|@XZaRwjWKvq zAlyFdOT;SP$`!AlxRi0+V0-ww!_VI1zeh>wwpB4#cCEknUA6FEh}0~WKM&5tUN4Kg zl&5de-PJIu?uYx$4ko|r3=S`&UYLr+Jg!Lj`~Pa=bFQc>W{M8Co@RviR5sq7^EBA? zWb}=+-s>74{rTs(zdV}o=SYw7&wX`&J<A-Erh7E#uz0l132`zx_^$mN-<B;t3>#e> zH(#^58Q=KlWPi7=#RS_^M%Pjl9XJX-@>97B_uF2x{lb@|%VJ%e!R>syCHc&^Iu^;D z%YH8Z&E0IpyX3_S=4a}Em$HSW--<W7WoN)}Z~Jw2h6lCPths?Rjak0G$k$ER-?XMR zvhUjcs)*7Zx{D&UE_8j?W}PKDd*bw_6`kLo@j05-8~+KCnjUt3zQmg5J}zsS6`M{f z$|n4fRMYT|H1lD(7!X;WD&W>syvt5Wz~}YEn~LQP7xq2db?a>Qg|9*vE@VsGT~d|X zakWutcETSv4jtFK+EXXYj7_*OJuK(}U;A|d@6TDcE_cq{XHs)UZq4PbZ@;Zyy}#b= zL)e~ec>%ANx_A}NoZnM=Kx&~=yIrU3!?k&bUiMh6QQ2a@iQVB|c<r>{v-|r?_FNEk ze8BnITYVGTg9DRZ%`sm2xn$lH)vhzL=eA|9U2Z$qto+rY*?xiTtqYX<JwNXcH_*8y zwQrtZUFX&Sj;?^S*2)nbW?n9@G&_!+a5cR-^X7BMY}1zsNmta<cfJgm(Xf`|5Zh0G zn;&a0e*3!5VuMq&lb`9!zFloeJNfut9Bmh34f$%gPGIe=BpdSs8^xWj?R_`z`<++c zgIQQ}#IIVLuILkyROgCQ+gg<(;NQTaDmPE`&`k@2;)uB|iJG~*%V#9t@lLrkt?!I- zh2@50U;c#b|Fm&dyHCSX*0Zj!nax|P&WPyDyQXHcVpq|x;4Md^d$K-wI`q%6So}kE zZf9Y!|HM$`sry<QmQMM_c%*aHX|o!huxR}>U%uSaQ}><U@~tOZ)r%+RTJ0L9S?jj^ zXa1qk%zPj`Dyqk4`PVa+#*B=)OWKYFC9E}P&OaC3u{!s_k|U*@3zyhlXV9Lp;@sJj zrS3oOILI*>h_6k&`FUCKMy5N>#k-#6*+<`;wqlms)p90rp(DX+?6194BbHe`&)`2U zb!EXj{<PbCdb+{dvzPQJ7_BqxUGU$1tzmZO%ZTDLlNdIMTuJ@AF1>m4HT&<Z$BN(I z{GZJdUL5;d@?h~^b@s#4T&pKNb&rtF>t{7uzF@|!byHJjHoa3ypEb)g{pR-U*X+pw zt1_2&Cb}yKH5T;vmpE*+bL(BS`V!~mDhJ8)8nc59`V$T^CTO$xWbD{=_tsI<6Jo`p z#Z#hu;))!fe!FmW<2AzrCF`#Ub1dV_;eF%AcHz+0=>4@i-!|L-PTjq4=ce1cr++*D z|Ej(7+5PN)^X*n|OAd6~$I9Vaf1c+DQ-WZw9qWy3DR1plS^TqWrO$hoZ`OPm>>4P2 z>EPFiTmJt#eZ1ZM_u~8ig{v!SRy^Ob`fojVkMz0oj`wX9s?Uh6+jy+z()y5Ei^SfW zp#cjy!xpM=9hT5B+OIy%nDI$~LMpFK)Q)3b46=W0zRf;R6L<9b2~URu2ZI>yUoihr zz4PMv7@6q@m2Q1obzAuR`5uJ{s+Tt|m(XB}kkHRaj+nN1>$duc*Ub%0+OHdCUn^rt z5lc^gX4RJMZeU=(KlkY`=H#OM-XK0*(ZALkuW;%dOcb8+sPahD!8of7-K%?f8&A9b zYvg=ky3TjyUw8Hud~tpZ8Xel~-6?MvglC9eELDw6-nHQBs@-~v&(14ZdEGXqcFoWJ zNnBI=x3*kgv6`ny&`)PAgNM?$iQ7bOu6?+F#>RW`PpAH{JR0KpNBK5W-Gp+^9k(WK zXFsqjJ3=Abe$!$9DLsZW)E9GpvzchSlJnta5mhNOAHnQ>od?P*cJF@mOjhea+3Mo> zZ>B3ZyYMOaU2j+${`=I0FM+c?x+@k<P>oVjTsf&f?Rjtpm&}^xQ}S`|FTZx?JW&13 z$@j^rH-;-xxU<iHKIAZY>5G~BzATCR#-ZfQd&Q&u(9tztT~l8#<<35zlCY9@#!bDY zIoa`*JF48I|8@nQ_tA>IQa#ye8FQ^c>VEd4@g)atZjNYNST*%|z^roT<{$<sDR<BB zzr)+C&d=^TEN{O!up~Wc*Xrlzg{RE>Xq)-sTr>N&cL6`Izww-1<epbr^`U0c!!OmJ zs}4=RduPMc2OoDV;=MWH)puY0)w+N0*jz4(ymuwKdPAvt*wLa``M;fun!hHTRDQ1h zim@??nfJSy!I=vWo|=A(^t*qk>QhL>=i5iP=K8(nYqpj=r}M$E^j6uICG3|MJleWF zd_|>;_NJ#k@;M4zy;4?Ze!KF0@=&+ezLCKm`1c=o|Fy(&hEUlpw?g|0Sk^TgJzTxv zU}NdVg`9#Md+)Oc{_=5Wlw5shV#@2Bo+WSYR|Vc(vVNwaR}fqB>(d)6=jO_8zx8V# zXBu1Jz0526%T*R=9#lNIUg?LpgMjVImlIsll$kWIib%gcq_|5=hcD&RBD;9It1GJK z-Uw7W@;c_?y}3$LUhrHm@o<V({QmFLrwKfbcQ&oaZeCGe_jcvFrJt`j@&`9Oh)j0B zvXPB{QLXpf*t>>Bbu7#W_t>bN*3{g*Z`=0ckAB^a&X4zW@2`6#d!T9ebn~+E>e&A^ zYjt)A)bw~dzV-{wcJ0d6jJP#T>Os}yXBWj6$uvuN*Zhf+WPAKqCGBy6X38RolEz0f zD!+@IxII(zw*!~Scb_S&t_K8FgZ9|%4%qTMpf`m-!Z+b;;~SM^Hm!>7o?ADZW6?O} zarkGE;Ndw>*TipGUL#+(q-VjV*3()WLb9tPLLOBoe7n{hU%$UafRRlsb#1`2q%9ZK zX7fcmbY%sl&6p|0_U=U1A;BpHN=-988)nbh*I2fNg+t75qXXx!SJvG#CY<~1>Ub?- zO|e}>rUKJlZ>_W9J%Q)8i_P?yqSv|ARl1nfT~uXTz*cvLwL;8+7mZ&fB-<TgGkDzR z#}vjg?aV1YwRy&Y&->p$pO?bk+bqa(voST;<*(mGy^HfDyxo7_eJ+!0Xnydm)Yn_m zQM-42n6T<!)ae4J2NS+s<=gcjCvZXFu>%&C|8HquWUiZVK`f$nF?Xk(#t-hQUFW1b zmgz=J4|(c$>;J9$``lms{JB(rAIsDKzm9JG`}zJqby1cbt3Q5@Y5vb%dgErs(g%~7 zo7xvKY~|#4U;86WBxu{zgFkQOXg_c5deS2=a%9S-XNTVZ{CYb3g|w~Ryf^*-ANard z_c7_Y)R+2SZ_BUbZ^&xD)ZD^b$@gPsPve}O`6rtcGPe0dh5L6_U%GPd%+Xlm?|XCq zPAR+h;#ySX++C&)oqyRHm#eeidFI$_*I=alSm3wW`Ka6M*Yc7pG`5H(HM0nAI_F`Z zeNO84#PrO-`xU~>N34JCuxGbznpmdO(Cn(TV4vJy>(`QoRnJxRRb5x_-ON;xwl#5i zSf+~Nf!*8mnABNTwD2FSbxWI;WB%rJQt#QvCub~i>3Ki>=LyUCZmbuKk4|u3=h}2+ zam`_FYmuY399Q<wnAiI1C&Qu%2lquZSn|wk7gP8>qf&F)bdiNTTkgHK@h{t9c_a5L z@7_DYXY_k+oY)+<X!Dk~FZUU?cu!`T`Q7E1%&AXvUd;=io5^};PqUEX4gL*VzZN$e zuYTcf@jLOXO?-QB?DPu_59In7q?32(h?({!SlAvuT)NM+Rwh?>`&z*n>>U$1J{cL7 zGgMgg#;=vgX8pA)-}?Fc@a<1^Yg9LU3<_#k&n$WUp0Q!N4tvM7J0`!Xf9=+uoGh{P z$X3_e`&hLO`K`Uw@#90){5bivC$`mVr*rc;s;Q}6<k4KW&16;D!hqvmuRa^B_-EzI z<<;D_ocZSZjYh>T6Mw0+Op`WG-}Z?^amI`7=i=VFtSC1%h<sJ6Go6Q-L;2;*$Dt?I zZ#vAU(Xyz9Yt}sJXck?rn!5>3Pb-<McJsYUdh$yD+V{{cb*tEFEcb5x`pWg|(>~Le zI~Un)()n)oF8|fe&nKF<1mv6+so;yV-#uHSNJzDR-qG@p`wQ1H9G>c1ZNBDu+05AB z2co$zyiz~Txqt2b*Xq^tSGL(*)#1$AwYT^3$BtRiR-8rWn#Dr-Z+x}LkkKePnxL@h zGE4CVy)}$S7t8p4HFiI+;lljxZTA0q;=aeNH-EQ2ci)_gNxbaJM(>U1{&dW!e6%pe zYk60q-t!gz*JWpyr#^l-%Q2<){v2m*2OWkVIe&5(Tu!zo1iasI`SZLrFU47oMt2zV zuWD@nV-S(jweo>?JL7_$>l1cPt}6V?k?N>s#Xjlz#C&h|hPzK#f+AA1l~g=!oh438 zXL@_$h1)9it=me}o~s|JlVExD^P2nAn*rg?H?OBG+f^8sF`?K(U`6rq+s!*vH~UVB zzrFIW+=bY*GaIdA8MZvIxjgZdcfiV}advNK3b0MpWBL(V?8H^M>a}F)ijIp;4*ln+ z&-HAseI_|un_FG{%q-W}3I~j9+Nvaf|9U+C&&v55*4I7d{`OSAekB{5`L!%Z?zxp# z+6OfZy59r^+M0ziuITn=E}UU@Qul#o7U%Kv6BLhxB}H0Xk@(nktvF@lB$+Fo#Uhc3 z8@-mSyVuyx$S80}Gu{1(fZ5&&cG4oTFV<}6>3lTD`s$kXOo6+CuQchg9?#)ko?vLC z&lj;~=h}@LtsM@VEpO`XcKU7OC&Jdup&|0smGP~J;$7y~MW>g=#!p<JQS>P*^kh)0 zYkK1sk6TsOcLgQL-#_RlzsXbRQS&>Ol*1qYp5l;t-rh8WowZ|iYjadd*w$-vG*koU z<}xJc{<bc2;G0>L#Wm%cbJQF26t(gwY0m}6Pem16@0yvh|C8#k`OEY4Kg<<o>QHjc zx~3)lY|^4F3!mg3+axO-;Sta(^6L^a151`TTg$w+@)5JWJ8YR2GroGLA<JB0-~80M zR_?7MW5Jy0X^mHex98myH;von6#ve9t7rDk_0hkRH<X{a)%~?DLBKR%WsSkRm20MD zhV1xWTFd))-s{=YzxDqey}!Qtk67`)XT9Ic(+eg}IjX;DJI@c}Ip4#+vEFwsUJ>Nn z^&>EH&-AXDtf6{QGaT>i=$zff8)5(Z;%ezV&mZ2M{P*Ge|IyV}=R|wr-(L2=*YNd; z8Nbx(o$sESL~mJIT7Qz+Z4Ea=<Jb4E`xd-?e0!G~#}xI(3X9FgSO0f2MXj4`Y!WMw zvg+BKrS5g}uimS=cAq(~p_ui#*v-)V6ye3!q7>MhGUm0bIwYv5>%EoHJRu`|!e`>$ zZ35kQ855q|viS7otBb&jFK!Ll8oWDnF8<n}x9Q}0C2`BLS!Hu4e|;HPJw<^b(yISf zF!$yiZ)2w35Ac|oE*T|sV}nHYXU>wtZK;OJr#YYZvj3^uw)oAV^Jhc9N!cCf+T69M z_+O6V56K1BFFDM)QX{bLqe+Fe)2(G{i&hoic9eMEGU=N7wELA!$*~JA?GM>KYqhQX z>wh*ezGYT&7SnI!&(Xg1mU%z_-QF8P290MG8&A62XZ@G=XtT)&R<+z|y}{v39B<{m z{^qN2ym7H~Rn3(<$9vZ4czG>Jka8-yP}`iaA(i`WV_e%3otk9!<M&c;uHt;*ceywA z{l1j_|F-{Y`&)j$A~|3Cz_e+?r`H5+V2e1#5^oe7Vifgv(G-<kS0%m*%W$}I`?Ejt zEfaN*OfsLR@l^OSk1EG*?cX1&_Q%OHG<<(ERfUc1@xHX|E$Iuh&)ChH!)X<9c%j^n zd+BmFPhRQ`338b3s_d?0c5p_^1uo5;wgXDsCJAf@b$)I5^<8(xO*1P;$HPHtE%nc9 zmxndad}7gmrXY=p`(L%yN_G~{fGO>_%GNnJ>@64X*tu-REd%is+dm1CSq%HP#9bAh z;?5aXt@d(a`;R5F78^<(oEZ0PyXCd_dv^UZl3?QZ|Hl&lDDid3%cm|?%D39~E*30H zloW5gz59W0?RkN%m)wpsmTZ>2D`W8^XmMU-=2WE$hj~|m#eCS)ZtG0=dSX?R;e-j1 zsn2}<3g>RW%Dlq0efj@0#{0QSW?oFbkm^|Jcjni$Z7aSRT=9KzYOc_n*i%bVWmOjJ zS;>=_aK17?ey&_(#ROH(gsBUb@$Zq_`^iAvRis|F#<{`1S~tf2!t3{Xr#SSIxw{Vi z%xRp=nd-MoZ=P?mPWr*9f?2<Abz2|YeBz{@*6a-hdp!Rh)sEKh576XfTELKVD6rx4 ztQTh-e;hxpeeML0<>a(A?J?g<Yl^mY-10klarxqH->Sub1YEf;cdk36ai(s1m{L=L zRo}m^oUjWvJL^}jH;^>;{dX=hJB7v9>=u)n)GVnl;=g~!|8V_%a{iwn-e2{5&dSdH zk)t1X?`HQb%{{w!=QSTta6Op4nl&xg!br++-HqE5Q-v8ebMiPzFIeJxOjothZr1Y~ z?yn3kZIFFy$TpK{rV>Zz`|!W^j24e)HTv&V61H0KZM#Ot(g5|{N^e<D@SND?##_FA z<+O7y7N?`U-+oV8#1m3skmjyj5x&YiYk#5r6;Vfl*Lz=zU#||7^xDvAmMp*Z%fzMn z7v*%==WO`)e0!4b{H3`ZFO6Lqgq~U(<Xm*hHu&}Wb=v*jux)QWH>xkaE1)XadO7*k z>U&mmU)X8v5nC(F*;SyUUTc4z!*5xW%gqS_bA<bQ-t!imWGrAmWbwfC@H(q2m)48E zX4h5YUT;_xz5dM3*v}W8TKuG4KCgP;trI!TA$Q^Bxd-o97V2*Os+eHHI=B3lY(=cS zV{U=9gp$MMD{om3p1D`n9==UJ?zZ0EO~*g0f90uj_^{jRXk{q(Ns$B<?~s^3>l!r+ zK8fa3O3Dhc9{u+%|Ie(uciye`jCiy8y!_(coq`5Q4Xs9-Z%j^2u&w31Xc4^3reURz zwFO6mFC*8it<xHX(w@lmHk?@U?LU*__s7lb|KmQ_Z}R3fu>1S1+_JXr-Ort!Qgu^1 zEfZ{v8&qeQX`h%|aE<rawdE||nPuX(uo+1xGi*9&mJ~K;jn%r77Z??beM}$nHFcjl zGi|!{T+Y=qCf4buo@IP<Jn~Jlf%cE-`==~&_HB?1JT0%&wD33EvZ4(o_wG#pXnpXU zjKBw@1#>t2V@pZjs$bCg`Iy~2$r-J_hfF3hy0cBr_^vACr|ckcJ%zF2)xTNlO5dux zKXr(xR-Ahi$x^i<<gAl1d&16z!JZ$D{Ci#>4Z6(kd8a?^?V7A8CX3HX6Aib0Jsh@U zUPR!6dEVCI2Is$4E&qKrFTO`$r_EfO4SS84=Ex~bp8K>~b){`qP;Q;}>&~@rUt8tw z`uf1mx&GwyPZ^AFKE>$mx*qs%zQpvkS5B>A-qd<vva4n8oTW*VZfJa4m$^T4>Y_Do zPgz;W?w{`4?sjM=lOq4Ox$pJLEcZXP%1iGq^ku&B(cyo_l?69G$_Y90Zd!C?nb#|( zmPyArU(ZrFvLkV_5YJN?UX8B{3|_Tg|NZ3`1H+#3^;a@7GG;S++h_%ZpPie2dc$_f zBhI~6#t9M^)+ukE+%ak6jS1SB6CJj&OWsmq4}FnXT&A4ixZj`aWAD|9IGY`E94;GN z<0RbOmn{}M7hfchs1qi;>W?MgYMrdN4qdx>)fMJ`ew_aG`u4JYdtB8UGk2~1wlr;x z`uSh=aql0NvijS%Up&2N&c<({TaU~<cRE0=_A0l;uf$!=8*3`6jKrl&3LQ&ASF|fn zDmCqPVEx#7i)G;gE7=L0EN2T6*Un9ExvA>?r7FO$cE`F2cN;hQtl7@;p?=}3t=CJ9 z!)9`JO!2#}I=hiwnn`o<!*mA|XO9avdDm>zT5?6Tk%9N`az-|XEp3b5&P#AqtL-ZZ zyLwWu#7%iel8xij@=uzj2K?3CQV$ENUN)}HnI2)bH9vxjUAcDmL4J!bZHh1IqKuz& zH?9hF<bHLoqF3+7atG~y8n>AP?E9N7WL7h<=6wG9Fn#*5lNa`i9euRgRZW0>*}hpy zz1B^l3p`f8+j${y+2P5C=ho#Lyv@tCuj5Qz`SZihv(w89ZaDYOJ9yg9QSiCYOy*Q$ zuhS)5e<m;$T1fm=4Sf{o7_#x1#G*c{jq=rjzb)*FV{U(CW&b@j{%`8<sqz0#z7mN& zJWqyiaqUCy^>5Sbp5@=TzVDmr?%jJ=+be(F${zP|`PRy;1Ye)lO`pzs)_(iFg_G~p zF-yPPdACy7m4tOSHqG0SSbJppw%1eRnl3Yi*7Ckj{+yK~*c&Y5VOWypxw`gVjlneq z)=5Gd3pC$pN0`iRkY3ZGxV5^wRH7kV*-&ElqyUqAZm9@vq2#}=1)*lyO*j49xEzo2 z+`e-x{<VhbUEa8IYjMN*FK?EAH_UT()W6I0N8{~E)}UkWzs$a{_$A}N3&(mGowjlG ztzmUyteKwvAb=qtXX!OvhmNjNg;TfYZToRw;)Bxzg=fak^>}W)Q}$BSITkOHp0cOn z-<qF`Hpblkk$YSw`}A%(mBy4G>z1-NUYlOB*nxk|+R}zcW&c%wZ|t8``)RNI_S1i6 zItp0i@9Np|^Wk&$DZdK$=kIT4f3$*O^@?Zz=b8SW{k*L{fGs;$te8cx_I`5M&FgEK z{ZkiD7szQVtLO4z;OcUFcQ<p{$+-P{9A`d!eE8zO58wZ7`B%Bh{qWI!U*EnDe7@|b z@|MY|9h+0HR=$egkbVEE*X#p!vqc|lZkxUJ=b0H!yN~3`pZZzhyQRE4$Rhdd?rgP$ zxs^K`(@PDfY~GijS;d$U%4Iug<=ns>d11@qQrT)2?b%q(;(2nK$+X`+NjZlu?zoni za;=mv;@9y>hZg*melE%It?zYStpcZ`18cME|9g9nKI$xMKUnba>q(yuvsDu2nU^Zk zB)C4m%htW3wQv*1U(OEY^)bwgW-I-Wexl9T;<<Xul0UZLx6GMD1QXKFre2cpza{Th zf9cUL#v4Dr%WOUN+T*$CTAjeTVf#NDg)_XXICzWcH{$~4<_`%07oKy7U0!&X|1E2) z)9pRnDT&wWH+lpexs#CcP=3>zrr)dAsg}AwERWmx#cV3?1lh;$lZ!6Z^<4k-$95-2 z#-zIG2Xbx|z1n}_UQo)XqMujne*TL-bMTdp<DJh-Z`YT^2TanMv0LtiwRYa!!|Y1S z49%(yIV!flut{c7oNQHUXt_mwvDgAfXDRzV_a<Kl&$j$jlM9(YwQ|N`gH_^tl-Hl> z(s#I1%suBxh-K}Eu1A`O>sC0PSUOWM#l9_Y@1?V|BsdJ(1x|h1E9F$pz4_N=jxGi3 zLu;(=uwRvs;+^2os`GqW#|EQwk+!kiz4>{P2SatXh@LNG+`Ct4Lcj70?`+esd%x7q zJ7w?PC+Sw;f68Lhsk|>*0S5CN_N#S2Y_i&a_v>+kN%z8D)aX?F`)qjg?(y;k_hn!G zu(6rDsy6E4siPM^U3~pKi)~qq-`7v3kBx$tT<H2DSg`1vfansYbr)AoIP8)>t-Y!& zBx<k!UxyDu4UZU{<7NfRCo^R26Bf9m7@dA`wVQ?g>BGsaXXVc<(dy4$TjDp-P>$cq z<>dsE<4%8{yqx|sY<=J3qf-xvR_yG`Ek4Gsc*a<UEo~xq#@xdd(aRrCTU+?5eEsq2 z<hwb`tJzeAkIm;^)qA?(%mhAhS%rBomwbM7<%ZR@&uZG+INv1uPubShx}jMsXSTxf zy*t^(X3Ubiv1H5LbVi+yXHp%JUb1)F<c-WX%ySBu7|SZ!;<tyT@XWr1_}`E8Z$Ip= z{(Wrz|JJ9!|KGFuylIu(?uhk&dp@SkR+(&E9QLWCMcKqG^oOkRlvh^{u452>*`>Pu z4BwSj#d9ah!ujl;EV}0T_3!VyA<X~hZ;k)AbpE=7w(I|1o%Qqo(fB`_zh|3%_};Le zJykD%LxSwO*S~6N-dgUsv}ndzh5RIk*Ha$6<u_&D#=A}VgTL;NZO@o4nz@QSsT8Xd zUNB8ySND3Y+3v3rUzyF$72HsodOrR8{pK~g0>bx~|K7fk{d?FgqpT}uzQx9v2c&O{ zV7_BrxOd07G<F;5_YBoLd_Ns4<hi)B;0%k33H$vm>eI!REdF!)*Ducc4by9n{PhT5 zaKH0d%t4cR;f$3x&&6jtOpLsBrvFV)%H8BRFN+_)o^6t4eOo*=d}ir6e|F_Zo0r`$ zS6I;*lT{P^Vx!5%?V;yqMLS%PR84HuI9I;8y79erc*3pY7rt^<SxSkXz4(^(Osn#H z-|ts;D;CslPBVY!S+;uK$K+DRXP>RBt=_+V_%U`XW52}wJ&ElmZhgmQm;66*WVOul zsr4TsYvSemxmmKK3vOop3;rEh`AmMrmy;42g+D*YyubOV!mj>2+m6dqe=6O0_5Azl z>E#LgE1v!Duls-gO~tnd_utIE|Htubv|Nbdrp5D{!nRl2%`c5IWxOQ&F8$8kgW;Kb z9}1@Ey}BW|mdjT015;$iwq)y@Qt2CKgw|N(zpdnrZ&<R!_^X6WjbsG#-CI8-x9SHm zTV-5NT<oqNx#Plgr(@Ayze{8`zU_R|D57c+_b7GePr<V}qVpEpWY-Gx^B7HTtUM;v zylc^Ob`zHazxsqUcfa~9^f`s+PSB#bp6xr78y2wyPxO_!p>=hC^^uz;tO+f@m7>(7 z{@SN6Pso+udY>cX>DS`3lZ|updL2F-a=4l<A|k2JUGpfa(U#}!<fDg<Klq?$<#kBz zyw=pxzjNDng)~(^{r%$Hp1IEtxBgROb)I?lnSn+D`)}pL@4r~GO||v6`F}b|vBKN! z(l6z*)!DBTa>E;H_w3w!@$ZhGvli`%{O~i+$x})~y3S93`PrG1qXYaIJ?3iPieI_W zKf*{{ij#${>s!Q&{1fWM$0k-6m;MQ^I})8?FR>=N<0;z>xdZb}+|~9Uzg?w2{T2J1 zzH26~f9f}va4KYYy7BB5x;TyRo}jY4`D0n0R{r(hpMGUzsJI{Ja4Jo**7AV!#(>=A z@^b_`Di?H|Sv4`qy*>BJ{;UOTSL>uoShjA?>YTULN&Cd1-~??i<`(bQ{xV9QC25S+ z*Q%beDQRx^zH&)v>5TxBr5(N#&j)uT{7RL1IW1}@_nfJZn(Xyo?bqOWw)W7mH(n>M zb1XUbDnPd`iQiqa#JntgO|#jeI~-+myKL{>kYnHSnoER1``m;AmH!3N{l_ca^5d=; z{#1<G%x%gabw6-^?*CKg)R&*yxqv6TF)>8hc20}UZVn&A%!eYWpT(M#rGB5-b6~?d zqZ!Eo2PJL%R=iKn*3^2sZb`J&hsRO;uDOr?1hhv4Z*aNtO8w>UH;Z;fpAGEzxV7?P z&BJ*t3mC2>SkGa49vCZdNKpRVw$%(iaxXJ1gBWd_+2o%1GNhj=S?J<?<%)<-qeJUf zJEP`S5gpOFiGnT~J^~E_jx(>FHLIQ@VsW%MIx{i(CY$})lT-7X52PzJh}CI5(hRhk zefbp6^Sbx1GqybLJShEaC)<g`N5t~h=hYqhxBdU_`7UbT|Np7Cx|R7$L`sb1uuG(T zMD>YV_N^vIpYZhFny+o7V>U7GrHGZCjiktupT)c%J}dH=6vwa!c81Fx{nrzB`+xNQ zujOyw9p(LYHhkZw$KPh}|C#+wIR1BG_kqtrd*6GrcAR^DGmZ8C9(UGo-8+kt<sIFV zSy>i4-Qap|v{k`UMucttF2B04<ixcp3s`Ubn$t2fif!jY`;xj-X-Um1Cn*0oU=(Vw z=s-EQR{?LIuknE--PQ^5on|eLp}M(i#j8S!7PWo5mt#92-^1yWX)j~Ip7{sZnxAes zXxYHhol}(F_Tk!M8Rd_gA2PVhX1wDIuM~6XH&l@7&saN4WX-F;uB!1XH;Z|lQP-35 zm+a}B_qPB3*TTMp?FJU-Y)|_{Zwcn?ER3Db@nMRuH_M8hVy4f0l@*^ERISQq4orQ& zM@HEzzGvG~X5YjTjxck!rYJY9_v=}0l{n`7k=gn5MtxoU=H91*Yp>klD>!{+gWJ|e zZ)<#({Qo9ZIn9JeGbeDqH&ZR2+v0HEoU=i)FL?wLR?T?6hEFfIFL(3t9s7#jIo9*f zN^K5X%PM<bX4@7?XT~#~Go$M4&PCj8POrXx%ckX>)0)+bCM^h9RzCk|^xxjE|K8u< zyLtWpf7jo>tXq-bwJHDa)9(>g#x6Uh-rqjx$^Y&A^B0$bdK^~j2g)m_otkXSk~WPo zq34K|hpJankJGBSpa&oCWU_QCII2HM2~6+Xv|Vb??(;3ir&;4=EyTTf(|-u48eiOJ zqUh}9@V?`xBD0FdKb=4ZV}-TXE^HI}?Rht8&oQa^Ln-W=58A0)vo7oo+@1U=s?gE$ z{H0w*d(|Zlh*TWEpWIY?cFvK42a@Mh4s|h@HystZEmBw-w$d-XXwvQtk7v2IcWv!t z70y^>-)!6Lv#*5NDVpm+tB_!;U+~S6i;kWRuV1cVak~+xula%Z*`dhfvnfn(*F`<s z_SwTO<Q9Y6+N+-wr0*TS6m?Rj(Ry}XLVwVdTdKY7uAU*2?B$+sa=7cErBixzzO04( z)9rTK5@gnX-o#Y;|6QizO3~&QmyT&fE%{cg^`|DwCvbaOaN3m_!I5WH%zbvmzECZA z+t#dQ&v+%IU+4*0F--g$zg6tWr@5Q|eC76<7h@rPhDl}px;2}<oWvb-eQo<ZgMXhh zxp$-e`tPrxZfyQ~nMnQR<(dwY)i^diP~9ZL%{NV_eX(1H=!&VApZ<Mw(KX=>-}_Ty z)o*n7IA6Fs$Kv8&!Hk^?cVF1pEWCGpnvm(FiJF1mG(tQdPFZ=*KC7(o+Pb@%(=)hU zeLHo_c;5M24QCgf+LdUvkiGhpImd=$vsQlp{I_7|=A~?l4_C!9{`p<?O(yX1^gjy4 zM@-z+ZU}z2-u65CX1eXw?|qj==WHn4zj^cY1@qIlT>bc7+F|GJt$)w<*1r7p{&vyk z8~pqJ2F#r#bwpHAab^Nf&#fB1`SWMa6PO&Wf7h|>0h@?Z(ESfwQPp8;k`K<Uv*Uk# z_SC8c>`}R$Gy5I(G1s;(3@_mSaBTnK(C6nrsop7wpSiMBa>_BsL~)_l`A%hB?Hv0y zFp9S}`DaaZ{S{xz$o5LCVNOwDLQ7M_nVcWDEVMfwJ@maFk}MkeS*R)H*nHLvQ~9^? zzB;wJ!9e4@XP>_81&a<z?`2{<`OdO&N|72p#&%N<=et&W-n8flSy$rlX@#L$!PC#r z4S&2nYswdrAH3~M%=(f~D>i;CsoPNhUtRsSd{M0V)rqY$7A)IcxHr=Ix!0Y4-OC?0 z&sooGYX4zI%4~;-%*CpXCGqFG3NQa%*(XwBZNq#}`NH>CcmC@C`+R>x{LiWLk4e-& zd@RnuwC~qc`NI)ACja?Su}1RP;wF2x0I9;B+RV4_o=h-5mBPa1rheo5Cjq|PjaOKH zZDZ`3^YnrsXH`vSsV(Q0jsrdk-Ygdc1HQkUIyoweBkNaq1HXt-xAcQ$ZzE4HJiqW% zR>kj$iMjVvdYA34T(GG2Uhwm@wQjQSMUz#J&JeMT531_--dcKcV*j4l^B<0VKU)1| zPLbMd<~fg|g5#eDuD}0kljsTFW|x?+6ZbF%eK6ZNVbQWM$A*{pf>?SSFK<uaJQ5lB z#qY7yrUk{>zQ^;6>&(jM{tPrLK2o24@n7|ZtUrItbfr44@x+w!TeWx1@C*zR`hNe5 zm)U}5Qx)w+O6yK<eYgGmynXAR@7nUKdP;#x-263Mi*t|N;97BLevI#xyAOZyEn{kw z{eN!ep_Wd^b6m^jpYu2~m*tJlR%1H{eTMgzzcy#v++vfdOjG$Oz$EX{8}8{X9nJZ~ zbmNvgIWF4YyBoZiIwR5}6xN+Mw~p<!(4pz9Z#u89&s$|H`}X0(ga3ZS|F^EL`f}?@ z(*2)$n-4F(Zu0#7?CFy&B{r;n{`IY_@uJhaoPRQ9-V(q0D(TA1i3c8AIES;PzZZI) zqcZzqYXrYAYqY;H%k<cm8`IQpYKw=|Jo(uo^m|e9lt#Phji+3>j<PU5+wGC~W#aW& zN1n&*(Tg`RpA-IK-h($E(<i-HW?VR_+_5U<!fV~nn_Qj-O*!xR#r$Or!{#>^rJB>Z zRIBE>o2+E|QBbCHx2~e-1hdhKyX!e@YIU2P;`26qo22oaFDfNCI&e;@XR)4`%D2m= z^VbIC%xJ8ea`tEWI~Qg9&*d*xByCb{u8}GA=j7UTy>I>E(hcSelMY7R4q|9bUn6?y zDr;L;riWXzy1$>zX(Qw3B`eM|CHek)#d|HNNyF{Rz36Cr-fKsHyx$`CXZH%$mZFn; z%&ZyJTDyInSI$>uekZ@M<<Q^Wg&UlWTI^r;Z+`ps<Sof%={}$KTBhv$sa{cbdFB<P zHy=OW%T#f_nRim`(U}kOF*C02-~2X~^WRCiDThUCT{keC^!uP^8Y3Of<WzIEdo71^ zb*fsJk3r*&-d8#Daqq9cW@h-XZ*Rg0c8RBJoP#H<Ua`L@$!hbJ4Hwfag%_N1U1qB> z<5W+Y($o|8^6spiCh&4j*7=zVD<We5?hA00X@8kudq!%8t!qHI?8!H7$sw{27xXw@ zIIwJD4(oR7Y>S>w_VPqqVL{)=ids)!n(STCUgs(&pVd%QyQ1N7#_rAR_VMesJ!SuD zUG5N=SaHB5sjSrJy4l`}%=W5=n7ch?^=sO`*O-ZS)csjgrx(s}F#D--^O~6VXIY!S zZ<oJ){{J8E)0cDR*S|k@PJ9~Ql+c^U1H8XQWh=a2Y;v;8AtBYTfFbw-Z#&N|M!U%1 zl6ED-=<7QUPfE9ZeRG%aTgI(QELY~T=bq;8shYvJ+uEuw!+rCGneK1p6EfKT#knmi z%k^Z>`FN{v4lCECKh}%xRQc$7dv-nGQtvc<XT5vJfiS*ZGlFlq1>Aa(QZakZVwsxP zjtk_=y6eom&afpM?DT78I-}Q+d@U*~HQTXslFr$Ox#xTqH495-UOT9EG$nhnTJm20 zWbT3=%$B?2n3w;Gl-t9u_`>wZ`o0t0)2|oA=sj0Hl_jAgCO7ZIv^`rdf7E~D|L-rq zpvKwh=B9!lEM->jackK3$iPm<i<RMoRK%;Q*sxVqzaRGRJ9V#=Nh$uhSb4N?XqQej z%c4_l9zGnAZ-l2V`z~tnTmAo^?Qd4w|5J^5ZvOw?dga&ot&LY6KNfEKFXQz+H^z%w zEckGe(&_sir{3<JGyBTFa}UnU(tY_xz><SYDeA!NZ3iDOySM-1tIgNim+6=Y-r79d zwDB;9NpZ|{zO=0SqUTq<cmKAZee2)vzbZQ!c5li4vcSeD&Uyd##2Y#{PW0X0Y<m5q z_L87t&hHO)PZxDLR$+XvcdzM}gluDJ#V6v78nV`#m%UYVXb7G<@BWQ2i$F)8l$*OR zZOJ(Cap#ZPYJ=);ch0D^*81Br-*f0?h_Vo9o^QM~qQh&`^KFqlAz4lRH&2Ou@Q{9> zaI#h}@ZXXIdD+~G+DA-|NBg;Xql{UuE&6WyswbF#xp7p5Y-Qeqpfj@~4LsHuC!Jch zMx{xbO?|cP^$Q*Uk63srA7z?Y*u5q-F|$$i=GhKr3-g7B7n|DI`UG=2$|lYY)4Q>h z;||9sW)rt2C7JA*kw+7gG9@=ndwu6k@$K?N?p3n0%eZV_eT~gN@baJh-hBt(zkhGP zef|G?^|8(WmuG2Du6=IZ|Mhm>>YJ-1FP`S_ZQ8<9BI{r=m(4n);NLgbZSB8XZ`S(k zJtb(fVfU_M8V_nt3uVkb;v{{-uE0LUHuS>RH}mUrgJpMbWXt0g5*OdZFLYD#a$SFY zb@;+JXPEh87M?k`j_cx4cBT^vSw37nDhV?epQ}1%^*P9@i}m--B83IXi*r_;KfRds zM3VN+I<v~(_hl!sY*}f1ylRnNK(=3hvD+EPGmbY@`0HN2XRYvxPg3GYNZR!y>ch5^ zCxvf#N84`^6ZZO=n|Ax+Bi-aZtsCAiwS04lwT|JY4f}>`*G@CP-zuw=<r>>{z~xrq zCS$b*_T7hdg(YtIi8rZ=sWv3dzWRRVfg%loTe25L)gz{U{l3plU-EmgWz}@HmA|TA zu6gw?Q2F8vP4hXyH{7`xkID5Nuv*Hi(fRGPJEP#_twIfdS{!ctz0SHTaQZjNTZ;vY z=l%V8u6dHR70(CL>bKUJ(puK<b42rXW41Y@8)yr?H97l!UtCgFnxy0pp}Q*%?d!N| zc=y`Zv#*2xw=D3?5I*{I=KQ)0#Y<7M0=CrrTC{DGg#6XN+Ia~(z3q+H=$!YP#lQah zV@UT{IQyt3%VeDwYd<I-b8MU~pAv3*E}ffCVevw?*a&eJb+*QE#?;wt%95J3Trz(g zBs{HUMFVy+A2V}RYj@(?XEaY>Zy;NDT}w~V3WoKH9I6`}J(OfRlnxuItoXP%O#h_j zk%K24W_xTq(06+Guifpxu7_{4xp(91!&YB*sq>rmu?W3RV12V;@xOUzznc}CPBysW zTwD_>+a7Bg+`roPZusFC-tEdW{5W0xV^<zvez@lP4x2x%f4BeNX!lz0y3c!li!kRE zi`UhBv)JK$FqAJY+xrHSOt2{X+@+HaDR4D@<KvU-IcUUoXqA;tz`W9$ie-5LWkPR` zOCD(M|NHKj)Y`sFh06@vlGoPlxBK2aC))B$iHmS=ZIIg0&EHq^9ez=mTeGYnV2@nR zywo@BshcJ^Cf&~z_t$y8Smt>sJI8UxP{{z>ZRaFTI9;3?tLe*mBg*GcPH>9UZ^k#@ zCl~V{x>0R*$e59%fXOsrmss=OBw5>ZPKMWS`FIp`nK~o+t{=?HlZlfk2(Yu2H9x$0 z)9SYL7YciR9R4-$Ji`%3=0nFdT(-0c>h4%(<!5gGrtL#X)tZW_Q8N?giZYr$G_d4; zaptw6@D}x40q5PDllHRphb3LRpI-g((Yd<c@qd(eR~NF1{;&V#|9@ZYTlG4b{Q4TJ zaP~h7kA;<RMJ)Dwu*P=Qv5w1viDxhTORLxYq4ja0nQzI1tH*C9{av}v#^Gf8d~@zo zY21B3?8Wr!4u?%%a6+%OIr&=Un%NIlABlR=C%bw7-ZKiC4KGi;y3uq?Wadq^nrrXd z%C7!OPv-3u-6-q0`Crdl&Z7Ewi@Qrp8ufy*c8X8F#Vf|mRe0miiBoE8HeZ@o`R4s~ z<E1lZPns><_d7#X_+M<u!Ms+B6JD=wiav3j>2%s=Yh{=H@v{*}W8BqZzkF$HJ7U9m zW8;#YuO2wvV7fI`VCCiKvv#B~I5P%`8LwQEJV&uBi>JtYgD6{V^_<j?ZyhuGHgY!1 zIj8eAjOEnJncfXS(S=tg&1X;L{c$6+hm+%oOj+CE4u*`YmY!__%?%8O1~n_<`*wEi zdf@unG?4vB+c!C_E0cRuPu-brW-h3ZmD*e?TIZa}<GN0fEtt3D!oQBxhYl;X*Za$@ z33GVxv^)EWk<I7-U+@2};(an-Yk}3R@_k>Och9OjR`+W8|9Q3FqwP1GpH_eVIRnEf zolloPhTNSo_wB0slJes0@BQi<<-Z?WQ=PVV<8M*p$h3WN#u+!R9<pMXJAcQlaPf#W zVq4V2<M#eJ|F$Ud?Z+SW+jrjCTstSQ^?qqq5)ZG_hJLqNQO(Qz&8OOqEIatKF!jpr zkDu$-uQez-!z9Dfv5j$J?^E84#WM~?br^0Ex%fw%dqI2i>wkwEpQqn6Oy)21Olf50 zIL&6fxb7&Qi^kFDi4q+LCd^oL|M$%EYQN`f*?wUoyU&SVI_mSR-^A}fZhN5VJ-<ND zH$#VjnMvY-yE{%!laT+pLhYj077ZDedv9E-Vvf#PX(#ItQTqI2>7L~2%pD=s4R4;u zNnZIkv*EGDx?S%2>a~YTFP?Rh^0{&=?9eHuANyZqBnKUI$_SLLcPf~<RwsRNfm|fN zO*c!Jb9=-6-b*~`{$8Q-c6pyz<WFaC_Iat~2e5OmbxL_6-dMLb#`x6kB5C_y)7Hrr zoHbRJ4mA76qh7-QA?wR~ha$V2Uu%rh9#vQ>TspOYE&Hxn*Dm>k>6Q;_7FI0I)cqBc zvzzCG^=yZS?boZnO1(M!dT*8J^6=SAUmUk&hMTx*>$9C)5TKiW&9zVRg+XtS#eqdL zQ`yWNL^t#0yX!k%pIE&2)WQn~1H~*Kc=3FepEorov*M3KpM$HPiEV?A);{)R*Dd*T z5`(PeBp+04;8T8+VOsUc=z*-mL*-q*ZHHQqZL#cF$NnLp@$OP9v8yw881CM?&b?vr zKhqoYukGfty1wB5tH)hUVG|x?h0C@c-1p~V!uoyFE(HI0)YtHu_rS_RUdC@x?l%uV zNagc4RsMa<ZvX%HZ$EGUzmbXIyTys9^G|)IIZbrn=FvKqlp<iX>U~zw+SCU+i~IvE zX0k77O;F(Z?e@}klcmKHJ+Uj5$AnpU3o@)L0`?adZb(ZjJH&q??D@-L<BiYtUw+KW z7xvSCS9s*%t(6sx@AR&@6!k1P`=GJ<?>@mZkC<aWZ<&7Z{E~UAm(3{I(QMjo*JKzg zoKc%JjrZ?nU)^e{T#Ky{P3JP-9Zc9U`_vE9Fo!ejGP-@0T6^a-eBaF}RLIL3cPe9< z$+qr`5975TY`Jx>n)CYiJ*)Xv%b#!-ei3M&e&JQxnyE|IEsUwj-<9$BxrImbruTh! z-mZ>*)0%wtl6-$UE0?h2?llc(Wl!2Na$4OGe!n)S>43y(mn`)+O%tR3K02EH`)&Qt z{hM}&S6kfO|JnNgnSH;u%CF8|dV|02$F+O=c8fPGT3|kXo}{PkiT(zorMv<MzD(KY z@0hiTFF_+^5wmH;mf4%!)OFw5Rg3N0V(IIsJmvGvTi#1K{)sI4AokPzNQL9%kPp*u z>Ab#s>c#SVL7y!5+BNOIBf+?bJv;jxQxC_1{NnSv0lA6F|L--Wzka=Ss=||hcb3-A zd}ool^4T|;iLRLoJha|^KXc*p{n~#|9&ko@%)V7~dEbNY?hg#MRc^W_9&`WwebzOT z-)k5C?d1+URND7?d&06U2X<&Ic(6lIAvrDcy5m9#+s4Gb_xCo;ztGQNJKOB~wf9>Y z4b#*bc)xF5^&~gpq-e9XZTZDJC$3E~dsn!0(bqj$`N!_3PH)N#NqX~3!d>jL*PVI} zd#UC^?uom8$g~#z{C6RDLvQcx?XMRvyZheK^(FJf#sqKH-EBUttp}Gk?Rmz&MJG2S zrpIc(#2@ji7RkpSbqMwD(Cj}R$77v+;?nxKqVVs}#P@$##l*N<>dXDx@_*mSGqPA* zb@+7IfB(ufr;~Q;%<{Ld|0XDTbH_Wz=RN<Q&p&CEw?2E>jPDu&i~rTx#C-mKxnq-U z)DcDowyPi6liL}@kL+&S|3P~HugTvgPA~J_ZX^FOc411~jj#NU$&S3X=Tqz7N&jHB z<KJ*r<K=7?pSNe4nBJ#WzUW$9mG!;%NM5(0Z|Y*(go~XD(l?vi_p$9!S<-QkX`0IB zLuPZ<mg;A;{z?B)dbX`PVfs}miMpq8-?Eqg_j$hHnC$K6UBAzyvnzR?jA%<rY2ouc zZ&?)c+*sq?(yhI(b>yeaJGI^8($fS7-ETgB%r~d+QBTm&InEb&CVXyh;}53;M}_${ zX5L}k@v+Ff>|oN&BX4q-BpS<?v~6N$Y$$C|Z+2bD)R1-O{=KMeacg=mdD(GXQ*<;v zl74nq-r03;{m-;A>n*!Bli^wEHua6p;Xi*}R4Y)4aNe!dP}H+m>L34B`B^))v@9Jx zpHDqzY1PQmVJH#lo^o)4Y4IBSWg85hX%+sx^}_6BhHl`C*LgOtqpY(Z-Q!ECSjl8n zVHkP5`o5|Cp(yDGsyZ**uUCJAY*}_rF_nEQ-|6x=J?L-x-lBlzJSFcJ{oAnQ%4|MP z&fbM}7K+_-7O_=N2wprb+(zcfmL(sITmCK$bj-Q;qxaOKoeyPQ+`UfC`Qd2E;ThxH za>Sd(Enwkah0@T%3sT>&YOH=I$v5HhA$7%h3_3zgs}pxP-raY7VWsZXO)^;y^WPp{ zr|lDP|I^>)Ek19QqBhQ6wEA_5{kLB!+eH=sT{E9F{kP%)_k?Q#w<q(xb3KrC_Sf_3 zfUgI?Maxfkx@e*4g3Fw#V(Dy;bU%a~vo;bu8kJyp&3S=OM}XF|j~eyAI^%q}*r(52 zB@*ewS@m%#v!es&P4PMA;Z+~bvG>G^u_g2_RP+iHDq8)Zp>(6*i}giq!p6*kA<imY z$tNwt)r@}MFka#CtXf5O#;(|zTF3s~xe&ZyvfrvFi%gZCJLG;3xHO4vinxLEh33^_ z5^8OMHB0CHlv>lf`M<*R6HzG}g<D=MF9<R#Nw7R8=<{&a<5dj(lELSVWY*=q{q>CN zd+C3L17{=6{jTOaE|FwU5P5rL|Lexj$D&y)o+tnM^e*8152+vX&y`uN(r)6`{$)3F z%2BubuR2v3-Q0Wo<{ndInRwy+J(rhzCk4Mc_@Ddt^#70Km0tfps$Y|`|MUKz`Z@96 zZ^mp+%D=Z`(vD4wr2M%9mbkQO&a#?W`q8?#Saa2Xd6T@0r*v#jdwkj{T5-s+m!UQP zh1Tn!NBNRZ3YIucy;s8f?$ricHAnC4(%!j6b05`;g}l=JYnc15C!J^3U$xJ7n$&`O zlV4U#m7V`p9MK@<nr$`D`s>D?M}H38pI#sloKnc5lyhtg^L$(9^WTrYzronnx6sJ( z)PW<$Q^XA1%I18Ii_+};)+C|5vHnup6=i`XvEE!!o7*;aOMLSe>2<uZRpRxTy%T@i zh%}m}%nV$SFT=_A??l+uzn|B<tYTi->zkRX(-~5JQ(|7D%x{_V*LGE^*ouoScm1FH zug0-W<h*ImS+-|J<p(Y*y`KB!Zp`kpyG#;w|9j>ioPE25uWH*F20b6SW&KR~XN<i6 zC-ZzergO|s+l%q_T8$5RP7}n6Q?AWWsyNJchk0^`Y)VkqCR^XymrLW8u)dyoYT3~T z4h@zOCblmgZ~YVYE^pn1xlbx;HrfAcw%_=h%b_asuKN6%=<EA#r2cLEyZ>Li{p!cn zYmWa<-_V)R%B#Ls`fyZb`Tu~;-@>n&y+5$QO8MfM&pC7F@93*}^(Rh0a(A}KiNlu+ zno^Hf?W;fkPyYY=|Lg4fZolR}uI`@R(Kw|_=D5&I<`+emqHHeR*Nl?Z+`iYt?Equ) zvmSl+owhqpKNsGoe(P4@{fzph3qn@kRh*=;Zb97y%>`!_W}kXqwA@rbK2v4sd>_Mw zDywr&FKF>eYF8{vo)kY#<Bpr!oM$q{o1~&&7v7oU>hvk{1;@(e)qQ;e+~?HJ|J(GY zvFoSFQ61BS%1bvGl<uuQrM4kY|BL7|<$LanrWk$kNb`+K*C}`Xuv6uiARk{(pCiu< zeg6rCKjWjdD^DgdC^hT0vG{b%Hx=*Q{d-wl)Js*_>OR3d7f<>5=`W3rYH}GIH2(Q+ zdipQrGx8iCCfGSyhwIiT+i}li*)Ai$$Nu2C4Zg)UPASE+H=o-q{O_NF;)l)!S5H;4 z8nX&7zSfpCeeHsSi@xeccb$tme5_@`W?>`a-?8fxkG~eXC40+pqv4;;8iL=fXQfU* zns>mi<Jydib)Uee*)lNP+Z^5~$SLmRSRE8A9`#m~jYsd7xrW}9U3z_NTaRTsg<iff zH|6X7r8{_;y`?rb8m3(P|D#P#VnSJac%RRt;+FZEH)NL_n4|y6+*u@pRcQY703H9c ztf>cf1i$??Q^&AA>5HnJ$B8si=gmzF)qzi6r9V5JbUby-WyPE4|3#c#^{#90Uir5V zcN>3_2^XF7|HrGG_!Zy3JimY9Tl4mJGG};Z1hyG`K44&ZSjfCMdGDP5Pu%VX0tN4n zF-+yrS!tqv@zVoQziU(ePQBX9wT@|7qKxE%X#z1zHuJ3tQ7Yx-;r_9KOXkn>18Udg zzId#h(|D9?!ExjFJ}QPg%BRT1GCjEB<<02BDtNj*wqN~E!I}jgC#$o!ga-JkW_7$@ z^6LGD`->MpjN(7f+EJZ3(}=-ZOwzDZF=_4FRxWpKS*t^5H;a2rUGhwN%JX$!<oFC_ zE3yTbz5IJ}SAz`mro;)4#YzjCXBcX(Shq7){M^wMe>cx^z3}w<*Pt1%v)#XZH%+LI zZnrd=FS)m`@?&iAA?d3-Q!l?b&?FfAzvg37f8m}G^$#yKTPB1xu+6*Mw9idRg0<04 zW=H3_V8OqZ6W3l?u{|i`*^zZK9^e1fUcbHWdM+zN1k;A~2X0=z%o$nFtJ$p1Ds$(O z=i}uQR+T7R(AnCsf#XUi|F@o{P5V>C_TGqovobs4m8!I0g3Gf#8{JIid;Z>}G2yB9 zcJG;+yn3hg+e(<d`uY89|Fm!MLEm<Co|qa}BKZ0Gn<-x#>>7eMZ;5oDbN|B3gyUR{ zY0}l=izOG#Z#~)hb@lfh#>@9-c6+>8ZK%lf^OB9$37yp7Fo9$-XLUBG^nx5_v$y7( z<#s$Yo1ZN+<A~AWWhXtdYQnFc;I}tA_gCyzlh>}v9Urznzg3>}zW>keUF|LVnq4KC zCra9S_b^`f3gX^(j_Ji3xw@$g>5aZi4s6S;eO3@0Q|wR~tgSiYD4VeBY=-Rz7Qa~Y z$V~lv!tO?qWAFJlw98L!b9wjJB|ZN8yEpds_FW5F_ZThKbzqIW=b8JE<yLv2%jUIi z&U_1e7j4S*k$SN_=YN=?t%TZ+@~dv*tp6p#)*cu5eJU_3DDk{h$KI;i=IZ_Rzpwqf zJO7{Lf&ZuHWPkYYJLh=b;XCd-*34i0?G9tr50)TF^|kZ9JWH5pV;l44+q+dwo3~qp zi%*f?_3upNgW`^}Y{A(ZKYj>mQD$@9Ij`{ayOVy;|Hs=dOKG-g&icM-<G;=7EQOL& zini}epUbb9Q|)-+)S1=K4n^<De7p4S+F((weU1;7R~%O?d8^oQEYGsqkhy8;v+o5? z3P(-L(=NzNPFTenzS~0kTv~<8&iId?Pdq<%{ff|{{e6b}Hwm=5>}*hX{Ii#-_07$T zPygFV%uEyK4(R4&y>{aAzL$3lyCj7qVrJF8bo{3DTOrM5=5Hw-Pw$@Omye(6ey)i8 zUVVb);m-1VZxYuUa`L5@-U*QFit;|+^mg_yeg9o|B82C*{R=quz9z0R?6ptHe0QgI zpNu2LKmW*7tY-*)61-c^gY{uGXWRKF!r#|heY@~V^{u#k^XfV|cj+50vPxUhLZ!nt zR7)Q|@a3k?ZPSN;n{TVnSl+Yks+iBg7dwPYe?08YwA-69?UsU<)`>9D&R2{6D(CE# zn0<Err%T+b3J2@fWOM!sn`|23ZMS*7`SpJZKSPa+<m29-gv^s1687Nv=lC%^;YO7Y zx5^3Etd&Bq9UC}9798l*5@_VMWiSpp;wpa5g+GyHKBtx>^Q9HuY_V}=YbDEBIZo}{ zv~1FpPa-p~6iBdlvCrfaxE7)HAVPCeQ;*iXi!Up6!aK?WbS!V&jPgj<7nS{XIB(wj zH=nZ#?uR^ozIuK5?;p!<d|%GU{#*Rj{r7P`-{$6DU-SH8DP#7xy-K^DJ<7E(x#_gQ zr*rH71skM~D>jKQ7VzavvA<lfeCk2*z&fpz&kk`JPndKZUmv)*tm2wTqvG5wmFBii z6aUG=4Te(Yd~K3fdxh^ee?KR3so3q9P@^M*(c)#x*&~0PKG2-*z0}oUcbv$T4QE;A zM5dnUVtM^Xp-d-bZsg^5yU)iL&yYWr<b9`|{j6*E(ZG+Br)F$ac5gCWv`B&PHbb89 z9dWrkD>Icu7M@dc&zxN-c6BRj^vOe=a%}~3BqG|xuQCTu=4*LoEAsAj?Y=dRTc)p? zbH3j+T7JuUj(tj|C&N1SF1_!R64S1?a>4OkVv>KXRj*}-|C|!LVcmJoms4V*wY`%* zoJn3>RII~wO#hUnQuEL9y1&ye-aBuc2kN+Pu{+Fb!hLVw-sSPajMF0Tx2qnQ)^VzR z-onhUx43@v-ux9dOCX_lsaf6Kw46=XR`u&HVz<|Sx<Twk@vNfR+G&-_4V~v_mOl5( z4*UPCebKy|A_80WFV4v^x<BpK=55nbHRpWXCZfwQ`9x0n29-#Dy~}DV?yY;erSjT_ zhk?@;m(BR4){q(H-+14weU*mu{coOu2AYnRw&@$RfBZ<bj=3v$q@GbFhxyovE4dNu zvIZW~4_4SD-z@&VcJ|KB|FU2H<y@TB^Gji;{o;MfUS1YW8_$1@+nTDgEtYv{ueSX{ zpQINiKO%29NKfWHHM>6lxJGVM!9VNVf9D#a9}EB2lU=fC+X;soT-V<o=n1>Exv+EV zX4~u5wbrlJFJ89aIJ&5Y?fdDn${hdbl;^&>OfRn-_v$lSd9B1gBYi@q?j`Pw^y)dE zV;c7AD$JjGpgqmDJ*sMo<{Mp2#*eSAn&zB)e0cBQi|_0A%BfEO6~F1cef{YMp~gF+ zQ`IhbO-!$M`*0#*^4gZ#yA!rP&wj8+E_coGpI5(by<1n4{(Zi^)X|RaExZ->ER`wN zi|?v#sSj(=eEln9`pUkCn%}n9uir9hR)Xxz&W~$in6#Pe-`J+^iWT5b-rb;iAjNg# zi9MVDJUbWl%!X;n9^Fo(pXtq|W?jc5Ws8r=Eott2@SZ#MD>qZ2Rr2DExv!cGT^PFS zKB&p}=spUVmXY%8qF?Nf$nX6R*ekw$TQlF?^SZ+4Gb}D0e*(7@U))vTaNs6ix^lB( zu?*YBFG-=x))?M?sku1&__-A=@68@c9ke>0wne~LcU>ccgPX1vvjJzku50JC^9OG> z*-kkc@i<DiChU&C_+Qo!la(XV%l5lGm)+A|7nbfU`YYka{>gtH+173^y11-7KH;uJ zX{p|U?UP*%PwbmqS+FtT!?Bw;;sV#b&S6depZW96tB5&;`ja31Tx57Mg{Nto{w%v= zE@sD@1eadw5qdDmboY!sd#=`I%;?|js(o1Ko5u9s`v%4HYR>GbU6vi)@N!3O2mku- z4?%Ml@8go0f3NxKZI)|e$f(AetGDaXtN$5_%$zkfJdIQ3S1X%a7#-5{Vk-OWaGc}c zML)?_rz025|7)~+-V^wJaI%sGhpjJ@derHKF3qnSwTuOqO{*8F&eYvju)sxEqSxR< z(2rp8FSk-(Iy<&WeoZrK>U&o``|!p^Z|C)V-5xL3Rr@?~Yk%2MKGPTfZ%tQnka|;b z?%Ut?sy$~V*E0NNzOr<8lVbCt_3_8~w}*xlMysk>FgPBM?XvQge{jkv<E%sAlf9cy z-@UbR`3!wI<JYUM>0Z3I@#?gb4@**`+!yaH^9w1px?}v_`TI;ZCZ6BTt9Q$1sr`)k z*t68~W67Pg<oGznFB2y^9cQ}seP@SvqhkMo+>K&$4m+N*U3qz3tcJ?epLZ+-Hio>G z-mCxBK|mpO+slVr{h2tYh~^yZlsRf-etf%wgoaF-?l+->3iEZR7kt}l-t}xv&Xfy< z_gP#u9>_hFF4`f=lJ{8tj}^OW^}@xG`@dJrdRtK1@Iz!yYWRUNspZXj>o^&=CU0Kx zTYKWh!;1DF1-31ITNa+tJ~g}T|J}zYcfDiQEGn3$bmhY?oBPM#Sv*<rTrX-i;|h^8 z%6wNoB)*EMd%8M)+x;Kb`&<5gUjOf^{kCxZ{MWx`WPkX7Zky>JL5Xb@>o=-f%v&qA zcgnZTFL>o1pZ(aKqbs{K%sR_)`g^~ylUeLbU)z_by@)WgD(_=3W7;Ef+w=dMxr|bq zl}j{&)(GB<*6!>&u(!qk^5#QNBlpBv*jM<Z&eMtDvQ=1?A#b)dw^cAW`uVP~KNGi| z5BhcAyJlbaI^MvziOfg5dH26M;C7*Ba?^^l6|X*=Fr2^3An9SF?v)!=diLCxF1xwp z3)~1hmA3!r-uya`1od|{+!8rQo_$c>sP}1A;nUO~yLopsxC=`!VO^3fUEFsx!&lkq zdBn+$%eSOiPKXh%$i7x}E^7Y6AG0=o@i<rg>iqO1-5>K;U(2boTbBBJKT}*VgW#!6 z`A2njzwA0N>+89-%5J}_-Y#@JSoV@(Rwpl`)fcS`1~aN=Iy!n?EVsM1Qo{b!oFpCT z(-Y1=eN^?Y=kpmJh2xr$;_<y(qs~Nec5c027?kPG&hme|MV*|y+?)Qo_x-Qu_dkm* zxBva7n&H>?c4=!{+n0Yn{{C2PCmfIwrORD6|JDzw<_nDno^9FvZ0?R(KV284tDY8L zWSj0#ohV?_GGWeirfUaEDlfF!R?T9#cd2Z>bb@n_Bgdw$sgoxkv&iZE?V+AL`&t}V zo651tP3m)2FZ?NFdN1fp|K5h!%@2OPIMkAV{a?A1rIr5=<6nE{eEH1euxKj3Sf&-H z%#&Ml)^=~;3^49=cvPp)qWecCuK!wewcOg5l@*N7^7_ARE#}?O-~Vy<n!v74EI$oA z*K`WZH@kJEEKH;{^pNewuZk=(qAAM)mgGO^$m#P^IJIwGx9T5F<7*#3{|<Vk8*uVm z$AdWvE`kh~WZ%lxJ)gn3MYiVd8fz72ugZ+y66ZJGUhTVJed}C7hZ~U%TT)7o-TM6g zO;XP~>qb8x#y2k7x!vc4JwK=HGCQb0O|YP!(f=01w+)JwN6wwG{`Hzs#5^%(#t&IW zy&vyh#Tjn8YVmjek&k{%>Lu%nyW?lP&{`;7kXgs#<q_7z7}?a|nOd_iolQoCeS^{5 zm0uoyt=ntI!0`UIH+%o}-&2pAJ;Sh9!J_>}XGY=C=*v4^`Wj{QZAiQNj$f`s;O^l> z)6QFK7i8TCT#~zr@zkz)IeSIEX_bd;m*To2^6bQ|evZ10JMV7%)ca<3-NY3>(-gyR z>sY;B%;Zq6k-FusK)+E=WXO_5_db7+e<pUMGWy`86^#!Lb!3~asNAu+bkF+x&!;RG z|2mJo`j_LT{i_asyuNPJCWAG#zu)mswzU&vS>D!YZ=D(WW$|m<GeL`e&*<!U{OEq@ zqYItPmtKBeyxrl}?Y#e&o;}Su{dl+7RF$niA8MZxd(p6tJCb{C+o|VbGiP<`wj0T= zO<ewO^@5(c*1W|&i%tm3mOGTbPjWA<(VH%ux#`v3(^+kYKA*Y#%~B&r+(!SII73_1 z2a6v89Ab@kAAIdv#rov@%DC67PQHHGbGX1yanjVNy;hC$nwxe{On$|8=G`r)7`@+n zf89E3B{4a3ugV6q0tc>_)0ZFL+EPFL*&CM~j$IpGz1Z?^(Orr2HkOJLcLpVN|8lr9 zzo9cDlkIp`{+j67S<n7wq_ao7vW?qYlX^P1wBcK6n%t_-9sjmlt?6#5S-`i}fNdYs zO_|SclIp(}Kj%t1=&8uz^gRDQqw=2`eXi#U?HTuM`rkM`+PmB-eX|8`f#ps6KWqQ< zJpTN>?sNFt?)X0(k?YL!??nZCQoh97Zp5^B#qX!rc-hacanF2v_Rnjz4Xt(_7Y>Vl zv0wg{yQK4y&=0eTdpAsr6m~kM8I*P@Dt159Q(pyH1=qz|YHYLjcDvlGDb-Ir@PE1A z`F#FIKNduB9J5;dR*TD9d9qX_pH=fxL(!o6I?nB`Y38@?89sUT`Ez;m##rq}<*;&B zgFD9C#Z32$S&3!O=GT3(Z=duBfmF7K3C7;nTE9=>6|IuIe|5@YS6%*9nJi5^UkXo% zbT)Dlm(97aex&KK@<Qv4r*u|^@7*-t-bi@PVVS!=RbF;8_$C%6TidT)?$SGPPP3rU z>$#_1<?6CEh;}pQNB@fIH}sjk@yMnx)6(Bm&vS7;{&)S7rN$j^8O`1<oF_lM^Xs9F z2WO;aerd_jb~#nV98$4*;pq(#DVu%g+A9UWIrVDe@?z#?XKtkFX0GYdV*DndZnS>h z^d6qyiJRk;UdaEd;`zWCf1vjE!Nw~G7}o35eEqcS*ey=S|JVON*uN?vYiqOV<lk%G z*F?4FZ2cR$wOxH)DaW5)Mw8oHd1uYf5LVyjb1Pf7GHl+LukF9xZ{NM5a9HzRxVJ5T zzm4&teoLkm?kwSzm6vvvMel9T{rbI;@tI^qCTD>%o3*!a<AF&Dx_>pBrmWq%>{!R= zLYM4EPox+>hnz1h^@-9DlYV`?M1KqKsdH=xq*uNCx6jn*gjVF0-_5Idwd$wons1$Z zc&mH&nz~Hgdz-e3m8&w9Wb!@P$+$fCj;pPH(t=9OQ|o?d{(SVg@a%Iz>8S}T|Cbwa zz4Wd1H)YVwDQQ^!PkJh+hVa?M`_huFTG|`LWzvNoUpT)f(zCDd+6^_MsMB%heHJ9{ z+O;@7ruN#+nd<MdH4?AYaI0w7@a|>NwTr*U^e1CmsOmPmYma09-Z{*0wzb5LvnTMn z4*v$`f`)ZM$L}-g7~NdtxNoLw<eMwsbUwb{$a>MlH+ggB$wxLEZmAs;_!3-wF3SoT zC;vV7`SI<tbC>R`9h#wa!?fz>^DWN2|BH$)eo)W-o3hZ~H6ZWVq)&Rh3lA<RYhc+Q zV#JaVch}A4gL~wMscti}&En5NPON5Ncz^Tt*KG4Lt`{O2b^pHUGQ08@s9ii9zEzv? zX;=fpxyPOy1}oc>Z5#6PV_I5va&DPb$o$x2*+#ZoN3HezzaFrg_hf$iN4`_bUu51p zb;RDlSVD8{JnftNq=e7=eSW?w@r;W={Jy%i6?t1f7jB#!{IR)j#uKULYkJR<PwHxT zEIz=deDvK{cl|fNo+aPD-&0mRH|yEve{bAY<b2t_Uf!;zZq5053M?&FRdXEAIaqXY zRX%i7DGm8%*t_7wo5lU_)?AdUowMq)fy}ox7uQC9OFds*`#I9JV=tRFQ?$mGQ<Y+q z&M}8OS!4#(7*$_lT$Ed)@v=Zspp-o!kb8dB+pTh5-`~sWvaAjIt*3aAV?)J^#mDZ? zouzo;$;oy6&9U+FI&&Tb<>>@ut+<?&^U5&d_^XPLvvS9rrrdn?;my3->01vZIyL<I zbTqb9VBJ$;F}B-%Yp!RnHLsR+nta!O&(@zx3s{~CU2|B_n|_apvw>w<!kT}z+h@;W zzSz9~`IIF7Ju%u%pKoryr1^;9Er&((V(W>@GCvnJRIjqHez{id)#i8Wv~QI7iu@~c z?^>IgGwoHtp56A1e-Hdj{%vy1k+uEz<-)7ws_RT=Z;_uiD{$ww*|(*cEVEgBoNw39 zV=Za_USbpO{%hX3e-h_pT_oR_*F6q@`|jPfcdvf@f0qAGYTxg-yV<w$KbHFv7UR2q z0qf;WTpO>y-dow5C!CzaH|J~pVMC4sN7kg*{q)QKE&68SB_^%x>{f<_#>LaVSq7Ia z-5$DGY)$T0&R=V<2;O=7%j)89Pu=$nE$IiRS58(uo~(IUTR?;J2ZM~r%+kF#v&93s zrB*M!EU-a*v(cFVnRx5i@M+ub%G-;cs}I=6{9%RPZ4HA{Y;P^CvgTHueXVy@@7W&C zV_xh!zv4_7RhVKzwh5I#?0WOKBICW>kzJkX?Y;XnlCRGB^6AaVd4f_+D;89Lc=%~& zXKAPdd*1zZ3(Oa@E?r&nd8+wR-am4FFWmz4UR~f~o+2pg*`#Tp^<(?lsAm;bzqgx~ zh;%*M%X*7ZfN#<3W0m5IBi`59PkPC)Yeo~}-sM|*t}*7!&b`UqY@GQ%B3)q1n(S9O zhV|$E+BL0HO3)U2v%<K!@#D`o-_O2|>T=@DK7W~UUqal<ISPUDsk783yWdwA)Um&} zJ-h8k@tL)~k#E*-{JWRab=khKo!i{1V~zjkWuIHV`0wxf@A(gZ#P7XvlYigG+Um-1 z#y?zPRWlzY{@-XD+A=R`g>maQnI-JMPwvmpzbHTNys7qr>4z$7Pwd{Uy}K!YbF<|B zir5C`ix*cJ6zaT}-@DuY;h%#!-t|X4WRG7_Nprqg=67iIEn)fa`HPuNug91-Ptx;M z$lY?@u3CG7<1e8k`=vG!%?yGsytnW*e(E|<Bz3*2Zl9UfZ}}q{$qX|$Z9a0NDtG0+ z3%kqHnGSZ|jL5#lqqxESx6nTJ7r(g7*2muX=4Hp9@j2X0z`*6@H;K>79}CXS$}r~6 zEi|ag$ugUJ<DG``1xA(c*=4~Sm?KUlDthrS^e`+bzt)&CG51={n%yF)dB-CvXDw!J z+`s;3fBdhSn8N*w4~w=wUorc^g1@HUPCe%rKU=%OcIu6+Z#C+7S#0O8&DHn){fhfe zz{UDq``RS7l+XIW65@8LsqWC8m{s%3j(px2`sC2pi1(QXW)=M|z4Y~@6vst(`Pql- zHm%k!i~Df>?OVrUq2H6!m)-W=WY6ivFsD>{`X8N}iJZ=Fwol!DRMKO1O>OChzh8M- zcGU7*n`{4lYpdh(x%X~fK3p4{uYJA!cEOx-CiC6{lGYQBCLSnG^|+V#_*mV`<@M+E zUf0HY=f9mZ|4oc=qQC#QhhOFPvi<&0wLb1lz{+zR-};!8MCRQ-D0rgV=%izy?!{f| z(JZfd82;+JUO9d9hSP)>aZZ011lpv%^sw6`W%=v=rv27YIi^;sHa2XxJ<qY+({|Zq zxxKZDrRYiE|K?dsET%k~`EAelrRh#SvD^hZDMp-ozIxpXbUC(p$vX8-(phl_|8LUb z7R}xIO1Z8keD12bca+OF%vIZ7pXmCwcF%fS{&&XAalyOAgq`|720ROD*OK`$bwxQR z*IN6}hqh_1{AwTS#(q$$^@BhSpL5TqNlvvj9<!%TZqoFbwY(=W@2%L!rAsu6-WbnW zwvKO2)w(rOr#S9KZ<`j+d0bh$c=3B>fyI``{!Wx~XHPWQRvB$>a&~3AY=OXG%jlmz zd@c(@j#k81gf0K!n(6T9{pKb|-K87_98*&McAeWjvot*+;J|g6;J-Fa2Soff)y1`) zTXW&}#%l*tB2Ugb!0+B@k=4J&<=WIkJtsu?ms&<&d3B?B-=sOy5A_LX&Szy2v6SDp z-R81r)}xSlY-cMHtQWZn`v#i(Pc-e?z<Vb>?pokx*>e3jMurbNf4r^#*>BM8*S~j; z`BMq$UsWkhzh}4>+}3gUzuoAV=a%0QP1CII+BU39U%!IeH^lIL__OIMx7pT|T-ka@ zH+Nm@`~MTayC!&Do;F)qia%hUXwmnphko~e5{}E4%3nSCmlU7(`Bg{ucD{@Gb?X&F zXqe|Iw#W;mxyF~atxSK;>b1FFlWofvf1BN5+<Ok4v!AW-H!q`ar)gQs(L-k2E^6n> zZQXpZMCxwjn#YD$Ph@`iG;LbxtKwVlR`BM}@hn`r<MEy6;l&59&3$CU<6M1g+S$Cv z;>i<!Ro|*+UUPBtaha{(yC<!EJ>~3=?r%poyQfdzdQ;-oZ{{x?Qg$t-$!~AnxVG=< zJ~!QSA~8n!Oh0E-&Xe8Sqx$0IzxSR8Ywnx5eidUZ`@4dTefgAhmZ>{}?aie!LT{CC z-e<jCH6$cSSk^}B!7|atkKDU9d~?WFm!8Gm+qj@qh9PI6`~!!Xt3Uq^u@BY%@4x@w z`>clew*job_I*9ce;|n^!`xLmnDh9mrxBe&JA+K#&&t;IWO-3I%`<*Qh1j)&7o=34 z8ynBLD7&z<KI2QFs_+NVQ%CwXKD)Eb?t)%(pWlbYN2;dJNVvg&&1QY>9xv(5H=_h( za#k(uIGHH+z+ic#?xTXIN1fQ0mA>mN+mO+yE-UgS_Wsw(kA+h#a+x>Hk~L{$34i-t zRf4aRbCysQ<HqS9;!C_bs?}aMonN)7`30Xq(%h`#8>bupoYueAV&-f5<J>NdBuTYS zR`sh(e&1)@)>d|S>aj<&X8u)tb5Zp8?ycEZ><-kF?6>?jZ~B!=akVYikM$o*3+~!d zzo?u0R9NBZQ|ETCe{?;z|Ln1;t_-ddtM;AzSGm*0K<6Wm<5%?qBFT+kXPcg5KB%28 zC=y)lr840~d0_tX7qb)(Ot*TVtzcyOtvOKP%IS((`od)jIeg#WZ&(#`OmdcU=Jj`G zKMz%R751@AxTY;EwfkR;>+2<b3#ZSDeY-F1|Bv^7X8k?o|9{urnA(=lX*X(LFn!p! z7j!oC=IiPC@*amJLl1LBFYP(D;LLjoQx~f{LbvzvdhR{!{qD@&S&Y@YZAzZ&GO249 z{qSJdRm_;Ov?yL;&EXsitNtJrcJ4)dmYWP+X4tN@w?4b>>N=_3AX~$C*&poBm`-69 zjX6=3HcjfpYL}NE=ES+%^>M9=FhA8kQ~OobhVA_Q-wNt7cmM86vsdXk8EzN1hUui4 zY+0FwkHLfM*C*G0y_&@TJ)5=r?vDLyzW=k-@VCeaU-^hDHO*GHHEzzTzc-(MXFL4t zO!vj(3)4E68_P(nZ;n5={N0g5eAW4p+bmm*pR0;rh+g7V@Yyf$@`?1QR}p(wMluI9 z{GE4f-p}LFzBd;e%H->Z-uSFN=h*DZy-XtWOY3Iro?3jWZvWMzyL3*x`+h?sO7f@o zIqN8y)=jIWi_QN@S5<Yc;qsPLa1yWGAh_mT_OhoDj~`^$E?al<sWJCMy)w}SCwLq+ z^yMuw^1@%=v`^l!daKmdhcQ8aiX%BTC5XB`aDH+iD)y1U|7&&!s^TW3p4Yyfus;7w zX;tj>)gsegFMJ{S%6$Ibi>3D@Sf=G<o~z?-xK$?^5p2HW_KS``k;!7EoxkKd^@Mc1 zFGyL;jre6?>F_jivX9i`qN*#qR5lziO!?_^F8|}4{U7K5m0I_=d;bsPjNjX@=p1{T zeBh1j{n+r%&aE??X4dysv%4uBxW`tq%DH!bYwbn`*6U{FpZ9F3^cGxk^5mu!$vqvH zR`Bt*uXwUg?D6gHIog|f6&%ktq(0qux-ze^V9)X|O^MvgXM8h|$?W?ZaedEshX4O| zOZGj=Qh%Mq+-B*zPdR&!QDgYJt#@Q|*S40e-_&(&)0vfj&n;?E`!4k-Rq}Q~@B!U9 zHmuHOuU9SG>2WsAyg(tRZJy=y6-Rr*I(Z)0O27MW$$j+n9=EIW^!6<iu()J)v@Y90 zcAjF?iDzlgPcD13>)f$hpHI&zeXq0l(c;pN`geAhE<2qzbIZopZv|#reqO!)wCm^h zHx|9;=j<~(a4=`}{{Sz3hV5ti!giU?Xf;qxpLp{d<JV0(H$VE^E|U#<aLPn~rsO@v z6`xl2M!qhUdzy0W@1@(euX4mA%B<FlJpPtbGp+XY$DJz_uL+l231ci|;JJ1_F8F}e zs$%Cv>3f%VX<k1#E1|4ld$K~|KAGE_4Q?2`e8BUzc+Tc|i6vnVUSGd1>ND%jzkdh+ zy(s^G;hp@v157`jTz(%VEP8D1O4r<LH4JylCd4c%<CwIiuIAqC5052vZ0^at{eJlN ztk@cfgIOO9XHTzwcT(s6Nyfvbr<|^(6-$)Ne0654S-_{_!w1;6l}&hSTK)N%HJhQ; zRQ3;169vVU`LdV);@GWiqrB^L%2Y`;);^As`D<8xT9bNDJP1>`wE2phMVfwe=Bd*k zUp-Jg`tw=Z=HSk~6{)@)5=%L+r(Ja9QY!OiO;5A73o36(zcn+R>z<0j!a1q8r|7Io z_*}AMQ|7J3o0(U<+3`Ixy<&~|&AY$e|Ng!CoBdmMmt4oM{l$TI1)5f-1fE(^nk`bx z$IICCk=@AkRqgYya=#z4=lfOl9V%S;xZA2mo;!WF)mB+mgUHA7UH_O46`nr#Y}M=c zF;B#Ov>rZ*Gz-7~b+h^W*T$)v+1t~KIV64_{WgQ2DNMwFiR}l=a>owsUgq8LiiIgx zPFu}Yx0bzm@W9_$k3Bm@rk*N_i?}zDZR(}4|3!|P%ls672<fc%Y|mcvFwxWIzwy`A za;rDj_?&vy&#F3)SBEvA?7|NIOVSdIcNAVWE}#EGe`nfs2@Qc)E<!q9>-fIi|Hr?% z_HlIox4Y%@Z>m;TpLd5G<0rxJ{%&`>VD&j8iHAR>--h#S@vTyAc9oe_bizurdE#2j z2W#$1iae3#7q`s*Vyf|O;;Cyty<WYU{A3H?C266xhAf=3Hz#mioB5MNpmAfhTUqf6 zwnN#>jMfWNeXktQv{qG_<hQ8laAyB69hpt0!LLhp6q?@*{rh#g-Mar*AN;v}-{af- ze~WJX|MB<WybJk%kInm(qQ5G!s&@CScUdmIi{&FuoVb4YVD_({v9A04m_%h9D=zN0 zb)Gk6Vt8gNx1f^3=`$y0G~M^Bd@fTZ@b16d>-T%^WzETZJ-__KwvPczo0}G$^toD+ z&zkP+6Ep4cVXMS#5h1+=SKe-8o_>>q<#|GgPfqO9`Jb7s-D?)Uj!a>jWV)?c{@KjF zv`oK?EtT14CY@NO=pgd;!V-Uj4+US2OC693Y}5U`Vfp5l;roJ`E?z$_c-^z`?E>@m z=HAu?A3Zi&i!^AxNwUw{9MQwOQe5D$N+ipsZJcWk{an7;F+I^~Ci~|9vySh1Y*Ce~ z?xkPmR<$srUo+~(9LXimckHw8ZeqCe`-<L4g>@G+rKT9Jdb}~|kBnpZhIwBa6EDmY z&f;hP6f^f*bM4R5@kb*5+`a!Nw5H$s!Ru8y%Q6-`blUzv`K#^iq~mP=+_%l}v(ICy zRdCf0UCC-69rfUv@%KH~L(E>AZxV?1s&r3#;v?SOupxNo@7}Nbo-V6Zo6s(2zkasJ z3e#I9^=Ga$eZ0e@U+!_w#%|Gf3)x2%oGu=Amz<?%pU80UvwEj)^FZW#zoTG*=z(h+ z81HO&+hx?atn|E&i8r6gx0r|5UhGk2QodLJAUrVZVngGM{!5#u{592jv7#|}D`R}s zU)S9$4_t1T<riyk<@MyIe{aj1Ww*_^bt>Y)tetOf2NnyaY8mR^?y1<ar)PoH)};x7 z%4Z!nA2af1l<Qc#w4cc!kI%Ng|My82yIVJ099Cyf7dtZB@ba-W8-v5YKX%_H9e;i2 z2jh%8Yl4&KzvWP2T`*N3@ampYX)Upc#UAV$j=N0H?>=$BZO!7H_Zb3HS09j5Sbi<? zw%fM7?7h>^efV}D_v;h3q^URN8}e6$zuCK_&nQMpYpH}ud8&)%G57U(ujcdo`~Ttl zKY@Cy6+frX|05vzv*$sw(@eHaZzQ}M_hq%7vJ~n__TH_&rQi5gTHU)V=X7Lle*OOX zP>xRj*@^$00t?Iv)_+Kvc$P<@M78={#&yOpR^eq6_O|U6dYv-&DfdxJt=o1ivhfS{ z-<}lv!t{ltVe0a;e>epAA9}rz-&r<!{%Ni!3k4_lHZ`#{aLh^FbaKzvIXxWBU%4gc zs2#X_;!pA+jW_pK>8>+sKQZI?KlcaX->Xy&awn`WQuSSS>AdNk%ZuNfTV%XmV)tnu zo7aiVf9Ls0sOQ?$l?7Cv-NIPd8x{70FGEQ6tgqnK`PGfp1?Rnc!#8De?O>l8nP400 zka|(_ew2N@@`A5AKP`Ag_xw8XF0U-A{dk&r<S&7_oEhFl$!4i%*EdgiwWhVKrci0k zoeLjgr)~ScbLq?a<p<vfsy25zIO<!=>Xa}!{a@Y^D^a4ylYIa4(%Wh04xZpk;G5#i z7$&!XLE@M3%mX1C>aSdz;nQ+)(Q3BoZ;oa(e&6I;+UxIJewHgYpY6w=jOkD9Z~p&m z|F4~E-GB44$oto9f2GXkxzc{U`V;6ZgK~YXchi5iFo;ws9bUqGza+t>cZy${#@_y- zD^restbc!H|K;i)Y0dwRqCMYoJYU$zZt-lCpL?(6-&dZ1LJqyU1lcdKdu{om=kS!A zxh%HQZ$V@K?nPEUoa;RrBLrodJv!>&z9?|aUhqJmvnts<O+aZ4+qLM|ckhZ-7lyvE z-+S`g$?sv+za!><*qq|O{NTRG`ft7Y>AydlpNxy+FSGqs_(JQQ{_BXkGu6{q>1W?B zbFm0l{LOrDqSEmxUuTJDPtoZ(f8?RouUXujm4>%H1Z_0-EmEt@-<=h(p5H$4_u=DT zubbOE**qoLR@&Ch^2kvog+~w1Fl>~5S|Fz+Z6B4=;1lWPJnc+_-e#Ld_JuaWeX4%G zUk|D-pUYPnwBUW?|1B>ZzP$E#yAnQA_luU<-S$npv|m3DW1sy;;E2%#=b0<(8<ek> zay4CxcKKfHF70i3CXl5susYlJMF0Kg9LJ7{WfXa`M#&vaewlMM=vMthk!LG7OTL|% z5y&@T={nxjC)chSF#U6tRcw;m|LVhOD-UCV()dD`GvaHfa-7<fySb7jUCmPJUQuDv zYNa)+Wo757$%vl!bX+z6*GhT!xBtWUe`4M8r#S7%$BHn8BNtyLwJ)vBztytq<E@~# z$_o6a_7^a6zZSg7_V2oqp<VKyxGe`S?Q2X<78Aei@_gIO?-zDvY~N8TC30j(vI&d9 zhK<c{EqCZiYcy^z%Q6?g5_5dDmDXqJw0+($TyydanY>>H9PsSR_e|b={Ovm>3-4X- z-m{+HY4Wu@8fI%>nAQIFy>m;>hIw=O0u*k9KfLg{b~fW{vwac2eeTF#XL^3>;GOdK zd(18y8!!6Mm37YbNV?v&=k~d$7bltQQFgl|)nBN8*I1`0N7-Oo;$lPLHOdz+N6$XF zjc@u{(_1M~*KH-tAD{pIIyt*&Mrz;&7S=_*8~J9O<W;*E@%@o_d~J%pWAxqc8~snc zTb`tNBvNIa#B1FnmDL{%@~`cWypZ43)R1?1%e~_ln>Z&gJrS$pqMSPWtd&LZit85- zgidWddP|q-eMC{ftty{YpRY}in)A^0^Ih{g7L_}@Yt(qvW(ci|Ea^7>$$0R;{LROY znGRm|xBsc#w7D>D>Sot(ceg!AyKq1Fo=+shneKD-noGpz?Yywz;Ocod`EIzaJnNw# z_cTA5UDHSMrpcLWi$%979=X9&Q#K`a<rT(*c{?|~$Z=q6D)gJ2<2dES!t;BV8QqeI zPg72Qv%>QGn-`(c%lT3Y)@sategAosdqRb66bHZB*7c8fC6sODjE#zkz9nVntnB@B zPs=7A^*H9cGs~>}Sy$X#D;P6-wr~4+gA?;7Ur@MYDCcr+&CKU{0vwI)lD&sI%wxW1 zC3;<S+J9dv=lcDnzN?ehvA;i4kYseUvB%L-m1lDQ+li_zJ9cy1H@h@v#{Kp7i}~Jr zv+zOO`h&XrPoIC!+{nnXMQeVsL#Bdue(3CDck?!6sz+yC<V{lF;O)@aDS2H&>!6x3 zgIL1sAG6pM9wt|vHSIE8pV*(rbE#ir?U}ZHO!JQ44AGjo<gKVN)BC9}QhwwrGj=W# zJM_`jZri;{w@WQ22^I70P`UE5J64!eMPB{}4`T>l$<Nxwmj$j@WPPg?69{1b`*`xa zV2|h<bFIuj|4LbYdixub`sI23?8zsO#DBN8+w<>vZLJ1l#r?RvGkgB63NW2NGbE_x zlEA5t7yJBQ%w@l~v%B-dhC;2s3SQRLhqi6n@o4MUlWVSCDRMr{D4{uFvg#tHFF{pI z92s*K?d$Tg-efCnG;^MAylbJ)B_4&U#Md8Ls#bho+ppuF>8K;Cy5%7As+aAL?=6c? zd%RrAWBpZyr>7gvd@A{RYgw)79n%lLo^9{mySsebU6$qfH&m;?zdhRb{HR^EGsDw2 zul`-V@qYc?j=d}V>P>rg_gifH$`Codt7X^57Uc)*az`Jmn6t|){cP`tE$biepS18{ zqY|Hz;`g<+i{&3Zmec8F?06N*`)7aJ{(rCkpV;?t{=ZB6{x|;*c>i~iVR-!2BRgO8 zbR^|yT4-teznVVvQuFdfQ8gC5LcMp=wmi%b?rAvKx2@W9Z?vjXsl|^UVu^SBkLj^Z ze^;=2GDB84quJTJH@5HFc<jKnnLN|0|J_^pEmc^hr__hv{M`NHR*ACnU+nzJ5wJj3 zfNP2+`zZ_2T~}+^k1tGJw`9}V`yy9lrr+@1#`)=S+>6(*1LAd#RP0#i{aere!tL3i z!e{ae+7HOi+xf_-{K5r^t_Ud(A#u3}mco0YIp1C2^u85-?CbvBhOZ2H&P<WLA9Z2Y z@mC&GCVp{k;<8%6Zl$#U!)N>E-#?@4UoSV@eth}jslH*;KCi1^VkhU5S8lbbF7u?) z_O;XEmj+vPH;I&-+Hi&c_m7fCzqjk!Rc|xe`aD&8-2$OiUskNqeRiWv?SXrVysx3H zgIK4@RtC@4P2pQlJos$p-Cw_@EMxnky-_u0k=m<+Cd|9AIC80nP;By<>5mU?je9yH z+kU%PO!S83zK%8Q*DE`}&SRU(a3Wy&rMExLlJf)^+@iOcPFwpm>cgVi%g3Xnx4uob zXPPH=Eor^wigz3NyZ^<l+1_}E?RwHg&!2Xy&+S~lw<118B3b8=`L0B1v(3{qjb@ke zIy635wrfqp#3di~-+o?ddBmhvsAS8rYQ?*AG|TOdZ<uRue5rh;&U?!>=K1$GsT}%h zz2W)^u1}`!#{#`qe?C~mzHoz+(D`>7{f~8xFJ#18GR@#*IQ_h6p~bps>sSS@A5~y= z;HdFebzwG@`*%~-?#v`J?Tz9|%Z*N-`Y50=*?NKV0>zjAincTA?s)utr^B-Je}9eq z`TI?O{J&lne^4dg|M&FyHP;uFq<#oHdf2qBaz-&P&pjo9gXLnIyerZt=d5ArWo4SM zw<0qkZuNV87FIp~d|e5(ZFxsuhVajGT2uB+@>bY=E;R*)muD@H>h9#Y&{Zim+hN;< zn?_fRKHPe{*z44hm{pD@EfvmhF5ZZ2i_ANl8KibcM8wki(4xt$?-%d=R$}(*g9>YI z_nS?UUp3VhPdlT+V6{<sN}&45MKWqHKR;FYy<zR^`9FT1dB^6OD|~ZVK=zfXk6zz2 zKAV1e-KzWF_Sa9}^zL5n!N&hO4IGP#g!H~;zt1;3zTvh<!d%V;M`~BBw_)$x*3sZC zA(Fn@Yo%Rl!o!Y@=NP6N35#joa+q~3#~|6|aK9~k{N{7<yng4G%ifZHS1u~D?tFwz z!Feg=n)oS-b4~Sx&#~scX-R*2bB^Uaxi?%p4(`fRSkr%yRaI0ao#)M`2|NBvDH~qa z?=#ZN@?Nv0ySMSd+ExA6`rl8DteeaE@8?&W@avCrMBHQ6W^0J{9#@e!`dE3jl*dP4 z>$`J_kGGU>m~<tr<ijSN8Pd~AKI!b}I58oGIX&{xoo%4Asy>6-ckTK&@={tSZ(3Rs zwV~6fIoP6HuBPu*a*j3U70Kq0YZzp{e&OcR;g6cR)I62#&uy_^GjA+dB<`KT-Yyl@ zs>13rUCyI*^F#aiCjmUo0be<!c=vz5W^Yl_#>jAN0Rvn64kIm|>g!pD%M9Wkzf-;U z+~LRrtsQdntHtg&f2r!-o^P|WmaUibYU{mIAHKL+>oxEFdGPz&J->FZe><hD;O(Ac zg?r?3*R{W8b*@_1xL)A)&ql|o(lHy<UL7=;-`lm^<jD%bb&m~xK73bt%iYrRWX|ns zslJ()-~CniYF2SNWbVnM`@T-MU&DCInx(D8ug6c<=+1Px3Q;YF%VFyTxxYEDmkhM} zd}iJH1;2zt@12?Nx}72QrLT{GtjfPVH|OrE+UL7^yO-6+2Zx>?QrxwT!zPGBzLW3F zEvvMQA9sz<_bv!{Bv-y`F6UB(1)o*FZA{Y%pR&+fmuIQ5=@tdQm7?C#Pww9O&nKq4 z*y)ZQ_k<f(y-UKoZ(gk7vI^O0aJa#2%EUt609N*YP0iBZEo84mty`CzzdZQ*<*qf} zwmEy#_P-O%7k-gES*2%+Qh{sloJ~nLj(hqw9Z*g`yyi+e!|#NYXIVQ|8UOj=#~6QT zU&Y5?t+h|J<DC?Ko7ewRHxTRhclVzC^<aYyld$E6mD3}ae27o-@n$G;j!*hk8?>PD z{MLW(qrxZl=GB`YU9WrP@%H?0UN<Y4o7Y``z`|O#=3uYCaX`l2lZ-QFZW1~fC1%Dj zn~kgWa*)~V<q;R|9F~3chDBK*J&@UJn%C`iL5}4W#Wo4IYVMgmOjmLfu+sBo@w%(Y zaIEw2rEfivSL*(KEzP->{eSwuIUj3Iy=$LTV^JN$b}C8y7E{>g34zDlBW~?2d7!pk zU6V0DZS%ado?I8KZ1=9<&1jZm%Fr|X^YrE&gV&Ms)(5YD9cO+hNo!-(wa$Ya8Xx8} znHjK@%u3GvaPP;OZEN?2U*~8zz9^|$_k*VV*K(r`91GeP@9sD_?RIJMtC=@r4;dBb z-1_yv-+6k&_r(ee88w(fzSKS1YbC$E_O$AbR}U0y3(jgr-3(eFw0N>;$+9cgH1=y> zV>#FzH!ILYS5Rdcn~7nW>I}!N|D~s_wz(t!mcRb{{Tqjy*@HIMemZF`X_0g`u5j<~ zo3C__e)~Fep2&^WE-gKWl@7Qwu49r)QMexAf6Q=2yXfQBbB|ehe_j@GI!Nn;9^;It z7q<)iMLTEittjMPt6&*(t;u=K%D{u0cj+zN*{IA{x8PWHIYY+gstXyL4+zTdmVV=$ zFDrS*TqUJTU7+vVw!X-D+}`XTV$*H+ug~W<;@=q9!^5N>`@r(z&H2}F1uvfYMRd*9 zsiF)Qzuj_d+?Zol(>Jr>kif~Mw(l0Fx9|RYWd6T@uk<Um&97~rzm=KQ=umj5q#*0! z9>(WA8-25H)NWeeGVO(B>9J*(9NL%UaVFewo$=`RrRz*@CPh@)t$T6j!S~JE1ui^| z-Rvsg*mYCm!0KN$92)Zq_Q$O&s{JY?YtZL@J@S+Bk0?9wNN%2AnfgJU-!2~8eDEfh zYsg=xfVS^%dicMu<j^as?LPUcc-w7H_5}|lUkJDM+Fb~5@SGeVKS|O0>dkgT*<H5T zZx>ltc+K}M(+-&WEPiI>Wvz#EcGfq)nv%Mm(NFwsyX&$UJxv*oy`}~qb_a&NDGyaC zi;1{*$}jcev!Af-WZS2+ID4^}{@c9Z5@)aeqQb}N+7s(pn(|s?4dXfGCYVjF*wGph zxTUA_*Z1Cu>QZ~RZBqKfU-M+@sqY&MXC|a@s&`!1_Y2i86fm^VW6o~889#3+r)HDW zRkO;uOYa-cJ-A?cKa2P($9q@b9JIRlgZFWFR&?x}^p77_vt85M6x{r(YHsuPz^M8N z<A0Oq>g5;kd!PL={jzCE1pn7vj~$lO?5c}>{9m2xg8$bEGi_&|Uh_SG_tq=^S6xdp zLXZDieem~#cUf&K{#8d*YDCCPzZb@__0LZ0J9WLUWOjVG6!Y)YzQ51*v)$Tl@%8L; z#;;Y~t^B9gygPS;f2O3tzv?NMXPIXwxJ%_Kg|2rg%MfTa*>g_F#56Tm`S!J_ysIBS zG^cVcx&B~Iqo3FtrmfqZk4d!8o6}RGeEdXU<yR>_6>II&jawZKs%O}T6de2Zwfyx3 zht*0dvac<li)C!<S?pRNb#rrX@T3xrW#@P@wtnU^>z<apy55{sV&h!{5$o5cTmJFM zmHp@mW(_^n*vx;>e)B~R6St|yr^HQq$Zm4}vC4;>^z$tY(hADCz0XS8KfAOYG0^fj z`|!hwz_krGrtkj|YEWPIEWbwdt@-)q-AC?LRb1)(mG;m;ME0NBsyOablea$j;Lam- z+@94zAp62BVRv_flN&w$zK%Luf5x}#WI~%WQ&+5j&c6H?um9eBo5LLYcVbX^hLrBs z^tGoq8*X^U!n)wV@dxvCXPf2gM!a}06d{zuY@2e^NbXFO!l{n9!z)cAUnop`C;!xC zWo>h=yLbPowKDf5Mc$uC={+TOx^8uPmA-Yy?lZOm8wDOewhWT`aiaQJ{-Tt|>sf|t z<}Kd-Cc4yqm;G5=M&r!_p09N}_@2$!v?o{h<?o-1OE)i{U!I)dKJ6I~&q~May(w!A z&w1*xu&+&B7yN$}!}1Wb3Ctg+onx(k+xI_1u`V>~WDHAHYO(Xq#$9i9g4HHBmZco9 zx;nSt^_k4^IL1J(RiC~!vftdj=y&;sJ@?8R)K#ygWxY<>ymHOOX~lJE&XRdAd=jVJ zuRFf<?BAotxB6Rxn*V1Tn9A9H{=fUb)WQERL*7jG-@o|wglNk%7Kalq-_5ts-hA(r z&$<lb&o?i9+r4;d)-}lq?c4ej%C9r*5^m}I`$p!N_P+g{*MI#i>Q!iId~ze#kyq^f zJHBrpk6(|PUi~KWm+wDYxf5?083IqIY<ZE^)Nr1$Zi=$iy0@~X5)OrD-$-Og)$(#} zSK}_NWskR8x9=!_-G`YC4rkY{U%kcb88fq=Z>P~`&-7r1EaxAE|Nfp()BogQ)cmn1 zlhN)i?^cnDXA`UZ*Sy@sdG6aSZKl9Kc5NS;zcHPPkUH_X={&dfMz_u`%>q8_LmM?b z*G@Rd(3!LA#gAhT=D(fcyu^S(dSe+wnak|Evc<;P4GXVtdpPyvw>dk+YyYS98P2s^ zlk$3(R`Xd?&!@UM{O#J-b8GMQ#Yi(VXZWAVP?kKMDskqrxWet$?DJcu|Jt)CMd{o& zEBVKHtc$OP?SD3Nm(r?YpIm;A2^Kl7ck=&D^r`CVvtT{+@X8f|*=n7ZSB@NFm({6e z)Qd{2+?e6};$On7m92v5v0PpCYBLVIIy<PmVe(Zx?O%IuQ^Sk|-G?_X_x}=;kNaP| zAG}OiTc+s3N8V$Nl1@siJUKFd$lt6ERc0`^dYsX$+_m-9<sU(NldkCUJN?;nkE82W zca4^1oz)*kGae&5HwOiy*#(P>6=s)2bjfHeIF&gi(LOr3zun_*Q?rJsoZI0CCK+0V z?y@pD3AQciDbeo=&U-q3t6Vwr|7q*@UEU8C^SrqJhVS^}^!!(gH{83xf5m2Qr0T@_ zHS^-*+5+Y-+x%kN@2cyS=^^XW&VGCKi+SCb`1KnPIZF4u`l$A_UfDu{ea@AZ)^<xi zCpH0|8e@&cdhr`9_7?9{cu=}r+K(@5(;<yd0`BMUn>O`xH}6jrdSHArwe09S?kGpK zOyLWLCR5}Be%AXJBu==zV3)7O(gl~bJU;ZyV%B{f@xR{e+M@R2Fb`MbYn)CBY@Z(- z@|XPnB<pD9)UxKY*96`vW~{!uaH?Lp?fV&9I|CF}Zab%xo$7eo_*-Ou1IzS_jBWjw z7QR2&`!e!ulkP!=%WK#t|LQwru$fgzV|C}Xwzk3q`&U(SLmzovaF#eZM>8qI;(_ti zug@L)PdluBvuMVQn@cVgM$hRz<PrFI&o-UdTfbwLY&+kPtHUt8D29K3;q&Be`u}fe zr+DoDbyfe-O#kQIZVT2uY;Di$WN<D0ugksf<N>zbPa^M@Y<6uDoaLNxO~%NZ*GFTP zb+9_`u_7)5k&fu@|6cu>U*={?UvU>uTb1o2Y}>6AzsR-g8q<d<YgXTzZ92~}<;$d| z#T+J40wUkG*zh+jnzl7#E!%@zMxQoKeo_>bGO^eqgVAV<`{`W$2<E6MGs6=aFXq11 zj$Ho0{X?LR#)Ca~lf+j2*<k%TP5;F8%QfpYHpfN(KD2Iv{Q1P%y)(A3KVVqRbNtAw zU)ir!z8{d9KUd+~tlKuz(jC~2SLHBf#%KSj<+obA&GcDD2A|!=2}w&!B`&CP9bY{q z?vPMq<UH@HQ!@8uzZo_tbMlx4I59NU-@PTtYuj=C)@_Dv#s=5p9P{cuU$6i2yFXXr zd57WT+qd7lKD%GB?niB^D*K&3VZWa&jh?$J|NONQ_QOeWrUB6b3a5ptw|7T6CGX%n z&2TU&E8$_x+kYo!{jd7l-d=9{<G+<d!{v`T^XoqIzAX&gy-(@lhAOe0woXNhI)7h$ zSG~+sh(qmJBx7_#$=^%Y!t&0u3dY}%X}l{i|8BFa#oM@txqO$>r*PKh@$Tz-;QsuQ zNv!7Km1mw-nM|A4@%6cn^Vz^IsqD^8fj`#7rCTZ_9Nn9C)MHbt=UqmD7i!b8Kdf2h z$@}1|@ZT;C!3n++tNbTSTzgMgB|l2}<O~@l>4v4wpO*ib_^dH9>AU8ps0)c_-<zyg zT(aZ3m2$TF*3vb6L1h>JxTw{Mom{bQqE-L<cmAb!=bEmXZFV5&0XsvJ!<GH7bJl9} z^W4q47$y-}!C?@`$s=*=*VFWGQSHmwtc12qc(mu_^ND{|s~tNxyRb3tR(`WKlgp*s z?#=7S2HCd{R;sncgj}DwNL}SdXz+aJ_YYF`9`QXRc0=`7iSO&>N33rDkhW91(R5|k ziSCH**R9z~f-1%F+S!UrmF7-7bcu)i;X_5fDIeB8nDFV3_Z9x+P3yjF_NkM7KbgU8 z(zCYp$M5V*K47)Ta{mdoACdvjGc2>Zu5>QuSaDp?<9_>7E3MeZ`McBCG^Q8V?|8kn zred%BdVYojzrSg%Vk|wL`n2(V*6gFKKV+tstlqk5z0Ipvd&_Q2dzay%up&^qHD-5l z%Qo3o>B2jq$^pFdu0LI$%)3<I#BWP`v#F!S`syPKpHC^X>dTxP@Oe(Ez(?5)>Yi+i zIqpuoyr!ow-P?W3rJI*$$mBgV@z-C~I5T_0`$bA}9oL`F^7r31Pxt`i{`~#n+kH+y z%3U+>MMm{$af#nqdzSaV`hEW@!_Rs5xmo@nlzID|`EiIb>*I9x*=^!qeb$`#@AP1C z@Qrk(Ij>FUG;DadX7PQ+-C3ub|1YRJue^`>)JKjx{7kNFS$t>J<rdU!s9dmT&(i(e zTv=Dn>Svg{2Ch7Dy7z>|ZZ*fn>ki#my?nR%jOJCFw7-eXvw!W!uI+77abaG`k7UP> z1x~A%3Uq%=_{P<KyUI#Cf$zDUMmg6quFYlzRo|>{^T%)89Ui}Rr_~Yv{QvuR?AyLX z`=Q6-%r58s-L;Mvj5dZY^jx_6`s$0uZ~q?2eSG74%<;{3ha=CM@l<W+Q|XSnYPBr* zTH_L*?f<uN<cgndwHH5nu2rGePoQ;bn8n%!nae89EAwTgyITZop4Y!?DXVE~?=D-t zTg$EQ$^U!%y7?yer59(KZbhGaUUtIxgY~VdnXla4{PG2ZnRW>_*M7OE8^v4qkbC`y ze?N`3e>}c#%47Quv9tQ!rm9~1?+D-SsqlU<{q2wA)hr@zVPTFn8t3viA7GBs{`$a1 zZ&nm1ljE!~A%TP5uWr7Z;&$68t7@5LUV8E7)VGb%Qnw?P<Qk-$f3JRMX#un3jKcZ3 zj1!-)Wi{10c+4rY^BdQP`GGxc3HN8Xp4O;iKB#O}wK&)KtJvm^j44)+7nv-#VP{DF zxcdro?CS-7%Xwx`{AB-StH7E@ne(EL1wR{PzFW&GugVg+IAt-TR#iio(S_!OdBL(5 z6m}$RnHtpOuX|f|LE^0%{q@`mxuGo5@$53~i{@MKE8XB-;L_N=HDCYQ<~Jv$1VYv{ zhn#PEenugW^H%AZrA?pNULCR3JfVNIYK43i-^_;X*BM?vcQxCz{^BM{cHs^OsjBqD zKdPr)aJc$&L)7I{8QXkk?q@i#<^RWh0e|n67&)jmvT9tNX?^kF;rb^B_sie!m;3Yo z-u{j4$7lVtU-#|h^82iJcd&4Dc^AE1yE#2*{toFyTRh|awZ26@F5bfSMrB@Q#>{CU z^Hfi5Ex*smv0=UBkE*txk#D|LtZ_V*SCM)Ba`>AaHF3>5@-LjqT+6DhCeg7b^z@e1 zPuH04jY!ttp>J?^(VYv~^Ul6r+xtMsI<|tLP9(y=K;)N$2LGdf`3I7hEl5m$#HnET z_9hFPQ^#)Iq;R>l+|z#XS|0xFaBRtT6}jxDM~@P&1+G5uw*OqL_^Q&jd07vO?M~)g zeP0r<l`S7RrT^E?@^{}XSe-kcvS?m*TYEJ>nsL?pUOP|ynZ@xuYaf1Nsa04O?Z*9# zk?Gge=PwIZbhczJT2Zoh`B$B-HU7`u<gw0~Z0WE;=@h3|ec1kI1!v!%pZBty;n9-w zKO!pM{@z-u+pfLNzu~9)uNw@rAGm}TEN0kq)A!!FPqDr>ydD}0XFD#mpK`3bVcyi9 z2BYlxKmL^pzC5#a>D<Uq!i>^aZWwE}d3pYp`Q90J(DT5m&d7-=f4ORxB)k-Rn`*?O zl)1?%`S4ryW0&o>1z4ZFKl}B)*9pu2C~eS7>s@bu#z&s@y8YqrtzVQG&fDIQOtHOo z{{6cHI~sM5?h*?&dQ-T?Ewobe`#0WyIu~_cg3iIKWnj3sU7SzAs^ZPuS*aSz3%Y%( zQ`{amOh0TL;L@@`-Bv(`vyp3W+u0907gmVbZ@iy(;qRkcsw?fx8>LzjBsYd<uwMAs z_>(IoNW{53h&`pQy)8y*M|-_{*PRzLPpw?^y)W*1bwt;#>oZ@yShy_eAlq_=xOdrZ z`>aGvInuY4E_8^pol$<BQ{&UmBFDXZ7dj-cvQ121e}C^<vlADu$-dg!elzfiu@_TO zrROS*Bl~z>RCP^j*1MI~-LtrUdDQck<mEZlfeA;-9GY7gL@%tfx#K1C<X~RGs|O+P z)0Zi4+EqNeecgM3D+wJ2ah*-e&vedykebJ*Z6vZ*b-^5l4cuba0{p_eY!AIu7S;Q8 zz&&hEyUUgf3!4udKEk}Kxwq6NZtt(i-}nE^*PZ<L=Y03y`~TM4Z+ZOk@~@5T>x_fb z)EX9;nlCqfUXW2yF_G=OkMgb8Gq07se3-`1_EdwFIYIb`;*BhYhB;5J7}tp$^x3v^ ziQVk4v8%#e)@o%gIM?Ihr`x*Ye9oGew-07IZ|8{LZyBM#M0?i_d1JFZd^2yXa(5AP zx_PklV(mJvZ_~vx0;YI31-*Omv;4r$o3HOFKZt(&xIg}J-M(K}^%MVHSbyhG=k<)1 z!<x4YSpS?lc0<JSnW4qeQ)z1++45Xq6<C@uS>wj01aY3El~dRRN(%RF3)$M{&3&!8 zPsWdxxtZhFbvc=%M{@sZNJm+&x8A~_v!M6eO<#d~w>`E_e8rgf&|-_i`V#i~(<vPj zb9S*yNU=`7`1qdFo1oXcGaaVA*&t`@FyqeksvAYUrKi6{v!pI6dse`k%u*!%{)J0I zG?(iQ*0<{a>KT~+?w)z{NleiR_tzyCbLx9FgUlXu&UF1|8^-tE{#fB=|J-1%i&gXZ zqyBHPUG}^y^OaJ|%C*cFmPyWxUOavIm2;aU&L86tbZ**ic<Q2_*v;b$P88>z<&Y40 zcUI>ZOUC!?=*egNrrk)}wYT9K7xRo4HO-CUpPjSQS9c%0&G*b_Q^xY_^Ikz+w)(vS z#ZKQdKYrdeb?f>zhW0IW#V?C*G${5iES<J6d-<NW2k{%*f2&{om;LPjq_>m(_wSuK zd4pixzx=PvVvPOWOum~O44jfXo~-22Id{|LqdSurSJt0f&D*o~t~0#jTKxEb<$~|0 z-o2~4_wV2Rf2_Z^|9`lDllNEIYj5^G`f1C#MkHQ4{D<}Nv`gRLy!vc&^YP=oecxmq z<`<S5ZWH%mndvaKJS~l70%zp;r(b4nEN;L3l6huar%7E;^4~uFnupxi4lKQPHbHD} z-G;D9$uSionkw84j&B;Dd%SUGpS+OYAY#gPm8mSt9`0Hz{?GlJ>N&QO*B5uL&lc>s z_)}2Ifa#)SL;KmZ{gnYyr*GUlUAyS(wh1Q>s<Hivnbdzo)=)7)R@UW4wNa~&oDmb- z!}`eI6>qb-9}B&XmGb(z=C#$||1C>6?!A<qc4xZF^Y(s|y8ejwmis5i_6jlI%J?3? z>UT!_Umo2C)^+6uN`H3e_cB<WR<=~zeC*qq%}V~aqBmW<;9n&FMld;H)ABS%4ql@< z;%D@a$EbR5WPf-+GcGr|dh(y?Rf{uZcdrO3z96}$?^^GSa|bTiF)$zKc@X}t`uda2 zc@jk)e?&J$zStcyzwUX$@r^fiH-zpHF$vZ_aC0(CeR<Sk_RZ-G&)cv62Cpzl*Z<OA z+BoA-SU_WvakpJ$K)FCp&%Dn47X-t6x(;6oychb8y@$(q;fX81AKHjtc~i~%(1zz4 z^PNt&+JN|&<vm=EDe-}6i`Y|kzBm(gW5XJqwXL6z`kY(P%-fOFHA|7L{i%V{<XL|W zX8pLk;p)7(Y#twlzN}p;H8Dpd>SSI0X`aKALW=A6erHZt$M#35`I$gty4U*NnX9?y zY3>#*p8BgQ;K%*;s=q1sO~Z4y{?(1TtI%q%x27>Fa=FJ6^Nf!(Z{A<jy!&VA!!xHg zJfC+^=U`*$s_+!AuJqV2xvB&5i~g@ItXZ_rY)(4IiIq<i79Bhmu6IRm0mu2q`OL+S zl@>gk^=N|U!GM^!uS-^@R(Dt=_fAp#pt9>s#%1%wcQUN^{NsEVp5GM^>&JDh;(o!O z2lXxvPd@K@EOnYCVA87#MXSHQPh^q(vS7w(L%FVFk?di`x6bbBD$e99-amgy{pFo= zU;UFh&JoZx^VL+wTQiIV-yKm5F29rFGL22(=lu0?_ZHo~`t!{d=WXY895uhq+UNT= zwdiY-MZ3;sg+uzc7Fkyw+}1ho_1mbAbDB2^l(b3wIsfgb{-u>M*IXN?ALI9{ZqWQA zsUXf;aYDqkXUD>xXzBMH7S>7sb*>znQ1+}X^V_zD-pDEZM{1^-iJ#s1z~nXWugF&+ znc4OI9%`>_Pp8G5*;adIvB|=_!8N73m;b2l*s(Tu?uWWd&x*5uzvEaV-D_PM<`nJy zDr7>*`krOipT%r_u5<d?Or{!*Y4dhg9DLN}9-gq9^PSY|*EegXo}HmvdnWmgw~f!8 z`t$ofhcB6QX@|<2$os*Sdn4vA-SJoM%(rVLD_JLQ^!v5v>&_PsF6?3qZ?eliE4Z{@ zW<gUO`@t~QXE*ZqEX>Vz?M{%5-(G6R>a@fz?ub{{v<dSz9Jv*;L6`9g%S7A9F~_$G zKex+_&2?PgP*K%Zx542~z#@?{#Zxn*JlUHa^cKfjU*C21^5*Wjj@u?hYO8y)1bV&e zX%{lR@T>gw8pQ)Ea&qce`10K2_SXgWKfe0z{@vTx>)-chFR0mc`DKjp|N2y0>3OAL zh6g+^wItq@jJ{=>uJ|_Pc?i?fa@~m=>+Xf-r%ZqI>eV$l`Myn&S-mf2J_-EIv*nTd zjcvzItA9)XKmVxSYyQ_a?j^siDkv$gZBPDo_wQoX41w1+>$kkkwpBi#p2^MQ|KsnA zy{8YeYm46uW^XuumHk%XpI1B9i>H;(ykXI4XcnQdyI4nf^Pg4n&wq7nt$69UEq3c> zhF!i99aruup7VVcaf_E}<<5YeIxBXa`|b5=%?up}hN}xBIgXm{l`$}TT(`-!K(c!W zGwVdnX+M+>eDJVwkv#5j)^f%Q?Ky=@=EZ-!_2Pmt^O6(OBN<aRCNw#mU)-0wDw$v2 z*y#U7)|FGGyJ|ak3O+7edUmnGSKW6fBd6^?e7-@}a{c@(?!~?wToO^jGroQ<W*4|? z%D~sYSGM0h%QThgE8ByF{I$s*0q?I$HZ*X3ckFCwtI_m1tDvj?dLP#<J-;l$j4!=x z`lrA631x0#2>SW$!)10u!KI<W!k#Y=9Eq~*-t>OCtwD3(Z@=pqixwQ5B(Y}kw8-a- zr#H`#=n#@wSG?zretgF95)o-@#|_b33^y-b7c5=V)wkRt+iuUj>DSpA9@th-Rh3!a zqF`$zVWA@2I=SX?-|mTPpB-zSD>whbXX7Y6ORX77A7WnW>=2$f_nG~KZ_kf4b$mW> zfPaf@;Mw-r-*#GGi~@`n&Q1wkz3t{9`B>dEn%Tjn6TBto*FSX>`f~osUFJUz;$NLF z@BU*dw<fdn*Zq}juiC4uSId@d|2kPb<;?RlJzO#eOSdh5Jo)YF%>{*7`=m29Ja!vS zwld`@Elp}yzwnSPJ;X;eX2pu90U>=G41UP+-MfE<f1)<muBx}ewP6O54hv&jy2Mhr z3OvM9qfYPPG@FsjoO=Ga<a^t~e}8mOH%V2oyxVY5GL=)>PP8d|oA;}>Ei1yc`Id%C zK2MQ$iSp1h5fibkh<3kRzJ(zwGW|-L<V~@4n_fR<wR<iovvA9Uj^>+h4&JN%cK^oz zkN-bK6izw+c2Ax7sh_G>>Rj!0d+*szNNbNe!9Afq=yh@NpFjIQ2FPyl)F|xnU$eI0 z*jjlx%}vqvlb$ApWp5QQdGlUyXQ@GU<z<e9HeTLa|KHv<O50@DHAnrOyk+56U32s6 zW}yd8&FxN2)$F_c+@QX-c5VB~Xt{S!eJ08V2)+I<d7+0TMCn5JG_Q{)2~TD){ckM{ zOU&4JKe)2|mY_()^a3q5RgKACPt5xNQPS-wkLUU26A~|2Xf9}xGCbxV@@v!IntK*o zXWN@QnryBV+ng?F$QBncPnomUcH1t`%TfMS(Ki{AKl&6VUR@o{&TSFSwd0mmP(rHn zZRWtV<d1vgcvi%w1u+_|xA^itm|>breSU>o*X!ro<Thrt>!sY(H?(8coZ_CT5V~h$ z`mw3LcY9QstzH_LM3rYHpL8fF*5~@>_1pUWSrsm}ZPSiC`SUMEq<^VOt8QYnZPm@3 zy}I+4oKNk1CvH~Oz|yn$%02094UuQQXQrRnu>6}{wgOW_%>U}JO3pf&U+k%$|6YsF zmG7BtI(geNMxGsSS0DL5?X7=B{@T#+leuw)Ymaes{P(HiW-M!Y*Dm<w@GTAL0EK;S zeC5&EOW8%tR`EES%V%HcGR<BYwD5*^ZU4i*Tl*u|@6Vbt`I`SbpQgr{|NG<Ol{@zB zuipSVigWYv<+C)`E_*lo{-2nWjT_IdUVU$~+zyGkEOWUR{a52oP~2+Dzbq<nTm0jf z_Orj4mz75!yfv%$Yw@R-ozJ_kAD{ktV)p%+g$es5uN`~(G1~0?``5K|dKP#&-t4~r ze_h=Bqutup*AxEM{F-;o^VWv9UDpn0T`apinI}fq`t0`flE};Nv;N6E7o9t4Pl>?! zdFEGg_q$&gj{2E$`NyVT3Y-sY4%D$fC_OgIbwjBU+wQu0;r-U%>MIw;O|E~NdSvF? z_g_o5obmq<S>U#V-!h=NgU8HJEp*yRPw|AFGo~q%rtVz&_j%lFyQPhx1ygKqNix4Z z$Jg=g;Ofhd)AwK3UVC(FW7dWC4?zcJWmulK-@q1j^j6CW1!4b}A6CV^OUe<HVL#sa zZ~8Uf?+3W-c~1RNEm3jHO1zp-C9^+e{|E2=N%w#Mn_T<t?_%9^E4-KNe*QG6_iD)e z#FhKb{H$4#aN#J&B_EEgnG4g6)R#&(_AAa&zui%EfqAlL@6wH@=HI-mf8fsXed``u z$O?QA&WYW*t+sDZ@%34^*5#!?Q3wloS8a9P&dpjc`Nz>si{tFxoH;-704IwSW6y<j z-RvJ)9}bvYXOjFgdoJtbm#aT!M88<BzIC$MJmDPYx7*%Kdw#HL#rcmH)=j;%w%5*X zh1AP`XWOs;{s>xPlCQ6D*Tl<Hx9XJHM8gjSa_e8YSsVZ05xusp(|2uy%fqY^<COor z?Lz10GOlGwjP7zN_j%%E+5cwBlp9XE#<vBVbX?q--%9T)-grvT@0vGvi2FOP-;1xi zaGJXA7IwcX%hM3`noogMSbFoueWyA9@_f6g<$687f+ODV=s9;wo4WU>JKHYvOK*_+ z#u6N}=UAgax!bkv3~WX$-*z2Hn)iDD_j|Dl5C8U7K2(0J;H@^}p$-$*;l?Elhx>L; zm^|0TQUBx5iS3GBhGu=i8d8r14qCqafA}}ci9n|}{!^Z~M2Yoou#U+RPhQM4O_W`5 z;&+a?uxs;|`5Lsw>si=TOgJy3X!H73%8Uhh{5QK<-*i|0)BgRZ`u?$6N0tp6`X;U6 zPun~}Q=;_7LC0hRfv=aAa>{Fd2%d0ZQ{U3y&o4N-cg^0kb&_+peei9W6ZhJR*VSGz z-g2r-nz@TZL-v5fAG;N@R~EfL_V@WY4FTRej%!vQX5>5cSlGBcA^k~n;LC`ct$~fU zM^3$X@O|sX$9q=E&Fq`M{$R6A{|m=8YxcjF{p$Mt=k511D|haiw5cRe;DSbL(URbv zrSnQZZ(s1@@y#PF2QO&Nm^%NQYS{OGtHa9^{GM3+IlCtPsPf_6CnuOYEL^{H%gGn+ z4@B1IUf9MvZT^3szVm9!9?oZcaO2snXtl<#73-#aTYge6GMO*sO*xzU?Cfo(;cp_R z-84Jka%;_D`JL{Ux3UJ>N-zJm`$*{p<3B6!8n@mLt3KwS@lEH?v+Bp*-n;W`oU7An z%cJ!>zDyEw_!xQX|J!ocXM1jx`M#7((x1t+K;+DdK>5d!f-_%UaLGsw%#BOREiqVl z*MGlY_qCpFjI70c4N>#Y8(LNU6G~cWziOwz%=HTnOta%-N-0pSnS0>F7S0XHJs)Hf zwM{NF>AjH*PTdlh^x$c^an^DF=bLS9T)1OzZIIi2+-4n1PvOahtR;$OCqFB0|9M%- z@KVRuHEspnuU^I|E8aOd`;o;Cvwrsfb^QGA?KZFfe{lcC<;Qoj{a;=CYps07y_u3< zHXlD2kaqHL-s-wthO;cp4VV4d)yNpkS%2XCT6cz`c}FU0qTXDclJI=aobsJJPJC1< z*tOt~zUOA<yQMb&tml{Z#Z{cUaj|dt<hSeXHm$zRwQ(IklS)$ExhSs4>zAaWraCnK zce-U#HJ5!ysKkagKcRCUbP`i<{O;Cxt7YiyVA7c(+4%I-`|?#*$1c}yxT$fWy!n1% zT)D;hn~I(Xm$S#li8UO!z1!$VwSUB7zw_G?CR8k#li55|c3PZEhpYHhh6TRGyax^* z5r|H{(dl?7=!(c(-h_7*^(NJdE4H6vog2`6-c&62*@-%bMOnNX(ywg2x-76-@U7^_ zc@d_!`kfoLE6>;b5_Tuu(c86l`fr_gw|n@K_HEt&<9~hg(#3~upRu}zM;qn}bIkiL zn(^s*m=fz5j$c<@Rry)Gg-#jH_!8A~cm1EpnzOPMDT}9s#PXX=(~$MBc^x^gdSSc? z-zVAgEV&m%6(W|W#9l}@nEHb&<MWcJ5|vMdACFvDn$0|Sz00v2N$F-D&ehWtgjYl_ z`?f~aA-c2LcwL0qzYGK3yYaU=RZm}AkYO!xcV5qdk1rY+^9;?89c{n<`!l!zTc2sT zZL{Q>t@=?<8B{LrzgG1?sp9OZGrv{~>@9V+>Ps?jyDZcG!QtbMH45@|F&1T#90o?| zc`{{dN|R*2do<2|HaRuzfWVo~d&_U-?64OWj9B#3<Wqq3SL=XYVZMk3|6AFrkMrzQ zZd)l3+je5V@-FVz-{-E{s!%O+#m3HjGtZf-#Y-<7ap-8DV}D<;Yp>ZnjVaHM@#LKN zwYOdT>-Y5q9TBX2ZW=3gH9I_5xWlb+;wf(T%!C84YkMpCxdpSoq%4bWKGfc*yW!Bw z?`zJ#%B{MS&=;GcvvPa2g>S|7tp7f2@_$<%y2L+u(<*GG`PjiwR_>e40SD9mUt#sB zoo8o?%zG%XVjiz|hS1db6K2QePcgD`(VmlYNn&MiL*34cuTJqBuv<D9M6OVO`D$ZE zr+CR-fv6}`HP$s;_7g6(r9~&L-ImaD(1ve9;tduv+vq#D&bMyXdC(=rc(ruqiqr{# z>=KQ>kD^L?Im<0<PES-Zcyg1`!gP^Lli!RtPr1wTEat_CT6SKY^h2(^BcR%1;q4Y* z?Sr!%BPCg8ohb|So&F$FsJpp&yFh5X=TwugY|pwC4*Yx7VEVv;f$!E@hFKryS*R~% zH)ryWigXlyb1~v!`Wd4y3Ntr<`?XkH!v6o81rOGLxw3tuoXNWTlCG}eFB`M?A4GpM zGU^jkl|Oi~BVlvvzi&DncjGR%r8~|wJ$<41^0b#5Ppmm&dga);dZq>1P3sE$4hQl? zOZ5wW*OAt8QTY{7-k`A0xFn`Te^>s!=~4FEcGTavv;Cjdg`2!?jy<XTE!|9~G;%f0 zJm6W`ZOHananmEsh}5^M*O+kqYxp~F-qp6gQ!{RFe*U`P+=_33QI~h6*XQ?rYhhaH zkvGGPab4*#XTzI*Z1->fmHU4GRBliIQ>Tq$tEHDFom}+1R>;@RYkktnf<2t;+LCXd z+PXnJiFYT%I=iKlSmN|IZC|-oyW8^0ul~yXGmR>acNyYW>6W<HZkNu9w6WHmwfn$+ zhL6$ZoEP`r-m!I4cT&#QXfwy@FMbq;nLTJY@8Hw@S?p%a|Lx3Q{C<Bw^Xc#I?HvE! z-?t5^F5lq4|L5MSDJ#~-Y)NL`oxG9nQO`B6Q#tFON378;_@feaDRZA~#G&_ptG@2p zx9aAns%3Vzaas?u%Bqd8e!lGb;@p;rHZqa{3tf~BoK$CZsZ;0YXo(Sj5p({Wv+V!b zvul0DboR*WB(uJlx$2i^r^uY$FL<`RSflJAn5z`M?dJToR}c2{$Zd9czrjy$R=ecC z&~MfGPt)w&59)m=ewMM4QPKa{w3<bQ$`Ra4t8YeszdomSL&v1|I-9;GE!>!pyEnZ_ zNNaPV_@c&>%suMs`E?R^bnJb4l9B(z`z>{gOZp!~b2+|Z^YeVo`PjL>ph5odB@XuO z4=*naeQ;!>TWqBY!<Mo?|I#{tsWN&dHm9Ed;ln&x{ZjXW2`l<v&b{XTH-DYv|1Y}M zzhd<JeUlgVh)=mWt!VAuk`%W)j?(sr8K3cU9XT1(Viua6zsKNZlX1<WwOsdQ4)h<G zR>R8X-1TP9A4!|j632_x6dv6Yvzw*yId<zkpR&}eQqo&KHlJPcB)UOz^%0>!w;H#0 zwI9uS(tr2QYIL8@DgMd(OLmkv-whT0*|yTPZzZ!gu6-@TIotMtsDZB=ll{BHYb~@x zicAaw*&L3rZm+#_<jKzuRr}-Q85+L7eR^<%wXU*x<(FjEzv_k`%9QIXYnl%~XxjC& z^TZQ{!mSR!ly4igb^Xe+O;%kZ@Z3d^_r}BrlF|~66El7<e8sut(tiHuC)UMH<12CN zmRbCn^VMWYeik{04gZ^EELPm;+hFOOW-TS-v0z^O!{5d(VGPe73lu%(473m5Q|i8= zNrhuW!Gkj*xy=c)l=oXlUaJb<zW&3Ud*yOjZ@*ffQb}{=J!I7L$Xa5zhM}sW)803G z^>co5NU>Plh^;;lv0maJ1JCA-s&aF;cAkq!+qRv@<$d>x%{dddpPDG)xRr}#y5W?p zLtc|E)i4FgXsw!iXtzZ6dF!ttZ<wx5?)%*stHQP0USan8n`-4^V%x-(Dkl75oU_?A zEv?{J1dqo<#}fw<`Q49PX<D_#S=T5?NB4kH^vVZ4^`{lnqZe`WFE}%;<@L`q=h$5t zgSokWtZ6J1U8&|?w#8l7vp#fLB%j7J_go|8FR@W~<5@)h3s?WYmUD92-1fxev}aMj z!%EL(GVJLT@LV8W)}oYiu_)pp$En17j1wB}{gr-eE+in$pc>2{)S?@mc*&8y)xfjF z{GG%6;#J>LV~w6)k-4Ax%<78#iuR}jFIU~FUK=y>v(Yn&`#+AE->TdBM(SdO{Pd*^ zcicqhYJ5un{(Z^eH203}myKhm)ojcCJhkE1<L8$dU$4vhbN4K>uK0ESMk|jyYfKDP z-c9#96|y34k9fL`$+~4vKBu=E##LwRwiesKzCf>P$+tIO7+6mE?(k)`NE0+=|7o0m z_y6nvZ_OV&^Ruiv;&?J9k$dsV`?m{!a(~=Wqd)Ju{o9C$GQ*0u?`;>??KwHE@Wa~^ z6@0F_F<qMk7A^W^{NZE&l8{APmsu-u$TV$s{l?v_HNEsq5udDtIa^9rVAfwwtHWEG z|H!=DDe^Vs_6n_y$1;>B@UV8D*>`5v`qfOb%{8<1xl4QhU0x`$%+ny3%QWn0dGfyi z{;JMEefzc^$A)ZucHR1vZz2-XXC<b56<WNn{DI2l8*W#B$1k|3dz)D?IX8p#y2-H{ zpJyMv!F5fY;cRCy^K6X;i)Q)dR9`KrU-<EOcg~9UmztWtIY(|&GuX(R%Q~&xk;B`E z(_+@5^**O3-(VMgdotm_N!miQY(YZ@`6=5%Ggn=Czp8)x!ov^dcV0{gE$w;z?Cc85 zRVn`t+!Je>D}24E?$yJ>uKl0+|8I-1HP$%T@UgHhX3IU91lJz1Rk{5867DnleK*~E z%dVpFtf7~yK!?bk$1D?XupSg(WMnJ1?2B*wHovJ}|KsibKdl%1pYK2Y$I18q1^04K z{bsm%XO^s{_q$(T4=E^btxcPg?0)0a+fTU;92b@{t<%pd-_jW&;cnx;Gv@J?^@imN zUoSXzvM}21Tf@^~!tVR1WMzNw?CP7^5-bAqV@u^8e|@~Yu;M>U(yhCJj8i1#G~QbG z6lrg<T`f|7H0r+5jC$7B{kPq#xSw9T$ED-EDNQkhf$ip92Fq}k+u?ife|C4=mg5~^ zoMCnE=(lf;*XM65xL@8JYLjYl{HCDB{`}ykqdBuTM95~`seH@+BY)>IEs6HL#p!Pu z-<fiJU8EbszVuo7ZduWa35|)jYCCwCWGsS0`1hS-e4Lsv_1nK?-VKuVNd-oh3oQ@L z|H7^FM*QI>fwu?G?C`&}IU#P(rFM;Pjy{S1PkdyzaE{O2{m1ayUz7V8`e!PSNITRn z;LWz_mfRw|V^%?!Z07!rXSJ^tc`jJ8L&bBg=*IR>R{fu9uNbnsPdq0u|KX>J*;@m) zZ{4${PfgXKE&H+1BCTq<#Eow+-7|SV_3`TL%jPd0SLUYd{PsT1xN=#FEF-JsK3AQo z29FO-YxnG4mZ$da(d69j%{~i5mS={k^c>i8gX724ocC+jNogLkJ<FzNx8H8+^>l^@ z!qt&Kr|(PUW<Oox5YBe2mv24m#|JfRng0$mDE!{2^dobXdXj-z_a{B&-GM%OyBRku ztGiYm-t~8Ft^||vDK_O-D#x|$mA!;s#@oz@IPY?nDbD$P=v=|{y?Jx{ek(RxtrwB0 zaXef9rNP#5;@eM(Gd@0QbWoqto*3y_n<Lisvi*C>8LPK0YMN0yB==}6scKH1IKO-I zCOdY^8O!fJohAQq_fES-b(zi0RlM6LB^|qP{+v*kQPhN+4^w+<xV{-^1p6i!YADCc ze2pzXxQU5Xe8onqkDm+vthnaQb+fUN{n&D)1Np0;ajx1Ra(U*i%hsw~v!}mezw`7h z?;-ac*JtVoSgkk{@!>r8fo9F-2Q#_0d_5JnmnZJTBZ;JT;pT)@|Bb58>hEDQb~&}q z*JTr@2*-v~ryqXU{6MAbV8J41hNFI&r3Jzdr<JYgHD;}Q{Kv<2;ZqhX?Y<SJN&GhX z@wb0O$+g^xx2X@ekUG9^-aGmCj2$&K|I9R=slSrF#>k(+6yDo3=?3?~Ge-+2$~gQ# zxU|K(LPYb8(d1XJTbgXrMV<T>IH)kj#IT=B+5Y#U&sMSD3r~2f9xzsFw4GO?V6Ac1 z+P41ulj}de-RA%JFnQYD39d}b4x2Q$&G`JQ;(PH&@&A{S|NMLzJLmfKeb@8~v|j(x z`WD~0ci#O*gXUFC?iI^ts-IrI>V4&_IR_-y=Wx1KtuX%XDE(;7tU13jx+X?RAAG>T zzP7}77uR<ui_JdnT{8u*R`_jMx?-+~#-{6cw0Fq=FH5Mp@_FVzZPAjFU_++ELh=o3 z@>HW(Z;45_bv;i#qq9NXHE5&yjl7a6(FfE_8Q8Dxy`DI^`+(WhM?IG&h@A<!mo<G# zZM}APr!d3cGyEkS-KVy{T6SPxXX35ruYR~Vtl6|w#5iY@`HtFd7tg1AKKidaA8PmR zU5`;k>g!d8E6pFptlbl^#Dw|mHikL318!Fzii_bBecj<-p7>Jw*!MMikJ{ac;XidD zdXMjy*jr-nnQtDL*c!dJ#XZ3z@S4QA((LUGHB0S0wsZRXmw(*;?^`|N#f_zBrJhKd zUf|q!?yu!FK94*hcj?Igk4(L+84tBOPG44g@7tPJasG0*vUzqfewb0H7@*O-TYp~# z!;J5L{wUVHHm~bAQ@`r({~zx4SKc3u)miaPHtATQ?zyUCZqm12^gr3UY`I**+=zPt zsf#sp%I`40EIR$?lyU5qcmHD7>#zTKboX()>FsiRu3OAqf5%&>cZtDk)fm2nkEfMt zTUlgoJ(bXxKlkz7-&&hH@;lXeN}gG^{CKvYVfw*suAHA`m}kVX{!^`J`mW3Ksmn{~ z;ddPt*H@utmT!-De)B8qHv78f@74V}M<)my_*pOCJUM+egI3AZz>^G2K0h;(RFqD4 zpZRRfdTr*xe;%?+WttyX_Xu*#yPX;@y|`|^!?%PUl^wI!iUrD5Iv%sw%@>%lNvSaT z?_z;&y*vN+8Ymt*^H(orclorU?4Y0aM{n8tR;z}8o%z{v=Gsz)85d&oK8U&QVl%w; zRqe-z1;$sC*NaWEi*_!PT&ohS@jj5VFUI|n%>m07VRbrh5A0oiTOjwNNZ|JcGn)=( z6}Mlj2)`F!HZdqkiDy!%QT5L?;WuwN&$!AIz_)b&t7{1k;tX4b0wmU3-*jnwneg8y zW_nuPn&$~OkA$ZG^)x&9xIl72ko4Qbxwq$RxcRr`Vfkynz$okRjKHlv4?=FaykJY1 zJO4@hz0JKpGrs@&`E}(UJ7$LYH&(CclgxUvNO89=x8}3k92IMf&V7^lIgOq3aOB26 z3adn$8QFAO*?704tm+dF)QbHab9l<CV~2VE&0^v;<SMw*b!dJr>+7Q->Q^mK7oKBx z5EJP?`0Kal-*?8hXPVZ!mOfb%JpaL*M!orL-~X&q5tZ$Fwr{0C@yr%GajWGsABr_N ziM}{v7qZPVMs1qVg6c!b_N&*QDQI*$!Si$q`{7#o#ooIb$~SsU6iYJETopX!rFY@> znco8^iEiM0dF-XCq0N=hkN&@Gv}QNtFROajy0uT^F~ipbA{nfi(y#wLSQEzezQFMg z^Nxf)hV7RH&e%<sy3HptY2|fho}ybXvqQ@aD=LhP3zs{5-oh?<l<)nSd)pXT&&BYw z*$XT&G``DXVYu4<Wx^&az0IWspR}&)GYczUOEE6cdM5bf)BS(DnXXKnsH5!AE4ZVD z&+zW-IZsa}&)N}?eJbYUMhU)T7Jl>B>H#tw>z6$HYFWP{ec7|GTbjB~RqbC?xSZK{ zk5jSw3%TIA3p}iZR>ti8>5%)_mM3kh<)?nPw>g26zDw|(+u^>#H87unH~C{O%ZE$; z<qQkv3*0DR^V<4f`9@JemcoKJg?Wls|Ly-L{y%n)&HM?xZfb^eAHQReeO`avIHz{K zz0HxO>1}$?^BEXo&ev<D*9Lx&6?C=;QgxElSi-z!)|a=R7X5zxZBhE-P1`mo9I!St z);ez5y8ghblegSUtqZl4n7WEml6F?!Gk#uKQ-5T|<*Q3l3yd5OeCf=-<Fj<*otSHz zj>Kst9Jl&1XR4#?j?^XBHl?*E+Zje1?Vp}-gSCgVeA<I_35T9vEG*tS!CLF|b6?#N z3f=Db`}nOy`|C&chN*b9em|SMZSQ|!g?S0(P76+Yp5fVcf0o1URDnZc^YR=^Lt;Ng zM#Qq+v^;nI_h0e;@T<16Tk})cb@-x|<lNsQ{-bvHk0h&q={@%+F*ub!QxDvx|9rky z@vXP@n+_N?cs7_FT=BNFr?$gTG;Gs!=Dgnrq@FLT_P6#8{rvF6qLx>>I;(E5X}j=n zZkcGCD4Sw1b>@foAJX;A*M7e|z57S|{}=C%?Jjo@_`m<(ubuqoo!O=KcP&3WeZx<A zyJdC`y|Lmg+miH`-uUoalF^B~IqNsqV@nIh1DmGtH1Bw&yK!T0<h#fE`*yHr{JUfP z&;CzuJs;bFpPP>L*ME9$`(yfs4cD#Jo=r+}solM&s3+l)?yD8Wi_X9QmdnmGt<&MG zfX!(^J57efq~<T>tPw}6tZYx;dHeSBY0G=xH&#_dJlgfGa?O^@s&kHR(TG--2$GG_ zdhmAJt6R-0z1cTSKYZow&)_YBYr>{QZd-jWExql%#kvogd`yyR=QcO)<7o-s7`5t@ z`4O3gJ8nrH*eCptXIIe*xn{;lkB*9_|A~TTOl`t9+oU(Y_D$;CqN=qu&>?b<nCZ6_ z{r69lXzf_f{^Ih51ru`J?k-^cEU;+C=38#;*Il<UH!jq8bE0j%`D+7?0`b(3Q|CVW zr?Y9UV!czk-mwXf<MynJo@l#A>wqoGWFylEsgpsP>v~f%<|O<MmJsY=`LUP1p**GF z!u&+Z$wjwj7C3$9c<Hp3<^J=3Yp%a8{jvIs_p-vW2`kkv9$d87!fR<tTw%U=595o^ z5oSrvPa_)dmdOkCJTmRtrEzD2jgZSMx0AsKf3@Cg@U~@S$UXdB{l*5C)4?Hq-O``z z_9n`nSZCIlW;io)h1kR!hubCQt~oR>)b4U*@yQmRq=|RZrDxhjzsm028Mf0YtNDpd z{+{FCcCtK}TwTk?V7Ku)$0p;17>|>xy({uhxn8+ZV&>4Rw^7~o<&pz0Oj(&z|L62X z$$z!K`^2SZoBUMyH9{(yf?;NQvk!CT=CLZVzWtgeb*YXabn(jOL#uvmTQuu<rkI7M ziEK}+wOz4QU9hZQf}`%-iT-j-x-Tb2Yy1wL8Yy_UW{b7bQ^Ulzvs&wa{FW9hYtUN$ z?{cz8s`N6aC1rLxcO|Vq|Gez$t)3iQt04F9K&9vM!pAaG9$pbrP-rb&#u0Pw=0^jK zrJ|pcA5LYn(sJMW=t7csn^0Kv@%a^viw@>o-KO>UU;-O^H*1*M!Z#<YcH}M4Ids#z zO68nH(CKAI+cN|I?l3-7QdTe_{hRAG#`cwxYOQ{H*+12Pek{`X5_5)0rFDiCONg|% zt?u*MMTd_yd_FdlgI&>lW>UJg;F<GX-$kFaFv#>LCX1Ob`)hn9X~kXl;LKiud~3Dp zfbzX3xeDz?EVcOgZC0$e6`m%m&gOlf^yo^yxlDl!3!kL;R!ed;U5s&Gy=hBgz|k|! zo99f?W}M=9`hH*q+wNY!zGFLmQrSHg@f^ROl<q3$Wy*S^-F(^2gZqw0-hQt3qkXeM zUE;(8mT~)PJEzaPJD*{O$AOh8(_WTu^qUr3&Qa8-zkUVp6T1|Lt87mL96Cczf4=#m zU&Lbf)yEvm-|<RHXG~0~T@gL=VCSblriKz?H~Tzahd6m}eCsH9EY5bnVSV23j0p<$ z7x#buAtB;BYh}WnkXeCG&-y1x?eJZ({yxj8l}BX_`?&8b&vrFvSrBivCAI45rDliO zuZkw_OlR<LFO;iO-1L7VbH+Pe-}Li+_p>i}&S{o)ddE5G=;~wBs_z%L?B-mgkkHy% z_9$yb(wvCnN}HP#7&3fcKmV+AforM!^}Sy>6&jhf*1Gm=y>i95@6&=$dA}ukdbVBT zIdbBjh|CuTsbAXa8|Dgitdov(=t;I?*x=!KbJmv!q1CL*9(zf*d|LLPGV;lt_U6jD zwu<cb=he@0H(f2`KJnXfoneeN=Ni4gHa}Y9fBdw#ll$?<KZ*T+`u~;L?A`tT`B~Mv zUthVkZ;RQz-hDjf>YbzQ{P#}3P3!48;AH(}GiSX8^XUzpR~{cY{>jE+x}bgV<;4@< zPN+K)9)DN4qo%U%<;?&0UmpB_++yy%s%QU~|9z~pGK1@$i0Fs9SDul1w*}danF@@! zZwd=np4;-;oo((xsYi+1L)rU3@Ar6o^tm*{EN+g_=dYz_MELvnfBYEDs4uikx;@n5 zv%a<TwnFtAlcrBMXW+DyuRMQy*;fe`P6mgaZ@B(lm3pVOY5VHAvR{t|{5}3}&-I%J zE-Ah%e`V3?_~Fj_gbOvRt7j+rExWpuQTw~c*1Evd39lO>56U%PSoJ%g!1lm{FAv|T zUUin9ks4ggo*nRH@utn5$5yhOHsUP!Q2s%EO~8B}+nZTQu~Dzv>)x(@{?_4@`NdS$ z&sXLrNKXC!fh){I_IJ*-^9PP_9<AtSDmxdmo^zVY(>N)|4fi7s<l7vcv?+c@p`KM# z#U7EXN9|cpTdte+n$7X0MS*`#LV%Ehrp8p22Rk>fK9Y0dH{<K3rR+QUvkcyZ-VSD{ zjyt}<U`Fifb&reKdnfK<^7-U?P~pI&*rfc6UR&}~o_9Aq_E~iEzkbyBv;}Pk*c)DL zN=~X=boo%oVWvkON;5hitnXG^(C~}FS7G_}l6BlW3K^2mMLGMl&G=?7{+2l->dM39 znz~x6_2(H5sDGbTx*>PX^X9;uBAcf%&(!1?C(pTEa>R`7Zo&V;6WZDOf*X>S1m17a zsV%PUm#JfURJ>!}npX=Fa#IYL<0U=v7R)>pBA~M&LOSPGAm5WCK}|LuVP(1w2D87f z>`{pFb-ZBUV7gdQv?yBKqKr|@k@a^%w5xNNf8@2z?6R{34&8R_ep@mrc)Nh3uF;GI z-dY+juSZW>bi?@N$&3j5n2_~#uGSW9f$EF?IJQ*2-zt6PSlGf1u2af7?w*+G=e%!2 zsASVp?{5ar=3M2D=Gqwlern{$60P@g2M#!7E`NPf+gtmbzP$TMr+p0jSY!+M>@$lb z9X84aIDa_QP~doa(c|CmU2Wq9CH!tadcVrS?VR@Qvm4imC~#(M(l>k+J=IgUNaJOM z8_yR_<KUw+OPJ)n&+j;JdFSF8eyctu)fCN9yL9i6>A$|BJ?mJye7Qs4yLWHjusAV2 zkbVCgfgkC!v)f)aOmJJrt8kpZN}NG=o8Xhc6CW9tt25t_+;YSC`|^FWOA^_(HFv42 z)Svbf5eit7fBxXC(Cd}f6BZV;gx>p;X%z9LCgI+X2W4lCn$o{7UUt~F=3_y^Wggj# zHLoh{+n4oxpZ)FaJH{oFtA#sWeOalj;C>{;bItMK;{wvV+m|p;{>3?~|LxjSH+LPM ze_`^3N{52k?}M)k?u!W9oI119E8Su8JkDoZE=$@je#@|V%5%BoS-G~6+V4LWHoUuc zWb(ULetavlro_56^6WKM;FG9`fBR{f?X>M5`EL4EO%MHVXnjpDDTy;?VemRW&7E$m zHvL?-VVcD2h;9)+C7F$9mYHs>O$ZLHN)BUw74O=9{JW$=Q9y&4e)8Yv=O4Z>=gfcj z?+A~>&7(qBq9%3(ca^ff+_3fSTC0;D31$3CBX2L-m~yN;A*D4#E86etPXD7{mpxi9 zW4&f8$2`vC8Cow_eGQF1{`%m-CZqQU&l?DvXUmnQJ=J=3u%2nt3lZa%6GwJMPCozb z)aTQ`6}ztO@tRx`?_49;_u5hN$ZNa&$p@yM`WrpPusiVi8nev2a;*)?FJFKDegFUJ z6LI#od;9Butgcs=lYcMr$KIIZZ0+TPYj^!K`S+n;GT_>>N#eTViiR@TMgL9P@>%#o zHyucym2z0DkF~Ch)98+N_Cdp~x^>U0<C~6t|MPJx`~UynfBbkjd*09eMnCwcEr}Fo zd6a*!!TNmKwyG)Xn!GN5W3Zb3q0&Iy^Q761L$!X%1&X)%*)pFlW@4YEtTS)g!Rqb% z+xbFruKPZJueN7qNcGig6LpuTIIYmPWax03{h@5$<Bk2b+lq3d{8Ls(gsXqp`6#H( zOP68FuA^%XM83BCyC8-?G?kO%%sQ)0Iw793Lw5NpM_fpMHsd76R>M6d6HN9gR><n{ zTlZ8>X+BW6amReG4;#ckywH(9egFLNe=B|BQnoLD=bw{*K4SmPT>{$WNiSVrt<w1{ zT)S=(=YRXB#b$QpuI&oy(la)?-Hx9!GcUnjEOXU{yX%d9FdXeWxamr0+3oCvgL~A1 zJD$s4ubX;y*2S!eCtK4T?$7dB=yG@&&sUEu$%1T)&C`F^^=j|_6!PL%Oj1c&WBf9q z<x7^Hw`qO#OZPjUlt_l`!5`-9zJ67{DVK0@hE~0RM0i^~@BhuWcO5=_-s!)Z_rGn= z^JgxZ_*VK`bd*%V+rv4{376J)ybM1(>w)8wqJU|_A#=Z6lG-8o_^Faz&*xUN_`Bjo zbNb&mxK3dy+_c2)muX6a<ehV+A4GHt6)zmws}VNQWZ9uqfz)d=XJ`L0oc6MjbH*hB zZ4>pEcKhvSUKg1kKmSVivH6i}Gu4>V4@z6D48Jm``Pn@7Cpx0VHH)-fA4)jP{zoAC zP`_%&vYhnGzXkq0_$%C$Una+~%5S%rrN{%(wBXsV*k_6?TUf@X5EDK}+;j1UO`#V8 zWL&4s@yqmG{W|W=f`)wuEDmXuJ!fk(VQlJUw4Cs(v(bE?0%PYXXXV!4KmOkJID4w3 zC2DW$lseseQ%qmItcZ^+4r~6~{7~TWkG;&<3`zx_7w2|uy8hi_f%A#iCtA$=SMvRx z^!0oBsb!mYGo4=j?Cyr$zA_DhhI(4BQ?>bc&&4yT%%0jkwU;}vh;vK89ro*yG1eM~ z-}@BqG+J44@4_>_t)(Bj`)xKjs)}ZWXto`Ff4gEIlSESOjLoIKAuee`(<H2f71fw! zrYh%GT4^ngd>QcQbJ3q=vme|StkN|9zeGcl^-|Nps}lA9uIJgWGN|z0kXRgR_Wab> zEi+UV|1>|+C}`#rc>nh4Q`3Eae=uczbJ(<e?->P|kYldD3si5j_&pF>qV=m<WCv?( z(YebL6PmqBJj&-MFRya@@!;v<N<Nu@m$F=W$7XEXD0H|n=JM7qnK?qgx89K}JR<e$ z`vL0@f~<}^%~##(TiLQ$D`Ta=<2}jOcnigDN<OxZ6_zVHcH|z%MK;R~#@Zg|>&}}U zJ6PKtc#C<#slIJDEc24DiWnSD+;<|<IM(j^v&R+j!LiknJPfw0jgrpPg}rO-Ebf@* zepRxT{fBwvB!z~9l|gB|U%yrMFJHLxz@{GVX1+I<w@c_qr_8%+<@Z2%-#@k-4X!G8 zPUoxT=MHHsTX5=&>>n!@vmbxF6c%(k@mLqSDLA+LIi`42tbHR{+r*;d`bo<>fW2Iy zEGqDKNZQLQf=8okf&v;6mc01+WQp{GkCsAOtVSB9#~i<{j49<idokvJ@9Vk8CD}i0 zZZ(=zlxApA9;5tojc4HZu$k+GW}7%{XyV*j9&oXSTVLyN9?ScUF$U)=+x|b8UT64D zUT)&fe^cZC|Ni){Tm8mT`~NSyo9fT!AB`-}t-n_ID4$8TAZBr|t;NbGRhKMdO3r8- z>*mT&^UAsO+~U~ZhwG0N{?zJX5w1M5d_i*O{GYFEL;la7AN=9{e%H7ES2D-j|JpnM zOSQ;vXU0ImjL!D~ucOMYY@9ILL3&R(Q)bfjfX}XWO!vw!RHZhYSnYNB$m>W(?%dm= zzaQStw?FpUbL(AYi7c;_8$TvHIs|U5es@0QhUlt&>YE=vK5l$#N~=kXn?qZ6O#9l0 zzpCBqvm3Nq)0cS(RQ@mCF-LQiY332HLsf#o=|SyNLQM(`9=g0|pZmM-^YljxS{w2M zkIjf~`nER0!os^$C5fYr*M;YIWTghjrITNB<{Xasee-Un*yc5pWT&m2a683Jz<V0U z8lPL@EH)Y3eXEWxmvy=AbVqjn+|CJ$-~2Vnxjv)#cGDMTHLbt99o1iaJiY2=MCn;& zM?M4FcP8vH?YTGZ+&I1|AbXK+E#JFo8^VOVV^3BX3L7b$l4g0eeA!kNf&3}$oLlt$ zEslRPt57X-yxa8qjIsS+rx!b9wu+ne`?{={)0pj*bmPV~O|ut98?|eE{`fKMX$-i* z$>@F0-DWbsdG`9+^0#5rBP#0IZv8R}EM0y|X>R1T9FGO;&s<|C7TBF^54yxW&+T43 zm-e|Be!0FaD~spfe*DnBYkuty`y+q9ginl_z1+E`t~LtXMEtgCp_Iw5j)K_iyQ^g4 zxV$VQ+F!`MSa9l32y0u>7s<tDavWis*S$SfI7RrC+#zQZ&!z0GjZRyGXY<{2T6`<y zI-gfyAcJyh>IIkXUyrp;&zPy8^io{mb%02l(P!x_lbcR09HlGH%J{KtQCl*xI6o@w zs)x9$Y<=U4j=erdWR;^$IG3g!XGxj2*-Y~$Yvg@?sg-k!FY%qOS$68{9xn!s5{b*N zwbx}HODy7H54N$0{LJ-nhRugCtK1W-JUiN(`guONhY9+fW;~~NtU7tG&8s!)m$cNc zUMpQuox(fkY^%`sU0O2~Po0}(p8B!i!zImm??lcVIH_=VTgo?<={5m2=buVPPi=N_ zpUuuZmpAR$tQTMM!iyIf+ef`tsZPH7C$3_zKvd61J(jud0<RPH-$_}J{2*#gsjk%& zXTS0z8OiPQ3vFaKnWTCjcN9%Yd+;xpt6g{pW6dK)>$@D8=XMJVGp%u1+B@;!%sjrN z@Al;y3*UUQxg2@QCnGC(%j`GlOBe7TotKx<aDma{&G#(BU5-CZH!aNet&&S+-4V}p z?&!Tq->-dKI@#OmMXz#W>RZ!o%&I&I`lo`zEZ<z|%6P54xxmqYdE>1kdoLgPRcLTf z<1pXGZ+u)lzp89yc23JTid&JacPstjn<)=l=bT==u2_EY`SReO9kO9-qR;WWxtmSv zvpM?igi=95x!~&M2jdQ`j1zTf+ZEg5*wgEnxg))#C;j&AVyhFWZ__4!ej1kZa1*b^ zfuM8OPNf?J9#S<8+IIQYoYeoKZ?>ki*dD#~f3HYWU2sjKL$gD~!MzcGdLCySJ2Lm$ zHIcH4MD;DxBKzNLT=b7=)1Km{smqQP`A%n?(&aiuA)xH|2?x>d?|B|QJa+Kh|93mx zZzuBaOJ1Lv_P+9c{M49)UXCY1H;kChswsLfJ3s8xaonxa#&_VBLhZF%;?AAY2fOC` zI&O$$&{KA@bm9M3|3Uuv-@k_U>OZby|G!_x|NT6HFX_+bKXxsX{XXH<=ZU^{i)S-# zI=@!4V=?c#so$2|$thiv=(8g8(jDjEO8NSqr^`PURESqEFlc=E`D%Fo4Yu>=^FQAH z|0Vv&XYccW$`8CfzW;ms64&Q5@`^29+>*4uB*gVgSVsHir9~<X`?Qa@?tL`d_%*|< zrq7Rd-uj{b{%71tmY+%tD>>2*uxq|*xESN6a8{O4@u5qb_l_=RyQ_ZU?5}S9Ui|t9 z%kNuB>|NilHQlx_|KW9E&2R0Mo9t)A9DKgrOkhh&%`>T**cSe^pFXa$IJ`H!@Oqwf zN3nH0KSR*$1FJPYGwiw{J#Vhki5EL3Mc!n*$eBBhe^tnY^OG7sW*t}@|9rxJ`^C92 z(r1EK{r-H$y0vk}qy;JsGK`yEuFlQ#pZ-2DQt)1Jr{b;7|8iUJPg(mdQpvh?@=8y4 zh1MSNpEHFf$=u}^$;jSXTziM%*pBxy?wjB0@AQvPe&4m}NJitSi_dl}-@oPRjm#{z zD;4`D2=45wl$(D%D#eN8`Qcq${4c7%JY{+Iy71B+z6<{h*GzS=DW0~!XhOUyn|xky zdi1=F8FMuZq~hy&Uh75#H{=}<@%d%b#_06Na&>ZuT98)lq@sw!bJ@!jTAvzi(M>-h zuBgz_aJrD)k!?r*0*fYvZ%xnl%>TdmM|AyX@ki<Vzt1nL{wy;8@LB)&Uw5)R5Uw`e z%H>sB9<bwcx^Kv7o;m4khhLoBw|CQ4H*K#S#u5&->sOu=GihAEYlGR!mE{$&qJKDi zZd7o{zn6?iJAZ4*B*o=(O;a*&d`h@kGQnpFcW7$Yx47erj_0qDUBeL->MpWs?xYob zYmTWzWpmXqcAh)jX6xFxNPVvC$<3SOIc9H;2oKn-5M^;z;D=|Rs@B_U1=%W>+_&G| zs8^D4sdD9WIR^c|GyC{uw7(Slr!_P!D!%vKn6-Stgxgo{=3TTfzw|HPO0lKtZQQ+m zk_ik~C#GgRzx^xE+O^1PoxElL%)Nfj)fOKr^-X@9*ris*x6wdHK-Q+H;X%oSzQ}3I zZ){%8*q&PZuc7*85W{kN=UkB<%WnzUuNi-rd>8+<^!&zWJACp_nHX3+;axH9B4g=? zo19->1aLR{ym)?l1^>q?$7R-2le_1n?Fm1Wkn-~WwaacjI?*3CB+h-P(rz7}5~QG< znpJZmQtG>x`g)Cy%w<RXxpEeK_$?5|D|gOS@hHEO(`3!EQ%wB!P3LDNg$ndG*Bw&3 zrNNwft=d|7?)~~O?~`o5EdE~Yb~&uhP~$rD>coY|b2U#-JSV>5#Ho<GDZiCtietZ3 zu;xFMx%Bdal!^0k$%`?vha<CiHhn&SCQP>}cFD_&4y^Os4p?OIePj)(PuG7CY#u)6 zb<)y5kIM4Of7osgFVgw=wS8Z@{RK%LW{c_u-v_CpJD&IaD-o{AFS>V6<ih2TjUR$b zeb?_lEosKKYuUoduc`yuiWwI$S{0w$ziC@FxBIPFt9Q$GpPTc4>e@A{7^Q6M1y4MA zVD-9q;fCI6i@4@7zT4A!+Wm)*-o#ChU(X8K*m1yX!Q2@SV*CqVoVT7nKY49obzkXk ziLfta21gtk7iBh=^*l)8OjF@*d@kb7qMg-zImTGv&`;;LO`)pRGD4}7HtkWqUKcds z@;ax$zdF_PJ{KN|YP%s?qQnx#-mIE6DJHRgCa(xbxQ@^>hC@#o9i@sZ=G!OPPkYbd zFJ)qIB0|Jxs)6>RqwcK#i+Q-dypWH7`RCg9LfQ0s%lXAM|Jm*3`}z4le)*?a_w@R| zIR1b46*v5Q>0iuO)-a)AU(*ZEGOOGZS_@95vM1G=<i45sRey5Mf=`zt<auAO@RNVU zzwcd{Y|hT&4YuJ&rpMoTye@v;{KxJ8zih8^v&sIaAMktqHLjD_Ro05#zWGY$0i&+i z&iWgl`c8eDeeFT$x7O?_3fG04H|`TjRZmwn;Jalkb$>xVW8%r*-(UDmN%uKh#Mhwo zCNAXFn)54p^Jlv~XghdFX#HLNA6!-fmS&nNS<)A#TwF5kd?`byfKFWeR<o<q<?ee1 z2)yRm`f=y<mFpeb1ZKv_Y=2<<Bx>fBUbgEqM4G>6uV0>#_Sr>Jf$ime7G{liJnhZ@ zLN`eoWeQz!eBiaqxnS=7`M;&#EOS#+o+-Mld$XS0^!W7&fv%O$?3}*Uw8e*qGwpur zRb?@QjmdlZWATEU+uq6NKJS-$|NF*Q8;kmw^*hUV`(LzY-jHze(wY8CmM2Z~9GdI6 zy-d%|X}=QJxMBIs0ApbZfoVP$cW(K7a?9#%-+kWYd}LJhiV^4c*|g-xqb(=zdo&)| zK5@f_X-w7%UoHL5GW<C+<tKN;6|ubU=^t}C=XTv}-)dr*yf4n~K)qDm+*2FacC*BK z@XT`GaGJNde4T4!@XtH7y1MS`8<nHNH)kK*v!3(D5$@wmIT77~!Um4z6U*(HFYeQs zef!*B%k}H$EYF-~ucMH9Pgo|kZpquzK@Am?duRUs5&!#6%#=STUk5~pMI2Ua{=d)d z-Sr>u|6i3qvVHmd6Rscc{rmGPByK)qgZ~>-*>qN`B|jINRR;U9=q_1jpi;7Qx<u{7 zm-~$zE+tN~Z56C=oxFLKLZd-RgzS|o*$b|@)-BJvx{81IA8VF7PKS0Zb2yuIIJSAq z3s3e{Rr{Y$mEPPHpfYb|ir4dJO+0(%YJIyi)hhF@NQzg5-|?7<&iAiq2}bU_mNI4g zgk@ZBo_GC@PEM&Vyl;F{RAB1Dc-Al{rNz&eRO~x&;#$d`&8p{BRN~)OIB0J@(a)D^ z;gX?i@v!^!Dh9?>@u_o}1P+_*6MtmLVq8%?o3B|}=I*jw&r3&G(wJ=RxxGa#*{g)* zk|s@l{hlxAw$Wz0{mUm$j9j{A?|hLtOS}yxU+N7AJ<oh_vsYBEap}FU>rX7xxZLWg zz3OAg?OATBx73auT+n0|#Odz4Kl{6g0iXJuZv8_ymkGx2bTcWFU%cVpeaXdYBD;E{ z@~k#pz3HIc+s<_7*sV~uocyZajo&R!GG=d9S7IxblI~Ti@s(!F`+eexK{ETV%-{<h z3qRenc@(uLH*IM_f9Nc!)&_~+y4`n;|NM9ToF34Aus+o7?pndf|I#x4tryb5Kghi< z|0ddg+3|?okx<QJ*N((-HYzZw74bwis7&1WZ0F|9#q8{CeAXhDeOu3e*SKw}@o!yh zIz!ABzJ%vp*X<9=aU1UX`*=ZbSL}m6f!$|0)^6uX>f6M<N>(?@+*fRqhmXEa$JTp2 z*L$09hppAF<6ikF%qdOn2qSNH>UG2E3CuhAWMBXAlZaisxbwHMN5STIchihAc2~+L z3AWz9cVwT%kvrEf-2Jro$IjpXx7<J3{^RBA|N66T<@7#3@t^gz_ra7YiNZg6zHc(u zmHFT}Q$}~ek2o%$K%R+_+pKRnO||TuHZ_;Oi1%HuS>?-s<j$_H{ssSfZyLUId7;2_ zvGq_xpyu|uE-Vg~+FJuvda|7x+#W}jwCz~=r{#PdPny(ub7%i&oy@&^XE)|7iazx; z)M~}A=J;RPh4tkx9REA>|EssWw|DpJ#>mvO^>?Sf`?)9gzPTQM(9dwusk<uk`ycG* zb2#Z>Kfhkm+UokFsLk*G`)}Y|=y3nwYyJH-Oc6gn{V}ZjAuai5ztNBXALW_8EO)YI zoFpqUQB>3Xx5(V=u(ewy7cgw!_J;ZQyrMU5Gy6~Hr~EFgi;TRN>)YJ0cSb7PMW<BN zt4rHB9;hB*H;&+NIHKn8V%6_j4(-JXxA)H7xNL)+&n|7<wskzyzF4kUWoNkI@T{os zTe%VxD*kpJ5Q<d4wr}IUW7_Xm$FF~Nr(`Riu!_}fA9np$?D@LfSF4KaJI}@4FSxcf zaFW2CYV+p`te>Q=6$LNb(a~gkN>c4yAluWgZ*s~W+w>WA*vOyXIA8cn^|mwXlnW1k zpOC8Tus8O2r1s+00~VSOX5Z+1SR|*Td;d3U^?cbCca{Y+++Aa96?j27o8!%H@ta5P zeAnk{b2YV3abF(3Q>gA+SCB`B*1?%e<5+I+d02FQo&29W@Q6F3fY`*Z@0T=g%1IRU z+aU9H{{is;agq6%+i$5&K2S9OHCuzqmd@IBW-}HpVf`DPRsKZMEiwEz!zTM1=D|B$ zpKjRr^}wGiY78Zpsu@px?2+`Da`yR2pKVzaJl*f>98K?!asFw|@Jj4aijvA{27TEB z`O8h`RW~KSO?V%6)$RA^*ORM!KmPpcxmRMwl8F&Vc5Ks#{IFr-LY2}Q-f#26&9<F$ zo}ye{drfDz_>TqG7tIZPu^{bj<fUT?Emz#S+cz|wm~>M)@NUd&z4_Bi=eb78rP@C| zvE_Evk&yTCX<Uv^(=XhfGNqW~;nn8}1_k>PRbDi(?|Qu^{P2Cp@8=K5EM*B#dEy>$ z?MT3k*!Q9=Az#u@1c(OmEmu0S`%}UF=szp&8yfvgzb71!V*SAELG_L!&B1-aCvGx6 z-RF=a;M2O`hoo`juC}=mmfu|2*<@$gE;#?b>V@Re`9EKAe>0K``H;2VHRB!I1V!c( zl~v-$AIEpLAJ+e(^6q<5SFETQ`&Tus(tp1LChncteVXB%&4pPvlun&#-q#_-rFgrb z$s~_yw%Xe8%ks4wHr_jzb(-g2#A+Q`Zr0$yIdl2@mdol}pHQB?Z@1dnRK=hBx87sf zb1!-o|F!=?H)F0(%5z-NzwWlF>C_k#v7N6gJzi#WU3$>-bVhoc;`I+UCmna6U{syT zpRK#&9Y>5s$GWV)$ziQ89xZs_dBr#JZ*JS^r}A|>?_MnONIQPS=bnW0RXg+k*4(o{ z*!NWjEPuM-XgSlp2Qtm;EEF{!=gYpx;^$1raMr!ex7O&(iAO(fEtC88{Y;a<otejt z#Zs-hvLlth7_%q3|Fc%JOwW>DUKO@pJ7t>MEzY$5oo+9DW;5w!**1y2E!`Y-?C+<0 zJEy0wT_IbM^=gUZ@y~i~TxEfhEm@aditL)U>HhDHhc;@9MW6ABv&^dDVS7@$^l<IH z@B2y}w)|i5(aHV8zCW!$cGo{=|5*Q%{r~MB-uHh;uG_tgXIrDV*x_U6ayAslr4)ZX z^R6XeRn+oK-lW(p8LnvQP1jA%8yOwuW42*ZnDXB5!QpK21yWbfO>}ir%i`+h?F$RP zv_R4I#(CLQ-C+mr@FmZi#lpOEnhMKHK911Wf1a&*8najE%*V)-<98p&^91-ME_1Pq zPy1K@;qU()?Ek-ieD`;{?T`QMwm<g2_bcdKzrWJ4I{Mwuw`sY)iF4&%{0y;UUzXmX z&=)JCXD*c*fALt{<|eyM|9|MWUaJZ-X`U_j!te+Gia-B9%>QFxS6AWq;s3+i`M=*+ zZJ2yBb&cZm4K4q2y%h@7p49Ky%pFm!Gk38a-`7|-*+0IWiswY<%yr)=f3Kv@<HC-d z-;w-{mN%FG`8!oX%KMg%)A7HCQPX*k{!_4+lYX{zYTkom3(ot<uVvkIC}Z=Tl`YQ& z9ZQcrF@DRlX>QUV)9Kk8?dBOPMPF2ri%?l+vvQ8k`H7+5)qeY5G(Ts~Y{(@R<QRK! zMb^W}s0BfOj71yDck-qO2sFQu-n5`?N7`ObHpd!+%-44|f9Ncz_j4<_FL~fh_T8^f zuAHxVA8WH`w=#Fm?!L`A4N0!0|2I5tFX(&`BdH>mxyYn(3-gOP75ByRmiVqr$yxg2 z-lZqkbBao(-g@88-RPJZw?AIp`j|$teNN@C6Qxq=`97zPM7xM)Kj=MZULv<`gTi}( zdby|KQ&lJ5YD-nH{&dvIlW%&d3-|Q+4YkFSbIU7z7|+gU`0jLDZDaI?=MHfj^k4kf z{M5T$W7}Q1$yy8Me>L2A=y{&R<qW;A)+gIM3<5Z}&vl=%RO#F2WwmRjo{_3+a(sJi z{&kTx_x8PA{duSQqj@*KCf?G$`TY9wkH5|^{5TSK`R>H8(RUjo^>ZGFge>>Wn$W|R zRC(>+j{Xb|(Rn2+4y@C^!k1tzVL4&d+GQ2}%*j?&nG3GJ?wsz;%yaabnUVM8SHCMW zG%ZX%Mf<Mj|2yZtV^!G$gZXZ1wn-^3Crk`4xE>=vzqH6*Rj4H={HkB*)+<fEla$sn z&8kXuV>7*-rtD)rrG!243BMEX&b@mtE_kf?*`b2RdQ(k=(l3{=&$Ig9_$V~r)7d1v z<dEZ$)fWXGd%pG)ERi(}2)=%3_p<pHjP_sN;*b)c6mvQ9jM$7N`(!RDW(Ym_$k^Od zWZyQu{Nwe1*Xy<S+30=L|Npd}_f~FCLk`>2b63`|I)*sZWI2W1a%^d;QGUxe=YpV8 zeVMzJ%Dec+i4Lq>td`E36a6lJ;+@6m`ns=Cf6lH=+&2mrMD_gpa+c-)gvWx+0t@(^ z^{4uj^vO5NSS`#;JlU|p<xbj_1B*_4*XN4kny-CBlv$SJ+U%--ceoe$i2rCkadK@@ z$Chxm1Hms#Lc5if76=I(z8o#-@xD{}nW?Kz<y@Kh>^-j2=1y=`c4v3q$IMvp?Ml_E z9-X{o?PD5RsT{TIr<DsZ6dI_naO5kwJ-0EbOUrey&I)%07soG85+bv=S(l~U&`B`M zd7l23Iq=GKYeDa-Wkp}Vo2~oo#Pwv4O@kiy*6(S@XGZb_7(0gFd42D!(T$*Xh2@de z>>{aOi_?}(=`(X=Vm&7}bBp#$%chF>?7f^06Tfw_neSnlIMsKf?RLhTUwJ*bO$_qM z4AopFj5n?=F?+rzHPhqjkDcf4I_`D25V(8ai+NE!53VegS@2x`#GV)D%lg(ouK!d2 zH?QXXUrwg{tv3Zr7dTc&J$WK^LDsMI;;gI18#lZ4Z1p}qd1mZAK4z_JLa%Gf-nd?N z=YNx6=_6?+%P-O;>-cfi*0T(odP;X`NWZR1V%1I!=UT2SV!TFhL$dXWgykYJ-%Ui$ zrf<pqEB7|k^0DOcz%&ExJ!gyVh|1iU_N8#%bJwQ&;62rQ-XHvbzkhjozrdg0zg}OD zxPF^w#(`-El`h;2$h{o(W`U?A!!?#u4AXYrm-WzC^p=?=_xG$LcfY-lw^HD^RlmJk z-rmOf?f<7=rP43_tH0#fRsKQHL%Lr=^61AiNlQhyf0@#GZtDb{1w}W`*Oa<S?!CP@ zQ*QOO{C5YhC;aq3EcYx>>qFogjddTJ7VK9n*mor3b)@h0{6yacC&HEpNbhO+eI{C5 z`RaqyOAoMZ?s*gV;G@;C>Ym7*FLMlM$nM<tUQ|K4<MX`>az}1%Sa8^NMX8eg?gd+p z-|apyYu3*6$U?K`SkGlg&a`wNnY6l8Q*2#uR$NGfVDaRzppf3vCOJYkMY1;PH1t>R zu75uDjrX*oCI1&MC~WX@z4=u3!>v-8T}w|D3*42R^=;NM=ie0!3m3H<Uc963w!N}~ z^j(f+39}uUzqUWTUQsjq8^es`^tsuR8^SkTsCXyCIK?=^zF@tQ^|^COmp_TVFMaqY zCE9Ds&7|V*)e)g`5p%vyJA3SgP)T6@t%S<^hu+RF<4$c3pWAuaLOnD1`GSBaysuXa zrfBfJJG)|vUQg|lM{lgRM8*Ylo%lHKfPgMr1?wK=lj3jmLT5#Gi2t<PT(kb)_s`l9 z8*BVirT14b{a(1TrT@Fz-8EaRZ?0W*GXCxrKB?Et58llEcEakE{^!%%zA8sZS>|7e zm3W)I_WlR>dT8#gRySuUe}7lGxS~C3@7BO<4bhu3``(&ptY5M!JYBbS(WZCW>o;`S z<)~h+dCN9k<lm_^TQ{|Ke#+x|bIEaqST+~C^g*N6LV-;!iCWce&0J@ggnah9H~cvk z=I&~;J+i$_u0mkr!oaM{woNaLjCV9Vj?+JUQ8QrD+Bf>UTYIL<TBIp?NS9t~)!jNF z^CWi(bHvjdDy(bF7XAw@2@NnbSNafouChz(;J#IM^?Sv=ZkwouO0g|DwCLUK1x_oS z^AD~lEY{u2V-T<UZQr_6^Okk^ByMALvz~I2<yYRX#I*nGC9Ye=Kj!~;cYmM#L2La* z7r)joSpTz8^4)@2)-GxnL!AzKy7ZhXVu_ozy3G6PwcTAZy-Hi6w<e{EEb^c8xbwvy zqy5U<4qlgTwyo;z*?Le*@f_C<_h|+7vzy9xE_r9TPI?)`ZH||2AM9n`Y^>9IZgN{r zarNN`osskQmGR47aqPA-G;%rIW*~abW}SLne&0#=voD<&<c10AR;Bnnc`#$G^3_*L z4E=r%RxJKp22w`d(k!YkduHqvP>#_4J&V&=dC6S`1(srIS5XG0cpIBbT%3(zxnJ7( zEi;!zKI7+O`RwpB_UR7~QJeQ`C#VKZSoqHI?w>2$J^3G4Z`k2`es>-FDV-~98#l>U z-&mKB^zzB|mx7B@Z|+)=x4!6!jK=y)k2JPSUFm%B`_DaQrP<akyITX86BX|Y-+#Qz z-JX4>RN0jqem>b7jFew}OP*28Gxy~&*O{f9hZK#aHq>ScJA7ZeZKB-snPw-qK4F-$ zj;UwQg!RdOyz6$RnNGRLx6xhV!K6jExo+n_`(+*b&!F!A;cT1l4BvDAN{M8hdn^;C z{oH)T636(^Jz^6w*D^&Ebr}~V|NYLvH+!Ze--V-Uhvjx%zaJTO@W6$cI~T~VVZSw@ zM2CCoe#LW7^@O9IrmXOBJQi~I_yNbRFUe;<Fzska)#I`($yb>$)z7BE{*}}g*G03Z zhd$W$ot=4ZVsY2Ar)(2u{+3z(;QryeLht9jdpv#O&-w<nL)YW?e|5i^#6M>z+pJgL z-Dmr!FJ(_XYL+iu*1a@OD_P?k=N|Xc-lT2JjhC;y`}ydvt;2yeKmWhI|K~Z+zxz>t zejKlFdmx-_T-eWlyXBT0YjJ7V(TT>-!q>5<>^#b~`Dg}{&n+=$hr$=N74;w2Z0}<~ z@5LO+la#UFh+~?>>y(3*Ywu3*Yk2kG^qexq<36RQL!T!lJ2kGZ;cW`6l)L|U7Xx<} zgW-+zG9Jk)#S_2OAHTIMo94s2S;oL$NZ5t@z!moyVp+#UHeS4<)@!9CX`vRocRv5j zn|z%@?3yoqwLZS#Qi#u){6o`A=w_18+usG}gWpWax82-ScaGz_=<`FVR@^m<qq3(+ z-<4)-V3OZ@e8+$3zZNlh%GC}&ignYr{&Ve-e;>`1dL`DQ@tJH7FC&Lm>DqngKSwmD zJu$dkf6Qv->=xC%x1_v9IV+wN%RXiQQg}+w-}Zw(d#3f?T8@W%?%b|;)B0RwzMV$F z%={|h3xDQqvt(JeUVMYUW=xG-y6D@ve@#?V=Wr}y7JgQI=)K_9dWN+}J*_!wcK=o7 zf4@OMWAzrfjpmz|Fh4zbiIZ`IrEawnU;6wvd?x%$HaCjh{vPAZz<h7Z_Yyg+%1L&S zOnik;e`y7mIaSE%@EKSdw(k7DC(TH(XxV@6*_Bs+mUILj`t|ec$vw+{{Q0#c&SW|J zrDJnlOL;f8{GDZ7xZ->H*?GTi>J{BuRduN;O!G0La<I$P9A?Jl6K{TFHl8!_$w7y% z$O{o-X^ygT7u>V#l0SI0+r54`@j3G;A9tPTW*^%EKhamJ{QK8<dnI4<&@OvlC}XhT ztnrPcl?Q8eYHg<NJf{1)p`l4+i}|&ej=6GsHhVH=hn64Gbd%k{BzNVTY1dCt)|E&3 z%<h#>GIn{g_mHPe-*eT!>!t5nf4j>%Rd;i=v&H!>hL;)*pY3?w$|kXv_2m}Pi+?MA zc#B?h>NMsTy!6<@e8!|deTQwIDa-CDv3aI;Q2WdJ+Rp9$|E=uy{k>gR_SaLsf3l2U zrZ|Jm#a&U$7KR^=ioD<N(4|o=u;^OknOA}lnTz*6ZuC1Wur%d=Oh<H+(D59<w5x>` zzDq7HUYh#ZX;!;^q)5UnPJ=@~SMr$LH(h4kVQ}=E*n`Hf(EEM=quyk%uspEq#e>uh zZbD90*3Tn0*zwowduA3Qenryh1Lu^F!m>Jw?^JI`p0adeFx8yB<d*#<)k@=~H#kEJ zWG>s?ueC9MtDR!Ob=tm*nI+~_!PzAj4QDKPF5e@>RCBIxmZr$joAUj<#*_G*-PO#U z*ne}i3!jl)%kOr_zes9%qBV!kJV(c8`#$QFSZ^vxf8`LhFVE)N8QHnHYxZ2>FN|LO zCx6%d>oHT6C-v`~5EU=#v*m0KU!P{n-nPTu%LV(kHLSXLN=RWbv%TexA|FW!?SSml zCoa4zUC(_Z^29pdB@s=>x}IM)E%au8$NFaBT(47xJ1)O}zs1cpQZ}SE{bB#c^jA>^ z90hyrUN2o=yMFK2=l?2xs_A{zxnO$#_o7R)nPp2;&qpqQW4fr+SmaFU`*-Z}sqxx+ z><8T6Nt!fPK6Pj{>v=uB<k^~~$DUtU_VG+kUSK${<^F|bO=)XdBQjWeVx`ajOe|-9 zFTe4@2KT;Q-($4bpIFoTK=J%$mg@CWW20SO=3Oh4OkOjssF~M+?dYBJOWvn{_+P<( ztDfz@zyEuMFW<jj*Z+H7I$dtQ@#G^1x82a5aXmC{=E@r~_3O;pc$w!4YB*dt%iz?# z_gMa+n?G&0{EBw?{XhM`O7_3~y_bKA?Ek*lev!ojhF-HRDlhaSd?qaO(y>|-c(am4 zn4M+QpP!A{p63JEZe;HIEWXJ$Y<hX*rFZ2$K?f=)`x@WfzbS@c`|~$jkALynmhf(8 zq|T0G3hmpx*0dg)R?T|1c+dRE=l$n(c2AHz?fZmz=QXMC6?-JprzI!UrXFHkTPnX{ z-nLT;Hj_Cr+<Bzed~|(ap%}pWSkHL(NhyXG)t8J{v+$;~>k2b4|0tGje89tC`abXK zjaiPjVqRxD%bA|raxvBBc-vQ=MBA%7Ci`wG(0%szfz9Pv%(D;t658fy$^Sj^Rr%@X z4eyiW-zt^`#s<E6>?XcIL{(<ShKUdFz3uXzKViepoA-CLH=ldUy07p2-z$O(<4$%y zcQKNi{IQ_+_2ISO*BRebso={N54l-t7`$e^(zR<vH9gMT!oEn#rEIclc~oiNUs{%Y zVrv_pm9p5{rR@qET#j93sV^6NQ7HfTjnD4X`b36itHZ_@&bjd4;P{mM>A(8i$f=L| zox>G4?o9l<`qM3zLuu>TfB$~}qV4<68Rk>3sW2}!=)AhEwxZx~YbwvS{7U^7X@P4Z zQw=WMJM#Sc@=w2bPSzx?FL9Zu8=$Qy7w{{#P~e0Q!=|5$HYHEaJvGZhLL-#VdGbL% z#oJ+t{GGgpJG6^tJzz3bI)7w)x=fRRe%D;LGhzmnq4JOTj5Pi<-@Ba4lxq36eW$!d z`{DCn6{=ocKV^4ZKjew-n(2NirA)1HUwtGO-#;6$B>!$;O~o6x9m>z-<L*7GN~>19 zVwqbcc3S0%@sk5N7F$;A$!65548FQ*hc{2^^JNdXZ{C`a5a1*kesRXH^lG+A3=Uk} zdwJs-9QoTjGjbMPbxq}3ob2R$dw$03Jjbs&xs#G>Ixo&LbQEBboqei0_m8Er?zaPM zKMvk;ocdJuUF~USZM~4{v*|u>8@KisD?JildER=3yY{X<$9dOq+t<wwYqWJe!@agS zK>O5^qu<v=vTl<3vr}W^%(pFzi{?z7kX1dw?AF3it)FQD^Sn;{+`RhMr75@TcBi=? zkt<33uub|^_2o+M_6alpSsDFR=8mX2khyEJd64XyUGL`H@9vZQ`A7Ks)nz>jubaeQ zDul>&P1dLly?It)bMu$SrS@Ou-rXhGd|1liwCQ?BJLVN96_2m(_h&m*@Pr}CkYRn* zISIyUmYX)*5{9mP&4vsaygqvlPpsXM=-d(}CaKmISreVbG;NpU!)dv%{f_gOmS@QH zCv{b>do35T_HLx)+zA36g|-XNs%^1j>N^p)?ZARf34MN1-QF$LX}jBQ-F(Dju_>EN z`tIk#CmO}N1wG3qrrych)VF12k>b>|p3lGcy?T7(%JwM{+UCaHZT7266bfFepAkNL zfpJQB-$Sv*Ycf)HpZF!E%p3JGa`pzc=IK_~nwUEj177@}+jnGYkxkg9@L8MAaO$N# z*q?JVDzIVG+z4aO1APINE@_g^PMQ1CQ_e4c=n=HUSJi|`?|V-{bF%kmlhc9Ml~Wvy zPwf$j(YunDpn3h+nyYT1GZ`IB(l$rfDR-5Ay)2(mz2{%|b-&wlljaA{5Ds1>>!Sar zectDdPpgz(WIg@zzDe(&9NX$*cEkD)&HLrPfA{A9wg1Jz|M%a{tiSxv{@a83^Gnm2 z*XLe8$Cul2u!4)#@$!w$hZ#F&>(r#)t-riu)>)%h*P~m{|GPT<{fC*)``3Sr-v9Hq z?dSh8%P&jW|NLt|^?<tZy|XtTzS{Lw)h+TShZWDi8LbPWz9=1I$XOWuz;Lyvb%aGc zL*-64Cr0k&>0t^fxf5ES&)q71q4qi7W4GR>ef^uy|DLMja4WBj%^~dO!GK%$XD+Hw zG35+7w`qIT8}I*|-(%Dk-wWNiz+vV?V-5v}zh6r0?as719#lOclMp`n=Y|QU)9hwR zxaZE^%4>4%?>%$FT}jscrVk&V*>)`HG)MVonG^4%lh{73dAWI_L&>k8z@+pEbCRz+ z2i%Tg{l7Rh<?dJe3@%ZQJhsnsmM+s!Vx4<ky8fe3b0p*LxbL<?=8Xl(iyGc#OQ(O- zxVZbSxI}~Vo0EOo-d{FU-cQ=l&2sPIai*TcX3cp=&#PTl66Sr)Wl+*E+i@Fz!>vus z0nJ-Eq@B|og>v^-lplzw`<t8gRr8XzP2jUBYuA=Pu=`)FAYr(7`q|HQan0$T-!I;B z+}0Uc(&c^HF3IkihVyxs^k@kWr5F3Me|JdEc^;RnIki;PX^joTf}5gju{&~RM;IM0 zyU6lFr-0|tB(H>EhYPYZj4Y4z#frXZ5;#1ySRrhcWCt6AeK$j05o9smu6?nICbxVR zPEwQ7VLsyYi;wR}YvYeoRmy2GPZ#956n*!p{9w~?ke}^;Z;7SUzSzJSAwinER_~ki zs75&S)I>>R+nPh={)aU*oL6fUCGC>la`)wj8@$JM|9F)CKl~%N{r}>R_W$bt-_8qv zA@iuf?{JNU(*5aQ3w_yth28Ah5F3AhVZ~p8SpN`lewiJMx}X1D`962zrkA@WY90Hv zzN2XN!4C(+Of2~RNy*w;yvx44<8q>#wBnbVT4(+A3(r6Q?OYTuvgPrfXaOGIFP9_u z=a**v{cvuL`JCx%cAwh8aAg(8wdzbkpK}I3E=;J1P1Igw7|N&hdydTX^^ZPw|L5Hl zc)#xR`rm(Ro!M1ftld5=&|?m;P-9kkxko^iE9k_8t)9y>YkSRBWKL#c)w-Z}Q!VHz zQ)NK@iHsfFt}_LcgcaF*{vURMEk5FRpQ&SO+9mhyeg4@G)w<t{FJIZAwQu@%9`~qu z1{?L#gl1{{uF02XT>3im_&<%Tw=8YmX%c!mo)`8iCP(SIscz$B>af1{S6$#q5J&Lj z*y^5du5W%F&`DcttQ?@%y!Kh)`Scl~VH26+90MIMZIVB+z`^s7$l;3@EH<>6d^@me ziePYGp`(GU^1OnxaX-%~XurPtgE@`&&+lWm_V0QBld)KgsZ~KOB;E3jV*8|XM}K`w zH}oo;<H~;4aQZvJ2f@zuRU3<b&A9UUv|PZq`_}`dUs|gFwf9jyzj5FD;?0KD{J%E} zoteqDbjG6E1&!it!VBKBGrxLf^;OWtbK-42Rj)F!+GBppyvy%6P0;0CZFJJ~cDoW^ zsoQck$JnX*Prj?Hn8aw))Wdq<#)9*HDIz>snwyqyzP51T9wvi#Kc>9hC^qH$n%X}e zvr{)rEYsLLsm3Jjiqx&yn!l&<tUWCJCQ{G8%w^|0Mi~ivo9qKIlb(4_ymx}nXT>+^ zN6DZgF4irXD<vcGxU<{fnU1<f%K9nHFE^i@c5-hh+v<iji_N^QDSfkQ^>qBKI^$~n zll!H5ttC-2?&fSXHuXC=@9AH?_3NwtuV&IXcVEur<i}(C;tXCD-{-dfaWKBOy}f$H zpZ}lM|CL?&H~-^T^YeF~Z7s;p-~408`RE;SbDCP&ik)YE6Ur$SpLKWB|ICGlyaa9f z&f4TOYJT_Lepd3&`MYT~e=aotzyBj~&z`+Uf7W!)|MSEDw^ilsgICVDn59N87iTz_ zXnb+cwwtDnw<P0!3l-%i2{F!5Vb1gVZ4kdQc*!P{8=F=wId*MJf7cs#VFpnv@g_6p z1q?YUv-bb&e9K<^_gl`}vf8i%Is*I$CcIi+ys^2guBYG=OTux+Y>Vi~N3*qZW0)>% zd2}aQM}CJugG1(GCKH?N#DcIBaZmo7IozX`;oWx2)u-){Q0rTd)3ew19$q?Ojx+OA z-&_sLcUp!`c@Avd?*q&Z_<ZB`-(0s=(^^*K*0X?E3oFJRu?u>tdo(qJ-qr;!@Z9h~ zD_TP^mA&An*otSX?QCM2BJ&Sy6|U{s*1~FQna_T!`o{{b;x3NOH}1sc8$3>_KDg|F z*NMXP*#{LZUNlJVw`a-x%+m6`k0JcU+%21P96NZeGk)&;|Nf=*YFYWyllvUks-|tc zyzJVkl#52`vt8e^c0BBKO#QuVYWMRSdb9ekOT6*C(Rh5r3&pd{Ut_$kT{*uc_szGZ z#kZRl-<ooEt&j9+i=T5RH+`S_MDb<z8@~ffss)7wdz#zd@h$UMagO0;$#msZ-u;qJ zs?qLzVgBc$ze}(8DiGb6$#vdUP4xZOv;2y4bK_nk=5S|)Sg0#*bh{<_M`w5NrTY1M zqkc-JO}fk1zRm5!6P4%NXY~bpIQlo6ozBphmk{7+nssYKlUZ%0fwHyE5jn#a!DQJz z7FXs>yeqM!@ojrYU`K9k?{@xrvH$<>|69TS@&2V3K1EwU%$O>g{`bO-st<b`KY1Vd zS>S%;)1(#l|K7`#?33KF@!jOotb#8SFNj)2-L~6TnI7uc^6Gc5mH5|=r<)CSEckr1 zDu~4(ARyFC$$0Imuj%sNZ5K1L?Df%Noxt3n8F6^kCTEsYNhRy_k7aXibG#K;xaIw< zZ`-O2eifvo^*oOM*S%k){$=`qFO|>@d3;m!EKF{1Iw<M*T94CpBX`T3onleyf9v$$ zy!TSim{x4dHsO3xc|fPz#f2ulzx5ZTtEmcPKZ?*;Aiiqj@g46a^LN~SYc^rI!h?+8 z=~}xZ)uN6+{`~ga@l*e%&Gy-Ecl<+q<mZmNmi`QD174gdxnj2N>bJ_!x#`(o)n*i@ zX<k2WG^aEsxKI9oJd6A6wp)+VqE@f4zs`6k;<;5+{ZWy_vgfN$e%-(7T5x2MzfbVC zxqKlC6}hK0TsJ$v-|&C;xyJhAvGzQNW^n)EJ#bW~wCsAXc7&FQ(xay?lk>{7SiU^S zI(O_Mr)QVlS2eBIY>prIzbfWB(R_1pVDW96cBa=)?i>yEQ)!t!rS?F5`af%qg1#Or z2AAs_SHHXMcUhxRXoVtc3Rj=xjx($8Tz+SAZC#Pc8;*6#4NG!Q`gdGi+`xFS<BQm= z(C5)tjh~yo`+oFoC(o)k%v+p;I?l)6S9@c8ttZcL)2zj2KTb{R*!i|>splC1S;ruA zN5_XcbNR14&yP4<tya&K_GxR&EC%k&iO!OLH_qqTcC#}4Y>tL==p4>B_Pe#0JX~FT zTHtWjx|!>FYS@3fn?-ItYV$sa=gMyBy+=58Hhk%|-E`V_?Uxf@lK0wcX3ROhVez*p zuG<!=Ry%$+$NzfG@o&D>hfmu3zwuXn_%C<(|5tPQUpH01#a8%#3U!S!yztED!wmiR z&y(D1f*e)}tuf-2wmhSJY@(Y%z1er;hum9#H9xqY|IfhAZvLaUPj&0QyubR2zdG#Z zalwQPU5kJNKPwp~2q&|*e~UhH?^e#Ci0OA@PCw4yl~#8y!H=75c2ZBLo}XacrmhX! zm-IiFdVbR}*)J@~y58?%-c4}4oe+IiF8AC|i}ZB1jt#xv3%J!vO*Iz3QP~pK{cd%O zsanQq?YC|#eD#`=n0APS8qb{-#U5-V#$qSJywp`U-FcV!<m^44t&j8xeYi1Y>eBh! z7WfoZeovKI{=T%}`AT)ys!J^Ax1PF}$+`5zq61t_)7l>9eRJEWJ7>!~PN(4C*Oz9n zsLeXoxK!9Yq0xlz$I^1C)q9@1|MOWYr(+qTq_b`XkIj46yPPsd!l!RDJ-e`k(`bdy z+CI<wcljQQ*t}iS*rwZN*T{H>aZTip@Vo6XSt4=XuOftA?KA$Yvxi}VT{%O-?n=H} z#lPCEHs`SOhGg)+KOa7!gp)h+uusg6`pr`cqD|A;baL2}-mt8@Zsg<oq9?JE>pSoD zKY`W$cC)UTdi8wHuk1V5qwAEjB<<tzLqanI!+W;v{#h%;_4Mp<fdhHh3++9W!WuO= z9r|s*{QRo97kre9_U6{yiP83=vWIv!bjbu+|9t9pbN1S+NfwN*^V=)rGF-xcDzAB& zn0;fWgJYLlsNx|DhgEalD7fzOY7L)q@noXk<%2O2fBZiy>KH`0UT!UX?WUXEbnT^c zjm_WHKQ7Pz$6vVjpCM}@+tk&8FSL&+6x7B&-P&L7zvKPu(8xU+Tm@k)Qwt=dUmv>s z(L;?<Lge8YUt!nnEw^Rcj!n$SVGUmJ(qO@Q@8vTe#RXZlE<UOwV{E=oG)ycji8oe~ z>z7Nav9tS=oz`;MO_F>Y#ErDnt~T<&GSi%K#_H0=R$=WxHMV4zU%?xzV(&k?|M&NQ zyMO=x?l1jo)gTmpDduDS<ds|ReJcB)+;cBz?|k-$>vGm?JZb3F^=(Pj?zM)TMyDSK zRO_cW3)pN3Gdf<idxdWD?I*$?4lJnJy^C?jRpE0=Pj?@?uiQ5IQLmEvjQZ=wuO@tc zcqQ-NVTSGZ{&oAU$Yy6{nY!j?o3K}ky#2iu+<~*_x|A1xSa{9tTN;Chq8aDEmER_4 zq+hwWm9N#iBroHVNa7xicek7Ee?60_XVUu}z_a|1_2VVKOL})1=O&Br+^eYnuzc&) zkDKo<F8Q!Ai&xY8xxz_@)VTd#8Cr8L3d;uOZmhBG>G$fp@w`HErq&~`WpUkZaeRwz zX*IMYzX%KEyRw>zy_6wvLC3T%=jlz3uL`1O-TIk$@Z!OxVl6ji>ex!d8<<V9c`Z() zKGS^?U=^~+?(`P+*{?bt`EfAJRhz2y)R<wtDMRtj!c`^liW?aE14Fw{@_d-~P2u`= zm8{yuT)PiC)x9{tqxq_xKe1|;lF;7tYx`LriM&g1IOzJV{8pI&TdX$U!+-aa`%m3$ ziJii${KDwHgZ#Dwrq7z0)?Lpo-(<bPYUS_VXUlswclL1JTfX?^9QMs>W~|XM|4ZUN z%jUCWb(Od86z2Q2Tw<wJSQNkIcFX5ql{0UxymasV```EfYcKe_zxqFG)Boe;{ux`R zAN;>-*Aoqq8&f~-xt!v)?ch$^BTsw9(sXb0hN_<_irl*G)DMnZ8#DKAJfeQ#RsPGy z)1Qw||M4*YPw|ES=hvVAxLE#g;r`=7Vt-i$E|gifeVwzmD!*A`&ver-A``yW%};LV zVA8eZ?>2g+eLuQ?<LwQPHz+UsdGJPpV1fKbbK99p)w6>)@61>obX5Mp%hIcoca(Uz zX0om{TKXu#g~51cVC7O_A!*;p$JhSsJapzOLp|4f;ayhj?`FT8So-?lB>ic1TR+;w zB{!#DuAi_}Ded14GlvMnJ#km-rm%-v?9kfYXk8N2SGfOgQqB9j_4lsd|8E!6Ij?7) za`r~{59zm0eGTUE>Zz4|xGqRfIhp&I^*q%RSL`$RO;wFpt|ZCuZu5F!v1WUU!dsCo z^OOE2oWFmRPddL!Z?1IScFT=(lEt~7-s!1at!JI=X61It!AB&sMudIoiyW5;6F$_t zXqwNGS?s%hvSZrbS2D*_v;1w>6U+-_JFP^}^~m+G~1^PFY+!7MJ&JQjWo`&G)kB ziPwG?%<gbM+Y=;suQ~toH<`Rodza7tB-y<#?vT9Fj%PupOtu_<4l1a2^r~EUJ5Zm% zdFea{<K(R?mzb@2pl|jnL3g9h`Sb6J*F0Kte*RjW--aCDL2KvirZd!J>3{jh7jVJ% z@!ShlEeA8EM!iu{zOR;6aar?x)Tyee9lmUbrK4vo{KmsL?UngMfzJ+(Z?*We<)RGE zgqp-&oI1C(`7?X8<;x5ACzi=L{M;O=^=!paYlXwp-tNATr~kSkFngx?jrpo8vt5%K z|NdN;pKs+{y&!)6VLuP6^QWzY@&mnl7DU>1b+_)5n3I#fXyu3ds*5_xD%wM4)wf)p ztSS_}NnI$zbE0s4U2sE$%UzySk&xoKrQ0OmBy&t)-SK!wT5j!9#U~Z>GCY1u+^PLK zJ;UR->b1-BzrL@1XnRy=dEa^N)ay$k@9us7?|F8BKzBpa%3UtA<QJ{{8g-8|b4$sS zb=U77b)2p$?#phqatY5La~T!>l7d^M7Ka|+G?<zj(y#DMqv&0l<)_Lwads~pinkfb zwuW2PCv`u0zOA_ae(I$7rw#Sp6Yox&5HNYaGrPOrtgIO?Idc1SKmLl}maBF6;yv$3 ziHPkVdumMO&;9N<n0ND%em3jpf6?;$ch&JUE7`nxxnp+OnYwdR8Qc=LwQPAGzScig z><ZJQ(!$*V=NRrJbq7{Q`t<7;)r9?2t<@>kSHCM-{7Y}mHoHgj4`u~47z-*m?6~`C zUpT84&(VL|c0cD+s%RG5)-Bs|a%+p3SANyLc8M?dSWZ3AUd_YS_+|T^RU$Xt#r6hl z+|?wc^YC~O>jqo4)(s(>XQ{fKc(rNYl&%}+OSp`A_WzGubNGs6<bAshu5-Ou-Y7iN z);!7jSztrx*IN@@lX72{J!Z)*nWFYR^xUNuZRURmtt_}bPOSM5d4J;rJGa{!XF98H zG`G#Z%O&?~d4Cjt?HxT9^@AR>SX7?W-JG&<6IWU2F{$4nQ|=X*rC+T&mHzJWr&}*r zlm+%*e*g3ao9nw1$Ambv+Kt}V@2-(ed}w`rk9p8O#*i0l6l_h{jaZK@xxjbli(*+V zxAopr7et%RFl3+Rx%Gd~mjyfD|6fuV%%tqSXWs7G!e^$(r!cjyjhLT$S*)n-Y~(|= z--XI5T#eT|%)Wgv6DoS~At;TJCo@{#>VMOLjv2;3zyJJU@y+FB_W$4ZFJ}Ii<FMIV z-4Xxqc)hspmrc+9FSq~Ov83ECdu^Qdp5>OeW82=PhJM>{vd@A$bLlUw4Se%2+$wn) zE_`|2&Atn4<}5RBzFOa(&2J>}=f6SRy!gj&zna$lnQZ?y*?R%Y+k;EbU%v1$<)E>X z!?rqJuMJxRq6+#P&!0El+<D6O>Gv8>YuTHA-)8;}b(FbwuSl(@V(O;qccL2qF0V_e zKL020!#|-I&)Y(Jm$kO^C)`?b+pACb+&lY=|NM*pGAz5<l5$x4ZF0Svit?&+XACAk zaJsGh+h5AA)SV%N^|@Y~z|!2N8@U{PdYej_whI+V$65zzggr_Zn7KRP&RX`Gm#^R4 ztgGF>>BP}BOHvHaXj**VyYH)Z%k@`JS=TabJ{)NO;P=}7UlK~X_Wzv!cj}Mr|Mwl8 z|L36XslO53^;7nC2s%9fXJPYK##^sXwx|B*viRy=#fb3If8Q(h7Vmwny!pyD!`gYz z_HBROzS!%)KGA{)OQv|$->E8`Qz-wEpXcnf)eRT6{hlSkar=!xM8R>>6w_+f`DaCn zB)ZEFPHGNV^ju{3f+xuV{}ZNGE;t|k%suAzE~ALuQ@_5=VVC?=9G{$CbVi~(+cra0 z#-%}9Dyy-BLH&zN=Wl(>=j>}&YuB!1$zH&}nJL5j!4k=Y?4&l)X`lJb*~*lT#T3+j zpE~nj{KR)G2Xq?)uCeU)e079jVntbM=AB*hwyeMLPT;|=89G-sM}FA6FCpY^2Jf6r z=RI%L{kU<-TO-F;_H*?yflG#`O>^x3eSUqpsy2<GCQ09-XlJBg#JL}v!<32^hnKQR z-+YuidC~HTck*srJY61etb4_S=r>yyS#6qHkaRa!VT$H@G1bh(S=#^S&i*M-9W5{Y z&NpOX@2lUJBp)o?IqBn-8|G!NkCn9=+_k(@zU9!yB?ljspEN9;a7}jk<Hm#OUCLqI zVZI?#+YbFXGRr5(Yj)4ad4jI>FGTFURX;A<wPj}C8<ROMQ^PtYd91phSiVJV@smYP ziW2)BL?#s4Y_9ip<h%TsS8L0Q*{gl@HK$trnPbW#JeSR6op14R9a#s)@BXqPfs#K0 z!nXe3zV`l+t<tx$*)r`)YBp$bc>juFh`3-ZV!3<aujDHax=J5ex?Q+vFps5jYHhLE z{tpkB8Uj4}S-2Nyax<$>UaRiAF;%SUn&R~-wzrOanD1ubuT}gZa`ycFJ$sE7YPW=B z9e!_qDkkrkcl(PI+h&GdIQ;#w%=^vk-vZAsjCwNBQ|f!huUT`ZZR*zEnJfCQHzz3I zJEI-%ZWaNN0)wPm4|Bz?YV4G>S<=~`6E%5)$hLyVfBFtv9C|7wmXlrQ_x5+0ah`!B z8_$=UX#oWmOWeeK+H;d5d^hSUd++?XMqIcp@@KHg)E5<cGuIXzd%eK6s&%f!+bIvO z_$J*o>1~(!c!e!c+dt^U>SrZQy)FA#<O(K#c9beV-Q%5RCc41*$NCNHWg4WMXRLhl zhWDA<6BaWg4gnV)t}R)mQ=hVD82_3cZS&So@{p2(^Gv0NHTi}a7d+F?{f(4t2v+v4 z(#{ILx$N*+DY4Z`Q+%C2oXD|Bzu41q=)i)B=XfWa$<9hSS+aVvQT>mu?4C8DCYFEL zRv!_NdV9#MV|LR|#p5$BzdN&dU21LXmh``o=4%5rCi)9K)jE?=_%^6GMSL^w+o_x0 zpMUnCyP;vLn1|y%<FhQsPIyS&mEChb@6@_GizdihB;5ZL^P;bQ|MB<#ABaEx_fWt; zes6dDPyPRn?2Pjk1b@D~etvb&(V(`p#C12e^Om}}6v}<mIWk3i)r*A=?*q<V&))L= z@=Uvw9imH=XT1CV?W*|u1M@2C?7lwuzulVS!$S7|`5zz4{}*I*nIb2<Gc9)7goA5B z4+}4eKQTiiD*5Gw^fXD6e0H&)_nm%Ea}b@(&XjWI48z>W2WQrN>iiJ5deeX7zf+rU z8Tqv(%n7|(x$g5O&)}Btp^;rJ2Xe38klE0(|Am6bwA2sfd0*2fhHTZ5ej~=#IH!m$ zLUK>-$A7Ulb{YCBrt~%HS)09CD$H8Pu#3N=uGiLJbqQbAd+ie6ignWjUsUDp+`?*R zJUyMQtX$`6$;yS_Yk#q3v;X>k|9}5~y}DoO`@8SGxg*8y`Nijzn?jx2|8uI(KU`qg zw#&apI#pe8ap=a==`qsxQzW|1JKy|$FvIY`)6IWZ?XP|-vT4E->#Tz<J-jz(E%rIh z!<jnYeDmv&Wl?Fh`JB@OTfdq({bTWZwJurzy{Z5kOL*y`g>#h-m-QLVV7IC-K9`a_ zqh)c_|DT8Umf8Hc^J&-fo$l9;DDu>#E$BClyXhs^&{25y3n#a$)K0srGqq2!J<eIp za`Bi`I#+aZ-bQW>t>|XkC52lU@^?!fXKV?Zv)(n;jrqt*rv9|){&SK!3ftbUv8v|y z@p$K<NxS!kyk28m-#7O}%KvAdUk6v!vN70goSyA4Q}mX=lLdU4SBzMBdjhgrQdfM{ zFM5=0A-}jSkEQC)iS30dEY=b;S)%86?n+LawSd_v`e2T5?=zWZ-|d_$(^Cv@-8wj9 zeYn(?os1{j4n_sL^yfw#a}27`e`|K)bi(HPI?D?YbI)^WaWO|-n?LvX+s%2O4frCg zDs$dXT6O4g#F_KyYYlq}6a)-HMILJ`RK6#l{Zn8<2)kiu@mH~PcA}Q6A4+Lml@CkZ z^l|1-yO?&@<qqvt=f3JV&tbo!a&gDAeIJ9E-hcjAruFgbcKyHSrxz?cqQLNq+d3&a zxJJ#zlI?-R^4VO+Hl5h<cGdietJ>1{tl@CtNbynTJ929Ui%im*oy|-(m!HWR#C?5l z)gWlWBHTQC?~&%~=lS>}{4cMWcSTWZkN6D!4>zv6Wz6-ze8V!Ar6+gI*V+8{YNlL| z{^ht&Cu`;O*Uu)H&d%Yyeq>)_TBu*N!ESD;UAIne{L432aK)6@`@A-PKGw5VR(*4n z%$6NJ?dK*7)by-=S#s{)Wy_`KEl)Q_KmHb~9ow26fBpLDQ2)FGN1Zob?*9I%Yf;20 zzE+V-`F8eAx_maqn=ZdQQ@i|&<M(X4wz-b0R{KA;elbC3mS&SzPwA4^jqz(f9et7$ z5_rk=<5BhrqRTDr&O5klgV3gsO5PXoE<3hx+%MjmJhSXwpINBx!5!a1v^C2_=4ba! z+-Tey%#gWp!-`uvMg}YIa9b{0Ewb61(Im}v$z3P$K5kjfY{nZ4jYW5z`q$RF#mnII z{|A{5zgO_Dj8T36y=2$1>+#=nKFl^1-*T<3V0rddOa7R}C9fi#*KEvYT6SsOnYi;Q z{-%aY1w0hK8Q(Bvt?s<PW!LIk{!Gz<=W|nECv+YVXqD#M_q`-8xM{_Y--a(fYzkq2 z!^NDT{Q8Jxs?EvI-KA?;!av3?UUxmxxbfi3gYVD%`Ck8F`s0P^j`wYCkLv$Fb>I1H zJ<}!ozrT2^Ozo;~u8woCo)&yL#`iy?#<SW=ZVk6PTouz8zq~WM{QKw(kF-Dgf4vg) z|FJRsU;S(Ie~~uz6@8a)o7R1KY|r-LT=uii^A4@e%r^d=)}8<FPjb!Q%Qn_2+{bLc z{oFH8Lgi7L$+GZ^y@h8sh21SX+>lea^K{u&+36cT%qf-FCbRgn^z{j+^4xBo;n4d& z>qTwclADv)w0TJ%*!PUlcaF0fUtfEIdH)y3J#Mr1HO~xr)qG}_ahAdrxdSrOobTLC zce8(gOIN%2#=FezMZAm*Avc}2O)9zVbW`%uOU}AL<Ah-CTZ<o6st26<p#0%hgph%( zNWiYz0<My4+yC94fBfaA^^Z&bZLi&Drxc)_kh=Hdn|mitJ=&+I;mIh$XeReP!*GM3 z-gXazO9zV&TQNGX+Bi4UXtmyL9??J3rw8+}wUqdCNSrws)a9BSSHj<Y;PA2clix9w zrf@MXD*X5MUp&*QYH!=yroa4Hl2VnM9rd>wy}Mdf%A0-NWP3ns!_}Gp?j2dDwB*p` z`t19R`)Z$M&s7oGBdB2`v!yRWUV^QbqeJM%%(QLhtta$(nQM7A7_v$zOx91h+0X07 zcV3@6VcKmyL#yQI9lRg*{P(ky&0XYmFU2+BThx~688OX1m&}^Ja+C`RDp=&C^EN5y zFe-aDdYUpVTh?<=Me1sA$M5pcq~i}RfS0D6Ir-yA9FJTR55q;%hcRcD9Q57f>p9o^ zc<0-FOb5+h-@f^YkL^C6Y|RW`k?%A6KCbOJaiZw?MrGwVl`Fzpf)fNai<ZpdNocl6 z_~4_ru2;|HD)-%WXEudj+-daNPO)N5(H3TQmfF*yIq%O*yL(biw{TB*{@ts6(#>B& zKKp%rbE_u)r3?3t6U^+%lfEtq?}`ph<ytlOTV&sa7yCN@ofo<9e0;x1%;ANLr95~} z&ukM+%J{qcx5ZLsw&M)fvra9!l#zE`T(;$|E7PX>c0LBtw+CNDEI4{Alr4DGpOkbT zF0IOhNv4icCRe`lSNgkekxbchvaIT7%mw~C8gg5&Zl1h>L*p6q%3UutHt@=APACn% z|4Zlc3b)V81p~yp<!<ulFIw(*N@MDU&0&_dHVNGhJlm%k86*g*oSB$a-hAJsJwl|E z%{$e?%Tk@8^^@4Izxh+yjic_EUO$n0%b%-Z`E7;i>GyO#9zFf^&g1pzDeikrf+ALa zX_l+Ys;f(DGy2MKVdEjE66MV$su@Zjwd~Aqs;%h^PMF~*rsn>3gHQPO%|b;k`B?$8 zkM0z4nV@xI*M6%bmzesT?>-3->l2Ro*`qA|{G!QmwdV^@)>&{QvK;!!$Nq8O_Ct23 z1g;!@X7lnUXNE{L`<Bmd_%57@s%q*{+?AkVpeOY4ROL?PzxJ=rwK(=Jj#{W1%-(ss zl%?eg&xuR3_)nM=>7IyWY51o0z&G)T+b!+QS?LyY1!UG(U)jhkwI%vxjyQXK^U+O* zr3`P#+<Bj%uwtvazU67hGpl7X>St*j$h!DcM`gWy3Exo>r462;d0B293oqR0>e2eI z-H=oh7rB|o=9y~t)ssREo9FT6|Eu1+>3xMk_hhc?ueCl1JwGaa(>p;)Cgt}xALH+b z0-s&hy=2qod3x_9F^A7j_`W<`(y;k`S&QS1wfj!Jy!QQ(?M~CQn|;eAL}G5+UF_j} zWHn<!^Ub!P9j8RO4yvWZnX@TzzRSJsTK@3Lly8xt7g~ZEIG7pl^gsX68vmzthqd3w zFFz#qe|lZNJ^kN%>kDO_`THte-6dk596PD2wJ@7&gI~_un`i!QJh43Yn%NERtR0qb zln?5?Gwz%3Dw6qm-=9~Uj_*Go?_cq=zVe^Mb2}FMe<$Tvyl#J{`TN9U8K2oFtsZWv zulzP)UiJBEkBz2V>_gMVIv4TED$V)({c+@M2MMDM)*Tz>ZP+KcNI|-8dG&-$;eu#I zy_bIv>^u<X{?>-|%A`hP*?l~h&lLL`1zzBYo1VE`BRuW${d-w9WfRm+o2*+|6t{$Z zLPOjp*7fp-f0V6yb$ChY^?64ludY1*_R_(JV*UK_M?at5esEet=u@UQ4lc9)USdAP z9-3=%_xkFlZ7kc~rTTq7@4ey4TT>ki^C&;20EOILar0ddpA+g@k|m!xdl}0j4xa6H z%U-{fo}(VI_(hN~Pl2;z(PN83%g{{e7N&A$&+7}mooY;FI(zE>B@NA2$0jbdTAzQb zd0VZxN^C^dgwnVAR{Yx~lx8jXTYdI^`|C@RGVD$6(^NGzrnPa`GL~yBl2u|mqGSIp z!`S!#65CCezOVYcA>U_)<dXFo%`<P6{*U}{UL>SthXTWIW5%a%J_!rSzWrXXQ*Kx2 zsh`*CX3k5}cz^w!^^?!+TeYv9cK;D&TI*pQziPX4de4$$&-eOhf73W2@ag`_yCG~7 zj_q|1IKl8MrI%fHddg)@&gQ>M(+}-BWprEnU8~vL&&NLpl-;y5t`Xb#@K~hGti!EG zu66D+SM{l=Us%@W<0N$DYNG5r7vqNc=hyo``zi_AoaXv>|3kJFy`sjio!-6<)qBBm zS%l5?^M{BV-=)}Y9}D+WxMv>Sqn)xv+I;h-rh*m0PxxognV-p>z0v5zp^1$S9j7jY zgr$iIe~p}-y({7Du7!7vf1R;7+3E7rX<jCq#IC~oYN=jKjDL%49;|IYEbGvjecmZY z?9a^-TZMn(amp9Jy<Br<=Y*SUp8Gx5;-47lcXeCq?=znbqVr?_*|qg=eDbg+!uo;3 z)M$<8>&s1=7CH9H)mLVm5t((;tiG6?V_WB%#y@^sVur=$cWYY}mf4iJKRFVm|EoEa zZQn+lg&UqUhD0bm7THvITGHyN!-?WG{NK$>rwQ|gT=CQA*|Drd;(^Xuiz^ZLZachn zQSVgSaI(>RUwCAwT#Wk*nFsed?(A&S_;slzLw>P@LJ?cwL2<|BukFgB>X&^BTHerb zP_E$Pi_|dF8EcPydQepyFl)sgd*`)Wfor~=Jr}qA)q(ouhlOKatkyR^Xt`~6>yl4l z@&y9^p5IT$vs+tDSUGX~!ZVyLI_hf|NPCs$a52al#4X~HS~|74xmucW(dK|V`oD|c zFtR?A@sZ!QX0yjNjtHG~7DnB!^1ByavRW;0nfH?abMFlfJrU;*#l<uxKD595Zl|8_ z-1W*HZHtWzg~PjFOqv~bxcprq(_zi%c||Ap7-=+4PKx5+yeNYAWk6^X*R{qUe7r_; zpTzJ_b^IKmzvKB-+eyyJiU*e@C9WwrmUQ{MUO`o7J4eaFc3Hj$5=UPCT+I1k<woNM zogb+NYa0TaUN@EfQrOmzbAQF+J1ei8i}?Kex}bpBOMwZO)_wDK{GgtD;$wyU_wV0l z+~zr?=n^&K%c^X)UFmBMpWf*d-kKfpclqjuYYEaW$wzgjMpX$EEtwp-<y%+OakF0k zTdCVmo~k_e>-!lc;m(WYoOh<x-pG8v#OwLlunosQ&AVa6yOjHBTK&V@k+&Ro7d`yd ztntuomiD{$uIITa%Wc+M-g|dXftP(v{q%gDC4c`vitqiM{95wA`jtQSd+U!R*L;4< zeS7w;m-}x1|5MlNzPLc@R#Rr~7U|zxnE70b^V-gzou|VVwdI|lL$1Id?*-4FJ}&<A zVgA1`8+-fXKfl~E{$H<k;cipeCfx*y!0k(V_uczuF=^xSu!`GKY|<OmE;to(H`^xk zUS0A|I6}L1Z9uot^q>25j|(68VaqJVVsvTE0i%R!>vbEqDE9w7Kbe7V>b3>BIcmHb zeRCEBy<TvC-rZQqmV?J+H+<Xt`u4_V({|_H$9IL62XEh7elp79n8x=Nr=p&ft8()w zZO^$m{g!9`U#0jGh94F8-#;rkAlZ8F<%vi0UJ8e#tvG!|!R++&p!X*@6s(zL81*K; zEM-^da0oqe;t2DBswek1{tw%xz{j@4Wuf?*+gH+O1Zfy;{(Ccy@A+|~rhp8dlts%s z)=tyrSeyF(cf}gnbm7NdK6cFBOG-BXjh%ci*sx*pHSvbmt<R@OTAli{fywmyMZxb! zM58Wz?OfZg{&V`3hK>)nCf&{D`t@;*)ct~=QHm!N1)9_Q{>-_3PWfz)pn9=VL|rN8 zW|0YNUcH_&&AF~1vD4Mk=GeWZiw;a*rhoEs>zXOv{vt9AJgU}DHqF#L64rFb<Cg!2 zgX^l;nC9{vThEfj*b#dpu3(DPjw@%@{#807ap(LG*XLVzX)WB6aLMvn@r>^m1Im=5 zBWqW1pD1?Qw_<JfT();cR+=1B(z4$-$iFi#pVIS)dGo2_s2!&356-`6ySn4ySI{I1 zXd}m#xK)Zv8m4Sot@vw#?D?MydNMT<0(rAm@h_iz(dT+tTdu^BsoTW1+I@PZ(jXpm ze4ZNHkG#a7OPs5hC7de|P%~yzaXEhYh{=AjWw{>{CNzCa+LfbtS;3fL;lEXrnYKF? z&W-5XH9_xRRpr~rD9er$+t#o8uPrs-WP-X~uwB?n<!Zj8*K9gIKRA?ocH{OXf~@8) z@w0*-EOl(Ga&B!rR3uS){qi%@xMq><n~zN~jk|eu!76)$=6O6Rn~s0AJsK9U-Qr^6 z`S-E;$3*?I-y9U>6SO`mJn`+KU2a!*J^SmIdhO=Ui#J0jSoyM5DBU<;(>nR|@!U%$ zlQx=7;@%$<8K(L6mZt2fhQvlSR?X&fc^t{ojmgp_Z?xBE#<tDOzNix{b0}E$;JoXB zJ2~wNtN;Bt!o0a@WkQ0&3m@)+toth?%{MLdan9zk5f<OCmCYp|w|1hyYSXk?MT#L- z6${@;p5K^h;U}~Fa74K8Z;^AEkH4#XxVZOc*WQ_SfXilor1;rBpF}lPnF4*MYvm=e zAFU!)iq6fRA-r{F*SUt%rmNQ$zOhkzcxi5jVV%?k!*zfDt}$K7y!WQzs*V0k*Z=SE zYjU2wyMv{<y0(96k8|!b4uK84lNTyqdwad0P5;T3!dSVaEgO5Jw%0CL%kjQIHE&*b zUG}@!#<V1>jXcLB4T7w18l5!T(kf|oMfFBf$9ygC^VPi)As$<ga$WcS^l)pP&(5j3 z$E*2Ps4pw7y<)eSHz>U8(VCpTr*|XnvXo|Ao>WqJH)!uJMFpGr>k6xGKYCmG+VTI+ z+n2ZguT=aYdaK`2`f%k0t=*@~kG*fwQDX63?Nbz=e|pdDz6U!6PX;szZELy65OLyO zV(iM8B^7JqEB;x&$=%M#w0Zjs<9jV$c6!P7g?}&2Q_h}cAF1*u<N5ZFavyk4M18Vm zcyNr@VutZu{jbgOzbaEE-B17UKf6Bu;D53De_!2=)c5S)X^_0#kTrdFqmtE+Q){BO zAJ<R)b>nJVWX}Az9m-oy&c4RA#{2(?@B3=_qi4+gU;oX&Ufr(l&xPi@#eeR-|7#c_ zms7dTD1!f09s`G`d}1)?+~}XJC2nf(PV%IMeiwJn5D59gZGIugAm?J#w;%J$qZbHC z>D*m<YSra=j^z#qINs>JxjS1f=(l86_8R@P%HU}$Lf>^?uw&nGm&MBCx!U?KZiP2P za`hMQK5X@D(bA0EfC%A)_5+9Kg}u+7`S0q}SvqYYb^m92Z2fDt#ldMox%2{w1M~Pe zrkt`pH)-1;TN6!3hUgmi{aP`%4yPwtF7Qe^byng@MRV<kWA~TtH~ws^!)SfF@5$ee zR<kd<D|R08nwK4;zxjZTp*n*Bhm2P8)nXr~=PO^GjN}twHqg5EoAY<%!Mzb@9#|e+ zexR!Hf!g!dwGW+M-<6ws{E*U4)fIov*V?^!X7T^Lp+uHzHS6@^Y^Pgi%A$i7^6?#g zYJRryx6Lu$oJ-2ln>O7JeN(-dQ{e6AAK$)Rd;3D__0?3LFXe`>cP{I`rN`bVbL&#| zn!>)HjXVs!%%@nFopf*e=l)MwZ~c<VUo?GQ-)EKhdP(x!Mh!;=)ff6ZHV5BKnsV^L z;_h?Wy}b<6FE$>y7I6Jz$F9`$1J60uHVQwN-`1ZhUvgu{67JHazyAE%5;tFxVg3#6 zUY0*|mgp>7Wc}zr)0ZIEwi_NI0g6qwe3xttCePb;u~7MR=55V=m73iFru7Rq`CmO( z_iz2C>B}?^#S5;|Fb;4roENmREVNqUPTz#P52pyKmi@NUI`~<@Q-LwhQB<}v;@}a< zCo<m>zExRH{`Wd+^`C;NjB`xbLT9R{{yDLPV}qPVTSe$i7T$@PRVH5SRtrrXdUL+c zWVd43yli4is;x}({iJ@LREhiry60-wtp7PLWcFERCXv&@7Qs8>eih!5UA?5|Q0C0{ zrTnK@B3>)Lw_u#iGe>LghDEb<gP!muB&39`JtxA|efHJ$>kA|z1(z*mUYnt2G<o9U zEvvqpE{IJ%WhQH4@Mt!VZS&<NT@x1?Ok6K!_RMaJ=jy|Z3)i>^#?E~HS25<0!-8iA zEX6M$`OiCRS9t&R%nk$VPBFc0UYqq7aKG_uZN5>PFZeP2+RhjEJq3?8-i^53c0l0k z0n6**T#;Yj$V-ULZc*31F4UYjttY^u)A7QKht>t{p@&OTCMc_K?+Dt>tU8OoYO49U zolLS*R~}iwcArUljjJvjcTB%t)Z5(q4;-J%9ZtUOu<(r0g<nO+|2A>ox}6dG{3(;$ zgiRMS>mN*spD-~gOv-xJ@0@i-9F}Yg9zNeRe@%Q+)_X=-*9R4+Z|0@#vpCS7*}xiO zE;gqt;W{hZ#U+Kthjlp`=DU8o@m4HWE^)&W4u`EfCfPCno#5+pCUg7AQ*w)~f_wNr z&An^q`B-e(?y5L(jcNL)oBs3JPMBA9Y~Aq}AHO*r=(uSix$vafl+x>|7o1(E9$jty zd-?8pZ+{;s-579C_WN`*)jQA5ouBpkdtY{r#TBN;!rZrshDuCQdRr39%Y$w9*dNMU zC;Mbq+`S7~eAnc*9_QKR=-ldehAGRqNtng#`fS??U)QT!oyk1^Y)kR!eb1)$Zd;Hr zIj;HO&7=#tRy}Xzwumk|A{UW+|L*i3bG<oh_F7J>o3`xM|Jw6k_Wpjfk^TRFgL`}H z8w7M&{+l)4oFSIJf67ap+%qT7%}U(XyG?5!cR&^IPL@?0R93AhSvk{jf$f|kiTFMK zsoz$n|BHXL{r~F!YV+d#|DIU+@v;10#<S(Z+y!g4_colp@muf4$@{BgqxY%bzvd`B z?Mq?A4dJ@(xk@@4qf?AyuL&d`3+7P^&dB*4vo2)n@_RiqnhQCmNAMhAo4@mtx@P;w zy*nm;UBj?M=*SEo&2=?xnU_ubHeQQa{65+8+{X_WzF+bzGv9pR?;Y3h36Z+b%;x4N zXYT#7^uNe+xi@!pvu*B_D!kou?8V|f)uNQnyHgl0vwc&Pbi1D5oi?p%<KGvHESJo6 zY_ng&o$!o%i?3X>Z0)^6PmA8&YB?a5nsRX3u8KTWBOW2&O}?|r&%Kk~I-OzJ9+u{Z zmS=1pR)zM~#cVmxA@@c~Ra{l~j%~-b?LX(GO~2=3BmS{I{3jz<!tGL>y~`$vOq)1S z^2CAL3>_`M9lqcH%h0rDr`(ZaS9TSb^KXjayWni_Kp?4a<C!O-WqofhzHzy9TrHaI zTcN-GlDYd9$^~*AWt+J~l&62DPt(4#b${ordvWQA@tPTDud5WLUvrwFEA@qO_1~bI zi_~;yvi$sXLnlT5;?MA%H#B4|+Gbj4=*~I1=s@I^6!RC;H|}XZ_)A8esYATeXuI?` zRxh8`v$oARD*X6N(xs=1Y;(mXpI*XaVXDUSafVO9jp<t&RL`B^JJr}4U9zpFuGR>& zgJb!(SyQh%>C`V_eCwC^R&vfRtrz~zdn|)PuRNY>@<;Xc?#YS@&($?g`5t7wy)<Cv z6vm!2uggLwM7VU%>5$5Md#p15&JE$fpJp!`BJ*DfsatBjsXSz{L~BNXwdSSw${BOI zo1#-|)Yvt9n<6zUnqPPH2E4Q}llfD`cFVABQJtLDiLeR#_TAB4q~|NU(Y7$g_{6#9 z>O{8NrnBCK?wvdDCG)D>BqQ+)*Yd*RtEY&p;mW9Fc)CCP`wer>#}iK~Of>FK=Zm&~ zvR-}V=k6k@Rm$gmrq0dZayIhm%cT#`{xode7wEA}RQl$hf5N?G4-*3%zSq7g-@Qrq z@ztGQB+ngJ%aVHj;>1U%-$qkqcG&UHjP&K46Lsmq4W_m}vH!A8Gr2P>xl&eV9MfFF z!muo0vcp1-dDB%T4d10-d2?Gn&(4Ikr)O6I6T?Cs#;~(H++JAmXw2N3_t4B_*{)PJ z{yt@m9LwDNHMz6jNNr|WKF_RCa`rn#g_KUqdGjp#m%2zFOmOM>RkiKgCg#g?4j#W` ze(?I%>dn_$avEROv`RkPd)V>rel;8WzAP4o9tVpli5f}2PnhQL1?=Nyn{rzx&1FYh z95c@Z-USc0Ei?@+b_hPh;<5benRm($Ke1oEpEO^O>1~Xb5X-JZ+Z~??XKdY>mvzK9 z*Q;mE-y^jTW*+)_sqn~B{=+A?PGgxX#k$8g*)G<d^WciyZ!=6TK4JYP7!x@ux<^Ol z^_=S&hdHYp3_`A@pXHA=u-N6e&Be7^(};u5R(V&+?sE&`-@b9$Qr%Pf?{DvY%UeBL zZ`>{q+A}G6!GlZ#n@wI?r&pbu)4yu3uHZF^FSk49b}BTiG-b^wFWR<xyWIEkl+)%n z&2P5IJil}G_~T3es}C&Q&Nn0W`cCW9p0j%w#4$EU-1{%ZHdAxW4T(PvEB_p_bX`8( zdY<;pQ)0U8&;Q<IJg31O`$l6uSCPl$<&#RMC4b$&o;`I>j(Q)@pR`wnCY&>u)gAg? z|Ka+LSMOhft`;)>QUB_jQmcsly(!zXY*+44=2_Q1{pPYWpR9V$aXfK;YH=$prkTa^ z)rz(GoA$Gvkly0C@B35XZvkxo_kW$eU-rDL#;!f{9v`>=x2@i+woUq??VFd9=dZ=c z=Q%j~*_2<9x-vB}pn2om6_+pmvf1?M%(wS047(W|d0+o*X)O`$nRxJG?!lj-U!Ui6 zdMWfZvMgL=t#@BBEk;u&qF6`ogk7`kHqR@<Z2vk;drfz=GPzA%zhpvoym|iL&+mVK zziWH$<F{Xz>vXT}(r^EMcl)mQpZ|F5`jem^x}|}2L&08#T_?ZwdGqgh|9<|XE49rN zzHyyjdSF)0%mpWkHh#Hlw)w)9yBv|1M4s0^DrP;+e6~$3z(V`SH7TKHZYzCXJ28%g zFVPI!{JuQgurH`v<8LdAUeTgW|8_GkKe^zJ(1hJF57;l%J^5!<c;;f&SGhW|KdU_# z)!nxI)8ISTuR<pvX2#9*&0EfSSUkMi*zofm=lSib9u<ENY|M2%enaJdOSP@r>7&bz zO#N0odu#s|ySc3VOv_B7cgpoSZgYwcp3E?>>?2c;Z9wXA%_(sjol}=e3P*{3_qPAC z_wT3YTlR9w`FvAPV{$sX%b(?Az@<xJXP-|k+sc#PT6|;4+)$NuTn61a7a!)IkUq34 zI6G#}<k?NN>Sqt+bQ)O9eeTBOKU*l`cE)V$ll*ZXVy<5aJ!nzzr%OUUca>H6HO8<V zi}_{-=<S!h=W6lOEGp)9H?xH9{s6yd=|e4_oE3i5`d9x0b$THSpO4z=q-<MPWV2e9 zoBc#spYE*^J{h&N$HvWt=IoMPCLVV-ote~I_c(R^-P8pp+Os81m^K_f^Tz*hyaD$? z^}lW|a(rfiao4O29b{AOk52KkQaz{EGG)>CHJs6V1XPy^+fIlJJ{is|AYxc}AacQ` z+JLWzSP#n9tT6G~obkmssipG9lHeJVJ-%O~Co`G4wD&eJ*=?VA=~l<P{x=03N-+|5 z47=yOEs0CM;OYBPsQ1>*RTC_{XK(&*C|k*_$`Q5fufnps^D70~j<gr7*d|ybdbu=K z+VXT|NF>W?$tC3md^f7o_Dp=3v!sx5O+cF1*NMJwgkQ=<Fr=-KwM|bgt4Nu&=~|$N zu~GfL^?|#q7c8FDo*23|*@U&Ytm}J2FQZB8?@!Nj8ecBBnaWv|clc4MV3<p~T1|7u zB-I01Pw!=%P@C}ZK$UA#;0b}<%*=7C#PiZ7Y!I9O<;0qH+t%ue_l%9N4iv6ee<ynR zYnR5f-R38p?;XAMZZY45bE!5-#XVM8x%%ny%VT5Cw3mxc*q+|?`p4e`yvO$4;V)Oz zG~9RO^RhgNI~j`ZAEeTx3;524O?Yu($ph{+{jneTOgxRV{_sStUbp;7RS^3`1p)DM zF;D0Ay$S4;ICngEwi?rvi##STBG0;Q%6MhRdGNvPgI+UaFEig!vp(>k{&KnTZ`T6{ zB!6)*t;!2Owcy)@_BVH}Ia4xg)7$inPhHP`+xK~H)+b&eIS~udH}4niwQkw)AURf` zBY1I2+J=yu;?dd;W!CebtIS?f+HS7#TVAhLVe5|0qlc@4`T_+RWG}ru@$1zag9)}T zrq6q6d2ixV6aDtS_-}%Hs##t?cw5r(`RPmsMYU&qzvq`8lPjJUoN#)%?WvdX;;g)J z;niyQU)|5s?<i{4`c>c|;=`!i5@aaG-Y}IT=R(t0ffV0D+tjeXzwiIAT=jQ<eNX() zt@RBL>>c~p@2`BB&~_}RVVV`+?3bI;j5Bn3rAuFXTt4T!=!f_D?Crhl79OorNtked zs_y4~uMXDF>pmaw`~TdEx;odH$NTI5pI0b5UHsb5?+;%A=T@G}^L*DolM;xqt!HHY zqiK9=Wy!v|slRsIpPe(kwd;6k^Xu7vuNK$ImCQRoOTRPF$=H2qNobYm!OgR7rgc3~ zifs5jRqd$PG2h9&Nii-TBp%zX-kQ(0^njw}yW7#*x&Ho%dZ%t+87EwGes3#7{j2nY zP6b{`)7t+fwmlS0IC-VM&T9YB-{s|n<vWi3och3kHJ9IU!Nk({lbhU(n>QJ=OQxy^ zUgr&XGNV&S_R8K&E#{o8;8O{q*@;<++}!pXHXX@(S1t3jZD#HH^iv9QIR}JukEJ9& zoOy=h%wh@W3$?d4@4nL<a#a1slAdB=hR*a!_7B#WgzY|Ub=mz?_WhMky^X1o4DlbT zZwLO4U!!p+yZNu@gQII3-KAfw_{3g&?%u&~ekX-i@y|K#c6Pe$?wFm&Hzr*AXZtAf z^o{QDd*Sc?t2#EcubIj<EohH(?7o}MH<W~0pTwQ{UwOCIKl??B__RH8r~H1#{kkYt z5ZjbGf&E<hziL0m>@wk53qniVd`our_PF+hO$*(ZKe6HYg=WFuVs`fmXB5=Li{8lE zbLDz##M@PyPbOsCp1)PlCr??=;>d+(hQXK8>u(+Ie4iM3hUehN3D>ypt1yShe){(F zEA*;fZGKsf14}0AbKUOd>l5sl!6z&DSV1=_ch$0cx_=+k`}}?$ydiJ*i45tT$IaQZ zUwDYCS|9MU<k!$TXJqkk-m=4ICA_!#_igtI3=p^Z(bX*QHPml$Y-qK3_1TFlyG;sm z<RxbRdKxuhML@%ZtR;)CK6)_8kLldr$jFy$$1`_tarE7;5gruct}`vZzlbw+QrC-0 zZF}YdW_BIp)U6Vt)0>0iJ-b8H=ETaZ;yZsV=jD=bx~tabYu=ji-N3hc!KCJ$0v-+t zn`Ui_dK-JkV&0iIA{+I!UNuf_^iM5GU$am$Kr~?M-}eO@raZcCRj{mcMa|@ZcN3Yf zbZpvgF!k%I16^7>*J(ceBix&3&b3ET^`?RMk`7Cyu3g#Jwg&8(@Z!g7nUCcGm9y2O zIghV+s+Kl&a?qN(^A2gVzCF<QIlL~{;*P+K5;uXFt0d34N-pK&mQ}F`t)4JD(y(l@ z#fi$Zm8ZYuq_cHI{eC=eVM%Rb+X8_vQd|#9f1RuO?O;|q&C%`d^}YYvHfEXgabNQY zRM?^U@n+t!FvepHQC&vY<<fIcf4rxA$Mf(bJBH@AfC%2^-ZzGO@0{t+xOJ}KKw<C~ zWyZy3ESAz4&5KnMZrE<$vd1ck%erRG+O40}7C0R$xf89=^!}N&d-#>NQdQ?=+Wac6 z&n&ciwU;rV$4B6;<A(GZzKx&fm2oB9Qo8M?7?8!1vhCHK=ISh&EB`iopFb0;ug;=) zrbY9%@Mn%Y-QFTR9cM+p$TWs-Wln#dD|b%(<yE#CZJA$*uiGD8_IiGGor7WT-hy8j zG!w6;H!&{QG$n24lkyzf1Ltfj_kF6I&c`70&RSsZ+MMSpynFhJyLdWZ@7w0Qz$oL; z64PYKbt$J!f+w19JFGO>*K~PS<B9p%=bspd-ZK0$bGu%r=E=}COCN13*iy|IQS)E? zf050;>W<~dm&^V6U(4}7_1XW~`SVhXm)$VF+kI`unviTJ8KpNN?;o@=E|bV!-)Aag z*!1$C)5UtGp1{xluU6N*d-_wv{*U^9ow&HTg|9zMw*TYdyI{#u^@7&*A}cZv$RBDt z6~{ke^(FrUGv}<CXWkc{Ha(Q@n#_eYzR%r%v6XB2?r1S?-cbE2?ofjM_mo@vY$p3L zy}R+YnYo0oZ1>J?Mgx<;mE4>6>Bd~nohxRz?8uZwwU0ORF;q_0NJuOwuBz_*e%iX^ zJL6Kzm-jeXzU{oH70Eey)BWh1!n$u}T?lx+H*WGu<D(z{@!gUX%Vch~Z)KL24Ezup z<KD3O(<%l#gZ#;wcdi*+tmj#`=2U%q!`wG^U3&^`WsjV&P<o(RX1jQGJ7ap6m6<BP z#c@rB6N{%UogiR)Oh%{bTJRewcdc%b$Hn=xPZalk-u<pFEI2wilULxvv$(XK-<Lc+ zbA+LGSLo-}w(_g|=igYk)FI-djMxw9*nll%(Ka7@@-H=L_)XYhTgWV6_~y)(O(BP~ zlU|72xg37D(&0aAdPR!EKNjobWsBT@F}BJo1SlPF(vMr-Wvg1&yqnQc<Wj2Zz5LdH z&UOb{ww>CP&vdr?`@S2=F#>%r-j}`;e2~_;{N{ee|1PTOk9Br*%v}C6)5<^mW&IJA zfb!mp|1@4?_iWNMe%Vwug;RR|!_YN+(>9xI$gb_5s^GCtpnA^Z&#y06gIDrhfBJ{9 zep_FFvgXzkC;an{hqovDRsCiPT*Ub{itATw_?La54(8ouQ{_FL=Us8hJ6I(fEBf3< z^U;?te`G}+g?~TeGIU#TJLFY(>y1;Tdgp>ff0nl1Z{Bs2txGPeMm+7CW{uJktCT5C zjf~l6Jw$VuS>tZF8O+-Bpe#e=jDOGBONBS%><$DnPL%eWwc@w3bbdpEpwWH)U%%g_ z$WA(SoB!YS=XTRpC0?DeAyoMF+Tyr7kCvWX=;q#VQ*wS+++*Eq6E}V}eReqZOh5mM zqwh1jBK+%@?Q)d6=g`G#@Yq<#cE-DXFOof3f94i%o1&_)V8+9<fA8Jj_e|u_O3Mop z`5}wuU+TP3@o?)TJ2&=Q2l@HK8cZ(RGP79hK7PaX{VbyvVZp4aQ+>YsGg$=rzl>zx z+>{+N`N2gI{)aqSz1>Fcx$)K2A?xkcdmg6E`t)J>-ZZmwoCV@mH_Cc^vd^3D%$qFH zJ!}1;Gi-5s?2Ns=*;3n0JLjo)>EAx@`NLi0#hvu_$Kes|GaaM#*VpFF<y>g&YV}~v z&t31TC7H^LgeLE@oP0E3z5c^(9+y=n9=tPuGlSvQ^Q)3=k6WzSs;rSB;p^b==Jzb+ z#rHe^iL<eH9SgW_tQIiiZ2P9tpBjbsYxftp_a{gEy?&>Vt#e6W(<SbL2YvI`>ZN9J z&0vv<y(eODOHO9zf5*EuTq`Qlj}`t_aNpFnIYh2Ivrc8f%)XBg=gpiqsr<Lr@+BHK z%F>+9d3U~#VShZeds%bM2@A28lV|wNJHzjDa4KVWgTfd0_31Xn_x>BDZ>W;j&kv3{ zFVA`*OxKr{*=kbv%C}lm6$`??%Cf(4y*0&rAN%k5er7ADxw5ysDsjIy|Me{H>h8V& zVpF5J*d88?e-**+%8=)=VA}o{eZO2Dw6<T>5e|QRYxAVn+{X)EeG^G#Hh697l-<JU znZakaHlnXs<oc$tpchkZnRghSQ@1>R+0o>Q?{Du04i~5REn;hD9(b@k;mzEWZ*M;M zSC{fnzTfu8{{HyCU+V?@Xa0PzaAdpuy2u9$EEQM03tP`3uB#LNf4bxTU1B|@>r}6@ z#C%R=2=GzkzLE82^3)Gc#rZiD<_Ew1Z(jY(zWM)U)w)ma_m52CdX~Mvy*<y{pS7Cz zZCN_!X{Ikr^9?qwSFB!LmD8M`l3vekV0lM!@s+}J8;`s`us{2J%7*yn+_;-vYYjgz zEvQiX&F=N%``<ge!(Gqsu9K-vFc4&W!e`_DeA$ApaoGw24A(Y@9kXHDlh!u%meS@k z-3&2ymzS=eo4?QUYh_HPeelWJ+PBXio31;pwP8{HmpkVdyls7bv84IS)T#&nf0a2V zrJa6IqPE*`QEx@(wr94-wRd}Qym(ew$aC#$xDgj))Xrj87S|AG)pqXxYxF*zdcEP! zM7?Ns-ueG$WLuQ|m1gVA+5GHN=d!Q!?Yw5rZ{jiEq*L)b{|{fo%}Z9Z)NFT0WL0bs zSg~%~oCR;QIj6okRV1}-OYD7vZEU=3-Tt>+1O#=N{9fnfzu10;p-1VC?c&CXn^Z2! z-j(&MXj46{vrOMw;q&HNExE^4Z|nU2&iW~&qNCyxdBkPSsRgTlA4q7p_I!t3y>GPo z+bPTVm_$57Cd9M;Grx4h+d{Z5P|0C|-MLe~PYottYq*i+y41Io(dsnM%o{VO&sTQ1 zCU;;TW5?ugDU~lO?g?Mxjrx(aX-D~G{fu<OX%F=81f~?{YWWr~ay+!`Cr|BNKXy*8 z^d5%)kEdGkr9Daz$ZJrTTgx0HcDU!=_Fd{eI`5CXf4J(!nS~P<>n|;y!tm$$_2pk? zJpvt9U@Dt*`AklL%G%nfFP}Y6lw7Rup0Qe}M7wN9?CD_10>$XKNA_o4C{B3m$5d1{ zb!+Sv7Mm$q2F<q*<;FK@m`ymZwCKaK`JHM~tG=H9?QvY`b?=SO{*JDySL2xSSOi-2 zo@FPw&G}kvdgt}@tOrir53{FnY}fWQNJ{dLJ7&bnu6z5s%#%AW7Mfo?c&2uq_Y9d? zB|ps8W-zyGYHWTu@lZ|;$HAl3q0+PWx9XQ3XEx*4k~qR^a#(Gmg^_Gomox)=`oeTe zqsZG!uT_6h<juPfez^40-*#8V*$m<q6(P3I`|K`B9t~1ViruvDuGjrVWv1+wmkZ<T zA8**!eb`xEm!&(3v+J3M82iN3bUDfMA%FL*@++Jc{8~SfgKOvA3CFhGox;^pVle0L z_ePVJ|4v(1e>wIs{o35{?XAH#8Qk;P#iI89o!fjlfGzCR-Wl^%HNuYju+QBgwtLeb z=I7fkB&s}YNYxGz%(MA1RrK+96HBE^0l6*hd-Ws^Jgu2z=yl=n19sM$FBi}9b#IcZ z5@LV7_HIK`b8UiX9qVkqSBB4*B+mBVz-?H>%A>$gmby&1IeW6(sn|m~UXt@K?XmnV zb9o<sx6#hb#ID!(Gp%{V3h&&ERbHaxBl>o=QG{aR-`Q_MEN=TV>M;Zg{cVvA{m}h- z#kVs4qG_`?e%ZCyIroFfqGP$!Ia$_z$d5gC@aLk2n^W(L-)qkF|Mi}Kx}3)x&(<>W zhJ!@{H!O1#tCq7({LYzWzWLA0ojQ{l*9EkB*}i+7Du4c>cJ%D?uUEa0k-TZwtiGt3 z{riqw%eT)P&E#g@J(j*Mq)siMm~Zt)^UJmu&z+ZyRG9gAr|-|Fdu5WZe2V6F4k`Y! zw7g(OV~RDeyWDlJxwF?CU3W^!oBfzzkaVO^v!<4!^4W%i|M~w_+1TuTE%{&nQFz_o z=?9q_9^5yVSM<0&r8e*Px`z?IchpN6A_Y@>uA973$Zc3Nk*RwA!#~@1+T5Bg{NL`o z<-b>_*;6*y*ZsNC{QrL6bN=(TKkSe8*S%NInL6Y7!AT{LT+J%3-s;`3W6@S&4U@1h z#+PmwhQCxc`N_aBLoe!hQeB1aqj|hp+8aW}?mFtO*Z)<(CNA)1@ja%4vkylUtLC+E z@=GRkdhyKuaw=h6U`Fl~;V5f$79+9LVD5wb9GlX@_8RTDf2~$_LZ!+CZym#5+?8^+ zEBNXTf1ciYeXZ%?3(V&>ayqQLC(QDyyUAwFbtU^0jg_;nihOe4RO5SwGqri8-2D_` zj%y8*@+Yu0IC6KX#-+YL<6vU(UBLN)5Yr^_n|ZhRf}Z@npLzfNOZBa$I=ehJ+{)QL z_4m=G5tDNR*DY55GG*4YxxvAQ&sd)c-^nvyku7+`kr!M-TA3ozsp0ddpTD@?aZ;vh zQ}@%N;}&}Lmj8a~|C4_#|M%5@&3XHN+!qvhmpo-bjp=9p>(*_})$<+-+2^vYkxxE9 zLws)Hm(1Dc`F>oxl*(D|X31q?Q?y5XBV)q$J6V%*BTqJn80&l$E3sShjj8sg@C^+W zg-LP!UuT$9ZP_yS;;(B=jm#R;p7{v}3!gcv_WJTN#y^d|6A$eUmfaT+8DnMoIBw<c zN5$4A#|sZnnxh;tY13vY3E_a_Eu8xosrXLrU)k7Rt8n_M(ERxM*IpYld|0{nmJyT4 z^;;1Eucm!Fm2;-GaowgFXEw0&pI6-U<d@C&CDS$pCx6owJiKV%Ti0`r6NAk>-`-uM zvNh%@-==3m?^-tPHTZK?@t9Kc3Fn!s_J*@6r76EC?zFN_UivH6>KB*ElZuC}-|}s) zBtA-sDfC)0vE{M1)>ht$&G!Uf_`dRfRp$Lp`ku$qS)UW;YHQU0tkbHxy>sJ+_{k5W z+ZMaGYyNoS&dIJ-;j)dh?^7iEV_8Nyg9E=p85-tPGDroQ%@sW#n{uJBIWa;`WNS?~ zi)3W+j-v~19am#m(d%>FWb<2|?69eZl3RSNT7J|8?~N4-l=ba)43wF%I;=El!i-sr zeCISwR>p?~|D2n-@6~5+{;Wptt#7XsH^<GZ``x+j^?hekCiaq+8j1hyU*G<EXPLxt zr*Wy$@jyq7|M^K~i|(-a72arelex3ZV7l#tv%hzV8I?(CHoG#`7dG6~sZo7!B>A9g zZ{}^bcZ+L#4bx(OXs`?BPFr5U$?Wv@nM6L<ne5Lt_bd)owr;a#{qs|9dWDd{EGZd{ zoa3UCGtLVzKKWCi#=<3Hd82vSi{}Yt=ZcROY9<(pvM!$C%<|#;?_cHHVh<?)YCrt% zXXMn0*LNsPST}3?nM2>-xS#&J=fq2W9nY-8D{q>#306y6vRTS7r+12Uuy0no%#bnV zZkfTtun<>~YiW)rdVLi8bmrcC6q>&EZIaj0>r?0G)_6@>(3xs`CNJ0U!1Ou0Z<Op; zjk$kTe@XE!>+cKS-(*Z(ukin_F2B2*=Q-oXT^IIBUWnYHHbs?-eY^17yU_tjJ7igc z3vF3U*c<ZRs3q2lb6@LZHGEl@Ak2T5Z{yV{X643&)mEiPRHWCMrl)x=y?fI59sB+- z=8rypWW2=#T8_-W<$uic`!&B4#Wx?hp*8!y#0<j#>0?|93<o_JpKpDqns?Okty!7+ z@#Ld>Cw+?jQaLZwQ|0%k)A|YP=iAqH$p1U`{>bU$^M2aTe{|gbpYpuNk}7-W2Hd`P z&C2MkRm#To72jqk9^RJ2kh$$}#QCGv66u1ubraX|$MzXZ2*>y{T{^Zo^|lS;0m(N< zcsH;G?rS}G<&8@7%wi)Mi)OX5sLs{T&b{_Z5STXGL6p^D&aY6(&#!OX=3|iTY5x}g zVb{5&<9yG2oK^qn>{0gSmru!8-zRT+S)A24oTWb`*_<P=S(S~|!LckwYZh~}#<{ZT zia%zaukSKC^+_ZqvA4tWy3B{)_rI(^m2xd4Zu(t;ideQ~g4PPnJO#!b7moe@KHcbW zLAP4k#{757d-Md0dyF&HW`zCu`RT#ri0|&!$p;??PAX4!f5N~iu}{4D{h~ErWGB1p zt(*~Y$uO}-{!#wl=kZ7W|J;9K(%k(WrC#4Ua~0kvYQ_1l-uH8!Stdgg%eTlyOLrcM zJs+dJL+t!bqjT#!ze@=H_*$09G|O9<FXq_H1GRJS|6H|ID?xQWf6^7>Q>Tk~!+wjb zey8reVu9(!A3ED_R?J<0G)G4B)8i*QPVO_`8kTDAGqqHU^XjdAcI6+QOF6f%x)}Ch z>9_5^&u_+*$FI3o=vMgW?$YLT>7$z;e|{}oU8~3V<4Bz6_hhln`F|eU%1q?+(0J_; zY@?FxtKC$e{==iv<>XH#Eg6|bb$8ZU9ns>?xyC#3R?5@gw|itypI%v)m#D(^bnep? zZakt@--V8es{IQ4V18LbuEL{{O}lZGLh77v-i?)Y50_;>sXcGf@cFTDuh+f%Uz?_t zbJ%>6+qE#Zy<vLO1fAv+?`Nl740K)I6a7$MuEFH9ac@1pNkzox3p<u2eOx)S;)Da= z`HK;^RX^@Zdds4C)7P}ipesL|mEYF5sQfrHkCfgSzippxZT7m9^y2)6y9-wMUfE$} zC>_yw$~t3?r|nthzXsozez3@jHdf|nG)m=GYjpJVwXwO=d}z*7Hq)(K+srLoO-1u3 z`^9xOF~8ts<yCaq9T^z)iz)GHxa>2A6t3p`JX_99eO|iZZvqovK=gjC2`hCZXFB{B zi@n*yv6|&}=Vs>ByNr82uhI|=zWI%(eZ?c4^9kw9WlT2?smj0kY4g_4%-ySDMpN6L zg)hsT=kzlwS;u;aT)Lkdpp<C1rGE*B#GRLCmZX-kubC{JE+)|@Gy7R^Vd$bT2JWb+ zjd^^0dyZIED$GB8CGc|Z&oxCk-7BshJ?OQw@LblNRS)kc9a!VL+}M!s?aDWdA<5Nh z9GR`37mBm)%~M_Kr_7OZ-@$**H1(htpY5(0%f6YB-}KF4TJzUdajSoe_2%{&z5HJ@ zPi>;jo0*-d-fxzCSg>H;@6BClbDfGbS{(uoRNd#yo>#VUVM-SF_FFQ^FBk9&|B({= z>rxglrD$OtS4C>HQN*QNt!Jkl-mPj|wv~DA<4*!&^Y2`nUT|#Q*Ht_3uT%EXd3fOE zymJc2UdHili>em2s$a~)tm^6?<^Ic(L9+J!nH;rs^Pif2Wxn1lThwSbXa1b_$={@9 zpC}52`ttI>74B8Fx)Aew|Gi@pmNTB;vvlpLdbiqZf>*=`p>!|##akvvR$DWs*qzWh z?Up+G#4@SEQpwEbhZ_Q(XfrpOKKZjdt^W11R|mrC%e`&()_26846C>OasSuW;J5P6 z1peO1+@0ypA<!!GcG<29yLP5{S<^Ms)jgP|-EmPnf9rUikn*vdWd{uc4@{6eufM;h zolp3@yq&{`_g|l`P5&4F__+PATGl(<uMXVa=pa*iy3qAOjsEV!*0+iohkkE)o8~^x z_;}u~zJ%5XeMaXi^YqJixUJj0(%{DNJ35hzwtUi=!*hwtA*g9VFGFay+V>xu7CB#> z^HeqS_vJ8os|y7$?boMGyCS`NN6TrwvI4(Dv(Ft_t&%wF{g3Z9zt`oTse1fp&k4U9 z7w&31Xfp?#^3l<ckDRw-qfe&!hua)!D`yuzeQ$WaJTS(MefFYF2Xmh0+%mtnT}Y<o zrR~A*4w}Kqz110+zNgQ(MOwd@H@T_F(*4D>MMh!_T7UnvH~rtaJ0o7;ONb>q!$P$M zEDs9v7^Zy|W&F-kcIkY@!oSn*2}t<b{r{|+z_=%{_<-LdhV^H~swVayD%-E2$#E+p zOn67NpuKyoQd7TYa(eb%Ypy${S=9@6GyOSeuC{EGLc-bVzkh$6z5j3WkMRGO#Xs)e z|J_|<vy%0qjHcLmMdGLb3g286%5(B;wQr~TgzdlH>ua^1c|Wm2KCf&V+tE{#rd3v& zzsWYT<hT}l_-UTRbj5wgC+SYxTx64>zmj*#wl`H(sY>}p(GIs>>ayx>pS)$E`mcFM z*V=9`@QyVI;c02QmY>G@_U_spCdOZ+eP^8hCv?J3UiaR?<!h#2FQ^o5d{BCS|5~mc z)9trdRZgnvdT+_H^Xz@QQ{^GoXFDBO$*b`2^XuSB@R*)BPveU<9E*!Ce`hE?^}u(F zvDUWRH#8S)yj1Y7X4z*ySv|{V%(*#^jrLYO=geA+*^10pYm|FVowMmG$De4<X(rb) zMdvR(cr7oWPoL*Zcl7I*j~45f?LKKYHS*MfQv3ASYPDO>R05ZmZhGO-5;{-z>6BgD zXPiFI%<{5+UB*e#ME342Hk|cKFT|xaF3XwuoxwFiW<y4#(MFwvy0uekQ|xa{y~!=H zW3vPo569(&C(CTkv0S)m<Med?`E9I6?`v)PULvPDYs&i-E<X=Gap+n0?^UU&_o9VY z1N?H<3cWJAB)wWDUTz&vn7m+y%(C)=C$H{i$He`PSaekBv>QW1L_vCx!TU7{lZ#FH zuCx|wEcSQ5mGOm7W$No=+oE4to|(2SZEMS;xL`BZ^A8qtof5tCeDjs8uHwMgrzOrE zXDH2E`RQon0*OWgrzg+OEc+JODe<Ubp*{C?m1_(#?(!{X5-wQY|MF)tUx4hAo%5{% zj@q<0XlZ=xlIx8K4|!2Gd9BfeD>_lzl`NFc)=%<{aC;!q9HlOmY-k$UEPXC%i-GO8 z-RmP6c<P@!OqXB9d?ll<T9r9LNTDOBd)b2BK8addb7})TuinePa7g-?ezr)Y-6?~r zSAIVxnf|(~dH2=v9e#iQJTqN*D>ANH*1NShA-Ztl<Ej5Qo)t3n;F-4Z-IOm6Cx5Gx z{CqrH`?TrN4ZgW4Ip%T29sPG7-h7tFey!K>iN<n)(+6!&J4X7a7hU#xTRl<LK3$dP z_j$Q6i{`gkhG!S(9@w>{Ip=Hjdw#q6cj1}|>@)3i8$!6;7`ON(F5^u8-1}|S%Fpg; z-!6sa-SW@4sx{4VBFE}$H6LdNXY9`09g^QGm1?A4F+b-&=K)rw+Vzf6JHPKfZC8=Z zGjB`zQ5i|yFSA@(!fz(9Z4g+vI_%oCu!bXPFW1c5Qm(coLUt+Rk1vc{U)=xyFTU@1 zyR*&S&A0w5zj@_f|7&7XeJX#M$JV(a_l|yCB&%tdHTSXG{NoLia{HQ})LrvkJ(J;S z+I!x4(h;2TbwA}!HavgM|MB+!tM$U?*RTKh?b{vW|MhHAJ72!$;4rIVi@E&f;n|8m zQumq?x$N^kuX(uqZ>AQvB*XTo{fTe$nR3_sk>zSp)tO#<^>B~DRO{B=g(j~V@3e09 ziI}`@_e2BP>lY(GXB<2Am*KI}9M?5<n+n34jG_)awXt7elaac7VpV9tQqvr^lVy+U zT&$n+1<9pfeNf!LdDd|Tw%0!@+055QuDaQ5xuPn)!tZ3k4UU*+vvRGpPqJjn1T(f< zs!8tX6U!0^RP#<RTO{w)wJlzFA9vUH3yeFT|D82=Ns;xj=fOAXdloL<a+E{n>gxp= z^NZI{+Ie{EhF3M0=U))zh|Qj~KREB4|E-n_ky&D4)1C$dEy%d<7BM4&ZO;7Jo~zTR z&S#ikHI@J5CdQ=OBDcL``}6<(h(FS9Z~d+I*PZ`&nf*9?!|aNfL|Z>kXli(=uYP0u zT>DQ^H`Oeo#pL?E;%3aW?B9I*py4i+%J(u`&V9_uGS3iv`lZ~=SazAh=ErsHJI{9Q zV)Z|8Y+`*(WD-ZU&cyIv9y{au%mg=SU%Gj)H0^D;Is?b12X_j(lS_WgSm4eouW@~g zchQDxM~(DO*Y!P>G?UoNV%6>4D}7r|>dSnu``(;Ey4RXCf8S}_TDvXL*nYp=-0LFq z<L6(|<~^u#D#LZbwHaG|lsD#eEv)p|<u`@%Mrh6(UQ@eU$2VSY4OCE-mHEOd&-KxX zzqgL*s5Z}@&(VS!o1UB3PWAe=m)G}=N4<1uVb#v3kq;L>a5(pLc~0jxp{XoZYt|%p zw9VZbFWJD+s4pN~#1P`3e}r-Vm5(ONK4^1_Y_WOrl&iPOhIQSK%aYHRh@9uK>sTNk zu{d<@!Y%Ai4>u$W<fT95ITG-s-2Uy%>&*<OowkN`ZkuY58!lpzer5Hh-hv>tRSB~j z7c?)9JGaMP<%;?%ohSMVua+O?n!ZxNaW;Q@#rLcCd%oZQ?Z4~s&5PL*uQ}3JP3mNf z*PXj%)tQ;?tF{Ohv@-KAIOT5XU3P7U-SIv8NmVH`5666+V`tEH<$mbuFxiBufqqK< z4ebRcma43e16sGt{%3zr{?xbM9}XI?cz2hnc`Z*v=K4?();qdtj<X{~yro&i_nP+1 zx-O`&O>xpzR@ZraZ?-g^-NU1<IoHTIRp3E}PQ{B$jAdnKrDT@zeZKIWu}ZeFRQTxn z7nM=BvkjaVtDN_If8CDj;{Vz6&u<RzIsW46w;N`8G6LJ3kL+C+<*j<>|8&20>+%B& z63#7O)97yYTJhbq{Sx-Sf6PC6-u9n*;f`v3b*HUgb{xz-V>o9=LF*Q;sa&s*AM~1$ zlCG9^Yj%Sj+nchOnDcd4E}z>Xzewc$E#`f%|9)n%na&px^XRX*|KI)WQx6MCaIns0 z(a;gt;rOOABxt(&L|<ptoULn`1D04-E~rs@QZrj=_oqtfx!VHu7Wrtfem#<Qpxrn4 zs#Qjj+TjPs)^M&ZkrDlKSTRK5+=9CY|CsXp+O*`vcN5M(6|I+J+%`=4UMRj>uH~iz z-vQAhiSG?oUt<v~T$z^`WimhcW#rG_KR&HqzN5P0#`W^WpU>7h{uM1RxuACGZ=A-n zwlgYoKUdy#kga=h@c(X}fAxFQ|J~o;ydo>@-)rCeeUBLA&S<aO{61>IUYEv$E9b^d zpKB=HZY1^d|DP@EL))IRcrLj8W&OS?m$UXP|NouLKi=Md|I3;GJJbLD-*Er2^uBIY zf$+EPoN8&;t~<VZxQ#75l}+zyml|7ZRH~mhPhtF)v`~S&5r>$bB?S6z{{AbbB$u^k z*|qIP4ikiu81G3<P~IAP=NF&CcP)lHjSFw>-6{K2gH<Y_aUS=vm2B2B9u0+CRy>`j zTAU_zJzrqPm6;d5M{_ZRv%ZyJ*Z3K)@XD(6!W@>(IiJhL**H850^96Q*vy&c&T{nU zJ|mZ|nH@9Kf|lOwbe*LZ!ExG-&vE{eBhs&LJd~chVf(?ZIXn|01wxiGzB<<MzTw^B zM3sgv)>)=(dkPI#-`d+&a{1Qmw!hN4lH9IuZY9{a*lDY^9XPP#tdKvO{QZiwYlrv6 zFFwI%&vTpYchj}0v(FhfzCSAF{h->q-S}1X|KGd*R>rKazwrE>^oGQfkF1Ugn7dwY zscGr5bba~Qi2pWgEyqp84K8ZyA9FtEouR*@*;;q&n;ykwDN_Gk&)iV!?M?CZ5x-eD z_0PjSIaM`kEiWQsOa85n3BKL@R!Z}S#kZ1f!|R5VWc2KxNSOV!t7bazyZay0wZ~PR zfo$6UXE1PHkCOcNQ$){Da;eZ#mz}(#jCL=3zDJf%x!=7sLBQj;2@l`&AMjlk-K9P^ znF3}eS(x%QXxuPP-FD$=gyw|JCqFtF?f8HGrxB0!>%Ttn{R^5Z11eG`8(+V{*Uojm zSN5FI?{z#uyG0ETZ=J(Auf3UhYtWygIV{1QFHJ0hy%-%*eOe8sC$5RO&85Cf`tz)g zEYVdnzU<qzJ2vJ0S)(=KQqz0CGiW_I6Vx$x(X#Xc=>va$YF&7IYD1HVVX#{0>y9%W zw@yTetQHI@h>4jMx~g)*#KdW96W+ZrS@cc&5Z6ZEk}nHa%x|yh^L|)5YvT1ak#4IB z1KB!nx*pkZ{aBHJigkKP(}Rbq6O?5q*3CHgQT$Q<pR4<&%HQwn_<w%>|G@t@<%`dq zR(ZbX1H-)aQsvxVHN3Bvsq;T>sGt1EQ+;0h?Tok6-n6i+n#RO%nCq|0mhg+8^&P#U z3@ic?TArF2U3jXt``KZ=V~Rn4sx3-+PW`N7KWZ3IDz~A?;P$t<%@g9;{Ta`hpUR)L z$%v_M(^Co29M+}-lf%<k4t6tLKgB$q>#Ob!JA)_J*RA?5Ch^E;wQ-#Ad}&ol$1ieU z{DS`;<~w!9*;=CH)u(N8QLpD2|2(lc<|v=%&Ev|aBo+(trSRT3F*C#bvAM>zx4XXw z>28V4zwnPsOJmO4r5<^W**0^3&;NffzDNJv{p0^XyW79a`*(d#sAcrSp6t?PQzG^H zoNvwF%yePS|CxQ<M(0lVF4oz2dRgh@o2Qh-7_vn8v*u1cm)`d|@bkMK>$$5AC%!!R z$hjlpO8!aPBQKA<SBjX&$^Q8DjCRF}>HZfyIP)@>^9x6po!s|9sPgXa8?xC(D=hk@ zZpX-{3NMHfIia8ExH)ZZXUuiS<)uNIyc(O2E)ZZ9UR=wQmXgc7WR`8q!5#h)NsG%? z=#@S=#A~#9)wBh-$`iXJo|qV`y{TaTe)OLIo}&S8^548N)D>AZ*J{F#3$j0V?=D}_ zyuMWSocecR<1=9&wq1}p*q$9xQSk2ZhrjZFYHaSvKK^_8_m8XpKZQSjdDq$As_L2i zLHqAfffM?KY)VhxWIdnqewB%d&WG!7-e^@^+;_O{Mo883ziA)rTDU}}an^i&s_b*{ z^YQ+V(fdChuBiMev3$FB=KrZm#al$*m@!x1-n?L8RV~B8%DvrhX53oW+Po@Jd#RrM zsl3@ATemtW?C~g>c%ba@4Xqstc9##@7)14HT-0WJs*)37#F4|ltG#*Cgj|-%7Zy71 zzSnv`nYDEKU6Hq`FCPZ5M7*|%%YSD7BPX2kK{z+JS#P0B;djyZm;WT*KYp{T+)?tD zHuJYtwrr+9Mbn+O{a4*E|NFK1#j{y?HcDRz;d%8*M|)oJMy@+@mGeBGre`u8pY1b^ zEnrKF$Q{;mY0oEZE8D%}-fJGO4-ez2b5c(`XG-N}@9(#smXWJI{gsShh*|b=6GO2x zIZ|gV-(EcQX|04=!yBf!ZU+U^<?jsmcCu|0FZj2=Xy1nG?-JZkC(QKB;9shHJmK}h znXffi%+`8unB&63z_PqXKYw1?v~T~Uw{?ECv@Nt3eQ~&DQkc%^71!&|zPq3Ew$*c! z^f9Fx+n|Vz;U|)WGooG=2iSKf@ZZ!I{_ZQ)^;W7`R$%+K+1cw^Z(D5By06GMi^aU% zU*yL26F<riC^mo6EM>TJbJdO|YHj((H3ggP7jTCjFe-J@WL>%PsPcvQFSSWrulAUF zt=F(>;geo{O0`(U>}L4yzsieGY&~H7P3UmcGs$ghtY0qie9f?C25<39T^;-Vc5APv zGdvKk_GSMXcUI-YZSLL(<<j{l6@$LZ%guXmMfF!@rKP(hN8)A2TNnP9Z2GnQ0L!XN z>sMtiFPxe1LQI04JwhP*WYkWtsS$VB7oRnF%NbIfayC}}Zh$=-bI#OC2^H3$MbC^X z?uEq5oH(Lrt<hB&S7)1_aWLIAE2jQiamvNUtKFA(+}XU$Ht+$@w$B|tA^ZDNBj0<7 z9&xmGOlN4!XL}(nyTNpRU=_!Ln@=Sf91^7^9e))qyYqVQ%O46KPS4+eNO9KgiL?3m z?=A}u;9j4ver1X&du-?er?~XAn~ppB#IA?TeQ@a4+Bv6ht-0mB>+2M@-SQ&0pZd=1 z4+s!;y!BSFJ^JjdU0;*`%&z~e-?(c2y84b^VO9%u%uiSuvu!neB>pX-oMFx39EBf3 zpMw@0ymd_X&b$1xySA2O==|u~xXHNj<g=}6R{v8saIw5Ik*hp<iz|80_XYB=Yi`MA zY8Srd4mFQFcAm|k!SrsD{fU^*Q5SCIy?m`Iy7=<P#YH<0-Aij<H{n*CH;-wIby#j! zY=KVvtLPf#7hy5WF5cLgn38+E_{;AXH_us!Z!>C7&Ue4Z(BT#F;%Z-dSwf&o?)mKC znKg0>T^(<j1r{8>T*AN4YwG1^32uzO#t$Ay9SQCGx3Az&rQP~#k}D?WZ!u4+n38k+ zhvC2F_J8FC{O0J_ONpEinL1m{L*z)w8KVg^O5bv%ubM0PFlNs|#k=n<ldj}2m+#@< zw)V`|kEecUzhAj&-e!&0Zok!@?|=Wiy?wV_$*GesKbKkUJ^FKt*5ktuHuWY<>)Z8P zDf#F*kwY$aJ7)eZo)+dM=<!pb-LPrq*UFw}3%*7(ta<UgR$i`Oaz~lLB4&}-Gi8NO zmH9_s)@iu9|NX!86}t*vy!*Y=`j9wdO0T2uZoBNOLOY}!otD%c(B5_7L5{@Nw`He7 z*Rd6-O|iA=-)rjS(xl3mcwpHC+XGK`SAP8@xmq?l?bzhM-yR;`Y5)4p<m0l_-YFdT zUEaPgZJC_J{%`)#g?lwWJpW=|+MRLxdX%$d!&%!O|D`|vD7fGJZ}+^P|3xqS-+b@e z^7#6I_eHweje-#;Z&$8~zPJBI?2h-T{Qo*LUOm6GK9faVz{104dXMGqZ#=u6<$d1& z=M&?XdY1nyzuo_DGk2TZpZ^k4Jh>XD_NO18u}0YKnQ<he`rG>KLZ1~Y+h?fdY|h%h z@fiQ6n==3ZRQCCv6R+W&^V=qR_3oJ*6N=n+=2o5yP4emf-plO#Q*f&3*)2Q8IhN#c zPFP-hc5}tM?`^Xl*SVd0-;^`W{9P)`A2yXftMxp;v>KQ{gqBB7uzk<HHCkhpnzbnV z&7!G>JH#ZD3mi5zH+<(lAIJKc@0a6Y|M-+o+nz}BN?w@v^ZbHbt@pb-U!}kMrBkiC zAnsd56w3~C)>Hx4I+l*Msd15Ztv}BmFxmX$`eX*B%nXy%r`)G27$ib&{@yZQyzzF{ z-`NbG5@rMlc)XtdXkm@)OJ|RE=JV`-6^%VIx{GCm9p<FZQ=d@aw0!F1H)rIYY;Nv8 zW;k!7d(cYxr!((<Un5=X!M(q46LYTJkF;;8`BAR~?>w=Zv&{X6o3NMddczwt?Vf*r z|998z+t+{3JNH_y>xRwW^6A$%oXF&EJnrSQusC$Z)W;@o&1|+tbunBx=#rhZ^~amL zC2TwPK2@FJdtY*DavTfS@n2fn9&X--8SPu^{QqBIEYE#dw$UeLrOrt^od(sZwhycF zcWm38*mKG4PW`mC`%Z3q^Cs%v@*5nR8y((med%{TUGRwLz86zGHK%KcZOpsVxcL3r z8*-1pXN!Uk<O?^w`}>sD>N`2Y4h&6`Sd+}#-^{spe)pnJ42n&{{QDw28z1kCIJ9+L zbKm-H_93g@+512JW+Si0Wsq8Xhv`=|f5)!k9jUdqPUVR7L|G|cHZfvf=gnHmeX#Vy z-i~ZB%Z-~w-mK0#V4lK$QH`&*UeZD6K*tSH*5C8FGn+&fPONjh_IF{bT;K)IwK=o0 zA6>4D?&jO-=I(ls;cBPrO*8$=g|mAKtitmqAD<Qbf1Xl9jUB7$qUVd|EYw;&{T6q@ zto1cz(&qzzTP4bA7(Deb&ffYibF-nH=h|2I%M<0F@+`abvfjeZiSyUj&?{>iudqE2 z@5r^{jOO1G7gs->PsFG!{n)Qi2Z1>b3$I6LoaX2%@b}nY$b2cp-{a%zRXxX-JqTxX zD8Al0GkfU-Gs^~MmW!`S8oSTCEIn&hz`!}pHDk>ij*K&p)xPQSEt#YF?cuZg=arcc z=WKZKX_wx$wVRl3d+m}wHP<~NXiBN|g9X{U_7_ZxI?u8yxzJko+cv)K?ZwXo8uwK7 zo2Tb1vH9*#KRLZ*Qt_F0uFJDUF65kQnrOON)51{uU?bcAIj;XpPam1vxLRT99k#z` zl8&DEWVASN-(jH#>u0~NZ<d_7utDzHK@L_6o|KRK*7E(HJoC=BIEAX2$zO~9IY&*o zGcO=4Ex_sdZO45^o@WoVWJx?;@Kqz1KV{36=Q7n{U+x}r;LG9pJNNZV#=e^sWnZ-I zPi?e5R(rqgJO6i?-~ZMuzs#L+L%>aYbyLLDEjRK+n<latC-JY!-+V>r<RV?w1A?Dh zAE?~ZH#{=KWF9-)&A@hD?IN}7OE#y+=UiRAe3f;^lFT(`m-Iwu9)I{!;CpeC*7Azo zM;N{c<ah|)p80;mfw;7<i|*dA+gNj|gt^LtKS3zs_LP-}7wtS{XZS;3%;IQyyy^L6 zr^IU0Zy#*<bEc8u)YFpAVD?Exe(!e6SC*R}{dnPR!v4RPUvqyi_?omoS=;5R{`2Cq zwJ~)cn&X+?{(srs{^M%>AO6RG#ot>AY(3_`ztU~BJ^P0|!E~Wd2}+5%_ZSS%Ub%hu z-=#+L8=28LxvcAs%WiO0;qdL$-(PbonQ!gCy4Umn`PJ0el{P#Uvj2B-en9cz;>Sjt zL=L%3`xnQs@%3iY^{z9&Zaej^(>I*u#3I|gtb#p?24{@ASI$3tzb>JGMRAYJ{^D~t zo98J%|G1_&`(oV8rlrY$cPe_MHyAW+eHr7OJ87B2y#C2qy&vnkK3q!kD%iF~;;v3m zu=;heSA9o~0?VW$z2=Kb1Wz;V`L<?G<xSsCwsuAV)~?A9B6ZB?R_^RyJx|<etE9)~ zxq8vd3;BXd48lMBt(`Xc&sn>WdWq+s_rK(9t(*UP^R<nqj!3;eow(aLIQC9u<MSvZ z8O@$G#>y`y3tm|?_rT6Kzuz*NZQ2&KSVo$$Z?&YYcgH!&CAssH^?NUcWr~;{ov*R` z!hDJCI>Hw1ug~?{R-F4bV>+LSO}&b8clz~--y@Ig+W2FYiTe!0eMSX5Yne0rI~Wyr z^YG5xBerg3k>-nx2zJM^YdY(7_*<<@pUHVE9+&yexFGDO$(E3ln>-e#$Z@+eZe>c$ zaN{^oq$&4i?WtQI=DGb2yLzmk<G(N00#*U5hPW6uulQ}fpA3vFbR1rW9c-2re-|b2 zV_s4&n}OzuO)a^ycU6+MTlT6mw@z2v#JsBJ+^Zty{*#9`&U<#3eP^o4iY4niV^8^R zZ4nmpUCS|Z$FAo5$RPEHDGT-|o;juAyJbJ(F7ee4FSmL+yKC$XIMigOQGRAueg=a` znM$N{<k1Cp1Rc8qTXz-Sz4F&@$rnS361Fw+6OS*oR(b!s@tgO@@O|F}_WxgAFOi>b z|H|ymnP0Du{hl2Xo*NcaXUK8Rcx41f*S5WL#jakS%~L*Wawh+|Rh!qYdbsWI`sb$- z=A83+$k?@s<09{Jt@O7G5}s|4|7Om$B9|p;kC{>KS}o)C5Aup$Z*wY%X5>&;E2~oA zoBhDHMOLSC^OJ>F>bE_~D0wb(ys4?k`uvUvQPn*kA4p3s4Bb47y)rG;r0u1G&%XA~ zM(sJ#J?%!y!J#W}n9hlH6Vu4nnLRh^>MB2*C$lfq%57Ql>appj<sln<Me{O*7_>Ju zFG%b>={@CR+n+?YOOu%x*)9u2>72TirQ7eIyR5)%pGE<v^{Jv=y_^Ccx&nh=&(<_Q zsGHyQx?~F9l=pH@J)P1kHyiIyo)Y}PMm#xDd4d_!Wr5eM2WM<{4h~R^bKw7AW_9F8 z@R}LRZY8DJDMftV#gyXBVDNn5T>p*fw=WA;U$vRMD(^3kZR@{q$+o+*GU8snn{vZZ zlg<0o*?+g~H+QQ|lXY3K{Xs)hUb>U$6Vu*u4g-zFxhajGT~}qYFT1e)?o-|pofTzs z{#&)*{eI!TTlPVxWhZvjvdD{tnoNzkIX$iYHP7>vev1OS<-GpSe#)|@e_eu@?cV4| z1q*hBKbohnufEYs<V8vV-{#<-D>#=}7Tao^Joq5__Cf~T3k3}4ZKvhvoK5G5X}Eh$ zF0YiOpW%{9i`#@v|1H<wVGd1>^-qq=^uH=3sLQd}|IWq3C2wXPR9TkEKP~IFh=}Ok z?RQyXzRP59j-0iX-Hc5_YrevS<>@m@%x<i64{or^p4~mE`)Mf4x^;WDmE`;7Ki@GY zox!C1yX=ac-f0JdYkqv-VUW6cv(TvMt-8Xu=J)@%zPRDI=Y8Y1_5W_!cN|~-UE`t0 z!TnZD9+DdZ4#avzsFdH(?+<?*%yS@6hqLbWvry@Uw<^<qOC>KeGn3x6u;%MkafQh> ze|}st{=Z-J{CR!b32zSm@2{6%%Bhn*^JvTS?+<rx?%TN{??$%Pb5loQfzzLg^Edrf ztSX(iQ+%4K#}d8kWvA!8IQ2@AFN!y%<5l-ZLF=OpDmk~0<djYB)m`<JugT`9s`=E; z<_Q~SSMTCC3$zQjHR_N!wE4er_5W)+H_PU-CncZTYV>{SD!;kR6BG_`I|w~;6>;^- zx_d}APg5q#Yti9J@iMvlZ`hxI7#_TcrD^R3rC$eS?<$t=wmvjXXJe<frvS@2%h2DG zW@ev#X}a%pOymXr0^1NJuF|acXQpPKJv}42=CSns0?jy$*Eia0<z>4L$#(M@9{9TN z)t;+2`?l4x<#O1R-w3&7c&7K|ow*0CvR|F#S>gI1BJ=T{2a)wo?UR3g;Ql!O?=$^l z|9{x$WgB~|PYuXut~D{-*|a$zH(;Y#%Jv4~2~$1F)Oh(BOSc>3WU!}yQ*d--eUo;b z^Ti#;9jphwSO~6a`Nrm9yn4&q6}7J>&D^v;o8??^0Jlr-%-g$u3&iTO6u(zmS){yq zYuiEoTU+*Ad*&=>eQI5Y=;>=S`sUrY*8O$MsOeTxg6?&W4Zr$61<di&Zj?zovHIL{ zhoUZp$^zN2w2j@?XI}7pw$jqlzw0Xb{9$|9)Oi9NrjK2|-T9|tl5-=h;Kc?V|6Ou# zQ_E((h%0t|x=_Gt&F*gIXF}htqow73-b?XoxLAJ4^xOLHl5uY4LYu3Z?w`MOY1jJy zG5s^YM5o{IJ`-x#Jn@Wo^YWUBj>29!4QB%~(^uY|^0DDq#oR5t<pMPvyw~{|4*dT1 zi-BQJ`g+k*TOHf|`f^@phMX_pNnAF`>AO!m)A}WI%~Oy5iu>J_pmy=p)GsyGjIjsV znG74)UVr;}=<pMx+?$Jb|9D;h`uXGS^=psUf4+b3*#9s2|5*;&&r#U2jZ^a2-rOiF zk;w11&lTfto-1g58=O6JNlodZTWf_x*JdOydVhD_c_C)@2w%4or5nzft)3?07E$`c z!otN_dcU^KnOPH$Ph~&)Y{8Xv3Nn$gmcFes=WE_RwnEjvx{62pr17H(O6D{8LoU0z z?eu%N%{^PrW_jxGZS8^u8>da&@<8!i(yFp>2Sek>?UsIzcdqdJP|)%6hagX}@2&-} zuWP-2;}rSX_VeO|4YQxkK4%bpxpl5dieAQ*>pAtxSqe7=BD*Uk*f}P?7CzXw>y<*` zZ`G+e7Q5e99+JFy#4l6I+^V!>hnNk2bYxgy>gUr_7+>A|=g~7c>QLn7*aJZ~9~@&| ztF*gBl`pi*f1bqFuX|Uw|Lt=z4^I0m;9a=FO;Lkuo3D>Xo1@OV-E01)Eh-FJu<_W7 zx38rR-cb%^vMx^BJ3sQ=q{h2X)<j6MZ@RrX)uG1nZ$zqUsSW#zTkodMz3w@eVas|G zS(A11V$a9MR9z@z7nq!reps&8_<Yfty=jkkbsVyPR3{U1K!YnL)O?lBlY)60;>E4* z++E5jl6~4T+cnij^O)(~P4^3}PMv1iXk7FEg4Bz{Vg?(mU(aGPU*)y@QI}nOj`oxE z!)A7d1rn!A)mV4NeEZEdp|E3l`|=$gC%9`5ipr!p9Jm(2^-kr(i}&xDY99P3o1SQ} z_}bdw2mfB};7va>=i&3MJLM&w1W1Iv{nwQ4ylo*@^O_Cid-|A-t+q_h?ccA+SMFV9 za%-uotH|0zPWQL(e0AJk<c8_HvoXt0JxjE0<l2>GFmr7(!?yH)kzq*%JK8rFtT-t5 zx?-C0zdi4x7tJe4vOajMBqq`Sb7eqUS(EZySw=Z|>!d5UmFK25XIy-HqWG`x?8U#o z#{ZLI{r~R$Bl*AY|DCS*_(-*{RsQdb;wdg0)wb~!Y>3o2pS{n^VS}JW{%S{W);+gY zSC{!Wz7U;p>uk?~UCIk4ZhP|8-CSdP_3xjve>~g&<Jh#w+OFrium8Qx|I5I*Br?=> z>!}F;Ri$b(tg_c;#})03Id^LwJKz3BZ6C9vC7*p7wJO+{K349~vwWLSJuB(LkF#!! zZ}-Ns*8B79`doWK_hj+s1D`o_q&q8;=B{Y*{lygfOQ^^2^uG9D7v84^(-XS)SpDIV zEX<wZn!ab#iVge4OFJj_y8Qhua_uAM`mRHp7qCU2Rs22oz=I<RJ65b=-}-)M_|dS2 zvkq!g=eoB2c#vj2?ezD@`+u7se`|ifeV-eX)|XB$$=cATd^eWo|GcxI^Lox??t_N} zBUa@sneZ{=0{_#HpZAYG(A+)G<j!s5bq5dlteGv?Hn%{o`QwDf)Y`Lwnl|q@l}vhQ z=bFa(X{X7A=fXFA({`=k@jBUDXty^1!#>$L>pz4Fe0gp<zrQ-+p8Cywt=|Oqg)W?H z_IUk?XZeg~R%R#q%-5#gIuyOOx%*A|ChZkH@fR6e(hZNT2tH7zJ~gmMWS0a}|C)9O zvk5b*m@e-8cZA0<*x_;DnK=hqi|y~7U@KwywYX)1saKW%#qu_WwXS6ybq`JI4WH$% z3))i@X?J{Q^QOsrxHj~-XEyBgnHnpb@I3$B((~Sqhp#w${BN&&>9R42!*9K#nSaj{ zmia4B?JKq~of_0y+x5j!N>`Whif-kMw<q|`qfX1EyuE$&%mV)P-=BVEWT-eFXVS3B z`V{Zxg+Et5;Cw70bjJI!@yhvzbA+y~H0_*zK(S=@j+0+px~tcoO1VDQ?e3~qi?>Ez zfBxg)cl-YL`|CvO|1n=%Vak5!6qBY(SI5Lt4!Sb&wq+m9)4W!`%H3#Evr^!r+j5C- zj|A4o?>n&Y!?%x|Gb7k|PPl*Eb@aZ+5ec655{V1;-<JH^%J4uSh%NnW$i(DV|DFjh z`?uL|>cPq~Ylj1SwlzBQL~Y@XHx%s+WQmrX^of7rVl|W4gBq?=lzxf2&bzXbIeW>) zw+|hTFS=Fmj-9n(a;|UA1=qH-idqgmR_C0)R8LXnnYH<NXZ%Ztg=VQ=!_wZndG8B6 zKkNMJZKe)wuBB{CyCVfH)YitVW!&0lSTOnAgCoubU&7p{_3*LmGD{J-B=Kg$r`B@{ z*K%)851Sz?Sevr?`1QEIeEF`^3`^oolTyArG3LuNZuXXJ+Yn#)+M<tfroz-z(^F}N z+Ew!J{sr9G9d*J|Hj^zcfIDwZ{FBC=MQizA&3m@${H}jiGK$-7tqh-bkX`e6?~btj zQtUbgZwseJlw8bsxWRg}cEAJsg+Jai2sv(j=DPTxv4er}4Xymb`nB4VRRn{!y<e<k zKJ~imTlwtn1V?AF4`;qFj;maFtMuLc(9;{=AABQVDqE(0Xy*Dyrnh5@GY_tBel{sV zRQ=%A$(P(Br{3Ijc<)|0`AKiT99eT#N3`bV=B(YOrxKkWF3Xa0U-0zJ5{HcjyO(9J zw{Tu>X%H&qed|$yqCmu=iqva58<w;gXB%EBjd&W+c`&bCIf-TRLCbUL49?5n7ITXQ zT-*O_uea`=8;bl>ZEoJQ=IZ(KS*(uz*_Q>m+3h=7j;4KGquH`->!JBNkMBi9Z8Y|M zuxE9s<h<RH)k(ddFKhZ~Ry+$`Q>gx7lEZPsegCG{X})`(zkR{~#XpY!e<FY6^mKi5 z_g%;P?Q2h8YYNZ4BQUk6W<~k(Yf+L4DKi*_Pv5A29GR#dT5r$9#?1Vy_QRRB2lux< z3w~?Q`v0C?%%hhd3s3*~|FSGUT;zp<!J~ce81{!T^6mSdFq1L*^2Rk<e<E*x-1p+M zwzo^yjdHduH?|2&iy3sgB<0*$KbbQ%Rr73+a}RnfGu`@T%aZT*#qvq<o>%u=5KlPv ze^G6Lh{3e==>|zL<?Us4rx(9Vl=)|4zDBX-%p=8!M`nf(Ugn->if^1d$AIzC%*Lb2 z9kDaQFQ;#~zC4rRC4&)544;7A+pphl7XN<8#`K5be!GfW=%yuInVJiBm2bbf_l?;K z35AfAlN;|Veu&~&CUW`V`cv5<>1PvnGFk1)zPNIwqx6YBo*#v0_0;Ac+0!^H`0t^z z_w_smyoXL}sNWRUsrhmE+_hC=zjQv#OsW#x{b}EUT^8B$9Um_q6<hKtbB39{#xva# zwMkb!7F?|U;FjJsN#50IitV=pn{~OKFsJw3l=+tG#kF=G>x7P%C;Zea^|w1JY&yMc zrfx-8WCMdmX@BDDo52z<&b_bwdhxGWU-`$!^8Yh=a%E(ep0D!rbDa1>E@E|WanJv4 z-@G!z%XY4=+Hf?y{@wIPm(QR7C_ew+@7x*khWcysz8Adveb02YkpA19EI+pWXiWR3 zq-}Q8V*TMx5yrEU+9{7XeI~l@oBUQ&xZCFT*%u4G34Zh6Hs{@|H4F=!?c?X2{PXhL zV*5S!mS1OQcwk%2m>XklebAKEhbt;p-tG9*Hr8{RNz9tXO;zi~d@NqPoFn@EA+Oc* z!yl)7KJ47m{wvj4>i-M-f46@;&fk0Q%|ZUhb5`V~E4;K&+$^^Gm(ydR%pGb$PqLnV zS5zsQTRL}U_MLYNr-gKdUppgGtne)R%*=@|zG`iIdFGZ_(2EC06pHnwwq|c^yztst z@&vo_{gRrw!dWFfmo6+6E4-UId(qKtYa(~8$g>nJb!~s^_H3n`S}ybDbGJBbIJQ{q zzW(Grcg;cOtA+j&-&?0>t`fOjc;8sJ(m~<%mJbfAHqTL>UbMn)o=>aOH0ScWUrQG( zabC%3a^PmQgRj{^?qIIZe?>Zz&T7nkAQb-P6h~^5mZ4b6Y2FJyhby(SB%g7}IB*7s zGpx}tapj6jyLv$BqHguEs{K|bZ(f%7zODG^%phnrf0pNmV}=LyStDkY**7q-)-AFu z;tx8`$oE~!=_IR0%lwt^e{;^ibx<P9Y0ZkuKC5Ij%d9^fsI_`2SQW8xo}|3&rqJ_w zTFa(PE#&sRZYRRJOffw?cTZBj`3>1Otj*?oN)4R9S)`}<biYdvaPaO?ZMlEqr0{D- zg$YIlv0d*YR~=ArVw$-#Jp9_ezFF5dri(~C|GbPtVvg8Vy+eg_n?io%{QtIMw%w6? zypGkZ#RVMQKMaHG4nGg7)pYE)YI1oOyESu*^SY$(&ngAu!b76D53Y@y$~$XaQ*~dc zq+{FW3AdVE`6fPBy>HFgA#1uL=dgKJm2acml%V&@mM1r9GuS$x;ksTsi!Dm2tni}e z`Mj`}D{l_#F3ppep=r&=7|{_hNzB{8NH!(?!knGjhDY|W2z}r1YR5P4&wsBN?C>;r zyyXA9riSZ{Au)`luCwPl%@VRaa^=kfmfUGKea~D;e-IV;`9F8`hx$8B|H7l6)pP%| z|CJHl_55t${igrd);k>ZJb&^tb8c$8!OgNbS+#8sN-YJhowB<3yhrwJhXYe&>%kR* z4o#o)xjpRaD)kTUKmS<z|C{(Dx3@2^sH$UlJKy~u?{OEA?+35EOmkpuVQhDB7VoWN zxD&%4lYgp%{iba5-p8A-RmXm*vyoeuZD9WXzesbZVT)|!w8PiRC0Xu%?#Y_3xUxg% zi@?T|hHi(fs8W-xw+(hNC45_Nczexby|p?yK>xAijFsZAmu&XUYU0l+_XzVc6!zhq z5Gc3Ic<ppU=NtWBOw&{tFF3j}s))O?UAQEZVI}+_Hu^%%I+p50z4JTN9V(b^&*kV3 z?QGa_y@KO~HqV(C%^Q1;`poHKX%FbPI2CX7`{cJNX1q;jQ?JK2@M`7W=)a_U#IxY> z*W>lJb#KM%^!}aQzu%?$hLGMtol=J-?<Lk;y>2IPc-4vcMQ^=j**d+;y8XSn8@fH} zPR-+)bfE9rnp+Xmgx-ZXw58tuyEWtSnpYPLIuqr~Z(n#CT<BNua+7+^qof1XNs(-C zo*3l_xnKWwdx7iaO5ZT<W8Y>;t~B&i;QN;s`>{M*uhpnwoh8$bdU3IK*H6k%_L~O2 zR%AJ|dF8n)nI|m&-21+d-`=EDc8*V?Qg5Hk@wsMc;*$4T!vZgLIL17gzxlMlZRT}X zo<*+Yc3O5i_`)&&OY`QMNO#H3dbUl{Wc3FAn_g0P4}=+2yJz~%yL)-BiJl$2I9nT# z>c5L`@A<nwE}t}dHUIBb@6E=#fm5BNru2GV>VMdC-c{GGL#Vlrr>x<{;mihy&}Ang z>z-Hr{3y2j&y1~$SI*)U+0}V#=>v^9rip7U4cjWK+xqM$XFYpxV*Qc_%XdsTGNCfU zB>mO$8QQ$Jm`anS-n=sl?0NLyiQw}EjWO0USu3`Ava9@3OrKMKILD<t>;^}vl(D>; zxrXZl$AXTpA9Z=x<nC}ebR)Q8+2*)+i*77Ty|S}+qU#x*9;4Q5wa8{o-NuIouMM1L z&v-j|QS3xH^{%40a_cqI&KmOkGoJP~!A|DJ*M>EW%I}Nv+IEOEw+G%{f50~Tr=gnf z_eqXNR>f^{yi%8vHPuj|wsb19#Hl+532D9CH%T01zM=Iw<M*XC&tw*DdoCU=7{2{Z zxaF4J!Vlgs9}hU^%>9<#`bcd~FVCj%4T(<Y0vkS^kT`N8l=pgP(v~HY9n`nHo?y3u zEm%2d^_>06--F^sJFY~sD@Mn)W=krr+MIe&?CK`vu+VIWIkzV}NLXtLTIbesYKQdy zx~gaO@`*#&0Z(h&hcoYr-#wUny<vlx{V@r59v9#DFN<3K29<^Dt-62u`|dLijw$yp zPg(b0mYMI$_I;AC_jbPPuhf_9@tnU{ctiH#tQl<9jx*(rFN?0=Uv4=6b)v--o&6gw zFSANuUGTu=S9MqPbkRi9$;#E2+&`z^y>i*;7*{dJ^Ee;vwNtO?UvN3icKc@k4Qt~s z1<^+q{Z9W=cyaEVS&9q=%^@%Eo-<7DZqPcC@gj}y%n#$cbs}j$Q*LiQ^NdyG(Rn7X zt>wFo*Iq6VDXa}iwRyc#ghy<e?9*AT6<KLUyT7+HePYo#J^2PBR|ey+m_u7XubZ!X zFFWqR2?_bbOznJ8Zo8dQj_5>`U)Yhm-+s@nukqJP_upUm<lVHTSGA>HCtBS*y8h2A z{UdL;rN{5FaC-ay>1pYdtMz|gDu?{vcuDkj(cbv2oyB3k4R5(@`Q{2vj*5KRe%;u? zEuAy7J;Qw0!3D=`A2cY;ec%6%pTq2)!sq{ID}Mhhwwdq$ac=(qg6Ku&HS5;psIo-# zYb{hhV0=|PAz)!x#Usf>zg{b!vhuh(|G1o%^NfiMLH8ccx+@sQTo8MI>4W{7&X;#o zI;G8Ar`WLMO!T)O1^v~tgAOPCe)s!v{;`J@9sctF;w`Sv{-P0-A#mv6A<;^|Ifs5R zymLGswut>pf<DvNixcx}#pF(&)4DlVInR7{(XE_+s*LW9sz>)R&1_Dca`@u44|i_9 z3B0xLXQ|KT==Yhri(}p}{XTlFU%0f9t9oAh)*v<2h^9`Kl2ZYzy_qsZ-%QrwU!Z&E z+vTU73w+ileiLQZ?qc69Uo+i~slxWF+X0*0*zEkR-}`>_vAG3Jy<ZsEX3wbB^;U9@ z^QVL<uVtQG-gEa)m;CYV`?s&XYW&x-VaI{`&D{rsKlG&LR<O0cU}1dQ-+e6To9{u@ z^9oaWLe)}sHCVp#@Y%T8(eF!XQEg6k`mEsIe@&(bRQwCpmZcsk{_nVA@-5yqzmmll zu{^Yj`sFH+F+XX_mK1jWttKM;Q<5+GZ%jY<`s%$Emz;K7Tp#vs>8~@tkGXFV59`WG z6K{HarflQNyBn4N?%da}VXi3P)7vob7wgj{o3AuA*RuToArtalf42Ugm7Bg#FU(Va zam9bz*Qs_MD_paeFDRP+LO~)l_+MI3^%>4oe@&gdZCUfoYwJ!{J2M4&&UXr!@pSD? zp~<OohMo+D5lqKzxUN^PJGJbi&qTj2hEvO?zFu;+{rc|@ps~O5^^1Bo&Xr!cB4hd0 z3-frs9{-Sdm&woamRjM|5XSu`DQS+@eg+H0Ec=Q+Rd>u1`@xseG|_TJz`ylEX^XPm zcggbn@>(L&wsiVmJFWk2vSCuEI+gr<zpk}QIhfbM!r!^h*f8kfoioBO+cN_=b<ZSL z={K=hoT+eNnQS|E<LT4|^Brz<yJT*w_qSN8+0=1h(Me9X1;vcoji!YzR<F};TohVr ztuQ6|`c1nYE3TQT7Oy*}Jamx%WRnv5*m|PZzU@_6Qu|FBc#I|<oWNxl{i|h80H0Ou zqC>x9*UVV^OHZb!vLSB9#FUhi%~Jn%uISa2nkE^tz1=W~PsQ=ehnEW++L{au4|Fxl zXa?^8AnV(ws2Q8QH;H%G^IalUQ)RiDxg=xOcQ?6Q{+xDHUMwmlVX8-!Rpyy>Z`;}C zx?fz??YLsw=4|VgrJs-JobNKrUu0}0eNps`m*xE}*{>wu)OI>QW#)7_%WnBk+c<Em zhIPvU7u!YMubw+gwr%)u^T-0uS9|$(t&O~pEWYYXu;1^99p6OlcMI*Dbou)1?Dt!z z_llNHP1_?p<K6Cp02k3I6ZQse`5&vbL|Zypvb6CRqukM%M{@7adE;?6<D8DqwheW0 zZ}q-Q{a{kia=kFiJEf^wny;T>!$$sJ4_XR%yZ$E6o$}|N*rMjur=2`Ltenjz6Lp{K zPN8e+qnk^Q=ssncrpf%2q42$jf#K|BeNxV|85*~IUwM;b^_v@&<$Vt$&DQ>3x8~g5 zXT7<XF1V_!H@&64Zqx73y;INg2*kMaTc=8GxE>M1$kENTe)$d2i{0OR4Q>>&^QTVP z^(K!qTQ+0bv0JJE!BY&C8^ThW&vKkPZ#nyg)xX^@YQJz!WeDfoHgWfh-P#QtmsX0h zm}vSY*R8V(T9Kl$*-x_K@2T~FlJ4BSbL{l>?;rX9U%cNvef_(IsvjQ9+dKToHwf79 zr<ZBVYKB7(T>5R3<ycN_&MQ+ZxXWg+?UuzuE0*<VZ>>l^XZ-rt$Lw!~{)wI!{@K?{ zFE76Kr#}9wgm2pXwGo`l=9QKiYTq+Cc47nb9YfLj-iz`wjOX}ldY(HRad~KeW6QPg z##-?U?!1;cyU~IB$es4|sr#-Nem~jen7!ki!n<ty|5q!%7Ipo9SO2fP@ZzlnyoSLG zKdrgE(?hgk>zv+FmJ|X0c}J$rFq-**PrLQa@)-5*?=B~{ubgF9YIf<)SMA>oUuWDr z`*V4Uu=OoXdGp`@eoT41=Vt#ers}D`7}M{WZMr9}ru(2FW<%KL-F(M$#h(4HsQNdj zxM^BL`KDN|Ca(NKmYGrNOSW_~iiQ?@2DI-JIlW@iw0^0tP6Z3CciW%h;q($M{j1=i zF3YM=*S~2_>-T**cK6KU=jS_|J)GQlAtlRxLg&o$wLII_&0ZfdDXG(Pviz$3@^5Wt znx>^yE<7JNH>Fa>v8+63(Z#r>W=sbr>8wAoZQ1!tiyP!CoeS6x9G7{gcH~>PzUBR` zFLF2=)sw=*wi>?Edg-kDpEq}}Fz;MdZNF&}J+HJbbF#mjn#>jNwLqa!&1lv%?=qE} zYhJ5VOBK(MP1_iH?R)p!qs@M0@01)?2>+1?o4IuI&U?Z?9#&n`zip}=x*%)1?-5=D z&ZDoGr!J_d7oR4^Q&tdgc-6DYX73fV#kVb*5yp_scQ7wti@)C4(wVt|ryXuhsQ&fH zOYB&VL5YQ>eBAq!tB<u`|NZrq(1l3f|5F1U=T;VM?iPA~c&@|uR*{u=KCG7g7V2pC z|K8LP(KD@c*h^R@G(@gao6UE3W@N_PyUZMH9ErI+E?G;9-ImRnP&Adngmd)-)}=nK z=@TNjjdvei%d!3Z*#)+#oKEe@fo~ibVghs@ElKd3sr6@9OmL9?L7#)YLOV~oTxe7} z{JKZ#&V;W#fjS++>zz(@Gcl!l3&{N1peH749aJh`!m{ek=AI3j3`=fI{XPBi56jQG zQ5HH|n&z+jIk8xJ)qS<zC`ZpgHRieeEq|C|uP<bB{g}G^&Z7+>Zbowo{U`3{Q)38? zE@g<UNK5$~@i=cUvyrS??_5S!#eW<|mlFkkFX4D|;<v5Lio7*O{ejo*HU(e)ac*Mb zsR^00*wP9`i;H^QIE@3=92Q7?+rY)R@70<O3|)VvtPZ$ss|hW5DP_gpCuh#uI^A^F zuMgYK%;8;dL~>t;(Teg$OFh0bPgok<UVdt<yH>w_wL-I_U2@x0zhx_LuTwn!c-0*S zKS$2hd9&x)7|ne6HO}@o&o`I%U+d(eIHab3*!qU!W$l$&32Id=Pp5u)p|sJ;?y_b~ zJO3*4Q+Xa!^%nOyEJ})1;5X{+HWGJq=aZaxxMJVKkltzaGE7~HRv#WpsTF!Xby`-c z)Ev51T;$2JxpUP5<IhXQPvb9`u(NEZ*$w&Gi)${;vNV$5nx3gC!P6<E)DX?KwpPdO z_0lgA^UwZ!=<LmKS+}d;>+_JRjXE3VpICIrlaG~A?thi(v0KX*@&upAoc2~yY2xJ9 zg<H$InDXE2zE_?jtbWTaC-r(y@f*n_JFi7<N#<F2@IuY~&2oQMG<cQ1jFnUQ7ATyj z^+D7}ZR^`tY}el%ddgmDe0f^y@2T;Bv+nHO;d<eJf8F<bVg0y!i?7*V{daw9tK*E= z&iQ5KH{xD~_n6gc9ejB=eLm9_x$w{40u>ty7af(W_&oE|oIes<4@GbI`9tRZkG;A- z>VNM^<(dCD`u;z=8~zNgYK__k^NS<4Y+3EAb}eFF<BVC{3?^@+8$(^U{$mNgHI-LD zn`6g<O`Duwr(U;ekYi(c9TT?DK{R|uMO_KoGUIdoZ@(X(%^UI4=HFrY|KC5_|Jhx? z`|pe1Kf=@ZwG{YX{++qJu&r!<AWP@Tv<kNkVcU6ZSA6{;>AisAiEm7M%BzyOZ_8&* zzBAoCrk#_mq*t<rf2!w<z1!#hKK@wb=7(gflADp&-_Bp$!FE>R>Qbh1u0`h(iuY7~ z)ym6P|K+$!{`{K4!UbU*Q6>HVLlu_Q9iO<Uvi65+`n;2G8@^uIW*fIx<gm`#bhf3= zF9LWtZLT-<=wFjH+ECo%$8_}nUWEto*S8nO86EzU8L;|ki%#ClO}X0`L$4G}{lF6| z82oPb`ChgK9lxJ0QrH*&wmDblxwC=8SNZw3Z@!z6bSPGbG46Aq-MOuH6AzpWe5bPC z@t42JyzO_c$DZlmvi-u8T^c{kFJIzWrd1!jbm?8Q#I|*9Hw{<xx96`Z&biH>o#mgC z{kq~rZLzTO!-NMbuQ5K7l2Dqwh1=Zb#g>(apT6hVC;fKK%mjvr`7gJxdVC<^*3Vl% zb}-Cdl)dcrM!#E!wU4dzsAeyo*6=B^Y1ZVDId0zP|LDE?^`QKKcck6K>#Kys)190i zuPt(UCfN6f`OXXH9Y6Q&wKHJ2w>^A$;F`@wb#AQg21|Zjw{ZyMw|n2@9KCEt>QCY9 zSL&;>4o}PpnPkRg&Li~iq64$irq~q+>O^@&u1|Pc{nX)co0RB;mvc@^HZ5MHBN9?% z?mSVI<CUjheJ1C%2b0g8xplQ|-nGn<X)a4X&nqZiqOdV9zA-gw+GCxo_nY=TI+~Pt z(7|-&gq)c>Br{l+9u#Vv+RmzZxTNX&)0uwin|ws#wI2t(IJLl?CtYF&SLVXnFf+eJ z&Fh{Xo)O+BzRO^Ww$@tpEx#44TTU~5E9%qwC7Suq)ik_-LFP~Elw*JIoC{-nKXv2d ziR=NZ*q!%o(~1a~EjB%KL!zQ=J?A4)@%y}A(`26|<$u{Ir*&U_0_XWzuk!?zWY1}R za(ETxePW5D;m@VddJl58uYbrdJBMSt=xzT0nLP{V@-%!s^}z7s+wblYuXP^&d$lAx zdPduq^E0<*`<CRaX&04zxn#d$@`TTZtulg~MXk(!WmO8Q?^pbI=-Tr}lx5cp*#wWR zEVsigPx~Z1xBBr$z`?5h<!imW31a^(=GE%wPMB<AH0jQB*IUAI$Mq&3@X|`H-~ZK! z%{P=W{By+Z#;5c2?><#Nr?q*x3A6XLL)Vw&N~w3v*Ra-*Dd*z7_)x`JCF1bRnTjda z`j_rLkb5c6n!I{XS>pA!b-T)$xNa#YJd&9iG1WqbS#lHe0}=hu9+~SG<5_n37F9)0 z$X#qXt-0o|akb6<#&8b5&ToA`cU(R8_VG<;rA{`-g{ST;VP7cf)YE&=@YN*lT;KTq zQv%CA%xJI=SXjEBc|!-s)mxVpwPl>yJzBTEPCc8x%YE+W1*zfbJ3Snq)|~B{E$LA9 zb!Pgv&oT@5o;=6I#P0CctU_ehF~d9ca~v1s#9!+Y%4Rwd80=yqda6)PMpfmP4jWsk zN<t}r@t;rn^{RP&rg1q82kieGueXoOWBguZceLNGHo&*4`g&Rkvkc#a@>#pB=bV_) z9$k8IW3Ep1%R3W#zVbe~RMz%-;pEP3wO<zZzY|bVd;5R(%%AuF)!D86_%{Fl%vWt& z^BiY?w_&{=VX)%OI`6n6>sDI*-WYy<iz+8q=`_vOhS*!p(rGV0SQ!X7eec@*O=W(+ z<fZL`%qvcreqB*NKXtcJL`B!<$7b)3>t3k()ve1>b?eOE!)<>>H~gM;>(!#!yhbgX zg6*^uZgVJ<|DAnc>pNBJ<!i!atGl-7tvYx6-s1iu&8;tv$ek*;H9W97W&gyhDY^=5 zjXT+IJykq6eM#Q^<7f9AV?MR_T!N-r#5CDxuUAs4snyI9D<T(8;*va{YW?`xTifHg zGJfaNGg~{><=RfSnZ7JC`hL#b?oDsE3k0Ne`%k}B+83#JJte5AscymfMnmgYJ#~D$ zldgSjaJb{j5EaV()No(=RNkEPlT2?X@ZZe8b&Pe&uQz;?l1ndErUaaB5OlO$*Xwsc z>-oww_KEE8N&|oMwtc(!HTie>G)c}sPg6w8R-O9%bc1bi*H=c4S*3HmXOucz>z-t^ zbKfnchBbxrQ)b3wtxQ>Yz)L{N<brnf3EKi^d6D05!@j>PvU-)UAZP8J*Q>Yh4-}ht z{*OqrpyZeG^UvQ}$ERd^%AQXxlX9$o7k}fm5R*|}fqkqU^EIY#zlwR5EfTV~_UL~h z{Y_4`_=@X+Glwq<MS0HZTj$2o9KF!t#|1ZzUuCRU{<?m9EAqy~?d$}`B&HWL4oYNv z60D6+F*_S$zB63U=6+Pnmb6W~kFNRrP}6SDz4h1GK{FYuUuUj4yN*|P@sozyRV#jb zschBu=y>khXUu=SL}GH@jCO;buP)6!3A-=Pc^u$ka9Wt<E>laAI#&+^<KBhUJGSdb zZFp$qyXL7Jv%m|dtD%QGop1TMhOuqEyJ6F;0|(8Tr&ku&P5!la8DC?_@6KKK4hAsq zx!~CD{NTv@<Y<#cPj_6en$)~)?{lRs5g}Fz2VA{g>{!qFA~SlP<eCOu#U+xt4KA#H z?j}xFoZ7}OgbtrPyevlcklm5Uw2kT0f5>e%FwqOmE%>zU?ku(4mP?Z7%w_D#KHBFf z&~S74>7|OvTds3_W=L?0iEO!GWpwmH6pO>r`8#j$m}{Rt>b&dpM}PTFKAy}|tTQ_& z7?sGyMev`!*%V_h)WtJBr^7W#{ji9YF>jdC->($`+sqHmJa+X_>Z<E$2DjQDAI%Bd zduo^Af%$4_Jkv`r{&>H@HSmB#jKcqXIld`#W#90!yUq>Szs5Lry0Tp2q=1>nb5^{m z{=3qqb$9avQTLrEB{|+n<~+BIU_U>JyNt18LmacCmR+%Q*4s1d3Np5^?Vhjxr8?cS z>doFI#}DvMXx*Pa;j(Y&yHs|@4S~uwFL>Tq*sV;yaP554q9XTq`Y}_AyXKvb_@1MA zeXW4}*Q}fvc`vgw_vX*Ka#C;V)5PZq$$G!?Ek6qcSg|z=m)Zx+-n(d)Z`nhG8I?!g zM+DcNPf)xg>*zDJM2B&P)ofv&Nvj+;RBl-J<BVtO-G+I(44W!MS^sD`a^GB+BDL|~ zz6;C5wsN1@_5aMSq}g}!vfsM1oZn+=z2A60|JOY?PWM+#V_hodZE&O9lcV{Ot#(Pb zp5AG;DO-}}HZ?S#{Am2*v(AFdW0e6P=L&Z&eY=Xy^hHR}*PR)%YiD`CV?AC~yLZu! zw$nLJQp%cVT>epeDZ|^lv}kJe6RXqyDqF3N>oe#7_@B?|#d`Z>-QVf;Y%_0!uYdPQ z{{OprLH%v}r|T~Mp?u+AWY*T{dkWs4a>>p$Vb%V1mm$=5;nQm?HeEj^bSpu3g>sv` zY2(Vb_m+!9SO0BV`|qC3G5J4rZ2$Q`?qTh||La<LQpvMI0p{wr43D@TbYJ*+jz{Gb z!>)68ZLYgbklk{eL0|le(d9jJOZZ;Igc_W2w@G=Ya6_x_>*p)U8GGcXGPB$|U|ZPw z{N^s!n!<lFroWj5M02Hjb}V~-N~}@4k&8uIIG5k}$s0X~Gl!pFbehZ7@!_2rk5Z%e zp`ZS9etV@coaZ}dsQF#EdCrn@e~~LsU4org#Lr8zHEVEsemQr~j@7qsEnGIicu6IH z`<=@#`(?N7tf_LYU%Vk_qSo2Su)VDRZ*RGq^S|6KHskd1iMLXx>6VFqsGOsqnP$AS zzHpEHl{a7iBxm(KafrN7Su$0jyQlH7$sfyU)+=(he39L9K1aV#ah<l2(w)#(Y{hf4 zzUKa3SNTt66LUyiS?>Iozf(?6y10|Ia{B4a+y2}C)ci_K_>oh*fiXXK=K6Db>(ZH+ zY&jIxebVk{TCm!~_xvaJ7t^B{wx75r9x1y{IBomwQ?qKOOqr$}&G^`6+Po%nrDIbP z49kLUMXFDXiF*3P;h|)}=Dl|}CjFDjd8Zm7cH`;&S$C7!&YGp4-lqR7x+5Z9PkT}% z$2R_{Gm<X7RaA;7&D(LNRPchw1VPRYrTt4U_G>>h-ZbH2+Sb}RzPUeM7|vkncvD$# zQI%H4!r<WjG4vSooWt8zYza|iWO*lCGD*xkAi3dWr*N&*n%Ax0XRER-xR|s5e#4Eg zAKf=O_d6yY6h8guRC~ea+Ul!6K2)ub%dlj7$Y;4n`L$bf=42n{m>X8y&!2S(F<8_H z%dW~y3OH?6D$IZElqS3DYVW<Vjx#s6)LNwS`te2`4^0h=mS!ssNZuWI|L*_92g!o7 zY|h+#rY?I_^ou>~hwRIHjg&VZl9;utcEZIVH%Yz;n}R~w=NcI``aiL~zw+G_jne4? z0-Gath3ykJIpI2A+h{@Txx*qNF<C_mWZ!tJ-rL%>p-G(epWyC*pujs(4)Vz_n^xX& zUvyWC+d=-`pZK)mB`>7TI_9b$W^&+t{n_t%=4mC{-1_y2t_4iyrwcAPPq7SA`Dy&U z<mrr7rlhTflI@DJ(~UHD?}<y|Fj*UZj&<LQC8k@N_-?va%U`l{m$qVmxN3FzUW3;^ zE%yKYq|+WXZ?e%HvF}Q)vDvFR-@f~+&d_*nf#Vn3@1MSPm6Y{m?>PN)`R1gBC+6uk zc5Pa`?7%a{2vHgHU}ydt%4al+=9X}j8cxx8>UCqe#*YAlqoybC-7?g;QdM5g;M3cX z<hAA$M_22VrU!8`kIlnN?k};@?_R^ww)$Om^vt?rT(Rd4*?m73B%E+z-t)7r;d4`V z_*=Pb;!_ULc=x_%>%liB%@>LzYEJryU(TL7t6xHuCF*B0_sg%>4l}-cal5C`>~rhP zLq;n;2F>JuAAj4D>wlm_Xy1mamBJDttds67Ix`{beWAV{?<c81x02cme}6?jd6C!~ zax?0t66?gJbDwU|jd~`^@GQ^u?ny@;MwXxL9~POPR$^<teZ~K*`L(FlbH{&H_L}og z*Yyw--9O{z(ldcq?k?2L@xKxH>&efFvXi3hvRYE(FT7=nS5MIASg@%!?Q+~RDOGM~ z(;bo=E!P)4tMb(P|90BcTG8^){>Se=eEv9M{|?3@`X>dVpB@owiu(MGqyA-ho#wlD zd5^BT$9LTSyZpaF+`gKPmQP+!`&qtvKgZ_9Z*q)pm}>|=&UtKiA?7mE>3v!DJ7vzj z(Ot~=`_$7nIj<GY-|x5Icl@~gy}X(KdH&f~-!b}sdfLzb!fgMqubDORX!wWsJTYwC zzPe5uWtT}Pbv%`D?znc>FyK|8@~bj_;|2z<2NGL-xq4FHUEa<=Kes+ah-r8DVMjjW zb(QP$S=%gbL@)|1uM=?i`N`!rcb8?e)tr3Jp3sfO3SO4SGctL?uEu@#6I0y0>0E`7 zNw`3#(FAUz$2*SiYB9bnvM4*HeMdCMl#jd5ed-9jwtREO(d&8=v#&5I7`Jv#ve;m< zLhp~QkminK2cMO2e-rANx&3S8#5)Q<uDhR9t6k7MuXNI1vtV_F6FsF7k<T{Xwwfw1 zP2yX_w%c2(F0H*NxFDi@`7sAx?zg%P*7GMWd(vHa?ckJ(px-afzT0yA#@D7-@BA}r z<F*z5I(wV@RG7gzhT8msZ_5=lnLRSo4@{p~@_%~4wLL4Y%I1D&wPR^i`d63`oijP% z@D}x5=TCS(KkRfnZmU|c?V0Zz=da}2vD)#mD5o@&LRyT;JmG{>D`MZfTnJNdstKP~ z-|8*)RK0lh@&Z$L?$k9I@s$@!XC2#HXuIf)_bj_l{Sk43Ec2Xi>0jgGnlE`}(}Meo z(Jw!)^b#m56E0|HF8RsuJG?Hy@<ja1V^vCe&z{6{)M##auNZxDlG0Y|W3zM&Peotd z$@%p7YsF`-=UTs5IsLoQ9`N~ZO>INUz1`E#<V_A%Pp!G$t8AfLn*Ld@w&s}b{|{b* zTXYl71~IKzecF=et#445m=o93b7rA8b~l+^>c8XFZdX5X{<0#5>r>k5`hQHwVfl5) zWQyqCz1o{URWiS3I#T)N#N9eG`N|t{eq8@b6?h7_l}=r}jp^k%yLG7?-lmq)p<8ZP zHGO}0BP%BBX6D($+pKPI$Zrsyd2AWC_6vz5x3gN$_?W)h{;XL&XU(GrS(hYtF=?i& z9r=7kV@>P*_zRn-#^$K8ykBg;tx4w6TFEV9>8}he&sZI(oIPn(g=1KUL+R6n^ZJB# ziF-tDUvtsj+Nn`{-r-}fudTYbU0d@F^UQBcv@bifm(SO?(wAAxCmNB;V(lny^?p(A zq0Yw=exW)XHP=n-F0*gg!l%9`BTQz+!OHIe$rau^cyDsNF*(0A$~Er1G#`WS^EkH$ zc2x_wTe?&3W$@kzJoLW1ML4<ZVz{{9QP<Pnjp3V$9?WnLIPz9=1&i;+#g5xwi%HqE zz5IVdLt_T3YoPZW$0;vc7aCp^R_Z>uCN%KDr#`9ta^EBk<%H$CkK1|hxoKbDJjZ;U zY+&zXuNh47cO4GPIc&%?VvY{Bu)HOs9DMlt2G!<SrRDwEocz5Edygk*@R&JXeE-+( z+A=?_+ZnG`JV@x>JH0fY$tqJ@#X&su^>Pi*DI%XW_kFn>-!*%-W?p{Ug*M|KGF#U_ zU0}H;%DGqa)0(4lO?|ta!&%m~%~^G4dq)4P@(nip)kkdYProcKJN^3b+qkXbsx=my zZk+fccdR@>;*EfH>8;le=OXXFT()NUQiaH%jlVw$G$$^r6@6UIbY`j1zWxO(G%svh z9jjxSH&<)7WoB*hn`K42f1X|csO+DG-K>2=@s%H!{<yZhUS$6I`>f73=S{v$^hjLu zR-3O~x4*KuL;Sn>$KC&*?7w65|GNP9|BuU~r<H%S3Y46{Tz%X_LUL+fPrBgkOr5%G zH`0!ag*D&kt2kfUJ5w@~CqlUA&yTO#Qw;aiepcJ}^Zb8Nhlb~ulWU&euHScee~x=< z!jlK<Ij%gr^<>UYk$$i5dg6t%4-~)AO*<+haHA-;DQQm6>yCrM^#u=p-d}q>aoM%6 z|3Y@Up0@q6<Y$fawQDc*I$tH}NIIAL?)tdm##RG~>-XNj_WgY5_w${ere$+k|1AAB zHRMFLM#sg-ECZf{r<bIzE!_64<J7;Rj|*&XHAeo~^Zxei+ZDS7MCNQO&b{@9<yycm zwSLx+zw>snybiY5Ik7r(r_ODuIgg*MJN8-luM}HK=JWaA|F#-lk<(+FotAMe<?rtE zJ3@A)f4ki&@H02TdLPG>&XVp^u16B)W%#QaT;O9c`*1MK^x6A$uh*?HKEJl%K?e85 zSF<BT0>2qwNbhP~{$StIl`&7>yYjeA^kQ(^8NjjN=+`L%1)cF1Z-#S9iE^?rA6enQ z>zq(p;4i;j-_obuN_->KapF?%0uQ~JH8SqA78md6?zVOoxt+kWQ)v6{9hVs=$E1|q zU@PXm+;QhndGz$RpUrz27^1Fi5@|ViI<cXZf$h-0!!@REQH!6NFfcX=<bKc3eRe#} z?8oX-qwucxnL3V4OvjdO?awuO>9e)>;+)34Cu^S?we8Ja_m2O}Md@2buLXAQeYWYS zv_<w-vGu#&iM%!unZBg9Vz2&seue|p--_-QY6Ljz&WgU-S$E&q`^%EEmbVl2dGe%R zhX=~ful3aTH#E`-oBYy6!#&#U;!@@pwLLuXJmGWw0%vM}VJw)Clkua*;?dt10n>8x za-JOJ$mnvraeW43`nPI*D-Q3{0@)=$zPCF09$drH%OhL&LP+AsfrS-~8xtcQtno}f z(7E04anzO5+wSah3b4uLdpt|`ikKza%Bckt4!!*L^XZvs)vhaQnzWX@64Ew1yJ<;5 zg8I@O-W{6z+gCj+(YY%<`<%qp5KsN<HV)hm+4vZ<+RpDuXA^SoGj^%%6S1<+Upz@N zbLA4}gJ!)IT94MbWroZC@MYLIZ}FKTg}J&aCk{nthBq)BU88X+;_02;)A}ScuhcRB zeXkSCuvX80R_@G*=TD1T3NJjl?C|;FnKxmE%?b+&<{t1{dtLIEWMAC6i6M?|vpr>N z?yhG0n&Wt!A%e;Hg-2N8`xBX4l6lL{$mC3ZoS;^*K>CQ_0jFO(zX+^)QS@Wg=Q8{B z-bSNT?c<AiS5*pUI69s*Xt)w~w>U5?uJ6c#g4>b>3YACZ6<u)aTEMVQOK`rNRQy}+ z+Y|LxW!;cGdo#j4!F$(Yng5JQ7Ywr&&so@a!D@<U3d8yHA?%YQ-j~d&HhgiZ@Im?4 zQ_pr;YtGz~<jYv@k-jv$|D>kVH7>rEEMs=wDR=q1j+iJOvXt;V_kr!0!O?4RduuwS z?zXqH^YXs_xBQHdulvfm*K6NgniwtrRN&i=`kRl^_kCIV<K}$ds-L>g59l(?y*eS; z=fgw=!B(Er`_3mAy*nJa;I&oZ^uUY%f-<<b&R%zyFOB!)vWXqD$`7nad_Sx7(p>MI zLT9w9#kL;t{(HxVt0{SH`Pu2;tYuzFTP}2+xl;PB{_EqKvv$0T*WKtPXIdm=9Vy3B zd6!Lxg(YKt;-51w6eUV-{HwilZr1Lz>;C=;-!EZ*tLg05kL}TqD(*J@e!DKX<ZF?- zwdL{C;oGC1{jc}l`af6y-;d+@+ZW`7nt6Yd+Ip;HiuI<?npW1$>vpR>jr)7%Cg0lr zTIXqZ*Vfcc3*M+3-r{=ZL-7nbt34e5?CTo$Z@%`QfB(<_J;&F)ipqQRyZ%%2+g$OR zX{`1q=4IBFH+_v=qqBXoOoMpSf#{}`k4&Z8-~Qx%8+hyC)CYnl^?dG|7z3_XAG+zi zJ8`2aoAR4?0vuN54Gwop6V%VXuw>n8-t>*<jClG=?eFhO`sT78{(7#oLfZQBnwH%m z1qXdLRf~nj9_>qhHs|%DMa8}|;|!j5oqCdTcz0vS-AT-I)Fud@UvyxrT*<w;<_rn< zuH9DbGrui4g_EPx)y{s8<MHV><&ptu-G@$FggZHW`FZK_v$D-zpUs@EMV;Ji_wu{q zhG>yorhAqA{8839jb8Px&qbOZ&1`tJ!GG6to_`l3m-W=jroEh+I;T84?Q`j}gZv@t z%G(}ak&IpE@anDIbk|hASe_|L|NVJ1|1{p;T>D?~>gV~}pMINmfB(7PwTJwpwuZ$N z6+N^xdhs~Pd(qm*fn|wKxA#r*nVe`ZUCO-crjFN<ke^2$^He|Ex}3SRVcYLDZ_TD% zcIJ6_{%UHg&H64^9@Yb*Q_a4fzWw51*d*0mr}8*@MC$4TcPH1@IdZ?fetWZq<KzXd zW%dUx%eaiRq$bC$p2vN?R@m7_%-{I3|4E_Kw{zEoR?S%J@v^=9BGc_tri^6)@1~}_ zI;X$l@6_kDM#XxnF>GEN?kVlM)x6_6^J&Y_ZOyuz0<W7?Sg-G^5pK@Dq;&Y_{<o)} z{?S}_x>%)E*x#qXWLm1oOV!$nz44$@^Y^!`GYgC>cR#v+_Db-@o8F59-(5E5(+<i^ zXRANA!e_3CPjGct)}3ynIS!Y4ueO<GN%H0Lh&d$R&8R#6s3-7pqRqlfv#;wf3XoeA z|9G=o%WUJ>=ajS*xaz*0oqe7$L7}AK;+NktOHX>fKeecH(#w0Ba)O_}+3#|);J5be zIWa;kD-tFw`X=L{*Q;>rn`8BYqX~RZYM=c$Xt|oJ?Ofu*O(N=tWFORs#p)j4@S$LX zknY^I${C*+9ajq^1*M)@T6J&z>w8y%_z(86)K7|>z|;8Im@h2ok&(u}#}x<Eqaxj> z7Y9t&PWO&u%yM#0&J>Ak>=CIuooMZ_t$DSdeD3~VA_w(O^WVE<`Ofv6qerkKM`doG z_aW1@ta}d!E8e_Pcy+pI+SU~()~xaHKPJ<h7ZQ~}efRF)hn_{qKK^|EpUJI^on}gX zj!&0=GWsmd^Y3U_gzOFD8LRvzCKrFbakR$5?BT2z>*ifp7y0JYyb~8qQ>FO)_V+yK z+;Z1srT-u4L!p=V#UJ@|V%~A@&0U2T<BHt+`XuKXy*s>2hpjof+&!Z0zIdAWjBPr$ ze9sTdIvlz2Hat75+Mc=9R(Z|y5HtI?{<1T3r_T#`Id?%{gJPho;Fhpe|0kcT7fxZ& zFy5ECG2*gUXdMf$fXeR9g;M)&G0r&@;(o{eS?_B(kzY!IzE_jPIy&9<)KvE0`k)lX zd`g__IP(L)X&yO|yX$ssXe&I`^FWaC%JKO%hWq}Vj_>ogtF(M(v-w~AuS@5TOyB=! z>W@p)_wPvk(|3FR?274A6*ioXeE-7wM*0UYNzr?oUp|jwV^BP%#&vtowQrZEDH$~Q z<=;Pe_rd$$8z#GkFYuLNDq8qnv?5Wr?Lzg8h2_uue;e;&dSN$jskVdJ-RVg)F2DOw zZJG3gD|hm>xZ>zlO3&QoJ!Haj5^KNgN&Ons{-FNr^!mcv`tdD&j2ed}Hm6#gi~qB7 zz8inug@5+d3>`i;%UU;oN~t@;yyENYhG{#a#lp`&s(g4;`Rs&)QY#puV#SVr6zjOV z<NShe{SWF-|Jh&LlmF-6{+{FJ-gCB9|30_9jwM%^O<9(&=$m-?w#_N^zw_S8)TvKB z!@5Lb#mtE7^B?W{yQaET?11t28SR&Hle?|=$}H+RXC@`QF+VBBe*R0pdVMadAA4hu zO*YAyzDQz9xP$qoyRokw)4hei?zpkfwP)L`gAR<({h!{yyGByQ;oNS0hTZzR!`2;S zF%;M(q`)+}jq~K@?GxPQ{!)GS<iLXE$_?K357Op6+R|mn`s&A8Ch5)(rh#X!cB<ds zoVK9VsDWpRoZ^nK=&Ldj&kv_2y7#qu8w4yXNk7umsCkaL>p^QldAI+h#uW~xTk^X$ zUERi-*L>@yW#gHRGLzl!xnIA@y7+REfi(LH&x9jdKO)REUeB5lbF=1jRi#>p-3_hm zo^xsv^X*uCv$y`cpm{@UW<$Zm{hZYi9<BP_EU~*Co!D2Omq?!X+0Iz@NS5xidn|k# z_dYK2{{6n#^vs>i-E-L(N~GVNxEyMBvHIQm_6^6bXspg)+Pa}U@5%haGer{iw{!S~ zL`#Dn_%HLEKV?c|#<x}mKQ-Q8ljjAi_WvvwJ*+zaug>qS0ux>(?v4@NpwGPGc-*U3 z78hRFJG$+j^whaNNVRzH+iKIZ7t+c<%v^c0{r#u#9X}!#O?v!ACM{$NuZw&4g*s*F z_m#mjS-!Z;`cqPVZe#9`4^{DT@(c~%-!A3Ros;o(k-poWpKO0l?pkZ3G2>}Mwe+|1 zbEgQ1)M}WQl!`6qh@I2&>Dx!yFPtvRm#0gZOq*<Xc)>2N&}9-2w2p5$dEkVgrti$u zG!|cW*KeERI(Od`Y>V)WJ1#k4(fvr-S>Kz)FO;WooQ`_3WbKKF@^n$Dl{4S)d(WEr zQ8-Nb4WE(B_szzSL+#U#iS^wpy0~|S)AKbJ6VrRTqkr`>XtX7tkdIkZp1-x*q3Ghx zD)9@!ZfsrWQ*P~L<dk2r#O3fr+dVv&&Rj{izF1e{z2m}*=g-xq+B`{L-h9lh*k)Oy zX~NB_m1}}!-p3v9?yt{2-SEfLX7A6%Z)fpO)H?BI?dqSeT=q@oZ2b39JXN&&^;_Oc zB56|`lcyC&|2%r#G&NHHb(QJ*<<FlVKWkopTFRC6@Rx4OLlK{Q8Lq@cZ0;zFIwjHn zKG4DJ-~JafeJ9G8Jl$l?nb+R7hWBOmn*Zt+ErsW9xo=H=;`nCP_n9}hymJm=>b-S1 zTR7;R?3~kzC1Rq#A5M!jNZ)(m;9<w5N^W~29xgJ~y0zw{{N1~nAHHR7D0xwS)4ES0 zmhpq=7G}Bhe{souXYQ!5_eK7)wJ7M=-W;(;RD|K7QBPWf&h^7*684L*%8H-8JF(1{ zX~`CUo`4AEcMhF>34&|4`+fiT>MF01?sMJQ)Bj$pOy;}A#I$tA|L$k3O>Me)@3a2= z%Kv-y$07Cg8`JXN^L-5e|7!j5^?!d|f1Dlv+j8yA+V<a759_~nI9k2`Jww3c$~=x{ zlWp~U)4ne#I<tEH-P3YMw0^w%t)J|`wr=Xh_us2;fA7q8l~ops=_~*L_V;VO<V)$t zer{OLKK)_I{_UGZQjZ(f$p4wmvoRpy^!Z4Yg7>#JPEY8l-}W}U)L3xt_Ridk1<P`7 zo<6N=_xFw9!FqY&pe@^v?h1Ozyd`Y{@B55YbNL9h?NUoV?Ag(hu_(>GUp7H|-R}3h zH^?>rufFu}{=VM)KlkMG>g|tIZeDr+@4w}XV<Ya#+%P_s)%>;n;0CY%Dhxph{hL>X zeLKEy=VOKCm-oeR<e5z8DCA49KOo_8TQ$w$O=QxhhI!3zy=2eqP(HrubEksISCcuJ z+j74!X<J!!H-)D^tX(e^%)rI=<(!POj>uHchyU^<mrP%0e643DbCcx{y%p2b%dT~{ zAL>wF^YF0G#&f(XPGV=LNB!O@v!>v@t*!0xkI&5bj(447h&j&AW*EBE@aUow>z4B0 z-14~0Z|<XK1wF}KjPvw)Rs=@pExZ+K?f!i0ngZ`#_DyHDM2dJX4f?IQ=4Zf>oX5Xx zGyX@$Y|pltYEXDG;-Rfb$xV)$eOJUEe)65i(0%Rwnb*^vX2pJ4y?<wV!1nmhpUX{5 zC79+$>$Qi(SKnGLJ@0o={q|$L#_uiJ-eg@+*s<#K#q4tpQ%)tcsWEIz=sT?YZs+#% zskgox3GREY#8zeJ$hOk|L%znE@U72yy+rKn<-A0G`2A(sRTIo}G5hyIi{&hLGV3?_ zyzq#g{kn>|b8~Hh&gUD#iMgu`s#})^?o(^L;q7xgdR^d#0A8yzoBr$l&-&w|{DA3M z8h7JKw#6^G*T*hRc6MLRA(5^r^{nXYDjmlMDcAnoE)Ny-Joo;TS?h%+&dg+<YVC=K zoTg=zyU%!i=`jEL?~fpRZB@%|-7?shC4bDSNG@*0^mE&E9oDbi;k~Lxcge)}=j@M8 z<17EZF-}ZqZm1B8;C!_&F*CQV@qAnt=AhWmrJKj)&3ny+DY8FumQ1gm%+a}FQoGZ0 zZl#C*o!2B=lX7p<ozsh++xIm~cP&5L*dc3dd2pub#vOgH4=vDiP;Wc<jCa3vZ{fGS zdqs8^T)ey3cJ6<ze$n&}nLR6vCUyQeU3sYDLc;c`2RdbM8m&JSWp!KYxjJuts&CZX zzK3CEmFF$RUAM;QiQed~b4<7ySYOqr5&kwIB<1FL|3xv;IX<OxuEjcBvv;3b8t<^n zG1+=j(O%1h;JY%{Vt9`4ew$O{B;FNe*LVNV>3Yq7_y2!x`)yyB9bISZcK?^2fXmlA z0jks49489!HMi~gmOJB=mS&QrPv`;nd&Nc)es31b%+-~>oF47}V)GsGF5ib2ioWUG zDiHY6YN7o6&^yM1CHAs*n&0|U0yQEsSD({nyS_j%%#!iKZ437)wkN!#<{Q8Naj{A; z)cAqOSHX{K4!_hEQ$6tgUDn~13399M`?NE@)%tvS@zQX|3Aflkgh&3C{Pk~1ub%kE zGLZ?9Hv*WAOf1<9R1=)*Z{M<r(7E_cK}bKn@^75&e8#PJm=C92h<xx>!o~3Ns-Ea| z|4;D=A1-t_dE{I9w&hbcm3o-0QqG=oy=v>-b4}9{et+>~K6-GStEM@-vg4BJ@^=rN zo8$MqqDJ6=fR-qe>&)Vdo6Z}`ypd+;jsJaX`s3+!Kc6qWHE-|1|L5-imHxQ>|GD^P zs~vCSSDlR4>y8RBQnt(by!D;?{uhD@?lZQw+%CD!r@Qu9hR&SA?>{QlroOyXX>e_i z(Z<;Sz2~>2-jL(I+S>HVc6Y4lbL}_YGbER7R-TgiWqXU=b#{-mgvIZ^cW7Ryt$tYe z@uBV7*hVSGpXLn-N3Uyhc_n&;esX#%z*TZg?~3HBqQ?HBo?^M8xE=GWBeEBE6gpbl zy?q_I;8juD>T4_v&t{hCMzTD7ASBEF#Yaf*%Vd+c`CWTU*Mz72TVC<|+2<eA_kaH_ z{iEcb!<pck_rL9zW&JaG{rlvSg}ifE7d^GA4)fhoDxdM4vqS!v*qi5Xb+pglV&BOA zVJY|N6wL*jSFsq Tb$^VvON%2e*}OzB&*&g(HZ1hTlqGi<9`_|Ks%@xX6R1;6!n zo_aQ+cdu{p?LQcFc&5^kg&!ErE2hOyJYT+~U&yy??)S*&;TFZeycU?U2ng&~^_a3$ z?L}DN*5&RmgLrnIEVSleIC<Umx3Aapm6nA&SbOE?v>$!I{8c+*>597y3)1vskBE2w zEWBCMef#m5eJ>tX6>buqEH>{o{~R5g?K2WNE@UnasDF2aRc)t6f>OnO)dHEIo$8;@ z?_(2oyzoDA+J*(P`&P%?oc_%wM}z&P#M4vj4-}Zj8E-yxg+0Jc@_EtW83)VSayV;t zTAv9lOyW4O_EycKxOY=+Huz0=xAe}7bl<0oHeZu(-1p{J<0di2<*z@@{IjVuA;RM~ zhpg9=3u)I`UPP@?`gFs+=HSMVNT#>XXZ~I&w?tUsfylaLLOgdD*eE}dnf{@p)Hph0 zx#70nTW%-0G^Yz6-Lv<Z(Ltm8MiZNbcI5W(`4~+-%YV8s^`%SJ+<Dux=WLPV*j6pR zk^AiAYX*OlHs~6<^(WV5s>iBDCJVfj`PS*%QFLSF>x%u)tz3oH2Pd!LXwgaQ{pFPQ zdz1B)()B@yRrfFUJDrw1^F-D3*dGtS?%QL>!0`U&=_#jz%8u{z>R2g~zQ#<r_^^-t z%TMb(Q))%$yuX;$$F@mq+oRe1d#;7tT)llo*sZS<Be!#Gz5OTS+7bQi8EqXpx-#{@ z?q)}8_FQ)TI{o0wqi@r8%@Im{m#{{%<;p{rNP)H-W=DbD$?I=v+MKeG{%qeT=={fh zZR)kn$3Eytg-*Y$A?CEa`SqF!%-i%nZrya}$h^A?icjsbTDaEXT7Kb%nSHKLZ`(<U z7f4Ceynl6!C68^vVm^L8wl0l1CF#oxwl#ZH)P0Wpnx<ODcwF-PGpT=y3`^#1DqXg@ zLCT;a)#Y~iG<U~N4wh~+cY}>jjbBC2e^m7E@{jlbZ~sr5{oMY#gziS|sqFuIe|~$< zG*e#T<k7A3-BZ?Y6nij#p5U3AmCCZ_{NCqozMS*7q<aqUIqsF`OX4Iweg>Gy?&@(+ zmHl3N_jTPxxr{3}wIdEH<}e=I)@*UgBxV0EJ=5wZ*;daNM0+dgoLjucPucnKln{$v zCe0alv!d)%%M)ymbLH$<?!9B3X!RzG8;cG*eK;b;(3+~5D#7!%f8XWjUt1O$KK}gs zwPaK4P4!=role!yo}Y>ic(5gXDyPJ%xEo)RuP=_)5b85$o)x0}Zu(3g747$@k9|Gp zQ8;b!>AqOYn_8V54Q#V@jh~7i>s`unx#XtNfBnMV=a)0N|M?rT*f2%~m^Vc3?cUVA zlU@GN^}4sOKVDt`Pv_nL@cOT-Kl=awzQ6gvep5D<<(F9-4!yA1nBP($w%hw=y}W*) zRdu)Ri~HV&K0D3t?q2z)`T85>X9+Vsc=hA0cGu3Y+4b&6<qX~jiMyjznq33daGede zd%SCdnMw49LyNdtq+^YbNO7<qUb>>X=gkQQrY+Z-RFe}P?_rk7$o-~t`~T$c*B887 zH~T@P;fjB}Nqxt%w!T!+SWy{xwnlnUs<p>Ok(jUL`}F@tZ}JoRVR=R;)Uh+~Yr3`M zo7EBt_dJ;HTby$|xc{wr<f(7$|KEIn{PCmEd4K<pbKn1a`R!U{?9FqAISp^ag#%t} zVqWt$v@y}(M1!uSp~JDrrGLB2PuOw3&|Y=>9h+^l>F$`x!YlU#aM&A(&DLfT-S+a) z*ByIiGU|p&%RTRApL>hR=7;p{Fr{s?B_cXK8IDbuep_I}lby%jl%y}{IJ3p8)kvC8 z*hRLhZXtsK<6Q3jyEnZ5dxdXFMEdJ(|I&7EWuCV)rnG2b*KfrW8fRwjOg#`LdxZ6v z+V0m+tWFjyd;8Cr*;kPEYu9eKY4JDasdenhX}pv^zgF+wm7b5<uU4Mhy8e==+s!Rc zE$SW!WUMWeHJG9Mi8*Qe$yW>)c8fmby|6=WpOIq1GH;8|b8dc{eC*JnqijpMoBn5h zzsy#VyYS%D*NpwI%j(=S6`x4eb;T-d782mNt9|Z7@f*%%t7>;`ua{-e;;$48%KtF8 zl-ncO?()86^<k`OiEC}*Z$@V6h-`VBqRAtX%qeu%bMg8c!8gQDc0|TDMS7e)9^>K9 z)FbwD{v}%}h0_mD%sFQkcT>)SQGUx4m&z55qJOQ==S^YUz{4)9x#sN@PyHVcF2DG3 z^nIB0+YS6njHMhTCyOSuA6fGtE=p!w&f+IM4a|-fx4s@^^4lHCVN=$SYre_X_*&k~ z8=C5lXP55hEsL75^!q|1hd1d>`Fnj2>ubD9nD)9k{rAjoJ2?LQ0j)y;bz9%GGOV4@ z*4&`3^5VJ3vaBfM#Rn7)*T%ZOKPY+EU4bdt+VH^oPL<Vr`D?5$=G~sEJdG{=l}*aE z!1N<J)tT$|&%bbcx5HMe=CZGA&Rw&~4t{V;hW~+`<QiXPX@~ZmFK14@dNlEH1E<L| zyA3ZB;(zY_XLQUl{9wz6+HWpKvzsoxlPdlA|F^%zO1I$4o{j3|3lB~!&i69<ulO}J zr9a~LT0!aL=Ly2aEXU9OJ$lpqs{yB>?}4W|yOti^+f+PbT1o7b#tX50tr1F3?yhOH z;8CA*|MH>8D;Kxvcig$$8M7{I))%Fs9os&}sr=itDD>RzvmgGq=l;>3-Jj0jaZrmd zVxx7}vAvuhHY{%3TKz0WL2uS^o5$~iO#W-R&h%-1wlTbCugJHVOPP<9o@NeAI1zea z$>m}e#wG00Th{J1cKu?^)qMHV*Y;OupYBNIIw!Kr<?IuV2jz`!-|k<VqjJ`8CeLcu zMv*(c&C%PRN=<pk#}b;|*;EmC`SH!era#wRe79zCnC;sI6S8yK7SE_Re=Bua<Mq|^ z8@8V*cxX{ku#4F%b&;(7G{cI85AJRGucUs_{`PgHmi{H$6Gc3_qII_@_AV9LYtir} zZo}EAV?TUnKQ4Q@@VjSWR4P-&HQk6A&&2fO>Uydz(x3hR`192|R<E7^YeHwXt@|*0 z|Ie>KPED_uD*3<vd;Fify08D={&6RjJ7eCq*C}Z~)o)A8oVJfU>(;aaT_GN+hj}~h z3a#9m+Q7eK5>wQ#xl-1#o8K4inp3oYdH*WW|9SQEi<(Nsg|>WtWmdlSn?%lfzP`3= zb2N|I@~k_yL;2%|EY_={_k&**ge*ROmA8}eQNsQUWf=!uBOI;PMR5IQzK|KJwyu9# zx12Wf_EP>uzjrry2tGKy&P>d7^V|osp8P4ynep|0!qUTKvzA_XtF%CSjdZ|;yzML3 zSHJunbN%g`pFb8`vvl$28~^yv%<<pWcKeTa<#i6xGtY18s5Er2*fzWPfa~o84@z%r z<@g)-z1yB=UHe?^s(uzd%OiR-7d>N~Ki90yG1Fn|?5#HzevXfSRh%Rm&GWfn?+w1+ zXAhnc+OzzE`Eil-sHS_GJ9cfV;hOU3P*rwwnt;K%1Ip)(O8%Xwv@mLj2;(r_^rt&P zPJ%bIOnlAGhEtVV_n5D|)|t%k+tBB;_}X0`_q<NE&#q2>xu9|KoaI^qvwIZh220%U zG~3Bxa^Br_ceEON*EIW|x~z|z9thjpe5%om{T;ET;>>o2?sZm`YdASg%5MeC5@P?9 z!n;UL&Y*PaeG|`wof;M)i<rAltP#tfyjNu<hmYe*=5Ovze7ASakiPD)DJ+C-C9CEe z-{1G_eCCw8iAir(VE(*jtCoV`x7Qt&FPyZ$Z`6ML@00y<-jtP>g*DzKq#fDC{qx~o z_KkMaZ|t;GpQc*&>w@WV3*$E*4hHQBIKQ|rif3N_=LHWVed=^tI}NWVom=CxYeP?| zoNjFUuKx^|*JdxOl#JEfQonh(!!&+9mK3#&uQ~ST{e=BLwdacOZk*q-@R9wg>{)+S zb>>{l5Uh<~ZN1@A+k98)_r-tKyj-GDwBxp)Ex+;EJxSq}6OU_6*4Zvm%)uMSxF_a) zio=wfC)FAIpK4`(eE9VqxJ`EZ^xOP~Z=N~6r{2xYER*@5E4a%~#8S}4A~SQ#t;iRf z__p1-wwh_7%c}D_j1Jr~8kfY_Hfw8stQ1&mXLRxR(!)15GK6eil)t})b*o#MS#$5! zw~U@#k4olBW;T3cXnX(Q%nvU11*_I+YTgJ559{8jroKy}S1<91RY=x@7hSo2TAICU z7xtStooe-Ic<Ax7AZ)=ChMRsb3Z~6mww&=QBUe<4)<<RGYG=Xa3ogFCYkJmQ^6pf} zuw>pToB6%9?xd*|8Hxt?8S%Y7?C`C!TPTYAYc21$)@PLpQIQ)L%Q^ikf5x&YeV-qH z?fE0j2a>}%#X{1ReYfl8Z`)~~pc}AZeXOj^8NZ(SD_cdF9Mf641m0eqsdRVsCZlt1 zj@uK93>H7w@?G{x=Y=0HzaMrjP)l3xZG9q0D$7E!wt-2|uF<X5KB;r@oWgY*qh|4~ z&fOZ$<dSpo>H8&JTc%FDIqlURW5a^g>5JZrohsftZ*D=gP3Xaxf7OX?{r;=vzNLzn zy-NCd;iXA$(elat5gRjlV)~lD|Fl+5F?+GWq9QAN=Gs+`k>3|I*Kx?sbBYd_bwGU! zcXgMdQk(hugvT5HPcSn7nO@{Mp@Gv<V~%(_`>h>f|732sF0kRw(O9K8)nJOGseb&v zuFT>qe$gBLeK3o5yZd0@FNQ8DCW{nHu~kLSZT?N&|H+i)|N8B3-qwGu|F!(%Q~m!U zO~=--*VXN7$?SIZ%iX?Ns%Xx~NeN-{hxOfGTb+2aYl+qVu=NhJ%{IL)G}SMyDL4Oo z;<Zhg`>k*JHTwUWb*5aqV>b1vk?%o=>FoAS&(`T*-~M$+(zPC=Hf?sf`Q_Vo^qIa- zzuU^ZTF$HVB^!rT=E?VE1|Q_#MIU?N_G(S1v4T45bL$%i&KJxzUl}SL{-BySrdV#* zOs2Ej%uZY1*i~?k>DOV!*9XGqXxsXn%zwp_u<+=cpRtd>x_=k=Q~mkbS+PI$%J*vi zi7e0ETlc-%{>txdragRG&mVStF73QnR@@+xSL=4+a8l*&m$!EF86?=SZ$2CP+u-$c z`6+94w?uP%=-;$hRU%>8<A0Ky_jPZ&Be`Uicem)jo9k;Y?c4jX&Y$si>D|V*QxA%3 ztCC(G`_-_Q-!Qs)L1C=A&jS9>*^J3~ENf>gtj^=MQEcbg`hW4CDSLe`J~}2_wz)?t zrSIhu%lXHn7A%mTnfd1Eyn6M;8Y{nl=kfSkeRbpJ&j%D|yu5RddD}(H84Mgdm0B51 zzCFv02)X#6d1ms9Qw-l)&qwt-r$x92EsoKT(mmUGz482%EtThVnH(7TE|#Yq<ydp~ zC8JUo+gX+rv3aL$s-J{29@+LI?rP-KBL!#Ptaq*8)oI=3KILQNhVnVS?wt#^Ec|rF z^OyAjmRpG>Rv#^w+vZF-z2JA1U5;|4+w0iri{Hp{`rYEbBD~=5<?{3cxySs=wGSAd zyDU;$Iy><>?*iY8Cn5@@qo>(uHNP{^{BM1J>(14}lQTYjxZQW~!JP+2rR*ETmqo9Q zPW^UOPgphFBO-Ud_2ubOonit_HzpM{Y>z13DR(}J&oeuHgJ{a@uIEuaeA5N9UW=5j z(abZisq6{-cB$gQ^%So79d0%M7<O>{{FJGGLH4QS=kr@P26#XHbRa#8Mg2n32HomK zj}O1zTUpD%aButd6}P7|t-SDJ-J03Icqc}xBo|xUd%S;g-<CKLg$}WMv0f8wt;FS6 zxHrkV$7J1_c3{_}M|Wjq%9wc1Mpm*OE$HZC+W+p%9$xdgD|yOZ)hy_15S`x5v_-AG zFyMBY)T@NGb6#(%NW8eV@I;4IUdd(Kx>kkTKbCYA?X_%pDX`%Eyw*3`$qep}=iEOW zSmu>?VuAmkxT`lm285bjG>txZ=GLv!(*kmfgUsjmDlpHhoixo!oas*bg;m!|%QJ#` zR_zQu#S!tu;v{3aC5Le`*QGUy4W`b^ZDb-Am4z{xNobVw3i$5z$XAp-x!6lH%&IwM zVhEe(Y6e!BqVEN-E-_~Ia_tm3KJ$xAUjI@)w$`QMJpUHHl+`#ZP^~zZb;|Y}_UE&d zymi}@w*=2ozEgf%#4}5!<<Xx-himjXFEkwS6MV1yVB3s4Kl)D99;-Ua$@gaC->Ng; z<#YZ1{NLhxyFYUJa-a7ZmFD8>RxX?OJYxNEL7B4j>Ng6GDi=(5{_HV77<IkD;KqyQ zd#pBzx;x@`Gd;Wa^ubQ`JumN_x-(l<py-8_v+rfC@&lf`%UC9q@y+dAA5~n-qsq47 z24|t$gkO?ZwggNI&hCBn|4dNO^rVNk6W8B(dgP#9>tUDrV^(Rq6<+Y@=om9x-E#4s z<?o}Z=S!=sY!~PKf2g~;m&antL%web?@n)?H&wDP{`b}S_nZE&KXQD2jpD!a|EJdr z$=Cl8`u$<^d3iHy&w#$_3w%>=L`Xzgy38oJePSCkn=|vF$G-l;OJlyB74g`$H92N& z<-WP5C-fRWz5l*9P;|yL!~J(I@6nt5ca30a_g>i-cm9{9&G|Ul!6oK$-<s>bEygnp z4Vcr`bu)0T`n~ySu=#?^?n^{=AKzQQ-uAlQhe^L=T+bgh(mX71eJS@c{>cv)+1<YW z`_HN+i+BP|ww$ZtF>`pMaBGu=LsV&4)!mFe$LzSL@a(Dk%T)5we15%H{fG1WH>UoZ zZ}#AU%>AGDzAIJVneO&Yw6?tQd7{G6>N!69jOLvz>-#TvOLUvP0H1KK?EAAic3&NL zxw6P={N~x}=KlRp=d67O9%qV+*Ky9$|DpG-X@1fc?X^-T+}x%`zY}Dzc<`Q4M&$Cu z)$be`d}m0mSW{S@89!0h@WNq*g=?cX%$|8)=jY6KUwL@moUF(ZQdzpHX5w1K3RNjn zFHIwhng_L8JfB<Ds%+cMn^qb6SWYYQO|fWq{_j6$_!z3q_J4?3?YHU9u@#={ZP)B} z&<K-EWjVO|+urNjzVujyi{Ie>#PcX?cguk;q5dd#wqMfE7jeAVc(?qdV8m?pSZ#5h zuVtq`$iCt`kYxK(a>?_gRaHiev;J;*ROGUGzQ_z^%}EMZdjCufElXxAV1D)6%bx2) zLaM?!sVcQVi}Ft&L%y{Z?uqbrIM0%B=a;H?M2qnAA9H5D%=Km1W6y2zJ@ThQbdX`W z&Eo7gCwmv4^UErjvT)D*--gHE3BKO0k<53k`CRz?iPa~0TIX*TVK~4q5jp#PN#(Nn zON3U<^E8{2zx?jCrST=7x!$`^O7YJ5nzP+vMjX?AgLmJ~Yk%336k0AjcWcdt?CN{0 zZ*JcEap#qkx0=PZ%?B19ELweOsgiKAv*$x&W{-ovlDwbiIC3PE?(O-_!>G45-Z;R1 z&%O5WUjFspU$@$xdvKDS_j~%y-rgpicaKCnQm(OvUpII-A*{?^_WYX6)kPatH&6Dn z-61FwZt0TBzov<8=W2QL?#(W}MsFp)r&KK$@e^jvIhXcf!-U^^*cCZegm*4+>8UbE zji0!(VF8!xkzZ%tsLJ$Q{B->O$&XAkwQe$GOZFM^YuQ<A{yBGIn#3cu6@^@K22*Di zFev@~c}g?vL5%uS%{K{VR;~+~Rr#IL)up0^+ceI7DfM~zoYCj$vq(pm^a;W1jx7$i zv^_OTjD4fsled~b?3&qC^88MnbghlhjcTt{+qzZ#Xyw+$fpcpf)VD{U+S2i;DsH7w z`6cs(E96eiOW3trX5XT9tcy0f$}_ZF&zR^Cm|4xqAe++n-mmz+yy+KFWe47V_sZ}7 zAO9Q=4OskM<KH|s^@)BWuOHRDO5Z26|KscZ8!eBlPdfiiwMy5~lV#1!lLiK^2HE>% zxvjfo8)k1!`rKrw&6Low&7J3h?w-D927B|bY;1c!JG-8vy0uw@F@`VX&!>QthHKLe za-|ns=I~he@)_5;V-ZEN?Z)31pS$?~*)27VjmP9x=shg!ypt^6RG7Hztjv;I=N|6+ zSTnyVKY+*irgphtf<kkY59|F(et-Yzx*XMfO%qra%2bpz%B;J5-t_O)^>wQIer;WU z<n7<uKjHt6-|zId`^mxg?)m)vH(yKSs&D(h?n1l5ipUW4lR3V-qqYkw&z6qcUUFd< zv&YR3LAmMdU7QI8_i_@qZJym9F8R9r*{1#li&_r0bsQ|<%+LRuZ1IAvRzu~fpLk5u z*~@44uDBn2xo~abgEQ6g_m6BfmN&|->p5)0pF7<shWnP<<yy;-%R8P~*MG2P{af|_ z#?hoNAG+)h%1JQ#_1Ffr`F>y(`Eh$@sP3lg9h>{7pH|gNf8Q<f{o3)!NlM|tHD6xw z&HUfKJ%9U||Mjx@_Wy0>`Fq#=?yq-HNLk7txBswHgoQ}KKEvdU1>a>1jkafHsvV2w zYWZaNEFu2qqR(!*PK;hFuI9W+SeDEAmebUSL4aX{^(nr4eTI)-_}=I~;}9qD;K_T# z(9n=%<}U{y?0;i>Zl>bXKNFH_p8ejt+<1md_^kAKdo`9XQdnWU=b_Pp2a=|n9@q8- z+VcxMX;3(m^*{DeV@mTEg$1*|H6_jWu*=wA8o0l4aY@tMtzHd!=NnmMUfD=QSxy(V zJFlq0u;O+$S6g9&oP|AC+m7pEtgAmYTK(OWb$80fXS44aAJ@BJ{?cdu7InRvzK7>S zZ1+c6d^^bUCuF+#nLojEJTk(|QXkz|8?xno^S28Tp+-8hG`|R@NXl)wAHn2N6LjdT z>ptJ77CU?tSkx9iW-als$gkTU{Yb2T@}IQ_BXVBdYtVgJ?9^~c<8{;lzfO@8J*7X^ zKaM$}$FcAD6^4k+*}pByS944a`mz1)k$U@!>i!#_=ia+rC6~VKC`0!Vp^ah3YbH4! zDqfJ~ukqp9jLl~{tMBtPh@957+rzr*;<7kq6T!vY{m+zRloqQ9dP|!=cMe_=_tV`k z&*$MJzccyClMXvXX2hJiq$##C?33Q^@)im4-OHwX&EeW=J;UMmhpPE;@)8X1?|MsS zNH24`QnKas>s8q@jLGf>SCiN8OxeA?``q+2c^=8myp~!6mYBy`xAH$&btK+2>v3RO zIs1*#1BWd<Vpg)-TBm3PzYXNpV4k;MFG*!dpy5`Yn;*?&41&L(N|0cY@w&vPE%Q<0 z<{DL<4E8lDTZOi*`Q2ruYs?*X$3DJRX2+Q*E$K$Xn1YNJ8CI5eTm=&LPt*BJ9E7q8 zW;XErSTIFZHEULzFxwW<_Jw>ePM)h!dX#?2Aa=9Grc_&vMIj!s+^oW87Z#O&+$Ceq zc3mpH`;f}sz*U#@u4^<Oa@``nRIGiOX3++>1Iu=pnZB%cVhd;vcYPc6wnTSPh7rfo z8_@?IYF|=%vG_ve(;&UnGr8N7H?6nR)nb2JG@&DtcUHc|X<MV_e{!q>QOhsv*Qj>b z#Ldga;&6LjvCi#?KR@UH)&D4N|L1?+%>(``1t-V~f3nq{YuO?8Y^xfRPSE+u!d07( z2NhmrO)%j1=uUYMe`8z1#>cN6>L)g@da!nl;C0hosZ!@IEl9b2@g>(?0~6JC#wJo8 zy{RsLQa*_CIsDqkXLBU5?X!){iH9@d&&F;vn5fy9=f5&qUoT#ucIS?H5i@@W9<G?M zd4Jx=L({~gUtRsB;G9|>=kn8(``F=-Hw|ka|0_Ov_nzFN*YW?Qjy-?>|L=au_@AGq zE2RBOJN<{BwR-w&jb~?g{I<>9v*t?l!#i>5?`>W0D04}xL|nhI`DU5H|4B)^Wz#k- zxVlO&#=q+8{hCt}CO?Y4n!o9`m(Eyzm4#yl|E1nnu{X18%1hNO+csyX&tMQ1n332W z8y<7$uK%|M7W36zle(+w^tI2cPFZ)cpr`WXuIYE>vhNz&UHf%c^w05GvOXd=H@@px zn>#I<JC4=TPJESwR_xQ#$KAE3e#{U`Xk4Fd$Pn0b+iUCp{<uTu>wZ7;t$F-?+nN8( zP5<-j<I`X2=0>IcKPYu__KakG-Ri!;SBz<4{p%b~97+jDbZ?tAB|qi7LF{=RmafxH zTeNr<NUq^a{V+wce6Pv*jh`*-k4Mh9^3S#Q)WlA{n@hI6|2^UC<h_q)JpEZIxMFEB z+s(jSuIVcnuS9bG@zb9Y7|tMN8?)<Kkky&#GkYG|3+mKPj#!|!c1OsiTkLaF%aw~G zlNgT4+FmS=*OaWV3722IL$n~RD)5uSG08XkHh+%OGoHb?<!R>kbBPyi46Hugn3Ja{ zH<QP4+qB1aZ@Icoahy^8#j`k2@XF6h&)?6#7snZA?7Lbsy+AEycKql1i}$(M3h!E{ z-QGB%bZw_oRg68$p}7@a0di;B59K-Ybj40u<i{zrY-#DMTbJLYIDeSU!!>W>l@<nW z<#}Hvn->R1)CfgZ#H&A1p5}V~h$-iRB&(jkvT1)jCP=(qJU1mjCQ8!BMCG=^Zi$et z*Gik$J4|=DHCN}*Ii3%e{ZT(cRaYgMAKCDfy(u8}f$+YG3QRiw(d~cb6U65^_)K1% z-o_CBMppFE8y1oEC$~Opo$+sj#FnRPY_I>QS#Wpz-&#Af#rz8zQ|Es(mRg^>^s3y( zZquxDPo*FHJngzKV3+gGZTTkemn-~E-0mo*_3uN~e(-{^H>p+n8Bv`%>sBpfX<Cu9 z{cnhDfi{y2Tf<8BhF?l7-n!GgZ+~cz?09N(zb$#GX=ZF>bBSP*_CgD`!nw7P;ZmG8 zZt%RCX2*9RMa03@<VC~QHG<Kq54Nkl{kVi-_NlukvYON~n)mO$Wh^t1&AtDev#eZ# z@GZZG2He*So^9Uj(0+N<k(5x|3p<_Wr!q>fJ-xuV_=>2_uDvm5*Vr1dhip4q>|ps# z$Jp1mwP-<vVD^vsN%<F_<Yeuu<`&C)m-+a-<v;$!UuLhjUpdCpe=>oCO?+!lS&Rmk z$*l`N7^WB>*4!{_`-JE<>|EZZU+1Pzi}N#HH@9Q$t?NsjH=n({wDy?k0<+qqTcWP| zC-r>(V10*c=DCM;OIH04ZSYiczT9~G<@s37bqn=sT;y}Ip9l%2=^S0~qRi8G;j^zh zRm94oN&;jPdm5_Udl*~&5@#7sJ-EB6E!26%3$c^mxm|QOw><m#<-MpzDFd(Xm0I>z z4ih0BhPOXlo(peZWcaqW{M&}|6?3|66=L~=U;KWwj&u4)n>`VIGqdtyh2JM|wrgr0 zbTutiJ|LWM;rG<wWfgVeUOI<wzPr0-w&F*#YnzVywW+NW{lLkyZiTd(@rnzD0sHSS zoYnj5h;pt+{m$B}sojR>e$8z%G*s?VyWCX!`cuRAwahn47!nK|B1<g25_dB#KPGwc z>8Y0r-cP63{ahWr?U%s*uebM0*8k4`KdtHi_V8R`)e1|dzQbm>%s(C#*MHp3pMP<Z z@NUmVGi3ytwdUEcJ-BXyBge~oN(Le#E^pRUu<gn*^qBQtV7vC5@}9uChfjSpX;gLF zws*JQjLCV{;;W;h%xoW@dn5JxboH`$&F|v1rt4x4FKUXt%Oi0^Kl<35Y%vCgTY0(K zCZ^&+Z%ViuuDN}?!SQUb-s3F4#AP!~OJDD=T^Ff;_gKLcgW1YFann~l|Jd~0IABY* zRJNp9{f+wGmG3wo6|Ze$ocC_8>IZG#|Hs$IC&=8}SJ{*QXEW%SB$4yypZ_>l{;wzb zGGD~uwe|<w+-t*fk`>;l`6$af2r$%HUEZ=#q<=R5`o{rrx%Yp2uKBBYZhF4*gLhiu zkA8ZX)~zW`Kfn6fYT<_S&zs&_-pju|H8uM6FP-Q!IgfYQU5cB!F30k_$yN`eikhz2 z<TTFt)+@GOvwOK<I`<3>t7fCe`!|*F%oR4uh?=@qXC3#onv?$n_D-0m|9{T9bt^v$ zG<;Yy?I_Qpi*cp<l(pB+6P1wMaUtrEQ9?n_-ff%ut)jo|tUkbdURzatM&-PuEx#PY zzJ@XCy`Js<y)F0MvXuU#GnKZ4HrNVj_!wQ-S0oeJR?xr1m&+^d_TezQWQJ=J49RvO z|J<IPu#~tkck8w--Ur`oSvH~O<e%J)yc|CjzN9CGCd41<2(e(8Jn_N57oxfg<d^1b zGM?+;d$#WD?Y~zoPy1V6yHpS$oFU}Rw6;Zj?aoD$8VjF@p6xy7`t~o&{!_j4_Ab>g zWi$vrCH&|7rrL7*PTuKt{gH;N8O&}TT@*Aqaq`&&jW_?U=mtq@^-AiPXLFfc*_}T7 zUfs=S%kDhdZo}R6XIXmhPNsC7E!AtTZc`PW#i;q4E2;6rpZC9ihH+Fp*_Fc`of);h zF@DyziO=<-`R83oZTS~Cv3`TVXX6!Y2^pP=EH{;7+Kyyft~5EQ{`R!%^9PGe-J`G0 zW$-pj{Pny0&wZAwLK}Lnh|k{k<m95~K{r><Y`?qh(c#y%m7x9b=i`=lyw=(I;=q^b zA)CW}{y%Mu2|0ach5h+ST|O3@POQAO=Tc(C?^XA%ivI6z+~Ll1(9wFyTJEjM7RPoO zTi?jFR*=}TV9i?X8x0FNE&p`Sx#oI)gVqP0KRH*LPVdy>y0Am3l}(vpmZjXP>nYRX z&bgoAYEm_6Z)obXocqLfvgE=aoRT-(qNX%IS4-Tz$L(6(vf_K|_%7P`SVg~6oiuyv z9v#sM2j!m%H_qF?qTVWgLZtet*#|FK-g%|Un{&YN4bQrZx7NNnuj72zQTqyGFrU?t z2)zSq!n+&qEVBFDWO{hktHtvI_v^3T<Q<x9+O1`&^lE|C`b}&O<#QF4s`!813pw0q z@H&_^L1VY6k?pCR-g#RJ9z{eQ%(*+Wz3W2SpL05lI+I>%oqMmGZPE1ok$u^RJr%x> zyC-HoUznq={4Iiaz5(z1O>1AWESB45-@oE-{$v@u3xEAe_*l{eo(MF%g(nGkKNs=~ zU0<~5s^WrdTMGwy9kxr}e<SVWnN!5(M*ldmx?<ww!dR=s=a0E`b}ahc?=#0`)}kAl z@9vnh9TCa+_AJ4_v3|StO%uMdb)nHc`Xyn{48AGV#;04PS$<r!ORTNPHL08B@|PM3 zsmn+51zT>cl=!;*=e?I4jrQq#PAprPp!RQ@@Q&K|>hV8R>b|Ad>-9-HeE<Ic-u)xz zjVh#Lb&s8Ta7$_3remqm!uC})#aI7Zt$Vg8dtdjzD;vey)mk?hRGiBFzvP09=26Gp zdp6z8y0&0@pr6aC4-5Wu@8gS(Kg(cnA^gi8-<!@-g&&U0Df}M8uf`+EaMYwdFlx(t zzO;u&UvV<+ZJx5;u$WC?^EThxFMn?NtNZYR$>iI2QX-vKy*_?J^H1I8i%#b~)~>Ae zH(0#>b@wXS_bHQHBKzu&-sAXtrtIwX%inLT5c#Y*MR$6@?DI<B{)d&Bmd0&+{^!Ty z@EMcaw@d!1H@;W*FVe=|HfQGl_n!Y<rhHwZAYS(BfzZ6<juf$Uv-5_xYTFzb&ImG2 z5t(a!MgREv`nTne=l^TI-#NeTZ}#k$e`owoz0v9Ux$c@|?P;BC_2z?H@|oT*Irq3y z``|4N|KvG8v*v``6gMsC|0DP3ZOp`jYUwLo%inqP9H>YtNVGCAzGiiJq4MTa>K+Ro zyPfX0(v;}evc6Zk?Xb+MJ%VOgfeM#O=6_CbKH#q9TNeEM?~do*JZvnt<`%9!@ULUp zS>xVA>+amLT&ELx;CyIXbM?_3Ukue>7GL#|@e$d!TH<-L!`VIDjP{NTI$s-jyGlg{ zTTGvSao+Tky|*<M?YtZobLfHPxy7Zo&fCBE;c-#UahuowuIAFZbspy#&j&62fBE}o z>zromn;J6CXKOb}+pc%~z+SmHxlCb(#kyL5t{uM*1{|B7%dOh>;ZT&NE0394_RpPe zFV24{b9pZKtN8pDPEM^kCf74+*Ay|P9JyW?_34+4eqH~S_pf`KF3CJUeO2;a@|Fch zC8yS1&kcxoE~}mWJ<!V_Cy>|3l_yH}Tjjx-a~PT$S$}=M^ZB_!wc?Z44$&*PSaj1) zPFUuDwC<&=Z?EdqwC4%7Yrm*IS^V&4CeH_3fyd3d7i2`{FTbVC;GDBC^w;ZjnM235 zsy|q+Q?`E=eaFeyOz>Iec3s&6XLD=dyPvd5!e*XaX>ub}>s4sT%5%RQIrc7H5TE*O z{?@<Rx1~a_KK`LvBHNelvA4ux!$Ie*oVC*h^>?u=&2h@u-Mn!ZBbT&5fXDhJkHvmP zb0h?|UY*(@J6Cra(}9Z6Kyy}|8Si>_Y!a=V&)>UAdi}nbz~kbqbu!X=uR_mTw7!0k zBvBsp(W7*>NXqMf7cNIIwq{S$+8i068`dk;Jj*s=@y0hxY7XV!yjNd1Vd}vTj3K|K zu}MB>yDjxKQlr|~;SjU%<7+B!nj3x!oJ&}|ZOf|(lF$7mpX(i5^t?deMGwRJ>?>hg zw;g`Do++m5n5EJ>jb|&XA|~g}QDx?w5wdRXx?SgsY|YCm4FAk!-_-2TAiSt>_ttsO zR&q~Cn!B2zu^>Sx`R&)by<)Njt~}2V9eh`i(>j5FTch1WiG%H_29M{znL6$J4g={v zqpm{><{jSq!SeN<>knERXUWx02{f_z<0?5tuf4gnq3-G5F4KiO)n(%vX1g#Z-`Q%c zW9|9n*MG?^nX*r+-q!h89{nBg>b>m)>6s4;4%l6gV3YVKmnvCN*kn6Lz1fiIu0g%_ zi;mhnt<5hh*g7Pwyl?MRi}21o`egIBRZPnj))ut9nk(6LLg(bIb!uDQ@CE9GFTV2V z_5MHH1zrEo-T!&E;_pZI6GgW6mGi%>KCgX4@3)oJdj8wjV}8v2G@U&==|(`GK=K>8 z>bB}P8Z{S|88QDm(`UZ*xi(ka&uC4z==DyHj{=(CEu6n{&8ge>7c@sG_LR0;%RD~3 z@KVFyq~A5svlk0E=vJL)ka-}%e!Xb(<`riwZ%s_q{cD!CoSQLyila~Rd#PiSA3i8H zs6F@5Ji~Cpp6msu?H6CpYPj%#;d{dy&;4<S84Ego?~k{AzG{0#e`NKMbnh;6KY`9O z+e-NP^B?p7`w80lKL7a3J$W<#+jD+9cx~3~9r7GA)*CkLSyWad@tynphkGm$nlBD{ z>s~jzT|Xo4Nd3S4b)x@o+G~9Dj{o=at=+q_3k4fieq%7-+<0NXXIjv`!>7_y+NLip zcD-53_eZhpp`GzMo()faR@QIT|Kyy0Gj{5alz=HW?Nk2GO^%&v@Gi*Wxt+{Rzv*um zOzHA^^&_G*`!Wk}{ucj~=u7uZre*OeEHwPwy;#<%_06O!hf5#xuzB0Rikxb2@YjU= zORI#|CtYl4U9gw&?ZU3-E2f@5`nfBYi&IW!$2+atlP2kIXpBt|klC{C+?TyZPF{Z% z0v0zvWllJKXQgS;Uak30?vzdGs(Aaz`QWzZq^rEVi}fy~Je$!LxyWk=&(oTprtjP? z-nRJf?k163C@AgneA0gRTaIk1zb?4V3f)x5l3_TB@txYkPxDu8mfm-;^ZG%t&3Q+K z7KR;qq1<no7-nyL=KZvH1?!JxoQz1izHdWg9OtqKi-2Uu?guLEOgA1>J*<77YtsEq zlx6Z%UiAP)1J7;A`6qMgdm9+CKk4Q~AHTQh?aRE|J!fQhKRhr$?)22R+k@4Yan?nB zuho&Zielp{a}GS&+Sa?4)xhjq@{bSU=|2P}+nwNxY>4n-oc>f{w*UOj8&{m_OTE<2 zO|15jmGine*+D+;{q@(*oCkh?^GdmVvv18orvo7#*7L&@9*Q1&8y7k4tcb1cDfSsp zcAK)~96mUCa*D%(a%P^*X1fJlu5N#<t(kP>)>YO;@|iZ9*Y%n_JbQO{$EWMMzg*In zTQBg9Hr_PXL?NX2d9hlMg~;KjZ)OSY?s_J*YPD4D)`$P!d|hIqV{(e8PsPGyQ&O4L zkH2>hc6#%2MPKTvD(nwTyt|#ZfNfuP^@%v{-3Q+mi4;grmU(A<N{=fm!FPF@_2zB= zEKWU^$&+p7kKw3W@GbXB&df_$>{BJ%|EzobQ197e9;-W+E2DZ#mn`@-`&DbY-KmZD zWN$8Hi~Y0DHrV8g1dCWom}sg(#`CnUm9-_7W$O%it)DMSJ9Oc7K}0$G9*M8-tS=l; z@e|zW!gz4OckM43wH7DzJTI=4U3Tu}j46|qq_#hsvTC25!s!Zoe*ZL!ozKooX>I$W zC>yXfCsJC&mTfcF1YWOQc~^^huHH4f#`^L|by&-T+alJ__w*E&UkHdf{iE;jVl(F; zL;n7Q6<-;%e1(rMa1>v3jHBntlj8-4)-}iU6|cP>$$NLP%<V<>#=>EuHXHtJIH&(| z$CBJg`Kf}u7EG@{x!g~*Fz{t`*cmmO$$E3`{Ojvho;%ug@63cEMW2s+zPH~j2=uRV zX5V1=Vb|W>_nUU;A1eE^b^kZ%AMcJIpKNqvVR}khr)+rH$9)r|O5|7j@D=a;6;rY9 zaaPRkYsHd}+rF*l+p=f+9+3i3_V8_Y_w+gE2N`}}!SMaE%A}0r>$Ywbo4xLEj>=Y{ z4)X&3?F%L34Vj8wpDkFByyBJn&Fik=oxT}owuG@Vx2^oa$<ia0{`Mea(954~6-n8L zIOh8Dr9S?9uVe3@?kI~FiTBTjb=NA)6_iVGIzgRDV!M$dM=w{MF1FaC>XN|Dd{ zpMO8+Kw$U#n(yb2M9rAc`fSF!jmcTIZnC!O{f`+Q6!5P|n$k8Q?C#NdJJ-~U{r@Uo zqrLBweU0Kj`}#j?-(K>6n6TO*UE$zX>oTny^Byk_-~REWxc$Vtd^hyBtSp@_$*#Vr zYxAzghWj5qs{UI3?FseKm6_`*;ki%$;Lgd%mbHk!xWBKm<Gfw<r6}9%Gu$--Q`XE7 zl+e=UHj<br8Gm@~3$L?zZ08LRIILNlUUN*><aC0L(3`XA$7kL=Wp~Z>b@`X={8KN# zz4>s_*C<`Rp8s}Dl@l2XY;z)?e_k9ea;~MX&wy1j>U9Rodz%})3k`Qh`}0&8eaJ68 zqwhD1=asQR%+Bd^TaV4Gxc9D5X>l`m;NF|nJl4Dk=_xZx=k>SFPCmBD@RiG)m+hh} zZ|6Ubx*O!TZOMuwOEn%m{nK`CNn~21YShU`me1DaGv0goM`uI+=Ii{o)0b^Fx?`8U zCL_M&J=ZgC#ttQc^eOeNUkpC{&Acr<!<KFHiTPP|(L1!mrYR<^fAG5IujkCqUksls zTn=HdUiUZXb+**EtLeuC^n4SNRBrvUc+PvR(Q?A`;;X-=6+C&7xB2aMvm@%PS~usP z*7>o4m*v;8JMugIu1!r(Gt>xud48)<+Ju7hCO3P!pJi9rIVR?Ix$S;q$fKt`v0}n} zi`c2HCr>!8UwZUHzR={d>+?R$n{MB`f98o3lXMLtt-T#LzI)`B{Ak*;<uC5-mXCXX z_BAuZhk1K-L_&1_r8WmXJ+Nfqjeu>3&rUQ=%RI#Jpgd*!tQWf;U)a#$et+dDzC9v4 z*)~s8R8E~0&8p0BoyUlIm*7Q_eoyynrnX<Kp5}jj*yA)uz)|z{oXhLitSa_dmA&n@ z(}yKhesT5UTa*&!H~yZ?bXHBdOe~;KY;vS-^n}#Xus=>Ba%S%qEjJU&OPsvuxvB5I z6IbJ!oGQPa*{#u5)YQwuziVoBp7>NQ6S+NSO%IgqvwAUuZ`P@V#5p4D9d)r1B@Y&L z-0uqbo-DIX_{Y0<VzahPU#7EyY5E3@c)_n(75ik{6Vf8PWDZN1_GSr2gj~)~P&sZZ z8#?#p&&QUMJf@qg)_s4rr+n=~0j_)NTMlM?@$}SA-t&?{JoOakl#Eg<3&#bIcv?3r z@oaJm|Gd^LC9~(>Y|#Y{E3<XA1ti{H*!Ayj*x8j0lU-g~SIbS03tct+|DwZ}r*baj z$}67q^wdhbQz!YYI9fxJ8j7Z}n@xS|djCs(d}HYy`{^6MpFUBdbwjc^<*`Hi?U}c< z)HqG-c4c0YlYaaAp4)_O#js=LEYW4BMGjn=UhvIdmfdJ~^huqDsGlw$&zQb-vgZGt zwEWW7E0O9qSbTUL*#BRPIx?&1Zu0cYc?C<}Kkz%kV5`G%D$wG@$KvS4s{4L@w(s6w zU(Nl`{@;_W8sGW!W~*&{|5&!RpZBi*zKR@^mW|U3zZmlWtKE63@AwWm?+r=y{1KX^ zEX%H~;b1Lf<M@^EvE@zwcW(RR+dZqDBcC6fa?r+Ta_^_?oQ!+rx;efX_nfyI+g>|R zFZHK*?i53@*qedZs^76sTgcrcyXtb@^uNF4c27KcO)8nCUNqy>%Qu48o96pAZjIz) ziT}l*JVQ15*j{6{@4NaFnJaeI#+o)3OX}2aO8s}aZ|~1PXT|>f=jQl7_nddl^V{`W z6Rg(%T;ts_ueW~5fm^`=JlThSZfy3wtNkeJ{&m4ERvLD(brSzS`u_{9d97bp7QNcO zFZHj;Ev6m2b)!9eT%Ug}Td803@$rIyo2}K$f_x_5ycwC^&$zg`uI}LVdvf`V|6=di z99dT#z!6fm@r%N|Woz`$ooL{#F0AKP^W{>Uv@f^8C-S<URI#$E?a}8u{zi*1T5g!w z{HiV>pepe}uVL^sTRx_)yhBqy2kHHq7g?PV^x#vTd52@>v7IH##xs&jk3SdMT60RL ztUS^`gFp9R@h@9Dp10l)zFVp-Uwy#ndlb`rkq{M^1L?Uhbn_i%B@~pZMHV04Y+SNU z{_xft6IJD2?Q%#v$lJJX(X<}r#jE%3e3!alX=M4+u+NLD563M#kjwn~p;#TuyPdbg zBR0<4T=VkXwqq|t9@i}V`)=jqDdzht=7g{N`6#8?n(@w&iluv_?=m{13yXbT`;F!A zq$@=aDl=!Vdb7QKub|5#seMQ5x*6}p9h-N2+o5^WCha#>iP2kLB(r5Q3-eQtg50D> z?cZX5Tk&x%;QiuR%;~eH`C3f!Gn<nCfm_nv_P@+_uJZ0xV2Kp9{;lAaoyjE6^T%}E zR4JwpnpH7-)2v+$x3F#5m(`cQ)HWx{<WWxxZ>VL&l!vR|nN{uHo*C%m)trAj^;^!m zR@0Jw;iV2?<?^?m1U)|d`fpY3jEUdhTwVXVF>LEa2|p&;M{jn{GpX-*TPk}&Svw?R zd92TQwW(j!U+a1*ZWnz2`~JGq?N3#5`5H^h_bM`%r+rjoJ=1ttdCuHd3mbaBeh|rt zN_=rAdykmqq<2&GmR?kI7g%63=V<!RdnHN^#;;1&ofZhz+;KeTe3<A5=Bv4jbX+GE zYqbYXIa0XcmXdj(iZye>mvz4BF0+^mgnaC;%$T%l9kZ~c<f@t99j`w6Kl|9xU$*IG z`Jx%`wr)-43$Q-1^VZ7e2M^yn*IvRO@i~7<q}Oic16q&or^K(>Ex11G^%Cnli*KIV zI6;gxuU7hgs-<Vg>4x?{VZqEg|CWjQ|9I+^a&wlzn%1S$4m#{=SKi7ldWPrM%-`>( ze4Friosa+ib6Q$20zW*8inN+wd*^%2{QOPY7WJ;zQ#C@m=iW=TXSa6E6)Jq4<$m%_ zZ(3xd#=Oj{Gs;q(yXGoy4&qtx!T9J+>A)`vd#3JZ<qc+Nm9e%G35l+6Klb*_>~EFV zch6P5>hR`U3wIHNZtToFw(VP_*S>$F5agrH$dlULZe`e@rORO-ZpmYRFzeg9|FL&A zN1N%oD7x!zyVYFSW0C%Ju2k7(siwZ!Z@V`oow4%ZR(Ziu`{$(ihn@HTy}f_H)c?G= z?d)l{6SUr*E|kB1!DFBGHN$Tu7i(X|anCnDvrHrIaLj)`_aABN=9jONz2nc4l+2>& zDtUc}mafG2D4t!ukF5%xvROAK+w41(?Q%a??7CjvjrDJ?yb~yUuWqRHV&D7E2Y)}j z6WOv=dx5M{$2lRh%N?iBne^Arbo&wcH8MD9>pYp9%00VRzI^=hc10OCo7nVcE$5ZW z`5ss-JnZ2Va$EA($Jf;jnfdqk^ydHjCx7hr`TKc}c}KSY`{Dn=ZkBT6LCFJQm+yR@ z#bb6t#j5?bcG=C7dAVZUHDZ_Q&nkFS@6KcVzI0FL^2`5)y#Mpe&lEe#vcvARPS)>T z(XqF)f6r=4;&r?t@a)j8q;Fea?V0h6g(d8VSi<t<%JG`dEY6=cle6tJFTNwQ+(OR# z&Ye4X^?VxL4$lgUu1$ISJx2R{-HY>FY3b8uepR1a$a07MoboZr#@Uzm*|9DtZ(jD} zeL9Ooih+ke)8p$A^Vj!i&kQ#I62Go_hs<<0x22658?={;>=6~c{c~f|*%r^!6HBkZ zxs=?{l+LkKhHIT|=(PjF7iO=o*)sdD%<&&C5y1<!SMzUk`eDP#)|}R#=*#(Kd&ip( z!r43lmbFJaQ>#-7WDn<<$o&7N?c#g<T-fW>clSSAtmbXHQU0W^*va*A2<M}?=?5q3 zsyC>ZsONGTyYGBn`j7AF|I+_@5)NCf@2qw1nRb@>NWjh%yX?85Urwcm`d2lr&FxWb zcv%pgJk@HZ@3hy&Z*Q&smR{Ose!EJQze%<5oAZIHlLvO(`&@oh%AW0L?&S0-jX!i= zJnp&r*Ll7}y4%dH>CCfOe-}Rdyfd43g{|U@pi2c=S7cwY@h9Z}{XOBlvF5ZDn_Lwi zEalqJ`NK2eN7oa#+pCX=9%$96%-G#~_xkhp>%YJJI>1ozKJHY>k-V61Wx*!zbg!B} z-z?)UrD{>=^~PYM#lauT3!*0m^Q}5(sw%j?ZI`TEgCO6O7aLAxoOtiHci)P?3$BUg zy?VGiRV_|y%aUUM=5J^3TRU_wu&M}l>-j#FovC<l(Y*Hg)}I|T-!w;WXO>zToFEt@ z;_$sddui;MW0DK3ntCoK6@HOTXK;Rah$}VRZhFA4RoCoJ&G~p>&myUFKYR3Nv}Odk z9#8mO-OXnxqp&h&_a?PjSHgmLJ}Wp}GvjZZ>Ue(L8+pShJEzd^Z@<l}mOCIZiCLrb zjeb4H;-4<dY83=$K4V-_)|}LyvR5xsJortcsO;CTPU*=huhg!|e|pUIVAk}P6WP6< zC!S4ss`D!H++m;R%U1uB?|!vmy0b~=49j5s>xUba=N`NOTGM^yk41IBjjwO)UX-8u zmLSFB;HWO)Ajh0%qq5oBr780!Z_`a<{necfLUVdb6yAM_d3|B>i8s-$kLm-w6|U^^ zsb6eo);c-pWaXBRJbmToT&v|61lstk%O)jD8(NirsnvdOdZ~!R>Uc^z!<%#SPfP6B zIF(a$a!UK+lC^>#ehDnsGUKZ`Tff`p!b^>H?P+0MpEEWprdeF5(!9kXV&lF>T`l#( z1HN~@TN1AsUf$V$sECVK^TDIJ^R_;};uR|L`1Wl}yI(Il8lHlVm5BLPWA{Fpt=;n& z+hd3JH9bCW6(WyKeZEw+f|cpW4XxeA5_~0d?#AqmU`;x;KIDU~1gBP^fY^cGA2v;& zc6<lBPea3OwF@dMIuD(HleGHd<Tncnp6sxGqPouL@vpvhc}l9^`qYokVu@3GVxO&3 zQs#MNDno2%;4PCmC(Rnv?@hX1Aidc3TG39c=9=cGRr>LN_k6cCm{Kq^dTWrp1NZiL zMmZ*7qYt&bx9aaU{Xf6`%zyKVKkMymkC*TJ{rpzGm3UgQY@dMrlDDZ34)n-9FB5Mn z5s*%l+VlH1fAo~a6LUXp%gIffc>0UZf=GGhKsDFU)eOa{zmGOO{-eDh$8}r9p`Xn< z3OQG2e!s-~Z|mDi^^~a>oA+e>)r^=I(6@qNS+U*gEjPEH4u11oYi9Ty4Yr_+;LfE5 zi{DS3clJ!>f_DPPnG|?hegtKFSG{J$@=ULPmhx5)-E}+Tk4PCzxRJE{n0ac|Paam? z7klP^{$74dm}Q!lmA*~!9xc|Y%k!4<=KCIqSoheIA)|Efwkgja`<=h%R()ry|0d3D zkCV#Mf)<;f6@Jdz({hYK_w?djx9p3~UtIoj(bCVwKYymoyHlKJ9=}LTP2|Qof5-L5 z>~E|4KUJQRwf1XevA^6l`}xH-Z5PyT2CXc5UmMco)SlvThoy0;`q|9KNk?YQJ{o87 z_P1S?MYeom*~=~V-fG@#2i)&7t1|pZ+TOYM@cADCLJofNJAy4P9?W7Y(`>r=JGxWx z8SgyKs-+Euo1`YS-78`GwdeHy1)(2<zW<j=3yfkunfoTAzUz&T!NqMUWq*1~dmL`7 zsos6{HYdLM`8R>Pr;7#uDVJIWS&BZt&A?vrI%0L2c*$Db{;xv2?=F)!wF(UV6}0x- zLwSRR%O|-Rq;NhG+bS)Wp7C%;yX54ZYOMEW7CPVF7Ms57@%NcmgHKer?(AgLi21&v z_}>E4pAWy<?FH?$zRj(a&zK_DCzK@8x$TF*ssFmG=C|_-?|S?1`D{Ul33J*@WLB`u z;!8?<JoToluS`z<)X&Rv`kEPc`tvkd_lPvGcR%SpahTzN%Kl^0^ZjHV>s|d)y7gP| z+dr?v^`DlUQ~uFDKhvwk^2N@nGhH6+N!8f2?uJGlS8?OH>rXsRuQ=G4Z}jOD1LwrF zYX%pqf_9#2yAt;O-r6(wcIh-V`O0u!tJL}+{#ilq_H6!_EO$;wE)58Bk8EnXaba&l zM8spxS65cuJG9`r+!eEow#Uv_BQ4#7g3G_{>DFz0A9+n8w@T;@W36v#LqS!V?cpN| z>Y4j5bJy9;oqblYVA-s{N1i8iOD;UQ^u>oe>k2J3%F4|;`&^B4t)Cm-W>AglHJo+W z<hx#>rv`tr+b798MaQ=sf2qX~a3J`l#GAD*Pg!U%F8ZMI%=C9?tWn!)tu)bYMIZ6! z<t6E?yLOvg*;rrT@x1Er!gFt|vm!sIdnTS0n|Rmc>GO{~5~p(S`>o$*S~+tjua-Z{ zDz>$;Gxwc|TXU-DMx~#DV<c~r|4#<Xw4bt-49{=Kl@~vJQ}<(|MP8`a$KU!&G2d%+ z3(Q~jpWe-=GuI$KO61rMr_bHj8BdpQk~#k6>ccfNWEX5=Ja#&^v0-!29Qk{>TA%z6 z^S^5TsKCB?#@3VrOWtK~nIL!aTaY;G#+q%@*T+5lSN|-1U(53-J?>pIc)t1HG`=8n zXj}i}JJr0C4*yBq{A06O0W<fnLLJc;?3vGHwpWQdSU(H?xBvY?rp*gd5_`Uf8b+}^ zF*7vW#q56k$orc1oU0nz0bwUrNJb<jrRKa|+sW%TJMx=p81Dh!s{S0el{{B>ON#5R zJIMU*v(>%*_TQy`E0ukCF)=UM$iVEBm>8#1UwXM%egDr)W%k}{CTZ*zu?h_`SM=EW zuiyUmo2My$e_i9G&NV;(AG816Tv1cebNTaQu|N4U|4)7H5zcM3rvH)L$K3hzR~-=k zzAk9B;;Gx~nFNCK)6;G#{8^P#xh?2SS*`bro1!<;UUr3S+v(4j=ooR~%<rZ?wfjHc zeNSD!-Jy#6!Rs#<`3%<PZ%yDhRsZmzDbtnn_vS<#wrQAXbs)5B%BI|yu8e#87Zlm; zy2WzPnpr}oeU;H3?)Q6l_`c!#-<o~t{q!{Ua|@d)b=cX=G|~_4x$n9ou8!lu&K!-G zADO-u+pydyj$e{wcfGza)^^*!9v9DpHy=&gf7>>O<I>b$ljdvsJ`sM`t)wP${TJ&} z;YhCo#xYNmZ}>ajj$N_*aPH!7+ZWby2D+7UeL8=tJHgw@i1YK#-CG3MHXrK|oU?Gc z#M3g1*GF1}j@G%U{Zf0^7k{JewSNAABi|oy`6u{i9_!LMIl7VDuiq=nB~4kf;7O7F zdZ#*(%zu{bHs;6cwl8D<7JqMc)Z5;c)570VJw!x)-|^%=pDLS>XshB;ay)&``-+=? z?!460`4V~d(E;N-Iob2?>b_t*!*E(c;dI^f$~omV+nUdPIO@LQTg8ETsdR^p28NN+ zE2{myYPC1jZ$8!V?(yS(vjeH~9$!9xZ_nkMtm*eY9{pzVookhR`&#w|8@_GK+s%00 z%=7zd0i9Dv7{9FR%IUcMhSTNr#%-0Y5)U$eRNPdW$P=@f-I-Id>}prwvJF}j`WY2^ zgv58;(>ooUooB3ZKx*UNxeRG<%|0A{U0V%V>2NB|G}Sx$_UolBUQ&O{zO^3<l{W27 zf44OxS6p;e*RwOcp6#4{Sx*~}IrkniTN~YzDrBa>8hwHFH^-%dx<#hv8ACQr6x{xp z?Sa!5FIKxVbJ+NPR4!U^ewUt+osim*hx<1@o%4HF-}|`|3gS`*tN$PRvB>VH((xj- z*N*L?t|6bg&7C76%{!LIMOII}KYi7E-<d34`W>@w_V$P|@~oDLXS4D#TJ1VdNj*z) zjzL<=4l&sqVM%;vGR2)4<csgleOAe#T$XO=vR!&h3~$lDl1q$NZt$gBoLj49a7j1e z%#mdc$<M@0ruG@Xh%4JyddZAc)oJ?f-#peY?#V2VvUsN0GXLQ9HMebE&78c|sP(j9 zR%zMdV;QQ;4y@*3pQ-z%#OLMCpEtEOO1*6m?D=Xtrz<x4zyp8jLXM5v&DO3w(<2+M zZc%-qE>{%2;eOOj{tJ7qB~6LpVM^yJxzBLM?{@j)%GjvGJ?6^;Ob!(`e6Q_2uyB_~ zLD01O=eRD^Ud!vtSt*n8Sk0Q_()y<G)D!D6D$dpPNA%i<bRM^RRK3mR+^vl8G=qg7 z>;y~Xzx-Z2PgQBjj<c45Yn8t($qK8!9Q*AC>(nWpmt#eyAMBXst>%yx@MOZb!qYqp ztX}8rb+fPfDz*K0cl0;=``dMv*}dB7e%iUuyMM2oOnJid)6GKG8V~lboqAwb;;qdR z-`6|Lk#5_6`A)A{&EEK4=N{8L>zke#>brhDxyzhuj%Gsm2AhgVRg=6e3$N)&L<XnM zujFQ{w0gesN6rI@Lh&tzZ1*<1R`)wjzxIV;%Bu>t>7U+YuRBtID2lV5|9ZjZS0yig zs+yR#nC^}gN&RDeBuMc?N*F`#t%O}Y8+$+e^KAe7^|-#lbpHI!&+57V$<KfM@ulIu zzi;jD3w1BE2{&3-62CTD+Qp%jDbhf6(#gd=)~r9A{Hl(ec+%S3CA;F--lsFdJL~x_ zTzAUdRxh`*<U;<|H7ZrlW<6oiJ?LhY?6+F7euHkgz&`C$N^DWFoBrmUm3pDIs`}FL zZ1Ljt2D4@DR;T<w>i3FkpU3&_|N6?$1~PtejC^-EkJ&nxCCAe1rOG;v1+8oU8FkNo zUcuxLvGVTIjP8GLs<SiPMdsJrJl<8K&@s>Ni@d?Q!_&%HS~<C{ysgXYbDz0qPrr1& zwoSRIbAi%ty@L%=Uwdv>#;?91aW#D}Ye?*7{rP9L4VeSC$Zk2;_WwrB6prnc&f-m` zOO{Bpy@*j0^m_Hg$Tp|=&#!;skLUk67vFjNS8(*PKW1fD|7?DCYFiY8Plu_Zn*-<k zzn|^mcWiau@#Knv?f1JP53PP!9ltQ+C7V##O^*HVE!*Y?vvNI;<Q97<_D8-_e(~<f zOnx~xWIiXy%>Dn#l;MH=;hgCkS~KtD=lQ-}XDyStQE=9uM}b;b4yj7s`2C~s;yjVb zM&ECh`M<7e6T4!fYq30N@dCf~k1GCm7tW~9E8ZWM>;0&&c;>&`M|i5_dt9rHciB(R zHYt0n@q6-xbET>Qw?rRwoj+OsVQ1VHzN0+SIqWvm56G0P-632Ya(=n-q11yqCoS8( zyUNrOuhuC~PEXgF*0K7?(e~@VKSFLKc41u2r^Ho%;o##m<=%UK75lhePxYDETaxlb zV42`6M?<N(im}VXH#YhRFVe{k><zXOP)I3XG~Xhkxim>+uFzwK_P?duTxV+62u@5m zQW?56F3oVw8sRmujo$HJcS;^I6<IU6xS=_`KA)ZC)|S-2acKz$vob_-6qOW@|CU*1 z+WPvU${u&-sr#c-{z%EET63(J_imx6?OD?sr!0Qny!~L`^J=|}=B6nB8}^s(^tM<< zKb*CzP{Hra2Qle~fy*u!sL$Bsb*uK<Wj*EJe(BBs-&&rGwtgiiZmHe*Xx@}wAy@9k z7t^-x-f{H8mVWp3MUP^SZFtwHab&t)(T_KKWGfX`=PFKL%+GM~ne#cHe+5gMi|+*d z?T_EzHU0Z{!xa}7o?(1EU$7=}@0@lqW1f|Bto<kd`Mc_YjfMEK=SStZCm7vX_eaB; zGd1Ab;<tRlFJ@;kPn+Lbpju^gdE>p`TE;8<kFnO8_NRV$Z@hB%(RTT~w1o}g&t@+Q zdY3IDHfxKs&8a%8`Pz=_Qsj4>3y@-{O^GPwIQ?>SQqB8Z3$w+hN$-`<JhI;^o_s!G zd)l)W+2pC;j!eDWqJ2N3uXd-?bN>6<T?W^F__k#InJK$x;$+8ye)CMT$*zvgOKn^G z+@_axR<96WTUz(yfcKZ}Resl|+`DtBFYTJq|GinVFBQM+eb3e`A)k6u_P~RaTl`Nh z+Q4hZ{Gcl`u+FGJ|KNgMZxiO^Iv%NrFWhGL<8J6u7FC%u>mNGY%AWb(Kl*jH$o=UJ zJ?j$ge!k8A;DO<G?~}ikR)l?fze4fCic=@wA3j$0Kc7dlIq%w!^$!E4{@$ILqx@#Y zyM&f^yS|qnTl~6i=YLU^wz;VXS$!K?=GISncERx7;h&*98(SDHS^wPJV)<~r{jQ@D z`)YshNd5Q!=(q3bAOCz2xc~Rv_X__+_GxCTHH&+GM|poac#(h3QkH<c9q$a+r?YS} zM84Kp9#_3}V&PQNA7u+XH`Y$N8(6(NMWobFG3Hr|s?P5BpV#|FMQ`6CJ#%GSZM<8< z^zUqPAsc7hV_eH7tdPK9&3b#+({CFSo-6%t{JnZbjWW+M%gNlmldM_zbsSF_E7fm% zdsd{6Iicd47)STELe_{40k32CKd^9-(9o&9x&7^x!;w$cIdI)|Vc;_GSpL88qTFq7 zLyxohOx8#CY4LoCtNmj1E>AP3!+x?0ck`k>Vr9M0eqY~_e|`7eHa&08AbrInDO+x= zX>1W>IX&HBw{_3^P9Bp#e>&gJ4&1M2zhw8j*fRT!`Ws$b<9p9`rDwiXyl1z!v;Ob; z{o8NuKfgV7!Z*|B-~1N*H@tIftM``e&LR5EhtwrCVy%w^ac=ZTmVNFN{-{AA<is@7 zTjf)WcAn;bmiWnX#ou`2=-MDA^>*|5##jGs_xX9axkjK-Ey>~H_M7k07d}uk(Oh!9 zr1szDFK;B+mgJVtoV#q^rHtiwco)rSN+@lT*>1yL`0tk3odfLeTAOCauxr0P`fcy$ zBj>Nat$zNi@Xw?0|9OAj{eM{gh<p8iH=pnET$^k!t-E_EOs#qCsj`yIdv~08$h_>m zfzf9{Ly48I^XggDK0Wk1>|YZ;-~C&b%BegXr4Ow))Gi&kQruH?Y2Dx08+*I!7M#of z$?E!6akm8bj`N-;kMpnp{_5*OmIr&Q4H*{ZZz)Pvj<$cPV4k|Gzd`x-b&JL3vRcfi zr}Ft*Uo1S)u*vGi;jNk>%<iloCu`a)%VleFPkDd3Z(iT8tkii8D(TjmN2ZHknz7FH zm&0ZKO<~r&*{6OTtXcNb?%8bdfcCu8ljqDjv&k#K<I2OmF^Sy&FE*+1{woZ4E6Xx% zVy;#9x&0kVp1LenfpcH2<CwR-+R8S0%>nZQ-pLLOQcrnKZ1*u};GP=5bM=bnTc)MD z7kXZ-E?G47qMt#^hRXHqS9*G9lq6l7zv9a`pGfI2i?+)T`I23ktN6Nh-FYDS@`KQf z7wc+o+u6&;=M-M#y|s5ur2ek1RoiUeN8S4nAo2MS1NRo^h7;RQ)Vzt*Wqs&+<<+M( z2YxR&P!pKR?rmehtfgA8pfi1SNcy=lr-=G)zDGHV=CaDaLM5)f&5+!X_`yn4pV@LB zhfkN27~3xA9qXnr))_}Um+E;D{%~G|LPe&GH1qMAZKb;p>{<AA#_3%DtxtLRzn2{9 z{_b=1vmd)<X=L;ExD^$7$6A_P`_6J1s#}%Je5#~y%=}7%_F^`lrnmC_NxOUujc&(! z{6A6gDzfH4yzOIw$sBB5$x|e^etPi!-tAvCH;Z{>+*5xqn_Uo}(ag2)Q{3b5LtD4* zY+v?9T~23l#P#C^qHMQkY0fr?&}WeiimbWUaArHdWsBIaTR9Rgt8`w8Y)seZn)7OJ zc!^~F{kxOO=A5f|w?6e|tG?!okVjU*dyO?L_Fa|I3E#!SV$QOnry<($lfRXfGV|xj zd;$A+`JU%CZgZaFU;J#%Qu|}4r`>(HE=&8zx!DzA3dT2c5ASWP>ao34{?VrA6NC9y zwyN9B8J!({=L`dt-Jbb3?sKkdG_~F#lJGksb-y?N!L?lLH-BB6-N3+X^?A{~zKiQN zYM*<5i#@kz>cOrX2hT-(xqn(>erEBd`2BUQy5BxL%l*UH^#8f;5BuZg`~EI|t6|#g z`s(w{o43#H`(51>IluOw<+Yz0?+u;R&OcOT?ubtLZS`-jg0)80)Njk0Os_2TKfEk3 zGR~xQZ9Ti~wPl8{xi%{wxYpFXgl+cR&<*z)R_JgWU!PHz7Qnt>TWry;v-iGiuZWM9 z-(k<@oUc^Or>5H6Ci3O<w+8=<ysIAnNk1uRbj$U@JlEF>uiPizGkS63mU&u#N8<5! z`?UYe)H9gzXx1G2?bGj+hWx72_4%V?eDYd~>zc(A45V@<2=iXAcK@Yl8Q%W(kF8u^ zM&`@E4Yg4ovgxfn^Lt-UR<PJDSh9&>L%dqkybXc=d&~oFr<X_+Y(D?>kK64BJw>*2 z=AKlG7U#IUvG=oP*~T>17{vhA=)ZCIZ|=Omtk`DWe+xPNdKQ7SxBM--h5Pe%uljrC ziqgBT(o^qeO8l6n-W$q$dH3f(X_c9>+nAr<el@uxmFwCEg##9bjmD?EStdQ4b!T<t zDps!gcUc_{`PV~kpH`|DTV4Fw`S+9qj?>=O8s0dWDSi5>@vjPv<AE<Dg`4?LKiTxV z=at8iH9M~bzE^TCikE#JzA?pmzq4B4m6aN&^^#>DM66pK`cJiHuJG<=pRbF5%&z}C z`A78ryN~++pPl~b>}CE9|1PiBU@A8F7SWw6bNHP|^Q^yzini;O{x!T8G5Oklj<x5- zeg35|6_$41)A``E&od)#_EwV+F3Ufy9Ay;`Yg(+*4k|sn*>Q<;<IyfJvFu+@qaUf{ zdUP#x>eik-ef!6UU+civ6K}r0?#H^QO6#mZ*UJ5?Zsr!1^!$2cD|E`caF<%jJ}rX{ z9+OO1cO38Znfx#3mfpSw_DR{x-{hRyxS)99X|0YUiSvFjTotL!;%(uZ^^PZ%E!24K zELGlnTVDN{8oYAfs_F|{+5(@}Oe~t`_Qpnr_1c}Qi90-F!_2rnw_3WLO)S@cV(KQl ztdN<t(PWSKT;aI~e+dM>sp7L^-aIvT{%R*H3D&+DUm3l6dS>jBII_w5;m@nhVz)GS zjE&?!b4;p;IKSys$j$RTj7F?;nrtVW@cC)>Usz-M!AfmDnfD*&y;CT<;1Zl*w7&k4 zVz9}&#{mo1wFK5Pxh$HLmSA;J@Z*dEukLHNUB6t)oc+7&_x?5AGPnG$SpJgpXqEkL zYtpD}WhjyL?ubECd&i6G2mLS3dY$~XZ_QFArb$d`77tiD)nvOiKihuNL9EGbv+>fR zf)A$c1>bhX2k*BIR}?6^{_^_YmkdTrC!|F`QMkNwk-p7mf2+I?rc>t@To5Qa6|(t- zj(xKhJO9Dbw+&%$`W<KXS~1n@9$39G=XXR=^XKy3nbYp=xpBwua`n~g#RjYYvORyW zz;K&J`enP7JRB-QGtO7o$ULfeGK0Y(cuLILvfjEU?5wWshR+tClQ{QeYSETk6EAB1 z>MVWm^XsYITw%v&Y};q;lIrv!ysP>Dx{9Y+d8T4)VqMp}pXDV?5iB%4aq3c!{-l|j zkAMC6BKn%4F}k#qF*i(7T<nIVwZ$>p`nk4TYdLM5XWR^UBwKcX;mVYk<_-pJ{!voQ z5f5r6e%f<+_V?1&va5OST0ai>CRjMV&2vg={NmYj1;dx}Uz+_Qe5vxD>pO}j{T7|z z_<Q=z_!WQiUq5?zcDC;4|GgEzpKZ3V1r=bQ)o<I*$vC|`dx3t+u9t?Ja~^zqwu4#e z@RD@RxPR<l0~T=cMbBfL5_<cyja{ap49ljgv66Qf<X<h*5C44a(6$+l&TNx~Y=muP zgw!g}iYU+ZdULlnYl2ga;)3X%dY&)sFR{(tUY}nrz`OU=l48?}WshfVzBc<AL(&|< zz+bz~Do)>e_x%5%kFP^4)2%n{3IDoh`U0)znT>8*kNzxrJ}1(A-}Tw=-!gLU%04^m z?X%z7?>r{FSG<s)Wy^HU=KF-DTfTKLIBrvPT75xgb!2MUpK0C4W+f;GiM%_MIGf=^ z!>JF)m#oX~pL9~S;Y_ZwvBK;n;(=$|Vw9JN20U&(H>=OMO{ru3q8D$D?seYqVcPdC z&$fCjPY>9o(7bPp|4lz5Nd`#)wI7VzLgb&@oc_SaVBS>|;5Wgg&R95quGmxoraumq z$9!+JT|V~w-u$Q2ze(&eh}3)dUYf^&ar-fbwJSGQ?d>*fsNQuX<Mf@MvI*gO+c%h3 z`c1jL_{;^XYqr~$HW=T2_+g%9fnV*q*v<0`?p-L;VV}98IQ?dt@`0$Dd8=9)cg0=~ zt$cHsZC8!d|5x$<GymNGw?6-o{hy2F<^@Xcf3E#j`$Fes(j%jYd)B%)S}YCC3iCTU zrSE$3%=b*4qrNorem~2l$cTb-%15hKE_9WSoTJnD@yS<9_e%YF$(`3uy)$I2eDv$E z)k#Y`*4v(!-hF?m&iH|U{r~#?pexijPv@QSd$M@D>p6$k#Df<aPs<-&=ru=QB4o#Q z6M+I&8%Hb4kf7zO&e~08N)zlqv+Kr>HW||e>xKSa@bBvBVg9D)sCKL9={l>;);1ZU zFP{Css&!oXcWatkQqcRP^!<-cWs3g2J+qi4^kB0|W81b#2?k6rm^E&yuHjktQKH=^ z@Ic~WpXSUm9cCZ7-6;Yw6`}|JF!?#KS{LVisy5cPV!7~&Z=J)1iBilbHXS@UPc-G* zT}9<Q=XS<L<_9Y$Pwsf*aPOOIq?F7Of2SL}-*uOME793jIMa2<sr20(zQ=5z9Gur^ zz1v_$kbB|m$7L&9MJ~U)7HTPJZnNU;6fx~AZSR{e*_6DE8x*Zv9j+@nX>#5C_VI9I z`>kCZD<WsVdm5`QC3%09k?5b8M9yoWM@(fcL!wWXzB{wPdE#q_^Xb)sizgn`JJ`da z{k7fbFoS#1opVg}4&M9Uv?u>KpdxB=J?>jW-r_e6ueQ5BV7mU*WRvkbJ4ds|Eh@9F z#|R(I+gi%OzLg<F<mg+;$+ka=H1@Mc{G01|bldxQ9bvY<ZRX3utsPPhIB)3r*3ws? zug7lj+9~KkdF+NGr%&x!yS=sa!XEMMrdcH^0q<)zTl!4jv3GBy@wYD@ERV3>&D-+2 zD&XX_U<u`F(Ww7frft&?tSGREKK4sXs$EuK!h`vbo=<%7KKI6Lt>s-JFZ;fFM_ceJ ztnNv;asBFsjJfY_-n{F!sb<xC2W|2Hd|DQ5QetcSt2c4kYwmd5dpP|}b=q?N@22w) z%@sS5b#wFgnrTvbvfjIQ8)c{Oda+=p5x2F2#nrz>b0v80n#%nu*b%CBQ90(;g(<O% zc|UEn+~3aQvUy5Q@g4o?!7=5BH!7bp)w;N~K(p)p<zl^r)o&Wyrq%5I_k#6Q&%HfA zZT4|){lC1T&hF^;{a>3CUR$v{=H#b6{d8v4GP?t(r*AJTFBhJ!dwKslQAU|p#{=sY ztz8%-CKSG+rQc!6&c{9v?;mF_z07ju<FU(W9g!_(X0LdCLPlQkK>M3)qqYs<T}{So zO*6MYi45G?VfyVhmxaijt4Eezx~9jx<Nfou|I7*&&zI;COWi2Bq)2Y>H%+f!BFszP z<b{VX;&EtD&2(E8o8>B9crj9m%aG-7T9$n2%X*7!?fD1Z);h1{_0)YHIq7~NTR{cK z^!kl+?=I=AIGMfTthS$0w^bX%>)bmhuI=cREIzEGWvv&}w*Sb1km_ZZ?mbz*Kz8!+ z_-(m*X?haVPNy$9ROi~@mdpODfNMj6W|^APapm--hH3p9YA<w(c~AKld2Q<RTe~0b zI8<))Q08XX&Tomo{8*B|xdg<#{a^ehX*bs{$Gxu;Z3X!>-tUh7!K)*1d)M1tH<==0 zr`~AV(balVr}+A2p4gUsJo3rneY2C;MQ`n!)-|)5OHVrVUm)+Uv*&l|+}b|ty^}y! z!rrf4KYT9S%((T~!v0>{X~`Gvm);+}W%2sX`pY+V#Y|6H<y2zbn&!X5?W)AHs+~IZ za`pd~|F^39(Jb9_bJwNsZTEvi)){}13Aq=z!awlA=PiY1z3Y@(|GAvd6PbFWcb!tj z`_}VsQk*$**rwi3UbBSdR4?zDNa1A}_A)QkcTVwM%XzahWt!~%i)OJZ)Bc#`6iO<9 z#>_r}#?0E+2ksYMn6RwD&xcV*(k=gxm1E_!utZ~%=jrjR^+7M?x^{<#_+Naj;j`G; zFzw=vEBD-QE|(~EF#B<C4+~Fbw7zximI+DztBR!lzAZRaX3n?7`P9{)liwbgoo02) zlR5oc#l3ys`PeIt9{jyVVbkT0CEEh~1bQcJ`t>TczdE#5eABsihwpxs&Escl-f#4( zZSpS50MCQ$vHK3ZP^(@vJ(Hhj6<>#!YIRTMisG{A!Hax;{HVK|eKGOWv<?>I3-vcM zN`C1+XItjBTOu~}!gkBJ>CcaIe4V-X$<}$<I;*d?tUagom(|i``ttKlBCc#*vQeDp zrA|ls6?0TRD4%>%!OLnBSJr1%^^lpI3$9M?b6#ip>oc3Wl=~UR9U8kbHiukZnEv+r z(?w!_91rxAD{eTexvhJ1b&X988<X(noe2ytOqN^@46$C*Q$F2TnZ4a!xZz^#<Cx>Y zE<4?CG8_F}cuC;x;jf>>zB}y7wo`9rSofCU(7f}PKGjD4pWeVZ=c)2HCwa!239s(? zUY#ql<MhFaFVz3%uCkr`Z127qpA(O_D?fW<cswt5Yn#D-rej%0=IwmTC2(5QLBTAr zaM^|OH9E-~_9&}y)u;V-x~6M>cA9KqBlFiX7NZ%5jaP1a&)~VMZu*IUbysie7Ek_q z<0sGZ&A(*hznZw!rq0L|VtL$@Ak*U8J?F%_zjrOyEj|`goK@Q#FyjHkG~uX2YU|q{ ziF7Qo{2Y2{t;WyTqBA@*GIeBMh&69?J=n4GXW+Ne$T?q&AH<jJPD_6C+G@}KsBT#n zvkQ*t=avdA>wi`nBze!5%V2)<P0@#Mp72#<BzF9Dyy4XSD9bi#$CjT}ms>XaO7~4# z*>S^LJ45)*^j}uj6?hNwTi=l`+0r<@o!Q<x|G>kiHOIb|FLIQ>p2W^JpEq?*{@v$u zpUH(~M@!4smK^xzvGu?GkLUFg`S<c>)^GXsJF(^VhJ$umn^|{Hcpmib^>T~(*-wOQ z<=#E|S9jB)W%H?1d)G%<++ce#ujFQE&Xli>uMcwT%D#LXdEKnNb<c&POYSQg_!izP znq2ajnbApw<<lJ%17^h=2@TU0WNv%W%v8URJ*ixfEroLp+lx!FTi-4J%*4=e%h56{ z|G}B-o;Q8h3o@KovVXA&+wa|P92YW#yq_!)GP$$SNA$Mlca?dc7yR8n-#62H`crqS z{AGb|tP{3Oo^_sQWl8n|<D%0CR9Ga^F2snQ;9ig<HcR0~z@_#diFOZF1d5yrj@jBC z<a=sq&Ad30J)qH;bIrOA+tX{zc5>wiU-3J5@d|^595<uR8+}H_zhY)}z6(#du6@#^ zsw{A@xxVC)@xz+UwI|E^%r7mN(CfaZdg<W{sw<{vKP*tMSGy5<=)v9@_F@x?#k&>N zbiE%QIk{=+{`vE_|2}GbCu5&~;F{@Agd{uem0mn0eru=Q>s{x$wy`crFXvKO$)U4- z;k)_QcXtYYsg``0zVqF@Lsg*~H%|)%O?f!yV=%+F#IVGxh2`SSH$zScBzQ*iZq_}a zVSVbm_x#tPQ*P(-&g1;B{psdH;}83F+BD_WZa;f!v(BP8F8^`CB7dWgIuWOr-?p>o ze(-x{LOJ*AB?a-q26GDXZ@f0X9UHy4F@4v2N4uGCdC$F9{_d^5Tg{utrRw5ybwe{f zt9X{*r^|I7%S<uIn9e-WPQ2l?H_yfw2Flwu{m?qja=Lmm_h~^Mjt!n>27*y3@^SC4 zf>!76+v_$zJAJh_)6Iod{WC&2EX=kvb8cmf48P{QQg-g%dZuT2yVKO?cBFs1)4Jlu zFR|P^9Srep#V3E|vwLmMnkFgG$Gq{qNbvVKIn(b&I-fVp)KRz;-1C~{<DM>`DMjBV zYqaf<$yT_3RxfIAoRe*AldDCAoO5V-jeXC`E4i&Lm(p!s?z5^3*M7ZkX6xP_2l1sM ziRtB&oGT}A**rhaXnZGh%Qxe{+fV;A5z<z3@4rzgYZ~Kyrl?K&+V-2B4w>v+ss#oU zcWssR*50hUWBRUDvk$IPnCd6AA~H6W>ER5u<NtKpPOK?)5a^V&V4GJ_94Zi~@@UDd zZ4*zvIhFD}l*?H2-R84Lf*(G7*dzUDm1N1inDwVWttqs4Shw=q{gCG8I$IfJ45MCL z5&Ly~#{F&VfdzIRr@y41)wt38Ur6kOQp3R@Zks$SolEBuGB-8lblhAq-|C<4@q?!M za*JKgnQxhWa8BmlzO%~`EIVXBB&4nRJg<D!()gX*&KCu-h@>PK%(*+av)OdV@s1Ls zFjl9z(G_o6?<HSgc3<$Sr`|<!N=|c2qiLhir3r^G^L}YqBhTE!aZ%`TRO0-szbzUX z3eSw>*6n>D6{LO8B;P!;eoySXvxk>&vgC3L{cmyP;;sW)4fUs*rl`N$$#X?~TPfGt znS2lZY_mTnZ0%V1G@;#%adys<@1H`J3tm{iwzczl*`%F(>myiyz11tYzW&)Z<ptf^ z7uLMitXTR|R^W!i;kas<!oS(cn|}YD^7r+WP}Uo_d>^j=U9P1(<=|xN$t@0>&ED<a z^LgfufBE&xGq0}l{O`Z3Ttt7a)f~TnS(DZ(FUWM<DZ4r=dcoecOO)T<cv!IcZ}fs& zp)0-RrDG+}DNS$_DQlj~%J@k}e*Za!qPs@_@*mIM|Nno-_I&%^&ti9Ko?F|eq)L1% zNjBqoenx6Z(B^k{8;?AGtjZ@np<svQv4@t7-RXP!*KSog^ukAx$*pni*;oHUE*}eg zeQjGp?cHLTE&i9kExcF3GDC6q{G0z{UT=?b)Y^Ue`#1G<kuvR@bFy16$X8u-Zf<$~ z`^%eMb&Nf(2X&skR8kA;UnJIQcwlpAqf1M(X;Z+OO!e8F4D5zlEC1b2>s0IceV)bP zXU}WFYLnx!T5lNmBkKKX6~8a{pImlD^1qJ4l*XGGf2FM!r!?={^w>sX_qpS_XVSN; zhE9`6f64nM^JdeA!yh-SwVnRV_07%jvdN7RF?*eRcSiG?Up?<{nm#jDGJ?tBSB<0P zJ+8g1x=cDVSgI!R9@~8N4C}4)ePy+Ea@j^xG?L_>Mf4S0elPi!V=ogS#I--bELbvn z%7;eZihZA^a-8GY&G&YJ>AZ7(N8YseS@Ro8JSpCptM1MIDa@bChM%cu%YWeqGdwn` zuP7B}(XZn9b}(Vdulri3H|F2yzGSleMs%AI<IzdeXCC}hI$i2Xc968HY1THw8TR*T z-t;GB)^B26^)sj6ha>0t^(*hTe>^>DUhdZKb8Q_G4sY{O)!Nkh<?Xx=wU-MIJ@>k` z;WUq++pkmI?{rP3=gui-30RVQIiN>rezyJcobXs7hy6)Xzvs%%W_eK3DAW3yf41QN zy~aG%<`(sm-%1*k6O?>rDgRPB{GO{%e==Y8hO1v)rg84_4gF!SYL~&VCx5*Zs6^Ag zeX=0TC7;V$z~;s&BTm=(?a#wQqI<r1IPI-|qubq4X3kdI;`G$<oHWC4t9>6%<{!=f zbE{r%d-;A3M>EY8yToR>wOm;rH0Pj@>M5uC1y<9w*M~5$3OKM|VeL!1Cf?_;$biFP zni}(ll52{2>RySPyK^6_vmZG;*^RqoPf6LOMi15J)3c5q{^o8W_eM6qtwQJ5pL3Bb zb}O$i(zf7E&1z0o<Wk9)eX%V6wqLg0d#}gOuf^@1ktLeQ+<#c`+*95;TrwWQ*(-hG zd$d&_2Ank$xGiNUcck5nZ-<zn%NeyxKFyMxmkW1>v>XV#>dv2V_+UN9%D4$v<xcFJ zq3qfxX>@NcJNGLq!>J)n>1Wl9U6w3vZQ%U(e!}NXf8TH7s6F=Z;hDnzK<{;t%Y(Js z%UE{5)r!*-v21$3v&VMh^+T4`M<2+ChblY~zxst+R>k6s2=AuHUdLl^Ufjk0Z6<5_ z+dHRpj;y#ir|IDDb8ZjqijFmiIQ?Iv{rQm94Q+-c+77aPTdG5^Z~VX0?(3dYbM}3% zv0W7J+9B6}ZMIR|sr_0NQu$kqo9=&IU1(%+H90{0FkkUad%2i=5pChq8GknQr$5-E zQ*h?}yA`iL)>Pf8nIBsGuBa__4F{XTt>OyLc82$HTli0JkdIW3VM*g-x?Hg2&u5`( zZin<$nU7yR*~FdprE0U*|I&tg$E(iT$EYzee)$}9=#oU#)g*x<`=+heTe&~h`Q_{H z<#qC>9!)PiDi9m}S=Vb@r2e*tcW$S~OYbOgU44DsZaty<U#d84Ic5LITD)2m@jJ(G z>Gxm1j8<~p+v8`uer{Rbn*K$$0zdxUnfCm%)3U2&@7o`5nP0hM*)^tr8~X~6S1?Vv zS~^)|)7|UG1Afnc{P67OX+Qr@|M={){L#;sh3^0R_I=xf`1Dl6zw;#{Hr-!hH^25~ zbE<cw_urbT=B=}`KBlnGoMqEqovtj+|7$OkmBGxsLl5}=Z95_R?OW%R=!<I<8>WTN zJ+nn{NB&vvGaEx5i!KSc^In4O^QOZNTAk7D%Ex&f^&K{;oo(=(8~*9mC5{8NA7s+m zCs)p~?#e$bSul^8#oViMiRO{Vrv70ouJNVwdcXT5o@syo!M&RY9d2oE5H>e#N@j^Z zWB1u6Kw!y&37i~Va=Uy|8V=W9t>`q2RO_we&bkuNGgb13(V38UKmT-vl;}%U2hGjj zvYh{LUbIiI6{n)u8Lnf=r3b>)-yZg3Yqu6U@SXElkn4lm$p==r=n2P^MTaynay(jj z@&TXXm#rN03@Y?RLf3s$e!HD@lA_{4n<=c1cCRT|@8|RLa#r<qfg_jovp31s)!npb zXi3>_&~5k8itWwTZEZ}oiPbO8grq;%%YEY6EQ{B6X&NUdpL_TDzLdqScaCYC-zOjJ z^~~Prl&$rITl}X~LWx}7<9|ovJL7--x_>X{^!Ysd>c*gx4F%~J^rN?zR=)7ynK03! zRaoww$|mV@wkM~(6iQEJ%Whj<XP5in(DTH%tMpp`G?h(H;?*>~yuN0k?3*pN-{!wI zb`O47EWvYKEbror(m<A1C0oy>J?DPgnsBMRZqJ(R_(MtybecCUERQanZ|%Jy$K-g2 zZq-49jsN)^Udn(scr!CUu&ow+n|7C<{}}7+U1AqEUey=Tle%DfZT(@5RNnYY*BDqV zB%<7>wg2&#oOb4)vh=5;Kced&XMfDDuPn~{{~`R5{h!_YJB)Ar?_{#wDI4fAWuNt$ zsRtOmKSnN3tNLmXQncu$kAH#QMInQiQMV6n^D^8QD;DG~%zMoERCI}L?Cq=b+!?Nj zF|u1RT;3vU*R^w>i@>&Z^AFuvX1sA$U!3ZRD|2d-8v;Vw?O$blUXXd&+OIsV>C~Oh zd)JlzJUXQ*d1_^tMEctwHO1TSYRzP-4fJf0nfNBj!M9CmR+wDfl6k!iaV38YzP^&G zIq~0HAo1jK`$PJt!u)ds)x;ua>ue7w<2|^UY3b`VD)U<BN&R{}ZPA*(tgGIV`?QU3 zgl0d~DtMdaD57r5>>cR9pHt>z=KjLr0EgqvHP<S{re0o{ENCsKSIujfyvyv<GOMT; zGY;L4ethct{p&q^y6LI5B{Iy0ij$Idu1aoW5nHRuz^;B%{G?NZ@}vV78AJA6yYbB6 z`7W9K7ZD5kCYQeXaCEcVC#C0`Ur%_a^YUR?ito#SZ}JzX%z2hFN5m-J;b3v@yz?)& zHOr-5*!<SUqTqG%y_Zj3elVLFdz1A{eq?)d_>-Q7I9)aFEHBY57k=2ZZ+2A9R$-s5 zG@<f;dEzz4^4pgl9tr7aTJ|Bn?)>M;r)O|DeToeKyFFSYb}F-_!pE<tN|(HUCnGdR zD*E{9b_EZM-Isi2c;CvdTgzi-Z2aWj^SG4Mo{h(+W|yx@%Z&NIR{Tt~?6<V=o8N!& zGkI=$t26hBTy|}J|MShg{KffCCH$`HD*gSZ$MF1>wMc^S1x^F?PqmX<t{vNSXuW!E z_{6=hlVf|u0t3J5tZdqwcXLZ!sN0ow$L?gS8_cubT6wo#ejWF`2PNqZleFHni}c_9 zcA#+f^x&Y+lC^B7pHw{CDZce!^MtvlqF!E?zni@8{+^#Y`#x6x|6cL?z^wnEjo?de zFRZ?DBf!y`;YQo0ZCC0izVk{uKVPq~dQRY?f;}rw2&q3Uy|t;k!EAF*LTSRYNo%}& zK6T&u&l$DU_l!^G@(KCum$lb_*fV#d{zmo)B{RYN+e}k;1Wf6j`Stk*3;84ewN6Vg zw6Qzhyt`drxnO05AFF@sH-SdKfYkl{-?@*hOP_YQf!CC|;8oJ3ugm-lo4KwfcYNIS ztp4fDyGQvXmI^K0yk~cd>i6h*Grxa{WH@qfA>Yje!<_1Sr(gX&(Rx<-$%(LoAN;2! z<bO6Ut#$hys3!MnOP|8M1J<Xtj3gZyl9&RDmfe-JUfuS!p-i;ec(K+Er^<fK8t=3= zqr*GSE7hw{h&`7u|GA2_NK3?=E9wQ3r}_E{zi++UrmU^|%YNIG-5wY68TMVgCU|?| zr1L5a@7JDavniVQC|9CEldbOX(kY*6b#gQU7~e}e?!Fcr?tOgOum2yuf3V3o8S?T9 zL&0;!bKNe<SO2o5_PjVHqM`YuC%&oS!p!GcpZ9hwv^=H1IVV`BMc~I=pPN2uYgV=w z?$_;pTW)^aG{`t}>5W{wdra4!l+D$->~j15;setsUvoN9Z^Uu3C4BPjIqCk@b<21& zXHE7~%x(I>KC#qxKb!m9o$}8<X<gaAenIGbdG7|T=!SI3w+|OwTQd9nR>mmpUAh}q zU-xkHOxS#={@vmJg&!6i5HfhO>e{6Jwb7SPDlt9$wBsR9<gP6z_}1v?Hl;4lb>F@+ z>;C7%uWPGn85r(u4_DWfHLNa<?K9qT=9$9gHyUd7(Vbf^J&dfla5!p%Sxl#-EQ{ju zrYqOCv7Y+>vA<5@??3L3hvjqF?B}lCwZN7;!(CZG?CtiAHjPTwyPf^DQ<rQyw!(h? znhpNVcckV%Jb%xosq3a<z?8DDHhio0T`^et>i_Y3`*m+mOTC^LA)mbN^u6CtEY(+c zadfsg22G8eA}6xViO>4aq7Cz8g${B%I4$w;Tqb$#>13I2ljr|==CCke#U#m1Dbalk zzB)_{o3KSTA@v$-!opQX=l88WJtw*1+r6mQ$#OLZ>uzwLu-d-&+N|O;hQF46y%zo6 zak+G3t$OaR>B@6$|K&z8H~)P%xAs@|f9~Jk=Kl?UGyngK`M1{BeZ9Zd?XUKt3E^x% zt=XnUb$9(v3Fs;;na*2UpZMcl!tty(*Hq5Sy1edZ^O{+8^lxMArg(`5JJuhbEy|K% z=%saRrr`$8g)2DS%$v5mzB=+k(zxr<!doX<c02K;?P%1_TrgLZ@yo}fyWEW88#R9a zxgmP6?4tVhu#E7K)n}Iotv{tFo8u_I{>W3VtFs?hhN!GRlX7;7PV46dJ7ygG=wV_g zbpKVzZXw&HjCqw8u1(m(Z?th$U6M)8s)syk&F5-ms~A-$OER(~9GtSrbCpKO@&oSi z;UW{<yU#E;2b?x_H_c_S?TEh~+VQcg*kW&mJIfT=<ou*42hQd1lO-O@{M_mzRJGe+ zg7Lga_SrTMlv=kJziN8zb0l)wf@$jyHZt;`PhQunnsI5SU1p#DzfDU&pS!ZvW9tlu z*h~J2*=-Aw<my?Bd_$*q^L{rJ`YGca@<ZnF_eIwJHo}uV6(!{NZr^QvA?&=kk=3Up zLpuS73(x*cxOKzaN33?9>6uisd+{;ZKaaSrUwlA;N#a&<%{`&cH6aH1GR3ztn@!3} zUicd9>~`OH<M#G^-(8{+|1KJA@cq);x%1}nsYQQlo7lDHAD@5f+0HM2&K$AcCi?xJ z+5ELBdu!)xDAsp*YR$k_`>bO9I@|f&2PdujJbypmvzGlfJL{?@Nz7ZZ=T7w<DK`V3 zcK?(1^P+FA;XJVF^(*Ob)|)z;Ce`+;a7|a6cx{rHs-4KrOpbq*LccyF`u^Mh+qSyK zrufQzf5UCslhl3e4p#1#a{KUBU`KI_WXt9s<%X*Yd}m&p^X}~Ixp(ipxt1OE{o9v3 z)8f@<3vNI7r=(UF;Ju)r$#r=^<c-XRZ3(L<nCUkj-zR>q@%^;^sTo<W*?reE>(13$ zL~{9kW?h{x?_mAugm9i9e~Vly$BskW8TV*2)g;f`<EXsC@w94Lz_u8Tov+PGT)2b| zo%{Ugvh4(SNtOqCg4!(%G3NgwL*L6r_NL$ZF6X12F@fPqN6MM&$x#;$39W0&?OM9= zZ~K{*SJRK5FkSz_UCD33_T=~Bn^=<m8sCi6-f3KubtNKci+=PwCy(z=(FGkxI1@}J zeezoPw6gJkNw4aG>m7z0Y-7cfxU6<*<{59vV$ygl@$A^gijDI_bH!e0R6ksAEYBFJ zc%}5y{`Zo`?>_f9UeCBSr`$-#SK80VWxLyjf{njKScO6#hE9}AmgwKZ_sV36!J3(> zvw80KXL{OADv)|^`t9~vt`$4eu1NQ|ta~3ObEi~uMhd$&%jOqTr?l^DSZ8jUnc_cV zjl1FNrtIjyc>%w|KRkW;?|*K*-L7qyIvcu<PyhZpNW5*`U4yj;ZwH@Glzw3J%woRk zzTfApk`3aIKYv}gm7AYMQRi0nK^Y6>Z5bJRoqj)&*|_q6_nhdhQURwu7=5O%UwXD@ z#|BmpMk5Uu-tu<l+mbyBS~GoR7rRZ>cHv&r-JzdQ@l8UUt3ir&!s?X_7kSQHh+yAu zbpJbRwYb9U_5WoVwkD*VyAix_?N=^_JzK78Gkmxd7bjWbe|bs5-OZ2m6%-;)6+RH) zDet^(8g{+sYU`p~naKu`JWWxid~2n@EWLYMzV7G!+x_*s*n&Sl&N6tnxT!Ns^4EhY z1uf0VhaNf}xD+_`b4uZ=H7u=x8q+rKv~J$0cS^u+_p0exjn1M^O{(VZUG<hj=W42= zUC`l=mbV)oYOqef(ERp$?Ty;3|L^{P(!cfp&;5J1|3BS*f8+m8|G)WP|6R>eC427P z{Q|>Y<q&^Kp-rqz&Zk?ipPg6Y|3a#d^Unj*Cgn!06P&wx1>GDjO_b0v=t{~t79X^t zJ-b~zJy@JGDe_J^1Ix!hQ*Y?3iRmakpmFPeT|Mt#MwQDEvsbL$VOZ{HW`1|ct<Gs& z%iEqmepF>BAA6{Bvhqo;TQ57fgyy_c=xpZr$Pv9RQC(I>S#0JOmj`UV?c3_EzpPoP zCwp61>cU@{;NUZpT!TVvU6)=x+HT_)v|1-@mC}lH!cHF?7l<~WT+@<nH07h|y!~l6 z#MsnV$)t#K|1II`_^QpI)hJZUUX}djdE4`#Z`Jplo(gSp*IV_-RKjY}yE4lc>*^v; z->GcK_6a$fwqV_{6TBZ~beIn^Ew~_1!yxkFpbF<kGj<cBwv06silY@mO_C>NyRwx3 zo6{8fc;+SP&kHpw*f^G)3VQDA$lY-MNct6jfxRV+CL#Z&9h&=CRzLq?l))vU+1@Rf zu<FWG9)pc?r_;_dOsQ-z7P^`H=v;AlK<WLrTv6dw3k4#~efJq$KA(SW#?2|&F+cv! zxxVU?f8DR*-~-ppr}*m3%&}S@wwTTMqWR=^Z47$JmtuV$yfzYgccXi9rpl6I4|yFN z(^p3O^ERKfiY|M!S$u2xgPJU-j+<r&H?YWbX}P4VbBR9r>;A`zE&2au=CA9tisX<r zlYf8rP4cZio~+VqKHD6wy4oyf&<cw#-x=U@<#+aS(S5lr)3=@6?=Y*h--7wo-P_I& zHt`$2djI|H!-ogwg%><J9{*49EkkX9szu<<b61}y3g6+c5Z!4X@om%OL-jjtZobu> zG(+l_?CbjQ3(pe88B;V@vN5wu$;V!Oxnzz1L-j-PtG?eBzQ(q}OfDy&RX?GB={vuZ z#S*`)r=DC_U#Hr7|F$^Sxri;oN6O`AR6LGMUL*UsBQrhe-dB+upR+9HEjRvuNv&kX zti_@Z34gCHStjSxs;zl6w1;=IOsBLIFVhbeg$wQ%%9*CPp7!s17<#(7Feq?;!TnEn zteEqrz5lv(w-TdDMod?fR~iFbY!0Vk^)u6n)lN0SYHzxh#MGYO7{@(nVP9aC9jDs1 zO5MQPy)hZjd-ttxdYU<tLu&GgQ#;N+a8KeqV3d9H`}_5GH>ekuWb|i<E3C1J%<?Vy zX~B@Uj$0tN&U!=fo%LJG<Q`}oyuRS#`p&iM6C({oRi@d@`Elm`<lNv*wF~z?OKH1s z<i^rkXYV$ag69=tGY&b&%f8+urqxtw_;B%a?(=HPXR;*t9X!Bb?w4>x>fjL;>B8C# ztk>@ZFZA79GHW4wbeVnpM@xh2xArtK*zKS9kM%WY7{eS*$#hYl_C;Y^KKL%?xRiDy z;!gSIoapYQw^*gcTp73VvT2oNGwV#uf1P=l`*G3F$rrx`@viM=Vc)xE>w#<6HaOPU zMEEdeu^SX6zjpppojE6OVs30oep!~hrd$czWv&Z9GVB?o#V?yIx#7Gnb7TDc?2cvI zW=wh7({la#>8ia<4Ek?HIcnukCcN)F)!cWYE8&T@$lAyV(Jx%tu9pnb8oxLGITo*& z(A~F%Y2xJ5U&YJzR<(W-THGR_ZN%}~p@+LQ{)5~FzvLrRtoMaUis-d<oe(`)5?b0| zThW-Z>d}isPTPO<tzZ++nitb3_D%J+h(cHfXPkqJfI^+cJ~z`RU-#C3(O>uNa{jxw z$Ls$HyxMi~&;^x4%e<7dq+UD?Z8*-!tyy&_#qQXfuRI41Z{OH8_wU1xHDVz~Ym5Un zuGp8JdiZ5dc!&;DBVY1ayB!(}R@iqvE)r9Dv8rf#N|eEgPL{bk-Cc3NqXK6#zOp}> z-q!Tx*J|rVf%0{~?3iabWR;hlTlIdEV}fo&Lz|}HM%ko4XGLq@#~yS|EPDQ*@hktd zHlfXYx8~Y6FaIsqXDqVru`c&KOMCX64FTD2s=xN@HEL}4{gk0raLA+k%(TXudjGB^ z2Y7thI=J-H8QPtDiZ^$s$gJgWW6(NMlf=C4^rnBm_q@9s%lgL9cg_jssaYCf>+OqM zjo-1%FE}eA{P{pzQ=Xd3+~4Zj7pKj%{kQgU)Z@q-9=nR)Olgu~YkJjs?WX?Bng+#< z(XyXH-iKXyUU&Bq%ic#aCDH;X6XaME0wltvBNdm;e8$AHqnstcb!v!7@P4_lwntl& zckJpeTd>}K&h_VoNsj^?KKF_ruvpVRW!BjvW-or(F`t<5TKax*hl`FnLx9G~HTnP6 zeXQ4R@K#$s;qiwjlddPQSp2xV;z)l=SY~CS{0sm3Z^ggw|9}6_f7)A)xs6+!j-L6( zxoM+TJja3uuT&;1-&phS`-N#8)g1>`&rFL*f9<YzM`mSI+uxwAqSFfw>}6S<*i|;| zW4`dJ`$84k(q{gN^UHj8T)6ru@7})J^!-0?|F>h#j!D<r`MmAgJ{_}+h0*m_cgRQE zh-Xasu(SQab)i`demnUOo?fxy^&ZoAf^(SbgWlVJ{J1RJ_Wf)AZ|wWO+gAVhpcwML z{?Ft2sX<pg)!nUSSGS*>biiZBk6*{M<^?|KdHmwfExSAR8<cZc)sjA4V-iSrJk(|D zljbo|V}66h)~{0{lDD|Nsm!ao7yjqYJHC>%?Vm$0%S;IH{T+MZb9P|2LgqKozjyO? zpT76~T;KDPk@>H+wntx9;oD+&_QvUZLWkv&HvGCU?P2KoQ&~#CHZ5Nx(taRTdrx}T znU&M;9IWF{^)cJnkahn=j>>1}D$Bxccgoo|bX~JxbXuI-b0G8n^O<g;5(@(3BXZYe z$!D?ME=+J@(<+-0v~KdG7w6<&z2=#~)>PS^P<-TTw#;nC37S0{zs#wvk3YBL`Uk<@ zeR|Kn>mFojVdGl;fyM5_@5PP11tuFbUaU9Wc=!h2q?7hJix?z2*zJn_H+Bd**j{~_ z9Dg^7m&Kt?zHWAByh`V5Q=irG{Dm*S%GKt#t^M%3@44A*hA{7iw#Gku?;ZSd;Iq|+ zU3)jox?j-SR`=&#|D0VL*InIu<ld)y)$DhzC7TTmPdKje3X5ysv7pP`P;im+eD=ad z`^&;>&+ENyP1>I3Usn4|b^i4I&n2^`HpG}4+8HP^SqWAwyIaIkpmxA^UZl^-3pYf6 zKK*f()$V<wbPmH*hWQuxx+UgW37)x^_&6ar@v`{q$ehg=G&lTZYD;<ewfeWW&x{?j zRxS{q9(;LT)+L|MuXzoVH~IA%Zb*7(V=TxL9r^ftM&pzl%8Y$x8(r0JP392LmD2wE ztIBhIIKzXbd(%{Y)ty*<{%5Yuo7{6=l}k3QTd~i5>mr>QqVGMjFHEwYv-HL67ll)W zmkaA!+>nSZV*7MF!L-+J!9lKFFDw4;Zhq9aAn5NV<%XcE6AwBh=1aVEX`TArfG22i zzskcsoF%OtMhheCtD~A5p79mCy|)kP+nADAHGQ(}y!xd7cmIEgziI!=y-(hLefhJb zr1J|rP6^BwGTf#q;Znum^5#Z<uGx{SkXVDs0dW^L^PXw&V_$35e5ggCNh3U9e@%q& znk=_0iHy#+=bJZpU7X;dFe784hN`Ny@NPNLxm9}(E@|Xo3HW+sO-hDag#r7;8ZO13 z;cFRB+;PY)x%DjXP=^`2pv>Q6Tcw)L9ZE5t_xXrfOXvCDT+i?H`>3o~;<G9?=DXVh zu8zG-+YfVmtGyrVx8pdI<HFXzzmwalHeYN$zo0U3X*{RAY}S(`o_RigbIz?Rmp0zI zye2+5NVxH~%N47-7b4X=H=pUeIP=GyAD!H3Ea&e%-@Wc}-gmR6V1A3Fn1nxXL_^No z&EO2w^qBQHp+;ebM3d)=J*m&~le!pmCT;#JcCPi@M8P}3LNhtVuC4M=yx}#^o<CvV z$8W*EkG8+wwdT6x$!ndj_QdD>U}+PmPPSe4*Z0elsskHz_8;oqlqAI&e2ZzT($CrX z75{Q#%x`k*sugZ{e!px>WbmD8O=pXejs+XJW_zm4uMTEyZ4~|*d}Z~0kI?OhQXf}e zT^>I}=ltf6e~;OwO>^o^F+2M0@l9D><y*~m{8ihIA6LI6yh?TR^(coBomv%Ji`Ulv zAAZ<O`&z^FXJT3VwS*1rO}}PYai~t>S^vhwXkx+IEA}s<)bG3V``kD(DRINH2Rrgs z{QBi9m@EA)Gpcq<xB0J|b-(`w|316_+w^dO2YM00{r<*|mK)TQYT}ztiI}Hyw@)hP zocZXF@Sg-z`NnNRe@?EO?zjK)O{M_*TZb=m8SSet7cMiN^#A?3lm8D-o*O3o?dWv- z_T1MAry}1oH)wM27uOBB{6*~Ntu5;wxxTg9w3p%Sqnm<TdY_9X{0&{+xw}XDoW*0i zec7z)VYBZnp42z<)ve95j`l9Hn>3N(gx>crvzb_5Oy~aQ%5mn}YR?=&J(1v$142uF zo8P^kn<2KqG<$1(x)F<o-g(LR)-%o_+n1-XE%0rsySPp*w#8z5uaBlh2=ncSLj48r zE)+2&H&kz$SSgV%dy?(e75zKwe{WfN?BC~CZ_L=2Si7FExE6Mx@}B!~3#&Q(2Zb0H zuS<}T+1l15`LOmZw}a%(#pfhWa;x6hR{X<;v8Y1KSo`A9wu)OG51y=_AhPjCLW;bY zpGRQ#^uzIAZKvh^Kl$t8IgOUNSEcGhYR?-l__k)AS-?JiyW8{iyY)XS&lLI7vtz#T z<HZhHXWaSTotk_1?w|hat3I`V{qv{(!abvUS>1e#>6f$~&F8e?z3}1K6czF1U*E4N zevqqbyxgTzRCCu)r`u-5Z}JX)J-X}7{R8_O6n5?Vf6^x>;=0I$j^sJKe!ZK#Zr}Ae zv-rmDi7NJyU00^|#%?&M#?qXB{QTFwWyjqglx5s)zh2xRwNxm_=tXh^YeU5PO6${7 z!dY4qZ_mik?tH)V*xypWkgk^bto$80vjaO$PCBY3P{mZR#l}9eujJ~z#b+I}Uzt9R zW_;n@BdU6N#p+h4Z&}m7^ChNS`g>cICE)6!hOenUFP^8_vTGQ>JNV5|lrcVD|K-<T zE^)WCc{J*}Bl<sYSDy7ove502Fwbo%<2Q5naZagE{5VhatcOA5%q}jyRRM|Y+C7oR z0XvnhXRmUS?CoFW*}BEl;<?&_10AQ-rbgy+9Qz$mzu>=I0#iuN)HxDN&0#{S{o9Qa zI`*$U_A1Mfwbt_T&(6CI3AvHV-!8Y?tJK!|R@GkH#2&`o#CqmPTL90aB(;pZ8GD{4 zJY2D;!065Sb1Hp&hAR@p)rv!2O`Y7hd|P1Vw{*+E@CL>XcFWMmK~ZWU7pqTu8ReKY z#Uy*TH+>d)^jfO%_{DnOtGCuA9NGV=$~0hQwo3oQ2~1NI*J^*7ajL;tRD(^l@%x0@ zOOdX<_bQm&Z`M7ydYoH!RzO<vrvpoTMIs&_+hn&&c8TQTQ(I5(P3Jnb_Oha~N>E12 z`2+JOd@&Mubbi(rqmmhqbeGtryx(?oo}SOO?tS6W(;b65T&Cqo-EIx>_Y17g_vu-= z;Ev<%BdUcxe5~69E_|BAa_*?*E>{7E0)>??Q#a~{N^QSkcJg0@{MwHJuT!PY=Y(E8 zQpx-0-_!Me72B3QKf|E=`~OTi?v7Wz2U(9^_@f-lQ@C@<*+a=MZm`dixU|yh-18WT z9)-dgKO?>NO?A-bJXGgg(7r0Wso1No%DY<NK**PftZU!RI^X`xPGps12tRwCOU!qZ z_ZhdZF;_j`9<cki;)YX7;#4Iw-{{Hz(|@b~|1tlQWrqLGzdJUrP4jAyxtLtN?e7;h z#(B5D{mfZ;Mc(uIJ+FDjYK;G4l4@Q}oceI)d7s9LvkS^JZoe<eZ{S?us#T*VVA8#0 z!{uwPOFt#NdRh|jZS(p4vge<^-M#(W?E1g;Th;z=pJ-A0_3Ptb+Bws%9m+V|V|&R< zpslZY<`)kg`N-p{ThGo+Zw-9S6f3!gaZAXQKlMVPJKBH8-{h}*&;ELSf0<S6+td2> zUQB-Sb{f$k0jBKDr;gn$nl1i!%fB^p$A2dMj@0~Q7(Q=f-w~~CE$=QC@NZkV^LQ%9 z0+*}eXS$|6=R025^Q(73b)&E5xkayk+t_b&zGQQD%?aTWKEYspsW&#AC5)Ga*D$*` zyB>P-`y%UwSCi89e*OJBFXsD^=nqYQ%Qyo~8+fm_&4_upb<#533E7vYDL#-rGs#8i z1+$7n+J{;ZtJ5D-HkLnZKC-4cH}e1A9d*w>yCm#6{<CXZt4COx-TGM@xg>gDpVv{p z5&L~^_9F}5`41v@UwFOf{H@kyC#L+6o9FFwhQp!Zdwltx{j!sF8X^~dnm6UAlYrYs zHevPT9MN2c9^<CH<#GF;^KssLdNCmJ*l%Bkoi{95ju+TnF$=s@*6?r#?@z`HM}EFn zf2a6U>PFM0_m9p8|2^{WYkvLhx__tBe}C%V@4~Gxf6CGg^Y0(lwc`#6@&3Ck=jIH7 z=#~!&=@qVyHk&jG_!%w<U+A#iw0Q23X?>o>cC-2yPq6fu)ww%PM<sXuZq1dcHiFN6 zzQ51@##Vjm@hsQ67hJo=vzIOsj28cU^URIs_mo858vK*pJ(G2>l$Fmq=9Khb$@6A@ zDLj@G@rM7$7ZwlEH95k?5_a1vCooQK5YGJjlDS5H{^d5d<emds8x)ONrGzSPxNP{m z!Kp6x{GPNIyd`2=lllYV7i|7&p?8|mJ)JH8hC<fqirT$%!na<(&RzYnz@Im_O<1#V zulic`mYP2s-nRyA>QV|#`76#*bXOwr3rDq6*MibzhHRp%+XRKGVlQV#eUrY}xpGr_ zYl(rx{dM!A&E>Y<b`VOlIIXw4B|))n+s5PP@1I}E_NsQZPupRg;}%M6e|Y+erdd^= zj5(2;cYbyLuY~EQKlQIyswm4|sT61D`n4+{Fup%+_V3hC=cyZ>*p@#&!R-9NYO~Ru z#F)u`_s-mS+@rEya8cYEkEb^x&US2lY4UPvceB?qgBh>hn=ptMzRqDTXg_lAlfZoK z)`NRocQ<M}WbwRMTUhP8EYQn#>hs>~=Nnd=2R%|>Gx?ibG|!^-`u`@Kb68yI!TyHx zpMcG&?8BuE*H+dByvR|gu~>CIrCFmxbJagV2?N#_Cze?=pGmy-N}=wB@r<0u>C=7B zlx)fUAhP|?Z;_*doF7x1Yxqv?nsNPQNpMWp^%+y8zNKB7$fli;_#j1jquA?ZllXe} zZgM}8%)H^?TZKs1@*_MiTYqdmmm|)SFk=D3hUCcAZ$E#Md0~I=x><IX<biKKTaTVm z(7pD(ll|=V?05X9Q|4Z+PClQ(rjsIEx~)1Q-KliLypw|8T>>{OaEQFDFyl(f(ke#P z@O0Id6JOT+>X=?q%k`&9p0i`B&F{6Rk3D#9z5Z@)!D}xuc8f!&kEK6RyHI{m>;daF z*OM!CtZpy4^(rp+jdahXIXW*Ni&$-mVb8VuGI8;vHJ^_xnZ>a1rHrwL%vxb4ZVN8m zDD@xNBCo~c#An8AiM?F1S?zzl;;(zLUp}n=b1i;b`TKiED}TRw&HiQntZRYaof9-Q zU#D*Fi%LKJ{lUkE(6;aTKhH2W+`3?_(b}})b?7?LJKwbx9x5C-+`j(Wsr~)GepmVa z)6f3&|M7=N=hS=O@6G$>dG&JbF1-fvC6Uz*@f+7azVDT)<feF0?=CCbr`=!Q=W{&K znqba&_xD+|*=_er*@SK?tWxP?=44=sVwWjA7B*Ajuk`beTb>D;vu*g@kX5@ya)a-p zaEBR|T9cC1X5VOBP}Hu+KKb+tw{`R7OF7i$elQg-Ri3ut?Ou(YM#e_FKADK9#0PMN z&;Q1H{?ajHz1e~5r0#Z}Qaq4i@c2UZTf6NWog{x`^{ra{#s5m{ipjk5H+*bN;c;2G z+o<wl-rM4J^$X?uPvzu(d1xwh$wK^J^n4YEgZox69iJr-p_lN-N0i~uhp%qY^{GA! zo<y7c>RNL4`s+2T{;}QRmOrP|T4$&A_J(ruDxT{9#%34aM@GD8mg}qdl;!oR`PKeo z&eu)n{gVH;|Nn)5Km7k$eydT`R&KQY|2K`P$Ayn|m89$J)!$#uPv+<Qoh^TS#WGG_ z3+dRNfJ}YO#JKCF-;UU>ej-yD$tiMl=M2H~te+DTA7!ac5I#DUHzDXnHCGAGg4!)N zBy>4@+kaTu$H#4a&+`0nPuwFLmLE?pvzBQoz2&_2)~zS4_Hxqm^a6H6k4&Z|e5{Up z@?s8Wo!oLc;_9*;&Knz7{lB_N)wyofhSGH#u4V>u_y3XnUdE&;#mXVQg>`n7(bB#z zrncYe#1jOo=eTb9rp5H*Qrvo;2JvrNZ&b@#YAxq4cyZ5iRxjUy>ME|e&Mi&GJW79- zu3~wmyY%7)--i1ErQDMu&uB&7C{IzdDnFOO-xZhsz|A>)sX&+4Hg-wx5O(ozS>Ghw z+ZjUkuAe=7&7ue2UaTy6p!Dlt(Hvfur4ftxx{5-4H+Nl<c(QKU?`OVyj=S5OeO@}Z z=~SwsUr_(*g>%c7G{1exA8w$OwxDa4+1j6nWmgGhU#PaMH~6AgemPbA;(4p;T^TyM zt!tA4*B0!{zOZ9Sn#`$<ukY)&|9E$(%bh`eosYMG%a>;ooWk<uZUHwsTa15lC%UZP z(Y9mOB=7$RiftYWWJg{v|5&=fu0b>NmBjNfi+;PNBj;S!y^&zpbZCdw>Rq?B<F`Hi zWGd9jz%*r!VdnD5>_>mjY?K$e%~R+6;zf#AN^(uIfwe%*A|?m+JG}?L964g@$M*f{ z3(09*)eXtMj6ai{t}A|8;&NQ)<s>h=zwu%LH<>t2rL=I=X6co%{Np_+*kGU%fBLH+ z-@V&L9<4_%Hs>{KnQ3;3p1Y`gPWfC2>xzI=1+P4h>r8FDbZ7~a=+{8Oup(cB<lxG- zO~p}De@Oa@WCm6~tbG{&;LrA{g`x5hjI1*jJz;;tEIy;>cN&AVCqwo5k43Xya-QF! z8*}@V!yAz=cRlV|-;m#H8y)7h+c3lWkuk@o1CM^D8@|-PrN9yqVd}H3{Xom2zlRqr znd$i<TO+bqf9kC4MzINpTv!+wtNyC1Wi^{VJZ=0mE_k!p7p6mPYdRxSC%jpZ8KU<1 zPRQjyY3yEmkK4Yv`}API$Na~U)9>E6{xRmnnoJgzsoKH^4#svn7WTE6|C+P-R4vEs z>y~?$<jjz$<ooltG(Gvs^`=w*)AuKuo114p{eSM?sr>)HwK+a`-kGfaKkn!GYoV8Z zv3}@S*t~gP;)WyZZ&c?tui(9O>{*GMf}UA_;C=?CLOJRE_2tsW?`>cHKlpv$_OO5R z-_+z~fBJ8{;^XsuGd}gq?$lg-B=?cs*R8gSoDmkO4GO+<znR^#d%$hY`gG5%9P$4< z-7mk;t(=_0x;V|J+l)V}dd5c{y=lq<ysz_am4AHA`aH(=z?N#h2Hkgux&CY{-Qpl2 z?3<qR(5`>ly5!13GZNn`uJg`HREb{4r^Xj``a?igs?zH8>#sWuCoN3cmU=Ga{bKdo z3N^`3YDEA2soJKuYMW!I-8?Vp*P+SR-s*16ytZ}b{zJQtcI=e?@gP&Ka%Ft=!zrxx z@(cA_HulWT=Ka0>c=c`DbAgv_rE3>$460Jh&Pn$OOW($1@UAP6@x$z?B_BS#*&8S> z{`YFD9h+3??=6N#&p%f3hCaWx{EMvX|8+m~N)p*>WzHCH-<|$r@d4)t$rnCtVp$Md z(bx5;;ltHxXQBTm(r+EM+ftCPUTyO?@kWyWkEYVeN)1UI2h$UKHmL9R-*~=Z1H+yk z!9wGRWu{x!T+6nRF;v^WTkcHp5x-eNDa-yAyVl$+y#M)6>5DfKr9l_^gpZwC_Sn#b zd71Op*OwPJ&b|0TY>WNXIFE$2Nsm}s?ESxd|Dc{|>>Ipzm*<@e@9V!=taa4cc<<g? z`?hZy;+OOE7TsBJIcSby;oZx}AAVN)X2Z0BlXuOx6PKMQET44L+d<&|>C%~8wU2xZ zowvOd-BjLn^G1MMwOX#s9phvC!UnI!-?6`YedV^rA-1WRA~};-w_S(}e7rE>uaaG_ zr_34SUl(`HkX^rC{A*Pz!=4S{Y&ml>_nZl5TkG<S`L2tqebu37ty4cv<E+tax~I7- zTwQH#YVgDG2Uibql(SVhe7{jXbMr~_c`M7+jvP~&!NcIL6fOJxg7(W7ZnJWw4>o_A zy(TFxW5(2!$zj(MPAoVO6Y<lHNlxRnpU9HhFA1*t;pzJ)1~WXY+_{1KvFp0ns!ONN zTd!}-c9c)Jqr6Ha`AwYrgE?1Bq^>bBuG`@!b;fbE>w;V9{wret&QtO-T=!JS_U+t8 zD?g>ynMyOPjV|okaHw;l-`g%NzvQoLQVLE+<+GTFtM#@$pYJ*6*FBp8tA*v8HZUDx z5#>7N{;T6$lZC6`>R%hS=B+aLQgX@d<0`o`488G5syi1;N!H8TmR(M}e*NsMtfTCg z=3EuguJqcleaG>c8jsg|UV45{aBHkSr=!`w+H}(v{)vvZOaVO`tPQTaELC{s<nDUn z{29wh{pSuC{HqJwUv~bLV}PCUf%yV0lg`aJ!%(+={eCqjh1Osujti%Jro^wYHIx!Q z&|G>`EpEr_bt>~uzL79ZpY7s(Qeyq;51VIcoLIB1W9@}=JW2u|cC)pnmOiwqJ9a-< zFhgSU>lJ>#B<}@tob_0n@3qNVc>YPdS&_2I7bCX*^l<Sz$g`Dkhtb8)yCc+m=6Y6d za`*ZBJoj_;jbqdH>zn<0f0gO5NObz~0-H$>r|_(Dw%L5iAkN1mJ!V^YkKYaHz}ToY z>CtEUejlEE*g5R^hc%i^YSxGMWzIQSS^O-adh*^!j8T_WM6~W7zyDa|F`L?CHOIio zYZX6yJ@p}d{{LNf@A-av_xJ3qKmV(>IX<X;ySu*b>yEI06M4$!_MhF%sJ-w~_*t`C zJC3{xXxd{OShl%y`HMN%?o798{ty|wC4W!#f3=z=tN;9e@VzdBUtTZ!Y5hj|+K=vv zW;eAPXB!wCbr5dvZMi!?;qcvSo4W2=xi@Pv@;hXn>k7McNWEdr(wApG<dpOsy2WJq z&t_@=C6yOu=^y%@Z245<_l0q4-Jfac9@($w*9v<s`0ndox@V>N|E8`jSFX%-@w0xT z+q2Dix1Wz%XO`SD;RoN_TuvOn71+=EhGFZGi`&1XU*@pcz~c2rS@plg`8)o6Mn5`2 z_FrdyB=~~$4ci8>^#9Yo>zr;VT>UU#T2eE%uzCJO^&h|83YMQ)#%cVaHE!bGqme6{ zXPR}+G-Hh5)@{4S86YCP?Yop`uxhn_1aIDPtyN18o>4iyj7_5Y!Mphjje{kvbyj>T zv-9tnc>7}7)eoACbs|Q}zEi(>MQ=F3=klpijro$#+OUMy0v37gPji`C16NMH79>-y z)|0m9y5)EEnzN!C1Ahw$Pn~wu{rTPFQRP2ZSNI<OCiPV@Y5&}$e2MQ#*_U{49dtiZ zT$60KQe)m+^;iF7X4FW(HTpK0d4_mQdh?{(o~7@Sf;Xln*d^FnS6y@dav@sS>G4Ch zqkX?P-?Am|?KAyqEbx3w=g|(a83$(wedZFLrW95daPn_*yT#W2QWu$u*0ucmYYu+y znqGfjaoyf3?$p^kMAf%Fx!||$<}Z%uf-?169-(eYKF@kpy_<4;Y)*4#&;Rx*CrQ9b z;Iq%^8qeEIzAQfP9A-Z={pPoUg~vhm*px$dGjCOE9k^ieJh)$Jw&wm1e<cbJ-;0aa zfBhA_2qYwOLBgeVOLi(A$n(13n)-TLV<1cM)(a~WblTaU7>K#BYO1jqAA7><yiSm1 z!}l94zfRwCO~~88xN;RAbHI;#aaX42z3A1JX?0$DXWIt->Ldo4Lj@*&|H@rUKKovJ z?3OX9>22@UH{J6uEPfuoZN;vO86~_LDFLelZb(KJAA2I|Eq?8m%BRI!yBV5(ad_y6 zKG|4q{pP=i)8kt<H(u^;EIBqiEo9f>g)3Z{xIV|lvU{!ieWXMD%;vW|M<jQ!Hf%bb zqWo`eF6+dKGOkx9A#+@%kA1g`?wfSELniQUPv|$RUpgN*FWFz|AgsG+)g4c9N81Yw z!5es{v$UKkkzK)dV5g{b$u`;B>LDBV3TzO#x^s4Fl9hwXRpX}_ABtD3d%R~u)s>kd z-YmV1Ms}W#nUA+tKPqr&a7x^K;aEUJM(Uc`6PG4>WGoK4vqJme0e(l>>$~6l;M~0O zk@ByaleTe}16SP>JU8i3L*<F779PQkS9;8h%99ye=3m`ns4F__<gAb1k7VqwxShjn zv!(yKjj+d><m4o|YLoMMrW=CQZZt4_GEwrq;!zVNF1jf|au-i*L*d%lw&$L3{uXNL zoqOf{Aq9z(jVq4t7A)!DOh`)-Wyy97UCQEM)hNW|#l*Jb`G#kz^J^QJ)}}fMdS(fC zC>XGH3QoG*#$dcYol~lCp7YvRRnEBUj<aVoES%;(<^PX0wRXdg71ciiv5g%$6E zd>$M-%Am7gSICz+Q`Y20aPJl1dHCFF>A%nK|FmxXv_D?>ZTYwG|Htyzo%~;Y>EC<? zyHun7w#6~Kf-Z$0T&F87Yi-N@YxBKNKM%|FHQ3De+{6DZb=HJG{`3Caw|6=J|L<Pz zX|^|~+y9ijrCbvdu|v;jyU|H0UC|qt)tP@ZPTMjmVIu>V>b^@y3mjfe_?`NL?bn5( z2S3wiPZYeM!*sh)_we^jr4yRpE6+c9m$j(qc)96Y{vM|<nd}?)GbQY1^=?e(dCS1^ zU;6hpZszh`EDROBoVmTH(zfvX+?bxF`Q<!lfHFw@`(AT{c_AqgGh9xD|ET-K^_q8* z+W*~>Z;Mo;H4TJipM4WL;IO9dzQIN&?X;zlbqf~oDxQl?d=zIQ+VGaaj%ka%V9W}m zg%(DyYkhMjcYbW2np+_HZRr$7uVw4ClYQpc2+!bkpBK1!&X>hARu+G9yR-S+>61am zYGR^OD;SQvJ3Rlxn_gj-3<U;(*!KGuBCfr;nP%j7zm?G^{oV1-Z5jEC?jKiKwC~BR z#9PfDW9B41N&ft?;>w8w*PD{~qj?-`{>=Rn&++E)HpP1#E*Bhyzx}(-@?So;QLEr! zN8~S2!;Lljts)XGMMZs(dGtO?jO)#dH=#c79lrjVv`zT??<1RcJP)6E@LJ09?`bzT zIWs>0^51+}*s*gJdi!S2QjeXj<@z~;e^a}>vK6xhUmL$e`-PoC!WW{0OsaNp-!bsp zGNFIbe69oS>C1T7rfa%&-}j$(bi=YRjtu`3(--(UZnr#oPeNFB*UBH4cSpIV-e)-U zK$^2bOYgAwC*iouXQzLw%4MubTyNkoYkK6xWcK7$3e%4Tz53$v)UkNBZu=7Vr}5up z`m{|QUQO|g4ewvE|Iyk-(iiuLgq&XWtC>fm{&bdv#?b}krkCI31k@|&JuxnH4itaN z7P6wdsZ?s&HqMmYA{~(vGlbNfw=Q$7zbC|5_j%s&ubZd6?zzSp9KXzZANw=r>OX&a z_RpX5X+Mv^5p@n1f%j9i=l|a;^We!87Pm8Avoy39u97<VGV`OD^ZfTyS#L$}DYtjs zdS5fqb?RM74_$`InS1Ofb)8CRZ1jJdVthivU(Jn~Nw%wY<8!Sybu1}H2UxN_*7GR8 z_1Gl+!F8&g*5la?T>R&1wGK&MXZp9u^M%jJ3Wl(Qe-fTL)F%6U>+xIjyj1A}t7zQs zyz>g@-3}!F*q4|4!+)94ll<E+l+9Tlg<cJf&3^nnNiX00>zdvrSC}_nyAa=*By`JH zAjgPt#Tqpip_lXjpGYWvW~XbDoKR5lR3lAGy7~=IXZ@G&Q_c3B&QXyFitTG~{M&u~ zPi+&ch%(EKG@doPG;iki-eL^<^m*g)8BYW}Rx<70C8WJh)L!%l%j7G6thX_W+L`yx zPC6tf8n{XNz$*P4?1nEBH!8NA$lkjs{{B(lg^zq!?F^sw*5L!sf>}*#YQCu@Zm2b2 zTEKEX`{bsRhc-X(dfx7sYPM<GCf$TP&p4KCoxZwE`T8xpI=N-JCs^ua9K5SmHCY7p zPuvlle0aXwm-nmJ&(OMAD1Y6if58j683I!4|0XdBDA=_hVQMt{eSll@Im?6)&#AM% znl&6<+ZfwAf2qaH`!Bg7>VDte-}mJI-4{Q<$NgWwe^<QkY9V&ErQ1F_@2sC7vN$yJ z;VPjS@1zS(i)`Wh*80Y4lQGAXhRCqDcW=)YnD^<)|MvU87uw#lzy0&ln{N5PhR@E5 ztBPG%+K@SAeL|4H^kQkz`Zw#dgtWQMqSAvdFU`37a<TkQ^=;?(^&FU=eKGmmuZfJ- z8s`gjx6aZkSaG9rl81vs?H$F2)nZ2T7T?&;5R$v-JCD_;*&C9Vb{x8+JoEUkjb7WE z&vnkfC{_KGr|?!n?b}?9&Uhb@Ukfy=MenXWJn_r@O<aC#jW?Pi6Ti7U<T<du@VwR8 zomouBnCwpkE}QivNMeVB%SV>m5sv%cPfx#at-OMdVUpwh^AnQ;Gi{^%vJ4Dg>{(>x z`baYL`;NT-a#?~R87z{L0-9BxZJvpTB&--d{`{TrE%o&x#v|?Ln;T{se_a&3NT^}+ z%!V`PHkr?DkiHSv!RT`!#ER?Z<uvAmw?1pjzlgH`sb&v$%CQOAF;}rkaGI7LtH6GP zYmY3P*mM;2!kJAhTkbLmlsD@3e=dJ`?b*)WZ_MA83iEs~oEo=c#pLa$Jnsl3mE3){ z<^J1WJ-NlM+RiVtOZVA)sww)f@hnTc$xC3B^Pi{J>$&V@Kh9DAzFfE_-k@4f%`r;n z`L6t0rY@l`H{vbAZ>$!WsTWoJ>kY#%sY$sU*5<4_Y!7~9b-ds(QOVfweBR?17jnvD z4&3-SV_R+s+Y~QtK8;yI7u#m86n=Yv@w>R1JA+z{jvLGAe@fR{8MGPqa{S<%=CjC2 zTD-d4aBJG5Hy+E`g)6Ndum0hC?EeoN6Y2QF?XPtl<~#6oT)*yJ30gk(hIN(V<ka$Q zlS5`iTm5r5q5Pn2vBu5+%lA2|KFU?;KX%XMiPp9qkMpHOpR70f6ye|0+{v=aQpA~? zd7<pwyF#HYrwZdI+DxBx(&b5*?B_R&i(ZKA;A<8aeUi60=;7XYqZd9#SEpaU*)H9- z=Fo*h7r$``*a*xtO`q#ILweCQeaR=T_isHqv&lT>_FpM|*~fA*Jh?Odc{aqT{$y*s z{N(XBKY@Q*rh@r_7lN;DR}RQy?W|q!BIFvcOZcUOj72t+4>l~Y=1FtS7u9+qEPPM% zS{M(P>gI`a+FrexcWj!UB9o-}Tt(ZfQx<Hl5@YDQc%VDPdx26?Zp{4Pi<92T{Jopb z^738EtG=r~=cN1Pwb{1RAI~mb`X>Ef?ZLmN8C{v|wJvX*_lGC>K=6|X73Vp+HmC>J z#@fza7B8tV)##dL=<nPZ?)kCLw?2rMzAaF8ZRNQ<5sl(7hj53@FGcwr57_<M=a{d0 zG>S3s&!MuuH>a;jX?&cyVLkVEjb<L@x5ktB<)3fe@JaCRj(>l?ZxL=asbBco*L>;& zrlt=@-<)R`zdaTwu;92B@8lf|*)N#QKiRNs;>^XSy<Du%ealsUh<iI8OX-xE@ulGZ z@6CH+)}&8eaWm|N;fq<X{`XfW{9hyFcKHfN{r%iG&vRlg-0XJ<KOivAHGQgg!sQ5M zJ2lQ}(->K%*nP{}=D)DSqE2`5Q>W{VSs#VI-wSr&(pf0-PivM?)A{*)udCDE^VcSy zKKgQc{O9Mat`b7!=a%Z3@mkAOzhPtC#o1%3CR=^kL+8%?b^VVw&nS_8yV@<_U6}N; zQ~!T&{q+9i|J&vBS-PLRUN3j;N&TGGd2HU*1(J;0BxLTaW}3WVs>gn_rqaDRIq}a; z`>vTLOj7;Aac}=_Zim+o|JAMiQ-6QnwP>5Q@t+^d|GyN)_K;=Kic9^b=}j?O^XrWp z&REZ5+{WG#FM2@fqrnDyF2<mSPi?PbSk8RDrTL2O;;pSsQd)O5f9-#EJ>Km5sUvPo z<!l#34j3F1?21n^xhulJx<{?Xt@pWZ+hIOCU)w_yU;Mf?pYxLP%(Gz(>2-n|@_iY2 zzg4U?p5&HXx|d_Z&DmO8H>fa0@iX|(xMET9zE0JyNQ?PP_F<=JF1GX1Z4+)}ujp~_ zK76R_tDEfJ;`QHG%<|Xih<j`oaCgrK6;Y;hx+)w|8+JHM6gzrT<yu(V+v0EGTLfL? zzcuYxc)jM^v0_%XJE|@J6(0F)Thc6`bM8P`k$$T6WjmMe3_Sjho&B8lZqYvSO-FbZ z|4~utTF~2B!Ty*v{pNA&cb_erR$3&kXJ1huXLk0&u29uCQ8&v34lIpu`(t<ci@>ja zSL~c(wtrr!vU_$$rN-0dlPPUto}XQ0Ute1<ldWlQXed`K<|fT)=#XOIq_C*-q-*T? zlaa!IkLb@dOMjlkbaG>v|1=&cG1mo4_<ys{Z;IIEcKYPRGaDz_Ki;KasoTifcl7x^ z_2>rs_h(u}j@Uf<Ws<5D^67jE-`6jHk1cAAcb@uw+WF60*QPKXwT;b4XWeErPpBf4 z^-1ZrH;2s<4~etdIv?PF%kDdi;n*TSonwL@{dVkPWO*VNdm?11K&nCi&A8U@c~NX} z@%pd8s~)-ypT7tUpJXI?Bq^lT;KKGb%WG3I@{cW$$xvH4^}*BGO|MUV^!7Sp^)e%Q ziRfhMMbo6(SzSxa?{dBCZFKiMvS~(EphwzajgpIZ9(FwBs9ft+@xb=5=F}zs^?2kG zA8;MLFu_{)i)4xei>!FomsvZ{RXzW;JoyF7n`QoQH~co;{qsqDB=fEE1@+~j=fp1G z*ndccL%G`FDD$T?rf2S1e!Cv29&oT-V)1mT%(@vJQde#-+m{h?=a<v19Tz($KeIfR zxKc`uJ%vMVbLoMA#tetphkvGd+-QCCsO#svh?)g=cC@#O@~=}gYkpeR`G@^__uq{M z7ZR2poMJGm*OS9%%hd0NlCPztlQ~uuUQU@^F=4IXls%yVdb}pp7bneh*nC*>eDjuT zAs^C3Jw+GJ%Vzkpdh6L@BbM)sLPzgU6!K7!xgPX6MybH!gXfEx0z1nWqzJK2;M_aq z_fMW+5koichmw4!4Aes<WGucJX@AjtbCaheSMAWNgQw?t$LQ--Pj_5*L|Bly%z6Ia z-X&}EnPu26bE<4GQuq?Ec^3B(<=&~Wta8&XyQoQTsoDCy<LZXwN9Gy3Y+o+FqJ1*O z$KU%cn|1ReV+kgP1tPIY^~v!k%*sx;r0m}K(|^VSgJ1tl6&<qEYl_sWuevHOf2;L) z^OxBNC113;%*{HvW`%mFiRS!&#&_J$F+^+6d0TXBpAJVzXm5Bn=cGk@GgVTqmzQU7 zTv_zQ<1Ob3vuQS)Kkqo!l*!%vENA1sbr-+>EdTc?OPfFY=zrng+4YajoBzFM{CHjO z$MstsmTP+y`lnW@e2wV75WFHu`r}N4pZp%aiy2Sa9Q^n0=bb9`)5`NAxo`bn{@$MR z>i-pg>c9W~_Tk~ddGhDKJr%c)O|E*=ZpS&riK#c;ivRZ_u^B)1MX&Kr=brsVzhWK3 zyR4ktr;=hBriI-XzFnzZr~hv)%L?`f6RpG)=U5i|YjiAMo9m;JY2RF`azWqjTaHJ| z1+!}}qUXF7dOsszVZWy7#Yfv5R@yoA7yprKSYGwcTZMV)N?-nc+r#{1Gy*1kU(|AY zXVlaA90`}~ScLnZ?=R@`>Uwre&06Tkv3=6r`;8eDl9?JJwGM4QtFCjM$$>q}+Vp(Z z!+ly`xHGNi@?H=-CO%cT?a!`nHUGqguf`|LySeG6ddUCp#jkR?FD}2gn4zhz{##-8 zufV-YwY>JtpX(3a`(|;9k*6^@^ZTFHmUUBlZ9AhCBP7-<e?Q9F+QjfXul=Q%wQ;h? zjq4sq4y$&(d;fpG<n!=T%d*Zixp&>~sx0uZpWXF8XRpC4o|N5D3G<DGV~#}xMo#B# zUE9?AJnF|ijtegjtor`T_%d%!hE2+b1m9myYz1PT--RFdDxZ(J{YKXCddBxAMkVhZ zg4*vya?Os}irDDb{H{=$waCcL?)agwd3SZHHaMMY3VYA=#OnU-<HcTo*&FH>ugyFE z`na4*)1mJZJ&$uNSGl3_`)pZQ^ZBsbT~USy=3Mv@xz6#&Ps5umhSvAAZ6^gCU^2M1 z+wX7Bk2_Tl!yZ*WI1zDslTduT{xk3>({znE-l<DH>Y5hSq&j&n*?);4`;XMbh|Y@| z0>zKHCQ7k9<cNx#%CqE`(IocrJ+JcDE{WFmR9dm}R5<rSX-%Qc*Y{73^0CU)T~k)t z#6I&t=O;DgWs+yOPFT%cSiO$%jAh38J@=NhzO9g7q!*Z5c3b(y_kC<SaVK}}{9F7j zzwY1r8@qScC;xpReNVB<M492kzL3k$OWE8w9v_dG(&V5sSNr`!4b9ja#kYhN+$U9T z_1jg_V_I@NY~q^|*2)qW=Q|!uK_^1`+V}4L`{Y<(b<aoXzyD-z2VK~GZE@B4Rj!g> z?kqXrt#VA_#gR|;mz5sOJC@<{Zhccr*yE{23xb!L9#i?Lym#xNkAXKPFVbU9l^5k! zQ4U<$W!S&_>?bDM3F}|a_SzC55&899YvY@~`z!6L1MhS;tajSG_xKvW$zn2(x7?_{ zYaJan<4Ml(@L9hyCmv~*t62Kk`qqr(v*-0{FK>Ru_ajB9phe00H-n|NRI;FX$Qz3? z<^=~+ulP<`@go24OVi3b>t{xn<>q|L-Ol)q<?V)2@6<m&RiUz*S=d8v9=-Q5`{|u0 z>m2ren)!K-%crKz2}_^F9kXN3Xw$ym@nb6Q*V&B8;pdGfCxoc7cqpuN^?zl&?zqH( z64ld8H!}RKFI}AWy{k5`>)m;y2dAdyIx8n?Pg-%G|ARyJ8R5y%e%sbY-^!TB|5sMR z-fP+OAH}z}iqyXOxgxoigW+hr%hzuwycv#4wW@B2=sPZ5{rlToSw4<$T~UE0H7T!O z%Qn}T&#eCa=JUiq|G)148NTS#`|rQ6w!3#M+vK&jShv9Cxpz|M1@;$fmI<?*DL%90 zyw3gZ`QkUiFDw!@6IgI`%dZ{ZUvK^K_Wu3)T>BsI<Zt{vyw`TV{<ov@b(yD+W?nEZ z_$*_us+#p~GQ)K~pDTg6$Ly?TnfPB?Hp{Ruf!lG0*#--SfC(R))#c3;Bn=AR>3@_} zt?r4mO}<}k6z-FttlimqGMHJxtR;iBtSabv?M-XxgqvsX<uy#YT+$<ExBT61holU~ zkPVVk81CQQyV3vNo9q55PQt$hw^<5lvv1`7ee@*D>Eg9cO&g!OB(w60zD+v3jzPfw zq8$UrS+7-$0TYZW4gMUd>)HF#{y)!diA1*F=cM20uX(-4@_L2XVgK1HTRj#}b-uH~ z>HR_jKc=z(jR_~Jmqg@+91opfu+=hR4}UPn_aEn7AMKjq(cSqgKgrtncZJ-?IZPst zTqb;obe}9?oHOV4^vzFyo?o)p=v&sFcgmACXG*<uNDt7N)v>%xrK~WfQ0-4hYk$f& zgL8>{_|{$BbxiJPUjE5>o##WFY9BuLzayM2a&(4z(u`Zje(HV5QvGIhzUPZa%H~-O zTT6Y#@}Jr)yzBOWZKlPB%1xHG`>m6@J3FhG3U~KE+M2M|hlxLGj$(t!zvt1x^X*?u z7N2~{cEz8x3z0V--deoE`7B$kzu&u$n+uM7Z(C(2rkM0&*W=Hj*0GCq<1?Ofrp)ZB zN?>cac`dWKEv=jL3rEAmI-|O!&)gf@qO>=p9J+qwv53az0^5pnOg70E9Lx+Jafv<c zsk?hX>F7%5g)aLTt0KPrs!CjcU93U;yHk8p+eE?D47DMq><=t7n_e$0Rlhn-d$QL# zCsE(~!u_qs>VsG21-6R*Em!k8`(*RkOp668{Ihnpyy_@=^xh-m-h1PMk2fE<9&-5i zUUZ7WV&NlOyEmO^xcjz5-M}F#?8{2?71vH>wB5Kg%`MBM;U4#^D_Vi?bZ-<pF7IA- z^i|6D_U+&7e|rC)_V-%-kLPdp|83u&w*PniKlL}#(;i0K&wRW@?3>-83%)Df=oQWI zN$Rbg!X@UZs=vhJd($ePZO_70?@Dm8867vAm)$eDd({igeT+TbvltirTKoE6!tUCw zulLyfemyzyU5@liuKAoR;{VmY<2d*6_9`Xb<~`?LWuH0EccFdi(HTq|q%-!tZ(a4R zfm=AxIK*$APn4VMt|K0s4oA#pm=N)DNylS>zK?%@cXIAzyLB!!>{~ob#0Sy)+c~HG zE%&<}KlfhAk84umb*Z13PH7iee%bE)q>z1q<1O)zA6d-3)J01@PbDWG)j3jV{PUR! z`{TIoqXDJ8Q-!y_V7)upvH1P$to<T|jcca+zTbSz=ppO2)?eAGB2$EI%si*O_z|YE ztA&Ma@#~OAL$zOT+*58Jb$<}HN9uaN=YRK;g`3xG+1zgG_A6Ces8R1?pXsqpD~$NW zoWuNmey5-R9+R2AC4I%RvxbxQ_RhSadFzU(#6-Es12Z<Ub~en{zT16(M>XlLPW6=S zty~+Hdt}~Q6a41lDYGSNdxh48GqD8Otj{!Fv}npywOa+3G`bJ;zB_t0oh4|OOYl-J zhR#)5>};p1^y}9N7j*qrvDiKD{#~gz=PpX~NUPlLT*)>4YsdW$GBS_t?0;XctL6Rn z-s$Q8?f;th=geQj&~*8q^M`!Lh8gKs{%8M*X`C+DFC?SD?aEN}-1z;@dd3%)1ybb? zZ^<N;Y9u~Czl-bd@ACXd5w^Q-{eNF~UQRCN?f!x*@~oSgv~Rg9b(S8y=No80Z@1ru zjR7aPLUq<^PhO+9pp327Zk=q_y9>K6NSHL*2>;2DJRm%e^;~|K=hf(SpT(a~_7OC! z6Ka{~scL@Mr>f&_<J5Aa4%VVaE?@3NZ`rbwze}smf}wX|&5@8<O#gS^FIU^GKIibd zYNdKDAG6xc%$&lvd8f5z-!yx^ih)7U)^gR_oJ0;U>*(uWJ`2u1<I%xVH0wtX%g^$~ zLRs8u6OQcq{d4v=mJ2%88f@NexoUO1A3sNI-?h8@Ye$#e?@ismrux=Nt(GgC+FRZI z`6<)k)$hxq!xu{!8vALQaVc~p+jN%kJqo$MR_&$P4f(0ce%+H!w$?tsyy@S!i3gaz zDIDpS-)UR*Zt_Czt&8&x|N8y+_E)2M6P_H8+sR<Fqs#Yc`WtPP4#&Up4cs?$H(bp9 z7y2W|Kv1`VRbS<8IqQ?Xca%>*vl7{!aDK~a+v`1V6<ej)VtwYfZ;)h~b->M*vF3${ zol0}wj^&B$PpltVKf3=tdH;+*FO!e-v>HZzdzKzkYG5GF!6Xrp>T%?!s9_}6`(SPN zP29ISt_r;8NO)k^vsK_WbAry1uVn}Aa@WN=$m+a^IdDwl;B*V)bu%5@bocyec8q?p z=+pg<sf#$iHkeMow92q7anky43zp7Z@cN*W15-+p_fgx6)77~TmUG_pk^QCikLf1! zFY#tpOW}YjU-S4|t8cx2-MZJ|w3~f(>%mURZ#+WH%dQ@YPBpl|UM0m@m%brZkilB% z%+8O3%e|JIzmRRYQ?c;WeV0?S>Uo|zJpP`=Y{0Qg)wb^#(-aSlhU-@sT=!KKyy{@Y z91%EmqVraHH`QNvlq8%BL_Bi7onADnRg78nzr@GIVT>_FiLJ6uVZOFLj7<q~uk`<= zY}5buGw1&&_xeqB&n$oaIqdQMZo#L-KRfpo_REH{bxL&Ut-R+dc|=cLNl~|cV$ivY z3WF5E7&oUKD>kh;a3SZ+0(0%#Sw+G2vu8?(dg%4|Ij>tF@YAiSMT|F0_))d0*5aRs zbhXVZwuNg)K3u4K-NW(H2glEQmOfUPYtg)`IL`jS>dw9;y&Aq*7iF(DUfOn2VY=g$ z&wpZ6&3x{$gdDy9{>|TLf1Y<g7O&C@I^kPbmb_>hr}R7CQ(uJTFY!61^rX&y(WGv? zDb`B6JhE5qtzKPPmYKuqWgS<Jt&p+%%~Sf7$<%P})_>e#4DO*%yB|b_-(NfPlIH7G z^Gbr&eEjU2ebWB*L9R1~s=u?0wSMjFJ=S>ADaWkjVI=327S60b#z*_sab--uBcJu~ zWP-{KkIy^IrBBXR<9Na{Wnbca50lGV*3U@Mk8)-)j99IzUF;mNu5XFKi=9@NbnE?o z3vF*XpEdJD-fgz3CgWAp`kq|<e(|8nCN0yt$qaGoZ=;fCE_1n(vti?zqDPJmYi3y` z)%d-M4`*_24(_gDYTB8`af#vM0;RB@J!<~{_WzYGt1i#ZzyA44^#0GYXZ~saW}kdt zjIohRZ~O11c?Trt^a>uyKmYkqm-P3w*JhUmz1_%UpLOBi#6R{mKN9Z$zx)37-@lt} z?QL(1+y8PlXy5it>6}5U)y$p+x6Bw1bQrF-b>vo^8)414b?yuYkH57ie;?mr^EKJK z@b3TJ%ZltK1*W?OuADQaQf4RH{6+6yZ_<tuRuNBN@jTu%i@R63N%>*fhi7aDHYK(H znCac2>|}Di{@t0ZQqKKvw_O(&?D>|u^^*3DL^j4b$}i_fXuc1~e(y7@c1}XiH0$G5 zB3n6*rbu<wuvr}3eE%Y!@@&aR&9`p)a+E%_dl1EP&*<{?U;dk3Y3~<)d_yX?BE5T| zy}Hr!Lq1zO7`I#t+_S=h`ycl*^(k8(w@Pu{*pj^FMM6Z;{oOBLhfB9jOTS@t-cW*h z#xVz8G5rYv!7Brfb2PNwys)0}uZ@G8>e8?s@+syoSO2UPbpH|Yf<yFA{kfh0+sa!0 zsA(UXXt3Y0=K8^T91E<D*)6Jy_o-`6xOQyWqsSL`jMudYOO-V;Z1`jIX7ceE_PQnZ z)6M_f%-tHbHhXevxAWWC#cMVn6ccz{CEE9Ujnw|Gx;oqWde{6y)+zd}SY`gM@fKU` z`9#IyrJJn$pDEo|OyHKdedM`JV%4VJB?iY96{NWDkzVb{;Hsk`{9vY`)xk4*x3Bo* z8Wj4kovjo8E9~!cGskl|kCiv{Cw^AeSt&G8^}*Bz<=m+=tWxbC{oimtY3;%p%w;dG z9$9oGF7c1#b;pf|u3zu2-0Nhd|3=j$pl@|?S&59vx1`c%zZ?%PXW+dN;Vvv~m{b(1 z91$9uP;`vvr@*4k0iJzY_01dmEmwLT&MlBDmAp8kr#7NkZI!F%xv2-;(~II4i7r@~ zq@|U9v-gPVayE~S<MyvkymxkD+cobP??e_qt2FhgyH{U&8CoAE>rhza`v32&`FC#b z|M9av`G5QW$L4R1>T^GTy}4v!gKNqK8P5ZUe$2c&uP=*Vqi^!k1JQRHGAc}(6!R)l z42q>3ID|K>(5N^NVz^9QpytvdSO3>>iG{3j%1QICobGIV!tTt?!L;$>{hXNJuQ{5O zy)@YtiYJ>c`)r(er8#eBjKmL<b+=`jCak;EH_43IpZP_T%ikP_v+67bTxnA^PHJ++ zE;DvvtqXh7{*CY7?vs+Ywk^s?+1FEj#A5X^hxINC{+*8hBXMqzM&@K?X$LnZ=2dDM zhK5E#T{9$J)h9C?_7pJuy1?oD!f>k`qo8G9Z&sIvEQ$$A)?0Jon~%|vPm<ZI_j!dp zIJZN6BlDu9Ezd6noL|`eJ<w<K+0DPQJi@d!Kj@y9((YgSVP~ge!Zz9Z@UE&IrS)?= zPq+MioPBFc+f>^IVeNOVCBoYzT$j!|6eSolx6tkoTWqDj>0}+2P;Wcqdy35>ovwxo z-KC2ymK~TJ(R9*a-YW*{Z3+cO+qAZb<Qfa_2%9u@iS4151v6Ia-~F{r)ni-0{Ld2w z;%=%m+w2efRLQxd#qL09@%*a_OH6sImprjzoyDRxgEzqA_Y1Gv#fScuZD3wxzvuo8 zjYWZlj~P4b64n>4<-C+vpFF?z-}+l;FGlyid$axjwWy!<-_0id=a-i=pOUb#Z`IQE zuNWi*55)PdP(QHU@~q&M6}z8`a2|G<u<rK*xhd-}N;oZFx4*tx-1}p}{|x&-_v&{x zF?=uEH}CD~`F~WRqKuYwp1*&2`P~*dr|wls4F1Wj+&$K}ChaqLplT4|aJsElv{m}L z{Fg_qZ*v6&f<?Mdwz^0LI_{NfV0rxA@a0;Y&x-`yH+|+j*V5R!{0Y-rkJoXLem{z@ z<*^6^PPJwE#+ReJ+2et=q`9E@j3(A5XC0n~i%t`6&op}|&amcsXHxUM-}3*e({IYD zEzn}Ae*PiS^}5ia^q9kZp<mavOcLhfdfdSBtB5;hrh%^7($5yfGUD13*4$?BvF28Z zZHT-6Z=-;+pMXmAcGtDbde`kxGc=JYSv&E|oP?r?BL(riv;MM1aj@~S{Ro|RH{oKX z^eNtRP4#o@Jz6-{Nf#Wp{KTrGC|2_6-(saRmLK*;Z2PEs`pu!ghc>R_yYu$1vHs3F zhAA1h|8&1z8~N){)}?(b{_P2u-cYiCdh5q&2k(hBuKN@!F?mLC{iLI=0XorEEX!mH zb(tovy}bO=au4%GwYG1{HtDCuq~Fl)c;{Ko`LCY6VBMxi`rDei*{zhn{>iy;;pXFi zkBj|pShGCbXwj>nc-+;ie_62qih!8t>z7ad@@hD}<GtFyy){2N<$PS%YM*;rwO6os zbHP>4V`bY?y)-2DH5`?^&G0r>+5UP&a+**6+|1?~&UZ~3IpdlBtEwry3vF7>5V_=L zlC5m=n}<rX#jiU%DE#@t`<-jK)Q7z8Qt8~P9q%soefS001Kqlp>0*!ZWx*v{9AdWD zWH&sIy!@hF>Y(U^r%$6YV_Z1XQX`Tt&8R8+=EfG9%f9u}hgL)Ddjfk5H(ppF{epig z&y=ZO+IHF3>x4MEil;n!ICbXVtSRr`@s-WZfAjKVA<K=4ZzlZ`@A{l}^Sp#%n~+>g zv$nna`Q$%~7w_XT6E#_M$jCSU(XAw#)3X@PeBK;;{rs*U9Wz(3%)9tVKxDmkfY<&m zfeS_!9%51#zx!Qi3MmS>(fMxHfiAaa^D>^hOHcV`dHqIxO(LuRg6_ha#AAA~yOV-D z`PpkF8PhHu<q_r8I;hlXcv@?vXN-5K*a8nj-GdDCLhduiEsdM-!1aMu_p&p#Hx>q8 zxEg%oh{xY0t#6sG<ppSR%0IaOHDy+6@7%>LVT~HiW>5dO)jqE_=59%un^5cGyXMx4 zIl(o)g{zmu9?|`NXM3&Any)@a9-F(*@9Mkf&uDvZ)x+dHe=6UpHyB@4_pm9@t+{Wr zK05wy+gXD}eW4mF`%a%cHia>4!-~@l``r({P~caK%$Oo3e4FLYDG#mc(+c-z{CHjC zbT>ZvoZEz0kDH-Ws~QrHwyCui<{o(=IQxmj)ipPo7q;ZC`Igk*a%%JWU+<*0wy3-+ zuyA`&ooT)zto3e?x4@**mo6=NER7S~ytY);7>cc8?)V)%RX6yMEdTZS2QBBNvo!Hu z{iMlq#;flcTXTwMv?xPz;_u+&nOb*}ZQp)mh&NiO^wjWof3V6G5B>FbZs(|K)iRXd z>WvK*SH0vh!TrFk+zU35nNtrcq*nL5*4nu4Uee>H0uA0co&(Nj7wjlbxwXaa^!a^% zv&(Mi8oqkJ{Xg^iKkHA{e}3}cGRI=YI+htej}y$*y|&+DHHw_)|7Pj7o9mCU_=ssM z8s56u`MZScRON+#*X65gYPQMOe6P-a`v2m&>D{$IkDll7Suj;GQuKA)t+!$GKc{W| zdp*hDpJ}4h`tu^<(yJ<EeWsS3+;Q`ZO-1g$`l&sxp*uH*uKCy_J>}}cXorHVzkmL| z6Zl;{Pqt;p;`%pB&Y7vPGt^H=aJaKEAe=GbXsg6~#fIww0wNo@j_*}#EPoxfw^MA} zAuj71vTc6_JumZ2n<CfyTlo8OVU~RY#u>5`dsrtJ#ykG+pZWDYr%^~=C|CDW5wV6B znU|ew;}2M#FBGk2R}g)~s=DrrVBNfR;liKU>k=15RW4r36d~2%YNP+PUAj&!$N2B2 z`1i9^tlM_$+%qd{f60FFdCk_`XpwoRS>LdCmIf&^EEV((4tQF6e97K*4hH}4o^e@R zKF#sX^soCX|2Z%;t&Md{i&&XCdBTfz>BY|(4jR7G6*}IucV2MQAM0tVEAFTryyugb z{cG!t9)Y9H%x|@Gl^u6?Cg{5@`DJ}CfScXQ#EPHCjE6^c3pZPW@KH|AJ?GSFSwuX} za2;Hqa3RAaeUHYkRf__n8W-+vFqQhZ|Az|Oe>e8!)A~x^W_a`dRb>yKboH=c%f9Eb zGx9I^c>HBpr1vuZQFZ^8wZR6Wdze)h?RhP%doYblKr)d*X~Kc)e+}Qf+tf69`|*=~ z$1RiYeNOG$asF?5_WQzPubiBCqHasI3P!VAvo7{Xm(DFuIKM@*j(>OiTCLqzuUW6X z|MrAaT4y0sgm?vyfc{p+MW$|c%cLVx>gu<*MI07be@0!>bxUaJ)<=Rzy3X(GzShU! z%f-mswd_>szI}1$Ks`g(y(Wt-s*6;6#8z$mS1zIwb*m%pQiBxJDb~G9R<3&U*j6m$ zLvqRe7B2fqy`87dyxurpZP9}?Cl+O0^;H}##q9Cf1v$M}cZf{u-k5sTq)zKlxYmBA zlV85~{k)dA==L(Ju*85xN*mRpF7tWqmud`IvZ7u`@s0Sx=bM}#-BObdedi@RH9JJz zRwLu;<O{#Ae*B+wHhb==UpYZj`3<MNh;9#dYVa_0)#7Cjl2PE%mI&K?S4sPcTuunr z8G{G>tKw~B4jZ4=l9J)L5WQ79qb7)b^1@HmzEkrq-rKROb;>q@J{N(EHIp8=uT#6Y z_r+uHt69CeDIIc)e6tIVPwZRpEH2V8pJz?V5lMz_J^fQVR@L(|&aF?2m%YCIp8WNe zM{TbSC$c(Ct;kUcQtF+by(}eT`|N8+1o=7xS^lZJtSu7NsAzwZ^zzcm3sN&xzs8=N zdGE!3lQ8L!x9gUOwj~Eo6;SfISKni5fBc2lf>%vqS!(7U-wcc+N}OWsnw7d9J3f@X zKBKnvO4@;{`5%iH?L40QX2FViuP!ppsCvh(@O#HRH?QR_@4eKfsWMCK$vv%<G5bh7 zx0-b`1CtqJy}dy5%<rXX4aXx7yncT7-n|>@@9*C__;SOt^fhHt|CQcf-tT%;?cW+R zsWAV?HA***{B-hHcX@rvqCL{}Qe5KE<2OCFKHJPbRjj%#oVh85A=&%h<p}oMInrut zW~-F#4r5~6RpR6`rI>B88lw-3Uts8zZEce0O_;a**p;VQ;~L$umF;Y3@!_vu3isV~ zdT`w+P-AVLVLjK;(jKSZZ#KtoKb#eQzxHu-_NV{hZ{O}Nf9O2toBjC>wj6U#`kbs@ zeD@^t(o*G)44ZJaWnN9QZyriq=-fPw%TV7!+FIjP+WcQD_J4gYe@)>R`~ANMXZ@+) zaQbIXe9cGUEh+{J{neu8+^?-^3x2@w-Z|^h`@;KM99a|(CVl#Cb7-Aw{r-z`4WhzI z*_Me%_j^75aA6tiZpQy=p+E1=`m?{bIz9j1g0H7$R^70@?D2qGt*m9Q|F?#V?24J; zrRxLQmu_YiIA6b&Q)c~h&etI-O<DpExuhSpK6t67`QFk0zWj^DYTKA+JT+lI#<uR` z!$lK<_dFNieCJXY6Z6@rtKbdu7VVvKg1>gvs=Rxf_Mdmd@kzBIyvm2mQtE$XAAeq< zX7KF%f%E<U%a{4@%@NY~Kal@nUq|UF4?E}UPE*6OdMrNN=Lm6mrz@+h@<?&Ui(G-$ z!j^}Ymd4NS{<2w~@lvV5@jh?8{|1eJ4AbIt8LI6ngB9X3g`+ox$R6G2vN8GC&cX$1 z_qtn5A8m=~=FV-DXim8IP+?-9tesRz&RX*Z?w{eRHEV9DSFF6YpY!{iM_bMd{?<6? zKIcgBqT=`Ir_Xok-*9o*#JtCGO~FFm1M@%1tJyBxQItIM;qldlqSI|I@A}pu-qfmm zVRyk=#sde|h{Vm$`M3FC+r|3Q7l$JLrAt>UIArxbw{quRS)=PJb$ZUnMGk>m-urb# zPCvJ8=4p#yCR-D>o9h?cm2#6XyQlnE@bFB5%RHHOwUHuB)wei9-~HujIdq+`l}R%C z$m0xIiCM-8XGMRVJ`|%AS!<_x<m=Hx?afaGKl&}buVtJ3LonD@I-;EYm*&=rv)fX? z?A;f4?6oLEMWX)lDUzadF50hO($Lv`;hERQ$!aB2MB{=cDY1TZ&^;$JIm+s*TWj8y zKOZ-&KbI5O<khTkS?`vDmb~<-VC7cr$*b~Kw#eHbR_W>3!p?J5D}B`=f$Kr$j9Vpt zz2a?4<+ZwfX68*{o;?2JJO5o>$|5Ux#jHV2(d@;!nkMJmsmX_=ZiwWrO)E~4lgVk& zVleQU?P(aU?c_dx!TJ<y!(~UmyE|RFQJ&$Yz&_U}bT^039Z9R8-2w%juO7|wlhQgS zIAz8A7`I91m!;Pynx5r7=6ta@=qU5z{ccTe%j5X|)U>KBUNoE2$>ObS1h>yVcZCpv z8$W%%`Fz?Sze{h*BI6%%K}_5&%H>-(r8ZYv2yxWt?dvM>+Q06`v{%c`to)@LJlOiy zT+hC{QeutWH;z?S3~C{|GnWKjW@L<#{~kQ0;nN?J5SvMPa`sGuvjx~=zI)x3wb1Gg zJ-g}U`TQ&P0smLj%BVzsxhnT)r|Y9|i9KZ@TbxWfYLC4LKT>@DUZkpLn0=kv(v3@9 zpRatnzm&BrvQgJWb8!{7!qdkrX8#%6Cp&&^I$$8d6|-IDYG)Yxo2yw~eRH-N`|enL zLY4RTswujycOTtzmb7Z>wtO#I?OJ<u(Gf3`2?v9&KmQc<C40Y-;L?>**E0h58%{pA zZX)MhBhAyrmlDK3)UDeX@^)*#)y=Ribw4sTWlQ8N+_YtFmgnUsVvLiu8q~rBb63xc z?TYTrKL7koU_nK_`y<i$=f&nnHayrM%^-c<c-Q-HKg<6$-Q9KT|ML8|`Ty45-}3#v zeP`C=_TTJXa<h8BvE_2T6=m)FBN@CP=J>31?f!qlhua)g-#b6({<c;9{rr9Vxubu5 z_>k!PZ-4%G`F}^wJ-_+yX#YPB&N-P|ZtRI%ZTT%Iy7}8@*3Q!(pYb-O^nK^L9i8xB zxlxPj$$7J?i`@4wAOF{t?VNA(M)aWi?hii~P3m8=@7A8M4bkqRdHb!SzAf|r!fM$h zxKDn{<Lq17H$vX={}q3rJSXz}k<Zii$?BM@{FwTUb!~-Xe;JqU?;EUfO+j~m-aED5 zSf!Tj!I4On(qAci+wC{kT~m*kzUpGTv{rrQVYegqY$E%_gsYXR&Z#rJPx6#>{}@^; z*Px^EdbZ=2%}3(&U%8t#UCx>;bb9TEerv7e2~G}s=d2A~X#UA3I(f^_B{knw8})3R z*R-n7?aj7nmB?SC-Z)P}KO#S;XS%jv^Uu$@ERxB*n%lVJb*(RLcz;T-QR~NR?(=3f z+TVV4oVj4+IcxvsD`l;UEZVo3*q9S`Zp^v3v9OOj*|3+>)l~kiNvngH3-iHhjU@Zr z8Qu&DYGuqGqH%T(x(#2>bB1y0>`Gko!{xT2punYh0h?B3w=E0pGkjLw&da~KzB6!@ zs!-|6B9SbQm8mQTc+?C|#QPkUFXZCh_lfO6pposLpLf_!3qIKLX6B80)-&^%Yj-fG zx?YwuX=Huw*Dx<iYEfv1ow8eQ`H}r|&-gXOf9_b^W48UJj=-OIiR{Gm8ydg1{JH7W z=6(LgU7oiBIhQqszZaBp1s_{G_xGycl&FTa`?w~{njC$$N_C^|=TBe18pW;GWzc`? z`fydC;4{ZC*SRKF7fcG55?a1x*Q?dqTh2MW6?mcNvEi_^?=-FBTsh8HmK<Mr?99vD ze2d?&wVq9Ud|P`(ci$d22Tm#RjLbF9%v7pcO>XJ6%s!UkxyoqOgcq%^Ce}oKaVw2^ z&g6b%1BXuI-FYu8(oUaRvoKw#zMxQh_av<wcN%OjC>kAn=VNlsAt!3?*GFuBii{LK ztl6-9#;H0L8B6EgiYKNSc<qn)#^;{Xv1Eg5t5QXqOe3>`QgxiUr{p|N;gtXD0-EP4 z2Tm!76gLe@$_y#vofW#p`Hb2{C5ywsHj~|+Y)#3JFz)q}sXgn%qc3~z)cndzM}M$L zeeYuG7tzvA-mfzMTbF`D(_yLFPVXMq7=aA;t&`uE7No6>VZETNWh|I`$Na_CN?R`{ zk!q1SoT2rqM>3YB=hf7$`V{rWd2!V;uA6&qDqD!(75p;u!KCkL=Qw<(Uz6N?ap!T} z@;R(pCCfeBn^ITsJ(_p^V_ZxhQ;k}X=hI`A$4i=|7*kjl9(=Y#(tQ5OUDMVI%@v;- zbwF0FTSD`ut1kDk;<YaA+NMq3f4y!CU)}WFLOu2Q^WSYbeUg7Ktl9M3VoSws%XMku zQ_k*<oj2bhw`Zl)b04ma>46u&99bYJ(RpO0!(8iC&kf&YZ_eA;E8?(um1yyTl}c+{ zj_gltH{P~IHQ#r0fA_r9yA7dPy(hLl_<2WVS1ae_w9Vyv*K^8TkkamGJ?44KyLm#$ z)K6Q&*Dg*?RMT$j+`CNU$nS+u@;q0%E$ErQTCFN8Bu!dm&0W2%b=ySB9{v1ul3{-B zH|d4n{{Q=H{wDul`~Q1UKkN6)#ryx8f34U%z`1&3zJuwrBQs1KdHb2foP+CK|HPdA z%6)rV!JhfIU$gDLIVtK+(f*%L_g8;c`}d{b|JJ_;-~T%xCvSh_^XH`ae?Qch2pZ4q zDr4MYlo2!E>D=j`DaQ}@-jxYoUGwT;5_e-v=*e4OdldG^XP)lnbqwp!K6Ye|TG)BX zZ)-AA7W{F&ePe;~_xn}6*Sqh^gz0a1_xoqfp{+Y5WTIabm`V11-Mn<J+K1rN7T;rM zX?<kMUbuNF!_;hkeyiMl+mm8DH;262>*UKbZ~NUoPwnqLE6eX_cW(cfe0fWg!ES5o zH+5(KJ&ONj{`R3bf7#AIo4?x1>#V9vdi{nkQTwCqzZ`=yo@4>WG%-IBrW;*M?px#} z{y1|mxv%D*QLlR3{GHQ=8^W3#Y|Kxl`uC<R5xcdG^?^&x{E}8Z#-4{f28zEkqIeHp zZ4&EC3YYFX_CZHHq$TzET|d{UQ>xe!Ed6{Ql;qFa@L;XR^s8&{ui2Kd?dh3oXK$=x zVD{b;-k=$*DJAhclkq|DllMx6%jTMHGl)w+eQ^h?=kiJW0-qk;?^&(rHbYFrYfi4f z#@Gx6TZs~<tabgX-g9o*-pyNhe^w#aEhnjK*Q5U*dY3qhdy+Hb*Cd%4jyW4{NMvio zE^dB0rLpMIcb|pNMYg}Xzj2O_oydNJeP0e8Qd)S=E~1So<WEiOhR?IVa?~E(-0vd& zMv@`GHp=ZO^PgM(C1SxpjvP8-dA|BVQTmaNd$S57?X%-OE-g44&~*36st?h7W1TB_ z9&PzKbE8PZnoDBRg-whuFTN-juD4Cvl3E#)e>z$Gr^m5-u|95xBfGCfb|+om(j<BA zO3V8wiQv*6mi`}KTyo_bo$Opw=FgJsusxFUu$aT%R(W2I(6KwWU%yV>yK3*gxGUbB z=Q&Pk|NY`|LZv6&#Lm#$tR+=p!zGClht`U;2^v{Kn#cWqu6Ag?c=}}J=e_*XpHH2X z8kn-D?w{h3F9ucZY=*3PS!_@J=5}waoSC2(m>9m{>5B{td8t<~ct0<=RLygfPhfG~ zotL^C3a9f<O_BVU?mp|C=s}+&#sce_IfZ)9@h;Xl&QbO1VMCMuLVa`9xoug^iXNXn zYQ12e=f;q4eQSppqpL(l*9C={2jASzV0|GIE>d~ws+;S<`^6iAOp4t28pTB!Dwj5< z+lyUaSzu?(B>eS`enFaAm2J~Sk;O^!>C1nJGL@h06uW!pgpfl3o0rjqzXBXz9<2Q8 zlcN$OzW(0HycZ%S^P4VSaC*DLy-4D~c^3BtEvq(rz2>Y8Xt=%1YjxJ7Z=c$3t+tg3 zzoeoUVip>?H=c9HM%M-E6(-Maif@n)nYs23hh5Ue=YPrq|LDwFATmRoU3Xo-+Conm z--QqEUa=B*zh=#`RjVdn@elKT>}$OtQ)5YoarK7&hN%S$#HG9bZu7k1t~+0^f<-gN zoYjBT39(y3JvJf&Avp?PRWom{w1{1?V9yWhd;{q{lbYnGB&d4qnZBcauWbME9h+WX zegE30s{G+a<sSn5g@z$%f;EkwZu1;8jGpdNf88fpHD;F3CHdS2?F5xK*I5F}&VF@} z+I+qLsL0tX!JP^<YZ&Xcr59Y;x$j1EGuusL%P=MG3%uJH6qJNy{cYYcU0JhCVb_6a zA}q%vFKP-ma$Y=Jsva)g*?mTTvemC%4-v6geXSLn`m^tC5BvB3(yTxAo7Dc6f3vQC zzJ49&_um=fzYE@1i5;tUC|Z$KUbojX{g_$yPL>tfJ|U0h|FXHZ$T>On_J8ilhf34+ z-nu{dySsd%g{__44gR|KzrX$XaL{l0HnsouM<sr)iGRW4!M&_VURiPW^R0bVtPI=i zAIwR#Js`)B_w;+&ra4TPW-bW};b|_rZ{Ww5BNQ^lo&V#}B`R?#(Z0HJ*(YiktrNHB zOG~qyojxzS`H0bNK`utF_mX^xk?c=QS8cpdmoz0dOiz8zXRrA8PKm9#B7*87Va9)R zLO1Z9s_9FSTzqoDZh_EOoFer<KQ|jo@Re`NzTXkH(L<`de45kV#=o&Iwrj0g5az=p zI7fQ}$HW`=6ff#A<UFb|=js;yvPazT?umkza^)7qN>R+w45^A!{sdZ!r0saTBkpDR zcb~d%Y`<(*uV&P%`cu;VyJxL&a+X{ApD8*l*F|R)=v~`-=jhE;CXrkZue_b>e6Dc0 z$~ouSIxNbr>3g=-{kG@MC41!_Py7BMle;$Yc%)VrZ@1fO!4T~?KlKi)OEgZ-Si3=Z zW}EQeC!N)dlg>X|8@W1gM%g{RkH?PP2+TD8@O@>pgM8kG$OHQY*&8O+oqVk=V%lQ6 zWUsb>Vav2jx-&YqC{A-~3|QVju~+S31oI0~o*C**4ylj-R^)a!OZYQtXzRayDzSFn zUB<1aBzkZ0H<VcNb}{_d&=T3gaADhl=|U{ur)P8Pv~FWEjGTX-#g9F^%=)ErgSgo1 z2@1s_Nel&Z)&($lNUHNC{5@#bRV=dc*xadqzJD!d=1`g;=D929?V*ZRpUdlhoO1Pj zf6cZs`|`tcCao-Qql~|uS@UDN;2ily%iSidx*+#3j$zx;Vy<gV>z@nkuC3kMb6uO^ z!=bpK9j%s=7fyAmTD~|fAar-?r4uRls_P#ubc<YiBTP0XWIcz<$_DPNu%9oityXL8 z<(})(Y95f*RonQ@*sxRZLc{CaMH1mbdv}GTIJ);}RR)IcN)gnzE8ex~QqD3%+hymo zxn!mn%vf}*_uS2+K1|WFoSQq-#7&ID&OA?LVf1tKSyjaNbyv@;z?*9Xt7c2joio!- zk#X<4H5MIAJ`PJHn&&Xr1{-rscAUd`zld#t5TgTk`;?nq^)7Q~w8So4pRh`<%+C3r zWpg;|%c=GE-4{*eWVZ8e3ZI)~z~~VYw#miRCuBOG+T;qWdgViF0t?z2co;P%y*B%7 zyXMc5G#8EAUdoJ}%U<lic<9pZ)K>Z3r|s6ADw5q&?%TOB&TCOfD~qX^$mfY14|o#h zyPIxR$~aS4)_PJhTBhhp=>2UQI9QSugyru#*{H85TU(@W;4z8Kjmh1kg!zw_@`RI5 zVnvQBiMe=Yt^D<^`0_=z6;T}xvk!KzyJ)h?_kH>&{Rtj_PwvePmzp2PWENw%ecw&) zw!h0&%y<O9{X8-;<8#wrsjCw2G`B9Taryk_&D-ZU-<(WXC>!wT%GWtO+37rsa+5Z+ zrf<Kmcp+AdtDH^aNXp$U=XYG4`XPFA|8ZrZ6?a-@MHn|~&Gpou9~)j;lyAArG`eBN z9@bXrYR)KzKXq!J%Ra8moqnG8yUJsu)JF^UGQKKqT+7YiYJ0dfySP{G!}<N6cgp53 zTe0c?+x@?9fBX0Mwm|srg8Ht~O=st-xg0uuu>P{e{Ex|3&MGX(j=BD0>RQjazhw9r z9CLCS%J#hv2z>kP<?r%B7Wwz~H{@%+f4~0Z|2@CwNB0%n`rlOT^OlQ|yH0oM)2)lT zI`-C7)%83tx43h|W5Nw5vF}O^Yk0~g{a069d*i&t@(OcF=_G%_4UYbAPO79mo0=2f zmBAeGeQoxvBc<#N@iVL!C+RTmUH6>ZPcK)b`oY>_+3(XBYvNy&FPRxIQK9{3{zdWr zS6jH>#~%9s;C{h8myPSUeoQ}L_38b5HMOMG?<2!@mstMw{(VvW|A}*N)1OV|cam6B zki4SG>&<2jGeuwfbG0wN$h@4tqDekI{oqff2EJm0H=5tx%TBoSWv8$Mv;V6n^Lcr; zttl&S-66D;Ss+Av@}{=GVKb&M=1jIv-ER_^JvDgRpSV}QHcxHPcr<}qYfspWKk+^c z<*&F)&R?F-tJAyK(BSaQl7{AuOk)1Fk8CbqicC7KGJ`G2E#~;a9(#XA11ZKD8~IJr zY8#ov=K1eG$9#&L@7Isb5jK_8n;7%nZoDt7ux{D|t5W8qxvB*|vdssdO+2yYkM*DW z{5czvQz}iQx3&C}ic3mcQ*fsCTK3t^4eYuBj#KJ6tv=OpUlVGOS>KyGU+O9Q{1p{t z>B(E--RFqth;A~-TyMSlU&XZy&ld+fte^kYH$Jdm>UT)B_cpnYIdASSWjIsh;KUrW zD51pgMOcFVq6y6M5{pH8dyaK(i~l{3^H0JF12r?*-D1zBEclZq9{bF8y32tpss0KZ zM}cHir0U;qc{bDg>qLWFkFE@7cyM%YTr@-69q*3&NjJj}Pb}$tQp&aI<jzV5lSV(0 zr1}!J1(jb{bR8~`5Z03r2yk)yyeiNoy-5D#zN-9gz0;2ztiN7w4fj~ATfz~zFd!h` zXGW^T&C|UnSwC0p)NMX^ahb`}-wyK3SGPZZA*<FaqWMOI*+p<8^V8G~b8Qd4dfdH0 z<{(=G?}hZhi!Y}sbM9U-|Bdas$+^!zu?59XRhg-nz;K}{j4MpzE0=S>S))gudboZ4 zmNiUjQoEh=lU4kC&t3WS(=k@!{NI{=>kdBowd9uSewMdNzaMt2PIVGG)1AUourYga z+2J{jJ2xuHozH%0rg8cOqpQHFS0OC7+|>+k<+CzIH<*Om-FLcpkdIw_?-T~Hpv-;B zA1@c5m>A9``oUq&Z4Zyr?pJv&HrDWK9#4B!c)Xa2Il$}I+r@SH7Uf?}SADvs9NC_< zE4;nRB7F;U1X~DWU#M1C^@W=nHP=7pM;PyC`11R4?SemjhUK|y_P;f<c#wE>@6q>q zf;Bz!{tGI2dibAwRik<|s#5g4^uBZkgQ(L>-aRb15fHh7Wm19cf{ay*#6&KHnR{L2 z*kjD6T6%x7-1@q+pGDUyu<l*UA*3?HOi?q7OU+`bg7DU?lUALtuY3;K<lfuDQn<rk z;)r|VmXffz=^MYh>2>T)ah7LXb;-7V$@05zfBs~Mu$<YD&X*8$@|Bd_p$(_A-gf@G zwjui1=WXk*mnhmwe}9)VYtrn{@I%FN3zSyp$R?lOvOj75wMn_6(?4I{^>6o!&hKFz z=k5Pre^YVi_VW4rHt+vh{{I#iQ%zG~{r7$jChpvNc3zS5Uz3<l>r4*(p%C!TdcAD@ z{cT&WwmM8cxIaU@J2B}`>2@`Z_xJ9)v3`5_@ZvwvX*2%)=U3l-o&D)QtNV>j@q063 zzu)m@nBu*^SLIHSW?k$}$?W%Q+V8$Pyw3RdE9+z3yb4Ka>pvW_4cltT@aU3SM4y!F ze)}o^Cr(g$_~6es4~GR$AFWmY{Z&Th+jhgf2Q=!$zA1^Nh;tSMI?df>VBGpO`_`00 zhWQ>k>nGkg8aFF4c8;ckcLUS$`3K70cyCbNP=03Kyk{N-PV?LE$8WZ2`8fM*<Lk2g z=g;fKwmfX!-M|-G{bQZ!#5WfnF{aj@w`f_LzO&wTVsKN+G^IkXFFV^7grENZ%iZ>v zZQF?(Pi59PZ2ivD5X*C5b>^(5n*n~uZ@N6)$z2dWJ5^=sEJ2ThmakrTh%4RVx2Q~> zl`?&Kg45S^*JjtM6utWT{rsoT4<B`&KGb4gb8YI!%Pi5EL1FiwfA237x~2Hja?{U{ z62=Vu+qGtA+LtSA+SsakBTl_$dH>NIKC2iW2F00{+%5*)+x>p2f8PCP-@4Q1-pR*K z_hdTcrKY;2qbXn;;|+<);Y!C0H~DSPWS^;*GrwEHFz1NS85<vAg%hdgzpT#aKlI%1 z@RjEw%d#$*GjcC<nJxNwf}6woA|b}Vo+m$UIdAblR@qUpZ27j;P7K0zuIF76IFh&i zIB>8pOXT(JvU_~Xw=GJFy__49c%QLtWuZuMqPwqZHTPnU-fCV?8_A_vYYP>!@|5Fr zXM4ZOVH8|_h3oAZyEh*5Io*Cu*PFA<VT0xkOS#87EV3(XnR+GtiWcoyTwjs8XTis# zXYCiqM#@y@GFD`+4`+DLy7!W&yHF0t0|^E#5x&)rJl+-cHot!yy(emy2&;iuW5l;( zzq`*da`Fft^85Nk;_1`c71dG;S+|5Z|F?`@acHG-X4^+jlbf~vA(s~(=sHlWq&sbk zg1^wJRXcvfbqlJuPEilhUv=!v+UvG&7Z`NcZ8`mF`n;Ltf^XBDgd3+zuj|zG{xU^w zB7^A#K~pBZYX(sg*HnIeN~!01big~8TQEf~At!m;@0s_*-5;dCS*-WsW4KZKj>&D& z$~&D7ya@Ea84}BvEOY92FiTNw*!$<d?zc#uD!n;V<lywDnR~@vF|M$Z{O+5zL;7o~ z9OE9tgL<=mo_b)}y#6plk_DHLw6CW|70ct$(5VWnJtx=Aldt-t8qu;O@lkP<#Z0A_ zRdXBqkI9SG<eh)wb&&P<b>okwOZP5ov7elzrnk$@@_XRctLgp61=PE?KdgNlc+{ZL z!6!?aY0ZuArOc;VE`8;7oObxvHU13AlP+r{1PU%ZT(sR}Sx8K!C=1)JIV(Q)Xe5}f z6MnIPW7&_LJbWvo|6kPIp3|HdI+<~@grVlME7p0vQ$rYa=K6<-nuciDD&BApu$H~Q z*6?=w)ju3(oS0f0veH*Aa0$)cd;KnBu;#PZmM^}C%{%r>^o{+O?Q*;amaqS~dFc<~ z@8Jt=Ii9&N7Me1u)GjwnP>)ER7?Sk9>gf(ujYGT>s%uYGvp=xXc$pN?8F={a@h5Jc z3ucHcK6<#h&Npe|ipX0JR`5*rlRl}xoH-^<dg@f6?+eAI=SmChd-M2!v3m6iCwJSK z3E4ZY9m`Ty`uYFd_P5U}q(%Sl|11ADtmjYh)O!AR&e5$-W!{%P+}`w_x)@UXxWCG% zb%)%`%^9qdBAp7%w;Gomlhly@wdDTJTmPk8e|7Aaulv7$)AQ$|U-rCtds_d0$Kv}{ zH(Yvam}eYYaC7w`-si0DvwL*5iQCxEfBP*j|99=tkmi3f|I~$+Fr4IH!Nt|%myq|Y zF5uGn?B%?2#%E_Yn$`A|Sw5aJ;etTq`nQ|Z{{A-odH?R7$jK|O-hcOf^-a5r_6|4i zKe-?Lpj)@>dit>&OXh?J-BO;pll8Ke5a+j}<>!8`ldU}#`sLx#EzR7Ly65bQ=L?lh zl~T$u4)~a`aM^)W-WT&9>*%~S6FM=Y?a|TWcYoc{%Wjf$Y7uu%{mC`|9cQY}#P6r( zuUWFlZr;Sr(N*HPaVK>njdNbVNSSgp{k$mW<*Pc8(mo#^H20+EGA{``xA=P*Xa3h0 zkBkzV+V;zP{>c$C-;#2z!m-73VZ$Sa_^camSN*+|aa{VglyJ>W*1b}}0`DG0mF=FK zI7e^3`Q+6sX*avq*2;cgu&twS#**hsazAhC{t1apUaHm>6}IWG>Cs)D-;b0AaW$^m zp}zH4rOghXJJlJVSLEj{kla&urKnED!?ZBO^qk>_&S@V5Z+yEXxw!Pkrik0J=c0aG zE}gs1BK+gzud=(Drb#TEF8bp~_|_F((yY(r8LmuyxBp??u49)3CGvb?EG-#-UFm7I za@_O5Rs5G7lh;OZ&M7Sm9yFTGzAmO~y3alTkxt36?xdTCf-~ZOntJOyuln7!JY2ul z^5JIg#(oR;YGI2tC!-{H3!3Qqeq6zOdx}&Nlm2zn{gz2<Z=PC`o+cM;wxOo$mQBmQ z>cH%sc{#$Xf4Lqg?tS!_LG{}H+2>7?!-EYEMif-l?p+hU_4@Vhno9jJl{VoyKaO{7 zalI<;sIls+clv(w$>*a2D<uxPnBESFI~-~9f^9+mop|rC`8Ny_JWl1*v`yllCGAib zvTAwM7FD6sr`!VeYq<%}>|J0XBl!D?b|nATmhV=rh8q|yzN}K1)VXM7dDr*5nHL-n zsysEF^X16yhKsFl*R*x9Fh^>Bntecw<<5rf7bHJqF*8+n<!?;qw&!xcq^&W(U<G%z zjx0;XG=Aw5rN=d9zewg*VDqymm1p`pSA$`1-FE&(YZtJI*?nJVpr2BH;gP@>KaZHn zmzKKxPO#-Qo@|!Vmw2JJ=JE-Ry_>f9XB8zf^}lxwuw<Hh>gz*OQOj3C=VkaLS8Y5z zv$)sf9b3)Gi1ja$r|znf_gr;=!KV1{U$f2935`Mv)`Y1fB<@U4n&mLJ=>B8VTp2AU zZ`)T<N4j1dbIT0QYT^=Y;)&VB^6}60$)c<NJQ7IewQ3e)RZdI#ACr6G*3=&Y3O=v) z-wgA)6z}V~QSsx6Blho@@5?UV{CU^yN%iggDmNq2yL`A9d|&6UlQ_KmE9b9eLMh1~ zq_hr*)o;Je{B!@g6?=FJ(jWdzXI=R6=ISWBs_OO&a+AHcvUd92=Zs0^*SvP*`|X2Y z*>A}(_3fCrXzsz^hvkHoHKLgw*_d?PD}0}_+TmD2mh6ki=a0Se6D@vps^v(<dao<4 z((k9ejZ-b3^z?^Q?gkm&rKfh~gxZv<mG0u(RC%I-%j)~Pg!#44vi@(+e)_-n@7(`C z*0<l<@9(mszM@U9xjs&3?xc;A8q;4J{kQ!d9d_dKJC6rfW@LQ$yG8xxHpObc14pVC z+1Gwon<2&j{rfj|&{dFsJ{<JxSO5L!^!$gnzeEQ1&h=gEIHP>MV6x4UkL7D@#J5PD zVNsm>v*CE?#(s`DQrByG9$#4>^||;>waPT^?+5JW+cy}jnC5O;vM9*xRFXi54r{}d z`l{eZi=TTsTq&9Mt>(*@>4o{$^91|8XNUAGuhsr4WiOxnZwAkf2g{nZO{;1dA6?~q zBgr0Z5R}U)EO9q5i#3CxYU1+Cd2XuGU(y+R_oe%5SjdD)@B6&9y&>}BzIU7=6$X<S zt(N`uo@J#yg{k{dWlW|t$GQ+Eo7D3au0DoyWN#c6{<Ho~dwtr{O}o~gmOIlYk?$SN zDl6w5AagQxv*YCBmP`-UuCkf8yx&EpXUkC&ufR7V8C)NDTps>DQ0!QsKJR7Y^XT8b z=jWfSe(&>+Ip9^{UW3c+iN)5x9w*OWJue%fb&REF{^7p?5w_Pnd~Wie?bVMxF#lLe zl}?ic_o1mWuD%a+Ym;|wo^xbjY3JdC6`ITUDTMLJZ{^sr)U}|xI#VPxN4oyZ-hK|D zvgUuR?#(>xlk0EKlRtK@M*h#8qd^ku=g$04ba(IneZ@(xGqfdZzArt0@KV$L59jw> zc%~b(xm9P|F^Sc}ArS`KB7)hwq70^pa6fonHA%Dcw)Mf9X^D}>V$;u_wmA5~@}_e` z*bG0W*q2voxbAmtGt3Ov+_FvS|M#BXd<B^X+y|xwWz|1TpZhpcd70>o0Nqk{BfE;) zy-TjY7OqUxmoQ*6-@0*@)2i%qOzfc+GJZ!ZY!y0fn|04jzAKp~+x_j95vPNXys-1n zwOlSY?Qe?*$E!A+YW?`vqx(@%(zV}x2cIj>O@75FaiJto=c(S`@4BvQ#GLO(@TxIQ z`1tkKHLYGXUvsstA3e1itinZo2^$J>g1UCHC=_m-*P+HB=zq$%v8O-a!@`|kJlGZ= z+F{UHxLmNOXQIQ)nIdb;6+XYnpORFTzNmNJ@p*n8p%Pz<6g@7KzAf_Iz+TmHQe^pE zQ;omb{Vlr+6<-MLtxXOQsj`<&=2Y4{cgm-4NA4bb5b?Ps*;ZWoap{4)4>RBWj0kq< z&|!ExbCI0|qmaOE&gI7s$ad;6<*`1P#+TbC=&35QUhvAH#sCi=#|?%BinY;EOqPX< zP8&||pX(Riko(iP)xnMBpz!3JDF(cK+1o3xo%zvI+;&(}e#1M#2NPGFI4P0boar*< z=)ZT}EEgvnSv*O1*|`>mZJZzPt2O=W6aH4JmiQv|_~Mn)6Pi6u-tYf<aE*iD*7T{@ zB$k+{ZTC8}<=$TL-x*gDSUyYfFI8xFj0{|K<aKBKbi;q|y}U9^g?FD|-JRh5q>GQ| z7>m+Mt6Q8Rh4b0=PW`?7OHEouSn<1bjqT?r9y!1H*crhukL^SbOuT*M6a!<)eHPa> z`M)Cs7i{A-Xi(|=f9{*~1%1}IT@I2Z?ibiD8h5^9`Q(t9o~m(es%J*Z{X6}s3{5}d zYZ!&QeoX$B+iUaU^ZEaK?%un1Yq$UX^(X(|k8o`G?zp)w;gkHrqE?NR=l^;Q`qR%u z1j+^kKm9dvowmHF{gL9lZI;t}Utix*w>bUp-td3dmt4vGZ~x~W|J#ob56-*Zb)&!T zoBG8{)x9EHj>~@hlUi)GYO%y!&AV)GY<oW4D*Uf|k;~wC&AYTs?2AL2g{6!%rk}kb zeQWn0YySi#7o%d=g7~8sZ)_;GvE*{tW7uJL%P9V4Q{c<uv^x7^4T~Q6aqU<&sqpRm z8!z0&=E^VEeiPPnIeSZ@%))2aqs1FmuxvBj)K`+UZS#>6cRrY}$oW;V`3l<%x7Q6O zEFF_Cy$ksj*Q`H7|MliY%ltxCrZai2%8H-5{-M=OmSxxabKkCeI=}GEh1c@Z>-1)C zncxtA=d)st(Y#}Qclpm72u{4LE%|V3wAEI@^DVs(QyL<gZ+~z<_hLnjx8Q~-uB(5a zPB*A447vL}A^fVwqcwIlz9!Qpn@*TA+OFEGomm{X^MkaGMTcZtbGxy4;c;Pow$}^A z+$S{YO<T<K*hlZ<U+3E$p>HZ|kKYe9ROHd+oU3!>#^Zl7`m*O&PHs(OvG&mw{a4OE zZLQ3f&KvvHg)=nv@;we=StEax;W5vd6^s_yCU1Z93TLXG6XV~qWG%acjLwBcNeB1* zyz}sIv!Js5L9rP@_dm@N-}WJ+iv8Aaui!b#7n+n=j9KPZ^mjaGc=P^~)Pnbne>>h? z=JqN3kYo91lk&V1Kjzj2CYU*NpE|#4S*L)*n_D~ft;?xbyV0l4I*adI$n<4RnYvPv ztC@O4xi@kMZ8S}uvLnxKaYy{0^W__ll`gM%d2CaMp!myb?~VUnzg7hgW8La5+qb5p z>hApoljNs1w;o%~W_zmnrPIc3ub<vzOJ#SgxIW+YxQ<Y^VTiS`ZMsnk4~qqt>X~M1 z{qUC9-qqo{HVvN&b6-@ymwC*(MYQooYOtbEZ|E28&A*SkhcHX8+CBH&$%v&=7Y@yO zXMew)IcLe=u)w0L*H>w!Pcgiye)Hwa$lim0XCHjvwT3U$%;Hzxu_J<_Zr@T@mnJA> z$$d#wdvj1@$D?`H_P0ZxI{AliY+kWTl2LN?kviT}#Wp*lRxNF+(6M0ZSnxj6B*Z3t zod)ak3x|(iW54uLIpgkKw%F6xGa@ep1sGWvvhgi>w(*vT=G9-3-e1nl-M}i%-2LPK z%tl5>;b8tdf}DQt`gc6y&V=m!mcq2?TL}OARZn=9*tM|lwR-sF)7GX9v)?_Md96zN zd%L@C8KeBdd)bHMQ$4>e-qtXQ(fCq`N`T;nNY8^C7*40LXzX3IepkV*<`Scx#@Ije zl*@NrPW)Q4D=O~9hK&mo?lyg^5N4XSSEg9Edy8xig9As=1@1Y?(rb-7_c+=-`FpkV zpZ3BegIwvq%xi<zNKV?GbNHgw$2;Pj+-U}Pcec+AaBck~6Y|ik{(!}n1@9+W$%-<B zZRqNgs&bq^f1S49rij~OVcoy3-L#jj|DN-z(@$H-^G|Nj48bFniSHBMzWTdDL@2mG z@Sp(W_QQ%f&p&^bijwuaHRs0h*pPI?IX#T8XE^F_6UqK{=l`*m-b23IE-rW=mHo6f zHikKQ`+t_l+Ya@ezY+Z{r+I5o!Lg+I8>a8Lukd5J$ASp=nF+^pO8w$HPMI*-a@>&p zm=p2z<EvlK@Bi%1{!||${MP(i`TxoH<LYH?|1bC}9#X>WJ@d0h_f7___1hU16t&go zd!GJ&@1e!|6LriRrsh6fwee}Ax?w|`sLU<@Z|^2Mt1zwj^Zy_hlg-V{y?gcR{upoZ z{c0=uQ)F@%r*ZfVqr-M@E6;6YKh$>e-RiB$ckRD_KW~$NVNS#P0Dh||?o0eGMxLxC zw;N1muF0CHH7{`g)<qwCZgCraOgsNRQgP4aSqyW&EihkSR#^UHirq?KYv-%$j{opU z)+;?GWp%XvB8SnJ>A!E>XDB@Xdh<@bg}?0AHvT{KcWq#7;NE!^_ggug@~`wC^e}j! zxctK1m9lR{l{2L0Z@!g&djD;AYftqD57%a%K67z<;;e6NWvgyZi&@3`Z}(@L(hXk% zF0Map_A-LyH_vbOUrMk3x83J6b8Oe|Yq>Nt`?c}f&-X4YzpuOcbgPy1zwlu79cr_7 z%rIT?;8DaoragRVoZ{@;WH}?EYri|a`nDxn_=?{HBR6Ito(m}|eqEWbrG9?i9WyPX z^Ye{$f-E1eG04vhU;O@WlkLmkuy1u|-H*u4TfUYvWs5~x>)eg~&2yew<?OwC(f?Qd z@(y*Y+%iQC`PR;i+&itZZ3ZQa<JjG^j@^t~e|;aHYDLGr%vkHFTQLu|E}WXb;vVyr zL-$I>PBCu0{O{VWm#ZV#RVF1#J+O<)Q2Dr-qwlCicK`XNY4*ZbYM1?Wi%yEaF1EJ3 z&hOfD!DOCV{`(Bf5s$<2o!=VYXg8d7bN$W+-;_(IFI+Mx>kwR<ts}(w>+Hd4>et<N zEbJG$QTXiMlfC6z7VdhWCSk?C+rCozrHro8hl|`dC$ir%*k-a*Unj{z(4zZCZhls% zbM%Y@b(=*R)fRN#;LT?B<?Y`3F5LIu#2Kc=%;~q=&hJnuhz`2(-fP0+h6saudeVK@ z+76vmJ-szyz2K5pwOf`7)>hQ+-2j<z%yZFVo#OQ5oPWH=5pjiiZ#FhHxNpC>y}N<y zi?OASQuAEKx*Fy=3xfYgi@Pr8YuWa}s$)^swemCB?^Lt530^P_U@TrUtLX`!%eIY7 z?eCA6$LN>5Xmx90%w2du(y3wQt7mf=U-Wru2n(Hc=+)kLXlJMP0+%&1CCWS2FHq@! z!qm3;mW1W9-`8tmRgM?%gtO_SEh?L;6eTI#_~5=}gmdVPbE{-npRpPFgx-qm`tas> z(Uxs1TNxJFehZvht*|Bb^TMT*-teuMwCt(K)eiglH`bkc{dUa_v5WmPPh9u^WN8|> z<nOOp?_@))0&*fx@@-TwkUFp^U_-<Un{|cqaw4@m{vS|bbxc`)gMS&T&Xwq-ihcL4 zzr8zm?)*T@uM-Qo-7Qxs#V+YO$MxRhbk65Jr=QteT>Lz~;qJl~hDT{lYo?UFOP+hG zZI{ez!O7}28HbHeEwQ{%*q5SHE#l=NEa&)a>fdiR&2Jd5{Lt;LE9B2QuO_IqWzvj= zpHAGo^6>lj!xPg>=ZRjkY4%BIeRccAVX+HK{<149EU+(U>sz(t#phkUnQ}Yqk38J% zYmj2rlo`Tgv%x0*+Si?a7SX<&ubZDgvh8X$+v~!3?#o9H{&S4(Z|<LZRf;R4bmI~Y zzb87al8sBk6IG8qng9FbZ0orClSks#Z|o1<`exZa5AE4=kN&yjb@9_8rHrH778`L( znnrlqT(^*p4)dI8{QcyfO>-*u3&j`-7iXw=-_1FEu0iti*8LxTM{(S%{dY6J;oJXz zy?@>7-{;@h?SJ1*_0zwPoeb>x43eu;)%Jc=-RrpX{`(DuZ@1VVkX!NCxFWW9@4CBg z2Hs5Ge_kCpvU|JvMx}|M^SWM}&V5r8_vZBcKQnYC{~cb@mA<>Ng>B}ZSz0f+Ze7(< z>XnY>xWp0RbX(FunQ?k|rcUI=c{~aUKPzfi9KN{Nz4qn}=@s3NeI|#Ub+B@%p1*nT zzaKBReAuP)O<%5XaopjQ1+(IBXkFu2R5<-x<(kHC469hx#DeB;IQLO_UDSN#H(Kwu zFXFdhcz=ME>-~23+luw4iy7=E*B*Rbo!$PQ^R{^B%>@GAMI=h=3vSL?*p_ln_OcT1 z{Btc;CznVc*!ln2EHk;=1x6u<)|*L0Z3?z#W-w|0e?a=1O*xCzq}+|n84no#w|vYv zYw+uW@TUzO3k3_FCf|KpssAT_zTAWFUu&v1rKrBG{t^5C#L-B$gLkx3icYGT2iyN@ zuTE!rGvP@1TxAh{sc7TCgb$qt<&`qQw-1$y6e;oF+W6pkV)enE#EtFAtk&AMT}6NF zh)`zc<=lTD<%o8=_rymM{X38EI{9*Ts*hN5%G1X?!-WL;v&)zMRF0IGzT=xm8?(xz zYRSu~zuOrPI4QP2Dwk8%{czJYeWQXM<A;-6mEnKNT?JPci>y1Y!<gXk+Sx(w+r6g! z`T~weekQGvU~qRVbS*o2pu)Anu=j?3#@7tZ)&}iWPrI9W1+Q&*C1+N9{Cq{z`GxUE zK5M7_DcxYY>_h607`6AYQKl&qT6p(-=rOs+Uex}f^5YDtq@yVd-mMVa()5b$EgwV9 zKK}gV`wst8lnfS43;lI!gY(?qlNIjHGH1y)-#TwruI<0quT%HLF@moHsxM2w-Q!fb zXq8mJQ#Z%nuv2OqG7Z{d&t2_!QMTxm$ed)K=~?@G<QJbmS>M!Hlz2(?@T*t<|DJL_ z@8D%}q=NnE9f@r%%<I)wZSN7*_}QxUov*}&dq()QYyW3+y*w4cVX@7l=RAiN&-|lN z>rACj%3YG|XbioyHfXC`)^VOE6OL&8XiuCn!7JplR@DKg(B0aGjJNo;7HK3}*U9}_ z-=r35C-(T%H1062!~_4YRP1z`#<KD(*S?7{XMZMZazt)8H&<7&rf9*h=#ya`E7CGG zm(DtO%I@F8YayJDOMRy5u3r&zMre*D^8^hc<s|*3EliI;d#gF$^b!)cT&n!mQ#nlG zta)%w*0%PozrL4ReRnJ1j88C|WU9Kkmyu66w@QLFZJTG@(-3d*zx#{M25xkAEpPhZ zH*fJtBhLQpFMlh1rR+48FM3}d=Bdvha_UGzLu2Q%Jb@!xAxo|?cGZVV_jtO_+`ToK zsUfxhvCr%R)3sjDE5&$inWb<4vwgfp;D6Sg^GDf2r)XcBUdYz#C>ia&<)6otbrH8$ zB)l_g<eG1<eR<lJ+E>0Er#!n<n^r2no&2kK`bB-8T?KPC3)t&A>bKqcarD@>3z2Ji zmYmSa`coHlVY%m_)(w&o+V5ue1Z{cmwJ!0NRO;(s`ERoxcs6y)W{aHMX#c%+fq%!} z#)plkjI~W$PX>hjN{zQr>J|;Xv$*HmSLNCEGh#U2EZbW3<7WE(IPL%D-~L_x{!RYB zt^C*TYFA$DJ!Ln;Zp+Wszq9Y$yQ!5}(^j*u`J+I0w&aK7W{V0|XB^llcEg(CT!Gx) z+_!(N4XowtYPN>`tG9pg|M}&k`+j^9XPGK^qHS#-!}oIv2g=UX3P0T|anV)qD962{ zQ)cLB9!`<(bc;PwpjAEDvFEdVS+3OiAkKZuSPFtV53qO4i}l@7m~rmTn(ysT7OXwE z_qOMmKK6(<WB1zbt)E_Re!F<p-hdB*Yoq?Wo7ZWbx&O|3hV3&hTukq{*nHAjr2OiO zTe3p(;yhpe-IMbD&vZ@e?XF4r#{^tGPpY=OQPALU{oUfree3)q$q6%Cjx1{J?fLiH zFIS#f;qujA*V0aRC2MTfW)xb$VIX;Z^Xc@J&f!4?>ps_1sD9?TpX)EFc;rs`TX#|E zUx&_z^jqyazoIWMdX)vYZlUa~AHfH>I$CO<>vrEUo_aDkbYcqs{q>tySt#F8(s<w+ z<x{&Q{;0|li^*5!WQza#(D^&bXp5`O^V+8(VmISCx0H$h+5I%GeD_LC(YgDWeYza8 z#aBf0_{^AjU8z^vxRX8Uv>waaC*7`BmmhPP`{MDDDaOJx(w_D%?8;NCop9*0Mb%|n zw@C*KayVFI#piL`e;4Ru{oVXqy~S|)o%6lI8U_EvkIXQ;Tvx`#sBR$573JmC?E7|e zM23!AZAtE`68)X|huv0wFq<zic>%A$Tj#p>=MSF~;OJtpSI?Ni=@Iy+OQ44RfA;jk z^|fm%`)Z%o+q%1csx<BNH5W5KV^sFGr~Hv@O3jI<5-lrPTWXd}6cRRK*wwmXyWkar zqxGL8*RP-csfv{$?uPb?cXdB3mZfC6d^yAD)7Qgwe80DeO?PHz&tfULeHrz_oyUtJ zd9qf@@~u|daO}*_d5-(eEHRYm*%<qemAiS~x`c>zp?y(}?_2(z+V?Xs?8k*{PiB!| z1|2OfL)Qe;2Zo*r+v|?s>C8FDU})9EcV_K$L7gR=CvOV*`1dMr*%46_3s=S`de@KN zU-znR&D8bW?vGn12W{Px_$|xa^0=++pNV_#yh?u7Th@6_!LhA)`3+gkHv$ehvlr}D zQC%<Wy8de$hpqckSJTDOVNWJK%Gzi?<$-&BV$ka83u@RFTo$b`Zs=U^yr}d2R^JQZ zN$(@AKARm7x%5czkC(=T->O>T>=v_}5|$pmn7md*L?E?4tn(&|M&rBssALP4E<g3Z zE57e3k=|0Lrgu!mZt}KGj8;?jNdCT3VqfsbvHY20XI9`wo{Wo^y>_Lu*oiU5_bv(k zyNiS8Ve!WET$Ak#N-l_Ng#MXya9U)T_uqZ#9buwufmZX?CODmpbpP%7{8m-zdbXoA zk7jP)cwXX6(#~ZuP9JM(WLN+C{AkXjnzFfxYzfSjLZWqDtE7HC7tB#_wfODyH)@+O z_o|!Iwl17`W^dnKVb3p}_s^f#x-h{Y$btFHr|g{@R&5b+o_%x*ClAxHN%uFJT#(nF ze%vDX{{#6y_HUkj<NLkwMp}L6%D}Awo~<(8O2;^x|FO7;*%dSKY~h@D;t<=KllMbE zpHtnmUHyTBg292s(aak*3toIw{E#<!?sDbHH)d`rc1_zO_O4WZ`S+jc`}e8+w|n(| z?O*l((&B%rx8J)~>bu21#f4!BkJ$`EMJ<cvFQku#dvDpAvQ$L$!G>ilp&Q&M>`B?p z`7_Bkw6c%m^UY5a|E#w!|NnLG-v_(*=YQwt&o2Fw6JPgn^N)Q2&+~hq7m2^-V6C*< z&XgAM-s?`qKjVqX+Wu=~&wFI6nRSLd<!=5TbWe)q56iExZSN*DPSJX6wR-CFy|WE} zezy%<K3i0~KL7ViX+^UiKmHi+KGPp)na4Qet%GC!g<FMlXU}+cd1HUpt1|(6)=g&I zv|?*o5}$*t!hEMBhPcJ^?<X)j$sMXcaGben!@Kj<iVY&VVbWfCvQ3E#Z!a=D!WJfW zriPo#dfAr;J0Jg+n)KsB@6OK6=CbM!RvkOFJL<tA_qy{cy$(jETni@U`Rw_=&3;#! zQ*UX;>BG<VgkD~v-0{J0S>-2&o)^2D8V{&wL_Ohn^3ADip#xh(!)2Dh%kx@R+J2jq z_{({%&1cD+gXc@;MLx**uyBKW@R1B*#+kdK=YRcr%7w?%=G^|sRZH8Y6R+ByyU1x; zoBzB!?r*DSCg<-PmZl4WB_y6Vos8PKO#g($(Rm50f6c4z-sQpCRP{8i|C;jkRWs&i z$g?cajac9JyjiK;?cPUY6_@nfKR)cfdtxJ=_8D*e)q7jo=J@J<+gdZmPS@i1e|O!v z=4!LO+xGQFjTg^SQcIaGq#jxGP+B-+=AyS+42*LxGyU$m;j(6(SHm&Jjkmv6+-sP+ zBYyqgszXntj4Z1JxtYID%vd@9vg?%JOwqov(m%pCd0BNC%ndDU+_N`EqB}$7i|8+o zz`6G?s$Be6F(;bkl7Hp7qAdk$PWDY!;Hp#0y*lr=b1+Ze#{Ub#lYf}TUHH1HPVY}# zx#>53hu}@#Q~vDsw!RaPytwdE-+!ybLl@rhMzH@)TEBk!S8z$^J@rvQZ0`~#Mg=}K z=6&b5a`rTz6wmx_kr7bYyWqy;yzqCt>_=GoL%sd^4!?0brt?Is)9hD(xyUvHscIF& z$jVj92iF%kSp1$L&y{S)vhxs!>l{N?(-ne_$M+=motb5Q-SLI`>ZCo>4DIK>_@HL7 z{@!Vkzfb0ds2OuOhxTn_Y~8kkeae(wE0|2JHUxD_<hw5Ww&Gi<-1Lrx4!U|blUZ3a zB$6AAw0FJc+wjFlDnN1Bh4}W%j0+d_Z~eCO<?qtkbJZ6FgDv>9jWZ4{uu~6qJ~->( z%7v;e^Y3~--!jQFg|m%8%W|&h%8I5pC$GFI-;>|qa)Za`9hXM`$31gQ1)R*ngA}gs zpQ|Tx*3~O{r&_4pJb#mt$5PRk4*wLr#^I@v@H%D5mWK^V?*%x79UK}?*sV%1Qh0Xn zQqZyaS5{k!ezEVm6nEwK?Hys&7kp}C)z)x#ZC5^V_N&LQ&4sn!4yHV0-WX8mx1lkV zbG?N7q{V*^2Rgp9D9>K7U*O3nFS+J9Zf?y__ZrG2UdmhY?x@^Ssmf>5YTPgEI_h=d z-a~fLb%Kw$-c$za7IU#})mIW!P%soqXAH2~ENicAReho8`Pq596o0qu;-0%Dn5}%S zJ$Gp-YrW4MZlMVk@3@7Ze@*}YqrX1y{x9SEo96%jGyS!Ey`=g5kgs2^^(@o6nI%~h zAJ%su%lP|Kj#I9i+jG^nUfFNEN`684c8l^I&*%UBviycLt4Z{i*LIJs9<zSjlfZVQ za@V10M{Wsjx$;>w*kh{ad-YhqJLx=4)!Y}4p5OoZby;!ohWwhxbN{aY|L^^plmCBv z+>@7^@0*)!_$q&4?(@mw8*df8kvc!U^zxRDb=QP_;|>HKo|m)0gV|uwKCgp%uVpu1 zyuWvE_xauRJC;AVe_cBv>D$r%e;Ouii;_+}k7xN*=#!;Vv+Q5)rCjBVFoX58Ee$=N z|Jc4MxhOJ&v*Ow6oQG};ZMH;RTVfz2n65XcxYq0H`3K<)Gp-!$IDg~zyNcv|{`!0W z((7MZf2;rdzCPpgtQ|UP+fGX!+BvZ&rqE=^@`D1_0yR-WXWlI9GGRQh<ESwMM|~Zi zmmj;z6kc8Ci5rgn46P0`?|5FQGW+bF_ndDXHXh@y-<NbU_RrZEmiIy@bG9^ug!IJ9 z@PEE4sqGT~fpyz!tK4swn@szhj-4}DUzc|2zI#*VDw$V1ol5kV9Y3=3p6jF#r-SiZ zl2q(=?3aGWpE=FpjK6&DZtEkiyxB|zI}~?b*>P;et@uxC+P_52<W;^TwkAEs{u}Ex z@qgFTdYrnQT$hVE$#5E6$-49VjO~Ijho9$bdnDariW+J=(+fH7_wTEY-)!BJ#JeCv zK5paI_8ZX&w*)d$nDlhjd;Mh-B)`f>eE9gf@ND}@$7Ort|L1;rk?fOlaMl*ygxQQ8 zH@q0`)E;6f@$1?5?$`ktg&DUQXB_!l$~)OW-CR)l$k(=ctZ#Q7_tBf?xort|i{9tX zjRuhtYytw$1<o&hBd9Ir7usajAahf-%Y4EA)8dtHtRKFS;?muFNPU{I!}AI=)`Te% z^&S52C1xkc>z=;;A$MW><|oAluO@0->pJAF@@>-&o9Q{~Uki^U6ub-4)@EqZllPyn zTYKj73}><W9xLzG$Ly1LIxU+Y#k;`2wDWyeQh4g=ZWE^(U$smBm<yhqXM5d{Eb;RC z>6)GjlM{IhHH#zHzu-C+*HyfK*=+r{pfm07bQgP<?-uA}X5Duv;AUG|h()!rwszW0 zVORDH>#(gBb?Q9<eSes3g&5fmFpHcBJ*j23DvoE(ouAWqh0e3s_Hb%{e%0+Zk?q*M zz$0RNlYUs9;b}j#M}2qg{<>>Z865xo-@@rq&QbNJPI~q3*u4jfE=L$ISQUQh_e#!y zo7cC!uwBsK9OrM)%;~MT*IV@eITcri;(v42ukJU=UK4kVqiAaNF%OqbmR=JT<2XWA zuMf{yt+m%H&vrpVfGDG!;9K6O)gc+L9e(jDxp^$mWQZ`EV*2fE-_1j%o6}#|7)?}| zyG5#g|6}9utASHbGHYFDT5?UR?#nOpZ*h8FX$zw-hMv9hgz^8rorV`*{Jc|aB9^Jr z{4YywyXCV3#xJ*jye;9q^vFa@$H%vhA3wI)g^9~5I`u2N=(aT~FO8Ld?pIRidhm(u z`zkZ;!=L$|b^Y>dR$*A+A}sysYM?BeLDK<Aohe=Er&8EYE(>Q^!k2f$TJC}W)cI58 zvldL4wlRO}_9;ug9<y~cSn9XT^46jW=1hSHR?HA7`^3D-)#H}rvA@Y4J5<b0-OITh zcJXn0%JCidtywg$e&-kPJ;<4{f5imB4T~2%sko3*{o}nf)6+ZLZCt1I>prIZUtj;j z|613ZivbtoKGlW3y?Su1<J~mX`|EXF`P{!Q@<^B>5*cv1JTlYyK-`;`g}mpOx6G8B zF!he#-H^m5?=n}+SuDP}=lQg-?%#%TvgNmnwi(uOiQLXC-*Vpme=%qtVDkU(-@gC* zcb|)`fjzZ<-k;S=)%w0(_;}*$D~{E(4dOQ^cAr%AT-(XFAf-ccmZ!)zLxy*{54V-> zc6xjN?bW~S{1-p}|MDZ_{PH~eUyu4XTyuT1QhEMCk%oYU3sTtD{9CD)wY|VT?5*`_ z?PG<>_t(YFWRUe)yq&Aj&^P4cle{7|x4Du%@00iB85yln)9#tMgm>B$^-IMKIeHhW z@Bdr*_xk@I+Sccb4Q3Z~sWr9k6W7~WU-eGY$cd|QUD1Qf*QJ6O^yi+@Ylu!~ykg73 zoh?`^l`EEU_GZ_dl}0@*%2!{ht5qket90FXJkMYipJ#aDQ@PHkNl5`q-27EPuYUJQ zYU4_kAKNdaCo%DU<GvX(YsMqb@;NhWdv1NcaA5K>rTLeH6`#e;sZ5(0(t3^KZSI?P z<^wNMw*<5_%#7Z}aDgFh+Lb+tJRyvW*sL2KYaPB<zSfnMV`hS^=0l;lFGsGr|99<+ zX<E4;L+kfx(UT%7i68Hl9^d>WXI6`F)1q^CBI@7m_`SKT_|N9DU4O2e3s1jMV{pXo z#r18xn>FmFA8nl!+_Wxc@8*S5AL?DRo;TJ0Q0u=H8-EC?&2efxSf&+|FP>{_WTrjM z_H}Ht_EDP|m-ijm6)NIp;*@vrr-|z1sSEz_Os({Pb^DH+(7QK%ZDKrYw{oSnzIEHF zpRs*{!TnjsS`V392%I#$a_NSqfNLM8?!VfFz8V{T9f|08;H+|cPRS*|Ev#8L?-b4z ztY`VW^tGIBm(tv_Zux{ozugZmzh{(Z^2WJ0gGZ<Nfp{*{wFC3tX3puacx-y!e2(RE z9?lutEpuJBWNfiZVms!ZSZ{i0=gV{aIueEPl^=8bcZZ(X@nP%diHp~M+AMyXMQi<f zaY+Ak_2yfGoY~C29BR#>o=Q8FJsnw@ZMUwOa{0%RgC)mrKWXUo+kbOGiDSqSi`&zE z+~q>Uyto|M7aMvCPCNHM|4*jz%EbPeYfis%7rF9ymUS<a8^_zEciAi#8Os!QxCtz* zj$xMOHwg~h|KxwKpoaA(H7o7=XD<{l<NBob;PoH9%cWZcM2n-YytsN=J!!$kuYxh> zYK40~voGy9$FS3&uu1utPT2*!i??l7C2_A?-y^7h^rn=!<QYw&vp!+IwZ}KB{*BCj zbYJpsYM(@~;r8ZdTV>}f+qR0l^xS8`&{$En=G5Z;xs8E}zvf0dAH2UZ)k#-e*0VIk zy{T@O@!5&GJXd-`%NxYPy}M!;{N@tKZu9uKfA1`fK39=4<x->ir)xX*E~qOOj$YdL zT%vGZl*xym&5zFVtmxY-*ZKU&N#W0D4xG|iZToS*%eloxPeNO5k90qZWOm)2^ZUWk zqHVT%bFO~$2${AgELbXF;j#BVGi6@ST>okLHyv%0U2cp5C!XjQ7j?!&-JFx!sN?nO zL%wpuQ>mlt%{{7uk6bcyv~py49H}?^^CTYS!*N?Ro4X2+Pww5Az_+X5iioyDMaL2y zVS&TRX#(e2K9uZQ_h0dbbE{uD&#yZ3ix1Dwc8OzDS?#^ZYkKbc4LQo0&tyxUZOUB9 za5W|*M8#`m&0SAT-JIhW?RrzDUCn;$esjH-;n72aQv^NMmmav=Tl?+i{;cD(_trk1 zJ^$AI|M&m-88AGXdD8y8@68L(SeZn=sj+X}&m53p$?I_P-=y@5_G<)lF7DWWOpH_W zaCzPaxiu}ZK5`%4SMB(Js_sMe{ms9BtM8sOyY}N#aX|$!!>Nn@t||22klRruq&nH1 ztCF+el$X)D8pYEp4%7G)_xUVKvNW&m_k5MN*6o_dlYC{y8SB-VbN@0aIB$8i&W!1& zd&tqK-I4R()i&H!|E~V`Ih!rZndR@j-t9cc@Q!`)TH}{I3pelBuWs}C(oX-AeqIMp zXNQ>VHQy7fHMt@ChX0M)w|hI&kL83c;1sBGlKyzG>ARsM`-B=6){01_;~j@Gk8obU zaFbEE<F)z$qi-z7?;lg1I6<-M2J5w6F>M2O0l9+u>Z@Ok+SkS$X)`ps6Y=4|%$GOV zYvR?7g&Y!7Uw2BnJ$G^u*eQ7Yk=2UVqUUaKc^SOk;J+pRg6d4?>x%PZZ{Bj~Htn?a z-c@Q~G$+#}{;`zfTl?8+E(!jVLJxdXG>~RH5EzpBR%F@dmpos4@5=2<{QqwM*Y`K- zKllG%7&|Tgq0phZ8>I4!fAQa$eQWlg;+Y@HnznxY?(<{sA-Ph)4G9bm9WR?CycN{c zoCGY)eFRQ@_S+E8boo+gz-@;u4|I)lw>C^jO1`qxM)LdHU1holOtUyV+BIjWirY1F zNpBS>@VMZ7Uf|8OL)RGgh}Fq9>Pj5>x_-t1tILmH)&D=Ha4L%Tt=;*L@3t{972Lg$ zb?NVqBg|X2_}Dy8@;eyUaF=nziJM7s!3@DKO+1Ca`7K|uU}NdY6K0+1iuW%ZH@<GU zQE+|v&(KVxi*Bn9h}H$@YD;=AHW1vlEVp!zMEDE`>$&1b7MwemDWv(;_?gr7$@34} zemI^gy?W2SxI>Vmb`(~K{9NS_oEToX!P<4U$u7?J04J-GS3J*ZQo{LvT}lZO?sG8K z3iIlTH2rqIPbSfwD@5|jmo;LiAI$C*^pf7@kQg7TvU_vpv08N{>!fe3wL9WG=O6Ac zpOXIZ-i~X6GLAYcQXjCkpT76C%;d}b;&od-8ZU}6IyTp()QC6P{ZKv!+m&eX&NnVq zr7HKHzxY2Xnd?<%^MwU9`<v1Nrs@id|8dmeTy)R%@4nwYT?^jnsUM76_j+o{F1h=h zQa6^B>-?Ep^<n+A%M3f3Kg>DTmKEMD7ytN#Wq{UG2?t46R;QDF4x-A@2X!<z3Abd* zTzKiaV#mHv$4tGZMxm~YKF1b_tUblueCAmCg6{=it)kU--IO>PraM<d+t1<8SILq; zzy2P(uCegESNWTzNsCY2|6FX%ym8WlLn4h60+%nW$WK{lv`M@1xRl0C8>1O-*|K)e zT(xJxt!o^s_HMsWqvF5U?Y47&!iIz;>zVoH{++udrd`LuI{B{>d&Kvp-J*J{J}s$g zTzaYgWwN}~IhkvlBSj;Gz5SM--#95qfW2bVlj6JIPJj2cH(%7Oz9!-3?Hd9-r?~8_ zkNlc4M|zURpRz+1YE0e7x>~oeoO0(hdvT9x^R9Udzi->5FLP)iPsz=E$?vl7mkR_d z^3HVNU^*u@|Gr9>WTTB+Vx@s@SpT`wp5j$6mVOP)S#c!(jLA#|N5#&}RjmtV{Cehn z?!4Op+m`K7YQZy8@*<ozyiBN4xKWmPc=py$|DV5o_ATN5pJV24-~V5}fAhazy<00x zZ-4%5EL{8UvxkxBi;Hr_OX3!vb-jJ*n?!F{-5RmRNX7u$Qid~2?&(iEo40jke(c-& zzj5pT{Qvj<-#%MgoAoFEr>_0;zr}W2b@Q*<biuN1g+`VKRm&?M$Ei6STWJyNpz^lx zyw^3K>LvvV+iho;bntEXA+`6!<uB*%-Txz9_ED4b?fkXNUQOSjCVaOdEyu=qXTny) zTbl23X9gZ*W8UBV^V$FFY0?i=-FbtonT3-T7PKoV*0!Jg{>#+ruEgcIs2lUnm9@xS zf4f#V*X~G!Yc@mf>Scl=KE@mg$$R@Utq!$GySA;~V#3vzp>nG={fR&Xi`$N_TRnS4 zJR=U@E16X{(;@l$l4aeO;!=;F{PWN*b8A`=+qao-$`utZMjVwF{pn}la%B0^^(Qxr ze+xg#-gW7yVa()}uZ_R?X5R6hQGLI5O`-e210HwXADxkC_{d@+uC;n!+Jy~@-g@<J z4>V_pd00)AS*$P3ApJ$B$7$oGkBx6rZPMpHzkk0tMUWxk`sc6r{=KgM^MCX5&;E>y zj#z$q@<&kp$a2m#^Chc-xNn3`TfS3DEvw^a$04sH;o1+bocB8Nao)LWTW+)q-wJ;9 zF_t0qVC1epr>-0dy8d0K@V&^jDZ6R{U#tCb=HY#jE}gK)!EXP4_ZuF5@)@5WZ(y#A z)%!F3?<?W!bC@>GQG1dtdQ|M&s`j+bNxuyCp5O42@x+}Y=_c&fOb#DkS3LOY&(^p{ zT6ngRB+EK~gXErEm+;H#uXk2uZ)Rrgev@)uqRi(=z(kIXK1UM6UkbiGaV%-0v%^~@ z>(^@~s@L(}Ry~z?qw^)Nn&6WCD#bnDq8BrVKGnaH>~#9-)NG%>E7{bty3a@dKU=!; z(WN6<q1C+K{u{;XvQFjRvfzLegT*e5do{ItSAbXOSM^$6ncDToqT`s$jtyK)3b9wu z`YoB(={?h^z&S|a*4%>!xA?VlAHH?doc(F)mzhqbvqjnWO;Fh>Ai6qN@c#m#*QX9$ ze12_W$ckG`&Pf-&uUwtJ;x(`I&IOB>N}gZz;hTbq5~rZBQ&ajpfxrm{OwxU+-hx}1 z+FK6zdxmVkIQ{C+`);vY6M6-V`9ib*{C3;ZvWus7a>3*6lNWA3>vOf{%koY2_ZH;w zU365D{+ZW#?Mq`@HqWdVCw{G)vw2-t^TWu5(;c!4=3QewSQpg$_@T-Hq0cF<mHD^) zy~0Fpm@IfB`hZ`}dxod;!5L=?L_gjWm~q6;)pdjGdZRgsPd^`wQfUxzG-{r*?uc|b zk50o?*KZP=(+`B?h7?`ktb3XD!PqAt<m3r0k#Fl5CalZSsWwqwp|vJw;xD=Py}BV4 zVWqzpJWgv;dT63ry71bW=MuB{!mVmUU$#Ezerj-S3-?U@?bF`07^N!B<jG-FUzWnt zS#AE8M^gUQKUOKGi0!K1V_(;#y?J;oeRaOc)t;sL0`<#}goaM<{nmcOJ$LehF3Alm zjM65ue4Sx&(9rwigY#??*4?xy@-WfPjkWv#qfzyM!|B?Cd+)SsO#V8pzWw)#JHLD1 zJ6>Hod1mv(2p^dY{Rz`g=zVy8;+}?^m3{Tq>I>;dmk2g{?PA|2=l<sO4*j~c<F!SJ z8L1s7u5P^kclVq{e{QD#SKj^g$^Y5!-`f8@Uw3@p*R}aajBD%cQa|<o_0SJEWAaPz zq~GJ2vd`IW@6Bn^<~+3W?2_aoihtZr*QzBPs=qh6PX6oj`M(~%Uf=xf|BnwF;;tXv z$8pd;xm#T0*W7-_*T+m3`kr|yzEM7XUg(>(8{@6!3ueB~O77n4xMBOEtt`(us?ELy zeF^(7`Fs2RzxG?>|3BL=x9U4XM*jy{sr6S?mhbF;HO*nWjrMD~Z!Jlj_Kl~E-LC5X z%<2AC|0aH$ibUvL-;?RSvt@J^{Z;(O6Fa-Fc3;D!d#p}v`eyf%jYG<<Yv29i{jL0{ z<COzL*aoqXGQ;U}>};-aa)v#%`;t{TcZ$L^3;q`i<L4j!$M<i)2g}s+`rAbRh}?5q zc&AUv(Qn(v)twug%?@|ZY>>?C5V_Nzw&bznWXnZn+gVP%IK8&O+rv9Ws?cFug`(Wb zsgH%0%f6Ldb*!+S@t3jN3t>sI=C>>kDeYfZu_P>7l~sA|V&2XOsZDx{W-rBFOyc_f z|KPDJ{3;oCp^uFIpV?RSgZ*30&*`s!{uDib(lVDP$}vyp@xdQ;TipY{-dl0%{41ll zRZPjTh5wG4y-8TIfn&=V@n3$T^51Nlt&hkGs>|l&{OGIZPk83E+~<F4Qd7w>ZENYb zT+!1!8L!&OeVoVn^x~3QkzI;6FLA1I%~M|ey|=LR>F25MML!7n7~M>LY<FvR!wk7I z(^?a?B~@d#Z`+r@E`3w3_Vo&pmtKJ~`<aekNj_9nzD_whuV>@ld4bt06;&I<USt<$ zK8`6lrjc~Rpe*H%{l7kj44eC%4D8=xKlJQAkU7^i)79s~tc89PqWZhfMICviK4)ST zmwnuh_>VE??j&m&?cEo53exPd5R!6HDh<ltZpUP=@<t}sEtyTV)bi*q&YrTL_kQpR zpN;cdJ>lQ>8w;*@r;1!>5WbibBJuji-g<9^29YDi-^@k*bSJPmwlBEIapLR&z5s?N z`j@7P{1NT!Z7iCy$gOSW!M!?bK5;+2_Iqa;PlfJe+r@`hPMczV$;g-Q#N4AU>9f9H zK5o1q`915&qaM4SSh%HHy)D@j%Ve}>-f7OX)XOsrbT>{*ZSSfMSH0?D-MZ1uUUeq- zl2eMB?w_vSI`&{y(9|s!Um9ku+7Y^p;W9s)MB~=;U3-oxhn_Cg%Mo;JsP<*QB&l;` zYxU799`>diJs;Hgyybo9zvU8B_LJlfe;2=xIcT@?=c+A|lbYA1M0fm}UnSA(r5<|! zRPBYFC9!V5k_<T}O<Wdf@p6H(gVvtohx8dI9IUgJF1b7D<e>#2k0OkAuAVa~akf}v z#r|*KX1<@@#M+?x;#SN@<Czz3KYPEj@4k6L+#1G6bLErw|LyLzn7aC6_mO86_Kts- z>nbQTxAZnvTw<#{x9XYp=Nhp~?=PFl3OGn{{*se8zQd5ASylMpV#nBB7oKhDog1aI zcrnK}{u}+RB3JiqR97>b=o-{;e)3y~`DM>j`q%v1eE#M)FNK*u%GFBTQs4eCztzsr zrniT$F*_||<&7KrIBs#?P-#9;(aV&=vt|QdV1)l8yWelj-@JQwY~RP;{G0XP=Kr57 z%JReQN857suz!*rV)Iy^=1*i0N?jdU`=stfd%T^U`I@$LZqFF`)f48-Q8;k6_U7*G z`G>aK*xB9uzW+CK^$zz>{}=1m$-H4<>F4;hx?eT*LC5;le{yayZk<=kaLjkxU6v1@ zHqBlYaz}Vo!?Brbr#UTEQ^;_C@OqEf`*&~u|2+Ty{kO&Of3}x>J+*88W(E`fpE)Ln zHW?=h%~-H;z2nJp<9Cm5cInM8Yq-9;xaE1pfqk8)B;D=8B6YR){w|L>`G`~Tq^<q& znJ(_f7(~kyV<e+qOlZ00@s3^KfSLMMX1BPWzj2Gs9=xzw=Do91{K;)a4l2v8{Fo=$ z@$mKY(Cblc_XU>DvXk4^#mW45c7iF(f?qi|PsgmxRk6-6Js;^8zw+_@i6`Ez`B3>} z=kjBXT3_b!%(+-}xHu|*hR3UFowq!Xgg0MtHc+{om415u8fmu$?{vjDW{I^XO%vb| z``vJI>AZR!tB8o$>oW}_%{OX1FJ1d=t5MzD{ZaL`F^*~m;*X|TozGBNGoA6(F+2N+ zZ8IYt*FKoJAoZe;r?!K5lkmqqCxUo-8?!R(wT}F>e%l=X{Vc<+$5HFjGVgzzHcQ-9 zL5bnwB>T@t-ah{SE#cf8iM7j5-{7BEV<mm;`my`fCnJKC<#KIgy?<373FN;1v*ow4 z^`#Zh6D&Q`4s9;7H-EcB-{jrox108UJb&lAT)+EliEnp1Bp)h&P-isU$A3=EcIu)> zQxAOE)a$P3kkfO#pn6O9nq7~pcX{sNFY`B?+u-upu3<ilHs>48PHE+TkN1~96)3i| zo?Q@UrTsta^hMLw{ck$58S+ZDEWV__Z(rQC*IQX1wC>$@#G57SuEIUriMuSCj#`zn z#airGAQ8KEwNt_()59-X87}_%?09fiNNL=U-&a4ryRcj2g_>>Dg_n=EUl8?Z4zpq| z{<kyl!UK=C2{SgnIPX%^*!A{buEgpxTjd9dswq7OUP%-_bL_nA9DDWus)n-+OcNeO z-Z+0RCvEo;8T<EFJ9b$c6?~ZXmfbtP)xYt>MJ6wkjFQQ^&(rVxmb~g4(zYycYQoW~ zGXlr%cgs$k`Y~g3favOrJ42S4slJa?p17%9hiNJ6`Gku%v{lY{?ln`LU&1H5>iklr z#)5XyldZwmuPNMq+2&XnJV9oo!PO~CP4Y~?^T?@BDAnlyZQ;>pYW!vKH@#I$*R9U^ z_gYe6<$pT|*8BB0Y98NzBFy#c!<rMhmshH&%7(fv{Ay^}aMjkLepxS%fvHlk=Rx<Y z2lM_!GV<){5U6qfFpGg@<x#ctdlMM?7OYe~YZ@V5*%aCv6(I6p#{30GRtni9PZ2xj zxKMU+Wqsm{hzY8PH#)Bre|UdmUH#p=QZ3s;9)5YP%rJeeh)-3{7G{%+^OycOz4dyX zP>q805#G!flaKU=IXekHO8c2?dfsi%)K}LhUI_oTsVe@b)D}LmhII*-%rCxk5YVoU zSh`hU@m>jo&}|nD3ch`v^DVzX{`l3tx$`eF%LKmSy=|AqHodKk>+xshACpBAzpV^o zU)%Jmx}(7`WA~Qw)1UPd-_M#Px6Ptt>#-{v+hnIY-dMd_^PuD|o;6%*haa7Y-SRT~ zyzSKrDYe^g%f9`5zCX`h{Lk-a%fH3{5wEZQ`}J;B*zCFU)+g_N?K9QsmQns;|Hl5# z=pFT3-?sG6KlFsTcDdn+ZeOPdI}J4tMwn{;<DT<POM~VAuDkUW8{Yq47yj@4^(X%i z?)&qp-*?Il!$=loN9PuOwTl7oUH2WlQ6%thNm5k9!#QGaf1bI~<H>s7?auC;KFJ7% zTh$DF(eAAuZ^^%T{n?%~K+?=jG$X#<S0HajNwfd`$BVh$(hstm3-@lH{3`xL(Q3XH z!^oV|?C<7E-x01}YN{r%D1F|C`UD|{2lmSfk9@x4dg=bn<omY`uPqna;PN40$9wS= zyW7_@%@AUURxAh$ow-C;L3iKgq_}VH8|1IqTTfmfY}0$_aH_5R^_vF%bz6Opn;ZJ+ z{i&XPncw}ji=aZKQAE<bRIZ&1YY!K=J*ts;k?$b7{<4()o9vzdS>-PalK7rQr0*83 zE!m)$w}VgJ=DJ1x>1RDk+a@|Bsc%*&$+2Uaoc)WBK_x{%a)vmA6Qk9`nZYj%Zn}So z_9;19rE_Ifp!9O}pbW;{%CT_^=5tTBJIrRH_1c}gvqqUQ`&DL3oPS80xbu$nTUjr> zO7Q#75py(BQ{)i0yu9Ht#^<-~(;Y9}<eJfIA^rN-v~J!HEWdALBqy$t&JAik>sNTC z>xROugE}>eQ4W&qIgy^R46_nvxw)VA4S#)Y*ZuO}`8P^d6wW;Tb-J3HuYtAH+r(Pu zaOSjoMYTp9cSWU3FM9VVeW?wdTNS@Y^-8n|-<Rpvx7@d=uB%lK=1zPs^!BKo2V2CY zZ>xC?J-8R{msq&>O2Q7NBR7rPo=Lg%G;S00p3wIuGGBjZS@6P>5o?UL=_b7Sq?+vT zc$ag{GzPV3kq<uQHgcyte+ejm$+XQ8KKyybG^M3W)ic_RZ+!j>UNDi$uxE#O^C6}b z+h_C5SXN3LR5iJ^`W;WhZJS9Jsy>TeP59Qm^P9npi_*)QVwrczBp;Y`zDGsFNp|JG zI+c*Ne|3+2N?4{D{h9mzYKCsmex@8<Mur7K*Ci7q=I)zx`sfw03$1I8hwJ-9v8}aS zcm23<Wb&ehCkI>qS4oBh-WFBKWo@jBN!NH|yzqO<p^M)<o^-Uh`7tdQ5kI-}WUPoo zmnx&~{G6U&uYT<D*mC2U!1XPT(<V<_>h-qu{O>M>@X)grG8}Ur6htV#bLp}C=J9HW zTcd|+v&2jmcHzeQo0qRoFgpINK_~u;mx{Q?-tDC#PcGlm;n`JK8|kX9dv(SS<(pyE z4BC7mA|U~J(%)Doad8-D_UFYfny-D}{5H;|tLLuef0<Af7Bu0_#6@SWO+R=3NLl{2 z-0Bx8y)1uCfBpEmx3fc8@!ZUh8)G=u_5Rjw(Woqq-df-DmN8fA_40qayY3j?J6J1l z+qtJts8ORqoK4DcubCbHEndaHv7GUXmxqU5+i^Z5(DeY9TAKXpIezt0``_=1ReS6c zX7&5mggx>f=d4z96Zm@n#uP)QfHkx3aztpp5WRok0h{^CuXaWTI?NW66y|+&=YM0J zR$sosRO&_hB~g!suG_3xdAG^zm@cuzcSV-?rAd)uTQ4s54_K;Qu<o%P_e@#Gx6kLD zdQuoH+f`dSxlpj>)P?%FAr}@kY%y*;Qu?-R>X!e}zpq7o{D1!Xsr~Bz_Z|0NUi{|o zszdy5?Qf)d2-p;Ud{xkLUr*2MBwLB_+ijoEH!Du^m->Ez?F0Mlp4w*zUhOW=KfLeG zdeQ$2{<h!xe{<iDN9v3LC1JPRl3X4fXUQn{HfTM=^<~d>pK}JKkIwDN)KQyhn;9=M zZ_}e2obO6A4t>!%pRBK!eYJ3&{hF&+k2CZ{XIwsWLpbu_@t=*FN(I79iPH<$UNpJS zv*rKc8>=_2NNOyRb7mAzf3rJ9ctX)VMXi|+J`_Ex)NA`!&GuR})Q|maa(>k%BSpcL z56!>dVb1xTFkxM$Wx_oZwN?+Nk9Kbt3oSZyb=eo^e?R3rmz~<?vhZQolT&W329us; zp10RmzBnWA6Gy8)$E$57@>jCL3?)|<$?wp;pM2LqDe}xAHtU(cC!MVGbGop3$~wMV zTbMY6Etaq>n{K0jQSQM5=Z7y`Y!9!?pLN#a<?@2NOfmsUPyN@fp5$+zk#c5dzGhI7 z{+{{A>ZfPfPTF~||DYGA*Dm$BIrBA>GPDk=y<o84mfCXh$})M02L(4)M||SDuWZ&N z!Q9qWzDD`G$E6R<JXdcnjeo-JwBxRu;^Ns|o`F-eHeFwJFWzVB-+7DI|9&R0ajL;K z?xUt_pUG*ww)^-{`*NZAx7PWqXWGRq%-I(AYK`vC?{m%M?e{n23Zy@6dp>0&e`~C1 zn@ISLLvjgM8M_`<mwmi5sWek#-IFCf8HNtt6I${OmrXM)za`!&W5oAL#5^XU*l6D5 zvXFP>_wu(%%=@|bLwLnCmR_yn>FK>YZXaNLF<m{TeC=djvBwt~DrT?jU8ZfOxBlfb z@9MpF6UDzZC5I<)9)HeR-N9*kv8ChyFQc!8zg1M5(JHI*uRAxU-*frv&$8QPYAnn1 z1m+K)4@(sH%)7WWYSH)W4hy8yf4SX}p3cm&DRut5U(JS5D@6nL*}Po2Y-7+OLs7O< z0{35qt6kw{;R$qgV~D$9etUM+QXS#@1v`ZgPI$@J6xz#a82Z!jQQPMEyEi($cwOB! zpLdDz8<o}ai)xOR2TYy+*;jCltb5Z{jV&iyZrq4!TqW}IE0^8l{r~N&>;Dzso)+7l zSiH7&*7}`iS0{OPWlU0fy|?I1#71TbLnf9+M(ZgatMU~i1t&T9_52BSoWQ^(#9XwZ zZHZ{N*h`j0i#!bOo@&y$R_z)#G4$)Z-Dj`QDgG9By84{qv6$c2;y?WTF!#{v>i5^@ zZ2o>L`)t}7!{bkUei+=5;&1)fzBiBO#jodIOJkY;`CnUgUv%}FC5i6yZ?`h?iDWpg zbV=g4#&|SMOW0v~cUuGBq#Yr)`Wdz#{=KQvSk@4-z*XhI<+fFlq3aBfsXMYSFbd=F z^O!5n_}G$p!jjFY7ea0n#YeC{+<8N7ajkS{cHGW&{{J;KA4slXvT)&lx8}jD-ayL= zy?yIt{$#yb%Q`i<cB|7d&J8BpmKJEat38SJ%g?_lB=C28&QApa<-5Im)RY^JEpYQX zbT`D-puvaduF2%s+9k&iAN=;)IcEPP3)M1L&Uwa$H-s~1zAFu8(z6xN5x*87`haJi zvE{Q%!fQC9g|BLc39gz{7ZzlFjaex%DdLS0!{=4p44pI6{XMs~9O!wz(4gT{_QJCk zYp?&fF@b|MH8|AwUOY>h@!P9*2iXJSt~MPE^x^tcCVV~M;D<2g7SDp43{ehgJb$k< z6egXCY0BkFFunXQVQ<c(ZN5)${W8mNK3W>Ze8=DZujKBXm6`Kv-cJ3?{(t#?q57(% z+W#Lq-Ub%@Q`)J|C-LTO!HuKyO@$AnE&keG?Q-7epViZwl8gWC$`o0`D!jaXL&o9{ z^S6ucse8Hk@$A})`u$=5>W|u0od5rKZ|%po?`v4{zHF&y>V3wOQOI+nTK>B6Y^?>B zl8Qo}D;oOup8V{_^(Cx7!AD@l!B-Pf55Ir>t6BGH*S~WCpC9bLEEc5Au&t!&{>P0; zR}vhxug$D(W)OA1m)4{#J<BfUOsCZM*w?(d9N+x@q$Vlc4d~Tpx^Cq7#4_v3Db8tk zr)b{r_`%4~sJU#K()`=J|G#~DdN6MPzS!?#(OhpE|E+Spq;J3wEGUpX<;}u;$8vek z8O?IXXB_N{UT0IjV#=}gE@ui%zRq}D{-C}4+_svG^2UQgJxw3pbI<506I(iuv-I-M z8ij)LZEqUiFR_t+H2K}3g>|wwHzhDKEi0RNcIW(K8m5=7-fZsO>iS5SA?c=}rrXx- z$6nmfJkTno;PkxDI`>=4?Y+{?`)i)aIa#+&Oilk}d2NP)^$DG06S+6+dTTvNwt4g8 zTt&t_lQ|y`)plPC(E9AZDe?;I3X!fjwRP<#EDT9<e0EV^GR(tw3yAf-6pPhuzmdGv z<XvOzEenRkx!Gz3?mcX4%gwj6I?Yy4bNx9_p@CQ0U(C;M`_2!=>hBKE{FeE5?&Upg zy~gu96W6Y4uxyH-H$k6&i?VgF(Coz#Q`d+$-jr&Mn0STz#@S5n&&MiO)rub2dahdJ z<09Gi_nP&Bh5uTsh5xC|OiJAn<~n=EmMK;K^OgAd>`jk+^Sbn1^tPtj<0Jj+_O7!y zu4LA};@i<Hn<6cyh1%aXPuSA!d?@z~Ba`dvdlPkxxO%G?*Vr$g?f>@c9i|UQ;$Dc) zRuYU)Tks^Vb%l^s;)TAH8Mez<c$qpkFZ>{@>^5iCeUIb(@+TDz1T^yJiU<B&R5;Po z{AG%v@$AM^2fAI#-3x?EuW?8O^13&q7V^L1J!bP>^-X4XV6=grkb;+0dG5!VxoN8V z4zFB!?aD5Viw=6G|Gc}F?Q&x||2p=Z-}K!IAJ%yN@LbAQb+fPWBwwxXzt62DzM5~2 zrO%n+)3a~am8^iEl?zOIG*($IJR)=My@1I1eY|Q@S4hp_(YPJlpvRZE`hM<*H47Iu ztl}2<`r_sn|M$Yo4XX31St_|THamO9*Ot#MEZexo==UkhyS=lR-pvsgzhfyGzVF%J zgPsm0g4++iUNe=EXYTgKOER8+OfD{*rMhbVx&Fpd;Z?n&ZqY}l#0yuXO4@(#St+R9 zG__IkiSYWV_6zPm-p3JQ8=+$z^y>SJ)Hhe$LJe<K3LE^4tL}Mn<>1nY+sjf|JM)Y? z-{{(?%{ySTZu`BL75y96Sp+Y+uerYHXtq&}Rde{7^Er#(?^BxbNmgJ{7f;LXu+>Hn z150;lZ+klHl}si-SAyj8o%s>WtL9i)XCy6<>8w=UAea=v>gYYwNa9@K)Jql_<uztp zP7)p!6K;4oZkc7fenIOcHHqWrJv+R%WF_m@r(Y5;Iio%Aw^)eB1388}O=Y^W?Ki5D zK1{Kg&Y|UaH0*->8}<LUmL9ve?(eB1Axv*$9e4KHW@RvGas~uOc%@s<7Z!GJT+aAp z(W(2K-=?G_zu;N4>)*}v`&(A8-lg`}{9FAW{%cSEPd5Ge{nY=z$u_@NY1#9iTJgtU zFeT~QS3aduO}CC@q4}5UTvASXH67?xD4w%W#Cd9c<mCV1+Y{H@?b+RbYX9oLzd4TS z@B6WL$FVPpvBH9XHp-kiQQ~xIT~^G)c{e`tn9S2{n0?agvFT&E4D;BWZl~oQTV_g3 zd}nvy$-MpIX8PZRTh6Tc`cX3WeCoo6MKeXVY-CD5J@cDLZ?CPJ4o67ojcd;yUsIA` zJ9_IN^YYUEl^Q--HD{+!<5zQ)KKV&7I6$Pd;rp5wn?H3IAK6-VVD;kbaXU@Fz2~dj zp}^@YAGc6n;QN8U&4s<;ug~*0tkG}XCfylX?6@I;q2j9OEH+oCc8;V1{ldjwoBr(f z+rE#XVf(51whzv1^S-5g#m#R^?grNd5x@7!XBr<}HseL{-?MUS(sxf>X8xl37k}BB zlq9Zz^(pJ^4lMsr`^9sGhIhpE51(1gZ05cGG}ZN}D0|hrkBdJ#{G6Ainz&K1)T`;~ zm7V4#c{grd(iHG~up+$aeMl+$3|;95uS<9x4qVrmkx{-w?S4P^Oh4Ib$<Ehnn9~@% zv>En4y>}#{`y|^<H;4P8y5f1?uenUPEHJ@fd&l9dFQ=Ga^zMECJ?u&_{{oAu<2%o8 z3`?j#8rc<CZE@No<!IB_8-jL+B8wT;m2DJH)`|VkRn>5C0?TW*`P>DHtz0|#^4$02 zvc))whKbo7xBbKXR*|RYKaV3Lm;Lm&Qf+(_8vY!0dE5V0ZL!!!t%%mv-{KE8)cY#u zY>c0Mf4Bdpj@p_t6?$ALLQ`}_Vs&i4_eV85^-Q)~l)cKkM_e{Hd&Q&qIX+2@hZn~C z6>f|D&z-<7X=)gFbj=1+|0vC7uCITpwAQD4JnP)6lsT_qn&_opUR{$n=5O!5)!S8c zNu!rZuC+5z)amR#Bj*Wei6y)z?c6Ue*mZZtu}%6jufF|p*2s8LrsLW7kxzwMeL?~| z->f+6@WuOUb1cuPixMZV2G!1)I;U)*XU@YVO<6Lg9n7*eOio`zroK@OHf>Q-=UwFY zBZe&?WOrY}@*oz2InVkI2KTzKwe3mgPuXMDyW4OAe|?PkK~^C#jpNNtH-cR{+l+5Y z{D^(M_<2D<nDvy4+}g`N?kMvq(_f}3I9GJvngUm&imp=EMKxVp-`v~0t#ZDT$*$nF zX7gMvn4IIoReYyT4P|@t(cQcwc;Tt$+xHB2D2oPM{Sssx(RV72!FN^4qF=mTt3J+q ze#g6cng8-F3r(ArE_BcppVY@ak*R!l>ZjYTi;vFRB+n?~_O9$q@guHN7r%RGnNQ*i zFx)#Ut9#Y=mPI@6dF-+bwq#=1I-w%qap;<@M!T$Y-pytR4*z<$s9rQ|>#4ASev{w} zaniTdrX;?YbMT~@TAIZy4~bn8G9UlkUUoiOG+<-xiuVo)X(??L`!1e4bjnfv>4q1Z zx5W3XRXTR9?}uG;MwgV5M_B8W<R+z#jequ>+m~=*Kew>{Ez_0Xj-P+`bKkz_Hk~^k zM@`Iq_<Z)&r3|}Xb(g+&nz5;4t`Oq_x1OE46<Z7?Td!98chtzFg>G0~Sg>UFv6kMM zzg;``<g^Jzt1>Hd9$WX-?lL>`4U5k@oo=y<tbVV}|9fWEpZ9OF<Lh((|NH+?|8}<j zzv-qA>*~`#7dfiV`|rK0K2bE-%(&*1Q0Sf{+qY|Tzq^M&z4J-k>bkww(~yGqDb5v7 z|6e^l`-i6ZuisDif8G9gmfUr(JLPu&>;CL<=$w>Za_%?V1B06x#xpqh<aMr|Wp$F& zju#1keD~9z;{8Q$G=<o{tUdhgL9vfW^ev9P=0f%x!UN`}7hSulmGq`uH>Fi1C~dRU zajnwjd*?53o;)?+>w7oWUx&W#R+-Tgww?Lfy~!<BAM2L9-ke$5wV79d@te4r(BmlG zk{G5hW{vg?ZHv$E_#AOvcJg7nYj+Q><2?C!%dPL3pY~N>*s*w$E#rzV`ITN#wY?1U z+?n2U9^&CDS2yNTcyLaKaUb_&iyOgP1s1R}RBzf`FS}9T?VgO!U8YI8At&#BJR?zi zTu8xE?ZlS~`<|XTpWb-#GxkV!e(B_NEHFuGyE)~~^(!+Q?=f5xtX|)>G$N7t?`ykd zmpMGj`WRX|7x!^TwrPYd*by8N+5fRd=vQ~dgr3Gb>|R&?B*<;JUb}x=tJ$gd(@(DD zc5@S|UXuT5@9Jy=;m;!J_iwtWpWdc%RNd~WQjARUJdI^KY<K%~D>lV>PyKhmW&izy z=f2oV=UDtY_+fwbYtQxO_uS1np6fE+DsS9U_&SL_&+YQDn|sX-Po4U5a+m-9jdh3K zzGC__Q?_Gv;i>M0JB%}av)z_G&-I&iR|L1O%1z@>>mM#(pSz{>#Igi`@psub)W1IX z{HL7BvS+=(<fJAhommm)tLB~N|Gb&GX3_l43oqsvs{MH;SZ4pt*i~QBnR)l?l)ShX z;l1ZuA4G5Rm-@`ON#&QJ{bI>K4jf^^C(a*=nONt%xkq(=y#K4Oe_ZC>(3bW7TDfb{ zMPtpbl&O1fzKYCUeBAzG-Qq;PThf<%4ZPkQ-JBE@oL}plc{O5Z#q*hty{qnUY<RR? zT*av~POD&}m&(N-<zWT8nIu@g^g3E<Ewrx7|DvThZ8gt~@Cgg1`24H7RC)H;3gJEa z6OydX`nAg_Sj^x{-8o^G=ay3Uj|*8fEQQ!YYC>Q3MduVOTE&#Q^_0cqyI*?R90Jw^ zNB`K(!YOe@ptn)}<?JK=_5RBJ^9(n9=-6=VeYkgPlyi}6TbN18rGV;#GU>HVfm_sn zU*9cMvnKnb!}Ps(gk>wgaSP@4voC46#9$(^no-)y-p=`P(~axyT3cBTKQWlFLtsVV zg8Rp+diK??^Oygx7x_?JA;2uV=ili`*S&gM?iK$}I<ioL=jx_b#l=sYTxw1|Wfw@j zp)P1+)cNvF;`I(iwUmqDmZoXXlGgcfH0>-~_Nq<mu;;`l^Pc`}uvkzSyEV3J=`G9u zx&<8B$7|O#D6iXVz;Jw)_}c7w8<G|!^QTtKEj4~=z;pC*QqZ^UIsYG4yKH)FcDmWJ zL6hU0w7j~*WSOHkmcCt(zIv;|ZY5?twxxo9=6u+k+ofV3vijz%M!~rpdWG%F1(vj| zo#SS4*L7ydgmB+nAw&H;tKEEi7{h87H@&T2bgNVA+YFsW3N<SES59v@8`8g{o%`t2 zp6Vr!?yT9rKe|y_<$rkg)BnQ1v;Y6wzdh_<{Cc}ZH{1EYXMei?qr&^rr{w8j92?zk z=ed?{_L4ZaYUwqGzdrI4A3VEi{$N5=*tG=_KdXK|(%RM>e_H?Vqx;*wzrVNkWIg|_ z`qQOLYV|VMH?yemWSe|kb92*9u}w}A0kh5(?d6P+;GBMKroDY(zTOoZO(s^C+^2Hq z9*9&YoL+ZmXa1e;^lfiB9CGfsi_fbU($qd!64u+ScqyP(yXMG;@ahor#ecctUoR<V zPFc7?*7Yz$(wUgan^T|e6tK~W3Xf@9FMjOnMf=KD`)Lc@g!-S9+)~-MqRW4`&;w?l zdFsEb)wZ`YupZbnn`r@C>wKm3lx2#B3+|hqULy6pkJIJ(=Kj*$ux$&<(x2{Mp>g1e z^#Q+Mf$3sfguk=8Z<TVi+W4|YQBC#6hUgb3?Vp*7H2rt=*_WkuTY#bC+NP3CmA8(i z^ZZ}%Ho9V7);0kJ&9%3<Yu}uIczj)feoo`5ZCu*~9hN`3=(Dy<&AMjO7H_64XMXq; z)UFe4@NQb)d9l!Od!)ec4e$4+AF6m(X&3!`$<mg~C#8%oTbMKOY*@==*1zl;`;F`F z$AmYnS+afij0ZewS{q*3&YwS1_4XC{GZPJYS>xAUe*eqZVWY=ooku@?S*)L^C-cA0 z-TuGr?!G_fZ=XH8A2I#W@oW0`m#m!dqTraFXq18mo5VTx+~7X1wV!sZcyjod{f%i? zZ!Uf5QovuR_@`Fz#?)l5!nn1Xbx$N;+a3*d{~hD*-9E39{lVgkvv(M7e53TBRhLU( zRcg#Fvu#Q<xtIM|bliB-!BtuOyz;NMy*ZH1z0E^$f$XDmFJJ4WsGhdg?t8qmzRq^$ zbz_DPN8%<<(094&GBauGmH?9!X@QO;F*fH%Ngw6bEIEF&`NgFvf9G9QnXv2u$JGio zmV48slW(rjcQ`!3WJ`hHq4}<%+c_>tRW}ICJ}miD{<rhi*S8nH{Vr<jxK~&`Z2o$t z+_3vMPOsm$EX=_CuB?_u^o!e0pBm3+y<4zi*P2s?H}1TMbSc_>@A(sxpP!|??<_uV z*QEO`PE7N4nVQ`$|1I1HZp_Ox3e7&eD#2G&A>@mbq>OM<y41^a4Ta5{oO1lG3Ph!^ z@)x&_-zeGRSa9PG6MO!OpfWYR84rEb55IO7U`S{B`qOXu*5|+PyEk0@T^*-xuYJt! z<Gdeni|#B;@~SFdbG~tRQhNCD$G`5&DW}c&p)T#z$R+%A()X4n`Lp(9HFf3wTc?q- z=*8@edtO01_wFnfNPlT*_N#X7W~bg`H~MN9Ii9ZX*&4*n@#5%;Bfo#L7?dB|>mwr9 zwMzEdW{sIa`K#3T`%SjKFMLAl26I-tpsan<eOWC{9+A+Ku06+(C{Jq^P14@!ew<^O z-L<ZUGXmCka%?T%u=p{ExWr7fZI8-k>w3d|e3p1{=|+to3a-_+)|yVgJ^O{VyNT^D zA<<)=jk1o<_&j|&WWH@Y9@?6gB=veu(j?{?U0ymzC-J?Ww|np0H!lifLUylMA^W_^ zsps@e(VXN>VQVsKCLPdJUABs8xm0ap>yiuq7IX<6jPNrGe7aR)nVU^P{JSE3QM>n7 zLQh^}xYg6=)e|0X|ND#jwcnQOJpXh5zW;x#eg68m{V|jO9lhuN>3(N&*&la<1K%~( zZ1bX+L~ewBQ4!Z-y{1*QbJav9&f?7p@fVJjFq!;2>mRqjW68_IzuA93-T$-v&EMa@ zO@Edj-2Z;v^~VQ)X?|B&wcg{N%CU|zgUvF@Q5*6PZ~IkY`Ni;}-(n$7){?%=w@sfM z#Pcs&Jx~83c-}Qi_TN0kZ*5r%xi$CI{7mxYQ&5sPnRoC>yT`fRy#JHF^wysH+|9B% zw?RvDRetW(zHIeCeHH0-mkW0{snzlRyBfu|d7;KZ9yVzQHHO!ItM4Uxn=v(qU6x~V zcslPC*Xo&3CuHWYs5xeO+i3-}OIY;Po{#r(E|kfiIAeWKZ_^^VpQ(G~YZ$p6C0JYB z)?|Enmv<(U?Ta^;OSo@~6&|QtQ#(QYpajDQ-LU>+_S+c6STbIBc0{NMe{Z{gjQN0k zUX-E9o$U+5@8_B>m+p`he!bXC%|dufvR>g`#(Av_4-b`EyZHaP`jG2wS?k}QA17r0 z*pqRTlY#I3%(v>VYh&W&-~Q^#`tXs5@ypW?Znd=5skh&3op0fL{Ca(RT#?OVWw!%m zA#1#M9=6JqUe^%0=Jgq_E#ce5nSv+YU@kEbp6toF&_T4(R_=D}ZH;$23`SmT(Kr8H zdD>mGcQ?a*_c;?4nl5a2TeP=@*D&+G$g!y@xvtVI{u7dpeEG>Y!*pAC=KJZEZ*GU| zPqhDPe1DUF-5Y+XH7zD4EI$0cyap33-mdz>_+*vEll4yxA3NQUe(_{V%K8bt!3SJ) zw`|{icgwu*f2-bIY;)V*Ui~@Kcj_+lq@NeVcpStwx}G-^zTpx4+dXDV!`8DR48K;d zGqcF|=50uRwAD}WzNq|r_h-u@+IQ5?YmeBZZS<05&*xo-{2t$9<x%!qw~;UOybI5b z=hr7!+GaD@Y`m_%y<I@gso){|+iUms)MhVO=f}ubu_(^`B;%(8t%mFxHXJ*qc`S*$ zb8o?}1Ch%anEGq@St_UhO!?0Ld_~)#Oy7xTtS>#EvUaEFx7yi}VW&M^%bWf!blYHm z#e2DdnBI-gzrLz}G&OhXW|o-V-rqZW;xpGL#xgE<H&^wsXf?h3S{Ju(M_jQUlTztw zm$O>_3g2pZo$lX$TGUwPv@|(ECcw!jqy1}fyJRS@f0Do2uUqDIZ(dJ3b#bOl#iRP8 z4lMG&pU&ntndL5#Z>fH3*R>^lwzn5l+8x_`_wBkjSG!m5cps(87TO_YY#D9;y~xtt zRktOgWmnr&Q7fOQEY?e}MK5exH}N&c4z`1de_wx1WC~rcA!sjk%W#EaK;GMj4-^0L zZ+RP|^M78ytWfXdy)^|+e|83>mT_%hwy|C(=&daHrl;lZ+#A2k`^zFDHa`3(`TKxU z!7QzpGrNTx{<g56Uz8SQ_gf}WJV!9*`pY8|-PeRoS@Xa^VVSb?$A>AA-(J4k(Esh# z<ZKnm*S9JJo_iLC=IgEA?Y%qh`z(!?cLq1b&;6B4n4zB1+T{0Fak7E^>bQ%gs^!8N z4^PW2imwfky(V8<v19vhcf0Q|bnnj8`dxb`C~mshf?w?XziZ#^KbIc;^WWTLo4?ne z&1~}JT9;J$`k8YTM~zw7v4S=ckJ8`2uCIUm%Q+#_H-V4ce*?<`pPzf~)%;|;I)y=B ztU>Q%qeN)y#dw}IIq56)FVvp7JZs0^ijAHDaUbqUz73mm@bItuFLhoiGu?`K>ejV< zW2`dMwnGOvPdY|2=kmW>zwY}T<CKymD-ujIBX+#{ceuI!ZOYAO!YAL_e)DJ8QLVl5 zV}orR-|OP|#tw0FVUrKP&V0Y~^ya6f|DT!HC*4)Q{yIwTP5tNnf4jf^x_a95Wc-_V z?;0Ik(}hwUx0;9TW}LBY!E<gFi#N+V9!BMyX4{bPRr~X!e@j^xKX|xt885?%n*j@y zULO-?_i6taSbzOv;rn}asrx@|uS<<>4{oTl|MBnp+pDW<ZD#westIZ0tg_7b`0nrG zh5O~B#AXzA+cI1}{N(KQt%@_gJURM$)%Eb{U+=`sT((W5I&)E=b2syWYlmwi-#<_C zJRdJ|VBN!4Pec#B{u<>c@!cz`jN^vhicR}UW<Lu~*`uq$5TbJTLXhR5zIDI<{QX_L zC1HV<-h#(D3?*ed)s;W5e5b!Y+<M#Q(~=_h{P%skb-~X`SK@MnSL3eh6IE(|vTa)? z(pl_iX&a^b=ks^{m8>QQ_p|ffdi4CxvU~S3!hVaKx6bj9k)CruTtEM?`+a+x36|~Y zVhf_PG6ZzEE?ebKni+iO``NF(ch@|>ti5XEy=#~I8U>%(|3CE3eoyRt-lGYRZ8hY? zpa059QvJH<-lLPBw${Bn9lk!-T(Od8_w7V$gR|+J1qaU`+kMsU{O0_GdNp~T;9drg zBPPuqf>KuRe|+1po`EB7@19MDo31~y4Bcc>8!yMZnD_qP`t4iyOye>BYkgso=%0wc zFTY+DQ8<2>*+lu9_6z|t-^*OHwm9$DmQr=@wBb3aTT0iy-?HBEX2C(J;57@n`~R|D z&QfXK=zgm<=J40Tz4w$epJwN*{5E-Bj>wG=`{V2GHum3FRQvd`uSV?HG`609lO1&b zbTRwu$M1_e&&&90!`$N=dIjWc5AF2Hp7ZTm`N!@J&Z<@CdCe}dvL-)jaD9F1jk3Hn z<8Qv%56(Y6zOU@}#<%J}Hq8%fNVDZ$&mVtFK4*XG|3AC;Z@snc>hmw<ce>MU?2VMz zgCF)BkvONGwDxY6as1w0l7)BE9<|>J{qvo9LhXOXhsQ!BH~VZXyBAe-=kmI<tk1i2 zu5Q}5zkjjayVJY$*S-9%_wAADBmO(#=}fWVvkNzVK4hU1u-#qwHKU=Z<Hxt}#WrbN z>)yL_XXN>_RoCT&&t+J0^-6yi+q`|^-Qy>Y?EZdvR^A+@H(eHnc8>%UvVN?(@G#=V z;|1A4pEggsYQE=C32&F;?z@#gWUK3J7lK-<PvTtW9zL+Zohx_WU4#GSNkL6sM^-e5 zSUpT_ej}7?a;fC+^Pr5iEgT^MKW!ayoH>r%zp}epL5gE(`v0FCzc%p~A6IA)S;b|z zzv;dV=Y)%*n~b8&4i>9~az(iQ6m6|t%$l&L*<n)n<Df{(EX(bsD(a3CH)(3C3s$(v zPmc`Z=l-?bP*~dW(loJ`jUmf7y4tCxY-=lQ-J!VJj%}j2MNo1<*o!YWyk+IJ3Kkex zggmg**m^U4c}m|wwwKIpDt{UpE^x#g`Mcq+!-;M6@9sowoMV=6)_gSZ<L_-Ne<ZP} zOx<Cfxz15EMM$&3`D%FI3MP)?lkO9mOqUvI9H<KtR6DwQm!ZMLUFO0)e<q*ItXX<% z#fs8>%Q@#WtS!C#PH^|q=S*rR7OWE87qi0tV1w_~XZx;Z&tT|CP10Xl>m)d9cI-@^ z^4`3|=acF;SfvDQxE^<Oa~D(L!_Uv-JhZay)wKGn(_3aKxIEvczo%}o)b5aLyA33y zMXuyA&q?|%uv~e{S>qo0)dAN1_vgEuT(%=DD>-EHk2E8>Uv6v8hMbk~nH7`Ac4cFq z&3sp7t;nN}{68u;v#;1BJGI|-l2xd~lXJW3#D4EN5f_;5ur}bu@~OUB71!8WbEchJ z+mUwLyoW2!-EMN<0mJW67k|mjNcoUc?9bF;Iiv8DQ-<#hmves}pDWDwd;D)^{=X|y z8+JSW=Kft=|FGX(!D_wZzrTN-L;e_izMF8Gcj})TPxWL@8>XBNy2<vyZ2!jNn-{)1 z^EcGn^W2Gq{ueqAa~c>MSZ>~b{j~eGhuQvLuTFdXyTAXpRzu7BdwaHDyrp7&GAk%O z)S`rsukBy(r473^R;%V}F3x<nxY9=0&bUEls@c+oT(7=gI#My=?0Uf`RllW}u2$|1 z>zLXo*`EES%=mG}okbI)_WVnTSo-hur;nD;J#P3+Q28Lfi!XJ~^)0&Ahb0bo?kK%^ z!z<(p%abWF;&aw3#S6SwEIY+>@!-0Rt!qMxPq|6Pl%C!;=h#U#;q$&WX<x3hJG|go zb1h@_$C?exZj>8VYDiX;s>mmrTe&{v&^s08+y3zWqvv`y|EFF*xv$pnVUn%FvRQWb zzSu3vxV&6M^Km-&e4z!KCAZp^{EMC={v(KCZtnrlg>OGuJ4^co&aa#P%YKH_Ik%jJ z2Tg9tHR}pY=XFc=)Ur66r?N9)KgXRdz5n?WRx<WXIr=7+m1BD;|1vZ7bi<>W-=j|M z47Pq@wm<&LCMEj>_g~K+v&Bq3KTr69^afYijVsPE$kqQU@JX<Ge4kg^XN~WLqfgoS z6CZE5qWg`{?w^Q5ipr6|2b(&iPqj>&uwvQnzpw0Wtv{5fvUTp!MJcxyww}42J%_V& z=Ji9K)#?BLzW?|CP03Hjo8EW0w;D|=`0)4Oku4M6g)Z+skhEad-Pv0Tcd-AJyY%1G z`(cpSV=nbQ8b8e#6W;}AKb^PKSH)qqQ{bH4C*E`4%vL?0r@kXoZFkTmF;-=TeMc-# zAGx&P-1L)Wve!?)D14W6fAv-cpVu9og>oiBg4Jxg(tm!6%)ggAkMX8dov&Q~ju(&J z)_nQ-wIuF5!vW#yy+5;BU3hCNPiOHgTeUI#7)!gcld<9A$B9qZPw=~{DfMV-nEL@$ zAC=G`mVG8~UQG;Hl&0)(UQmzs%hhB5d;;G;S>m5v`ss)QSCjLCe^rw{ep_8$R$Lt+ z=yzeK(~=Xct2102ct886UcEmz!y>$6#Z)t)2j%kjE`K+f<l=c>wtNdC-;L(TiFcMg zl=`V8wAoKx)K%)smHj_Y34S&{*w2{p<i>#w=X5g{8EmWI`w_R1Wp%4jy8Qg3pLfjB zmSj=A75}(ekRc{%?&ejwt3tFT??j(}!j(~EF~v_Rey)+i$9n5o{|nqt?J~UFt@U}6 z=M{^e4Way&5^H$1COO}Cs9q4|e__Fm-M`yw%>MoQrLLd!|3{S8$@DMB?2mKoT$1^z z-6}9S?-!5XpLGBJfCf2F+lHAvelBm#tj_55G7H|ivE$;|Nlyd6B<S6^t8Mh}@YY+$ z9H)9H?0xlUmPm+A-@XX(TN^*#?CAaTmv7puYc=^SEW6YhRQUUKpKrUZ)_6?IhGB00 z5|8f6M4726rH?~)hw<&6#kv1cOL5PYJx_jpI{st*X%2-Yj!DgO{qoP`mON`bC;n?% z;k`ev<LiDZ{;RXOcjN6_y$Ff&a*=Dni_RW7X4IkZVdB+bu2R!Zj>-#lr|y5wx;I<@ zeT9CV+{z<oYRi8=`ugkV)pN_;)rym<PuyMkzBaMps^FHRvkWw&_t!<8KYKDV(2~=o zIw)bmq@8Eyy-VGE-HPc*ggZ;J?Lp)2thx0!kA8}JAztyJYhMD#zgpu6pY7YPe_Q_V zjsA^p(}&+`e?C0y{3s#uwY0_)?#6i@Z<1FZ;I|Mhd)a*EU1;6<9lEc7#$Ri>ag!x( z;&+FdeP<4To17P$qw;x$OBmO`(CXJy|L@<a_W!;7n~z&=h|jOr|0K|p@VRSx@W;KA zO8cK@<k()ayTf)Y@~fF}HbeHFWCotu&zbuBUoWn$nWB5^BTtY^!0Xj4+I7z*6wIa0 z`>8$SoTtg>tRi%FdBdHVw@mEz>^?l1C-vRA8PQ$WKYNH66>8Y{OD)uJ{b+Y?qMMXZ z&X@i5Kd-XSYv-FV&6Drig}=vn*WEt#%;(ZPk)QQkUo9_eUST`o(Ege-dAp8>snbG} z)*oDVHU0m_-PJL-T^x;)S04zgwfn>9UhQVv^h>t&<fX%Vji=dts4#i|pLw$PfjOHM zYxWoVDENG2a95bqc7*lKOm|_8jHHEY_y7Obr<=XUFZZ&B+lsjxV|IjD*Im2GC284F zzQS3clc%xQkJ0mg>$6<5ezvl<gL<z0#j)Bee=~T#d$0fc=1kw*$}CPvVY3yy0Y~;t z+9v#MLj3ITsQY{7F8(y%Gxy+%q>QvH9jO=i^LrA#HvE~e__yuc9qwsr*%~hnIK6#j zCog|J>g{9ZdrkJu#XlKe%bi^CjqQAR;_1GKh(g^h%|Qph|6etu{`Kac53YZhcfNm@ zbnAgW?vEQc2%S$#TBu-REhkW?^J@D33)gjj{Jm%X;HcE{y*sxbtjf;e-)qeIa@v>J z8?!G?+gWfodB06T{)P)eWsaQI3_RDve?H{Dzr5eWL3f6rjA>`L*_P$93@L(3P84qb zSlY$!HtDTZNL=fFe*6DBq)fMG&V93=znnj3`qZ6wHqMGWBedbc>g=ouhR-b8<X_$t zDlzP>E_)WCdAKa>`}R_$4I7T_F|IAW&XIKN{AIO!kCtfFd`q(A?5f*vW%AzY?)2w5 zS7dhn_)`_MKAqvg$-PW%{vt7b{3mvAOll4hx9#p_l3BGz`)7FS=^PGrUq?<^ueEE; zRF=;1oUi=dk9D1q-43<-{<~d!lHbU?*KC={v*hi{1**TkC-Lb`-h6>|B1im>PG6?r zWeZ}(!&W>$Eql9LMXy8h8OPez6eSME&kd8gCtW(WKz-Fcj`v&kSl+*LW%{niYd1d% zl(?|wyP@yyKbEbUUS{2zC!Cjh9SWOqnCn*Y-Tf|2a>|b#I9oH$o->HvdVIaU9hbV> zcSn=;Wfw2C82rAU-h4x5hD2*;hy8LTHb!kziQ?jC&&B@Py^~rz=ZwgcHswCAi>m+6 zdQ6XCh}H~x;@;GKS*^lNG<i$ujLa*%*E*)SRRp{-ZZuJIsaDzCI_1l!i7R5HHOh{3 zaWfW#eeyo-q<erfPWtitd8zMoZ!~-lJ=E4EJ(>T~{Lqt{EJAAU^!@iF$rT^B4O=DC zZMIgEZAFDa#`{yksxGF#t!Mp`>&=-_F@FWiBCf!k2E{B#fjgqMSJpng+mlc^`@`x* zH;(T;UQ`fn!gk7ah5h8Dcj5xgA%c-VZoa8Mv#%^po|$ut^4r{7@`=HF)@DR9p0m?3 ztKekF;W^YFn0k%FjXx$!l;Pp^8iQ26v&~&B+TZu|x1C=hpu-e>VzSlpPmk_Pl`eA; z{BG@5wn|pHDbrb1cdMwx6V(+5Prd#2=PQfV8I@0M*SdrbhD0|%exQGJ=ViOQuHKin zFfE;5`>p-Ws~wyD<MwXY|0(?cp1n1t(v2_f-tBZ$6WW!~FLG$U=t1)rn;Fc0xk&Ap zJ*VrrNXd831g>KRQ!|7alwH>Hv1H##Zqf7LH@IT|ICaaEo3sAx-yHw#$^XN<MPFFn ze189*?B~k!H+CQGxss9J8t^E7$prZ+VJfK+_47)b#4PH4Lb8=sT1YRgn=^q;`c(C~ z^N)SRRV{qZyg5_9IZM`l({ahy;&&EnGCuj?&%8s`w1V?aW9#wx_kNu?bTLxIjagv- za(~B9(%Vv31zMVg{?0tkUHxlu>e=WoT5bu~UTvvW%}wG+;z{l6>2~Q%PMf>v+@Z!> z&KvUXoR(g2_4q8On%<BH7Q5%@1!b0UJ>TapZ}?`yf9W%wvz~MOe%Vu;&=fiS#rbz9 z3o;^WUB6Bi=Jz?jHOi1v{nYkL>6_FgLo(Eo)f|K#$0#ObZ<JHLCHr#mVpF~{;m~?c zy;+(U58s<}vFhpG)BiF>JF70b%(xRTtJZE9GBKBbuVC+?r2<Bo4}OGpEf+mKgX#RH zP0FvFs=I#Q^Vh#_T+>n1uDkkd#ta1kyMIObCr@;3mH#Dn_?Y27ZfWjgy?>0a?VfQ= zZn{_3|8uuZ-b=U_tx3A!wl%<ZfmW_l%!hrh+l<usY!vjAIT(Lx`c!hp_PZ(^mE4|{ z#hM}=a`1(_h)rL@uO0tRXGzaJ`nW;!PvP+u`)AB}`0;?|i!V%{%70(qxz8@oV4wPe zeTT%N-PSS4oMzi`P}1^3-g{=5mOdUg-?j}YM@p@a?PICT@V0Kvoz9wbM(RPr<4aQ) z+&LbW_dUC#pm)aU=#6*E#QpLT3Rhm}X9#&#-16CM>xYbLrzr*bT2~V1FBUN65>&lr zpY*A<VRFCaz1Z1b7nTZZ?tg#qr`|WtobaXoSL&ReG!}o5Nbu91@gQ|NTZ1*X!1?vd zKUJ|Y%)6znVb}WRwB>|DPV90A{X)fyxle_zcTrre_21;joAi)d<{Af%9f*ozkUiL* z(>XCr{@~S=ptvxD+qMOBCMImLW0~FKnP?(wVkEpQNmJ#Lw_2f|U+5)H!H>^h%z7dH z#_jRSlqSaY_p61M&i#A5=u9Ku{KE~5C-%;8;r{x0+Lucwi}<#@xaqq0HdDZ=%yTwd zcpe0JNxk<?U9X*SO(;KP&fIsZ8~0wDxnte@%|4!cGJJk5Dq5RjzIw^Kn3bIiru8<h z3SJd?{O_-*n3*#3e{I%1C}hka+~1av7(7uw`8-3&Oy8W&H^$*xr~FpcT6C;BY3mLR zV|^B3CC)pF3A!%Vep?2nvThLia<P@m=9G(xe#r00&XSF5{0t9X@|RxS<9xi4QFZZ- zkh(s*J(`n)>h~!=ec||nX;!_;;;g+ZL~ftaGFm_XpssV|tJHwh-Cj2Wtwi|EraV~x z!B#7t+d|4D%)q3|Dt4Y`-;OI$UkevWNN`sitUL7i373(i<Ab9K8J{=znk6JyMg<#1 zoLV81#yz1fo-u<-*MfiMg`;iXe<$-7GfAff?KhiTdtk;XE5)5n9n-b^cP~g_GEQ0` z^`4(m`;FkO<?FaE9-VY+{*-ISep^K)wrV9+f8%Wa_rmsl|D2+e-)1yPUVQP{U6ob8 zUjFQi>1!iAM4vW_H>(}lDE3Ztj`sDOpI<J|=ZWnIUmtfX{@?0)J+1$7OZ!jNA9mEf z^Oz$=y1%gh$i59n86~6|?z|HHze<yPN4<ZX`hEMjn}v@8I+)G{vR+?Prs8#h`@`q| zkDgh*`*e5r_iv|{{Iza=+I`-Bdw^Vj`i4}ykae9B3X9UR&qv>yGjWc=!~WTKF4|e- zmOuOXR?Up{+`8L)j19Z@EqpqS#rwm~MVqsFq?@lPoo#f_xyjT!^W3Vk``h+T5&tnS zejfXq&vR3`{cd<)H?^2?!&2&CS8e1@d28Vor<mr==eZdi=PaJv`$|{)ewdEt`xto+ zm2E3zqO1P6#fR#;ra3#Dx&2%$?7j8s9Uf=2t6yeYe)PD?!XGrn;NU{Jq{bb2$wChH zssT4E&gacuQ7gz9t$6pw6}yFdgLq#3`S;rW7PE*%k<dibCKs#E7n}};F#Nxp9HVUa z+^lZ>_3CY{KP)X4zE#w|dEvXmY9GZLP8-^N%<pbyY4N^fnEN^3F8r21N7kx<=D7Nv zY`Z7#n+_@)v^99n$rgWI?Gyd_LqSN!^tp|1Up#-`cYOzIuKO7VfhRf9r%dg><}6;2 zylmrwtZXf&>AQn=1|Lhhux@8kPvIuUYwvv)l`;z5uwBo%jr~B_c9GksTPCgz+P3j* z&AN@tKU;PlEo@!C*_FX;Ua+p#`D_N?IVR2b6dJDI^D9^wvGKUWRAE60aRZITwvr6h z8&;}q3exWOUMAQgSA2g$Zbj;a<pm1!9xE~PJhT;QJlVe|cFkP%`yI~wH{1gmoc?fb zQ~YzCBYIb+R7+~kx(dOZiSr!(q`rCVv|#avIc{$*FKUWk(i(cQs7uxHOrXU+0oJ`U z3uR5Ul;&CV-%+vi-FQFgLdFD!RWod&6(2mm9$aC|%;5j-s$*zM(p_sIfiKxYsXSE= z7?0@-UB2sattv5oTfmQBg$?KH9xn<sHk(wxVC$>7U(WA;P~a~Acg|1Fsy5LLp><p? zO%pVjriPYoyWt^|%@SX2k;1C~@CN^a>25j<uaeF?Ok~RH{Zh3!S>V*#$isOI;$O<A zuH!OpUa&$;-)vH>v0HU^!ukiS8mpuWBoZY;zVyC3%vtuYuSa>EYsufdMW)SWySVo< z1RRYpjhAb%F%Rjio*2d;B=%)OU!BL7h3{r~$X!qPE%SFj#~FzUoDLsm?&du?eU%(X z+n?`$Bj-vA-1g{EQkY!yweS0mey**Zk{1^;-I@AEsOHe`4fdB<EY8H7)(+lp&9d2x zZQ%`T>vxQSx26=V_~dMV`?tow(s}&0R&AOBd#~(g%;R)<$(1$bzSfMC^L6U6K_dQt zq7)Y{3o1YSXjXQ}B<<<`j;k};SFwDS5ZCf5R}~OGDYRL$f_Hl4><wIV4wh`0J70g- zI+xW2`!@KO-FVERBz6A7%R3^8v$U2T*ktut<eQ|CqimztcNRSraoOsd0&7aX+CF18 zI=fQ8br-{$TSt_vI3$kui5$H#-D<zUHIal1qB*k|lro(s6h3(U==IVYmqlkj4t0Md zqQC!n_T?Qq4H|dd`ag<JD!FNC`<bD6UHG2$H`ndk@K@@=(ct;^5-kfIHnM7zCC}h{ z_`T5JjBOh0>E?j-MX5}V-@F}5EuR@*u2cG{zj4{+b+^;+|9Up-kNlgbr=@>;*FQbK zX6k=&$E)S3e{%{K{RnPIxu~~vm5xJXPmcCQu_<T7^i6c1GX%%*<e7(t6=(a1uk4-7 z$ff0*5W2AHxu{Zoe!gqRv~{LG|6BiGAHRwJ{k|Tte$bNJuTt4Bj51_yCrJ33t$JVa z??mdtlL{Bz*Vt>dznqYgePbD$bbocz-bE7Pf0b4p{!?i?nSp)Xr*!MvJi9VZa(3n2 zV7~L&<4}5Ymd)yIjhEM6-x~ej=>GGk59diS=Y}p_`k>DBcXr#no3`r~%JY0l=!}c2 zI5u@lJ|lmG?4OG}*E6oDYQ3Sg{_K-#@vyh&WB9WYuE<8m-HDI)(TywrE|l_x#Vs`J z!W2fAvY^T3TW+TOJj(7L;k;E)(^6!$+C0l^`vb(4t6P<C?tLhi_~@brhmO2(XLRZv z=Lro~9;z)8<rRI2QGJH@zVG<F`OhW2&$~<S*NfUdJo@shtJB;~wze%*8;`Q}%(`67 zu|!1L_EDXFsrk~g-%VErsy=7a%z7G?r0?>-c;Ygad$!-4<+;90vwLs&SMLbd^{ul_ zgRaESDU`S0xANa*aiwdY&DJbl=&>M^D@Aq6#1{(>C|^4oHFsas`R|br)Nc7zRVK)k zZk_k_>aV%`j@(?tRi|=WgpJQJ^<|jk4WAv`Zo1u;C@H<*W?bwqeB<ScE9?yqa~XY) z^4wp{Uvcc=z491#d+BhtwnK*3_^Ou}dzQxJ{QX<`EdAV$d)soejc>K8PA+9U!THGL z_4%0_7k}LI>5XW{Rg2Y(btP#$dlJ8zuImmwevs??{^L2<H;O;X(e011pC6<;f9bc` zd6yO(%5KP5X5p<fIm2E?VMS_BK%~a)hdC3!wl3zXU3BhIY)5PRKIR!d2SfudT$~~` zXR7VByBnrIdTjZZ*>!=_q4PFLUErBmW(NPaOE38*Z`j8+chUZ)tSg5r-1;lpT7ry1 z^_Q&bGo3VTgJW;)m6;L`7VIj{TAHfL+xN_g{m6o@sZ)3CIkd%i()Uvd?jicSG{Z~! zUM;zo?0Hc0LWsDuGOHv{MN;U*E$#;$lq}|U`hBx#+{7=u*SSG`o5LP4wr3@IfwjA5 zq;Y-cU7&E#Zm~u0D(5MS*%AzT%~(6a5_OY$=J~EkOM1&NM`3}1+NZaVJTEY7DGDV& zlzIB>`<4x-f?F2qxlFd)ZX=K||8R}$RY#G(@`oIM+<9j3U|*Q%A-BNP7i*3L>{(qj zg>RM53cgt`e3}o~KQuMvwjP+ESlMd)xqj`rGTt?BJ~8eOzEPD}<WunHhRvMc_Zr{r zZeA}e<SHV0rL0LsigVt-v#&y*OFmfcE$%SoA`AO34vVQBjgPbq_Z(X=@BG&CXX_%A z7v3(&dco^re`liOGQ-S-`U<w7Z-yR<4?VN*v_}UpTy@lFS7vZ};Jm8N@zmC}UJW@; zD)SzAi!YdJZ{3@Ia)Hy{6Nf!la~-a6>TH?H81pdRLimlb>&AaJLIP`--t?H|>C2;) zqH_1n^Q5jbsxNvg+J*0DPe0GaDcQK)Xr|V}-e9*6f7&+8%r%h?+S6~QqJJqty(h_Y z)w<QQo`=qzBvNPV9=agv&hfABf`5nqJFq`1{?CW)Z`$AP?@^I>EOztTr6mnEu1{s= zcdydb(!EhX?f1eDmemg`x*AMZoMU;u%rxNdo6Yn2w*H^4zy7WM-|BgP_HU`o`=&Q# zsbQB+_34w#v={>(^fZ0bT)_N$51aQImZ>-Oi@TOOEO;i8_kXqaO6%22FFj8=Z!y#9 zop;`P{*QHbu}{PQJ=4E=_-=EoUaIfE`)fGGZkz6M@Vq77wANMF-Rh<{r`x1y>-J7r zY%ba{d+DOm87F)XL>}mSb#t)~n=jkpD>|KfSrt}Hwz@a7<JY{S9jmmNQzL)R7X9Q? za@6DH$2T#%m&IILl3(63*T7(N5|2ve?+=CPTNYY;-LY6)VzPR~#hCYtw+g>yHWB_a zFCgWeqwO?<?A>#Gl(SB|KZ={vVa)kMeMNRk)Kp$!1$TCB%dHZ;YWJn=-~U_l?#1aV z#r^4#5whzizj2k%_WRHOFsadW2?Kj~;4BTR!&9vs^?BcxnP)t|Sotz*zr};9%GeK! zH#b@yND0bS;9Ioj<js9GhwEOc|I_^)|8ITWoqzAv|0(~r_x=CFU$56WDE#!OJ}!|F zo6LUr+0w%O8&j7tEC`t``r~Jk{hLDDnC45SRudUK4Mg1^*;XB!`G)<(qw4DiyCgq) zrH9&X`+JcqlD%7d)A3nyK9?2S4pkc(_Fia9Xk*!uV0&qLgC?6oNV0&u4`*fK?sI>B zFm7~yw_7+zXJ+ffD@Rk<w>HJL?Oj^G<x96!J<GinGn>M!GC~jd=_E#<3_d#jPt9gt zj>WGxT+6NN*~|8!VSYPn^!;b&t_X2m;7z~#Oe$Dc;m4|$8$Wa^{I6Y}r_{Dgei46u z(y}AW<-ZFjFNozbpLKHQGF=wqJgJkV$0NeL#d;37^-RnAXTADt!`%BH>+}+%qvY#s zZj~jyf3(NlX68Q0N~RgD!sqR|3(O)8C9;ccyuXW4!Afm~Orc`*%wKz?&+if_nd-6p zWL((1!-q_ncD$K?-7NdlpQ@<!&(%L2iL0F~a8Q2Zu2UbKd$-)}nkiGVWr@C|aHqv# zpEZxmL$;c*@W?W0dQ^RP3He#+s*xmlwB3kjxiO>4#${c8YI;0=iEI;|OtTY;J~K}= zh~xQ^tb7Zv|Nnj#e$}7eYn?Gu;p9WtL;kAw6!yE7hOynvktjD3eqkZFfJ0-(&UI<Y z*R<^QGktkQj8w&2Yp;v)$sDqXej+R?5^Nw~eD-=m{ky~^fxd}{-u7LPt+&3+_^?($ zN1EwzlikzIU7H?XJ%8i<|Bv;z<L>=?XqvEd={@d!@r&F=uIC7a@GNlMVr})1^8nL| z6G{9bcFwlKsx8t}Y#de|uJD`MIYGCEpWox#%n~n-Wx5QrH-t|t@wAQ75$=3xa_-Bq z$J!i6PQ-1@Nx$$rTmOT<5&M)M{ppb}6GS5--o4#%nzf`j+12#D`O3{}OpaAA<Z8Yb z72mDhyg~V2^W$u_x$Sz1b8c`e8#<j=mSnCI^?lI1E>`68Ce9Ti7D;<|FLTvUG`o=e z(e$4CHis_>*K*X06g=ByGg;gPmb`pp^6B{1po7Jex8xYBe7vKa<Et^}=Gs+3HEZYn z+{txHWXGyS*FMJ`lX;uB;)N&YpEL7qAO3Oa|G@fMp~^!tB!8~H%HN|bAxtwG7H$4M zd6&e>Uk%N_<i9IKf66f5Eqy!G_Ic-8{-Z{Yrf035-S2%Hb+$<Vt6dc1uHI>_hgQwB zpPpI1!QVc1^8eS;)n9+z`u8aQ-{o(gzP`T7x9;k<?fK3#^j#L(O2qECC;R&T$_Rc% z`<naF8~*GU`1*K-y*U4o^EwAL3K9-3=loG>DeyqS!GPh_Gr`O6_U^DeR=e*n*VKCX z$3HiO_1ORa_Wk<zBOcdT>Y9FO%~m+2rM*V#y;yb3RsYiuOijg-esX<xG(FoC{@T^k zF!*bm^yF>F?ytYmy>!N}%^&Z#7QgoX!tHz}Pkit8t?$grVs<e~&(c1hxMdn^M&Ydu z#eF~W`=|9?@aFu`|F5ypy2L(*<tC@sg?~q8gkO5Ha%FO6w`x`zo0p~f9vAC_cB^JR z>};-e|M*~)T#50;r-J@-W;7fuTO_~`7PK^1Z%gKi9&w+E1=~DbXY;TG@P<aI8Z+KI z`@!+pv_^xA$_uxL9A`hk=xEpAZP;%kcVM0&%YAbf%kqtOJM<QxjXIEK^wU_)Gdt;v z{(o)zy#K%U*KL{q@8$Z(Go`)<ZvW!wp(ZUX!WeH_$~R%dBBrid=lErReOA>s2(Yc% za(hZ<`PqFXbGUt{hsH2SpH$iWP&)Y(^E>Hvz1vRLdRC_=cuTxn{9=FW?v~v#Ynm37 zaWbv@*v(+OcUGVGr5z3(KNmj#Cv@`5j1$R^ZFcs?upD8Ec+m98s{d!CAotSPD@RsH z-EwExuD0bu%d&}4AJmR<bTm3IUs4d|_2Y%4#PV1Pe}Nx`+ornps3}ikn7F-{)j46A z_nKth-&;@qKd`)9`cT^j)!2y@Sw=tquV_3lL&jB;JuJ^BcS@|V@d>6GN$)q@xFD}| zuJ3n@$-+fTY+rZZ%1iU^owviSbJM#;GmPfF4m&f`Vf%5(s~OW-|Mec?EV1hm{qGiC z^3d4+;{Ee17XHc1$E|$7ycc<Ex=y>1rP24o>RsD5T|HV^XS?#cG4q4Yy))8gYvnFb z`e?0Kz^?vuk?X@1A!|>bl9I8M(R$W>Z2sP~pb4Ar9M;gESQE*$`{jghJPb}8%b$i% zkoS4PZK{@J`R{B%X}<53ZE2bo5*Jmqx&m#(LKP-{^t+{{Z8h_UgvMVXKkW-{266uS zP8#Ye$!iP}YJ!%YW&Ue_Tky|z?MN1{FFx1(56hh_<=$wnny`RL{DzhCXGMW}HTUjc zKYOm9axoGX3=`OTEmJ1+;?51T0t~O6j464SasSUV`EC2Z?f-qI?(P5I=jxumui3}; z;d?euu=0cOdL_Mvrl^I>4-`6haTMEj{&{70YT4GNSG%Mp?sype_^)(?c)>5>hQ@?7 z1w2XV{tG_ssylaIe6DYwXtqL>D)Y`8RjLOY_O0ybXAt5H?P>^p$FF6$IzMFZs~z<h z);!eM`EBZX9fAB+lGhKt+GBTJr}|M&L+G-5md(!Z)<n4mNPOQXzh9eiL()v1$KOS^ ztSY+y`Au(^*;n3zh09jeJ-3}WFM(O&VTNU$^a8p6xsUf0eT-bI&GKp&=a1sQ%nZ_{ zpRK(%)bLx2{yWgHcayKv)c;MVmUVxhdg!(JWF_l!uha^z&sbQoURFCRqc}*x?!`Lp z^?MByr4Dp-3Lg0z|LU8h8S~b%W9LOw?H4EYt41a*xp(-_?Qi}2K6|h3wZ3`h>bfV5 zvbXt8Y!S4*If>hEqPkjm#ru;6T1B60B7MI+`M=r!|Akq9-X|ZqAOFL<-s;)x-*;Y@ zzklZtd(AK6;N{G%oRbrKu3s`;+1QvE(5oxqqdLh{rC}|DL7PG};|znZ8!rAk^Q~Gu zfi*xznOXb&(HPl(5)B7$o9DlM|L4*Dn92XYms!1k(|!M6p5Lq!S}EyCmrLiB+r0PU z(rP-rBdzIhEJKtz1N*<8E&dg3GfbqkUs(KaeZMekZRD!;$LA-BHKaCkDQN6Xej>x? z6@9{>Q!qK4O`xCAxY5zZ%24pw^##(6wr?ErzrBz;=NviZnDd_1>7P<8*i&EIUwqc; zTz%|(dmPVpVMc~E%I^1$N=7Noe0kFB(C?q0`EBPp{g-=Q(X>M$H`n9ch4QI6cO9+@ zm<6YMlq83W>dtVg+nd3C!Pw*;{~t-a>Mym)T1Or}Zc(|=YCB2M|IFgn{OO%uFE4!6 z(A;v{(>Lv_mBZdcru8w5oB6-}|GD-4hV%cAn!k;&`8|LA{GxmzFBu(S)uk*Kn|G>T zwD~bD=*qf7M`A+Czs+G@&KALZp+jj}h<pFXE*U{<mrTx@vYu(Y@^<BR=8OS7&mS@Q z|FN3caZ^k)mh0mCt*<!_U1W2SP8O67$ko53Hz7b_tF_PK=@+M6(v*{VuIOf}q-nbK z?Z;g~jd8c!t>&+MyHR;TPD-7egnFYQ^X?T#Vw|Q;O?<^%Yjsb!Ro?%=_nz#fnob+^ zzBx3%{a7rdo5B0&(rt+o(OgST3tr!`{ff#XOMc(U70!Y8&a$u^vX9j%<=NFze>NoL zRo2b!rk?J!bq@q)O3huc)K}=c@taaE_Ek}Ghi1QA|8x2FsHwd#<Q>I&clq3%e5{mb zxB1MdlH*o6C392e^B!P3SA6?O-=|Eil$<SHbLKwM6=1PeGRv~bKIpQ5?bv3H2a~Ho zV_$EVzEb(UXwjq>oZGwmOBV~PZ(XLj!l~4Gv4vIe*J&n;+fuf_%{*dJf74!d&OVl7 z89kG-PI5hVYG1$a`+{##ausJ;j^5C_ec|_6msYFuaTBdJmmb)EFv}}=)l!GM|N9df zHWqoc--vvx?R)Cl?3ru!_NiE{TXXZp?AbTk*|Q2#o9^A%uJ!m;cHm;!rp~GVpCrwG z!p@N$^3}M~`H)a%WcZ^nfg^1<9(0!2s}@cDxnJuv$D*Y>^7i=OS!vxe`>T5Sw|8gX z->U!bUw>-f_uKd5nZr~9PA@fVOfKD?bI)j6;8dROhM>Lq(GM5RE50=~rt|Lw-dDF% zcwFRT6=MS#9Sk{Edv2{zdHrwi@9MBATr2+fc1r3^T4Yjdd`|6Uri442dgl^j%^fi_ z9V?Ry*7;mFYmkVPS#*${L4<$b?4}Rbs?_F9+~P7Ju^_Bg>inXFM(f+&URmrK8cJt3 z8(-}DZ1CA;d%+jY7bmq`{iEcy&i`5<AZ7G*O4y<g?!v7#TU=h;<BSS$cU&@S-pPj4 z3yi`S-7XzDutI&o()*$x7ALrNvRo_g@HrH=_34q#3=_`R|9kkb@UPWOo{etlms2<l zCOq?aAaKCvkL1?J4&F%{T65l<k7#V}-6r}b*5=>p6&3SqqxHPsiC)MnU(kQ7N_S7$ z*%#lqRDX5UCLOr5QcBiLXz%e_VVOmxZQFF1=FTpBmvdT7L3qjB&%ZXT$X424cPD-R z-zl-NZ{K`<9sce4zen@8OxKTh-}>+FZvKPk7(#a$3d9^dP?x;_|JV22r@nu$`@y_> zhtUqVh?T1C3&cYH&U9b%f1Z{0i8zVq>j@LzwXJ`~#q{R;Zwb|kNc;QhY<ns;Za!Vv zdFucDU()+C%H?bR+)IkDd2XHJFuC)RVgJ4y2aOAN7iQf1d~=TS#@Ci^f{q3`e;5y% zNE)Rjcd_S4+|p&>Gq`Z>?*$&^)f>($q*NpXZQ~Z35&m@c_c`GW^Dkc7c<b5a$2p&a zgbiLS@jjgPPWSe!DHgMiRnJxSbn^c{(=IvxLTRGX6sE~<u5Vu^mTY}I*N*MMB&U@Z zr4F@Ry1(9QetQ+e9rF#Q*QZHwY@BbaxvOi*(e>Mn40#QXpD4><=}h`^{h&#pgWVF3 ztNWE6YIVx_Mf?}x7ctx?pfFu_gU^8kU#a=m?ap_t>iw|T`0OVapXvXONj7ADSHBf_ zOIvuggZ#4W*NO+8?Z130y1M*({O$U`{{JK2tQQka`jxhS-l-OIAxpJh7XFKFjf*@3 z_3INCxfev2eJ^S2W#WiEY%a!_>o!{^K{@JSlc0mc-@~$1Kc~;k6?&Pnqb`Mig)JA$ z_Ex*vpBxjUl4S!$%?&Rr6{!3W@ch^LeA&{KO#-Uwx*u0|diA-xrExvhI&D`L+VJ;% zPUMXrI;Wr49GEZkb?Jx1MC+8)hg?o4+aK;{d2)<pR@$+$X&2Ti>=5)+OE%bJ-RR-0 zAR@&wojtf)iA#^EpVi>wXPJyli}kh)s<zr$Uq5_YVVdZp>~yEcY%}-VJl_Nc_0-;n z*S^=-++DZr>ifq_TbDHkZdW{XTF8M%!kr=4#8Gk5$E-g-Mx}@AOph5QgsB#9?bxc& zyDo{zX!Dr{236r&+wulh_ajGp4+P%7*csrwP`>>wZ!N?9(;3km4Pm>K5B}Qu{F>et z;q&X4e*w)e-dOG2cQYv0tf+-q^n1GS-hHMP<r3@?1z+y33{6<b{GFkUD_Sh;7LQNB zRW>Ki`n4==d%XiMrv7qKmv5VX?(pP$5~q!HBR@K_miZ@VbQ=ABy~)jH`XaeZws$wb z^DFnU_=+mmpWGO_hBNf%Lakjbf=6mM&+<B2(xC8)J=)B}Oxt0J-!qQ2YOV1~kAx?! z&A1ws6MU43HB^dsZZ4nKv+6L#rE0719WdN)`6cDm*I$#x!{(~iC~t7ua!tyS^Veg$ z8{g~Ro4@`4=l>7c?B(CH5B$<wXI#ZHUHICXMfv*8xnX&WcgSW`^*<=P70c)ve<8c~ zf!E3DLYLAyOQe5Y4Lo?L?y;XKtJ>eiPvS*aij^eK4&7SNeoin=_SAOft;_Z&obSAU zc+VUOo(DG@gSu;HopiJ^t=;o$@6<g-`=?G?$KN^U2FsqfR}4q4aJ}DZ#u+Qgz<ket z4d?Ic)qR&P)}%BhayKWu@O<!Hdx_Gc_v)`DvsUU0ZaFBji02qD>olLK;^(ZFS(QG& z(o=G$kY`JrlgkH9j&nDcpIpUo?UtDXSHCLr#2f!>lP+~1*d44O@VaBkYy+<5_uSXF z9`&rK2$<S`X2~I~Ie{ETtCyNKS$;M9zQpIV&+=`Z_FC5^3mW&j3$JMI4mz;U$^3Qn zeE)QBmo*bsoj<bfr_V12AB$y1FP5#C(Zaj>H_x^n2bb48R~9+-bWPCY=wCAL_ohOd zDT!-?8iIc*vz0XmueASq>i^ZmwSVs4n*W!({!rYWs*P&@)2n}flUwyWL_2>=xZ}&X zgA4uZ?sIXy>8kzT&Td_)B;P9WmbW44rf`f`(5$_a-iK<`zu)Ds`#>w>ckkZk<q?bx zhwH=@4m=Ea`|snyeO15pCjIAsFR%3T|DVt2*Yf6^=(6+H4W7GCLuhqpbr09qHHXBy z);)Uj!%9BzXKBJ#ZONqjpNnq2sopEjvi`uoqNVSm-+W@5WmCkv{CB+Tqy5^)fBX*F zzfEp++Vtb*&%9nO7rj$av!^>{=h2?L#-}3hx!;!`QrsBbE%}s1@3Gb1tA{49vhb>Q zJ}rKrEcuf9?iZd42mCpbWA&DcE}3NUddlw$t*?^m+XI$t<|;9(6x(uNc}JSjn}4ZH z*-9n6%kHw7Bt*$6?_1@0JJssWI`=<@?@A+?e{7MCJ->Y8DbCQ(=eTS>u-({l=wEff z)6BzKNz9C<g<=`Eo9|wDG5K+C%uFGXr#8l}btk?Ho>O<*cXHj`h+CzL=dW#j%`WJg zepcan1vjs}zml@%&c4zQ&ttC_n}5wd{KA>zm#br=aJiSD1ebwur>|lr&-vmwtAk={ zJB3-84%XbbtedbTO25f{Lz$iB;u{Q#51(n=`!<m+*i%|=t=vZT1yc8IKPLGE7w0VF zQWv<;tg#{SzSO~V;T30t0>!!ell8b;EDQI|W}LC8x#RzmE&c_^&u#f#<yNs@>Egp1 z(mCcISS;%5=FdC%`_JC97n3KYRy{eg)b{PVR-?K-`7bg}q*;wPy^20L+gLj*y-$e$ zQ7f{2k-+3&oo{Nr%#7>;zmG0in$p+0;$dHZj{l*q_18JmrxmVi<%r{y7Mq{UB-O{3 zc=C4X?e}l%c5V;k$l7DKeeRrF2|~SZOZ08ui@tj*VZT|*U`}n;&V(Zdx%;{JF5Yu6 z^xc@lZ5sS5^>dHdomC6BvVXkX^Hrgk!S&$WmA!!n^v-FOaUQsCym-y2uX`B;xNSvF zFFO4B^~*i;7#q~TX}Ngc<<RGz+)>nZSlDdAqW8k*Vny?>o_}bwdqtIO=mM)i!(FCI zTWX6x2=16x!ncQw>!-r=psNz^`H!0#20AWPvb$uaAup?{;oREDI7j40Zo!|{RUbcI zmRoa4LQzodmJg%Jg54f&s{=VEs)~j%b91+N-3n1$l&l~0Yx&|gi)Sr#VJ{T8X0{@^ zZAnGX)F$DU#cOyn{*(){9GFlxIU)L_R)BeLpyr#YrWgN6Y<YaNYX`HXW2ei3d)HUR zRI?kJiic+NNU>+tryVldn3VI!$C<&&fuZw@lR$D1TZhZi6}66z?KfmOJTAn0%vyJE zcPDSd>jN>_VY!+wL>r&S<n|=r{(P_V$m*hq85?d!%u-yiMAhklB~v1s=h07bI@+6g zv*q?LTgA@2afkfBnkVmCf45C>J6sdb5+i8z`SXJZPtJI0P43oP)um#;c!JmR<EvMt zv3QH0Hmq1R!{8gk+lismH$DHY?=j8i@4Q7_QvdB<OxWdXJAKddAGZ&EKk&80)_QZV zti}y@Uj<L|my?(1H7t~3a%k6C^k-h~Kfk%n>%8twx^K!RbHkj+LNa689p^ji125Vv z-NsV4F#p`8(09UT9`Eb1J-*8S>nXe6;ntJQlS@ki?Dg*~PJZPsKI3L4yXmFXm+cCd zXxwXHn8#l4dv!I}wF9#bRHyfc|LYHTum1Y$*uOLL<F)^<k6Ziky%5)LUlry}v+ta1 z6}ZBsH|Kfzx4HMNZsgUzKYseQz=|%*bDo8!EF11P*ZH146gKs$pZ?9ucbFZ%?R#En zJA0w%hPYQ}XGzq4dUee1j{U9h{Cl_RzsUb{|Mu{1)X(~gE&BU@=tTrGr9J-WXQnk# zU`>mJ(wnM@|GKvNWOy;Paes4dSnAilmrr1Uhljqyv!i_O98rx`+5w)2f(2T8yUN?2 zIdMPuB;#-`u_|%*-Co(#{_7G>o4<MZ>944l_06N|igWgD3RraBm^rM|*!|fK*PEp; z{2Gq++D5Ku4*J!9!|@i^obR3c&dmS&nB&IdH@~WFqAo45{;M9nY}E~$9MhnqRX5TN zum9M}ww8bEp@s2tJ;hrU3wKRa`N7hAD6sy9z7N|Dkr{Ey@%{TAopTZVd%F6?!X;M! za*~Alez5ombX=OWE#Kz-m(XLjQ9cfP!a5v`_?XT`GrnH5eR1mka`kM5$82+QUzZ>G z?GkA>YuVhEXN}sg+wC|b`hA<awrHw$OR%I}-6d{#-O^OJVR4yCmDieIjb)X6>qRqX zw&XVE9*DZ=r)K*4%#!yBD<aH;8<&O575`d%dA^lILh>wTtrI#tqH0MG|Ib_^<}+Jk zjzX}RvPH4YqHiT{_Ffd5@ci8B!+%d?i!-dU`<QjOQ~TO2rM4dP8;@QJdw$!!{`T9e z`?oP|x8HF2PiyS0=@#jAfBF1E=YI9xSFYHt^0#J7;;Y3qy??6mUQAbsai81Tvs-KL z11E;9d3V(IC^{{a&E1~UbL(`(ffrd11%GsAUogFP^`FeQ`ii~RMGI{HPk&f`=)jNJ z=0~cMn7{Q!*gyI+ue+_Hp-T4Vr)zC&j$$=kPCQ>fe&6ExAyj7;$K#HCd4^k}tNyf0 z1}FL!n&*~&`}2B@;G2Zm{5E1ae)CcjpGID&uCtvA+IVy&j+LEj>WW<Zg^Ch0rmqNT zn%C2n{<7fFTFq(++vg8?rYvdO{321O`DCoipP-^^FJ7EC(K0dHn&Q;FfPb1<`r};> zLPEcWH0i$bH{O#!UCCZ!tyH2}Mw!7YA!BCI{4Hu4p6`5YW;1<0*AV3CH+gc(YX|42 zEXO<;l_$P$TJQR2ncaFPtC{Lns}>k^wk3+(m7Th1p$_-q_9bppUpj8>*1!CLsgyld z#7*q+N2M8SD)Jjlr&cPu9$2Bkcld9H(LU9gqFlRJU1V~59?axb{$aqS8}NQd;kt5_ zSF8uynC>=ZU3g*smH(M(%A~anb$|1p>k9KIy-4Iben8PuFn7(d>J|ASCrY+Eo_+o| zU}-#q^ZEbA+Ot)R|7{bzcE~tGXM%p^$_n8|R$Hxzf<sADeAfJtQNH1@DahP!vT@b+ zFBOmDxLfO!9Zb(n3Tg5V<Nn6+O61H<GsfxRVFuo1j_&(y?cNt|zF)z+u~%RY-`D!P z`<s{;Lx0RFG4Pos`Lm8ilu5xzO?57}{LF&~s$b;^AK`nDpmG28{UsW+nqD#eZZQ8j zasJa;;#+pIu-dJ@Eh1<d=f`%CiB~MRK0A2<Q$m38(!WQ}nlW$~rg0ru>*t`RH`%9m zg;d_}bC%lz5{{KkD_vjt*O57W{}VBjIm_g-{$Dp=_pLs={@3|`O?xXoCavXIfAatB z?}2-_Y+TLjpXPg8Yt`$ud$+&eU+uE!lwB5Mo#rvOt~VCeHo>CX*!Ery=wvt8FmK!G zl+USmQ`;BImZz@$QNQ8;^Z$SIkId(v_@|zK&8CRZCd+%P4h5Djn5#A6YDCD(lms{H zy7o?&g^$X<Jt^BXNh;@Cm9M$E`M2NuKTi7A)R}i@@{12^%EbCqlV>}G8*O^m`1i}D zb!GN>>(~EV{>}csdEKeHxAXrb@3xM8vuRJHWB=*|hZR9r#hMPhuKxGn^!jVR_Zf#w zbCkS3`Jmn99~;xA9r(5_KjvY9VP{K{w15T|+Z~qb`ym%o7Tr+H3oqaP+Wq3T8^@kc z`}>SXxWRbq9La;3bLL;Tl3?xC^=;Exg&m1oqtskQ8A{_<Jb3p#nEU(<vz<4S-)l(b zUSQ}5J9szEi!t+~X4tiZ`%Y;s55E;GQy{moVN$2sgei48F)WcCEY{Vx&N`_*npu0c zx32n`?S2jeO}D6bwVw_spLbzQR{A8VHdjQvb#4;R;msoRk33nE<8W5<#-t7HGbUZ= z%+61nFTVEgGnpCROdE_1oct>F4!slKB7g9W+>Yy0BC=c7Kg_oKT&H)#TaaDgOql77 z2_K%ew5>SSe5gMnKWW8P-dWzI%xg~gNuPhr{C)24eXqa1P5%{iclsATt{Z~g(-zK% zh)vWzZT=?y_qG2=_WhkJf9w6epK>|tjPK35VV=cl_<H5-NB=FJN4oG^op;Xgieazj z*rif^gni=`@mo1t3p#(jdu#mu#{#}-PIal1Ey5WOxF7CtYM6Q}`G)Z9f4?*Ke|YJ8 z{o7aj55nK<fBm}tX8(`%`y%9@i{JVDWu~RziTR(e?rJfOFkjXFC1ssnz@PP7oCW30 zeksOOo@S|)a-FAlVB732y{y}X7f%UV7rsd`U^wD*&FW(Na$PoO(`@6y_c|M1{*iX% z*nUy)obET!lw~@@gOz(PUC1o)@E5TX2>7-lH2i|^MC)&?uBppepYG3hd#I_zX;sP2 zz2I|#(ut*$-z>7bJ~2*2VgV!HnaqNux;*)ll1%Yok7qNnsZA9Y?lP*%J9ups&z0Gp zCwJUdbDYT%{I2m3+u6S<%|`t#i#cQzmP#LMZ!FlSvgy+2xV8s<u9qUqu9tZ6hA!xv z7r?Qxp=jB>XZz0VDgQ60{UMFTYQhr{VN>oe4<s~$8CgR7gg7p`%+K_DS`->Nx$fSL z{I{>p?H2#|CTp=&jdL~Qm5%kFDqZduh4h$v&SYU{R@uo=q97#azd&0tcjvPeVm^l> ze-_WqQ(iIm8+-IQ^`87LhB`^kh4&|4&T2llysKE6&&clfjchCFsti>>)hx~Ho3(!$ zsg=w<D54#F@z{l24&A5y5z8(5SKT-kx5dwJOW;(o;$sEp7WtPs3Pc^NuAB1Y*s|lZ zW@zd0ObPHz`ozCf_Z~k}jdzsEYG2kfTp=AQD$AD?O+R^dM_*pE)BRkQjH+p;{@!Bn zE3%DjEUBs#kKj-|wan|-p(CZYp8t~2yl1<*?_Z1`i?2s>@6%5W@72x~^Y7a0vdC*g zn?M0$#i30G9yd7tPW{`R;aqg!WOc>yY;LZrjE`Jf=X6$CyES#MT3F&6k;>=wd8+D% zD;|4!0=oY`y}5r~LhSG6z27#9Wu4vOqO^G4w~h5B>nzyT?|yLqp55Os@tam>umAIZ z#^06pzl&eb*H7xXKYRVXR<C+bw>}3EC&tf0+3m}hrCj-8^ULkb$&Axq?qmwDH4?mH zE4aYfZ8O`->`i;-rSI>%|8K7K@7MpY|G#jr_Uk>re(~RrtnV+CQ2h0M>2v|lXS?dw z`bgGX=eVbDaeU*lsr%mKytr(yTwuZ!_N{|uw&;qeyqOtq-+o;kzOin*w!ntl3yoO! zFH7;U(zjM)W@k?QDpjT}bmniD_q|B#n&bce|Nq0j&3@13*DsUUzgz$IPx8sOT^C+# z*KYe^+tS^?*{chGAM#s1^LhHY;;W{!ZQd1f$RCTlV3_`h_rTXZnRA;wGE1f3ec$-& zLs_Ntcjb*|Bck8EG~53?>g8unA(!`iMDB&otm$##_<Mul*0PmLEZtaTYIn)4Xn${Z z;c@nb+1;EA-iwN6Y>+mQO}w!;f#JtqQ<X)wuC0uAD}C1(Oyo0I^T6_`9M83*$v@T| zQ)&v_&#|boeS`I)sKuun3Y+b;&nZbXan^|1^`Dz2`SxU{{O_!y+s12EyDnG9Y`*>c z>FX4=1MSL<OC%ChJb&=$dt8ydesc2J9e0e+-|Ab_E@Y+L>R>J8X7o-ZzjTfDGAV;V zu2{ySoIAeB#A}xM^n6aq5q`GMjpxN;jbxtm0KteYH@7BKB>1jdv*E4Rw~nX$IXzeX zrnB7JooN%BK5_B!8E)T7kN2NBTrSwLNnqAKfj{drPsdtpxaDH4a%(5Eius-PfA?p7 zSm$sk|DXB)io4wLg@0b(-1cCj%UiE)r*5=GatbV7;*q$#ySBsj{Vy5DH|=cw6LxZc z?}$p05`HHhk$%hc$6I&jJL+1tlW$n`S?fvLSw|(ATwTEA^Rf2X+VK3k@AGfnmY2C1 zwtwC25|hpn{)2&!f6H*53p1!#eT!?SN^8j<PGz2jFSj2l{?e)Dv7@?&@9n3ROZjHc zJZj5)dg^3rf%m1SFHT@&lik3!aCy;@z3*gGW+mQ#{Kn5LYUYh+I|bkHEw~<;F{j|` zpDHWRCZ&~oJr*8Wy<DR=@T#Qaqa&;AgyvWY9{et|`|yKnL75er3?3ghb6m4oxYp-H zglWsh=3tNK3Cc4M?+<ZZ^U@^HbNc4infKT>EH!4#5>Vr6es<7GyKzO`=fz>n(rb6} zTvMKr{o{^Pqv~cw4)cIQR{z)U-4k{#ahCi1M(|JC1J93|AsHb*ZyuENYi%$z6*%S8 zWg{E7n8QD^<Tyvkj2Fx08uN6R!oPfbp3<=9MwC=~qlV;+?u`jk+vFHEl61e>1nto2 zsgt*jv^~gi>D%M)6GaZr{K0>&q{*je$NWuA@+VJhVH9$?c_c!ioXPo(&#EnpCrOLE zTJ-#~F6)OI=CAlfIwShiH;CE<Et>Dr+#4XfU+DGiT~$6)SM+yPg*9%Ozjf{7PaLl_ zI^X$hnr;_RaJgDcdTN^Tv;+5^E1B%+|82JU$)EJoyuV*+wWxMi{e0XbU}DTx#I`^! z+W(5z#E>}Vj*GK%kNymL(e*onLo~NRgel$fp24&=vu~yexm^Dll5ir{Z}z3D@mg6r zUp<9VIGszJ7UVBj`RJ$jjCBS40xDNl-;Q`6c|E+sKjt?_TFKm~cV?6Bvt+6XD?7|m z*%T@;J4ICE){F>N->pTVHQV;SKJD>k%lS~oE2UowpK+fLU!Jh!_KWlTzD|Dev;Oa? ze^2KBjNH9<@5a+Vg>3&Xoc{3ojPJ+Vl?@E0RkQhpEqQ1lRHwY6wR@t{?kR^kgIG=f zZ@S67rf%)~@2{S2y?fX8MtJ<*t?|E(?$3RH@BZ48|C8?jdt|*KmW$`{9ywm+Ggb`^ zJH$FlD@6rr->{_oW~&L-_INGwSLy5CKPM!#*<)9K`*d#K*R|*0OkN*rd~x%Z$+u>1 zJvDD-R?f0lv5AWq#X5rb?%($Bn0H8%`i=P)rp;%ZSO4>A^zZZapXWzj%sBUhrD;mr z6TT_0C;dA;Wec}TulI$xi!Lm;nl71FdrG@2Z!+WQzTjdI)|B0_UvPmw&x_l~%*D3~ zuJB#7c~gAnRbxy2tiR6ZcPvwGxqG*?<7w!v3vRj%S3)$+LXPO3OZamB`mA(4?KU4F zS8simt$~*NC0N9#wrpy;SvgPo*!{d#wFjq{b{bXPx~Qg9=D(1CnHZC#-~t`_Hyf%m z>mPjo8~yFu-Ra-{{o5Zgd6Pclu_@D7oa?tG?0oQ()!D}|kn!lA;yv^JOD<OaTOE3S zlk&-=J;K>LOHS8izBY^6cVnB#{6ZNsKjj-;Nwd>x4_o!Ds(v-$O;U<c%byjyFEEBE zU3^?TUAL!pb*F?lgRbv`7Ri?Re?OhuqNsX{w=}-wNZLzvtG{W|J2HIQGWT3J6S^Ss zJvfM4`ihNNtoEbw>F*8eN&{Y8G;tHR-1zLy<hg>~cE=trI?M7lw6Omn(?JzYmJfnl zZ!Xy}704R~_r!$NTolyTeik^9w@1$>z3HCl!I_iH&wr2Jv0VP~tmyyqY|q6X{O?<L zx1V{3ZqL<48OslyzFG7pVWF>fnk8@Jz8hk{R?nDq@UzIG&SHahhB+OKT`$98?e8y9 zU-o^n{QRQYqkKnSXJkc}v~m8ibacLHCfyS=L;c9B)_q&26)u|}@BjEK4};Cd>A#*k zxTb$Pz;gV!ov7;X#wepiQ#F;T^Um}-9K6WAeaV83L^rl*SL1h*6WpH`-m+-vtc&bg z!YrYo#;~yMW0s~Ab9$h$VDQ(TMi-S&JL-g;5ByCC@tL+J;W)=e7WM_p;!m&m@MyE! zp{0dItzWD<k1yQbY42)f_Q^_Zp3j#<7VcMH9MhV-h-2^WW$Yr8HM%c0riJRhQEB?N zX2<1-v`^aGTGu~4#LcyFg`!e~(2NBQiI<c-U-Jtpt#S1KweZ((&09f=kA$awU*h(e zb3)m4VGf}!7j9`NKKsXUAR&EPr#aK23|UQwpWf0UPu85_TOsxR{?wS4QPz|09a3<S z68JmmxA)caAMbm}RM&-VHdHGJad7`Szp1T|&BAbD@BGZYy)3T3Co>f|C)PA3uX%ha zV5^>u*<8ky`xef|y&{L+g&e3?w9+$cGEwrm(Yo|nLlj%p#z4+*`@QQIKD!=0k5je8 zil3RqQ<wX8gUZZ1;itbf$Go2P?fCurSF1Xv*4SBEI=Npf`Mc(s=+`4<YHHICOcRo4 zDOyzOSIPV1b>H)8o&v&mc|1-hNlj-lczDX{t-w6S#w|Cpxg9sl`7GynXWJREAg=fI zEe`2t5vw&>ZeB=V*bwEzuzx@E`-$H}y_l>Rf2^JVQtkKU^ZPQdhlhWA^mOgtPW!*^ zZ@(SQz43W_zWo}<8fVohZ>IeCG3NzCTaet!D-kP~?JH(&oqN74V?M`<mbYyj=@07{ zZ~yW1^y(F5`)hw+`}a=&f9&q+|A~LglRxoat*|NcE!^QAq+2ba@PzO8!tD1a+e79} z=G;~ic<A`5^=EUoYN;*#c%z*An{P<m+@D+Y9=%~O`<}4){l}C=6Kxltl$qPv6`r9z zKm12%e(mQLofQwn_G>ff)<j-7c-3w5OX+vZ@64Y2ci)SP)3-Is@f~zf+sP0eJ#TS9 zYq{DSX8yRJuf>Jm?wQb)<D*s`^5S<I|N9vM()N!<I&)cmGjgq7{=2dBuhU)y3Gp)u z>a2T1)b{J``<AqK$@;aoU!8mQsn)>ukEJjByxVyf6cjsb4$fn?X+IzIk>Q(IQWnFC zJ>m7s`oBj!Js31UiJ9wg+<P7Ow4gHq3DPV-&L|uyYs{UxHeijCSZD*2`?{a4k1Fc; z*1dV4G$H%Ze4nnbwc>xRZcY<A)3SF)QvS6!|Mh!<{cPUX-k9fcsJC$T|NKXrpU?D6 zQ=c)DsV}fF?gg_6-!=RGt`C{qBKn^8>3`429z1>Tla69x`ay+r2ddVJXikY|zSqsN zk!3-^%kZPeHuOJ|-LmuN=9(wzyk$YR4p?0dw~b<&wk%V>hCl4{>i6pzW`tGm-NXEJ zug#@%a~`ViG*et8(e+crY)#7YWAiK{wmFH2IVIiSxM8v3l-M;3{Z83D$~=;-yiFt1 z|0bW{d0qz3iDDDtqdAO=U36u5-{&gdll^~o<ME_3W%UoP^W8E1rSqm#r0hqvV6k3u zZ=}zmDO!z=Ouu^V_xG=|uUk5ykz0T@FK(^DG`lnwubl3yhpYsyT+rguWxSVs_vv0G z^MKa+4W<jEFCO?K5WPJ4KT}D4o$b==pM@)n^sN+>d9?#iPdccR<I-&0Q&$*p-a$R; z!G<f7C9X0DKK%Z1>)kE<TVJjzG|oQx&-eC~&wtC`IxIHoU$Rgn<U4oZ5xdky7nLjH z)+<-%?Do`HdM&WD>EfN1b+YI9+?*>*pFiJx>yB<?>!epopB^naAsP6-<Wkd**J=w7 zR67T7`dKey(pmns%T@AO^`*{`$y!!g8a$j9%hIBlSDvy9TJX2v)T$~2g@jGAH&z7C zzAAjm;p1YLH3G5c<St%a68~TW^TubtyRV5(@!{W>q{H1~a&Pup>6^=M?d-cd>D!#@ zG_#(+GhfEe$*W2cICJXWo-m!qk?%LkI@N4EWLb1xai!FnhPM?9R@g-@Jskew{JpUM z;b&IeGv25udiBa9!zS(vSC<R!nZhWRQFC8lY09)!_FfOAMA$fr!X&nu*G;%mdM;Pb zM?}I^@nu9$<5s}~ic`gxbN#<R?avw+(W^JtYqY*+xmWcrFfT-!sZ00TvSm@5Z*CCx zS+X|8L7Fr3ou;&>YMqw-qS=!cZtBckSiJG(#MuvOH_f>ob4rclLG5wV_wE8}Ub~oB z4d)uIWVBEbJS3rgBQRGtWsb{%kkFrz75Ag`{|j%qUa^h$s?L{<MiU=P_B^@xa+T=s z-5Y|EM4C?h=9pc&Z4R$)>|~_{+>8b11KZ{q6wZ-#3|pR9|Ldmz&97%?{n@``qrIf< zfBnUe{ybZ~+f+{Uh1P6tfeqi!n!d0sWnh_gX`zGg^~}umP9g@{sc90bs%d9sq736+ zep&M2DwoTd&pGe!?cE&zx4-`EJNr4;p6tIZe*a&t+W$@OH>D?Rdhq)6hDf;uZb#3q ze|#X_v2Dh~7#_FY1}@eMw#|Y0ty*{FH>%&3Su4EzWybsawl{7*f4<RZ^~A)#$_oAo z#`8Simz!y<-5nrtzNt9><?C<1PsZ)7ay-DQ_5Wg((=5Yt>s_y2SLbr5PVZb&cjj7} z(xsU#Q_q>LV?HolU}4Pldb^u59&Maa!y5IWC;d?U^TyXEGjH8?5kFSCx!$5N?#*Wg zTdhg8`Vu_1Yz_$g$Pr&$lX<`5ukP-hKX=tWuil@S{6v$vZhg`8=A{mKtlEc|G#;M( zEH=yT_O=Xx`Lf$WIGf`?8=fow8rH}9)`x-9VwrF4l`V<7zqUs%4ZU-j#q9)N<QrC- z`re6ij{h!Qw&C^n=b!G?y)LgaJh!3$XU^+?JWLf+4?LW6fc4(~$NzGZx=Z@ca~+$x zQYrU~A@}D4=kBjpi7_~MX~n?}>luWYX9(Wzt8>h8{UPrs@hbRTsz~{YeeX{f);$QG zpOioSZm3Ah1*6j5tr{%XxN9wL&%dzm!S$l#mE0<2UhNMV8V-J(buqkN^voJL9abjR zD=H_9b7q7r*cKRkwUT+&_Z!dabo*`O-QDbsg&s!iFTOETU_n^7$CkZGDQVrc*Dw8# z4!gJ9;4wop@7k$Z^(EDzhFXTVENjk2#Ju|4ywV~usrAduf16X+1X!I5&eCR8Fxfmo z@qSDCq>o=x_L%j)Si|UX^j_EAGQZ!9d$~JI#I{Xqv{ZK}@VVP0t8zJ=^}NzIm4Lfz zpX@WTJ>0Xo?9OH(+a(t=>@T~Y>p6Z<;96s|!^;j??&Jd>PWOCVqCUmvQk_X=UamX0 z{r-8!UQ04mB(0y+RL#4Su{TX3{k`NI{bgF!=4V6RE%~Bgkux_zNqF~)Ss_;U7i|0X zB0ul#nXV#dA!*iifuh%5$mT0%cuBNpGA=#;BawUk?ZC`ueXsVqt*^bwvMpHY7Kh&w zk(^~(T^EvB%=@QJ(FnUCSdw+MrEc=I><da9W$T4JDqa<6wdM+Jyf?95XIgQR@(ZOX z***{DE`=Y<z0!_F3+_;i%wD7BnrivtVR*^Dw4zCxM~>Wkb4X$P277rAGi}LbDpxPw zjqONzSoc82yJy|32|IMAGsJfN%DZc*ZacFxie=xd`1l=a`|{+T*h+~!+nty*^C07I z=`HSdrD5Top8V`0`ax!!!>4dYe`3;}FI~S)Va3(WF(I;oth)_fPW)8zT<&u6pB1mp zdnpRXg-q$<U3mOr6yx&i?Zw(h?Xn^-n5zAq=Qvx=?Bx{0dne3%X8z#$CVDJY?&TTR z?eCJ$N2E6~7<l}gaO`ct<`19MrLT7DN_4zuWfd1sxH)}&`3ojpE5pM{m)0F94e@@O zv4{D6?0KK_EdS@ntKHogao;AtbA#p!<$!IOwi-5{RbNh8lfseE=_>K}*n&JG2@_7= zMdjPh&oN%}{bl++lTuZsf@Z%HH(qnEZxuE9|K@3ritmE}>yMvrUOxG}p;l$%)+}ch z|8Hk~E(<I$Z+O-F{c8QMm&?m)_imq_ed+zw|Ki*A7x%tC8~*;fz4UY`1<o7st9~f| zI5InV?V*1rcA}i8Q&s11?ib{F)phb~$<peJ7mfGq``#UXJ^R!BH-CSd{`|lDf2Zx8 z?JNG&e?0m<aI4V`b%~M~_f1=bVjlfsIg!cYa6{jx;8IEau~L1Zc}w0gt^DL=71$We zlpc6;Uf6!4wO60tm0P^as`aJHqp6#B9u0ZD>cU$eE332WJU$C_ruU`4iqf3OQB@bL z*d=|S{fJ!gpA~`~PNLgXetUe|`yfuEX=&gz3GWjMF?;{?a(eH%K6UA@>cG{l=Q{eT z<>z|ry`;B_we_(c=Z(bOo7Y<&X)07}56~07(zJ2Sd-;7^_`m00lRDJ7YkopQ@5I=< zK{5Ra9#3wvCaX9*+T6P?d__3-x8ACAj$h*^>{xVY_rHHm_SdKCy!Uya;}EmHCizIZ ziijZBOP+?Kle6z$Z3=gj5%K?guI<Jvmcl2Wzh5i=zT^X=*@6b%E8-iumwDJ_&%7j; z6fetA#<IctgX*!p8?$`sMbBHkweH>3t7-e9@_Tjq(p|O@-!_=vtYWNAKPJm=XT<2U zWxc3Kp^xjcn;UPJM$Zpl@J4NqU%vc?Who93`_(TToLIN#n_RqlL~?HOV)b|W+t`17 z-Ldz~p{5)D)9+M&oVRg(+0N@$jEp~Ww<a)Yyg1!jE$MS?VLe0rTr0zW|C6RjtWTUg zgZ;O{43QbUrbpagZ+M$kZ_uakZHD%jd4Dd6_Iqg`y#J-G?q|v@fe;@BW%*zc{XB{P zqRh#>4aYT}b(BUtu9>opNl#m2`|2;RMIS6kJ$>=RXV=`Uf45sdURX3^hcrXkrYpBx z{)gmn$X;>}{-fWroLR=C;ohzM)MuM*9^`r}-)OfuYY```W<Npq)<Nd3qJ^yiJJdcs z%(<SpCs3JxVt*BM_V7qtfMob0rk23JF{v{vf1Gh>o@~f^blbE<o9eK;U(}fvJIGGA ze9S#rWBxDg&TkL@E2gEq>0ZA?aigT(<O-EEA2TW8m|af;cWRitTXW~Q|5>#{mB2j3 zPs{hIF1(n=k)#&Dyg17(`BJE5NKp9C+BJ@z&0&WwrcF})l^HCsR-vop`ioR+<s04a zm1i9OB`$Gk$C|uVY;N3c(#gdOe7p}RckNmAOCvDolGow&S>Ah|Dl*@?!JnIS=*G=S z7ks>4F8uQ9{jzI)9y20W@;pDA6(!#%=b^vyBHPx7j+4cXp4U-6@8cHYxr$-7_vz;= zUG8k_%=lBwafrcY#*7a+EUk~+XCC1S??_pYJ1PBLnU&H*D+Ze#>Bbwk$K2n;KbP}W z`j%_v_r<rKQ?lqUYxGm!!Mmk*GDA|mX;?eM7E!gU0*=8~*M8b{<GwWGe@;fPIqU)P zlNX&=*whgvetoHyfN+2<yK4E`)b7I%-bJV>N(s)`a^X+sT+fF)RWmjv%CT(lc=f;U z{2uA|7jrsJn%@34^YF{p_ornW@EOnWvOJ}EK)R#*<Gb7!{5lLf));e0cJjonNO|!2 zN4cu*wH$_t3$C$M2;X*2Px~ylw5H}RtHP}n4Xa%nPtMj%v_JCC<7h^FYi9oZ+F$K& zUfs(4@BUl3{#pO6w{N*;Pq&;@e?~z5x6{=(VqX83h_uVGx)r|sta?ex_E^e2lS@Bm zYkXPY*ZXAtlzRVH$t{n5RsDRW_U_5w-QT}`|9^jf*7x%AvN-Mk^XoraJDxnc^J(c8 zZI*A0XABhYX`GxbRC(E!^GkAl?mXtVw^O%-&d51?==d$k2k$EXal47Fd+<F^y^KYx zDX`Z6@1)LLkvnEgtWvJ$xz4q_nyzJ8k*nD7Tz+@_!H-RWO|Nv{<s6>WF?CW6{|#{_ zPP5B#)v51AIz1B4e-OC#hIxwDgWpFMci($D>0kSls3+zO6P9-P%Zi0;-=15NkvZW) zxZ;G3Iv#T$*<~tE`Es<b@A$`q=cemFIBogrg1hq}mZ^#9oE$FRj$h=~zu%~CefGPn z@n)YGlUrK^ZC++xP7+Ca!7Fp{NWrhl_jmYnzMtG&weYUc-T6Fom(?zrm@58@@!~yo zZ^vtTjGJvI_y68v8>-;@vS;y)({j%P&M;?cKlm*ny8P7pj(o1$tUeFc$4dOwn0e&I zS+{NSIkMj~Zk#iobUeu2Cv>A;!4mg>GD5K{e(6Wreoqf?maC81|7voO++}t#BMz5s zKRt?7_qp76DoZ`sxHa(2Lpwd6Ige-ltd5U<C6;k#N$KgpgBzM^`gVoSTj)3YUgB)! zI*w@%TRUGJ`aYfi$zGR<Yzhs!>OcJc*S2b<D7(z&a?j9?I<`ch@9vkq8}@S<Xi2c2 z47qc&<D}j)u?;e*xmMoV1px{T?Dva0=KIeT_?yExd5eqaoLQpU6~=4LQu1VkcdU42 z=VscxvT(`#rZUc5i5U`1%I{-@`?Sp(Ig+|RToo-}AAg^5$%dRlh8x#kGH*WXzMv{x z@Tl7v<pi4|h7BE$=Z7|R$*nFr<nl7}^2Y!3BpLkQf=8Xg6{dvRHs0-dd_v%YWv=ID zo7tW+7bdkCSDiCn@#(wHg1)wj@T(Sck123<>Sp-zJY)83zrfpbMC9sonVsTn%<Oh| z*45i;U72ohPj_|us;s8CH&>pzl|HN3AJ7{%VbzlVhZZEeE3}0AX>C~4<^9Z=?dzeN zqCPS@+UKUOI+;6pPpA=Nlw@e{A(w^5p1KRzqPp&^Wn31#_g0Hm4U6)E)--Nc;R_2G zdTSf&&UgRH;BIEK(ssC@oY6FW+nfE{4?V9)o8b6i3C~3LVD08fyI0wzT%3BAjaTZt zZ1ye*mrDV$QxE=sVO1f&SZiHY?Cm?r{tTM#&t@J;VM#c%=0!rhdwxo2D(C#gr<VR> z-DTaPTr6+Q7~-JaV#^)I6C+~6Jwwo8!Cq|vwNh1&{MUCvV>>JU?Aw3VcSDZSf{(8! zG(^Tte`x9Ypv{b(L1xW?kLe6r4{IJycIjrRP7IlP)J-5Fe4+qL1;aIu=ySVX3I@2T zc83H9=l{%zm2Bj>CD5bkc=FV~r^W`SpUIqlHQ{~8@+P+f9%hqna>UJevNR*bKsMrS z^8Umof9VIhQ=jI_9W-_|OYG;k<=Jv3Vy@Pz3ql#eN<y|5R{8WCSiHLHwtkJ7M5pRn z)-9oDwro{BxBD&Mim=RCj_q@eZtlCm9b~a?;)=RoH~rV2{C_ZR-=1yu-<H>%%ZuC7 z(e;0}x%?ug{5fuyZe9{SS^xU+Yt0Jt6=z=5uiKE$BD?r)_xI~2jw)v!Y^v1LE!yZe z?Z)ftEAsYM?^gT&|K$DX$^YG}YhvD5$Jb0>a6`4ctI6-ibFSM`^KGS%HNV@*{z9B9 zTI-3q7UMbBu8UdbQA#uU_Fv=JaMaF*=l1izhk|?m*Tn4z|1TX~C8NT*_4B%uiht^5 zi>Fu?dde)ny?as$!_mC+i#_D_Zf%tiIG?a;nt0gGt>RDHcky=V2<`abE4nr;A@u7X zS(b|_tuq<U+ts)msGnFd(YNb}V0zR8#u?7yA+pR2ySTWDH#DZ)o^#b8_gCxkPKQ&I z8iEvs7njDa_djs+s9gB}d`%|f869OlPdi$shh!N(R*2eeu+mv*LeJ8w-k5~#52B<S zwKiQk&@romPm=vemCoU`qhgOGMGHJ1Zel#+|3Q1%jE>jGt|_Sg+^|>JU5qK=MXZna z+eTaAd8ZkQH`z8EUqAU_(icJ5wei0eE-Ev+H7$x|g4c4E=caWFg;-QB`|e}a?OOFi zOj<#uUg2hj-k)vJpAQ*-7Z$GgHc8x&(WJJWhik)uin?NzCoS2}S3Js4o_JuX+x}zw z&u4Dloz&vt#L8iC?L~@f+MUIl@9lhdJ!J9ygX>tP{+alj`5U8^V*0Vw|6aQ@nDG8$ zh!AFa-CNhasEXm=pEEI!H!Cxg+1I((Z~w?Y_wDS&*Zs-0O6#tq+dn!}(tE??Rz{QC z!*)g!h7PNTl1Kl>tY4`A$G1zwU8ZhZj-z%)Jx^N0)GhxbMY3-RGx;sQ<1Mhl#OSHs zowVIwG$qB^SG0UR7V#o!aYUmSi-CE?HjYOs&CL&txq`fZ*mwBE7sh|cW|Vo%bN#s{ zga12FNwjnNq-ZtGP)_s7mC3CtE1O)7=Ss_X_i(mxAN(!irmw}U*tSi15tobL-+8}F ztfW#!MGvf)bmTvy%@^+v2lS4xE&Q^6#+I)WQ#51)HeKz=VE1mg`ivurdvdVmN%gyZ zjN-@VDFj~qVW(=aMoImZ{+F4ZoU30X%Was+Fy$E6!tW(*1@Eig8ea0tj`S>k^~Sol zX42ol(`jcsnJ-Md8Wy-i;t4~iTc~F;qw$7-r%E}iTm)E|Cfp71QscUu<??!qi)wzR z$Gz^%IL5g?e?I-H40cUgSE_sX#Ow*(fA*Z4ubgp#vrWK3LPVdDbJwR?`}J2<A8?6H zzQQ&`Azj+GCMwy`gKK%L#OkZQ4%5HQW-4Zh&M3agz{K-s<8zTeE94`->s`5%({pf* zWXtjiNs`rOx8%#Ozy5b@#lo7fWvA{Xuq;VfaCME%vSn`RmxTKSPBNBQ|8lq*%<|FT zTtHY+?RlG7zrIOj9$tI4=p;uOQ%16B)<sE$4$*q{+V!3Dyvz=Mo1+#X6#YTO)9J1C zyp6RgDyCX1+;f+F&Alf*si@EYlUHxXN7m(xovjTE(_U2C&3<uA^_{=N&7&^A->*4U zzIEOWwi#a>_MO%!ZIWNG-0A2Y;Y->Ls+SlJwmp)oFv-k3uuJPeoWZ0#_b#hQ=?JMn zW7o{9_sTZznp^wprT?w7Q9r*w`7i$O%K7#W@n8PzuVmj^&sMrfvVU)5b?}Cs2a^x9 z{pu-Q-#ho_-eP{KgXhj|edjYltJ$;L<=4^E&TksOzu&hh{`b}R?Z5f6Kh;~Uo%;X2 z+JYsLpWA+Of4;!`_^w1t8P~qBxa~JMmoZ45oX_kUdoo(_g}D93%_%QEem5`$w}vFl zPz`vs{O{Jc*Sqf4)f+ynJ6)r6<EU;Ti(%&E1@#AizRPM<y1nA}nlBd|F6hPIxNV=P zW)mE(lJfewzq|13T+aU&e1g+1wN0~Z^jTcT5XGbOo#Wew#i`Xo{(1-2&16{kM|`sF zyG-E;>K6_Q_vD6dPB=0r_#oq!-{%w0TT7VuihOx{;i2T?!watl+~nHq5~JTR<)mAP zY~tyO5_*p6eJQ3azn_>(HSnm-pLgKL)+2VDi+N8O{klIfrQv3SMOujD)#K;Wr&qUL zy%q6Yd!F~^9Oq9e>tE`;-CWdZHlf<s&*sDHk4>&UlD*S*pF84vS*mB-xr$z!U_C8~ z1)|!!XEhzNZDHW3e<Znbmz~zd4Qttd)o)f*+GYGgQYPZ2`7zm~`jxyH-o4@td-?;5 zkKRk3f7y?5$AoLa>FYWTOZVNseaPkP{pv@zHW)m)rDDgZP-o^Q5O>riV!Ptony9xD zrL5B~A4^lZc&@85+{bWsgqXy`Gg>CetT!I)<^9`|$Fwwo<A?RT^GPhvenlS-f1T{$ zBemG_rS#&tX@S*CBVy<Nc5ATAt>0$0$d#R6?*F@!|7LxD{o-@}oy9q)T^+j9<>r?@ z+P2rocVX9!^#`|~PiGX1yHR1F`tW1S<29TaCUcCBZJFg|G()-iR;uW)6MITG=-x2; z@~G9YWQ*~_P_{&c1J^HQ3ST#!^~y3S@_xCHjO*-&GRc<8YT0+n=QIdx%=@vRdfjRE zd9F-8AKwYT@@8bR-#_mXXpkvOpH;L&W<m_tLe(Jg#aq@GPYhqWJSXInXu*ZTX}y<E zI2r#s8Mrd%A&2+>h(I|`j(@UKjr$Z#Bo`X3IC}B%WDhOPpFi!6a$R+7G%_|2j5rYY zq(5Y@@YT00%4|$=7TUItx34(0YW<XxIhVg~=8_iNuu-17Gn7lhPwoaUYgMlX*Z#ok z4>mZiS-N?<sD_!4o5hM)mD>yE{`5bmeBbA4JflPe@0MII&zUQ>PtsiL+$b!4GI#sq zjkmsDy(lLq_vT@s?Psq~$2HUpWUA_p2^ie&;Ob0ToA!k#A)U>8$qqxu?L5&_rzFX1 zdi=@o%dhD_zrCl+>|R=W!J!o{UpXvx{HmQDkhotXFmwk`y>;p*d$T63YhGnj-<7_r zY-F|lF7_|^&>62Q5)<1SxEF6{*=8uQAy0Wjpy+;;TYal`eKTOL4z(%M_ffcz5Hw+5 zmUO#p`m;IT+x~}`-iouorgiTBueE;#8^1iZ>Hm7CLGjf>k%Y^S$^$3*hq*5=+976s zQ*o-}@n6rc9Me#G95?+&z@>+pEFKdTE`<Bvsb-jQrEI}B!ONdtKCZobsimRs^{H*m zc`p_pySixA`c6T?1K~~lOjak{F64Y-ymRKpdB=;Y9_qeghMm98d_E@m<e1swukYvm zsec{+Pja_a)zkk|{~ntEr~K`=qrGP*{<**K`Fv}k&boIcllOXy@oaj;pql*mk<<Z+ zj`UX_SD)PWQ+cIiO49kH{Z==gh+KJ{yxD(W*@nwpDYZWjn}5r$e}DbjssD#({jtCC z{Qke#u%_N^lgsSh)uzopa-?C?hdCu|73^x+r;jT<Ycb{%jI8(G&b{dBbPtOdPmxBI z>!#m$wU)K6^|`lc+vm00R!^MqPOWceEMsHD>?VdC-!;#_ws`!f{Kv&<-*nfV5ME#q zvO;F}zJ}(ggBBlHHWt-)y}igP@$+}g<j_wiOb^fNDNGf<vd;VJovM0%waP7$bAK_% zX0I;X6j&%zyQ$Sd<)6m12j7nTP*~spFTnUV@71d^{^2Y|T`$=en%vO8@$9v<fxx?W zM{;KVkekya+^xYT$?zxPhKqONbK?M`&`a-cmbJt_pZS*M{jR9_f5LBM>xKn%$%Qnj zB?({9{}Q7*IpN6#c8z7zSPV3-y+2<)=fB6UycrC!w-aVA{M1$Ey(Lg&uI{?Y`<Zxj zHyy38`=LEQHS~2$#`o6Wk#CsaaT;#8a!TUl%g}lKhqg%_vAeRlfYE+yAWOr8=bfTI z_!y5E7CuN~usgHKb^VJTiysT8b#lpX_F*WJ*%GZ6WBq3Bw&sp!d3Q~=n_vI7<K4%n ze5}eF;>8$5d)J5@t^7FSoLcO>yw4T)IIV)^8y1x?xVIJP95WP)DPRBc@T#bNKP*2O zr)cJK@e673-j@A%v2aF=_Oiew394@-4=*^X<S^fAW9a!E&%P}GDmGuAw`GUUrs%`} zvwtxkG!a{$^7>)#%4k8wOBbR~l$q7nF-aX=*6}*vVG6U|&);wEr0Hi|RFnulqBWsb zHF*_>%Z;fCTrVU|vnH!(oU2!U^5V{HsgpM^#~qya(dLR<8bg25^BKoJ&B?Rd3Yx4- zTF<e^*YWj9m+qjW(tooZrtCIa`(gUq#SU_N3)~*7G3o`*5-pf??=fG&LdJ8EpL{-P zF(+luPFax4#2pm&So+1umReS)RVl0Uf2H+0=Jc54EU{QNLGZRj(3jj(+nN@N`Rw;P zVsRw?7TcEv&WBE{-xL`WcAWd=!`X7Gq3Iv_ew1I3o;@k$+-|i~HouM)`2Mg|ar>y( z`&xPN3a^4N-sxYQ1AR~4^JlT;+#@mRy`kfQ{hPY0k0m#46t7s&61Q_tz^h4rcde*W zmq_3d=rRm^$0M?AV!dR9+{u&)(&sPw`tbbhsY;x1FlE__<>nJU%*xtWQT@fPD=5?T z+`Rrx+gW7YxEbabvkBkv=h|f6xm|Oi>BZcip=ymU=Es}aA1~KU{$Dcfw930Qkxf^m z(-edc>b6dFnQyxF*^hsgiU%Uj?fkyzyXk82qA!ac&DV9;;5zc^YTKhfJC6VGoxk3O z_d(8=`?napIeao=6z1(0+#~GFb|B(5L!zy4-n!!D7otPH?U=0kL0zCFxn7}X`Tg(f zWd$Uvu4dj0*snYxG<0U?B9`Sl{(oqzS<kj{(Yhsba-=VMwBKv__-5YD;;B8eIwvwW z^q8rCyUQs5-o$IWs-d+cQ@+8DRl67hZoggkcJ};#-esaq_4;p~|37lx=x2W5&*}G$ zJaE;_x)QfUYu5||9usNSB^SO0vKgG&Eb1e?snlw6S`GhNzPQ%^AE(>r{uWo?J;nUn z)7jg<z25)p``ds2?#ao^Uw`s{`^wjc{$6Fdq;xQRtM>0dyPK>ouAAQ9bVo`gB&3s> zr{nP^_e}{o%pI?!&->+gzMJiLSJ?Th#I*FaapC!lH(aw_v#sAf=k6>>$xAtXB;}KH z;$f|($6+%bl&oF-{35$n`uyZS^N;Madbu;<wxm!r<EDuxY=ma)S#-9hqs!*k+R&x9 zX9^XoXf{v05}8?MfA58~(#*IOV);xRH>O7$C^FPFCZ#1Ah%yA4#Ts|+;#4?1vvkIe z%f5})62ZY-|DS2>a@x>V`)}>pm+ce0FY5bkuxD!R<y3jIH2hb(PLAbsD+M`=4XUmC zY*+rBc3!#BDfCZw(iBEE#+o;ObnHHJ+Hr4eJjZ6+_UvZ6r|R0s&h+XnU+%Ifr=Csr z@-2LJJokmqm948@ZmWr0J;!t=S8GDot?hkkVe{3_XcVSi<F}9P4GsU^-@k0*9L5^c ziyyBl9btA-;9#G}I^&SaR_6loHOtQ_`FUG&bJ;d#)z7mwkd>P3!)R-=X3Zt8oTMhp z-&VVQ_qvL_=&ZYOxYa+<_|f@khZ-c^IhH)?c;@rQlC^!CO6~63FBtqe?#<v5V>8hD zvf@Hs*YgM?Jw2aSm(N<KI!0-S>D*R$^t{Z>g<W)ZXQh`^y@3)3&(8jD6I=eC3-U3D zjQ+QepQT4c+t}^ejH3qrNsFgd)S0^W{oQBTckBA;_v^Rz>RypJKl9__KYR|nmsylH zF&?VcU-M@B*~n(+&69rli?8Wlf7(gl>;*M3p2c>?eYe>^yD!kX_r9UnuP{sGp4zQ% zr*?$08lC=HQ)jytT>R*Vzv^$6>HMWQrRKLys#UWCOOwgR`(5934W-hyO*+Sa!g>;i zlmq{<nr-WO+`sr<_SpTHvt5g2>eOWO1KchXuc*hF{oTVAW^j#Ve!R~C7fA(&KME^d z)=qe5>D*{8!O^TI$9b{JcCxkT`jQ)bug=N`&b88Rx;Jlwb3y#nH(Pj~X!i=qm}P`H z)I@qtRI0eJa^jYq8?!^!@|sL(s#qtN6Y1+-kRy_%^D{$Bc7sr5BiGd;xBQ1P$yQ$+ zpTC~7(Wn0X>&KI&eT-*F-k3J;9P5J#M<z^>xYQ`V@S4}IXEn?A#un|Lx+ME-rT?+& zBP`4@`&Yc@co4uCB)aI`I-ZbcGxu)vI1%*K{4w{Q@P#L&)}{A}^}N`;*6WG;vVFcY zq*%qh)&46hPMN&jE`savg^pc4_b=c1`D4whC+t^G99nQ{R*9s}imIhKvJw5I-yQ@Q zZ{IDXKG*!PhJHw@sKJ{@H_hwa-Y_4(HI3&*sNv)ciFd)B+{_;j{e1Z9`#a^nKCjn& z4B_W52K~BwZuNVfnpYL~V*FWD))-9rxY?se@AXWJg`vwPPE8ik?AiX{&gWLo*HStQ zpG!Czs4;f@iehL<d3w9?Z1xs0i>0MIH}^-);&PaB@!gSzb+7-tJ@$R(3QyggrG19I z{i#>&SM~os`}>#aBBtw-Dcf&ee>hQ=J$%I_gT&i@W(Bu?ET8|^<;$P_6@}UM-;e+A zxVvxH#?wo0&tAXh`Tk=5Lv5>6l^@QIi03+C8dPSyaP7~6!bR$@c1FawPv-M{b9ttZ zRD*r%!Kd%odKS0uw*Jk&|KIDf?}=;w*w1<US$|)9+^-0Cwj*n<UHi+cvAyx&n)$_! zNlbUe*G<11Q_ix^sdcxp25ag5)cSYK@3%bt+Z6iv-+{kP#ujovZ8uC$in*P2JL>jg z-sM(*t2$3|)dj9Sxa_%Mzuos!DXUz&qrH2lI(=`by^*v<VSa4m`qe3tK2vq(_WgZx zK0ESW;d&p&6(V693+ofk_ewrkb;po_ukoOAjN6t5+cm#mF*>!xxt7;<mND#jy!Ys> z-C5fg-biLhd-$Den%xa&mJpthod3o?pLd04|6t#E@yX`fE7WG)sJ+YJAftP<a`Ph# zL7pV0W7DMWYx6}+IptM6)%Bjc)4gAPbsvOuwk*AS@z9hV>MyuUe}ru8Gzo2HNKm=L zYWuNP?0^Kn)i<td*|l-I^AEh!pR21g;|_C)hgo?o+t;lNm;XGPRrOx^qSl@F8nag1 zW%WE$_x+Mx<<FbHwsr5V{(oNKmgYk5CWD9F964?_Pd<7zoci$8@@{))davOG^J%MI zvn0;CyYW)AvRdbi^%Jw^nfY(?W%#G+$Z<q8q5nwMG{zUDjIv$p_4s?vOPoF;*K{o) z`kh4o9SMd@!sibNEpGkIG~ry|>$++SWlO)cV%w5#rT*yOu+iGU!>V@L#d|3=8f8A- z0v6pGnhm#;_6p3m%BXqBw~VPyW!)v&9R_x*S>}G*_}{yUg~4!fkX%Tm>J<?S(}NCH z`>$^}dztr|B8&asU;aJuqQc^n!x&f={JpvVxRuzp*De87!UyJXn@>OKZh9{<_Hf*W z4_9C4-w1n>;4%4HYiyf7_v7VX&13HGxmT{Lk$L5O((D&o?ll`v5ld&=mAhPD|4N$& zTXSH^p8M<Kzkd&WEp~4G8;dvR++H{9JUy3bdFjZD6zv1s;oZLV%jP9&Otjv6j^9sW zbCj{hI+w#&lk<GarrNNwwqIR*O~2Ca;`zx7moH_?Sv@<YyUnU@o`@gUl`p<QOZPA0 zue{ye$FOW!&_0bmhZ5CuVxgQ$@4bF6I&P43>d>N1Ob;*akJmUPQhrON$77d?uyVj9 zojLu_=Be}A9xV@f_)xc;?c2l?89G9l*-N?~g?e5#_x4&+Wvp5w@%^~nilRrQ(u~ZZ z_owbLw)9nN6}mR>KzF@dLFl)6q8xIm@=IT=toSkQ?4~t2WsBa~M)EA!=akG;Qp_T= z>IHv7@`~+~oK8&RF$k1m4*Jq#x~)7R=RE6c`S*_LYtQ>SG*0D9zS?`fiB)agjbnvh zb_qT<To?FIPJ8zJWYuFglylRf6P-9Vtn6A>Yu{@e5Rq#bl*ub9^<?#n{oI^q_65E- zJ<EP=*{qirru!^wTrzv%bHVFDlY(yT5M6d>HiyvBjukQWs>hgEHdVTGx2a|Xvwi(x zr#U5M){pvxe+7{{_^0MgT70ftwp!%Xi5K^eGcT?cd^$@Zq;Joe*SBV7JY5x`Jndtt z?Ior+$v#0UCa$4kjnO<MmvRFic=zyJmas4|yW$?x_2Szap{diV4c6(eV|~*X@k!}G zp45NW)Mpt2fsM7FO$)uMRKS;PKVAFxkNp42-L*dtJ@f8<Qa?}M=6cn!&5OLl(vRo` zE($j<JFv;Ah3oV)$*QDNw)dx{Ie(N-@R}ce;Z}a!8igZ=pJyL@ll1?Ic^&h~|1Xo` zYd%&BTxZGZc2SVj$WZKP@zp!T@oVOdm?iJoHI6@@_$~Cnv`xiXYAaTq*?dfTi-_yz z@TG5sQm6jD)ch=SyZV6>+m#x)&E_0bJ6^r(fc&jX7cO&2PY8&(xqPosv_{oc=7{?@ z69hQ7+}%?1^Sew-#)6&O>}vEhuCFR7J}>^`-3#mTLY<c#6Xx~TJ?;FzZdya}4X2(u zou_SO%a|SXuPpK0kj^3IRNXiwHriv!?JwHXJI_cy{u#dYe^YkP#7%$J2;|GwIV3ea zoOQEL=%efICA}S;Y;$=y)gD=@o&A3LUbKDI8}r`1JkQ*F-nQK1o3u-=_E+t-pU3~E zaCZha<Rq?k4N>BL%O!MdL1OljwNW>A87itM_vIYeRQT~|=7)nydm=y2c5m8KJ}oz0 z=*VM@Q;P&!S2cv~xv9b!eQWWJdvPu6<NHhJrQ09=KKqEcFxMl=@@-5~lk+YYe#ln$ zIQH+qqDZe<`wF$qOAU*UG8M!<>P>RsVmZ0Qdft=6H|85I$}<vvdz;aE?oZJb95yQ^ z=SCf1Iy6)La#A$MN}Jt3ZO%^l)4pQ`!)x9Lkt@ns6^~ohR2=KoeXO<7EV1m!kJ|>S z+FxV3gr0BiyvaPRn>i+r{rv1~8)MBlqqa$AZtsK*KOdT>VYf)Y<gwS0$Svz-mP<{) zdZM8FTG-*Qk~NLYmS-(wmAgdS9<dy9ke2f7iBx)aXT#Hw5RPR&ybf1el?uf!E^4S? zQSKJp+{hd5G&}v-*VVO0!=Gy9%;0S3xfXw{{$^ic&-vq>*0Yb@QB(N%r^;x3I>Up` zy}N$-uI=3yTB-K)M@M;fh@kR=*cC?iL^2FAyPhoWjdA4ouH*I5iE)1Hg~nCC4s%W7 z^w=8cx!XXXROP&$qv0G54whU4?ZPz?Q>|JaWU$;-w7UAKXrgmT(*8*-s_RX8_!xRR zr%pb4%5398RvzBw0v4I6OI>;xds~`5%r3gXRk1Mdj^qu|AZbAnr3peS1g9UJ=Nrdh zzdX&UalQVUrjs-Kws9>y%%S9VXr+7d&CO@-zb;kz%INW+*-^iFv-5%dIa<$Icz;dl zi?z4^HUDftV*;y<o%9Qveg0*wC6ZGbCdPGo&%Lx$gvrXIYNm!qMbY0&*X=4r9nVkC zzc<s(;n4p0H3cFOT<?!YFDiOuUvlI9qjJ6JftqIb77M-l(Jd5uQCF31nS+urTWDm7 z{Lu@-$5(Caj6ImOOfj%WWLvC6JD*hIbGZwpU+1jNe)Dp+WOCnn<pNW-_@vAQy{wD> z&yo|;i#dPx)HB;08+~Do>!0klo6l{CW$WjdwP^k({-~lo=cgqGZgCg&@Oj+($R|)R zz9G=jfQRwCuJqE|U%wiDJJ8Oru6?sCXy@XY(@b6Oi-)aqeVx8&o@2?$+TP!ZrkXcR zYSyuEGwk~E;(Y#<BP$O6Fr561<A7_>e&d9xQRN5YzG`h<H<2-S#oyyA_TP>AxqqAe zF17#W+8hS!MW^ZC-^0Fl&cQiTCtdls&cXj@p;7R(JI`Zt4XVs)4O*|{si^+Cu~jzR zMuJh!W?la0S6>a^{JLEpf7AYF`~M17#&>Vu{kv!P{~H&F$=RNDW->0Oq4fryDg4i7 ze4LfK{)+HA=?fayeUkKf*0J6anXIrdRbXxUX$8}3e^Z#(h}>XpyP4<vul(|_J7uD4 z_3l;QOAl&zXr6q}dOdgTZs9)y%mKccnQNciDwC2cUv9TcFgb;lZ_}#fr%F<{=IZ&J zGYmX7d6CfPr=gMG&&OW3)4HGI%<aDOn(+7P=rDzsCC8R<zB%9eJ$B8L$|#;k>DAu6 zGLq|99!+6sntC<TmEU&Wt$@ror^JrT$jE44@FGF<b&gY##D1f<I&WwGI&FC?Pem+v zj;6i2VvjfvtD0qwqO@=+%aylHGZ~JF-Ck_<Yw5x>>nj?QlbkcY3sgr~DM@bH^eRg7 z`Io1R`#K&SQgb-NaAitB@7;C=m2W(^ULEjqNYV%pnH*Q9-SB-j+qAQ-3X9Htj#A#g zv(vPy#^&*!6?a!f{Q8*TJ7rhB%JbK;*Ya<~|J^yi_v^pc|3B*AYCnFNq2qE{6JxW! z-r-}*azA{RzNMWYI7edj%+k=Cs(mLuo|<^1&Hj~{TSe5oY6gLh+MZnI5BzK1{I32f zIbZyiv7bV~qSMvlj}0E}I+v|+<NYj&27}cG<!fhKJU!!n++tDpEIqX&E!(EAJ8u?u zU-|EgGv0#SPjW8oW3UkU{^CrOq5mUR1DCb)KD6iUKX9Nm?xfJh>^F^eOXEGwBO`1y zbdG6kdvjxcwb9ZTcC{|6sr!6-R$k~}idYko-_s#?IsH;d_fFAUCi4CUM%xzjR4X&= zNH)w!yCbo-{hpA^fsLD5r*Bi;8n@?%3!|?=Q292C2{#pNxGp&@eHLQ=BJoPaqLqpQ z&*Of-{rNQ{?mWYR;Of?kRW1v}%St<)?N;%u$k_68VtdRZwKs~c75(zL-uu=zox67| zLb!KIX03$t+3@!6w1$PR8m&JhDQli$@eYku<)7x*^vTTpfw}o^4zYW&_a;7F@}x85 zmF=oEj+I4Rmzj3m_SiF1)olusdP8^WQQOJOPc6yjh!&l1yt?{}gu*e!P3;y*Aq>(S z`(&o=SQK{1P-O0GjY^jZhZj!x)}`*O*1)?#WtBke$-YT@I=A2L)cGtH6ytMnt96&M z%rf@NaW6k4C|!vB>KeqMp?yYoe&%_F8$O|Y4RR%IEHblhaCv>;UVq=Lc2Spg=-X3S zi|fBSotnAKOeF5KNTapJ1k-udTUKqDs;IFjbnmm}9=|R+E%35?@$;&H7~e*xUG7XG zw_A1!i2Sg4c>R}lXQYpL%c_MA^B6xgOgjIS<7$?w#?@m<29ZWw`a#PbJ?pr(8_v}J zSsN&$JwG-1!UM+ZSED$dpRk-=_vFt!Gbw@820foci@x7F7NxNN;(P6k^iA<I0)!2M zPq!Q@3VBw2Pv60bRj2j(e&+yb#=O)?i&Ffi>U5`<*eu$+_}=^(8}$C%S?n2o<h$jh zOR*ijeR2tL^)XyRLdGvy59l#&m}2Yvfiv);^M(m=d##RrzgPFQY_Hnd#SW5Tcb1x8 zU{&ec{N%k{?Zu1!eOqt5{Wa^)|0`LS*S)zm`M>?Q_iGdm_^$X{|MQskf1ZNY109-+ zo?ob5mwrCI=da}vZAQ7I9<jP(!sd*Uxr(YYu3Wvg@b-g)w_f|l9h+6ZWB2y>|JD1& zI47<D`+R<Vb?kHFbCxR)OO@XG#oQEkfAQ<{?6cLUEqZ=_i9p<Ojctoku70n0vdDd& zx%kN{1I~~{*{Odn*NI=+m%DkrWuR*g^Zw}zp85Y+zqM00-S74ML*FvE4w;B%>Hese z3;b9#%Rcm#>;<<++io0w?9{+kB`{HEc0|^PiLRU_;amBVGpgswpIc$S=D~&3lcfhY z?|b~-n)~75SNYfG&)h8=Z?*K-ExGgMoHvqlO|0j=jY!Gw^y_w6lXGri%aLz8mrs~- zmThV6rN4_s3ye#TU7x&WwNN4JB(3e|SG<Yd5H^A5^mL(|3wyrDMPA7JuzKQzxk5{V z{#)pDHDqjxNsEbB34Q7zHY18FeocO@+6mWRb(JPt^%LeE@Zu1(pP!W?pLG7<{|j*( zGeYdQH9KeRp0!htu_okBFqc|U{V}V1%pVqBbB#XFGegv4N}2FvRi+e))ioXa#rqms z?QgZ;?fAxhpZoRu+E2fvwI#N%d0ivRd3BTL4W*m8OV+eY2AmGwE^~c`kMMr+HQ~BR z+YkD$da4s0bjkmc+q7e)sT(yJ1@o3xtW$M)bZV!os@0_A{?=(szji;nSH4MSTX2+* zt8D#o;cr`4|DAon&-u?&hnWxOth!;kOxg5TsL|p_yK2wRW8jI}e6VH4jF$6i3*<#= z56e9_X-{xS5%hTQ>5sDK=Joq;9lLgQu6#kCc*ZJ;gIyVxFLRFOrWlrPxMQ-;>RQrW z<8|DR-+zC0`n&eAUQfo{osIuJ4IN&{xm3$W+j6~a;tEhcIeqU!-rk6$a}pxyjt{ck z|Gb(Ud}(6CRzaO*JMx-5zx<!3xQJQH{Nvu0`!<P(*PmFoeErSam$$zy`5CuCRB_G9 zKSzGZygYpJNVkQZ<QDjqV5=o39?|UCUC1)wf`f9FZQ6y+RaXuC)Q|tp+#~mUo!6yJ zSEJjQckfW_b?Nx~|CQ@j-Q2Clo|6`?ZTxr5;GWMWb0+Vs;D&V#LPB38TMdh!?={FU z{}#(0RBy6!p^`<j)7#^Zo6Z>c^<Uko6}TucP@;AZ3(ucd&EIa`NV?(SZ=%LHS@QVr z#IjF`yjJ~XHh&HlOj-W<dpN@nImYc;YtuLuJ@w#fGH3bAA9I@fnr_v>z}hB@hiBxx z?Bw}F!W`6B1&cVn%Hch5C!a;&o_3UqUTBNa>`a%b>omV{S4S_+>rP)H7r@pk5)>T2 zh27ZDZdLCoCZ^g@_cKLywTYrSMa&CsxgN4NYZ2IcYun;kTV97MWGHIgUFgwUdvoUL zZ$3uHd%pN7bU5-jPM!C8$=2r)XII^RwLePj$K<<j9&0iPwOTEXRh;ue?c{qd9StQ_ z^%(2#G9lgClU*$W<}Tz8el_d2K%;r29^*TWnFr!p{v8*cSDvW4a<kO}h8a_$I^-Wl znmiOeW_qUn<;>2T7eBl3TP<O7zB#k6VR_D~R~y}8{s&2zFmrG)Z}Ktw75Z_rVNh=D z_0u*t9~MOXzkU0q%EHZmpLuCB{ZLxl^~XiJXYRc3iv<@ZiYM`FU$|Ll&&<^8RUaU7 zeR*JXh|Y7j-Gcf1H_wT^%b|0tkug#JTVH6{e(`wz^P+aYul>KVZe3aSr}_x(|Nmc` z{;U_=J2k%Ut6j+dvmq1B?xf#;V}9$&pYp{SA$OKVt^4vbwPAbTX2Ss2^?O=%yO$r@ zIJu5{ef)louxoeQ`M=HoyZnE_+F$je>Cf5iD}-&&Mz6A8*C_JcLrsf0<qyv}i7kO! z{ulh6J#C&ut?L5*J4JTlM&(@&=^GV4^laeQx;Fnx#1{XRK`n)g&dGd!a_=a^Z5P*% zerzsla-T-^bJb+9Jn7K7QBnVof%CvWF5X*wy`nvC$seN3a>R4eZq;Nw{BmrS;onI6 z=6|=0IYqNG{?2*XRCl{nwp{q!B4Zba`gGUm1&M$DvHnw9u`^}4MB{X&#DkX2uWb4^ z=7~4A9Z`L|b)kND*%pDGDS5|la<Qha{`L2@OcnR7X4Q06ApyQL58iq!*Qfi9D!-{b zJ7c?P@m`$|hxf$!);O4!$#1C_;lCjz@|IgyqE~N6dqPK{|9dmH2c^y1xDM`SoqDE& zQ)SZ4qZJE&$jn!kTm49ip=cfZMGl^nGnbG4vrJy^6|&<%7Gt~EVu8i6rdB&PA61g; z-MC5We0ATFul9f4_a}aSnl$}e^VcGI-@UJsF1L1MC7<6D#oGPFU2odwn~z=3POy8k zTy=$(gV^=9!X8zjZ5xaf1uF6-8ZCP7_uCe=Mx@$FyFI#lFmB519c>f87`k<yvN*2A z_St)vgkHwkGBL)e*rx7()gs4ue-}L5H*Fi^<YN6}EZT=Z)h0!2t9{wHt8m%E^ng|K zW$m`V@h@+9J@I_l?}OLRM0T)DC|dI}MJiS5`&GSU+gOebA41x4Z9d0*(7owqRZ^Xk zkz0CGyXl6^Z+5riNjLc(G%YDiV|9^E<~sI-LutpquIe4%y3(&|DXaDE|F866o!Vxx z%gaTy`DX`d2z6HcFT8tS|4qRDwEy4!KdMjr|7!ov?fXAo&wm?V^SyAb_uhlIj>x5J z>%Hw`PV<Q8klLQkb|4sX#`4i08k!609GaWj7;GneZ9SO6nzYLDkpcfJ{@D+=JWB6x z%i>P^rZutXu(6=2Ykx?pX}+KCqyP~<!xht5Z(LwD=;KLrHJdSEtMJ}?N53mPIm@EK zbm(f!Td8}yH+)~wzroH;!}Yb4V_RQ};wp=c1}_9<KD$ddojLS7yJ$wymlb=CM_<@5 zUGl13$b#xi8Qhswc?{oQTgmj>=h}bguFqL3QTqGn{*SA(Rp0LK&8iHri@YNARIYxt z+C}w0yLpe#Iuzk>{OW9(_;0SWP6%WOsW}M*ZTr0_d)?<yCb?xV8KugPxNLr|f3D4I z_Np?jxR#pBH#S%G9GKyma5R?X=;~G1Ww#_;czkBtWH~RkO-rQ3EUsUezu|R;cx2FP zhn|kjj-k?viV{pO<flG}JN8%no9OI);Xg}_gX@>&7P~ft&0RF1qWG=u#qTpBf;j@d z1plp@o{?fvz`}Z|g5#mp?XZ{ThiX#~w_P+94Ka6I`_1AIYn$DY&#v+h1W!Hv7*w#} zwZ5`OLQqmH!yy5dEqYnT2bKi}a-OJH`Jc8dYx6bngOBxYi`=Pn58XP8^Nyp-ro+=t zoibQ`%9T@3NcFz*=cO*6_TN6M&9FdIh#{}*g;eYBsmn$6-^Tv^J?XcU**nD-*H=AC zS9N!+Y2`auV|Tk`@8;K~JMSNle)DFrmc8I!CD(#bo8UL+eE#mg{4QaB-M7a+|Ke}R z|4g>ueXHX($BX@cUfrE_r&L<MkLk3^zSBFRg={V7>CJD}^msG7mi2Alk9ZyP>c7$E zy{tXg)|B3_d8BK;+IDC4ezpJme`RNX`k%nhzq$7R_kH>8k44unoYAuXklyjI$hW5= z6W*L*dEE8eL08`=r&rlYb=|DT#)Wm(H~nAuud9h;>hC$<E-bIKQ(?0A=c`|NlFu^4 z`Cq<R_S-nu_4$o$(-x;^$L?Uea=x>6hxh$w`TOs`zsbdPYt`>Vw+iJYey9Dotg!2L zC0ou!25E)^lcw$sUa^YZSY@7R^wo-cN{Jb3uB`Wb^{%3ILhUl$Z=V-EzQg(H7_<G% zsEh*vpG|i@`+ktG$v$|JOMJ$L)vY2gy%_ernNjfk*12h%8~)o%`b_S=^7DPm+xd%B z3pNyR)jB;je&Z1rEAfRXzVFD{ikQlEi+UIGTfcjJdCx96rU@cDbmvW|)16oEQ<>0o zyL(2YK*&_5>gy{u37pbp_-yU)VWCI;B6+9%MSlI9!sl0V{V^{QU?>p1`T3C6GR8G) zU7J=-YbZK@%{ViuW2*ata;K}24h-kM@W1{2K0n-gM^oWx&gbSeFBre;2JTtZ#QoSj z+HBjNrE3Ki`~C9wI;OK+=x4v}p|maT49<Ev>FV#=mEY~oSuVNeeEP1`9Mgw?^l#WR zZYyJ49I)TNTDrd?zpK>i*tFhi$Aoy<>g!zB&##~3RI>C|!fn|fk{4buOfH-+;C^G3 zgs|oV-fde7Vik70@w8IU`Z-fHxy3=c*Z%y3Z%o%W2~Xh+ygIkDwz2rZ?B{8JfA3XP zo4I4DhFUg*&(*pGoq9K~g|QSEa`bU>v|g$D$@j|p#-!i*J~k^P;~hSG{qtEPXt!H0 zz?tbV)6o;(9$8L*d%dpfub8sCc2V!6<doU96^~m&nl@aMP}g`7Wh7p>%%edv^5^|u z$6z-lzG>BRko>rkapPu}{}$6ut(?To)aLX&D#G)Cz1GZ!23Y}TWt)^fD!Z+kyJ|PD zsQs5IN*4p;H{`m_JTTw5vgdw8NhweK&0@*<TNBFOWqp~pOyH8yim(HHF>5X}DohqM ztxTHg^g@m2!_iGn_cBwKGiM}P>Mgy@5gwM?(<uDB%lvCwY{gRn^Wv(7+<X3f@sGQC z-7a&ReN9r?{{B_AOy^FoSa#u~<AGznPm}KnuR2;#ByjL{^4j1Ne0}=Oe>)ruC#8DZ z%f4)i^iNIxS9jm=0Fy<^&$!u7X0Df6F4A~yLGP>=Pd<8Rm#WP8aDCEzK5M-zGd!0x zKN5Z!yJ&jp*?Y0g&g*&JUwM37{Z{d(-I@Zre;N*PaaENYawt{FxSkgYT|336ZieOz zrmiJNqHf=_+17vX;`co<mQN1-zIKGy%Fm^y^6$Z8GhS@)RZ2LenCZ7#<5x(4pUi@r z53c6?deJ?z%C?&2Y9Z6w4VNx@=DSSoZD7A2sBBSO#S|){+V(vD=uP$?L6f5N85~6G z));pEwq<JUpD7>ne^chs6Z<@0bR@Wj%#}Z1y0Gi}J=OyuxhFO+_L??H@>`x1^Nka3 zSKfE66gRAnTdca%&azbbHUmRJ<<eJ$w$G27Cf<J^+x_4SlST9IMRgwQii58FZ9Hej zGEGmrA@JI%{oMcdZV=bcf7}1(P}I-;d$(2IU9qmv@VvaexLw3y$?LxhbeD1;sFo4A zE61qtO^m5#W8SP)vxWXA7d^b1zdon_)5+Hnw|0Nezkce!{f6JaH`{J{{=Z_)?7i<^ zzx-bIVCy+Sm26+`)gL|f*rolMadNrF!4-jj--Kv<PuXnp?P68xHI@rGLRYxD`z7kr z8f*<aU;3yRx(Q1$#O-~5kRd{g$!k8_g=tbbsxn6>B{Xd3e6Y_;CCuwdnRSme>rLls ziSzgD7l)mbd2ZLB*As7d%Rt3K&35XJW35vwFP?bJc#`cPpW~DKt^e9%|HNg?3b<ox z<{P?cW%i;7G1mQDTMaLCpWm995^In-bw0Q8y8~vc8$SNoWWIgIvD2r*+kHDTjdN6a z0xoYd<qEb@iP?4f{_4wZWp-D46iw`=*@*q>Nm>-$UTYkp6BznEU;d$Yb^0f**_v)i z&1cW0Twk-~hR$ut70V|Xzn|=?Htpe*LLRxZl67mo$aHJuGA*`aIx~gATkQ$olq+5i z6V7;jtM5*nw$@qajK;$Dz5_}8&)?s!v`hTk-Nl^l-TKE(Yx|2Yuf)x7G8+o);?14r z`#ONZ`vvd$T2<-DZ=8LZNrLb4)r@=JF1h$AWyOx|#^2dkjjjrL734PX%m03OWBo-r zk6h7Pfj4rGtqeSp@H-;%(shS~Em7B1`kn4S%6|0o#j{%*+2U9Zt++Jl%<8nH`VLp+ zLg%9!C5<OArl;=z8TELV;=Qgi&vd&ZrhYx|^(vonH=2sf*kQM?SSzxn=Xpu)hT`g9 zKg0}ImZ%+Ar@X_nU~xCA@V3VS^KB!(`uqz`Iay}*t1>g-=>8L5PC2pXdWkpGpZd!` zK|a~_{AvC-_P^WrXa0X6zjxc^Pq9AVUobRmv^SWz@aT$*^VS4p1Zj%ZfsR%%X83R< z&g0K353aSm)}fL)61*w59?fc-c5mXj<;F8#NGnHO4w?Kr-*X-JubJCf-uS#}Hh8xt zK%=3VF=Uc|^7<_H)zOR0+;4<`UuMQ;85OF?9r)1WR_&FZ-W2h)-7Sed6FXegr%Tvw zTALK3H1l)H#&rq~5(?%GeL?F&-OD+;)%kimUc0oPd*u+vpBa7n)gL+e|1<x_|I6Q> z^*b~F{r&&Xe$A7A5i@~BvDWdytaI}_`30_}K0Y#a%HsVyjT7T#CO)4N$*%w5UY5E5 z>jk#}(Y1npigy!hrcZdX;nJ_YNuDduW~ns_tGcdondH~CdiJr>W2fHv6mNVuZ^v`1 z6)~}!7suMH+Rjs9YCTW7<9cR5<~t7|f$a&-N^#BG8yjXiwB!n<-Z=izpUL;lL3s)G z)oa4oEEb>s5Gwc}C3>UH!uKm)sfJ!oTc^50?x@?L?kBCBd@sMO;L~8x{bRLS{?5@) z%Vuo};0Q=%FmG(THz(_6AnWSi%&Y1r3I{6$oHzVlcd{i&m+^Fy!&ddHvl(Wa3V%7I zx_x2xLQ{9A4taxp@=;*{rD}`Q)(Yv$ithS&deJg13+F`^`f?p|i`Q?t795gLcsIrT z$h;4)wzzRAN;*2-&(UU?arJu5f7xbh)?d48<{#TvZEt>hk6J@^Txn_T)_HHaSIlW^ zIr#DzgHUL$(VT^PT-K8=oVWYE()8#4sLB7ef8U({yZp^H?f<8b*8O<;`^DewcjCRu zINzO|R<>c5(LvG24cGmZnBEi^b&GNNFASRYTK<7f?soP6>+>HifB#<Y&GqZ2{{L;C zY-_h?^ZETh-byTe{y;nA`0cd&D~zmIMJ>*!g*m%7-0)p+?&6i8rm}Um(YEW)ri5|1 zJFZH%iPpUGd4JfW@A@km>O0@nEVegb3Yd0gmek2zzXj^qb}x9VtjNzTbc4yUxoz`< z*Me7qw}x9>&h-tFZHN+6d3xFJ_X~;N7c+M$c8H&UZ}KgU-Q#+)*pI`%jI&kmF;py( zc)Y7`$1LX?&fI4uX2v&V<e92*gq`z#__2x4YgX)fpWj!QoZnadkeKVM8uMkZn^>De zTTn>uH7S42q90q^uZuf(S~{t2Ucv6sKl4GwzZ~Y3EP03K3ndtfaXu-yyDCOb=lGnN z2Z9)-w$x|EzG7JWSo)vO-!nfrj{i*jTk&IB!jjhfb&N-%pU-@Ag{kA(Vd1|$%wfw} zPBxv(mDxW%>s_6o`00rU1cPVfYF}l#v+?}Yg4K`sZg)P}=(2I^gw|GzHymz_>yJBm zRWLfMF8>&@bglKx)SEY#uDu@Vzvo_eX_qAT6rX^pIr6=)z0(xea7%{RI{Ns;F0c;U zG-Hj)i)~jP|FYvd6ThLnx7ztTOa0D(sFhFTJ}jEBef^ouHRqF<8h2}ky<B!zYRfmj z`5xQ)w4Ps8UsZCfmeXx9tN#4R9>pzN`XjtE>{9}pzDefRi`Y#0zo9lxIwy3iVcPo> z6-Ul&QuQwMS$KZRhBP-tmJM8wmbops8xYuTq4>z;kL*#aBM*%as%+_8u=cX+#{5U0 zy?btab@_Sk%A*uX^MWb!Iu|+}==~+~N!KktPDFmi0Wm}0`*&`;9R8WnHG7fncIWn! zk;@LMyqjv+#LVzMIsd-BlKYF(b4@2_d_2QZk)Cw0Y}402GsBI}o!ZQHU^1lFcvYp& z$R|ea$J}EJy5sH`H~1`xJXj$)<Bdnzs}(PPSL+%DaLn}<EbTI>Ty^lf$)ptt*8=9U z`mR>LD|gT@{ZQho=B_0lCM7aXC~)4ipw6;W=VU;%EF;V6u(=v`&-y<<SN=GuYt_f9 z1raiTe<eonW|!}j&@%O!Ce1V}Z`#$#JFcs;?0>fN=4|;tizDR4RdPa>wR5g!dng^a zPfR*gZ>@Q(n_}15eK!qOiC(qlR9M)4M@RG8tL6OcCEMQ2kNsa8_x^Fsz76&<_UC=V zO@7uTmL1ocyz$fRkN0jEPW3clnw*i(vB2?nn{n~h@~UgkZrs;+WiDHDT`fRfs_IKL z`=%Zx!D}4#1`p32*}5p)?|hTz;eb`<?=sm^qE{8<IlQe?eWN<x^L%Vx&9jec9@8Gb zk60biy+B-_r=?K;qcpF4L+pj3w;TUlwy2j3hzPs0=#fx-;qm%Z&bz`lG}heVe_F!c zT_*S<DQ(w*rq<tgd~&!Rf4;Qq_!QpgV?Vbu`Uy;X_(E>Y+psl!Yi)I#>*u<MUeVcX z6Y6!K<K!x(Uv)kr87*?UtLC+DW!j%4RaT`lySQlyOQ_g?rpfQ#)L-4j<FLHr)BG>B zp}u9)Ui5A8f7HCo*2d<>>BDPf*YjyJJh;xmRdhZszJ6MIUeBop>Fj4;iv9nsU%!6Q zr~jMn_pAL6{2Bk|wEq3pwI^(k{IxdG__Fupfwmygs(XKU4xU*jWqgnIZ3F|))F+F! zI{n_sZt!`lf8OD`1<(J#KfYrB<(He({@*{m=jYew=boqjeSdD!M#1EjQwmn>I`e!+ z*Wc&94KbC^Y*$Va5Oa5T<=12N<gRg%GkN#%&i*%Vd9D3!r_6Q`>pw62hCOeBrqH^~ zt-N-ninsD^xdeu(Imr35Pn8Nad?BP@nP(&0&V1}~tRDCCz|D)c#kF6)S1X(BSIu(B z);_v=ZNORC@}vKXRpS;KJBmduZb;w8d_eEbH-UwFW77WdU0+;iS9!xXXx2;NF3rm1 zt(yw!)o*A_;QF?G^P$%XCj-8U#W&89%v$~EH$y~x(*6hO9BJXV3_6d^s!?5adMlSs z=F9UNFR}D#sH~c}KlZ@AW$N<Y*1-$w#ZSH2AkWukAJune%c<J*4U6Brb-({`@ye_E zk(oC)H7#%bIz`vIaDQQaaW|95i^umJv(30XZh5e1FVo>k=x4}dw7AIK#cye(SL&O= ze(h`D!#-~N+uv(ubL6ag8>llkvw?HV;!TA+-__Lr<ul2A;y>+U`Kw(ECi9lD*!M5u zQaijNprobNQ%zw;&h*b*adXm6@BDmgHrw500%>Oo=l@RNJ7U##`%9@}Lm>Y~`9*6N zl}oQJzmk%;oA*}e>dYtcKBY;E*1gz~y(GIm{`4-%<U{LTvb+9X%wsLG;85Sbhy=6R zTybq@L&Gf`I<;aqc;`Ns`_A~cPwoNJOumC*%_kDQa~sUQ`6l0<75?XX#U4+I5Z1mQ zwhex^$p%@h7t%FeNeWlEJYPTCRx2!FyL@WO!K?Fig)7DH@fbJ$ZsU#)H)oj3&E>H1 z2k#n=eT!l>8J_j}n~HJ%wunBze);DrHimh(R)<VJRK5O<rm^#)Ge@MqtWXX4H1W%V zaB;UyOOh|nNpJbf^WyN0k{-vEOe|;Ea-|tdLtLyI8TjqGLyoIvBu`^Xa&6hKdieUA z-{p@(m*^VgPU8Ej;%;$bcKW6i=V%7eGi+9As;?J1E?6V<k<UTp7o%y_T87rS2fQ+t z1gt#1WAhcUD}M3kTT50stx9SC5wgb9`NL(`v)$P)`{nK}i|*@jZgFDvXSw0_HPmBG z({8=M<M(c)r+$=NtaSU+&XX$+N4{$_)a9DwW%VIw`NR+nNxxkk`xjg^s5<=m+0KiV z(^EhD{P?p~UPxup<<wBi%zU4sKc5#F-O|-6SeO@o(>cEC*Sa+Vk}qd^$#Ci^OxIuW zEOFw`ITdG9ZGuynWqNPSF!}WEgLZFSaDqs+bnij+cPYXtz8r6M9aH-Bvn*`a<fNNs z=NCkD{rTE@(C47B*_%kMr%&!3x10Ub#xs#m@WQD-<w~d1A3dGOw9feE*1k0PUZFDy zSKJO|t|^+T7}K`&$yb%w4Nr<su=;d8Jm=QGY84-c)Q6KS4iQV|UqAAC!}p7QzqcCo z)}{Z^(=rUa7<@lF|IPoWpHn^=A4|~`Xj*HuX_im5!a4ruw~kMexu)`WPhNL2%a`4U zf4$!vKR=w$^48jkhvpsf=BS!m^>1bPzx=#6&&u-ce{=s|x3}V>kyfI8%;f*64}W#$ zUNo0kR&y+ErONr33W3-U)7`FqGyKPYU?Hy~f8JiP#+}Vhm!opOo!Wo<`tRT0v!DKd zzrOz7T87g%?f(DSy<*C231yEj8>jVire&^QxPMMhPuNcJo6%?gg?pzKcI;hvv^8hx zhsb`$A5S^fuhEeDZrV8e)Lxwl<<|T3&z+n3kNxC4^(}E5zn}W|L^z4-e1Z1OX(A@y zJ5u&u)j4#FL2?=A^VI#1B|P$-XR};zSfF!^i;Y8pmu3B<`w!*1m}+~UJZA1m*UW7* zzP4z>COL-_ir1JE?xwOTY?vRb&Gc4OU3+KwR{M<GED1~b88tX|?|YIaFjsC}ki)Nz zP2Nn)BCbz6X_XUY@czUx&-e!kC88-Bx9qyvmm2I`dLn`2rc|=n4U@p9#Xjk8w(}MI zbl18x*X+dApN=b^%?JpMROZ~vGNGr8=a<9k$2Fo1eK+RU{WCQR`{=$|W@WhMx6BM) z&Wk%XEzdiWr0S^MV70XC?2+Hkjf-SE1uU|sZ`t{=`ctfIlwH!AqrW~`#q?aMzvk%N z|NfET71feyo3^U;X(#VLH?Q*2o8T?m-{fZSE2QNpHeJuK=3^{VczOHdUe&%ko^RC@ z?x;qc_<P*tTEv`}YxI;4ivBo#?cx<7!^soY`Ri~+?VmA~_fSFX8cye$Y00A6?$23; znVt(hUd_H)C^Yp(z2VIz%Y&CSe`P6-*u$}R#k7x}A~_sFP60D>wi>1Lbf@3_vGUSy z$5v|zhmYT;zQ24d@b#wEB279;`%B(r_WnG*Qa<h24W?>wDWBLvr}t)6uMXB_1*&BA z^iS*gDPhu=e&BC2(=D5GOv$`IBr<&s`*OD&o%<{Bq44fbUZY2fM{Bt2w=bRB^`qL6 zyKRQ(QXl2-8miVV^W*)WgLXG>3|BbNxI|GheChMW_w<!^{$Oo>?7PcC#=7ds&%Z`Z z6`D253%}L$h%U98ttIC4M#b#X%nJtuzm*so?NC#fFY*1d+iY>c{Fo(+_ws6#hsIal zw<xxXQ;zBhDe1V{(#%&aEY9oH!d}@pLs+z|UGk8!i`;bM>sRj2eq<GUaPcbMRRu;L zHpx!?;Oe6~*D!Ns?~7gE^K54w`C%leFU))>RoH>M)=v1q&EvmC15;*ph_TJ#UTsy7 zvaupY>B~7rg@a4j8;so&+BNn$&Xp{=aP*4P1lzZ<34D<PE*-`<7d_0k+qS&%6yMeC z&AI>ezqviVcW86Z_q9A~+{cPs=P%vf9<u2EMn8wAn{^jxIv5E5F#e`<Lrv)H%{3jI zd&5@<{9fC4-gnkcL6ZQ7HTTswvvl1~uQRzV&GWsLp{sK{gYl&lZ^5V0Tk;xBB9@7` z8GqxLmg_n<*Kk&>tbW+dxk48G3G$)SK3bbrg+IK)n(%<>>p|%Rh3GD;^O-keHs{9W zelAyCr^`6a<<n`gr{a&3nQs_8IB@Ihidl2df1c$K-BYqU^!j0!%Pi~8{CVM}FiFAr z;T8UEragt-TyAGo1gs>a@91yotb5zf&tFzsoO=B5uO;%D8aHlMOV`U+n>Z|A@n`pg z`zhPakDLB%e=vV@!M!6Z?BA|WTb%0cHod?3y!^)BD<(avUsdt2l5xXTi&Oh<W@o%S zn6dJI<KFt*O*-D|4m*6Web?)r78Yu6pupL1mu0oof<UunlD#Qr%h-Rh3QRhC{Aazf znz5&Rnwy*SL6arDE_)P(m{cbTU1)HakYN8Iqa?I6G(64i$lmX7);`{M?NjZdugoIy zkC?8`lq`I2`}|FN{`aS+r&mv7)YWbJAHI|A-949Q|F>^{zWe;XCmjElW*ani?%Z}{ z4TrVh!D&VrbDHm@U!M_vdu{qo?n<#E&(A%TaI#J~TiSh}a|a7Ys?OGv{rL_LZmr}G zkjzV&IxXa8nbqMPX(|7c&$<}QcksM)Tetcy|E>E1j6FV)8_Ja?#Ba_wfAh=mV6*CJ z(?{p`up1dyiJxG2UL7eQlb&Y78tyOgU1kAyYY_YO8K)L~`F`6fdIQg#(+dLsFUrk! zFIHUE|Lsmtwr%6{oZ|BIMep=ZTi@Wn{r-2=_S^Rb{A8}|>o8v0x*$2;P%So<`9;g* z^MQ9Ot!j8#ZCQ)TjP`91pY2(mzE-qvs;hls=<z1`Y{NNbkJXq1H8#l`x>ZidnQzIw z<Zxc%2P>DW&+X!S8-?un&F-Fh|FH7hXN}yVZJE106O6sg);N^0y>NE8&zgN_rK-ch zT{@+&zD#B@yHK|yyN~Dbvy?|G&n#WMhUsl???Hk0+L>2UuDjgyT(LY}@9BNZ>)qjH z-y*X4^#9&|@O(+^f{3MwHnR>?%=$m^>sR&Sz^#w#lsq<H?q`(ylDO*Z1BS^<Zv_M$ zU(E7{#phV$Z=q^y$0?H;Yn$aGIs5m_W6tq6{Z)PL=YyRd0cyt|o=EPi)|nY`C;qCU z+pdVY+rBgUNNwBm<#3r;%n`1mpTmE$I9i_3XH}Mb!^E)nQThY!MRET!w6-_q9~Y9m zb<NSOQCLL7SNK=)24}Y1Np5bwH#Tla=U@Nwa^f1V({2*eO=s(zU~UYaYr6N?u{MUE zf4zNnUH#^BN=EEgTY{HtCik8iOaI=+ys2vp*ZEH0+Mu!6dw<IswkyB5WeT0UuX6v> znRx&C_25d=>N?w%;yIsM-(1h@7f54GKUa5zb!9BaC&K_Q^`83k{fAC?`Ka9AZcyE{ zDDCn?rbcUT<q)sMl@rR@LfBM-4zjGg*6bcAzec>jeq;DYE03?&7{j}M<d$>vO8z){ zSKsmP9cGp#UVT$nY&pQRHzIjDC&#s${He<yI`o`66zfwOs(Hpdq$a^6WqMJayW*WB zJqg*H!m=+V#8cHOCHPmIXbMd<bKU1MyXCP?pn38(%jTD-W|_*wyo}H-kvdtHu)!`{ za%I`<EhiQ;?lrUO;oi&0doAfyP{NHz0S^y8Y@YeQ&-BFk3eD3+Tdet(Ey;Rjl<;Eh z`{#`eu?LLjznJj7qqI0d!G=FR`;~3~*QlErdLIq1{rq0p^RRYqNJz3n%xb1~lN;;o z{-2${F#X2^iDUjt6?EG_WjLE8tXn*DLg?DH(VS8@uc!!=N>5aI`Jv>}>6`g7@v;2P zz1gaF1z+!5H~riN9=@fShSyte#yKb6;<5d8sPJiB@=wQ$27-HM2wMmUr*g4&`5t(1 zaKhH0aL%hgc&+?}q?~4N^Pa}I;%?O0`Dc3`h<wP7k)M87VoOwVa=Peqn}CS3tX>Iw zf6Q>ac9=QmK;r2KvcZyfB{(i{hHcYxxoGzL^Hl!2V|nrWHif_6m%aZ_{qNK*ziuD< z`?&w&t9&E(n8Tf4r)+&8u(2g*zu=K0^#L2-d)m8CZ?(IB{p#67UwMoB)@;{bJ?r~w z%KG2#f9v;8mU8dHeyi{QSY1}NyZ6A|4ex8e|7LYc{k={q-7YyW_N>oRC+pk%0f)-V zI2u=nuH7(GA>n>%=c&&7shhGNswST;yRP27YEy^}_otmZr|sHxv*DCnwp!EY6Zg`+ z4`jR)f7CE@4vV$k0aXScMw7^IS^ei_*7q&g$(Q=8luytj`om0-*Gbu7DYjD+O($<_ z?^FypmJxJd>RR_{Z(Zao9QGg3z0POC!Sdjhk7I#R+nX<w95=7{GDCja>W;6MzweZ0 z-LQdO_uS$(g>6r7Fy6Uv{)5fpb8%N*EXoc4x98)Y&5n$lC(iV~>9}E0-<uf@!p~Rj z7Te+4VEDe1;q`>F{&Rav)2+A0NFA@))V-l?-K%*9@4lNgAJ(4tkX^;EXyUz_DNZY= z{cC(Y=h^|cZ%dzBojK<&aam2#Bi=%8nlAt5?);RGOGPhQA78OXUq0!^87BV*_ScW* zq^4)TaySv+{ku0i{`oIYt=hAu-(Sy2Unp)+^~@&k;H`&p&mCq3scK35;QPtl&unnx zqO^8G0OQ*PciAl81bGgFKZabt0}uRReY53KJ|nkdqw2A5jr*MLuZ_Nyvz0aV+P)j= zHv9?P>wFe0jEdx&=IP{O^p1J1yMdnev0#Od3_px~mCj#cYjZZd5X10o=3*x|Da}78 z*-DKT-AX*SH$KDNbe{f(X*=f|6$&dg9h5nFZRa!vhGWl9Eqm5=Q$$4W^Y4>Ut6X|- zEUTQ{oV@Kym9cF<<D7zNro7W<Xfno4ZM?E|rRCKle=Zn*WqNnnKW4$tr%BT!9Jn?} zvc}k`>|Xk3;q&X0t89%K=H1d3d||3-`ejOFH{0V|q0HO4^Mro-w?7S;Z<zYw@%o(D zWxs;X&s)BR-KS+PM`hB9#A1mXrzcouYaL#AVvY5gM{B;iWZUQD2Q`Q;F}L{S8F+ib z{e4Y#ZT|9|2Df=?L@cHYTgg_m>QzQ=vz1)K?D{NnrcT%XCCoL3ff7r<t*+a@`P<B| z6WNsia+LhssKBMrcJmGAnKGBYvi5Ul9*dlk`h1?}+qy!B=jnL{Vsn|CCvJ_XxDetk zZk~RP@qFDP{u6R9lG`^u=bd;mF-v*z0XGd@{@rZXI5ZX{m%otYTb1LPUUKQtF~xOL zp31*bj&|zlc^p`+ZzZ!y;^2}WPbQm}#C1y8JFTibt7mnSN9&QoPW#xdQ~jxX?HAnD za`+~z5YVW7{7yOFxfzjprPn<YbTm~@wdoz%8`6K8LH+x^L%a5zlxa8+vUu{&YmVBY z_Z<zjwnWFAU9wE(`ubJOYb}{vldU`he8X0<8<n_TeJ&^4zt4?NOQvO^PNU+9FPmgf zg`BNjP+hPtD)j~%vx`N;j$;bihgV*2Sf3SP+#I<v_wEC!v+v%?y?HyE{o2y?C9foG zCPa10Z^*kmAyeXx{tkoJ%F^$0H(WX7a?$7b_mpOn=RDV5C>;IHV*77`PeNeG^qv1c zSFSTRF51Tb@7we@&&p2!*}rRJ{I93FpZ|X{+k8sC_Rq<0&sPY_|MvNQ;k;G0;_S0g zsVV2&*8V(sXo8<ajO_|7Z)Vl!E7pI#TgX@QZtr)ajOrcxZ~Xr;yMD`2$M`#T-)8<j zI=}w>g{a<C&!zp379=$DCEXE`$ZkAR5@*XC&J@CS_1BujwGDTDW1~{m?{$d!y1bvA zE6^d6PbT}X=#Qz%b*{qQ3nG+)D#J{sCGd85xGK!oX=v+HPH=KgU&89KDPhg$D;@UI z4U@xilvWfj-nM(Wz#BOU5e5c<kB4m2BHClutUo%X_t?Eefd>-DeX7=FY?Us_=v?J` z=Ksm%<!jE$OP2V$bu-;!KF2Ws7DsbP)s^J@>)aFfi3Ia*J1sriY0<`tr2KmV9#h{6 z{#cO^e=~F5R2#l6&oj9gZnYZ3+clrtIq~-<$y1M%I4@kjxPM!a`uW$gj>qMB=Eb}f z+<R?%i*sq&B9V!XuMTYeG-r$9`E|eMOcGqvYQEu3*Ve?tSH3!mg)(JkT~>F9(fv9{ z@{W*a$-JGF|NY$9jaS^>`tIG$R*mnEr)nzqU*gYt`Q&Ed!_5cWj$e)2-?#UO*{&qB z%=l$D7DiqEcxUPT)O8PH9y^?!)A#wf{+u&;W{jyu2V%C(&%NJMJm<N%!xXL~#Wwy= zA4hc6xJ{@z@Kd6?(y>fF`k&I{qtj=svOe3kMOl6FiaR;RRk;jYSG+EK_#D{2SM>Ly z#&z?YrrPa}JCJWZ(?y&;THe~)edWJ6-HP6ZDNM;f&ed$=$(g>T(d{jB_#%y4>{1e3 z3;qa8to<yO&9z-Fxh7?soO@!4v(xjX5_(hiw%SJM&pBW6Y2opU!V=Fo@4U1(F*K=I zcctNf#j|+z?dKNk-2TvhUiRh3HVcyWziliyJZJNtil%Kz8Uh{>JL4~Xo0}-yexSO9 zzwzeHH<yG|ne5L6RMh=_{}((~mF=z?J1sir(d@GZv3?nrA&=|~{yA9kr^pEQo~`;6 z*JroFv;B;P>7^;^R_mf_a{g>vY!M!CfSK#2JjW)UCZ^^qXH5(jpIy-2sQ731#A6Hc zk3IVO`gaOPLzeo)sc%2e)Z2IF!4mrr1%Y#?gtqMbam_{OyoudfzE>vS_Fm*T9dKwz z*lycowS}i-Lq40HO3YMEQHuJ|$u6U@%;LbIAFmyvJ(#B$+&&so{DNy*&6{Jhif5Q6 zrn6}Fm8GuyI6-$2-=6w=#~T99<`^%Qie{7bZ8$rzy;lA140fyNlB>Ux+~n8Zn>LG? zrRGeP>oMoIizm%JuwdP$hqZOz_o?LxJUCg@YW!DR>$e{F@wkI=%cmWl=%-o#?$}4E zKifBTul;uH2J0uTf5H~Uww=Yii@ypzlYZ>Fg5lrN8`?krxBt9(aqTa^?oL6|X-m|q zdez<g{aX2Z`8Vt9-AXsMs8d{4d@v%e%5t%5>RP)CMPX;s0uJmfVqy90sTMG`ezlan zVO*J$>oYUf|4(*gAJ=2~e&&hClY95p&7I5NZ6)U~!zcOezz5EfhmRBdcO2l_q@_1~ z^I54nwsY1|i(YKpv8O3+i$E_QQ&#qj?+4_rUR~C=l=DPPYsBTldAZ5+qxUy`t~>wc zfgg|OQoFTxZ~w0UeLDI>eeU{uJGbWl`($n|@E|pdW5Kiekqg`#S_<Po@BGBhVO7Oc z<Gr`O;9;m<@M)vmc~{m(mV39kmHB!wd`_7E`_As@wCat!x2OM>ulxM{ZTh|6+uywZ z!#;m|{LlLT54ZLIn;!LDZ!gbQi?fNZ!<L%dwpjf48l#!*+rS&ktJkom-B@y-an;+> zw30PjJYUR6uaY*s6?xn4hFHKEKE~Fkc^C3{oBID$o;&#KS{T!IPMz)3m;9IC{-Az# z@U{2pYc6}bf3;*6Snm8xzhQF0F6STmak{Lr+rO4X7-^^SoVaMou<GZEi>_gUW_^b? zzM0M^W$5*WLE&Bj@12`fX#xv%wru=&>)@}Bcczjnj-54Qttzx-d;jW85D)j-`)}*? z^Eambu07i=vS0BZ`_+mKUIGU?t73kMY*Dv59JnggRQ=o}-5B8oCT}`xI2yTjMlv4D zIXJsPsOG+NnaRhGLa(*up8EtGy*bH{S!&K!iTm8=x(;rg{k?kD@#x*5H6GEjizdIx zoc}<iX@cBbokyD+KdjWzpI^x~<Fky-tQOXf9vi$j9^bTP!cyi4bMrldTROk$G)DU7 zxUqDeGoGp7aBbH1$nS6CQrrEk_I7Kn`+P2QwRF~l;tx`cne!Sqgf>^Xr@t|Gc8l`S zV_5a6*2dduL-_P7I*m7NFFkv^CFYahA+b9j&REXan9V6`*)z9AuXz5Q*%I}iYo2{} zEvq@;-|$|tOoHpPMf<V~S`A#+esaGz2>5h-MnVEpMXwGcQ?OpGL{pI$L&dFE#kX`{ zc6sbin&$YFd1+t67Q;o(Os6s{-my6w)xJ`GJNta@u6Hbsk7axs_hk3Iv^@Uw-@{Ff z_rK3czr%cPRmQ(BeW}}5eaU`bv@iPI;Twx}DhnB8m;ODXAeZgAv?A%M-j~pleIH9o z%Wh_VkY%rbR_Q1AV!C6>)wVwhjeork1==gf|GO8kXpN%CtP`INudA>eDgGCBbKCRl z!Bw{BPXt%D2Jha$UNo<r+suF7UEP;`JxA8=ac>Ur3p{m+UA6UW595B9cMJBt-?#eV z<izE{J<ehw>kPlOF|2cJYd!3lnC6yvq0sb}Woqo#=2rIUMibLo4=|tkz~%fo?9p$l zChx1ioBJxB>^#FD|AnKbhjGECZEjm4-LgK&soQ!nD&*g9tO|R(q0=tEU{g=BU;EA2 zDdCGQ^1NeAIWxVgw!5xBdtKNSE2V#nSLeU}BYPw<Vv|DhnqO<Pf|oS#P1#YkU=Qai zx!Loc-;!H-)M|5d^CBxx*UzzwCY<BuFSnU)#I?F})2g4B|1WhG$Z0$mwddIDjiq;1 ztT8kdjCs&&ctQE>T!-TqN+nP5-SauRn(Ntdm))+V$Eyy^XqaXDvhC>&gWC<J8o!nr zO$jgYF_cSwbFFEyPs#?-P)^xY-4$M*A~QC{*@#~FxI2<5`DsU(SbS17E8hgE(^X-; z%%`$<sGt2=*_ZfMy>9tTP3vWbp#f1|&z|P?bKO%<Sn*!*!;2Jo&Bqx!_Lrm-o*E~M zTx}}e&+z8Ky|q;Z7Jetrb#3B`($eTWQ{{CdyFhMdTeOuo|FT^<CEqN3s+Uw=7rAt? z$CAhE?{E1(J$Lu)xYzVg{M*@#uirnZvi=YF+<)Hx;eMl|TKR@4Lfu(53K~{30*}>f zP1?iLtJ@edMS!PI)~GJoA^Pdw?|E-G+&o~OfA2>9_t*RPHZt7Z_hqU6t=;vnQ|!M6 zzt4NWbKA=O3SMT6D;XbTZOfi~xNkwZK*phe@>}}^HW=L~+4l6(jEzr}8?X0R^s9BP zY-r!KeVK#%foC^-9sbNdn9#>wb*G%oNB5TduJj4>k{VWC<JT&i!q{<WzfP~n|5nLb zCU$P4{~vd^=I;D(uT|t{t9#_C8y7sE?Mj)TG@EDF>%E;-vvUJtw<T>|Db{Z+<EZ$x z*eBumDV|mH%#TSmPTA}#_w24=UZj~2!vWdrCP%M5JD8@W-}ydI#I9uOTGJ_#D%|TH z+W$FodSCYa_6v(#s^)tA>)oaJ<EKvR?6;qG%rDN0PCFo7nkyu+>iuiAjhh4Ce&p!T zUzEumq5PRk{Fd!&MP?5JhHt;+->`91&9mV5s97Px=hz>?lC)3oj)w14(etm9Z*}~5 z(zNr$0n2G89v(Qr^Ly1*i}kxr&wZYm)bew;nstep#?JUGd#wY@i%ss&epHt-J++~_ zb=!tzmJw?s(nJqrE?)H9`px~`mAUsGlp4<eBE9QIZ?CiQkGbsg!mEG#$4;u*vLVv_ z-0~YmLGSK=dzl!~xSMJ3rR}-PZk1jA5^ZR>(swC~Z|eTT|93Ct-=V-DpPU}N<n5<v zX5ZV2KOE|^JTZwQ=gK+L<JabiYzTI<X<cr;e|PuENt%B*y^K-%5dPVk{rqA_X@B_> zAwuP9*<X*Xo3=kOJpBFbhaav7uo+y?JyLeyhrsWQo#+0)2)KQ(^nh)FZK!3#XS<%0 zW}7+nR_Wf~_=e}&WyR~0cBS%WF@)UqzV$uuS8TZ1X?Fgn`YG12zf@<O@ZPv_9%uyp z3`0edzD3(+v&;Rr=RcpB+I-lvdHZ7C$1+N~<pMk(uC97_?|0A1nLGJf@0NV|#dF4c zVYx!{l`DtbzPw>ne)hOf?P5s0i|7-*WWnS8${vg><Fz)ty2_(|Lv_aD16P(QPjIxa z=3_o`;Caam$E~v@xxXE3U1&P{k#1h-=2s#;CvPu5Fn29$%7eNyUC-h#7OY-yvdw{^ zbNa^p<$N7{d93yl?EV66sT^*z)~~4v(DeK|{ql=7tg@mnFD0ITAND_iWxZzH<p(7z zt|~hSY_GN5|0`O#Vv3S|<BZ0_^U<fi%RV$%n*8CK${Cg{nFCw_&uZ2k-Kec!_;2>b zs-V|GYaG|=WSnBMs3@4S__+MU&PRV1UK4Cm-F!-J#!ZnV<ISfU_$F8IHqEiq7w}Gh zaeG7kg1&POQ&()`&bVdS@~b>eS822Rw?j*A%O40!oVN2;-Ao6zl&%Yb%{jCG{IA}8 zDdxamD`uvYc@wwJzY@edO>~Aq_Rpx+xvQ?q>+r6+m1KOoocF-3g`YQ7-^(($D6##k zUe@_da*mZv_ba~dkJXM(;ajiK$@iT9u24@h+jFs`nIg|me?4?NnJu^Ly5;q>8n-uM zO`<#9^grLK;Y)wLii5-c$0>G!Kh;0i{k>HGDYW|IC)aDQ>wa8Zo^pl5=F+T>Rcc%2 zAMQ;INmmQMzUr6frX07%^)vi6?X&wB<-Vw#b9rX}?&I6p)xY1y|Cg=4(Nuri=yv`8 z{eN_Szr6pG^Y`QTe>!7@G8mqguAe`VA&hfY?3yDctj9JSSt=eH{YL!E)JK934!7Tx zJYu@GxRK$R0{4r+I>+4bZc&A4JdA41C+<8jom<Ve_4S1oPo}^dzkE(LH_da3N(w3T zPn&&9=Gxu30*mD<Yy24U%i<2)6nM-X^|ez?CR^+MhSP#^&x(y-wEA(}&Re>+<D;9y zG_$<Z3T7+UKfi1k9sVeWgR5xOt2HiSmsZJ~mR!(N^hYqnal@IN$Gu~USFBlkn9IVy zZ=vy=+xq{OD_7`h)o)9;PS9bK6o@&kadLsLsrH5g74NRkJGJI@bo1VBam_oHEO%9e zZfq;oSG-pv7qnb*kMd^QinJFzbp{)*vpF<pEOhtUR=%xT+WP;(0|6ViaacXCvwgnD zQKs<j%_TSg31(~DklP;dOyp6|cC$@ucKuPFdp<8l+kFl{(`WWm%xVq-wh!L#G=KD8 zy_x^<l4=7r_76I#;>A8w4weVsoU&1c@qD=n=dMVD3?CV-v_(719gddw@kfeQ3hO*9 zn47CJx!eBu+bxQmK{1!tZCGBDb0gvHdX1@-S0XdMNU>*{FVVm1&+6n;AoFj+$2IKM zPpldbefha-di?}d?pV8&j?7~Rj!C?@xqGUDN$v84H4Z<{^VqFP)K7Kj`?N_*G}Su% zPK?1Kzhyys8(1G#z0f<TRIeRqe{SKXpNvWO_Wd|;@BhyE8|{Cj|F775-+P+C()V}E zJ5}?prSyp1ShsWj<A_~6RsJ`BDxd$q^S^IwJj;eBiz0k<m%NlbBXGF%QR$^W(Tsh5 zj<1qdE_r`sYt(a|gH7P^BxVNxH>@r*c^VcN#FaJL89Q2RVSn5y`9}1vPVFUAUPXc2 zi@p<op3B<%)QbP7%F_1}ek2-8FZGfBV=Wi-lmE*5T}@2lvJ<z@%!pr|AfImj>Z{b; zhf}}owpp{Xrbm0;+3z=dYp%TAyPC;S#zo6?!sICn%eFne`Oa3h*_bIfb)U=j)e1fB zI^OasFRu4(pDj4;z)hYtljhxj@4NP)7PIDIdzD?qtm!73TrYn9{)w%T%lK(>z5Sme zp7Wi_rLMNDmuzm^6vQxeD(}!bXe(#rYWtPBSy}1a?}KM<)nC-pm0dB*-)}*9uIfzo zGZ7EJv&(fQzW-S3RwyH56(R5NWnmFtEz9A}C0njHt~)a8wdYK~vq$3!>(XWxyr^9G zE-&u&y3h++47VzM-|{k87G2rH6ltJvK<D7X+b@?-ZVX<OCY*CRJo(sZj(r*eawV&F z$_q$jyxYNZ>SBqoL~x1iwQaLbK6KDkem3jv_BDnM5icHd?RfQPUTe0?<M!<DRr-8S zPj&=ycFQo@>N)aS-Iq9ia>I-Sw(DKLEP_u~zni%6H~(+erKUCWIUj7u3JFY3S#r*b zbxF;)>C-&Kr*$#dmHoRgOK__B{Hfn(+>%~iWykVAe$(yQ(bZpH9ozSFevNYTe~ri= z8QlM_uY16L&~drni4B}hQ8z7SpI`iS!vE5Bxqb0h)44bTF4QMB^j1b~`}_4L&%f!q zKmMPo`+dDm{lCrK_20znzrAexS$q56o3B&X&c0mvl0QZIM&6yryB6Ilo?oCV{y6Kv z&b(!lG<L8iSvB-NU}Na|Jn!{$j^+M${Z23(o__p1Ly(uqn~VQWZY_H7e(Qc#IYWzc zPj0KO7hRUj`5|%V6RQ_XUZ)G#7sTKEnf%~R<ez|<yXPJ1T-zdYbVlSfPPPLlic{EL zrB6M0ex~2-K0}77VT?yqSANKTm-@2!M4@|c`7~$VId224Ca0!Vrr&-)tzGBs>f-7* zw|j%6m0kZHm~bF+=iQ6H+O8j-Id6BYk6N@Z&;Cs}Gbde(EqKNHLTQ?MM_l!k2eEn+ zIay5YXRw6FG9I(|uqH7w=Elm@-Sb7iH;Ef<J<4ay!ZVjKb;^Ovv%VkA7}yp{<%e>) zC0>j1I-|qxYm=OGt@8P;q=3~57UvCFZ!ned{jBxeX?`<ytKgF;)zun*J7r_<bAFrh zV~u}=*nLyU>1N;FK0Wu0N942R<XN@p!NzV4SM+wgo*K1)&1KHwjoaV(to?XupV$JC z`Jp#Oyc9OIghZD7bkMU-TsBF#VP*uoSHXk%h4=EWpEVMhx@JX)+dhtCta?wkZTr3S zfcZwH0>fJkHpzDvtl#|X21A16=ZO{Je$w-91=eo8IcwtcxI3381lfO6{$n$(JCR|n zmA<RnUTIrf^S~z;B_Ah*9P#?*+xaQ-`Cj9dMjUFA-)C;geG#9aA9r|p*GB0tii>Yw zF|*@eZvO4~{a@zMe6JO~Q#Tc}zU}>!+fdK%QSwt`HbeBe-&%jUSnq5(qPk}H?8_;q z?liPM@Hn8b;`k4q%pW`cSd}q;OiVIbDDz>`>l%^GP0w2`pSwBTj<7z=nq<3w-l^A; z3>8`HIh>?;!&f<5w>-2u+PZ4rWuCub(%HKn>{)(r>iqN-_VYsCHty2l7k%?xCnNCr zzpC4>=SyT1YxgYI-hN_@9KWsQ#HmYfvrgN${QvQM4UsAHKh2bUFETfK)lqNvpbmQ` z*?{0oo0kcP6`5xQW_@J)D5hR(leNvLdunN<!7jInauLB-v)?u_IzKx$^KEDI@{OWr zG8TDmtXXJO!8OI>wfABD?fs3n&9-sLX$QytVsI+x|7yK(`ApURFh8!e$CWd0o_M%w z6SMKv+O!AR1qWPr^4?nWo-d_Ad6qFt`iW)lm~zrmAB4E9mfIHAegCqf>x9cc--Mr; z@tdc_nt!>BT-rSL<COtZjQ-!8d9(Ako%Aj1i-nS(FU;^hGgH;!!Yk1Ul5=&^#rC~t zdbD+!RC~~!pHZ*NF6?gbdfS@N$<Xw5BlDTcXDy05Zd`x8d~%0#aFsw&Y+CQ*6^3&n zS<dY>im|%$S~4WxvwhAR*_3q?&%TOD@8y%3<6={v`YtD;H0Z=_^%W_L_111R^r_vx zmg%1suZMdt;~@j9O{WZ;Onh!O-ZWc%a|!3AliwDf?a^=MXf9CQmwhE5nP=TgmwUI@ zoL^ddrlBq5wc@p7R&%FFS)Vn2f16K|W#9jU=ksR%*RKA#D)-=j{nWGnXKnc}e>3&1 zJzI@{g<ylxl%K7(4Gr?lI<E>8Ht*ZeGV9>K3)^>wZlAcYi09Q-o$zlz&)4hSzIAu+ z-!pZu!|Q8*f7aXoyddUH`o1r$tKTW#{!v=Jwf1~<Sk25jP4@b0&!w)PZC<GI_{90$ zVvbDf{%~(9<M9aCe7cCyh--tZ!^XY@TV_l41MG^c<KD}DE_qOH#Voo_YHJvS=Pifl zmX{nDxL5t#WS~%Vb#*fDk$r9x`b)*@%_b*vxm!6jo-0<_{eok6rxCNTY2C`dkCxgd zJ$oacmr}^s;65{U(}Ek~aaUrlhKV1w^AcpLiI2Pa@z>|F%HNsmZnuB_ZpfZlevw@^ zUGV(pg$p>$YOm~Emk@b|ZQF(~$&Ion9(?8z=a{wntHE38X89Y@vl!-m)SQ!X>8`@+ z1-karu5P~j&pIt^b0tTbT}0!Zqilk|UB8Q!3p-xSe#g?~x-7QSw4&MY{g(ZjcXm!H zG~2OG@Je%T#d+iQH(N!@lxy$Kd489<=~keh(A(x)M`n8Zh%f4mP)~Sl+>q+~Phj;i z&4vsShMui=R9J4@Jbd>-`kUsjr*h)ozq?q;yIIpB$LzMGRkL1)uHS+yLHk+vDV?9i z5+3(to``Any!lM8#h8N=BRcmy+n?UV^iP&G$5mB)a^CTbhWiV`j^3_lQ)}DwjqBCp zNKfPG=Qs*Z=KjC+cG{ZzVRxP$3EP<Hf3GNqwWs8U-rC<uCP(E`R=TQsCOmd)v{esw zcqMY~+u`n*@V)hIPdEHzsuO+i@Sw^w&bF0XtiCPSCE?>e_o2k)+g0n&)lao_;+c7V zo9*YPe`0sL>^`R(I3;&c@jI43mhX-K+~Rg{n5VcorthDR>ZV8KNi{E*e&RGR-c%jD zZZhAu!>5*b-P$Vr{qVcT%XS)Vc7LGq>JMYXPDg&$eQTHPF*5pca9+IsYtSO6o!1vU zX8onS=j)At<0UN3f()xRW$pf9*nZhUdCiSGl6PmcbO?OOUH0?U=Wq2t_y2SMwsiik zt^e=a|6#8Fdo!IwiOq#c`@g@G-kg_Vji&<|rf_Wxarti6{Ix_uNA^Q!0$=eqx2DJH zQj?g}*hE)NU$h`$6NksfqJ@)P{h4iz>TiFTtGQs(`#9|bB~~6gc5GT-xLo`3ddZ&F z#cZ?W8^kK+F{X9TG<aEf;E%Py1KCM(C0F;&Q*hgI$};0};i=z|90D5IOWtr_XGlKJ zvEui$0M)1SxUPixvApBl?7GF2c|v#O)pxVcp5c?7Ap85kivS7HNe|zw3VWZkh(-Ek zTip4FGWM53R!+$&61#lTSleahXFtyvD^90*JK28K{0j_xIpd(%O(ss2&ca8R7fP+V zTAaS1t#X#uiITS5v@F)Riq2Or`~w2jS1e_|o;`Op3v<K;-lm1C4yUVRFFKi7t5f`T z<GygG7QgoWN|XPjX$fkd4qvKVvgeba$6s#gjdxN`uQILD{r(}H!|5mAB!L$xyBT^I zSMFwDK2zB~|6J7@KZCQczl8`#W{3A}sp>Oc9XsWRPORVy<yAY*Z~Uq$VSc(`i`)0t zr!Dqz#jP)%6Hq94|Kp(vOPAfMD!VUGD|-GKpZf0y&GR?UzJ20P`-A(}-yZG0EpqDD zi^t|Gey;Di#gfXkLZg?dNjKTZ``5jPC;#e+IVLCY2_%$EOAho->3JEkucq)!gL%`x z`@gQ<-?Bab{m;_$CWnpXDi5~LVA0rEu9x7%dxrJJzPzJOo1|y$k+yj3+J9fBFzAP% zkN1wVfo4k^EZ)9l`c-07xlLB)E&pOMi{<SNZoQI`nmS7l+?tT*bmq9|H-|Kd^D)iO zXVsst`p4#YYQx9G_{;8gLbut1kKF2;dhmex(GNUpMY?_OsYKn_yxA}1W3t%vwqF^~ zrB0^DX7InhH`CMi?@Z?BUtHSD^UpK5RWzNtxaq_Co2O@gf171(9)G{)_&NUiM7L+6 z40m3iVp#Uf^~OSz#E;LdXPmB>R?PA8lTF#$i+$Aw43AdawNH64Aw6=M*$0_Zg?Tmm zZvIqoy>f+n&!!W0xk+vZ85{yW*DcZAr}98Hsq*^l{D=SQH?)7<y=`9omZM_)J>D#C zLQ`Hx2%qTC-h9p>*F)pHfQeSa1ddtd!i!m+ay5VC+ik-$jdjL!+rz#`_PYQ55iK0@ z{`Z0z)kc$rd9H0Zzu<S1RGO*)PkLsurmQdr(<I*<cK7E?LMqf9Se9L#`1-lx+ihM7 zhy1qkED1a2cVqL^O0lKYF<dF77r#xe(yjLD+T;B+{&9WiZ~ebk?YhU7C@<EpXXO!` zV>)xM?gQ3FvzqDb!k76QcEqL6&P|+Y5aE#QA3bwX_1qs{w(aN3-Mm}5*6>GjqA+8^ znFG-c=VzW#P&;CA?$xY?eryuW-0zv6|4-?gq&Tt4CjH+ZvB&%Js!N%bu5tg}GDm;o zLbV9q2h$Qx&Pcz(^KWNbFi*vS>3d>6-my?kDBf9<@gmJgXoG>Uw&wz_nKNa-GhWYL zm@9jExz{ma{dk5Ohrc+^cysCI>-M)d{h9ZfUN>%$nk(0PF7o*2T|$Bz&&7S1Wmskt zEp^m@{ap1_%WoHV=5I-x7w`WPRBmkyml9d@*y8()NZ!XglRiH`c&8vo`sLyUpG@WE zmF!vZ=$_P(FPqG!?VWtTx-_-^t$H)30Nb=JvRfYqw)scy{}I0}#)$3F%O?fS)fYea zIBM|4-kBf0_3g>|mpDuqgkD%(kleA&%7iJhMc6ib>S=|Q`I&(W^?6dlpJ*EyB;K`k z^(pA!+G}p*_p45SdGZT|a3!t34xOJrK6rLoGUwKX9fvQzeAT(DOUq*JufS(lUwUW# z6A95=5qLl$C6=l9?6SH8H(13M)IVKY(%`Yvjqmm;i}KkeZ<an2_Y=|lncT#u_RDDQ z1C~WyQ!l<gZ!_l+!&!%xl7z1(&K>n~Tw`SHva0xw=i;&p&4M{^HceUgf8pnq8}B(^ z?%1>TLfZ0MzY@w0@01fQ(9pPEq_x0NN`QsuQ#ngx5zi40iI~#`yWBc8cX_HD*9t!O zzWmaUc9z8<QHK2QqKajv&omT2Tf%Oa!Mnpm`^>6$*PGS;UaEVg{;#d}{rY{~4jYYL zv*;~JHdNzi+S-0*_6?SI|D(m2&HH@ca!pm3vC>y@-gTb6ZLD`>pG}x<wdbE*?%9Od zN28XPZFAR=z1ehd>vEpe?}|I-I&V9B!K!P1;Ejnq-G?7$asS(&vt57Pwgvx>?fZB- z{<hKo_1k*>AGQ1U@b=lC!7DqjH59&)VBs^IcO$elxpVKT!dq8o7|#gdKC|jmht#7y z(Jg#IhK#EoS@(xu|0ZAiIGf{*(Z7I7q2E)2n-#M+-#*kZVe9AITV)%U&ykG#+Ts6j z#~Fjyza4&@Oq!e~a{BYGu+yb&LNi4kX1__DyWRTtB4?4a6|w8>*ETGk_*f=eZ<lt- ztwZ~oI4`o-mDQH&eB8A|&ni?w_^xr=jX7s*n)^;pS$$yYflUXb1j?%zn=9Au+px^m z%P~bcmub0XftMQVcdc{bLEEf1SDosxmU;HZ@IK2FXTg6373crGo&Vqd=JEUXw_or7 z<sDp>;}MWEp-wMxQ=3lgFNW#XZ?@-cagCW=Sym8laijQVqWb&4JwMO?Zkv2BqW%8N z%(7Lji?4Jz<?~csxn=%5Xu;mCpY&%vj_H^BobvyN^|zzn|JnY2BwlxD-`C~y^KN{1 zw~=0|Y_LftY06%O9}i9x9qQ|^%=`Q(`Hkl9^uG08e4cOp1m4K)3)(0wcllCc`1v+I zp626%zji2lzuCjC>RWcuuC`6*`2znyv%M_5sgEoDHqKf6`cK&no13{-JQed7W^>)p zJDzKQ=V8ni;pcxF52|f`wzG4^vizKlv$qA@{KqaF?5(pQa@FAm3vsLSKKBg`R<S;w z`Fd^x)9qWSHxvH7>HDlM%lOkhZ?npa6FU`791t>nFBLMytB-rKSl}%Ig@|pQecxMd z{kh0;?TQuCt#hS9_50Hl_%^W2b-FRPQJa;aNupsx<YI1-xE!O;dbfY*mq>;S1gt5% zD|x)K;QhueN3PhJu2Vf|dnUhw@wnX0OMmC&msLxy-@f$oA+4KN88<Zlb$Ip9;r070 z+gk<mDsQavtG75_XK27)sxbd~&GyuHukT#BT|D1k;Ov{EutWD>&t1CksdlHU+lFm5 zZf|3^)n1c~P&)7NjI&|Zg7=?aYwn%L*s%QDr-KeVf`$1r)ZUckDCKHg$X65PZ;zf; zvz5K%n~wjUgbVREicT)C{(Uz7|MG9u`@ggPeskI0>`IAXX>K&zi-OZR>_x{b6OJjC znK20!C|!Q{sUf6c#uLxu>V;=6OjJv%<ao<?`MC|hX#V;Ke^{*c1g|*%FrZ-4d?w$J zPpT^tUoSY#e`k8rwi4w@f{JbjQ~L}9ubexx<9Eo5ch9$r<{T<qzBu)ioVoB+BmM>J zbUFh*1RSgFeV)4EwM@TJlixFkx{yV!d)$~5`NOhSl^T2&Fx{-hc%pv8Rlh5T!}exb zRFt3Cw5Hb1-dNh{M!LWy9}oLY5iV0Ui!3_0QHo(k!=h?d$qTC$0vrOAj_Vl*T<4ge zB5~vStRpuxgbgbsF8|zi@V8VOkNUNUO~IGqLlgE~t9=luu_>dLEs<4Vhp(Yyswd~s z0{+Hdd{!%s=1+Wj>RarR+veeW<(c)L-&)VJ@#dTRYaQlg)baIRs936W{qFt8s)9P( zJx|_Y)Mimrxx~4kYku$Eefw@U{m;*TTr&NsneF$sO-?C-S7x=^8f^WcG~+2t*qqIa zpBvromz3G`@Yd|`u!HN1r+39ZSaj`Nt!-vkZ}rop6~Qb^%L8~4m~<8yUivlV?(7~$ z!wxsgy?LSUXE~@`t1~FE`*G_0jk8}%SN*A1j{dvXW9xr`KhfchStr(gKjp+X`)2B{ zB}+J*l~eepe#`h)mv(J$zo%rcrRT09>l<hKg4!Fu{4mdd_x9PdjPUSwo~Gg$!PN9= zL6QsR+-!A>o@}h1KC#h`u`xCJ{LG0bS&WSK<tB=MXIuLBPYK&MW#&IyUJK69*}(5P zwOs2Iw@Aj0?JG^*Z(VQvBfmHHxlGsZH}3n(toGeh<6rRJOK}YYlhElq|7_;o%(i{k z{lG)rR`qck-v$N-#^(PCXVymWCU`bXZBgSs(RBFR<1+<W%NV?ScJs4OlT5qCw_$OB znz&@SL3WATgxte%PgZ^RYp<xiaqW8i4g3Gi_wUYoFKiwE@08zk>v_wQ#8?6f;$KTP z#S~opRTaKK#!YN3$Ho}Hum;7M-W6iY*BWfObNa9Eu^SOHZ@L*YZst45n(8^1N7`o2 zv8~0v2l<k{9)G{Sa^mNQ%lGHczxQ9|Z-2Cb(W18brI$_yELb3&^ECC=)=iR|IOD!a zG(Kid)-s<Oc4g+NX_Mk+`WZdaI5thSQe>ZVwB;G`1G6QkY<FAj-gqo?J%@nB+vMeZ zZH=h{zb!Uj;yvKJ$?#UAjzC@98x7W55i{D(>37RcpFX?(%THa&x(&s@OQMzM&&s-G zDEghPcY^ZyTZ?<S@=pFSp0;X2Vw=N{TWQ}H2R_a=W1PR~e`T=7*GBmxziPwH75B~0 z&C@+1xY?$8n?9@R%_@`q)ux?~7#*yxM`p2BCGA~i8ee~+c-9*ag^9a23EwOFJxA5y zqUM3@l#a9s|HWP>T=3^O=3;lNv6#tzbG+SSV@=La3~K2tugd%%EW4SqGjZO>prot> zd9MwdG=5|`@2>qWmHzmd@GGA5w{=Z#10NY&@C%kzTV}>Dx!0<^`0ZvN&GRx-dwu1V z@4M_5;%4UL(GFX_a8B8s=%2hY!77DUVj1p7KF!&(v-zaj^O^S12~0m4_&BUxQdZ~O z;N0^(lKH_(P${PVtw^rz#1Z4oYZA`B-0|e#x?3iB`_}AiIansi!&csVB0cBYzIB=6 z@^bfb{@1GWKfk%HOLFzpn>nmpGdnX*Tq{ePpYdkbM)P%xb1yFN@a*Il`@7kg`&q#a zp%qUaN|>A#xZc&g=<FM*DUV!brG9MRD9ZQWrzNEAe4$L2-n^TfhmW`OnWR2d%64h@ zl3aYSYSqERM`q5Ii#x8<be$(iuO!IlX~*Pi?^%?}rl_y9eO+y`Fj%v8`cktqvkP_9 zTVDsHJF>nMdE%_FMtY;=|1-~~JhC(PZf-1BZw+56S7EsN*3a~=WqY?R+PP75o^kh^ zSJt!rwySC=H7@0OBeVC|MI-;2b*yXMrG*YHc5Y%$KlA*Md`gSLgmo5YVrDRJjym?U zboH!Pf0)+aHDzR5ZJTuJ*^($z**dM?hhOsFT9H){`uN$I3zG9aRV~ssFF9JNxm?*J zU0i+>r$E6uE$_vD{iU><8>{lft=7-_Bysb`eIcEy1$~zc7}-qYuf4L{8rODKA^!S| z22M#=)}V=^iA)V)tFOhR++4uFk!|tKoW&;-%73sNlkxlf$GX9?(Oj5;W%UZnEt(Hj zXg8$s=B6I+H(POJUZZt$^R_kLrmp{!yL<26yG{RJ>;B+Bxc|1UMfBUn{c-BNrSYHd zzdX>tsx;NI>+NavG}{mJo?6^DFMF!XA>jBk=UW6%z*40f-XACO+yA*Z%`#4F!E6<Y z_P6B>$y|rNzyH`4_cn5Su4K1jKz~@3=pJR~`(1(;epue$dgb%ad8`i(*Zltzn|4w9 zTG-!pnxFH($}w=b6-Hh8<bGkkV~r8xHC+LQ)cxO$4>G<vUb4HIft^A1l2R#$<smbR zqR)05Vtp(;Mn5tVY>)2W&9td*-CB(X<=5X;XH4IJ*k-Z*ubBtWcm)Wi25p_c>I-}A zp5mYBV)?tzpU$qf{b#V>dd0_^TC15NR=?)``ml^~U0T29p2F{1GiQ90Ysjc)ne?D~ zO2~tIpX|J^was+cUAbci=aQfWe6ce{C7oFh|NJ=h&}3yv>E)ldZ;$={F>RJo#NOwQ z{tbrT%~!mS+$6-K%DiAvvy}4%69LIRPkBo+coJd^ml?QUzf<h@c0wNOv00lIh1)c* z`0cRlR!**4m`B~lV;S#aOO0k)X>3|~Wv#-~{hR?C^Rm`z8phn!KPPlkV)0q0N>>&4 zfA7x!`~B_xzv}wS|8CcRY5%rY{?B7wkH06_gq3!5CvLudnAu)Gw0grb6@i%Ri(l1l zo9Hv)|B=doxBH`4UfbS!T=3|d72-^{tdHv*_xyJ2<KKm61sy7XG}hi_o%}*1Bw@W( zw8)CPlNbeNo1R<0WYYSqyL*H(E>_xAoKL(hzln$GwLn=~$-UP_v)?kh2Yxyna73bo zzqt4KiBhF+64&=FKKdl(_RHsYu4OV8$c39Pn)ANdR&0m0R8#WX=;y!oZ_m<wbNAa_ z`wbP+f9`L+d1dOt|GAg97vC}pasG8DnPtkFUAi213Z>r^8LWtX!pbv2c0$9IlgrY? ztl10X7~(9w%`Vy|O*y}-U=82p@{N&JjQ?}eAIyvQe|GiF&#znJ9{VT@y9wELObs-@ zx+?e#clx)&d7fuJOxyHBFT3~qhv&Bs*4#9@JN>J%b$d}sXQ#pI=e?3b*RF)J^@Qk$ z7d+spD?hco`Rkj-p$ZR6&eT*bRPf$u__|x6+Jq%(ZeN{DnlGQ1l!(lZtDDY$J7gJ` z%HmU-`QVI}cc$6qoV_y3P9-g$T#}l0ne#kz`GuY5zuWP3T{<~A?C`lpsU@1Pmp-3) z$b(5Lhb`Fc;=(1rUf%2c6#P_lYfZLfnWo$7yLVWG3a+wv?3xoaCuO3fck>+qja~0w zZ|38;SLEnAp>$O<&qHP2UwYN+9n71b8J^hW&dz9IeTi2fw})@pE0*q5!@28bIk(ir z==|BaIDK<q^dXt@i?fbR<!D^yT7JsmLfOUr8l}g4<h?i^2=scrw41@1`~23O?n4u& zXaD|p^4J3QeWmLiM4F9PzER^UUwO6r>S4o=-e>O$L|i;sx1n-@lJH)m8x`GWKEFuS z?(#hF_vXnH2XEb!Kf{$%sk^v-g6TD_MvI2p2eXoyGMIfjg`SE`R)3zg{##zjB9`MZ zIj=kol%tY0X8kukW|RMQA5-jw88f$*Znd1k=Vp-1G2y1F@vZour$B?`&3kw3-I)Jp zZ@kym|2O32YribkbqLm7BcU`yJ;2zqwrxTC9#QRD_NL%syB$LA+h2-g>g+7as5iPG z%VKYlXB<)XukP%BhL*&;<yxtaqo(uB`TUywH1Dy5fZ9hp4y5&74HlGPG<*3?Hd{$j zS=LUqZogVa&wY1=cRwQkwO4a&EKmJ(eOKA@YO6Z)oPXC3dPP^RORzut+_Z_6o3W#y zi2pQ;22)E%!rnl3#isui_Y*Cjq_gN9Iq&==FqP|v&A&6}*&pWq_Gywj-I#qMCvC;; zb9$xC9XGsoSEmZ49SzpuxFZ_!^pVZMHnjtFH|KpnTlTIlW4gfJ)Bkt$%ijE{`1``N zTmOSi{L-&H*l8qjAdCOxy)(spsp1JW9*-H4dxO|*^c|Jo$xmryP-#fmAY5Z4eCuw2 zc#w?khUi7Yhth8w&x`n7@8`y#@lt2{$p_(%t4mClz1n9rdx`vn1=B7czcBOscZ-|4 zLE8GcVodwqZkxCMO&o)suVmOptBAhqc|YcO_qx~Z(>3#+AK~}%GCRYCHq+GIK6V$) zZ>j$B<TGG;aPG<shYKxc{R{m+Y<^#V@87xox8MBT|5Z5V_w_ygbKh>U<lSaaDpBO4 zd2d?xvr}BJ{I32q|6F;?Dz{**?$r4aw^|L;GN)~9i(6a5*d+P>sZ<m<Q~9ZOs~KJf z39lYKH{T;xD<1g$v6YT4uPnoBW6ud9MRhXU;<mofo;fq+cj#|RCU)(EiPq<y^C-Hg z_3T;kON&2|Vea~+*B)Q^&v$cW*mLKtd#)IFZt@S)I_8xA-cQG%{(xC$bLm$dQ%{3W zMGt2^O#hZDoxG_oFlo8%f`mHpbG(hyKI}}m%qR0Zuq=1Ui~C<Rmzqvxn07Az*T%?a z3bsr4?5Mdp^?dOmiPPV2XDX>2Fq?Oq!EWnyW9A2)dp|AknHs*$<0P|KiS~*)U60lz ze4er>e&)(s0#9BjM@{U%;JEU^X8Ya0<kcl4X7ALlW>dFkXfn~)=1mDVICMrnc-;qf z2i<U4$+`-SjFlG^wv|i}OJURFh;fvclHB0K=xEM)>*(sqT+fP%d=`bB>EKa3-F*Ev zr?;WAGM5BjQqZ!9&3endle8+%9}G$EXIS=GAZ)k!7wx<sLCh-(7A-in?%3?6wB}Q9 zr#klZ@3;`u{Mq5@H?zFSoQ<!K7vH_Q<H%p#XtNI$Hn)Cm>b;$+n%u<BHB-squc*f= z6{qtz4n9*jtCxNGQ>}WMqrtqri=WB<ef3^R<zZsAYm~8T(<jOGpFhtqV*B0vI_&G3 zK)wr4DoQTAzEb73<wxC02Dbw~oyR9^ow#QD!_d|HjvKhM2Bw)^&irzJN4!MM(|FMb zJS;CxOlj)7W4>HdrZvYgvSIp*RT1nNhNa01F2B99pZm$fhcBh{wbQd!)SY+HkD2f` zNFYH*-0EL$an{CDnkrN4I7<~j*-S6Kw7tjhz=G3RqAB76Cu$!(eUNzP&aw~k-+G&V z8MYfn>ZV<aJW;E0QQO)e_^{BtJM26%EJh)ceMfqy-Q64WBXaYrMFtuCA#6#fOb)y} zWE*>RhQLfCi;lMa<vo`-$!ve{|8!Zg^p^kO3;yo^Y!v#>_(!_;X`x9=?jHS`dH+&a z&=Kzi3U33_k2k*hn8)I<!qg}u-}ip-l_0D6&0Bvj`Jg;QLS}KX<!jBX;|wavsf{W^ z-BQz;@@8*NcKKp;|J%KX6$#s37%_{m_HtE8Sfq*NFH}DNSY`cPh7!gUg$>%)p1(}$ zmLK5kP8W#yV8(nSDtw{$VV)9$Q@1WuJ^djO`j7YeN(W18rVRaxX%SmkZ&qht5IuQS zEP3MV2FZG(OtlLg4+J@Pw60;cSSNa7!`7?~>P=oTPSL!wtVSy`?%4m#NWaDD9%fu8 z&eU1=Y+tUKq)oX^d6IAZ<JEH;?}*Lm<F)vpW1IEmYiNC4?uPgMjXPL+uT9;0WD$qI z;w1*<RV`@@bFAAE-hSJBS~B-E*PK4yD-pqSpE7rMPMz`g(lLd=k9O<j71%fZ%3m9$ zvuy2-qzxNqu;{1nc4j-YQ+!eF$0V(jM!%Q^Wfr?+-})H%%l@N}L^i`I=@onTXjDsl zzViEZ?hDKG%4eNI{ud9r?Vfvk&D6O}9F{&elcLyU-Y5UcIJeO+Eb+LPo6WYA1ebS0 zkA2JfByQYh^toYne)`*e_20|)XW##M`TXtqHP7SIUq()wIm6f?JZ#t0STE^IaS88~ zZ#>Vtcyq=!MHUs~p9ReE+LD~J9!5AXye7|RHJS0|-*(9?--l_7r@gfbzkXY1PV>vc z`HzE}3bRx0#pe_szr@gV_T9yqPv&j?W~6d1`_99j*o*hdY%0#4Ua;&^%7K&L;y=#W zWo&4gJa0F*&3*Q7>dpW7T>d@qo}c+DZ^B2v2Tx8dV$I6$O=dP*@<;8)7ULD)YYX;9 z{PJGAaC3+Gs^6PM5-vSiS?Mg6yYEV1$DysxOQ#$5C#^gpr6#QEZCxx=@y&g@_Cs|y zX|o67hts5IbUsd5^fCGV#y5E-d5Z5&U#b*19CoJraEyDQ{^_fI58VWdf-`$Q?mo}5 zbi@41t53XDl3n}!dT^C3GlTz|rD63!`{&NwH`Q;a#+Axfi@tiNxgL5L*x-HZmDUsf zzH+InU*?{wTCy>y=e)<tIqB&N(;Ro1D}6k7Ad<~=|4pyE<`WCH+8bF(IH)(efB99@ z9^RR4;GD{{;&Z+6>^&C_MoNh3h~9s?R8=X1L!j;b>;0Tw64{?GaRyG<@n(*x&F+@d z53a;WMhO=F(f0Q0da&+kOi<NXtpJBI2L|8yFTN%$yC*Uw@IfzwXVmo!-O`8ewHuD# zIQB!PKm6wUJMYea+n^P}@?sKSir*8-^UG(Mq^WDIc*hlYZrP=dz+(GThU*S91X>=m znR8c7z*%zB@!W0!o|fVt4Gk@hJrmokZv2<-Rkhe>HKnY{OKbKDPpN8#rI|n9HO1&~ z9r=B@Br5bn$mFvPD)rlMB;WhSc-}ni`LjF8dbiYMdlVB|U+d1VF22$JOR4x=EMNaC zpQ(*Ab=McgX31=2FIpd4cqfuQJLy<N+Lj3)-<!oS8otxtG`sL^@RmnLhGEMrf>_g@ zJxvKY@ILIiz*)iM<=G#1&+v3mdlK}$Z?8DtbzdVEwSw}qzkBL^C#qPa%y=L9E14&N zb&{en2jgPym3@2G8CeNscpvE3QDtgZeD`hY{NI+lcSde{_J8*OkLHfQ?dQK;+;4w+ zjakm57k_3|vPvCRi)UwW7yqzitFt=S!MjWP`z({U>ako~A?#(jlPw^`amV(VGmlm< z2o$gtFKF{q(7dM0<hj0d-q*7eKiavp*;sW|Tza#%MR$6X^bG!zn#|neL6Y8#4qQLB zv~4(lfbZ3t@O}UH9<i1F9=$>QQlIhe?$ZA6I$Vn)E=xPs-!|N5@~K&A^+m;_m3Kv$ zV)|_KZ$3M><`lnG?&*XNQ@(piGo6*W`BL<G=i;UF(%1iDnB>szo-W6BPBCP++qSQb zkIT&hdXs%r#I(EgH<!<R7&2jt{_g|_x$^5J$GqjA-F;hB-WK;IrdaPmwP|L)$jg%x z-(J1BS^UGBIqr+6@o#CImZL3s(5LJC%**~0441w&VEE;nz46r<W`l~;rFG}RvNjlr ze0&nOR?o^W@WMfbBhUV>IOAi@!LuUrR>N!C3-7kb2v7O$b6~}(jA_!&4W^s-IhX!& zX4)z=Lp8%x#Nm+n!H<tWw6nak7SdF`=3_lIm)V+O-?5*~tPQ%(FVA!S-l8l$`?v0H z(;VfEYkTGQ{1yN9*M6t}0VT=sx|=uiAJ38ZwF|u8JO7(HL(JUj+Fy3l?amj3i;K;> zDY#(wABLYI7q$N}*4;E?Yd?H6Z(aVIEw$fD(#-Z{_gOhGsMSkF%RH`|Vezoz^<Pu} zpLUIRwM;L_^v;#v;GOq$3PZ&?p$j}S+C5wN-Z(IN*c`4|JJ~<S^zHYFTYgmhI=lUo zHOoEOy5KD9CsEcLujZXkas6EW>Am6_%S|Gxe_orju<V@X%<lX+Ifc_jv+c0@j5Vh! z+!#_0dNi?IU$Abn1INod2hyB=%Kuw$=y>Txa_O%WPQ8^ON~S71;(D`fS-2*@tx!AQ zAm)CnPh9O_=9|^xC*{t*pAfNNm*3mJT!slg|MprH`7pkHe*JO<s2qCd`lQ79_OGXn z?R-q8S7s=_p1UYB?dcN*2GzaACn8lcCU87f<bPl3qm_{qr@FW}CjRClmvr8??HlF7 z=jW~~GqZa?dw=dC|H~U49oVcg7(|0!oIku@*H}N&Ytsp#6wO0ChjZA@sa$j2+0fj@ z#%Qs1iII`wOiyEpPiGuBY!^J-zR>Xd-Gi0|KQuhn1UnzRsrUMo(9Ue@$ESD-{{7C# z(B5jq?ZrILB<t|!BMYY{?+=hDFuZc#*n8t*_vh}V634!$uU<cS;kr+WY`#0y#O6)S z3zo>AA@I1ic9!u9=^`V~ty{9L-w^OwvRTP}3fEDq37emN%~>VvlD+X~HG_ie%tKQX znwdU`_{*qWEx9a{lvtp{J|Wjq_op^fSm}=*$@9CJbk|*0beaF4(K0&X<^5e#qI634 zdEbAo*7e}Q{=FJ&KHi@>KVA2u!%q&E4}3Dr&m+2&G?okB*FL_y!N$rVFqz|Q*WBQA zCbv5w>+O$RFic$+KHI7OhmL*7?-NrFKAj~xqcuHY?yjb@jJumGgU{}tdF8jeWf}h# zwiUW--znJnFzyXCNGjo2&uhAd#cM~KG^1J0e>e9&$4Rf=7xUcATiL{M`oQ<U{B|2| z-<Gca`RLfbZ{PRLQaJFlXj{MiKasWnp2YA^?f($8hyA(4cdn-F#*fJ&f^S*g%$cvh zVdB$(<bC0957cn9I4+Z$d3782orLc(#Yro~%ho1}*UFjm1|9YL8_#DjQ|9MCw*-ZQ zENpXs@x4vWWow_C_uEhM=&FNzv|k84F`TmW{PY)(k3BcN@#*4=EUESV&!an}r_bZO zKUJ*jcOX+;td(%oJxli+_9rtV=P>p8KK=h=TkJG}nMM1SPc)o(eTVY|Q?YfvX)D5? z-?7}i=g#Lnrosjd3%*Ti-1sJ99%JTbeh#O<A>R%}uo>hEZ+creZ|S0Xzth$~_b7_7 zEr{uQwD?+6&LqJr-Ou^AHAQGK<<EIurtf%Nw4~ViLD!@O&S}Ml-FvT{TNBIvn0bM* z(c}%GDMFdGvv*|(M66!WpB}`@dhwN5<U0}m!#&{&vr`Kz-_6TfzsR`n*5;LR^BKL) zyg$Wf>QL{~z?tzzysz@~67HG>wJ-VK1gtyiwqL2)Hf?$FiNyQ_RzB7hJ5N1j5i0KA zvL)Z@^qn<PR~DX)`)*!lS3B#`+9a9M$rZQlI<DPY#5XC?=X0HOWF*rC@p<9Ck?Ctw zQ)}PPm=bW4^Y$&(11;MY2Zwk4F8c7@Sz4OyaUeSjyLO<`$(urbbr<GvXEF0${h6)v z^!o*~5bLfB4|X2DwMF^4-L=lBE4@;2i~o6VySA8D?84mCc}!0x@fICBzv;55L(jZi z+kTtqDz;M>CKWgzZ@rysm%l?@ujP1?QvKQI$_7(!mfV`n!ll2p?qfjG4!>hJ6fW~V z{F9V5eU6UOv<V`Yx9rkmN#_2x+*okB>b%HBjmE{B1ed-~T&5?m$#~PFT<?a|%#f`5 z+{XR2X$+?C6CX?d@xT8(=(kC(n)QM+@1mC9o%!KUl@{cVy(LY&`NdX&8E=hWXSfHx zoU?UdvfQSZ&IS*%m#p)A;mfCcn~`_=cJ6f1NaKKpwx%AtRelk-n2cw8eKcXsXkMWz zSRifufTwC114oR^1LsZL-`<<b9y+z|;d6s~!htQkQwu|1%UMoXuypxkhi!)+9L#fG z_1$3AqScFXJLmB*w20^aJXCjqh3m;2AzoJlrEP6<q&ueC@=5XdwQHm;d8B&#z(N(9 z6A=!#U0-TnxVUkpYr~Fra*lGcQ5G3zW~}O2cte`!&uYH@t*xGnkq^&=EYNebTi0Ka zzm7AtsG^opzNF|hqiQs(K9dEj5wD-N(d-jFKYI@B?3+@0_29#p{Ab_xTl##{u-xRh zE8j|U*_tU=t>!t!MO+T#o8S~4`MfJ``-iJ?4|J@rvo_}{FJ^u%*~9f$HoIq$n~Z(3 z@1id<Y4zz=OU%y51-}0-+2ft2RT#-)rtx#e!RvJ<AC74{X%uQ%KJCB1yZlXN{4Qew z*_R=Y{GXfNo$@wJdsoVjlxzPNHpQfH9A${imfPa~A!kK>-!xxFr#QVlq2F2?8o#sj zOswLX%Bgnsvi`DLp{)I<x5eN8|G+!?L;anmf7-uq>DSi&HfH%R^5^u#AU7GlI(6AU zuPSn<7oT6pz`A6H=z*Z8;>_3Q_)JWj`uA0m4KI^-8q<Uei$tnVY@L2&QUIHgY<3re z)cx#)-x?Xy`dEC@5AQMUvgo|^el3HdcA{plx?OvZz%}2CK_}fDKAbDP6m>Rbql(c1 zIW>bU0oI4f0&i4!qpFXmaIUa?9CyIAMBlMhVD5jmhdX?ZSUNNuW~-a$7qYD^;NR?D zhrj==c`zqBJcH@T{>@VsI{)xjE!<)EHmO+n_u8M0>9?E=-s&EdW15@!`#fhJa|pwU zwF-fbb^dp!avwObq%J;x+53Ac@49}n2u%CF>F=LcKPH#u)Zcxle}D7m9}_;CZ(eEf zK5*9)-*eV81YX>GmFgT=bwok4hU?|}4{P!wS0ym4i||UyYV^M5aB0TMgH5Ks(s=^Y zr)o2#{?%TWe_Fw!`MH2>*-huB`L7mCW_YFh{d;42#hZoK*&L2a?zwB+(b>mzz49CH zylB1K6H7k`ZF*ekX<F5BSGM?Uc(r$LMzDH|^7q$=-am|(DEU~&bdIi*;HJc*>q_mC z;*L%T&YaO?{>J)h;&;)d({Cg%I(Gkk&P%%oN$nka^C$2eFmz-xWO8ndds8vhLR9%e zN`B?F9W6q4r>t?fE@$&SVehUR6#>)TXEM)w?epNjaj^f7EgR)LRW>a)nlL@$;e*1f zIYG~s3#?}mdARz{)gOIX=H>V1)-t(T9^1(F>*T9HC*J(hy?%?;u58;0wH0#`4yfKN z)ijwcfBW0fhf?P+Yz&**v-at$;<DnepUYm>XD)B=-){f^PFg$5yqTuYW(eQuJ}~2L z9iRTg^b_nNuNz+HifEj6VLL4_S7*hirzcG2JT3Sl9-AOG)5}@Tb@uBejwixXnKVrK zJlo36e}8U$yIlXx+n?vR&$+@THurpK+k?jpiR!`u4Ci}qPS9gLzu@V{>7V}my8j<E zNWCQPG}B`C64|dV8|xjMlNb&%mwYIRy<Tl~*I2_<?ZTyr*O%q9sX1H|UAByY>2S#f zX@0p>PvdpMv-I5k&MEOkZDzihx8;iS-i0#->gQOwsb?-x^kGsn_BSvQpFFARDkne7 z;-by&R-4l{|9^Gr!5gP`&-S>K1Bybz=X}4o#7~p9Dh*?t5OpH8<ECiOywA^9W~|{^ zb#P+q<l?Dre0?Sw!Oe$a!X*2gEf2(bti73>(9F{#<koa~#(mMx86gp&YIb{_Bz_8c zUzRZrHsDys;W;g6^VO;e&8MYa+Z?$PH9_Ivq9En~VZkSt9o1jme;9b}pp1#z#a-=9 z6I@pFwy*9yu`}V__UOv5pEB0REwFtMHz)9ax2bno+aC9ScGq5i%(^LSXSSF-=-6J3 zoSJ@r0nfKg?wZ`UQwsR6ELi{2AZGbu$p(M#UC#~wyVO2toXKdl?&m`Z@w7ecw_i+o zzWRBBLUIguXneX^scIE#?4`X1L46zVoqI7wQJ2YT%8JswWjso4tiN{%vpAZqEw<$P zbK!paf@N>Kd#?&S*fOPdg7Rcfw!VDsf;0Melo#<F|GjR_tIygI3C9}NG%l#y|NGwV zZ?EQRpG#cxSNuoJ&AIZ@?@y&&tb4jc-f~g5ET8$egW>nKPhY?7eeKtIwSV8&*8cwN zx@}f>Sp9Qj<EyfdI_Dnhn#;39wR+k1C2rvx4mEh6?vqop_ZP@;_>(7);a#}zV)p*$ z<vdmw>~09<Ux_O%d+YF^;cLTzHyM*<6}~kW@~K$_cxOp8GQVj&sgbe7VYX+A?svcB znT;#|H1w%o_h;?0lurraohK+I{BE;N^{#oL&jqhZ$@Mab*XM0GlFA&kKjD6-g3CXd z1+HB`a=#armY%uq+Rjp{;<3>BekZHZ0`VV$Rs!cXYcTI`Gt5^t^Ozm(xW?%9>PB7> zk$2`N`5Mx=&UNuT*rs3izBqov_j@}xKEB8~EBAAm!`{ky!j2Q;rWR*ftJ|(C_51y( zJ^EH4$AP_7A3uM4|L1P}hR2`e&dVB1cDwd@6WgBV%;wE?Gmg~7GOpt0kUGWw<h<Y? zy*IBK;vUC6&R2U?%eIU6^O{W}$qxH<#Ea7kmvS?<T{tjPi=m2pPe{}@e&&LEt#4ho zNqT*~y;nAWvy9%RH3yzA^>nuS&&P6b&)Y2mA^CHpxMKE8PKdq9(v>*bJ=IXO!)V6I zczMN*!VfQhHQZW0%R%${k6B^+UfR61Kenw?Y~ICl#gQwF?jOCud>}u@J^NX0hVi36 z@e7_lK9ltzTK^04w)8krma;kWmr4zoYTG_r?bG%?7PS1J&l#=@Z`X6kO{!8Z2&}%D z@LSQWb_1u(k@rhm4YTr!^qil37E;yDH~b&EZkg4;dDk;{)~%eDzh=Jw?SlNP!CPl` zc7~@eKf2)Z&h2L`Wj0+|FQ9Vz|0WIgO7{9=a@GM;E`)Yn-&DG(r1sGE+}ZCdb{zVV zvhDvbtwzruLFU_J_UG9D&;Kv~_G-2K1Y46cAxyJ=&p&X`Dd4impYq@$t^CBuqTB;& zH@?`*n$>o_+_Y4eQMVzlw4hjiZRY#{$DT>b$%i=C%>8gx(dU(&y?HWk$vX}<hdImb zzrL#dy*vJ&eg5+Y{%XpS-`U&vzA4R<+;)Mt;bGa_)3v{RBda!5*ge)`|MsU!3DT%K zrnh+6171E$jeAc!_?ACDefahg9yxth2cruGx7;Nbt;tt=6mwH^Ti(gsvp#nh1R1p6 zI#3s1(V-u9<+h2(o9VOs7@J)dH%rQ&VUVA>?;NutUy0?qSAp+q>W=t{e43QB>f%M8 zl)p31m4D4xYv{zly}YXU$h!L*#karDKlkW4CzDR)3m&Vz%~Sr}JlD;3-8C>-cY0IG zwL_mCS_s?BiK$n2$}3tR`sZN7>U$ejJejKd<)uvJ&O=+Zgd(5cITya#GGKz;ob3v$ zA{QOz@)KiwlNNBf_xG+v{0kQx-H@ljH2FLCJ7c2;KK7+m!rT=_7R863CUV^^pDo4n zx=kbhbJ31RyBalmuiNm{_1RwK^?GW-sr-0*ibCA`weQ=T#b2G*Ju?5B-=T(x#J=*a zNsHsNj_o~G`ldiibc%vye~x!r|C=+G^GYk9{+TG1v3t!i7JnYTtjGKOqCPe+;+dUw za7J)PoTjr{v_txtE|c67b2@K%r0=bYIc@kLo!xOs;<AQqzitcfIc)X$=igNSBij~Q zEGzWAp8s{abl+a5Si|Z7riQwwQNOznuKX^d7ps3_T1>q53H!vmANE}dRbnnk-*IAV zZ~9{4J!>^n{{2t8^e=wTj=N3&*Dw8Wzw-2t`YAK(Z&;)p7dy9T*Yt?K?@up%uKk$v z@XzOE8SG(p&-dNC|MH2{`|`W2C;m*<bWC}#ZhiQRF3*jlCXK=#(O!<eSIhmk7S-)b zT$|`y&H6`3#N?U-cZs8|>GQ5PEXm8xN`yT7Y_?W%e&fcFD_j4SpXoR?WtLIc+A!yL zuekyW+n&C9o#gw#zo%9CMv8#^*S`Yu`2{{$Nb)o@c<hspWsuu$8pAP3A^Z9&<pYY1 ztvP?)7bx}}-~Z<y|EKKgD;fRHXV;#S&b@MR=Qhq;G4cBiIOABek8I(t+RmwPbbh(o z)RK*xKD@cak+5x7quk$T@0@?9*MI5Xw)ICX^K75S`Y)pP#kPtIHZ<z79?Z*Fv)BJZ z3)9?EHm#ij-^3ga=9qT=K4p4jBj;^-k+SFazQ0+eSgm4z^rwwZxlpmf>&2=SE0!F( z7?Rdeda1mO@lZ-+-o_2be+8t4K9^^(KeAYgd85+wl&7lEiAx!bPVY)td!)_LDf)rw zcW=(ZN6$b0IsW)yUS9kS<!On{0*i!oj@*kbTf=lGyCc8NV6_#;5((qC>#DBKKB;D~ z!t2;&+wU29dh;xj%#KW|IsKfmAnLg1IazB(meVe(oo2b*lho92T=M%Svhwv)?x|`* z#?Lkh?_}eTu{Kw8uzGIjxOI2b@~|}>X`3(m9W)5z`dHfMB*VX7S=Byb<IB@dD*T^! z7Tt~8@oweb$&ahO=QHZ~_r&x(HH&-eBWRmpso`*L+k8vA<09g+?Cjh{Q}=KDdw%E2 zBHgcy*FNvxV*gA0{wDMJb=J+VteQ_=(9rGI`}NmuW22vyZevIEtWNIZzwdQ<o-maB z!nisl;7r#i{o^vyKmYH%fAY+U_lnj2|2T7h`0P4zKJU{%<}GpN4A1rLe^39`e*fp; zv;S&#>{b7!cvQyy@vW)xR*q>uUTiFXRIa{ZW7y4u;KA+b3^p6XFYQ~jZg;oTx}3W~ zja^AiXN1^ggY9;{Wje;zC?Hev(fDe#;sXD`q{+#*epH@5V>;)xpVsv^`CL{i&T;ca zlmZ@?%yo0$GxcysLQ~(dZ!!xl{yaL`YdgoUtlWL-SG`{rGN+cPuGH<635erAwW8aS zUu5|wExXe?kK0!K`*Z$p)89kp`;z`Y*#B=@?eF`4ewFq5cl7XG;d*xclES8UdzjQ% z|1P^7RjF`Xby4_RyB{p7+N{+j934*|IIY%HS-kJqBECy6XB?dSxw6N;dwNFivDdPv zE*|eNxig=SW%8+A^BNf+_1t9e=b0dJxiRS(f9W^z$*Z!{_RcoiKa2I6a+s#m<2@5j zX+Ga1BV&{O%-YE&-SOH=mb^v$9~zW()z3;6XuJs0Pq5q`>uCJ)#l($&?}*o(s{69I z-)MGr$eb`WvC?TV@%y-MRm^bo{g-m8;pMIZz24WA4bNupzw}V+_`bq_mfw=YUq4UE zktu&aJ!;Q9$E8+6+%hpy=VpCBx+h97NFwVEbL8qm<4b|dSM68Z`#ydDI(x1S(lY#x z{!IKmk;k^q;b5G+D)Y>)wB&FmE19cYLD$cmezofahvLy~Pyfs5eS39do6pU})91G9 z2A}`;D(d*rHw@K_yrkM*bugN2Ih-Y5^C5NjzMGqtzu%V~|NmKig8rsw{}0;TGWx%I zRnnH}EJZxiLXO0xs87B8a+Bq|iK%uu3XcxT$(`egQm@@s;l;YmBjcivtc+Z*wd<cF zn-2WjF8L+vpTv>mq%HgRyc6ZR`}pE{#vPw_&M8aSuvN~x<y+Q=EoX}DE4113>U9|> zJ)Lr``b$XM!AoDFpYQl_ZryB+pKV;>YyNKIK4<k#{jA#i*fNV_Z!X-36G#s~HvQBb z$!BWEZM-8Ax<CF=dnBT5cj(;4!^gg@W)OdDSO4SW@=X3~p-mAfM{^sBwrtgYJA2LX zR#~0}55KW(efYin`{y?c<UDU0Du11yuI=!Gy}0SpEjiEg_uqtXk0`EB;%9nUY`fQt z@!G9pTfY^>D>TnN*nT84S!UPONcCq6CU2Z%uX!Lt@df`mi(5a}#b_o8ZCKrCc~GY5 zUdSr*Yg3q0tQ0=Syq=NnbI-HqzHRO7*PE_dREZcIvu0jW*U&4ceO(|&LE^;XYqK?1 z%ln*KP`;k0$gAaokJo1gjkC)t;uZ&NJW$NC^`KhU_cgDXzpb0$vFU!>*Ph%{#z${D zUF^x}QoY&wgX4|8%l(vY$E(|zUO%!uz9;;;-02{@sjZs7&+-}73b06+S+6o-n=G@v z%~<|l<Eb?n^N*}EVS2W%Xs+>J!FQ))4wr}hG8I`oCBk^qpV~fN(=}@tCa#_{ec!9i zpOR<XOgo*_p*GKe&5}v|oxohn>k{8L&i^mYX4}ARzdY<P%ey^=FDJIDM%&Er;5?AQ z%(2LODr;<QG<){VB1!(`@`bk=_L<*)|37n^Y|8_~$ljGFw=8+_=Iz;w_i}a|{u^r$ z-B+x`enaB*Pre5#!r4c+1$Sn|?Ye$5fML(oN6&?<5_rAh72n?8uu``5yXE=xH7h+N zVhhiN-BOt+eY-AZyXog=pQhj5|KF%_hTVoZ@8FK--hGc7YJ;CQYE_@=j=Q+M0(7SV zXwz@edd4FLSK8ZeUD{goP55fCw4RmSjoT**c+z|>2WC$HWA4IazPP&WaV%R4Q?aVc z;%tj3rm0mL&0bR^glbD!_(J8?xz-3;XzWtRaOZk)$YITzzy15p2FCL)&)u+%%dbS? z`T@iK=nE@usb1@Kjh<V=X0!hOOy7%JAN}ULZCw9wef>qdAD5Ese@?#sE&V>H;H=p- zubznqeGg4v@52)C!|=%(M}-qN_;P#`H@`i&Jt66u;i_jbkq2!)Nd_F4=&<3LH9JrH z!wdT*Jzih<!u(3u^qS_TkgW-Z-$LH=C)ZXS%{gw%6fdV#bVZ@*u=5rFl6P&DozEty zo%*+SXWy;9NWuO64J$OSME<a|o$)^F4(o{z3THNVG?whkoPAoCTRP<K>e=OQAO6d$ zK9j-wb6b=1mHmx^4G!*yrhD}1-rO#|wj=EV6Z@|%tQmg~J?MG$s`SQn8y(N7t^$h` zSd%Xu^A4`wU)T6*du&x>2FIPgJK2V8T#uG-)={zfFS9h`*kA8<{rSB)jQ?V78&5lW zEPs1u!MUCG=Xu2V+jMyPK8CN4%aeR3&ZfN~Wt-NuYd=e7@$C!sNZXv6;F`U`Msx+& zndFs6HWYa<T#<M?>7DYeWp|Ao0(Wa|li3vevp2%GQg@BJOVRT^*DwD)yG<`|o6qfw z_x4Q-uGv)SQ#xDsNK}(efr#VU-lF;Zc0VpXtGJu@xG*>V@3H!f?a~)2?D7x(KW@M2 zw3qsdYb|pUB`?nV9zQdWTa3Y|gfS{M-u<j)(|M6CS{r<mmwi=vUNc4Brs6Kwj-A)8 z`m*G7c!pn};d@b+DcRMVeZh@czib{a3*^r$dBu~hmGkn_kGqSr?iC8MriNuR{=L6j zR62p-$?4Mh4%23bTRWIv;kDlEamq{4`3cj;AdgEGa;6(!7q4j&4G@W%Ez4e%@rYZg zT14T=p$1b^1BR58)4O+U=4d#SSY9I7(C;<PyE!(Cw|KI4frCnZ$(pYsdv4YJ7q9;p zZkf9LvNYQQ3GV3{5$7zMzx{cjcs*O@^z+Y0-}$GnUh{3o`oAr6)dRYpCbCs?)if+B zue`6lg)O-FY45`ImM<Q<B}|)~equ>Eo4by1;gq$l&-x-X&xsw_@ICIxl9bBI<!9w% zX0wPzetT&1xJQcVT*58M7l;2h=nHO3^)x7TT~@vHQw3Xr`P0=2I@=WVzH)tQ)R(km z>~UFnbXw!tmJXI18TuR6owHefj%Pufgwdn~{x70FtrK}XH*yFZ=>FUOmgCw~m!~<$ zz9zKkXzh$V@JQ&jZ$oX8)QriB1?`Rj>t4@zJN0Sxm(>C`v4v-wpIX#1FerY=SJ?B6 zC&Rc~SL}wx3@a-K<zqLmIv)JCAlI=W{naCtT7_Ew4H7f%&gWU8ocr_Lo70mHi-&Ff zeejJ0*QJvRi$18H3p^Zi<?}~tXXRwa4Y#bfip0FW`N~IAjYT)=-NG8>tut~8))wXb zIr~lc!uQ_CQVOR779CV{xjp&s<^^laZvSB0`oH~0-`0mbH@53ODUD4xY5po8z+21p z!<k{Tijri*k4dqLIn)2zT{sv2bk>(|MyFM-r5Jc*OiXrkh^lf+o_FVqDSztc#O$dJ zJ8y_&T&a0ovshu#spmWoR>{X7T;B7kt?%!Z<o8F*vfs!|yB_)cpTdjq2Bp76dsv(j z?>o+^+Bnmsrp|Wib?~it)dzRn(c@8DaF<zOf$7#i$!%u6!e(l(9<r?ncKQ1H!Ir@N z??sFXgTHm<-m3W3TV$4L6UuF~j6vYma*Y`Va%Z?o#H}Q?rzE`OI3}MxUvk~9sDE;N zE{mr%d|YA3`N+`QzGD8lStZNw9Z2vzvdQ-Gu6<kUzxmgl{r4i;KHdJ;!})oPcR6QX z>5$&F>8#)V>1}qrvP>~76@HEL(u9sXu6AInn;I*s>U~qk(qt~<iw%*%=d-6?Ry3Jf zT6w#4`qwU=R!%OT<1aFbuRIDnuk+eKuE6SGr1$i5^JMrf7o8E%zI|UL-#kOy;x@;m zebS69E(>|uGgD({My`Le=(6XY59`l0=Sa9rmD}d?=Ib=y+?Az`K9VcWN~l}%T4|^` zH19vX^43P_ZT0M{6|Ve<-~Z3pubbtzN=6D#%hM-CG3Aa5MyCZjw!A2pHtng@-Fne+ z!u$i#S9>pgOuNp-v*c8=#<HEK*<R07t9oQM^(X6*f*$4_C-)t`aroxi11i(D-dHki zwhsF|*J`h7kDEys|DIAbxXd=^mfW3Vd-^3cgzu~>;)><x=@(o(+2`xz@GY_*UBf@A zoo;(@d#0#dN!&^=*_;KBuTG84|37z|&%d9a4)`DYJtbCU$Bgr<YAd|H{`kKC)Ami* zzFoD}f0MocM`-oWS7qF%{Js^k{r5VW^~cj!e)mU%b(0HMZ0vL>KCHIQlso<3s~tBE zXZjx4{Ceh|>sGVBd@t?$E}=7Dy&?VFf>S;vXS9AA-Bj6pl1XCOn;cddmWb85^R+L( z-&|*3Z{wjG`q#M5Y_~?wU73S?wrrh0?dqzoL=^rjKC?&Whm6^~({74R$r}_m9&uMN zlsCJbXVmb~?D~v1e;OS^-p3uR=}CO0yF*phc3=I?fB92igxy+T+RFIxuMPjqonFs) ztY5R7RzBBS|9Abq+241#&GcZ4Xs_~XlyXb`c;kNIHI{7Ed%vH3UCuGZI&9~31&LhC z=H@w{ZQ7N8>`Xqu{NPq_2G6NGW_D-&m<2ObOI;t7@EKie@@!T-rat%EbPlPQ=ifc9 zg>19h^7o{pfbQwFAx%P(AJ`Y?2z>GX^!L)thmzB;r)DzTmu?8|($jjN=B*JuY2(-V zQ`Z;FOq#unfzM1og5RQ<BkuY6_zy8J*bMHK{f=+Ak&>OF8N|Th_`R=PF(4x)@POK; zSY`L64RyD?RhSayZ;DB&zEG-~@p$)V&sWba6Ldem%QN<t|587rdWy!f38_tH{L418 zyY2hzp|nC+c^=1&*tgQs`ML9yZ)LA}+L!vMdu26~iPo*W`*)M%IQz2KKj-KOb@-Uj z_;bhpsb<$V@Fnjpl3jhzHp=0Z&zTm#O~%gd?N3>fWO>&el(_GA<Lb#0kKc8v3|$`i z=H^>JU$IcVyy@Jo8_I909Cq3N+4k11|8{xYf{9B~++V$DS#W>X+R#Q{))O*ot+F>r zvoO?jU3|tMQ=!iNNy@QMUg*_s^C_IS-p!PsbXQ`R@r~7q=5eals;un2-?nU78nCPB z{IUG=naYzs-Y8W$dEDey?#;(rpJn}89J5^WO2zTt$BiF+-g5r6s-)kGZN>eS922(A zeJTEEWxBiK<CqPHIgb1H^nP0Ydfu6?rN91E1%ZaNR_^6GJ9)(%CNXd4&DZ}pw3Xkr zOye>Vyzt`r%NG|W%EX?#^X|j#diA+}@7EY_-pF0IW{#sw&D=L(7fT)%h}eD)6x$}; zo^avj^_L>En=T(afAsEpg8=65YnsKjl*;{RK9_Q*=}PY*!IzGAcb#qc@b2C3*`NPQ zG9_Qz`ShaAx0|Nhsu$);JHN2(U8$^LJm2)5gPo&c=z-WN7U^N@jn*FV{9G+IIY9A1 z^z!0kvrO15PtNjKsL;rK=GN23FOvkDHf@?Wi@mlsHz{aA+>Z?7Xhs$(Dc&9FSH4Kg z>ZRVcKK<c%-;{#3Szl&EeqXh9$>aI2Hon}@nYI1_lVr%2eOw7_eYY2$<ZN~}*V0g4 zXz@RGt8V3a&K=*m`P~(MEWFjf<_vR2>(|&n%b4aK*K=Ok9R7gk<)<}Mc>`Qc7reAl zbUm>v<5ER$qutR3ZJV@14=IElznE6uAr)ZEX?b&r_bElKnQUosYqQiA2K_InpMU@V z`u|Vj^Z(Z#_lbP{=kHlDhWpQ^|9#;;|K=ORH(^_+g&Hq;BYoX{suIHyrW;$rE?k+( z8>{ccWiqcQDkb`cx1HuR@3Y}HH&)F%wI!WNCi$;RoAEr|P2cpl@%&pppCjVd>PyBG zw5A1q*?zz2KmWgP-*ztETl4YKzJK2F+iy=_AN2HpyL|n$uYXv(3=J;tbLtM=TzfaW zul1I%)SF8$7p6-(FoZL*%{ljao6ohK_kF&ey<8Wf$&mdyHP|TNyDi6Jp*d;68+f;c zP3UFHyTM>EndND!+8oABQ9mm;^6)$jDYd+%6<GIGE_G#czxdMXH%--y88O|~4;ZTZ zerj*pp=7Z??%qkAe}{j~>@{RgJpX_{edfu?kQna(P6gd}-zzL8eCxMeQ}wNMf$Afn zHEkz;7#*I)({QiTT$b~dfJ)sFqh_^(hqiU!|8-6N>DTMrtqGCqmcBD)YF58}_|3O( zR{v}N7kCB8?%j3rgOtG0HMWZTEu!Z|-OAsx-8$NExzx%JuOue^pU4=NtS1nW%FKOz z?aYm9GkdC8<aWMyZU|K{{LaT#ZZ~^Z<$|`_CqFZ|c10^E6hHjV+x7V2pVOZfI6nOo zqqX{MAHyBz=3J)UH!}`yp6|GA#rclZP%D>(x2|Mb&h(64@Y?4x2g`wi*8Tlys}7&* ze>&6bV5W}cRHh7Dt_tPiAhS94{dvMdp+_gFSNON7d|MlS!8DbRU*Ln!hXv=WPdI$6 zT6ffOn;+ZD#M?K`=O(Cpo86+3x%`C72QB`j=sgU(qts^?UD?Mz<I<^Vr{^_z>ED0b zz)-NF#&Kz<&H18>Tow<lve<tmiafX)@#H=K%k?P=wrsf^H==&rn?7T=74uX_F@cwt z`9!nRjz&$&U6PPIb^aFVo{v9|Y-+hX)0X3(+sQ=x@Sl?J%8xs})H$rYfoayC*4G?$ z`Um1mXI|L*x`*9iuglH^_e0#Dwf{f4<+A&@<gUhNuRCWk-d!Nr@>{Um=lPObX;o7b zWY*s3Gu7|i_PXb%FPrB5>3%=f<tmltIEg39e2g@hq30ttYbx8sKOHgLmo`4|J9GN} zhx?O%a%nH!S<PoY|JLhDw|Td`xBT|oawc_gip>L#6Pm%Y68D&uRk_S0YIxEv@0hz; zlwHH~#+%9&?M#{18x`Ey^LYHTq@vk;N*=jfbn@#jQI*>jtne)7>a4T?#Tsq~W$(#e zw@-zImNB$xzU-TO{U+a;Q?hN%lNk4`Sf0kf74rGbO*O3xcTRt+&*qxGpe`phVZ}%7 zY0bwjPj}y+t*92vwr=LcRi+gQRae7LCT^(Nc5-pYdh40D{yk(!y#FHhw2p;p*5k)Z zra4CL5~;r&Air(F<DBxxU#H2woxIk9;X_C7MCYK6a|!pew=Q@cHf8Oi*~RldFJav4 z!!F6ze12Kow#bUp3E@k{f9_ix8auzR_E~SN^pUDV<~Aw4rO|p4-MPAY(Z_7(wk+HC zMBAT_?Y~VA^TGGAOz|8XRpEbE9q2e_dcAOe?wf$u?tjGQO+V!z5VlBJvE4+LJMF6> zN6EBHn$urQVOp2%{QvO{_HvsA-@h*Ut+PIQ>erOAX{jo^d3JA#TU4SI{q3;7-NyH| z@2kIEw*Pzm<pFKxyOT6O6#SocebKXa#*TtZft&LS*;9l0-lkliVaueW@=Bt7pC#x0 zzwf?p5)<<m35n`tDxIx$v`s-p=c3pJosIq53ir6oJYZ&LJ9j0!op6K6a^rs=1iEf3 zYu+?B55K)%zTo|;=}WULH68?1_s{x2`?faQ|NA!@8pI`!)c&~GzwNL6d{>dbac>0H zwFy1?bc-!x^0NDpamGjPKDxh>d&AnBUyJgS+&UQp9tdYH;t)8dcOvPT{p|~}58i05 z(7)F2pJ=^Ky2LHOvh`TCrux+tee16U-*~?1f55`{aL#ov?dNG9T@|tHb6#<5@_ro~ z|1CA;4i0taH=KNZyjbV0NAIldoEn8<7uNOf-OC!rE+MkkY_?{>!CCQQT^A)Y{@=3t zIn!-oz$OKw%lQl`RT}Tt+e)(9z70!G$iAQ{ea0c*p5vNl&AadapWC0jy?=lG1G@vW zg#SvH7dkH3_V?YhXKIcM8IHVr|DKn}g4Md}Va<azNflvJ_BI~slY8$O>UV47t(At# zD}KJLh)?s7oFMJZdq8PIALrUR(T%nma}~a?dAr;Ez`AVvr#qi;{F)^w60YeV)HvO0 zcffuB<#D#hdb5=d%r<PiyQTZF-CI|!kHN}r33`WCYHwb6CjHJIZs!m6o@UB5b51;I z|Mg3EhM;G4yBULn)3kWrG&#)~&-!na%(c7Ze3La#>xTr-s>I1+4Iz3B;)ix5q%W{h zIREX~wX-Xe3(mW!H_2)IFAolKxgIpXYK`^_>qfyFIZdU<7~-p}IT8d_PJL(CyzZQ5 zw$0{sYi>Adc@}KeT&A(@z)6-D;V&EfAKX2yzvI@M`+M)+Z}l&A-Ou=Mg2W_?_o1`c zCLC6=v2pRYXIAmHE_FZP<5b%u9_cl!TEFH*^_%bOY+WamEl`ttsuIJT7~I^ewrslm zj{b=&-%X#%a$?Po9kX7WAGdw?n|0shD!#Z|UWIyl&+I(#UXEwc?k$`zrDH$sJ<WK2 zs?%-PUi$<35sVT`?3~Zto~atT$DB#f*s{z+^skph$aEFeq_Vci(+aGvyzh&B)&FeK zu|HwX*C72^w{PO)*|&aL{&ko->6vtpMb3ru2W!u#+|*k*k%9Z@qV@xx8*S!64`JCV zuIXVQRKn94^6X$%$(ALL+*zY9p14>Xc2nCjQjq0X+n#mIDzcllO;TDORcCB*&>>9K z$*61BX`j;6^0hpi`Sbp}DNGj8Of#5R;jr!C=BIZHiv=RrXFBZuytC8FD*I;2<0&7@ z<x*Z+@C0pt{lSXi@44j<Y(v`o+c(S(X<MGCv@+*JXNU9imNO?0@ubwr@~MCQ7rN$| z>*Hk;Wp~tnkl=gC!x*ukA>`V^VAuOmnI;MmW^#6~b`)%IJo>NZ`qETiV=Ji%j0YLE zzBp1{D3P6#rM-Dw_1+H?Y(La8NPPMww8(h5a7Kz~!>7<QoI#f++eymDNL|nHe_rOY z;j-ir3z?Hw8eW)}Wn}y>J69MZ)FQ>=;&q~1^5v-ml17>{LmyV~u*vO=3R|1Yc9Zv^ zD$}N@MFq^(8o32=W!^VlSn#h~_~np?z7A{B=9ybFO78Kw96uj+GlY@j=TfE}6#@M- zpMH=^x0=Fobx+pUg2yxDSyUZE|Aqg5<^OZu*T9BEra+$tscR+<);D-M-t^vm{!3=T z-R~7m3F&EqJ&kkDJ0wr|J2_tG<C+=sleIS8m%F#QJpX^+-r64v_genF`R%9w=X+MB z=4oNP*ZJAsot=IC+q>QGZ}GnV{##GF%S+7a`R&EEs@ebY-#k5i{`U3%aUB2lo;dJ+ zalie|Ymx`&|EXH9Ap7^s)UyH(k9IHUcrb^-W9#)h_v$V8`!4@l!?;)CTcGYbldViG zUt(@}FHF%-yD%?{=eKUPexXC^w~GB&!=n_YT$gf*3^#w7IOF|SL!G&sH?sbpzUpHx z&o+i_Ni8+&-u_{1I)6&x(z8oD-fnVqi%wMgn(i(2&#ZrW|Hk~iuWz3%*V(v)>2`}n zN!Y=fhtCg62+f%3p!U`C+P%nl-vj1R{cl?$gCz<WGa8av%N9*coW|4qcJ4(t11rWq z57^~zz5n;l{(N@ZkHz7~V%L_lzp1dh?_4&^;hTNa|Lt=)<-+&^LX>K5DCdcGyj(K1 z^Pc6Y3*kF%e7W^=*`LWG(c7+{VsN{;Kfy}kz|RzS6$i6M-;Hr@tl11RwmfqTp2q%Q z_t%ci>x?JAFAZDS(--B!wMUi1E!w;_%dn1VNfB>oty%M(3%0M^KWF`1Zrm2d^>c3e z5AAm8GNwJohO=WBJ=SfX-j>jJ@X<OJ*EJladP335roTV<rkuk=Z^66ue|@AA@8qAl zR2IA-QnG5*&+WV_JQEUP9aGQ0589+6zOyN5^G!zg#$DgSwx7In>E6U#j@_T9sa7$V z&q*)Y*y`iSGUwrj_V8z+YzK;OW~kpvoL5`=seyHSUfKJ1|BfhpPY_NxxP!k){zK39 z+w%oG;y=ETVLR4+fSGeA-<+8`(-%f}eoX9kD6Q2xus3$8e53K##`Fa<q-EHr8m$b` z^DfSiX1C&3$Sg@$Rm$G9`}@=X7V9T2-F~S$$ok3D>MdU+&)FnTkm>%pQzRpC&TWZ) z^9{SUlqU&0%}-4!I{a(PMz2dDoQuz88E*C2rEPL8&#bZj^zY^?Jbw-`i5;pd+w6YO z@^*le$CaI75C1P%JOAK1QK`in%Y-}nelsV`{8v0B?#9h|@&4~Y>#?@P`7vLUhz+h# zHxt~pRwgQKrjW#ebd?{>&W`C5Bu}4d+R>vsC)i?D+M>nj-)3smY%5VV_5JHqIc@sJ zgOdHbCpGx(RhM`5o3i4Dfy~1T>$R`^pT6wgwYGFabyIG~RqHMGDDE-Zl(u<unQoTI zRk3qg88H_RwKz62IY?+-n*Ju|)F<x*ZhwtghDZM~DXcVN3$X9~>({-{#wGj6kCzVS znU)j!R$McvK60(yXaP?WtBl4Bp`}*)r?=TN=iPZeVX_+gnP>Yy+LX)?lZ#l_V?QtS z)t48FJhSADrf|JyJJ@@3)yb92jrrlzWPF6S2$=|r?)t*9>YXHmOTgyjFG|(ZGQRDa z6(zV(XUX-d1DZSSxGajcMJEf`8}B|=xP<-Sd8_X|9W!MvyP4d%u>Ee=J@+qjzfNgx zn!Tg_xMLBgVOzrd2!)S7V_vVx4`r+Ua`z8MX1d!2H%q_GXT`5KB-TE(ea@v<AQXS| zi0%Oe390s-+#lyR-7X7ljJSHK*!G<1=HDfo(r*}D`gW5uMP<Uy8U73mI!w<lo4M<6 z^Z6<M_Wu9f|NCnHeLF32d4_qUQTVaIb6nq?uEfvxdw%B8<7s+l1WSXDSvPH4|L4y6 zJjWZ})nCtf|GuUFxBXkv@9GPG|G#3lzthm1m*pN6xaKma&}z>s1&?QyzOlbB({%pq z)w@z{?pglZ61%lLsOC$Jn(W;j?|$0s{ASJAvgnrI?w7at^uo>=U1y(fe|DdKD*K$* zl8%D+rf>avm1}|zW9N&&CudFK)YOY+Oj**s@o`k`rjIt|XDX+y31bK`TpV@w`;D7R z1M8!1eNU13BK-Elij86YRgDUgQ=ZLK_)yAsZNc6bHm^4=jkQ@Gb$Mp!2eaG1Em{BG z`g5L9?#TJ8k9gnT{dC7YVAlVK_CLPvd2`s=U_-|1Qac_71C8e&Z=F_*k&Jv3+~HDk z!*{zUgS&$21M`1ni!Q%6JL-F!&*W`FTjs_|oDB=Y8Jv3lHm{W1-?XJrQB>a1&p<sY zsO#vbmoeIDn^hm&Y5q~EfBSdF+HJ?ox|$h9&gT5llb(Eqe*;_3^HiqgCni{(epB>A z%EU~n@eof}m!k3aic;&9wo8l_|9IN@eK)%#!;!?dt6b$)UYph4s1Wo({9oViV^s@R zD18shaCQ(r^y7D4aL1M0GNBbK58OLvDE1-YtCyIwnl;BQ-DB@}&0>^4Xg*cGlDSr% z@%_Sg{4>8)%1Jlpa7w+dact=MoYqx6YigbUEbY2{#y!pFJF7Jw+V2dW`k|wKLCWEm zn|U`eZ@3itt9aT{!<(TT|6a|Rrjf*Rg7>`g&v>rjbuaRdRP*UPR;qB>7_ntZ-$(0P zBDePhZ0|@mjku(6@oox7to^<6pU=B$)4UpZf0=O?wjSGBtr5?<?tWpk`Hy|2q08CV zyk`-<VI^dD)AZYZ>C=nY{%RU;Twh_7us5aY!>LvCJn9sMP5Zs{PfOb8oAoj^?0o)$ z``Kf;XX)(ogru0;eS%n%Z}6G#`9JfA*1}uA<mTyCp8j%kuFm!-b{_$o{qxSep2_&( zN!*I?SyyHq<X!1A?_)!Vw%oVPXM6s-<Ssq2+L`f-M#@oZ<_ABUoadZ76(NyhV0}!- zQS;j7XV*iLryV%dDE)_F<E9Xct&4IN=Fa|@(6p=Sxqh?O)nkoLj%Vu1*iKYlSLbDB zKEa(oJ@WD~=020?lt**;RI{F3_WcmcUmR?3J4j-K;dHx<H{K8O3=#~Q_!$Bu6}G&5 zp)#rVOrh(vX?}+UIFwhd=hHsF@x`k3?@In%I%skxJo#H2Pur<WLagq+%9}V2mo@1Z z8MHREpUMrlm294B!y)qK(xT_5%h~767J0C`ZtCU^A1@1@6|1F}{M9ayx|bGU=po$u zJY&Y^%hRsz-R0)a#(9fpDo05Z|Bt4-iv5T6vKyTr-g<cE@g3PY(Nj1doG=mo(Nf>X zvU<+n1*#ey;m3`y-1dJevhr#a-|ZWzA7k0qKTVujdQEfBOAGav9salMH^~JH^e&pc zXv(vMBY)Z>`ZpPctJN{cXe|0TYi(jp9_y3p=jV3xiKmD}E|-2Z<5*7j`<&JiwpR<D z|9HCN$()$a<rjEQeE+rPxK4r3Yo*O;<=+Z^djIbI|8oDv-2!p9jO1Tz*Qwfg^GZU8 z;y$Aei<x_WzUh^GUA}SInKdqF#j5R%{)dOp{P_Qte(mMBJv+{=`QR>JKW&y&l>e~< zGPmo*9iIF@<=9ee_G?|T6WdFMCcd{z|Gx46WBNPX{)W@~kBi?*zO(pYJUf2tto}`3 z+8U}d=B~f|?$SK1j)QfNt27Oor1X=mikaH(s-0H&o_yP~CA4YlmCaf+9KNK9nuJ<9 zZcTZkwxO6UjOU+-6i>(3NJG&*#}tq6W;%E^?Lt?vgMO)(Msd!mLz|Qjl-YYX$Ie&v zUd(j)+K1Smb%usTS$ii{#z~r}$4Z}Xc(Z@`u9}n;c7F~Y|K|Viq`g1;pLg%p@?PWC z-aPe7bZM{TikW@yD?UFvWBfeh(wjn~TMp0T%ie6bc})0?MOq-|1BQ-$h8k(7b*&{? z_UzKMe)BM3`-`i8uZ1{GYb<=}l~Dg>AGezJ+FL8M51lD~Th1`)#mBl0l0O>HDqM8! zxtkF4a@hmnHFnz=yg!=XQe@53x$4~}cU!xUsh1<<<(<n`y<r;-*Xu>g#+Nu7a3*XH zG*|z-K(UPXlo(s~Rm0cS3rgo5<XCreT|tMeI-}JO=Ys+Vt#+8dlsq#@wNXiY7W2E* zSI3{&<efJ>w|wU}QH!J2Ofd;f3X}PcmhFD@tGD{rwZNcvndf8De_n|VI&Hs3pTX_w z(nBISukTFYwfSJ@XOX_@4fkg~1)2M@**|A(Q|8a)67f2%crD%FXxwG}i@#d$7HztF zt7!6>Yg^7<R9xh}e^n%FXQuc2jpfCcBAjNPSLL#_QnX;c#j~n-&&f+3vn$*GdVFhW z;Sii(b<=Ee?#%<QrbTJ;M^5YD+;Pq?>Z0D2mAm*a{}HPTHwxBpSvl>>$IowjzP|p> zkmL6He$xNOwFVk7Qs1ZSQ@566N!Hsg9$j$m(*7NDgN-B(tg?xon)ztMt+%ps@4o)C zn<r^j*ISusvK-d)mU7rw-^h~DSt$HW$?=Eq^moseuYaL3b*}KDIfsvL`S|m=p(C?F zc*b?FI}__}etvy&&pgHk^>0!o6C5k|T_~7SnRnr!_wIXw7G`W5g&Jn-ZTortpLwUT zWcuTk^S|5bu6uRrSjh#p&!sN4mt|Tt&UJ0mYu&)Fa4@dVaPD%KKmC<cjznK;Oi;-v zOq|27*>!u<UH)j<kOV8iWXr=$4p#hKKYp5K&TTuqC}Ynl3vY$)M%~T(+}s!$1Z`%| zIc8F^s`Fh@fqrGj^Td}mVQG6#uo~zeG}@e0#A0x{b&tG3T4h0QyQ7)v{zrS&H%@i% zt_k6jn!Ce&OT1Nlt$2!>hm*U)zw+Xc%_R+6w_5mcaxFcqW_ILE$)oxiGbOlmo<7-_ zc42Fu$}6GI^(J5IeJ^f5w}AN~=U)fed1uc}pIrN?b4CBDb=nIa{JK_qLu0w;*JB42 z9F(RX+&NR|PC=p!yJnqXd*PQ@w)^R7PLG$D>M!G%BYiE>c*RKvy_tMDwJDqb8HT4^ zkNQ+}>{Ws4iWKY6l&e<R`N>D^&-^`gz&*F=6r<_1`Wrl}COn<ELOx?6=an0|Y&^|g z2lf^773@u3TWB%G-MQ_o@IiLf2wgeRj1~W48al!^%<ECMVqJbZ{oCQMw`cN3AHU7A z_t=G`?2?T2ybSEO=gn&AowcytQghbrJ38&jZ2z|he*XVyuI`WjRY4o|r;D!rr}w)m z`=+6u_AP@ylYi%ySbgJ(6Lnx;I!EN)=GvtCFX8pO?*5<6qILWnkFs~|%wivd#c!E& z!k<N6e|}3lI^DQoyXG6yvf8VmS_^uXXJ6d>?*GKe%ZoPb_4@tJR+Ytq;o4R%uax}d zcjwmM(sQ=V=~{EqF7y4RbC3Tn5HlCP8}t1_*7|b_9|ER(&EA{3GcIm__V?M$yS{C| zA)U;{;G`lTdGpD}6i)`nIjIYLwrvd3bCj^rKfr8pe&XHU)Bn@|-(3Hsc%I+)+gsml ze16ua^ua<W{<Ccr^Q@aLF!>ukw~7voayoG4tc&xxOE!(i*jV2RJ>1NE{QVI}!O7`s zAGj48{itr_D%BI&(X#hWMQ-NegbdB3*=b!R&m0}@XJ5+bVv7vh^mvE7f$xNmK4yXc z=FH5PmbNl_0-xxNvZ>SO^3*Y1uRLep%*nddukFgW%?o1VkDT~i-F$1ufw$9oWR}N9 z8Nbf|Qx_M!)+?CfOW*34SoRrHr}TNhQl2pN`0f4G)$^BHYi4;V9(9`*#^$|IZP(e_ z$HF$f)3(2sHg6DFadkbP)5GmDhZHBJo!NPAfrc!D?eB(j%#uBt+1?2gt;~<UGca;| zeJAml^-;F#oMI{3&YOkue533AX6-G0qoUXQV6H<acS0Sf;{yg4pVY#S#cWUArvBS< z_j)0dgw-^MF9uOXi}tJ%Hi<9KE@uyVr6XgmrZ)NSjM`amYx_Uzlx#h&mfZI`c$?eZ z;154nGx6H6d<gP?GHV|%Q#}8y{l)RmZrodL&-%A-Te1F^xigv{7oGe%eW~fK_{Xch zt)3krlYV3I!p{Plt2NJfD7-5=T6$pf^)qsozf0Rr@6&TLImmK^x2(Bn>KT>h4@b_+ z=NLUpsqbTuk^SfXBFI$y#O}NGCEll$TN_%eGM*O4C7xZXkX`fc)-hw|2PgM}%OfVP z8l@u5#oqDfCtAAbC_SDqf0NCH8`F{vPHYhBKAC^we=GM2hpAsbNgAv?%)l4CRr$<Y zId)yqDb?Rx+zw2d@>VgvqtBQ(+R91Qj(MZnii4ZtbZS|?`1D1sGGlN%aAQmCvfxO| zZ|h`397`7`AHAlsq{;Z%k<WaolDupduN4A+$4K%|p7kc^;QRv&GFOT=ObK7M*`A^O z!H25?hZo-C<$B%m^=2TW!ivD(YZRKyuAD!anD^4cYOaTk7<2nW<Hp`c<;<778s{G? zV(!h{KcQ^frahNCue^4UEOD8kI6>K~LGiV@w{7Lz??LT?|N3VAVGc}U>yMS<(B9<l z_Mx$XKQDvrVR5Xn#o}Pru#*iPOV6j;-pStA=G&TgX7$y-g{j4BzZ4aT99g`6)6FGH z-rE;kXOyq)o}4zLab+YYi<U&d0sAK_&g@*9<H+Q5>-Oer!8b$B?6=cvaQohne(-<S zr2Xve%QEEIkEg9<dzG`=yZvCL(R5vb-|nxTmar5B_!Yd9TvKsYc-=~$eKP+F7G0X} zwY;EskG_`ht?Sb^ZB4ZJ(Yzt$rUhR^6zj4Lmy+abK5W0C`e148Tk-w#cp3_}*xxbw z|M9ub>KVz)3r`42ac%N+H^0ADdYx1t+lx1Iwy!y!`j;`}o^wTxz>n$>u|=ZCc5apw zxW4~q-2JP+!`<=}USuxy@yjZlY`nhIh*7*o{9UEq=b5U<L!)ikb6#v<vOoRKXE*n3 zErvs7+jzyDuVpRNoc&<ldnUWbez)H{KfZHKO77Nt;Wu;nZ1W7G%)gxzE0J<)66k%* z6d3Ss_6FXZ$;_H89M?1-oDfh<ZWbtPk^MFG|F7$B;{Scz@9F;c-P$=-t9EZbquMl0 zG1`4X%q?lll2SL>6Cs@o^q3YYGkaZ_e0iH0$D__oJ%2a-i}=twUwQMcYx@(Qn+mi? z#UJIlTy<G1(_PzE#5v)1xp(yiHR;X0oO8;4C~!V44SX1xb#(WoL&f*1jnsZMMn-Mc znz=Y&RrrLn*H&B!JupM@#!S0z!;J^UvL*i*OL!GKn6)joU2v{@i;&3OIc1xREACyp z)f`#ZP(QicQH<^SoNV8)1u0k96ci#8Jf8ndyE9w+c*QN@HE&mXH`uDiF3HU~7e43w z)nzl@<g(@7)HArRo%pn3anu{%s{Ip9JB$Tp8UO33Y<m#ju-yLE;=?RLFLxaJew;O* zXD-W?mkRglXTLV{vbgp&LtyT;vc9{ehqsD;uIs(OvHH>qKe1zluTs=jJ(<9><kGr` znM>V*GC4AQ<~K^Fsuq9hEc5#RDgX04jdST%$>Q(44cXX^6{t2$I^)ghVx)Yp`ew$( z_uMwguMY%1zFRRZu}<&xuFvO}MST0>+rO2+N|kxZ-^WkId8P`VIv3`-@a?r3zWbdY z->aT`nsbx($!!UHgjhJPrR1{&$mbZfFM0i7D|>r{*~YZ6pQjl4R&+P<@SJXEKhV4} zS<i0&ymO#sms$GLll7Nprt}KQOrPi|6H@JX_n_mwhGW69A}6$_Ea?@g6YPp<TimJj z{tJKmRE_J(>JoewSMp{{YF_DQdb)5{$zw&O<9)|wwoA%ruVgO&{l!@GaW~)DhUUJ$ zbKNc;m+QlpU0Jh<#i%a1{>8%$Zt|s4@s~=ZHLr7-y$Fp8Tr_({!-8T)#@sz?m>w8E z?_>{G{CKu&>jMex3-U8p%4f;5PpJ}cz4mzuN8hH)q7tWnXa_8vJb&?R%k<cN6BG~F zFkL;*{57F^OGLY{QMl0G&eUZ$muCcAS+%tIVEU`YYDd3ICj5)YopXg#!QDe-W7}b7 zb|&@hoBYy*K4?lAHVUTP`JHl6^Me0Ioz0Q$ImP=8CLDeoB;)b?nO$(!?(eJozdWer zx8zAWup*iDm$tRHa7bFy^{C`G&ABsk7QK>5E#Am@=7dFH!SYQ#SC^eKp3~;Wen@1- zg_i~2UWC1Wo;5dB!;#T9{<@n$SLxy$Ud?CAjJVjo{48D;I5|<7t?A~KJr~MtZ?Gs! z+*vMMvh1^g>_bD1U!LtL=Vo6M*{moMEqpm4GH?5X|I4@M{9n7bqHs6s|M;!bqd&+y zK5Cb*4P%P?VP$Evsik;V3Av*LHPZD#jQ)rG#e6*)`9%)FlcZ&#-L#<-}fF-Eh` z?bY7B;J{v^pRb;;+I#QJo@<Rpa~81_`_A-ze!hImA6W?lZ<)50=f5BN)I4Rs{^7<2 z%P)4OS){AJm{}j6Q}^+YPn_xN8PDySI6v>&?l{{l*2%_ueZJv4*3}!|@I0AReewO9 zcY8kd?6Q$#=Bw?iG-g{B;Vc=&vq8xyTJ-!LHUoo6yaJ6!4t;9;|8f4`eSc5Yf4%?Y zUqy8}yYEDvcghu&3l{HNdr@>s_U-96J#wbMK9Tyn*l+1fMTTqHYZsU_G%Z}^dcM-; z4O92kRcbc!8&uEMzSy&pXW^++QSW}gk(-=zknO;Bv7U3TZ;vuQQ#k#1!wb%T9A~ae zDyytq`TG2ZmB*O^D$61RmrYC$Wb`^$yY_p<+r2y;Ka5#Ym{d0AH`{6`UOlt#xva@L z<2j2@YH@Ac$ZfsDg7M#v@HNl%3U^LRmuhK~|6mj4e&@Y~KFa~!lRrF{bqcXD&+S<C zrtvYOZ|ljr6O$(Ic@cGg?)2p2OpE7F-u9)yFPKCAtrOQSugB|h*?yl@bIAQr&v7B- z+tn{YD;b)@e>zH?*wfxD`e5}W&fe&Tkifd67kZa&X<Kj8k1$Bk`|DEv;Lv7=bl#bU zF_-1CV-s9cu1!97enDieT=&_^neN}a7Hrz|<jd|kZ##;6`<3UXPn*=Z(PHx%27Bv2 z8}4j2H#N&DeV(%MSy9*T7r);Lc$sZfF^Qb+u^~b4X0Aql0{@}%-*3J~2UjL%c%F5U zv47kim0x*|_eR5?b2;)Ws~6<@26+6=*_!#dGC#$(L$K|((t+h))0te(hA>TOIB-D1 zSB?9v>sxNS%?upBt{vU9+PJ-LRbwji_s45}FMP1PQ<Js+xnyOMerL0ycKytbXpJm6 z{*GMsS65D*lxc47<a=|ldFG*-qV)F7e}#V6RGIBgy3o9U@!+|HZJ~m-w`EVUEk1Oq z@zvwi3|o4l7YD?pWWM7)XClk5!5&zXd-hw>ho3Y5>X-*O?tRKQr%9#u<YA@NvXj!j z&zi}1?b9;en4A+8>A6n?BO6w2-^}yCZFb{^MW-X>pDo+BPau`^aoPO)-3hlHuP;}) zu;M}XjgVXOjm#_FGS_hK3*2#H*}`*So-=*BzRxw_4>>aZGLLiZ!p~QW{4Vd%4$9*Q z3Y~ps{V~V)(<OiG(0Jo_<nF4xn;M56zuF)3RMtX8=wQA~b5V-q3(e%%ttW)yR30d9 zIpL^(MER$UiDXN2nbtuabJ>m=+M8`RD1H}Em^3p&r<iGqWPsb@4{`A?KYZG`TC`6v zVZq^fTdTvLril1XKli3)|Ml2Ig2`^@%m3b(nLGbcWAZxr=H_b>2hJ)~aedW%oU!EW z^x)WojZe$_BfdMHm6gz*YF=S$J6|z6Gi(3%*n~ya4`xWuU^?Nq@Qi}%J|*KtsbSSj z*;lk~yn7k4=v_$S0-4Z@f$t@c_#IG+%G~?^pnvYc|Gdrr^HZMLANgVT=ZAYv;xSvv zrpCb45hf|AJa^qvHJ7nD+lB64we<=shvZ|H_FPeGw%eWyWWI%EUpLGCpC0B@Ci88^ z?*;qzU;QDz)P8d=_d$ln3EbIpGOdeO^8fR+PI`Nh>%jYOjI&FmwtQodU^>CDq5JjW zG6oigQ1fP;PWQJhm#;WiUx`#WHtF4gXK~)qmX2+wR3~>n-u-6lH3JC-fv(oI&$mA- z5OOH8@y;-PGR5L{)3H$FZkq~!iNzfkoj44h{knbsXYud)fA;_4cb47Tw|Dbp=F^oT z3hyNxEcP#Y_b*sFNKJhATDO>QBG1$QiOsWSUM2kf$`!8zw=5MFoH2eDr+sLGCYykw z>c2}&r`G&6J*Vz0DXH;e`__8n+4>L4_TRg+vh<?id!5FOhcu2Hi7eZ8FZ-!O{vvga ziA~+-d^Ry`uv42b?ezqO40kb`*9SJ6R~lr-73(fIR-<vEdw%NAM~1IgUX=RDY9(3P z#A3P6Fz$lS3-Oes&n@3ybNvwZ5qxcs`E9ukvv$Y21yyexc85JyeXB6na@y-c$7K<b zXGN>{Kj&=Qd8{_#rI;yOpyfaHn)C)??Q;hX77MvwJ5jt`cG1%(y$925FT7i1%$@Ny zv3mQ~o%@b`ewJ(A#FVD7zMEUNEZebes>UCmup5PS_ZdD5Sh2P1{`k-Nd*%86(UJGQ z@Adz8)a={yTklWKx%@qQ^0%8}d`nHlSMwQdUH3?CVj;Wn$wD@UmBu#%Qf}@&#!~(N z)RCS;pO&4QRAah(TjV?k`3YOTY}|9>*&D_>?>=4$t(j|H^qw!c@wTzLW*(3D)cc0J zwkO@&Im1!8)LCGIe&{ca3kLg>x17}ZV0Q3!<CCDI%6;0VC0j2S2Y+vIuQoYqyna)O z*8BCnCu0OR85QX9WR)lOp4qzKE2H$58~dJ|KJ`rUxYNGbv%MY|NpAeRu6#-}%Y@Kd z#>Z+uK-VyK?q$0=&;4jF$G*!iVp~pihWWXy(+t*3k!kbnTeXBSD(8Y;v#a}3#2 zmt{|3)_WzNf98r*`g#@qmYI<ZoG(PQc$*p14jou*u%a=s$X10X%3_Cg%T);{23xkh zzH0-XXgFT2dHT7zsq<Td$*hmFS){}ktzMM(aaFSW&&|hPuX);)WM>td#(LV?J)-^8 zx;u{N`4U$obJ;b99`v!j+Tr+Cy;^Dhixb^RezuvbS=1^#EEzdhSKA$OEDCt86ukS$ z9J4i({Z`FAWO(I??iHzswJcoP0<oXx70$4H^|SL$^CoG@CW{I3AHJV**)7U-?pmh6 zDx<!uM$h+5_{%&uYU}AF+ob|e4~iOm+fvAOI!;b)uB}yJ%*?5gSAJ#jIIw^7Qa_Pk z_2!jvZj)7Eyxw1yx6PA%&5oTrD7SW#KtYb2go<oV+FVb`wQKlZF8H;_kYS0y^cG%0 zKaInAKV<&jvHre8JRsM%`1H1z&8-t|vhW-Uun>_vyv6+O7HMfC^A`rpcMktrtF!FI zZsr4ySu=Muz3uz{EZuLJ+>3~2ku9f8>t|+HAGjIKm(2Zd{~p$Vf`9gJS)Vua|84Q> zE15q&bf3TEgZ#6lk(@eZtdnP$8!WA|Oy0b2lJouDq4^n`V++{bJ?~w<usQT5-!rjO z4=%5BI(f&-verX5)uVIn@1;!nYjc`*iN4{MDR@_Uw)eW#X@;UTEDBrfwp@>DWT{Rx zPWBY?N-TWOkUc%>{Lu$eJim&x*Xnp)xc1obY0)`FvFuIjZHx`lZtWEEc-&_E#(S;L zM8A(gy07lc{&9Ro?Zn2sl<$k94|G)?)NOK;z4>rQYci8&yN>3MxA%YA{yzWz^Z)l^ zKjv@yuUA(7f7`d~I+j_bewN+|3_*=kAN6OIB=5g_d!M?Q(0}fO{Ksd#E1p-(tCp~u zM^2*1)mgtkmSLLMDY2fO)pzHddl0)#p@p|v-a6rEnuAZh(oFeSKO5#rTr84jUh4=s z80?69B(HdB`qJ7o)k|XgyLWxt+>+fNBhGQ+gU8_olM7ewY~7&rwV5Y5%|_VZ+y&+X zzmw$N`ABAOogA#dR#3DtOZCK?PYEl1&rLiaanmwAv+3uT{A2IdB<(yJFd@yt|5(+D z17^`T%2xkooci|&i`M3?R?mMiH!f)1mM6i`d36p`z1HzFzh9@nTYr^nOaG)*C(f`t zAG{c~-Q^+MdP|SR&r466seRbY$i<m;)Mi1e!m-7PHW6vFru?&bZd|ze*2iCS-*(+D zuU%z!YMN@H)#)zQ3BSZY?#)lU&AW8^Gh;)egJnzsWhxq*{pL5;oxh^p_1*TuH=UjJ zHD_3+-C|Wvbc|hS=>7b{x2oTNpWa*cY=VnCYs8W13r&<wi>JN)JUw;0TxnihVXb`v zf42R~E$XK;4g|gQJ}&p-LPJn@fWbk%Fa6QJ`D>1b^+>)ue(=*tt^V7p>wW&W*~;~v zoVg`5ZCRe6+WZrlwhLEJT~~hjmie3SX=cXXS=uyzb*D`K6L(AW=5LW|HinMM*-ts+ z7M%P1dL?9_*lXd=hc2tbt^C_=Ri}C#U)aPvm1Bz49vQc0Yu5Dl9?MydS!Cw^WUHCq zy-v*`;ko_ugX!FN%{aH8RBTSR_SqU`^6Dvv@r~~@-!?fPcyn7obk^UN&u5FATqpA` z_nzW4-!Ysun!mK6v+UJTzmA2Ch2im)SECyf6V=R|?`?hk!1e6!gtWbLRy!`)+N3LS z&2RZyo{dbG|6F6Ya$hV{dEw)led3QjmGf=xi2Rwxye9pfMFE#@s{I`vtvn+Ii@18d z_qnn4TYg&EZ>cog#9<O%xncX<;**h5bDh!`Rb3K1<#UeN+wsh@6C(U?4+fqvWYVo! zbtEfK;hV{~t&L08d-7Inn46I5CfcC6JEiDN!H*M(0cG4POg3MQnY=iv^X%cx*M;71 zy(hTA)XHVfby?>lQ&k_@CM!=+oY<##u&b@7akq?lOyLqQGY9b>*LUZ5+&wSy>+{^s zuw0{gHA{=XK5k$2?Y!M;twM*|{+RdMe)He=^e?meP}C9|%gi8Qb-g}Ik%!g)*E;U^ za}O?hJ*y<eS4Yvfk^5=Ij2w?Ef6PG_ym?OCf8s~|*V+3M^yBw#IxUvaa_hg=*0gic z@0Zw5>TT>3%DKH$T5)R7(#NV7wmdtb&7&JOQAT^(N}uB#)l8=yltR+_y%+5Hr~gf( z<++-3+P2^*pEGh6_cxg`C4Zg&u{PPR`_=5;U{{mlq6bXxx~_kodn&=|Z2K3+KgW-E zK0f^WgzXIzIqM6KQOcY4?!MY))|&FAV4d-ahZT$OMQy8enp%}NN0KEh<M@}@1pNeg zxA~<Pma{v~$ZOwr#n{#D&Hf+y|MvYoT>l~3(menDuDf?zU)(Phk^K;JVc&Ht)7ho} zxA^y6GFrKHF;7SJsij<U-+v?=6;j%LD#B}W)=kL|!ahY!ts+b;FO(M8&wD9$u3qa7 zbHRZb@~6|dw;cK<X*M&7YeMsT_JGt2C%4aHHrDp#S*zCEn;DjVUc^pV`U8jc`kddX zA1oR2DpoGFmpCPL=Lj3~Dwnc|x5n#rUmi_)RGAa=dg)`stlp{q4;Jn1epK5ax@KGF zt?KYQ+ds_iT6y@%@qJtMb7EF+JapaQrO>Ij;%}unIo7T8Uijo>%25u1l+{*^d<(12 zm$C<Z47!|TJx%<X+qPeuV*fVY=ll??aPZ8nRU+-*To^pr{vT6_xaE-KqUw8WL14*r zyQDX>Pyaf$@ALHk7Uy4It!t@uP+PS{?!zAUcftWTFV{WU_V)9h;;SvYJ*Ay~r`RNI zP1G@n|GjyWq?Om26)_9_r*d*$-4MK=QD*@+!<*9R^!6YBvU?n-zwIjAvDCBHVB<BR zj`OM=#S7jfPZ26%im-c|JlAMr%VGEPrNwQ36HYEDmeu-s&DgQM@O<p82gmKSrb>U1 z{?HTlukV`7vB1|%&nq^hK2*9?e`4Wm)y}C;k~b|s<#c-ArRAspZo5*mI7P(Mu!QNr z^yPPTuW{!7>f=nw5`}HR=-j)&<czqnr@^i1A*Jk1>wVYXl6hz3uAh?n_R`B6cFo(| z4HjhD#hNJn>&aSU#Z##s78xQJwP)p`4(pe(*J`I<l&p-etoi0G$+73crgN*W1wQ3m z)P4M`(&mC=rN2cKgUcB$>K5oTnF#FIU{KbuS=lO)C1Eb(ysYmNt_FYG`f;;y!4}2R zH>-;lZPtyjQatrU_T_=ujY=yL7EatG_qcp>@87vo3j(Tcol4`MoYp+`a_{-&Yvq`v z0_@u+@v#)HvX);ny{s=+r+4-3`5XTK5dZ)F+q>%P-@gA}9lvq=bN_9dKZFK-yR;!* z?o;t9PPYyH3hTB`x76zlmk{ZD7~THitmgGw0RacaGB<BCcqW#+u_re#Dowy8(E4%0 z>Nn!d-yLh2=149(xZ-e$&#Vnq=dN3A3A`D1X0}^k<IcDD@;`5oOR9eGyTIS=`ILjq zE8j9~T5{m_C&}f(dzsC@m3~`RZF#d|ie%g7khjZ9DxU9hc1RF8b$FJ`fgYXXdwuJg z-5jdD8TZezNtR#@^k85=ZZ)O(A;Ywu2=*kN7vE3y&3%1AFa5}cPr+S(8Io4yE{wXs zy6R<I>CZf-k3n~|);I4}VLwv#eS%ni@fEv@|M|DhzRhL(8^82H{E9#IKQ1okcsIAN zzotI5mWOef;cpvO%jFN2{Sx+H9>n;3;frTi?Rp&gjXs6(t;_oJyUr;`e!+6*J9>Zq zupN~XfA>@)KFZhm$#09bZn=h>J*M}W9d{US-O;>2a;rwn%mB-(X1-@p2Lm|gnFZc^ z-o+TbMEt>oV%3HjzqObRj6?)J+<te|;d+3$?4jNhr}9@n+jDK73ET2e=hsc!OlJPF z+Hm1YXydiJA+ztbpVBCZP5Hn5&I=>Qqd$Ji|M@3>^Z)bxfBxT=uX`Q6Q~ln)${R-i zm)|Wv_G8|Mx1RdPBwOC-*RNAZFgUFl(4Z>he1_rp%#N=jsX^v9x-0wD+5D0o-u>(& z7*Mf+^U%S48Z$yKXkXxTzPh%dU8a1)Di49jmF7G6^>#0CJjup()A{wZ=PSLId|TDX zC&qJ?Z^yQ#Q}PObnmPA5{=94ZCWmqPg#Zb~z8l|pCI)6NoWbrKCA&b>`^!1jUz>BK z4*U<Emu@GLV6Y%$Im@(n399SW5}1~zR>b8f&$C$k{+Lr)X{%h{>Ejme+EP89@^{L& z{>jZM%9vNtXEwE|@V**Dc`B<+l6%3KlRZ@_`){iG*Tu7Evv9p$^d$cI*8*K{UWE*6 zR@Hy=-WzH^dv@=+cL7)DaxHnUf}Gvm|BhYzCwVP$gC27M_kT6>yS$qJpZ|<yG`pxT zd-8(ik_P2>=}jvt|EXCxxN+ACr_8*`6kMkGpLxdJ(AE1l{aqFz^7h2*#b?u|T{OM) z^ZIoL-Z#3E`Yh6y^b79&_cN*fz_aG=jSCAE9giu$E8H?Szx;6N{=4^oai0G&E!NZE zd6Kz+jnUif+|Ak3*7DsbyzzGRpP2O5N0elzy=yw9eKE=U#xlio>}4W<u8XYpljV80 zev7DwOyb`PCczJ{k3LdWxO=tp*{ul&EUs?d6n*i)4Q3UWO}_gKKl~}~6K8mr&H%mQ z=(|u;?&TdkLF-j(9?!L7V#(|2I$_~0F1ILg#d)7kB~~mP+XNLpF7PiDOntM5;aTm2 zC%YG%E>p^O?$|Be%*e{Ey|3;4)Z*DCJN4AFW;(8!`g<l{2$!&stiIUcE@mg&m+DXD zzU*Cci$8<+g^8Q4;=KKH{wOX9)14^sMp83S)gi*XH(h1{SC<$2e+M~h8R3=Fr%$+T z#~gcZ@x{g`3mvP(+ooShkTz?L<ta9s(w^>Z^4xLa{=Nm?eSfUKZI0i$QGcKGTJiYY z<gZ+Aa~i({s52<-jGSk1;2p<7<K@lvH(njnI#6hA72y1a@l|kxnSGi;$O?<!CeNc5 z7#rW1)u|NPoGNS?zi93(D><Kp)pHV^6Q0>jc&af=^GR03qEjsf^8zx@EchL@diRTo z97%hdoYv0h;|T~n__RUq^3O1Xc+*Q<AIj$&ZnU})yj?~r<*xkHtrN~!P4T?_p4IY{ z*~`6~*RZjhetQ>b%`jj0S(n55MB~+!+uWx-JGDl(thoMxLzCbGt`Lz6SF=@4FILqp zx*zHM+IWu8i`0ZSEOR<8K8pM-fAIg?x81rg_HT>-@$CAhfA-OTYriO8anE86Ip){5 zQRe5axt4yb_RC%V=PRhWxBeWf(IW3!wW}Am_s7P^-+c2>&uevq+~RXxh63CLUk@}? zscaBDm|5eWEs)46u%O|N93uyV+ryrxw=!mwcks<xnYYu>qVQUmShB)<_G*FDTO4+? z?s>;DGH|Y$%D$`N`<6%g0W-L=F79HRC;t0FWYLD4nLmE`_ptJ`OHcZkY?mHvd0@|V zcgfo8w@hchVK-FSamRAq#~xpXhYmNx8+P3P)oj1<{*SNsH{buUwSJc5<p}5edv})B zv3ygJ3|aPO`%N9jVm8rs_jKtdw+*#k3DX%w?v)s9kP2hl$RQ{A;<)LJ^K%&Mue!}X zq{L{<cH6=w{dxMIq^0Z=-qs7UNJuiD{7^7MXXCt8HT`Csx5GRcwx6`KTu>IV)Yezk zq-OqFo8=k}Gl~mR8J1_tZ#wfPAwyPcYWd@eqx<YXM}ALNH*sJy-oUVbg35uJYkBtN zOq?YDNid`RNY26r%}vKoU1+jppZZIAy{^H^>oU_Fo(BjW*)c!UJj^{)A$P|q&M#9o z*D9Sm6e+jBe*KwP)1Mq{6Msy&A@kz%1*xuS4JZCZZM2C{OWRWOmvL#9WjlY`?ss-e zb&q^x*zKVG)+yM(Ek(Ry$EGRj_sUN>?Cd@};dSop_ZQ?jo;Al-_*=c_d7k_#TsBdC zQ}JQZ>wN31kMSjl+&&cG)l}->P*B0z*St@`MDT);(C;?~uiV;r%Yth`+1%3fTP45j zB9m5bw)$7|;Aih={#}|@ldX=I7;eZvzfyJ6x7L51r;N*eHY<L3b}Qi6!O!uYZCbGt zKbZ2S#@N3ty?t}(w5v{&E!7S%RdcO&ke$u<a`sYxIXlJ3$pV*Sd>Xn=wNHAzC{Lc* zUV3Xi!wDbx)-$JAJS6{Evz#<^?@&G@uKV$9Xf|K<2hjCJ=NS$NSD#(rbnKqOEknN2 zgr;*nhi~vZR$pn0yUZE4$;@YVuj85*uPbMKtd3A$rxPjF>^Q|fc@OvDrFolqr)KOq z!*KMz#-`A<K2I`k+wFF^<`{5lm6+6u?2DhyuGWjVDIGjNzCEx#VdAT}=eC;FGp=*| zx~vt(aDeS<ub&yy@k0iBr=n)|tl*PQYjzFvRdls9d0Ft_p5h-C_l?t=&6rmT^+_*z z_|$U2E*rU!Qw1A>nPfOF9x$r!V4kt2p(f5<OkQi<-D{V>zqSACUw?Vsy8g2NAMzgr zJWX7l{YqiV0Ts=;PPNCESj~Q>6Ii!yA(Q=)iij+^?nAk!j5d7JImj}VYegvk=6#DS zKmR;_f${jl;?Dafvvsc@VJT?vNh?Y{o#^f8vTpAmsr!}(SV9#Tu2$^ew3xh%RravR z)CC%|_<Za5Wu|Ax{pD%jll5@tF`p}bn<d}8YkGC};EUge+mEJkE3Cbn*5A<lN9J|T zYTKoo%#ADD*V+mGXxuF;`bT=7`qWx?tE@{(61#VKY*jg2eDdHEi(e%v+;bcbt_l6# z-B{fwD-auZUw_xb69){h{L9Z<XZ+*;EB(5|ar^e1jrxD$&wBB*tD9<L(l2aVnUa{c zCe{0yMAl#Fm8UQ3tw;-;`7*Wdq1pF#=gs;x|E_*}&J;FL()cpZzsPrwcCV@VJokY_ z^SU4V9&cPKReSA&F$ZUu^R`Wk6QWpe+<Rp^xz(X7wMM_$W<&pmYmYspLjRP$&C-3r zV^;fpUfWk42I2e81&a6XUXeS)sUcwSps1&sWdmbdgmP$gYT9nWKOTE$UNW!Xk+Ino zzV7sn{%2ePy~(=^?n*vyTQ11F{e0a1ZSjBI_b2cFegD7zx3%`a%$`;5K6h8_$Ns(5 z!DZ*Q6b#Qqe`QzqxN_pu%1ixb*R$^_dS@3|m7Ob{r@LsI`HNdR&5q9v-!8iTE9u%M ze*?bi$&8N<%sP0<YF6?3DOa<3QfB(fMc%u(N!Te{yZPtA!s%uWIXtz@;ny3&id&7R zIjnfx5;prmBG;)C3=<dJ4M+=S+-kwd^Up0kKt8_3tVqKAW`Fn83z0_iAI)CptF)Bi z$)kTu4He36q!?8gUMf2n*?6huna<)DPm43+&E`h(bge$k%6Q&gHO*%6o-fm~ey0ma z?NX=~IPj`(<xS&Vo@WX+OyOhHi{9FsT{rE!%(j_~>g!f+F1Xvv`mOEy&&9?5^B?Xg zxOc(J|E}t~GvA-~Hoy9jwBhOd3bQr&8~4nOd@*;2^fAXy$zNiRuhmR&y}a|CakT7x z-8SBX-&y*9xLmPW6;b}6*zI<M&VCb<iniy=6~9EBT=nD5C5x~ZGEYw`a4;}3&5w{v z7j_6t?fb;-yUc0ZuS4&58|iO|&Cb)5ew?)Z>h}qL`I}1Jn<Lg2zP}x_T%_mB%Qqg& zPV8S*X{2Z6Jm~^Qk><iiKUwc-_77AK+VN@nHq;q>|I=7ECAlxS<KhGFf;|r>&#k<B zdW&{t+g;%qA)LoIXqNnio_>9D@3*eyz3dKuR)$$L&y>iCTm8$JRkU!;#&hczms{V` zUmMo-f7MbE*;%CzIHpM%YtFrCDiL@gDRGah^5&vbc{~~a7X;4kT{^{3>ZwT1cgMsf z8_kn4ZKlMwTKHabp2Vm1yYq1vyPx;t+ni=03QDD+$+^M@I}ff|yxo}Zx!U7Qne&r9 zJ<j{&&TD%)!Sq`8N?yTT3>pog0o&d+$@XeCJGsAoxbIrLvcbx{Rck{Mj=V89whjwf zwRDEGb=-_tKlz*L_J5W~7{6w%;-7o|p_|CeuXpM;ToOL<|6E94+O!&l9q#H3&nE@0 zUMRUk>qb*W?DHwd-plhaB?nd67sw{(p11ik<LeEseN!3>EVZkazdg5as%OUf1457Y z`g};us5gkXl9<PF;ekVup>T|lg256w|3C)|8!nE=)qQ4H7ImH59a>=NbI5B)>yO{- z_D$};z<uRnBA>dW>BKn4{dR`UMXQ@D9=<;k@NialnbW!jW^=Z)ubwvB?Robh&#)#t z{u;SPhUJzY`p&3nOxNId@cq<zPH^g@<2Sk1B=>HXk?!e!H#cFvvcUbM|GGc!8~rzr ze)j+B+S;$P<F`&<A9w5N9mOBp`<VWHOKvDSYIpsSfmLRNveZk%X}j!JJQij-vbI%s zPO6(|N@a;s!S6%jakmnSRqpSrOt$~=FW&IRr=9MfSBEq?R+t=bUBfMIV4QJX*ZBKF zZh<QHpC9*Z@184f<;a$*F?*#+3fJ$%wf<a2-$FZAKHYTfbM(<&&vyH4et%RaJ$l#i zo4#{onF75XdgCP)^)OscNWboV{##FT(o_xG8}IH!I;Ai%Jb5wywA<@Q^%n<!Kb#{q z|8Dkf7w-M+zYoUOW~`6jzt#Rnv;DUB_5a(`c02t1_b-Wm`PFNmW7kf8*>gG1ytn<p z(}?3D7rl<p`)zMuY0$}-RG)0ySNlQx_YDS~mLGW~f(K6RxKi`T;+kEUu3m0(+C`_u z4Kw|eZRhgLTQ@5|?P>SfXY8Lip8w$F6wTOlo#W)xTP_RDZteSV_2815NvHmFPs})b zMJ?!o<-XsimP8vI<K_;Vce+i$q~UF?LPf)-RkO~sxL-+ay?NNN!6^5f=rhgNm#6AP z?7YXR_iVvEsgTcGZv|YNemyFWp(9=GN5lJteVw<Gq?$FSN_ic$u@+n_!dtR=W=jA= zpMqw%u(jdUf2I5M+Y5fB9a~`99Qn3?S@DfeGUBT8uUoEsHJI^Nb+^J?o+)qERZJ+p zROF{M!z}gA)_aH4tqS&4{VG~I*O@_NRtWzcW%e}_`+hbmY?xPgcdoYh>Rq4e@~;-< z@Bhbknr+R@NzPXCn|t#X)u&BneQmZ|<3XIj8-HFA6QR9EB|-t}YdE}2H41Gv)g5^y zv;1Z9kJj5sa~~TVd1HN`UGw6NbHyKyu>>vL!fU7C_2I;cfKR%$nuZ*KLN2CZ=On#s zgZ5NTjlFX3QB`5-@~G!~E$6SD<d;~y;Gw`=leA6j-&_@Vu5q}?3V#sSxO=kw(f7={ zPw%gmP32t0!xs`)w&Zmgi$Fq+&E&kB@N2G<K4eVgoi_Q2>vfi{`==|toiB+#xirI* z<*Zuml?n&mwCAT7e;am5-MBRG9QTn~9h<`4CcZbGsHV@eW5!$4u9v)5zNghExf=*1 zIIzuJG;e+Kw;O98RIX%LykdIxbH-OIel9*#ly3V}M!Zr;xKf<=zBfk)1KazZ{F#CW zWW5%uScPoneXM8vViAYF1%vrw-j8BeE~oAdV^b;-n7Q<u(Y0d_oS$;H8Bct5G*jpI z&2PF}4ZbNy_bu%&Kd5=fdj-#{&6fP)G8GA5O08I58RmzTUYC8UQe;wPslRHqcgx8b z$?E&tg_u-j&RuG37YwZJExzhuRlmOf_3jzD@6SvM*K9e<kaH$sN%)6!hJ~N<YvQ-= z5fq*DdHDms_7ykulOwh+U;T0E;&{H+&-VjXgiUBZyer+!PfaA!z%^pc-uf-;<SG`( z8Md?VJxGx6c-g&d70=wdZT1#{^Zz`Ktk^TbbLHNd-)nN?8u+r(AIC{W|9tW={_XK6 zDSS+=yOw=^U;T{vO=rsotpjTx?7S|XvhB#;XMxqi4T7)2rk8E}ZvR8NthjnB>wo?2 z5B|T7{_sC()!+5j0^NNELR%NerycfPrTKUkSIzhT6ZK9ic)d=_V9xu#|C@JX&567% zJiqpTXe~EN{-1VQ@Bg*+|7Pv2{5`E&<{bZ=$}}bRro&miSzELnXTN=3v}D5EuXnmH z?#sN{_V^c<>HPUMzcgQ+k4#gTrIAxp`;w*PWZcAkM>IkU*5+TCk*3x;<->x!u!gAT zyx;sf&lK5hPEqzg&t~H6Gymh2jE<h?KOZJ77cS+!w6Z2UOR>B3_JbMgnS2c2Wv6uC zU|Y}WV)7*YV!Mp0XY+4^b<zjdm#@ognsFjcQ6XMGy}H8U_TR%xn;33rzVWp<$m8R> zQp|Yitr{bb!nN_q8&2d%Ii6b5EMA;{$Uf<ss>HEL>e^k!+fQ1}bXcC9d)&OFvHZ&J zljqOxz40x<bzOFf-ogO;w`o_8@oUdv;M+5E$|YmwxK7qN-WB>r2X@$R7AijTedV*; zKYd=jpLec)wiIV2=Y7rvGjCL8OjWCuR?j}bvL^h&nFO7i88*>QmG*bL;)<0;f6RGY z*nS}F%SWyQVykYMCtYRnJiX5SCs#yht!l)pQ)c~3{-=wxPL>s7VBdC1K$@d{QmDGf z&%$4lUyHRI4@}z0A*H-v{-Hx0XWAGX#BKj*`LoHq)V|5yn;o|Ijr2L6-8bwOE>Jc6 z6*|{{vg*n+6@O}HA3pr;r|{9AZ6)ymv*pv>vt*X?Z%zHV+4|s7x4H9ANeSm@+;&Mg zux>{y!;8k3i;R0`S=TPDwS9NZ+2(QdyNB7@2XvdhEh}5PVQ%JQmMxtx)&CpJpRH?h zIlT74o}>Tw7@V)FYy3YgTkG}z&1d?mwT>&_V#zZzxE3A!=vCkEncrjTmfTL^GhFaq zL8HOYY3<U&m8Sf+{mmLzn@l*#W*FvuKl#`Gr`NkSzG69ksr+Hx`R~4G*{7ctE>rt< zkn7+Frv4r0G8r<S^X$tvkhrmFW5XQ{`Ik(8zk<$ztpr^z^mgi_91fPyWPYg$vmcl| zSG@H7?Yc{bNe8me><Y^^OupbhYj1DSsxOhU5f!bAkM$&6>rJnSm125Y8P+SbvQp@~ zG25LKrIZWy3UjVkcJN#(+8m!{m2qa*?FY}F)T}i*XPvJ3pGDQnG&I(BMd9VAAuH$A zcAeSK;`mS9n8j+|$J~-RpQkMOkhCW|W6hM%z-v-|mlp)C?^&mDu*U47)N7Wqm1ift z3sW*N_Bg<6$f4dE&BAf@efY|bUvt)%<dko{#Huqhs?PM%9g}Cr)bnlbyqxnR!R`19 z1?>z$1?62c8>Fu;(G63Y(0p!-=8JW+lLK~11=s9o4_v+L9rw8_JQ-7XgA**L9Mw6p z>-u-i1X-EiCGXhgu3LEKERT)P>(ehd!k-EL-F5KJ0)@rjoG%{zn)CUCu5BlmlPC8X z@n5>^kNh8PtDG9T<j<tDrR#fCvkQD1-`@DUvicFz`JSn>qZqqV8$Z`waC9?E<d|ak z?(w2mlZ$d+D<>ob1u|wN$Q(6U;8n!NoW}HRLapEf<4f0ALx29&{ajyschbB6TjT#o zMg5(t|Lx-Oz|Z@`HguMCpIKMLE8CZFbdFreHKkX(jot1uN^j|B-5_?l<-D0l-1k+N z|NnV@|E@zr^WJ+#|M&l0y?>&@fxlugc6T-}4gY1vekuCy5iU=6|6FD76W$M`=UjWW zWn$zK<4%V&$2PDDo8?4I)#6S4rt)k>RDA6HHFI>!XP2&<f0Jhqr-&hgr1f*3r;0cJ zWpQfF+TI*GC7yYAS$(<tU9oe8x87QF^$W>lEqZ<K=fz#IH_fYp>h-s}Z<zNaqxqa} zw94LTB6IJ`{C&YxXg7bQpyNdMwdKkQp*pe*+b8q3@BMym_3XEGckF(@S?hU$>-);E zl49l+u`7(KvX*m9ytR0$!D7D|Tg<u7C(cc=aXuc`(_^+Qc*V9?uY12<;qk~Q-=wqF zluaZhcEY>-GiQ=|FS+eFXJNxF#8TzBC)dDY;^p<mi~2bWrYvK*ZX*%5fqSv@5nbbV zhTrGDj(eNmd-LO&xYN&m&C!<L8Wxhxqb4I6xVp(Lxl+!(^2(bVSF|h+?|aV>#<5Cq zwv~0Hj-?yxUbEB}XAdMjw0Uu7rR~ZGY|od?n7vgzcEL-%-=}oUjP7aVA4v7oKF@Nt zb!Nodrz>|0Ju2(o-(Y+5*uLX+%E|`0Rb{Vt%wUO4O`r2%qNjl6TPqgPjb5%N_aBWC zIb3q0FX#QPTldP{E<`R^f46Y2{#HG0In#qY{9BKG=r(TL%X%PG>UDAN{#zQ4e=l<T zFJ{HM@me^OS_*sO+(ou(4f7{%{a#@<ci|O-OBK()J*c_4^Vx<|++}7<cA1DSFwANC zkX>gd8SPc!vVFdzS&Ibwp0tg!8#IMOqOWsDf9y@EuXvmP&c<+lPn6P2>#DWwTHF#0 zXAWFjXg}%oLEqG@tCOZK+7TIanel@X_mOKyU(0^Wn&-=J!Oiy8pe4ztPU;%Z%t&rl zc6JsP?StmMXFk8~1kHCZ|CZ&_Rvw*gmAlIISX)-eWI5N@Qzzf{jofc!VxsYZbIx<$ z^>4oHnZ~p6{O^Yg%}-f8y6z{n=hd>!JPUZtnBRuTguAKgRZU%WFhSykrMRr`_e(ye zCoHCjL~y=I2(ymnR*Zhmvu;jPVH~4XlceHTCUrUXT=r|`^9tn;R-O1}{$~5T>L*1J z7mxHrO3Rs9yf}G4<M`>`CN9w{yj(v|?$kT=RwHk2B<pUGGl^x-e%*NU>sJQ<^nyLN zYvQlo_`HvYDb4RxB#ZhN-HDM|aa-!92p44ZvY(rfWszkPDlOBsFFEvl+Csr!^TIwW zcd5+T#_DGz%b99?)xGwIo`US>h>t}fxlM^t%*kwfo&T4m?y?qL_wo%NYt66qQ<=3V zIEaMTgf(ts^Qmb_ez$X#>XOZ|Pj!;lUF4Bz6Y1Z&iNC;N#m9uHZv#H0Jlzl`aJuos z!g|GO%M(l&-fzu+q<z2k`Q4iL>GS7GWVkKxEzo57<x^s7Q(ns+$+*g~?E1ds4Os<z zIqdtEoZ7^@dY0>L_8BEsZnOFHyc1LecILeP(9FLtXZ!Z!JinAb|9^D!bV-NZpBL?C z{(RQXJ=3uBh7wQ0w*Mz<H#RcVzMbQ3SrVh2%s)XQN4QbTGUmjS^*6n3uU!z||0AwT zDDByQ`M<OF)(S^HW&izddp*NK%gJwp=RQBFCG8rmarH@<?xP1XyzlJO?`K?Sc)XYY zhWKLx#?WoogVZOSvfB0j97E^g-1qzTowR$)bgxNQX69Lj;HE|MzoqXy=kWGR!q>ew z4i~k({1Y_&h)es|bEPLt*A?+KD*g<(%cYRIlcynb>INBxwC~27OLjZV{VnpSddXYw z^kWl6=iJrKx#zu6`PjQZ7bFB~HYL|yUvhCB=Yc&nqDv(X&f_w3yL0`Jg5z)L`wM^7 zv>jPi_nm7=`;8*!^y%-v{h!FU{lz)<S35G!@P3}Z^(aryW|0Rr@8^otmTOz<Bq$l* z;)%IxX5l}bwQQpc<7OUyXW9Cg_{3bchNesUHTN$aNSUa6)beCb(XD_cv6D>_Y7Sd1 zPtPdR(bl<Byzcd;WS!m3#tCc>zM9GNonNr`<<|ZSzY3OK-E-=F$+bx5gn&gU7ZNlc z>}i_+wo<Qr3+Hqx;f4>_ISX{p<=NO=?`m9_o@nXJ6wmv>ZyL+5WW9w<$Cxe`*M-kx z=Dxm`X@~Pqvxq{LH&@jP1$OlR&o!6+@N=FlzkTBK%ltV{_p!{p{BZFX?(;5FvwE!F zPqqzS@GD2qn(=O8&{y{Ar0A!&-`>3wm!AD}xA4JhS9%;bt;|{R@z+n=gp6|sdwTvh zpG}bd&0Us~u3j`RQ~&Y%g~t!N_7^qH-r2_DWRa7w<v#ZV=hxDm;!Hx;@rJi$`KIie z=}<Sdr<3vEwDN1A+a#Z^TmH$OD<DkZ+$Zxp7pD5Ys##yjm!LL7pTVksSzf@8f4O&6 zwWpoW6Ea;g|BN56g>;CVajmqvu;|j1S|*iE!kywecl<3*Pww<eSRs_dx=A=C;U;H` z{ldtkvX!5Ml9wgRy`J;C@(SmlKUGPf^9eckxh-tn{b0__+~fm2z3pqCJ)QDYdgnzJ zwht3F%`_GA(qLznR8?A<spIkT8Ta2i`b(C)5(qu8vcW5BS(dDtm3_~wBfQEh*q-LG z`55u-bB=e64tHx|{LZ9OyykmFyoF)AYT(2FQ}@>AZqxN%cX-2`;<tOxKfYJRq~OZb z8y?y?h38_~iDfFAR!iS)5H(vH@S{1^`p?0>5B5bZ^-cR<ES4?1z`y9Ci+MbwRfmG& z#RiR4yH{OwSiJf|?DluI&)*!MwbHb>XJYZZYw{NI=h#-g-~0T{-fvN#CmI(&IWe(S z(jsN~x||i4A4O&@H+JP-EG1HFar5rM-BL3@9GaEq{-fux@UdONF^zqj)8_GQ%u;fU z)b?C|Rk*Y&<HCxT8Eyu;&7NAX7O!J4_{5ao6E3Cu^4i&n_vaio&R&yyMd;YV=Vzp} zB`*Ita{X|i=lnY_E*NXiJru0vxbSeV!ZWD^Ck6}t8vZ#OBkD!3e|}*Y^W$pin(0*v zvt68;7d<=qQZ{?<&VBnnS$!!pR!(I*zQVU%bh?c(gYIpI-c8&W=adRGIx1H!3ehfj zaczN4^}5ce{G9!F+yW|IZY`}{`*qgoA93rx|KMqzdZ*ZDZgy0vh4#ya(mR~ZI{)^* zdFk=P#67Kfla80^!Kn;ycZBZxyeoL+A<c|u0pah8KQuXhteG2kyHZ#xxM-Jc>v=74 zdFG!L*NRs#sD}pjv~7u8WcICc-}Ce0x=H`!7<1RJ{{P}|Jp0@F(|_vUZnwYpuSRmq zfBE`v(*^%ro@#LMQhW2+%KLJ=*#CyJr({;y{?%kYb!_WG1)s;h2RgT;EUzuPq;u8k z{quYE+D!Az*T?71{Qv&e-@COb|Lp%hDc-WMYimB+Z<h_reI9j-N-74JiLMBCc5ax~ zy{_K=U8faS8rQTLhP-WorwjF8G0HD6^ghV*>T>(xd*9k)jryisy`RsxE;e4;=xD8O z`GqIFp7U8=OX{fHn0=6CVy@;lreukxbr$LY*8b_U7W50p9I8}gV>D5IQn9G`^t~yS zM{<()D`c0Rv~130E67+fC%aT6SaXVG%j1wwS2TCJOY^j!F0tcXcCGt%sq|*mrhoeJ z-^Jo?$DKbPI?H^@9NxwN!;>ZbXTmmruh_Qvv^s+XYwRr3=5(D_>Au#C#}@y)_B=o1 zrM2Vwcm2T2aldVKPjDQ6Z&odxdcp6TKYxKff5d#vThWDfx!LKC-E6yAvZH<2fAUx< z=S<;$v9jjuR;K8m2@6^_U$c5QTgUKb{pZBfo2C01HvfyMmC3k&VwuN(_qCU}BqUGQ zaeL_NGbQAGJ2mAlk65Vw&d!at!s5<5L%YA$KKUzp?Wc6}2KLE(?Y`;VS&!Tm-YYJO z3FTjx@GVemC(8s26V-D+zh83fvwLQnu=|d0a*cvSN#CdLpuD$**I62vFJ`8G)~@@w z{ts{U*H_|i_3!^#EO5uA`>|K_v7RFN)m=huA}2P>o?omy*>6YnTxYp&XLYQ7r`AqU zD^a|1`DJ4F{|#ZWYZz{(sy6#56<v>6ul_EWDdJ(GY|{O<{F^6!7~b$$EwtU%*N*G- z+f`p=X9#qB%!*N#y3MCoCjI5s5wDK(l6MuDN*2$_oo<)V<9Y4O=Bp()s#H14IJVqY ziMY|%wkh;&FZ0{U5zJQ^GHh<VFe_{>Uaq)M&$i=KS&eEVOXZ0q{RUNTU#2M)Ez^!J zwmoecy=5D3-M*JLd(1d~pMAj6y7ac}^{D&F>e8}u4|ZE+iSD@1=(9{CqerzyP4z?4 zpKA4`aaNx|>!7pFuV4N(ODJZwz#PFjVNZ8h|66w^Ts2CQAxLC%#>bR9UwG7%?Uqi? zZat@zUC!P7&Y(v<FZF`-!-|I=GK*q_dmJV#Ff)AlLR~9sTCVGp0Hs;#yAvj6F8sgx zO55d~ZJUMuW=U>1c+gm4|1###$U3eI0Tv#|^s{A6<$@LXckPgw%;Y?GOG3cMMRDdv z+ih}+UK>b@nO85IF}L5a<EPbw4^tV-*c6t$SC^g4sFi<1=m*EN0|ysaHZ*WI7VNLL z@G@LyD;(6lQdZVz$C-vzaZ_gs$?%-1+jw<q@DI1_GnYNxF34tU%dmEQ@3?#+`{)Oo zMd4fwkv>u)YFS(P(<S8(9h4P0(3!PLkIQcA&J=G;xd)+NN{y>a0>sj`in45*=(_Hy zq1arJBO<DknjaZH%b0#m>2rPY*Wz!d_kXe9{Q9qc!9M<F&Vto`kye2gEBj_khFTnn zs1H}$xPJ+wcl|;C%U1RUe4*dhZ?wH#V<7!qK<0NV`|r9nj?M}Jp04_4?1zILmY51p zzw4WPdaum&{SsfakK8e|dOy|VaoXXZ<<eXGBg+4#+e-g^nE&NL{eITJ+rNFi|MS<h zpZj_DPLQwvc3JbsaT}{hPv`6-$EV%=XFXSsv7}7vOWygdZxSv)`JL0!{m?*i)6~V{ zw*TJD<*52_KlE+&h5vW+|JF4yeE+`w?d13M{kAK1+IKs!J^#9c?U2T%X}1I1mh?nl zyKVj5EA8~zHy8iidtTM@>1Sv4v;^09@6&u~CeOUj-A_EtCHMA6!KTMAMHuVSL%tO5 zUK4Hc=fj5H>um9|+wJAgMXX=OFgv^VQ0=n9#pk@v#M^$1<Yc*hZ&S5zW@ddzyEV&E zmOcZ40;ZjU3G<72ywmKa{?6KYj=e*917pIZ2%#U}HTNH1^!=yeTfT1{O;LZoKRSAQ z+x}bm+3RmiUvJ0Wyu_G)nzm|HVVG!BChPac;&j8*{KkchJVD*A;kCIv$@2VMm*1`{ zvYlpi#CmSFkl)wPc?(tF@@8%;6tisFS@u9A)@LmT_v!U2A0kgkxMaIetABZGE?<0l zVto4Z*1I2!zr?dX&MisScs8eA*dXv)CU1eiNWhlv3wPs^b<IQ_4<{{nRlTX}$eP5q zYaD*ZE7onyyJ-6`DQjWarQ(|tua+fFS6P!gC0i!<#jk|9SCsZI`1nV&lCM#4+mjp3 zZ$p-EWien+I-U~i)qU)0Wb@723sz2MOcl7NTb9e*QvYCvk@oC#Mh1D7bKw^Mr%f-b ze(}CWw0c=t+pHCju6#Q<|GP{vQ*oc^MN_LeRz82_QlbNuP8Rx4V|vS-YZsT&DVn+O z27`m_^YnG$v*Oej3sz4|EqiNq-#X6S`TLAIf0o1A=YP3fP<qDnjqj;?^%>sz!oNSY z)t!}`@_kSF4bJnX3i8|g%jff#eGfG9<dIeDTX3qrd84Pa`d+~wErL4iD;64B3T+AX zJgAwY_l+@6)0*jvP}7G0?J?I~zcszF{OKjZzG+KOs>a598O^UN=ATU0(lShz4E_~# z>#|>c+AJIGlAoqCqyB4zGX86_eURdka{K8qJ)`sM)xTDyG1zPkcU;hHQJAx9(b?Hw z-z@1){C+v0%>CVznX}f&b{T)4wCdl)k68|(!E>Cqrk!%K7R`8k^ml?A)1lk~rVCmd ziVjQn)|^~$-pBM7kHy2kGbW^_7CT?Gkl{3BzvAVe6l;*N;4I&%#V@`(U2yMq3iQ1z zRQPtv^{+|&rx+w2Xnwx^<BgMlu){I0KJT=LFMb@Z6l*%A)6Nt=-C27=Q+sk~z*Cl* zioFFKVm}kz%9|aFoEPN1TpqdT$SJdli4EUsQ_su~zpH8Qp}wIrC~9YjRMzo3I;^6- z44wyn2eVG&i_8>JNI5OO!aY7`-9zcxXIsye=JqGPdz8NWo_)>k<pBcui~b1lT&y`_ zU#MZ)$oKbld93f>gykz3#bPh(Y%X;x+90Et9Lc<$U#{ZeFScTa5bF&#RTuW;{C@rI z*QuC3Hs%Ftr<SgpTY6M#agye@j92otU8OOPH*37q{Op+By>hSUyZlO<I<t(*0H0|N zlV_&CP?2Re^gXxp*`{X}b>9=dt+?{|z<Z15zY0Hza?NM0p0M}c%H#$Q>0<6^BWr<8 z+P6D$KYw}HzCXqMy7{+9PouwmH2=Tu?wzu&|AV>yC3Y@IUD5Q{aGKwNz-&3kiuEV= z?}}O!cmJE*U1q6+yF_M5btqh4sCe0@cFMn--|tmR9{hiIw)O9G+xPX(`ma0V-;>Gv z8v=ywHMBM#+sk25WL4+t)5ZMuwAI;zT+df)wyQ9%SNt#|m9OliPEg`C*Rsv^`+R-G z1E=~Q&$X9(?`yi@y7}2@vvXbNSG}BI6sq04y49@zAmerM7YA4H%Qd`{`yD^?P|>+s zhTpX&8{#xVrj`|EL}uupDpTXgs!^M)G1cq%m(5n+*s_1leZ6JLyXKGc^ebaok8TLu z^mjw1e*B#qiP6TkFaCeJ$~MJh%1f68H)h&7PLG@DI8`9&T_|G=Q~&e@-m63B&pbDA zQRwUkbsbDu>!%p$9?y%HOM3655R%ROH1*`E!gZ|-PW{X$J{@<^+9q2k?yg!tPt@{c z#6i22r5g|OY{~SCdYAh*C#7Dn=eX_nsQ<5$_a0~5y*Ts1uFI0Ae3A-pu4QKa5~%cK zRc6`TgEMZ6%qnKH)7i~zpk{wq=eDwW>ciPTmz*?;%K9d>X!eKfzVutp!Ws&@8;`i3 zT$uS%{Y%iY!*%=T#!k<D@2L{>-gOe|_j<EZ{*Ok?`~Tis>UnTMmyXfqi;gUZ>$z?h z@2ScA|KI-a-?uMz-rx6q$4!@Md#6lw)K@p`^Y1j)vxuI1=$s+Xg($B=uj%!f64kd0 z?^WjS)N@H*9;<gne3F{8<<otO84vFe`%!hn?!#BMj02|6v@%=o`E6kTy>o-ckC2^H z9=`w7b)+CNVEwz-hTjjbxH<p%B>VpU?0aE9T>sihZLRBi{x3TvcACKXr?uq_u1lqK z9=lYY`mp@?%!9QL8IB(Mohz!-@bB|Eg)F9(TjXp`=duS+sXlo!W@2s5ma8oOkN(v% zr5!c6d_KunCbuC<_4$=eZw~p~oz{~(>8Jt+n{Tq^WvvBMmmUb*SJF~DFJj*L^~*n2 zf$kYPUGBmco+hBx=>Pm!Uc!f~lXrHjtT`;nw%tgeWd+B}n}OZ$gA>{vEPh{_ow4YX z<O_!#SN^};Fhk^bt<aar86q#sQ&Vyt)tydS<?gK-`So~dz*h(E>4zhHOB(}z>@zsG zx^oTlOw(`XQxlYU{WDFvv|oD&`a}eKZ=S~PYr)KWuHw?U-kJaZ-D`68U|@d6)?xQb zF}p2i=G`o-D<_Li@GSh;p!8KMv-i(bLudbV={`F~-feq=b>5`#FFC-ya#`yk?PFFU zF>*_#Rb?$UsvKxxn9R^{@`cxdUBz6Nw|r~sf3CCr0AuI3Nn(BVHETAxO)u_M?maL` zrn|yan(OK9iB<RJ)fAr74_%%s6j8)7Lqhiq>pbChg<mtxwfkjW9ShVoD{4>LXkdNE zKyJoi)uxpTPJeF>elv+-PuE_%zbF3v*#Gl)*~_NnD@G2sNxijfrS-CB+_Vgsmo9iX zf7#Aw6)&W?1bp}`nvPE_baXp&IWu&^W&5uT>Bm<p`7U2p<S%XfPxrWk?n1Q%PE7%J z>x0*^y9=0lMPJE}c+Bk(@LR8Wv1hVVD%0<~rdj{;*KhyN_w8!_pSil9>yxLSo_TQp ziaSpyuBxw_pUtn}P;!eqb!*>ozo&LCck8y-FTbpLeL@4%R};BD?S_`SW%=*-RyWW3 zZytZ6y#D=eX^sn1-`=hJ@N#~U%p9}8n_FAY`#cX?!yowA*UyIW<jy^(T!oK5KfG0U z#q6U#Cq470ow_qocWc2j+h?+`?Obl(dXsbMq@Ur<R==BBTDDGRK{I2vWoijL)4KUz z+DtSx;mw^3?|iq;P5LRZJAvoIsv8=$kwx?QCvcy3PKaZ>_;7=hW8CwJQDw_`w>iqU z2lw$<M9t*8*0TJ^Dx-wIJNwuQlJ=+mTc30PbmaEZZ@<3Q?S2*7v><TV1%?UA8>YT% zyLS7~&j@yjV81)c*UcgfRGWhh&os5&RnZE693z#h^ZwwYqSJS^f_6WxE||xelPUP* z&7txaWl~$R)Ge0nO=3AHaUt{<&$G&98GE(t*mP%>UP?8uwQr7`XBl`tXY#v%J>I&v za=2VLjvRlidHcQN_qGeVn|IB<6{B+R`uUsL!VHqBLc*oHOBp>I8F=0u2uf0FSt{h| zy?yf1I>zHm)!nQfT>l^Kn=O7_C_~{IGt;wK_xnG-Ru$oxVQmqnZ58<8;m7$eUe&m! zPgz!^&9u_>WdH9ivn%;#&0s!pZu^Rd^;_pUm)k`5eO!0!T2<2=x0zy&EI;cLmmkr4 z@H6F0@Cx&m2b1ng&JHz8N|_xvneVR<g9ZPdYi0Ep|E~O4$G0U`==jzP|1?;d1ti4R z9c(pQH{;cRMZY~i6~q}h?*7+K;Z-zbt+Ew)exC6bBSX8zQmb<dTnd-UZ&J^kcyjHM zu1?PIlPmTd`fC2*mVdn4PTqg({mkB;`B-{m@r{s-w-Ty4S9glcO1+uPa5&)gdhVI} zYs+7}{PxD;rrU9g@9)p5oM%Z|VLPAuiTMr3%uOf$i!7dcvN`2#$PexU_bCjTKWcnB z&&f~A*|u`erjDg2pU(B!SUpFX_j=gv!_Ti@t_rQLvt1h=7*<(i<ih{u<jkaP8$U1@ z-Fzdr=3-%X2}^f?^VP3b8h0O_3Q7Ad^T{ZnQjKXAlYe2dh;=jbs%;qtOW38nEHzVY z{3RBcKIXZjob^zLM}CvaT&pcC$srvdIBvXX{j@3d!X4MruIF#rUvk<jFWu`W#iSRN ztJ-`1;elx!G1AAYPA=eiRKlk`-I2Nec<$vZ;Wn=?zt~{PB$-)r)+kvhR?fn1Vq?6{ z>n%Que0hGIs<Sfj3X4my>gqLXKDLJYVx-&w=I8@oV_wuYF};}ndh@JYtLEPLy9q}+ zJ(M4_w+C$5(qeA3EY^U1ThY6R4i4;&jBDpeve;(}_wF;epd=;hUEQ<rnDWczyh)zV zxhFjLQtw%QF=F>DX(sE9dtRQIo$)y-Q$VKh+|gZs|2|s3{e8ve)Yx}9cmMJ1GRZ9Q z{H<NRuK#F=k>YZRlJwM%p4nmFPS&hRZp<y*o-V!hO!eui-xXi&15bBWJvM&cvy0`7 z)T7<Me${VKy0!9{v7{1{0iQ-V=ZD7`&b@IBT(Upr^aoz%YjF6y$WqTNU3_}(+S(5f z_49AOh~8cMv9I>+_UhI9XV3V3-uUzR%Fu7wOy?OID$nVjD$01gBiz=6vF-DI`voq? zHiy-o*?P^byrSyD|9{o`hbrqoKlA>bm-6rajlYMde>?fzzW0p5FEeEeP1me1r7_xV zzcUuEJ~@@QXYSpgnkyCkJ(FjivhQLF3;M}=DRQ0az2bndkCK+B7|x~G-<TbJ>bIuH z^JyVJPl(0eK4Gx#&&+4y+oD414#;H(ELz?8sBc3Lk2+H#kMi0lQVb`;<eo~~T#pZ2 zFvsKv_xJq__AJvEPkENX(BS`Po$>eUqRfI9SDw#YY`_)}@xH$P_1e2^B8hWre`ejj z{8~CVzk1{Ir0GH3hu@~3+qR&1^_ldCzs02`eVGhab}s07C)xP!O7DTmA02j?Gz&D! zt1>Q`_FX`sJDI)8_Crl5!=l5}7?f`6w{H2jp)IuCbK!#<_l_8;=p3`vXA?cBz_cbn zOI>x(q>snn=rMJ-$FMt#_<pyW(IWUjeRp%|PeF^h0v3@E_iogU>e>5;^BrUQ@0}dm z*8O~=QMzSW!up4^bYdl*DxX;O{u{$e{nxF@K{~sc1B6rNc<<r=<((K<X2E}5ZNkQ< zmZp=G=3V#L->^peWwplPsEYWVX0xuHXfj^Upb&f8?%d+5hI$vbs^v;IAGvc{{oTyP zo)h;QJPb%VerV4(`|>&Lb9I$3&)>)NHSfc2?WWW(o-u1S&w3zeQoBl#(ea_%OBvDF zY~BR!-}COjOl$UhvL#dQ`;AGj?q5GBdhYSJgmYGPZ|fLKcHCfe)NY*1&{Ok=PoK$( ztw1Qga7jHYgUXxSr=RoAZ@(|NqQ~X(%x~X%K6Zaw9KNiN(ds#44TH$LoK`8%X7;Fk zE1&o;-SLpizo&CX_>H?ere8R=<Cx8EuZ3z8kI!JfyMLyHuiJf#8|)w7e7PI*``W|R zW>Y0E)V~p58T9}8zjd$9ZN2n<-;IRlcKhdD0-f<wr0>5(XD(y-vVA>1v(1cL!-aH1 z=11rsW?bFs_e(E!vxO8_)72AVSElacy^u7Y>DQ!#Q+n2>PguC%Q1Hv>kSlNRm-?zN zz8|a_drp+$dviYP(eF=BH}Cy>&H7?-^!>#@R5o+jX|y^!__14V&R-N!HIr%0-35nF zJL;|~zIA!x@<ctJ8z~i^<#K+>=FjJ2saq2DU~cL|jq2dfXI*9$^8fhUWa!1tcr)1| zcfnrO-jM6>AA9~++GJ7E*UWmLEb!>_osV*Mev&Fua=h!lk|8kj_$;O=4R7?lc5c}w zVRON;luce}e_>~!5G$YIN!RupsVvW?HrmMYUHP@%@oxY8urK;z`;We?=&3Bc_Eozh zZi3)T(|56ZYbBd3Bp59IKfM@Z)Dsi&X#)Gx^8s(~Rtm@|OT5rMeeGVE&byyE&Kv8C z_Fc}rk;vn7^8%v}#~p_RkE1z(KfYA5`NWA;|B-6c|Mnm$d8Tg6^Z<wO2N5TVP8i8t z{<c8-^cv*`xog2`-a1oj46GG;1%tzcqeQqQivCPG*TwLAalc(x&i}X5D*yhNU9X<? z&sz2Gar=Ln3>Hzd8BE-}{cF~z3NSxwZF*vQUGPnxtDBKS!@DAzEX9sDo=iCs8&3S$ z`~6;Y;O}~I)Bpbqm>J)_efV%s>c9VUp0X`6ZGJZM$=oaT89!|c9!bv$XjDzzsN+5B z+CHO449B(X&-bi|5N9ntcVdlp@o64^wo1R-ZtU9(7HIMBOk-Os=OdE3YocM>;kHe! zv3>qma@{Y)o8PWU-u-Ev?(F8BS5}`5PwCyZDX`>~p>xta1!l>l;-kyIF07v4sPx#P zSnl!XB}%go6*S&>U81|zIBm|_0)Nhe2e)Rqgq}~oF?+$^^}E>RU-u_#nbzH$zoR|D zqrufl+~)e8<rxPy*k8DI(Rj)n{?oTUbywb!of7oq=VTvsM(wG|Thddb`7Puurf>Nl z_&wf8`|eBwi*u3QF()o+vMN+&%&Ev=dC;M@BlzM{)tVaCf5#5Ys5hV1%By9)Y3+$! zLU+vHUQN0*rO=R*)$RGhZR`#g&OZ$+`d6j<{rsiL?hSs42NwLge^Vp&apajvX5Q7u zgJT%0ZnAz@p2EeXX_qf)({sT;sq9wQtvg!<jNi_W_Y_~x+3}%f+J^Ku>WufR*cxrC zrQg0t`_Gl`*i^LcfMBZ9JA2cs^O{9B@KmP@ecn>ocI^GS2hA2+x*yfNlzg5iK1G0w z&8O3t=XrfS|GV4^7r1LB?bgS0@LgpTNu1zwROHiPo0~N{pFcM9PTZfA)U<3x+@H!* zhOFGL&rJHZxpQRz(-X@hcAT@_q+jYSXsYX(F=4K*!PMAH{o{W8@@4&oiIOXq?lABc zkUlplwfg+&>D#~E+x`B=2YIb)J0<UOF<3Ap>)V`;c;!^~+TwS2Z=SYE<H3DWcBT%? zW{I(;ZRwxe!gjT+lwtj2o`^Sr*7r7Kw?8z}luY*OIC=fn=jW?a7dhG8(OS?jH)~q7 z@PzL7b)YWQ>zynQPVSXDzow5vYeVRPo-<mv-pokN-lF;8h3(dA`zP;mT)Xw;+ImZG zU;MZB-~zYu2AdTgroG;p1!gR#^xT@ve()%NSk2ph=!LnrX!<`rqm!Z`3oac{>e#n6 zBy#_pvTeJglmaZ~M$28X+VlAKBL&;wC7iDgykONe4cWxRk@H|TBU{UjQ<t)B^_N|- za1czp(a~il&-F<8fJEuktJ?3=WgeY)vUz^N#13wrl9`$Q>v}Gp(h;!hyQq5fJh$w# zqi$?-u6W4pSa>4-qP6w$<xWelNoKSJ<?;t;GYEJeX=muqo9Oj-(bGmgtw1SOKV8|| zOFoEQ`N?c>;r#=X-G#qCEtqHY-%rI-kNMZE&uQ1bPC3`=@55u8er3Zdv;IAyJD>jj zb$8<XM@8OW-_$MNG{t6hF4rZVFI$&Q5=foP9nB}%Ah=ysR{xChdqZzQm#cNo$GiA0 zvEHm^-IltD$BJ=U1zWq-SB@KJgH%qP5_vOWm2AR;%wIDfK36-C(!jOo@#>}1zHRo@ z@wv&q&GOLy2m3;99iDpp@0KT4q8yEDtF|n>zQFSEuNQou*yaCi4fwtPCPTye+Ru-5 zf9&Vm`v3g@PogH$JM0<4R^B-#6f&baS6jfzIylwYt<C6K{Q9T07J?c<oJ{t4t$aVF zR$Y6)?{^qOf9#9**86|I<@mRI-T{8Qzk*h-N0{dwzjHzEP+3#g`!_#jB1KY{S~Xnq zh%8?$yECF}S;8{aO%99ZSzY<?^niQAIUT#E&C*7@z6rij2nehF)%o3VmWIwW)x$1~ zle6;=hgmjv2bQ&_A22LD_xD2XwXd5PRiDn~WwE|>_}AqHAJ-M?3s}|M3F3LIc5I6J z<CLNzUb6)grrmc^@o(J5RNW+8G_Sise{S$9+iSDJ40tbw8S*n^G;J)i$$R~{B7O1G zyOPDR6XqVi+3sVjv0bR$IH<4EY1s~iX9rd+h!>h;S#aWL!Vbf)tnyQCT(r9WWA5V5 z$3?#{brIr}S#hN;M~LNSIAh&6+YK(#w@sNY-_XzP*m&^%^uJf?HWc!w@Fei_J*^Io ztz=Np`kZvYgmK|Ux8G8){&}x?&wgu7EE~V;0uTOcOeI$&Jha<WBc83Pjgz<CeeQS8 z%Huw(Hl5(w^r0c?$pwZVU-n!KWlv?eE5}*VviI<fS3kYeww0DKvoM@q(Q^N)qj2Yv zek1P3I}Bd*Jm2x?^Qzr!60sKA-?qHBoy@)U??ldL$p!ui|GQP4dOP27fAMq77P%go zXjV1nb;S0))h?Om<{!Sdc&=e?E)T2bf7hq!+&AP!A9sA3U|X|yM!)cRzo{!e?q*Wh zSMYvXVOU5{rhzf9)4GW#!>6lpxgKVpSg?81H7VhnqVpKrZvFcA{+e8dIY*Y*^FN2% z6pZiNFXvPKZfIVp_WgbQ_N~z={j!g59eCs-u6X8P9sBK~oi-0PP7|+qcj|qn&3T@N z$w#JZUswFnGew2@w_Dxzi{E9JCQmzW7{Ssb{_4qm@t>ck{;uEh#(Qp0T;1$7g6sTW zg_kx)Zdny}DfN@3L{*0GPVa^-AAZI1Kd`&qxT^X5=hvBg=Sed7zhPyMIQY^k@b$w8 z<*-?rN77F99Qb&bajp54baAb{>j(g}QlnF3vMv<13gbni}X7eah?6>_?%lN3$Q_ zd-g_rZtQ%!q|Rf9JXVBTR~6<zdsx)-JbKlqE^)RQJQ^-{L*2|S{4;+2H%zKFrE22a zwqhoEZjoQxx~i7uT$W@1rySPQ`+iH(O>di?k4z>OZ7C@^50+1=eIRh%`{C9_Yxq|D zGx&2lLE+2t)aMOnCU{y#g>0;-Non)C`!s4op?lDaLl5F#C-NFPu?SB6e9A0K>*I;9 zi#0>qzUO3FcYI}JZ@<U(cg0neL(Ou#dB0DP)XLJIaCSnrs&~{J#yI1R^5>?T&Rfp5 zY*AV5ymMLWE|%2%4V<uhlNj$!nNML|e9l(IZO?r|e=hqr)onua+vO4&X%n(TtkNvm zR^_>E<2T7!m#dxJn`U|1h_C+h%bPDEj_%+2eOXlUozwSvOdl~zT=2f>%F3ZFd)f4O zWM3eg?*~8L1J_lL3%%Yd@#@OgKhw@nEvYdII#xcDS8?fF)e7;0^;`Mv|Ag+|S(m9F zw@3Qmf8X<e<_rFb*PAZmToe8<=J$_CE52a1#s#i@fs&1Vw>9D!Cv184$+U^3c1`(i z?dtDyr*r(<zTp4&?GOIHJ3CwVhyCs4^ZyxK6K?A8w(yELyl3g2bfy5wnC4Gbo7T?b ztA6NPFm+a!k6i5WEyuf5cPrYRd!VtdR`$Oo^USCjOTQg;d(O`o_GjM)@m|Imy@iHb zWV%-zJ^kbSigo*H({(pUw|_eH?^*c2zQ6MSKL79i`|JGQT<a_1f+c+F7tbvB*(YJT zL7(YS$-FtbjUJcgR&O(ms&Eyk@JOG>-%zQm#s1>Z^x$g-_cni+t;(Rm;P*TC{Lg|0 zW4leiHk8ZOSQH-l^2fRK{*H6PG8)~Ur<t!im3IU^VdJil`gY=p%I<TzcM325D!ajA zbES{*vgO@Z75UN%Wt-SeiN1~MEz4!Ha82bm{cUyS<<zBpkDGsM--^FB@!-+(Y}pJC zE*w(R@9xx1@O+!5aC^qZFm=hhtG!(2lvy`rO<Of%o@Zp*W=H<zO*_6AGxZdmJ3CcV zd*(Bv?~_W3Ph7a@b%KxeM*nYSE2ASHFW+QHJ^6g%UhP@=8QPMb{QE4XEPPAYre z%9APz3xpbPpA@=cx^`n$^RC*S1>y|LZkX*+pSL|ti|3JM(8sw`_c`{4b^JBIzQsA^ z`WIaR$$!%8<X?q}aA|2tOgT7Ne^bXcerYZT`K7EHM-6{*r=3g)F57oN|L{znHkq0h z=3_?<@^)BmN~lSHY5(&>@5lW*kFUhclISs4+qUdTsIrBwSHK6!y&tQmUYXdx?TGP| zk{-QfM?CG>Yp$DWmSuiUI;+E=saH6s=w9~r%iCqvGe0xb_?GTn=qh~S9+S?2@Ks^; zR`NBUu6NB7HA{MtJwfom*LFYFEs{~kL!YZI*YFDB-{9_=wDkwS+E=x@_(S{NtnuM7 zW;n*O<x^9PIE&ou{?9Kg|I}BlPiJ_*xo?lnKlYI5vku9}0vS#E+wAZ4E9ks_ZM>p@ zB~tO+vK+g^mB$z6UsPJ5@NTQ-ihgm~U8{WW{cx;#zM?VLroPl+Wi8)7zUGo7hNhnW z*E6^6pRZ?eW3gC2oAQ}m*$y64&m2fNo-T7KE%6Tbe8qW_94GfA%(=E(=JdqS#JyEb zJWf5Xw%5u<txm~=vu=8GyUQWLcebu+edpR4?^?SyX?~b`&Tek7WW}yp!(`dJUpM#u za_U*^KV^$j;B=ltFAq%BY+mze(!a?fd8;eqg-ov~_Wzz<RC~6PzujCW)AF*=vn(0u zja~u)NnByx$GBX-xCp-eem7F9H<e*(1JAiXV&9{Rv`RJl4y^pY_4<VMzGoUIz1Q?) zl#xFDa*KPk_S(jX>+bIwWgLZ9v)niLV!87C+Kj#Bd(CCtuU*T!|G{pNvC{>ShhKV3 zGrn2uC>P#pd95z+TJY;;zK*v$uI*qe<v89wQ*rj@=#!lrKD}TFZ`eD7LGOu`t7?m~ z^Z5fJClm}!n}U~@gj7AVXZfEOccXiIT-&Yx-P84*UcBFY-u=V+vi`iqE~@V)^krn9 zk`obDcGx@juIc}?ZVYcPSBwApIj=Ebib_uXp6~CvU&vf+{`dahz3p%R{Y&9Lo;JVk zQ!VrCjgi|9b!97_mOmKwrcwKJSj9wH)oKq0;p?XFoPS4~i7g6z*UXuuW7zQBPUi20 z(u8lvJ-gpNNDqjO&2~!=c4A^YwDOLO<F1=4mWo!ddM43$@W@uZU+MRhH_iV4F8@!{ z-&g-jHpc&&I{*H?Ph$69o5gV6Oz-~M<+Ijkp3n#7#|P9*|60i3Iw2zMH8W~m`dhcN z#?dXJrQ!!HQmjv{iHuujdwIQoqh3(CVHn4TWi>l^8`7BeKR&bLz)$}J{ZE7c`b_RM zKW&@v^RCD*o^9t-Zv-B;I&5)rru}n?XOi=tUrvm%4*jwF#x+BuGA&{0uDcS(H!e?o zKJyyu>&?{x{<oP9FxWZq?%wOexSnAdqfWvuYlp(A)gu4jC)b6t%Q+s)_|DPjxK{k8 zknI<iOYX<EJ_<>$47f98b?U0DE2<yb9bB1Cv@WW-koIt<%l<{oQ?z_}<kd`P6e+o9 zx?H+gY8KnH@y7a_VZS0>|4BGLU$i_}_m5@&!bw%Oca+s~TN3vxHwLqRc&Mpn@tfC; z;nW7Zn|l0AC%A8UYFnHyW@PYPbF*Xf^q0HRtR{bAbP<c=^z;7F``Uf(@(+<s_XAI# zf5&~vXXBwDhYb#1(_|ev0_Li&dFeB0p3rlP)0ay6FS#0?slTzs+PJL$;J@{m>IU1b zRT7fy`u0e%{Cp68R$*DzE5@$hPes0mEpp+L(vPiPRId2yx79h5`Hh^@;=UFcOs$UE zdU0mQ&AN@VrC$FzTGMemL13=Kp4Wjp<lH~x-~3m0(zgBkdqxfw>*SMrMO1xHGv+Ng zr(nEGXZpJc!Io7UV)d-`?lbOhmOsPdw!7uO{@+D+%E2??dW;oG`WID&-<Dqc61nuS zhvAB4*W9`1np|-2HhSUty!_V@;k9%6j5W5ruwqCN@mk@aT>ev5(5QrcuYAkd+%J3G z=9)F-S@t|GXyFuLP+Vo9(HErHF1sh?Thhuk%cHsZd#_Hidns}(vD>mnkl8c1Kg}{l z+#=*A|MdIGLR!fI4=g5BJ#R@nHEH#^z56vbrE1R&jM0x~y>)cT#fDQ`jGE4DTe|<i z>z%i<JH=9M{)ogZklXU&=8{jh99(VZp1ZBM+3mK3;*B3dX;+$<JfiOJx}|KjO(viH ztAyn8*7n6KHmtbo`)dA+HJ>-L8Mm@KFfW>WjxV}}(M965l*0j0nOSEn^dBoEa_<w< zIu%`37M*>`NqmKh)K`a3-L{L0zp3A`+y7?Qf+x?W%&nQV|4`|w%G3>u*I3JXF$Ayf zJ>Xaplgb???QXtKIrMJQt2F^H*7WD(e|vHEqeb7=IeB)+<aBsbF1opi@-eJiXT+y< zF5TPY>p#b(zY|>wOGnDklnmu_^E<oS&q2MwL~7QN%&{X@<?^Q`NT%{jQ%3++*<h zzjXA6{rtQBU*GrB^va+4=f6EZukvHL(1d9vk0yO<e%;I?Kjq_uNjBFVk6ozv<#g-; zZ~v(^z1%%czn7&Jm))!X|CXcc-Mu~A-v4>`{`TFwvw0bI<jnjp&+=QrarP+&mFsH~ z&x#mY-(rwD#OT(oXIL&EacQCcta29Dc~esFmj9n8-TZ6k^22dOYj~&Bd|P5}*q#xb zy~WqW>Jf|4&P{&H+Y9^_ztJkc*7y6Bjb+BvX*KytUl}rPxLuZiv-|%K{_TdpTz}{9 z`=0;iQryMPD|<t3*`(a-?hmU~ZMo(3PTZfNd+Tf8bBh{y-bC(ct`d85Qno3_(Xx)? zxQWwYBZg?+y%&Fm%=W%=w<xA|BV&$f@Y;$k4`;v5^DT%xI73XcX8p3D1uPOwSEAKt zvrgb~=(egku<gj->w-%X<jzmKnUl7o(BH~B>~x<h7uTb;;S$GBTg~<E&CbtQsgR)F z@Z|8ilKp$T?<*SXC|a>*9eaP_p2+OPt$}>c1UtmpeEv%5n&fafq|Li~?|e$&I^J8N z35P__@&8)FJ%dwTX@>dp7oqQ2HdT8zI#m9Ve$Cc%&`!+#M!f8G*M>(E8`|DDisvzF zFY#nolE`==66|ewKFGj-xAf~Kkxzf+u1C+#+NFJyGsUIl-K2*6(vZlu{h_mXZ})`d z+;qAeB3H2Nu6^(3bq=BTH8=2FXlwi-w&eG}Su-nHU*F1)DxS`e)O_&r^`sS#{U0z1 z^CVTeb{;WfkKd<v!Ahf)Np<(%9gV&@&tt+lCg>jDx*}%T_7~Y)NfQI7nKkh{@5{Y- zuI%OcO8c7Q9p$#oH#1CcG)8RGI{HC|=fH$lzxvI}-57UY+2Pl7ewUOBOaI|B$M@NM zyf3l)#HDii<==P5-*ip<eY37!`1@sVhD9ZdZ#QM^?eM9I*!0!My7Sx3jqjQmEAG^t z7TPSbM&$B(zruz;S{p?wo~gZX3UivtT>SH;_~i3blg@86J9qF^!L1K3lmbKgZhZgJ z{enYGRdV6<mSFzdj~J^j8JgKn6F4lK<GF46I*a*t=6^ox|Mn{ngU!Zpmims65AW9; zUp)C>0xP>Jlc&Y16Hbu<-$gfE{2+d<-gNQggJ=B<7H+(@UBx;hvGy_pk5R=0!OrNE z3%sjyELwi5zkb-={b{L`m)y6Hw$`6{0=%{`-F{!b&HhbJt;MIG?Uz$b%#;^5|2{SE z%egiCm2a$8d+sh)o4+Xak+Rfz+26g7H#je7Y`Adx+?8M4=CSRQQ<PWBTz|`VInTWF zgJ!g;j8kV)>Id!IwjIZ2vj3ZB*v;}UEFgZn<-2zM74NS9h_hU%Sx_pMyhTC!S*3>Z z>+mUx9PUw$JDTPly->A$lMjQ}nS=K<R_zy^b$`tg=H(5&9;V{LQ7<|_o%iE;7!&*W zeV~2EuiYz-=dX$HGt2Wk%O;(Dv*lOyx&51V3oglVJh!fV%8g^Mf(mTseB`i+TJ(%h z{me|s@2bz&XfVGMUsv1_b8OOy-l&%;MQ3_awJqDGzV`mICo-kuL1RX1+X1$&Jxn@V z{B*8MGC9`H&+3ZIpU%^CHqd%?++M%mN6rX2yxINjluE<aw$JMMGfmFa#cpzpVOX-# z`p`YEG@ax3+}GxD8t&z{zh(6Qdb_}%-@o$zpZoSamu12H+JCC8KUp$n@m|#0uJ|Xt z@a(fqg-qNcZ;WqLPvJedfA58hI%hhhnzC8`cklgwFV}$K-S!3lt@nT5t@x+B{Qt4K z4=3m6-e*6Rt9Vy_=C``7!gHQ}cr5s3_bWH<=Nj{t&hm=eR2s?TlVEpn%A&vXFAFwH z+`qTrS-#p|Ru+!-li$Rel`7_LdMvzPR>I5{X~8GkwjPNqO5J->MLJjKch%nH1f_?z zfsW<}3U{yn{Oj1iFK6X%&Hw+gUew``>Z^bLJR%#_7G&9P(G!XIowlB9ZpQi2&K!dz z#(-~ur_WoePB?K>-K4blfr(5h=SI<hxzY@hHJ=UbA`i#KcF#CC>%r<R;Q_C|9b6&) zAXO_|;PkQrzN?vTue(apE_Eq7l%-7zNMG6@HLu(9*^W)A&*nJfD&JU^qcOjJ3!~_Q z(+}2dQ0_c7<zVd=X1<Ab=hF||(3tQ@@@nmWw+Ral<u#Nxe{I*>{E2bSqI?G7to7gD zn|xAhXg^?oI(>ufx(#m0It*+HcXkvWjq326lz-UR^vK%_MgqrH^grc2pTXwV_O-n- zF!Lm9qx<83o$u$rzGRzo@T%z~uDvRqn|p+pz4;;AUn{@m$LBlU39c1oDw;9Ui<jN< zRaz&x=ji?F4?mRNa-XUU;d3jzm&9D6$?~Lk>zgY+2VPnDJlC5M{PxS`lX`K*xy5Uj zzrVEq`#raUoN3QPYQ$0{JvtWrKCpED^w)cPKOfS$-5r%U!7E-#ZGP%B##;<;IOMkr z{mDrR;%Yd&&*|w?t1nZI{OQ=l#~5{M3;%`YtSzyZ6g5l#>^)!2e@p*L)}y(fyEzgP z{vJGTSzuG$$#Q&!y*K;1-}83x$Y*SSU0j#&*Zx~V@ivy;vO1l{l8gfh_unsWX7ox3 zF}s#@-*W5b2lGGv^!A+ZzF~!foo(00y0(A?zQs>u+#9EH3t3(a`qW}{PDz*RSLfYn z-@ct^QA(Q69Z|53vGMUy-Dr>5Hv;Vb?n#+?=kx2Ad*&^F(z*A-y!QI<a@Suo7&zaZ zyT+<V{alL73zg@RR~CDx?6~l`=E~fqP5Ob4^J=tLZmhhPdRFeAN7P1*&nY|`E?pBj z^XM#3#iQ_&e^N%0c9y;`uZdb(dZ(~2&fD?g`6)5YVB_@a%C&3UZ_muyH^Eo#P_)5^ zqMlIsRcoY}W2Xo2@#~X5?!uVvn0dhCf<l9!@PZDfP?zJ=SFMgpFy!`W)C(?~e^+uz zlg*VKf+2Q`9(|qPYOlF!X7e&p!IN2LvhOTymlQkaq;s;1zRi-@F)?(~O~t7;Aq&3+ z*~M4BU-bADL#o)ahXGFhv0e9Co0Xs6)TzFZ7Q58$y-QcM*{WPgZ@DjXxDRT)JLQvl zM7;cw=Wjj1gt&9_B+p9pY8X!FPPa*UxFqGmx@i_A8)EN2-@UOc#-#Lu*vG#o8q)8+ zba^cM;BLiE-dff_ZL8i0eKTTPGxM+bi_#57QxzVV%DjB|to!UkvjbB6?!3RV(pR0& zJyoaXu~6ss%xuo^mfQuCXK!6~>B<hHw?Fj`NSOXN*MIZvX>aYHv-vkl#sA!X#xnE2 z_r3Z_IR`F3z5m;0s$rU4Y8NZtk*N8<xh9Lc?&|eQP!Q<I{<ihb+lRm3@4F+j?e4Un z`#0DB;Q!Zn_iI@FcmC)P|DCtkFI^GQHS?K`&KaA^Tbz5AoLPUZbc^OeJtwh!XL2T0 zT+5!U5cP1gcxsi=>)o4se(wFSYg1y?wluCEY>!XpFl;w_w&DWkVvWf=zbU^ry!KDd zPmiDJW?Dc<xb^nyvnT&<mDOLrZU6T?iTJ$mdrea{Iu&lrEXlHb%)nUq|GSx2P{@BD zu~yHT_Xo~ro(&7`>^>&_{N$<1wiWXGq8vC6K92d>R^26J^6qKGVg7FtPs}EBNIOWU zu9kd~F5?j^x@mn^)|baNPm4tvnQu69URixa>%76u2@4P8-h5Qx`}?})uAB9D8KWL+ zy|!StcwQQ|(R?=3NueEjS$}nzHC{02{FK|kBsPUtWJ|rw^Q}vd1x%9=dAV#t<%*y- zBgPBoCJC>WeBzlPo<48p5yRjQlXG|(8Be(-=bT%%t7wbeV@a1@b_2%p;0w$XM9iK@ z-QWE7Y1}tuv!JKxt6v@Oo@UInC92dc`dxSX<HOIkn>4jetCM=id{FRKu~vch&N8mQ zLN(#1|LVk?P?PTay3kNNVt2^;@|Rpk*A(b%ZGU8(@!LEi+bUeMEc2C<u|vV*JBwsK zdBm@1&|RQ#;l!(yCidr>tb9X%2yXnpJ2#}-t<!N9?=QQYOa|Uk^Ebg$c7J)k(<qsf zd!A>Hq)N%5eLwgTM7}GU7^dmYb>86Nw%U5rHJ`E)R%P|twbea^fiI7oDtu_=KP@PA zdvANLEbo4i%jFO4<~+N&o>ymo>jEiBM&7sEH^*E*Iw$nPc~{2?9y(VpPIV~WYy3F9 z$Ki)X2KTqNiIGy(pBc9$1RfW=^yl&0cEe|xe|kilcAwm@X59Zx&gZE1ukyaIUf0~7 z`SJcQA#I(DYP?>%HhG;>*#BU{;>&E=%NK-wsg-$@!Ofgy9bkJ+%<%Kd1g)GJiwS4+ z#F7ozm>UIBoHn1$xKi1%yJ_CBW`=X~1x}pc3bUPQ<h+2ZQemFZs;o?h-A3jsQk=Be zO?7V1IJwY^-RsM%f4_@wX(i_x7?quh5s}MaQR8_ObmCqpTg{utQ325$cUZ5BneN=I zrzQJN?}+NhrBYv*Evz^uiR#=kN$X><aShU%qmnK2N{G>MN{q^arti~QJNCX}+}ZtD zci(fVhsCoPnD%mRefME)O_7#9=bs}xzC74{abbDuZ;8(qDm4qMFMYbT?m^K1zH$xj z)jl&^bz{0*y>{*{cvoec+PrB0v`NO&s?SRlPR>i0PAXi}KkqE#($cFP{(e{g2($h8 z^KVi};rRs%moT?ghAn4)XB79`s=lpID&&9QeEUNm7V(6#aV&Tu&Sk6F@g;@VhoPf) zK{>~&xu0gYGq3o(%dhcLDwoUC7a959?9Ab-G~X@%xMI$dqn8rB9x(LGN-e+9^gn*{ z>)ESyAOD|L`*wExc5(eUmVMuDrmt7}alUM+O!3zIlC%rECT*J&eB?97w<j%{=RB=8 zc-A+qd%NX)KoN)aRqyV)cYn9%Y>$6)_Vx8|cXdDifA)3y#aHhy&-<Crv{|GfIxR_| z?uv)C=!cG-N9RQs-7}Qux^O^2GFFAf=<Y|wE7CI=&%dd7ozC*+Lq3Q6w3J&0H?%ez zXq;Y`^gsC1)o$Lb+{Mj)%kRG6sg`t5YZTx$V^TLbnl$yxI^EfiZ!`s7<}rPcS;+Zs zB}>|-n}!+O*E0+mCOWU-HsjtB<sVwHaq<=u+Zm3FV;a^TIMgO<Igjh!Zd=;}g0a{4 z#Jw}UnD}|mtLtwY4|htxND8`j>{Zs~`QGmg-f(vbb_u52lykqgwcBAX&V8m_hW%E| zJZ<NizR1w$H>G5QX1Mk~S3Qui*mUiwcR6p^8iGO(C6sRYtj+b}`F?5Ew*lw7mv-3p zKbYnq`|{ah7Qe_y>DTrR|JkK;4*a}x?eA(Imj!KaG|%0+!*BLB^R4n^T_flDrBfm! zn2hJ%`gh>--;{u<<xSuDZPINbJSYA=|3dbAKrz46_hT09OXdgMT*ntuHDw*=nF()Y zzCJNq_dfmHB}3g~9IGUMY}&s2=~a*C{@)sx&SfZeuu|AGy;-hr@4E9+$9KoeKia2S znx4}B?eO*&pSLa8!s>8PbH1Zwak8ZJfqvn4^V6HeOTSn~Zi;&JGcYbqsQk>&Qfa3N ze`47BeELG?Zn<*qg;Vui_SZVfU6&L0p4RddC^=gBJg@)!*MHx&y=_;2>3vatGA!Uc z>vN$<$-k4YCwR=!ProtuN59#Em9sCObGxbjCwH-ju|&Cs?ThRczYAXNGqmAl{X6~P zbG7blt=|_To*FftE!~%|!aVcBM%e@HWeerE7^}#1^D2aQ_x6R)h?p}yX<HgoTZ4|n z7w-3uh3qoQ_Epu{&b(gCc|f?DRknSb74x&87ZzrxcX)~%PU2Y>cIEAEkzd-`H_lvn z#QpaA#*MD(T;UTNt1q09%+RWk@SDM8V0Cm2qmED&7uVF=8MTLln)~LIAGc$^_0DY4 zwYRH|yNB&%&;1*4@9j4ck(-9f*)J;+Z6qwdx34z3amK<uTU7Q5i@X%yBa>exDT`PW z|Npe&TtBhtRb+IW@7sQt-eXS~Uh=eFxhGt``&!-iuq!9y&aIcYz!Te|G;!vl*B2`L zE-^0L<dkz#siV0{@$fCfMw<tl*LE2x6s`~pPUH95oTAafu!Lo%&GS&E33^!;uYc=C z^?DW*T<MX#E<8u~O0&1>u5`wydlqji<`3Ty*Zz3c>+1o+&!3(P(U;$R>B2{*uh-bV z)E(uLwGU6b{vqAxf8G{0lZ(<%OH8CYHyX`ze0+CDU$Ttf&V66&l~1ItWadxVU@CUy z<I&%JW+f&Zt2}R<C|U7N(1;~Aq<u%m@;Q@PK8pq4UEU<Jk#Wi82mKCgn+4~rxR!6K z@r^5i+1SDB?8U0?EnZ)L9n}w8$G-J&%VOs0joSk!ZDHn|`}w{xlYHF=?G-=k3%h6i z*ZmQ%uWR&Q+#~05x+`bT?Il@r`$T0qw{K~lV`g>aj<MF%glm^#tKA#xed9M?F1ug< ze(i!k`zk-*s{3DFfBoJ4JFWAMsSEyz|M4Y{W5xFk`iq*r-Phc4>954C>0-iX=bK%9 z_<?u9r=(X88XZ^@0#=^LIhy`BF)*7;n#Y07Ig~dkZjQOtgO$Pp>;E!X|C+#JamJ_Q zP7ZgpRAhO0XZy3yCql1&|KIsKR;2W5Ggrk+g##1M>p$P|)RxyEOm8vM)5G7)8{`(+ zC#^D1>l8lC#2}I3-+N%erjRw;<=*t)d9lI$$L;SAxuWV8=CO+1oca8q^yCc^>(*M; zvPrP=8RhM~f1LUF*MtOLfjbM$yp8VMkh&PT`CR7_J8da>i<22=Q^Po;j@;b5o9oz= z88S)ylA^CSy1RTnw$Jy##HW=%E)~9WeXx1=+0RSE*h2i4#ZQfh?krwymf`A<vVP_P z<+TMz_&Hh_T!f!!F^jyq`S(MlQ*NE_ZRH1cN7OTmnM_t>->RK#=P0R=vMJGrZ9!qq z((<4T^^Z9xq&6#iH0?b1T_+(VD=)NPCOL>#_m<7t#nzkup9&FYjn#cS-{|Yoj5F<` zZD)m=z0$WH(29K6n#S@vzvFmW*o8tay-ImL<!c8$N?I4Cbu~qly*)VVcJ#IiUHyW0 z&*WO(u}dssYM#Djc1J1y!AToy)Na)8|6+gNrOeJMAm!|znctJYoUC9=>pb1Oa!%S5 z$v2PIy#4y<0$;-id55~~lT@9|w+OSWmi{~c-(6pw9@R;D3)?pT{~6JI_Wr#CCwFfU z&2X&Ta^<;UruM^|dm1P4zwJ|I<x4F0GAi34&m~mgtsfinV8XW3v1jf(IlL%(SW|ws z>)tC16ED4=Zx$RnY|gpOGq}j>shQhuzj}|$7sAu!e@D2PGhCZ8N71`<PAf~B_9?E! zW`--Qvm1OwPaB2LsXh8s`{c2QaZAo#Ilf@4^|?fQVgCsChuT)AEHADfsY?{+ncN>( z_|Inlyeq43eSYn^w?yFJ4|Ap0OMXg5pVf%?bV%o_(?);Ua~3R8#=i>^xO!#<Bz!aN zt2=M?Mtbwk*2oyP$&tbB(k88r7GIV*Y`@NOO!4G-m$V0y);e&_y?DZAqkBcnB(|0D zukQ%{Tyc3*!G_TKp6Ra|PMSP;ZuCQQfu(uyZ!6Z4QvyZ{w0L$s`lFMeDUs2#;-Sb1 zg~$EOkuy2dbxXq8`?6NO{oH=odw1<`^PKXp#oMCu0w%lpwoGd9n4RUT&CEEhe8wrW zhM4OK={byt-W5)}QT%1S&xv(eCnsNvoB6S5Yhy}6%n_+fnX~Wayj$y0(X}<v)#SUS zfDT7bf!fAp0aJ`Sf3q@#ZfZI3_&{ZY^Qlr6_X)3eUvSjjV{g8$_8oJD{pE+t9Bx{u zC;xp|e)`EADL#G62Hs?gjK^o&%r6`}zoYz4*IAL$tHsY}>ZqG#>`xcYHGR#!e2u|} z>UAe8%-)=o(p~;w!z#NVDbaZ)HB(tTzG=8mx*59BohREOKT`5(fbIOvz3lfk7s_ir zKKrIUuyEGF8OzTx$THbFU$l9DNdNbT#p`dJ%{~8TKhG`D`OPQR{r$07-^oVndiQ0^ zZx0RBHn)`V&*Z#iyjk<dak(NcP0eU4CjQe7JoBCBzOR12x5xhdy*Y1o-~W}z@}K{> z+@JrMSHvGj<=hRemOOlN+T1sJ<x~8oeLZ&4!$SE%SK$E}5zD`g*6Utcs7A~z>*?vw zc)mSZZR7v_88fs@cd-dbG1on)E4SEs#x8MgfOE2ww~b^_gmkOZe4$P)&$}hJ<XMCl zyf*SU#n7nGKlP9GI^V8RIi85m5#q`EQnw!`{`1@OyiPXA$NTBNNgL)Q&Q0??GqXCQ zUEyfREJlIN+;vUU&KtfwxM-K0h*sR}rdwBoj%@sNzfa+?@!oLWMWLtq_$Fwz3eR4# zHY>M$QEXi1@h#C4Igd(~oGCtWojdp7p~Bn6vVJokC>iuCC0*fVsFhq)wQjGR$ZerA z`>3zFNlXuaXL0S)e0|=*_}-x+{!OB<O7tFI?ydj+ar3@o+?&qd;9sy=S<_+Jq{S+S zD*v6^l6mH7UX-}@ch20xoy*Ryx7p6p7ZP0mMWiH$DU+{eo^11_)Hk*-AGs7%^=-T= zxy0}E-M)oy7`OiO+A}3*zK5XayVq7*SwbRR@3<Q<pWJuCIQ*ngT2yl1`b%wJOmEDY zJDDlw+0QT*k%VQ<im99RMBbLYkVuqwHt%@-O)y*VB-frii?r5ak6+)4QWuLfJm}qf z?EI~xe=cfrq|G#u?(vbB8sOG+G;z0$t90eI)_kVMtB-VqdqNMt*H1a}!EWM<n@4A? zyt7W=OY}B{FL%r9FaO*8|4V(U{NG#eZ)~cc|9MaU5uS6FjSWX9tv-Gv+@{?6Y2}n2 zt>Zt{t_AeiFZ%p;Z9>Ago$oqV$Nj&5YvQ);ZTE%EPDGxQEVuDWU2L-b(!a1<%M$K! z-FPCg`}3Q7b@z@N+SM(v4)Njf+BdV<O)z^?abTZvd>z|wOSy9_-VLH6{wg2X+e?pc zKB;56=*FxYw*>8yTI6JwZxBphlR5R|vFZ13f!FCUHZ1>^^nvHS!xU4?aBn%U1xrnX zzFtkf>X{sO=;QH5-RWITaelJ`8dwW*v?hjr`BKVt<FaShbfy-;I1S^hN(GApk(P(q zO5)rW2UQ=Kv`|4&A<$*I!Iio5em|X_Z+3X&hrg;9>lQ!mboS2B<5N`pI+2sB%UWYY z!IG&TCk5+AT|QND$#?6fnGe6*%+UM8bBxjP?x_nKk1=k)y*Ky&z5BoB-{_vcU&PI% zZ`z_VW1}O!A16DS<R%$O$n@8pFTMFJube^lGKWG)s@4+r#2PtPh3PZ=IsUD^xRKFc z?aAJVpbw$zMf=udJv^b4ux*9OHUXoneoV6NZLd?DGiBJ_&pgyxWw%+V_ix6|q^?W5 z=IREBY~XeXI&gODli+}N^Y#lnJn((cVDy;h&uxnbi`LFqu~Ia7USHd4yJ>0@&OOUG zxFqge(Z8)}FJzW3_B%f5DgUAs*LYr?{-U!wHEi;NVDV|IpO)=D#k<~k7Zb+{uP9?@ zo>Y(Svn-AlmsV(A&9{+RskkN6EO_@-e(43XPBFP~UEbQgQ&;i;-zvo^H>V$cd-(nj z(<^`WzcBs3KULpMV8Qm}KYu>!Px$$Ko|jjeV#0~ei4S6L?K|U=weRT(ErkPr6*Fe% zPVlYIE5B>}|NZ{GsqK6LzyDwRU%pv?{k8}HGv?R)55Dx$bk@AaL(%#BH~;;9Xx;k! zqS{&BOY0g8xr7d1+my_C?G$TYPGHz>-|GIQVHX#@NpC)SEJxtwnN@H7Zo6FT%Qz~y zLG$#AYd$gQTw8<+uk7e_O>A4UV#VvD0oOJgKjcX2oso3kX8IYC8Od=GrvlijUB9XP z>Yu%77eis!EuWXJxAYIY{j1z^hG+Wx(qMyC*RNmy_RTu~=IQCzIrh~sEl=us`ozoj zZq622-Q+nEOIlAT=Wgo$cGfU>w`Xta6vYXSp*O4yk7o3~dasq5Sn0j(nbA$QO}d+0 z)<5~x*v!k@bVoa~Yby)Kl0Ms6`~us`e%`y-eoyDTuXOqjtL+WD?ghv>OpAP4ICqyb zW8c&(8kgQ%$X1rQPPnh)p_R+9O?XRdS@_eoq$`RN(`IPIG0fPrAm-5JXGRwU7{V?D z@6EWQBz$v++4;wot7rJxnDg9x=JZ=VT;k@<S#=IG*C;$YyS((qj{GA6lj{>d>TJE1 z>ANHI{?d*Fop8?G>(ruZdK)CTKK-h@I<Nhe?eztzr%$Ij_op`8V5sIdYr0WvXV3Je zxK7UDM%mk`4v9BnGE#V!w|<vZIB9xp)`Ons^H%+=O}MO(pcC1jKP^`9(fdtHf62`a zw%U9o<<gIf$5a;Fdj8~^-LI+f+y4J}y!S7E-RHl#cjBYM*SkkM&h0+-@$%odpQEO& zxW@PRY0&-sGdNR%XQ$75cw#!knYzEfQsQfF9)HyKz4Fn&<Ec`)OV$N$S^h-a;?HWO z+4EzoH(ZRd7yjVO#*x=l#Whpm;+#|a3@3blSRbv%SZLNBu|ktkk(XhMz8;H9%H{3@ zcVGTm$QX3sPQiSKw43uQ)<667^Xrtj^QsK~Z<f9Zld<65#58f@Ta$mCT2pdw@ig*Z zcq+?pV0G?K?v;I~J2f^pH|XRi@0QOmihC4a`G)hN>oocKXG6*)L(Eyu{<wA_smwoJ zQS(=^n)#vUvmBM?oSn2^`um2owSPI%(zpy(tPV1De^zx$W!dcg{_UcU3Hy1BeJB20 zU!s)ZF!@#6^A%hcoo|}YJ-_(rMbWQ2|6a`hZ~wMp7k9I~+y0Z9@_Y{3ToxJy9u6$$ zLivB)zjdJHb->m*{k`G8q?f3@a7mlJvhB6#Jz=Kei_GHBR(q=U9G=NHReN^X!sPcW zo_FoCWcOYo{iUiYSYgY)H|_#z7agp2__i~?%$V^=SNWjazRizJV;H_2F*Ee5Ipdz# zF?(xP_PGQDAFc@{+EvRYUB9F;TSg~1jJr?kz%t1Qg#$^(Pp`bZGGVC_`^2XLs&n}Q zWNih1O!^;P!p*eoQPcvz#U|{0&lgp>21V^=7SsAt^=yg44qmH*`Tnw>KE*yc@GfUr zP2a4jO$kdl72Ow{SShD!$?=FKZ^FuiBBm1@8VR$n)NbUr`_UB}t9$X)`^Wh;###S% zuejE~_*s0mBj3DNJLmTCUSq0pm#<#xbN;PV=y^*Mw#aGwDvUGJA`FUm-TH55{QrCT zaor#Pudy-N+&FyLIptrXe5&|0O#^L3g-VMzZ@(>L;rQ_D^!3|uUrtIIPm9(S<fxil zY|_Hvc=LU@ycHi)@xca5BkrD^r*x#e9a8>Z5XyPFMQ{g~`qvfh=8Vm1iJFF1LN8XD z<;4A$xqWP+R9DnF<8|5z`cwDb4cRsMsp`i%md_vWCNZ_v9)It>N#I;fe0|==0KF|2 zS5J*ezY`u-v}>*-JIgh_l2zfib+?z*R&PD4dvC`o^PQd-wtTdnZn#~~jcxwU1>t)R zTv>2++SJz>hMI2=uiJE|qeuBo$&F(|2Vb5HGT3NvpttavoN|M}{QcV}Y2D8EDN~lS z*u8Fo-kiOAL~CLy_Fqrv2<@oYYEjN;@ui64s+#tXd=aa!AvWq7C--(PaG6=^+;IHs zWZA4odztMzKCZaxa@_n~cIWq1)#o$PcV0@fK6mrpFP#^^IRctB4{R*oCOX@APRIRU z=NG=Pf1U2~bLPdmfXvvpG2JJp{VsVXVw9a=Zp+Xwo9lGC`0j~0%@yk+0_J^vdhl4! zM$Mn|gX1}#$}&q#iZocOKJ~t3^QuK#JdX;6c$>egPR@SBASS#<woK^JlI><S8}>F< zUN&uxn{cb%!M*iH%nfY|c|*T>4{Wcy^=-}B^he40fP3S?LkiOWW}d6qbaK+gG|PDv zD^5MnED|^yS|u`n{hzogJe`b-jU2KWO6E8muK%h2|JI-VKTiC6;{PwH`pSL-72S7* zzHFB(^2+2rbU8UQ-nHLed8CEG{MJzh!=|aX?w4<4eEWreQmZJ#a+Xgs5*|<JWSo%R zuyRjVna-)IgU3SdG2Qm7k~-?<x!_=&X_NKK@Xs<&HZPO+-7RxDpl{3W-5SlAdVxtB za!yTQIq==~gBwTRk^A~;w$m?MdGUU2Z?g9?DVwx=p>wajhF$`={M#kROBEbD4!K`c zmh9Nz+uI!$=XPLSRp|5weu2EwGLA<@{hFKX?peJE3=^1trs~Z<{zZ$5&6FBDjQ++r z-hA_9bz-PAdmR6($L2ycfg74;A5J{Y?Da_dZ{*_#ZvD}XTx!pCn9EaLMcyb@yt&yl z@!`_qZzq0S^iXHgSt8sn{I5hf`jF(EZ_W=Z>~6pO<a%YQX2YjNRc3wD1yu~K%xoWv zoO^7cQ~lx7YWcdW|0du6C;hGdcl{sk-<$pS33I(Vk)ts~P02ewQ)Y+XhKAxuSLyTu z8Ofuv*PB(Xx|>hre0gR&>(!x;`@D`PEeziIe3#A_-V-@5J|9Wnl%r|PbTvl4MxU>G z(eHPhHi>V4{iy5PGxa88?B_kfx@lYfDDMrO&-YNtTzcy)oy8s>I+CBC-r}dfQ>@+D z`I-B|57E+&-1n3ZWZAulIQ~AQ=3RY$!11<I-@L8g#NWy*zH{#N>)gLJV)HXk<|G8% zT7P%tY+fh-OKg&omr~z|r!9Om&!bxB)z#>d^Qv!IH_aA$^{J%h<7cy%nHjww^J71} zZ(jFp|K{7%^|w9vFFo<+`z@d?5T#pIh0I-3eDAc)e_lqH>@{0c9r88>UsBXOwjk>D z<m7jjCwG*owr&->@@N15b7Bf%yLa!t-Sq$cjoJF|-&DlBo$UXAPW6@LQNNvHIj-z2 z7rXS7%Q208&b_+lt#kX*ckj1%^46QHeam5XL@4JxjfQ0_lBYz?eUNdwjm6_+SwrM+ zzFRtPezRt8>@gIKZr;Fij$1R${p_2mOD*Oxw4aINmu9&j@mlJ0zL`U+?QszisZAcK z=N7ri?%A}7<Hn^x_0`;qj~Xf@a4;GfuJz#Nuij|RsF3`9{^#GXKNT^jlu19>(#^2D zwd?on+&FzpIflmbGVG@v*mWNoywl*1czI*>l%$8VUY{?iskwhLPT<4yLS2UIr}h|~ zSiqdawJv(A;wJamsaEY?xAa;soD}+eddIX=Hc9USlG+`j_bW#nVNhjsjq~GVtl|4D z`~G=I>Ba|ETV=BMv}e{H{S_#4qO{p@SHZidAv;tT>*(#<oHIM3VD1L)z<*31cnZ~< z|NS_3b<(Xh?@iW9zHonF<}lsg;4({zSLOfobN3b<@La%h?dOW;+h0CUQ~lnQ^NYdC z=eg6;ZS5a@9(Hy;Uiu{cQ>a#Z()mKE>g(#P^|hCTB-Z@A+iQBm;(Frcr@^TWkz3k6 z?mp;rWhdL#A4=Azce+gQ<(+ay!TjCK&Yh3%%uiX)Cs21|ztK;h<p0K*S3|<K9-qW1 zEBnj!rt6^{YR`)1#lCr;ChOt+eWG`DYW%&w*}v24KirRE5Z)UW+cb0L+j~#%HP3H< z;^E0AIX^yOQ%=<{l@u<P(;p6oc+X$DB7#9pUiK;f*@W{S_lBwpvRvHUTXyu<wE5f$ zYoFeD+VFY5h|9A3`TJ&HOFzArId(du*P%51U7?ddXh}#4-3@I@ob$Et?19_<YIhlA zAI*Eb=!xu1e!<-)edljZ39kfg8{hi;x^VT&f<*_jPL!zrJ?D{I#(HWhU-O)srmh<T zoEVw|pEy`eZ75XD`R1j5TlCN5E>8oc%yTAg3$DDh?&?fhvA{=nrBK5H;hRni`cM4% zW}I@^mGO3edRZSce|*YwaSJ0`j;!=w_fFl>O3<<hQH@z-==G!aPCrBY0tusRL%#A$ zk2NQ>CUAbA_LPNZ+Tw8M^M}6t+OajgK>o%#SFcM&3N1O@B8&wLf7t@|CoS3j{@3gJ zr?J0Zgs*?Q{=fBmrD&O~y{5;P3h*3M<Z)mu_FTSPNJDY!+82^dk2G1LPHpp+`{t*h z{>-rYm6G<eRorD8z1<ilmE10ntM<KdPwu6=&7!%ID_0j=>-^>WY_vmLYW)T2<Fm4q zU*}sMpE}E;^?v%ax7&W$D}T2CHgj6za$yy(uWPnGD4D^yjnO6Y^SQH6xTeiXmwqRG zeS4D{OGOBChuqWmG5<H!el`C;y=-%}^*6StzbAFN-v+JmIoGOv`@L}MwX2W(6%I1` z`JcIc=8~qF%&lWHBxgn%x_;QRK+$Vs?Va=6igrD?-yVOn>A&-pKlN{C+y2;px9R`p z+HXJo9e$fjC!gCH9-DncoNLJ%zcQ!Kfy>`N*|Tlh?>ohREYE2z)l`i#+WY_C??AiH z&p_K8{<lXz`#)9IU;Ou%$^K?On|o&_OR~+Gc2|J^&c8aVd2hPs*Cl@E=h$PV{9tbR zJ<i<brCp_^T<+IYw|G3?X>n7^^{w}6-VL07%QOxzu1P6+@aQ4OqGc0qd%5@X&5lag znR9xtYVOsxe+-)rav7aW&}>$mFjGtYs!fvzzxC^r(<TM4sCL<4xU2TcM)#E8zL5*M zRiDmRT6imRPSKk5{j+2|8<l$FBj2Vmr`)UjeQe$O1j)YIx_v*Cn(8k;S*WS-af|AA zr=F8q?)N{w-;kVcH~S0o1lw~CHqRfWWVz4Oebtkjet6$IwgWSGcK@>vU&dq9yEIju zW7E3^;S`p{Bp-=p?y3Jpg0dFpEH-Sue}ZRWQr)-3&u8+O{y(}Tsy|%WAV#7h;e5)q z@=GBv(>ZQ2Yw-z92t3HNeWu-g_hkA1j2e^fbs5cJS#2u!wlO=+{M5E3fhr2CrhJTN zd$s7!XP%zlVb3LN_C2|H;1bv5`3vWLQFWZ)q$_##ee}%C-#;X4G<qV}GKsEW6o}03 zDPMb*?QLXq+yay5=QD*5{pn&XHkse#$N4jH&UePVcUkFs9E=x;vF81@$hMVCNcZ;I z!M&tGB4*X&bkEDJ3@K0J0u^r8e?R8-JCsS}Y5J+M2<1Mp`5P{V{)=97vwh2B*L^YD ztW+L%@+{FZu$EMt`nyAwZ=G?(f+g>Gul$UwuHW~k!h1@|#+&EOCzN>~`Ld>j%dmT? zYT0d*bCc&!Oi#WjX({AT`K<k*P(?CZt%Omr(ZfQC^MYsQ2UktobaL^U>96gtEjjnW z>|4WTnZV?E?Mwb>zYV{;{M`0wyL=*cbI%v*@tESd@JY%By<Ppxd#5qHo4i($`9kim zg9joW&J3M<Xx3>4KG_EwyrQSDd_J88Iy?|`aMw=pId+q8z1r09ZZ7+*jbZVBCp^56 z$gFR+V!pxN-a}TeKEL)<XLVL+XuYvPOE<t)V(wRtTThoThcpPv^ldRt)=(+DA}#o^ z&*x;8<_33V>lahf`sWsHnIpuz`RV2t=@r*>><u)ghnFkO)8fBz@uc+DbBq0^eSPir z_0OI-IY}AsfO%KC_}VJmk9};d4+~oPAmD}n_sD?L867u^PB>WVSaEPMEnBzZkN^Lh z_M85H>ffK9ANTiX*@A<P9#K^(KIebL995JNsay5yQNsHLO-yY~KRHbQC0i9nMu&^E zG-|CD>$nhP!Md2?e&)0-HZR?eShBc26xpE}ERg)l%W;9n%%^803e#MFmi_u&qIBhv z*Me^Un^L{$cgp9uG7FrT<-<1Xj>(LEJGtK1^Z6DxY5BWv^krmu-ploF<)qoKH}skM zrq>3XUfrAEQ{1Anc+T4P%l&We*Zlu|F^t#m?NPVRmgj#{WEEmNbHrz!+upDs@O|ed zPR4+cP`|9#r7UJ!xk_&OH?quaEr?kW;_vk?Z~JC`yFaSCciJ|5`+s(QzQci1mcR3B z|5-iK>D{bx=f>--`VilczZYvAX10j=xoB#CuS$%Z6xkHG?eRR3rxgwQbA|3*{kJ{( zPSZd0Z+G+m{+o8Te)5+8ZmPNdswu0^8)pRPKNEOXa^t||!$<X`D+)@t?!0|n|IM$o z{f&(Iw`cDTp2F3`qhp`k&1-12waO+nKxE3zifi02e{qxuarlM_t(<ny=f><Cl8a26 zr|o%m?`W+<qO@5#m&uktTvpW!WQA8O+Zs@^;bNcEX4g|u;asIh?blcEc3o1vvBWCv z-S)cp*H@%(h0SB^ZD4I=j6asXD>rNE{q;QW#TeeM-uw4k^qybOUd(^Z_U4aBuG7?; zK?Z>*@?K{z^U}Osxlfb(CPUHjZBY-Nw4K#SoPKE9?S#pe-W*;Ww~BnGT-{{y_I7-p z<Zqc=7C)WK8aB~2DbJfWI-Q-A@p@LtXWQ$)C!Nvy^T6m@)WOZ}N)3IMZ!Sz-sm(p_ zcBYslj~MHt-Z#=yuI<zoSoR`$jW^4tQ#X#Ek9s^)YeVcw_8VDqJPUqsH%pvRcRaJ` zR}!oC?OJx@W+~%SH@u>k{g?Ef(b)W2hvD&}7taq`6i;3;^HIdvX+~d`rFYu%o0%{f z=t*_kZR<{+>Xop4<?EpM$*pUa+4P^_$risQenTL}>x{rls~2*5$?KoqnA5&jp?PU` zhRn3-Wu>1*t?l=0Tl`<(=6em>osZ?BKd&jMJGSbJ<*r?S89%3_)Jj<GK5}m@&$h)f z58Lja{rf!kjBBjg{YD+nCiM%PR)_Q7e!svq|L>fG@eQKBTYp$fJDol({~@R?UO_Ca z=7#cwuX+)8zK16`U7t3~G-Zcr{ZZT1e-~X6_@&AEsC481*Q$Scr`|mfZ^dix68Uz= zOXKfWk%H&8-rsS3$1=n3I<qJEmfWb`@ZekwvjBU}-kzRE>$a|V;&J}SrMQicV^pKQ zY^<?A$CVy1PoeuA|DrloNrgMgH$}OBbEa!<H4FKrF<<?_q<#10c&rSWww=9jl3|<q z_Y|HVH;>F(%gB>goxHH(%jef8AxF@^I_I@M^G#p){f^ZyO8!pg`m=Rn;u*)~cl#Rq zyjI)U-74|4dy%ktMQ^&VRKSt6fYto&Mk|938F2G6F6?*ls=mFz%`4^7=P6f%4oLsc zjuZ=!5`Mm?Z6&W){eQ!`iQdQWRZP&Hz2W>}tETw0%2<=6xQh|(?aYx^el)K<Z|(Kv z+%%C=Lk6jy?DJ;VP4+BETlh@;>n018z~h|iY5g14SNvP~E4Rd&K`CbG3Mt96p9{F2 z`h1Ok@i(Ra{^tFEHp{!2?F~#gKG!t8<VH7xf|cr`54#-Lw(V=&v_0c!c%$3mEy?VM z?_OK7;9y7mgD+YNft`)jR<=DMyc(ZbeFW3nCW`$0XT9a*;avwAD_ak!-<mczXUfEk zxg9L`j+INw8XB+jH@>KtEOS%T>F=gc?zLu}k&EBYh%S{qP-J(xvWX!)(TypVPw(g1 zNTH+>7N6G)3?Va{FDtbd&$LUvERk@x{Md<ImPOx}hkt9HUt>N)IlDaXPm<khxhJMi z-gM2s?Dn=abg#}PZO`q#VH0H7+4QAecghCDM2VidHKpX;R`uz3ljQ5JME~8pmG!^* zx2ySerN2Ly?asg7^gsM|P|y<1W330c&&qGEuVPEx`$$>KyHR=ag3eQ77W-O5TyF?J zz7@B9!TuZ7@ApY79GHE*T=38Sy1kZXj_=m}{QvNYKZjk;%;H{AeVivWxP0opPiwA8 zd+&M?^|p@thy1(vn`gaK9_XoGO<DC+^jKcUT}6TZ18!@NPg2~Jl90IN<inP<w`#iE z-)pd(V$k20{3T4@r&IfMSgl!uLCVD$zIn>sorUiXzRc}$H&{JQZp;2--)HzIFVT5) za>CWyvlpxkRL@pRW9*&bRU^pp?4QA!<9XfEk^Y{YVIMBdJ*sTK{q1D${Lkf_0bl?9 zW1PE-$1(Bb8Oynq>@N~h*A<$#GW@7qeP>%X$F*rwKMO4AzdY~VgFi*}$$J>Mlx|<G z*g5I3XwJrp#VfXO&Fe{TJXhEtC-g-t_WAOae>xsNS3kXucirZHQpVz2D!0Zy`KPbN ztzo&$!kLr7H>5)U(u9|%Hx<R+V0pE<<<xB6Z}QiYH+*@Uek1zSv3A?a4OiMXPW$Hf zwB6$SbRMnhZnx-(tWz!W*~~Xhy(OQh$EW77eS7`a7xDiNr0b}iZGTgfk{rvMFu81{ z@l~EEep8mWGfE6f*;mX_wn;xLb~^U>ay~J+)880QNPa(*H1Dy>?}U|~g&p&Mh@>}! zh*sMk-&pUxd}IFit?_wpvi@(YeS81^uD_e@e~Fh>{uRF>XW<&~%yrR`RlD-;NHZuu zekZ#|kn@(3;YIduU5~HWZ@xKUo=Qhf{dewnMZHq2a*6!>EOPuGW4w3X%z3x9^2PNp zo4=e3+ccqM-U;JoTdwrd-!HeWoSNzFa82j@u0t)YlSCT*>oSG>)_u+G7Ax6$yCZM9 z+%YNc=+e`+OE*h1+8O*#()xZd?*6`X=17HIRn4ZdJzDeHKPoa5Yn2MkXmXHwx->Fu zYJ>FV`+Yn+cL=mDnx^|Lq4V?6Q_NP(OPsIxoNQ6#s_=}@$@ua?HO+mVp<8^)*}aBQ zoY^`DB$yBE+<tJy#=^Lz?+zVJd&bJE?KoewY)KPiSlRW5pRb9&nSAboMoO9O{(0A4 zOEOes>9g(F=$U=e#hPz*TGG|D0$-O6+<zS=a7j*?I5qHCK?B<}r?0(@Hl0T!H(Lw% zPSz@!m}JKMeM4x-->ny?x!r94_{m1Y(e^o`X{`3#nM*Xa0wy`mG2WN9IDM6&b?X^( zCMVfFDS97%=*MnJjVyRjwtRh;=0%A=3uPE)zGscBxtDn9{^cJB4+e?dn7OxcqB?`H zd`j5mqdg3F?Tx;e-Q9ep?zc^ey4H*B%UMEdxYz6v6Lwa9Htl||<lYT!H+5K(9^EPl znRK_XtyzuT@Xy&)i_SHNU0&PBSry85b$7Z7)yu!>olq5+p!Pm!>kh~1y9@Me=RWzk zoJq+_{h3+R*G$d=zR>ma_>|VCf3DI#ta*06;cU~ue{D)8j*{tNM`oVY;Hil?rTF~J z@&mlJi@R68FJxmYzTkJ@&}P3+Oza8O-%RIR*T0l`;eX_{Nl{ko7t2NZ>C9t{5@7FJ z?6AnFw^M1O;l76##7=+h`4v}IBhVVgVQ*Y!8}Z}8Vcj45Ypc0`@qfE||JRMUJv(k1 z{m--i_c6Xr*!(=>GS|jcGE>d|MjjJ;UUBREh2pK{#t~*^r5dL`DPDN3%K3i(Z=<IF zai9Co{1-2?D!=ugf5IIzwrfHkyRDvROWzb?u)KJ4L2#ZqdrA0xuH&DsOt=`iz4qs? ztD05*+$^oO%Pxo1ZJW)cxpU!N2S?r1-IJNPZ}a2|pY4pC^*!R;;g?c5le3)bpPs2b zG)eWXC2I)RGnbRS>tFotc>7anxAFlFzQjvw7B4>8*Qm7lG1JtdxJ>?H{UqMU)<0uT z9r^w{f0sFD^e+khG=;6-entKGbagh*tAe%6n}em6m>t{v;)|27(Y3Euv6p>QeT3MZ zuTS=V|DPj_p*85>k;S=s7P|vB?{Q-ja=c?D<=Vo#;-?M6f|F_-(uEtYbSh-9)UvH= zyMEW=_1P1TjJ!WA==T-gu){5E^96karY9Ut39qdxL@c^Lzfs6|AH!_r9jjxXc5(UQ zx9M;4&;D$E+r0MU6&{BKqs{XLd~TKW&tiW(@4-!pZQmM;S0n^}US@mo^%H)M9glsU z++2FVZMK_F!>OXfOm}7OY@fMtS|kH&2M@QSvLSbj_>(yrJAxHr7pJT?o!Ymd=Lma7 z<C=FuQKFhJ(ygi|Z1v-r(onI`)@|l9RfjL_pZ(wP|GO%G<L}Sox1;YL`EL38`bXV2 z1p*BI{15!q1doaI2K!pE>LrVMSUa+p%m2TzIXq&yYmWA}Dd$@o4Od_M`$D(+{j>aB z&R<FPwSU*Yso1yt?Ig3NYfOK|_V?cD-N?**&iSUdEXUOOQ*{^iE7VE_Uie)VcYfI< zCXU=g&pRGiPrD>`L%eD07j30XLqoAb8#|WM2^>0ITb-rdzgEXE9x%K%?N68FgYS3l z-?Fy*xpUrc4uy=EeVe73BzE=x4yn!%Z}vZYDeSb+^*!e$UtErSWwvEQK+^(64Id7b z4Pi46XkG|o^jMcL*J<mg!bmw`&+V&>ybTf_Jqi@N{IzREU|>n#>Fd>Xwo9)YGkj2q zFS&f(s75Zh;Nh2-f&~_>H$Qzal+!x%FZGyGTv6Hbp4w(%0miuCz0$8&@NO}YQ8S7& zNZ~U3o8F|&YO^Eq{Bz0W_va+8NVA)!;Bq{NOO5Sq-HMymGK<qLe?NIqSyg{UT4_q- zuiE2@7u4nlmb{XEF~686bIrnZUnL2Kf-^I;3_0hln0&|~&26TmMMy~>n{e%XpXN#J zW>NndKAqqxh-pxKctqnulZGd&aosv&LBEnGwz75lt$K<)X0P0&H+|!tQy(Kg<$z<W zvG+vr$-&IZ^ZxesHmY8q@ay>Oru!^DCho7d$VnJHzt!-WN8LkRv_7vW?B$->EKjw* zb6sD2cxJgJXNs=IljEh6)|^?;cIu}S&y9Sk^c503X~us8&q+6Ic&O6%^WsAPsGKwZ zv$D1>zLlmPz2L>Zvu7vgI;8o=g<grg=puevC+G6KIgQrx-=m8dcFM9@Ojz~x%%ZMm zUFA(eH?#fi|GW@?`|Fq1tAF<Yj$MEA?I^c({JC$H=l|?(+MlK@;Sw^X%<;5S`SYSl zxkV0%=dbJvRP{3JwwyV~;Y|JV-}}Gci@wPH@7>wCwa?4<%PQ6Fb^G%>_U-<{T8mAx zAAj_(IKi5ru+@Lj`Y+FX_TAW<Z(skz^!KA5oqIRg^H)np?wt4X)s&|a<(6Iy83z1| zW=%V(X5u`-ukEsk$a1f;8?I#^A0!-|_a@eh>*$=MyWBpz4Q6vlzww;?%;txQ_{aU1 z7%xcOk-oL%9jBSpoQFT+7^9B1Y*{7T^DDbLjWx2&An4z+Gv$|xKi5et5o2{YmL9wD zD);MGJH>SO&wDQFc$;I!=HBT`b33cwOu4hKUCTKC*zeBTz4OoMu3PD(<|u#KBL8HQ z@e75NziS(|N0cA7OSTj$(Lb@_bAzJ5_QxBKGh9A%#Zl#%enT{iuv>ykQ}>SvTQ~)5 z4(`*u(dg@_$r#~(;{dn!qO2wc##hU0SEWtX+WX@Fx%7z=E50SLomyjGHgEUDoCoPg z`?R_4C5xS06R7FW@@vaS9sg6dFY+{v<}lT&dvn;WJiB4~y2>1;YvpFr66xFIQv<VD z%Maapm9#3;NyKO7%H)7~zQx?vgE+n<oiCHVcp~D^k5l`Tl8*K;aMp<FM8~cF;L}^Z zTvuG;O6ae@dalyZFV~z~r~4&g{@$O9-+qoR+q;=b(!y)=^7zF&y+ry1Rl>^L1Rg6k z*_2fl-Lfp*dQonRh}xbAw*9W@JFfk^$S~>4oBwO~R{xd$R{zWXAA8x?vW@>w|F67z zuI2aJyX$#Ui{6AeePE1|lzm`ba4&@KIuB#!){Akw?q4pQcRcdhL8BQn)|dL*NBm}~ z7J903ovrHEOo!tka>vhDc!f%Eh_7AFIOBECslB2JFR~b7PNbZ^ba=k3`cJ0>)}+Y! znd*8rw|Dga-p`q0a=q$d)oGtS_M18nFE`iz#JViq_*Z?agO6f@O#}0q<NMBvU;Gig zIJrb?!yRGkKR&6pR@zOy(Yaf!a@F>)xOM1=$iaN+?|=SONr4W^IJs9Mz|6wG;Kt6K z!BbLB2jt%DGJVnG-Els26T`Hn+v9_GPgI?-<5+@y1e0*rE1p+Zo^h5Kr8NHbo|2s+ zQjpNar*%7|t7=l*%#8d6%lp3>O6qi_={&TwOf#AiDSrI>?4G!X&np&`POX}r7|KxG z_uRP5py2A8kDuKhFx>20eKsxjxv`f5H{bnvPg%KcJTbU>;?K^OS1Y#3e7}1odv8MD z3LhS2PlHwk-$?lvC%D%vTr8h_IkPjoL`MINOs0+Amj5;vVrN!cY+4Y1@qb^1_qjUz z>(>g*s=GB-$X@MSaxh`r4T*9lXQy|9YpUd?Tzzrk=<#(tS%;RNtrwg6HObC;a$)^- zvsZdEJ5voruI@ZHYcr1!_j38iQO?nfedQ~e)`eY5yVRK|Fn`sj$`6+V&E-0_&6d$W z*DAxLIafX4fK=gLeKy&oWL4vLQ{RWr-mJ!<G56k*Ew^WVet)K;Dot81nOD;|e>1~! zquE8hOEdm7Y|ZihSGMBEq`Fv%n$A<lr2-yr?me@zur6xN+Qa{He?M5v|F(+zPk!Di z&_=Bz_w{-H>1)1OEVqA^Yv{5|7k5pZ`C`Fhzu=xkr){2Fk0cj*>3DWKF^bH2b9djZ z>gZ?n*PH+AzWD$5{@bSd_*;h$U$p!AkKdrqcP97Z!_hzPq`W^;eW2`Rc7Wc;d-t~8 z|5yHhTkZG$`}fxUoL&~SpCf(a#jvX<o-Gy?+G2CZt+OkVO=#xcM{&7aF_Hpb60V(O zTQqsL<i8DP)h|rVZ0`D&UgIiXJ$1Imig^qRjOyCfI!Z6Sv^HaM>60Deew{XFY%|aA zc)uV@{GD!}_Pnnq&%7OHNr-<m&diUQd24&?HK*ktj0*At>wOf?xiRoA7k+KRw5!cl zeOGa!fE0u0;>&)&W#9DWEndxZO4_+>^(C|Sh41aIK3C@mvk=NTzwP#>zuMotf@5>e z-w52pt6;r;X{~(vGcgwZ*GJC1GOP7}UiEO7@oWXpd-n}BcAlLwF;B-+F=0&~LvO0^ z$2W8R>O>jWIh@_GZPPp(J4QZ(OowUiH!eiv-KyrkzEHw5+fUu<(xG~W)eL2OFTbd^ zbhiI)oxO~^&h<j(qV8tfK<9=JR^QI8Qc(Ned%&Mz4)c!Cf`i2yf1B{s%st=qJ9%65 z!LGG7%hzvMzG}+JMDGW|G8>QQY*5)eB~Vr1Zh6*WwszmuchZuom%csrL$$jr(*Fn3 z?byv{xF5(Kt$pib|0>6M&BYg+=O&#!s1^IsI^v&j@k<_^iC0S>M+a>Y&N*>t+rgyP zN5&r{H$8Fuy|^QGadn`>xii&9_1o@zN)wN(-Pu~T{@Pjjw`L#DEjW5{ePOEA>#KaC zCwotu#J^&4W%G&&Q?Nex*6Hid52j*sL}Oq0?@M{Ox9#uFZFjHg&d}fc=Jfp!F_$gG z=UwHQb-3=WkChkam&^CB9ujYOw(L3kf{9OO?6mX$b7J24ySdkS-?BRPvmECwUbZAi zbJ|@Qu2PAvb49m`80WX<uujdIn&kXPyvMmgo<-VgZjIB+9*eK+uNdant|@%EK;-kC z{|QBNH@=tlmh=7PviQkK=iRH1L`lsRJ9ewC&bAlS{y7rYY_!{tT_JmC58EN#s<va# za$dDc&6i_0W9C}$@EG&j{F-fQ$pVw=<~UAaxoN~@_EBNYDU;6zo&T<jD4n`@rDWCB zQ!Wcw_jy0$KP@q7*Qy*wmMtINEHYu5Yo1nk^}hIngI1PvZE7m@-42T0`S@<4uuOjW z)>{WF6kco167N;pvyZ`_f$e}K@AAWz{M(vV20St8{^a&0q-@Fy{bLO!mz$nT_V8?8 z)0@-mIbmy6+jFU}ojff|e@OQ`Tgf-SS~Op<hU1p<^$x=qM?~gaZY)~aY<`wIQp#q{ zBu#<#n~GO1SYKMVraIC;S@F5!stbpT_Z_!A>uBU{kR!8gN2p9s?{}60r{>dt4;AWg zy{O2T>eFB(9Q%Z2Ca=++S1eoWZka6m<DE7qT_CR@slXuqAb&|y!m;<oY+QFzQ-8fl z=8E4cxPxD;p<&TP!^z66-^I>8-7?)RV8ut)6U}eBZ)$K~DA(O7?<V$t&)N6)>i#yz zZ<_r&$$a~E&?)Z6qo4hkTKmuLf78ML1$-OcO3pDfkbA>(R#RE9{G9Z@;DeiuHZy2O zd^)^_>ziu%w@o<*|3`mJKmVitdG!AD^78mwfB)|N`+&VZ&vXBj1worj{v@+$gmgK~ zy2+_E>wE3r2lZ+HzuW(+zj?T7VfU@Mdu*=@F_?0^I$36Rdf#=fGt~m8F3mR-*Gf_s z2)|X3pu8iw%;cNh^~#x>lg^ZNEt+roRL8s{n>)r>`YlJHUJuXG75}srJ}Q=Q+@dA@ zaLdVpPiz-gt2$UZuqQv8`>0Fpd2!0+Nq<vMusHEA^>e(l=e^#}V;5CZ=Qn5`llC)> z5biCTrkbFbaBEriT%A_$&36|>P5nCiR^k46yiGG04kg=!t$V)j+c}}t%%`27TFZ#M zF@ASd;xK~-<FVtPtq+KXuMCsde;Irvb%Li%(^B_YOljY(tQQz&C<W*?UoCZ6wC<kC z`FWR_9Jci&9Ij+pZR7BL{a;R3o6k!Gi{rRh@+XP}Jn-IqdBN1n+s@=f>M^cZeaGRA z3uD>_My^?_msX@Q)d}cdK3}w_tMJ}AmUU&5&+eNM#jvVn?S+32twY%!B-eS*{Ub9~ zHe-#1#m;`iNB`uLy`*DVzn$Eccvhse#^YMdLWc)dbC0L?*qaHi^LJY&%)zr@yU&68 zKuN#-6BkD^9WbpGxzispKS^WFmfF9c`7cXa%{^~<|MESx0G{f*Z=dYFYx_s~_x^w4 z&l5WLTK@gWGDTtGWHY~Pzp@L@zD6c2?p2M<a-ZSw^4^tg`v2}OI4EMaGQ+NF0q5GK z+w$JWZV3D9Wa!)cz16rTzqu{m;`t@s2a+dwtlsTz&N}YixNGKuvKtoO_R<eRJN91t zdt>|D+?{$c#oc25D#2laFEaB3id@aoe=&S|%5rW?W?w*(8iU}rkaRXL!^G!TgC>1j zeBs$-N5%irubbt(V~RE~&PnH*WS!>vJVu4}W}oHc_$#{tlr$w5oL|5E6X-ID8{SQ2 z3G-hU9DCThe{#@rs|6?OB$|(3-Sob|k&VA}y3v+JdmqoLd?9+}OUm06@neRTxu*_k z@LNu4F8y%$X56Jh|FDKFJS7dE6g1Xsc22O@hzO7pl?`L}_&;?ETT9ou_I8oV(_id1 zUu2$9wwdS1*6aCATpUOCUi8$yS(Ym6H~00ezv=7}&Oz5p6e?H#<msPhs#fTm=6Y=E z6}Aa4WMp!<R)k#o>AG9=>YSOqavgW$-oN?xFwwe3e~<XZ8=lp=EFLB<xfZ2dEspwT z(n)1Y#C9`qu2YnM&6LW<BQTBk>-}RNj_$5MoVRY>TX*|k;tx-hcPaVvN>8*o-Y&WR zpiai)TFEB`x!)9*9L|i%wkp|GaIPxzned`Hl4V!rX3zA`s5_&$*^p_=sX38BZa%4U zFTZQdNZqim+2>Km&pFTk%-sCjC2`q-&l>A@{{A#?W~Z4|LPb~S#RY2^?Hd`wI({)Q ze&PKad9V7v_@i3;pC`qqeZ4=KA<Xl_$qjy8&t6YbaJc*S?co(a>v#VBKCSjo@BYny zD>wK4{#p3pe0C?>?HPsF@16{N<k7eAX_U+_2D3T*k84kciCmRAl=k-9ZrvaC)u;a$ z|M-9R{$}(1cc5iFm;LLHm^F9z_AG2-x)-`sIA@dj;@;?V&e%Wa-feeyUr{OQ_i5K( z>s7h335&eusZ?kNi5hu?yysW+w7Tl5R8{ck+wW}a?;mHsj_Ex&W2dUH(*izOmy}r- zoJ@B|bd*I-NqqjxOPbT*>#tvG&))xgcTP?Slp>mS3+lMjLvQd7(~nk-bAI_==| zBk!ahuy0D1nsN7C!`Dj|a-mmhtmdyWy;l4Ajeza_RQr(Evlg|;&DZ7Xc+ufrb}MwA zvb3Y>|AI}D799%(AD8>3Z(VXh`{*66=S$w^G;9!BH(Nq?%g4%lW?R{l&wo%$tzEUy zyvM(crQofj?y6%JnUc@rE=)LYQ+)K%OUYxV4P2?ktUFQ^vgUnm@2O9mZj$2sy?Vp+ zbLpDf#ibAJV@r=0biDZP+a2$v6Qb@*>aBUIFLJzj8Pho%o%3GxPji%C$DjRlW?uvs z>#anlw54nG!@T)#$VuF}F1Td!DW1#w54z2sd!Vv$Qo}{Pt?|DbQm4->pXMxauH8;7 zHet*En%LWmzq_2t-=u2#e9ekKE(+=w=dxs48>>7&_aleBr+w3@wym!!&2*B_2Y$Tk z9OGMj^{CDHX*xc^0(@s>o?8{q|B<q;NcqNWvH8Is1q+Y0Fg!fEj?cRK<0q}C{CjsR zZ@9+4H}84HIA^=u?BCf2hMZy9{h4>A9YuRYzp_4(^k>U$V?N)Q#mVClVjeNO)yys7 z2}4}vnf@7Z|6Hc=%}|{Y^5n5;U;6*g7PW2)4^x^m-H%De9{*Y^%i#FukHODv+MTm} z<Sb0u=ImSOqB47*a?K~{TM0~hYHDjIr5kJLtPak6%<|;*^XglfQ{(6O{HyxGSNia# zPT;l8ninM=i+Ijx?wl(6K9ccJQsum-8+rfR-$^`s`QD~ApMQQ`5_g{AKydX&_Z4%R z94{ViRK4PNWo<@%cwqgl)?J5|XV}C@%{gGDyr(~_re|Y+Mi1Abj$fOfMP0e+wra)e z4VxR+R255`-ui1Q+f!qI?{Y@YjFl=5fsxOrzim-EaBt$a^$I>WrLM^f7U~vhb=*^m z$>rG*!S8WfSmEF<w{0n3n$rrdzif~cIppDfV7Jx{8`s$@I9Re0@4gaUcXj>S1kQ>} z0<Du~rQY4evWACUuxHJ3WBUs!TbmAAaMxU1xRN<0+<n58&3+;*Au)G(%_?S3t357x z=kUrq9}^}C)jZxibERuy;@w3@s-{fLxcyo0_x$a58yUkL9Uixyx)*X=S8<w(>65E% z9&*kuY&{W|g*g`J=<!dloBLPp+})=|KHEAO6kmGru%GkE5r4b(@4u|y`I5Esr*f8m zGweJ3+2c9y+S`-P&6gDY8(n<3r}tmE^z4G2&NhMe^KTldzUTgOIcxFUn1@_x1xcrx z{G5uyiss2#S5;qGcAH~f@7upIJc5&zbszfeWjQrxanFmz{dOI*{@)e{O+CrG-QI8a zEcWgG)&ID2B&zQ$OHZ1~9BFl~EN9t$VUv$%HcXMZe`e7X&CiLgr4x7G6E$u6pZB_I z_5Qfe_2uQa=3HX`{bjPe;F;S?Z5`M)&A2Sq=d*g|7ZHad#|PIrp3PZ%eaAP3=Q4b| z*OtrNK00M)+4SNS3-0Hv$!4`piahY_YV6kO`S*{c>px#S*Kc}mjP5t~oZatw9p+7* zDfA_-vq*Ep?g#fC&Dp{5BKVot!Giku@VojMzr*Fu*7gRiIB0SC-pZY3lM6$xl{|XY z6g2OK^xKr5A5zaVtYDwgek1)i^S8It*YCU2Aj)~aR9n+v0-xPYmWMS(JX^PGM;9#R zP-}klXt&`u&0RapIqqiKu)f+9zq|2gV|D0t1{VFPJX}{+%L{Fou+M4nUj3=<oHL6| z-_A_DTeMdBuvIF@^r_!{7alZfTq1gC?~Pq=$|fG1el$wV(&uI%>(9L{i~biy?%>Y! zzrE%7RL`E9Yo{tip8dZ1oyEP?yZ#0p+Z1+eOToV#0e_h`>Ic019W5tN!#?50_1N{E z^$QHwO}u%;_}7kSf0lcnm~>y%ykzFN0>;9rjkz1$U;QiW|4|#yTr0cp@3-4!c6V>C z4i}m!!u%jdLr~(t;->d9&)@#~{kPA$`u1w=Kb)-g96Jh5&nRQqmF3S_&1T)HAfzBC zk$m<_R3VGI_+){!X$ccbmo;pkFxT)#`fh<Ium9aV<kH08aHG?fIfS)^>CQPDZjED+ zz5BQsdM4$V8=mK?Z7p7Ne?_qVv3L3vrqeDZ#O>H0u}W-TxPB_<LTjy0t8cqCl>IGs zZ$7Z%+9$q$e*f~G?)3P-<KXm-I{G>bF9t2@ZgP0AS2M$1vLPa{G)n(WpZK&hrrSLE ztYc1el?ofPid6sF!I|{ka<BQ^7B@47W2@HB-1p7e`(e+|#p@rd)waC!(VyY8C2{Rc zABpE%E??6=c%XQ$L)(wuX>UY-imCrlUF-AhV}{lFE1^m=J3oD8=GdX2$GPCushWGm zm!lXTKNWZ$oEUi|+3>;h>%o<_%nbf-m;PH6IoZd3<#z6_UxrFg9i8t6#HX8Wa@u+C zs+LL)Hy=BzgXXd$4=e-X(+aclE=ZkQ!W1OYZ<{4AS#f6Tt_{wozFd}A-mW_(*fhTF z_3``5efFMyDRhG|Q6iw@sRMUS#!H_EpY0Tvva@;Z7E}<tslRIWBIX;--;7x0gHHG! z{aDa(PVmEX#fvMewcpuBJu6whr2f6uU#3-`)KVw9Mf1rvcQ5(2s&3<d@3uY6hKA=) zB?MO5w}rj^*>i5a#@!N~&^Cd<=Zt)l6mP%ZdW&O=7Qceh8^J%DbB;V=i1TN=ZMm*U zU_srUymNQO=hxoe$8qa<;cv-|%EE-uHDU&lFFdUI;+``u&)M7FG4a)Vp2sS$VtDvv zw!|gx;BNgaB_%Okv`<Sv?WK%Zqe~i7(~+Fm@NKVGYN-~mF)cc1DO;WLc#qa*`_!1? zJaOp<OmqG!MzFir|B3#-BIn-?WeH7-eX8~5EA}qdt6KDWImfI`W>xvkkEh;@u;j{_ z9<jk~>-xC|`ZE@s&P$j7ckKR_*UnpS-xiPl@c%0>%MRXK_D%mcYnr(K>{<S}sqje6 z@%JxM5^6Vw?Gs_Une6i?{SE7!=xN(`$e3_X{r~-bz4o(zXJ6~T-F^SxIX0#}n||vq z{+lWOM|o|m?exQ(3!B^41fMNk`e4)gy{isv58kGq9$kGvX6F0ti+p8rQkV~SEuM2e zhfD6;jecWmO_}A)SxTW?7q%K*JN->Z)bUfId}Gq>15@Q<Vz%+*ykE0{ZBn<7CX=ki z-jnZ)HU_!OH9M`)k!roO{nvh_+3kPZ--tVMTRl)c7{t{2CR;C!fx*`(MTvv`vCf=5 zOoqqq?%Qk}*EVBcVeQw~>=Eu}6W_>5C}c&JJ0wVa*PIr#P>#KUtz+%V-3O1bZEoE* z@A=6$DXVgHs-}G3xqlOnLd@6oXRj=eUQn^dGc{cKhr>4QTdk}C`}%7%qZ(Gr^qTIs zm45G@wQP-s>g#OHO~=`d!wb}pOMYiLrT=^J?JMpzOtJFUPl&TMZQ@T6ubkPWepCAu zqwfPPrn(zO4KG<5m6dm@aZG5;V4Lc}z_6`-ZKGY&salCY?lW&}E5G)+qOXq6^sV^X zP+R4dZ!dM7Xb86MOHXHsw3g19lNqaO-Bt3P_r#vs#seF=o2Ds6-+2D2@qd~?`Ugd& z3K?yUoW4`lVTKVtW(Rbb1J_8s^DmX&*|W3jdsa;3>H90f<~J}O`Fi2fy8nBAOQcUe z5OXel+lnhco4-|itz%GlbH1>*c8$>-9bIebTe+9`rU%EZ->hX|RxQ1t<pS@ojAMtV zEah=av_J1qB*giwihaYSzq71QZ#Fo^$vwYv<HE%%^S`TJYe~Mhm;LL^h)oPe6Lusm z+xNgn$M0%&(|y?^y!D!L&mHbFBy2BHywLje6ib<usqmR4(uNEs44ZSK)Q>8h@vIft zC%r(^+ri>mMq$+g`RW7dJsT=kzOg%c{;1T%+{O39*aXxc9-HLQGBfI}>*@5_y9@+u zie8=-`TFHR)Y@D7cWz5@XFPViAa~nZlg!jLGSl7WA3jrRcI5rLZRwUD{-jy1w%tGP z)@w<IiX?rF=4~Y}=16{#`*TpvzcJ>#m&ELUmYZD*MLD%%D-5K0kBKB$WLTZ#o3W{Y z!=Ph__%&m(KP3Tw3Ioy_bdSePNtX04zGU&!rcy#zGGQ8zmuurP3Hio8NA9>w2eq5a zvt3Q9*uER2q}{AKud+^A<lc)b6T(!te%~=KV=s@>lQZmBav9Sc4xG%8XxuT0??AQ{ zKa-(uOH}ZV75(YilA9jdT>b6&H2m+Pru_%B#IBrSTd}Ffbn*U@B|AMT=dni!&hl5; zuE~(Tz{Ij^v&BP(3?2>Z>9IkcyI(xI70apk;M9s0|4vuFxKYvOblglf(C+Y-d+uk~ z`F?-=bB?WtRZidWO-pxQE9F}D@{3w;$aSvPs8o9^h69#d>O1(<JHAd{mb3Lmqpx+^ z2Ct&MS-D5L-?Y!1H#c(D@q=~Kv@`ZfFiBoywV7X@(r@_bteZpGwu5#F+$*_e-P^Y) zyjr(tk?0R^=>;=n-WV<Xv0Ls>{>=ZgSL^<$|9Q#o-?9AMng6rd{>SGeZ=aR%Yu@U0 zHw4ZEaW*grpY47p+pu_7Ps)LL`fMj(uGk*Kz5DOId)4pXa>U&Ga_0Yb&_bS%6<g%L zgw<<*v$NZlp1`ny{qJqTHOqOQ#;u<EO>firxrJ9;zrWj=H|1;lULzx`4Js2={ccB2 z;Y|N9X_mrkm%{vum;YV$-_PNA(NFhYd~W@_>IEBFr+RN*t$iWVfBENcHT=N^kJ;P~ z%bm6{4zyc)`0A4IPb=;jF@!eravccqy2rC6()*2PWcsv|5nZkUfeKMmCp`H!FD|U0 z)Hh*j<lPNX(h~};>~H+6kS{$LbYL2*rtk*!hb!I9c21wgx?p#=G1pD!YjWB49a%D| z1spz;8J%}aGgh*&9{Yap*xmz{$7XRpD7RJTX#2RfW?3*xkYoX?L7`etc<#ObFIE)v zEKr%JW)S*LlIyc#hTHCaf+|8kOywd4bM8y%9Mn9&EAZ3CTN=!(_DnlEQ%J8?)!_Wj zf{h+sK0dO~MR={5!VMUe=B?+J3==h<x?q)=!)yk&xE-4xYh+1oQ_Fd2*Tgu3v2W#z z`*!=}(=R5yoFvw`GfnF>Gxr0R54%$mru}`oxtev~^Q`@A=RFlzkeYsr#pANT2eDt$ z${LbNyZ-$8(Kqk!`^P1A^NaEu^xkhOSk|C(i^;EU;_nTfk(2Lc{`eTdAJcvI(;nUh zAI>BQ75A7;{NjD+n7Q;W{>%5oo7<jyHmC%O+iyR3WM<o2Gp4FiiG#0Mt|bQ-EU&$A zyg#>ar`mxREFW6+OV|C+zO``T!(*Es{_Ee`ek6E*`kEBBuR@NzTk19kpKi2cWNl)V zo1Xfnv0}@=pVDts4KH)tVN;&=d_v9XNlK@arhd!rsy$TwxVFbqiDSYnz1IKd8!Z2Z z_PTbvbRCWHw<`;rdF<$%ryf)5B6`x<<xg)oxN^SYx5$Zm??1m4`1*p+qZZpsPI3vR z-`?2myDqO9ab(-X_Z$r?mRyV%Xy$mq7oG9txS~x*rd?F3<*^N7*>(Tno7TC$1fCPu zJeTDu-pAz45>$9+rL;kkLhyt2&h3qRE@m?F<|gXa^E&Q#Yn)!U<D1mWt)49cv&*)m zKg>P$zb`@C^_S6R#_vm~eayGy(+S>U6d2WB?!<ES=ij+fJGmSh7CPT(%MswYf6~qW z_MyY6Ts~8H%kEz7la##^Y#8|Ugh{|MgE^wcSG`>w!l$l1RB?4tLPt|-@oA%L;e7|D zNv=8e{Oa`!D<wSMCcRj^>wJ&X!iru#qbreNGS|+u9k4v=_(ZdY+1;gUzeP&TF86PB z%Y)ZCUw-0Ya+aNWvjxM#Ww(DR7AK}Hnq$ePx>rL+EL}QJ)VL>#Yu5BdJhuFi6#?Hm zlukEi+-(ZHe^Areb~Tf*x`iF<Q`ecnM!XU}bI&J8$HdC+u=`!TB-UV)Uw>0gZF^?T zC+{73uM1|xa9Cx|zT^HXU*G-ACYb|kmOQxI^6xf}$p${F&FO!)PWBc`4&Xi0JN>tK zp}+l2nY$NK680*7TegYysN3|3rQ8nd-!}8tpIo<o{oA9_`fuOY{Y~Dz)A7Uq$L9t9 zEN=)|H+AN$>}5rQvVT?I9!O3PeREV~OZAsxMj_qlzU7aqSMQ(4`cCWr{h!yin+Ytq z{O|qS$^LaGc79J(=9Y0wF;k7vTGn)P#br_L<x!j17O6Bi_`H{YyXw5%@@Wmhx_e!g z`F&lyCx2@!Z^P8m{d#YwcCY+iTYviHooxqLzPyMlySVwq@71#z*lu<8+-->bb>qEY z!cCSM)e8r{Y8|(`&il>e+5Z!NTh~}0TVb8YKW*C`+vD=pZGU%hE<4D!T5b!ol()qV z*`C*qLFd1%|7g7VOoQ0m@L!*EilbK~=D%!f%e}{Xx8x?%!`i)fkEKR;9}h2!i;w1a zsoHJQk*&8=ZQ+`_O$%pUI3&6DVktu`OVpQ1`xPwK@<c7pX80Z^9jM^&^xP|pkJWu_ z2Xz|l+>5*N8Mmb8uFrUPiK(-jQ)Ep|8PjH~?OT^x|6cO`rk#0W)Q<91n^t*W`KA8g z2>)ZB<NwZ7Rj(~=DrV+LSrC*`-Im)EedEB@i2BUkT<7h$!~9cEN*#-QF8%BD?3S3T zZUzpS28B(mBJmgBzn_(?H~(Ra=>oGZ%@oaoi$B-gI4?Vev19Y{(uY5Oc<tWy^!)n# z$8vJ-SkHOJ#_~AZ#IL=fz39a9`=M+zE`>OSFL`%v!I}=y=I^1MGP79hL|wQV6f?qK za7&y%@~HCXdkZJc0GZ;WdnYp$oR;WMVfAtF`SZw0`dZSOg!^SX*K;>|zA>L-Us<*( zA>sCVS+Do*r^S{rs(6}QRg>@bS@dUjL)x$2OC^CphqmyS&DnnJ_VoKl9kwYZ+qp2E zXPe8A{%s!5Oormn!}{BTTh|}2luG|*=;d9U|8h@e#{2Nayy^TE{u>_t+-G}T=6rtk z&Sx>QvWw0dv$#8_YrXjJMV|H2k+_T(?*z^>C@eZ^{N<el%ZnI=W`-Wl2dBywZ>eRf z`&<y(*;Sk`^3L~-<%7nI&v&nHiKzTrnRIN%3U9H64F^Q}V|k>aB&u)n|B2R#neWxD zvhVMoDlgEa`pUg6Q_`00o)O@`CAEq1{gjupO6R4WQeKwPFPzy^+{9;}-FaE!!o^0h zi_;1_!*outbUs<W;Mn9{88dAg7z1lp8(mlO_7qtAVS%KQdg7d;86GX0CT@(1aBfjp zk=M3tyX@=vwG}%Q?xo&zkg}0AVlh0n*FZW&ck?3w*O<%>ZB2i_<<pXH%(vR)S1mWK zRwRu1@`E~-uW!$MkF*M6etOg~Y<evlk6PoN9i~>zQy0ap`sw>iA$wz!()K0BEVB%^ zD0u1r>d7{kkjWJM#6$i;j)1NH8>5E8^!s<WrCnJ1EwFX%<CvS=Qx%USt-O4&|1d8@ zvzNz<Ju@%9G?11nO$<m==AJ0YXQw2qxkhvDjT1+*{i*|Qxvu^e-L_ozVGeUZ(hHsX ziGDF_IzLz!oW1sBLhibwjD8nZXg_6q6=l8V{}<Eu#<H%#3U7F#e$>9qn89mxw{TBA z*PEYDEPQ;cPwl7|;ql(X^Y*J-?w(D&CuF|-w9er>v3}qG>}|LI{rTAcf9YKF^tW4* z)+<z`99zt@dt=V>FYNOFZi#)6fAj5Vx9*SsucqCs6;u_o{d_-U^$gSQQ${QK;<or3 zpZ>emFJZzl-q*VYSX??A*u3X3H5LDv7Vx|Ny{m=L_xyKncJIF){rB$8j}J5E*Zp$d zlE<g@J?qph-mIN376$#lCZ)`4B<6YepTTUI>NEXOmlM0#GbS)jZDN()`l8^+j^~Hw zbuq=>oE;r2bAiu?F*yEm?20!PA_d!@MLv*x@Ur@<)~RK-PPz>9q-$g2W8Ww9?Amu= z6LV?t{`>1beKMPK$4~feQ{3{$t>;^9XXTo*R(Sq6`OswhiuJA^er|ZXzdc$0#@vnf zj!!yd-ROIfZA$WO=0h32s}zofta4(vJQK&Mux$F0J6HB+)qh_9H~06$`TsZm{rOkE z?SjO!?)kiJ#~I)7IzO}evekTf&Gy>&U*Em8(Dwhj<!x*6oP1k@C~1e+_nNJ}7YMzG zR=U8*TW)&A^mC0N>#{lbb#4bQ7i}<Ad&?WVQrt^>4abGaz7J)%zO32K!gp;>`>lh$ z7Pq&Zzs^2s*^vjDDW5A@+@lV)I?idaY`?oPz*GFB=C`MdjCL7abJA2h7%+ibf#J@N zH%T)c-5Z}Xp602ZyIsQ0(0tS4sgb8G)Z}ueFzO`B8blo9JykxjzPW*S8;=54#xs@^ znUmM$e^U&)z3s`tk1Y-&-qX%3sJP;Mi)U`Wmg0;1mrZqk6_<S|?%+9fuHkO@=6Aa; z=qEdbZQ(oeYeGK5G~boA{6W2T49X2}?)F{(tLNj~JO3_AMyplUyW+my+qTD-Mwaz; z8c7CS<o>(%$1B-$`$HWB=WRVAA<`ss_g~{lCByRvRZ_eIe(EwUQJoOk#XHM}`R_^} z-_Ko7x+B7?cX@w~OjDch>u7xH@r6UzCvUxc-#=}Vgw8RutAYnU?@Kx#R~&g?Izl;n zQxJFd&t}`;8<k7nx7Ou{*8ONrUGsf*?A}d>|5>@rXl{I=dp&)F{2U&(P19r699P=L zf9|E-!H3D_Q`0mY-m6+LtSPGJp5iNbpm-kd1}5v%pZMNA)T!)Ue6KQ=Q#|kf&bVcp zqrX4hXddNweY)bYSl?e<vK2YJi>@++em4~Vpv-C$U(Cm<A^GROd-0z?Rb1<{&aYSh z+SCwl%v!X}<5<A_w(kyi_g}G^vvuFW?l~nL1*Pn}Q^U^athBKC>AqscYZ0lhd1beL z{Njn}ng8MCeH$O4PPzS@&zx3PK3Ep)cPnj6rcy9tyF5#<&e3f)o9eDdFZ=e2Ve7pD ztxfOVH08uz{42eGeuK-UKNbIdA0<S63rO5*<T5iRBRlPAJ4d3ol$u?(&7P=DGEqi1 zrm}v!mh*15wBOW>XA7Hn+V5}fyCvyjP?5DL=<rErZpC}E8~84nKfbW|0q-&=C;MIM zWhxyyDsz^K{QBs&yot#sw8T*H`P6i7<J~qMf%n-ia3t%t+&@tg@NBAN*MgH#Y=IJ@ zDHE3$+_=KWx5Z6NE}&rL^#JotaSm_4ov?7dc5-X#s;Os=71Y$!q>FFru6go~i!aB5 z@6@G@|7?u2=4_8}>+XGXXv)(71+nA`xzE#Y-Z(0^IU~!i_GHeA{@Up!H%!0F&r3Ob zo?o>*re1S<+3x?UzpLxtm%p+9d%y1Tz5V|Zs?YQCy)Kv`n)Af3Kdevw?=kkW-KoE; z*Zx0#|4&r|!`+u}XZ}CU6*yn<+={A?Mz-9N9+9(Bc6?{@GM^KjrnqKCl!0g?vmQeS zpONE)y8QS1|Ce1keSh!Ewg3J#?)~@4uHnGCZ}*MQYKb>I+7aQe^>c;VDh-+2Y0M%q zMN2*R+G}1klW>oGFL`KMwe*agGt{#g@_UqXF6f$ySu3nbobfHKKP$5~YW{A+`x8}D zrcV@^bn9}W{MX0lgqqhR>n)yEar5h?rrB@zXItmo{G595^EdnTR;L$SUi_UQq9}hC zQ)Pp1t87wQ0^{CYGq;}lss35x;K`H6#Mmmre%x$z^mJrfui*T2;?d-jGaNVCUh`r8 zS|7ea{?TS3yPm{UhB>jmWy>6Pt<H|uw@<JCy?B56|K0ze*l&;D@h|%JtX*auI~Ka# z<w$Y!oGRh2>EyY=>-D}%3)LbP7B#<-&tG7Yym+34O^w_<%?nZz-`D<4Vfk%y$|i$< zPDA6X#m&>|A6l``?po2?>A0*m>{P^2)#J|g`m?tEsEI9O+~CL)F#q}PN54)d+~8cI zVK<jw`@QftTPCJP*^f6)q&bC5IOxeD>&|BU#k=cR-`880-Wde`O}yUA<6$HF;ueFX zpN(_a?wz~33it1~pJg=fV%T}X1Jii2er&C+;bN-ac-l&P`F)S{xl^r<1xjWyGJQI~ zA+0Ait)^$Qjc(sk@At>f@4Q~1clh7Ussk}cnael4J(v;Vo0=4my8lpx|IJX9@^wBp z<7&JdwI<1!I$l4tHJY<7uISGdX1VIqJPa&v9WUJ4_$jvRf<^fk^<GZK3ZJBj-@eZ= zxX*ZCUCnvb2#X(o7TkNhbDgew=FMZRQUVe3*0-AWHctGc^mnsRYC-o(-c{UhlMdWD zzV5?rC-+qvhu3agC>QWuU&~~@*WQh@U*G0s(OAgKSj&I&Jv++*yK7n9h5HW8X*-~E ze%i8xs*N^<7V#c_2mGIM=AJB43ShBLx-4@kzHe=#EoZ~s$ZN}jI39og`u&ZMZ2g8y zQyh|4PBK|qv|j3ZKW}|!XTL{W$XeqY7Rf#rIbL=4e*aSywLYEgKydZSeI0IAQOB-q z*8I#8AmS*QrR{l;k85JjHkQv}L6^8@_F5c?<`?5(-#l?sutW>nSND*#z>|NED4ck4 z-<U(-QjVL*4c`N<3m42kH0{TW^Fb?XQZ|*GaK3)Rn7i0g`A4)EyKPqLg~L8y7TjL+ zu6#@O$A=YCbFMk1@ASFyw1la$fsrM`V{TL<&*tr41J+-^bHGujH$(gV&6Or=eB5Vl z{<0+KR6_dM&?N;G_YFBtSe-F_>&RKW^_iiZ!V(o}k?>f?w#oOzo1)izOm*|0#ld+> zgmu=LhD~e+FLG8{W{14GrYMyicxvlzmY;tED;bZOX+Fq$`@-6axoAP<feVcV*BzZE z9A;5@==;~QD&f{`>r%%Zo1bhf<zK~U(#XISvO~;z#$_qv+tN=86=W}}7pR}knsRZP z#I*LyU4NH0PdvD+Fs{;A=yV7>2LpR8k4tEZfYV>baBla-$}<|j`Mi7<bzy(e-Guu1 z+;jKeuFtu@S^L|yck6FIe|kUf{m)A*X*{#Cd9Qxpw|kTIzj}9Nq3FT?XU|Uixqr^~ z2mjT#ne{G@G-`{n;>f-+e`ER1wBU)ex1M$7Q#sZ5K~7ijt)Ru-4DYVrZyf*se!o|| z@5A4_*}wDF|E#|pedF$Je!H7Z|JA<c-BtK%DwK2Em+xlQ%$J>CIomnb2pKi@EO2Pt z-1a*%>8^W$Aj85HYsKxj*)<NBvxzL6bY|=P>{$zzZ{BA%=Mej3hlFb@E<ZbbkGtZ^ zpUaJ@Zd`4yZ{Kl9?e6<robs*Od;7nC^IWHE)$3bZ%)fsm{a2+RQ=W}@%t6W9aY;Nm z4c3)@8p-P?Epbzya%jm%oq|W*-|F9L{rIi-C{b%`k>-Nir@s0aC~r+X7uZ#1Q=j(# zQ~UjGpEH@4Z2K8ez5h4E48Jy=tE|rtmetOXpK6fvEs@!&?sNT*@VDXr4$u92+Wwd8 z?{53Oy+&3VsmV>7{&=1G_0U;(LEnS$-xHt43$ET4^F6`mVU^~tw9S+6HBVD+o;E34 z;M$5=GvXgU*d9CYE`#p*InUo(>+Mjx!MW@HKDTv;mL=qC2giK+_0IT%Yx$g<?hJX3 zl$rA-wh6sGdFDu6CCjJC)O7J%tXF%Ef17(Gk~zongO5$|x$j#d`@I_`>@|BMEYDaU zxam+RbMA-828P+ESVK=0ly2qk?JeDXEYtSUX4krd311UlzpHec{Pn;Bfwli-*8cZW zjaxjcLi)hm&Zz+z`=>D!a(^}J`sUQ+kWt#cb@PXp`ZZ;}dkg)Yy;)v6GEL+<r66L_ z^t<)-(<$FGzEm6R5?7nfAeX7i!rl0wZ$^1X+{v0vj6G}*LM!UN=1HtMdt9<q?%Ry? zWpCQWfBNyoyBthAr(G|Seb0Bn^3>?V(tDPt-&uY6T;PMye`#~BAOE=LwPkbgk5r}` zb3PZ!9cVkIeQo;Dui|B)9Q${D^jURxTHMi!c)j%tm)!RbJj9=t-q_@4BO7AOb?Z^v zmAfw4FOoES+}V6>;!iGexUA%RO#bD!rGEPwR{UR?c=5Ry*PnIM7VVm&SlMD$Uz?x3 z=foGSH%3d&Md>|Ezj1uS=DObRB8^&if|J&Ec?Q4ZWLRa*Y^pLZ-v1TkfO`IS8yj6Z zCw~^--}+e4ZL5mzt(hDXnv6oKbY;C3<|}6`xY+ml#Lq>}4$5r}e<$6XRFPlvYmT3N zz#GxhpvlI3=>n_HWnB)w!N;v+b86MPU5dfa*4+H^-r$P5_1v=P3ENUPeGC7#Vbj|Q zMiy>g%j)*6*q<rssKS@X5@yjq@o8L@r>p$?t@6u)3g6!6KQ;4Y<)Q<NHtt_9QmW{- zWY&@HmAOKEp%$I7U$l9i-FhAP{ga-hzn}e0<z}|1H>cjO<XI+vfN6np;HhXs`2?mF zPbWDDY*!LA>f{Tv``RQH+qmPnqWiCGD^ZtsvFH9gZt#2LyuenhZ-3Lz&k>76?3})_ z&E(u*>^CPXJ)z8%D>Av@;ChwTyp;Eqk@7R&*ZqAr<L$Iqmaf-PjBTc@YDZN%Qto)q zd(hZ0Ls!6Rq39Du8MjRwO_9Mql2f!?<~M3@vMKp<#oj{Cc2i-)qmAY1&$+%HITdI4 z`9;V_{^NCX=X|((<MT!_S7Y;ak59c{!*cl7)^~5;eNz6tzW)2~Z{Mu--|EZ#Q;9OY z7GM<5vqsXw`Sc}+-~0Er-uj<ko6G$#zAfQe`ux8pEeAp_DSq&q;uyiy+4yN<<y)RN zv1g`EOJ4cLBfzZJYzYUi#FO9iDy#qREjLq-nfd?yjo0S!w?6(8IcWdw+N3h?1{RII z>2dzm5#M8c_Re2eus>jp?_AS>b5p)<`nc%VrpYUnqcU|PUvpn@G|SJw6n5bCf$Wpp za<A`_@m+O$Mey?8a|%w?`49IgDm(3+`rE3%l&#?0)@xHL^;f)q%cps(`0cj!H5>{{ zn;BkL<sZMS$}(3cb9d6NfQ@n4cbBc<UAb+Z!itL<l?$9+nW&{NtPM=q=6o_dTJl0w z-0jTd7zGE#t^4}xI_~VdC0ER>cWt-E!mNca;tyDCvTC|3@olne@V=!g8!BV!lm5T| zf8Kt3{Ez1KH|GEO5uca#<Lox|ca`#1N{p{mWo?aLU#?sB_P~#<b^ceLEAD9B?Ke9) z`q+jQQ<MH|duqvfd%ybZ^#&8Jo9$%qICbWBSzpPoO<A41&y%K|ajl&A_zs7n$xr?t zIVAxHlpeni`L9<{YL|af=tXDKwAt3zGCwokY6{}1XMB5jLFt2(^{JW8^FM!j%8^uE zaG!Z=#IxO*^?eC?Os4B(gCm>yFWioq=k)mP%i{3aZ+F~y%geBB_wM!=`xvSps%e$Y zl&DYSf0^C;nW<^T-}$mUQ|~Vo+nnUl(77<x=vwYpM}2W?_q7FuabNa+m{si=`PKW~ z(QW%4S!zF<TC+vA*-ZJxMdoeF=T+uvGEL^xnQrDV`_Qb<b@9C07MA+<<}7UgnXhBq z%<$A{cdkc?#d(wEpX|R{bDh`znWV+qaNg<Sv76J+7ENY~S94pdef@qSzw2E4)-{}y ztV?;TtoI6BPyU_yLuN0lamHKK^Kn~$hA1)JUtcs|N_C39?!ibV=e;2h7OC{j|DiJb zyI93l&1)_j!jfa>7)MTtU1FuZrS@cTy}>qz&Fs6?jo$37o@By*qf^DIz~ooM%75!W zuFjn9`&z!QS=IVf-p+d=|2l*Gl(Vm;249*VC7k9V+x8-;fb(~+G2esbKUH+*J*{2z z)A^1`ZY;ZMa<$P)k#7Y*iqEfK{t>)fl3TKF;h6%r3)f{e<_GN2TXC7oEd0v19a(43 zs3f#kJ=AL|S$4YdO>FA6DAn0>-Qr*Phz0J+Ea1vNm3hfk;?o(YcM>&mK5tleNh&v- zIOF)R_EeyV?R}l8T{DkrcPd3|B$b!GS$CrPe?wFj!|I|84yF$?xnADu()HrHJ8|Lz ziy0GdhWh@wIfb?7@U6rf6M5YmLS0_xu~;3_yk^>&_W3}Ip~|e+68%ehG-u>nP3T&A zEZXfpXRms%(ZodV<(oB<9}EArx)5n8$>iL%P*wQ#9Nt3_n#WRB-CtGGC8m9|>7@|+ zwBQQ1q{$^Wq%z+{TAw~sDm_!pa?Xmyrgy|&r%r5CbztuAdn%OnLU~zb%51I4&T$M% zl3N(6rfFpq>$&^C-hX4x-joW~4^8{`uaPUg{@Rs2IPrp$ZAXF33bU9qn?#z~3p@`l zU0Ej<er*216Ac~`e^e}uSQg(nWz^C><Ke;0M$QQfMEQ+YIylPyS>oOHx#PY~4&%M; z|3Az>B2ZWP>+%UV%Sic0NpH&7e}9etU%sv3zgpA({{0_KxBPm2@c(n$)31KYE-LR@ z$)Mn@9e6m*=dJ79+}l4Aeja-6wzB=1O}lQx^s`^r{9f_%{l1&CuXFr+|Nh>Mj}Q5p z>T_9^`k6j<YIiyH<5=8{)>wxH+K-AnH?Eg|>F+R6lJQ0BITPcznw!|&d0ux%`ga98 z+Gw*MZflrnx4hNE@W2M`+fgD1Zrx@$<*6$6to2-uPG!@qh>$&Tn=dxUG>XiySKGMb z%3^`wM!u3P{w;>)f9g_lbf5b(7|wCB{BX;e>A)1n>(5n8!kBrEPG9sbqVk4Y;mUxQ z`dnEO52h*d-Ojz_`i8Gd!faaT(@Q6fT@I>eo!cGoAhY<|{_mIH=lp-W`0MLaWoz9w z9IlXCaoByDn8@0xNlffla*y52I&<Zq(zT5a%!}_XWsd)1EB2IU+8VA~X*a)cROqo; z>E2K|@ckQyQbim07tK?jB+r>YPIrE|Pvb%Q2f3v7Ss{#*SY&t>q^BC(X|9@)$hvEB z)6z|M1U|mYd4I;Ozfx7;z>>~-_qRJ8EUUlVS#<fa<FW;DQYK6S+y}Qxe7ECo&J6ZB zXnSl;_MWnWA0>~ZI`?ir|Fz$CUG2r9y-M2rT>p3RNfpnj?yuoZe<|(i|G6W**`<8j z+LpPRk!_Lc_U-58nx-7vdimuo{cZE-74Kuzl6i4@rENkY!=3eq*W@x)<h-1&%HZQ5 zasGqNZh;5V*QZD%F~0fmhI#G0#^o!0<r^2(ZF3EJ@G)KV$Lea1NnEid@2$=kOgS~7 z^!nc!deg*H7cDxbTs<$=`H;HpjB|@82CkbCu4c=iryG+VKF!BOEqKFpPQO#^s?}Ma zqAX_~&y-<Y^@cy=W~B|&37PYX_UAH+SNAaG>PCHa-LO8vvLWosy~jIcoNCrGmxW(p z%jmzpa>`%ULs}gDzN=VRqYM|deCxP<;9y$u>2Ry44UccfY2Nz0(XM}oe!iNT{t=bX zWvcQn&vpJTx}tLXs2wZAmHO{YpEt~V`}6A-(8@{S>Zw|cW}5|16ece<+&7`^B**nB zbAu+ZJlQHFBGGmvW1h76Gd`_vE}Kdxtlq9}x1o7rUjNIlUu1KxoV~W@<KbwDZ5*sq zosa75+<Y!CWy*tu<%e^ue7srIVtJM?{v`XxVKR&4`EJh^zcWos=FH~%*7Uu#@o{;` zD_)arIz}m*E_R2`Wq5KX*~VFL|BBvuO^dpI?LBj17BBnE&xbbZgmm&LBwYPFL-noh zzdMVUMKJ4hRm?yA_GY#3<HH*jg&kC%FDclxK2N4#&z!5T&r0qxlz2T)Fp^2LKjCou z1pYbhR!djL*=Rdfe+fP3aF2t9b49|mtINM7N7~PxXu&^khyFF$T_svJrph*=E6z^w zZ~WZ7mF?<xAqI!QXKn}h-=Ep@&u5wU>UjM-$N&CSUGX&b>#iFNVFEkuNVOb27jn{- z?fmAqitqIIsmz&?W@fwBzfaeoy>pj%z0jA=1^qW&<sWoj>2?*C*WL7NtD@mqDZkaz zuYX&=?|Xc->QR#wyX=l_yslUG;b8ciUuo^L{^!^9JovxoR(k!<%M!s1C1!JY#gED- zKUfpH<ofBK;bxIyNkv7bf0x*t%ABU$dGhta|3WkWr*cQUd;ji@eEsj+-!}aHxnb>3 zfBT=o1}R)C|D53voouyT<EPI3j@GJFV^hQ1jN23!m|y?;s7j|(iz6)gzT~U-zBjiB zOkZR$&*=WoJzOj&TV}pde8YEOtK4MWvRv=**mc_l*Q}fE8{NF4#QnF^g7*2W#jSqv zC7dt$H0S={<FYCZP~zDAbe`F|&zHa5XO=PTs)}N3oWnm^c9E^mfpZ^iHwF7G*mU9E z(zihicrIQ)XA^05y!PdyvTw((ZHQ#Bo@6N)X~V**l^Wa~sr;ioy~^1pIb+k30{Pq( z2efW<=%rn4zG=STgV-0%d{6H(i?g-!7UewdDOR{)#L~QX=B;ec$tn_63&r%xIN$nC zEVh3pr(?@HbM->!mZiLoW@~w(1)lRT-+lK+|4hJSU-Jf4Lldd<#%G%k1Ri5bnSSuk zr<mtOt7NoUmpnIq7yQjmFMey;*0WO;k8D<#IAD2T|CQ-6jcKZ{{i_@I`Aob0Cg+@8 zdL--1zc0VDM89dg?HE})?>}#j@Wzk#_Uya=ug2iPSC*Zw2lZaP36R+GV9oVgo!TYO zPP*pEEI!v0d2M2K@^gmS=T^$71mC=QVW(zi<$?X1H?~judBAjYuj~7asJXeBC(R~q zi0Kgc&M+~ZDdgQs2l=vO^PGlLvPJxw!S}rl^rH67DNlRFnshO*KmGMu5!+qUDsK7w z@GF$NX8V2h;kIWJ3>x$-g+9utZk6vz_1Po2@yMgf^=CHKG&DG5ILPSCEdP?+{PNQF z=yy}A*HrG`bY<p+&ll9YFG;GI@3Q4pP!bZJZkU#`q3rg>uR*_x=jeMa>!`FkRdCdc z%RWkBV)xyLYEpY<pPN7N0Ovw~_3FhwZ?x3~9&R}4n%<eyZm;Lcb79Tq1ydR_r#@cs zgeh{7+c(!8VY<0a)6!EsPYH3l+dRMd>|GM)x}%@x=uS>qcmAtsp^=9T&->RuznXwb zpvl#llh<6{FUcYr*wt$%zrxe^imBYRiK3-fAH2Jydc4s+U4d`K=FU^WYyAAwqu!Pt z5o$N*?P;pLw*1<zCwooP<%7<jIQV3bRptZ+i8<|4q@%c|2Ap!gt#~0d)V;I%2xI*{ zrpbrv^4kyJlarJ4x#_ZX>Sv|LX)@Y!4>aE#TEoIG9KTz517G{Cg&nt7%r`I!IFmE! z+3fp@7Z;!6F*Fu^7vSIe%lw$z8I}dR?!M?^T4Shh#<bJ%WGGwgBCQ{M(*kE)cFb3k zWsk`|{(RL$+gFdPE%vZS-Co*$`n$u@ua&`XXI*(J+Axpj)F-PodedeWY+D<s5U6xx z$8+1D2Zs07t~sD{h<TgW!W|2D^WAPTeme2-5$EOwA~Csgb)KuA3QT;a&)fO%%&e1< zp&RD;72frqpPqg2?aXhdqszALxzqIY``eO#8|PlzZ&GqFf`jkk&eY$EKOVUYv(8pu zmHKwxc}E4!&X4C+^L7M%IRAIjZ`)~2n^sTG5I*+6L1AsWsXs%R%+`~u=O5N{S-xS@ zrJIf`k8Wbsm#_QMcsC}#_0<34_up*!ulr-a$?uQTe!fo%-@uy3q#g9r{^iEBn{OSr zt-Qgapd=t2>%wu*BsMtmwQBNHyLWqq9mW6L&duMsfA{wKKWp!A-+jG2dfU@2tpDfd z*xgi>`FP@qb(O{LO-o;H@kxHVsxW1Nw*l*w(?=&{+WKTmCOCA9<*ZrGbA0|SMK?Jw z)(H=i&K;R<I9XiZa@L>7@}BF#xBOBfF8o@>eti4x?{DV5-k-PLZ~pDOFWU?6Ui&`R zT#b!?$(C7-Qo7$-?yO8odSYQ3v7v9@6AO`Qm$UkL%E27FUj(W3M-{OYYP4$|=KP}B z5IoKMyQr?`Q4N6=oA{UAO#EqC{rZ)-+3&x>)wPvdb(_!oE?}DD&bhtw=tgyKckSma zzb}T!pDt85E4tuOrWC)r$Aw8J?<dvI&1l~FFQzf7Jg9%e-H#dSdVgil$=#|AZg_I) z*QIycyw|<n$T#QtvzsDQls1UZ@cA%1L8wW6?OgA3Ul+Vw^mp;Mlq-*yZ@9&}M&j_F zZwkw%Uoc_hXVi+~;5fhcXkxt1x23{5vXZV$Q7oO-e1f?j7Oh=$uHam~q4cZ!n-Uq; zy02u9%&YCWeZ(%4C+CRW$A_<vY%W#EfB5eW!`q_V4DRdp>v?waUzl<*HE5r#YU#Ps z&Z4cJ^BXvs<`!<fV4tM0RIFiL!)cp?hioQ#ooonosQ(|JYOz9(r!vme(4=k0nv-oM zqCYu4FuYNec>O-{{?{Gfwbz{G6*!zO|7hl7UA5CTlRqY(dGcxAhts0jmrMCYCh{%) zlN_^pm5J^;f8AMY#O;rMZ$IZ~{ru0$E4oJ=x4QY%T`--eTXWj^MdObuj%80@2?%`q zB3|(?RJHtDrJCsEI;Qy>f6HCGCHx@CG}Glk`|GC;H{`h`xxET38C3iHS28F&AFXeU zW%T5Eex`1FfAQA&Q)d<!l{8E|@m!!%#DuM0%3-QiRl%-MqlXOMy-$}jb!_6f%yqm# z>#fG`L}i~@TBm+_Z|2<SsA)HC2J?>N_MvJDXQgZ6pWd9bAYjwJbC363J+;eehgh=u zUdBz*C;E<hWaQ0{_kSDu7PQ&q;-VAYO}|c^cx2G<&~aH%I@jFooqAVXHuE<-78-}U zUGOmpx~h_<;Tn~8#h_Cy`iFIDr^FE+*ZfVQDN{U)ANwvnEOkG4N}_8(taIkSuC1$f zw7vK{%~59F{_lDGf4*$kzHk-~GtYAwz9p|eOj!AO5}U=GBSw6>vac*yKJ0cnpP_MV zv0lh`Uay;3L5o6fZ{PA-t-WDuF^i3r*D9&KHTxE=IsW1a!;-DfiXVR1%2*)4a^k?H zmloE{KfY#kO0)}qK2-N`?fotB|F7mBvvpkkplh*md#NP*cEyC2NgL*bG*5n-=d|bY z!DNQ?$l_I7kGQAk#;seN6eG<OuT`b{xGl==d_?)N1tC5XMyyX{GPgZVs7%$Z-|YBN zCz<#2t_=1H#r>hCuS{<(etRnV+eQ7qeShEozy5z_?T738_9_0~zU*7<!UaCRHcy$X zTOM%MsO`r3lWhTE6|;(`^|d4~;qjb$@4!hmh7~%GT_XGb-&GD5D}Arbe78OE?bb`S z-B&pt<ksJRJ5Be;|EB_fcGp%W$NycH^)H&^-`6wyGZyWzYm#3SB(v@6Ge541*ofP& z%)anxE#H5OA;PPVndRu5r8<3Q{{Mc@_V@q8vlsup-2Sg~?z?RhZS}r2``4!^_Jn;q z^TqP5;>y{9&TB1OlP8_icso~Q8oNb8%xAI4&oR=urrzzI)xo9*Zp-M#{^07%*}!47 zb*k4RwO@-@$4$O}HRN-g`vYNRX0yxDzrVk!|9JZThV7^0AC`tp<~(S7`ayH`A;pTW z>AN~&j(y%H_-DuBr?F{0vD;oHMs@SJEKyr0B)``4W=QAWjU|U}FonEP=D4}>+SZ25 zt2a~khCZ+VV*X$G_tx+Gx?;mZ*sJ>*(phR=giI_+?cBVyj@dYAPwtIFaw7Mmr|ExS zF}bRB{Quhx;=lT16*%X9m$2qK_w}`D+~Q8(q-5PE|4fB9J1tN+$71m~?NrOOIsP}2 z)821hJMEk+o9C732dva2<}J!vV)i;c?i0^(+e3o>r#4qMtx&xm{5jHKnt=3?xReK{ zw#KVJ<C^mEqEpTp)^CYtFBz1+SZF73G~0HjVQjYhgQipIt5lm^ma1I2<v5dd-o<dH z{jzIf1DEsKN?u!Q&SbB%u;W_AJ)P4nF^m!izb$$&V_V0;b3AdbW%juZo2w5UGJGtV zcWT2gi|Ia|9E`u4*Dl)_YP;t^<V}q=(%-gkzrIK8ug3k)wF|o47sSPV_`}Z7_WrK% z$IBb)uk@XD7wAY9nydE2{h>^gY)8wPZ#VC<HN1b-8yfhMv!o#K=`B|2?ri<K+GFy3 zwNq`LC%>8Y;?TzXcW?Rr?UF64Fa14l`-0^`3vS6b<lN|xX6E)wW<9&$MsldmQn?p( zi3|#f%@1BB-LIIpxteA5mG2ih+aCO5EYrvner}Z!v1R#}`1R{HEc0K!xc5lY9hqt7 zE)VMaKCOGP%Xt0T5Ap%qCTHs&dzW*p?6Tj3L$8xG1y+2%e%<}?{56Xf&0yFk#v|OY zO(|FH=7KMGZyY_L`t5JRu}dpFjHDU^ryfX^3E(+UsA%26v-6E#z@xwCHis@%zQM;{ zea_r|?{#B_4@crOUxi(e(w|s(v4DH!f@z{_)m}>eiSuh-7B<r&br%<ZixnULFWZjy z-27Un9ZX$sJ&Mo$)6*{Jy~_9I%`=x?2`t`NcunzD^_)c|hZQ4ows1)M`Rs5|w=jFy z5whxp`(1luJ+5Q_tMyYSs{Bh^Ht+SRl$704>0wqbGqm^?7#-lW)Lz$96q{q9@x*0H z&9^!Ji{GaU9G*O3(u!AR7robNWGHn6GhFIOdb{)q;}gq!*>&5$=LoevtlGAEE&n(1 z_&>$J?|uLGv2Dx!-k#~tJPtZ3rW)|stk|<CtV*_T)%iyA^kqLenjRfD`M0rc=3iFv zP;Ra*p<3qEU0gGJCr|aTEoFB**7<nmzI?+JX5H)0ADF(1tJIIn-LtXhcJEI`-OUFq z@8#a?tp9)ix9e}|{|DFpJ*8iNbegVp(BY4E0x7p{uLu+gD1Kn+*=4%l`X<jUm38mL z(~emc-wCt#`F<vCYK;55>S~KWY6ho{KDu!;VHw8<izT18zR7>n%wK;rFMrpA`?tT9 z@BbM6ZPE5$yXU;wyzX0l;@|3NH76>UKA!&dmPqd9&pu@bRVrMs`8LIHYCNbH*wMT5 z<;_#y?^Rn%Fz`n|`#=BhJ^7r@)w9no{l)tG&G~(I3<ReNEu8*qhkdR3o77kHMbbP@ zo#?U({a>wZ+iBdkScq{dOJM4kANzj1UJ!M>jwh;>Wx*Avl7@+9^QO%IyhSo<_KN4G zR*}nfKmS+${rmsh``hQo{nMS-|NS-7AvFf2#_K0$`Ip%>|Gp}B^WU12BFqg6xj|RE zEv<_Z;?AFV^CT+w@~+)Jzw5XbJ=!XNex0FCw$0nh+T8zN{P!jQ|JH5K^Luh^Ud-~A z=jpELWsC`D9CkB(5s|ohFW|R>@#(!MzMpuv?8O7Ccagi4Tz@Y!s3=_*zeap+vFqdb z18JK*ZStmUepBqryry;W+th1G8WQ(qwr|vbu)%n@&P9_;9do}K@6Jg1w*SM<^K-(J zADlM!6iKprpZZ~g@6zhl*9t3l$86r(!*FHicjqttlAl>pM4z<0O<AC2oshKjVA#Ws zNB8F@mH085y%gKHrBKDHWNk3Rl4r#ao~Y=Ss2#IpRQkgo$tjX1Tzv8*+Z6w#lTuq) zG>@uq*Ec_&x!*s~UisnbC@wuNjt7>DEHC_wytHgK?}bPPBPKVNgY5}xTV##c4jeO; zEPK;n7+jPpwBXI!R~sx?Haz4p|0!+uJ2myjOs0eT<^H^%9=}2S`u;tvFW$GDcz1zS zX~KgWtB+ZgWpYm0!hLS@{zq}X+g8qBEX}atzvb_(@&9tG-#`7I@%#JjYpvSsJ5s)_ z$Zox!$iDkn;9Xwn{NFLR1zpUgRSnHfg@%^3ZmoGRvrUi5)vm?5IppRS)$4xsZ@(w( znRAZmui~a~<%KG}YlZBZHpZ5pERM1J-t;*tz3DX5I-VVd{VzN=9@zHLOL5io=W3H( zT3@TLTi$Z;)OSIb#THvlf<M>?7b)K5IwGymm2h^+0iDv>hrZ|RI&bxCR@2r9X$}3W zJ0)LlzIc4IrRNvWBBgYXXPtW=+}^VBruRlgo#oD}8oF{SxP6{>F*Kd?H%$51$h%3b zx>!f6+3usV`};iBcWIH*r>hS!nz1T)UQYAB{bOQ4c~B;A=?+iB$<1e@o*C>DWm5LE z?EAikh5f=IgX5{cZ&uy(IX~^>o45D<(o>{u=1Sa)yXa{C>KE5ssg$RV?6M-Rfy(@U zcw~>|@o-Np70=xiv8wI+fh8UlY>me<<l7DXpSRwBT)CX*Rn-PLt&`l(7JIJ`zt|Nm z6XRH^w|MHDmjPQmRgO=|PZIFIIL&VP>iydu3qJBb5U&w8^-8s@;hfnvs!tR?DJb6J zNss2~a$2y&*Keb*pY6)>hck>CHY=`pX6aUx(B*5*SRDDP!#!!{C*!3&EVqxnKQ3|7 zQs$=38s*ggTk3wlKlgG**{U}`Ki%5*b?*Bc-}ir?`1keu|KSS*9|UcTonAQosLw9x zqgRyj<|Rv?i<4ZcGV^Iq`TC!B7Qx?6SWb?&^HO+rfQRdm?o2)oj|8Oz=UtaRw#)x9 z-M#aj>3`cF|0|f8^0xK-m)cVQLPJ0ygyDfIvkL1}$pgiA9<Je(Sz~reTw;gD>m@z2 z{Tnsimu?oiSN(o%!0-15|J(n(X1{4$>filEKjd#mKhOTXr0)DX@8!G7u6{7zxsS{E zrNFHtRhMR@@7=f2+B2u7BtSzg-E+RVv_s$RjNRr<QpSuWs_za@l{7N6ELiIvvCHUh zBAe9WPREsR{jyfOTbE03uFG8BUj2HP%yc)05VPKcY<VH632Q#`9DT$7=Un;YoiT^v z?mEtU_088$Gq?Vp{>!CHm+Bs0Ju@ex>AahQuTG<k_Kn~>n<X>W{=KVioy%~*|DApB z-;1VvNv0OxoBIue)!ARHd}Dc?C$IF)j>v6E+GpN~GA?D6{8QDdBi$J3zx&XEnM*x3 zO<!j!dfs_iMA~((>l+wE*!I3z!nFI$Cr$fLGAk}yE?+P`J78%EpLK|e&TF0$W}Z9# zk55c%UT1vMH|zb2rVkbVE0;wumH584lw^+4yKJR??6|i`b;%U5waj-*7`N6+Nl)2q z@L}2wDaVOhT9}p}n#W;~DiGune{D}l!d4q&hiEbD<$kZ<rKrv{5VsS5efw&Y30wZA zt*(qBjhs^-@G55~nV*<$a4TAQ!&1W#P7mS9iyy@}bk10Qz9noWQx40Y$A1prlRL9c zEPeKoKVdz+!VFyYExC-r){bUe6F3@_O6?#1l=&|xG1(#EuJMa<?+cpmI33^DegFLJ zWB$MMZ~uQ+|9{1<zE=E~zwccSj$<Oz)-J5(o0mLAB;k!g&+|L;Gxlc+3dG&b`*+v> zPRMM&SjmQ)S6>)^P1rS^@rJcwzoLn3`1><$*V(MOYbRzjXFkuI8+w|hrQvu%sGgLr zx8a#N!8Z<xtX$@Hc$0OD!Tnpidp2xgvlG94c-9stuD6Wen>Y=Y$GJLtdu2wr{G30- zzLkM*edp)+f4v7xN+wU}oisoDlQheOGPUd}GJ+=4zJ>g_lOj-f@b{DLAx4dJo^Dtt z6#4G2Q#AX96$^be%y{jckGXt*7;VZJa`W27mFGYFsWO5r_r7Di;q0!korZi1wU%!x z-QlBnZ{riTcJGFJ>oP(^Jzqu}HyrYgRG7~sDRWA3*&?5m1rN`(tax8+erxjO_d(pI zE8l2M4phHVt17&0(zfRdvfS9**(TgSd}bHlb&Dt45`O%vyW8_Y_V?zhUttnvmcffy zxGLXwtdU8S?OOBn*+F4H-)lZv7Af-+&E+;t3wb<a?vJaj$wzXU?@ihAKk2`0b^WEB z=xKA<llEP+dtUZ_Z-x=0fJTQ0gJdR4$Y&#MCB_sLpII-?pD>wj5|V5*d1|K0<uz+k zw6w1|m}II5s(5VBSQ(*Z#=z0Uz$q}(!N@qyWzRRW=X3Uky?uKB`_A>B4_Ll`@a~NG z_j{M$?3IeYSNCpS+!NV^m@d8xiNbQ>_a|iqp1mr+x$PtS!=Re855gBDAO4xo|4DPz zlGjZ6At&sU&S$&vK6rZX<8O8gsjB`j>@g>55C8Fu-*=x`sAA3(MoFF3ibh_)9!0fI z%ny0cR%pO=-Xv^GZ<2?t&$A`LyUe<tMZS<()F|d=a(_Ng=p1pWm5-NRJ8YP26z98A z<j!%X)+ZP8-gbZge<$wW>HFXRoHcvU@sLN*MxIMCp)=fqTZZ}F+78Zg^H&lj{|?`u zr&aUK>U-e+AKq2*FLjp(q&=)K4xY~O^{kwUeN|-r@6GWE=l(CP{r>s>ojDBG<37Ca z*57{O|E!}ogo0uozciLw5Ey9mugB*2x{K2!>dh^UUhTZ(6K8xaNkmy@;{U`y_xIN4 z|NpSP{<_?@&$-9v{=GN<|Gd}x%G=H7eYU>t#!ypfC|Va}xUIlK!|C?9Y|oS<PHeVQ z3!IFuUOGR+xJRj8wrk0H>)@3&dCN1K4;(JK?&57?cGz)S|M`+niw-vT#eMOPjoGDr z%aJvf>;9ut#sVRty0)_ebdSE_xwa<P;=@db&m68nP3M)wZxv_BUfm$EU|VXCz}Z8M zoxbz06}P%i?6Y6IFs6-h-y_rKwu>32xK9q)u!gm%Wsjmj{GZICoWq=VO5Z!Se-$~- z^1Jkj<>ZNG*OEo*cbi$JH16<H*E^=g{zB?co{QStmHkZFi_cEKJ9EzI(CY9RW>5Z1 z2t9ZBfLOfHnLQ77dY}KwW3R%azvawi=3PbnPg)u;hCRD;lW*tE!<oJ}o9A$x*tIgO zS^P|?EyL8mlijS3Clq9vx&BmK9Z<X9xF}-A<LHI}<Cm<h+2+rzyDr_m{7`LYRpTt# z*LRP^AB)lBeS2F&_)nRUNx|zwWqGz)t}ziJHoZ=BZ`^l~sOn`tu-UqD+KXlEk0u^* z7D>G%$1EARMuKtjnp^(v8IjA1w{4d@+H~}=w?&u@$EBt3eEdY-ExsTaY0Umx<tOL8 zU5h^}Tuz#hJvX^yio<)e;1!!nyDZtPRSut=&y{K+v%R-?-GjM*Z!Qb2%l-d$|DXRi z|2|y0JobQxjjDXw#sk*^IQQ=s_E_8S@<f*S!SX-<-oE|z^Jw4W?{9tn+}r<4w*KuE zz7jowqfSRAOaFYgNAlP|T~D#}nws@uB5#W0b}b8bH?cgo@pbgvR)6aUuR5=UxI}pf ziu$VF@8grM_MiOw*HvqUgcmaHZ!9m}-0Ho2g5e8C^@z0|qHit=rpa%yw|h4wY~^8r zMv>Avi`Jc~n47uErIc0bsAz}nzE`*XOI+BcT;?8d<88mxZ?kvFQ@!T`KYW+W-I$=2 zbuQ$^|K2UGf6eB8aPbeZ%B$rnpR$ERF7<A2WSvcH|HG;x2Af^kLPA>uB2L`ix65(S zt7m6hkM*6}(Xy~oZbno>s-YBDxumL5TldUG`<o*d2%I~qxN~(+cj0A&c~2rH99EdR z{fkZTiXuJ9v#-`gD9k&O$F3Jqb7f`lcG1?1u9=@Ew1@wwn6!}NSZIfshHJ8cGq>s) z-Kj2>C!(#imocfXd!oZ#d|Ytihv(*++oQByX9c7)zKyNYI%zbI>$t#M_T?`Y@mTc< zhc4aue$CwgrCR|L{I7`~obbstruoy<r$4vqOlkchD7LVu^&NxMOG(~?``+2aGMr$4 z@_Sl`#L4b#v7d7i9SpRbmU2|@h;oxlJF(68lv1#L&+7*#xR)&}_`B(>^wia-ye=tv z@SIwxT^+RTwoCiu$2nbDFLO#YFPW%(IQQx~Yx?sI7jM}fH~IE}k#D0$iLz>R+m*(W zb-!n;wp5&XKOx&O#N%1~G@0n@wx@1ZZu_A#)mm96s;y0Ruc%hQ>AdZd|LgCrTR%Vd z*#E76f92PnkN!88?alwyf<LDVHf(<Ud0WX0k+W_dT_;wG?$7A>Gv{r1=SqdAZd^{? z#Sa(Xm5IIo=NPyCg)jf!M*qIM|M&Md|Ne@x+UtIMyuZfW$Tjw7^z`QWhf^0c^4PGi zZ1*yjJbLaOZ(!gWDgTa{Q9oT<O4A=+36k43#s22@GqvukuUzf**57sYUF=C$t`igg zl;?MyVQF&Wic8$$%(ZKd<J1lQqBkdP@_&5m_OrPM?=%)MuvA<OFy#M!sVO};_-OjE z?`{(>s@+-|WVV(k@6d{#YYu%P&qWKKm1%ag9^({@60BXLdTwUM^_6LwPi$wnCttK# ze`epCmpLL^d7Krwg~FDGUI=WMmNHppja7MTdf$IZHumh!E3I7{9o>|i{F(P^eQmbs zs#)`fi}}BM`>e$^?HAm-!rnjZkTjYQ`uAytTi~6DI~!U9EJ7_WU475H|6kd@R7JPe zw^Q5G9nXLDa`yA!NiWu}<h*^qHF;Y^n2&k<a<R9suT1M(E~3OUU%LLswaI2#ymysl z4$02XK6d}9b9PjX*jCf8yvMUM{<_;LK8V!P@L}KiX$trC&Xs)kb{Sk^k+<Lpn_GVT zq^m@4K}zTTl68s~Dh<3|uqZeA%Bm>*m;Aft!OBVO26wLAh@KqmGH2QPX%qgfdBXQG zgt@kHy;u8WLzm|+3dOq)GH9<<uTXfv^*Z^?e6d%TpPv%xdN?KXaSz||Q`Pm~e#EbK z+V@u1O8n-T!<xTaRw?Lb-L{qE`#!s-V(Z_1FB{?#`hRQuJ+2%6GA7x6{mJmvoQ*3M z?YiI`@ikLo@;1r8?Ya{-%hdL*U6I#(A!^cE<wf<mlD7MwzrK>oU7~DxN<n}3=NCeI z`cAdq|Kw05{3vguP|+Wce@rRrSLRPEI``ngp~^{hVMV%&l|^N%1v9c1s`J)f=PtC` zeWq#7y|T;Md7^*zy}g}xdwpPzLAFWk1o6hC<hqL+U4KbdRtncE|DU)p&neb({e;V2 zRRLQ+n_c5y>D^YhyCU)2zIi&kQYvicd$WBBSiNY4S%mVT?>w>JN^GaSKFRpu#X2db z<Lf(Of^RA$A6z-L=<c#pClfw3iF)zA5_$H6Wgq{KJav}6E{(<<N*tkomMn@YPvH=2 zG~uW#cWn`PC%7}<o>o*@Yo&1F?<^1Pl){ahHfL;KS}9fKDc&w}@bT+YfjbRcU$H8d zEMC0OH!|>l{<m9fB0agyJ|F&0J+{tKImvPAJJGGZpEJaA*R7fSc(ZH&sx{_YcQ!I* zoyk02ED(9%kY<v@(L9ajcedy5WE*^I`TH${)8lCZ$BI>Vf;Fw3GIZ43`+nWO#q(BI zX0l^uOOQMBGGW1hpa%;7<30K}KJ2pKNV}<?WKgp`kaNQK_>0+&pImmSEq){7mO6iN ziJ!OZsW^v}l>smRa!DOZZ#6KOy;!4hodNgZ`|l6LJ<>`MX`8vfev9dTH!J-bJ0*50 z=PlENL$hY=5IfZ_{oiRuiT4T1=Q7D_CjJY4WM?2_t$4l5K&twa6931&oP9d(r!vC7 z+&uB~{-S@^&#!y4`~Gj=a+W#UPCPq3ef{<hwz(?vZYi|Kx_zsi_vJ&mrm4%a61Q`* zOE0gub7|ruuV&e1b51AjDJ>!s6aUn|;b{0i`{IB8|M%YCc>6ng{`;c9H_!Kf?c9DW zTh29NTkVgwuMhZ7^sf(b33%}#K{dz4HPM*;vg|VDq<br8Y?Ny_H~EC_MZURf9R8&5 z`LFr?k>c^hS>H9kvDEu>F!S+D{5|!#aJm#<EBiX>xeMc7OxXE?=jD!0qeYjRk55Wt z4gH=`lD|=pPo6iVn`d2<;ZM1o^VuCSyL-3m>{<Sz+EBDe*mvjR#8kPLD*P!o6mE6Q zzxuh~bMs=OO6w1AW@)A_T|afx^BL!C-V5d}yB71JiXr{<u6vggnEvO@4SkULW04xW z*#+*Sl}CQxQnETdEm>KK^F__qtOsv**d{MrTySAZ{d7NPDVB>&7p%h?u5VwbRA;k& zamQNmmXN<vr)Kx9nAz`H({opS8}q5k>z(qyxDzW5%f)-lH+ZL;u&syda>K`K337jz zJFj|V&37@^X^UrM`W5pzt4vI^t}XI?8PvE!YX`rf+X6;A<*4o3teI=-#5d{5_!Qk} zWeiK0@N<Ub(!M_r^0?wwIQy<F7X89);dRH+{<%o^^YBa0C$hcZbY#3H{lPZ-?4lKm z)`y!fwcio1`^w}(M^~OsYajE+=ufsU<yB>a#XdD|YTd+rq2R>fLv!kkUmBjs4sY)c z^x%8Wb1`9m_vX2(KlW}<FIzsR>b|(tl{0(w*Srp#(sxp6s`K?#Pt<M1pZP7SF3($J z#xajyrLSV4(zBvh?*t>|zC3HqR9r2vJLvW<<{yVF_TRf#WU>EVp^o}1xoYR@P2R!V z8<T8HZJciHwzlM{wwY5J+h!X)Z-p^iRAYD8GFy(6@W2Z%4{h4q@uO`*=i}(|Wmneg zSw8!;D=6RbRwRF|IHQowM8CC+r`7AduH5C=l>2Ah9&^#h>!khTCo3kb<-C0UN~70a z_tt9uWgRu!a;NeHXmR<Ml$^Uc`J=(yhJwHEj*92=`W-+0`LEcc%STtsJjh|(5%wvw z%tS)__LO(KH|I?MU1GZoTngzu^9)V?Cn2gU`d#UZT-Q%2x4QS4K1<$DX1}&%L9=4o zwT(TR4!gd-JvGOo{cDBjN7-JVL&32PkN#x_MOsL%nvyK_xA&Obgjc$YR*Kz=t5lTk zO?2HRIq}YvM`mZax*jXqOn<ntJe4Ci)NS94?cu>+!^M491=TES++5DQV;0vun<IZ0 zUiehOQWG6|OE6dV?cOVVhBhlqVuBSC&#CrkNqC7F99M41P<;~2HTyxro6AydB^Tdw z2M1ff=WJc=vQVQZGWWR5y{pMqVjLZL(=OI-TcSC+NRsQ(Qcj_pd!Npa47r#3aHi1r zl`+W&r5vxXJ<VYz%*EW4Hot3+wzBP9;~GDHjZcrb%6XGR#Lu_#Xl3t7U##bzx=vdt ztohryJ(uTlNGadBx7bjtXv<=*nx;iByYj`BXxRvV-kZQsbWh~PKKXS%mpBi76kC@r zawMt0L~hrPmFxShGv3WP*1f&pkjymQO+Rjy*Ii8fZ+?E>?e(?)et!FW?Aqg#adkgW z^(}8nh;}iulE3_wWm$%T)a&ZNz?`*hi@EPN3r{??{nN*j_8T6gP4wSe`}WhTL(2ab z&-(QL|Nr0rKUVjBocd#f#|z7!ygZwIm=%@;mRkL~H$_T-bwW(1dQ^+w#f1u64Xh0F zU78H#malhnj|mTSoSUtwKRs=l?))V(*PmLw_F2XBcgp<PHWgtF$9C>I@+;Kx&=jfW zD=p_%U43^Xp~UXmiU7`@(uqy0O<znqw*B1kt*wD>M|WH{n4NFSvpVit!_-+y|Lerg zFtMsU&kN4mXt>2k?uqWMqI0%gB7BEG9t(NHpSw?Q?^4waubN`xTemlR?$9Zbn<Jxn z;Ze+#h<?ZB!y6gzivKwg-5+XU>b_*{*62$|r7jh1`6qRP{lj+V@64Hk0nctarmiVu z)>7(XJNC!w`<mmD$0`yxEH+j6p>k={3yBRr@(<V!NMzrc&1LuO%d>Ou=PsSRn(a=- zpRd98e>*1{_<n6DiCY-#!O;;v^DAeph`}edNao}l#}{OzEm#)7xMwZ@1JQ>Qrd{se zv+b;A(Gp(y$Bn_yB(sZV@GiH=JRHBPAj&~yJ}Yzeq4N*du<aFjUy!&_Zl*J@*NG}t z*6&O9UEcam?eC(?nn%9vnf6<A`Rvo_R<}e9KJM&JpXK*VvV60TYxJ`4<La3j(l3wB zwYYAR?{dngW~a+sC5KN>r?@1fvervH@7mfUb2CJL&5E^8zVVcox$KTOv0$O~+BnJh z4K<%OD1{tUDes&i^W0rGG;zoLWtN8>+*j{=w1xFKTesn92b~u(O<R9+ynbkIkx+Y@ z`Rmk=FRK+c|B2!Icdm+4uluC}*I&jBH7q8227Qa}e3uQMe@=1#lv`R?mPH+Gs@v;T zpX@7E|2Lx`ZR5R0&CnG0*i$}LyQ2>D8TRdBdZ!Yq?espZ=*Y+KJ}g)NHcg&XvA1W{ z=QW)*6ZCGXb=~^1g-yc#+^wYxOJCkN%sywem2&KHU%4DJZei7Go?E5uy`L{<7qvTP ze=pG}+Ou!|^tNwXTr5SacgfxS`h=k(Wjgo7D5vFy?d+jkvyU!pzH<GnPV}j-Cl5@h z5bFtA%3!M%aAL-c&AQHU6YKB%F%t2t-)(RzH7QA~zL{Mx>U4%zH^<7KF<Q!78=lMi zux2~md?q6jX(Sn?y1M;P_YZ+KyG0lIYihT?xtbjk6ToWw>yY)EEiDd*CHR)jyLZ7` zlrc-hB>PR5$czB>7nVn#>pMyIY&Czjqy19BrjRz%FxUV6ar_5ZJEULBzCOChu1hJ! z&)CI3v-k?*`7QiPF0U%P{~xyQJ++}{#qPBZtX*%{KKL+^y;A<MtI37{PlN6$LbXlb zH76ctS5~~tB%!)YQQ*`}rSN6n3Ri}-7D+Vu{hZ3VF+|b*&%PU#hUV+8KhX(j5%n@H zuKFpd8GcRJFMG3~i0g$Z?rXZ8Ouo&K`*qSV#D`<b#~;C3Z4WoR{8#mC(dUOvQJZ$m z5_e8Im!)xFw!r<j-G4uA|Gz6X*X`Taw2=R|zO%jgf6OoM&wj^q^`6emR(5l=HWx1Y zSiVZ;M)bAU2CfaE8QwL`7dbDLUyqwv^f6I^%c!=nGI9UM==sI9=arf3tg_8Tr4P;1 zo#uA>&74#F9pg<Bs<y8<CVO%Ivx}33wo11cB&DcxMDAQ2ke_0au(siugSBQ)q6F70 z_rSoA%b$O{h#PJAQ5|tZ{y_82&!%?ndpa-8Ic0NyUXFk0t==|!UcV0xOTBvixeiWQ zrIe+e(&eZ7JY%iV|2T=CZ#PfOxV-suamD`VZ{G9ouXpTEwCVhB6sz)mO99U#$zxH5 zy2o-a&zgR6@x!%ma>TQ5E6<;!_x{x9$Vn_-GZ$<-Bk9h!;pv?(X7gKbf6u(9`fX3N zQ?Baj54%6cD{q<mB<p8n>H19DxvZ7)|8jMYv5CyNrgy^rd!GhFXhXa5<cZ%eFnYc5 zUcC9lf3cHgA1*$b*!qcqZ*D=^*UG?|=VjMKt~Byu*SV5AL;QYdyPNA7lZiI}3(`(H zR4MqDcrS5GKj3t<D^ulXr0KbtR&4SYPlpstKku_x?(VctFFyGg#VWtN$>VYGnCTng zwE=Z6f@&F;%UWFCwLE{-p??p4^Dj|$i?fba+!Y-3d98_r_?oW~(f*J3och+VJGa)a zC++u)ca?pP9kyID_x&ctzLY8|)6DIE(XJ>iy?bg!O5{pE=l#37YPEdUzv`{((tP^y zlF&)ZxVtxl!h#KLE*MVaYMWw}U0$(TwuGaX(|ONx2Q`}+b95w^EU3|a)iJeHW{G<F ztG&;UN^oDxS+jci+?lBtL);#gitW1A^i^C#{<Krek}mt*Yvf&u9~Lb(RM-$QC)MBE z(28?z{UOE3Lz1UB_5|tjWY(l4ScuyhUR|XW<ghhyj@=cd*=@BV?CpyKW79W$b7&AN zU!Y-;py%IOx9LJWyX|R1jrOBGH!63@9R?Q);qSYIv>!$Dv{`Gv)?U74Mfi%AMG1$6 zPH1+pxCf=&U91u+U{R&bs;HFQXs{&ceOpRZdFqSwCHmbpF7wtcb-yK<>B`<T*?9Bf zxsEf|T(o3pPO@1(QF6Ib`3woE=MN_`9%L?*H>f|f#jPaY<=-Nu9dkq+m{(-&ayIpL zTgR0x<6<b*p1)44m1$=9^d|LSok@~Ob7LHPWoq4SrIhrY==hyr@lA=j->uLkv-h)F zO~6ah)~R2T_j_^+ewE43nOGft_yEV5ObP!Y2?3|~_A`aWk8XPP;<_7a`ctz2hZ77c za~By*du4y+Ly~oEndr7fN`j}>^(^|-m=yJB>t`jul|H|>t1mveWSdLNEgue^%`sj! zQ`av0W9^guVSTFLiiS&te;2Zdn;+VE>*bvjhErb7KUzKa3;PkyUn<(E%cH}-UX5j1 zs^IGEs^VzUR#s}Vzx;0E|M2P7{VVFf|K9)f*nfjx?oaA%PlhVHt~(;hzDJ&m@7iyZ zwTm+Z7B?{q7#wa{%*Dv?RO*=2PtS`s2`gmf`o8`9yEiuO-J_cC4eHIwKX2w({WiH( zA?GD>_3}rJ!uKDQE+{V8zrZ%v%4tDB%&k+ub7K}VN`|OEmU|v%qI|qFF!8eF<|Q}H zWag^RzO!P%;tkO|_U{u3*%6hPXLfnr5~oi(TQ&FJ=~CKo?9Wft>kV#ej53V$rId3_ zuGM_WPB+{>>G_2N$E#2O&3d%)Mg;eAS5=;xx0wO%OM31vcYMB8^;(nH!=jdr$6Dq{ zcX?F5|C*<kp8Kt1`eTPXxm_{eS2jD>Y<fP?c;}5(cVqT%5Z7P#_Ur2CYKy(eyyD%T z`DQ)%Cn4aWHcz;%lrwIcpIe>VOJ7s%Zgw+1cFkjKpH6OG@i=r!{drEe#OTEzZv?fS z-*Z%Uk&ETmg1n0hK5H0t^+xrqKDuE;){>tW#J%PnP3+il`0E`@<>xow-p!rk$RBNX z(W=+8(jw;Ap6zF<pO<%aT^6#--LhtHf&Sc}tgTi`pLlIHuedgWXW^nn`DsnbkBfc8 zIVCMl+Afphc&c1g9zOqxo5Y))%On0<mNsSZDqYbElzb5R`sYs$_Ki<|yS`wnEn1;* zfiZK#=dG=R_5GGV%R|5Z>v}GkDaxT?lfWP2zU#5Ene*?6nL&wc&Z1W5Jl?Yi_U@lp zm%4;s_}97rGQV5Tu|AAhYOKy=$;wyj{(-~KpWW!m)F(gts$Sl8TYSFO-&VZt%_Mfa zWAp9>Zl9#M`T+NN_MdFmzFlhJDK(kC^pC(K)m?5E7xrI&T4En*C3vMMw5Hvt%W;|> z%c+ph9Ou?6pWpfA<y_a4yL0{BEf|~fV|Um!6e-L|UbZpfMYAjG|3!<NOJ4Aq#9Wl& z(cJJVr=@k%gT;39olm7(?r$njifx#s`snc7U{ODbm;Jf?c9$C;FgWG%->8=@&F*uQ zy1K67ol5?^b;pZrEg9r)Ki!nj*mP=+@+*E3n=hA2pI&o5abkj@(+gd#O~Gf{7kZ^h z>~xy@fBK=z3l^7gJPKj*pDerKT-G|qLnS@c<zYf{=U4Xx=-p#lCE#^OwsS+-)@m<i z=C%(>jLE&FfuZk`x{{_pn4qC%aV%c7<@o-mt+6`hWij!UdM_LDwtjVas<wC^pStN& zy_u;YU#55kElyVabtcUF%E2k}XSbf;W|4NWPiNZhXp#0;!HLf88%_(PKPeP5vXxc6 z;r-2Aj;Yye*9#UarLLIPjWVt^B0Eb%<v)L{vE^u3lf>P><?_X<4FO`hy^34kHBR6D z%b2;~rsP7N)}_%4cs3*`d`}9QwqjklV%Vg*^E`p)*YfJLX--;}Vd^wbH?!MMekSv* zrG-zUrymM>G_zu#$aUrT#3?H_oalX8yf7fx;<w$34KtNa76oZ~sj>caeD=e|-{g<0 z!J<Q4QO7H#pFe!!7Jc{ao6Y(4r<MPkn_vHS_q_e~*MdLo=e{{D_|x9EtKt5%?C>Jq z(tB3cJSCFJf`0=q%1f>8)l^X}F5kF1<OGLyZ&Le`qX)(B?XBK!$vAD!taI%>Ov^df z&h~Sk)u3^#=l$uQ43mV`8&7W3Tf8dl)9HrLD2b(k#~1Wme7ERUrBt*8E7z(=1uKuH zyVXx!ye7lyJOgjm<(Y3J5@sGy6+HOvSoO;}7X@a^#5l-B%zJw>!{sj1ED4+BA9XV` zCbHVQJ~j+HeMSG$?4#wDZtGlD7M;7c;Nqd?o~sF`*l*ui8*#4TSpVLPR9^PJ*ORr+ zT`uTQc&qkY`inx`>RQt|dkfB8Xp~Hrt2^EG=icns+Pkab-u`=c>0ST(wc4yIPm~q^ zW?ynvQaiW!yVPV)v0aa+bBjIwwtREyv})Nqn~(0j7}V|h;)kWnlecGPDul50s97XD zG0=4kaB=vmU~2vO;Y5)xu@eW%t1mF0D_Okp)wxp!|F)i=`pa?q_wDU7BKx<@e)aQQ z#?sRod6AR#OL{KfQ1U%@|BzGBBNYq%Q#0K~?6rSQKiR=@X_b$g0PFgN>$p=VUzFf` zu98)x(W-yxWz8PbXSz4_l7m~@nGMbM1^1em9^zGBZFYIlIbq)2#$6NUD7?BTYbL%d z%FttD)dIVWq&z$JD>EeOjo%)e@%??l@1(|}mGdJ~s}?WTs*T)aEqv(-OSJvWEQZ$L zT^j`E*XOn7Er^ZM^NeWzFKe@O!Df!wmtOtBb$@p}W(|MS^u<kfW53Dy)4A{5Ew<e) zEMl)Re6?AwM^XN<XQPMp%@~36OmmlgU6poGFN{y3guifk&6R>EjckYTti@3;9yC-H z7`Z$=d10#DgQLnDp6yUsZmDLq$ibYsv~i2r!p+mVx!><dxFl&AXK^*qnt^R^)&ULK z-aYP`3*NOT_uLmxza+kAGiOuC3BwEXwm&dl`1!YmyxOnS3!U0merNDkCO+Z`e6d+; zZ|R$x_vZG;^?dd@UcXE3bm-fcRUzVga#~nU@7N%A=#E5g(c@iwm-#omJF&DV(O-nI zX5})Q%KiKK3gewUUx*}pTD5!Q?aU=*Ay4|J)frxLOPt}>B{J2(h<k6};f^~kw~iil zpM5~%ph-f-;b6PtJ~=_(b~}G54-xt{v75*J;0*Vrk5>NXyIB3u(o4Sf%js|0`#;UT zT^ygo*Wn$kXYlO)p^6u-t^s8;CjWnKQn{&Ltl)USKi=dwr<cS^im=;<@`oMjIKJb7 zs%fzP^>Z=R8igTk5jAUCHdrWz-|>==y(m7T%};8vz@Ag~A>Atk@2)%j`Rz6FeO4Wt zJT{!X!IGQ0(KGPatSt#yGu@a^rYL-R-O8GJX4%J=wr{d4o+j_*$en$GFMa3Vg?GG) zmm017tkgWY|Inwe0arpK^h9Fn+%I-%J!#BeBjO;rwdF<cZ#{=KE(aav3v`G5I$S1p zZs&)x>^oPLzFv9qxBZbqi^n|WIo}IBGIZDa@7%5)u5`?JTI|O6HP4^FeN}ZntbYFO zv!9>OzSw`_f96@c8yf{#z2=KAKHQXW=Tvm=tobba6W;cewLaX_Ett0Dj1I4(Yy26J zuPg68mo$07mZ+e!;h)On%-^TC$Qw9B-SHRWooYB+lt;vI@<ORh6SZX5nn`X^i76+d zUTJ<3k?0MQS}i&&VU6~K4;g{%B6XjdHdjja9G491x4iU2V~b}+8`CVU;|)Et@)q7< z+y8a_+})|UyXv*h+CE#pxBs*77t_0&k8?erRj}u8v--gZjr8>s7S7wt5~pf)UATJA zX^a1tC%zZn@1dk=a_&R9+tX;9as?;1CtqG)-~R1tzx<oKzqec1n=SNHn!bOA(zcC! z2ic3666&kYPnsUNedpD5`{<0CH6OPc+*s?sMRV4l2DeFtN4fplzdXMd_59+-x9i_c zd{$C+O3}2;a%KRl{Uzo{pH=5cXY5z{+4B3&-Fp-B{n%Dl?3rxWyHao8@p{|mS4Eeq zzmZRFFYIGDK4G%Pft|Pezqp7=$t3F*-MYNdU}^8l*m=?&$F^wdFnqI4cw5vnwKK-L zWaFgl=YD6HuK3MUf9ZDP@~gdfJ10zXUi(EN|G=u3I_w9xOGpQqoRt5&kAK>^6w%ej zYs`ZWZW3L^8sF3tue<7iuwlgUdE2KvOj~*VLH@HX*If#aMo%nCQ<HqR!cM=bJhwxN zd#hr4(~EQq)pZwb55Jr+SNTq00qf5gt+}oIeH#w%OpjIO|M5om65HwC{d(oII?aD2 zNKPq`+P{3U|H``MGgdFZ&HJM^P$Buw{1slySG!e(aEH&$wp{t`&pOEkU#c%`5`D$^ zea`9tfz_XtU!*Fh|GO8Gy-fC|=L(6^iMHQDtyV<wTJ>wC<v4b{^S#6GesZ1T>Pv?M zz1>+OTe%)q7Dv?EPj200{iyO$^BUV{N4Lz)lfUEHJf$IT#rC5OlN|TAWym{Kr{7Jx z`Ju$N?KLOkhZE}>63ZM{iX045)G-$6(cV<7vvj4F!0c3(MMr8M2t?>k@%+zwMxLv1 zanrS+n=*z;p^NmVYI2;iKeRcu!6|}kk<N?g^5j3yem#HleBWRDZT9~U|3CKbc6f{9 z%GPNQRvev@EWYzn&$rXjoJ(JcoYCpp>mnMWIeGb6j$K>l@A-SG^~9@t*%n?>qK`gQ zNnO{zcKgF_cLOhtN4@uMCjR*G{#5xQrKl+Wv^7eFskauN^VqQGZ~?~(hG5mrVN+P$ zB3$Bj-TK*kJ>r1cE^duqdWQvPEtHNreXsj0kK^`riy6*X3kQEsii#6ycYWbg@J5PH z`Tt$}ee*7ca4ixuQsNDHvqVE@%2TD~lUTMEouBH@q4Da*e8ID2J1;KzEW{+cEmTa< zhu`FqoXFgDr_X(}cG=w5{>I6$C+)`nscUP4oW)J-(>Cn=`sb+e?i=sloShxrer2)3 z<%)X;&z+CsteT;?@89Oo;L?OUkt?;k625nuZRs+5oBu%Cr>OEnOMd+~@3Pv`r-J|A z*Zs5IUHR=yA3yu=Pp_{_WUIgZIqTvAlS497k6lt;$KUShVq!Y|<xacxC2DD}m@=pB zab<1PQoh{E!NIadTv+6e*R~cNwe)${OfFaIgk=^zU9rhjja_JSPe|HdhR1t$r@k|b zo5Q=&<lD#U#3{zXfk7*`&zqR8dGfB1ZP2-MUC$ObAKLFV@B4=Bx942WyIl1n>(ka# zoSA=W>Wx^K_t_O%xYnQJJ?#0j|F_@kgN0u*+21s8e7-vP$;|rm`_*qPIU03buCqOB zeMUuTpL&quqs_ImwErKz{^ZW(dwg|87JD~7{{3dw<Wn{8GOYx3zG<x9wLPMHr*dcK zG9R{RbJ0lC-kHULwXAFBAI<*br?4~P@eu}Yd1p~4hipdqmLM0M<8S@i%r2V7^G#uV ze>h5FRx{Uwqra|AGI{XWxq4^Gk%aXBZ|?t_*~fh1Xopnsj?bLG+IozZ>d&h1m|wzm zxZ1Vy%u#{LXFFvpAI?7f;pk@VeE&c1?p~a-+V^30;L^E!#04K`?muC@Zr!TbSi8;J z-`^|V^PqY~ZlL<Ar?)mOjk~1vb%oK#_eLMpUir1Y&QneGv`W7Elc8;=jNn;jy^PRX z${!YewK(*{NJ-VI`~J_h`iD0@DD|{?aM93hq2S&;h7_K2*Cth8G?o>14}I=X(_+eI zld|}|Gh4%S`+}zAIPqzEo1e8=fBVYtWExM>`BwQwADgl-+XP&8dvgDJZYjI-@{9Lu zH|Z|^I=3`z#`evhZ+`gGmnWer<6nKM{Ay<6a%FcnkM}kc^_TxKd^P*zafz5hcgag0 zt!kPVtwKM|H~6RZceYJ)hxxLLvtMy9IQ!%k-;%8hxtV?hef8MI#CYuemlsT7>XBDI z7t1&=@%JkfpX0iSnQIQqgx(8_t*#rNOFQ`Uh(s#?j8a8~w!GNNYqA>)p2UbNRX?lp z^uM0GbDj)C|63v9*}X?+iTa*YpJ~jQQS|y|+d6l?YOOHez(<>YeV;XjrCCt#*!{yl zVuN=IYAIN>?>Q8Zb|6~ghIOl*DBG$z_g4S@_u*RHzX$$v3?Iy$>gB4urR-_M^$?cS zCDZ-ZFR|%PIi3=7*drs>r$E?$@vFDb3Tt-!pJ@B%sdjY#d!E0siZ4P!w{Ea&$kJKx z-u%JMd9$Ui{SNTqn_P6P$*i{R$6H$|#>MqvZZBh}1}hfb5OZ#nb5gwfbCJfAi`s>& z?>?wZRGclbyX#|2gyregOPsdFR9yMLcy|8n&;E6%_WihMzqR_B*@V-smB;?c{!yQz z`9$lq!ZNG-hT)=pnrg=#7H&FVchyhXI@mRKORUYTqUj$OC>C6_@@o>dJb1V6U3xv2 zSLo}>k9-!|yt@~A=Zw-UL+RMA74P-G**$ywu_No1YOiE}(`~(}4+@!1sbug@Tx51g z=y%fj`SCYjU*``f`?a&FH+@xxpyGs}l%G-a5*Mm?BtI;0cv|jSutNLDt>wZA(KpX_ ze!RJT|7OX5*5?1}|Nfr8`(wS;x^GXz*Ka@Z-%~{RRD_6dQR=oRr$^dfE5#NS3BC5& zx*=li&!1|{zt2=GiF$F|W$GottJ3!0zcLxG_ShZq(j-&I;o0*Yp^GL~y>Se*TYGV$ zz;pTMf^(e;rd@Je;4!5vEIV)Ilf%IWuV;9DiCJy1D(BHjFJ7)>0TxlNq?x>Kn+xiE z*_LPoxJ{1J+%<n?nOpzyY<1(Qt5cqsclAcTbIfL(JYUwhZuu<MZz~pl+Iwtm%(CxZ z%M4yB&#In!aWQLz-Hhee`d$mIRNuL7R`PYJk29t#{5!QZX^T~c|2dg=2EFGc`Shna z^0yzBDhfIi67ViUexgyj+qxOWFAE+W%vajSx$nmFjFlYzd{fS4BpIH5RBKtU`Lae` zBuDwzYX7bsTteHzlIA^sX;idk*3`@(!CqsnUwc-~;h5US&3$OA!^ew~ZE}?|5gY42 zve)ORzOr4>=9M^cd$82Rs<4OeH?n)5;8`nqE8*RWNepkF#rkdgX<z;A&huIu*$exO zxOQpsGQE{pd*(TBU+H?mfcJC%-?<Z07#l3cc(nPQ_}1w!3?^pB>%5lP>iI7H*4(ou zkwI|}ql;}BS*4Cu#Xj7e6TI@4|H|W;cb6>poc2cda$D6J+hZr?-rZ|WKA|PLS-PP1 ziol1m{Cj!<m0x34TS#A$FTb|<!<`9JzdvYP^7UD%?7WXZ=bm2_7Z9<#(Td6MlEio8 z=7W1HuI$**5&Qo54($MC=j}V2uVng&m#Xux{(ril)VBHJH;y@-+l>p<<~=Q!{B{1~ znM<CGeCjDp-&Xn<8D{%2Bzj5(TXmMZ3EdU^=oBmDYvm`rp5?Cc+Q)|iChm9szEv=0 z(&F5$B`Pl)Zp`#K7`Hi@C$;F3S^)2?dcplKi=)nD{(56kF8)qKXp!KrJ(5;_FJu@> zFU_9NtFcRhZ<d~wtZw!3x{X_xE}i`GWtGhJ$;=Nf#wJ|rQmc5&@3t;fw?t;ygv0L) zLs-%{-8S*)D}9dDo_eith3HG=?FN=I0=cYLwz;@|ORnOXyV29K&2jl5vz2m}ek7^b zO_|mEan14R-@aat4_=>=t$I&}kL$qcRnI#M_oR5mvK2{`2QyCgoM^1sA)Op$u2xzv zk$dUhu8I9&>IN$kznt@%bZ$}jiMz!c<I@(-pBJm~avzt#ms(!d-MfTLTG*o2RqUH_ zI^?OD-UpBClUJI~VpS1|Whhv9Vq(bSAiWb0j=yHt|6$fuxt4co<G~4%y#-I3xolT+ zPw&pMzTSN7&$?~%zehA*jNc<`(XytEUt|6&iwi%MSnu^RR(;xQp(MI;*DR$-zN_7f zY+KtRdw;sEw#ygYA*EIFI8uNAk3y|;cXKW+(M{~0`gqo&yx^3z-X3}T^=}{fzI*Qb z_lKEp3rH$WeSd%d_B95*f93j?WCgbrtxzcEFDop3%67d&?(SXY#7P%rq@<P^n_hjp z;KIA6xm<~g4_|*}v3gLf+-~;ZWa%vH=iXc~)ArW>zJ31|PyLfWi*Nlm4*6aG^H#FS z=}mJRr?w>}zV_`~A7J6UGoj^3^rWMS?T@0LE%K0Rd}_(<y3Z#)AW+4wz1rl*#XM`_ z`nN~*Z@k{U{>|Nw+Viusv)3%Jev~EE(t0Xcq(vvVP-R}V=sf2uHNLeG+uBcRUNl~H z=hl&b9Diji7l`uB3|X{nbDmN4l>2dN_asgyMRM>@y?WV0-Bw)k{;~9jaT=@6r|&8* ze<<M^y~J&vtEHvR@~n${RbB~h`SIq4^odT@?Q8WW2L>fw^_}?lgWr^z4hH5D70yP1 zK(&P&UNfio#7^SB`{YU2QjO30MoU(_m}bNIZ{CZA-xnM-nc)56>&?C_H_k$#WiNiV zFuioi%#=UZ^XjHRPk*!(qt61}eaAkQzTN!PYNoH-?q{b>bFH3=)oeKbT6$0Z+++H7 zXG^~x*DqOiNbrfPwCnM8!A~|HRgV^S>Rg#6xcA+)^VfK?e>cnj<8WXUo7Zeuvhm}r z-v$jIJfxl;+<*3l@#RhPCR`GXxVlesR{xe&r(bjL-mz=j*OE=QzpE=eYN^t$6bj&H zIIm;eRp4-NyXlU~k7urDZc&u&Yxz+Wylalq?I#EIK5fw3aXsnfm6I_aBsCwX1v(0z zzvv~gRq#bez>}Mam$~bd^e-Gb>2};@OMTzG*U57HY|e6P`_A^h6txPJbbHZpDX(q6 zI9ttvoV4e%QZw=#_*D`Te>;5JVJ^1eu-%>q#*N!tYNzzJzt?-PC-$f9`a}NCJF?eI z+tuQ)(p&z&_HzHLPlD6#1oHE@DV$^MlUO%(`|U3dX9TU<FDpFH2)5N;-{{~zNt0J~ z;sn*6%BwL>uWd!2_L|te?<;XkXO|5PRDW`+#jbakTiyQZd)ckVi@#oAv@v*I?l!@V zPkRGf>wkBL#4~R%&5eHjY)5?8gnX{LB`kdIYZG%k=I&s4pY&WaztOtH+I~6vHC6+w zqJzO+PyP!F2Cc8*OSO1kcHPI@X5qP(t;TY9BByLNh!s7rCUxn&RLQ}pE2b|Rv%f4n zP_yfwbG$!agL`@4)wK07l64b|49pg1?V0jx(uYTdibkha1Z-h%6zF?({MdT0tvTnq zbh+72T{u=Q%KvfwM9xw!b`8yJu8ou0nxfV^?o7CUJx;UaT7bc^>rvsMVcR+tC%bGk zKCoHTF`Q9_d#U%E*2=hjamU|Ye!2E5#|r(_t&)m@J%ui|T&wFh|A<u=UOp==t2Uf_ zVgBL^oVQn4mdsikw83xg=az%5TLafEdOxLg;{pxO^yiJf4b~xRJt9rw_pe^PH#Ro@ z*5A8#(`J+%+G>0&LC7ze_j+K($9wno{5mMM^PhR!zMbw>^OjEVIdb5mXjQJUkZ*qF z7B-c~(+@6Jdl7TEVWa<7F`wT7GrE+Xv$Q_Fy}dkc>2LWzd-vx*7f5{Ts~Gk8jzXWU zh|IJTy(M0~C;l4W@BaPU_oelw`DRmZe4Mk8C+z!@a_vNxrHV#&zu*1com+GMO;z;o z%T?PYZ=0>%o_HqY#@gi@?<pIt+q`yu*DvGpX-5x#=yYREoSVUZK6={R+HZ5?x4d4R z{*K|t*7Nn3SO1&ucJBXa!JqN9J&$+o-hG^N$wH<59Mf94D!vGa&kcHM{Oo~{>BR1} zTO%i@`D8LYZMIzWLs&+u`v32&-~VnKa0P1yYa4YRfAWjHx9nZ-l;lrx8p@B4ACkHC z$16kcT5`Rbw4tWPiS4r|Fn_i^@Ojymg+Yfb1q$-k`fFqx-TP7JSmG6U?NF2V(i<}s z(<e6@?dG2nQMXwx+1gpt=h&N^4OY)%rukOJ-${S|R)P887L~i7s_nYsigcGhpWU~| zSG_>)kPCMa!_i2I__emjy3S8N?(_NjUgp?~U$=MOe7^amz|R9(&#!*+nLhLS_RV|y zf6iUF?aduahhGyPYhFJ7>*n4sQA!?a?5pnY-uT(Mf8nW4P1g8xO?fXveqZ>RaQSj$ zgXXk<Eq1vtjcg~M`?>6A(K%<GJifz;>T~+;&Sic$;e~v``UQcT?f;0^Cr$dODV}1` z8NRu$|M2xxg-^z=^SvwMI!?{vUaR|i*T*fZ9e2$BSkL`4boI(h)glQdmo_`z<2cB= zxY&53-n6q5t2bJn>o2RWmalHl`u8%yt-$%~<QE(t7Jm4vvB+$H+%n6Pk(;=GvHZPs zV%nXr8wG{r-)1bF)ZgF`{eI`cxo&$dbhE$vESLTISI~T!qV2c$&wl$p+ohzvFfwe1 z;7a3Z9p}p58Gl=)A#^5e-_kctdEcj>y(rv%SnPX!eR`yX-}BCMy-q2tpT8eWFH>`8 zW0FdnsB9N=P3zM2mC`O%vKLoyN&M*DUcE`8C|&iBlH_IAl_fdH9W|Ea2`>;|Xf7Vi z=yoDf^z7zL+oxwT#QfN-guN~NxaNvleJ-lol-+tgTVQU+*&7=dKDyJRa5Y2o_OHh0 zy&0GIWwuBumrdg1ogV4)^h>{-XTHx=ohdB7pVt2<Pc<*`w`90mDSqhS^6+=-%THPT zs^)rgLb0Rp?efoQOX6Q1zf>HgT)j)~JY*g?FmFwD?AZ{{y_W-+J~OI#9!*y{CSscX zu9o?W)kEJOK1&;%`lig#wb@~NtFkwJBmb{AH5)=sblr*yeCh3a{DcJe^Gm$8*=MKx z?$(GhcldF=#?5BFE6-^U@f(p}w5CnpzQjo>-JRc^m1otWCe>*V?mz6!56%yhC_h!1 z^!}lN-?3tLWwFh#Q|dZ4aBMZWmml=O#;YKIrhfcM9m!H{Ar6zU-g9j4gs(*hY-E48 zGK1-7rmc)xhl_}o;3n<~laH<VckE=g{8oXu#53C6veRUPmHb51thMCXp8FhlusI^^ z8MoJtrHuESUu+9la@o4SblPrJCFj<i$^Wiq)qh~G&$$2djrewtDW4R%=f-Eh@w|3? z0)uxl_o2WK#-$z&4pqOu%{~16_}6!L|EgWDI`eq-`g^zh>;9O&2#hPg-TJV>I8r9+ z{{~Beb?er>xw$$0+qbjQE;m*jU^#QEYKFmy*Vd9s3_HbQI8VzR75Y@Q{McWiSvL~? z^oP~Y7Jl*TX6xTy&*$f#Tadl})BjJW*Js{H4cXu?eWm+?bfh+Oej#7r98bY1rlRV> zN9*0zuYQ+2?dXS;0~a>Bc<e8VI36jLb!mU?@BF6y5{qwJS+5XPNDb*xshqyx{qu>B zh5i_21phgrlfn6zEuOLdid6WeTR9g3C%(Ttt!LpCxm~IA&(%l-#bmEGVmebKELFL* z=bzEV&bhs!Hv67N9Jm^};nSZWZJh-&Tf{c#2tJ&CXuYtu)RNC7v%crNNPL}rX8mz3 zFR_Wog-f5bmD-0lY%Mc<*U>WFU`gTs&y|Ut!ifr&i>1>(TD?)sQF)iXGF@HZ+lFr@ zeWLH3?`fU*_T-E4Y`ILaKRU7xpXMA`dgjVy`v?AM=>~t-y)WLoOQ||&)$f~sKTb^A zT&y6_^lOd0V~v9Ud7tPKhu-`Uo=0nLEV2mcRGb-f_|IK8cC-At-In72Kh}Rge=uMC zq(|@C=xv8mcN^7TnPe1pIr){GjAMpwx96#e`)_?tm$&Axv5<N5@L@(~fpkT(#QC=O z6)syMEe^eXvFZP_n_KtSm;Y|qDlHfttg_{~)#_z|&*!-W9JusS;;XojW<^+W%ARYx zQ=9#j|MpwH)vegGe)+NWe;2(Ayd;^{%XYUVt8q=ZqUGWHuMS+1>#(y@Sekg^_AYNZ z!Px#+lCoZX%l)=5>5<Ohc`hlX9rVXR$oljd_l0wg?bWyWdZ_s4;nTa?8#5;;FVJ0J z<L+1adV0)xYwo=(Hb*-yTzCD+3zi<aT~p><Z%qzfvS)Tsvcru6xAOD<r`J6Ayw~jV z9m9s=k|~FrY*);jkf6m>%eUNp16N>;#DkYCiCRl0Uv9p<_fm6KYC-m&?SXnT&()q< z<&fm0_{6x~`9b5Z(@7WZFMWPvrc6ii%kzHhe$Ri(t*qRpcje>7eS)7HN~gSX(N7E1 zxY4e${Pd37t+y3@`;J>IhK;bi`E>Z|6n6bouJ=z8^&6xmMM^`ygl%!C%-(z{c!7lP zUhj#{H-bA~B{5{ahzfit{`Azz3kNGQ<Yr2oP+Dp>M<PwbsW>rf@#XgL>W&Y6O|6kH z&aL@!<}s@QcP!JBllpJ=%KhD-`}>T!(W#5A<#TUYZw;6v#l^U5LHxw|5npm_uj>R$ z@r4~SzPD21YRHD<dsBJ--7)z1HB(({RhP?3TVBPG#$y6Sivr{{n-0tTDoFGA5M)>` zv4G{$nm<k_dbY;8+h0>lohd6G#pTu>b7@28EVhsiW1)LV`=XjPMAReF9qyFxdGB;E zdcl_+O8t92^qe`dBXawTKNsu%^Zz@d;<0OvRF{gVsMeGNlN1+~u<PyKe!<4Kq<^Pv zb=_vy`fvB7-oKswy-aLx`dZc{H?|b)alFA*7yIVly9X~>4tpAQiQL<_e|x}_r%PVU z>|T3)>4ry{!PdKeNS`x3xc6~Sv{u9J)cunG_dj6!-z)y-cTF*qjq~dL)7RTPx97im z#5k?$O~F3bS1yZ{ByCsEK6}xtT&Q(pyJ?`}L9Z_^Hi>-)isG)!nA>j>b+(;tM_PB; zgeCP-4l7rDdEj2#G;?~UTjGipqVpb>yTq?fO(}hpyR7)m<;>^bXUM4CvX^vI{ki1m zrlR@hWLU3W5Wlmd_O6lE>7SYAzfu^E{d(D~yMJ}%^glHVwmsUjYB$HR;N*KpdtQbt zdU%k(b<#nBqem;RN2yg^6kF=q8S}EQzSQWK58pDQ-nsYx9hhMMeDcq_Ig3w5GQPTA z%e$xR^}O##>q=&OXq~&TWlhnluR`ZEe<#$r{n}vJrT2L69Nt_1zx}%_Z*jY(Uv0Uk zg~}nra=ZEyOttN=V?HIm<!QbAa`}Y7ljat2v+csqNh)_OX4`4#m7AH8(7F7xxwXhC zA)D$8=j*@s|L^P#OUQGWQ!*{1;Jl`?kyy*U?iX9zOcld=E~MA<2VQu++I#wM<+(4v ziLvI?+Ft$WHu26rBUxX~=A(;V?dN4V*!uZl<CH3k12>y(MZd&HU#vK`q`K6*#dF^@ zzw>j_uWVk>ylUo;faPaG@3uC(+VUKH?!2tGP*yE2ZqoZ17Zz|Y{Wx*HG~0)ZT^A;{ zo%7^Kh~b&eUfS<1@BC6cLRtUNa*cg{k>^V{95TE-qfF({RkOD8B@@LSGx3H`U#PZt zqg}ht*6iZPTWYra?G-EiTXOv8rsj##A0EH2{uLh4dS7DB$JM@qg=^1NeDhemLq#_x zYDwZxcRh#VOIPQd=okCy@GEoCS=*a#-5W(;9qoH#;&L|d$+{NjG?AU}-cD0+uu`9E zuC-Qp>#jXB?yvawetv%A8RMlo0)H2LJLh^-toqZF73Gd`GxG)i29+!;H(S0bvHWtR z{E79R#|u=BS+w>!g-(3LU9*3U&Glq^)|d4&j&1#})F5c{VHV@}HU++CH<s^G_P_pk z$12;{{@1TM`p$JN4T+d}=Yz<kn*j^GQrER@2wGq5c<=b_c}y2JpO}9|TfEBX*y9Un zuKy)YPGDT-v5<}TyiwFIS>L5^76h1>e`B<b;hY<8Go!~$tzT=$3HIbEliKvA_&U8i z<nh*!@9h4_<aZbQD*uM0d2v3KKa|O_mD^d-mgA~S@HKUh)CCpmv(_9EdfcXzIqmAH zaBkIm`~8#Ww-zgSSiV2hxLUVg`|5{~$1~l7Rf`rk>NSh(teL9(IQ`DyT9sG@QO4Y7 z74MhrO?#K0xT|r|{t$<14oS&Z+^nke?>cIqd$M!^%i47_!UOWQ=M-O6Z{6(o+B(j1 zMv>jam<Zj49|V4>PSLAc*xMB^VePX&L2$K9_{}NDt><5^E8l6!RCYPj=(O0($6IUv zn5{hg=gtc04-XFg{`Be6x9US0+!H07E`9hdd30;YI;%yJIWtl^^cuc7&$@g-r)OGk z&A;>eHcS3D51;q>|Lgnz=f&pl@2@$izh7oUy<73yGfofxofUlN<$iUipis?X?W*a& z)%I?`u%d9?p%XVZT|93T<!!X~u#W#`tNt$qdVP~CKm9jT@_uA<!$xe=zIkoj?~ea9 zlRT_CU-<bQo{3XbpOyBpO)$)VGJ9(6bIJ9h`4_8Bet5oT*POPEXa4N{RPDpmZ#;9p zmGLo?u&vpX7PfwjTz7nq^qVzF?yM1Ea|EKIER^TZ=-oeU^^5J7_bl6aWWSJC;*u*b zZrf(Ex@XNxRa|{eLu23N<ort)19W*MPq&v#*k}HDUc0s2%(~=<%#t?W^qpHJ_W!s# z$9c7XQpV2f4@KtAOO@IF-(P22vCrhstB;#lEkE?U#CrDG600V*$@Vi;HlBQ_yz8R9 za<6M>->qCdH+8?MTU>1$wlK7utvMU`du401=km)2DOd6W{3ZxS{+oOMXZsA#If4sr zFKV**S^gnoTWzz<^|~|mJMDN+DEd1_>Y24a=Y6&H&OJ9>6^GduLznOz)?e_W+Sw{l z-8L~t`Rmh1k1oys{O&IEb&d^Bm3|8M?YPtXsCcT}RGZ9u+i%RDWt3Yc5n^@A>r8aj z!5?Q-Q&-P?by#6;0PCx7%NSfP+*z=HR-cl@bN(s64fZ{8c~K-#u|&F*d5`w#ye+JC z5BnMdof!mvwC<XDuGAoD_Rr#NC(js1y=Z7~wD|V^)}fmQi;msiEK?gA`Q^e<-XNxe zAifK`|Ll45=*_Gwg()WA3f=UQeQrv2aGc!8C&w}&CQz1R+rI8aB`2d}(qDR1f9U$^ z=gzIVt?T++pHhW}sD;K!Z;n^F?^}Q9__0!Dll${~_do2o7T3RXrNhEY4yDsdbeA3K ziue?`x^3&Sl6#@y3JO0s%ruWWHaeb(^oYBt^yTk_wf`okU;X|->G(rwmDoM4^A_m| z?R!@8PxO`P<DPZB=Z>he99X;?G)?nvQTo+X^#?YsU2zpl|K7P|A(wNUe|pi~&=bpo z1=fjlaaV=R7P00Gat#YNaB@~H(O@?DaLjh~gHv<o<yHzGU30V}LB#RpbfqvS@1~+9 zt1eIeBqjRetV*?x(l^P8CvB7utUG4mR`=j@y8Oh8ft9^-?~ZPIq(4<gbLU&V-HIhw zJrfGW`;@m@yV@VO<zHyvdga>GaFLyiUCsBqYSx)P_!m3Dpnh?cowQa~_MV0qerE}* ztgRhEvp)&XT$C83{qm^ZjBI{&|H2jaTxUzV?e?$p4wASav8mx(;hg08t9!E6?!08a zOVwv?{Kk-&$$C{BO&w1^#u>B)9^JnAwuAaCMn4Y6)2~t@Br@(QJDg2Z6=S-tR@>Uq z+hlCq^|SZ)eVg4${S`gxQ}?{<3f4F)mF`k~TkVWroOi;TlbfIG`?T%udGF-z`c31V znqzPF)77h2erCOvB;Lg^CHV92zOc6YKl!5m+U~B*yZ`s!^V!M|j&(cKeLQ+SPDFdr zmxYJDb~bL->|G`FTIk8z6+4y&nLCGV<OxtQ*|$(5PUm{rR@aJe_cD_>OI7BwwK%Yq zY%4zJ(Rslm`GHYH=7#A3U1vgeN@(y}9!NQ&XZS8;nyBQln>s~PrX`uV&SDQ@DT{v= zk!(@Yvf}>cA8x+Jy02IwIQP9-J7I-Ow$92s&qZCeTW@I1-Fx(Gj*-$G2E&lw>y@XQ z_Z+gi7`5DJdRwSfVbRospN>r5`g_5~C)*$LJ*#dKd%foSoP3M)%Nkk-nX@KEYred~ zS-HS;!-r^<C0EZ?<XPEwr-n?Ld_nT+^S_qesePu$A`eAekkT-^b|})wy6cHS$7avt zo3G`_rEe_Rpg32}e^+7tf{N)kqHE3OaNWtz4V!r_=iclflXQ{kI)yK?*VudPnIY4$ zV71X%!_3tNsZ8IeW-EQye;@hj=IyUX#p7@7|8dxU-m{x)+_fT4*G>#pxaR$O@^d+V zR}rbeYjSPhy2TG)xc%t*_tkUz9)0D$zOy)9u7a&0C#2+B%O>r`Y-f7UXMV^Pag#Z} zdwX45#UUqgeHWXhX%qYBStjwgT6=%s`q*@AtGJb`x|evSUX-GrD~IHa7r}2?mRA0H zf7&9uB+lY)(6yDS28(z1R{mJQv;Wtx9;RZx^711Iy}PVmumw5qZ^_O~4@}Q`cVod6 zeOB=r*|v4g?p}Mp9V&K^(zq&6D)dTBR=<q7#UcIe3PHp7>v>~2U8IuZ-+hQtK3~3z zQT8Q|tFICp%Q+^aed+w~5?;7w$Y13*s0;s;(DVP)gxhx45}ucKtXr@3^T)kOif@zH z1qEKWl~r7k{yX*b4fgjj533JK@gMtqEUB}R`_+@js<NjarzhJoDwxh#b@AtU-dCy_ zTA4n3+Wn-aPj#?<Q1f=fdezH1%r_11@&?u!FUXuQZ8FDY;Xvi%FV{Sd>FQswS@_s> ztMkE(lfJ&JiUCc>Y>dr07_K#AkGzf4pVm`*W~cRh(Mr-=_=@%WiZ3Qy_a7=`@LE32 zNS^BBc{GegyQy$zr(D=8cICK<&1ol-Cb(-q_M7J-akt@dx9Y|0hzZ5lBsVt4O+Uq; z_08$WfsVV*64$l4k7{$BG_3M?@z+Co|Bd{4|6JLANj2F@=I-PBTe_5CN+J{MqTs~u z`9V9%MOVKJD)F+g*paEm?wwV_HQV6+`qc)0osZ(>-i9q%BCLABq+Vj0>alg{jH!%? zjwj-mAG&mt&C@bX^#0nuk_ZV#p{nLB7bbM~D%mU#$%!=#>0aJ*t#tO{_JSWjBqCo* zaIwbE4zgJk@L+~_@>}*x>E?>slk$>ygo1R^SVdR_86E~q3~v3h;)VEJom-RI+b7TU zV`f`bJuSds*Y%<W8}Cft5w6jewk+n_#B~Kb_TOLRnO~_Ol`FeYS}Jo@gu_GSpB1IY zy_XkW=J@HH`b_zH#hk_5`e(l0Os~JIr@#KqubT${_P@XS&;8tgas7#(*L#>MO<wTT z&)r9B!%7L4y7Y9vol0}A<+jbb)gmWwx3@aXYR0^`b{qG9+`K>Qch%!#E2sPvYFjU3 z@kqOstFUvg8E>y!+><M>eR?%cHWe<p=&kDSR-Jz2!mPQXkAr;~HMiGxt;;^I<X+b` z!~6c{c2luKucx_MJ=IynnlQO=y;IVbdtPmRhI*M5%XTi?Df?DWw6kp)=krtF&ipM~ z_AUCzg^S{IH6^-caM!jRpQN6Br+4SM1xE{Be7O^O-}>5SkLMF}wr#kld%5P2)>Gd! zcG>d}r=*FTvN|8^^26sGS8cgdPO0PrN0n)n&!#3{oc49W?0bwS`479Eld$sdaf>+< z$j3JMp{Md%^KDOs-XE?06?6Sp)UuGN4cDhV@ickSb-|<7=*jcn-|X%(2Y!ou&~!cN zzPH862G)Rr$m;p;zb@IDSzGFFVK;gI!);RTmsXui*NwQn|7-mJw=ZQ*Z=5%`%|xAB z*|nA7`1=#D+wXU_P5AtgJ@~uG+{@<q@8%r8dv`Cll*7Vpt!wOMZ#1Wena7B|;)&S& z@!W&ouV3!C>wav)lOuLN%q+M{X3CXx823bZcCu+bENLw4E8J?Keq*`nH!nV?1q@b; z&RjGqJ6p+erS6Z-lbsSqyE>n1%-=KNtIm?}&(+iT-0fG?_Eg{D-ub2BX0zU(yNb)F z=kiXQ|7oj3?F#Sf;s#>#4D0`<X#L@u6=rq6)7{PQ@oI~zM~1dR%55L5WCXX1ZB3pb z6(J_VbEGchlj%Y=?|1d-7wyU|e6}1-nDV6Ib-&&Djn_WU>fqPEB0MFm;?9@jk5=sK zKCOM}(}JyuSD002>2Bl~J9k1a<dB5*1Rf9D>hlZSK39v+6MVZc(A+nU>#z8^j^6X{ z=im0ocGxnXape!0i!)+1ckx!gFHTjTGoh08SKXF`rFMD7@fthp9!l6U?zArXcG2;$ zoX6)&rZ1mJlmt9oASiFqbYFCvAdlRK7KVx(NO^LuAoIW~i-}RmhPxQd)LIwaT=OK| zPleBpMYib9#Ns0>R!xaIxKE>U=_h9frhh6+k38+&b2u!xVfMW9P4NpE0vHz;z4BRU z$P_M=#=CRpi)ghIS05$I`TT7<A6^nK7jE$RvEb*OyKc=`X1qX_`=;S9VS}4L-3?!_ z3|VoZ|Jmy8S9%?-Hq4YzUz~jK*vS*iYn(!j0vt^;=jv(6`ps#5l_D_BASasRlE=z9 zynW|>e=&I%!f5%L$>HFOPd3NxYxH~gH1|EcxxG_O#8CHRjK(EX)=Lu3sb3DU-agmR z^5SRY<PWddcF28id#UDC>d?+%wP??d8-1tN9&>QDosyinH>Arq{ixGRpXjAGZg0;w zKm1qhRL9xxrdG@^93JlFGT-Na#q!#>zrU-^k9@S4%RWz7^P!;RYa8w;C#e%gO)6)) zucd_K#=qU1Uw?bu`uuGi*SLSb`);@WweBZ-kw??x_uZPe_tUmn*6XB9F6s7WN;XeB z*6GODe^hZxq*ss@tM`Q(s|Ydc-0Uxl*YE$NC#@T#@hL}Cs%@fo&gVGIS#8%v{`Rd{ zKBr-7?S@vhjh++Je)*Sq2>yRue8^+bqwr0ab}jf?|Mb%7!iMS_>m%<>czjxPevkQu z$?|i5Ry%HgsdFNac~7{fvcTtumbce+|2p%}-Ttrc@7DQ$ThDS9B+t~(-#BlP_n({1 z_nU6rx_N8D>qVw1C!asRb7_Z-bn^U4TXFB-!CU^d<{w=+yJD~J|G629Hq6j{8EN@m z_eoUu-ZRc79~<=ebe_2RCoS4+dTrjZH+$Ic{&L~7J$7+<u2_}AxuO#m+=tGes5`$^ z>HUk#5)Tz-e%p0M+xW8Bi{*Y_=DoJz*STJ8amMS7b7$@($7o5$Ym)PoZ_g7F=4> z^-xD?*01IDznp*1-T%Mew?olA*VM`@V!yhWO4Tau^ES(7zPX)|&~C@{V{2CUp1Qw% z@q$^N8P1D}b2bWGs|&umK=WYUyLWkSuf8@<E0IeU=uy$GSkxSUhUw^);$H2<^GCnz z`}fqY?XYWy;6i4tZvD?|%4QcYOx@F`uaGXaiSd~JifuECejEBq?oBhZytl#5qq#$b zvHgE}v*GEGfZ$gT#1d}qz46Z~=dtwMqBx6FoNX`C?o`$;usXTp<La){vdfG2aXSnD zx^_0>Zo=ZNbF5iT6<>NUn|4KDkB}3)3e)nYb8-`GE}8moTo-%(+s`;Bu^o?No}Lk_ zmpv+WUiL<Dtn!IFA3qDtzx^W5;@0tUfAteZBD<x(S8nim-pvvo9Hss*$iYu@{q5DS zb-zqsmsGuGvEoG^SuU9ji_GsbpCT4FeptY~_XE$@w3$g}FUw<OdHUUUZJwR9;wfuM z?(-iX{a>n{megIwx?m&YOv$?}$E-pu{_YBB>^*OO^0iz&`>cy01;1Wa`G5+Ci?KFa zt{v`}I%$fPuxQHvlQr)?DD|IrUU5=olEAv7E56K3b?lQn^*Ny<aO34GdcAM2=kzhn zW>wZ{5iPab-e8$2(-HP|MZu*D+ni?1-T1%MY2TAA0^O^>ELyZQam6ALlYqSU@&Q-N z)l=s7CtC1-6ItOt`4pQPN3!IvM8nXF{QcE4dDYj(^QvkpMf9{yT_@ux*<#x|dy4=+ zx5LM>^aDY@Ct7;!4VYqQxt3lF&|6+T`vT`IfA%}Mf5I*>GIphR|8~3jZPP5*qi;ei z79SP-er@B$#4Sbt(q0;Hyx3agyZhwfyEEzpZ4YR6SSe;SrQKdq(%<9~u%cyyLeGUs zW=@gZt{!e~n+)IbD$P_CDPE$q=FhxEdRi^cEsc3WFH9yj1}{^ZvFz)MWnwN(N<mAH z{oi3{d{pYC)iT-NcG`cN`^vw)Jzsb7_Mf{p)oJ(t{xN@h^K<&Wy$`ylum6)i{gRbr zb8Erjg-5O{DcWA%V0b(%TeROqvZ+>X7NcqMXX`iDYqsy(w!W`EbNSc3sc|cQoyv|s zvV7UgR>!92kN<clPB)zYM<weL=ew16j^@3zkXRk4eox%(wPld{=kssR1o$4|m>>LU zP4>H)&$W{m`@g<-{(AARxDSqQ!iD;773aUjx=CE0YhrzD!|gfQ_y63K{{1X|_q{oc z%1+xKKVP2zdd{UE=T}s4nmx1c_%-38x%AFTW7nOPb!lC?PL^Aq<ZpZ)^ZD9k#_Kx` zHWw?i&P;XGUgtPRm;3Rm<9hxq(LXk;D`oz<x$OCuX(tvW3H#JXnOnw2{R(}&f9aFo zA9=hz>i=sepQ?Ty_l)UzRgq`U_l&=HDi`=qPvW#(Kh5sur1L9Or`cUz-?j8_{Nwz^ zJsc@s7w+s)|M_O8A4kgGoB#j)|4?t_BB02elCenj!yKs<(bxW1S9D5T$XeAS@5sAM zF-l@u_>}dpZ+ex93O;*%QS657y({*!O1O+Ab#AP0-NgEwJ9}${#GBUVF4ZUIKXsNp zbLL#g3%$8M$y5HkJ{WxEBF7O`*`{pA$lk+NYdu#k6!x6|a7pen{hP=7cFkUyVHEUQ zirFhG_r<aQ1sd0~PsE$c<?l&$TB6alTq0ZTs`u%d4^xv}9xTY~^ZI<Kp1JhLnJ0g8 za=Y8AMSk9EU^4wsA$9g*p~5Az{yG0E);)Og<n6^rm2dtxc6eHHb{zY#)$z*y(u?gp z_k=V2_>}HPoH+GYuIl35zk5X`*O%N$jMumDvz)(Tw#diiMO-m?A9L0QXYp8zJ*eae zseHS}?f4muMdq(on7r_csJ58LY^$($Wr(%+Z9(~W!jCk+7>PED-hU|N|J<`gJcIFC zZIRTgpLH+d)*Y8ms_l7gD8TLUbfNOO%PJ*2|7s6Cd-;pM61??I)n8HZhTzskK^+~f zT5G~z+a_xV=I-<OIzh2-|DFx!62#(qO<3!s+>TBOk3Gc9rKstuD{367wKT}_89U!( zKPHa#Q>RY)IOju_cI-h`9qub4nqohEiWM0xO4Zk#`%{@Pp<|oL`Zl|J(z&;)rk9If z{P3@liS^(bCDkUyq<b0y%n!p~#%RiD&se^oHsR5$$x>}L#b*V+zJKnugJlEf$%KO^ zxJC1BZd!OD_`>;uwIvb-^JCqf|J}7O+sNg(lz`kd4VJSyTSGNB>Gs~z_;bAWOXbQ2 zpVqk-`!aKGu#}rFnJ-c~vDRODhHs$t@yvNXrWfL-op4<8Xt9#T5_Qp~Hp1#pnGbK9 zG5725K7R4NnWy%4-?5s1rgO{Wolo6%*|sxh%LFw<Yo(sq$b9zQGDeM0%lOzW_20aD zB)BK>Pk&PV`FVGDe6*j#p#15*<^Q$qhjn_E^Qk5%q#gTtk6(GCO79n*^|N{eTql2! zx<CJVdXQ4Ud?nYTFE(w=`%+@F_jAa?WtricE=%5TXjf}as+;mmpsS0A<*n*_V@uHl zb8f{;hj(zZ+J19>tz@-&Bl}Lds`EjH*BMq;x87Ah^s1{*|DgYk?kg;>uh)EhZgqBj zwC3g$M{jo2l)O&76L}^-`0B0Zzenfq-6a2S_4+pkTI;6=^VzhqEz<9LRPdl6YR1XP zm3&%8HeEMwR&3FW`freyw#)pSFIT3-$IO~%R@3;8&2rm$^wu)rzz?s_S$@r|Q{5*Y z{gaXZLUMIq<eGA$C(-W{12TO)#TT8Q)w5*rW|m7T%j&1`EN8b(<gGeivB9mf&FR8< zNm=2~uhWH3X%uhY88P2%)r_97b@gX|JBoCe>DW!bD|hA`U(>t8R?P2wQhuNL|0@4) z?(awH@dfu+f3CO8Fl;k@xkP>bQH!ffmmGV&?)Vn5-&sX^z16N8H|2Z`51DhLME>B5 zbd^wZmr4D1>YwKIZ?&Ge>cwYKZpoXo=a#q52-02_JSlr^z3kT%uSF`yj%RzO1TW+J z5T~dfQrz);$!zKSRlRR+KG?9MAx_As{pZi6ZFY^){oh4P@6Imz)W~&5>BHN;=lLZm zQs?)4|EX`XX!n9U?^L9!m7DuMPb+-hCdc(EQFflR%(mR_T%B{mwxSn)-dHe|yIE$r z&RX_vC$5FoHXr`@H|je}t@(2B!IHTzgIsmL9;--Qu(;bPf5r2bua>iZB$qk8S|`ry z@&Blt=A7e?8DCfhXTQij!_6(uW%XWpmyv?zI)nXsPfnh@@O7cYgCFe1W!o|qCeKj3 zJ1J9+HFM9>wKD3jT?IMsgqEL774q-izfZY#&WkTjg?F#~e6mKtYKi{J@J9|0t?Puv zv~<2p%#Kpz`x)|mvhafFl3xa!R~U<ZdUtI;yKL+K8E#rC?=OF?Shw7)q5rMW=g<G= zYe<V_r^m&8X1;!BgWEzrOYU8sp1#g<aW020@&?XV(+JcsvJDk=N^wr`)GT&>`{K^= z$2(#xZSPJ=Z?$~U*VH>T<Vtr!Mz^YrWMG}^npl;Rl|f%Vm2>5b%T;%8Q%@;Y*00`w z|Mu0RN#*6)S~YC#o{QaWMR}JBdI*Mj9sW@*-XmTVIj>SG#OT|(b#Eno1G6~JpSzP9 zpSXVBuEj~471po!3;lY&r~QofVSkZB(%)r2+?e?3LfF~<3)RL_v9@KG{@<Qhd?S*B z{kLnCgf3GgKa;N5(Fc(MC&e3g=KtE~X`orPF=E?o?PW5qTPNzY91vaT{7dr<PtDTk zZQl$xp9~1zw_NGVg3YGi4oXBGysE}((>qZoB4cGn-|nMUYv!E)`F!`ew)=hezOBoc z#--RK^=#+r1i=?SL_}67^>&_`z@+`P^7oN#A@gg$osPRwbl`9O+t2SSxejE+E}c^! zdz2;CttDZlxU}j5h5L2Cb8`!ROj!_nap$7VuU*tRQ+dAl&FrzVN?VZQ6quL0^wO#M zW|9t1A|*{XJmB4`S829dM*sN<F6Fz|I(7&iU8Jj@_IyKuoNWCEr8NxSJ^eiY)Uhe| zJIB}?Z1VD1?jy(Gkk5U7Mwj3vn-$N`^<4Qp-5@I~)GN$XRBOtkdB@y)e@^9kTDl~< z=HoYayJOcPS1&qqLQ(R#?wd<OCkz%lZ4+1(o3v8&tiF-QmirrRY}kF+8TjK5JA7{s z{iyY>@tCUmgdg+IZaH{+yV&`;i~lZN?l{XYeRfa9xrl7bf3H5*%{qHx*3ASz_H>=5 z8;3>s826UUHInK}T{c7En9cr;X^Z?_TdF;yHqANgQ!g?5hsd0-ttM)V&95)G{YK=s z_Lh`J&xQ4sMzfCB+?M(yku5EK$W(XQQR|Nj8UOxY|L^qw<tr7`juj+IcB=1*%5W_2 z(k$|}({9d+ntdnBb?5VYpVmz9bD48`#l6RpnHLi7UY}Zdp)S7k(!`I4pC73|aX-SI z*~Inu=3`f%_Gm3pI{4hWRBCSQqP1pK>!v<ib-zGsk>qcW!&OV1b`@3?C=0n+J(Ya; zTJ=TAg$ssX=FRy&VeNMd^*a4ee;(EpaM<r$_xv9J-yHV66JlqwIc=JEtk&MBTx^Q> z^z*gd^A@Y#KlJzRWsW;HGw<#eUf5wDW;My2ong^l>qRWvey>^ln)|ZUF@MJgwLI1r zoRaG*RsFZLnrvWutCHpZyWq*M;Qc{MZidUfZn&j8sk-1($-LEi5!Jh&M@GJV^k}F3 z`-gE~h4gCfx+NZ3n9LmYKWFyu=>K;v$OlNjI`>|F#pH8MwK`D|S2rH~Dq|7Rb<XIx zAYTHTW5a|S&n!yz6gjMATd%mZsek!}xy|jnn>|kWi*~$AOP%|J|7WiAEB$Fx`MC9S z?pCHf{j+9Sl}6dJ=P^$866YNK8F!gk=3n^xQ1RH(y>AvjJ`yZ_z`Y#OoM?R5lu#IP zq4KMbW<f^ur75pn4n}BhiH?_Gz0!EznkV_fRkdw>6DLhSI%85MkE)EIofM-pPte1F zk~<H-ncS%syi+t+L`<_)pzd7QuA&o9X55&m6l##O<OuiA2g=*^mR`^ix$<%T<Ek5W zl`p-%<!xT#c0b|DR;#E()rFywzk_~Ri=Ik|>PZRLR5h~lU-{x!{)#Ky2bcc#d>Fq- zL8@!Y+qDMm+@-SLrkRRN*&JV-Kh<50b<$^h8NP1?7Ex{=G91LYO~1rEoUO!mhM(s| z^>juJ<_NDeL&>yOrX>db#zps%Y<GX{*ppRvhSykYQqUvaUJqqkg{E4rqt|!Mar=8l z^HEbM+ru?)zWXsAi~g47l=2~Ww&J>mnz%fsIm&v~A}3`2-j3d=5tU)&cgE@V#hV4L zZmcV~dP6TB{jxXUQ7K!Bi2sonhiaevnO*zb`hFqH>91#({yp}6fBy8@$_v(N{4nnl zKR2D{mEcqvxBq#!Z|B#3Hvau(dEAZpe`ecn|J`o>uc|vkL*#<q`B|B~)>9@G?3q&G zz1BF_Xn{{xzUN`t6*5*LRZ><9m&`Cb{$m%9j9WMJuk~Al6O}bCU3@+J3+JX4>90Bd zPT=ZZ?%44COoztB#0Bq9i>zJtN&fY%YK{EXKRc%PIK13%oU5@*>iioc1CzA)wGp!$ z-j#XBsZ8OmeDUM9X2zVuZi{o8ejfIi@nZKB<2e1**M26>K5y}(^1!U8mI)67PPTMN zc>c8BZFT<s6(O^ph@zJj%xsTjDzE)ze!5WER`S%tX?*ATkIl5c)uejHq-U$9l<IpI zIn(7CUnG3iWzOU+I~Om%^vtWx!G#xcuV!~`nf{}RE8yFn+c)zsTJK3&6I^3)Ug%$2 za^IKtZbzkxv;#$UWb;0E>;EKbmHhlUd#U)P1uujTmi;~{9)IKixBBn%FK&ofW@_J{ zcgo4?#!(5!D@$h1yZGu%sQ6onZ^{BW9Z~0|Jmc%0bnb|a_t9OK1baB<=^YooIKgh} z(JTLS5}&zQ-8#O5>${RnU+G5UC!M~0NABs)t$tRt`jRATZT7C^%b&iSX|#+dS+gnm z^ue>|OIY&+6p!_`@$4~sA9DHXJN;($RkjXid#fv(_@1ymvE|wLar4Hrv3sQwS;flt z-gt6>?`SIfo%#!NmoqCI|6j1?_WtWKmzg517rhbnU|wJPU}epD^Qx++j;rr62)jEZ zN}QfD|KDei$O5h?=2(@ib*DM6xY}za9B-Izt<msHXQA-hCcPsojrW+oGwiv#m+!OL z_rGE`yFP5&^_~6HtiG@cKW*QGix<ZCi?mN(`ncrH`_|X)9H%%G%S>30U*Xge+$eKA zB*tosFxzsk)a^{y|8A@9nKs{xcUtnq{lC2`!#P;zRDF=)mi4ci=vxxuQ#z9?TH|!5 zxw1mFNN`*4!!73(f|9Lx_mw|<{Y+!ESy!PFEAx4~h?xN`pw$%f%AQP&eYJ9R*Du$r zj}KeuB*?52$!~MkovH5K$nVCKcxlS{WRYDDb8VtDyZ%KPcqy_iaa()$MZknvYxcxQ zEerE$(|M=x<NOYeT&~t_!4d&K<v;6~&hUFy>+dEs^?h3Kxt;&-1ZJ$faAQ+tKBM^V zn~RoxdUpN9=VLP#7HG^5U~LImE8Z2&d&R|kc0%LSYGDti=$+es&#+a9&2%W!+-G*U zZ0oI{n0AJcbKkm7%uqTx_id$`V&Do1Ev6ewJN*PQ-fUZtV{LmP;0mi?y`)Z{yVGK= z6+fi2EMD?^sT3WtT6+ISWbX8?Y1dm8D1~PAIPaY3y8Aqb=k(1B{9mV=96J2DzgB~9 z^Xx@lYN_c#tDFOUtPUUXD4f0Fes7cg>E&e`f1mig+Wl)rvi?iC@BdbxH@Mid^3sMt ziJ*GU*He_a7EjGBVUoO%{QvmAMYsOz-+ub^Ty)sqU(XN!*k7jc$ba7tgHQGU;-7Nz zvm7w5|F*OClXv&t9eYk{ee6m(^@989%{MZBe;6zM1Vf&#XS*B3tgn_@Gj~eaCA<8v zQze%l1e;DfmBLZ*eRW35{mD#mO#+UO7sdY7?{f%j@jL&#rTSd|vy&+v6aKLt*Pr~* z^y9)Jvwo8=&8O7VTMP4_&5!KRQl1~tmlPy(z9;z8>xCY>8;|{Y@!+w{@thgjMVyDZ zJvIatt@pYZ^XjKvi@=M^iAFcI)b6d!&|qyjTOwB<Z8f!c(yi`4)-Ng+`D$$KZHt+I zuGCgKc-}9e?3E@RPwI82Z7iSr_Cb~z@2!7-f3B?jwDsN5H_VUkFEgJ1*ukLo-fE%b z{_`y#J3elmwnycX#FlU~#ZO*RRZdkbf97lK^!d0rFsU@k*y5qdnlshcE6<kxf7Ctw z+x|cCfAhD^k1ymuaoTr&e3E_RA1UGI{<(#kis^<OUXmq=lQ=4pkGuM+`<}CxJKU|= z@y6wH<o_dTMq#fn$w^OLA^Fz))@LTx*5C6#FH^|eym^b~ONNX4CU<bvA8!<sotRu} zJ16*UP5s~4kUQtE^txPS(SMht`8+=EL5N1iSN0+wbsMA5d(}(s&3&zx-pbazF0e!9 z==b;AmhZiha^l4Q{rBqrZOwgi{lk<#DV{!?1$igFggn`_Sna^3-&a2W|9<-T?Q-+w zrF)IH1ngb>&-jV>Zr_`xmj(TFIMy25$ggm|peG|!`lwfi`8abe3!lgvjjw9KQgWBy zNK6U*pj>k1?f>i7Jsf3DoSNWiv;Bj0j((rnn#c8vPo(`!nf-q0YoUyvHAU*8Di1ne zd$BiLER#w7`07z6Q`NlU)pd*hoV*gjzpmtE<4JETZYy{0!wZaGhI1bitKzxL+Qp<} zvHt<zrORi8I*;bbIx)GPRsSUaztf~qu1|c~?0~R}Ul)wF%KZ8M>BjQc_D{aHFjS;W zPnZ?xd98Ay%_Y^}VUss*nP+fTLoVa)B@f$KRhObFUPbioo$q8T;IiK{K+NFjDW~dF z6ZIMS-TN<g$W0H4OS_Tn^3_U0)9!N8pO=#F)o!S++P}VM&%x+5dY=lcWSlr#R&uBx zc=5Tqwl;J3-=-I}-cMIl%Exqzbyhq&^fNQADbKWjURm_bpezlEhWn9IAF?wtz0a6` zOvy3%j<JSqp2q2d1(*6vXLKFWn6+4Db%4p%wl9x9WyW^R=}+I-5X-N8xU*Tn!jXIH zxvx#@!~4U&7#zsD;B|eT?|N31x-(Z~#e9S{G;Ef5^eIKH-T2q{;Vh1m4j~==djz|( zg7Qj*ye{>hWSJ-!s}qzcVc9s5H|ouol<5`IM4r6*FTMA5{kNm*Z#;c>s_w(D`8nPn zPIY+C%-DErj*-@uV>c%>O^Ew!Gc{93`;uV!){ZH~W{XRorr-bRdgx#Ljr)J@<>%PX z-}&+V)qmGbpY^?P=(eoX_WQoc+&XvSwEDlt?Kg?nS0=~bsmo3OYF~Be>c+61DaKl6 zGtZ=-V{}YbeUjR-!mD_JtW|nA$6B7)KDKa)%dHbG%AG&Fxu_?#YtvkDb{ltxC(~J{ zx_X~BNIJ5-XOHHb#fi4hHlJRyU_zP~@1iRoDzAChofnAIc_`7ddsc>7<-87tlF5F2 z-RIdhI8DD`pylPYSaJKNCqH()n0YC6a#9;(`Blw}bt0>l+kTHOImSLoUUAorx6a3V zzOnv}Y+hIWq9)boPqoCfsO)Q5n$NR^i#1ah2`_XzqcbJMV@+q~gl${4U+xo06l%KM z@Hp_Cs?qW@(g~UwUUzm2yfao#QF>%nKfO(^=<w&SLSF*^oiaXO`ow7OwPc=F6J3_@ zb6bl!Ta7N>2<dmrHeWvPfn;xu8JAj~{{4OXZ!7)(pI-g*Q|_T%?US7}l<uzgpL(ME zhb+(H2hFK|ybCT0xSmnrUv6Uiak*290`DD%sXwxfzC4%`;38v_==*EAvV32`wqHvF zmu#NsaoFl)eetdJ3v0jdSJ;<pUg|1Y_8{Wu^XX6e|IOrVvp@FwIn(E|<_jv`><^ZI zwkcj4Q`h&s?O$^Ur$}Pn<;WYext=b3psn=#-nCwj^>Gub<II%nMV?1rPb{c^y7os~ zqIJ)Y$1g1f3+J{jp8DUeWNP;26}d&6$rTyFv*QY*-rxOrA?(TKa<^ZJ2kds73%zE2 zYB}??G>MJMtyd<pslWD-d?SCU_4N)egEK{?AD*^*%5m2!9{=jmeqdH<erLv#!WWsl zWwWgA+AsJKzpch}`Q64tlNt9%+ig7EJ%4li;eK<;zmwWO3#`e0;c9#BKZ~5=&fJq; zueO=>xpXTq|7aA?`to^|p4X(-@BeK5ji1gey3)9qJD{F>{(V-jZ9i&4=X{=Fw3B1n z`JHT+mRu?<<Tvr2UvkakbIaWeC+-WKz3zKLUjL5gPmU7xbF<zby!>^=I(3!<$-6lm z+jD02^cC*8EyVRPNcBhd6J@cjyoLG(%5FaL0&8whO{wheR=QiZtn%EvcgJGhYg|xg z-X5WKV_8j&n^dMmk4>V8)|7zv=METE#aftulh;*c)!q9&p@Dk>&s^5;8EeY5o(7#e zzTNNm)raeTPt1=`+~caVL*hNVV$ht4nYwC6GhMz&bFVeka<wg<R~^1@k4T)c=7fy& z>yPqXoen5$y!P<U#q!7>OZ@{EE&5o}6Mm7G<BU+TS8d_8FfXrJMysdi=w9CJkf_dd zBr(lsO4=6B{FN4y&(+)!WWD8lq1{R4L~%N!k)+~XmQJ6R&U@h{iSHDBpWfE#VHEY& za&`T(>O4D}80-Ent)r1fT<bJ>Q+KxsKlt@5nY%;g`{F6ZE7HRLn+At!h^8BBO_F51 z_M_BKh_kuYW0m~%P0@FL?BBKP%N)=t8Pd1kpO<-O&-L%@hX02;GWID{9gXOp9rX3< zL;W}G@&B`T-<OeEzHJiwm(8YcLvATo#j4fL%2ut|waVXlr)K8tsr-wsEc5swbMcLQ z4cq?39ID+unfV^Vk-{!pQZLVZdc2G0e9UvdCC*QRvg8&{S?-v5r}4^t*X%U2(D36H zhLwN$tR6RU1pQQ8d#?DK{t1^kKfRxCeo=8H?uy*(=mo03=C11LvpS!w)Kal5(nZQ! z>UE>XteK6=67N3S)+D)feR?owx}U}hRWpqRkJYA3-+0<_?y=+V{gU6OZ&~QEVdmVc znI|llZ9HcBOCd-mTd#Se`u~n~Y>#fnc6~K@&wouQUvRxMul&WoV&7l=+H+61>fogC z!x_(`gf}kr|H6Ol-tsF;_e8B(eJ<{4rKYfz`l9P!Ykr>N{+D^XYi09+H(xIPt@|{2 z`ZxRk@qgC8_5c6ne$|p~Gj@HPGBeU)IY&$Q?*!i0B|0xe`oD(VFL!BPd!{egrIPz% zO4=o^79EM~jm+o2+dX}`;7CxP?Tu)m_d;Kq9<Rvy*^nvzas8xY5n@*#7k3AymF2FP zYFsq&jJdY)-Y6yWQ#_yN2ZlaTzf>wvv2tdt3j2!fA<5DES0=2wr0(cjw8+D~nQ?7z z`QiFAXJ!8@t0qXK&Td|?_j|~WhdMWMi(Y<uB)#pv?R~kwhh$bhbi2Fs^r67b3$Eqo zUA)_$v;Y6fxA(bs@A#t`y}fY#>%7U<-`lQT<-c+J-p^pZzQVWaQahi&Us2k!%Wct8 z<!eW8O1yUXX_Zm`jg6&aDc2FEG7tF!b<y>0UnO0|dhcq-tiSvFkAHS+-_AFm-Tbcm z%)E0gGg5E6>Ce#LSL6TA&)NP{Qad<A=4<4cfCW?6i@V-?Ib)Mqp~6RFt0OaCJ!Grh zxZt+jiR*>MmtI+{553E~!r4`;VUD-$^$RZ(`1p$MCijNFGIPiZVfzp>%PlKov$3Vl z5#E>k1UR*2%TGL>`kARe+Bv;um)v<s8{_#*tIzEMtG+V%+&aIig=faUIsYx{GGz^C zFxqD8n1!E~an78~bdV#?zrQw7F8OuS2ZmqokNsKmWvdul<Z}0mq6J!Zi97t+x_qtH zNI!Kw70}uqDY*2~q1Q7kpC=g|-8)UUYk8yRv8vqpHJ|_ejo=WEntQHEY4M`d&g<q_ zxqdlu>rXyMWJQSSyrbD#4)fg@ot0I>ANQ1%E;S18F3vLv`tvVoU-8+7B(*kecg}^= z+zxxUCO^n@ZN2~S;?|Be=IeGEJ_>o+e4wdZY}e(@0kQE+TU=dKsxsV{l=D^{WDz;} z^2$Z_&F*=2Q#3TvPJL#!d7p6cs^e!PEl<~Eb`wEYeQgn&chVx+FDE`fx-LL>y2+!- z`%OfQpY*jIb_$&uZtuO^cj4cMuj{kEWd)1=T6;M@IZyg(@Z?`&Ynxfr=PCR#lhprF zVC>@2vaG?F@0^z9bBFD_@7~+@_vUt+=l^eJeEt6S{M%<Yi>>8m*ZzE(_Gi6z>sFR> z@BMB^-n``b{Cv)v4U^_^TX}pBF!P=x)_=hG`1$vO0e6#9&2BvuJ#<;*Adj>D<tmYv zO@T|(JvryeNT}Ak9qH;i$Mb((;+ZL#xhoaK6^*La?L6OE@1HU8rbhpXjdKcHxqSY_ zKKfm}mT_)phfBF;j9Zn)#(Nv{(#qKW_SgJ6<Lu`<)x<`!F0*~vLGg=EuQ3Ns`FAUZ zd#$Bi^NgA;kxP^$R!rI9=(gUNm!n#wYSC2B#J83E>^hVVZ`^o8^5#)<*F8ZVtutq= z(fByeV1=5yW<H19^513L%P;%ryNJ(t7WX1S<UWJj?D>bk%hbhxDSEi)+;zW+A3L^P zS}3@k^Z99)xqTuY=`H8FWYkpmpZV&$>)7*4mXp_Ko_fMt^5R@gOtnGYEDrg3@{$j4 zRbT#oz_{-H_kS1u_5Z*5|7hK(_xlPKuh&tQ+Uc4fE^&Xt*BRYidy>3UmT*a4`?<Yh zMFykjwN#$6eQf`XeoXqc=k$ZSAA_&*uDRE?uy9L>+LZ@u^v>7#u<QLl7vduj=%d)9 zz`oh3(#l}t+Q=2bub<5Cd^=;#YS-QFENw5U)}%+DFF&vSM*HiBMrlsTwjG?`gQ_2$ zIQ;SVMFG}z8`~xv?#*UoXI`|e<WV;NoFi7xUJE8IU}?0Fxi87FLwot8#~)wk*6dF( z7w?ueTf9H-;>X7?*KWOha(?jM509H)FO}oHe>dmcm&eaa?v)jv2>M-g`(O3>ZuUoy z5;_-2w?F55-g3g;qFyhy|3Ku8+Zr+*f9G{gD-&~hw<19P+@XzavDMpIdaF+#5}cWD z6}M*B{iq9*y)Tq)319!-{P91g=Z8EUc71(RwSN8b^VKX{{~h}GRKAywD}L8u=B*}N zCl^c-_t+k`AkDv4rfSU>i|cIe4(GBpO6G@`)|M@)S$NKQ<=I6J8&_7C1+^5~9r^D! zWhD<!Yn(m1YL?Z;9;>hy<&&;z++deGyy*Ut{}a6b*;w4Psx<w=@qvjYHDtl=ON^VO z<`nr~Pu>Mu3I68Sm&yK`6-H9OUVZgyRpbA3LVT6U8SUu13m3h(w`h}X^d_6?va?;c zrV1!=COK_oZ~3w1*6-cb!f(>|?EWVAl~tsrXquU3&8HRdaWS`!$~|F8m2A5s@oD+| znw(EXeN1KF@1>h|7wU$xz7z|8Hqm}()S+n{i*MEa{c*JS?YB3(t?XQv?h?4Ak^AQC z?(*3N!S`mfq>8<rcw)jL?!$p+*5)PG<%!+p)R}sM>8b07UF-K%Wp_0!|K%eZ*>wGq z!yBV%+pFW>eE)XVKmNw83-j{dmWX~S4f1Peu)8&T`*t<=4oxrh+!<U;s{3o_Hgdfb zZF=$Q*Rgf$FFteKdqLGgBKgby_wSC~yAvr=U?Qc~>Q<>dXLa&@?#oU!CvJ<!+0^fI zWj1&gvSj`8M5U-N@9xfhe%m#i@o??sl^0xMrv)B1uzn+b|BuC%+etT{OX|nXT*Mq- z|M#5N%td-vZ%9>X1h2QO=gfSSVxqv-yZ1)M+dscnzcxR2_O|)^vpS1k|C^Bde1luf zl#8nGuCB2D@HYSdq}ce_8|w4xa`u0WzF&Uhe@5!hcX!`DletkTqGo=xX0PA!WC?ez zM^|sfu=E<g6bm%Wee(3`ytjLfnSP(BfB8<At<9VW3jrH-S;;+j7;h}!^L1`(aK@T{ zQ={C@_Bi*y5d10s(yFSgZkwO{+jKvMxyr73`ug8OUM*bV`nA$~ao(JjhZ$WR&TD;< z{=V|NNz;+&-4_^d+r8aZ|GPUvI(W*a?=kz00^Hr(JG1OIBnvmKw%z>c;H=4V-=x=u zuJc}b`ERO!*o;&6{x)aV=UwqHem%qd8~f3_S`)R!r&~MS3*FF@Z7*r?`269+7gKmo zFL=<jtT>Q^<5Q}_l-<^Ij^8{f#r5c}(Gl+J%YNTH`KW#K)to)=zx*|RKBe;Q?9}NO z4MmN0<S%qvZwa@$@Z!vj4Qyh&50+Y#x0TqpKQEc_T4k2Rb%(i2jf0OpR8fCySz{)e zwI=p?%$7G-mnk0Iaf~}7@K~vVvFQKF5;IO*P6~hdA}Y&wIpfcmGCryK@o)0~uHB#e zfBXMW|MT+i?=wD7c0FU}wErDPxOcr1+tB>>`s>-NeecCYhZQYnJp46~<x|;Z^LOv^ z9xnLqRKD_lf-(QH4ucmZB8R3lCr&n(uYaN$vg5v7a_QnW!TWtDp3L5!|F*&+!o};b zVwIOW&ri3mt2Xh@e(o0gZoG;1k<7F*pAvtV)4EH%&A4y%f<@;P`OiH4`y%1XpQGHt zTn8#vw<SBNXL8r_RDS+u`?C3KBiFgd1$owY?g!Y2WY}M1>iIDH_0d$`0Ol1t1KKC2 z|E`T(XD0V?rS1M(JfF7RxV?V+-<v7db1U<fSKZ2ZzlHV0_S(BWms5)q>PvQhe3)yu z{+;>v3y0s9vE4iTaHHhw`87uGw%Z<m%`FjVd^T<Qkr~ft`-)r0%FkK$K)Pl_!Ga@< zsZW1jct7Ek;kC!o^Xr^$rF*rUH7SvO{`P5j{-ZOGM7Mf~Y|5@q4`IvGE;ae^dEw(X z->>fb_>p_}jX84D#ocdTm%mlG_;CAUZtHc{A`9e9S^Vza+gI&<>sH|zuDIUPo4ft8 z*FBfjv5?|6j*oly_SGk?lq1v6&wu!P)#k>d35prb=T4O{mY#25+xhr@dqn?|iHmJ_ z@ARxo_UY|(xGiM!yo`I<%0B`}W}MqQA;&9SW$~*C(!I|gUiQyl5pvRU^R52+9RKUe zkYcZ>EiN=Q=E8o_s}a%jMgDei%~n;66L_uuT3E(IF4@H*q;pU761Evjg%TuhHW)3> zXk6uL?)KW7!;kNTz}4kV*Td_s9jeGs%eNAF|1k1H!=V5T&X+;;*AC`r?OlKBZcbO+ zj}@r~Gu#_QcTUSGpLV5J?&(UWbt0}^SG-h%n>J}oI=Dh+&%z+K$N&$n>D<a%{QG#O zFPp{Tws5`8C%@;8<;#1!)ZUt(|9LOZtg-4&%ejXo4IgrNGnzNGedw1A-r4c<OCG1T zkE>OQXn2?y*YPDAl&p+jvU^QlaG_hq%I@<1Ylo5_zinCa<KmBVee69E7ntV;9!T_% zRcw&fHu+sMMcqC#wD9b`mqNeOifnFJo&D^>;=R?_ckPmmR~G+0t9XvXV@JCX``mrc zH*eXuFl51RwrkoK`2u~X$Nj%`gU@54{iTZrhwOi!%lNvT^S7_S|K<BX&QAPO|MO`! zSB#YYoNSl0>b~rA4_V*j2mLu5Z6B{XEp^{~5oQ^N?h}mmiN<?w&o58&(4G{ot9UKQ zqf~L#b2pc(a%SF77_Qn%R(7?u8HO$U{WauFuGy*ITg+77-E{tV@`WBx_@zk3`Jewi zI+nruk~iRmRCZ3I(u7O*bYA;UImwujSd)Ebr?@e%|CW`;Lg$+PM9iF9dvJcT>4v`G zuBi*o#7$XsZL_dwTd%&`{4lMD3m&w8eN!iOAad(}gOuX;T=Rp}q-@+n3a-4ZnXAC} z>t=*2SFvcBq?`Pu>5Fb{UaZ8kcwWf`)%;&idN__Sep^ygkoU~%k6~i%o`R#lwn%r0 zOyBJJz}o53l*;(@xW%ze!T--hhE&b_yr@=KY1RB%`?F`~m0aF=?&`9_qW*3F|NfKz zGx6{9|3Cj<Rs1jM89F;ciYr!R58KWnqiHphDu2d?UJ&=|oEvwHVb(ECCx)hV{*S*u zH+?C4RK(Ktx1mkUf9F+~Cf4_|&g#|w6d-@3HMO_N%rfeT^NMm$v&`_Di~JsY#D%VW zogus7`Kq52ez|&<q#VDsXmg{|n(HyqC%G1V^m!b&?EJLOe`PuW+yB;8HS7!A6zqJ$ zU-*BVuK&$*A-~ywC4XJ;C-buNyT0@0>BqKJ-QH3Eb@{HpKla_|zn?ej>93^4^B3#h zF0Ox8xqbe<nz!|zzCKH_jm_D0=k(j(5yk%MC0`yIylJ;9IAHAYC*%LgpX^1Od~HHY zc}xNip56Gr;gI|eF_(fb?7u=nx>I|D4Q|Q)vRaiq?KH!)x5uSoAJs13_{^_b!DNEe zhHdQTH?KEeD}QliJKx0ogHx6*I=f7m)7j=lqm}Zj`6kPMFJh|Anwfq@+;hLNP*CRX z1Z^98#mPJ3*3CCq5VY~#UiE%<E5_HHD(@J#_;2BU_meSdMaV?+=jF4$x%}eb{%0u4 zk&|h$;OeS7^VYeSfu@LWe*JY-TU%9>_27oZ1@l^brwe)<bZ*uyl4k#N+4k7o#mDEK z;Vt-fb;^D2^C@5Fx2{dM`n>O<==3J#ujl?4_ik|B%5Nh#Yc5}Q-{gsl3j6i<|GV{j znbqz^1+tZ`p&LxL?RL5vW8)qg5W3=m#vk{T{Zn+-sj+U{tT8ug&5E|^T(4cb<s{!8 zoA-v*Y5(emnT`*Ce_FkLnpe{z9&6?+tExmKCvtL{JzX_5piJrc{h4XWsox6EbJrg$ z><;_?G(5TA%>VVb^($ux{Z9VA?oOeWvYe&Dk!w@Ap82zdT(ftz+F7(T<IeMU@7CVE zH!D?f1vi)TDrQyQjRs#LT+WKh*xqOP%3iCX>m+cc{QbR|t&3*xEsT^86<j6YBKS3O zg^s_$%TEu>6%*W3;$wwU%3gUr=b3-`;f)tH>s`NdD=9ckv7FcUzCTK6ef-|-mQKr@ zGSyPgCD@3H8h^fi#nw^NlzsQkop;V1f927Ce&1*BvaOQ;uY-?W-@o1U%=))~e@9pU z{519XA92o*c~f=vS?YF*9Jv;}aCQ%?g%VHo!FyNuzvt{US*d0aBx3n?hVv7qM{%Kk z^G|*_Kj*QKiF)&gckk{Qb!nzPn)lUW!3}ktt1C_vpLt|h=OZ%p`kpU7d%k}tc(Ql5 z=B#NROx&q4kA0lC`Ip>SdxmfEq7Gw``Ip5C<FC)jejj;7_;vZ5ic-&C!E+}+xLUQ} zhb<?eb9+Z$RP@Q2kviIIXRmzMEt4p@d`j~nHRsvqb{B+QyRrDNqd`cJ#$KgI`Wt@# z-qUbnW<g%Y+&4XHM!$GCjFc80+qxw}yjQ=kR8XjK;u7Qb4zr+`S2b_1JQLO5q*T-6 z+veD5%3~>cEVlHhNYP5`_!m~pLF>FfK3|hP|5@U+#fNRrXBo9zS3KYLOv}CTf4$Ly z<ENKjmU_M9(8{TMcd6cAe9ra4dmA;Y*}o;VIgWcg?mbrg>=*n0H}n7R`z!wcXnpSg zn%_5%K0b6wU(D6|cIWFwmHqq%uU@2gu-#S@erL1EzH2S#t2%|k+`PZKN%f_riSP5- z_0?J8_+Ica%erN5Uc;$iw|~O<u=;1S&EIdB=d;l%ym4cHL*QyBYcA$fD`Fm{&%bot zgm3Ovzm8u8FZe_RuLZUFS}$I1car&|y1<h;X{sj24nCi_QdWGQ-SNu~!uuZWTN`68 z8hSJ`oI8A>!D{JMKC&D9!i+y#9@uEil<n~IZtvF`W~&v`)zrJn4}Ubw|8?u#^EXA^ zHUD>?KDzH~cbfd(xHsL~`S;b|zti*I-#+$@|GyJ&&i=g+AD8!i*VCV}E3^2&{W6XE zSGmx3dhm(U;VhER{~UT|;<jb-xkvj{7u~FL^5H9c^RZ)!ea^0@(!nA1R;>#dts~2p zPh2dwYd-6I$@To|N7pju8eRK2;roqa_H&ftYkn@}G-PDIEOEKnntj#s19k~Kt+Laf zEJ(0E<<;)JEpXqKme<YG-o3kj`>*rYYM#B>A`jo>-0!dy+Ujug)lp6FSLqy5q4W5+ z`R8P%&%F4zeD=P^%|)9u7D@W;=Wg2FaV^lx-y$V!UgM$7UVjfPH;`%j@yDWmecWC{ z%WDTuKa;K61-U+^M0|$ar-cU_5_;xlT=CLOYONDX-Q;;OtF~{$N8@R7xx%}346?XC zAFiIMy*y0n;hDW}brmlyOHxa*Ns-Gn6T2;w8McJiC-k0!_;Q_yrs%^5vfUQ?9%mNO z&~(;~+b-d}QNuxnF|$~t_F>1<!dAhcMN$7nZoU_rSE#}HtV!&%g@eKO;5GU!R@XkP zS+sSdYp-$6xmecrSKAItPyYYnar~zI+Sm5m?*C8!&mZl6aF1xR3v<Jn{nHDygO^-; zab)5S_8z18wh2`Wd-~q@KQf<tuOndHqP)GWp~-WqB|?fWL~x1rzxY<LX#pE^E8qKx zw~{>9?mTnMm8Z9V*&^eE2a@;LW*W(|EqUzV>hba2M@gUfmj<dYmnl2{;}P<64LbJn zsm7V|+T8rO{ifYE_75MnR2aNoxaMJeryj4eZ%X>_ze&@li_g9o|0cce*Luq{@6(L` zxv$<I_~U(r%`I{L{benF_xcwv5|rl-^_sMAO6lv#6BA^dJEfO2N~KLXDLHAw%RF;s z-xb#kxSktNo8UW}C#1X7b!BG{)9;(p8V^^`mE^B#tX4^PpWCH#?i|~Mz|Ni5l-kAB z*Kxc^X~~|*_5Jmo4QDvw_k=w&Ym0HeyI*a)XH}?5>|u>*{%3z5fBr|X;Ks9!e+&+- z`<u7%zT`{Yv>eXaeY0IET)D2atXpAvKI+-a>&B6SpL@Q0ukjYi+LHPIb;ud7*D=dF zwttqg@>#PvVy^GwfYvWA9CJlCSx3KCdGjlr>*mDk{(o5ii#n~IvprWkby4-aYrXxo zHJ^Q}tN&lSyvC&8SiR_c$9qfNtj+1OHca7Mdc#Ib$MD7XHDXEr?2c=U-&dD@op?9q z{hO<4FZwuC-uXG_7gd}+$HMEAA(eCb$nEXd@9nM5|9{s0SN_}ofB*lI{hhx5JA2Li zxfy@{JuZJTwR~x9rtX|$FHGd;ubs-5zbrXqY3o{-KMs9K{NmLgKOUcbd1+<%yxq}D z89TRKKA_hmC2l$E!Y{sa5hsrI+t)qoJ8*k9^Zd#!4$FG1znc7N5Rg9hVq&2GD>F4Q z)2jy_)_L65R9jxPka^LPHMWcQJ`sQ9y>a^^!HeI*vU_=X-U+@i`}k1kkJ+46tbq^r z$t`}?cFA;+T=PnUXt)2urshkNzO0<=;I6wg@Ib!HcK^3CYj;Zin4eQOE&tD(XDmOC zExQ==ATR!(>-P2XY+46m%)h4I&e#&nUgCUxc@dMZ!^($?GIdHG9pe&nuZs%U70@R2 z{?Om|Kk`lpm-4=7%k${+(_X-GSj^q&tLhn{h0DWs%6=7WVl!E%dhPVnlFAu;g~l&! zIm&we%T>-lWT>UP{dn=jWrr@f*em>SwQ6*pQaWXl!_T=h{S)>*|CD4}n$e(Fe=^9f zVz2kRcE5=oMkgkkww9+a*Dn`)!*ftuIjGELwx*M875|?Yoq4ifR|!<SNuB%be+ldg zUODyv!R#-$bq?M*InQT<oXhXtdzU9ZuT1*-PcHY*1Jil??cIf!?71FtO!DS;Ddvwk zn#<F=4v8O^ObOf&;`Bj#U!>&P7V{{tj04A3nk_u4`1$<o9%c;z&X1}kYkhp?a2a0V zT{HF5WPvNM=6q-QT$Z2l(dOsAO@F(uxgK7=NR%~3O;tQv^?l7DE?KK%D>@g8pW34& z5_gzk?d<mNU-{q0|GlW)Z<ng#n0@H{@i{k@uicWApL%n~1pB(+UDsp$le*+Q&uf%q zI51qx^xYcYWyd{H@%h9#!7aB!w>`+-IsZr0rS3~&hq(1zJuaTrP?+&$apxEQ1s^h> zTrAM2luK$n_f2cz#>fdC)j7|(cb)zFDCxc1@y*Z8ztt&Z+<2+9`atp@Rj$7!@#z-p z`j+g}-Bj#Q@;?91DgFFo|F_nE%KvvP|Hjp4EE28%_Er3>3V!!_Uej4s9&6=onK>!1 z4+a<|>(1D&?`okIasK+W>cHto_x<ecKlH<mx7qDS#UjRYtCoJB7mzi%xc~mv67|-3 zt20!O$LsLAR2_5j)vmd}Sj}5iUc>XVRkM@4sm88Aj!CbBl*G*|=ghny!dbrF>-xmc zo^ESIoUH7)-_M-V+rP>oX=cVYl|LC$-u)S?ru@`7a6*LTQ?2H^y8PMCL(ZMEQwmbu zu~~+>(C>$=Zud1)F3zGg>D8-kHBwipHptGs$okm1=vUA8CsR6w!-Y&I9Q*Ob%TwgS zn~u|4A3fh`J~2*y@_NJVcArn5e8})q^YFPt4aZ}49o}&N&fdc0E$z*ok0(5~`F=6! zzUFMJ-otU{ewfai9T@-OweOL$`*$)ftM2GHFxx%v_vZB7z5Y67)zyjR?bWr0$Bf@c zzu@|8_i^&!2mj0M|8@SoT>t6!xBh<@?YG(gn_Qp!-hE@tsXb@r>lt2iI(#$b!r9gn zHmVbi`ZTL;E3WB%Q`{GyaA5zB7sp;E#J(1LIp^oBcN-u7TYIPc)UH6;y$1shpUUMs zz53OkhmRf|dVlrW<1c4|??v;m#D}{qoOn**aAxn{bG*lbm=3L1%Bfux{<v6Wchbv0 z-H$kp!WJ(mP>@YKIJw6Ck3y{bRHL-5o(rUvUTAxN&fxL+`=#2Me~X8Igf5d)Rawf_ zOn>v6TYF57cwc&QciXe+Wfn0v`r~gt+i|l=Z2F8R5wGO;-#+uNu)nROt;C^cTJ?52 zJ^!mOR-es`ekpQtvw()r|K^v{t#73`b>|0vF}k(C;N44)fCUR&j>PYg%Ve+RiduQr z<cr=CR<Y}jY(|V9>fe0tyKf!nzj4R<AN>=z^VIG>nR&Rxaml2t{oh>jjASnf6|&vU zTQcdMa%hN+Vo=r8Uk+|JS|>Fy-ix?>bocQRC26)p$qKormi+(qH%wS-xyah$r{Bfe zWT)KP@k{EkXJIOr*MhT~zm=N5d~#!<V)X3`?cA?TY!w;g?t%^{EV-`N!tkVtWipF^ zNVMjk6}$==w|~?aIUl_D+{Vq|z7CV<J=fQh4|ttO;63bhA+74bZ>c?+t9kmf!;V<@ zRvp;juAj(}XcTB<q3M%(WQhacK~b*Y$JL9OUNT-(`+x4_k{z@Eu^KgTtxl~LezHY> z;^vnx+T#{|W}Me$v$f$#*;5<lYbmL>=36eG6FSM4^+nf=gpb#+@x8eBcg2qCil=^J z=eyIFi1OS`y1z%OXo0|ko4p)T;o|!Z+b@c$hwMAvo?;XBz2W!jsce%x1D7gl%U<3T z*TVf^R)PLSpXpAkH1@KosP}I*aan#*C^>E7ZF&2pI-O!s9M^=Zr+b+mQ&Q)dvL|5v zv%QM8qMYvx_|i*!F5Rd|J@Cn0@IW9#hC`Tpe?s==;zcdNt61)yHVD_dzfIYD<NW_W z|DVwNCLY)G+5YG3`&;k+yVPyj8&<FTVD_x#GNpH&w#}NtbJn_UqvfSLhYRMP^VaZN zxpZ37gF6QQ_J4foep|v^`SIQ8-{SlK|6W*}a%FS7QM4NK&d)sVDWMtSwryd>%MW`C zUOl#jb*r9lh~QMAcdh3Nzi5`tcy>~V@sRG5n@+uxvjR&xynM|s?%j9z>YFYz?pe0` zHk&UEi*RAK{+_h%k-fCO*qrq(+x1`i?NNVrL`1m8?dQyC)saT$_m<~P`4;}gv2F_M zfs%df@{TO`GPfG3Z`SULdi-Y9zMifrsas#98U4yxSa|uGM7-7c4a;(!ZmjsA7#E?T ztg?K`mT4hnFV{GymUQo8O%R--l_>FWrrAl><@*)?_q4e+7YDM6re++NxY6K!)Y>f! zcSF5mzR$b0QswXm<Jp2@o!gY_^Sq1${L3sYRP(py?VjNJvgN|hl}p}Bo{G+mpMSGE z-9A5DT>kd!?e%%zmxter)4itrMCJRHXPen}{r}h>f2;rBr|!4U`*YR>H(k9QxNm8& z{rzk)(KB;P1Ot!0*GO4rs8QATctK6x)un;b+a8|T@g-^hVTBJ&&2vK!o>n~8|LT8f zl)d5Pjb*zZ{4`%&ck1g>@q04gn-Y&Kn#MR&{L+LivD4;EKcBwm__kEd9X^ii>sF+0 zF?s5L;c(B1$tgnhO8FrV6E0S9+AU9Nn>nd5RlsC6tIg5v%$ys`MVS92I|!@nx)4<M zYR!*sQMP^VJC-g#p?NHQ_vNDL)ysD=C!hDrRx03n7PrE_tW0dfr+XJB@gIHHQ{5TG zvuBUp1(C1Qi}%a=^rgyVpGt8%dHA7P$eQ)%4W`JSDDGZ4ZNl}Y6>C1-_g|>J^i5Ww z-^PNh?zLNjtbBKUx*7RA_0Lts?;*ln@AA2ipL@{0Y?kDWbpNXc^Cl*I@zPZMUtlE| z#e8nchnthPCr{_Nxm;#KortObn)Vp6^RBax=M{6!lqnL(=lS#^e{#>ms^9ZoR*NrN z=f7h472S!YE^k<h5}(>Gx!$|pwv@2~x`{uL#b}mJn=F&Bt`CQA_(GZBi+1}tQ-k<Z z`Fj>E@tGR1c+;A!TLG_jiHaQy-nVh{vI(U^6I4Z(iPR-@<#zd9;c|DFYII-Fb;WGw z1z&aeCQtabOtMH<LR2Dr`uWLIzgIJS(Xo9V<$c#Garr4hcay3ET>gnBESoo-34ix@ z$}x_`2eib3m#hhwP*0z5>&}H6%3CE@F*9CZsBbBc>?&7YugWsHYoSu$!Zn5Z4?7kb z>MAc6sEc%p-*n>Tw2gs|!kKS6Ji|}VIZ>%A82dsncgZIO3FUI%x9<veUp-Z_ex_Z@ zlqpM6w6xD|YGa+MaXS6ku48<&Cump9<dU2yV#IOy^I1bTM(2HPjU{&lj;F|m7QElS z;;QlPeLKI{JUIMN@tN1lnV*Y~Pwa9}>Qj#YwE2A9Nj-D+Ljhj@CddCSJ@Aiz_1>DF zU&Vg<C(1tNUwk>E;J}8@rk%XHJD&xm`0yRJ><US`rg|)AU)*7ZU&ofq?`}>C`TduD z|KIX$^S8%L?qT^dBY3V1Q|+&w!hfeWPQ5tolzISblAMLHkw>+}fn=Xd0k6o*&l6k( zJ$5b%FA6g;4-Q$(ermyP!=4kT<(}NX!MA4OKdmXd&D@J#{s`b(`CgNE&c(uode;3l z33gi7vQ93qo?mz1<3%N<rOrE-GnV%3%{7sDkgQPqYo@W*_T?7KgARoF#-EVai1prc z-Q;|c+r8TxR<HM6(|PV<OU#FBrMX5t*4KAPT)%K;*`bU_oQs@GmOtqHY8Vr+?ZAiZ zxAWYl%$c^P{(xC*M(fe0<wg5gRzJM8-D|mKU~Z#{=aiT=z0x78wi*Z&Tf03;P*{_5 zT}|Cz;$~4u=6jK+lQza4nK~`gHt8ylO;S4Nby1tjwv^(#KF1E6n7V&kY~{Y%l&@Q( zw$~^B>3jOR;D`9L2z4Wt-}5i#EEQH%m#Y!)dsytTX^!_x4$(zEf3^xdi)C_cKL6$7 zp|u-lH*bG@C)(=VhJWVL=cOn95?oqe{rkY91FS}V&tw1GTIQ7ET7B|*+u^j#cN1j$ zckH&#$quSCE1Tz+5nQ{#=XZd~43kUcm+ihR=-lZ%VUA*_P0Jjf`C0s~r_xNkKWuVJ zUU#KHMnhuqh0iX%rCU$Wo>2EP#bU?2=2|-;*~1|#Hokesa(G?u=R0h^CX1w{K3|KJ z@H377bMp)@`+di?GZLRzvhI43xh;Cv-#h;K_3yXcl<8isf30@o{K|`OzP{dg=fM1R z%NH`=O^$W{xZjPrZjQ0k<YQUiBf5Qd9-6rD^VJ6pS~iDI9sX`=k^T8Q!>w-zdK3Sv ze%7$|no}ESDI@%Hh3j1nd4~@d^SmZAe4TS(@vVbX+8T<>HWlpi&VSo_uKnXb=JOf? zt4+`CJm>axiiASx(&(lz@A=I#MGhY7)9x*)Vp$^k{HE@;748#{N9M1vnYPHew>7qP zM_c2z50-NS9yjb){`>KW1fOa5y0Ffb&wHifA4t1TH@_#S{EEXSw*P5W5rfSp@4(3o z8-8{F=<o5DHIjHGR3UlLu_bri1Ix<qPL20jnVp|B>`C1Hb={7iNwrPezWXhFVDNtG zsr5Wea=-kJ&Tb0ox^c@w&UUt3^p>^F57#rANy!D|iD=r)`n1N-{4-NY!;RHH1dcJ3 zak#2SAK2ItaI;a+@cKsHXIE72Y_^>kY2<fs-)R<C_bt(Z6Z>pCJ=P@ZbM*!+<17)g zd=s*cIqr_}rH&KqEEAkpu^4y%iSt{oq1E;GTkX^O#QHF;TT+{6PVt?8T_fwMx8KoI z&vzc)b@9e|jy+L=7q!ZqUr2Z@pK@PAMssIU(Clx*XHQ1NC-J9TXi?Bk<CHX!V({V> z*m5o>>`sxw*-Ix(H|xEx-!5q<-;y_@{JlJf+NE0`Z`|QDxD|CbM{v#MWe3b8?V^M) z`OFX0bxys}a&No&<NwcoRsH@~{CoEPpSHK(ew)Yl;p*z^H^d$Hc@{SWJ*o@PXlXdH z^>CnVyKnotx%;2QY@M{%eM_Q?$NrBmi_6dOE;;=E-?#glzrWAhYkL3n!mF*Pj@&la zx^U~b!!?gcGwscVTFePnuLGi_dpDSvs5?Eh3Y({%D=eG0Oy(r>O9!?PMSZKIQZ0co zMfO&itb4M9{%k#$RcPYs^<}PshBR07uS!M!W34YVrnwwjzEF(&y27Gwi~K`dzHfaX z!(sSVYW@3C+s7MsE|a~OUoSg#Tj96x{qC=WkDR>Z8KjgY{AzpaLhmW!4nhHMynIu- ze!Q3ba`V5k<do`%>O0OKHRqqkx2O73metuM8P-2bv}W1%d^VYJdWw|UI%f;>4LT0% zrb_VdH@`GFYTmU+bKW_yPWv6JaD7(~(@E#EjlX%A%a_*7I)AdOc1GgU&(%$LXK7u# zT={T*@UGb2tr53>zr8<KIyJfXRngOqzDp8IO)jnZ5qCoOQca>?xkdU5kJU!|j-{_N zJpZs~=Hl60VmETQPFr64RJreZ&x7mQQl1)7%U->|9v(iMS>$N={eAmOclJiEW|%3^ zESsI3@t&=@?juJ@xYgrt&%2*rKestQ|GwpZuKlxDuG$meG54{zouy1;>^ZJOo4q9# z>B`QnyK*6E>paVwMop_Ww>-_0-{50;SM9jli_#JXmevyIi7p?$&g?(@(@Hd>yU(&) zx!JAnE61WYW#|9?TmDc(>-MaQ0>`yUl4}f>*=ii0`$;iq*EH^)6&hT1iKorp&EJ># z?PTgk{rZ$|pYD3Z>U;~n9rpi<`KrHXuHXIlDdKISE6eWN8Tvo&^?cP@@P2}!*`>X& zon93j4B`LJpmg;?W)WAX{^g(IM-^0e_wM;~>4Ad8uB&<_ijvD!E6NW4oOVS>_Q&4x zWldGC9%6@Qer1|b_m1=Sdnx-DBGsFj{WJJ&4o|O%<!BbNxBeQf(0A>E@~$Ucp|dB} zUef=dS$HvTWxa4~;_?8;fH_rJmyd^VSyVnx2(wyWFs=Rb$3qi-ohlKvjx6EN<}aBc zeQlO0gVe<2#fz^SJ+rHDcwU{WI3f4i#QE!v7l5aDLSNq#5nWxnib+S`Xz#66ckVA1 zeejAYDQ!a2=JOLmMH@Qr-EHmC+WY>o<?7Vc*7mm+t~m6-=Dn)VjXm?CxsL1UFJ8#B zLUC8@%MBb?cb?kN(x4TbvS^nR!+X0P29CpWKAq>a{!BC8*YiMoQ(TM42PcQt$4$$( zPCt3$P3tLlw}vOSqEjmTv|l8xcRk0+q5JfyrdADKqRz%Cy~jd05<g|}v<cc@zNMXY zH+lXp&&cc+uGJRa{m&Z?3U?iU^*yMhNUpU_RYc_Gw9n@q^XIa8bawEthGm>sB&a2! z_+q6~nPhp1O>2^~y4ymdRMQvCUg~=;1iTZyEB`(%QR?DcX#v5G=;E4bZ1FvtL!|y+ zUFP}Z$M*Ag?$6J;DZBUmpYHy+iogS(=Ug~ty-aY+o3d{=%j*ieLt?9r{NFvl{$1;T zwm1Jz>+dgl@wcwu?i(|2!sf&irZW~_T&Qs>;Y03=X|5-CEp7HszI^QAvZ~TAOyB4H zKkHcd{Mi5dcYFSCFZ=%?!T!%d{>UdB#$3q(Tuj&17Ab6WPmA1g`O-=E!|W5)G|t{! z9oeS-+^BF}-8Y%dK}*hP{knAS8@H@`#s|?-=fEu*!ILH=>#&Ev`?%-rBlZW{)xo>f zV$)p@S@p^G)H|Nu`b)bqXm(HiIqxsGQf91hP#5`fEu?z!^8-1n><^eq-(dQ@)4pJJ z>nlNXzs0imy`Q(8ym2wAEO&`aukQZm)0MoB{a$BwdWy{IglFA5R;BJfXZvtp$gH); zw>QPGpE;xFbkI%ZSKs+4wST+)QaDw^GI~Gz$zR=bUx#=1$2kSvfqe~TPb&P>lP(=| zQD`yA?t7l@>o;M_(x`CP_c}c}&2v75^q$L&jP={`Cq3_Pr$^V+W2NdsdW%1LhIcM# zF5Yxu!t~8d=lB%EzRgMR-RjvKX5;%?H@%sO$)Ie_`E=Rb|221|o7fk3y!!gpIDT{a z`}bzgpI=mbd*i?3`4(aJEph2_udn^x*IM-aXt%#v(fvE$j$cfDAW|&;{-xTMbD59S z9&t{wmCoI1thLu;;yk8{M>l8LUJk6u6^ymDZ@!cFar#cVrbv;AM<fD6EV*Q=5)u_( z>P$(##c#8Df}2D732A=!mc{X9+wRw<?EfPFcX?TL&4&GdPTFrQtxZ+7n#ZAY_w3Y7 zG1r5B-cc>(h+lnn<%T;sMUO7U#pr*#9BuOA{=W^k{qx)p+Q0D2FF$)P_gusLn}7J$ z%T0Ux_3iZ3>Sw?1U3s_O#kNE2*UI_-*F9*gc%}N2T`;}R$138~Yvt?yRtfx4A>QsG z$Mzdsi5Fl>wfWxhWvQLAdieuQ+lhgySHzZzYb<5qi(zfsaJD4p+`;W}pXFTpEJBX> zGs~ah`dXB*<N2n;Cqr!`4o&M>bzk76UF&(V_laD2)Aub~=NGB%`H5F#w{p^F=6g>M zYaOgU_PVct+uf`CD|fiU)9E~aRwxH6+z&MG*;Mj@WnQD%$&1Th7smMO&2%qo6jVIK zz@g6Xt7(>*91`*(kVn^RgSy21?C>XblUPE2P4Tu^(0}e$OrXWg1s($PSE<d?IkO^S zSB9>M(~lT=tC{)M!A^=NR*9G|eq@s-80gP=%*1D}>EtbDoNE@nzq~ps%Wh$Y?X8qO zO_r>$Uz$C=I&q<pn-+hu&hnKD#CRtLgy=joS-(F_D@Y>6W}@SF#)(VXV*}qQG2gIX zyi+5|eQDtLjb3WG(^&IV9+poQnBK%ai-T3;U*bOFCxP?1SE$^7X%urqO(?ML;F5<2 z->Y`Jw-p^!JiPBlGvBel+Q<5@hu6vdZwYCrIe71woYAXLwH<SNE){&)!9GvqR<6;N zUMBC)*B_XKyKeo#Q`?kXTVMU2^|#xpvzybycZy$Ix#g?Ha^?B|HlH_p{Qpyt@vr%} z%lCh;HUH;7TkzATr`h>G%WUSvNZ!fqYl@m)ti1oUBr|`_^QbxTA=9JX=50u`H0NP| z-Sv5oZT?MP%m3TI@&DuN`QLu_<i}?F{}VNp7oPcWrqY(@_hsLJR~<)Z6!k0rb=kSr zHSLAW-&rDy=6#vFrzuS>xV7M%_%e<TzHgP%^Mv2BDi!ri68lnkEMkEQud<RP%l^Es zJpGN^Z3QeW<31!>F0}X^w<qV)Q8CuL`CXrlcp}6kd!J6M3n^RT%WcQaE;n_J=B_0# zBsF#7#CyWpb+Y}Z7`qE798W9$`sRVYt*n4&Sl6!1_m?-e{MKH?m2C7P?0HVrwmB?w zyD|ltR%YB+P4=2ouFP94BBXkxbI&77(fu<j;|gB0#YwTXa~+h`<<9Bccg$3@Yjd$n z^R=Q+^N-Ft@i8h%_e8qK|Jb6P^L6H4u)VHgwy(gptkTZHooDgJI5%f2wx=7f*}uHp zbS`24d>_~22C+|%ben(p^HpyCVcUd?6O!WDnw1N;RoPj&Nli`GOX-rXXP1AU_t;SR zYv!J^>gqc^-x6!yA1dH*pFG3w{M>_8p6&<l_35deURQPR|L*egC#-JDKKC1ISkGQR zX=!kBACr59nC_e)z8xJa-(KL*U&Q{`_WerL|0^%clynE_SSOtj+|j(bp|8^7x#-+; zi<T|1IKAqFwR6=2r+qd1|9(HX@7Js2W#6B9JDay%Ts!aQzgnqo84JFz$7a6r5oXZd zbL&|B(_?p5TrJpn|K`<8Z~EiQe?PqbEVsp7`)2#^>fL*@za4&CSpUU!>*?IR>%aZr zJGSL}lz-lY>DlguCEKRE?e_a~@9Mporc)0D_bqU~?pj{6wt&A=XRCI6yPPbGp3lK) zA9pTf)?4$raqnKG%!fT<?pzwb_CBBKl;tEg)5QDu$B6tTd|xcgd+&$y_G)f;mJz!3 zPw+uIsq065S{L7yT)Q)KG4J`;KGiRMzp}LaFzi-pQ@xn)b+Wi+LR9AE&JKpe`A=9g z8#kE;IrwH~Iap4acV0yH`PL6NkJ`OaVpzVssqIQ2_qnvSoAZ8_K<?SSv98W4*iC5N zte+n{R?O#-JLTDF;xzAN<ytxAR}BxYw>)!7e>c&d)sb&0U#QP)?Zns*`I4_=->`2` z*6;|puv+y?s2k(elx`=*g)H7_OloODj7AC{+xz$XyOr}dXMDWH*tJJfYLeW~)T&*3 zR<$j%x_U@izd|C!SahfG<zEI;o*H`TvvVI<T#s|oaMYaee1Gr@C84JiXMC8o?qd)C z>J{oXxm%xXsQvsypHbC*t{2C4KbMw8CKLZJ{TmkI+Ld7Q<In@%>7RB*ad8+{o}FS4 zGdX<L=SR0zb}STNUgzSc=eBhF7YCgV38O{Piz;SxtUMysCYvVo!7ZId#@RBw)}3ua zq(HlpMr*pR*rK*5*^Aa%hn#2Zy+7sLbN#%W?XK^>i{~0YdG9%YQ<YZl|NNU*zfOI= zx9<Dr_m)fy$Np>I-)z|a@Qc-=P%GJln8{4LPJZdKWQv}|v&`mtNW>Donf---zRbJN zrnvvM$S!~Tn?3*UW-xy{SNHw>pKr@f+`aYp?%ux-*y~?*ZJqe8iEC?}s~<zJyBkZ7 zgoJBXThzMFXQFNDJ^NkEW}MYve;eQu{zBx?Z+DGJv2GtVk2P;wK231Oq0hNJ4nG!z zpZ2(u`6#e!frgQ0ipUgc_kCYDO&@!!xXMmkcd%c7+TOcY@^el-zn6FY?8;61HYe|2 zuBfz>-;ZOt!KVWc3}Xd9zWWo+7O|`|r9?74d#j83nZO!jm;5m9=NXdc=I<5XVk2k1 zuh1s)8t=iMZ>O2GPn~(rbE0I$qxmaaR<TZLRpNQEFGE;&$q9Xt##blfKdzK|zp!C` z!XtO@=K4gb$b(X5Qgd8aG{{~LUK{^<%k$tT*Cw@dD++vxo9x9nIn`x@`rB_W<-|6r z>^u5@)jv+I*2sy)4w}iqQ3o$Ix~%s8@axc>%;!r@?gUJkAoxc~PW#6DnmPl0jX%k6 zx{RFDy6c_GBa-abtxNc0duP3{zR)ga4pGTa+aHd+b$1psC}dQ+bl=}s`To<Ze-9<B zdzlK=pU#}&T6OK*BI};Z3j^GopT+JrPPCPMd-nGCW!|=@j(QjPT{N?lwbRjgQM1Hh z{mY_z7iX+)jnp-LlKxcbyXJALOp80FJw>nHTqr%j$N9k9dtLYk$9cZX<}E$#Sgmqn z|ID*~a$A$%{Z81w{Brg0SKs1){kc|`eZp71COO|r(PxI$%OfuxJ61X_HdkvoY_a}y zQR?nozV+|T7XSZ}@cP$-*BdqpRF_$D-N;+l{=5A4=XGy4e4KK3+ws%is<X{!cNri1 zP*Z&;`@;*SxlFB|M=xJDshRn2W!R}tyIk)aS7Q$Dvw6;19Uop$`6qU|zq#f2v%P+C zx$?K?D8J5LHf5O|i_{yjm)bU$@407N=-ts&N}qAg{>82pb<LT4%G>`Q$Y-9oaZ3N1 z?~j)xJGo08Y<4T=wu!C@{IhBIKMAYM^9kYhi!GG>m+-vmI<tD()Tg^%o#9Onww-%f zKKNCa_%j=cpbcegzW+MD_A&@oa>=q@5cam1Ibqf5L#?Z#4{q6|GsP$N;mfL!>%vSA z1mm6yglm@1+&{%~TSCT)yDpd8&o%bM>8M3Wwe(C;bW1%n+n3)=)Xv7qjiJk&^VR&o z11%BhE^FEk#@o#azPMLH@}}GlwqnzN>1`jKKIX-K<rDe&pW&A8b5{vr!Iy=`8NY7) zsP6o}V9x2AK`Ym!hNvidt4e5z?Ed)M?!K{xlmkb`dy&>BPnPW9WV#`7w(}PATraWt zul469+3)C_y<u%xZRuOK*zGr~bu{YvYqw_WuZ+-a;$U1{df1NT$!Y_wz@Uen=QwkA zJJ$<Nm6Fs8=4G&3Eu5IB_2q_fmg+4oqkhNL9SYxdrre&y*6usCul3Fg+r5vXCNmus zU%xVGSJ%p^nfX66Rwk+Pa>Op?c(8l>_HY0G-W5Bz|GCJqy^2>tKfM3->(V^i>UYQf z7ci|^K6&q-M^mL^o0|KVuUY<<Wv+|1P4hIaTQyZo8=LKy{hSu@`sbRRlQZ@khjz+y z-BOp|f1^&U{qO(7_y6Tq*IW1e->v)Uzj)5ZtI2D*&KJa&#Y{JwJ5lqJrR&OsC08Ek z?p&EV>$cQq!%M;mn`;*tZthuSu=k{A`_T!fCLL>6z2Eqj|ESL&<7Tla^^d{xmN%Gc zzmMCHB;>-pSHx=DfmJWkG;JQ=`<OiE$lkw)Hpg$g|4aJ6@$NgdTrHDd`Q1p`yp>;l z!p)cor$vqyI`^+#EYaHa!gqP&g?^h^9UH8DU3(cWtu1ek@Y#FgyY&4XyY`hmUpVz| zib>&lZ!2!^H~F0pE6)`M9$BSse?c;EUvW^2<H@TrChl%4EvCz*@A1EHJ*#N$V~sE8 zJboOR?5yV`_9%H0x1=K9tSM_QH*Wv=-gJe@3)QYL!~at^Eppis@c#0G9~0iiF7s-8 zwP(p6$6QH8zo26ov7zcmxvK<uUuYQBP7i!o5?Xx!)DiazjsyB4ye7dZo2q47Uxj|n zU#EXIBxMJ8Xj5@xt;XeFr+;$aD6pD0HK_Df#j{<K|J5)56siyBitjs}5O7vgPWAI% z{^QowpMTB0uKh7jJ}%y2&%R41TbveJ?0)t2-ZIm<*}NJ5TJ}%=*WDx2$C!PmssGH{ zjOLacv5LECj2)jZHQB$u_i~Gwh2fu!D+^{zZY*k3QChqD^5p`#{-i_4FH2i*HJ|;l zc8g10%IU*OKfQlOM9$!UF7WGk(D%3pUy`<4GW?o*SN{I3yN9QjS=BtvWX-MJX~`;Q z*8XkVuis}k#O=RzuR6KBJpb*#4Zl2PTeY+QcI^8b`^n7hPBr6uNyqjF><<$h?+OI3 z5<g!s|I*n7yZf%c+xh2CeY0|L{l|^9&-4HIzkT)0{@5L^T|zsIubf|z^2p*i|Fo@E z-xhp+vFvD4d0B_8<12<{`O^FqoDElcg#4r~+DCDUEuEzs_mEjxZNC0f#ftT>6N9VL zm)r54+p(Qv$;@-{y`~d2UaL(B;NQ#nWT#7Ef_vMIDf=SRKKHZPhHrH(VEMJ8$#KEn zqfhn-c?oA<cT(4$$aT>%``9`m|Lco)%`1DdF*f-3HlxF`#~)@JX+#=y9^3o;&W0J0 zhb{$gbk1eqDB1h2UNCQmz%DcC*sib@s`Ioigln<SJbu^b>Yl}=^TQYDO}i-F+uF2l z`-JIRPjm=;wz~LYLeMR<^{-k@y)%|<c_A0HW2vBk<(hyUf)2?c7q*0%O!MyEv*M8H zF^lOj?enr0P7s^;{_a-u9;K-*VMpH@cyhD)a+SQC7WYrCt!Yt?+tK^Vu}yxWw*03S ze0uqiU5c;GyXUm+zBEBWerK0c=k>B4rE)pV6q#owT4fl#ob~DMNRF%?*HbyqqfSg= zh<ux{K|)k6{7HA}KAqmvOzBg^e|G&%n4fiNu7E~u+x_5)jR})}#TCWwK5G2yNs7gK zE?Iw`DkEXrhcQ1sU;oH2S0AD!H{W*Wqc3mI*9ls#H=q73`~GiV^KEXo4xHAH|9w8A z{f4QR<f0d;>rLkJC-p3;-0GsdlEp`KV(XG>&GS+1lMlb!_p#Uij$`3&*MI;2rTw|T zuR5Qfpa0wQyg%D5<Sz+Yb3dBu@%Z8=pNaPIB8oa2%Fp?4>6siPvYGRIpPt*X|EGE? z_i;U#;BeX?yt-&Z?SlNz?}e(xEmu5Vf01*++)4gFqt;FP5a)Iz=h5yv)dgxI>wN6g zOIQ-lD!cza&R?Ik{{I{GZv}UzJpQ;Q=uoF*1fTldcjvftsu~lc10+s$%(=+vR9d(B z=bs}7-{?#@sWDq1;n=heFJ6W&2e)O{WWVwXakf6Hy%DZBr)phh@{*m()6IEwyp=B= z(hNPrbnlPjygeH)#92IXDQ~$_{&Z2+ypm5l=Opl%oR{5yw$$p<gIVYH#W&0=zq<It z)}^1MI@XK6zAt<<ttancgx9kxFV8({%#9MaoSdk`vZ^~{$)S&58d&>J)R(4z@bH%W zd0sc5*6r5RJqg=qxJ9l?bdxLLO!rbMxMH>0h<|!tbzUpap9c@cE}8t`e(^yjH^hc% z@1;1&EeF@hBrWBe-c}R5ENr5&mu``|N?eV`B~hL0r_cX?l%d9b_n6L%pmt@q*1ud& zHLkVwZGRxS`(&U_OSt{yzZUtI(x3D!Rs8GtieKRikBUU}hD|e)>gLblJs!QP;*!*t z%xSq^h1>W(Mt%NeZWG+f`l?IeNi@UJxo^sMs`1=d@M2Ze-j_CBc5mi9zY@qYX{(jj z&YN|8W@m5PPS-tE|KsGhH-Y8pA-ClXe(&z}(KmPhX7F$Oi(lW)7%lpH_+)uS?rSky z`NuMwE^z<nTd{AsOw7;9@9X^8u4w+~Y4SIbao=^oBVOX?^K<nXYuc5Aez%soD5iYs z5uA~wZ2RQgzc=y!zn59;F?sJH&}d>Mv{zuI%ns{U{&yQ#82p`kd%1%H53QM<ROvM9 z(xtF@D`ow8f`z-R7$?}9Z3%W+_xGNxQQ~iF-*xkx46mhxcDoA;IX<7AesD^j=M?3+ zpI_b)x}WYV^{Q;gjeVCZ@Aet}Jh59l>il6z)3|5VpZTvA78D6Hsg>?J^q1k2*wJHq zIkwrx_P+&93GMR!V5=EqG~vt@Bdw`=PbX;$ZJxbKYqM-XxVJFZ%0i39dJRAKM$Ipt zulT1y>qYui>u|1APA7vj$7g33HAFAJl-#h&OJg;Yev6i*XzwNi9i>C^3p@=%D=oMc zx2k<Jsf>57UA?bPb>79p4`c)T6924Fol<YUpl)u@)dd}vpVy1Am8Ui?E}GS1_5Dou zleG)2G_Na^NW0xtHotD~ej_X*!pr$Z`eshnUEe(qx_)u}kR&1S(#Er$YybP(t}kjH zc76Z6Epwy4*;n~@zy2g;N(jFU2-#}8czcnFs};NARjsU!^U)lt>#Rg?WOe-MFv`4A z!rgdt=k~}mS?8FiDW@6v9QN>3<<99BIAiB(Wjbxf=2j!y#jiJ&9oQDN`>67N<)*T~ zZ!Ycoz4yGi`hm^5S(n~)3;wj<xHh<F|MNf9{Wdu+WjR3sJDa22FQtFWT`ssrlt)p9 z|5nexyJ>&weID0u`Sm+@_wL&FS2x#xXs(~`x?0VdPtI84>|QOVGnY*@&sXiu;GgkZ zdkRBaOvIOt-vWW}?mSG%ixS`ZVv%E(=?||uS3U*DZ_C#z9&flf<HP+$TetempOn;Z z&N^APjcfI>>vF#W62CWe$h8~uomhBr!Q0ip^|#sA=eXB}Rj!+;=lb07+`MODPZmVE zbu3xq-KZ}Uoq2FI%SZjovyO%TdJ?hLXh-G+F)N!{6)S^|Yi)1$TKr;*inO7XX~LR| z3c*j*e?)Aw_-?q)X1hnc!Rd31Vq7Wn&zBuY;Y~j(ug~su@}$&Uqf~J}pS1<)R<1M8 zd6twI_AqYQ!=^tiNcsf-<Vn`jEJs<Gw<$f5Ja%a}*E~+k#h;fh|2F6H%L6+*<PYv( zo9}i%S9BS#LGbhx6D!RJIh-bY-Ff@NPL-^CdL=FE%#JHxHyS%I%v4B!+qG9qE8r%N zK%zx8*Tw8@a*uru?L7PUy~llx617_`N?nf@xLHO7<md+Hp1I^amu*ICjL3aIW!1W} z%?;lt_y4*XC*{o_ld$ISfzuuCn^d?@W=d{!Z(6**cruTV-P-3)QxB@?Os!d+a)Fg+ z9%GZoVhL9L{+)S?o!Op-Ua0usq3o+6ns4)N!QCwl&t67eb2@k6X1Qp3w3TwvxB1a` zmHsoVzLV?rPkZ_NZITx|-pI|_zn$@QzWF<jcIUF{Z(UA(Yh!aaeK=b7+Mk*6!nU1X zit@GYyxDZhn&nM%ny_f`61~lzzh(zYGu)M`vUpvvk1<<(Qs&oE>v{L`{{LH9ziel5 z(}~5ovGa2Ieg?iMTe2(l6q~h;<<66a6IX`4Drxm|6Xq>j_;J&0K>->5C*17K`+SeY zDDM?JW4!KO<c2Ag|LcP1x^i2YoZ{SH{=(qwlLy;4Y&_kJwBo%!bnlp+#Uf(q?x8;U zGP9;=n%CM(a+TlJ_a`p<y|g$%Joyl(RCeLZEwR7yCh@}dG`|g6XkAc#TITeGYYV4% zwwzkgkheVJ4HsMLnTOi32i0q3LtiY-V4Iw1x4qO`<X}a7+R{Z#s`I6vTSbTM6kg~g z@hDom@psaaq(`RjMbC6xyyqasP^8jf{;B!ntktJv1y*as9s8d!<tXdXgtYVXdu?ub z@Bjbz?;Ss$WP5!vRgbGu_32aZCoN==n7Zqv+J~!MD{k%CmbUUm_I~x`j4+Qc<*6d= zzYEj^oHS;-UX6OaQGV|J=>}`U94d9ECc5ynaGd<;@}$|#?L2#6;FLwtXVg;neAvB! z*K)lD$KCzsy@ENfM!2d=e?Gn>z<VR-RKp$>W!V(Iiq5Zw-p*-J|CuCWM9ytIxns*b zzEyg!CVpzOJXpwfxa7&@`eP^lYXp7Gj{ETbrr1aOo2RG8w||UZcB0&6s#?0=`3Yfj zwyv0+XnQ^L-nJXAzEXV(iV1DWkB)Yy$7Ou@yW9L5|G#(lx8A;Oy?eiP&awaeflD^e z&yCeO=X866>#|F(lUAMCbgIgH>&-u_ySxh9o%rKYch37~YjOR-6~V@pYnLx-40`16 z$Q+j9vne9TU*zN+SC^NpJH)!<?mt?2tT?Nf(bvtxbl=C|qhgB}9}IXTQK^5=_1^W( zy*t;OwZC^{^WW8Hy!oTv+-rJgbA0o1yRd`*WqFN11uYE-(o1-?^ZiNXZq9%2^?b^| z^i{^r>T+Ib*A<XB^OS*d^(;Qa#S2Xy_>^S-v)uATJI|%!U(NgqYkT$Ofq{(|jjT&1 zE&E}>y*$jK;Fzh>gbefNdlou~iMU=o8nn!&q%_W=yJNR;mQ(D+xP#L={uSK3ne**O z@2QV3b>{4ot&!TK{%+~CzJtrzpZv;rHTkZynnZcr^Al_4g#Hw7O1f~KFI&PiQO!^M zb6RPg=qDqdP28{E?cC=!Gh<q&`N6wqxjWaYzq>3U9Q8rW^2ws^^Ae|-zZtd}&z(F$ zdGf^zGlkD(eX;%0=p?5&Z_Yzj3oF0$zCPnwic=O`{;{HU(+sx7_ZMGc++Nae;Lcao z`J;Y~qs!Z)`<I>9*mN(->eJHtDK}2b72TS<Rrl$d3XOSzmd{P+@fNz<9sDKw_04MU z6BAv;3h%tJ&oA`<X!7AgQl^a9wjMc~#4GwMMfsM0-68qr^s9*_=2LFY6UgQ%33@+0 z@5b!Kd=t*ym}6#c6?s3`aMF_9N%}8D>hc5i+upuf^kBo~#xGZ#b{TWKulD@@(5}3s zwdnEP=y$wZ4qiNd!GF71Pr(ZT+l<$blJcidxAt$X{``!$QbsnG?UrVniBPcBtP+9O zmuK3pXJw9c;4@kvwd==9Yu&Pi{hSBc-klelqIlsc15@lOzMxlCFIF+ivVUnz2wrxv z;G}w#lK-otn;2GC*vNY9jViMIv|5Q}))PIMBU68iW^OAv)2W|Yef*=HjAGo1&7#54 z@4tmGKe!m{zoN&zOmn{BWrh<R)tu)IXG{{&{4c^+8JU|GshWD~?Bi*zyN=a{oqxGK zWR-Q-T*pSi=IDsE@&8{<*|j!3jV1J()IRQGD*W0vE=tM2nw00p7M9SHesRJKsTq>p zwwy~|uJy|J;XFZ4EhF0K>ol(Qy)`Z(wUVN@p0esqoZmflm8+Ngvl6#;d#Bi5w^h5L zve?*m(eHgs0n=g`Or!!Y*FIU>@5iURTI;w~PzKi`-PF_fSM3u1c68GX-wS~U>b$kq zw=jR}SX2C8$xHFqrjUZ@yfxg%;w~?^n8188Kv&_Fkk7QwXXg4|oct<1(XOh{b=~Y2 zNuKR3A-ewjHv%`DikNeb_j~HKT+{yz&sMrMul&t?OmngAem@7Z?q5CEr{!u-{9K<K zZXQ1S<Nv*9ITtk5=jYg}PT1zZZEpFu2OPgm%CDH6_^7p1RW?xU^Xc~)|Gn2eH`^}w zQ{M8w@+bRMfBwJA|KGQ_{{Ovq@7~FN+ixbR^?B~(yl#bCyV8A+hHkmY%<B}zv19MI z#8cJtMXJ_z9(L6hv3|~-*l|i?$|I%Yyw{dpzQF!xo25*!n~#<FkMfyEqPI+7@^WO0 z+fuZuQqB7OCm;V+HE;Z1zPu5vpT5H{-1_Us`-`2+_a0DI%a#}8EmdC8vB^cb=MihX z<a}GfbGLW)J(_Fk=WJnCl0W(G#A7@`yUN<kqRrNpKm2UKyg)3<sP@yYJsRCQvb`D( zrjA?IE-{MI`5Car;Zk;grDFZwle6?Ybv}D6R;o2wcA%P3xa^eFOMlnjD{EI5)=LId z^>KBk<-e;e|0Z+)P<UoX^}A0sa+=v9itMf*Os%Hx+*zdV#CQ3@bjAnHEc5wNymZzb zt9o=vaaLH;+h?`YKX-qX=LsnEKO5OE%o`~cnY=fvzu3}P{A1xo`Mw95VcMKW9^G@) zUb9!=)A36Sq|&zq>%Fqx5&ZR|noUeVB^&22!)q)lPLjf3EB#_-CtkUi!*<{NZPI_= z+q&nsDgT&Ly<`5hPQF`?tW#_5Pg?F5Gj&f<TBga77`+2C170oJ?qg*5nysT=qJ+si zS8>adNqhn_TWj|$D`CIW#i|zCtug17-rPewn;)~!YyZOZlK1e&io{oZSNzKT*1vvu z@b|X#tG@+TSVk-tE>=*t6}?)0Y<*u_3Hyf^{PzENpEp|TEUfRna^+&|ft)4MF^7(o zS=}hqS#v}_@R?!z;;9z9f8<;%U05gfVp{dN(jM`Z!dy=jIJVvTDq8gC{rk}8&Nj}! zcS}sr@7?2iSFGw1XKD<ao7z8t{rtCN|3B%Ody#R$-)DW-lY_z{PyBv5L1@)?r5DQ# zN~YZqc^SU*ZQ;KkyxjLP98<Z@Byc(ZpYAxXD)VLKzV<yI&T&m_%9{4|cvzov>-x}$ zX?|H&5(jVjd1&hTKYNzEdmiY7*T}CSheCZ^0@;k_@|6Gjt-9*Zd97<-_FsxTb68?x z;=FQyJ*BeCCs>Z1*193CRnxA>(zxciX_aubhU1IM?8%cR*DucKpEpzKI#1jD`oq8X zsb3CCoOdZ&gyl`hmIVh^-r(-p<>jo#y+U+-gYANwrJtw8$Hn<v+RL^%ON61e>jrn9 z^oBbp1HOOM4)S`cZMV8sD%>|!Us*OS^T9>$`|8T~^DpT5y1FuKG5F71U4Jd-cG(>E zq?yHQ@6IWHw^LSXQUdcN1{JSGB8gkY9EGN2>|FI`(~}R)heHLwO+H;$`osOFBcJu1 zmc=o84H`lvGs8L^Zwb8#y1AvZZ9-4?GqdM&?yfO)uj)JV{`8rhjaBRZZcs0Hcdy#C zxNoAe`?Kk94Hh=5|6CeinYCl1+bw&4#&v$rZMdud=}TLiayuAazBGfuagP2q1<~~? zA2gL^-kTm!i&(kCwqb9Piot<gl^H9#W0z}pdGpu0zE@RNzvVc?U{>X!D;XS4M~n7c z-g!hr;Tt#O_VVBVFNr_-^~-DC{;y$6{@PdX`#9|cfBlb#Y|EH(WT$2An*8lTkmli9 z&Ez+U9PWqLv#pu><z+(r<>!X>hbGO-{Imc2yJ)$$6`y}i{d4eo+LQlN@0>mHfBW_m z|97c%3!I5K-O%xM^De{qb7!3xB%8}47o4%X@T7L@y^`()sww9ScTV`Z|1q21pA%}a z3F-Pl$CBjT8Kn5`xVhTR@>IUG=>Hqdz)k8h_J!Tk^iJ9y_EE52qIh7QxDBuBo|=hK zZ&O*s*fzWWSFeyO*)r=w$3rRikhr@N!Oya0d$3APoVsAjoduRJl9udc{lULPX64D! zD0kB*i<6E2iMKJ&ww3Bz+4WvVA=&NH@;QrGPCebjoqj0ej-ix!iLKJ4Uf0_bD?|%b z|4)6Rzxawu{}U$0%WXzhWiJx6C&b<T6v?(-?Yy8(v36*u(}`xAW?45qF;}m}ZeJ$m z7Vuilv=O^0@X*3|N=e8!meUJVczo0BBX-_ha`D`ml>9r~cHPg`gsD}eE_x6rP!Xtg z(C5%4+qy3^+4>A*`X!T=GO<jl|0<AXUU2@*@7QbW*WDKDRE{&fCf%0tX~TNnMc;jo z9XqqQGX6wQ=%*V|-Mcc1rfFSX#p|}#Zi3*_^?b8G{%?){)%EB0|FiY+_v(JGzJ0+g z&O#wox~kQA;pKjP4c>V<HIbXn_J4{N_~G$WbE)~C%@Y)lzKTwnW2@g6G&8LGi_n&W zMTa!!vf27`N%W@h_zAo}a+2$a<;Jc0hbu3fO5LHhv48z%mSvsX>9PCGQ|7I_{Vhsm zb8}eY$zy9)o15>ro)Z-=X}tP<W2BkE1A_}UUBpzgyQ=ETKNxT;GDkV~3s~N`@Avve zq~Hy`C$SsuNEOYv`>Xbx)TRo%`F#K0wuMJ;NS~H`W?sl=j(Zo5^Ryk<s5GIu?(@qh z)<>%|{)mTv$XB$Tr`D{)HvPN$hkS`2-uHwZxn?t(rW{d7ny1SCuvDz|&y2v5(?P1A zDlJWB{yhF{D!0Eg<8}>$st#r=D^+7@pDm_4+x{Gx+b)>z`uNeCr3p*p%V*AyV=%vC zXy-rw!>4{mnaAd-Gu2X#UH+P}PM!Tg@@^S%29}Q<HZHlWrl04@?cZ|cy3MLrKLnCI z=PsO=WOjdff<#5J)UlqBquFn)vNL_Ax{4m!JkPZ?N>D*6j``Tvo*%Bp=1cCU|21}y z7Tw6Ck^E=siX{bcEGy=}m#GQTo^o{0p%?uzjX!0oLKgo&=+iv!d#?_Imj2<FOiT-T z^;ft*ogTy9B>COpyx#^sHkVc3-f=YYJUFBlWRQ0`Gg)BSJqDhMCw*j@bA>PK^qx|` zxv=Yxz?5AA{g*nMqN7#{tT&ene7%(O&p~mo2M48MMcp_!n;xr8EKU5g=k>ZQo|$rW z&Cbqlm75pN(7Gzf*SzLu$ijyYUKzYzH*;eGW0#JINTor=QK6WdeQuMI)2DepTFt`z z#{59W7H8!eYmxg$cHVpY-+RB#_49hRkN!*V|9ku5+j`TV|GwMb==p!val;Df9pb;v z^tUEYPx3UdnY5ot!{eQ-l-$%?T3h#5U1R^Y;9$p$;#n{Mz2EzNTk~1-=p+B7<A2w# z|GB@ic)R5P`-gWvN-%d!Id8GQ>qolDj0MV#lSKEnv?(g@XV|hi<>=xrMwUfw66a?h z`!BX~@0}N)lDf~>+V9g2KQ8XKI3j&wiALndJ1kG)w4Pktpe-oDQ+Ho7_S6ffB{P1P zyB9CfGESLxLPkg`)k)8JO4dIY^CAgp!xaWXcQ2ao*0_Bu_C0Yt`}X|R%!~d^wmCj0 z&Z_L9xnoi4#W(q#M$0Xhc^=sOagXEd_L+f8qP;4Zc4dTEKFw)3Ro%IG*}KVRUJ1)g zul4MSTrxSj*lF737YiSHv1g<*wOndAxR~9AkMqa*Nr9CoBzzg&q8u6u*I!a>7h-ze z{dlU2$rShZXVc@3WSn)8>zVTByd|4_=9<+P9Ocs28t;-aeq529pS6s8^O453{hp?a zdfZY?f({2f{Im4MG^PX&-ibQ=rvjbZ_+Au=Pxnc^CL*nMro#G=#?H^jk{s7-o9s(3 zK5$V+L~HNM59eMi*x2*5^ZNVl70iFm?6Wdy*tyKfXTy{5S2w39Dj!vzFDY3lG5f+x z=I56kSb|*3mSza?z1dm)|Jwb(u0PxVzp(w;I{)X--n(XU_GcGA^m|)eu;T38eIaJO z3e2swd@I5~Mfld_)s?upfBwSI+T4)MelOy}8ohsMYHibm`F`&!)|$JV=ZHc*%a5!} zKXpu=ta^Ay>ypf4!46BO?Z+~i4Y!?+$WAycxs`wCKPj8dcfWq%Df-}~q);HeTkf1v z+NIXbzgXh#*Y(~0v3>9Ub@MIe``&zYj$!Aw$4~e4AM{CVKdd3M=HZ;qztx(*b%Zl( zCdshuOIKt4@MunSG26Kp|7*TK`_}6c#w^oa*FQPsLehquM}8(B<vvbJtU3ELcO%<s zYgeUDxi5WMl6x5^onheE^}}M}{v)OLS+Ct`>D^nZxlcil#ruKWjrMD)XIszL-+Xc{ zN9)w%_0?=nUp-bn;GC_L{W{xt(|L|mF`2JIpOiP{^i6#DaQPIDcg6aR&HNJuA74(9 z-z0aW5_HPI6;Kc96_d{5>j7s%SMS^9#JMys(@}7%-Qfn;EvZ)AZj!E%@%k)JKK^n# zuf(uS>`{|adP|Mx2@R7p)_X^DUTojLrZRc$@)RbSkokpwQr23e9sK?%PGE)KGJ|V2 zVF#>A7c0H<N{&mHSlKP_TT)&>srz)ZHDg}hyIbXv;@lZI+&0TrrxY9RXDh8>dRd^d z!B4WwR@C9_lC;GuICE`9V=UIE{&^tx@$lNYW%u)L%v!Q`v8ecEK7**(G|9InKeeP6 z&ayjJ*m0}Zx}HszvtzlUlITPq4ee|9w4cp(H+$%z$H%=QRCtDt#n~i_4N{)wpVpn& zx9<L}`_pRNl9hh6-h2Kju6W&=Qtk`oc{OaWE@dh*a;SUEG5s(1v;N~E*MI5T|MMqn z+>X(o_WaY&`9GiXiu3-w*8i{O_qS}9@Edpc_NP3ld&TB8L6$}3$I~xC6TPRc@i~6v z_xpWclJDi2t6!J@`_TN!*Vp}lpa0MGjoYwO@V$7$r7w)NoL4?a=r{T8QNJ-=O7q;T ziMbz+I{eyrk>hFd@+mU~|GVC^t&6Jro&R^;o_`;D|6Kh4oqyZLyOn89@BVJNWN}Zl zVe(BaW~0JSm)52P2c>wXdS39$JM(&q-?5@?3VM4jj~-GKDxI^({`<_Y`xyV3O8w{U z`8DC<&RAv%@5%068Ua_^55G**{>JAhC3Z_WeBw13%fANS*2?haJX*d|drMg6j1A@- zsg}JfOIWgBNH;1+Ts(0_{csUujM|;7JJlNgiyj-<*9g5kIP3hZPl~UDFIL)LRtQQ6 z33IgY%$9GnQIOqs{d!(NHsjeRH=nIISIv9U<g=RmW4r8EO&xx64<~2*<d*s~W7mcG z<)WqkbnahPeA<|L*QWP7qrmwW^3v&YN0wawA$%v9Z%VFHvy028oWdL#i$yDYDra%C zY;>vG-0`Ha&%iCX?3{i7q_0OeZHwLSC0lOc@yTs}yCk>vHk0oTXSLsXI<u_zuaofg z3w9U$A7Q!Dv|7aDZDxFX$D;MGwSV4v|99da@%nGspZ@>4_CGm!a`+_8i`QoHetMZ^ zk*m^T|Cw)*`H@K%FP%}@EasJ2)Ufi8cfQPv`_V~xGb>G&T)HuNLUp=?;X#|+)C&wt z&uyOc^p5_#xs{5AQ4FvDJe)9lX;Az0egC>vRNYDcw*807zW04+S5Jt(+;QCI@l19O zJBdf{T<%;uAggfvO1w_wmfn94kKB1@ulF~7jw}ChrG5n$1NLc)HYm;usQ(=m?~%qb z(X4Hff62FgseheM1*YCVR!~~_#o?yT(OvszAG7aQ)!n(S;DD5LXj9+3Tk{^}XWEE; zP7l6(!$>DMlEHh?9y9HbKb002IT+Q_IFD-jbIDon_AyAl?0BiogqwX~(6U8KJU1*B zQr_{;_Q1<(w`J~A*Ay+i@#IpF-(=y#onq_P&08v7^pe4{X)>SA9KM;q-j_L9>KwUo zo^@ugzb$D0@D#=mC-l4*w5-@yQ2hB+M4p3UyyIjK&)j>zwipzA5e+`r!nt(fqQkG! z-CWtvU0miUX>=mt{Kj|gxBXXnX@%QWcrMP1E1u(g?M%!2%&3KDlHMHd`&py)`_J9| zTn}=UFV8b%F0V_mk>KO@W)Pb{XaD_s_kPu`U#ItA>6TA_y#Kr?oy!u-V!cz!C$MGF zi5K=SCvn~W^t<`IfK%Qfjs~UFRSF{OrW_E{5^hyEcd?gg(>f20lhc{F*1le?dZVKw z&(inV?={9LtFpRR^*_>O+B{>=!Xpe{6BummN}Kkqk=%Ukq?p@mH@0Io?>_F(oO1eb zbo7)TJOA&#A#(QMY*F3awFeeY6SDYOU*ay#^y|mh028(3bhDFO|8$@G+Z{i#pLyc{ z*Jpp!d++-*_5R1UdgHgho8@aXURxS*t39YF{Mc9XZ~Y$S{XfF*O-?^P-N|8INzS}Y zH9_Vg(M#4e6xHUm$8EoV_ecHz+~-fPueYCQ|LfTM)3e_`e|xs)&;QoxYEy&-7=&gT z9t+)=Qh$MYv3K+O7g1ZEnjA^`-<~qdCcxduOoYWM?)3SX|EfQ&|Idw|vj4w-o$tL} zKeo8*9Fk!9zjSl=V^#aj*(Tq5%|7Hjy};ApqCDwh_NDC&(XM9vd?_yrdP{;%2~OI{ zAh1+pbH$|RQ`kg%S*K(#oYuKp|LG*7+}$rM;!hWE(JbC@|AyzS=QB%hYK1NmIlpdM zc~tTz!$T_%Pl*aXp<gyHj(b5l`}?LBD!h8hTDGbCA3XQsn_Mfk+jN19h<WU!d?!2e zD9@R{WcGWR?^vO~YQ3}EOpm`A*Pd+I`t_ll@x*1qs}J7Un6mKV#8wW;ts5Qv&2P?~ zDfH&S`_FqB6y$eK*?K0{Kjfs-%d@jKeu}A133iE>?)a+OGxx*c4?CZ`Wxv|s{IOx- z{D$6T^1KgXvwWx4>Rb7&;aRyOqd`ea$1p!}iJZ-bVws8VGu`wGZYTvGY)RkEzowDn zyZ}Et_o=WMn(B9$kKeie{9{`2sekvM`2Tw{|J2>P<rAl!%h|o{|5uIDNzB`NKA1>e z@L70!tBLd9Jk37w7w>$w*IoGSWcW`bGWi+*(`u8Y-5eiWf6K}0J>j3Sdc(m2|I=<S z<0L+PuDkvy@S&>F9GgRZj~VyQzw|6d=JoN2e(Mj%+z<K8I3PK3Yr^Ncvi|zzj~Mme z@9h3~{*2S{e)G6xqBny+{|#TNFXpnNcK*eQZ3o)iBE8-`_118h>g69kDQMM|XI#lM z+3He~KX_bvet!N>+xvG6n7_qsxy*Hw_ldc)nv5}b_4eO4P9OdLHPUn5y0i%;P5dm& z4>9mh%smvG`0TsV=M>L*MpHU8H+sLCJ?-s8#XYsbPIuxKiF~^fXYHM)lqtP9l=)th zN}K7@WY<+9Le*BAJgxS<-4X8Ouik%5=FgXnAD@8k{0?S2puF2maYL)n+q))bF4U;@ zx-1npF`I8L>U}tIY7XDqxCbV(t%0vynNMu!i(BY$qwxO=x!{Iv6-obi3Jrz+7@Tfs zdk}Y$`<z60MPlXx{`I}*6t-{4*ro8BQP88gaPNbf`>bCCx|c;i{J3q-=Lr)R7%q{r zT5gv3R-G;9*sYvPWp`|jY<7NQBbdOIw9F=~H_z4M(P@??HpWxWi8h5zv<W+<pZ#C- zWbr~q6RoVnTMkDoXNWK5p3iLaWO=a0>zj%DditY|dmKG(x#eH&lA6>b8{C<A57}ho zS$wzk*(r8*;)@ju?H1PM8IqT*%cltaIsC)RN#kF?|DyO7`PChtdRIQ^J1rKue}>!V z=-C&m?#*HBzOyF($+JHj=N#izTI6G%BHvIng>x~dUE9)(OqRuho!xs6oi9|gvGY4H zdzRM>_rJEg_f1RReEWa+v%vcEPyUrmlK=NX`8>k|8}<6VH;?^(o1f>9RV;O8W4n6Y ziG6|6GFmsJSIx~{baBah@ipPDcMaoQES}G+_`i4iUj2iw!`DBNj{iOD^1F9sW`BOK z(~e~i4(dFSVE3m*`M7+&N5Z6Y^8f$bILSCoxpM7-&XD3Dr++u3OZdE`)~|NYsVn%m z?a#^o|HPk6zMlW&>fPgf=dAZv-CZ&HRmXdUNmt+WEjU~t*X1HT*&=O=L-~36#4T%Q zc|NpL{^sM7!&!I8U|Y|Mjw>ex?|4nnJSKJLWcKIhp0D1dGW(t{<=?nu@52{6Cw_5L z&pcegCZl~qYr({K4&`fl&AIxISD86Wds{y}diJc+^Xh90^bD9Zj2SmX&u8&WK3%l` z*tKP6xF5*fWOol-BPuV&rg|n~Nl~y;+eD#>I=(x%n@r%fTim!<x6X7L!%U~+Oft5o z4O91-wCCMBf7~UxVbhLHj}A=~$TqkmuvmGuQU<eM+ld>8>H;Ufd%{)MT`Rilq{6D1 zrVTnPH5ZE=&J^`<KcCZ)DHD^(duYNXonnhc<;SjWtJ}U){Hej>oy$uWT`{aoba{Jy zSJ+|cC-?6CTxomZj$*&Ya>u!k)soLK*Er6KTAqJGG}x?g^@|jiQpNpZL7pl+vnOX* zD>kXhR>#fzyq_U+NB=dGSss<CXaAHi-H2S}nD=3uY0Z<HvYVFqq=?CRsO(+1$)4Sv zVcEN7GE=wRbuBW^ddKW7$G3R;QtPKzx|Yvhs^|9V;B@W{V!!UI<P`~aZxTEakbkQ! z+4u3D@4m<7);VwAd2XSO$ca6_3pCCt_o+&$Rx8`@$v=@cGrPXHc(di+jp|cACAwY< zN!`*C%=q2(4Dauw${#O3JaA&4b^U#Xg2odT83)o@8ui;;V(Z!rRQfb{9%=ir%(}mS z7niA#_vd%-@;2YmEuE3P<V9Hg9SI}#AI-KN6D~gG6I%IQb<^f)ITxgsPrA{;Veug6 zOKf09{Ns5x$JR+*<hcIb%=qP;`TqBG460i>jMQcwZu~x7#QH_+gKCGM`Qd7pA~&gQ zz1z&YZTeHAA4iU#u`{)(lm4NwNwne?W68?>qN!p5n!e(`Kg(V|=2t)TBVgV-_fpX2 zzuT$pxsz|~<`j`r$rQOE=ApY!{&?`t<!9a84vXtv5bY|B(~e_*6X>e7cjtuoEh5zo zo6aVfc{U2Ve+kqm<_T+(cpS6IpJAbN>zzpq0c)ARsq*~#QgG>Qf!Ms~IWx?koATO< zNBzhtd6|FBICyVzfaiMi?dG4prDfRd-gisnh-}sYmsQ1fQ)h7WPY#rc59zYkoSpgR zY0<(<`AmhG-t50F=y?Cy`GD8iw6A)iiNv#XzvY|foD<}nAj_vMI_>zTOa`{vgpT73 zZcXJ(mN)h`JYtFL=wbGlC7)^f>G$0Qjaj|d+1)R17UuYoxnpuY-@IKv-aHb2a{uqy zdX@b6{i^@x+y9(*$6uj%>#6xQ&tDhWEi~-AuRcre;@<<pN=w}B*8T|C@nu0K-_4!R zoE}9OGE^-N6iE26q4AY|?y>)0zb>_@fBiJ=PyNx}|CwJd|JeTJkN-K_lYc98>%Se` zUvz7JdX=@+YVmZIe3!`v?*hHqqu3Od28HUIsUJD|Y|X6K?{Bi*er-JW-`?-{CO$5_ zsr27`_Q(I#alh*~Oa8xqSLwe^p+n^Q+o_!SXEb)pF-~}yC(|4M%kveB&D{ADuHE>d za^T0TyI*W~d!(nlQ<0zdulG;;|3Cj9i0q8DznOB{b5Z971_4oq>GQlK&Kn<?v+C#5 zS#6Ay_&hCc&A6HSw2<Y(apMZE11lnrK0l;!{@H4)TgIu|CpD#I-|L*U;KqH&TgwDX ztahE+d*;|A&Lax)wHcWm7X;!jYn<faF<hC}Hud17^9_^B|2^MhX><Ph>?!eo>}2gG zMN71?HLQJV7j2+sA=@T8|JQ3qp5*F<YV(gVE3ev-{PoC+7pZp^U%H>1m!2plDg8V2 zRrT}3s!umwR^J`AeT|-chD6PoLj|wr*lA@-vI)f=ef&+wyz$+m8Cz#{o}DZ@No?(O z*VJD!s?sHjyWE$D)tHxTUGy@tMq1K)L9kWKn-{Y0*7t?qKL0w`_v(3}`MEp7UjN?w zdDpYgx|_{4n46cs&r843SKKyd*~2}(m9I{|PCx(T?CjfTBQNkU??1Wl3#Sq9qd%WL zt)(h^-T!hXava^$SD`m2_2mwJOOZaYcd94+J}|s~^LXEd>T^!))9sy4m@7>>$7=O) z=E}_;b9pxZ_^xrgOkG#^M1^7Y7vVGRlkYjEXV$;}DztdxtY76PYkg;i*|;gXolFqg zJ1?x~e1e4k-5QO1pDNoY?$gnq5PQ^Tuj(e<XBTG~%n<&+V`H_SyGZ%@J<ncFFn|55 zpom#6)x%Bw1!H96jbgE_4?eRrdcJ<RS0HV}L$zzSU;lZ(!RYhv>q2v%yl;7`qIh~{ zYD&V~GMN&ushJJ)4y=FlrSh9j)nT7@R_nLz>vr(`s<_X@c2FgArevDro1KTM)!)oM zapuguka=14jeDJK3n%m(xg4k&>*vnaXMKmK&%6GeppBFy&k;^T&6HHn)BjA0SWC_3 z2wdA*dia?}X-}!rv*<Z$mjl9&YkmLm$C2wU*PJfzZ*RT!zLzL%l~Xw2%6VziHQ7TO z|2$!+NV%@$e_eTZTmA}@=N$=`yH@l4NemJA5u#px*5rff!;pr~0Egg(eLnkn4j%lR z!@tX+((&aA6J~Xm;uCyF*c4Xu<O_Rb9unwuP?z4_dVyPitIJ(s)?JU@M3=Lym~!z* zSgUtqlp@QKiB3Ti7l}+@EOh3ami4Xwj4-3$bHR(@`z5ViH&?%k`Ys$L$kfo-w_A;Y zXKF;)ga-lMUI)C6EV#H`q34QoHQyqKHzN97CBHxMd7lftWm6d4V9wXPGWE=JkJd?U z3_o8@_{?)VGxHy>_P@m!9T(r5bu}d>|8Q-wL&g4v+S-RYrFK7+^w-~;9RL5ey>k4o zwa-7@dwTxFdE5H<xF4Ck;tJ<eKXjQLeYD?XS31j$qPLzpM=dVh_%?m!#)D~2PgCay ze$}si`C0B~{l9D7XMg;Ed-livvc><K`Ryis_Hy^O$jacGciq}@t#NW<w~fs8oE5_T z{!UBxEA?n;{)%FLFJYaqJAJK;{xeQy_R9Z%4gTHFnfN8Y=Ieiz^>KSYdE6`CC+hw; zbxB@g3rFmh@};U0EDrf*yFMN7jj>9-wW`to;QcAaC)GK9cp|lDd5f&uW4+V1UTOUs z<;vP$8}F?DZfqA|blib|W$9{Dow(^Nx4zChpKiI$P^Yw?_51W`v+fxcS$Ld1-s*U8 z*|MKK&jMDh`<WAW^gN@>sY?~Y)#AL5on$8Du^rf(<X=#ChUZdRK!V#pvs9Cpa*vHC z6>3UJ^5~q}xMtxpo{J^kM?bSAruN$QdNU+UKksw=`0s=F1C_IX1^1PjGTjJF@}FVl z%eyh*R*jz06YfigCLc5Dd~jg$sU@9nxU9S~r)=K1)NAP_uXVG7<}b2oDBY$Ql$r32 z`**vlf8;LayV<JEk=rJkJoDI6W-)ixlF~QVe?PKkJ#)Wq-;Q5Rf9A&jSD&5yA^7&` z^D)bf-&(xusI^Ny)l^llZX~mtdH%u6pS`St`c}o{8~ylovv}nijTcc|T++RI=_YN_ zmljTxjLJ|mJ6>WFmsj*vDEl-Ir^Sbb|5Y|KSn+#(>~|5_&lz;)<BQk!d(@eYs!Aqi zEwaii?%(TI*`6cz^!<+|n-1okJaz1>XRxQ$vLwN2VjS;QR`~w3&CB|8H%&2Ry;YM$ z>cXb9#WNR{9(W)A<6ht*&f6w2>0iD&>G&U?;g)6c>hoe#_Su|an!V{0BvRR)N*Hu0 zzMkN|Z|A@Llh3q#dT&&G`H|%7z4dlR)0Q2y_ZC{jxuCv2ZKuWDbq{oAo$FoPV%$+B z*Y+!D*G{9Zr28B0*<{o_TyDGe_MfzA^EjlvxC=hnKB==&KXF!A_`!t0S0^=U1J*T8 zx9^b&Kha%qZ^gItH7Cy5Ce?~(F$ik!4cP0Zq>)x|!0v%j=d*c2zqvk5tndz+Kezk+ z0+yI#x=-G2PPu&ZN`Kp>g%(+*j_aEym^$>Wv_8cs-Y*;Rz4=NeTZv2iya$@fFQ?S* zlDqm9G?ubXl5@7(51+%4FJip~+!in-M>%JF|Kd5%ephzW)Rh&yI?HY*Gd^OhVV@Np zs3~Q$_f4FabIYq47ro^pwd^wIFOSmR5ZyG(LF!OUvLEvT^F3>n0xLF5`;aI#r|g5a zld@Hb`SVCG6;{2t>aCJ~$DU<aN3cCLIJiSlpl?ofLpFzBqu|6Yc{h&V5;IQu?>5q% z@VH3%=mMFxDZ3Z_ezArjs&D2*HM1Lsqb}|6{AH}A-eJ>Rzvhzv<r$)xr`T<d-0tb} zQjg!Hc6qVD;<KJbYY!jTVAdNj<J@y^iw$=Be$V^!{$Ke2pt_fL{ZIb?d;I>C+q#qf zoxIy`-u%)1-_D20k1v|Y)IZnd6FH@|c)^QP-R;>y;i^F!RQul~uKj)`JpRw4^;L)W zr{}xg`v2yaeeg>A9}kZ68FcAQTP^ys_!U?F&Vc+kroo@mueIG~;GR?5^XkRD1x027 zXCIhnzWu(#-2C5j!D;&OcAqt?Z~cE?d$;%h@7>iuzrFdE|NDjQ?q%G4hC;c2`WCLZ zkfHcv?Fz~Jyp{!QZ#Noe29(&n&%86U|AerQ8RvG!iK(WE<q7(>Cr{Mtq&`sAb=&et z&H0w5^24c1H|@1M*Kz3mPxGRUTRZK1|9MosxpdxpTGyqAf)h>uxAcoYu>W3l(N^hK zz<QmNo*zO!*{n}{=x(xuVT#hKkX}jGReqKY$<w#8$}0c8`Tx_$DBu26^|Fjlt4-Cf z6tuaP*It_6C-v^5YR3DCXC|30EA208^SETOncYar+u^L~I@5=rQno~OtJmH+9JDWB zdjOk@NgXe5=9G7TYPu7Ct7n9C8Z34-?q2dye9ontEIc!FJU<x*wQ<SZD$QJ%?2_$y z{D+<Y?T+(4ho>%(l*|x2cC4pt-_GBCf4b|xx}8fllc;5OuX@p4B%Nf}cJBK&mH)p4 z%NOasl6-I6aG-I2MWN>O&Ee<1{kk$e_*lyg`K86YLQTAyp+#qnKc}8cT{bU&;`75F zHS+h@y!>K2|DE~G6UTBbuAO!2{}|!wslNX~zQmk;Jri96p08v6uW-~}n&Ek;;jNUb zT1urlSv7vA8Plg3MXoXEKb;X7RiX56wyIOyp)UtKFI6aPQr7BjtX^r<kTGHPmpHyo zVT(OWT0JGMB>K2bW4_i{YxIVrQqI@4-PP-#O{<2KNA`)3z$t=lJlg6<4V8Ayyy+fk zm2`K;J-+3aPb}b;z4h5RF=aP%(!K0?OIn0I|5P~YSI>I+;&P?2f3@TEy8dgAP1;f& zi-QmTn?7fCy4=rC^Pf!iKX;GQUN*4#_w<s!I@yW2m5Ql1*yjcQpM6l$`>(J`Naq1Z zlUu@8EAD(el5>dl_l!NFO*w%n;#(XJ>tuF4xm2KXUU=Ca9X;6>Y&|m7Do^<h`<68H zT>rDe)q?rQn*^W4m6Go#=EYBWoz@vV?dpVn4R!6woi%6OdP2Xc3q@KV$yEM+;_}xW zpt)k@-7-u(4Qtt4#NYb5t%y0i+V+Oxl&&M@M$$W7e?4+aj+>FzA(AfsLve|+ulJ{! zO??+OUNw|*X&2hEWKm9_^=6R@Mxy}cDL-z#;<==H=}JwXfJfjuQU9-c$GUzQx@4@9 zF3dM^`OvW?&iJKfoymqx%$sk!_Skex5oGk=<ob5zhuSOO)23+V$}!|z$>QP-N;cs- zklXqEXpHt<^Mh}g7-yR@1-P8!FJGslYW>~FH=^s9l4gA7iEJhg8RN+h(nJntYHWO< zy2pg+i-v(HV}Vs*%j?}7i=CD&m020Fs&a|g`z+?L5QWd{b9wUp?5EU!e7;}({v9Rp z)7zfC7PH+k|1aO1`gg6pM>j1DSpPR9GogCQrz=c}H*Ys4_?jNqc&QNaq$1)8cl;mK z%5QH@UH-fO&+Yh+ZBCnc9yZJWvAF!NFkJIk-`CmIDQ*wmn{BAsGe_{ZL5Y%9;JLX; zN*78S4QHO(!*HNPW6tu+iMJ=u|MzA0y&vzNUCsV!|6e`6T>U`JwQ`%c@x}Tj3LB&s zC+yQYbmfteT;dlG%U7RlO)8)KJSytC?U?ivQNd~FzO1`_@8Xf`#z74;x5cg86Sm;k z!HWgUJufs1N_BJi@_1=otuje)YFkl!>G3`8Zvyfc8+t;bwx{gx*vWoAh<D+ZyUwfY zta({`QiZMuD_jh<p8ad?ZDU>8rIRKqXwH1_|9(aK(TS0rpWS*Dp9;QgD|w`vcEtAi z`5P%7CQ*;)O`DRsX~B`MKkQMTEVQpanke%4&%XZ$kA=^<nZtF=BTsssN%Bv}{UW~3 zB40juB%iozQJnjD-ORnqa+0=teLFH!ZuitrGZjjjK5{2U?KPXlDSM^uSjM$VwZPpQ z5~JSmT)C*n)qE&u{gdyPHa2Wx-Pd3Bxo6tp2GfNf(^ptY3%%U_S?;@&dY?6)s$cbt z?fY-fS@iv}bNuYeE;q~cB`1w8Se$m@x?=2Wv(7`4Usk@l@|xQIuh+K5$gGbstN(QJ zY}$(Z*KZwEFjzNrqX=k&QvO7({~bJwW^VlQ?ez0??fH4ve3wmazGl5M{nyThu!0p% z^Rlg~AK$CX>aot|vrwGKR-59#Vq@X+Db5)-(`!~cHBX4los}(Hq`U8Wg}Ha{jT;-D zxL+w2Hxs(~Ui5SV>)hU1GuF&`rIf_WzGI^0X3=$@woW-2cSuN;@uQo|oW%|PD#oVI zew{mCp?qY~+Ufhw`d3y}Pq~`P60>1i*|ay`;(}SFdDoOD9PRqomMB~PC@x0zRQ|1b z^2N3n{!I8)A-V4Go{tI@#+P2~<k#GNIHUjX)>Hnke;R(0`L&?+{eMs9`1Dt1?*i8y zf6`uk=H-h|MkyL|*NZ;TdT!wVm7_9tQ?YNa(8`}2TB_d;&$9HM5Y#o#VUAyltjmRC z2co8~jk+Pd>+*ZfpD(J6sx~Kl=(RdN;UdS3)O;CE+Y@V6tIE#5xLUdJq{i_bLH`V; zk10H#QQF*dQ}$iWF1e$iLt%5o9lTs^Gk&x^SpFrXf!+52tHKgyw*Au{`zv>C=@W22 zoV`x@u!E77*t2pD5edH)+t(Z`R4fo%TeWdbtoO|(j<1Vu8fZB#Fv$KoVMDs?)NLjV zQW9%>D+6~dIJ{-+^{J;s`k2cmiJ9o0o@HUeo?OYyT2|%%*!2IqHNscf*3A6I`Z#@k z#;HGxKQ77?VTkcb>`0DV6*j|5c)R4?2x~J}?)C43CaO0EK1+^RBzIQesRr|W^R&+r zT!kr75p!+jw;!q1xn$@)-R1MbV;(hDi#7z5%n0XU>JyW=o0wtr>1g%E3EWaX7fjUp z`=l$4Pdi)qb>4C*w~Z*32(MCe;P*_8JYahwA?WT2&L^inOzQi*d~-IlXnXTX@w%_m z_p}wb{Yl^cKV9x;f8Kw&lh6N7x|DN)jhQo2b$Rfc^~|rnr+zcE2%Y<?>6pu$e$!b~ zllRN`wezy<`ToxPJ!3(6vGV`x_J5e;H(!3aMe_fB?E{lbEDviWSjqpC35=F!dByi} zZV}6o`0DrenWxi|I+i>!U-EH<N7`i-|ETIFiw)e?RrhmzCU^?jY?*RceRh6d)uh`| z42N}hFF$cXD!XvL^5dmuv!3nYs+pfC(Pxsy6yTY5aE8E&UZV+@6%T%S@_UgrZ*^1B zJN@@ld?SzTl}#|TTgSIgX3M)OS%EF)6CG!|rYojoyFJ={xjWn9=})$v!(Tg3^o9t# zoD{t_AvN=h%#xnFa%-2Z%W4qrz5BwWZ}r8{9gBICB;Bn0gSKQanX~XddvKyxU3S8` zm~6?vsm}uZ8@;zGZ82HpI*t9)oYzrqUSHD^`e!H>sz@ha>Iu-#of}$K`hH#ewM$!< z$hT{qNm<C;;`^u~CFz62+;z#<UhTSAB5x$**E+GNIq=WV|J<7MmK#gBt9nWHcb$<h zwk)2o{eInP<IQPqm(}O*x%Xv@n*0%!Bzvt{pElW?n8K#}J<IFu*^ODZYvX@J-MKr@ zjQv3Fr=;?KU!|(2C8bRBSSQ~5dGmZj`+mW-JqA{La`(%(v~l>CtjI`{&AwgGXP&|H zXUpkTo1Se^@H?$x(9BoC^lgjj@t{;Qm&5mB-&z`f4LBz7w|m0L2Y<^?d=?1p(vhj> z^P77@<d5Zs?uc^x^>&vY%Fg#VF`vV2P0|@YVZVtL?KbP;n#65(vBh~#xc20($&2Ni zlUyq0rQ?=$t}W?0XP@V~DZRzx)wDa&itVkhdw9ajzgenv{}rg{@cpZ|LGFcj!s-<H zB_(XO7w+5mCRp`cc(0uDUo$l^C1AtHj5qSldrIbg?Kk8o68tXY$kW6(%ei|^_xZ!U zwI{AjQMBOHdDh6oY?VC4sI%6Y=ezz-fnUxKv>oI5Q_rh@`57pe>S1TX`CPC{(&MF; zy;p(RJ2{SBI*aG1oe5Ep`(nGS!tQq&i~YMfG5*&V?+~lpC3iK{K#J|vJDUpvn*>>V z{rM{#AL}<|=f#<AOuqg<^wAA#m-ip6-p`+y%yn|jTke3v@2;?37iespceX^|N3q$N z$@$p*blF!W9&=tr>elMm{9c%I*W*&Ezx=Dr*9R0?k|pN{Sg}0s@JT<y#o%~3h0}4} z3iZ>cm10jl&<S+eIfrTGWl=V*Js1Dk?%8?4TkFsYSDCNE_lqBF4S1lp&Z2nl-}|0M zkNn;>Z0ZP>ySAiVb#8OtKVxqhCE2S>t}kj#i+f)^?U54W*_oV0C#D2?-jm*>y+5PD ztg&L!uF7|Ts{%?}zofcn{n=&7n5KN{^RkF##Tj##^L>c0vV9_PO4HHeNcyFV$(!sy zJ~(*Kt1jr_Im;a9Ux&o)-XH&SR{5XO+y6(!e$GGkzkgeXXjVz_{*QIa%k%i3)$g*; zz2ATCwfN?;{}Q(R)0RrBNO(SeTC$D7!|#l7_P_Ke^=7|*->Uy1UwP~Q%YS}#e;yuR zYZr8@Ryk_t1h=0%s^X(2ug(!@>$~$Y>bH~vKQEtI->dVF_bIh#Cr@7=;~^(MW4XM; zyc?6Gy?>gx{r{8H(skZy8w*#1;)RQiv&H8B*u&?&+I5SNl6AUJ>&;2R+t>8#|D1fW zpnf9n(Gqv|#f<Y0t+H2EN_wbpcw?U2(qy$0mfwSmHvBJ|GD|RJS-tqy*~uRM=bzbi zY!v(Z=&M0j3Qy)G)&JqUmzDHAwR~&HK3%qLRzhd;9+t<kcUIOMdEef_cIzCg${SU| zhE1n`veraYbzTgeH_t)x{#2(WEt{3iG8J~1&zIg5_Hj;$=K;q#$5%e}IyCXo#S;eq zD(Am3m@j9YyLs`P1%3i9NBa)EES0y?yu{g5nfcr%)%ng#k-eomcRb7Fdbpya^yxmg z?G^RkA}h2GztgZczjyt~^~ZrvpWeRyV!^&s$L05b+O&KU@5c7Y^QX9fn<f2!=8xRt zPnJuD+RHqvo!|a(|H&ia`S(uj`zX8Fx9W;mM9XXKi=4LK%qvUfQjcFr-ZlNibB-pB zf(wV<D?Q!&xuxsM$Lz(|W^9U>9^+dn@Zm&q{?U~BS={zgZgR#-t2{M&*I#>LVyxL# zQu%6szj4ArK`HfDf0I2DbKJko`1In%&E_@-2aAcf^xO|`zwpt0;ki?9_MC}&G$+wV zs!ubf&-Z0w-U{~bIegELvr4p7^hA10uzgd#X~F5gHTSE<TkdrHt!&)cwC#Y?w379| zK3TmI=v(`g>Aj2juN_AxWv6$#zf;f_sordz9lnP7w}s53x{@_gDce4u3H)YTDACYa z`D~V!qSBMEPu3r1O_BK7w7F?cqhDXQx}(oMt)CNjT;{WsZ#16pD`M-DtQSQIzcg>N z``aAcxTDYTpf%H66TRgBJ1*A>rn$1lURdAh#u${d_sscuXU-lkvrT2N*>swts)B_- zm}_%nOvSBB7p8capF6;_?dORv<y}e~b^ROKlpO`%%sQ1fb+Sl;{Dj|ym#yAMFIm(& zNz+@g$n6!UTm4Fg*cFjqxFggb957xUUKp|dU_OJZ*c>H=L(jZZFL*Mw)QTr8i*7R7 z_QaEAwV;Z@FCW{W=CYe+r!tnPoAFHja46VO{KF9+V=dmtjiueeGtXKT?-y?fTlqWU z_`<U<r7rRXwJ5|D={}O3e*KsadrjHC#Vp4Jr+zCg|F~tv$wlI`y<{~nab_%;T3%>) zzQg9+dOgeb4;tZF8@7DT^*%gtn$O+jlH932_1`AmW43VHvN=f5`>AEUPN}||uW-TY zch|Q@u3yq`lr?#QRh{4ADyjd*Z~y=LIrY!8_h%OWn^%4Pul&Cchu8c}f0Z_EL&839 zE$iF|iWN_4xSpRr!?a`1hefk_L)K4nJItIgS*Ncp;<)aiukXZu&R3|C`oH=1|JT<i ze*1q|{*MEn`1ISg;yW!T^9fGuy|tU6X_4sH$M<@&mrU?j9<t7OlVwZIY6bD{Pd6>! zpJ2OolNi?#gF_u2W->LLN=0|HO67KSW|Sw09!PrW$fRqv>P5z*wo@U~Z+&Ok7217X z!{@|(gEP^mly~p(?*6s)Yj3)e)uc~WKa?)@^&Z;!g8!$Kp9s^+hvyDFDE_9$xc_(C zd}q6*6DLWA9V_{1uqZjDhojMk<%LZa&zDcff`vZKw2hEReIl~B{7BQ3_%*5izfIE2 zAI#Wg$!=ZoYsLDNZf4E8I^nw=t{t8=XGY)YCtCz}87OjHI{3N5t;ACO#<I<K{HILt z_}kXZ%0Hoo>5Jgv-%loZ-E^;)d~6l@X+eM*f11D)IgP(Edm@c5oe2m`ELnf-X}0~M zg^QBpe?(t#y)#`XutqAQd6V(YS?BVXeM#Qg!?waR?Yw~YgPA#cWj1m)%nwR-P4|zx z>%?=t?)jXg`FE0QcO8Dgz-NC|`#AUeNTbq^ckfmf$L#B~d}g@3<iwgo#+RL2vhUe{ zyTp0ybgN5C)zno>)3fZKsU}X*Qkw8|#}55C?_JlzSACdt><8oPhOKHF#os8tG&(WM zhrM_9zA%dwN#5<kr;WVbZ=c__ob!0xIiCC^_0p83CqFOPx=x^z`OBidnKNF8o-F+D z^Saic-toOiYS!*6=Vw^+yezG_-;kjCp}Mc!t$Al$wnaxlPJBYMX+@f##oR?}F8;h# z{XF3L>=1kH6HHsLWIi#KTM%{k|MV#K;{wMgEafYjxK!z5wXAx?E$wZKn5qv)CcJpc zWM`Db<8m!|>IQp(!tGZkYT0<{&)b?1Gb!7_z4*)Cj4$8b%gy?y9V1s1mz4M98t?v| zslSX)_3v3fagpb;OP<{uZ!#7iuQO(A%(6dj(`Xnw?U>=5T^~dQc&jYVb?vpEEAhDJ z`Pq5=R$lX7HNV-j{Pq4%uTL_5II%8q;;i_p28Z$;0_UtenIg=zKIN~LUKM!xs<NDz z=??>+srG_j<9H{okZ9bXtuK9KrzC^H&HfvoA2TE-EGt@MP`pzhY1a2h-af8WTjALp zLOz>|jd*t|E}iSlbM<58mKoJ;E*64&(u7{dU+az5W?s=$RAa|b@%qE6Rk~h|ue&m< zsyC}=&FeBtHCTL%SIZ&l%Jqa0m%sZ(988W@f4!*@uRbe$jd1V}mom0|D@KW<?ByB7 zVgd}GB4)@WGAw5)nc?ncIb&Y>rrqWTy}!jixG{6mw*!U37sYIrPE@`0KkCcjth|YL z7cSC$dheETnc!EJ9YF`z`COmcA~4xc_`|uj`t$Q*^W6SNf13Sy#s2j3d!PMhzx=~~ z{Yl{jkBP_ZSsu<R6aIPq(gp73db#K2U;O@k?k`=t?*5q*fh%VP#CPT%-t+z5>9hUC z6Ryv%(W(DYJ^SN+#uvA5es~{!zqBeo=1#SwL)GnxZ-w`7mNx&kckS9XONMRCcTE^x zW{7lNnl!7}YFE&+o+U}jRhPC^@p#m=uRP0iW`Q+BWMD~ZW#`73GTsX#&g&kUax+5G z%1Uj9tMf({HKj_qO>Fg>xobXr4f>-Lv-!uK-is+m_Pp0j*Su*E*kXD&Rm7uO&+dKq zDI<l<-%Nja9J4A*6c+nS+`g33YrtE}x?V;howH=^j4Si^pUPY8ng8QBhxrqY1G2Ms zU36P}GV87Ug|%J>+oWH97C!zoYF*#^A9v0@c6)bycZ73_>Ra#QGiF6a+S#7H_GzbT ze$v{cKat(JS6FpEFDleJlo5MMOzH#Yla=WKeav;5krA5;pFc3sym$5DH|Nv`N4tHz z^(1GOKAg!W^GWy1=4BgK-8pUCoH|Eg<@sK7-q-7cmV2|@&va@`ix3W<VYYW^QFZZt zNuk5C^Gh6#uQU)l_rz!O_L2ud=|`k>k5*RSE1VpizxVH<-ia?a)cmb_%;@j!e#JQZ zu4k}RO!}Swahn+D<nv1i3tfz^Gp}erroQ<9^GEsRw_Gg!u1&f8bEcbh>0Sjv4%NQy zYuh|!eP%Ar{iAdx_oeh?72|8hb3XeBpWl4zuM_9uRzsOP`xw|A_otm~>sX-UCCWC_ zaIW2)<h&J&AI6+bKKRGgYu)9aA&nw_oqlm;f48@uvtw)3dLWcydDydD{Po5wzocY} zHtth<dgA&6*4cqyZ}ajM+UhG@=UwWclo)dF_>4JE5B-$%W3ys0^|rd?*}%Hy)ADJN zjjoIS_-Y!vJ(`#^BmIf&JKmK19?{Qpe}6W6q5u4fYUDS~EB&AS<yP*g>en}ZS39xf z+ENMiHsx;<?>J9<*;phf`0(Og!(+dfO<(mg>r~^<QxZ-SQYyK4D{j`Wkzg+s@fW%n zsV`E@wyh&rv4VMB?TeF!^NbkeZhzgP)c<i4+bluOUfC1xHZXRvc&WZx%`bHJ|DgwO z+@^H1NW?ULRFX}<#?$}h6IV)<%SqcNW>$+!i*t5F|A{g2(+*g2@A<?S$<Xii7y1== zzB?N5$Otl=%(^FW+^KQSi&pow9>xU;OT53&F|O*%n6gEK=j9B|y#abr3OnD0CvV<n za`(>3Ee;HaMczv_=mqck=rdul0sC=h9mWH_w>`LmmKv%a+Esnil_#XE_iW6;OWi#y zR&6VM-oj&Z<fEbMM1}@F!FA$F!Au)k)4!}}RpZ~t{qDy3i84<XXt13*!?!M%zt3>) z{i$m`9(S&2^k&sdRa(-d?$_;UX198)m5%tQqx-*{{#0Z9FMZel{D0@(SN!_#Q(yYH zK9>8&(>H5BhGf0C5zbsJk$Ry($5=Rl>Ghm;{!<RjS8}$mxMb7z;qUi*ALr-C)i<4} zm-xT=+5HDQW`BQDz>_WM%qwSdC86!%iIA*D#Z6-R5{x#oE#iz0ti_Xxl0sGX$fSAB zW{H^5eN8G=IcR;lc%oI&Jz2j!9e2uq9ow~e;qxh~>`x72+bzPTxas!Kc%&P&<KTtu zX%A9sKPuLTyUe@Ub8$!5rQe(kZ=TBd3Y|IM@$%5tSXJfYChID#88*MV7H71%{Ob3= z`Wuugw#0fRzB?S4a_yH~e{8q3dBOZg3nUYM?pZX^Q}SC=$)#9j{psRo#4Hug{(A8H z)z7ErPrd)M_W!g$i|_x)KmB#n$BoOs$rZ^nTC%_R^7N@;`U5rTpL-_VRkCfJ9;xuE zFXO}ULm`D;?`Kq-TD2xl&A#+>*VFiu-7n<iUK@PNo>BbJ{tdhI$zQSUvo}ibHHkXG z_s2c!FH<~gWzs$7m2Y?M@4J!u?AI(l=ER>ZEWQ!-a(p3^*X6CWmXMwIWwA}*hlQ%| zJ3{I?CAjuXXNg}{$RwrPest~(bMyR|vX2=%cckBz_6h!Gxmo{0%|nHo^(X50H+(KS zDs^z?r7Gql4NjliomqByS0C9vZG)G7$f}j9shZv)2h@M8v2t5^Ui-L$;%D(?Tap)N zb1L&}>?t_A)#2<G_w)KKZD}tiB!9bm@=U-7`$~_^f?rxMc)oXke{-!hC(lePo$#LX zk$v*IQMav%V;40(`15k6spce2eLl<e7VC_Ebog1EU-rmT<j`Y|!v&%*yyjmnQr=vc z@v`=#9gm`re$u&{IzNTJb1aWqVD`ynO501JJz?4RnxvRGr5wVl^aT#@duX`oo`T_K zQN?W5EnmJXE`PR%O}d=zzHZbe7cmR|lFVu=BiG{{dj-zjKd{mIu4*gyq{kf-m&zDT ztCl=B=cN0wNp_vz1Lg@|(3vNFdZnp}T~*z5cdp$P&L;!DC3UP>U3q7*{7y@@W5tbI zmjz$?R=a%OI`=|ww;|h2Ig&eE?g@h{_W_&Wno|;GxgsmGf)+$B>=S(uyI@OLK2!Os z7cN?wB`xiS(|lW(JUZlbfkDHh^}>N0P7@=gc>Y{zSiskKB26XWTF5Q81B!Z;VNGIg zJ0v^H9w+QGo_aCz6hkIMwDSeY%iEr<UNh0vt$9P;&Hv3`oa$STYqBjc=c*2$wtPvx z>0_<KaW@>g9SpL!IsA|CIoaXstr@!_re`X{lAHd_dS6Z%Cz)KD!4c$oYMpiZw1NXE zR`Tzs$F34Q=~<xNvB|q>e&th7;TM-5Tx4yKZMy4HpyRtiD&K4~lK|iIOS2escOMJ# z?0z;U`LDZ_;}Q9l(o3xpE^AIm;HjA(7#sgCpklM!fA07{sXO=W`d0G)=7;>U-}6;X zH{bsMCSYznTf_;!znAX4>f(LvkdV6O_u=$q&WSxm=L~f>{z={V^7*X2|L@(tEiqm9 z(f`gr2e0pYrts@qnbiOLXD_pyk_<fV_-(~4i5FAu9GJwZyeueY>8#(|9e#S=u)MoP zM&aMb)=eH0tY%GS|GV>APD?n0)$15f1F1(nR_aP_$|l|Qrw{GA@c7%ggN!Hs+_*6F zo2)}CThz6*=l_B`U-Y&#=6UQ45n1?P&GQ@QnKSqMB=%TFxIKApuJqUJ_|3lkE#e-V zHru~`B)E|~p@)Z6_CQh8lgSopeoGeJIFrNl@#BgG;pH=yrhMB{^pPXx)NC`Cx=GI$ zD09bZOg4U{bM4r{DOU}c?xuExy!i2kD{$Stxqp9tT>5A4{Xe0R^E&@*w*QyB)AGMY ziaTFZ=9d#jAF3C>yw5yq*_s1}vkkAEc+ip9zwEaPqpkM=r#`nSTFSrfEY{4{F-^C; zYuU#9%}Ul+>5}rYn=5#C2S!hmVBC8_vE7Ix&0>q`MVa>*zeIk=C@ZVF=$>-9(QEy7 z`cC&5cPCo&Z05Qt|0%kqs#Eamt^ZEZzJE$Mo?lNl+WpGCe^&E{4AY!}1F+1?jR ze;3x*PwTg<dHlETkLJGbP1C;=?A>_4^2?0YV6{yWdP}}2&n>>O+UDJb8Ta_-h5G*E zes0ofb-apgzn}7_n9tiHoUbpqQ<wJCq*X_4n}Tb$t;(V!FJ-!VJk|yNyfeL|X2bFT zxA%Wpn!P{td9oA*JQLwsJMGf-+|KjA+jbT)$8T|6TRVS4N#Z=YLd~0-kLFG0XWDwV zQS7Y>%W_NQmx(vnV_)9s@LAn4Gv~{kmk*qaYJ&`au_x6(@f2i^R4wj1epUIY<dH;U zn|VJTx|#Qj_XICUl8iVcvhvHzC(gTe9+(!sdtEwnwHCAb0fWG}<j}0iue*{Ng`*ek zOz<#E{Hc`c_~B~oDG||E4-eE&oVeQQ&7sH1tG~0Q%AZb{#$n^}^6*UG4I372HgXo` zbM3qSd(DLJh4sm09Gjzm3ErxGukm8_1ok8Cli3PYlDF_JFfMsK&DijP;4VM!<!4J{ zTsDa_e?5Hp>xy;i><1R_X426xGknc2x<Fywv`x&4feTa_6ndH0AMrV$KH+Rf(aQt2 z6Q!19Gfl{B_?<s3$?*Nexz!(QzI`xT{oJdMkHKiUc~H8(clI@vDe@LtuFA1_j1Kde z)J`cg_!X+izkHZ3p>bK>^_0S+IbtV`11kT>^Z1*Ia=kHLQl7k)<F{q+v@ZvjH7~i= zyEW#Od)~rI*@jh10!6ZK&z0v7{>L40X=cF06z`=05A<g1JW4w}`=P*@t_^m!*Moeu z%$rKfpR&H+x`yl4s;w1_%2$23nK`^Z9ABaMJYG51<Yr)SkR+?|!?G<|UXI@8a?<NB z3as2OZTZtY!yr3$|A(XJ^V|M!UH-ei((PaTo)1y~-`9U|_P@D)hrs?*v%{ac$+fnd zUO8yG!Dn{g*37?xOE$^<()zSr(scH*|AoZ?dn*5W{rm8`Ucr3*`zO!7@!kFBTagpA zUwv+tqVS39-6c*Rrc9{#cI$<9W=jFT%Qc7EV@pyRFB!6Ln5-V7(%biT=dEiEffAEn zsVYobYN|D9qL_a84u%)%9hN5wcTPHe_~^Hn-tsU1R&9R!YPW91k{8F;bf~l%FOX4^ zIGu4;X1Q`f;y2GZ|6?>SW?yRlZOy58W4C9$)ZHIvdKmiHFUpu0CQrF`qrCO^s&wTC z|Mr>eC_Qy8@8j`BObYX}GHPs<9d+JDWZNnnk-cK+yQ?s-*I3n|P%hD;$Wrp`(u+zD z_P(t7`{P~pr~N<U{~PbLTD`~Wug08RXWIQN4_G?v-?~rVwOS(L*d$&iFE74V@-=sx z%2i6kqOJeGUzneDVZLCpX8W>Jaao!_OlC(uY`nRhX_w&U;59p^7I9Xt@~+dHHn+X? z;*U*Bx`kG5Pvt*Q*SBK7)BVet+656OcfQm+CoFhntEt52*>b90j23LCPF+Y{c)fBF z2hRe_{WlYGbq@U#Z#y5p&23G$wDCTR8>i=-vDvrbWVY0|#4i^Nw2pf%JD;4VI+=YR zzp~iYs~gWJ)cpK^`enRg?}DR~R(_ilWMAO^cK7^QsRs@){oKHs%_h_Mgw?y#a;df~ zV|T>2r-B!s#RPrmHvH|l;h2S=h0GSgzj8O9ADAQ`y8f=G$i<tJ4zkrs{eCbf`5jxm zWzmBjfl{9j1pNHzy5xG<>jwRX-=QkA=6pJ_liTyoO5e|#vNLrAr9V8>y!49y;O8gF zsY@a!=pHS&&iKXB^Zc^O`^2Ap|McR#$8_@->l$>^Kh#;ybBPGsov<|0Y15N`-BVMa zxmawmHO_oG&!Kbq>P-`8Zd~GQ70|27>|7!8<xJX!JCFBVa6b6pN7{Y4`QEQP6Q9m_ z6EwMT@{RI}smYTHzIc4P_HA!TOixJpyDbrmZYF<wk?>yULzmw5M}8vKu;mWPyK9`~ z1XNj0oKMsH)A7{5%qwlyzHXDZ3dVI@2V$2zS~35v^vfKs#93)IcS4149j%q#6tm!r zMC~%AZ^kD=rSJ6LV_xXM+z}k`E$>h3u_MZ-^?u1TJACl4-Q732=|fx4`<q-YUOhoe zrc9ogpppHe=hv3T%w>CxxUTP>x_tWNdBrxtOC_tiLNpj$8)nW>uhv&EdTt(JkmvTp zWzBiTv>8|Y0`z*$O_Hy$_hp!_wwu46@r3sE&ftifj#6Ch$L2O=AE=)uc2MKN?Dc{I zBJyG)Vr#A+FqV9JXs?Abx2fE|^{TR7lf0YnzdREl<rg<LY_K`w6p`fBe5X{zt0$ zpZV2K{%ha+S#P`eS-oz%Yj5t9^UeK->XaJqzT2Www)y<5Mb~Rv*2rXj+&Pocr1$?z zmKnYO_HA_icYn`4rT^uhSM1+^<5=3k)u(2;Tw?XpO^Yg+yF^m^*wu)mGwRO#Z)jij zo4LH+W_8%4Kmo@v2Sy$3EKb#yw@SZym)%lc6LWb|rB3(-v728vE1CV0F_){Y{3H2O zd;UM^Pyhd1G=F+{_x>B(&aDVtsMAt7Wx)yg+#t6!m%KC9?+-gXm@}s|!0V{S>7FFL zx%wOOPafVY=wkL=IeL{rl4RSdo!92-7+WofX?V)3W23PB*Dj7zmKMt<nHTc%oR!i~ zSnK=xvyh)a^v-J=#S&MD@)q$Qu8!ipc4Knu-W0ysy_Ndqw<G>P-Tp6l=1t+(Y<$;a zq~&I_8_dtX$J?p8@^D(t%%{gDwf`|tPQP}gQ`Nr3_+!WPXZ1I(*40h0Wj|FoC$OS! z|H-WhDkj&OoOfn5Eq!U;RM@QJe8gz3b^68<ujz-|1?^wmws@QBVU;rZ_aRON$-Qe= z)PHOANEWR+#PKNo%49zW3;7N2&Kx@BqwRL7Hmdyw_msl4motj@8ZJ<8+3UE<ZGM$9 zulL)%rfbf272CEyRIkW;b@q<o&Nv&nkZSw(l6&$kPjyP(O{sd2>0x^Oj9swvl;}y% zcU``geP&}nQ@Kn~{8C{}G364Slpr}z9oOwyXFTVsPV!qBvv`4gzr~ugYNcsQMZ{08 zZ{z!Iw)oA7yp-IEQ~f^k(?hB~zRXl&Zep<e$Gq(c=XnQ{T|b45lLG{gexJ<wuKcy= z#V@DNxRktk`l;{N69K_bOE=BUnfuA|$$yCz`R4Z~^L1!;7X%$pTG?!CJ9m9{uj&!a zj0Z2@OmWRl+~4@CGV!KxPtn7_iEo}|m)LCD^87)Srdv}En|$?&$)dmATWdtB{4eHA zJ#OS)KYc-5%DR&0yG?kQWCiOz%p}k3cmL-#TcO!NGULhbj2K({m%J>357TF^N#37) z+1K&7jh&E@-u&IQWj8G!&0hz-(CKOKr&)^>b@WwVKFYp5C!~wv#0S6VTBbHJd;5Yf zH{@1`cRar=7H<Ch?Pqq5e#Z}53m5n77h&Rlx`V@^o*~~grP*=kA06BGl9dZHxc4&K zH%)oSruvXgj5o1M+r<C!B6q3Z)m@&976A<Rein2bnS5#X8wrW|zKthuJv7q$keL`; zdBRVtl;N#|phsbKhQ`Zz(=;0sA4rM#Yk6osZM*NCvE5pDGiM*S&w)PC8O774Y4yH% zb@-lO&pej(1$X(krd75?GD<3cxay<hdoN~7<;reu!+Xx_f@}T;tbD4)`(J8BMav;o z3GvE|7B=0gv-|TV{?|Y8_3N6S_3upo8~?43^^bnCf7jpU$*R1smwL&rS!&)D!seat zG(%A95>v8Eja}yIKfdWd&nvy(`+wW}%aT9;AAA3I-v2#2Eh}&Rm(ac4^gw#vKb{X9 z!In$cDreqN=3@{(l*3ZDs%QQaZ6;-BF0FZsIW>H$#J?|ab(IyeP@mEBUPHFX`{RcB znLHa}j;J{BUwEi|Kclen>zzi;%LVO)=Rf{7(Pw*cN#e-Mf@v1KtVNEq7$45J<aErn zG@7t#<<z@LTVJ?-dbh#UDu7+4VAlDfeM%B%ZFNK^Iz?D#t|+zYv9=8oTXSir{ZAL= z++BT(yWSs<lhgdEY4-9-=ibsovm%&mc^Hd&&vh6-OI#6bc0JknYw6bhOA=DYe*H`P zP!_O5rbsqx{+aH!2lL#fUOIm({*`E&YJ}AxZDoc%cT!^hIPVm{rnz+TWRp(i9={^{ zVtsax{z+R5mK<zfx5Z)owI4k*O%8qed1uv=gO}7l8p*D{m2pF+<lbZ_rKNVgZ<cO6 z;`229ro1tC_q9oaE)z>+{O>(n=^U0VbbETQcCt?BHRt2^ncHpp<hUnFy|%a%dFeVs z(ZS7`83#&Mp8FdpSvl3$ZD!~%2A&?ni;5Rd{mJn-e?ntjbWmI7^|RMXy3%buCL2!r z9k(>ae(B2V&G{EEJP@8H(l_OB=IXP-jav!=EtF=eG9~A@U6GxC=7pB><IA4qg71Is z>zFLG$o%+%@+hwa*~!~J&di88eu-n_Iq&o-Gm0h%wS84mwQha+Li~irtk)Hq(`;<_ z*Nc41;M})Q$nEp$Esd(~T1ll@6Mn4pdw%QkyF&Ss*<E};E`HBw5PNR)C73Pf-=Y@9 z<L=7xZdKEoE-Y-fjOb}Uo)li`RTyxla_Xs5HXPPpj<3`@;Jfa;--pW0XEZZH4DyqX zduyue&EodTf7bpx*p2U%@uRYLl?CbFUO)OJ9NfA7;;Wn6{^+DIpEmhy!s`8x_iy9l z;J+`9d)mn?eCv38>y39Wt4u)KCl>D#Te!S;_H02T?Wdc)OZ)OQ|NUI{^=$OKw>DmC z!QwMdsVvg9b`U6)l5ltEQ#^I<nC+@XA7h`0E@AXdb`La`ROWEC2;x-eI`X1*V_=8E z-?EeGOLnHPE$sVZ$ldyQ{<jwb%8MI(#Yz}<x?KDkz3C*EL%%~m*Fok>cVh~-pWw)r zSvkYO_C?>4Uh^9dD|b3gSk0H$E5A9Q;8GCRX21UOuw}C{qm3VGv}$(Nz1uo1X#1a| zL6ssEyhk&uJkBlnkZ$I3fgxFR^?bLbfj!#~R4ysdTf)eAG|*i-*5jJtY>%tcwn{!O z)mm0{>A-uFnm$iqvxBGq2}Bj^ueY4*>~1O3_vxtq-&bN^_kSz-ANlz|5AXkd|NqLT zAKqUQC-5gyV$P)-`+2x7Ts)Td=Ggqq9amSE<atDkng2^a`@iTz$A9xZx9cVT-@m8y zKY77BfzRIO41Dc6&mB)Za)D8Cr}IYrtri-|tT&1`UVowC{5M7F)U;xQmo;h+5_4a# z{3_?>&fu|F@%!l>p{<J<vSr0Duzxo`(Vi<me_O|=<Ink@{Qva!|KgfWuK%yk{AWMm z)T@3s6{)=vHRtuhUU$xPyR0!qZ^ODsRbD134#R+^(}G_v>=Xa6`@N#e@0=+!KC%UL ztoTyT&7hYeWL$CSgjn-`0k(;5S_Z+}KEHW)*J8~}wo`#iHhF35X3u}GUKtYXXvJ13 zpUEa$x9g3e(Jlk8+!Z^&GA}sx=KO{#wuX)WES3MxP50R)+!nlIo=C|yxgwjAe-{N~ zrmLNw`gq#T;ODk`IVP|&M9h4~bDV$f4Ew@1(^<K`&FP8$EUzweU)&a+y0S?9-P#!D z`DG{gZoho`jK$kfQj*bZ#p6ekr$6b;(zhyGAlPeJ5Fa@?-bm%U<($qt^Jj7%H0%w{ z`5x<H{!oT%=Z<aPKT76athcIRGt$4YB=}KC|HFx4R%r^CJ0nw6vX>~IFYsS}I<l-t zefqZ4T#ngJhfdCYd9M4*v;2!OCR<O(u^(Y?`Qvt+d#lDqPs<G-Jntn(F0t-m>D9k{ z@oWy${N}6wzSx!?Vm~P_Zm7Qh`Cb<Rj=y>}_Ve!CJa|ttZ_c9=`#uGhM}0hMn%DVQ zl9zAh4DN5uGA-%`KMM=&`h(X6e{&JA`qlnDtBbq3Fy>da;K_acw(j#bWvER*e*Mw` z5vxAU>`q3u3SZ&!C5NZ>F-e{kOx`->^UXK2S>~L6zd5Hn>-J0YpEWG+C4a1v+9BuY zXZ1kx1c!TzoSxyi7v)Lq3;I)T?SHh-MsH&Fk>BjROx<eYp3!G-sVA@9nWg{tk-B@Z zbV*0T-IpHoeGjdbSy7W@V!n@`N8Lj9Oy7ZT6P8Pz_pV%aM_J4N`r}>mWElG2NLeg5 zQ_i~g#y#bE{dEHm<pnZc){8c>><!dE|0PCi;Y8DdiELtScO{QCbN1U9GAvxmc`x8V zu)u}W;^#YdsZ?E2y(i4@-sie@@}fUIiYZfl6H@p?dgM2n<SYDPnDB9rfX?#|$D#u! z_@0)qJ)w~<r6sUWif^*d&!g3m%}-x)FqD}*isDk*FJ#X->AAn!wFjS9_PB8Q7W~`M zc+EE0XV#V9oJj{cI}QXYF4R-rzdL1%fQe#-!>$-D7Z<y4ff{bY7q^^QVA8_yVnV~j zm)V6e6R%xq(VTLU*D!u1TVq&x#(%fP{1vemOwQ_Glb>{?^qf`Y;ph6<>w2AM=AHoU zYRH-RKYM50w=>!Q;?K<b|2fj`2gBWeC+knPODI;kh;*#~dQa1ApV{{oQErd_vm|C2 z6~*VR+t$46qrJCq+L8bK`+kL*|I5#RXY<y6mRDl`(_RLnNs$|l#XUQ?^}@D#mQ4$L zdTva*)61xIIdl7#eG>MJ7FuTw<Th{lzO{DKqWEhafqE>w8y5RaY+WPJH(6m`uw<S` zUoX4gH@CR^^%~nB3!59QP5o+cD?YGbU7+;Bru~UuHh-?TsI>33$>|fuG98K&QpNX% z-HCO*F(YgHRY}3nrYs4AD3id|8aZ;J%O5`Y{5_4csqk)~bS(b_5r(?^9d$?VJ3q3} zGcuf=rpKvsGsXCv*z!iPU9LrYm#lq$!`jNCjw9c><;?0}Mn2=cd#p46u8uLkFzu|6 zYca2HMc&rkqAIBsc?@ZywkH|_r*^$P#Hh%!Ew}N4i~&!V$I5d%m3H&Ah@RYirf_~x z+LOC?ZZc+NzW8v<x_ipzZj-dRd!O8rIPWi>(zjH2dQt9@bu$}mo?M;vNwMypcdB*9 ztMrN47fiA~d4GR!JFdL8^ZYu`#V2l9U;n`#e7?Gjby4$ApUJP@H!Pd=(xY!no&Nb5 zrPr_d-JI}>S)k=$;4TgJ&Ky$--zl=kc(!!Jr5D?N(-(NRGV1q*yLVUWEBTghTDkFn zVZgZ<Pnk#mYS&!c<dW%HYvvYmUe+*PyH=v=S;zUHcd-dPH~v??`&0AY?A^?BhU<RF z{&4?mY<TLWj*U~gdv8q&LoC<asV7(8+y3IhwYf3g%60#0Pu052QY%}0asJ<#4UVGU zos(^^Mz5^3sTOhB*7{#r&iIUbv-l$pAFG=aCwBcRUYBig%&N}8s)}v4oAl-#%*J-* z4Dz}W?X0(DYBq_Sf08M1=pJK)f1>6AncuB8ZyX=F&)+2Z<_-4)TLzy)KLvM%i+?L? z`nUPf<^vX6&)*1M!Q@ghr*N*tv>Wa(1HL?$^-5LXRypmt&|W;1ZKLYmpqc_dw@P02 z<>^N>o-9oIADeVP$j&CV|7BIwME5dXYiFZHnqPR*Uo96*Df;|<GV_C%)0TD~`ta-_ zAD^BWlmA@V@2qakEk&YSirycjlk)G`XECIE`O7pjPo8pIVA=|Y<!OS;0tH=EB*b(V z-0qb$efjcXNuElb@9lzfrh6W)X$`IMP`qHs;90;kOXx*POCf_v>Sg0Q{am$H+$>)g zin`?*H1%~0Y}%c{*wZAz#JiunaaHq&P|tKnuDnSO6A!H~Dy>w^-(RB`9xlGb=g#2} zt!xIifE}}1?;IBVtUvE>+;Ns$=QKE$_HT(#y>;F3g~Ov8-!yMc@>0s=NuOfY*OS5B z_ulhOs=e%lt=hcV$^jCc!Jnj`I8XSz;mnEu>rZSx`=kDKs_fVDc@zKh*Y#}quiDF$ zd-27S0}ecw;uw2XWplXN{Tk;z;{SAE&!-4qPWQ9R?Y_>F|N8yc)z>S2)_=Cz^|wB~ zJCFaGxzbg^KF!a{2RN=JtT+%+@$=KpJ%7IypJD8M-r{XjbY8bzBKUsptOMo;@-1ym zzUQXpPq32=vwHGQz2o8?b(0%>LR*_B*hegWqm?%$d-8Fv45_+8y-k(t{;biIf5%h6 zW%z31gFgzH+s&mu&b&E+LsI38&&l?chb}0*|2`{o-V%qt*3X$6&J~}0{(E1n((2WI zH7{(6MAEiOG!*qjXUiWIm{{kT{G4UpqU43&<arg!*%bG_{PZa*Zr|UW-<<m#=bFCM zvVLr{sAqRZVj5$}y#NUz?h1}R^*3*y@TbW=_^h=yQc~L0u$X(3{&SbeeGc|1w{~;z ziU_|uR&2#xvB~jHpGm)I%nZ|uDSWQsX2)IER=RDRJ8kjDiJd9WWQ<oVx%as0fj@IW zcy6C?&7Gj*Ize`iEN2uH&A3o-eBQ}And36`8{Rys+MDjFyFxgf{g;JSVcZ)T|L3zS z-L9OT{(jdQo_I<B8<9nES6ldh8GaS+Jv#BXj?u$a!c~7#!oP3Z_wTV$&>Z8_t;W_| zo7p$nyPw)Hc|%xqr?QFN`Ms%UIk^862LA4x-6hj%o8Vh@@#F3XJEtVBJny<xN;m6O zy_~ye)Q)+ls}En?R#GQa^Is!y*@7STva7@AX}TWPpSRsCPGlv=-@Q|=r`SDK5$s)i zng0>X()LJ;&yP#|Hhw?HpnFKLx-iCU@28yN1@T-Po6^K4sq&}fYg#?FivO*zaaHij zwaqTc(*!PZKCzVucqEmedd**x@sQ`ChVTb-IyM|XsVhEV`HlM)b{C|>x!S$ig_#WB zy|Czfwo>@V0&91D$Mwq3HgoNMxx6M&?r%lbrz<M{;TH}BGnOuneE#O>L-!k-EY};n z7MWOL)gJXNRqC_aq;vgmmMTqB4VIO@z+isxPS{H2d8ZRk<#4U5Vco2>W5Qp-J(@Xh z&YtN@J+C{5D`DQv!#RvXe_vMlTo2}NI9|50=7h%_rj}#!D|Q~PG@Vs?VnySXY1cB9 za`c4eX1ovl-@mP@>R#h+R;Kh*9WS=57qHnQ@52&XAR`lZ{I|)YWs?&x8om0=De&j! zMfpSJW>(V5z8?g_U;bcdyVdw($0ctaMwU(1B~=QltyS0T4sP(+&dE}4XE~LjKQMUb zy#t?4Z=aXXc608Xd-H=2xNbJTvgoT?dW^P-N%9j{Z)Pu7;ni{4+1au#lN}2Ey`7B? z{Pz*vZz1=zW}b=F(n(@cyg{Fhnxd8l7G!k`dBqxU^^vOG$kt(VX@Yj#6Jr$~8I$^j z6T%mN?x@+IV$bS2;n?dfYd%eUGv)kC<`XMb@^UJcZqiAzJsc^zkK<GJl56!3x$XB$ z{ulrB=H}Kv$HME5OaHIj{{MaZNB$XVKHp^`?Zf|gzYsaAr&~EWGk?~Csf)Azr*7lg zq${$;Ug>Q;n<1!au>W7Fy>_+K|NGxg*q@RMcpOus#;E2Xa$|MHBepAgeGk-|`in%< z=Dz!OVS4`lDYs`w@7(X){+Q+Lg4JSszMQzY>6whURF_xO6lSA-_9dT#n%QNNHm;jf zl3Sd?t^dS}si<S&jmHyQUmfT6TB11FL2_r_CuW6tMq3xT*haA&ixPXoDd-m6dO+I9 zZA#|J#3ihrKkZ~qwMt#4aw%_o81hi^WOj74-F21Sy}u1OI#{b$r1UMja-?{voz;ba z3A`!kDMix`xcvIMvol{t+WkW2*&D&SyH4Ee)HtLzg>j9x(8(J4-WB4<kDuWb{A1F? zT)Ok@%SXrkcCJZ!{?@>35qsOIxTMy{YdPD@t|<npZR_`GZ!CJb^7+-9wZC^NtY(VL zP5fYH%fX&ulD%b-=v?KK-UpYPZd=OZ_x3FJN$%wr-kxUsmG$wA-t+h=?Ja)04%}6j z^$TfP`2V7;J<syZGWvQ?)^1<7cg~A{bq{vBuRONRB&bPl`sPWA4|g>@;X2H;$z|p0 ztW7)LpIW&%&%>=mBz^zy==N<c7fo%d@>%ROlY>;0_w8(ZIKlJY#d{Na-JYw?Ve+<+ zn{-4i@_COk%V7)m^9r$9`U|hk?t75q^twu*dOgcV0hfy#7YBs=iLnw}Vzi9SoApvb zUBICS^2z-@5&c^1Gn03>+PG>qJ1yrwRpn{P%=YPg%H;b`8+>G^#!7bdKj&){vCy1i zWN|Iw=A0{^Q)XT5KW?j5`Q74`Mx*M+|Cbk@aO*j9Ziap2zK(Q@x!S>34U;~5yY>Fr z#;vFSbZ+^*sn_%G<^1|2Q{8+>PIAk}eqSZ4^V?r%*vE=|w_emDKhtP(zWbE#M=EBj z9#DRN<HoNbqu;4%KYn~)ti500aO%!!9#hN&9=H7Y?$dRIE!ZtMZNB%UObhdyE@fZ- zrXOT~I!9&g`JLM%<EGRy75KlpXLFP(e*49O)%MKC%k?jAG5N9BkDGgz4CBj>GQ8{) zt@Vz{-kY7h^UqG3*#1{lrx+?yrt|)tz}2idZE8}5N2*NYdDE+I5|TE%gC8{VC+9Fu zN|$lFkgm|Udkyci5{0MAPGvinCh@RN{^dX8+_n_nGL64Ia!!XL>ckAvLZVd9Tk9S5 zN<4PO@AP}tT%GqzSEkI!;%GfA9EHLc4+J>kQ-qMQodzWJOF{=B;#o${n$tLFag z+fV%7U38}|KJCgPHO*9+4uLC|pRAoPV=GduV=?dVg^0@{kE~tTnwRWZ6=br&@Ys~n zieBcLdEOf)Z%?qujL)z7+xw@@D(J9`u~Nu}V<+k>Y~@x@nkZo5eyQV>#*GuEDP|6- z${y<?Ege;^8;QJs@-=ADEuMx-S-$Bje%8O+`Y-+;`~L&=^WFc{{%@AAWNY{^Z$T}S z`qP?h+2-`(<5zcWNk4YQ@$=oI9=Uh^?Py&2{eHcA->+)p?0@^)+Um{keK;RxW}P%8 zY2qu3r2$7+7I@pu&scsb$JkACYM=H!mcpjh&-K^+jc1I%qY}J(=dm@J?S(3P|F<t~ z4Bk5J(lu+I`9AJ``$Sfjyp_8smAn7?^Me8h&6BrCx!!v}=d+p1SMNDnYqe%2b^6In zi#2>|o~f6+rmZc=tM1~h=Td@-*(<00_K2Ez%{qATH{&D05;cZ8Hu>9&VyaKQb3S## zM?5rzc|sO<kN>;a#K~qp_N+fVsyaf11N_%sz14l~$rP^5)*6hvoLe6!nS{H_NxiVM zwBm^huRNo^D41p1QuarQg00IAcU14YG@(7@Bv(mS*6qU@hMwvjoZfTJd`m90(too{ z&&i$Jta766alz!PKI(eRqKWn=H)-j$e4EF@R@d?6MdPii(^p;<ovK*8AwuBBb`Ac` zH!kbP$L&u3|LN1FYbvkbDLzi|w4JfsqT#cSI2W7t4+DRNjWspz%D#1aI!{?Dvvc~c zXAM1yvOH~e^K%9F_E~=2@~p_|*(~GT4oi9jBnqZ&+GRAs$!(6J^0mEk=R13EG1ts9 z(sszs*SIc!qfztG4e42TFR#sI6v|z4W^E4ZIZ?N%GP7m&t^ZoC{N65g`hq+gi`uED zP8}BPpCB#B9oQ)}S5HB-CScQTX6MsEUmiqVtZcFr`5%`c-%`BTh|xpX^VgAo_N_W4 z%h{M!pTD?nl)mlE#h8|ZJ(t~<ZTx#J`h3g5{t}Db7k%0<&pB=QWL2E^T!u?BOYNR& zzg%it6T9&D^I}cspmQmm7a}*6JAON1rK(@x<CNZF|BuP2koTsN?P;A4_j2BxN^tzR zo*{nfzLl5b4}|MvZjL%V<C<dc*GumoGIT4KMT;HC=nLXr<E+kMXt!Cm=KYz3CFwI; z54X6xxfz@|W%&5|MgQW8U2@k!TM|>kubhx%kbU)b;UCGl#%A9Qmx;7HXq=b(9?LP+ zLwVUtvCPn!ubwq+XW(>H+HYUKu5v%q$*Vif?@1d-)W~o*D1B9Cd@gg?sNZV0$A(F# z?2RQ@iq<Nv`%{<y<j|B?D{T8Wb{c)n6G?WSvHatd$<0Mibhgag+|hRT?%cgAKVALk zRQK-k{K@<OZvUtIv;6<s|NCNM|KxDyHEAfmP@ABCKvU!iuc_#^Jgx&;LHCq>ZrWP1 zM+YvM!TE31Ebcw0*F9!nGmv4srtha}p|Ev^`5d_yst!y%Qb#3BW`EaZJ$H6i*Za(? zEWNBNT)Np-vA(!*a7M}c;?CQ1e1k-@7oR?NA+O<0LBx~p_&=&9f4cMj>u;O?{IZt( zp9hC?W3P98dBvQS<g};UZPD6>s!wU3lJ>Vhty9c6H6<{zCg<{x`R7#MfBS!ReV%>% z>9ez?f4(c<C*EfmyX4%b*lithixUb&GA++)t&Om4l2ustVv<4xxBQ-)^GxURe%`gq z>eT7-dDZ$&EKWZ~KN;@OkhOhc8gzWlb)Tx1V3qEsP5w@AgtPZJy1UD^huP1WbxZm3 zjQ($HxKFj5@K~^SVTZ=ix+yX1CCV7>U2oZK7I8|G{Zu*inA`!*Xsgudy7T#mzx;nS zc_PchxQ|~g6aKRXY?9T#Y>~F4=*qt(f>*qFMGojVDDKbyx&LlcfZO?la?`f$n<yC& z$tvd8X>w+VT;dXg*NQ(nU!PE3tMn-@+-1RcK3|E{jRrr1gU?;Q=&}4%#-Rk!%w2&S z-eq(t_ndJRbL&y>pMF?phSfZVD4%bVd{aGxicY_(U0%Orinh3Yb=aJxa}JoaMYaF# zVeo&<bB^b2V033m?X-o4LOJbo_A7PwSCzb5AL;hx-R{etwQuk5+`D&b`1-shUII<+ znJxxVnUi+!TW6A@+Imdp{>KW%9+|MN9ZMQhW4|4U6#M<Z=eJ}H<BKovzFyk;op<Fi z)k@bJJM?A0ba||*e-)(j`q0ds2h%q?#=Q7>Bj4n~mM4tfem=7r{hcJfZ1sLu(JEP; z`QXvb8^34$@!2P39TQr?T7BU4pT*~0-<n$aoR4_@Kr{1J*aGgo{tcnUhj-|G$f?tR zmzv}7N_Yp?tqm6!D0s8{F(^EA#kKRHRdv97j?>1^Y~DG{pEh&GImg`M)ecT<YgA?} zV%x)bt<<NoIp_3d`?s%dZsT$<U19unX*y@6)vt{*W-|+2cP9F>EM_^o-g?bRt=5$x zrw*Q8@!vyM%4FXfP06`ETc1Qq>vM2%Zcxj99PAdD_xShZYZDULO(In5e+CEr%e>e# zbIFRY>TUrq^3FeyInv<#;!H<$;oXR`OET}RZpGOy@8FZ#RKrj*yISV2_^HGT1<m)1 z<QCqRc?jBZ2pT7Rx5~uR?e5lOwfi@E>f~Y?cP&2fT`IVy;V#3x8H>c2%1<u-^2#S^ z+24>OcTaT-C?$vQR)3kY!h^?dH;cqc9mYM`6DEA#_qt;Rd$uXJqr?Y^#ohq||7JRu z{8nEvt)pP2;E@ZKNt#n`mTuKn>T)t;IFonYZ9@}VWdPH9bLGsmfIm;?|5p9kzW;0X zr}F)OKF{9xWp$}bmw}c;yHCX(?Z5s3>HF0zA_PK{T--QvIIM(onAlRETvvI$uT)c= zyJf8$lZVSOw%H|HH5Q)lF1@+&o)^RN2=yyptml23s^EV>@j(jL!~Gs-mP_qed#JcI zbjt>=>>5@+tu?`)*k&laXHIZEKE=!N^CR^D_ItUXp8h$vX65fk)Av2l{C_?A$ba*F zpG56n<-7gM{KFoXyP&7~Tvz_f6_SfxS8jE4Sv=|7%17)y_Ky2i<j?K;U4Fmv<+1;- z&;I!T_w0}QudlY=xp#Kf|N7qat;X}rXPv3z*N;CZb$9#3V`mGkvp6;$_}dg!QO<RW zS)GTq<LIn=_wJl_mp`XgC8o;we$Ry0>ET~3om$^r;C#r?9xpM=I7mQJ=EmZkA5OfO z!H}o$DCN?R)<A)I4g!CICnmF2SZ|x!zGT)pvwST!tCHuFc{a+in!S;g*x$NeS;(x# z-Rh_n-{XiEAqUo)?=*d*(o^v1UgJ%MB{lo9AG?cY`gzS~-1T30#zw>Bx9sc0gB|%9 zI<6|@)upb{Xq@#)BwNDYrpVcu&oj3B#JVF5DPpHMC6a7rItu2BOq{oOYE`o5QkBxG z!;IN(e}yhCTJceJhS~+4r)d_K&R@PfQ`L~AsNM9V_=A&^m!ue+IMDbpN_z2BZNuG* zW_!5CG~fSZeDlE;8G(Ny>`yLV=(rXB{&hn}gvRZkH-mSpUpw2>S2`s^LZhwk`NUJ( z5A0~?`{sW9M})mhN%GFyt>=p!pa0i<KQH(9x4GNz7adOAboIFW{##E@=e}EC@$Atb z>0kAkzhb-Q@7z+UvcN_2hS@*K%G#fwX2!%n{t>~VsndV7hi7J%LssPbn7!^>etp$= ze|YJx@AXp_PP(&f=lR-Lw(DVkKdZ)vs$}1_TpeoEeBf1I+vXeI=Q`fYAATMYB&q&3 zBbxj4;+%S?ZDu-KbX@IUnazspV(UKh$Y`4B$rEYIO3obZicy=pcenjK*^?Ru{}x2Y zsQEFAs=qRL92{sof77MoRqa26`CK`BrXSz%y-Dw+>~8KKD+F8;)-Kq3=!SE!ZN2=< zk3VDocpYzVeb*(qc=0~%c$X#5JGRBox2=A*>B-mE<_9=Ur+K&~Jdu~kH0#(}>2=1$ zA^qCy#9X~4e*7<H#)a)_;{C_Alk@q#-*)kf-d`#bln~+NG&VkEXesl^<XGd|<@@Fq zOT4%%YGa(WcPrlvxg#B(8xG~4Il^su_sjfz+Xvdu;{_9^&G6W*E^T~B((afa+lqjA z?rUt>PU_v(hWbZ>j=QFvh;a7r`x+-C_SCS=|9bMSc~uNHyH+o{u_oP2<3MGotl{Oq z%71muZrwVt^+;gDF_U?kNe?>B+@wF8ys&f<Tfaw{*7BsHsVsBd58t=o<JcLp%1KqN z!;HDW>86g9U&l}Vtm5c5uC7&YD>NQ4aF@gcWbmC>)M9unO()=(uD9Z=n~WmjCY~uP zovO}B{?!erDzDd{pL6l1{Qh4P|8(cq1poW|{(pqspO5<w%zSKk%%^u2SHc{|S%K^) zH!dwVoAn}fiLYn;5|3w_Ip=9klH^^etj@E)=zzz?8;&p4&P-pF&Gc<nW`ohviKz@# zYaRXV8X_6I>#XJ4O>TW*Ve~P{d7{Q>#P#fRTZGivStj`l0;}B^9fKuzwr;QJmzwT= zu<zpA|2H>_e|mFt>Yrz8e%61y^IFXQ#{=c}-{uQ$U-Oh-&h(1!^vf$fvUnMGF1#9~ z)XZ*r-KziJ;zoh>RW0xKe!u@!;qTem*FUveyn3G}_5c1n-v4gPK0hnUv-h8UILV4l zPwxujkK^+DPcADDJ%391nvk!z<^DH}>xD{I-2c9q-<~i1<kzRq40cXBy;{5S>&fFn zqC&HZn)+s`@P&IlzGoOJRqP|W<YL@{Ia@Zp@n3jJ+QrRf$*X+hpv<Q}iUHiqqZoc_ zSf*+%4;9u}=bIM5xS^-Lt&KsYbOSfL?5QOg7u<vRloe0NU6|<mz2*$J(xTq$Kkul_ z=PwlDFTATEE_$Hs;Jm9d+^s~SmbeC&IlRm8{4l}OV3tPytcf$dPj$?!FL%h<xKsW) z*G<M>>is`Y|Il2}ID!B5y_DHE+LqMU`b~^_oqqfI$IzO&OI<Dqcl<hLyJ&gmw$kM_ zALqACvb6TLbWCjE?qB@&rnvjcv}~?(iZ|qZ@2&c>SZuGP{M`DG4FQbHx<h35dQF+S zpu6Hyn+>;J&iYp8$1T6t$36S<=&12d3%2|_ckbl<f9Di#_PFnOZ>U*hs_Iov8?}kw zYWfT1WBbpXSuj0+|J!4ir%b$OBHH)p($xZ!j-`8ajJGlIKGbno$@lXNuNj-FN87wq z(<Lp2B}-hNMaUgio7Kl5+SkoCGjVTUufB8r|1;_K%DeXo#jLLsf3fuxi}1q34&~>v zPAq#mVOPq%WGiQOnQm9^qnjsYDtO;!Z&lqibK(E*b{UT!Kgnb$=}63b)2Mtva%QNf zo>k}91dh|sY*^!4o;qK=|HAHRsKZ*<Z?-l{6GVP6Rv+~X@|*FK<B=5CPT`229ZO5x zdnVR~dED0go|f!k7A9I=q&vI$b;+#S>~n#pOLHceH+;Nid*0xQv-{mmQy#NMZZ5f$ zIw|SXCjql)(F+E3`zI6xI4!%N;m#J8a4$mL>i&#}lINODs|-69=8G8}d(vWiur$lJ zBv++v>Jzt9g{L_GY-z7<oWWYN=0wuz%B!})MayyoHdL0c32RV#X)U|xa;3T9a_N8W z`6ZsRug_{mtKGc()neUpo(A{wsmJ4|Xgc57opEJKLgqw|^h0jj6yMyCs#>!k=gR3t z?Q7buZ^-(}(e=2Wx%X+vBbGPZHj5uV)cLBqvV+H|-<?aVf&ZXJtC!2Fg$o$P<=g_r zul<%XW_(uNZe(H5B$UjuOu6@{zy!vmztc4r^kkN^d}rA@?UdRJ*{&DI*V|8%-}lSm z-~Io;`k(%m|FiPW+`1Nz)kmZ<m$G@Ss=6nwoe^_Hv>_^M-8H3K6_y9wg8lwI68yeE z*yFO}rtj+}nY(bDGj-J2r51cpqV?~>i;Xi?+*i6K_(m?7C}cA&ifPZ4>}^vWyiV0j z%KKB?v1I0qD}pn^rb_SR{P2e5Voh$hWuC%~-GB1~o1V}9_&>G(kNxM4|LpRAGMLw; zUkGHJa7ttA5@uPE8CuWz+-L1K<M7xRvui@L>S;!w$xNRsH#c6Ye!o}wxNcA3?`OU4 z|I!cd=S)dEY@c5+jb({YU&rAaIv>O3_uiCY5lpS9?!FQq^J&Jqo$CHU>MU1gq#O@D zSj`gaS@x%}xLCfg^=zP#vTlC<#UnR;1j<jVn!QUtrGE9v{ssQ2xmT>bUq4>pdezPR zlxSaYrH#CW`t#@CIV_K-&6TVSPfMPlpHve%o&Uf)`w6>dELiq&ho1G}s_)5)@7KJQ zp2(Ih8JgNDw#aJM<|(I?I1dYR>-O9z>6EH=3|y7V|IOjd#9nRIEmKMwI^I7vI_6=2 z!uyoY%b7tvkB(S9>kDUidWJ14bM2v9pIuk^GhU9hj`b8j@nvptm*4vt_K{nv78Udx zCAt2*l3HKB>CAV1#iE&sR~K#DRX!($UuL=NuD8FdrZ6}2N+-*_5WS%EXK#;c#?g$l z#-exEwdT*>AMZ8i#lpZY*L?mGiMh{L#$TN@r#-d%*Z$(ICz(p0KRiBv&&Rf{%HEDk zGPIt|>Q-AkL5+_+$8_`J$;r|;pC0s|YpJ8yZujfO)wG7tZ!TA|r}Lb(Ec*Z0<EWNq zgdtm_aPv8K&!4m0WtE&}?=kus$j1F(!OJZzK75atOU=6)HUH2B*Pr+H*!`aAzkJTN zW#Ok^^4J}gzq|9ub(dN17JLfx>^&{`KjE_D#%(1L!A#0oXOETMh`#st{_|26^}xQ1 z7lUTXe4N|;AbyUH5S!I$ncW{-&uGuN73B9sQpEDfzu>gbJBt@6?Jy`_YBvAvhaii^ zm$Nmimm6R6Ud<oMCh;dMedVQX)(h=s_^nv|`eaMA!?UZh*Sd~#bzOO>G^@z&d%cyI z|AWs<ubp}-S;ey<rs&eeu$RZBk3}h3XC&F{&J|MCIw3KcV~^;%IX9ywDhlweJ#Aqm zw3p*f=94Yy&$#<<Zo9?p#Lk%#G>xfiO5EWeEX!RLUT-?p<#zA1vVcalz$bw@8VALX zKZ!IG-agl6zI}nyl}j7ee`n>mE8gGYbFt5H-n!!@pnXicR=+x`aYjP(cIC&-b?dK3 z2?dxd-(F@M#yBhU+rlbs-t&T)fo=+Mfm4k3XipMZocv{lh>UBN)FFnT;yrprH)mQo zuIo@pU2{N4L}p96&E)qEFBm+QMYObAy?N^#&?w3G@>;9GsVzH%p9D4@>YDdxXT{4J ztCRfp|04YK{fa7Ml(%*Ynyjz4Qhksv(r_&M!iv<mA4|^1++{j@P43l|ro{@j7aP=1 zHzl|7Y5sPv`jx4Xc+N>xWa6?JTCYwgmo8njMOmqX+n9I8*#Jq+l|?msLi<;6&XD|@ zcbQRO$}!!8Zas?>nJ&phUybRJROR)RtejuWeRRvs>z`UBf9|h(=l0*{cm2mlN7MfB z`~S9|zw!?6_blICI&t^syB#Pw_TYGG;uXu~6JDoUueW7Xxt6{Aea?^X_jc>c9y!zT z-@NYq>$uPF-T&79-YuPwuCm(tyN?9tEU)^z6|Wcf+kLytvu^$RJ%_)aJ?ry0zE$(f z%>%uAu2)*I=PD?hg}ZHPv-Yz4_d>XT%Nff#e#`&(HNNq97<b82=)Sz<-x#hZg8%dw z&6JN8<R&*Z`V=hO`m(v6Y08C}?&=wP&aauGD`di8!SGJ3Zhpkk&Fw0^jYbMeQl1kY z8=J0P(Yky}a~s3&tEZUQPM%pURZ|$<?Q9{jS5YywWwUhe>jjSHvt}G!bf`n_-P0`# zE{i9KvUOg6oi0^uko@I*z(38a35AX?4|7zm?lAjlm9&&0Nj&$!bSJ6Oi#ZZox7@!R z8Gc9J;nsWcO}5XZjeI{%Q?n`3-}Q0wxl|pix6>xgKFZ#6B=eK6MBs{0+0b9p)=aZ{ zqj6QhP`%^pJgX-n#~L<2KNfvDh%e{Ah2OjhMiQ4R5?*#pW1TU_j*X{&itj_cw#ktu z_CF6C?A5zFbEDylE3=IEOuoH4bIDw@!~ex>>RIN#?1>6)zkFj+;({lEj$fhz%HOKQ z?wx+1+jrWzYM;gbuRcpSk@sE5X!$0SkX<@kYUZVOvwf<5VLvse<z>9B$17J`E?<X} zI>#Rzj(F^RlFhuYUE|VP*79?I`Q5qv?{};@DRHJ-Jpc6i|G(lp4THj^zaHFln7#Gn zhgo8uJfqKQ{a(12<KHa5YvzY)W!5*RSGvfmF8_QsvO+0PV#VdiV(ue{<7Dp?9yE`8 zd_Q$H|Fb8&-HTT~uzh0p;@xkd<pmst&kpw9HpvRS^`hv~>_2BGURqf4<?|!gb=&*z zdb4INi)m@hywXx)<o2!k_JY~Wr>{MDeB(y?i>^c3TzfyixmjHQ?d{*c&ra<BxJi6n z`iUFUCO-Ma|CFz)eJevf_vS6Lni9-dD<Ws^Rm)E8(>ov=k^KIyqQRTF>iQejJioJF zQMK)I-HE+dI4w{2`D<$w7xe5-;43NE?GwM^^j6D0r}ohKjix^*7<n9K5SSMud~@OR zN6ywyPR6&{PBn5oII(Nf<U9Nu*?B){&ziR=zUe@wZDsb(6W9N2QLo%3cN=sF?2C0v ze=YA|aM|#98^>!=@8=~81l^jYkIfd6y=T$tWb*IqdH#lM@wF@Jr6%xCk!5DPJ1Oox zL$`Hnd%6(I(&NGpG-iK0d*%H>s~|zS%oh!tuO_x1u;i*{;CSWnFr2l+@$NLmqC8oK zY__vEEhVKQ4{7(tadvg^^UM&)3t`)}c)fzr_bjQL@7wR$<VYn1eC{w?vVV)D@e0B0 zixVu2^x0;Z&X7{DKfcn0XN^OE!lW7ZIa*JgH+ma7Loy*uLCukA*SWOM%c5Sq5qx;K zBg*mWF%GeS%R4H<t^}?tF`KER-?3q}?(sN<F0VsU94|As3HEMSlR5cV)(q=ilH4LM z5+5u2|K7iE+Vgzd$@hP;@88ULefyms|NpVuf4lWxtb20TF*WBy1zzG}_v|@j3*K}{ zzrLW%v4ll5{%!xyy_Gx<f4|@R_T_)$NB?`**Pflruzh=Z^ppSh72eLjyMUALb6?O? z#lzn(`n=z}v-iv4ncMz9dMcVF<-J$xo0F^U!DzSi2_j1G+a}Dvn=R+s^D9x0fgy{1 zZ^h~Z9{F*sv$*Cx-frPp>U&HoBJVES2F^syou?RjdYGC1{*Y`7{o||L&?mFbx9?bn z#g+`4mx{L9?Tb4;-(S0QA@?=aAg#q^*Jsynw7c?DLw2sF>XEXob1K@h%$RyKzTR;T zui>!c-1+Jp+b3JcCns!I?tI?<CTN;#w!Tu7E#rcve<qlClv;XO&Yw2L?x_70{X+X| zTaI_}m-}fcUpb>8&{W@0@c8DJM24u>IrD5D7-eO;NytnnP&-~69di5D_X&5yeBC@x znSKvWv-<f*&n0-?x9i*g>vsHj`ftlI`MV!CdZjuY<z$$2vncGb@H*MoOP%W@(u9s! za5KoL$U4RZyJVjfH(#H;p6~VDv;7;VJ=Xbqh3&AEo9}1AHn|j=(_T6T2X(Y7K0Z2C z`t<DEwKbb859rz|viBtBviXW%S?GR<)8O?*$@E<Uk6MoCuAJVMv3S2yQ`XuV2OHD5 z$Is6V-Xa>dAtZ2S>cTh1EbWY}=f3^i|GoTwT4&6rfbLJh|Mjf@UHK;YW&>;B(~>s{ zF@HECfB!nG`y=@*zYELM?3TYT5B74DMM%9+KUpz1te&@7rswO^eJ^gB{)sXDv4-!{ z1M?404<4_a=48x$YP#F0xkV2Qvg$qNrKW}1eAhS=qhovWpZw(l{>S#u`uvzU_1OP} zFAUaO|149i`}OD9*UfM62URgNu6|K#^z)I^4RKF4s~hU|-&+rUu5{x4kRI*y;G`(u zmBj)6A)9Y=f5`n(!nv32-qxG(X)OnHO|GmylEL%oYi@v}b05pK3xB46y8iRCM&vK1 zd40C7%<>hL7uT??+$(vrX^N`kkHA-&CZ@Sob1wdgn4h6CbB*Z?%Yf?pK^&4**N)t{ zzVVIgk;`8-K-(RacVAkN+c4w#pP(J9E^2G@7F^u1YRU)KN*(S{$xFiNE;=D??qcFg z1T=Yq^rs%$C&!>!dL|)!lG2+a`zxl1WbT}nW#g9QJmZt-#ht%PbW&v3X-@HxS?Xkx zYrS}K@1zM;dp<`o=_p4xxE*{UHS_s_Pmv2|Pr4`2vTJ(gznPZp{c(GzUAD5hCBtxJ zNngB?o}-4ZvCC!UPXe+{;wP=D{5&<5w%c$_=4dQpP&)Y8Md@o-$wiiZ)4Y-<n(T3y znIh<Tx88fc>4y;YsRAX}+Ep9{+D~pVo)$jC!%d-wPhp~!Q;$NX=ThOCl{0k@zPq{W zvv~15hQhmw8)N7HZawdM>wmQVlhg4(W$iz`ud&OYSikJ=^kgNa_&1S>mj9W|V~!i$ zknmiS7PZw*)boj*_AKAU^-}*&Cw}bsFJJfeb?Tq`*VWQ;JC0v@(6>2Hqs;Zrv27Qt zzwuXm{g`cDr?21l>Dq1mE_aTq&|BXfquyrDR7$lFb(kExWVP{;33XiU=da$(@QiX@ zp0h^%{G+zS*$I*_e{ufUU=}u~`TWJo6JHCvxK;)T`knl!^1{r`Q}n=;EWKGgX=`=f zc`jdc$RM%UbzzK3!LhxsRi;#w{W&WY!MRVSBx*}x)Ds=f-ct5yF-=`JvX*aO7&qhf z6w~idwz0lGdwrIo?j0qQOAjtoC0wXTo95bVsqFt<PMvMJ_q#yROiArio);XCuTh@Y zsH<G*F)`8MrYxJmd(U4zj{*~y@k#eh<Jr<PNk8IuW`f+U8pG#T)Telw$f()RNl^)p zo;>+u<<nbBoRhEYUGl@~TkRUh8-|NZRvG+~-({3)be=g~?A(K@i4&hoZ8(#3zgTT< zFSn7;k~wQX^2r!QaOdutpWIbBXW=itmGke_Rle<YU#|G+q`LX1XU|&JtS^}6`s=f1 z<yxbEeTUwNq{&YC>{3+oG4fNS%M(crk9}V5_bqu>J&2#PVZxs7-(C`P6MM?-p4MwJ za~c16XaA@7fJVu>V9y7?xu4XX__r(Gcj@cH8z-k<nS18ZjQPK>ZQrLo<^0E`#$S|w zPMPW9ZFNHBbli)QdG+_bPZ-THIJj5U;DpiBCdp{W@a!3DQ#v{xR^GLh+^{-TE^$An z-~W@x*35G~6l^K>vgqJ0#h2p2r_-<euzQ#NT<!kMEPEB@H%$r`-P+B~&F?wrr@Wic zRg*l2+bF(8@ZIDKk&GW7Rh^7zGF%Yf5bt!2>H5-htv9~<FnmgCy}D=OBF`kLB=J|x zXIRgi(K@_qZqWS+HqJAqs@>C=<)<_CVhV5n_7uzb+4dD)f+457bS#!#ddR*!{@9$L zGLLo6HBXpo7ARTtO`4fM<$0iA>!i7@d~aEcj9<)L&bH<4=Mvk#*DF~bY>YkqDUl;V zYwJ?874bJ*Z;5J~)l2F5+;qGW>lO3!z6IN{_kI&z&t&Y_>TF;z)oh+<+_|}o-NtS+ z!(^RyvT*u*)a8;|aQn_q2LBb?41bF(m=Lq9b)oR_dRc};GmEqYEguU^X*RiGERyp@ zi#cMGCLcpW#l+bP>NkY5EnH<!xPLfvXT_YmQ=j_>O7XDR_n2t$)c@fR+`42wqtDV^ zsh>4GKZr?8aO3>X$Ncf#yC?HL+&rV#=(6ne$7)-<sXPLKQ`a1vS`cDz>D?C1$HsGY zf?n?P$$cK-`JKh@WVcpz^SY$eRF%-K;uJ$2OZUqjl6^bHGhQCQ|M92&_s#RC`tSX} z&YEG>v;R8wKOVLhCEeOza@bMm%(2g+Hi`jh)dn}_Pqno)d2#gIIo21R?=yaU|MxrJ z`u+aOuW8+X>aSXh@Ba9IZvETp3mgKjmnX(KY;Fj)TFSuitUN93u=;G_2S=ZM`4CdO zdCPPAn-w9yxV{AJUYmP<>qhSH*%pFt7w&mj_uh{+Q1ie|-p4=7yJu+!7lf`_H+%ct znb(s#`=@`a_-4BC*v&i3Qw3I<T(FhxW_OdiUJ@e~>$_^=Ob`1c?cM~<N)g|EN?BSK zVOR5c`IU{CTG%Y-T0~4QcyMs#;x`kUY7-|YpLEc<-03@)_tC8jn#PYf)SR!1{GN3o zuzAIcv<LU^-?f^5Wn*;LrA~vGOp&RA{C^i;a5Y=<ed>l|^Dq6dQ(iYuN=tRIhVYK* zHUHy}>|z{KFxmwL?voMO7~4xz@`K8v2eWRv!&^T_c%hoVr7{bm}?g$xlvB=x%!c zEoa?IZ~c~3u8B&vPM&@5N*u5F-CUCU#CXT-)0(jjHh+EVx;-azU+B)fn<J-vQn~Pp zm>b`6&l~EAA1d2otcn+Xv*Q)EkmddQVSU{F9gHT%U-QglKj%!2p1))AMk4{EzxPXv zSX7(V8LXJWHs@UGyN4(K1oU3AY}FIfoOUiGd9}vg{t3SszHHj|Tvhh8^7WguHczw> zuC87CckADu-~YX?5B_&+{r{-7lFBP2d{0FuD@RRS)xNGe@?CZj|N9d=v)@gX&*6J{ zX@0NUx#Q&?huzxR4^225J#T5Q$;2Ez3za!*c{ZK-Tc`h0Lx`nE&3@4m{f|LbhT&%x zde>e%a{Xc9W|udU{q4Tl85)W$`FuVnc#6&yO&;w{7BhbN-`u-|*~sA7({DR>*JP#5 z6bwG6GktdT&fWGui$#BH&kD_2xBB$f!Xw4cv%{5U&a7xzH^c3RWJt^56vl4~yCt|5 zY?&&5$j~vWFg~-{_|4v@eO8Zc4Ad9OB?@1zyze_rC!=<Sc;OfQIp=R~KNMmV&?s~{ z<3z`9vE2_BeJ-iU^i#Wg+iv%=ZxU&}J=%#U7jtCP9Ey0kqlM4(o6^B3-GYeTKHe4V zE2O2*)$Woz3tk&>-Dq0BO=!(Bj>z?)JyWzK-z+<o;mUDof-8$mqQ}N(wmr-YR&}lu zZsaC@si^wDsN;ult8?Rr%3D=DXOe$DJ9f`z>S>d{<2PR)OuLd0Z=Ct!+kS`qxvgIp zDjqqcyxQx%?m^Yp%;$M!oHIEN9%d0<zO2FhlIz2-p|_c<s*ZBM4UC+B+xWvh0S$2p zHf15t;0G5C)EYi;wCwya_q?@?{?m$&IlnLET>6q`eCvHmEFZ&4-%cf7qidZLxilP} zzMpY*nZ`R|N2V<WckIqwe0Jp^&$WKjlda*5evayAR#%+9v~%LJaI=yqsS5Q5{(X!` zmnf-3*)?A{rc@)=$So6faqaCDrU&2imNY(kzvuV1KX0Dfy-xX2z5nM^kKgf+SM0z1 zQ|Ibu#bbtRb_u0($<NJTm^N{v*(8&mPc45_<$4!b2H*RVB-y`JHtp7b>$u<YrvLY| zKmLEM|JP^RhNve$_!gzk(&2n6$u>8wty|=N4)d(z2WtO(RNvWW(zmSHt5b4PTTF(` z*Cmto9N75T&1Y+#bc=w1{q(!{pIkLr5%taO>#2r`ryqLnT(Ro8$A>MZ3UUrpAJmCB z_=be;d77L)Ur<#+@@r-N4UY%8B~`j^P38$In&lRA8mrv<i+JqBO-#RtM6O|!JtZl; zEQo7v+rDi=pYq+jW~g~pGCR+!ku+i!bV|)FU~gymy7*G}<I^91maY-aEUTK)9Qt3( z?=Z)O)AP7&<v8R{^vs+xNx=8%l+IZ(YxEYmPSj;>zIf{CVIl6m`z;I1gYHk>=d{yQ z`Pp)*$*uEJG~KLJ0w=%P`b5f&t5^6N!-xH~Ym;o7^VIHkbiUNjo59<CEUR!@)ti-8 z-!@2x%q@G7pVYp@baB1ou1WnRRnrx>ojS}mmFr)x?e-?|El--mz7&63dhu{-H1ot4 za}UUIT%4>V<F>jytlv=f$-8fL#S)6q=j8KMx4%5QX`5JPLL%SUgYuv4J$27JXv$Pf zNx$&DSAB_ks(!W344XZ77Hlrq6?*QoQsks3$@U)ae;QOD{=@$N@&AQyemfl4&@?A~ zS$N$smm4uVsw8HnOfi4je$7Dg;MNIm@Bg~?-R19%Et3sIZRc1iUprBmIMIT?PWPkQ z#6VGBo`u)N4@ZP9S~BsElZ|3f#LG90;<?o-5z>;mPU(D=?*lg3&ixo($>j2;-okCp zlPk)v`@%n)C|<djZq`-ke<&d&NlEVQ&Lun#_dYA$y?O65LB~ZGj;344no0HV{_=Js zpZ%tw1JN~ilioVV3Ai77DSt8k(VUvlKN=HxAADj+7LcnvKB<q@Zk^}$*(Dh|>@TF= z2R2-0nRCAHoyW&yx96GC&!ZPIoA2YE`E-A<+`p9l2AA&t_`X3bMxoz`!?^OFimkHV z6ODVv=5hZmZvS}BQzrS}$=Tj@dKG40{0c5#{Hg4BH0ECn=t?}@PbIdyw1b-!Vs6B= zK0mta*2Qh9mkn-lyE9J^NZpi@^RBT&UAo>tw)lh1V>YctVV*5_Jta-&PCWbc!?Zu2 z#Q$Y~>Yo4Ky2xhVgsz3b%u@RbJ2v}ES1dg!ose===JfCXA2bfU*`c#C-1X)g50@LQ zCWUp<jJ+)^NB+6_&(=?vv*7mrpz_PtUhY?F`_}NTB#Os=-piXue}DS^|C{~9{okhl zUud(t=058lFXr=_nT#_w`H9bW;&kN5cUv;8W|57@{I%Jc2{X<sTW}o}my`??KC7`H zA~jGVBe6h$ajnD8z{ZTK&ntPB{B4UiJ$j1oX4u~6e+)fJTN+h97>W1Zx|P5l6Bl># zx!w0-ySDh>U-zr!@Bh4R&h?q!<W2wk?Yy`$___J)H^!kZ--^YmesBE8T(5u1qw(Fb zDOwfP^<_W*U->=zWBnba|FbXt=au<tuKfT0&u`zi)iP8W9=-KrdtmPKEr&Iao$w4) z`os5P+wGTmjB28O{Wd{*FJEjv_&MeKylt|<3wxa>#oktb^m*!~6@LPjFaE#nh+OC! z-b*hZsy~dlWBtp?j3svG!{6`v_H(x+#QYPSBfY-XKjc}5Vs7BgwN|p+7YlUXl}_-= zp6d46fbUX(xZ`C@w`j(?nu#~W6Elt7Pc|B9MZ0ZCT)+Izl^1Dwl7>t7Jh&yq)8uT# z>^O_z$n!MiRR_;^rkw9o2|Rt~QiqUq&%_0S+1C{9Rc1*ZlZxwD8rWhIX87=>e9oJx zpDxX)%MU8rn||-ZigVA7e0jgIQtRhtqiID_U9+B)lqLBZSNHyr_nRT$bYXLoM#TM$ zv>X4mW=T4*pJDsbye`b*y2two`H2Z1Pd&c9;asWM9?y~|dUcwyJGi86Ch?n=&QhEE zN3QvI$CphEFaBNBuryfxqU45Zx69-m%_)~-ykz^|Y|Lr6StNB<sC8G}JLPk`Eni&T zu%p4I-BI~!ywakrIT~%3?OXf|GD|dmhDsW`C$=RBOsSq`wC1$Ug~Z)2_y2$YSNP|f zbi1oZ_M6@Go~bg^OE!DmlK@S*lqFW_&DT{b=PjRkX78Wp_kVFGzACqsOm*)tdLB5X z?8xMbJKE>7!#QUj{Kq{#=+o0Vdm{X9H0pFEpS$l+|E*}nJYJ=j2Nv4MO~{PX60Q+C z7XP)FbKY_r=}p?Z3ztj34BjL6seQTV0Ye4VWKF@My{bk58q%K4ck0{jNlI=JIDf_K z?~CjL5wojjYLl0yt1z>D7t(xvVwU9Mx0c<{%KR=*Hh4Tu)yr-HYuldwwMM5|R9h5h zYnW?3*MCy*F-Wg}{-nirw|SnOexMwf!c+QJz;W`8N!~AgtZvK{eEj?0p^pcga#WRg zVp{pE)b_S-<u(6#YvU<asXuMOM;^Qp=wp3+GW2p=ckHschYr4ql*`fjQ(`;q^-0DL zFZ4Ke=9Hxf#2HvmXmeY9<mnxrB;8s~-THvUtIyo{um8EtQ01;wnfE5B!<%Wx(#iwt z*WaIf|JU#RYW2V0*Ep`zU(C1j(0^WoggftSu9$A(4f_2muTS!z`{Dx(I?k6ILK>|$ z-n}lqG*O0WVlC^E@NFC03f<EMH||}y!TWi;gKv9_>91{--@F|kPrtrj<NuHS-&KE> z|C_siqh!ncNes)6o2A~d=PmOzc>bQ(O<(a&@S{gNy}KhWSuR?z%j`mK*vtPHQnc<a zi7vXc$@q{{qUig^hgUYKGZtzjv$r`$tc+V|ZqHMDC;W8A=h9}QWrv-OJ}tWBIP>6- zUvJXyeYd(g^Vk3B|6j#_HLw4&xZhm;z$}|XB`J1k5sd<8e@$zWe))&#L%OH;#2Zp; zZ**innRPa;#rSRgyQ7(Z{{IXA|JdMPe%{{O^>gO;YFK5=O7;!pVa`f_!xX_4pX6&$ z8B|<<)ZFcHefIxbx~G#S?el-V^<w$Vf+_Z#v-myxw`r>w=Q8;8eDPK}S|`V{T5D?G z-It3t<xg0Vt84VGCxd%Y>yrC<L2UC5-~48xmw6(3x~8}B2FcF;t=p#^TX84aU`ZDL z<nrq^X4wmMcPF#+Rz-UA?7XCLHtT=-T&?N)FGD2b{aCod&Dxd(AG+_RwaiU--7@AG zRnHifOP(s)q`mt{T)0*8OTV~Fh9_&I1GBAktlsiO^X%nlnfQ+Hx1eeGC*QZVZ<ECS z>YV8kpL}gr<<6jEdsWX@JhtC^;78cR#G~yjSHt+^(kcvJ9n-NEedRmZYU7g$t5c3G zONjBGDCc=4CYop3Cd1UOgxC|SGvqw}ol)L#ElbVwlgh>!t%r^^nmCBfufB9DAwu)@ zG1mw#7txh5%xje+s@a@9FSAFc<*hN)cHUSv>3c#+MDhKLGm<vDT<O$S`hAQ;{ZwSm z&9^(}y^}e<A+-5Y{rmb4_ovqX>HnX5^Ly#SdtLS2W|7)q_EU^}7OH<x{dYDx!!m;9 z_oL|hzs@b=j#Hm6x<2}q-`0OeCQp&{NtQpiw!~}Jl)$Yfdrxw^Gezy4x^&`a`JhM1 z%iXg67?d3dKUr1(pmD*?y%#omo}CzUlW&5w=!%S%Gk^V#tGzy~`B|rWk3#c>N<|r& zS&_2bKiF>sWUM&vDK|UeNR#Hg*OE~M+pOx(p7)b1khM|Xq<^?D@@S5wRp>@(w(ASN zMVv^nxX^H0DWjbyjQiH+=bk24cJphU-Migp`s!}|Q|tdftyd90y?gc#yJbB~`n)5v zm?BxE_+Rx++PliPywYsrROZE<T;A?cr)M>O-tXt+^x5f6`BP8TDxX~~m$|;5+PXc4 z^Yi66t9-lI{)bgsj1@W8lMb!e;wa(mwproI5{I&i_O*@mc^?=)Dt%e}DehzLvUJVG zt3;+GrTPfp`4v9lmgU~g(;ud6`u)5A3IG2W`zPG~9s161K1+cC!?HDJ7d<c2RNz)T zEwY%U^_a(RjU$PwB}rW&zh-d>30Y6skg3^!MkYa7CUZ-3n24RbYBdv&oa`32yZQg; zlq^`v$rAkH+{OI+*7;4JAK!j|;{T`mkIOgRn`ajF*J07je$g2pq92H#yB{xIA;Xd; zwJP<B`Zk6itJs<~Z+@K79HHgmXma3!dn4P~6O5`H#jJ}aJ)d_z|D{7$EU!0bm&@%L zdvuqCWXbPuHdM{%Ie%PmimujC<s(~6)sFmlz9RkcZvXmcm;cSt|KEK7<Ms6Xw%?JD z-#BkIQYgxan$cjxWtW)WoRiU7nkKwL$M=A3^LoLLv;J&5B9r!{{@TCuZT0*A%h!kA z+tWGg|IBapH{MLD(R!nJ;7jbpRmM8~Rtv%(TYix3$nT9;x>|0sV3$dq?AP69_rxm; z-v6>b5o)Afr_`m;6SgkM$n)^KJI6%N^|=+W^DdTfpJik0xj`ZKf4hw02OfpPA2&pX zNc_po&;Iydj>lWdg7HSzdh3AmKPS6&Xng;2U&eY4d(W(8+=&@=cC(xfRjVfEY*C;3 zOiwTP@!r;_u1*SmyZZme81N+T)$H%|QWme7@5jl-ZDs7~Z}RkWW_a%I$u*rK*XQ!& zCmWp5*ztW*`A;j~MSrSyPV)IK7qn^K)+G;?doc1TM=-i2OFdVs4BfQv-tiNgII`bo zo6Xd{DI&N=hgV#iS^fLnjL!>so_(w}Zn`~NnoV|c{s-H6Jeom!g`4_!^Ob3CURznK z{!{O1nydfnh4S0qYnk-j=x_1c_JY5_udX~{-SbK1_X6dMUo6$TVfJx~*VF!T{@i^} z^53ntn4~ZL<!RZYS|{<P|DsHus|UGNT)K07BiH4{+2;#$z1>s8X39?1U#!pf?W~&e zJp29A{-3P>U_a^p-@EsxOqu^<!={&l@rR0I%r$?DPyBbrLUZQLpG&IDJ=e9HGyM6y z|AX2|MSXqMMJsMRemBMCB=<L-pN8L*`l6P6eC6M<qHx-zo3$tX)-}7F-MM8--P^q^ zX_D$*EMjkh^$RzPb%y&M-<hVrV(G;N(!UQX`zanziU<#`d@(~K=j2a0SK;-W)KBFk z)n1?0wnxryVvLHksd>FvmBNo@PRCfEtWRc^c%jH0D0bLr^N|foZyrC){B<w>DbGGj z=ViK;Epi(@|I|-AbWe>p`@i%(;rr7+Pg&P`P=5At={lAAj|cgmZFIY>EIvoe!M5x~ zZPYKLirE&{KQ~+QdF4lF7h5IW=exo8d`jce<;u-k(|UjZTXf{%9`XLkR}NHlyG`?D zsp3226YP5Pb)2+4s6Z$JUD?29zJT+5(%M^6d3kd#|6&k1=e@h=a+gl^uKx)w$+s`f z>|4@twbi*{*M)_hM#TvM-+#S-ck;H`|Cj%^);vG|?@H@~UGoBpz4bSpXX|Bo`H|g1 zc9v7|k{MHEyesDWYVAAz#ld%hfH-f{4r`4U$@fer7P}VvEDrkAX?b(U;U%9pEL*eU z!^()vDLvmLMNfX-d)WHz@m;-}@7(<#@$ZNKe`WVF>8-1Hn$E`VNRoZ=dx4?5Rl|b? z3nsT+{C<U(A$nl~Q-GnDYq3Mm#<l<{!#}2#4FNjYybE=Vzxqf>Zedb*z`ZV)t-_Ui z#^?N%zurDkmC9sRFm${!;oh9r52gOTIbVA%{{Nr#e@?NznYVl6&yD8$Ccj8FWa`k3 z+B3EET<32sr5O%RE-y+JZa!mGKT~A($Ispp`I~S5|MU0j>+nzP@qbs{xpT+j{JlLp zr+&Xzt$y9qfrDX7FGKjRg!5dL4Q}G$A05TI!eVPbxXo91+QPATeeT9Ay*=XJX9;dd zc-Q;q-1W03LyoaLU-s$G(Wx<UaXEeclkeQUYjyXu<i+C-1t$U*$8G8Nbj=a@ySM+a zgy%XFh3IMit}nKp-TeOR$-_Ajrk5Oi7O<Yyt>SPg&vvWaEZ)&9b?L^E(o*dOo{vxW zeo~e8zx1H=r)|XZbG7ZZuW#^GcN{o#)U6@5vF6Q9!)?+2CpWegx+pjL?c6Lf!A7mZ zr}^I8D3<3u83z@op9?&@rn{iwNX?5iksl=GzDj-RK0h__=Y<(e6T+-CW;Z@OdzR(p zlDYX7PakTYioECYz_&K@<i&&Lx%XX~S7|venkRa3QXs=2#s3dnKB`772$wc6Z+a;B zC3SC|Rc+J#^v~;8uU>3ZT_)*kYrk{qsR>O7uP?g2@&2iULVvbCx!3u%uh5;%_G`Gr z|Bw4T%-_VS>v)?nq@CyZ6luxuGv9aC6^mtzrPKE+1o3;N?mJS}vYE5Qi~YWze}uIB zM)vEI_cm93+1k&aDpcasu>9Yz`2XIY?ElaI>;Kev{?99Z-wqx*wr%MhU7ysTs(o{` zxm|*7>($jif3DfXZTK_&|IPUxRxAJXo}R&dKG0wG_Scj(=Bn1;efFHsc)NE>-Xi7s ze^Wyw3flt&Pri}+u=n+^2Rq-KJ|ZWXH)Z|G_C5bYqK@yG@3Fw*%Z-PBdQ)T1DBMWb z|Dsm8B-rx(nwOhhM11#OEq>fIdBXF{%MT~*D-&Tm(Q&uw>utM53s-e9v^P!5KDp*h zoQdF+BDW1aMROguRvepjWA5JQrh5}J8+#ZQYgbK<ece0f+<&*aFOTItQe5von3vuC zcj_6Rf2X*APuu_e<HQ@)*9_C%ESz(=$;kM^`X?#Rr7zsh(m3qRo%R3c_GLA3(VCYN zTQ&!N&-(PTO6K}x<_8mFcNuhD-1Elg^rA^^Mz<RK9Zr9o++}b6+U`@zO%u(Ax3kPR z4pwTESJm-*uQo1Sn0|3Vfw15A@9BxfI}I+RyENa;*4)O=!1B=cTk%!l1O?w~`|Cxl z?DrIQG^=|raI<>z!A4o`vud}=rnGZjrJcPZ+j}M${BCs8`+7l9boqhBGu@Lm*7dx6 zCGbh~pw<TC`Q>r>+Yj8?yCL7<%B4s9I*M8sB@4?nReL(j`|RN=@xW_M+;<1tW5@ZP zaxH3MW{I8M>(I(uDxsU<Ct6YZQf~p1pv!VG)d-ynr>g^Fi)~*<oQQf?)5dfqH{0Mi zcXHP97sgJ(f^7At+^%oGS9RL{fA{?Vd+MJrzRA(=t#{QxE4%!pzU15KEE^5gUN08T zjO5#`JXxor$BkqC_j|Q3-T&UrnfTxS$F1v6ddsi$?frf4_xmlSA}2f6<`-H#)tORm z`8z@4X2yZ^j<2<^)~w!rhUxIGiK)w;-<9V3WGTVcySg@bd+PD*qsL=D9}}OsN;|2S z|M|X(e}BC6o?UFwZ<l_(-TZq|eV0|hr3nhQ%I-Z6ObpzZh0CJe#il*mpcr)F$f{{p z%Bnvub^M)F@-5`$X)`viNe|w?V>olAq+vlx!^N3aFL%$oJmZ7lkMF)lt&>drD@Bad z&w1D_Sg9h*$2E(&;@7dh&1<vYMNGfQGxgn;lQ}FW@|*75G`+oF==@XLKa<;&ZO<Ps z>|2w$Buc(y!5N?0a|esV_MGAfkz+KyWyXJewbteG=QGqa?2pzm#C%?{n$>60Of{vc zy$e5_H|TcW@GM73`l9cxI!Rkqf9~M!=*ht^))-7Uedny<frY}+Z$yfElT&>6_1(G7 z#(e5#f}_f`MLnvbxA(tZoo&A{CG)RtNi=(+uzP1)^FscaQD=2ls;0K4OzGPqAYu66 z_Z|1{H%9d#L3VwNwi+{v=SB8i{1sg?NB8HR1t%Z<W!U82tF$`hUVlftwf~0ePJ6E{ z6(}|S>LsyYO1HX2K1<t2MrXT*>7CR2W-EVct@-)>zwghx|BvOLy#M2Mz35(@C2aFH zt>JMqXnk^gS5C$`zok`P?(c%)H$S^Ft7h-tioef#|9r0hxBQV{b^d~~FKVTQ59O9@ zeJpL!S!A>3YX6!>3BFl(etllA`m3y9gATWbq@a;wa_n0UOW}z{{s)SmyL7MemN+oe z)w1Bz#7$zh-(sd*-Z1fwQpt0XMGEWVJS-1gU}yfa$T4n5?_QG`AB8{J-FsVWlu)pF zx|dwHL<#qq_7`>)I<j?V&LqCtb$+s~ubQvEiVRo8o7Qt>7V{g_ThBS#cRp1ry(}=V zC?(>2_XNYW?#<Sm$31Gcty{nCwoB%ng!k;umjf&&=`d?YtWP{y{rmC6^GUr@O<UJr zvUuZsVTzGPiSvUHC5NZ4ceXF*n{nR$v9U305y$2wO~)o=GDnpE{##*__pQk$w*N&H zsM(;s$S>ePz!xTgNnSy#9OIe97M^rVTow?;y(lf}_;1D|Qy(;JI(lC_X!7IFHE~_c z5(=No=XnT}OTJ(@t9;u@V8xY*t!tEp5~Ef+t>h44b}T4KV4ZO`>P+%IWjCMoM$c{K zk6y8tcz=s=(^RDs8LL!pbXyAj&|#g%;M3yf?A9`4**OhX5fxdk*^?sN&6RXmOHA%v zmYwinS<T-FY5B`aJ`3l_$6eTXXWFJdC&8J`$1Aw@&Ayw=d1S|>IpKG9%co1oU*5ET z<@yOpHc}a<pZX?8ER6|aVs4tS$Wr9e<^G-Nzw9rwx=URMsbPw%`T0n9=N^k3hW9&b zei_gIxcFaOKAU;wi{oK}OFYgl{%qc><W{2f)o!_BsZhhaea_Qf_BD2QbMHUS|F8c3 z_cbkkuOB#X5IAR+R%;jBd-&l*7w@{0Q8`zcVv{m?CaqF3(OX&}`u#xK;pIY7o>l^D zzeTLIRxUR@mYVoPw))bsyt=u|mjxQiwuMKBTn>&~uAKJ!-5Z^Kd{Tyw)whM&1TU=+ zEie5Us&4g0N#UH-nYKeR#=e)bdS1RU{1a)iIZs91)jKcXUYqa|i#;_icdW17WEYIM zFvaIEXRzIw?`h||mYNqIv5UyO@lCcRSYsBmM!({d;-Ef5uXPdW6HoYUN;0)jTEyaB zly9sgA<20uqopLZCw6l6X+y?ilcP@V+bE{vYssFR$#mw^=Q+xAug<yeA0ruQvwdU7 z7v()g(=*ojEG|8{c79p4owKyBaj4l^hgW^461bcfzs|N(z4rOn%}|SAhsnQxTU*Y* z7FBn#MB_`f%6aeS)3@4hyO^1|sqJyw=Ns0=^Iva1wfqvtqwa?yT_SOh1kU(>`@P?+ z=zP>7#pM@{X76Fs5wP);wfpwlp4DYlw@h%&`XBA@&&J#Tp85R=_x@knpKi|oxn<AR zmmGq=f8}L1P5EP#7CQ5Uf5Dnlech5d57iawFV8cwa^SQ6X=DFu{@;)06B$jGTm2VS z*VA}<-RARN-zy6BH{T!Z^>w{vdFpAAyrpfPYX|#|yt%f<2?Bn?S6^+jXEywNg+ISW z{mlL+R@<-SuHDLKf4?Tqr2NaJ?ve)4J`UyCTb6#@->~gOO+w|2jt!jZo2Q*}JkmC6 z;=}`{Yc<TTmnm>}PAq%F-#BN6&E}Y$%9(QZ7OD9^jy&kt!u&42*QI#x!-P+dSs#Ab zWOM1(gB7U;+Rqkr=01C^-tqV4pPo1U1t*T}+95MvB73g#Oun_%Cxe@c>e=qQN*<Fm zS`=X(*PeVvmjCl!<vBdejor#Gc5ge|y!U<m{p2{UmkuRq)(@{Vi~4nidUfZ0jy)_G z{MW+eRmI5*(yyz&PqYCYt^msK*}_fr>t42Qo+~(|Y33;wg_R=Vvusm&B+L~UXH{xd zUHdj$En@33hRYHcc4gN{b2-i2=fW!8CY$|i#f4L|&s(`_f5=(+Xeq<<2}XUZ-mP>n zSN`_d`gzC`QQP=W&q_Kn1kG29tXI^!#5j#(Q?~ozyjfgZn5&u>w|ey*3uY>ID|O`( zDM^+r*(~#R7IW%07t^5E2Rwo*r$2P!Xz3SpaB@B}OM>Uy1I^SYk#38X^QWCy_VLiB zYBr6Ie)$C%Yu@NT+^iz2JTq*Y@i~sT2_GkxcCr1t`ef?&`}NmXe%?I)_ni7?@7~Ex zEU=h-X`!>#$_@W^N?BaI7@**H%lyy&xp_bQE~d$|&QIR4XV--ITMg<5g=F(vgDT@s zPUV_4m+_TE<5t_}Rk0SY0@li;y)>Dz-Z0sm{lrRxOY67x#cXGF;K{r#YJPDpV*<lQ zw_TS$6t@Rk2>$y1;?C^rB`jwy3*7LnzLY%g>7Kr4HHQ~#1iw+A<2)fW%J{Xdx>Awc zr-ttj(hvQ38)!Yby)EU@ttgrQF-u*&rcG*bl>by_@<IOPJKf%p(*HWkc=e|RUM!lF zCG9<1<t_VFwf3$wQ~lh3d~46IP+K1wyYorZ1b^|XOVoLv>V4xXX*+YJ)o8(!oJ)MB zFJCS>QGKm=)e$u{iGy1WHi)0%uuw^gJMrsR=hw?NobH=tUNNpU(3$5QUmaOw8_d@6 zZlCh4ie0_a_vXx)8UFgpwF$3hUp#waUIZWe7g5Fi9r8~lt50nB-@L3=_vQohY9>wh z`;{wS=bh;&UeH|poTp+3|1Y<UJt}8sGA3QQk+Qw~bM@Je9(QfmCx$IHJN<X+BSE8G zo%t{ORIL_8JZii-Eoah&#h2b+oMCBq+;nzwUZm(*M!y<?%PvPm59#KoZ)K|UQJJH< zRDUMtf=|EW{~x~b{j}xNk`ua_zXT#J#g6Nz&EzdLo||rQYl~5|hqXkVP}>X%*_j>B zqV(p4{Mw#UrY>pO%wFJk{5AWZo;Bw+ej0Ed7K_w7ZFp|ebY&y+_YR*6E^y5)J+{Dk zj>p6=t(y-7ty{C8{fKeTa=r_JrTV)k&AD3@dQz=^d9%W1&1=;cubtT-qv9K$erlgd z-0Z!^Hzq4SakP({uq#mT?)gu#=Zm;(U6pIgewFte2<B7El{r0Uf~3ez*T}vVckZ_) z1T#!bJD|QXHr=5!b-mh~xd}%?{;cCpd=+Z-`-HxCZ63o%e>*da^yN8HKP)TX8EAF$ z-RRrPvd!Lp%JSENvHpAw?&ZBK9I`A1N)q+KH$so79pUF)GtKK=gVr}C#mGC%U9PN$ zHs0$k?q9qwQ}*}yH@pY+Iu=~1kk>lg+7){Fg+!$GDt-s;G-p=Xj?hb{jmph(3E~si zG0fO@JIG_Ili&BV9wKKiuTs2s%3MXz*f*x(1fLv}PvFOXo3M*)y~|8nN}1+Q<XSVm z^oUjFy7ncn>l%(Jm4pfG*!<b7H<|H;w(6BdqCpD2(O<58ikwm0BsR}nZ)wGr3bm4+ zsSBOe`^9#6C%Y-@PHE5-Kjm>-^||DN)Ty6J6XtN{DOZ`j|Gabl|H}GYvzy(Ge46ci z^HVonp2N^(=f~uCsddXGG4<_xixrk_ad<vgct-t?hsTR*Yc<;+3w}@kyZCD0>?f`g z79XduuAIthm2^Ji@yuJ_KmIYZ*JRe79@JgLFB_v7>|^8me}m-n&EG24F#h6;R(Z9c z(C%;L+~an053?rtq@RgY$rst5S)I51X4!q`CI2t}u$g~;VxtPH&Ci=m#-HcL8FSBh zw8=-c{c#TG;n34JmK(dCXb;MEoDjzrn5=lGgva}(S;@AnsG2|QiIex;ysYf7O5J-} z!41!&M`w2|I#)I&IBy!?h9`}yHQ%Om<<)eRNi|x#OP<$ZUif*5jL=7$Rv)hAAs<Uj z%nx4<sXLU>@Au=6jdAFS#?@1T^=0x4<8~_rFM5AF>guh3Pj8$&A93CH4A-T*-*0&b zX};yxzi{){<*oIBMQ)nb@)qqrLDM~@_4hl-9^*)wD|nCB!6x_9*@;WTp1IlomUvRL z^O4#l^(h&)yVuvAd~+$^(|*bnA2|z|rnc7&jtLh6?`+Stzi#!t^29&ex_Lb_e=U^J zxKgWldTF+b$&M{P(Ry<1%P$<r`?7kH#?6Zh?#NHtvgw<3c~b2*8Of3?BZEaw&Z%#{ zZH%zZPA@rlqN~BpG(qI;Va{EDAF$g`tN(fSzs>jHizQR{UT$Taz<tugDEk*Ho6+}` zr+J<Qy>6agVx<^ubpP^%rE-7w39!kyoeSKvvG}ESZt+Y%&Up@n0!flqE3eL$GAgoP zzx&pI9Yq7Pttlz@93nr}JqSB*l&sHmzGKe!OjQ@9Lw3@W9&Zs6=sWKBDS&_CxpyDt zt^5_Yt-)>I1J+X(MPaFeEN5SK%qcFoIR7TML^4}0PxY+tVjoN@cpK*?K0h=k?oq+^ zzqNut4$Wm>{a@B^;proP($4rP#5<f{&d*)!antJf<$|2|t*Mv3MSn<O+3@VO`*{!9 z6BeHKp9CJ<Vpa37oM^<I=uo9+^EUA?L-(m*)&r13P~R<bT*8{9dSF9&;`;>_rG-n2 z!gtl}jql=NI_Jpx`q$&Rs{0psobK8`J<VZ<^MZc<`GT4=LQfeSW6@;DU*R&-fvKl? zNxG5%SI|8XE;AOj8Ue<fC0B1mGH&NnQ#t9jV2ivq@1?5#xERJ0Q<sUH>ezIT!%a)e z)AYoYB36b~InEMS*Sb5KesA2>_*m_ldW$L3^$9QMd~XPfnK0`ni*22L!jX-^Cs(~W z*|al*S@)-9>%@LXfesY`y@XlfJdE`&R%@hg_>I>Xof8I{Vo!<dvJj@=uR`Zq+_M z{r$ejk^;uR?gejsy>ns4Ytxk*CFb7`SW{9UzF$vwliJR0Ki(Cc`2MUmFK>C4wdm@r zeGN^=W+lbkd}_<6vF~EV`k-0OZd30pN|=5uKd8^_ZCfByuJ>c5Zx6-fBQlTZZkqSJ zLhs3QyU*RybyA=1^6yuEesgBUgER3`Goto<o_z6W3iHb&JO(wd{Tfn>+2*`EUwM8$ zLsmtvyMU@f|CTxP9$en9Wc_%*?n*JPNnL(nX^ka3^X9MrYx{rmgXb65Ju#mDZ_b_j zbDy}c|F`vY^Q$XojtajFe5Vn=Kw-j@m#5Ah?3?}A{_u;)Q#E1l7#kV++0~34ua%zN z$vtPU_S3ylR*Z+tWX_&=Z*qCfaerp9J<?n9j$Q7UEXTp}dr@|<)wN9hAir5j-FLUv zd)~HP@@;+7S)V0-`!YYZes-+Q)?4o$@4fDQHNz9(&z93{BK8DWg&OuPXtzE!o!!^$ z_nrm%Y(_P1Y5RN5l-vkzREiDW_W0`j37k_zuf2G7^F+IARhz3-?wX6=4@Q(%oBgcF zG^(5UH>z~!I@RP`aZ{#D(A~pOd2p+@k5bsCuu}`CE|-4Nb}dHxT=!nHOFQ50VgAc` z^PtZbqjO7BRxh~xw{OEGms#7cpBCKkf?0j~*Yn4V|Gl*Td!MU1?8vP?xBN>ci+=gM zOuwKQrrG0~8xwH%-t<`Bijy<;rF~|d(y3y<en!?@8<F4b7L29OO#@!~RV6OAc%FN$ zQ9f(Gz;TnPBUXudJ8!PN7^XVM;QNnfjH<nt6^p_-jxk>`sp}436qCB|+$Q1EKhyOm zlo+g0-S*)Phr~vH4kn$PRmb0O*_#;{@!QNk-S#Eux|Z}4PbTq8A9EiTo5inF;FVSU z`0>EpjXi&Osv``!x6Vm&v`?vSn74DD@Ajjg65n2a;QrF-R9-?s{Cd&Ha!37`?<~@h zb>)0_$i!t$*M0peca2Tl$NVSu`(Ll$3Obuyd3Vxfwih{pF%qmzY=NmJAuWCvMV3!7 z<Z*j@@2tSOBUAN$ePKAb`TM{ALuGbt44umR#qV<{8!lF;m}HP;@&B9E_Oktd&hKjG zn7E0hb@J9_bGCbO_;Xxfk!A_xQoVoB_I<1L(;3RVI&%~l_-16-Og<3aqGitUW%Bpa zL4M&^!~^CX517<^NaAIc*W-DbrA(|o%iG^LZV@=3lN4H_!+MUH=gm12@l^~`wOU)x zezX>u%{wo6ZLht>bH$vrX$Ks$&#ZJ1j^tYzReN%`#J$_hS!bFQ^!6K1dN=Ke!inI@ zvf8J~wa@Q<e^RmI!@K`1S8g@-zy9)VO^HrI$gkid^Tg(VzcIDojyLlGld83W(b`?B z{%*5g-JaRAcjxlZ<E2mS`p@gne5d_%gTF#{rbgH=trt@dD{Xir!P&7b;_%<Scka)h zQzt(A;D>MB;-7AAuXn3^>HYqMe$C6;%EF4{v!g$*`Cc-s<H3x8bNZc1cP3Arw424B zY0H}EC--~nxf=GJEelb;kjbw&Us7B<<F%WJ{f%k8d|mqvSgtWkG2@@2cKKWXn)Emw z{U_pePji2^p5MR!uiQ)x)~fQ!oqyS%H#nXX<=?hxUgB4|pGQv>+>XDqkTs|Lz3wja zuFrByT!l>b*)O`@w$R_>Wsj8ihxe1-tJX)(UUOvDa^)89t38hjY-}SQZ{u51d5ZOv z@CT#bZCPh-oV;8a;uRNpma{2tM&#r_*Yman^hI6vT;{pIX6hHC$+cTzy813X-;%kj zc*?#f0@J7cy}ELtuYaP=#;M{jSH62vc&YB6E${!Q5p6fFTz_7AxBgycX79PLIiL8R z=Gr$dzVuG~=2Z3v&kar&{`fAJXOj77(&Td{$(JfTqk`M@Up_dJx6Iht`F-Z%=^1a` zKfSvYx$o`S1Wu`#62FJ_r;1;h?!Wc2MW%b#^a~9-cC+`_{r@e0!hHYF^-b40cm9$y zNc=yc<4m-XPj0=ick+glCbnL=+b><d#-t+nP);cJ^}`F_%MT|WN`A=m`J%{)(5CQ` z2akA9^k$sX$Y9I0(6&nmmzZXlE;{ejgvHlgJHk8ToBnzC&fPor3*Q@~`Gw-X;jO$P zkz&;ur=|OHPMYp<KX#YP?(Pelyrl*ymdi`RueGdcwe;`(RsVjnfS0q;Ym@7mAL73{ z9FWoIzbJoNcHzC2jbH4W^I5eeGrE3qc$u;F6le2U&HvAF>-y24_Qn008%_tA1WvWO zmH+mQM1JqQqe~X?>Tgm}tnyLZ&}j1iW`;?{;SKfe8}1a{{BY~Vt5+|pM6L(39ay}F zkCV&P(S~>7Pdi52Bb#J3X0@7Hd->lNiG7o#&ys4f+hnSq(q7Fk)0fr!DDG3-W!gPe z>q+&)2^<ZN`B=*gSzmCdA7E@)<;5{WPnJzUWM@48tj!N!h`P2hr!{|HQE~GM&-+9^ zrl)z4!sfSZOfNlMD<iRXlkDSwhc8(w5?pWh^07)~FPEv8wGZy?eq{A9%)KHg@|&Ou zN4}MEL)iC8ij_|9mppGg$D$$bX5}!swvsh_BZJTubBW1w#2bqnXKpmE*t+u8i+@~S zGaLGv7aZg=pD_K_jT49Gu1o7(93tIja-X^Vaq5bj-Q4lJKmSxI&9k}YYS4G+Wa0TI zj8kiM4PR*cL<aNh-P`v<mT^|nzO!2Ee`{vw^RJf(zV_RzdsUR{Th4Py`Tg@FW;4}P z_};#6HX%)ZbLYw#A%B;@eP;%`LFhuas~*2|pLq0=r)ekH?^o-ZKj%Mcv&*>bcF*@| zY|pC0Jf`Sfx}DzpZ1E4Jr#u;~|5j|N3DVggTdm$Y@0$9Wg0T4Sv$SQZw=EBs5@WHJ z`dxe8MwHk7ruNTn``;e#{GHD|wu`GxShD%d!ODurTRE9i7@VU_ci#EfRqD(pWK+LA z?aS2U=_YFz_T2scc-qsBhi;djE>upxS$y-stllXbXH_x3o*QX&<M8f%0!tme#J2xb z<CpxGzx%7dm6!RZ-17Oc&yK${y1BgjMV^bK;(H<8#o1G4vmR<rnPqe+XSw9<zrX9( z+A22eO0%txKF$8v>;$Lxa@YCtbN864n=j?#Qr3DW+ZTAENhaI%*=3Gr9-51nzEj+q zQnBgTk5BLK{^*LI8M`9QvW<1(FCo`i)z{?SxTaZu@YFj!hxMxLw}aXppMJZ{3g#8| zp2qDq)#@+XrrMM2=FeLk&U=15+5FS+fS|aa#iCD63`u>T?SKBYpY*=|!{M0!M)xdz ztZo+O%y<91xSx&L#!$Ru!gt351zTTK<<FdZ;&T2BO{?cN%GaJ>Is5VC;wL^b%XLf7 z>y*#=ub13+jn{=)_U6=jJ7uMJv;G`DbF5um@WBj+_igv3(yBb_`yR{9x7zk`j(7Rf zceAt4r`0alZ>`+m`>^C&hyA6?tbwmI)?0X{25yn_wb&O~Y+P_h&1RqevBCp$7Kb-$ z8d)o<a|hWvud==FeWb#O;fMM!OZkRZ&o~)3icKl~DC}sTHt}tVgt6U&f{nqCgRk5@ zf1cOG+vL+1#h*SiHszo3i`cNdFsRuptu)JuPfGZAK!Lthu31c$w%Hp;TkeFO-5Fee zN^DnwmZqIp*Q_TWWhT(c`~1*xmm3CZEYm!v78^fh?~*RPzT0>s=Yo!0jg&|0nKYdq z#BEs8b3;{h>lQiIKRS!gtx@MnXWYB*=LRjqjK}%>LQ-3EK8a+$XRT&oP<}Z1(BaNB z<%vr14-`dG7VxdzQ`69yQIW*3<Jxh@^scBX=ffwIG(u1A((KEve*5Uti|5w+t4g&q zOWrapZ(@78WMWLa2mgIu`Mvx>=9%~OuH7pAZWFYAspRrNw?*v*`~hMnsn7qsQQIB; zdD^0NCK{O^x>Q`UE}!0*s&c>V`x^ejyId*X&S#{ze!F$_<0bhGCpOlmZ>c`KGx3d1 z>=xDaOBg2?Pq#hbd&Q$<4QI(##k8Xy-~6=h9j;5Vs|#PdBG){vg#Ez{p0!F3wkZpJ zn<72S=W%eR`Ppi|Df3m<Us>>Jd*o@G&5Ta#YBaXje>+zBvSO>_oZbKS?kZnYanpX< z?>#BvKknYoXfu5wea^|1_v59WM+=ls&VAA{IpyKTwp9ieOFu3-aqpsIga2ap*>5&S zoi|bW9+-YEf12Lh?I$jNulw;_DE-M?m41e^L2GZROD+}EbXIyA-s@f7$7_^qUU9nN zw8r*pbE|hU^8THZFI}(MZMI^G=Hh)OLM8{(t@KpB@GthO+_I*W@xol8+<UotcY>{J zQ%ui4S@=)3M&ns}P@j|CQe$&5{f-OY)-U7RI(Ofss&oD?7B28V=luV4s@!q0`0G;3 zuialX_1bM?F}Y6;CV@{bZrFIf{9GVUl^aVx`?qVI)oWL$I)`NU)dfUo?Oy2;dqZS* zXTc}etLMtTz7?5z=|}Dco(*?rTeXx-cbk5$cuMTfmY|yk*DCh)dFB3QG5Jy_a_Z~a z%8C4Jv$joLw|w)wJ;_1-t1XY4>|T7S$hJfNMDqRr4}O38y8i$2qi%T)n-u4&7>d5u z-el4>dHGKDcOPY}w)EXNuXe;Ma5=x_gZry@RpwSNSrRmrJtJr@XItT+vfgCb$JrnE z)T;jr``y1+?A*-e86R0XIu@|Mi`>&=%#%J*{QUYSHCCtJ)~2vXoL0P4&|m#kX#1tN z?l1S8O%`9wRy)zEE<&}Z_S(zOi;@#^mxhT1a%Tt^oi#dOTyw5)%F9~GQ+0QqyIweU zyg+^8#ak0Jl%LuLPqOf~_#gbGG}7|jH_KN6!8fP!>m_cOep&oSee5Fk>FX{`54;@D zRcc~&?Pa7+B=5S0;Pxc`Ek$o$$L(a6`S(!g+s~gn9~IW*CjGIfeXx@Af%5KoG7SB1 ztZx4Z5I%ACY`DA3TjlAWxsD$E-0B>m_xpZs$J;fU6F)tP4&K7_m^n4|^K%V_&;Qfk zpRdY|p7zDyO}F9msNL4j=M}Hsz2@|yRb5M5HcnQYuq~By!)bw(7mfxT5_KOZ*EPkb zN^eVvY?I@Ocp}Xxz0CE1g5vC6#mOz6v!>m+U9$0v(rS;e@>To)-d%q4Zd7sKg)==r z_I1qp{i4=(P2qdH?6sE1PfV1Ql>F#Ad7@(V_n-(iMzfRWp1EDGTpM<(<j=l`o?KJb z$XM51TD{V4Uhs4^g&A&4LMc}y*ZGKXw+bH%)_7dNA#wc0v;{VqZijF9@4UW9#Qmzh z!U>DTmwt0y2wS7_?ZCl9(R*{vgID%;oj*U%GH!n*b9`FG`7b5Hdlyw)R&&kDbG3hY zO>u{|vEzfx^JWJ_)-Jf&xH3-jO>D1ahQh{q2bOu5{8Z=WTgbCaQu>V~Gt=&wZOfbr z9hTk{(>-mu_3E}pn@MTMIZxMJ<}yqz-!3V*+ft_RPTt3Z?eeWgcTPtN*eci0W8rx^ zgYkm$%BDkMfj6Jtu=PJMr$O)D;kg~0cRzhT7j0X+alP*3#t?49Yc5T}tL>_o&ve}o z+LdeD)wgslQ~Ad*<qc1>FEFM_RxZB(Uhmq!yMJZp+17U5E?o1_V)~4)Ru5k6efQ3E z@7B2J+GWP<x>4LsDfxkZZeh30x>>9$i`Ozcoafl^a`%htYI18Um)t3G4M>tXGh@M= ziOCCkXS|pGDsU$$e(@&bGW`eM=`(*H%07Cc*G@5Eb3a@3llZsnp=UXxpYINIHd%0P z#c$r!AJ=ERXec=w{<yznRl&QkW1VK(y-PlP`*HB7;-{l$S~|YJ=RRxk|9$H1i0RxJ zpVnUFpBiX%bHQ5vQ$lu&_4G{Mf6=^~#;vbDS3|z)|613Zd+%M&7OeScbH&0`zR%44 zdTq|RozK23czn)yk;Jk2PxIumH_vE0@TSh~ujlqBl|^>HxA<I~cg{rDH2=8pHZzM{ zL&>OckwTf(-_sdRo-B%*^2K$&xykaFd&l3hEYdr^_I!{2g*g{D#+r0Jjhv}keKKjm zrm43imgQZq$~(5p{oTUYlQN$|J*I1!ew_a|y`J^{zi;1H9p23UlI6taN6q4~yXG*; zTXL(*aq|fMU6^d0&8kxGnzB>t{%Wtii%u5KG05f=k-i{VJNYfY`XPfm?;K<@t=#&R z?<~Kkrho49+vgJRO8k2)zCYZ(w&>*hpl#N9^W&bJc+1$Hoa1>r{o}qh_YHr=9m$`w zRn>o^)&C0q#W$E&+s^!Cxs6li*5;hd^_DaFnh$h6O}J^SYJcg)>65!#Kid3!cjeyc zHuJNcS$t2PyEWSz2C+6)>^eEm{_x99?`_^T{}EtZ@hDd6xyggyFMXDL{!wZF^w6Cq ztIaLdxh?y4y!-r|Bk!)#wv0Q6_imbM#u@9sYi@8#6^BlXT(JC~IFml7<D2KYvmapI zZDte4|LWE<2U`&ZuL6N|)z20NO=e9CSvG{Me|I*+!lyrJuFM->#>?hh7k<PiB)#*O zI+Stw-$MZf?u@-`=|8t`*V+|q(6>lWd~vnW+~Ys*v9x~qq;I={!Q!)+<|Nzqr-N79 zrd)6na1v2G%71}#;@uPH9KW>i)V4gI5xC}Oj!dj@V2_mgRBq8pJa13W*jMqj?B2&W ziyq|l9XGRou}x-5;)cl2BE@-0|L@57UrMOUetS{M<C3-Qy~8sL3fIZ#?J?nbcKA<u z$KNThI9c*+j|<8NHbzUQUut|jMbN(~WY&U)z~+WuHjWZg14J0tgjhHEx+;H?UEIIe z%GOVMUS53T{_3jEn!C?_KAjf)^ldEX{m7$tZpM9V3+>;0o+ak%pCA9HP5hSk;KdbY ze)rQ4nHFsOssHU*V|8%1gsxWJBGbloJcbK2?)UcXyKqOmS)(EO!nXDQncnXF7xn)4 zuSeZ8gML4|8(s77mucMoT6N2Xe5YonFzH>e+4xz+Pj|0P{kxsZXY+|&&2Ly;d-=W+ z%L|2>U#^PvE^@8syxpfKo_pl-G4pA6KC;bw@gea3WV1U;8<fAFss7aYw0On7MNzBw z-%Jm2*(_bVV2wZ5l#4mu@fIwn{%7oKh_ao%$%rviI4(D?wz7X^{7LEel2;04_4;=3 z&#Tp#c|q1l=yA+p%d&I56)UzL|NFG7OMU-FJLcn2$t+bYb6dlBOCp~Ca{t(V^}+2N zb^gu&-(}0I%CG)EXVJ{G`CAs9d9<s$x;oJz{#s$W@O^C|-<j#XRz;TrD=WTc|1o^U z)#Ehb`Q9fSQTDGE{W)-n%{4ZDdfnfMxXKv}PkwxVwfkRYZ>d)K&L_EV-<8&PE_$W= z-9lYEYIbwcI+K-Yp5=kEk=0G=KW6-BDPEHJ?02wnr<|IybhnJ!yQC?xi@$9A{@>d8 z*Z!3BRQ=~a-y0Sitl4Dq?(Cw4*EePTt6DcPa!LMr(|Hk^_9>R^&rV1&d{b%WUvr}0 zAjEi;?E6ecF3GN?n-|C5TTyq)ZhhYTC4OI<KWQ8{`ts^?dZEaJ+1K-T&1f;=yJWFG z@}b4dtpdmS!dQRn9^W``g1|u$tLL{Po_V{Q%$HQ08EW|Lg>^UEG~u1kiuQcg__=;f zbig*X__yg7cgYy0Y$?(6l`KEDi<NhU)4s=@%%^6)-@4>kSxck;T3++(*J_Hi=iQe% zeJac#eg1MKgVhOE%a4UEU6UHx$8qf^L)Aq0#g{YpS^J5vNOqPDP55AwZDt$C|GKJ# z!DfdxS8h+Xo=WAD%fGp_UEf|PjJh0seH+IaZ-vJ?3L;56nR#Z1E>3U#&tk;7jzi~s zWt;v1jbckVua8g9THT-Kq?2-NYEeXw%KJ^)#~=K1h`6%1(aUYcHmO%E7ei{immlKR zJ`nJDl@B-9#anp+$|<udIitND{RK3uVvpJMS$41b&?c@wFOw^_YiGmCV8O`7RXf!E zYXmB~=AWN$doX<eFU5IwwTm_uhOK2>8rc5u+YcUjyWduEcm7>CD)^y9YSrg+CT2~- z+ce+UX5LJ&J``cURB+4o?S(u?R|idGdTskude`!G#TV{RPdpM+nwovESo!V$9krtM zU%vm5{$c)q_J65)x$^OIwEa!;q>746Uby#HzTut2rPTE2_~P7YTPh#veyTn9{mo^w zUtf6S@7Bql=aY~BRbhR9_tr%{Pb`xa<=nO=o}KY<ZJF!Z+;hoyicfqr2zsWmAl~i9 zkB@H-DW9Kb%Nkp&cPoDR%xjyI&-6_5?btd$TQ}+iXCtSWn|Ipm>P6A(FY>%!R2IGa z+JRErsej{T6B|ok+xpLonUl5M{If~p&G~=U?cdFiCH>6lw$ZkZ&3o5w^plP`%lZ5H zwMOej-;UNSaj5_Mb`j&RUz=8M<Gpb6MMe=%Y}sacOFrWg=9ycAEi6ti4tICEbYq&x zZv)-RUALwQp6}md9eyg)=2yAZ{=?tx{`=1H-|2qDDt2{j{I&gwXO$WEoQ!;Q^j@60 zzoq1+T>ayUvy_i(UKfj<_~rYx>oUq2SE?`MeP6fy(Z9ku_bkjNuQ~Rp;^`8Vz0qvl z+gHpeR}9bI_IduSLyP7bd#hD%xmY-r_29Ap5fK-(C&l$9&2|5pIF;e?@5hBMNw-gO zo~vKFKCJAmQPo@H=L+rtwJ)-FPpO(zIhDPt{b_m5*{ssu-{xY|x6FDy#V<TJa;x&r zkc+=1{HzY0T|d3HAU~YzieP3$(WGPP|4;wF`kzlwRnD=Mi$UjfVw`St@jvV3lb;CL z-u*U7HBPcuuyFgfV~wlo-e0hKeCce+Hx0SktUV`e-`Z3*Xg)jPQ4!Dn@#h42`wz_W z@djsuEp9jOFVDX}zy58&BA$wmk4~yw+g+Z_eT#GIO@SFIo3z#&9&udj5q4&B`HAr6 zv}76ofUUegj`V4CZSTBxghl6$dGEbxrOzH8VUXE;+_79Ve#^Tr9>4l>CGNaa-dSQi zzxR!kRrIVI1}bNZ=GhvvPg=e`)%S=^|CWCjoI@8cy!Jz_QApBf=i3EmlebRIF5d4v z$3VEGYqHS0gFbg8b3SW4k!{r6Qaa^F_WGp7HXprz96u@Df8BYvoGb(Xr%fxqJASy( zZOh8kI7LzXw-5Vyjcr>w#Lq2Vv*Wt3s9-Wn#h$e6d3MVVlvYc9)J^oMb2{)^a&24B z*LAzL_fDO4zEb3Yo}zoA+_7*jgVP~9MJCMS-F<-h%Hp6ikF89imVTV_a&oiSZmnx+ z)|p4VO;38yuHC*aBl5!0+s60yEZKeK;cWBwX(eer)e^}|lr}4Fn=mVQqDbp!`Szqc zH4`#_&8wZ-tn$lSol*JnZH*b_fg<Po?R)+o-2d_YgZn>M{x^)f^XEiQko>mfzKP!T z7arGLT6#`iZ^F^~i3=~xbr$_Aag&XCMc!qLJ3{so^A(v>mxl5br|&A(O1?Zt<;1D~ zxyH;7IO`tq*YV2#@4kJM@za;2n)GF7R1PmVoS4eHS2~yP;*V6}x2fwQy5~i@{;Bw1 z67#gIx8te&hpqi}Kb-FK2keo^KE9#sm`jjwTrK~XXY;G2Hu+?(?Rv3|=iHYYKjPmm zTrOy{@@B>XJDtp%S7Y|f=CXNub_%c6V!Pi*KfaAiTG^~#l&ZIR)iYW7ON<Gtr?R`f zP}~20U(Np1FZCie(ya>fV`LZ)8(8PqbVssGlUcK|ay~;zauZv(*460c?GOBRhs7CL zDg7#!nv{L^^YVWuGY=attG?!9`Ng6yc6r%``}_8(rwT;RFe<grKC=1h%ltdt+YfSN zn#*;w**xR)6OcW(&~|n5>Se6|wU6D~Qub4C?{#a{+cL#<GP!!)N{Zhrl)PLM8>jkv zS)Jxum05W7!4<V1+ov)=-q0JRw_QBW+GTFnyEPlk&Miv1u>7U!-?Untr&}u5&)>Ut z%N#A!d!I$*R!`Rc5&!<}jjyj6rzF44`cfr-y};!8`;B|{n&<bj*S@W-uf1w>GaynX z{MZhOD_i*%H9VWzd|E5{;4Ope9(A>nMU$(JPv80Qx9ZQWeVx$@&Z}&`dH)#uWzIy^ z@BiP-|J(iJn)&|4Yb!mJEq`RM>Aanzcl~eJpE;MRuBFbr`tEymqUd$ON$DYH<<dNQ z&POujop?I=)@4t=%Rl978!o*#?6~#3X{k=lV#94#R;TWqp5-Y0G<350=l8#BzAgB9 zM{Je6e#HycKJlHl$38zhD|@O_=yrF~x$g^JUwP@i;@ZI_nF&W`Oq8Co`utV@=vR+F z$oo&o+G^^cGxauGTG*q#SteJnEfAKN5qMVf!o?XkIeEeqyJFAlN*iY@Z+^K+qFl88 zj9qj}tjn`!cAFd0(<Uf$Rcv=UIn8frW4oG~*KLK0TH&b|H>o}=_H%c)+F>KBcj$lQ z>BN*ygIf8<na3^6T)!$uGnF`0iKI?>Fz1xrwH-2<Gxz?<$g|t?y3kGT#@77j(?fZ* zZEKUyuM}pO$r8XSCb4kYrR>%tDm-E82NIQ2R@de|tk$(XsmmDJ)4zV>wY<5yYfr4b zYAxGy;o19WhLf5%Dry#fG;}KyS|ZWt-Myjsgv<tE7bVdmQ3dCBh5V88Ke)3g*#1AW z>W0@z=IcM!y}SOy$6=}<gRJL^iSPcry88O(k<02kMH9AdZPZ+EGR1_^gL(Gz^G)t& z19nbfTrOhf8op}tJingw?e-n@U*rEv{d=(goAZvnKTo~+wr~3icE+hPzU&%SS0600 z*>U&51zShw&t+Q_8~7%j5^-&g{TrusREGJuCA+*s!H3hUcjrIM|7Tw>_5Z#7=j<QX z%J&;yKmPE7&CSYt8|Q=>ty;A{RsBi&J!8HYubO@Lm;+`^$@vsjC!TrW{fCp^>jdZD zua`bGNy2UV)-Su+Y+AR3pPBD4ZT}KI)qYil^_pfM8_zWSbbKc-+Fv~9NqPR|q@(P) z=N^3)`?#3V=)m)|-fd@3n0>pywasJkhvyTwU6@zxW>Ecq!IqaM4co2?Sj}IQ@bK^7 zNVfN8yju?+RV*p)Ov=0bJp9hIv*#=eHL913O_UK)+Lvh%p8fFe>EfOzQ&pXAyokIr z^^(%{TuH5|Mk|9^ZoIp<*)K;@{PwNspQqN$^gmIMRDJUNoAv1;lB(vXZ#<59!!3F2 z-|dZZzn`DJVHIAeXzqNG=l$2|Wnq8!N!?Y|uZ=z2ExhCjcfh&BQQ247u4ElMR%9!a zrt)XT?e0e>Ha|RJ8(Yyo_3PSQyhbz3HLw3(TgqcHGyQ$x6m#W$uZ>TZZ@u_+`a+|w zuCgab-HNt`epz>B=Oq1HU9)|1;+1D+-}&@^R;l7jl|6?Fw|=imb&7be93&Uq<|#MD zN4q_6?e+uSGxxSm+UdAz?Mc5C{ts?VIir<w`Q_z1qCfA7#y?g1v9tcu`H$)U-u#z6 zU1oSHXz85!ro5LmPAz`mVV?Wa>B01j>^tQ`YHwKGpU)M(osxLqXPnfTmo}L{8q*D{ zU+um5@60!;-~ak=s`37w6eDV4aG)xTGxhrdciGoDS_hsNOsTP!`PR*>(C1zE`B$Bl zaPy%v1=Z81a4$cy<YHOR*O|9XxF5IbB#GSn8Dr&e>8Rqrs8t`%uNLQ0>vOn}XTMy~ zUPQuQN@?1O$D+cM&%NAI<m|$byGQ$1*q>L6QboVqE}9!;X1jaKSC{uPpN+52o6T@Q ztu}Q2)7b~N3ia`<TW9dAbW_{4Age>0;zIuDXUm;g!#dw)>rKlWY3`R}ck-Ei@=A(7 zDUfE(cD}DLX3om_4?b1}Tu&A}z+M)6?bK-t|0(wl#R=YVI*}jQqAXf^u-W9qbEmY> zk5kU>bf3_;>d5Emt#iLKzU1X=KalAC{zDv>X2atj%`byBpR8q^6~g1JHz(aRfQx6@ zjJJ}3iVYbn=bU|^kgze;|BB?qrYD>ZlhWP^HLm%$I{BB*Lowy^d%0FUe=Zq2HSl$5 zikySH$7#D6$2hGgFimKEpz&J&zn{4C)3>wBjhP=b^Ur&{*+2g5-dQ<|9P+Cs>8^S( ztNL*E^zC^f_kJsdXl5w?PCkFg#&DkC#rmJ`%s;08`|@A>d;a^6&)&@rIA7+!H}1Gn zWZ(LOG8YoJ+*#e3##&=no%O}!EO$?9$tsVDCoJACbf5Kj7t_?>_icw?+<h7R=W_l( z6T6zfjC}F`^B=g^U%y`P`$@;{;4p_{(;B)iN1t1w+O*VgCzoC8!`+#yxhm5>yt3<m zZ{(|Yd7}HrLzfMF&TkAWw^H0zRqj|XrT<s9H~xso5?8HA$%9Y))-P(lcfeIBoAuP} zTbwx?IzMhXvc{54Xo|mjo$;H^8<*}kiu-BX>Rnbpc~8{*m1b*fIX>Q)^zEkD$%>*0 zx$Cxl?kj)3qQEX_`thI7lh-`{9{46hCbz@w`}be_bn3m8Z-1S-FypnZ={DZz&z)xL z&&-M1q`l)<x8~-%Ii|nW*qKfy+A8(4RR~x3mYwvOQuzK}m&;WJfr~5to~lSvxi{T# zYI%C;`ICVOFPzLbrqA>!NeJ1sBlcqNuT#_ZZ`>L>Y11^n-1j!`djExGw|qaUyLH<S z&%LKF=tfw@FaKH6`9*uen}w{*70g@D?|QbXZQG|E-+nF2`Eu|5422DCE$6mv-q%+= zHGRtTngFHMe(5W(KbJbT?ZWE+G2JGYR$kukUwMIN_mA7t_FrsU8-L5B>hk|{mJubg zorz1!Ew`EdtKxs^^XaPF-*5l!8g;JR{_B_W+lOm^PFPx9+%sj$UG2|@XGunS2W=|5 zW6bsM???N8^$gj!zjR0Do|v}yo51G($I2rY-pdi3zV)BK>hfZH`w*7%!iVN;ioe3x z6ZE~Q(fRr^zIhSK-CSAwf7Wih%l*GsKQAC+;jyrTvir(Q9&otMl|HzG#s1HSn}43Z z-CZu8p0~gMI&aDh;rgX<U#~TDyy2;=?=Oltvav0D*8h#3W%r!#73#PKZN4GzA2uuh z{tVU!SKZce`m>+QIenVLEM&{vJPs=Xr$3w4eq2}l@}+G*vy4rr>=A`?!t!Yoo=$jw zugE=lZL7jz&Q{Hitvh@*t}k4>C%RcSe^38qo@FtX3$}IT?EKnbydg8j%B&{gk!}CR zJGV4bP8C=_{8$xnJ(=x*^X_NUHhxL4vfVB^z5lEG!=P2`1w6Ps?HhNU3;r3Hspyy$ zvQ<@zuW{qk^1}glr8OoPcIDkDS**p<x#v>m1)&Ca_j8-;FUnnx3${#?ch-<QXnQ<z zmASqBidnT455L=dYCnIp+UZ@y*UCJ`4?fLI1+3e&W_bo|<t{i9u_8d|h1c)pj|$x$ zZ?5`RqqApi{=I!iU+y{o<@fUQ^Fpk><%1HR&)gzYe5K)rkjll~yY&--O#Ge2s^_F^ zcwb&o{a?ubfA)XXx}VYY^7-%VkN*9cyX5U5ZiaL9(jhm_hcP_*YE)W&Zua~GJ36}y z`8B`TIwmsuhG~Uu$^7?1vt`|Vab~5d*B?Cp{a1G1=TFk&kKc3GJeJ;Xr(Enm&qXvz z(Kl9mO+?1Iko#w++-17N67t~Ue9nK-A=5M$mn6&;y!z?<^nY)aOAEdoUFdOXj#|@% zX=)i7c2{n3HRtkGC)ak`)EU0N&+;t!%+%V$J<SYh@3!WJt~I|O@N8n}UhYl%8XVRx zX5#pBd)<m`-Ur2%Uo-;yWZA^hQUq19ErP4HPM>-m;!<9AA!Fx$`-kuD{(buVZ%Np@ zzkBm$@t@iswSB_IJ-Ipc&09ZCHCB}^`f%*C?xXj)erw#zZCTCME|lrMnN$+2wqEn^ z&U0oCZe>c_KPvZ36Ps#Uvr=)p9Di$+(xb17^fUQR#a($7cm4lVW8b+ivdtM4j!%26 z=e+lycb#VI)xKtv?2=Dr>waBlf974@Y%rBA_VI&lylKvFj4wSizEp4Zc5~n9GgTAc zaL=3CmK=WjwX@omp3a{?+rDpCk9eG$pS<$tbD4K1*|)N7Yi(O3-Q|D${9WZ&VUkK= zRm{FIRj;RiFXemK_DHiMe7dya^_?B^uWf#o-b)fGzPSFL`iw2BTbRD`Je@l8+6Hx5 zFR`tbsmFIK&&-a~iF@nko4s?}tUnLSGu(czIl0O7=7g%mlwW_({}=ynxbNrM_lwSL zcpfZ$M(gRE`$u<ZUp~+0`)<Or&GC(`PWn7mpKjQ`T75%GBJ-N_`6pqgkNx+VpWY_L zEq?os*@0x+;}-c3t$Y{En}2Nk#xREDw&>YE_kK*2YT&rpeCNB}udjcEIA-4XRMUTb z{rw|l+?MV|`qg=b9m=oWrd_N}lkP3#d;E7su}KPdZ+)Adn{>%PBV~o4yS^9e<vb<M zF}%9DbNl^Gyn1|W>z}<pKUw97&Q665i~EF^6hE|hzG%@KjjD4SbARf~3K`%1KOx)p zS?TF2-v!S8=Vq^YZp!^??z0-tHKx<t^X~JeXMK?9_OOcBv-S12JDUu%#C#@N_%ZJ2 z{wKJ3;`L2_jN6l4+VqSK8Pc{Xd<@FHSlMH4zvcBs#t#?P1+U&?nfh4m!UHd6FV$K7 zBKsCJ`W>A6@~^^;ZBOGWByHE#+nV+-XPC0^$O-ZH$`3X?TRER0WqCqR8>`b=h5!)* zF2z@;KZ{&gxaUydhZL@PnhOHhetPgvj-Qc`%n|sRjaSBqEnq@fU*huPd&GZuPo30d zy}?;a$}Rud?iCu!MJJo08Ko{o?AY@2=kxW;gmzoXm82EBDy@08*t@WCkI|pVBYg*Q zcG@#87Pfe|*yv02oxAmR%FiF~SZCW>#PL34PZ`7IgQl-D&#+jY3NTo<&hoi-_m8vE z{!-ji{X{aj?KZRAG-1+ubT*fr#loTd1k1|B9A|Ho|M|4}{rMBW^Z!3v|M=e*KL2@k zJ6-Df3)jpP4{4q<@hj`1_p<wHHvLOva{apT;JTjO2RI+9T-c>N+yC*S1=T-%u3u}a znfvXD=JQ>*r^TtgKAFFGp9HT;f~V%y$t))w!#7X6s5BvAwWI2tSZz)XAC{6cf`JW; z6SlL2{*Bmwqk8hW{y*~HRil^xF5-#oT^L<`@4DBy_Y=&&moNYMzAAS|O6;Zk(IVRR z@lTR2bxZpHol_e6^Fv+!m*nKO)_o7>T>W#ppm6oghx{i!zTLgOXNSYLdt7|Geg#e} zXU(--f7ZhNzaQVVSw~;JH|f0>ZGG)}-!es>HBXCO&nmVBvTWaf{@P>vz3%^{&##@S z_qC|{{LF4Q^G#D@`3=8L&o=B`GwJh76{+I0SE_c@)z_7!Zt*_9D&JZx{f6lMGdVNY zT3@*x)5vEV-`@NE_mQ;l<+pD=zjR%*{6YM+rK_ix%w#?JKHI8fUHbpi`!l=m1Y5rm zezp5(q^hJ#Wn}rQ`BOg!W}j1u+*;>#Xqxd<^9t#>zfnf{>;B*QFZ({ht2CzmkN=;Q zkw5L9<e7ilzC`@I$NqU6t@N%{O$@zwdDg$@h6f&RUR+YPPAB5iOqr_Ovxc8+|J~F1 zsQO|_Qg2hV3&SI}cYBw4{d+dWBhW-5^0?x?$$k}irf1WW|D8{0`S<Nx+NFn^&+nh{ z{?lhm<H*}A6;eBYbMEeWePeq3(TSQ*wz+9;oO;ZpGR<0Lp4^W|9f$fX+2`FcTz#Ke zmv_a7BQY)S1CH4R9Od&4bJ<l>XD#oo-pO$@rNMaegE_@^8TI7{bKdKH?++HdcXYM6 zZiGwW5e|`~FIgAce-GGpJjZUX*FB?YLDN_63wsnQ)bl_2o7;=0KdgVe5zw1!+hymz zO+CpvvTt$M)Ju&fb5i|_(q7n9?UB3n^#wyk!gayp{xMx$6Q6!Ot2o8a|8;Id_o4ZL zU(fDJ-@}vkuiU?N^V5Gj-aXX+>d7#>=_{AaOYf!(%_@-}{;A&Q>-WqRnt0XU{h_ed z_O2zY)p98XIouM9PWdyYe5slJ>-^pitR<UIZTxoTT5-auP_NgzoQDeCf7LclTsmRi z(TFVleWLd^N_<}(p8w%ydi(;`6U7{NEgU!>Px#?^Id8#-FD!P4FD{$J?C7}U?D_f= zi(;K8ZVGs^=i3#}i4)eGkh8sVX>x4hH<jq@V$*+XHd;LQ(#hHoa?dfS>f(9MqVi1{ z=eCQ-Z|3^>boci1a&d-_Kc7C2{&P!xztQ{Ze}6P@zUkWWar?G8C8tF-+*#Ti`E0uX zXG^Smb~bCH!K3BXGd4bYp87V{T7;!xGyk=U?QR#8UoNX=64^HYCST>^DOKC<&lPZO z`1R)1pZAO8Z@mvIYWMbfZSdsKni>C|q&4k5eC=3`Z~dv|f99}yRA&|YHZHW*U%xp$ zMdxL$P*Umsg&B>HL@%znSa<52Nyv1j0=Z2krWsi}UMrvPH(SpwyZ+?uWlJtks@={q zx#(DjZ!E*bZQB2|y!~GncistJSNSnPGV1oFgLZnSEY@zF(yFMv{q@0yb4j|V?aurx zcHit(D66}CGKXnT(JdX`%nb_jPaRANwJDv*P{grx&8e-MEz*AN{hMCBFWr=t|M>aZ zeBr$(RD$*S#O-FcvhlZ9&E4)kt=vt1`oC-k)y;d%lUL-rRH?{)`nIVkuWEOD(UObd zR_|u1T-}%AQYCZ3e6{crsep?QbLM9s7vo9JOjw?fv81HVzmk38qP6cA@O<4FxNgC9 z-W6^?e_wl&SsQn*!~UQ8zy2S;>;KC?h!Wc<*RA@jgU8OQS&Gv`y`Z*r;;Fy4jy()I zA3g7)-TQl!v!?!a{X2Q@_0J+!fe&<h>(4K46SOj0biUl+wyX5I*%>V}SsuUESRwv+ zH~%b&-p89?gw8CP@#A^-`TH4vj_r)@Ih=Rtc*G6yC54iAq9qkx>_6WgS<uHgN7}>l zl%nCku9DwBY_~Zb3F*1N`5(iM)G2;bntwg3`X2aroybp%DE((i>ffJy-cz6N*T%fa zjDgwxr2LsBlJny}9ND(!-JHvJmnrUh(Y3a~YCDs2iR;DW6K>w@(}TVl3!C<@>iL** zmwDgy?@#(UI8G|27+%wz%hs;j=OO2}xVxje^Z0AW*nYl-_A*=9--7d(88q;OxQ9+I z)i&^IwQya#=x0yX#bVi{)bk>xvmUZE$o`PypZ(zApP3p-;vOzqybZ4Volc}gy{gt+ zxSMCmuI-w~WX`|SVQXe#>{*ujG(2T%U~Gu+&FFo%_io~>aqqvW)L+@HsQXNA$MyW+ z)XFB0D-{_$2CX|9mkVrS6N_)m5PZLTe{z=e{T-$Y(t|XeavAn~ztH_`)5JYJ!q?Y) zh<96he9xIxcUQ8Qab;=wYi%>0a_x;_{+AE!#!I{YlzK?G-1^e<%l|YJ>yxzgdp^uo z$S{|ibKjKVn&{uBzu(t=|NVJ={Lkn64eaGj#X@){WPV#IV_N#4daY#8GzHt;XZ|fn zUoNuVAa}=wrTfD8yEDtS9;-gJ^5Tl)=dZS}o%iY5zNb~Q-%QW<GLYK0&Fnkx39g)H zWirbIPXAPV#dagas%F~-<@39)e=4?GmU1A~aWS`VyQ6X6>)o|N?%z6}y}0T7_0GQO zI*Iq2bb6vTOn-f~x5ePcrI|+qb+XS~kp95e6*NzdZ~DJDhtoIeT%T*)em3u<O7-GS z-M=r-x8$t49uaR9ca#0vdr70iYrbBLvfe89Y<cy((7T3P!t0fd9zS}kZ(KBkSLjn~ z>mrNiY}qd_$Cayb20i;E$$0%0_u_R^)9!I3ZoGEt$G21&)&5&tr?<Y&?PcC)p=x#4 zLhReETPZCaT6Yhgyn1n+)b`GwYuA2zDpdW`O42ggw#aVNv}F&^_ZZ}VI@C4YlFv7K z{q037P0m_&u~_oQF$uU%x*P4kH7}qo&Cc2=ds?okO#1KLGR71B<+WTEJd{!Lym?RY z^~g8dUMy7Fy7KcjiypHK%d9R7HeuW5^lfIjInDV`e%<ieV_tZ0tKz&pG5=4>{}29= zUH>-!)9rJ1p8QfR9UdzS&(8Huvrw#%*sjxd`sa$$7YSF(I?nHWs<*Mdh2eWt`mwuy z%4JLP<Tr137pa`(vvF$mbKS14`LpBZ$0xY;l>d{9WLuJ9)D<OPQ&1j%EXi`wwfSb3 z|D3NZ;@PgjQ+lyUl|$Bhmj$!M=ld(S9Q~7VLDxv;TC2mar}yPdx^r!mPo4E)60ueH z{am8y@{Bd4<3gACmfi`r&tjgLwQ5#xo4HWHd`|e!t7!|a9a7^u8Xnwv?B1U#iavYa z-`?R>U+`MtcW&|deX9Je|MqA8wS97HyQG26o(Yoje??Dmb$0!4KfS-u<<rBY3po{L z&p$o;^W`GrhXd=tOE2a<N|x!9e<moubGgT~qRD@Ke$Uk2peg=7>N2C`rFpG?y)29K zH&%zNeSUA#*+U<?_7<*GU`gA};bp4U&SD+Dz{th+e1QK3b>Erae=kZieJ7Ch{7<gN z<?TE4R36QYOPeVt)|zOxP;lvD??v;TZ)?23n|UI5e(KiH_g;N_qfD#$c2;NeFY5fZ zIW_8Ai$+*-*_LfQLDN?KZxcGfbp57_&9=<0mkLHJ7yPlEI%V<2Tf08>O+Wwse0hM2 z?q$)VP75@v&k5hZ@%>o(v5+0z7fViT+4z=YU*jI*N-h(x&9C%jV{e`>aLJuK%VY=B zm!mR0yX}8}>5hEy_Ur5LA7B0LX8!s0@wmL&{fXb#@T7`p=zO@vFx!FgRV?Qj>kgO2 z`H$}fJj>9WT*dw%yn3zVNu|BTQUQVC?BAd5yeOF3x_e!hiq_d%lk_(Q8{T;myqwwB zwoTWF>BR%qTp3ZxZBo;x3iEe28lLO0e|-10^_=(q39=Jz-@e_g{GiOuy1db>%!JW% zbI<lRr>71f`==l5-kvkjL+|m~S-}hEc{88*<!-iE%>L6w{ztFn|7+M){rhOM)0u5= z=r@sBf&z<IY>UZep45HEO_Z(v+Ej<H>+|n=K50!l-KA09AmPjI@a+2><+E=x%FkP- z#P9uRa=dV>YSYA!e|P8h80u(O8eaE$KGXNprb`EYOKCjM?B8=qGxPM9Z)LM>&c(NH z&iZgg<DW%E&dIhW{U6gyGB+>2@3BAOX>9FFtAtWpPwUkC)1EopY+BkW@&3i@hX*!4 zJYM&r_L|HKb;~uH-{M~X&#JAuR9zTjvezl=O*q@m`kPU^CN+Nam_57l>(=Pn2OnGR z3WiTOIy*44_xR5(<(Ukx1bMfv?R@p@$K0FEZ`7~tTN*smW{Z_hQj&-Kr|i0w&yV&; z@ilIa+gsK8|3&?8^$*wo|GK}UD*tTbwu_a^LO%a6IoZ{*Z}zsGM?L)y*0*bRpGn%C zd~%AeU(2kn8LaaCRa*`B#+OcJ3OHl(Bhs_JKdDiI?|SviUy>pp?^v1kO~0M@s5h)Q z=<CE|?~fE*bhozQT%P&ZKe+MWv!cuUzCU4md(7fWO%Q*Sg|=CB-A{9#6Q`}833g30 zS=cDs*!lL+j@E1SYp332-zNG0SYS=%m)L^bPf||{=N1KQa`Kt+cv+v_!fR14<q|)A z)a354inY{>J$k?Q`$x%s+rNn?%$IX3-BwD;`x^WDcy*hjr^Tze4<6p(dZ=;NIKSi2 z<szZ<voi|Va#nGwy)-x;FjM%D?CqyJE!k(dTi&}@)3V;?Z*9f5C)pD@D|Wutm0RCl zW^2VDcjIgR|Bd!-{q@J?k34+l8N7<E+W+LyB+(lV2PaiZ1~>1m{K(}Z6tHvAlgJ<X z-T%)TFMqx-`(Auzm}<s_h6Jf!D;>%ieVyNG7hTzQq4*#3mb;9+Da=L=Oe}L)i=I5? zsSrMNyHm2vMdV%z3ya?ZhGotzBF>FV`y?(h1RmGn^<=A1NVs8qwx9P_k5ZZPw6+;r zx4-uF>qx0d?UP)jTw;?T63oN=zM)V1(N31Hy!@OTTWe48dQSHESt;^^dsf(!D_dAw zO|<$qxtZ9W>RZ9a{jr&6stvD`Yo$;|>!Za&-`x6d9?ZxN+rfMM;P!oA|5pA#|L^ep zd91th^7B4EI%@2ZdwD|<Uv7QBnC$0P#Z8<6{xcT(^b1X9d}sAQoBj49m7w3#_P==* zeb_VAW`T57_1xXs6E5D$7B_aXdLx*1*8a&KhweYOL#s_beY@tr?V#nX?IlwM7p&-? z-PeBkXGtN;oyY&)&Fz^zQSif)lapu43ar1gal$6SbGP@j1oLgxnaj|XoO$deTdi8) z3e%^*?yT!M`|+p28N0fFf^~ns*T}|Ke*3}{H}ApC%jy+XFTbBPxwFkK@zs`V>t96v z_Bj4Fo8_uWi(1IKC;X=Zj7}ZwJ?wU}X5VD<Us)Alh7GOHzfaRV#xJ_?8(+=WtxsZI z7w0?`{JQ(whxH~}mJy$}B$buynwC-YWlQ0!{e?dF&z}8poTJK$>wBHajeVB{X1Zn1 zz4a#g<AhC3E23|iX{?Rbe;#Xj(c^Vg@z?t=exK0k)>&Hk_VNdLQ}$;w-$$|kyH~UI zWJta0W6xrfDD!!r)&+a`Gqh=yai&*)EWW?D#Pm7ij!*4VVw$EK*A%v-T1Py)c$;I- zv*WV`ue!O!IJQkRzBIXbhna~N^ZDiBZ6_WbDez?4{Qak6-j`5=74pIFYd%N+`2H{b zzu>=n_kX|Cz9qh_t8QX`W`R*v^_kuN4?J04`?Req$ggtMe7k14VD-h`+guJmPk&?U zeWfzx*7tcOH?8$L7d45V-M9YH^n2oFm2(dzFgF_>d;H&RO0C=bN}&c%a~DJB`8Sfp zCQ5&QfBePn^1BuW=RHd01D~Ytu&k-M_}0FtQ>}i&%2z%6if0{?=v`cXm~oQg^f%6P zcn&)-7is5SQ0~b;J(+#Rs`q#7?|=QNlK(FC`@4jm?>ht6<#HT9ZfRZN_baHpM5@Xv zA;Ko2$&5=S>z&f7yleeYemP3dH2<#C3_j>2_SCz5W0qn;f~0`AyJ+c+AGP6gn~tzw zHoR=Wz}!A>rhxI?dYiv8^$(8!(}<I)H+fNA_`s(2*Ed7v2aU1ppf!=dj@y6U9v5em z@&Dh;FIKFDQbntDd>E%S9r5B2kU6#5mvPdrbGsP4?piP26s>u{_2I%x>kn9qH8wl3 z<*wg6C1Bs@#r^xbv^I!8O01Fy)~Nq@^tt98A%g=4O42#5SnhD=;+461YxcGEM(fsU zE14Wf$bMot>zPHs<JrkRyM$#Xr8#NcyVbFM$JAn$Jng?%^^=axF>ex0wvLv*%W4** zv^rm3@LJ&7UCWx%k1^S}-&p(1@PNXp7m)}2U3i=_%WiFIzxQjmgK?iiy}eHVr_LE? zANBt1tZcT`n~*;9>w=k^uDLBf{i94~{f~o3AIQ5Mu#o@fUiYQ^Ov&f+_kO%T@(Mee z7IR%**uUP*b>0*A_jlFr2)|wwaXIkfxjE@eUzmGEN{B@7b2-<VHs|!it74^#FJ+0m zxU9|m=hOF&L;TB6Sn)}jZvAE{x8=%>t{;<27wOx^+BgWMSR8%c!!gBBdc9QOIS<*n zlCJF<JH+1Kvp8z{j?ap7)0(rLzgp}fe@5Hpho8x~t#!MizPzc&-G2XvtIy}(d)Qt6 z_{6#D3nEfAB|9Vvle<MOzq<Hr+WSZz(J!K#bl+cEzV<}$N!0|?m|v+GDe?0!Ubt3j z$6fHwuGcSbd!)t6i&?jK%-_F#vGi^0*kW7z+f~bN72kU)ET2>L|Hu1vzisym`+nY- zXwg6Ar-s2yw)%5l4X&}<`yLK0st$gA#^Z+A-z%AEZ||AeP2Qrl@3Wa-`O7ZT+Y6sK zCEu|~E0}kV>5Wdk)2$Phfwi0d)n3}Y>bmp%kAHXZoR+l}UVp5`NN=<6T=RKFt6m?N z<o)%stoGk&|E^12kP1)U`b?R*@afEX2O09uN%}El)y$D!J6B~^c)QCo3%d(ad)Jk6 zsqZ)z^8J|f|BLp&(tq&(H~-IB_xF1J?vuGCS<R9DsR?TvC!g_kUgBkapGmg7XNs&? z--C*6T&u6j<W%J?I}<H)QB7uPcPWE}soeJ`b`{w(XMVnCFy;Dl-}kbg9-no!>k|%V z>X(~*CNtxFNX0dYMa-NxpY6OA&DH;D#?@wnNjKmADKGxR_~+jIKjt6X>;CU=dSCPV z)4j{uE~!-u9=&?f*4Uo+@K)T$w51_)8P8o~Tx$N=`lZ#Y+uC&tE^VK-w4r$I)12&J zE%j{8gqi&hHqZ7x@TgMi*Tk(+pG#)s*8Y0={gJH=TY;pY82kL^#!|wSa&xbp*y<7| zm27+JW<bT|$%hJ;s6N%WEA7}7yT`1uPB~vLJ-mI!pL6N=56rEXUjFy0j>q4h;`=|n ze+ZhueY}&0|3lU9ch;8|?|eUT)04~@$0qveww~g6l3B9k|BgoCwY7_@d>iK%S)98z z?MQb^Rr(Yw*2d|dQlExi|9;UtO<Y4+VgK#haaml;ZM*-yUGu`~|5L%n?uo$(3C=Rw zsc#>D*t3kOFl=t$7Xv<99zVNeU8Z+c?kRe2D(t^*QaW(%Z+^GqU6BckHK&AF-D`8) zutGm&wMQTuU&&YNMW<)~GU`A2@-Oq^{}U%&yF8cm)6I2^r=&6%j<XuYFm!dC+H>*1 zbxZeP*N;aex6Z9&ez=1{@6{D94x48xnwJi)V6naa^l6{TOWofsmht;P&fed9|8I32 z)BZ2q|9Q^a*EHV$Tm9d)=Idkrk9XhK&Z_o0*`FKTzGb88fi)k$Z4^w3cr1J3w7lSC zz6;fxKbZdA;kRIg_13rpCTBAAzs=n&(VuOb6E??j){6Ok&yMVFJ9%X9H6Ft}Z^l<W z71`e(?aj`2-`v<1Fx$Lwag4-MfzC>s<rB?%c0Sy2vm#(eMP6dhzF&)LrDCOwQ)S-o zV9I_wD|N;<tw~pUdrszhSy?`Q_lNC%{a3y0NiMTqu1IWH^6|z09<%2vD(WJ?B{t+; zUSarD`32j2JNJ*1_I*sdv~975_rD2VbH%0KZss*n4oVL^Jnj9okeA2!yA_X`J$rt; zt9Ng4?DODl%xmq#ABKJU$tNcJRc*eLe__qVe<f-Mr<JqSZd;>j@Lou_?78LD>XVDV zXH0t%QQ~wlaPdp$&9lCz?kvz;aBbH4$E^NKjh~&LP+Z&{VQ(yb{qvhgy)&e@$z?aC z+>MHzVE5EJe$u|rlkdDfSDO3xZtcHG`>WTw=|;zFHr&``x^wq>n`gVvC|Q+VG>LoI zc&~lQ>iD(yJ>#+;FX_8++h^StW4DXZ^L3fIcQ3mZx^7y<OaFf-|BKW=)c?mDp?{<& z?a3nRDc@TAmRa2XQ5n94iMRgICfm&L<gTqneS05W>SgFYee}EDyjfR2?d`YYvCKDR zTJ%-pfqUJpw6Fi`=G-^nefRmh$%UPNCp{=k3jX$dO1{n+ku6hMy!T9R{mIhTx3D=R zMQ;;xn_#U)ov8iS{J$3emfqj~aQeTW`y0aF*QJW>nH|}(`DXIDU$&3FG?ibp%|EvC zSk{ASnm#hA9X`j`{wTP&Cp*r$B>vV+)~{{Fjqc6QI^83mY=7b)@o-J0pkvRxPRoDK zG=n1lROHORIb-SW^aceZho<#z+Q%1sKT;Xma-qWI%MpRXCy)ME)^b!%`PQ`1sQTcE zw;fG4u1KF)^x)jKcUzgtTQ)amM_AR@SeGj0_J5x8^t~SAnag&Y{<E!p&2j4Z>%`c8 zNe2E8n+|WTuYY&)lA$5zI;j=P2ArC%>+`i#D;Z}$R9qO#;LhdmWxn{Jvp{aRgHVm> z#n$BvA6S)7Y2<nRf84)+)%{wx)XX#O6RN-dG7Sv8uf@OO1>d>@!b*qc-qkSZlknA# zm?X99{l;}C&N?P{v}IICW%W-Me-wGauWAM_t4QrNTh{Lt#<!wZPHZzusw$p+On_mo zqLQzG*kZ-{s84PeyH{RzzZ>q?rF)>es^9H>&p-WB6T0qSJ$6g++rjAVU9(-PMc$g^ z-4^PJcs$oH{L-Ql^@kFI;>xF)BkG?X=Kpy1{=ZzC{|{LA{bG(kx;fpypu9fn+tqI? zbc8(4y}GgE+Xd%i&d;|;X<EL|EVxlL*>qJ*ul$nCNzKKlrmda-?!dom{>vIZwUwUz zYX57!_Ij=ztBXz8)@%(uuhqTebJf0noBP*8_ukKn-@z80t(xNfb!sc;_B@RUHxAjC zISJ2ScHGzynZKBK&q-azE&KfEewCf}_wodvUS03q)9%bWx46TsI`D{3-%M5KCbt<@ zD?E9B?%ewMto4sGUnRb)HJ({_YhC9pm+<I}4@(6TwRc^MalgMkH=9p-$@-#FiKhz! zCAC(R&eC7Cbk3gJPmhS!9yuPJ+NV=Hb&Z4D+0Q=?+XyaEdUtZ+yRE;r<wjn;{)<y7 zH~#0-9bs2)2E5-Gwfgh!nDgDu%vb*}i1*b0Hqj(PjVae~0Z*Ndee?9KX+Iw-RUNCJ zAs8a~G|%Gr2kHHfW~uK`yLRHQmhu}fy`+V_nJ=!NfBHQ-y8PqK->)b9IesxHzSRA) zP^)<U`uo!M+Rv`6<cPiZt0~#*+`l*Wzn1@q|KI+<`p@0{-!F^L5KX^z_<CjQvtysq z-_)lYT8lc)`!DJC+_84e|Ek~bcl0G_RolmHcsB8|%;&T3&rP}VV8siKj61u}Xq%;J ze~~hDZ<%;o`GoG`gBASm&F_YPoyU-<X?Hv@T4Jqg^10$QDXyR1Km4@+ef@LhKiBl< zfAHS_%m2f-FKbV)e!s<4{om}qx)8S%%eL6VCSMhgWzAYGTk_?I^30hFHSDi<G#>xf z$SU&OBL4!nruh5!z3-y$%~xl5lF6wbw<kc}nMY3Gc2(`Zf0w7<_x`&zed_-+*ADjG znsi&BNA)j%J5Pl~OZ@IT3>%A2olLd!boStzqLVzW)3G$!W%`jX(z24(^K4A7MOiTV zJ@^053~B*aonfeGxSqPPz9`bg{^Hb`(dH*+HJm^7IpzVAPTaYM6CSVPk~j*4Ke?4v zi_Twcr^XR<e^%4|y>&u+-ghVEx{0h23749CZ|yIcmr}N;|K`@Ml?i0X`I6Q*apIZS zz~G6Ff&Wi+ZIIdR-EPcv`PbohGrTu)HRLSQ`okJ_x%pl8k!f0X?;3wyn3(xlve_YT zrTB$s78Nc3Pxf$GH?Xd`^QmH9g}}BYcNp&qtmQm);&aaOP|bJ#Y6-zdlsOu^u5E4z zGke)0@;oSJ$Gq=GEnn8Lt$JL`$|t#X^Pe}D{q2vxeH;Ae1Ao1!{cryIG%@Divim>3 z{&7(L56AraZ(Qr|?>YN?kEFh(dHkaXuZnxLwFEfMybs;FuOa8D$BqN8Tf4bTH@`Iz z2)(0T88Y!s%=D`V_UVaVJUm_SioL(wHn;a|9KWqHKQ(_=SZuGGcwSs9i?czJrJFJA zvgK`#pBn<0(qv0QzXVsOSI1AfcCBSn0dI5+57*=c3yg)&Jj$$nc4zIT;`1Ix%EjH9 zoT*tUVGYrbh0gXi2c|b3pL5ahx%u{$Wsz?T7u#oCbTIK;urn?td~J7!(p8Hq(Weq? zr|zHdM*8KRd(nJn_t~xC@x96Nb)9bN$v+#fimiWfyzTd$Nk;2To!6d?)~kq4SsK^> zw(Gn2D~T(X`6(L9<9E;f9of#D|N3?7rq!;GEnhr)vf86&V(HAaYWIFgge1!C&DUez zTRti9)w=ku{A}G#^SAlbO0`<e`|{<f$zy@&;HjzNy9$lxDKXw#U?{%coYN`tqWZ$u z7jnWs&H3}fa({1wYWJLOncC_m^S}C5TOYbUbNbrPC^)@N&r+o_dE!=sCZYOY{{QcP z5dU{5Ud(qf*Sm^U>Dd=5^9+y8Ws~_`;^30bo2v1tJUDvlR&k@K)^E#vIFyU8My`7v zd$WJ9fZ^t>ZI=HZ+Q_?Ko~u&s`(geu?E}A<YIBc?9)EH)oBzNjzR7kEE;dY=)48(6 zK1ti*KyP5igyWKOiDw)5n#)s?_a0gQ=hpoL>;JuKo4kMKvHzCbD$Ac7ikdNr@8ui) zQ<9swz2}<TtE`DTzhdU$0teS0Mgfkoe(pW<IYS;;F1M9l@qt%X(^ulj#L5Z9S|7sh zT<(1}Dc0ngbL<<#{J76YcX=K>Z2d@~b8SxBN$<By)KAK=NlcWSr}iu0`E+B|NF~FQ zCp;1t9zIZeJfmDqBxc6}<?5S!(;d!ao|@wSp~7|tXpIBIdQE|lJK1$ilAh-}g758N zm>+vl=6px~!@U9))mChLn}4Op1kZ_D!teS@uwO;ffB)(i0gUr?r!GCP$HArBM88SL zK|FMNq`zR!u|O$PnNnA#qBWfkEc?W|IW&rU+CsP4zdShKPg2fgsv`3g$9B*D2@`uF z#8-U$z9k_=G+;sXzUa{VH#H72-3VV6BH8jpDweq{k15m5aSn^wxuucJS$`hBm+lQJ zU--a8zIfkkb=g^ebc!x7nk#G26m#Xgyq&r9&gxs`C6o8Ne`?C#7GzS}pWC<fowilY z^V|0i1(?}?Ic(pt|GW8rv%3HCznFj2)_>rCs2%^4!GHd}M^Bf>y98<pbeN<!OfhC* zTCcoRfbUZjduGcz6W@88n;W7YJ}9#D{3-s5ty{WmLCTz*z}1PHa?)>e)rh|rmp^hr zgRyAdwtGs?Z>5|GyCNL!=5z7rY(u}BLD?(qr<^;eCQuPp^k(V$w5^ZCl@AK95&m%X zSN~f7zM_nquLKs(nPLC^dxI#;56kAQaal#DB@-HssV?u;m>F}{RQoZvRPdh+N#j4R zfqRy0ay|0<U&*ne%(}oDt;h3o9ZgmgE=@id__^iXjT^!7Yu2y+sXNnN{=U*Gn`{3x zj%|OruV#t<yeFSi_vS}@buQhz_V1(QbyN3Rf0X(zChNT@=>3%$z9tgamz~dv4T+i` z%M~<#>XG-aRex-)&@$>)sEo1wY~?3@H}jb3efB548Y|=~JZG(SWz4p{vF60TM<?AY zYQIZ8|17=cX1#0vFGHo-N7w&4weodklit6umVKIHhr5`6besN-E0QtNQ{y#vmwZ%v zBzNzk^A5a6!W4t-r~aJqc$w_<*Bdy~*RIvySJ7(!UHl){zd!T;Ygc?dDjjmg;_?js z>GjXQR~l?HU`mt;pJl$$H^IuSqA>Ny{EZS(k7wI%Z##SM{iL-$9NC{Dyc>MhKdNTf zGWFer^C_!rWEVa@XDiE+ron#nN1Di&-G`lWv}XEzeir%RNql^k=o_i@gcW-$^8Rd6 z&n-E0dY;L?o^<<!`|qBAc<2A!^X1#5kbCFL#fugxr_JFjaI;J+3sG~qVtwIQ=;B2C zxcW(d`1LF}&R=<{)qZ1|$$R<R4DTG=_iR(xF(K>E?QbP5ch%2sde+n@y2QpWhfVHc zH0zJ1h%?(39C~(blJKu(Q!jP*9ePx9BSkvw^Ya5u^>=1&ESezJ^YL!V>7BZVW<9R- zuTJ{#QsdR`bTRgCqS^CS2+MD0usH(Cp#tl-`TJkI5ff7V?r@}X8Ou#cPa%dUNq#4_ zFFc5vaA~@;rG#NT=h3<5x*HS@9Q*QZ+3k4^?hR^o2e{-euP9y+^p=0EuT+58DV4d* zOl%(Sm!=+>&y=Gv{h7_tP3#5@2k(d}us(BWE@BE;G<oIq(2n-M+D~P-w>9Xhv)DfH zG0vVc+mx>&|4sUIrVV*L3%)YG?A_b7MyN*2EUS3tXMXYbH>%A|+q<t;OS$+g-rr+n zGB0>n0n=m^qps{ryWcHz=vrPR;8P!eY)-Ly@`|%b`!(;sJ$vHMx9$6^wXgmA!2h42 z?q7Pn-1@k^$K-!F*Grs_w>i%L|3di3XK$_d?ESNQ|6|ELx|0^^P2^V)yC>w3#kYIv zmWHf#kqav3O;j+MRWL)(z&!X7YZTKB!>w@*R*N;fxylyb{d0H8y^U959<X%BTr-OI zsnz{dX7K9u=Zy?er^9pAg9TEwl^(xeZ^*=ZZ}YM;<^9jMP04MVRaC$fxIjZgUgcZb z6cgoh7ZyEP@!nGY?8;ZK6AqO2%kb}bH^J|)o^(;psSL4#&rA1~zkjz;mg$gTY^_by z?;X{SS03%0_fu85DEqI7{%@PihZ}O=+iv!G{`7rdf1>U3y<1IZXWbO)TNIxcxo~rj zLWTPJ^!sx~->*7(^xdXs0Sh?-Cmvnre?>p$Z{GW_w{Kf*&Z&O7@>TO%IlaGeueB_b z)?Bm``P5Q1VbeOsw-xg=_k`_veD9j(s)+D%mw<8$caisRT!o%q$dP1uJdg3z{X2Vi ze)-P#G-3a&$F9q(EqxsRJ*z9Ri_30^R(Z6Wcj^4s`$F%1FaLOJqllOQXYBTiYd)2% zTJX}X_ViAXzk<Jy1a3M|^mqEa;)@gB)_!~?`tQ&D-=}}<|F?60%XRU)7bTdi4yM|l zZWJgE_M31(`|tvr*Sjm^ud8n7D9{ZrsrWKIY3i=s>u>+qxV19zzNG1Uo9V|t2HNLW zKDl30=InYvdD6PaUsfDWT`_k9L*Fv_B{s+YMu$zA|JS>2_V-H`e8=0b`FzT`aQa~E zi6h>hXF58|AA7-RV`jEYN0y~~<NR9IW_{J$Ck1YC@85cWT}WQN|5$LOIO9^~wA;c# z{oC%Jtt_5<NJR7RZH}^(w8Jvr{f=|abzhQudeevIU)yp^q$;(UWJ_1NR7-w8`uAgK zUa0gRlm1C-q%;>^|5hm_+M<2S>XhM(ZKf&9I)eZ4rH5Np&*Di+NVDKuWYRi4M&^?p zcm1x4RV9BOf879{a^0i%`sL))PJcKV+d1uQx+YdI?GLH&F^zA?KHl^~?$pPddPk$I zE`H9xC!CZP-w+(T*`u#K(MdJ*J=;1Zb(1yh9XI(jFKg{`O9)daoPOhr_Jp+6M`v`M zdyxCUtKCcSwe8zV{s+E`8)uonDdKieWnQHu?q!>Akm;7R=b1uFxrAM;!83;&cS}y) z61k)EJ8jY4=eIdoE;rAr+U4%KSiF7N6fT|euV-hvR&D;NS=jY-&$W_Yi)5_#GG`ar z3HN;2_;vfOubVSP3{5XH_jE*Wt6AKxB(zGoLo0=E*`-Ri(0$+MzCRZ%wC~$i`9tgf zep>&)`u;Dme^0xGAC&(+(trN(oq4u<=N^6WPXBvP{pP5Dw*A^MbFHgde<yh?TD!&T zZtrYw!_V_xtpA}GIPdxScQ%4&dm<%S8K!bxVyIfPe9hvE8PTUxvS0I8nIAv0v)MFx z5?i{irw-e{ts9SMUOaO7;Zt6Zg}>&1TFB61?!3&`c-<zBN%HM?B-}as+>RSIzkGcr zd~)~#DFqXj)FZppO#O>LY~3MQ8TokeAMcq7zG9~C3$KMWDce3OVe;b2vU7X->*vS1 zxSkaf&-EsKwx4#+VhQt#IWlivY1ykk$&L1VHHFPD#>#<B_M7jY%twXJzZY;$`c++H za&6*Te}|Rtx&`I=TR%#yJm~$GWn+DivAyv9YRinSeXCQ1<hP%nW-ax1LE@CWH^mM+ ztvxKxAKv$+^1z?HmeY^=PnoJ~J9kUa?6CFEKZkWOn#{4B?wWkw<j=OgfVRrzvAo46 zwq3tDJ@)OFodH#QL+!uZ`&XX4Dz)}YB2#zrf{J&m_Q%ZE+}$mA#dNLfrRL9XdUsZC z{`Ejt;GpU5Ym%@2oGs*8{6GKS+5i0iUd8{`|M36+%=y``C--iDv2EVn+Y<dN`wlfc zwn_`R7r4nlqkht_M}I}<rcNml=(zo1TBNJQ8+L)iti8qoOk8h%PY9KBeVt^o?B{Yt z+2oXKaclo`ol)^Onib!~=e>4`qP5vIw-bdve~Q=rE8J)?No=vggN`@yPhD1qeCv92 zT=~0(dZY7g;Q&U(6OsG2e?4!SVtViHmJcS@lXc>PoU2dIQaoGx&vwP7SDY2g_8*^f z|El%Y&_^M~D;Ofyaf`9~oDaJ2q-T<wYGmw9(LdFvtE_tJ7K&|=QH)4Ay{ll?<o=sn zHoBSDukF5&{p8~^ou@rchwPan)&ym%bQ`|=tzNN5?ha@{U_<ze`#w>#Hd(Zuo;oQe zIFdV{{OK7EwLNxn^XJ}{@{KgqUjOc8@4QIc>a2t{Za%L2F0}Y}X)Rw=*tv3MQ)(&8 z)c4DmzMsct&Z1!Dz*MzL;qt~O3Ge4!?D27x3fj}{wZBU#F^p^7eNK*InU|t3Hw0YY z$~a~JyO)u33l4fGM4yv=DO`Mthu8bSu2`kg;})G|b9P%j{}|(SPg|R*cVFStkM%cZ zd-e2Hu77vNGIG~m=Ia8@4xGK_w`!L<uSm$^Tjz0!p*8%=Y7<wBtt=Lk?p=`#xny)_ z*3`7Un;UpCy1(4=x3BFqUw`kBd);yVbMF5R-v7J%$IkhG-G6+X|EKfx{`p5fi|ZHI z^ciQ)cerq3LqpbrD=B=57w3zveRE9vdUN=Hw!h}fygtRb^?sYR{Gp-$rXyyOOizub zh_XJhy=(Z8wenQL+K%%0-`o6n|74xZ$Ou)DmAd~movCzZp7JTbUrYXEv7S(Bn)&|1 zpXZ++-*gsR{P@?+U-tzS?d5icJ~~<R+)|d&`uw_mW*uwJFH2SV-jlaR*G>6()#lXF z6CO9kID7IOW>uI4=LKp%ubmaOH~y1mrCa{G`Q6D*MmM(vr0!VGoSCP%!+!d`4fkdj zg{?Brz1^~X|5QuG*oj3`-)G-c+5DcRO?AQNy-()<$k}Xk!DDw}Xje_jX4kcyk4`du zTQ~FNmxnu+=zM;@Db7mu{^D$jKgQKgN7WaW#_22i27Sv*4SB-s+rHHKhQ+r9%$bF` z7Srb+D#_2k9zFf*T|ZudK%e&sbCW;!7?}OMo4Wm(M9G6n+vcl`Y2mf8sgq7_c(tkh z?I#z$v)u7}O4;)#9$6>5e?_XUPvPEay?yO%oqG2BKAz2god0+2{{H=c%m3B?SQ`K5 z$s?8uUbi!6t>;(#-oCxmL}tRocQUazz5RVH*`_qUi7@5t|F`)``$j*vReujSS4S^D zymDIT^^g1ZD41?Nx9M$W#wLYmsqT-@j+oV*{Xe_F+4SzVRle-o3Y$C&zRU`C++zFf z9Jjtymh^!*3x(&(etD-BxXR7Uxalvqad+R;KCYm}ey2Xp{5auUo1}pS+p(l)4bK`P zIC=l~B)YoTFPjsgY$UZPSl!^T!iF@d&&6`b|J+FkXGqp}pKcT}lW*JAJ*sDI7XO=E z_8_Y34V!4rH@BdI?$pD~=aOyCFYVrI$-gT&D7&M!^JAI1SB&}sS#`-pHYp$Vq+F{n zrd%k$l3S1{#&Z72-s0H@Y~|Lomw{F@JSa6Ria!-lv;UJ|Mu@f6p<JfmiE*L~ujS_5 z%UtEo^zlbF_r#1!4f&}*LoVH8$Yly=zc%Gw#!{_C&kucP-IX?f=Xnl>#napx<n`62 zar(bvv|V-d%7IfU59*`K4vJKVh*|GazZ9e)sNupWq4icID8s5qi=nDfck%S>D<X$x z%zOEXfwAVk_qr2J--6xtZ%h0kKkxD3+w!}<{199JZh!CY%i<drKYaI3PV2;!lEkUk zyV_i*hJLVnz2LIf$AHNN|85*lT+&;zmF-hn{#y5oYaAuA>!03V$+5%VH?uCtt>@pj z6B@rIyP79*H9Dr{#4v_NPh&cGJo0nWOUYfk>)Yf1f4zU?xO}a}Yo<N_9*NfdOaFiJ z>3#cS?(u&m>^~{TALjpeqW{6scKJs?KR@5GbEjwfk)0y;Tm|Akp8nfr)3?F()Z%WN zEWLi4Syl6nrTMD7F4(XtUn9p?MqIJ#qW-16)t-OS6+{k9GTXJ}jN0Fb5`oki(qXNB zAH4s`Cd9g5SlY1Qvi^_Tp>s5T<y88w-5a&lAyryHUPU+PTqpbI+Jl@Ek6DyIyvORx zcRX>4teQrm+4%{M#!l8e555$vTiHHuhe2Qa?DSLB?<9PqGXD0@5_}^p+3$94#(&;d z`Khc^c$U3cca=%f?hZTu*=Skj;~DvPc4yidZ4Nr0A1y1a+M}V|qd7x0|J2Q}nS#~k zi-P5>u8VewYF-y>dt{Z*H&JHGyVrUmZhol>lj@h8o-@hpso>ZCD7NgC9m^-}TmA8- zPpQ?MHDUAjonbw?lDpZSTindi^hR+?w$Axg>?=&YozG;&q?%mYB@%!B_cb4hmr~lx zgSgtNHg1*A{oBp{?6~!{D>bL2l_PIOxvzDNUlQ`ktY7W(q`lQvzOL_&N$1}6fBa-s z+exkEQl@L0*fM_2d9NJ1GGDy$MMltJJ-2_`)1>$R=-%ITe*X`q{Xe|-m;L-3{(*aX zeR97&_qmCGzv-plj`)4ADqVNJ&AUFwwpZ)I!*2I{skY#LW~wvaH`m4AHbw2;)d=<A zl$QGu?k@ybZ~fRR(|zWJr0{X&FDv|ut6ODQe&&BGW}eIHxRyETcY0mk$DYoE4By2* zZeP9go?k^#b#wXqdu@N5*Z%v_Yqb2?&JrgJOAY2n8V4r+s~7fbx>C3_g;&R9Mb_Uc z@lUqp35+(gU;n>ga^ay+%1&pCw|ujX8#R0uY5nPt#CWN%?JG}M@6X=kPfE%fJn_MQ z8xB0tlE^TOKdArw(Uso51A;6kl>ac~hR*#v$!g;x;g|m{484x>tbGw+r=uHnj$uZt zrp?k^X2tzy`zPcYe)*sC&1v`C+x_J_?k?vS$Z@;BQ}wtcX)4S7BHB!DeR~lk*9%6? z|7H1o|MslMf&49*N7sE_t6?uxv24+yKmS@xmx=hd*_WI@b!w~bg5@bfQ^Fo99w<F# zB)s99PqOKh>xPZ4ZvEfh<hv9rF^NBzb4oz;rk}D?x=Zs_pS6sE4xwI8JNX~J2|qR0 z<YUh1O;P^>N`gXE<_6BF<T!e#O7MnGruT-Yi4NgWAyOCLJv9-Zs%1Nq$zsD%#`Asg zNB@7g|10^&#`}L2|6Te2QvdPUm%=jht>X4p+jd`PH0`S>FMpPDHQ}|uMv<HeCxUZ@ zEZYp_mU9)zF<2#gJrvu2X8yG)`=%SkDS!AgXGdoKp6RW}j-0zDa_!f;!uK*W%^$Cj zWUk0x!;-|QqNBt)zwX=5*0%K@9wj}gf4aDP@zbOa`~Teg{@ng|`u+*6jGWWHmn2PP z+^m0F#4lk>(S2!!jUUTDIZSG?+52tv0t=xC;R&oa{2okaJG{@mWQkGEiiqu1X57(! z>{H4a_FerID`NXwCi|n!@#;B7O8f4!PCK=7TYAaG<!?Gqz0}=ncKqClw=LT|w?DOc zGDYn3=gry%mwvBX({NQtb5`s<(^c>1XHJN<+r8H|?%&-96~#WusfSNbpMQMksp{2& z6OI*x=szorj1ir8bmrlNn~(2U<{WpHs5gl!m)cl6v*f2xwldF~Q!bYr9GvfG+wZ&@ zrepQ3%zSP1`SZ^&Ut@Uu$9C?N@ZaT@XHzrep3QLD)^5BoDAw~gckH?6Y92ql{ZCI# zIeB0A>9-#RZ)*3>w_p9Kd~K;^@$~NMiQZ{f?~A&Yehj<lnH237x^7*X&*i{%Wv0*U z_C0vKzV54Y0rypneHG>9`y@<F#LPrX-@ISwtjzF(Pv>iHl}{CSg6((CV6_zeHJ18Y z1NP^vxuQ7nVPJTl=~sd6S0f*9EjsnVrqJjPUqW=+wEH`Q<31XnN}A5s`_7C#GR?a6 zVSa&ROSG}Z&&u2FzPzfx*w!8?_MHFYWbHj3zAYbhf4}3k<ywDeu~@O_jAsfSfu)QM z?^51nuTc8bzDRtQ)aFN@BmSp<IgurEd3wnLn@t@pv+eA4&sCgy(y=SvedFG}%~gwT zU7O~x`)t{ddB$3|&TYu~lc%L6RDCE|VS9PThT=Wv=kGmmdHMNg+m@QIzu)!lp~gd- zoE5h`YU4}}znFBCr}tc?%)^47AGP;#Ig)1vew(s(&5r&fr{2cebxYk_EEBu*^`Zw4 zHE&LSz2WqJv-r>Jn^WpOs1`=-IXs(ZM#+~on;qtD>zKwbW5`w3W@mqWmdxu6{#}LE z4t-X?#TYrnil^A+^<A;}tGF@U%J@`bQPaX)?V?MW+A|-#T;lcDB)l-GSNHY8f}bZ@ zb2HyaFG+uUNW5;I(Ia7-IR1B4B@8x4vfq7gFY%Gc31o0RR;I`jaIMw&!GyK~og&Fg za+%Ygo18iqGUGGr?k9%4>oYbf9TfS?q+02&vC*llg!_QEqxRn7`=#~mM_D?JCa&St z_`fahkB|P(>0ff}%JuH*Y!ErbS-s@+aqh{}G=5#R?$lh<7<Rco@z43UDI(`?GBhqX zjmoHIUX%O0L!8H<euvJ%z?J`AUS`hI>w2;K{kxA3C!c<QTp4r(;`aReuddEJA~cO@ zsex#AYVe2ljGkphy4>DH`zx8}txj?a*5FjTHOG~!X0Q9pyDLOqDBWFlZLI*$j`~1( z%~ZX6ngZ{oOq9I*m$sVe&)6f=)f<>~{Pp$q&-UlnJiaY{;1kdJdG>oR{C;^S_}`P0 zy>nc@RNO8LxLp>z@Sx<)V#%{z_bM$!I9x<^)ePjj{`xG4OfckHy6{plD^F~}Dlwn# zS4%fWt<DeT`d70pmvP4Vty_L4x>TQg`DE6%RFy@aECX|OHUCO$N?*Fck$zN7iskp$ z6J?UN8+&})eBT-`F$}7a;FDT%hwES0-p{N~@Acen-MyP>W;lnTT{oy_qQah@)`GZ} z!%7Tk78QK2{?ExQ+q8A_2Z@Y5#Sabd7J3I=-zJ(GUAfM*>Cl=k-NVUq<JL}I5NaWL ze5>$+s&gBKKd}9n-KXizth<>vtz>d_0BcmHorKoa`7=#yC(V1mjW;%_|B?ST%ZidI zsqzksk87~5eji_E_WjX@8Rl=J@>#D;cAp)*!iYVpT2r5C_cWGud(Z4K&4@oEp)Aen z)SjFr@mG(zL9NN$Zo`|$mM>o##VqZ%J^p$sE8EGA73<>M(uLbh5^U$PU7k3XZT*)Y zeeYNzvQm5Y<t7%a2(m6!W_?ogJZ@3&`Mg=o3F3EOvS>WE|9SRRp=_e%?^=(WuQi^# zo!P4X_xhSSdnG?rR&n*(v8f%IUU{r$cDL)rh0hj#*|}85!&&{Q`Ry}PrzLO96288F z{?)qFw2LRxYq<i7coJ%7UAVpbSlrj@S$?d^7X>vsXB+v}{F`T$*|+|o%&X<C^NaSS zKc0Cg@7}$Xn|FOT>D)VSmzQ{>>iqi`pCrX)tD2Yl=PjSJZ}$VS3oo)IeO2cNt#9n> z;qu+F=*bdJZs|$S`c5R-Zuxh02G{a$0pjl^BMiCp+8*~svv_bzome@4@9RZxra$Lo zubjlwZF#vdHuL*;RW*(O1$sAK7EX&OyZ1VMigSMRHu;=6%TG-55Lxzp>OU5)fXLU~ z;<|f3E1#-!F#k8vW<s>mkA0T!P8iJWdug`)RMf<py9XDui*C8O`%MjWYhA<j)R#4j z7UwS8VA=j=yTP@r`I-t7{0=tk712Dubo&kOihJQpeRdvUo%2k&>eS{bldf6Ht893u zS>hYH{o|Qg%-&ihOzFWkvL<&XtZ!&=-!?U_?lLb+f{gWsXH`o3eHaXGMPDilcJTcf zuCVCA%1~)exhdx|L~r(mw;0{N(9nMCfyK}A#>=(#55K<L{p0ih{{J%VhuMF8`MUnW zyDx0_t1FMO$5%F{pLe^s>v!ahbJBh>Q+CH4{`r1CyTam4$s)%%1HQ+;P4mB~|597z zoPgWe@|4NkJ&F4o%@?>Q8$Yv^u_zH^u?;*W$Xie$+beuLWRr46?&LRS_V;(x=NhRq zt$AL)K7Rkf)u-(xb&oc>GV&)p3G-`MaDSm>EcZw0i7P~^x3o+>V4FK7ZbyDhD5oWZ z-S_%Sj7gl6ye3}Xz41aUmmKSzHQ$AkGI!j*bnn*k)!he@lBO^Fay!N~`)!BjzL~%G z2HHGZk}ZGz&xAj_7GKIMWW8}aqUg{%<s-)~yWXgK^2<F-qey4k=QpA=6JM>l_1Tok zZ<qUgj+zv;t9O>mXe{@X-2JuOa`&{Y?qW_kkChDixjqQq?DX~H3(iV+IdZ77c>cLH zBH5N~>GAGcD!R{q+dIdq_IBH9{sx}gGSy4w9xHZi-uq|GjV|rdIXYL8GjzX-d@PiG z9&tFpYKz&Wg((^Z)|d1BGf%jh%&L*kaapXe{ndi5&4KwVBr;D;y1rgnRQd_;j9;sN z2CaI{c%AkCj(cg7cm6%Lt8nk-hh<{5oKw2ls$c4S6xwXGZApIW^C>>=FVF0?{w2}M zb}CcgwaznpIUe;8<B(it?ircgamQH>pIp!*w65^dwP5+OlTm+`ocjL4ujX4ayNIu^ z-g(RQSN^P$R<zRfROx-@J;nU@jGKO3Au9c@%xAu=vJ?GZm3{oeSwFF)%~NiBSM@t* zFVVO(C(WqubM1q|>2bxT{quJpuijLDdNTVF{d?~+`HssRG*SD!;<>_e$+L5N*7<)6 z{3tiGaLL~n>=(aRa0b}a|6@_U@a5OpzdEO~X1!k2*Xf_!?Z~oh&sqOoxjxay8Gj@L zPI#1^U%N7zU3Qbi!##e%{qKtPcIY<LTxMpE%kDc>|8MbSlk9Sz;|FDvc54)RdnKl_ zfB7e~LFB))m2BcyK_~XxXP7LGo@B3MzqW4H&3U$;8zipQR!-*%TYhflj+}GS_dP3T z7wgXRiIO;8e@5ZRoQE%hx5>`PvS2)CHEnud&$11Zrf+lY<4yl~bmqU+pmDFQ4?k8l zgu5xWKb$95JUx&xM5>^v>xY1#DA#-Y)^hfDLg&P)r8RG4&fq=}@ZnTIri0G@XLB!` zY|egoGW}8f5}(Zxp4X%rp58l@CZm4Bcmd;uXC@4-3HGm4=KC^FzWwchNBh&u_qfG( zWtbg2x^3&XJsAx84_D|d5s-iEu+-yI_V;y58oPKlt*lC8c(VJlcFp&z`j2nV|7&ya zPOTL;W1q;Co#7vgZg-2H-!!Yd`{2!AeBKM^+lmVCRad*)2RgcODH{ceDW%26oj(#H z$+2ds!EEIhzjPk2yCEscrC(Da#Ps5=>u1rkVpoM$h<7~M%Nm_==ZfjKc)6fMTYDr+ z)F(~-yg-BVTHA_OXIZ+w9I-y7a;sZJYW?@Pr`DT&pU>LWxXB<bylem7rTeueWl7GB z2r7&H^Xz@&4rhjp0$xVeryD;Rb?H4yuHB`}wYO&t+x^QKX(2B1-FZ)W0vT9d23)?e zeaTLBkCP>T%$6sa_ip}L^6$o^^vg3G411IW<x1u#fA?72vnAowb(V6QGVNfe>r*E# zF4u0K@+&=|rTg`v=$7UG>{84wEPMZ8>$IKr_orRF7BxB9<Gxz>a-OTZC;i){Upc$v z%`raRw_UHQ>tx)Pew=pf{?s!6pZ6;2A{X!Un-eK0ozHwZIa%(9Ot@z0WwoUO$Lc?+ zPAX5DBq(@jS@VXiTW|fi`|Cb?NXg~TwZ7Y<dX;u=KGvr<#bkk*dbIAc%3X&&i_Yvg zANl9fwQW<^t<TMy!a6lF==J`2Z~NwmKC0xsxjpCgvUk4h!ZRKwXco<indkQ9T<N7_ zZ%h7Mow2n%=Jwv4I<f5cS-U%#I8I(aH_NGTUgbg-yD5JT^zgmxj9GtJp(IVKKyUW) z1(sWr{+kN8-l=&w?~$(aXMgXyFp(MGCmxvgdQs5IiG6D`7UlCV$jLc&kMBgG>D&fi zrjIjXPF~I0`oc5L&nF|d{(sK*8GjXHtM6Y`4tTB|RJZWr!%wf-<$IKNx$mj`ES7(N z-^JYzo(36|*q$^jzWzWL)y_s&As$rC0{7SFkE7O?KXxoWFt{C}S;(@m}5w|W~< z9I1I)i%D*a^@2_5PGv{;)!RA$scp78+EDDEF87r`Aba-r!hbIg_%82QDx6xTJWsN% zJW-#asLxF;DqsfRof5ms+21Qgc|{}&^zuUPzrFM8_32+v!dfQ%f8%|r=Nv<77hl!W zX`=kr&puXFTz|aA=D_PDl|4PRFBAi2Y<p#sbXfansDhNo<C_6SN4zfbrXQO2fIl*} z;{1!+b`M`pgS`_M1W7V9Fm!&NIYH}}-^xRgj=Q+DF3&i^CB`~uQS7pSJQ0tQAPdLk zaZB#aVwml?p!MP$pQRzi*F-&R`j_pttP8)*;=vGnfz{Q>^_q(WlZ)2*SKP-feihC8 z|E_TV{-Y=N?^tns_sc}t`*-(RKfHT;_scmyK4|M7_<ZQ$HKC6>$L>t*d|qwAuIt*T zaBb2flO205-tn+AiDKgA(O1@Lvb_D`{i`ou9_g+=VaAd$v0`ylSk`SB{>H@FCbzrT zdA?rz8CgCdbeWUOU9D5OZ<@Z(__;$uH~OHG<0M_?nA@uaO^==~)Ou79e`hPhdXute z+u03#jXEA%E_1u#`HQ7UD?#GC$@IW&cV$9<Ex9N!uth83#-hO769<(!E-cH~-5q~Q zaq8O0QpwZ5mM1GWPM%nPc<;88jlr%e**=kux0GBjXS5h}&3s_fV6pgP&j;p`PabWt zb=Cj=u+H1R<LJjU;TsR%R9Izu@l3kEDk9$E$BP4<8x8+P9D6S#DXTUu;<TxA@tv?p zuYh>|M*?T1dJo*pnWy?T=j4WW-P5idkovm%zSiSa=kJGoQcYcHs=g%KcKfLppSv$k zls-HC+h%Daqw9Ai_I>c@YF-w8LYp<RE&0o{XASA+^FKWL8T{3}=iepnz&mTsiqG0J zCtSizK-A*ggVQTi4{}tcZK`kyiA}I85xKwi%MF&pU47<N<<DblO7iNLzsX|jI;r5} zT=RL#(v^o_c5GbxBzbb8Qk}o<{pvFAmvgG`&RtWS@%J46%uwU~&n;}Pe~on2Q-6Ou z(x@foXccEsjz@u9@H~0JU-SJqv+Xypx0;)zz1MvG9j8O4EF$}b+;41*`gBI;^jEcM z%)Eb;t0o@s^n4`!EwpHtb%uG7&<@?zbKI}(sJE%k*ra>^ak|b{d6mze`R8I!TfK;k zy={1{@#&3czj~|$+Ptp2?Xy=p&VIt->WqNgxOMz?HDbGO`YrEfe!#anPoq7pXWb?N z4do;kXSX{`WAcA+{<d0oW%|NjMf$bX?WSC6n_N?)?=)9!SW;o>s~x>EMY-s$=a%fZ zPj+q3N=y+8ndW+R!vyA}x`NBkTE5RyxqRAD@?1-#GwZ~Yk6&I$F?5>F<Mnc1VEx47 zpKYTrlnck%F6Q!@+`qXZ@zMVi5fc1qciD5f`C?NtZfZY%uPc*(FO_NI#XG<2XMEul zG}-(%?$O7pg6ogP8rmyn?w!M35Vj~Sg|+x2e}3uG)@2><cC378+ok#LY#+aI?Ohw$ zhS^<T8t3me*?%QO)8+hIhCSk6i?q)FnZKy@_q`UgV8zY)ZVh)h59|wwXpAub&7%2l z<&E~F4cq)nGj)Dn5P2`P(kpeHlFm)DO>e(UX`64_|Lpb*w_67-9{kns-*}Asl7Ph8 zfI?&A1god#wH91|^1{bk_V+CI3$-5~Y3}>+$d~VU)W@|`uJ>$65NG(Zt$p`{=*1JC z@rG7T+p}on^*KkXnN?1nn2<WXYx6%Q#*kcV&4#3;D?wSYrp5EO7?*~A7R~J0v8ZbG z)J|1bzPqpcpY6CM-Cl7iLBC3*_)NI*Q>#t+Rts{TKdyS)8(YEX*{pguxTj5WZF$r2 zJezk+RkyM;_Qw8`lQjIcRC9rb=fp41?R@+fA33T&XZO_A)k_YnzdYr6d8E&zO$w~X z4zc$X=toNZ)ml`2yMFIxj^`eCT~A8(`F|BH$g5@I*p_l&k>s2(KZUi^pLDDHZ>zLA zzT&juKfC$oi@DGJWqs54=KbZJp`Xk@tqR}nHv8Bu<`SjEyz0PCHGPGrk=hHcCEtnH z)^z+aXTFBm&eNPZC+D-B&h?yVC-c0+T<u)sf<Mo#y7z9ZJvz-@=SSeNr6rBi?Tnc6 zj{n~584%%mD(f`6ltk%Sp~`g2>r$r24y%5#kTE{~`0SdAMHVujXKJi7TQsqHrQVc% z*2ycm8^RP;pJcO=y7T7M?sMOLZa=RpIbVAI@9VAavVI4h`>G>j{Om2;-W3{AZEiPM zfBH=3Jm|mNM_lh`j^(_l|0kbbySM)F*P`4lwud)6)qbyC!n|_Px108s7XuzI^Km`9 z%k!c|$O-+ULa}R3m_6#RWLTFXyn4y;6E9e-8(yuuoLSoUZ0753p7%{Q*CH$!yw7Fb zjGUj(X7}S*aNk-kp7z2z2Hx09D=VZD5-mTO`kQakTb-tVzPGO@#r#+Ktc{y$xS5ae zr)@ma$vkn@ykyht_r)Qxeau>a_0?Z`ZNH}D&Obk1Cb#|Y<Zhik$DhyNA2k1(Vd+mJ zyZ%+5F8t^Vyx`wDWATNwGaC0L+)7?t6`nEC>1W51_1$fAzfDzrV6=;ye~RCOZPOE% z+<$6YD^vZeKx?=2abxfQPs*q4%(@=1oS}d*;-W)Q*SUq&N6Jj*op_+CJlQY$T<V69 zq$O_Gt;}}*o2Q#2FjwO=&(^BPyRAdMomWe@ntQ|eYyGKt6P7OA-`Dw;ao#M^tz`zO zbN@`3{O0yz<_C;%{d^7V6>r5EH=R9uNbRU>gBI(oFtNoy_gOG%ExItZjKhR2wB*VB zYPrs>ONHw~XD!Y<a7|?56Yf1zHa*d1%)M->e5#i5?B^Ax`Wu9LSvsU<axR~|_*>|* z>49DfT-;~hGS4(x=W%Px$!#I;!V;v;ZcLD#R$}?S<M@J%?#RnKzwBYsX;WEo!yx&x zn{Q?4=g*T%8dmHGk$P4dRv~=u%)1l!?f<_K-S_EYxYDJsZ^Yi;yL<jo>Ev_4;qEQ1 zk0&sBM1>sGpWYaju<D14?ec}b0SPHvOE#p0Xmz=kU5z@hREF8oPwI)unJ>3YOx9@T zebo9r@ymxV4XbAre3?C?K~k+G=*qtTPt42GznUyO;cAr{qqz6poa2cRvY*te7D}rt ztXZ+CC%*lf?jBcxH4I@qPp-K01crW3O<a5Q<zpt>kLwovtT=tv@K}x2TPBI?H#$WZ zhUy=X=zPKEv%EL?Y3aJH7EGDNTeh~V^-S76r<&99I!oX|=8b*PuXdZNUr*7$T$i^^ zT4!qQ_n73||7#a*3%gj79r)tsyeH;X3HyFLlH0!BtoQWn?u|QT`F6<u{}Yz|?A=|- z^>KSOt2{C$Fh?KrcxQcoR`67Xk8_TS?OcB8i^+7C_=JPuQLpC&Tsgn0cEk3s^7G~O z&g_mowk2Lh>bdbj)zyxd18!vB<qlZXqaq@IqB4>7R^$S2SAWyXyDRiE?v+HI5___D z;@fF`oh+M@*B6SsPBAgDHcj~a_pYkY%gc_!F*AP!*2D;I+NELpO^?B3Ptm2TQ4j9@ zs;HIVGMUo+|J><c`V8}48$F-3ympF@(U-MCRpMVYmAKycNZ$8<l%AHeu<*{4#%<?b zDhS?R`Qq`tiWf<%?jD)8^7GPKd-ukzhj?#mZGQG^=h^BL?@Lk)U+ukm>+KBI)y%;c zZ}oi3UUzAyOETZ8Y3IKlHhv%Yt9G%l!VjHq&y0C*Ui}+qe|!>~sN&NmZ{G!#H?HP& z2yH9Wn`yp&O>2YJ5{caVPa^zH&z~!I`C73}-1f%NrJ64$%`>_1ebM}qx16Wvy;<iJ zz-qQLYGz`<-xIfNP8&9^4A%c&`|ZuilAd3!?smWblxj~pb(yy;@Z5#cW3|Pv`bt0R z9lg2Zb<4g-Ro7%P<-bUNuDzeZ^pU+F^mXGG*YZ?rDM7{K&tv4j=iW`@cGH=({BuIG zY^F%tC$n{P!f(HhEy+j~OZq6f%%(4Msj{Yw8IRvwznPH}BWt6t`Eymt1ejWH+T}Gl zdgIr&zbB>4y%~Merpp|iZ}QG^+JxM73vN$I|E;O%H8aCuUdI9D&C6qE?z$t`*n7jQ zvarG4ib3uHczwq8)W}+))0QlMV)C3XK8q`0x>)&Ea^nWIJ#!A}wd5?BvZ!yi(;fN! z`NjUzWjJ2$bY}YH`@HjZsQzq?IFZ^}Z1)!L5%4JDG^%^X8)E1reyE6J*Wr(xd3@*f z7kp*<@@>2L&hq;VvHcn$+as2^cjeajFuo5vp#ReA@cyq1vAqHcTss6(o<Fym#@%8b z65zl-o%LGTj<>x%v4*-VbCWB+9@Vb-@UZyK9lMziDnjnnety<s{(O6I<E&>>PtAYE zQk^`D`{0gCS2lcW6*k@BE!leL#&o%JVWN>mTb!6)EKm)yJf9m8COcu`<%wQ(_L5=_ z#%e$0!t1+*b=bE&wb8zG>d~Z2|HIi*wq4G7?Xh+@!|}p%e=@$?@UH%BaPz|AZCY*D ze_q%ABr88vc;&ScV+EZCo?g*!cdgbYXm@`pKl8lrLEPn!KW`Wrt$Sbl{xbKn4NN;{ z&3@#nv*)(<-`zdCt)g^(#ZK8S89OJJcX8^q7>^Ba*B;);Q`}|l>$avPOf{~Chf#n_ z*-dta<CFmP+iPC%dwfs(v$|{3^fNI>CAll!ia#i=H`FS>nC>!%e|qJ<oqOlH3&`=a zhbV5h<98J9Yjz91-yi$>&7CJPOlGG~2+ggS^Hc0<>XFUT6>2-3m{+FTsr2e4SATj^ z!T904UeROTxc&Q9f6Wm+I?rs?R*~|}+w3xQ@@IB7l>Ti#rqNq#5@&V&JIjL05hqS8 zFt4;ZUa6<MT;v^Nk@=i=_hWnh+IB6T$D{SYBfa%UN%;N+``3Q#To`^i{>N116KB@W zI#iNVb?(@-K>PUTmn4qn1s*g~St;%-dRd(LSb50C^OGJw)HqS+`>j_g)^WD9OJhh{ zxrut*ymt!>qmpHIe7VmqZ!>?_zu))&^MrO7_ZBQqHc!1dB{on;pXavm-z~n!OVq6w z`IlYdiI#GGvU#ngrOxkFYt%1HwEyu`rD{dx*@yR@JXz?fzSA$5?OfUB`y4w{uPL3F zlYfD8(x#c4Q>Hkp7gYD_E<axp-dH5z`dcUDcu&(uN$x+gMOk}ZhPqv}3|-kj`PkhO zwx7(o`=0+u+I{#)T;-D2i@15d@_B`|%NVWMW#1(5xG!*V#{I=7;sV~VNNzl7ywHBd z^p`8nZCt+imWV+|kBQsFt$xn~K7Co8<LH;g-5e63;~qLIvGmu}bx*#vl?Z)mVUc{< zz_RA!kMnoR-%okJ^Jqu(4v*g+&s$Qsx8Hnl;o1YwVqHn=W>HV?bTj$qC0hc&w;fu1 z`01S3uTkGu{g5v)Or7!eq<8Z=8&<6@tvt=+O3i1q5;;~DPvvzvTI?`aYRc-abCs)2 zMgB-z-P-mUQD@(L`0Q!O9iMKgc{yoMc=ThW&S|EFeht@Luvw7lqL<2sHUD;P?>HY2 z@i^mvZ`T>|1BaE=6|eblmHg|t*Cw#wjL(O&k5@UFRmf~@RZ}otTk2-Gts|#G%Heb0 z>F4c-b@zRGbo}G}zbpUS)jgd5U#jk-`2TZHU!PxY+|bl&tC?)-D8YO5=60LMrHh?5 zv)$U*VD#lt^1SN8vjM-EgMTt>&Ds90JTLd)>`C6cQlsXTE^tib6i?{fd-dY^-@iZm z{I|b9|HGG?lT#)sZtxG%k=+n3RewhFc1!8z1snpdYPQdvbC|81XUt(Q(TRL8kw4_l z=E@a??^@QG>Aatoq$rTKtZ}+h-j{`kl3C*_M8g(0K8^U8%kx#BI?(cQ+M~h=ahsLi zoAv&Gtoo|p@!_8(&A(5Vmp>1e2yHmO;?&8*k#15)cgOZIFqUg8tg*eYlTYWjK#jLU z)}y=gu5~Q65M%7+<~UMotNP)>4}l8(UHTg)yK5J&PtCJ@k$22$+xc$Siw)0f{O3$q zz{7WOzFY9WUM-U)TP-~2ufDqX$5O_qbF(|;*gsDHVam(M^l{bp34fQ(xl^@kiFpEV z?KzI~Ka+C!PJDZJSNlSwRL(I;0oBBvwkmcvuC70EN%N=3V~Z94xVRIIl8<YaKl}e; zN@o7-T3fXlXZ~pjAN{Ox!`9xtA!C2%&l2~!aSd~RYaBB*o;qV&_Eg3I&CkmYhHc}k zJlS0~`TVONE2@+#E<Dk=8Q2%U?&s^;od;%b|6cL?o8ICV)mA=})MEA*`|)w!_`Swt z;pM&aCIw!L3%&1NcHVQrZms2)J!?-0GoDgxTC!GVokn`p+PfVB?$tHr(YdppFWLRf zu3tFS?B<;Jf?K6`eOOodVeQGp1$%y0ubru<@Z9Etfkn%lGs!=eT%93n!n<(t3-Ony zc314@iQe*W{(&`9R@^Vn$-VN@@m`<hmpA6TZ!7OVi#$<$=C-Yu;9Jw{CQd0m%aU`u z*72TR$#eSRjOy3L;hA^lEs%C}6#E?hY1gq@v9oIOe6kC3+9bSBF4%mnq@%6aQe=^6 z$gckt_xBzX+w9(cMwEBkgYK>g&&4JQdYWGjGhcQ*`kTIAanXiF|Bm=>zWL+#-QC80 z$D=DQzZEs;4EcYmV8I8?pKpK0_T;*Y9Fk?6d;7=jnB?B88<zK2KCMYHQ2ZEiGCKc~ zlBT-5>|B2H3x)Nclcv_?H9y#_C&zI!DDaa8U$xVl_42+KAJ{%mHd$V@*Ym#BwZ;Fw z?VQWm-DA-j<DH%;^S*k@J`=+<tB|RdDG7T!eE%-t%jM8}ZW!R2biw3}^Rg#qvkzXb zJk<T<gp8Y*n*Tf=JI|Z$b5`n#wwAAqp6yb#NA3coLVs9O@iJO0FtBR2u9H^KH{m~T zo?e{l__FWQj3CQEji-xz9Cj`I#%&qAGyU?+S+m;mU)Xyu^;)c~@7;Q}C4+Ikz`q`~ zi2IW{xMrtKJH5c}L3aG_xj$CU|7G~+0e>y){y(SxD;$^E8R5vM?GxT1Juk@kse+cR zMbt7sb&l>u-PXo;SRZ_2Nq8t0ditq~ncabn!46V3Q%~D?_54+HC{5V7?Xrf`;dQTm zFSu8`<f7rzOE#BtFINb4T$ocB^orG{*p??p_&~SatYho!PV8(*3kY6Vo<1Q}%&DpV zHtURRo(n8LH}Tsz##uA(G1YGF_`Xv_j+-g)ZE#{`qVw6(28G6)<xSg7q_kuU{JsY4 z6)*Vvaq{}d<+i_Te>}Nre>7d(;cK4#%DFRE#ePu_aDQwti)rtVnMxNe**=}|=r$3Z z`TE&b{Vk97yqfc2A6uwB1LwVrFAQ5%AOG!{dM@2@wvYIeMMCou;<a8mwG}c+zU!2` zAs)Kq%6Fr@T*>Qd4B-z}hv%)|Dsk)sn_Rw?=9;hhuIuACPEWdT7IRW&ouizm<bjn> zocLOct}M#>Z`r-fGfGwB>YgUHKVe@^y^%P*^Y4el;^OXy%x+87N*~?ArvLVN$07cx zxx!OIOD6C2Uaoo0*YB3-TdhTLr6F3g*1eH-zSTbSq2bMbS2gV=(tmDzZQ62SN@?=$ zBL)}vZomDL=Q3p(^Y<SrL9zP$dux8~`Z~E`<E8~pHF*)0JDU^T@)aFcPL}1F^?8zK zc%Pn~PvvD9;g5H>)ugRW>s{Kjr0>ziRg?Y}+vxOYl)o2cm;Pn8_|lo0eOcZGx}p{L zKC8@_(tcS%&vtU<$+x|S19s(C|3Chr&sQMd^xe&+zb|>OSYcghDHdq;Ltx@rE55Bp zCJ|FE7ysY+j$Qfh%Pm58Z)8ht*}01A$P2#ZhR<?ieQqAg*;D1VmHpV}>b=Sx@)xT* zraL{_EXVbK-s^;V^GwUzyFZjk)UT}9HJ-TU>qLvp<%PFoWS(eV{1a1j{e{IX7w(AL zukCy98Ec(x*Q?Y#IqUY#7q+KbFI1GU`RN?5^qA*UH{;xk<Z}*k?Hs!nIo0d2tu1MG zc6ab|Kb3pwbDh<t!<-)J?w_`2T-x^bj9KQC`Kps^A~#>Tc<BoVyS1@%6NBRAZ8!8( z*KAyTfHz>P|GA^qE4`Q1%(YVHDsX1hUv}X04v!>(S2tg;QC_{Te9iOPTGO~YhZ4;S z?_J^jzVqIuvuf9q{=VO7cE#o2nFAe0PR#lNXKv24>A#|UqLlMu#ABy5rkDMF+z)WP zko@YDwjp!(kvY4i&qm6{|KOBc&t48%vGwSy$d0Z2`sW^>eq_1#@XJ49HdXAJ8<H8B zPFEh8GF9{Zw-BMJNm5MKLI3`89TCe}m^II#jC;ejvx|$AM6*O#IAz|<^gVETU0wgQ zckk~%EL*nz_f$vmTIqWMyOmEcNk~flcxPVsSo~xCPyhG_=KFu%<<_VZcM3SAH#K^3 zqv>MN4{Wpcs;Dr^F5dTc=aE-M4Iix2tEPXv>MNPG;@Yvi%@e%N>ts(WsL?ol^!EGR zb?aX+rEXqsWvCe_ah&s`TR7{7t}<<=N7oKy|Jm!-JK@wWrS)$nn>xrwDjzj;yjHw% z<>dX_o*8&C-R|=`zCGZEQB2X9ms2>ZjHOlMQdmw(Won;ze3#)<>mD^LW%X(o!#>V6 z$EKTK{I_(iw9R4pKPT@u=l{F2{*kfMs+`r*@+JZkv^Mh0)jeLZ-ZJWvoI3Xu!|<c# zm7yWJx3c+~mllNZMf-J}$_rR!dO10LbDPnOD3`!LTf*xPgkJfkSMDaraH`b9eUap} zFR!+l6lK1Oz4m|37F+%GEB8Knyq@jVCt2f7_rLiTb9--@`Fj3?iJz1m`&3t~dgQ5T zY_WG^!GYrQnKBEO&k~+;=_ZrTf-|4&*VNee?0mc7=(kmcu_=pnvh`2=-uu4x;t$*B zXR2JEpHT^#pZ)fX(peLYmrEw|a9FOf(w>%`ds_Kk5Z}>ROKp-)<*(i0*xtYI*Ta&u zf+FqHM_o=&ntGREm5!wO+6sfJrNQzpuFD?Jdgpq(i8(~1z-`vdV|l&rRX?xVfA!z= zzrAMaYfrp+a4@PX;9Ap88R^i&O2_Z?Ub=bGWL8xD3`U{9dg*m19u?Fm_D-IA(`;I8 zh*yalNAYhbSD(Gt9+$91%)Y($m{mrV+q(a6uKrQIyk~kwx$dhMzj+tb9w}LrW4Zne z-wiK0leqHiJe`vpJ2bp=qaM4<&fT&7`)2ni_n(z)G0_uEeKzM^#GGB;zU@m?jhruL z=XJ61NxrT=HSeeE`q0A<jih9gyGwoA%OxMb|7e#wAvkQCQ`wTon|jw37g=&G`M>r{ zz@5rD6-ArZSj~^_)cDJIj@4xQ$M3dU!r3NO%;|zo_q)rAcXfJa*=Y&4h|7Ll{MP!4 zQg)x^*M-&(+Y-<9Y<KLNonw7ZQ2B+0>5DyUiW6t#RDb$(JI1PAM*RJrcHIiq>zi61 z?oF|sbYGnP;4Ddz_ixXAT;s_)dCi(zLYmjBCfc36R%%lc$@WC*HtRgUsK{#*9!;Cs zC9LBAwQ@G=D#o<gMbhk{)AbqG%8Kr?$gFFNsrvTk+tb_IEB46UfYipfr{Dka<oo~a z|6>0<+5f@xPw)Rn>yzq#-~L=v;ikXb;_jy%itm$dJ)al<XwBJcuU<@RyI1M|Sa+&> zwG`{o6*l@x>AQC_T#K&x@aT2L?{~&`?$&ZinJO+@Bl6Q|65k4~A~A=|KcxYMlMiL= z=Gp!C4_m%o^8cCjpZ=~~@a=PK(+gY2?9(+1(k&ZHev9_ZnOwFy@a(^(S&D1duxMn) zm^n?kv~fyP>is$5i$hEb@~kxup8px>zhcj9W3@d`Gu*NzC#tOeZal$OR(8*Ot*H2a zf4rWXnm4L2WnMbSRmmFhsdZ*pLjo(Cq-pWRHHGbSG<ZL3{JkNxGjio**X>I;?yvS& zWs8u|c5s^=wQuh4hfkkAERUVZHba8p_vOp^5AFXSuNQoOZhoRlleKdHz2GN%ByIQZ z7i%pD(O7A{@<&_~(_}_RFP8Ij*FW3q(305L;rMpR(OHfHg3epkGSA_=z4qe%?dcPZ zxUB>>{CQHN5#`<<xB7?Ng7r_Db}W|MxrBADrr^bmix{7F-!!^p@PsqO=bV-4F4Ys? zW4*JtZGB#~=~l4Uhefkgd+S;ArmwK?eOqMlwP)JJZ}0AO$7i43)c?4Ce%-GurWJ=D z8ocJ>iL`ULS?H}?tKA+`e#Z3}=ksmex0#dpcdTCU;O$$%^YiVU=dPCfzIlT9Z=*ix z+TY*iT>O2TyUsTD%i+JNJmtorA#Km!9JqHcbJnDpCpWk+sq=YyB4q|^w7c5jndcs{ zOuyzYtFU(aYD@DkyA(t_bFvRy(=qzQxNVvy<15Kia#D<UH>QOrcX@>Q*<>uZ&ht5J zU3yyolsoh0pVgC_v_0F~_k)Ktw?F@lZP)BQ<htEc?-cqLt(`Ji_wFLs%R8^U5IHN} zzv9igf91?NnU>d2sM&G<JFWG8oB7-uN>`UGy3{{=Lt0w%&a{hL?{>USfA1}Qvv9+N z)m^{4D%5U$zEpVd{n^xN_LX_BbG}tDb@Sf7G*90sp0)Y$*%c-4=dqpFs67#H6=>T2 z+jf<K!d!97ZFkyA=T2Sp?|Wg^`HEK^Va3O1DkjOKygT^)#;0)2Cz|eG`T7#$D^^vg z_Wqx@s{g{`_jhl<Sod|^$GZ=HrOYWfRW!e5?c1!<)8!XDQrADed;5e#hH1N1-ivb+ zUMcgw{^ynUtI*mfH?(VduJ8JU+PKe5THD`vFFxE_&v$%B=E_>r|H6{Gi;sD3%(VC; zym!0dhega2{k%TiD}0!GJ#68loqR8oYC;VroC~u$pL0&!;mwnhk}Q^+Y}vdL+viEd z?fdg&BijMyJ#w-P{9k^B|Nrp5_NV^;#`QIS`0Kv4e|)xmpX7r>n%j)dvavhL?wNk= z^{UdPP6|68oy|I}p#8_&J%aJ>&&p*=eT(DkKDgJ*-2Zbn{>aOJzh_>Me}8+fXpO9i zlj{GP5EEbi-RWL`!&n!8)8uh4J19HFYqnRu{M(+ctJZVnS9<I$_dFKt`c}mA1fRx@ z1^<>PNgP;VAoHT}tfRT$Z5}4B(<~lW&N3hPuC?Z4UA|no@Pn22)Oy8j-G5#5?z<*` z@5Gn07J`aBpR$(t><{?E*(+XpQITae(`V+l^>KDCZub>>Pn9jMj<uYWp0t1U^22SB zYF2rj&5JKy>W-1jRw=pgc#rL_gSFc;zN_rtI`8>rlVgt_a;WfqUdF@Nm-Qw2#|1xe z<`-XI8t>V9UcJ}vw`@h8-lV)5+sZ{5ld~OG78-7U7F%dO>*gw_uV0Pq^yht0QLR*x zbzS%*++t~yPsW-)ucKS8$$zs83uEH_r1#rh&M<#3x0Lq8>ykfJ@8@1!+;c_y*4Fp0 zYqWo@2{+%RmN0j{Oy=o3{Ly>l%Vw^ee=*=4?|r2%nLS}!IkL=Z7P@}8RjRT^sU>uQ z-u3@WIKMxNp3Kbq<9Xf1!vB>ig?G)_=ZUQ`Pro)T=h0aUqbqTl3%)Jr+ugT0|M$F` zmdUlLUUuJ~`~BSi{Khi@z8#iz9rOR(s+T?=C-bqt{^k1z@4nnUBV>Jew(-*7q#Cn1 zlBGKt9{V((<ETA(s90*(99Ors-Jf+=d+8s)c<G?o>(Cy@)UIvQf<Mg-y|U{oo5`|M zD;5Xd=uL1x*<`b5ed?@`gLdDxS{_PC2{gN5^3Pl6OUC@??U5cuR;r8ZSD)KC>3_9L zdNbR{y2}<e@6%ruaqU!_?KREFTH#yi`4zizSN_+LIkkK1){F#~$;+j_^f2zf_4>_C z`D_!VGfVik*TkDtvAy28L3ig(oqpNq7kO3lw~1U@`K~+4GwN;by(YdhU6YczHM1+4 z8e`q({j}wMW$-QbHm8xP{eiHYm1j(Y_uSv+8z}yeFL8_Hilvsva|^FG6!^ABnTyIK z9r-Q5_d+CP=||mCq33-@>63$xZ+&_|rFh|%cNOjy3_h<VR!Vc<Uhrhofn$Af%E?mK zwf;P}{616D<EHKXy{Uia&6zxLV%Cz-D>|J%``1K2nDe@*U}~a|x*BhN{EHJ-ksfaz z-ICihJ=yGI;B{YteUY<%U)m}4J#VL4+vO7Dys62$g0qiioaT(WS>AT((bszguLR0J z&v<tt;6>kTv96C7q7Uvj_sq*<e(|Yd&FbGXO^-<Fw7$=Mm2gtke!JoPH1|)j{m1?@ z?}cP&@A{Yjzkb^PXSaOapO@S19VNeSTe89L=}y@%e|MbvA(f>ub<-42$?1PmVzf+B zRQEVL_RPOM#rgT~?LW@O|7+iI|9;$_$?A+{QYzNL&)#@xGDb2?u*wzIShCGdu0Nq9 zrrLMug>x&ueB8U}g6xZn8Ye?m@4L?*;u-8$wa@Ndu3;oYo2kJBh2Hm32P96tIJ!;h z_u8WsI=@pgw%ip<p4ysdvHssYwwD(S7RRrgvi9xl&?|M8YHg=(Pg}NR#nL(1dX-aO z&f&M(EYYN9WU%*JfmZF=3KMCs<KHd|Usycn_?+mLLto`Y8QypYNl*OVw$bx(b#G7e zU+@0wX9R9GYL%S)JniyI7N(V#O{$j(z6sg+{6X?+%jj2;CpN5^dFjAfhak<w$wIyR zx4TVbIdax9(Q-e_^=ltxy5@Z>6pPB9(xLg<Fo*dyhl}+-i`pw`*4Y-n5?sZ1&x&jG zIwcvMadz)A)yaDf*jwLx67tnqh_mb5xu5B-A9mFD`L21lHD^w=&N<cisuXKR_4FvE zW9MfzPg=c$$?D~r%U1cdvbk2*<CkV#nz5a4#$>szrpp^^vza{RYTsLN@?`C;>E*qT zKgR9b!~Fez-{LRxY^%GjufPBB>}=}|AFfy2FRZTm`Caj!`~S)IP5k>dJv9IK`2Ml- zeG;?d-fdm>*mSFVWLsmJ-R2gxzed8R#LH89I)7hXxu3^1+2B%Wu~5#zFp1K0+tw`M zP_6wFc2m*h+swZFNrAS~2R3rqO}62jRb2n?-icg|<vt&7$-GaC<X`%vB{xwg=-tUc zgWV;5>I|FRwoSR;qa=K%eNM>K4-*+@xC>9a!>2y|OYmp0P4m64%{Q`+n6vh3;=;t+ zb2nVO=C^LIhK<<NQ;RF~4)jckt@_!cb?SCWi_%n2^|kfOp1pq&dT;Y)P5n)KWBS!3 zz0>s%Fde(=aCKh2?cw?>#@DXx_pbL_Jg05*Hl7LhkIlKGbgsxhs`BcKj_%KryHc#o zzx9+Xzbx$ecfr}KJJweQ6?NtFC`TSu)%^dWW5d^*6YOKQKb~>wx5=u^3B|r|P0iyz zwHY<otXcI<<4<tH;oG}%jq3iCf4Fid+yC!$sXMo8j92@+J_~x@ys0ApR|9|lKDmW! z%ib;8xJ{w!*zup`XKos1hWjbVW>?uMaoHOMY`yxYv~tfD*-`<Wxh|R-i_Ewp3hiGW zw$eA|etP3YsE}UW-CGutYy17TU1?m<pO=^4GOxGvL=?B^83P;deU=OTYHmJ1sl8b? zl`qFQL%gW2J6Cz$>&(@Y&7a8%7oXh@nyq>PYECb>{(OD?%cslZ6T}wH)SMP%r5QD~ z?8cre9Y<w;e>3i4i#`z8sJ*~F;M-p5jjClCCH=;$&u<pEyHiBvg--^PZLf>T-R<ww zb<+A{mnUpe%536vyTSW(shC9*gZ+0;!8y%;w~8HHP@HVDyOQ%ZuZ<x4H4%eJVbM|v zTAz$}=Z1=GU}S$1Ec>mL+c)xkF58M5A)VVBvzd<8@dy>=?Ts^CUAy?m?ldc|T~7ja z9ll-;bU5_M^Wx(3dzbF>V5)4ameRPIr!`SB)z;fEdw(ADgq&^$ooDNwosed8XPWYT zuA;{7j)XaaNxq>+6_jo(=kXo5DA)2`(m6F{#<%S6D;DWzr@4zZD4TznYr3p5HE_+# zA4b`$H+<c6fBtt-1|4;V?nXATHMJ*w0@v<6%(_MD<c4KaFHNvrpk-3MoQ-3fr><0% zjqu;SKQ}VD&63~B!MLeTH0903M^h9_&ZJy@yW&aA+DjLv&3Un4<$H5K%Zb~cch44l ze(%}F^%oZu>t7N(tP>g7t@+NE+u;6L(_06MKON}VmSz^Le?+RUIYv7y+OXu0qVl5% z<<q4sk;Pwby_&P-N$kspKY!l5|4{z#m;S?VCk5BP-*377fWrM~aoOVC&s;wzb6(he z@p{)@uP<l9pIcq#luO_6;mMg-8%%}Pcxpeq_3KJ(-O=l+mYcZ#su*8Ct>`M=8^pl7 zVD|O&TWkhXPcZ82(R`l1tk!*(74NfUuM<`-I^DS7>-;}!m7i>3o6-1yBl6_F%M(Rr znz;TidUbZ^{Y#8@SXbTiRk!t5W_WQ#u5E_t-Z$OBH;Q{*>UFt4{j}P+Qu&a=9TC@i zvzxom&124pIhViZ&g8!yj~9LYk-zMW_S&1S(rL4%UhI$Hk2G)IWYf8@G@$iQjL{bB z@0xzEzAV_Mr~Uij4tJaDF%}0j53l{G?|Wx$h1}Br6K!VSb(#C<K}1UV<HaIe-TOjX zYffEE*-<p3eRI0MZS9P!?_LU&t+nYpo_XdO_g+hl5bcg7o_%k$gM+gEEehp5T_rW; zpc=p4=G_(Q7uaSSPVPCUfB)k>HTx~|SS6y?%WT-ZLuU@d_MeqvvzKhX{qFXuZ&i15 z<{z`Yf0$=;@vE7ijrtCMoRGZF@hX!i`^Nsq8TVCKzdu@e@xip?s$KVY#3os&`@Nj7 z@sMVmWTrvZcH>*?wjPmxe=0Jq*JP3S=4m-nf0zC8?0qwDMsU*nqe5?mZQ}Spfi@If zcwO@S-BUZ^x3i1RXvnrsn6RcN)xpWn;mpPUZId*<b-nkS>ah5@Q{%f;67!d`%&eTi zu%XLaw1$5|?u)=hh3Eg?{ma6$`OwOsd!Op=AC{K7#;f&IETC%sle9)d(H{r7wm&Pb zt~6M!k<gTQ>GC8tp%&I<=8`-aOts?kltjH2GIKjTeSfV-#LB{LOZsA`t=Dd-9q?$( z^0uz_URSW!`=<2QlBJEoE2Y95?=IpLz4~!!uSEUc<F{-}Kc4nkD`)@RN7L2(AG5>J z8CAE+O0_OM6&A2?cziO#cE{z~og5jf^A}#Ypr*;t?=X3{jNh#0)K^>zZ+Ka>qZdrv z$fH;*u=lO()tZnkAFFh7T{ZUJ|EM}W`>X$fz8<m2rrulq?-YKx<xAgL&v}w3dr$AT zl0qhX;r4^k_Fi%y?@bb2_tAKB`;XPvT%s+c%HOqVHXl5<>8UFB#m&OEY%U~x*4`EQ zb?)!3+4I+ZblJ9J!-|s;T8BHY-|Lw$>7>u!@=J$TNn5Sk8YtF%dHJT6CV8_O$@?yw z*Xb&pS@be8Byr8rGNy@)0b4(96n*&i?)Hz{>z}PpV%T>1Us+m7Z2S|^h~l0@3p%po z#3j8KDqWn$aOwBIOE+WF9x#*?WXByaJ<IpG*rC<<GoNwTif8{4(#}s=TvW8+?y?*X z_mfW+?rhm4F?;%-ryIkJy^~hI={GtuN%HTCeWx2&TdHQ9o0m1eKH7c5wyvUk4|~hk ztHkHY8@Oq0KB1_*)9{&*S<=e6v-KqH`%L>kn3?t67GKQwX6?r#Q?}VEZQf9^R{hTw zoe3r$*(yB;-mh%ukC>@@{gT@m;m?7;>~A=IwK-#QyS4a2Pi4ZxtJm6&IXb&XviO=U zwOe$qL~?n$rEHhJ@a89GlM-g%$P2n@_+3G-!^gyJ=f-{cR%thSGpwH||4hHIyzl<w zUya3c=NyrKwtUjn$;_87y2O19TOrh%y`*!_=Sfvn>qI?k3Qo`OE17F!*7b7kv}%zv zj?vzA$0og8^1|e3ng4xxrV@$yxprdh<tG~~HtBaic+~Oz+T|swUlwnPeUxN1d%Kpy zE{n(msRenjL)R|K|Eclx#*d=1$9AC))PCACSsN=%pP3x0-dMXY{`Qv{{Pq5w>h^(! zTH2|r<F>tZG`?!T^4!<>=#4MloZ0y$Dm&EqrAhbgY16FIcP{1azkV3fAKj&MES^_E z=w+$Nf;mQcx3$(<&SO}zA^3rJz){=TDYcRwwx1*vG{ruoY2KOZ)L@%E@l{P%)9vV` z$z1btU!QBXc^y;zcTsR~&t>6!){-TBp(Ywrw=FUia1`rbcFEt@WYMO%T*iy<USlzG zT%?}6Mw5w=kNwxae+&Y?GXpL(ZE0m#({(IYXG-uXt$$r7!rApd*(`UjJ99RGXL(^x z#Jl5B@vn3FcYMDq;rslfc=W!EC*A3qKU`OIL`2B7wp=UTba&3Ow;R6vkGffOe))k6 zW)W6_%KwozT#^~t#hp=;`IcGo&TfoWoE5nA4BxsLECRpxNi^HOjnzmgGdQ;|^h!^- z)tstr?ln0N{_oJ6)2Cyie1VIn^xO-z`H!Xwi$ocBc%J!DSYOZYCc<;%ajJviA))iF z$L-#9JnC&K{i(y<b>@6jRdRn$1-s3g_tzTSKY6X2=@IPryk9IL+ITJhA%)+L2`zyx z?_U@FF_h`LeE;%+wHa~QyXP#@czpk)u&GYyZ2vgLh;Ch`+}!6kbPm2aXQi9D;!Bgy z!Fu05v*z8_#wU4Bxp^&LVg8S&K>lx9OV}4*=A1XCws+ruR=@QoAxP<5U0eU7b>%17 zpTA@YNaNIaeXR7%-=i1fLY9Bm%ub!r<Q6D#abAtE@@vgsPZvD$>FhJD=rgJ}a<%+1 z;rYsV&sjgR=fyN=TJvxI^usKB`J2NG(wlU?A6OmMY#kP!aox7W@B5qGMb^_k-%43< zbp_Af6<Jz^l1$nAD-92M{^MF~{A<_g9bsESqu22n6?N~QwEwF5H}g4(&oA%H-KX*V z*PGimsmi=@-MJj=bXC@s%6YdGne_Tvy?*-PozXF8x5Hk?COh5Pe?IH=9OeMVfdAJe zBqIAcKJPp^FS(e-<gT}@p}pi^X;XGTZnam&m$(0FJ-0%s)$*j`Z4LI)qRTh>?SuXu zzc%}TL-eP8=Eq&vw%<Fx_vOX4iG2_F)7Ym@zU{p)&^+(S-sHOSHvPrPyv)q6LtB=e z>CpEIo~tiE*FUwPEXwt5&kONSCoQ;ya!u!|mOip#K5eCcQ2P7bWr?S@n#tsSF9={) z=weJ4i*~kuw6o}pk@C`1rpCr@*+bk@$~A*0K3JBVa8{f9e%jq>hs-RKc#j8eV$ppu z^>f0N{f(XHmha9{_P;+PUZwtwmAv!4Y0P`_=N7%{R;zy`yVFiB|IVUqhn||<ezNvt zW}Dgm_BqU-7OdXaZ8}R=J=M}>`sr-@gO9%|taoQWz`VEY^K_fnb(_UR7hk#Y@-Oef zg+B_V^riWPYOaYDOH7<9Wp~T&{CUP@RlJRxmtX2Fb}*iMl37A&A@ldg(M@-6vRv+; zrE1c}(57H1ej+$4nxQRs@x+M=jqiiMY!R2#JY2qQ^Ly2T-NgqRZmplE)gA9~Q=$6G zRKNbN;En65qb8bs{+9ECRrte(?>+N^)TRl(Kj0JA$GCW6yU>zVXCLg?y?ef-s7f+p zE7PI{kHjZruWUZZ`ABrB=yP*NIkzX@jf~U{_O)+I-;gbK?~&05p%$;7Kby8!)i16$ z4U2xZWRvNIdBvBmI|W_}Jo;v;K?8@{Dya{j_89&(S$XSM%%9AsE?!luB&B{o`WSL1 z*S`AfF|*6s{KfMV8&(CT-d!#jbjLa1$)|JivrXb2q`B#NUI;iPyP)RdP3^P%0l~rv zA1rz&`!+~kzVP~XTh*>A-;!^dvP~Zg-EsqGvK{qRV_5W}#Hi8SPS_$yJvu6nIcS+m z-;>8LWu%R?7U#wMbC8UZI&`n%>#BY$wR5f;mKuHj(Oca*;nR9cMsek<T^COm<oVgY zetmc<r(nNaiT-QJBNo|fEq)5=Jzo@5m@6xus=B@P&fT{=cGpjL{myZZr$mJHN{#fU zI_5v8W(J2dy{>#BdD+kS@~Mc@Tiu1Tg11~cEo{=f>6WRT6}QgweH$H41#VijROf`S zK-q#hF`+lB-(~N2`FGrKn}2>ihrG>C!<v8JW>-}IkDi=<_tw3Fw|k$<-K^5z@icGU z*4%r~c@2tXug!dxZh6nAC{O(D$>~oEUTlfW)T=7$^|8x8r?OXGQ~L7DM`y0>keFMh zRr@MbLO<ft$D`u;S?4lTE`0dn%ct{^cU4~-kLrZyy8q|bKH7ZB;z7WrkJEPvD7+0e zGyk|<?(B00KGXbnE2@+u1^iwgn$#bZf8s$(z=CbUS0cZ$$*o@TGHRL1Q$Mi<+LCvk z1gxvKEIclF?DO~PE3fVyxneSBYF2*cgjXUnr5)JH*rGi=@~SmhMYqiC+qLa3U-hMy znWfR+9#1)cWbYBvwOv>K)SZ}6UOwN{^086O$^B1leCMt>-TmzIJDZ6PMN_$XAKd(W z@OgIEe(hg-U(S56viLQ(zia0G?>r`7eyYu1DjwthD^>nWnv1j;pU3xWv2zyYx_ZVN z`m8sd<oB+#{OIqK`g7+^Kkxs%I9NO8|DTf^*ZVzwHDO`?Q^Q<O?_Fn4p56NLj7&!q ztEqS2yEWa<XZDt#S+r!vZAOP2!{4Xg23Y<t{^@)E)8nrU>yO{*X|J05eR`W*?1rWr z!S=2<H+XE+`6KCi<;B-8f8yVLEoxY~n`NSp>s+@L<r<Ex^Qs-^cFrt3KdmS+=CcSx ziprUZ@lWRM%z3lr{m(o%+lZVe2G(^JIRRa<%FZii#cgSS88kUSQKEdZ(-g;j)zaS5 zGaWKLKc3azyCo#9fxWV2EyFF-6z)6zi|u|-Jmx0)%J@RScd<l%pWu}@=Y5|zrAwjO zwcYYz;{T}L)mwtNk{8HWsHFx6?zQ9SSXXQRzNbpvf<3GI*rw&1G&iqounoGAcAisZ zdfv0Yzb>Ry%=~f6g<IuB&%bwzuD|Q)U_D@Lxvt==ai;O})P|1GO09E=xpuS57tNa0 z&Biiq*UwcEaRrwa9O2F5*Z=VFZU3XikNY2K+8rsZHajS~naRgEzt^YkD}RKM{;b2t zFGntYT>j#Z;~Ca=`Qk!D$=oXnbzQgLYVWY!x8qN3vuZ2bR;C5pQ&LV?UC`j%{Anl0 zit4R*retxRt?yYb*<!RI@X8gzzO{yPE%#kIxAjbO_}r;;rTZNfmiOM~nz1{)aA}ub z)Z@F`;^rQ!Y*M#6@oC=Kb(g}^rQ4U>QOvG%`Euk&K0ovIt-qw%tGtrBm3%gLnOtCy zJ{a-mo%Qw{LoV;C-N$VDcYgW(;_|zfbG+^z`g=8EiAKe`s#M3)$M)~mD5XAmT(`>U zFZc0Sx8&{4$unZoeRSWwHuf$(cYph>sAsx|I3M4#i}~?~weI`-U&^mnDo<_`jN~~} z(`^yE==5CO>Y2L~=W0ysoM^S<>SK<GqZ%5#JAUZQ@nrenkbB>AUdi>%#*0=S-JKdg z>3v3u$@7M#da~-zE6&9h{M<d$$afd(?{@{gYtvt<o;NtH`aHDl@f)4ZHZ#tO{V~7% z|K*Lq#^ZaRO*zVDY#LWu^-S)s$)XM3?Uzbs-<@{3>G0Dkrmp8F<=qW}m3mH25EZ<8 zzw3+THi=zZcQUU!kazBV&hm%-mU?be4nGttdZVB&w|U7Ei>BA*mhuW_*+$bduQj*% zZ(6PSx+DJ*qha*zLmEqKTu-fz>{gs>W|}T|;pMJv;y0J*d^)r4)|PoYOZi_2DXh5h zwPm5-VTKJ)_zRx)e|vv{`=a6R?wgKFJZ*P3e^U8pcXY<ZO>>P7pO94bpL^wLy2T6c z{3E}X1Y62j&HH@+r+2Ye+{B6Y`*s{GTGW*8tG#XFj8rS-TA9_cw_|&FCTx*izWof( z`51et=@WO=+D5&ov1B=s?(3n(y3#)@J7P^>c-g_oFG110`qvg+nvlcz^y-Z1hk57t z*|e9ud%CyZl|lYR>4C>z74&b<`*$R@_3uWZb((7~uXyYFj)NsbrR>8N$;J$>BUR0H zt2j&S7p<K6a^sbI`-J{2b>ZO+*U#_Fo-Mkf-`qVUDy#DN@w?x@FSq#h#Je*vclC2w zPCiDLezgDx#U&xt910IY<!{Pw{>F8_Q2p)Ky)TR1j7;uvGF=ZpR>l=#zn44o#D)cl z+Rk1j{LO2>_x^6&d465>A=}>u_O@R{O0`oTiF~@ZY*X)CE8pDyY<*W%b(UUce}$e$ z23ntd_*Flw{1|!8dC3H+D%KaNtByXJ9T|N5C`V6?OTk*^$!R@OEI;;MZGEtNmFu#- zMq5i`b@y2`Tq*F~wOHgy>O)z*z~hNA_V#}m>Rx^SfBVP#zpv{>?*Hn&{^QZV%aJ8# zT|e-eO7?kOjlDkcn)wNK)(P29tCpB_-4dNS-{2dQ2LEl|dG~5s?tlFA-It+Y|9-~< zo3_PAzUK*$*O~l0;e2$=@7i2#$<|WQt@F~e9$sUNTw7n{zjfnOjmZzEKR)kq>QwR0 zYxgGGCzhOht8KC1+rQmUIu`rO_Zqk*@AC1vHR1W3i@({5gcr2=^!&5hx27S%>iCwn zC^qryPTw{zI%5*^I&SvFgGCq0G}CN(ufDKo;9=Kr{dH<f_+Fk<JNQ0+cVl02hWpkg z`4G0t8_Le{KF!!;9(!R{b&zGn>pLm3Hyhh#&R}A5PhGrVYp77&X6H*k3ktLL95dhl z{k-1At>)qj{)&~FnJ-@Q_<iu1>q5U(Cd6At?MmDe$Rn~+YqD8%>c=C0(=QgSyjEAL z>&iI0c<CA?EAcM->a8`ec=JjhX-}Iaxsv-=;Iv2f45@!UJ#;?jDi!hATJB}U5{At+ zkDC8v=H{)DpP8Q96UoE7)jj4@_YbDFee%1u$uH<B={+c2Yu(GezM%J23ICQg#@_cX zerqhq%UtcTZDlUwHG^i;e+;F4@hiKM*X`D=d{}#TDbL(x{91>6txPMepU-78t&doD z-k{3#xZIZeeda6UHJ6u#{JYM$S0npu<HBv9?=&oCU00f>k#_2+)!9|IHm2rHI^R0E zZxYw-C$mfKy5H}XTbRQcH~;tlquG)NuidGL7FJb1%vhnP6!h$D6vKf<t0(?ivE5j5 zVQSaXHw%RSK5J^8Z&RssCOQ1^e*3!*zpl243*Gf-g5Q>kW6^4SzYR+p{Z@6HH(UGv z^ycVo$*j>6&b>adLwZk9cR^R)q{p8>JE!fgNEN%Fa>Huok?iP8g`aNy|GB09n=xqr z`_~za9~S6)eT?;*>h~f@|3Z1_hBb?ho6O^=IsCgl?n|v*@rE0G4o9B)PV@<!)YpF2 zE8%T5=b@m$kglcwkLN!xUOFe%eNx*asbiD$4;$*pdOXlDxY<&`v0hF#$|Toj&++r$ zFP*V|_0cUrbdzy!;;c1$qyB~ds^OEH>bWs|_q}*&FB=CR=GdTh8n#KxESnbzxN24w zyPC&LIn8VL>xZ+=?mt`hsb_C{epOvNs>C7MYoF%71f~OG=bSZ_Gghq#Nhz3cP3KF> z62`>=rKJk{O<7-Z-Z6XqKF>em|B+xpHIK=~4T3rs`ts&PxXtf;dZ^)LW1X%3g4<G$ zEzGqt&t&|be7N|Jcm0$0k6-_v3$FS5c>VI%uOq%If7|7hTc&S!?LP0>!i1k3nn&Wq zkG#q`p1<w%?!0Z!e}vavmp|ryzV40F<rVAhYV@*gTr_v*wetZ!w*t;hsr-CzMdqvd z3xC|2alHR~x<N)nLR<d#R<>G`@K5^P2Q+1G?r8Hg$w=Z9sWgc`TYm4XMo08(Mc&@E z%Wm&xoGs~7b8PKJ{!P)G`?P}GwH7kiZz##iJ1>6Xi`nyO6Mst_Ic6AridV1n{*x;a z{S%7TTvVRIct2v-i>b9MG*6xXp3}~^cS2*J0FUANvmet|<g{!($MNd>l}N)<L-Eh` z(y@_Y#VJp6uAkWAl`eL|V(&BAcjwm^mjAE4GuKYqKw9;^!mK0O*}t2=hMLsN1hIeJ z8rA1}`PcI~#*bT<KcCS5``eNbX(P4m4-UGri1=pYd({>D{SFAy*Roz^eROh|-^?>P z8!qOb%2?|j{ohRPYIfvj#<zE8?woK&&Rg%A+n(&~&6}TgZL8^X-!Zk>vv_@a(Ok{L zZ7ybejepGJWBc^$+OwU;>kn6l1thy#3Ez3Y!6P8MRC14Nqiw3Q_ujZP<^A$*QP(%j z@ri%;{E)2M6U`?Zi~A%)GJg4Ln{2B-a+|+0-{p$--@C4pm!F^aaPfMZ{eNnh*s~3n z<OEI&{F<G{n%T|%ydX!{a_i5P69b+cV;9xX_`aoBXtqq#watq@&)b#e@^`!RIhTDZ ziyoHzGB~vN)uumpqxLdBys@tT*!w%z0*m~OmHteg|3#-k^KnQ1F6D+Pig)$&CMVyo zoI6ST`t^*uYabjh_8t_ur1s;2RCF6p!TaovzGF+Czql;N=a*Z|nCfeBJ}q|o6yH*j zRGatK#=336YCkjMWvxEmzY~;DdgWE#^W!`X>{YgD3^o^D7ySP6__Wrqa@Hq7CtEMA zPzv}w%j!v$q7&DY+<*mN%^qhh(EqMx_$Z4dlF8<R@!l03_p-09%v&R?KkwP{^Yf1H zU3s2!nfv|YVy(Z+%Nxtgvl(vvHdxKQnU~95+j$AM+bLt)h>616R=1?6M`S);Ek4y= zF;nD=szHum&EERxld8$r0xBNQdgnR)+Ve>t+q}vbuUfjuSjXb!r}?+Lr~iCrw&(L= zHs>vY5B}T6WhyL}ZvHEsE`4p@#nrN<DUla%1h~z35gegil`p$M)xI>@Bi#6f*av5; zfWYX#cfYEw`6w3^?dfm-MCSe1GYsk1-fixZFW3{6vunM^tU|Gx-{NtP&FjDE{(HH- zj&J?@{pFGmW5qg8XH1_HaB$15MU6%;MBhG|F?(_EO?6Z0()7h&_7u7Z9ou<+|Hn_; zKOFsQUT`b^;hXf6BH{~jAK1?SZYDnKb>{n<hu$wsH(PUZk3h!x=@U7(?3?y=A=~wD zKVMvP@G05V7`9&ArKF|!X}EgohPTZrUSG?n+6&G8yiHGp!R^;>o}?+KZ=9dgEFhh^ zXMyF-U*0!rq`qq@Wo*5-n#*b_b8mav5w(h*YJOMu_sVNlya-~+-KVvE;*vX^i!WvI zCAav<`X$(JQ%eZmT{VBJ*2P)P^B6aG|8rEyuDR<nr+S^_^gp5(r<U=4k#NtMD#;cq zw)W7ywC(4<J?k{wt5=b;ex<3}&Q?E-<4U@jQ<`Q<muNkYN!crPQEqjNO8eyiec3wU z<bq{v;cq!a-%i@tH`V>@#kmo-MS51TCl_Sw*1ps=quJH)xyiP_zr*}C-mK44-aO-S z#B$}me`7wY$eDi;Zu9zPRr1bqXBb;x=tupl8&|)-_ah+Me41ggUACaxm-_so4y*4P zQW4R|JtE_?=VVu({+Y^B)tseqX8QcV=mlAO9`RnOzLv~&Q$K&stxXaW4hp(_b4-bE z^^=pFd4AsAbLDsT?%vOm@$U0(pRe1CR%&Kz9Zxlw!Z_2W=II^9tsB1N#2jDd-!Mz0 zV}H)f@26(1>}i>#*w&Z3`0o!}!!u!jHGG_J9{zgu-pnsu)wd0MuW=jXt$i(WWD2Xv zyX#wZXV(4v`R3>5nXDJA*H!ENul)O~yL<7c+{H`d6PK*<cfF(W>8hE=>p#g8EtP)- zeY>GmI4xNJS-2&e)=x8ELy=F#w!xn#9Ng4tzRkYUs`eXv4eyJs^7H#v9sM6Hwm|D= z0Gk5ueb*GBDN7G65Zt$<Xdwgpe^C*YjLgine@^Wx$ULxo`5I5j=hnd|<oMie{y%7* z^qDiODsYW?{ymRFIxi=Fv01)+vV*+FX8!}bzl(<)+EeWPU`D<5#*UYJL;My-oLVq_ z^Wjr76z_^|o%#1o`tPv+OVl^r&%4(%P3~`Q@rs{)zaPae&G3DEM`{PB{HY)1)z#gP zeHs2;{>gGS-FQN_-M%Mx-=<qmD!Ovbw>JNCLBmbG)C618sk0W>t@ygbtYm4s%+^aQ ztNTx=SKK#PQ*ErY(oyAp1bfY#<9vAwzTEX&UgiI|Smb`WLs+(EP@Mg4iNE)M{JH+| z*B9A4zi)TT+kI2Yx;s(a{HQid#Eh&s8<(g>U*%7y=)Jxkb^aLp?@X}^(tmf@^FRKt zr?qc6<MLZdH~F85xx}xju=pLD(Dg;%U3ivZW~sB@%PP0OdFI!9g4M3J%SQcr)L_F_ zEAwKlzx%mO=B3BE>bD&e*F75>>nAsdbxYUxt*3I|@-I%G{iKk&;OD%bvF}W$U7XM+ z5cTcCF{P{nN{<d4%J|d7r?_14ip=5@8UjCy&XtQ58b`mp`_$2Uc4%;J?y^coIq~dU z-|z6ee-e4>?u}2zPg3Qc9^WaetFu)jDn&}L@~wK~gnL`BI?i8k>7*>nnbZl#4RcK8 z?;4z5%k9-^{^jc#L#wQ_r*Gumad9%b?0&3?wf|5?LcXh~a_pLyE0!@=@@H^tiZ_v4 z>1=cPGw;?|)=8mv{PTS?FL10{qkCy{SfZq3P0r=rnR<RdH%xtE@a6BbDYIq5^-o>f zrpA+1RL$r$Z3<u8GdBy4D-(8ST=LIcc=*t#BNJD2UcAq3>#T0how@Ga(^dKozs^_r zD1XYU^~wBle%mAK>t(Ye?pyg4NIZMo;nmHQeROhjdV8?Z_T>@p*%g{A?#UG&Tsy1# zp77cvx%_!Hhr7M6)Jwe2zqjY;?(O9lu61SjyyxVK|F!MyhPXR=+j$t4W+&a5d9z~~ zcdPBsFAMiMU)XEltKIVAjrUpSL{2NKZD!{@?wVimRLO|+IQai|Nr>j^^_G=Z(>Ur* z&Qkkao^<O`YW^k;sk!>aqNm>rd`{Y!`{?IU#tYeTXEz3}kFR+7`Fz}?e<l6%4Bg$? z<2MUBL>A{f*;AYw@{K>ffcaJHi{kn1zPWqM#Y$$zoZ~pj8Qa*u{qW^0rtKHl%RbA` z@za;z%pmt*>%)&#Gp+~knWJgu91;1QW%mIGk?tbKJ(e>oMR-1S?rnA0`kYsk@!msT zi^6(6$DA6gXsZauj-`wFbbhbWj$2u+|99v9dhrH-rqiD!=K6Hl-8r(O!(Wzn!5xnm zR|+Fp6INaDHt*WqdEkFb!Z{0`Q<Xst+d_0&(>1y;Ftc<{c(+KI(dLu)eZ#G%v(B(> z-7Bz>S@iE&@hMFWvG%iX9Y5vpWzWxd@7_J~tg}A;;myy>-Np}={hG^?*xNMe=dyjr z=VyyB6ur=iy;jQ@_tLaa{H?KUvF~2}d1uQ`&R%fQ#o!XJ#5qqb)lIqA?SC1o`*i89 z?@c~aCcK9A>?MmO3m^35-B7)9cvjx)-nw-^H(Z<j`RE0Ux9>lE`*ZW?kN<l2-j<7Z z6xA<0ExV^##cEoVTK_f8sTG$}?!Bxt{qUsz{ejiL&KmX@zMoz`S1&tX;{Wo$bu~r@ zSDH7U5YE{Cthpun8*}dZ%yX4C`(h2*@9lq<lvG+1T@`-xgqI%Ygse?wwQ@yln{Cg& zyr*<=SJ~ey|LUjotbEL3XzY08^P9tSrfa<R_!T7Qeo@oP(feMOjjgEUQGKnZSEV&` zUbs73G_Hu3yz=DKC)>bxvwuB&Qh!QbbXCvyS4&!-t;luaa+o{K@nMqGU$$j?gtkPl zR(u#0t;cM4X};%r3npIaxvVo&4~W#iT>WN~(eW9%0q3mUKCYS|U970ZyOndI=Hy4U zJCDstpEX^Mf!ERYRW93F9u9@;Ym$4H8*o3olERkyB96(H_u7TMcl;bD_+FYU<}>^I z%##AS7c7s|KHPi0@`+yQOSf1TxyQYIs#B{T*S&6IFq2xXQFT6j=hVbEs{1{Yl`~bE z3-^5QxV3NEJ2v&+SF!VUg&g0ssORR4>B6e5A`LR{PepWC_CCG+v?%SzlYRe+bUyDi z-s0=K{Ops96N){fKK+pNl~_9GtVxAr>CxaLyd`(4mPMR?G4J)O*h>?Ct^NE&@D@`; z(e8_#0l)4Xt)94XQ`(ucKmHXSX4lVKzNhB*w~|7JJBhY;H7cg?{eN-i#-eXB+<Jxi zpN~Bb2uu!d3|k<c&r@0CWZ%2+m&ZR2tA1g(oNG@ky!e8)DWo3IDOvGaW!DDvbN_wr zSu0&T$-64;*u5uF50f%%A}{oPHPZ15=ZGy_H~mS~Y91r2Cq|o(8a=B2`R<w8#=PPa zliZ9eHqT#r`jBPHqI^s1Z8!T*DOn}(PHHi}cyYV&+>I8EyDy(zZ&bd=_1kRaBPA+% zUzO)2_cEx=&0E%7f9CGxZr$eNuN^@LP_$R=t@-(BlUV#Gp0{0=$3^A-uvx6()Ytzh z^F3ba!<SR>l6=BW*0!^3ox+qRvPC~s(DJ;OuF1^1W|z01^W&NjGg(t+j&qMiIX#a5 z-X17h8h!uHuc*bwz0=>%yl<@?Th7`lvXAxH>IGuG_k$iWZRfknHDf_Sc2~*1?e6{o z{6?%{fmQwt6JA|^ZM!<Ld)DS7rcXN(RHT^ZE?gY@ohi0=*&+$QhVA(upMAZ3^8>s7 zyvLk#8JPCn?e?zvl_ar%x$&P8U+mu%8V>u*56xi_F-g%*ieo6YO4IvOvqz(^yX(y2 z&sqMZA2Yt%-&i2Lz_%@8`Hq>cmCff&rYthu)sz-erET2)p#S@+h${OdYtlnl?GB!L z`H00L{=mtXOmXfX_ZKs}yBeFk&3hG`e_yKq*3|Ed3%+l=vw7E!38MFoOTK^q==o7e z!#N`NzF7Hl36?RW-1&ZJ(kxe|j|yqZ-cnP_O!ec=x5pIjHP5^ICCE8?@y?1>+uSS@ z<{W75b6g)MHkE0@(GPtaw?+N!VcL*tqNOzBlewL$2KQp!YcbMWWha&HkrZL<k=*&J zk0swIL^81W0sF-{=O-?!m3zeATfT0x-iFEXz2~1-|1$l3yW55_V$OkV6^$3WyfaMC ziu}KlzK*@mesRs2vJY%V>*u;pHfzs0ckoKQ?BT0=%gk<Hoz=jzM^`3x0prwS!|NVy zJnEg>jAB;$hj>i5sb+F1S5@KV2f1A1qtVBE46UU9PGY`zsv}9Xpl>lxp4B{$=>}qI zH@;0cKCR}8?D_=_7fxC{*>6(NcF{j__i?EYVNc_ZE9`Q<cqO&;r^$_kZ}+Nld35V$ z9^10?a^Sh^KC9i=^dI0~S9fySbn`uPmdrbD<WyWGAig5t$&}rpITv=uM}C!*F?n}# z^HUFwTZ-}Vx9!bNM!tPK%{fux+`|V&mOl>_XdhSB+&WcZvU1*an;TpAeU!_5ZgZj2 z`M9`z$G5)eD?Yc&@0;Pfzw+}tA%%*$U%K|Jf3VSHQ?0ut+p+ZW7c=Fq@@q?-zwaOM zx@*S2xVg4dzh)FoTPoOfW0lAr@nc)6ZRO`oId{2oZuqX{ig8)(zpSqPd6Iu}=ibh( z+BJ_F|9iAv&~EmtG!nb9%~Xv4=M-k=Ir|<?Vm!X@|NJ7upK0sn*2-M3(u-W5sedQt z;1c6kDQZ?uMz7}W@{>`Txox3L#GKbhY%|oG4ydTxJe{)Z6sx1V-HOHLsd9?fzdq=m zu5Vvi0_s>^Wc<*u{_fjU4b!mqYgT<)_xJGBeeAC<zf3SZpr{kNq2Dc{&hLSwm+sWO z?vRTMdQLbVx;pXM;Sd+inE4Ny4>iww`_cNm_5S_)g%u1||IN5*kT?Is32Ci%rbTb6 zCF>e4NpNyl6nQ&L_PScNQNQugl$&n;naq91{y$khk87&Js!zu^G}vbUSh7@4Dbs3Y zg2<tpjG=|clGLY$?`-Hdekvm>`*}(6_v(se6Z-1&@9&#^sxC(PYtEb_0b5lz<-2`2 zWA>?XW&i5aQfJ<sisf2+|MLItMV*zwYaU1JlD?DUUzokUqH4zN_-7K!AFq;bS$V-+ zs`9RO5wG8^`^i4HuN~-`x4O_Gqvfla4+H;cWfsAI|LkuE981|^*wg=+VWpRA{!Al{ zUCs+u&wlIrebyV3RGIMi@7tmdCBH9mU+iOb_S?KmT{(~UTshGFF~&7`y7sT9xwb6a z)0tUwXNG;_`?B!bCeaHY_RY7x-aXG_!u7B^DW-X^?X@rK-@P+^{<MZU3f;9qSKqzi z>D5pFl4berZP)J7Gh&O+&P&eRY+JdZ&-Upqw|*|Yqf0Exb)^oQW>4apAY5{@?P9&y zS`)>}DIqsE-(!{3T3eO>*mkjuc;wfaHl1Hjn4N0g^{X)HdbU`nsb)RryOrTVdXbNf z4aK@AUSzO*QM=~6fTY`T3FD?P!{rapFwWQ;aM5`3JRS8jQ=b2xDUz`MQQgw#!S_@= zzIO#|-k+?^G?(!r-{q2Msp4&GIQEy%QmwZR?uy)@t@LiS^PPaNM&B-NUh;O^#GjA< z>iBedeT@&hy-8Pfu6y-Ij?Gz*_VwJ+w!Zi}@??vNQBUi)W3lcULfJ<r-TIf1`r<kF zqV<_9*FR2w^V{|m;}qA=E|bG%lwNw~ajM;Lf9Z2x1?IboKN)(>e{DQ(cW1Gm?8=V4 zxANHZr!8jFd_VbhblUS9VhLw57SEB7l&J10zr4parEK??zs>yf{rCRVGjz<2-g)w? z!#r*I9p*oeCwq#Xlz4o_Q`}msbidYvcIFRzPAQ+=uWEgv@bp`LJ}aTHy~bKM@1Lpv z_{Vd8c6AuPU**f>v}+;Dg02VmuJe=hQctzIVEjPjwlu%*x9wk-t`X#q@_Lv0?NTfM zv9KEj0V${Vz3ThDyWF_@($h01-Uz1LezQA8Z?4)B{nV?H8=nQ`SEji~*xyxnet)lJ zgwkooL(5*im|L^kb2`gy!-Vak>uxmPS6`aG`?>#z3fmj6FEW0ZpugGw&?)cKSxu7? zRF<B&GvCyoA%ScDyz(ji`wp<IQ`#VHd*g=nk*r;H-l_uok6+v*tFmm7??RpaTxQ3| zyQB~GdgZ^*O#A3p<^I|yl<V1^L*9&ToVA`ypGZtR$+%9J-8TO6G?RNw9;@FkQF^>o z%IDB}p6lP0<5^kuFbXlSPG_DI!>sUr$|=6c--lN7Y8;yLUp3?O!RV$o-Tb+J4X5`z zzUH_4!C>w_k9Yo@iwsM*W;_<M{N^|N-Gag|e;XFHR?qVi{Jiz`&aPL+SL<u+l>VLX zlYhjXSI;AV|Bs)Ib&bJhMkT8Pho#wzT>WqTS-Cu9TKKV6CC_^Y9KTL?5579*xs|ZT z%21L290FR)A{0u_m#fZ@ICe>nA+Gg)hL6ty$K=I}{O|p~ca2HkX|h*v{zi-RRVu&t zg#MrVUHt!vgMx=t_P>wR$*9e&*?u8Ezm?(g#H6<=jVC9mmS^pDEZ@uc^6I3`=c;Zw zv&(<}EvJ~6|MR}^j#!Nsd2h0WoBt^Dl+EKhuyyyl|9zFML0i~Y_T3b?zG?4ueu;y| z%G+zV>^nE}?IXw2D>k1~{(h};{_a}G!&m;W*%}@H-J7{wW_fKV-;D3`X3NC>^!dEI zqS+$UlfCIqi!fut>5HPfw`*Mr^LrGPoV9!TN&VO2E51Z2C_T@v@7CY!wY4xNmz#4_ zlv$<oL}%go*I(+fc4d3VybxeFW>AW)dsu9~<NMYP?KbB)Hox3_ChJ3qmBoH`t*z$l z^N)XUeR6-6ZGDSj*Zkr)xp&3(8_rfyUcO3uV&6o|cf3>g?TJ5m;o`a8W9?H;KaG!= z`{L+(QJ;oIM`Gi@e3Rr!_~vZEcfj(4Z}#K;N$=yUa&AxiV(_MWXIR?1<CS+-1%*yD zauk!_<l|+ODq+TQS}4Q0B{O;fr?c1{gB+%;mF|C8Os|$7x80n7Ln%dKfr7Lu=Z32a zJ>K0DUKnZ4Rr3CtaCcYv{o-@?tmU)Mevndr)cxbwso13NISS7$t&5+=6!*FJRJiv@ zq^_~%{a_gB_Jz6p#{Q?%mR)j>k;!(BH?+!}VqQ9N|Bvkpx62FNFFoygc$LFDo7HwN zk8jGVd#Leh^KOf|IqSbY??@MSH+iSN-A|<>!ROq}##v2=>kO^<f4o|~y;%O&;m5-F z>MIz&zbd}}$G|UlPLHFFR=UTdkfrB)-@iMs`DL%EhfJsb>u((DfBpv8sH+IeTAODa zD{vFpUJ}w(_o??pQD?48trIiv&*BI7SG-O<lk|2?+oPvD-FDBf`Wtk=bLA=-+1mW8 zV!V0!>L<5x&9k{y_~`YSa~2CXg?uk)>M6_1n<029%GvU3+3aZZW}X$zOBV~p)*n>A zYpPdL=J4sumBwF^;@<uxT%Syo{jD91qaS6ydZerT?MkG>1i!y+f2>|sFW0fEYo7j^ zy?U<&L*0Sv2mhEiJ19>r2`luKy8p@NQo^@G4}3)K8hzj?$aZxV$<$h1?ba7jux2i! zN2<+PxzAyz_KKdYw3*B(>$qUigsvk`|F<8!^K9NPpVjlvZ2Vpz+rMk+!pK5{2O<R_ zEz$h0=bLyY@D?<k?3s}K<?Ehe!<V10<_3B@1Z;a6c$ZCM@BJ{@*~S{Is>+)8GK2I! z_wLu^X$^cn=k*eH-q{s@1-^NwvVZ;kPw9)ioRj0L$4cLW>Q>!7W%TgY@{L)!9y``g zTyV*JJrD0Si3d?<s~B#unoF|ZC`c~<F?F_m^ZsA^f5bnE{~i91Yu~=V%7uKNYql32 z5f-ac-C=F@e6@i|>+^ffnrHRyz1&h*I%Dasq)pE{&u_cJ^T4NLN?2_q*Y#W4ab22> zlh0pbj!$knaHD(K4z;l2qAkqrThdLx9qXTS{@VFh*ZA(ndoFi<$Z+Vvi~Xy<O3e@b z`m{shi;2X~tQ*!XCg0n>%B(B4i$1%tx3BHwj_sm-`uCrFpVn3E;(X$7+U|AA`^%1{ zE?F%3y6Kh5|A_Cxm!zXC%#D3t91-}HeySocOTSa6_;Y+g2=}}%E|Rgm?S37}o0N*g zB{^31#JS#^vU+OJdcV%qbzRq=J@4Y+l4aA)zsqhs^~#T8@1+4B{df(XO}DO4J(X_u z(%e{4pwE?Ewx>otCGKjgfcuFxcK+_+ZqJ#|RPR6is8lTT1k;-z>y&c+SJ)nZ^g&0e zxml7?_Nw#8U;p$!w*ENI)V3^e+qs;M%+{DMPgZ{Pxm^F5ZPWTSlN}G&3oEznanG7i z;A^$irvJLLghk%l1M`o1Pu@6j>!j~GHOlYXKR-~|q$0au-7!Cj?phVYnE`X2HN<T8 zu)oh5yl0un`B!0LoogOvy*m^yZNGJ$^BV61pEw>RF25bUHuTKZ4G%8wDGyc-Q5Q5> zYa^?(+PI_k2q(+aW$SyES$yL!>6>CWdyAD{WR=z9zu)D9%H~d9cl@*Y$9<WNI}9q= zbH2wG*1KOx>{zj(`*HJ!m6o%giyi!U&iT{}W{H>mZ>yD~&g^`@LfK+-S*vs9=^3Y) zm40XBuiDu5{+*2b2anSxrHf^B_A!3>c#D(W{p7)nTZ}7L2lO%A7k|_F{N{1Cj0CMc zDy>C=k6$TxrEhWxyZp1J>00#*WzNm}9PGk>xqNJonf=68G5L2jo8a!)Q_5C8ehGn| z0_%g=w*6Xsuqh+WJLx{3uf1We{~W9TGWyr~zf~17{ApO<o%=^G!!Wo);-)uiiMiXf zsIN<(_pW>@xRPPj4jvPs%Zn=0{(lwE%-Iy{&u_sSu%P$Bp6!zhk2qvZSXuY+%MT9S znxj(=zqH+BQ&C*peMxTJl*bwml9fWPD;eqT|2l7KQeO9@lT++HW3}ck+$nK9zBnV! z_aawWoPyzNj!A2aGnh;CTcv)T2-0!45_jG@uk__@=g>`)jwZ^yS^Bx1;n#<Mw)_76 z+%CSStN3|(;&QM5+fpZ4<xid;*R*f`d#3t(e;10zE=h`b-~G@lH2uN#{&)8ty{>=u zh~vjr>pQnzSH{(5PI{HnsDJ3blTc&OG)aZleuu4_A6QtJWLF#tx6pZ<A8Pw`_OEqm zZ!#XvKN7UBZuud-C&6#+oqt|({?X1Iv$ebKSwL?|i)`obL$9*CcJ>`|UbAR(!;a-) zQRm#Igsqq`U9sn@mfX{`c30-RJ$Fy9I?|jstJm3T!U>+H{;ih}2lOXKhZXDc%nS@Z z?P0Rk|Nd0TDIcRYtF4Vm-79h7l)>{8nFWWg<}Kf5R+al=@A8J~^y<imrBXjPgk`Kv zym_u?Mz<T|>w~-4L#AdfU$o<7u~B|0mx^CD<F&G+O27N!hZTAfe2@Fv#r)|xwL$gY z+AY$-z7i_(A@f<YO7_ZMeW)$A%x9(TpVBn5Ydf8LESE1{n0O&3S@@6S`Q!WEl_hL_ z_^LHn-EWzj&rz$>{}z8N){nclhjRr}R>{6<mx$z?{+Uhdi&~?ZE^SyRQo=s9ru^FB zo$ppx{;&EInPwvJ|G34s+RFS)we~L6;+zAf+S^t$=CaLGnqZr*-2SxK@a&m)52wvd zJGF7yS?O8AG1s?r`UvXAOwWG1u>57rvHP*w3F1*|?*v{)hl%<<omcdv?3~}r{2L~6 z^Ea+*_WnPm)3aKYNALX`{}oIV=UpieRN22*;@|uI|Kl{2xL?0rEb;cT5_9dvzeRIG zAFIncem?!#NxG%caFbrmWXAb7*(yU*zkJwRvhCu|X?yzLXjCYKwfCJ!JvC1@ePR9k zrT+U;<9cFmeV8PzxAL9p{F~Eio?UUaeOx6t{o-q-J*jg4+ov8sTlVREd;7KAsylx+ ze678>|K@>Hzb!(n%q{ztJ=T)5dM>y;S|n!DvDNQ{o_?~pH`TjSZ<E*aywmG19;*y^ zU|zAaZo_p!P%hi`VPU?SY_7_UzFfX08;RcTgp4p9ePzDg&wpP0I4xE5h3eDU_Cb2@ zr<~8Z9Jb6Tb>7TRR~~I#I%N^-c2#ECUk6t(ZkT`GLgsS7&8y0i@9)UuFJH`%z;fo3 zF{_vM>N~Hq0(2|pcll{(o;1>JnWe>8XL_woPI7s;S8@LKjE^TjcO~jBSX1)+-f{1v z!QCyPr=~9qk&3+0lD&2b$J-DkuNO?O9yP4Z*81kbB{92NNOx-Mj?_5<s*+a@-)>@K zT`ii|!e6bn=2w`{Rc}YLm*r}|f7x+g{M*dGzp?&(eSJ6obM`&ff6wX6VNaU(bk>y@ zd>ys(^!}>Z1V!xR_}?^bX|c9we6s1Uk`&*+H*W7t_L=Idthuc~W<lunt>s4rmrOqC z8o26Wlzq_qH2J408(Ec8ZJry6RsVI?<Yk{Nb!4s0+SfDq8f}&deA=Qr-&OEPXc=o% zWa2lQ%;mCPVRxf6L#|b==IiEuaJT<#Qtk40-KRXvr2-UeFJ(NoIC0|+_tC|N%a)my zy~$XAr0*R6qDv})@1AU5^=Fg7wD7Eb;`IxZu6FG?#IZ7`ckzLFNw#WS2CBx_PaoOg zt-Q+EJmTuCW3$Y)rcLrl%e}y(uVSz9AYgUvGm*_k2QF$brDeOA|LJ?YQ25!MFZQ$j z7hhF<#J2kPgcl*7jpu#2;Lg-mT=o8=>ObNB4Ihpd>Mx$Yb)M&KP4UI2O1DMNWb~-I zlX7pme6*6nQz4f9lhhQp#JstCq%n1g>*-V9BU9GQ-1Z|{nN@1X`?o*0nfJS|Tb**c zqE5b~AaDJKp3TbBE~ZcP*nD@#`{#D^E>!qDs`%6(E7ka%Q#kI+$#3P`FX=aZF)E6> zXVfA%d*ykPvXjot?B@=JN`-p=i@IdA=flY-C$<V+4BIJwFil+jD4R}X`k~*P*GsH2 z0>3;vHp{c=z||u+8Kk<86mmPxe{n!p>85c+h2BJgD}|3{27j{Nb~F3L#R>P?FWbL3 zER^oIv(EhF|7bRrbuD+4YRk_~Y2u0q*!pEtQNx??KlcwRe{L(x+kN#<dM%5d(hafa zozD#I3ZAcgIq^g4F54ipck|j~a~|@|(J1x#p^y;s`+@Lv@k)QKMS^o9<%KM?U2boS z`grf|p`Dez)>EHFKGwSCTlsUL9l!h8%a^OCeD41e-?(ru>r&H0(epwalT_mu%J~#z z_6i?0d{p*wH`fnK{#UCb!;dH(*2(DGk=Uypv%m7j##%^AGzC=e)ow4JJU2|E+*{dh ze|aj?Nr%aeXRD<vHI!LmZ%$=1_<3^PsRH90B6(}=RC~LP6{NXZ&rLd6up-PSHpkm$ zuAKHG`)FyWFB`5hf8Md{W94JPV1}-Po-M1M&2p00D)?q}Dt#Ht=2M^2k7rvy?JE`N zsth&J@|Dq=s>`^Te`8WeM}e=E(sG0R*6qiZvK{&|ulQ_8_~Hw%P1oK2sj_$Ln?-34 zZtA5+es=wwS7FWjN2_gGZAsSxx8obNQds=%-SSBYI&k{pPm5`J^WC4;{{F)L<97Xr z|A+GT{Eq%nP-Q-s$vSw=a~Bn_S--2dU-~DsN$zv#W1|N%s@r7uszv$EiH=?oAe!*o z<4~I#YjIC2Ytt946RE!}8xz-^(}}zNiDz2L{Q!+j6VbO8DNUE^Qk@*Gh0b58{&>5~ zyK6I6hJ|c5+EY@;7TW3iA;kJq*`*y*h2A?cT^F>vJ3U5o!op0Y4|?1eB71^^3t}?^ z7b$(+ae3p7!bz*<8Xb3&JD{|5&bh2V#-^ry{wneeQ9r-7E)%y4oX6q&QtrIXweLrZ z7YN2KO|JhIbH;zlM$4Wfstb=t`TONXuK%;K`tyZ!{wUkqlG1ID<R9$#xy{^H>`x2- ztV7ooIQpJll9E*O-4?uYzG{5oix=tIzlCR<lCCh!=&YW+-l4%aL+-_*wzk%tBJXdm zkGdiLE8vIAtKXF`*D@+@+WJ6d<>iZk4?I%uH2x6Cy}Gd=$a*o)J0m`&UE;pnZ+1Me zl#@E5BeeQ=M|0Yhoz6Gjtg!u~*?vgF{!D#I3+uZe$CrN}ZZ6GMzxMU&7Eyz|KNHdg z92+LJOK$D6+jSu}_r8{#OZ%0t=?{BUvx}|gu48^UExBVB=h^9AR_B&_vd{eZq_-jY zv+*Z!=4>XB{;%4LL?hOin5@&7mvLmGSAF`k6R&(;u35Et%TDcrg_67<*FE}ot!CES zPbV%)MOsCE3*I;X&nem08%w+9JILQ}kJ<9^t}xec^?R*_`>h}5ta!^OY(D?Ox$1_h zrB`jfUs?Tf2{-%MBj06`HMa<)7q4}{v`_v?{`}g$V2N37pS0g3nB6>lxc1Q9R`trf z$yZJJ?sOdA_UNU}Kf?!Ze?B_hl=zqU(Cf+ftxJ3Nlr_yL%63m#`)P%JVOh~?hk0I3 z?jaU0d7gj%#v8Xz{>|4%3_lp-*XM1Q4?f7XZ*#M&->l5-h7qUqG)g3VC$2hu?1kHs zecQaQ-(s4&s`g*^cdvJTY-!<=^?&s)TQ^VlGBFbETi$-W&u6LNuHXf+@9xW(x@!HF ziMy+7)4OVio%Xb6Yk6`tHI%BATKm_pYI17$-FLHZS@iWMr@8Y2l5HL|wdU`3NwB;( zA@c8@s($Z>i#D>Do;f1m>AW>%!s6#k+W3A?*}C#$$nMH!Kh<^Xzy9E|7b$qN+(}R5 zJNw+LUC~#p*Cd}R=`dh^Q24*2|M&JC_VxY8KmWDS%MT0GKdi6(k9D#0tAi~sXGz6% zxw`GxrJ=eZ#V%k)m&3F0CCl%X_e+&4{;G-PZE3k<?9Bh*--~ONI_`Jey^V@4zndR6 zi~IX&i;t!^6t2GfTXoiA->=^>UEhR0&bcnxo%MFU(Uv89cbRA(*$^iC{gCDFD;Flz zrbMlGp0eX?*34HnCGq{LG5ueJcl9VbhwXBU`uu%{a^aEK&H9Ht83Mm4ExPU}b-HuS zZO=;&CuZOFyT!c1qFTzQ@tAqW;{&tRI}dugKY8-t+K!EK3!k5z-*b##eSTN5X=cQa z<*Kri<F7W)ofW-*Cws;H-AUUbFTWJx<+^d~hw@x&qgbQItw#?_c%4=X_He$q`Wln+ z&U^OWoac(~InJ^=a4~O=#Z$G^_)l)<Uu0V<KU=>>#P4|W(mCpTlZEH(I<)!K`wyIt z6}o4hONwScc(x&T<C0X~?OEK7iy|^2`e&9zuD0B^d5wH;nSzmql2-K1n(Mc1)%Nti z2)30ucgyreQ++MZ>xG3((P7N~kw)1&eTo%c&Mw*B&3yb|&$?+c?s^<riybO57w`UL zk~iD&VNA?R8&>U0%lDX`>)aygw(;7|mxf$_^K(@uuC934s5)=n>B23?_-4&}EWWu$ z=-tWPJJQZRo-}XU6Zd6&H)lTz`8ZkmW@_!O^#&&A_ugBuMX~lRx8Gr@ZJ~=BnF=d| zjDpT|Z+or6_IO5xl=ErBM_jL!kA^=nZ<h1dKJWEs>nXd8dE2k>8ZA6|=Ub%ne1mj1 zhU<(kQgs(LAN@ID*N)I*982m$8Xv4OE~tF|?AbB_#WKI#qus}K=FOW|WXreHY~|ri z_Tdrf*A8gh@woRguu)zi?%BpUb2d1aEQmNCpe(drNbbqJgF(k67GKD?5-)LGQ17)v z+^w5h$uh?~)o+)5FJgJX|HJCR(_aVU+7G{7&0YD|^t#7#1IgrFIj^{MP6WEORZDWc zJMos`WA*J7JKB`Y-n|X);+fjK$#mVm)BYFjtnLNA&yD_A$XCzv^R0ON+2=AEt(JW^ zHb!!M`1_lm;k>~$rLZTrp0>)?t6yHmmmpHNreGFVlvsGzyQskHFOsW&7Qb6IHB542 zM%t`7{2~)_Hm_cI{e*Ow*iE+5{<oSoYaZU|N~n=J{^Rc5yT^EzKiX@zuB~d-leJ&2 zIh(Iod_?2^D$(8-xvc%~TC;VIO<xjz?6-jP36~4zeHHq?+;jfqFX23AWdAhtnbh{r z3_tsvRvn*po@1xY?&qJ99{IfCzf<%_QAE7GwPaez;@;*jAr+oAx-yF|US4td#LYEx z)`>MdT$TIQx&C%n*Yy2yd-u(*=AG}issGBGRWC2i3)H-mQPWtnZbi>mWA01O>drmm z$PST+NO#iVF#fgTaQC5!k&(MfgPDVmFFqezqPYG$@3s%?|J{wWX)Si!Wx=6Uu{Y@T zqHfjCEB{D54vv2K(aZUXY{Z8RGA@?WcFaDfp8YH0h5VV8O!m|>-B%BPR`ow579)S^ z`Q6pGZ(g7Gdk>eIKr%;5=6e0!Uq&q)^5q7$ySB|M&|S0e;A9@A@6F4nAK7rDJ?d`X z*BP<t3-vGcRZ2}-vODfx+gj6q=QN)PMyXjG`1(2a+OEyET-~QL4>p>L_bz@s;d5@C zn~%Z4lRu}OOjy67`*>UBAq{r+4<1`G16)Nmbzfg}J!<j#=*OJb=UQ-eSYJ1bRQ8eD zQC-`7o4aq$`L{Dn4_<Hm?l&X7%R+X+(>F37Znn0Y{o%NN^yAuJTvG2oPIc%qsyX%G zGt*b8)rIzTR;z{js!TF{6AvA4QTtk)X3KFu@3^O}?)lS21vU#3XKgO*Tb-FbH9ltc zl@$@ck2I;5xlK`zb2U70ET?zQa-G>$=Nrof1n=y9_PEa1`o;T1qg@~0JX|#Urt9|| zGj~1S_kL-6q`sVw(NZrzpTD8y(&;Hx$~NYaY=s}r>`&g<)c0pqu599+yEp9q&#OvF zi#WTxWW$BPBPYHt{1M~Fs@%LdD}Kk0!?{0MS1jMlu=<nwy7l}13GFpqwDj<i3Eunf z*Zt;uF5KO9>d&O~b==P;G^(xp@VjhY+5ab;VOuO^&w12d4f-dtcIJ!sdS?w*uonhI zPwKarowhLl@apg%+uyyvfA{gzUygD5k_`3_UOQRb=h=08(v6VR@P~16H4IU*wE{02 z&)kjrDEt16=)&&z-;LTdZGvQtEUVmSguj3JDK9O&O{QnV&EPM#{gx*=1baP_KkBla zmpYYYe0}c}QSHO^+NsQ|xFW0^SDcyJa7vdYdCPCPn=F>*ec4?S&2Mg}%#wC!)C&vy zm)9tBuX>5s@r{w|g72NqsMMdf(7eCaYr&UU0hyA=Pwd&H@#*;NuvvTCgFZL%UA<^9 zEBxKe)r+SnG_fvaxVGQTB1FXD(z<YWFLyt#`;T}9TY2@b?ypH>is`ApzfoiEozL$k z?mD$q&thj1<MEWgJ*TU3u3wVolDIJ`SHLSuLL??ziuu5#vdD9Mes14F;<#&_ZC5jG zn<8cSqh!XWfTH{1zxMyB{`>1{36su;ss9v>8#*};TQ1_&WS(lZ?|t}tV<FeCCd%vv zUpkf6o_MiiWzLloLhLM}3ne9Z(@f7ey<L6kq>!j~&Wg1RYws*j>W!LkxyWb9f8Te? zCohOC$(7A^ch9*o&pbDR_j{MSe085d(B$Wx{U2*COXvQ*@%?Tj$LeBri%TCXny;_V z)7u~I7+<;K>Eo3d(~8$8#<d9wZhui1&m%H7$GR}Hr~l)eS<XH(w&J{BX1;Zp%l)pi z-&*<W!yTD*S68mOSp6YOneW=XmwTU|@sMd+FR*&8IOo}Li?(_CUT!QgQP%|5tFD^O z#?$jS`}ihfZkG%Tv9NBDcSdTl(FqF+e%jTwUba4GvV3E)$J1EL!!Mhpw~NpFxN2AW zwZs}Z^Ztkm|5K^k&+J;U_4A|bIngQkC4!G{x^?rFaP4{eyVv_|&xywu{-}J>*N7>| zxWgSM68PiC8wbm%HJxYX9p2nuc=bKsA^zP051m$V?BU&Gf9&(N&X2y=6HoWNGr#?* zgh$axa{k4w?7Xh)Z<}s*u=Gls{E}y8mD~J?i{~A$r5^9PEpu1mf99t?b8(rSw$CKL zKe?H6VKc|dHS9k_M4n|w%v$;RPPN{>uN)^HYxmYZw>~4)v`4<gQ}a%rMZcM5wa@<T z3v~HyIPW-ZGmts#f3*L`yFcHA|LpvzVZHK1_?p`mkE(7PZ92bCQ(Kt-m{`Lz%bYg~ z8c6~I*CNhF{|i0!?@t%2Oy}$Bjr*)#roTE?`Kh7Ypx0)RO!n1<jgqoYbCMf9tXLdk z?|pc8*Bp}3jxv5=-mmBKwRe5};%!2VN&M4QT5j~L@Cf9r)qiLo*;;*<yY7+dqGMY< z_n&2P^V%oDHC1j;=clRDr%vI&R@mufXJ@luvDfi{pl_FA3#zN7ZQmR2ydZeZWNlj3 z8|73PiQLUv^EgDk*tSY%=cvxnm|`wglf89`$eL?cq69uga?j9XI<<1zC(HbZ_1(MA zoV{WZ9I3hg`Qpt6-B*qK#FUPuFDR<iKKf(V>%54?IlKm|PaH9uI=Q#Y{%P#Ga_Ok* zbGHICA25BCk}-ann{6>w;Ov%7oiB8fUhMrRop3$dgRwT(XSJ{!tJ$L;OAb5^cy}i1 z#pWAJp3lhUiMXz_&TqEs!JA8hJ2%Z<C+>bZy`WmtaMK5;*Kx_WTi(sm`_pw)f0y&x zXf2D|%d%3|H~%YMm$q`_*UMb&Oy?T4Up_ef)!lJn<<x~!KhK-5@4e?=;N{6DpNKW9 zZt6bftK6S6PvXh#9|w1S3C!7<x9RJV1NS?(w1i6K1}@ncxR{5(b^FU-7A4kQnsKu> zwH%RFZ~r`RSFtO{6yE~-o-;emH-B(zVK-um_cJ=QUes!Lk;s+RrfQ9u#iw7n-wmGk zr>HQa;j-k09adaA#}B37wk&0mU9Vhy=84a@h6~sJESYjY=Cn!CE)B7Sri*8O6$rOG zoSc;W@j@HtW_^zNJH(BW{Usv)x5ZyfT*toItfKHAck_uYiMs{=rJt?$$ol+U?^Aux z>z-xWZ#_<&wpzM#zU1S@51XP^|45byZ_dA@FfC)>@{ioxynk&@s>#iH@^SIG6F+Bt zeLO*_JjResK;q-o+=${ob7z{lyX{={NAl4g5%-{;&MiAR|KBZ+y_C7MZ4>huncHbz z|2n4i-#;F;TkU<!>Xy}BZijSAR-4Qz&Yks%zjgnO>%z=g=cd}7x19K%h4+Qv3LTc$ zPsDGx9s9WVxOBr&EtkE|t{X9Ro}V;}U*vt#w~oBE-Ou=r?v7Aj{PWLL9j`>;9l0Oh zt=O&b`c}2R(dL7jC(J#tYR9cDJu^jQt8bj1>1|_R^L(*Vf3!M>&BiA$%eR{wykE>6 zoOErL%{k#sd>VI|8no-LRpxVM8$CMm^4iKP2P+c%m;Nt*`_^%{|KG?GRk1@nGWLfR zt@b8Q<<xtfvvRl3&%%F(aqHy2fVyjq@zX25_FFHK=1C6Q=sRonnSB1EiRrV_US6Eb zXF1Pu%H>^C<+)}pbbh0%GkI>sOg4?jXK!a){=XOXzM%NaKmX+^`gSK@oPB&b*;1s& z{%j=Me7@w5-@ZxoWO8$y;mpm=TX5+-&!UMwhpSgtF<IstT}%m@t-*OM%KwfhYhu@9 z*{go3+EXqxYOHxvZ~J*)>QlDf3!gp~Ex!=a+a7(f!1P!^&9q#du41iKqE{uot_VHc zSas#QlgyDW?<HKi3|6y_zn{a*|G0jIsrd7=4?o@ixadj9s@Q!i7quuan7neI{&~Zw zV`_bCKHq!j{Uu^E!wpW>61Q*5m^r!+y}EGjD_3iuThnKrf_JWEWm~?^Sn-AXPR_?? zUyiW4DlQAWS3XlXIX-NP<$g_F$rU9>4zX%Impr-R=YmG%j^s`C;f#r%+S3Y33X{Ha zlp6J&6UbN|t!;K`-^(+WQ*)BT#HRa*A3Bm7xbI|j(!RNWlZ?##o0a8C7iF)n4inlQ z^2lbc2rF~xnu^P1(l2MPiL*X0CATEL(fp--C2y(Op*s<o);DLmu{{>`?DuDPIee{p z&b9LmrN+<hyG9%pj=ZumU9LXaa1#eR^H0aWGH$+7T_s;aO*r;ls`tBAynes#SMDP} zv}P`;;dm|8_q(!W%{pHmr%P)ud+_ZlT-Y78banTuO``wQ-BeGosBP}J@xxl_<+h1# z{5Su#En{*^H($dSrmuJMYd4Sig1Lu(uDkr;xxhD`EAs-{uFW&}u(t7Ocu~>|9_j5? z8ArZzJ%1k794vLXMdJ9{n7ao`l5!T$4VFAxdViC=mH!F8HGv!Zl;&kieL112<Jc>s z{`)~;-_(^Bb(<n){Wh*xER!yMYo(TCOotA$@ME*Aw=*num(6s45Sd?mqwAc`H@kSH zr}2-{e*Y5Mu+uqZ{{k77u&pYyxMn}zHhI-E1GbItGv>L^NoNbQ{x~Q7>iO~)Uq0@V z&sDj@Rc9;q_l-ioPfX0QGu2Gl%5jyS4;39*vRF#;$HTb#Q&W3?>{Hw%5`513`n_9; z423dh!fktU^E4k_Yczas`@;0WtxbC>-_DaXI?1e?IseOf9fmaf!1+&Vy!%5WI!@+n zEM+piSN7pe^_BF>nm+|QKX;V*86NW6r<0JrMcz~S`lrHwrNSH1!up=S<hYQ2A=`fX zR0~Txwp#o03CvHTKi@qYWh(hS^0)G}*Q&q%Gw+X+VX*&@UHsp&wJ?9>XCbF&YcEZi zu0Qi-9G61ct>1A>N>}^4N}h@}Bt_0ln&}m?yf9j@CYC2i#h+8PS#V?BnOBMr4!3`| z<PAJsCbhJ0_F=_KOJ8ka@V@P1+9ATf*7M1q+Q40_yt4LL_eVKt<g9z^`}5t^`)aPo z9gebX`;xknW$UC%n|Z(8u=n<OqP;C*@7|^>&(2;;-lg&5T8E_QtWM2EA>0q5lRKtu z6M1!R+q%pDi~ii>ir+5Ab^hU}_s8-Ickey8`mp%t&w_>VqU=oTk18HzNwl()xiB$u ziqir=731DpDJ@Osy+R}xnY4a*=TUvIb#Cy>b^F>I>^*P)-5V~S9<$Rx%4$^s*S@PU z9a*0?FrU8l;p*0dAr22)wLb=Cw9j8BWpYo)dDh!ka=+%RdpZ00RfA(wnODDi7F94O zL~q{PonKe)ueO<Y+`vt$q&z9}kIp-l*B{w^PyBouv!y3x!rzdrU79+TnO8PtM_tg! zR_ExRSg5nm;adg6rMBkZMN_Bkau?piA<^gYPH=<sW%J72N24sH!ZRwOzj@ZlUA9h} zJ)!X3i>>Tdr)2h|-CTC@-oz(`i{;mb$seD|n&pzHQLV<q$L)38%Ai>N`B4u2;J?S~ z>$H=nal|flc>ZBo;Nnvm+xR~jonl>*Q?T=T>xDxzMV+?J)33U5@KAzaudRt+`qwWf zYPvcSC5(k<&gQD9(by3_FL&~LX03!7HwFKjiReeC>`U2_%fglVgZI&qiAVZ%dk&r0 zbozOb46E3w#gD>eZilsHeN6X{eNgbg=}1o5mGY7)m6Gpv>RAUjh2Ok#u4A8bp7Zn5 zMfdY|pFQcE_j+bgSW0X8rT1ps*;TI?pEohCJC-q%tGDDG%NwTUYvy>rH2ApWzmdk` z_Y3wMzVp7WxT0Hr@4w|Ap1t$m%A8O=*J}EyKIKz0O``8-9lIFr(`O`Cdg?S^2;<Fy z15<?0YZjk(z2EqVEk*InAMJ-_F3%4#m=rXB<LAEn;#c52x3*@+L$jxF3;qj~PFnwQ zy2zSj8~6HthW=-B*UAP&)|ZJVZ;+N`KHl|)`Sp)e3~IcaJmTj6F}i*4<mKE)9UVCV z`f*LBM|Ct#OE8{);C<15&BL?45Ar5NiKQ-`_&#~}``Q}&>+QF5ts+F3ez83fot3-A zLL>W`@`-N|$sE6Ymgmkh3#>`BF>cR);3+cEP|V=rNvCb8x|@E!kT|`u|ANmw+w97V zc?Z62|5)^Q!FqA_1N?t>UAWw@=+t*{bzxx0Eun|r{mYFf9VnNb#n<tvhizlt$}23* zjEe-qxpt@IRWE&6SQ2K`_3Xf(`;S=~g<KvzmG$q<S{`g6-?w%_WSU-tMy$IWugB5s z?Bu>aj(?&>C%DX(W?Y&e;Jlw_-`@WHE4MuCzO*H^^nQVdK!etXK&L&nPy4n`GPujE z#KOGkLESYu^;7MMuLKz12R`(8=&Y<N>fwL%mhrD-H74!j@2?x(ei0d-%JbSe<weQ1 zC5oc2J_xSwkAFP<{XdI;H(uL!o40#UdHlhOw|QN~yQuvK15Qo4ZXxvT9hc&lOn$Z) z&g~L2H|a)aFj=>*`fj6Dy5V{FxkX20V@gB$I1HlLZzd__F21;g=R=U5^n0=H>YZzz z2gh&U_;028wb@PSmid=vUq8z!G3C*W@73=s-R)%O_Z>Kz5hh`@dqpNg!?%-#9E*<6 z5Ncx%vHr=_WHy7z>b}gWH7>=L_n!zp3O=2mvZKeT$mZUKMT{vv6VL5kz1D%t-_d%0 zmUM{eoZC)+7&3f&Tu<^duPMB?@t5J^U8d*nd|R?`pAPeZoc<3Rqm<uWfA%qZb@FGg z%<@)t*3)st>!O8QLIjG}`8j``@Z?dayR7H8L&lQ!N&n83PuZ^U@#?vzY9ZU^JW-Fz z?Xe$29h)SCH^+DhEeMYCWPX(5!pj+YW@E~#tHzDo+l%#-AHS@qC^meTx5^{>bN7qI zGS7|n&6>VFX`h1O!u`vA3Z<%UZ{GOn;tui5+t!N|lBL%_QC(h^QOGfqH%#>H_7i2R zc5(XLmgf^c{rsg$`BE#h8J~F<_OIhCINRLxeYH>i9rH+Q{m2XFvV`Z@Pp@e*)qRq) zAlm-cLDji4=V=tWiIkt&`)f+&wd_kp+1hnCw|0NavNqz(`=I_``ae(I%hmREJ8Q)s z&%CL8<f+M&<pGupw|{%H=|G}N`&~=BqbEhe<&Mq@THD?kd{ipk=61)m!xC$Ds{ij> z-hXvk=(5&JdM!VWSuOvZ_~_L%zG7R(<ovnL70DlO%`%#6?X<Tv<>`-dE(wFpOA6-S zR@`Q_wQI-bIeLpWO>6Ld82rm~*+cis(U%)eS%@=8+|G+NoAa{$m))ZOC#7}eSD%?~ zu;IC2!`8h|wye>g(^i*O9q~9_S+#x3)Hko*+Ef~~7q1mQKWEEkQJy5Gd4H6%#3oGt zv2!l(=Px2`y%kB^7RzRD(ft6LOMo^`)wh?c9eJse=lk*6=KYEnvp2m7Vet-ZaW;Nh zzI=h=<6PF+nGTan!!Fu<o8n|ty=w7EjdWw%Rg0JnZ|rPMv|#-9IdVqsx%V<mzpuW& zZrQ$;*DB3GLncc>qj}vF^Y?EB4c~=1dF!u|%s+cWwzlR$lI>!i==FP-SW1)}sat7P zbG2MsM%8mcX71-pK8HUoJ2tm#-HtwagV!NFSvMI?71zGAUXdXh_f%rKy85jfItk53 zIt`~CRu%gE^yBo8`~P{@Oa7l-|G2)({^zsvv5)-CH)t6=ZS{^3?l9V+apX?aq#enB zVrDXE%;A07<t2OHaLw=I*QdCIKCm!8{Vn5y^|kaD|K8{GC8Tlko>($T=v=N%74v>Y z?Z+3ovsKe={9Oy<J9B<MsM`GCkb6_O$HXPs@BR1cMyi{JxvjVEy(g~47?!o*k;|XN z-7>$U)~x(q9ko3_?vJvO@VTW&tgXCaDvn5|w?uv1D<gF8RMg(-7U7%IW~JS`>`^AW z(e-$s)~X|CyJlG%{t9_5`uXt;(V)lo3_sosKACmkm65xnR^;Q(G|Txni)-?a27X)Z z#%0ZYeWS!I-!G@X2|dc!+BcVF(&|9AFcIP8DbxPME@<(4fBs5^eJXoTL7q|NYEhMc zp=QVa6gs@;e?K|ZqyOy^wpsJv+vXd1t>RYd@qgm+a7Smulj4*Aw{id9ZT(NUqW1S` z@wgvq4=05lxp><p$u0Vz|MuQ5Ii);rvi)cJEiTHRp=aUxXUUpd37KEqk8Ji&=a4Ho zu(@fTa7pL-YWMTn%ng#JJN>TTQ4dI8f1c6h{HaGLwY~E*>`aeudp?KDk3phhh2*6Q z!-+FZydH1YUVHt{noOU$2QzLd#H^gnv$*Zk$Db27KAyWy<b9=&ma50+{=+uAzLosz z*#9~H&;5_q_J5--epg=*SiRWz^)2tbwvD$o^&i{&RIvL_-)31oWy=!5Gt2(+uD#UF zcgcU@%jVBwb$cI5&U1RUEwpO?!XUesKUOFlwal^?`F~FA^1`ok)Z^mr<sEqZ&m#W3 zrRh&zXXDBfa)Ey)$U46MeWYK<WG0(YltNP4i8Ij$@88J!!^Lc7W_GD^+PR4*bH2IF zH<~v2oej6o?Ul2(Tq<YsD=#m9(PQRqw@>_E&7U7~u`8~qUObb1=HRZGZyokIo<Hem z7ySI>;*?@r_4HLfZqe5rwsFq*BA)!JXI)W|SdH;!w)Di<mnA!Gs>}Yf>0jsn1zJ0H zVEx;Ie;-9y4twtpTqz|!bBnm)x$dL0d6sV2s`d1x%z}QIo%$ZG>qI|yF0$m4+7T<# ze*WfE1LxPL9XQ=4GiCWq{9Ezgk!P7tvT4Zg$1AL>x_|2g^;sPgZ@Pa`?!V5xV}eHB z3)r?SKYZ<(-12#xt5?XWeA4&&d@1WxV@TOE$<1jy=f2gcHC5(cwx2nCffnnWMGZ&S znKkXbUs#pBv^U^GWitDknYLM1;<6oEo0xPqdFYDDIh?PNyMDv$)6?nk54!c^-QC#c z@2{!f5*R2`@wMCR^6d<k7J-u@ehYd6*|TaN|0$c&6z0yQmJpp;vZYoi`^~!Q>A{SS zkF8_{bTh1lTl&`KTDM)=D*Nh6N1KM&(%HZNn@H{3=<uW>ttnOb#>@i-nU|vltVO0z z+IA`NP_<s>t&%#EcdsjUtN&dfcqN<NBmUOCveNadPsM+qCNLo~;;;CJDEDixp1qpE zS*7|`QtZ;a7$+W!<BwLXGQRjQV~b%)X@1lBSF(J4A6?&t_I)qEXkuQ{a(>#!woiUG zOs_gLvQ~vh%jX=uvU0((xChQ35B*!$)>ovq^S~|%$@67)>HPQfgIGl7Y*Pt$e}8pq z`-$5z3GICi$6OE3Y}<X(cGdS+`?^eZQ@8Ayd7J6t&%1JdGDQbiZ<YG!9{9T_`Q2`J zkqe&p{T|;7a$_*@(hxJ9bX)Mz62ZbhQ-Zqt9v$D?u}+=+(A&4ye<bh!^!#J`|0DZ* zZa-el;_ANK^Zm3BtJg9-^-x)I?xoK;DLLEU8Tn~5mm6n!TP)BKlr+D-IQ6=5dd$|h zb5Gfv+|(Q8J;$I>V#D5oCb!maCwOj3FLSzoE~(Me|DwuA_x^5P<=fMoT05N9b8e3^ zcXR!IX3ESDoH3>O`}Rw2Kla3C<^C%YdtcN%<&6G#v$C)1T&458&+m+%Glw3WyNPAj zv=b|yv%2fEz54mb_TBmY?d_M}$G@|W`|xey+nsMO+_`RbA%IQHe^p_gVS?eF#6R*M zu7<}yI=%j0jGgy|MQN(hWftm15|6DWmTecYpTsz2!+SI5ICklaXPBO<FMeyW^CZ`G zMT--KZ%^+CIQBL9m7ViPPMMo#Vvj=QW__}M9$4D<?8>)erjt$_aW49_oaODpkGDAH zH)coLTxdFW+R^7`z@I{k6@4e`|9H7Psacm$VRLVqvfitx?@~RFMc&)jF^J_Cd@{3= z*imL0rx$uU`*|2|^68zeocH`5aL#xBw7o=O=Bc8U{8KVsDCl$l3oW`BP@|kDD<!Zq z&D{JqXhGTq@Pf2oRl5$FZ%=odYa_Dw<4h}mDG8Hzds>ud&UCygIAMC_`)Dbi0`J48 zgT5OmukM_(xa)FY$H(6x6|)StG@7yA(wkV+vdQw_KhV0&f3L(RbzYHH6fk~OTU~tM z@#V=HXELt#o;qF@@rvE2a&A}R@*1=5#Rts772TWpG!`drOz{yh|L2!_cx6+tZO(G8 z=oNFDI9I=jPw;rC_{#f*-pMba7XtitPk&?Hn5${CZq=gi-S+~%%=zte^h!taxBc_= z)lR=G39QKf@a?quj{hGzE?=&6v$$vbSMT55{XgX&zPrEwu>GG8(iOMfM=ukazH03x zub<!7X?OaGzggYAVd1q7buIyqIIgDdhnf+S9z2_S*x<+W`u5KB$2$&wc71p|XZ>Y^ zXL~M7nu_ew&CZ;$?aidf$rHKXappc%KE9}=Gq3$rua;2VUWN;+4z3gK_n#JFru?$A z`BM3J)%R()XPej7uiDl)JLsH|(M;dZ;_Cv>yv&;GHB)Kd_G>9e-fPKBd42Mu#iW1V zYvxTZFImF0^uU?D-J)}MH95X*-qti#b)#?1YzuYwwnf`n)`Y%}{<!H->9;50*&6lN z{MT=b@juD%TS-P}JBz*4Y?kNKPh>rw{%K0Uft}&8b3!LyTw-*>cJayQS>0!hc=ykm z=rP@IHPceRiw)*y0<yQ7FJAS!V};e+W8n`SZQ^gTbs8CNo05EP@kJfc|8MG-ZOBgy zpZNcr?XSoS`sdfCsdZRyFI!L^P%+P`>7elb<M01|dH;C%{l9#EziSUAJa~~QwsmV$ z{G)ExoSbD|mnUu#-xE_2*8EL^_0B0~FL$qZq5LdP%iZTMpR9D@o|Imzd6WNP##sf4 zy_|WgJ2D;#d(Hc_{eAd3mrJWf{+2#eJht`R*2_6NPp<E~x$L>s_JfOT?s!fXm}h;w zbk6%6?pT$$MEzK|&um6V?mkYi`a1Q@iL1^Q%ahKQvxP1=V(`z3Ti$nG@k7UCZ8zEO zn#S}k;_eFlA}^z|KiMs|D`W9zbNINd;qSvoh5uij-d-%@%;(PdREkSXdDFFZ-9c@O zBbj7O@8@Q=$=ehbpZ>X8xJJ|Dl%=1{_g&|c3Jy-*EWh?E(`nN{WmDx3Gb=B>@_Otl z`e?Rq%GzF41BQdH9g{7LxsP#%eSXrVt}u80=g()7Tr8Wp+B!G4gkR;<+U3*tdY9P8 z!Z{hHeL2s{j-Q>C&p)?%{}<b)#Dk~Zc1xZ$FP(Sml$2PVpoMT`hQs5cNBc?-Tqp`W zDSgbsiQnURw|k*m-pdZnybHofSzTLM&)@Ex_u5giy14i=yhXe){{6kZ*7yG%GM~QU z>H5HoQo)IPGPd~HX81SrEh<o7crJbA64uAJE}vMqX_J0ixKQmrec5fw44DQ8y-k;X z@=6povX=I3tluXwZTV&4ygu_li-K1YbA@b<Sq3ealb`P-dF4y(x5r=ZZ7SDx{7~b+ zZ2H`7HU3YJ+{ik&Uc_IEEhk?)HDlF|s5hy8`p@STB`+3OsF<<HsbZDQvzHQ%hxg6e zBDA8%r|rzU6$_>YWH#>MaQ0Z7R<yqLYv~rF=wt2g?GxrdKehkRYyG%~|Nh$g@%R7u z@rCbx&G+r;SDw}g+WG&pSX}&@>3<xvl9NQ#&OVVhA(J#yrZ+CRkbZ0CD+{CjW-Pgl zl8H9iF)=Ow-hSiS-oE{F_wm2VdR13azr@yVzw}^|+zj6XTDyXmZ$4*`akT9H-s`5% z?(}Q_5ESQ~79wM|tX0bD=%iD-^>;YbXdXRRz1Czyxb~`DO<(6ootjmY9iAbid3K{( zwdUinDJSl);CgmPT>n6O=cDwMAI^R^TCKV$p_V7YX1hACWy$W##`})Fth8e1+MeOC z;eW_9u0Rfb!z)>z9%^*Fx9V=(a6x%;%nzvzT3NFUL%$@XNA4Cht$y`%t!dQewKnQ` zQl-Yn6ok+DCA)p}shAyj^I1iu+SebykMymsH29_Ua+BVig>zJny_gVw?b5EP8tvsz zpM1X49rMRDQC!_gK&kyz@gbH&@>;9b><`qw`qxCSDomokc(Y}>`<30EU5PF`{FprJ z`U-aOELS|oU-AFP?i=%tZQLe*sj|YW(&fX~Yg=D>d@4To+-B+@%Tqn?z881epV_5- z{H3tfp|WY`e}13yEo{x<Z8h^Nf-mg+vP<@|XX4hLrwi^{^fh0&%IC&XA?0VeWK)yn zixu-ePb-{s?eOYT>_sZOKP+$A80?p|MDnb4&yT4!MzZq_eZ`M^U-mllenx?Mvh@Q0 zy$cTa`rYaK!rtGxmhH|x!5S^@6-%@C`-ON(_2(Q~K1tU1M!V<d!<B;B6N+YMUimyJ z<kP7PsoNj;jHUBSJ{C;e|Nj2{#fASqRhyTzc`)*2o5-&SwkVQzExvHai0RV7X%Y6H z6wYbJe``6l@59a)xeqENZaA{9j8^!V{ApoXPQ|I?W^ZmjP<-%q<5VWq|9qXN&n%L* znALZv<km+G=TGdfLK0rTwAeiJY?0IA_)kpTQ9LtPSDd#k6Rz}`X=oj}S@*P}x?f-T z`n<<KZ7bvoGi<8v>2I*LkE=K_`9Nm&4#U-H$5%}jca+vx-E{oT>F;}Er_5yZ59a?= zDDr5@=HPXg{U%Q8n~?m->(t|&WhEZRq&AiXubw=`?fDYX|IhC3&X4nB{LvWCz9+{1 z$LnX`zQ*qmcvP>w$Tew2K!<Yc4$j5Pm24u6ZCC0ATCCbKdk%v`tMzKB?Vq@Q=HB8x zk-JE?Gh&y7<APJtx4E>w)mS`ucXjp5X`vI>i7a{icjNazkJt2_ns?&Dq>lld%N!Oa z#n@Pi?#ogLtqfeJ<;1KN8^`76%Gvw*P2n5OgoL$^S$J|;eWRCg?>RJ~yLHtG-T4dW zJ^IwQHK}^vmhvi_vtJCW&G@w<vO0QS?{B*zzT82paOsb@U)JpBWcAO@ntj`2bFI~U z{l_~j3iX&CoAlJjXudGIekgFqgCH*NL(b3R85pc&MKe^pS3gML%Gf(?oBPenV)MQQ z&ir{T@8i{v(?9C}xmeHn|H}G*<{u~L??1e_-d?oVET3nW#MLvG^7~hdyk(MSfB0!z z^2(cu+O;~jrf|#bn0G|iisALaKUIyP0k<=)Za7^u*W$V!C7sgysn{}Y)%~75%@_Hf zDz>zLn78Dim)k?@r9Y%2Lho*|4_6iSp5oHzq_sj+=t$?sn_gL_+9EPCORhf=-_`Tk z_<3K8eByR}fyY)6+5Sf-YgNTgoWy)9(q-?Z?7u(w*F9Tp)KaSF?0A2N@3HljQ_9s> zcJ%xIZta`zS1ppdUS#1%U$@*8KGVaGV&gug{M(*uG);Ev-%~q$dm|?O2(;O{xVP0= zIMwpo-mn=v(q0~Uv1X;3seZ-r$<dCSy_`GSHf}w(AX-9UgWgZ3^<Q5n2VD)gpKkT5 z?qTiZ@*N-S`qKN#`&Zp~=lOo`+LPI*9hwy$>~((6vPkaQ?`>ai%`~tzxwun4$}R8U z@14gh#ddq&aFMF~aB<?tuV21&JbEblFf?P=2c3NP<0evm=Mz_Rr=1Efe%H-xdu^F) zQ^Qp=2me{Qi!ELmt|@AI`{@gF8h@MU(YIES9_JSSH+aT>GhRe4wQO3aVb~X~9lq+b zb^A66FZk5L*xbon_|0l=OsKf)`l1y_cHO<p_xS(YnB%|O*=s8PGoDRg6&JHu*VwsF zsrb+<<J7XuJO|m#nYxjmr$5xOp0D@+TgiuzsEW_-ayzd-cIZ#Gn$SO$E&k4)FW0B! zZxhddcilJo)Ngl#q`0Csi|;w_-uOS5qr1)Kvw!p2FH?D~IK)cUq<^xuGTHy@)#@ph zZ?DX9s}R$!`~NWdPW>MJpEuMmeCcG<-SxS`xlefYnI{!F4+Reh?U{Z4XxKaj&pbnm zwsr4p)=j!yx?+0%R<?&3%axneSG}0<tY3cqx%+=h_r%!0$Uc1fYx91+Lr={OFMm-C z+<Z+&Y_V~iM-^|GxaiM~2BzMO*2WAODp%qzeEHGbRrq~rQ?J|2u=|OLJ+UTQQ!S4t z>D$Ki{O%3BbaJx~+sn`IXWyQEr9Rkjwfm#@a|1&Xd%pH`E5+^V*`B_I$MF5e>BpyY z>9eN9hh#fGTq{_y#VFlJcJ;SK|BG~1=zJ2n8&btGP4w-Kn(rl?k@h_ye?ISgaK7?| zgi}LVRg_C#gW0t;`-}9q_BidER_s?l|M(RiN7G+BD{H%F?>_8$*3$R!f19Zfir2P= zFWES8QRrvUNg=BuBy{zb%?)faJ@@mGfP-vy1efZ|gJG$PEq4X?fBEJASpQG{|I9!9 z|6a{Mrhos>#L7jEmdOQ6cNG0&mE~XD{kU~WaGW+z*K|u>@h|T<Vx*Wdo-WJ?y?(jc zXBCr6c$3F;@#9vte|`k`R%oWjd_Q)%?z8ag#{x%Jw1=Os+#Yn{T;*1|1lQd<Nl#xi z%`{oXus^7cceQfs_po$9?cU&n+oHHXdAe<#VO1BG7W7r4qJ3g+{^!fZ3)njPrhl2A zP!KskXwHrMbCi{<`J|qFe!Y6Dc7>YJ_mEsy(`6ZcQP$70!;ejQvV?En$B+LGnft9- z)GOCNf7bV>w)%1N1ru^2O48@8jqOX4TPWtXInzWiQ{&nujg2O@x{_=^*PXPuD<agH zzSP3It?|J`QT>BGf7t5+9N%$XwG#VNF*lnpl%f8Z%S(m_a&^wG$0jHUFOU9U`6<Uz zGc|vC(1CRA3PzJNGvZE%++EUXWvO(&d_M1;DTy}9b35#GxaYPWwpqQhzwDghzV^h3 zx*r_ZY&t!k?906!wvTn$vEX+WyNWDdUYimjbY3M^>d%Z1hxjIQlu7^bY0RH_<0#Ks zCPhKtbA_FZuVZ+;EsRQKb^qI5uiQLsu3~?s%xrbbn>{{@)2(jv+`Cl$K6%%h_fst9 z7pz^|?r!2c^}(sOmo2uBuezSwSNpr_(bMDn@`rxt-@12!C-Hq*nsj*NqEb!YqdZ~H zS(Q&|$em}}@%(hiF|z{`r=Hxpc~!ikk7f4UFI)k_z2#M_Stc#3l<KzF{#+_fe6wn= z{N%Rd{~zv27sxJES-rVN|6i~{`hoW1wd*_NWx7wte3JXgo4VlTw@Del-hC5m&()r# z<-4OmOx*IX;HrJ%_wQ>s7tK|xDBaz4Xm+IK@k`gOZ(NFINXlx-uu}V8{BYy)!$w&u zD&`{W1z$ZS-F_Ly-oK)3wnv8Xhh&UCU&HxFU0JhMB~NSElC7^PxlF?4=iGnGj1GVK ze^o`}TfE%2t@T>DnooK!)(ZYvDf)XeM`nC~f4_0p+Vus$nbb?mi<vtP#yKUWv$)pm z66?x*AM2amCUO7n#M2FH9%M*u)F{~Yee?5+hpt^XB^qDE^`$Go<Coq16>2t9S+*F& zmn5!UH#bmzs=GqAnBunQzfQ<#@7fVzV{~?@?h~1+j>DWEJ{~^&r{?=JvGVnKNfN9^ z>{H)wVO?S`m6_eYuDd<^M%yR%7_F19B6tN7GOG(;EttA$p~n9=54V3P|NpnX<^P}m z--7?V`O?4P_Rfop0Zhzd58XG;;_5M-RC3DrltQD);e&$9O3GY>rMcn@w(6CXg(QDG zyy4#U#a&W+c8a|_-F1xHC@$vmzh9A6jk6Zp`Ym;Af0eyYD6s6>sV31p?YhMo+pGPS zW-QtlIDhhci@w!{3nnfKTg~IPZ*JGbn@;O5&MP)}!MMBO^6S{>jLwP4-c<!LhMA0t z#}AhzEQ>sSF?w5Qx!;UR?cA$++ZlE&xwg)wJ?&fg8D;l(mgfWBEo0Gm9+A6x#)gv` z@s-KD5@KvhPuWZV`<OoeXx^GTy8K@PBpUO7rDqjhys+cjlu)<ihYfa)4HcI&FZlh5 z_>?8B=5;!E&BS{rnh#A#3A8!4dmC@h>Q}2+_`a;vnCUfl(?q}g=Q6!3o^~j|oK)Uc zaCnmI)P*;7{S`W%9}+a~`ID((efj#~1M`gTOYC$Njeb+t;CFMI(IT<q3f#LQFRf&J zyX1i}o9U0mf>!#!I=0l!$`-AC{Y~6^W`=^fRr6Q5s=enra%O*?!ds%YD)G^VWw$3u z^F{CQICr0Cuc*R(LnFDu1)}|z&WMTRyIAsVZ~eb!rqEfF!#f2RRR8^DdT&pq?d+ZZ ze{}H6zrXmS<7;fp$LX=`i_UGGyr(G3E--)lo*9$$w!5+9->Qxa*Sgqb&k*x!Psyv@ zACz{V4DTzxo3#3g<Z6b*w+v$CYHL34OTV`At4_7FKU;avE_d6I?}yg$xie3?9(8KP z&HwX+=k%us9G>FG(Xb>qEiAI<+qbK+mj1U41;6IFaU0JlF5JU<MKfM_ds+B{XV0g7 zek<bev39j??4;6%IjX50xrdG`ZnZy@$nk!0;mL5`weH7fEkE~2!>afuo5+R=O@<$q zG5XOAcFm{z^5bJ)d|4l~fQM;zTlKru#fqOE)Q2An`?#+sB68WI-OK7GevRXnczr+Q zTTBnLm-d#!jjkO{>Lpbnn@xmUkA8S{RXW2(Z6B9fvGF#>nlnz`M?W75p8Hi`;i6++ znkNrVVf0hID0VP)rGSgcv5T5tcV3U&E+C+`R3TOLZr;}3g_$*?v)7txSQxbG&;OmG zwIEj4k$1M2ew1_4?yLMMrqwxfz9jWW)K9-GuG7K6c=@$k)K805g*mJi_hg>exvbDl zock<_X|Xzgw1|`B6XTfV?sidywdWUhzspn+GJPfCv@X%E_z?5Id+-0M)ji(+UvHoF zf0q8|{o)%d`CQdmtMb?1yin~eee>40?aLS&#iw2^^^#3AKX-S}%TF_vw#R++d&e2l z@cd})`pX_#H+DT}+{N3mzWrC<A)8z5r*5277db9o!!D{jCFqe+n!eDJ3ai5!aw%Nv z4s5Tww=vJT>+i(gV>hP-w63vPu_CmkVCQqz@@O_`!3}<@vbA2nwhA-#mA<dM{JrV; zR~IR5HUHTL>(zD~+TU<D?E9=|skyArSLb*Cbp5=qF5k-SZ;t7)b=3{p%_cp!PSm}y z{c>uj(o?J6|97lkZ3@3;vG0sf)H40op8o>(C_dl0q(<MbZ*PJ2yqiKtzs*zQJ5=vd zwrpYS*XSKtu8&tfI2~7UVPmoDdR9T%`#a{V|Ik^mzR}QFQTnFUuk#Df%+hZSkAC$) z#`wFvaNUySdmjWJFBP2kb$#~{U89^^eko-W5BXT>&3j?ncjDKgg$xD1WjokU@e6;L zXK-n)_gqWoO1I>FAGcnfeADcH;gvAnNM4=u#W{!OsNJ0XK})~x@>Yw!Y-uS|eH)Pv zlcqg*dgo>1#OE>>S3YcHUvt*5?`QSzZ&zhrwRc~xO?kg!a$;aj$+{<>#BSTZsuLA+ zoovlh!ZlM@**V=lY3a-}i#D?IJ#yJtQ}@`6!T&~KO^k7x&y$l}FDDdzOO6t6Km4q$ z`A+)2B>|Jp7t7pPl;Rt`PbmJ2_@BK`?rwf-a%Aq>V>#RcvayRb`_3kRczZVW@3xW+ zXM=fHyieu+F28@aJHsr~{jPGRmW7pz5BeWJ-B-lq^3`rj-IU__jeUB4w`+8+PujBf zN6`JrewSYw|Gzc+{?#%mXG_^<0mACr3Sz3){NG<}Rr?z<*b~I^!FY$?_vP~aQ(h-A zO?F$GlV<!bvb&?HbAlX8{kO1|-LFbivcjbL&Ap|+rkJhq*}=oosb;uV-r=_N)7USi zLPtvil+t4O`Q_8Ql1?7KBV>@D^YM#7+w$edyJnQ>Og;7D(Bl9}hDfCyKN9#iv8*Wm z@N+Ns=Cw+BGIySIvq`ai{?a0J$Mo#HrE5=p{L|O9g)4Qlc0}g`<B74B`NcDH)^>LG zoPECH)H0ponY&&u@Vc?^iEB?_tG?*f+GPy$>h?V@xbuspt*JKL^!fW88Zy&XKE1VL zOJc*4vxisSI3@A?(-Z6B4NEwuuesfJ-X<h(j%-ckyF!t_*7h!?cf3V1uNdA)cRBev zlFMlN#n}wUxaDH!FX(Nv)h^e+VIQv^m%De*xo_(-mWn)#v)T6l&&@YU-Us*2yz>9R zrnc;hTLj+aZ2cA>HaGg>@mI65W=!C+Twj)vvmtf8lFNVIqYLNsZ|OL)GGfnRsq{k^ zZZ33wc=Kdll)yzxEt8W+_T9;_e*P|;?d%_q=d!)i4PO-Rn}6ZV3G>AlmwL=xc5&Ip z_*VX6g_Rph3zvSj@-yLiVEwD&OvjC~TlI%F1a+L>%l6aPratcxd*b;=^{hu^ls7kj z`eFKF-&HfYX{JX)6Zh|AS$>S$<>;@qFBD&N9qSYq+@KM?{IL1n>VtllA5HC7$lSI` zQ6~Jyge?=NZi?*KA~)~o2Ay7qchC7ODi7-aoTKUgApaBByM?OfHe7gE=(a4}J$z04 z<MWKAQpaWDF9hcbYCV41pxR}vJ^9_{9r9Yc-Z7mHI~93x_V34?-e<ZVyzl%M{I5&+ z)cK~zo#~5vZ9kg!9$xWO;P)BneGb;nQr2sXJhq+eUdz?tDlh#r&MhTbru|T9^D9Y{ zFNa>Nx$^JjiSxNqQw&>ATb{FA60!a2vn|&+jW#c;{I}q)^QDuVtA%~$_Ok0lf86m+ z*uB(RXs*O>nbSW%T`j*~yW@qOw49uOM)Q2Hc<&Ym?MtPn{+1N^?B8~?DSfM{U`b-D z&y8;P>UlF9@9<Tcy!O)RTh<nQqOYdx(4UYyI@{W74o!^jyPEq+D^Pdw0hRdjPd9TW zt9vy3nl<&`P5B*lE4{0v9vl_Zd05Wozf7oA>S@55{r<h;Qxz}SEGrG4{qlGD_VUdI z%Ex#6|Kh*laxw65`TctKtAD%Xyv<c*@2mXXc<A4?<OkEXebU+HcmHd|p#}YqHgOf7 zTJ)rIr<*9x%w&r*KhK<r;;5;OzIsjf=|`~-m0w@|NY=dnwdk+IdS3nO=>>bGubSL9 zZFbgT*EndUeg2)pd)EG?Pvz<vE)>Tse;5^a=$ZV~lgVqB9G`#m?<(G7=daY?JlA4& z?y5qTt@(@_9@_O4JNg%}vnuS}wDQZI+S!s!KCP^~HY|)uoiU}oURMA39bvcIks+UI zU+;V~r+kuURq@NjwMG&5Ue+v~aN$O2tKTc51()8M+JvfWH#hn&4D~x!SpD1Kf32>U z1MB7Ln0*@iVwQ*exo|-#@1mq|{bsWRt~qfgQ<l41wskx<=UQeK)yr%4>R3?l4l%!E zNtZjeU##9Wxn2{NJGa4dvWVR+3FAA*<PHX|P6+u^e}vhu&YoLhUS-c@FXN-q(G1$# z7jJmbdpG9a-MEl@(mjt^+n3h|M}0hY+Nk1^bnw6Krl9@l-J5O&HeZ#P&UkV4V_xO! z?}hE94|q+y)V_|@O72Qlb#j$$+1=S9I@$qG_TAc5&l_?&?v&tz%O3Cf)`%obe;Q=E z?fI3Oq(q_ODn6^bOv^8G9;%C7oF+BbSu^a(;nX!3b`+i!*>Ni>D0{wFMCjK2an%oJ zmIR%7`0i(l);F<JNvVQY{?$tT<Y=8(5#n7p&5$v6G3(o&ne}sLyLm73ITzhKbB%bA zkjeKuQrnuYn|$$pcjo_$dv|Z!tx%b~@uETJKl8>}Pk+8wdwxKkW!mvqQH&3tXder7 z_>p;tGh^?pw`ZT;zYwn#fA{bY_Zq!f>#sapJ8LEz&+0kiHvGDdX2C&yhUcXtciz5y zV(Haq8;@q5WO!h`bjxOW*ACfT;(O-IkA7TZeOUMUl-moEs^jL?83mvEJX6&={jg|t z^C`P+^5wB|HX?nlt3DMJ%&WGkvE6vCcRv47g{0K)zf!i|d&t1Y{=e@=(1HS~>%zY> zj~<knz3?ZadfOAh4cfC3Mdobb44L((CMKkiTe8rq`px$BZ@AM+zMNS-?Mz8tW&L>t zuDLDqZVIleanCgUsq}tV5~sg)z`qHTHPrd0eO1*xDpRf9{e5~y<g8E2zgS=Lw5aJZ z2>c-NaD!`Zn`e4^N8HtB&-goDmrv!E%`e`|cc^3CCWF&bZkKvv_V});{`$-B%Y)+Y z&mSt(TGj4(;qQO)cK2+vl=OuThaQDw?|SiY(fR2-OabocYW^MJ=Mt4eeuo$7&z<e} zFZIeB-yf}clAgA6&72H$Q+(%^>#H-=$X)Mdeo(ygOr6b3on8f_SxGjF0*+mMv$rRj zTg|eg)^6@fudK&YlHQ64#c_3H-813%vCe3c*UqKvSC4W$Ieq1=-uW{+4VC+q^QXNm zcedy+esTRv%B`l8hg><L!&<h^@v-z2dwQ+P$A{lvwNtM*tgoTVL*4mJ$21Aw&r`3y zOw_#Mvc_!A=B<?%cSjXnWPPXB)cXB;={k{<p<!R8o_g&5EHY<R!87i#S$^(DvQl4D zvyZelKk(Bw*|wwIxaq`CQH3?v`@Fi&C|-D~)77in)aS(}`%Tec@5j}10&9D1n-5Fd z&ta@~E$8a|d~@#tU1m+z4OgCaZ?L|Vy~pwo$9lf_SiAcV6OPXj@7geDL+b^mf~|2@ z`daT^Z#P`@cV<!0%1L5e%=2Rx&pB_u`_GouzyI~jo{|;x-|?U8s_e_L@x7KF^MZdL zea^6QhDzM+se0S2r>jK@T$a9W7o*_vbeYV2(UoNxQJS(dq8fLuaNEms?ZeAOQ|}f( zOwE<dRGxdjO43y$&c#mh7)Mnm*WJ%`mW@kJ%(;Bw#a8vj9La4g4>J}oelA>pX~pAT z0;#iuOHbK`wr=fEviSGY=iTz9iuTXN1z$e;KW}S5*EI8)X7*p_eQPUPa_v*kmkH6$ z;`jaB@0j%-Wv==yK6i8FmD!={8cS=q7mIuUZ(G(-vv5%kJICgz?=OvPw>?o`aC_H` zuTSrN=>2B?(pvPF?Jd4^(U$*9u1MG{yAZ!=YEJYDvtLTJiwjed#bmksd%tA7y;6Su z>zcJJksi}Z8Fe<P_C&G=eOB1@cFl~UC#SA$zu=mbz&1r@^O8hycR}S}`_%V5D@<LI z9(h>nlY7P7he6#7xLWmYcbk=boA2g(@qMiOp4xoo`!$tyw>O>j?NvXt;kH6-`)1$Y zr$74YzEwzSIG&_do_BE51JA4T7W~nXb5d9ODgS(%=rjR;o1JN=KYsij@;TQ^Q8xPi z?Q?hM8-7-+*4TM1Tc||VX75JxchT+{zsw}I%GIYXcs+B?=VvSTZR<SpA@@~hb^rcb z%InG!j<@KCn5#~Cr0nk`<=7zjx1Z(8nIkh#=O#EF$lqTZ{;6+Q&gUlOid})8+x~2P zzi2&!)9;gUcQ0n{thJ9zxb<(E=>aS61#?yv&xv-jyjJt6(f4&(&w2CCI<cCAlfNIC zIMe>v>93LCL6oPT{^qm4=XI3k3YWU&Y;o!4PL2CXGD@}wQan!vEXt7cGJLr}ymj%^ zg!xljZ?cOzeP3PJCttm!ZMV_;u&PEe@y9dY@Bh!Yy70+Snd5S+1gBOQZ(_J`cI`b+ z2NT^b+m0{t?BVe&$zPUac=pof(<y779#Ht4%jl?<ZS>tJWA^Q5F;Q#QdBxv*YG5wB zGb!A__xzsxt6`4kx5)&{&lTm*UD`a8seO{m>W$M6AM@I`QK@`==Mpz&UF~$^=Vn!0 zYI~<Gobt{#-_>8|mDalLvK`mD{LLnKt#+RJw5I0ze%-GkT8=AY`f?fdx_Z{e=4>n3 zBhhbstG=^gukAmM|9{s1^Zqe)w|(dAw|viJkG^SC-y{7c;mNa~Yh)rae*7{L{Pj!h ztazYTi2sW8WnD~CGJ0IW+SVR%8)LuoOn*M-W!Dnd?4z5ywoDcB|8+ll<0svz^9?So znRk2Fqu**=dX|yvls|IsC<>Uk{i(#Zrc#&AOo{9J(%gg9zbE?{Jdao*!Bu;ty4rDZ z;*UA{mm+v0-mp&pHJ4A%JXW)z+LJdVt=zHqfbi#I?K@=8o!N2OEAl`Zx1G^*X|}J& zY_F}EGw<!z|Cy_Ivb~!){cTh99WGZpmA1BvC(Ig~HP+trlTPbR^_|@3=eYgGzQ%$( za(wQ0<n|qVd-l48+`DDQ3qH=uo^VchTO_yV9m^*clP^zgUba~_X_5b?Z6;H8hS_M( z%|0AbvTu@&VP%=b{>6ViUh*C<4cmU7PvOhyi4$gOZ<b?}Wx5<c&t&eI)~T<Z?N9jZ zm=(P3{FGmY?`^N`a4=on^n702>!kXYMT_Su*qu7WpME*SZdZ|o*t|(>Ve6EGH!-*S zNnTK}fAA~%;E`1yWUhY^?74GX>f?`tZ?4aJH@70xRcP(ptO;*<k68HcOaHjL=dIOK z#hom3`G0f9rJw%%$nHb&!(wa3Z4Kef(no6)R^I%1`(P#WokL0CTTBzrcb(fC&^o=5 zy~TY^e6bqK{>_umSQaQ26&W!wUF%#iy^8Np_uh#2zMsDO@|=-4_@z(f-{kqn&6DHO zTmCuMsk$;creB<KeW!(s`_Jg--HC56eUGcHIFw&kl=ea(Z^_i!zt-9HGrBkCENP92 z75lcQ=k2?`<$(*PZEq?#X)KriaX*Xe!O)-2=k1tN6#Dh!%PTt_b3bozK7C};&oeC6 zdNrmWD*fwrFLyq8@lWmS>@8E1uRojP^zF_PA1n4d!QZ1_X|&W-STa5^-WeyuF#qJ% z_un3G5Wd`PG2_d;7R#wA`m9T)zE}7q#Nhg4re5ZXS&U1k2L$|{suZ^9c(CK0ZpVf$ zS!EHCd8R!zo4CZIjO5Pc9zXuO-N@$n=iNW}+KeBbeSQ7oOs<tTjm`_Htkl@8k=bq3 zHzi2aQz_Z?Di23~i5Bzc+iRa?Tw#__6k(nI`{K35EX6UKrkO^Ce_MZQvgnmc?Qf}( zzDJ9AEq*i|xzebi@O^9O<$E^`ifp5Qu39YYdZGM?{NK6ebzcetYAt!@+psQDyXYn9 zmHD+ahvm?+OD6AppI_B$Gq~P<|1fLEB4vSn(#C#1&K#D<LIY#2scyDn<CWc}T=%hC zzhL*?mC8)Jxesl>e)7xiUo$601hTGUYd#bjxm@-2vUzW+@BS;j9Uge+^|}drk|dM& zKfLO1)h~0Y`T^&6v1eO~|2TwlU)%fg^sXg`p7l5}$!2_1(RCKTv8!*6CXa>qmfTHe zI#0=*U|4W$OXwAz1((9PXMFL0KJ&Weqa~AlUw8$`#ZFk0p;pPe?wALAihF5?x@C&E zy4()F>h<ia-yY85O_H7AdBH{^+-5OvNTgKh7tuMTbx-6EC9C{8wSCvYKf5nXHd22Q z{jpDJ@16B$r~L0O`knP#=>MDbe^3ATT>q=SC4BpS3DJ*<;WK>OmzkvnJm0aLF>bQv z5o?ZPPpYFeKB}ElD$V(B*81imb3Ai;rA)TFcqBJd^|c&<TN%e!sm|wLT>a>vNBO<k za!GQ}(<UF<p7itkk@-D!&m&)(a-M7W-Nah=RaTidb;gC08?M)Ae@;31t;6=h#$?58 zr73eZM=gDnyV*c{dgHN9@tngGmNV|V`eViamK9xGpS|)=tkjzr)RNrFs`Fb;)-a0W zMnF}cDPQZn#(!r-a!S8E<Ox(@IWBU}WY_m57tVb4nC&|zelPs3@^Q(fcazyC9&p*V zt(aN$^`2udeJ5?T%64;EyOp(O&o5r~>@x-LO?9R87!PYM^wZb0+sawH!8+dYs9@EB zDB1ofZk4(tg)^jf7{yrIaY}1T6v~}_Z~IcUvMkT}h11l=?Dg^cPlfA*av#zw_;<Md zd!SEbRd?#Py!{DNK6}o*r14qe&!QC3#O=;=-+%l&RayAVn@w9}UGg<wJh{U)q3we7 zj;+0KFCBE1t2l78e}CWf*PC~Mb607x#s6RP0?&4>(W$=svQWh9-2T&f&Ke@c^UwWI z-r}7Q*soD`>2yq&wk3b^`-m2gx9(@mZb^7CMy_9<)Y|r^{Qke1Wqz$a9ZDv~j~iz1 z;GMiNN>lt~L6MT`okUgrz=>=jyZ5;~(>p)U`jgASK&x>39eb>QZwL(tk-xe4W5ueT z8E2DYdtaVWy5cK#I^^tzS5n88mPER9ZIL?`W6BlqUhrcux8?ilh$UI4Lgi#d4|JGc zIymve@=LoLC)(<jKbrXR@1-XUp|4`63TkPeZx7~TVUbvHAahU4nf$cA3~S8|-XDt( zH3#awyeX`=YQvPE`vo$$Iri26()@S$|0nwc@9+G7{@JDR?)mu*>bI}{jO^w9pv}lr z^Qdi(?!Py)>lPo-E~sM*{eNWtlHWN?E<d_{@yBMtD7}8I>}$bAxyQwwx5#~c#>!aZ zX46>qZowShz3;Dy&54>i^~y{kdt1g6Yek<FId^6`8{gl$cIw$D#^;JJTl!?D$4LI$ zmB#IV;o{p%e9xb;evaaOy~EeKxFW2omeI|`)=@S&`L~JFWc}ZI`>T1o+JCCK`P!tb zapd&0O<JwKzS&BmC|~2qheykwEbJ}4^Vs&*1dhGj>RVs0dT08RyZ8R1s}IFLPXGV) zzuv#_|GWS5?W_8$o)+e3bLgKblc$2}^^eQuNc@xRa!tLF6+2^!sakO|*9`8d5r<YA z%e~pjI63qD*Y8tiK6lAh5)ZD^-F`S_o0D5W@xp*UX|L3W<*&ER?t68u+M4$=(_fQI z)zWd>W`C^=OXsi5-#3R%vbVKO(kpMpV^8HzCdYQP9@)X7%DsI_VxbvF-TE3;8I~gf z-;>WZZke{Y{7`R&@15Mmoij5_CPaR{DUkjxKz^c`45#^u482Te+gZ;dZtmgU|Bi>{ z(zNLl-D4IW_LBLQIbnK?^Y-xN;;HtBG>c`U%OX=13S?Q&86DfTvA3+h<Ca?Foh{e& zZtFH>vz~rce(c%Yf>n)ADrQfc{eHs7LT=anSE8+WVp|L=ee<p_^x?2IJg(ZxnJ(>_ zv_fH)ZbE^m$n<~j-o?2e{eL9g_MBO`F#mUch4Tx0lIBmzU8%Wf+xpIPtM^$wk=pu4 zb$^(ge|v{0Pr%#fCnJtNH$F7~wnEx8o$V|iZ1Zk9r+@ODt@QQ(?AgonKNQu9T|aHu zF#lw!)!qHpGI9U6a{t{M#BahG`K6~LXH%1Ya7L!U(!#g*ywoQ6oN!g}{8wPG>Kj*i z_|N+xVo{MMDRZ+7nQr<m4gHkX_qe3$ka&E})l<t$nPhqY9!`Dmou6Nm!?fx0<HFBD zGTx52MEtr_CLSuRPG?vXwDZBD-w(}xXz^dRn0YAWwwL5`fh!@uE1SGucX7@TJHF5- z<G*6ZsV|EYay6raO=FMwOLQOG`00IW&02{spTFc)cgE_xKNaOPl`He`8{ztB&hJ5! ze4n|*c<pfK4(!R8{Or*RnQt|JH5(q@^t-BU5Pj`a@N~YJ28$f8tamGYdHi#G<(>z2 zexfIAmuvF`R$R@Pza#s9>Ea1yFG?JD-w#XBmNSVJSQoB6;lEXFU8|clL#5v~{qrVo zjot?AbjmDC+j_=klc#L`MYk(X{YyXn@{;90b=$(eqj`bGu7a8UVe_0G`7B$q>rC3@ zrrA5+rqA^4bxnv0RC)2}R8Yj@7^fRWb$5i{FDntrzIc;2;<mS{_KRSdIdkSV$e70I z8+HBtyw~ilP0l?@lZkt7R!*N-EcbWo*NEL)kC~h|U!(l4*Y+m+o;kawz5k%|D{lP+ zVegskHjATJPd)iyUVfl_e?$F;@AZBA|409ix0!R#*XqjK^t|eWH&g#bNhfu-&hVJ3 z6sSM*<`;*VvmPHRV-<c>Y#b`QhrKdyn<U#NQ|&Kt@ktSDb*(nt-jkcZ>Ga17Gove} z^j2?t%Ny=I$$rCy8KUI|B|J0zG}$Xpn#wFzh}^gHY5u8(BBP6zM^~g<E6xt#<25!} zTao14`^oEFr-fkM!HpAVv(-J9j`?^bFwfj#fwStR_HLeH-lbo@O_O8bEf<qLQ>yfA z_QLGCCvz-!HK_-rZ)T2|V<6p9=~f?XZ+z2ErO)vi<E(-clT|$G8Mikdhz~DcDj99} z^Vgj&k&McFJ$;`4Tb-ppUQg+J$-rD0Am_aE3;V&Kbvc(R^Tai0MQ{86a>vwo#@>`p z<!P>hr*A%HU97+VN7B4I7m{D<tTTKcX!CQq{olV8=UKLkOB|iQd;6bUOXa2sU;3YE zKMCA=*Zuo9VLkC1@3!vsDPc~Nv%G7lF{`mkUo+#z|7(Y;?)?1masMy#kDz?i&HTW4 zS6<$|KTEqOzrF4>t>C>>)%#xxmvXb!6u4LyxXl-}ziIZ+!S%+U%{RAfcot^xO1^YK zh~5QX(aVM&Pae#g889Qi;_IugN(++h7CPjLAFHa`H6vnr$I)#CKG8GlBx^tQ?EW%m z<^6rhh8~wH)@R?Je{hk@=F1KOY(7sf%rfO~EWL58?_<Y`oQSC_(%$gCzIFTlpB-}A zt+!J8BW=@F_k>TpVbC{kp7tKo`LlvGYyvF0ozj#nR;xMH&fl=%o^^y9`xejRO3`9} zgb&)-oSx`(u~2gRrIkO{oxU-LYvD|dt+sAbPCrzZ{EC{Av@Tn6;zEYwb%%=ooUY!q zWc8V42lg#$_U}JbT$?M)67}F)>Xkq-i#Y4}YmA!rB71x4*H5l+OZEI0&FD3?N3ZNa zdEkyy9`0YmJrWMB|73ex>r=%2&9U+Bei}bEe^e5Q^sU^#&!Vj;z>MdVhW;`$yC*Z& zWVUr}*?eJ&>fTv>Y}$7x)jiwm%fp%WfME@*z>5u{{fgo*HB%1SzAmg(bd|1pn_yDt z<?tiT?NHBKbEfO+@47|zWEWm|+?AN#W%^=)uilF_p-xZdvB}EvCEXBsC=k=IDb3#g zk^H}V^^N!c+}+>bzI=YnoqT_Z>Mh#m8}{&+%-p-7#ocOM%aSQK+{A9E`#d<*YIEgz zS>MT7mb~%H?k%pYT$le@?^4d?`x87%=NsLvS(w|rWwLq262<M>N2)GwD8BM9>Ck-% z)oE@X&bxFIyQjRq#QbEF)|3-F1;1yk>6^`1zJ6y}%f`NaJ$*@cRZiXF`@?*z(ejvV zG|#mjrgN*SpQ$&mH}gH{cx_L?uNk=&hs*w1eVG;hn9b_+BVHq0!%qvD{6AFJb!hw& zZA;y6x!i=u`<UTr*Do92HUIvw)7J3%l3yI|t~qyaIojmUTXkEhz;w~n&rGj3E|`1E z|K8mEkPXS)=?mAr-)zSqC}Zh=PQ5R=_xzLFXXY5Jm?yksu{*b1Rn678>D7DQhBwVL znQ(l@GMNV#+#c@N-&fHcYNsCe{H4_W+W&n0{PG8Rnv;a)KXB~bp2EZaFgoJ8;}eeU zGNob-scme=!Y%sZ`>%dwn&xnLPswbz7w6O7Zd3G&TNiIXcmMC#6+7*^L5sO=#_ayB zv(B-9XKuUAw0p+Cbvn&i*GpOWT;yka_~72sOYf(Js3q=s>6+s@ZTg>wx+#y-tLA#& zSp9-~*~4(3{F48F%kABlKV1H5=kc2d)`Wie)@`2QtSXW5{(HV-;64BMg)6<XL@Nt2 zxNh7Kx)6LvEOOTjk0*CSmZ|ER82xstw2YD4wbA;H?EObm_s*O8$lN3Kjdq094m)0x zvd25Gtuf>KXmdX7n~BZW3eAhY79m`lRQHNs3R|X8HMdr}D`oF`gTE~w<1=&aX>C`Z zlf6bQR`<QIqVR;y)!`2vBv&)_<zDh!bl~K-3oCQ>#dH7g-=hCm^WqNouE#dM3G(V( zHfL8P?_hE{*>Grjy{WC1$29e;%1I_0QkpU%uHV1M7Q*au#`)mG*0P0H3VC}%F3r1J zzwiCN-)B!SPqle}Q}kV+<kX|DTNd~Av@nT%k*|3-tB+IO^WxSr4vSwF4&Q4-w@v#R z7+3aGC81E{TjreqybEr+@Rck{5x2@@o&H;Ew_d|?M>l4JOKYm@H|>y}dvU{!bwV%h zoT@LGyJzdS@b)B$4R1n<I+E9O-(BiB|MTg`b2iytshD2IB|e4U&}z-9qd$!L^B;GG z6b78ze0?F$q$WjusnCg^cD?tvc*|d5Q{Vl2`TR#F{@(=-pNn`KS9xmM2g&Vz+^NF% zXJ344)Z$Y(@5}!05nZiY4&{i7-d~V;@9Dlfmw&j5ow)Ksr(<=Meqqx6@I0gGiTypB zKb~tVGO$QDy<YNWr@g~mAptE-yCccwnHzpBOnb&vZ)=qQP&(Q+xAIOhPt(e$HQ%P# z%=%tdxaF8}2}_${al^?@#-q-cK72O$m%R3~$TaPn$F3Bmtz6*OlMzyO%I4gz7cS?c z*dJwBJ&a#k9C2`Uc*CCl%(r*g6h22Ry0Lu4TZUKcIy}!$3gsn)A3E=w$fUD8xaXVM zwOos5w{9FcT5#;*#01X%6~cigIlDh}XaC!I{YR2Vt(W8SkHxmfwU0+lKiA^8RXV<t zIqlTnzpr+l*p<w%{Hw=YW7%yjou_x`ezbZZSRiU6xMNk1<}8O3wZ}tmPq)9nr*iK5 z*w^#owtW3~xLRk+<M{<%`oW(2{A>NU$EF;crMgG?a+}ScJC7x@_b#8zqZjES^XuNZ ziIu%v|J^g*_AWSo#%*TbQJcNXw=G#Jb0dz6q0aBRp#Jse#c#ho{?y=q_eaaBRkOa& z5^uX;9W#fee0|>R7p{3*j~7^pfB11k>-Z`ei>m*@t26%A)!51PPyKbpD|G(pGwJRh zC)e_~maX!5xpBUy`(lX)?fey=zj>Ef6;y4X9Jp_<!Oi8%h0iTtx9@d$f)uZv-Mruc zhU-UPPMe}8C3^Jp<M-Fszx%b5C93Cglt;|J{rl@ZT)icYCmF^o{kzTk?hW^!$?N~~ zygUE?Bm4LN0>8^<X+|jje)O!3t9#Xi5P_uHbI)t%v9C#*&#L%SgEekx@1fOuA203S zX!n0d_L{RVU#hI~KD_dB>RJ||*7t8-e)|6Q?%PzqhcDl4UMQ_HrM;iOKXlLgTQ@hZ znX>)OV)m+<y06djre55dr}*T@(Z9!kGo0I|<zuUNNY<3$-Fw-W6Ux^IISMFO><hCn zRGRSo^evk(uE(!Bzo+(Gbk=&US)1QyKK-jD$GnqIWJ~kcoWA^0=gae*wl`A#{jA<^ zwxMzN?%5I2Z=KwZ>dVQ=>lGLM{B~#0f**~J>dUsr?LB9EL(X+Y%%aGpIk9s8ems<W z8*-+@tL}cEsc?YFJQ=--({A6k{xUDub;_~-2h-))?uz7b8tJ`%sv`0CH0RwraW9@F zysi<C6Jon`dBN<-Y205opGoLgn)6_~;p61{FLK{W=QbCAtbAI*cGu(Wl`}sUew?yn zdfOhcjwcJ^_U=17@#m(pk8{NBe_Fgyn|o@>cY`BkC08cixXQZ2E!vr_Cpr4IMo=Bw zg`0*Ie;+^2l)8NO_nM3IM8X?&+TT63&D&^qIb-H_wtKxia}=}V8h==&9DTXR^xa9b zCOw5)OjB-5PPD!g`%5A__=mOVW9^{5G5q}giv#kl1CB{or+aSbh)i+pu$kFx|KMt? z-RgV3OCRjA*vn-0U0(jz-6#Adlf>80Yi&Fp^?c`D<zM9sr@l3)xTRgNe@polzC#}A zvpzk@+<3GzIp^6K!JVfwjZ1eOe|YG8p8lt0%InX@mtBe5c6ztJe}C|^7Q=na;l*k? zjZ>!^dOvvgPQWJj-PZ7$dty<$_t&rZp1DHIUYp1Fi1UNM`u7!o(+>0mUN1|V@Xq3J zzr1|Q-fwA*8dugtR)%w!eA#k%;frH;q~lD#o7jC<v_EWUuUW_vbtgFX1W%ty-|Ua7 zG5X2&ckaZboYSqkZ!tGA%j@=)_4EAn{=DPz-}6!7$+LY2QeVu8&Rd_9cy2MP?njM# zAK(8y-Y>rV?z}CX64u?SenK`1B}WhNUt0LSznEct{C>8b?5S0+g`34~d}=zk7Vg-- zxzvKeJ@vQ78co5xlMkc=EaRRP7E4=*@lBHOPq&m^CiU;?^!S(rF?HUEPvT4b44!@d z_dB2Ye)?{mk{dPu3wG>1Vdi$l_1qch<4u2m+I+cxWc8VEpH6)V*rT>D>haT5neFDs zPy8u8V7GDZ*~xrue0%557Q5;xu;Xsc@l7wDx`u<6T+cuI^%295o^^*cSYGVyue_A$ znlSNKrBNS`FOQQv*Rw0kmo#2(xm8hUu=C&yIejl5mOV}vxz*kueREsTQ{TuTZF4M3 z#FxjpA)@@*>mUDkZ^IfP^ZD?hw#>+fzrWv)pYiK<kj$0`mwr?mJc|F*y8h$e@AsX* z#~DVw4@~=UNMS!e<F=SX9G2fqJbZedubj}^)GXqrSG+MO^ZD0;|2J|QyQCfp|GgX6 zv*-V}`9C)Qcsu_Oi+$~nx1TKd4_f?cJYX2=l4;oTky(~O?^VD(gZE92hAvtgK3*{R z7r%GkVf%Nx{&%c2xLoUC_;l^3qd#n1^Sr12EM9ZABqK&rVSdqpnm->lwwg(8zw$!c zLj6<Gz4iKj3nW`t2TO-6+_mz1JM)4pCyobP|JS;&KP|1f`!;LZ`hz7ePn9_E=Wnsz zwuC2j=hR1kwxozfbARc1bFs6axOhhP<N2GkQgRN*)XkdO?D-;t)qm>d5U=VjAMd_h zJ-dKu<NQm4A(0Y&ZQY8Ky_h$fiL~V!%v_@$YH)aU_oMJ*@}j|gM~r{oelbT;e_^6J z+m9W|(MxA--t}ci+vN{mkIvw2XWX%Zclw;qKNt1b+SoK@9(m~Eq3ZcF<>5oF<B3Q1 z%*(#KI?%0b?enF3x%K?n8(e;!yet!D@OWE$Lg~qN{r|kq-=3{-y~}ZBFQd)%XEt*i z*H%2$?mWLWUZlm-vF=b^*z##R!*`jmdRPU#d;eb3Zjy54vR7HZ)+OFuC&+wXk8iTM zc=Jld%DHbv=eIj&Upl*I@6;wwz8gCf&iX%}cJ{5qac=)wQ(og!?H_~t&aW1{8-MMY z;k~m=6%)@snXh2}>08b3L&<sX<NW7^MY?{Lbo;QqDn0D0pO_7I_SqF*81E?iAD%Mx zz|{(w?{WKoI!&8Z;G533W8Ji4I+D}Hdz{1C90gt%F@2xVIyrUrt^=!gC+5hn|8rky zgD%hKmkbZO&Tce&zkK3RljKEN4=&d=UO#JcMq+0FH_pw9^5?eh^Y^d5XrK6~r{vZy zGqo?)w`yy@KTEo>>dv>c{CgMQC|;g7Z&F&(-;Qoxb~oeX9Ny0xbw8?QiY0_GR3=}S z-oP#G(QbTU)6Y-;?jF^&`tfM{{kl1PkAJ)iIQAqXSH!n2*2t=IVb11<e~#Ix`OjYE z-DB8OpO&gp!+qa|_u`2IJ1zJ5%}utcc9Py?vgz^Oe(}S9UUu#{X6hqVrS^NT$Ry43 zpyx80AC(zQ{Z8$?9ry6-+t=NOwFfT$<ov$8+Gd`7`i0E>FU-!qzocj={%l6>{KJ9= zd?d2nk4v9wEP8b!tovcfP39_jdppy=(Vs<^KfZ1?YyG0aO})8m&d#2r$sOJH&ms2R z>F$s9J5F3b{@(uF_iwefn@USQ-z|S1G;i5sG0op;($Bf~=s8Zg9qmw{FSD8V`Nz)> z3tzPGTY6kNyf8KBV8eXZ>-!J<*d|k=bXd47RHO3Ki-p`aSBtOoo+z~Wd1J!y!z+zr z3(ddvZs?o-n!RqX1%ut<*Z=<AHQ!#o|Hr#S=j%n>vcq1=#`8Hxy|i0@@Xzv1v2CJL z?Vn7vDXdOs{h#vW*(!&!sPY#pbf08M^eS`8%ehzzCf<2lrLjTDcpAr<RHpCZ+9fWE z@87)(iu^WnZh?lX#W}vZ70JxiJyNVU%MD9J<Sg$U<xH~OpOJLl<Fr|8=Jf)ug)zTt zi|3`xH)}cTwos_+NkG%P`S%{%|LgtFvE2K~|C)X5?zT1$HqXDbz-abim)~;d=a$b* zKDUrZoXc-rSC3YrVM5t{4)^t@FZd_UO}shJQ)H<z<C<$RVpAOsUw+)tGH)YK+%5^h z#>5UIs}B$Vvfs>G$(<U}Kk>B6i9e3d4}P`QKE!EKl$#mOShqIX&+#0~Q-_nq=>idQ z=cjTU`n!4a(!GmK7S7%w5xQs2g6tD2=WK1~t_v)Yjo4=|vVWiY%3WK<X0!=vf86FM zlPq^`@8w|mhe!AJwDRA)Uip1j`c=MAq0R~4&TMi>)DTZx@Wevg!r*F2%-(b>Ic5K% zO7qKSbEA1Cyu7np<D&fK#tU-=mJ46&E7B92zr$>mt;Y3M*3kbB2kyvk@H;Zg?(%}! z7XGjE-9ChDywzQnQLx!)%W}ofC4mj+{g)r%e930zI@@O3;*I~#EXe$_J>-q=yPqMi zo^Kab-Q3!Kyh2DXG`Z!KI&aI`%K6z}CKMg``0#M8=JH9u8}(w!CNlqyGfKR7+xMEP zaR<k@Lr-sfw%%nM+tbl6pYrzUCofn2<(<!W?^QdspV3!cZ{5UWZy*0%AT70`<jsr^ z%?4p@G18gal#5Rsv;3Ip6BXFQ{M5zqv;e=w{rmQ!IuTnguB-ImJa?x)dr~gT`Q)<i zOv!gt>#bbc?k<o%CpeeURZD(@w3}A%U9)qo|F8c3t!4iC+k?!@sWaQ6e|~r-yoGOD zfmyWl<1mc_ro3`bXX=VC*sr-qnzP$@aY5dGujL2#bWAr~aEVpHZ_T04ZTSa2-FQ8x zr1bws&tsP!#}u3}Z*<;umiKa?WzWNp4?6bTdq2gf`jf?J!+D$KpMLJ)o6M%aCtqsI z#5&!rz0vtAuH?)0zhHg;F*9Z2!^hQUnktI9dn|kfO60#>-4UB?pdU5Uq|0<c(Cszf zCJGkM+hYFYPvMEB-X*{J)_?rgZQp6X<A3#!g8#a5e*TlEPoLA}mh~%0E8$%Ba=ue< zy{7MPzr0jdrT6j^Pm>S7pG;o+d&YHPR-+S39b&#VoLw-RU*2A%Irk2SjCApzLyLFW zPhb4g<v`t=-||I=ighRO-3~aE{QFeP&!bgp@g`@rrtUkxeDCq7x0%<t?pyXBij3Iq z-}mN5`%F>MW7bXkG@f_5zpJcCOp_4#?ZbY##A1$GO}d=3NN(--e}D7;O6XrtFP4m3 zcmCC`y}y_KKb?B>AJ^1pK_9%>{f^D?$>rGZ_(YL;^2w!_#Qi^b97x-vDj}}Uu>Z{I zm3x?<a+YgNjQBEjQaM}6)}YG1t`IH##~M@P|4ofQTNt4^|LAo6?`<D{{QWL}>7}D8 zcfjHmN?bB~rF^(QRHV8%Pr2iom@JaacYU2>;3riEVV}||f2CLEA9r?{==WRs+{z7S zz6qUMsI)Bo>YtgJ$CT=~PtSN5pmA(k!|~t8gUo6omu^$4TKn1Z_LSMe(O!ycx3)~z ziFC2$?J@fGr2NqSX(9KXavU#fG0%@bf8xLm`~QE--!E@oyq!5<x02E|g=fYOBezS{ zu3UHBdu5v^*M<qlv#sVVKbU>{?9<Phxr@Rs1Qc|xv-9NZ(|)0EE+zN%&nNf&>faAn zL@OT%m;Jl&`t<mHGn0RR+s*&U>-*y5+IdO4Go~zflwlFScXpTPI_|K_OZ>MV+Bq>c zbx#WY;BnL^c<D*+37Rk7OxKtscwW`J!zAulU3y=|#r@~Rjl$3A2ODc!Ij5W}jF(LJ z>+L_|_~3TQ!t<|IwD|A5^tP+nJN?v$)_n84-4oo-{CxMQLi*y;iDmYeuHIeBF{4yv zH?Pc6T{o$v?S=Ug<-#T=^G-6%KYVTDq;4y=9icsaa{r%Hshl}+TXe;RkEeFK{otv| z`Qy92NXl9>e4B3Jn?ENle}v|5mVH=y@m<@p|9c;*v{mt&DxEv`_g=6^@Iyb2mw}T) zH%z$6x}@{Uqve7HPM@DSPjcv2J+Qs=%o68gAHJPkJ#+8Je}A3Xn2o%wv=3j_$ZZZW zju2~KusZovx7=Lyw=>-2TrC;Af?R&L6y_Pu-1J4seY>>`U%Zb^rA=%~dw;HB{~_ze z8L_!rA6bPaZfOgwi~Mu^QlQ6k<I9K5C#rf}IGfzZy?#%jrZLO5?u*txKHRY@YP{dx zy|~^Y(Z1C^d+YsYKTYLY^<TUYi1{cb877q=*2}o`_eDp^nam62+4A1qi<HQYZq!ze z&P~y@iM7#}e=pyirnuL9Qh%WPtN&(S=D+3Lx9|7kAL9RS?(g{j!~XC051)_UpLKA8 ztojf2%1=8==X{a4a_dKHy1%ivQvZCDQ`0x6EVHTCzE;Olp_jeo?WU)i*Ke0MI(+xO zai&aPzxM0V=@nnSjCHm@`Ka3T;qv@{?_AUW);0P+-p5|MKC_wo{rje+Pu@;@veYo9 zP_FZy$#(a%*XKQ&+xs<k+s<!_Znr#7n$0nNRJ>Z&xK8QxREw?8rTX{t*FQddJpUh8 z+`9A6sw`O_81LTp__ckN;@15xj4_$>PilW#^@jUJp+!j1j_Z@%awh(^F*A^CGT4#k z5!T~AH7eQuq)l&EQEAS}8lJZgk56^F5!hN-|E932^n2E_5ZN8&>%QDeIH!De!pc=X zf!XhKzfb>ISMpIZWc}HgweAN>ZuPQBE@121xZ5a5=o_cE)Sc+Jhr6dQa{80GEc|_$ zU#ZjLfUtedmHoF>GYysm$a($wQNGV*sbBidcD18>)_iMbjBvkq`b1vgR*en*9ZAt) zE4!2z@ou^C{8-3Au@~E-o(4aZkmNkRb9-3|%N@VP|7xPXZ`5m>VwQOQWqU>5A7S=8 z;&WEtth8{_5q&>veeMM<u~$6?mlHkqS3aMa<o;J`$;2hh*{v!v-ftToZ<BJejz6+I z>@olDW0Ujm?VEY3CS_yID_-Z+IWgL?^Iy15o%iEPMfN@hwG1WRpR5kojvZK1e7UK> z!8M`xru&lcOJ$D@GjG2Uwn+Om`+T~|?wK6(G@Jffcr_NauCm*_R7lrE?d^2IBlnHO z^weKItCHxEsaofMary;0<DPAi0y*cuceu~2Iu-JC$?}87Zn7PME9JQMTvaI2UscLg z`Qf$pof(hS?4L|*S+f3ZR_(Fp$&Ht%Ic?~k%@oGxbB*ak9NP+=E~cc%-@_~}UJOiS znD%^qwXHM9sx@bH8rLcxwKD5f_*@zNF8`^^!6cc8#Y~IypY{GK)=Ly&(^~qtd&eft zbxVwO=SH5&eyQ?WTlDA49iQfK`}3bDl=e4zFir4E%)PjZV;?s>{P)mAcA-ZMw^j3l z4}8<DWW$X6w|4C;yzT7N&iCuc>j@jxXNc7-PMp5Sp;>g=Yx|!6=H>M~|NqwitM7@g z`mO%qa(?}PC1!iBX+i%4{UT*999`LaV58Qi%=SaeyVDtccB;v42`tI@Ghg<N?f;p_ z?k~@g=@&cpU(smQzW@J{)8g08@W0VqJL6olB>$g%o1<3nU#&d1GmO<e?R|rR4Oa{Y z<3ZhZ*@u`fP2OiL!%)6HY4@!Y-(EjB=+=?El<AXFTfw;>Yw!POudt}E=4`p+KX=7U z#qhwwU325khOhZ??b6~kCsiWtxqFXTckeTO|8}y!pPZNFv5gkZN{>3!_%*EVq$xaJ zy?$SmtoonQ9dqCJ>dvwMebYbXO~zk`Z4;h&f7)%i|2$Jyd)1cT$qQfEzPGlD_B-Tp zMZd^ztJ%@XKircu=7=n0Y&x*^<%?U}rr0|7@4oQNRV>yi_<#HF%l`j__r%OUyY=DI zUu)KNKm7Fgq_vq_X0OSdrq#XkJlJ{GuTy87zQM=!u#G5tdC8kiQzfo^KdEqWV%$UB zinvtq)C&bMM>{klKF{<LF%8kW^j&_RvrCPufr|6(qWO=-<7+N5C#-+Ud)|tzf#a;d z$YUp$MsL#@ncFU&OVhd#6cCxB@`cB!%J_S4aO9a6zH*5ctAgk2ah-p;C}M7V!Yx-0 zmCs9mMJha3p5lH$Ymb>eJ8N)^YJ0-D<jT`hp3};>9PS;`WS#3dUrp?T$huS$l`}KN zB5q1(dKBfZ;{D<C`}e=w-#4$gDX_@-=bYaUI_Iup7TCDZOJ$n(`_L_Q96Pk%g=O#A z^Wal%T{~}x!Hs=fr|0ooZ3@WVSe9|^?;)QDGeu^e+mh|hx#zn|T<zq;7k0nyx>k2L zJ^z*VB7?BS6=rP_*Y_3%@1J+qqQtvH-)(=aV$r?X#~z36SX64EX1_U1>GVPOKgQ?! zW7E`pFV;J(S?uK?`B`P%(Vbha-a1<t^3CD%?x>p1DaWT?R69|f@pyi&czuc8GuHbR zavFbDTYleL__l7YR&GM$@(lacZ`A))t(!Y@&SyT~@2YvmrfKgB&uA9f?`uB3u~fHN zrzreIX`YOSTuNlb>W^y554&8CZja57VM>;IKT|!SaLFsPxeSp<_s$I3cY4K}Yi;@8 zCP}bLalEe9esB2Y=a+4QY5UfQbI-eGI^QyV>W4SUt6lx=?El%>OP9Z&`aCypdxp9` z*LqvobGr@H8`|XWrgHm>JKv6UJ{0t=a$Wp6@tDoE{=b~8_MCJ2uV(S~MX>U%jR)Q` zH(JM(KYFWpeZj|h6`sGgUK4t@f8)FOJO7OSecJzR`N!%1uG)8po5#ED?)-iAnv58) zyOqqYOO+WiHlYsBwk-d1e(PqFQ!h=P{W|(ZMd|d5HLe@4uHRQ>JpEBgQO)nS<>Kl` zS3Y|suyc-8@a2gQgr25-+}!5OVzp=6kE2`8_c9mjMc@6rBvr&#<-C(b#l(Y$6ARAH z$aL71$lRjeH7_!L=|+?H%|DF4%yYMycmLt;_WxYpmzNtCAD-;jrC)5cwA@zo%r1%C z7i-qm3dZn>%givIdpzCEFv_5LO~Txpq33k;ZKKXRi!6|xyfIEWd2{yGp7;0m)J7Yu z$}OF9`k%@1KcDmKXEkK*6g#o+<fPBBc@ytOmoGS@Bel&nt*5js*-hYgqFe5|n@&5Q zm~%2MuQAlA;(sa@HqY1UL*R?+n#b<N$#lf;U-G{`?YcMHf%LMs%lYri@a6xz_4M&- zrLsV$X&r5*muJs6KV0;ui(UD}W9FBoes{OBl)n~Ss@?3PviR;#fynI<c8gB5H?DvA zd7;EdORcWt_&3V;_Weu}6JO)LF|Pfw?;Fc!F>dxfZ>FVRIbC*O>%^loB~CHl(d?St zQ_r`jXKT=!Rk0>M$7?m$1)NSk=rhwyZB|;STYLGJ(<S?4mbp6ae|*;L`_g%vHDZ<~ z-Qv3b`u?nAYRVJbOO#~yZdon9W{N=7l#PFEs~1g74ztRtUdt@DS!vzzZ4H4Oxgkz+ z)rz&@sTZX<a+LQcvmD|+r@hW;&(G93txw_-roLj5Si1b7(~K)pdbjPYxYk-6ICbY$ z6mRRK;1`uQFYT{ue}3X$|IS-~I)jDWqUE)j6J)*XZ%Mn&*?scHj(ywq#ok=CY{QqM zVh<NcnRTjGDleLCRAjho?KW9~^<|Q?eIg208ypqcCHwVZ&4T^nS|93WCdc(yA9DZp zE^KXI$h}W{`@Te-jotn2=@-rg+}kT3hM3HMD;6`^*=p7~1wo6+wx>?bZ-_jR_o1)y z((#vf5@tNk|93Xm;p6g!n`;j(*c9WuyD9myu=LffFMeA#XYGHv#+O&^Pn6rkG{)Vh z_uqcYo5#Oie{n^r<J99tR_mv0t=Vh4YGv-~f7c2l4=<i$KJ$|8bhWvfdplmdP@kIo zj`Q5_EqO0ef^M0$hCT?&U+58+AZr*G@SRKdxp3x!%`;-v?{L&>F|)SbSN2XkP%-D8 zVO}p&adDbuyT!Th2E8X{@wxj-n#<nr(GZH1T+q>2BG$nDhgY`ZEl0V_n)3m*N=(uZ z@BDmMUe~h!^ZdVRb>G$Z7aFd6pKcat{m012GpFE?$2M-s=%t$vPwsbRbM7tPSL2}n zbLX|V%Jh`CGWx$x<%-zv>G}BZALsl1``LL96{$6vvSnmkx^S#`VNA)r?T(AL7%~(J zg)mLJ&B;|D@YgAInbM@3w-a=uYtL2Nh%a9+vz)nJq+{_KjkSm7DQ8$jz0j~YTUU1e zagpwaw7A(W`)W;}Bp;bAa^Bg0-LF^Ay^l4Ndb<cj9^Sb4P2a7mi58pH{~Z%4_BnQw zZ68nV)79(uv1A_%I6wE|$HR$iResCW|GZiL-{Y9NO+sAmmD7uwj5j>_esuYc(hk3d zha93cn}iPOWjpT5zTMC``@z~y{wXJy>0~>9UUEW6ZSLl}<7XeTv0Lx?{qpz!@B2Ha zzuvqn&WOS8_~|t^xku|%=gMcQWKP^OA=2#pPJR9-0y49=Zr-VL^+CC)y?E|ao@JuK zzpwldQ&pYiQC9XcS;qJp<JvxjV-{=nOuS$Bz4*fKeKAHW3%_`64Aruf+*H`-dS5y& zFirGC&BVvdDuHKsq%<>=`!9NJSr~oqhwK`^^FKFnYdLLR{%7yUtsjq=n(B2a&9r*8 zxwvXyyyk<m8(z=b-XJ4B*UbBfVJh4C*mno?rtT<>jlFhMm@V+SLMvOT&{5~g<Qlo# z7W@9c`yI)ikn@^jeeG%+skf%fH=GMy#B}Pt@0ZQ9inUxcw>-AIynU6t7#COV$<u*b zx2ZQToR=E;JkdI>B}n}iUsqYomp|T(B2VuZw!Z&A!+UDsdinETI{)oc*mL&(s#%qp zXV1*LxP1Ce6Sl5NfyKgZAy-m*H%B!u(lLDJUHWX}7N?tB0sEYsZ-#!Hp8jLrs-25| z+-&-Ar+D|m?>(<?tVvk3=ScDV0t<I5CW-ZHyE08D+U)GP+m+y5`ud~H_j$`ca+W-q z9z3&VOGUecvfGcRT9w;(9(i#oQzGN+`!d5_{Z99VJc~Sci_1)xT=es*V)WA+zpYm* z&AtBlmLvP)fFJFKwiQ>;mUXYsuVekc*Z#No$K~}8&p*ujU3BU8G`6hmq1r7PMbqB8 zK6c^Nxc2R{t(*40OC@|(YN~gyea?A%^WC$n{y7gHe16W>DU@m%)sk@f!=1Fo12>rK zr-<_}FuZP4KfCW!?j!EiQ<RTy@Mo6Xl()@v-4_Y#PwtNuJ`}x)u5U`y63kPLw=LLd zyxgXc^~I{cGND(ZGTJp>-urBqxZO0&GI?YFj~_pT|JeUOcmKfspVj~SdsN(QyYJb* zeWA4Y(SmJjG~$2Edp_g&2B~R_=dKZ-$d<0N_q$B6ThK9fiE}&ly8L%{JQV2u@bB;b zoA-9|Tw2h+_i6vc@6V3@KDl9y(Z_8u@>AzAhq0Gz6Xdw?$8?_kwYvHV@mDxqV)_p> z-i!8M{_4f&8Jl0fsIb|lTjgB%?}#+>c9)*r6aNZ)usdG$ao*-{%wA#9*S2?j%w1cr zDr<SY^?$<6`A28P9GkoR{ZhG?D`rV8`IsZ^DL=>cwfW-z#;b0;Ke5bbdDI!hYdKep zKH2PC@FnTef1SLFL)-8FV{Cb=Cb73P;7NoSfBc%@oqEFj&dco=8#CmbOI*M8e0}lW zS@XEpzv<#v&wb~^oUnWG`&cHWPG-k*nxA)0t=JrS`sCk-s=xkA#(~ZX`LJulj{SjE zERsvoPyM>bmBz`c9)GjjzbBjP+T4jefs?$_wiHdfCF%5qr8tszYZ=#(|5*-8lUCeh z5iz<ssr%lET!#1e>&>;Nom<1Uxah%LrJRl1zkYl6fm81F>HDYStb&`}FKJdU;%%?G ze<?Eig7MnbkG{M8NZWPun34;pdiw07g7eFQ98a=pSL)Ul|KUqKvFTmv*H5XPIR*CH ziuYVoYWNYzb}#3cQ{vL#gVJij3Pz=KkF|MkY3(xDBf_*^jwAe0!napu-~ZSDzuO*p zw?4$>I*0pP_4!R*D_5S_w^uA;uE$%RY{jTUlDSt3<W87fd?nKu$i4K2$lbQ*e++o) z@0>aDWbNKVy?0|>o+=jXc)@Dxr=@r`YqsvX>RIz+`(FKdwQ0`&m&IQ*weLjV=T}Ya zeK+~q>~-Dyw6_*EFX;YLb57f<QhV;>C`Cr2>p~@OwiJr3oH?%|;^xnl4c}H6pN)I? zI5*?_84LST9;y6={_G70UUR9{#U)&_`FN-J^y3vtKaXB?+^hNB_V{HJq2qr8RBU@! z_T_!9K3Az76W6<H?=Qsz$@6N<jHjkaeJlwmvu>}k{lzzL^LmNQX?%94>u!c0+QYyV z(zqoidU=ckuibpPuHOrfb;LaGT5(qEgZYoG_Me`A2>;h>-(UZ<{+s@Ts}Fs(9^GbI z-cb9wd}4s<d9xU^gVGCSE_0;hFJ63y<CnU>&*8*v8>KQo24*nD{n!_iY2q4YH1Up* zZSJ9EY3BXkwVh5Z%RG>q`P}$&&gqTMrIsCD^rFGV^~Q`8`303)AGdCkk9gpCrb;+M zFs?H^I>~Kf!1|4mr@tI4tb6WyS>^D@>TBz79RFB&Kki>`xuK2R^L?KtZj;v)xL)e* zRcy2_>Vw3)@8a(MmI;&p7uc6wbULSh-SmTILDH3tmH+>?S6+$F$+ccEXYw|w;;z+Q z$&K>NdTSCVhS<!$P;R7^zxQ3u{-^H>eC96ndwOCYPuI7uAJ(i<kLNz0l^?sBW9PLi z%AVnOS2y}CyV=~@yfjni*Ic7JJ6TzICok#$;o9E5b#6}B-|{m{U)ntrycrpNHQ&ST z!5O`aYee{EJa*l`JmLCJ7L!Y!6PA|-h+D=iy0`wAXXsJ?(70nYe*XR9b1LR<f0^SY zdr@O*l)u9JZ#DbAZgM_&z@qJEK-y}CnGOZPdyMy4bA77rpIFnVzVU`*4%3yWBhSwq zGg_)-R?IN>xVp_>-aRq%?}BD}dDj1}`0-U}wuw%n>X&C9!yP2Q2sCDEuJO{G<@ReH z*D48%wA2?X4qENM{<meH^VD}n0ye)GS^HNct-Vt^^=g@d$!e*yf8X5oS6@79P0i^? zW%IVOZMwgc-<xNq)VlJj*dF1G#X84~k8gbMeg8A><qDzR9a52BW$y(wO#B<P@8pZn zhE;kqnmn1ipY3z#e9S$wcwH5*$fa#xJUz-xCg`>peA$%k_3-;kpI4>6toMrlnSKvB zmECu9-Mh;wCOga5i7ZKd|7q0^^LamY{`@$g{A39)hm+3Axz<xzOX3CQv>&o+mEE;- z=eaC}i1afie=Pml6`ZvuOcb*1y1&P+rZc|o>+uhZXU89X`>iUC*+7d?QvbN{vBdQ^ zXSpUDIqlP7*|Bos!wk`$1sj5HE&5-~^&|9$`_T_B9KBVdEIZ<-^|kJuvcDxmGvSW< z8o@M&AHjyolkKE0P4nAXsUr1LH0U97_u7jqIzR3z7I~DC{i?U{T#m@MlNt~2B}cqc zP?1gDEg%)CzwP?VDIevgUM#*e^Q4vh68Szu(d%z^p9|M>UuyB}3dh&K!jE6>{cqr$ zek>-j_~QPQ@);i-?UQ@o^W7_M3EMv3CL`a~eo>8%+470YZ=|0+|DiAAQC3M0->aY_ zbH2wk8N}2-fBv82|NQ?C(tkw%KUv?|Zrf+s9a*y5s^5s=K}5F5hs00O2krmyF5I*? zb3vu=`sS(03(m*CuS`2KuWY+iweBB>eX)E=>b&kEc3jDF3)IaP^z46dXrj_v*V&;f z3U3$Xe)_BZt?7<@eo$lFPkZi*I)8csYqse0Svj`n-KoAC_<YOmEw|II&B|?^WchGU z8jIE96TgN1s$Kq7ewh=Q9>yyBq~g^(%lYbh6=zSzZW252XYs}VJAdVge^C4M(xA}3 zXF=_}Gn?o8-<0Q8H2bs6+2`7tw%K0}79NghF`S>fNaIJvvbmGPSMNy-nPc#{?)!=z z=Vu8;pDXdVnsA`S;_Km=Dv}NvW;aFcI`*&7?)f6T=LxIw%_YUzbu;$tysHwKyyA<G z+o#>fMCKOE`<{I}#8S1fY(vr6+mco<PdBw6*<qIPEM2eYPPJU`!Rzt$6X$F0pYYXW z&w~$d%ijyMvh8hL_Jy(3t^fY<1%*e%B$ARX=G~6;oKiF=fN!Pc{^cU^{g&UC*95%G ze{B{1G{DogHrw4VNA=!8Vf7^2JT?FI0s(o~W&Uv9zP$eN(_e4aDaWll|E{X)|8M(! zJO3^%7jOKp9I8?(A1iV*Gj;J?rh|8!@~Uz;J=X6|SG49j*|Fr(1uxf)rC&t&ayk0W z+c>V^epHx~Ww7khIgjbDc4qvuo>yD(qvGfHhVb=qQw2ref18ol*It=*z(gT^RhV(n z@z7m``{D(+t^1(z^%Tz;<<%#$`r5mqCHGzH3Va>%^N!xBb2};u)(1AEE);*&v{cx@ z>YeD7^`;x-n3sI@Vr|(P^zy6j3b8BqpKe_yc<t1r)T)?OX;<G(m6)>c>zvre*6P)~ ziZ9pQ_c<!O;`7X4K|@)kTL;$e6yy0U`)zvn)l)}UYL=|K%5-sq!@k*RE|T#YOLgTu z6=!@%xp+Ks%9}$@^<S^fKeYd!{r~PC-~K88J753#f7g7wzh;kgKFrfTe)LUSmqx7R z`#b9%vK)+FvS^FrW239=JhdUx!E(-)pO;+sYF~0OP^$d!`tWF;pq1SLU5#(7bzG;v zPF-u{EMxT2*75N?@7*geTst&BJL6)6wrgpKc=U|BZ&DQuzg}H&B-ADU{noF0!u<qZ zf7MfS|EI`SuQhk=aYOEdMb%6XA2#F~tt(y|`r!!k7nv{r*1h~$m7T#;E3SNRdf`^a zspoe~?QvLMqh8wayyw)suO10%$DhY;y_=lN)w|w`tLKn)!pgS~TBKRn9$(v7!PN54 z-Sq4Hn(y-;{{LcLU%X7v{wMRf>GkI}pRqia$x(P_caQg7#rB_a_gBnfe&t#c6mZGf zDoS?hZ_aq8Cq1gYd#p}ZZ~0mFNi=(&ML}i%$0#W?jXK4Ka<MX-WrtfV9&LVcJ3{-~ zftj21`>(djutrE~Y(23=U8+HP*MgYC%GYj6o6UAR#GC5Vv}exxs<rjZi^7#cE?5Nb zc^dxU>74!t$MuZbexF)wFW%0WSf?X*QS(;Gha)={@BVm4Q<ihbqdjsJNm|^;Y9hAH zIQsR=+G(rj#uluzv$p;1negW96Q7i&lMhXPUOn%T%X0P>4>jGnDLfmWF07pYp`=2p zQTuMroY@Og+z(u>nzJEPhF2kPVev&xK?6$>xyYA`=JcNrskchkHkyB|FlYOY#><|z z>z&V@pOkjujg`U1OZiKG7R#RcIca%$#cR!V>qYs$9Gm$n@5<>NM?da3`?IasAaQGC zYSBEu{vRLy?LFXIXm`wQ&(eRwGp9SRduBMTwYWr~xT<8w=~)xzrr-V?e09+&o|&Cy z?bnX-E_L?3TigF8`n*nWnU#Qn`oj9f71F&mpa1>M-=D+ygJ=D8o`&;Zc4;WqE6aR+ z8EM+f)3;ii*I#aKOtt!DpQV<Z5>MEC*6XFYp7Ze6lHL2ZYhB%gErs2a+a4c0bv}Oo z^T*Y8-fV2StB+nizrS|+p`%&*)_S%D8TZ+3J{;zCl1W>XZ{-o!4LY_99`C+WEqD1# zS4!~wfa2~$3vcf9o_=Ub>#nLh7cZqvT6sWl`{7;B((gL=CGLMUiEmcz%tC3?qVq>` zVy0Z3lDCd|W7PT=sng4M$)=?=6s-GLp0azYzWC7#(>AsWGhTSXBj(zCG3s7GyGxy3 ztAFo*kuOqT3s2m*QFo@$|G*{ZK9LEsv1e;%Yu-3+wa<3X(d+;3X#Wx3|Lf=-t_#|m z`&6!-THw~{$+)e-GHg#(S>VU7RnuNAV`w)%e(8bCXSL+S{XZAH<WQbEX?Mu;=RY|L zU)}lqrA%pC&@p*2uAa;zF-q@uG3<KK%G_yvEjg@qjzMwgk4p~{Hf8ItxL)q<`u~;l z@Ak4Lt#zTA)?x7zmj`^*ZC1%_e))IF=^14jiwfM9Z`prl)d`NR+SQtOzA8npbG#6v zT{hQm-XHgeb6(#Iy!hJk_{RoU|D9nxcP934SG;!4?vZWa>8|N-&UT9*RyVBJHzSfG z?!a7m_g&u)zhu5=|CiBjUR~ev&+R+!TRpyebaL&<l$%{<GOrd@oLXA8<+1WJ8H-Kd zckFnpp}cFE-=Rn8It*&B!`tRqO!JyH=~?3{)uPzlX@~516*>=`Tg-a7fqzzV*_oXc zbsw!-?PZz0=5OU=m}_`+tIUGKJ2rD(NLuD{n$2qS%bb*~+K1281mCkBFaBqtdS*?+ zBa7|IJa@zMle2H>Ja;u@OWX7&<8DXs#qU;9(p$x@{XG6lDj?G1tlg*R%EiZLtW6gC z(`<2UbH~ER8|P)uc%J`ows!n-pNo&BRbMB%)qb_=JaaoBI(1UxtimbtbdvJ7xSeL1 zzIBsT)RxUJAFViDTNrcv*8BxCIWGPV`%@+IcQN<kZ4ndNpZ@MmQM1`*$+Lv@)VjUz zBo~~!YV^<d*@*?r^Eb6Pvb1eGEwR|^oS@H1`M^)xH-EA(l#N{dG{SK)V^6vL@0Dv> zHy?L(3sdy4+N0jJB2Lq9-qFpcA6wR5OrCN&uzmI0RS6e#_J2Oc%KkL<($xm;?4~oC zxrX)y(Wlwc&bB;0R41!{J-u@89HtLD<Bo5)-!<Vuyk_Klo1j+b(`BpgKjb;_{-n!x zu?0MJQ-z{=js`eozPA1&E4!pAdR3UcVA0uGiK*7pE;hMdh}N!qd~%{(UHR{<u#J7| zf7bGB^EWTBv7MXsFD1cbPp+X#QO><Xd?^cBqP1S_vRydU@+wOdN8$ha(}&Xz2=m?i z)8hIsa96kAf3AIBKJ+<N9)Fw|_Q`I(fB51o3mvzvEjv?PiiDfjEZ*9%R(saj7k@OT zeVG{-%qSmX>HXX6LGnM&r+nw%>f7wzXc21nb<3f=-WNv|wA_!a;0O-%W8?|^ur^j9 zY=_D!cPW1VZ-V>3Zr^vf{#W_G`X7JW>l=>$J$z^Ou4M6;w>M{82(p;XGD~DfNYuKI zruQ=)c3()c`TFbY-I_Q59^1NiX?wY9&R#0BU09u`OPO!+j)!HPWjW>ss#SF!?vj<g z@$1D!tM*6D`Bk^t(&*H!9oz>Kx7t{|H(s~=XwA~TZy)x#*zRnYuu+pa)Z+YczN22R z^5v}4-ukS(zi7%)k!zO5S`ln)n%kdw?Ge(`O4fd!F6mqoe><&=vFrccJ9o|%?_s}h zVLLZ#pW5HjBbyj+AH93&<l++Vd%e%r^RC)={k21c%aqEn8RCp?=}w-@W=@-bKAvaR z+^r62N9MTO8#P(nvKLtw9ul2+Cck@~g_}+W``@}vUC$<(nx8uyV9;Mu-|5!YFxhPV zm9-K+eWu64jpqE?_h`|BfYV#GBV)Eqc{`KS|FO%>Ac?reA6~8AJv;Nx9s3@WZ^a+& z*8e?dIlpI(c;q6_uCD?X>x_*42E>&7GhzReRVx;^J5}xM#`I@rlXD`?vwuCe$i5x_ zpnG25#Z7Z+-p70qV)H#@aKBS&vh}XGi!)A3%7!TBs_~uQ`K7G=o%gmwn*EA#GapTH z?7i<Id}QaFu(eSK-&98J6g+n{xH3q9>s#yTsg}D=m2%{sof*GNa{1SuroF-Ei{j_0 zehJLq61=rCUuwcmy$LyO8^SrIOQk%eFZn$Fv#=u4Myo_U`r5T?8kVY;{N&hAC%Z+a zTybE{$uZx%d#~rl#FOuv=Wl$-FTd|-`Tg4YZ<2+p%p@ChYo_pDJ-<l)Q@it;oX#fS zipc96E3X<&J{qx8%qKBx@;`UBOC`VZV>dgpn1@`rwe4T+&oBA&&)@$W3+nTwR_wI9 z{My}qS8eI%&6<1m1kacfv2(vk%5;vo(`;YtJt2^}ue>_^_xzlx{7MHlR$SkGT+AuF zD)i;Olqt1rS_@b+-J}=axWE42DSOG<+&jlrCQdoIUZ(!T<?@9GJZ|eY@XlHncSu)s z$J%4k-+gA9UEBGs#;2v%)x6+?N`u&$2obXfQ4=DU#jjlWc!Rd2wZxZ)i%#?(s{FlA zKet%A<M+BCzkT@@4Cl|7Mi#pYFe*Pan*TlQ-U=4gV~$(IR>W7e9)9(9o%Pbzg(7Ue zKVSb_{~)6_{^J$R6|b#58=E^fuWr0>s+GgR?fj;@j9nX96C_TscmERc|9$vqh-IwO zH1z`ER{LgC(LEt&TxT=|d<nSqYIkZ-m&?8bc{Nrti>p3gewiuw_w|cVUQroencWGJ zdHm}?{QBX2L$9{}#{S(dvG*UB1eToJtYsv+x<_QQP@Uk<Ymc{N|7%)OX?h`O=S-6= z$s3y_PU^)-$e&Me>B_!*?C}p-(d~_TX_3`SxbtVp#mEGQur$l}YQ(v0zM}bR6I+V# zv5ifiMeZH=T0H$}NL;TrbBT?~vs;=!TGB=0KRwd#J^nk(<BayVrRTLiw&!ZSpPV1k zeoA9X^5h%Ixw)R%`Z<g$Pc84=D&AkUJv97L$-^bzX9+ti+gdn=&rLnJ?eCrBd4b2D zm?cH9#Fu3_-MLjK<@@<#@|urt`Y*b2Sgv_}cgvNELpse%J8~W}E!W)Bv*loNS%k=k zQ!iHQ)?U8ka%JVsZAXel^5^=C$5l2*PUo2PmWeONrlg}RS4O|u_&x98b36K8t<c(& zH79mmrS;`4-0M4xoBhro+Q%zftIk`se{)QUP~Y?UpJp~+*za5!RcKPmaBJJAA5X+% zZ|DbI=PaL5bo|KQoXL`m7xuor^nb+}`#GVGlONyB*?#GV<iYUg3lB}QSX#1T&xZz! zoiFE{pBu0x{PF3Wu1VpX_VF)oE!e`iW{<;5`+^*)ZuZ&BEdsyqkeb_L{$R>%^MKn7 zK0NgulQ*jbzH-niZ+v##Xj$C-!*}G8mVL2T`gF%>gLC(0w=jRJ1r?hZW=-dLTrVPP zo0ng(!{UJZw~H_T)ScQB|Lf@bhv7S9x@+0KAOC;v{oij#FaBycC$(9-Xrc411zQ^y z)%*RNVADRaX3HOjpI2{il`ws};Ul~w`s(ZrPm2H5OjYy$TC`w`-K3J;U(NdLxB{=M z-m3rm>zVkyy}zHyg1UOQJ`~k1yS}?z{MX-7BZb}5j=L?B<;f6xEnpcPSZB21V`u2a zF3Uwfq-UDiUR&KZ(MKvVA^hX)JufuX->)#gbJ4f+!TOJ1xBK_^|M>TN{`Pw(N<979 zW?v7F-*fio^6A#cohQomM6uee_tD*~yZ3?`>yfC1Gwi>|-b(&|&B&P7V|AtbD~W8T z9HsQztKTk?Ver|h<81Ms-_g9A_igp}$X>?1<|T9EL=PGsx+Pw5T|f4Y>#3xtzguN4 zmUS`<C#HAKesROESM}rOS<Mz3gCg~gdVP<6y@4k}X@TaGX;ziO_wHH5{J!=xZ`t-| z5)!tLrH<W7-?jUTXnx$kn=5>35B>cq_x-oK&Cg_+?%>Z~Z}sofiU_NXTiy`;_lEQX zH&?cZ%in_@G9UfrYP(b7pYo;MI@e8|4$Qx=z1&&j1$%Y3{m-lOkN^L0{?F<iH;-Lw zGZ0evkUDF}MusTMbL*7jGFaOLT{2oCI_?E<C0Vm}??^hE#k#{RqvAYk(yT8F6^vz< z`fa(hq`zV9yI8-R1IEAR=gv9UA-bt_^~UJOe3y4`blfcDBf3xKYnVm+g^tI!O>(bJ zPAiFjy=VSK&)r%Ls_N1_hyRDvFl(PF-gjiXDObnTtHPJn&MyDV@@LM<>s!Ty0%PVd z-4w5k`{vzIVZ7*%<ncDv=;U}G#cfT7u|=O*#1bW^c@<vvV7Rm9VaCqbBMv(o51sW} zn#aEORQU7Cm$RofHtOs;UJ@(Yduh%`mFCbDYPrvg=h;kYeWW%sYDxU$_ZJ_!7|b^H zJUF>sb>H>Pz0QyKd|JNzj#S`nk3A_FJ-S^SdhXX7qs=Gv`yT%u_vMu+>$YRppX5$! z)3aRoilOVcVcQMyySI5ZoKx?8J&Eyf$LyQD?h}t%pGpk<P&(7yy+M)by!cQ5aQ}7d zS9|olwVU=MpPTK|iVFt<>!-O+`Mk1{)o+pRp&v7k)vuE(b24c6-oL;yb2CHNy?v!m zQw$CNyo%o&@mcQNqRW}{Z(Hq^Sr=EaOX9z0u(T}i<p9<Fww!&56NAs%SLM#q;;9Pi zE98A}R($h|CG&UIrZMUMYECmgYGYgJ{9$t057{?-`S1Tp{M%XotG=j^rKUA7@&D`f z`_4UI%M~R3vG!c$ZkPZ2XaD}s%sT7;y5hi@i)8lS+*lkPcz1E}sZ_lq(~H*ze#n=z z-qqMv{o>?XhlhKYExvedXXzKtWx;w++e&9I7YRP{@3sE1|Ie%U<}m)~S^xOsS^b#0 zzpAUE3IhwCKGl_(aqqI(tW{OvFQZ<{?6`OQ-JiY8d*#>P{`hC($9<6^rIE+3ygeEb z^djmdSLkL2qty!+?5X{Ib<)0b@q3Cbc=BK9MKeC}V!gdqR_4o$*(cWN9?wW)nk=Py z?c}T_`rh_pe&SEe*h7EKcw~Bi-PeT^oDMIV(zi9fS)_I2YRe$Wrs+zD{)zqN-t;R( zg0aNq+N*sl*>}xbl)w=3;kw1u4I9G#mDDwKE6vrK+|8&sS?%6SlgI0O-d(BrShHw8 z!<7?lD{{ECRxIUFDPg&<XuSTb=ET<pVk?SgY3NxjIkkUb=-iH;60J2-w%#1VD@-RW zJFtdLT=nnI)QlVU`}Z7AnO5-R-v75k#nzAIYrj`l)c?A9bYo%tPwnro!*=i7cC7Sk zT)nn0Q)oqh=A)&VH`I@9(wy;XZ&A|?tKD6juE^~CE@sdv)a`jcn>+CG+Qgf!zdPpV zid@Q!k__vy32Z#GGrTaQprXAhZ*G2nP2<z$Ic|mlYZB%kYhvDJ^yZCQL*}IgoWT)2 zR?`>WG`jZSeca<0C13oOhGr?gnQtjN$v^U9)iyU}pKWPhU%buA+SYSD;z{7oj9z9| zW7&B#Zf@{D;ymT;R_9C8EY0j+D2iU+bTqoHb^B5#xfQzSQ^FcEzs;SwCjZ>@qN!bf zmIWr5O;dk9<D5U6cHpT;pQAVD-+d}%vUwqI3g24enO*ZXbvrq}Pd}M{_{QnSr=~GD zEVI^MT_^A(=J9gHIZRncD!;qSy(#%L`-5+v{=M~bwfejGElWLY-X%^cxhEl;Y8JAc zv9K!AdHKf+C$F!0#~#!7G~#8#nTlsTvaBE1yi=*!b8C~#^{MAVOy(3Fmb$mkW+unM ze2?c_cP!b`e8S+I<<HoQ`}>SPR=)Bp;)(sr_hRFeSo@aP{Dg0jDzQ=P;@5?W#=L#Y z`}&WMn{$lg$2jXd51xGxOaILzZ}(5E&pdrkm8_)m-qim0ta*KxHS4}@o<F7e$eUTO z8P8Vx{@N1toYgMlC*zi4CeP0TwP&=1J(te<u=nANTNQhj7-_#MSoNO4=2nSSaH*}( z`Rvzix&Obt{BqZu@xb{nRfP;S$F83}8@|8V(B@y%>$2{yEfwL->06q_ij@A_ZFv+t z^_y{5(A7VaGjk5DkznPEn{@y3$pe8?4(V$(JI;vQq<vE2#R{u+B71+ld-u-QXjw{; z=*o_p_wL<0E6lj%<jGgt*7p3f{NyVVu_aMJS-5p)PtZl{PdC@a&1kxFqHgcgS4^eN zFVqD)C!Ns>p1Eb~foNscMLK#?TGE|+V=jC>S9#>4o<=iUL}SR^U{3u+{s58b3m*MG z=5bDRPfE<`Ut#fTyJT*&O;i2emicETSKgO;iIr#Nj^8jz_>sH+HrMG0ZA+^a2@5}X zv|gK#S=4e{F?E^Ntj^A)l(2GMNy*u(B6h!Np0=1d^guLY&fnQzHowt*_j|s{i9b>& z`NAi3z27OP{PzFhqd)3z*(b?-H=ei1d3{%Npy!r(nVK<M?I(Y@EGU_hDjXa8@8lex z#OJR3sYN1xpIf{VwfZHM|7wef@tTO8ear8^_t9K-)7|x5%hK}yHSD5i`wb%{ZQ{<I zRhW3}_lz{{qPIK(|DN&AesHw$^jVud&kkzjNdNk?SM`s?O+#0q#3D7fAmalD7xsQw za<2S&mWP__g!g4v-<6inWjkkD<hJw9^xqY3|5toG{#Le1s`Xn6_hZ@mY~PtpRh#F{ z;=exs=ysnIlP5kXp1VN!_mi7kQ=hI@y!>$Ai<bv?pA>oi@Aso_6SF-(%B<@>_?c!u z+9`GQUa{LQxs%Lml#fk|)??b_6s*u|s9NVPDHZ)baNhZy`bJ@ek=I*I813?9BkT6% z&HVQ^muKxw1GZ%|Zu>lztKRWGOHX6*s@qrJ^zGRBc!TQ&rlw|YyYs21i;CN%%B6Qc z;f(uobqABi-bm5LI~R@>i*U~=Nv+K~v(<8EQcllS8JSIc7b^WXc3#Y_+4Q9;w&JSk z`=!CE`)9fzDXi;se_D_%efIudzvC9)UpzOu*|hle#<o)`>plo*cFQ^?SFYdm<cY-L zBc3WeFLN@tYKmWB=r~-~SM$H&yL{d2qzm;2#N+pMe$3^Jwl{x&?(3hQ=j*F3TE7>U z(s6J9bm7r?-p>VbA0k2<`aD-#PKe*0cXf3M%k`U+_DQoVzSz4xzRqlRZN5;|hiT>v z3v`OD!mO;OZQ1=ldimw=`jQOuUxKFJde%Eu+&+7Ie?g+h{%g-)RB7gK({OXTAmDsz zmgdbv3j)rpes|@5)#qCm1e}>x-!El5vevi7D8O7;Rii$D&*G>v$Cmcv$Ge#yyi;0o zS=pa||8@s?+dFse`KUL1`Z2FwYlGINH47b%vw2;J)JhTR)p*+JaD%mv*I&z#x3wlq zc!hM;?hk#TZDJmw8u6T-jiINFj9#)Vmyp$LJo#Q&FU(6~E3=z%(w_FFZe0fN8&`6c z+HQFh_|x6_rLY}i2Ak94wWhmnEK2irKQ11>xA#zo|3>+sxhzYSGPdNrmUG>w`}l3? z5+~Oy=?jhZ9+dU2Gu>X{E^_E+jqOB<qy>kTP1&(ziH&q>zv;a4xtcFpHXL%?T~$1t zb*CSvzq11G#LfL%KDKkeou@y4^9QMqXSOA=FY4xWocUqVl4hqGr8hsO3!1nl@bxEO z)x1_<+!S+^W$$xkkLxS9gkLZ|q>*J?9I@(3Xi7+C<0<~W%2%D`la0#GDkO+je$oux zFpZ<~;k#=;)FtHtXK1}#*z;`d^{KsaXM-7(zF+ykX~Pxo7~-;ig~`kH3DXSbzkmKO z@5L^YS`+yP7Dtbi-Fu#WmT}sYJ2C41$B#Ot2fX5FUcUX#y8APF9`hHQt+mOS{QHTc zXCSNn6R9n8I_@92edqQ5>0+_(&**Ox&FlKTGU4<#6^0;_?G-(-rrwn~hcYFertg1Q zy01-ngO$Xhou89(3Rg$1X3uRo_C4-TV%_l*yIrc1%X-&GZSZeqo;Ba`@%;B24&0jc z_sEz3(RXt43--7aReSFJA=E7zbt&J1M<)N?o@2AOmseED-1f`kk`vAGNZ$VQ?ACir zYV2f_pDNsLRd%1ab3x|8;P5Jsnlh=(Z6DaLSp4|%YK00f<B|KxYXg7J;(7XF#-AGf zn-@1Pb6%LaahcBB$<xI&mi!N0S0pnjZqlDE$JpIP_s#y>zt!Tfit)Nr=~sehZf(4$ z<nFU*vc;E;$*)fq&pIx1=U$0jwZ-`r|7PnS+gQ(eeeUu+fqx(W+$j6LIr3+Gma@bJ zNf{Q4EEj>Oj;m*<)E)|A3Nu_$@?h$U8waf<+|)Ou34J`cT1Re??}O#OF*5h3Cf}NJ zpMiV*Cs)V69}gdX|Hrywr`>JPks^`t;+OvNH=kc3uylDr%rOqO15?b5<_hZSPSmtA z6I(q0lzR2&pr)pSrryhUv~kBXdu3dmxWqEdK~h>QO~cCPgJ<%ha2pewwJGa9uX$X1 zzR>kab&a_nPerZZv%b9BKidudUs?Ievg(2~ALmR(pE<>M*K=uCSu0L(+M{&+McIk) z-6v<QxFN78JZ(?P<&US^Q(m;?o%jCaviL98;+~~K+ZyKV3O#r6kY$pM_{?MP&+Wa| znLO{<{d1K<c{1(EoqDr4<7QZG+Bj=P%zxWjt+-;d$uD@zljOE_p589rem>m(SCSP| zfK#61nvCjmtzMi{#jo7|yJhj@t=_y&SF$1uZIsN^zDue)=&s;?yHnzBs!P1`aict) z;uSl0YAil+cV)<he;c}Y#3moNnjSLA?e}Aq=FdLA_SejEUsq@w>o)lqKg&HmU*Y#= zJM*os7rvju$F5Vd-(}{j(|gSK_dB_7w7;`pT7YE5qCeY<OBg*aaq>D#6}P;UtkQ|u z`8{Z+nt$Z1wLEI)Gh@X6oqB&}ox75Ks<u}hpL$rBuKcN@M(gYIUhdgva>Hk-(!yIS z&DUhVc730@HcDHQ`$ofM#Y3Bq&uw#dQvTjpe(h$8k!4Gn$)_od%anGnP!aA4cw8j@ zZ`OxB-;_?tJzN&w_&X;p+%Vjs>ldHRtDYZTGnO)^30nru(Y}BCWyS5=l{}UICGV!b zZB}(YASTswe9ueUj~e@KueMZQbDVi9r|a`2S9B#l6*@~l-&v+I)y$1QM<V%u@fp`w z92)!2Z|!{R|F}&?eEN4Mzo#2}JDJ0p?HBuro%nlFM=Ij>-6uCLmQ9-{TvwTLM<yu6 zw@3NTy*qz}{#{xBr+dflpNlUm29y+-_FugA@WGE)k39BOms-nm9G{(7V0U)o#)kOU z%nfOKRlYS;Zxk-f-t%r&-#IgxwD}LNsLo$`Jo3v^hVI92uZk<*m+_wG%imrb#5JdN zz3;L)MyA^jTXH)T*+usy%;tM=>?x<AK&Hp--4h?xqy<>aYZ29axB1y|%a;@GmkOlj z$bb0Tb1GtC&jM!l+d{&e-}Z>g3A>(5kCN&A{BCnY$;EGWUu9QUvft~s?4KOmmgl(V z&6&%xu?C+y?*IRLKl{&y3+tWbWW{ghhubvFls)%x@^Qwuw+jy)5sS5H%G?=sQhTGt zg-`eULiJtbPM=;gKj!w$f7=>O=l&{LeP)h_gzNOl$H4~&d<E5KZ`NP_e{pj3mherY z{a&m6ob#ln_8C1o9@>_?m-~}LNAa$@{K_};xDPLG@+m!k@l5y8iOXK<_{{cM$HQ)@ zP@EFl89(*u@#XF{-~Vp^{BK&I>*-F7#nr#Rneqi$-n4Mjsuxn-E;MuHl}K)8Ew@0~ z+Si{i`rh}9=t#9bzVD_{V)G%XqKn=!o4Tu<@@vJ;zY)13eSOocj<oW8%hQIL^VJHb zm#<9O7NxTOLbcs~AJ#0J-JZua3uD#7uO7ZQQE|Ut=hB9KyV92lU6{sx<9Nrf|9|e5 z7vH~o;QvJ455K<VGVf-|Wl-^4aA8|7OZ3z!*>5xRXFaN5a&r$k=4g3ULN#a4U9rVG z?awMp3a*^gGVzf9{7H>lf|pC3s*F<VcYbmIHT%5PEps*>nr^YbUC3PI!OwjED%<IT z?NPUTzVR*9y__F-k;SuA%yk9Z^O=DYTKuJSpKX>%c+>4Ck=gGzVNvG3>jf*eB%U+c zZqSm<{^ClS&U*vN%UXvI{EppysJrCUmA|usAI<lCBAm<PS|4}LcpjsC-;s!RhO-Ng z-I~cU>(j355{E6PKmPD;^St0+%MH(#uG%&u^r&f{nb*fH_9?Q@%GX_Rvkd2cz2<?_ z^Pt}vdoH?4&iVZ2?GaaH*-5je#tA(>yL!LJ)~&O=eeX-w`XyHi$7~9il>XZKxU;&& z&s%-pBn#d)ev-&BVmFaz|G25=@7^QZYY!!E7IS=E8S$|E!+)=}ewXI$*z_@Cv$9S$ zv%$BFone3Pajy9LFK$AvI?IJf>z<Oy+Vir{p0()rZIS0Z6U7%eEp6hS1?J6CttYnf zuyaW9sfxd}xgq4p_v6>w>(lqYH{7Pb(1>+gif3bSdHMPeU$4i<&S7BZvHyPl{@&w{ zlhd|#9K0qu@$vCU9$nvs+Yik=pe*M1r26cZ&~F0A7?rZ;o-poEc79p=TX5s`HESj3 zEO_{A$^0jlmpi=e9yu1P`o1X9`g6xcYEH|$iOEUdj)j@nPHCK5edJ=Kr&j;2xFc=% znkG)smUQCTwBn$&wX0uicdTeb|AbS&OJ+3f*5qjw@BG7MHtn_0>5lF3duC<V&O6>W zPyNrW1%2st|32S8uRN1=-sjU(#CNBh@vxmXYyZWQyBE)$mk~E-VtLwxz~{nVr{t3F zmfdglFIZovcTtC<u8W~R*iIncrde6=L14O;Nb~j|iFN<VKNi(qyM9`%;rt(~x$o}F z=HL6%%ANQxN_u|7iR_Fe`&c5EF3!r1^D#NMIX^M&#r?BeCcfR4kz736;LZ=(Q!c5D zm#bHK*;m|m(L8m<tmwj<H!mNtRD6E+_RE*;#!Y`Cx7B`p65sOc@Z(_au37vnYQM_= zFI#BL`|tGr!)to#0vBzP`joVwqJLwMy7z$_Q(vslG^_csmvL{@qMTUfoqHwj8oc-H zvYxp=*59C=eR`?M+xYnl0~a^D-&ejj^|-{$ZM$?m7W&B;+q~|um^L|+aYxrrnf1#& zlJj^auYXiqWL{predaOG#w@0NalP+?dyi+_pK5nzUhn-9y_|_&J37+xonmgid7-vJ z<1@Fa<}(lbl?<OYYfYN@R@%$;ZTt3ApWcA$_3?%iUU~OOeF@rpAjHx!DAD$e&m3zB zu|s=ig)c9jb}ZQD%<8{xLEaMYmcBWntC_b;$IXAS*L2BB=R-T^ect6SH#0(U&*QGJ zqCJ87%qwh{U3=cQJ$PYn_1bIsWiHEop8pDcqW|!LNkkFvllj+;G!2)33S;@pnG!1T z^1h}1CEvB&M-J8;wVi%G^~aJm8~*iKWZXKnDJGohq%!Y~(*BKwbsuAc!cR_k)qGCS zdJ1!M?UY2{h|8S{Q`d<v?{9Cq$LAR$#C0Ot=V4;FL+X}`>l5T2GaIwrNI$eb!*N2T zTt1ssn9sGIBL5d=sd*tf{h!Zl-<Ye~d+EfSV9mZsoL?=!FU;;`EO%A^<kw-b#8_2% zt5bR|$3;i3hpXGxX&-7#QQWym+>ZH+r$F>!zgt$nnd{!)HUIqmXN|q_tXnf%PA)!n z?_K!%ch7$F^FLm)kYDnx+N<r3w`&xb7>_p3NNhAqNcWw!DtJ<x#G0QDz2?0?cCAZQ zTcDS?bjQ&fPs&-X;w#O*pIyB6RmtB5Zn>OC6LO2K9r)5FMn@}lojmbK(Qw(>>KF?T z|0k`-Z)K%z)lGfya_6&SKcgMZuHAkuJ5ikbQ=78ql@lrb_a5t7ybmwttor-wwf^&o zy9~><Yv%FI*S+??r0Y=qk=5C9qQwgyul%V{xcoz<-CWnk>2K3!JMpH~79Cr3efm4m z*Lj-8R@(0(BA7!tI;A(~c^-K5|NOoACehPUpEur!`hD-W)c5Cdax*(q#5&X*n|ebu zI!ru6b-ES_E#*wvWHeD&GIJJ#@wCi<)|sbF4*ARy{Le5a^Te#FZYjPgQ#y?rf=;q* za8}rTLQRVQeO&qbNUQ4gU)O$p`&mZhgrxGllV2*{->p7pSG|7U?d)it$H#unJn{R5 z&$RlQ>fej+Pdxtm{_EF<3?Ec?e6zOaWpJun?VxZ#oz*Gz%+!a9hSI7&Hy_3&vK+NL z<M}|-cIM(V0f#KBA6{)AW@~X~tPAqm^?&AZj;<vyWLVS6Z8-{5BkS%PKXN`l?cmkL zzid}k+7xom_IH|Eyjm-I^I7RHRm=8&m$6uL=tIr-6w#^ECn~N=Zm+n%GBMs_(@ujv zv(>kMY5nv0n=*5r`P99J4|h6UVvy>Y79iI><<ObmEGy<dGk(Y5mu$1{h+iqs+f#nl zyeVNj&1TPAw!p7ued3CgV^LGLX8z@4T_L>e*#66z6L;VKeewT7>7BM57xvrT{eAPw zO=YL4>9gA!FK3_OcT-!t@mq<s?b)_D>B~YR?;hvbY@%-@l6L6k1S6iGk@qg2ZL<|% zO&7ZPAS_{#=%cm92mg46OE~0c96j%1DycfDFF!HaWR}dAZQ9JeJ#G?9k8=AwNZg_J zc#CA1)P{vQHK7ciQo#qLQ|3LJ80-D1{-P#N#WXgh%XP(T4=jJYn@R9$jMlkba`Sa} zE?cA0F@JK+<klAs!hSEC4jp6)UBQ2Y_qkf{g-pc_WsNMVCCwWp*dw@lGJf?i35jjc ziR%@*@nrEOt>kH9$z34{%=g<Sd@(+ldg8*YuFq!4I?aYV4;4jB+Q(}W<YyvdIC<LX zqjI&&w#4}7l~4M`8MCsDUt){Swu94Mk_~328az`~(cV!RWhDIe?$zFyGq+8Dp4nd> zb6D|#Zt1MPQj7nAy_cJ>*;dqUtk+B5oz86T9rEqWpY{b0b+oU}bia{kZWmo^A-h!E zt0ntkc)-U+(m(eK=V{FPeRlCCroNz4X1X_Cv8;HvW^Pk{HS6WSzw%4}Ot+4IePTn^ zvwx2sb;iWT_UWd?=9e7*Uv^b?!H%1g1ZST5di80iE31f9SlH2oi+TH}-Kl%|mvhf9 zu97092#Y_A+4T?mp6nLdd#=raH7dLB=iI1^X?LQd&%11L%sg>bvfQ`pnd>Qr&aR0y z+qPx>h@R#se{%WHHT&P2e0i(1=c)QnHN%Dk@oUXpQ(K=ra@urB?WVn5c$QahgUD+| z&B_%m&FcR8Pab_b^fNuO>9}LM633~!UoZWiTJ)XgshYs$;}y94%d(Bk-xsiQq%Tct z($p_YnY__2OKFd)cIgVPS@CJ-XWdw|&38q}fpq1=$F_>d+{#maTv*wB;p^w)@BYU( zL9&|P^3C=)-roMN__b}*3qd2Bt#hQNIsR;SUH+$NL%_3pS5C8Eypd|;=bIeeu>bN= zFBTD>l)jK-)>j|TNWT9sXX4bqRxEll>vx>=O8LHN^}83ceCbUbZ!6L?-536UUr?r2 z{+H*C<zFpTJI<(*Zi!9*cTfEL{@nlbGW&Gxe}9?&<m|_(b9N;Prp7;!n({&IMAx*y z#-g(uW;^M(DdzP||Kaugd_?}jTk8^ZRMtChT)AZ8w|m*y+b5m#VD&q8_dtx<vP(yb z<D%F!1(PjBf0}DvnYEY0QtWBTukTYG*L*q|@^0bf{QN~y3H2Ra4S&1-?{=!R4XwGT z(wiT4Oss7?Gy6H!^Wm9sTG9GUKML+ya?YyQcuzMvcX7^I)%6X2&wEO4f3Q+k<XO$R zP)WGa_xy(?rz(%i+z8XC<7A&%an^rkfMeH{oQLe(W*mKc*B`l_RU4cY_*za~I$f@N z@Aj!n8wGEkm@sJ%`{UgU&#_&L$(?fiho<#=9$kx8Egs3UKQj-p{dsE8$zyLi*UM^C z!H1G%-A9TogrxQ~{=N3k!N5Up!i@IB`Pa>6y$F~o`(uHv^MuR1uS+;S-J6ll6s=y- zc>Gmtw}|S=n)w@6`v;4kI&=K@t1So2?pn`jUFmGIV3Xmu$3Nfvzu<MQQl5eP`TT9W zQ~Fs{19O~G8H3iO&fXuL!+zlq<HKXk$6C3ctJfUzy_z&H&^KJEm^tvmhh1&8*3<KA zKdk;FUjNO0n*9EMi$mq_@%;^DlscW8y7cfO6U&ch`zkc%KbiUCOxJshjtRc^8a9{Y z37X7KohxRvbjrkQ_G`*d)iDW(*2I7Eu$X^(vij=c@`t_m^YZ&XeS5omW9ymYA+xMg zy4b~vvV}`3g-m|MyIfGcciNLtb)o%|Fz%S_n;cu8HvX`k8*3DK;IUvy$(9MqdvB^G zO+M6^v*f|aA9t-!hBIVE_bRqd{}|yN`TV}iPwSiI8T)3H1x!+l_R%}6nywwR{ML~& zz6WvIHW9zVRGK$PHr$>#r*%%J-tWuRxsU24>T{Q8fBVne+2**fEpcAyEKAN)Kko0T z-TJRu_SMR!Wu;0j99r&fj~yNR<-BEz10puRV%pLD*f8|*i>!r5TJ{G=slE%k!Xn$c zblbV=>6^I1!#1eht!UEm?+<$6e!z=U{qN_)`Lg}`^1J{4udXw#+_R76`swM~oBuu5 zS*iTdZce|&ueC?ZuNLy13T6#TjeN1^s-B5hc*F0zN3$Ga*8S&uTp>HPDm+-@w$OzM zYi7CMT<R)#`Bk~zyi(PZQ%<?RDn4Di*2r@C-`C;m<JUDdOy<^^v;UTdVp~Anzdtj5 zc(1E1_wtau<ehM$t>B&Co%ZMVr|kbwykDceOl|2c9p1H<w7s0K*j8*`7Q|h>>A!kz z;n}ZGuYG1{^mU6nuwomdnpN!dnO8C!QcPI?EZf@0E?v7k$Sh3bKyM*ud-SO$&lx|z zYfavyewu3wmojhkrK|+izbPxHhy=GL>E`QA4gLS**)O-a+K*n-Om}~Nch~np;K?b4 ze31+Z56+xAa6(g>q35c~2NsTe%ewzL;jev{f02-9R7+i=yYa)t3r3mC{|Eg(>&UO+ za+b{@>}KLbqu-y**M{zH+;#TUhrc~73|opso%Sx>vCNfeXT~+2AAyb&7I<7+@@?^B zruzBMG#lNGszpl@Z0gPb3HWF&p39u2=$~M+(%g~D!|%P%uLKeAi;=y&UbhV&3f+C9 zmMoh6@uf?eakEMT=RwtLmwF=($7LSe^{~WNfM?S7gt;!<tl3TKYc9NPay_*{w&7;? zIhp6LH{D9Mnm1?Dz0EWA-9inb8mBIjY%2aEo-*P1Wi`{^KV})kdzeqzbD~v1e2PfG zq~3==B5LQkyGKp!TO4&@(;mr#axz~diuoEkT(*C|!rXnaIy-lp%g?tPUMip16!F6J zf!;L(rgs@O5=QBd_o&NBYkdoeyZbNT--E~XuT($Q9{xRTt{BUkQ<<wS=QqgD@;{%j zOlH!Lojyq}L3XmOtM@S!TS%q#OqOa$^{P8Il{+%E<-AVj<<&C3)R$N6J9$=0!EUZk z-2N)-lEa%c&T2^g>*e2aZBAtD9^<|y;j(WT_ab$dec{b8`{Hxrnd_=q0x6eE4^6rv z`zuMurC9dH>-XOLH#z6=J0DQ`ZGZYt#w86$=VyKD-_;oRDjnuue$9oGZ^Ck+s-+X- z+H-t3er-OmeMjue?{kl6vtLMG#*|a=>-fgi!b_aDFPj+A$US}TG^3NxH&4h=j!ZA% zSywfGxwyXFhx045R(yVN>Gs28JMKQK`Fiy9f^zLR{u{HW#(erIzqF}*_lxzy+Zrs_ zMD+h&Z*jH5^=97#@z3t8(K<IC3VboY;u>=CP1M$d4L+NL5AOQTAF<<>&(c{t%q|I^ zt}ibBe9`?=#oy|B+c1V2&vj)LpN?yv{@0e?meAs5U~Odf^v0CNrfL=C838rA-@d;K zYyZEYTC4tB_I@L;>wU}1ofjtQcz3&h>d-o=Vf0Pss$oN3%$3UPlY$kM^`D*f6S<bM z#O8Qd!{fO&wMA3A8x)^k3=)sY6|Jkazkc_u?q2^(8O#D&S?3KJZ{E0e=D+vPcc<T< z+I?BP$YhGxtd!}+tS543WyeM7Ii~&({`X9N+WYH4dRo$VG9USA-LS2-Ik(}y%;paF z?C1tHy(!J|dCyy#gSzGxDjM~lz2zmG$hZH__mkP3@il#=Pp0~I2?%eO@!n!&Bl%>* ztl%BTvlSj(TitAVW#)%$mN4bVk*z1sf8BDaJh!c0seeMop8ou}?7fc5Ef4PWac(gE zzvJOUrBe)>B}&aVe%oOzW+eIkvR(Aro!MuL&8~gq`?FVDV2fI+PByFMwC|F!d(`+W z1acT^YV0x!Pulx-=ucAjc$T>Bfqb0SL4MUo22p=67m3vFIl+^xzsVpz`AmfR)N-ZC z_NfksCC>HS6FP2@8QRZKHmT2O;*1l{Gn?k=#!Q>Xe;~nmY10#H5d-DOs2%B+Jhhud z{(C>%<*=)?#<k!|)WgJu%hRNoXGI;7doAR6dD|4#=8#CYb4n}fR&IK8XP>aP$IV$a z%=;L4C-eAEF`2pQCR3W#*`ErZ#iVppSxmk}I=6+U+zMjfnY~atlrwDiB+rnrcfZSZ zOR__>4kXHcIR5k1YVOT3r@!7^zMA=QXpm$_h^K`A?c8G}Wjn=ES_0G7Fg|yguC!yb z@M(v4nokwK89d%Jp?IaY$^*qWM^=Wg$%=OEUQ~EU`EuX%-@@??Qeks%Xdm+Hme)QW z>Tu-Bq^DQZj>O;F%vf;Pu5xPerp-E43?64gb1o?gz5cArsP_3|`vggKM`p+8{u-4g zvMvUV2?u`Mxb#pW+1#*`Eml+O%90NOI?E4CdF;3PWznIMn(h9-89qP$ShFo<$&s?g zDaMZSb<1<FDNg>=*yj;D;dS=MzE`u2E}3f`J@NQj>;@(6_PI9I-(2|GyC2N95-L2o zr1kaB`G20YH`ndilpkhjss5@nWY?Xa2Ex*%&1Z_XtLAvKIp3HtK~-|`#~9Z8Nir{f zU$8$~x5B`n^Y6MN|6Q!TtkTY;evhB;xBj1l-1_?W>yI-WnEoWH@4elvxAXpluimgj z;kHXcgj1RWUn*<BETiZ|ttL5!#}RYxw*Gl@eV^|8yn83l{!K4(N|9~zR(8!6auV<I z3v&2*_D7)8+15hW3CTuDDLM}>>Rj$iuU4KG7gSzXC%I`G57SjG>AOb-^_DBo`g6pE zNyBWfyQlxOM=w(UZ(nY{`g46u{r-4Illi`TYLBe`eU~H8%gTX6S4+5W!SRPL9^E@4 z`f?-t0l}Gn8^V4k{FRryudDROMgPzX@smNf4^4lZd0_r8j}J*&v(+y)yPce6Aay>T z;pzG06iuB}{f6sXj%H;AE@Ed5tCXCTxQ<g;`?-tP`QGkRQAg+6w?6XyaM07k$20G7 zhk2+Oi^)1^k;Fd@?1x=%{3t)X?2M#Ta*;=u#+ESa-e@){>0@7YuZD1M+HLdbh=zcQ zSa$H-f|!Haccg2~jOG=*@O|c%@=G97_>6_H=q82jk_BSnErk*D4^(RGu;3GKinTo1 zAfB+6<$LaZwhMOi(jV`iH7_uD^MU+N_PR2EjeSo2^o+VbX}96S?@p)o&(0Kj&0MSb zLWr+pT6Fv|vwQqe>Hk*weQZi-mz;ZI#gS_hZuhGFQ+Q%@v1r{9qdRjp_)2mA(w6%+ zbLpR|4P~50tJBl}B>mrGttj=WqxY@lf!p?Po*uk-AwQ=3OjD_lL9l>(acsd7Px0f) zq7t9f5)Hn*e)Fz^{iOOyQTN4`Z-2d>k+UyA;QsR^!oL+yOsElme5mci{Ha^Rz8n-- zZ0ULEg8kyPp@wNUWkf%GQdC-Tinp-h|MuJ;2F#qS@0$#sxO_}8+cTSK$(NQ%dltOc zIk$NJ_hRdR(=09-WZKFcY5le3heT>|1NX7zEZtX}FD+S8Cp=eTUx{<<v<<7?t6qQg zdd=r&f9r0onktdLGiFb+Nw%<R9iNojg+Kw58&5SfeAa)eo0wB2HGjFSK=zFL(H8m< z4esBY9G+V2ns9I8ZT}yO4n)^KdU;vBsPd=Eza{r{R$2P(|9f@y`D;fG?LIPJl3ikB zd7PK}vN!7-X4!5qXF7E1n|?%Pc+DYxsQ_t{jIX<s^W8u2%<0jQdA4mUtJl5M&!<z4 zExFX6_rC5!{E5e3m+p{bW{6+(x?snyn8+{IPcKY(a4h|wBWL$gk>5Y!FGns|$`JkJ za=85Iv$GiAb8VQ;KP%6xGMHhi;nV%o897+b^D?C$_C3+a(d;;tCvaiq&%=MW-!|P` zUsh)Kt#<RlRUUua7TC-GWq9Y7`Qt~#!ho7Z1r?iJ<ljq}oyeSW<?Gh+$C-|o#q*LD zgt(oT7rrBWPvF6FhM*ex;1z{g7c(m+)^5Lg`>T*d*6AK*vj;{e@=^;P+Xj66x#)|7 z3QzW3pO!j}+0$CT+gmD2^B<pgEhxy~(3W}g=N(Yma>CtfrJ;^?wBFD8Yj`re8dn)L z+}PnMpnZ^`f#+#VpYu*nuZE2pOK-DnJa#w3&F#Ya)iL$Gg&WGu4lS3HHBJ6?w^w;~ zk8;!UOVu;gUA1m34Al(iZMP6mFe=~BQ&=RwRa7pJZSwa*&mL<V(|nued+dEJO&gY- zocaH*fspj%PR3cuNxs?tvnFcG?q&bEEXa@H+CRB{=d0P)hM29DnQmkd`_47hL8{hC zTym+y^&R}T<vJ{Qzi)4mHJZw6G|A6Qa`oj?^9l{lI9aIjOtL$?gC}{DP<)K>BIzH( zHES52)+9`}IQgJ6^r&B`!-RENzF9j8R!;ey;&F*pX8x_u_cLk_uv$(r>}Zy{d(`y$ zItwKo!M;nkc+d6xm?*u;NF(}#!P>L?vkujITskSCdgryV?w7*<(S>Dud*?CVINksF z{<J!gh#qz3?cT3$zuLrq{3wUMqx30@4?4TTYa~LA1updd<NM>-D$>DOf9r(f%Jgk# zUu;rLc*J!(&Sl3&!-6#@g#s5UA4#^HuV#FBrH2W>jy3BJ$3>3?J{P)I=`9yux%ZRG z<=}iB;R1`(=RUb_RC}tk%lfR#oFz+qwk>Upaf-XM<MhvGg>!h!6Zh%fYj>G@{p9Nd zm-Rm9NSQy;yk^aCf0Fxy8Jl=K_h_v$i)lX_y4-a3lS0nOlhJ2{&Kd2q-fuB^dAPsO zx4+z9dbH+OPyGEm`sbg|{;a=F?eE^+dgp4}vE~);4&ABUx8bnD`qj@H1$aINtu0s8 zQMC^*`M!OT``Jpy=M8_9CR`5ux6?2~>MH~D<m52lJ&X@N@%JCU{=e5IF22kA>BnC} zvHEdy=E~cZ|I<^x?eSt6<08?6=aRQZ2nMxnxNqHe;P%#w$`7_wNY0Y>5%360^(qP7 zGVMukOJVD!l9UI<{<D`ZN^~}4RiAf$`;Xe+cjNYbT|0lWW`!Y-T#y&z?DO{3Gk@=| zyq44O>%Eb*-p^xEJTAMJC4c|mv@LUwKHJ3rhL^WCE;CnrsM9+6sP(PxX)}#enO$F4 zD{^p3T1D-<pLDsnvi{bCf=OKI&D&b0t~qbKdFjm^4l>8NKWIl+C$@zPwXa`kUg6@# zy5T`jt<;Om4zF`NJhGSVHBvg`e{j*yip8?Z)jZmBy2Dz}Oq*u*WnRX%o*5wz(stGt z%xF(OpKe-l$kxD5l~=G%Jud86R@6n|tG;u@_8$~Dv*B=>?_CbdlTU2?-uD$wycKF@ zvdA*>3(tlHrQ8<HGiv*d_cb)DnFuSG6>zCFADk>GH9uP_ew%6V%KXNgM;@v^ih5)r z{eI!Y#3t5?3!M+OMJ@}4Y4$s<dlYMD_hiA6#>nrd-()1kXwT`f7X7PuN~2amdd)V^ z3rdgJPnMTfy(oTl{Lt5ZdcW^3{qlE-`);|^M~ioP_N+)fw?*yt=hbHQGq)b84^%$c z<C}1J(~~OC+r}QQPZ;OsXjm4uL@P<le~LGLwK8aZx@ErWW#yl)6<4i<dJh*o<aeJh zqj}HwSyyG|1GW1Pd$s@iTfD6EKly2byz|a4@4p{zI4@_b_0ZzSj%hX0C59>Q^seon z=sM+1>5pwTeY(|F9aH>e9;+NYWpr|aOX3;D-);?Is&9H1imy7eXVY^#wLqsy?fdul zUwiu6aK7$7*4#^WFJy#6E+yWc@5*pszW%Od{{$_?SthJhXQ(xMC)0iZa_xz0*F6^e zoz)#)aHVRt$V0Q4+7my_>|n3yH#(ip^2bFXdAm(SzTU~u#=xnsa+NvzCENer*G%a< zTy5C%^mFkhhWlCHW`EdQ{`)}k*9#{X>~&CHZYZ?5N1^4>j*!!pKb5!0c7OX;eQ$wf zDbx9|phNO~XSPMC8Q#iM*Z(!KzWs1RK7XIDdPMJA9d%3D{!f?v>r{?E-Z-aZ(`0oS zmOnk)rYr2Yvq6tTx^U)$g69dnPj=|NQ&e`zl5U&O_u6sA;?G@$`+0jVb*%KbKl8#L z<qcx~iK%j5<ZG+yUOs!~E`JhSD`_+A3%P#w?7t6RthM{=qf5);)B_J}b86nS+(Xr} zcxp!Ep2Cv>uf#3}a@bTIc6;&Q{mH<?>;Vsc1w43|Z)5hZd#BQ^^KEB4^4Ar=ao_Z% zj=><IVBV%}u~yu+r*3L9=H=y`JaEV2on)(MW7d-YQ!dV9TiTn;v9eqGzI@-)F#B}n zm69#0rH}7UEIietaNj>U?67NP{ez@m0e9~;3wj4XsyuYVr&X+NcH;gU5!xc&Yuwka zQo59RdyU|>V`;pHf3oij7Q7lYbJwaHPU#ztEzhjyK793k?28v`s#f^STd3X2Q+=`1 z{?ppb7v55`TE7zRyo`OIo7lccEz&*z*^+EVm*5}Y6j`3w-j8fl2oH*!Ry50;nZ-be z?QB2OQ^QM%0Uy>#bK8YhpO?y+^{{$<i>TxY8G%5qfWF&{?-=ga{<%Qq^n(kU6V;zw z3E8|TRBYakfVum;EoaSl4+x#%uXz2NY5dwVs}^py=J4%Io#bw!IeGQ$XR~)FcGuo7 zxS`N;;PA(Ei(89TpJ<8CpHuJrZ}R>x*`JE-KYM?ge7;`e_~qU!+c<ocZ6325%0D~W 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 G2~7YTq+NFa diff --git a/crates/zed/resources/windows/zed.iss b/crates/zed/resources/windows/zed.iss index 2e76f35a0b..9d104d1f15 100644 --- a/crates/zed/resources/windows/zed.iss +++ b/crates/zed/resources/windows/zed.iss @@ -62,7 +62,6 @@ Source: "{#ResourcesDir}\Zed.exe"; DestDir: "{code:GetInstallDir}"; Flags: ignor Source: "{#ResourcesDir}\bin\*"; DestDir: "{code:GetInstallDir}\bin"; Flags: ignoreversion Source: "{#ResourcesDir}\tools\*"; DestDir: "{app}\tools"; Flags: ignoreversion Source: "{#ResourcesDir}\appx\*"; DestDir: "{app}\appx"; BeforeInstall: RemoveAppxPackage; AfterInstall: AddAppxPackage; Flags: ignoreversion; Check: IsWindows11OrLater -Source: "{#ResourcesDir}\amd_ags_x64.dll"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: "{group}\{#AppName}"; Filename: "{app}\{#AppExeName}.exe"; AppUserModelID: "{#AppUserId}" @@ -1246,6 +1245,16 @@ Root: HKCU; Subkey: "Software\Classes\zed\DefaultIcon"; ValueType: "string"; Val Root: HKCU; Subkey: "Software\Classes\zed\shell\open\command"; ValueType: "string"; ValueData: """{app}\Zed.exe"" ""%1""" [Code] +function InitializeSetup(): Boolean; +begin + Result := True; + + if not WizardSilent() and IsAdmin() then begin + MsgBox('This User Installer is not meant to be run as an Administrator.', mbError, MB_OK); + Result := False; + end; +end; + function WizardNotSilent(): Boolean; begin Result := not WizardSilent(); diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index c264135e5c..d0b9c53397 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -42,7 +42,7 @@ use theme::{ ActiveTheme, IconThemeNotFoundError, SystemAppearance, ThemeNotFoundError, ThemeRegistry, ThemeSettings, }; -use util::{ResultExt, TryFutureExt, maybe}; +use util::{ConnectionResult, ResultExt, TryFutureExt, maybe}; use uuid::Uuid; use welcome::{FIRST_OPEN, show_welcome_view}; use workspace::{ @@ -613,7 +613,6 @@ pub fn main() { language_selector::init(cx); toolchain_selector::init(cx); theme_selector::init(cx); - settings_profile_selector::init(cx); language_tools::init(cx); call::init(app_state.client.clone(), app_state.user_store.clone(), cx); notifications::init(app_state.client.clone(), app_state.user_store.clone(), cx); @@ -682,9 +681,17 @@ pub fn main() { cx.spawn({ let client = app_state.client.clone(); - async move |cx| authenticate(client, &cx).await + async move |cx| match authenticate(client, &cx).await { + ConnectionResult::Timeout => log::error!("Timeout during initial auth"), + ConnectionResult::ConnectionReset => { + log::error!("Connection reset during initial auth") + } + ConnectionResult::Result(r) => { + r.log_err(); + } + } }) - .detach_and_log_err(cx); + .detach(); let urls: Vec<_> = args .paths_or_urls @@ -834,7 +841,15 @@ fn handle_open_request(request: OpenRequest, app_state: Arc<AppState>, cx: &mut let client = app_state.client.clone(); // we continue even if authentication fails as join_channel/ open channel notes will // show a visible error message. - authenticate(client, &cx).await.log_err(); + match authenticate(client, &cx).await { + ConnectionResult::Timeout => { + log::error!("Timeout during open request handling") + } + ConnectionResult::ConnectionReset => { + log::error!("Connection reset during open request handling") + } + ConnectionResult::Result(r) => r?, + }; if let Some(channel_id) = request.join_channel { cx.update(|cx| { @@ -884,18 +899,18 @@ fn handle_open_request(request: OpenRequest, app_state: Arc<AppState>, cx: &mut } } -async fn authenticate(client: Arc<Client>, cx: &AsyncApp) -> Result<()> { +async fn authenticate(client: Arc<Client>, cx: &AsyncApp) -> ConnectionResult<()> { if stdout_is_a_pty() { if client::IMPERSONATE_LOGIN.is_some() { - client.sign_in_with_optional_connect(false, cx).await?; + return client.authenticate_and_connect(false, cx).await; } else if client.has_credentials(cx).await { - client.sign_in_with_optional_connect(true, cx).await?; + return client.authenticate_and_connect(true, cx).await; } } else if client.has_credentials(cx).await { - client.sign_in_with_optional_connect(true, cx).await?; + return client.authenticate_and_connect(true, cx).await; } - Ok(()) + ConnectionResult::Result(Ok(())) } async fn system_id() -> Result<IdType> { diff --git a/crates/zed/src/reliability.rs b/crates/zed/src/reliability.rs index d7f1473288..ccbe57e7b3 100644 --- a/crates/zed/src/reliability.rs +++ b/crates/zed/src/reliability.rs @@ -63,7 +63,7 @@ pub fn init_panic_hook( location.column(), match app_commit_sha.as_ref() { Some(commit_sha) => format!( - "https://github.com/zed-industries/zed/blob/{}/{}#L{} \ + "https://github.com/zed-industries/zed/blob/{}/src/{}#L{} \ (may not be uploaded, line may be incorrect if files modified)\n", commit_sha.full(), location.file(), diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index af317edeee..24c7ab5ba2 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -19,7 +19,6 @@ use collections::VecDeque; use debugger_ui::debugger_panel::DebugPanel; use editor::ProposedChangesEditorToolbar; use editor::{Editor, MultiBuffer}; -use feature_flags::{FeatureFlagAppExt, PanicFeatureFlag}; use futures::future::Either; use futures::{StreamExt, channel::mpsc, select_biased}; use git_ui::git_panel::GitPanel; @@ -54,12 +53,9 @@ use settings::{ initial_local_debug_tasks_content, initial_project_settings_content, initial_tasks_content, update_settings_file, }; -use std::{ - borrow::Cow, - path::{Path, PathBuf}, - sync::Arc, - sync::atomic::{self, AtomicBool}, -}; +use std::path::PathBuf; +use std::sync::atomic::{self, AtomicBool}; +use std::{borrow::Cow, path::Path, sync::Arc}; use terminal_view::terminal_panel::{self, TerminalPanel}; use theme::{ActiveTheme, ThemeSettings}; use ui::{PopoverMenuHandle, prelude::*}; @@ -111,8 +107,6 @@ actions!( Zoom, /// Triggers a test panic for debugging. TestPanic, - /// Triggers a hard crash for debugging. - TestCrash, ] ); @@ -126,28 +120,11 @@ pub fn init(cx: &mut App) { cx.on_action(quit); cx.on_action(|_: &RestoreBanner, cx| title_bar::restore_banner(cx)); - let flag = cx.wait_for_flag::<PanicFeatureFlag>(); - cx.spawn(async |cx| { - if cx - .update(|cx| ReleaseChannel::global(cx) == ReleaseChannel::Dev) - .unwrap_or_default() - || flag.await - { - cx.update(|cx| { - cx.on_action(|_: &TestPanic, _| panic!("Ran the TestPanic action")); - cx.on_action(|_: &TestCrash, _| { - unsafe extern "C" { - fn puts(s: *const i8); - } - unsafe { - puts(0xabad1d3a as *const i8); - } - }); - }) - .ok(); - }; - }) - .detach(); + + if ReleaseChannel::global(cx) == ReleaseChannel::Dev { + cx.on_action(test_panic); + } + cx.on_action(|_: &OpenLog, cx| { with_active_or_new_workspace(cx, |workspace, window, cx| { open_log_file(workspace, window, cx); @@ -1010,6 +987,10 @@ fn about( .detach(); } +fn test_panic(_: &TestPanic, _: &mut App) { + panic!("Ran the TestPanic action") +} + fn install_cli( _: &mut Workspace, _: &install_cli::Install, @@ -4354,7 +4335,6 @@ mod tests { "menu", "notebook", "notification_panel", - "onboarding", "outline", "outline_panel", "pane", @@ -4367,7 +4347,6 @@ mod tests { "repl", "rules_library", "search", - "settings_profile_selector", "snippets", "supermaven", "svg", diff --git a/crates/zed/src/zed/app_menus.rs b/crates/zed/src/zed/app_menus.rs index 15d5659f03..78532b10b4 100644 --- a/crates/zed/src/zed/app_menus.rs +++ b/crates/zed/src/zed/app_menus.rs @@ -24,10 +24,6 @@ pub fn app_menus() -> Vec<Menu> { zed_actions::OpenDefaultKeymap, ), MenuItem::action("Open Project Settings", super::OpenProjectSettings), - MenuItem::action( - "Select Settings Profile...", - zed_actions::settings_profile_selector::Toggle, - ), MenuItem::action( "Select Theme...", zed_actions::theme_selector::Toggle::default(), diff --git a/crates/zed/src/zed/component_preview.rs b/crates/zed/src/zed/component_preview.rs index 480505338b..670793cff3 100644 --- a/crates/zed/src/zed/component_preview.rs +++ b/crates/zed/src/zed/component_preview.rs @@ -105,7 +105,6 @@ enum PreviewPage { struct ComponentPreview { active_page: PreviewPage, active_thread: Option<Entity<ActiveThread>>, - reset_key: usize, component_list: ListState, component_map: HashMap<ComponentId, ComponentMetadata>, components: Vec<ComponentMetadata>, @@ -139,7 +138,8 @@ impl ComponentPreview { let project_clone = project.clone(); cx.spawn_in(window, async move |entity, cx| { - let thread_store_future = load_preview_thread_store(project_clone.clone(), cx); + let thread_store_future = + load_preview_thread_store(workspace_clone.clone(), project_clone.clone(), cx); let text_thread_store_future = load_preview_text_thread_store(workspace_clone.clone(), project_clone.clone(), cx); @@ -188,7 +188,6 @@ impl ComponentPreview { let mut component_preview = Self { active_page, active_thread: None, - reset_key: 0, component_list, component_map: component_registry.component_map(), components: sorted_components, @@ -266,13 +265,8 @@ impl ComponentPreview { } fn set_active_page(&mut self, page: PreviewPage, cx: &mut Context<Self>) { - if self.active_page == page { - // Force the current preview page to render again - self.reset_key = self.reset_key.wrapping_add(1); - } else { - self.active_page = page; - cx.emit(ItemEvent::UpdateTab); - } + self.active_page = page; + cx.emit(ItemEvent::UpdateTab); cx.notify(); } @@ -696,7 +690,6 @@ impl ComponentPreview { component.clone(), self.workspace.clone(), self.active_thread.clone(), - self.reset_key, )) .into_any_element() } else { @@ -1048,7 +1041,6 @@ pub struct ComponentPreviewPage { component: ComponentMetadata, workspace: WeakEntity<Workspace>, active_thread: Option<Entity<ActiveThread>>, - reset_key: usize, } impl ComponentPreviewPage { @@ -1056,7 +1048,6 @@ impl ComponentPreviewPage { component: ComponentMetadata, workspace: WeakEntity<Workspace>, active_thread: Option<Entity<ActiveThread>>, - reset_key: usize, // languages: Arc<LanguageRegistry> ) -> Self { Self { @@ -1064,7 +1055,6 @@ impl ComponentPreviewPage { component, workspace, active_thread, - reset_key, } } @@ -1165,7 +1155,6 @@ impl ComponentPreviewPage { }; v_flex() - .id(("component-preview", self.reset_key)) .size_full() .flex_1() .px_12() diff --git a/crates/zed/src/zed/component_preview/preview_support/active_thread.rs b/crates/zed/src/zed/component_preview/preview_support/active_thread.rs index de98106fae..825744572d 100644 --- a/crates/zed/src/zed/component_preview/preview_support/active_thread.rs +++ b/crates/zed/src/zed/component_preview/preview_support/active_thread.rs @@ -12,19 +12,21 @@ use ui::{App, Window}; use workspace::Workspace; pub fn load_preview_thread_store( + workspace: WeakEntity<Workspace>, project: Entity<Project>, cx: &mut AsyncApp, ) -> Task<Result<Entity<ThreadStore>>> { - cx.update(|cx| { - ThreadStore::load( - project.clone(), - cx.new(|_| ToolWorkingSet::default()), - None, - Arc::new(PromptBuilder::new(None).unwrap()), - cx, - ) - }) - .unwrap_or(Task::ready(Err(anyhow!("workspace dropped")))) + workspace + .update(cx, |_, cx| { + ThreadStore::load( + project.clone(), + cx.new(|_| ToolWorkingSet::default()), + None, + Arc::new(PromptBuilder::new(None).unwrap()), + cx, + ) + }) + .unwrap_or(Task::ready(Err(anyhow!("workspace dropped")))) } pub fn load_preview_text_thread_store( diff --git a/crates/zed/src/zed/inline_completion_registry.rs b/crates/zed/src/zed/inline_completion_registry.rs index bbecd26417..52b7166a11 100644 --- a/crates/zed/src/zed/inline_completion_registry.rs +++ b/crates/zed/src/zed/inline_completion_registry.rs @@ -1,10 +1,10 @@ -use client::{Client, UserStore}; +use client::{Client, DisableAiSettings, UserStore}; use collections::HashMap; use copilot::{Copilot, CopilotCompletionProvider}; use editor::Editor; use gpui::{AnyWindowHandle, App, AppContext as _, Context, Entity, WeakEntity}; use language::language_settings::{EditPredictionProvider, all_language_settings}; -use settings::SettingsStore; +use settings::{Settings as _, SettingsStore}; use smol::stream::StreamExt; use std::{cell::RefCell, rc::Rc, sync::Arc}; use supermaven::{Supermaven, SupermavenCompletionProvider}; @@ -90,7 +90,10 @@ pub fn init(client: Arc<Client>, user_store: Entity<UserStore>, cx: &mut App) { let new_provider = all_language_settings(None, cx).edit_predictions.provider; if new_provider != provider { - let tos_accepted = user_store.read(cx).has_accepted_terms_of_service(); + let tos_accepted = user_store + .read(cx) + .current_user_has_accepted_terms() + .unwrap_or(false); telemetry::event!( "Edit Prediction Provider Changed", @@ -192,6 +195,18 @@ fn register_backward_compatible_actions(editor: &mut Editor, cx: &mut Context<Ed }, )) .detach(); + if !DisableAiSettings::get_global(cx).disable_ai { + editor + .register_action(cx.listener( + |editor, + _: &editor::actions::AcceptPartialCopilotSuggestion, + window: &mut Window, + cx: &mut Context<Editor>| { + editor.accept_partial_inline_completion(&Default::default(), window, cx); + }, + )) + .detach(); + } } fn assign_edit_prediction_provider( @@ -229,7 +244,7 @@ fn assign_edit_prediction_provider( } } EditPredictionProvider::Zed => { - if user_store.read(cx).current_user().is_some() { + if client.status().borrow().is_connected() { let mut worktree = None; if let Some(buffer) = &singleton_buffer { diff --git a/crates/zed/src/zed/quick_action_bar.rs b/crates/zed/src/zed/quick_action_bar.rs index 1164704ce6..aff124a0bc 100644 --- a/crates/zed/src/zed/quick_action_bar.rs +++ b/crates/zed/src/zed/quick_action_bar.rs @@ -192,7 +192,7 @@ impl Render for QuickActionBar { }; v_flex() .child( - IconButton::new("toggle_code_actions_icon", IconName::BoltOutlined) + IconButton::new("toggle_code_actions_icon", IconName::Bolt) .icon_size(IconSize::Small) .style(ButtonStyle::Subtle) .disabled(!has_available_code_actions) diff --git a/crates/zed_actions/src/lib.rs b/crates/zed_actions/src/lib.rs index 64891b6973..4b4bf016c4 100644 --- a/crates/zed_actions/src/lib.rs +++ b/crates/zed_actions/src/lib.rs @@ -260,25 +260,14 @@ pub mod icon_theme_selector { } } -pub mod settings_profile_selector { - use gpui::Action; - use schemars::JsonSchema; - use serde::Deserialize; - - #[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)] - #[action(namespace = settings_profile_selector)] - pub struct Toggle; -} - pub mod agent { use gpui::actions; actions!( agent, [ - /// Opens the agent settings panel. - #[action(deprecated_aliases = ["agent::OpenConfiguration"])] - OpenSettings, + /// Opens the agent configuration panel. + OpenConfiguration, /// Opens the agent onboarding modal. OpenOnboardingModal, /// Resets the agent onboarding state. diff --git a/crates/zeta/Cargo.toml b/crates/zeta/Cargo.toml index 26eeda3f22..c2b1de08ae 100644 --- a/crates/zeta/Cargo.toml +++ b/crates/zeta/Cargo.toml @@ -21,7 +21,6 @@ ai_onboarding.workspace = true anyhow.workspace = true arrayvec.workspace = true client.workspace = true -cloud_llm_client.workspace = true collections.workspace = true command_palette_hooks.workspace = true copilot.workspace = true @@ -40,6 +39,7 @@ log.workspace = true menu.workspace = true postage.workspace = true project.workspace = true +proto.workspace = true regex.workspace = true release_channel.workspace = true serde.workspace = true @@ -52,17 +52,16 @@ thiserror.workspace = true ui.workspace = true util.workspace = true uuid.workspace = true -workspace-hack.workspace = true workspace.workspace = true worktree.workspace = true zed_actions.workspace = true +zed_llm_client.workspace = true +workspace-hack.workspace = true [dev-dependencies] -call = { workspace = true, features = ["test-support"] } +collections = { workspace = true, features = ["test-support"] } client = { workspace = true, features = ["test-support"] } clock = { workspace = true, features = ["test-support"] } -cloud_api_types.workspace = true -collections = { workspace = true, features = ["test-support"] } ctor.workspace = true editor = { workspace = true, features = ["test-support"] } gpui = { workspace = true, features = ["test-support"] } @@ -78,4 +77,5 @@ tree-sitter-rust.workspace = true unindent.workspace = true workspace = { workspace = true, features = ["test-support"] } worktree = { workspace = true, features = ["test-support"] } +call = { workspace = true, features = ["test-support"] } zlog.workspace = true diff --git a/crates/zeta/src/zeta.rs b/crates/zeta/src/zeta.rs index f130c3a965..d6f033899d 100644 --- a/crates/zeta/src/zeta.rs +++ b/crates/zeta/src/zeta.rs @@ -17,10 +17,6 @@ pub use rate_completion_modal::*; use anyhow::{Context as _, Result, anyhow}; use arrayvec::ArrayVec; use client::{Client, EditPredictionUsage, UserStore}; -use cloud_llm_client::{ - AcceptEditPredictionBody, EXPIRED_LLM_TOKEN_HEADER_NAME, MINIMUM_REQUIRED_VERSION_HEADER_NAME, - PredictEditsBody, PredictEditsResponse, ZED_VERSION_HEADER_NAME, -}; use collections::{HashMap, HashSet, VecDeque}; use futures::AsyncReadExt; use gpui::{ @@ -57,6 +53,10 @@ use uuid::Uuid; use workspace::Workspace; use workspace::notifications::{ErrorMessagePrompt, NotificationId}; use worktree::Worktree; +use zed_llm_client::{ + AcceptEditPredictionBody, EXPIRED_LLM_TOKEN_HEADER_NAME, MINIMUM_REQUIRED_VERSION_HEADER_NAME, + PredictEditsBody, PredictEditsResponse, ZED_VERSION_HEADER_NAME, +}; const CURSOR_MARKER: &'static str = "<|user_cursor_is_here|>"; const START_OF_FILE_MARKER: &'static str = "<|start_of_file|>"; @@ -121,10 +121,9 @@ impl Dismissable for ZedPredictUpsell { } pub fn should_show_upsell_modal(user_store: &Entity<UserStore>, cx: &App) -> bool { - if user_store.read(cx).has_accepted_terms_of_service() { - !ZedPredictUpsell::dismissed() - } else { - true + match user_store.read(cx).current_user_has_accepted_terms() { + Some(true) => !ZedPredictUpsell::dismissed(), + Some(false) | None => true, } } @@ -146,14 +145,14 @@ pub struct InlineCompletion { input_events: Arc<str>, input_excerpt: Arc<str>, output_excerpt: Arc<str>, - buffer_snapshotted_at: Instant, + request_sent_at: Instant, response_received_at: Instant, } impl InlineCompletion { fn latency(&self) -> Duration { self.response_received_at - .duration_since(self.buffer_snapshotted_at) + .duration_since(self.request_sent_at) } fn interpolate(&self, new_snapshot: &BufferSnapshot) -> Option<Vec<(Range<Anchor>, String)>> { @@ -227,9 +226,12 @@ pub struct Zeta { data_collection_choice: Entity<DataCollectionChoice>, llm_token: LlmApiToken, _llm_token_subscription: Subscription, + /// Whether the terms of service have been accepted. + tos_accepted: bool, /// Whether an update to a newer version of Zed is required to continue using Zeta. update_required: bool, user_store: Entity<UserStore>, + _user_store_subscription: Subscription, license_detection_watchers: HashMap<WorktreeId, Rc<LicenseDetectionWatcher>>, } @@ -304,7 +306,22 @@ impl Zeta { .detach_and_log_err(cx); }, ), + tos_accepted: user_store + .read(cx) + .current_user_has_accepted_terms() + .unwrap_or(false), update_required: false, + _user_store_subscription: cx.subscribe(&user_store, |this, user_store, event, cx| { + match event { + client::user::Event::PrivateUserInfoUpdated => { + this.tos_accepted = user_store + .read(cx) + .current_user_has_accepted_terms() + .unwrap_or(false); + } + _ => {} + } + }), license_detection_watchers: HashMap::default(), user_store, } @@ -391,48 +408,104 @@ impl Zeta { + Send + 'static, { - let buffer = buffer.clone(); - let buffer_snapshotted_at = Instant::now(); let snapshot = self.report_changes_for_buffer(&buffer, cx); - let zeta = cx.entity(); + let diagnostic_groups = snapshot.diagnostic_groups(None); + let cursor_point = cursor.to_point(&snapshot); + let cursor_offset = cursor_point.to_offset(&snapshot); let events = self.events.clone(); + let path: Arc<Path> = snapshot + .file() + .map(|f| Arc::from(f.full_path(cx).as_path())) + .unwrap_or_else(|| Arc::from(Path::new("untitled"))); + + let zeta = cx.entity(); let client = self.client.clone(); let llm_token = self.llm_token.clone(); let app_version = AppVersion::global(cx); - let full_path: Arc<Path> = snapshot - .file() - .map(|f| Arc::from(f.full_path(cx).as_path())) - .unwrap_or_else(|| Arc::from(Path::new("untitled"))); - let full_path_str = full_path.to_string_lossy().to_string(); - let cursor_point = cursor.to_point(&snapshot); - let cursor_offset = cursor_point.to_offset(&snapshot); - let make_events_prompt = move || prompt_for_events(&events, MAX_EVENT_TOKENS); - let gather_task = gather_context( - project, - full_path_str, - &snapshot, - cursor_point, - make_events_prompt, - can_collect_data, - cx, - ); + let buffer = buffer.clone(); + + let local_lsp_store = + project.and_then(|project| project.read(cx).lsp_store().read(cx).as_local()); + let diagnostic_groups = if let Some(local_lsp_store) = local_lsp_store { + Some( + diagnostic_groups + .into_iter() + .filter_map(|(language_server_id, diagnostic_group)| { + let language_server = + local_lsp_store.running_language_server_for_id(language_server_id)?; + + Some(( + language_server.name(), + diagnostic_group.resolve::<usize>(&snapshot), + )) + }) + .collect::<Vec<_>>(), + ) + } else { + None + }; cx.spawn(async move |this, cx| { - let GatherContextOutput { - body, - editable_range, - } = gather_task.await?; + let request_sent_at = Instant::now(); + + struct BackgroundValues { + input_events: String, + input_excerpt: String, + speculated_output: String, + editable_range: Range<usize>, + input_outline: String, + } + + let values = cx + .background_spawn({ + let snapshot = snapshot.clone(); + let path = path.clone(); + async move { + let path = path.to_string_lossy(); + let input_excerpt = excerpt_for_cursor_position( + cursor_point, + &path, + &snapshot, + MAX_REWRITE_TOKENS, + MAX_CONTEXT_TOKENS, + ); + let input_events = prompt_for_events(&events, MAX_EVENT_TOKENS); + let input_outline = prompt_for_outline(&snapshot); + + anyhow::Ok(BackgroundValues { + input_events, + input_excerpt: input_excerpt.prompt, + speculated_output: input_excerpt.speculated_output, + editable_range: input_excerpt.editable_range.to_offset(&snapshot), + input_outline, + }) + } + }) + .await?; log::debug!( "Events:\n{}\nExcerpt:\n{:?}", - body.input_events, - body.input_excerpt + values.input_events, + values.input_excerpt ); - let input_outline = body.outline.clone().unwrap_or_default(); - let input_events = body.input_events.clone(); - let input_excerpt = body.input_excerpt.clone(); + let body = PredictEditsBody { + input_events: values.input_events.clone(), + input_excerpt: values.input_excerpt.clone(), + speculated_output: Some(values.speculated_output), + outline: Some(values.input_outline.clone()), + can_collect_data, + diagnostic_groups: diagnostic_groups.and_then(|diagnostic_groups| { + diagnostic_groups + .into_iter() + .map(|(name, diagnostic_group)| { + Ok((name.to_string(), serde_json::to_value(diagnostic_group)?)) + }) + .collect::<Result<Vec<_>>>() + .log_err() + }), + }; let response = perform_predict_edits(PerformPredictEditsParams { client, @@ -490,13 +563,13 @@ impl Zeta { response, buffer, &snapshot, - editable_range, + values.editable_range, cursor_offset, - full_path, - input_outline, - input_events, - input_excerpt, - buffer_snapshotted_at, + path, + values.input_outline, + values.input_events, + values.input_excerpt, + request_sent_at, &cx, ) .await @@ -695,7 +768,7 @@ and then another ) } - pub fn perform_predict_edits( + fn perform_predict_edits( params: PerformPredictEditsParams, ) -> impl Future<Output = Result<(PredictEditsResponse, Option<EditPredictionUsage>)>> { async move { @@ -850,7 +923,7 @@ and then another input_outline: String, input_events: String, input_excerpt: String, - buffer_snapshotted_at: Instant, + request_sent_at: Instant, cx: &AsyncApp, ) -> Task<Result<Option<InlineCompletion>>> { let snapshot = snapshot.clone(); @@ -896,7 +969,7 @@ and then another input_events: input_events.into(), input_excerpt: input_excerpt.into(), output_excerpt, - buffer_snapshotted_at, + request_sent_at, response_received_at: Instant::now(), })) }) @@ -1080,7 +1153,7 @@ and then another } } -pub struct PerformPredictEditsParams { +struct PerformPredictEditsParams { pub client: Arc<Client>, pub llm_token: LlmApiToken, pub app_version: SemanticVersion, @@ -1155,77 +1228,6 @@ fn common_prefix<T1: Iterator<Item = char>, T2: Iterator<Item = char>>(a: T1, b: .sum() } -pub struct GatherContextOutput { - pub body: PredictEditsBody, - pub editable_range: Range<usize>, -} - -pub fn gather_context( - project: Option<&Entity<Project>>, - full_path_str: String, - snapshot: &BufferSnapshot, - cursor_point: language::Point, - make_events_prompt: impl FnOnce() -> String + Send + 'static, - can_collect_data: bool, - cx: &App, -) -> Task<Result<GatherContextOutput>> { - let local_lsp_store = - project.and_then(|project| project.read(cx).lsp_store().read(cx).as_local()); - let diagnostic_groups: Vec<(String, serde_json::Value)> = - if let Some(local_lsp_store) = local_lsp_store { - snapshot - .diagnostic_groups(None) - .into_iter() - .filter_map(|(language_server_id, diagnostic_group)| { - let language_server = - local_lsp_store.running_language_server_for_id(language_server_id)?; - let diagnostic_group = diagnostic_group.resolve::<usize>(&snapshot); - let language_server_name = language_server.name().to_string(); - let serialized = serde_json::to_value(diagnostic_group).unwrap(); - Some((language_server_name, serialized)) - }) - .collect::<Vec<_>>() - } else { - Vec::new() - }; - - cx.background_spawn({ - let snapshot = snapshot.clone(); - async move { - let diagnostic_groups = if diagnostic_groups.is_empty() { - None - } else { - Some(diagnostic_groups) - }; - - let input_excerpt = excerpt_for_cursor_position( - cursor_point, - &full_path_str, - &snapshot, - MAX_REWRITE_TOKENS, - MAX_CONTEXT_TOKENS, - ); - let input_events = make_events_prompt(); - let input_outline = prompt_for_outline(&snapshot); - let editable_range = input_excerpt.editable_range.to_offset(&snapshot); - - let body = PredictEditsBody { - input_events, - input_excerpt: input_excerpt.prompt, - speculated_output: Some(input_excerpt.speculated_output), - outline: Some(input_outline), - can_collect_data, - diagnostic_groups, - }; - - Ok(GatherContextOutput { - body, - editable_range, - }) - } - }) -} - fn prompt_for_outline(snapshot: &BufferSnapshot) -> String { let mut input_outline = String::new(); @@ -1276,7 +1278,7 @@ struct RegisteredBuffer { } #[derive(Clone)] -pub enum Event { +enum Event { BufferChange { old_snapshot: BufferSnapshot, new_snapshot: BufferSnapshot, @@ -1571,12 +1573,7 @@ impl inline_completion::EditPredictionProvider for ZetaInlineCompletionProvider } fn needs_terms_acceptance(&self, cx: &App) -> bool { - !self - .zeta - .read(cx) - .user_store - .read(cx) - .has_accepted_terms_of_service() + !self.zeta.read(cx).tos_accepted } fn is_refreshing(&self) -> bool { @@ -1591,7 +1588,7 @@ impl inline_completion::EditPredictionProvider for ZetaInlineCompletionProvider _debounce: bool, cx: &mut Context<Self>, ) { - if self.needs_terms_acceptance(cx) { + if !self.zeta.read(cx).tos_accepted { return; } @@ -1603,7 +1600,7 @@ impl inline_completion::EditPredictionProvider for ZetaInlineCompletionProvider .zeta .read(cx) .user_store - .read_with(cx, |user_store, _cx| { + .read_with(cx, |user_store, _| { user_store.account_too_young() || user_store.has_overdue_invoices() }) { @@ -1820,14 +1817,13 @@ fn tokens_for_bytes(bytes: usize) -> usize { #[cfg(test)] mod tests { - use client::UserStore; use client::test::FakeServer; use clock::FakeSystemClock; - use cloud_api_types::{CreateLlmTokenResponse, LlmToken}; use gpui::TestAppContext; use http_client::FakeHttpClient; use indoc::indoc; use language::Point; + use rpc::proto; use settings::SettingsStore; use super::*; @@ -1860,7 +1856,7 @@ mod tests { input_events: "".into(), input_excerpt: "".into(), output_excerpt: "".into(), - buffer_snapshotted_at: Instant::now(), + request_sent_at: Instant::now(), response_received_at: Instant::now(), }; @@ -2031,45 +2027,28 @@ mod tests { <|editable_region_end|> ```"}; - let http_client = FakeHttpClient::create(move |req| async move { - match (req.method(), req.uri().path()) { - (&Method::POST, "/client/llm_tokens") => Ok(http_client::Response::builder() - .status(200) - .body( - serde_json::to_string(&CreateLlmTokenResponse { - token: LlmToken("the-llm-token".to_string()), - }) - .unwrap() - .into(), - ) - .unwrap()), - (&Method::POST, "/predict_edits/v2") => Ok(http_client::Response::builder() - .status(200) - .body( - serde_json::to_string(&PredictEditsResponse { - request_id: Uuid::parse_str("7e86480f-3536-4d2c-9334-8213e3445d45") - .unwrap(), - output_excerpt: completion_response.to_string(), - }) - .unwrap() - .into(), - ) - .unwrap()), - _ => Ok(http_client::Response::builder() - .status(404) - .body("Not Found".into()) - .unwrap()), - } + let http_client = FakeHttpClient::create(move |_| async move { + Ok(http_client::Response::builder() + .status(200) + .body( + serde_json::to_string(&PredictEditsResponse { + request_id: Uuid::parse_str("7e86480f-3536-4d2c-9334-8213e3445d45") + .unwrap(), + output_excerpt: completion_response.to_string(), + }) + .unwrap() + .into(), + ) + .unwrap()) }); let client = cx.update(|cx| Client::new(Arc::new(FakeSystemClock::new()), http_client, cx)); cx.update(|cx| { RefreshLlmTokenListener::register(client.clone(), cx); }); - // Construct the fake server to authenticate. - let _server = FakeServer::for_client(42, &client, cx).await; + let server = FakeServer::for_client(42, &client, cx).await; let user_store = cx.new(|cx| UserStore::new(client.clone(), cx)); - let zeta = cx.new(|cx| Zeta::new(None, client, user_store.clone(), cx)); + let zeta = cx.new(|cx| Zeta::new(None, client, user_store, cx)); let buffer = cx.new(|cx| Buffer::local(buffer_content, cx)); let cursor = buffer.read_with(cx, |buffer, _| buffer.anchor_before(Point::new(1, 0))); @@ -2077,6 +2056,13 @@ mod tests { zeta.request_completion(None, &buffer, cursor, false, cx) }); + server.receive::<proto::GetUsers>().await.unwrap(); + let token_request = server.receive::<proto::GetLlmToken>().await.unwrap(); + server.respond( + token_request.receipt(), + proto::GetLlmTokenResponse { token: "".into() }, + ); + let completion = completion_task.await.unwrap().unwrap(); buffer.update(cx, |buffer, cx| { buffer.edit(completion.edits.iter().cloned(), None, cx) @@ -2093,36 +2079,20 @@ mod tests { cx: &mut TestAppContext, ) -> Vec<(Range<Point>, String)> { let completion_response = completion_response.to_string(); - let http_client = FakeHttpClient::create(move |req| { + let http_client = FakeHttpClient::create(move |_| { let completion = completion_response.clone(); async move { - match (req.method(), req.uri().path()) { - (&Method::POST, "/client/llm_tokens") => Ok(http_client::Response::builder() - .status(200) - .body( - serde_json::to_string(&CreateLlmTokenResponse { - token: LlmToken("the-llm-token".to_string()), - }) - .unwrap() - .into(), - ) - .unwrap()), - (&Method::POST, "/predict_edits/v2") => Ok(http_client::Response::builder() - .status(200) - .body( - serde_json::to_string(&PredictEditsResponse { - request_id: Uuid::new_v4(), - output_excerpt: completion, - }) - .unwrap() - .into(), - ) - .unwrap()), - _ => Ok(http_client::Response::builder() - .status(404) - .body("Not Found".into()) - .unwrap()), - } + Ok(http_client::Response::builder() + .status(200) + .body( + serde_json::to_string(&PredictEditsResponse { + request_id: Uuid::new_v4(), + output_excerpt: completion, + }) + .unwrap() + .into(), + ) + .unwrap()) } }); @@ -2130,10 +2100,9 @@ mod tests { cx.update(|cx| { RefreshLlmTokenListener::register(client.clone(), cx); }); - // Construct the fake server to authenticate. - let _server = FakeServer::for_client(42, &client, cx).await; + let server = FakeServer::for_client(42, &client, cx).await; let user_store = cx.new(|cx| UserStore::new(client.clone(), cx)); - let zeta = cx.new(|cx| Zeta::new(None, client, user_store.clone(), cx)); + let zeta = cx.new(|cx| Zeta::new(None, client, user_store, cx)); let buffer = cx.new(|cx| Buffer::local(buffer_content, cx)); let snapshot = buffer.read_with(cx, |buffer, _| buffer.snapshot()); @@ -2142,6 +2111,13 @@ mod tests { zeta.request_completion(None, &buffer, cursor, false, cx) }); + server.receive::<proto::GetUsers>().await.unwrap(); + let token_request = server.receive::<proto::GetLlmToken>().await.unwrap(); + server.respond( + token_request.receipt(), + proto::GetLlmTokenResponse { token: "".into() }, + ); + let completion = completion_task.await.unwrap().unwrap(); completion .edits diff --git a/crates/zeta_cli/Cargo.toml b/crates/zeta_cli/Cargo.toml deleted file mode 100644 index e77351c219..0000000000 --- a/crates/zeta_cli/Cargo.toml +++ /dev/null @@ -1,45 +0,0 @@ -[package] -name = "zeta_cli" -version = "0.1.0" -edition.workspace = true -publish.workspace = true -license = "GPL-3.0-or-later" - -[lints] -workspace = true - -[[bin]] -name = "zeta" -path = "src/main.rs" - -[dependencies] -anyhow.workspace = true -clap.workspace = true -client.workspace = true -debug_adapter_extension.workspace = true -extension.workspace = true -fs.workspace = true -futures.workspace = true -gpui.workspace = true -gpui_tokio.workspace = true -language.workspace = true -language_extension.workspace = true -language_model.workspace = true -language_models.workspace = true -languages = { workspace = true, features = ["load-grammars"] } -node_runtime.workspace = true -paths.workspace = true -project.workspace = true -prompt_store.workspace = true -release_channel.workspace = true -reqwest_client.workspace = true -serde.workspace = true -serde_json.workspace = true -settings.workspace = true -shellexpand.workspace = true -terminal_view.workspace = true -util.workspace = true -watch.workspace = true -workspace-hack.workspace = true -zeta.workspace = true -smol.workspace = true diff --git a/crates/zeta_cli/LICENSE-GPL b/crates/zeta_cli/LICENSE-GPL deleted file mode 120000 index 89e542f750..0000000000 --- a/crates/zeta_cli/LICENSE-GPL +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE-GPL \ No newline at end of file diff --git a/crates/zeta_cli/build.rs b/crates/zeta_cli/build.rs deleted file mode 100644 index ccbb54c5b4..0000000000 --- a/crates/zeta_cli/build.rs +++ /dev/null @@ -1,14 +0,0 @@ -fn main() { - let cargo_toml = - std::fs::read_to_string("../zed/Cargo.toml").expect("Failed to read Cargo.toml"); - let version = cargo_toml - .lines() - .find(|line| line.starts_with("version = ")) - .expect("Version not found in crates/zed/Cargo.toml") - .split('=') - .nth(1) - .expect("Invalid version format") - .trim() - .trim_matches('"'); - println!("cargo:rustc-env=ZED_PKG_VERSION={}", version); -} diff --git a/crates/zeta_cli/src/headless.rs b/crates/zeta_cli/src/headless.rs deleted file mode 100644 index 959bb91a8f..0000000000 --- a/crates/zeta_cli/src/headless.rs +++ /dev/null @@ -1,128 +0,0 @@ -use client::{Client, ProxySettings, UserStore}; -use extension::ExtensionHostProxy; -use fs::RealFs; -use gpui::http_client::read_proxy_from_env; -use gpui::{App, AppContext, Entity}; -use gpui_tokio::Tokio; -use language::LanguageRegistry; -use language_extension::LspAccess; -use node_runtime::{NodeBinaryOptions, NodeRuntime}; -use project::Project; -use project::project_settings::ProjectSettings; -use release_channel::AppVersion; -use reqwest_client::ReqwestClient; -use settings::{Settings, SettingsStore}; -use std::path::PathBuf; -use std::sync::Arc; -use util::ResultExt as _; - -/// Headless subset of `workspace::AppState`. -pub struct ZetaCliAppState { - pub languages: Arc<LanguageRegistry>, - pub client: Arc<Client>, - pub user_store: Entity<UserStore>, - pub fs: Arc<dyn fs::Fs>, - pub node_runtime: NodeRuntime, -} - -// TODO: dedupe with crates/eval/src/eval.rs -pub fn init(cx: &mut App) -> ZetaCliAppState { - let app_version = AppVersion::load(env!("ZED_PKG_VERSION")); - release_channel::init(app_version, cx); - gpui_tokio::init(cx); - - let mut settings_store = SettingsStore::new(cx); - settings_store - .set_default_settings(settings::default_settings().as_ref(), cx) - .unwrap(); - cx.set_global(settings_store); - client::init_settings(cx); - - // Set User-Agent so we can download language servers from GitHub - let user_agent = format!( - "Zed/{} ({}; {})", - app_version, - std::env::consts::OS, - std::env::consts::ARCH - ); - let proxy_str = ProxySettings::get_global(cx).proxy.to_owned(); - let proxy_url = proxy_str - .as_ref() - .and_then(|input| input.parse().ok()) - .or_else(read_proxy_from_env); - let http = { - let _guard = Tokio::handle(cx).enter(); - - ReqwestClient::proxy_and_user_agent(proxy_url, &user_agent) - .expect("could not start HTTP client") - }; - cx.set_http_client(Arc::new(http)); - - Project::init_settings(cx); - - let client = Client::production(cx); - cx.set_http_client(client.http_client()); - - let git_binary_path = None; - let fs = Arc::new(RealFs::new( - git_binary_path, - cx.background_executor().clone(), - )); - - let mut languages = LanguageRegistry::new(cx.background_executor().clone()); - languages.set_language_server_download_dir(paths::languages_dir().clone()); - let languages = Arc::new(languages); - - let user_store = cx.new(|cx| UserStore::new(client.clone(), cx)); - - extension::init(cx); - - let (mut tx, rx) = watch::channel(None); - cx.observe_global::<SettingsStore>(move |cx| { - let settings = &ProjectSettings::get_global(cx).node; - let options = NodeBinaryOptions { - allow_path_lookup: !settings.ignore_system_version, - allow_binary_download: true, - use_paths: settings.path.as_ref().map(|node_path| { - let node_path = PathBuf::from(shellexpand::tilde(node_path).as_ref()); - let npm_path = settings - .npm_path - .as_ref() - .map(|path| PathBuf::from(shellexpand::tilde(&path).as_ref())); - ( - node_path.clone(), - npm_path.unwrap_or_else(|| { - let base_path = PathBuf::new(); - node_path.parent().unwrap_or(&base_path).join("npm") - }), - ) - }), - }; - tx.send(Some(options)).log_err(); - }) - .detach(); - let node_runtime = NodeRuntime::new(client.http_client(), None, rx); - - let extension_host_proxy = ExtensionHostProxy::global(cx); - - language::init(cx); - debug_adapter_extension::init(extension_host_proxy.clone(), cx); - language_extension::init( - LspAccess::Noop, - extension_host_proxy.clone(), - languages.clone(), - ); - language_model::init(client.clone(), cx); - language_models::init(user_store.clone(), client.clone(), cx); - languages::init(languages.clone(), node_runtime.clone(), cx); - prompt_store::init(cx); - terminal_view::init(cx); - - ZetaCliAppState { - languages, - client, - user_store, - fs, - node_runtime, - } -} diff --git a/crates/zeta_cli/src/main.rs b/crates/zeta_cli/src/main.rs deleted file mode 100644 index c5374b56c9..0000000000 --- a/crates/zeta_cli/src/main.rs +++ /dev/null @@ -1,376 +0,0 @@ -mod headless; - -use anyhow::{Result, anyhow}; -use clap::{Args, Parser, Subcommand}; -use futures::channel::mpsc; -use futures::{FutureExt as _, StreamExt as _}; -use gpui::{AppContext, Application, AsyncApp}; -use gpui::{Entity, Task}; -use language::Bias; -use language::Buffer; -use language::Point; -use language_model::LlmApiToken; -use project::{Project, ProjectPath}; -use release_channel::AppVersion; -use reqwest_client::ReqwestClient; -use std::path::{Path, PathBuf}; -use std::process::exit; -use std::str::FromStr; -use std::sync::Arc; -use std::time::Duration; -use zeta::{GatherContextOutput, PerformPredictEditsParams, Zeta, gather_context}; - -use crate::headless::ZetaCliAppState; - -#[derive(Parser, Debug)] -#[command(name = "zeta")] -struct ZetaCliArgs { - #[command(subcommand)] - command: Commands, -} - -#[derive(Subcommand, Debug)] -enum Commands { - Context(ContextArgs), - Predict { - #[arg(long)] - predict_edits_body: Option<FileOrStdin>, - #[clap(flatten)] - context_args: Option<ContextArgs>, - }, -} - -#[derive(Debug, Args)] -#[group(requires = "worktree")] -struct ContextArgs { - #[arg(long)] - worktree: PathBuf, - #[arg(long)] - cursor: CursorPosition, - #[arg(long)] - use_language_server: bool, - #[arg(long)] - events: Option<FileOrStdin>, -} - -#[derive(Debug, Clone)] -enum FileOrStdin { - File(PathBuf), - Stdin, -} - -impl FileOrStdin { - async fn read_to_string(&self) -> Result<String, std::io::Error> { - match self { - FileOrStdin::File(path) => smol::fs::read_to_string(path).await, - FileOrStdin::Stdin => smol::unblock(|| std::io::read_to_string(std::io::stdin())).await, - } - } -} - -impl FromStr for FileOrStdin { - type Err = <PathBuf as FromStr>::Err; - - fn from_str(s: &str) -> Result<Self, Self::Err> { - match s { - "-" => Ok(Self::Stdin), - _ => Ok(Self::File(PathBuf::from_str(s)?)), - } - } -} - -#[derive(Debug, Clone)] -struct CursorPosition { - path: PathBuf, - point: Point, -} - -impl FromStr for CursorPosition { - type Err = anyhow::Error; - - fn from_str(s: &str) -> Result<Self> { - let parts: Vec<&str> = s.split(':').collect(); - if parts.len() != 3 { - return Err(anyhow!( - "Invalid cursor format. Expected 'file.rs:line:column', got '{}'", - s - )); - } - - let path = PathBuf::from(parts[0]); - let line: u32 = parts[1] - .parse() - .map_err(|_| anyhow!("Invalid line number: '{}'", parts[1]))?; - let column: u32 = parts[2] - .parse() - .map_err(|_| anyhow!("Invalid column number: '{}'", parts[2]))?; - - // Convert from 1-based to 0-based indexing - let point = Point::new(line.saturating_sub(1), column.saturating_sub(1)); - - Ok(CursorPosition { path, point }) - } -} - -async fn get_context( - args: ContextArgs, - app_state: &Arc<ZetaCliAppState>, - cx: &mut AsyncApp, -) -> Result<GatherContextOutput> { - let ContextArgs { - worktree: worktree_path, - cursor, - use_language_server, - events, - } = args; - - let worktree_path = worktree_path.canonicalize()?; - if cursor.path.is_absolute() { - return Err(anyhow!("Absolute paths are not supported in --cursor")); - } - - let (project, _lsp_open_handle, buffer) = if use_language_server { - let (project, lsp_open_handle, buffer) = - open_buffer_with_language_server(&worktree_path, &cursor.path, &app_state, cx).await?; - (Some(project), Some(lsp_open_handle), buffer) - } else { - let abs_path = worktree_path.join(&cursor.path); - let content = smol::fs::read_to_string(&abs_path).await?; - let buffer = cx.new(|cx| Buffer::local(content, cx))?; - (None, None, buffer) - }; - - let worktree_name = worktree_path - .file_name() - .ok_or_else(|| anyhow!("--worktree path must end with a folder name"))?; - let full_path_str = PathBuf::from(worktree_name) - .join(&cursor.path) - .to_string_lossy() - .to_string(); - - let snapshot = cx.update(|cx| buffer.read(cx).snapshot())?; - let clipped_cursor = snapshot.clip_point(cursor.point, Bias::Left); - if clipped_cursor != cursor.point { - let max_row = snapshot.max_point().row; - if cursor.point.row < max_row { - return Err(anyhow!( - "Cursor position {:?} is out of bounds (line length is {})", - cursor.point, - snapshot.line_len(cursor.point.row) - )); - } else { - return Err(anyhow!( - "Cursor position {:?} is out of bounds (max row is {})", - cursor.point, - max_row - )); - } - } - - let events = match events { - Some(events) => events.read_to_string().await?, - None => String::new(), - }; - let can_collect_data = false; - cx.update(|cx| { - gather_context( - project.as_ref(), - full_path_str, - &snapshot, - clipped_cursor, - move || events, - can_collect_data, - cx, - ) - })? - .await -} - -pub async fn open_buffer_with_language_server( - worktree_path: &Path, - path: &Path, - app_state: &Arc<ZetaCliAppState>, - cx: &mut AsyncApp, -) -> Result<(Entity<Project>, Entity<Entity<Buffer>>, Entity<Buffer>)> { - let project = cx.update(|cx| { - Project::local( - app_state.client.clone(), - app_state.node_runtime.clone(), - app_state.user_store.clone(), - app_state.languages.clone(), - app_state.fs.clone(), - None, - cx, - ) - })?; - - let worktree = project - .update(cx, |project, cx| { - project.create_worktree(worktree_path, true, cx) - })? - .await?; - - let project_path = worktree.read_with(cx, |worktree, _cx| ProjectPath { - worktree_id: worktree.id(), - path: path.to_path_buf().into(), - })?; - - let buffer = project - .update(cx, |project, cx| project.open_buffer(project_path, cx))? - .await?; - - let lsp_open_handle = project.update(cx, |project, cx| { - project.register_buffer_with_language_servers(&buffer, cx) - })?; - - let log_prefix = path.to_string_lossy().to_string(); - wait_for_lang_server(&project, &buffer, log_prefix, cx).await?; - - Ok((project, lsp_open_handle, buffer)) -} - -// TODO: Dedupe with similar function in crates/eval/src/instance.rs -pub fn wait_for_lang_server( - project: &Entity<Project>, - buffer: &Entity<Buffer>, - log_prefix: String, - cx: &mut AsyncApp, -) -> Task<Result<()>> { - println!("{}⏵ Waiting for language server", log_prefix); - - let (mut tx, mut rx) = mpsc::channel(1); - - let lsp_store = project - .read_with(cx, |project, _| project.lsp_store()) - .unwrap(); - - let has_lang_server = buffer - .update(cx, |buffer, cx| { - lsp_store.update(cx, |lsp_store, cx| { - lsp_store - .language_servers_for_local_buffer(&buffer, cx) - .next() - .is_some() - }) - }) - .unwrap_or(false); - - if has_lang_server { - project - .update(cx, |project, cx| project.save_buffer(buffer.clone(), cx)) - .unwrap() - .detach(); - } - - let subscriptions = [ - cx.subscribe(&lsp_store, { - let log_prefix = log_prefix.clone(); - move |_, event, _| match event { - project::LspStoreEvent::LanguageServerUpdate { - message: - client::proto::update_language_server::Variant::WorkProgress( - client::proto::LspWorkProgress { - message: Some(message), - .. - }, - ), - .. - } => println!("{}⟲ {message}", log_prefix), - _ => {} - } - }), - cx.subscribe(&project, { - let buffer = buffer.clone(); - move |project, event, cx| match event { - project::Event::LanguageServerAdded(_, _, _) => { - let buffer = buffer.clone(); - project - .update(cx, |project, cx| project.save_buffer(buffer, cx)) - .detach(); - } - project::Event::DiskBasedDiagnosticsFinished { .. } => { - tx.try_send(()).ok(); - } - _ => {} - } - }), - ]; - - cx.spawn(async move |cx| { - let timeout = cx.background_executor().timer(Duration::new(60 * 5, 0)); - let result = futures::select! { - _ = rx.next() => { - println!("{}⚑ Language server idle", log_prefix); - anyhow::Ok(()) - }, - _ = timeout.fuse() => { - anyhow::bail!("LSP wait timed out after 5 minutes"); - } - }; - drop(subscriptions); - result - }) -} - -fn main() { - let args = ZetaCliArgs::parse(); - let http_client = Arc::new(ReqwestClient::new()); - let app = Application::headless().with_http_client(http_client); - - app.run(move |cx| { - let app_state = Arc::new(headless::init(cx)); - cx.spawn(async move |cx| { - let result = match args.command { - Commands::Context(context_args) => get_context(context_args, &app_state, cx) - .await - .map(|output| serde_json::to_string_pretty(&output.body).unwrap()), - Commands::Predict { - predict_edits_body, - context_args, - } => { - cx.spawn(async move |cx| { - let app_version = cx.update(|cx| AppVersion::global(cx))?; - app_state.client.sign_in(true, cx).await?; - let llm_token = LlmApiToken::default(); - llm_token.refresh(&app_state.client).await?; - - let predict_edits_body = - if let Some(predict_edits_body) = predict_edits_body { - serde_json::from_str(&predict_edits_body.read_to_string().await?)? - } else if let Some(context_args) = context_args { - get_context(context_args, &app_state, cx).await?.body - } else { - return Err(anyhow!( - "Expected either --predict-edits-body-file \ - or the required args of the `context` command." - )); - }; - - let (response, _usage) = - Zeta::perform_predict_edits(PerformPredictEditsParams { - client: app_state.client.clone(), - llm_token, - app_version, - body: predict_edits_body, - }) - .await?; - - Ok(response.output_excerpt) - }) - .await - } - }; - match result { - Ok(output) => { - println!("{}", output); - let _ = cx.update(|cx| cx.quit()); - } - Err(e) => { - eprintln!("Failed: {:?}", e); - exit(1); - } - } - }) - .detach(); - }); -} diff --git a/crates/zlog/src/sink.rs b/crates/zlog/src/sink.rs index 17aa08026e..acf0469c77 100644 --- a/crates/zlog/src/sink.rs +++ b/crates/zlog/src/sink.rs @@ -21,8 +21,6 @@ const ANSI_MAGENTA: &str = "\x1b[35m"; /// Whether stdout output is enabled. static mut ENABLED_SINKS_STDOUT: bool = false; -/// Whether stderr output is enabled. -static mut ENABLED_SINKS_STDERR: bool = false; /// Is Some(file) if file output is enabled. static ENABLED_SINKS_FILE: Mutex<Option<std::fs::File>> = Mutex::new(None); @@ -47,12 +45,6 @@ pub fn init_output_stdout() { } } -pub fn init_output_stderr() { - unsafe { - ENABLED_SINKS_STDERR = true; - } -} - pub fn init_output_file( path: &'static PathBuf, path_rotate: Option<&'static PathBuf>, @@ -123,21 +115,6 @@ pub fn submit(record: Record) { }, record.message ); - } else if unsafe { ENABLED_SINKS_STDERR } { - let mut stdout = std::io::stderr().lock(); - _ = writeln!( - &mut stdout, - "{} {ANSI_BOLD}{}{}{ANSI_RESET} {} {}", - chrono::Local::now().format("%Y-%m-%dT%H:%M:%S%:z"), - LEVEL_ANSI_COLORS[record.level as usize], - LEVEL_OUTPUT_STRINGS[record.level as usize], - SourceFmt { - scope: record.scope, - module_path: record.module_path, - ansi: true, - }, - record.message - ); } let mut file = ENABLED_SINKS_FILE.lock().unwrap_or_else(|handle| { ENABLED_SINKS_FILE.clear_poison(); diff --git a/crates/zlog/src/zlog.rs b/crates/zlog/src/zlog.rs index 5b40278f3f..570c82314c 100644 --- a/crates/zlog/src/zlog.rs +++ b/crates/zlog/src/zlog.rs @@ -5,7 +5,7 @@ mod env_config; pub mod filter; pub mod sink; -pub use sink::{flush, init_output_file, init_output_stderr, init_output_stdout}; +pub use sink::{flush, init_output_file, init_output_stdout}; pub const SCOPE_DEPTH_MAX: usize = 4; diff --git a/docs/README.md b/docs/README.md index a225903674..55993c9e36 100644 --- a/docs/README.md +++ b/docs/README.md @@ -69,64 +69,3 @@ Templates are just functions that modify the source of the docs pages (usually w - Template Trait: crates/docs_preprocessor/src/templates.rs - Example template: crates/docs_preprocessor/src/templates/keybinding.rs - Client-side plugins: docs/theme/plugins.js - -## Postprocessor - -A postprocessor is implemented as a sub-command of `docs_preprocessor` that wraps the builtin `html` renderer and applies post-processing to the `html` files, to add support for page-specific title and meta description values. - -An example of the syntax can be found in `git.md`, as well as below - -```md ---- -title: Some more detailed title for this page -description: A page-specific description ---- - -# Editor -``` - -The above will be transformed into (with non-relevant tags removed) - -```html -<head> - <title>Editor | Some more detailed title for this page - - - -

Editor

- -``` - -If no front-matter is provided, or If one or both keys aren't provided, the title and description will be set based on the `default-title` and `default-description` keys in `book.toml` respectively. - -### Implementation details - -Unfortunately, `mdbook` does not support post-processing like it does pre-processing, and only supports defining one description to put in the meta tag per book rather than per file. So in order to apply post-processing (necessary to modify the html head tags) the global book description is set to a marker value `#description#` and the html renderer is replaced with a sub-command of `docs_preprocessor` that wraps the builtin `html` renderer and applies post-processing to the `html` files, replacing the marker value and the `(.*)` with the contents of the front-matter if there is one. - -### Known limitations - -The front-matter parsing is extremely simple, which avoids needing to take on an additional dependency, or implement full yaml parsing. - -- Double quotes and multi-line values are not supported, i.e. Keys and values must be entirely on the same line, with no double quotes around the value. - -The following will not work: - -```md ---- -title: Some - Multi-line - Title ---- -``` - -And neither will: - -```md ---- -title: "Some title" ---- -``` - -- The front-matter must be at the top of the file, with only white-space preceding it - -- The contents of the title and description will not be html-escaped. They should be simple ascii text with no unicode or emoji characters diff --git a/docs/book.toml b/docs/book.toml index 60ddc5ac51..f5d186f377 100644 --- a/docs/book.toml +++ b/docs/book.toml @@ -6,27 +6,13 @@ src = "src" title = "Zed" site-url = "/docs/" -[build] -extra-watch-dirs = ["../crates/docs_preprocessor"] - -# zed-html is a "custom" renderer that just wraps the -# builtin mdbook html renderer, and applies post-processing -# as post-processing is not possible with mdbook in the same way -# pre-processing is -# The config is passed directly to the html renderer, so all config -# options that apply to html apply to zed-html -[output.zed-html] -command = "cargo run -p docs_preprocessor -- postprocess" -# Set here instead of above as we only use it replace the `#description#` we set in the template -# when no front-matter is provided value -default-description = "Learn how to use and customize Zed, the fast, collaborative code editor. Official docs on features, configuration, AI tools, and workflows." -default-title = "Zed Code Editor Documentation" +[output.html] no-section-label = true preferred-dark-theme = "dark" additional-css = ["theme/page-toc.css", "theme/plugins.css", "theme/highlight.css"] additional-js = ["theme/page-toc.js", "theme/plugins.js"] -[output.zed-html.print] +[output.html.print] enable = false # Redirects for `/docs` pages. @@ -38,7 +24,7 @@ enable = false # The destination URLs are interpreted relative to `https://zed.dev`. # - Redirects to other docs pages should end in `.html` # - You can link to pages on the Zed site by omitting the `/docs` in front of it. -[output.zed-html.redirect] +[output.html.redirect] # AI "/ai.html" = "/docs/ai/overview.html" "/assistant-panel.html" = "/docs/ai/agent-panel.html" @@ -54,7 +40,6 @@ enable = false "/assistant/prompting.html" = "/docs/ai/rules.html" "/language-model-integration.html" = "/docs/assistant/assistant.html" "/model-improvement.html" = "/docs/ai/ai-improvement.html" -"/ai/temperature.html" = "/docs/ai/agent-settings.html#model-temperature" # Community "/community/feedback.html" = "/community-links" diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index fc936d6bd0..1d43872547 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -45,14 +45,13 @@ - [Overview](./ai/overview.md) - [Agent Panel](./ai/agent-panel.md) - [Tools](./ai/tools.md) + - [Model Temperature](./ai/temperature.md) - [Inline Assistant](./ai/inline-assistant.md) - [Edit Prediction](./ai/edit-prediction.md) - [Text Threads](./ai/text-threads.md) - [Rules](./ai/rules.md) - [Model Context Protocol](./ai/mcp.md) - [Configuration](./ai/configuration.md) - - [LLM Providers](./ai/llm-providers.md) - - [Agent Settings](./ai/agent-settings.md) - [Subscription](./ai/subscription.md) - [Plans and Usage](./ai/plans-and-usage.md) - [Billing](./ai/billing.md) diff --git a/docs/src/accounts.md b/docs/src/accounts.md index 1ce23cf902..c13c98ad9a 100644 --- a/docs/src/accounts.md +++ b/docs/src/accounts.md @@ -5,7 +5,7 @@ Signing in to Zed is not a requirement. You can use most features you'd expect i ## What Features Require Signing In? 1. All real-time [collaboration features](./collaboration.md). -2. [LLM-powered features](./ai/overview.md), if you are using Zed as the provider of your LLM models. Alternatively, you can [bring and configure your own API keys](./ai/llm-providers.md#use-your-own-keys) if you'd prefer, and avoid having to sign in. +2. [LLM-powered features](./ai/overview.md), if you are using Zed as the provider of your LLM models. Alternatively, you can [bring and configure your own API keys](./ai/configuration.md#use-your-own-keys) if you'd prefer, and avoid having to sign in. ## Signing In diff --git a/docs/src/ai/agent-panel.md b/docs/src/ai/agent-panel.md index f944eb88b0..97568d6643 100644 --- a/docs/src/ai/agent-panel.md +++ b/docs/src/ai/agent-panel.md @@ -8,7 +8,7 @@ If you're using the Agent Panel for the first time, you need to have at least on You can do that by: 1. [subscribing to our Pro plan](https://zed.dev/pricing), so you have access to our hosted models -2. or by [bringing your own API keys](./llm-providers.md#use-your-own-keys) for your desired provider +2. or by [bringing your own API keys](./configuration.md#use-your-own-keys) for your desired provider ## Overview {#overview} @@ -87,7 +87,7 @@ You can also do this at any time with an ongoing thread via the "Agent Options" ## Changing Models {#changing-models} -After you've configured your LLM providers—either via [a custom API key](./llm-providers.md#use-your-own-keys) or through [Zed's hosted models](./models.md)—you can switch between them by clicking on the model selector on the message editor or by using the {#kb agent::ToggleModelSelector} keybinding. +After you've configured your LLM providers—either via [a custom API key](./configuration.md#use-your-own-keys) or through [Zed's hosted models](./models.md)—you can switch between them by clicking on the model selector on the message editor or by using the {#kb agent::ToggleModelSelector} keybinding. ## Using Tools {#using-tools} diff --git a/docs/src/ai/agent-settings.md b/docs/src/ai/agent-settings.md deleted file mode 100644 index ff97bcb8ee..0000000000 --- a/docs/src/ai/agent-settings.md +++ /dev/null @@ -1,226 +0,0 @@ -# Agent Settings - -Learn about all the settings you can customize in Zed's Agent Panel. - -## Model Settings {#model-settings} - -### Default Model {#default-model} - -If you're using [Zed's hosted LLM service](./plans-and-usage.md), it sets `claude-sonnet-4` as the default model. -But if you're not subscribed to it or simply just want to change it, you can do it so either via the model dropdown in the Agent Panel's bottom-right corner or by manually editing the `default_model` object in your settings: - -```json -{ - "agent": { - "default_model": { - "provider": "zed.dev", - "model": "gpt-4o" - } - } -} -``` - -### Feature-specific Models {#feature-specific-models} - -Assign distinct and specific models for the following AI-powered features in Zed: - -- Thread summary model: Used for generating thread summaries -- Inline assistant model: Used for the inline assistant feature -- Commit message model: Used for generating Git commit messages - -```json -{ - "agent": { - "default_model": { - "provider": "zed.dev", - "model": "claude-sonnet-4" - }, - "inline_assistant_model": { - "provider": "anthropic", - "model": "claude-3-5-sonnet" - }, - "commit_message_model": { - "provider": "openai", - "model": "gpt-4o-mini" - }, - "thread_summary_model": { - "provider": "google", - "model": "gemini-2.0-flash" - } - } -} -``` - -> If a custom model isn't set for one of these features, they automatically fall back to using the default model. - -### Alternative Models for Inline Assists {#alternative-assists} - -The Inline Assist feature in particular has the capacity to perform multiple generations in parallel using different models. -That is possible by assigning more than one model to it, taking the configuration shown above one step further. - -When configured, the inline assist UI will surface controls to cycle between the outputs generated by each model. - -The models you specify here are always used in _addition_ to your [default model](#default-model). - -For example, the following configuration will generate two outputs for every assist. -One with Claude Sonnet 4 (the default model), and one with GPT-4o. - -```json -{ - "agent": { - "default_model": { - "provider": "zed.dev", - "model": "claude-sonnet-4" - }, - "inline_alternatives": [ - { - "provider": "zed.dev", - "model": "gpt-4o" - } - ] - } -} -``` - -### Model Temperature - -Specify a custom temperature for a provider and/or model: - -```json -"model_parameters": [ - // To set parameters for all requests to OpenAI models: - { - "provider": "openai", - "temperature": 0.5 - }, - // To set parameters for all requests in general: - { - "temperature": 0 - }, - // To set parameters for a specific provider and model: - { - "provider": "zed.dev", - "model": "claude-sonnet-4", - "temperature": 1.0 - } -], -``` - -## Agent Panel Settings {#agent-panel-settings} - -Note that some of these settings are also surfaced in the Agent Panel's settings UI, which you can access either via the `agent: open settings` action or by the dropdown menu on the top-right corner of the panel. - -### Default View - -Use the `default_view` setting to change the default view of the Agent Panel. -You can choose between `thread` (the default) and `text_thread`: - -```json -{ - "agent": { - "default_view": "text_thread" - } -} -``` - -### Auto-run Commands - -Control whether you want to allow the agent to run commands without asking you for permission. -The default value is `false`. - -```json -{ - "agent": { - "always_allow_tool_actions": "true" - } -} -``` - -> This setting is available via the Agent Panel's settings UI. - -### Single-file Review - -Control whether you want to see review actions (accept & reject) in single buffers after the agent is done performing edits. -The default value is `false`. - -```json -{ - "agent": { - "single_file_review": "true" - } -} -``` - -When set to false, these controls are only available in the multibuffer review tab. - -> This setting is available via the Agent Panel's settings UI. - -### Sound Notification - -Control whether you want to hear a notification sound when the agent is done generating changes or needs your input. -The default value is `false`. - -```json -{ - "agent": { - "play_sound_when_agent_done": "true" - } -} -``` - -> This setting is available via the Agent Panel's settings UI. - -### Modifier to Send - -Make a modifier (`cmd` on macOS, `ctrl` on Linux) required to send messages. -This is encouraged for more thoughtful prompt crafting. -The default value is `false`. - -```json -{ - "agent": { - "use_modifier_to_send": "true" - } -} -``` - -> This setting is available via the Agent Panel's settings UI. - -### Edit Card - -Use the `expand_edit_card` setting to control whether edit cards show the full diff in the Agent Panel. -It is set to `true` by default, but if set to false, the card's height is capped to a certain number of lines, requiring a click to be expanded. - -```json -{ - "agent": { - "expand_edit_card": "false" - } -} -``` - -### Terminal Card - -Use the `expand_terminal_card` setting to control whether terminal cards show the command output in the Agent Panel. -It is set to `true` by default, but if set to false, the card will be fully collapsed even while the command is running, requiring a click to be expanded. - -```json -{ - "agent": { - "expand_terminal_card": "false" - } -} -``` - -### Feedback Controls - -Control whether you want to see the thumbs up/down buttons to give Zed feedback about the agent's performance. -The default value is `true`. - -```json -{ - "agent": { - "enable_feedback": "false" - } -} -``` diff --git a/docs/src/ai/billing.md b/docs/src/ai/billing.md index d519b136ae..c49bacd883 100644 --- a/docs/src/ai/billing.md +++ b/docs/src/ai/billing.md @@ -1,7 +1,7 @@ # Billing We use Stripe as our billing and payments provider. All Pro plans require payment via credit card. -For invoice-based billing, a Business plan is required. Contact [sales@zed.dev](mailto:sales@zed.dev) for more information. +For invoice-based billing, a Business plan is required. Contact sales@zed.dev for more information. ## Settings {#settings} @@ -12,8 +12,7 @@ Clicking the button under Account Settings will navigate you to Stripe’s secur Zed is billed on a monthly basis based on the date you initially subscribe. -We’ll also bill in-month for additional prompts used beyond your plan’s prompt limit, if usage exceeds $20 before month end. -See [usage-based pricing](./plans-and-usage.md#ubp) for more. +We’ll also bill in-month for additional prompts used beyond your plan’s prompt limit, if usage exceeds $20 before month end. See [usage-based pricing](./plans-and-usage.md#ubp) for more. ## Invoice History {#invoice-history} @@ -26,12 +25,3 @@ From Stripe’s secure portal, you can download all current and historical invoi You can update your payment method, company name, address, and tax information through the billing portal. Please note that changes to billing information will **only** affect future invoices — **we cannot modify historical invoices**. - -## Sales Tax {#sales-tax} - -Zed partners with [Sphere](https://www.getsphere.com/) to calculate indirect tax rate for invoices, based on customer location and the product being sold. Tax is listed as a separate line item on invoices, based preferentially on your billing address, followed by the card issue country known to Stripe. - -If you have a VAT/GST ID, you can add it at [zed.dev/account](https://zed.dev/account) by clicking "Manage" on your subscription. Check the box that denotes you as a business. - -Please note that changes to VAT/GST IDs and address will **only** affect future invoices — **we cannot modify historical invoices**. -Questions or issues can be directed to [billing-support@zed.dev](mailto:billing-support@zed.dev). diff --git a/docs/src/ai/configuration.md b/docs/src/ai/configuration.md index d28a7e8ed0..414da2206f 100644 --- a/docs/src/ai/configuration.md +++ b/docs/src/ai/configuration.md @@ -1,20 +1,735 @@ # Configuration -When using AI in Zed, you can customize several aspects: +There are various aspects about the Agent Panel that you can customize. +All of them can be seen by either visiting [the Configuring Zed page](../configuring-zed.md#agent) or by running the `zed: open default settings` action and searching for `"agent"`. -1. Which [LLM providers](./llm-providers.md) you can use -2. [Model parameters and usage](./agent-settings.md#model-settings) -3. [Interactions with the Agent Panel](./agent-settings.md#agent-panel-settings) +Alternatively, you can also visit the panel's Settings view by running the `agent: open configuration` action or going to the top-right menu and hitting "Settings". -## Turning AI Off Entirely +## LLM Providers -We want to respect users who want to use Zed without interacting with AI whatsoever. -To do that, add the following key to your `settings.json`: +Zed supports multiple large language model providers. +Here's an overview of the supported providers and tool call support: + +| Provider | Tool Use Supported | +| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Amazon Bedrock](#amazon-bedrock) | Depends on the model | +| [Anthropic](#anthropic) | ✅ | +| [DeepSeek](#deepseek) | ✅ | +| [GitHub Copilot Chat](#github-copilot-chat) | For some models ([link](https://github.com/zed-industries/zed/blob/9e0330ba7d848755c9734bf456c716bddf0973f3/crates/language_models/src/provider/copilot_chat.rs#L189-L198)) | +| [Google AI](#google-ai) | ✅ | +| [LM Studio](#lmstudio) | ✅ | +| [Mistral](#mistral) | ✅ | +| [Ollama](#ollama) | ✅ | +| [OpenAI](#openai) | ✅ | +| [OpenAI API Compatible](#openai-api-compatible) | 🚫 | +| [OpenRouter](#openrouter) | ✅ | +| [Vercel](#vercel-v0) | ✅ | +| [xAI](#xai) | ✅ | + +## Use Your Own Keys {#use-your-own-keys} + +While Zed offers hosted versions of models through [our various plans](./plans-and-usage.md), we're always happy to support users wanting to supply their own API keys. +Below, you can learn how to do that for each provider. + +> Using your own API keys is _free_—you do not need to subscribe to a Zed plan to use our AI features with your own keys. + +### Amazon Bedrock {#amazon-bedrock} + +> ✅ Supports tool use with models that support streaming tool use. +> More details can be found in the [Amazon Bedrock's Tool Use documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html). + +To use Amazon Bedrock's models, an AWS authentication is required. +Ensure your credentials have the following permissions set up: + +- `bedrock:InvokeModelWithResponseStream` +- `bedrock:InvokeModel` +- `bedrock:ConverseStream` + +Your IAM policy should look similar to: ```json { - "disable_ai": true + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "bedrock:InvokeModel", + "bedrock:InvokeModelWithResponseStream", + "bedrock:ConverseStream" + ], + "Resource": "*" + } + ] } ``` -Read [the following blog post](https://zed.dev/blog/disable-ai-features) to learn more about our motivation to promote this, as much as we also encourage users to explore AI-assisted programming. +With that done, choose one of the two authentication methods: + +#### Authentication via Named Profile (Recommended) + +1. Ensure you have the AWS CLI installed and configured with a named profile +2. Open your `settings.json` (`zed: open settings`) and include the `bedrock` key under `language_models` with the following settings: + ```json + { + "language_models": { + "bedrock": { + "authentication_method": "named_profile", + "region": "your-aws-region", + "profile": "your-profile-name" + } + } + } + ``` + +#### Authentication via Static Credentials + +While it's possible to configure through the Agent Panel settings UI by entering your AWS access key and secret directly, we recommend using named profiles instead for better security practices. +To do this: + +1. Create an IAM User that you can assume in the [IAM Console](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/users). +2. Create security credentials for that User, save them and keep them secure. +3. Open the Agent Configuration with (`agent: open configuration`) and go to the Amazon Bedrock section +4. Copy the credentials from Step 2 into the respective **Access Key ID**, **Secret Access Key**, and **Region** fields. + +#### Cross-Region Inference + +The Zed implementation of Amazon Bedrock uses [Cross-Region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html) for all the models and region combinations that support it. +With Cross-Region inference, you can distribute traffic across multiple AWS Regions, enabling higher throughput. + +For example, if you use `Claude Sonnet 3.7 Thinking` from `us-east-1`, it may be processed across the US regions, namely: `us-east-1`, `us-east-2`, or `us-west-2`. +Cross-Region inference requests are kept within the AWS Regions that are part of the geography where the data originally resides. +For example, a request made within the US is kept within the AWS Regions in the US. + +Although the data remains stored only in the source Region, your input prompts and output results might move outside of your source Region during cross-Region inference. +All data will be transmitted encrypted across Amazon's secure network. + +We will support Cross-Region inference for each of the models on a best-effort basis, please refer to the [Cross-Region Inference method Code](https://github.com/zed-industries/zed/blob/main/crates/bedrock/src/models.rs#L297). + +For the most up-to-date supported regions and models, refer to the [Supported Models and Regions for Cross Region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html). + +### Anthropic {#anthropic} + +> ✅ Supports tool use + +You can use Anthropic models by choosing it via the model dropdown in the Agent Panel. + +1. Sign up for Anthropic and [create an API key](https://console.anthropic.com/settings/keys) +2. Make sure that your Anthropic account has credits +3. Open the settings view (`agent: open configuration`) and go to the Anthropic section +4. Enter your Anthropic API key + +Even if you pay for Claude Pro, you will still have to [pay for additional credits](https://console.anthropic.com/settings/plans) to use it via the API. + +Zed will also use the `ANTHROPIC_API_KEY` environment variable if it's defined. + +#### Custom Models {#anthropic-custom-models} + +You can add custom models to the Anthropic provider by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "anthropic": { + "available_models": [ + { + "name": "claude-3-5-sonnet-20240620", + "display_name": "Sonnet 2024-June", + "max_tokens": 128000, + "max_output_tokens": 2560, + "cache_configuration": { + "max_cache_anchors": 10, + "min_total_token": 10000, + "should_speculate": false + }, + "tool_override": "some-model-that-supports-toolcalling" + } + ] + } + } +} +``` + +Custom models will be listed in the model dropdown in the Agent Panel. + +You can configure a model to use [extended thinking](https://docs.anthropic.com/en/docs/about-claude/models/extended-thinking-models) (if it supports it) by changing the mode in your model's configuration to `thinking`, for example: + +```json +{ + "name": "claude-sonnet-4-latest", + "display_name": "claude-sonnet-4-thinking", + "max_tokens": 200000, + "mode": { + "type": "thinking", + "budget_tokens": 4_096 + } +} +``` + +### DeepSeek {#deepseek} + +> ✅ Supports tool use + +1. Visit the DeepSeek platform and [create an API key](https://platform.deepseek.com/api_keys) +2. Open the settings view (`agent: open configuration`) and go to the DeepSeek section +3. Enter your DeepSeek API key + +The DeepSeek API key will be saved in your keychain. + +Zed will also use the `DEEPSEEK_API_KEY` environment variable if it's defined. + +#### Custom Models {#deepseek-custom-models} + +The Zed agent comes pre-configured to use the latest version for common models (DeepSeek Chat, DeepSeek Reasoner). +If you wish to use alternate models or customize the API endpoint, you can do so by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "deepseek": { + "api_url": "https://api.deepseek.com", + "available_models": [ + { + "name": "deepseek-chat", + "display_name": "DeepSeek Chat", + "max_tokens": 64000 + }, + { + "name": "deepseek-reasoner", + "display_name": "DeepSeek Reasoner", + "max_tokens": 64000, + "max_output_tokens": 4096 + } + ] + } + } +} +``` + +Custom models will be listed in the model dropdown in the Agent Panel. +You can also modify the `api_url` to use a custom endpoint if needed. + +### GitHub Copilot Chat {#github-copilot-chat} + +> ✅ Supports tool use in some cases. +> Visit [the Copilot Chat code](https://github.com/zed-industries/zed/blob/9e0330ba7d848755c9734bf456c716bddf0973f3/crates/language_models/src/provider/copilot_chat.rs#L189-L198) for the supported subset. + +You can use GitHub Copilot Chat with the Zed agent by choosing it via the model dropdown in the Agent Panel. + +1. Open the settings view (`agent: open configuration`) and go to the GitHub Copilot Chat section +2. Click on `Sign in to use GitHub Copilot`, follow the steps shown in the modal. + +Alternatively, you can provide an OAuth token via the `GH_COPILOT_TOKEN` environment variable. + +> **Note**: If you don't see specific models in the dropdown, you may need to enable them in your [GitHub Copilot settings](https://github.com/settings/copilot/features). + +To use Copilot Enterprise with Zed (for both agent and inline completions), you must configure your enterprise endpoint as described in [Configuring GitHub Copilot Enterprise](./edit-prediction.md#github-copilot-enterprise). + +### Google AI {#google-ai} + +> ✅ Supports tool use + +You can use Gemini models with the Zed agent by choosing it via the model dropdown in the Agent Panel. + +1. Go to the Google AI Studio site and [create an API key](https://aistudio.google.com/app/apikey). +2. Open the settings view (`agent: open configuration`) and go to the Google AI section +3. Enter your Google AI API key and press enter. + +The Google AI API key will be saved in your keychain. + +Zed will also use the `GEMINI_API_KEY` environment variable if it's defined. See [Using Gemini API keys](Using Gemini API keys) in the Gemini docs for more. + +#### Custom Models {#google-ai-custom-models} + +By default, Zed will use `stable` versions of models, but you can use specific versions of models, including [experimental models](https://ai.google.dev/gemini-api/docs/models/experimental-models). You can configure a model to use [thinking mode](https://ai.google.dev/gemini-api/docs/thinking) (if it supports it) by adding a `mode` configuration to your model. This is useful for controlling reasoning token usage and response speed. If not specified, Gemini will automatically choose the thinking budget. + +Here is an example of a custom Google AI model you could add to your Zed `settings.json`: + +```json +{ + "language_models": { + "google": { + "available_models": [ + { + "name": "gemini-2.5-flash-preview-05-20", + "display_name": "Gemini 2.5 Flash (Thinking)", + "max_tokens": 1000000, + "mode": { + "type": "thinking", + "budget_tokens": 24000 + } + } + ] + } + } +} +``` + +Custom models will be listed in the model dropdown in the Agent Panel. + +### LM Studio {#lmstudio} + +> ✅ Supports tool use + +1. Download and install [the latest version of LM Studio](https://lmstudio.ai/download) +2. In the app press `cmd/ctrl-shift-m` and download at least one model (e.g., qwen2.5-coder-7b). Alternatively, you can get models via the LM Studio CLI: + + ```sh + lms get qwen2.5-coder-7b + ``` + +3. Make sure the LM Studio API server is running by executing: + + ```sh + lms server start + ``` + +Tip: Set [LM Studio as a login item](https://lmstudio.ai/docs/advanced/headless#run-the-llm-service-on-machine-login) to automate running the LM Studio server. + +### Mistral {#mistral} + +> ✅ Supports tool use + +1. Visit the Mistral platform and [create an API key](https://console.mistral.ai/api-keys/) +2. Open the configuration view (`agent: open configuration`) and navigate to the Mistral section +3. Enter your Mistral API key + +The Mistral API key will be saved in your keychain. + +Zed will also use the `MISTRAL_API_KEY` environment variable if it's defined. + +#### Custom Models {#mistral-custom-models} + +The Zed agent comes pre-configured with several Mistral models (codestral-latest, mistral-large-latest, mistral-medium-latest, mistral-small-latest, open-mistral-nemo, and open-codestral-mamba). +All the default models support tool use. +If you wish to use alternate models or customize their parameters, you can do so by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "mistral": { + "api_url": "https://api.mistral.ai/v1", + "available_models": [ + { + "name": "mistral-tiny-latest", + "display_name": "Mistral Tiny", + "max_tokens": 32000, + "max_output_tokens": 4096, + "max_completion_tokens": 1024, + "supports_tools": true, + "supports_images": false + } + ] + } + } +} +``` + +Custom models will be listed in the model dropdown in the Agent Panel. + +### Ollama {#ollama} + +> ✅ Supports tool use + +Download and install Ollama from [ollama.com/download](https://ollama.com/download) (Linux or macOS) and ensure it's running with `ollama --version`. + +1. Download one of the [available models](https://ollama.com/models), for example, for `mistral`: + + ```sh + ollama pull mistral + ``` + +2. Make sure that the Ollama server is running. You can start it either via running Ollama.app (macOS) or launching: + + ```sh + ollama serve + ``` + +3. In the Agent Panel, select one of the Ollama models using the model dropdown. + +#### Ollama Context Length {#ollama-context} + +Zed has pre-configured maximum context lengths (`max_tokens`) to match the capabilities of common models. +Zed API requests to Ollama include this as the `num_ctx` parameter, but the default values do not exceed `16384` so users with ~16GB of RAM are able to use most models out of the box. + +See [get_max_tokens in ollama.rs](https://github.com/zed-industries/zed/blob/main/crates/ollama/src/ollama.rs) for a complete set of defaults. + +> **Note**: Token counts displayed in the Agent Panel are only estimates and will differ from the model's native tokenizer. + +Depending on your hardware or use-case you may wish to limit or increase the context length for a specific model via settings.json: + +```json +{ + "language_models": { + "ollama": { + "api_url": "http://localhost:11434", + "available_models": [ + { + "name": "qwen2.5-coder", + "display_name": "qwen 2.5 coder 32K", + "max_tokens": 32768, + "supports_tools": true, + "supports_thinking": true, + "supports_images": true + } + ] + } + } +} +``` + +If you specify a context length that is too large for your hardware, Ollama will log an error. +You can watch these logs by running: `tail -f ~/.ollama/logs/ollama.log` (macOS) or `journalctl -u ollama -f` (Linux). +Depending on the memory available on your machine, you may need to adjust the context length to a smaller value. + +You may also optionally specify a value for `keep_alive` for each available model. +This can be an integer (seconds) or alternatively a string duration like "5m", "10m", "1h", "1d", etc. +For example, `"keep_alive": "120s"` will allow the remote server to unload the model (freeing up GPU VRAM) after 120 seconds. + +The `supports_tools` option controls whether the model will use additional tools. +If the model is tagged with `tools` in the Ollama catalog, this option should be supplied, and the built-in profiles `Ask` and `Write` can be used. +If the model is not tagged with `tools` in the Ollama catalog, this option can still be supplied with the value `true`; however, be aware that only the `Minimal` built-in profile will work. + +The `supports_thinking` option controls whether the model will perform an explicit "thinking" (reasoning) pass before producing its final answer. +If the model is tagged with `thinking` in the Ollama catalog, set this option and you can use it in Zed. + +The `supports_images` option enables the model's vision capabilities, allowing it to process images included in the conversation context. +If the model is tagged with `vision` in the Ollama catalog, set this option and you can use it in Zed. + +### OpenAI {#openai} + +> ✅ Supports tool use + +1. Visit the OpenAI platform and [create an API key](https://platform.openai.com/account/api-keys) +2. Make sure that your OpenAI account has credits +3. Open the settings view (`agent: open configuration`) and go to the OpenAI section +4. Enter your OpenAI API key + +The OpenAI API key will be saved in your keychain. + +Zed will also use the `OPENAI_API_KEY` environment variable if it's defined. + +#### Custom Models {#openai-custom-models} + +The Zed agent comes pre-configured to use the latest version for common models (GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o, GPT-4o mini). +To use alternate models, perhaps a preview release or a dated model release, or if you wish to control the request parameters, you can do so by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "openai": { + "available_models": [ + { + "name": "gpt-4o-2024-08-06", + "display_name": "GPT 4o Summer 2024", + "max_tokens": 128000 + }, + { + "name": "o1-mini", + "display_name": "o1-mini", + "max_tokens": 128000, + "max_completion_tokens": 20000 + } + ], + "version": "1" + } + } +} +``` + +You must provide the model's context window in the `max_tokens` parameter; this can be found in the [OpenAI model documentation](https://platform.openai.com/docs/models). + +OpenAI `o1` models should set `max_completion_tokens` as well to avoid incurring high reasoning token costs. +Custom models will be listed in the model dropdown in the Agent Panel. + +### OpenAI API Compatible {#openai-api-compatible} + +Zed supports using [OpenAI compatible APIs](https://platform.openai.com/docs/api-reference/chat) by specifying a custom `api_url` and `available_models` for the OpenAI provider. This is useful for connecting to other hosted services (like Together AI, Anyscale, etc.) or local models. + +To configure a compatible API, you can add a custom API URL for OpenAI either via the UI (currently available only in Preview) or by editing your `settings.json`. + +For example, to connect to [Together AI](https://www.together.ai/) via the UI: + +1. Get an API key from your [Together AI account](https://api.together.ai/settings/api-keys). +2. Go to the Agent Panel's settings view, click on the "Add Provider" button, and then on the "OpenAI" menu item +3. Add the requested fields, such as `api_url`, `api_key`, available models, and others + +Alternatively, you can also add it via the `settings.json`: + +```json +{ + "language_models": { + "openai": { + "api_url": "https://api.together.xyz/v1", + "api_key": "YOUR_TOGETHER_AI_API_KEY", + "available_models": [ + { + "name": "mistralai/Mixtral-8x7B-Instruct-v0.1", + "display_name": "Together Mixtral 8x7B", + "max_tokens": 32768, + "supports_tools": true + } + ] + } + } +} +``` + +### OpenRouter {#openrouter} + +> ✅ Supports tool use + +OpenRouter provides access to multiple AI models through a single API. It supports tool use for compatible models. + +1. Visit [OpenRouter](https://openrouter.ai) and create an account +2. Generate an API key from your [OpenRouter keys page](https://openrouter.ai/keys) +3. Open the settings view (`agent: open configuration`) and go to the OpenRouter section +4. Enter your OpenRouter API key + +The OpenRouter API key will be saved in your keychain. + +Zed will also use the `OPENROUTER_API_KEY` environment variable if it's defined. + +#### Custom Models {#openrouter-custom-models} + +You can add custom models to the OpenRouter provider by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "open_router": { + "api_url": "https://openrouter.ai/api/v1", + "available_models": [ + { + "name": "google/gemini-2.0-flash-thinking-exp", + "display_name": "Gemini 2.0 Flash (Thinking)", + "max_tokens": 200000, + "max_output_tokens": 8192, + "supports_tools": true, + "supports_images": true, + "mode": { + "type": "thinking", + "budget_tokens": 8000 + } + } + ] + } + } +} +``` + +The available configuration options for each model are: + +- `name` (required): The model identifier used by OpenRouter +- `display_name` (optional): A human-readable name shown in the UI +- `max_tokens` (required): The model's context window size +- `max_output_tokens` (optional): Maximum tokens the model can generate +- `max_completion_tokens` (optional): Maximum completion tokens +- `supports_tools` (optional): Whether the model supports tool/function calling +- `supports_images` (optional): Whether the model supports image inputs +- `mode` (optional): Special mode configuration for thinking models + +You can find available models and their specifications on the [OpenRouter models page](https://openrouter.ai/models). + +Custom models will be listed in the model dropdown in the Agent Panel. + +### Vercel v0 {#vercel-v0} + +> ✅ Supports tool use + +[Vercel v0](https://vercel.com/docs/v0/api) is an expert model for generating full-stack apps, with framework-aware completions optimized for modern stacks like Next.js and Vercel. +It supports text and image inputs and provides fast streaming responses. + +The v0 models are [OpenAI-compatible models](/#openai-api-compatible), but Vercel is listed as first-class provider in the panel's settings view. + +To start using it with Zed, ensure you have first created a [v0 API key](https://v0.dev/chat/settings/keys). +Once you have it, paste it directly into the Vercel provider section in the panel's settings view. + +You should then find it as `v0-1.5-md` in the model dropdown in the Agent Panel. + +### xAI {#xai} + +> ✅ Supports tool use + +Zed has first-class support for [xAI](https://x.ai/) models. You can use your own API key to access Grok models. + +1. [Create an API key in the xAI Console](https://console.x.ai/team/default/api-keys) +2. Open the settings view (`agent: open configuration`) and go to the **xAI** section +3. Enter your xAI API key + +The xAI API key will be saved in your keychain. Zed will also use the `XAI_API_KEY` environment variable if it's defined. + +> **Note:** While the xAI API is OpenAI-compatible, Zed has first-class support for it as a dedicated provider. For the best experience, we recommend using the dedicated `x_ai` provider configuration instead of the [OpenAI API Compatible](#openai-api-compatible) method. + +#### Custom Models {#xai-custom-models} + +The Zed agent comes pre-configured with common Grok models. If you wish to use alternate models or customize their parameters, you can do so by adding the following to your Zed `settings.json`: + +```json +{ + "language_models": { + "x_ai": { + "api_url": "https://api.x.ai/v1", + "available_models": [ + { + "name": "grok-1.5", + "display_name": "Grok 1.5", + "max_tokens": 131072, + "max_output_tokens": 8192 + }, + { + "name": "grok-1.5v", + "display_name": "Grok 1.5V (Vision)", + "max_tokens": 131072, + "max_output_tokens": 8192, + "supports_images": true + } + ] + } + } +} +``` + +## Advanced Configuration {#advanced-configuration} + +### Custom Provider Endpoints {#custom-provider-endpoint} + +You can use a custom API endpoint for different providers, as long as it's compatible with the provider's API structure. +To do so, add the following to your `settings.json`: + +```json +{ + "language_models": { + "some-provider": { + "api_url": "http://localhost:11434" + } + } +} +``` + +Where `some-provider` can be any of the following values: `anthropic`, `google`, `ollama`, `openai`. + +### Default Model {#default-model} + +Zed's hosted LLM service sets `claude-sonnet-4` as the default model. +However, you can change it either via the model dropdown in the Agent Panel's bottom-right corner or by manually editing the `default_model` object in your settings: + +```json +{ + "agent": { + "version": "2", + "default_model": { + "provider": "zed.dev", + "model": "gpt-4o" + } + } +} +``` + +### Feature-specific Models {#feature-specific-models} + +If a feature-specific model is not set, it will fall back to using the default model, which is the one you set on the Agent Panel. + +You can configure the following feature-specific models: + +- Thread summary model: Used for generating thread summaries +- Inline assistant model: Used for the inline assistant feature +- Commit message model: Used for generating Git commit messages + +Example configuration: + +```json +{ + "agent": { + "version": "2", + "default_model": { + "provider": "zed.dev", + "model": "claude-sonnet-4" + }, + "inline_assistant_model": { + "provider": "anthropic", + "model": "claude-3-5-sonnet" + }, + "commit_message_model": { + "provider": "openai", + "model": "gpt-4o-mini" + }, + "thread_summary_model": { + "provider": "google", + "model": "gemini-2.0-flash" + } + } +} +``` + +### Alternative Models for Inline Assists {#alternative-assists} + +You can configure additional models that will be used to perform inline assists in parallel. +When you do this, the inline assist UI will surface controls to cycle between the alternatives generated by each model. + +The models you specify here are always used in _addition_ to your [default model](#default-model). +For example, the following configuration will generate two outputs for every assist. +One with Claude 3.7 Sonnet, and one with GPT-4o. + +```json +{ + "agent": { + "default_model": { + "provider": "zed.dev", + "model": "claude-sonnet-4" + }, + "inline_alternatives": [ + { + "provider": "zed.dev", + "model": "gpt-4o" + } + ], + "version": "2" + } +} +``` + +### Default View + +Use the `default_view` setting to set change the default view of the Agent Panel. +You can choose between `thread` (the default) and `text_thread`: + +```json +{ + "agent": { + "default_view": "text_thread" + } +} +``` + +### Edit Card + +Use the `expand_edit_card` setting to control whether edit cards show the full diff in the Agent Panel. +It is set to `true` by default, but if set to false, the card's height is capped to a certain number of lines, requiring a click to be expanded. + +```json +{ + "agent": { + "expand_edit_card": "false" + } +} +``` + +This setting is currently only available in Preview. +It should be up in Stable by the next release. + +### Terminal Card + +Use the `expand_terminal_card` setting to control whether terminal cards show the command output in the Agent Panel. +It is set to `true` by default, but if set to false, the card will be fully collapsed even while the command is running, requiring a click to be expanded. + +```json +{ + "agent": { + "expand_terminal_card": "false" + } +} +``` + +This setting is currently only available in Preview. +It should be up in Stable by the next release. diff --git a/docs/src/ai/inline-assistant.md b/docs/src/ai/inline-assistant.md index da894e2cd8..cd0ace3ce6 100644 --- a/docs/src/ai/inline-assistant.md +++ b/docs/src/ai/inline-assistant.md @@ -12,7 +12,7 @@ You can also perform multiple generation requests in parallel by pressing `ctrl- Give the Inline Assistant context the same way you can in [the Agent Panel](./agent-panel.md), allowing you to provide additional instructions or rules for code transformations with @-mentions. -A useful pattern here is to create a thread in the Agent Panel, and then mention that thread with `@thread` in the Inline Assistant to include it as context. +A useful pattern here is to create a thread in the Agent Panel, and then use the mention that thread with `@thread` in the Inline Assistant to include it as context. > The Inline Assistant is limited to normal mode context windows ([see Models](./models.md) for more). diff --git a/docs/src/ai/llm-providers.md b/docs/src/ai/llm-providers.md deleted file mode 100644 index a6e6f7c774..0000000000 --- a/docs/src/ai/llm-providers.md +++ /dev/null @@ -1,606 +0,0 @@ -# LLM Providers - -To use AI in Zed, you need to have at least one large language model provider set up. - -You can do that by either subscribing to [one of Zed's plans](./plans-and-usage.md), or by using API keys you already have for the supported providers. - -## Use Your Own Keys {#use-your-own-keys} - -If you already have an API key for an existing LLM provider—say Anthropic or OpenAI, for example—you can insert them in Zed and use the Agent Panel **_for free_**. - -You can add your API key to a given provider either via the Agent Panel's settings UI or directly via the `settings.json` through the `language_models` key. - -## Supported Providers - -Here's all the supported LLM providers for which you can use your own API keys: - -| Provider | Tool Use Supported | -| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Amazon Bedrock](#amazon-bedrock) | Depends on the model | -| [Anthropic](#anthropic) | ✅ | -| [DeepSeek](#deepseek) | ✅ | -| [GitHub Copilot Chat](#github-copilot-chat) | For some models ([link](https://github.com/zed-industries/zed/blob/9e0330ba7d848755c9734bf456c716bddf0973f3/crates/language_models/src/provider/copilot_chat.rs#L189-L198)) | -| [Google AI](#google-ai) | ✅ | -| [LM Studio](#lmstudio) | ✅ | -| [Mistral](#mistral) | ✅ | -| [Ollama](#ollama) | ✅ | -| [OpenAI](#openai) | ✅ | -| [OpenAI API Compatible](#openai-api-compatible) | ✅ | -| [OpenRouter](#openrouter) | ✅ | -| [Vercel](#vercel-v0) | ✅ | -| [xAI](#xai) | ✅ | - -### Amazon Bedrock {#amazon-bedrock} - -> ✅ Supports tool use with models that support streaming tool use. -> More details can be found in the [Amazon Bedrock's Tool Use documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html). - -To use Amazon Bedrock's models, an AWS authentication is required. -Ensure your credentials have the following permissions set up: - -- `bedrock:InvokeModelWithResponseStream` -- `bedrock:InvokeModel` -- `bedrock:ConverseStream` - -Your IAM policy should look similar to: - -```json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Effect": "Allow", - "Action": [ - "bedrock:InvokeModel", - "bedrock:InvokeModelWithResponseStream", - "bedrock:ConverseStream" - ], - "Resource": "*" - } - ] -} -``` - -With that done, choose one of the two authentication methods: - -#### Authentication via Named Profile (Recommended) - -1. Ensure you have the AWS CLI installed and configured with a named profile -2. Open your `settings.json` (`zed: open settings`) and include the `bedrock` key under `language_models` with the following settings: - ```json - { - "language_models": { - "bedrock": { - "authentication_method": "named_profile", - "region": "your-aws-region", - "profile": "your-profile-name" - } - } - } - ``` - -#### Authentication via Static Credentials - -While it's possible to configure through the Agent Panel settings UI by entering your AWS access key and secret directly, we recommend using named profiles instead for better security practices. -To do this: - -1. Create an IAM User that you can assume in the [IAM Console](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/users). -2. Create security credentials for that User, save them and keep them secure. -3. Open the Agent Configuration with (`agent: open settings`) and go to the Amazon Bedrock section -4. Copy the credentials from Step 2 into the respective **Access Key ID**, **Secret Access Key**, and **Region** fields. - -#### Cross-Region Inference - -The Zed implementation of Amazon Bedrock uses [Cross-Region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html) for all the models and region combinations that support it. -With Cross-Region inference, you can distribute traffic across multiple AWS Regions, enabling higher throughput. - -For example, if you use `Claude Sonnet 3.7 Thinking` from `us-east-1`, it may be processed across the US regions, namely: `us-east-1`, `us-east-2`, or `us-west-2`. -Cross-Region inference requests are kept within the AWS Regions that are part of the geography where the data originally resides. -For example, a request made within the US is kept within the AWS Regions in the US. - -Although the data remains stored only in the source Region, your input prompts and output results might move outside of your source Region during cross-Region inference. -All data will be transmitted encrypted across Amazon's secure network. - -We will support Cross-Region inference for each of the models on a best-effort basis, please refer to the [Cross-Region Inference method Code](https://github.com/zed-industries/zed/blob/main/crates/bedrock/src/models.rs#L297). - -For the most up-to-date supported regions and models, refer to the [Supported Models and Regions for Cross Region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html). - -### Anthropic {#anthropic} - -> ✅ Supports tool use - -You can use Anthropic models by choosing them via the model dropdown in the Agent Panel. - -1. Sign up for Anthropic and [create an API key](https://console.anthropic.com/settings/keys) -2. Make sure that your Anthropic account has credits -3. Open the settings view (`agent: open settings`) and go to the Anthropic section -4. Enter your Anthropic API key - -Even if you pay for Claude Pro, you will still have to [pay for additional credits](https://console.anthropic.com/settings/plans) to use it via the API. - -Zed will also use the `ANTHROPIC_API_KEY` environment variable if it's defined. - -#### Custom Models {#anthropic-custom-models} - -You can add custom models to the Anthropic provider by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "anthropic": { - "available_models": [ - { - "name": "claude-3-5-sonnet-20240620", - "display_name": "Sonnet 2024-June", - "max_tokens": 128000, - "max_output_tokens": 2560, - "cache_configuration": { - "max_cache_anchors": 10, - "min_total_token": 10000, - "should_speculate": false - }, - "tool_override": "some-model-that-supports-toolcalling" - } - ] - } - } -} -``` - -Custom models will be listed in the model dropdown in the Agent Panel. - -You can configure a model to use [extended thinking](https://docs.anthropic.com/en/docs/about-claude/models/extended-thinking-models) (if it supports it) by changing the mode in your model's configuration to `thinking`, for example: - -```json -{ - "name": "claude-sonnet-4-latest", - "display_name": "claude-sonnet-4-thinking", - "max_tokens": 200000, - "mode": { - "type": "thinking", - "budget_tokens": 4_096 - } -} -``` - -### DeepSeek {#deepseek} - -> ✅ Supports tool use - -1. Visit the DeepSeek platform and [create an API key](https://platform.deepseek.com/api_keys) -2. Open the settings view (`agent: open settings`) and go to the DeepSeek section -3. Enter your DeepSeek API key - -The DeepSeek API key will be saved in your keychain. - -Zed will also use the `DEEPSEEK_API_KEY` environment variable if it's defined. - -#### Custom Models {#deepseek-custom-models} - -The Zed agent comes pre-configured to use the latest version for common models (DeepSeek Chat, DeepSeek Reasoner). -If you wish to use alternate models or customize the API endpoint, you can do so by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "deepseek": { - "api_url": "https://api.deepseek.com", - "available_models": [ - { - "name": "deepseek-chat", - "display_name": "DeepSeek Chat", - "max_tokens": 64000 - }, - { - "name": "deepseek-reasoner", - "display_name": "DeepSeek Reasoner", - "max_tokens": 64000, - "max_output_tokens": 4096 - } - ] - } - } -} -``` - -Custom models will be listed in the model dropdown in the Agent Panel. -You can also modify the `api_url` to use a custom endpoint if needed. - -### GitHub Copilot Chat {#github-copilot-chat} - -> ✅ Supports tool use in some cases. -> Visit [the Copilot Chat code](https://github.com/zed-industries/zed/blob/9e0330ba7d848755c9734bf456c716bddf0973f3/crates/language_models/src/provider/copilot_chat.rs#L189-L198) for the supported subset. - -You can use GitHub Copilot Chat with the Zed agent by choosing it via the model dropdown in the Agent Panel. - -1. Open the settings view (`agent: open settings`) and go to the GitHub Copilot Chat section -2. Click on `Sign in to use GitHub Copilot`, follow the steps shown in the modal. - -Alternatively, you can provide an OAuth token via the `GH_COPILOT_TOKEN` environment variable. - -> **Note**: If you don't see specific models in the dropdown, you may need to enable them in your [GitHub Copilot settings](https://github.com/settings/copilot/features). - -To use Copilot Enterprise with Zed (for both agent and inline completions), you must configure your enterprise endpoint as described in [Configuring GitHub Copilot Enterprise](./edit-prediction.md#github-copilot-enterprise). - -### Google AI {#google-ai} - -> ✅ Supports tool use - -You can use Gemini models with the Zed agent by choosing it via the model dropdown in the Agent Panel. - -1. Go to the Google AI Studio site and [create an API key](https://aistudio.google.com/app/apikey). -2. Open the settings view (`agent: open settings`) and go to the Google AI section -3. Enter your Google AI API key and press enter. - -The Google AI API key will be saved in your keychain. - -Zed will also use the `GEMINI_API_KEY` environment variable if it's defined. See [Using Gemini API keys](https://ai.google.dev/gemini-api/docs/api-key) in the Gemini docs for more. - -#### Custom Models {#google-ai-custom-models} - -By default, Zed will use `stable` versions of models, but you can use specific versions of models, including [experimental models](https://ai.google.dev/gemini-api/docs/models/experimental-models). You can configure a model to use [thinking mode](https://ai.google.dev/gemini-api/docs/thinking) (if it supports it) by adding a `mode` configuration to your model. This is useful for controlling reasoning token usage and response speed. If not specified, Gemini will automatically choose the thinking budget. - -Here is an example of a custom Google AI model you could add to your Zed `settings.json`: - -```json -{ - "language_models": { - "google": { - "available_models": [ - { - "name": "gemini-2.5-flash-preview-05-20", - "display_name": "Gemini 2.5 Flash (Thinking)", - "max_tokens": 1000000, - "mode": { - "type": "thinking", - "budget_tokens": 24000 - } - } - ] - } - } -} -``` - -Custom models will be listed in the model dropdown in the Agent Panel. - -### LM Studio {#lmstudio} - -> ✅ Supports tool use - -1. Download and install [the latest version of LM Studio](https://lmstudio.ai/download) -2. In the app press `cmd/ctrl-shift-m` and download at least one model (e.g., qwen2.5-coder-7b). Alternatively, you can get models via the LM Studio CLI: - - ```sh - lms get qwen2.5-coder-7b - ``` - -3. Make sure the LM Studio API server is running by executing: - - ```sh - lms server start - ``` - -Tip: Set [LM Studio as a login item](https://lmstudio.ai/docs/advanced/headless#run-the-llm-service-on-machine-login) to automate running the LM Studio server. - -### Mistral {#mistral} - -> ✅ Supports tool use - -1. Visit the Mistral platform and [create an API key](https://console.mistral.ai/api-keys/) -2. Open the configuration view (`agent: open settings`) and navigate to the Mistral section -3. Enter your Mistral API key - -The Mistral API key will be saved in your keychain. - -Zed will also use the `MISTRAL_API_KEY` environment variable if it's defined. - -#### Custom Models {#mistral-custom-models} - -The Zed agent comes pre-configured with several Mistral models (codestral-latest, mistral-large-latest, mistral-medium-latest, mistral-small-latest, open-mistral-nemo, and open-codestral-mamba). -All the default models support tool use. -If you wish to use alternate models or customize their parameters, you can do so by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "mistral": { - "api_url": "https://api.mistral.ai/v1", - "available_models": [ - { - "name": "mistral-tiny-latest", - "display_name": "Mistral Tiny", - "max_tokens": 32000, - "max_output_tokens": 4096, - "max_completion_tokens": 1024, - "supports_tools": true, - "supports_images": false - } - ] - } - } -} -``` - -Custom models will be listed in the model dropdown in the Agent Panel. - -### Ollama {#ollama} - -> ✅ Supports tool use - -Download and install Ollama from [ollama.com/download](https://ollama.com/download) (Linux or macOS) and ensure it's running with `ollama --version`. - -1. Download one of the [available models](https://ollama.com/models), for example, for `mistral`: - - ```sh - ollama pull mistral - ``` - -2. Make sure that the Ollama server is running. You can start it either via running Ollama.app (macOS) or launching: - - ```sh - ollama serve - ``` - -3. In the Agent Panel, select one of the Ollama models using the model dropdown. - -#### Ollama Context Length {#ollama-context} - -Zed has pre-configured maximum context lengths (`max_tokens`) to match the capabilities of common models. -Zed API requests to Ollama include this as the `num_ctx` parameter, but the default values do not exceed `16384` so users with ~16GB of RAM are able to use most models out of the box. - -See [get_max_tokens in ollama.rs](https://github.com/zed-industries/zed/blob/main/crates/ollama/src/ollama.rs) for a complete set of defaults. - -> **Note**: Token counts displayed in the Agent Panel are only estimates and will differ from the model's native tokenizer. - -Depending on your hardware or use-case you may wish to limit or increase the context length for a specific model via settings.json: - -```json -{ - "language_models": { - "ollama": { - "api_url": "http://localhost:11434", - "available_models": [ - { - "name": "qwen2.5-coder", - "display_name": "qwen 2.5 coder 32K", - "max_tokens": 32768, - "supports_tools": true, - "supports_thinking": true, - "supports_images": true - } - ] - } - } -} -``` - -If you specify a context length that is too large for your hardware, Ollama will log an error. -You can watch these logs by running: `tail -f ~/.ollama/logs/ollama.log` (macOS) or `journalctl -u ollama -f` (Linux). -Depending on the memory available on your machine, you may need to adjust the context length to a smaller value. - -You may also optionally specify a value for `keep_alive` for each available model. -This can be an integer (seconds) or alternatively a string duration like "5m", "10m", "1h", "1d", etc. -For example, `"keep_alive": "120s"` will allow the remote server to unload the model (freeing up GPU VRAM) after 120 seconds. - -The `supports_tools` option controls whether the model will use additional tools. -If the model is tagged with `tools` in the Ollama catalog, this option should be supplied, and the built-in profiles `Ask` and `Write` can be used. -If the model is not tagged with `tools` in the Ollama catalog, this option can still be supplied with the value `true`; however, be aware that only the `Minimal` built-in profile will work. - -The `supports_thinking` option controls whether the model will perform an explicit "thinking" (reasoning) pass before producing its final answer. -If the model is tagged with `thinking` in the Ollama catalog, set this option and you can use it in Zed. - -The `supports_images` option enables the model's vision capabilities, allowing it to process images included in the conversation context. -If the model is tagged with `vision` in the Ollama catalog, set this option and you can use it in Zed. - -### OpenAI {#openai} - -> ✅ Supports tool use - -1. Visit the OpenAI platform and [create an API key](https://platform.openai.com/account/api-keys) -2. Make sure that your OpenAI account has credits -3. Open the settings view (`agent: open settings`) and go to the OpenAI section -4. Enter your OpenAI API key - -The OpenAI API key will be saved in your keychain. - -Zed will also use the `OPENAI_API_KEY` environment variable if it's defined. - -#### Custom Models {#openai-custom-models} - -The Zed agent comes pre-configured to use the latest version for common models (GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o, GPT-4o mini). -To use alternate models, perhaps a preview release or a dated model release, or if you wish to control the request parameters, you can do so by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "openai": { - "available_models": [ - { - "name": "gpt-4o-2024-08-06", - "display_name": "GPT 4o Summer 2024", - "max_tokens": 128000 - }, - { - "name": "o1-mini", - "display_name": "o1-mini", - "max_tokens": 128000, - "max_completion_tokens": 20000 - } - ], - "version": "1" - } - } -} -``` - -You must provide the model's context window in the `max_tokens` parameter; this can be found in the [OpenAI model documentation](https://platform.openai.com/docs/models). - -OpenAI `o1` models should set `max_completion_tokens` as well to avoid incurring high reasoning token costs. -Custom models will be listed in the model dropdown in the Agent Panel. - -### OpenAI API Compatible {#openai-api-compatible} - -Zed supports using [OpenAI compatible APIs](https://platform.openai.com/docs/api-reference/chat) by specifying a custom `api_url` and `available_models` for the OpenAI provider. -This is useful for connecting to other hosted services (like Together AI, Anyscale, etc.) or local models. - -You can add a custom, OpenAI-compatible model via either via the UI or by editing your `settings.json`. - -To do it via the UI, go to the Agent Panel settings (`agent: open settings`) and look for the "Add Provider" button to the right of the "LLM Providers" section title. -Then, fill up the input fields available in the modal. - -To do it via your `settings.json`, add the following snippet under `language_models`: - -```json -{ - "language_models": { - "openai": { - "api_url": "https://api.together.xyz/v1", // Using Together AI as an example - "available_models": [ - { - "name": "mistralai/Mixtral-8x7B-Instruct-v0.1", - "display_name": "Together Mixtral 8x7B", - "max_tokens": 32768 - } - ] - } - } -} -``` - -Note that LLM API keys aren't stored in your settings file. -So, ensure you have it set in your environment variables (`OPENAI_API_KEY=`) so your settings can pick it up. - -### OpenRouter {#openrouter} - -> ✅ Supports tool use - -OpenRouter provides access to multiple AI models through a single API. It supports tool use for compatible models. - -1. Visit [OpenRouter](https://openrouter.ai) and create an account -2. Generate an API key from your [OpenRouter keys page](https://openrouter.ai/keys) -3. Open the settings view (`agent: open settings`) and go to the OpenRouter section -4. Enter your OpenRouter API key - -The OpenRouter API key will be saved in your keychain. - -Zed will also use the `OPENROUTER_API_KEY` environment variable if it's defined. - -#### Custom Models {#openrouter-custom-models} - -You can add custom models to the OpenRouter provider by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "open_router": { - "api_url": "https://openrouter.ai/api/v1", - "available_models": [ - { - "name": "google/gemini-2.0-flash-thinking-exp", - "display_name": "Gemini 2.0 Flash (Thinking)", - "max_tokens": 200000, - "max_output_tokens": 8192, - "supports_tools": true, - "supports_images": true, - "mode": { - "type": "thinking", - "budget_tokens": 8000 - } - } - ] - } - } -} -``` - -The available configuration options for each model are: - -- `name` (required): The model identifier used by OpenRouter -- `display_name` (optional): A human-readable name shown in the UI -- `max_tokens` (required): The model's context window size -- `max_output_tokens` (optional): Maximum tokens the model can generate -- `max_completion_tokens` (optional): Maximum completion tokens -- `supports_tools` (optional): Whether the model supports tool/function calling -- `supports_images` (optional): Whether the model supports image inputs -- `mode` (optional): Special mode configuration for thinking models - -You can find available models and their specifications on the [OpenRouter models page](https://openrouter.ai/models). - -Custom models will be listed in the model dropdown in the Agent Panel. - -### Vercel v0 {#vercel-v0} - -> ✅ Supports tool use - -[Vercel v0](https://vercel.com/docs/v0/api) is an expert model for generating full-stack apps, with framework-aware completions optimized for modern stacks like Next.js and Vercel. -It supports text and image inputs and provides fast streaming responses. - -The v0 models are [OpenAI-compatible models](/#openai-api-compatible), but Vercel is listed as first-class provider in the panel's settings view. - -To start using it with Zed, ensure you have first created a [v0 API key](https://v0.dev/chat/settings/keys). -Once you have it, paste it directly into the Vercel provider section in the panel's settings view. - -You should then find it as `v0-1.5-md` in the model dropdown in the Agent Panel. - -### xAI {#xai} - -> ✅ Supports tool use - -Zed has first-class support for [xAI](https://x.ai/) models. You can use your own API key to access Grok models. - -1. [Create an API key in the xAI Console](https://console.x.ai/team/default/api-keys) -2. Open the settings view (`agent: open settings`) and go to the **xAI** section -3. Enter your xAI API key - -The xAI API key will be saved in your keychain. Zed will also use the `XAI_API_KEY` environment variable if it's defined. - -> **Note:** While the xAI API is OpenAI-compatible, Zed has first-class support for it as a dedicated provider. For the best experience, we recommend using the dedicated `x_ai` provider configuration instead of the [OpenAI API Compatible](#openai-api-compatible) method. - -#### Custom Models {#xai-custom-models} - -The Zed agent comes pre-configured with common Grok models. If you wish to use alternate models or customize their parameters, you can do so by adding the following to your Zed `settings.json`: - -```json -{ - "language_models": { - "x_ai": { - "api_url": "https://api.x.ai/v1", - "available_models": [ - { - "name": "grok-1.5", - "display_name": "Grok 1.5", - "max_tokens": 131072, - "max_output_tokens": 8192 - }, - { - "name": "grok-1.5v", - "display_name": "Grok 1.5V (Vision)", - "max_tokens": 131072, - "max_output_tokens": 8192, - "supports_images": true - } - ] - } - } -} -``` - -## Custom Provider Endpoints {#custom-provider-endpoint} - -You can use a custom API endpoint for different providers, as long as it's compatible with the provider's API structure. -To do so, add the following to your `settings.json`: - -```json -{ - "language_models": { - "some-provider": { - "api_url": "http://localhost:11434" - } - } -} -``` - -Currently, `some-provider` can be any of the following values: `anthropic`, `google`, `ollama`, `openai`. - -This is the same infrastructure that powers models that are, for example, [OpenAI-compatible](#openai-api-compatible). diff --git a/docs/src/ai/mcp.md b/docs/src/ai/mcp.md index dfe3e4bdb9..95929b2d7e 100644 --- a/docs/src/ai/mcp.md +++ b/docs/src/ai/mcp.md @@ -50,7 +50,7 @@ You can connect them by adding their commands directly to your `settings.json`, } ``` -Alternatively, you can also add a custom server by accessing the Agent Panel's Settings view (also accessible via the `agent: open settings` action). +Alternatively, you can also add a custom server by accessing the Agent Panel's Settings view (also accessible via the `agent: open configuration` action). From there, you can add it through the modal that appears when you click the "Add Custom Server" button. ## Using MCP Servers @@ -75,7 +75,7 @@ Mentioning your MCP server by name helps the agent pick it up. If you want to ensure a given server will be used, you can create [a custom profile](./agent-panel.md#custom-profiles) by turning off the built-in tools (either all of them or the ones that would cause conflicts) and turning on only the tools coming from the MCP server. -As an example, [the Dagger team suggests](https://container-use.com/agent-integrations#add-container-use-agent-profile-optional) doing that with their [Container Use MCP server](https://zed.dev/extensions/mcp-server-container-use): +As an example, [the Dagger team suggests](https://container-use.com/agent-integrations#add-container-use-agent-profile-optional) doing that with their [Container Use MCP server](https://zed.dev/extensions/container-use-mcp-server): ```json "agent": { diff --git a/docs/src/ai/overview.md b/docs/src/ai/overview.md index 6f081cb243..f437b24ba6 100644 --- a/docs/src/ai/overview.md +++ b/docs/src/ai/overview.md @@ -1,12 +1,15 @@ # AI -Learn how to get started using AI with Zed and all its capabilities. +Zed smoothly integrates LLMs in multiple ways across the editor. +Learn how to get started with AI on Zed and all its capabilities. ## Setting up AI in Zed - [Configuration](./configuration.md): Learn how to set up different language model providers like Anthropic, OpenAI, Ollama, Google AI, and more. -- [Subscription](./subscription.md): Learn about Zed's hosted model service and other billing-related information. +- [Models](./models.md): Learn about the various language models available in Zed. + +- [Subscription](./subscription.md): Learn about Zed's subscriptions and other billing-related information. - [Privacy and Security](./privacy-and-security.md): Understand how Zed handles privacy and security with AI features. diff --git a/docs/src/ai/plans-and-usage.md b/docs/src/ai/plans-and-usage.md index 1e6616c79b..a1da17f50d 100644 --- a/docs/src/ai/plans-and-usage.md +++ b/docs/src/ai/plans-and-usage.md @@ -11,7 +11,7 @@ Please note that if you’re interested in just using Zed as the world’s faste ## Usage {#usage} -- A `prompt` in Zed is an input from the user, initiated by pressing enter, composed of one or many `requests`. A `prompt` can be initiated from the Agent Panel, or via Inline Assist. +- A `prompt` in Zed is an input from the user, initiated on pressing enter, composed of one or many `requests`. A `prompt` can be initiated from the Agent Panel, or via Inline Assist. - A `request` in Zed is a response to a `prompt`, plus any tool calls that are initiated as part of that response. There may be one `request` per `prompt`, or many. Most models offered by Zed are metered per-prompt. diff --git a/docs/src/ai/rules.md b/docs/src/ai/rules.md index 653b907a7d..ed916874ca 100644 --- a/docs/src/ai/rules.md +++ b/docs/src/ai/rules.md @@ -5,7 +5,7 @@ Currently, Zed supports `.rules` files at the directory's root and the Rules Lib ## `.rules` files -Zed supports including `.rules` files at the top level of worktrees, and they act as project-level instructions that are included in all of your interactions with the Agent Panel. +Zed supports including `.rules` files at the top level of worktrees, and act as project-level instructions that are included in all of your interactions with the Agent Panel. Other names for this file are also supported for compatibility with other agents, but note that the first file which matches in this list will be used: - `.rules` diff --git a/docs/src/ai/temperature.md b/docs/src/ai/temperature.md new file mode 100644 index 0000000000..bb0cef6b51 --- /dev/null +++ b/docs/src/ai/temperature.md @@ -0,0 +1,23 @@ +# Model Temperature + +Zed's settings allow you to specify a custom temperature for a provider and/or model: + +```json +"model_parameters": [ + // To set parameters for all requests to OpenAI models: + { + "provider": "openai", + "temperature": 0.5 + }, + // To set parameters for all requests in general: + { + "temperature": 0 + }, + // To set parameters for a specific provider and model: + { + "provider": "zed.dev", + "model": "claude-sonnet-4", + "temperature": 1.0 + } + ], +``` diff --git a/docs/src/configuring-zed.md b/docs/src/configuring-zed.md index 5fd27abad6..cc4800fd6d 100644 --- a/docs/src/configuring-zed.md +++ b/docs/src/configuring-zed.md @@ -2588,7 +2588,6 @@ List of `integer` column numbers "font_features": null, "font_size": null, "line_height": "comfortable", - "minimum_contrast": 45, "option_as_meta": false, "button": true, "shell": "system", @@ -2884,30 +2883,6 @@ See Buffer Font Features } ``` -### Terminal: Minimum Contrast - -- Description: Controls the minimum contrast between foreground and background colors in the terminal. Uses the APCA (Accessible Perceptual Contrast Algorithm) for color adjustments. Set this to 0 to disable this feature. -- Setting: `minimum_contrast` -- Default: `45` - -**Options** - -`integer` values from 0 to 106. Common recommended values: - -- `0`: No contrast adjustment -- `45`: Minimum for large fluent text (default) -- `60`: Minimum for other content text -- `75`: Minimum for body text -- `90`: Preferred for body text - -```json -{ - "terminal": { - "minimum_contrast": 45 - } -} -``` - ### Terminal: Option As Meta - Description: Re-interprets the option keys to act like a 'meta' key, like in Emacs. @@ -3415,7 +3390,26 @@ Run the `theme selector: toggle` action in the command palette to see a current ## Agent -Visit [the Configuration page](./ai/configuration.md) under the AI section to learn more about all the agent-related settings. +- Description: Customize agent behavior +- Setting: `agent` +- Default: + +```json +"agent": { + "version": "2", + "enabled": true, + "button": true, + "dock": "right", + "default_width": 640, + "default_height": 320, + "default_view": "thread", + "default_model": { + "provider": "zed.dev", + "model": "claude-sonnet-4" + }, + "single_file_review": true, +} +``` ## Outline Panel diff --git a/docs/src/extensions/installing-extensions.md b/docs/src/extensions/installing-extensions.md index 801fe5c55c..aed8bef428 100644 --- a/docs/src/extensions/installing-extensions.md +++ b/docs/src/extensions/installing-extensions.md @@ -1,6 +1,6 @@ # Installing Extensions -You can search for extensions by launching the Zed Extension Gallery by pressing {#kb zed::Extensions} , opening the command palette and selecting {#action zed::Extensions} or by selecting "Zed > Extensions" from the menu bar. +You can search for extensions by launching the Zed Extension Gallery by pressing `cmd-shift-x` (macOS) or `ctrl-shift-x` (Linux), opening the command palette and selecting `zed: extensions` or by selecting "Zed > Extensions" from the menu bar. Here you can view the extensions that you currently have installed or search and install new ones. diff --git a/docs/src/getting-started.md b/docs/src/getting-started.md index 22af3b36d7..5940c74b21 100644 --- a/docs/src/getting-started.md +++ b/docs/src/getting-started.md @@ -83,6 +83,6 @@ Visit [the AI overview page](./ai/overview.md) to learn how to quickly get start ## Set up your key bindings -To edit your custom keymap and add or remap bindings, you can either use {#kb zed::OpenKeymapEditor} to spawn the Zed Keymap Editor ({#action zed::OpenKeymapEditor}) or you can directly open your Zed Keymap json (`~/.config/zed/keymap.json`) with {#action zed::OpenKeymap}. +To open your custom keymap to add your key bindings, use the {#kb zed::OpenKeymap} keybinding. To access the default key binding set, open the Command Palette with {#kb command_palette::Toggle} and search for "zed: open default keymap". See [Key Bindings](./key-bindings.md) for more info. diff --git a/docs/src/git.md b/docs/src/git.md index cccbad9b2e..76db15a767 100644 --- a/docs/src/git.md +++ b/docs/src/git.md @@ -1,8 +1,3 @@ ---- -description: Zed is a text editor that supports lots of Git features -title: Zed Editor Git integration documentation ---- - # Git Zed currently offers a set of fundamental Git features, with support coming in the future for more advanced ones, like conflict resolution tools, line by line staging, and more. @@ -81,7 +76,7 @@ You can ask AI to generate a commit message by focusing on the message editor wi > Note that you need to have an LLM provider configured. Visit [the AI configuration page](./ai/configuration.md) to learn how to do so. -You can specify your preferred model to use by providing a `commit_message_model` agent setting. See [Feature-specific models](./ai/agent-settings.md#feature-specific-models) for more information. +You can specify your preferred model to use by providing a `commit_message_model` agent setting. See [Feature-specific models](./ai/configuration.md#feature-specific-models) for more information. ```json { diff --git a/docs/src/key-bindings.md b/docs/src/key-bindings.md index 9984f234ad..90aa400bb4 100644 --- a/docs/src/key-bindings.md +++ b/docs/src/key-bindings.md @@ -18,7 +18,7 @@ You can also enable `vim_mode`, which adds vim bindings too. ## User keymaps -Zed reads your keymap from `~/.config/zed/keymap.json`. You can open the file within Zed with {#action zed::OpenKeymap} from the command palette or to spawn the Zed Keymap Editor ({#action zed::OpenKeymapEditor}) use {#kb zed::OpenKeymapEditor}. +Zed reads your keymap from `~/.config/zed/keymap.json`. You can open the file within Zed with {#kb zed::OpenKeymap}, or via `zed: Open Keymap` in the command palette. The file contains a JSON array of objects with `"bindings"`. If no `"context"` is set the bindings are always active. If it is set the binding is only active when the [context matches](#contexts). diff --git a/docs/src/languages/c.md b/docs/src/languages/c.md index 8db1bb6712..14a11c0d66 100644 --- a/docs/src/languages/c.md +++ b/docs/src/languages/c.md @@ -77,7 +77,7 @@ You can use CodeLLDB or GDB to debug native binaries. (Make sure that your build "command": "make", "args": ["-j8"], "cwd": "$ZED_WORKTREE_ROOT" - }, + } "program": "$ZED_WORKTREE_ROOT/build/prog", "request": "launch", "adapter": "CodeLLDB" diff --git a/docs/src/languages/cpp.md b/docs/src/languages/cpp.md index e84bb6ea50..1273bce2ac 100644 --- a/docs/src/languages/cpp.md +++ b/docs/src/languages/cpp.md @@ -127,7 +127,7 @@ You can use CodeLLDB or GDB to debug native binaries. (Make sure that your build "command": "make", "args": ["-j8"], "cwd": "$ZED_WORKTREE_ROOT" - }, + } "program": "$ZED_WORKTREE_ROOT/build/prog", "request": "launch", "adapter": "CodeLLDB" diff --git a/docs/src/languages/deno.md b/docs/src/languages/deno.md index c40b6531e6..c18b112326 100644 --- a/docs/src/languages/deno.md +++ b/docs/src/languages/deno.md @@ -57,40 +57,6 @@ See [Configuring supported languages](../configuring-languages.md) in the Zed do TBD: Deno Typescript REPL instructions [docs/repl#typescript-deno](../repl.md#typescript-deno) --> -## DAP support - -To debug deno programs, add this to `.zed/debug.json` - -```json -[ - { - "adapter": "JavaScript", - "label": "Deno", - "request": "launch", - "type": "pwa-node", - "cwd": "$ZED_WORKTREE_ROOT", - "program": "$ZED_FILE", - "runtimeExecutable": "deno", - "runtimeArgs": ["run", "--allow-all", "--inspect-wait"], - "attachSimplePort": 9229 - } -] -``` - -## Runnable support - -To run deno tasks like tests from the ui, add this to `.zed/tasks.json` - -```json -[ - { - "label": "deno test", - "command": "deno test -A --filter '/^$ZED_CUSTOM_DENO_TEST_NAME$/' $ZED_FILE", - "tags": ["js-test"] - } -] -``` - ## See also: - [TypeScript](./typescript.md) diff --git a/docs/src/linux.md b/docs/src/linux.md index 309354de6d..ca65da2969 100644 --- a/docs/src/linux.md +++ b/docs/src/linux.md @@ -294,78 +294,3 @@ If your system uses PipeWire: ``` 3. **Restart your system** - -### Forcing X11 scale factor - -On X11 systems, Zed automatically detects the appropriate scale factor for high-DPI displays. The scale factor is determined using the following priority order: - -1. `GPUI_X11_SCALE_FACTOR` environment variable (if set) -2. `Xft.dpi` from X resources database (xrdb) -3. Automatic detection via RandR based on monitor resolution and physical size - -If you want to customize the scale factor beyond what Zed detects automatically, you have several options: - -#### Check your current scale factor - -You can verify if you have `Xft.dpi` set: - -```sh -xrdb -query | grep Xft.dpi -``` - -If this command returns no output, Zed is using RandR (X11's monitor management extension) to automatically calculate the scale factor based on your monitor's reported resolution and physical dimensions. - -#### Option 1: Set Xft.dpi (X Resources Database) - -`Xft.dpi` is a standard X11 setting that many applications use for consistent font and UI scaling. Setting this ensures Zed scales the same way as other X11 applications that respect this setting. - -Edit or create the `~/.Xresources` file: - -```sh -vim ~/.Xresources -``` - -Add this line with your desired DPI: - -```sh -Xft.dpi: 96 -``` - -Common DPI values: - -- `96` for standard 1x scaling -- `144` for 1.5x scaling -- `192` for 2x scaling -- `288` for 3x scaling - -Load the configuration: - -```sh -xrdb -merge ~/.Xresources -``` - -Restart Zed for the changes to take effect. - -#### Option 2: Use the GPUI_X11_SCALE_FACTOR environment variable - -This Zed-specific environment variable directly sets the scale factor, bypassing all automatic detection. - -```sh -GPUI_X11_SCALE_FACTOR=1.5 zed -``` - -You can use decimal values (e.g., `1.25`, `1.5`, `2.0`) or set `GPUI_X11_SCALE_FACTOR=randr` to force RandR-based detection even when `Xft.dpi` is set. - -To make this permanent, add it to your shell profile or desktop entry. - -#### Option 3: Adjust system-wide RandR DPI - -This changes the reported DPI for your entire X11 session, affecting how RandR calculates scaling for all applications that use it. - -Add this to your `.xprofile` or `.xinitrc`: - -```sh -xrandr --dpi 192 -``` - -Replace `192` with your desired DPI value. This affects the system globally and will be used by Zed's automatic RandR detection when `Xft.dpi` is not set. diff --git a/docs/src/telemetry.md b/docs/src/telemetry.md index 7f5994be0c..20018b920a 100644 --- a/docs/src/telemetry.md +++ b/docs/src/telemetry.md @@ -22,9 +22,8 @@ The telemetry settings can also be configured via the welcome screen, which can Telemetry is sent from the application to our servers. Data is proxied through our servers to enable us to easily switch analytics services. We currently use: - [Axiom](https://axiom.co): Cloud-monitoring service - stores diagnostic events -- [Snowflake](https://snowflake.com): Data warehouse - stores both diagnostic and metric events -- [Hex](https://www.hex.tech): Dashboards and data exploration - accesses data stored in Snowflake -- [Amplitude](https://www.amplitude.com): Dashboards and data exploration - accesses data stored in Snowflake +- [Snowflake](https://snowflake.com): Business Intelligence platform - stores both diagnostic and metric events +- [Metabase](https://www.metabase.com): Dashboards - dashboards built around data pulled from Snowflake ## Types of Telemetry @@ -34,7 +33,7 @@ Diagnostic events include debug information (stack traces) from crash reports. R You can see what data is sent when a panic occurs by inspecting the `Panic` struct in [crates/telemetry_events/src/telemetry_events.rs](https://github.com/zed-industries/zed/blob/main/crates/telemetry_events/src/telemetry_events.rs) in the Zed repo. You can find additional information in the [Debugging Crashes](./development/debugging-crashes.md) documentation. -### Client-Side Usage Data {#client-metrics} +### Usage Data (Metrics) {#metrics} To improve Zed and understand how it is being used in the wild, Zed optionally collects usage data like the following: @@ -51,12 +50,6 @@ You can audit the metrics data that Zed has reported by running the command {#ac You can see the full list of the event types and exactly the data sent for each by inspecting the `Event` enum and the associated structs in [crates/telemetry_events/src/telemetry_events.rs](https://github.com/zed-industries/zed/blob/main/crates/telemetry_events/src/telemetry_events.rs) in the Zed repository. -### Server-Side Usage Data {#metrics} - -When using Zed's hosted services, we may collect, generate, and Process data to allow us to support users and improve our hosted offering. Examples include metadata around rate limiting and billing metrics/token usage. Zed does not persistently store user content or use user content to evaluate and/or improve our AI features, unless it is explicitly shared with Zed, and we have a zero-data retention agreement with Anthropic. - -You can see more about our stance on data collection (and that any prompt data shared with Zed is explicitly opt-in) at [AI Improvement](./ai/ai-improvement.md). - ## Concerns and Questions If you have concerns about telemetry, please feel free to [open an issue](https://github.com/zed-industries/zed/issues/new/choose). diff --git a/docs/src/visual-customization.md b/docs/src/visual-customization.md index 8b307d97d5..197c9b80f8 100644 --- a/docs/src/visual-customization.md +++ b/docs/src/visual-customization.md @@ -267,7 +267,7 @@ TBD: Centered layout related settings "display_in": "active_editor", // Where to show (active_editor, all_editor) "thumb": "always", // When to show thumb (always, hover) "thumb_border": "left_open", // Thumb border (left_open, right_open, full, none) - "max_width_columns": 80, // Maximum width of minimap + "max_width_columns": 80 // Maximum width of minimap "current_line_highlight": null // Highlight current line (null, line, gutter) }, diff --git a/docs/theme/index.hbs b/docs/theme/index.hbs index 4339a02d17..8ab4f21cf1 100644 --- a/docs/theme/index.hbs +++ b/docs/theme/index.hbs @@ -15,7 +15,7 @@ {{> head}} - + diff --git a/extensions/emmet/Cargo.toml b/extensions/emmet/Cargo.toml index 9d72a6c5c4..db8aaaae41 100644 --- a/extensions/emmet/Cargo.toml +++ b/extensions/emmet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zed_emmet" -version = "0.0.4" +version = "0.0.3" edition.workspace = true publish.workspace = true license = "Apache-2.0" diff --git a/script/bundle-linux b/script/bundle-linux index 64de62ce9b..c52312015b 100755 --- a/script/bundle-linux +++ b/script/bundle-linux @@ -83,23 +83,6 @@ if [[ "$remote_server_triple" == "$musl_triple" ]]; then fi cargo build --release --target "${remote_server_triple}" --package remote_server -# Upload debug info to sentry.io -if ! command -v sentry-cli >/dev/null 2>&1; then - echo "sentry-cli not found. skipping sentry upload." - echo "install with: 'curl -sL https://sentry.io/get-cli | bash'" -else - if [[ -n "${SENTRY_AUTH_TOKEN:-}" ]]; then - echo "Uploading zed debug symbols to sentry..." - # note: this uploads the unstripped binary which is needed because it contains - # .eh_frame data for stack unwinindg. see https://github.com/getsentry/symbolic/issues/783 - sentry-cli debug-files upload --include-sources --wait -p zed -o zed-dev \ - "${target_dir}/${target_triple}"/release/zed \ - "${target_dir}/${remote_server_triple}"/release/remote_server - else - echo "missing SENTRY_AUTH_TOKEN. skipping sentry upload." - fi -fi - # Strip debug symbols and save them for upload to DigitalOcean objcopy --only-keep-debug "${target_dir}/${target_triple}/release/zed" "${target_dir}/${target_triple}/release/zed.dbg" objcopy --only-keep-debug "${target_dir}/${remote_server_triple}/release/remote_server" "${target_dir}/${remote_server_triple}/release/remote_server.dbg" diff --git a/script/bundle-mac b/script/bundle-mac index b2be573235..18dfe90815 100755 --- a/script/bundle-mac +++ b/script/bundle-mac @@ -366,20 +366,3 @@ else gzip -f --stdout --best target/x86_64-apple-darwin/release/remote_server > target/zed-remote-server-macos-x86_64.gz gzip -f --stdout --best target/aarch64-apple-darwin/release/remote_server > target/zed-remote-server-macos-aarch64.gz fi - -# Upload debug info to sentry.io -if ! command -v sentry-cli >/dev/null 2>&1; then - echo "sentry-cli not found. skipping sentry upload." - echo "install with: 'curl -sL https://sentry.io/get-cli | bash'" -else - if [[ -n "${SENTRY_AUTH_TOKEN:-}" ]]; then - echo "Uploading zed debug symbols to sentry..." - # note: this uploads the unstripped binary which is needed because it contains - # .eh_frame data for stack unwinindg. see https://github.com/getsentry/symbolic/issues/783 - sentry-cli debug-files upload --include-sources --wait -p zed -o zed-dev \ - "target/x86_64-apple-darwin/${target_dir}/" \ - "target/aarch64-apple-darwin/${target_dir}/" - else - echo "missing SENTRY_AUTH_TOKEN. skipping sentry upload." - fi -fi diff --git a/script/bundle-windows.ps1 b/script/bundle-windows.ps1 index 8ae0212491..01a1114c26 100644 --- a/script/bundle-windows.ps1 +++ b/script/bundle-windows.ps1 @@ -26,7 +26,6 @@ if ($Help) { Push-Location -Path crates/zed $channel = Get-Content "RELEASE_CHANNEL" $env:ZED_RELEASE_CHANNEL = $channel -$env:RELEASE_CHANNEL = $channel Pop-Location function CheckEnvironmentVariables { @@ -97,21 +96,6 @@ function ZipZedAndItsFriendsDebug { Compress-Archive -Path $items -DestinationPath ".\target\release\zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip" -Force } - -function UploadToSentry { - if (-not (Get-Command "sentry-cli" -ErrorAction SilentlyContinue)) { - Write-Output "sentry-cli not found. skipping sentry upload." - Write-Output "install with: 'winget install -e --id=Sentry.sentry-cli'" - return - } - if (-not (Test-Path "env:SENTRY_AUTH_TOKEN")) { - Write-Output "missing SENTRY_AUTH_TOKEN. skipping sentry upload." - return - } - Write-Output "Uploading zed debug symbols to sentry..." - sentry-cli debug-files upload --include-sources --wait -p zed -o zed-dev .\target\release\ -} - function MakeAppx { switch ($channel) { "stable" { @@ -136,22 +120,11 @@ function SignZedAndItsFriends { & "$innoDir\sign.ps1" $files } -function DownloadAMDGpuServices { - # If you update the AGS SDK version, please also update the version in `crates/gpui/src/platform/windows/directx_renderer.rs` - $url = "https://codeload.github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/zip/refs/tags/v6.3.0" - $zipPath = ".\AGS_SDK_v6.3.0.zip" - # Download the AGS SDK zip file - Invoke-WebRequest -Uri $url -OutFile $zipPath - # Extract the AGS SDK zip file - Expand-Archive -Path $zipPath -DestinationPath "." -Force -} - function CollectFiles { Move-Item -Path "$innoDir\zed_explorer_command_injector.appx" -Destination "$innoDir\appx\zed_explorer_command_injector.appx" -Force Move-Item -Path "$innoDir\zed_explorer_command_injector.dll" -Destination "$innoDir\appx\zed_explorer_command_injector.dll" -Force Move-Item -Path "$innoDir\cli.exe" -Destination "$innoDir\bin\zed.exe" -Force Move-Item -Path "$innoDir\auto_update_helper.exe" -Destination "$innoDir\tools\auto_update_helper.exe" -Force - Move-Item -Path ".\AGS_SDK-6.3.0\ags_lib\lib\amd_ags_x64.dll" -Destination "$innoDir\amd_ags_x64.dll" -Force } function BuildInstaller { @@ -222,6 +195,7 @@ function BuildInstaller { # Windows runner 2022 default has iscc in PATH, https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md # Currently, we are using Windows 2022 runner. # Windows runner 2025 doesn't have iscc in PATH for now, https://github.com/actions/runner-images/issues/11228 + # $innoSetupPath = "iscc.exe" $innoSetupPath = "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" $definitions = @{ @@ -268,8 +242,6 @@ function BuildInstaller { ParseZedWorkspace $innoDir = "$env:ZED_WORKSPACE\inno" -$debugArchive = ".\target\release\zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip" -$debugStoreKey = "$env:ZED_RELEASE_CHANNEL/zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip" CheckEnvironmentVariables PrepareForBundle @@ -278,12 +250,12 @@ BuildZedAndItsFriends MakeAppx SignZedAndItsFriends ZipZedAndItsFriendsDebug -DownloadAMDGpuServices CollectFiles BuildInstaller +$debugArchive = ".\target\release\zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip" +$debugStoreKey = "$env:ZED_RELEASE_CHANNEL/zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip" UploadToBlobStorePublic -BucketName "zed-debug-symbols" -FileToUpload $debugArchive -BlobStoreKey $debugStoreKey -UploadToSentry if ($buildSuccess) { Write-Output "Build successful" diff --git a/script/linux b/script/linux index 029278bea3..98ae026896 100755 --- a/script/linux +++ b/script/linux @@ -143,7 +143,6 @@ if [[ -n $zyp ]]; then gzip jq libvulkan1 - libx11-devel libxcb-devel libxkbcommon-devel libxkbcommon-x11-devel diff --git a/script/zed-local b/script/zed-local index 99d9308232..2568931246 100755 --- a/script/zed-local +++ b/script/zed-local @@ -213,7 +213,7 @@ setTimeout(() => { platform === "win32" ? "http://127.0.0.1:8080/rpc" : "http://localhost:8080/rpc", - ZED_ADMIN_API_TOKEN: "internal-api-key-secret", + ZED_ADMIN_API_TOKEN: "secret", ZED_WINDOW_SIZE: size, ZED_CLIENT_CHECKSUM_SEED: "development-checksum-seed", RUST_LOG: process.env.RUST_LOG || "info", diff --git a/tooling/workspace-hack/Cargo.toml b/tooling/workspace-hack/Cargo.toml index 4196696f47..f84682ad89 100644 --- a/tooling/workspace-hack/Cargo.toml +++ b/tooling/workspace-hack/Cargo.toml @@ -284,6 +284,7 @@ winnow = { version = "0.7", features = ["simd"] } codespan-reporting = { version = "0.12" } core-foundation = { version = "0.9" } core-foundation-sys = { version = "0.8" } +coreaudio-sys = { version = "0.2", default-features = false, features = ["audio_toolbox", "audio_unit", "core_audio", "core_midi", "open_al"] } foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -309,9 +310,11 @@ tokio-stream = { version = "0.1", features = ["fs"] } tower = { version = "0.5", default-features = false, features = ["timeout", "util"] } [target.x86_64-apple-darwin.build-dependencies] +clang-sys = { version = "1", default-features = false, features = ["clang_11_0", "runtime"] } codespan-reporting = { version = "0.12" } core-foundation = { version = "0.9" } core-foundation-sys = { version = "0.8" } +coreaudio-sys = { version = "0.2", default-features = false, features = ["audio_toolbox", "audio_unit", "core_audio", "core_midi", "open_al"] } foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -341,6 +344,7 @@ tower = { version = "0.5", default-features = false, features = ["timeout", "uti codespan-reporting = { version = "0.12" } core-foundation = { version = "0.9" } core-foundation-sys = { version = "0.8" } +coreaudio-sys = { version = "0.2", default-features = false, features = ["audio_toolbox", "audio_unit", "core_audio", "core_midi", "open_al"] } foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -366,9 +370,11 @@ tokio-stream = { version = "0.1", features = ["fs"] } tower = { version = "0.5", default-features = false, features = ["timeout", "util"] } [target.aarch64-apple-darwin.build-dependencies] +clang-sys = { version = "1", default-features = false, features = ["clang_11_0", "runtime"] } codespan-reporting = { version = "0.12" } core-foundation = { version = "0.9" } core-foundation-sys = { version = "0.8" } +coreaudio-sys = { version = "0.2", default-features = false, features = ["audio_toolbox", "audio_unit", "core_audio", "core_midi", "open_al"] } foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -558,6 +564,7 @@ getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-f getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12"] } itertools-5ef9efb8ec2df382 = { package = "itertools", version = "0.12" } +naga = { version = "25", features = ["spv-out", "wgsl-in"] } ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event"] } scopeguard = { version = "1" } @@ -581,6 +588,7 @@ getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-f getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12"] } itertools-5ef9efb8ec2df382 = { package = "itertools", version = "0.12" } +naga = { version = "25", features = ["spv-out", "wgsl-in"] } proc-macro2 = { version = "1", default-features = false, features = ["span-locations"] } ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event"] } diff --git a/typos.toml b/typos.toml index 336a829a44..7f1c6e04f1 100644 --- a/typos.toml +++ b/typos.toml @@ -71,10 +71,6 @@ extend-ignore-re = [ # Not an actual typo but an intentionally invalid color, in `color_extractor` "#fof", # Stripped version of reserved keyword `type` - "typ", - # AMD GPU Services - "ags", - # AMD GPU Services - "AGS" + "typ" ] check-filename = true