From d34516fc9705803d998a3825577362ee08701864 Mon Sep 17 00:00:00 2001 From: Anshu ROY Date: Fri, 26 Sep 2025 06:08:52 +0200 Subject: [PATCH 1/6] Added documentation on code structure, updated other documentation --- src/docs/ARCHITECTURE_GUIDE.md | 303 ++++------------------ src/docs/CODE_STRUCTURE_GUIDE.md | 104 ++++++++ src/docs/DEVELOPER_GUIDE.md | 432 +++++++++---------------------- src/docs/README.md | 11 + src/docs/WHY_KASAL.md | 89 +++---- 5 files changed, 337 insertions(+), 602 deletions(-) create mode 100644 src/docs/CODE_STRUCTURE_GUIDE.md diff --git a/src/docs/ARCHITECTURE_GUIDE.md b/src/docs/ARCHITECTURE_GUIDE.md index f3362f73..7ed73b6e 100644 --- a/src/docs/ARCHITECTURE_GUIDE.md +++ b/src/docs/ARCHITECTURE_GUIDE.md @@ -69,55 +69,50 @@ graph TB --- -## Component Architecture +## Architecture Pattern + +### High-level +- Layered architecture: + - Frontend (React SPA) → API (FastAPI) → Services → Repositories → Database +- Async-first (async SQLAlchemy, background tasks, queues) +- Config via environment (`src/backend/src/config/settings.py`) +- Pluggable orchestration engine (`src/backend/src/engines/` with CrewAI) + +### Request lifecycle (CRUD path) +1) Router in `api/` receives request, validates using `schemas/` +2) Router calls `services/` for business logic +3) Service uses `repositories/` for DB/external I/O +4) Data persisted via `db/session.py` +5) Response serialized with Pydantic schemas + +### Orchestration lifecycle (AI execution) +- Entry via `executions_router.py` → `execution_service.py` +- Service prepares agents/tools/memory and selects engine (`engines/engine_factory.py`) +- CrewAI path: + - Prep: `engines/crewai/crew_preparation.py` and `flow_preparation.py` + - Run: `engines/crewai/execution_runner.py` with callbacks/guardrails + - Observability: `execution_logs_service.py`, `execution_trace_service.py` +- Persist status/history: `execution_repository.py`, `execution_history_repository.py` + +### Background processing +- Scheduler at startup: `scheduler_service.py` +- Embedding queue (SQLite): `embedding_queue_service.py` (batches writes) +- Startup/shutdown cleanup: `execution_cleanup_service.py` + +### Data modeling +- ORM in `models/*` mirrors `schemas/*` +- Repositories encapsulate all SQL/external calls (Databricks APIs, Vector Search, MLflow) +- `db/session.py`: + - Async engine and session factory + - SQLite lock retry w/ backoff + - Optional SQL logging via `SQL_DEBUG=true` + +### Auth, identity, and tenancy +- Databricks Apps headers parsed by `utils/user_context.py` +- Group-aware multi-tenant context propagated via middleware +- JWT/basic auth routes in `auth_router.py`, users in `users_router.py` +- Authorization checks in `core/permissions.py` -### Frontend (React SPA) -``` -components/ -├── Workflow/ # Visual designer -├── Execution/ # Real-time monitoring -├── Configuration/ # System settings -└── Analytics/ # Performance metrics -``` - -**Key Technologies**: React 18, TypeScript, Material-UI, ReactFlow, Zustand - -### Backend Services -``` -services/ -├── AuthService # JWT + OAuth -├── CrewService # Agent orchestration -├── ExecutionService # Workflow execution -├── MemoryService # Persistent context -└── IntegrationService # External systems -``` - -**Key Technologies**: FastAPI, SQLAlchemy 2.0, Pydantic, AsyncIO - -### AI Engine -``` -engine/ -├── AgentFactory # Agent creation -├── TaskProcessor # Task execution -├── ToolRegistry # Tool management -└── MemoryBackend # Context persistence -``` - -**Key Technologies**: CrewAI, LangChain, Vector Embeddings - ---- - -## Security Architecture - -### Authentication & Authorization -```python -# Multi-layer security -1. API Gateway → Rate limiting, DDoS protection -2. JWT Tokens → Stateless authentication -3. RBAC → Role-based permissions -4. Row-Level → Tenant data isolation -5. Audit Logs → Complete traceability -``` ### Security Controls | Layer | Control | Implementation | @@ -130,26 +125,6 @@ engine/ --- -## Data Architecture - -### Data Model -```sql --- Core entities -crews (id, name, config, owner_id, group_id) -agents (id, crew_id, role, capabilities) -tasks (id, agent_id, description, status) -executions (id, crew_id, job_id, status) -traces (id, execution_id, timestamp, data) -``` - -### Data Flow -``` -User Request → API → Service → Repository → Database - ↓ ↓ ↓ ↓ ↓ - Validation Business Domain Data Storage - Logic Model Access Engine -``` - ### Storage Strategy | Data Type | Storage | Purpose | |-----------|---------|---------| @@ -161,192 +136,16 @@ User Request → API → Service → Repository → Database --- -## Performance Architecture - -### Scaling Strategy -```yaml -Horizontal Scaling: - - API: Auto-scale 2-100 pods - - Workers: Queue-based scaling - - Database: Read replicas - - Cache: Redis cluster - -Vertical Scaling: - - LLM Gateway: GPU instances - - Vector Search: Memory-optimized -``` - -### Performance Metrics -| Component | Target | Current | -|-----------|--------|---------| -| **API Latency** | <100ms | 45ms | -| **Execution Start** | <1s | 0.3s | -| **Throughput** | 10K req/s | 15K req/s | -| **Availability** | 99.99% | 99.995% | - -### Optimization Techniques -- **Connection Pooling**: 20 connections, 40 overflow -- **Batch Processing**: 50-item chunks -- **Async Everything**: Non-blocking I/O -- **Caching**: Redis with 15min TTL -- **CDN**: Static assets via CloudFront - ---- - -## Integration Architecture - -### API Gateway Pattern -```nginx -location /api/v1/ { - rate_limit 100/s; - auth_jwt on; - proxy_pass backend_cluster; -} -``` - -### External Integrations -| System | Method | Use Case | -|--------|--------|----------| -| **Databricks** | OAuth + REST | ML models, compute | -| **Slack/Teams** | Webhooks | Notifications | -| **Salesforce** | REST API | CRM data | -| **GitHub** | GraphQL | Code repos | -| **S3/Azure** | SDK | File storage | +### Observability +- Central log manager: `core/logger.py` (writes to `LOG_DIR`) +- API/SQL logging toggles (`LOG_LEVEL`, `SQL_DEBUG`) +- Execution logs/traces persisted and queryable via dedicated routes/services -### Event-Driven Architecture -```python -# Event bus pattern -EventBus.publish("execution.started", { - "crew_id": "abc123", - "job_id": "job456", - "timestamp": datetime.now() -}) - -# Subscribers -- NotificationService → Send alerts -- AnalyticsService → Track metrics -- AuditService → Log activity -``` - ---- +### Configuration flags (selected) +- `DOCS_ENABLED`: enables `/api-docs`, `/api-redoc`, `/api-openapi.json` +- `AUTO_SEED_DATABASE`: async background seeders post DB init +- `DATABASE_TYPE`: `postgres` (default) or `sqlite` with `SQLITE_DB_PATH` -## Deployment Architecture -### Container Strategy -```dockerfile -# Multi-stage build -FROM python:3.9-slim AS builder -# Build dependencies - -FROM python:3.9-slim -# Runtime only -``` - -### Kubernetes Deployment -```yaml -apiVersion: apps/v1 -kind: Deployment -spec: - replicas: 3 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 -``` - -### CI/CD Pipeline -``` -1. Code Push → GitHub -2. Tests → GitHub Actions -3. Build → Docker -4. Deploy → Kubernetes -5. Monitor → Datadog -``` - ---- - -## Monitoring & Observability - -### Three Pillars -```python -# 1. Metrics (Prometheus) -execution_duration_seconds.observe(duration) -active_crews_gauge.set(count) - -# 2. Logs (ELK Stack) -logger.info("Execution completed", - crew_id=crew_id, - duration=duration) - -# 3. Traces (Jaeger) -with tracer.start_span("crew_execution"): - result = await crew.execute() -``` - -### SLO/SLA Targets -| Service | SLO | SLA | -|---------|-----|-----| -| **API Availability** | 99.95% | 99.9% | -| **Execution Success** | 98% | 95% | -| **Response Time P95** | 200ms | 500ms | -| **Data Durability** | 99.999999% | 99.9999% | - ---- - -## Disaster Recovery - -### Backup Strategy -- **Database**: Daily snapshots, 30-day retention -- **File Storage**: Cross-region replication -- **Configuration**: Git-backed, versioned - -### RTO/RPO Targets -- **RTO** (Recovery Time): 4 hours -- **RPO** (Point Objective): 1 hour - -### Failover Process -``` -1. Health check fails → 3 retries -2. Trigger failover → DNS update -3. Activate standby → Warm replicas -4. Verify services → Health checks -5. Resume traffic → Gradual rollout -``` - ---- - -## Technology Roadmap - -### Q1 2025 -- Core platform launch -- Databricks integration -- Kubernetes deployment - -### Q2 2025 -- Multi-region support -- Advanced analytics -- Mobile SDK - -### Q3 2025 -- GraphQL API -- Edge computing -- AI marketplace - -### Q4 2025 -- Quantum-ready encryption -- Autonomous optimization -- Enterprise marketplace - ---- - -## Architecture Support - -- **Architecture Review Board**: Weekly Thursdays -- **Design Docs**: Confluence/architecture -- **Slack**: #architecture-decisions -- **Email**: architecture@example.com - ---- *Architected for scale, built for the future* \ No newline at end of file diff --git a/src/docs/CODE_STRUCTURE_GUIDE.md b/src/docs/CODE_STRUCTURE_GUIDE.md new file mode 100644 index 00000000..0c8232d9 --- /dev/null +++ b/src/docs/CODE_STRUCTURE_GUIDE.md @@ -0,0 +1,104 @@ +## Code Structure + +### Top-level +- `README.md`: Overview and documentation index +- `src/entrypoint.py`: App entry for Databricks Apps +- `src/build.py`: Frontend build pipeline and docs copy +- `src/deploy.py`: Deployment automation +- `src/manifest.yaml`, `src/app.yaml`: App metadata/config +- `src/docs/`: Documentation (guides, API reference, images) +- `src/frontend/`: React SPA +- `src/backend/`: FastAPI backend service + +### Backend (`src/backend/src`) +- `main.py`: FastAPI app bootstrap, CORS, middleware, startup/shutdown, scheduler, seeds, API router registration +```273:301:/Users/anshu.roy/Documents/kasal/src/backend/src/main.py +# Initialize FastAPI app +app = FastAPI( + title=settings.PROJECT_NAME, + description=settings.PROJECT_DESCRIPTION, + version=settings.VERSION, + lifespan=lifespan, + docs_url="/api-docs" if settings.DOCS_ENABLED else None, + redoc_url="/api-redoc" if settings.DOCS_ENABLED else None, + openapi_url="/api-openapi.json" if settings.DOCS_ENABLED else None, + openapi_version="3.1.0" +) + +# Add user context middleware and include API +app.add_middleware(BaseHTTPMiddleware, dispatch=user_context_middleware) +app.include_router(api_router, prefix=settings.API_V1_STR) +``` +- `api/`: HTTP route modules (per domain) + - Examples: `executions_router.py`, `execution_logs_router.py`, `execution_trace_router.py`, `engine_config_router.py`, `agents_router.py`, `crews_router.py`, `databricks_*_router.py`, `memory_backend_router.py`, `schemas_router.py`, `tools_router.py` +```48:66:/Users/anshu.roy/Documents/kasal/src/backend/src/api/__init__.py +# Create the main API router +api_router = APIRouter() + +# Include all the sub-routers +api_router.include_router(agents_router) +api_router.include_router(crews_router) +api_router.include_router(databricks_router) +api_router.include_router(databricks_knowledge_router) +api_router.include_router(flows_router) +api_router.include_router(healthcheck_router) +api_router.include_router(logs_router) +api_router.include_router(models_router) +api_router.include_router(databricks_secrets_router) +api_router.include_router(api_keys_router) +api_router.include_router(tasks_router) +api_router.include_router(templates_router) +api_router.include_router(group_tools_router) +api_router.include_router(mlflow_router) +``` +- `services/`: Business logic/orchestration and integrations + - Orchestration: `execution_service.py`, `crewai_execution_service.py`, `process_crew_executor.py`, `scheduler_service.py` + - Integrations: `databricks_*_service.py`, `mlflow_service.py` + - Observability/aux: `execution_logs_service.py`, `execution_trace_service.py`, `documentation_embedding_service.py` +- `repositories/`: Data access (SQL/external/vector/mlflow) + - Examples: `execution_repository.py`, `execution_history_repository.py`, `databricks_vector_index_repository.py`, `database_backup_repository.py` +- `models/`: SQLAlchemy ORM entities (tables) +- `schemas/`: Pydantic request/response models +- `db/`: DB setup and sessions + - `session.py`: async engine/session, SQLite lock retries, optional SQL logging + - `all_models.py`: model import aggregator +- `config/`: App configuration + - `settings.py`: env-driven settings and flags (e.g., `DOCS_ENABLED`, `AUTO_SEED_DATABASE`) + - `logging.py`: logging configuration +- `core/`: Cross-cutting concerns + - `llm_manager.py`: LLM routing/provider config + - `logger.py`: centralized logging manager + - `permissions.py`, `dependencies.py`, `base_service.py`, `base_repository.py`, `unit_of_work.py` + - `entity_extraction_fallback.py`: LLM memory fallback logic +- `engines/`: AI orchestration engines + - `crewai/`: `execution_runner.py`, `crew_preparation.py`, `flow_preparation.py`, callbacks, memory, tools, guardrails + - `engine_factory.py`: engine selection +- `utils/`: Utilities + - `user_context.py`: Databricks header parsing, group context, middleware + - `databricks_url_utils.py`, `databricks_auth.py`, rate limiting, crypto, prompts +- `seeds/`, `scripts/`, `dependencies/`: Seeders, scripts, DI helpers + +### Frontend (`src/frontend`) +- React + TypeScript (CRA + Craco) +- `src/config/api/ApiConfig.ts`: API base URL selection and Axios client +```1:16:/Users/anshu.roy/Documents/kasal/src/frontend/src/config/api/ApiConfig.ts +import axios from 'axios'; + +export const config = { + apiUrl: + process.env.REACT_APP_API_URL || + (process.env.NODE_ENV === 'development' + ? 'http://localhost:8000/api/v1' + : '/api/v1'), +}; + +export const apiClient = axios.create({ + baseURL: config.apiUrl, + headers: { + 'Content-Type': 'application/json', + }, +}); +``` +- `src/api/*Service.ts`: API clients per domain (Agents, Crews, Executions, Models, Tools, etc.) +- `src/components/`, `src/app/`, `src/store/`, `src/types/`, `src/utils/`, `src/hooks/`, `src/theme/` +- `public/` assets; `craco.config.js`, `tsconfig.json` \ No newline at end of file diff --git a/src/docs/DEVELOPER_GUIDE.md b/src/docs/DEVELOPER_GUIDE.md index d71ed096..093f54cf 100644 --- a/src/docs/DEVELOPER_GUIDE.md +++ b/src/docs/DEVELOPER_GUIDE.md @@ -1,328 +1,148 @@ -# Kasal Developer Documentation +## Developer Guide -> **Build AI Workflows in 30 Seconds** - Production-ready from the start +### Requirements +- Python 3.9+ +- Node.js 18+ +- Postgres (recommended) or SQLite for local dev +- Databricks access if exercising Databricks features ---- - -## Quick Start - -### Install & Run +### Quick start ```bash -# Clone and setup -git clone https://github.com/youorg/kasal -cd kasal && pip install -r src/requirements.txt - -# Start services -cd src/backend && ./run.sh # Backend: http://localhost:8000 -cd src/frontend && npm start # Frontend: http://localhost:3000 -``` - -### Your First AI Agent (30 seconds) -```python -from kasal import Agent, Task, Crew - -# Create agent -researcher = Agent( - role="Research Analyst", - goal="Find market insights", - model="gpt-4" -) - -# Define task -task = Task( - description="Analyze competitor pricing", - agent=researcher -) - -# Run workflow -crew = Crew(agents=[researcher], tasks=[task]) -result = crew.kickoff() -``` - -**That's it!** Your AI agent is running. - ---- - -## Architecture - -### Clean Architecture Pattern -``` -Frontend → API → Service → Repository → Database - ↓ ↓ ↓ ↓ ↓ -React FastAPI Business Data Layer PostgreSQL -``` - -### Tech Stack -| Layer | Technology | Purpose | -|-------|------------|---------| -| **Frontend** | React 18 + TypeScript | Interactive UI | -| **API** | FastAPI + Pydantic | Type-safe endpoints | -| **AI Engine** | CrewAI + LangChain | Agent orchestration | -| **Database** | PostgreSQL/SQLite | Data persistence | -| **Auth** | JWT + Databricks OAuth | Security | - ---- - -## Core Concepts +# Backend +cd src/backend +python -m venv .venv && source .venv/bin/activate +pip install -r ../requirements.txt +./run.sh # http://localhost:8000 (OpenAPI at /api-docs if enabled) -### Agents -```python -agent = Agent( - role="Data Scientist", - goal="Analyze patterns", - backstory="Expert in ML", - tools=[SearchTool(), AnalysisTool()], - model="databricks-llama-70b" -) +# Frontend +cd ../frontend +npm install +npm start # http://localhost:3000 ``` -### Tasks -```python -task = Task( - description="Generate weekly report", - expected_output="Markdown report with insights", - agent=analyst_agent, - async_execution=True -) -``` - -### Crews -```python -crew = Crew( - agents=[researcher, writer, reviewer], - tasks=[research_task, write_task, review_task], - process="hierarchical", # or "sequential" - memory=True # Enable persistent memory -) -``` - -### Tools -```python -# Built-in tools -from kasal.tools import ( - WebSearchTool, - FileReadTool, - DatabaseQueryTool, - CodeExecutionTool -) - -# Custom tool -class CustomAPITool(BaseTool): - name = "api_caller" - description = "Call external APIs" - - def _run(self, query: str) -> str: - # Your implementation - return api_response -``` - ---- - -## API Reference - -### Authentication +Health check: ```bash -# Get token -POST /api/v1/auth/login -{ - "username": "user@example.com", - "password": "secure_password" -} - -# Use token -GET /api/v1/crews -Authorization: Bearer -``` - -### Core Endpoints -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/api/v1/crews` | List all crews | -| POST | `/api/v1/crews` | Create new crew | -| POST | `/api/v1/executions` | Start execution | -| GET | `/api/v1/executions/{id}` | Get status | -| GET | `/api/v1/traces/{job_id}` | Get execution trace | - -### WebSocket Events -```javascript -// Connect to real-time updates -const ws = new WebSocket('ws://localhost:8000/ws'); - -ws.onmessage = (event) => { - const data = JSON.parse(event.data); - // Handle: task_start, task_complete, error, etc. -}; -``` - ---- - -## Testing - -### Unit Tests -```python -# tests/test_agent.py -async def test_agent_execution(): - agent = Agent(role="Tester", goal="Validate") - result = await agent.execute("Test task") - assert result.success == True -``` - -### Run Tests +curl http://localhost:8000/health +# {"status":"healthy"} +``` + +### Configuration +Backend settings: `src/backend/src/config/settings.py` +- Core: `DEBUG_MODE`, `LOG_LEVEL`, `DOCS_ENABLED`, `AUTO_SEED_DATABASE` +- Database: + - `DATABASE_TYPE=postgres|sqlite` (default: `postgres`) + - Postgres: `POSTGRES_SERVER`, `POSTGRES_PORT`, `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD` + - SQLite: `SQLITE_DB_PATH=./app.db` + - SQL logging: `SQL_DEBUG=true|false` +- Notes: + - `USE_NULLPOOL` is set early in `main.py` to avoid asyncpg pool issues + - Logs written under `src/backend/src/logs/` + +Frontend API base URL (`REACT_APP_API_URL`) at build-time: ```bash -# All tests with coverage -python run_tests.py --coverage - -# Specific test file -python -m pytest tests/unit/test_file.py -v - -# With HTML report -python run_tests.py --coverage --html-coverage -``` - ---- - -## Deployment - -### Docker -```dockerfile -FROM python:3.9-slim -WORKDIR /app -COPY src/requirements.txt . -RUN pip install -r requirements.txt -COPY . . -CMD ["uvicorn", "src.backend.main:app"] -``` - -### Environment Variables +# Option A: dev default already points to http://localhost:8000/api/v1 +# Option B: override explicitly for a build (Unix/macOS) +REACT_APP_API_URL="http://localhost:8000/api/v1" npm run build + +# When using the top-level build script: +# The env var will propagate into the "npm run build" it runs +cd src +REACT_APP_API_URL="http://localhost:8000/api/v1" python build.py +``` + +### Conventions +- Routers (`api/*`): Validate with `schemas/*`, delegate to `services/*` +- Services: Business logic only; use repositories for I/O +- Repositories: All SQL/external I/O; don’t leak ORM to services +- Models: SQLAlchemy in `models/*`; Schemas: Pydantic in `schemas/*` + +### Add a new API resource (“widgets” example) +1) Model: `models/widget.py`; import in `db/all_models.py` +2) Schemas: `schemas/widget.py` (Create/Update/Read DTOs) +3) Repository: `repositories/widget_repository.py` +4) Service: `services/widget_service.py` +5) Router: `api/widgets_router.py` (validate → call service) +6) Register router in `api/__init__.py` +7) Frontend: add `src/frontend/src/api/widgets.ts` + components/views/state +8) Tests: `src/backend/tests/` + +### Add a new CrewAI tool +- Implement under `engines/crewai/tools/` (follow existing patterns) +- Expose configuration via service/router if user-configurable +- Ensure discovery/registration in the execution path (e.g., prep or service) + +### Executions and tracing +- Start executions via `executions_router.py` endpoints +- Services invoke engine flow (`engines/crewai/*`) +- Logs/traces: + - Execution logs via `execution_logs_*` + - Traces via `execution_trace_*` ```bash -# .env file -DATABASE_URL=postgresql://user:pass@localhost/kasal -DATABRICKS_TOKEN=your_token -OPENAI_API_KEY=your_key -JWT_SECRET=your_secret -``` - -### Production Checklist -- Enable CORS for your domain -- Set secure JWT secret -- Configure rate limiting -- Enable SSL/TLS -- Set up monitoring (Datadog/New Relic) -- Configure backup strategy - ---- - -## Advanced Topics - -
-Custom Memory Backends - -```python -class DatabricksMemory(BaseMemory): - def __init__(self, index_name: str): - self.client = DatabricksVectorSearch() - self.index = index_name +# Kick off an execution +curl -X POST http://localhost:8000/api/v1/executions -H "Content-Type: application/json" -d '{...}' - async def store(self, data: dict): - await self.client.upsert(self.index, data) +# Get execution status +curl http://localhost:8000/api/v1/executions/ - async def retrieve(self, query: str, k: int = 5): - return await self.client.search(self.index, query, k) +# Fetch logs/trace +curl http://localhost:8000/api/v1/execution-logs/ +curl http://localhost:8000/api/v1/execution-trace/ ``` -
-
-Async Operations +### Background processing +- Scheduler: starts on DB-ready startup (`scheduler_service.py`) +- Embedding queue (SQLite): `embedding_queue_service.py` batches writes +- Cleanup on startup/shutdown: `execution_cleanup_service.py` -```python -# CRITICAL: All I/O must be async -async def process_crew_execution(crew_id: str): - async with get_db_session() as session: - repo = CrewRepository(session) - crew = await repo.get(crew_id) - - # Parallel execution - tasks = [process_task(t) for t in crew.tasks] - results = await asyncio.gather(*tasks) - - return results -``` -
- -
-Error Handling - -```python -from kasal.exceptions import KasalError - -try: - result = await crew.kickoff() -except AgentExecutionError as e: - logger.error(f"Agent failed: {e.agent_name}") - # Retry logic -except TaskTimeoutError as e: - logger.error(f"Task timeout: {e.task_id}") - # Fallback strategy -``` -
- -
-Performance Optimization - -```python -# Connection pooling -engine = create_async_engine( - DATABASE_URL, - pool_size=20, - max_overflow=40, - pool_pre_ping=True -) - -# Batch operations -async def bulk_create_tasks(tasks: List[TaskSchema]): - async with UnitOfWork() as uow: - await uow.tasks.bulk_create(tasks) - await uow.commit() - -# Caching -from functools import lru_cache - -@lru_cache(maxsize=100) -def get_model_config(model_name: str): - return ModelConfig.get(model_name) +### Database & migrations +- SQLite for quick local dev (`DATABASE_TYPE=sqlite`), Postgres for multi-user +- Alembic: +```bash +# after model changes +alembic revision --autogenerate -m "add widgets" +alembic upgrade head +``` + +### Auth, identity, tenancy +- Databricks headers parsed by `utils/user_context.py` +- Group-aware tenants; selected group passed in `group_id` header +- JWT/basic auth in `auth_router.py`, users in `users_router.py` +- Authorization checks in `core/permissions.py` + +### Logging & debugging +- App logs: `src/backend/src/logs/` (managed by `core/logger.py`) +- Verbose SQL: `export SQL_DEBUG=true` +- SQLite “database is locked”: mitigated via retry/backoff; reduce writers or use Postgres + +### Frontend notes +- Axios client and base URL: +```1:13:/Users/anshu.roy/Documents/kasal/src/frontend/src/config/api/ApiConfig.ts +export const config = { + apiUrl: + process.env.REACT_APP_API_URL || + (process.env.NODE_ENV === 'development' + ? 'http://localhost:8000/api/v1' + : '/api/v1'), +}; +export const apiClient = axios.create({ baseURL: config.apiUrl, headers: { 'Content-Type': 'application/json' } }); ``` -
- ---- - -## Security -### Authentication Flow -```python -# JWT token generation -def create_access_token(user_id: str) -> str: - payload = { - "sub": user_id, - "exp": datetime.utcnow() + timedelta(hours=24) - } - return jwt.encode(payload, JWT_SECRET, algorithm="HS256") +### Testing +```bash +# Backend +python run_tests.py -# Protected endpoint -@router.get("/protected") -async def protected_route( - current_user: User = Depends(get_current_user) -): - return {"user": current_user.email} +# Frontend +cd src/frontend +npm test ``` -### Best Practices -- **Never commit secrets** - Use environment variables -- **Input validation** - Pydantic schemas everywhere -- **SQL injection prevention** - SQLAlchemy ORM only -- **Rate limiting** - Implement per-user limits -- **Audit logging** - Track all mutations - ---- +### Production checklist +- Use Postgres (or managed DB), not SQLite +- Harden secrets/tokens; externalize (e.g., Databricks Secrets/Vault) +- Enforce TLS and CORS +- Monitor logs/traces; set alerts +- Review `DOCS_ENABLED`, `LOG_LEVEL`, `DEBUG_MODE` ## Resources diff --git a/src/docs/README.md b/src/docs/README.md index 176f553a..3e7dc176 100644 --- a/src/docs/README.md +++ b/src/docs/README.md @@ -24,6 +24,16 @@ Get started with Kasal without any technical knowledge. Learn how to create AI w --- ## Technical Documentation +### [Code structure Guide](./CODE_STRUCTURE_GUIDE.md) +**For Software Engineers and Developers** + +Build and integrate with Kasal's powerful AI orchestration platform. From quick starts to advanced implementations. + +**Key Topics:** +- High level code structure +- Different folders and underlying components + +--- ### [Developer Guide](./DEVELOPER_GUIDE.md) **For Software Engineers and Developers** @@ -103,6 +113,7 @@ Access the application at `http://localhost:3000` docs/ ├── README.md # This file - Documentation hub ├── BUSINESS_USER_GUIDE.md # Business user documentation +├── CODE_STRUCTURE_GUIDE.md # Code structure documentation ├── DEVELOPER_GUIDE.md # Developer documentation ├── ARCHITECTURE_GUIDE.md # Architecture documentation ├── API_REFERENCE.md # API reference diff --git a/src/docs/WHY_KASAL.md b/src/docs/WHY_KASAL.md index 15485628..49088752 100644 --- a/src/docs/WHY_KASAL.md +++ b/src/docs/WHY_KASAL.md @@ -4,43 +4,59 @@ Transform your Databricks environment into an AI orchestration powerhouse. Build --- -## The Problem We Solve - -Your organization has invested in Databricks for data and AI, but building intelligent workflows still requires extensive coding. Teams struggle to connect AI capabilities to their data in Unity Catalog. Manual processes don't leverage your lakehouse investment. - -Kasal bridges this gap - making Databricks AI capabilities accessible to everyone. +## What problems does it solve? +- **Hard-to-operationalize AI**: Multi-agent apps are complex to build, observe, and scale. Kasal turns that into a repeatable, visual workflow. +- **Glue-code overload**: Stop stitching LLMs, vector search, tools, logs, and schedulers by hand. Kasal gives you a cohesive system out of the box. +- **Enterprise friction**: Works with your Databricks environment (OAuth, Secrets, Vector Search, MLflow, Volumes) and respects org boundaries with group-aware multi-tenancy. + +## Who is it for? +- **Data/AI Engineers**: Build reliable multi-agent workflows on top of Databricks. +- **Analysts/Builders**: Design flows visually and reuse templates without deep infra knowledge. +- **Platform Teams**: Standardize how AI workflows are built, governed, and observed. + +## What you get (at a glance) +- **Visual Workflow Designer**: Drag-and-drop collaboration between agents and tools. +- **Production-Grade Backend**: FastAPI + async SQLAlchemy, background schedulers, and robust logging. +- **Databricks-Native Integrations**: OAuth, Secrets, Vector Search, Volumes, MLflow, and SQL endpoints. +- **Deep Observability**: Real-time logs, execution traces, run history, and health checks. +- **Extensible AI Engine**: CrewAI integration today, engine abstraction for future engines. +- **Governance & Security**: Group-aware multi-tenant model, API keys, permissions, and auditability. --- ## What Makes Kasal Different -### Visual Agent Design -Drag and drop AI agents onto a canvas. Connect them like building blocks. No code required. +# Core capabilities -Each agent has a role: -- Research Agent: Gathers information from databases and documents -- Analysis Agent: Processes data and finds patterns -- Writer Agent: Creates reports and summaries -- Decision Agent: Makes choices based on rules you define +- **Build** + - Visual designer for agents, tasks, flows. + - AI-assisted generation: agents, crews, tasks, and templates. + - Reusable tool registry (native + custom tools, MCP support). + - Documentation embeddings to improve agent planning and generation. -### Real Data Connection - Powered by Databricks -Connect directly to your Databricks ecosystem and beyond: -- **Databricks Native**: Query Unity Catalog, Delta Lake, SQL Warehouses -- **Databricks Volumes**: Store and access knowledge documents -- **Databricks Vector Search**: Semantic search across your data -- **Files**: Read PDFs, Excel, CSV, JSON, XML files -- **Documents**: Process Word docs, presentations, text files -- **APIs**: Connect to Salesforce, HubSpot, custom endpoints -- **Knowledge**: Upload documents to Databricks for AI-powered search - -### Intelligent Collaboration -Agents work together like a team: -- One agent's output becomes another's input -- Parallel processing for independent tasks -- Sequential flows for dependent operations -- Conditional routing based on results +- **Orchestrate** + - CrewAI-based execution with guardrails and callbacks. + - Memory backends and entity extraction with model-aware fallbacks. + - Scheduler for recurring jobs and long-running workflows. + - Parallelization and background processing where it matters. + +- **Integrate (Databricks-first)** + - Vector Search setup/verification and indexing endpoints. + - MLflow model integration. + - Databricks SQL, Volumes, Secrets, and knowledge ingestion. + - Dispatcher and connectors for external systems and APIs. + +- **Operate** + - Centralized structured logging (file-backed), optional SQL query logging. + - Execution logs, traces, and run history via dedicated APIs. + - Database management endpoints (backup/restore where enabled). + - Health checks and environment validation on startup. + +- **Govern** + - Group-based multi-tenant isolation with role awareness. + - JWT and Databricks Apps headers for user context. + - Permissions centralized to keep auth decisions consistent. ---- ## Real Use Cases in Production @@ -180,21 +196,6 @@ Point to your lakehouse assets: --- -## Who Benefits from Kasal - -### Data Teams on Databricks -Query Unity Catalog without writing SQL. Build Delta Lake pipelines visually. Generate dashboards automatically from your lakehouse data. - -### Analytics Teams -Transform raw data in Unity Catalog into insights. Automate report generation from Delta tables. Schedule complex analytical workflows. - -### ML Engineers -Orchestrate model training on Databricks compute. Chain ML models into production pipelines. Monitor and retrain automatically. - -### Business Users -Access governed data through natural language. Build workflows that leverage your organization's data. Get answers from your lakehouse instantly. - ---- ## Integration Capabilities - Databricks First From a644104295ff97599d8370603f1d02427a53ddbb Mon Sep 17 00:00:00 2001 From: Anshu ROY Date: Fri, 26 Sep 2025 12:45:52 +0200 Subject: [PATCH 2/6] improved UI documentation --- README.md | 20 ++++------ src/docs/API_REFERENCE.md | 44 ++++++++++++++-------- src/docs/ARCHITECTURE_GUIDE.md | 38 ++++++++++++------- src/docs/BUSINESS_USER_GUIDE.md | 26 ++++++++----- src/docs/CODE_STRUCTURE_GUIDE.md | 12 ++++-- src/docs/DEVELOPER_GUIDE.md | 63 ++++++++++++++++++++++---------- src/docs/README.md | 32 ++++++++++------ src/docs/WHY_KASAL.md | 43 ++++++++++++++++++++++ 8 files changed, 194 insertions(+), 84 deletions(-) diff --git a/README.md b/README.md index 78dc7c87..6812dbc1 100644 --- a/README.md +++ b/README.md @@ -50,20 +50,16 @@ Create your first agent workflow in under 2 minutes: | Topic | Description | |-------|-------------| -| **[Getting Started](src/docs/GETTING_STARTED.md)** | Complete setup guide for development and deployment | -| **[Deployment Guide](src/docs/DEPLOYMENT_GUIDE.md)** | Build, deployment, and OAuth configuration | -| **[Architecture](src/docs/ARCHITECTURE.md)** | System architecture and design patterns | -| **[CrewAI Engine](src/docs/CREWAI_ENGINE.md)** | AI agent orchestration engine documentation | -| **[Database Migrations](src/docs/DATABASE_MIGRATIONS.md)** | Database schema management with Alembic | -| **[Models & Schemas](src/docs/MODELS.md)** | SQLAlchemy models and Pydantic schemas | -| **[Repository Pattern](src/docs/REPOSITORY_PATTERN.md)** | Data access layer implementation | -| **[LLM Manager](src/docs/LLM_MANAGER.md)** | Multi-provider LLM configuration and management | -| **[Embeddings](src/docs/EMBEDDINGS.md)** | Documentation embeddings for enhanced crew generation | +| **[Why Kasal](src/docs/WHY_KASAL.md)** | What problems it solves and who it's for | +| **[Code Structure](src/docs/CODE_STRUCTURE_GUIDE.md)** | Where things live and how to navigate the repo | +| **[Developer Guide](src/docs/DEVELOPER_GUIDE.md)** | Local setup, config, and extension patterns | +| **[Solution Architecture](src/docs/ARCHITECTURE_GUIDE.md)** | Layers, lifecycles, and platform integration | +| **[API Reference](src/docs/API_REFERENCE.md)** | REST endpoints, payloads, and errors | ### More Documentation -- **[API Documentation](src/docs/)** - Complete API reference -- **[Best Practices](src/docs/BEST_PRACTICES.md)** - Development guidelines -- **[Security Model](src/docs/SECURITY_MODEL.md)** - Authentication and authorization +- **[Docs Hub](src/docs/README.md)** - Documentation index +- **[Business User Guide](src/docs/BUSINESS_USER_GUIDE.md)** - Non-technical intro and ROI +- **[End‑User Tutorial Catalog](src/docs/END_USER_TUTORIAL_CATALOG.md)** - Screenshot-ready walkthroughs - **[Testing Guide](src/backend/tests/README.md)** - Testing strategy and coverage --- diff --git a/src/docs/API_REFERENCE.md b/src/docs/API_REFERENCE.md index 7fbdc73f..355ab464 100644 --- a/src/docs/API_REFERENCE.md +++ b/src/docs/API_REFERENCE.md @@ -1,10 +1,11 @@ -# Kasal API Reference +# 🟦 Kasal API Reference > **RESTful API v1** - Complete endpoint documentation with examples --- -## Getting Started +## 🟩 Getting Started +Base URLs, authentication, and rate limits you need before calling endpoints. ### Base URL ``` @@ -34,7 +35,8 @@ curl -X GET https://api.example.com/v1/crews \ --- -## Authentication Endpoints +## 🟨 Authentication Endpoints +Login, refresh, and logout flows to manage tokens. ### POST /auth/login **Login with credentials** @@ -76,7 +78,8 @@ Response: 204 No Content --- -## Crew Management +## 🟪 Crew Management +Create and manage multi-agent crews and their configurations. ### GET /crews **List all crews** @@ -159,7 +162,8 @@ Response: 204 No Content --- -## Agent Management +## 🟧 Agent Management +Create and list individual agents with roles, models, and tools. ### GET /agents **List all agents** @@ -200,7 +204,8 @@ Response: 201 Created --- -## Execution Management +## 🟦 Execution Management +Start executions, get status, retrieve traces, and stop runs. ### POST /executions **Start crew execution** @@ -263,7 +268,8 @@ Response: 200 OK --- -## Task Management +## 🟩 Task Management +Create and list tasks assigned to agents. ### GET /tasks **List tasks** @@ -301,7 +307,8 @@ Response: 201 Created --- -## Tool Management +## 🟨 Tool Management +Discover built-in tools and register custom tools. ### GET /tools **List available tools** @@ -343,7 +350,8 @@ Response: 201 Created --- -## Memory Management +## 🟪 Memory Management +Fetch and clear short/long-term memory for a crew. ### GET /memory/{crew_id} **Get crew memory** @@ -378,7 +386,8 @@ Response: 204 No Content --- -## Analytics +## 🟧 Analytics +Usage and performance metrics to monitor your workflows. ### GET /analytics/usage **Get usage statistics** @@ -411,7 +420,8 @@ Response: 200 OK --- -## WebSocket Events +## 🟦 WebSocket Events +Real-time updates for task lifecycle, errors, and progress. ### Connection ```javascript @@ -454,7 +464,8 @@ ws.onopen = () => { --- -## Error Codes +## 🟩 Error Codes +Standardized error responses and meanings. | Code | Message | Description | |------|---------|-------------| @@ -482,7 +493,8 @@ ws.onopen = () => { --- -## Testing +## 🟨 Testing +Sandbox, Postman collection, and OpenAPI spec. ### Sandbox Environment ```bash @@ -501,7 +513,8 @@ curl -X POST https://sandbox-api.kasal.ai/v1/crews \ --- -## SDKs & Libraries +## 🟪 SDKs & Libraries +Client libraries to integrate in Python, JS/TS, and Go. ### Python ```python @@ -536,7 +549,8 @@ result, _ := client.Execute(crew.ID, inputs) --- -## API Support +## 🟧 API Support +Where to check status and get help for API issues. - **Status Page**: [status.kasal.ai](https://status.kasal.ai) - **API Console**: [console.kasal.ai](https://console.kasal.ai) diff --git a/src/docs/ARCHITECTURE_GUIDE.md b/src/docs/ARCHITECTURE_GUIDE.md index 7ed73b6e..53f35a8c 100644 --- a/src/docs/ARCHITECTURE_GUIDE.md +++ b/src/docs/ARCHITECTURE_GUIDE.md @@ -1,10 +1,11 @@ -# Kasal Solution Architecture +# 🟦 Kasal Solution Architecture > **Enterprise AI Orchestration Platform** - Scalable, secure, cloud-native --- -## System Overview +## 🟩 System Overview +What the platform aims to achieve and core design principles. ### Platform Vision **Transform business workflows with autonomous AI agents** - Zero infrastructure complexity @@ -20,7 +21,8 @@ --- -## High-Level Architecture +## 🟨 High-Level Architecture +A big-picture view of the client, application, AI, and data layers. ```mermaid graph TB @@ -69,7 +71,8 @@ graph TB --- -## Architecture Pattern +## 🟪 Architecture Pattern +The layered approach and how requests flow through components. ### High-level - Layered architecture: @@ -78,14 +81,16 @@ graph TB - Config via environment (`src/backend/src/config/settings.py`) - Pluggable orchestration engine (`src/backend/src/engines/` with CrewAI) -### Request lifecycle (CRUD path) +### 🟦 Request lifecycle (CRUD path) +From HTTP request to response: validation, business logic, and persistence. 1) Router in `api/` receives request, validates using `schemas/` 2) Router calls `services/` for business logic 3) Service uses `repositories/` for DB/external I/O 4) Data persisted via `db/session.py` 5) Response serialized with Pydantic schemas -### Orchestration lifecycle (AI execution) +### 🟩 Orchestration lifecycle (AI execution) +How executions are prepared, run, and observed using the engine. - Entry via `executions_router.py` → `execution_service.py` - Service prepares agents/tools/memory and selects engine (`engines/engine_factory.py`) - CrewAI path: @@ -94,12 +99,14 @@ graph TB - Observability: `execution_logs_service.py`, `execution_trace_service.py` - Persist status/history: `execution_repository.py`, `execution_history_repository.py` -### Background processing +### 🟨 Background processing +Schedulers and queues for recurring and long-running tasks. - Scheduler at startup: `scheduler_service.py` - Embedding queue (SQLite): `embedding_queue_service.py` (batches writes) - Startup/shutdown cleanup: `execution_cleanup_service.py` -### Data modeling +### 🟪 Data modeling +ORM entities, Pydantic schemas, and repository boundaries. - ORM in `models/*` mirrors `schemas/*` - Repositories encapsulate all SQL/external calls (Databricks APIs, Vector Search, MLflow) - `db/session.py`: @@ -107,14 +114,16 @@ graph TB - SQLite lock retry w/ backoff - Optional SQL logging via `SQL_DEBUG=true` -### Auth, identity, and tenancy +### 🟧 Auth, identity, and tenancy +User context, group isolation, and authorization controls. - Databricks Apps headers parsed by `utils/user_context.py` - Group-aware multi-tenant context propagated via middleware - JWT/basic auth routes in `auth_router.py`, users in `users_router.py` - Authorization checks in `core/permissions.py` -### Security Controls +### 🟦 Security Controls +Defense-in-depth across network, API, data, secrets, and compliance. | Layer | Control | Implementation | |-------|---------|----------------| | **Network** | TLS 1.3 | End-to-end encryption | @@ -125,7 +134,8 @@ graph TB --- -### Storage Strategy +### 🟩 Storage Strategy +Where different data types live and why. | Data Type | Storage | Purpose | |-----------|---------|---------| | **Transactional** | PostgreSQL | ACID compliance | @@ -136,12 +146,14 @@ graph TB --- -### Observability +### 🟨 Observability +Logs, traces, metrics, and how to access them. - Central log manager: `core/logger.py` (writes to `LOG_DIR`) - API/SQL logging toggles (`LOG_LEVEL`, `SQL_DEBUG`) - Execution logs/traces persisted and queryable via dedicated routes/services -### Configuration flags (selected) +### 🟪 Configuration flags (selected) +Important toggles that affect developer and runtime experience. - `DOCS_ENABLED`: enables `/api-docs`, `/api-redoc`, `/api-openapi.json` - `AUTO_SEED_DATABASE`: async background seeders post DB init - `DATABASE_TYPE`: `postgres` (default) or `sqlite` with `SQLITE_DB_PATH` diff --git a/src/docs/BUSINESS_USER_GUIDE.md b/src/docs/BUSINESS_USER_GUIDE.md index 6e1b5fc7..8c02e3b3 100644 --- a/src/docs/BUSINESS_USER_GUIDE.md +++ b/src/docs/BUSINESS_USER_GUIDE.md @@ -1,10 +1,11 @@ -# Kasal Business User Guide +# 🟦 Kasal Business User Guide > **AI Workers for Your Business** - No coding required --- -## What is Kasal? +## 🟩 What is Kasal? +A simple way to get AI workers handling common business workflows, safely and at scale. **Your AI workforce that never sleeps.** Kasal orchestrates AI agents to handle complex workflows automatically, 24/7. @@ -23,7 +24,8 @@ --- -## Quick Start (15 Minutes) +## 🟨 Quick Start (15 Minutes) +Pick a template, describe your goal, connect tools, and go live. ### Step 1: Choose Your Use Case Click the template that matches your need: @@ -53,7 +55,8 @@ Press **Start** and watch your AI team work! --- -## Success Metrics +## 🟪 Success Metrics +Real customer outcomes you can benchmark against. ### Real Customer Results @@ -77,7 +80,8 @@ Press **Start** and watch your AI team work! --- -## Control Center +## 🟧 Control Center +Monitor, start/stop flows, and pick the right safety mode. ### Dashboard Overview ![Dashboard](dashboard-preview.png) @@ -102,7 +106,8 @@ Press **Start** and watch your AI team work! --- -## Advanced Features +## 🟦 Advanced Features +Multi-agent collaboration, visual builder, and an integration marketplace. ### Multi-Agent Collaboration Your AI workers can work as a team: @@ -128,7 +133,8 @@ Build complex processes visually: --- -## Common Questions +## 🟩 Common Questions +Pricing, security, reliability, and setup speed—straight answers.
How much does it cost? @@ -181,7 +187,8 @@ Build complex processes visually: --- -## Ready to Start? +## 🟨 Ready to Start? +Book a demo, estimate ROI, or try it free.
@@ -195,7 +202,8 @@ Build complex processes visually: --- -## Need Help? +## 🟪 Need Help? +Ways to reach us and additional resources. - **Chat**: Available 24/7 in-app - **Email**: support@kasal.ai diff --git a/src/docs/CODE_STRUCTURE_GUIDE.md b/src/docs/CODE_STRUCTURE_GUIDE.md index 0c8232d9..28488b93 100644 --- a/src/docs/CODE_STRUCTURE_GUIDE.md +++ b/src/docs/CODE_STRUCTURE_GUIDE.md @@ -1,6 +1,8 @@ -## Code Structure +## 🟦 Code Structure +A map of folders and files to help you find what you need quickly. -### Top-level +### 🟩 Top-level +Core project files, app metadata, and documentation. - `README.md`: Overview and documentation index - `src/entrypoint.py`: App entry for Databricks Apps - `src/build.py`: Frontend build pipeline and docs copy @@ -10,7 +12,8 @@ - `src/frontend/`: React SPA - `src/backend/`: FastAPI backend service -### Backend (`src/backend/src`) +### 🟨 Backend (`src/backend/src`) +FastAPI backend: entrypoint, routers, services, repositories, and DB. - `main.py`: FastAPI app bootstrap, CORS, middleware, startup/shutdown, scheduler, seeds, API router registration ```273:301:/Users/anshu.roy/Documents/kasal/src/backend/src/main.py # Initialize FastAPI app @@ -78,7 +81,8 @@ api_router.include_router(mlflow_router) - `databricks_url_utils.py`, `databricks_auth.py`, rate limiting, crypto, prompts - `seeds/`, `scripts/`, `dependencies/`: Seeders, scripts, DI helpers -### Frontend (`src/frontend`) +### 🟪 Frontend (`src/frontend`) +React + TypeScript application, API client, components, and state. - React + TypeScript (CRA + Craco) - `src/config/api/ApiConfig.ts`: API base URL selection and Axios client ```1:16:/Users/anshu.roy/Documents/kasal/src/frontend/src/config/api/ApiConfig.ts diff --git a/src/docs/DEVELOPER_GUIDE.md b/src/docs/DEVELOPER_GUIDE.md index 093f54cf..ed42724b 100644 --- a/src/docs/DEVELOPER_GUIDE.md +++ b/src/docs/DEVELOPER_GUIDE.md @@ -1,12 +1,23 @@ -## Developer Guide - -### Requirements +## 🟦 Developer Guide +Build, extend, and debug Kasal efficiently. This guide focuses on day-to-day workflows. + +### 🟩 Components you'll touch +- **Frontend (React SPA)**: UI, designer, monitoring +- **API (FastAPI)**: REST endpoints and validation +- **Services**: Orchestration and business logic +- **Repositories**: DB and external I/O (Databricks, Vector, MLflow) +- **Engines (CrewAI)**: Agent/flow preparation and execution +- **Data & Storage**: SQLAlchemy models/sessions, embeddings, volumes + +### 🟩 Requirements +Tools and versions you need before running the stack. - Python 3.9+ - Node.js 18+ - Postgres (recommended) or SQLite for local dev - Databricks access if exercising Databricks features -### Quick start +### 🟦 Quick start +Start backend and frontend locally in minutes. ```bash # Backend cd src/backend @@ -26,7 +37,8 @@ curl http://localhost:8000/health # {"status":"healthy"} ``` -### Configuration +### 🟨 Configuration +How to configure backend and frontend, including environment variables. Backend settings: `src/backend/src/config/settings.py` - Core: `DEBUG_MODE`, `LOG_LEVEL`, `DOCS_ENABLED`, `AUTO_SEED_DATABASE` - Database: @@ -50,13 +62,15 @@ cd src REACT_APP_API_URL="http://localhost:8000/api/v1" python build.py ``` -### Conventions +### 🟪 Conventions +Where code lives and how layers interact (routers → services → repositories). - Routers (`api/*`): Validate with `schemas/*`, delegate to `services/*` - Services: Business logic only; use repositories for I/O - Repositories: All SQL/external I/O; don’t leak ORM to services - Models: SQLAlchemy in `models/*`; Schemas: Pydantic in `schemas/*` -### Add a new API resource (“widgets” example) +### 🟧 Add a new API resource (“widgets” example) +End-to-end steps to add a model, schemas, repository, service, and router. 1) Model: `models/widget.py`; import in `db/all_models.py` 2) Schemas: `schemas/widget.py` (Create/Update/Read DTOs) 3) Repository: `repositories/widget_repository.py` @@ -66,12 +80,14 @@ REACT_APP_API_URL="http://localhost:8000/api/v1" python build.py 7) Frontend: add `src/frontend/src/api/widgets.ts` + components/views/state 8) Tests: `src/backend/tests/` -### Add a new CrewAI tool +### 🟦 Add a new CrewAI tool +Where to put new tools and how the engine discovers them. - Implement under `engines/crewai/tools/` (follow existing patterns) - Expose configuration via service/router if user-configurable - Ensure discovery/registration in the execution path (e.g., prep or service) -### Executions and tracing +### 🟨 Executions and tracing +How runs start, where logs/traces live, and how to query them. - Start executions via `executions_router.py` endpoints - Services invoke engine flow (`engines/crewai/*`) - Logs/traces: @@ -89,12 +105,14 @@ curl http://localhost:8000/api/v1/execution-logs/ curl http://localhost:8000/api/v1/execution-trace/ ``` -### Background processing +### 🟨 Background processing +Scheduler and queue-based work used for reliability and performance. - Scheduler: starts on DB-ready startup (`scheduler_service.py`) - Embedding queue (SQLite): `embedding_queue_service.py` batches writes - Cleanup on startup/shutdown: `execution_cleanup_service.py` -### Database & migrations +### 🟩 Database & migrations +Local SQLite vs Postgres, with Alembic flow for schema changes. - SQLite for quick local dev (`DATABASE_TYPE=sqlite`), Postgres for multi-user - Alembic: ```bash @@ -103,18 +121,21 @@ alembic revision --autogenerate -m "add widgets" alembic upgrade head ``` -### Auth, identity, tenancy +### 🟧 Auth, identity, tenancy +User context from Databricks Apps headers, group-aware multi-tenancy, and roles. - Databricks headers parsed by `utils/user_context.py` - Group-aware tenants; selected group passed in `group_id` header - JWT/basic auth in `auth_router.py`, users in `users_router.py` - Authorization checks in `core/permissions.py` -### Logging & debugging +### 🟪 Logging & debugging +Where logs go, enabling SQL traces, and handling SQLite locks. - App logs: `src/backend/src/logs/` (managed by `core/logger.py`) - Verbose SQL: `export SQL_DEBUG=true` - SQLite “database is locked”: mitigated via retry/backoff; reduce writers or use Postgres -### Frontend notes +### 🟦 Frontend notes +Axios client base URL and how to point the UI to a custom API. - Axios client and base URL: ```1:13:/Users/anshu.roy/Documents/kasal/src/frontend/src/config/api/ApiConfig.ts export const config = { @@ -127,7 +148,8 @@ export const config = { export const apiClient = axios.create({ baseURL: config.apiUrl, headers: { 'Content-Type': 'application/json' } }); ``` -### Testing +### 🟩 Testing +Run unit tests for backend and frontend. ```bash # Backend python run_tests.py @@ -137,28 +159,29 @@ cd src/frontend npm test ``` -### Production checklist +### 🟧 Production checklist +Settings and practices to use before going live. - Use Postgres (or managed DB), not SQLite - Harden secrets/tokens; externalize (e.g., Databricks Secrets/Vault) - Enforce TLS and CORS - Monitor logs/traces; set alerts - Review `DOCS_ENABLED`, `LOG_LEVEL`, `DEBUG_MODE` -## Resources +## 🟦 Resources -### Quick Links +### 🟩 Quick Links - [API Playground](/api/docs) - [Video Tutorials](https://kasal.ai/videos) - [Discord Community](https://discord.gg/kasal) - [Report Issues](https://github.com/kasal/issues) -### Code Examples +### 🟨 Code Examples - [Basic Agent Setup](https://github.com/kasal/examples/basic) - [Multi-Agent Collaboration](https://github.com/kasal/examples/multi-agent) - [Custom Tools](https://github.com/kasal/examples/tools) - [Production Deployment](https://github.com/kasal/examples/deploy) -### Support +### 🟪 Support - **Chat**: Available in-app 24/7 - **Email**: dev@kasal.ai - **Slack**: #kasal-developers diff --git a/src/docs/README.md b/src/docs/README.md index 3e7dc176..05838975 100644 --- a/src/docs/README.md +++ b/src/docs/README.md @@ -1,14 +1,16 @@ -# Kasal Documentation Hub +# 🟦 Kasal Documentation Hub **Enterprise AI Agent Orchestration Platform** --- -## Quick Start +## 🟩 Quick Start +Find the right documentation for your role and get productive fast. Choose your documentation based on your role: -## Business Documentation +## 🟨 Business Documentation +Value, outcomes, and non-technical workflows for business users. ### [Business User Guide](./BUSINESS_USER_GUIDE.md) **For Leaders, Managers, and Business Users** @@ -23,7 +25,8 @@ Get started with Kasal without any technical knowledge. Learn how to create AI w --- -## Technical Documentation +## 🟪 Technical Documentation +Developer-focused guides, code structure, and API reference. ### [Code structure Guide](./CODE_STRUCTURE_GUIDE.md) **For Software Engineers and Developers** @@ -59,7 +62,8 @@ Complete REST API documentation with examples, WebSocket events, and SDK librari --- -## Architecture Documentation +## 🟧 Architecture Documentation +System design, patterns, and enterprise integration guidance. ### [Solution Architecture Guide](./ARCHITECTURE_GUIDE.md) **For Solution Architects and Technical Leaders** @@ -74,7 +78,8 @@ Understand Kasal's architecture, design patterns, and enterprise integration str --- -## Getting Started in 30 Seconds +## 🟦 Getting Started in 30 Seconds +One command sequence to run both backend and frontend locally. ```bash # Clone the repository @@ -94,7 +99,8 @@ Access the application at `http://localhost:3000` --- -## Key Features +## 🟩 Key Features +What Kasal provides out of the box to build, operate, and govern AI workflows. | Feature | Description | |---------|-------------| @@ -107,7 +113,8 @@ Access the application at `http://localhost:3000` --- -## Documentation Structure +## 🟨 Documentation Structure +How this folder is organized and where to find topics. ``` docs/ @@ -125,7 +132,8 @@ docs/ --- -## Technology Stack +## 🟪 Technology Stack +Core frameworks and platforms used across the project. - **Backend**: FastAPI, SQLAlchemy 2.0, Python 3.9+ - **Frontend**: React 18, TypeScript, Material-UI @@ -135,7 +143,8 @@ docs/ --- -## Support and Resources +## 🟧 Support and Resources +Where to get help and how to contribute. ### Getting Help @@ -153,7 +162,8 @@ This project is licensed under the Apache License 2.0 - see the [LICENSE](https: --- -## Version Information +## 🟦 Version Information +Project and documentation version details. - **Current Version**: 2.0.0 - **Documentation Updated**: January 2025 diff --git a/src/docs/WHY_KASAL.md b/src/docs/WHY_KASAL.md index 49088752..30dfa05a 100644 --- a/src/docs/WHY_KASAL.md +++ b/src/docs/WHY_KASAL.md @@ -22,6 +22,49 @@ Transform your Databricks environment into an AI orchestration powerhouse. Build - **Extensible AI Engine**: CrewAI integration today, engine abstraction for future engines. - **Governance & Security**: Group-aware multi-tenant model, API keys, permissions, and auditability. +## 🟦 Components at a glance +A quick tour of the building blocks—what each part does and why it matters. + +### 🟩 Frontend (React SPA) +- **What it does**: Visual designer for agents, tasks, and flows; live monitoring UI. +- **Why it matters**: Non-technical users can build and operate AI workflows without touching code. + +### 🟨 API (FastAPI) +- **What it does**: Validates requests, exposes REST endpoints, and routes calls to services. +- **Why it matters**: Clear, versioned contracts between UI/automation and backend logic. + +### 🟪 Services (Business Logic) +- **What it does**: Implements orchestration, validation, scheduling, and domain logic. +- **Why it matters**: Keeps HTTP thin and domain logic testable and reusable. + +### 🟧 Repositories (Data Access) +- **What it does**: Encapsulates SQL and external I/O (Databricks APIs, Vector Search, MLflow). +- **Why it matters**: Swappable persistence and integrations without leaking into services. + +### 🟦 Engines (CrewAI Orchestration) +- **What it does**: Prepares crews, runs executions, handles callbacks/guardrails, manages memory. +- **Why it matters**: Pluggable execution engine today (CrewAI) and extensible for future engines. + +### 🟩 Data & Storage +- **What it does**: Async SQLAlchemy sessions, models/schemas, vector indexes, volumes. +- **Why it matters**: Reliable persistence with optional vector search and document storage. + +### 🟨 Scheduler & Background Jobs +- **What it does**: Recurring runs, long tasks, and background queues (e.g., embedding batching). +- **Why it matters**: Production-ready operations beyond single request/response. + +### 🟪 Observability +- **What it does**: Structured logs, execution logs, traces, history, health checks. +- **Why it matters**: Debug fast, audit runs, and understand system behavior end-to-end. + +### 🟧 Security & Governance +- **What it does**: Group-aware multi-tenancy, JWT/Databricks headers, centralized permissions. +- **Why it matters**: Safely share across teams while isolating data and enforcing roles. + +### 🟦 Databricks Integrations +- **What it does**: OAuth, Secrets, SQL Warehouses, Unity Catalog, Volumes, Vector Search, MLflow. +- **Why it matters**: Build where your data and models already live with first-class support. + --- ## What Makes Kasal Different From 1d7c114abb0aa145fccbe2aae8254317cac87908 Mon Sep 17 00:00:00 2001 From: Anshu ROY Date: Thu, 2 Oct 2025 09:24:49 +0200 Subject: [PATCH 3/6] Added overview and updates --- src/docs/ARCHITECTURE_GUIDE.md | 3 +- src/docs/CODE_STRUCTURE_GUIDE.md | 269 +++++++++++++++++++++------ src/docs/DEVELOPER_GUIDE.md | 282 ++++++++++++----------------- src/docs/README.md | 2 + src/docs/images/Kasal-overview.png | Bin 0 -> 154290 bytes src/docs/images/logo.png | Bin 0 -> 415020 bytes 6 files changed, 331 insertions(+), 225 deletions(-) create mode 100644 src/docs/images/Kasal-overview.png create mode 100644 src/docs/images/logo.png diff --git a/src/docs/ARCHITECTURE_GUIDE.md b/src/docs/ARCHITECTURE_GUIDE.md index 53f35a8c..066f1346 100644 --- a/src/docs/ARCHITECTURE_GUIDE.md +++ b/src/docs/ARCHITECTURE_GUIDE.md @@ -1,7 +1,8 @@ # 🟦 Kasal Solution Architecture > **Enterprise AI Orchestration Platform** - Scalable, secure, cloud-native - +![Kasal Overvew](src/docs/images/Kasal-overview.png) +*Visual workflow designer for creating AI agent collaborations* --- ## 🟩 System Overview diff --git a/src/docs/CODE_STRUCTURE_GUIDE.md b/src/docs/CODE_STRUCTURE_GUIDE.md index 28488b93..53697255 100644 --- a/src/docs/CODE_STRUCTURE_GUIDE.md +++ b/src/docs/CODE_STRUCTURE_GUIDE.md @@ -15,46 +15,8 @@ Core project files, app metadata, and documentation. ### 🟨 Backend (`src/backend/src`) FastAPI backend: entrypoint, routers, services, repositories, and DB. - `main.py`: FastAPI app bootstrap, CORS, middleware, startup/shutdown, scheduler, seeds, API router registration -```273:301:/Users/anshu.roy/Documents/kasal/src/backend/src/main.py -# Initialize FastAPI app -app = FastAPI( - title=settings.PROJECT_NAME, - description=settings.PROJECT_DESCRIPTION, - version=settings.VERSION, - lifespan=lifespan, - docs_url="/api-docs" if settings.DOCS_ENABLED else None, - redoc_url="/api-redoc" if settings.DOCS_ENABLED else None, - openapi_url="/api-openapi.json" if settings.DOCS_ENABLED else None, - openapi_version="3.1.0" -) - -# Add user context middleware and include API -app.add_middleware(BaseHTTPMiddleware, dispatch=user_context_middleware) -app.include_router(api_router, prefix=settings.API_V1_STR) -``` -- `api/`: HTTP route modules (per domain) - - Examples: `executions_router.py`, `execution_logs_router.py`, `execution_trace_router.py`, `engine_config_router.py`, `agents_router.py`, `crews_router.py`, `databricks_*_router.py`, `memory_backend_router.py`, `schemas_router.py`, `tools_router.py` -```48:66:/Users/anshu.roy/Documents/kasal/src/backend/src/api/__init__.py -# Create the main API router -api_router = APIRouter() - -# Include all the sub-routers -api_router.include_router(agents_router) -api_router.include_router(crews_router) -api_router.include_router(databricks_router) -api_router.include_router(databricks_knowledge_router) -api_router.include_router(flows_router) -api_router.include_router(healthcheck_router) -api_router.include_router(logs_router) -api_router.include_router(models_router) -api_router.include_router(databricks_secrets_router) -api_router.include_router(api_keys_router) -api_router.include_router(tasks_router) -api_router.include_router(templates_router) -api_router.include_router(group_tools_router) -api_router.include_router(mlflow_router) -``` -- `services/`: Business logic/orchestration and integrations + + - `services/`: Business logic/orchestration and integrations - Orchestration: `execution_service.py`, `crewai_execution_service.py`, `process_crew_executor.py`, `scheduler_service.py` - Integrations: `databricks_*_service.py`, `mlflow_service.py` - Observability/aux: `execution_logs_service.py`, `execution_trace_service.py`, `documentation_embedding_service.py` @@ -85,24 +47,211 @@ api_router.include_router(mlflow_router) React + TypeScript application, API client, components, and state. - React + TypeScript (CRA + Craco) - `src/config/api/ApiConfig.ts`: API base URL selection and Axios client -```1:16:/Users/anshu.roy/Documents/kasal/src/frontend/src/config/api/ApiConfig.ts -import axios from 'axios'; - -export const config = { - apiUrl: - process.env.REACT_APP_API_URL || - (process.env.NODE_ENV === 'development' - ? 'http://localhost:8000/api/v1' - : '/api/v1'), -}; - -export const apiClient = axios.create({ - baseURL: config.apiUrl, - headers: { - 'Content-Type': 'application/json', - }, -}); + + +--- + +# Alembic Migrations +All scripts live in `src/backend/migrations/versions`. They evolve the database schema over time. Two core files support them: + +## src/backend/migrations/env.py +Sets up the Alembic context, reading DB URLs from SQLAlchemy models. It: +- Imports metadata from `all_models`. +- Configures offline/online migration modes. + +## src/backend/migrations/script.py.mako +A Jinja template used by Alembic to generate new revision files. It defines boilerplate for `upgrade()` and `downgrade()`. + +## src/backend/scripts/migrations/migrate_mcp_group_id.py +A custom Python script (outside Alembic) that migrates existing MCP server records to a new `group_id` structure. + +--- +# REST API Routers +Each file under `src/backend/src/api` defines a FastAPI router. They follow a common pattern: + +```python +router = APIRouter(prefix="/v1/resource", tags=["resource"]) +@router.get("/", response_model=List[ResourceSchema]) +async def list_resources(...): + return await service.list() +``` + +Below is an example for **Agents**. All other routers mirror this structure. + +```api +{ + "title": "List Agents", + "description": "Retrieve all agents for the current group.", + "method": "GET", + "baseUrl": "https://api.kasal.ai", + "endpoint": "/v1/agents", + "headers": [ + {"key": "Authorization", "value": "Bearer ", "required": true} + ], + "queryParams": [ + {"key": "limit", "value": "Max items to return", "required": false}, + {"key": "offset", "value": "Pagination offset", "required": false} + ], + "pathParams": [], + "bodyType": "none", + "responses": { + "200": { + "description": "List of agents", + "body": "[{ \"id\": \"...\", \"name\": \"Support Bot\" }]" + } + } +} +``` + +- **agent_generation_router.py**: Endpoints to trigger agent‐based content generation. +- **agents_router.py**: CRUD for `Agent` entities. +- **api_keys_router.py**: Manage API keys. +- **auth_router.py**: Login, logout, token refresh. +- **chat_history_router.py**: Query past chat logs. +- **connections_router.py**: Database/MCP connection configs. +- **crew_generation_router.py**: Generate multi‐agent crews. +- **crews_router.py**: CRUD for `Crew` entities. +- **database_management_router.py**: DB backup/restore. +- **databricks_knowledge_router.py**: Manage Databricks knowledge sources. +- **databricks_router.py**: Databricks environment config. +- **databricks_secrets_router.py**: Vault secrets for Databricks. +- **dispatcher_router.py**: Dispatch flows to MCP servers. +- **documentation_embeddings_router.py**: CRUD for doc embeddings. +- **dspy_router.py**: DSPy optimization endpoints. +- **engine_config_router.py**: Manage LLM engine settings. +- **execution_history_router.py**: Query past execution metadata. +- **execution_logs_router.py**: Stream logs for executions. +- **execution_trace_router.py**: Retrieve trace timeline. +- **executions_router.py**: Trigger and control executions. +- **flow_execution_router.py**: Read flow‐execution mappings. +- **flows_router.py**: CRUD for `Flow` entities. +- **genie_router.py**: “Genie” autocomplete endpoints. +- **group_router.py**: Manage user groups. +- **group_tools_router.py**: Assign tools to groups. +- **healthcheck_router.py**: Liveness and readiness probes. +- **logs_router.py**: Aggregate application logs. +- **mcp_router.py**: MCP server CRUD and health. +- **memory_backend_router.py**: Manage memory backends. +- **mlflow_router.py**: MLflow experiment tracking endpoints. +- **models_router.py**: List and select provider models. +- **scheduler_router.py**: Job scheduling endpoints. +- **schemas_router.py**: Dynamically serve JSON schemas. +- **task_generation_router.py**: Generate tasks via AI. +- **task_tracking_router.py**: Track running tasks. +- **tasks_router.py**: CRUD for `Task` entities. +- **template_generation_router.py**: Generate prompt templates. +- **templates_router.py**: CRUD for `Template` entities. +- **tools_router.py**: CRUD for `Tool` definitions. +- **users_router.py**: User profile and permissions management. + +--- +# Configuration +These modules centralize app settings and logging. + +## src/backend/src/config/logging.py +Sets up Python `logging` with: +- Console and file handlers. +- JSON-formatted logs when in structured mode. +- Integrates with Sentry if DSN provided. + +## src/backend/src/config/settings.py +Defines Pydantic `Settings` for: +- Database URLs +- Secret keys +- Third-party API endpoints +- Feature toggles (e.g., multitenancy) + +```python +class Settings(BaseSettings): + database_url: PostgresDsn + sentry_dsn: Optional[HttpUrl] = None + multi_tenant: bool = True ``` -- `src/api/*Service.ts`: API clients per domain (Agents, Crews, Executions, Models, Tools, etc.) -- `src/components/`, `src/app/`, `src/store/`, `src/types/`, `src/utils/`, `src/hooks/`, `src/theme/` -- `public/` assets; `craco.config.js`, `tsconfig.json` \ No newline at end of file + +--- + +# Core LLM Handlers +These classes wrap interactions with large language models. + +## src/backend/src/core/llm_handlers/databricks_gpt_oss_handler.py +- Interfaces with Databricks’ open‐source GPT endpoint. +- Formats requests and parses streaming tokens. +- Applies rate limits via `asyncio_utils`. + +## src/backend/src/core/llm_handlers/gpt5_handler.py +- Native handler for GPT-5 provider. +- Supports function calling and chunked streaming. + +## src/backend/src/core/llm_handlers/gpt5_llm_wrapper.py +- Adapts the `gpt5_handler` to the generic `LLM` interface. +- Adds retry logic and exponential backoff. + +--- + +# Core Infrastructure + +## src/backend/src/core/base_repository.py +Abstracts basic CRUD operations for any SQLAlchemy model: +- `get()`, `list()`, `create()`, `update()`, `delete()`. + +## src/backend/src/core/base_service.py +Provides transaction scoping and error handling around repositories. + +## src/backend/src/core/dependencies.py +Defines FastAPI dependencies for injecting: +- `UnitOfWork` +- Service instances +- Current user context + +## src/backend/src/core/entity_extraction_fallback.py +Fallback logic for extracting entities when NLP fails. + +## src/backend/src/core/llm_manager.py +Centralizes LLM calls: +- Chooses correct handler based on config. +- Orchestrates streaming vs. non-streaming modes. + +## src/backend/src/core/logger.py +Wraps Python logger to include request IDs and user context. + +## src/backend/src/core/permissions.py +Decorators and functions enforcing RBAC at service/router level. + +## src/backend/src/core/unit_of_work.py +Coordinator for DB sessions: +- Begins/commits/rolls back transactions. +- Exposes repositories for each entity. + +--- + +# Database Layer + +## src/backend/src/db/alembic/versions/create_data_processing_table.py +Alembic script creating the `data_processing` table and its indexes. + +## src/backend/src/db/all_models.py +Imports and registers all SQLAlchemy `Base` models used by Alembic. + +## src/backend/src/db/base.py +Defines `Base = declarative_base()` and common mixins (e.g., `TimestampMixin`). + +## src/backend/src/db/database_router.py +Routes DB calls to either the primary or read-replica based on query type. + +## src/backend/src/db/lakebase_session.py +Creates SQLAlchemy sessions for “lake” database (analytics). + +## src/backend/src/db/session.py +Configures the main application DB session pool and event listeners. + +--- + +# Authentication Dependencies + +## src/backend/src/dependencies/admin_auth.py +Ensures the current user has admin privileges before proceeding. + +## src/backend/src/dependencies/auth.py +Validates JWT tokens, extracts user info, and enforces login. + +--- \ No newline at end of file diff --git a/src/docs/DEVELOPER_GUIDE.md b/src/docs/DEVELOPER_GUIDE.md index ed42724b..b2baf42b 100644 --- a/src/docs/DEVELOPER_GUIDE.md +++ b/src/docs/DEVELOPER_GUIDE.md @@ -15,177 +15,131 @@ Tools and versions you need before running the stack. - Node.js 18+ - Postgres (recommended) or SQLite for local dev - Databricks access if exercising Databricks features - -### 🟦 Quick start -Start backend and frontend locally in minutes. -```bash -# Backend -cd src/backend -python -m venv .venv && source .venv/bin/activate -pip install -r ../requirements.txt -./run.sh # http://localhost:8000 (OpenAPI at /api-docs if enabled) - -# Frontend -cd ../frontend -npm install -npm start # http://localhost:3000 -``` - -Health check: -```bash -curl http://localhost:8000/health -# {"status":"healthy"} +# Developer Architecture Overview +This section gives developers a high-level view of the front end and back end. It explains core components and shows how to understand and trace them. + +## Backend Architecture +The backend uses FastAPI with a clean layered structure. It separates HTTP routing, business services, repositories, and SQLAlchemy models. + +### Core Components +- API Routers: `src/backend/src/api/*` map HTTP endpoints to service calls. +- Services: `src/backend/src/services/*` implement business logic and transactions. +- Repositories: `src/backend/src/repositories/*` handle database CRUD. +- Models/Schemas: `src/backend/src/models/*` and `src/backend/src/schemas/*` define persistence and I/O contracts. +- Core/Engines: `src/backend/src/core/*` and `src/backend/src/engines/*` integrate LLMs and execution flows. +- DB/Session: `src/backend/src/db/*` configures sessions and Alembic migrations. +- Config/Security: `src/backend/src/config/*` and `src/backend/src/dependencies/*` provide settings and auth. + +### Typical Request Flow +A request passes through router, service, repository, and database. LLM calls route through the LLM manager when needed. + +```mermaid +sequenceDiagram + participant C as Client + participant R as FastAPI Router + participant S as Service + participant U as UnitOfWork + participant Repo as Repository + participant DB as Database + participant L as LLM Manager + + C->>R: HTTP Request + R->>S: Validate and delegate + S->>U: Begin transaction + S->>Repo: Query/Command + Repo->>DB: SQLAlchemy operation + DB-->>Repo: Rows/Status + alt Needs LLM + S->>L: Generate/Score + L-->>S: LLM Result + end + S->>U: Commit + S-->>R: DTO/Schema + R-->>C: HTTP Response ``` -### 🟨 Configuration -How to configure backend and frontend, including environment variables. -Backend settings: `src/backend/src/config/settings.py` -- Core: `DEBUG_MODE`, `LOG_LEVEL`, `DOCS_ENABLED`, `AUTO_SEED_DATABASE` -- Database: - - `DATABASE_TYPE=postgres|sqlite` (default: `postgres`) - - Postgres: `POSTGRES_SERVER`, `POSTGRES_PORT`, `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD` - - SQLite: `SQLITE_DB_PATH=./app.db` - - SQL logging: `SQL_DEBUG=true|false` -- Notes: - - `USE_NULLPOOL` is set early in `main.py` to avoid asyncpg pool issues - - Logs written under `src/backend/src/logs/` - -Frontend API base URL (`REACT_APP_API_URL`) at build-time: -```bash -# Option A: dev default already points to http://localhost:8000/api/v1 -# Option B: override explicitly for a build (Unix/macOS) -REACT_APP_API_URL="http://localhost:8000/api/v1" npm run build - -# When using the top-level build script: -# The env var will propagate into the "npm run build" it runs -cd src -REACT_APP_API_URL="http://localhost:8000/api/v1" python build.py +### How to Understand Backend Components +- Start at the router file for the endpoint path. +- Open the service it calls and read business logic. +- Inspect repository methods and referenced models. +- Check schema types for request and response contracts. +- Review unit tests under `src/backend/tests` for examples. + +### Example: Minimal Endpoint Wiring +This shows a typical router, service, and repository connection. + +```python +# router.py +@router.get("/items/{item_id}", response_model=ItemOut) +async def get_item(item_id: UUID, service: ItemService = Depends(...)): + return await service.get_item(item_id) + +# services/item_service.py +class ItemService: + async def get_item(self, item_id: UUID) -> ItemOut: + with self.uow as uow: + item = uow.items.get(item_id) + return ItemOut.model_validate(item) + +# repositories/item_repository.py +class ItemRepository(BaseRepository[Item]): + ... ``` -### 🟪 Conventions -Where code lives and how layers interact (routers → services → repositories). -- Routers (`api/*`): Validate with `schemas/*`, delegate to `services/*` -- Services: Business logic only; use repositories for I/O -- Repositories: All SQL/external I/O; don’t leak ORM to services -- Models: SQLAlchemy in `models/*`; Schemas: Pydantic in `schemas/*` - -### 🟧 Add a new API resource (“widgets” example) -End-to-end steps to add a model, schemas, repository, service, and router. -1) Model: `models/widget.py`; import in `db/all_models.py` -2) Schemas: `schemas/widget.py` (Create/Update/Read DTOs) -3) Repository: `repositories/widget_repository.py` -4) Service: `services/widget_service.py` -5) Router: `api/widgets_router.py` (validate → call service) -6) Register router in `api/__init__.py` -7) Frontend: add `src/frontend/src/api/widgets.ts` + components/views/state -8) Tests: `src/backend/tests/` - -### 🟦 Add a new CrewAI tool -Where to put new tools and how the engine discovers them. -- Implement under `engines/crewai/tools/` (follow existing patterns) -- Expose configuration via service/router if user-configurable -- Ensure discovery/registration in the execution path (e.g., prep or service) - -### 🟨 Executions and tracing -How runs start, where logs/traces live, and how to query them. -- Start executions via `executions_router.py` endpoints -- Services invoke engine flow (`engines/crewai/*`) -- Logs/traces: - - Execution logs via `execution_logs_*` - - Traces via `execution_trace_*` -```bash -# Kick off an execution -curl -X POST http://localhost:8000/api/v1/executions -H "Content-Type: application/json" -d '{...}' - -# Get execution status -curl http://localhost:8000/api/v1/executions/ - -# Fetch logs/trace -curl http://localhost:8000/api/v1/execution-logs/ -curl http://localhost:8000/api/v1/execution-trace/ +## Frontend Architecture +The frontend is a React + TypeScript application. It organizes UI components, API clients, state stores, hooks, and utilities. + +### Core Components +- API Clients: `src/frontend/src/api/*` wrap HTTP calls with typed methods. +- UI Components: `src/frontend/src/components/*` render views and dialogs. +- Hooks: `src/frontend/src/hooks/*` encapsulate logic and side effects. +- Stores: `src/frontend/src/store/*` manage app and workflow state. +- Types/Config: `src/frontend/src/types/*` and `src/frontend/src/config/*` provide typing and environment. +- Utils: `src/frontend/src/utils/*` offer reusable helpers. + +### UI Data Flow +Components call hooks, which use stores and API clients. Responses update state and re-render the UI. + +```mermaid +flowchart LR + A[UI Component] --> B[Hook] + B --> C[State Store] + B --> D[API Client] + D -->|HTTP| E[Backend API] + E -->|JSON| D + D --> C + C --> A ``` -### 🟨 Background processing -Scheduler and queue-based work used for reliability and performance. -- Scheduler: starts on DB-ready startup (`scheduler_service.py`) -- Embedding queue (SQLite): `embedding_queue_service.py` batches writes -- Cleanup on startup/shutdown: `execution_cleanup_service.py` - -### 🟩 Database & migrations -Local SQLite vs Postgres, with Alembic flow for schema changes. -- SQLite for quick local dev (`DATABASE_TYPE=sqlite`), Postgres for multi-user -- Alembic: -```bash -# after model changes -alembic revision --autogenerate -m "add widgets" -alembic upgrade head -``` - -### 🟧 Auth, identity, tenancy -User context from Databricks Apps headers, group-aware multi-tenancy, and roles. -- Databricks headers parsed by `utils/user_context.py` -- Group-aware tenants; selected group passed in `group_id` header -- JWT/basic auth in `auth_router.py`, users in `users_router.py` -- Authorization checks in `core/permissions.py` - -### 🟪 Logging & debugging -Where logs go, enabling SQL traces, and handling SQLite locks. -- App logs: `src/backend/src/logs/` (managed by `core/logger.py`) -- Verbose SQL: `export SQL_DEBUG=true` -- SQLite “database is locked”: mitigated via retry/backoff; reduce writers or use Postgres - -### 🟦 Frontend notes -Axios client base URL and how to point the UI to a custom API. -- Axios client and base URL: -```1:13:/Users/anshu.roy/Documents/kasal/src/frontend/src/config/api/ApiConfig.ts -export const config = { - apiUrl: - process.env.REACT_APP_API_URL || - (process.env.NODE_ENV === 'development' - ? 'http://localhost:8000/api/v1' - : '/api/v1'), +### How to Understand Frontend Components +- Locate the component rendering the feature. +- Check its hook usage and props. +- Open the API client method it calls. +- Review the store slice it reads or writes. +- Inspect related types in `src/frontend/src/types`. + +### Example: Calling an API From a Component +A component loads items using an API service and updates local state. + +```ts +// api/ItemService.ts +export async function getItem(id: string) { + const res = await fetch(`/v1/items/${id}`, { headers: { Authorization: `Bearer ${token}` } }); + if (!res.ok) throw new Error("Failed"); + return (await res.json()) as Item; +} + +// components/Items/ItemView.tsx +const ItemView: React.FC<{ id: string }> = ({ id }) => { + const [item, setItem] = useState(null); + useEffect(() => { getItem(id).then(setItem); }, [id]); + return item ?
{item.name}
: Loading...; }; -export const apiClient = axios.create({ baseURL: config.apiUrl, headers: { 'Content-Type': 'application/json' } }); ``` -### 🟩 Testing -Run unit tests for backend and frontend. -```bash -# Backend -python run_tests.py - -# Frontend -cd src/frontend -npm test -``` - -### 🟧 Production checklist -Settings and practices to use before going live. -- Use Postgres (or managed DB), not SQLite -- Harden secrets/tokens; externalize (e.g., Databricks Secrets/Vault) -- Enforce TLS and CORS -- Monitor logs/traces; set alerts -- Review `DOCS_ENABLED`, `LOG_LEVEL`, `DEBUG_MODE` - -## 🟦 Resources - -### 🟩 Quick Links -- [API Playground](/api/docs) -- [Video Tutorials](https://kasal.ai/videos) -- [Discord Community](https://discord.gg/kasal) -- [Report Issues](https://github.com/kasal/issues) - -### 🟨 Code Examples -- [Basic Agent Setup](https://github.com/kasal/examples/basic) -- [Multi-Agent Collaboration](https://github.com/kasal/examples/multi-agent) -- [Custom Tools](https://github.com/kasal/examples/tools) -- [Production Deployment](https://github.com/kasal/examples/deploy) - -### 🟪 Support -- **Chat**: Available in-app 24/7 -- **Email**: dev@kasal.ai -- **Slack**: #kasal-developers - ---- +## End-to-End flow +This ties front end and back end with shared contracts. It helps new developers trace a feature quickly. -*Build smarter, ship faster with Kasal* \ No newline at end of file +- Frontend Component → Hook → Store/API Client → Backend Router → Service → Repository → DB. +- Shared types and response shapes live in frontend `types` and backend `schemas`. +- Tests in `src/backend/tests` and frontend `__tests__` show usage patterns. \ No newline at end of file diff --git a/src/docs/README.md b/src/docs/README.md index 05838975..5c8ae3cb 100644 --- a/src/docs/README.md +++ b/src/docs/README.md @@ -1,3 +1,5 @@ +![Kasal Logo](src/docs/images/logo.png) + # 🟦 Kasal Documentation Hub **Enterprise AI Agent Orchestration Platform** diff --git a/src/docs/images/Kasal-overview.png b/src/docs/images/Kasal-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..df9aa78e4a8ce6bf31eeaa8820faa93cf6a83953 GIT binary patch literal 154290 zcmeFZ2UJws(k@CA5JeCa6rn*BRI-RIu@R6UNTW!QEU1VI4U%IEDmkdAphyx4k`W|B zlTnG1bIz&BP3UmvV(+uh*?Z$T?~V75_wKvnI0mqg)xGAds#*0_)mQDWsiAyu|MC4~ zWMl_bRTOWKkx>)DR~hX-@IM#hM7znz4yaiwC}^rGC~#>$M%}Y~beD`w#s7^ijh@!` zqtOO8xT$Cr<*rU&V|;m7?kcU|leLq6S5+vU9X6NO%#IJ-pJAk!^)ZzzfP*pnw(ilI zMg61n=lJK$Dl$sw$nAS{%iu$BC*n@?J9LwT)8wEOSxev64NHa;I=PHf$fL~j&Bw!E zH=J~!*e^nML5^nI-OKQYf53j4tOL1dVXQTUVvn(%<^w_w33F61PDO}}%-{RcwKJ^a z^6rdeC8}I+CdlPp%MZFgh`#BstB}U?ltJDwq59al{!i7G=iC#Td4+uFmzl}F&AOKf zP?7~(f6G~+KBno*5KpafI8Kiu8&)k_SQz%4vH5xTzTR?)nX4X-y@w=^q1)8i+s9YM z_GO=YTPDxISf3z)pCMUD5}m#`UO&)q`(UbTqQEJoV`2?`Ve{W_Url3Jrcu>bJXPIG z7F(d#ZIM~spngTA9e3 zt@CauQ1tuENHZSDe3Gm4$tC${4)#t|*o_z8gW0lPo;7=&ttThItm;kB-qy1$5;&7M z9wOGcG(Y5luyA}Wf=oCSs0T8IQRlj zEoYzO>~dd1Z+CK|OlMoBlMq{b6NC;35Xb zi|O}U#5-@^y_V{@L!e~z@XMKqJU_`Fz ziN2Yc5C7>gbmUpjN>n6CifpjX&CM;;eM&x*GOL-R>@Wj*>QVPn+sA$7TU8X#1x#v2 ze$bPbNle?|W+=@~86KHRH27~nrPXV zFH^jIA#ir!~ly!+<K_Wy+Z!silpQq}zi=V!m%klaA~5B6``FK^4~@I=0d z`hI!*&X;F~Dnh5Rr(irLrx85p#QQe{&PKmh33zcn>Pyg<;8vAF^_f`r#0S^YKM%HF zdT`W%^J|d4nv6oJvPXPk;=RPlxTER3I+3Y5iFvvUCA|t?LuY$u9cK;KSsb2k-&p6E zT>Q}{wNuAW`Q@y9G_!s1? z;x;H2(tDF~VPYaa5>M+HMJC1aM4Ln;?foP>C8eVTq7Fw5NTy2;6!jJf710&7+4I|n z&gO}UCLRf^Yq%|BzGyLc$Mg8T3qfM)7alEV_1@O?E$w2@m`dVnh9{*ys6hhBJmZicWw0~($05U>g0cpv-JC1 zX&-2rI%6UBFvmGZK1b#ruJQBaqgDIWj>*Q!fup=f%?0o2x9j2Wsb=3XxTl}-RoY@} z@JH{tpAX`+OFQfy$~=sA@Nx)VmtlV&oY}|{c{Oq_PthRHDsN$5AHQRARH{*;(er`3 zZta7O#*Z)+WmZ(TpViTR_xr(=f1;h^62lgQIKv^1cOfGo&qLNjgq8J!)Hw^y#tUB# zeK3rA{2@bNQx7N3a3o@_&J~}^I zvgWiBz6D!BH?NO3jYiX!Q+QJbQ0h~Dr5vNIr-V_xqrOYkLFGVGysw#7mPwwLj{X+Y z<3NjQ=A{&ufw;xE9C@VgXWts1H@-6a^XbE%!$Ypr`GgpWZx}zj`|Q+5*~5w}Cv~q3 zhJFcof7s#Fdp3?EMofeY_ii>cMA&5qb*pAenGe-$)d>a`v!j?Z{ZJaQe4kF;$@(HD$+w{xw@b+dGq#oFLG7jo1Zj)VuA+>W6C#$GcLVVmP0u1yV=?E{@AmG$3ok5maV)bbDKPog}E1aJ2hnsj4sqTt=eUkGyy-$OQ1B2wBq7CSnm z4mt^?UVg|T9#wq9(Wr+bt2nMR&as|zGWu1iX{H$#wsQkF&=1SQY?1BAEnKdDI(JBv z;Yb&^L)%=@oY-6+`>W%<48EM!)@u)>?W>o+h48i|2E-RBhjYYp8rY=aoGX^2nOm8S z_{211t)tuBaqR_KT}b5^YZ+$8NqkRiPEwO?69)q8Q8wc}^}LF;hjmW4&?x1ht(C-D z>RhI;{(%0RP_c=1!KiIQwv~Ecc50a}(wM%$aYGWjoxsin@3pQSD)Hc-(AlvXS(tKq zyjZd=NXl<^ni}Nk=P%22!K`_WJpD0bg&t~K?DSl_U0(H8IXiSw_NcVyvLbO@tq}(Ur5L-UGMgu}niaqz&tVHG5peug$Nv3x5*6Yhs1D=t;lhmvkKZuX~C>cf^#%KQD2BkdGr#==*W{F3FDyD$$jIc# zR247ZbS9r4pf9=Cfk!Nf7oEvJ`J*)Q%$0Kwls=uAc>gg_ExDh5>czLx!`zLpr6yk8 zNqqI`1~=2abA>D?t6%iR(7t>)g~7~OAY`T*-o4A2oL`mRacOeH7&p2!4L-~)-Edp5 zNNFB)OP4V3cqKqZ%g817gp8cxFBj#Sv<*!7Lst-zbbtNR?>E1orXmSZ{o;=ziWJ@? z?pgID`90nndIKs_#^0X#`y2oFwSQ5_e`WQDK>lkRe~99@i~rij9|HNWZTumM|Juf1 zg3EtxW-RigbU@1iX$N zy}xs?Si)|yA*u(O1-z`=g*(2T?Rdz5mG06L+E^4xr;2BjKoh zA!$GSDF!B)^S7eNyef_^5jf|GZLT0oXt+my=yk*7pwr^+HJa2sIS8A#%Uo^r?^^oy zO+{7|PTt#t@h0utIbBA@_rXTqvk1fRX|ysE0e3#5&9qmR5<5k)PT9OV)r>tMWld2) z-ZFB(hNc2dIl$6a#SbXQYMMa}}fuJ3NbzI#@S9UI~;Q zKwLu>Gw<;d5j~2Rp`9o)@SKn`W;`+;Hrs-TUI}d(+B3=V>N&$0A2**rVe~I~;BHRVaNLV+#iHqhMD#XRE0mr{KQfm@xTblXHtEt|&daU?$x({+ ze4-!H8zaPuXDwpy!!WAb?zPo>337Kndy|OvrNfvO86ll2Jj=(k8ha#+J{D;?LSa7)NALa62C%a`7zd#?3K`8P2r7 zg}{}+oc`TqN327eF$CWzoGQ@dZ};4CgDZIj8Z89Ad4XM%sa@Yw)um5{F^F*R?ca(; zZfPh+O>W6#SZGtY{KnoY7UtT-HlGF}`@g2M|Fgtox^LIpQ+^%PpBSwPL=kF|YN;k0 zBfIpB+S2bY_7}FLR}!fqg{AEa+)tzz+0y_N1T|@v95g+9?uK96a-Z`^EKvyEzyFyV z6#-M#-ld5O?d^*fcd0V><#5zXT)vL(%QUDUoge57I|APL-d>hau1Tk;Qfyk`?XEFU z;lUxPAwE1m=u{+^!+j|_<0T>dNOES+-TVgp`_G=pw_UF`iRz96p+P~P@&>88ZK@7x z<)ZBE?Ol@Y5)RM;v(?;t)!ZUzBAx}gsyxi*WyvA5Atr6bJb#D#QDiT?&B~UeA$KWY zE)!K-gUdDUJ^F>7I2S#$fCOflzn58>#!{c04%HO(UZ8avvozwy$~k?mJya;?ZcGJYo@$giJ*9Sw>DCWQ0Br1Yq`i&FZ>z0OBk~lTLWs+*d_d5gT?`WIgahRnKd`P7u?(q$Eoyr7!{nZYz}48p{c=M zS$^e7yu6tF8hC0c;ML9L_V0WSpE;cDi=U|rmZ?Br*A>^%TQZS5yVq%FWAmb&G@F^a zG)(z4A&zR_O|G&jZxZ=JiT3?GpwMf3c~=oeiggi0^ajjtu~mg4RiGs^n<%r4`C)W1 zodf8?9f;^}p3cjQF*#-fTNhSNN&e|2m5*X9=NzVM$N_R{T)%Q^vFj8LjF$k+lBQCb zV^8yX=Ciy%k1Dr#G>c zdOgY&q#w^7@%<&(?Ng0qAchMWNvbq<>QGSWT<7v8Z4TmAq_F+~TclYo@@@)~vFsHA zbB%#Z-WF<=qX^#LzUm4VdDrUhU2l@NHPha=gLkH-Fi(cjlT%ayPYol=W;AOqnW(9c zBn_kYs|5TRW0F%)@^HK}GQ*2yw_dQrGxx8wr zPi|r-o(Ub-Hb--C4*t(f@Ks)w7;&aO2&~>5wCJK`x3)%E}hoHnUiO z0iABA&6`t^%+1Y>(FVs}FZ>Bp$vr8T1L2G2W8{Tba^~Q{wPy@WUV;Y){>KOZ-&y4U z?7cv^gC#DOBbCq7QK|b5bBTC(Z8p_?x&QOyoyS8nZh3|Kfa|9D5zuWBiBo4CqA3?CFMe0J=69kU6ewssyZ9tg`pV zRS;SRPVTvmufTnD48+?~-BXlXLhyj2dJ{UT|M87aZibGOI(Faoy&x$m$x}C-VPD}* zZArv$S>CzxiLY)>cH%pMl95{13kI1)&x~6ucHaR+63yVnNI4Uu@sr_X)^eA2}F^hmd*A z(A%S@s7Y*jq6`VyC z10%?J{ld8%on|1XCZ#W?bi%Dc=E&i(_R}&c%JHfcw#06(Ps)J3n-Il{KSa_73C*mamP^oYQ`(C><3+@5N$e21Up*ys76C65k zCFSm)aN`0>WX0piN}7E^`e_dg`|r74EGVjQ#{!c#5+4ihyBluQ>d<8rp4W3P(te}I zf)$2MjI_RLU|o235W7+@jAVb5b=j7~F~Y@b5sL>kAS7>}QI_fD_XxD-`9f?14qMGb zOXLek8+NK7?YDV!@~^Pw>aO;2Npqf?Rj|aal1cHI8evb{UJu-WRPbis5b>?qX4FDn zpO97VPo=1JvE>mgn&j4N7AW|*!vIz4AUXBHF5u9rF9Oe}$oZd4TNe4#^hjANR&u~g$MoNpqPk9q1pOC&O%f1ScUintyxjb4k6OAjG z3KHJ{3vqP)p%wjV4n3^^doN3vL9)W;STUPdT*rA}?{I-|8XW_xucMOlBC8;3yn|b} zF#&~@a_?<}K=PykyQK=6Bw^3xz(Q^$db_PHyN)vw(Ph3^C#=ljaMQKPE;_8Mxf;f5 zWPjZim`F_OAkakHcfJ@y_Xt1&xCo?TJ+qOI@z}07vd3CUzK?rbU({#Tu zM3B^Aqn)qHM!yZcTe{wa=PAk?MOB5*eabl6oVhJY@28D-nE_BBUz zKNU=lE<90|9%Y&-7z<(7Z4wp}-gRQ61~=ReE##2EA^3a6C>L@_7Yb3>;&Zi&p=oD* z>ikdht_9!rAg+XCg6M0^M~5QFoJS8&V2JCPNhr_N$Qc}l$DaWEkVLNRWIrjFB_mJGOZ(GHNaj^<``WDM!ULg_6nol=x>a;|83DY=fPD z1{%MXUGh5g$+=S2dVhQUOj3-j^>hqv-aEGC#bRu<>{{HRU;`MOL#S~4l{882kz31C&ez7cqOJ)|l1sCjv1=9k;EVb$ zt6qy34@ne%$uPC>^agVfN|nA~3kSu1qFbMK%ufH* zji3RT+JP;*P`7>_nMK>sdgM-Bk&)AYIEQ`9<(Xs6&Ptx=Ni>Mf%V|yZ%XP3AjY}iX z@LSXIp&HGe8#$!>(+Oz8oXM6Y$rX=h^R}ou2v>Iyfl-5`BSH*#6#{DeJJPeYaD)-H z-+imzWU>7S>PYpnxqqA|Ct+H7Dw4k0W6`cH6pbHimw}bn$!=t?CBjS3c6l_2){T3Z zor&qjc=B`ma0hS)astDdS|CoB?na^^HpzgwJ@uFS+)sx*ZtF9}|@9NbQL?K!_%3ojF`c_FiY7>PrbEZ1&zCCRRTb|F4-H8^na=Ap~E zgRXNEkyLYOIU0i}6sS4e=CdtFvlK;3G)vMM;rz26poG7}61N&6wWz1NU=jLT+~wMYCx+O;_XNSjZ~I}8D*Sd(H~|Fz3F5;)cT5+Q4@>M5)Ifs0*sO%hY%+&*SwZ*+~{Z4A0$ zZFg#0WNhuY-bS3dRJnc0xJ1I{=M~n8^-z}v^Odk2V1}hD*k$Dd{A*24WnvD8*4ujY zJpAYak+NIk{fn+1AI$qB3Wf-ax|u6>KGd^V_Y?PiM?zxm)vtG?GvbUnP_@YWPZ%I@ zBJhii&NAA71VVLbC^BPv28n*}+u$Ex!@Rcqn)Lo*Mq&R`7=W=Z(ge2XBu;rgiuS5Q z2x%;H*sS%}4xO!42)@`a7EVp_Va=VR*xvK;9y0b=?~vm5lvzXvt;5Wh>b?N@`TtX_YZ>AgwV=o7B7b#o}WSF^A9BFJ<|AmZchF5H=dA7^5ScVOE%{?jsYGScLqU8EvfV;h_k&OV%e1L70mw z8nxVJGqYIu+SN2?#`y#ai(7WM7cxw1=uzevmHg5Lt5t)2*N1c4H0rCC+7$?jgqZF2 zq}Ecb2et%_XM!Iy`#?%i3!h{^U`u(@C&a&S|7cM_LfLnwI_LFNlPJ!e?m9f&g_g7nx}2QG-ZS(NQ$d{} z`CLY^wK4j~*`!ZwvwS}DJx)U&tHIAA_+yPX`t6!?iQ98iS;PSTjOm~rm>t!l?3$xz zL4=%8GughuSvGYDy{S-k`FiLA41U5)FGjpmkB2aCftc$rn2w%`m3)&Yt_?VV=+rYIdJEy+lZmz`z|~m_+(3UoEbUTj`uba0 zPwC&-B9H>e3f8Pu7xO8j4%;`bQ@-_HZ(3$}&(ePleUc zra~_Agy-hS7Mg5KdenWFrz?V|SjW^s<+ZM+7jm>f7n=f`hn|lZ10fOk{}sx$#Fm3- zj?D$|_=29fn6}a5@26)Znq4%CfM>+VJj32?Q4%&d|JpKDnq8* z=t0H0>4aVBx_w^MquSqJsD10@NVjXfMud;zRQGO}0`$_*K~J=}QOMx{ zu+#SCf3+;r01A+1>qB0kl{fOyt1|qAaA@CL6^v-(T5mAedMn>~dDI?YyPQ=w4B`Vw zaxLxcFUYLC3~h+py4eTC+E387W-O6zy|1nB?Dp|H<{K~e33x0AntYhO9qIbjc>agNk9jFD zNSumtTP&^EEFQJHsZ%2zMTP40N3Pw6tGPmvw;>ylyA7`GH zg>cec1g@|-0l>Wq{(kIaBuXO^RpuhZT(w-XStD$GdrNzO4aIT-jbGkc2z<&Qd0#s< z8wT}t54-?{o+pxOT67mqfeIe&W3m)*UhDyk{%1yC&O$w#)MK88j}MVNhjk!sO*v64 zIx`QiwIPvC#eD;bdgj=GsK-Cf&KyKJE4X&%M864f}Tsy zHy-g6oh07&<#=0f=+L2U83km$ySAz`r2xWRv*qFC-Tn%d#>LJ(4O!Ea{*OuLJH2c@FdNFZuNUhFn~dbabTOEv(i zu$kG^ObuN_+bf*sr+Ob|UJG@u=4rL9<5<$AZ5jAV^+C8a9w>p$twVxI@3$sF zRjxL0IFWyHI9e>u!<4WH5OXjIInAQ*? zkHd@Ak8gmUo(M*ju`Z&Z`k-$IC@qZ6Hes`o&jy{!R-;zKHu4J_tt9(K71WjRphCgt zOVr}*Wy$9R>g2p|XY9OU#u<2lv(84E$G8HK2W<@Y~UE5fhT zuQmo1yj*@lBh6)%(|FNkI##kjlO8H?{6L+mWq+hOJb2M;ua@S~i&xZJWjQNuy zq%T=lRv(@shB%e*M7d19+roirO}-fUYDz(EyNycL>9(E15H@DTVtacZwUFu$3 zI|_`wffrDf9?e=!T^%NYdTq|sRgk!^ef_hoQx(-^hQ2^luF|@g`}^DF_gNRKKJ+)m zjfWvMme<@lrt5;eBlx*|_N9a`-hOOmq^@5K3Mi9gTe7%9B*TxnF9Qh3ERtyRcvLdN z1@pR3UeUw=E9y*bWgptCU4znFn#pGONinH8-3{(u#t|o{C0H0+-JM#R6E<=d@?)+8 zO;Xqop;}!#t1%>LnqH=E^*qIbG7xHBfcL$elDmDjta-%C!)qWVNjj{x!Ucn zrsgGo7v|BT%|?`G+btMeAIfnZ0GeAK_v}yeTm4Wl4=iqMaJ~Rk7gt);MY}4iPj8=Z zY6E>?ubz{@tqIC3NYnM7?=TEq*m@l*IoYG-g&021KynJ|jIIl)5G$%pVWYMvu{ve5J>^ zT?*bg>m%ehpz_e!Nd`YS8Q@8Tchwy9g7VhFL8!7ZCQpdq;Yu^>j*1Z2EFL0Q3*kPp zmYxaifT1pYaO}05@#6`Z&gBm|f+W>dSAvL&Uft?YAXMi$%gYY(`kfx6^;>o8uHx+M z!L+YK7}m2A(S!oWLG6%h%hOiC(2(*XRueWP%U2#DTSoS z-%m?KeP!E5cC?AUJ-h!VsZC5rhFrX+HQ*0!Sep7URR7Y$!*y^7ZQ7Fl0neqUF#8{6 zD{nGS6axTc*K_W`Vp?XjA$FeB7DKdu1nP9tk5Z#qV5vS0Gmm06Z-ZPg>Pv^Fhtfz%X`z>K@%@19=FfEm85siIVuBef}fi*_;{-P`6oJUlKQPLXDA>+K%KCZ$FqItT08C9KzvDuCZ4 zT5jQTVh946ffse-JS;pMcusYpE9v;`I~`0=CflvyE88ZZ0B7FOm}ID&`sKw$J*p4}nfX)NR*|o{e4?^3*}5IE65dSeK&LKRH`?xF`ECA5V>rfCbtV3a#cQ z$yf=<4=$JSw~+rFNn zTlyf)^?X^|+XoaQw%VR^21B#2V+3A@R@R-cQx{ro4KKTZ?JI4rwoBzFjq@RTKEr#j zAH<011V1-H8Bb2#G%~NFosDmr{f@U?SKOIn7lVO>aV2k?SEc_{GHSlsNAg2}>uAg+ zPl2EL%WkhjBkB0{M?cIG#w-SgmL;sS>|v-Y>)lG=z~5#{CRx96IG`3Pd5D6aHJN0P ztb5s=F!U3&?S4?-L((Y_SW4QMGAkRRq~O}5r}|mpAOGl$)-(HMkDH&s>5XD?W<}@B zH=~grvsz=kbHV=Z@B#Za!wspSEsba!xTimzjd?_rtH8D%YgPNBtcrch**O5Xp}((E zRBOtvueA8eUI?{7V|E6F50x@2EZw|q6Cg?ib8caQ9+P4*svTi7>q0IJUQmLzg^OU^ z0Nz)LbAQsE)f3 zd(h9-ValQ*lCg@SMns|`l6q!66YUY88sr2BQ-+B}BQMQ7pZcpcz%>WXd|U5)E81{9 zC=zjN%a!z|P^mED0(|nW-)&C~1Yu3OPQH}H?R(BoF;UPV1h`T1 zEL4Rr)H{HMs`*p0DY!sKsH&$1!HLxt&7UaIIt6u#l9GgI6-l4R+q1fu_r842l&#SKzIJXlsqM|EZ4;!`3td6 z8GcL@_Z?TDs>xF8I6-dSaqtcP;uUeeNMPr+*l}INf~i??6E#xw#?!p z?X?C{p-YID#?*aVbgRyio}-7EM{2`1*Td#S-&w1xxNVO3P9-ILjE*pMOi?>BJ(Z`l z<@^}4Kfeutx|qBH$G)aWdRqq3xTOVar{cRQ!AV1@+4$A%ZuD3%T%$t|7v*7YB#zfK zhCPSs8M&apIJwf%Pu+8h)Vi)LUajeQ9J3f0;eIKES!4YMQrd99J>tv5lAqTRmZT+L zgfxcxdY3LKXhR3?(F#H&=_bZS6P1dt6=w|N)`c5AHmL?i$i++W=&3h;+ng^X)zcg? zE|C#4J9(undNlY|cfK+BUU1ax4T}Nx$@YN!R-L9(W*ARakX&X=c__x* zY^H;KU;T$A0b|e`n|A*bK}LkyOY%}^9LlWwgI)^X&T5McC~Z2eVnwOc#1qj(!(h4? zV~}l5+FZ&^COUstGk*1S2vk|6w9RvqN;i7>4_Rql^Nv(ljRJAskc+cwJ1x8RxWt)E zg@r{qDW7Qnk*8+2P^IgwOv)!-0_Nc9$|Vcg)ps)*PDNUtSGGR}3jL^>QM8fi$&zwO zQYHGe$jYzlrDU&biOYHr-M^m>A7B04rHibaT4yHF`Z|@)8TG`;`krB~8n}t9PT~Vl zY0R4KW*E!V$Ro4O7}{po$_rohwDb8qkDzjGF35K#7oePeRTCjPuOYC0&FcY!&&^SN z(xD-!9*pX*)|6VmA(If3k}tK=_)bq(hW^cHtxCV%=kS7&!wN?S0J3W6OH~bC&5{*; zq_yU>KJF=-$u^r*#(e|J&I_v32TtECU3f8iPpkAMigBD>h-uTrw&qCG+^6>zTvv*r z3Pi*~ie;y@>FMc$+Y9%qT%?pKa*fl&FD+ev&RiIidCjkNypY`TUvgC^bPHC_ z)8cuYL*Qg)XUTYsJI?EFjdOF%Mba{=>O^Yi}d4TC73bgr_9~!4{ zKYm<(0y%&*OyTywK{aC=&;6E`)CKaW6VH$W#UFgmCP!h^XP-gUuqZn!f~`4Eba!T{n&BKDam0Gl7+nRS1gMM`wauG%_P|FOrVU?gb;5h+OSsE82d!|rQ0JU@&*FGv7-G!oIZvqc zd5mC7sjO^WA%to_A6GgvbmD!%02Z=eC6IZDY^2zo%yI`;D^@;Mfgqh#{!==u&&x>e zBE8IkECn^(Fj6g}+(1=nZrXRspC3LKbXK7I=cl8S3u5@#;J#*N#RcDUek!pi&`1xH zZz(Av`o_D#bEbVk?-Vv0q8f_^Su?Q*xBU&M!uBuKJR%=76@p*$6yLHb8=>%lY7o7k zI)Or(+^6$02H4Uqu0O;aR8{|6NCDx6L?=CWtNE(vl)Spx3G+ojJ>`;%l>yJ%SbP4K zar!xUJnN5zOFm$8u)nl!H)G1@KtD{nuJWfcEGin*bnUpIQqEDpPB&;j_Fg`gh60R` zsDK#`WZ+T3tIIl*>cY!T>H+{)sK+#ObpR^RwBX;il4Ubexdy_aWbzc@4VyB zuR!E|0uyKw*9}~!TLU!mA>pk-m@b$Z_)F8NoJ3_tF%0!oNO`|kfx-?#*e(~4bcSAq zv>c$20bDN}Z4tFER2TsaihmYHz(b5E>R_Oo3C3tzm1S36+Jn+x*~7q4pbD-QBw*7Z z);S{Ouz(U(3deRa0d=qZ>1aUrK{9}7`UXQ+j;s8Qbd=&xYx0lJ0{A;$wUd4x%ptgV zH-l+`&U|f%5m#3J>a<#`=gvY`&UZ&1WN^)RSsS*v^*GRm*?)Srm*l2Nk-cU7x=`kM zV5N8Nd4h3_@;{|={}_t^WWoyc?_@$?Ij?g%c1eWF|C;vwZ+fo~MnHeub8g?B*p?K`UgeyFQ&SyYCtDFxd~%uR|6LQz{5cN z1;lQmB_^RRoe>A;&GqWu^7GnSol2sm0PG>`Ilx2(>?{mZtyeO{ZMycKlnV6p?^$e} z^omPRdmgG<{lkdl+=s^8hElQa7K>j(- z!D02O?1=Ua65;S&JV(yS&+mEw>(&M^sQ+1P{)eg#JbO}N&Q+w!L#J*K>)C6vgs}SI zl?*0FTCNeV>_LMC#PA&~2CZM>oXz)`=41YaSLG?Ybn56bTs0{Lr_JmJ7;-Fsa?QUT zQ$SJX*7UU#T~n5(dj$Bcm#9zn1tsV*?{uQ`t3}-$a=1h8ZXtlYE8gtMreLEbAL*B~ z4^uiE@m7wIi_Y}f@~_=4zN>F^aRG3|sh^dW@$0l)`1|}#s=)5JLxrh8sq1m)H|!6U zDX0Rdz{r{7>;w*sY_(qtW(9@#7kjeH_gw`n_FdMjUWnI&l3Kv){4D1*Jyf4Wh!^!H zsTO~-;0F(H-_wq~4o@@81mO^xMoHOJyho-jreOzXiBdIeq%g;yK^cH3zO?s4HDcYq z#oRApC!_3oeq5c4W^vgl8nAOfVuGSZM(%7|d{hS*ktR4*PDHepy0jobsW| z2ENqTi?(-chaE8m>NX0b&0|9YY?Y~9Acl60j)n4V!m!zuLsTUG@$8pSF#CtPzy;e$ zFMl}MX#42FC$x+^OeYzb(zUo-BIGzWl%Fpby3MRd5C`f)nxPVNDFKXW4GZpN+icEW zv?O!?>`Fc%CSqM%_4@fRIOV-Bi$w&_!}qV6nvo6NEWM6wH##&V)?+)1y@QEf!OH4Z zp!1cm2(Y_`J&j4>v?fhRxRGN|!D@=aH(P#!{1drms@W0u(I-|#s=S-np3@>TUR0#8 zFY0ACmJo%3U;lMuyKy6rR(*rT-k>*;y_GiC;oW;mtFo-)s| z9Xs}&Pef9(x0w0X_m{I6;g9JMek;@BCx7Ui1MCp+oc~!1{s$-!VcB)VeDj%4i)mTs zniXtcX?T~D?N^L79wLhXw9lyny^ooJ@yxs`a|e6Q+S7dY>2p!k0Om#}^Ai0IO_7wi z=TTb47TM)}a)==^V8XbM%)hd{eL7r~RkRByFQmnAa(0LPw4umRkCn0s)e6PhAgsyk z^Q$xwr5IXZHN9!fPq9NzO(gYm3n-_2V^_A}+Vw-o3Y&oC$F zH2yxv^md_Se*!fr^-1Tj5Lj%(cKwKnH}(C$4U~d#&PNt}+Y{u72a@D)TBOo%aOj~S z|K_274OQJl$~L3pS54ng&${QZniJ@Wx`mO)djL(WTn{bkYO9^5{{={AZ=bVIp37&e5MXxK^OHEaC-+ZzaUV@at9cq2dgh6fTFCYc=Gr@Pp`;`Fgq&h|oaL z{jXec9|cgTI6;^epjC%T7TTXHg!q7H5x)@aU#57Bpedfc8UB>qV9L$U8i+p_tZRH_idbfMAH@4p(pLOE5Kv1Q?v!rJn#;UK*Jn-^_E=`2(EA@AW>e z5eQ80|K;U@mh>*Dz5u2mP(fchj)1OS(VpquznZFCrZ)*9(t!_vXl5e?uN&TiPKWUS zFV_B_jv2_^z{hL6GNWh$pL}uQ{Q1`HjR#!h&{4y>yW^mlO2Q8v&8Oczbf2_6h0?M+ zdu2I9i214`i}nh-v6WI0Cm@o3h2E6ed#uk(a!ayLW993z~6XO zT}}r4q!zV3z2HA9LAJobj(ti`gT|x;|G&D|i*~oA24=&%od*Vv)Y?Lg^HJ=(D}hH7 z3hkyGQ5!Bkz@Dkg|0fp+d34|!&xTC-lWL1?69Ah}_p1Fv5UJ9S%Kp*T-mRRGQ#^%6 zi}AAd`>3vhg(R3gy#-aEQU7i|Z4ZW@vl>S4{0_wBG<6`S;qx?`0zWiG5{TjVKKmV8(~{prLV?a1&1#eL!Ch z@3~hq4Ft zmB6fVi5rmn9Uul%6DISq7x<(jBADGW;rZ81hg#=kMqoefRCBHXNsUN zETU2Y5ze=XI801lw^?9r?}Jpqt__F}8-NCHwsTE?5){%=+kht?mQk|uBNuR25+Sbqf{2bcV%pf7p+iQCV2Z}GX!>JdYew82>o&BLs3uf+=Q*6Ec0pt$ z{9TGuGWR0`F%&SM zCI-v50N*NV5HK1OXk?}@&p`7N5NB%N^npmLlwr)R=Dbd59{kuZ-1ok-n`np-2k|UV zY%6bKN+zCMnMH)wKi-UZAYj*oc0 z^<^LHhCyt?vm1aO$;TR)Gz>`IIO($8?xlUNWm3Ymi#?|Z7!r=u%IP-$61A_IQU1Eq z_w!ooZ*y;(^?-2z-k7$4rYX?-K}xQ*D6~OWC2sDXU~Wr1JH>000LC{AT){*~blqks z9B$^91Wj@kBF&ATvV!568K`foKwi^)2By}(RtP9>B8*er_B_<2Yk_$=vcR%1zp|_| z6=>-S7;+`^OhZPt`K9nsk9qU4ADuf;rx`gF?PkqDm|KCEt8H$BtI_y5Xs9lCdp5Nz zQfJ#Pan@+YOILFkq7MS%mjUPER3M;X@4uQTJ$}9ajPp2{;=9;;KmN#DE3+}s0NsH` z$i^j(%x;?*t*OnFP$tEAZeK;|D3*%$w}I0>>s|o(Si)PAO`wq_KEtTu5a~m(04VC) zjWNN%OUC#Qpoo#xmN$zBUUp#bF~HLDSSr%`l8ms&jN0nKCr2u3nFm>ooo~B>$%2SM zz`09gYnJs{FI+5|Yc&|!?p$lIkhSYy6dfdKff<96MKJVuTi^!2^Emlz=-({In3TvOJELoJ$K^1jM}1J{fDtYH5n3Xx9fR zVqa-T%!Qt_>7N;V>&NZ%(ZtNZkk(AYd+~I1Q>b0(Y7}6@{ge?xzYdKH0_^=rbMVQ< zKSB-x7LyiUw&QfjD&S z-Sa(~4hEu=#qMRD1tFq;Tlh18+ehdB{^3lqQ4~)PDkf zEk?Z}A_TL-{_1Kai$9R@^Bp5C>d)vv(yg_XVVjzYGt{N8D+%8jnp?edpxD#I{-eoA3 z8PIGiBaI(9)a-Erex_2$n)kJUZPhsNlXsx$HIW%>+qN@4Apw!>>xZjUpEoKawtqf4 zzKRq8WBVw;`+!Atb=~dT)LI&GMz}_A4VrIUjokk;BqHJx zFM9^xq(>!l^oy8L#Lj$m9+)QH1|z}Q{cZk5X3p{V)%xZ9 znd9{pJk*=*_D^x|IFRlAUj)Brv4YV@{>y)72-~`(8F-u~% ztfb`o`gSWp*s24dU$@3_tpuI}G6p*kr zAcj4!^&*~gfdpndUwp(?O256|2jXJKS!Ve4Mc^uuQZvhn?Cf|4Pxy`1Hu~xfZsg@p zxQ0m1CO`6MRpoQo0F2DUnmZ`#ApZ6`6DpENHFhE{RrurG0E&)*`s~fRzkW^+BilZ& zS=Gr84mU49OhqQS{y^mC?BCGsZt5!A_*!T<4(|wCFMM=lcG3YNHtQCkW@@!RU}LzfnPul9CdTGQgk|X(<&1 zB}BSGRFnn@QD6~*fq;sFG@{ZejliM=5eb!&Mmm;sE?}K`ma%1jcYNP-o%3Gr@0@@1 z+HQEB`zh$c zN&(&6Qlag|d#vOiW6XoZ6EyfM*DP0JRi#=ZnWAkzq88nht-By>n|3$fo3C?f(`o4* zHLYel7GaOE7Vvo{`yY7U1wCbIY_MRqk1s{`ttaI0cQP*`$ku4*#lRrTmFJDc->CC6 zrgSK6o`}A6m{_WAvh0X2k?v$f>x9U=>U=DQDoLAj-Gk$h@+sFxJ*RL{|Btq8&HCOq zCPe3g@?~Z@1{`vQ2xnx#p48u{(dc*XU>i>u2fn~rIlsjwXt0)b zTejwPMyIG0v&W7cZ`ampl)5>u&F@{YyFPuqUBrBy=|SqH2Y=O1s*R%hWvW(OWUY8+ zt)-p$3)J$PzE?o5krw5v$qgp6Nu`m|Qgcc~SVL;34GJW=Edw1E-h^2eMw|%sV7M~c zdeqKzZ^J%A1i>Csl3O?_5Mb;mj zY3KxN*9o$#4T+APk>d?^AKEwHv3Zn4PT6wLDBU@!3deQ!_D+N#Us7g++C7N2kvb-X zf%IG9-(7|v6qMCgdy#0lb9p#Ifs~c5piPvNoAJT9RpF#mokQ*$mWagOC@|=m zuPl4L*Rco=h5ot6f^%Wb>YY=(iw$0a!I6yFnuBYJu!};dAepZta>AjwLKjWD<1YcW z^jhOeyOFC(tNYF`Hz2Z_NDHQ3%)ckfQ^PPZFW`fdc9jjLf|8rpU*^PfjZGi=;L1y8 zDkf>DR5^BI;soLHjl=HX^v8kVnO%SBaY>Lf`&-%&AaxcEF;`#51Ov8eBPFYG49f{r`L&@3?IfO z1+x;pnRj_O<-;VBLp9RqP z3b^s;HWSoF#qc>8mJJ4C5O+&{Xr2m{#nYNwfOXp91!oURqxeUlj;V;N_}uE`T3Azk8f6WS-l>=pE^mFzt_ zA83D@8LAUa2kop5Ls8tx?;jFE>P@USpzqVG-L*2IJkqoG4tdHTH)Z6C<<#v^>&)GW zajV*s_3xFKA4x?iyZ+%Y6X|P(93cbz#wB9uIgJuhcAs$;)5iTa;gh&vRKc6uFHfQ; zm>v)9C$orUx0N|?@>Tr4CyE)#*U#QR@7QpF=T+*#N2MW((eV@~gFeg0@0YhRT1^Z{ zax%cVq2~1(kZa^f&Qf=qex}=r#xGV4?iOV^F@4VAZcQItlLSo&d~ohklf}neh6r>%2Ji4jm{@ z*mpJNj1b|d_N_dPtE4wEG<2y%^!8>@aIovaw@E--*kpSRZ{WSZcgqrC#j+S; z0I>9(PU9pjqM%tHRn@O2-nA|n;n&~iEw8?1A;`LtO1D*@Fp+l|PIJ0~47!!9iey0s zIsYt!Y#-7ge%YB=$!mN}iZjz!8UOK1_iEF4cf+c#^P~?Gl5MgzoSd01k3aZl`I5F6 zL)~FXrJ8*2!#A+1Z!hxE-_<#ckf5@OkZJ_jKim9ARggqH{wj_OG}e zr>H=04~YNM-jQ;izXhMyDN1|fuIx9$%R6uy8X9uph+KDba5Qb?WtE4+3N7-(Mg00v zEM)tB-!S}}O}*g%lN8SCIuotYLmMJG+wv>>;B~wIi`Nn1ibC2P0WlMFg=@vtRGogS zLcsGa1ppU@<-SNv`_9O#U&i&5KL5l1zK^{BBlZ~hF&YRkLKiOX$ZZzW9>#DQ2zanR zO}+Lsp|YSM2mT8USt!z3kpZ2@zWz+187d(x%&_3<=y>cwaBw2ee4!};JVNmQacRdr z=%rTE%PrVU;8#XlW^#(&@0a_MCW zR&)}V5sAk-)2nWeA|hOmhknAY^#c1DqW{o|9ft6(#ubhk|4WOs_M{!7F>r)MyyW2o z1uFdA2`VRqZ|D?d05!KITq@#OX$pjMvG*U(1;sWpuo#+%#UMl8A|ndwclRIFk9XUC zu!S0k9pE;Ny#)vyR>UtEAdD0A&F7 z<0`lIE^kA`o)4!DSHgb$oju=qdmCUlj?*2vCz}BhDROLcH2Vh|xaDg=LBy?!1piT^ zekn*QC`d+Bo*~%czx5WsD@Z@I_#+26KQ$sTz8nv^afv6%s;a8~v$L~H7f%SB_kx`| z_v47QT#%J1+3Cxbb*b)gg|2$rF65w^juAt_QFI|QJC+Fm9>Fa0En48bGWe=)a-Dx5 zEAd1i!Jp=nGa!Bbbj)8~B%rYWJkbB?)wv_asTWh#&}|p3E{?z8l`TB_KHa3zDpu0f zR-8edg7DN~!Kp6EQ=QgAWxV;*S6&{nKKZ3fBHD8qYM#0sljap0WYDtYILqvV?#vQ&@ff^dSdi`$;qU5fvc*E z+Om(5&q|6tP8RfYq&+xS8dguPUHDK{vXmi%N{i`W`DmPMH?7G6=f;lU8ye0Yt1mqJ zeU=^C3(j1Rw`mtWqq)Et+;`k+e#vGY6t`OEt(@0=mV)$7h~AFGM5ktm?FK=u5I^A? zzpkbuQ`OT3o4<4bQRU-01QhGeI}~pE>PZsiKQ|1E_BAvSqp%`>*;Ok3I*#OKEQ2_t zHJy!0Fne71s;e^yU$7r`ervWDVupuuUcPzJkLF0d^M*%Eb6)3LJ*h$nv(vfvaR4tsgo^KYAZv+h)qa zBV#iCm~^D%;*&F`_QVTr0&8(cDo~5l)S$Yo_$W%kiU8}AOKBq2t|#cCG?jM5lweDA zB1=h>oB3kK1QkFPZ#m;=^@e<5-lQwR>@CeZt@7g4Lu=SJN500Dro2@{3WzxD@dgtf zTH43E&|XQumKfVqOvt!34s213OA|~{5Gc}4y~xGZv(b{Gr^^g+Qr2|mUhH!F*)CUd z2(VP3t0fUGJo)5Q@Y%Pkv`%sAxdH@}y=R23hoVewf4Kd7^t=6_sW&~gr}cPDv==vO z2NBI~X##8z-k1v>96AfUN}I$! zqwP*!IsID{=uN*HTnppXr!{i-xS8wBni#1pYh*TVN;i-~{%>mxif9 zgS{lZNvVJ;(6c6mp3Y3#z``%E}wLI(RbinX!By4 zK@c-dQlgjNCeqLpV|myIH_=A{+AIQVG)06)u_@k#7LdMj^7r*|?K*#6SVTlyUs3q9 zQ&9>1lG=5%OI)OyhfPV;^LAbK-%JVaHz9AO0w0CKJ09$=tmWMn*yXpi%D-y}4ESNx z%|>Y&z0hCD6z(U=o9Oh8pdC9?Zab9fRzK0pQyN2ryB2844$|u8doq0C6bXyG5JiUq zAFD=q-NC!RZ{sOmQ>@~YuTI}P3`{Il7#tj&HCeRM>17#{s)HW?H_<_rre<$Sb(}-d zCvk_3(dhwYRZo-WjEpxWAs{tVMT}ySLAl6FvB)hV{qaUw6aTdfElhj2Z@o2?qt@#^^{bF~75N zV`se;J2B-+>3oAaj|Ar)Ji6HUu56DFZc2OhH9f=VCwja@Y1Sml8lyv^ej^|h+G*I*}; zh+7Uk%h1ot@Dv+Fua9uAxIV)x{{$oGSjf>W-~GVLt8v8yqHVt7jNJsb#(1+B08Wtq zL5@CY1==?lA88bnLsv>>(M#zvBFlu&2)3yC?vt>tiA?5+`Gh<4V#uI~8B<3PQ>05%5Diz0I4)DS-n{j=m^ z6|^5FMe=pUZBsWx>B+^n)|(K~yyK6XK2PaFBRha*ds$ybk5ckMq4j#NgN#o9vy9jS z)0&$JPZMuQ1cZT3>^LJE+jp!Ag_tzff7^ceAy#p=wMk{O=%dIU`yMhS+19eyR9$`A zOu(lfE!g>if_tS&nSl@=Z`wlWDatJLyZbCBMHH>;9pl>PbhSK;EQWOGP#pgosEj=7 z*@Ou6%f$`8fd0M#`~@e;00J?Unyprb5H_b(Hbycz}_M1nF)pkpTxP#sc4aLq)K_zydU|5G{ z{bdvW3Y5zch?p7VH{eB{LL*zWV1Vg-7(EW_x*PE%kLsW_}uK0k85es6h0!G4*7{fujoaS z>OfENLG;YXq#l6m)Z%e)_;H!U!E;E0qwmRqEuOR=PJzy6fAUS|SAMpeb@2SEBj;Q6 za3CJE1*nw`oM6OQ|D6nvAM07y98^sweZpsIu`$}yLtTOT!Y5uT?SmWV77F58iGAcx zCJrkd^?JAWH!}diFUYap?gGRneNim5NoN6MSMmnSwUU`4k24Ucz@hkVO2gm_rPJQf zonXC*Fj#NPHe3Z8QE#VDj3eLfyh9M|&rYBg8Md%vd_Q!q6b%vbyTFic$E{|liWkg~=j5*SFgw*i zQq4ngIrED}qYrS04Y+W{uwx1Td<;GJ9oe>rm36Q>cWxZse3mFJ77oqX6^hg+{e5!y z+rr<OQ>>1(+?9O_+MqSTq$65^t_uCPkNhU5QzkCF_xvj`?N8U6B6jtb^>3-evbetu@@P&|&5Hol86Jc5(J+?#ce^*%Y<iDsL zJf&fM?}%{2ksA95wGd6~AzW=&o0%5;?-$^MOEKWYt^GHmrTeid;B`!#DTYjBKs+GU zztw@<%;R>wC6FLJN|>3?E&$MXc1*cG=lKMXRCwobi~P*AJ-AR)^?#6*9`H{;-W46@ zMY~u+y6P}u9L@{mtNyw!|DE{)!GxleRaHYxU~{}=4-l?(PYTIMOUIns0DjT^dOgU2 zHNQ?wNO08Sr>H~nq&Nh(l9-&*`ZY1X>w)^)zX4uA>>=5a`an?gdou?_i|*zf?KEn(PR!cHBi3lwDY z;ehSg9^FZkbU{}1LIGXOye>7|BThNE)FZL=7itdJ|G;=8@hPOCPV;+wpr8oebiF2j z-51p97O2x<@bf7{0jWqxW+meeN9FkaD`1_Pl;!2N#0XsQgLAB1bJXw`2F^(eBG$(O z8O9*i^o<#~yfhz-(1R3>5CicRt8g2Cu&wK5z&I2nDiEdY0*8CHtneo2PySNXnVD(X z7gw*q(?4j^Z@C80!Ve0dzkh9C3}TO9?T1&tPJpI%bpF5gk&dibB#pqh4GfBv8eA?9 zK_YB8#%(8}0|9s)SY841&K_`?8KNX81^n}A>q1W3O}M@|)53?JJ2zCo{;vUvK*1xv z6`k~`=LQ*4d0gjTdHLY7v$K)9LA|AY&986}@Dae4A~s5>^pcGM1LS7;ns>{lF@jhf z4FIKUXlHpUjvs!+`P#kpHec9mrGIoH!y;hVik2TnKKt1VpcnMj2)1(a)2`KY5;(?> z|KS+JR@;CncPve&^e!eHVq3RzYqPpvRy!_{wjTN~AuycuqCjBnWQf9-BN@fw+|!U{+%I?5h5vNTNkhg3~Ht+f)m&KDr$G*5GxnRKT= zq^wMHLoE0}>-4`n1S0FI`~7`y70kAX%#olAIc1s88w`a(14dOHl4PxFA zTbsZzj}m`rsJvG~rRbs`JgP{8?yt-=2q6c;50R|`cnAX6Re^G&gqSBrSeWZP4~S19 zPeFPTDl_)K#P|Q5-%RgE!KhNRy2l5+Be9`>zgHi2{rz4Y2Z6P<+?I_-l)HsxH4O?) zRdDeE9|gPo`)@+#Jy2m^lzkO5&{#>CQ)> z;55P``vf4z`|(G}Lu73Zu?SwncRP3^4P(H&i7;sEU4EJcy_oDEKl+4~<;gfz#FkhFy0^jW2B1_3 z0qMDNkt<}IM%MHSaI0d{1zg-z#4y0;NvWk4&Yz)V+bIS-gG%^^-AF@!SKg|36}wix zG_N___vZKGfjTuEMZPJ_tDk!} z5_@x2p>UnApnDgz!ff(G`tzH$YU!|<-K+2zC&Kx5xd^3;SKyS7vDMJ6yULnr^5dl+ zOTj}S2TP=Hw##i?k{NksUWq_r?O{KO*>)G=HnA^ipnW_u0-?VlTuwUoWb<*WRwIJ- zpP8wmzJoNu9)Na%I%3d(*HJGRzzZ7#Fl~esX_Hxrw8^YLmiG{WEDsbldDt4VTda@P zy!SyqLJxmHacPHy1ipJp4Z{3D7ho3n`BF=Z3H#mg-3!U@gM3dtq{udN42bc!RwMkX zr!T$`gbW1@u~Q8$2ZmP&0^)f05^F%QZP7$ZY9&CiSgE%iT*rN7Lhp`QspiptRJp0D ztbAL|{VSardSi*A(~JG7oJB+Ijj#6x0ICwR^w^oRUkSjcxwE~r`5Hwq!=QTmw%%2X z!ze&s-A*s)l~6@`fL1}(J--R;Db=pP7*e!^I~gb zFYb)L3jAQjwZc)B0Cqn25MDd^3A&zv)6Q1k4cc^cwven#L3rxS71;P<2oNcL8|`vW}WGpZJBq!$uU( zkzEjsCzO!H;x?yo#XIt2S3g)>M7=;p3l#!#h&*hqqgI-+$z4ajxMGGu$58!7w3g1p zvM;ZVaTF#im2s*3OMNKZOrV|nz6|K8yj(g1Kc7FX)mq{ASxrXj>MD!zLOhcn(h@)W zR^n4_{X^CO{C8M$tmhle7z7NodIx~MD>Y)~p4e|Jw!ay*zz3V&7m4r=WOtwHITaFI zr%bEo;i`Vpv1*DQNCDtBU8igv0)^X1H>_FROlFZbQ})nVxz^URrH8tzAL?1u#*vHq z<~}&%lgV&;4(((gIgIx*MXz5ALPm(z8{tF9S)i<*MMOj_r7%b%{rc|rtRH-k-+V*A z;=w*oz@7LbOqbaYOVA+rs0-N(p{O*}4TA@5!^M*s6s)#|X3Ye5zEItSLgzkS^!l6- z{{+IiC_z^gpf@l#7JVBpwzuw>phJItxR~b@Au9C^SQ>6SdxTXjZelsXs7b(^&hg14KQt%gYrWJm@FT@b;P|~@8a87dhUtEduCc|6l zSEP6cd8j)Zz&Uei*kl+Qv8K^{PoQ&0o5wxqP&{3YQMch4CvRVp(|PMTp%F`t%!$Ij zG>n~0D3kc2z~j3IMoJX%NBTY82UnV)>*0`zmdyR7CA<~rfWS(4mn^;FoyPHgfVixi z7XqBJGC47Z#Yv>Ve<`O8nHc2{)3QAD`{tofYI`M&OX1)LMB9yEj)v689g|b9p!1-% znt?ykG#P{$`iL!NjJtp(4YvY#6wzL%8{wBj$q=IzIrupzr5DI?!kMHRVjG?9Wg^B( z5BU?Z-hR_vl%NvIQBaj*~JGBU9x3OF?5N^&IooMuj)DzFW9GCkEJ zBDMB0I7o;1Ws@?DJNcZzr&Ir#zz^v;ZVj__W@{QoQm$c66%41QvBfoOZNJGkE{Az} zi+;@Oe&<;d0jC4CHz(7XYHDge$tOy+F_1-^>3Y=DX4m=P0p4NVC0wJ_q=B%cm(>S6 z$Rw}uwaBF-CaY(4Vd7!Q{nzdHXre>i=IVIvlrHza`TVlG=Fn98My?Z@M{;~$fnQGC z1@O-2%=q(mfk}irHY8yGNCbH^dLzjE0c7e;eW8}N-m3%K+QaeWICEKRVup9p(C=-! zBd>no4hQ?2(U0Nl(DdA51wcA1E?_5i$60w2mys8>@_hi@BTG|?j%klobLkGJCVVeX zhj4v=ObOfd4@Zx#s|lR4a4dxh95!xzB1RUjQebX^)mlA1LSsI&kgq4mt6S3>5t`Rb z)aZ#salXvt_V=&R3&7;?HVJT3lT2!fjo$IbrR&*qX_Dbn>+mrKJo; z?7dzUn`<{Mpfp8qCqkRc*)oF8)mAAY#21N`cA@k_Ggp}ejQ3DUEi{MvGD)0&;maVA z_3>KsQ*NaF^kBt{rE&e3jNE29CQ5x1w)4&5H;^WlC(1ucQ#awSWeITSR}(#S^FhAH zNMm%@iCM1<&-;wAZmXRx&#pFu022UN-RangN85!QTC-mLk_l#LK&e7+e)W!{u$6=tO$5$o6@sQj(UFrHU z2%wQV4Q#zqg>Mu@#MgIRb^tSaflz|=jgF24GK{KSOjRndHcN1tZj4#&Xnoah=xaQRbm%M0VLFq$(cWZr z&ERzXXE2q^4cjR&I*hsWQ!_)rf22bCJY2tToM`CGX$}*_99fLWp&c>r;_f5F**&Ygt?#7H?8xk(&b1foDyET-0Zr8 za23n|SR0_jGbYuX-j%TA<`x7F>Ol%ze^&X_W=zUfm4)@6WsG;Ke%iR}R2iUJ-0X5Y zf7Qv)GLcU4ivAV#L1zt!fetJJJK* zZ$J}HJH{{2<9@L4l0{Nc+K_U_$RJSdni^i$g%35%)@e~Xlx!GZEvgH2jJ!Mzeqp6k z*cfLFL6zv^jB62}yEtx`oWrher z*-ExwCrRXS+5F(rHOHLZYeyav;b!L_Ia!F?=wt5!i8t#})WJ_kILK00#}~Li&h9EU zp-ZF=83?7|=y!P#VS1kGQoNbwJdw-ax!GbNTy!{3FE8ILWIJI4hNCOvQ{T}2rYqv? zEvIC|En@oe#&>GjG@dW>YCLWJ?qHngwKbJU2a)?+%^KxCdrHwze}{UcJ0ZED4bR?j z!i39LFxCg}=Fu3FYzJZ|y84)ssI-GLX1ybhjl(Z5zhsH+@sRaKXf%^wPv=o>-5zP( zcd=2?eNivx@~t;Epp`Ry;<%|_43EdV+R<@eW^HMyOqaM$*TTpA?kp1LAMq#pveYrp zHLQK6K9PAq$^>ifrXP*j#9aQ|L=7WNRw5SLPhMA1%do!6QuoTEx$&j4ro~Og;ysox z(@X2sY|riqi!@a2GfcxIaqDb5Ui*sUWtWm9H{iMVonCjB7- z^NG}mc}2Q8-@@ynr=)Y&p=)oEW44uiCwnf&tSdhkEx~o5Xf5yZ=1{NVY`NFdYq&QM zw2P{BW-()`84W`7X>FoL+Rbe=t{H{c3b2mT8Cx^2r)xv@NFTS?67Jzi69I7ZCs6qK z0d6tj$@ogD6Ma?=He|CyQdNy#z;?&$y1-lJ%#tB|Me4TK+24?tyVxR4l}B4}5eN3sJQPah&OP*j;w1#~Y>|T9egx9G}Z&(HHprK(LvP`&+}bIFZwd@h=OGEdj&CLf06K&;=;np2WDwjM%W1Sl4M%!CSM08mvQy!@LW+-MYwoEG89`A9twYfGw z?%aVrUNn#!I3j@8XKF|Qu*(uF17&zyUYz`4ul9V!f_{^(`25m%bmx^%Vn(HwUEC}v z;EWz`zo0|(a#S2}#9vP+g`I4e?c{IGkEG1!wV}S2h0!wz3M`mgPmcuywb6Mg-wJS5 zG%aBa;ENypo@yLB_^^AM=(pPl(T6Qj1~|YCIZ=)1-fCbt*3r-;@zX|W^~`im)$BVT5c2EbFrSuCu%f904ikj{NVBER~Z$> zw?7t-DSJ|m=X@Q!n~%%gN!%*}d>_;^mu=;Z<#T0>1|!NS=U2B0ua_EceAc3qFn!Ke z0@v9*2jEZEM9VwBcDp<;XZm&U=O(U`6aHjZ>}u1L8klv26q_DI}H ziycNmlonLqOqEM%ck^@PS1~rP?Be4pi(kA6TW`TY(Jo%fH=j-o=7sRyfu6+~MV>5~ zOPBGn&N~Eo)^Ml^%A0PMjBj{tG%UL+RgaHrM%oOfMCG6RMd^4XyUg!z6EJpcq#yzue3y)9h+Gsb-tPn0T$Y zQL)`rhx+QBGrl9)ml4Klz~B@@p58QxN?6pmn<25NJKP#v(k3i5_UW3l+lwp{-{Np} zy;63zYDJFyE5Hb9pDKGt#S6B&_**#pBrhs@*mlw;GjAjFq$lMBPrgS)j1`-+eYp$0 zvxwf>S@Kes$Z3c>uZ@vYS>YC1S$l^ky&i_9u30yG(5LZlv=Rg^Ek8K9u@LtyqL}%r z{@UWp(cz6+ER#e+XDa&bjA>d0a(6>uVS-R@cxbqE zeD{$CeX85Cj#cP~)`oAFbsS%Ma<+v(MH12}^eZsFjpnhmieyG5k{CepCo|2bsQvcK z+8qj6Nahd$3f)K{+?56Phw*M;Q zQ;u4)9gtW0YSnh5bTd&3bIlB>*3@-!{s~pk9f9?+tyOpC+llvcqGTh3lMjs?g@zyQ zc}Z3mWU9DULak)aZam||RQ-0p#mJrgQPg#pha28vW}cm`v*|n z)M~}LlZJP*i^#9OIUr8MekpT9W0-U2B7L(9p4$IRozJi^Yw+yE{EPf|`?@l;?WFtqeVvlMw%900i8!zpd2p8sAajqzB#QQOrsa29%5~MSK)-|H zxb-xT^WUCh#utDva)yoJafo3hTt>T$qedA>4~DU@vQoHtv|GA`KA(^}DlDv3k;;NO z3|B%7l+}>D7!*C<$|G53&izKM)iZ_zo|$sqS%jliRFb?W2AP}2v`WOK#I2+cYQ{px z%IWPP0-H!FnhkK8yj$Ry#ZAiUW_hstn zlp=?2R(P(llFsn~KLK~MJx{x9IrlF!lh(D8XullJe9seh^Ng>j@wxiSJ!(!g2R0%) zEwsureYtS+GB`R3@#Mf(|8Y5jVyaz9kif0+={1)LtsBz-m zW8-I388D1)`)q04cIoIgVIyDwx&-BgxL4Djxjl40V5#oJ83ZTwOb+0yJDw4qffgor zBj@8oG8hNRm^vBHW`s@^E;uQoq49B{O{z~F1GsjP@vq1B8y)gTNQ&-L<{SZCViI2# zLA(JxXm{ww5XAH5D!UEE7p46-V|p{PvrKp{A{Ww#J&#i_RGmGNPLIrvc{{o$P*f~p z8`4Rz&96$yHM(K^M3O2TdI@a2C1OZ_B;KJs=I|p4MV=XAYkksDqxD9@o5tfhifKar zPHi8}+2@~S)v#Dq3+h^A3<+Q5Q6gb?;x6^^@GD2|Q8!@F19MYLQ)A98$|m~7~6DQ6ITj* zH2ePin_b#EdnaC!M=P57jWGJKV_T7t^Xf0lFalJG$Up zIe+Qr15YGanttLNst&~U-N5Wb7^Rd5;m&{Z?W`q|)Fg!8rl^iK`w0A{@)rBt#wd^Zp`rbSb+djLAah=*yn9DslM8jqy^KqPq#&BIH@Q^vlwj)_8jxu-IY ztSxnz2iwCiyB3!oy`xChJP4x8;exXgE2CGUhOyMv(Y~Lx_1d5G%cN>v2>Ml}ZliC!o6v}uemxif@qQFcE_`9m@u8yN zf3u(u-LvFR&brz~>+hkE%=;sq24Jwltp&DykRCVjJoN)r&>|Oix8H<>)=5w<{4iXb z(?M?pA-w`(viN{KUI|fY$EXLg#4j^L=Wr!5JKZoF~0B^ zHhr!>XD}u={?GZPwoRynovVV@M`MF%cTXtoAA_BJKSq)I>=%sX4^M=cY5WK7riGuH zV?`_uf-a$g-FLp~=icrOWu5OO;=leSVs#eV;&JXqX@TSh8=PjVii*lp%_FUFg>HpM zXcfqAE&|L^`DbF(zZH`D&!VE78qOh(@Ym~QO?AO~)Z6KG$!ImeX~80>6v##E9568~ zg)*(d&kBecAV0oWKz`aI(w#;44YkH5rXb)L)Su7{-;p~|lu9H0UX=Rz$)KZLfV&bv zd&9zoL6@f005$|C#^kBH!y@dc^{-XK?dE$r_g9rya0ofnqFI>Olq(>(jXxnFzGIc3 z-jM}1<9og1*T?!BB6_qVe?y}c%G+f!004RlU!XPjwiVX;0|10nxBsfJOS2x{$+I?viJA(LMM9uTSb{JZHX_qhqR^<1c}gQ@*lTmRkaZm~L$`Nku@NMNxN zxhKnzUz+(*kpKVDF9}oHtkwcI^9MAt7}S4!$WI6A$DH{bWq@Vz1Hy^e$jgI-Jzy5z zUlEl^(_JEA+Ytoz)OG{YN|f{oSDe!knK~%9;T#~ zS@fI>O&jf-J`yG=0VMboqas}7Ct4Gw(OPO_xZ3H5h1BET~e1_T`mK!0} zdP-u`pJCSEV(g;@Y*q0UqeA=V)PbM!=+4h%E(b1!CnO|T7I;<_pG1~HZACF(O!Exl zDw&>3&9!hy^qW0bazC1}J`VbF=zjSFSd7r8p<{BA-s4$)F54yxg`(;y*nRw7x^|Py z4)0uB(=oGsuEOA~!9$qCaB%OtD2zm_+ol<$}qtLCyu8{Avk zb^6Sav_5R~@G(hdnQ&1FB}J7CrgGb)i%&WSg%f!e>}X}q7) zG|O$H+P2e0V;4x%6P{M6afDC{sBk*TCdxhV0G&U=t_)>A=bAj1T~3TKCsBDaB+RMCO^%Y011p&c4Ninlm!1QX|3CEahr2=UdaXHGZjPZSwZr5{q=>fz z`}Uby;8Jg807dDMTaWMNNwUqA7@9pB+;l%_v~#;AS01|49dZ&th#u24z(Q(D`+MF`$7(Hm{%REx`P1I=g@}R zDJINf!?S$#mQ0f@P^hv)Q%}yA)L$`sMRQOY42xjrStbY|`?ox+!w2QELt^f?r^Ttr zT5ud5GsR|8Ccx}L*hU(R$@sjP#iVu)V+(W_xJ)*7R?K6Bhnw3m^+I3Y5?duRt|+^h z5%Q(|zg;9IbUR!~pTWVP0$JCnRTscUO% z$u>!HH?HX0_~61XNjxZ^q=Gxk^tS4xGBB6egaDyk>rIWpMZXkVouQdIi0J*Itw$Gi zV)T0(o*xjx6ygP=NY{4PeC1LRAZaJ~ffe|cU-2C2AYf0A0mbhNNwOlq5M8Zm;pdvv zfA-sANl)xG9pLT>Z&~IuLzX#Q@MuY+b&&+CH{1om=4EnvXPT&f^at%JLuhtl5f)@_ z<9iAygOaEpV)vKmvnUTQCf0nRmnuqNco;jiVyOB8vCls& zg)B7z1$VAg-FX>;E^25Jj<%U9hu$QsO8_y~BXr4!p5c05hudJEX7Z7JDj)l8pJ>)y zhw)U(?^Z{aiC|GOEoTqe<{M5eu{vb6sn>`wR-h5WOD*?hKN7mw!|lt>uY0JMDs9ra zxfb;?{fpZw5iZ(DA}9|wYyZl$V)Z*|WV3GHx+H=Smye46T&v)FP(1ur@xYcu^X_h` zIO_P&veQeS_TX9BzD$<;VqGS{-3U9Gw;dwWJ`u6w6f!sPGJrMBsxvxR|sfAp&55p0p|Z(H@>EYrh0iSKwbMs3lif`zj=*eiNC)2%fV{kmcAwB4zh zKD8smlE5af`iy)%nD(G}DUjx^UCu~Fe9NISBFc?T+>rDO-?>PawPEjryO|rw{qo#_1aCP9TNs|3xXtnV)z~&bW#2e1y}`@-f1Ou{wR-B zL@T=_@eztU2jh_~29z4+lZQ;zrkwJ4gqOa`oIq z&gbSl}ULAaD+W*i;JXks0GVDo^W8*K;V;9$D zb*NYk3x2`2^-Ur}Y1uc1l!~1YdWiyQ>;s&J&1WlA)4QZbn z{PUt-Q>%_)Z$U?qj5Zj>Q`OS)Bz-UH97H~@vUtTZb^1-QrgG{=Umv0S%}_{?UPU1C z+m%%mzT`tAUlo>@wU!6ROkki7Z!7zUBTiF1)l=#RLTF{6H{5IiiWu_@0n^_ zE~xbM5CAiC_2n)FNL)Px*OAjf^7g2tJnb`eNP;UwDAOS?JVwXl_eX?tfv_`l|B9M- z%hYq5NjNxZW}Vt+u(>R}hMMo}DlUGpU@k~!QKOaZrzMa)m^iILDUVwk$42(!XxHxp zmrk-Dc@2%A#J|c?&uQi3bA5%&^jS6@KDY;_2bgk%+_d=2P<1PscglH*oM>eGQsp-{ zk%yxg1D{l-fdxE`w}20RGt^!lBCCcjmoFl8)E};eguvz;BeT0x(qnZhg041*nc|*m z9xvrc&B2Q2p!eTMk>lhcpupu7?)4;D+)$Z`)i7Ty+6}56g{V5A0tsTbulgo`yjtz( zG8hsgq#g$}3l-@wm0j$=f@ac7^v(H~XuZ$WOdM)ERi3{{ws}kT=?OhdyquW~HtWEk z1{~(W-CP;*C!^bgO{9}hjNYiB_SK3KYq+ zhzG9`5k(wVe9dA>5q&5vXZ;IFs@j_@ZqkJ#rbaH~BVCZo+~B{`>Atqfy%Jk|gZ=MUtN)=KY459h^2a(SSx`jz(L=QgS z*nN}&!aBYF138_b55rS?!dZX1ncecB*1Oi*3x->z!EhA>`=Fe+$LE_u#&Ce)UCx{D z^2EXbVAmCc!oo{+yF91%*wSOZ!`lqVu+|_wjf*UQoD&}W16>~{*NWu<4HKdSX`Mxz zau&|>pPTq8eQZ6`Hb1?mjDLgPu<3LK%lwIXs{ORe1`j@ zoa5Awhky&^PGF|^Vi5wCX)pI5=j_AxU1GMk6x7GSoz3PHT$Cr(Fu)*%J7xY2hea@M z*6qT5U`}GDqszD`e?d43chcMhAGU-k&DHCF&=&~ZP&OWkTaanE{`M> zYK}7U!!1Cu`u49d6Om$5Sp#9~iZNUa$iAmhzvc zF+#7RW&mD12Fzho}x;=C)$Y z<#NEvEL;#fy7Cz}y}5wvk^+ZkpYC1YO|WGN%p7 zE8+e&(fMvk2UPLbq7SSH7)bZ6!OblOR?2(7n8^ARLc?OD=xSuCK=%cS|8$hz>P%UP z@mMRP<8_BE%Ls(;M^+klg$Tf=)5h@C!}GAXUzG}IUxDQMv$HU1utLnU?Y|DT^N&SI zR{YOclrjOv)`r;l{9sHbA*k&?W#mD#RMET85$?z^ih^) z;;a#YLq~zN)iwyTX27=~_15xR^>14*hy`=J3?-iXqvxIJCH!L0F)Frr$AbOkSnw+m zFp&9f3U24%O~DPjqC$Q0(OKV?*RsFK=fMLnykE|#ONS3iwc)^I&M_zFQzo%_A0z(M z2Zh34r^LPuQOa%8d`vp$22OZB)MtE0_lFO7L<<(>WW!C7BE%c#Axlb^$=i26Uv}*c zjK{OyaGyl3qq`a<5SnIx>F`&}Ls7NV7wQS!@bn?P`TS`)o45;*xFa7~5IajN~aZBWcmD9=AYwmJD_=(`>w>p>b{eEFe-i$5%z*d!i8 zv>Y0c`pTYNMv;$V2oF`pC!@;WLGXuYb7c2-6@>M)#e)7BeAmBx&oabypCGfqSGB(D zU*jN2@@4N6a^UoK81`>sr>PMVmDp5PRVARYCHtY%4+7)4&w#hS7o)L8#fY@fKC2(j z%)|!oJ11xQkZ7T(9kc+)nb*1Cd|)Nk_SoR=$}h~++9HUX7I2C5^9OYm>?g#nwWBMmsAcxBFD9KSGQQ^_V4M376jOqZ#SmxI?!eIDO;@2C5K-wN!H5*|W=d zF-3=XL;DhQM(I*#)^r)xKk>xyp@Fr@%%)=$mtm73N3RR_M=_xCf;pDzBOJHcfRWmF zl9Q8fW{f?|e3~z}@?fXizWF(tt8~qyF&Unn=XcBiTkge2((ilKaqFBUoArm{v9Cc9 zE*)3qeTPyXeL@5_ONbCgI{;yCaQMPQG=Ru%BNHI3v)?iz>_?k$TQ#RpoE!-oJwi@^ zPPW!BRs#@iX$Dvpdi&Wxh|Stx90juLN2)YpNPt3VIoZe%F`fn#7Gcm%;*>&d8ohj6 zs#j?Nq+yOZM;!#$A9VZyG*cj8yn39)42FGB1AS@nLFUEf9#?9TJ@&Ha!=%RtuE$~x zk!GPCzy+#8CSJuHeZvL%xa;^EsW^?rne9k&AdW$1Lyae<$p0y|hvL#7)hHSzw;#*!<` zHy~x+(DJg~VJ(NI+7Shv&Sw+K5vGA;LyZ_-+W!}MZyrx&yY>&WC{xLhu}l$VtV|&m z2}!0>=Ak4q&ohfkRHjnNtW;DoW*(MMiex5p$UH9N!m`%yxZL~R`+lDN?C0Ij^M2m< zpWi?C-kj!$LJWvLBCqEPHa7PV zReEtB;H)KFUEm?%HH?Bc$CJjc#1pGVS#qCyTZZ1`<3_R}1t6y_7x(i2uO3|47Nque z))Fk*5KyTq2}pP1hvBGCQW^rNlY!mpwuL}`CoMtBJ#l=ue%^<0bgE3F5p5DkATi!n zVhqQSrq;#z(HWTV{4_ZY!$1(V5Zv8Jwva>4AzF=)hrk@%R%s(P$j#f9t2qDw;p4MIsjIcI1z?9|G!Wx3gCSc}-EErHL90P7AIJuwe$b(ef; z00?4WC6n?XK5*W_k}fx3aCQ`rm~ds64Ef`5h9I@=3YH}G6qF`xpz4?|LJN`VFg=)O zxc+{m@dZZ+hcmOUV0WeA`td(sX{Jyhra zrufi<>^-_pFv*cAm%CMwOlt5RglMWTVb1mqO28^P(ySvOYpSS@@=9>bI)FGmm4fYn z(@6p%TD=z`lniNuLum|B252Zmj+$i6HXpB*UY=;)om;kh&P2cjq;yk3*#NBXdU{Xo;%-UPsqBg=jZ~FFGMQ|;l0bc@tJQyG{mq^PZi3B0w1Fh`D z8Q{&u^grUdIUmr8=nv%eSOk3D90qo%)S_Y61}dTLXnIT4`f)gJ<}1e6wuz~Ui4V*l z+GEega5S$gfqPtM|NaB3?02N%x`+6oxp8rClr|Irnnf0SU%{tbNO>!mTr6ytY`+fy zTvi=wyv?tWu5D+a9WW0}oBUCLK-gckdRCMQX?q0d0?}IftyoZ__}l1w777g_#O8h zAhvF}7-q`BW$VMW5kSKs8c39LRUoBw|NU!*PZ&BXsK2cuC_6v@K>VS$${r=ul6Lv^ zh0QWzM}UFuq6*4UJL@GE&w~x0C5aYEesxes4k+E~^LPp&*d{Z|7Ma$bu-iRMCy|ZW zl1@cJ;@j;XMm^~Pd?`pq#zD!*i9|G>{wuLK8d4GUtHqrssfcKU@0EAOTwO<7nk?2& z^?Vbaw(;_JG)%DPG)(kn681j)36o!KBbEXvXs3Vq4iJ5IFA|60A?UMdAHW4RWaves z$^jw-*V&&(qbw40{0U&Lc?byEyRsq+SP~Kc0CASPhma__EEF@iL33kijE8hOHPRi* zsrqfb>Be^OKMQZmKgPEGy~QJlxi@(q~piA@Q9o=o=80r?IkMkVlU`7FY=$_X@Z-EgGdwWvZgO2QD1 zkj1#w?CS;2H4|r$_F&I$Nm1w#wAtE5JeUpxQyr(I=bn5^&!`&cBA>s>TP?%lC=EdL z%-0#@E$v9BU>A1i@M;nEvV7a~x~F}p`8UGNNndmwq&QdC1n!_qpd{ekM}8a8I%z|= z-p=9*=GX=8bWHiF8)H$j&N__+fgf@g_;C3#LD_O?ioPRsmOtGpwR5*EL9wYsuXv3g z-!gGf%lKc$pFdlM;eaitcz^pPC5a{7C(Awd4vAU!%*lJXGZ+iQGk6@aT~tZ4*$*{Z(BZV4IjBANgTjiVR0n>o+f;&k01pl}Tpx+@4i-B*nc;}E z#>i`lpj%pp`c~JI_F>_6u^$l@8LcYxe0tkh_@iM}cS@@Qc+90!$a5BmqX)Sj4Os@v zJn_(?1%-tX-^5WG9=L?B;$OjM@t1-U5=-j zoosDI?=QaC^(fhR7!UPB$N3+>T*Mvh?S-FpEI*c9fct=;+(Yc6oPU`wHDX$#M9Sr|o_5i1VZBm0DQmV>6mRz#-+cP!& z>8x#6#*Y7X{D5xyqvUJDfjKy21C3>WdrIDnqkR!~Xn!VK@A)6{E{;WASMx8rcl#&5 zIR#vA?X5VM1P$G}5H)uhOq0}}QJF1=9cZCidHEYxgZ;%(l6*wWTmyZrCR4Y9i&- zOlAWMT3a8Lc=5? z^fT9hrg?FvoVPt)R9ThDKU{!4CZ>Y~V@%7K!IrGxwWhSgmDFIC>@2$clCA2P0J&ee zZ(z34WQ)@FTpp-de9n0wbxJOlvFD_mD?`)N-cMJ34nM+Sk;`G*2oQdZjcz8`$p3hH zcXI@&a1J_!YkDQ;5bxT#Bbw$%-@fOnz!hwLHB7^EdSXISy!(#(&y@9@Ge7uNsB1)RMe}*jfvhFP2T~WsGY)?<@Rd1f6cSElUwnt3d5z# zjUr>#=C{)MXsVNDpAUGX8~bd9nqNy7VR6h`c=-6v0hxE>E=(^Q#s!0ZHQ;709h(-y z8poFpPusTk;{CDjSn=2f1DhL)d|)GtrxxMe#$_arUPXkgy(aS>*N zQQb$Q*KuA9XYZ6Rw0UqHY)#MWr)RL^Y9A?Cpjav{srs-fzsiyKX+po}bjn^Y^9=u0 z-NA)d+iN|g(1K}5xj8GZLv>zIP;m5=&AR}usqM>yOH;~c-I<3b2&{Pyie7m&dlg*M zH*FH=iO325;`WV&yxGezAZzyUhr+eyG_$8|W>j3K+gd-EOPOz|o%d0=A+z=V4%JM@ z@ZQB`>D&p;1ODdI6lDGquejQ6W(h`0(;F#1<{iWR(+xx8dcodE@rwRmtq^w0x2L*@ zI32lTQ3nE1n?_evio(8X`p7lgyi#>C?FQQwW|t!lvhRw1S?+8)aFkDH&y-YeN~e7> zwab-kl@=J>FFmWj2|cVb<1di%AL$eB5m-J3vgsmNc8&-646*tmg_< z@ldhOJZ7!j>BK`FLxG=CgGNSFH`<%>ML48%4EJO?n}=PqIan~uO?6dAR@wPLr|4Sqv46P>Yh8#a@RY58CN%22I4-u?Rch7L1(igYXV{7Z+b6f z%DIto+f}U%_AkZ~hjh>jK7QYO(#V1c3i7uKf`7)zio*XLIM!zhJ<@N{;5D={VSk)Y zatrUmH}a2}fU-LIY(oIxI{D<1q{qw-ifGkrgKQ10{$j(>q7qJg|=Z<(79`*xmu-#tMx-}N!*gdGb6rzWruWOB2oyoOK zh+TV{TRjs4bZNZqVh18;15!nZ^{Tbp+9Y=LfryOA#j^xgsIL&Vo1`P7wT&tNdLp@iGCVdgY_Rn!f3c`>kHjC)bY_Fy{<|KAg~y zt@6&4kRj_`gnWKAdvf@<<0e?!D_j)GTuTDpv|bviJXgj2#E~=W`7u%Bj}MXV{r=LJ zAF~bQ?_wK^D%ksJdB8kAja^Vn4`6x~{##kqtO4l~Mk@iSS=HTo)D^^iDAy9w%=8%_ zQwX~ycJtHV>S#r>8Q`YNb5~&1MO;`;^F-xlvrBY~SMF{ho(%&4oS%CupI!OFqx1ku zv!J!E=3B<`xdGx+LlpMbhdwH4T5+c}{#c-M1D(Im-X-pLmg1F&R4<krz=CK_An8#8RG>}HqBIO@<%{`=@tmDsjRx{CDs*YjZoZP^Pja@y& zqv}ZK>eNg7&~m*X{XL8390P6LtHb=buy3q6l%;$&juxA5O^0Dm~M8XU! zM_I%;6Q8Xn@jO1X^rf&?cEGi6>6MV;aZw=Di;d50{f691ra(f(145d_u9!=xWmry6^O5CYHx`)Fe`Do@lTC`SOoA;lJ^(0F=O$JR|M}|1N_bDVe_nE0LUj{fVmxW`O2%NtFEt5&{mMs97ELyCb-<=ZA9ezI zg`EbnDqMC4n*|^z-X>jy5jHi^^z zmFiPU5|`dytIj_=i=}U1m#F$K$EBSib7&UsR)e!AE_SkF4Vr2A|LJ8GL6tU!ME3a% z2aP4BLc8=@uT4BxY|%~WS;RUc{Oa=^dFU|g6Z?PO>APTI71-vqtqKO3OT*-0`nv>J zlB*PW=VfsH^RH-E&k7O*4uo?C@g-8P!bYs=yXBZ%Yr(`v&plg?9n-8}Ok9*>Ww&YH*~`+mUsxn> z)bmqzcEpJfqB`wrZN$8X)tT0Y1!skqV&p4dpJ%$S$tDu}Rec^U5_UWVpqUr+f!-Y2^M|k0MB{$3$-{k5e*`yad>B zi(fOo8P{VeIA3T|W;^i_<6PBLB1qI!l7Ievcoce61YpMZy@(*~Yc+jvj!>d}jgeAV zCw^*P_VM0RwLMk3|$f! z#qObf$g3wuUJniz>I8*lJ9k!iM0GnRatG50l7N{$!zj8Iu-wS|?=D5i9kS73auL;I zqiBlNXGa)GVtPiDp^Y@W#M$#FMu#71#1+CLN}Y|PHtIi15E^-Kn}NhgfAjA@Peuu% zz9f1hjFwMVE8bjWa)8n+oq(Pt8q)d&jdjEU!J`dCNNG=>N7;$vJ- zQ2g!h!>jz_4FSSHBf|rH3t83c^Ys|IgRCm)?x+ZoJX0jz=Xcw0QFz3tRsmFZF#}1n z^d)aS=I$MiKc0VgDX7TTj!I7-UW7pFk*zs(3O;PSir?fZ29kp05frM3Q5iOc{(reC z67ZAf#A<8*vLebTSUuFMNWKVCm`&mu4M^8dFNf{k@06I@ z%$X}?Kd~50Q-$blGD>>^WP7~-zjb>A>Bz{+a*Sca_QOUOK{k2`@z(#Rp(-CUrbamv=6+HMi58Z$HEK{n4Cb#)vEczl( zlSsqWfdxJy*YT78ZYcFMVVzE%hI8DcM+fn+V=wOsCFGghqyOJL)BkpT{=dix(*EC! z6_an%pn@PO`3T*|FaC&@=KC`o*ZhRY+vH3hK{~a32QR^Ypc92^60oB8+*lY)dC-OH zCrq#AS9W|cdMil|%bz0c?@$_jg(j@V3|6VkccS_}KJ8(+?B9PM8RZ0Ih?daHHKrW} z=O-_o8IaYz!~ibtmxU?anNCna%uNXU+ytqD-6TWfk2p;RndYrDHE#GpSlC~36%E9B zn%GnKc!`p=X~LX1^qxEM4D2+aY7)in4H%C7dm!UcK%jmIRuA=9I>UpJ|HC-X2$@PP z>mlT$FcDhy|6!twfE041Qw#=u){+)G^7fWLxaWE~B)Mj$b$5FU6392XiLT#9yE3JErvEhcFnqg<*Fr9(2#^`Q2 z#fbZ_?FlZk^~bjEk^OEDlb)N(Du4?-Kyxah)6vq`g`*;*eW&! z^Gx-mVmn`J71%!uWQ?T2-h9EoR|o705MO)6AoHmQGmvb4hngr`8B+=ny$I%(mWyUk zZb+6}7@i|2xI&qdN9_eWy24fM(|=#(B>zxt>PHfpF#i$)j+pB!qQhCLSU_qO__uyd zN3HSX#fSS89=+J=I(W;km7P@KvzT)e`;!qOSV~BANx;U!{>8vag?}k;G930yxA}#$1fLf&-{rTmv#@U~d=hxcLj7r0 zPkxV?g79I-j}!+;RrcpL`IR4m**T}vZW(v(#R9uJySjEL2lYW+A>Xi+tp1=*~iIIW#DZc*mf=00Hd&YEi28emwtt7@;Y!s6vx>*dR_tIG?Z5d~dz%oMFsr_IB z_xYexX)H%Sy55S9<^?Ci)FZNGtj2RkT38xo4fq4mzn*>M9K~p+Ge67^baj4A9eIK} zn}J+Gc6!ViGcPlWjr@%i_DIS6kKY^FbByTZ%d>yB&Rkl*FCkP}nsScPWNarlH`lPx za*i5Vmn(cBcnO8e>xyrytA8Ze&#lC#g!cALA6D~wM6iXeJj2^svdYF%kKu5l_|IX` ztPpQl(OOTV^ThoouO3(Et+)DvKk`+P$Vv;9zJ!8G$1vO-+}&Td>{lf|i92AA3RRbUOba?Fdr!dGTT{2u?hI4Nhhi_{Eh6 z0hG~DU#A~K&3L}|`0k3{Y(GN0xW+uSa<@3xWbCIZL~9z+^@c+g9=@NN3*;$zTP4Z4bmuv^`aT9-4WAJ* z@`E2>o*p<1Z@llX*(T>otOFM6N@v+o4C|$yUUBEl zmd8c&(*%cvt{02fg8F9OE_<3O6H3~QhfcxAlKu}Ls}SE4UzU=kq0kH$7(Fg>uSjjj z?8YB&f0)`}qfG@_edPI!pYDA0x5p$j3h0@d&OR*Y%O*Niv7hMF-P(S)QBZORZz1SWJzLVu4cy9}bYhn@W&Ac@$L40%cMoziDIHkRimHY5|M=)d7c+;HZG(HMnBKmt9 zK4%^j4F5PtjDOq-EE6P5f>bOWY6Pa&J-hMc#Vs#8!$qns#lG&L`V~$YpRmkMv$03+81jr=P zU*WbGeLt#wu||42_aXCR;%m!S>^|?WFY@Ink}GiZ4Cgmt7VyK>DNmN7gV0bA(e$R% zBWJvw#>n!{Nn%IBe#ZNNYJ*q%PfI2&C%ipRNKgin}TKL%@ zsPo!5(8U}oY1vyMWOY5`2F|73GT;+?Q~%^+AKttRlyeKD$1#ekE9VFYw0-mE`#1PU zF(;$5_d~X_>V?SMBsgTjJ&H}yn!Qwy5n*LrSB3@PIx>n?Q0O*Gu0aMY2o8A(ke{+J znI_R_@C13DUTsxn8(xwzZDm030z<+4gfSIB49?8smVp2SmSJP|yrvS@=(mzIJU7hX z;3JNO*@kB~hT@@#N*BV9e> zHv!*a;jd}r1k#|m*h0AgVA>^sXUh!0sA2^1aYMixr7+fICL)+M1dj3MW4PknwGn{1 zxcd%_am%h)@X+l7$`D|U8BAtIj!O7_t4(^cL_#2WoAcjUQOeT|X)jcGiQ$5kKi5A59U-!feeFZO;xlc?yN;vt<9x*avXA0w zgp%vmt{s5o9ppPgtSGc@Hbwz5VYn7i_k}pdjsU9Fms-@DEtdgSBU-uDm7B`bi5qMQ zoRA!W$+ahbDI9$mF^BLRXe52`2Eg1s$(A#c2xwHYUxm=Z%MloQKZ@xywrl@1+E+52 zjQR$@Roco)`mr#4OZVJk+EnKxd0S5FL)s`c1|&t*QcvMOB!#a!j7(emUF*uOmWLwX z!9UfCU?mthtz}8e19mH>CFu&A^Yj=+14GnmRz@@}GCZyWOz1rXOpG(;y)E!utq<&&+ouYy{EA_uzxYqV9E` zHL)!{ha{>&_eK*2BWaX(j%0DTH$Pl(-mdR_h0{NIzfT3aSU)eo4?I1e>IVU?!t37r zgQwP4&hnjzCmY3xrYeB|DtU5_P!$r!nb=bHM0 zM9Y=Lp1Uh8XiR~b1Q9`Jq}@RVAqWg9a>ya63{=5u5t#D?U$wtQh`0qJh~Av19zl}1 zUMDV@um2LCyM~(0u8;WT>#l(Oi=o2eLYM4m*VodL0hh-eTB#1o|md8MzIu9SEtV@*ZrDODP=SF)c5@? zVsX;vkUxGA8SV1Axu{a!3Tp{oFC2k^LfZ{9^&7idWDCRCqEi3#iXJ?|d%`2x)r2t8xxmX-VUakPo^Xa9W^%Q^r zB!z1^f#zavv}Z8VM|oFEz8OKTEwWet2t1j^ebWiX72fmqL+!IsQBetbMMXskHs)+o zJ?*MG*7D-?-`u*2KUlZw#VN6wXBM|~tQNmPn{GM&w!=n{rXzm`L_y9gi9Vsaa~kPq z{`Hbr^4T2@RVTJC&F8c_c5R3 zKA-y9V8cta=JuFmAbH@HCQwMY8%fB@o~Ju!`5=*fCNrRaDxet*z(mXf=8HVSx7t!R z5Nn(}_vYIe6wB*KCu96BUS?60{56r}LN5`}+f-W}w4G@40Mn5)bTAksp=DM$TSx;Q zE&BoI*OW98TD)-QK52T~#4@D>p(1oV9Ly!H{o=I0i#5E@*;4M3X(yV-H_3BEc{pHQu4p`nROCJ`waSSbmL2&x&qwSyEv^4g z`RRKI<=hCCXR9^*_5#r*X^uX4Fq8yvblJmRo%-6(y*wRL5Ny$@A?!kI+nz8wiORe( zt917LYb!ZERU*4o25>Zc{(*HDNM5~B<#Gzst|_!f(G?%TAN^c(c54(e2(51La$Hgu z21b+82c#Fu#kyCR^JFf)#2XHlQct%WcTl!sp*bHsD~YYHu71$9Xka^ti@`76bv`cA ziMXiLshWNYC7(Kz7UUeRw3t@_cfCVQqr;zg{#pv}HeNVl zYY;n~C5Yw<-)DKN7QAxl5S)D}VY#W!BXuSDjST0I1{rHp#;cy?NqvSIJrOs~t*b01v+Id>g-q`uWf2J=Lr~11GO|T~9CPBP#IUP@~R1NUp#dHT}Z} zLaVlCxi*MDz9}}gzbW-3!d&1SK0fj2%%0GBnyFIzpuoW$bm!+_5h@%uNcMgv*Ua_Po)1S8@I9*DEpn5|OW@q}woKJ>*>Y@|Cup^81jd$bE6T$X z09tOA$pQWh0%Q+9WdJb$0cM0qrp89*>HeDUHUe+HSyqez73sSOPCL#Yp&&Jz{OzpwfKIKO#F&~{+c~#n6C1_5<&^eTwo?KU6+4rSoIv@?iS6@e7lS8 zERa+xQk~TFGLk!0s4)hJf$>Xs!HZqe$U#A)-l?N3iG z1bT$9d*c>AS8hK#<%O57fL~O`(Do`lvP6}<%5r~ zYufvFGA!u^z)x}nj$hD9@!%B<(88ovW?ZLV)W|rt0FG{P;$^6~%oIHdK*sSSkaS&I z@A$0kBjb`-6+!JJDzmXV%CB`^zH{&JvQFQ#d#vpr^YaoJDz*;JujN7JjXIPJXi>xDu*BaWoF9c++v*tGw|yoSC`EV0nh2o-uo;KVC} z1|h!f2m{QPvNA&PK4kn-2_eXAiNo;VG4Dis1r;@d#x3#d>efpbz%o;3rUm<#f)$m? z>?_>Xn)2{N@p8LmA|3c4AT+M;v}E23^g#1JmBg z8{aWiezPA+WZ1Zez*UNB$K=wmMoFz|G|zu36C^G?UgIMRRila2&Vj117w%WzBt>6%=o;~*tpJ35T@B!dwb z%3DRZy0B%^6KUj7{3X}!_WORBe8%dWJ$irBOaIA2w&X6p;dQ)4-@sFZC+X{Kj)3Q7 z##Xh~p*k3m%tw-FqQbV%d>_llL6Mx&BY_JZX-Sd&=&D*^$8|)mxU^6rgsP-)l1{_a z8sb<603gdf``0|CUW7XbDcmB0$(h}#&KX?&E8p8&N3C`ul@taZcE>6Z*^YkQLJA&v z)-G?=&y}LQ#L2dAB<@i(hTec;r`=$bXWCL-DQgeqmVi}5Z*{}A24N%N^#Y6$6@K>8 z$o(ygDmy(?Ajau6Q{IOvPe+fDB>6TcI8=Nu;N8VWe6ZW*ttZe2{9EtT@^j-NTnF45 z!c^(yUTy8zQmIPbRT=i_6K!O{VUMYFhu6$N|1sC%hkZ^y&G7|%OOnkR)vDfb-;c88 zORqhtpQu_zR1g`Vjmh?(TQq-msCF1R&dHlw=xUhRls zzpQoX&6V|It1AmM7*3$P9~HGAzfoOw(Gn_GZ1tR{P-@QIsJD`H%IEAfP~DG4N2-HE zu4le2ZV~Y5-Reg{#O|UoLQ~+dGYPMV3`S1K;&taH#xvHF&dA$T+B&rppXtBHb=Kb7 zJU(xDf9xAs0Bz_vLtX`Odxiq0nsFs57gPv~=j>*J6!t=LD^Xhx%kk9{Ep6^ z_{$|Gt60`iEar_PBkDDCUhv*g?CM2*G&Cn`7Vz&sSV~J+N09tH8+~<$W9;MBOCn98 zGFi7GPke9jU2aZ|jt{v{suo}7gUzRfY`(d>haqSp1LWNy_`3w&{0@VD8sSllV3%kJ zbe}F9FjxD}{FY2a4p#LQZGEIcF#-8bxRFB6>@p-@MN%P&j@k!3h2#AbsZxs^P;_PHJqx)tZBz^-Bmu9 z-f69G@GaHWGuhPClx}-{{(TO*SMr@>(q&AV0&(S6iS=2_BPUuckPdw81?7hR>Mxr; zIMryah64)Eo_OcPHQGEKgP<`tO#vOnzXc5+g3#Cl)MuT`PL{l1i;p#bS5EgwG3gw& zAdDLs1a(+b@i8#6kKLCWMcbp)eq>=|@GWtPC%KuIW8WB1KT%QUPloojNOo?ngc)Bw zsg^pR7seN%|6!7mbA`~a`q923o$+W4G}WwNkc?LOL`SX6%O863f>J%^%iee+sZlgz zC)u^+xP4?#wa=zoK{NAqTt~h=R34}QL*vgI*V1C2;VDTGYESdTUliI)_DP2o_J&@C zdBqpJixYbS+l<0vSPub}QOkxsDRC#@f`xSMZVD{mB{Hf2^5CZze& zlfahZVU!QSrRB{N9|qFqsZe}NL+WF`*gMK;J7h3j*!SbVnl3o7k&e`vlLq^#9L`#? zQ2%suTpX%uR{QmMCK4}k{7~l}R2|Y{#NhkZFQZ1WJkhGoYQu2@IJCgXe94EFaOZQE zc*1B<3|VP^{27jUWae~7{_p^9kxbq06l~E2yzUp4J&7mY<99UMuL&INCZ%LwctSJ&CmA^_c3ze8iRf%p26dk60~SX4_#+ zU?4qgopmvXll@vcSaA+TGfAc~6%D5iUmRh=tM=2!*V6KKYNeOmAQp!dTYER4Oo>l>vaZ{ zDb18of5U#w2-1feE8n3-J@5es|3rWv=?Hk`tTeL#BsN8ruF}ME{-1(H%)#~!Qh2)1 zExHuYw%nNLzbqUZSfyijkqhICEZwsSW?J}LH*vW;9c-_^Y^POkTQ+q$OW{O9_EL~k(odtd=Ijev@~XPc ziCY8WeJ`A4lzw3%NaQ00x2O-Ew~7>+kpBT~VCkUjzU{a@GG(uX-@>ufJ=+z)FpBkg z<;Z|igRn>DLtsl0G#rO1h}mDu_a&ox(yGoZ8<~ugqvJ(xGRG!-|AEliIkXinpWSipVy;o@mr5i^IV?^ zKs%JV3gB|B8=njOVwivEbk^z$^-mhobETCC(z2=0DB3a_PT0@Or;w|8Fxe=YYUf%b zjND59!xZc9BRBt}=_8+4MKVrm)>x1ioTScXCs!EZ>43(AWiY=QVX}#F6wMQG;hr)* zs{4R4q3u@9I2jqLQuCaO!DKr6Vgjs{;a>yJ-v^+|xp4if8ogo7a4Z#;f}i+Mw<}9H z0^btvT#r#&he_pO%50txe2WU^`6*~S<@|Nkcbj?$#wOGPHfX@-Z(n%z&cK6d5ZKb* z>0e=hS?3@u>fCV-lpM7Y+6v+V9XkGEf4fAu7vra5g*QaCXhP9b02gHxG@q&`$ygax zo`6Y*&s~^W&KWVo0H{U>o=<^sG>E!W4cR37)-DGhQim6Ql#+P?b!s;XBI}1uHG`v7 z))}9gV=%4aWA@s8w?giIasBW(mwq#4M2etNoTQx*GLg5s25~ryv4DK{-Z8>+8A}Vx z$b1E3iR5X^F@Jlz$+vK%+#6Gst+>f&sh|YXH~FvuSq7SH2mTh7X7vF4^++4COviH_ zJt2h_i2b0D0LSRSzUR%V=}<`2qTd9wjAHZDe_rBR+W-)j)w8^>KQ1$pv_iBQ8IFa7 ztWhwK_6THT3Pb$nU3(34>OV4P76a+qSHaNhnYS(qWyPgT?m^Z#6xNt(@AnBlz1@$$ z`_xAKj&Gy4wgIDdLd)m|^3+Fb-cVB?RNmdbsK;%WS>UL|ZndkzfRr)uVvW2(1nI_& zIOY5fsW;4>-+n+!hDEM{MW&#*xx#QP5;+fVEyM5<*^I>o8aqLN+j@Rfv|z=cp2TEz znUazg+*u(Pkbj$cOACA9e9$zs^pT`v#U)&iIaQ#U{__@R2hGflNk3$?YK7#yQ1U`Q z>VxVvI{1dp+_MC>Zfeta8AK(3wS8w|?e&AIgC_4d3bkkVBw#~stQv%o$jQh^B%dQM z5B{lXF_%I!;BQK8H}8@9xAxB1Y+l*6^yh8i@o zhZC6WUQ$0lu8g`<^PJIcR1tn`=j;WA%E~hZ-omvQKR@N~496am)nXofe0ZO31RWyD z5>00Gd@o}jElVwiLB>VY+nt)kO+iB7gf}jv-#=pYhKyz(%33}B{>GVF%o^SC`K9IM zuYGT+N#o<>CsotWqo_%0?c##scS&SF3{Io0u5q5L5jLPEsr;@ zBX6335;#E}$?@l#zWS#(e|Ye>q6m6izk;3 zAhYE+l!?bsH)&&Qcu(A;s! zKRALW6Zz)_jJWjo1*{P!ow1huoTzC9k|b`0H=Es&p4q_lhhon(pHrg#T!)Q+S_dOV zvJve0nawZojcej*HONFS-k~-Mqa8t0C&{uZ$elYL^Wqsvs)aWv5EUn+D~@J-mF|kV zx;e>VdU~sxQ3+Si>X>(T4m!~9c%#t#(#!L@kqyWPXYO^SM0p{rdY82ITf7#d zY;ozIzERIX{R>A*)qN9_6a$K#Zmu6XfG$*~p+>Rrp0H_ra`tlm5BXU<{@`M%ce2qq z_IS(BvvgmnADM%?j5GAJ*7y+N2e4c&KE(HtPzj8_!Udp_7RCGmMyWUS38rekcD{8Z z;2J7m9@x-t0kQ!L+F&B8jA6f_`o~w3u@P#~vkRZpEW!Nj)=|SRw%jjd$f6^EPsK~< zIjWJOia+pGOZYH(-iiH3tXPEal6W15jOKpNh+fc~>!JHexmg-w^f7k&n(b0c&e1#R zoE-I~69LSUS}k54#s=wP*)M}XEL%?6I_irSM%sd0lMi&(A01c*qh`+}r()x0pKMvL zn&Au93`E#Zy?>m|^KG2RnfgZfM-F`}EV|4{)ToWH zrHdH70t(cTASckl&+YrjeKh^zdTnA;(T*X{;Ee8FdH*NP}(}Lt0<Pg4CNmJ6Lgv*TTTIvP zAAPp8vXToE6dH7&u}8CX)z@50?M?oEiv{R0yFt4y6&*BR)U&m^S}^Wg{72-rHNCe? z9p&xIZ9o-%%j@Z_jyIdR2dTDepuA!C`Qu}4BuBnRzndDn#N<0JV%htE^_Al^8&#+% zP1Z%VmuMRY>a6RAB?0ZJlETcV0VPvSIcI?euVvwYN0mwM9!a;HS-I%Yz~!^LSOF?a z?_Td*xoZ4*Q6uFPGt=7@{kjiM85_Sx!g&_vgF(@tBo%CLig}z6-2)}jfXu$d{08p+ z;*NV^9QRc|K)uly>E0hD4r;KYh;!rG#tw#}to^M^#B`>0Z3UWcB@4oYb+7vd%BedH%|*^UR8> z28K@xCpE{&|Y;nJ#ak}D=){H=GCa3vj??9^W3#> z_+4dTWm2OxPs}DV$f6tB7{*}HHnpUIGLNx0AB0kUU#2>UVY zTDPD1$C`Zl4;s45DeR@A)Ka?vA}4VFp}1742=%)5LqlmNdpyViRUmZ-0t5qbHg1@j zMDC~gw}WO-JV$=$H{)3G2|b~M_8}%Mz9~5m9e_k3$dspE6#RY)WJJCVVtM^r5CGcBHz$%zZPS8^4`^8)_^ReHU4o@Oz5JDb zC!P%H#F`>q{3`RngV;Hn3}0DL4Dn7}WvS^OT9?5NYY)V{(Z@}~LA|u+Q6s|oa|%yu zq)<=zqi{+y#(fjxRrHw)N-!0mJQEu7Z@rQUEd@2{pd+=^!w~r`&tbzhoU^d3A)*IU zd_p20?y=&xfKq--jAr?r!p~tiHnYrtrYHfaRM=%7?39T0d*{PV za+T`;EuB9V3#i%aS6?dT+DQ|}nQo9b`y|7Rj&h4x8M0~STic8C2#5aQG^1@$pTL0Q?8>@OisxfXiW>C=hbPr@3Mo-ThU{&%*kBXh zUZe0k@~rYHpWS}QO@7op?nJA4naaz<(9A6iojZNs^)pl6mR$)!Lgwh_&-a!r56@n+ zZeOWQy{0XkRJYvNn07ML{4tAuE#U2Fc8jGgzo#-`aW~jaXXBfdC=nIOGCOD+U7J2L}LF` zyTxAKGJ|cXmz5g0tXTr$l;w7bY2I@pA3i=d1yj@kkj|L_ZN8pTiUVg_6#<}iA&^_AOnnNth% zP~p)h*&h`te-;tG^3Sf_qoOPjNY@wbE=;s3)uz^(TQwAF09wGfU=J$Plk(lx;jzId z;-rF)TcGvSXTe}NJ}QLX)a*I#=C~Rp@J8rm&sYBdS?}#G>Oc=f&aVHe1C3{Smi3FZ zoka}R=Ha@1zGYaiQ+2Qcq9!MJJO8xQl}9semOC?s{cc0S+w(N0{c>ZGl9f@_$~Ca- z7d8c>-rcOn2D$`1z|$`y7}Ahv%%9DMUA?dEyA zjvgT|U4wCBPM+`mEKbUTY^o`aS_Aa>qzFHeLf&+gfB)2LTC(tIWmF`dCn778oSzu* za^##gwVB`eQ*ow-0Ypwh_E!6=L^GE7HqDwD_A7_3Ib;N9ZFo)?1#csCT>^DrR4NJb z!Su^%=W_L%8H;NHFupqK7z{&XxgA9aR?ff&_kmH+O9fC;tcp?}bXcuQR-ZwPy^+Ma zvQ0Y+^+Q#Xf=|vvP6r)JhOhJBz`g(q3$6#wEQLH|WnbT>m0f`Ov^<+OX>9eo31Cb5 zGgpf~$@DvR43$J7!4t$c(h3LbbEEKso1p~iSgCXW&>}P@&M^m4iY^rAIc^Yo#7@D znZ|ufVa8~wCw=Q~^?+pNM%mD8=>)^q0`8g!(t{^S%iG*vg!bSb?H!A=za&pjX;7SP z>vg!@^tIH36ynTpspaqfUuHec&6->(U*0+q$k8)($SjD)h%3Y1@N30e{9!o|-X)Ay z$uw3Q(!RV`ijg^&a=YpxQ$xnvi(fbm*D?u;S-{sT(*U){(6 z^=_JlLdrv$By*{!u`#CC)H~>ka>^z+6}r|oAZ@PCG7MlyJLWAOC(tPG7TH?{0BKwi z(KQZpTs*(sENoUgtsBBf(o~YX`P~lNG`hB&RaYHEXw%@)_J1%x-6a3PJj4AksY9W( z<1M|_>_WYhlj)-EYg;|@7m@=%b^xpJ+QtEA^mA(vDE20ZJmM@|Fy>ZkgPUn?7$2~z z$4JxCA)C|+HYxiiD;a%9DCIFz3dS`l28A;D!8lGo)~X`}>ey7aANRj7w0=DjChk!l-QZjwlQo{PDi z8A8FSo#iQ7)Om@#`h-}b@-zOO2Rhq%xRaw8Blpjng+2n%v$W26&W=m_y#r3t_2y9Q z6Vtm}6O@9=hlwyK9pYx;v6K{A*ap_T&sMv(j^(Oa$8gck)bsAu`;UGc0y(;+5L8MYVivG||Gl82R@#fl;& zq%I%?Z6eOP9;V-D7I!JZ7C8y1PW=qro3T8wfcamJpG4RbPb{4 zaYoBQrnOAH#4h(fUD1o1{%IlkSGBJ%mOjgS;z({5d!kPBy(p`dU%}H;!dXLG;O_OL zyKhaK^>}YR5+G%cgxI*C_8-pD(IiE)O)n+JbrDBXBX0Qo+=b>xnI2!Q+a?TkxocWY z;*Pf`*o}8lUyPdVcjyJANR_|XQwzd@`%KM}uIk;(o}Z7@2_8K;RFoLOwq5T@Ya;}b zLrpHg&&b?pni!LsqzV#m9oK8WLexf|FE3$HCF7$xNR9l7}C zE@*5MHkdNM6H0E1dqmZJ7gb3l z&M}fXm-4i7`lx}+K!1X4cj?Z7I>c4>PoEgFY0EifV`l&9D%$_`m4Mv_^bhqs0TcB4 z@%5yOcs#1%VlaiYdR*kv!M^S_xz?)S9eyprL5g@p)En;&o?XLGj2a@R?OTq0?iyTw z&#F=lhg3{5lsm9RG`BhG>a3kxtVcC9F$0;i?xjZKs(Ds|FC@;|+{HY)-2zY707H?; zGf(8)<8nS@tsR$v&0G(t(i_zwzRc^0`^+@A8|rm0$Htv9P2$svYWH_)PZlqXSB(DB zd0;$pTiV^}5pmU}NBzz5P|YA7nLPc$>|VB+UCnPY?Cw>5-2g(Z-c+ZbE?co1mi$Rv z9m%{>Zbwv-P!;EQ1pdQIH zQ;Xi&Loy)5%`6Ld31Rv<#?|oFV8XL!t@gE1s#QSw%A1%;J6(q_j^s*)v?eL+Km#O% zqozo}K2uh=2!P$!3V;DFN_IJ5LSWVVvn=R@RK+P zLpjyxOJVO?ZaxcJ$!Qn?UpW=+uJ`?-fkzS`wUqXp0ESOGH{rd{RCpNH%VrRK+U8Fo z{FqFLZdbj;<`*QU!Pc-we|2u1H!=CPzs1{KVzgqMt*fJ+QgX~vCKFFDc5mQiBaO7< zMfaChDc2CP_l>SJwP^Qxed5LQ&li-Od5h8}AIY5hY;Q>9>Buwr0_2Z*fhns$$k#1t zN?n_nAv6h?rO0(0Erxt)bmHm1>tn4R!5u2-?}sxK;@Y2dm`QaUNS*7HT&Zj@9u?;F zqfgP-kaX8Oktr?yLqIo|dtwDBvu$c3j9!6yRxi7SEpzf+Bui|!W7A{xGU{Qyl6P0r zv{r?KnJ(1ZD1^ZE{MeCp?&mVpy4zE1bw}E0jPy^8iAF0vq$kh6G zKjpeP6wYV;IpGk=k?&m2wH*Jv<3UxlZ!TsZ(+=qHAF19`bnLo?)t=i@e)dj-i4X+6 z0KWBtB~Sqc!BCv}x%)2%X?Rx^hstzF$v|{nzM$gBP;V*lV<{xyYblt0!J)$C;70rG zRK3hM_Zr8<`z*gcNIxE{?|Y8l-J||&+D7t?agqM96!CpxyRt zlg3v7$2F2uPq8_(rKPz%=bP>~zN+>oBS|R7M4;k%da7IY4&ag6vi5Uy?ewV$JE9OU zYnAx9kWs+?*ZXf8ent{M4A9SgvkS1E>%QL_UicgB`6`rW=DPqx3K0qG&dlU}(>X&j zPzm#RZ%$tN=rDph%Z$?Wu0C*MhjA6#cAHFKIe+v8L|xCJ(;_QPe?-0 zjP|nfy+g+4BGZ!-Hs2kt6T~wmshqUEg-E8@-D zRoB59)0<*{Lub`EO~rs(L~c_=!B09Sr1iDR++A_bk3pgj1Lj!|p+Jy%>oLaX#9QgtJ zB`SKSTi8($d~7h`6dWi-5ic_F+qUM)gLCH^8xo>6A-J>SGV9i~lFbpz-W25WbDsmE z%R*;cE>6K`3!HaiKZsavq$)zJ)<{zn9X|@GT3|bDe1~JG zY#ec^NwmvXr|l2l5<(l*@(&PyUE-zOIU9*i z5NdTABJL-dn|9G?1;xE zv!|gmC25`}b4{7k>u&*1A_ox8 z=srEYVv*~U=`T-{mzJ)Jvr~4M4Vv4kjNBw1ziBnadTn#)O(SPW$EUF}q#9LgKde?k zlVX*rR&()-$5!GCr|eIy1kDi|`I5_RREp=``GCLHo`w6;YtKXbswIoXo$C7W0}}V%*EHuHNH^ma-I?jF z_2QcHdEOhNPtT3K{mg%;W>jC1#7N#aHY5hUL3|*%gtg4$2^?5*;ou`%VYq~qTEvnI z7>;Yq)8S!7G6l7n3oRNeO4AV4t+;#8kB_lrEV;Y-n(c`lYb35J@@IAj)Q;n*Tv32<(JK zrdg5`I~KDNog^irGj@J$lfN2gdBeV2q3?La?dKv7STep{E0pN=HqSR10iN6|vOSOb z#U`k4-0EC-mn0NPZTfU)V)|<-ivy^<8|^t3f(<2ES4UI(It~2~-&Ev;TPpFOtUEN( zB60eookWR@&E`VJhS9ax!l+~*i?lEd^EAlRb8pSio#1qazd3Ews+LG|1!&%vj-TGv z=J!*8*X?xB(Pm*AtE6) zc?@Sg6ZrAIkS*5CLrHb#tJ190#sy*7^k8(L7IU+Fo@Y>(oRQDo;ca?LFS8bU$GRpA zlRrlo?-}fpJu@}CKlaN}le!-yppE`jv|D~>ZKeGo&a5AXO$6vboD-xihtA_Gan$!p zSQM~$9I4xO+oeVB?>ss5IwB+0ZQV##X=wuiXHUOy@ylr~9EEAIuoY(Apdb8qyNh`Y zN1DEhBo^8>c|b@KtzU<55%)8k=DIZYEN;1pY*)~yDy!lgbFjGQtD2R_YC2Lx^F-K} zEAj2jFXRgV3SUmcAXR-12GOd{@zGvr`J_gZ)&pc$1EyJi*M2>=EsLw1v|;|-&Jcn2 zBltph$)hDel$}2KYD)*pA zeKbbQU4{&d#SZT-PRwn zyW8xU{CX$bszTKp6HGh$q36=&iGww3FbYuKrJ6=M_j;fpqU!aP-4DaLvV)X(7+N}Z zk@IDYSYFDwmrIARzpxsR^?h+HtyPbvx^3_Kke-H7AKlKqwLIe*_nz${0niK zvnJ=a6~k7Abw58%>=*m*FPn32X43}Aa2W=Evr9p0!fFva%k9E>@fVa?P5pGO1sqwL z;iP67vMd1!<3$ITYsD@w55r@T^0BfIN55%Tb>x4Ex|QVfkoBqO6D z546}lf~==^8aVIOx-HWT1Q(m21-eQ1LNA*?JLJmbMb!;MlucHs{YV9U-J7x7nCo80EQPEohTz4c4R zt@ESTEJJeijfgM~D2VomP)x1(wN@-i&GPbB@8tFP917HB=M6T+@~csandQ?Htrn3F zS}=Ruk6*vGK99^{E%PwOI~p2L2Ii5XTQDFQnUO*HWF)F5A2Avct0B10ry6Tb^1vHK zoKmP`BrgnVWnr_927&{Es!6^5|9)8SO4bZ*1K7TO9eKvoz3&z5=n-E@^=c(Fl%4Dca}ce~a+145_Ai>>dS5xu)!@#>ZGYE!u2prW-e28xf0t9j~G z2ogc1qUN;F-6K@g8PbeU_1JwDP!!kov#Afv=`Rp}0PgKFHh%>Y_ha)3Il+oXbeFyl zb=+^KEQ>#bL|Qd-SZjyl?|f9en%i)jy9>Fz}f zN92wc8gKnPKWVqs-dVapx8Kro`=a!fKJW%MpO(m$ncKA>EM9}5c;EeU$in9&KgqUE zLRSMru@^p16L^CW>9DTvs3Ax;&_d~Sp3icyerP`?l(RLS8D2m6?N&#KX^^lwAE1x9 zBMMj2P}k02nD8yvRF5AA0ER3)wd1S+sRN%^H@4&V>%WBj^*>*K2rtYO`bT%V*Oo)+uTYUFwaCHe&b75|H(~)3`+riW6T&Q=9`Ly^NiYsY0c6Xqc z`Ew}3^Tv;pjxRXP00P5aI z9C+I+L?9vohjY+z)PsxROWSdJl>$8RKNs(%-<0<)trkLm2n&$R%`qtkKt<*~RWrWB zG9aK6niguSyp=sad6c)F^Y}!E(xCY!dXRt>X;ev3fc|5QS~+@<$T^IH==?uE<<2Z# zPS#hM3e^txbersiC}>~2@Ssvk7kbjWP0)>Xkl1B&=6OVMY`o#|oS0)50Oc0)1P9BB zZy|7$W;t+C9}ATVaHQS*EV8_Lu9w`HYj0jI9E1Y-J9etA%l$DFikvhGe21gZhHuZl z_kw+HvDykXgyC1gXeFF6>f3x(h_4oc&v}1T=s4zqW_8zoQ@bR9{T~xbj^-Mqc(c(I|JJcU z#tY3HTNlu5a$J~X{?1$=U>{}(uJ;Y5Q^RH}KCGE*jBe_rj=~-{BkZVJ^*FCClkuLp z{u~Lz5wG8x7Q&7738ozQiM9_=JOWvM#Gu6`F%aA9AFK=j9Q<<()P8!kV_OcNjN>;k z{O0x{LKA;A9p=tK>Kqee_t(T~t<_`+dnTTki{=d)Qs^2Cj&y7YpIggvk!P!v^seUu zqfam)?X5U^T)(lwcKOX2-G0Fi3{pOd{~`o&R<)f#cQFnV+HFXD*4=rjiF3C7__f{+pgQV zQwFGS>K~OCRN?yY{q6OMIF}egxO;atgFTsXMe6QgZY($sFF)32j4i*|JL zUAV&fRhx4^6UWHaE5j~OZk}t(R^p*$&a3JXfI`Q-kOziEmufIsnjCTHn*ET0?SrZt z&Ssg0oX5SpAyU$PG|PAD;Fil+Ff{pksLkz>O-Vcd+08Z_yaeNr(-va#)SH{G`|czN zlZ2@95rRwHNr0^;v3xKa-ay!0-xfM27Dq;G7q0n(p0@@Z^{{XyOh7)QdbjCBzr74oUnfB95KGP6`CLPr`S z0!pFdhM-yXt2s#+N^DcM`abL+v0_qvRXkcApu4-az*XWw{t9kzC0x~>&~M>w8_r^1 z1|O**ptj2*LJrV|Kx=z1Otfg5ZfK%6ZS5qBY9i0Rlg~dYDeQOzKEr(zfwkwaBP|5Y+#Oa_Zog406ypLrTvM|4GABKE(HYetgWQ z%N4=IQ=xAOfTiR<;j3i*gwCXrWsvaXT7jiKpcuvRjO0%j^#KGO1ShwrZ6T5wK+t(c zH{onj&c}ztxv*xugp&EW0#_{Z()+qgf+dLNx>`tJ?2dsOl7_ZG&1I<`*LwDRg4LH6}P9so=%g2z}DArgV3S z9QuobTeHd4H4Mn8feu(i+naY4afgqiC7LQZ#{jvIAm*s53?KgKayyO0R0m*PK53(m zs8FFo80*iZfLO%3*VW+yu>24y-N8h}N0I}+4A6f z(SoE2zzqcK$k9GJL@cx60JW-sX4oHUg`wD-YC3`FLe*b%;mrrL`0qj)XT^lXJL$LSEG!ry9f?JVDb2HZaFj%h-PvR3{lLWX8uTBEsbQmoN{KCe~h1tD4?2r;T%q zf}_W+U~Op-$a=sl)?m@|cR-A9e~XdMWZyYRM53&?fyc=Om3`mg&hy=_MeF9yJ{7C{)^}Hkm>kkIwz|AI=A6q@#xnS?}87UHI&(1b97*z zQ+TO!vX1rYYT&6fRg=DWS(@omGWx8Qb;?MT+DxY=QbrvZD^3R)(6!}hZ z2JVkuX1^Xx`5JCH9?D2INNec94&tw+qcNbJ;3a+8wt*SOQ?Y}cKtTOq!@))Xy4Ur$ zhdO~`suRRE*vzfDT%p@%4L(bfnt3xps+g#x40!DJO|?IZIRea>>Cc5Qb}(b2|HCgD zqi+0iXyBF3*!;*U8K{EuL@n>rzpqA6QeSPV%!=fuuA$UpZZjy(Y@W>-CN6WyVC5kA zzNk_?PHVbrJ`9v&FBgZTCbXFq)xr4utq}I5XqBsD1jr-dkE{7&WU1BH@zESe6lv6p zsDL#7ZCM4eq-jTDsF>w$CB0zj_vVXaM$`}pIsdv@fX_QDb5u0_K zn$BzgPf5RY;xJ1M@ov_%I5Ny~v1uoAS^?l@1;J(T+p{wxQndxcgUqxjuI~Pe13HhE zc~4NwWuTI#3rB#Eoamto#4{2$4J?Fcy(GC(PC7AZRt#mItz!5n9GqgqN7bg?b4?c( zUGy{sP2eC@P-Xq@{kCpRb;-PQQ@ieKpAv!N%M7>#0gn33{#>wNyY<1_{9!d?wo!*& zzB(sPC1ybv!L(<1o@q~e48|=!r$plf5GV1c3A|)Lsr@RBU5XOCQ^9q0X4F6bc?pXf ziL5v~lLT+lTWUB4Qui(mG%^0e#H8!ONX@^ZiN8M$t$kQ_9@%X(B^;&>{3q|oiMx5$ zUK*_2k5;eLFN@Xp3uON4eTwvajsS1dfCpmtb_24~F75=Xw>kK2qMjQ(5Ir;!*e~QLbVu zh|`#eh8vi0(!piSF5TF_)dOP9vEj17?!yrDcOZ>Ibfa=1W_o`R1Dq}5GNxVVqkP^{IRL9veSIDT|L zZqBSSJG<@jQp^{ruvmI{<||W`8sw9I|1{#Yj1?k$xilw?h4bu0WA9siRem&`$-P{= zBak06x;O5V!)s!V@+y1CJP%x;y>Q+C?gIVsi?AJ$Ok*8;sUehduevVPC_%e*QwJv3 zb_Nv~I3br(Pcd!NouHj{a+P=C^W;6>V9KFWH+Ym+XVh-}NMnLDJP8NJbaECkrpUKb zq2u-7vaRofKXH0r8p0cp4F&KT+t9CY)&`_31AV<3!r3TBis@bMgWMn`|NmZ+RRU(r zbC2dTX?B%kISf!9`sVY6Nm^fOY@-MQ7L9O0sXYJwBK}qxMc7IW|4r^a9Z)}1|30%` zaZbKFtNq&;ZsQKCqn*-;(>8RArh0Q1p(zxpT1tdBgO1Ubw+43);j_u41n;?Tm91eK zoqrt@12fnvxTHBAphd07oAmIIW=HVl}3?s(+tr4bq715TEYe zih5xT=+7a=AHsumq;OsbK0;GeaMmxi=q}|bkUh|Z8(_0A)M2yhg=)V0*7f5hK1MHg zc{3gx_8k!5XLE>1*<0HGy6+EU35tH zTJ2I_oe@0K2nCA&AEEMMU&v7XypI3)9dp4Q{iyKb8>==K(>XSGzaN~@>PahCIm4p3 zq5^6?E_RD7PxxB^uGx3{ImVT3P>1q;0&`=>(JF`5>2!TUGP2^QKJTI5LedoVSJ_#P#AybS^jZx|7;VI z>=3JSN0DlffcDyRLk(Uo?7ug6VQg^Es=)-3PX@$2H3p$Q`uj%*sx#MLFbm+%MA1m#uf-{S zQLnnqpYG?qF-2z0`N^W@82wMge#r;!FGG)>{#LXU?)e}p{ECh4;PB~bpJ&8zC?Dq} zsWkGDjPcPLd`QZm2j(|Xwc$G)%0SfLe|Hv|+Gx?a;IrP-|KT>e<~9cC^LVsmO+uAdG(nPv`Et`EuS#4*UgOXpy$+fd z%W)0$&cp7y|B~?{JE4pM>4rG+NN*(5{~I4C9I0p_r!pyikSmk}^%mV`nz>+?w6dW_9) z%uosp`RPNu&aWyTy&j@($wl$|{^eXQ2}Kr|aUxs>A8a&T0a)q0kfRkmNA*86TA+i6YhR45pnFnY;h|*O)|gKV3>?IK-NUV!HB39);C`(# z=ijSysaKV@_QD4_4 z_tvXYw<}_;1H~3U*-=Y^DKZa{(#C{$Af^0(&qI6mL1MgV*=+ZkNV!JO}77I*m2H3#$I%ITW}9PFa^7@&xewRu05Dn|3>RSbF% zzddWu_ORLHBh8FK1{>N|ds^r4{2CQ1DL2uJ6-M&-2$`xP_VnZr#iCx{i}awdt+@P` zG{p@di_93tP3HFjJeand0lob{aO8wj9~48)SmY0(Q1Wz_M5q?;r2k}ImNPi&l@a@7 zk9_LM)fwuH;CCKG*SrT*$-;c6uz|TUn_Fj`@(CADL9z?s9e-RJ>$LrbcT<^IgBuAq zU+T9c)O<-&xsy*PDrBN!ZGm}If7X32*|w$Rf$&$lz!r>&ihRUfLfSJyeEd{ZBcA&OMW>YGf4fN@89t+pvZ22(~^lpi9v` zX?pu0zBu*1X*GuO_$jvt&WExvJg31iw+oWfd>_BIvZ|1vS*t4#!TS8uNr!cqwVmGm zA$y0s61!oF+x=jI5ABhfjB1p+Ayzmrz3nN-xl?&hYcM?O(vz?&cN!SBz6nEle%M{o zA$-<_)mgps`axRmV8tm+RwJMB`wx<=D_yK74q;G!5O%M;fAU;6l%ErXxh+;J6OpHZqgDHbFTa9U1Ht6`*~Z#4wnG&n!* z&?YfR4ClA*xHE`@N*7b$ft}9T+n>+BY$AZ&fo!$YSi}8AQ0Kso;Y;W8+PCH*0m1Nx7KGAJ9#dqSA(wRW_U~mmF;WNxQ{HMQF8xgb!a*7Q`u;s1Z4^^z(c^t4 zCs*_Q`9MY7lZp^}Fe{#Pn{<=$-GjuQe-%-@?B&<@%u z4fIZ7m(~~K^fw*NNhODYjlyuv`+>%2j4Xzta#OUKtA-Gm@1tt8GNKs$>DOU2r#3Fa zM`5qJZ+XEf?J`&R?b*Lr{T`Mrse zfS&Bzg)GbAJ2`;>YclfN`%H5K#}!Ob3U0td-P(WesKQ;>I$Zkv!c7*%6b#A~vov>j zs9P;PStgFKywU*hVlGiBnRYstJa4l-?qKoG$-VW3{TT`wi{bboi(+Iog?C2 z;*^jlHa?4(O|IYXfosMf5452MueCFL?G}tUiuX%A1&sXDV0!ep3U24qt&dZ9@ZpCR z*qwR0|2zYGj=&%Wnfh}8C7A}4jE7@hrN=Mhyd7O@Bgr$%ofmhn+&WRgw=heWe}X!P zTY$83xfbEwmx2)KeZl^WFwhyHqay2}!Gw%8(Ri6Tr4$R)jg{#6rGg?`77%Ptj)UbS z2-W*<0;vZ&1CMQ!-1HUJ(qRm3qzCZ!yv0B7X_vvw9j@5WK0Fy#s5d17vB8xf`s4Lt zNdS=g=D9!XqLSX6FHDPl5%WcH>Qo=7!%%`u&jUrvPkk`$gb%gN36M#-99K&`oe*Jv zG9p!14x2>_(slUxF6%kiDO~7Z0vlaMG7N$HoN(@vuo~2(vd%n((wCb<2z@uU#(@yD z{*}t5vnME|h4Q++KA!;v?Wt_`(EN(@N~DYLyB8Jn4a|);ZUcbsz79FVL)o$P`#s;x zUF5IEFp-ErEFl#+4oJV-U4wk2;?pc|0A$YLzz48#13Er(>$p2uq35U1 zV*<^v`EQ_jREL*^$Y36+j{U24m%vZzD1Dn)-yA-L%pSSJ4)VwZNymrfK(J6*%^P2v z7Ol`V1;dw5`_6nv#<`}0ne|+enIPCO-g{ zTT7ZieZec0n29CJhUF)-f}jUA0hQ3iki1Fv1WtAufd5kt>32!TYpf#1#~tqguSN|5 z3Y*?0?iC1p0BaUG?ehd=c*gwFUA3}X$Hw0tYm|ET{Nj0-t?@7$^zM$p zC&~Tlh07R&!muEzghtnICJ`tT{zt0MIpb=Hq=%vYZPymI_;d<e z2n|e5oJFw%iBsV`*@v|J5mo!~|r#ZBZ_P zaY0vjMd$uUMXNKwIX*7f)6JqZ@7f@eS%PpEOc_VeIzFhBrkmmP%X=PTxtPjc8hN~{ zUT@6`fxPqjOcrd}wUgX#!9MdJg*Ls{+H0D}D>y#909FQtTo`0)b$;{x@;h{3G9TTe zS*vzwGC)#3L%MFQg9z9DL%ZO2=n&XK2V%`zaR&}ctBw(OUcJ<+Sin`C`{|C2gAo|& zXMdBPiNsW&RG4S<1cCG%mdHRUeju|5 zg-l{M9Iqj`eGUWux=~$4tLU-bRPmPaUsW(XS=9e74a4pJ?37(ew0CM{29KIgGd=R%r6y0q=TQn9dFZH(N#VQ)h%d-#FFpru5dQ z%r!Y8Lm98*5*4=dJe%FF8fLEou3~p`%d)pe?~JBAAzPS=A^F;mnFUxh@wyybeh;$7 z1R2P?UWsES7u8QwZ|5G^3&38mHbcZ;!&X;6?(1FZu$p0C-0bS8`t_~^rWAW&lzx5L zP#)+^?f^~8Cng@M>`?pg6j=4}k=J+?rpAK0;c&ahI>A71)>GU&&J|bQQrx%{9trNS zvl0lE7arnacyhB0EmCp*9wYU}f%NdE<36@ykAs1uD_#ja#hx{b_8e7+NNsg?LPr-b zu0f3sM|!a6;opq_CvjQ0Om>el_^tWFgOd(~%RN7oDku;P1#9LP5H4=^yl1zXl&EYh z2KMcjs!po@BbvIKX?feGD;D&MA;Q^cJ)Z3k6C+C-4kq@etrOmiAoJ9TwBt_A7z#4r zKV40;dvWKC13gvm&h>CbE9R_=Z+j5zti-nZ_#C;yOuEC^QT@xj*Ay$13VbJkF#^Ae_b8=sWv#*bQN$5yguo4>i{P>6L zUIr*{X69`>{{0g3%m~c67AB9MY~A@0Mlt*8Rx|UMk$`GOB?2p6HkwLZb%ZCDs)mw< zp4$z?Y~a%I+VR1xTJYBgCd!m{CnxzxU+JOcawfd=?bz3iwkR10d$A>xF52y;f4i&wb)<2$rN5 zSv4Q|ZK(vBG4l&8uaVi;KQbxc**kS;KLVF){P)v@Y&q{}YWOlRnUr50fHd}$ zIDGI@gZ@ie)DMs`q34=wMJtk?ksrh7TKQWdfgy6;F%9o)0j^d3-O>ZxWAkBMH4qO1 zfzf3m?^`$cK5e#33gUC7Q?PuM&eJ4_#$BrtrJYrKe zPv0%5r<9@&pEYs+F_Hz@|MO;nu~7Fqd-|uQJLA4RaN203=pNVuvK)zegn=sb1NgrT zZq|sg!<&~{)9+|Qz8&YppOuz85n@kL z7?OPuh|LYg`qWpwqLZhi1xV3aSPGT{k8)=tzlf5A_VfuDW1Rc+gf<;;HYAl|GUJJ(lVQ z>Eo$5GoHgg%&ci^&l0I29@<;*!jTaa&*5Zs##&2=k97rk1cYBH6w>g5+_KfjhXmlbK_?8_ghLGGY%qRiHJfvvjEWb(J32fMgO_3BsgeAWq4L%+$t^LxtHfbCgiu7 zV)CEb##5Vo4#ifyTy+K=g+F8!s2bl2p|iEDEmR3}pHlfwwfo}EL1gR+FW+10 z`kDj&`rdV#9U>PDWmDLV0ky;zqvi)-KF(okq*9Fh>R;Ynb+F$u1$AM8U_duxCI=>< zfw_4zcjS@(aJJmne(TFE*!=ueaJe4iT}z;OPJ@odToX@8hNMYbis)`J{# zR{!(c@83a5eHNFMK{~Bc|HK_-M^Cl+%x(YijDi!p8l#tvm*N_T8Wnvg#=a5=XWqcjEW0B>>; zRW`#&K6XpX^*LPZO!e3Zz8b=;pxaP5V3VR-h5Z37=k?3` zgBRq=C6Lp%O%W;N=@4<>^GT-}mpPd0v#au4!7d!c{FjfVBZUbixjN<++#+_3wPu#{ zcyvC!XWZvd)C1%C0}m~(YOcU0xMS{|Fs5f!jx0gjq6#eg2BSjnuiV!??goSDZsUg! zf4&tk4H$AK6DBPwxX-SaP1gZ4d++kv`9xUIcjd#KJxIE8ryDAI4flnZ>=tnx- zHTM>(Zp8>?FUlj8gV{r zX1@<%Ybu97n*4w@(SAdAPZQ+4ulf+RxZDOQ;i4~HUA*3L-Pk_^2OZ+GQrLx;@ zcm+l*uOr3MZXl`cMHZGN4Z8B1qui@z0D(Jf$e!m|r~YQ&(QJE=vD_)t{8q;;D9z!6-0P{2gbQ7bjp_c zu&37^^?Vo^l?@yHg=Fx>T@E?luh{rY5-Gq5BvcG3Ic(ukG6dL;EA!SH6< z8sK>%t<3swP_|Nur?>ZBwSD4tYlBGHAkta>=2D<^UW_gUHj!B1+aS-O6O^`3I=)55 zS)U&Y3{pISnEI?cBY+RmiB8NwVESJDjGYcDMqWvZ> zPNxJhjLRiD5b`RQuWqq#eH2RWNiq|UJ$Z){0&k+i_x}wO*+bW6O7)qiFO*TksUK*; zNST{Vjp9IGS^R<1(d+KHboo6S3!-M2O`q-e*e z@Mzv)d~X)a@wl=->UnW0pc`S_+5u1!f&-4_E#0(BBPP zf3KQO=t*-I{7=H>DvGSK(;xY&2e%;zof!1u=iyRW!3xGowVUO(;$(y*b+>b@(b>7W zUyX?gm`(6hc50CuZz_k)CF=Y|%@jL$@k5~kUH*Fb&BZs)67u>JV0rDKKjKX`SqxF? z*5iWRtgrE)ORxFeh*M2Nq3XYcCW{K8;_Y3|b*1EdO{vm$WI5^^57?9BAqTySFF5fh zO^*VGoj<%i%U`0QF>fQvBz@rSUZx{=1G)xY$L_x>GOp1k{cDDCnC6fbYT5tWu@#sg z)lyv^(|6hhV&bOr1o)Q(YsZ-%Ko?i!cWAvK z4;DvlW>>m!ff=?F9nW>~15VUp6#>ct-4^4U3Kr)w$2qctOme1;0eB%zucgoR9 zyYtn3`M}(y(gty9pQua8XOy{BtLcvpkQUH}){Nxjk+)|(z=__r4g1HO9+u-)z_`lU zFy0S%|62ms$kCOa_hcx@>B(Y0MVBb1sJmAbaDQR$31{nc-u%H!u~QTHW!9qM$NRAM zda3uqucBNUWVPp_@>^Ijxbh7ligaQ3vuTdf=X!OzqQwwBB>^l2-I1$ThWr=Z(~2Xj z&S(Tn+MVR#p7Xj4QBD2Mk!v{XVX@mO+Pj$siHl+!j{pG_7b0ro5IAR`gFDyET;Y zVpLR~;M?!FqRSoaDV+6AQMqEA>8i{LzxC_=)N^2m-EI=!G05gR-bg!5a_&YLw8A`z zU%7RiJE3Y5Vb&s{cCh`l>l#D^O>r)Fp;x)R`CAau;Nr;m9n(p^#SRisObiI%us$|G za{sl+;A&>{7Go?n<--iZ)gGSFXs;PlOlr=P{45#X6m_!o$7{h|wdW*GRN?bHv!1lO ze2I2Pb^7}nrcAz2scu9zjmh*NyWadtV7py-e>A0#aU-#&a*HeWNo|Ig8M3MK%4KfR zfPi6l>eH-yq2w`GA0z-H3+fM_Z$~DF7ke=-Im2T}qXHrhDFQ zJf);{5sfUH>+ZmDWvqlTAMiK#P9e(3AmF_0Bo))JQ!uVG{;au=>#MTs8Z+Wwx@YiV z^9Wke$EtO$HcG7PrjCcs!q3eIB}(S2p%$ zu>{J9&zrKmdp&2T)CcPkTg87l`Xg~7dt~1=*mj-m^TpBf2ZP+KBKwyw6F?{+#V+}^ z!c+p)Bwm)2i13R{<-cPxF`^;;N1sZhc21apF=1LKUwO;Mo%APfp~D ztoKCd%w@SN3lUFWrtdq%d}#elieJz1)FuBOPRHCq&paaeMy5A&3J=cKosed19>2I@(^^$f&cj_ma4S^EcxB-O+{RWDz)ozZ@5?0*dhhbygk zP_$l2p5_T5Dd0wS>h{I9u-D;h_3@ZM9 z2ipMi48nhXF0;0vWo4ZkKfV5CEoXM}zVBL#u*@gp7yFvWUXLcTEf=c!6k(Gm%fEEE zj6jjTQS~s}?TiCov-0v_^Wc;e)RX@odv6_8)!MZW6B{Y%6zLF@FbEZ-1w^Do1Zk8O zBqT&)69Os%3Mxt?sB}mQ!X{J{RFD>=6p;=|VYAma7sm0t&v~Ec{l@slH-6(c-an6r zz1F(#d)_mzc};KEotDpf+dJlr3^;o^UtD|D`#LG;i|QD$5wFtDuvedIp;3}sQ;*wL zdc9PGnR8aPZkEB359oV(Jr!4`yIk>+hqc0@)?zT1 z(YagnbDK>#lD5N9V+ZX82ya`#9~fLIJeOlRu2uJLJt*LN{K}L{q%LkxsCPbVVeO&u zq~?9I5i{>8Y?j{`2EP7q(Wdm&h#xz!^wN#HTR;DSyz8Z4RsS(K1c-^YWq)SQ)9X==1(IkwijH9ZJhHV*uQMiIE&LGXed*ASnZ16;==9 z&SxAi6TorQWbI{50VXw+F|FF+o#iT8K$5?%=e^UV^p+e1re)V!ZYd?t`HA}6SZggN ziefK?;VfFv^T#koKRCl}{T!j64_`X_=52LtQRMSW$ek3fj>6iywUr9o%!A!tA5qwg zGc$gOuyRn*#L|+qc?O^%5+>xYT>BUCs1uEF@R|hmry_~WRxm&XE8p=%1?&)mT?qT$yI>#xyE3f|5#-0?v53U*)XEr809|23r zU32dbDGX*_U4{}IYF~k-P)OiVHaMoRqR}s6~3hut_12{lo*rXCiQJ7U|f~Q14_Y;4JSyhJi_0aANr7O z75=`5K5#NtB7F4;`vnyl^M5@hUBQQ|d)( z5?*bJcFkpjE#H2)^J&`dE2rj)qe;75I~^GcsbAw{g+@CW((9=z(VV+|OUWCEtx3nh zYeB>0AVV9&><0&SUZEX9u$8C0Px($UPa78RRKIy5kvjBf^SD82sdCxOF71TQLGGp~ z{XUsd~NyeMuLff?p83H9vbhlk0nt4Jd{w<5>b^<^%<^7V;1KTCP_09F8iVk{&{?5N+dZdlm4oQC*03 z-&apHiq7w~J(9*Gkl)?PFK-zE(`@RrB)SjsP~DLnj~?z?;L*1K9D@#wk;maXIFa>) zR`q(*eQ3t1X1s9q(#JEx&t$hhaP-0NuGv`j3fe}7$04hTzkFxP29+PAmvji73~4%H z=$Mfji0@Z3=DOae?WOIq#sQe2EaN&W)k-L%U@rvg+4Yued*s3MIxcr4UpK8Pw3eh( zR%L9xc>m78M%dU0$=n<|h|`nM`uEm|qgOd6)of)bpw4wgOF#@}uUxS=e8Z5|*v!~X zFOnD}J2$$dbF+HBfm+m;$5i#^>Ydg{#p{oEW6>HRu5t*zY2Rr_;o>ihS&IR#4|YLT z$u`e&`mV;4k%5kwQwm>iU=62)zMFY{Pj|}UqC`wO2i3<`weD;q9-oq@A-Snki&pET zdyE25bQO`L%JFVJDAL8To?x>>K(X~CIFV!0i91CqV`Cm;7 zb*o#RRmxHa*?PQ{y-*{tGK9q{Vha`W?7;SMyeKI=e}m7Gt=Subfmy=F-0IY3mVv6JAUezaLV6f$j_8B-LSUU)5_=^E zj5)+2e@iy>?s=f?j4>846WB0hKtb-y{Cb89Ln-pw{o%4;)T>TdVAx+s zZJLVPgoJ{3l0-!5-4p2b?h=9)CJCE>2Ng$RDd$oY(mZ5sp;hTerI{BJPE>ZyH#K1b z6%m?c|Et5`G=qzYKwYh;(vmJSxi_z#9LX+%QFgJpJ#mo^**F>$@0mTHZlO(A@tjes zbHd~4-6Tp7^$N5*_+6O8m0|H1=A#{xcmb=HH@ORiC(Q**A_aJ%#3LFk24ta`S^Ip$ zeO@F_DMPC6+22xi&MfaA)hJDVB+|9n2VMR_9h(*pcVjORZs?}_FTK|o(AVJlf=)vB zet?FK6)^3+eDy;R06ro4mM;NV>_>vP&z`grVb#KI_1E)X70Q9?o8#8$VO=CQT zT}l8;HRj zq9j#*l*=Af()BL2-^b9jNi*NJkUTjwtFYB>d|`L_k&{%3r@j^*k7kF4iJVc2i6AAE zKXlRF?9_HxYv#Wku@mOr{7~k39UECWdI$F49Qm)4Vni}|4(?Csk7=XFD1Q#RKG`A~ zXkc6SFAp^=Y)~w3hdOkGe6b3UC2V!I|6n-yxtCTd1xNJn)2MvS<7*SVaM~il^R4wm zlJgXuF-mthK69TIs-HqqvRl;m%30scqHJVL`I6f`!<>liI^wL5oXCPt z*AO!1Lg3N9>G50!n;4=-Dd_z5_!8Xg?BqPy#zCU}X(gD>zpl(gTyb*O4c2b>Stax? zgqk{9TQ9haYi_X!wFT@oYGS~lyTnuA%skTa?U=iC_B%^Vf2sSaZ0=Z@x4j_YjgV&M zNipy82cZ1u)velZ-9Bxg+kk#h%J6P_hm!(I4Y;ER$5vDII1dp8_c7{mW$tM`{E%z} zSFRRC9jasm3FI$1-#8}|Uh&bHm;+b9u^_TbB}Y!4@)8RrO-Q#SeD#k$ccwK!7fxpyM6JIm zvyYH4PNvKVH}Z93Il&9b-bYz=u-L6ly@H^;vL>o&ntP!vMEN4Em>h)txDTYbt6KwC zN-hA}A?i!p6>6j3i>7=Sef~<_BF1y5#qi7FCI4pip(k(+k#Vs_s`_uoMtX|3kG&9Y zaYF^BHCDtLB`bn9m1IS}Y)HnYJ=}sY{FUBMm&PP?QdmX*cscE%VWJ_5>h;Oofjzl- z?Z&iTxOosysG?hZs#E|XR@k0flp5Cstmc$o^k&Lp-LH^0U71(B$G}RT#RU3geH2u_ zlEvS;9*VbK0o4TNVD&jp&o<@R5NZiGFssGrOf5;n8 zcsSv&t(95Ot4Vt7r@sKTDCm^`<2#Pe99euLISWZoPl%e5HURYU8La?Sfb|)@tFFCp z5hi0iMF+dN6xDCL|9o+}q;>r}r!Fun7L1_2@&(WmTg9lJMb0-VKfdk5*Zq7dX_M$~ zr>HLLq}Gso-O(h9YVKvW|EP72Vrkbb=ThyV3M1E@Av#Ee5oQNVY4t$ooQ>{ zM#k_QK$U!8EKe1<$3yY}5xg+_@hMaL6BvR16pdUj05m?uO(K$1gWES#ZYrZ4sIi%ka$g?j!}_BD-vm1fqwT2v0Uo5+K4*iK z?x4Vv-3JrmS^elHn^CQHQU`crcON`Pjrj&Jf>g!N56&uqPYl`NKg`F^Yl`HZDREd6 zJg%Z3ht|*rq)OHn}|z0o;(&^zkHgUYD+o(EMX zYXLAx%uP$Y?6zM$wFOF&r_ke6hEG***$Z_F^Tr*^!#nJgMmmdcexbm(`j1J@;ul+e zQW5;u0U&8iI`+v3w{GYIz`yV3q@FQ3cnlPOH8TXB_OA&87}{X8K38Z{F11U4g}al? z=!lpHGnUWdV-^BU3u^Nz;?U*p_ZJ3;uB-OQ6UIR)J zn8^vCmNy6T>|U3xrb&Qzlk^5UNh0LHSc##=>Q<|Q1sMKEKaJH7h6QJoD+x9@#17XTy}vz=dw%PYpo*7U&TFqmiwb16BvUiOfn? zkeKxX+^5gS8#^RFLVc(Ipt?B0Z!-Jw`r$>F>%6{)zT7tWc-qvZYvufdDz3IA!=27W z!5y6{doRC_{HVUu#pW@-kP=~B1tw=>ABY31VVqloJWSysJj0`O-#W=`8M3+f-JIHF zrEs~UI0Oj>j9GmbA*pQp5->g-&;?egZx=oCu-8vd6Nq$#Nuil^L?@44Br*tcodIKg zC8|B?-V<3PcV3)J`m6?wF!C(MZ$FFOy4%39#gT==hbA4Z&|^utdgvBYaE$+`z--_7 zLM{=!;(Q(Hg~!R>9vl;UE5;JeSAB`M9L%21Q5}Z*oENaR-c@9?G*a?rGjmfOLTSCR z9f^aZk9p9kXaR=`{lAEAKESyKOqp&HL=dT&o3-qRpz`LwFQNOGrQ9&!*2}&oO{z}b zZokL|o*2w(oArAtTOK^UL+&T&$j)Z`p83Ns`sOXehioFQ`DmXpaN+!RMM{NN7tX-9 zU0lW)By8{>C5(!fml%)M(&V~g)CbXFMmj*QeVrS67u{d51WZb~yhBq5gD`|f)-Z3> z<~Oo>?tIGTFJv{-SbuylB{H~%MMf=?J0thjUc%4o^&gLESSPIF<~FBVwgsHo2Yo7Z zEZiyK=z=&QsQ!L+FU1W>*irX)H4D1cprC}jru{i0I91koBFy-s=wC&H+}e`C8;Am7lA@sU>*SBRH!F@Nm8_8>?=~@vvUjn735R=Qh$1U$e9 zkSJ>&Ih^jx2_04=(7h6Y4OVBdyv(f zsdTe8E_dEx=}-0Ttt>hjk>AYoy_)s=2WksBYt|hol4Jx1;88-$(CJ>NU!G;~n#*7! zGqMcua*ah9ibr;|UQ(Z{u^6|mLPZ+Ay&>{!O2R~gFiLy; zZdR-f54t7Jaj|86j1Ie|y7q|;$6j4#U@pxGC6E#6Lf^M_q|qhs;ymIgJ6#kt<`vKQ z9grr`X69XUJ)2wh_}z++-ua{RmfF>fc%#qnPBLU2uUn~(o4x2Vl)ju6gE*PQ4G)bJ z(A-rZa9J_Gh5bpr@06Cdsm#B|lV*Lio&?R1HUf$NL=oiv!kKiBxR1Ast@WsS$H-1* zxdC8(n|XSnlKJMhLYN~kvU6xn{nDgCDu=>aJ>5%RbcompL(HY4g}Eu!vsI#~W$e%) z8mHRs#o!4IKurq?2u#3b0-*4)g*>oS7hU>-Krwg7FI;J^k#BD)XMRMNfca5jrX{zL zw+DxgWYO6y&*faW%HGV7)gP$Sq`I_VsncJ=jG5$58}g%x+eYMdCe>5knMbbU8s5{_ zB7U!xOQukT`%W>-PTW!Ix$)0Ku1(AoQu@C(fsZr}rzK^mzM6 z93l?bn-m0c2X_6Upn@O-dIwlKYu*7)k2x1ZlHzJ zG>Hhiozp&!UCdH`Xi~6BOoyLAa%x`Pg;~ zb3m%~>Pghwx^#)N&b>JqFrVr>c7McC*Ux0Fj$C1%C+%dRCEXHgEc{aE!1j#5^egjT zaJxbkj1J09B0~kAz&s5!f;-kBii7IO%QOU9=q8rG7t&#&qw)n49rV^YKRa&eL*q~h z8vC4);-tl~Q10z{0dJfe(Xms#VK;R+dR4kt3u^-r427uFe1z0pgqLu+{Ra6R{0+`$5--Sy>lI1{eo)WERK+``&*r4Q)v ztA%F5;frIKx2pm?-;Z5t^&6BFx2m|t+?<<=_1hJ+ju;Igo1yEI$orT;W=~rJV01nr z3vH{Y$Jz*kemja_i0bn=nntRLqjg~BxIOtl!7E+2hlJlbXI4w%-DVasY$?q1f&5E< z?HiilDryHFxVWpQom@AkFIk>HO>OG1Pv=nb}1=ugdUw&RBF5$PCaf@2bz}cLgh&KrLG#474jp) z#QSfj%K2Pq?1`TABb!cpDp8M{Ouw+7ogO$ZNczajq}Pn7oi@iOAJ_Ijfo%?t3)fpV zZ@Ikn4a;{QcvFiG@Yw+X|F zWM-eVKn0ZlH;Uk&zTfGh(IFR0+%^{{)m*2hjdizndZ)$g_uGGQ0gRKdAI?=uj#jnH z7bBxrvO4>FMSI{_+)HjqlfoMl|J@tg_P@#`2QG{8k=l=5x8rv$DyQv$vths=%*gLE z){-0Ssp|UTYP~br-b9#sZqkjo;l%Q&B!>Q##;>DEH(|hk?T{IK3i9#1^k3wovuqf( zy$;Dc;Mg}w%2N}U>g4wB4ndv?-lrpZ%K(-{$F!{Y5m=I`)A6`47f%3)h*7_%RN982 zcfbYB_y`Yt1?z&#hv)az5qfuLCVPJN5xe_vwmp z`IHjZ<47YPNDzl$*?LMFR>-r@*CS7CTh=~Fx@Zm4kj${?%@+m?#0qIS703F2FI1D% zqr@C%DcU>hGBcJjBP?@#z?jPT9@pIYZjfZMQ-w?=qpn!tg!^}nrU_eZ3}~)C^~R^| z=;+dospw?GAhZ|Ya9GvMNic{+L2$$Rz$xBxtNM`O*1kh3>o&xL@)IDN&NFyht9#VVqg_^I8$#R=6j1h2!2~fdiCaSI$15C&_0h+MLbYFp~?U z-(HWEP9(3#H6{-a1*_@D6V>A)&!@Q=g(4CIU-q?)-%v_ZCFyJGnn+LZ|326DvMGmu zo`-njlg@nWF8#0|GCh+O5NeiX*Tw_i`-j3$+i=m(Q;xeLTTgF`r6dFpeDA=<9dio( zGEz&s@46i;?^^2#>C&{ogVmldZ~@=n$GdXR%X!9G38LRc*rX(wc4X#JkVG-R`rLv| zHZq$sdc5hJoS&1G$hG100k+Ms6Gzh`xaO)V`h=EZ4fAcSztGp%PI-QAu{Bq!9;bS8 zrx={ljR*J1ChIscA>GdoXYHJ`>j^=YWK`D_JxgF!QEXYCy9g>>1P#6$T+a`3C$K0H z1@9me^Gsf9L2giIuc>lrf$)B$kQ5s%S7vcs^gcwY{Dp@BZv*W5=wA zc2s`CE$zBNEx6`Wc|KHV%_m4-szgcld9r6yf^WL`9$07r8RAsCBEEOBN9Pe(}{ z(Pg3{f>%Hr+sh-{#1{2zxOcVT%=_YYS&l)Mp2O-b&u4a)FBrI!>5T=o&RSI4`Y%m!$>+@>wN&nc_1>OIJwt~joAm)f&}Wp(XoXXGaQL)T7=Hwc@2c^`UF z$d>$4n%I!4DNkGZsX z2{3@-YQRj-v5jD@pTA)bK8~68i)omb*luDOf?TdB?K?(Vk1d<=gyhgRve0I=swdd2 z(@75n^iqPjdd^?-9r%!ui!Z~q)v+MA(w7jp-lN_`d5YegZij|NWOJ1+led&hi}olH zZ(bN%j&QUZ1G+e9IKQVKL~o_et#CBWous?MH9lICk}!q4&xr4N95p^!sNkZkP5;WE zZl%OGg+h3(wIu9iA{)q>HV$L9u(eafA;_Cks??J{al=>yahwh*Gp-^Qp-g?jyDvQ`U}SFc znp_A%c`%J}m(fng;p&r=y*pT~v5VDJt*?}hGGI6ateS|ZS;Z){?uxxG0|WomBU)M# ze1M&Q_#H~tAqX*}Ix4_-D2>^zSc*g=sy&yB^5qm6vPy!?M+#Fps{B_4>#@ldo!FkJ zVO*fgZGvAbWzc#VowSOTOz@Js5<@!fuI{{|sVFmY7&hzPpXPsGJwik&Ko6&VoQ!#! zLmSJ{3FQ%7t#NPNYoa(2x?psC%>191wRQS4|mZ(b8plev6go& zQ(E}eS`A9>`7+?yJ}2~;ZRoCDBv-O{()G4Uhu+92)c@|AYgvArU60ny%gV(+e~`f- zt7}Hf*N2DrejcEboW%_NvW8~G8Ob#a1tGxVwmK?#TjE!#5j2c&M^@GHuN9te+1{;H z|3GJ@|Ft%?#f)HP4NsEC*nZa2@64R=y7{%ATk8+nzMuM>OY?A%k={rUkct~ z@J@ZK3{Tx2#__LFvgOV_Wj*3_dV-0B>0Q-ITny7FYuQOCEQvaG=ihVfFK<~Ye_UR% zY8$pW5fw75n6Ll#JOo5?|13Q}USR{7npO%!>-`}J)x!Bwhia$8g?k?A9v_u%6Dq!I8fkJ*b54R=yUt`@UM0Ez*9Qc@a51B_$;_ZfBBui1@GtHAD{w{^-4|= zdp$O6O^gHnmE9m{7<;0UQ&<3Y1>#K975Oicv$btOO6qXyZ|JeG3ak~Y6Szn+7q z#Zbn7wt>$*@i)JEr8@g@hvbh9|FP>3bF4ZT8bFqV!{_dGSj-82rFq3`7788kQciKR zBLMtuyv`!ZX>gJ`7eit^_Q*5Q9`s7pqDVVOnto|cLW+U zT4XgxzT{laavc$UNwN*|EpT|Yj)Y_1*W!r5RKE06H)06rimCQegNpfU&SS;)M`IBLI);%V}b4fxk z7?gPJi8r{q=5lFdDXnn1G8fw6(Q#Bd3i6;|ZvKytc?X+|(f6t5v(y`u>yn@Jw+B;^ zc{0}N5RGyXMAs@Vge@gp=xA|u0I3GO^*a{(Lnr>j=Sqsn2HZi~A8Kh$$Q@BFgVu2p zT4Fikw6wt2u|mL0CSuJ{e!~ zIpf9DU`QwlTG&q_%~~|CSSX6X*||FZ=_&JwO;Ay8O9hvi7`(ojMq||2IMfvndgz>s`GR6Wr_|}QBi@}oNmm?hHwQ= zKiC0T!q!)f5q~{U5+2wZWDplaK{($|AJC;I^I-0Y*|To)MpF!jL|UB%u0PHW&ZNtg z0)s@$pn65WQwV&DPaGmAAVt#v{Hi|%H~0oz(H-e~#MI|4`3P6lOmT$C!HC>V4c`46 z!P}@EaB_}V1bq_G|LZ3ysEjL;TzyX=Wme~rqgk*n4D@UQ@GYgmo7Ne*Jmef|l9au) zhIA^QWL}@J>7Zi3>wbpF`qwgpR3RxIY^bjvf?OZg5W5TCRJV^Kn3d94M_SWz>znBR z_$Dj4Q=nE&3-{GyV?x+|J%orv2O@Z3W3m^N1W~0_>szdNT@Ru8?Im9YF!Wj1f+TIhfe@s)*CYAr@KC+x4^6$5lt;~c&=rQi9=HPyHdPFbZw%v9@O+Ww&Q~r3 zh7a$fLci>^^sJ@=1W*UJp<>a?bFgaNJxyOKE@A<+A!eYZBDa{EIu9e?iaZ zcP8OqHTnrgCmS=&i(O!KQt9_Ky=K8rZRA!Ftian?p-uwi=z>pR5;-1yT)_X}aU%EF zD|Uw7h)nCf0z1V-GIr>2JvRE@8>--K6e5Ku*L3HHf?jf*R0~1)L^9MF@G-I0_)PfA zI7&vm?pRajuM<>?hXb4%T1R(VfD8e=24y6xc#iJFEJ~np*k$G01={{&%kXvV!85a{ zmwfE!M)gMDj@YQ`y$p8GkNMee#ZT`B)<&*=kBH8^CGq-IwQmFGG21g39I}JH7-EpO z&Q>4_)jwUIBCg$#cF8xo7uw2Aw)fW^B*rAccj^>TU1!1@1u2}p<-f{7+~|NY5lagI zahBW(KHK{Xe>1&@*EoN8Pg_Rp?=}$U`rdzal5|9z1Wk&$UJ!u8?u-80S<&6&_%A;X zXf>_!bZi@_*uD(s1u#N-aJt1|OKd?v;)RkC4=_@X{`L+3&iv1rO4Va|C|nsFp29YG zE_b{MN0Vy5oZJ3e?M>)D^x|KBSM5xs{9`L*g{_)ynJrk(Jpz59yCJfcnviha=XK}f z)14R~&tWXW#eE(XpFHkbA40YeEnCBF&#jhkWHbh`lEW{RUM>K^TJbVfB9CS7Wx+p= z>J_hBpW|b)0r_Tkn{9biks|xr_baCBhege&s=?k5ZR;coK0qesy2BpPnzyvmqOoL! zR9k%dIZ8srlYIxsiTiIc;$tEl1O2Ucw#H=tI>6upD&u)YowWCcC40Idyr)_ofwUFR zY=beTZ;zF4%OR{VYUlT$b{@1aTJWp$&V)=~xntP!#cz=##{ukBTpLu^6be%)RW%Hh5jGWkWcO7Y^RFK2Kar~dFM_Z_c` zu4fZBVP@THaU_TR^LbvSdCO3kBE<67Q>R^p>ajcezV8kFU5+#j673$a>DX1IsP4Hc z85MT$*WDo^5y0dnfrMc|6p>&VX?b* z-Xm)K8N~c}%nkas;*4|`KI z7SQ)rqV!YqzgJ8 zapZjV8ZGTu>dEnTnN6$+TbhoA|MK>wG?m!Gj8_FG&l?XYPm(Z%kAY9p^EiLnulo?6 zRX{gvV35*j@XYg0E{nk_IHli6`f-?rK?)rf8P!{HLqy@E~&`ob*x?CF={8U zS|RE-Ec9-$Hn}1vMgCaZIbADD`uM$;3NGAgnDLc|7yCjkN#@o)^IfzPR}Fqm z)~g_V(1w=cItnyBXwZNDT=Yi={(t+?6EZ|AULtDKyXUdpmUV)a?^P*#<_p&v(vqlq1-^Ur z>wCX~#4Up%iz?w%^4XGc zC_INCb_W%p3bF}m?cYj_#DO&gSPMD4p{;cun$h<>gN711=v&imTOBRf9&he_rV@Z{ z4M2F&mt$B9ybg^(A$n^b0437S02wQ@sDL(lJ~8tusb>J4qyWs@>HH~^(_bhEEwK`I zhe7Qa{iUT3?E0;iL2QF*xAgn1$n6B|x46_RC`_m0^olawWjz#q)BqHd&x;1U`@_(2 z*&Pb59XnmVqF}-X0R8fCuU0l`mpY-?q_rL#frT4DAK}pKwOi!bz~!m@P@RJDO;sRE zn9nh)*^`G7B8v;RJa38LO9yaIppA{-Y5*KooNa7#^D~%+O(mS_?{R2-Jj2w7#Lnzg z2;%-_az7XBAlLt32f>}B+UxsTtKnenLewo$JpQYqA`0j(!+H3RQoWfECPS!FRsk}& zspVqGh2%d^M1478hhd!VrE@^eRH_9!@q!EsT z_VDPkrDD;S4v1fqZiPS49 zvuYM-uNN+sT?-^HfL|ETp5xgtzSJIo_f@%^Jde^k?j8T>1;{DcX?Tnx^bPnb~ z=j-=*a^=&)*Ofgiom)h;`3b9Fs=m6j@-XQQ|2NU5BQ2j_R4>xcz|f zNo|1s=k_9mu+d}-QsGkk?s9kCiAIvCS(vBMw9Le&!5qLQGYV3A7{F zCuongdh$O&o^Dfw(?45dE8UUCWR3#V8=)_pRVo#oY_CjPwefsXu4BnJ;8C1am85!q zbqeJIw985WM-nN0v<`+oz7WX+Mc>n z`gr-}kWXJ~Kk60mN|pP-zSdw$$T10LqQnwz&>r!U>11DRIh-}Qe)5atDDp;}!Sz@=>Lh;YZpP(dO9U=P3N7r6yC@`YbsZIC{{^*3)3ICX0Z1x5<4ab$znO zqa#$sf0?V$p3PzHjlBZX(nn0#$k67jPa_JvO}jk)T#Y-FY#xQPg@!C!H=>-xKY(+- zh1H~;+p1#C8Vypu-99w<2&GzJQdrK`eNjQxwoGs4#goY-bvZDITf74elb$KoPug3KdM!3?ioSTE}*c^vcCc4Vh?^I`<>rj zylLA;z-6$7Y;*V8H1BliD#{1ud7a+K&K0Kdh{w^i`o6pP=^CY1eCg|5iO-pgSI(p; zQW6$B#jqA|NEiQ;z7@~vWO=5xwBS18f^dkQGV9 z*E8bF=C;Tkwjf?Y4YUPsuHG{A|6NbdDJVD{RH$q;Dtf7_YqYA$9GGNa$iTw$kSfn& z(U)F#YPn6ShhXN?1oOD)QkiIhw66L70_F7D$();(p(Gc>n!UgAMxP*buuRMau2!G3 zD##sJWbZ_tso3T>W)*}mmy5FZ+!@8KcNI3Au}_wEd0!>hFdMFS!8-KOdlq~N4b|ta z0*=vxIi^V{OT@^%bI}uTb&Q&Gb*esD%n0`b=lvc9OO;1x$Eu$#7MOM-fO1Nrw#Od| z!UWM;9m}_cNB~v6Bih0HV0&~<@Sg# zzTD}0!zaMlNX6+hwA6oa=Sa?6n*&3X#w2-}x1>tzI2|yAsZSq2_IW9ZykDnmhJdy! zH++10vEv1`FJw9>&ihJgzYE-N!+h+WnU0YC*~d$9#KF(VO3i10CdIe)?svYw1wm1) zZL67rc-JM_(udz(H+r4h6`Mr#D&P)bK0@)i?^Lxr<7r(X^Xe0u)Aovq$E(usd!5l# z`j~jSUyG4hH*pLszUkcJC~Z)-;FaW+r+4F$*st2gDy)9CKb*{R4`|g;+${mR8+;aSSH#9Nz>Y>)KPmz z|0dr+upr!r6GscK8LLZ}9Ng4u7);Udco^W?H+p@;V#ggVoyrqJt+e9-3e##HECH?w zK%R!|JS`Zlr7~l2_(L-ed#qu>VzWI}NOQ9A}MV+&p&AQ&aw0-Ky%zw;Jzq;>+|szFF-#{GoH>Sr%K|Xj($IheTImx<9eJ zU?^WkkW9O#%-W5}bYl&&(tr=N#Tl49nO~Wdt&`aYVV9!P$q!fgLy^q66?UgROUtzO zDZX}l>9xt{C%zk7C3p(m<{t1%K9c9v_f34ws5gPuPMU}M^>T*}yP(n1>X@xCS?p}Y z<DK7bX(}!*NG6LNqkA2C@o{Xyx%P|$xbA1ChES(P;BoPRu{h5=%q_c& z5}O?3L^~gACwlryJ>(r|p0aP3e*cPzNOr;6c0-p@aA0~#r(LksZ2Zm?-Mf4es%q)N z)_~cIGJC?uWw4tkxczr3YNe>sx8wvcKeOKvI~(>%YO_C0$6|c+CQW(%`11&w*Ie}O zCdr*Uqy>#unhv}kpejDru6@eib-8DKLhw$Pz|#$@zP#9Ky+@@MtQ*G0ku(F;8Mi9K@zvH5)QGoiV3mOvQ?_vaT0cqrZ0qMMkXB^08WfS z)4OBYZHMHI9YkA}ZXWUD)p;yh>!L@I=XH5ZGSxA|Oi^3}2mXt?P6bp!EdngR#l|m9 zo*%i`p8uxJ(MzqSAn738X6FD^&PBv(DoJ5?+>xb2I=S9GX>lYng_$ksgfq`qsk#iu zxaKZt_!r8_m12t~mO6CGds$YTDhM*{vWqsELYgj0T*-8Om1lIyFF-0`mf}M0BoQ}`)z{qt$JKlMlr9! zK=GyU%vSuN{E&9*(2!HrPKv&3lcl_eCcXyjnLuhQoTpx9DX!^S-YU49Q_Vx8sW|6u z^42JH%zi38m1;;jUuAMM{b^0B*nBjT5Hb->e8y@QnUE6G+;^ZeIfka& zC5CL-@nA{Wla-EHshhV7s&u)VcTQymT+z|Xs_hQbtuo~wxbF_LBwkdLUH}Iv8}5FO z!MFFgr8GIwH*Zt|!=_~!1y3M3+(lV*e3tb|jg24`j4F1h%jO(}(m++L)%!u-+D z;y37@7s;=k!RLF)6)zU>;P`2o{O0is^l~Fs%kL?}k3?vC=!GChOwT?8@Q2*TB`vAf z+vbd!)#OC1`i;nqlK&>9#29rH0+6|Tla%^_IA?1KN!8iG2CXSl`6+y>B7z?*rFtAe zGx7cW;i~I{I@@|ZSXldS(h|C`e(MFq;;q}NPY#gyQGaB)w>l(b)uNx(&l8>5lx0fqsu$W#kv+y(zzqW>F(Z5;UpeY zqC?HJ8~16uZO__zJ~=vL<-;seRG}>VC@*Ptz752DVn$O~ZoS`$?MR7#-zg+RXo&O#3wtx z92X46w)ylt)QW#OSLkbE=D+Y_B#4xj0$Kx=+dQCIuA@ko`u?lyMHlC6pCA8lkUbXH6MitP#FTdLNzmLCO!I3Vxj#+$`}Wplx1$5E4G4;!&Y|2pZKI zj*I3?xiDxF@x;zz&u&7)(UcpIZ-omk&E2_W&KT6R`r2^4<_kA;ij4qu+r%BM6gK); z@~)M^e(I*iov>iA@3DecbTC%tDA2gc zH$eXeXY2(J6~@vC!P_x2Y1d-EQa|?b=<`7pl2l#=;* zc!iA*t>NIAK08Q&0S`C&v->`7b1@Q5_B?rP*11T3;VUqXvBxrz!@6Jg-L*-ZAtiN-81XCx_C8{<-zGE<5tm!Nf4D(^}29=-|h-IpDk(k)R@j0`qmO)@q32vxD?19fr*MJ{<9n|UbHb}b!EsC4YQrRCwH>D=MS zBj{S1l&QtH{DhG!Jo)Nms$K6!;0BN_?-!(dLi>7=A)JM-Z!EUjph19p;c9wnjAZOE zma}aA1VBCc`+6+RY4=Zi#+z4xgGp!{w29^%mnTal$rp5J zk(^`p7q4aS_P6?NcP7wOM}=-4cYy1u*Zz;0cVyZn z-OUe5v&Ga&`bIBW71)mR>d`@p^KxlpWf_#YUj0!~`NwPl;8Xlevl7{s$qE&EJ2r8x z3PM8kS%9g*ZuUJl5P*sv>wn6?V2}@eXJKZ~)qx`a2`$U(0n7G@*H2P(>Oz_=(B)G$ z1GElAZq>sp0IHLCgYs7$cT2~SZe?q2LJ(&ch-o!2@>xc7Ve-)E|3v%fZj6&i+SlB1 z>o=Dlh5EGBnr_?x)wj(y=kuG!>J!bnY>@q(-TxVopF4cl+*DxQl*IQr|EdTQV@!6V z$$vYcwbpJ{bUaI=GC9{#MdU-Jh~YW-bB=>L;W-R=d!;A*7-Uy{D?j9vBK2%j{&F9n zD&q-%xL(Rzk1a2+gb^@}XdbAy2iZ9|AMVVgPZi7owy&p1pVJU63jXK){`Y0c|K^bX z_eWbf+Y|qxsQdrj?m5>ZfJ>P)*zE+EwlGSxrq*YmD=&>^^F<77ar(xRQAzvjkz)z< zbkIzy%^ru|nZUbmDE}0{J^@tx$_4+o_Vj;m5l#URtD$}8pgy&n%`B~qBKau@)EVNo zFCnvJ_it;C?FT2wD3}|3(Wc z)g$=ti;bUNM9LMFFIxb9>~aNNnQ9sZEQ0@3%Y9)0wfVz$rr!C};F;kGSzUksdR{Y$Q3rYg4LLn(Ofvw$ z_8Q0y*}|qB*(ykLX$9pHn$Dj4`){*@Y9r1Y7oSzr>M1&tt2RHBxALHzVie#lsS#(T z7s1$9Zj}aP?*@?}3HL-z{^jl0hz9VTg?uddRyafNnp3zweSl?(sK6>Hx;(}JhUo^V zF)MvfXX2?@dk9rHPekRvy7K2nfH4dp?@>Ys%Z{4A04-v0a!)cBEunj(5%3hjYVV85 zDkrhdvb)eOonOWtpc=+Q1QV{R@7cN;lPc2kF*?HMezYS)$Q_PVu+UUt$fa*^dcjq<$YHi&dJM`xKsHY0E7D-^G1R9WQ zhwuNb@+YOl%eCII>A1-OXwpCzl_+`<6Ii^%$fq&rS18&-QF)#X_Ka6d*g;;y6nB91 z_vgbxvWkO%^P#|IDd4I^;AD^SRzKgT7mmxhT+%8;ken1tBjJtzVO`?N#atY=5A#J2|NSCL?5s}uZyX}&FJK+?7o=+-2(nvc4 zj@VnLLP8%Sel_yVe9Bh4%^tHfMSKs*GTFP@-YKtmT-!sO81n~qTXFkN*-mNt+&m& z)A@IGHRUWiTM0!&-TFR<`ltNwHk*B8)!WF{dgNZU`Knst4IRJ_*`Vv!Iw?iCeS^Ac zeRpksINUw#z2>V>-VT-@zB{v=R`}m zm*s3a_UJX2=x|dvuVdPkQ(TW97YI^fBJ+HpyWtdq>?*fFao*l&r-XhfGqD_H8?K13 z*T{>?c4oL1_s$UaHB!AxyzbjCR6_6y)eWlJNQ-mSgOL_G2;P1};p`CQp>1>VxriS% zp{q%8#t2z?5KeJoPnwwLNBe?af{G7?`wJvfeE;AQoc6)3)Bg3i-*+m_i-ej@;zl}h z$cU(dHk3sr?FGrCqY7J6bblG-5|?*E|MAaePqja8;@0njyD7J@o>WznseqyD6SXow z5#tvdGmKkz0o2d?ZSY#L>->L9rGX+)n!<>^$*4~4mKGPiQYS^+qD)D6Tr4$718;ij z9GW^R!`Adk1nukivsMfL*{P%S{p$MK*BqoznubM%mn~Sc`n$f+v>;yq{%gD7xwls! z;Q4>p`|@Zg`~UBVq=ib7gtSd16xp(;lB^M9Un(Jn?Ac~WQ3;i;Y$LK|8M~}w2{9Pi z8Ef`sjAd-Y%sii~`@X;1{rx@XJpcXvc>Zxthi0zpv%Z(t^0)@e_wGBtB+JQLe}7qV z#?s}GS38l;K$j{akW{(5U8n4&p7 z+fGM+um6R2jo?2WhKA?p|802o8KjpyTmE&WNv|fG`9b|5n?ykR^V~5b$Uo0PekB~b zGVqY+FD(F2hg|<3#w(LK3x}4yQLC?<=e!r3Klpa@On`OuO@>gye;~U5^^Ey_)7ex4 zajf~+kDLpB;5&`Z}aS`qv-!@WfE5h$osVb$oVVsyX{_6LzAEy#`f!7 zDOuOkHIAR>YIirSztTnuMNIdsuMhVqfhD}!nok3?jEFaa;4=Q>DE|9AUKg=|F?1X{ zrkL8e3|LEV4(IxfOhJdvXV}ETsx0cr&UD5s8X_sa{T;{rZD@aw?@Shm0*W-ik-r4i zi^YFgFTc;{>w+M7M|6UT+WCDg|7{Qbv60$9`UfXK+Z6TRhxPX&Oe_G$YqtbM*+KvB zd$eYqXkpV6W+1?O!6~Tk+VlAhIQb@lu2T=l_iJphpEf1)7%|D*js zj+))Wcz_p*dobIP5_<9C|1f-eT~$u;?g*+CnH0$|cIN;J#s9`7`_J7(=gT7bOv_YC z;-Z9tF#x9+J(m;$~~Cw>z#QAY;^*_ zk?xf9?FcR?04bB_%+%Y~S`%iu7XBg5)CDx!?$_Iwov=%ynm4X8?c+GU;gOQN@9M+9 zj+jIX24>M0(c=Qq%f7Z1F;_Vm_dYtD+j3T|KQ%g|&cl>oo$8VZTC}%}G#MkXFAwiT zJ0_TcVxQ5&s9w_pwCy_Nc0fveN@c>!>~Q`xdUXV=cDM6(?@wC$dKji|yX<&(P14Nu zuCYYSj9b?Bj*97;&W4w+0#oy`Q*SRDS0Hhjt9feF!t|f&j6NzSvg`83u!yp%5LaKS z3O#U1^&VrHpI#jh$2@_WJG%?WN!+?f2hUI|>ns3bDcd~?Ge%2T(EWSnhNWHMAhSEL zzg0@K_ZLPN&a9M0SH`;`JQ1whdv(i-CyTv(SzmrdnD1n+S1ugaLzeOb=pgF^InI)Nk{uL8Eij^Wm5!GG^g!}2jTDQlkO zVg7qK0v_PRMa2?@dI_EyR9;mYraM^%dA0iQ(f_gj{`hC1 zQFSfK%2#$mek2uqVQ;4l2=Rgpi~~>(2xohyqyO!yv5E9!oCAs&?IWnR>?fvg=3y{> z=Z4lRp!#{>j{cYI8U^^a@%~kgzXd;FgzXrccU&zm%UMnkK=!cZH0^xqyb`$+Eam2a2iMxg5HzdYek+ZPtf+{LMXPmuqL_*^yo7LhBCfDpH%A?E^; zVw<9?n`yE9je8XD{k2v8F?pcBt-tTW28btpVxs`_L5nm9rtSgaAPwx|wmP+w1cv`Q z@&o5AhN$g$6q0y%35}kVasidsbRcQf8>->^@#;S!PmRNy0Q`Gg6NuwJ1*q1SL9!D9 z8X4|FbDjXi6$m6vg-$*j^|u7_xJBt4k^d+%d<9(=JQmzrtCDLi??*>IclV5>izZBiBjN> z+d%--(Vrjt?-A6M&(&RB_aQB{fSko%&N)F$h4V9VGCwbBfU7{LWKa~Ut;al79f}!z zPG<-H4VKgK9*aHA1;u|&UiDrEnX3Dkwmjdo@BR>#zT z)5Y&3k?o z0Byw0tmxkw<%HkvTjQkQV7ocC}0{z*wR4wc#fK48qPFXU88_v$rEbBlMlyf=- zFO1z;dAimO4+>zHm$C;gfWHC0xvEd3HTmEsPPekKn$D15uo6rRs1#yz0kAttXFA?} z;GzlWn~i}^DVvsOv+iBP)MH5xZHtz-0M5FQ2n0_4T=;H)JA*H|1s2U3xh(_;Ab<__ z&-nP7*=U5WCMzVKYr^i9mh9kmEj{=n@YR&BG6N8INO^C3o{ZWzg$BBq4cf-=MRpz< zXsrgq!7*>ICRDrfw1ClBNFvYnbSpg15GB1Dx zwe4Jpu;dA7NveeU+3iJ{^>5Y=uq z&uuz_9@JQuuGXaH8y{P-){s#Jj!x|Uf6G)txTJt2>_ZP3qxYZ@4U2Q_P<4v$(hD}V zqNhq$UUV<*#O9ZMHLlr#u$fB=^i>5af8z#lbn#wr)`r*ENv-@iQ@5J10b>0l5B$4O z5WJ!e7=H4Uf4vti?soF>%p!&Wba9Us_dN(s6o~@AR`?Zt%G47hxP&`i43@{UjqlOe zoynzFDzZs$Z#7tbY=n9^i3q#Cr$BD`7Q62{1c-?ntTc^Lam7)Ojj`<+9n4gUY zj7sHyOD$|F{Blz1z#EgZ_hG<6iC1s}R9x%h9H)%FIup7V(%59_>DD|^0U%2Ifl%gr z^|Zt<(986w=rD!*&EH+hs#5`QvLyf^ldk|s+yfA%u|QM*iF9^&*}0CyTsi;{?t_Hg z>wuKCR5o8(u#zclrl#KN0OdxeW!KP&TU|;p57(7D_+#xZ+cKC`5XV5$Rz$` z1W?q*>h96Gd~0Ah_}Y}%*USqfN|*2YdSlQ4Y-(N$bQ6C_%>lqUa$)W~)swOY*4|iO zQLyBu0uW6f=iTc?^Gi_HZb-~r<&098x*Em`bjRDWf_>(VM^5l30*DWxA+xU+2)`Pp z-Sda23hw4#%K4AJW9K2;zW|+mm(jDex%snBy1KfR)1tukL}4$mRH^LXpQcd&kejzp zp2C$hEjgpq3Q2M9-0^sxZkGX}(Pxyt|Kp-kgi2gncRButnJn~UTm;qIJumZ5xH1=) zt=+p2TP2DzSfcggkrFd6{P^}lYys45mi;s|U<|y3u*AEqIG<)>e7et2FEgwKVak~o z#_DES*R&s)+M)ns;UyRn+ST;lZZZ`<04Zt$j=|;)?c?&s)jI&qCHR{c0`2+dWy#V2 z2GJ3Gl0pGa!0K^R(s)lzk|C?UHv2ji?8}p2&yUpaf<80^FW4TfF@M(<*t8ueEBK7s zB#h9Gp;3t}0wSP8pYyQn?P7-k&}Xfq%wzcLR>{^+RNU5*0e0JAX6-XZaNbRH9C$HU zls#LRQ^mWqyBuB6^tWaHAQ_X^^AMbj!K*-H*8%gQr#)jq@yTryQE>c;McdEKwz zIZfSC#}vguN4xwfL)=g0=WY*vcdyHMQc&$KXCHl5f)xk@|G-U)hehU5;gZzVak)RM z1ck?IzP$zBs;429+C0JI zv3IDHdCTe(U0OT889GrV73UVf$>J2Zc&%M;y{^`oQyaAm+#sHhLOue$K^2T+pUMXE z4w{P%4n|b)?aE%c{{FKPX6;G|fbz+^bEXhgh>5gqxd6?M zbZU2HXYN>rmhY2ijWWYmg<4S4G9%nw-4O}#iHjLsLR}tJtMO8vpYZpO>zg5950(Lzw9jzI3gZV`WLkbk`e7mf!ZsNg1#o((fyuPVnAi+MgZHc+4v^j?x9E zFGrhs*|rDRi_cu5KoIRLa3Eei+uOZ%!u5!v>86b~dK>bjax^T{@kxt!f3vDzy#r!} zD^amT1#e_cy7SlIoGLgkq`TTEjC9Sva?8-Um&-nVZiC8WJ!|0DLYgf3rWK z@syxxDdwFqjA`PF;5hh3I!0HmONwM_+<`pBin(7JzOIc;&@EO!4RBZj}&=8DsxRk4b2h6aAfMU8ESTXf%9 z^Ji%b<_)S(%r9@9R){otskiN=qx5GKbV2J>>0R%;je9B4OdYzal9IYjoQsuCO?B|J zDj-|ixS{&vdiH}Ry&k8X_bPnSh@EsvRc%5nMrakp4z&A6+O*EWceKvI1OhcDKbApLA94j0id+qD(ADc%sSk{J7@YJ+Wznopn%9W1zpPsdV4QCaq4WSC5E=ADd@FOIc{QlC4d zjZQrP6eG#K_~HYU`ZJr3YIga2e_Z?%XWo%j`Ptjd$w^#mk3YI9aWu~M36vi3zEs*= zu^~SjfQ7d)&Z`NRevx!YuH4WZX1e~}Hhh{_9T;zuVkiLes4#y` zAI!g;W~|9M$K=!w#5sFDhudZzn*n#kium|16$wx6&(RS zCGVL-JJTf$;D@zzTO7#Wp8RV)Q1J{ifW=ps8N|3siy?SFAUD#;S^CdbxG&0fdj5lB>$!38Ad+gg)-@9&+Uo#6P zmtVMl9+4p9gF)PFLUo&Utp5kD^*&4`mB<-)LeRUEtGchf5`Hh|HS;YfHG8K%`r1p13~h~ zMalMlKr~3*yT_j|Ff)iYSM$yJUBSY{xe_wDDf-u@;snHPbYO|en8O5ZJ$W}TL9pjA zpT|NWvq0&#z>HE`(-4=FkF)g+ADi3+wL}&MyIgBF8`E%(Q%-TAdg5lsn&Nj^QrCLJ z#(`VtdS4?pfj?1+@I{UvjDh zIpwuChq3!|fZWHP=cv{?K8aW>ua|@SlH7dOAy%7aQqba@QjWw7Qvlz3=Apqo%mi?4 zW>$s(CxPz3iLdnB(ttZeD@T8S(<*x{m_MF6?~qQ`=aKqG870C^E+-&I#v=hs)^hWP zfTYxHt9?Nj4>9QEWevxVf>^2?Fy(NC`4shl1-B#%usiwhCR3#Zaw%UM;4vFwp2AC^9Lq^AT-f{95F-?XRD@sQEoKkM&8*UspUpWB z)o_-ZiI!GDA!=pCua)u`pO}8m5h&%9Nauqnp{dNZ*E15=2CUJ(&l%UriGuUt4v!xw zX36Y1x+1us@0XQG0iL3v9*4f9HBr2PDbQQk&8&(Xi(b8%eT9G;yZS5=I|rqphVT8+ zswMJcAp3cvR8i|(u3NM3Nql(KTpIJjzG2QU^Gt#Ay?X2Wz6tFrQ8e+m_2Z`U%8tKO zh~{XzoGVv-<)RzLg76~eV@Wt$nb=K_yJt-=)!P=aHJ)@)$E(8j9$lJ0>tCfvNE9TN zfclnyIj?IGR`XY%=>gRZg=JyZZZXeOxf*<=r8^0cS6c7$&n+H#Nu$DyTvY-z-=^nW zAA8T|%A(Ri)soFiTnEZgf7TK~)H1RM{P=H$E7u!}{+Kc|RgdnZT!SIXS!ze4!~LUe zn9`}3t1o(*7y--E?URa1$r6*o7 zttmVCVOr#-OZSu>DS#G3;> zdXz5yB&f?7{p(HnR|WNtl2ZF2s9MPL=6~1UBKFe|K@uq1&Zf5fKhL$lUhj`94=8|7 zJ~H|Y`iO;(E5Di?eonu%rVRD1|L1O^qB0a1J6`x_(fHpolD{f3zenhQ(ch+bYRU+; zkwMw(AVmHJbyqw}pvCD6(0Kj_EEEzPy`#u-2lS?51M?u!Rni*7%-cQw_{3Gf-SrQH zNo#+!HOf~0S=ZIoWe|LP>YdwdD)EEcb;nXmB4TyMaRU_npH^E-(YHP|uEX_>H}ony zN(Q1DxE~L2y%keP1&~9^J~DrD3wh&fm7P-Sn~#!1XYyH z{b{1KsiWDMc6|n!oICu7+tZN_-gc{?D^~wt zp>wJCtHT8M3L|`jUJIaeHMJaoE3sLjCK|$ zkehb-*5uSh+jVOYLK$f^#1Eee#He_4vJd5~3E!&Sfb98FwT6P6;*dTGM5l!KmHf5b zwG(bhne<0N*&YcBu}j`j(-cin5j%|Plw~KI-Kr(gG>BT%ElqV9t9@DNTe9B&HH}!_ zIl1D6z=|18PYa>lsyrhEYcpPXPUYnkv?@22y1z~GeZM}dVH(}v6A6?}Ez11XJEN#T zma&9;gSUqM&3Q{5AjqB;nj3+*6e+XygY z6KEJMYHYkwVi~XbG{a%tRAU>FY24$Mc9OA~Z8r2L>PT-KbLogPl3M47U` zB1FU+i@|kQEM9enfofQpy&h=>#}r!9KIULBn@89%P~;v8rj{kl8z+ zcQytraRwF8Z34Af-;DEQM<3lDB=Z8!%~0S2g1~gUXyn=nliAl6Y`{MS3@+-JI~r9@mK6qn$mnlt9i+qp zdPa9_g)C@~{~^K(zA(g(4OvJZS97zADO?v!B5Dv!f3gHZUwPC>x2BBgc5&10(1GdiiRonQxE}4@(-v2DJ>4kw-cQFKu z{R=n(zGlt4Eqbo!nk^Cjy*BQ&V@8S9A!HBI#YTf!=y>*=+N0}a%vZK-TXp?M>3)cD zO72_40@QTLV%c8)+*6Nxx8bvdM-1C?}tH^b^;-Ljk~T z{Wrkv_k>y~9X9`J{4*}Zh;{!|@O7z)VDDs!pq~5sjURxZW5&eT%)nH4b{I14_@N8H zg=*+l!Z*DkY59v^nLm;28H+=>+;_A|b#28ow^y1cYx! z$9Cow^-FRkd~*YiRWV6ap36{RtcTR*oQhjK-Tjkp=rAVt6EEI->&NRINlgjz^}I@K zG6~w>7fHY6zV&e1DW{BYc+XoQ{lxU~@CSCSgFrSn7%a_W=ghgEqtNi-6mZ`r{dwOi z3NpFAya3-WNxH~WdgR!LDc%JjO<2KMC3;G`Sh3&#J@c0Z9L{0ZK?Gk*PttUD^64NF zGv|tWk%OUUTo3c^20IamS1Zr~vL8RvC8h$JxB8%Ydw7EPtCRtRs}Scrb@{7pooklS zK93c)(7kW37a#7ncMHD$S^SB3kqCU_2I8BsTi12bDkNiZJlD@j_D0y69Vw^#M=_}) zOsj0_2j#T33KRkuzx-PWpg7LF5G)Sc!!r^QV&-3g34L7dK%Q!kY36deVRtk%svhYR z!8RUzG&eJ8b(q!{#?}9%MJCg4J^NN%UvrsHvw)xCRcO+IaoB$bGd2~wd~Zlru^Q(w zUf1qo*aT%rXG4C*WRv5cnqDw^qT5gC@ghhR>SyE3dpF*S=qM5riq|SIZyuKm=XZbf z(D%<@A2*y=mWE7fzyR?#lELhDo|wb}VDZPl0)P+z>r@aIzh%+28D+n|@95zjju#T% zu{O%Y)!`hKPwm;=0H+y!PWz@*^RlX8cBAv-Bkf2N*yok1WUExG6>gv#Dq_)S1FlpY z^}E}05oY?xqf1)bYz+nXnh`KC7m|NMjoP0vR2ls7HtzK{X69L?I)D>+YaCvia~?OZ z8D)727^ZD>_tZtzOEKLB%9}vM)Tfi#o6FP%GB4W ze-7___yWK(DWHJ9|6hIbze1i6uF+t(@z`8W!FL;6cE$7h_QyiZUssgOTb|lyyml)% z^Ip*Gm7G67*M^$?j8+ScI5SvO&@M&+KAG8#*c{{v;RFb$3Qk&Ug7q%`XD=slnUU#B zh+}O}mLKIJKC}Et@q7>XWV838jAzPyi^(Q`4804J(Ho(!N*LEGL({`Ql+ikpe|83;ks+@W)uFA(Kj zj~`hoGrj364!Rt859sdagVTsM3Z606YwFGtsr|QvBsg79hydrp&GYv4`(_mH`9_Ku z6<)Y(R`KkY+k^51&CN=ZuSgtPM-uk0@ZQ% ziW9f&3A`|?wZrKzp)YC$FNn>s2In}N(0{A|{Vc`904(xmxWM+G@?KLPAJ&2rzcZet z;*tqK**$%5OnbNg>DqgMBzNty-d^zOx&QY;1|p)r&kZJey~Oxz8k$cNSRX%Ks$mHN z$$W9&%c~oVuyI|4M1^{CkQy29UM73G^`@?!-*mh?Us9e> zjF|2Z(JQYvkYS4XBl!YmSO1ZGf%B>c^?S1btfswK)mpaWK}cGp4@IZe0fD0{>$Q+8 zT3_^zpxN@9TtJBqkwXh>0JImWXBY@D)j|yVrBIKGGYh5D32Qm_A$HbdHbZ|%$3b|2 z(!1_X*k}D#(Jz69-1(D0w58Oj$LVn~0*Ex`xutV3jswZTFh|KJcc0VmiB7%+*hHy+ zo^vxgODNE3sP~%&-ve)trbC2KNO3L1u}&gOF*bk>3FcfqRXX=IvlgmYB@(qQb8j?g zNc4Y+nDQRy895G#OZByem2Go-r=*?P)Us>Yp@8NE`#c7VG=S8m zggp zxRT&D4YcM1M}Roj?q@uR!h4&2jq=C%)^mdn`ZT<9W(EX=5#Z4`28pZLW#!%e1_tfn z73UgeE+#|(wQdiO{UKM;#J5W9YjVJHvF@GewJUC+^g#VdD!Au-v_Di4WSIqBNH0+F7rJvYaK z8iUNIrRl=0xGKl4bDKaBht9X540YC3B046pirZg&#g!6KLOXEAh)Ah0kyb>3ve#SmaGvtFA1`4IkI29vS<;rYqr@|CV zp~K4?bf*7Y-#E5M;P|ouMJ@k^eb=Nn;klGZjL*5t#>JOSoSV)m*LC-wxJ{KY?z;x+ z3nH3{Kz5f|k*YIy%o;}@8ID&}bLJ%P&QUsTrzr6L*3p|+6Ynw9tKUD$z{y;jbVU2G zl}bd*tE9cJocnG%9br(~%c4}x9kO5e8{@vaN3J#=ym=;__0)w|D%yi|k~#MDMoMZY zsj`ZsC(=#rmKGyb&Jjv7tGvt0=HT5Wi%)~5K$#NZ0v7AH@_pj)1mR0}?)1^^uh_FM!VzC z;g38W2f<<#$t-(^o_w~&f?8sURgwL5Sl3((7SqWuI{9b`atAFM{EAmsXqInY9&d#E z-V@?yVB};3!tYt!!TV^|FJg4B)}WZ}``;Tz@Ak_-!}mOo|ET`8y1;qp7l5(jdW53l@4&(fh z9rLF(%tHoaR#s3MQUcxBu5wz7A{NQPHl0^afx>@_HDkH=33)J>53gDr!Ic)w=Zhd zzqC>QZK-yDd2KoK$Aa$S{*>nBhIfr8`a{2%M=U+lA8VopIBo_y&J=4<1>2xq@1cyI zWU|-X_k~2XHn-p=)W`Mxki4I-fiIkK%>2F}!0vfR(zWCFsz9$9qPu;MP562x^9-eX z0zBN1?9LcFNwZ?Yy4l(bG`)WgE(J<1Ao)AN^Ik2AvO0IA959;PGY!?iq(sJO0oD4K znWI=nH2_t*EdnM2%k;_CPlWbM!~qmjy~Vc%kZg(^$K)n2YT23rhPb4b@0@O|irm~i znPOcwn#-tHEMYKJFnmmPMdLYWT31TD&a{W(W7qr#wN9KCNGS0osVp@jLq9r_$V_ldIpdhqRIL~ndEb(lmoTLt95XN}4xXMXg>XnsB2U zxUH`N4Y#2*`EypZWq!I-IYv{cu&!mWOLF9m=cJ%{{~*!9gYdbF+z*LUmd7%}y802< zeKwzlR||bcJkKz>6}!;^Vg=F^s74JDGXmtJdRq?N<=%6K^d8J7YPOi+szJlqO@)tM zi!a|>5>~PU156_25En&LQKc)}KmpKFa&f!Rd5S2cT|9tLk8{a8C_BQh>7WSA-^BavY-=2bpN2^n4{SO zpWe1|aj6}QDC+9f^Xf)%D@($=Lp(2iz8CnaN%9)obs@n`Etzu$s`M=!b_W-(f5zW+ zQSQBH>D_C(IoDcMW69m*e)VW`q$gK`2Z~HnL*MzBfJAecQf)EFPu1rnix);-Ez6NS zwYZwq+0Y**gUze%g~wXRL&9Ri{M23?iCc80&7;a?bqh`3YPI%hux>ed{@goU-yCap z{-8%$XMEY!uVSg*ngbe|rQFUaq-M{gIpdg5a+1XQVn6$1fq-Pl}4eFhy|2dl20fZ{VtrarEk0*xng)_zG<;*8ID?m z53vr!rMGI|+PZv4j_QkEF)GC&5!J;blItmgh-C_qY zRUU+@^?gOW@NBuhg=X0$fA&GIHkX8g%IubPQTjk)hPMNctV1OL)b&5n5{8c`&9Qg&8aCKB3;<)%4uKXZYzZ>6a<($O)!B+|_eJBM8Z$~3O! z3kIl*=t>3JxPttTOJAz2$nz5FBMxcqHXpKkL6^sv$eCsg5MR{d>1diZvKWReM*e~! zA8apUx685Rfl9NPo|@j1$c<+j*vr(kg8^mJ#RARxJo&De{=l=a%3(XR)ffkwhi|Wk z+bUtyW**W6?imL^v)vD@FXmNPuZtB)J{`IaaCpVNMaL(sqw+4BXOveyzzPyV>xWzK zVny&xD<$y!s3c>=$0DkM_YI3o-ZCq}`41ZgJhvU9jmaX0!wbQ!cFhv9n7kZaZ|5>& zERv_#e@cJYE?if}eOte{07c(GDQszPczD+$GUXUbs0Oq6SrKB%{o-jYTF3AeWTsqy zh21Av7^yQ~NR4h!;?G?J(6rGna{#ltfhZc0?_bPJQJA*&9(fzy96B3zQu5#s`$hq( zBjFJ#Dw*ousqQmEr;dz7q8h{!@=U7^ZkLpVQP*v?@*Ow)1xkX6lDkXHWqf6*qma_B zq)1p1Osp6=%7V1WJXl_W)7Vat^Or3$U+euWcl8P}!ZEjeyvh{9dwa@%gV+VC|S%!ge zoa@JQPZ>#Bs4OzS^76LQ>fnYc*(+pnO;kR~_O^e=J!ZPt^NY6u0fl+p#X>HS(*fg0 zV!PzApGFYO)VjXZ;{S*Z$?+!Y&;^$F)OY7uDl^LCm}dB&Hl$S6J}qx!(w6?wrW)Wp zI%Kw7+1hKiTp_0*VCDUCOrJ4Gr?}D!BS=6;H@fdDDi-7$6PYaVSO6ZS6)o=Dk?sq0 zb*wFxwIlw(oeLke#RP8OXw?z+wQ;5tJ8l;*E;B98qKl~cFV3cr$XePF943?EE;j^m zqC$g?n2JR{oY#UxiX%+DRW(Gk2;S*{c{oQ8C2fXgx2XNljS^WU2x4%$#Uolo&Uj<& znlaX`V^vq;GxF1l$5!;lGN^W@dh+dLZ7Ts6*n-Noh(q$J{Z*QplP^ek+5$d-tX;c7 z{@kIE&+CXG6P`HkBDAXQl}6m9-|b(isDS0iw~4AJJRKs3f6D~!WdwtPOXyf{jf>`* zH=}%Cwy4RZCD_*u2>2B{pRVeP<#-$3sZ<<{TINFitkl#zF)4`bv9CsFk2~kKtFDuKa6WqJ4(1M!O^*g+tVNtex z+rZ=^X&&akcI40w`$)ob`k02@lcPIuo5&?#gy5eF-DjKzy`xx@rcV}5X&I<@@d1q{ zrn1sS%6M0n64qVLPt8-^`w|?GY(^YMAI$~rmA-=r;=5R1E?DMrC80fC{hY}UCHpGY zce{U`{BCWyfiCV{)2)Tu>S#K@ydN0w{uw*p?5k7Er?1APkqFd2pnc-&} zgG?W&886r}MBu#EUuUB)nn$IW44LNub-cKn7j$Lh*WLT$Mq}cfKb*p=J}n@Sq5G`Y zAe!8te=;0CKJ~SOR>IfJ`o{gh;-WN_V>fHikvAzh>$GEp;P;N$2+FG1h`|Lj!po>7 zwJ57}q#RjQZgE zJQ+7-d~r+mheQ=`N1As+_&4LBrfjK$(nM?eS<7cp;~GE|I3ZZ4SoflN)u&}BTqF?9 zG$m4!)@kPmtJ~X*o(rc4_3k^{Im7PHlCty7-%mD`e5Y_7d1OX0-EvpdJZ^0!FXItI zA#^P$M@+BdHne`6|03dheI!AZx+RH_F`8RMzn$qdMv9E2Uw|pBdg{)#ZWo!1YBx`R zF|w^g4o&jxnUqVoPC;}i9F`>0bhZu%<7QwCjPn8@imBpdrq{*xbY0lQv|kznuEvZS zPzWlRi{3qdHEZD^-|EN3(G?(+J?P}b(G|VBJpvs^frl22Cp#*{3HCOxu86@Ct?qsj z#WF<`v|=_>c*lLp?L9Tw=5VB~sOpJ`(M&oqAVRBJ+;dcRtK#a8sl2zE)YEn=P2Y0n z(=6GjwCQL^kF$kMxz`Fz+>GWfF=!_kr^XFl{A{)5u8P2__vupfq_^H_UtT?riCJXF zz6-Yw*JYLJ+@R=c>YU5HsOv5AJclM~qCLeGYddoG0$y-Tv-H9C=JGfJmoV9?n$M(S zC4FSyMp~BnR>KX$X_Gt|p>J~vjtN+6X^IlL9aFSegX*6u8u#~bmA-nc^8ocH`YyWd zA(48rnEw*2NmM~uVRFLm#&8F}n8L`nIW1O8F$KD4i{7vc>rFzQT{+R$Gwa0{&0jgd z>PeHL03!5R$ysqEiDid7G+W&&HXPA9aX;q{9#6Yptg_uN97Uu}=q+Rj(mQ&aOUzch zy~BqWQ&#)mVPWP4m*K_IDd;GC=!(JCC!)J&NK<&;q?okZ&V&~2k!SNd-XsOx2qD#o zo?GW&1I?mSB%cDI$pP>4lX!=0gH zBbtd0`$-9?9@x8=7UX!hhQ5?44h5}+&7qxpJS(HE&qGLhr;2uHo)KPZxc0>ytTh>h7G5 zM-CZJ2D&d6-e#J9g_64$ry5UNtjX?#l3=j5M4bsfhRbj|Xq1 zH?{73+$9e;(<(n9EzG+4@S|Xy*rYMvmW=;{Pe-a@iTIrz!8$Y=(^N~3$RYapC9(?52daE%sp|6H6v8`N z_b)03%@fJ3j9U2uo%ZK8MSOGOb}pl=z57WRt8djb)*;&K))o>*88vdAOJ>5@)T%Gu zr)|P*B_@S#Ew?@LwP~FC*>&Yvs&kPq{p_7#$9~O?pyxPi%ef!xQo25rnD--M_f>0Y&K5DATg6H_M}^?k5I%ISit}ASpN&_}WD4 zWe%w|tzBg7F@@|tfz3^kF|6%s3WC%#3SuH~u?<3H zTrL=X^T~efEMiusU>$cnqE|>sAB%}vj>L(sV_pcunBP3inYip0saS}rO*&B0jtx@W zic%{5Ac4n!>#=Iy7EnGL=_v6?eYOP`5ql@9R}g2Gz|||OUz;4KeQ~7fqScXC;Hf64 z1b&Cih}dcT<>XOR+0)V|Qn$C(Z*#Y$MYMUJA-$AMSZ}?rd1|eZPh^DgPU#Nrirl9T znw8nC?xzvb_~dd2*4a6$CH4TvYSl$j_~27$8a&WM&~4)8jbc02A{-~3Y9WJ{`Qe_&zhfOc%%6W5mewrs z%}2t-_2(_CdnF~Gut4y7xE06x)_Fym6zijWZku&Blj{32%Xsc$4Qfkf`vNug%e28a zsR$0X$$A%^b75B8xci!X)-uMa&PP7S$^O{Rtq58%qHb6%x~=+-Z1@r|hU+Y%H%$#g zn;erSA8&YOp>BB2P*Xg~#9!m!vcPd%AQA1A)$8_tcb$1yW*KEK_5|1f7P`!)gW}S) zTdaqUXICTHvKn*qCr67+B1=0(qjRsqe`sjJ%{(X9YaUC_Tvl+Y22~N%v+ZT)D+#&S zi2hmYoCw_O7c0+l4CaHdhM_OMN+${_8A#9Im8cUXtj-)*9XP8Jtk2D{g;kZYr{c6(uacwRY9FlENHd zkMMdpppf^jj8b=oS}U@1BLgX*P@oPR+Pg|WKf%%`H<-Lx4{;1cU&V7gh|0|0mi(!4 z$7qrFy(p`cu8JpVBY+MS@P^!rBUDS{3@#CR4jk4?MPge-&ko`x%PBY`P0>gWrX z5~d6FPhX+8hZIx^5gfOv67%$g@LSaO(#wup>pJ~8YiM00dhk5|qw+p>T7kKC?P`TS zYO_%E7z&Gya;$swF;ksN4YRjP<9=jT+`X06MA^`K5wV8DJC6j%P5cJZQUy7s1-xZilNbPCsguCcHHQ# zAu;W}tddw!QgHC_BVV)VJQT696(8)!(@-E{Or_%5sCiLz#axI6TOxaL-U z-1RBz9x-_EdYaF;!0NW{^FHTpd-@jZyvrHfk;SO#v)Z`IBh7~tK=onjQhS$qRG!I} z;he_12uJ1#^XAAc)+b!jlWxrP&UzP4R8AGT2X@zc(i+u5t3aKvYc6zTYON zJ*`qDAK#(i89S+2O0(7qxLVm}aJiCr0td)ju5OzV)P ztQW3b3ESmgzb|6Ly*M`2l8KVKHB@Neuk2aca4lT1JiNcqJj6bfPi~-)WnN6qI zX};#C0gQIeN|KQTBU99=b~f0D@H!1|@%|%bzDSXNz6c4T5~_30o7Oa+=Cp;)8$>1B z&f&8;r5lx`ArsK{LL24C9daDVycMfOo6vG_@EPYZPgeJiG<3SkYJ3^44D{ckYSSkhxzi&Id|wq+!`vRjnrj0aNGK3gKlEM7=kyBQ)ZOS+f0O z*)dkF8Ts=3%MWAo&4>)BUUqhVd7sgG5wtgMrkB_*sljvKgF1Vx1YE>20=fk`DVy4bwq4kMHY+%rOjONIt?VeBH=p$; z>TR_u^R2uKAJ{_EX3;V0x4SfWLfr|Q65ky)<<`1V4<0SA`nc|>Ovu5M!17|&Uks{} z5xWKvA~=a{sOZzVr%Z!KSOSU~%k%r&ibvRN2P`vVB(&`ZED~+ChTW)iKyS4MV@z;M zMGyoN%CU|f(0Q`p|S~okrSdvI-Y)g5j2)afKV(-p zvNVt|5*Vk!^Vor2IfsoH4-wcN6J6KJN7x0m*$#x~Xvhb2rVWhw#b{B!Xg$gCsGKME z9boAfe(e2`*k^|3>|BSf7`jkq(>!q92^EL|M}CR4IOn@AnZ`q3rGfEPtnu(ll#H+o z-Cx3`%R4&*IC-qMW*xg8q^VwVgC4?z4g;lZgfQ_c; zyNd6$vnrh{Y)QQByceLJgQNVki+oyXn_G^Uq0coG@Y6}>C0XsECo3sbKRla{Bd<8#eV522*02!=wLl{)1K`S!D%#hecu%E zfoH3R!fRu;^`L=377y-i7-Yaw-Yx~3AP9Dp5S~Su>-&~V;jVW@soJ2!-GLiISC6>s z*5~!;sh=f5X7IJcr?f@1hY6lj@6e`eYWec`nb>_au8|xNF1UaeR1|1Ay*0DoX6Z>* zDPRoP59CQa><>be_u&RUjCKOx>kK~$D3tdwTB8MjN^^{sjqBCTAcRE zJTnu0`-SnZP9$v_RmIb&5d1EdWcFsoI7v3HO8U=^r#KOL46 zJi0?tb#?Q1+fOS1VWDe1y&JJ0$;gy*%%H)4tsAo_$;i)jLFSDz@!5XbT9)47Lpzwe zYAsbKOSzW-*9PrifNruj1)*@O>7sLVQ$G)Vqn)ti_n3aRQA8#5q+vPTCpsO`xo{+~<6GCU2pVUFO|D!)pDEGw=7;73EZ;A~0A(T^%4!*}ioYFN~R zaRLVy-XWAa8rmJ%!C&f*0z2r> zZ$D`eR>j);;P-&A^ibA}T!V`YSZnA;*ODXqlr3fu&&=A~eb`;uMbs6Suveal+_bP{ zoODrJQaI^(RU-rx7EP?PRhJYp?;C@1$)Am~rxtRQ^Cq#J$5*P2ux7CiS1Fvpsk@3b zyZQj*qy;KHyu?$Lu*^NmY51!8-8O8$p@ql|zv_hFpNoZcw=lo4O#m9(pAfmv!G^p0 zkHe+fe{ClADMH`k$8I~S7ox0w2L9*=QtqI#IXd;huqadD;yh(t)aa+3CdctIM=kGz zt9uU_WGS*{fRb1#S0|{6@wd74!~g`z-J(e*I;X*#Bd4x-`GcmP_}06&pn})c`ApEt zfCuk;8`b^6%tOaw*#CW%{KZ9*73+baULyK(=DA7-bBh^jIC2OHQ?&48oU9buC`2_c|ZXnK(%Eg)ABDM9H)0%8M%fM`MsMM~&II;5Q6J_uHPzj<%w_h#Ok zFMlzUbI#s-?X_3^thE8lDRh};z`H9pOTv*JnuYj@1dWm!)p+P7MPmoHOl*=AnnmUo zlFY7`@67KGHs-<|_Ajqm_%fooR|w75_)&NkajS=!C_amG`M!7KED3i%@=uBEdttNIu= zM6aBO*H{lTUL*q6fC~Q88r0_euYxUoynTvuEy_w#W~+y%aoi2TVx(SR11U8vroay4 zHLP`C>Bj0{CmkG#|J_v;)E5x2V>H7w>S67b?R$4`S8YSe@#AIk>Ca|gAJFQ~@%iGo z6C4EoZ>(6oI+u&mpwRoo$g1BzchX)oSA#66fv2j^3|$g>gli4bYux92n)Q+3`l4D% zkHOa9%g1oCIzZ~{yjB6Zk3HCZfE!z$$2``+k}HeqOd~qchH3fni>IG>M5y(J`GCtT zwJXn9P<)>%CS={Ao-ohmFS(71Wo6mAS`xF!RAR1F3CDfM(YqCBOKI%7W`(N!wxd>C zU}8yF?2WzG-fHt2nkhj;}S8J;Lmzi(t8m9RBRbLq@dlReE`l3y>2U{Zd zDBo5eyS64oqg8}>v4VfY=E#|F7k9_v+C4@WEJcf+qg}te=HEs^-+ytQzQ!US$C~k_ z;E|k=%-&P&9qNK;?XtSv3=8d?y8O6cXD=Yh=9K<|j=Z?DK4}kT-NrqFA5@bRvcDKv zMXu5iuV>$M&IR)U$A3j_@Ae&~b7zhBo|>oC8_`=4X%6hKSM$Xf;RW1<4M6s%jIEkd zvvay}I?sQX@0oqI4{P`~b@(r7HW6d_%ez_G*tL1z_Dr3Ku=B?>4=Ul(9oaNe`v0;o zx;x+l3g4zXMRTvdtRAx2I)7&pMp&JK3t4xBUv( z9dU=P6oK;XBG)jVI8vzjKA-l?c4$4BDeT1G>@s3ylh-UiT&E#7qnR;W>RAZr*6@B? z0k@5r5>Ci{tKF8-w^gl|l=^D*lO|`p65YiZK8d(}db>Qr^{m=yqTRgDUa=AN%4xo{ z@_ckIXC-?e|9&{^#>$xO=FX0e9!5;tTQa;DFOI(@sv{r14Hv|cwA`mSL;9-I$2l-O z0aE)XrGrn+7gO=KW)+<=UdRz-6uvYp&X|7#g0fczC(KSMdOx^ZEy+?yI8VHBh_rpe)?=0x;-DVD~8&mxk8}^_~H$Ope8>3l3$kq{+U3SC4Cu$tKWv9KeZdsnii{au(H5H||%j;QtHKC6sA?b{o z`TLHZOv_YM^K(DHtT45KiQu&-w4l0t6^74gtZ;gY)5$)OQ`5X>p#8dSb@nelYWbJf zfz3*AoTdRqhj(3#PVB_LJhiAs>?KdF&(8Tru~6#Vh$${Na+|r(>c+X~Z6_!cvFi_6 z8!FU z2fS<~D#ADaJ|UL5e{5#PH%QV=tToC;sxkxj;vHcsF!u^xhgOzekG0J+3|oQef~RE? z1@zOg^Is4^ob-vzB6~=N;+ve2$8xOW6Sh@u8xAH!uyglwTrm59aH&>@i%M~?n0^Tv zZs@#g#GP!H*B5Km7rr}XWf*uV`E;ULj^AFy(T=$i!z6-nY6UZf8?jdldfj$pg z%9`Q?SfgBWxs8k7BSdGyd9y+7PQ2z&@jE{vI`i`fYyoKuMS4*^IyozWJ*j-ilaCTT zGT>BWINz>oGx;{*!h4{GHUVCj(DVSJ$HP)R3fNzES=LnSj*l79+xQIJ*?_VZQu8n0 z&Nj`vbtHGQ`t_5_pHTI4KC9$cXCesv^TWt}jO-3{5IY}jY6M-S;wFvpDl5?3+=^Z| zmh-~&RW}55lAAH5N@%qVO`bs-iHCsXuff5Vh~KNw?KljwmrLtk{0Eb_;l#m_%h23`)K0W&R?bJUS?sZar~8Mt)1$lm z%%_kI!oXYqnb_>yoAcC)T98x(_97VItw)q8kav453@#=FLK&Z*S-*{S81~Ifd#Jxh z^Vc_pWHeclAv&nMLZG`7EDuxh5%2HM4GGX~BiGHzKI*F7`P*Q|;+XyO$3{ILY>?5O z0RGO81M-5t^$p6vUsK38SrxwA1{hij%^7Kwy(4tL4Of75V72swF{oa_m%^5Nlk*X( zVA%eia4PVx-7d z=PKQ?2QQQ-#kSL=&(n$`UOgnDPvdeLy|ZX^zb33lsOJ&%Xt2Fk1@t*X6bXEgz0Yep z;x^N7?&?B6_T_u3-K;i^0KQwrcKdq8>4chR#nFBx)d<>Hs)1!)i%skGY$uCWCtSYe zXt&>{jpHCrP_2U?Y0*ozkac z-T@t9OPelrY zlzzGC`G$R?@2=Yq3-(X6cRlco-dX~cq6~|eRS6{qmP7;N{3_my>Dk&*=dQ9aP*=r8 zfDfWkuKGbHtR~B5m^P?BH$YH7DUgx4ZFP7Y8 z5g8)yMRj3i_U)Rk6mPcm%B>mmyV?cQ+mA#!YqMIj+rQ~4;;1RE?&^L>f8neuC3(W) zZ1{u{8~a+|&j^~jPtOBK%S>+36Z%#9v2!=s0f{^wiv)s2`fDU(8Q~DR>29hNZVo8J zX{E~xF{WRIA{)CyuD^!G4 zPK;q{SLL?)%ZB$Bcrji=NbgXy^*uBQ$mT8_8U<6Ud&1O*mBj`eM*J_@)0>h>B5Ru_ zPub$i@}x#eN#5S^D=^J$zRcRbT(dNT=ICa}EjPWj(OWd1UwSj{Ra#9mNWa*B^rOod zmmCPrmw>bFiS<$idC7Xo9aEq>=gGCGhc%mGjMxw1R^Ij!45_s*qI{~WX*z7#$5OeU z=$V@DCX*czGPh(cyykd6bnT+0y-ZYhsF$GU2+32zk7j|tL@>Kyon#}h^34U4zryAo zPo0iF>HBxE?nv%Uoodtb!;>rpZV;87g|(9NV0jx>w180*I$(07aG~Pj zlyvrBg*juZmqw<)bymddYw^Qf(yVOjrA`IdbwL%9wrR;A-fY{jH6L8N^U|#`0OFY! zrAi}jKJ8pikd|w5ZVtG(uXg7wGGrpx2sA{{Z$8()dlhs9+Mxs(_BRP`FD!IF5iPqv z5&uOOCp6n}@?tezhm+}y8Zz@#rxkucYaW*g{!L(8NwR6mpkDJCWxSrxXwlq=RA)$( z!SRqjV46`bLm?Xy6#iW>%zhrQTxrdPCan6+^>QGdfTVmfuP)|bM!#%-@dPZ+57?CZ zUxnwy^X*Vy#$ImV>|t%X4mr&#`|@%!Zz?3@X;eTNXB>-kIGAohjoiS@UhcKiYwlA! zUT0Uz1H;^y5ZeMKX&MJGunuTzCj)oRuO8D+3nU&vjF6O!k{e~^enB>Od zEY=LJj`*KE1~Rb6JGv@w!Y_#~_YxONC1Y(z*sm}7CJX?!4uI~cCjahbl+Uw+mQ_90 zMF)xQE`aMR*3Fm!Y~&HAgg~_I0db{(Wz2BBX4<=vXk4;T-^_ zOHR{usCdzPzj-F$6l%a2to#As$$Jw&f^bc}DR5*$QGXi33ijpo0IE~tKv&Z93_}MF`@d(Atn&ua zdx5Qlq;w*NqDmqK6(*mLxeCPjU`-PkW%P>y?)^kn<$Q~et0ipgM_+)-v1zO(jc({OL*mlJ; z%X_m6h-(szxR$U7*%qT)iGpXh_+Zz z5%D&TAU(ke7YxGL+TSc`jXi*Ovl`$i6p;un+2dZ!HGG}1u^R?lJ3UvMifT!f19eV; zea|05pb)U7ZT5{qq83@~o6p^30%nz?GqNiHGJV!n4eV)&#o+i?6PIW%WPQI36bw6O z6@I=`L7D^=Z1w`6?XG+WgWN%en}P?Da7UJo7bXGlm2&GxRgf>>+m=-d1m2m&c-_Jx ztZuOJ)MH(%_tsuYO^|Oo6WIyDt*+fb8+o5>Z~X>)B(0^dO3%;L4ZufmbGNaxw+{~) zZuzD%M*)4vsLKL;bdudVGeat}3mlK{?3lfi6-|GOZu13Iji`tu=BwMhfs&sVN=V^a z$ac`_OCdGUd(dj?@x$n{$w#$0iBlPH3F(D}y36`v5OiPMb70MMqCK&($5%merj=13 zl6wtcGvP$`*C#S=m1|j!{{wenuIm(@2h~`FK4)g1b8N75Sz!? z3VNwSjlLE9zK18qKuT37h_1+(Y+P;j^yZ=AbG2ijDp3yS+bbSdLLPB~N75w2b>p$p zwCB>>{+mVpBv{0SsBrOYtpa*NK>@Bqi$yYfkpk|wH4j2d`C{FtG_Yev695pCJ4Yu# z^gdqIE?!;l3_7TL{32L81z;)Tl#_@txHuDT_ZQbeukCOEWyZ?!lTD}4bWrbuberpq z_7pwps&*Ar=F4HHFJXxn?EZyoQcKF-JJpm8@g6#{xYe66V5bW;c<5ZVCT0;p(||i< zzk8iltJo6fKc>n9;0U5orF#pZKkFgRVgdLI|`Swe8@wV-IttwT3cg94-K6B3a09QmJlQr z>(PumoxEjHQef_J0F=3XHV+-v7>eGL{Vsgzm-K)XOFU}Ce}al#naC@uYktUWou9aK zc?JpSaFSJM2J7NEOS&{)NxvY$j3Wi|;}<(mu^s?=2MavN8yaHo{1s4PyMJU;oWm7!B1frSInj8c=qu`Z7m@ z7h>UM}Z;|W@(Ma;;*TX);d z`tyDpNLrn*m#s3?$vvfS)D!RHWk;iA)RZyU@Jk|6LjsnJUo=PI6tep-Ddew*H%j8} zIag3!@%8`!I9bFQ;pad3Na+OOyueKdt)Z>hmkR(aG~8XhIAX=zba{%v)RPf!u-J2c zuB%WSt-KErLnegFP9EuIj?uN!h$(%X?x_=vrDkqx6jt^qJlKUV01vJ32^s&E^X6c zW*utX_`G6$H3tSse~ok~qprcraLM7kKc&aQJsHSjduMVGw4B;?PA-9?V+qVSk7iHr zvTx4Rz6BnDK?PBHazM4cT8i&4@O_ko3s6v3D`wzqG-wjb)#P?*{8Kku4@U(ko{x6w zIIEyO)1%1@@xg9mLk^je1_#9|&}jz=TDKsbj!B(Xn`&!lTpIe|I}q)6iNBN5Q=y+Y zet&c(UVHWta{ke%7|jSYuebQJ7C!;AO>bH&f_I*BnW62K3GV2as&#a7i_1y`o$Xc0 z*@pl=>Z0cj^xPY@A|o{-V*LYG9%0e-?eoNft7zL7We^RISKe^13$r^l)&}dFga3A_D^Nvu5EJu8Ju}gus9$X>AH6^m3H;nEQ0+gSJ9@nW=Ig(I}?1lUR7F_A5;N}?4WfqLuddt70fIpa&1akuFJ74+_v z;}`Z|ug@@O5(_4)8Oh z4^%KYlnthrJr$4b^?J2Spn+b6rB_Ys=Y+wuDPef}RVnptTMZhLPZZn~tLE@uYv2x= zilm5}Mk1U(s zk@@)g6WrJV4!vtfCO|WlD(G-n$bMopCo7$G0X;+)|7r<+Mb~#wAw>qP>0%%>GIMcbLX7cHz17%*ZU{0Gk?`vQg^Kl_@zdD=%(!^xcn`etNSQNc~C zHBGdl(@t6S5GWgXnRN$l@?ueBJ^+EcIB*O4Co~Nk_+V{#!~m%6KhFOTrJAnY`>)!d zghFR6-Mj%SJ_>H+m{9=Hwkw{j!V~(oie7iSe8+2VxblLd;k;c1TuyRHfJwdS+)*IZ zJ%tBXvN-q+zx9(iRy+Xq*V7Y^fkCi30#Mx;z0S#`#()k$aJmuBviJ9j@|>B0FFqOB z2Td3|?T&X|`BBOzjik54;hSL&&-=kE0~R6WqN5_a%9YQrPIlKA)_-#xjZb3MhEH%o zR4$7oRKk#XYRO?I)=@xlX!zwceESnQlD1{NsD8EWlX$v?(?6}qXXYEQU0(Yqb%O@y zI#(l_ERs8oNQ|Cn@(YC{A1 zNR)6lJ=%wL*t41DF`uw#V9UT+UKdFKXIj>&!lbb(7Tu+>U9iK3K-hCZu&y0B*baTv z{44fB1dHOyd)qiE|Goijq}mg#7Qnq}H949!s@#~%OWqQRdm&EMAq%jTkCmysz{I}( zlQsH-U-g@tn-5CyyjE@x$q!()St%w|Iu z*SW~euz6Ch#0i^a27ge=OY;WP+MK*#lkzTalP>uv;M155@FyK}uWcQ)HEuMy%=_OY zvSGI|A9fqP>rCT*LS6kZ`qyUEo3oIM^~3pC|vjf?x83;SVoF0Dj)ew&K+g$O_kjxVYHSZ=ULsVGK4n+me;z zDGoUDQ>JMmS)rY1#aVD5Jb$zyei~x8OO;6U0dPx8RwugrD&WRjCZ{7o?86>J{(zs` zq>;IND9aK)9j*FQMCpJ8C~~zuUHtUD(rV~!*be(T1mp{V`sh=?C&;W`u>BJ*LPz+~ zXT39LR??;8dMCIgQIxLm%}@VMzNP~#!c$bqI(Gnl01#3b zG4jA;Ju~Ny2|{5uv!8pJxn+c^Wla-MGBC~aOi~SuH&j5brl79Bs|?(l+T|yvbYq$5 zj=iu|40i4Sh~=tg`Fs*vfW^&%y|sx)S28BIl5xMDKadX<7D`IglXXi7AF|BjWX|vm z9!l&)B+uU4b==#HG(_6p7M{)|rCVgK`*DL8&OAVN1?z;tA0qN4?<6?RwQiajGmHZJ)M*8>J z5_LP<+z2DC*(t}vv&hAnFF8SAypa>|;0%awtDgy?SN-Lja8v%No!@dHYwdDw#Dw!H zQNuoGl@UJBD)8*pn1YiPX!hzz=p_jKU;i5Vw_3Mq|1dU9*WV-|`U5BrFcRu$vm{+g zAURsJzW3f>Y=arD6rok?%@oHwYXMBpP>KEsz_wj@{JtZ%6Tv1zCyeQ?I9hSkYBR=z z{WkI3j-X4mkBeqM2j6_Ec}RRu5)NmTV*EF(vzrX8Zuz%SIOwB@Duq(&$z95TqAQ{BQP`rWAOId)z5G+)6 z53U9Md)S40H9v_~3-u=uw`P8lEYYOd zr>9ST5ox3tmE5?<@Fj(%lf%-VyXQ=&#`f;;Mti@r+5S9hYlKa7?R1iP7uKe#p7>@G zsh!TwQ}$4Aa+J}|PBO@?wQVR?rPQAGgDa7h?GkitA-T?5#KOqP#L6|ijMEr0rizw>fbe(_s8!%9GBQOE^M*n1{a5r58vd*>G zA25%_k724GOadSbqyb7@7tGzL5S-=jG0X3wOi0bD8w^x40OtN@`TsvcB%c5Xq+|O) zXqJz#TyhT(CT=f0{}NaZh3`-%!u<@vG-a0&3E&8tW6V0{iM2q`#R93~B=wSqXbvdz ze`8Zkg(@H0hM?iJAh^Is{Jqxk+FBHhp8KM`>|BMiO;{;dlEBe(D^_qioIHB?EZQ$3 zIITA=*cs^HM_zTOdNno%K$-_%|1LVgO7~zux4$c|`L^Y?r)NJ8fT|6zQ3D0r8~}{j zHcbrsbO{#q6ECpIYn0D|&I^~p04RW(HhKD|&u_-K=Hb6Eq8obxAXH(=AX?Ba@yO5L z`l>J9umcp}s*g37Tq_{ewi*Ly%MijgL;I&g`ppWWUcvCpm$ab04jrN5^=Kcw$oIUl z{)yk>?B5;)=CLW~1qTSUhbvJ8CV**H$7VxKD%#($`YrkDiRtbXvI=bI?+i{wFVHsxyxbCDfH9#9RAu)%+`Ig;lCg26&N|* z6P?)LhZBtk%=Ax%0T8BjSAvQt%YL>~52{c4yFN~*ON7%-E<@=R7=ukGMok{`OjE|% zUXcu#$1ZyKaWW}Qn|l9Nv-}LpYo@%KSCxSh%Uy+jDI1bxQW`dDHr&oq-)MqMZ3Mt`mIn{&~w`4$x}&mY2@(CS^ZlwLWxM zo-H*($>YwD`w^T|tx-X)YH6{fbrn1J6Mo|x_33_TZ>K^GI2HN#7C51_4wk%Y@6H3S z$^fa4Aip+W^tylDG5{g1fcC`I9^w6wg5RIQz(R9Cs_%DGe}Uwf)4(G;-t4d`_WLV8 zE{|Os2xdLcebImTIphqOUG>GB`sG*=i~w$d0R1t7i~jWUeK5Pz@^Lqo!YDuS0T>fj zFpU=Pm-1M@{+t3Ls^QO@B@X;F=kHI&040VUJumf#pEo}Ov%6n=F?qRD2k2Q26eZ-& z@Ajvk_kh`@ILNQjS?)N1F&_gRnOYK~^@pD|faVai$uY6})877P>;JR$Ka0l2WB8v_ h|DRL;|Es`fBJMsw4}|y=pRE9YCy(hK%{pQg@LvkMiL3ws literal 0 HcmV?d00001 diff --git a/src/docs/images/logo.png b/src/docs/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2c5bf58d9e47ee2a6bd2c7bcd055775d6eae6a75 GIT binary patch literal 415020 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⪻zdLlF?{S;-bGdfSdd4tlY0#+8J4Qu-}qO}WVqS_)OG}J-(}%jCw#sB1d?Ba zUsaAE;eRFTB3thMU&(#}199RjDo)0F!nDyJKf%vC)I9ugEdVkXn3x2QI+6D6h^F zZe+}-bUeq_s{Mvulb*$(ZV94ze;Gy?vd2m#7>h7YdGPyqGq z{tHU69JkGqR}W+M@}Io>guMI4tv-KyEs=Ss-QR;YZvlBAn`{7R2IO4@OFmVM>NZ;e zR6V+q5qulms``6#6P==OMY{sRldu0)-d|aKuEk!O&ksH)zu1T8A>RmwQISEVOrc4) z@#kw>DM$Y?TKh-r-N`<@K1qg%@o&S7W3m zg(+B?hu1UP7A#&b~zXm=XvG^Zw#X$i6f^ z9(BGDZ#`$t3xw1XA4T{jp2ceO7U+;xujExHHN)0Y!;)*7`-C`R|Q(RsSDYmV=pe+VP)=H4KCTV!K6bQy$xq z$k&oY|u}`_FWM zZe#h6+rHy@X%$3AzRiu5bhNpSg$g$8br35HOIW%MxT0=DwHYm=dyC@*xROhvw1`eF zh|0oUWQuomM)2lPut6JjA+VefAeWb39`ay}nFZQE+EKi2FnQ5@>_ zJZ=A-jlTUR}&l0hsLyNI5@&k1l1P()XzCS-P8ZGNS_fUv*Y1(
^%bsoM0#_WGDKasU~9I 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

?y`D~ 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 ~0G^92w?7oZP} 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

&_>Y=nw5xUpTWKW& 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 Date: Thu, 2 Oct 2025 09:37:53 +0200 Subject: [PATCH 4/6] Fixed images path --- README.md | 4 ++-- src/docs/ARCHITECTURE_GUIDE.md | 2 +- src/docs/README.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6812dbc1..61512f04 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Kasal - +![Kasal Logo](src/images/logo.png) **Build intelligent AI agent workflows with visual simplicity and enterprise power.** [![YouTube Video](https://img.youtube.com/vi/0d5e5rSe5JI/0.jpg)](https://www.youtube.com/watch?v=0d5e5rSe5JI) @@ -35,7 +35,7 @@ Quick setup for testing and development - requires Python 3.9+ and Node.js. ## See It in Action -![Kasal UI Screenshot](src/docs/images/kasal-ui-screenshot.png) +![Kasal UI Screenshot](src/images/kasal-ui-screenshot.png) *Visual workflow designer for creating AI agent collaborations* Create your first agent workflow in under 2 minutes: diff --git a/src/docs/ARCHITECTURE_GUIDE.md b/src/docs/ARCHITECTURE_GUIDE.md index 066f1346..a422bb51 100644 --- a/src/docs/ARCHITECTURE_GUIDE.md +++ b/src/docs/ARCHITECTURE_GUIDE.md @@ -1,7 +1,7 @@ # 🟦 Kasal Solution Architecture > **Enterprise AI Orchestration Platform** - Scalable, secure, cloud-native -![Kasal Overvew](src/docs/images/Kasal-overview.png) +![Kasal Overvew](src/images/Kasal-overview.png) *Visual workflow designer for creating AI agent collaborations* --- diff --git a/src/docs/README.md b/src/docs/README.md index 5c8ae3cb..6a101a60 100644 --- a/src/docs/README.md +++ b/src/docs/README.md @@ -1,4 +1,4 @@ -![Kasal Logo](src/docs/images/logo.png) +![Kasal Logo](src/images/logo.png) # 🟦 Kasal Documentation Hub From 0431e4a5c956d9615efc724d474fdc461d114e90 Mon Sep 17 00:00:00 2001 From: Anshu ROY Date: Thu, 2 Oct 2025 09:55:09 +0200 Subject: [PATCH 5/6] Images path --- README.md | 2 +- src/docs/ARCHITECTURE_GUIDE.md | 2 +- src/docs/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 61512f04..b5c6e3ad 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Kasal -![Kasal Logo](src/images/logo.png) +![Kasal Logo](./src/docs/images/logo.png) **Build intelligent AI agent workflows with visual simplicity and enterprise power.** [![YouTube Video](https://img.youtube.com/vi/0d5e5rSe5JI/0.jpg)](https://www.youtube.com/watch?v=0d5e5rSe5JI) diff --git a/src/docs/ARCHITECTURE_GUIDE.md b/src/docs/ARCHITECTURE_GUIDE.md index a422bb51..1901156f 100644 --- a/src/docs/ARCHITECTURE_GUIDE.md +++ b/src/docs/ARCHITECTURE_GUIDE.md @@ -1,7 +1,7 @@ # 🟦 Kasal Solution Architecture > **Enterprise AI Orchestration Platform** - Scalable, secure, cloud-native -![Kasal Overvew](src/images/Kasal-overview.png) +![Kasal Overvew](././/images/Kasal-overview.png) *Visual workflow designer for creating AI agent collaborations* --- diff --git a/src/docs/README.md b/src/docs/README.md index 6a101a60..0e0ac79b 100644 --- a/src/docs/README.md +++ b/src/docs/README.md @@ -1,4 +1,4 @@ -![Kasal Logo](src/images/logo.png) +![Kasal Logo](././/images/logo.png) # 🟦 Kasal Documentation Hub From 6216626bcc52c6d59cb5cb6f7e06c6f250b0ed28 Mon Sep 17 00:00:00 2001 From: Anshu ROY Date: Fri, 10 Oct 2025 17:33:34 +0200 Subject: [PATCH 6/6] Docs clean up --- README.md | 3 +- src/docs/API_REFERENCE.md | 107 +--- src/docs/ARCHITECTURE_GUIDE.md | 84 ++- src/docs/BUSINESS_USER_GUIDE.md | 215 -------- src/docs/CODE_STRUCTURE_GUIDE.md | 394 +++++++-------- src/docs/DEVELOPER_GUIDE.md | 40 +- src/docs/README.md | 40 +- src/docs/WHY_KASAL.md | 22 +- src/frontend/package.json | 1 + src/frontend/public/Kasal-overview.png | Bin 0 -> 154290 bytes src/frontend/public/docs/API_REFERENCE.md | 97 +--- .../public/docs/ARCHITECTURE_GUIDE.md | 326 +++--------- .../public/docs/BUSINESS_USER_GUIDE.md | 207 -------- .../public/docs/CODE_STRUCTURE_GUIDE.md | 213 ++++++++ src/frontend/public/docs/DEVELOPER_GUIDE.md | 477 +++++------------- src/frontend/public/docs/README.md | 31 +- src/frontend/public/docs/WHY_KASAL.md | 132 +++-- .../Documentation/Documentation.tsx | 175 +++++-- src/frontend_static/Kasal-overview.png | Bin 0 -> 154290 bytes src/frontend_static/docs/API_REFERENCE.md | 97 +--- .../docs/ARCHITECTURE_GUIDE.md | 326 +++--------- .../docs/BUSINESS_USER_GUIDE.md | 207 -------- .../docs/CODE_STRUCTURE_GUIDE.md | 213 ++++++++ src/frontend_static/docs/DEVELOPER_GUIDE.md | 477 +++++------------- src/frontend_static/docs/README.md | 31 +- 25 files changed, 1396 insertions(+), 2519 deletions(-) delete mode 100644 src/docs/BUSINESS_USER_GUIDE.md create mode 100644 src/frontend/public/Kasal-overview.png delete mode 100644 src/frontend/public/docs/BUSINESS_USER_GUIDE.md create mode 100644 src/frontend/public/docs/CODE_STRUCTURE_GUIDE.md create mode 100644 src/frontend_static/Kasal-overview.png delete mode 100644 src/frontend_static/docs/BUSINESS_USER_GUIDE.md create mode 100644 src/frontend_static/docs/CODE_STRUCTURE_GUIDE.md diff --git a/README.md b/README.md index b5c6e3ad..d5b9cfe6 100644 --- a/README.md +++ b/README.md @@ -51,14 +51,13 @@ Create your first agent workflow in under 2 minutes: | Topic | Description | |-------|-------------| | **[Why Kasal](src/docs/WHY_KASAL.md)** | What problems it solves and who it's for | +| **[Solution Architecture](src/docs/ARCHITECTURE_GUIDE.md)** | Layers, lifecycles, and platform integration | | **[Code Structure](src/docs/CODE_STRUCTURE_GUIDE.md)** | Where things live and how to navigate the repo | | **[Developer Guide](src/docs/DEVELOPER_GUIDE.md)** | Local setup, config, and extension patterns | -| **[Solution Architecture](src/docs/ARCHITECTURE_GUIDE.md)** | Layers, lifecycles, and platform integration | | **[API Reference](src/docs/API_REFERENCE.md)** | REST endpoints, payloads, and errors | ### More Documentation - **[Docs Hub](src/docs/README.md)** - Documentation index -- **[Business User Guide](src/docs/BUSINESS_USER_GUIDE.md)** - Non-technical intro and ROI - **[End‑User Tutorial Catalog](src/docs/END_USER_TUTORIAL_CATALOG.md)** - Screenshot-ready walkthroughs - **[Testing Guide](src/backend/tests/README.md)** - Testing strategy and coverage diff --git a/src/docs/API_REFERENCE.md b/src/docs/API_REFERENCE.md index 355ab464..7b9a6b4f 100644 --- a/src/docs/API_REFERENCE.md +++ b/src/docs/API_REFERENCE.md @@ -1,10 +1,10 @@ -# 🟦 Kasal API Reference +# Kasal API Reference > **RESTful API v1** - Complete endpoint documentation with examples --- -## 🟩 Getting Started +## Getting Started Base URLs, authentication, and rate limits you need before calling endpoints. ### Base URL @@ -35,7 +35,7 @@ curl -X GET https://api.example.com/v1/crews \ --- -## 🟨 Authentication Endpoints +## Authentication Endpoints Login, refresh, and logout flows to manage tokens. ### POST /auth/login @@ -78,7 +78,7 @@ Response: 204 No Content --- -## 🟪 Crew Management +## Crew Management Create and manage multi-agent crews and their configurations. ### GET /crews @@ -162,7 +162,7 @@ Response: 204 No Content --- -## 🟧 Agent Management +## Agent Management Create and list individual agents with roles, models, and tools. ### GET /agents @@ -204,7 +204,7 @@ Response: 201 Created --- -## 🟦 Execution Management +## Execution Management Start executions, get status, retrieve traces, and stop runs. ### POST /executions @@ -268,7 +268,7 @@ Response: 200 OK --- -## 🟩 Task Management +## Task Management Create and list tasks assigned to agents. ### GET /tasks @@ -307,7 +307,7 @@ Response: 201 Created --- -## 🟨 Tool Management +## Tool Management Discover built-in tools and register custom tools. ### GET /tools @@ -350,7 +350,7 @@ Response: 201 Created --- -## 🟪 Memory Management +## Memory Management Fetch and clear short/long-term memory for a crew. ### GET /memory/{crew_id} @@ -386,41 +386,9 @@ Response: 204 No Content --- -## 🟧 Analytics -Usage and performance metrics to monitor your workflows. -### GET /analytics/usage -**Get usage statistics** -```json -Response: 200 OK -{ - "period": "2024-01", - "executions": 1543, - "tokens_used": 2450000, - "success_rate": 0.98, - "avg_duration": 245 -} -``` -### GET /analytics/performance -**Get performance metrics** -```json -Response: 200 OK -{ - "crews": [ - { - "crew_id": "crew_abc123", - "executions": 500, - "success_rate": 0.99, - "avg_duration": 180 - } - ] -} -``` - ---- - -## 🟦 WebSocket Events +## 🔵 WebSocket Events Real-time updates for task lifecycle, errors, and progress. ### Connection @@ -464,7 +432,7 @@ ws.onopen = () => { --- -## 🟩 Error Codes +## 🔷 Error Codes Standardized error responses and meanings. | Code | Message | Description | @@ -493,7 +461,7 @@ Standardized error responses and meanings. --- -## 🟨 Testing +## 🔹 Testing Sandbox, Postman collection, and OpenAPI spec. ### Sandbox Environment @@ -505,57 +473,6 @@ curl -X POST https://sandbox-api.kasal.ai/v1/crews \ -d @crew.json ``` -### Postman Collection -[Download Collection](https://api.kasal.ai/postman/kasal-api-v1.json) - -### OpenAPI Spec -[View OpenAPI 3.0 Spec](https://api.kasal.ai/openapi.json) - ---- - -## 🟪 SDKs & Libraries -Client libraries to integrate in Python, JS/TS, and Go. - -### Python -```python -pip install kasal-sdk - -from kasal import KasalClient - -client = KasalClient(api_key="your_key") -crew = client.crews.create(name="My Crew") -result = client.execute(crew.id, inputs={}) -``` - -### JavaScript/TypeScript -```javascript -npm install @kasal/sdk - -import { Kasal } from '@kasal/sdk'; - -const kasal = new Kasal({ apiKey: 'your_key' }); -const crew = await kasal.crews.create({ name: 'My Crew' }); -const result = await kasal.execute(crew.id, {}); -``` - -### Go -```go -import "github.com/kasal/kasal-go" - -client := kasal.NewClient("your_key") -crew, _ := client.Crews.Create("My Crew") -result, _ := client.Execute(crew.ID, inputs) -``` - ---- - -## 🟧 API Support -Where to check status and get help for API issues. - -- **Status Page**: [status.kasal.ai](https://status.kasal.ai) -- **API Console**: [console.kasal.ai](https://console.kasal.ai) -- **Developer Forum**: [forum.kasal.ai](https://forum.kasal.ai) -- **Email**: api-support@kasal.ai --- diff --git a/src/docs/ARCHITECTURE_GUIDE.md b/src/docs/ARCHITECTURE_GUIDE.md index 1901156f..0fd234fa 100644 --- a/src/docs/ARCHITECTURE_GUIDE.md +++ b/src/docs/ARCHITECTURE_GUIDE.md @@ -1,11 +1,11 @@ -# 🟦 Kasal Solution Architecture +# 🔵 Kasal Solution Architecture > **Enterprise AI Orchestration Platform** - Scalable, secure, cloud-native ![Kasal Overvew](././/images/Kasal-overview.png) *Visual workflow designer for creating AI agent collaborations* --- -## 🟩 System Overview +## System Overview What the platform aims to achieve and core design principles. ### Platform Vision @@ -22,7 +22,7 @@ What the platform aims to achieve and core design principles. --- -## 🟨 High-Level Architecture +## High-Level Architecture A big-picture view of the client, application, AI, and data layers. ```mermaid @@ -72,92 +72,88 @@ graph TB --- -## 🟪 Architecture Pattern +## Architecture Pattern The layered approach and how requests flow through components. ### High-level - Layered architecture: - Frontend (React SPA) → API (FastAPI) → Services → Repositories → Database - Async-first (async SQLAlchemy, background tasks, queues) -- Config via environment (`src/backend/src/config/settings.py`) -- Pluggable orchestration engine (`src/backend/src/engines/` with CrewAI) +- Config via environment (src/backend/src/config/settings.py) +- Pluggable orchestration engine (src/backend/src/engines/ with CrewAI) -### 🟦 Request lifecycle (CRUD path) +### Request lifecycle (CRUD path) From HTTP request to response: validation, business logic, and persistence. -1) Router in `api/` receives request, validates using `schemas/` -2) Router calls `services/` for business logic -3) Service uses `repositories/` for DB/external I/O -4) Data persisted via `db/session.py` +1) Router in api/ receives request, validates using schemas/ +2) Router calls services/ for business logic +3) Service uses repositories/ for DB/external I/O +4) Data persisted via db/session.py 5) Response serialized with Pydantic schemas -### 🟩 Orchestration lifecycle (AI execution) +### Orchestration lifecycle (AI execution) How executions are prepared, run, and observed using the engine. -- Entry via `executions_router.py` → `execution_service.py` -- Service prepares agents/tools/memory and selects engine (`engines/engine_factory.py`) +- Entry via executions_router.py → execution_service.py +- Service prepares agents/tools/memory and selects engine (engines/engine_factory.py) - CrewAI path: - - Prep: `engines/crewai/crew_preparation.py` and `flow_preparation.py` - - Run: `engines/crewai/execution_runner.py` with callbacks/guardrails - - Observability: `execution_logs_service.py`, `execution_trace_service.py` -- Persist status/history: `execution_repository.py`, `execution_history_repository.py` + - Prep: engines/crewai/crew_preparation.py and flow_preparation.py + - Run: engines/crewai/execution_runner.py with callbacks/guardrails + - Observability: execution_logs_service.py, execution_trace_service.py +- Persist status/history: execution_repository.py, execution_history_repository.py -### 🟨 Background processing +### Background processing Schedulers and queues for recurring and long-running tasks. -- Scheduler at startup: `scheduler_service.py` -- Embedding queue (SQLite): `embedding_queue_service.py` (batches writes) -- Startup/shutdown cleanup: `execution_cleanup_service.py` +- Scheduler at startup: scheduler_service.py +- Embedding queue (SQLite): embedding_queue_service.py (batches writes) +- Startup/shutdown cleanup: execution_cleanup_service.py -### 🟪 Data modeling +### Data modeling ORM entities, Pydantic schemas, and repository boundaries. -- ORM in `models/*` mirrors `schemas/*` +- ORM in models/* mirrors schemas/* - Repositories encapsulate all SQL/external calls (Databricks APIs, Vector Search, MLflow) -- `db/session.py`: +- db/session.py: - Async engine and session factory - SQLite lock retry w/ backoff - - Optional SQL logging via `SQL_DEBUG=true` + - Optional SQL logging via SQL_DEBUG=true -### 🟧 Auth, identity, and tenancy +### Auth, identity, and tenancy User context, group isolation, and authorization controls. -- Databricks Apps headers parsed by `utils/user_context.py` +- Databricks Apps headers parsed by utils/user_context.py - Group-aware multi-tenant context propagated via middleware -- JWT/basic auth routes in `auth_router.py`, users in `users_router.py` -- Authorization checks in `core/permissions.py` +- JWT/basic auth routes in auth_router.py, users in users_router.py +- Authorization checks in core/permissions.py -### 🟦 Security Controls +### Security Controls Defense-in-depth across network, API, data, secrets, and compliance. | Layer | Control | Implementation | |-------|---------|----------------| | **Network** | TLS 1.3 | End-to-end encryption | | **API** | OAuth 2.0 | Databricks SSO | | **Data** | AES-256 | Encryption at rest | -| **Secrets** | Vault | HashiCorp Vault | -| **Compliance** | SOC2 | Audit trails | --- -### 🟩 Storage Strategy +### Storage Strategy Where different data types live and why. | Data Type | Storage | Purpose | |-----------|---------|---------| | **Transactional** | PostgreSQL | ACID compliance | -| **Session** | Redis | Fast cache | | **Vectors** | Databricks Vector | Semantic search | -| **Files** | S3/Azure Blob | Document storage | -| **Logs** | CloudWatch/Datadog | Observability | +| **Logs** | MLFlow traces | Observability | --- -### 🟨 Observability +### Observability Logs, traces, metrics, and how to access them. -- Central log manager: `core/logger.py` (writes to `LOG_DIR`) -- API/SQL logging toggles (`LOG_LEVEL`, `SQL_DEBUG`) +- Central log manager: core/logger.py (writes to LOG_DIR) +- API/SQL logging toggles (LOG_LEVEL, SQL_DEBUG) - Execution logs/traces persisted and queryable via dedicated routes/services -### 🟪 Configuration flags (selected) +### Configuration flags (selected) Important toggles that affect developer and runtime experience. -- `DOCS_ENABLED`: enables `/api-docs`, `/api-redoc`, `/api-openapi.json` -- `AUTO_SEED_DATABASE`: async background seeders post DB init -- `DATABASE_TYPE`: `postgres` (default) or `sqlite` with `SQLITE_DB_PATH` +- DOCS_ENABLED: enables /docs +- AUTO_SEED_DATABASE: async background seeders post DB init +- DATABASE_TYPE: sqlite with SQLITE_DB_PATH diff --git a/src/docs/BUSINESS_USER_GUIDE.md b/src/docs/BUSINESS_USER_GUIDE.md deleted file mode 100644 index 8c02e3b3..00000000 --- a/src/docs/BUSINESS_USER_GUIDE.md +++ /dev/null @@ -1,215 +0,0 @@ -# 🟦 Kasal Business User Guide - -> **AI Workers for Your Business** - No coding required - ---- - -## 🟩 What is Kasal? -A simple way to get AI workers handling common business workflows, safely and at scale. - -**Your AI workforce that never sleeps.** Kasal orchestrates AI agents to handle complex workflows automatically, 24/7. - -### Perfect For: -- **Customer Support** → 70% faster response times -- **Content Creation** → 5x more output -- **Data Analysis** → Real-time insights -- **Process Automation** → Zero human errors - -### ROI Calculator -| Your Current Process | With Kasal | Savings | -|---------------------|------------|---------| -| 10 hours/week manual work | 1 hour setup + monitoring | **9 hours/week** | -| $50/hour employee cost | $0.10/hour AI cost | **$2,500/month** | -| 3-day turnaround | Same-day results | **66% faster** | - ---- - -## 🟨 Quick Start (15 Minutes) -Pick a template, describe your goal, connect tools, and go live. - -### Step 1: Choose Your Use Case -Click the template that matches your need: - -| **Customer Support** | **Content Marketing** | **Data Analysis** | -|-------------------------|-------------------------|---------------------| -| Auto-reply to emails | Generate blog posts | Analyze spreadsheets | -| Handle FAQs | Create social media | Build reports | -| Route to right team | SEO optimization | Find patterns | - -### Step 2: Configure Your AI Team -Simply describe what you want: -``` -"I need to respond to customer emails within 1 hour -with professional, helpful answers" -``` - -### Step 3: Connect Your Tools -One-click integrations: -- **Email**: Gmail, Outlook -- **Chat**: Slack, Teams -- **Data**: Excel, Google Sheets -- **CRM**: Salesforce, HubSpot - -### Step 4: Launch -Press **Start** and watch your AI team work! - ---- - -## 🟪 Success Metrics -Real customer outcomes you can benchmark against. - -### Real Customer Results - -**TechCorp** -> "Reduced support tickets by 60% in first month" -- **Before**: 200 tickets/day, 24hr response -- **After**: 80 tickets/day, 1hr response -- **Saved**: $120K annually - -**E-Shop Plus** -> "Generated 500 product descriptions in 2 hours" -- **Before**: 1 writer, 20 descriptions/day -- **After**: AI crew, 250 descriptions/hour -- **Result**: Launched 10x faster - -**DataDriven Inc** -> "Daily reports that took 3 hours now take 3 minutes" -- **Before**: Manual Excel analysis -- **After**: Automated insights -- **Impact**: Real-time decisions - ---- - -## 🟧 Control Center -Monitor, start/stop flows, and pick the right safety mode. - -### Dashboard Overview -![Dashboard](dashboard-preview.png) - -**Key Metrics at a Glance:** -- **Active Workflows**: See what's running -- **Completed Tasks**: Track progress -- **Performance**: Response times -- **Cost Savings**: ROI tracking - -### Managing Your AI Workers - -**Start/Stop Controls** -- **Run Continuously**: 24/7 automation -- **Business Hours**: 9-5 operation -- **Pause**: Instant stop - -**Quality Controls** -- **Review Mode**: Approve before sending -- **Auto Mode**: Fully autonomous -- **Alert Mode**: Notify on exceptions - ---- - -## 🟦 Advanced Features -Multi-agent collaboration, visual builder, and an integration marketplace. - -### Multi-Agent Collaboration -Your AI workers can work as a team: - -**Marketing Campaign Example:** -1. **Researcher** → Finds trending topics -2. **Writer** → Creates content -3. **Designer** → Generates visuals -4. **Analyst** → Measures performance - -All working together, automatically. - -### Custom Workflows -Build complex processes visually: -- Drag & drop workflow designer -- No coding required -- Test before deploying - -### Integration Marketplace -- 100+ pre-built connectors -- API access to any system -- Custom integrations available - ---- - -## 🟩 Common Questions -Pricing, security, reliability, and setup speed—straight answers. - -

-How much does it cost? - -**Starter**: $99/month -- 5 AI agents -- 1,000 tasks/month -- Email support - -**Professional**: $499/month -- Unlimited agents -- 10,000 tasks/month -- Priority support - -**Enterprise**: Custom pricing -- Unlimited everything -- Dedicated support -- Custom integrations -
- -
-Is my data secure? - -**Enterprise Security** -- SOC2 Type II certified -- GDPR compliant -- End-to-end encryption -- Your data never trains AI models -
- -
-What if something goes wrong? - -**Built-in Safety** -- Automatic error handling -- Human escalation rules -- Full audit trail -- Instant rollback -
- -
-How fast can I get started? - -**Same Day Setup** -- 15-minute quick start -- Pre-built templates -- Free onboarding call -- 30-day money-back guarantee -
- ---- - -## 🟨 Ready to Start? -Book a demo, estimate ROI, or try it free. - -
- -### [Book a 15-Min Demo](https://kasal.ai/demo) -### [Calculate Your ROI](https://kasal.ai/calculator) -### [Start Free Trial](https://kasal.ai/trial) - -**No credit card required • Cancel anytime** - -
- ---- - -## 🟪 Need Help? -Ways to reach us and additional resources. - -- **Chat**: Available 24/7 in-app -- **Email**: support@kasal.ai -- **Phone**: 1-800-KASAL-AI -- **Resources**: [Video Tutorials](https://kasal.ai/videos) - ---- - -*Kasal - Where AI Meets Business Excellence* \ No newline at end of file diff --git a/src/docs/CODE_STRUCTURE_GUIDE.md b/src/docs/CODE_STRUCTURE_GUIDE.md index 53697255..bcb7426e 100644 --- a/src/docs/CODE_STRUCTURE_GUIDE.md +++ b/src/docs/CODE_STRUCTURE_GUIDE.md @@ -1,257 +1,213 @@ -## 🟦 Code Structure -A map of folders and files to help you find what you need quickly. - -### 🟩 Top-level -Core project files, app metadata, and documentation. -- `README.md`: Overview and documentation index -- `src/entrypoint.py`: App entry for Databricks Apps -- `src/build.py`: Frontend build pipeline and docs copy -- `src/deploy.py`: Deployment automation -- `src/manifest.yaml`, `src/app.yaml`: App metadata/config -- `src/docs/`: Documentation (guides, API reference, images) -- `src/frontend/`: React SPA -- `src/backend/`: FastAPI backend service - -### 🟨 Backend (`src/backend/src`) -FastAPI backend: entrypoint, routers, services, repositories, and DB. -- `main.py`: FastAPI app bootstrap, CORS, middleware, startup/shutdown, scheduler, seeds, API router registration - - - `services/`: Business logic/orchestration and integrations - - Orchestration: `execution_service.py`, `crewai_execution_service.py`, `process_crew_executor.py`, `scheduler_service.py` - - Integrations: `databricks_*_service.py`, `mlflow_service.py` - - Observability/aux: `execution_logs_service.py`, `execution_trace_service.py`, `documentation_embedding_service.py` -- `repositories/`: Data access (SQL/external/vector/mlflow) - - Examples: `execution_repository.py`, `execution_history_repository.py`, `databricks_vector_index_repository.py`, `database_backup_repository.py` -- `models/`: SQLAlchemy ORM entities (tables) -- `schemas/`: Pydantic request/response models -- `db/`: DB setup and sessions - - `session.py`: async engine/session, SQLite lock retries, optional SQL logging - - `all_models.py`: model import aggregator -- `config/`: App configuration - - `settings.py`: env-driven settings and flags (e.g., `DOCS_ENABLED`, `AUTO_SEED_DATABASE`) - - `logging.py`: logging configuration -- `core/`: Cross-cutting concerns - - `llm_manager.py`: LLM routing/provider config - - `logger.py`: centralized logging manager - - `permissions.py`, `dependencies.py`, `base_service.py`, `base_repository.py`, `unit_of_work.py` - - `entity_extraction_fallback.py`: LLM memory fallback logic -- `engines/`: AI orchestration engines - - `crewai/`: `execution_runner.py`, `crew_preparation.py`, `flow_preparation.py`, callbacks, memory, tools, guardrails - - `engine_factory.py`: engine selection -- `utils/`: Utilities - - `user_context.py`: Databricks header parsing, group context, middleware - - `databricks_url_utils.py`, `databricks_auth.py`, rate limiting, crypto, prompts -- `seeds/`, `scripts/`, `dependencies/`: Seeders, scripts, DI helpers - -### 🟪 Frontend (`src/frontend`) -React + TypeScript application, API client, components, and state. -- React + TypeScript (CRA + Craco) -- `src/config/api/ApiConfig.ts`: API base URL selection and Axios client - - ---- - -# Alembic Migrations -All scripts live in `src/backend/migrations/versions`. They evolve the database schema over time. Two core files support them: - -## src/backend/migrations/env.py -Sets up the Alembic context, reading DB URLs from SQLAlchemy models. It: -- Imports metadata from `all_models`. -- Configures offline/online migration modes. - -## src/backend/migrations/script.py.mako -A Jinja template used by Alembic to generate new revision files. It defines boilerplate for `upgrade()` and `downgrade()`. - -## src/backend/scripts/migrations/migrate_mcp_group_id.py -A custom Python script (outside Alembic) that migrates existing MCP server records to a new `group_id` structure. +## Code Structure +A fast, skimmable map of the repository to help you find the right place quickly. ---- -# REST API Routers -Each file under `src/backend/src/api` defines a FastAPI router. They follow a common pattern: - -```python -router = APIRouter(prefix="/v1/resource", tags=["resource"]) -@router.get("/", response_model=List[ResourceSchema]) -async def list_resources(...): - return await service.list() +### Repository layout ``` -Below is an example for **Agents**. All other routers mirror this structure. - -```api -{ - "title": "List Agents", - "description": "Retrieve all agents for the current group.", - "method": "GET", - "baseUrl": "https://api.kasal.ai", - "endpoint": "/v1/agents", - "headers": [ - {"key": "Authorization", "value": "Bearer ", "required": true} - ], - "queryParams": [ - {"key": "limit", "value": "Max items to return", "required": false}, - {"key": "offset", "value": "Pagination offset", "required": false} - ], - "pathParams": [], - "bodyType": "none", - "responses": { - "200": { - "description": "List of agents", - "body": "[{ \"id\": \"...\", \"name\": \"Support Bot\" }]" - } - } -} +├── README.md +└── src/ + ├── backend/ # FastAPI backend + ├── frontend/ # React + TypeScript frontend + ├── docs/ # Markdown docs (copied to /docs in the app) + ├── build.py # Frontend build + docs copy + ├── deploy.py # Deployment utilities + └── manifest.yaml # App metadata ``` -- **agent_generation_router.py**: Endpoints to trigger agent‐based content generation. -- **agents_router.py**: CRUD for `Agent` entities. -- **api_keys_router.py**: Manage API keys. -- **auth_router.py**: Login, logout, token refresh. -- **chat_history_router.py**: Query past chat logs. -- **connections_router.py**: Database/MCP connection configs. -- **crew_generation_router.py**: Generate multi‐agent crews. -- **crews_router.py**: CRUD for `Crew` entities. -- **database_management_router.py**: DB backup/restore. -- **databricks_knowledge_router.py**: Manage Databricks knowledge sources. -- **databricks_router.py**: Databricks environment config. -- **databricks_secrets_router.py**: Vault secrets for Databricks. -- **dispatcher_router.py**: Dispatch flows to MCP servers. -- **documentation_embeddings_router.py**: CRUD for doc embeddings. -- **dspy_router.py**: DSPy optimization endpoints. -- **engine_config_router.py**: Manage LLM engine settings. -- **execution_history_router.py**: Query past execution metadata. -- **execution_logs_router.py**: Stream logs for executions. -- **execution_trace_router.py**: Retrieve trace timeline. -- **executions_router.py**: Trigger and control executions. -- **flow_execution_router.py**: Read flow‐execution mappings. -- **flows_router.py**: CRUD for `Flow` entities. -- **genie_router.py**: “Genie” autocomplete endpoints. -- **group_router.py**: Manage user groups. -- **group_tools_router.py**: Assign tools to groups. -- **healthcheck_router.py**: Liveness and readiness probes. -- **logs_router.py**: Aggregate application logs. -- **mcp_router.py**: MCP server CRUD and health. -- **memory_backend_router.py**: Manage memory backends. -- **mlflow_router.py**: MLflow experiment tracking endpoints. -- **models_router.py**: List and select provider models. -- **scheduler_router.py**: Job scheduling endpoints. -- **schemas_router.py**: Dynamically serve JSON schemas. -- **task_generation_router.py**: Generate tasks via AI. -- **task_tracking_router.py**: Track running tasks. -- **tasks_router.py**: CRUD for `Task` entities. -- **template_generation_router.py**: Generate prompt templates. -- **templates_router.py**: CRUD for `Template` entities. -- **tools_router.py**: CRUD for `Tool` definitions. -- **users_router.py**: User profile and permissions management. +### Backend (src/backend/src) +- main.py: FastAPI app bootstrap, CORS, middleware, startup/shutdown, scheduler, API router registration +- api/: HTTP routers per domain (agents, crews, executions, tools, models, engine-config, etc.) +- services/: Business logic & orchestration + - Orchestration: execution_service.py, crewai_execution_service.py, process_crew_executor.py, scheduler_service.py + - Integrations: databricks_*_service.py, mlflow_service.py + - Observability: execution_logs_service.py, execution_trace_service.py, documentation_embedding_service.py +- repositories/: Data access (SQL/external/vector/mlflow) +- models/: SQLAlchemy entities +- schemas/: Pydantic request/response DTOs +- db/: Sessions and Alembic integration (session.py, all_models.py) +- config/: Settings & logging (settings.py, logging.py) +- core/: Cross-cutting utilities (llm_manager.py, logger.py, permissions.py, unit_of_work.py) +- engines/: AI engine integration (CrewAI prep/runner, memory, tools, guardrails) +- utils/: Helpers (user_context.py, databricks_url_utils.py, etc.) +- seeds/, scripts/, dependencies/: Seeders, scripts, DI helpers + +### Frontend (src/frontend) +- CRA + TypeScript app +- src/config/api/ApiConfig.ts: API base URL selection and Axios client +- src/api/*Service.ts: API clients per domain (Agents, Crews, Executions, Models, Tools, etc.) +- src/components/: UI components & views +- src/store/: State management +- src/hooks/: Reusable logic +- src/types/: Shared TS types +- src/utils/, src/theme/: Utilities and theme +- public/: Static assets (docs copied to /docs here) + +### Key entry points +- Backend app starts in main.py (includes api_router with prefix from settings) +- Frontend docs are served from /docs (markdown files copied there at build) + +### Routers (where to look) +Common examples under src/backend/src/api/: +- agents_router.py, crews_router.py, executions_router.py, execution_logs_router.py, execution_trace_router.py +- engine_config_router.py, models_router.py, tools_router.py, schemas_router.py +- databricks_*_router.py (secrets, knowledge, connection) + +### Database & migrations +- DB sessions configured in src/backend/src/db/session.py +- Alembic configuration via alembic.ini (root) and migrations/ (root) +- Models aggregated in src/backend/src/db/all_models.py + +### Configuration & logging +- src/backend/src/config/settings.py: env-driven settings (CORS, DB URIs, docs flags, seeding) +- src/backend/src/config/logging.py and src/backend/src/core/logger.py: centralized logging + +### Core & engines +- src/backend/src/core/llm_manager.py: provider/model selection, streaming options +- src/backend/src/engines/crewai/*: crew preparation, execution runner, callbacks, memory/tool adapters + +### Tips: how to trace a feature +1) Start at the router file for the endpoint. +2) Open the called service and scan business logic. +3) Inspect repository methods and related models. +4) Check Pydantic schemas for request/response contracts. +5) Search for engine usage under engines/crewai if orchestration is involved. --- -# Configuration -These modules centralize app settings and logging. - -## src/backend/src/config/logging.py -Sets up Python `logging` with: -- Console and file handlers. -- JSON-formatted logs when in structured mode. -- Integrates with Sentry if DSN provided. - -## src/backend/src/config/settings.py -Defines Pydantic `Settings` for: -- Database URLs -- Secret keys -- Third-party API endpoints -- Feature toggles (e.g., multitenancy) - -```python -class Settings(BaseSettings): - database_url: PostgresDsn - sentry_dsn: Optional[HttpUrl] = None - multi_tenant: bool = True -``` ---- +## Development conventions (back end) + +### Layering philosophy +- API (FastAPI routers) → Services (business logic) → Repositories (data access) → DB +- Keep routers thin (validation, auth), services cohesive (orchestration/transactions), repositories I/O-only. -# Core LLM Handlers -These classes wrap interactions with large language models. +### Naming & structure +- Routers: _router.py (e.g., agents_router.py) +- Services: _service.py +- Repositories: _repository.py +- Models: singular file per entity (e.g., agent.py) +- Schemas: mirror model names (e.g., schemas/agent.py) -## src/backend/src/core/llm_handlers/databricks_gpt_oss_handler.py -- Interfaces with Databricks’ open‐source GPT endpoint. -- Formats requests and parses streaming tokens. -- Applies rate limits via `asyncio_utils`. +### Request/response contracts +- Define input/output Pydantic models in src/backend/src/schemas/* +- Routers return explicit response models (response_model=...) where practical +- Prefer DTOs over ORM entities at boundaries -## src/backend/src/core/llm_handlers/gpt5_handler.py -- Native handler for GPT-5 provider. -- Supports function calling and chunked streaming. +### Transactions & Unit of Work +- Encapsulate write operations inside service methods +- Use the UnitOfWork pattern for multi-repository transactions (core/unit_of_work.py) +- Repositories should not commit; services decide transactional scope -## src/backend/src/core/llm_handlers/gpt5_llm_wrapper.py -- Adapts the `gpt5_handler` to the generic `LLM` interface. -- Adds retry logic and exponential backoff. +### Error handling +- Raise HTTPException in routers for user input errors +- Services raise domain errors; routers translate to HTTP +- Avoid broad try/except; log and rethrow with context --- -# Core Infrastructure +## Back end deep‑dive (files that matter) -## src/backend/src/core/base_repository.py -Abstracts basic CRUD operations for any SQLAlchemy model: -- `get()`, `list()`, `create()`, `update()`, `delete()`. +### App bootstrap +- main.py: lifespan init (logging, DB init, seeders), CORS, user context middleware, include api_router +- config/settings.py: environment-driven settings (DB URIs, docs toggles, seeding) -## src/backend/src/core/base_service.py -Provides transaction scoping and error handling around repositories. +### API surface (selected) +- api/__init__.py: composes all routers +- api/executions_router.py: start/stop/get execution +- api/execution_logs_router.py, api/execution_trace_router.py: logs and trace endpoints +- api/engine_config_router.py, api/models_router.py, api/tools_router.py: engine and model config, tool registry -## src/backend/src/core/dependencies.py -Defines FastAPI dependencies for injecting: -- `UnitOfWork` -- Service instances -- Current user context +### Services (selected) +- services/execution_service.py: high-level execution orchestration +- services/crewai_execution_service.py, engines/crewai/execution_runner.py: CrewAI integration points +- services/scheduler_service.py: background scheduling +- services/documentation_embedding_service.py: embeddings for better generation -## src/backend/src/core/entity_extraction_fallback.py -Fallback logic for extracting entities when NLP fails. +### Repositories (selected) +- repositories/execution_repository.py, execution_history_repository.py: persistence for runs +- repositories/databricks_*_repository.py: Databricks secrets, vector index, volumes -## src/backend/src/core/llm_manager.py -Centralizes LLM calls: -- Chooses correct handler based on config. -- Orchestrates streaming vs. non-streaming modes. +### Database & sessions +- db/session.py: async engine/session, SQLite lock retries, SQL_DEBUG logging +- db/all_models.py: imports all models for Alembic + +### Observability +- core/logger.py: central logger manager (writes to LOG_DIR) +- services/execution_logs_service.py, execution_trace_service.py: persisted logs/trace + +--- -## src/backend/src/core/logger.py -Wraps Python logger to include request IDs and user context. +## Configuration quick reference -## src/backend/src/core/permissions.py -Decorators and functions enforcing RBAC at service/router level. +Defined in src/backend/src/config/settings.py: +- DATABASE_TYPE=postgres|sqlite (defaults to postgres) +- SQLITE_DB_PATH=./app.db when using SQLite +- POSTGRES_* envs for Postgres connection +- DOCS_ENABLED=true|false (exposes /api-docs, /api-redoc, /api-openapi.json) +- AUTO_SEED_DATABASE=true|false (background seeding after DB init) +- LOG_LEVEL=INFO|DEBUG +- SQL_DEBUG=true|false (emits SQL to logs for troubleshooting) -## src/backend/src/core/unit_of_work.py -Coordinator for DB sessions: -- Begins/commits/rolls back transactions. -- Exposes repositories for each entity. +Notes: +- USE_NULLPOOL is set early in main.py to avoid asyncpg pool issues +- Logs default under src/backend/src/logs/ --- -# Database Layer +## Engines & orchestration -## src/backend/src/db/alembic/versions/create_data_processing_table.py -Alembic script creating the `data_processing` table and its indexes. +- Engine selection: src/backend/src/engines/engine_factory.py +- CrewAI integration lives under src/backend/src/engines/crewai/ + - crew_preparation.py: build agents, tools, memory for a run + - execution_runner.py: run loop, callbacks/guardrails + - trace_management.py: hook into tracing pipeline -## src/backend/src/db/all_models.py -Imports and registers all SQLAlchemy `Base` models used by Alembic. +Memory/model caveat: +- Known limitation for specific Databricks models (Claude / GPT‑OSS) on entity extraction +- Automatic fallback to databricks-llama-4-maverick for memory entity extraction only -## src/backend/src/db/base.py -Defines `Base = declarative_base()` and common mixins (e.g., `TimestampMixin`). +--- + +## Front end deep‑dive -## src/backend/src/db/database_router.py -Routes DB calls to either the primary or read-replica based on query type. +### Docs viewer (this page) +- Markdown fetched from /docs/.md (copied from src/docs at build) +- Mermaid supported via fenced ```mermaid code blocks +- Images rendered responsively; prefer /docs/images/... or relative ./images/... +- Internal markdown links are intercepted to load other docs in‑app -## src/backend/src/db/lakebase_session.py -Creates SQLAlchemy sessions for “lake” database (analytics). +### API client +- src/frontend/src/config/api/ApiConfig.ts determines API base URL +- Default dev: http://localhost:8000/api/v1; override with REACT_APP_API_URL -## src/backend/src/db/session.py -Configures the main application DB session pool and event listeners. +### UI organization +- src/components/: feature folders and shared components +- src/api/: type‑safe client wrappers by domain +- src/store/, src/hooks/, src/utils/, src/theme/ --- -# Authentication Dependencies +## End‑to‑end example (from API call to DB) + +1) Router (executions_router.py) accepts POST /executions with schema +2) Service (execution_service.py) validates logic, kicks off orchestration +3) Engine (engines/crewai/...) prepares crew and runs execution +4) Logs/Traces recorded via services and repositories +5) Repositories (execution_repository.py) persist status/history +6) Client polls GET /executions/{id} and GET /execution-logs/{id} -## src/backend/src/dependencies/admin_auth.py -Ensures the current user has admin privileges before proceeding. +--- + +## Anti‑patterns to avoid +- Business logic in routers (keep slim and delegate) +- Services directly returning ORM entities (use schemas/DTOs) +- Repositories committing transactions (services own commit/rollback) +- Ad‑hoc logging without the central logger (use core/logger.py) -## src/backend/src/dependencies/auth.py -Validates JWT tokens, extracts user info, and enforces login. +--- ---- \ No newline at end of file +## Quick links +- Back end entrypoint: src/backend/src/main.py +- Compose routers: src/backend/src/api/__init__.py +- Settings: src/backend/src/config/settings.py +- Sessions: src/backend/src/db/session.py +- CrewAI runner: src/backend/src/engines/crewai/execution_runner.py \ No newline at end of file diff --git a/src/docs/DEVELOPER_GUIDE.md b/src/docs/DEVELOPER_GUIDE.md index b2baf42b..e7c004fb 100644 --- a/src/docs/DEVELOPER_GUIDE.md +++ b/src/docs/DEVELOPER_GUIDE.md @@ -1,7 +1,7 @@ -## 🟦 Developer Guide +## Developer Guide Build, extend, and debug Kasal efficiently. This guide focuses on day-to-day workflows. -### 🟩 Components you'll touch +### Components you'll touch - **Frontend (React SPA)**: UI, designer, monitoring - **API (FastAPI)**: REST endpoints and validation - **Services**: Orchestration and business logic @@ -9,26 +9,26 @@ Build, extend, and debug Kasal efficiently. This guide focuses on day-to-day wor - **Engines (CrewAI)**: Agent/flow preparation and execution - **Data & Storage**: SQLAlchemy models/sessions, embeddings, volumes -### 🟩 Requirements +### Requirements Tools and versions you need before running the stack. - Python 3.9+ - Node.js 18+ - Postgres (recommended) or SQLite for local dev - Databricks access if exercising Databricks features -# Developer Architecture Overview +## Developer Architecture Overview This section gives developers a high-level view of the front end and back end. It explains core components and shows how to understand and trace them. ## Backend Architecture The backend uses FastAPI with a clean layered structure. It separates HTTP routing, business services, repositories, and SQLAlchemy models. ### Core Components -- API Routers: `src/backend/src/api/*` map HTTP endpoints to service calls. -- Services: `src/backend/src/services/*` implement business logic and transactions. -- Repositories: `src/backend/src/repositories/*` handle database CRUD. -- Models/Schemas: `src/backend/src/models/*` and `src/backend/src/schemas/*` define persistence and I/O contracts. -- Core/Engines: `src/backend/src/core/*` and `src/backend/src/engines/*` integrate LLMs and execution flows. -- DB/Session: `src/backend/src/db/*` configures sessions and Alembic migrations. -- Config/Security: `src/backend/src/config/*` and `src/backend/src/dependencies/*` provide settings and auth. +- API Routers: src/backend/src/api/* map HTTP endpoints to service calls. +- Services: src/backend/src/services/* implement business logic and transactions. +- Repositories: src/backend/src/repositories/* handle database CRUD. +- Models/Schemas: src/backend/src/models/* and src/backend/src/schemas/* define persistence and I/O contracts. +- Core/Engines: src/backend/src/core/* and src/backend/src/engines/* integrate LLMs and execution flows. +- DB/Session: src/backend/src/db/* configures sessions and Alembic migrations. +- Config/Security: src/backend/src/config/* and src/backend/src/dependencies/* provide settings and auth. ### Typical Request Flow A request passes through router, service, repository, and database. LLM calls route through the LLM manager when needed. @@ -90,12 +90,12 @@ class ItemRepository(BaseRepository[Item]): The frontend is a React + TypeScript application. It organizes UI components, API clients, state stores, hooks, and utilities. ### Core Components -- API Clients: `src/frontend/src/api/*` wrap HTTP calls with typed methods. -- UI Components: `src/frontend/src/components/*` render views and dialogs. -- Hooks: `src/frontend/src/hooks/*` encapsulate logic and side effects. -- Stores: `src/frontend/src/store/*` manage app and workflow state. -- Types/Config: `src/frontend/src/types/*` and `src/frontend/src/config/*` provide typing and environment. -- Utils: `src/frontend/src/utils/*` offer reusable helpers. +- API Clients: src/frontend/src/api/* wrap HTTP calls with typed methods. +- UI Components: src/frontend/src/components/* render views and dialogs. +- Hooks: src/frontend/src/hooks/* encapsulate logic and side effects. +- Stores: src/frontend/src/store/* manage app and workflow state. +- Types/Config: src/frontend/src/types/* and src/frontend/src/config/* provide typing and environment. +- Utils: src/frontend/src/utils/* offer reusable helpers. ### UI Data Flow Components call hooks, which use stores and API clients. Responses update state and re-render the UI. @@ -116,7 +116,7 @@ flowchart LR - Check its hook usage and props. - Open the API client method it calls. - Review the store slice it reads or writes. -- Inspect related types in `src/frontend/src/types`. +- Inspect related types in src/frontend/src/types. ### Example: Calling an API From a Component A component loads items using an API service and updates local state. @@ -141,5 +141,5 @@ const ItemView: React.FC<{ id: string }> = ({ id }) => { This ties front end and back end with shared contracts. It helps new developers trace a feature quickly. - Frontend Component → Hook → Store/API Client → Backend Router → Service → Repository → DB. -- Shared types and response shapes live in frontend `types` and backend `schemas`. -- Tests in `src/backend/tests` and frontend `__tests__` show usage patterns. \ No newline at end of file +- Shared types and response shapes live in frontend types and backend schemas. +- Tests in src/backend/tests and frontend __tests__ show usage patterns. \ No newline at end of file diff --git a/src/docs/README.md b/src/docs/README.md index 0e0ac79b..f6cb427d 100644 --- a/src/docs/README.md +++ b/src/docs/README.md @@ -1,33 +1,18 @@ -![Kasal Logo](././/images/logo.png) -# 🟦 Kasal Documentation Hub + +# Kasal Documentation Hub **Enterprise AI Agent Orchestration Platform** --- -## 🟩 Quick Start +## Quick Start Find the right documentation for your role and get productive fast. Choose your documentation based on your role: -## 🟨 Business Documentation -Value, outcomes, and non-technical workflows for business users. - -### [Business User Guide](./BUSINESS_USER_GUIDE.md) -**For Leaders, Managers, and Business Users** - -Get started with Kasal without any technical knowledge. Learn how to create AI workflows, calculate ROI, and manage your AI workforce. - -**Key Topics:** -- ROI Calculator and Cost Analysis -- Success Stories and Case Studies -- 15-Minute Quick Setup Guide -- Managing AI Workflows Without Code - ---- -## 🟪 Technical Documentation +## Technical Documentation Developer-focused guides, code structure, and API reference. ### [Code structure Guide](./CODE_STRUCTURE_GUIDE.md) **For Software Engineers and Developers** @@ -64,7 +49,7 @@ Complete REST API documentation with examples, WebSocket events, and SDK librari --- -## 🟧 Architecture Documentation +## Architecture Documentation System design, patterns, and enterprise integration guidance. ### [Solution Architecture Guide](./ARCHITECTURE_GUIDE.md) @@ -80,7 +65,7 @@ Understand Kasal's architecture, design patterns, and enterprise integration str --- -## 🟦 Getting Started in 30 Seconds +## Getting Started in 30 Seconds One command sequence to run both backend and frontend locally. ```bash @@ -101,7 +86,7 @@ Access the application at `http://localhost:3000` --- -## 🟩 Key Features +## Key Features What Kasal provides out of the box to build, operate, and govern AI workflows. | Feature | Description | @@ -115,13 +100,12 @@ What Kasal provides out of the box to build, operate, and govern AI workflows. --- -## 🟨 Documentation Structure +## Documentation Structure How this folder is organized and where to find topics. ``` docs/ ├── README.md # This file - Documentation hub -├── BUSINESS_USER_GUIDE.md # Business user documentation ├── CODE_STRUCTURE_GUIDE.md # Code structure documentation ├── DEVELOPER_GUIDE.md # Developer documentation ├── ARCHITECTURE_GUIDE.md # Architecture documentation @@ -134,7 +118,7 @@ docs/ --- -## 🟪 Technology Stack +## Technology Stack Core frameworks and platforms used across the project. - **Backend**: FastAPI, SQLAlchemy 2.0, Python 3.9+ @@ -145,7 +129,7 @@ Core frameworks and platforms used across the project. --- -## 🟧 Support and Resources +## Support and Resources Where to get help and how to contribute. ### Getting Help @@ -164,11 +148,11 @@ This project is licensed under the Apache License 2.0 - see the [LICENSE](https: --- -## 🟦 Version Information +## Version Information Project and documentation version details. - **Current Version**: 2.0.0 -- **Documentation Updated**: January 2025 +- **Documentation Updated**: October 2025 - **Minimum Python Version**: 3.9 - **Minimum Node Version**: 16.0 diff --git a/src/docs/WHY_KASAL.md b/src/docs/WHY_KASAL.md index 30dfa05a..15c0c095 100644 --- a/src/docs/WHY_KASAL.md +++ b/src/docs/WHY_KASAL.md @@ -22,46 +22,46 @@ Transform your Databricks environment into an AI orchestration powerhouse. Build - **Extensible AI Engine**: CrewAI integration today, engine abstraction for future engines. - **Governance & Security**: Group-aware multi-tenant model, API keys, permissions, and auditability. -## 🟦 Components at a glance +## Components at a glance A quick tour of the building blocks—what each part does and why it matters. -### 🟩 Frontend (React SPA) +### Frontend (React SPA) - **What it does**: Visual designer for agents, tasks, and flows; live monitoring UI. - **Why it matters**: Non-technical users can build and operate AI workflows without touching code. -### 🟨 API (FastAPI) +### API (FastAPI) - **What it does**: Validates requests, exposes REST endpoints, and routes calls to services. - **Why it matters**: Clear, versioned contracts between UI/automation and backend logic. -### 🟪 Services (Business Logic) +### Services (Business Logic) - **What it does**: Implements orchestration, validation, scheduling, and domain logic. - **Why it matters**: Keeps HTTP thin and domain logic testable and reusable. -### 🟧 Repositories (Data Access) +### Repositories (Data Access) - **What it does**: Encapsulates SQL and external I/O (Databricks APIs, Vector Search, MLflow). - **Why it matters**: Swappable persistence and integrations without leaking into services. -### 🟦 Engines (CrewAI Orchestration) +### Engines (CrewAI Orchestration) - **What it does**: Prepares crews, runs executions, handles callbacks/guardrails, manages memory. - **Why it matters**: Pluggable execution engine today (CrewAI) and extensible for future engines. -### 🟩 Data & Storage +### Data & Storage - **What it does**: Async SQLAlchemy sessions, models/schemas, vector indexes, volumes. - **Why it matters**: Reliable persistence with optional vector search and document storage. -### 🟨 Scheduler & Background Jobs +### Scheduler & Background Jobs - **What it does**: Recurring runs, long tasks, and background queues (e.g., embedding batching). - **Why it matters**: Production-ready operations beyond single request/response. -### 🟪 Observability +### Observability - **What it does**: Structured logs, execution logs, traces, history, health checks. - **Why it matters**: Debug fast, audit runs, and understand system behavior end-to-end. -### 🟧 Security & Governance +### Security & Governance - **What it does**: Group-aware multi-tenancy, JWT/Databricks headers, centralized permissions. - **Why it matters**: Safely share across teams while isolating data and enforcing roles. -### 🟦 Databricks Integrations +### Databricks Integrations - **What it does**: OAuth, Secrets, SQL Warehouses, Unity Catalog, Volumes, Vector Search, MLflow. - **Why it matters**: Build where your data and models already live with first-class support. diff --git a/src/frontend/package.json b/src/frontend/package.json index 3be7981a..6f2950b5 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -28,6 +28,7 @@ "jspdf-autotable": "^4.0.0", "lodash.throttle": "^4.1.1", "marked": "^12.0.0", + "mermaid": "^10.9.1", "notistack": "^3.0.1", "prism-react-renderer": "^2.3.0", "react": "^18.2.0", diff --git a/src/frontend/public/Kasal-overview.png b/src/frontend/public/Kasal-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..df9aa78e4a8ce6bf31eeaa8820faa93cf6a83953 GIT binary patch literal 154290 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 literal 0 HcmV?d00001 diff --git a/src/frontend/public/docs/API_REFERENCE.md b/src/frontend/public/docs/API_REFERENCE.md index 7fbdc73f..7b9a6b4f 100644 --- a/src/frontend/public/docs/API_REFERENCE.md +++ b/src/frontend/public/docs/API_REFERENCE.md @@ -5,6 +5,7 @@ --- ## Getting Started +Base URLs, authentication, and rate limits you need before calling endpoints. ### Base URL ``` @@ -35,6 +36,7 @@ curl -X GET https://api.example.com/v1/crews \ --- ## Authentication Endpoints +Login, refresh, and logout flows to manage tokens. ### POST /auth/login **Login with credentials** @@ -77,6 +79,7 @@ Response: 204 No Content --- ## Crew Management +Create and manage multi-agent crews and their configurations. ### GET /crews **List all crews** @@ -160,6 +163,7 @@ Response: 204 No Content --- ## Agent Management +Create and list individual agents with roles, models, and tools. ### GET /agents **List all agents** @@ -201,6 +205,7 @@ Response: 201 Created --- ## Execution Management +Start executions, get status, retrieve traces, and stop runs. ### POST /executions **Start crew execution** @@ -264,6 +269,7 @@ Response: 200 OK --- ## Task Management +Create and list tasks assigned to agents. ### GET /tasks **List tasks** @@ -302,6 +308,7 @@ Response: 201 Created --- ## Tool Management +Discover built-in tools and register custom tools. ### GET /tools **List available tools** @@ -344,6 +351,7 @@ Response: 201 Created --- ## Memory Management +Fetch and clear short/long-term memory for a crew. ### GET /memory/{crew_id} **Get crew memory** @@ -378,40 +386,10 @@ Response: 204 No Content --- -## Analytics -### GET /analytics/usage -**Get usage statistics** -```json -Response: 200 OK -{ - "period": "2024-01", - "executions": 1543, - "tokens_used": 2450000, - "success_rate": 0.98, - "avg_duration": 245 -} -``` -### GET /analytics/performance -**Get performance metrics** -```json -Response: 200 OK -{ - "crews": [ - { - "crew_id": "crew_abc123", - "executions": 500, - "success_rate": 0.99, - "avg_duration": 180 - } - ] -} -``` - ---- - -## WebSocket Events +## 🔵 WebSocket Events +Real-time updates for task lifecycle, errors, and progress. ### Connection ```javascript @@ -454,7 +432,8 @@ ws.onopen = () => { --- -## Error Codes +## 🔷 Error Codes +Standardized error responses and meanings. | Code | Message | Description | |------|---------|-------------| @@ -482,7 +461,8 @@ ws.onopen = () => { --- -## Testing +## 🔹 Testing +Sandbox, Postman collection, and OpenAPI spec. ### Sandbox Environment ```bash @@ -493,55 +473,6 @@ curl -X POST https://sandbox-api.kasal.ai/v1/crews \ -d @crew.json ``` -### Postman Collection -[Download Collection](https://api.kasal.ai/postman/kasal-api-v1.json) - -### OpenAPI Spec -[View OpenAPI 3.0 Spec](https://api.kasal.ai/openapi.json) - ---- - -## SDKs & Libraries - -### Python -```python -pip install kasal-sdk - -from kasal import KasalClient - -client = KasalClient(api_key="your_key") -crew = client.crews.create(name="My Crew") -result = client.execute(crew.id, inputs={}) -``` - -### JavaScript/TypeScript -```javascript -npm install @kasal/sdk - -import { Kasal } from '@kasal/sdk'; - -const kasal = new Kasal({ apiKey: 'your_key' }); -const crew = await kasal.crews.create({ name: 'My Crew' }); -const result = await kasal.execute(crew.id, {}); -``` - -### Go -```go -import "github.com/kasal/kasal-go" - -client := kasal.NewClient("your_key") -crew, _ := client.Crews.Create("My Crew") -result, _ := client.Execute(crew.ID, inputs) -``` - ---- - -## API Support - -- **Status Page**: [status.kasal.ai](https://status.kasal.ai) -- **API Console**: [console.kasal.ai](https://console.kasal.ai) -- **Developer Forum**: [forum.kasal.ai](https://forum.kasal.ai) -- **Email**: api-support@kasal.ai --- diff --git a/src/frontend/public/docs/ARCHITECTURE_GUIDE.md b/src/frontend/public/docs/ARCHITECTURE_GUIDE.md index f3362f73..ca1a02f9 100644 --- a/src/frontend/public/docs/ARCHITECTURE_GUIDE.md +++ b/src/frontend/public/docs/ARCHITECTURE_GUIDE.md @@ -1,10 +1,12 @@ -# Kasal Solution Architecture +# 🔵 Kasal Solution Architecture > **Enterprise AI Orchestration Platform** - Scalable, secure, cloud-native - +![Kasal Overvew](/Kasal-overview.png) +*Visual workflow designer for creating AI agent collaborations* --- ## System Overview +What the platform aims to achieve and core design principles. ### Platform Vision **Transform business workflows with autonomous AI agents** - Zero infrastructure complexity @@ -21,6 +23,7 @@ --- ## High-Level Architecture +A big-picture view of the client, application, AI, and data layers. ```mermaid graph TB @@ -69,284 +72,89 @@ graph TB --- -## Component Architecture - -### Frontend (React SPA) -``` -components/ -├── Workflow/ # Visual designer -├── Execution/ # Real-time monitoring -├── Configuration/ # System settings -└── Analytics/ # Performance metrics -``` - -**Key Technologies**: React 18, TypeScript, Material-UI, ReactFlow, Zustand +## Architecture Pattern +The layered approach and how requests flow through components. + +### High-level +- Layered architecture: + - Frontend (React SPA) → API (FastAPI) → Services → Repositories → Database +- Async-first (async SQLAlchemy, background tasks, queues) +- Config via environment (src/backend/src/config/settings.py) +- Pluggable orchestration engine (src/backend/src/engines/ with CrewAI) + +### Request lifecycle (CRUD path) +From HTTP request to response: validation, business logic, and persistence. +1) Router in api/ receives request, validates using schemas/ +2) Router calls services/ for business logic +3) Service uses repositories/ for DB/external I/O +4) Data persisted via db/session.py +5) Response serialized with Pydantic schemas + +### Orchestration lifecycle (AI execution) +How executions are prepared, run, and observed using the engine. +- Entry via executions_router.py → execution_service.py +- Service prepares agents/tools/memory and selects engine (engines/engine_factory.py) +- CrewAI path: + - Prep: engines/crewai/crew_preparation.py and flow_preparation.py + - Run: engines/crewai/execution_runner.py with callbacks/guardrails + - Observability: execution_logs_service.py, execution_trace_service.py +- Persist status/history: execution_repository.py, execution_history_repository.py + +### Background processing +Schedulers and queues for recurring and long-running tasks. +- Scheduler at startup: scheduler_service.py +- Embedding queue (SQLite): embedding_queue_service.py (batches writes) +- Startup/shutdown cleanup: execution_cleanup_service.py + +### Data modeling +ORM entities, Pydantic schemas, and repository boundaries. +- ORM in models/* mirrors schemas/* +- Repositories encapsulate all SQL/external calls (Databricks APIs, Vector Search, MLflow) +- db/session.py: + - Async engine and session factory + - SQLite lock retry w/ backoff + - Optional SQL logging via SQL_DEBUG=true + +### Auth, identity, and tenancy +User context, group isolation, and authorization controls. +- Databricks Apps headers parsed by utils/user_context.py +- Group-aware multi-tenant context propagated via middleware +- JWT/basic auth routes in auth_router.py, users in users_router.py +- Authorization checks in core/permissions.py -### Backend Services -``` -services/ -├── AuthService # JWT + OAuth -├── CrewService # Agent orchestration -├── ExecutionService # Workflow execution -├── MemoryService # Persistent context -└── IntegrationService # External systems -``` - -**Key Technologies**: FastAPI, SQLAlchemy 2.0, Pydantic, AsyncIO - -### AI Engine -``` -engine/ -├── AgentFactory # Agent creation -├── TaskProcessor # Task execution -├── ToolRegistry # Tool management -└── MemoryBackend # Context persistence -``` - -**Key Technologies**: CrewAI, LangChain, Vector Embeddings - ---- - -## Security Architecture - -### Authentication & Authorization -```python -# Multi-layer security -1. API Gateway → Rate limiting, DDoS protection -2. JWT Tokens → Stateless authentication -3. RBAC → Role-based permissions -4. Row-Level → Tenant data isolation -5. Audit Logs → Complete traceability -``` ### Security Controls +Defense-in-depth across network, API, data, secrets, and compliance. | Layer | Control | Implementation | |-------|---------|----------------| | **Network** | TLS 1.3 | End-to-end encryption | | **API** | OAuth 2.0 | Databricks SSO | | **Data** | AES-256 | Encryption at rest | -| **Secrets** | Vault | HashiCorp Vault | -| **Compliance** | SOC2 | Audit trails | --- -## Data Architecture - -### Data Model -```sql --- Core entities -crews (id, name, config, owner_id, group_id) -agents (id, crew_id, role, capabilities) -tasks (id, agent_id, description, status) -executions (id, crew_id, job_id, status) -traces (id, execution_id, timestamp, data) -``` - -### Data Flow -``` -User Request → API → Service → Repository → Database - ↓ ↓ ↓ ↓ ↓ - Validation Business Domain Data Storage - Logic Model Access Engine -``` - ### Storage Strategy +Where different data types live and why. | Data Type | Storage | Purpose | |-----------|---------|---------| | **Transactional** | PostgreSQL | ACID compliance | -| **Session** | Redis | Fast cache | | **Vectors** | Databricks Vector | Semantic search | -| **Files** | S3/Azure Blob | Document storage | -| **Logs** | CloudWatch/Datadog | Observability | - ---- - -## Performance Architecture - -### Scaling Strategy -```yaml -Horizontal Scaling: - - API: Auto-scale 2-100 pods - - Workers: Queue-based scaling - - Database: Read replicas - - Cache: Redis cluster - -Vertical Scaling: - - LLM Gateway: GPU instances - - Vector Search: Memory-optimized -``` - -### Performance Metrics -| Component | Target | Current | -|-----------|--------|---------| -| **API Latency** | <100ms | 45ms | -| **Execution Start** | <1s | 0.3s | -| **Throughput** | 10K req/s | 15K req/s | -| **Availability** | 99.99% | 99.995% | - -### Optimization Techniques -- **Connection Pooling**: 20 connections, 40 overflow -- **Batch Processing**: 50-item chunks -- **Async Everything**: Non-blocking I/O -- **Caching**: Redis with 15min TTL -- **CDN**: Static assets via CloudFront - ---- - -## Integration Architecture - -### API Gateway Pattern -```nginx -location /api/v1/ { - rate_limit 100/s; - auth_jwt on; - proxy_pass backend_cluster; -} -``` - -### External Integrations -| System | Method | Use Case | -|--------|--------|----------| -| **Databricks** | OAuth + REST | ML models, compute | -| **Slack/Teams** | Webhooks | Notifications | -| **Salesforce** | REST API | CRM data | -| **GitHub** | GraphQL | Code repos | -| **S3/Azure** | SDK | File storage | - -### Event-Driven Architecture -```python -# Event bus pattern -EventBus.publish("execution.started", { - "crew_id": "abc123", - "job_id": "job456", - "timestamp": datetime.now() -}) - -# Subscribers -- NotificationService → Send alerts -- AnalyticsService → Track metrics -- AuditService → Log activity -``` +| **Logs** | MLFlow traces | Observability | --- -## Deployment Architecture - -### Container Strategy -```dockerfile -# Multi-stage build -FROM python:3.9-slim AS builder -# Build dependencies - -FROM python:3.9-slim -# Runtime only -``` - -### Kubernetes Deployment -```yaml -apiVersion: apps/v1 -kind: Deployment -spec: - replicas: 3 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 -``` +### Observability +Logs, traces, metrics, and how to access them. +- Central log manager: core/logger.py (writes to LOG_DIR) +- API/SQL logging toggles (LOG_LEVEL, SQL_DEBUG) +- Execution logs/traces persisted and queryable via dedicated routes/services -### CI/CD Pipeline -``` -1. Code Push → GitHub -2. Tests → GitHub Actions -3. Build → Docker -4. Deploy → Kubernetes -5. Monitor → Datadog -``` +### Configuration flags (selected) +Important toggles that affect developer and runtime experience. +- DOCS_ENABLED: enables /docs +- AUTO_SEED_DATABASE: async background seeders post DB init +- DATABASE_TYPE: sqlite with SQLITE_DB_PATH ---- - -## Monitoring & Observability - -### Three Pillars -```python -# 1. Metrics (Prometheus) -execution_duration_seconds.observe(duration) -active_crews_gauge.set(count) - -# 2. Logs (ELK Stack) -logger.info("Execution completed", - crew_id=crew_id, - duration=duration) - -# 3. Traces (Jaeger) -with tracer.start_span("crew_execution"): - result = await crew.execute() -``` - -### SLO/SLA Targets -| Service | SLO | SLA | -|---------|-----|-----| -| **API Availability** | 99.95% | 99.9% | -| **Execution Success** | 98% | 95% | -| **Response Time P95** | 200ms | 500ms | -| **Data Durability** | 99.999999% | 99.9999% | - ---- -## Disaster Recovery - -### Backup Strategy -- **Database**: Daily snapshots, 30-day retention -- **File Storage**: Cross-region replication -- **Configuration**: Git-backed, versioned - -### RTO/RPO Targets -- **RTO** (Recovery Time): 4 hours -- **RPO** (Point Objective): 1 hour - -### Failover Process -``` -1. Health check fails → 3 retries -2. Trigger failover → DNS update -3. Activate standby → Warm replicas -4. Verify services → Health checks -5. Resume traffic → Gradual rollout -``` - ---- - -## Technology Roadmap - -### Q1 2025 -- Core platform launch -- Databricks integration -- Kubernetes deployment - -### Q2 2025 -- Multi-region support -- Advanced analytics -- Mobile SDK - -### Q3 2025 -- GraphQL API -- Edge computing -- AI marketplace - -### Q4 2025 -- Quantum-ready encryption -- Autonomous optimization -- Enterprise marketplace - ---- - -## Architecture Support - -- **Architecture Review Board**: Weekly Thursdays -- **Design Docs**: Confluence/architecture -- **Slack**: #architecture-decisions -- **Email**: architecture@example.com - ---- *Architected for scale, built for the future* \ No newline at end of file diff --git a/src/frontend/public/docs/BUSINESS_USER_GUIDE.md b/src/frontend/public/docs/BUSINESS_USER_GUIDE.md deleted file mode 100644 index 6e1b5fc7..00000000 --- a/src/frontend/public/docs/BUSINESS_USER_GUIDE.md +++ /dev/null @@ -1,207 +0,0 @@ -# Kasal Business User Guide - -> **AI Workers for Your Business** - No coding required - ---- - -## What is Kasal? - -**Your AI workforce that never sleeps.** Kasal orchestrates AI agents to handle complex workflows automatically, 24/7. - -### Perfect For: -- **Customer Support** → 70% faster response times -- **Content Creation** → 5x more output -- **Data Analysis** → Real-time insights -- **Process Automation** → Zero human errors - -### ROI Calculator -| Your Current Process | With Kasal | Savings | -|---------------------|------------|---------| -| 10 hours/week manual work | 1 hour setup + monitoring | **9 hours/week** | -| $50/hour employee cost | $0.10/hour AI cost | **$2,500/month** | -| 3-day turnaround | Same-day results | **66% faster** | - ---- - -## Quick Start (15 Minutes) - -### Step 1: Choose Your Use Case -Click the template that matches your need: - -| **Customer Support** | **Content Marketing** | **Data Analysis** | -|-------------------------|-------------------------|---------------------| -| Auto-reply to emails | Generate blog posts | Analyze spreadsheets | -| Handle FAQs | Create social media | Build reports | -| Route to right team | SEO optimization | Find patterns | - -### Step 2: Configure Your AI Team -Simply describe what you want: -``` -"I need to respond to customer emails within 1 hour -with professional, helpful answers" -``` - -### Step 3: Connect Your Tools -One-click integrations: -- **Email**: Gmail, Outlook -- **Chat**: Slack, Teams -- **Data**: Excel, Google Sheets -- **CRM**: Salesforce, HubSpot - -### Step 4: Launch -Press **Start** and watch your AI team work! - ---- - -## Success Metrics - -### Real Customer Results - -**TechCorp** -> "Reduced support tickets by 60% in first month" -- **Before**: 200 tickets/day, 24hr response -- **After**: 80 tickets/day, 1hr response -- **Saved**: $120K annually - -**E-Shop Plus** -> "Generated 500 product descriptions in 2 hours" -- **Before**: 1 writer, 20 descriptions/day -- **After**: AI crew, 250 descriptions/hour -- **Result**: Launched 10x faster - -**DataDriven Inc** -> "Daily reports that took 3 hours now take 3 minutes" -- **Before**: Manual Excel analysis -- **After**: Automated insights -- **Impact**: Real-time decisions - ---- - -## Control Center - -### Dashboard Overview -![Dashboard](dashboard-preview.png) - -**Key Metrics at a Glance:** -- **Active Workflows**: See what's running -- **Completed Tasks**: Track progress -- **Performance**: Response times -- **Cost Savings**: ROI tracking - -### Managing Your AI Workers - -**Start/Stop Controls** -- **Run Continuously**: 24/7 automation -- **Business Hours**: 9-5 operation -- **Pause**: Instant stop - -**Quality Controls** -- **Review Mode**: Approve before sending -- **Auto Mode**: Fully autonomous -- **Alert Mode**: Notify on exceptions - ---- - -## Advanced Features - -### Multi-Agent Collaboration -Your AI workers can work as a team: - -**Marketing Campaign Example:** -1. **Researcher** → Finds trending topics -2. **Writer** → Creates content -3. **Designer** → Generates visuals -4. **Analyst** → Measures performance - -All working together, automatically. - -### Custom Workflows -Build complex processes visually: -- Drag & drop workflow designer -- No coding required -- Test before deploying - -### Integration Marketplace -- 100+ pre-built connectors -- API access to any system -- Custom integrations available - ---- - -## Common Questions - -
-How much does it cost? - -**Starter**: $99/month -- 5 AI agents -- 1,000 tasks/month -- Email support - -**Professional**: $499/month -- Unlimited agents -- 10,000 tasks/month -- Priority support - -**Enterprise**: Custom pricing -- Unlimited everything -- Dedicated support -- Custom integrations -
- -
-Is my data secure? - -**Enterprise Security** -- SOC2 Type II certified -- GDPR compliant -- End-to-end encryption -- Your data never trains AI models -
- -
-What if something goes wrong? - -**Built-in Safety** -- Automatic error handling -- Human escalation rules -- Full audit trail -- Instant rollback -
- -
-How fast can I get started? - -**Same Day Setup** -- 15-minute quick start -- Pre-built templates -- Free onboarding call -- 30-day money-back guarantee -
- ---- - -## Ready to Start? - -
- -### [Book a 15-Min Demo](https://kasal.ai/demo) -### [Calculate Your ROI](https://kasal.ai/calculator) -### [Start Free Trial](https://kasal.ai/trial) - -**No credit card required • Cancel anytime** - -
- ---- - -## Need Help? - -- **Chat**: Available 24/7 in-app -- **Email**: support@kasal.ai -- **Phone**: 1-800-KASAL-AI -- **Resources**: [Video Tutorials](https://kasal.ai/videos) - ---- - -*Kasal - Where AI Meets Business Excellence* \ No newline at end of file diff --git a/src/frontend/public/docs/CODE_STRUCTURE_GUIDE.md b/src/frontend/public/docs/CODE_STRUCTURE_GUIDE.md new file mode 100644 index 00000000..bcb7426e --- /dev/null +++ b/src/frontend/public/docs/CODE_STRUCTURE_GUIDE.md @@ -0,0 +1,213 @@ +## Code Structure +A fast, skimmable map of the repository to help you find the right place quickly. + +### Repository layout +``` + +├── README.md +└── src/ + ├── backend/ # FastAPI backend + ├── frontend/ # React + TypeScript frontend + ├── docs/ # Markdown docs (copied to /docs in the app) + ├── build.py # Frontend build + docs copy + ├── deploy.py # Deployment utilities + └── manifest.yaml # App metadata +``` + +### Backend (src/backend/src) +- main.py: FastAPI app bootstrap, CORS, middleware, startup/shutdown, scheduler, API router registration +- api/: HTTP routers per domain (agents, crews, executions, tools, models, engine-config, etc.) +- services/: Business logic & orchestration + - Orchestration: execution_service.py, crewai_execution_service.py, process_crew_executor.py, scheduler_service.py + - Integrations: databricks_*_service.py, mlflow_service.py + - Observability: execution_logs_service.py, execution_trace_service.py, documentation_embedding_service.py +- repositories/: Data access (SQL/external/vector/mlflow) +- models/: SQLAlchemy entities +- schemas/: Pydantic request/response DTOs +- db/: Sessions and Alembic integration (session.py, all_models.py) +- config/: Settings & logging (settings.py, logging.py) +- core/: Cross-cutting utilities (llm_manager.py, logger.py, permissions.py, unit_of_work.py) +- engines/: AI engine integration (CrewAI prep/runner, memory, tools, guardrails) +- utils/: Helpers (user_context.py, databricks_url_utils.py, etc.) +- seeds/, scripts/, dependencies/: Seeders, scripts, DI helpers + +### Frontend (src/frontend) +- CRA + TypeScript app +- src/config/api/ApiConfig.ts: API base URL selection and Axios client +- src/api/*Service.ts: API clients per domain (Agents, Crews, Executions, Models, Tools, etc.) +- src/components/: UI components & views +- src/store/: State management +- src/hooks/: Reusable logic +- src/types/: Shared TS types +- src/utils/, src/theme/: Utilities and theme +- public/: Static assets (docs copied to /docs here) + +### Key entry points +- Backend app starts in main.py (includes api_router with prefix from settings) +- Frontend docs are served from /docs (markdown files copied there at build) + +### Routers (where to look) +Common examples under src/backend/src/api/: +- agents_router.py, crews_router.py, executions_router.py, execution_logs_router.py, execution_trace_router.py +- engine_config_router.py, models_router.py, tools_router.py, schemas_router.py +- databricks_*_router.py (secrets, knowledge, connection) + +### Database & migrations +- DB sessions configured in src/backend/src/db/session.py +- Alembic configuration via alembic.ini (root) and migrations/ (root) +- Models aggregated in src/backend/src/db/all_models.py + +### Configuration & logging +- src/backend/src/config/settings.py: env-driven settings (CORS, DB URIs, docs flags, seeding) +- src/backend/src/config/logging.py and src/backend/src/core/logger.py: centralized logging + +### Core & engines +- src/backend/src/core/llm_manager.py: provider/model selection, streaming options +- src/backend/src/engines/crewai/*: crew preparation, execution runner, callbacks, memory/tool adapters + +### Tips: how to trace a feature +1) Start at the router file for the endpoint. +2) Open the called service and scan business logic. +3) Inspect repository methods and related models. +4) Check Pydantic schemas for request/response contracts. +5) Search for engine usage under engines/crewai if orchestration is involved. + +--- + +## Development conventions (back end) + +### Layering philosophy +- API (FastAPI routers) → Services (business logic) → Repositories (data access) → DB +- Keep routers thin (validation, auth), services cohesive (orchestration/transactions), repositories I/O-only. + +### Naming & structure +- Routers: _router.py (e.g., agents_router.py) +- Services: _service.py +- Repositories: _repository.py +- Models: singular file per entity (e.g., agent.py) +- Schemas: mirror model names (e.g., schemas/agent.py) + +### Request/response contracts +- Define input/output Pydantic models in src/backend/src/schemas/* +- Routers return explicit response models (response_model=...) where practical +- Prefer DTOs over ORM entities at boundaries + +### Transactions & Unit of Work +- Encapsulate write operations inside service methods +- Use the UnitOfWork pattern for multi-repository transactions (core/unit_of_work.py) +- Repositories should not commit; services decide transactional scope + +### Error handling +- Raise HTTPException in routers for user input errors +- Services raise domain errors; routers translate to HTTP +- Avoid broad try/except; log and rethrow with context + +--- + +## Back end deep‑dive (files that matter) + +### App bootstrap +- main.py: lifespan init (logging, DB init, seeders), CORS, user context middleware, include api_router +- config/settings.py: environment-driven settings (DB URIs, docs toggles, seeding) + +### API surface (selected) +- api/__init__.py: composes all routers +- api/executions_router.py: start/stop/get execution +- api/execution_logs_router.py, api/execution_trace_router.py: logs and trace endpoints +- api/engine_config_router.py, api/models_router.py, api/tools_router.py: engine and model config, tool registry + +### Services (selected) +- services/execution_service.py: high-level execution orchestration +- services/crewai_execution_service.py, engines/crewai/execution_runner.py: CrewAI integration points +- services/scheduler_service.py: background scheduling +- services/documentation_embedding_service.py: embeddings for better generation + +### Repositories (selected) +- repositories/execution_repository.py, execution_history_repository.py: persistence for runs +- repositories/databricks_*_repository.py: Databricks secrets, vector index, volumes + +### Database & sessions +- db/session.py: async engine/session, SQLite lock retries, SQL_DEBUG logging +- db/all_models.py: imports all models for Alembic + +### Observability +- core/logger.py: central logger manager (writes to LOG_DIR) +- services/execution_logs_service.py, execution_trace_service.py: persisted logs/trace + +--- + +## Configuration quick reference + +Defined in src/backend/src/config/settings.py: +- DATABASE_TYPE=postgres|sqlite (defaults to postgres) +- SQLITE_DB_PATH=./app.db when using SQLite +- POSTGRES_* envs for Postgres connection +- DOCS_ENABLED=true|false (exposes /api-docs, /api-redoc, /api-openapi.json) +- AUTO_SEED_DATABASE=true|false (background seeding after DB init) +- LOG_LEVEL=INFO|DEBUG +- SQL_DEBUG=true|false (emits SQL to logs for troubleshooting) + +Notes: +- USE_NULLPOOL is set early in main.py to avoid asyncpg pool issues +- Logs default under src/backend/src/logs/ + +--- + +## Engines & orchestration + +- Engine selection: src/backend/src/engines/engine_factory.py +- CrewAI integration lives under src/backend/src/engines/crewai/ + - crew_preparation.py: build agents, tools, memory for a run + - execution_runner.py: run loop, callbacks/guardrails + - trace_management.py: hook into tracing pipeline + +Memory/model caveat: +- Known limitation for specific Databricks models (Claude / GPT‑OSS) on entity extraction +- Automatic fallback to databricks-llama-4-maverick for memory entity extraction only + +--- + +## Front end deep‑dive + +### Docs viewer (this page) +- Markdown fetched from /docs/.md (copied from src/docs at build) +- Mermaid supported via fenced ```mermaid code blocks +- Images rendered responsively; prefer /docs/images/... or relative ./images/... +- Internal markdown links are intercepted to load other docs in‑app + +### API client +- src/frontend/src/config/api/ApiConfig.ts determines API base URL +- Default dev: http://localhost:8000/api/v1; override with REACT_APP_API_URL + +### UI organization +- src/components/: feature folders and shared components +- src/api/: type‑safe client wrappers by domain +- src/store/, src/hooks/, src/utils/, src/theme/ + +--- + +## End‑to‑end example (from API call to DB) + +1) Router (executions_router.py) accepts POST /executions with schema +2) Service (execution_service.py) validates logic, kicks off orchestration +3) Engine (engines/crewai/...) prepares crew and runs execution +4) Logs/Traces recorded via services and repositories +5) Repositories (execution_repository.py) persist status/history +6) Client polls GET /executions/{id} and GET /execution-logs/{id} + +--- + +## Anti‑patterns to avoid +- Business logic in routers (keep slim and delegate) +- Services directly returning ORM entities (use schemas/DTOs) +- Repositories committing transactions (services own commit/rollback) +- Ad‑hoc logging without the central logger (use core/logger.py) + +--- + +## Quick links +- Back end entrypoint: src/backend/src/main.py +- Compose routers: src/backend/src/api/__init__.py +- Settings: src/backend/src/config/settings.py +- Sessions: src/backend/src/db/session.py +- CrewAI runner: src/backend/src/engines/crewai/execution_runner.py \ No newline at end of file diff --git a/src/frontend/public/docs/DEVELOPER_GUIDE.md b/src/frontend/public/docs/DEVELOPER_GUIDE.md index d71ed096..e7c004fb 100644 --- a/src/frontend/public/docs/DEVELOPER_GUIDE.md +++ b/src/frontend/public/docs/DEVELOPER_GUIDE.md @@ -1,348 +1,145 @@ -# Kasal Developer Documentation +## Developer Guide +Build, extend, and debug Kasal efficiently. This guide focuses on day-to-day workflows. + +### Components you'll touch +- **Frontend (React SPA)**: UI, designer, monitoring +- **API (FastAPI)**: REST endpoints and validation +- **Services**: Orchestration and business logic +- **Repositories**: DB and external I/O (Databricks, Vector, MLflow) +- **Engines (CrewAI)**: Agent/flow preparation and execution +- **Data & Storage**: SQLAlchemy models/sessions, embeddings, volumes + +### Requirements +Tools and versions you need before running the stack. +- Python 3.9+ +- Node.js 18+ +- Postgres (recommended) or SQLite for local dev +- Databricks access if exercising Databricks features +## Developer Architecture Overview +This section gives developers a high-level view of the front end and back end. It explains core components and shows how to understand and trace them. + +## Backend Architecture +The backend uses FastAPI with a clean layered structure. It separates HTTP routing, business services, repositories, and SQLAlchemy models. + +### Core Components +- API Routers: src/backend/src/api/* map HTTP endpoints to service calls. +- Services: src/backend/src/services/* implement business logic and transactions. +- Repositories: src/backend/src/repositories/* handle database CRUD. +- Models/Schemas: src/backend/src/models/* and src/backend/src/schemas/* define persistence and I/O contracts. +- Core/Engines: src/backend/src/core/* and src/backend/src/engines/* integrate LLMs and execution flows. +- DB/Session: src/backend/src/db/* configures sessions and Alembic migrations. +- Config/Security: src/backend/src/config/* and src/backend/src/dependencies/* provide settings and auth. + +### Typical Request Flow +A request passes through router, service, repository, and database. LLM calls route through the LLM manager when needed. + +```mermaid +sequenceDiagram + participant C as Client + participant R as FastAPI Router + participant S as Service + participant U as UnitOfWork + participant Repo as Repository + participant DB as Database + participant L as LLM Manager + + C->>R: HTTP Request + R->>S: Validate and delegate + S->>U: Begin transaction + S->>Repo: Query/Command + Repo->>DB: SQLAlchemy operation + DB-->>Repo: Rows/Status + alt Needs LLM + S->>L: Generate/Score + L-->>S: LLM Result + end + S->>U: Commit + S-->>R: DTO/Schema + R-->>C: HTTP Response +``` + +### How to Understand Backend Components +- Start at the router file for the endpoint path. +- Open the service it calls and read business logic. +- Inspect repository methods and referenced models. +- Check schema types for request and response contracts. +- Review unit tests under `src/backend/tests` for examples. + +### Example: Minimal Endpoint Wiring +This shows a typical router, service, and repository connection. -> **Build AI Workflows in 30 Seconds** - Production-ready from the start - ---- - -## Quick Start - -### Install & Run -```bash -# Clone and setup -git clone https://github.com/youorg/kasal -cd kasal && pip install -r src/requirements.txt - -# Start services -cd src/backend && ./run.sh # Backend: http://localhost:8000 -cd src/frontend && npm start # Frontend: http://localhost:3000 -``` - -### Your First AI Agent (30 seconds) -```python -from kasal import Agent, Task, Crew - -# Create agent -researcher = Agent( - role="Research Analyst", - goal="Find market insights", - model="gpt-4" -) - -# Define task -task = Task( - description="Analyze competitor pricing", - agent=researcher -) - -# Run workflow -crew = Crew(agents=[researcher], tasks=[task]) -result = crew.kickoff() -``` - -**That's it!** Your AI agent is running. - ---- - -## Architecture - -### Clean Architecture Pattern -``` -Frontend → API → Service → Repository → Database - ↓ ↓ ↓ ↓ ↓ -React FastAPI Business Data Layer PostgreSQL -``` - -### Tech Stack -| Layer | Technology | Purpose | -|-------|------------|---------| -| **Frontend** | React 18 + TypeScript | Interactive UI | -| **API** | FastAPI + Pydantic | Type-safe endpoints | -| **AI Engine** | CrewAI + LangChain | Agent orchestration | -| **Database** | PostgreSQL/SQLite | Data persistence | -| **Auth** | JWT + Databricks OAuth | Security | - ---- - -## Core Concepts - -### Agents -```python -agent = Agent( - role="Data Scientist", - goal="Analyze patterns", - backstory="Expert in ML", - tools=[SearchTool(), AnalysisTool()], - model="databricks-llama-70b" -) -``` - -### Tasks ```python -task = Task( - description="Generate weekly report", - expected_output="Markdown report with insights", - agent=analyst_agent, - async_execution=True -) -``` - -### Crews -```python -crew = Crew( - agents=[researcher, writer, reviewer], - tasks=[research_task, write_task, review_task], - process="hierarchical", # or "sequential" - memory=True # Enable persistent memory -) -``` - -### Tools -```python -# Built-in tools -from kasal.tools import ( - WebSearchTool, - FileReadTool, - DatabaseQueryTool, - CodeExecutionTool -) - -# Custom tool -class CustomAPITool(BaseTool): - name = "api_caller" - description = "Call external APIs" - - def _run(self, query: str) -> str: - # Your implementation - return api_response -``` - ---- - -## API Reference - -### Authentication -```bash -# Get token -POST /api/v1/auth/login -{ - "username": "user@example.com", - "password": "secure_password" +# router.py +@router.get("/items/{item_id}", response_model=ItemOut) +async def get_item(item_id: UUID, service: ItemService = Depends(...)): + return await service.get_item(item_id) + +# services/item_service.py +class ItemService: + async def get_item(self, item_id: UUID) -> ItemOut: + with self.uow as uow: + item = uow.items.get(item_id) + return ItemOut.model_validate(item) + +# repositories/item_repository.py +class ItemRepository(BaseRepository[Item]): + ... +``` + +## Frontend Architecture +The frontend is a React + TypeScript application. It organizes UI components, API clients, state stores, hooks, and utilities. + +### Core Components +- API Clients: src/frontend/src/api/* wrap HTTP calls with typed methods. +- UI Components: src/frontend/src/components/* render views and dialogs. +- Hooks: src/frontend/src/hooks/* encapsulate logic and side effects. +- Stores: src/frontend/src/store/* manage app and workflow state. +- Types/Config: src/frontend/src/types/* and src/frontend/src/config/* provide typing and environment. +- Utils: src/frontend/src/utils/* offer reusable helpers. + +### UI Data Flow +Components call hooks, which use stores and API clients. Responses update state and re-render the UI. + +```mermaid +flowchart LR + A[UI Component] --> B[Hook] + B --> C[State Store] + B --> D[API Client] + D -->|HTTP| E[Backend API] + E -->|JSON| D + D --> C + C --> A +``` + +### How to Understand Frontend Components +- Locate the component rendering the feature. +- Check its hook usage and props. +- Open the API client method it calls. +- Review the store slice it reads or writes. +- Inspect related types in src/frontend/src/types. + +### Example: Calling an API From a Component +A component loads items using an API service and updates local state. + +```ts +// api/ItemService.ts +export async function getItem(id: string) { + const res = await fetch(`/v1/items/${id}`, { headers: { Authorization: `Bearer ${token}` } }); + if (!res.ok) throw new Error("Failed"); + return (await res.json()) as Item; } -# Use token -GET /api/v1/crews -Authorization: Bearer -``` - -### Core Endpoints -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/api/v1/crews` | List all crews | -| POST | `/api/v1/crews` | Create new crew | -| POST | `/api/v1/executions` | Start execution | -| GET | `/api/v1/executions/{id}` | Get status | -| GET | `/api/v1/traces/{job_id}` | Get execution trace | - -### WebSocket Events -```javascript -// Connect to real-time updates -const ws = new WebSocket('ws://localhost:8000/ws'); - -ws.onmessage = (event) => { - const data = JSON.parse(event.data); - // Handle: task_start, task_complete, error, etc. +// components/Items/ItemView.tsx +const ItemView: React.FC<{ id: string }> = ({ id }) => { + const [item, setItem] = useState(null); + useEffect(() => { getItem(id).then(setItem); }, [id]); + return item ?
{item.name}
: Loading...; }; ``` ---- - -## Testing - -### Unit Tests -```python -# tests/test_agent.py -async def test_agent_execution(): - agent = Agent(role="Tester", goal="Validate") - result = await agent.execute("Test task") - assert result.success == True -``` - -### Run Tests -```bash -# All tests with coverage -python run_tests.py --coverage - -# Specific test file -python -m pytest tests/unit/test_file.py -v - -# With HTML report -python run_tests.py --coverage --html-coverage -``` - ---- - -## Deployment - -### Docker -```dockerfile -FROM python:3.9-slim -WORKDIR /app -COPY src/requirements.txt . -RUN pip install -r requirements.txt -COPY . . -CMD ["uvicorn", "src.backend.main:app"] -``` - -### Environment Variables -```bash -# .env file -DATABASE_URL=postgresql://user:pass@localhost/kasal -DATABRICKS_TOKEN=your_token -OPENAI_API_KEY=your_key -JWT_SECRET=your_secret -``` - -### Production Checklist -- Enable CORS for your domain -- Set secure JWT secret -- Configure rate limiting -- Enable SSL/TLS -- Set up monitoring (Datadog/New Relic) -- Configure backup strategy - ---- - -## Advanced Topics - -
-Custom Memory Backends - -```python -class DatabricksMemory(BaseMemory): - def __init__(self, index_name: str): - self.client = DatabricksVectorSearch() - self.index = index_name - - async def store(self, data: dict): - await self.client.upsert(self.index, data) - - async def retrieve(self, query: str, k: int = 5): - return await self.client.search(self.index, query, k) -``` -
- -
-Async Operations - -```python -# CRITICAL: All I/O must be async -async def process_crew_execution(crew_id: str): - async with get_db_session() as session: - repo = CrewRepository(session) - crew = await repo.get(crew_id) - - # Parallel execution - tasks = [process_task(t) for t in crew.tasks] - results = await asyncio.gather(*tasks) - - return results -``` -
- -
-Error Handling - -```python -from kasal.exceptions import KasalError - -try: - result = await crew.kickoff() -except AgentExecutionError as e: - logger.error(f"Agent failed: {e.agent_name}") - # Retry logic -except TaskTimeoutError as e: - logger.error(f"Task timeout: {e.task_id}") - # Fallback strategy -``` -
- -
-Performance Optimization - -```python -# Connection pooling -engine = create_async_engine( - DATABASE_URL, - pool_size=20, - max_overflow=40, - pool_pre_ping=True -) - -# Batch operations -async def bulk_create_tasks(tasks: List[TaskSchema]): - async with UnitOfWork() as uow: - await uow.tasks.bulk_create(tasks) - await uow.commit() - -# Caching -from functools import lru_cache - -@lru_cache(maxsize=100) -def get_model_config(model_name: str): - return ModelConfig.get(model_name) -``` -
- ---- - -## Security - -### Authentication Flow -```python -# JWT token generation -def create_access_token(user_id: str) -> str: - payload = { - "sub": user_id, - "exp": datetime.utcnow() + timedelta(hours=24) - } - return jwt.encode(payload, JWT_SECRET, algorithm="HS256") - -# Protected endpoint -@router.get("/protected") -async def protected_route( - current_user: User = Depends(get_current_user) -): - return {"user": current_user.email} -``` - -### Best Practices -- **Never commit secrets** - Use environment variables -- **Input validation** - Pydantic schemas everywhere -- **SQL injection prevention** - SQLAlchemy ORM only -- **Rate limiting** - Implement per-user limits -- **Audit logging** - Track all mutations - ---- - -## Resources - -### Quick Links -- [API Playground](/api/docs) -- [Video Tutorials](https://kasal.ai/videos) -- [Discord Community](https://discord.gg/kasal) -- [Report Issues](https://github.com/kasal/issues) - -### Code Examples -- [Basic Agent Setup](https://github.com/kasal/examples/basic) -- [Multi-Agent Collaboration](https://github.com/kasal/examples/multi-agent) -- [Custom Tools](https://github.com/kasal/examples/tools) -- [Production Deployment](https://github.com/kasal/examples/deploy) - -### Support -- **Chat**: Available in-app 24/7 -- **Email**: dev@kasal.ai -- **Slack**: #kasal-developers - ---- +## End-to-End flow +This ties front end and back end with shared contracts. It helps new developers trace a feature quickly. -*Build smarter, ship faster with Kasal* \ No newline at end of file +- Frontend Component → Hook → Store/API Client → Backend Router → Service → Repository → DB. +- Shared types and response shapes live in frontend types and backend schemas. +- Tests in src/backend/tests and frontend __tests__ show usage patterns. \ No newline at end of file diff --git a/src/frontend/public/docs/README.md b/src/frontend/public/docs/README.md index 176f553a..f6cb427d 100644 --- a/src/frontend/public/docs/README.md +++ b/src/frontend/public/docs/README.md @@ -1,3 +1,5 @@ + + # Kasal Documentation Hub **Enterprise AI Agent Orchestration Platform** @@ -5,26 +7,24 @@ --- ## Quick Start +Find the right documentation for your role and get productive fast. Choose your documentation based on your role: -## Business Documentation -### [Business User Guide](./BUSINESS_USER_GUIDE.md) -**For Leaders, Managers, and Business Users** +## Technical Documentation +Developer-focused guides, code structure, and API reference. +### [Code structure Guide](./CODE_STRUCTURE_GUIDE.md) +**For Software Engineers and Developers** -Get started with Kasal without any technical knowledge. Learn how to create AI workflows, calculate ROI, and manage your AI workforce. +Build and integrate with Kasal's powerful AI orchestration platform. From quick starts to advanced implementations. **Key Topics:** -- ROI Calculator and Cost Analysis -- Success Stories and Case Studies -- 15-Minute Quick Setup Guide -- Managing AI Workflows Without Code +- High level code structure +- Different folders and underlying components --- -## Technical Documentation - ### [Developer Guide](./DEVELOPER_GUIDE.md) **For Software Engineers and Developers** @@ -50,6 +50,7 @@ Complete REST API documentation with examples, WebSocket events, and SDK librari --- ## Architecture Documentation +System design, patterns, and enterprise integration guidance. ### [Solution Architecture Guide](./ARCHITECTURE_GUIDE.md) **For Solution Architects and Technical Leaders** @@ -65,6 +66,7 @@ Understand Kasal's architecture, design patterns, and enterprise integration str --- ## Getting Started in 30 Seconds +One command sequence to run both backend and frontend locally. ```bash # Clone the repository @@ -85,6 +87,7 @@ Access the application at `http://localhost:3000` --- ## Key Features +What Kasal provides out of the box to build, operate, and govern AI workflows. | Feature | Description | |---------|-------------| @@ -98,11 +101,12 @@ Access the application at `http://localhost:3000` --- ## Documentation Structure +How this folder is organized and where to find topics. ``` docs/ ├── README.md # This file - Documentation hub -├── BUSINESS_USER_GUIDE.md # Business user documentation +├── CODE_STRUCTURE_GUIDE.md # Code structure documentation ├── DEVELOPER_GUIDE.md # Developer documentation ├── ARCHITECTURE_GUIDE.md # Architecture documentation ├── API_REFERENCE.md # API reference @@ -115,6 +119,7 @@ docs/ --- ## Technology Stack +Core frameworks and platforms used across the project. - **Backend**: FastAPI, SQLAlchemy 2.0, Python 3.9+ - **Frontend**: React 18, TypeScript, Material-UI @@ -125,6 +130,7 @@ docs/ --- ## Support and Resources +Where to get help and how to contribute. ### Getting Help @@ -143,9 +149,10 @@ This project is licensed under the Apache License 2.0 - see the [LICENSE](https: --- ## Version Information +Project and documentation version details. - **Current Version**: 2.0.0 -- **Documentation Updated**: January 2025 +- **Documentation Updated**: October 2025 - **Minimum Python Version**: 3.9 - **Minimum Node Version**: 16.0 diff --git a/src/frontend/public/docs/WHY_KASAL.md b/src/frontend/public/docs/WHY_KASAL.md index 15485628..15c0c095 100644 --- a/src/frontend/public/docs/WHY_KASAL.md +++ b/src/frontend/public/docs/WHY_KASAL.md @@ -4,43 +4,102 @@ Transform your Databricks environment into an AI orchestration powerhouse. Build --- -## The Problem We Solve - -Your organization has invested in Databricks for data and AI, but building intelligent workflows still requires extensive coding. Teams struggle to connect AI capabilities to their data in Unity Catalog. Manual processes don't leverage your lakehouse investment. - -Kasal bridges this gap - making Databricks AI capabilities accessible to everyone. +## What problems does it solve? +- **Hard-to-operationalize AI**: Multi-agent apps are complex to build, observe, and scale. Kasal turns that into a repeatable, visual workflow. +- **Glue-code overload**: Stop stitching LLMs, vector search, tools, logs, and schedulers by hand. Kasal gives you a cohesive system out of the box. +- **Enterprise friction**: Works with your Databricks environment (OAuth, Secrets, Vector Search, MLflow, Volumes) and respects org boundaries with group-aware multi-tenancy. + +## Who is it for? +- **Data/AI Engineers**: Build reliable multi-agent workflows on top of Databricks. +- **Analysts/Builders**: Design flows visually and reuse templates without deep infra knowledge. +- **Platform Teams**: Standardize how AI workflows are built, governed, and observed. + +## What you get (at a glance) +- **Visual Workflow Designer**: Drag-and-drop collaboration between agents and tools. +- **Production-Grade Backend**: FastAPI + async SQLAlchemy, background schedulers, and robust logging. +- **Databricks-Native Integrations**: OAuth, Secrets, Vector Search, Volumes, MLflow, and SQL endpoints. +- **Deep Observability**: Real-time logs, execution traces, run history, and health checks. +- **Extensible AI Engine**: CrewAI integration today, engine abstraction for future engines. +- **Governance & Security**: Group-aware multi-tenant model, API keys, permissions, and auditability. + +## Components at a glance +A quick tour of the building blocks—what each part does and why it matters. + +### Frontend (React SPA) +- **What it does**: Visual designer for agents, tasks, and flows; live monitoring UI. +- **Why it matters**: Non-technical users can build and operate AI workflows without touching code. + +### API (FastAPI) +- **What it does**: Validates requests, exposes REST endpoints, and routes calls to services. +- **Why it matters**: Clear, versioned contracts between UI/automation and backend logic. + +### Services (Business Logic) +- **What it does**: Implements orchestration, validation, scheduling, and domain logic. +- **Why it matters**: Keeps HTTP thin and domain logic testable and reusable. + +### Repositories (Data Access) +- **What it does**: Encapsulates SQL and external I/O (Databricks APIs, Vector Search, MLflow). +- **Why it matters**: Swappable persistence and integrations without leaking into services. + +### Engines (CrewAI Orchestration) +- **What it does**: Prepares crews, runs executions, handles callbacks/guardrails, manages memory. +- **Why it matters**: Pluggable execution engine today (CrewAI) and extensible for future engines. + +### Data & Storage +- **What it does**: Async SQLAlchemy sessions, models/schemas, vector indexes, volumes. +- **Why it matters**: Reliable persistence with optional vector search and document storage. + +### Scheduler & Background Jobs +- **What it does**: Recurring runs, long tasks, and background queues (e.g., embedding batching). +- **Why it matters**: Production-ready operations beyond single request/response. + +### Observability +- **What it does**: Structured logs, execution logs, traces, history, health checks. +- **Why it matters**: Debug fast, audit runs, and understand system behavior end-to-end. + +### Security & Governance +- **What it does**: Group-aware multi-tenancy, JWT/Databricks headers, centralized permissions. +- **Why it matters**: Safely share across teams while isolating data and enforcing roles. + +### Databricks Integrations +- **What it does**: OAuth, Secrets, SQL Warehouses, Unity Catalog, Volumes, Vector Search, MLflow. +- **Why it matters**: Build where your data and models already live with first-class support. --- ## What Makes Kasal Different -### Visual Agent Design -Drag and drop AI agents onto a canvas. Connect them like building blocks. No code required. +# Core capabilities -Each agent has a role: -- Research Agent: Gathers information from databases and documents -- Analysis Agent: Processes data and finds patterns -- Writer Agent: Creates reports and summaries -- Decision Agent: Makes choices based on rules you define +- **Build** + - Visual designer for agents, tasks, flows. + - AI-assisted generation: agents, crews, tasks, and templates. + - Reusable tool registry (native + custom tools, MCP support). + - Documentation embeddings to improve agent planning and generation. -### Real Data Connection - Powered by Databricks -Connect directly to your Databricks ecosystem and beyond: -- **Databricks Native**: Query Unity Catalog, Delta Lake, SQL Warehouses -- **Databricks Volumes**: Store and access knowledge documents -- **Databricks Vector Search**: Semantic search across your data -- **Files**: Read PDFs, Excel, CSV, JSON, XML files -- **Documents**: Process Word docs, presentations, text files -- **APIs**: Connect to Salesforce, HubSpot, custom endpoints -- **Knowledge**: Upload documents to Databricks for AI-powered search - -### Intelligent Collaboration -Agents work together like a team: -- One agent's output becomes another's input -- Parallel processing for independent tasks -- Sequential flows for dependent operations -- Conditional routing based on results +- **Orchestrate** + - CrewAI-based execution with guardrails and callbacks. + - Memory backends and entity extraction with model-aware fallbacks. + - Scheduler for recurring jobs and long-running workflows. + - Parallelization and background processing where it matters. + +- **Integrate (Databricks-first)** + - Vector Search setup/verification and indexing endpoints. + - MLflow model integration. + - Databricks SQL, Volumes, Secrets, and knowledge ingestion. + - Dispatcher and connectors for external systems and APIs. + +- **Operate** + - Centralized structured logging (file-backed), optional SQL query logging. + - Execution logs, traces, and run history via dedicated APIs. + - Database management endpoints (backup/restore where enabled). + - Health checks and environment validation on startup. + +- **Govern** + - Group-based multi-tenant isolation with role awareness. + - JWT and Databricks Apps headers for user context. + - Permissions centralized to keep auth decisions consistent. ---- ## Real Use Cases in Production @@ -180,21 +239,6 @@ Point to your lakehouse assets: --- -## Who Benefits from Kasal - -### Data Teams on Databricks -Query Unity Catalog without writing SQL. Build Delta Lake pipelines visually. Generate dashboards automatically from your lakehouse data. - -### Analytics Teams -Transform raw data in Unity Catalog into insights. Automate report generation from Delta tables. Schedule complex analytical workflows. - -### ML Engineers -Orchestrate model training on Databricks compute. Chain ML models into production pipelines. Monitor and retrain automatically. - -### Business Users -Access governed data through natural language. Build workflows that leverage your organization's data. Get answers from your lakehouse instantly. - ---- ## Integration Capabilities - Databricks First diff --git a/src/frontend/src/components/Documentation/Documentation.tsx b/src/frontend/src/components/Documentation/Documentation.tsx index 68a072ee..33d8779b 100644 --- a/src/frontend/src/components/Documentation/Documentation.tsx +++ b/src/frontend/src/components/Documentation/Documentation.tsx @@ -19,12 +19,12 @@ import { ExpandLess, ExpandMore, Menu as MenuIcon, - GitHub as GitHubIcon, Home as HomeIcon } from '@mui/icons-material'; import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; import { useNavigate } from 'react-router-dom'; +import mermaid from 'mermaid'; interface DocSection { label: string; @@ -32,31 +32,22 @@ interface DocSection { } const docSections: DocSection[] = [ + { - label: 'Overview', - items: [ - { label: 'Documentation Hub', file: 'README' }, - ], - }, - { - label: 'Business', + label: 'Architecture', items: [ - { label: 'Business User Guide', file: 'BUSINESS_USER_GUIDE' }, + { label: 'Solution Architecture', file: 'ARCHITECTURE_GUIDE' }, ], }, { label: 'Development', items: [ { label: 'Developer Guide', file: 'DEVELOPER_GUIDE' }, + { label: 'Code structure', file: 'CODE_STRUCTURE_GUIDE' }, { label: 'API Reference', file: 'API_REFERENCE' }, ], }, - { - label: 'Architecture', - items: [ - { label: 'Solution Architecture', file: 'ARCHITECTURE_GUIDE' }, - ], - }, + ]; const Documentation: React.FC = () => { @@ -76,6 +67,21 @@ const Documentation: React.FC = () => { loadDocument(currentDoc); }, [currentDoc]); + // Initialize Mermaid diagrams whenever the markdown content changes + useEffect(() => { + if (!loading && docContent) { + try { + mermaid.initialize({ startOnLoad: false, securityLevel: 'loose' }); + // Run after the next paint to ensure markdown is in the DOM + window.requestAnimationFrame(() => { + mermaid.run(); + }); + } catch (e) { + // no-op: if mermaid fails, the raw code block will still be shown + } + } + }, [docContent, loading]); + const loadDocument = async (filename: string) => { setLoading(true); try { @@ -178,14 +184,6 @@ const Documentation: React.FC = () => { navigate('/workflow')}> - - - @@ -259,30 +257,129 @@ const Documentation: React.FC = () => { {children} ), - code: ({ children, ...props }: { children?: React.ReactNode; inline?: boolean }) => ( - props.inline ? ( + img: (props) => ( + + ), + a: ({ href, children, ...props }: { href?: string; children?: React.ReactNode }) => { + if (!href) return
{children}; + + // Intra-page anchors (e.g., #section) + if (href.startsWith('#')) { + return ( + + {children} + + ); + } + + const isExternal = /^https?:\/\//i.test(href); + const isMd = href.toLowerCase().endsWith('.md'); + + // Normalize internal doc links to our loader (expects filename without .md) + if (!isExternal && isMd) { + // Strip common prefixes like /docs/ or src/docs/ + const normalized = href + .replace(/^\/?src\/docs\//i, '') + .replace(/^\/?docs\//i, ''); + const base = (normalized.split('/').pop() || normalized).replace(/\.md$/i, ''); + return ( + { + e.preventDefault(); + handleDocSelect(base); + }} + sx={{ + color: theme.palette.primary.main, + textDecoration: 'underline', + cursor: 'pointer', + '&:hover': { color: theme.palette.primary.dark }, + }} + > + {children} + + ); + } + + // External links open in new tab + return ( {children} - ) : ( + ); + }, + code: ({ children, inline, className, ...props }: { children?: React.ReactNode; inline?: boolean; className?: string }) => { + const languageMatch = /language-(\w+)/.exec(className || ''); + const language = languageMatch ? languageMatch[1] : undefined; + + // Render Mermaid diagrams as
blocks + if (!inline && language === 'mermaid') { + const diagram = String(children || '').replace(/\n$/, ''); + return ( + + {diagram} + + ); + } + + // Default code rendering (inline vs block) + if (inline) { + return ( + + {children} + + ); + } + + return ( { > {children} - ) - ), + ); + }, }} > {docContent} diff --git a/src/frontend_static/Kasal-overview.png b/src/frontend_static/Kasal-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..df9aa78e4a8ce6bf31eeaa8820faa93cf6a83953 GIT binary patch literal 154290 zcmeFZ2UJws(k@CA5JeCa6rn*BRI-RIu@R6UNTW!QEU1VI4U%IEDmkdAphyx4k`W|B zlTnG1bIz&BP3UmvV(+uh*?Z$T?~V75_wKvnI0mqg)xGAds#*0_)mQDWsiAyu|MC4~ zWMl_bRTOWKkx>)DR~hX-@IM#hM7znz4yaiwC}^rGC~#>$M%}Y~beD`w#s7^ijh@!` zqtOO8xT$Cr<*rU&V|;m7?kcU|leLq6S5+vU9X6NO%#IJ-pJAk!^)ZzzfP*pnw(ilI zMg61n=lJK$Dl$sw$nAS{%iu$BC*n@?J9LwT)8wEOSxev64NHa;I=PHf$fL~j&Bw!E zH=J~!*e^nML5^nI-OKQYf53j4tOL1dVXQTUVvn(%<^w_w33F61PDO}}%-{RcwKJ^a z^6rdeC8}I+CdlPp%MZFgh`#BstB}U?ltJDwq59al{!i7G=iC#Td4+uFmzl}F&AOKf zP?7~(f6G~+KBno*5KpafI8Kiu8&)k_SQz%4vH5xTzTR?)nX4X-y@w=^q1)8i+s9YM z_GO=YTPDxISf3z)pCMUD5}m#`UO&)q`(UbTqQEJoV`2?`Ve{W_Url3Jrcu>bJXPIG z7F(d#ZIM~spngTA9e3 zt@CauQ1tuENHZSDe3Gm4$tC${4)#t|*o_z8gW0lPo;7=&ttThItm;kB-qy1$5;&7M z9wOGcG(Y5luyA}Wf=oCSs0T8IQRlj zEoYzO>~dd1Z+CK|OlMoBlMq{b6NC;35Xb zi|O}U#5-@^y_V{@L!e~z@XMKqJU_`Fz ziN2Yc5C7>gbmUpjN>n6CifpjX&CM;;eM&x*GOL-R>@Wj*>QVPn+sA$7TU8X#1x#v2 ze$bPbNle?|W+=@~86KHRH27~nrPXV zFH^jIA#ir!~ly!+<K_Wy+Z!silpQq}zi=V!m%klaA~5B6``FK^4~@I=0d z`hI!*&X;F~Dnh5Rr(irLrx85p#QQe{&PKmh33zcn>Pyg<;8vAF^_f`r#0S^YKM%HF zdT`W%^J|d4nv6oJvPXPk;=RPlxTER3I+3Y5iFvvUCA|t?LuY$u9cK;KSsb2k-&p6E zT>Q}{wNuAW`Q@y9G_!s1? z;x;H2(tDF~VPYaa5>M+HMJC1aM4Ln;?foP>C8eVTq7Fw5NTy2;6!jJf710&7+4I|n z&gO}UCLRf^Yq%|BzGyLc$Mg8T3qfM)7alEV_1@O?E$w2@m`dVnh9{*ys6hhBJmZicWw0~($05U>g0cpv-JC1 zX&-2rI%6UBFvmGZK1b#ruJQBaqgDIWj>*Q!fup=f%?0o2x9j2Wsb=3XxTl}-RoY@} z@JH{tpAX`+OFQfy$~=sA@Nx)VmtlV&oY}|{c{Oq_PthRHDsN$5AHQRARH{*;(er`3 zZta7O#*Z)+WmZ(TpViTR_xr(=f1;h^62lgQIKv^1cOfGo&qLNjgq8J!)Hw^y#tUB# zeK3rA{2@bNQx7N3a3o@_&J~}^I zvgWiBz6D!BH?NO3jYiX!Q+QJbQ0h~Dr5vNIr-V_xqrOYkLFGVGysw#7mPwwLj{X+Y z<3NjQ=A{&ufw;xE9C@VgXWts1H@-6a^XbE%!$Ypr`GgpWZx}zj`|Q+5*~5w}Cv~q3 zhJFcof7s#Fdp3?EMofeY_ii>cMA&5qb*pAenGe-$)d>a`v!j?Z{ZJaQe4kF;$@(HD$+w{xw@b+dGq#oFLG7jo1Zj)VuA+>W6C#$GcLVVmP0u1yV=?E{@AmG$3ok5maV)bbDKPog}E1aJ2hnsj4sqTt=eUkGyy-$OQ1B2wBq7CSnm z4mt^?UVg|T9#wq9(Wr+bt2nMR&as|zGWu1iX{H$#wsQkF&=1SQY?1BAEnKdDI(JBv z;Yb&^L)%=@oY-6+`>W%<48EM!)@u)>?W>o+h48i|2E-RBhjYYp8rY=aoGX^2nOm8S z_{211t)tuBaqR_KT}b5^YZ+$8NqkRiPEwO?69)q8Q8wc}^}LF;hjmW4&?x1ht(C-D z>RhI;{(%0RP_c=1!KiIQwv~Ecc50a}(wM%$aYGWjoxsin@3pQSD)Hc-(AlvXS(tKq zyjZd=NXl<^ni}Nk=P%22!K`_WJpD0bg&t~K?DSl_U0(H8IXiSw_NcVyvLbO@tq}(Ur5L-UGMgu}niaqz&tVHG5peug$Nv3x5*6Yhs1D=t;lhmvkKZuX~C>cf^#%KQD2BkdGr#==*W{F3FDyD$$jIc# zR247ZbS9r4pf9=Cfk!Nf7oEvJ`J*)Q%$0Kwls=uAc>gg_ExDh5>czLx!`zLpr6yk8 zNqqI`1~=2abA>D?t6%iR(7t>)g~7~OAY`T*-o4A2oL`mRacOeH7&p2!4L-~)-Edp5 zNNFB)OP4V3cqKqZ%g817gp8cxFBj#Sv<*!7Lst-zbbtNR?>E1orXmSZ{o;=ziWJ@? z?pgID`90nndIKs_#^0X#`y2oFwSQ5_e`WQDK>lkRe~99@i~rij9|HNWZTumM|Juf1 zg3EtxW-RigbU@1iX$N zy}xs?Si)|yA*u(O1-z`=g*(2T?Rdz5mG06L+E^4xr;2BjKoh zA!$GSDF!B)^S7eNyef_^5jf|GZLT0oXt+my=yk*7pwr^+HJa2sIS8A#%Uo^r?^^oy zO+{7|PTt#t@h0utIbBA@_rXTqvk1fRX|ysE0e3#5&9qmR5<5k)PT9OV)r>tMWld2) z-ZFB(hNc2dIl$6a#SbXQYMMa}}fuJ3NbzI#@S9UI~;Q zKwLu>Gw<;d5j~2Rp`9o)@SKn`W;`+;Hrs-TUI}d(+B3=V>N&$0A2**rVe~I~;BHRVaNLV+#iHqhMD#XRE0mr{KQfm@xTblXHtEt|&daU?$x({+ ze4-!H8zaPuXDwpy!!WAb?zPo>337Kndy|OvrNfvO86ll2Jj=(k8ha#+J{D;?LSa7)NALa62C%a`7zd#?3K`8P2r7 zg}{}+oc`TqN327eF$CWzoGQ@dZ};4CgDZIj8Z89Ad4XM%sa@Yw)um5{F^F*R?ca(; zZfPh+O>W6#SZGtY{KnoY7UtT-HlGF}`@g2M|Fgtox^LIpQ+^%PpBSwPL=kF|YN;k0 zBfIpB+S2bY_7}FLR}!fqg{AEa+)tzz+0y_N1T|@v95g+9?uK96a-Z`^EKvyEzyFyV z6#-M#-ld5O?d^*fcd0V><#5zXT)vL(%QUDUoge57I|APL-d>hau1Tk;Qfyk`?XEFU z;lUxPAwE1m=u{+^!+j|_<0T>dNOES+-TVgp`_G=pw_UF`iRz96p+P~P@&>88ZK@7x z<)ZBE?Ol@Y5)RM;v(?;t)!ZUzBAx}gsyxi*WyvA5Atr6bJb#D#QDiT?&B~UeA$KWY zE)!K-gUdDUJ^F>7I2S#$fCOflzn58>#!{c04%HO(UZ8avvozwy$~k?mJya;?ZcGJYo@$giJ*9Sw>DCWQ0Br1Yq`i&FZ>z0OBk~lTLWs+*d_d5gT?`WIgahRnKd`P7u?(q$Eoyr7!{nZYz}48p{c=M zS$^e7yu6tF8hC0c;ML9L_V0WSpE;cDi=U|rmZ?Br*A>^%TQZS5yVq%FWAmb&G@F^a zG)(z4A&zR_O|G&jZxZ=JiT3?GpwMf3c~=oeiggi0^ajjtu~mg4RiGs^n<%r4`C)W1 zodf8?9f;^}p3cjQF*#-fTNhSNN&e|2m5*X9=NzVM$N_R{T)%Q^vFj8LjF$k+lBQCb zV^8yX=Ciy%k1Dr#G>c zdOgY&q#w^7@%<&(?Ng0qAchMWNvbq<>QGSWT<7v8Z4TmAq_F+~TclYo@@@)~vFsHA zbB%#Z-WF<=qX^#LzUm4VdDrUhU2l@NHPha=gLkH-Fi(cjlT%ayPYol=W;AOqnW(9c zBn_kYs|5TRW0F%)@^HK}GQ*2yw_dQrGxx8wr zPi|r-o(Ub-Hb--C4*t(f@Ks)w7;&aO2&~>5wCJK`x3)%E}hoHnUiO z0iABA&6`t^%+1Y>(FVs}FZ>Bp$vr8T1L2G2W8{Tba^~Q{wPy@WUV;Y){>KOZ-&y4U z?7cv^gC#DOBbCq7QK|b5bBTC(Z8p_?x&QOyoyS8nZh3|Kfa|9D5zuWBiBo4CqA3?CFMe0J=69kU6ewssyZ9tg`pV zRS;SRPVTvmufTnD48+?~-BXlXLhyj2dJ{UT|M87aZibGOI(Faoy&x$m$x}C-VPD}* zZArv$S>CzxiLY)>cH%pMl95{13kI1)&x~6ucHaR+63yVnNI4Uu@sr_X)^eA2}F^hmd*A z(A%S@s7Y*jq6`VyC z10%?J{ld8%on|1XCZ#W?bi%Dc=E&i(_R}&c%JHfcw#06(Ps)J3n-Il{KSa_73C*mamP^oYQ`(C><3+@5N$e21Up*ys76C65k zCFSm)aN`0>WX0piN}7E^`e_dg`|r74EGVjQ#{!c#5+4ihyBluQ>d<8rp4W3P(te}I zf)$2MjI_RLU|o235W7+@jAVb5b=j7~F~Y@b5sL>kAS7>}QI_fD_XxD-`9f?14qMGb zOXLek8+NK7?YDV!@~^Pw>aO;2Npqf?Rj|aal1cHI8evb{UJu-WRPbis5b>?qX4FDn zpO97VPo=1JvE>mgn&j4N7AW|*!vIz4AUXBHF5u9rF9Oe}$oZd4TNe4#^hjANR&u~g$MoNpqPk9q1pOC&O%f1ScUintyxjb4k6OAjG z3KHJ{3vqP)p%wjV4n3^^doN3vL9)W;STUPdT*rA}?{I-|8XW_xucMOlBC8;3yn|b} zF#&~@a_?<}K=PykyQK=6Bw^3xz(Q^$db_PHyN)vw(Ph3^C#=ljaMQKPE;_8Mxf;f5 zWPjZim`F_OAkakHcfJ@y_Xt1&xCo?TJ+qOI@z}07vd3CUzK?rbU({#Tu zM3B^Aqn)qHM!yZcTe{wa=PAk?MOB5*eabl6oVhJY@28D-nE_BBUz zKNU=lE<90|9%Y&-7z<(7Z4wp}-gRQ61~=ReE##2EA^3a6C>L@_7Yb3>;&Zi&p=oD* z>ikdht_9!rAg+XCg6M0^M~5QFoJS8&V2JCPNhr_N$Qc}l$DaWEkVLNRWIrjFB_mJGOZ(GHNaj^<``WDM!ULg_6nol=x>a;|83DY=fPD z1{%MXUGh5g$+=S2dVhQUOj3-j^>hqv-aEGC#bRu<>{{HRU;`MOL#S~4l{882kz31C&ez7cqOJ)|l1sCjv1=9k;EVb$ zt6qy34@ne%$uPC>^agVfN|nA~3kSu1qFbMK%ufH* zji3RT+JP;*P`7>_nMK>sdgM-Bk&)AYIEQ`9<(Xs6&Ptx=Ni>Mf%V|yZ%XP3AjY}iX z@LSXIp&HGe8#$!>(+Oz8oXM6Y$rX=h^R}ou2v>Iyfl-5`BSH*#6#{DeJJPeYaD)-H z-+imzWU>7S>PYpnxqqA|Ct+H7Dw4k0W6`cH6pbHimw}bn$!=t?CBjS3c6l_2){T3Z zor&qjc=B`ma0hS)astDdS|CoB?na^^HpzgwJ@uFS+)sx*ZtF9}|@9NbQL?K!_%3ojF`c_FiY7>PrbEZ1&zCCRRTb|F4-H8^na=Ap~E zgRXNEkyLYOIU0i}6sS4e=CdtFvlK;3G)vMM;rz26poG7}61N&6wWz1NU=jLT+~wMYCx+O;_XNSjZ~I}8D*Sd(H~|Fz3F5;)cT5+Q4@>M5)Ifs0*sO%hY%+&*SwZ*+~{Z4A0$ zZFg#0WNhuY-bS3dRJnc0xJ1I{=M~n8^-z}v^Odk2V1}hD*k$Dd{A*24WnvD8*4ujY zJpAYak+NIk{fn+1AI$qB3Wf-ax|u6>KGd^V_Y?PiM?zxm)vtG?GvbUnP_@YWPZ%I@ zBJhii&NAA71VVLbC^BPv28n*}+u$Ex!@Rcqn)Lo*Mq&R`7=W=Z(ge2XBu;rgiuS5Q z2x%;H*sS%}4xO!42)@`a7EVp_Va=VR*xvK;9y0b=?~vm5lvzXvt;5Wh>b?N@`TtX_YZ>AgwV=o7B7b#o}WSF^A9BFJ<|AmZchF5H=dA7^5ScVOE%{?jsYGScLqU8EvfV;h_k&OV%e1L70mw z8nxVJGqYIu+SN2?#`y#ai(7WM7cxw1=uzevmHg5Lt5t)2*N1c4H0rCC+7$?jgqZF2 zq}Ecb2et%_XM!Iy`#?%i3!h{^U`u(@C&a&S|7cM_LfLnwI_LFNlPJ!e?m9f&g_g7nx}2QG-ZS(NQ$d{} z`CLY^wK4j~*`!ZwvwS}DJx)U&tHIAA_+yPX`t6!?iQ98iS;PSTjOm~rm>t!l?3$xz zL4=%8GughuSvGYDy{S-k`FiLA41U5)FGjpmkB2aCftc$rn2w%`m3)&Yt_?VV=+rYIdJEy+lZmz`z|~m_+(3UoEbUTj`uba0 zPwC&-B9H>e3f8Pu7xO8j4%;`bQ@-_HZ(3$}&(ePleUc zra~_Agy-hS7Mg5KdenWFrz?V|SjW^s<+ZM+7jm>f7n=f`hn|lZ10fOk{}sx$#Fm3- zj?D$|_=29fn6}a5@26)Znq4%CfM>+VJj32?Q4%&d|JpKDnq8* z=t0H0>4aVBx_w^MquSqJsD10@NVjXfMud;zRQGO}0`$_*K~J=}QOMx{ zu+#SCf3+;r01A+1>qB0kl{fOyt1|qAaA@CL6^v-(T5mAedMn>~dDI?YyPQ=w4B`Vw zaxLxcFUYLC3~h+py4eTC+E387W-O6zy|1nB?Dp|H<{K~e33x0AntYhO9qIbjc>agNk9jFD zNSumtTP&^EEFQJHsZ%2zMTP40N3Pw6tGPmvw;>ylyA7`GH zg>cec1g@|-0l>Wq{(kIaBuXO^RpuhZT(w-XStD$GdrNzO4aIT-jbGkc2z<&Qd0#s< z8wT}t54-?{o+pxOT67mqfeIe&W3m)*UhDyk{%1yC&O$w#)MK88j}MVNhjk!sO*v64 zIx`QiwIPvC#eD;bdgj=GsK-Cf&KyKJE4X&%M864f}Tsy zHy-g6oh07&<#=0f=+L2U83km$ySAz`r2xWRv*qFC-Tn%d#>LJ(4O!Ea{*OuLJH2c@FdNFZuNUhFn~dbabTOEv(i zu$kG^ObuN_+bf*sr+Ob|UJG@u=4rL9<5<$AZ5jAV^+C8a9w>p$twVxI@3$sF zRjxL0IFWyHI9e>u!<4WH5OXjIInAQ*? zkHd@Ak8gmUo(M*ju`Z&Z`k-$IC@qZ6Hes`o&jy{!R-;zKHu4J_tt9(K71WjRphCgt zOVr}*Wy$9R>g2p|XY9OU#u<2lv(84E$G8HK2W<@Y~UE5fhT zuQmo1yj*@lBh6)%(|FNkI##kjlO8H?{6L+mWq+hOJb2M;ua@S~i&xZJWjQNuy zq%T=lRv(@shB%e*M7d19+roirO}-fUYDz(EyNycL>9(E15H@DTVtacZwUFu$3 zI|_`wffrDf9?e=!T^%NYdTq|sRgk!^ef_hoQx(-^hQ2^luF|@g`}^DF_gNRKKJ+)m zjfWvMme<@lrt5;eBlx*|_N9a`-hOOmq^@5K3Mi9gTe7%9B*TxnF9Qh3ERtyRcvLdN z1@pR3UeUw=E9y*bWgptCU4znFn#pGONinH8-3{(u#t|o{C0H0+-JM#R6E<=d@?)+8 zO;Xqop;}!#t1%>LnqH=E^*qIbG7xHBfcL$elDmDjta-%C!)qWVNjj{x!Ucn zrsgGo7v|BT%|?`G+btMeAIfnZ0GeAK_v}yeTm4Wl4=iqMaJ~Rk7gt);MY}4iPj8=Z zY6E>?ubz{@tqIC3NYnM7?=TEq*m@l*IoYG-g&021KynJ|jIIl)5G$%pVWYMvu{ve5J>^ zT?*bg>m%ehpz_e!Nd`YS8Q@8Tchwy9g7VhFL8!7ZCQpdq;Yu^>j*1Z2EFL0Q3*kPp zmYxaifT1pYaO}05@#6`Z&gBm|f+W>dSAvL&Uft?YAXMi$%gYY(`kfx6^;>o8uHx+M z!L+YK7}m2A(S!oWLG6%h%hOiC(2(*XRueWP%U2#DTSoS z-%m?KeP!E5cC?AUJ-h!VsZC5rhFrX+HQ*0!Sep7URR7Y$!*y^7ZQ7Fl0neqUF#8{6 zD{nGS6axTc*K_W`Vp?XjA$FeB7DKdu1nP9tk5Z#qV5vS0Gmm06Z-ZPg>Pv^Fhtfz%X`z>K@%@19=FfEm85siIVuBef}fi*_;{-P`6oJUlKQPLXDA>+K%KCZ$FqItT08C9KzvDuCZ4 zT5jQTVh946ffse-JS;pMcusYpE9v;`I~`0=CflvyE88ZZ0B7FOm}ID&`sKw$J*p4}nfX)NR*|o{e4?^3*}5IE65dSeK&LKRH`?xF`ECA5V>rfCbtV3a#cQ z$yf=<4=$JSw~+rFNn zTlyf)^?X^|+XoaQw%VR^21B#2V+3A@R@R-cQx{ro4KKTZ?JI4rwoBzFjq@RTKEr#j zAH<011V1-H8Bb2#G%~NFosDmr{f@U?SKOIn7lVO>aV2k?SEc_{GHSlsNAg2}>uAg+ zPl2EL%WkhjBkB0{M?cIG#w-SgmL;sS>|v-Y>)lG=z~5#{CRx96IG`3Pd5D6aHJN0P ztb5s=F!U3&?S4?-L((Y_SW4QMGAkRRq~O}5r}|mpAOGl$)-(HMkDH&s>5XD?W<}@B zH=~grvsz=kbHV=Z@B#Za!wspSEsba!xTimzjd?_rtH8D%YgPNBtcrch**O5Xp}((E zRBOtvueA8eUI?{7V|E6F50x@2EZw|q6Cg?ib8caQ9+P4*svTi7>q0IJUQmLzg^OU^ z0Nz)LbAQsE)f3 zd(h9-ValQ*lCg@SMns|`l6q!66YUY88sr2BQ-+B}BQMQ7pZcpcz%>WXd|U5)E81{9 zC=zjN%a!z|P^mED0(|nW-)&C~1Yu3OPQH}H?R(BoF;UPV1h`T1 zEL4Rr)H{HMs`*p0DY!sKsH&$1!HLxt&7UaIIt6u#l9GgI6-l4R+q1fu_r842l&#SKzIJXlsqM|EZ4;!`3td6 z8GcL@_Z?TDs>xF8I6-dSaqtcP;uUeeNMPr+*l}INf~i??6E#xw#?!p z?X?C{p-YID#?*aVbgRyio}-7EM{2`1*Td#S-&w1xxNVO3P9-ILjE*pMOi?>BJ(Z`l z<@^}4Kfeutx|qBH$G)aWdRqq3xTOVar{cRQ!AV1@+4$A%ZuD3%T%$t|7v*7YB#zfK zhCPSs8M&apIJwf%Pu+8h)Vi)LUajeQ9J3f0;eIKES!4YMQrd99J>tv5lAqTRmZT+L zgfxcxdY3LKXhR3?(F#H&=_bZS6P1dt6=w|N)`c5AHmL?i$i++W=&3h;+ng^X)zcg? zE|C#4J9(undNlY|cfK+BUU1ax4T}Nx$@YN!R-L9(W*ARakX&X=c__x* zY^H;KU;T$A0b|e`n|A*bK}LkyOY%}^9LlWwgI)^X&T5McC~Z2eVnwOc#1qj(!(h4? zV~}l5+FZ&^COUstGk*1S2vk|6w9RvqN;i7>4_Rql^Nv(ljRJAskc+cwJ1x8RxWt)E zg@r{qDW7Qnk*8+2P^IgwOv)!-0_Nc9$|Vcg)ps)*PDNUtSGGR}3jL^>QM8fi$&zwO zQYHGe$jYzlrDU&biOYHr-M^m>A7B04rHibaT4yHF`Z|@)8TG`;`krB~8n}t9PT~Vl zY0R4KW*E!V$Ro4O7}{po$_rohwDb8qkDzjGF35K#7oePeRTCjPuOYC0&FcY!&&^SN z(xD-!9*pX*)|6VmA(If3k}tK=_)bq(hW^cHtxCV%=kS7&!wN?S0J3W6OH~bC&5{*; zq_yU>KJF=-$u^r*#(e|J&I_v32TtECU3f8iPpkAMigBD>h-uTrw&qCG+^6>zTvv*r z3Pi*~ie;y@>FMc$+Y9%qT%?pKa*fl&FD+ev&RiIidCjkNypY`TUvgC^bPHC_ z)8cuYL*Qg)XUTYsJI?EFjdOF%Mba{=>O^Yi}d4TC73bgr_9~!4{ zKYm<(0y%&*OyTywK{aC=&;6E`)CKaW6VH$W#UFgmCP!h^XP-gUuqZn!f~`4Eba!T{n&BKDam0Gl7+nRS1gMM`wauG%_P|FOrVU?gb;5h+OSsE82d!|rQ0JU@&*FGv7-G!oIZvqc zd5mC7sjO^WA%to_A6GgvbmD!%02Z=eC6IZDY^2zo%yI`;D^@;Mfgqh#{!==u&&x>e zBE8IkECn^(Fj6g}+(1=nZrXRspC3LKbXK7I=cl8S3u5@#;J#*N#RcDUek!pi&`1xH zZz(Av`o_D#bEbVk?-Vv0q8f_^Su?Q*xBU&M!uBuKJR%=76@p*$6yLHb8=>%lY7o7k zI)Or(+^6$02H4Uqu0O;aR8{|6NCDx6L?=CWtNE(vl)Spx3G+ojJ>`;%l>yJ%SbP4K zar!xUJnN5zOFm$8u)nl!H)G1@KtD{nuJWfcEGin*bnUpIQqEDpPB&;j_Fg`gh60R` zsDK#`WZ+T3tIIl*>cY!T>H+{)sK+#ObpR^RwBX;il4Ubexdy_aWbzc@4VyB zuR!E|0uyKw*9}~!TLU!mA>pk-m@b$Z_)F8NoJ3_tF%0!oNO`|kfx-?#*e(~4bcSAq zv>c$20bDN}Z4tFER2TsaihmYHz(b5E>R_Oo3C3tzm1S36+Jn+x*~7q4pbD-QBw*7Z z);S{Ouz(U(3deRa0d=qZ>1aUrK{9}7`UXQ+j;s8Qbd=&xYx0lJ0{A;$wUd4x%ptgV zH-l+`&U|f%5m#3J>a<#`=gvY`&UZ&1WN^)RSsS*v^*GRm*?)Srm*l2Nk-cU7x=`kM zV5N8Nd4h3_@;{|={}_t^WWoyc?_@$?Ij?g%c1eWF|C;vwZ+fo~MnHeub8g?B*p?K`UgeyFQ&SyYCtDFxd~%uR|6LQz{5cN z1;lQmB_^RRoe>A;&GqWu^7GnSol2sm0PG>`Ilx2(>?{mZtyeO{ZMycKlnV6p?^$e} z^omPRdmgG<{lkdl+=s^8hElQa7K>j(- z!D02O?1=Ua65;S&JV(yS&+mEw>(&M^sQ+1P{)eg#JbO}N&Q+w!L#J*K>)C6vgs}SI zl?*0FTCNeV>_LMC#PA&~2CZM>oXz)`=41YaSLG?Ybn56bTs0{Lr_JmJ7;-Fsa?QUT zQ$SJX*7UU#T~n5(dj$Bcm#9zn1tsV*?{uQ`t3}-$a=1h8ZXtlYE8gtMreLEbAL*B~ z4^uiE@m7wIi_Y}f@~_=4zN>F^aRG3|sh^dW@$0l)`1|}#s=)5JLxrh8sq1m)H|!6U zDX0Rdz{r{7>;w*sY_(qtW(9@#7kjeH_gw`n_FdMjUWnI&l3Kv){4D1*Jyf4Wh!^!H zsTO~-;0F(H-_wq~4o@@81mO^xMoHOJyho-jreOzXiBdIeq%g;yK^cH3zO?s4HDcYq z#oRApC!_3oeq5c4W^vgl8nAOfVuGSZM(%7|d{hS*ktR4*PDHepy0jobsW| z2ENqTi?(-chaE8m>NX0b&0|9YY?Y~9Acl60j)n4V!m!zuLsTUG@$8pSF#CtPzy;e$ zFMl}MX#42FC$x+^OeYzb(zUo-BIGzWl%Fpby3MRd5C`f)nxPVNDFKXW4GZpN+icEW zv?O!?>`Fc%CSqM%_4@fRIOV-Bi$w&_!}qV6nvo6NEWM6wH##&V)?+)1y@QEf!OH4Z zp!1cm2(Y_`J&j4>v?fhRxRGN|!D@=aH(P#!{1drms@W0u(I-|#s=S-np3@>TUR0#8 zFY0ACmJo%3U;lMuyKy6rR(*rT-k>*;y_GiC;oW;mtFo-)s| z9Xs}&Pef9(x0w0X_m{I6;g9JMek;@BCx7Ui1MCp+oc~!1{s$-!VcB)VeDj%4i)mTs zniXtcX?T~D?N^L79wLhXw9lyny^ooJ@yxs`a|e6Q+S7dY>2p!k0Om#}^Ai0IO_7wi z=TTb47TM)}a)==^V8XbM%)hd{eL7r~RkRByFQmnAa(0LPw4umRkCn0s)e6PhAgsyk z^Q$xwr5IXZHN9!fPq9NzO(gYm3n-_2V^_A}+Vw-o3Y&oC$F zH2yxv^md_Se*!fr^-1Tj5Lj%(cKwKnH}(C$4U~d#&PNt}+Y{u72a@D)TBOo%aOj~S z|K_274OQJl$~L3pS54ng&${QZniJ@Wx`mO)djL(WTn{bkYO9^5{{={AZ=bVIp37&e5MXxK^OHEaC-+ZzaUV@at9cq2dgh6fTFCYc=Gr@Pp`;`Fgq&h|oaL z{jXec9|cgTI6;^epjC%T7TTXHg!q7H5x)@aU#57Bpedfc8UB>qV9L$U8i+p_tZRH_idbfMAH@4p(pLOE5Kv1Q?v!rJn#;UK*Jn-^_E=`2(EA@AW>e z5eQ80|K;U@mh>*Dz5u2mP(fchj)1OS(VpquznZFCrZ)*9(t!_vXl5e?uN&TiPKWUS zFV_B_jv2_^z{hL6GNWh$pL}uQ{Q1`HjR#!h&{4y>yW^mlO2Q8v&8Oczbf2_6h0?M+ zdu2I9i214`i}nh-v6WI0Cm@o3h2E6ed#uk(a!ayLW993z~6XO zT}}r4q!zV3z2HA9LAJobj(ti`gT|x;|G&D|i*~oA24=&%od*Vv)Y?Lg^HJ=(D}hH7 z3hkyGQ5!Bkz@Dkg|0fp+d34|!&xTC-lWL1?69Ah}_p1Fv5UJ9S%Kp*T-mRRGQ#^%6 zi}AAd`>3vhg(R3gy#-aEQU7i|Z4ZW@vl>S4{0_wBG<6`S;qx?`0zWiG5{TjVKKmV8(~{prLV?a1&1#eL!Ch z@3~hq4Ft zmB6fVi5rmn9Uul%6DISq7x<(jBADGW;rZ81hg#=kMqoefRCBHXNsUN zETU2Y5ze=XI801lw^?9r?}Jpqt__F}8-NCHwsTE?5){%=+kht?mQk|uBNuR25+Sbqf{2bcV%pf7p+iQCV2Z}GX!>JdYew82>o&BLs3uf+=Q*6Ec0pt$ z{9TGuGWR0`F%&SM zCI-v50N*NV5HK1OXk?}@&p`7N5NB%N^npmLlwr)R=Dbd59{kuZ-1ok-n`np-2k|UV zY%6bKN+zCMnMH)wKi-UZAYj*oc0 z^<^LHhCyt?vm1aO$;TR)Gz>`IIO($8?xlUNWm3Ymi#?|Z7!r=u%IP-$61A_IQU1Eq z_w!ooZ*y;(^?-2z-k7$4rYX?-K}xQ*D6~OWC2sDXU~Wr1JH>000LC{AT){*~blqks z9B$^91Wj@kBF&ATvV!568K`foKwi^)2By}(RtP9>B8*er_B_<2Yk_$=vcR%1zp|_| z6=>-S7;+`^OhZPt`K9nsk9qU4ADuf;rx`gF?PkqDm|KCEt8H$BtI_y5Xs9lCdp5Nz zQfJ#Pan@+YOILFkq7MS%mjUPER3M;X@4uQTJ$}9ajPp2{;=9;;KmN#DE3+}s0NsH` z$i^j(%x;?*t*OnFP$tEAZeK;|D3*%$w}I0>>s|o(Si)PAO`wq_KEtTu5a~m(04VC) zjWNN%OUC#Qpoo#xmN$zBUUp#bF~HLDSSr%`l8ms&jN0nKCr2u3nFm>ooo~B>$%2SM zz`09gYnJs{FI+5|Yc&|!?p$lIkhSYy6dfdKff<96MKJVuTi^!2^Emlz=-({In3TvOJELoJ$K^1jM}1J{fDtYH5n3Xx9fR zVqa-T%!Qt_>7N;V>&NZ%(ZtNZkk(AYd+~I1Q>b0(Y7}6@{ge?xzYdKH0_^=rbMVQ< zKSB-x7LyiUw&QfjD&S z-Sa(~4hEu=#qMRD1tFq;Tlh18+ehdB{^3lqQ4~)PDkf zEk?Z}A_TL-{_1Kai$9R@^Bp5C>d)vv(yg_XVVjzYGt{N8D+%8jnp?edpxD#I{-eoA3 z8PIGiBaI(9)a-Erex_2$n)kJUZPhsNlXsx$HIW%>+qN@4Apw!>>xZjUpEoKawtqf4 zzKRq8WBVw;`+!Atb=~dT)LI&GMz}_A4VrIUjokk;BqHJx zFM9^xq(>!l^oy8L#Lj$m9+)QH1|z}Q{cZk5X3p{V)%xZ9 znd9{pJk*=*_D^x|IFRlAUj)Brv4YV@{>y)72-~`(8F-u~% ztfb`o`gSWp*s24dU$@3_tpuI}G6p*kr zAcj4!^&*~gfdpndUwp(?O256|2jXJKS!Ve4Mc^uuQZvhn?Cf|4Pxy`1Hu~xfZsg@p zxQ0m1CO`6MRpoQo0F2DUnmZ`#ApZ6`6DpENHFhE{RrurG0E&)*`s~fRzkW^+BilZ& zS=Gr84mU49OhqQS{y^mC?BCGsZt5!A_*!T<4(|wCFMM=lcG3YNHtQCkW@@!RU}LzfnPul9CdTGQgk|X(<&1 zB}BSGRFnn@QD6~*fq;sFG@{ZejliM=5eb!&Mmm;sE?}K`ma%1jcYNP-o%3Gr@0@@1 z+HQEB`zh$c zN&(&6Qlag|d#vOiW6XoZ6EyfM*DP0JRi#=ZnWAkzq88nht-By>n|3$fo3C?f(`o4* zHLYel7GaOE7Vvo{`yY7U1wCbIY_MRqk1s{`ttaI0cQP*`$ku4*#lRrTmFJDc->CC6 zrgSK6o`}A6m{_WAvh0X2k?v$f>x9U=>U=DQDoLAj-Gk$h@+sFxJ*RL{|Btq8&HCOq zCPe3g@?~Z@1{`vQ2xnx#p48u{(dc*XU>i>u2fn~rIlsjwXt0)b zTejwPMyIG0v&W7cZ`ampl)5>u&F@{YyFPuqUBrBy=|SqH2Y=O1s*R%hWvW(OWUY8+ zt)-p$3)J$PzE?o5krw5v$qgp6Nu`m|Qgcc~SVL;34GJW=Edw1E-h^2eMw|%sV7M~c zdeqKzZ^J%A1i>Csl3O?_5Mb;mj zY3KxN*9o$#4T+APk>d?^AKEwHv3Zn4PT6wLDBU@!3deQ!_D+N#Us7g++C7N2kvb-X zf%IG9-(7|v6qMCgdy#0lb9p#Ifs~c5piPvNoAJT9RpF#mokQ*$mWagOC@|=m zuPl4L*Rco=h5ot6f^%Wb>YY=(iw$0a!I6yFnuBYJu!};dAepZta>AjwLKjWD<1YcW z^jhOeyOFC(tNYF`Hz2Z_NDHQ3%)ckfQ^PPZFW`fdc9jjLf|8rpU*^PfjZGi=;L1y8 zDkf>DR5^BI;soLHjl=HX^v8kVnO%SBaY>Lf`&-%&AaxcEF;`#51Ov8eBPFYG49f{r`L&@3?IfO z1+x;pnRj_O<-;VBLp9RqP z3b^s;HWSoF#qc>8mJJ4C5O+&{Xr2m{#nYNwfOXp91!oURqxeUlj;V;N_}uE`T3Azk8f6WS-l>=pE^mFzt_ zA83D@8LAUa2kop5Ls8tx?;jFE>P@USpzqVG-L*2IJkqoG4tdHTH)Z6C<<#v^>&)GW zajV*s_3xFKA4x?iyZ+%Y6X|P(93cbz#wB9uIgJuhcAs$;)5iTa;gh&vRKc6uFHfQ; zm>v)9C$orUx0N|?@>Tr4CyE)#*U#QR@7QpF=T+*#N2MW((eV@~gFeg0@0YhRT1^Z{ zax%cVq2~1(kZa^f&Qf=qex}=r#xGV4?iOV^F@4VAZcQItlLSo&d~ohklf}neh6r>%2Ji4jm{@ z*mpJNj1b|d_N_dPtE4wEG<2y%^!8>@aIovaw@E--*kpSRZ{WSZcgqrC#j+S; z0I>9(PU9pjqM%tHRn@O2-nA|n;n&~iEw8?1A;`LtO1D*@Fp+l|PIJ0~47!!9iey0s zIsYt!Y#-7ge%YB=$!mN}iZjz!8UOK1_iEF4cf+c#^P~?Gl5MgzoSd01k3aZl`I5F6 zL)~FXrJ8*2!#A+1Z!hxE-_<#ckf5@OkZJ_jKim9ARggqH{wj_OG}e zr>H=04~YNM-jQ;izXhMyDN1|fuIx9$%R6uy8X9uph+KDba5Qb?WtE4+3N7-(Mg00v zEM)tB-!S}}O}*g%lN8SCIuotYLmMJG+wv>>;B~wIi`Nn1ibC2P0WlMFg=@vtRGogS zLcsGa1ppU@<-SNv`_9O#U&i&5KL5l1zK^{BBlZ~hF&YRkLKiOX$ZZzW9>#DQ2zanR zO}+Lsp|YSM2mT8USt!z3kpZ2@zWz+187d(x%&_3<=y>cwaBw2ee4!};JVNmQacRdr z=%rTE%PrVU;8#XlW^#(&@0a_MCW zR&)}V5sAk-)2nWeA|hOmhknAY^#c1DqW{o|9ft6(#ubhk|4WOs_M{!7F>r)MyyW2o z1uFdA2`VRqZ|D?d05!KITq@#OX$pjMvG*U(1;sWpuo#+%#UMl8A|ndwclRIFk9XUC zu!S0k9pE;Ny#)vyR>UtEAdD0A&F7 z<0`lIE^kA`o)4!DSHgb$oju=qdmCUlj?*2vCz}BhDROLcH2Vh|xaDg=LBy?!1piT^ zekn*QC`d+Bo*~%czx5WsD@Z@I_#+26KQ$sTz8nv^afv6%s;a8~v$L~H7f%SB_kx`| z_v47QT#%J1+3Cxbb*b)gg|2$rF65w^juAt_QFI|QJC+Fm9>Fa0En48bGWe=)a-Dx5 zEAd1i!Jp=nGa!Bbbj)8~B%rYWJkbB?)wv_asTWh#&}|p3E{?z8l`TB_KHa3zDpu0f zR-8edg7DN~!Kp6EQ=QgAWxV;*S6&{nKKZ3fBHD8qYM#0sljap0WYDtYILqvV?#vQ&@ff^dSdi`$;qU5fvc*E z+Om(5&q|6tP8RfYq&+xS8dguPUHDK{vXmi%N{i`W`DmPMH?7G6=f;lU8ye0Yt1mqJ zeU=^C3(j1Rw`mtWqq)Et+;`k+e#vGY6t`OEt(@0=mV)$7h~AFGM5ktm?FK=u5I^A? zzpkbuQ`OT3o4<4bQRU-01QhGeI}~pE>PZsiKQ|1E_BAvSqp%`>*;Ok3I*#OKEQ2_t zHJy!0Fne71s;e^yU$7r`ervWDVupuuUcPzJkLF0d^M*%Eb6)3LJ*h$nv(vfvaR4tsgo^KYAZv+h)qa zBV#iCm~^D%;*&F`_QVTr0&8(cDo~5l)S$Yo_$W%kiU8}AOKBq2t|#cCG?jM5lweDA zB1=h>oB3kK1QkFPZ#m;=^@e<5-lQwR>@CeZt@7g4Lu=SJN500Dro2@{3WzxD@dgtf zTH43E&|XQumKfVqOvt!34s213OA|~{5Gc}4y~xGZv(b{Gr^^g+Qr2|mUhH!F*)CUd z2(VP3t0fUGJo)5Q@Y%Pkv`%sAxdH@}y=R23hoVewf4Kd7^t=6_sW&~gr}cPDv==vO z2NBI~X##8z-k1v>96AfUN}I$! zqwP*!IsID{=uN*HTnppXr!{i-xS8wBni#1pYh*TVN;i-~{%>mxif9 zgS{lZNvVJ;(6c6mp3Y3#z``%E}wLI(RbinX!By4 zK@c-dQlgjNCeqLpV|myIH_=A{+AIQVG)06)u_@k#7LdMj^7r*|?K*#6SVTlyUs3q9 zQ&9>1lG=5%OI)OyhfPV;^LAbK-%JVaHz9AO0w0CKJ09$=tmWMn*yXpi%D-y}4ESNx z%|>Y&z0hCD6z(U=o9Oh8pdC9?Zab9fRzK0pQyN2ryB2844$|u8doq0C6bXyG5JiUq zAFD=q-NC!RZ{sOmQ>@~YuTI}P3`{Il7#tj&HCeRM>17#{s)HW?H_<_rre<$Sb(}-d zCvk_3(dhwYRZo-WjEpxWAs{tVMT}ySLAl6FvB)hV{qaUw6aTdfElhj2Z@o2?qt@#^^{bF~75N zV`se;J2B-+>3oAaj|Ar)Ji6HUu56DFZc2OhH9f=VCwja@Y1Sml8lyv^ej^|h+G*I*}; zh+7Uk%h1ot@Dv+Fua9uAxIV)x{{$oGSjf>W-~GVLt8v8yqHVt7jNJsb#(1+B08Wtq zL5@CY1==?lA88bnLsv>>(M#zvBFlu&2)3yC?vt>tiA?5+`Gh<4V#uI~8B<3PQ>05%5Diz0I4)DS-n{j=m^ z6|^5FMe=pUZBsWx>B+^n)|(K~yyK6XK2PaFBRha*ds$ybk5ckMq4j#NgN#o9vy9jS z)0&$JPZMuQ1cZT3>^LJE+jp!Ag_tzff7^ceAy#p=wMk{O=%dIU`yMhS+19eyR9$`A zOu(lfE!g>if_tS&nSl@=Z`wlWDatJLyZbCBMHH>;9pl>PbhSK;EQWOGP#pgosEj=7 z*@Ou6%f$`8fd0M#`~@e;00J?Unyprb5H_b(Hbycz}_M1nF)pkpTxP#sc4aLq)K_zydU|5G{ z{bdvW3Y5zch?p7VH{eB{LL*zWV1Vg-7(EW_x*PE%kLsW_}uK0k85es6h0!G4*7{fujoaS z>OfENLG;YXq#l6m)Z%e)_;H!U!E;E0qwmRqEuOR=PJzy6fAUS|SAMpeb@2SEBj;Q6 za3CJE1*nw`oM6OQ|D6nvAM07y98^sweZpsIu`$}yLtTOT!Y5uT?SmWV77F58iGAcx zCJrkd^?JAWH!}diFUYap?gGRneNim5NoN6MSMmnSwUU`4k24Ucz@hkVO2gm_rPJQf zonXC*Fj#NPHe3Z8QE#VDj3eLfyh9M|&rYBg8Md%vd_Q!q6b%vbyTFic$E{|liWkg~=j5*SFgw*i zQq4ngIrED}qYrS04Y+W{uwx1Td<;GJ9oe>rm36Q>cWxZse3mFJ77oqX6^hg+{e5!y z+rr<OQ>>1(+?9O_+MqSTq$65^t_uCPkNhU5QzkCF_xvj`?N8U6B6jtb^>3-evbetu@@P&|&5Hol86Jc5(J+?#ce^*%Y<iDsL zJf&fM?}%{2ksA95wGd6~AzW=&o0%5;?-$^MOEKWYt^GHmrTeid;B`!#DTYjBKs+GU zztw@<%;R>wC6FLJN|>3?E&$MXc1*cG=lKMXRCwobi~P*AJ-AR)^?#6*9`H{;-W46@ zMY~u+y6P}u9L@{mtNyw!|DE{)!GxleRaHYxU~{}=4-l?(PYTIMOUIns0DjT^dOgU2 zHNQ?wNO08Sr>H~nq&Nh(l9-&*`ZY1X>w)^)zX4uA>>=5a`an?gdou?_i|*zf?KEn(PR!cHBi3lwDY z;ehSg9^FZkbU{}1LIGXOye>7|BThNE)FZL=7itdJ|G;=8@hPOCPV;+wpr8oebiF2j z-51p97O2x<@bf7{0jWqxW+meeN9FkaD`1_Pl;!2N#0XsQgLAB1bJXw`2F^(eBG$(O z8O9*i^o<#~yfhz-(1R3>5CicRt8g2Cu&wK5z&I2nDiEdY0*8CHtneo2PySNXnVD(X z7gw*q(?4j^Z@C80!Ve0dzkh9C3}TO9?T1&tPJpI%bpF5gk&dibB#pqh4GfBv8eA?9 zK_YB8#%(8}0|9s)SY841&K_`?8KNX81^n}A>q1W3O}M@|)53?JJ2zCo{;vUvK*1xv z6`k~`=LQ*4d0gjTdHLY7v$K)9LA|AY&986}@Dae4A~s5>^pcGM1LS7;ns>{lF@jhf z4FIKUXlHpUjvs!+`P#kpHec9mrGIoH!y;hVik2TnKKt1VpcnMj2)1(a)2`KY5;(?> z|KS+JR@;CncPve&^e!eHVq3RzYqPpvRy!_{wjTN~AuycuqCjBnWQf9-BN@fw+|!U{+%I?5h5vNTNkhg3~Ht+f)m&KDr$G*5GxnRKT= zq^wMHLoE0}>-4`n1S0FI`~7`y70kAX%#olAIc1s88w`a(14dOHl4PxFA zTbsZzj}m`rsJvG~rRbs`JgP{8?yt-=2q6c;50R|`cnAX6Re^G&gqSBrSeWZP4~S19 zPeFPTDl_)K#P|Q5-%RgE!KhNRy2l5+Be9`>zgHi2{rz4Y2Z6P<+?I_-l)HsxH4O?) zRdDeE9|gPo`)@+#Jy2m^lzkO5&{#>CQ)> z;55P``vf4z`|(G}Lu73Zu?SwncRP3^4P(H&i7;sEU4EJcy_oDEKl+4~<;gfz#FkhFy0^jW2B1_3 z0qMDNkt<}IM%MHSaI0d{1zg-z#4y0;NvWk4&Yz)V+bIS-gG%^^-AF@!SKg|36}wix zG_N___vZKGfjTuEMZPJ_tDk!} z5_@x2p>UnApnDgz!ff(G`tzH$YU!|<-K+2zC&Kx5xd^3;SKyS7vDMJ6yULnr^5dl+ zOTj}S2TP=Hw##i?k{NksUWq_r?O{KO*>)G=HnA^ipnW_u0-?VlTuwUoWb<*WRwIJ- zpP8wmzJoNu9)Na%I%3d(*HJGRzzZ7#Fl~esX_Hxrw8^YLmiG{WEDsbldDt4VTda@P zy!SyqLJxmHacPHy1ipJp4Z{3D7ho3n`BF=Z3H#mg-3!U@gM3dtq{udN42bc!RwMkX zr!T$`gbW1@u~Q8$2ZmP&0^)f05^F%QZP7$ZY9&CiSgE%iT*rN7Lhp`QspiptRJp0D ztbAL|{VSardSi*A(~JG7oJB+Ijj#6x0ICwR^w^oRUkSjcxwE~r`5Hwq!=QTmw%%2X z!ze&s-A*s)l~6@`fL1}(J--R;Db=pP7*e!^I~gb zFYb)L3jAQjwZc)B0Cqn25MDd^3A&zv)6Q1k4cc^cwven#L3rxS71;P<2oNcL8|`vW}WGpZJBq!$uU( zkzEjsCzO!H;x?yo#XIt2S3g)>M7=;p3l#!#h&*hqqgI-+$z4ajxMGGu$58!7w3g1p zvM;ZVaTF#im2s*3OMNKZOrV|nz6|K8yj(g1Kc7FX)mq{ASxrXj>MD!zLOhcn(h@)W zR^n4_{X^CO{C8M$tmhle7z7NodIx~MD>Y)~p4e|Jw!ay*zz3V&7m4r=WOtwHITaFI zr%bEo;i`Vpv1*DQNCDtBU8igv0)^X1H>_FROlFZbQ})nVxz^URrH8tzAL?1u#*vHq z<~}&%lgV&;4(((gIgIx*MXz5ALPm(z8{tF9S)i<*MMOj_r7%b%{rc|rtRH-k-+V*A z;=w*oz@7LbOqbaYOVA+rs0-N(p{O*}4TA@5!^M*s6s)#|X3Ye5zEItSLgzkS^!l6- z{{+IiC_z^gpf@l#7JVBpwzuw>phJItxR~b@Au9C^SQ>6SdxTXjZelsXs7b(^&hg14KQt%gYrWJm@FT@b;P|~@8a87dhUtEduCc|6l zSEP6cd8j)Zz&Uei*kl+Qv8K^{PoQ&0o5wxqP&{3YQMch4CvRVp(|PMTp%F`t%!$Ij zG>n~0D3kc2z~j3IMoJX%NBTY82UnV)>*0`zmdyR7CA<~rfWS(4mn^;FoyPHgfVixi z7XqBJGC47Z#Yv>Ve<`O8nHc2{)3QAD`{tofYI`M&OX1)LMB9yEj)v689g|b9p!1-% znt?ykG#P{$`iL!NjJtp(4YvY#6wzL%8{wBj$q=IzIrupzr5DI?!kMHRVjG?9Wg^B( z5BU?Z-hR_vl%NvIQBaj*~JGBU9x3OF?5N^&IooMuj)DzFW9GCkEJ zBDMB0I7o;1Ws@?DJNcZzr&Ir#zz^v;ZVj__W@{QoQm$c66%41QvBfoOZNJGkE{Az} zi+;@Oe&<;d0jC4CHz(7XYHDge$tOy+F_1-^>3Y=DX4m=P0p4NVC0wJ_q=B%cm(>S6 z$Rw}uwaBF-CaY(4Vd7!Q{nzdHXre>i=IVIvlrHza`TVlG=Fn98My?Z@M{;~$fnQGC z1@O-2%=q(mfk}irHY8yGNCbH^dLzjE0c7e;eW8}N-m3%K+QaeWICEKRVup9p(C=-! zBd>no4hQ?2(U0Nl(DdA51wcA1E?_5i$60w2mys8>@_hi@BTG|?j%klobLkGJCVVeX zhj4v=ObOfd4@Zx#s|lR4a4dxh95!xzB1RUjQebX^)mlA1LSsI&kgq4mt6S3>5t`Rb z)aZ#salXvt_V=&R3&7;?HVJT3lT2!fjo$IbrR&*qX_Dbn>+mrKJo; z?7dzUn`<{Mpfp8qCqkRc*)oF8)mAAY#21N`cA@k_Ggp}ejQ3DUEi{MvGD)0&;maVA z_3>KsQ*NaF^kBt{rE&e3jNE29CQ5x1w)4&5H;^WlC(1ucQ#awSWeITSR}(#S^FhAH zNMm%@iCM1<&-;wAZmXRx&#pFu022UN-RangN85!QTC-mLk_l#LK&e7+e)W!{u$6=tO$5$o6@sQj(UFrHU z2%wQV4Q#zqg>Mu@#MgIRb^tSaflz|=jgF24GK{KSOjRndHcN1tZj4#&Xnoah=xaQRbm%M0VLFq$(cWZr z&ERzXXE2q^4cjR&I*hsWQ!_)rf22bCJY2tToM`CGX$}*_99fLWp&c>r;_f5F**&Ygt?#7H?8xk(&b1foDyET-0Zr8 za23n|SR0_jGbYuX-j%TA<`x7F>Ol%ze^&X_W=zUfm4)@6WsG;Ke%iR}R2iUJ-0X5Y zf7Qv)GLcU4ivAV#L1zt!fetJJJK* zZ$J}HJH{{2<9@L4l0{Nc+K_U_$RJSdni^i$g%35%)@e~Xlx!GZEvgH2jJ!Mzeqp6k z*cfLFL6zv^jB62}yEtx`oWrher z*-ExwCrRXS+5F(rHOHLZYeyav;b!L_Ia!F?=wt5!i8t#})WJ_kILK00#}~Li&h9EU zp-ZF=83?7|=y!P#VS1kGQoNbwJdw-ax!GbNTy!{3FE8ILWIJI4hNCOvQ{T}2rYqv? zEvIC|En@oe#&>GjG@dW>YCLWJ?qHngwKbJU2a)?+%^KxCdrHwze}{UcJ0ZED4bR?j z!i39LFxCg}=Fu3FYzJZ|y84)ssI-GLX1ybhjl(Z5zhsH+@sRaKXf%^wPv=o>-5zP( zcd=2?eNivx@~t;Epp`Ry;<%|_43EdV+R<@eW^HMyOqaM$*TTpA?kp1LAMq#pveYrp zHLQK6K9PAq$^>ifrXP*j#9aQ|L=7WNRw5SLPhMA1%do!6QuoTEx$&j4ro~Og;ysox z(@X2sY|riqi!@a2GfcxIaqDb5Ui*sUWtWm9H{iMVonCjB7- z^NG}mc}2Q8-@@ynr=)Y&p=)oEW44uiCwnf&tSdhkEx~o5Xf5yZ=1{NVY`NFdYq&QM zw2P{BW-()`84W`7X>FoL+Rbe=t{H{c3b2mT8Cx^2r)xv@NFTS?67Jzi69I7ZCs6qK z0d6tj$@ogD6Ma?=He|CyQdNy#z;?&$y1-lJ%#tB|Me4TK+24?tyVxR4l}B4}5eN3sJQPah&OP*j;w1#~Y>|T9egx9G}Z&(HHprK(LvP`&+}bIFZwd@h=OGEdj&CLf06K&;=;np2WDwjM%W1Sl4M%!CSM08mvQy!@LW+-MYwoEG89`A9twYfGw z?%aVrUNn#!I3j@8XKF|Qu*(uF17&zyUYz`4ul9V!f_{^(`25m%bmx^%Vn(HwUEC}v z;EWz`zo0|(a#S2}#9vP+g`I4e?c{IGkEG1!wV}S2h0!wz3M`mgPmcuywb6Mg-wJS5 zG%aBa;ENypo@yLB_^^AM=(pPl(T6Qj1~|YCIZ=)1-fCbt*3r-;@zX|W^~`im)$BVT5c2EbFrSuCu%f904ikj{NVBER~Z$> zw?7t-DSJ|m=X@Q!n~%%gN!%*}d>_;^mu=;Z<#T0>1|!NS=U2B0ua_EceAc3qFn!Ke z0@v9*2jEZEM9VwBcDp<;XZm&U=O(U`6aHjZ>}u1L8klv26q_DI}H ziycNmlonLqOqEM%ck^@PS1~rP?Be4pi(kA6TW`TY(Jo%fH=j-o=7sRyfu6+~MV>5~ zOPBGn&N~Eo)^Ml^%A0PMjBj{tG%UL+RgaHrM%oOfMCG6RMd^4XyUg!z6EJpcq#yzue3y)9h+Gsb-tPn0T$Y zQL)`rhx+QBGrl9)ml4Klz~B@@p58QxN?6pmn<25NJKP#v(k3i5_UW3l+lwp{-{Np} zy;63zYDJFyE5Hb9pDKGt#S6B&_**#pBrhs@*mlw;GjAjFq$lMBPrgS)j1`-+eYp$0 zvxwf>S@Kes$Z3c>uZ@vYS>YC1S$l^ky&i_9u30yG(5LZlv=Rg^Ek8K9u@LtyqL}%r z{@UWp(cz6+ER#e+XDa&bjA>d0a(6>uVS-R@cxbqE zeD{$CeX85Cj#cP~)`oAFbsS%Ma<+v(MH12}^eZsFjpnhmieyG5k{CepCo|2bsQvcK z+8qj6Nahd$3f)K{+?56Phw*M;Q zQ;u4)9gtW0YSnh5bTd&3bIlB>*3@-!{s~pk9f9?+tyOpC+llvcqGTh3lMjs?g@zyQ zc}Z3mWU9DULak)aZam||RQ-0p#mJrgQPg#pha28vW}cm`v*|n z)M~}LlZJP*i^#9OIUr8MekpT9W0-U2B7L(9p4$IRozJi^Yw+yE{EPf|`?@l;?WFtqeVvlMw%900i8!zpd2p8sAajqzB#QQOrsa29%5~MSK)-|H zxb-xT^WUCh#utDva)yoJafo3hTt>T$qedA>4~DU@vQoHtv|GA`KA(^}DlDv3k;;NO z3|B%7l+}>D7!*C<$|G53&izKM)iZ_zo|$sqS%jliRFb?W2AP}2v`WOK#I2+cYQ{px z%IWPP0-H!FnhkK8yj$Ry#ZAiUW_hstn zlp=?2R(P(llFsn~KLK~MJx{x9IrlF!lh(D8XullJe9seh^Ng>j@wxiSJ!(!g2R0%) zEwsureYtS+GB`R3@#Mf(|8Y5jVyaz9kif0+={1)LtsBz-m zW8-I388D1)`)q04cIoIgVIyDwx&-BgxL4Djxjl40V5#oJ83ZTwOb+0yJDw4qffgor zBj@8oG8hNRm^vBHW`s@^E;uQoq49B{O{z~F1GsjP@vq1B8y)gTNQ&-L<{SZCViI2# zLA(JxXm{ww5XAH5D!UEE7p46-V|p{PvrKp{A{Ww#J&#i_RGmGNPLIrvc{{o$P*f~p z8`4Rz&96$yHM(K^M3O2TdI@a2C1OZ_B;KJs=I|p4MV=XAYkksDqxD9@o5tfhifKar zPHi8}+2@~S)v#Dq3+h^A3<+Q5Q6gb?;x6^^@GD2|Q8!@F19MYLQ)A98$|m~7~6DQ6ITj* zH2ePin_b#EdnaC!M=P57jWGJKV_T7t^Xf0lFalJG$Up zIe+Qr15YGanttLNst&~U-N5Wb7^Rd5;m&{Z?W`q|)Fg!8rl^iK`w0A{@)rBt#wd^Zp`rbSb+djLAah=*yn9DslM8jqy^KqPq#&BIH@Q^vlwj)_8jxu-IY ztSxnz2iwCiyB3!oy`xChJP4x8;exXgE2CGUhOyMv(Y~Lx_1d5G%cN>v2>Ml}ZliC!o6v}uemxif@qQFcE_`9m@u8yN zf3u(u-LvFR&brz~>+hkE%=;sq24Jwltp&DykRCVjJoN)r&>|Oix8H<>)=5w<{4iXb z(?M?pA-w`(viN{KUI|fY$EXLg#4j^L=Wr!5JKZoF~0B^ zHhr!>XD}u={?GZPwoRynovVV@M`MF%cTXtoAA_BJKSq)I>=%sX4^M=cY5WK7riGuH zV?`_uf-a$g-FLp~=icrOWu5OO;=leSVs#eV;&JXqX@TSh8=PjVii*lp%_FUFg>HpM zXcfqAE&|L^`DbF(zZH`D&!VE78qOh(@Ym~QO?AO~)Z6KG$!ImeX~80>6v##E9568~ zg)*(d&kBecAV0oWKz`aI(w#;44YkH5rXb)L)Su7{-;p~|lu9H0UX=Rz$)KZLfV&bv zd&9zoL6@f005$|C#^kBH!y@dc^{-XK?dE$r_g9rya0ofnqFI>Olq(>(jXxnFzGIc3 z-jM}1<9og1*T?!BB6_qVe?y}c%G+f!004RlU!XPjwiVX;0|10nxBsfJOS2x{$+I?viJA(LMM9uTSb{JZHX_qhqR^<1c}gQ@*lTmRkaZm~L$`Nku@NMNxN zxhKnzUz+(*kpKVDF9}oHtkwcI^9MAt7}S4!$WI6A$DH{bWq@Vz1Hy^e$jgI-Jzy5z zUlEl^(_JEA+Ytoz)OG{YN|f{oSDe!knK~%9;T#~ zS@fI>O&jf-J`yG=0VMboqas}7Ct4Gw(OPO_xZ3H5h1BET~e1_T`mK!0} zdP-u`pJCSEV(g;@Y*q0UqeA=V)PbM!=+4h%E(b1!CnO|T7I;<_pG1~HZACF(O!Exl zDw&>3&9!hy^qW0bazC1}J`VbF=zjSFSd7r8p<{BA-s4$)F54yxg`(;y*nRw7x^|Py z4)0uB(=oGsuEOA~!9$qCaB%OtD2zm_+ol<$}qtLCyu8{Avk zb^6Sav_5R~@G(hdnQ&1FB}J7CrgGb)i%&WSg%f!e>}X}q7) zG|O$H+P2e0V;4x%6P{M6afDC{sBk*TCdxhV0G&U=t_)>A=bAj1T~3TKCsBDaB+RMCO^%Y011p&c4Ninlm!1QX|3CEahr2=UdaXHGZjPZSwZr5{q=>fz z`}Uby;8Jg807dDMTaWMNNwUqA7@9pB+;l%_v~#;AS01|49dZ&th#u24z(Q(D`+MF`$7(Hm{%REx`P1I=g@}R zDJINf!?S$#mQ0f@P^hv)Q%}yA)L$`sMRQOY42xjrStbY|`?ox+!w2QELt^f?r^Ttr zT5ud5GsR|8Ccx}L*hU(R$@sjP#iVu)V+(W_xJ)*7R?K6Bhnw3m^+I3Y5?duRt|+^h z5%Q(|zg;9IbUR!~pTWVP0$JCnRTscUO% z$u>!HH?HX0_~61XNjxZ^q=Gxk^tS4xGBB6egaDyk>rIWpMZXkVouQdIi0J*Itw$Gi zV)T0(o*xjx6ygP=NY{4PeC1LRAZaJ~ffe|cU-2C2AYf0A0mbhNNwOlq5M8Zm;pdvv zfA-sANl)xG9pLT>Z&~IuLzX#Q@MuY+b&&+CH{1om=4EnvXPT&f^at%JLuhtl5f)@_ z<9iAygOaEpV)vKmvnUTQCf0nRmnuqNco;jiVyOB8vCls& zg)B7z1$VAg-FX>;E^25Jj<%U9hu$QsO8_y~BXr4!p5c05hudJEX7Z7JDj)l8pJ>)y zhw)U(?^Z{aiC|GOEoTqe<{M5eu{vb6sn>`wR-h5WOD*?hKN7mw!|lt>uY0JMDs9ra zxfb;?{fpZw5iZ(DA}9|wYyZl$V)Z*|WV3GHx+H=Smye46T&v)FP(1ur@xYcu^X_h` zIO_P&veQeS_TX9BzD$<;VqGS{-3U9Gw;dwWJ`u6w6f!sPGJrMBsxvxR|sfAp&55p0p|Z(H@>EYrh0iSKwbMs3lif`zj=*eiNC)2%fV{kmcAwB4zh zKD8smlE5af`iy)%nD(G}DUjx^UCu~Fe9NISBFc?T+>rDO-?>PawPEjryO|rw{qo#_1aCP9TNs|3xXtnV)z~&bW#2e1y}`@-f1Ou{wR-B zL@T=_@eztU2jh_~29z4+lZQ;zrkwJ4gqOa`oIq z&gbSl}ULAaD+W*i;JXks0GVDo^W8*K;V;9$D zb*NYk3x2`2^-Ur}Y1uc1l!~1YdWiyQ>;s&J&1WlA)4QZbn z{PUt-Q>%_)Z$U?qj5Zj>Q`OS)Bz-UH97H~@vUtTZb^1-QrgG{=Umv0S%}_{?UPU1C z+m%%mzT`tAUlo>@wU!6ROkki7Z!7zUBTiF1)l=#RLTF{6H{5IiiWu_@0n^_ zE~xbM5CAiC_2n)FNL)Px*OAjf^7g2tJnb`eNP;UwDAOS?JVwXl_eX?tfv_`l|B9M- z%hYq5NjNxZW}Vt+u(>R}hMMo}DlUGpU@k~!QKOaZrzMa)m^iILDUVwk$42(!XxHxp zmrk-Dc@2%A#J|c?&uQi3bA5%&^jS6@KDY;_2bgk%+_d=2P<1PscglH*oM>eGQsp-{ zk%yxg1D{l-fdxE`w}20RGt^!lBCCcjmoFl8)E};eguvz;BeT0x(qnZhg041*nc|*m z9xvrc&B2Q2p!eTMk>lhcpupu7?)4;D+)$Z`)i7Ty+6}56g{V5A0tsTbulgo`yjtz( zG8hsgq#g$}3l-@wm0j$=f@ac7^v(H~XuZ$WOdM)ERi3{{ws}kT=?OhdyquW~HtWEk z1{~(W-CP;*C!^bgO{9}hjNYiB_SK3KYq+ zhzG9`5k(wVe9dA>5q&5vXZ;IFs@j_@ZqkJ#rbaH~BVCZo+~B{`>Atqfy%Jk|gZ=MUtN)=KY459h^2a(SSx`jz(L=QgS z*nN}&!aBYF138_b55rS?!dZX1ncecB*1Oi*3x->z!EhA>`=Fe+$LE_u#&Ce)UCx{D z^2EXbVAmCc!oo{+yF91%*wSOZ!`lqVu+|_wjf*UQoD&}W16>~{*NWu<4HKdSX`Mxz zau&|>pPTq8eQZ6`Hb1?mjDLgPu<3LK%lwIXs{ORe1`j@ zoa5Awhky&^PGF|^Vi5wCX)pI5=j_AxU1GMk6x7GSoz3PHT$Cr(Fu)*%J7xY2hea@M z*6qT5U`}GDqszD`e?d43chcMhAGU-k&DHCF&=&~ZP&OWkTaanE{`M> zYK}7U!!1Cu`u49d6Om$5Sp#9~iZNUa$iAmhzvc zF+#7RW&mD12Fzho}x;=C)$Y z<#NEvEL;#fy7Cz}y}5wvk^+ZkpYC1YO|WGN%p7 zE8+e&(fMvk2UPLbq7SSH7)bZ6!OblOR?2(7n8^ARLc?OD=xSuCK=%cS|8$hz>P%UP z@mMRP<8_BE%Ls(;M^+klg$Tf=)5h@C!}GAXUzG}IUxDQMv$HU1utLnU?Y|DT^N&SI zR{YOclrjOv)`r;l{9sHbA*k&?W#mD#RMET85$?z^ih^) z;;a#YLq~zN)iwyTX27=~_15xR^>14*hy`=J3?-iXqvxIJCH!L0F)Frr$AbOkSnw+m zFp&9f3U24%O~DPjqC$Q0(OKV?*RsFK=fMLnykE|#ONS3iwc)^I&M_zFQzo%_A0z(M z2Zh34r^LPuQOa%8d`vp$22OZB)MtE0_lFO7L<<(>WW!C7BE%c#Axlb^$=i26Uv}*c zjK{OyaGyl3qq`a<5SnIx>F`&}Ls7NV7wQS!@bn?P`TS`)o45;*xFa7~5IajN~aZBWcmD9=AYwmJD_=(`>w>p>b{eEFe-i$5%z*d!i8 zv>Y0c`pTYNMv;$V2oF`pC!@;WLGXuYb7c2-6@>M)#e)7BeAmBx&oabypCGfqSGB(D zU*jN2@@4N6a^UoK81`>sr>PMVmDp5PRVARYCHtY%4+7)4&w#hS7o)L8#fY@fKC2(j z%)|!oJ11xQkZ7T(9kc+)nb*1Cd|)Nk_SoR=$}h~++9HUX7I2C5^9OYm>?g#nwWBMmsAcxBFD9KSGQQ^_V4M376jOqZ#SmxI?!eIDO;@2C5K-wN!H5*|W=d zF-3=XL;DhQM(I*#)^r)xKk>xyp@Fr@%%)=$mtm73N3RR_M=_xCf;pDzBOJHcfRWmF zl9Q8fW{f?|e3~z}@?fXizWF(tt8~qyF&Unn=XcBiTkge2((ilKaqFBUoArm{v9Cc9 zE*)3qeTPyXeL@5_ONbCgI{;yCaQMPQG=Ru%BNHI3v)?iz>_?k$TQ#RpoE!-oJwi@^ zPPW!BRs#@iX$Dvpdi&Wxh|Stx90juLN2)YpNPt3VIoZe%F`fn#7Gcm%;*>&d8ohj6 zs#j?Nq+yOZM;!#$A9VZyG*cj8yn39)42FGB1AS@nLFUEf9#?9TJ@&Ha!=%RtuE$~x zk!GPCzy+#8CSJuHeZvL%xa;^EsW^?rne9k&AdW$1Lyae<$p0y|hvL#7)hHSzw;#*!<` zHy~x+(DJg~VJ(NI+7Shv&Sw+K5vGA;LyZ_-+W!}MZyrx&yY>&WC{xLhu}l$VtV|&m z2}!0>=Ak4q&ohfkRHjnNtW;DoW*(MMiex5p$UH9N!m`%yxZL~R`+lDN?C0Ij^M2m< zpWi?C-kj!$LJWvLBCqEPHa7PV zReEtB;H)KFUEm?%HH?Bc$CJjc#1pGVS#qCyTZZ1`<3_R}1t6y_7x(i2uO3|47Nque z))Fk*5KyTq2}pP1hvBGCQW^rNlY!mpwuL}`CoMtBJ#l=ue%^<0bgE3F5p5DkATi!n zVhqQSrq;#z(HWTV{4_ZY!$1(V5Zv8Jwva>4AzF=)hrk@%R%s(P$j#f9t2qDw;p4MIsjIcI1z?9|G!Wx3gCSc}-EErHL90P7AIJuwe$b(ef; z00?4WC6n?XK5*W_k}fx3aCQ`rm~ds64Ef`5h9I@=3YH}G6qF`xpz4?|LJN`VFg=)O zxc+{m@dZZ+hcmOUV0WeA`td(sX{Jyhra zrufi<>^-_pFv*cAm%CMwOlt5RglMWTVb1mqO28^P(ySvOYpSS@@=9>bI)FGmm4fYn z(@6p%TD=z`lniNuLum|B252Zmj+$i6HXpB*UY=;)om;kh&P2cjq;yk3*#NBXdU{Xo;%-UPsqBg=jZ~FFGMQ|;l0bc@tJQyG{mq^PZi3B0w1Fh`D z8Q{&u^grUdIUmr8=nv%eSOk3D90qo%)S_Y61}dTLXnIT4`f)gJ<}1e6wuz~Ui4V*l z+GEega5S$gfqPtM|NaB3?02N%x`+6oxp8rClr|Irnnf0SU%{tbNO>!mTr6ytY`+fy zTvi=wyv?tWu5D+a9WW0}oBUCLK-gckdRCMQX?q0d0?}IftyoZ__}l1w777g_#O8h zAhvF}7-q`BW$VMW5kSKs8c39LRUoBw|NU!*PZ&BXsK2cuC_6v@K>VS$${r=ul6Lv^ zh0QWzM}UFuq6*4UJL@GE&w~x0C5aYEesxes4k+E~^LPp&*d{Z|7Ma$bu-iRMCy|ZW zl1@cJ;@j;XMm^~Pd?`pq#zD!*i9|G>{wuLK8d4GUtHqrssfcKU@0EAOTwO<7nk?2& z^?Vbaw(;_JG)%DPG)(kn681j)36o!KBbEXvXs3Vq4iJ5IFA|60A?UMdAHW4RWaves z$^jw-*V&&(qbw40{0U&Lc?byEyRsq+SP~Kc0CASPhma__EEF@iL33kijE8hOHPRi* zsrqfb>Be^OKMQZmKgPEGy~QJlxi@(q~piA@Q9o=o=80r?IkMkVlU`7FY=$_X@Z-EgGdwWvZgO2QD1 zkj1#w?CS;2H4|r$_F&I$Nm1w#wAtE5JeUpxQyr(I=bn5^&!`&cBA>s>TP?%lC=EdL z%-0#@E$v9BU>A1i@M;nEvV7a~x~F}p`8UGNNndmwq&QdC1n!_qpd{ekM}8a8I%z|= z-p=9*=GX=8bWHiF8)H$j&N__+fgf@g_;C3#LD_O?ioPRsmOtGpwR5*EL9wYsuXv3g z-!gGf%lKc$pFdlM;eaitcz^pPC5a{7C(Awd4vAU!%*lJXGZ+iQGk6@aT~tZ4*$*{Z(BZV4IjBANgTjiVR0n>o+f;&k01pl}Tpx+@4i-B*nc;}E z#>i`lpj%pp`c~JI_F>_6u^$l@8LcYxe0tkh_@iM}cS@@Qc+90!$a5BmqX)Sj4Os@v zJn_(?1%-tX-^5WG9=L?B;$OjM@t1-U5=-j zoosDI?=QaC^(fhR7!UPB$N3+>T*Mvh?S-FpEI*c9fct=;+(Yc6oPU`wHDX$#M9Sr|o_5i1VZBm0DQmV>6mRz#-+cP!& z>8x#6#*Y7X{D5xyqvUJDfjKy21C3>WdrIDnqkR!~Xn!VK@A)6{E{;WASMx8rcl#&5 zIR#vA?X5VM1P$G}5H)uhOq0}}QJF1=9cZCidHEYxgZ;%(l6*wWTmyZrCR4Y9i&- zOlAWMT3a8Lc=5? z^fT9hrg?FvoVPt)R9ThDKU{!4CZ>Y~V@%7K!IrGxwWhSgmDFIC>@2$clCA2P0J&ee zZ(z34WQ)@FTpp-de9n0wbxJOlvFD_mD?`)N-cMJ34nM+Sk;`G*2oQdZjcz8`$p3hH zcXI@&a1J_!YkDQ;5bxT#Bbw$%-@fOnz!hwLHB7^EdSXISy!(#(&y@9@Ge7uNsB1)RMe}*jfvhFP2T~WsGY)?<@Rd1f6cSElUwnt3d5z# zjUr>#=C{)MXsVNDpAUGX8~bd9nqNy7VR6h`c=-6v0hxE>E=(^Q#s!0ZHQ;709h(-y z8poFpPusTk;{CDjSn=2f1DhL)d|)GtrxxMe#$_arUPXkgy(aS>*N zQQb$Q*KuA9XYZ6Rw0UqHY)#MWr)RL^Y9A?Cpjav{srs-fzsiyKX+po}bjn^Y^9=u0 z-NA)d+iN|g(1K}5xj8GZLv>zIP;m5=&AR}usqM>yOH;~c-I<3b2&{Pyie7m&dlg*M zH*FH=iO325;`WV&yxGezAZzyUhr+eyG_$8|W>j3K+gd-EOPOz|o%d0=A+z=V4%JM@ z@ZQB`>D&p;1ODdI6lDGquejQ6W(h`0(;F#1<{iWR(+xx8dcodE@rwRmtq^w0x2L*@ zI32lTQ3nE1n?_evio(8X`p7lgyi#>C?FQQwW|t!lvhRw1S?+8)aFkDH&y-YeN~e7> zwab-kl@=J>FFmWj2|cVb<1di%AL$eB5m-J3vgsmNc8&-646*tmg_< z@ldhOJZ7!j>BK`FLxG=CgGNSFH`<%>ML48%4EJO?n}=PqIan~uO?6dAR@wPLr|4Sqv46P>Yh8#a@RY58CN%22I4-u?Rch7L1(igYXV{7Z+b6f z%DIto+f}U%_AkZ~hjh>jK7QYO(#V1c3i7uKf`7)zio*XLIM!zhJ<@N{;5D={VSk)Y zatrUmH}a2}fU-LIY(oIxI{D<1q{qw-ifGkrgKQ10{$j(>q7qJg|=Z<(79`*xmu-#tMx-}N!*gdGb6rzWruWOB2oyoOK zh+TV{TRjs4bZNZqVh18;15!nZ^{Tbp+9Y=LfryOA#j^xgsIL&Vo1`P7wT&tNdLp@iGCVdgY_Rn!f3c`>kHjC)bY_Fy{<|KAg~y zt@6&4kRj_`gnWKAdvf@<<0e?!D_j)GTuTDpv|bviJXgj2#E~=W`7u%Bj}MXV{r=LJ zAF~bQ?_wK^D%ksJdB8kAja^Vn4`6x~{##kqtO4l~Mk@iSS=HTo)D^^iDAy9w%=8%_ zQwX~ycJtHV>S#r>8Q`YNb5~&1MO;`;^F-xlvrBY~SMF{ho(%&4oS%CupI!OFqx1ku zv!J!E=3B<`xdGx+LlpMbhdwH4T5+c}{#c-M1D(Im-X-pLmg1F&R4<krz=CK_An8#8RG>}HqBIO@<%{`=@tmDsjRx{CDs*YjZoZP^Pja@y& zqv}ZK>eNg7&~m*X{XL8390P6LtHb=buy3q6l%;$&juxA5O^0Dm~M8XU! zM_I%;6Q8Xn@jO1X^rf&?cEGi6>6MV;aZw=Di;d50{f691ra(f(145d_u9!=xWmry6^O5CYHx`)Fe`Do@lTC`SOoA;lJ^(0F=O$JR|M}|1N_bDVe_nE0LUj{fVmxW`O2%NtFEt5&{mMs97ELyCb-<=ZA9ezI zg`EbnDqMC4n*|^z-X>jy5jHi^^z zmFiPU5|`dytIj_=i=}U1m#F$K$EBSib7&UsR)e!AE_SkF4Vr2A|LJ8GL6tU!ME3a% z2aP4BLc8=@uT4BxY|%~WS;RUc{Oa=^dFU|g6Z?PO>APTI71-vqtqKO3OT*-0`nv>J zlB*PW=VfsH^RH-E&k7O*4uo?C@g-8P!bYs=yXBZ%Yr(`v&plg?9n-8}Ok9*>Ww&YH*~`+mUsxn> z)bmqzcEpJfqB`wrZN$8X)tT0Y1!skqV&p4dpJ%$S$tDu}Rec^U5_UWVpqUr+f!-Y2^M|k0MB{$3$-{k5e*`yad>B zi(fOo8P{VeIA3T|W;^i_<6PBLB1qI!l7Ievcoce61YpMZy@(*~Yc+jvj!>d}jgeAV zCw^*P_VM0RwLMk3|$f! z#qObf$g3wuUJniz>I8*lJ9k!iM0GnRatG50l7N{$!zj8Iu-wS|?=D5i9kS73auL;I zqiBlNXGa)GVtPiDp^Y@W#M$#FMu#71#1+CLN}Y|PHtIi15E^-Kn}NhgfAjA@Peuu% zz9f1hjFwMVE8bjWa)8n+oq(Pt8q)d&jdjEU!J`dCNNG=>N7;$vJ- zQ2g!h!>jz_4FSSHBf|rH3t83c^Ys|IgRCm)?x+ZoJX0jz=Xcw0QFz3tRsmFZF#}1n z^d)aS=I$MiKc0VgDX7TTj!I7-UW7pFk*zs(3O;PSir?fZ29kp05frM3Q5iOc{(reC z67ZAf#A<8*vLebTSUuFMNWKVCm`&mu4M^8dFNf{k@06I@ z%$X}?Kd~50Q-$blGD>>^WP7~-zjb>A>Bz{+a*Sca_QOUOK{k2`@z(#Rp(-CUrbamv=6+HMi58Z$HEK{n4Cb#)vEczl( zlSsqWfdxJy*YT78ZYcFMVVzE%hI8DcM+fn+V=wOsCFGghqyOJL)BkpT{=dix(*EC! z6_an%pn@PO`3T*|FaC&@=KC`o*ZhRY+vH3hK{~a32QR^Ypc92^60oB8+*lY)dC-OH zCrq#AS9W|cdMil|%bz0c?@$_jg(j@V3|6VkccS_}KJ8(+?B9PM8RZ0Ih?daHHKrW} z=O-_o8IaYz!~ibtmxU?anNCna%uNXU+ytqD-6TWfk2p;RndYrDHE#GpSlC~36%E9B zn%GnKc!`p=X~LX1^qxEM4D2+aY7)in4H%C7dm!UcK%jmIRuA=9I>UpJ|HC-X2$@PP z>mlT$FcDhy|6!twfE041Qw#=u){+)G^7fWLxaWE~B)Mj$b$5FU6392XiLT#9yE3JErvEhcFnqg<*Fr9(2#^`Q2 z#fbZ_?FlZk^~bjEk^OEDlb)N(Du4?-Kyxah)6vq`g`*;*eW&! z^Gx-mVmn`J71%!uWQ?T2-h9EoR|o705MO)6AoHmQGmvb4hngr`8B+=ny$I%(mWyUk zZb+6}7@i|2xI&qdN9_eWy24fM(|=#(B>zxt>PHfpF#i$)j+pB!qQhCLSU_qO__uyd zN3HSX#fSS89=+J=I(W;km7P@KvzT)e`;!qOSV~BANx;U!{>8vag?}k;G930yxA}#$1fLf&-{rTmv#@U~d=hxcLj7r0 zPkxV?g79I-j}!+;RrcpL`IR4m**T}vZW(v(#R9uJySjEL2lYW+A>Xi+tp1=*~iIIW#DZc*mf=00Hd&YEi28emwtt7@;Y!s6vx>*dR_tIG?Z5d~dz%oMFsr_IB z_xYexX)H%Sy55S9<^?Ci)FZNGtj2RkT38xo4fq4mzn*>M9K~p+Ge67^baj4A9eIK} zn}J+Gc6!ViGcPlWjr@%i_DIS6kKY^FbByTZ%d>yB&Rkl*FCkP}nsScPWNarlH`lPx za*i5Vmn(cBcnO8e>xyrytA8Ze&#lC#g!cALA6D~wM6iXeJj2^svdYF%kKu5l_|IX` ztPpQl(OOTV^ThoouO3(Et+)DvKk`+P$Vv;9zJ!8G$1vO-+}&Td>{lf|i92AA3RRbUOba?Fdr!dGTT{2u?hI4Nhhi_{Eh6 z0hG~DU#A~K&3L}|`0k3{Y(GN0xW+uSa<@3xWbCIZL~9z+^@c+g9=@NN3*;$zTP4Z4bmuv^`aT9-4WAJ* z@`E2>o*p<1Z@llX*(T>otOFM6N@v+o4C|$yUUBEl zmd8c&(*%cvt{02fg8F9OE_<3O6H3~QhfcxAlKu}Ls}SE4UzU=kq0kH$7(Fg>uSjjj z?8YB&f0)`}qfG@_edPI!pYDA0x5p$j3h0@d&OR*Y%O*Niv7hMF-P(S)QBZORZz1SWJzLVu4cy9}bYhn@W&Ac@$L40%cMoziDIHkRimHY5|M=)d7c+;HZG(HMnBKmt9 zK4%^j4F5PtjDOq-EE6P5f>bOWY6Pa&J-hMc#Vs#8!$qns#lG&L`V~$YpRmkMv$03+81jr=P zU*WbGeLt#wu||42_aXCR;%m!S>^|?WFY@Ink}GiZ4Cgmt7VyK>DNmN7gV0bA(e$R% zBWJvw#>n!{Nn%IBe#ZNNYJ*q%PfI2&C%ipRNKgin}TKL%@ zsPo!5(8U}oY1vyMWOY5`2F|73GT;+?Q~%^+AKttRlyeKD$1#ekE9VFYw0-mE`#1PU zF(;$5_d~X_>V?SMBsgTjJ&H}yn!Qwy5n*LrSB3@PIx>n?Q0O*Gu0aMY2o8A(ke{+J znI_R_@C13DUTsxn8(xwzZDm030z<+4gfSIB49?8smVp2SmSJP|yrvS@=(mzIJU7hX z;3JNO*@kB~hT@@#N*BV9e> zHv!*a;jd}r1k#|m*h0AgVA>^sXUh!0sA2^1aYMixr7+fICL)+M1dj3MW4PknwGn{1 zxcd%_am%h)@X+l7$`D|U8BAtIj!O7_t4(^cL_#2WoAcjUQOeT|X)jcGiQ$5kKi5A59U-!feeFZO;xlc?yN;vt<9x*avXA0w zgp%vmt{s5o9ppPgtSGc@Hbwz5VYn7i_k}pdjsU9Fms-@DEtdgSBU-uDm7B`bi5qMQ zoRA!W$+ahbDI9$mF^BLRXe52`2Eg1s$(A#c2xwHYUxm=Z%MloQKZ@xywrl@1+E+52 zjQR$@Roco)`mr#4OZVJk+EnKxd0S5FL)s`c1|&t*QcvMOB!#a!j7(emUF*uOmWLwX z!9UfCU?mthtz}8e19mH>CFu&A^Yj=+14GnmRz@@}GCZyWOz1rXOpG(;y)E!utq<&&+ouYy{EA_uzxYqV9E` zHL)!{ha{>&_eK*2BWaX(j%0DTH$Pl(-mdR_h0{NIzfT3aSU)eo4?I1e>IVU?!t37r zgQwP4&hnjzCmY3xrYeB|DtU5_P!$r!nb=bHM0 zM9Y=Lp1Uh8XiR~b1Q9`Jq}@RVAqWg9a>ya63{=5u5t#D?U$wtQh`0qJh~Av19zl}1 zUMDV@um2LCyM~(0u8;WT>#l(Oi=o2eLYM4m*VodL0hh-eTB#1o|md8MzIu9SEtV@*ZrDODP=SF)c5@? zVsX;vkUxGA8SV1Axu{a!3Tp{oFC2k^LfZ{9^&7idWDCRCqEi3#iXJ?|d%`2x)r2t8xxmX-VUakPo^Xa9W^%Q^r zB!z1^f#zavv}Z8VM|oFEz8OKTEwWet2t1j^ebWiX72fmqL+!IsQBetbMMXskHs)+o zJ?*MG*7D-?-`u*2KUlZw#VN6wXBM|~tQNmPn{GM&w!=n{rXzm`L_y9gi9Vsaa~kPq z{`Hbr^4T2@RVTJC&F8c_c5R3 zKA-y9V8cta=JuFmAbH@HCQwMY8%fB@o~Ju!`5=*fCNrRaDxet*z(mXf=8HVSx7t!R z5Nn(}_vYIe6wB*KCu96BUS?60{56r}LN5`}+f-W}w4G@40Mn5)bTAksp=DM$TSx;Q zE&BoI*OW98TD)-QK52T~#4@D>p(1oV9Ly!H{o=I0i#5E@*;4M3X(yV-H_3BEc{pHQu4p`nROCJ`waSSbmL2&x&qwSyEv^4g z`RRKI<=hCCXR9^*_5#r*X^uX4Fq8yvblJmRo%-6(y*wRL5Ny$@A?!kI+nz8wiORe( zt917LYb!ZERU*4o25>Zc{(*HDNM5~B<#Gzst|_!f(G?%TAN^c(c54(e2(51La$Hgu z21b+82c#Fu#kyCR^JFf)#2XHlQct%WcTl!sp*bHsD~YYHu71$9Xka^ti@`76bv`cA ziMXiLshWNYC7(Kz7UUeRw3t@_cfCVQqr;zg{#pv}HeNVl zYY;n~C5Yw<-)DKN7QAxl5S)D}VY#W!BXuSDjST0I1{rHp#;cy?NqvSIJrOs~t*b01v+Id>g-q`uWf2J=Lr~11GO|T~9CPBP#IUP@~R1NUp#dHT}Z} zLaVlCxi*MDz9}}gzbW-3!d&1SK0fj2%%0GBnyFIzpuoW$bm!+_5h@%uNcMgv*Ua_Po)1S8@I9*DEpn5|OW@q}woKJ>*>Y@|Cup^81jd$bE6T$X z09tOA$pQWh0%Q+9WdJb$0cM0qrp89*>HeDUHUe+HSyqez73sSOPCL#Yp&&Jz{OzpwfKIKO#F&~{+c~#n6C1_5<&^eTwo?KU6+4rSoIv@?iS6@e7lS8 zERa+xQk~TFGLk!0s4)hJf$>Xs!HZqe$U#A)-l?N3iG z1bT$9d*c>AS8hK#<%O57fL~O`(Do`lvP6}<%5r~ zYufvFGA!u^z)x}nj$hD9@!%B<(88ovW?ZLV)W|rt0FG{P;$^6~%oIHdK*sSSkaS&I z@A$0kBjb`-6+!JJDzmXV%CB`^zH{&JvQFQ#d#vpr^YaoJDz*;JujN7JjXIPJXi>xDu*BaWoF9c++v*tGw|yoSC`EV0nh2o-uo;KVC} z1|h!f2m{QPvNA&PK4kn-2_eXAiNo;VG4Dis1r;@d#x3#d>efpbz%o;3rUm<#f)$m? z>?_>Xn)2{N@p8LmA|3c4AT+M;v}E23^g#1JmBg z8{aWiezPA+WZ1Zez*UNB$K=wmMoFz|G|zu36C^G?UgIMRRila2&Vj117w%WzBt>6%=o;~*tpJ35T@B!dwb z%3DRZy0B%^6KUj7{3X}!_WORBe8%dWJ$irBOaIA2w&X6p;dQ)4-@sFZC+X{Kj)3Q7 z##Xh~p*k3m%tw-FqQbV%d>_llL6Mx&BY_JZX-Sd&=&D*^$8|)mxU^6rgsP-)l1{_a z8sb<603gdf``0|CUW7XbDcmB0$(h}#&KX?&E8p8&N3C`ul@taZcE>6Z*^YkQLJA&v z)-G?=&y}LQ#L2dAB<@i(hTec;r`=$bXWCL-DQgeqmVi}5Z*{}A24N%N^#Y6$6@K>8 z$o(ygDmy(?Ajau6Q{IOvPe+fDB>6TcI8=Nu;N8VWe6ZW*ttZe2{9EtT@^j-NTnF45 z!c^(yUTy8zQmIPbRT=i_6K!O{VUMYFhu6$N|1sC%hkZ^y&G7|%OOnkR)vDfb-;c88 zORqhtpQu_zR1g`Vjmh?(TQq-msCF1R&dHlw=xUhRls zzpQoX&6V|It1AmM7*3$P9~HGAzfoOw(Gn_GZ1tR{P-@QIsJD`H%IEAfP~DG4N2-HE zu4le2ZV~Y5-Reg{#O|UoLQ~+dGYPMV3`S1K;&taH#xvHF&dA$T+B&rppXtBHb=Kb7 zJU(xDf9xAs0Bz_vLtX`Odxiq0nsFs57gPv~=j>*J6!t=LD^Xhx%kk9{Ep6^ z_{$|Gt60`iEar_PBkDDCUhv*g?CM2*G&Cn`7Vz&sSV~J+N09tH8+~<$W9;MBOCn98 zGFi7GPke9jU2aZ|jt{v{suo}7gUzRfY`(d>haqSp1LWNy_`3w&{0@VD8sSllV3%kJ zbe}F9FjxD}{FY2a4p#LQZGEIcF#-8bxRFB6>@p-@MN%P&j@k!3h2#AbsZxs^P;_PHJqx)tZBz^-Bmu9 z-f69G@GaHWGuhPClx}-{{(TO*SMr@>(q&AV0&(S6iS=2_BPUuckPdw81?7hR>Mxr; zIMryah64)Eo_OcPHQGEKgP<`tO#vOnzXc5+g3#Cl)MuT`PL{l1i;p#bS5EgwG3gw& zAdDLs1a(+b@i8#6kKLCWMcbp)eq>=|@GWtPC%KuIW8WB1KT%QUPloojNOo?ngc)Bw zsg^pR7seN%|6!7mbA`~a`q923o$+W4G}WwNkc?LOL`SX6%O863f>J%^%iee+sZlgz zC)u^+xP4?#wa=zoK{NAqTt~h=R34}QL*vgI*V1C2;VDTGYESdTUliI)_DP2o_J&@C zdBqpJixYbS+l<0vSPub}QOkxsDRC#@f`xSMZVD{mB{Hf2^5CZze& zlfahZVU!QSrRB{N9|qFqsZe}NL+WF`*gMK;J7h3j*!SbVnl3o7k&e`vlLq^#9L`#? zQ2%suTpX%uR{QmMCK4}k{7~l}R2|Y{#NhkZFQZ1WJkhGoYQu2@IJCgXe94EFaOZQE zc*1B<3|VP^{27jUWae~7{_p^9kxbq06l~E2yzUp4J&7mY<99UMuL&INCZ%LwctSJ&CmA^_c3ze8iRf%p26dk60~SX4_#+ zU?4qgopmvXll@vcSaA+TGfAc~6%D5iUmRh=tM=2!*V6KKYNeOmAQp!dTYER4Oo>l>vaZ{ zDb18of5U#w2-1feE8n3-J@5es|3rWv=?Hk`tTeL#BsN8ruF}ME{-1(H%)#~!Qh2)1 zExHuYw%nNLzbqUZSfyijkqhICEZwsSW?J}LH*vW;9c-_^Y^POkTQ+q$OW{O9_EL~k(odtd=Ijev@~XPc ziCY8WeJ`A4lzw3%NaQ00x2O-Ew~7>+kpBT~VCkUjzU{a@GG(uX-@>ufJ=+z)FpBkg z<;Z|igRn>DLtsl0G#rO1h}mDu_a&ox(yGoZ8<~ugqvJ(xGRG!-|AEliIkXinpWSipVy;o@mr5i^IV?^ zKs%JV3gB|B8=njOVwivEbk^z$^-mhobETCC(z2=0DB3a_PT0@Or;w|8Fxe=YYUf%b zjND59!xZc9BRBt}=_8+4MKVrm)>x1ioTScXCs!EZ>43(AWiY=QVX}#F6wMQG;hr)* zs{4R4q3u@9I2jqLQuCaO!DKr6Vgjs{;a>yJ-v^+|xp4if8ogo7a4Z#;f}i+Mw<}9H z0^btvT#r#&he_pO%50txe2WU^`6*~S<@|Nkcbj?$#wOGPHfX@-Z(n%z&cK6d5ZKb* z>0e=hS?3@u>fCV-lpM7Y+6v+V9XkGEf4fAu7vra5g*QaCXhP9b02gHxG@q&`$ygax zo`6Y*&s~^W&KWVo0H{U>o=<^sG>E!W4cR37)-DGhQim6Ql#+P?b!s;XBI}1uHG`v7 z))}9gV=%4aWA@s8w?giIasBW(mwq#4M2etNoTQx*GLg5s25~ryv4DK{-Z8>+8A}Vx z$b1E3iR5X^F@Jlz$+vK%+#6Gst+>f&sh|YXH~FvuSq7SH2mTh7X7vF4^++4COviH_ zJt2h_i2b0D0LSRSzUR%V=}<`2qTd9wjAHZDe_rBR+W-)j)w8^>KQ1$pv_iBQ8IFa7 ztWhwK_6THT3Pb$nU3(34>OV4P76a+qSHaNhnYS(qWyPgT?m^Z#6xNt(@AnBlz1@$$ z`_xAKj&Gy4wgIDdLd)m|^3+Fb-cVB?RNmdbsK;%WS>UL|ZndkzfRr)uVvW2(1nI_& zIOY5fsW;4>-+n+!hDEM{MW&#*xx#QP5;+fVEyM5<*^I>o8aqLN+j@Rfv|z=cp2TEz znUazg+*u(Pkbj$cOACA9e9$zs^pT`v#U)&iIaQ#U{__@R2hGflNk3$?YK7#yQ1U`Q z>VxVvI{1dp+_MC>Zfeta8AK(3wS8w|?e&AIgC_4d3bkkVBw#~stQv%o$jQh^B%dQM z5B{lXF_%I!;BQK8H}8@9xAxB1Y+l*6^yh8i@o zhZC6WUQ$0lu8g`<^PJIcR1tn`=j;WA%E~hZ-omvQKR@N~496am)nXofe0ZO31RWyD z5>00Gd@o}jElVwiLB>VY+nt)kO+iB7gf}jv-#=pYhKyz(%33}B{>GVF%o^SC`K9IM zuYGT+N#o<>CsotWqo_%0?c##scS&SF3{Io0u5q5L5jLPEsr;@ zBX6335;#E}$?@l#zWS#(e|Ye>q6m6izk;3 zAhYE+l!?bsH)&&Qcu(A;s! zKRALW6Zz)_jJWjo1*{P!ow1huoTzC9k|b`0H=Es&p4q_lhhon(pHrg#T!)Q+S_dOV zvJve0nawZojcej*HONFS-k~-Mqa8t0C&{uZ$elYL^Wqsvs)aWv5EUn+D~@J-mF|kV zx;e>VdU~sxQ3+Si>X>(T4m!~9c%#t#(#!L@kqyWPXYO^SM0p{rdY82ITf7#d zY;ozIzERIX{R>A*)qN9_6a$K#Zmu6XfG$*~p+>Rrp0H_ra`tlm5BXU<{@`M%ce2qq z_IS(BvvgmnADM%?j5GAJ*7y+N2e4c&KE(HtPzj8_!Udp_7RCGmMyWUS38rekcD{8Z z;2J7m9@x-t0kQ!L+F&B8jA6f_`o~w3u@P#~vkRZpEW!Nj)=|SRw%jjd$f6^EPsK~< zIjWJOia+pGOZYH(-iiH3tXPEal6W15jOKpNh+fc~>!JHexmg-w^f7k&n(b0c&e1#R zoE-I~69LSUS}k54#s=wP*)M}XEL%?6I_irSM%sd0lMi&(A01c*qh`+}r()x0pKMvL zn&Au93`E#Zy?>m|^KG2RnfgZfM-F`}EV|4{)ToWH zrHdH70t(cTASckl&+YrjeKh^zdTnA;(T*X{;Ee8FdH*NP}(}Lt0<Pg4CNmJ6Lgv*TTTIvP zAAPp8vXToE6dH7&u}8CX)z@50?M?oEiv{R0yFt4y6&*BR)U&m^S}^Wg{72-rHNCe? z9p&xIZ9o-%%j@Z_jyIdR2dTDepuA!C`Qu}4BuBnRzndDn#N<0JV%htE^_Al^8&#+% zP1Z%VmuMRY>a6RAB?0ZJlETcV0VPvSIcI?euVvwYN0mwM9!a;HS-I%Yz~!^LSOF?a z?_Td*xoZ4*Q6uFPGt=7@{kjiM85_Sx!g&_vgF(@tBo%CLig}z6-2)}jfXu$d{08p+ z;*NV^9QRc|K)uly>E0hD4r;KYh;!rG#tw#}to^M^#B`>0Z3UWcB@4oYb+7vd%BedH%|*^UR8> z28K@xCpE{&|Y;nJ#ak}D=){H=GCa3vj??9^W3#> z_+4dTWm2OxPs}DV$f6tB7{*}HHnpUIGLNx0AB0kUU#2>UVY zTDPD1$C`Zl4;s45DeR@A)Ka?vA}4VFp}1742=%)5LqlmNdpyViRUmZ-0t5qbHg1@j zMDC~gw}WO-JV$=$H{)3G2|b~M_8}%Mz9~5m9e_k3$dspE6#RY)WJJCVVtM^r5CGcBHz$%zZPS8^4`^8)_^ReHU4o@Oz5JDb zC!P%H#F`>q{3`RngV;Hn3}0DL4Dn7}WvS^OT9?5NYY)V{(Z@}~LA|u+Q6s|oa|%yu zq)<=zqi{+y#(fjxRrHw)N-!0mJQEu7Z@rQUEd@2{pd+=^!w~r`&tbzhoU^d3A)*IU zd_p20?y=&xfKq--jAr?r!p~tiHnYrtrYHfaRM=%7?39T0d*{PV za+T`;EuB9V3#i%aS6?dT+DQ|}nQo9b`y|7Rj&h4x8M0~STic8C2#5aQG^1@$pTL0Q?8>@OisxfXiW>C=hbPr@3Mo-ThU{&%*kBXh zUZe0k@~rYHpWS}QO@7op?nJA4naaz<(9A6iojZNs^)pl6mR$)!Lgwh_&-a!r56@n+ zZeOWQy{0XkRJYvNn07ML{4tAuE#U2Fc8jGgzo#-`aW~jaXXBfdC=nIOGCOD+U7J2L}LF` zyTxAKGJ|cXmz5g0tXTr$l;w7bY2I@pA3i=d1yj@kkj|L_ZN8pTiUVg_6#<}iA&^_AOnnNth% zP~p)h*&h`te-;tG^3Sf_qoOPjNY@wbE=;s3)uz^(TQwAF09wGfU=J$Plk(lx;jzId z;-rF)TcGvSXTe}NJ}QLX)a*I#=C~Rp@J8rm&sYBdS?}#G>Oc=f&aVHe1C3{Smi3FZ zoka}R=Ha@1zGYaiQ+2Qcq9!MJJO8xQl}9semOC?s{cc0S+w(N0{c>ZGl9f@_$~Ca- z7d8c>-rcOn2D$`1z|$`y7}Ahv%%9DMUA?dEyA zjvgT|U4wCBPM+`mEKbUTY^o`aS_Aa>qzFHeLf&+gfB)2LTC(tIWmF`dCn778oSzu* za^##gwVB`eQ*ow-0Ypwh_E!6=L^GE7HqDwD_A7_3Ib;N9ZFo)?1#csCT>^DrR4NJb z!Su^%=W_L%8H;NHFupqK7z{&XxgA9aR?ff&_kmH+O9fC;tcp?}bXcuQR-ZwPy^+Ma zvQ0Y+^+Q#Xf=|vvP6r)JhOhJBz`g(q3$6#wEQLH|WnbT>m0f`Ov^<+OX>9eo31Cb5 zGgpf~$@DvR43$J7!4t$c(h3LbbEEKso1p~iSgCXW&>}P@&M^m4iY^rAIc^Yo#7@D znZ|ufVa8~wCw=Q~^?+pNM%mD8=>)^q0`8g!(t{^S%iG*vg!bSb?H!A=za&pjX;7SP z>vg!@^tIH36ynTpspaqfUuHec&6->(U*0+q$k8)($SjD)h%3Y1@N30e{9!o|-X)Ay z$uw3Q(!RV`ijg^&a=YpxQ$xnvi(fbm*D?u;S-{sT(*U){(6 z^=_JlLdrv$By*{!u`#CC)H~>ka>^z+6}r|oAZ@PCG7MlyJLWAOC(tPG7TH?{0BKwi z(KQZpTs*(sENoUgtsBBf(o~YX`P~lNG`hB&RaYHEXw%@)_J1%x-6a3PJj4AksY9W( z<1M|_>_WYhlj)-EYg;|@7m@=%b^xpJ+QtEA^mA(vDE20ZJmM@|Fy>ZkgPUn?7$2~z z$4JxCA)C|+HYxiiD;a%9DCIFz3dS`l28A;D!8lGo)~X`}>ey7aANRj7w0=DjChk!l-QZjwlQo{PDi z8A8FSo#iQ7)Om@#`h-}b@-zOO2Rhq%xRaw8Blpjng+2n%v$W26&W=m_y#r3t_2y9Q z6Vtm}6O@9=hlwyK9pYx;v6K{A*ap_T&sMv(j^(Oa$8gck)bsAu`;UGc0y(;+5L8MYVivG||Gl82R@#fl;& zq%I%?Z6eOP9;V-D7I!JZ7C8y1PW=qro3T8wfcamJpG4RbPb{4 zaYoBQrnOAH#4h(fUD1o1{%IlkSGBJ%mOjgS;z({5d!kPBy(p`dU%}H;!dXLG;O_OL zyKhaK^>}YR5+G%cgxI*C_8-pD(IiE)O)n+JbrDBXBX0Qo+=b>xnI2!Q+a?TkxocWY z;*Pf`*o}8lUyPdVcjyJANR_|XQwzd@`%KM}uIk;(o}Z7@2_8K;RFoLOwq5T@Ya;}b zLrpHg&&b?pni!LsqzV#m9oK8WLexf|FE3$HCF7$xNR9l7}C zE@*5MHkdNM6H0E1dqmZJ7gb3l z&M}fXm-4i7`lx}+K!1X4cj?Z7I>c4>PoEgFY0EifV`l&9D%$_`m4Mv_^bhqs0TcB4 z@%5yOcs#1%VlaiYdR*kv!M^S_xz?)S9eyprL5g@p)En;&o?XLGj2a@R?OTq0?iyTw z&#F=lhg3{5lsm9RG`BhG>a3kxtVcC9F$0;i?xjZKs(Ds|FC@;|+{HY)-2zY707H?; zGf(8)<8nS@tsR$v&0G(t(i_zwzRc^0`^+@A8|rm0$Htv9P2$svYWH_)PZlqXSB(DB zd0;$pTiV^}5pmU}NBzz5P|YA7nLPc$>|VB+UCnPY?Cw>5-2g(Z-c+ZbE?co1mi$Rv z9m%{>Zbwv-P!;EQ1pdQIH zQ;Xi&Loy)5%`6Ld31Rv<#?|oFV8XL!t@gE1s#QSw%A1%;J6(q_j^s*)v?eL+Km#O% zqozo}K2uh=2!P$!3V;DFN_IJ5LSWVVvn=R@RK+P zLpjyxOJVO?ZaxcJ$!Qn?UpW=+uJ`?-fkzS`wUqXp0ESOGH{rd{RCpNH%VrRK+U8Fo z{FqFLZdbj;<`*QU!Pc-we|2u1H!=CPzs1{KVzgqMt*fJ+QgX~vCKFFDc5mQiBaO7< zMfaChDc2CP_l>SJwP^Qxed5LQ&li-Od5h8}AIY5hY;Q>9>Buwr0_2Z*fhns$$k#1t zN?n_nAv6h?rO0(0Erxt)bmHm1>tn4R!5u2-?}sxK;@Y2dm`QaUNS*7HT&Zj@9u?;F zqfgP-kaX8Oktr?yLqIo|dtwDBvu$c3j9!6yRxi7SEpzf+Bui|!W7A{xGU{Qyl6P0r zv{r?KnJ(1ZD1^ZE{MeCp?&mVpy4zE1bw}E0jPy^8iAF0vq$kh6G zKjpeP6wYV;IpGk=k?&m2wH*Jv<3UxlZ!TsZ(+=qHAF19`bnLo?)t=i@e)dj-i4X+6 z0KWBtB~Sqc!BCv}x%)2%X?Rx^hstzF$v|{nzM$gBP;V*lV<{xyYblt0!J)$C;70rG zRK3hM_Zr8<`z*gcNIxE{?|Y8l-J||&+D7t?agqM96!CpxyRt zlg3v7$2F2uPq8_(rKPz%=bP>~zN+>oBS|R7M4;k%da7IY4&ag6vi5Uy?ewV$JE9OU zYnAx9kWs+?*ZXf8ent{M4A9SgvkS1E>%QL_UicgB`6`rW=DPqx3K0qG&dlU}(>X&j zPzm#RZ%$tN=rDph%Z$?Wu0C*MhjA6#cAHFKIe+v8L|xCJ(;_QPe?-0 zjP|nfy+g+4BGZ!-Hs2kt6T~wmshqUEg-E8@-D zRoB59)0<*{Lub`EO~rs(L~c_=!B09Sr1iDR++A_bk3pgj1Lj!|p+Jy%>oLaX#9QgtJ zB`SKSTi8($d~7h`6dWi-5ic_F+qUM)gLCH^8xo>6A-J>SGV9i~lFbpz-W25WbDsmE z%R*;cE>6K`3!HaiKZsavq$)zJ)<{zn9X|@GT3|bDe1~JG zY#ec^NwmvXr|l2l5<(l*@(&PyUE-zOIU9*i z5NdTABJL-dn|9G?1;xE zv!|gmC25`}b4{7k>u&*1A_ox8 z=srEYVv*~U=`T-{mzJ)Jvr~4M4Vv4kjNBw1ziBnadTn#)O(SPW$EUF}q#9LgKde?k zlVX*rR&()-$5!GCr|eIy1kDi|`I5_RREp=``GCLHo`w6;YtKXbswIoXo$C7W0}}V%*EHuHNH^ma-I?jF z_2QcHdEOhNPtT3K{mg%;W>jC1#7N#aHY5hUL3|*%gtg4$2^?5*;ou`%VYq~qTEvnI z7>;Yq)8S!7G6l7n3oRNeO4AV4t+;#8kB_lrEV;Y-n(c`lYb35J@@IAj)Q;n*Tv32<(JK zrdg5`I~KDNog^irGj@J$lfN2gdBeV2q3?La?dKv7STep{E0pN=HqSR10iN6|vOSOb z#U`k4-0EC-mn0NPZTfU)V)|<-ivy^<8|^t3f(<2ES4UI(It~2~-&Ev;TPpFOtUEN( zB60eookWR@&E`VJhS9ax!l+~*i?lEd^EAlRb8pSio#1qazd3Ews+LG|1!&%vj-TGv z=J!*8*X?xB(Pm*AtE6) zc?@Sg6ZrAIkS*5CLrHb#tJ190#sy*7^k8(L7IU+Fo@Y>(oRQDo;ca?LFS8bU$GRpA zlRrlo?-}fpJu@}CKlaN}le!-yppE`jv|D~>ZKeGo&a5AXO$6vboD-xihtA_Gan$!p zSQM~$9I4xO+oeVB?>ss5IwB+0ZQV##X=wuiXHUOy@ylr~9EEAIuoY(Apdb8qyNh`Y zN1DEhBo^8>c|b@KtzU<55%)8k=DIZYEN;1pY*)~yDy!lgbFjGQtD2R_YC2Lx^F-K} zEAj2jFXRgV3SUmcAXR-12GOd{@zGvr`J_gZ)&pc$1EyJi*M2>=EsLw1v|;|-&Jcn2 zBltph$)hDel$}2KYD)*pA zeKbbQU4{&d#SZT-PRwn zyW8xU{CX$bszTKp6HGh$q36=&iGww3FbYuKrJ6=M_j;fpqU!aP-4DaLvV)X(7+N}Z zk@IDYSYFDwmrIARzpxsR^?h+HtyPbvx^3_Kke-H7AKlKqwLIe*_nz${0niK zvnJ=a6~k7Abw58%>=*m*FPn32X43}Aa2W=Evr9p0!fFva%k9E>@fVa?P5pGO1sqwL z;iP67vMd1!<3$ITYsD@w55r@T^0BfIN55%Tb>x4Ex|QVfkoBqO6D z546}lf~==^8aVIOx-HWT1Q(m21-eQ1LNA*?JLJmbMb!;MlucHs{YV9U-J7x7nCo80EQPEohTz4c4R zt@ESTEJJeijfgM~D2VomP)x1(wN@-i&GPbB@8tFP917HB=M6T+@~csandQ?Htrn3F zS}=Ruk6*vGK99^{E%PwOI~p2L2Ii5XTQDFQnUO*HWF)F5A2Avct0B10ry6Tb^1vHK zoKmP`BrgnVWnr_927&{Es!6^5|9)8SO4bZ*1K7TO9eKvoz3&z5=n-E@^=c(Fl%4Dca}ce~a+145_Ai>>dS5xu)!@#>ZGYE!u2prW-e28xf0t9j~G z2ogc1qUN;F-6K@g8PbeU_1JwDP!!kov#Afv=`Rp}0PgKFHh%>Y_ha)3Il+oXbeFyl zb=+^KEQ>#bL|Qd-SZjyl?|f9en%i)jy9>Fz}f zN92wc8gKnPKWVqs-dVapx8Kro`=a!fKJW%MpO(m$ncKA>EM9}5c;EeU$in9&KgqUE zLRSMru@^p16L^CW>9DTvs3Ax;&_d~Sp3icyerP`?l(RLS8D2m6?N&#KX^^lwAE1x9 zBMMj2P}k02nD8yvRF5AA0ER3)wd1S+sRN%^H@4&V>%WBj^*>*K2rtYO`bT%V*Oo)+uTYUFwaCHe&b75|H(~)3`+riW6T&Q=9`Ly^NiYsY0c6Xqc z`Ew}3^Tv;pjxRXP00P5aI z9C+I+L?9vohjY+z)PsxROWSdJl>$8RKNs(%-<0<)trkLm2n&$R%`qtkKt<*~RWrWB zG9aK6niguSyp=sad6c)F^Y}!E(xCY!dXRt>X;ev3fc|5QS~+@<$T^IH==?uE<<2Z# zPS#hM3e^txbersiC}>~2@Ssvk7kbjWP0)>Xkl1B&=6OVMY`o#|oS0)50Oc0)1P9BB zZy|7$W;t+C9}ATVaHQS*EV8_Lu9w`HYj0jI9E1Y-J9etA%l$DFikvhGe21gZhHuZl z_kw+HvDykXgyC1gXeFF6>f3x(h_4oc&v}1T=s4zqW_8zoQ@bR9{T~xbj^-Mqc(c(I|JJcU z#tY3HTNlu5a$J~X{?1$=U>{}(uJ;Y5Q^RH}KCGE*jBe_rj=~-{BkZVJ^*FCClkuLp z{u~Lz5wG8x7Q&7738ozQiM9_=JOWvM#Gu6`F%aA9AFK=j9Q<<()P8!kV_OcNjN>;k z{O0x{LKA;A9p=tK>Kqee_t(T~t<_`+dnTTki{=d)Qs^2Cj&y7YpIggvk!P!v^seUu zqfam)?X5U^T)(lwcKOX2-G0Fi3{pOd{~`o&R<)f#cQFnV+HFXD*4=rjiF3C7__f{+pgQV zQwFGS>K~OCRN?yY{q6OMIF}egxO;atgFTsXMe6QgZY($sFF)32j4i*|JL zUAV&fRhx4^6UWHaE5j~OZk}t(R^p*$&a3JXfI`Q-kOziEmufIsnjCTHn*ET0?SrZt z&Ssg0oX5SpAyU$PG|PAD;Fil+Ff{pksLkz>O-Vcd+08Z_yaeNr(-va#)SH{G`|czN zlZ2@95rRwHNr0^;v3xKa-ay!0-xfM27Dq;G7q0n(p0@@Z^{{XyOh7)QdbjCBzr74oUnfB95KGP6`CLPr`S z0!pFdhM-yXt2s#+N^DcM`abL+v0_qvRXkcApu4-az*XWw{t9kzC0x~>&~M>w8_r^1 z1|O**ptj2*LJrV|Kx=z1Otfg5ZfK%6ZS5qBY9i0Rlg~dYDeQOzKEr(zfwkwaBP|5Y+#Oa_Zog406ypLrTvM|4GABKE(HYetgWQ z%N4=IQ=xAOfTiR<;j3i*gwCXrWsvaXT7jiKpcuvRjO0%j^#KGO1ShwrZ6T5wK+t(c zH{onj&c}ztxv*xugp&EW0#_{Z()+qgf+dLNx>`tJ?2dsOl7_ZG&1I<`*LwDRg4LH6}P9so=%g2z}DArgV3S z9QuobTeHd4H4Mn8feu(i+naY4afgqiC7LQZ#{jvIAm*s53?KgKayyO0R0m*PK53(m zs8FFo80*iZfLO%3*VW+yu>24y-N8h}N0I}+4A6f z(SoE2zzqcK$k9GJL@cx60JW-sX4oHUg`wD-YC3`FLe*b%;mrrL`0qj)XT^lXJL$LSEG!ry9f?JVDb2HZaFj%h-PvR3{lLWX8uTBEsbQmoN{KCe~h1tD4?2r;T%q zf}_W+U~Op-$a=sl)?m@|cR-A9e~XdMWZyYRM53&?fyc=Om3`mg&hy=_MeF9yJ{7C{)^}Hkm>kkIwz|AI=A6q@#xnS?}87UHI&(1b97*z zQ+TO!vX1rYYT&6fRg=DWS(@omGWx8Qb;?MT+DxY=QbrvZD^3R)(6!}hZ z2JVkuX1^Xx`5JCH9?D2INNec94&tw+qcNbJ;3a+8wt*SOQ?Y}cKtTOq!@))Xy4Ur$ zhdO~`suRRE*vzfDT%p@%4L(bfnt3xps+g#x40!DJO|?IZIRea>>Cc5Qb}(b2|HCgD zqi+0iXyBF3*!;*U8K{EuL@n>rzpqA6QeSPV%!=fuuA$UpZZjy(Y@W>-CN6WyVC5kA zzNk_?PHVbrJ`9v&FBgZTCbXFq)xr4utq}I5XqBsD1jr-dkE{7&WU1BH@zESe6lv6p zsDL#7ZCM4eq-jTDsF>w$CB0zj_vVXaM$`}pIsdv@fX_QDb5u0_K zn$BzgPf5RY;xJ1M@ov_%I5Ny~v1uoAS^?l@1;J(T+p{wxQndxcgUqxjuI~Pe13HhE zc~4NwWuTI#3rB#Eoamto#4{2$4J?Fcy(GC(PC7AZRt#mItz!5n9GqgqN7bg?b4?c( zUGy{sP2eC@P-Xq@{kCpRb;-PQQ@ieKpAv!N%M7>#0gn33{#>wNyY<1_{9!d?wo!*& zzB(sPC1ybv!L(<1o@q~e48|=!r$plf5GV1c3A|)Lsr@RBU5XOCQ^9q0X4F6bc?pXf ziL5v~lLT+lTWUB4Qui(mG%^0e#H8!ONX@^ZiN8M$t$kQ_9@%X(B^;&>{3q|oiMx5$ zUK*_2k5;eLFN@Xp3uON4eTwvajsS1dfCpmtb_24~F75=Xw>kK2qMjQ(5Ir;!*e~QLbVu zh|`#eh8vi0(!piSF5TF_)dOP9vEj17?!yrDcOZ>Ibfa=1W_o`R1Dq}5GNxVVqkP^{IRL9veSIDT|L zZqBSSJG<@jQp^{ruvmI{<||W`8sw9I|1{#Yj1?k$xilw?h4bu0WA9siRem&`$-P{= zBak06x;O5V!)s!V@+y1CJP%x;y>Q+C?gIVsi?AJ$Ok*8;sUehduevVPC_%e*QwJv3 zb_Nv~I3br(Pcd!NouHj{a+P=C^W;6>V9KFWH+Ym+XVh-}NMnLDJP8NJbaECkrpUKb zq2u-7vaRofKXH0r8p0cp4F&KT+t9CY)&`_31AV<3!r3TBis@bMgWMn`|NmZ+RRU(r zbC2dTX?B%kISf!9`sVY6Nm^fOY@-MQ7L9O0sXYJwBK}qxMc7IW|4r^a9Z)}1|30%` zaZbKFtNq&;ZsQKCqn*-;(>8RArh0Q1p(zxpT1tdBgO1Ubw+43);j_u41n;?Tm91eK zoqrt@12fnvxTHBAphd07oAmIIW=HVl}3?s(+tr4bq715TEYe zih5xT=+7a=AHsumq;OsbK0;GeaMmxi=q}|bkUh|Z8(_0A)M2yhg=)V0*7f5hK1MHg zc{3gx_8k!5XLE>1*<0HGy6+EU35tH zTJ2I_oe@0K2nCA&AEEMMU&v7XypI3)9dp4Q{iyKb8>==K(>XSGzaN~@>PahCIm4p3 zq5^6?E_RD7PxxB^uGx3{ImVT3P>1q;0&`=>(JF`5>2!TUGP2^QKJTI5LedoVSJ_#P#AybS^jZx|7;VI z>=3JSN0DlffcDyRLk(Uo?7ug6VQg^Es=)-3PX@$2H3p$Q`uj%*sx#MLFbm+%MA1m#uf-{S zQLnnqpYG?qF-2z0`N^W@82wMge#r;!FGG)>{#LXU?)e}p{ECh4;PB~bpJ&8zC?Dq} zsWkGDjPcPLd`QZm2j(|Xwc$G)%0SfLe|Hv|+Gx?a;IrP-|KT>e<~9cC^LVsmO+uAdG(nPv`Et`EuS#4*UgOXpy$+fd z%W)0$&cp7y|B~?{JE4pM>4rG+NN*(5{~I4C9I0p_r!pyikSmk}^%mV`nz>+?w6dW_9) z%uosp`RPNu&aWyTy&j@($wl$|{^eXQ2}Kr|aUxs>A8a&T0a)q0kfRkmNA*86TA+i6YhR45pnFnY;h|*O)|gKV3>?IK-NUV!HB39);C`(# z=ijSysaKV@_QD4_4 z_tvXYw<}_;1H~3U*-=Y^DKZa{(#C{$Af^0(&qI6mL1MgV*=+ZkNV!JO}77I*m2H3#$I%ITW}9PFa^7@&xewRu05Dn|3>RSbF% zzddWu_ORLHBh8FK1{>N|ds^r4{2CQ1DL2uJ6-M&-2$`xP_VnZr#iCx{i}awdt+@P` zG{p@di_93tP3HFjJeand0lob{aO8wj9~48)SmY0(Q1Wz_M5q?;r2k}ImNPi&l@a@7 zk9_LM)fwuH;CCKG*SrT*$-;c6uz|TUn_Fj`@(CADL9z?s9e-RJ>$LrbcT<^IgBuAq zU+T9c)O<-&xsy*PDrBN!ZGm}If7X32*|w$Rf$&$lz!r>&ihRUfLfSJyeEd{ZBcA&OMW>YGf4fN@89t+pvZ22(~^lpi9v` zX?pu0zBu*1X*GuO_$jvt&WExvJg31iw+oWfd>_BIvZ|1vS*t4#!TS8uNr!cqwVmGm zA$y0s61!oF+x=jI5ABhfjB1p+Ayzmrz3nN-xl?&hYcM?O(vz?&cN!SBz6nEle%M{o zA$-<_)mgps`axRmV8tm+RwJMB`wx<=D_yK74q;G!5O%M;fAU;6l%ErXxh+;J6OpHZqgDHbFTa9U1Ht6`*~Z#4wnG&n!* z&?YfR4ClA*xHE`@N*7b$ft}9T+n>+BY$AZ&fo!$YSi}8AQ0Kso;Y;W8+PCH*0m1Nx7KGAJ9#dqSA(wRW_U~mmF;WNxQ{HMQF8xgb!a*7Q`u;s1Z4^^z(c^t4 zCs*_Q`9MY7lZp^}Fe{#Pn{<=$-GjuQe-%-@?B&<@%u z4fIZ7m(~~K^fw*NNhODYjlyuv`+>%2j4Xzta#OUKtA-Gm@1tt8GNKs$>DOU2r#3Fa zM`5qJZ+XEf?J`&R?b*Lr{T`Mrse zfS&Bzg)GbAJ2`;>YclfN`%H5K#}!Ob3U0td-P(WesKQ;>I$Zkv!c7*%6b#A~vov>j zs9P;PStgFKywU*hVlGiBnRYstJa4l-?qKoG$-VW3{TT`wi{bboi(+Iog?C2 z;*^jlHa?4(O|IYXfosMf5452MueCFL?G}tUiuX%A1&sXDV0!ep3U24qt&dZ9@ZpCR z*qwR0|2zYGj=&%Wnfh}8C7A}4jE7@hrN=Mhyd7O@Bgr$%ofmhn+&WRgw=heWe}X!P zTY$83xfbEwmx2)KeZl^WFwhyHqay2}!Gw%8(Ri6Tr4$R)jg{#6rGg?`77%Ptj)UbS z2-W*<0;vZ&1CMQ!-1HUJ(qRm3qzCZ!yv0B7X_vvw9j@5WK0Fy#s5d17vB8xf`s4Lt zNdS=g=D9!XqLSX6FHDPl5%WcH>Qo=7!%%`u&jUrvPkk`$gb%gN36M#-99K&`oe*Jv zG9p!14x2>_(slUxF6%kiDO~7Z0vlaMG7N$HoN(@vuo~2(vd%n((wCb<2z@uU#(@yD z{*}t5vnME|h4Q++KA!;v?Wt_`(EN(@N~DYLyB8Jn4a|);ZUcbsz79FVL)o$P`#s;x zUF5IEFp-ErEFl#+4oJV-U4wk2;?pc|0A$YLzz48#13Er(>$p2uq35U1 zV*<^v`EQ_jREL*^$Y36+j{U24m%vZzD1Dn)-yA-L%pSSJ4)VwZNymrfK(J6*%^P2v z7Ol`V1;dw5`_6nv#<`}0ne|+enIPCO-g{ zTT7ZieZec0n29CJhUF)-f}jUA0hQ3iki1Fv1WtAufd5kt>32!TYpf#1#~tqguSN|5 z3Y*?0?iC1p0BaUG?ehd=c*gwFUA3}X$Hw0tYm|ET{Nj0-t?@7$^zM$p zC&~Tlh07R&!muEzghtnICJ`tT{zt0MIpb=Hq=%vYZPymI_;d<e z2n|e5oJFw%iBsV`*@v|J5mo!~|r#ZBZ_P zaY0vjMd$uUMXNKwIX*7f)6JqZ@7f@eS%PpEOc_VeIzFhBrkmmP%X=PTxtPjc8hN~{ zUT@6`fxPqjOcrd}wUgX#!9MdJg*Ls{+H0D}D>y#909FQtTo`0)b$;{x@;h{3G9TTe zS*vzwGC)#3L%MFQg9z9DL%ZO2=n&XK2V%`zaR&}ctBw(OUcJ<+Sin`C`{|C2gAo|& zXMdBPiNsW&RG4S<1cCG%mdHRUeju|5 zg-l{M9Iqj`eGUWux=~$4tLU-bRPmPaUsW(XS=9e74a4pJ?37(ew0CM{29KIgGd=R%r6y0q=TQn9dFZH(N#VQ)h%d-#FFpru5dQ z%r!Y8Lm98*5*4=dJe%FF8fLEou3~p`%d)pe?~JBAAzPS=A^F;mnFUxh@wyybeh;$7 z1R2P?UWsES7u8QwZ|5G^3&38mHbcZ;!&X;6?(1FZu$p0C-0bS8`t_~^rWAW&lzx5L zP#)+^?f^~8Cng@M>`?pg6j=4}k=J+?rpAK0;c&ahI>A71)>GU&&J|bQQrx%{9trNS zvl0lE7arnacyhB0EmCp*9wYU}f%NdE<36@ykAs1uD_#ja#hx{b_8e7+NNsg?LPr-b zu0f3sM|!a6;opq_CvjQ0Om>el_^tWFgOd(~%RN7oDku;P1#9LP5H4=^yl1zXl&EYh z2KMcjs!po@BbvIKX?feGD;D&MA;Q^cJ)Z3k6C+C-4kq@etrOmiAoJ9TwBt_A7z#4r zKV40;dvWKC13gvm&h>CbE9R_=Z+j5zti-nZ_#C;yOuEC^QT@xj*Ay$13VbJkF#^Ae_b8=sWv#*bQN$5yguo4>i{P>6L zUIr*{X69`>{{0g3%m~c67AB9MY~A@0Mlt*8Rx|UMk$`GOB?2p6HkwLZb%ZCDs)mw< zp4$z?Y~a%I+VR1xTJYBgCd!m{CnxzxU+JOcawfd=?bz3iwkR10d$A>xF52y;f4i&wb)<2$rN5 zSv4Q|ZK(vBG4l&8uaVi;KQbxc**kS;KLVF){P)v@Y&q{}YWOlRnUr50fHd}$ zIDGI@gZ@ie)DMs`q34=wMJtk?ksrh7TKQWdfgy6;F%9o)0j^d3-O>ZxWAkBMH4qO1 zfzf3m?^`$cK5e#33gUC7Q?PuM&eJ4_#$BrtrJYrKe zPv0%5r<9@&pEYs+F_Hz@|MO;nu~7Fqd-|uQJLA4RaN203=pNVuvK)zegn=sb1NgrT zZq|sg!<&~{)9+|Qz8&YppOuz85n@kL z7?OPuh|LYg`qWpwqLZhi1xV3aSPGT{k8)=tzlf5A_VfuDW1Rc+gf<;;HYAl|GUJJ(lVQ z>Eo$5GoHgg%&ci^&l0I29@<;*!jTaa&*5Zs##&2=k97rk1cYBH6w>g5+_KfjhXmlbK_?8_ghLGGY%qRiHJfvvjEWb(J32fMgO_3BsgeAWq4L%+$t^LxtHfbCgiu7 zV)CEb##5Vo4#ifyTy+K=g+F8!s2bl2p|iEDEmR3}pHlfwwfo}EL1gR+FW+10 z`kDj&`rdV#9U>PDWmDLV0ky;zqvi)-KF(okq*9Fh>R;Ynb+F$u1$AM8U_duxCI=>< zfw_4zcjS@(aJJmne(TFE*!=ueaJe4iT}z;OPJ@odToX@8hNMYbis)`J{# zR{!(c@83a5eHNFMK{~Bc|HK_-M^Cl+%x(YijDi!p8l#tvm*N_T8Wnvg#=a5=XWqcjEW0B>>; zRW`#&K6XpX^*LPZO!e3Zz8b=;pxaP5V3VR-h5Z37=k?3` zgBRq=C6Lp%O%W;N=@4<>^GT-}mpPd0v#au4!7d!c{FjfVBZUbixjN<++#+_3wPu#{ zcyvC!XWZvd)C1%C0}m~(YOcU0xMS{|Fs5f!jx0gjq6#eg2BSjnuiV!??goSDZsUg! zf4&tk4H$AK6DBPwxX-SaP1gZ4d++kv`9xUIcjd#KJxIE8ryDAI4flnZ>=tnx- zHTM>(Zp8>?FUlj8gV{r zX1@<%Ybu97n*4w@(SAdAPZQ+4ulf+RxZDOQ;i4~HUA*3L-Pk_^2OZ+GQrLx;@ zcm+l*uOr3MZXl`cMHZGN4Z8B1qui@z0D(Jf$e!m|r~YQ&(QJE=vD_)t{8q;;D9z!6-0P{2gbQ7bjp_c zu&37^^?Vo^l?@yHg=Fx>T@E?luh{rY5-Gq5BvcG3Ic(ukG6dL;EA!SH6< z8sK>%t<3swP_|Nur?>ZBwSD4tYlBGHAkta>=2D<^UW_gUHj!B1+aS-O6O^`3I=)55 zS)U&Y3{pISnEI?cBY+RmiB8NwVESJDjGYcDMqWvZ> zPNxJhjLRiD5b`RQuWqq#eH2RWNiq|UJ$Z){0&k+i_x}wO*+bW6O7)qiFO*TksUK*; zNST{Vjp9IGS^R<1(d+KHboo6S3!-M2O`q-e*e z@Mzv)d~X)a@wl=->UnW0pc`S_+5u1!f&-4_E#0(BBPP zf3KQO=t*-I{7=H>DvGSK(;xY&2e%;zof!1u=iyRW!3xGowVUO(;$(y*b+>b@(b>7W zUyX?gm`(6hc50CuZz_k)CF=Y|%@jL$@k5~kUH*Fb&BZs)67u>JV0rDKKjKX`SqxF? z*5iWRtgrE)ORxFeh*M2Nq3XYcCW{K8;_Y3|b*1EdO{vm$WI5^^57?9BAqTySFF5fh zO^*VGoj<%i%U`0QF>fQvBz@rSUZx{=1G)xY$L_x>GOp1k{cDDCnC6fbYT5tWu@#sg z)lyv^(|6hhV&bOr1o)Q(YsZ-%Ko?i!cWAvK z4;DvlW>>m!ff=?F9nW>~15VUp6#>ct-4^4U3Kr)w$2qctOme1;0eB%zucgoR9 zyYtn3`M}(y(gty9pQua8XOy{BtLcvpkQUH}){Nxjk+)|(z=__r4g1HO9+u-)z_`lU zFy0S%|62ms$kCOa_hcx@>B(Y0MVBb1sJmAbaDQR$31{nc-u%H!u~QTHW!9qM$NRAM zda3uqucBNUWVPp_@>^Ijxbh7ligaQ3vuTdf=X!OzqQwwBB>^l2-I1$ThWr=Z(~2Xj z&S(Tn+MVR#p7Xj4QBD2Mk!v{XVX@mO+Pj$siHl+!j{pG_7b0ro5IAR`gFDyET;Y zVpLR~;M?!FqRSoaDV+6AQMqEA>8i{LzxC_=)N^2m-EI=!G05gR-bg!5a_&YLw8A`z zU%7RiJE3Y5Vb&s{cCh`l>l#D^O>r)Fp;x)R`CAau;Nr;m9n(p^#SRisObiI%us$|G za{sl+;A&>{7Go?n<--iZ)gGSFXs;PlOlr=P{45#X6m_!o$7{h|wdW*GRN?bHv!1lO ze2I2Pb^7}nrcAz2scu9zjmh*NyWadtV7py-e>A0#aU-#&a*HeWNo|Ig8M3MK%4KfR zfPi6l>eH-yq2w`GA0z-H3+fM_Z$~DF7ke=-Im2T}qXHrhDFQ zJf);{5sfUH>+ZmDWvqlTAMiK#P9e(3AmF_0Bo))JQ!uVG{;au=>#MTs8Z+Wwx@YiV z^9Wke$EtO$HcG7PrjCcs!q3eIB}(S2p%$ zu>{J9&zrKmdp&2T)CcPkTg87l`Xg~7dt~1=*mj-m^TpBf2ZP+KBKwyw6F?{+#V+}^ z!c+p)Bwm)2i13R{<-cPxF`^;;N1sZhc21apF=1LKUwO;Mo%APfp~D ztoKCd%w@SN3lUFWrtdq%d}#elieJz1)FuBOPRHCq&paaeMy5A&3J=cKosed19>2I@(^^$f&cj_ma4S^EcxB-O+{RWDz)ozZ@5?0*dhhbygk zP_$l2p5_T5Dd0wS>h{I9u-D;h_3@ZM9 z2ipMi48nhXF0;0vWo4ZkKfV5CEoXM}zVBL#u*@gp7yFvWUXLcTEf=c!6k(Gm%fEEE zj6jjTQS~s}?TiCov-0v_^Wc;e)RX@odv6_8)!MZW6B{Y%6zLF@FbEZ-1w^Do1Zk8O zBqT&)69Os%3Mxt?sB}mQ!X{J{RFD>=6p;=|VYAma7sm0t&v~Ec{l@slH-6(c-an6r zz1F(#d)_mzc};KEotDpf+dJlr3^;o^UtD|D`#LG;i|QD$5wFtDuvedIp;3}sQ;*wL zdc9PGnR8aPZkEB359oV(Jr!4`yIk>+hqc0@)?zT1 z(YagnbDK>#lD5N9V+ZX82ya`#9~fLIJeOlRu2uJLJt*LN{K}L{q%LkxsCPbVVeO&u zq~?9I5i{>8Y?j{`2EP7q(Wdm&h#xz!^wN#HTR;DSyz8Z4RsS(K1c-^YWq)SQ)9X==1(IkwijH9ZJhHV*uQMiIE&LGXed*ASnZ16;==9 z&SxAi6TorQWbI{50VXw+F|FF+o#iT8K$5?%=e^UV^p+e1re)V!ZYd?t`HA}6SZggN ziefK?;VfFv^T#koKRCl}{T!j64_`X_=52LtQRMSW$ek3fj>6iywUr9o%!A!tA5qwg zGc$gOuyRn*#L|+qc?O^%5+>xYT>BUCs1uEF@R|hmry_~WRxm&XE8p=%1?&)mT?qT$yI>#xyE3f|5#-0?v53U*)XEr809|23r zU32dbDGX*_U4{}IYF~k-P)OiVHaMoRqR}s6~3hut_12{lo*rXCiQJ7U|f~Q14_Y;4JSyhJi_0aANr7O z75=`5K5#NtB7F4;`vnyl^M5@hUBQQ|d)( z5?*bJcFkpjE#H2)^J&`dE2rj)qe;75I~^GcsbAw{g+@CW((9=z(VV+|OUWCEtx3nh zYeB>0AVV9&><0&SUZEX9u$8C0Px($UPa78RRKIy5kvjBf^SD82sdCxOF71TQLGGp~ z{XUsd~NyeMuLff?p83H9vbhlk0nt4Jd{w<5>b^<^%<^7V;1KTCP_09F8iVk{&{?5N+dZdlm4oQC*03 z-&apHiq7w~J(9*Gkl)?PFK-zE(`@RrB)SjsP~DLnj~?z?;L*1K9D@#wk;maXIFa>) zR`q(*eQ3t1X1s9q(#JEx&t$hhaP-0NuGv`j3fe}7$04hTzkFxP29+PAmvji73~4%H z=$Mfji0@Z3=DOae?WOIq#sQe2EaN&W)k-L%U@rvg+4Yued*s3MIxcr4UpK8Pw3eh( zR%L9xc>m78M%dU0$=n<|h|`nM`uEm|qgOd6)of)bpw4wgOF#@}uUxS=e8Z5|*v!~X zFOnD}J2$$dbF+HBfm+m;$5i#^>Ydg{#p{oEW6>HRu5t*zY2Rr_;o>ihS&IR#4|YLT z$u`e&`mV;4k%5kwQwm>iU=62)zMFY{Pj|}UqC`wO2i3<`weD;q9-oq@A-Snki&pET zdyE25bQO`L%JFVJDAL8To?x>>K(X~CIFV!0i91CqV`Cm;7 zb*o#RRmxHa*?PQ{y-*{tGK9q{Vha`W?7;SMyeKI=e}m7Gt=Subfmy=F-0IY3mVv6JAUezaLV6f$j_8B-LSUU)5_=^E zj5)+2e@iy>?s=f?j4>846WB0hKtb-y{Cb89Ln-pw{o%4;)T>TdVAx+s zZJLVPgoJ{3l0-!5-4p2b?h=9)CJCE>2Ng$RDd$oY(mZ5sp;hTerI{BJPE>ZyH#K1b z6%m?c|Et5`G=qzYKwYh;(vmJSxi_z#9LX+%QFgJpJ#mo^**F>$@0mTHZlO(A@tjes zbHd~4-6Tp7^$N5*_+6O8m0|H1=A#{xcmb=HH@ORiC(Q**A_aJ%#3LFk24ta`S^Ip$ zeO@F_DMPC6+22xi&MfaA)hJDVB+|9n2VMR_9h(*pcVjORZs?}_FTK|o(AVJlf=)vB zet?FK6)^3+eDy;R06ro4mM;NV>_>vP&z`grVb#KI_1E)X70Q9?o8#8$VO=CQT zT}l8;HRj zq9j#*l*=Af()BL2-^b9jNi*NJkUTjwtFYB>d|`L_k&{%3r@j^*k7kF4iJVc2i6AAE zKXlRF?9_HxYv#Wku@mOr{7~k39UECWdI$F49Qm)4Vni}|4(?Csk7=XFD1Q#RKG`A~ zXkc6SFAp^=Y)~w3hdOkGe6b3UC2V!I|6n-yxtCTd1xNJn)2MvS<7*SVaM~il^R4wm zlJgXuF-mthK69TIs-HqqvRl;m%30scqHJVL`I6f`!<>liI^wL5oXCPt z*AO!1Lg3N9>G50!n;4=-Dd_z5_!8Xg?BqPy#zCU}X(gD>zpl(gTyb*O4c2b>Stax? zgqk{9TQ9haYi_X!wFT@oYGS~lyTnuA%skTa?U=iC_B%^Vf2sSaZ0=Z@x4j_YjgV&M zNipy82cZ1u)velZ-9Bxg+kk#h%J6P_hm!(I4Y;ER$5vDII1dp8_c7{mW$tM`{E%z} zSFRRC9jasm3FI$1-#8}|Uh&bHm;+b9u^_TbB}Y!4@)8RrO-Q#SeD#k$ccwK!7fxpyM6JIm zvyYH4PNvKVH}Z93Il&9b-bYz=u-L6ly@H^;vL>o&ntP!vMEN4Em>h)txDTYbt6KwC zN-hA}A?i!p6>6j3i>7=Sef~<_BF1y5#qi7FCI4pip(k(+k#Vs_s`_uoMtX|3kG&9Y zaYF^BHCDtLB`bn9m1IS}Y)HnYJ=}sY{FUBMm&PP?QdmX*cscE%VWJ_5>h;Oofjzl- z?Z&iTxOosysG?hZs#E|XR@k0flp5Cstmc$o^k&Lp-LH^0U71(B$G}RT#RU3geH2u_ zlEvS;9*VbK0o4TNVD&jp&o<@R5NZiGFssGrOf5;n8 zcsSv&t(95Ot4Vt7r@sKTDCm^`<2#Pe99euLISWZoPl%e5HURYU8La?Sfb|)@tFFCp z5hi0iMF+dN6xDCL|9o+}q;>r}r!Fun7L1_2@&(WmTg9lJMb0-VKfdk5*Zq7dX_M$~ zr>HLLq}Gso-O(h9YVKvW|EP72Vrkbb=ThyV3M1E@Av#Ee5oQNVY4t$ooQ>{ zM#k_QK$U!8EKe1<$3yY}5xg+_@hMaL6BvR16pdUj05m?uO(K$1gWES#ZYrZ4sIi%ka$g?j!}_BD-vm1fqwT2v0Uo5+K4*iK z?x4Vv-3JrmS^elHn^CQHQU`crcON`Pjrj&Jf>g!N56&uqPYl`NKg`F^Yl`HZDREd6 zJg%Z3ht|*rq)OHn}|z0o;(&^zkHgUYD+o(EMX zYXLAx%uP$Y?6zM$wFOF&r_ke6hEG***$Z_F^Tr*^!#nJgMmmdcexbm(`j1J@;ul+e zQW5;u0U&8iI`+v3w{GYIz`yV3q@FQ3cnlPOH8TXB_OA&87}{X8K38Z{F11U4g}al? z=!lpHGnUWdV-^BU3u^Nz;?U*p_ZJ3;uB-OQ6UIR)J zn8^vCmNy6T>|U3xrb&Qzlk^5UNh0LHSc##=>Q<|Q1sMKEKaJH7h6QJoD+x9@#17XTy}vz=dw%PYpo*7U&TFqmiwb16BvUiOfn? zkeKxX+^5gS8#^RFLVc(Ipt?B0Z!-Jw`r$>F>%6{)zT7tWc-qvZYvufdDz3IA!=27W z!5y6{doRC_{HVUu#pW@-kP=~B1tw=>ABY31VVqloJWSysJj0`O-#W=`8M3+f-JIHF zrEs~UI0Oj>j9GmbA*pQp5->g-&;?egZx=oCu-8vd6Nq$#Nuil^L?@44Br*tcodIKg zC8|B?-V<3PcV3)J`m6?wF!C(MZ$FFOy4%39#gT==hbA4Z&|^utdgvBYaE$+`z--_7 zLM{=!;(Q(Hg~!R>9vl;UE5;JeSAB`M9L%21Q5}Z*oENaR-c@9?G*a?rGjmfOLTSCR z9f^aZk9p9kXaR=`{lAEAKESyKOqp&HL=dT&o3-qRpz`LwFQNOGrQ9&!*2}&oO{z}b zZokL|o*2w(oArAtTOK^UL+&T&$j)Z`p83Ns`sOXehioFQ`DmXpaN+!RMM{NN7tX-9 zU0lW)By8{>C5(!fml%)M(&V~g)CbXFMmj*QeVrS67u{d51WZb~yhBq5gD`|f)-Z3> z<~Oo>?tIGTFJv{-SbuylB{H~%MMf=?J0thjUc%4o^&gLESSPIF<~FBVwgsHo2Yo7Z zEZiyK=z=&QsQ!L+FU1W>*irX)H4D1cprC}jru{i0I91koBFy-s=wC&H+}e`C8;Am7lA@sU>*SBRH!F@Nm8_8>?=~@vvUjn735R=Qh$1U$e9 zkSJ>&Ih^jx2_04=(7h6Y4OVBdyv(f zsdTe8E_dEx=}-0Ttt>hjk>AYoy_)s=2WksBYt|hol4Jx1;88-$(CJ>NU!G;~n#*7! zGqMcua*ah9ibr;|UQ(Z{u^6|mLPZ+Ay&>{!O2R~gFiLy; zZdR-f54t7Jaj|86j1Ie|y7q|;$6j4#U@pxGC6E#6Lf^M_q|qhs;ymIgJ6#kt<`vKQ z9grr`X69XUJ)2wh_}z++-ua{RmfF>fc%#qnPBLU2uUn~(o4x2Vl)ju6gE*PQ4G)bJ z(A-rZa9J_Gh5bpr@06Cdsm#B|lV*Lio&?R1HUf$NL=oiv!kKiBxR1Ast@WsS$H-1* zxdC8(n|XSnlKJMhLYN~kvU6xn{nDgCDu=>aJ>5%RbcompL(HY4g}Eu!vsI#~W$e%) z8mHRs#o!4IKurq?2u#3b0-*4)g*>oS7hU>-Krwg7FI;J^k#BD)XMRMNfca5jrX{zL zw+DxgWYO6y&*faW%HGV7)gP$Sq`I_VsncJ=jG5$58}g%x+eYMdCe>5knMbbU8s5{_ zB7U!xOQukT`%W>-PTW!Ix$)0Ku1(AoQu@C(fsZr}rzK^mzM6 z93l?bn-m0c2X_6Upn@O-dIwlKYu*7)k2x1ZlHzJ zG>Hhiozp&!UCdH`Xi~6BOoyLAa%x`Pg;~ zb3m%~>Pghwx^#)N&b>JqFrVr>c7McC*Ux0Fj$C1%C+%dRCEXHgEc{aE!1j#5^egjT zaJxbkj1J09B0~kAz&s5!f;-kBii7IO%QOU9=q8rG7t&#&qw)n49rV^YKRa&eL*q~h z8vC4);-tl~Q10z{0dJfe(Xms#VK;R+dR4kt3u^-r427uFe1z0pgqLu+{Ra6R{0+`$5--Sy>lI1{eo)WERK+``&*r4Q)v ztA%F5;frIKx2pm?-;Z5t^&6BFx2m|t+?<<=_1hJ+ju;Igo1yEI$orT;W=~rJV01nr z3vH{Y$Jz*kemja_i0bn=nntRLqjg~BxIOtl!7E+2hlJlbXI4w%-DVasY$?q1f&5E< z?HiilDryHFxVWpQom@AkFIk>HO>OG1Pv=nb}1=ugdUw&RBF5$PCaf@2bz}cLgh&KrLG#474jp) z#QSfj%K2Pq?1`TABb!cpDp8M{Ouw+7ogO$ZNczajq}Pn7oi@iOAJ_Ijfo%?t3)fpV zZ@Ikn4a;{QcvFiG@Yw+X|F zWM-eVKn0ZlH;Uk&zTfGh(IFR0+%^{{)m*2hjdizndZ)$g_uGGQ0gRKdAI?=uj#jnH z7bBxrvO4>FMSI{_+)HjqlfoMl|J@tg_P@#`2QG{8k=l=5x8rv$DyQv$vths=%*gLE z){-0Ssp|UTYP~br-b9#sZqkjo;l%Q&B!>Q##;>DEH(|hk?T{IK3i9#1^k3wovuqf( zy$;Dc;Mg}w%2N}U>g4wB4ndv?-lrpZ%K(-{$F!{Y5m=I`)A6`47f%3)h*7_%RN982 zcfbYB_y`Yt1?z&#hv)az5qfuLCVPJN5xe_vwmp z`IHjZ<47YPNDzl$*?LMFR>-r@*CS7CTh=~Fx@Zm4kj${?%@+m?#0qIS703F2FI1D% zqr@C%DcU>hGBcJjBP?@#z?jPT9@pIYZjfZMQ-w?=qpn!tg!^}nrU_eZ3}~)C^~R^| z=;+dospw?GAhZ|Ya9GvMNic{+L2$$Rz$xBxtNM`O*1kh3>o&xL@)IDN&NFyht9#VVqg_^I8$#R=6j1h2!2~fdiCaSI$15C&_0h+MLbYFp~?U z-(HWEP9(3#H6{-a1*_@D6V>A)&!@Q=g(4CIU-q?)-%v_ZCFyJGnn+LZ|326DvMGmu zo`-njlg@nWF8#0|GCh+O5NeiX*Tw_i`-j3$+i=m(Q;xeLTTgF`r6dFpeDA=<9dio( zGEz&s@46i;?^^2#>C&{ogVmldZ~@=n$GdXR%X!9G38LRc*rX(wc4X#JkVG-R`rLv| zHZq$sdc5hJoS&1G$hG100k+Ms6Gzh`xaO)V`h=EZ4fAcSztGp%PI-QAu{Bq!9;bS8 zrx={ljR*J1ChIscA>GdoXYHJ`>j^=YWK`D_JxgF!QEXYCy9g>>1P#6$T+a`3C$K0H z1@9me^Gsf9L2giIuc>lrf$)B$kQ5s%S7vcs^gcwY{Dp@BZv*W5=wA zc2s`CE$zBNEx6`Wc|KHV%_m4-szgcld9r6yf^WL`9$07r8RAsCBEEOBN9Pe(}{ z(Pg3{f>%Hr+sh-{#1{2zxOcVT%=_YYS&l)Mp2O-b&u4a)FBrI!>5T=o&RSI4`Y%m!$>+@>wN&nc_1>OIJwt~joAm)f&}Wp(XoXXGaQL)T7=Hwc@2c^`UF z$d>$4n%I!4DNkGZsX z2{3@-YQRj-v5jD@pTA)bK8~68i)omb*luDOf?TdB?K?(Vk1d<=gyhgRve0I=swdd2 z(@75n^iqPjdd^?-9r%!ui!Z~q)v+MA(w7jp-lN_`d5YegZij|NWOJ1+led&hi}olH zZ(bN%j&QUZ1G+e9IKQVKL~o_et#CBWous?MH9lICk}!q4&xr4N95p^!sNkZkP5;WE zZl%OGg+h3(wIu9iA{)q>HV$L9u(eafA;_Cks??J{al=>yahwh*Gp-^Qp-g?jyDvQ`U}SFc znp_A%c`%J}m(fng;p&r=y*pT~v5VDJt*?}hGGI6ateS|ZS;Z){?uxxG0|WomBU)M# ze1M&Q_#H~tAqX*}Ix4_-D2>^zSc*g=sy&yB^5qm6vPy!?M+#Fps{B_4>#@ldo!FkJ zVO*fgZGvAbWzc#VowSOTOz@Js5<@!fuI{{|sVFmY7&hzPpXPsGJwik&Ko6&VoQ!#! zLmSJ{3FQ%7t#NPNYoa(2x?psC%>191wRQS4|mZ(b8plev6go& zQ(E}eS`A9>`7+?yJ}2~;ZRoCDBv-O{()G4Uhu+92)c@|AYgvArU60ny%gV(+e~`f- zt7}Hf*N2DrejcEboW%_NvW8~G8Ob#a1tGxVwmK?#TjE!#5j2c&M^@GHuN9te+1{;H z|3GJ@|Ft%?#f)HP4NsEC*nZa2@64R=y7{%ATk8+nzMuM>OY?A%k={rUkct~ z@J@ZK3{Tx2#__LFvgOV_Wj*3_dV-0B>0Q-ITny7FYuQOCEQvaG=ihVfFK<~Ye_UR% zY8$pW5fw75n6Ll#JOo5?|13Q}USR{7npO%!>-`}J)x!Bwhia$8g?k?A9v_u%6Dq!I8fkJ*b54R=yUt`@UM0Ez*9Qc@a51B_$;_ZfBBui1@GtHAD{w{^-4|= zdp$O6O^gHnmE9m{7<;0UQ&<3Y1>#K975Oicv$btOO6qXyZ|JeG3ak~Y6Szn+7q z#Zbn7wt>$*@i)JEr8@g@hvbh9|FP>3bF4ZT8bFqV!{_dGSj-82rFq3`7788kQciKR zBLMtuyv`!ZX>gJ`7eit^_Q*5Q9`s7pqDVVOnto|cLW+U zT4XgxzT{laavc$UNwN*|EpT|Yj)Y_1*W!r5RKE06H)06rimCQegNpfU&SS;)M`IBLI);%V}b4fxk z7?gPJi8r{q=5lFdDXnn1G8fw6(Q#Bd3i6;|ZvKytc?X+|(f6t5v(y`u>yn@Jw+B;^ zc{0}N5RGyXMAs@Vge@gp=xA|u0I3GO^*a{(Lnr>j=Sqsn2HZi~A8Kh$$Q@BFgVu2p zT4Fikw6wt2u|mL0CSuJ{e!~ zIpf9DU`QwlTG&q_%~~|CSSX6X*||FZ=_&JwO;Ay8O9hvi7`(ojMq||2IMfvndgz>s`GR6Wr_|}QBi@}oNmm?hHwQ= zKiC0T!q!)f5q~{U5+2wZWDplaK{($|AJC;I^I-0Y*|To)MpF!jL|UB%u0PHW&ZNtg z0)s@$pn65WQwV&DPaGmAAVt#v{Hi|%H~0oz(H-e~#MI|4`3P6lOmT$C!HC>V4c`46 z!P}@EaB_}V1bq_G|LZ3ysEjL;TzyX=Wme~rqgk*n4D@UQ@GYgmo7Ne*Jmef|l9au) zhIA^QWL}@J>7Zi3>wbpF`qwgpR3RxIY^bjvf?OZg5W5TCRJV^Kn3d94M_SWz>znBR z_$Dj4Q=nE&3-{GyV?x+|J%orv2O@Z3W3m^N1W~0_>szdNT@Ru8?Im9YF!Wj1f+TIhfe@s)*CYAr@KC+x4^6$5lt;~c&=rQi9=HPyHdPFbZw%v9@O+Ww&Q~r3 zh7a$fLci>^^sJ@=1W*UJp<>a?bFgaNJxyOKE@A<+A!eYZBDa{EIu9e?iaZ zcP8OqHTnrgCmS=&i(O!KQt9_Ky=K8rZRA!Ftian?p-uwi=z>pR5;-1yT)_X}aU%EF zD|Uw7h)nCf0z1V-GIr>2JvRE@8>--K6e5Ku*L3HHf?jf*R0~1)L^9MF@G-I0_)PfA zI7&vm?pRajuM<>?hXb4%T1R(VfD8e=24y6xc#iJFEJ~np*k$G01={{&%kXvV!85a{ zmwfE!M)gMDj@YQ`y$p8GkNMee#ZT`B)<&*=kBH8^CGq-IwQmFGG21g39I}JH7-EpO z&Q>4_)jwUIBCg$#cF8xo7uw2Aw)fW^B*rAccj^>TU1!1@1u2}p<-f{7+~|NY5lagI zahBW(KHK{Xe>1&@*EoN8Pg_Rp?=}$U`rdzal5|9z1Wk&$UJ!u8?u-80S<&6&_%A;X zXf>_!bZi@_*uD(s1u#N-aJt1|OKd?v;)RkC4=_@X{`L+3&iv1rO4Va|C|nsFp29YG zE_b{MN0Vy5oZJ3e?M>)D^x|KBSM5xs{9`L*g{_)ynJrk(Jpz59yCJfcnviha=XK}f z)14R~&tWXW#eE(XpFHkbA40YeEnCBF&#jhkWHbh`lEW{RUM>K^TJbVfB9CS7Wx+p= z>J_hBpW|b)0r_Tkn{9biks|xr_baCBhege&s=?k5ZR;coK0qesy2BpPnzyvmqOoL! zR9k%dIZ8srlYIxsiTiIc;$tEl1O2Ucw#H=tI>6upD&u)YowWCcC40Idyr)_ofwUFR zY=beTZ;zF4%OR{VYUlT$b{@1aTJWp$&V)=~xntP!#cz=##{ukBTpLu^6be%)RW%Hh5jGWkWcO7Y^RFK2Kar~dFM_Z_c` zu4fZBVP@THaU_TR^LbvSdCO3kBE<67Q>R^p>ajcezV8kFU5+#j673$a>DX1IsP4Hc z85MT$*WDo^5y0dnfrMc|6p>&VX?b* z-Xm)K8N~c}%nkas;*4|`KI z7SQ)rqV!YqzgJ8 zapZjV8ZGTu>dEnTnN6$+TbhoA|MK>wG?m!Gj8_FG&l?XYPm(Z%kAY9p^EiLnulo?6 zRX{gvV35*j@XYg0E{nk_IHli6`f-?rK?)rf8P!{HLqy@E~&`ob*x?CF={8U zS|RE-Ec9-$Hn}1vMgCaZIbADD`uM$;3NGAgnDLc|7yCjkN#@o)^IfzPR}Fqm z)~g_V(1w=cItnyBXwZNDT=Yi={(t+?6EZ|AULtDKyXUdpmUV)a?^P*#<_p&v(vqlq1-^Ur z>wCX~#4Up%iz?w%^4XGc zC_INCb_W%p3bF}m?cYj_#DO&gSPMD4p{;cun$h<>gN711=v&imTOBRf9&he_rV@Z{ z4M2F&mt$B9ybg^(A$n^b0437S02wQ@sDL(lJ~8tusb>J4qyWs@>HH~^(_bhEEwK`I zhe7Qa{iUT3?E0;iL2QF*xAgn1$n6B|x46_RC`_m0^olawWjz#q)BqHd&x;1U`@_(2 z*&Pb59XnmVqF}-X0R8fCuU0l`mpY-?q_rL#frT4DAK}pKwOi!bz~!m@P@RJDO;sRE zn9nh)*^`G7B8v;RJa38LO9yaIppA{-Y5*KooNa7#^D~%+O(mS_?{R2-Jj2w7#Lnzg z2;%-_az7XBAlLt32f>}B+UxsTtKnenLewo$JpQYqA`0j(!+H3RQoWfECPS!FRsk}& zspVqGh2%d^M1478hhd!VrE@^eRH_9!@q!EsT z_VDPkrDD;S4v1fqZiPS49 zvuYM-uNN+sT?-^HfL|ETp5xgtzSJIo_f@%^Jde^k?j8T>1;{DcX?Tnx^bPnb~ z=j-=*a^=&)*Ofgiom)h;`3b9Fs=m6j@-XQQ|2NU5BQ2j_R4>xcz|f zNo|1s=k_9mu+d}-QsGkk?s9kCiAIvCS(vBMw9Le&!5qLQGYV3A7{F zCuongdh$O&o^Dfw(?45dE8UUCWR3#V8=)_pRVo#oY_CjPwefsXu4BnJ;8C1am85!q zbqeJIw985WM-nN0v<`+oz7WX+Mc>n z`gr-}kWXJ~Kk60mN|pP-zSdw$$T10LqQnwz&>r!U>11DRIh-}Qe)5atDDp;}!Sz@=>Lh;YZpP(dO9U=P3N7r6yC@`YbsZIC{{^*3)3ICX0Z1x5<4ab$znO zqa#$sf0?V$p3PzHjlBZX(nn0#$k67jPa_JvO}jk)T#Y-FY#xQPg@!C!H=>-xKY(+- zh1H~;+p1#C8Vypu-99w<2&GzJQdrK`eNjQxwoGs4#goY-bvZDITf74elb$KoPug3KdM!3?ioSTE}*c^vcCc4Vh?^I`<>rj zylLA;z-6$7Y;*V8H1BliD#{1ud7a+K&K0Kdh{w^i`o6pP=^CY1eCg|5iO-pgSI(p; zQW6$B#jqA|NEiQ;z7@~vWO=5xwBS18f^dkQGV9 z*E8bF=C;Tkwjf?Y4YUPsuHG{A|6NbdDJVD{RH$q;Dtf7_YqYA$9GGNa$iTw$kSfn& z(U)F#YPn6ShhXN?1oOD)QkiIhw66L70_F7D$();(p(Gc>n!UgAMxP*buuRMau2!G3 zD##sJWbZ_tso3T>W)*}mmy5FZ+!@8KcNI3Au}_wEd0!>hFdMFS!8-KOdlq~N4b|ta z0*=vxIi^V{OT@^%bI}uTb&Q&Gb*esD%n0`b=lvc9OO;1x$Eu$#7MOM-fO1Nrw#Od| z!UWM;9m}_cNB~v6Bih0HV0&~<@Sg# zzTD}0!zaMlNX6+hwA6oa=Sa?6n*&3X#w2-}x1>tzI2|yAsZSq2_IW9ZykDnmhJdy! zH++10vEv1`FJw9>&ihJgzYE-N!+h+WnU0YC*~d$9#KF(VO3i10CdIe)?svYw1wm1) zZL67rc-JM_(udz(H+r4h6`Mr#D&P)bK0@)i?^Lxr<7r(X^Xe0u)Aovq$E(usd!5l# z`j~jSUyG4hH*pLszUkcJC~Z)-;FaW+r+4F$*st2gDy)9CKb*{R4`|g;+${mR8+;aSSH#9Nz>Y>)KPmz z|0dr+upr!r6GscK8LLZ}9Ng4u7);Udco^W?H+p@;V#ggVoyrqJt+e9-3e##HECH?w zK%R!|JS`Zlr7~l2_(L-ed#qu>VzWI}NOQ9A}MV+&p&AQ&aw0-Ky%zw;Jzq;>+|szFF-#{GoH>Sr%K|Xj($IheTImx<9eJ zU?^WkkW9O#%-W5}bYl&&(tr=N#Tl49nO~Wdt&`aYVV9!P$q!fgLy^q66?UgROUtzO zDZX}l>9xt{C%zk7C3p(m<{t1%K9c9v_f34ws5gPuPMU}M^>T*}yP(n1>X@xCS?p}Y z<DK7bX(}!*NG6LNqkA2C@o{Xyx%P|$xbA1ChES(P;BoPRu{h5=%q_c& z5}O?3L^~gACwlryJ>(r|p0aP3e*cPzNOr;6c0-p@aA0~#r(LksZ2Zm?-Mf4es%q)N z)_~cIGJC?uWw4tkxczr3YNe>sx8wvcKeOKvI~(>%YO_C0$6|c+CQW(%`11&w*Ie}O zCdr*Uqy>#unhv}kpejDru6@eib-8DKLhw$Pz|#$@zP#9Ky+@@MtQ*G0ku(F;8Mi9K@zvH5)QGoiV3mOvQ?_vaT0cqrZ0qMMkXB^08WfS z)4OBYZHMHI9YkA}ZXWUD)p;yh>!L@I=XH5ZGSxA|Oi^3}2mXt?P6bp!EdngR#l|m9 zo*%i`p8uxJ(MzqSAn738X6FD^&PBv(DoJ5?+>xb2I=S9GX>lYng_$ksgfq`qsk#iu zxaKZt_!r8_m12t~mO6CGds$YTDhM*{vWqsELYgj0T*-8Om1lIyFF-0`mf}M0BoQ}`)z{qt$JKlMlr9! zK=GyU%vSuN{E&9*(2!HrPKv&3lcl_eCcXyjnLuhQoTpx9DX!^S-YU49Q_Vx8sW|6u z^42JH%zi38m1;;jUuAMM{b^0B*nBjT5Hb->e8y@QnUE6G+;^ZeIfka& zC5CL-@nA{Wla-EHshhV7s&u)VcTQymT+z|Xs_hQbtuo~wxbF_LBwkdLUH}Iv8}5FO z!MFFgr8GIwH*Zt|!=_~!1y3M3+(lV*e3tb|jg24`j4F1h%jO(}(m++L)%!u-+D z;y37@7s;=k!RLF)6)zU>;P`2o{O0is^l~Fs%kL?}k3?vC=!GChOwT?8@Q2*TB`vAf z+vbd!)#OC1`i;nqlK&>9#29rH0+6|Tla%^_IA?1KN!8iG2CXSl`6+y>B7z?*rFtAe zGx7cW;i~I{I@@|ZSXldS(h|C`e(MFq;;q}NPY#gyQGaB)w>l(b)uNx(&l8>5lx0fqsu$W#kv+y(zzqW>F(Z5;UpeY zqC?HJ8~16uZO__zJ~=vL<-;seRG}>VC@*Ptz752DVn$O~ZoS`$?MR7#-zg+RXo&O#3wtx z92X46w)ylt)QW#OSLkbE=D+Y_B#4xj0$Kx=+dQCIuA@ko`u?lyMHlC6pCA8lkUbXH6MitP#FTdLNzmLCO!I3Vxj#+$`}Wplx1$5E4G4;!&Y|2pZKI zj*I3?xiDxF@x;zz&u&7)(UcpIZ-omk&E2_W&KT6R`r2^4<_kA;ij4qu+r%BM6gK); z@~)M^e(I*iov>iA@3DecbTC%tDA2gc zH$eXeXY2(J6~@vC!P_x2Y1d-EQa|?b=<`7pl2l#=;* zc!iA*t>NIAK08Q&0S`C&v->`7b1@Q5_B?rP*11T3;VUqXvBxrz!@6Jg-L*-ZAtiN-81XCx_C8{<-zGE<5tm!Nf4D(^}29=-|h-IpDk(k)R@j0`qmO)@q32vxD?19fr*MJ{<9n|UbHb}b!EsC4YQrRCwH>D=MS zBj{S1l&QtH{DhG!Jo)Nms$K6!;0BN_?-!(dLi>7=A)JM-Z!EUjph19p;c9wnjAZOE zma}aA1VBCc`+6+RY4=Zi#+z4xgGp!{w29^%mnTal$rp5J zk(^`p7q4aS_P6?NcP7wOM}=-4cYy1u*Zz;0cVyZn z-OUe5v&Ga&`bIBW71)mR>d`@p^KxlpWf_#YUj0!~`NwPl;8Xlevl7{s$qE&EJ2r8x z3PM8kS%9g*ZuUJl5P*sv>wn6?V2}@eXJKZ~)qx`a2`$U(0n7G@*H2P(>Oz_=(B)G$ z1GElAZq>sp0IHLCgYs7$cT2~SZe?q2LJ(&ch-o!2@>xc7Ve-)E|3v%fZj6&i+SlB1 z>o=Dlh5EGBnr_?x)wj(y=kuG!>J!bnY>@q(-TxVopF4cl+*DxQl*IQr|EdTQV@!6V z$$vYcwbpJ{bUaI=GC9{#MdU-Jh~YW-bB=>L;W-R=d!;A*7-Uy{D?j9vBK2%j{&F9n zD&q-%xL(Rzk1a2+gb^@}XdbAy2iZ9|AMVVgPZi7owy&p1pVJU63jXK){`Y0c|K^bX z_eWbf+Y|qxsQdrj?m5>ZfJ>P)*zE+EwlGSxrq*YmD=&>^^F<77ar(xRQAzvjkz)z< zbkIzy%^ru|nZUbmDE}0{J^@tx$_4+o_Vj;m5l#URtD$}8pgy&n%`B~qBKau@)EVNo zFCnvJ_it;C?FT2wD3}|3(Wc z)g$=ti;bUNM9LMFFIxb9>~aNNnQ9sZEQ0@3%Y9)0wfVz$rr!C};F;kGSzUksdR{Y$Q3rYg4LLn(Ofvw$ z_8Q0y*}|qB*(ykLX$9pHn$Dj4`){*@Y9r1Y7oSzr>M1&tt2RHBxALHzVie#lsS#(T z7s1$9Zj}aP?*@?}3HL-z{^jl0hz9VTg?uddRyafNnp3zweSl?(sK6>Hx;(}JhUo^V zF)MvfXX2?@dk9rHPekRvy7K2nfH4dp?@>Ys%Z{4A04-v0a!)cBEunj(5%3hjYVV85 zDkrhdvb)eOonOWtpc=+Q1QV{R@7cN;lPc2kF*?HMezYS)$Q_PVu+UUt$fa*^dcjq<$YHi&dJM`xKsHY0E7D-^G1R9WQ zhwuNb@+YOl%eCII>A1-OXwpCzl_+`<6Ii^%$fq&rS18&-QF)#X_Ka6d*g;;y6nB91 z_vgbxvWkO%^P#|IDd4I^;AD^SRzKgT7mmxhT+%8;ken1tBjJtzVO`?N#atY=5A#J2|NSCL?5s}uZyX}&FJK+?7o=+-2(nvc4 zj@VnLLP8%Sel_yVe9Bh4%^tHfMSKs*GTFP@-YKtmT-!sO81n~qTXFkN*-mNt+&m& z)A@IGHRUWiTM0!&-TFR<`ltNwHk*B8)!WF{dgNZU`Knst4IRJ_*`Vv!Iw?iCeS^Ac zeRpksINUw#z2>V>-VT-@zB{v=R`}m zm*s3a_UJX2=x|dvuVdPkQ(TW97YI^fBJ+HpyWtdq>?*fFao*l&r-XhfGqD_H8?K13 z*T{>?c4oL1_s$UaHB!AxyzbjCR6_6y)eWlJNQ-mSgOL_G2;P1};p`CQp>1>VxriS% zp{q%8#t2z?5KeJoPnwwLNBe?af{G7?`wJvfeE;AQoc6)3)Bg3i-*+m_i-ej@;zl}h z$cU(dHk3sr?FGrCqY7J6bblG-5|?*E|MAaePqja8;@0njyD7J@o>WznseqyD6SXow z5#tvdGmKkz0o2d?ZSY#L>->L9rGX+)n!<>^$*4~4mKGPiQYS^+qD)D6Tr4$718;ij z9GW^R!`Adk1nukivsMfL*{P%S{p$MK*BqoznubM%mn~Sc`n$f+v>;yq{%gD7xwls! z;Q4>p`|@Zg`~UBVq=ib7gtSd16xp(;lB^M9Un(Jn?Ac~WQ3;i;Y$LK|8M~}w2{9Pi z8Ef`sjAd-Y%sii~`@X;1{rx@XJpcXvc>Zxthi0zpv%Z(t^0)@e_wGBtB+JQLe}7qV z#?s}GS38l;K$j{akW{(5U8n4&p7 z+fGM+um6R2jo?2WhKA?p|802o8KjpyTmE&WNv|fG`9b|5n?ykR^V~5b$Uo0PekB~b zGVqY+FD(F2hg|<3#w(LK3x}4yQLC?<=e!r3Klpa@On`OuO@>gye;~U5^^Ey_)7ex4 zajf~+kDLpB;5&`Z}aS`qv-!@WfE5h$osVb$oVVsyX{_6LzAEy#`f!7 zDOuOkHIAR>YIirSztTnuMNIdsuMhVqfhD}!nok3?jEFaa;4=Q>DE|9AUKg=|F?1X{ zrkL8e3|LEV4(IxfOhJdvXV}ETsx0cr&UD5s8X_sa{T;{rZD@aw?@Shm0*W-ik-r4i zi^YFgFTc;{>w+M7M|6UT+WCDg|7{Qbv60$9`UfXK+Z6TRhxPX&Oe_G$YqtbM*+KvB zd$eYqXkpV6W+1?O!6~Tk+VlAhIQb@lu2T=l_iJphpEf1)7%|D*js zj+))Wcz_p*dobIP5_<9C|1f-eT~$u;?g*+CnH0$|cIN;J#s9`7`_J7(=gT7bOv_YC z;-Z9tF#x9+J(m;$~~Cw>z#QAY;^*_ zk?xf9?FcR?04bB_%+%Y~S`%iu7XBg5)CDx!?$_Iwov=%ynm4X8?c+GU;gOQN@9M+9 zj+jIX24>M0(c=Qq%f7Z1F;_Vm_dYtD+j3T|KQ%g|&cl>oo$8VZTC}%}G#MkXFAwiT zJ0_TcVxQ5&s9w_pwCy_Nc0fveN@c>!>~Q`xdUXV=cDM6(?@wC$dKji|yX<&(P14Nu zuCYYSj9b?Bj*97;&W4w+0#oy`Q*SRDS0Hhjt9feF!t|f&j6NzSvg`83u!yp%5LaKS z3O#U1^&VrHpI#jh$2@_WJG%?WN!+?f2hUI|>ns3bDcd~?Ge%2T(EWSnhNWHMAhSEL zzg0@K_ZLPN&a9M0SH`;`JQ1whdv(i-CyTv(SzmrdnD1n+S1ugaLzeOb=pgF^InI)Nk{uL8Eij^Wm5!GG^g!}2jTDQlkO zVg7qK0v_PRMa2?@dI_EyR9;mYraM^%dA0iQ(f_gj{`hC1 zQFSfK%2#$mek2uqVQ;4l2=Rgpi~~>(2xohyqyO!yv5E9!oCAs&?IWnR>?fvg=3y{> z=Z4lRp!#{>j{cYI8U^^a@%~kgzXd;FgzXrccU&zm%UMnkK=!cZH0^xqyb`$+Eam2a2iMxg5HzdYek+ZPtf+{LMXPmuqL_*^yo7LhBCfDpH%A?E^; zVw<9?n`yE9je8XD{k2v8F?pcBt-tTW28btpVxs`_L5nm9rtSgaAPwx|wmP+w1cv`Q z@&o5AhN$g$6q0y%35}kVasidsbRcQf8>->^@#;S!PmRNy0Q`Gg6NuwJ1*q1SL9!D9 z8X4|FbDjXi6$m6vg-$*j^|u7_xJBt4k^d+%d<9(=JQmzrtCDLi??*>IclV5>izZBiBjN> z+d%--(Vrjt?-A6M&(&RB_aQB{fSko%&N)F$h4V9VGCwbBfU7{LWKa~Ut;al79f}!z zPG<-H4VKgK9*aHA1;u|&UiDrEnX3Dkwmjdo@BR>#zT z)5Y&3k?o z0Byw0tmxkw<%HkvTjQkQV7ocC}0{z*wR4wc#fK48qPFXU88_v$rEbBlMlyf=- zFO1z;dAimO4+>zHm$C;gfWHC0xvEd3HTmEsPPekKn$D15uo6rRs1#yz0kAttXFA?} z;GzlWn~i}^DVvsOv+iBP)MH5xZHtz-0M5FQ2n0_4T=;H)JA*H|1s2U3xh(_;Ab<__ z&-nP7*=U5WCMzVKYr^i9mh9kmEj{=n@YR&BG6N8INO^C3o{ZWzg$BBq4cf-=MRpz< zXsrgq!7*>ICRDrfw1ClBNFvYnbSpg15GB1Dx zwe4Jpu;dA7NveeU+3iJ{^>5Y=uq z&uuz_9@JQuuGXaH8y{P-){s#Jj!x|Uf6G)txTJt2>_ZP3qxYZ@4U2Q_P<4v$(hD}V zqNhq$UUV<*#O9ZMHLlr#u$fB=^i>5af8z#lbn#wr)`r*ENv-@iQ@5J10b>0l5B$4O z5WJ!e7=H4Uf4vti?soF>%p!&Wba9Us_dN(s6o~@AR`?Zt%G47hxP&`i43@{UjqlOe zoynzFDzZs$Z#7tbY=n9^i3q#Cr$BD`7Q62{1c-?ntTc^Lam7)Ojj`<+9n4gUY zj7sHyOD$|F{Blz1z#EgZ_hG<6iC1s}R9x%h9H)%FIup7V(%59_>DD|^0U%2Ifl%gr z^|Zt<(986w=rD!*&EH+hs#5`QvLyf^ldk|s+yfA%u|QM*iF9^&*}0CyTsi;{?t_Hg z>wuKCR5o8(u#zclrl#KN0OdxeW!KP&TU|;p57(7D_+#xZ+cKC`5XV5$Rz$` z1W?q*>h96Gd~0Ah_}Y}%*USqfN|*2YdSlQ4Y-(N$bQ6C_%>lqUa$)W~)swOY*4|iO zQLyBu0uW6f=iTc?^Gi_HZb-~r<&098x*Em`bjRDWf_>(VM^5l30*DWxA+xU+2)`Pp z-Sda23hw4#%K4AJW9K2;zW|+mm(jDex%snBy1KfR)1tukL}4$mRH^LXpQcd&kejzp zp2C$hEjgpq3Q2M9-0^sxZkGX}(Pxyt|Kp-kgi2gncRButnJn~UTm;qIJumZ5xH1=) zt=+p2TP2DzSfcggkrFd6{P^}lYys45mi;s|U<|y3u*AEqIG<)>e7et2FEgwKVak~o z#_DES*R&s)+M)ns;UyRn+ST;lZZZ`<04Zt$j=|;)?c?&s)jI&qCHR{c0`2+dWy#V2 z2GJ3Gl0pGa!0K^R(s)lzk|C?UHv2ji?8}p2&yUpaf<80^FW4TfF@M(<*t8ueEBK7s zB#h9Gp;3t}0wSP8pYyQn?P7-k&}Xfq%wzcLR>{^+RNU5*0e0JAX6-XZaNbRH9C$HU zls#LRQ^mWqyBuB6^tWaHAQ_X^^AMbj!K*-H*8%gQr#)jq@yTryQE>c;McdEKwz zIZfSC#}vguN4xwfL)=g0=WY*vcdyHMQc&$KXCHl5f)xk@|G-U)hehU5;gZzVak)RM z1ck?IzP$zBs;429+C0JI zv3IDHdCTe(U0OT889GrV73UVf$>J2Zc&%M;y{^`oQyaAm+#sHhLOue$K^2T+pUMXE z4w{P%4n|b)?aE%c{{FKPX6;G|fbz+^bEXhgh>5gqxd6?M zbZU2HXYN>rmhY2ijWWYmg<4S4G9%nw-4O}#iHjLsLR}tJtMO8vpYZpO>zg5950(Lzw9jzI3gZV`WLkbk`e7mf!ZsNg1#o((fyuPVnAi+MgZHc+4v^j?x9E zFGrhs*|rDRi_cu5KoIRLa3Eei+uOZ%!u5!v>86b~dK>bjax^T{@kxt!f3vDzy#r!} zD^amT1#e_cy7SlIoGLgkq`TTEjC9Sva?8-Um&-nVZiC8WJ!|0DLYgf3rWK z@syxxDdwFqjA`PF;5hh3I!0HmONwM_+<`pBin(7JzOIc;&@EO!4RBZj}&=8DsxRk4b2h6aAfMU8ESTXf%9 z^Ji%b<_)S(%r9@9R){otskiN=qx5GKbV2J>>0R%;je9B4OdYzal9IYjoQsuCO?B|J zDj-|ixS{&vdiH}Ry&k8X_bPnSh@EsvRc%5nMrakp4z&A6+O*EWceKvI1OhcDKbApLA94j0id+qD(ADc%sSk{J7@YJ+Wznopn%9W1zpPsdV4QCaq4WSC5E=ADd@FOIc{QlC4d zjZQrP6eG#K_~HYU`ZJr3YIga2e_Z?%XWo%j`Ptjd$w^#mk3YI9aWu~M36vi3zEs*= zu^~SjfQ7d)&Z`NRevx!YuH4WZX1e~}Hhh{_9T;zuVkiLes4#y` zAI!g;W~|9M$K=!w#5sFDhudZzn*n#kium|16$wx6&(RS zCGVL-JJTf$;D@zzTO7#Wp8RV)Q1J{ifW=ps8N|3siy?SFAUD#;S^CdbxG&0fdj5lB>$!38Ad+gg)-@9&+Uo#6P zmtVMl9+4p9gF)PFLUo&Utp5kD^*&4`mB<-)LeRUEtGchf5`Hh|HS;YfHG8K%`r1p13~h~ zMalMlKr~3*yT_j|Ff)iYSM$yJUBSY{xe_wDDf-u@;snHPbYO|en8O5ZJ$W}TL9pjA zpT|NWvq0&#z>HE`(-4=FkF)g+ADi3+wL}&MyIgBF8`E%(Q%-TAdg5lsn&Nj^QrCLJ z#(`VtdS4?pfj?1+@I{UvjDh zIpwuChq3!|fZWHP=cv{?K8aW>ua|@SlH7dOAy%7aQqba@QjWw7Qvlz3=Apqo%mi?4 zW>$s(CxPz3iLdnB(ttZeD@T8S(<*x{m_MF6?~qQ`=aKqG870C^E+-&I#v=hs)^hWP zfTYxHt9?Nj4>9QEWevxVf>^2?Fy(NC`4shl1-B#%usiwhCR3#Zaw%UM;4vFwp2AC^9Lq^AT-f{95F-?XRD@sQEoKkM&8*UspUpWB z)o_-ZiI!GDA!=pCua)u`pO}8m5h&%9Nauqnp{dNZ*E15=2CUJ(&l%UriGuUt4v!xw zX36Y1x+1us@0XQG0iL3v9*4f9HBr2PDbQQk&8&(Xi(b8%eT9G;yZS5=I|rqphVT8+ zswMJcAp3cvR8i|(u3NM3Nql(KTpIJjzG2QU^Gt#Ay?X2Wz6tFrQ8e+m_2Z`U%8tKO zh~{XzoGVv-<)RzLg76~eV@Wt$nb=K_yJt-=)!P=aHJ)@)$E(8j9$lJ0>tCfvNE9TN zfclnyIj?IGR`XY%=>gRZg=JyZZZXeOxf*<=r8^0cS6c7$&n+H#Nu$DyTvY-z-=^nW zAA8T|%A(Ri)soFiTnEZgf7TK~)H1RM{P=H$E7u!}{+Kc|RgdnZT!SIXS!ze4!~LUe zn9`}3t1o(*7y--E?URa1$r6*o7 zttmVCVOr#-OZSu>DS#G3;> zdXz5yB&f?7{p(HnR|WNtl2ZF2s9MPL=6~1UBKFe|K@uq1&Zf5fKhL$lUhj`94=8|7 zJ~H|Y`iO;(E5Di?eonu%rVRD1|L1O^qB0a1J6`x_(fHpolD{f3zenhQ(ch+bYRU+; zkwMw(AVmHJbyqw}pvCD6(0Kj_EEEzPy`#u-2lS?51M?u!Rni*7%-cQw_{3Gf-SrQH zNo#+!HOf~0S=ZIoWe|LP>YdwdD)EEcb;nXmB4TyMaRU_npH^E-(YHP|uEX_>H}ony zN(Q1DxE~L2y%keP1&~9^J~DrD3wh&fm7P-Sn~#!1XYyH z{b{1KsiWDMc6|n!oICu7+tZN_-gc{?D^~wt zp>wJCtHT8M3L|`jUJIaeHMJaoE3sLjCK|$ zkehb-*5uSh+jVOYLK$f^#1Eee#He_4vJd5~3E!&Sfb98FwT6P6;*dTGM5l!KmHf5b zwG(bhne<0N*&YcBu}j`j(-cin5j%|Plw~KI-Kr(gG>BT%ElqV9t9@DNTe9B&HH}!_ zIl1D6z=|18PYa>lsyrhEYcpPXPUYnkv?@22y1z~GeZM}dVH(}v6A6?}Ez11XJEN#T zma&9;gSUqM&3Q{5AjqB;nj3+*6e+XygY z6KEJMYHYkwVi~XbG{a%tRAU>FY24$Mc9OA~Z8r2L>PT-KbLogPl3M47U` zB1FU+i@|kQEM9enfofQpy&h=>#}r!9KIULBn@89%P~;v8rj{kl8z+ zcQytraRwF8Z34Af-;DEQM<3lDB=Z8!%~0S2g1~gUXyn=nliAl6Y`{MS3@+-JI~r9@mK6qn$mnlt9i+qp zdPa9_g)C@~{~^K(zA(g(4OvJZS97zADO?v!B5Dv!f3gHZUwPC>x2BBgc5&10(1GdiiRonQxE}4@(-v2DJ>4kw-cQFKu z{R=n(zGlt4Eqbo!nk^Cjy*BQ&V@8S9A!HBI#YTf!=y>*=+N0}a%vZK-TXp?M>3)cD zO72_40@QTLV%c8)+*6Nxx8bvdM-1C?}tH^b^;-Ljk~T z{Wrkv_k>y~9X9`J{4*}Zh;{!|@O7z)VDDs!pq~5sjURxZW5&eT%)nH4b{I14_@N8H zg=*+l!Z*DkY59v^nLm;28H+=>+;_A|b#28ow^y1cYx! z$9Cow^-FRkd~*YiRWV6ap36{RtcTR*oQhjK-Tjkp=rAVt6EEI->&NRINlgjz^}I@K zG6~w>7fHY6zV&e1DW{BYc+XoQ{lxU~@CSCSgFrSn7%a_W=ghgEqtNi-6mZ`r{dwOi z3NpFAya3-WNxH~WdgR!LDc%JjO<2KMC3;G`Sh3&#J@c0Z9L{0ZK?Gk*PttUD^64NF zGv|tWk%OUUTo3c^20IamS1Zr~vL8RvC8h$JxB8%Ydw7EPtCRtRs}Scrb@{7pooklS zK93c)(7kW37a#7ncMHD$S^SB3kqCU_2I8BsTi12bDkNiZJlD@j_D0y69Vw^#M=_}) zOsj0_2j#T33KRkuzx-PWpg7LF5G)Sc!!r^QV&-3g34L7dK%Q!kY36deVRtk%svhYR z!8RUzG&eJ8b(q!{#?}9%MJCg4J^NN%UvrsHvw)xCRcO+IaoB$bGd2~wd~Zlru^Q(w zUf1qo*aT%rXG4C*WRv5cnqDw^qT5gC@ghhR>SyE3dpF*S=qM5riq|SIZyuKm=XZbf z(D%<@A2*y=mWE7fzyR?#lELhDo|wb}VDZPl0)P+z>r@aIzh%+28D+n|@95zjju#T% zu{O%Y)!`hKPwm;=0H+y!PWz@*^RlX8cBAv-Bkf2N*yok1WUExG6>gv#Dq_)S1FlpY z^}E}05oY?xqf1)bYz+nXnh`KC7m|NMjoP0vR2ls7HtzK{X69L?I)D>+YaCvia~?OZ z8D)727^ZD>_tZtzOEKLB%9}vM)Tfi#o6FP%GB4W ze-7___yWK(DWHJ9|6hIbze1i6uF+t(@z`8W!FL;6cE$7h_QyiZUssgOTb|lyyml)% z^Ip*Gm7G67*M^$?j8+ScI5SvO&@M&+KAG8#*c{{v;RFb$3Qk&Ug7q%`XD=slnUU#B zh+}O}mLKIJKC}Et@q7>XWV838jAzPyi^(Q`4804J(Ho(!N*LEGL({`Ql+ikpe|83;ks+@W)uFA(Kj zj~`hoGrj364!Rt859sdagVTsM3Z606YwFGtsr|QvBsg79hydrp&GYv4`(_mH`9_Ku z6<)Y(R`KkY+k^51&CN=ZuSgtPM-uk0@ZQ% ziW9f&3A`|?wZrKzp)YC$FNn>s2In}N(0{A|{Vc`904(xmxWM+G@?KLPAJ&2rzcZet z;*tqK**$%5OnbNg>DqgMBzNty-d^zOx&QY;1|p)r&kZJey~Oxz8k$cNSRX%Ks$mHN z$$W9&%c~oVuyI|4M1^{CkQy29UM73G^`@?!-*mh?Us9e> zjF|2Z(JQYvkYS4XBl!YmSO1ZGf%B>c^?S1btfswK)mpaWK}cGp4@IZe0fD0{>$Q+8 zT3_^zpxN@9TtJBqkwXh>0JImWXBY@D)j|yVrBIKGGYh5D32Qm_A$HbdHbZ|%$3b|2 z(!1_X*k}D#(Jz69-1(D0w58Oj$LVn~0*Ex`xutV3jswZTFh|KJcc0VmiB7%+*hHy+ zo^vxgODNE3sP~%&-ve)trbC2KNO3L1u}&gOF*bk>3FcfqRXX=IvlgmYB@(qQb8j?g zNc4Y+nDQRy895G#OZByem2Go-r=*?P)Us>Yp@8NE`#c7VG=S8m zggp zxRT&D4YcM1M}Roj?q@uR!h4&2jq=C%)^mdn`ZT<9W(EX=5#Z4`28pZLW#!%e1_tfn z73UgeE+#|(wQdiO{UKM;#J5W9YjVJHvF@GewJUC+^g#VdD!Au-v_Di4WSIqBNH0+F7rJvYaK z8iUNIrRl=0xGKl4bDKaBht9X540YC3B046pirZg&#g!6KLOXEAh)Ah0kyb>3ve#SmaGvtFA1`4IkI29vS<;rYqr@|CV zp~K4?bf*7Y-#E5M;P|ouMJ@k^eb=Nn;klGZjL*5t#>JOSoSV)m*LC-wxJ{KY?z;x+ z3nH3{Kz5f|k*YIy%o;}@8ID&}bLJ%P&QUsTrzr6L*3p|+6Ynw9tKUD$z{y;jbVU2G zl}bd*tE9cJocnG%9br(~%c4}x9kO5e8{@vaN3J#=ym=;__0)w|D%yi|k~#MDMoMZY zsj`ZsC(=#rmKGyb&Jjv7tGvt0=HT5Wi%)~5K$#NZ0v7AH@_pj)1mR0}?)1^^uh_FM!VzC z;g38W2f<<#$t-(^o_w~&f?8sURgwL5Sl3((7SqWuI{9b`atAFM{EAmsXqInY9&d#E z-V@?yVB};3!tYt!!TV^|FJg4B)}WZ}``;Tz@Ak_-!}mOo|ET`8y1;qp7l5(jdW53l@4&(fh z9rLF(%tHoaR#s3MQUcxBu5wz7A{NQPHl0^afx>@_HDkH=33)J>53gDr!Ic)w=Zhd zzqC>QZK-yDd2KoK$Aa$S{*>nBhIfr8`a{2%M=U+lA8VopIBo_y&J=4<1>2xq@1cyI zWU|-X_k~2XHn-p=)W`Mxki4I-fiIkK%>2F}!0vfR(zWCFsz9$9qPu;MP562x^9-eX z0zBN1?9LcFNwZ?Yy4l(bG`)WgE(J<1Ao)AN^Ik2AvO0IA959;PGY!?iq(sJO0oD4K znWI=nH2_t*EdnM2%k;_CPlWbM!~qmjy~Vc%kZg(^$K)n2YT23rhPb4b@0@O|irm~i znPOcwn#-tHEMYKJFnmmPMdLYWT31TD&a{W(W7qr#wN9KCNGS0osVp@jLq9r_$V_ldIpdhqRIL~ndEb(lmoTLt95XN}4xXMXg>XnsB2U zxUH`N4Y#2*`EypZWq!I-IYv{cu&!mWOLF9m=cJ%{{~*!9gYdbF+z*LUmd7%}y802< zeKwzlR||bcJkKz>6}!;^Vg=F^s74JDGXmtJdRq?N<=%6K^d8J7YPOi+szJlqO@)tM zi!a|>5>~PU156_25En&LQKc)}KmpKFa&f!Rd5S2cT|9tLk8{a8C_BQh>7WSA-^BavY-=2bpN2^n4{SO zpWe1|aj6}QDC+9f^Xf)%D@($=Lp(2iz8CnaN%9)obs@n`Etzu$s`M=!b_W-(f5zW+ zQSQBH>D_C(IoDcMW69m*e)VW`q$gK`2Z~HnL*MzBfJAecQf)EFPu1rnix);-Ez6NS zwYZwq+0Y**gUze%g~wXRL&9Ri{M23?iCc80&7;a?bqh`3YPI%hux>ed{@goU-yCap z{-8%$XMEY!uVSg*ngbe|rQFUaq-M{gIpdg5a+1XQVn6$1fq-Pl}4eFhy|2dl20fZ{VtrarEk0*xng)_zG<;*8ID?m z53vr!rMGI|+PZv4j_QkEF)GC&5!J;blItmgh-C_qY zRUU+@^?gOW@NBuhg=X0$fA&GIHkX8g%IubPQTjk)hPMNctV1OL)b&5n5{8c`&9Qg&8aCKB3;<)%4uKXZYzZ>6a<($O)!B+|_eJBM8Z$~3O! z3kIl*=t>3JxPttTOJAz2$nz5FBMxcqHXpKkL6^sv$eCsg5MR{d>1diZvKWReM*e~! zA8apUx685Rfl9NPo|@j1$c<+j*vr(kg8^mJ#RARxJo&De{=l=a%3(XR)ffkwhi|Wk z+bUtyW**W6?imL^v)vD@FXmNPuZtB)J{`IaaCpVNMaL(sqw+4BXOveyzzPyV>xWzK zVny&xD<$y!s3c>=$0DkM_YI3o-ZCq}`41ZgJhvU9jmaX0!wbQ!cFhv9n7kZaZ|5>& zERv_#e@cJYE?if}eOte{07c(GDQszPczD+$GUXUbs0Oq6SrKB%{o-jYTF3AeWTsqy zh21Av7^yQ~NR4h!;?G?J(6rGna{#ltfhZc0?_bPJQJA*&9(fzy96B3zQu5#s`$hq( zBjFJ#Dw*ousqQmEr;dz7q8h{!@=U7^ZkLpVQP*v?@*Ow)1xkX6lDkXHWqf6*qma_B zq)1p1Osp6=%7V1WJXl_W)7Vat^Or3$U+euWcl8P}!ZEjeyvh{9dwa@%gV+VC|S%!ge zoa@JQPZ>#Bs4OzS^76LQ>fnYc*(+pnO;kR~_O^e=J!ZPt^NY6u0fl+p#X>HS(*fg0 zV!PzApGFYO)VjXZ;{S*Z$?+!Y&;^$F)OY7uDl^LCm}dB&Hl$S6J}qx!(w6?wrW)Wp zI%Kw7+1hKiTp_0*VCDUCOrJ4Gr?}D!BS=6;H@fdDDi-7$6PYaVSO6ZS6)o=Dk?sq0 zb*wFxwIlw(oeLke#RP8OXw?z+wQ;5tJ8l;*E;B98qKl~cFV3cr$XePF943?EE;j^m zqC$g?n2JR{oY#UxiX%+DRW(Gk2;S*{c{oQ8C2fXgx2XNljS^WU2x4%$#Uolo&Uj<& znlaX`V^vq;GxF1l$5!;lGN^W@dh+dLZ7Ts6*n-Noh(q$J{Z*QplP^ek+5$d-tX;c7 z{@kIE&+CXG6P`HkBDAXQl}6m9-|b(isDS0iw~4AJJRKs3f6D~!WdwtPOXyf{jf>`* zH=}%Cwy4RZCD_*u2>2B{pRVeP<#-$3sZ<<{TINFitkl#zF)4`bv9CsFk2~kKtFDuKa6WqJ4(1M!O^*g+tVNtex z+rZ=^X&&akcI40w`$)ob`k02@lcPIuo5&?#gy5eF-DjKzy`xx@rcV}5X&I<@@d1q{ zrn1sS%6M0n64qVLPt8-^`w|?GY(^YMAI$~rmA-=r;=5R1E?DMrC80fC{hY}UCHpGY zce{U`{BCWyfiCV{)2)Tu>S#K@ydN0w{uw*p?5k7Er?1APkqFd2pnc-&} zgG?W&886r}MBu#EUuUB)nn$IW44LNub-cKn7j$Lh*WLT$Mq}cfKb*p=J}n@Sq5G`Y zAe!8te=;0CKJ~SOR>IfJ`o{gh;-WN_V>fHikvAzh>$GEp;P;N$2+FG1h`|Lj!po>7 zwJ57}q#RjQZgE zJQ+7-d~r+mheQ=`N1As+_&4LBrfjK$(nM?eS<7cp;~GE|I3ZZ4SoflN)u&}BTqF?9 zG$m4!)@kPmtJ~X*o(rc4_3k^{Im7PHlCty7-%mD`e5Y_7d1OX0-EvpdJZ^0!FXItI zA#^P$M@+BdHne`6|03dheI!AZx+RH_F`8RMzn$qdMv9E2Uw|pBdg{)#ZWo!1YBx`R zF|w^g4o&jxnUqVoPC;}i9F`>0bhZu%<7QwCjPn8@imBpdrq{*xbY0lQv|kznuEvZS zPzWlRi{3qdHEZD^-|EN3(G?(+J?P}b(G|VBJpvs^frl22Cp#*{3HCOxu86@Ct?qsj z#WF<`v|=_>c*lLp?L9Tw=5VB~sOpJ`(M&oqAVRBJ+;dcRtK#a8sl2zE)YEn=P2Y0n z(=6GjwCQL^kF$kMxz`Fz+>GWfF=!_kr^XFl{A{)5u8P2__vupfq_^H_UtT?riCJXF zz6-Yw*JYLJ+@R=c>YU5HsOv5AJclM~qCLeGYddoG0$y-Tv-H9C=JGfJmoV9?n$M(S zC4FSyMp~BnR>KX$X_Gt|p>J~vjtN+6X^IlL9aFSegX*6u8u#~bmA-nc^8ocH`YyWd zA(48rnEw*2NmM~uVRFLm#&8F}n8L`nIW1O8F$KD4i{7vc>rFzQT{+R$Gwa0{&0jgd z>PeHL03!5R$ysqEiDid7G+W&&HXPA9aX;q{9#6Yptg_uN97Uu}=q+Rj(mQ&aOUzch zy~BqWQ&#)mVPWP4m*K_IDd;GC=!(JCC!)J&NK<&;q?okZ&V&~2k!SNd-XsOx2qD#o zo?GW&1I?mSB%cDI$pP>4lX!=0gH zBbtd0`$-9?9@x8=7UX!hhQ5?44h5}+&7qxpJS(HE&qGLhr;2uHo)KPZxc0>ytTh>h7G5 zM-CZJ2D&d6-e#J9g_64$ry5UNtjX?#l3=j5M4bsfhRbj|Xq1 zH?{73+$9e;(<(n9EzG+4@S|Xy*rYMvmW=;{Pe-a@iTIrz!8$Y=(^N~3$RYapC9(?52daE%sp|6H6v8`N z_b)03%@fJ3j9U2uo%ZK8MSOGOb}pl=z57WRt8djb)*;&K))o>*88vdAOJ>5@)T%Gu zr)|P*B_@S#Ew?@LwP~FC*>&Yvs&kPq{p_7#$9~O?pyxPi%ef!xQo25rnD--M_f>0Y&K5DATg6H_M}^?k5I%ISit}ASpN&_}WD4 zWe%w|tzBg7F@@|tfz3^kF|6%s3WC%#3SuH~u?<3H zTrL=X^T~efEMiusU>$cnqE|>sAB%}vj>L(sV_pcunBP3inYip0saS}rO*&B0jtx@W zic%{5Ac4n!>#=Iy7EnGL=_v6?eYOP`5ql@9R}g2Gz|||OUz;4KeQ~7fqScXC;Hf64 z1b&Cih}dcT<>XOR+0)V|Qn$C(Z*#Y$MYMUJA-$AMSZ}?rd1|eZPh^DgPU#Nrirl9T znw8nC?xzvb_~dd2*4a6$CH4TvYSl$j_~27$8a&WM&~4)8jbc02A{-~3Y9WJ{`Qe_&zhfOc%%6W5mewrs z%}2t-_2(_CdnF~Gut4y7xE06x)_Fym6zijWZku&Blj{32%Xsc$4Qfkf`vNug%e28a zsR$0X$$A%^b75B8xci!X)-uMa&PP7S$^O{Rtq58%qHb6%x~=+-Z1@r|hU+Y%H%$#g zn;erSA8&YOp>BB2P*Xg~#9!m!vcPd%AQA1A)$8_tcb$1yW*KEK_5|1f7P`!)gW}S) zTdaqUXICTHvKn*qCr67+B1=0(qjRsqe`sjJ%{(X9YaUC_Tvl+Y22~N%v+ZT)D+#&S zi2hmYoCw_O7c0+l4CaHdhM_OMN+${_8A#9Im8cUXtj-)*9XP8Jtk2D{g;kZYr{c6(uacwRY9FlENHd zkMMdpppf^jj8b=oS}U@1BLgX*P@oPR+Pg|WKf%%`H<-Lx4{;1cU&V7gh|0|0mi(!4 z$7qrFy(p`cu8JpVBY+MS@P^!rBUDS{3@#CR4jk4?MPge-&ko`x%PBY`P0>gWrX z5~d6FPhX+8hZIx^5gfOv67%$g@LSaO(#wup>pJ~8YiM00dhk5|qw+p>T7kKC?P`TS zYO_%E7z&Gya;$swF;ksN4YRjP<9=jT+`X06MA^`K5wV8DJC6j%P5cJZQUy7s1-xZilNbPCsguCcHHQ# zAu;W}tddw!QgHC_BVV)VJQT696(8)!(@-E{Or_%5sCiLz#axI6TOxaL-U z-1RBz9x-_EdYaF;!0NW{^FHTpd-@jZyvrHfk;SO#v)Z`IBh7~tK=onjQhS$qRG!I} z;he_12uJ1#^XAAc)+b!jlWxrP&UzP4R8AGT2X@zc(i+u5t3aKvYc6zTYON zJ*`qDAK#(i89S+2O0(7qxLVm}aJiCr0td)ju5OzV)P ztQW3b3ESmgzb|6Ly*M`2l8KVKHB@Neuk2aca4lT1JiNcqJj6bfPi~-)WnN6qI zX};#C0gQIeN|KQTBU99=b~f0D@H!1|@%|%bzDSXNz6c4T5~_30o7Oa+=Cp;)8$>1B z&f&8;r5lx`ArsK{LL24C9daDVycMfOo6vG_@EPYZPgeJiG<3SkYJ3^44D{ckYSSkhxzi&Id|wq+!`vRjnrj0aNGK3gKlEM7=kyBQ)ZOS+f0O z*)dkF8Ts=3%MWAo&4>)BUUqhVd7sgG5wtgMrkB_*sljvKgF1Vx1YE>20=fk`DVy4bwq4kMHY+%rOjONIt?VeBH=p$; z>TR_u^R2uKAJ{_EX3;V0x4SfWLfr|Q65ky)<<`1V4<0SA`nc|>Ovu5M!17|&Uks{} z5xWKvA~=a{sOZzVr%Z!KSOSU~%k%r&ibvRN2P`vVB(&`ZED~+ChTW)iKyS4MV@z;M zMGyoN%CU|f(0Q`p|S~okrSdvI-Y)g5j2)afKV(-p zvNVt|5*Vk!^Vor2IfsoH4-wcN6J6KJN7x0m*$#x~Xvhb2rVWhw#b{B!Xg$gCsGKME z9boAfe(e2`*k^|3>|BSf7`jkq(>!q92^EL|M}CR4IOn@AnZ`q3rGfEPtnu(ll#H+o z-Cx3`%R4&*IC-qMW*xg8q^VwVgC4?z4g;lZgfQ_c; zyNd6$vnrh{Y)QQByceLJgQNVki+oyXn_G^Uq0coG@Y6}>C0XsECo3sbKRla{Bd<8#eV522*02!=wLl{)1K`S!D%#hecu%E zfoH3R!fRu;^`L=377y-i7-Yaw-Yx~3AP9Dp5S~Su>-&~V;jVW@soJ2!-GLiISC6>s z*5~!;sh=f5X7IJcr?f@1hY6lj@6e`eYWec`nb>_au8|xNF1UaeR1|1Ay*0DoX6Z>* zDPRoP59CQa><>be_u&RUjCKOx>kK~$D3tdwTB8MjN^^{sjqBCTAcRE zJTnu0`-SnZP9$v_RmIb&5d1EdWcFsoI7v3HO8U=^r#KOL46 zJi0?tb#?Q1+fOS1VWDe1y&JJ0$;gy*%%H)4tsAo_$;i)jLFSDz@!5XbT9)47Lpzwe zYAsbKOSzW-*9PrifNruj1)*@O>7sLVQ$G)Vqn)ti_n3aRQA8#5q+vPTCpsO`xo{+~<6GCU2pVUFO|D!)pDEGw=7;73EZ;A~0A(T^%4!*}ioYFN~R zaRLVy-XWAa8rmJ%!C&f*0z2r> zZ$D`eR>j);;P-&A^ibA}T!V`YSZnA;*ODXqlr3fu&&=A~eb`;uMbs6Suveal+_bP{ zoODrJQaI^(RU-rx7EP?PRhJYp?;C@1$)Am~rxtRQ^Cq#J$5*P2ux7CiS1Fvpsk@3b zyZQj*qy;KHyu?$Lu*^NmY51!8-8O8$p@ql|zv_hFpNoZcw=lo4O#m9(pAfmv!G^p0 zkHe+fe{ClADMH`k$8I~S7ox0w2L9*=QtqI#IXd;huqadD;yh(t)aa+3CdctIM=kGz zt9uU_WGS*{fRb1#S0|{6@wd74!~g`z-J(e*I;X*#Bd4x-`GcmP_}06&pn})c`ApEt zfCuk;8`b^6%tOaw*#CW%{KZ9*73+baULyK(=DA7-bBh^jIC2OHQ?&48oU9buC`2_c|ZXnK(%Eg)ABDM9H)0%8M%fM`MsMM~&II;5Q6J_uHPzj<%w_h#Ok zFMlzUbI#s-?X_3^thE8lDRh};z`H9pOTv*JnuYj@1dWm!)p+P7MPmoHOl*=AnnmUo zlFY7`@67KGHs-<|_Ajqm_%fooR|w75_)&NkajS=!C_amG`M!7KED3i%@=uBEdttNIu= zM6aBO*H{lTUL*q6fC~Q88r0_euYxUoynTvuEy_w#W~+y%aoi2TVx(SR11U8vroay4 zHLP`C>Bj0{CmkG#|J_v;)E5x2V>H7w>S67b?R$4`S8YSe@#AIk>Ca|gAJFQ~@%iGo z6C4EoZ>(6oI+u&mpwRoo$g1BzchX)oSA#66fv2j^3|$g>gli4bYux92n)Q+3`l4D% zkHOa9%g1oCIzZ~{yjB6Zk3HCZfE!z$$2``+k}HeqOd~qchH3fni>IG>M5y(J`GCtT zwJXn9P<)>%CS={Ao-ohmFS(71Wo6mAS`xF!RAR1F3CDfM(YqCBOKI%7W`(N!wxd>C zU}8yF?2WzG-fHt2nkhj;}S8J;Lmzi(t8m9RBRbLq@dlReE`l3y>2U{Zd zDBo5eyS64oqg8}>v4VfY=E#|F7k9_v+C4@WEJcf+qg}te=HEs^-+ytQzQ!US$C~k_ z;E|k=%-&P&9qNK;?XtSv3=8d?y8O6cXD=Yh=9K<|j=Z?DK4}kT-NrqFA5@bRvcDKv zMXu5iuV>$M&IR)U$A3j_@Ae&~b7zhBo|>oC8_`=4X%6hKSM$Xf;RW1<4M6s%jIEkd zvvay}I?sQX@0oqI4{P`~b@(r7HW6d_%ez_G*tL1z_Dr3Ku=B?>4=Ul(9oaNe`v0;o zx;x+l3g4zXMRTvdtRAx2I)7&pMp&JK3t4xBUv( z9dU=P6oK;XBG)jVI8vzjKA-l?c4$4BDeT1G>@s3ylh-UiT&E#7qnR;W>RAZr*6@B? z0k@5r5>Ci{tKF8-w^gl|l=^D*lO|`p65YiZK8d(}db>Qr^{m=yqTRgDUa=AN%4xo{ z@_ckIXC-?e|9&{^#>$xO=FX0e9!5;tTQa;DFOI(@sv{r14Hv|cwA`mSL;9-I$2l-O z0aE)XrGrn+7gO=KW)+<=UdRz-6uvYp&X|7#g0fczC(KSMdOx^ZEy+?yI8VHBh_rpe)?=0x;-DVD~8&mxk8}^_~H$Ope8>3l3$kq{+U3SC4Cu$tKWv9KeZdsnii{au(H5H||%j;QtHKC6sA?b{o z`TLHZOv_YM^K(DHtT45KiQu&-w4l0t6^74gtZ;gY)5$)OQ`5X>p#8dSb@nelYWbJf zfz3*AoTdRqhj(3#PVB_LJhiAs>?KdF&(8Tru~6#Vh$${Na+|r(>c+X~Z6_!cvFi_6 z8!FU z2fS<~D#ADaJ|UL5e{5#PH%QV=tToC;sxkxj;vHcsF!u^xhgOzekG0J+3|oQef~RE? z1@zOg^Is4^ob-vzB6~=N;+ve2$8xOW6Sh@u8xAH!uyglwTrm59aH&>@i%M~?n0^Tv zZs@#g#GP!H*B5Km7rr}XWf*uV`E;ULj^AFy(T=$i!z6-nY6UZf8?jdldfj$pg z%9`Q?SfgBWxs8k7BSdGyd9y+7PQ2z&@jE{vI`i`fYyoKuMS4*^IyozWJ*j-ilaCTT zGT>BWINz>oGx;{*!h4{GHUVCj(DVSJ$HP)R3fNzES=LnSj*l79+xQIJ*?_VZQu8n0 z&Nj`vbtHGQ`t_5_pHTI4KC9$cXCesv^TWt}jO-3{5IY}jY6M-S;wFvpDl5?3+=^Z| zmh-~&RW}55lAAH5N@%qVO`bs-iHCsXuff5Vh~KNw?KljwmrLtk{0Eb_;l#m_%h23`)K0W&R?bJUS?sZar~8Mt)1$lm z%%_kI!oXYqnb_>yoAcC)T98x(_97VItw)q8kav453@#=FLK&Z*S-*{S81~Ifd#Jxh z^Vc_pWHeclAv&nMLZG`7EDuxh5%2HM4GGX~BiGHzKI*F7`P*Q|;+XyO$3{ILY>?5O z0RGO81M-5t^$p6vUsK38SrxwA1{hij%^7Kwy(4tL4Of75V72swF{oa_m%^5Nlk*X( zVA%eia4PVx-7d z=PKQ?2QQQ-#kSL=&(n$`UOgnDPvdeLy|ZX^zb33lsOJ&%Xt2Fk1@t*X6bXEgz0Yep z;x^N7?&?B6_T_u3-K;i^0KQwrcKdq8>4chR#nFBx)d<>Hs)1!)i%skGY$uCWCtSYe zXt&>{jpHCrP_2U?Y0*ozkac z-T@t9OPelrY zlzzGC`G$R?@2=Yq3-(X6cRlco-dX~cq6~|eRS6{qmP7;N{3_my>Dk&*=dQ9aP*=r8 zfDfWkuKGbHtR~B5m^P?BH$YH7DUgx4ZFP7Y8 z5g8)yMRj3i_U)Rk6mPcm%B>mmyV?cQ+mA#!YqMIj+rQ~4;;1RE?&^L>f8neuC3(W) zZ1{u{8~a+|&j^~jPtOBK%S>+36Z%#9v2!=s0f{^wiv)s2`fDU(8Q~DR>29hNZVo8J zX{E~xF{WRIA{)CyuD^!G4 zPK;q{SLL?)%ZB$Bcrji=NbgXy^*uBQ$mT8_8U<6Ud&1O*mBj`eM*J_@)0>h>B5Ru_ zPub$i@}x#eN#5S^D=^J$zRcRbT(dNT=ICa}EjPWj(OWd1UwSj{Ra#9mNWa*B^rOod zmmCPrmw>bFiS<$idC7Xo9aEq>=gGCGhc%mGjMxw1R^Ij!45_s*qI{~WX*z7#$5OeU z=$V@DCX*czGPh(cyykd6bnT+0y-ZYhsF$GU2+32zk7j|tL@>Kyon#}h^34U4zryAo zPo0iF>HBxE?nv%Uoodtb!;>rpZV;87g|(9NV0jx>w180*I$(07aG~Pj zlyvrBg*juZmqw<)bymddYw^Qf(yVOjrA`IdbwL%9wrR;A-fY{jH6L8N^U|#`0OFY! zrAi}jKJ8pikd|w5ZVtG(uXg7wGGrpx2sA{{Z$8()dlhs9+Mxs(_BRP`FD!IF5iPqv z5&uOOCp6n}@?tezhm+}y8Zz@#rxkucYaW*g{!L(8NwR6mpkDJCWxSrxXwlq=RA)$( z!SRqjV46`bLm?Xy6#iW>%zhrQTxrdPCan6+^>QGdfTVmfuP)|bM!#%-@dPZ+57?CZ zUxnwy^X*Vy#$ImV>|t%X4mr&#`|@%!Zz?3@X;eTNXB>-kIGAohjoiS@UhcKiYwlA! zUT0Uz1H;^y5ZeMKX&MJGunuTzCj)oRuO8D+3nU&vjF6O!k{e~^enB>Od zEY=LJj`*KE1~Rb6JGv@w!Y_#~_YxONC1Y(z*sm}7CJX?!4uI~cCjahbl+Uw+mQ_90 zMF)xQE`aMR*3Fm!Y~&HAgg~_I0db{(Wz2BBX4<=vXk4;T-^_ zOHR{usCdzPzj-F$6l%a2to#As$$Jw&f^bc}DR5*$QGXi33ijpo0IE~tKv&Z93_}MF`@d(Atn&ua zdx5Qlq;w*NqDmqK6(*mLxeCPjU`-PkW%P>y?)^kn<$Q~et0ipgM_+)-v1zO(jc({OL*mlJ; z%X_m6h-(szxR$U7*%qT)iGpXh_+Zz z5%D&TAU(ke7YxGL+TSc`jXi*Ovl`$i6p;un+2dZ!HGG}1u^R?lJ3UvMifT!f19eV; zea|05pb)U7ZT5{qq83@~o6p^30%nz?GqNiHGJV!n4eV)&#o+i?6PIW%WPQI36bw6O z6@I=`L7D^=Z1w`6?XG+WgWN%en}P?Da7UJo7bXGlm2&GxRgf>>+m=-d1m2m&c-_Jx ztZuOJ)MH(%_tsuYO^|Oo6WIyDt*+fb8+o5>Z~X>)B(0^dO3%;L4ZufmbGNaxw+{~) zZuzD%M*)4vsLKL;bdudVGeat}3mlK{?3lfi6-|GOZu13Iji`tu=BwMhfs&sVN=V^a z$ac`_OCdGUd(dj?@x$n{$w#$0iBlPH3F(D}y36`v5OiPMb70MMqCK&($5%merj=13 zl6wtcGvP$`*C#S=m1|j!{{wenuIm(@2h~`FK4)g1b8N75Sz!? z3VNwSjlLE9zK18qKuT37h_1+(Y+P;j^yZ=AbG2ijDp3yS+bbSdLLPB~N75w2b>p$p zwCB>>{+mVpBv{0SsBrOYtpa*NK>@Bqi$yYfkpk|wH4j2d`C{FtG_Yev695pCJ4Yu# z^gdqIE?!;l3_7TL{32L81z;)Tl#_@txHuDT_ZQbeukCOEWyZ?!lTD}4bWrbuberpq z_7pwps&*Ar=F4HHFJXxn?EZyoQcKF-JJpm8@g6#{xYe66V5bW;c<5ZVCT0;p(||i< zzk8iltJo6fKc>n9;0U5orF#pZKkFgRVgdLI|`Swe8@wV-IttwT3cg94-K6B3a09QmJlQr z>(PumoxEjHQef_J0F=3XHV+-v7>eGL{Vsgzm-K)XOFU}Ce}al#naC@uYktUWou9aK zc?JpSaFSJM2J7NEOS&{)NxvY$j3Wi|;}<(mu^s?=2MavN8yaHo{1s4PyMJU;oWm7!B1frSInj8c=qu`Z7m@ z7h>UM}Z;|W@(Ma;;*TX);d z`tyDpNLrn*m#s3?$vvfS)D!RHWk;iA)RZyU@Jk|6LjsnJUo=PI6tep-Ddew*H%j8} zIag3!@%8`!I9bFQ;pad3Na+OOyueKdt)Z>hmkR(aG~8XhIAX=zba{%v)RPf!u-J2c zuB%WSt-KErLnegFP9EuIj?uN!h$(%X?x_=vrDkqx6jt^qJlKUV01vJ32^s&E^X6c zW*utX_`G6$H3tSse~ok~qprcraLM7kKc&aQJsHSjduMVGw4B;?PA-9?V+qVSk7iHr zvTx4Rz6BnDK?PBHazM4cT8i&4@O_ko3s6v3D`wzqG-wjb)#P?*{8Kku4@U(ko{x6w zIIEyO)1%1@@xg9mLk^je1_#9|&}jz=TDKsbj!B(Xn`&!lTpIe|I}q)6iNBN5Q=y+Y zet&c(UVHWta{ke%7|jSYuebQJ7C!;AO>bH&f_I*BnW62K3GV2as&#a7i_1y`o$Xc0 z*@pl=>Z0cj^xPY@A|o{-V*LYG9%0e-?eoNft7zL7We^RISKe^13$r^l)&}dFga3A_D^Nvu5EJu8Ju}gus9$X>AH6^m3H;nEQ0+gSJ9@nW=Ig(I}?1lUR7F_A5;N}?4WfqLuddt70fIpa&1akuFJ74+_v z;}`Z|ug@@O5(_4)8Oh z4^%KYlnthrJr$4b^?J2Spn+b6rB_Ys=Y+wuDPef}RVnptTMZhLPZZn~tLE@uYv2x= zilm5}Mk1U(s zk@@)g6WrJV4!vtfCO|WlD(G-n$bMopCo7$G0X;+)|7r<+Mb~#wAw>qP>0%%>GIMcbLX7cHz17%*ZU{0Gk?`vQg^Kl_@zdD=%(!^xcn`etNSQNc~C zHBGdl(@t6S5GWgXnRN$l@?ueBJ^+EcIB*O4Co~Nk_+V{#!~m%6KhFOTrJAnY`>)!d zghFR6-Mj%SJ_>H+m{9=Hwkw{j!V~(oie7iSe8+2VxblLd;k;c1TuyRHfJwdS+)*IZ zJ%tBXvN-q+zx9(iRy+Xq*V7Y^fkCi30#Mx;z0S#`#()k$aJmuBviJ9j@|>B0FFqOB z2Td3|?T&X|`BBOzjik54;hSL&&-=kE0~R6WqN5_a%9YQrPIlKA)_-#xjZb3MhEH%o zR4$7oRKk#XYRO?I)=@xlX!zwceESnQlD1{NsD8EWlX$v?(?6}qXXYEQU0(Yqb%O@y zI#(l_ERs8oNQ|Cn@(YC{A1 zNR)6lJ=%wL*t41DF`uw#V9UT+UKdFKXIj>&!lbb(7Tu+>U9iK3K-hCZu&y0B*baTv z{44fB1dHOyd)qiE|Goijq}mg#7Qnq}H949!s@#~%OWqQRdm&EMAq%jTkCmysz{I}( zlQsH-U-g@tn-5CyyjE@x$q!()St%w|Iu z*SW~euz6Ch#0i^a27ge=OY;WP+MK*#lkzTalP>uv;M155@FyK}uWcQ)HEuMy%=_OY zvSGI|A9fqP>rCT*LS6kZ`qyUEo3oIM^~3pC|vjf?x83;SVoF0Dj)ew&K+g$O_kjxVYHSZ=ULsVGK4n+me;z zDGoUDQ>JMmS)rY1#aVD5Jb$zyei~x8OO;6U0dPx8RwugrD&WRjCZ{7o?86>J{(zs` zq>;IND9aK)9j*FQMCpJ8C~~zuUHtUD(rV~!*be(T1mp{V`sh=?C&;W`u>BJ*LPz+~ zXT39LR??;8dMCIgQIxLm%}@VMzNP~#!c$bqI(Gnl01#3b zG4jA;Ju~Ny2|{5uv!8pJxn+c^Wla-MGBC~aOi~SuH&j5brl79Bs|?(l+T|yvbYq$5 zj=iu|40i4Sh~=tg`Fs*vfW^&%y|sx)S28BIl5xMDKadX<7D`IglXXi7AF|BjWX|vm z9!l&)B+uU4b==#HG(_6p7M{)|rCVgK`*DL8&OAVN1?z;tA0qN4?<6?RwQiajGmHZJ)M*8>J z5_LP<+z2DC*(t}vv&hAnFF8SAypa>|;0%awtDgy?SN-Lja8v%No!@dHYwdDw#Dw!H zQNuoGl@UJBD)8*pn1YiPX!hzz=p_jKU;i5Vw_3Mq|1dU9*WV-|`U5BrFcRu$vm{+g zAURsJzW3f>Y=arD6rok?%@oHwYXMBpP>KEsz_wj@{JtZ%6Tv1zCyeQ?I9hSkYBR=z z{WkI3j-X4mkBeqM2j6_Ec}RRu5)NmTV*EF(vzrX8Zuz%SIOwB@Duq(&$z95TqAQ{BQP`rWAOId)z5G+)6 z53U9Md)S40H9v_~3-u=uw`P8lEYYOd zr>9ST5ox3tmE5?<@Fj(%lf%-VyXQ=&#`f;;Mti@r+5S9hYlKa7?R1iP7uKe#p7>@G zsh!TwQ}$4Aa+J}|PBO@?wQVR?rPQAGgDa7h?GkitA-T?5#KOqP#L6|ijMEr0rizw>fbe(_s8!%9GBQOE^M*n1{a5r58vd*>G zA25%_k724GOadSbqyb7@7tGzL5S-=jG0X3wOi0bD8w^x40OtN@`TsvcB%c5Xq+|O) zXqJz#TyhT(CT=f0{}NaZh3`-%!u<@vG-a0&3E&8tW6V0{iM2q`#R93~B=wSqXbvdz ze`8Zkg(@H0hM?iJAh^Is{Jqxk+FBHhp8KM`>|BMiO;{;dlEBe(D^_qioIHB?EZQ$3 zIITA=*cs^HM_zTOdNno%K$-_%|1LVgO7~zux4$c|`L^Y?r)NJ8fT|6zQ3D0r8~}{j zHcbrsbO{#q6ECpIYn0D|&I^~p04RW(HhKD|&u_-K=Hb6Eq8obxAXH(=AX?Ba@yO5L z`l>J9umcp}s*g37Tq_{ewi*Ly%MijgL;I&g`ppWWUcvCpm$ab04jrN5^=Kcw$oIUl z{)yk>?B5;)=CLW~1qTSUhbvJ8CV**H$7VxKD%#($`YrkDiRtbXvI=bI?+i{wFVHsxyxbCDfH9#9RAu)%+`Ig;lCg26&N|* z6P?)LhZBtk%=Ax%0T8BjSAvQt%YL>~52{c4yFN~*ON7%-E<@=R7=ukGMok{`OjE|% zUXcu#$1ZyKaWW}Qn|l9Nv-}LpYo@%KSCxSh%Uy+jDI1bxQW`dDHr&oq-)MqMZ3Mt`mIn{&~w`4$x}&mY2@(CS^ZlwLWxM zo-H*($>YwD`w^T|tx-X)YH6{fbrn1J6Mo|x_33_TZ>K^GI2HN#7C51_4wk%Y@6H3S z$^fa4Aip+W^tylDG5{g1fcC`I9^w6wg5RIQz(R9Cs_%DGe}Uwf)4(G;-t4d`_WLV8 zE{|Os2xdLcebImTIphqOUG>GB`sG*=i~w$d0R1t7i~jWUeK5Pz@^Lqo!YDuS0T>fj zFpU=Pm-1M@{+t3Ls^QO@B@X;F=kHI&040VUJumf#pEo}Ov%6n=F?qRD2k2Q26eZ-& z@Ajvk_kh`@ILNQjS?)N1F&_gRnOYK~^@pD|faVai$uY6})877P>;JR$Ka0l2WB8v_ h|DRL;|Es`fBJMsw4}|y=pRE9YCy(hK%{pQg@LvkMiL3ws literal 0 HcmV?d00001 diff --git a/src/frontend_static/docs/API_REFERENCE.md b/src/frontend_static/docs/API_REFERENCE.md index 7fbdc73f..7b9a6b4f 100644 --- a/src/frontend_static/docs/API_REFERENCE.md +++ b/src/frontend_static/docs/API_REFERENCE.md @@ -5,6 +5,7 @@ --- ## Getting Started +Base URLs, authentication, and rate limits you need before calling endpoints. ### Base URL ``` @@ -35,6 +36,7 @@ curl -X GET https://api.example.com/v1/crews \ --- ## Authentication Endpoints +Login, refresh, and logout flows to manage tokens. ### POST /auth/login **Login with credentials** @@ -77,6 +79,7 @@ Response: 204 No Content --- ## Crew Management +Create and manage multi-agent crews and their configurations. ### GET /crews **List all crews** @@ -160,6 +163,7 @@ Response: 204 No Content --- ## Agent Management +Create and list individual agents with roles, models, and tools. ### GET /agents **List all agents** @@ -201,6 +205,7 @@ Response: 201 Created --- ## Execution Management +Start executions, get status, retrieve traces, and stop runs. ### POST /executions **Start crew execution** @@ -264,6 +269,7 @@ Response: 200 OK --- ## Task Management +Create and list tasks assigned to agents. ### GET /tasks **List tasks** @@ -302,6 +308,7 @@ Response: 201 Created --- ## Tool Management +Discover built-in tools and register custom tools. ### GET /tools **List available tools** @@ -344,6 +351,7 @@ Response: 201 Created --- ## Memory Management +Fetch and clear short/long-term memory for a crew. ### GET /memory/{crew_id} **Get crew memory** @@ -378,40 +386,10 @@ Response: 204 No Content --- -## Analytics -### GET /analytics/usage -**Get usage statistics** -```json -Response: 200 OK -{ - "period": "2024-01", - "executions": 1543, - "tokens_used": 2450000, - "success_rate": 0.98, - "avg_duration": 245 -} -``` -### GET /analytics/performance -**Get performance metrics** -```json -Response: 200 OK -{ - "crews": [ - { - "crew_id": "crew_abc123", - "executions": 500, - "success_rate": 0.99, - "avg_duration": 180 - } - ] -} -``` - ---- - -## WebSocket Events +## 🔵 WebSocket Events +Real-time updates for task lifecycle, errors, and progress. ### Connection ```javascript @@ -454,7 +432,8 @@ ws.onopen = () => { --- -## Error Codes +## 🔷 Error Codes +Standardized error responses and meanings. | Code | Message | Description | |------|---------|-------------| @@ -482,7 +461,8 @@ ws.onopen = () => { --- -## Testing +## 🔹 Testing +Sandbox, Postman collection, and OpenAPI spec. ### Sandbox Environment ```bash @@ -493,55 +473,6 @@ curl -X POST https://sandbox-api.kasal.ai/v1/crews \ -d @crew.json ``` -### Postman Collection -[Download Collection](https://api.kasal.ai/postman/kasal-api-v1.json) - -### OpenAPI Spec -[View OpenAPI 3.0 Spec](https://api.kasal.ai/openapi.json) - ---- - -## SDKs & Libraries - -### Python -```python -pip install kasal-sdk - -from kasal import KasalClient - -client = KasalClient(api_key="your_key") -crew = client.crews.create(name="My Crew") -result = client.execute(crew.id, inputs={}) -``` - -### JavaScript/TypeScript -```javascript -npm install @kasal/sdk - -import { Kasal } from '@kasal/sdk'; - -const kasal = new Kasal({ apiKey: 'your_key' }); -const crew = await kasal.crews.create({ name: 'My Crew' }); -const result = await kasal.execute(crew.id, {}); -``` - -### Go -```go -import "github.com/kasal/kasal-go" - -client := kasal.NewClient("your_key") -crew, _ := client.Crews.Create("My Crew") -result, _ := client.Execute(crew.ID, inputs) -``` - ---- - -## API Support - -- **Status Page**: [status.kasal.ai](https://status.kasal.ai) -- **API Console**: [console.kasal.ai](https://console.kasal.ai) -- **Developer Forum**: [forum.kasal.ai](https://forum.kasal.ai) -- **Email**: api-support@kasal.ai --- diff --git a/src/frontend_static/docs/ARCHITECTURE_GUIDE.md b/src/frontend_static/docs/ARCHITECTURE_GUIDE.md index f3362f73..f1186d73 100644 --- a/src/frontend_static/docs/ARCHITECTURE_GUIDE.md +++ b/src/frontend_static/docs/ARCHITECTURE_GUIDE.md @@ -1,10 +1,12 @@ -# Kasal Solution Architecture +# 🔵 Kasal Solution Architecture > **Enterprise AI Orchestration Platform** - Scalable, secure, cloud-native - +![Kasal Overvew](/src/docs/images/Kasal-overview.png) +*Visual workflow designer for creating AI agent collaborations* --- ## System Overview +What the platform aims to achieve and core design principles. ### Platform Vision **Transform business workflows with autonomous AI agents** - Zero infrastructure complexity @@ -21,6 +23,7 @@ --- ## High-Level Architecture +A big-picture view of the client, application, AI, and data layers. ```mermaid graph TB @@ -69,284 +72,89 @@ graph TB --- -## Component Architecture - -### Frontend (React SPA) -``` -components/ -├── Workflow/ # Visual designer -├── Execution/ # Real-time monitoring -├── Configuration/ # System settings -└── Analytics/ # Performance metrics -``` - -**Key Technologies**: React 18, TypeScript, Material-UI, ReactFlow, Zustand +## Architecture Pattern +The layered approach and how requests flow through components. + +### High-level +- Layered architecture: + - Frontend (React SPA) → API (FastAPI) → Services → Repositories → Database +- Async-first (async SQLAlchemy, background tasks, queues) +- Config via environment (src/backend/src/config/settings.py) +- Pluggable orchestration engine (src/backend/src/engines/ with CrewAI) + +### Request lifecycle (CRUD path) +From HTTP request to response: validation, business logic, and persistence. +1) Router in api/ receives request, validates using schemas/ +2) Router calls services/ for business logic +3) Service uses repositories/ for DB/external I/O +4) Data persisted via db/session.py +5) Response serialized with Pydantic schemas + +### Orchestration lifecycle (AI execution) +How executions are prepared, run, and observed using the engine. +- Entry via executions_router.py → execution_service.py +- Service prepares agents/tools/memory and selects engine (engines/engine_factory.py) +- CrewAI path: + - Prep: engines/crewai/crew_preparation.py and flow_preparation.py + - Run: engines/crewai/execution_runner.py with callbacks/guardrails + - Observability: execution_logs_service.py, execution_trace_service.py +- Persist status/history: execution_repository.py, execution_history_repository.py + +### Background processing +Schedulers and queues for recurring and long-running tasks. +- Scheduler at startup: scheduler_service.py +- Embedding queue (SQLite): embedding_queue_service.py (batches writes) +- Startup/shutdown cleanup: execution_cleanup_service.py + +### Data modeling +ORM entities, Pydantic schemas, and repository boundaries. +- ORM in models/* mirrors schemas/* +- Repositories encapsulate all SQL/external calls (Databricks APIs, Vector Search, MLflow) +- db/session.py: + - Async engine and session factory + - SQLite lock retry w/ backoff + - Optional SQL logging via SQL_DEBUG=true + +### Auth, identity, and tenancy +User context, group isolation, and authorization controls. +- Databricks Apps headers parsed by utils/user_context.py +- Group-aware multi-tenant context propagated via middleware +- JWT/basic auth routes in auth_router.py, users in users_router.py +- Authorization checks in core/permissions.py -### Backend Services -``` -services/ -├── AuthService # JWT + OAuth -├── CrewService # Agent orchestration -├── ExecutionService # Workflow execution -├── MemoryService # Persistent context -└── IntegrationService # External systems -``` - -**Key Technologies**: FastAPI, SQLAlchemy 2.0, Pydantic, AsyncIO - -### AI Engine -``` -engine/ -├── AgentFactory # Agent creation -├── TaskProcessor # Task execution -├── ToolRegistry # Tool management -└── MemoryBackend # Context persistence -``` - -**Key Technologies**: CrewAI, LangChain, Vector Embeddings - ---- - -## Security Architecture - -### Authentication & Authorization -```python -# Multi-layer security -1. API Gateway → Rate limiting, DDoS protection -2. JWT Tokens → Stateless authentication -3. RBAC → Role-based permissions -4. Row-Level → Tenant data isolation -5. Audit Logs → Complete traceability -``` ### Security Controls +Defense-in-depth across network, API, data, secrets, and compliance. | Layer | Control | Implementation | |-------|---------|----------------| | **Network** | TLS 1.3 | End-to-end encryption | | **API** | OAuth 2.0 | Databricks SSO | | **Data** | AES-256 | Encryption at rest | -| **Secrets** | Vault | HashiCorp Vault | -| **Compliance** | SOC2 | Audit trails | --- -## Data Architecture - -### Data Model -```sql --- Core entities -crews (id, name, config, owner_id, group_id) -agents (id, crew_id, role, capabilities) -tasks (id, agent_id, description, status) -executions (id, crew_id, job_id, status) -traces (id, execution_id, timestamp, data) -``` - -### Data Flow -``` -User Request → API → Service → Repository → Database - ↓ ↓ ↓ ↓ ↓ - Validation Business Domain Data Storage - Logic Model Access Engine -``` - ### Storage Strategy +Where different data types live and why. | Data Type | Storage | Purpose | |-----------|---------|---------| | **Transactional** | PostgreSQL | ACID compliance | -| **Session** | Redis | Fast cache | | **Vectors** | Databricks Vector | Semantic search | -| **Files** | S3/Azure Blob | Document storage | -| **Logs** | CloudWatch/Datadog | Observability | - ---- - -## Performance Architecture - -### Scaling Strategy -```yaml -Horizontal Scaling: - - API: Auto-scale 2-100 pods - - Workers: Queue-based scaling - - Database: Read replicas - - Cache: Redis cluster - -Vertical Scaling: - - LLM Gateway: GPU instances - - Vector Search: Memory-optimized -``` - -### Performance Metrics -| Component | Target | Current | -|-----------|--------|---------| -| **API Latency** | <100ms | 45ms | -| **Execution Start** | <1s | 0.3s | -| **Throughput** | 10K req/s | 15K req/s | -| **Availability** | 99.99% | 99.995% | - -### Optimization Techniques -- **Connection Pooling**: 20 connections, 40 overflow -- **Batch Processing**: 50-item chunks -- **Async Everything**: Non-blocking I/O -- **Caching**: Redis with 15min TTL -- **CDN**: Static assets via CloudFront - ---- - -## Integration Architecture - -### API Gateway Pattern -```nginx -location /api/v1/ { - rate_limit 100/s; - auth_jwt on; - proxy_pass backend_cluster; -} -``` - -### External Integrations -| System | Method | Use Case | -|--------|--------|----------| -| **Databricks** | OAuth + REST | ML models, compute | -| **Slack/Teams** | Webhooks | Notifications | -| **Salesforce** | REST API | CRM data | -| **GitHub** | GraphQL | Code repos | -| **S3/Azure** | SDK | File storage | - -### Event-Driven Architecture -```python -# Event bus pattern -EventBus.publish("execution.started", { - "crew_id": "abc123", - "job_id": "job456", - "timestamp": datetime.now() -}) - -# Subscribers -- NotificationService → Send alerts -- AnalyticsService → Track metrics -- AuditService → Log activity -``` +| **Logs** | MLFlow traces | Observability | --- -## Deployment Architecture - -### Container Strategy -```dockerfile -# Multi-stage build -FROM python:3.9-slim AS builder -# Build dependencies - -FROM python:3.9-slim -# Runtime only -``` - -### Kubernetes Deployment -```yaml -apiVersion: apps/v1 -kind: Deployment -spec: - replicas: 3 - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 -``` +### Observability +Logs, traces, metrics, and how to access them. +- Central log manager: core/logger.py (writes to LOG_DIR) +- API/SQL logging toggles (LOG_LEVEL, SQL_DEBUG) +- Execution logs/traces persisted and queryable via dedicated routes/services -### CI/CD Pipeline -``` -1. Code Push → GitHub -2. Tests → GitHub Actions -3. Build → Docker -4. Deploy → Kubernetes -5. Monitor → Datadog -``` +### Configuration flags (selected) +Important toggles that affect developer and runtime experience. +- DOCS_ENABLED: enables /docs +- AUTO_SEED_DATABASE: async background seeders post DB init +- DATABASE_TYPE: sqlite with SQLITE_DB_PATH ---- - -## Monitoring & Observability - -### Three Pillars -```python -# 1. Metrics (Prometheus) -execution_duration_seconds.observe(duration) -active_crews_gauge.set(count) - -# 2. Logs (ELK Stack) -logger.info("Execution completed", - crew_id=crew_id, - duration=duration) - -# 3. Traces (Jaeger) -with tracer.start_span("crew_execution"): - result = await crew.execute() -``` - -### SLO/SLA Targets -| Service | SLO | SLA | -|---------|-----|-----| -| **API Availability** | 99.95% | 99.9% | -| **Execution Success** | 98% | 95% | -| **Response Time P95** | 200ms | 500ms | -| **Data Durability** | 99.999999% | 99.9999% | - ---- -## Disaster Recovery - -### Backup Strategy -- **Database**: Daily snapshots, 30-day retention -- **File Storage**: Cross-region replication -- **Configuration**: Git-backed, versioned - -### RTO/RPO Targets -- **RTO** (Recovery Time): 4 hours -- **RPO** (Point Objective): 1 hour - -### Failover Process -``` -1. Health check fails → 3 retries -2. Trigger failover → DNS update -3. Activate standby → Warm replicas -4. Verify services → Health checks -5. Resume traffic → Gradual rollout -``` - ---- - -## Technology Roadmap - -### Q1 2025 -- Core platform launch -- Databricks integration -- Kubernetes deployment - -### Q2 2025 -- Multi-region support -- Advanced analytics -- Mobile SDK - -### Q3 2025 -- GraphQL API -- Edge computing -- AI marketplace - -### Q4 2025 -- Quantum-ready encryption -- Autonomous optimization -- Enterprise marketplace - ---- - -## Architecture Support - -- **Architecture Review Board**: Weekly Thursdays -- **Design Docs**: Confluence/architecture -- **Slack**: #architecture-decisions -- **Email**: architecture@example.com - ---- *Architected for scale, built for the future* \ No newline at end of file diff --git a/src/frontend_static/docs/BUSINESS_USER_GUIDE.md b/src/frontend_static/docs/BUSINESS_USER_GUIDE.md deleted file mode 100644 index 6e1b5fc7..00000000 --- a/src/frontend_static/docs/BUSINESS_USER_GUIDE.md +++ /dev/null @@ -1,207 +0,0 @@ -# Kasal Business User Guide - -> **AI Workers for Your Business** - No coding required - ---- - -## What is Kasal? - -**Your AI workforce that never sleeps.** Kasal orchestrates AI agents to handle complex workflows automatically, 24/7. - -### Perfect For: -- **Customer Support** → 70% faster response times -- **Content Creation** → 5x more output -- **Data Analysis** → Real-time insights -- **Process Automation** → Zero human errors - -### ROI Calculator -| Your Current Process | With Kasal | Savings | -|---------------------|------------|---------| -| 10 hours/week manual work | 1 hour setup + monitoring | **9 hours/week** | -| $50/hour employee cost | $0.10/hour AI cost | **$2,500/month** | -| 3-day turnaround | Same-day results | **66% faster** | - ---- - -## Quick Start (15 Minutes) - -### Step 1: Choose Your Use Case -Click the template that matches your need: - -| **Customer Support** | **Content Marketing** | **Data Analysis** | -|-------------------------|-------------------------|---------------------| -| Auto-reply to emails | Generate blog posts | Analyze spreadsheets | -| Handle FAQs | Create social media | Build reports | -| Route to right team | SEO optimization | Find patterns | - -### Step 2: Configure Your AI Team -Simply describe what you want: -``` -"I need to respond to customer emails within 1 hour -with professional, helpful answers" -``` - -### Step 3: Connect Your Tools -One-click integrations: -- **Email**: Gmail, Outlook -- **Chat**: Slack, Teams -- **Data**: Excel, Google Sheets -- **CRM**: Salesforce, HubSpot - -### Step 4: Launch -Press **Start** and watch your AI team work! - ---- - -## Success Metrics - -### Real Customer Results - -**TechCorp** -> "Reduced support tickets by 60% in first month" -- **Before**: 200 tickets/day, 24hr response -- **After**: 80 tickets/day, 1hr response -- **Saved**: $120K annually - -**E-Shop Plus** -> "Generated 500 product descriptions in 2 hours" -- **Before**: 1 writer, 20 descriptions/day -- **After**: AI crew, 250 descriptions/hour -- **Result**: Launched 10x faster - -**DataDriven Inc** -> "Daily reports that took 3 hours now take 3 minutes" -- **Before**: Manual Excel analysis -- **After**: Automated insights -- **Impact**: Real-time decisions - ---- - -## Control Center - -### Dashboard Overview -![Dashboard](dashboard-preview.png) - -**Key Metrics at a Glance:** -- **Active Workflows**: See what's running -- **Completed Tasks**: Track progress -- **Performance**: Response times -- **Cost Savings**: ROI tracking - -### Managing Your AI Workers - -**Start/Stop Controls** -- **Run Continuously**: 24/7 automation -- **Business Hours**: 9-5 operation -- **Pause**: Instant stop - -**Quality Controls** -- **Review Mode**: Approve before sending -- **Auto Mode**: Fully autonomous -- **Alert Mode**: Notify on exceptions - ---- - -## Advanced Features - -### Multi-Agent Collaboration -Your AI workers can work as a team: - -**Marketing Campaign Example:** -1. **Researcher** → Finds trending topics -2. **Writer** → Creates content -3. **Designer** → Generates visuals -4. **Analyst** → Measures performance - -All working together, automatically. - -### Custom Workflows -Build complex processes visually: -- Drag & drop workflow designer -- No coding required -- Test before deploying - -### Integration Marketplace -- 100+ pre-built connectors -- API access to any system -- Custom integrations available - ---- - -## Common Questions - -
-How much does it cost? - -**Starter**: $99/month -- 5 AI agents -- 1,000 tasks/month -- Email support - -**Professional**: $499/month -- Unlimited agents -- 10,000 tasks/month -- Priority support - -**Enterprise**: Custom pricing -- Unlimited everything -- Dedicated support -- Custom integrations -
- -
-Is my data secure? - -**Enterprise Security** -- SOC2 Type II certified -- GDPR compliant -- End-to-end encryption -- Your data never trains AI models -
- -
-What if something goes wrong? - -**Built-in Safety** -- Automatic error handling -- Human escalation rules -- Full audit trail -- Instant rollback -
- -
-How fast can I get started? - -**Same Day Setup** -- 15-minute quick start -- Pre-built templates -- Free onboarding call -- 30-day money-back guarantee -
- ---- - -## Ready to Start? - -
- -### [Book a 15-Min Demo](https://kasal.ai/demo) -### [Calculate Your ROI](https://kasal.ai/calculator) -### [Start Free Trial](https://kasal.ai/trial) - -**No credit card required • Cancel anytime** - -
- ---- - -## Need Help? - -- **Chat**: Available 24/7 in-app -- **Email**: support@kasal.ai -- **Phone**: 1-800-KASAL-AI -- **Resources**: [Video Tutorials](https://kasal.ai/videos) - ---- - -*Kasal - Where AI Meets Business Excellence* \ No newline at end of file diff --git a/src/frontend_static/docs/CODE_STRUCTURE_GUIDE.md b/src/frontend_static/docs/CODE_STRUCTURE_GUIDE.md new file mode 100644 index 00000000..bcb7426e --- /dev/null +++ b/src/frontend_static/docs/CODE_STRUCTURE_GUIDE.md @@ -0,0 +1,213 @@ +## Code Structure +A fast, skimmable map of the repository to help you find the right place quickly. + +### Repository layout +``` + +├── README.md +└── src/ + ├── backend/ # FastAPI backend + ├── frontend/ # React + TypeScript frontend + ├── docs/ # Markdown docs (copied to /docs in the app) + ├── build.py # Frontend build + docs copy + ├── deploy.py # Deployment utilities + └── manifest.yaml # App metadata +``` + +### Backend (src/backend/src) +- main.py: FastAPI app bootstrap, CORS, middleware, startup/shutdown, scheduler, API router registration +- api/: HTTP routers per domain (agents, crews, executions, tools, models, engine-config, etc.) +- services/: Business logic & orchestration + - Orchestration: execution_service.py, crewai_execution_service.py, process_crew_executor.py, scheduler_service.py + - Integrations: databricks_*_service.py, mlflow_service.py + - Observability: execution_logs_service.py, execution_trace_service.py, documentation_embedding_service.py +- repositories/: Data access (SQL/external/vector/mlflow) +- models/: SQLAlchemy entities +- schemas/: Pydantic request/response DTOs +- db/: Sessions and Alembic integration (session.py, all_models.py) +- config/: Settings & logging (settings.py, logging.py) +- core/: Cross-cutting utilities (llm_manager.py, logger.py, permissions.py, unit_of_work.py) +- engines/: AI engine integration (CrewAI prep/runner, memory, tools, guardrails) +- utils/: Helpers (user_context.py, databricks_url_utils.py, etc.) +- seeds/, scripts/, dependencies/: Seeders, scripts, DI helpers + +### Frontend (src/frontend) +- CRA + TypeScript app +- src/config/api/ApiConfig.ts: API base URL selection and Axios client +- src/api/*Service.ts: API clients per domain (Agents, Crews, Executions, Models, Tools, etc.) +- src/components/: UI components & views +- src/store/: State management +- src/hooks/: Reusable logic +- src/types/: Shared TS types +- src/utils/, src/theme/: Utilities and theme +- public/: Static assets (docs copied to /docs here) + +### Key entry points +- Backend app starts in main.py (includes api_router with prefix from settings) +- Frontend docs are served from /docs (markdown files copied there at build) + +### Routers (where to look) +Common examples under src/backend/src/api/: +- agents_router.py, crews_router.py, executions_router.py, execution_logs_router.py, execution_trace_router.py +- engine_config_router.py, models_router.py, tools_router.py, schemas_router.py +- databricks_*_router.py (secrets, knowledge, connection) + +### Database & migrations +- DB sessions configured in src/backend/src/db/session.py +- Alembic configuration via alembic.ini (root) and migrations/ (root) +- Models aggregated in src/backend/src/db/all_models.py + +### Configuration & logging +- src/backend/src/config/settings.py: env-driven settings (CORS, DB URIs, docs flags, seeding) +- src/backend/src/config/logging.py and src/backend/src/core/logger.py: centralized logging + +### Core & engines +- src/backend/src/core/llm_manager.py: provider/model selection, streaming options +- src/backend/src/engines/crewai/*: crew preparation, execution runner, callbacks, memory/tool adapters + +### Tips: how to trace a feature +1) Start at the router file for the endpoint. +2) Open the called service and scan business logic. +3) Inspect repository methods and related models. +4) Check Pydantic schemas for request/response contracts. +5) Search for engine usage under engines/crewai if orchestration is involved. + +--- + +## Development conventions (back end) + +### Layering philosophy +- API (FastAPI routers) → Services (business logic) → Repositories (data access) → DB +- Keep routers thin (validation, auth), services cohesive (orchestration/transactions), repositories I/O-only. + +### Naming & structure +- Routers: _router.py (e.g., agents_router.py) +- Services: _service.py +- Repositories: _repository.py +- Models: singular file per entity (e.g., agent.py) +- Schemas: mirror model names (e.g., schemas/agent.py) + +### Request/response contracts +- Define input/output Pydantic models in src/backend/src/schemas/* +- Routers return explicit response models (response_model=...) where practical +- Prefer DTOs over ORM entities at boundaries + +### Transactions & Unit of Work +- Encapsulate write operations inside service methods +- Use the UnitOfWork pattern for multi-repository transactions (core/unit_of_work.py) +- Repositories should not commit; services decide transactional scope + +### Error handling +- Raise HTTPException in routers for user input errors +- Services raise domain errors; routers translate to HTTP +- Avoid broad try/except; log and rethrow with context + +--- + +## Back end deep‑dive (files that matter) + +### App bootstrap +- main.py: lifespan init (logging, DB init, seeders), CORS, user context middleware, include api_router +- config/settings.py: environment-driven settings (DB URIs, docs toggles, seeding) + +### API surface (selected) +- api/__init__.py: composes all routers +- api/executions_router.py: start/stop/get execution +- api/execution_logs_router.py, api/execution_trace_router.py: logs and trace endpoints +- api/engine_config_router.py, api/models_router.py, api/tools_router.py: engine and model config, tool registry + +### Services (selected) +- services/execution_service.py: high-level execution orchestration +- services/crewai_execution_service.py, engines/crewai/execution_runner.py: CrewAI integration points +- services/scheduler_service.py: background scheduling +- services/documentation_embedding_service.py: embeddings for better generation + +### Repositories (selected) +- repositories/execution_repository.py, execution_history_repository.py: persistence for runs +- repositories/databricks_*_repository.py: Databricks secrets, vector index, volumes + +### Database & sessions +- db/session.py: async engine/session, SQLite lock retries, SQL_DEBUG logging +- db/all_models.py: imports all models for Alembic + +### Observability +- core/logger.py: central logger manager (writes to LOG_DIR) +- services/execution_logs_service.py, execution_trace_service.py: persisted logs/trace + +--- + +## Configuration quick reference + +Defined in src/backend/src/config/settings.py: +- DATABASE_TYPE=postgres|sqlite (defaults to postgres) +- SQLITE_DB_PATH=./app.db when using SQLite +- POSTGRES_* envs for Postgres connection +- DOCS_ENABLED=true|false (exposes /api-docs, /api-redoc, /api-openapi.json) +- AUTO_SEED_DATABASE=true|false (background seeding after DB init) +- LOG_LEVEL=INFO|DEBUG +- SQL_DEBUG=true|false (emits SQL to logs for troubleshooting) + +Notes: +- USE_NULLPOOL is set early in main.py to avoid asyncpg pool issues +- Logs default under src/backend/src/logs/ + +--- + +## Engines & orchestration + +- Engine selection: src/backend/src/engines/engine_factory.py +- CrewAI integration lives under src/backend/src/engines/crewai/ + - crew_preparation.py: build agents, tools, memory for a run + - execution_runner.py: run loop, callbacks/guardrails + - trace_management.py: hook into tracing pipeline + +Memory/model caveat: +- Known limitation for specific Databricks models (Claude / GPT‑OSS) on entity extraction +- Automatic fallback to databricks-llama-4-maverick for memory entity extraction only + +--- + +## Front end deep‑dive + +### Docs viewer (this page) +- Markdown fetched from /docs/.md (copied from src/docs at build) +- Mermaid supported via fenced ```mermaid code blocks +- Images rendered responsively; prefer /docs/images/... or relative ./images/... +- Internal markdown links are intercepted to load other docs in‑app + +### API client +- src/frontend/src/config/api/ApiConfig.ts determines API base URL +- Default dev: http://localhost:8000/api/v1; override with REACT_APP_API_URL + +### UI organization +- src/components/: feature folders and shared components +- src/api/: type‑safe client wrappers by domain +- src/store/, src/hooks/, src/utils/, src/theme/ + +--- + +## End‑to‑end example (from API call to DB) + +1) Router (executions_router.py) accepts POST /executions with schema +2) Service (execution_service.py) validates logic, kicks off orchestration +3) Engine (engines/crewai/...) prepares crew and runs execution +4) Logs/Traces recorded via services and repositories +5) Repositories (execution_repository.py) persist status/history +6) Client polls GET /executions/{id} and GET /execution-logs/{id} + +--- + +## Anti‑patterns to avoid +- Business logic in routers (keep slim and delegate) +- Services directly returning ORM entities (use schemas/DTOs) +- Repositories committing transactions (services own commit/rollback) +- Ad‑hoc logging without the central logger (use core/logger.py) + +--- + +## Quick links +- Back end entrypoint: src/backend/src/main.py +- Compose routers: src/backend/src/api/__init__.py +- Settings: src/backend/src/config/settings.py +- Sessions: src/backend/src/db/session.py +- CrewAI runner: src/backend/src/engines/crewai/execution_runner.py \ No newline at end of file diff --git a/src/frontend_static/docs/DEVELOPER_GUIDE.md b/src/frontend_static/docs/DEVELOPER_GUIDE.md index d71ed096..e7c004fb 100644 --- a/src/frontend_static/docs/DEVELOPER_GUIDE.md +++ b/src/frontend_static/docs/DEVELOPER_GUIDE.md @@ -1,348 +1,145 @@ -# Kasal Developer Documentation +## Developer Guide +Build, extend, and debug Kasal efficiently. This guide focuses on day-to-day workflows. + +### Components you'll touch +- **Frontend (React SPA)**: UI, designer, monitoring +- **API (FastAPI)**: REST endpoints and validation +- **Services**: Orchestration and business logic +- **Repositories**: DB and external I/O (Databricks, Vector, MLflow) +- **Engines (CrewAI)**: Agent/flow preparation and execution +- **Data & Storage**: SQLAlchemy models/sessions, embeddings, volumes + +### Requirements +Tools and versions you need before running the stack. +- Python 3.9+ +- Node.js 18+ +- Postgres (recommended) or SQLite for local dev +- Databricks access if exercising Databricks features +## Developer Architecture Overview +This section gives developers a high-level view of the front end and back end. It explains core components and shows how to understand and trace them. + +## Backend Architecture +The backend uses FastAPI with a clean layered structure. It separates HTTP routing, business services, repositories, and SQLAlchemy models. + +### Core Components +- API Routers: src/backend/src/api/* map HTTP endpoints to service calls. +- Services: src/backend/src/services/* implement business logic and transactions. +- Repositories: src/backend/src/repositories/* handle database CRUD. +- Models/Schemas: src/backend/src/models/* and src/backend/src/schemas/* define persistence and I/O contracts. +- Core/Engines: src/backend/src/core/* and src/backend/src/engines/* integrate LLMs and execution flows. +- DB/Session: src/backend/src/db/* configures sessions and Alembic migrations. +- Config/Security: src/backend/src/config/* and src/backend/src/dependencies/* provide settings and auth. + +### Typical Request Flow +A request passes through router, service, repository, and database. LLM calls route through the LLM manager when needed. + +```mermaid +sequenceDiagram + participant C as Client + participant R as FastAPI Router + participant S as Service + participant U as UnitOfWork + participant Repo as Repository + participant DB as Database + participant L as LLM Manager + + C->>R: HTTP Request + R->>S: Validate and delegate + S->>U: Begin transaction + S->>Repo: Query/Command + Repo->>DB: SQLAlchemy operation + DB-->>Repo: Rows/Status + alt Needs LLM + S->>L: Generate/Score + L-->>S: LLM Result + end + S->>U: Commit + S-->>R: DTO/Schema + R-->>C: HTTP Response +``` + +### How to Understand Backend Components +- Start at the router file for the endpoint path. +- Open the service it calls and read business logic. +- Inspect repository methods and referenced models. +- Check schema types for request and response contracts. +- Review unit tests under `src/backend/tests` for examples. + +### Example: Minimal Endpoint Wiring +This shows a typical router, service, and repository connection. -> **Build AI Workflows in 30 Seconds** - Production-ready from the start - ---- - -## Quick Start - -### Install & Run -```bash -# Clone and setup -git clone https://github.com/youorg/kasal -cd kasal && pip install -r src/requirements.txt - -# Start services -cd src/backend && ./run.sh # Backend: http://localhost:8000 -cd src/frontend && npm start # Frontend: http://localhost:3000 -``` - -### Your First AI Agent (30 seconds) -```python -from kasal import Agent, Task, Crew - -# Create agent -researcher = Agent( - role="Research Analyst", - goal="Find market insights", - model="gpt-4" -) - -# Define task -task = Task( - description="Analyze competitor pricing", - agent=researcher -) - -# Run workflow -crew = Crew(agents=[researcher], tasks=[task]) -result = crew.kickoff() -``` - -**That's it!** Your AI agent is running. - ---- - -## Architecture - -### Clean Architecture Pattern -``` -Frontend → API → Service → Repository → Database - ↓ ↓ ↓ ↓ ↓ -React FastAPI Business Data Layer PostgreSQL -``` - -### Tech Stack -| Layer | Technology | Purpose | -|-------|------------|---------| -| **Frontend** | React 18 + TypeScript | Interactive UI | -| **API** | FastAPI + Pydantic | Type-safe endpoints | -| **AI Engine** | CrewAI + LangChain | Agent orchestration | -| **Database** | PostgreSQL/SQLite | Data persistence | -| **Auth** | JWT + Databricks OAuth | Security | - ---- - -## Core Concepts - -### Agents -```python -agent = Agent( - role="Data Scientist", - goal="Analyze patterns", - backstory="Expert in ML", - tools=[SearchTool(), AnalysisTool()], - model="databricks-llama-70b" -) -``` - -### Tasks ```python -task = Task( - description="Generate weekly report", - expected_output="Markdown report with insights", - agent=analyst_agent, - async_execution=True -) -``` - -### Crews -```python -crew = Crew( - agents=[researcher, writer, reviewer], - tasks=[research_task, write_task, review_task], - process="hierarchical", # or "sequential" - memory=True # Enable persistent memory -) -``` - -### Tools -```python -# Built-in tools -from kasal.tools import ( - WebSearchTool, - FileReadTool, - DatabaseQueryTool, - CodeExecutionTool -) - -# Custom tool -class CustomAPITool(BaseTool): - name = "api_caller" - description = "Call external APIs" - - def _run(self, query: str) -> str: - # Your implementation - return api_response -``` - ---- - -## API Reference - -### Authentication -```bash -# Get token -POST /api/v1/auth/login -{ - "username": "user@example.com", - "password": "secure_password" +# router.py +@router.get("/items/{item_id}", response_model=ItemOut) +async def get_item(item_id: UUID, service: ItemService = Depends(...)): + return await service.get_item(item_id) + +# services/item_service.py +class ItemService: + async def get_item(self, item_id: UUID) -> ItemOut: + with self.uow as uow: + item = uow.items.get(item_id) + return ItemOut.model_validate(item) + +# repositories/item_repository.py +class ItemRepository(BaseRepository[Item]): + ... +``` + +## Frontend Architecture +The frontend is a React + TypeScript application. It organizes UI components, API clients, state stores, hooks, and utilities. + +### Core Components +- API Clients: src/frontend/src/api/* wrap HTTP calls with typed methods. +- UI Components: src/frontend/src/components/* render views and dialogs. +- Hooks: src/frontend/src/hooks/* encapsulate logic and side effects. +- Stores: src/frontend/src/store/* manage app and workflow state. +- Types/Config: src/frontend/src/types/* and src/frontend/src/config/* provide typing and environment. +- Utils: src/frontend/src/utils/* offer reusable helpers. + +### UI Data Flow +Components call hooks, which use stores and API clients. Responses update state and re-render the UI. + +```mermaid +flowchart LR + A[UI Component] --> B[Hook] + B --> C[State Store] + B --> D[API Client] + D -->|HTTP| E[Backend API] + E -->|JSON| D + D --> C + C --> A +``` + +### How to Understand Frontend Components +- Locate the component rendering the feature. +- Check its hook usage and props. +- Open the API client method it calls. +- Review the store slice it reads or writes. +- Inspect related types in src/frontend/src/types. + +### Example: Calling an API From a Component +A component loads items using an API service and updates local state. + +```ts +// api/ItemService.ts +export async function getItem(id: string) { + const res = await fetch(`/v1/items/${id}`, { headers: { Authorization: `Bearer ${token}` } }); + if (!res.ok) throw new Error("Failed"); + return (await res.json()) as Item; } -# Use token -GET /api/v1/crews -Authorization: Bearer -``` - -### Core Endpoints -| Method | Endpoint | Description | -|--------|----------|-------------| -| GET | `/api/v1/crews` | List all crews | -| POST | `/api/v1/crews` | Create new crew | -| POST | `/api/v1/executions` | Start execution | -| GET | `/api/v1/executions/{id}` | Get status | -| GET | `/api/v1/traces/{job_id}` | Get execution trace | - -### WebSocket Events -```javascript -// Connect to real-time updates -const ws = new WebSocket('ws://localhost:8000/ws'); - -ws.onmessage = (event) => { - const data = JSON.parse(event.data); - // Handle: task_start, task_complete, error, etc. +// components/Items/ItemView.tsx +const ItemView: React.FC<{ id: string }> = ({ id }) => { + const [item, setItem] = useState(null); + useEffect(() => { getItem(id).then(setItem); }, [id]); + return item ?
{item.name}
: Loading...; }; ``` ---- - -## Testing - -### Unit Tests -```python -# tests/test_agent.py -async def test_agent_execution(): - agent = Agent(role="Tester", goal="Validate") - result = await agent.execute("Test task") - assert result.success == True -``` - -### Run Tests -```bash -# All tests with coverage -python run_tests.py --coverage - -# Specific test file -python -m pytest tests/unit/test_file.py -v - -# With HTML report -python run_tests.py --coverage --html-coverage -``` - ---- - -## Deployment - -### Docker -```dockerfile -FROM python:3.9-slim -WORKDIR /app -COPY src/requirements.txt . -RUN pip install -r requirements.txt -COPY . . -CMD ["uvicorn", "src.backend.main:app"] -``` - -### Environment Variables -```bash -# .env file -DATABASE_URL=postgresql://user:pass@localhost/kasal -DATABRICKS_TOKEN=your_token -OPENAI_API_KEY=your_key -JWT_SECRET=your_secret -``` - -### Production Checklist -- Enable CORS for your domain -- Set secure JWT secret -- Configure rate limiting -- Enable SSL/TLS -- Set up monitoring (Datadog/New Relic) -- Configure backup strategy - ---- - -## Advanced Topics - -
-Custom Memory Backends - -```python -class DatabricksMemory(BaseMemory): - def __init__(self, index_name: str): - self.client = DatabricksVectorSearch() - self.index = index_name - - async def store(self, data: dict): - await self.client.upsert(self.index, data) - - async def retrieve(self, query: str, k: int = 5): - return await self.client.search(self.index, query, k) -``` -
- -
-Async Operations - -```python -# CRITICAL: All I/O must be async -async def process_crew_execution(crew_id: str): - async with get_db_session() as session: - repo = CrewRepository(session) - crew = await repo.get(crew_id) - - # Parallel execution - tasks = [process_task(t) for t in crew.tasks] - results = await asyncio.gather(*tasks) - - return results -``` -
- -
-Error Handling - -```python -from kasal.exceptions import KasalError - -try: - result = await crew.kickoff() -except AgentExecutionError as e: - logger.error(f"Agent failed: {e.agent_name}") - # Retry logic -except TaskTimeoutError as e: - logger.error(f"Task timeout: {e.task_id}") - # Fallback strategy -``` -
- -
-Performance Optimization - -```python -# Connection pooling -engine = create_async_engine( - DATABASE_URL, - pool_size=20, - max_overflow=40, - pool_pre_ping=True -) - -# Batch operations -async def bulk_create_tasks(tasks: List[TaskSchema]): - async with UnitOfWork() as uow: - await uow.tasks.bulk_create(tasks) - await uow.commit() - -# Caching -from functools import lru_cache - -@lru_cache(maxsize=100) -def get_model_config(model_name: str): - return ModelConfig.get(model_name) -``` -
- ---- - -## Security - -### Authentication Flow -```python -# JWT token generation -def create_access_token(user_id: str) -> str: - payload = { - "sub": user_id, - "exp": datetime.utcnow() + timedelta(hours=24) - } - return jwt.encode(payload, JWT_SECRET, algorithm="HS256") - -# Protected endpoint -@router.get("/protected") -async def protected_route( - current_user: User = Depends(get_current_user) -): - return {"user": current_user.email} -``` - -### Best Practices -- **Never commit secrets** - Use environment variables -- **Input validation** - Pydantic schemas everywhere -- **SQL injection prevention** - SQLAlchemy ORM only -- **Rate limiting** - Implement per-user limits -- **Audit logging** - Track all mutations - ---- - -## Resources - -### Quick Links -- [API Playground](/api/docs) -- [Video Tutorials](https://kasal.ai/videos) -- [Discord Community](https://discord.gg/kasal) -- [Report Issues](https://github.com/kasal/issues) - -### Code Examples -- [Basic Agent Setup](https://github.com/kasal/examples/basic) -- [Multi-Agent Collaboration](https://github.com/kasal/examples/multi-agent) -- [Custom Tools](https://github.com/kasal/examples/tools) -- [Production Deployment](https://github.com/kasal/examples/deploy) - -### Support -- **Chat**: Available in-app 24/7 -- **Email**: dev@kasal.ai -- **Slack**: #kasal-developers - ---- +## End-to-End flow +This ties front end and back end with shared contracts. It helps new developers trace a feature quickly. -*Build smarter, ship faster with Kasal* \ No newline at end of file +- Frontend Component → Hook → Store/API Client → Backend Router → Service → Repository → DB. +- Shared types and response shapes live in frontend types and backend schemas. +- Tests in src/backend/tests and frontend __tests__ show usage patterns. \ No newline at end of file diff --git a/src/frontend_static/docs/README.md b/src/frontend_static/docs/README.md index 176f553a..f6cb427d 100644 --- a/src/frontend_static/docs/README.md +++ b/src/frontend_static/docs/README.md @@ -1,3 +1,5 @@ + + # Kasal Documentation Hub **Enterprise AI Agent Orchestration Platform** @@ -5,26 +7,24 @@ --- ## Quick Start +Find the right documentation for your role and get productive fast. Choose your documentation based on your role: -## Business Documentation -### [Business User Guide](./BUSINESS_USER_GUIDE.md) -**For Leaders, Managers, and Business Users** +## Technical Documentation +Developer-focused guides, code structure, and API reference. +### [Code structure Guide](./CODE_STRUCTURE_GUIDE.md) +**For Software Engineers and Developers** -Get started with Kasal without any technical knowledge. Learn how to create AI workflows, calculate ROI, and manage your AI workforce. +Build and integrate with Kasal's powerful AI orchestration platform. From quick starts to advanced implementations. **Key Topics:** -- ROI Calculator and Cost Analysis -- Success Stories and Case Studies -- 15-Minute Quick Setup Guide -- Managing AI Workflows Without Code +- High level code structure +- Different folders and underlying components --- -## Technical Documentation - ### [Developer Guide](./DEVELOPER_GUIDE.md) **For Software Engineers and Developers** @@ -50,6 +50,7 @@ Complete REST API documentation with examples, WebSocket events, and SDK librari --- ## Architecture Documentation +System design, patterns, and enterprise integration guidance. ### [Solution Architecture Guide](./ARCHITECTURE_GUIDE.md) **For Solution Architects and Technical Leaders** @@ -65,6 +66,7 @@ Understand Kasal's architecture, design patterns, and enterprise integration str --- ## Getting Started in 30 Seconds +One command sequence to run both backend and frontend locally. ```bash # Clone the repository @@ -85,6 +87,7 @@ Access the application at `http://localhost:3000` --- ## Key Features +What Kasal provides out of the box to build, operate, and govern AI workflows. | Feature | Description | |---------|-------------| @@ -98,11 +101,12 @@ Access the application at `http://localhost:3000` --- ## Documentation Structure +How this folder is organized and where to find topics. ``` docs/ ├── README.md # This file - Documentation hub -├── BUSINESS_USER_GUIDE.md # Business user documentation +├── CODE_STRUCTURE_GUIDE.md # Code structure documentation ├── DEVELOPER_GUIDE.md # Developer documentation ├── ARCHITECTURE_GUIDE.md # Architecture documentation ├── API_REFERENCE.md # API reference @@ -115,6 +119,7 @@ docs/ --- ## Technology Stack +Core frameworks and platforms used across the project. - **Backend**: FastAPI, SQLAlchemy 2.0, Python 3.9+ - **Frontend**: React 18, TypeScript, Material-UI @@ -125,6 +130,7 @@ docs/ --- ## Support and Resources +Where to get help and how to contribute. ### Getting Help @@ -143,9 +149,10 @@ This project is licensed under the Apache License 2.0 - see the [LICENSE](https: --- ## Version Information +Project and documentation version details. - **Current Version**: 2.0.0 -- **Documentation Updated**: January 2025 +- **Documentation Updated**: October 2025 - **Minimum Python Version**: 3.9 - **Minimum Node Version**: 16.0