From 55e105108dc4d5b9b120a284a3f6f9bb5709d97b Mon Sep 17 00:00:00 2001 From: "helpcode.ai" Date: Thu, 5 Nov 2026 10:36:24 +0100 Subject: [PATCH 1/5] Document the management API in Swagger: current description, all tags, examples Move the Swagger setup to common/openapi.ts. The description now says what AnythingMCP is today and covers authentication with management keys and their scopes, a curl and amcp quick start, rate limits and errors. Use the real version instead of 0.1.0, declare every tag the controllers use (a spec fails on undeclared or unused tags), offer the X-API-Key scheme on key-capable routes, and add descriptions and request/response examples to the core adapters, connectors, MCP server, key, role, audit and user endpoints. No runtime behaviour changes. --- .../src/adapters/adapters.controller.ts | 115 +++++- .../src/adapters/setup-links.controller.ts | 3 +- .../backend/src/alerts/alerts.controller.ts | 3 +- .../backend/src/audit/audit.controller.ts | 100 ++++- packages/backend/src/auth/login.controller.ts | 2 + packages/backend/src/common/openapi.spec.ts | 67 ++++ packages/backend/src/common/openapi.ts | 345 ++++++++++++++++++ .../src/connectors/connectors.controller.ts | 170 ++++++++- .../src/connectors/tools.controller.ts | 3 +- .../src/file-search/file-search.controller.ts | 3 +- .../src/file-search/file-share.controller.ts | 12 +- .../identity-providers.controller.ts | 2 + .../knowledge-folders.controller.ts | 3 +- .../src/knowledge-graph/kg.controller.ts | 3 +- .../backend/src/license/license.controller.ts | 14 +- packages/backend/src/main.ts | 25 +- .../src/mcp-server/mcp-endpoint.controller.ts | 2 + .../mcp-server/well-known-oauth.controller.ts | 2 + .../mcp-servers/mcp-connections.controller.ts | 5 +- .../src/mcp-servers/mcp-servers.controller.ts | 86 ++++- .../backend/src/memory/memory.controller.ts | 3 +- .../organizations/organizations.controller.ts | 3 +- .../src/roles/mcp-api-keys.controller.ts | 56 ++- .../backend/src/roles/roles.controller.ts | 79 +++- .../src/settings/site-settings.controller.ts | 4 +- .../backend/src/users/users.controller.ts | 56 ++- packages/cli/src/generated/operations.ts | 2 +- 27 files changed, 1080 insertions(+), 88 deletions(-) create mode 100644 packages/backend/src/common/openapi.spec.ts create mode 100644 packages/backend/src/common/openapi.ts diff --git a/packages/backend/src/adapters/adapters.controller.ts b/packages/backend/src/adapters/adapters.controller.ts index 05d3727f5..6ccd2b700 100644 --- a/packages/backend/src/adapters/adapters.controller.ts +++ b/packages/backend/src/adapters/adapters.controller.ts @@ -14,7 +14,7 @@ import { Query, Res, } from '@nestjs/common'; -import { ApiTags, ApiOperation, ApiBearerAuth, ApiQuery } from '@nestjs/swagger'; +import { ApiTags, ApiOperation, ApiBearerAuth, ApiQuery, ApiSecurity, ApiBody, ApiResponse } from '@nestjs/swagger'; import { SkipThrottle } from '@nestjs/throttler'; import type { Response } from 'express'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; @@ -55,9 +55,41 @@ export class AdaptersPublicController { description: 'Returns metadata for all pre-configured adapters. This endpoint is public so the marketing website can render the marketplace dynamically. ' + 'With `?fields=slim` each adapter carries only what a catalog page shows (no setup instructions, variable help or prerequisites), ' + - 'plus an `enriched` flag; the instructions of one adapter are at `/api/adapters/:slug/instructions`.', + 'plus an `enriched` flag; the instructions of one adapter are at `/api/adapters/:slug/instructions`.\n\n' + + 'There is no server-side search: fetch the slim list once (it is cached with an ETag) and filter on `slug`, `name`, ' + + '`category`, `region` or `description`. Then read one adapter with `GET /api/adapters/{slug}` to see the variables ' + + 'it needs (`requiredEnvVars`, `envVars`) before installing it with `POST /api/adapters/{slug}/import`.\n\n' + + '```bash\ncurl -s "$AMCP_URL/api/adapters?fields=slim" | jq \'.[] | select(.category == "crm") | .slug\'\n```', + }) + @ApiQuery({ + name: 'fields', + required: false, + enum: ['slim', 'full'], + description: '`slim` for the catalog-page view; omit (or `full`) for every field.', + example: 'slim', + }) + @ApiResponse({ + status: 200, + description: 'An array of adapters (slim view shown).', + schema: { + type: 'array', + items: { type: 'object' }, + example: [ + { + slug: 'hubspot', + name: 'HubSpot', + description: 'Let your AI work in HubSpot CRM: search and update contacts, companies, deals and tickets…', + region: 'intl', + category: 'crm', + icon: 'hubspot', + docsUrl: 'https://developers.hubspot.com/docs/api-reference/latest/overview', + requiredEnvVars: ['HUBSPOT_ACCESS_TOKEN'], + toolCount: 14, + enriched: true, + }, + ], + }, }) - @ApiQuery({ name: 'fields', required: false, enum: ['slim'] }) list( @Query('fields') fields: string | undefined, @Headers('if-none-match') ifNoneMatch: string | undefined, @@ -118,6 +150,7 @@ export class AdaptersPublicController { // Authenticated endpoints @ApiTags('Adapters') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/adapters') export class AdaptersController { @@ -258,7 +291,11 @@ export class AdaptersController { @ApiOperation({ summary: 'Get adapter details including tool definitions', description: - 'Returns the full adapter definition with connector config and all tool mappings.', + 'Returns the full adapter definition with connector config and all tool mappings, plus what installing it takes: ' + + '`requiredEnvVars` (the variables to pass as `credentials` on import), `envVars` (each variable described: label, ' + + 'kind, whether it is secret, help text), `setupKind` and `instructions` (Markdown setup guide). ' + + '404 when the slug is unknown or the adapter is not offered on this deployment.\n\n' + + '```bash\namcp api GET /api/adapters/hubspot\n```', }) getBySlug(@Param('slug') slug: string) { return this.adaptersService.describe(slug); @@ -270,7 +307,34 @@ export class AdaptersController { summary: 'Try an adapter with credentials before saving it', description: 'Runs the adapter\'s safe read call against an in-memory connector. Nothing is stored. ' + - 'ok=true: it worked; ok=false: a value is missing or the API refused; ok=null: nothing to try yet (needs a sign-in at the provider, or no safe call).', + 'ok=true: it worked; ok=false: a value is missing or the API refused; ok=null: nothing to try yet (needs a sign-in at the provider, or no safe call).\n\n' + + 'Pass `connectorId` to test new values for an existing connector of this adapter. Each try is a real call to the ' + + 'provider: at most 20 tries a minute per user (429 beyond). VIEWERs get 403.', + }) + @ApiBody({ + required: false, + schema: { + type: 'object', + properties: { + credentials: { + type: 'object', + additionalProperties: { type: 'string' }, + description: 'Values for the adapter variables (see `requiredEnvVars` on GET /api/adapters/{slug}).', + }, + connectorId: { type: 'string', description: 'An existing connector of this adapter to test the values for.' }, + }, + }, + examples: { + hubspot: { summary: 'Check a HubSpot key', value: { credentials: { HUBSPOT_ACCESS_TOKEN: 'pat-eu1-…' } } }, + }, + }) + @ApiResponse({ + status: 200, + description: 'The outcome of the test call.', + schema: { + type: 'object', + example: { ok: true, toolName: 'hubspot_list_owners', durationMs: 412, sample: '{"results":[{"id":"…","email":"…"}],…}' }, + }, }) async verify( @Req() req: any, @@ -334,7 +398,46 @@ export class AdaptersController { summary: 'Import a built-in adapter as a new connector', description: 'Creates a new connector and its tools from a pre-configured adapter recipe. ' + - 'Optionally provide credentials in the request body to make the connector immediately functional.', + 'Optionally provide credentials in the request body to make the connector immediately functional.\n\n' + + 'The keys of `credentials` are the adapter\'s variable names (`requiredEnvVars` on GET /api/adapters/{slug}). ' + + 'The new connector is added straight away to your default MCP server, the oldest active one you own (`attachedToServer`, null when you have none), ' + + 'and `probe` reports the first test call made with the values given (null when none was made). ' + + '403 for VIEWERs or when the plan allows no more connectors.\n\n' + + '```bash\namcp api POST /api/adapters/hubspot/import --data \'{"credentials":{"HUBSPOT_ACCESS_TOKEN":"pat-eu1-…"}}\' --yes\n```', + }) + @ApiBody({ + required: false, + schema: { + type: 'object', + properties: { + credentials: { + type: 'object', + additionalProperties: { type: 'string' }, + description: 'Values for the adapter variables, by name. Omit to install now and fill them in later.', + }, + }, + }, + examples: { + hubspot: { + summary: 'Install HubSpot with its key', + value: { credentials: { HUBSPOT_ACCESS_TOKEN: 'pat-eu1-…' } }, + }, + keyless: { summary: 'Install an adapter that needs no values', value: {} }, + }, + }) + @ApiResponse({ + status: 201, + description: 'The connector was created.', + schema: { + type: 'object', + example: { + message: 'Adapter "hubspot" imported successfully with 14 tools.', + connectorId: 'cmob60dvv00c01zrpeujwmnep', + toolsCreated: 14, + attachedToServer: { id: 'cmo9x1k2a0001abcdpq7rs8tu', name: 'Default' }, + probe: { ok: true, toolName: 'hubspot_list_owners', durationMs: 388, sample: '{"results":[{"id":"…","email":"…"}],…}' }, + }, + }, }) async importAdapter( @Req() req: any, diff --git a/packages/backend/src/adapters/setup-links.controller.ts b/packages/backend/src/adapters/setup-links.controller.ts index 4eed2f62d..297a79519 100644 --- a/packages/backend/src/adapters/setup-links.controller.ts +++ b/packages/backend/src/adapters/setup-links.controller.ts @@ -10,7 +10,7 @@ import { UseGuards, } from '@nestjs/common'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; -import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiTags, ApiSecurity } from '@nestjs/swagger'; import { Throttle } from '@nestjs/throttler'; import type { Request } from 'express'; import { ConnectorSetupService } from './connector-setup.service'; @@ -37,6 +37,7 @@ export class SetupLinksController { @Post('resolve') @HttpCode(200) @ApiBearerAuth() + @ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Throttle({ default: { limit: 20, ttl: 60_000 } }) @ApiOperation({ summary: 'Open a connector setup link with the dashboard session' }) diff --git a/packages/backend/src/alerts/alerts.controller.ts b/packages/backend/src/alerts/alerts.controller.ts index 88f7fce4d..67590ca0b 100644 --- a/packages/backend/src/alerts/alerts.controller.ts +++ b/packages/backend/src/alerts/alerts.controller.ts @@ -1,5 +1,5 @@ import { Body, Controller, Delete, Get, Post, Put, Req, UseGuards } from '@nestjs/common'; -import { ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiTags, ApiSecurity } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { Throttle } from '@nestjs/throttler'; import { IsBoolean, IsIn, IsInt, IsOptional, IsString, IsUrl, Max, MaxLength, Min } from 'class-validator'; @@ -54,6 +54,7 @@ class SaveAlertWebhookDto { @ApiTags('Alerts') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @Controller('api/admin/settings') diff --git a/packages/backend/src/audit/audit.controller.ts b/packages/backend/src/audit/audit.controller.ts index 28c9be391..dd0558424 100644 --- a/packages/backend/src/audit/audit.controller.ts +++ b/packages/backend/src/audit/audit.controller.ts @@ -1,5 +1,5 @@ import { Controller, Get, Query, Req, UseGuards } from '@nestjs/common'; -import { ApiTags, ApiBearerAuth, ApiOperation, ApiQuery } from '@nestjs/swagger'; +import { ApiTags, ApiBearerAuth, ApiOperation, ApiQuery, ApiSecurity, ApiResponse } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { AuditService } from './audit.service'; import { @@ -11,20 +11,65 @@ import { ToolPerformanceQueryDto } from './tool-performance-query.dto'; @ApiTags('Audit') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/audit') export class AuditController { constructor(private readonly auditService: AuditService) {} @Get('invocations') - @ApiOperation({ summary: 'List tool invocation logs' }) - @ApiQuery({ name: 'limit', required: false, type: Number }) - @ApiQuery({ name: 'offset', required: false, type: Number }) - @ApiQuery({ name: 'toolId', required: false, type: String }) - @ApiQuery({ name: 'status', required: false, enum: ['SUCCESS', 'ERROR', 'TIMEOUT'] }) - @ApiQuery({ name: 'search', required: false, type: String }) - @ApiQuery({ name: 'connectorId', required: false, type: String }) - @ApiQuery({ name: 'mcpServerId', required: false, type: String }) + @ApiOperation({ + summary: 'List tool invocation logs', + description: + 'The audit log of tool calls in your workspace, newest first: tool and connector, caller, MCP server, `input`, ' + + '`output` or `error`, `status`, `durationMs` and `clientInfo` (how the caller authenticated, which key or client). ' + + 'A failure repeated within a minute is stored once with `repeatCount`. Filters combine with AND.\n\n' + + 'Typical uses: the last failures (`status=ERROR`), the calls of one tool or connector, or what one AI client did ' + + 'on one server (`mcpServerId`).\n\n' + + '```bash\namcp api GET "/api/audit/invocations?status=ERROR&limit=20"\n```', + }) + @ApiQuery({ name: 'limit', required: false, type: Number, description: 'Rows to return (default 100).', example: 20 }) + @ApiQuery({ name: 'offset', required: false, type: Number, description: 'Rows to skip, for paging.', example: 0 }) + @ApiQuery({ name: 'toolId', required: false, type: String, description: 'Only calls of this tool.' }) + @ApiQuery({ + name: 'status', + required: false, + enum: ['SUCCESS', 'ERROR', 'TIMEOUT'], + description: 'Only calls with this outcome.', + example: 'ERROR', + }) + @ApiQuery({ + name: 'search', + required: false, + type: String, + description: 'Tool name contains this text (case-insensitive).', + example: 'hubspot_', + }) + @ApiQuery({ name: 'connectorId', required: false, type: String, description: 'Only calls of tools of this connector.' }) + @ApiQuery({ name: 'mcpServerId', required: false, type: String, description: 'Only calls made through this MCP server.' }) + @ApiResponse({ + status: 200, + schema: { + type: 'array', + items: { type: 'object' }, + example: [ + { + id: 'cmod9e8f700f01zrpa1b2c3d4', + toolId: 'cmob7a1b200d01zrp5h6j7k8l', + status: 'ERROR', + durationMs: 742, + error: 'HTTP 403: missing scope crm.objects.deals.read', + input: { objectType: 'deals', limit: 10 }, + output: null, + repeatCount: 1, + createdAt: '2026-11-05T09:41:12.000Z', + tool: { name: 'hubspot_list_objects', connectorId: 'cmob60dvv00c01zrpeujwmnep', connector: { name: 'HubSpot', type: 'REST' } }, + user: { id: 'cmo8a7b6c0000abcdx1y2z3w4', email: 'ana@example.com', name: 'Ana' }, + mcpServer: { id: 'cmo9x1k2a0001abcdpq7rs8tu', name: 'Sales', slug: 'sales' }, + }, + ], + }, + }) async listInvocations( @Req() req: any, @Query('limit') limit?: string, @@ -43,7 +88,17 @@ export class AuditController { } @Get('stats') - @ApiOperation({ summary: 'Get invocation statistics' }) + @ApiOperation({ + summary: 'Get invocation statistics', + description: 'Tool-call counters for your workspace: last 24 hours, errors in the last 24 hours, last 7 days and all time.', + }) + @ApiResponse({ + status: 200, + schema: { + type: 'object', + example: { invocations24h: 312, errors24h: 7, invocations7d: 2140, totalInvocations: 48211 }, + }, + }) async getStats(@Req() req: any) { return this.auditService.getStats(req.user.organizationId); } @@ -53,7 +108,8 @@ export class AuditController { summary: 'Get analytics data with daily time-series and top tools', description: 'Returns a daily breakdown (UTC days, last `days`, default 7) of invocations by status, ' + - 'top 10 most-used tools, success rate, and average duration.', + 'top 10 most-used tools, success rate, and average duration.\n\n' + + '```bash\namcp api GET "/api/audit/analytics?days=30"\n```', }) @ApiQuery({ name: 'days', @@ -94,9 +150,27 @@ export class AuditController { description: 'Aggregates the last N days (default 30) of tool calls per connector, per ' + 'MCP server and per user, with error counts, proxy-call metering and a ' + - 'volume-based cost estimate.', + 'volume-based cost estimate. Each list holds the top 20 by calls; `estCostMicros` is 0 unless the ' + + 'instance sets per-call rates.', + }) + @ApiQuery({ name: 'days', required: false, type: Number, description: 'Window in days, 1 to 365 (default 30).', example: 30 }) + @ApiResponse({ + status: 200, + schema: { + type: 'object', + example: { + days: 30, + total: 9120, + errors: 143, + proxyCalls: 0, + estCostMicros: 0, + rates: { callMicros: 0, proxyCallMicros: 0 }, + byConnector: [{ id: 'cmob60dvv00c01zrpeujwmnep', label: 'HubSpot', count: 5210, errors: 61 }], + byServer: [{ id: 'cmo9x1k2a0001abcdpq7rs8tu', label: 'Sales', count: 6001, errors: 70 }], + byUser: [{ id: 'cmo8a7b6c0000abcdx1y2z3w4', label: 'Ana', count: 3302, errors: 12 }], + }, + }, }) - @ApiQuery({ name: 'days', required: false, type: Number }) async getBreakdowns(@Req() req: any, @Query('days') days?: string) { return this.auditService.getBreakdowns( req.user.organizationId, diff --git a/packages/backend/src/auth/login.controller.ts b/packages/backend/src/auth/login.controller.ts index 99cf29f04..406703916 100644 --- a/packages/backend/src/auth/login.controller.ts +++ b/packages/backend/src/auth/login.controller.ts @@ -47,6 +47,7 @@ import { hasDashboardHeader, setRecentSignInCookie } from './recent-sign-in.util import { RecentSignInService } from './recent-sign-in.service'; import { SharedSetupRegistry, type SetupContext, type SharedSetupProvider } from '../mcp-server/shared-setup'; import { assistantForRedirectUris, profileForRedirectUris } from '../mcp-server/shared-toolset'; +import { ApiTags } from '@nestjs/swagger'; /** * Carries the VERIFIED identity across the second step of the authorize flow. @@ -170,6 +171,7 @@ export function fileSearchWizardPathFor(optionId: string, serverIds: readonly st return `/connectors/new/file-search?${q.toString()}`; } +@ApiTags('MCP client sign-in') @Controller('auth') export class LoginController { private readonly logger = new Logger(LoginController.name); diff --git a/packages/backend/src/common/openapi.spec.ts b/packages/backend/src/common/openapi.spec.ts new file mode 100644 index 000000000..6f1faa499 --- /dev/null +++ b/packages/backend/src/common/openapi.spec.ts @@ -0,0 +1,67 @@ +import { readdirSync, readFileSync, statSync } from 'node:fs'; +import { join } from 'node:path'; +import { APP_VERSION } from './app-version'; +import { API_KEY_SCHEME, buildOpenApiConfig, OPENAPI_TAGS } from './openapi'; + +const SRC = join(__dirname, '..'); + +function controllerFiles(dir: string): string[] { + const out: string[] = []; + for (const name of readdirSync(dir)) { + const p = join(dir, name); + if (statSync(p).isDirectory()) out.push(...controllerFiles(p)); + else if (name.endsWith('.controller.ts')) out.push(p); + } + return out; +} + +/** Every tag named in an `@ApiTags(...)` decorator under src/. */ +function usedTags(): Set { + const tags = new Set(); + for (const file of controllerFiles(SRC)) { + const text = readFileSync(file, 'utf8'); + for (const call of text.matchAll(/@ApiTags\(([^)]*)\)/g)) { + for (const lit of call[1].matchAll(/['"]([^'"]+)['"]/g)) tags.add(lit[1]); + } + } + return tags; +} + +describe('OpenAPI document config', () => { + const config = buildOpenApiConfig(); + + it('declares every tag a controller uses, and none that no controller uses', () => { + const declared = OPENAPI_TAGS.map((t) => t.name); + const used = usedTags(); + expect(used.size).toBeGreaterThan(0); + expect(declared.filter((t) => !used.has(t))).toEqual([]); + expect([...used].filter((t) => !declared.includes(t))).toEqual([]); + expect(new Set(declared).size).toBe(declared.length); + }); + + it('gives every tag a description and passes them to the document in order', () => { + for (const tag of OPENAPI_TAGS) expect(tag.description.trim()).not.toBe(''); + expect(config.tags?.map((t) => t.name)).toEqual(OPENAPI_TAGS.map((t) => t.name)); + }); + + it('reports the running version, not a hard-coded one', () => { + expect(config.info.version).toBe(APP_VERSION); + expect(buildOpenApiConfig('9.9.9').info.version).toBe('9.9.9'); + }); + + it('declares the bearer scheme and the X-API-Key scheme the controllers reference', () => { + const schemes = config.components?.securitySchemes ?? {}; + expect(schemes.bearer).toMatchObject({ type: 'http', scheme: 'bearer' }); + expect(schemes[API_KEY_SCHEME]).toMatchObject({ type: 'apiKey', in: 'header', name: 'X-API-Key' }); + }); + + it('has a description with authentication, quick start and errors, plus license and links', () => { + const d = config.info.description ?? ''; + for (const heading of ['## Authentication', '## Quick start', '## Rate limits', '## Errors']) { + expect(d).toContain(heading); + } + for (const scope of ['MANAGEMENT_READ', 'MANAGEMENT_ADMIN', '`MCP`']) expect(d).toContain(scope); + expect(config.info.license?.name).toBe('AGPL-3.0'); + expect(config.externalDocs?.url).toMatch(/^https:\/\/anythingmcp\.com\//); + }); +}); diff --git a/packages/backend/src/common/openapi.ts b/packages/backend/src/common/openapi.ts new file mode 100644 index 000000000..513c59024 --- /dev/null +++ b/packages/backend/src/common/openapi.ts @@ -0,0 +1,345 @@ +import { DocumentBuilder, type OpenAPIObject } from '@nestjs/swagger'; +import { APP_VERSION } from './app-version'; + +/** + * The OpenAPI document's top-level metadata, served at /api/docs (Swagger UI) + * and /api/docs-json. Kept out of main.ts so it can be unit-tested and + * rendered without booting the app. + * + * Every claim in OPENAPI_DESCRIPTION is backed by code; keep it that way when + * behaviour changes: + * - auth and key scopes: auth/jwt-or-management-key.guard.ts + * - per-key rate limit: same file (MANAGEMENT_RATE_LIMIT_PER_MINUTE) + * - per-IP rate limit: app.module.ts (ThrottlerModule.forRoot) + * - key minting rules: roles/mcp-api-keys.controller.ts + * - code mode values: mcp-server/code-tool.util.ts (CODE_MODE_MODES) + */ + +export const OPENAPI_REPO_URL = 'https://github.com/HelpCode-ai/anythingmcp'; +export const OPENAPI_API_DOCS_URL = 'https://anythingmcp.com/developers/api'; +export const OPENAPI_CLI_DOCS_URL = 'https://anythingmcp.com/developers/cli'; + +/** Name of the `X-API-Key` security scheme, referenced by `@ApiSecurity('api-key')`. */ +export const API_KEY_SCHEME = 'api-key'; + +/** + * Every tag a controller uses in `@ApiTags(...)`, in the order Swagger UI shows + * them: the management resources integrators and the `amcp` CLI use most come + * first. openapi.spec.ts fails when a controller uses a tag missing here, or + * when a tag here is used by no controller. + */ +export const OPENAPI_TAGS: ReadonlyArray<{ name: string; description: string }> = [ + { + name: 'Connectors', + description: + 'The systems AnythingMCP calls (REST, SOAP, GraphQL, OData, databases, mail, remote MCP servers): create, import tools from a spec, test, health-check, export and restore.', + }, + { + name: 'Adapters', + description: + 'The built-in connector catalogue: browse it, read an adapter, verify credentials, and install it as a ready-to-use connector in one call.', + }, + { + name: 'Tools', + description: + 'The MCP tools of one connector: create, edit, enable or disable, annotations, response mapping and proxy settings.', + }, + { + name: 'MCP Servers', + description: + 'MCP endpoints (`/mcp/`), each exposing a chosen set of connectors to AI clients, with its own instructions, skills delivery and code mode.', + }, + { + name: 'MCP API Keys', + description: + 'Your personal `mcp_…` keys: `MCP` scope for AI clients, `MANAGEMENT_READ` / `MANAGEMENT_ADMIN` for this API and the `amcp` CLI.', + }, + { + name: 'MCP Connections', + description: + 'AI clients connected over OAuth to the shared `/mcp` endpoint, and which workspaces and MCP servers each one may reach.', + }, + { + name: 'MCP Endpoint', + description: + 'The Model Context Protocol endpoints AI clients connect to (Streamable HTTP, JSON-RPC): `/mcp/{serverId}` per server, the shared `/mcp`, and `/mcp/demo`. Use an MCP client, not plain REST calls; sign in with OAuth or send an MCP API key.', + }, + { + name: 'Roles', + description: + 'Role-based access to tools: which tools each MCP role may call and which roles each member holds. Admin only.', + }, + { + name: 'Users', + description: + 'Your own profile, and (admin) the workspace members, invitations, roles, sessions and deactivation.', + }, + { + name: 'Audit', + description: + 'The log of every tool call with input, output, status and duration, plus usage statistics, daily analytics and per-connector / server / user breakdowns.', + }, + { + name: 'Organizations', + description: + 'Workspaces: the ones you belong to, switching between them, creating one (Cloud), and updating or deleting the current one.', + }, + { + name: 'Identity Providers', + description: + 'Single sign-on providers (Entra ID, Google, Okta, Auth0, GitHub, generic OIDC), group-to-role mappings, SSO enforcement and SCIM provisioning. Admin, self-hosted.', + }, + { + name: 'SSO', + description: 'Signing in through an identity provider, and linking one to your own account.', + }, + { + name: 'Auth', + description: + 'Dashboard sign-up, sign-in, sessions, email verification, password reset and social sign-in.', + }, + { + name: 'Memory', + description: + 'Personal and company memory that every AI client shares: items, approval of company items, and access settings.', + }, + { + name: 'Knowledge Graph', + description: + 'How your connectors and tools relate, and the AI skills (procedures) agents follow: suggest, generate, create, apply or dismiss.', + }, + { + name: 'Knowledge folders', + description: 'Folders that organise skills and company memory, optionally limited to roles.', + }, + { + name: 'File Search', + description: + 'File Search connectors over SFTP, FTP/FTPS, WebDAV, S3 or a mounted network share: test, save, scan, choose what to index, and policy.', + }, + { + name: 'File Share', + description: + 'Temporary download links for files from your folders or written by the AI, internal or public, with limits and revoke.', + }, + { + name: 'Connector setup', + description: + 'Setup links that let a member finish a connector configuration (credentials, sign-in) in the dashboard.', + }, + { + name: 'MCP OAuth', + description: + 'OAuth redirect targets and completion for connectors that sign in at the provider, shared or per user.', + }, + { + name: 'MCP client sign-in', + description: + 'Browser pages of the OAuth flow in which an AI client signs in to AnythingMCP and the user picks what it may reach.', + }, + { + name: 'OAuth discovery', + description: + 'OAuth and OpenID discovery documents (`/.well-known/…`) that MCP clients read before signing in.', + }, + { + name: 'Shopee', + description: 'Shop authorization for Shopee connectors.', + }, + { + name: 'TikTok Shop', + description: 'Shop authorization for TikTok Shop connectors.', + }, + { + name: 'Alerts', + description: 'The webhook notified when a connector starts failing. Admin only.', + }, + { + name: 'Site Settings', + description: + 'Workspace and instance settings: SMTP, footer links and the SSRF allowlist (admin), plus the public footer links.', + }, + { + name: 'License', + description: + 'Edition, licence and plan status, usage against plan limits, trials and billing links.', + }, + { + name: 'Support', + description: 'Support chat widget settings and its inbound webhook.', + }, + { + name: 'Health', + description: 'Liveness / readiness check (`/health`) and public server information.', + }, + { + name: 'Version', + description: 'Version, commit and build date of this instance.', + }, + { + name: 'Public', + description: 'Public aggregate numbers, for the website.', + }, + { + name: 'Product events', + description: 'Product-usage events recorded by the dashboard. Internal.', + }, + { + name: 'Cron', + description: 'Scheduled jobs triggered by the AnythingMCP Cloud scheduler. Internal.', + }, +]; + +export const OPENAPI_DESCRIPTION = ` +**AnythingMCP** is an open-source agent harness and MCP gateway. It turns any REST/OpenAPI, SOAP/WSDL, GraphQL or OData API, SaaS app, SQL or NoSQL database, mail server or file share (SFTP, FTP/FTPS, WebDAV, S3, a mounted network share) into [Model Context Protocol](https://modelcontextprotocol.io) tools that AI agents such as Claude, ChatGPT, Copilot, Cursor and Gemini can call, with governance on top. + +This API is what the dashboard and the [\`amcp\` CLI](${OPENAPI_CLI_DOCS_URL}) use. With it you can: + +- **Connectors**: install a ready-made connector from the built-in catalogue (\`/api/adapters\`), or build your own and import its tools from OpenAPI, WSDL, GraphQL, OData, Postman, cURL, HAR, JSON or another MCP server. +- **MCP servers**: publish MCP endpoints at \`/mcp/\`, each exposing a chosen set of connectors, with instructions, skills and **code mode** (\`codeMode\`: \`off\` no code execution, \`tools\` saved code tools only, \`inline\` also the generic \`code_execute\` / \`code_propose_tool\`). +- **Governance**: roles with per-tool access, SSO and SCIM, per-user credentials and OAuth sign-in, an audit log of every tool call with usage analytics. +- **Company brain**: memory, AI skills, the knowledge graph, File Search and File Share. + +AnythingMCP runs on [AnythingMCP Cloud](https://cloud.anythingmcp.com) or self-hosted (AGPL-3.0, [source on GitHub](${OPENAPI_REPO_URL})). Cloud base URL: \`https://cloud.anythingmcp.com\`; a self-hosted backend listens on \`http://localhost:4000\` by default. + +## Authentication + +Routes marked with a lock need one of these credentials: + +| Credential | How to send it | Notes | +|---|---|---| +| Management API key \`mcp_…\` | \`Authorization: Bearer mcp_…\` **or** \`X-API-Key: mcp_…\` | Recommended for scripts, CI and agents. | +| Dashboard session JWT | \`Authorization: Bearer \` | The \`accessToken\` returned by \`POST /api/auth/login\`. | + +Key scopes: + +- \`MCP\`: tool calls on \`/mcp\` only. **Rejected on \`/api\`** (401). +- \`MANAGEMENT_READ\`: \`GET\` and \`HEAD\` only; any other method gets 403. +- \`MANAGEMENT_ADMIN\`: any method. Only an admin can create one. + +A key acts as its owner, with the owner's role in the key's workspace. The scope only narrows what the owner can do and never adds to it: routes marked *(ADMIN)* still need an admin owner, and a \`VIEWER\` still cannot change connectors. + +Create a key with \`POST /api/mcp-keys\` (\`{"name": "ci", "scope": "MANAGEMENT_READ"}\`), in the dashboard, or with \`amcp login --browser --url [--scope admin]\`. The full key is returned only once. + +An API key works on the routes that list the \`api-key\` scheme. The routes of the **Auth**, **SSO**, **MCP OAuth**, **Shopee**, **TikTok Shop** and **Support** tags, and a few others, accept only a dashboard session. Routes without a lock need no credential, except a few browser redirect and completion routes of the MCP OAuth, Shopee and TikTok Shop tags. + +## Quick start + +\`\`\`bash +export AMCP_URL=https://cloud.anythingmcp.com # or your self-hosted URL +export AMCP_API_KEY=mcp_… # a MANAGEMENT_ADMIN key + +# Who am I? +curl -s "$AMCP_URL/api/users/me" -H "Authorization: Bearer $AMCP_API_KEY" + +# List connectors (paginated: limit 1..200, offset) +curl -s "$AMCP_URL/api/connectors?limit=50" -H "X-API-Key: $AMCP_API_KEY" + +# Read a catalogue adapter (required variables, tools), then install it +curl -s "$AMCP_URL/api/adapters/hubspot" -H "Authorization: Bearer $AMCP_API_KEY" +curl -s -X POST "$AMCP_URL/api/adapters/hubspot/import" \\ + -H "Authorization: Bearer $AMCP_API_KEY" -H "Content-Type: application/json" \\ + -d '{"credentials": {"HUBSPOT_ACCESS_TOKEN": "pat-eu1-…"}}' +# → {"connectorId": "…", "toolsCreated": 14, "attachedToServer": {…}, "probe": {"ok": true, …}} + +# Create an MCP server and put connectors on it (the list replaces the current one) +curl -s -X POST "$AMCP_URL/api/mcp-servers" \\ + -H "Authorization: Bearer $AMCP_API_KEY" -H "Content-Type: application/json" \\ + -d '{"name": "Sales", "description": "CRM tools for the sales team"}' +curl -s -X PUT "$AMCP_URL/api/mcp-servers//connectors" \\ + -H "Authorization: Bearer $AMCP_API_KEY" -H "Content-Type: application/json" \\ + -d '{"connectorIds": [""]}' + +# Turn on code mode for that server +curl -s -X PUT "$AMCP_URL/api/mcp-servers/" \\ + -H "Authorization: Bearer $AMCP_API_KEY" -H "Content-Type: application/json" \\ + -d '{"codeMode": "inline"}' + +# Mint an MCP key for an AI client; it then connects to $AMCP_URL/mcp/ +curl -s -X POST "$AMCP_URL/api/mcp-keys" \\ + -H "Authorization: Bearer $AMCP_API_KEY" -H "Content-Type: application/json" \\ + -d '{"name": "claude-desktop", "mcpServerId": "", "scope": "MCP"}' + +# The last 20 failed tool calls +curl -s "$AMCP_URL/api/audit/invocations?status=ERROR&limit=20" -H "Authorization: Bearer $AMCP_API_KEY" +\`\`\` + +The same with the CLI (\`npm i -g @anythingmcp/cli\`). \`amcp api --list\` prints every operation it can call, offline: + +\`\`\`bash +amcp login --browser --url https://cloud.anythingmcp.com --scope admin +amcp api GET /api/users/me +amcp api GET "/api/connectors?limit=50" +amcp api POST /api/adapters/hubspot/import --data '{"credentials": {"HUBSPOT_ACCESS_TOKEN": "pat-eu1-…"}}' --yes +amcp api POST /api/mcp-servers --data '{"name": "Sales"}' --yes +amcp api PUT /api/mcp-servers//connectors --data '{"connectorIds": [""]}' --yes +amcp api PUT /api/mcp-servers/ --data '{"codeMode": "inline"}' --yes +amcp api GET "/api/audit/invocations?status=ERROR&limit=20" +\`\`\` + +In CI, set \`AMCP_URL\` and \`AMCP_API_KEY\` instead of logging in. The CLI asks before any method other than \`GET\`; \`--yes\` skips the question. + +## Rate limits + +- Per client IP: 100 requests a minute across the API (a few routes allow less, and the public adapter catalogue is not limited). +- Per management API key: 300 requests a minute by default (\`MANAGEMENT_RATE_LIMIT_PER_MINUTE\` on self-hosted; \`0\` turns it off). + +Over a limit the API answers **429**; wait for the time in the \`Retry-After\` header (or the \`retryAfter\` field) before retrying. + +## Errors + +Errors are JSON: \`{"statusCode": 404, "message": "MCP server not found", "error": "Not Found"}\`. + +| Status | Meaning | +|---|---| +| 400 | Invalid body or query. Unknown fields are rejected; \`message\` lists what is wrong. | +| 401 | Missing, invalid or revoked credential, or an \`MCP\`-scoped key used on \`/api\`. | +| 403 | Authenticated but not allowed: a read-only key on a write, a \`VIEWER\` changing something, a non-admin on an *(ADMIN)* route, a plan limit, or a connector of another workspace. | +| 404 | No such resource in your workspace. | +| 409 | Conflict, e.g. an MCP server slug already used in the workspace. | +| 422 | A remote spec could not be fetched or parsed (\`POST /api/connectors/{id}/import-spec\`). | +| 429 | Rate limit reached; see above. | + +Some import and discovery routes (\`POST /api/connectors/{id}/import\` and \`/discover-tools\`, and \`/import-spec\` for a connector without a spec) answer with a success status (201) and \`{"error": "…"}\` when the spec or the remote server cannot be read: check the body for an \`error\` field. + +## More + +- API guide: ${OPENAPI_API_DOCS_URL} +- CLI guide: ${OPENAPI_CLI_DOCS_URL} +- Source, issues and self-hosting: ${OPENAPI_REPO_URL} +`.trim(); + +/** The DocumentBuilder output for SwaggerModule.createDocument. */ +export function buildOpenApiConfig( + version: string = APP_VERSION, +): Omit { + const builder = new DocumentBuilder() + .setTitle('AnythingMCP API') + .setDescription(OPENAPI_DESCRIPTION) + .setVersion(version) + .setContact('AnythingMCP', 'https://anythingmcp.com', 'info@helpcode.ai') + .setLicense('AGPL-3.0', `${OPENAPI_REPO_URL}/blob/main/LICENSE`) + .setExternalDoc('AnythingMCP API guide', OPENAPI_API_DOCS_URL) + // Default scheme name 'bearer', referenced by @ApiBearerAuth(). + .addBearerAuth({ + type: 'http', + scheme: 'bearer', + bearerFormat: 'JWT or mcp_ key', + description: + 'A management-scoped API key (`mcp_…`, scope MANAGEMENT_READ or MANAGEMENT_ADMIN) ' + + 'or a dashboard session JWT. Paste the value without the "Bearer " prefix.', + }) + .addApiKey( + { + type: 'apiKey', + name: 'X-API-Key', + in: 'header', + description: + 'A management-scoped API key (`mcp_…`, scope MANAGEMENT_READ or MANAGEMENT_ADMIN), ' + + 'as an alternative to the bearer header. Accepted only on routes that also list this scheme.', + }, + API_KEY_SCHEME, + ); + for (const tag of OPENAPI_TAGS) builder.addTag(tag.name, tag.description); + return builder.build(); +} diff --git a/packages/backend/src/connectors/connectors.controller.ts b/packages/backend/src/connectors/connectors.controller.ts index 01955da57..166d997d8 100644 --- a/packages/backend/src/connectors/connectors.controller.ts +++ b/packages/backend/src/connectors/connectors.controller.ts @@ -19,7 +19,7 @@ import { Optional, } from '@nestjs/common'; import type { Response } from 'express'; -import { ApiTags, ApiOperation, ApiBearerAuth, ApiQuery, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiTags, ApiOperation, ApiBearerAuth, ApiQuery, ApiProperty, ApiPropertyOptional, ApiSecurity, ApiBody, ApiResponse } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { PaginationQueryDto } from '../common/pagination.dto'; import { ConfigService } from '@nestjs/config'; @@ -722,6 +722,7 @@ function mayExportSecrets(req: any): boolean { @ApiTags('Connectors') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/connectors') export class ConnectorsController { @@ -778,9 +779,18 @@ export class ConnectorsController { } @Get() - @ApiOperation({ summary: 'List connectors for current organization' }) - @ApiQuery({ name: 'limit', required: false, type: Number, description: '1..200' }) - @ApiQuery({ name: 'offset', required: false, type: Number }) + @ApiOperation({ + summary: 'List connectors for current organization', + description: + 'Every connector of your workspace, newest first, with its tools. Secrets are never returned: secret variables and ' + + 'headers come back empty and are named in `maskedEnvVars` / `maskedHeaders`, and `authConfig` is left out. ' + + '`setupStatus` says whether the connector can serve calls: `ready`, `needs_input` (the variables in ' + + '`missingVariables` are empty) or `needs_authorization` (a sign-in at the provider is pending). ' + + 'Without `limit` all connectors are returned.\n\n' + + '```bash\namcp api GET "/api/connectors?limit=50"\n```', + }) + @ApiQuery({ name: 'limit', required: false, type: Number, description: 'Page size, 1..200. Omit for all.', example: 50 }) + @ApiQuery({ name: 'offset', required: false, type: Number, description: 'Rows to skip.', example: 0 }) async list(@Req() req: any, @Query() pagination: PaginationQueryDto) { const rows = await this.connectorsService.findByOrg(req.user.organizationId, { limit: pagination.limit, @@ -827,7 +837,37 @@ export class ConnectorsController { } @Post() - @ApiOperation({ summary: 'Create a new connector' }) + @ApiOperation({ + summary: 'Create a new connector', + description: + 'Creates a hand-built connector. For an app in the catalogue, `POST /api/adapters/{slug}/import` is simpler: it ' + + 'creates the connector with its tools in one call. A new connector has no tools: add them with ' + + '`POST /api/connectors/{id}/import` (from a spec, Postman, cURL, HAR or JSON), `POST /api/connectors/{id}/import-spec` ' + + '(from `specUrl`), `POST /api/connectors/{id}/discover-tools` (MCP connectors) or the Tools endpoints.\n\n' + + 'A key typed into `baseUrl` or a header is moved into an encrypted variable and referenced as `{{VAR}}`. ' + + 'The connector is added to your default MCP server. File Search connectors are created with ' + + '`POST /api/file-search/connectors` instead. 403 for VIEWERs or when the plan allows no more connectors.', + }) + @ApiBody({ + type: CreateConnectorDto, + examples: { + rest: { + summary: 'REST API with a bearer token', + value: { + name: 'Acme CRM', + type: 'REST', + baseUrl: 'https://api.acme.example/v1', + authType: 'BEARER_TOKEN', + authConfig: { token: 'sk_live_…' }, + specUrl: 'https://api.acme.example/v1/openapi.json', + }, + }, + mcp: { + summary: 'Remote MCP server', + value: { name: 'Docs MCP', type: 'MCP', baseUrl: 'https://mcp.example.com/mcp', authType: 'NONE' }, + }, + }, + }) async create(@Req() req: any, @Body() dto: CreateConnectorDto) { this.assertCanCreate(req); if ((dto.type as string) === 'FILE_SEARCH') { @@ -1198,7 +1238,24 @@ export class ConnectorsController { @ApiOperation({ summary: 'Test connectivity of all active connectors', description: - 'Runs a health check against all active connectors and returns their status.', + 'Runs a health check against all active connectors and returns their status. Each check is a real request to the ' + + 'provider (the connector\'s `healthcheckPath`, or its type\'s test). A connector whose credential the provider ' + + 'refused for good is reported as `needs_reauth` without being called again.', + }) + @ApiResponse({ + status: 200, + schema: { + type: 'object', + example: { + total: 2, + healthy: 1, + unhealthy: 1, + connectors: [ + { id: 'cmob60dvv00c01zrpeujwmnep', name: 'HubSpot', type: 'REST', status: 'healthy', message: 'Connection successful', latencyMs: 231 }, + { id: 'cmob61abc00c11zrpq3x8kdm2', name: 'Acme CRM', type: 'REST', status: 'unhealthy', message: 'Auth handshake reached the API, but the credentials were rejected. Update authConfig and retry.', latencyMs: 118 }, + ], + }, + }, }) async healthCheck(@Req() req: any) { const allConnectors = await this.connectorsService.findByOrg(req.user.organizationId); @@ -1283,9 +1340,11 @@ export class ConnectorsController { 'so it can be restored with import-all or import. authConfig is never ' + 'exported. Secret environment variables and headers are exported only ' + 'to admins; for every other role, and for a read-only (MANAGEMENT_READ) ' + - 'API key, they are left empty and named in `maskedEnvVars` / `maskedHeaders`.', + 'API key, they are left empty and named in `maskedEnvVars` / `maskedHeaders`. ' + + 'The `X-Secrets-Included` response header says which it was.\n\n' + + '```bash\ncurl -s "$AMCP_URL/api/connectors//export?format=yaml" -H "Authorization: Bearer $AMCP_API_KEY" -o acme.yaml\n```', }) - @ApiQuery({ name: 'format', required: false, enum: ['json', 'yaml'] }) + @ApiQuery({ name: 'format', required: false, enum: ['json', 'yaml'], description: 'File format (default json).', example: 'yaml' }) async exportOne( @Req() req: any, @Param('id') id: string, @@ -1782,7 +1841,22 @@ export class ConnectorsController { } @Post(':id/test') - @ApiOperation({ summary: 'Test connector connection' }) + @ApiOperation({ + summary: 'Test connector connection', + description: + 'Makes one request to the provider with the stored settings (the connector\'s `healthcheckPath` for REST) and ' + + 'reports the outcome; nothing is changed. `kind` classifies it: `ok`, `auth_failed` (401/403, check the ' + + 'credentials), `not_found` (reachable, but the path does not exist), `unreachable` (DNS, network, timeout or a ' + + 'blocked address), `unsupported` or `error`. A connector with per-user credentials is tested with your own sign-in. ' + + 'Only the connector owner or an admin may test it.', + }) + @ApiResponse({ + status: 201, + schema: { + type: 'object', + example: { ok: false, kind: 'auth_failed', httpStatus: 401, message: 'Auth handshake reached the API, but the credentials were rejected. Update authConfig and retry.' }, + }, + }) async test(@Req() req: any, @Param('id') id: string) { const connector = await this.connectorsService.findById(id); this.assertCanWrite(connector, req); @@ -1856,7 +1930,17 @@ export class ConnectorsController { summary: 'Discover and import tools from a remote MCP server', description: 'Connects to the remote MCP server using stored credentials, ' + - 'lists all available tools, and imports them as MCP tools.', + 'lists all available tools, and imports them as MCP tools.\n\n' + + 'Run it again to pick up tools the remote server added or changed: existing tools are updated, new ones created, ' + + 'and tools the server no longer lists are deprecated (disabled, listed in `deprecated`). MCP connectors only. On failure the answer is ' + + 'a success status (201) with `{"error": "…"}`.', + }) + @ApiResponse({ + status: 201, + schema: { + type: 'object', + example: { message: 'Imported tools: created 12, updated 0', created: 12, updated: 0, deprecated: [], skipped: [], renameConflicts: [], tools: [{ id: '…', name: 'search_docs', isEnabled: true }] }, + }, }) async discoverMcpTools(@Req() req: any, @Param('id') id: string) { const connector = await this.connectorsService.findById(id); @@ -1949,7 +2033,15 @@ export class ConnectorsController { 'or YAML, and imports it like import-all: into the caller\'s ' + 'organization only, skipping connectors with duplicate names, never ' + 'restoring auth credentials. Not to be confused with POST :id/import, ' + - 'which imports tools from an API spec into an existing connector.', + 'which imports tools from an API spec into an existing connector.\n\n' + + '```bash\namcp api POST /api/connectors/import --data "$(jq -Rs \'{content: .}\' acme.yaml)" --yes\n```', + }) + @ApiResponse({ + status: 201, + schema: { + type: 'object', + example: { message: 'Imported 1 connectors with 14 tools', created: 1, skipped: 0, tools: 14, errors: [] }, + }, }) async importFile(@Req() req: any, @Body() dto: ImportFileDto) { this.assertCanCreate(req); @@ -2094,7 +2186,16 @@ export class ConnectorsController { } @Post(':id/import-spec') - @ApiOperation({ summary: 'Auto-generate MCP tools from API specification' }) + @ApiOperation({ + summary: 'Auto-generate MCP tools from API specification', + description: + 'Reads the spec the connector already points at and creates one tool per operation: the OpenAPI document at ' + + '`specUrl` (or the stored spec) for REST, the WSDL at `specUrl` or the base URL for SOAP, the schema by ' + + 'introspection for GraphQL. No body. Running it again updates the tools and deprecates (disables) those the spec no longer has. ' + + 'For other sources (Postman, cURL, HAR, JSON, inline content) use `POST /api/connectors/{id}/import`. ' + + 'A spec that cannot be fetched or parsed answers 422; a connector without a spec, or of a type with no spec import, ' + + 'answers a success status (201) with `{"error": "…"}`.', + }) async importSpec(@Req() req: any, @Param('id') id: string) { const connector = await this.connectorsService.findById(id); this.assertCanWrite(connector, req); @@ -2154,6 +2255,51 @@ export class ConnectorsController { @Post(':id/import') @ApiOperation({ summary: 'Import tools from any source: OpenAPI, Postman, cURL, HAR, WSDL, GraphQL', + description: + 'Parses `content` (inline text) or `url` with the parser named by `source` and creates or updates the ' + + 'connector\'s tools.\n\n' + + '- `openapi`, `postman`: `content` or `url`.\n' + + '- `wsdl`: `url` or `content` with the WSDL address, else the connector base URL.\n' + + '- `graphql`: introspects `url` or the connector base URL.\n' + + '- `curl`, `har`, `json`: `content` only. These **add** tools and deprecate nothing; `json` takes ' + + '`[{name, description, parameters, endpointMapping}]`.\n' + + '- `mcp`: lists the tools of the remote MCP server (MCP connectors; `url` is an optional MCP path).\n' + + '- `odata`: `service` path (and optional `entitySets`); its `$metadata` is fetched unless `content` holds it.\n\n' + + 'A full spec import (OpenAPI, WSDL, GraphQL, Postman, MCP) deprecates (disables) the tools the spec no longer has; ' + + 'an OData import only those of the same service. Tools are matched by operationId, then method and path, then name. ' + + 'Parse failures answer a success status (201) with `{"error": "…"}`.', + }) + @ApiBody({ + type: ImportToolsDto, + examples: { + openapiUrl: { + summary: 'OpenAPI from a URL', + value: { source: 'openapi', url: 'https://api.acme.example/v1/openapi.json' }, + }, + curl: { + summary: 'One tool from a cURL command', + value: { source: 'curl', content: "curl -X GET 'https://api.acme.example/v1/customers?limit=10' -H 'Accept: application/json'" }, + }, + odata: { + summary: 'SAP OData service', + value: { source: 'odata', service: '/sap/opu/odata/sap/API_BUSINESS_PARTNER', entitySets: ['A_BusinessPartner'] }, + }, + }, + }) + @ApiResponse({ + status: 201, + schema: { + type: 'object', + example: { + message: 'Imported tools: created 42, updated 3, deprecated 1', + created: 42, + updated: 3, + deprecated: ['get_legacy_report'], + skipped: [], + renameConflicts: [], + tools: [{ id: '…', name: 'list_customers', isEnabled: true }], + }, + }, }) async importTools( @Req() req: any, diff --git a/packages/backend/src/connectors/tools.controller.ts b/packages/backend/src/connectors/tools.controller.ts index d8d98eacd..dd00a2475 100644 --- a/packages/backend/src/connectors/tools.controller.ts +++ b/packages/backend/src/connectors/tools.controller.ts @@ -13,7 +13,7 @@ import { BadRequestException, ConflictException, } from '@nestjs/common'; -import { ApiTags, ApiOperation, ApiBearerAuth, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiTags, ApiOperation, ApiBearerAuth, ApiProperty, ApiPropertyOptional, ApiSecurity } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { IsString, @@ -304,6 +304,7 @@ class PreviewMappingDto { @ApiTags('Tools') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/connectors/:connectorId/tools') export class ToolsController { diff --git a/packages/backend/src/file-search/file-search.controller.ts b/packages/backend/src/file-search/file-search.controller.ts index d983adca0..7360ea631 100644 --- a/packages/backend/src/file-search/file-search.controller.ts +++ b/packages/backend/src/file-search/file-search.controller.ts @@ -1,6 +1,6 @@ import { Body, Controller, Delete, Get, Param, Post, Put, Query, Req, UseGuards } from '@nestjs/common'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; -import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiTags, ApiSecurity } from '@nestjs/swagger'; import { FileSearchService } from './file-search.service'; import { FileAccessRulesDto, @@ -22,6 +22,7 @@ import { */ @ApiTags('File Search') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/file-search') export class FileSearchController { diff --git a/packages/backend/src/file-search/file-share.controller.ts b/packages/backend/src/file-search/file-share.controller.ts index 8136978ea..0591ecd55 100644 --- a/packages/backend/src/file-search/file-share.controller.ts +++ b/packages/backend/src/file-search/file-share.controller.ts @@ -1,6 +1,6 @@ import { Controller, Delete, ForbiddenException, Get, Param, Post, Query, Req, Res, UseGuards } from '@nestjs/common'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; -import { ApiOperation, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiSecurity, ApiTags } from '@nestjs/swagger'; import type { Response } from 'express'; import { FileShareService } from './file-share.service'; import { FileShareConnectorService } from './file-share-connector.service'; @@ -19,6 +19,8 @@ export class FileShareController { private readonly connector: FileShareConnectorService, ) {} + @ApiBearerAuth() + @ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Get() @ApiOperation({ summary: 'List File Share links' }) @@ -41,6 +43,8 @@ export class FileShareController { return { ...page, limits, usage, connector }; } + @ApiBearerAuth() + @ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Delete(':id') @ApiOperation({ summary: 'Revoke a File Share link' }) @@ -48,6 +52,8 @@ export class FileShareController { return this.shares.revoke(req.user.organizationId, id, req.user); } + @ApiBearerAuth() + @ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Post('connector') @ApiOperation({ summary: 'Create the File Share connector (admin only)' }) @@ -68,6 +74,8 @@ export class FileShareController { return this.shares.issueDownload(token, null); } + @ApiBearerAuth() + @ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Post('s/:token/download-internal') @ApiOperation({ summary: 'Issue a download for an internal share (signed-in member)' }) @@ -93,6 +101,8 @@ export class FileShareController { file.stream.pipe(res); } + @ApiBearerAuth() + @ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Get('limits') @ApiOperation({ summary: 'Get File Share limits and usage' }) diff --git a/packages/backend/src/identity-providers/identity-providers.controller.ts b/packages/backend/src/identity-providers/identity-providers.controller.ts index 6ce706259..2b9fa8dcc 100644 --- a/packages/backend/src/identity-providers/identity-providers.controller.ts +++ b/packages/backend/src/identity-providers/identity-providers.controller.ts @@ -18,6 +18,7 @@ import { ApiOperation, ApiProperty, ApiPropertyOptional, + ApiSecurity, } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { @@ -202,6 +203,7 @@ class ReplaceRoleMappingsDto { */ @ApiTags('Identity Providers') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(SelfHostedOnlyGuard, JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @Controller('api/identity-providers') diff --git a/packages/backend/src/knowledge-folders/knowledge-folders.controller.ts b/packages/backend/src/knowledge-folders/knowledge-folders.controller.ts index c8e05f623..fb7a07076 100644 --- a/packages/backend/src/knowledge-folders/knowledge-folders.controller.ts +++ b/packages/backend/src/knowledge-folders/knowledge-folders.controller.ts @@ -1,6 +1,6 @@ import { Body, Controller, Delete, Get, Param, Patch, Post, Put, Req, UseGuards } from '@nestjs/common'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; -import { ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiTags, ApiSecurity } from '@nestjs/swagger'; import { ArrayMaxSize, ArrayNotEmpty, @@ -78,6 +78,7 @@ class MoveItemsDto { @ApiTags('Knowledge folders') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Controller('api/knowledge-folders') export class KnowledgeFoldersController { diff --git a/packages/backend/src/knowledge-graph/kg.controller.ts b/packages/backend/src/knowledge-graph/kg.controller.ts index f0bd14902..6587bfa5c 100644 --- a/packages/backend/src/knowledge-graph/kg.controller.ts +++ b/packages/backend/src/knowledge-graph/kg.controller.ts @@ -12,7 +12,7 @@ import { UseGuards, } from '@nestjs/common'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; -import { ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiTags, ApiSecurity } from '@nestjs/swagger'; import { ArrayMaxSize, ArrayNotEmpty, @@ -192,6 +192,7 @@ class SetMyLearningDto { @ApiTags('Knowledge Graph') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Controller('api/knowledge-graph') export class KgController { diff --git a/packages/backend/src/license/license.controller.ts b/packages/backend/src/license/license.controller.ts index 7a928e61a..4e0aca316 100644 --- a/packages/backend/src/license/license.controller.ts +++ b/packages/backend/src/license/license.controller.ts @@ -15,7 +15,7 @@ import { Logger, Optional, } from '@nestjs/common'; -import { ApiTags, ApiOperation, ApiBearerAuth } from '@nestjs/swagger'; +import { ApiTags, ApiOperation, ApiBearerAuth, ApiSecurity } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { Throttle } from '@nestjs/throttler'; import { IsBoolean, IsIn, IsString, IsOptional, Matches } from 'class-validator'; @@ -205,6 +205,7 @@ export class LicenseController { @Roles('ADMIN') @Throttle({ default: { limit: 5, ttl: 60_000 } }) @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Re-verify the workspace licence now, e.g. after returning from the billing portal (cloud, ADMIN)', @@ -260,6 +261,7 @@ export class LicenseController { @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Set and activate a license key (ADMIN)' }) async setLicenseKey(@Req() req: any, @Body() dto: SetLicenseKeyDto) { try { @@ -274,6 +276,7 @@ export class LicenseController { @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Open the Stripe billing portal for the current subscription (ADMIN)', }) @@ -296,6 +299,7 @@ export class LicenseController { // Each call creates a session on the licence site. @Throttle({ default: { limit: 10, ttl: 60_000 } }) @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'One-hour link to accept the Data Processing Agreement on the licence site (cloud, ADMIN, paid plans)', }) @@ -318,6 +322,7 @@ export class LicenseController { // this a few times at most, a loop should not be able to do more. @Throttle({ default: { limit: 10, ttl: 60_000 } }) @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Stripe Checkout link for a cloud plan, optionally as a card trial ending with the free trial (cloud, ADMIN)', @@ -404,6 +409,7 @@ export class LicenseController { @Get('pricing-link-token') @UseGuards(JwtOrManagementKeyGuard) @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: "Cloud: the signed-in user's address token for links to the pricing page (#t=), null when EMAIL_LINK_SECRET is unset", @@ -422,6 +428,7 @@ export class LicenseController { @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Cloud, ADMIN: whether this address can start a card trial (kind trial), must pay today because it had a subscription (pay), or neither applies (none)', @@ -442,6 +449,7 @@ export class LicenseController { @Get('card-trial-offer') @UseGuards(JwtOrManagementKeyGuard) @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Cloud: the card-trial offer after the first successful tool call, for admins of an eligible workspace (null otherwise)', @@ -459,6 +467,7 @@ export class LicenseController { @Get('wall') @UseGuards(JwtOrManagementKeyGuard) @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Cloud: the ended-trial licence wall for an admin: its variant and the workspace\'s own numbers (null otherwise)', @@ -480,6 +489,7 @@ export class LicenseController { @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Force re-verify license against remote API (ADMIN)' }) async verifyLicense(@Req() req: any) { const result = await this.licenseService.verifyLicense(undefined, req.user.organizationId); @@ -489,6 +499,7 @@ export class LicenseController { @Post('activate-trial') @UseGuards(JwtOrManagementKeyGuard) @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Start a 7-day cloud trial (cloud mode only)' }) async activateTrial(@Req() req: any) { if (!this.deployment.isCloud()) { @@ -542,6 +553,7 @@ export class LicenseController { @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @ApiBearerAuth() + @ApiSecurity('api-key') @ApiOperation({ summary: 'Request a free community license (sent via email)' }) async registerCommunity(@Req() req: any) { const user = await this.usersService.findById(req.user.sub); diff --git a/packages/backend/src/main.ts b/packages/backend/src/main.ts index eb2ffda8f..686ec3079 100644 --- a/packages/backend/src/main.ts +++ b/packages/backend/src/main.ts @@ -20,7 +20,8 @@ startTracing(); import { NestFactory } from '@nestjs/core'; import { APP_VERSION, APP_COMMIT, APP_BUILD_DATE } from './common/app-version'; import { Logger, ValidationPipe } from '@nestjs/common'; -import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; +import { SwaggerModule } from '@nestjs/swagger'; +import { buildOpenApiConfig } from './common/openapi'; import { ConfigService } from '@nestjs/config'; import { Logger as PinoLogger } from 'nestjs-pino'; import cookieParser from 'cookie-parser'; @@ -132,26 +133,8 @@ async function bootstrap() { exposedHeaders: ['Content-Disposition', 'X-Secrets-Included'], }); - // Swagger documentation - const swaggerConfig = new DocumentBuilder() - .setTitle('AnythingMCP API') - .setDescription( - 'Backend API for AnythingMCP — convert any API into an MCP server. ' + - 'Manage connectors, configure MCP tools, and monitor usage.', - ) - .setVersion('0.1.0') - .addBearerAuth() - .addApiKey( - { type: 'apiKey', name: 'X-API-Key', in: 'header' }, - 'api-key', - ) - .addTag('Auth', 'Authentication and user management') - .addTag('Connectors', 'Manage API connectors') - .addTag('Tools', 'MCP tool configuration') - .addTag('AI', 'AI-assisted configuration') - .addTag('MCP', 'MCP server management') - .addTag('Health', 'Health checks') - .build(); + // Swagger documentation (metadata, tags and auth schemes: common/openapi.ts) + const swaggerConfig = buildOpenApiConfig(APP_VERSION); const document = SwaggerModule.createDocument(app, swaggerConfig); SwaggerModule.setup('api/docs', app, document, { diff --git a/packages/backend/src/mcp-server/mcp-endpoint.controller.ts b/packages/backend/src/mcp-server/mcp-endpoint.controller.ts index 49e542e5c..cebb8e881 100644 --- a/packages/backend/src/mcp-server/mcp-endpoint.controller.ts +++ b/packages/backend/src/mcp-server/mcp-endpoint.controller.ts @@ -109,6 +109,7 @@ import { planServerResources, } from './mcp-resources'; import { flattenToolSchema, jsonSchemaToZodShape, stripEnvVarParams } from './tool-schema.util'; +import { ApiTags } from '@nestjs/swagger'; function trimSlash(url: string | undefined): string { return (url || '').trim().replace(/\/+$/, ''); @@ -269,6 +270,7 @@ const SKILL_INSTRUCTION_MAX = 1800; * each MCP server its own unique URL that clients like Claude Desktop * can connect to independently (via OAuth or API key). */ +@ApiTags('MCP Endpoint') @Controller('mcp') @SkipThrottle() // Auth first, then the per-caller ceiling (it needs to know who is calling). diff --git a/packages/backend/src/mcp-server/well-known-oauth.controller.ts b/packages/backend/src/mcp-server/well-known-oauth.controller.ts index c84e00c6d..e1a85151c 100644 --- a/packages/backend/src/mcp-server/well-known-oauth.controller.ts +++ b/packages/backend/src/mcp-server/well-known-oauth.controller.ts @@ -1,5 +1,6 @@ import { Controller, Get, Param, Req, Res } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; +import { ApiTags } from '@nestjs/swagger'; import type { Request, Response } from 'express'; /** @@ -24,6 +25,7 @@ import type { Request, Response } from 'express'; * resource is always `/mcp/`) rather than a wildcard, to avoid any * path-matching ambiguity. */ +@ApiTags('OAuth discovery') @Controller('.well-known') export class WellKnownOAuthController { constructor(private readonly config: ConfigService) {} diff --git a/packages/backend/src/mcp-servers/mcp-connections.controller.ts b/packages/backend/src/mcp-servers/mcp-connections.controller.ts index 273c1f6ff..c7d349471 100644 --- a/packages/backend/src/mcp-servers/mcp-connections.controller.ts +++ b/packages/backend/src/mcp-servers/mcp-connections.controller.ts @@ -9,7 +9,7 @@ import { UseGuards, } from '@nestjs/common'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; -import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiTags, ApiSecurity } from '@nestjs/swagger'; import { McpConnectionGrantService } from './mcp-connection-grant.service'; import { PrismaService } from '../common/prisma.service'; import { @@ -37,10 +37,11 @@ interface UpdateConnectionDto { * Changes take effect on the connection's very next request: the grant is * re-read, and re-validated, per request. */ -@ApiTags('mcp-connections') +@ApiTags('MCP Connections') @Controller('api/mcp-connections') @UseGuards(JwtOrManagementKeyGuard) @ApiBearerAuth() +@ApiSecurity('api-key') export class McpConnectionsController { constructor( private readonly grants: McpConnectionGrantService, diff --git a/packages/backend/src/mcp-servers/mcp-servers.controller.ts b/packages/backend/src/mcp-servers/mcp-servers.controller.ts index eb818c892..1abb45c66 100644 --- a/packages/backend/src/mcp-servers/mcp-servers.controller.ts +++ b/packages/backend/src/mcp-servers/mcp-servers.controller.ts @@ -12,7 +12,7 @@ import { NotFoundException, ForbiddenException, } from '@nestjs/common'; -import { ApiTags, ApiBearerAuth, ApiOperation, ApiQuery, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiTags, ApiBearerAuth, ApiOperation, ApiQuery, ApiProperty, ApiPropertyOptional, ApiSecurity, ApiBody, ApiResponse } from '@nestjs/swagger'; import { PaginationQueryDto } from '../common/pagination.dto'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { IsString, IsOptional, IsBoolean, IsArray, IsIn } from 'class-validator'; @@ -89,6 +89,7 @@ class UpdateMcpServerDto { enum: CODE_MODE_MODES, description: 'Code mode for this server: off (default, no code execution), tools (saved code tools only), inline (also the generic code_execute / code_propose_tool). Needs a configured code-runner to actually run.', + example: 'inline', }) @IsOptional() @IsIn(CODE_MODE_MODES as unknown as string[]) @@ -109,6 +110,7 @@ class AssignConnectorsDto { @ApiTags('MCP Servers') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/mcp-servers') export class McpServersController { @@ -135,9 +137,16 @@ export class McpServersController { } @Get() - @ApiOperation({ summary: 'List MCP servers for current organization' }) - @ApiQuery({ name: 'limit', required: false, type: Number, description: '1..200' }) - @ApiQuery({ name: 'offset', required: false, type: Number }) + @ApiOperation({ + summary: 'List MCP servers for current organization', + description: + 'Every MCP server of your workspace, oldest first. Each one is an MCP endpoint at `/mcp/{id}` that exposes the ' + + 'tools of its connectors. Includes the names of its connectors, `_count` (connectors, API keys) and `usage` ' + + '(`calls30d`, `lastCallAt`). Without `limit` all servers are returned.\n\n' + + '```bash\namcp api GET /api/mcp-servers\n```', + }) + @ApiQuery({ name: 'limit', required: false, type: Number, description: 'Page size, 1..200. Omit for all.', example: 50 }) + @ApiQuery({ name: 'offset', required: false, type: Number, description: 'Rows to skip.', example: 0 }) async list(@Req() req: any, @Query() pagination: PaginationQueryDto) { const servers = await this.mcpServersService.findAllByOrg(req.user.organizationId, { limit: pagination.limit, @@ -154,7 +163,28 @@ export class McpServersController { } @Post() - @ApiOperation({ summary: 'Create a new MCP server' }) + @ApiOperation({ + summary: 'Create a new MCP server', + description: + 'Creates an empty MCP server; its endpoint is `/mcp/{id}` (the `id` in the response). Then put connectors on it ' + + 'with `PUT /api/mcp-servers/{id}/connectors`, set code mode or skills delivery with `PUT /api/mcp-servers/{id}`, ' + + 'and give AI clients a key with `POST /api/mcp-keys` (`mcpServerId`) or let them sign in with OAuth. ' + + 'A slug is derived from the name when omitted; a slug already used in the workspace answers 409. ' + + '403 when the plan allows no more MCP servers.', + }) + @ApiBody({ + type: CreateMcpServerDto, + examples: { + sales: { + summary: 'A server for the sales team', + value: { + name: 'Sales', + description: 'CRM and e-mail tools for the sales team', + instructions: 'Use HubSpot for customer data. Never delete records.', + }, + }, + }, + }) async create(@Req() req: any, @Body() dto: CreateMcpServerDto) { await this.licenseGuard.checkCanCreateMcpServer(req.user.sub, req.user.organizationId); return this.mcpServersService.create(req.user.sub, req.user.organizationId, dto); @@ -176,8 +206,14 @@ export class McpServersController { @Get(':id/activity') @ApiOperation({ - summary: - 'Calls in the last 30 days and the time of the last one. Polled by the connect page to show when the first request from an AI client arrives.', + summary: 'Calls in the last 30 days and the time of the last one', + description: + 'Tool calls made through this server in the last 30 days and when the last one happened. Polled by the connect ' + + 'page to show when the first request from an AI client arrives; also a cheap way to check a server is in use.', + }) + @ApiResponse({ + status: 200, + schema: { type: 'object', example: { calls30d: 1284, lastCallAt: '2026-11-05T09:41:12.000Z' } }, }) async activity(@Req() req: any, @Param('id') id: string) { const server = await this.mcpServersService.findById(id); @@ -188,7 +224,30 @@ export class McpServersController { } @Put(':id') - @ApiOperation({ summary: 'Update MCP server' }) + @ApiOperation({ + summary: 'Update MCP server', + description: + 'Changes only the fields sent. `codeMode` controls code execution on this server:\n\n' + + '- `off` (default): no code execution.\n' + + '- `tools`: saved code tools (approved programs stored as tools) can run.\n' + + '- `inline`: also the generic `code_execute` (run a short program that calls several tools in one step) and ' + + '`code_propose_tool` (propose a program as a saved code tool for an admin to approve).\n\n' + + 'Code runs in an isolated sandbox and needs a configured code-runner. `skillsDelivery` sets how applied skills ' + + 'reach clients (`auto`, `inline`, `index`); `isActive: false` switches the endpoint off. Only the server owner or ' + + 'an admin may change it; a slug already used in the workspace answers 409.\n\n' + + '```bash\namcp api PUT /api/mcp-servers/ --data \'{"codeMode":"inline"}\' --yes\n```', + }) + @ApiBody({ + type: UpdateMcpServerDto, + examples: { + codeMode: { summary: 'Turn on code mode', value: { codeMode: 'inline' } }, + disable: { summary: 'Switch the endpoint off', value: { isActive: false } }, + instructions: { + summary: 'Change the instructions sent to AI clients', + value: { instructions: 'Answer in English. Use the ERP for prices, never the web.' }, + }, + }, + }) async update(@Req() req: any, @Param('id') id: string, @Body() dto: UpdateMcpServerDto) { const server = await this.mcpServersService.findById(id); if (!server) throw new NotFoundException('MCP server not found'); @@ -207,7 +266,16 @@ export class McpServersController { } @Put(':id/connectors') - @ApiOperation({ summary: 'Assign connectors to MCP server' }) + @ApiOperation({ + summary: 'Assign connectors to MCP server', + description: + 'Sets the connectors whose tools this server exposes. The list **replaces** the current assignment: send every ' + + 'connector that should stay, or `[]` to remove them all. Connected AI clients are told the tool list changed. ' + + '404 when an id is not a connector of your workspace. Which tools each user may call is then decided by roles ' + + '(`/api/roles`).\n\n' + + '```bash\namcp api PUT /api/mcp-servers//connectors --data \'{"connectorIds":[""]}\' --yes\n```', + }) + @ApiResponse({ status: 200, schema: { type: 'object', example: { message: 'Connectors assigned' } } }) async assignConnectors( @Req() req: any, @Param('id') id: string, diff --git a/packages/backend/src/memory/memory.controller.ts b/packages/backend/src/memory/memory.controller.ts index cc221e19b..44d845b80 100644 --- a/packages/backend/src/memory/memory.controller.ts +++ b/packages/backend/src/memory/memory.controller.ts @@ -13,7 +13,7 @@ import { UseGuards, } from '@nestjs/common'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; -import { ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiTags } from '@nestjs/swagger'; +import { ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiTags, ApiSecurity } from '@nestjs/swagger'; import { ArrayMaxSize, ArrayNotEmpty, @@ -139,6 +139,7 @@ class SetMemoryAccessDto { @ApiTags('Memory') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Controller('api/memory') export class MemoryController { diff --git a/packages/backend/src/organizations/organizations.controller.ts b/packages/backend/src/organizations/organizations.controller.ts index 6bda5fc9a..d626c0051 100644 --- a/packages/backend/src/organizations/organizations.controller.ts +++ b/packages/backend/src/organizations/organizations.controller.ts @@ -13,7 +13,7 @@ import { NotFoundException, BadRequestException, } from '@nestjs/common'; -import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiSecurity } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { IsString, IsOptional, IsBoolean } from 'class-validator'; import { OrganizationsService } from './organizations.service'; @@ -77,6 +77,7 @@ class DeleteOrgDto { @ApiTags('Organizations') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/organizations') export class OrganizationsController { diff --git a/packages/backend/src/roles/mcp-api-keys.controller.ts b/packages/backend/src/roles/mcp-api-keys.controller.ts index 8d3cbefe9..f9b32d6cf 100644 --- a/packages/backend/src/roles/mcp-api-keys.controller.ts +++ b/packages/backend/src/roles/mcp-api-keys.controller.ts @@ -9,7 +9,7 @@ import { UseGuards, } from '@nestjs/common'; import { ForbiddenException } from '@nestjs/common'; -import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiSecurity, ApiBody, ApiResponse } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { IsString, IsOptional, IsIn } from 'class-validator'; import { McpApiKeysService } from './mcp-api-keys.service'; @@ -45,13 +45,19 @@ class CreateKeyDto { @ApiTags('MCP API Keys') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/mcp-keys') export class McpApiKeysController { constructor(private readonly keysService: McpApiKeysService) {} @Get() - @ApiOperation({ summary: 'List my MCP API keys' }) + @ApiOperation({ + summary: 'List my MCP API keys', + description: + 'Your own keys in every scope, with name, scope, server, active flag and last use. The key value is masked ' + + '(only its last 8 characters are shown); the full value is returned once, at creation.', + }) async listKeys(@Req() req: any) { const keys = await this.keysService.listByUser(req.user.sub); // Mask keys for display: show only last 8 chars @@ -62,7 +68,44 @@ export class McpApiKeysController { } @Post() - @ApiOperation({ summary: 'Generate a new MCP API key' }) + @ApiOperation({ + summary: 'Generate a new MCP API key', + description: + 'Creates a key `mcp_…` owned by you and returns it in full, **once**: store it now.\n\n' + + '- `scope: "MCP"` (default): for AI clients calling tools on `/mcp` (`X-API-Key` or `Authorization: Bearer`). ' + + 'With `mcpServerId` the key works on that server only.\n' + + '- `scope: "MANAGEMENT_READ"`: this API, `GET`/`HEAD` only, e.g. for dashboards and audits.\n' + + '- `scope: "MANAGEMENT_ADMIN"`: this API, any method. Only admins can create one (403 otherwise).\n\n' + + 'A key always acts with its owner\'s role and never grants more. `amcp login --browser` creates a management key ' + + 'for the CLI the same way. Revoke with `POST /api/mcp-keys/{id}/revoke`.', + }) + @ApiBody({ + type: CreateKeyDto, + examples: { + client: { + summary: 'Key for an AI client on one server', + value: { name: 'claude-desktop', mcpServerId: 'cmo9x1k2a0001abcdpq7rs8tu', scope: 'MCP' }, + }, + ciRead: { summary: 'Read-only key for CI', value: { name: 'ci-audit', scope: 'MANAGEMENT_READ' } }, + admin: { summary: 'Full management key (admins only)', value: { name: 'terraform', scope: 'MANAGEMENT_ADMIN' } }, + }, + }) + @ApiResponse({ + status: 201, + description: 'The new key. `key` is shown only in this response.', + schema: { + type: 'object', + example: { + id: 'cmoa2b3c40002efghuv9wx0yz', + key: 'mcp_3f9a…c41d', + name: 'ci-audit', + isActive: true, + mcpServerId: null, + scope: 'MANAGEMENT_READ', + createdAt: '2026-11-05T10:00:00.000Z', + }, + }, + }) async generateKey(@Req() req: any, @Body() dto: CreateKeyDto) { const scope: McpApiKeyScope = dto.scope ?? 'MCP'; // A full-access management key is only meaningful for an admin; cap the @@ -82,7 +125,12 @@ export class McpApiKeysController { } @Post(':id/revoke') - @ApiOperation({ summary: 'Revoke (deactivate) an MCP API key' }) + @ApiOperation({ + summary: 'Revoke (deactivate) an MCP API key', + description: + 'Deactivates one of your own keys: from the next request on it is refused (401), on `/mcp` and on this API. ' + + 'The key stays in your list as inactive; `DELETE /api/mcp-keys/{id}` removes it. Only your own keys are affected.', + }) async revokeKey(@Req() req: any, @Param('id') id: string) { await this.keysService.revoke(id, req.user.sub); return { message: 'Key revoked' }; diff --git a/packages/backend/src/roles/roles.controller.ts b/packages/backend/src/roles/roles.controller.ts index e78d83331..0bfd27fc2 100644 --- a/packages/backend/src/roles/roles.controller.ts +++ b/packages/backend/src/roles/roles.controller.ts @@ -11,7 +11,7 @@ import { ForbiddenException, NotFoundException, } from '@nestjs/common'; -import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiSecurity, ApiBody, ApiResponse } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { IsString, IsOptional, IsArray, ArrayMaxSize } from 'class-validator'; import { Roles, RolesGuard } from '../auth/roles.guard'; @@ -77,6 +77,7 @@ class SetUserRolesDto { @ApiTags('Roles') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @Controller('api/roles') @@ -84,13 +85,30 @@ export class RolesController { constructor(private readonly rolesService: RolesService) {} @Get() - @ApiOperation({ summary: 'List all roles (ADMIN)' }) + @ApiOperation({ + summary: 'List all roles (ADMIN)', + description: + 'The MCP roles of your workspace plus the built-in system roles. An MCP role is a whitelist of tools: a member ' + + 'with one or more roles may call only the tools those roles allow (the union); a member with no MCP role keeps ' + + 'access to every tool of the servers they reach. Separate from the workspace role (ADMIN, EDITOR, VIEWER).', + }) async listRoles(@Req() req: any) { return this.rolesService.findAll(req.user.organizationId); } @Post() - @ApiOperation({ summary: 'Create a custom role (ADMIN)' }) + @ApiOperation({ + summary: 'Create a custom role (ADMIN)', + description: + 'Creates an empty role. Next, choose its tools with `PUT /api/roles/{id}/tools` and give it to members with ' + + '`PUT /api/roles/assignments/{userId}`.', + }) + @ApiBody({ + type: CreateRoleDto, + examples: { + sales: { summary: 'Read-only sales role', value: { name: 'sales-read-only', description: 'CRM lookups, no writes' } }, + }, + }) async createRole(@Req() req: any, @Body() dto: CreateRoleDto) { return this.rolesService.create({ ...dto, organizationId: req.user.organizationId }); } @@ -140,7 +158,24 @@ export class RolesController { } @Put(':id/tools') - @ApiOperation({ summary: 'Set tool access for a role (ADMIN)' }) + @ApiOperation({ + summary: 'Set tool access for a role (ADMIN)', + description: + 'Sets the tools members with this role may call. The list **replaces** the current one; `[]` allows none. ' + + 'Tool ids are the `id` of each tool in `GET /api/connectors` (its `tools`) or `GET /api/connectors/{id}/tools`, ' + + 'and must all belong to your workspace. System roles cannot be changed.\n\n' + + '```bash\namcp api PUT /api/roles//tools --data \'{"toolIds":["",""]}\' --yes\n```', + }) + @ApiBody({ + type: SetToolAccessDto, + examples: { + twoTools: { + summary: 'Allow two tools', + value: { toolIds: ['cmob7a1b200d01zrp5h6j7k8l', 'cmob7a1b200d11zrp9m0n1p2q'] }, + }, + }, + }) + @ApiResponse({ status: 200, schema: { type: 'object', example: { message: 'Tool access updated' } } }) async setToolAccess( @Req() req: any, @Param('id') id: string, @@ -174,7 +209,22 @@ export class RolesController { } @Get('assignments/:userId') - @ApiOperation({ summary: 'List the MCP roles assigned to a user (ADMIN)' }) + @ApiOperation({ + summary: 'List the MCP roles assigned to a user (ADMIN)', + description: + 'The MCP roles a member holds, with where each assignment comes from (`source`: `manual`, or set by identity ' + + 'provider group sync). User ids are in `GET /api/users`.', + }) + @ApiResponse({ + status: 200, + schema: { + type: 'object', + example: { + roleIds: ['cmoc1d2e300e01zrpr3s4t5u6'], + roles: [{ id: 'cmoc1d2e300e01zrpr3s4t5u6', name: 'sales-read-only', source: 'manual' }], + }, + }, + }) async getAssignments(@Req() req: any, @Param('userId') userId: string) { const assignments = await this.rolesService.getUserRoles( userId, @@ -191,7 +241,24 @@ export class RolesController { } @Put('assignments/:userId') - @ApiOperation({ summary: 'Set the MCP roles assigned to a user (ADMIN)' }) + @ApiOperation({ + summary: 'Set the MCP roles assigned to a user (ADMIN)', + description: + 'Replaces the member\'s **manual** role assignments with `roleIds` (at most 100; `[]` clears them). Assignments ' + + 'that come from identity provider group sync are kept. The member may then call the union of the tools of all ' + + 'their roles. 404 when the user is not a member of your workspace or a role id is unknown.', + }) + @ApiBody({ + type: SetUserRolesDto, + examples: { + one: { summary: 'Give one role', value: { roleIds: ['cmoc1d2e300e01zrpr3s4t5u6'] } }, + clear: { summary: 'Remove all manual roles', value: { roleIds: [] } }, + }, + }) + @ApiResponse({ + status: 200, + schema: { type: 'object', example: { message: 'Roles updated', roleIds: ['cmoc1d2e300e01zrpr3s4t5u6'] } }, + }) async setAssignments( @Req() req: any, @Param('userId') userId: string, diff --git a/packages/backend/src/settings/site-settings.controller.ts b/packages/backend/src/settings/site-settings.controller.ts index 0f7c4fad3..606333d57 100644 --- a/packages/backend/src/settings/site-settings.controller.ts +++ b/packages/backend/src/settings/site-settings.controller.ts @@ -9,7 +9,7 @@ import { UseGuards, BadRequestException, } from '@nestjs/common'; -import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiSecurity } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { IsString, IsNumber, IsOptional, IsBoolean, IsArray, ValidateNested, Matches } from 'class-validator'; import { Type } from 'class-transformer'; @@ -120,6 +120,7 @@ export class SiteSettingsPublicController { */ @ApiTags('Site Settings') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/settings') export class SiteSettingsMemberController { @@ -140,6 +141,7 @@ export class SiteSettingsMemberController { @ApiTags('Site Settings') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard, RolesGuard) @Roles('ADMIN') @Controller('api/admin/settings') diff --git a/packages/backend/src/users/users.controller.ts b/packages/backend/src/users/users.controller.ts index 9442dbf23..0c1290bd2 100644 --- a/packages/backend/src/users/users.controller.ts +++ b/packages/backend/src/users/users.controller.ts @@ -16,7 +16,7 @@ import { NotFoundException, ForbiddenException, } from '@nestjs/common'; -import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ApiTags, ApiBearerAuth, ApiOperation, ApiProperty, ApiPropertyOptional, ApiSecurity, ApiResponse } from '@nestjs/swagger'; import { JwtOrManagementKeyGuard } from '../auth/jwt-or-management-key.guard'; import { IsString, IsOptional, IsEmail, IsEnum, IsBoolean, MinLength, Matches, Equals } from 'class-validator'; import { UserRole } from '../generated/prisma/client'; @@ -117,6 +117,7 @@ class DeleteSelfDto { @ApiTags('Users') @ApiBearerAuth() +@ApiSecurity('api-key') @UseGuards(JwtOrManagementKeyGuard) @Controller('api/users') export class UsersController { @@ -128,7 +129,29 @@ export class UsersController { ) {} @Get('me') - @ApiOperation({ summary: 'Get current user profile' }) + @ApiOperation({ + summary: 'Get current user profile', + description: + 'The account behind the credential: with an API key, the key\'s owner. A quick way to check that a credential ' + + 'works; `amcp login` calls it to validate a key. `organizationId` is the workspace last active in the dashboard. ' + + 'The password hash is never returned.\n\n' + + '```bash\ncurl -s "$AMCP_URL/api/users/me" -H "Authorization: Bearer $AMCP_API_KEY"\n```', + }) + @ApiResponse({ + status: 200, + schema: { + type: 'object', + example: { + id: 'cmo8a7b6c0000abcdx1y2z3w4', + email: 'ana@example.com', + name: 'Ana', + role: 'ADMIN', + emailVerified: true, + organizationId: 'cmo8a7b6c0001abcdk5l6m7n8', + createdAt: '2026-03-02T08:15:00.000Z', + }, + }, + }) async getProfile(@Req() req: any) { const user = await this.usersService.findById(req.user.sub); if (!user) return { error: 'User not found' }; @@ -278,7 +301,34 @@ export class UsersController { @Get() @UseGuards(RolesGuard) @Roles('ADMIN') - @ApiOperation({ summary: 'List all users in organization (ADMIN only)' }) + @ApiOperation({ + summary: 'List all users in organization (ADMIN only)', + description: + 'The members of your workspace, in the order they joined, with their workspace `role` (ADMIN, EDITOR, VIEWER), ' + + 'whether they are `active` (not deactivated), their legacy single MCP role and their memory access. Use the `id` ' + + 'with `/api/roles/assignments/{userId}` to manage MCP roles.', + }) + @ApiResponse({ + status: 200, + schema: { + type: 'array', + items: { type: 'object' }, + example: [ + { + id: 'cmo8a7b6c0000abcdx1y2z3w4', + email: 'ana@example.com', + name: 'Ana', + role: 'ADMIN', + organizationId: 'cmo8a7b6c0001abcdk5l6m7n8', + mcpRoleId: null, + mcpRole: null, + joinedAt: '2026-03-02T08:15:00.000Z', + deactivatedAt: null, + active: true, + }, + ], + }, + }) async listUsers(@Req() req: any) { return this.usersService.findAll(req.user.organizationId); } diff --git a/packages/cli/src/generated/operations.ts b/packages/cli/src/generated/operations.ts index df5c6f5e9..beecff5d2 100644 --- a/packages/cli/src/generated/operations.ts +++ b/packages/cli/src/generated/operations.ts @@ -1807,7 +1807,7 @@ export const OPERATIONS: readonly ApiOperation[] = [ "action": "activity", "method": "GET", "path": "/api/mcp-servers/:id/activity", - "summary": "Calls in the last 30 days and the time of the last one. Polled by the connect page to show when the first request from an AI client arrives.", + "summary": "Calls in the last 30 days and the time of the last one", "admin": false, "pathParams": [ "id" From 950abb7e8800959f53c0273ce0ad929bdabda742 Mon Sep 17 00:00:00 2001 From: "helpcode.ai" Date: Thu, 5 Nov 2026 10:36:24 +0100 Subject: [PATCH 2/5] Rewrite the CLI README with concrete recipes and images for npm Add a banner and a code-mode image (HTML sources in packages/cli/assets), npm badges, a contents list, and recipes with real commands and output: tool calls, jq and cron pipelines, a code_execute program that loops over Shopify orders and joins HubSpot, workspace bootstrap, OpenAPI import and audit queries. Keep the full command reference. Sharpen the npm description and keywords. --- packages/cli/README.md | 536 ++++++++++++++++++++++------- packages/cli/assets/code-mode.html | 99 ++++++ packages/cli/assets/code-mode.png | Bin 0 -> 195070 bytes packages/cli/assets/hero.html | 56 +++ packages/cli/assets/hero.png | Bin 0 -> 128832 bytes packages/cli/package.json | 12 +- 6 files changed, 570 insertions(+), 133 deletions(-) create mode 100644 packages/cli/assets/code-mode.html create mode 100644 packages/cli/assets/code-mode.png create mode 100644 packages/cli/assets/hero.html create mode 100644 packages/cli/assets/hero.png diff --git a/packages/cli/README.md b/packages/cli/README.md index 304820c53..19686a190 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -1,151 +1,376 @@ -# AnythingMCP CLI +

+ + amcp, the AnythingMCP CLI: log in through the browser, list and call MCP tools such as shopify_search_orders, pipe the JSON into jq, and discover the 200+ operations of the management API. + +

-The `amcp` command connects to one AnythingMCP MCP server from your terminal. -It supports login, logout, profile inspection, tool discovery and tool calls. +

AnythingMCP CLI (amcp)

-## About AnythingMCP +

+ Call MCP tools, run code-mode programs and manage your whole MCP gateway from the terminal.
+ The official command-line client for AnythingMCP, the open-source agent harness and MCP gateway. +

-[AnythingMCP](https://anythingmcp.com) is an enterprise **agent harness and MCP -gateway**: it turns any API, SaaS or data source into [MCP](https://modelcontextprotocol.io) -tools your AI agents can use — Claude, ChatGPT, Cursor and others. Connect -services like Odoo, Etsy, Shopify and HubSpot, SQL and NoSQL databases, and -SFTP/FTP or SMB file shares, then govern who and which agent may reach each one. -Run it on AnythingMCP Cloud or self-host it (AGPL-3.0). Source and docs: -[github.com/HelpCode-ai/anythingmcp](https://github.com/HelpCode-ai/anythingmcp). +

+ npm version + npm downloads + Node.js version + License: AGPL-3.0 +

-This package is the command-line client. Beyond calling MCP tools, it drives the -management API with a management-scoped key, so a person — or a connected agent — -can configure the whole instance (connectors, MCP servers, users, roles, SSO, -settings and more) without leaving the terminal. +

+ Website · + Guide with examples · + API reference · + AnythingMCP on GitHub +

-From the repository root: +--- + +`amcp` does two jobs with one binary: + +- **Calls MCP tools.** These are the same tools your AI clients use (Shopify, HubSpot, SAP, Odoo, Postgres, an SFTP share…). You can run them by hand, in shell scripts, from cron and CI, or as a **code-mode program** that loops over dozens of tool calls in a single step. +- **Drives the management API.** With a management-scoped key, everything the dashboard does — connectors, MCP servers, users, roles, SSO, memory, skills, audit — is one `amcp api` command away, for a person or for a connected AI agent. + +It works with [AnythingMCP Cloud](https://cloud.anythingmcp.com) and self-hosted instances. ```bash -npm install -npm run build -w packages/cli -node packages/cli/dist/index.js login --url http://localhost:4000 --server YOUR_SERVER_ID -node packages/cli/dist/index.js tools ls +npm i -g @anythingmcp/cli ``` -`login` prompts for an MCP API key without displaying it. For scripts, use -`--key-stdin` or the `AMCP_API_KEY` environment variable. Never put the key in -a command argument. The CLI verifies the key by requesting `tools/list` before -saving it. It always connects to `/mcp/`, including on Cloud, because -the bare `/mcp` endpoint exposes a different tool set there. Pass the instance -base URL to `--url`, without `/mcp/`. HTTPS is required except for -`localhost`, `127.0.0.0/8`, and `::1` during local development. Redirects are -refused so the API key cannot follow a request to another origin. +Requires Node.js 22.12 or newer. The examples below use real commands, flags, endpoints and tool names (the Shopify, HubSpot and Slack tools come from the built-in catalogue connectors). Only the data in the output is invented. + +## Contents + +- [Quick start](#quick-start) +- [Recipes](#recipes) + - [Call a tool with real arguments](#call-a-tool-with-real-arguments) + - [Pipe results into jq, cron and CI](#pipe-results-into-jq-cron-and-ci) + - [Code mode: one program, many tool calls](#code-mode-one-program-many-tool-calls) + - [Stand up a workspace in one script](#stand-up-a-workspace-in-one-script) + - [Turn your own API into MCP tools](#turn-your-own-api-into-mcp-tools) + - [See what your agents did](#see-what-your-agents-did) +- [Command reference](#command-reference) +- [Management API (`amcp api`)](#management-api-amcp-api) +- [Shell completion](#shell-completion) +- [Security](#security) +- [About AnythingMCP](#about-anythingmcp) + +## Quick start + +`amcp` uses two kinds of key, each in its own profile: + +| You want to… | Key | Log in with | +|---|---|---| +| Call the tools of one MCP server | an **MCP key** for that server | `amcp login --url … --server SERVER_ID` | +| Manage the instance (`amcp api`) | a **management key** (read-only or admin) | `amcp login --browser` | + +```console +$ amcp login --url https://cloud.anythingmcp.com --server cmob60dvv00c01zrpeujwmnep +MCP API key: +Logged in to https://cloud.anythingmcp.com (profile: default). + +$ amcp tools ls --filter order +shopify_search_orders read-only Search orders with Shopify search syntax (for example `financial_status:paid … +shopify_get_order read-only Get one order: status, totals (subtotal, shipping, tax, discounts, refunds) … + +$ amcp login --browser --scope admin --url https://cloud.anythingmcp.com +Logged in to https://cloud.anythingmcp.com (management, profile: default). + +$ amcp api GET /api/mcp-servers | jq -r '.[] | "\(.id) \(.name)"' +cmob60dvv00c01zrpeujwmnep Default +cmoc2k4hd00f11zrp9xq3vbnw Sales +``` + +## Recipes + +### Call a tool with real arguments + +`tools describe` prints a tool's full description and input JSON schema. `tools call` runs the tool with arguments that match it: + +```console +$ amcp tools describe shopify_search_orders +$ amcp tools call shopify_search_orders \ + --args '{"query":"financial_status:paid created_at:>=2026-11-01","first":2}' +{ + "orders": { + "pageInfo": { "hasNextPage": true, "endCursor": "eyJsYXN0X2lkIjo2…" }, + "nodes": [ + { + "name": "#1043", + "displayFinancialStatus": "PAID", + "displayFulfillmentStatus": "UNFULFILLED", + "currentTotalPriceSet": { "shopMoney": { "amount": "412.80", "currencyCode": "EUR" } }, + "customer": { "displayName": "Kellerhaus GmbH" } + }, + … +``` + +Arguments can also come from a file (`--args @args.json`) or from stdin (`--args -`). + +### Pipe results into jq, cron and CI + +A tool's text output is its JSON on stdout. Errors go to stderr with a distinct exit code, so `amcp` composes like any Unix tool: + +```console +$ amcp tools call shopify_search_orders \ + --args '{"query":"fulfillment_status:unfulfilled created_at:<2026-11-03"}' \ + | jq -r '.orders.nodes[] | [.name, .customer.displayName, .createdAt[:10]] | @tsv' +#1038 Kellerhaus GmbH 2026-10-30 +#1035 Studio Lumen 2026-10-29 +#1031 Bäckerei Hofmann 2026-10-28 +``` + +A daily job that posts late orders to Slack (the Slack connector sits on the same MCP server): ```bash -printf '%s\n' "$AMCP_API_KEY" | amcp login --url https://cloud.anythingmcp.com \ - --server YOUR_SERVER_ID --key-stdin --profile cloud -amcp tools ls --profile cloud --filter customer -amcp whoami --profile cloud -amcp logout --profile cloud +#!/usr/bin/env bash +# late-orders.sh — run from cron: 0 8 * * 1-5 +set -euo pipefail +SINCE=$(date -d '-2 days' +%F) # GNU date; on macOS: date -v-2d +%F +LATE=$(amcp tools call shopify_search_orders \ + --args "{\"query\":\"fulfillment_status:unfulfilled created_at:<$SINCE\"}" \ + | jq -r '.orders.nodes[] | "• \(.name) — \(.customer.displayName)"') +[ -z "$LATE" ] && exit 0 +jq -n --arg text "Orders waiting more than 2 days: +$LATE" '{channel: "#fulfilment", text: $text}' \ + | amcp tools call slack_post_message --args - --yes +``` + +### Code mode: one program, many tool calls + +

+ A code-mode program that pages through every paid Shopify order since October, keeps the five biggest customers and looks each one up in HubSpot, run from the terminal with a single amcp tools call code_execute. +

+ +When an MCP server's `codeMode` is `inline`, it offers a `code_execute` tool. You send it a short JavaScript program, and a sandbox next to your tools runs it with three helpers: `amcp.search(query)`, `amcp.describe(tool)` and `amcp.run(tool, args)`. + +The question here: *who are our five biggest Shopify customers since October, and where is each one in HubSpot?* + +```js +// top-customers.js — runs inside the AnythingMCP sandbox: read-only, your own permissions +const byEmail = new Map(); +let after = null, pages = 0; + +// 1. Page through every paid Shopify order since October +do { + const r = await amcp.run("shopify_search_orders", { + query: "financial_status:paid created_at:>=2026-10-01", + first: 250, after, + }); + for (const o of r.orders.nodes) { + if (!o.email) continue; + const c = byEmail.get(o.email) + ?? { name: o.customer?.displayName, orders: 0, revenue: 0 }; + c.orders += 1; + c.revenue += Number(o.currentTotalPriceSet.shopMoney.amount); + byEmail.set(o.email, c); + } + const { hasNextPage, endCursor } = r.orders.pageInfo; + after = hasNextPage ? endCursor : null; + pages++; +} while (after); + +// 2. Keep the five biggest customers +const top = [...byEmail] + .sort((a, b) => b[1].revenue - a[1].revenue) + .slice(0, 5); + +// 3. Join each one with its HubSpot contact +const result = []; +for (const [email, c] of top) { + const h = await amcp.run("hubspot_search_objects", { + object_type: "contacts", + filter_groups: [{ filters: [ + { propertyName: "email", operator: "EQ", value: email }, + ] }], + properties: ["lifecyclestage"], + limit: 1, + }); + const stage = h.results[0]?.properties.lifecyclestage ?? "not in CRM"; + result.push({ email, ...c, revenue: c.revenue.toFixed(2), stage }); +} +return { pagesScanned: pages, top: result }; +``` + +```console +$ amcp api PUT /api/mcp-servers/$SRV --yes --data '{"codeMode":"inline"}' # once, admin key +$ jq -Rs '{code: .}' top-customers.js | amcp tools call code_execute --args - +{ + "pagesScanned": 3, + "top": [ + { + "email": "einkauf@kellerhaus.de", + "name": "Kellerhaus GmbH", + "orders": 14, + "revenue": "4820.50", + "stage": "customer" + }, + … + ] +} ``` -For CI, `AMCP_URL`, `AMCP_SERVER` and `AMCP_API_KEY` can provide connection -details without saving a profile. `--url` and `--server` take precedence over -their matching environment variables. If a URL is supplied by `--url` or -`AMCP_URL`, supply `AMCP_API_KEY` too; a saved profile key is used only with its -saved origin. Profiles live in -`$XDG_CONFIG_HOME/amcp/config.json` or `~/.config/amcp/config.json`, with file -mode `0600` on Unix. Relative `XDG_CONFIG_HOME` values are ignored. `whoami` -shows only a key prefix. One profile can hold both an MCP key (for `tools`) and -a management key (for `api`): logging in with one keeps the other when both -point at the same instance. `amcp --version` prints the CLI version. +That's **8 tool calls** (3 pages of orders and 5 CRM lookups) for **one** call from your terminal. You get back five customers instead of 750 raw orders, which also matters when the caller is an AI agent: it reads one short answer, so it spends fewer tokens and makes fewer mistakes. -`tools ls` shows each tool's name, read-only/destructive hint, and the first -line of its description. `tools describe` shows the full description and input -JSON schema. Use that schema to prepare arguments for `tools call`: +The guardrails: + +- Programs can only call **read-only** tools, with the permissions of the calling key. +- They run in an **isolated sandbox**: no filesystem, network or environment access, a deadline, and a cap on tool calls per run. +- Every inner call is **audited**. +- Inline code needs the server's `codeMode` set to `inline` *and* a role with the inline-code capability. It's available on the Team plan and above. + +When a program is worth keeping, `code_propose_tool` records it as a proposal for an admin. Once approved, it becomes a named tool for every AI client on the server: + +```console +$ jq -Rs '{ + name: "top_customers_with_crm_stage", + description: "Top 5 Shopify customers since October, with their HubSpot lifecycle stage", + rationale: "Sales asks for this every Monday", + code: . + }' top-customers.js | amcp tools call code_propose_tool --args - +{"ok":true,"proposalId":"cmh4k2…","message":"Proposal recorded for admin review. It will not run or become a tool until an admin approves it."} +``` + +### Stand up a workspace in one script + +Install a catalogue connector with its token, give the sales team its own MCP server, attach the connector, turn on code mode and test the connection: ```bash -amcp tools describe YOUR_TOOL_NAME -amcp tools call YOUR_TOOL_NAME --args '{"id":"123"}' -amcp tools call YOUR_TOOL_NAME --args @args.json -cat args.json | amcp tools call YOUR_TOOL_NAME --args - -``` - -Without `--args`, the CLI sends an empty object. Arguments must be a JSON -object. Calls time out after 300 seconds by default. Set `--timeout ` -on `tools call` for a different positive timeout (fractional seconds are allowed). -A timeout exits with code 4 and reports `Tool call timed out after s`. -For a tool annotated as destructive, an interactive terminal asks for -confirmation. In a non-interactive script, pass `--yes` explicitly. Tool text -goes to stdout, and non-text content is available with `--json`. - -`--json` works with every command. It writes one JSON object to stdout: login -and logout report the profile, `whoami` reports the instance URL, MCP `endpoint` -and masked key, `tools ls` returns `{ "tools": [...] }`, -`tools describe` returns `{ "tool": {...} }`, -and `tools call` returns `{ "tool": "name", "result": {...} }`. CLI usage and -connection errors go to stderr (also as JSON when `--json` is set). A tool's -`isError` result is returned on stdout in JSON mode and on stderr in text mode. -JSON errors on stderr have the shape `{ "error": "message", "exitCode": 4 }`. -For example: +#!/usr/bin/env bash +# bootstrap.sh — needs: amcp login --browser --scope admin +set -euo pipefail + +CONN=$(jq -n --arg t "$HUBSPOT_TOKEN" '{credentials: {HUBSPOT_ACCESS_TOKEN: $t}}' \ + | amcp api POST /api/adapters/hubspot/import --data - --yes | jq -r .connectorId) + +SRV=$(amcp api POST /api/mcp-servers --yes \ + --data '{"name":"Sales","description":"CRM tools for the sales team"}' | jq -r .id) + +amcp api PUT /api/mcp-servers/$SRV/connectors --yes --data "{\"connectorIds\":[\"$CONN\"]}" +amcp api PUT /api/mcp-servers/$SRV --yes --data '{"codeMode":"inline"}' +amcp api POST /api/connectors/$CONN/test --yes +# → { "ok": true, "kind": "ok", "message": "Connection successful" } +``` + +The token travels through `jq --arg` and stdin, so it never shows up in `ps` or your shell history. Every non-GET call in a script needs an explicit `--yes`. + +### Turn your own API into MCP tools + +Create a REST connector, then import its OpenAPI spec. WSDL, GraphQL, Postman, cURL and HAR work the same way, through `source`: ```bash -amcp tools ls --json -amcp tools call YOUR_TOOL_NAME --args @args.json --json +ID=$(amcp api POST /api/connectors --yes --data '{ + "name": "Acme Billing", "type": "REST", + "baseUrl": "https://api.acme.example/v1", + "authType": "BEARER_TOKEN", "authConfig": { "token": "'"$ACME_TOKEN"'" } +}' | jq -r .id) + +amcp api POST /api/connectors/$ID/import --yes \ + --data '{"source":"openapi","url":"https://api.acme.example/v1/openapi.json"}' ``` -Exit codes are `0` for success, `1` when a tool returns `isError`, `2` for -invalid usage or JSON arguments, `3` for authentication failures, and `4` for -connection or server failures. The API key is never accepted as an argument -and is never included in CLI status output. +### See what your agents did -## Shell completion +Every tool call, from people or agents, is audited: + +```console +$ amcp api GET "/api/audit/invocations?status=ERROR&limit=3" \ + | jq -r '.[] | [.createdAt[11:16], .tool.name, .user.email, .error[:40]] | @tsv' +08:41 hubspot_search_objects lea@acme.io HTTP 429: retry after 1s +07:02 shopify_get_order ops-agent@acme.io Order not found +06:55 zendesk_get_ticket marco@acme.io HTTP 404: RecordNotFound +``` + +`GET /api/audit/breakdowns?days=30` returns usage and cost by connector, MCP server and user. + +## Command reference + +| Command | What it does | +|---|---| +| `amcp login --url URL --server ID` | Save an MCP key for one server's tools (prompted, never echoed) | +| `amcp login --browser [--scope admin] --url URL` | Mint a management key through the dashboard | +| `amcp login --management --url URL --key-stdin` | Save an existing management key | +| `amcp whoami` / `amcp logout` | Show / remove the current profile | +| `amcp tools ls [--filter TEXT]` | List tools with their read-only/destructive hint | +| `amcp tools describe TOOL` | Full description and input JSON schema | +| `amcp tools call TOOL [--args JSON\|@file\|-] [--yes] [--timeout S]` | Call a tool | +| `amcp api METHOD PATH [--data JSON\|@file\|-] [--yes]` | Call the management API | +| `amcp api --list [RESOURCE]` | List management operations offline | +| `amcp completion bash\|zsh\|fish` | Print a shell completion script | + +Every command accepts `--profile NAME` and `--json`. -`amcp completion ` prints a completion script for commands, -`tools` subcommands and each command's flags. Install it once for your shell: +### Logging in with an MCP key + +`login` prompts for an MCP API key without displaying it. For scripts, use `--key-stdin` or the `AMCP_API_KEY` environment variable. Never put the key in a command argument. The CLI checks the key by requesting `tools/list` before saving it. + +It always connects to `/mcp/`, including on Cloud, because the bare `/mcp` endpoint exposes a different tool set there. Pass the instance base URL to `--url`, without `/mcp/`. HTTPS is required except for `localhost`, `127.0.0.0/8` and `::1` during local development. Redirects are refused, so the API key can't follow a request to another origin. ```bash -amcp completion bash > ~/.local/share/bash-completion/completions/amcp -amcp completion zsh > "${fpath[1]}/_amcp" -amcp completion fish > ~/.config/fish/completions/amcp.fish +printf '%s\n' "$AMCP_API_KEY" | amcp login --url https://cloud.anythingmcp.com \ + --server YOUR_SERVER_ID --key-stdin --profile cloud +amcp tools ls --profile cloud --filter customer +amcp whoami --profile cloud +amcp logout --profile cloud ``` -Bash needs the `bash-completion` package for the directory above; without it, -add `source <(amcp completion bash)` to `~/.bashrc`. In zsh, `compinit` must be -enabled; to load the script without writing a file, add -`source <(amcp completion zsh)` to `~/.zshrc` after `compinit`. Open a new shell -afterwards. The scripts are static and do not read the config file or contact a -server, so profile and tool names are not completed. `completion` always prints -the script as plain text, even with `--json`. Any shell other than `bash`, `zsh` -or `fish` exits with code `2`. +### Profiles and environment + +For CI, `AMCP_URL`, `AMCP_SERVER` and `AMCP_API_KEY` provide the connection without saving a profile. `--url` and `--server` take precedence over their matching environment variables. If a URL comes from `--url` or `AMCP_URL`, supply `AMCP_API_KEY` too: a saved profile key is used only with its saved origin. + +Profiles live in `$XDG_CONFIG_HOME/amcp/config.json` or `~/.config/amcp/config.json`, with file mode `0600` on Unix. Relative `XDG_CONFIG_HOME` values are ignored. `whoami` shows only a key prefix. + +### Tool calls + +`tools ls` shows each tool's name, its read-only/destructive hint and the first line of its description. `tools describe` shows the full description and input JSON schema. + +- Without `--args`, the CLI sends an empty object. Arguments must be a JSON object. +- Calls time out after 300 seconds by default. Set `--timeout ` for a different positive timeout (fractional seconds are allowed). A timeout exits with code 4 and reports `Tool call timed out after s`. +- A tool annotated as destructive asks for confirmation in an interactive terminal. In a non-interactive script, pass `--yes` explicitly. +- Tool text goes to stdout. Non-text content is available with `--json`. + +### JSON output and exit codes + +`--json` works with every command. It writes one JSON object to stdout: + +| Command | JSON output | +|---|---| +| `login` / `logout` | the profile | +| `whoami` | the instance URL, MCP `endpoint` and masked key | +| `tools ls` | `{ "tools": [...] }` | +| `tools describe` | `{ "tool": {...} }` | +| `tools call` | `{ "tool": "name", "result": {...} }` | +| `api` | `{ "status": 200, "data": ... }` | + +CLI usage and connection errors go to stderr, also as JSON when `--json` is set, with the shape `{ "error": "message", "exitCode": 4 }`. A tool's `isError` result goes to stdout in JSON mode and to stderr in text mode. + +| Exit code | Meaning | +|---|---| +| `0` | success | +| `1` | the tool returned `isError`, or the API answered 4xx | +| `2` | invalid usage or JSON arguments | +| `3` | authentication failed (401/403) | +| `4` | connection failure, server error (5xx) or timeout | ## Management API (`amcp api`) -Beyond calling MCP tools, `amcp` can drive the instance's **management API** -(`/api/*`) — connectors, MCP servers, roles, users, SSO, settings, memory, -skills, the knowledge graph and more — with a **management-scoped** API key. +`amcp api` calls the instance's management API (`/api/*`) with a **management-scoped** key. That covers connectors, MCP servers, roles, users, SSO, settings, memory, skills, the knowledge graph and more. It works like `gh api`, but for AnythingMCP. -A management key is an ordinary MCP API key minted with a management scope -(`MANAGEMENT_READ` or `MANAGEMENT_ADMIN`) from the dashboard or `POST -/api/mcp-keys`. It carries the owner's identity and role: it never grants -privilege, so admin-only routes still require an admin owner. `MANAGEMENT_READ` -keys may call only safe methods (GET/HEAD), and connector exports made with -them never include secrets, even for an admin owner. +A management key is an ordinary MCP API key minted with a management scope: `MANAGEMENT_READ` or `MANAGEMENT_ADMIN`. You can mint one from the dashboard or with `POST /api/mcp-keys`. The key carries its owner's identity and role, and it never grants privilege, so admin-only routes still need an admin owner. `MANAGEMENT_READ` keys can only call safe methods (GET/HEAD). ### Getting a management key -Mint one from the dashboard (Settings → Management API keys), choosing -read-only or admin, or let the CLI do it through the browser: +Mint one from the dashboard (Settings → Management API keys), choosing read-only or admin, or let the CLI do it through the browser: ```bash amcp login --browser --url https://cloud.anythingmcp.com # read-only amcp login --browser --scope admin --url https://cloud.anythingmcp.com ``` -`--browser` opens the instance's authorization page, where you approve the -request under your existing dashboard session (SSO included). The CLI prints a -short verification code that must match the page before you approve. The key is -minted by the dashboard and returned to the CLI over a one-shot `127.0.0.1` -loopback, so it never appears in a URL, log or shell history; it is an ordinary -management key you can see and revoke in Settings. On a headless machine, set -`AMCP_NO_BROWSER=1` and open the printed URL yourself. The admin scope is -available only to workspace admins. This is additive: the key-based `login ---management` below is unchanged. +`--browser` opens the instance's authorization page, where you approve the request under your existing dashboard session (SSO included). The CLI prints a short verification code; check that it matches the page before you approve. + +The dashboard mints the key and returns it to the CLI over a one-shot `127.0.0.1` loopback, so it never appears in a URL, log or shell history. It's an ordinary management key that you can see and revoke in Settings. On a headless machine, set `AMCP_NO_BROWSER=1` and open the printed URL yourself. The admin scope is available only to workspace admins. ### Using a management key @@ -156,7 +381,7 @@ printf '%s\n' "$AMCP_API_KEY" | amcp login --management --url https://cloud.anyt amcp api GET /api/connectors amcp api GET /api/mcp-servers amcp api POST /api/mcp-servers --data '{"name":"ops","description":"Ops server"}' -amcp api PUT /api/mcp-servers/SERVER_ID --data '{"codeMode":"tools"}' +amcp api PUT /api/mcp-servers/SERVER_ID --data '{"codeMode":"inline"}' ``` For CI, skip the profile and pass the key in the environment: @@ -165,26 +390,75 @@ For CI, skip the profile and pass the key in the environment: AMCP_URL=https://cloud.anythingmcp.com AMCP_API_KEY=mcp_… amcp api GET /api/users --json ``` -To discover what the management API offers, list its operations (no key and no -network — the catalogue ships with the CLI): +The key comes from `AMCP_API_KEY`, `--key-stdin` or a saved management profile, never from a command argument. + +- A non-safe method asks for confirmation in a terminal. Pass `--yes` in scripts. +- `--data` accepts inline JSON, `@file.json` or `-` (stdin). +- Output is the parsed JSON body. `--json` wraps it with the status. +- Exit codes match the rest of the CLI: `1` for a 4xx result, `3` for 401/403, `4` for 5xx or a connection failure. +- The management API applies a per-key rate limit, so a runaway client gets HTTP 429 instead of overloading the instance. + +### Discovering operations + +The catalogue of management operations ships with the CLI, so listing it needs no key and no network: + +```console +$ amcp api --list mcp-servers +mcp-servers + GET /api/mcp-servers — List MCP servers for current organization + POST /api/mcp-servers [body] — Create a new MCP server + DELETE /api/mcp-servers/:id — Delete MCP server + GET /api/mcp-servers/:id — Get MCP server detail + PUT /api/mcp-servers/:id [body] — Update MCP server + … +$ amcp api --list --json # { "operations": [ { method, path, summary, admin, … } ] } +``` + +Each line shows the method, the path, an `[admin]` tag when the route needs an admin owner, a `[body]` tag when it takes a request body, and the summary. The catalogue is generated from the backend controllers, and CI fails if a management route is added without regenerating it, so `amcp api --list` always matches the instance's API. The interactive reference with request examples is in the instance's Swagger UI at `/api/docs`. + +## Shell completion + +`amcp completion ` prints a completion script for commands, `tools` subcommands and each command's flags. Install it once for your shell: + +```bash +amcp completion bash > ~/.local/share/bash-completion/completions/amcp +amcp completion zsh > "${fpath[1]}/_amcp" +amcp completion fish > ~/.config/fish/completions/amcp.fish +``` + +- **Bash** needs the `bash-completion` package for the directory above. Without it, add `source <(amcp completion bash)` to `~/.bashrc`. +- **Zsh** needs `compinit` enabled. To load the script without writing a file, add `source <(amcp completion zsh)` to `~/.zshrc` after `compinit`. + +Open a new shell afterwards. The scripts are static: they don't read the config file or contact a server, so profile and tool names aren't completed. `completion` always prints the script as plain text, even with `--json`. Any shell other than `bash`, `zsh` or `fish` exits with code `2`. + +## Security + +- The API key is never accepted as a command argument and never printed in status output. +- Keys are stored with file mode `0600`. +- HTTPS is required except on loopback. +- Redirects are refused, so a key can't follow a request to another origin. +- Writes in scripts need an explicit `--yes`. +- Management keys are capped by their scope and by their owner's role, rate-limited per key, and audited. + +## About AnythingMCP + +[AnythingMCP](https://anythingmcp.com) is an open-source, enterprise **agent harness and MCP gateway**. It turns any API, SaaS or data source into [Model Context Protocol](https://modelcontextprotocol.io) tools your AI agents can use: Claude, ChatGPT, Copilot, Cursor, Gemini and others. + +You can connect hundreds of catalogue services (Odoo, SAP, Shopify, HubSpot, Etsy and more), SQL and NoSQL databases, and SFTP/FTP or SMB file shares. You can also import your own OpenAPI, WSDL, GraphQL or Postman definitions. Then you decide which people and which agents may reach each tool, with roles, SSO and a full audit log. + +Run it on [AnythingMCP Cloud](https://cloud.anythingmcp.com) or self-host it. Source and docs: [github.com/HelpCode-ai/anythingmcp](https://github.com/HelpCode-ai/anythingmcp). + +### Developing the CLI + +From the repository root: ```bash -amcp api --list # every management operation, grouped by resource -amcp api --list mcp-servers # only one resource -amcp api --list --json # { "operations": [ { method, path, summary, admin, … } ] } -``` - -Each line shows the method, path, an `[admin]` tag when the route needs an admin -owner, a `[body]` tag when it takes a request body, and the summary. The -catalogue is generated from the backend controllers, and CI fails if a new -management route is added without regenerating it, so `amcp api --list` always -matches the instance's API. - -The key comes from `AMCP_API_KEY`, `--key-stdin`, or a saved management profile — -never from a command argument. A non-safe method asks for confirmation on a -terminal; pass `--yes` in scripts. `--data` accepts inline JSON, `@file.json` or -`-` (stdin). Output is the parsed JSON body; `--json` wraps it with the status. -Exit codes match the rest of the CLI: `1` for a 4xx result, `3` for 401/403, -`4` for 5xx or a connection failure. The management API applies a per-key -rate limit, so a runaway client is refused with HTTP 429 rather than hammering -the instance. +npm install +npm run build -w packages/cli +node packages/cli/dist/index.js --help +npm test -w packages/cli +``` + +## License + +[AGPL-3.0-only](https://github.com/HelpCode-ai/anythingmcp/blob/main/LICENSE) diff --git a/packages/cli/assets/code-mode.html b/packages/cli/assets/code-mode.html new file mode 100644 index 000000000..44dcb6d63 --- /dev/null +++ b/packages/cli/assets/code-mode.html @@ -0,0 +1,99 @@ + + + + +
+
+
+

Code mode

+

One program, many tool calls.

+

8 calls in the sandbox · 1 call from your terminal · 5 customers back, not 750 orders

+
+
+
top-customers.jsthe program
// Runs inside the AnythingMCP sandbox: read-only, your own permissions.
+const byEmail = new Map();
+let after = null, pages = 0;
+
+// 1. Page through every paid Shopify order since October
+do {
+  const r = await amcp.run("shopify_search_orders", {
+    query: "financial_status:paid created_at:>=2026-10-01",
+    first: 250, after,
+  });
+  for (const o of r.orders.nodes) {
+    if (!o.email) continue;
+    const c = byEmail.get(o.email) ?? { name: o.customer?.displayName, orders: 0, revenue: 0 };
+    c.orders += 1;
+    c.revenue += Number(o.currentTotalPriceSet.shopMoney.amount);
+    byEmail.set(o.email, c);
+  }
+  const { hasNextPage, endCursor } = r.orders.pageInfo;
+  after = hasNextPage ? endCursor : null;
+  pages++;
+} while (after);
+
+// 2. Keep the five biggest customers, then join each with HubSpot
+const top = [...byEmail].sort((a, b) => b[1].revenue - a[1].revenue).slice(0, 5);
+const result = [];
+for (const [email, c] of top) {
+  const h = await amcp.run("hubspot_search_objects", {
+    object_type: "contacts", properties: ["lifecyclestage"], limit: 1,
+    filter_groups: [{ filters: [{ propertyName: "email", operator: "EQ", value: email }] }],
+  });
+  const stage = h.results[0]?.properties.lifecyclestage ?? "not in CRM";
+  result.push({ email, ...c, revenue: c.revenue.toFixed(2), stage });
+}
+return { pagesScanned: pages, top: result };
+
zshrun it from the CLI
$ jq -Rs '{code: .}' top-customers.js \
+  | amcp tools call code_execute --args -
+{
+  "pagesScanned": 3,
+  "top": [
+    {
+      "email": "einkauf@kellerhaus.de",
+      "name": "Kellerhaus GmbH",
+      "orders": 14,
+      "revenue": "4820.50",
+      "stage": "customer"
+    },
+    {
+      "email": "anna@studio-lumen.it",
+      "name": "Studio Lumen",
+      "orders": 9,
+      "revenue": "3110.00",
+      "stage": "opportunity"
+    },
+    …
+  ]
+}
+
+
diff --git a/packages/cli/assets/code-mode.png b/packages/cli/assets/code-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..2abced52372d11e627d6e4ac62231285dcb679b9 GIT binary patch literal 195070 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਍E1J3^ za0CZB;w&UI3l#c%gm>JQ+}bo>eto!NddhWpVmR7{|L0he=kdF0|B}1SY04tL+EG$M znO6|?$rDYV>?fKv_iM#By1v(@WxeYV-ko^Iz3aY;Wh_#N1{{^E0Du5EAUGxXOYrWOCAQbSNULS9y3(nJM#PZgb;x z^|1)Y^=pf5Yi_2B$MfNEHr(>209JtsThBlNp6}uLHcDVyAY|s>MLJM-xhKmV>}`O%-&X7aTJMYgL{PXONWl21~c;dNW@Yq zHNb3i1-NL1RYe5SoQ`*oF*Lvoz&Gz3<_jC;@f{+Y&r){BOGV>O+6N(JWXS7%3q^rs z?%;QwV$tB8$CU6!=wr{*`Dd@k&po7`>?^5=gwj9v8k$7Q;>uv2IvtNd_yOn|Ivs_@ z`?#T3uP$gS5hm3M%14z6N{c56qKbiTrlT~vq>3JI$}cjsC<#wizP+s@b0xb-#YTsL zOa=EP+p5Olacty-Ho&{nO1XA2lmV2YE(cVaoKBPtCQ$~ZImo$2LVL4(GzV!vWJdE0 zTr6Sab%;!>kCJQOP2QO#qg>GOHI8wV*LM1ouMJ1jr(F%tUtANI{l52jYCzgot<#rZ zSmaz1)ek;0mqDr7pQg)HtSc#A(Tl4{y72s-BXm(KO!4>j^M=g!H^B##R!#JWKMP%H zjC`B}5G?5`7Xq|y9l5i8!#Xr_m4ISb>)h|MCLAg9&W#_FxEP287SVE zEeF(6_5%n)Jh83C#nm;CG+pkTUjl3yx_2H+g4zA<1DVS>C!nq&C* zYomDp9Nd0&a5-U~(P2ftJt7&aB)U?bWq<`!a6oIz zl|Qq)yZjtwJLvS6l8IxIq+tfl#|W!=kU}g)e&}fytKPtWmLkGqwKJUE3Q#S;Lh&zs z-Pb_y86C{w`kP_rmkH+!uS>n!gcK=rFU$-sR5GJK@B6H5Dj{Y}B>5dRYxhv;kGU5d z=dgVydMDw*q1Vdt+}`7DJxf$N8%O5|bgdBOe7)!U%6WE1msd)U$rDYU*}33Sz@di3 z_@$K|raC|AQgA&k966xN`%sT-mgi~=Fk0RkU}0tg)+Rjx>z_e}vf2^t=@!6;M#3a@nB`@Fk){S>TY6tv>bOLkuI5<=}P}WODH(*MBPRz7Y}^#L zK2Dr7?oR(7OY&jR&Ti8xx%xw6fgQ-L0+#pKz|51%`fi5L8>M`G3V@piyw4Kxy+jG$ zg^e%{$5$1``C9ga%HfWAY2A>5x-D4M0KdKv+uOc!1%(W0-n5P`s+4Q9SE!qTR zfhhc)F0X$klHK1|QzpcQX@5aPH^!@vq#uL-GyO>w{V3q1M-cAjWFj_@VUAASPvM&I zWr@V?h`xYT*C0O=Cu#@9(Jlbm`qLf(ynk9w^}eMjNjU-l0%>f3!PNk2Y=R`1jW|dv z=!ym8G9(+UxQ(=18t~Gmx8CF>N!J+AlKsdz!!y%Ua}0F&*O-{VO!DnH*Li;8kv_tn zt;J)XqFvsVbUiIDgF8z|m-|XiL57WsV1ny&2r37%#wAGqhXfZ@Oz2@8u4BD=K9KcU zvR~7h6h0BDjHhfBjGc&_@O(DZ9VX18fX30Ub1*d@S++A-#(UViM|#-)Bfadyn}K&B`*?MnTEmCcUl1}XkN<=Ly>q08 z2}J6GjO6zx;86f4zWA$Rr^A#u(7Degax{I9JU6}uDB7(5xI;k9_)V(D>s^o(jV5Mh zX8f5fJH$nj6gId)T~DabMEDMlPzugbI!Oi%r0^uq*0Nq zF(J+HN4e8fGEQjmq?U8+H(qH~OZJEr?(T3>a7;xyUe}GrsaLjnL_ay;u**9HznDt& zW){?n@0KoLV7U!U*y!4K?FTBTAxQ0DhS(g_wOQadF}lDEvc3jJr}jnUCcs$Ik`z(f zTQFIu2iV9CV@xG4MYLN{?n*`*<~c7F?n#Kp*ORBB6wOLd^hslb70(sT$$?BArK09I z&ac};@7+!&Ic?;->sT}!?HD*U_PL^*-*S%4Z*jLAYu_PZ-JME`iOpO6W#q0&<<`{6 z$92Q5-=oH#JTI$hN&PJBNhTubxjYo7ID#l;1 zUiWifSO`{QUN7ZnRrvR~&Nmj3h)7j1zyE`PB4xB3G{CwN9nsA(M%ZZ&BbtE#?i0v| zN>jM^H4isZ>}tmBw^(Awe+W%6Mm#?6k6*R)g%o?mxdRY27Id7}2EsBke!KQls> zvvQ*!e0Wo4@n=tTw5-+a}rX&^3BEWpafB-BsLK8;Qgk8W6$>((kAaHbC9h-rXrd3Y zZOCnJSnb{Q#ejDv;DI}EiW!|ujFR8Kia%_`0}`SsQu%iZaYs#}bY@oGm;|8m{H#K% zA_Ti(EeHDJLWiA&kRWPnAebdfb5hf#TBA}Rm`VX3=@tq@Hnb47>a`Tx@SjH!-I;kM zXlU;8RJ#%OoVO2su_LK@G;XqHBp>dq6|bWbL+Fl`^I3N%9}QB^V={&hR^rkpRm1-C zv)|8xvXD5C>nAUTzZ{oztV5^5&9SfmAjS-2=%KF!@QV~(i^3G*MI<{l62blIfOgzn zP><>xDd`e6(BjPn7E)wU4$?hJiL`X&{T=2cAoRE^oLEe;CFWoxOh|c#_ak5Kq+r7Z z&e#^#K^|NrYF2=vKOSm5F~PRFI}vSMH`+*T8&N*PDuhLjA1|=I1EXiAJHbR{(Vz6n zG!ma2GrG5(iqB~lk59|IpM#?{U`yiFdy9Vey}xAxsXK^%^5528=>QvDXD*OQhskxdW;^fNi|N^J^v|1d`@ z1NjxW;~rNie7ok!1>nw^jJHCkrhl=|lGPi7!Wb)H6aWc+ZM^P`e0>#(jSxCq(PxgR zmTNM!#)HA-?Q~-H9U(BeTfvV{i&iw_otVR2Zs-H9=o4cGw5ET_=(Imt=FJg_n>>cM zE&9fTX^8HXQbix(s&;>aMouU=k~HqX#&05rY$n;K?A z5R3ttSUNVCBLws#>j`p0>YKXtfI{U7GBhfU2Et`5&}W-0f{FmH#D=xPF5C!?2@9Z= zHZJwcP5akQvP3f@hHs$_!0ITk#d(Iqc>mU?zQOc%Khh z(uj6U^y4M+(>x+J!bS~_mEfy*_}UlvQF$<__M}f}xVqlSk`GmrY_sgK&mBpA;_YPo zXcv1o*0tsx)wy#1(Z6puQU z;GFu!V>HPB4e}eZQYB z_2O}fRLVN+EM@Y^i;$6_4jgV^j=A>^nOHL>8}s@{=_;u5JJC6}6PwN`I_sl)!Jl#b z-|xfIU(csnk+@~S-)mYPCQ^5`lr)dmK8~8Gy;DWwM!>w7EWO9qi_H1(CTWhrdzf+> zDv*)v{y)I*c#uFGVDL^>&dB2;km2BDylMZ;MZ|1PvZzOpy;hJNZbZ9SHx@Ps%)t(C z)Gqcw5~41Id;KDtI>E!JO@laKR~QKt=W>u|Pc~{S7!aZ?g-uPw8yt-j zqfMFz2v_(J{)X7Z_}eo*+n=V-L>}`fEx-ud z2$BO2QXpCk8+i`ggA{1WySi*+32%2lL*!uq!ZD=kBh&JdzbtrN1m@;sZa(61J_jME zLM5Jx=BGtS*MxNDDH85x9Sro$soFFB%*8P=d`}+esa9uQLubEs>-3k7_&OJlou-SG z;vjlQu2}c63%ovrXbf}y!+nxJ8}r-=dJ5DLkN+8KJ#}E(D(jOhz^1hbAi)o2%T{hF3DAHO%OvUqpl?bD)=DziJ2w z_wtdcov9G@HAr3nGSohu54rzIChH2v#)k|y*DwW-+%UgwV_LFdyEd|J3od*1+)3J| z=S26*!ACe|#Xc5OBbs;mLif|G?zKEHtg$*E^1Ns}7)`QxkW?NH|65C1279E5%bquj zcc9JU@X>SUj$qW4aKck@nCS}-@{VtIOMZ+xYRfqaez2pngg`t2&wkZKQgja^0qZoe zrPV3QyY-VmG6~B8b{u!oCQkVrplWDZUVfE`E%-8Cz`k@M2w?j&AWMMk9(G6WWNlV{<{#O;Zj$t7v0S@4 zn~BNJPwoFXxNAK6eveZY79;^_{;<&xMy!KI>NdNvk6XaY?g58@O zdB{6O%vo~olW8D`XIpUWH?d4J+T z5mK&p$#oYs1b;5{mXV%OC1tFKona?ylMR(NlW;Hr4T5w45b@R5-@^A;`t#`oGgEV+A0^TtCvP&q3cfs70rHO;Fm6v%jIcjW&d9eKW7qR<0|!s`%w9n)Ts$K`U}-%% zDE{2S#P4HkoofR?TR#V(J!EU8OTU+OHNZhPuSs+6SqTXOps=u*q$VVBIA?H>DR5+< zW%BQcY5RQR81JeLAI&9qcg(Z#JviYPr+Jp7K2pu6eO=4-?KNw?mGkGF{KT){S?Sw{ z5T_?X>L!vaFT%N<;;uz}IAqFd4Rhiz;;NtSh4(^$?C`cOt?oB0aa%oWsV!0soKwNY zg}cvjL@j6Kaf3))D@owQT*HB$yi}B|wY1I>j%)`7l?i}IAc5(XM<7NiQcnjm_gnwy zynbldX*XV{uvm^r&cIB;SuyhRI}&pcvq18c`%fIiwwNM9qMmY`W0tucA91Ns~^;t>i0Y@`QMs0tY!D;VMal=bKeDniKdM9gMHBR06 zzs}{&@ULODH_0z;1g*J8oh2pS^2Pxd&k$bQ?YHYwO zN>Szm5p3{Kr{jW_ZtBi37s9(I27O_DVD@HoH^9zm-sBS}7LS3H1-T*(D#`gFCx#$8 zLAgW*u2%4RnE^1haVW!%j0fKFjSio{9 zVk02Za_pu2_&j4r1H6AivVRDAYBy}>NJc-FqPdF39K>P(R86A+rrp~Be`sqMyCC)T zLmeAfOr26Bt^MZ*YZfS6hhilRbY&rNC?;%Reoyy#9?dy4r^V5`BeU~jc}>jy zVnt0}{`bAJ{;E$cq9$9MFc>-0b2SX! zSxsKTK!zg_{C$&T=9e3Vz$L1zP63;sA|KzBE;<(_dJQQ`;sMn5{s4X?7{>1bLfR!8 zT*F7EEZsm-uYF_zmFh%spjbaV5LuGOhS@h~r)q;H5xEN=$ez@JF}F)sn0=4$YmJyz zhuq;5{5J=`hriwoI80O7Ps6etpfvg-AKdeQ?H_!rO=byrmn2q4~%rREIm|r?F zuwSCMCR7msUwvxTD~rmVcUEJWH~RN~EvZaV9sBm>}el#}zdx;;HB~6D_mK z6;*0yceM-epm%D~UC)(Y9iEE__f|N2*}tG|hpn$at&v?4b2E}j9xYT^73rlc8BYNA zkP{#}q}!7!GctXUX{(nh7X4_EHNP$BL+602hzjO?Kh(1hQzZPq%n-nUZ2Mi-h9mKo zY~)}p7|m^ijNjaODF80ndNBHk1STHn%A1p+CjHj8^Uo{OAb%i493eCS?pgCTcD z^}RHglL1K%*vX<_siDsZ-U}vxY4lg-OMr?t)<)u=LEMCklb@r14q%ymGLZ52xf@|7 zkP)W0Lclsc#IOapG(F9goHi(41E6X5$R~!I85WWuO$uNpl_6sQ$#whzQfVBe;G8vW ztsly)?NrG&=5UQ`(_F61-1j~*&$P>h0EIWyZEwMW>{A5a^|`3!%cX!(?EAmM7C{Pj zLhn=1RPb*J^9Y^w&Xq*tl@tWv6GhQ8#ZlBnc41U+j|0hP!~ye>DQhoR!P)4k){fjcjd5a74w640xGS2&NI%hjR*yTHBVGj36k6!Em?h(MOm`Td*wc~ME-c+DLBd#}vF zu@$%!!Jvu1ih=wSDi|~W{b4Qkq+?qRu$c`DcxArvkn~-Qp7G!7EA#m4kk&S4c zbwYpiiN3IST7Do0Q5THa)JD_*(wMPE6sv|sWDffJqm}#2FdLu%y#(4^31Uz5VvsC( zSB7)$D-c?IeVloWHLZk!-s)7jIl}G`wNqwiQj@#52l?Zp6IuhY;wQ_WbFSYy3Jp*$ zkUrVoXkGJICggpbi*A>7W!w>q1TpFB!R`MDAq2c3OEbL}xv-_wK>dX_G*dmV@av`guZaQ2pdtua8ne#V)j z%z}Yr&wp5efTW~=b?hR7rYnQi&M{V8o0iwx+m9!Q4SwG~z$nNE+CsRIbtCh;1@A)X zErhZ;RaCtI8{v~+ zO!nYG!`Luv%y>d8DCSBPIcb8uKR71(xo9x<;7!+nck{Iy3Q7*Yz%(|F^JZDrXZh86 zny$*FEf>-p#6gcsQa_jfM;R@+5lEN3UmDO?(p`;vB~$Fa$7|OvgO6ZVp-{vBf9*uP z7RK#B&XVP`axkGHX(txDLoLgSkji2JE0E`10b|#L6paQv6X4U5fkSYMc(Ppw^>sJn*;s-|4>&wFr$RUXZ^QGi?sd2iLPBU3 zh(}i_6*2zgoFPMA(uQ17nxc(L#J6~4qC~zqmcTKenLQ4(CK7o$Q%&F3t@&ppi(ivx zsU+BolkSL#7u0C6BC0{9g&88Tqly}2-nZY9u84C+KZ|p8MDYK7(wZv{Xt8}VJ_lGV zGLT!h1s(L^<7xSN@4OV<6Cery2J|A;&l0b^+jyHABu&Xr!nz4e$5)`et5*Yfa6%gm zwh?&fpx0)va;FvQz*?2&;QE9f+00k|sQD!hw+M-An;156rtQ?^a4qhRL`U%Rp6&Z! zaj=bIT5BDYJ`|%Z9`3qu<91F*2Scnozz~1QB{h$y_J5)a3g1kqM9J!BWn0HVCJ(Cj zl=|AP_&IyOoAdY!2H0#mad;sk=mENAXt_whIthOL3h+2S(FVnN`TWkiqR$e*I;>Jb z_z`3p>zn?~5IyJ&1wjT*iqw}uz9}UQ1Txz{OQY#i2b{6&P4bzjDJKT{Gi6wz=cG3jYLoL+pPscv@Bvpy=ud2ikAd$F+av``> zDN_V-HGYP9>B-zuWPP$yA0*P>M1Z&v)-?q(@gUBc!ClAMp^_m5$tR#cXU$S8hLIC{ zh~)MpnUlSr5pTDm}(@N++1`>+TRcR38gGN{D7K@bmJ>%PS++f z-0pE=AaiL;f;Ot@M`l@LC)->`eHg*HQ2dK*r56ZZOiv}_=b2{J4D|OxW%SG2HSHvi z0NVS;^Va9yVOuH$#EB`Bcb3=;`>XV@zn=9Jdh*hD-p8WG!P-0CI#*IUygob~3#JRY z?tqZMd?8wGaYy{6SsWDub^PzOikh5Dcwj`Qrb}Fm1admCSUl_CK=5jiIN2YaX!b@m z51~n&-sGDge5@#`C_{wX0I_&-`tRIHtElI8r*iS_Wb!-wR!f?KiZbv5uK-9EJHFC z$VQ9u)@RW9?d={_sAd-mABcHA;Su5Zlwg0WD`}X%c%E+db)IfGE_(Ca%Zqt?Lm zJ3WTHi*OpFPj>Zn4r~e&GM*HL0NNHkEsGavY|sL41w{!=KpN+fCa^j-j!O8SK#)5W zykQg62JCZiI6O{)E`wK?%x+19B3YR^qfXt~D( zAXf^xT^(s+qTQRxnnmxZcV2qcO+5N0TU`(dJ?BLdF)@(8C#Gew3iY2LrShoFtAx1b z$pNO+{X=~=k|N5Sq(>U@Zcpk1h$w)sL@V4iX*CAeTGnQu5YM}UAVLl@W}M8WD@xSH z2P;Zo(-}oXvIvMrz&jW75&u)n3loUWyGy8CZxZ=87cD#DgHh-l;>37H70M-Rw&ifg z=h9H!EB>ULqKpD;Z?%?VV2G%0B7#nQ{J{PXm+Lkoz0sxceF!S-f{T%m_r?EvjfDxa z(E`@C(iCOg#Dv7e5^!Q5xy!)29XLVpQ=~ImL>C%hRw&3jDURziM?NCv;bvIeU*2S( z4V(Ls+l2GSEQJX}AYj?>7Z=LyeMb-sGTA$^^ZSl~OjDS0%IOZ87!z}W&F8(4Nm&`j zeu1%=bEk+tM!szK-&S9Lv1qTqcppM_eu@K0o5JStIRdn;!HRabvzio8F8segm;8W! zl?2HeHnQ(uS2O`k?co;itC*Kh>^)_Kx#guOZ`__bXMp{&7iidhujF%nWH4>$3hGfm zKt`iy?TkMUl3o!2D+6UtY63yfS*w;rsn>g84~m7w(9{tQ7n;&{w(d94iJo!-P3>9{ zUt*~OY=xw`7(Eg0pV{LvtbmPEYYtxKC4Fa0-^gymzlp}%3le3;H)EnZE`i(5_R2ca zLREcAp#~P}&D05xJLEh!J+JM=Y@L zBYPNGZ)UF8XN)bXlvgMhUZ@Zr|m*}8>M6edQ}hjX^3;J@B@OAhiH9N8|gQF;0M4YeiLCeNN6 z|C{!RbScTxraq>g(ijwz;W@_0cqdya<^;d*G0R7nDR<3pzR}@zhHCa^JFHzv=t3(A zCXXY*8$8kBaHJO%DuFW>X`|y09eodfD1xwW_v1fo_=x)p_I~m3$yN)?Eta^{r`x_Q z?%H*_!}?6~l|)^o9Q_1xH8OYh!V6~SXXWcN<`{q=7d-60)hiftXZ)s^m8V{X2tIT> z4ulJ3R(9K>rB{JL2r8}S#^6G8FN;=yS4D%*a768$|HLqduLIUJXleahD(P=#({q)K z;hb}C>*u^T9MwF3*6h~9FlWQ{S8ygT1MB5siI+Fo>hsEW9B{HTYx4+-muqK2dG(*K zG=%phT@pVC6#X`Ehh$WV>#f8IC%o;dNlD_I%`wpM@fh%a6<2e*<|S|Ac4TDql-IwD znW^jF@(8M|rBS*g?iXH4JcFyd>fYMa{_*G9KIUJZfEd1|8qsRZfo{O6>jKehba879 zMGqtd?UHpVlvp!sQ)U<-wSYv1ou7nwR;ZLBk!kd) z_^HspZsH6Jo0&(wSfRKu-tBMko8@Lbx@Ftfmfu-@YgWa$R)1Mydq6rf*>L{&m-lHO zL}bJHtV1UPni@}u?Cf`+qZkGXYU{PBx$n=JU+}z-E059liWa!tEV(^;gbFDJ8Fc75 zpy&i(3RlNq)a^fG1MNqNhf|#Qy2P)2nY&25P2c|uBftCP`M)1+=-%~mhmyG=OWw#v zL^Ow190M%rE(5c)oNOlplY< zyXh6Gm_ObIp57Mog0A6p_7hK5hEJIY!anB%)yKBUAYF=-q$r?-bmN9d=jd&u zO1HG6(vqWd1L=}(#)e2pjg8U$Uf)0VJn#oR+wQ&Rd(Nj0OvDQKjL`sA$p1a==%y{q znOOwCOuhs=y5)-WJ!i&C(Dwq9vrR$bOd_EofeO323Amkr%6+dHz?|E4LDIIr;5UYf zJ!fIqV&0mJl4r=)AdE(~WYWglo&(catW@jF@NumFP^l5M2BL>C+U5Mwk^Ocf@6y3e zjMYX(Dw>6DzRvLw*Woj_fDc^&_)wiZ&^=-BnlJ#TXnhz9 zJgYmu$?)E&I3rD1LpK+aJqvJifR;B`K%7$8y0S!Q41huUz*9}ojGnQQt*OvUKXpmO zFmX7O4|pOcg9AkOV$vYLzVtA`H2paxma;Z2;IClV?WZVi^p=(B^NCV*OTUBN1ksw# zKg10NOAZwy8?Rm%e$jCtJNz)t^81CFc0Acvz}T8m2AS#IF%|RZ0V-!j$Iful97xJe z$iHBR)1qSAiT)s>F_dPTeKbo%X`D_>*kw6b@sJ%Gzn(sLY2n8CZ2A@`cJIa9Z&(We z^40>@BzAZrFdQ|wA*%%OJE)3GKyG~T1xf@Yj7YO>;3c}g5@U=#*fIQfu(2Cs8w_t( zA>B~_B#YZ?1rZ`?>1)5d%12ca-w*5&8J?o_KBy!erU}&Vu1KD~Sr|De96VInKn$D^ zO>4uCSY!_CTv#lpo@<)p1fRrvrR#_3)G->y+1J$x{fKkZSagw)hSIu73eF{)KMfBv zzaA=CTtPSX82V-C7IpGZ&Fh#AMi2qk{^nen=Xq!uA*{)DvP*gKQCJVHe$(&`J_bB_ zaU3uqHI)C;!vf}FF(T{k!LGw&{HO30xkv6;f8pq!1p$&638Kwxf6Fk? z(ro+&vqzVM!9VABa=#|g@w>EG8(nZS}>(?BrUKeQyEu2$4P zn-5OGR4qPF;XOoq;_X!-SE|w%JoZ=l7N4t>7)2uFL&qM)J$-w^(D$L=tEiC?TGt91 zz;Sdb?kr?kc<&5r8|hMKwRo6F){)qM43=bB)iZ9G>hsSFnu&Zb@@dDFJtYM_R6k$R zv&|-VcyHy$75xP7OsgswywcR3!0;|*-4EkZ zifice!Tj2x@m+Lr`dg7s7*6(KSbI(c@huhbiC8bC3g7I^NV5H&T|a)VYP|ycOF2P6qi2s^@EHgK~m>h@Bdm?D|2BEV@lXj;X@?t5ZQ~6 zf}7-jy^Fem3w1xM<(W`c%iSh{#(!Flj*Ogid(O^RMnVdSQeflI>z=PmC1z+zjqYlA zILc63jlh-xbDUY{suIwVQSa|&$LeBTV`t`j1>%t;cm6MZ#_%CB_oa2Q7@#wY@<6s~ zVuj2Enel}`HL+fz{ViD3Y5E%?$yV6Z7KE+;&ee4K-lPqt zsXdKGH^`tT`o36uL$6)^xJd@#5c2sVJ%4+VGM+WqTXZx_&~MUMlXSlQ>llhEkhO1c z7w~y(0d!Ur;9z^Vvy1|OQT&`3K*D?oJ$mCh0MMpqT(Qu$xMd8$g|Ptkd2fZ@4B$MM z9{Xpji}66h-ee(5ITB{-Pv_m$1^%^XIec0>DZh6p$*Uoej20U)F@GeckvBeDg zdyE3rCe(}Cg_16$f4*YD=2YkDT-SD5+Z)P@CWg_MT56wVdLqQ5DVMx3#TD(_rqm#h zI4|CY!1oBjtl$QwGuSfVg8|Tu_>TY>1|)I>`f(!a5@*s0Wn!4`}R$8wy%{1^{g&HUJEC zVw)e}iBC|}xfR$)6*B{eHtZX91+56xqNJu|t*LLeT>S^!EuVgLz}mMoACBnmlhV1Q zK5YpQWcTqKvy9PjP9n4x%RcM#2$6@_*li16)c$18^8keGpx?HDD&eijZ`5L-zA3~4 zhQIPP_9#!rE{4f0rNyf+9z&Yg8Ce7UtSBI`PX$|LkHVrJF6spwl`Qo7%GJjm?Fj;R zC}4R@I|kAWc3I{53tBcjkY|?9v2p;2piB`f`F^UdQWJY5(Ym#{LQ5uM)V0emh({YH z%q$K@wH-RpRX5pHTS+oL+xS|_g;X^G5A5}fBX^Q!-oWHE0Dr_PaF)liE#qG77>s`2F&^?j#Fv_m~@^3Wv@}%rwc&0PN+A z6;ucXSomz%e-D*BLFyqyF z|7$cI%LVZcB7=aJQrPT-&K7PYnA%fK%W)0NJrcryTB&VX+mW$9AZ{~2@Y?e^g)b@z z)G1#eA^fG)Z%H4jXd$L&N~=-JxGYpZ!(!&+pC)P$AySt|*-!YQr?TExM6coI>O@;= z-r7L<)m#=m-I`>ZvK(>fp^s?m{vE0a4A+A2CMKr2Y~#PqjK{xm{jsVZRLweF=)K>I zF^fZkTOa?bXik336CaJGmCatROfG-4KnG>z{SkN640K~cK>N7|Xlu#sD))B*aXFyh z2(ODX;)EZ_gGu@wznY;EXCA?y{wt$q&j3K93dtljIOqdkHU_E&D^PS%g48k<}fX%N+?5*xAh*a|`q|-}>DYf3J>ag*VLk*PMGt zLw?X7&-V@YQ>a^IP65*bAlvZeuZTZ#?IHqvun7-h^zuh3d&-J|6d=ynsp3JRRoU=i znX4Fk0Msc4uC``rB7pS0nrD2Ra)g_L37Y4`tip0V>9xpxwPDy0(UGlE(PdJIv@D|h zo8*@ba@>YNBN+Nm28jJn&+m+Saks)s@>80)38ufQ%mp@5F*$x;uHM@Q%DCjc5uPmq zn546fsun8V!2gnnKkLJhMWaED`qU4xH~*k4QJJYy51U>bcw7b@c$vR8H=;2RlcN4z z%0gb8kUOsL@8{xE$KFl<^Vmt7ym`8L8c|MvUj2#9R6@)^*VMLYt-@yijH|fW&|DN{ zr|n;on_HN3pw4Wg@TFucFV&E&S8`3b%V} zuUc~Q498e9MhiX95)4h@9IqFg35D)27dF*pk+`o@=Euzp?5^d<9XSE60lua$J9T{>?&W>}z7lcLf0#oj`siQq8Or4G}4_Y>L?hHTvbG z6MSmlTTG6>UxizmGJ0muBoIn2kZ$CtT@8GaRH0-R5LmTe(!YUu($f!W-e4<}Xiwak z*TqVKB_Ct{Vbc52N92d+)rYuY_JxY_wD#ZLw)|NwDZ!~%Ck5hRfyV4IM^G0&w|pU&6Y%E15n`6P`}|u zKceR_R;%NXTjNuWSWnS6>_FL$6@4ia79lf-{)fryIYkHuWIpJYOBNUY~EvHRF$7pmw*& zQTV~csZLTA&m`H$v9XSL&MU(a-3cX*1I0!C$U!+lP`)bK4ts;k<`;TFK#RI55;1nM zq4Vm`ES2f2^Z!~^EarW^NfD-M!+t-Ymz~>1sElMGFbimGJ(_g^XhHSp0Fk25>oYqJ@lU=jqqQk?5m zJ$$VsLUS&>hWr-w`qTN3LymKiiE@8{5H;FZ_HswQ2I{o>IN+tA1m@^7D-Xx56--3} z5?zDoA4~vuu2rDlq|(`-fC&c}b4pji;OT*u(8sNj3(p~If+DyzuApkwzYyet@FB!e`nh0GBB))!yl>>nnv-KyuUDBs{S>p4rW zTda6Ayw{$PeoE!?68GG7sPjl!vM{H}M)~ZH$gJu9#}zFuN#XKDTwxtlW%t7wr}V>Ib%T8BUyF&&<0fH z^PkQ=CSGmIakRFT#<_z7J}??aiZgN5sEjZ;W#)C2TSvAeqPF(?YR1I8!>#_@owr8{ z4D%lk3GGP<3-t*3E##_XUr6c>Q<1S zJ46GVLllCqY^vu0GQBWvre`;M=z6asK*~A&g;DB+O7iuVLW%R#SX|5V-WCBsJ{wh( z2qeO|=o^8|cmP1spqWvrqlM1ILfR#XOk{@hn;93nv4a6Q+X-8h!D4$?AJ47n&wNQ%QzH>VnXY_k=8jM@&I?+VRH+5|`W5^{9@x zS4Ux<+L_e`d$RQ-gRX0rGTwRja%u%nUAYJS|M|m(g_r)7KR~XuzTB-gyc@a8m!@&1 zfPuIJfep~GC}3RSHq?}cOENIy&+Me6z4PUjwajo?Mi!xDI2w z5ocaKYI419BY@}WyDM$ay7ed$J@W*~zR4idiuqIR+Ji8cgO_D5x!S0Ybi&Ze0ju(E zG8J?trrZ?cX488AHJ!hdn`8Gd@;&T?B#OQ2!8y@dKm(nnvGH+d z55RP#Ff47HtHycor@t4*tk*R-xAGlyc zEHKEuA#W^v7e`(Zi!D}pjn7a8B=_ccnmokO+rYcB*cCsXXO{*z;?S3iw;A2ZXC6FN zXzP}4w+&o|O50A7)kU+LT+7!vuDH?`M<9K0m@`oU;k2-G4v=wWP-w&eZd|b+WA_ob zdLkE=J{j{|VZ|nW*>E|5)_k@Nw5(Y~HY@$f-C+uOC-#TUtfHCwspqDw8e_pJi}yM> z{VpmWnCu-Nw%*2Uymqu_Ua{B;`j!^sL@vkrFn{qBe2Vdx>X2>Rd_2wBmKaZ?^CiZc zH^y^IneknqKqF^qrP`yahWWncX6ul6^fv$Fe1{bS8KIjmri>iq=X(N;d0$Lco8@hY zE3+M2DoCPUG;6Flb0OZX^6QSSV?}X9`g{AcUzy%rdss`q?p-@zp8E4rme($E=5=Cf z8)1j?y0}^R?LAo^@mp8wC`bt5D%#4+1DGY+f#?tqfHyjd21p6J6+q>sHJb>|S_ZV} z>BIoFcp$pMNTObPu#^nQ8dPDxS1bUUx$hQPfLy1&lc+{c0a;chv4$IU^PmQA0yD$H zZxzP1@c=N8Dx#u*CsS7dxKXCX2}f&Rp57YN^a}K)_eC+2b7j`rf7XP@O;wo{z(BkU z-R8FPE;9X!kz6B8jSKddJKhHGmu;t)<5&YrcoM|0zb0-AuBh?>W96 zXTY{TnQ2!VQv5><55u3`Y1AHR?G76y7d`in@2-iIJ9?iOaz7$gSDowKkjrCfM*eCz zPRdB=l^xD#0b;o1mnz0Z7^LyD-fd~1xzU%{|G9TCc9#Yi!mbQIA~pmpo^2q+<-t-H z(;|00eb_%=yZfu+)?w#o^VxHkq;*4kD?)EbXo&E{-n$)bh5DUx;UPRRDvkopb~CJg z7PgEOMg@PauU!2AYVwU-#%0Tc%{zPn*Sr=0Nhht!v7-Ccxl4u4#7u)>ZH`ax8u1_= zzvcmw6a>CvhZri6Ol5)y_25-dlnH=G)ExjSOt6RQhb9F3(-B8i7)ln=2V>E|lXdKC zPNZQ8*Q)losxq8W{e3GLXA34b|tOW%Q$>Tnn$9l)%sF^n6A z2cmTL!gVr_NTSDT=u5LXdVKO17q{dIs(a>`jx-Vo z-(0Ws_4d5E`pS!(?OC(zy^?4d<6ESNkmVu3+IkBRFeDOKqna5tO&H;Eo3fDnP8jTf zk0nej_GscF-PO1A^%)`Gl7uB7o8BHxk+|CZ6j6X+cQfle%S{FPwki~|8VlyELY9_^ z0jgNZvhq*p1rtEx9%xQY-#ArM$9>imZd}c%U>N(%ubwIlEpUIsPZ5`B92{p5H5^AK@I{_?G>)#cj#8a%Y4IJHga-pczkX5roTPo>|<|{M0J|fZaFo4tB#g0qt%PZ<#QDs_t=v z>Q_*KEmQ(GR{(19NbtrDTYsbB9pPfpyW?b~-3S8IfnEQg;cMexW;UAi6c zmQoNeMV95t4?Dw{^Iz4p!t0BN&u*CxrbP(9_I{TSn+S6Tzq=mo>k#jOuq#Ch<@Ri? zmWMVpSZ{H#u_gT;v-~!hsw^fzsl$o49W7s2R81>!P8QW9SDKl$W_@T_z`AU0t(^u|4-EWhDZ?cRWfmfzqy#BuV%UGezxp-a<)HTbPUd^Xs?_%_N4 z94iUnMUemu__QMKpOHB2Ff<<-1{(lulB{`WW36)a0EXw+kTW&wR8BsfKQldBIoCln zjowL*`Mi8^NX*?!>M~OE!J&{As`%>0d?U%G8YM~mJM55*0_mVS44Wo80?6Z{{|<3X zY~i-EGF6C71#Q$jKW;*ia2Yw(9V-%qO!tZx&&}Ot_Folmykc5047re*#NYFC7&rq^ zJKn9^K%0INuxbIL=|^_OR9Q=Pj98ALit0;jSh=fWTKahg4B^X&P3vwUd} z#a;KWho3}N^JZD=-6@qr&1qHG!iG@mi?_Ls;twz`T#`uTlyd0Wi7{o%?1y_Hw{9W* z4PVs7-xHYB>*e=SCfyKqr-DbrXFjjLQ;#kw7n^>A+e!Z29Y}(X914ao7YFxn3WYYj zXsYt|{vA1IEMbhb8@;S#p|Q<2`XNCZv=b>0cGkHoOV&@0dfhMUMkMri@cgpMh4FlqU4DhSnkMV^KPn9AY%zwFb?+j88t*0_3|!fj$6U^ z&@$aahs`Hog(Jte0X$uqrilx?5%oK&K0=ul4Mvg`=8|ggMX@xDz3I#jv-*sSU_)sE zQfwo6p8kA@%n(QeYAOxf{4@bNhu;D4xPHfeBEM{E$*3vgc4))PJWhTm!poX@YbGlg z;&Ad#uuUh6_jG}&b=cel{Pot#%UieXjjdRJ&giu%l5FV>F-t$xH_^qo36OU>4yEEL zVa&|sB=I08nma;J=+&ztGc%3K_qEnzp(-`*(L6Z{V&q$2`UtdQ&2+fB`{W($15dii z;h;z@r)vajS>U$18`d21JjU-B${qFirzHaUk}#{wCPfFcS|!aS$! zJu?F^?Yw1uF^!xqNnd6}%5Ffu8xr8vJ&-aqv8gpkil%t5IZ%^xSnDJB+l*c-F||U$UOo$+%D*T>(eQLcw%UIUttZ3`sFNE$sQk!&RV~{ zzkaFyL0idg?uWcfcKW*Bkl?k+*vADPQ2RSCOfS!x5e?Wtnx7BM3#5n;DQ%M9!eH#t&pi&~((n6X^(F?&nE@ z&pOYvf8Kpm(#r1&*R^L~G8GCvf19&=t@Swg3QG5k1+-&1_{oAZIS&xWMYeM+Kko{@ zu3sc=DuK-1fmY(0SrrNwW|taVo>M04InIR|8IWsLDyW#fJF=5p`os+R%R>0GQ^Gqi zG9seMqH%P$Bq}mejX%FzTaCa_9NT52AOCGJ-GvQ*;K-%SC6QnRa6)B=fT#IzH(Oy# z10Jsy73n%}W~4v)U0B;KfxBoEmNNQoO~ZpY{~JwT{o~@UatO zX|3O|_~@+hL`DcdgHXQ2iuhf`T$~pC!oKr&h$bcl`!}C{Ig}iKU)yGu3pumwIURal z!xVYOkxZe9tr0lF{rUT*#Jr80zG3Spwcx_e_2dOmwdW^5p4Es+UQe!a?;co%eO^K( z``Irc&zcufOUBSXz?C(5<*XdduPWFwx;J<;v_Y%33(?GV1Lo|`fb|J6TDLa*p&HuI zMJPpi0BOh+yh`;lee0cnEWWOF|@97p_~34_?0A4+;lz2Tp+cCSayE@Ru{d{ zZMSgoR%bWspAY`N;Iv>H8+DOc_=V)Y`hQ7!u4Q_W_rA|L(7C~~CCVVdWgsKBjZF?d zCoW;zP5=lH`l%U8AksDWJlFFSWKO)iBq z*olly0sRNqmHRa`yGi|awq$9d&mGhAf2ocaKP>P+qZk{R2#C|n32pTkc-EvNod0P7 zn(A;iz!-h#^=jW)q4~)1_$Wp&t2ZuVx`xRMM>W=q-A0#hqZ`@}&e=zv_H0q5_+8U- zy?7Ipxg}iZxl9oRx`S|4aSAz* zjkc4OL|&8A?%(q&5g;UyG~v|u+no#HEZ+%cua3g&RM@-UmT==f{j38XrLXzh6&=SE zJ)&xdpiO0PN=uz6)@qia2H{n7r)!bi^3mIRGDyI9-E=f96Ni>5Z}z>3I^z_x4{70b zbv%>l);8AlC1$Iz%ImfdDo|(%_ZoUQzwJw8cC;P5M75KI-|&3tziB@I#6P64)7Fzh&_VU%7%0i zcWg=Vulqg}9Li8(VJQtc&CSjEki~QF9^y_#afK%B(S}}d3tVBLUhglwfhwhe;zH%t z>Con<2otc|u&-TNo@J+W#J{Zu0Ps>bH`p?tf*%KiR}8i^vY}}}-r=nIzV>w2(Vl2w zgM6~u!Ryu^LiJ4+pE&`cmg-zl{OCcCf#NC@%FcGOC+&mQHwYs~sARlTC^T}Y z&*ykSQV7+2+{z?Gu4mF#0c?YK?Q&;+qVKxG11_Z9dy;pVYB}E&#%%C&18 z&xUA}ujP1r+XOgA-CjAlFlfUdwJwe1__$h}O`XT*jvt>*@i4nFIU+WPSX%MKV8Trx zVo7N1r}^0$?S~KXrE$5b?qM_^QVxXo*9m6^dwI)iicz8xNUqk?yBSg#QvzFd!7qop zJ5x4S`?_Xxkt)wuMam2sh$VKf{6>Iq{;2h`4MTZJ_ZWr5*${q#LhT<5pV;MdbNHox ziy!s&rreqH#+EPkM?FdPcQ+%4P>U8G--xEL@{152N{@siy_nVHDSaIs)8IX&0pd;+pp3V` ztteBJf3zkeADC)C!8E2rrdzU8JScRF1+O6>oIs$Q_&15_rWphuK8tJBq>e$HD5*y&r$U3F*sWRv}*cP>chDOa5kRnJ6NEd2kEOu-y9S#hDDjkxkrTc)n?<|avL+mTw|T2>B~q;*4zErBN8biiIX zfTUGSUQRxP?XEj0aQ|(kr>pbc;Dfv_%G}Mp_dN-yz|VjvM~_<6@>Plywv*+ROq{6{ zHjz{cJm0Ubhh=;j{v~*3qW>)M&;kvJjb8VTjye1?n~`i&v0p7;pRoO1k73K54yDu? zKg)^V=LnPiwf@f=7yGGmF@*{{tf(;CXg|@Xs31DNcy#CRy(Rp0J=vKK?_g9qkPIrK z3QKmu#s`^kGvde-#2-F~Jtp4e9BpHr%qf4n2DhyzXU!=@)jj-7@cL&zi*I41_LqFS zj~dRFbC&ovVMEC#o0%!y8{FQRjIY|z6B(0ev_|e+N+=0(GVvw77gWi93Yt{&))Fu4u1Uuhs`se8+)&TlH5uHGR+!`@;U!gwzaD!)IB zoeiJ99v&I{Wl6{}e{-J!Yr1x?q|3~~0@o{K9glwz+E7weQue~+X5AN%mzmGW+h7L$ z#YmZ2p+yKxoUASkgDSLuMZGi~(?9O0{NYa{la3HpVuxI`D&~YX)C8BK-4=r=5Bq9V zR)MJrYh=E}$*97VU8`m`FL7%5W7Un?&UrsLGscFeJjWPbx3|s=n zX>M8KdV@}J(Zh|iC`9*Jk9?hHm9nu$}u1o{oPR0<=C18nzmgytUzrLmb(@tQK5q2W$Ova` zxA(dr3_a{PqVU}mGsU;q79HZzl=#tNJ$1eT0n>;4Zp5hZckU=JZx<*B`kN4tqdC^{tetLmgXfQPW@FrXW;~eZJ}NNfskwHy(93p(_tzV> zZ)yi^v~T`UjX;!nl|CA>GD5B%+S>8E*H@La%39dQttWcuCtjC??Ykpn5l6I zVw5R7tny+vc~!;F8f7tn>s7c|a()YQY~1sbEs{RAaOO)V))Vmp6}K6&rQ+L?@3MU! zTs@aWuG5EB4^5h#!A_hXl~|IBpf&m-c75osKyV;VK=u;08%HlPn5Vjs7}WKj2*1T5 zy;pW8DdgGdl&&{vI-cTB3x^uaaW*-Lm3!BPzAZMg^YNVWS>0_Yk)mT}(`9AVA9<(= z-u4+&!H_~6br${HE8lXxg@=vfPuEgiqNu>0wBo+?QJPpx%a||m1+Z6!-2y)MVq<4o z?c~n4ob@~P7W;QI`c(rncUpTXFq>wRvE(9=-}}!FUEQ%SIG6k(oT3j8#4ySM0?OCH z0ZG~c)csynVUJPBKB@v&5fO}%7vFRHCni|B)i?Qc#6$2%TRGQ;u$*ymZ91z>y(`}- ziEm1-gb#sA^uhToa)3+UZn^Ga!(??ovt6q)YX4i4l|0*V&+xZ~n}{TF5yNNu5%Q8E z*^)PIH9lM0eJaE#R8#hblKo{HW{=DT`g*XT&T&h50wJou*f)*U2EaLJUo&NWeHLGN!KXN-|v zF&ZPUJ=|_(Km6-Tl)I=;mp9wgX_d*u4ga~DPT;_1EdF3j03yens8KW$RYJ<=USiQz z0AW}{ipcYTrX^!QIh8F7L1OnQ~a=;gx?Pq*s#j>TzIVjH#(8L+}uGY--f z^&Ekw#I(K2dMbAs(*XX{R?;)%>5EQu^o2Rd-@273K%8j4tuBtFJt;1MpS4OqaOE z@(IG~ex$tO9sBddh5ED}nGU<3uuH*h^r?Qft-888VCkim;pwt#Wzu?U=Haw~f@148@hD9{OWQdyPDU5@Fhj8Vf^CezYByR0 zA>3;dKWktGGntIaVnqFFS>#_#?QE zSgy<>hWIXZN*I|MXedl}z4kkOk&VdegkS_w$ zgxWtcv50f6^YtjpyJ+xhI}%HW)N?f<`I<$IX{NW~9*)Z{AG}k6Lk=l_^6S=z8f0wkm;Yi-o+5ENU0V)aC6ezl zFm8pDk-_qo!x&U)*uzI2kyg>{D%VvGf9yFn2~O%kyR__ z7q=h14D{YjvIiwU8ANe^L7^wV3Of7Rc%23QMldwXBnKxyCKY+>t0VO;Qfv3p?*<8~ zFH!J8ha?>rN?mD9CNB2L)N8oa0GyNtH=GgkR^MSBIR`Ap8KMIF%zxD6`SW6Ypek2p zl(Hy`bJS8lRx`qj_2ngt#z?z7n@5$@xN}rMDWtA3_CtD(X2nm6xs-9u{jCXJ%93DpZn?Unkn^jTCbJ@MD?6s*oYZglOYdk< ztR_!xk!IWO#Cibx5yYcYy|@C|pwJI>YP(srRvD z+h&6rHj*i5f5%nPG<1RKTNNo3JDDy7M+t^G>IQP)ZgNQSBZe+o z(#|NX&g;EOfr{&=dXP#GPOo__{f}xZfqx@GU)tG%qJ5UCOM{fj;!dPl0$0XdM6h+ z7U-?>&m~K^?qPB>c?NVS3adX^)|`91T;JPG=ypSdGa`ycn_ zPW5lC&giiEJo!b4{EQih98d;ExX+O6^Qs?5ySYiJ%(Zl062BiO`-N0bF8Twf+4gG>5Rhfe(;q)jAUd=*Q51%yrFCc=_s0AX6sZrvg}fSpLoUeP5BD3>J>$y3z?}s9i!T8(gKhzIX*EzC~>;8=tT&-Tov_rwG%5h_MW52cIC`{3@gj?A8_m7c2<56Vz zC)n8+)8JS5qwWm2`He{Ht?-;~vKs>*<83iYSD51)NjD+64}&_093Hw+HDEuOtW5bM z4Lo|*AO{TIW>@vNA%R3@02syXx;jO5pMFJ0;5W9ce z8ekjaX?>ed5?k`Yii||t+=*L|70w`;!2YuN$no2L%{QA09{Al7Odt>uf9F(Qfk2op zIPY$jxw0$m@!;T7SDY(&Ocb%uQl2UibLc*U?Wqhpaj+4b`E+({jRhh2KPSJ^oV{kWIz% ztKLq#^juB)M;Y~!IC5Q@{|24A9yx@($XET{zi=DhFZ<$;5@#YbM~9e{WPHXBrrAS} z;*yq8+;6~{x1jIxFUaV-kgiMAwFlA*6CcSSe9jIpvQHLAvT-zmA{0SdW5Eqcf^Xbz zXX&|Z(p-`oPJMLIqPKTAZc~2~EFbPIKB@`MTImjSdm|{~XdiA2BroqY@F3SI3@0i= zW7l%B#?u}1##$e4zJVQ$2GiFd(YZO5NLs-qU{4Xyy(#fzxbcXH)}1JP2V$CrFtxWB zc&%W2XDJDRXXupThr!WLfYS0xRJt`e^LI9B<&hOiI61ZkfRN{B2n77HN zslnE~8X||)oIvxnM!R`T&#BP^#VUErfAGynzpbTYCE{*aL%IkAUSD?Q4|~^(eJ2pA zcK02(yIecaZ2lKF>zmiN{>)7{xWY8P8hc);o9Mk1dh2B3cpclPgi=+^F4#8I=$tX6 z&QiFISpC$dxfJtdZ=UgX!_!cxH`lGGPE$tL4w+9LLkD7MF8K>qoN-PDwi^kG%h_9Mb>^&Cqq!$x{rGm=;2^L0@i z*xM^cgBzr}kt`glr-3d@-g(2A2EnWr0f3ubX(=^Y{Y8kC zK+E1kh92!A_D!p`WJ8Z^Z-p3*+V;dRty=3^pC?*bz?iyi3&z5VV(i&49Da-bwAtV2 zF_F)ZBzQd>2r@Ip5qI&k+_iIX$lCtn66)YPr;!c3qFTbtQPpz>?_1d?JHFryn`66n zlx#IbptFZwK8o_&qYQmOZcwEZ^aK{tGsSxclIHj3t51`_JOG|JW9+D*l_AyVu;z`n zco)sIXTR%Mzi|J0eBw(`$b21FOa{qu3A*C+3_NxTlESOy5M_+^^Kb#7k!E)X86jSd z>aUdP;R!Oayy_+tHZAj}sT|B(-=B1%6$hv{O%>FEo^ESf-2w(@`xom!K#HdwAOEP? z*7|uzmqZO#H6$p!c8jDw_~=n9Wr6rm)EhPt+zReT(NS3_7m{zjKWf-a=}jn&gX0T- zJOfp6r&kq!dz;V|jz z>1f2>ph*U9ec=8_CvYJJm%9U!NRYfULN+N9%EPf_c;7C9%7#l9@k3F|ZEErY;H)vM z&pIT2h>Os?(+T85K@x){7uVMe^n=Jn%md369G!UiH+yTqA7B}&!po#0_01QjDY=1r z5ldYEBH9G_hSaG*YKIbe7pgxsxRzFBMY8s0tvEuB3Vb-lr=}+-5To6U`G>dV=k1sU zRDu1@&y;JOhJHtkhpZ%d+2RPj|y%`ZZ=l>CZ>s0`Z=l zgj;sg=x>ja9#ch}Tl3`w*i=tNk$2jPpVyi#vT3g$1Vh=?fv^-Zs6oe>3>)h^JJDqNPBoTROW{W85jQ4GIaBvWsmvU^m;`5<^DKPGJ`x ze1NIrp8*({KxD7ePD}y@%SZD$S$~?W8uO@OX;q?O+hE z%FWM_hKn)9I%JR<8`#jl%$vKT*BHQeW!`s2j|u-)NT46J484zY}@gOJVpL}a-)3{7N05`Y6yDucQQVCW;pYu%<2_;IeA$OJ$-9c z@(jVIc~TQg?ZAV01M`YKy8o?0RxOku920wDPiiA;q)Qgc-0!LJQTaW8zP!ctj9P6Zp8mt6-{`z)(u_O*tYfP)DY zIVj}%{Au2IddSDJpWIZ~I;o{0dJOUD8%p+fow9u5cB0X$=y$Xd6lNChg zEi%u8KVHn%KK~FNQ~Rr3h@?l5tNhNfqhI3KMwi3xqkMvRQY84M1Y@6K@YmoMi$nJl zqv1VWmW&&{N-8# zJY0UgE!g|%@WDJ_};8#R(|yN9>h zai_DGRfoS7N!t}GB41k)my{tfcDYcc%L-#Id4#YS8AO5s?D^OW!Mo;Ew?r}28o?#nGPd z6`dYGZ2&yXnG0Knk_}tiO*F9oMZpdpnS043fK?!Oh-y+9AV!WiHybJKQvfh*-Q@60 z<+y<0f@)Zc&Xc|`2w+D)8vD8p$$TXHCW;mKKPTg~$SHcTEv-dE25{TnUB2*!X9!EM zr<i3bR-Y1sG22KKmvBRufRIIg=~s*6<|F zc>esnm)40(<_?jo0tpRjF9eUbS})mFcEN2MyaK{EIAF$oybS`S@SU z$n9H7<9F9^2P28B;J|;w$TYnNgYgBEi*L&d#?6-AE@>TQ-1j0?R4nA%MHh-m5(jenqDdd?>3AbKMKA&$0M;{cA19T^B@gU53S+oVD+m*_9EwSX5<1 zUP3*#sR*^lFs9d5a;`(sSa(^PVPtB5lGvq%Fm+>#OnBuNl9dCkQkw}pZ`PgSqiJ5V z=?6u(9SW?|jmX~A`Fw*vbfPOt<f%O-!*H0oed#}|L*}-DQsr{Z3E%#U`tPH&iW)aotZhz^0Kh@B&c2Y z^d_;4)<+7dzwB^!(HZ9@L}ka}0z;;!{-#J}CGZCogcV;-{g-x|t;aRV9;O~~ic=Hf zS)&6$NL_MXPDvF$JU2F^hhB?XTQ3WHCXvGIsv~L1>U8k$`d+I7&#?bEd<1i-8nUwskypJh<(-);1U!rcb0t#IC84r3GhB;uIL)B1d#EFRpE*1-rx>6U^0lLOUmyBtUu`#xw>Oij6O^YW((o*FRId5g{Wp8$`EeenGYfO) zf{b^c_1rU~e#ZcQzBU}A2+ml(Ptnf^=1toR_&1Ej{6Eo!G6l^$gn<6NEcg4o67-~u zT>ZAlrv6W{Nj_gT#CMlf-;nkq+Fxa2yWl(k2Fi0;;; z`@u>3E#`bq~53lroe3d;Z|+?tswjNfw8fm-4Ta1CS( zV6W(|>m&LysnJ=xGbv!%@7{&TPeC8(@YRP$4q?#y7fsFOcgL{Z*2cU-uIeV__>nNf zkjNA0>o(=9ToXD8W?0%P;B;|QOHjUm*L~``nNc$u%2H6?EjVh#9C-P8Ypt7n`s1d= z1>0JI?*psHDtChIG#SB~5JmY?LiP0Q|Xr~b9GGiMs9NAAkp+9=4vHyOhb#@SudKlMnmY~*lf1!gy z5-VL)w4=*NFdN+Kt#$aZ=W*l^;`#4;#}byY(|{EMo=H3as%QwctZZyTB4EMZhkLYx zh2bnX&j9+WSa!n5oaRmX9(s9fbR4dG&|Z=XsT)(@x~Rc5N?2g~oj+S9{`emCkt(lV zT^9wNYIk!>%QOUr)T43hmsT5gpT-{fjw>~fsAX%H-Qwridw_YIfUG~i3@TW;y?l)* zd1h1t`ogxTjVsjs9dD=68y0(5^@m=Ah;*)5>c5SsfeWInJw%lL{jcP|B3Wjchuo*j z!LL{qSB+uT_L?{F)~~MEteWQArzV$@Y#TcZYrhmfmfCdQ#NDxeG2GrV5|#7imf9r5 zhPAn>4Gm!}d8ga=@TqK!o2W=s{~KUm{aFAHj(Zi(Q>)IP(|cBNEO&=+TSVha{*Aid zOtsU@!94?#LCwss#%ykTz|>0wg)XA9r!(RfE>1VcU!#Ygc;D)83Tc3nd30La0wqRh67jECTfnC)tOj#mO*( z-n~W5oe}D)G^XXV#I(KgDi1zRk+_v2CIa&rm*4x*xtYzG1&=mNf5P6PEi-2g&@)-5 zr4`_nAjuh5dr=cbw+@SL^JG@L4Di}L%Qbh5HTcI*iSev5;v?_Q=Oz7`_p|1K?m&w= z_|N5DSG^Nh(Gt7;LU^x-P^%q%bF2;UGP60U|G1hI7*-H0o%Bu0u z^kGd4NzLB2$PUYV!KpHy$mB0n`O%qdZD$E8b?x+Kk{POl+JRh}e?Flo$A7+^+-g6< z(0m*%qhIzh_BWmt?cJ#gO+Mb4JeDZuw);}XoPG=4Bzj!+p@)QD5u6QF?xL2kbN6oe zC!nA@X>ypYoa0xdg^kF$F`%nRz}|oWMbPt(O$d5u8Ql%D{xx~> z0OvSaUVV0V+kC`JeO>3N+M$R1YbScJx>bmemTre8IifD|{HesM&GimZOAfAOcvI78 zc*6ni&lj&*)FWHk4q?IJ+5f_BcY6i}<~A%oa-gfch*xslV3c_M@sB;YadNOP*sQST z>&ZGZQ5^tGYO$H6Vzs3nyNOfX20 zD6*lXz9HTo`No4jFlZuy@2=6s6|R9}s!7v;TYtE|--Ku?wA;3tFGkUzo7HSbo@JfI zhq4IZO%gQn1RJR_j95XGulNZqzWbkw>lyR>`^Qde3l`pK;|fs z8%1W2!}>XY>Yd-aKJ{SkaX20FY`K40`ZqLF=>R{Sf6Te+b6LkaGWVqu>f*R9DGZSkFN=KLAph^jYvfQ4Bx5YFFWv_;Upq(uuL zVKKmAZF$02Xy%?w#+U>@euw(-P>lA3cR}nCwZtI&3^MKXZ$7s0Q+;6rWQ0!3Q!|Ls z0WLY4{)Z>=Fo$R1lgrmU7WvHlm!py4FJO%pW34qos^DRViPMR#{pX5T8^`#!-;6Y# z@Z^R<@8!ew+s-C?>tD8ENM&!%Wfha}5R#s>8Md^AK{w1CV3karT@cv@R&e_B9tm(k z8D#d&$qns;)g_&hATb4ysPi)%)6IuvPCIlwFB$()bL5u_6cx|1?0RGnQ_5V=J<4SH zHfb=InwSAMy;TKFmmc~{+9TKcJ-MeoSpQT^c~Qn}^kDkm%T1c9IM&tgwP2xhCW5MI z9C2&!B;>4WE6XahB}FsEVcbudj*HPE0^M?T-lEAku^E+&nyN&v2}U#d4pW=J6!)K- zYECyBZ;Pu*wgt>pTFXHT`%@z-S+42$j-LH?^iO-ZEZgc z-r_Xr-a|=_=MH$n`u5K9VPikE>~|Jho#P6$fl)5zaIYs-;S!om$((^(md2s7hoWqU zd`bn?&2*9PAdCoet6C}DbkWxDBsc> zj@eEpMu<;%JU10tgAs}5^D2en*>`?XrH}Us$`^HM1{!QOCEnmDU1w}Ox{Etalo3=% zwQo`F3XqFG`(f0^%D-6ZQ(fS~a;Wk-2hi1q&E_}*r4fiO@_>7Z_P_RL-9sC{LRr0gwnUgP@c!0 zX+9uXt-Zq4InbO_t-QDmLEj%@F)sh>MqYOx9Tzg-rJ%KAX%4IEb!uMQcXStzJak(g z4t{6pDu~>xPA!GY6{>wu4lMiphJv{%=C+!4%X=D$6KXjui4PK}`5G+M-0Erk!lXV# z5?hG5LemBai?PhNJ=F}nUWXPWSaXTL;zlxm5?s|R?7Kj3PJJt>n^Qws*6hoCJ#O zyHk034}XYUv+``8Ec>nWxX?B#*j{GW>$ip^_*dy&G!dm9mHyldrax$#!%ah!%u43? zVjfWi9vz5eDSsq?g{uJEbp|s`3;P=W4-bv!WV!nz+jjLID!Z7H^#`GMBF;%Re)Nlw z{e?eC{@rE}g^hXO9 zK%cf9;A0>8U(fc9EdImO4f#c}*8{1z8-CqsCS3o-f#<}^-I&IDsoyB<2}${eL_(P5 zjwXv&YpO&u`$R~(@TuCnSuU5swlI3J_mgkaoeZClBFF3;r29OF2ioE!#EW*4i*x(( zz7k)xDN{IO?jQoAmeZZME7F=i1s&>2>kKPfL=o?Rf}?!$vb=tzwdQc$y8!}4a%p2d zIOGD4OlitnyPBA$)IP97vcIzzbqwC2D$PShd6nv2jVV$O=+=YvECeLgI*}&^ACWms zU(M@UG5BIl4Rbs8SI3y6FDLwerx^%T5oiv1zZ?EI;_RPIOwx@en!cvaAjyA?Ua);T z9-2k5d{uj0nEGJuJ9EavAsidY@`?`IGN($sQ-hnpVM$?0yCJiMM3hHQ4nismFMeZZ zZe>oKwd8TKtQjp0#Pv!E3uD;9(xZTw!k=Xhu3C|z(V`!TUnLmrL4IGQF7%RHS10sX z!C}PM7WA8kQg7+heqiVgn2VCn+9`?y2V8Ybd~45D1Dj zyy-yxzE5yVz}LHh4!e~5KX4*SKdvL#)h#%E4e(mo zs_0g`h?h%f1bD?2l$6CDd1S{cRJ4gNE*GXW4|=4Z_39(SFm!(VP_5C))@G9b;@4CY zrx-`hA0OMVyOz2^o;Y{s+_Krr=(>nDxxN@b;^(+3^FOP$Yj7_1&L%IV+1?lajQCvb zC#f1MuE&uzB#KM(machPhk51&|L#xC7j+;X&F{f&lOnFM>M~ouq1wkS4(y3`?#Fk) zn}`;sN~tIKGIjvL9Kwf{53=k*KRBB3kJ}qnBdCMh1F-`+ytsyp#|0L?d4~b4)CqS zOzGGf((cr_=x#S{6o~|h?B0Lv)FFE!Ia6JrgI^F`$QMQbfdv zy#b`d#%OCVIu&xsq9)?Qyy5?gnT^)qYYLZ&Q)UmrH2%Fdmo zlvLdvm|cK}Do%G$+%UgCav5EI^#qi2TRk@@E3P-8rdeCX&41Y*m6gr3990*Def^Ff zd&5QBRM!Dwo5!h=ac4$uWcjg*id0peAzSJcQ*Ue|K51|eBs~vG?+YbQc1tZf=gS#m5l&dpM913#ga*la~ z9XT1{Pl4z36{1}p23F4WQ zFKEPko&|(>$nT>+q{drZ27eq=F(J~>@{v#u{%>+F5?{-3RJHv1BO+*o(CG~^S50*~ z|Br7>05&yK(h0xrtoc;JMj<8ePYZ1Q6fz=vVf(euoH>Y1D(ED= z^AYQhXOK4K4<-eoGFF!tt-YTY$>E1n9bNOMgJ*Tx%>o~sGsDoRyX8K^$)(?m3kTtG z8hJfm@=UO15i47#b&Wq{u>Kb9XWqU-1cN8;XZ5M<;Qsxf0~&jHy8EP!00W^!WdTQ$ z-CQmcsIO^QfZoSX=n-g7&pM1*hCg|(iN`)uAQ@6-w##~yp+d>q(+G!8o@zzk0WO{w z%y#;6T|tM=!jsR^EOC<;L?bv}{>2-6XY-=Ps*SyqRAmAl*z*W4eS(78Nk_l+d}&U> zrrA@U a?yo0aSl*TFtxP?uPjDO+9cJCdpWYu%Z%6*ZnVhB#RQ+gTc080WALaF)B zR)nA0=m4F^#}L7C0V9btn%`%OlunP#iT8WL0DbuK(L-3 zMhx(KpF*LmCa`2N%^qGUjhqRC0}o4!SSiA z3~pb?d|)!WV7K0u5bp7)emF~bBSijjJ7dj|Fo|myWET9u5VJ!r3o+|HWKLCQHG5`Z zF(J720kobWbz;ixCEWurra!OOIWMV=^F05?Z082^i-`MO@A1s`MEUjCPScDLZ^wSn zNtjpNK9^eExtHX7ro9Qv+Q6mLqqyHw`#W-fF7L~i1?)MrER^TB%)31o4GNCsH2VNP zn(xdAe;t639+*|Esw+O`YCf&Q)D|`d75?dIa9h83a+Qjzc65#8nhi{U&~XlMwhS#s zuL_~vVC@`eD@4k%?DIcOxs8nnC0kSZb(E<~+Pp+AUHSUEx1(v2>FVSpfVq~I6KLJl z*^|CCiN}A1gtN|!J$<*j)&_+)J?_e|y~5UfCikb7YZ#aP$t-ONI8Dq+C@}E=b}8HG zySBIiIdcgR5`aZ$L;Y)>K9g&L54Xfy5P~nJaL94{Bok6l;UP(<1noWB_>3)=N>&E? z3te}=7%E~NZ9Kv+y`~NNCIr7;$92=wjm@Oxd3aZvJx#lX_v4zZ7%QOEs6lIN+#Vb{ z3Lca#H={Ic%dl~Yapp-&(`87Ie9db&J|UvGvm#|SZymDbk&6J4-~KhS3)L#K-$lk~nCnHfAUA#7+)@i_g#;sfqJ}ShO3?0iG#H+r zrbKx?(q^dE%JCf0t5FZfeBH@6oMB7T5e2nnQH4%>ySuriGl|{NC>X6*&M9&a)!G%W zr<;?FMii_J;#cYhL9(;j6hg#FTn+@1KwDQQ-o!au_A)3eo3Zw|N||ssX`Z0?s1?3B zt8A$E1#<1^m@dQC}>)5u@_p@4=iTDAI}>E=LN znT*8}wEq2h?sQCthwskA_In(0w6lffZDH}?nNG|CC=hG7icp%uMy|0zM-6S*&!cI_ zc?Bt?KdXrNx)qHri#vUDnH;_D7Ej-GFw;P={_0Jas2$CjhqtG6wawK~oL4sY&Vi;7 zO#EZd9>ve4NE#YxA7q+yHtR;z`Bq3~4_tQ>=N@wi>anVLpo1umOlCUHuZKvGp}VA~ zEb9A~)u~jM$KubRY=pu1aKs$>A(4RNs=2K{j+ewNOW)R%pF0Vw{}0P1NJUMQ=Uu?P zima2FYv6XqetOx4)P4z+prf%)zn)t5cmI@KI@IVpVauUp!BpB9OX70A zrXQ&)lsu-e6j@7EEBhlKbAJJ^sYuvy)5Br8HbeYKL3)7|R*COp#4e+f-}u?$^i5z) z-rw7WRhI&jjX$hJcX~(-aNqn#{(BP&SR8#!!NG@>`!=O!)rNUnJ}IlNchH>??sdl) z;X1I!QR3ayWwdd7h}CHo(a+%PBI9|B!=drRL7sV^)7cA)cqeG{`au3!AhiQs>F1k) zbKQ<^1KR-VFk*#xA1wThBg#ejpXk>Z(zqFT@}YOdUpROCZuz$fe)tQ&*1gV?ZU!e_ z}rY_ZR(=X%csX zIAiy~hxwTP^{mKIe05$N3-Ham${pd-3(x!%0Ek-iW}3YpYnKQDt`69eW36N({aGy$ zVx5&fHQFz0ezjR*fLyU4R($?0V|TF`D7$=Q0IA6C`$3Hp_nT@cXrhAfor|zEFfepKsw8kuF@k9Hlx@yIKVW)?g)Ee| z!G{yy=M8)(Iq{CmGHXdh(-3Zaz@AJJm!1ZNcMFF=W{0MxL6^%z6uCFT>j*U08diTZ3-bly+r7W2LtwAZSqbM9Lcf6j>DDKBCQASdqe>EH z2ut=g@$3Q)2}k&l@Ui7G_EAAj4Y{VDl$E#S1W*+Bm();Xb6wzxY(JO)t2}PQ$ZMil z{7ED*SazQ&r1sEf1P=Ci7f#FJ6L9d_8&!LS&T`aq4W4u`72g8}#JeH|9u=?I(IVpl|y%UPODKGz=0|3ubcSWwr@~z35 zf%{3q`o!yoy(O%m&V4f!d0fbI5SbX0@P0*=)qvz7iUtM*TxFXo0nq5%gbFOmH{>lP zE}3O3P)#0^m;j!&8nOnr9h9#DDolYiWj0HuNRW|)RJFYpx_#N99E$pdV0kd;tMTuw z^8CznNmX<8qSgF0{R&B!;U3sDt76LHDPxRvr_qnq&dR1b-elhT^;fnA{799JrIJ6Y zj3F{wl+(T203^Z0Cz(c@tv*sGbZ1xtwWJe034amLx<~2N^;*=5N01A zX?w(U4f|z|7i-XYMk4^f-~iS%|J?B>%_xA?fJdOh&iq|N0FD<$i!G=!%=Z{tgC|G7 zRASF4tO>XtYd}f(?Cbicwws~ug;nDW+or*?JN^Q=>ebYOdgP~BM`M3R zevDL!A^9t6TgeQ3^5l~tbiz4kXG5Izw_^1upb35!;OqkJm@QeU{M7$UupRWFZT8uu zpQQl|-kVMZX1R&B#AOQkcz#x1FOqN^AI0Dp)TZRY5)Gr-HK}3ra|pe zgpV5?J-cV=(?7ezQTvD#uyd)t05Ff&OZfTa0ZtN7#YdbxO$A46MH@n0S);t z#xgF#+h{fGp`EByccVduq1S^o2?VWpa>3`3+WjVnJ>4Taz1}kklG9K)p9bZ0$F|Za z{^P7{ZEyR|qU#@H5X*fU}$PN>pwKdP1(Wd*CjVL;hhV&)X+C!6vG!Olz2! zihrfv*o;Y(&sxIy0N^ulnc{qNwO9-d|G3R5;& z%(T}B+vOpOwxg zf#=P;`!|UR`cih%Yb!jb5qg1BKSv4I^w9!4&MFYtjHh(t9|yl9@z~G%bQ@csUkiw( zR06O;NVg%~l1fLFzUA>`Pa0DP#-C^)tsY?9Vr8ILmMTt`SVCn}-cYm{IYoVNI12#v z>1h(@K#>WcN4q*abaT6S4;b?C3Y+`7wtPYrH;oqb?a=nv(j~#arKSDu7h!Ks zds5&Hl~)?jf4lk^!JT`6z-}eJD-hZEZV*T#p4_>>vXHQX3D$Zjtn5Czr0He&{guRO*2M&xk zqiK^?@Q0UY>sxO3afZ70QSyc=X!#W;PFz+N;d?pZI!gR!VLkM+G|KOc5q~p*uzk2W z_?j1c!w4+D2*`e?fRrv?FVby)sjX?i*Vl$Zqd(wROwX007e0_nLv4P8 zs8$tWQJ7>ma7dZ>U30+{7Pq7wUVef7?_9hP<4drWi5RM0%bw3y<=D1B~P(hKU@1FW#*$kB(vm8 z$KfhlM0xg<|F=enemmih{R7NoGf27KGkI_)$Mw?Y@=-TMHB!F#8<|2i6mit!&OX(u z=B2E9mba-qY~a#jH*RD8XlFOGbAX`lA$m(Vmj?R_s?jKo0l<-500KjE6()-!d)jiL z%MvWXHa~kwr%}6*=^9{9XhgxlACC#J(2RKyaV0>EE-E~tdA;*z!lq3lNF~PzT9!zN?|I0X zG?(wl`Pa}8AJrZYC(d>Zn&Fnc@e<953X(KTbTO537g5kIe#PIh?Tm&G?%o7UqW)EU z;$rQKQ~(14j6lV`PD#bY_83=0DR4ZXr?PEhA0(OW#PU1B zLEbdLs$UFr%_4Oz`tS=ib+!9Er% zzpO?;1HO+hW;xo^nth&=6Q8ykQlYze^vc`X+TPyUdLkBW@A|e$Y7Ga+`zVL*;e8BH$_?iy7~()c7c`T#FaR}2|u$4Neg|9UA)bP7hVv(v5+J(=!J6- z$hUcET%Dybu#rDqS>648I(5m`=9F>o_9nx*Jo0#5-EJtjne9TR5MpTK+=|D@tF7Q*8Y6HOtWxA^>Va@q-)q7cDuZ0ux_{UB`@Vrb z@rv^Btwxa2<4z3F?nXK)fOR7^@1vleqJ1K)HYab!*Y3T-YKQ`Q$Ia<3>JW~hEmuUc zfCBKiHv*PaE#MUrbLC1F~CSvpnG5Jnaf0K{aexIoOE|vy< zEAO)87p<3XU23&X)R)9#p5*i;JWrdSX#}aseTkzAV7Yen-ELrvrO&cIFShhE3ynw@ z@(FP{TDp0yXkRs3WDoR{Ybg_b>kN9t8WqxiZO@%mRIV=HRky%Y68hQ&BdHr{V%U zE*j*#2G>j_G$baYJNfB^RzMF|<3-tqk)StrJ;*0{m^UfZXhP*#?qio^LsQs(b+}6S zk2OjkUoRps2!fggX~u(VYwa`TNZ)tfKfE`LL;VFk4t!k3x!b{a*lgj^@^TMQ$$}1W ziJwYviHw%e=ezk%io}iYoned&eeB;4?z#dZ@m&f0IBp!^`hc(ovqf?C`|VH}rY`6^ zl_4^O&MzUEe=u}y;tZY}1D1Vf7`_qRKzL9m&nPCV`|>q*Sc%0Z8dg>LR5H1)QAW~r z%lb$ZW-3Ho&eLH$xK-|_YWs3tdMA+CR~9i?<}#$-Y-aPI9;3m=zW-7M00aFaM7J&e zm%u9x2K3`P4vMFHkRWykKDqKC^c$av>rxvEf8hW2m9XJcObEFoqq!cDd|XgGuquwoZt{Aun;QKOP5NH-h`u9tE8aIZ(!2cM4du5_B2b}dY2Q&w?9_E@JI3CJ+%+mhkHgP=Axl&y27Y4d-4rJuG&K~Y_CIs78N=5` z^=W4`jQ`u#dFnQk0%EDhyvxV3pTOv7bem=~0gH3}uf-udVTJoVWk^5_P(H-TO8nq9 zTpsoSC1012Ood~1&Rj`Cz-dsHo8JGf!UIK#0sP}DCHHQ~O-G5lAY`+k)gfyWsQ{;- zm+MbeJ7Qg`)cs%EUrbKrR^F^4-OuBASMn*LteFroq+wQH_r{|`iA=)2BhPi?U{R+H z5oOT5Oz~d@ugp(Xk4~l7NEgV+{*+d7W;0~O>5MZP_TQsL|A8z}>NFqcV6z`I=`(AA zI^Fs#NWevgV4lY6rcA*F{}rHd@76joWJ%T%?E4M--0sW%35(sE{YK=Qpv%YuSeC8| zqz&+s3Ca1m|GJR8Zhp$+SW%`EQ6>fz26H9VDLu%|Tdx>)?D$Gr>dwEVkoc ziB-#j=9Xnc9q(sZ8X)x-OW0TZe+YJ^EHr4P6tszSYn|+FRxHbpjawQAM_>DC6v7$t zQU_s}8nbV4Dzs~RlSXp%xxPq;Ulecuu7P~DVFPG%E2@*N=pa?CC8LTLqf=bMisM z>E};jFAbnVi38w-`0!D1)`8CQZgUM1UeA7dPpTGnR0n7PJ+rnN^>l^1&qUV7(Uy4e zLo-por5No6PwyyB{$fbLI2>)3@;86=B0h57d_x3og(K>pgZ-h&>CB}raXCx&lqbyO zcDdZM>^S;5Lpw$9{Cd}^?9D2A?xjzJmG;WlGfG1+Iy!y;VRY_O&sjrBRQ*eKon<6I z7+zv6pT>~WJ}>0+E2J#dI$`aLh$C(pyo}L20%9EKmA7(Ofrf#Ep!R%bn+CG?E=`?*AinS0fP>e4Y5s)??Ewv$SZ5fWals^| z)$`Va@&OfmQmyDBg0Bvm>enQixRXS+0*1I&rOV1qb#9Cn?G}8T$WPF&*XO$B5U+^{ z2pI)QujFr(R|$WqhFE41_gicBaUb#ck6jqI`&Fv{XM!&{OEEhB2a^LO+yvm0Yc%wz6F9L9UEBJcIA2m%R!w42b-X>sx z`A@gqnT}MDO5V8TT`nyZVtGHDF!0~dSxKhb`KSJe7xA7*x&q4NYyAb z-^IYAt8a9B^j?j<@as_PL@GaAq)!AWqW-z!u1dTvmKBTtX^0!1&*1^zVd$6oJ3Hw2 z=ZCXHr0=_b{hn$n$-{yrA0rRBEO30@7$F5#L4ODU%59LhmCj4sk}5-4s%N%JM)3gX z>9dU$fk#qQLLa!d$n^?=^$BY*;P!|-?rx&!-b0TW6W!9hys6fM&h$Cs&3h4OJ!Eig z&mH!O%D5qNP;FcR4yN@S!Um*UFD)Ay2~nf-M#kRbYa-c~)!}g$u1GTak4$tCp*(ny zZ}b;qpqHrT7h11UliqDJoX9t&$=qf)c)4x0_{Uki-Zz=OgGS{zN?83B;DXNrF+{pW z8&Z06DPOuSfqXDTp%0$ErmLe+Q$Q9p4giqH9|4n_0uFe@BOz!i5HHhBMT|NvO%awq z#C+`a5yah^skF^zrmnR#YN7`~?TOt@6ZxXg5)YtqsxgGY?Q-35@htWqGG<`ei=)FG z9~pBnYFBEw%P8pJJMn){e*^l5EcRh#!W`5}0ymyy)5cF_?WKvLc_S+?=%j|?z~CQ; zSX1+)C->tuR%g_6^}}&Bu@sIdn@{1H9c4zKSEBcSc$pnmq)2wV}0S07+6%!GopRuL~JfG zftUL7W7ume^`%?zFNbGT&nEXRZ~c3%Y3nd}?^e@?PGcpX_zgoCge?;b4rAHM>9}@= z;+|9>RCDu6IKpzlU=vbS%}Z=^htTWqq(vt(kJQMcj?D*Sp#J?`3*_I}ViKf0W}&pP ztK$yn#17C1_Tg`J9bQT~!54>*!A_ExP9Iq*!+r`v{T8hTG^aX1+f{bl{4y|9wRMdmDHvB!!oVkB4g1al^ zNxdBCmV~KcZU1|q@9jn~iEe75;>h^Dt$u4CKgBLjpbF!Xi4BM+7pmiH3Hf<#p*t$#bjUhuu!kjeDdI4eSc2Q;X z869%;3>oO{_;utY{f)T!>8qoC)XGz5-=n+u`q7OMN5IoIc;hH-$9H7>gKX9bJ@RO@ll#&&)p?nwUnvGu%J01c(fbCz5-rah z0+k&!idYIfjhBInEmY;xt9I%+Ija?UYwR_FT`bWwxgr!kEQ_5&*?PEod(|t zIU=Ry6zztSe!mpp#CINUdZA~=*uNiLzV?nC)rV8u^u@+a8vE1s*S^NB1~A4wg);k}Gv~#8bLX?Vi24=Y88ZSM{RyXh*oe zeBfMXehohm#6swJc<+|rKy%p3nB*;`R6i{mT7yB)8hJqu;@V{=Wm&?M9>P@F!cMuz zija#2{7Y{*u0t%F;476#aycHeJ%ckm-`14M z&x2Z8#1m>5?IHlOBf%e4l!t41K3itvE#Ft{K3D~()w8uk2jK5-$U#ePgQ1y6uWrY4 z!T0IE>s0%;cI^l|O6xls!-ubXR`n^L4|{|vkJyB+`xz4O?$CwI8-USfaK_SiMUD|3 z#>n5>$ma!INzmQ-pDzi$`=|O~#SLvr0H5GKhx}1>Izz8JitLU%?A1d56;>{(n6?6& zX@qs^zB#o9>;4d71>uL|i-fMZ>J?;LF2W~bz+(F}8ym*D23ze-Q3><4c#jvDu6wq| zuS{x9jQw}q%e_zL{g>a?t$&g0+%4`eSCos>2ySK_icat0E%}C9TMLjcqAGh*%$-gx zVFmi1&1L}SCy-tA+C(~!Jg1HbVG?`aw<;pQgd3>=q%0a^Snjv51i*xNN?`@O_^klk zG#4{9T6P8R>I^4OGk~)$s=(lol_VHJ?{z%JvtIZ-fesqnV94G|sW7WT)Y*#SV(-4a zlsxnEMdt6qKXy8v0beV#`mfoP^w(}#Ccq155SaDHkm{AY*Y7-)35w`nml!jKs`i(| zZVs%yV>oO|0r9Lv!)!5faItdP1-{5SuWxp1c+~(FLfPMQa!^NE*;ZjF|MOwzF{NC6 zm6r}#N~$S2*M5Re>EmGT#?G?;9Z>Yr1S2?yu@H5$Cu_G;0K14a<%yq~?Ta+kuR5b& zgDqKu#b)r{9ZUg{3yD6j>xET_sK;4T>ua@shc}MW)Nt>jT@%Ur(Z**tNv>c5 zCj`2%Lk*naDyM*G6EH{~vf&O1mDCdg{_^YGk~^~!rTS=d*L?VD{OsS>r^3pLK9QQL z&y%>4gyG;#kuOh9j>b7uT(c@2tg|#lZU}n?NSAB^x6a-kp*;$~pU{yTNn^hTHh+qm znvu0kyFPOR`IlSxr0W1sZNt}Zf5s~ zJU8?x8vb|If!0_$bu(NfYejpb9RC}9kcY9;`>6SLa5yewMU|7Ab`nK7rQxkBGxRrC zwrdZP#RH1c3HwY!60QjHUhNdHPhUD$hy1L*a`BQZp0GAhku9G-W3-C??c~0@`m$~+ z`_N}Nb^fTuDFdw{Uon0N9+sf4FU9L3T4YzJ)t7Po#~A;Y7Az74{0zVC;!+g`>c3&{ zxHk|LyEqc}^4!yNg-`fRCGUZo0~DiHlKf2anl=?2 zdthTP;Ekml<&%BLp8>lC1`@;|PYJZ1A0JBI0a4~nBQ9N%0m;Kq!@zdxLK}230cPxmve2`^CKvDnu!~R4$o;axna;GS$elo82=g0+2v`@xSs5*cv`ygn%G? z3F$!QI5zR~mnlMmuMa*{$ox|qn3ez%F~!AOqkSc*4s?B(;1)NZd*)FWKkp!CI7;zY zg*7}QjrJ>j$d7}dl-eM|^L0xEPiXzlyJ{SJd|q>-OJH#7mB=lnfh*}Hd5tbUdX2%rI)vqmpnZ&3<(mf{|tJgo8nu??xG^iSUS;9p*jBzr#GeHIOkBn>5AK646bZhR9RP`Y=ne-k zLuA@C%jPtVfP-FFV&m{hqjMLb`}sxXNh`86W%N5XQNX9@6*!MKqwiF?H>Qp_<3Ss} z;a?44Q1XBV&?_9fG?2r^($3Sc`(?>q*S0IyD*`%={9(XRp zERULw&huAIPp*84vEBO_wfaY^-6e*RqXuQ)cH{rr6dL%`k{|n**|D8rK(Sf03hT;H zjV&kx;>uOkA~MMUs4`2S9~~R4Q`}A2s6D{exe$K;kk44t9y>VjOb#)&g4=! z3rO1MzB{}A|G0YdKq$ZVe>^EmwnFwLTasmDU$SKjp;8GMW#2`ZVJsC!2-(Y?HQDzv zH)8B$&2EOVWH)1-?B84O_wziT-|uhkGv{2(>s;q`opW73z>r7Cn`jWo{D=LF7FRzg zJv}IG)CgK)`s6p&GS@fw&F8ppbot0=)&MHojSy-`k|pUzOmuFo=#+9>l~n*!OB=GE z$-ufJ#ybN6{$4c{4r7&l(c(Ex+Yf_z+Ag%Sju)>?g)Juj_`JKbaj$2ujsFMPbc*dk zVd+whasUP63sH5p7Kf>LNX7++yP;q^`tP?=H*80nFQ?dhef(8>kJ~VPq)V>lx^Sg1 znH%DIAJZk7FF}$hT2cv09^~0!j-YHi*tR%vUNQ_k ziR<^0C}o|aQfOB2sqEQes|OP6BnAdwZgo76nu9~-7pj;0Pt+aj!1$Pi6`y`CeKcjW z?fQ>Txd7WJO43XRZ(CVuyt*D~=O>!#mgj&+a%9*Rc=5#dC9s%RSq%GgDv^c7?!Rss zi(_jS1g2U7UiW-W-kilPP1=akaBr21cEPvnhVdu9p6!GhCNSgyGgPY8G;ZAT81z=% z1LW~YF!Ls$!Xgj2u&kL}?tqs^rV4;1Fy<{mT(U$GmX+3=~Z+#1DaIkCrE`xMw$yjM$YsC|m3YYoQzK|_bI#cz< z^;6GN9_fYS&b#nw(l=|#*kSqDfO(Z!%*UXStfCRAw(`!B9KdxGWvtj4c+H$}IS34j zmJFnUN9KI)Vv1X3yRT(p=N^t2TLVk0>alxPhlrW%7(xU2`Tb#OdIa_gew8fg<5MM^ zX46I@9pkb;YI14HmNtI#x)iY7Oua-)gAdkb0%fKOtDA0ZzHw)gZcPMIfieXU!3zx; zx|^X zlxs4jn{NQ|xtZRiJzNS*5Kwr+Sg^2uJRv$wy)%#sbrxPdXRC49Qv-db-G$0s=OLj)g|Ef~es8s}cGHG;5bIn!js zkc;4CUBul*?^=8!QVy2%5%qMmqN2Av{eO~6&O?Kw|{RSo~TGmVb*Z*xBBR(UKwI4J`{C<$dXC2N{ zE3@|cOl2-!HB~@u1bBd}L`|}c>=?V+jrH2b6L=REdhl7VnWG+^Wy<<7FW}Se4&U6T zk_BhZRBi8mpijf6+(L=(HJ7MFncvGuU2}ceoKiD=%yiQK&nFwO2Q8D{TQ|7!JLQ_% z9_;KsXxsEiWIhvGE2}1e`X0pjRUR3G?lgW5GQuqd;Q=g;vuN7+uk$f{@Tw(O%6a2dCNVz`q#`5KO!R7 zCP2f<;~A%*JM%kxcP&jCv<{#bYX)mW`IqwTFRYcMZ;Ekm@#?YKyNNyOy4*Hma z2f?pzRxWr-y;hBo1Urt00jpxSI7~KZC7gNi-c^}|Jr_g`eyoN(x6X4gCW)`{aFkZ{ z(_dqt`-91N@676RP?fsOWizeAj~`$Voaw&`uDIEqRxH|+jdgBv_>i(w~5Kn4)ORdaqvZehSN{)*e-mI=E|3IBo(ax{G- zs~nxaxiO<|1U8JeD4%$Z`Rf!)mkB4rj6vhuJXDj! zQ3zhw(fcjC8(spa`GfwBZt&-w^twIaGk+Hm%8rFM9u9HWP+OfO-jJw!CTM7hraH52 zWHNT}j>}hSX_ij00d4r*feq+Rr4rn6%~b@Q@_AYl$;>7DSDL%3Xv4sRp+qL3fnm)) z9whUgG)4TUFF4JDHP;yI2G6|MoHsFmUq5;C()WE#Jr`2esF4bJ#yG1Ik<*dX5bxUj z{`>UUA;Iz=gtw~W5`b?Tcw>JU5b=UohLmr{xtzWZvN_HtJLv? zHf(gqk$tJu-rCD(fMefW9QX_SC{k?3Q)>Jt$^1U>67kt?W+L+G9 zaVj~F*~3fD&eKZtgiDR92Jl;bDfPj%l?=W=RX-5U@>5=Z8hJVI#%Xlnl{2tYE*iHX zzG$f*ug+Yg&M-}V(k5E2u9^=);x-TCLnDyOwe~DJZh3fwdGzgvq;x_zB32w-I593} zD_zj$lrTnD=8SSWx*TwtnEPlmXlmDS;JemVn&>TA1RAeiCjp~~sjxL%|+oj6*Fzu6g5NUpV4(*OX8{_<78 z?GPF_FCU**!1Pt*Xr$!xL}qHp-GJZa+SLHyf6IR*ZfIg_>&?!0jN?9rcJnREb?CWA zL;j^Dy4}cu=|E}He&MV-Bj6*!_zzftut3x7t7yJqYu%QkhbdoUxW0a=rWxCPbdOh| zuT#nq#KW%H$&&Id=J;+}*WG42&s=HIL9GIf-dc zwz(&0+&Cxb>yWx^TeL=QqJbD?`D=%i5Cb+!JeS zXupaERsa$8lu2}{Sd+u~IMQ*{>FYePH4-ujwAtvy#Or|CH=m{q=3(SjT1eOo-LwPe z%q>9W7%V0xQRt-SL)o2@2R4nPh5(4EU1XBVHU~1v?}aQdG@$qSp!1P1>4k~b+7afv z$8ihm8k~tVb4hoOmrAZ5|t(Bci^^|9A&(@5n{|JCn7)jcrL`zG*ROl>JKl#P;MDY!>w~al$F<1rt^g$+5xgH1m(SV_b=WmTBEL* zzRA68tl#KTb4)b37x?7f?S@=787M2RN%{Gbi zI&oPlh%9wKqxTTChfCMJR}UsnfETihR}LB%!F96B_uok z{xfm$jMjE^ejev2`N^IPK7Y%KtrHafge&H{KP{CR%MQJu*syJ|`&t);I}US&KTdB- z-$Alq+ke&a?;l@c$A)XSDl#sK$pT($%Z@D23sJCzL4qUu#&dS90OtC!{!(iU!Mj{V z&5Zp1mYh1ekdHDvW%wP&-+F1W;vTcK;K}K3i>YDMp6PF(uPpY$f zYU&C~KAxvY=m=vPmAW>%|8ZG7pQwGks)6=+a#{+=1}&z1<#$~`OMv%hVQsEjMz;$p zv-(S+()!Z&MnPpb{~Wgcv4E>TZ=hP~MCuw24hFTkh1yO@=$!1o_|2DVhl5urlf&}; zrG|gq?Zsy^5DGVZB&G+4m@5P#X;J$$w*Z<)$6pE_V@uB_^R1wM z248LcSESLQ-ua3lvWj%CS?H@;fz0c&hf0 zj%2h80OMOI2XWx4RL}aIUJr#^k;hs?8Y64&U+nC_N`0;@Sl{0W?rhhmHt?9r)=ihg z>_4Hoe^jnkeIAG?l!~0;Un^}ehl7t2T3d+*!fBN?i&h2$g<;-*Xpr_E0RC5 z?ItA3GE|$%^qeTSlm`1c!pV6@!%YpqTl#T-yi5;s#DRo)FVj)ieWmi;H5O>h#@1)C zJD;Vb*7#m!WEZ^P<`g0CeTzGGN~CtXCHZAZ<+a*;V-T4)rH8k$k>YXV+oSw4_}J?$ zTQotY+%OzT>nu%;x8KX4ZXk1pN8I{OU@0HYW~Q@jd?#bVLk&6oS)#rCY5k|V6^+{_ z-!Z{POO|dW*jO3dn$U$TP_gRV&x0@E!bS-TM{?WOJ^AHaZSHziJVdeu6xg1)*hxPj z_m9w2y1Vpe_qvwUFIv?HZkX4OuJD*i7Z&jjN4Qs`9+)oJex%!l2zxJS_m;*@`n2f2 zf8&a!oveEMg1IZ4yx%T8JNGl$c>4l8fl<9ngCPYJ^mV@DS`fzLb>ExBB1x327iC&+0Q5(=LcTL z3g@wV@X0G}C-Xl%8K7JKF0%YUj_y4eAW=bxaRINwk@!*eY;36KdzyYguI*#yk+3gi zxzV$Y?!vdMe<<%S57OYR96x>X?l%>dw_PhARLjE^Hz_9_lbDyXW4o6A)M$s`A}^(q zf8b^uZD+@}?z}_=3=jQ_gW^E7zJBpgHgWg`8Y#WWMiz$S{K<+PSenC-OcAnpbKZE7 zl2tJ@PDWi~y`OpO`HyR^@Ivy;xsf#_F~9e$^$vZv-Vo*jCFFpmQl(L^>+mWb=W-E^ zs2z=^VV5a0Kz!{+!rT{L_oj*iTgXs%WNj)h?UHk_>TP)iL23x*A>wc;l^+-b+tic@ z;4s<}P##H)Gz0eUN{#!;cBtl+6&Hey)z}X9>7f_qWFF0)s&f^~QkT9g3r^{$hEx=I zJa#U0DLK49#411yF6>srBXC&~Qjh;5><^mZbd=|n#d zJv4Sb3+7nYGjT4@)D_PDQu0$P0i+`Y0lU6BdaMR{ag0@dL^d7O0#R5TApTNw8t!>o z@i0cM=PEsVl3?w>L2GKo{u_cC$jbd(f3;G5To%Y4_g~I>`GAQU&qXzS%{YqEdo*!# zI>wEFnXx8EFun{F>T9GZhHEH-y zhulxFC6(Ihl{jiQV{%&7y5w+qN1O~Wq^Kjg-S5$R;f$7I!4`ovcsH)?q4Xb8+6xvh zm_I9J!}^Y(Q`qif-aOKa=mhIv78+1jv4HVD4L(=Tw5|Io)SIc(CkRU<`;5-kWXfu= zc!R5NckCQ{+xSazq{0rYifj%yub3K+ecYu4RA+_O`YRlC@RK8x+zP_#lPfaD)dsN&<_08TFot22w>1ZXJivRjZ;-Y4xT%GKrv)}T%s zEUcsQedtnO7RlIJmd8)~{Ev!bjZuN_hRS^=fn`ZuVwqJ71 zBSm3Z>vGFvp#5m3B>wsRicmGj)mV|+54m=6W$0-2PrS^Vdn=hVaxEGwbb9)r_uCGZZCWJpzJ4+lI| z&V0j)g-w`E-=Zn~iT}$}Rd~wY#;t3tex=ERW_H6H&!Z8Btk9?_Ph4_L7l~maOc!ip zwi%DV40-q2fgRd_8%UVHxM}SZDh_a>>jtF(UGOrfSXC|w+$n8}AW^MHo{|+2%nFrH zQ!>a)+~lIT>r?G%tOu`LfvMBD#Z?WODk)mN?>}0~tQO1}w(n_-$*t}o!AM!1%JyhzVfppq)`&9W!33s`) zQtc@_PJa*T=sT!PGm8!^x0F(`FOK5an=st@2zwkC*?-Do)DrdtQp196&F=1`TV*n% z#?QW)|4`lD!q6%XkhY#a;3Vx(DtK)*a;E7dNA52>X|;6oy$7LO^>Z;GQD0>*aHVtcyeckF}@iiA-JVx^r^rvK=^Pkom&WzEWV$du%BabsiQu`nl1i5FyW%yU1PT~eb7O7*Hs z`$<#WD^b22l&o;{c=iF)z{IahrS9P2uTEcgh;Y*4055N9<-q$iZH5O8iw(RcI-BAV zSfVhP>(IYBcv&YBcCi*^!FF?HM&4c&6(FmGMm>eXH(gEjI3VjmgD+HB&Il3%S)dbS zF=!>}p-KeJZD){I0I3Z@;E>2IORf)(<~HQo#Bp5m;fo^1KD&#Qz*gFwkuUOK2Jn5-X=?T*%b6BX0(o-@3|Nsv%zGL) z^L@;t<;QPE@C9GU-jRUNw9)h$JZ3}0_*z>4kf+EL;Rk}py&~8r)cwSlui!r)dvcua z^yjzJaUMv40SeKL(EJajg@eW5>itM)G&U<V+$FNr!te@5QG z{j8b32vR?1nUP*XLtGwMq6cpSp5`-Mb>YNz8$bkem9ms;lWUe0pYJ(uqcn5O&H@Ej z2PVBpz&GZQ%=g4*pNWy@m8ivQxQlN*J`lpuBgzXFLO-bw`G6+Q&48P`@lHmV&o7dN;=LxeoG`(-~HMZ6vwK_M#M^a*2F zt!89V(NdPU!FC05vY#KjRY56rL<5d@rk3j0;4c2?Em&lu3l?)mG_IrvGur{TJC)un z;`l-hIpjT-{>1QUM{T>`Webhw?(MexarmDlDS~F@O9R=ejK_IZ#hH`kkX%@Kf_6%X zIS4o?c%+xe@E=|e*3ILj5+(`oV;<9EyB{{|Ig9fH*Y4M{V&{Sf1z7Pf95UmH6bvqQ za`zT-Xi%S#|5+GE(JuPO1Z3Qm+b`zDbZPZ`X8nHnc&>AifrB~Nxv={>UI@aTrGtyIr8XxxjJyD$dSylSlhiCfUe~hGPxlhha^h}Xw z5{!HeW?tZBp0c`d$hPNS^-7~xJ;4I^-4bW-*vl#M8$M$6C2=%+sDI|?NxqNa&O@}A zwh+Er>QP%DgPAXMmEe^8cxS!ozVksvF;`jL;YuPR?o9 zY45nddlWa|Dx|7MZQki_7w)jEDQw)s3VX`E7%7S#1M*}n#@ zeYDXBR%xk7CHymV7*6Sh9?TG|Nv8v+OQFQS2)JfuO6kV?A0r?};U4egL;ge3rYpPC zM?PnH5s!9;>e0IXXn#6PF z=E;O`YhxArpU*7iOkdBI3D5rPO$ZGBL_GV9-$0$6}>`a8OGW4(oF({_AujHHDGvxe`-7oq5l7fT;5J>tDmNt^2yXj01!9$_L z#GzpFc5?~on~LY~7tR6w$z*K7k+5;Uw2q*u6u!+~QVYuV%pDClKYd`-Z zysuaALNW#!3auZ=UBMSCE3ze)@6k-r50 zHy?qefcrGB5>bJ{XGtqPO1zMiL58wT1iXAxTDW`Xov}U)Y`jzTU(DG>5*K?2C;Qjg z0#CLxmR_G3yjL>HU$yGn5vetPNOJPFspWex%_8Zmbexf=Kv zccD3Nu2ANC7Bx`^M5o`GlS=Qn+}*k1AZ17<04)DEoe@Oi_VzWiBp~blLvQ|`&sid` zD+;HCCX0e!tS!s~+}EjNzv%RKKlt%)Mh3PCBDWDWL>GQ~=3T$mDe(?M<5$Ux$9b_v z+RNA4{(LC_I4=H+yq<0sfOzl`(Y=j~GijJe14+H9@~@VuPng5xpfbPaM}@lk3~fFT z{^RS;@W4DaY>Mnj(KVW9XK}$457;p$y&_!fjv7-|KUqyjesq@}4L3-QEg$?RC$o+m zU55qIbAbXlOj4QL5o|qaKIEc^FAgSBcf$=M-ZPI|D7236d5$KY3;GKxmoES$NaF8| zQ)hX5{SRk}l1vd+>VItan3JAH=RDM}KRLnfPbK~4-|2(|k6OAcJSS4K zU#}HrotaL)r>=k`y8Q#rJ1_>qU@#Gajc2BZUcP~%bo({@JWdf)E%2ipjDP=w;H+5d z(4y~jrbd!~b59i+gq16J*2Jxe3Dy8aa^!UKm4Cg5WZ<$L{Bc;0u}t&7A<|=O+uB>5 zrDdJITPaC=StS2%R}ayJ`{sRWPJwTNMpQFFHesbmVv!?UwtQ^A}Sb z;pFN+ADoC?!DbxNLld`7STj`5LLCuYy|oU^Jt#;|kreg+LKZD}+~2_mM?n>< zn&`s&D%?-j#w)d&!3W8cBu*6A1rXHEo$mFN|6ilIOw&O)VfH|s?lKn!QzFm&W|a~z zP>?j5d<5k!5M#F+FVpz{_}DeJR1jP>U$FhfmMOxep{_Q8bV9g5s8VS0XKSJeEB#Ld zvd8KlIbO)MR&MMDx0ti}W7301c|WZRkbe`BG1+ZmiSFpWGH~u+zakrWu4o^bi;@`l zyTR@;KwY8oqY>rU$}5vj)?gdIZY^lkdFa18AUjRzGEAqrkS=cd?{-N}S*qu;h2Ubf z(xe}ai1t%I%SVEHnkw81Ow;9j8|Nshy#p8{0@5nx&f65htimrzdJc0SFB_cSdV>Fv{LDu&7ITON%60RnRec%Z8uyx?T@lu!L` zC*m(KO@R@1SY$W+S+8yjf>sCw`Ts=i-MQ8yuZhgm4rL-TBxjrcD%$>& zY7NSEtd4qUc^PLR{P-&{KGFCuG*AW;nR#)?r{C@+5*yFX3t+R8fH$$`3gsFth);Ca z%~}v@)Jixd{Qm*$bez8M%mR`K2|VmR)y_-%C%$@xMtoYROM;ZWDJtsSfS#OI5=&9V zRwn6?`~-7EaE{ktI+`_%J%Wf_^5Xr#VEZ5!Lh z6T9O-T@!<_PGjPK<&hpza{1UhOH(%kW~XF z?=a_o9(TN{){J_pmA}@i1oZ+(pku@~`qATTZbA2Um*s)c>8XZq{>weu*{zZ#eJqj2 za&K$rqT1Xfn-6OTO5wD4$b#`#N03s32f`oX%)NHT9Qtn!Za;n1Ht3t`zw&c&L$C*x zI!RvApUmxT3;F#DPcoS>P_{5NH5azJemLFy?d#*@f9~dlZi&jv-I|cVyB<` zp9kCa+B2(j41KKUprHiYKVp>lXqEoajE6_Jl7|pKy!wv4QG{gm;~Dc?L#%DS_=wn& zY0Z3XP0a^l#75`UHo*pO8&eDEk>G+8U4d9(DuiMD-6I|9B;Xu?lJG| z3ZERGevpa4TXZspW!!%7ns^__3Hv?J86c=Wz{IH*_*+C(=-$j5#DaUdLOnW~ZMN8d zCLre(*=uGVfR2*j`jBmGlz61rvv|w{c1*&rV%KY@FHd8gV~lfO5=y?^zc8$%=~;3k z+rB?LGv2_E7>HoMxohaRK9TPw-SDCAp}%6NtJ)E?$a-EJiK9;Y)X;Uz@v2bKr&M_(8oj5%F~mX5ySz5!GkluC}jf@aJ5 zFyht;Gi6gvuzG{(kCBM9&+L=?$Wvs#?5L{;_nDG z?ozn9zLOPb5@{CB0(M$OiOfe4dW4f^L?)i=1`zQLZJ1U^kUAX%F-zifprB0J{m!Tz&t46tHqw7r}SsHWS z?Ye#hdgFErb*0{U)ak>oF31NPZ?xL|sKFfX^{*8#5W0FW78flVtrOU82;q|AzY8}Q z@n9{KZG(vpA+TR2E#@8AL4Wy6FIBwkYi-k9t69fNrD1saVkaaEE++t9O9Glzc;NadjMO zaEU7(A#k$9S6|R-!3uM^p6>x_XYOZoz4Hl>tztl0j97g$F5gM!iU>36i`rslJ7YwUhxSg5Q?8&{TadAc{L>BTxulcal)BLbj1*~`onx3r6Ezk3-Xl4j$P+WgwzWp%nx0928PdS=E7&6us51TJ^1r!_)m?$Xf_czlu-Rdn7t|G;C_0Xrwguuvu{~Py}IF@;Lew@yl$QMu^61{({h{ zl1##~0h&uYU1Sy8k+#FTTtId5D=g_2WS`rnX0OfQ8bD=gXV`aeRBdgTO&(-tv@M$U z(^)I=7kBZNC00R`KA)AQ>QK$zfDeRC+(G( zhS*utQqUAtt4t#vzI0!jbE0rX@<2eF>=klpUYA zmO5Ym6Q)&KMAPJ!vrPBi%?4CxZw`d0KAZ5}&TJy3V^P5`VTc2_K(o>@>M)TKmgJJg z1E8@YPZ5Em+Pl91=luJ8Z?#+BWD*li*yE;u1VE088&v;lT)Z?_D;p%I0D*Rj?q07K2 zP&csE!-oiLV8r`unh)^}`@dDJHFhqgS`v^(MvT=m=}aq#_UncTlI}GLk2QsAx3Q@l znx7Ua@$bBD2$PRzuNs+tFimokiC{xGb6mm;czFwt$Zp)`qGkd&jEK}Pn;+M&IG#Uj zoz}s~tiCYj?AGoZu@le~S_uA<&2Dv3vF83|vOpcfM}?L{PJW`7z_Rk~@h*1 z?(naQJEd%=pjqr9REH^hlunq60{_u@icCo9(&la^X zjQ2G#Vgn4hcNP83o@8a_?BMi|8E!h!-J+DGy|V+yxcGXGY;luO@1YDCdXOk=zYycl<3FN1hj`h<{=*j9 z;Ym_%{KNyYG@F5*;Y5utTNe(*y4VM{{0fW@uz6DP#TWhHmk>tfDhUy8xM$nmgM1nLhT=-ImKE>pWqs`Ouh-8Ot4b zG?c+5+I+~ZVNwxD47B-juULbT@o~C}fTn0te6#Af1$;FtV@OpXjxVin5kvPd;qg5s zS>}rJuZ&+qW(vF$CRDec)lr#gAfF_O*72_vG9@&7R$j9?MLoAG_kkn~^?awUF}zzi zUiux*Rvhn5ADGQ9ld+XQR zAxDz}T0QAowPxAJs)nN5eS21WzXrkk1R@ps;+^FYk4@ce1%G(!I7h=%u*wk5%i*}j zO$vPCWjEgD!-ys0cb8|t9bXImqPehr%K!uI8@~=7QjEckK`d-WEc(O~jgRerHjTbqYy0>pU z80}eW)n2AHFzhhTdP9|NrTVp>a?j{??wi18naXaikJ3ra*ZMS#?s3VjFUe4qd*u)e zI=|@eImNFm*C^%kG}P)KnZzE`#T$l|N|lqF?1mPgM|w%$Rw<4_V~lz_>_lc8DVcs> zD!so7ed%=bq^p0!db9s9{ZEIglSvrC8%c;Qp>u$mF~|HA>P-GA@G71OYUa$qS%DIE zWkiIZ6$ui)p>01mlk)y^c7pKAWtTJk?{{aimLYd zZNK??ug3@m#D4Vb|2~!Rb4T84;Dy?D$-;m;A?(tR%1huC$4g)^X;?I8DwQM~(}!C0 z>f2wIRY_a>f_5TnHZ$(p`7JIeIAI1iu8@7C^S$ip(k)rp+AmMbJ3Qb6ADI}#sV3DE zV1cg+Xm*~Imk2$MKyW3{Z|4b&^O_3{3avwLwzjGV8ynZf6f`AH5(naudgX&ux#Ek> zddE8)%AW?ns%f_28F2!@ulAhiAt!iiOc~hg3wf<$EM$P zj@RCH-)?m#w=Lt*^bM_C=}KI3HVI!V@d=f9e(D`8+k-hC?%OAp2JF^~_@cCfiAkLl z_-QS&>_43h7vXgDP(`ewQ_QP%zC{o7QB&HGu$nQrPI~ABMT|BN^mBpK+VJmd zk@JKu`$Nl&laNiHpkwi?ajeZL#&mpG)pW}{rCrIK-=H3D`5`c&42AC7WV-~_-x)Ur zowr;o-EnFOayoD4ETXIAQ)MszuKqIl@~;h0;sdd~z-fvEe9nR{ig3W~lYn%xqr*uv zCN#?SP#sd>KeN48;-g2ZP17ZSbvH-h7W3ZTG2NveyE>!e6d;j zjsWdCPbnD^(p-4&CuHo1?C>=0;nR+K%U~Pki4-i%Pssa$wD%=^iH{H!+9&P`cA8MC zA51j%v3L*=v!9TJK0Inxj3B4cmd6cdGCFI|AA&^>>7^?_$McU)^EC?>Kk7hsliKiG zxV8cQn=G2f`+-Q0!QSO#MrLdSutD@0zJ4X|=Q4?O%yGLGD-HF%TJEoQ&)|!LO15Ap z(D%1rurbDS>fm;7aQgl#A9KVQ*rk1;l;x;695fkcFQ{MFbQ@|nP96)2$n?D$$U6GQ ztoZyU?*iL8Mq7k;xzo6fN;3OXai_mq2l@KBz{(*~MOuj~sXz5teLCkO6ejZDKJ&vi zOt~8SiFD9oA46R=s@`0mBuj7NH3ciNI?$RBZVKjvdw!nPrPE;|)tsj}36^Wa(zzjL=u2VIw%v zXIqj3Pc(@Eqn+IQ*N(QUauQ{^WA!Ay!<3$z=wVd(AmBT{S<#C4EMfI(I^hZN8;o5z zvlS2VNp1L|ns|JnAOrN4U+YsAN9R(0nd>}&Rc_04IHzp(kg3ua{1dAHa~ldQ-#r$I$cVLQk+AyplDzo6oAaVIgDqUvyqt*?+xGIlPg{p+wv6`-@oOQu z7LribSIVD7hF(-no0n~UzFp>9UM~PGyAP42il%^QP8zcxZ^IZQmxoAOvPDGa}nsBmgc)I5x4{#{&v>2XZ#BfSfZ;|7e?_F=^ zv_gyv3~c7h2)i$F>+(w`IiusI4=_)Q#T`8Pn6US%?28x;D}+Efh{Dy~y32Pg?2H|5T)f!y=k#k40wWNS4jDU`&^2*}OZ(Ye zN=aQZQ7eE(6>}a=jk#e5vKe0^l$sAy#Ow4d8u#^Y0FAoFHt#&0<6@v)V;Db`8_kF^ zJQpuu`)uFVhtwo2p3F|^N>e)ru0Ba`&VL4RaP$%^z6q=~Eh#JEe>cdS_SIFs2>3|o zKu1x~m@8al}#NJHG1{tf9<-OS}6M?^O@aug<3xy?Y_TJd>_cXATd! z(@PY-&XERVb?;ez(VSv`P3aZp)`5tO%A_a|ca6C|!-sl96!f^3k$u5|B{OgFQuZiS z9`A)S#n4^Gl9R(D>U+?kO<&Bh{6lQ+uwpWy??%^s!G{RgaFg z+AcKNCT2=FEKPor&9HNQa` zUZ5#0Zf&A`k{3V|3ZQM~tFPUkkbcVajp4_TUvgX0m{W!06?*c%eRTHoZTYId&UTHr zu2v@pN!EIZ1b3jZpp>=IN5P|%mvl5%%sA_E2?FTnUyf58oeuFFtEO5e3&GK;vEiMHfgaGkoKb*ME3 z#Kol6fb;O{DyA7M$Si5I)R;@*cK!vBQrdVr?6#yBy2gREINDllJlfB`gpa0Uz>fX7 z#INih7)l7INMppPTFj0*F7wU9lgWd`B@j+1p=4EVDe=sV)dE@ zI;!cF?jk?~Hew(AHX<<+Cm3sa|naS-V>@N^6{vZiw+z_#bDWn+WPco7AorS zIE1)hC^29gXDc}rWk@-A=ir=LUiTwdvf3V7krRhV zi|4KDtD$tudb8bYJyo8c_Bdm)aqTj;fm(zF=8CJ9%C}_(4&qZE2a^wd9YW+l2Jc=S>@CH1RNo?Zs%*J0~+ zx7Ll4!7`SpiZqdm_umLerFlWLj_XC?PlQjjYH`h4g^C&rzt7=vKVBJtyA78mOvXVobLFO3)RWHQGGLj4uiY;FZ}HVf0vYa}3l z-uhNbxNZ>Z4zJD4u*hv<)ZRVQ0pt$+R5oJc#H{Wix>4y1Enb@kd^}=Xp$=~kuS?8r zqh*E9#u9mji)q(A@4QK4sU}uB_`HMZr*(wx;HAl7avBQnuWJZcyOBCy z{!JRIeP@&0&!}Qubx*4=Oes7EWA3%aT~r~>Fl)4Fa}5VL57B6XyD%{ryD z;dTI1k!)YrNt!nO?MM-vc}3Q#t!Ka?Nptr~%&sRJlM~~mQl7Ucz5&r?18ZaO*(s@Pr*{0_E1;?f@SfoVH5iIIYx|)>YtQtfinOh2`2(&qg-u&YJ7dy| ztWkP!lTPqCO%FLjk2~n_lG`l5Ntk69)HXPYHn_aKTPb=^;ej^iHwat;=l}c?gc9F) z+?{bEaCLg&3Rd4At5k{*TiC$H5)?+K{VIh+M+-OEF{>*iUhoBOZ#8*ycb7@GoRW^a zPROsZYISv8R#7GPLHY~uWht+(VAtbEWO+9$$RaYF!|@}JrBx`zjfOo=?mC$Xxm3KL z)D1Hq5qqpWb&;}EVQVarNdkL&mK}X(VP~)QCKXP)BS94E_>Jp{mheUTikmm>#HN4M zWza)S?<_4?VlH0|>Pa|RHr+)bssAQPvqAJMM6t>&Hc5t>I`2SdzMQ#@2cuCpe4#a&x}oFL!Uq?_1J$a z{@gKYR^;3oE~{6PQdfyc{D8R*l>69KyooF8C8>US!*NSM*4B*FBr>d^=w6K(Jk-Ov z+UtPDvsphSH$>LwjK6ERrrfFBq1TJr*z9{OA!)N1_EjC;WJHO#@DC^C>1g^9>o<HvqkKct27?MJC7VnF9;2i zDTR{VqnfZA8GGL3>{;ja5%qbV!p#@^{@&sWJD9K)Y>)Im4Q~jDI|#q%t*&!YePrp5 zu?U%-N($W45CRUV@Hb0xwA#mn08e(QG95Oi(VmSe+i19~2j5&=F~f42au=Z!#RHKj z>-d-?w!U^Nt>P-4&%Z~|=Yh7{gxz+jBv_rVAY%a2xgH|WbkDn6P82w)ViwLSvu(TP zZT$=$nleI^bm@4OEWzqYU+&zHJMu1RC3zne0&a|&bO9L89q5Rz72@RpE7fY^VG}2@ zx%pKJPl#;pS!^a^I{JNksIck*VdjG;CAyLKXH5^ep?kD zDzWgYtF7m;E`rIu{vGXs_`LcWSsw7UuxR2Fu+pOu@pi+O3qtl_&6kcITV^%J6|>nb z;Y5}(EkBo%N1nF)yGXy4qcYm9=i^k8)_p4EC-#bvufso4y+E(sWw#vXa!1ULWN^}@ z+hxDwZJM7wtyD{7YJ4s%nwktwLm#aDo}(gyh3k^Cu1+7v`k!(NNc9t^kFV$79)|>M zI-MlEUXk$&z;U*hx*kV;KMiolZ`9I0uJpARpmXz2LOov$xN0Q!>U+TRs}ErHQuU!q z!^^vChRQ`F{;YhzULg<461R_QMeAyVju*cluBlC%YCf4OO8PyQDpPLU2K_WZLc2Cx zGf}#SAqnjjhnB+ zS~vT=*3W;so4k1#b?W2HFLbNLice7kYvWCGUQyBwdklRQc_>BEsFR}0;xLTj1@6}6 ztq&v;Uv~Q?1|8yD zODf?V+MUxlyULQ>>3jSp!BI8iu;HQGmltFN8?_C_kjveW%S{^yyC*tzXdSozO#vqF ziKei#(mme+gGB!@_p=lm6lNL$xfJ=s z9efB5NtYi$dj=oJ4Ya8KfdO6)**teDchex_lcIN6}e#@t2W#}1XHAes2Kj6rCZ;uOwlnu?|}sX-f!dH zhGTPG4aj9qa(~P=J3+n(Y_aRX>Yk%kfITfJv#Y-&_*O73JzvQpzn+5&20Q_B&#&(Y ze5n;mgHTN#zlix0y}BO}f@~rAwgNyAY=O9wMz&P^efRyY9W7#q1_ce-w+X&T<|9Wh z{~#eCKx>kDh7D+dtS|%+_)WxOAGBkAu_G$*61Ny>d~0L75jav5q@ut`Pw|SncO>%# z6TWR&O2lG!yWuix@9yC8l-m3Bknr>L%d7Y(0Q6coMwJKH5Q=DYFlIq@#FQC{^Vkwh z?7~_`?_Q*7f71}ga#3y=fl?Iuq7$4g%Dx-7zNh64k-g@Be(RFz zkh6W|l?~!_w-K*c6XVzLM${U@p;RYE@Ju(%G+L0yu$t?>2?+Y<%va`emCt~FDI9&3 zfZ&f^xGc-E1B3so1;Qm@ikCET=ssx3N2pk&?78P{vSr1@PPV5Wr1UKKJzLT}Sco*a zgWV>ffR+#AH!UHflTE`fB>SO43)Yf_NGps9pdP@@R}g?Dd#y5nK> zmw;hUeQ5p9s!So5*O5d^@?MZlzTvr|pL?ixp5~>t9W;Zgf8~ZFNB=O2VE8pAT`4<6b=e46qgpZU;+aCCZQGs zRgl*4YY^Y>*>M0%;J_j0I84W-%FmU!-+O(Y?8|yjUrZYotNlD!Aw?yK>O-up7Y{bf zsKrh!XJ0zUbnH!g4>&C{E?mE;I`Qv&Tp@oj>{ng)gXJ2*8?;Id5b(Ge2L5OT`?zrK zJf-}al5H_OSu!g}A)j$>lu3>faSxDwyyexTD3l>U(eQn1M&zo^C37GuvlH97O%Kw2 z(x7BveAN{zqL)|5bMhIEHgD`IHueh2AL9rJ+L@XtyQRJn!}3PiYsqgCE(x9*v{ zt8JN!`F-cr{bgXjTsqd}f?m~xT>j}n&0sKzw-KmQFgkTG4Hz?nxZ?%#Sbza*3%9H! z6QQC+?XRwCn)7$?BBjZVb6y*Wz&bAD+vRBOakr99_Hoolha7j)*n&f}U8s(3iO+|` zhT!(5IMk2=gBqy^Oiq5LtVEAP{G&eYWNoQNOYKiHZa z^`=RowbOKO5y92gJ+h8%4(WHoz}q^FwG$HMe?l!WC+W;c$|!BTL4Y!UcmKA%?0Gb> zk>Uq~%dH9YfJ-Sk3>^5h^lALrciJF*qtu9>>Z+<)!yBW8-lwyc>+WUWi-zU6rzNBO zfQaect3|i0t0V`77#)`{cke6vWhGEJSsRzO6u$d(U{H19kmyBHc5u6#QLfg25#etu zBP^)1FD3V3#x>d(;Za%FTS?qYJxsSZJR&@(~29haF5iPnk?!c`cx2@jPuM<%2MqzR9719TTxG?mF5H0qBA;|tdO)84@tNTd@Qh46ylVkPc#X)+CtqvsB zKdL6Wd)49z|5%T9dY;)AMh4@XF~@WTKlFP^$f0A#F~0uT(&jPURJw}dZ)sNcx;~8H z^BoQViyxR(ee5Fw+b6crDb?jue?sPYBQ@of>%=bFbL-TkJDiT-jfxxeF=WN_(s;Gb z!lbN|u6e0whuEaNEP9sV#zK;z&{rLAyU>uI|aAerfars zt%ceKI=k#sC-3*CCN5W-RT+XIo^2MlD+8Km9998VL<`sTe&3k$a4e zR0LrAjS0!0lY(1?dQ2p+%S%jU5JBLZ42rGeMuo ze^R{0i>qluv)6B`{MdT0y0Oi`*k3;+sEuIfr|jcDJIF+^lxrmNQ~3?o@Qd>`$@CgqQ0W3%kOgiOLkO=roa?^ zLc)L@eK(}6ycyli=3K20<;6}5NS3?bNu^_mJH_AmGze1x*nVTkR>GbjM5?iN!@-KesQsk)Yt!vL@nf3KY<@bnB z2YT5|DV6_xil}aSo)P{`4 z&bYlVb~{|KW#%2PHt!hjt=_Jr+_j08drl-T)ij=%e@rcQ`{W#L{CE;zTLu%w{<4_I z>7V@g?^ml)6R-zO%)AQu?kXmfaaRR2!6IJ^LLRB>z-Mx76^$|v78r%9EDk_n)oOb%_A;YQfaM~q;7nXi-CS^oFrrSsZ z%Gduj)%F(lalEE7%$whlBGuZc;*;42+NjzcLD+s=lq}kCLrOZF0+oB+ZthOkPt*&h z`7Nn&I9#Cj!`{>ZV&h(&!1NOIROST(VpniMXIA11u@McRCUakU8~^66_Voc;xZRe$LU3ei8po6Q2r(<2fIrc= zt*1k$;xAAWE_%<2&B|QEi?@4QaoGwm>(>OehYySycg&plGS>SrS6A*Kk4?C?&u7Va zg8x|PjHdF1P;x}n#@!AXVHpnezW1hdDxd1l>zpd zAD5akg`p%Xiu>qiLL68#>#QbBptF^U(BV%Mw1IxKj@SoshSi3Pz-BQWrc}}MZX~1Ck{DJ z3?cEobzvSD#Mkluz0&0cpTX15wl+vI*gzFN#ZrdZ;>*lxRPUS!Mo zypHwUh^ya0?Dt!PM$_L9++vmpM5>hD82Qo7Xf=XNxHZlC5|TO>8@xk7ta!B;{Y2-f=H zzE7M+X!KkBh0ey^m~9v7l|9#GyZ+lbb|B5sU~S_cp(RQi_3`gdD@jq4sbfiYg_fJ& ze>@Ec|M|2GR&VIlh zDa!@ZiaY)x#F+OKLXv$%^4h4dnAv-^#;VAH8UW&j$A>nw;%N|OgcWH02gXXiSq*cv zW3R6ecmg)t!K*Ng=Lukksdk{d5f?Y$a|kmdp{ndxbE2>A)TJ)1DKwVHh@opXpVBq& zJ((5QhWVyB*w+8KGr;z^Q8Ekj5*g?D=+j%^dW#1EV7!m%#-XI%nb63x1@Zf;hdzXUnFuf$Y})W*1`~_kk}tfYBnHTrd%POSQ|$w6vy2bY-Gq;r)t*$?R%8$qLPj5`|TI) z++3i{HY^sfA}*iVT;e){E=W&moy%~1G7Arr3aYpfrR=EXBT=cTgsI`X~` zjELY(qaf^Zvos7dJj@G=YP<|Xi#(U-UTk94@P^E7K5F)%g0eqM%q1Gm0X$=X6UeZ( z%)xr&z9~B>*3bB3snE{LFaO8}4Jv5fM3UHKR?DWjQ9Jux2g}M}MvSZN?d=#{#SLU9 zH=G4e3d`QA*!O7S+{sCz_IJP~uL~VR_rTu27@AT|zI*BY4hLAxO3mmz-7b&A4)z7dH?^u2JhIrhE9pO}`F{&|(9ZvPPR9exj3~60U zW9S=?NEWn;)JWb1v5zC;$UHj?#jR8>eu%|VV-B~`HMHj4;Z-?x_X!UxuOcUeAL>AI zuQL5=t)XMNvb^sN+0=0GZC)slTW-7mP`T**)KH1UjR!_G{KW|%4CmZfLuaE8bFhjJ z9Y3sS&^jx;%ueVf-mqr?+$X!L{IE}fl@lhAoFoD3w2ek<>Q9*u^}EpIHN=yd{V^Sr znva@(RQjd6+Ge%yJ^54Qwm*79!Y=-3QNY^S)R+BZZZx-pmf91ONWej7zf4JQ#BP1^ zg8@`Nu8`c2JD)ikQ=w`!^O6-zq{)ado+)|j@+70Opyri`l>oZ`Vw?VS*+qJyigBj6 z+0wKn?t1@wQc*z(tMUo*E&j!EfQKj;5FD?=AeR~CLo|W7L^>`r#0#x3O#a4pEd^B7 zE|iFah^NB*Xv$Q|ukPR%TzBQkd%uKt!_h(F;}(+-+@y|TEsDe)^<`~`&>0IUcLYBJ zM4A`D^Rl$oHIVY_(f=4@Q@?%-1CgjJz zB(U0v4PRQ#X(-dUDl6>{xLdD&cLdaLDd#|`Nfr4zG0MruUuvGrLSieAn!g0mo{XtWGOqRm5m9!hIc>=G7pBo=-e+PZYHSpggOb!D9@+Gu1Zc_h@jEqo%HVef-eFT1LZqJb%fZH@@!7yP@j-dA<4I%yWCIZN zD-+_+T!;?jwA0m32rA%_8y9Xlr02p`&E>Xg{W#QmVY~%qCg(&XVjU$|4BMmRC)Hp~ z+a29j2&m!>SVu=mx|x{x9Y<11zIK_L+`ZE--b)-UEZI_X9H{JP$=W)dM>N&bVt5F@ zQ_A$+*z0E`b($JCDv8muDaW%iYr8h7>}UB>#b2V$?<|VNHZY5xS3TGSPP2m+M3xJ& zW3`|fu}BtnhvfWiQ1x`>Z`v?Sj{!Ys(UKXH_|RLSZ8(2MDh<(2(GctMz<$3 zkY=^bl;3RnL|z;dbs6I=4^A>qFWnV$n90Mq+=SQ2tEM{mGx;kVGc3Lsl%@bvtTZ?g zDmOL&GDoIxP>Gm749P&L^)$P0wddO_{tCW^-U@r_m5HNp>^^bJ;VYr!Z#k@BbFPX7 zCd*lENyV1X9&jS>qmoHRu9@;9B-8%2T0@uA2i1s{#tsc6u9F(LZ$fl}aCvduIe*eh zsczS(xzwO_i=|*R$RMhmuA`&=fj3Bac3DD0Z|qAt2U`9M#Y4Ov)e3+NYk*X{u)4e3 z==W?q`UYLH$jmFZ+%CH;Wx=>Y&(Q6~Zyn<<9mOh>~{k_Q$-`l)qCkh>W`bjqHK z>Oq`zx@o8r~(5)jywqb_<%?sj75;fj^ioG{PS@Yu)c2xoTz zI%E-afE2YRxX&DezEF9;dqI7Hi)`eBeLZsl?`yKNy~b62tG9;zU?a!tdhfz9Pnait zZ{C5@Hd>0NZl#0UFS~hQJA5%)7vF*}zI9w?^iZG2XhJpxyXS8F17HGmvkj%Er7r;r1v z#^fHyY2*3XMQJ!j`!Cj+j%>Z$=O?!4XF#ZG2jO9V0O$6O()Kw8U&A*bAQcT`dNaiZ zyNr2yLjB0eJZOOfj^dCYDS!a({{J?ILtqYnR;WiwJ?Z}2a{#gnyt`%LvNzZWn1JCU zO#VC1f4)ZXk)aj=uoQ9ynDS}kpIO5HddxI!3?1}4rugDd4^SuIGWrGw0l_zK>|Tgc zlfX>KZ0_hiI5xx!P#^$V#|}757R6fFPS5sNwf+NS6TImRlTGWy5)Ll}(ZaDjc*yu$ zx-d+&|6erN3W=M#SsjLlr{ACf^Z8GWAuA^y|L24OeFCiZ9)0n5aZCL|V`$TS!w5WS z1OX!b7ry%!kb^|lS|7xUU8Dw0X%dNv%p6KYAtcGAQZh#;He3zATPu{ zz-}5EGuI9~B<#nz)Rq>`=&Dq8qvQy4?C{W)H#zF@uh}3N<|_I%Hw+hi2{U9_9eVck zL@R7f)I}{Ewea@sDn1T=4oAucLPfUpHI9$KO9*>@6^_Gviq^7Ctw^2w}Ja zQ3q159ygbpkXIDau9# z$fi7-37;Czg3w-p=)tio_N1u0j9tEr-~bBL!a($+T>f;+u&FF%lNZoNG0Xz<<(HZe z{m>g81+5va)svQ%GLFiaa}pv5WkbwEh;Pnw{IY7vP`Q)v7}9TCK!@qPFvk8sWmo9* zVq0M$k4)E3NLG;f=dgvcjWt&$a-ytH`Qb?!JRP6Fww7z!9dfh$8^PlqoOzs9bbdK{oF1lT>GI1_!>dv;{)0pVKxG9lT zo##zQwNH!9TwEl3!!eZ_hiS$|Lp%k(C(l|x(nog@hJ#I9qy%hojcTtac8siC?s*(A z1KDyqji2dD-xB3b))${Jd?hNn4R4VuO>?1`)lqH}cg!5r9afT~#Vp^7dB2Sk@p;jH z-Rs4;JKocfZw4`)WdLaqAZpMJg4)jm*Zhi*J321Rcgyzv43!!lgNvo6jaO6X{Xr)0 z9y^-yPu3g~v`l=^j6k#B64%~)KjfSM4F78D)KRarh7u}xC#&Ua^qPWkkrrzUXKh7^ ztm8*|7Y0V)dHxC1saV1`V(>vr zRwW2@iy$jXop#cVNg0G~Adxzm6h~IZx%VIpf>X+bjx2CXmVV-komb(e4E@3aw+l?3 zAW`8FhKwE2u!^tTcwIM#9917vmI!(wJ)d^}Of3%{@X!`9(F*o*vdYOdms`ZUcla1U ztrdg&+*i?ngEMlS3Gr%mK0Og}F{JO7Czv|~L?5Jxb6(sP{B;lFCLbeh%B7!%Cg(bj zjzRH|d&>U_-Tpc)rTfGh6tw(E$!r~nSIlU5Wzk^f~|fb8MafNupDWg^#) z9}bXtGeCSFY+@vW9UwWoB_w288*+)}4ojCH8j`mmT5GM>3H9*V_Q|&aLQ+z0yzJxW z4+X*zISzCN-nFz)f?i-~!yDOud@6bm#oO>&lFjR{LtEUAkGcoQb&kExKQsw_?Fjfj z#=3?=H2*WG6D>&HE&in_IwMFNtKg5vLI5JxrI!Vtpns`Qlqw_Lx$Y-Lh8L3h|S4YsJCX{DK9}0Q-I!qZ>|B7@0%bakQ)qm&s7t6 zVcSn^+~ANaKWPymK@{-0(z^Aeu04G>oqFY#L$?4;2+4OZ)N3*zrMG6<6rz~Gh@9}_ zfEmd+=GdMJFd_QCMGQX=lWi8SeUUrglr_4rBQ&4pfA+l}3=}N7idtG=(U$`%I)cd}r@U*ixk<4pz3!7mL09&w)yuYDz*?6%>$HxLlv24J*h$*B%S+Ol? zUR$E1Kv@^TL(}&B)cdyTyi#zVi-bPb{~Savgaw=15(amM7*`B}$x#06b|^YTfpatX zh!lw3TUM~LBryyjxewW`G2~mZo=W+M4~gs3u@vF9k73M?>xFy>ORw-1(y}5Xcq7XX z3&EYkW8U%+K<41O4`FeN;`6g@9P|SHGFl}cug|m+->IUi4aYn!C2?SMei;Gn1(jBL z%mfVFL}WT!chr=i)1FQYQ3$5reG9J?bja3(7^mskK8`=oiI;lv*W$pR1*@?SH*SA( zbPNM4`kIuyWw`Sd<<9x9qwyYugBRv5R{u;&dJRGqS9ih?WC~w$4^^Fhpn4puHKkmr z_HNkOY~c}7dP60+*=kJzb~j0)hN~Cyu@>ZrgKbpT0$So^{~ioC@g$!DFqm=*2cLiJ zOmWHPgQWyME(SpY%k81%^jjqk^%lm_N2jk);^Tp= zRAZJv>sTfsp`bJb^DOO7CXvk9?Dy_~lX!Vlu{S&Z(nkjQBkSuULQQGkG^UNw^yIK$ zu!EaJl!(m!h3%k~p^Pj8^lV1=`5XUd^=0{duy$?3?H4-NhyR$!ALW~u*6BRI!zbhD zA;fO>04&WedgAhz<{WwuoVSPbvct8d3BbW>zzMUFaI4Q2g;`1g8EpS3oWm3M@VbRc z9-5VP^cw})Hw0b}!7zwFo}#8jgb#ebJE&qw_!j|$z_$(N2DNSg_dN|lG|69i{jII_ z;)znaR@&VOQIv|!Kh53)qFD{2c%D?Hf^Z$a?o!hooad`|uub=$`YY z@~B{q*xnx$L;bwWb*KFGrf#&W7zp{2`0q$d9%P=DY=3wvPN!Slzr30~`32(+^7s+5 zZP9PzGV9Nw{UVxoQ!eky-(^AU;fhB+2_mo{JvS=tg@{Ri))i$d$dq2iD{0mSsaZTV zfq8ucV)H_RfkGHv;h6JR;EW;{Vr-kU(vy4AGzeNi7b(uX0E$Tw=g0g;bkb7(^9T?K zr^1AI{abZg5iDsdQpjcD8N?J+8NftQ(ITjO;qW0c;y$aAFN?XmU31;obP`NaPzIWu zLmmd^4x3s~hs-UrR2B=r(g+>qhy9~k!laS7>|r68x(H19qH)35PhsK6^Ln_gf`4cd z$TH>`g0|?p3|7DOdqD6EjyU`JBVQeZ@u5i2fcK!Ik%oFnvmTqa z)IU7!`2a$BFc39RSG3_|fA7Lo3PLVIR*5`&VMAV2AidE+g-fRp#bqC`l?zr3-XPDK z{h;ABJ7Oj@dB^6KMhbW!-<3)OQ}e@%&BFVBM{(Bc;qb;$D=*EpS98YdY<_{wM)^ds z^(xB0NXIji!spsq^nOkYz_y#kM_7$+jx3%2C$57AF)RY}PO?_dz6KZEF&^i4i@66~ zprM*cvrzgCcXOr88+az`Cx!w2a(^Q8cCJM8ilvSrX%bhKRcIy&^{;-9pDkn_FJ>s> zzIvdYZHV)=1DjI>xQuu|qtC1$*z7?TD&o^C^H+2un>zQe=RJm868ux>Bj^>}EiU~6 z2f0NGr9J;n$Ds6N_+wYcvBc5k)#fi$RG0*ole_kUpJ>fWXR2CliRU~A&k6I0j z46^UPgUk(|`C$d|INeCOwCa2OA~bKDVR>MdJ3O5@?`3z4a-*@6AHDE(NB^4qiMZPm3trmr<%`qnDHP_R=Dz5j^?Ec8& z2F9`O&uR%0f$4?ZKo@0^+X-9iwNfx-;>7(&82vFG6)wx~|2?3)j_q4t86_{FKGKfZ3C(;n+1x%+^!> zeeCUVrO-V`?@~Pt$V&f$08Ge;+bpgt>o|%QBrnH?7oR|!(I7eWC(<`#J|e0{kE>XX zUu@K6kkkvZYJ}Q56@6k=z@Y-^@^4unD$E{?v{$X4_kgplp@}bb*U)?Y{&MK63oriL zT2ZMSCN5?%d2a5vYfHa8>lgHYGAO}Y;AUR*z0H;FlOs$13^KLH(PBm90kKTeFR#QC zNNU7yuSRmu$3?cYc0|FU8#`u-Pa(TiS!iQ{0_J~h%WrISAU!^4jMEd2?ptoN3 z1D**B({+p1-oi@j3QbqH{@E7#8+(=E0!FtdJY4nG()S*_O`m7#^}VX{MH~t>&sV@( zX~Kh;^e&cKN}qh3EIe5y^E8_EA>S&ODbe$eP@~Tt-dYGN-tV$*%gZ3m=DQT_CYe?kd4VF1exO-xMo zq~l)KDvPzJr2Fh#6)YX4}0Q?T@#s7S7{{Otk@ptfl zE@FK5|F3!Xgm?fo`A{Pp?W^fI42ILe!zDaIZ8V$K5YOko6cQgftZopsKz`TKi~?_CDl0bR2S* zVm&!w1Zfj<^X0>^e7TK0u*#KP9$4p4#-I~*c;>AZQzgCwZiKJ@-ipV!6;jXgx760e zQA(D5L44~)px1z$zXvh0dWBS8ge|&a+qs0K2Dy;Zz{hZ`;otH$lB_#B&2o{XP*sYF z?-trC?t2Qa^Jk<73B#uP@@FKcPSQvQo6xhCh?hIZX_UT`)CPAN9*MT32~*UV-2i;I zdp}K`g)bhU7y>+6ng#W=VvY$}Lp)bSep+XXBNtjoj1+z5U@vw?|ETmU``jgOPZITg zc9h3p{rEnFClc^w{o(Te*^SrG2jO$;@HrqE%gv7|1Z*9Sdf=w#{Se{=up~050KR=> zC*E!xf5m+J*x&af+5-O5DzwOmDztS?WWj0gs03s%-}L&=Z#iA7BT#~Ja`1_kAp{5| z{%Y|>414+G=5c`X1=Wh4nZnlNr#WUPM}Km+`2&`JP6W7d!NBS&xj404_U+AO54Y)T z63jPj;9mXEq{OS$!XIAJpJmEtQUbqP_W7+~{WjR#zaNyU%%$kth~#=cf--IGCavvk zIHsX1Ll?HGu`%PIf{(%huAV#3%g1Tm$Rvm(kb4dl`A1r6S?Z$OZDw`gEhqOTRO}x& zR&q}tYTk7{yAiK|&gT5lZ!VsWo9+*{e+t&lj0r~$-EH!)#e6=Eo)FT^denrp)2mjG z44YcZmh6|isX>@K^YYgNKw||;xKTBuqro+=3r9cZIULoFGI$bu$jDc%78ZXmhW^GT z3xlT0o*5v?eS`+rL7wRq+W^6nYQwROx{MBV2LoSleH; zeY3#b(9Mka;OThzNaz=_{FzS-H6+?<6q|W|P@a@mtQwTsEEKOFkUlJPzIZkANxzA) zK^%8cjG7KgK-J{salt^M!RadPrh&D5tX~2)Qx)8W+r+MajciSKAcQI^Te8#Qb~5;F zDif=bLKnj}l+7E{?2m@B+kL+!#Jgw_mgGL{ko`Q>3cjJy% zXlJ$ewxYz9tCxtH)IRWxb%So=^*S2g=Q&?fPsVMEol z@`H)`uOXM3JJ1-t!9q{Lq+5yEi-4jAD2JRde<7mr-QyhX8=%B7F&^)iLEv$+-|uEp z2bHuRQR%73`(PfpEXk-)pbV1>k3+Ytv`RXjSGQ0#mH~cl1);~=620{BIhJ3)CfkN2 z+O#CPOM4_gFx{U$#iq}#A1ZVXy+3zdpw8A@R%!({Ck$W$3YZ!x0OhO9%m zgz8zh7w;=)WXLu*mL7{(!i#0zGteRsBaDjH!Pmu<7BizL5&j$QS*6}nC2i^+)!j(f zPyCd<>X9cco$*R4nF!|Gt80u1W`K`k=t1hg9zu@GQ;2IzeK#pxX2#EI>dXQL`AFV& zB^}8Gl8U}Tw?9JGuOMNXuSX8K;M;>5cMa1=yV!?4(Vwrks8>qgmMt!4teRDaXiGSQ zIS>mr9?N+#4}7G#U~fD1t|E5>nuFk464w+d&cgH@HVG0aK2?47y}R&Btn*EUW0Ixg zn~6&Fj~i#_4J{ebCXS@plBpCK4pS6twb=c_@br4q>&-|vk*%oI7fc|Qj}40EzMDs4 zVz<`V+-0n`iWZn+^mo4h(2u?`aHD$X3p(0oHPy_8Mvf^zx8aroV(lAE;%WN_Khg7# zbhL=^0-p8J)93#7K1Z&EfOXzTCE8m_%U@4J3$k{L0#nCryXv}S)zr>fFhbC{!v|`$ z`_HO?JCqa^1B42~lJ0*ZnNtr3%YBX=T$-#!X}Su{6TzicEN+mW$d%B$qtxQG06M*Gc(b(m1ywn)CASz&bayzXVs!vn1m@BIAE;mUj|9NT_>xD^`FOzy4p< z+_j%&wL&tbRq%KH)k(HEZG<`{W_0s?>)MhDi<_OCF*8>BrpKxpBtP%lf(}kEhjCeMNGc1*uJrddWgIgK02dU zFS*x~e;bxuwQ3~`xRw`%VcU8!Vbd=uug8{l_`S?QdL_HJMmxy#TbaiMUHf?Rw-AzY z!L`nTRLbdgxk!WQJf{->Y^v4fYvk&ct*R|^2^zL;*^*vL*>@dbj3p;aGRR|(+yqwH z2A~XzKydjBWgma!8r2MyjNx_yspn8Z=K*(lc^m-JkfJQ$*Lz)7t)f zDRfalX*-m^dfxi6G@|eJR>P<~-3|gk58$`@0}f%}y0i=c>h<+9Vl5w1p+$Vu{3Im^ zZsUx32NQ>k^u3hNvrqIWjd~{No3Wj+&f7)+WbCgOx(GS^*#{EpKeo^9`~(Vkq^kj` z>LiWiqSDUY^BoS3Tk>3}<^7QGr1PMg_L{3n1xCrY)I#p54z1LJE6ONVay9j{DLhfF5 zAnGP%M`t~z+d7`kH5b%#(D)l2Eo8PuyQ--O+0E}%q&|4!5bYKS-Kds(ZdarjmfoWf zIioPu{}ZU!gTYDVb!ImvFRKTlS1ryQ5+;!Uzs8FsF{lmz% z#k5W~+*4Bg#UOhZW~w$yw687rWoTsb`d=C7gS75J5gRln5S?=(rB{W$j3%XT`JVAY zuP}TaTiWdO(k%|y`Dn(q>maQF&4h7znzLbd1$9WMAw{M!YfjbgG-sDU=rsdrzl!i5I$$zUqA!Cv z)e#O?$XyLp?^LU067oGM;+hY&3X4elqey>M=FiW5#FQ$mI4jR;DE$IT{kRyNeG)Q7fsVqnqSXi^ z)SS~Ro}y5Uh=9>0>|;$mndfhJ%AdtZG){_jVxJd<=FsqO_c=Ae9v)V$F&Oj3D=E*5 zBv0<{o7Zj^`#SDOXB>~o!`xMCOR_pYQhE9mwT7jqrB3;Ms9|uliyRtbQ;C`~(ck?p z3~!~=^lSr?g+4J>HGYt2Jsv42jCEz0yWuw;W!O4YJP&2K9+srwV|EMC+|xOM$z&tM zZz-U1-zcr$d8f_*-rPNEFY*mlfE|srq^84T6!6^nF6=LNt}!v^YMkwrhi+eh;QeLY zR6SDkf>FI<8}6D#SO=54Uwag9zCK9nx}MA+pZz%;+?TJF5Z;;Xdj=4QBSxob%f1gr zDHBEMIsYqHIV_!p+Gb>A=K3xTBUB9gsm*Sr>d8pNE1xAXKByU6Jty;LkD(KCz0r7w zSsA;z?-56I*|kY}KOd2t{8@S)*d!~86Mr^H>|Ch1@Bck2wQ_p7iz@ZW=nwXfAG{{b zZXR$UZnNNGJ>=L9V{t$&P=}rGNBTPK=AF+nYBdON!24fY*iiQ`cqsb_sU*EDsV%kc zCNZM$U0Cm|>$T^5z45qA!(gY@&)+`Bwn|(QCJl%cAY3AbvS`wEzcJcD-K{Qjy)SWc zc881AV=w|Qb#$2!##Z3i^Q(pVoG?TfgUg7XHno<0y(tF7oLlebiA73y4!ZHOead}R zPmz6lMDRzqd^ zHwHepam)Drb~m|Cn4$-9d4qJsoX931^lHCKF~iI>Lef|;peW*57C~zbP?z~6dsSra ze2b4{wdr{|C6i!glObd!K&&l!tbh0Y+i5z=N953qMvj|BmejXmRHr3j8&BlspJq1n z;Ly`iw-jQArl0HW8Awu*@VT?Q?&F0j4JgF7D}t$=4t4KyW7cH-=ei*uRyQ-Z^*d4k zy!}_}ma8ns#h>189kE<|wRm8~n6@oS*V}x8+j^zt>O0y0leh_tDF7#&CI1|`+A5yD zeeUky=IeyDBxe&n3`-9#-;*_vUUh7p!MZnlluXAs1hWmi6y8idYb|^Ir~wvhc|soa z{uKrh+G|}q8vq)P-A${AjIYmuerlH9POV)p=mf1eCsWNZ<821u#RJ@8wN>tNWTM6z z`KlXbGh=&J#PN3kON$*@^v3GxmA!n2pHKTzaw@EU{cHnY+|D26KX39XHxCJb!VJ2t z3=Z#qo>$J#?lf`Di~*6n0#Y6UuYpT$5Zs$cE)8(?_=SNhdiELzj=Q|&GH!}}#FQ(C z6f4VHgke5^-CSM&)_xV~pnmVs%WgtoJ_drYP{AvIhi@+kS0#)Yt%4ft<%5g1_p4NI zs@9JtXla2I(iK^iFDq5ti++thMx{x8o*x**=({okM@|8EDzzm5*P zYY30J;NeibKjQD7|2LEb=>C5@#{bEq^1mQ4Sb=b`M{Kv;ZD33|RwjJPTCW5wM+{KT zmmK8|n|4$AT6tIJO5`=Xe`FD;BAA_39QX1%;Ck7nN0=0KOa(GUTPP}basg-^AfxWW z9M#=Uu#z_kf!-V_Jk>InAwbW-xnw{jzFtM*8v$9GQ#!Pf09FI^ScX24_OZW0gO~z5 z4%u^0ko8R7f?!0rVK>kg-=hG`ni3-qu&y-l!XqG2i}mY0$lxJ)Ht4@1U*K3xQdI2G z$yc4#FI-_$jv>icIdDP&C(VYP|DzMr*{e`hzz|RXJmybU=l64IT|{qyfQ%W7YW**% zg*$Z-iC$5iz#@P<#u#Er$@FjQUDJ37_*Vf9!lekV-a7O|b2w|ElAo9gU^Jk&C&*k^ z57;@d*0V4SOyYNkGEj0=N00^?Yc%_XahxK>9_W!2H3wArG*Yxdu95)j4e0G{lwVV1e`pDtcQY)Ff}r>bw*s@bAJF-tsv@Z~)aO$WRMUigr)) zxVC{ehUnPqP4o;MZlUcyO9NdoyHMg8fz@U3Sz-C;h^s`v)F;)BPn(4d5sbw6q4dZ^ z`$h>#QG)cK5RGU{`K%KMa6Oh-&xF;_*VJ9J{*@BYDhv|`L=3Sl9|P1ey$fq^72Est zYt6?$UlnZL+|+pmAR)j9{IH109NU++!2HAE0n9C*?z;YmD?g!IgyZgs~ou&gPa zE;=f*zx$(!Jl<9NI`h{60#YP_!2r^k{(nF-|Ce(LJc>V}f0+({ME`Yi;y?TUeNORx z;ql@B9Ql7w@qhPx{x9eBe@114$sTEgr^)ik+!R)&WlJ#rnY=COv>j=+}LxC@Lt2vYNBo|?g zzqpIBm6K9y30N=r?jxY4Du91uyhkhRK(7gX>s?7g@?jk(o{0SCd2fMQRF-?v!fu^| z`vKhtGcs;TZNP*ME?zo026&!c;CgUt?EE^XM?O)t*8tvH(J+%5JjkB?Z9B~F8nho- zAx=zfSy@?so?5)R#VR~MVBQw|z->Vg(HD^+Vd4JCZO>{XMU{V^?xOA__Ov?0R_mb$VQIsr zCVX>!#vmhJ`MMC_iqVqS@ft_>+^jYiiYHHA3va~d{hDM|JM3;jcxo+NIFLdq0mK}L zn_3yZ9BXd4!GM5*W($l>Mb7zX5z`Tifi1!9>`2_73tXO^jmeq{Uf7!9F;HU(cK>EC z9;48EA=FlT@53-62CmKfvj}@q0QJ?plU*@@A&85vppWxdf6=oKDJ=4V^s{W@)L^k0GN}}cFy1kUuR`7ho%uo-y z)C!X85G+wqf1Z(V-#t}B3kqmnjYwzm_(+3TQMSoSvOC2KxfPa_wIl%#|M(vWnEOfm zMrHY6>rw-lQ@yp%X0O3Hlm;Ywkk(#d8d~e+9S(LQw6tIrt6~)vFPt0Ot6}_IVOrg9 zq{`ht{w)JY-_ZlIdc98EKYCWegtOb?$vxeRB6mDUQB1%~fVGMY<&%19P`>fb2ZH;} zP7tYcmVi3in@2$xoT{<8Jnxi~nTyjcglT|W)mX&vVlu6bh)w_U#$Bc9g!l~WVY5(y zTdywS6Xe$IA`r!z+AJ}+m~BtyW%h1^j?6&ppzM?i?hk(>f28V}k!{>!@ZoNc=ZsI9 zhK2ht^2v`@LMhG%pEzG+*)T#l8=oFTYHIR_a~O%Hw&c?zI2pdTU!e00Y17^UwUc_J zSmqrva~|vOk&K4Tt+>Su-qiQ{?d5)!?C5Z5D-h%*lpPchn1l?kPOW+9zt>y;R3};Q zmQDXK8=re(V6+Da zmv#N3PnOQT9#V*vv$%4l)>Z7*`_{DA!)o2>=SXYe19k`yZ^~Txw`PyB21ccBifDMl24a4lc=jRSu><^pn8#R3% zcTTWv`XGdDT|2cff1hMHb8ifWTYv*W%JfCnkIB213*d7J*-d0`e6Ya(y8DzadJMGJrvo$uZx*d{VS}4oYje2_E6`6_4_Nmhi)&g}NRuG0) zd-a-Y_X|dhb&j)G*W%MsUhPB#YCwb!VAKOFo<(R-@^S9Zhjcng_vkv=#J{sY+mfY~ zc?hHC?xMEUoJ4_YpP}!1 zN8xz|kP;9n>4f&x*1VZ8`kEZYx9Ji@xHXlqi8{~cv%$e$r$+D1~opS#Yb=L&;R!!l1tf*f%Q(<+{X#KQ{ zjP+!AoYd<_+16x;hbvGd(&21VMC_Shmx!vyE>9-Os5k6dDO?gzoXi1|iDXAaO zHCyST+`RmpFd4sljA2u^3+n@i<>-_<&Qf^{ts9NxE#8+xH-xI$7}(XVjRkn7Fb^J> zVn0jyq}qAp`Lz~UQks8e&oMerGf^nNS)GD`3MkZ~iH)pl%+j-T1@mud`uA^+2D_f} zQ__FOolG_Z#hw?_TsV^Zt62)uQ^VhIGt1F zzTQ9=6ExCJBKP|DS>?!s(^3)Dzlx{wNfL42hw0ZU&G{mKbZ*=b&{g1;OI5VEI=wHW&dUa`G14mi~Q@Pwgj;4!GQEp-4mGDs8o5-9k>0$bA9cY>eA9P(E;}8g{z^?H`)xgj)G?ufH0slPfhPSv}Y?wpE0vR^7bmx!A z^pw1k$4<9?1XGHlN+yaE^GrLV9jK>H#)(tB;5Y!lpG7Obl6GcdA{G)>Tq`$9)OMcu zX1r1Vb*HcF&3fV)hSnFQP9y}6E0q^U)cRF?9Zx(?feVp>DFf?e(YB?`!Ocmzy90-g znMhl!)LHY&#%BoXVL`9ookQgZ&ke4%aq9Ycs$~2BI)Mz3M%OD?lb!mLGDycKrhl3Z zVmmF&Mx6M4UFj4t=}5&THvh5V@-dy-sQ9;>R7}b1{s8TTu&X=ojxI@<%Y7l)_gSOl zJrZxdd_&d!eL9*a{S|(?)3}n3bHwAt_;zjM5YZMB|ITN4`*0CJr1mjH{G-$2C^49* zCoAd^)?u;oYZ`{}Z;lAb@j^)6&i4R_e{H(S>$%%Kd&}l#L}qqlb$W8h1-R_U-sWK| zgG;xQ?apF9SV5}CK9a0RKVxYTC}p3+x5(1ta^p0}O{Iw=nMfOX55`wT)CJgy?VpXU zXu+V(UYqnr;;I$u729qDGB#cSU+j?Y44;-pg~?M3m8^Bk=1SEx;D0lMEov5*US3t5 zxkpV851{A1TBJcaZs8mm-Wf+68M61tq_2GcMj}er^@DjOITp`URa9!TL$;rN>$0sU zboM6+PX;HPqljwNvWk%Hm=H(M&Q;hj@c0;@t~58!8J~s1j#AV*Sk1`nii| zqv2h8%&<=;kGKm19ex}s6%5flU(^z;$ISsK%-`o5b;wV0x@ZU=o;RevpU;#h)zNV{ zD9#}BV$$|;B{zcF^pMB)2eu6yOP|{(&=#Lp0cI@sS-@B%RN#54ow5F>?b}W`TDFCtVA!1F#$Sg zJLJiHn7h%{g1)PqU^#onyZW710C9!#R78X2xwtfI-lTRs~nsGVwt9U5tU($p4~WO04HVEQj;BOS<%%iLNLkLS#VRn0*x~? zT$)I2ymNL#DAMTJb=}h@J3xv|ybYbj#@#^XhhB)_VMo0WCCC&pDGHs<@%?ci4VP~c zY+@tDgE#*D7wRmhSk9Njl9fd2x-e;n9uK%em5OB6C$nRAfP?34X;tRd%%K<2ZRnox0!8{cM z!iU6BK?hd+TwoTx_m~E0dBt(RH`O9SJ$t<41yO|+iyFC^EqPrh;#4Y-Q3i<^wuYv* z1mat*y3_Ho%?1cJF9}i%R3nGM+JZ(Zmg`F$VhYmkn-%k(IG>Ao`M*$H0 z@(ZB(GKxBICuazJLBk{v4nV3lgXoekVqQeialnlw%f~0A$7>p1ZWLIw3h{4&7E|rI zyMjY!S(fV+pE!r1!|rXmz(=WF)I?y^o1%Gy+VB2y$6IYu+zztOlTGLZx5%f()az&v zKq)*KHsTnC9)j(p@VFA~=U)P}3hFyAH@{ZN0`pZ?H<*@)$S;1u@Y#z=&VqOzn3+$) zr`+m?2Hb0H_l*P+{)pI$kEBS>bjt-l9TdJBY%PAv1oiB4w3&+}%hv2id?Fs|z-}~z z!v6a{|KhjHpt5Mx@JWcMCDH`7jQm#LlroZ8P0th5)TqAj>=?rc^l%H17^KW+^$x5K z!mHr=My(GJshuUi`cp4J(hPjk06sUphw^Z`S{&*ja9p1$|lgqOi%F{YbN649P1Mm!V+-V zOGJ=Mf1pbwlxrr93#Ccu!NI={Ckur_^r#BUIXxTE0>Sw%?l$og7;+DH4m&u>)5wv5 z4PQPlU*mINjGHZYuHxcEJ;z(@YAY3T*c<`mI`Hw{`#h!0onLulmp0hq5|f1~4_nDb zSHy8_iSRo3@Fc+EAYW+b0Vx-uZH1g^o<&8NakAT1wHu7uw}1!Vbv&UOf+L@3SsMfo z%+b98_-)`iDMI7mD0__;)n zjYyU0tqpe&QI8BkQdkgdh^hf zh~ty6K!~UM-gjz^V2Bg14(^w5qiJJL;#Z8LWXPZJW<+aS;G2KUH%|sF*EIam&uJ8! z2RMcwyTb&j(iRq<0Kfw}J4ZRA>Nh`gPxQpnsB&m->`>NSReDq?F$ej;`6`IFGFF{Q zVMwTJv+uhn1*5L8V(e$v8js6#&2P8Zikc9kHO$l)>0$oRsOs<=-#5bi4GSD-Yms!9 zo1j-*SNmG?M|J2h#`5L9zHyU5dmXh-V2e`bPUUcl-GGBP8 z=eRy~afUNWdeKcyS=WX>tXxKGPtPT4tz%hzfd7S)O}pq*mK2lSTa*?gP#|3xgzpeh zN8nID+ll2g>slqj?+p^00JWoQz8^l8d6B`m=))Bjgv-gRs0_Nfl;cTt_OvKa6Uh}= zL}yjAkVn?&!8HE#N?0v4+`)?ub(MM&1%ZQ84VX!ms*S&m-y1!x$CBYQE_LTEG)(1O z<&iv3ltnAjl$b6$Bv#eW8MjXo<2p@@nP;QD9i0|FU<$l-AgHKw2}7Tl^T1vpV##q5 zaaY-&lzS*d+IiMG{w!;rb80V8wnuu+E$D$@jiTS}p%z=Bu?BP>V?Rl!>Ra0)R|#ry>q+p@7qQr#Gd3YRE}moO@PnM zJGyn0-R89 zKQ0b%Ht2}_psXBv$LV;PCT+#56t^f z+wG?OG@bli3(DH)oZ#VD&U%zx#`l4OEJ|eWD!@H8zH5)Vtoz&5Fr7$U^7a;4Rip;D ztOfuTrczKNU&3!5BmoC-e?c5$UQdZfr{q-%gcvx?gmnk`#*xcyil1~(%2O@%DJU0v ziN^5=0LQG(xsvPDNc@K=BGg8w>8@d4%Y1=84$7|!10RWi>%7%b zLQydR>2V?bRkuRVZHr}NZU32pbFCYZGR+~4%e4d7F%47dT1Pjhfz^VM=G(MZ`a=PS z2aRfON90PFE)j#r0&WE}2L~+1-+1d6s-A#6P zOFznR^zfYfpLgHjl2o=MM{c~iGrp+(jtP&UaCAE$d+5(`i&|7M$uQN$%xQ^+^VoWA z&^aLkurv?$2{+b`RZIQB~qChrS!<_&&LtMm~E(awYDSK8TI?ls0KsHaXXV! zC4t@e+1W_uv1u#p!$b1>t}?;a?qK-8(C0r*;s53N&i~VW{sS}q57zjmnO_mS8#fpDRJ=AK~+1k9m z_C8H87V@eU|BJ=pWCr)`1XQHiIww6d&tCp?bJTlCe^)7PaBnaONM7&=v<# zUe{@zPm{D94H%1IzLoCUd5pT%3B9Ss%)bUHm2CIg z$-x!zVVcthtU-f4Wsg-^=`Kru-?2zg!o}2FY~dXq!3J;Cy_+j99ap~&W>3e5FKw!t zE1jR?-?sVwzGM8)aF0wTxjKra5zMb93-6L=WZ#3sh5zXgwqKAE&I9_{o$DVpgf9~9 z)h217tT9w@O79uVa@*3bm}8X%vfs;vy>WFcnzFzyod}tDL094I8%g(IGyJ0O=MUlANfMUp z>=B==)0XSaS8Q-{*^-wZD{JHMKs?4}B*`ZCFcEoJA_Cfhg(?WM5<*P7->Oaq86K$5 zhHI3c4I?CH>dtMKChJfNA)YVC?q}*sB-*?0Xia8k?r^QFzrImy?r%_=`;1hnf6$C9 z5RU`6P=3FW{@<<-2y`SWR|3$N6_CWbs*BjP)fsVd|BiLKzhhbDU&fV}(O?Lm(63v_ z>1^4+@L{}Ttq@tap~C&J#0%{E#(CQZQB@$z0~Pmoq41CkqQg7Umlmx)IL=n!orpb1 zp{6TlbwNf31OR=5@T>2J34ijS+Ex)hv6BP{z<6n|qG1`&g}hY72p6|YNoah*{0&`R zd_&w&lfKc=HaFBQJtuw7-=xJwdpTj!td|_1*9z`mOI{?vU6sLO=5IiSP<*u(M+5Ii zneA_#LuQj^59-k8&FBV~YdKhsF|2Lq%a^3leeb|e%M_t%cPm4PP%-IIoPBK~UTTVn z3_ooiQqB3Yq7zaM@^$Ji2R=UF#=np3ty!kj3^WlXcIHGAuu2u3u1jnqyNRW=@+VE` zc%9R0Odi|phkO_sh=J>lVq5p+-^{+JUR(kcx1gYr;{hGmoXZ>{b1FzvgaGU|l;8yO z<;R5AZhT=@yd`b#?aQ&~LZKyB)a^eP zuYk$5huFhGnGTptSHHr36w~0FX$C}DE|MWwt|PmSlZWG|E<4_l^ZUTG-Yi7`JNG;~vd z`|N2n@TXIpaXK4}%J z1KsN5;?nYWD0gTisDeC6;P;#e!0uPwfhuv654hVza;RH z1pZZ?xRuOX8>KGYuE@vu(Y$OY&jAndqaFsUy3^}6+wqa!d<6OUu584#ue#`Wh?*2K zZBy9zv7=Fg4|wQ2lF4u;pCse7D;%1B?p-r)BU+}^`J{cm?yg&F43NKS{G}&Jp4l}s z@FtzxmQup{Bk{W~CT|;=vK}`AMZAkJ0r$1+K}I-Nv6q*E5>-~YC;XDJI%MFTm^B{doqDv0899WriV?=71jXRXBho z-oDbO#&UiO^)v=q#xFdbp&U(}@BWoARbW$3HJ;qtHSW(8`dJO?pq1gs@2R#|t^AQ& z(g>l}n&e84DRv8>PPyQ^dIi+P=LKJ^u#eJptUXzFRfWIfM;<@PpG+ci`8Jbujzsum zW=>RTk6RK&XGJ_wOlo;m@Ffdc%ur@P+?MS7i_pXK%d4ABSYiO*hwY8W9FEr6iigfX zcW>l|K#hDQ=~=-lJN^!ak`5IyP@LtG%w9N&EU#H0hEf$hM*O7n0yDpJ)Nku2Jrf&s z;2m-ht`sdbAGhV4!`Lt8;SQ8;%J;K6wn?L8$3ON0gg&PUbV_SCLiDW(HjeQ3IMjJo+Q$G}378UX`4 zt1~A(-K7$KwQE{|9>kcZldoLBa_$W}3B6zuIyKXvD~{OjMP05wJKQtE#|xcJe4^!= z#SGWET#n(Qa~9#YZNd9Q8)bV53I4(vJ<{q|kkpOlZ$Ey8Du^}9+=-L&Qb=k`PVRX+ zWE=Eo<(bs#AozP+e2*X8pH~<5sirYxqSz z^Ps>@hMOF2=C@;O33AjVRL!0w#&-<5Pp-oV<2Q=R<3egM6;;z=_rmuID15EidcNgA zG}4sIS^f8UFW?*RoTsznrCo~s$eH-(3(%m{{5z?@i0=OG{EI#$ErL_NRTF5sP2E3L zeHJz`@Hxn0OiPrH6d5OV$!^i?uS|wCNHf5Jsaq*z_#HxU z^mW3l`lng;h=U)VOV=Z4y1_86M_L~pR|*Qv|8fa(jC$S&L@l#+{k{Y-JJbf9z-7{9 zllkM*mO%80-$zDx9qT7S*+Z6Po`)<@kw#b2Em2pD?ci;#VYPc{lse#2jzP%hpK`A|5c30M*7 zR5f}yB?CLWlhD-V!j9}T$&&QY702Jx+)Mh! z2z2k(a=Q+H$-Mi=?p7@$fvrs@R@=c7(jf3ZaEoPpwY=ow#xl1ob-cp<3X*+FAKg^? z1jc7^=tvDhyB2d3qjUYdpWt&lCY67&HM-Fcyr7SgI}T&aTRZg(uy_MS~=6f%)OH#{(>w&xnve?;nq6fTeW9up@$#Dtr9fYna0FTS)Vk z28dA<;Zr+6_XGE?ALsS!@CGha%-H?1UFGtaxI+wCz-QCd7LrQLP=>p z%F)L|@T+P=WcSOMXZJ@O?dV<+mT9|@mQ{i$0u|PE;Mjv|gFNtojz1{(+ePb; zCM^dx)<~2yQzX&DsjqJOA5PGvNHW4H@zqse&UAz*X(P-g2AH3;k+&?bjAcTj^ zi(Jw?RjjgF<(?>t@*@(5W6ZBPkmn0M@|#OT@7kru;PB?OmTYUW!@=Jv_7qak69KY= zA>XU^p^6J3bG}Qg2+qeYP0K%pqt1_2x!D-tvA-(!U92PNX=NbD!MH6nL>O2D)*nqW zQ@i#CKKDB50P;GGtYsgS%0{Yb{@k)EGfmm$KXBtvgDE?#(oaf~<)$iv#IU5RZd{T& zc01I9T4|eSmgv4S8(fV%KxEDD>FrBd*?4ldRy(186JI#i(My(wSiw-wk3hpn4go#B zwC#%C*tqtYLTQX;-it0{k4%vwpxAbAZCDuUg4=2aHSM+^*J{wi36T_xa6RpS=%r-b zqZh@;bB-T=`xKBiAzRK$vYFv-1x>GU&vkK*`eHO8*hd2?9QdNSAC!EI_=1=Nso^?EOQ@xIe%0(KIdT(3?q;X}%obi{7`|SC0`l3Q1YB3iT9o4}*HP$pioR(z zYKGK3nHioxB)suna9(e^R)rjF&@|p>wiFVAMxK2BzVxa)_e|utE*gBAkF_UJ z`Gl7fRA{zguDO^a*Fl??|EKi^LytDsRA>B3a3J`zOtsmn4eJnBc<$rl&1pL}WHTp9CZ? zdnNbN>y-8lJUG=#?AJ_5?$-(taN=3WYM(4D7&0p{d;PP*yrG!KaTIZ`dWcWs!mi?% ztJ+*fvh=07compHJ6=G#Zs&JU-t6B?Ap{S8eOe8jPfi)(o@>$eDLeW^pust4xmKC}&W=@aIM-M*LHbQL)KVU1^alNq)9srIh$Q`sgCTzk z$8NQvw)ZZ!nshQW-ZI)cuFhjvndrvMk(hEWh{fMk&i9<)SLa^tx304@e)qA3=sNP~ z`4lSHs$#TWZ(hoW4Wu%NcXklcCNoNHcfcewLA4S%#J7_cC(G(Nj?IbDd3VK+o&tb2 zBf#!~^uz79LGjlRCqCB`jrZl_fvgo;ELRWfRETMs_>5i4efOgl`-96g=z88coiJ-= zxcSN<>uE%s5^g^$^SnF^`X?)hlv(MXfW#Xj$^rMpSM@0{pABRBpsWhJ6^^N!fiT`w zoRFsg&FV08jW)0T7reBY{PCqaavv?KdXR&VXv}R(p5oHTI-hXmGZ_)hdpV${w~d%> zm@#Y)QM5Kwp0Qyds8viD-0UH#F065ORMXBZP6S2`DCFF)??a`)vigQ31hje(ui*Fv zL?X>SIobB*7tE(k zYfzto$CY#DVij!G@7l2OHDTBo^j6~-17Dsvc(5<;k3m&%D#z4#X~K!0QUKOowLg0< zT@%kCrl%^O98m68d9HGqML0v`k_W+M@1N_xTJxuQoF`*A>pMbu>SS8{)yic}10mML zxvLJ)LrOWanHrMf1c*o(T3=!D#(k=-p{VH4h4p~3-KDJIbc#2BVCZ!E1?D}!s`<~O zSty-=N2!#Vn%QnRn;(?8}+BzCv=m7B|_aIVa)D3`YyM!iN}Up_ZG9w8BNb%MF+4o=MIt zovA+ePs8DD8wY($jWLS_Y-BAu1Y|&$M$UpH0t!^R&cZ)#oRA7HXcN)He-s~QJlucuM`6+E_Q#7Y>syPEG3#)? z=4>-oIQg#o{=@q+Bd7?1OtWNt0cb+70zlJ0&EWrtL;N>kh5v~j!=G2|vie6|;Q`Qp z|K9+Z|A;{Suauzv=rsHn)!~m81TXdf*}!fva4LnTKPd5u)AG;-JZtdx@+hwC?zX3S zPAAMW#?y;@NYVCGcTYv^8-Nl=-0T=A{(&&d{9qUCl7I=jS?;V**816W2oA4Hq>2Rr z?PI=PrOq#Mc65X9~E#1!skZob3}I zW=~9!Kdvk+$Nv>Sv*dXmNbb3oUWoth5rAtq&w)g#Hv4&bi30*oi=k1s5TSk>-m@Wz zTdTxWtHvzBJGQIC(9t^^+1#sCRa6ovfW2@@zO(l;0K_LmhT~S=a@}h|`QTR0N8|Ep z{NX^pz$^ICeP_OSn61_J`kVy3x7;ddoKew-e=!lK6yQ#D?$^I#tovoil?>zltpb;+ z0Xm|jGcb!k{m%BdK+o2LFmehcXZhdvys?Ml$qRRal5VGeBh*wmiL>@Sk2Zgnj^c~v z-c|7U58#DAYl`xE(?1khtpuADyad=MFJKpta=QvT{I8&))+M%&t>9*Wmyv2*z{yTNwt3&lW=Ah;yqy}SLWbv`20CL#~?rAgiNU!iF*3!{TSEv}1x@$p= zUM_OF8J%eSDylK!^ zUJSt*;1q>OlnPvZ|4hbgOc9ezdi78U0tg7 zSV+%I@~RSAt})-lkn3X!UX3o52LKF_Gx45$UfZ_rPI>8FD3xfAK4ggB`N+MkYPWmk zIXx12s!O$rQJ@B;CY#dk1;j1xi?+;-6s9(O*=?Gcf~dio;SHFDc-2&mPQHZ zSMiX5TMMc$4@wH~Cr__U%QZ@TW^u@^Y$dQO?+8)Ps;vLe$f`pdsj_1u?LV|&)jOb` z<$Q7!p0P9SerGfi=1D=}KCb5YO$WxEGD>(fv}t3I^j%4%^~4Ev3);PS?%-@?35*1& z@y}{^SugLJxpH#Va82z&Pt&LOtF{c^-fbeFw%oLs;OeZ1b-0{9S{^!A^E5E6P+vb>G;F0r>H!aYDFHm4YNJal&QtjlMLBVp_}UW5K7HFT{M ztVm@pC3jC8XFZ|Wx11Qf_58p9fItc1%fn6P$ItR0Hbe`3oICF|H;{Yh(OK)N5}3uK zb2{;$J5MvMw)N*x-`;K4Xl)e(rB?hODv2fTQ6bw=vCgG;6Z%Qz#E+p)7M__Jx6H$V zYrItTfIWdYPtTClo4v25MV|$RO%Z!v2a8|mk?+LZvw?U4-gV`VIlg|~r=bJ*`h)}Z zq3DKskJQPj-T|*2a<+~0Sn`VBKcu3Jo*K~J{Gqq%pxk+38X?y|-=XT~&Fqz1ydPQ% z4zq<{1lb%N0w=)uB^-N&4dLj~WPFMHbHL~D$E&s(ludhjIu=`~DkAx)Owc`Qs=brW znfeY8n|--={pZ3UQ~^QVH3oK(1Yp%_D$<()*lwp59civin}Ty3wyIW(-X!cND03SC zE#dN#+UD**62&32vSNtVpQjA)!a}b=@+hn$7&AXmyn5P5l&Xtd0$MZFZ=ME?=dUz< z0W@(Eu`26-GISiaODxSL$Te9M@w9FCBDSPZ`DG!Oz2ISE31sM)#0zZs*Zq4cAPlX$BM2Q-A_hL3QXxAV9 zVe=q-&=@-Uc1=-l?6#e+KjT~V@bkb)0H2j*`%0bDjLz3~2QRI|9%EHfEH&-h8@MIS zKLT`KiNLM7Srtv2DOP>;pLHTV_zz0#8~)NY3ae-Sd=X6M{?@qqH9uWgQ1S*d;~9_W zt9D$ya)70!2mTf6`oRG3qNopQMGa#lw^3?DeNJHwxp<@3CkDjc`(OudDlEp|E^%L( zXxaIC@W%3FH`?kMc+X^Sl3Tg9ydM5u_2I4O07-zgq1Y>@XW&_gkZ`cS@-sP<)wkggozvQgKCk6zE>Mg{GGo8uFl4;xKgwY{SA@Y15$*6ae zW;j*!Efb557_`j>4g1N#mFj+*nnU*WstPZyaCq?xdO>3OK4KcqC*tuiB+F3m_O;A1(>Qe2;#80 zNxzPBB$Uv_H%NkHkA?h&l70y*%|u`-=^u!^DA}$X9280tDO$=R!_wVt1teJM;bo0f zZpa;$2gAOzi|p`rqap_U-E?8j(ld2nRScCy2Vd5e)&_=8-b1 zpEql}AABgQlys<4UpPzV0yo&64llG0dyR04xG7v@%fpE7Q>04oC(0SXZ&*5(r$2jl za@+Ml-pN^PG3_|o#3siz3~3=%drIe2NN9sIH{H;TCSy^y` zT->up`#G@;pv2Jo!Z~*0Qg6~{_cs95kcYh$d-|O6z7};TZ zJODbls{5-OZe^P_5v?!&M2HLbJke+SkN)2bvHwAV^{3zizWm?%S@-O+drsW{Ox5eZ zV-4J$IEYaZi3QT)9|5s{(Ej`gC`WgC?N#6F z;?8@CHy{ycSW<@VX<52_vH8ZQ9^k}9D^WQ>HR7`6?JS1Nd$KqF!(OaDXrL9PC(F87 zFT$jI6*rHzH-iz_JqNBw3ot#jN+Ty?er@R#`-sv085c@J;NRkH%e1smg3z*X0*GOGkT!cWVq1;8jJz26l`%%C;ygEB5?9W2?G9!JdU7>qYumTYavr?2*kg9}$uyh0w;j_&HM3 zFu%&})af5uASg)Eve>`^Jn&}C=O0q9_ppb+>=M+sW8D3d{-QqxE1O z>?5u%bLX~&1QJ``@=HX+qts#Rd^db!a|7zbX~a5QWT%-F`T5NRk?4|~S%Y9Xs#@$_ z7qR(UZpQA#NR0Z$)#CE!U8r14fJF|d(#Pv8WL2+q{^hj|j2TFkI+eWia84P1M?y!R zIR~NcPj}jhq-fQ-cct`XE=XHfPt$7n?96MJL+y^%+%SUZKv`jU(Ke#=ILV}DoYwhK z;+2)y&RFl-4V;{1>%jh@3J&irduZyFeJlSHW+a|P)1I=Rp#SpJW;L5Yra&Ee0HjwH zxYtk|XQK~(yYJNo#fT5}-qYN_U0^fEP-CW1B^HC>RLrMmIdftnG0fVR>df|q+P z?9|0#-Ph1hSSe-Rz*s)-_}B;|V{^#F(74;gPHu$H{2#0L%2DapnU8{hKGg}W)`L=DEvSOZ)w^QrR%(b6A9nO;$;llEC*nIw7*74>#jE1 zd|96PvlRjcbbW%9X*RbM)Zj-}lSMG@-EQoH5(_w%hPI11)f0$qT7_0hn5_~eVl@;6 z_WeMxKdg?wTysA@JQ-|nm{S9w1Qpa%kGTQk!17N7Hr{GbrC^gimZ5jK--ScVQ$a)2 z_B*kAo*5!m%+IJ=hB3~KvS2Ubmt7$D6CxC+vSMnv>94mAqn~O8eQkk~`M$`o5k2zz z4X12tt#l6RP_7F$Fn(lP1e#2Y*B5EF5GUHVQ)m`rj`jFdMP>)(Z*xT`|1VVR+BbJkohB2Br|cJh$>=WX^og!#vu@2i2|!}c#k*5g=0 z8Vk6ul6rg+`PFDAo1R#DR$}&UPJ4;gzkoF_>69oc5J+}&vz30SC$6VSn{83ir<~5k&QtprSa6x1jgR_Vt8SMEA0oJj&PH;N=Rd6ecGoLfCBPT@?lEBkHKtc zN}siFl6I;CKb4OFLwT*3OVpWDZQ}GGz*+9WJu1o1#vdN}8R{Cw_@9N?7Ai^;t&SVT zfEP-0Eww^#^(_ao2}t48#+pheLM zpDC)-uyLn{tOeCDYN=Ya?{G&@LY@GVp2_KT5EAClHFB}(LAZ&T4T z$(QuTdaq@u{tX@g_1*EHhT>5 zQ>u7qK-?x}B+=}I^mNQ;luB=z8EUt9dkC_o9*AydL2>sy&NgJjAW`|F7C;a8!F4t) zFrTBvM2HgxZJ$nI#&a$LMHPZNde5x8R7l;}AZLoeL7L)Ys^*r6@Mrqp=xR0>V%Cl6@mdW_vxt`KJJFDm3Yr}e>aQZKSObQ z!v#&=LKpw0J>uwF5Sm12vy+3;9?F?6T-SZle4GEbF23M|XPmvrdUUna4BsdppqY(T zX&SBXkQ>PQU(25*?eymy%dH6p`=fG^n6d9G>pk`wo`UTPc_Yer-~wGL+i#D{g|~%& z7QQ6PJ!Z>r9Hh3Lk7I`m3D8hirQN1Q^eUY^Yl56&He}VIPiVay7O85@YP_bW>H-OX zsSG?>Q}&+i^#YyKKavu_x121gaPs;?&n|7PM&eU<{L0q3W4L?)G^kpXgY?4r#RtZ$&Nb6}M)nNRGigYYR>v;lHQom1@jMZxkxL$}2FMG+Iv| zT}m@v1$Zy9KC-Zp0_1f^>n0R><4#m9{V}TpW5jkw5z(Mx*>trE?{}hyO;bc zBxaud;(C=*W z_Tm*`19BaJ9~vTE_D69GsQ&E??iDt5ZK7_$4W4n84$jSR15a^pN_eU2Xa9ws5BR{# zkSW}@%h(XDAJ{Vamrh?UyX9{SeHf50?2-WpLnH(Ihh*g(*tdaN4pQ1aE}!I4o0T*J z7I^#Tl;K~uxulL+)AxhQiz;qYQa|fOze>5WMMy&H=w89X@1EWt;aMXVD}`vUr&?T( z#T>WaEadoEf&prb+sQ?H#gvQAz2HjRu>2$q@g)2Ps^ECZG!(mlwLQg+RWhrhv3cJ@tsYmL$F4r1-OB@#6)?_acpEfB z%|ar|WT(s*Ri9E_8rd8T9)zC_4!u1jXOV}A4%MU@S1cT3vV_bUl{2Kq3%Amwo0nSP zt7E1D+Tnj5R}6YVMMWj)*t?tXF)UmofLX>mcD{q!Bhw$^AKMxoN>naltYf)TL?HxN zzs%>ojai3Vw$D6~O{K~dv8qtAS*}!FhA#?oSvERaJE=#z1b&^T*pNpF?V0Ys(Ic&I z@6Ym7*LV$xf5XaaAJlKFJM3U&URW6MlHokO`(dZ8jZ;6|SPmFY7buZwZQR5y7J4O@ z?E67-v`HeDU&B%`c@I~nSsCO_%IAWAHN`Wo^4ng{_i79c(oH0>HTWe&N0gm1Y zVyKLqE4Dj`>d*$LtUc+Tnk4#@6UM@8SKq^?usqWG^YqTuMrwt~09nHq)Jif^rGBOY7l+91DEm1CwC zUxsVCO;}mR*PD>z42~HYx}fkYQuhiCHKN|egBDCS=QMTkr$q7BwHjW9jqSABxdtDI zEP^bjpC7aV0I^N2XZ*%agLRSgN*RyEG=P97Qt)}qZ~EX(Y*6AyQk}8pNoP*ge9R;9 zfKj-%_=yf~Mtta~*Cry~ge_`7C(U3beZuUkeJc4^ikdI!dwGM+BM2Cln+p~vx-X6-GS)Vl{YWDYz_*lwI;g1s@)Lrf{ zyP5aI;Ai&%upXzI70{E{^Z{dJJ>T!mReD-qnu65yE|Y5}Q5W*cc7N8FwqXXul%W~hdUaW?pOiJm5T(=E`RYE* zUdMssqIetxKK;l}*8kD@-2((WQywDI;`?$s9D>HYove6Z7tNE(Ysc4rklzXD3;r~N zwjf?m>#M>h@uRVhOiG%%q7?9qOgslo8#~`fPQSP=B`fFnJjucOXLjhpwiu*_N_?J$ zA~LBtXjGoPsq8O%Y+3h`+m;1?_IG4dCHLNX%i*CWR7q*6s}WcAdh*bVkiqF?2a+AG z495Is_q>s!*lUl0b|?vOQfBKnk-@#L8X*;)8fwtlGInwYc{ z`TU&tz0HI@E^Q7eXB4-Ao-DjgrL9GyLv17Zy;Ljc94szS*c>g&{ znUIVH@I5K?y`i{zc)W2Kgy{>o0OVezsi&tswL@u$@-e{kzNNdTWbj$ZZb}KJ6%ZFu zKh=JVpyIu~Ii~v0+ocULDOc?Qm{&X`tE$E6zwakQTEk}B zOY&X$^CejGrzVxNlSeCo39PgX%1P^t~K(7vpc11 z_KCD8R<<*HiH1)txi0|A+y5GAi0fWx9D#OilXOqW!4z1b9ZRY?T+PA+>W-Y0ikWS# zLpYoRUkKro<7)L7;g%}L=GhIeo!>C=v*%v?_KqY`pn!h*TLe0+M9TX3E%HQ(4FKD~ zB>XOR$$Bi4bP&Jc~xoADy~>TL8voEv@@O_uz6DD_Yi)%Nifu7hc<#z2(# zO8MysNOAGK{&%@@CC0{-FIN8T+2EPiVfU&-e)e#BUZ3yA05G*>tR+G?0}y#tehxPn z7BmWP_-ii_lxyb+(BSU}-w>2`Di6&M5zPy{Z)T)2!Mnau1A3SysF;F}y&8hmx%udt zMS4g5E_0ir`ktXEbVAW6a}*w`V8H29B!Ic!ut`LD!^+~Eek-tIV* zIG(hZr$}*lDVzo=C_C|qOU4=SftHRi0=UB#WmtLncz}--R|Mhd0AHTLCOReA$U&Vz zX5&eoU2C4L=BrgDy^r1ZZ8Vwk1LW~uo;05GjY`OcYU@de!4t(V`+E7483n?$+@7;s!^+;YyT`Gu)F2FeFE0j=uo*;umVfU{SUt>hg(q9kX){Z`cAeccgjyKN`N4 zhp8kpj*He2Ghtl-Mr=>54D2o=e}hACy>ro2s)2iT!0%Koys<+w0`gpD5y@=U`qPsL zB~LErY>bE|eK@w&M2+=T3ZmblXiJn5k@;o z=tp-t;qQ~^RAznh`1nt$_iag_L532lI|LX*+`+GmZa`- zl1_|7kTuRy7I(P*!aLx^PMfDz?)&zZ?^=g>#v}ZX`d=qy8br-%>nCo`hYf;etO~@v2l6xjR1m`daRCmCAGs|?lU1ZN3t= zTy7LhHJ+b*Iv0KHuUkWB#q(I$n6EUuDN4a}7|l%W`e*Vywx%}LRFRpx1bf5P+`p{0 zB=0wwGDNtAAs{!m4<@GkTCg z_5L|V^XX1|z2VXo46+r_A`IEgbGTgKJ8Tf5Pr)Q9AHeYY z=E8U_ILo*2srxP>OP+9N&D^ic$yJ`M=Gmh9vg$6L=rzbf`IQ}DaKW@8)4C+&BJN`UqqF!7blgzHL+ ztu>9u|MtGeg_8s7ceU3KRK{$~^gHIR2Nw7AqX22P``TX~S(o{L5%<<%QN8cG=+{C* zKtMpsK)NNRMFf=YW{{8`kRH;H!qA|^Fm#7>=L{f2NlVAT;Ly#`Aaxdee*5fwopbiJ z_qom==N~U*V6DZwp7(j5xS#uGWX*_7b^`uG3%za)TsJl->?a*-|Gr=%xUL}HeDk>X z(f_l$*Y#!o_uBzC5+?uE0=Q9jxz6_gdkPOM25`NbB>n%&uy^wy|Ltl17qoaloPOQl zc!o@;agwN%Uiq7!O&Rs^#w_Aa-D*3FuElcIAuE5m#B6CTP(8b|T1zehA6L~Z(zidc zm3ZfE{2dJyuGKe`>UaF)KHF(~8@Qf77KI)bECJu}6N<1Rw-h<~$I3n}Pwj))tfLE( z_r^VyUaN-xh(6OvR4$*gG}TXX8kynI|}0o57R8B^G$_Tl@@Bx zYRG7~AALgzTq-BN)!_bQbqbJVjHT4*gU8S1e;28&7`?db@9(xaRj_H{ zFS~jFG*nuuY%V%{^{Kn>>3zxl8GJo)x(5$ZK3p3IV2l8T{UZ>&f8<4=XTcAvG~Bd~ z95-Ai*A2dg7~L;6)F#|yuqqx^a@V1O+soy?>wdIB-teg=BknDv9>f@zFb`z!Wt>}m zCC;?Py9e9{u5Um4$;BG$S;OSB_r^q3Xp^^=jT-R->olX|8PefjF_M=%pj-yG4RJe% z<)e#I@{Jy#EcOrs$o2x#z`*J>#o?#0rY@zWYyQ3y#zp*4$FQI9G4)!Ac(}(Zt-o`%e zJQa-ppbO}ias}zZfg-|AKzLyMW7dDk2AEa`c8h5?j&>UV`YpeK>`Rfe##(Qf9lw;- z@UofU`FLo-sq}I=bE-l!<22z=Gf@AyBn$F8Wct7ZI|j4U-Cw@eLDdia z_XR_mK__b*7IJz?cBurs0!BIpe7BzbPA^S)?|uxZF|b=X1^3Ab%M_0O1MHDkb5Ta1=CL^#zo`9%3ZrQ~zAy@9C=rY&&E} ztZwMDr@65Cd{L=`hIJA zi=BALYXN1i{#i&h+a<6HC@W(9V5kk{q+fP7t##ponJFdacNQghQ^*nE4zH)mRSC*O zeiS;qs=0uQz?A4$Z3UCf>Ho4_U1byOlvm#JY`=c%6KqJ35rVeln)wz$jv^j7F?ttK zZ(T4V$GrYYCdX)Ty!Wuxk6SD+!;w@H?RF+N`ySvsv4-H}g>N81Woi((A@#p+&NX8d zjDZl%K0{;qvp;;HQIdIwzoQ-h%xLo|wn@Etz^;uC;FA}}JJuT#?}v#ZNvSYVn-}Br zEh?6PYAH|>Foq~hKmPYx7Z>tWN7)y@2<=6cYM@0)$Emo8b!j&Ea+M<)v7!9PNZ2nNI!M*F9E|1;HBDop}QWF<+r@UA3GQr%wt-km3vIFuL zr`-oSflJWBrqS$Q>Z)%<4gFhpzup?W z`u{KabpL-09L|>YBdi7ys5Jl@NK}=V9UTe?|0+ieL6&48Ex>54-pCpQiN|$|*;<;*-ji;UJ~mE(XaCh(uR1rIMPn9Fi`I(MZglk+eTNcPXBAojQM3y*1Ug&cC9= z=7vw#>72Ngwr&F+)C7))Ip&xqZt?!P6+ER64{prlmFn_3noNgK!L6z9oKYHZ*LZGz zl+w=I&-Mlw39_J`)1!jm#Ty{6KTly;^wl3IdB!%PI`hP$Jx%+u)ObykK7?F>hJ9%@ zK0Zs+?nmy-x7#KaS_8&rCLg7AQkF{P*wfQ^<{%HtetK%UCm#{Ry#K~k&jGt?6)17wet9)YSdh0ZP#NpE7p`%Q`~ zQ_wo?Sb8>OcyF(V4twzvJB6{;96Fw(?m$mpFE5QKrSXs3%=IN~hueRYbyQFD;^T%p z{!|t}a>4X(^ek~oMcYGnUvPaiRxgAHglB2iKGA}ZiuS#Ogbx6a_yErx)%ynvv-9rs z@{0&+vG?ARtSn8sFd-m%qPk`cmkGal5Y|-1vnlBDe0lCv?S{gR_ByHksD3EH&NHb~ zNPR6s%d)&vQ6n?+8QzRB8Cpp9M5wV;JF#6ccfz_;x$b15d_<}MsIHGyl`a(A=aUt&?mz&Z-bX+-^iEO9e6&7N zb+rc(A=`M(qlXgZpFCfB)+LPyKAG>2vJcKQ#qc1WrRT2PV^->^O|=|+QP2kT8jfp) z(9)!%DcmXC;0#lwj8pEbG#yS9G6;?Ttx@SL$@KNHBj8 z&c79f9>aL^;sG1n6=h$;3G2~#@oshW+oYxGU6OADCP%A!Up_>f1~522jm&-_C6{6i zavo$;s8lxsD3%V%msZCUKPPqksr5yus}YuIv1u_{Im^`HI$E}R8GC!;b}Xpxse1Ba zYYbd_;f|S1M})~-soWh&L|n76+(nP3HQQOn^EvDt2jVMPC^sZ@-3)$j6z9hMqdxz9 z{5pR~AX8VRAD&q!?E(HjMJEz!B z6~*uqEky1J_$eb*al=x@L(C|r0LO?Ud!5N{rB0KuP}ajK(&#p>BXZM6i;CR-`g)XN zPnPMhlAoNMp4ZkD74HIk!(5L}G$y$Bx^80`Dmo_?Z^fl}YGluvNC3wQU!H+IL!Mv*%I7M3g42Wu#r>FDuUi=NeIti^h5DbPaKo6%B-#0P*C#F%ykXFkgoWH;9xA)Tn3)89fHD@{!a0P= zBQ6WpHBsLiezI~9)~5yU^&ZDkxgFzB91AG%3x{ytz`&hww`3OE<*JA_u1oU4M`LjX z}Th(}3yV(yzE42eKyMm#A2@#F0g(WgxA_-9=f-@3B0zg$VY-sLN67SGKrjaw_&PtsI1&4{!MNt=QNOV_lQc{Xagbij%}U?LwilXrXK;)ueJz3K2*GzXP2 zc#?hz%%J&7UpdIxq}d`&-$oOEC(}n9et_BL=txo~qAB92X+?f_U%N)M2hab=h#KA> zW<_u`F@;yUG;T0^c(Jsdo6I77J!=Q)NW+JEe>x+HiR6~jYf~7%m9q$^NRd8}dl?~T z2pOS^GpkoYP9uFh9US z>8~{?Rd}x4*9I#!wcUJ#X<&40<{gcATd$#S#8p(K3hRB|qB{f~q=ZXSF~H0Xsf}IO z|A+*k`$ktejI;*Z{RV#J+Dc>HiLwF+5BE9n8?Y+nN-{05dK}e@S%U{&ezi&lP`a;{ zrcaWZKKy;l&}-~*YCPfx-pwFuVA**H@-wm))y&m=i)pk=qcd6T3}t@;c1(KY^ufi6 z6vpq_)li5>;^iD4TlI-u#5s?RW(}^{XMz;0O0O`)mHSgS?K6loQ36(w8=y9LOx6Z2A0_L?pYoZf%q(W!l&N*!?gT?$FPG< z4z!MY=Ofx6bv$ejn&I!g{De3s?rQ?K*dZi$VRXo-_Zs>Mc~i0R%Y<3DTa!}2FQLP9 zzJ|{v(H;e;(!{sXWAf4HSrz3LCQdhHC{DMd_WLX)auoT+=P#m4&#Qg(1C{8&);(a# z)1oR~pKcKo-M|t`%=?S<_q?teP^G4;%KbLWe&*cmzu3`tANt1Nc*u53=|*ehGo8iS zt?NuRgS*l_020z?@*&I~7l-$9>_^1gzp}Zx3Y=n#L_1S$oK1Mt24Pz!F7M469t6cP z62|m=8GpcYFA7n{9z|U8hS*HM<(2P^zO&iH*xK7g( z#LhphE4!Y`8P>aJFl=ZbKoMMyz%;@AAxlx3&T$BD{7oOT3hUjgiEwH3| zu%yY_7=D~*{LiE%IBaBrhKc~2TH)Pb!C9r)#y`Wb**0|TI5e|-oxM{14r&8xEpr7^ zIG|<0tzIA4TWevm&~OH;3b;O#*+l!xHUSIOH3KtPQ2sO;o6qkeBZRZ_a1hmQGh zAIn}L#kP^067Hg_C@YhgyYH1xGc?g^C1d&hJ@yb!N4VX| z_A_>t|L>Qg!i|L9rS_7PTQE*O7wGZE51rXfGc|Z4Bx& z;K2w11N5ZdCdvDbpi6j!F;tbC!>uw{5|;V2a>|Y74}ExLKk@8lKa<(F8a8X6|9)w+ z0mVsSF_?Fo%THvY8I1OS-73t7PE1UBk4-;u9smZz#0D|_-x8MboeGKbH}N0$2=G*3 z?-?YDDM18;S>QAsnY@rAM@JIgNFJ@06d-4MhfQ5yd8`8ngwMGJdNxR+l&BM&&x#a3 zep9tKdV!SZemh5wh4p@@)1S=}Y$-u0c^iPgZJQtWlPcT(ZWvbwk2hFGGb5Km*tSA& zx&ikz)<$x0nzwB)hRc23ov;jx9wJIT#(ur(pB9X*6|ZH5*Af<JLU?3B2zzea8z+)N7*9cD5aGz{;h?I51_97`!A5)@X3#Bb6@1c2NgfMa|a$1 z9DB$I!pQ~lHuJ@Z;_a>Q%XXr8r}BSQNv=3U!CDv zpViwMCL}6HmhNzf=;&%^LGM=AOtjC%#9k5P8{YxlhF=|3+`84O0*+B!+OHPXlKaB< zI77xLn;UIyaTxTu z1c#TzuOw>IFX3I(OXwspw(UGKqw$4ulm9Y_0tAzLKkZS0BOxrJe+QnlY)+kX?Ahm$ zE%AuPSu7)X zdfKXQ&0DMVET+-jJpx^NtS;q%>@i8txrTg zsCt^-R}fO|z{dO(PMPcfw@&*ZMmj^W?Kh4Qs62eugW>Js?P&pXX%jmFI<)-2fjt-E z34bjaG-3ZZzLRe0)o~37S5g6gE13!goPxVmgjaZ^=JPritVuzc%j||L#I`D_x1}il zWB0hSX>W{$^Q<6etkQR$Pf7+YMu$9-oP@RA3=il6USLxT{Zx6WFy(*wW2JQjugJ0e z!hB^P1bsn}^~NE$feGU849hlhFLhvFvkC=&unDJby!L42OZ^iATdr4Z)7G(lHS*Ip zuClMpEEzmxY5BF5HdU=7uODWJ8}_+^Y+&HuXS7C*?5QD`tgl= zU!L>TvMwo#t*L z3#}mN$BP>ITFeFqnEH86ocG@XCJ?9!cHWimf<&~l#=1=xBzV0@A-FFch6@`83ucaE zo35&H1Ed``-w-MznmdEq;2N6LlL0h>3zh8n0n}h^(%A<6qw9BVj`#e zg{oa;>_TXcWb&hKCAI9KSAno`$me_HkMDaQx|nN|rU)a&%zBC>PD$}sznR-`7AJ&1flnXxdq z(lRHd%k<1Hl1C*<5w8_ort^YB@QY!Id^kgMyFzAYZv7)$a?XR(^Phh|aMuJ)EP&e$ zlGaPor7NQ!_rr6V4x*HSK2~{A7VV*6@*8f|ufS$bdosB`3K7wPG*u?qWOiN&y=d{U z+4=K3WT;?}0H8C@=Qz@x+P*eHPU4&Jw}XbCAqX#D7c-GrFs) z3mUn+i_kxQ@H-(`(z)UXE$dX~%arp$i3Oi*V0C8dfr{F z@j8p^)eysb*Gul)|BNtx4)VH(9-g6e0q=iRQtm`&g?bxZPT?75ed9PNqhP3$!SumS z0$h&TfwIO(@7ucEkLSV8Ok-=cWUn`DWH^yYvZ4H{AcNGA*wEIjKsQeOIIlV?x}90|Er3c$yzgN z)t+i8$V5x11vXww;X}X~u^M06)Cody1vXa-{HDH{dSc2!ab+{B* z6y7KQaTi=OUixW3&ly`?UndD-%5F^Hpd-HT%Wu}?`s&b2R&BT?-+bwlDHC!EkEJfk z9|T!?aacfK7uUp(+|9Z*)=)V7lXca?uq!;uv2li3H~rf@uOvwWa^A9ZYm0&~er+q~ zeUIT%RbaDkbh@(&CSW=Pg61xZ>Es9|r(xyUt?bx0zmM1_mT>zKR`GHAnKUJRsq!+g z&~)68Gs9+bOg2O6Lr`>}Ofy1S{0QI))42H%@!mBUHi@*tfZ($Z{U<$QG88RpQ1+j_r_se)* zqzs;;v4fLnXUN)%C>30A%Wu;#yW^qhS z-?cef*ncZ4?N5(q|G1E;bcA8RsghshwD-n7V>M=^ow$UmC#Ff@|CG0Tm`U<~XK}az z09^M6Zkhzw{rj8p)c*`=4~$FPwEh2gLHjrJg}_z+?dbzw0A=8Rd%^#H@8)j6rvRYf z=AVCO2>$2yz|{2)yM5jzo9&>g6S)3i(_4d;C>vYJU2td3sJOX}L41?Xy#GWz!)ZJv zvidEsciaG~DS^o*KH$_8_~)4EfrjYkl7;BAqMaTc^o6XX+3$LR4%QZfSea zqf67t-x%)m^cph{U@$IjMiqcSfS~N^Hi|AO&&&Gpc=HqQq@Kh~lD{?{*W{GpY9ZT`2tF7Y?1meNSvKPFXkq69n3{4El! z1HMns63yaQPbpD!rwPZC7&BE+;z7WQs*%^Lo~mr7_gqd*`x`>; zc>2xrp(zx)o8(g|UougE%Z`&8$#?jqVJ`{)g}>t=Cgki2%)|ls82sFX&fR1oKS`$pYl-s5 zwP&j6Rj~ij17_WE?vl*{&zz4&IQ4nIhKu2|MRN^d{666zreC{t#|VPKuqLft42ah| z2k*d=XnCt6%5d^YDPgS;`zp=F!EMjFxPnJYX+u8Z6hryXYhdw^*wf_tImcefYBY*b zlr?>YH7;Ec)2rd_nVkmw~iH$qqznEOh>{D(b1` zb)@}pBT^`i2Ui`0izgH8*6cRsl#|hFX{|O?vCwhW;w>EGDDpQm%tbMK6ufN8jO|dw z5+_%4b5GRXLvNpu(H{KMApq6;tw^*JQ$g$Kc)e$uA4poLT@}4vEw!#bTeR`?DJ^co znxGR@PM#V^d%fmS-V=qBjK7Fbwh^FM?c3Dzy>FUSRZfLMt0jFn_-i@cOg`K&L>K!q ziT~7W+@AEQx4e^QHTd@i^f|#|J6|2@H+5l?r$mr9tD!wkUd=MdF~`O1)S@YET05;Z zRif^d;Ih{Jnc=IZSudd~W z(KQ9@lg+!qgj0#-q;?rCc47l;E=A7fTvIaH35W}MCZ4TU!Tn8muZ$9N zDV6crU-KaG%Fq0OJ!5&6rVV#uNjOQfRT&plfc?F#9{&Jk6x1f@>{CxGPSR|sOp$5Q z(lfsjI4~-}N6Rjkrih*8o7F)ZDxfvf%D(HhWErdkPFN6>Cejyat@ zGI!nx=3i7i#b-itZaWC1aq(e=NEUm{?3ktj-I5)>$z?agq`2^F2}WDC$+Gg zp6mf)8Uc^Dx8Hi86)YO;k8j&m^iw>~N>_Z?ubxSGOqDWkswIFrKyx7_I!rtb$?}Gcg6uu40Pbt!L5toCL(Z{60P=_&X99 z4H23)k4a(L%J_1N7Knbz!UO&AtBm~L{;B0nZ?6Z#0ryOjjFR3x#}j~+zRp{A!5-Gz z@IbWn@J)UQ^Ya26j{bu(6l!gs)bYqCM zys3wiDbq{(^ghaK%tF3xnoA#^z=Fh7PjtIoU#M)8#jewvEq%y~WciYzj9QJ>;4)^l ziQJm=F8b>O8_+y@Gx#py3DJ%RYNF1kj1zeVeb^I#+wOsiRBffo$c`I>Xus%^%1MGW zCjYcbaw6Ma^?PbCAunD9x4|yigR03c?4ifoznlE73ygmS7?F3z-5)uA!43CIIqG!V z)ma0>jub)H$cle(@+~icm5<%@P(UH_b}h8*t3*uoAO*iCXHyC>ri{o$FuQF6oE!hg zpGj4rp*kze_N^`#ER0H2lm^T2lo5Hc+Cz^q4)i4V+`$75$Vh(`k{yR~wqMvSd5+*Z zAEt^1deA;3#6S@;QCrVhVrTIBbS(e?S6-XXn&fc83dccS;IZl>&V|e4B-BP>A3B{H z-^l}g{{`d`l=i{rR=O=Gf5MtnW(yQBm-=INN1J5lB!(W-@KTZ$xvP)pV#M|zl3qtn zVUx-fx{c#g$PC2*p4*jXjf!o5)pMUK>e%WF_;D*G3iVlFOA5Xc2S6ShH{gO)QMCWA z_FPwX;c)pD>4XBRNRctH44`~g@2m&P099z!NFkL8;mpRSHV@v#5?h}haGi$T(~1GH z%I+D)1+fQ3l^n!rV*6D(w8HY@an9?vv9pC7#Ms&2-Z8js99IwyLT(XYs;U2x$N&gcEpK)20=Qmllf4 zt2I$)ES=gm7)3qT8_NJk)Xl$a^4r{R$|3MHmkI+*m$r%L2uX);;Pz_V1k-zVy;lO^ zIS?Kzc}{W=VbuQD=1c7~bOo+aUf7oL1yW-$A^mR#j(Skw0X9;RMQg#LlSH5-y0tU3 zR!}AhlQA{IVLmTaq`N?oH`KCck?2!z@aZRIjn3in|9PFrD~h;!RE6fC7D%Ff|MDCwY}ZJFG*j9YqwSZ z?d}8QR`2b&v*w}ZY|V!knJKC#aX70wN-ez{rLTr=zb?zcOdm(veeEuqA!yKUm6uJj zWHjqf>jXN?p22i|1D>Ckuw+ezLKjwiof4V5qL#wX5i}xhp}~gC8K{0SJsmbcP?kOY z^Qvb4KQ%T(*QVUGIR$V!4g(T)l=!@I{z4$>R$bW%bIa#4RXs}l`W8afVAk3aZo)bs zr?Y6=wBEQY0-+*9;$*qYNL=Ufwu5wB;`z}}v8rnCDBPacFGw{0=P~O0 zlA<=;h^9?J7gqEkK(_fHKl#&$R2yBaBT)E`THnh54^rws#sir~4l#-Rg@u~rD9c&Fau z#b!l08`GzM`~d#~0MyzBoRzdlYoi3K{^%Gzd{x9JZqfb`ed$0)A$}s7o`b2=Q(b#q z_Gv4J*w?;HjegKIMd^k9myNW?#>))@8#lmt z@kT)SK-}NVX()7Xb4aw3WeWKvNaB57DA@5C!M_fo)lOh!V!(&MdeMKH2B@NL@)RIs z{ol$GKsQii;P%(K25|H1i2DCCD0$wG^#9$}&e9A9L{{(OW|D0pRj;9oHKK5rww4)5v0qGKnV>pnqoGYy|_rcyV|2Wi~9&0xI|iR-P?P#$t_>f>U*|XWt0Hl z4&cdZ2>-l$8R9cqpsfeV186>;G9lAGLWhREFO`fehm^`J8q_Ao>-vMI_L8U@eu^PK zq2WUQADbq_V`UN3`od|N*J%dlOKWB7%LTrRP5Z|d6I(N*w3kMrL;vL3n9RN(RjGnF zKl98IQ8Z1$+w7GS_b4(~OFEsYDymRoz~nE4wsEgfuMF0|=PqgN(4qv&-Sk-Z2W{cr zoeTTNmXCW^2NH~1w(_j;OYxl?B0ctet}5@VMouXmPW?`hcg+sYe{}7Ky-~fLWlTtW zldD;I%JoLg?egw|a@wnxVoh7o@F@8JK#$7Qomnw_z!azxh#062Y=(U?7O zH*VpR*?emL_~=QNWE138v{q8+K-m6tb%O4myTKpRxbBx9h?@h-+Z44Ct;<8bL}e^I z5Ty}JDQ;O+q8Kzy23XMCKe)yqvhO&G=lYv>W#o2RsO|vGwP*+O#I|n(WOJ`Z)p~jBvgaT+(Ev_z21k9N2CU`=#hW z+_s5G{ibDYQoQXSj|Ltm&HCE(q%B0v#R3&j{%Kx-t>^{Ps15%;M9aWb=C2%!zLQp2>66a|hkD)O|FkGJY2s2N zc&mF3YMldxm8;Ky=1zDeD%l8el+J|2CZ+cbGBMk?^f#AmiUez=;$s=++3#WfMy|8H zxS=U7#iC=kD3KDKgTj-5kt}>8i)U#PCQU_Yb2=sx%-0#89!u-D!?jvD(`1n)dwE$$ z@|sb2QzDpXwY&q0vJc-0&&Bb$oz7O|igZx-_R{*zJ`sE$Bk>%G{hq%5y2&M1Er|9V zSFt>^s^u?#Qt&}Bso*~gu^7clK*xFu}!C{8G`GN4i5cQeYCekU5veeN!VxVdrezwkr&^0^o`lbG0&xo+Zq)i0(yCd zk?m1IfZ!)+b&PM|61g&Vhbzi9Yk^JtBNJ?nO)Yvi{Z**FLM)QjzOT?N=*4qn4gixe<7cI)IZ2Em z-GGJpvKQnTeb|!$QFh8R&uvvH%34h8^SndT_Ow|ZBmOWLUZAQKEz#JJJ6^7<`89CTGky={GxO8VPJgEHO>ibfS;<)b ze{^&Gf5R(_N#&;<(#)g&~u%gC7w35`Ux7~>ncC`@ZUAj=W7P9+u-vRmPwLpPwge16YU zI91602?#=u;mjWZQ!EW!27{9$S9`9PGYN;&ZNX_n=z??5LcB6gHOOSg+p_*>tK7P} z;r7m|b$Z!sm+1le(V2v{+B3tzyx|B$Bo%Nqo6}I)1SwF(%yxHVOzT`@3%}#ZJ6vEfgl= zkj(#07{R^tSkQJ!Q%&@&0{1s`c!l%t8;MFzWbXZ6LMZR>1Dt4I=Ion(36!)#o3_NJ7Dgq(Q{-2XLi-P^344{$>#Pu z?uJkTJgrNU*N@!VQz>wya&#rr_-nCKxF2=Qi-Nz49Ug_ zwLzcHHW44AS{XWQXKEixCZDB!JYb2QSSDBW5X}QmTST$21ZsyYcm1_ts6qxQeks^g|Nh(BuLbWrHI`v-$+Vn5XdL%U*S#in)foe*{8 zUrdBl`}vj0LB2kKhwVje@STE-ieT;9MtdeEVd^R;1=+S=)Enc^n{|;xP6^u_-zqJ+ z)a$=9&&^h$lF>&wI1-Yj`pq}kL(T&o_X=E8$1jdCe16t~35%heneJa-u0V~ZN9;rN zKe!9;flGe?}0k&Vgj$g`hYCdfnCpl?a^_83U-&>b)T3avP4Gfz%cN?x+_f&a{u%Vvbtx{_Uv7^s>5+e@2vyN->Higl*+J zE80-r6lqxEr5ZRBp|pujR`wC&W*~%59ce5+&q=A%h8%+vmp2Z>0w-Qh&r^!Aafvw_ zLRMz1y(Hd8$c0yh?gWlC21W3kfi3b$EQi;mZ_c81YrQp{b<5n#ti^WV%R+lMJi9WOTzK}jMDmj#G{eHI-Tksse-yl>E zrt;3Wz!=h{NVay4cMlz;@wez0iPL2>1ifdjSfouL$EeP{7myMPq)sm=5T1;(<9Z)< z6D2Sdz9pA#zANBfrt-}jtp)X5s~lpa#*i5mzn2B5AWN0$N1pr`d@`lPr82=?s#-ys zy%=loOsYiabb0%h zu}@x+1SA`nZ~<$i3t4zD{Mw?DfPsw3v@Z>%C*GSqh!XA zeLa?KBj>SiJQa`5h70SPg&eyV3CS_9P4ED}gOMV~9014ujFhPmkXq~{rx?D{=zJAV zb5U*8R*O@!%{1>w;9UOwIO?9H#qRkFgg{S66VV`k86{j^pNha~ueb8YSClQbW~}>a z5oJ#&>1F51IJ`yM^y;xA*7h#;LN>6jJCB;kY3W1OEL+r8>Bkg!tOC~IbO744&rK03U08A#qS_|w? zLU9-wU@CP-5GC&Zhz^FUSG{d@XFO7`aU~Ggf^Hnap3};olmaI#1N0$utk8+~_a5!D z#_l(RIm*WTa`DT`Y&~XzX5CRf{HToywnyS7c)FpuW!BMp2^2acc_T3TA~*R#w;g?I z-;@~gC_xcY-g)#6GMkNG78{AvG6tSsUH&dZR*jzK?rfw8*Y7G7k5vzDTx%)a#C^q*NDn8-Wb5-VkNL$qM{pAi%Xaibu=POi+oeH*c9)fmEK#wNi4Id=S8aH( znRZG*tXb8x)uHpH%Nd3z=C$3O$U!^;h>lN7e&cyLW^Y8LW`WdvPwQw#0$4eKj`)IG zR+A{Mya)OWFhDZk@4WR|s8@$P)qw?pKi5a4>9LrT>)Ee%Em4t-97+A!Gc}S0>Xe0F z5gj_T5<(x*Qyj!hzoQC6J-CqXVL?-$@PL}iCBRC|Ebo=K*+|*N-pwQk24XU8*ddW5 zsc>Yy6>n3t2!&sa_+I01hAT>`_Koy;d?6Axd*nr-7V;sRClJ0&^*B7STrm*tE?MDW z>;|}kDos;AUO_O&G2LhRTA>mTe5?KSYK;20nMqFrk^JUutjW50OK+HZt_7C4jUGOV z1&2BOXZ`o|whcNO8Ltg4{;Q0g)w~5-&&e%p6Q_hRpbU(K;qIr_-*es0HoJd?PbylI zRtxqk8~)gD{e?i`JJr^mex$=Qcg_nGd05c#2I8v6vXRyWhrB+vUl-`rAJI0tWAMvU ziy~KI50$*JwF%aJhHRk7M^}6Qa9*)9yu;fGSei9q8T&#(+|V@VL(tB6!f*S5s6x!P zl81+Z3$G4yGLD+8j+&DlYBJjf@<#IGQn`rbb3YX@mg*S?!&wyRw%cp{%HBa(o6UI_ zVWiRMBO<8h^PY>KQT`2b?Cj$N>&K|GWtOx*vF~0OIdyDDa=2m*X-B+3tp+tc{eSjdK^7p$?Z zzzxUQ)22g;v_A2doG2rL*%rA{u?9EGG{bTe-WhzWfBHFCg znl0}X9dXG+@OL=E_9By`5S^^--F6?~p)_o>_M}t7G8_}weKd94)c8}UCdcfJMm6w| zpV*_rJOur0lA9Q@%oV~XQHun|j7UF;79gKdhGc`4`kwxgzlTcB87u@63Aoya;IF!> zfBSv9JlpNUv*li2wxhh0AmtJUty^}7fdAo@Y3&xA7XarG z#xl6D0(2OayJHRqY-7cw)U#b(SnM=q4#`q2e*t@cy^*iDEw#lZXqC&ND}Fh$6L0V zZ4=2j+K2oh2rTCr9Xpb-UTKW}tA`QG2@5{!Y*uFvCx4rC+?Y7*N&#WrH*vp>Q zUH@U!+gvYwyj^gS*6g6`Me4|{H?Ud$+2dPj$w75nv&x+~t#G0dzxi%;3Z>qPeDCBy zk8=Ju0L3*1By>Q<{F$qC z2P%vb0&ib`xRWYwDR={rG2So89`i0R;WnI|+CENK{}@MT1P( z@t9l{8o;D+lUg@UO1O)d2)B;_?S*TM%!YyPWA2hIp&jOU&qFhMdrC0ZSr+(C7c!a4 zccudH;BL#sUh}qt6qr1751^JPpDn{}(D)bn`st#_ zMoTFUFMH@m?#unqvnkzb=ClvM;_m>G4Oejd9WFy-CgdWbY0CV~_{KcIIgFVg$80p` z5nNO!I11Hz6^7(NMT#r+6k~|bpT#EP7GLc}2;uJDxvms{xv3PR49otl1@lf;I?e3X zakMxcI1d8VgQ`H0@`*DbL7X2I&MA-&`BYj`%}NiCJJydGPryry6#@L4vyTi`8ey z%k{SjHZAX)?x_UgKz#pc7nt6=uKf)Hd>@28edvi2ws0 zZtsl3Upn-%FgLH?payi|+=b@mB2-I4X` z2U7Vq!mq7W1?ZTo0jUV=QS_tO@DJ)5-FNKsO7>Aos(N6){-O8(2Xk*77UlZxi!Yao zl1fV}-5@D#5Yo~;NS81oF+;kPl2p1uq`PN`0dy$o&Vj+9o1p~+&O0pE_k8#DJNw#u zpX>bb`;P(Ud7t-*J3sg5{#4Ilyx3Kn@+%!yN=7>(K!&zakgZ`i*P@~=ej%JQ0kfAg zRSOlc+zNAOtce$D(&C~~fENy{pjjCqE)^Qt9kkVsIxaHv{Paw0#=7mU8LWs=P&&kD zhg&#hJ zLS(XM^OqX^zQOpnR*w?I^uc%B$k0kwDg8N|{f2^(jhy}OlNR!Tv&BIuK=YY;D?|+* zG^%o)9{(6fLBMjQCsJsP)CjXHkSRQG3}oV8HrBs@N|ihrcnfE5{SwvRaiA?UQR}6p z(kh)k^wMEE38bQyPDzx#-{smBnVtfL2872mwm{a4C|^`-ova6U(-Q(m&&g#p01D?K+iU>WHA3 zRakWH2D7Y`8u4L+E_95uCRcizx;DgtIgJLBo+ndNI38gn%6(5#pZuYL(#W6wBv#EF zwCc95HjECDFEUb2)G*G42SEaB(T<{?KNn?IJ)`Y$ycdAQE5(Wd%x;XHLn=?}bLQ&c zOnFm|_58b_p4D(jvgknQcQBpZ%|=C(LHm79@3^9ymFXING4!B#!6*Ka1WCX?5@F)w zDX50gIcp7S`&9sPy!$ENgA~dR@=#>9dq)Ao?qDbFXv~p_=qn~io%{w4XY@)oqQbM@MGv~Q*WEmGHNGBcn4&x4uvwJ33 zp@d1yH;W0^*W;8%_4|+HHyNE(r9L?Yu-ZW=&rM$mkYPyY3R@|V~$c;NEKZHt8Z(t&O3EtZ4_`Y4Bpa1R(d!h(c;^Hx5z2!uu=AtjLS>VHq z*dQ@4H^|^Y=xd27uJ(OOC*R%?K@TlIhdS7sIt#klL(#%PiQYw@f4&Yff`(ngJ)IBP$PIY$W;1>z?Lx># zLmtnYNL6#86ok-}&hXq3PpV=fJd)VO7|>tdBs*g1tvr?myN_yOk*cj7(#aXGYq5A` z&!>qC``@vMRcrRuz^vo_x_OrNWd;ce9=Ho@&81;shCFeU%y@tkA8+pJe2Ya+ROuGz z15SfM*b$K32&XOquFx&6YkCrhk?e?oQ5Z(kqTi?3xg>Kkfz8(VIzS#)ID9`OSgZD7 zO8GZQ0R)3hd-_HYB)bs%>KVmR*s%z>Ey!7EP1#>qn6OiiHjhn@HgKejPJIPv(IT|+ z*O3_1Gd{R%Z$purhsKQ%$KSl84qf0TP6bX@mxaibt{y!gZwrbm_lHz&AmxKvQ^}wTp7RFGIStcpRO$#KjcM)dS~%ofJ$qc)0;xl z&R7U#CClM+iBH=veq>FTR6a`*Ychu;xqWTgB>-p&*RRqNX z)0n;`p0Rg$HcTg8boMt)IiBa5{aj1Cg?9x>xb($D>LVooj90!F_G2qaGspJe?7T4S zl2%5gXN%Z|?^cynWoeqqBRF55*%P`w3DlR3z{ClNVDK-&E-6gMV^4tE3B-pmgFneL zpvljB5?&mTP63k5qLFcF$kg*%-;~yKvY`A9VZ52PJB^I*hlw$4g6{9h<{f zU!7DctVudPJ5}W>0;R3JXD9QN0Wq%E6C!(Y5k7XBucZ(DyP*P~M&O`ZlPECX@#Q29CMMgxkL48qn~oiu|$SCl1$ijSso zH~`p6Itn!H{%e4y3b+W0D}NRMMsKs-v`keiI&h{&Mk~A7`y4jpx%6IzIO(2MyfkV% z_5pe;cd9=U4J`MWPK+#THskGcjprfx zrSj0++p)D#BhO~O{G_*K7PdtEu&X5xCAJutJRr(H_zV~-ctP-_E~#qx%}X#Q*O+4dsWiUX5H7U67C%;2=%xz|7^8&gp5~W zHJ-C&vqnFb53ko`6!NDYaVRuhhNo*Yx4$M&Cr3wqm?lxKq%KskS!;Vay&vI(5P)NS zMDFwVqxzUA02x()4K^zs{;CAjx&RN2ounA9NpQe;#K=#fLCTBiypi|YcArRMc>6V1 z!ynt5IIO6Z^x=cei5@N}yg|MBxN);@qoR&iFn(@4hm|n9MV12*HME?C$`U;IC0i&N zplU;JubXQ3X*}iE4Lj3~d~RA_bzDCpaRP7+!x~YS_|-xWc~G{_*RlHz$x+QHTOFVf zGuO@=6S8KqOi|=Uf9$rZJ-p4!gNQS`FU~+ssaBV9K9DtpN+$(z%VD;HA_fT8V-7j@ zq?Wpy=dZ0RdEbq6*^hlG23#F3WMi4*>>7zUZa)Dk)j)^~{avG``Lhcpo4BUd?n3Bf znJ#pqkfBNK+uZpJHs!Q?HRED4N~GoKl%pd}!pn5o)J52G)uA7u*rSW`vgZJ*V!*05 zuMQ{`!MP%&n5}ZFr<8kYs&{V< zE!cG&X!MD?a-=x*#4U>90gZMpc`?opXR5B&K$99YU~gxzRcJqE8kC7h;#%bdKc@if2V3AV5@pA2+7!1m@}ivya2WByl;oPg zcz_fB3>wQ#T#exk4eww2Lo9mwKC&5g@fyf&M;F;S*%XWLoGR!=2*i{xf}Ov0zV-~Y*+p@UAm=DJPJHk|^ zmkRbN0D@Ia^mra#U*EX*lhC_F!u&EL);y&wW=Jbvw95SWCHv0m8n~g? zY2?%la<4^-LVwMUzu7ay;1TfZ0(;H2MiwV-59O9}o8ju5ybout*vBY2LXQGk*HDVE4;O($xSBnZOd$sKPp;jFN z6D{w^wj{!rlmy@dc5U{mB+|<%s;cD;={#?<;ooPjGQ*j;KVhDvdj1D@`=ljc0m7GlAmw)c+Hn&r1Db~S_ ztcmd;X1V{6FZ{4KVybvkyfrNlVs%d-v#54u-0$H#CXna+KM>Umf6QT8W?}B@E$a-$ zcjVSEVxXiiaZCdroFp5uQ*yj!m)kz;c4w#!M;-^WBWFKn!Q)`UHTqvyUh zNzaP6Z1K`2FbIvz|mC>JB1mJcOrFI-+7>g9Pcb*Dasnw;nH2 z(F49E;5KD_nLq$uZeFh%YUj8POgzKJ>E46T!gTMRgYKXS6B`i1v-p7L)IZfbOKN%t zpD`E9cvR~KPo6+;vG*ddxpdKUM*w;VjM)3$32@K+MxUMo;V5kld~#3QM8$3EP&8>Fa;ob$m?EYBb{(Kf1G$BIvmt04%MO7&;HUQ*6S4KYE0Kr zuFJj^s<%WU-CVe>?nLS3BEW{QJE9{|$n5$kO4#f$!ZhmM#8OUPTFgg=Q8!Qi1snRH zty-gqdD;HXh2LZ}o4EL=r~R%Hz|N-Rwoch3!3VGwfp1=yk&Vb~WT@g`p_NE)fUaE! zOmKCg$6*fidxl5Et##?4;$JKpXY<%j;e6)sQWN7%wkIa3Fz2~*5!9Z7Jvuuc;<@X; zcIZ&asVY#R%m@#mxaM{5#B&9H<`c_g$IdA2WU|d5TC_vq(z8o_?wNXI0~9=(hgL^_ ztasXHFPmO?4H(dikELr$(Uxu;vbr448#jY0i3B2U;gE(cMo@8aQ{%O_G)oM_;LDiK zuvBktj&tWZ^eFg(Lm&NSHrJVh8oylU)I$h=hnjXk->RWPGu(->K4UM>MuC5PTpQYS zP52H{iuu+n-BFgNq7OfUh@&3~7U>t8l7<>*aT*h3F4y zu%T^uBwGIBTMnN?7dJYNh@DlRJqv4^sl#6uXv`V zR`OJk8wYL7mvA^0O+%E*SF^B)@J6X@xjdOraZ4SSl73#u{C=GSxz!hKL0gLW3>@C= zyb0OJl70B4$wOyHwY}*909n`&FEc%bbjsn4E9~_(fHFgd{I$!=1(Y3E2H zea$TIV=RJ1*Y+2+4IIi245nL5tQgo3Jf+FE%e$bw;`EhaJcruV^>X9C$hn9~768m< zUh)$P_ffpOyjYGCE78D~9@>LNbgkinZ@0fEimKRsZKTP>;@29Yu!@ACeKaseYh%Kw zw&!;F;I@iz|Mh~Zcb!(*mP(6$(@FYC-t%tmIp0D{!c#!Mj$K)@9%UFc&qZ%;T^m`z z{t={_-)MM7mulZqQlu4B&l5Y9@Z~&0@~xa@iU}*Cq-sW~F>iHnX6vqqp&O6OE!TTW zc2?eY$s5y%=TII>lg$d_Ps2c__R4u58mq;Bu7L{8?O*M)n-ZhyoZB3!sG@nREIvK& zfwe;=4FRQT2^sb@(r*Ai1#D6=H-g-V#%|A3T%+9*%ZC#b^Wh;*a>{iyd5ynFC=Sdj zp$At(lu+FV(?_pNl7>G~qdmcFo|CFJ+`ZXf;_wCp#pcz&lzLi3zm%he0u9J7Y%%F$ zVELEBB@=5BRpmSZO_Ud^jyxH!drl)~V5K6EH}9~g>bCKOs%#wrnD zG4OvTv$mz7?PUe!{HsF$f%5~z2~R9Kp&^?z*GI;@S;N%T+}HN|ED2Td2au6Ln?-X$ zsQtxK(OmJM_Ys0vW)r?vxqqd85s54JI%Q}$%5`B-BaU*^Iq zbFm!@BiojwYC8s-4w8I*`IJa0iP2v%7NZ#ypkzu8YCCRbx`V(NJ9vD^j?$0F0ve{P&Cocn&J!@ZqzQT_|T{_0WHx;Rqi z{rSlgC!pvH?+oB2;$b6OzgP6(wT@R2g}C_=*1IOJ7^v)xf8jSL(6XBcbY$bR(K5o6 ziqeXnGB&Xv*fABg7;C?UasTQ$mipN8SfIK?ZBeq?Sv7Rcl)j#=wR#A&!b4sEloCL? zeMl`=en5O(FIfGEbPC1aU1>x!8 zy;<@BY?M^bYa=j75fuKGhJKbLyKXwAH_e{YVJ>Vy1t@1! zPgIX8EqxVS^f5GiyTG3PeOO7aaE3E`OQc`r5)avu{P zvg>6w_w2DJyDk81>3|OqmX}{3qZtsAp(5c?1__js&_zg@m z3CmA64a)afL76dLJJgrq{Ds4h&0l|1b;@J4=_+#V9TL4I&844A;S`zpL_7CeII?J4 z6~h*=dE3}^#;s3DDu@lqQ_#`cW$&2cTFlZT+< z=beREM+F4~_FCt~2}6&UEJG<^FvRVZT}2a6swdF7D6BTgvj+Zeelk&qV;lWIbXE#fmE|uy zlR=F>tZQ{_1d_*0d*2j{MWYbOzJg8TBIFphsbm0O$k?1=Kx!;Y?+DUQcvWNAtnmhD zFmaTnEdNB;P??1n^y{78qBzQv%!d+*lH5Fc^-}=utPd4kZZnB42%B{$ zKa3Y)Ej)Ow2&Fc*5%kf*FtEBAt?qKf2DFLk@tP!Ce~VYf7Z`vpXUa67kgY^9kFY~q zp8!+@Q-?A`JMUezaXpqQjR@xhAmD?^oSN7lR9PQ*s0|6?Mk%3a4Oq$F<>y1ck|2mw58PV3UxgSQ- z&lWHqoXhgQ3aL8OqGH!TL}D%)5>A>p;=+tDDJ4~c(rH8xZ46KH>+frfV<=@T#()a63Z1C728)CRbtXiGRQycPT!^=oZCPjyADy^pKBpAUr;Pqcv2V ze1v(W=k-vv8V^W=kUqWHx59KhF{?!5h+0Hq71?a@C#ilQSb~Ou}@UOy_5vNpc z@i)-|QJ)tiJFQJTZ=hrOPvTosNkK&h455{Il~kEjpkntjR0%dp&woXCUFAo&+IaGZ zC>0DFhY4T>FSXR&%pGfN{TDpYO;^~i1ctBJ!1LSZ+L-g{%E$aV5{L}|**WVfsh|RdM?DJh zs4mEir3XFK;DboD1&rJGHzfSLVUajc-;!gj$~- z=-$MINPrshA|i91aZ57vNn!FhEj2!vqw?_sW;%5R5js=rIIM9AOR)&2S!8hJ6QMW< z6N$E%5tbMrf2TcH)41M`-TceYp0sO2)mOuY)VrO#LX+8M)p<_-*VwMCzK&CN67o8 z1Qq-AqQAjGYf=R7%zjF<*+l_ujX)gOZ($~qd@X`7JS;1+*6X%9z?JXEQK zw);;rJsTcTlYY4$>_}AwTN~m4u43%dZ^F5yHFcEN^Tw6?1Yx`s=*Q#Lv!lAoBC?uK zBZDhMZ5UluDJ~BiipHsqnbl3=mPm5oeFOq}1MAv_3fy@-fr<1QuTassy$RY|tAjv} zbm^X?6VNn~+|YhnL^5s(pc~N4G=2o13(IqkEr~0#FV7SB$eKW~D5ib$4SCe$ zu;DuQ4Lq|L-PNC7lFc}TuduOqQwk!4;|QjGEo+;H$OFdf+=d}Zm~0C}8*)?Agc;RF zvkyjnZFk5(twinf*+s3YbCh_xe!P#Sj|`zUH$yqaY#ARmH@<-CaP*s}pgQh)d^XKLZX#*AEJU1HCy$;9Qzf@H9zkYpKKpot6QoTD_Lq^x_l1d5MUW;e%TVcdcZQ;mN@TfBwVBb1(rqM6kxMV3(jKvYTnU7q;r z9R{|_WS&@5f@w;UUFYolLapC%JQF=MN^zjWTEKU54|ZYfHLoV~hAcjp z+cb&nadp#SaLq@kDrLh5y=*&!+KsAv^{)K*BSZ)x`v%_RNMNFK}Wc9=ol;6+n;~7?HY?$SK-h z0euZusZLw#MDjS@7cna@Ec}!B;tj^F1=TI|CoOf0g8MsS8yFBhx89?@F6vaG9h~^( zk+GgvMrSysF13zBW#r_zu4oxsrf;I&g1+WS#sNmQyTEMfz@wUH_>&IO2QgQJ#WNdX z)>(Sc`TcHTAF5o_+2hASyu`Fv%8>Q9MMPI!Lj;z@CclfMZ;s?ZyN6ICYV62T$GIZB zj0)Y`byeNo{P_C^sp26iq6^TRYbm9}O{&YS@hDqYzq0dgG}}XMqaRt~a{w4UJBSnS zA*yo;(up`|Z8J!&eOeuhw+z!`Ef2#W229w{3*yLN@gO8hZZv6?A@k8&h8-F!>7c7n zqyt6DQeMWJj98;ylg(j#{#kG&u~?#Wy&2Dh2OfR#J?_hFj;gJj9nf$F_*pkhWwfQN{lw({Gwi>9EQw4{_F9lMY z)3j{%dTkMK8+bwOPdzJ&$2{~c9duA{lVc@3La!?M1-z_`Byt6wo9L;t-!0qu@(H}}UVY-KKaOa0(r)UwwKpkxU^o*5@e zQ{=Y{b!h3Yecc-$QHjy;S==aSEj})q#ifCrI}L5P z1aKY}^vkQ!d4{iPw(7EI$sq`<$W}}4Pa`)Gca46Y3#g#+2^2RLDYmJt@|Uwx_oqe^ z_u#!te%m_>kc&H}s~_+OO+<3^`kYKLU*xC~0rv9%fK}P%FcsnRDU*V-c)9oE| zHU#+BScu|B(T3b^;iCHs7ZZX`=?DFs5af7{rmw-P{!uDRT+(idVU)~FD9MDn;><`u_0I`L zU`QsIfX!>d;_-D1nO9ar)EeD&GE=JVw&*4KEm_dc%Nyn%Zfb6%rp&~iFUsgn#atTp zh>ewqpNjm1Yt$?xdVdrc3xRszMm)YZ792dTRNK5Pd;+79|Zd{WISJ8Ln4ni$+J z&lT53nmCEk>Fuc=du@3Xmq;c>IjX^d%!SEx`%B3ZLBB(>OuXtYYiKN|%cEp9myJUS z5F@Z;7wQrSsn*9IsIO)!HpN*>A#~Ij1kWoKphn+RB`kj-+8BL`inXr{R+4*4LR}R^#}X+35>HeDG?H z?2|K~xM%w1P8kpgvjNI-f}QN%Mq(Aq^1Sv0=ukarQ1(5#I<~duX8wIr=Gd_?`1j*( z$=dwa?TrSvcQg!`*k5@X`3EOXmG3-46V7hSi7#zj7?kHzuN;c~{UUluA3I(kEdn4- z$J~+8$sgt?A4qK1bPzH z{Rf{&$MrZ5Yw@I~lcAk+$?^grx)_Ig?e0czow{B?EU9qEc%T~3K4m!N#k1#_r`gVH0#;cn zmP;Sp%k}^X@kLZBZjc+K!z)y8tgchvFjU1%?c~ITK>w9|3zK_YpN{hI`QCFzA!3`d zZ>xi+Kv+_l^BHYK{s@ccp`_R{hsG`E59h(^d1D1kj`?_X>V(3iLQQ0Ar%8Gy>gw%p z#>; zDA)yc@GMd_{L(iXtId%Dt;HRl<{$_G4!w2Ej^NWb+s;;hmPahlp+gJQTXT&|0tnK* z)$Y%NcfNvIiNXRC^}2+P86JEB;&xmW4WoJzc&9vDBc+v5Wa#*DHK2S>I)N_AP~iq` zVv6EhhN_ge%(>qzq;oC0MT9@RkDC5EdO)+4(e`2!-b1^1Ak{t2CqSdfE-Q24RA#VR z-5TM+o8t(C3gO3_5(49r{u3LZV2hT^g8iF7QyS7as+ps!;8GUK$M0psk8u4~QRm_vJY1N`z%?krk4c7>EG8ob&#CEFnQxcw+6*JpN9 zSEf8(VO_K;#=LpXYjerW16xpFisI!iIZ9oNf21LEcOC$rc3&(ZQQs9lga=MYriH2r z<3FXT+-mE)M-TP^z_;;5&96(ZP+V`njUvN68^IVxAk2KMmun%#1mkq}glIsoM|!Z* zx>;e;Wr}%?MEUi90F|(h>AD8l{}qklro2vtZ2W9t`=?6#C%O`4dpe6yEJ0Da;gYY@ zOi|a)Vmj28Sjaq?;=wVBGwgW}!$we6pKtkU_mYz7Fno9Awx$B~mR*o|*WFzw-Cq+C za{TU=q?sHXNz=e)$GhdLUu8SN55HO6F(L-eZ&@HjF86^RYY_GAa<}I?ANC)aD?-m7 zFgfMvEz}Ui8t4qB*fJxmKk9HHMs(?5l>}8@Mn+Yn>XE6w0yewzcS^p5cc4mQpxJ!d zB$g`NABhR~X`*}->{0`;#$8(6rqB?HR9P;BbXJmi^0vNO#Xkh_RKVdvvJl9(7_B$#;iA0c+D2KdTrNlwl6q{rs ze3W`u1YJGwbOED=)OEYmwGGyvX#^;JfOLH0!{BxUSBh9vIDbUUIw8Pg{G^GW|Ci=f zYL~8Mn}+a8GXb09{XLbB3fJpbyO{b1uTC#5(A_O`;8;ZuoTNM|P81yBKXw`*c z6-CX+0Yyp~9`ZIGHaxFSWD{=EqV-^d1w-sUG_I~5FTWscIBI{}L}!^4F28GD-cw^4 zp7Xw;FNVMONJSsIlG0J?#|p5f4N&@`6oUMsbE%6)y<7A+5mf3nn9x5Fd=d`Dc4ny@60wpG9T zWC~`Cb4X)ldu{k;Y)uQYxKc)O?r5U3J6!`h*Ws_FKZz?emf zzp#tf)2-OjBiFPJoX86042Fxx((xmD=t$0kKC`PY#u%!tzY)9&kwF9yVu3jGXyS9N zS$LSp-?Z6JF~mxud3u&I24+H8Kr2Q|2E5AYamC3ej#14=B=(iCV@>P%%ocvTf42#Q(aGv1jHi(tGHLN zkw7FJ@~ruL19!?gw%dW&fM7>@?FFTA(r(5Ct%}3Mmv_V_#AZFt0Pa4L%G3c2v`rT| zH%0~~uFL$ma?mdLkSJk&Kr~?dz#dS)9ug9A`ZS9j{#TbvK5w1sEx8HJ)$K{^$MX>1 zj*!HeZ{h|k1MP!<`L+~%IC`)KflIp%<{yW()C>zBLC1Udw1e(ZZQq<=-_Fe!!@9%k z#xMEjybHYkR@xas6RC7tfW>=O#{g&%1~utj$WyMW>pdo#JZy&^Paf7%onF-d0iCU% zBu#||KfHAlhg7{Z>`3XwUkzRj?{Q5E)xhchs36GXHgR>b387U8>e>|`lGhWi<=~D1 z8$2xfxq1U9Q~Vq;L=Z?F-QP80e}C;?bj|;*y0QPidLlR|3J!dOgU#T?`qjs)H^Tjd zbF0qy10gFvLvGF)?dWX4Jnz|1>7*+9K+>n8nQ{`J%C$uTh}_@RZgV^cbw4XHkq+Z- z(?s=-B-sz`9$MMCc~ZmqmahC%`Hs1$QJP|R&#r#c@#i~@tyG0=??pTY zNErf>X^W#f#R3NKk2K{90 z{u=VX*GQaT$MiyoqOk7bQ%BCjQtm)Vc_$JzkKD*%)tC40BbbA6v9uDuXY6@Pq#S&r z$xb~{*LbzBSG!3UWI#!?A+)F4qG;2R*Yh=o6m6R}{9*yQ;gqt)Y0Xvj`r$mlSU^o| ze1+7yB0WFfl0aDLA1+qZq(q#;h6BbOUB4RKt+V7xb5I`s6Xz=bUJ_ zA-9Er3!xkGs)ib{0I?lTE0I(-+b$wY)x=_dvsYeKTOI@PQ>X11#|9RCVwLEq8BY>E1*|S)p>TY+r;-WV;Sxu9S1bZo8 zf?Hqa|AMvmi0CR}6qIn#|9=kf@og~0-d{vOG*4wh_Ukrp~gl6RClcp#Nw-GgWoWj7Lcj3Pr0nH$ zi`;P3znwp0=&jON;Y*iWeJZ8GB%mM96I?K2xCOc*c-$$c`afRi|3T#}ZYZ2gxbiN5 z6NvlxU&cvr$L#;`jQ?5!g7u-|`zOPfGEM9KTZ!l;|A)t}jku*fF5FCrAubaFVxJrs zQ5vh$gDU6rAfE#c;RJoB%10nSf<|q##Il0~b_~cb*R}+I0e81|bSjBLLyH0ID{wfr zH1azp_r5rX9EL2&9gcx7$3u^{=Vd*3yz2+}xg&&|FSH{Koj%f0;m)$=!peKMTUTCT zVk^pKc7<@~l@JYjG$fHx_*I3`no2p+v31BkN7}dG4!>-o-#%9guqyzJ=xZRZ0_=<& zebY%+5Bf~*`A&hq+uFnY60PQ8OK)%Zb+I~TVZ#wvofWW{e~Z`D4hgnQFU)NH64&+1 z;t3tqcRtK3EgeDv>{33d%Dnye0Q3OBP+t_!Cx&Fe9n-%HiwOfKn(BAw=fEyhPoZ0> z-sj8u5rif)w_S8TP69z*I&F=ezSm|{t))4Zb?mvM)kWSO4(pOk&pRvIwGopsXIsN> zY8zv?doN`TYl}`Te$1xn-BD>y(lDC=>V~hvT39&YPQqB&1^xJjbs9Pa@5|QuVdV2k zHk9+k#?v=^WsM>lrH0UF)0@F~RkIX#tTu82U@RRqilU6!<3;-Q7jNh*DFpmU&zyxy z#|MqnrY_)zU+(Nta)wZ`gv+vu-{Ml`?(7^_kS9w6CZ>{Ub1o zzqjTOOkdR?cYqP5p!T)C`QR%u@xw8Io5w_xlee!}_^hI08yh-y(0vn$vcw0V+zh6V zKH_lDII-{-fTuL+4GmK&t%rMD<}r+ek0yW=Y!s4@zg0@pA5yT4e7U?CLVa7H>y=AO zCo&vYO#QpezE7)Akxf|rMWtETxTLmI`CYVv1^Y8yZRIRVTh({~KjRfw_L>)w&(4Q? z8ZI=76(=Y+5gVB<(TFyt%|3d33F1J|Y1JiGF}tAlS9^PrdPeE*)>jg416jxH3fqQz zTRmNz(ED}WluGi;1;g1Y)1{M9{Fcp z{M^HCr|*(y)N^YMMRxgQWfo)vxac*A@wyP}mA!6&YYOU^-UnVA)7ogSCO!iC@rX0t zDL2AxW7EAA4NDC7bwI8GskB+4E1UQ#_>GH1T*bn#^v(ZeKpZ#3m0$Whwti(v{QbNC zV21u5G|K;{H_C4fg&PmIZvSv1|7Tk3`1tmYOTGJb(`SIp2fp#uhZ58y7;*F`H7V{Z zfBb>f2%1P&^A5($a|5A%V1NHWgGqKqlYac`V>x!ZCu*mmqOtO(JWcxaRK( zlw$cK(VL{yWWWCo3Oeqe{2}zu{K~OM-gRNPmk0Lam4>9&$ozHg&TjbGeG{l4}2tApF0xG5@ux@iqe6P<#-xbJ3=UE8fDHEN4-H5I=Apb*WGB>*_)OG=a3) zlk-w~&5J6JnR8W8Sp0%{tzU&J!^+_N7+d5(H6$&&#hJmE^$|+h0FycSjpqQiQc~Wu z?>UhP-IKmefBdTtap^FyqFMj!?}G^3IOM$Sewj?YfbWC{$MO56sq?<=rL(i6Ecx`z z?#&BsO)WkUBjd#lKEmytj~7Q!xz2s&h2op(?v$vrkYSJVLDcs7=Css6{YBft%9Gux zC70!|ahl~yGwQ#Mi8EScW2W>Cnq$tmcVp-0i$gHm;}tgjrlGUgL_x|8%x)->PHo$c zYInbnp!}pF3_Tu|0kyf{$EY73h2w)CYw|Xjba_)#%h)k7K1GOJ|7}R>?Og1am`}DJ z*$2NlYy~7}|F)d~Ht!eoQWrBjvyyY4=m;n^w7A>+qHQ|z?=ds@5NG!}&5pI3&gn6I zGm?d9f1p$C4pZAP_tCk+@z0A3*{`a?IG-F?9MCsuC)HS=mKUUqi?(8AVZZ_Y~kV>bmy?hNqvC6FcCa&J=YDcTAFoeWh zWwPUsEV$+l=LAabBp3R~RAWNF5TCTc|#udaE3m$c#*7 zWfy-i@>zV-%k<{FzmQMe+n5DpuYFVVTy5i7-5QbV zW_0gsmpz-H8!!HHL1!2-J+jTnwGRi&$<9hI#c(DCDToqG$xIEOFnV; z4oTwzLo{OGx~q^IKf+xF-D(Zv7^#)_v6C7?vo@uKaK|4qhzmAI=RT>MFclT_nP>g7 z$GZ(#>6U&WtZ;oz>GceX0}>~*>d*Y8ZS-UD&zaQ$^i$cmBf!nk6Ms6KgD2>A5DAetg}mJ?K}&Bg{Z@=h>s2@Ho7GE~5(c zyaZjBAJSHCC)Dk(2z3s7ymbf3yyeIvBbv}xFDNKZGLg)7s~?D!oU9M%!m`bT{#*;h z%698r1Po@HUjGMm^p$?z3I9LipoJWv8mP%6rWlW1vyoVE^zv`+InH()`_*M2je=ab2b#B!iW>BIJ zLRT_x9SeWUF@!GF{_GNndu;;Bx1g5O#q$;al6Ce|*v!`iQ0u<~Ws;cM>L+C=*9hx@RKxeqL%~ZHi_u;)k8P&3pa8^C`PYk7&Dm(3+_7`{8rB)=O-^OyhihPf zYk!^J1do5k)!IAx`J!aEKhXzdK9TYMDB81=gHg$dsVBU*1KEhs+yhZ5;NJKIWl=8s zHF@uSaia@QUfSz14;0mnYRIo$W@mN})r`Bq8&k{NxzWx=ylXpO@-(`pSle5NXI58u z!ZjSQ2YySBcx=BASN*rv(7>CiD{-fZn|uDtGaP%*=k^C~GIuM&*b~)u`L{b@>kLQ- zyPg>Q^ZUuMQYms2Z}t42LTxwg1i zKz_ZlTht9jX2vQ_@SwFyy1y(G;6I=SDdF$1ETs~VWijihdb-biE$)d4&0f)zmJQSc zS&5;a3V4Q{(&#B-9nuys>Rn$4A$L7t)Gwk$ja23m?F^0HKs+}s%`A6vO zozq9T7F3r@5BMwzDKUNGuNxPGT5K;QFnythAgIH2lhHRQ5X1js?W@D0+}eKMty@w+ zT0lTa$w5+DML@b620=Qdhu%m@D=96~3@~&KAOncBbPokrg*hs&-lX`?`7IMAAUfdtjNb14Qy5QH@1omaF zr=M=o)bF&Ut(p645IX~5y65gBKCB`-f-GLv%&Z!aT-ATqp%i#tY{-UN)>9-*6ebWy zSF|cQb&rf)bp_Mgw-( zC8}lanxb%NpjY_&G1TrL9d!j#@;f5o;fsrf>{cHPi#Q7pa6lHXM98&hJD1Rm)^_j< ze(`@v_J)6?24L$XeO}i47(3KT&}s*!QTb*ZRB)@WL=e*%lUYPfnZmln+79^=%0*%%@l5H|8h#I4y@vdPf3U+UCY@ zpC*oepB{heH!o2+qQ_;K6sEJI;2MZV<0~Eew49FgIlHDm{sS6^oob z(Y?FULu7ojCG|kyJmA?(lh-0y^|84&SfW%#ffpi;i~oy$Bj4) zlfaZNdAJ6rZ%Gn;T1vwv2~H!=Zb#%5cUUBa8Q)x|(DQW>JXiNCWl^x;iLLXp)R#=$ zZA+pJl3nlt-E`SH-Hk26k7_Bp#l4BK3Q6gkh*hgEC<(N@K1oOZ-e#c(Nj=`CJDtEK zKsJ)fZvV%*9)a`G$K(saYPjB{wr&+sX#+7D9~HxJ5<@4YtclDfMQS^nGQ%68U&B3p zs+_85`F`|NwDhBrC^L2F7|`s}E4R*4{T>@E{@Zd0&|WAz*n2YNJ}{$^f1pMP0x@x} zT`iIWLrT;7o(w&~%alZ_UQ~Ykd0w=oX>L?cpA{2r2056wZ}ENg_fpKDx2U!hIkn5< zoGA@g!0#NS@{M(Z;84G$spO(tm1rdw-@&Ul!_)lPOL4YV`1?42p=iFHkt~O>(cHa3iKbMxwH2cx;q35fJ2 zes6SN)(It|&+F`d`B?eK>+I4^UF!W!Q1fmP8}#iOXF~n7Eh;m@NFwVS`eZ`k@JI-e z-W+LOAk=C-t&om8>?ih3t~8@3$!>YgIMb+PuF7VZ7&i3x-H_}djAxfr$nya>5)ZSa z9J#onzn}+M9vpbKM2C|^)RN@?0p$tIP1)`T+AD8^PU5ak?;*7n#uWHVurGmqVFjRJ z@^wqB4KH-&Cl81GOFnKo)rwnuw4!TB3B9SAG;dt~va3?esQ;xs{Y4lXx2n{;sj3V_ z-D`P!Z~g#4dDL9>y7EXui4G>4FGB%_nr^Y+!0UYh@@`^Pk7=jN>I;jD>`n6Z>_(h&wB9hR zfgh?Z9MNXr3vy8xOX`=PMR{H}^}7pQi06EQ zc^81aG{_pp*fq4FK7jBnb!KK?TNg)C9H`VR-I89j`!Sw9WL_1x!n_5@${txS;D83V zdKd+Nw~#ch#MhMxf?qX}h8%O=5K8I@c6)(pQKS5N*)gp~1@p%<_4rN;6a1$P^Diq7 z4HS@Go5=R}ZP=gg^t(vS(;Z|_XgmZf%9WWe$lQEHUl9u16p$EvpZRylM9cpIivD-X zLO;7$zZzKob5rZr1^vrr>sLzhziDdxTQB5)=>z@hO8@LF{VJ{hmN*4ER{vGE>)M?Q z`@7z!8YQ{vc{VNf2|R@kfQmj2GR^Awp?;;HurX7aZxs zXAdjb3Ud!miE24>gz5?}^hq`tHL$B*ObWbG!6N#s(k9B6k*#~lw+Ehjxev=+%0^@3 zkMI9Z1zMR=^eUoy(yu>Q0ZHcbQ(9Ih8As|l+45~1iToWzu8UalUVe>_^f zsw%Ss-LcJF+ZwkZ8YboV!_FVi97PJn2?Ttl(CuB}&(Do3OAdWQMQAH0uB!UvepD~| zo;Mk}&YyjzF@9})F4KR;ihlaL9Pp<+Iy{Sbtf^%Rk8~)_wu@p9)pO>|*bEW58zaZF z{X)|8IVAk-{_NMZY};q-fNDStcUcqQ6*5robozi4>@f!b$K8%!PMz}g60V^sk^TuW zpy@&Sm@uLOSoTABG2mQtCdQ9z0bgURJHh0zPPZ;g0{Tn9rUU@WPa$*;SGf4jOHD1e z0t}H&soyrE@X>$euRJKNI$*~OUq|-gIggnI|L_Q%-179kKuZ#!%V)P;Cw+|&bd70s zEf;?Md%ous>qf3D9kpYWYtsCx(ly{EhChFwGOewQ8qrfHt4A}9>*$Br6fj_*BQ$GkyKSfuz7m!PN5)bj;3lH3NNk5D1R@cRCw^Xl^K;+!RUB zr*^U}MkdR=c5=R#K7pL$WZ!o>)iiqkx|HsXbo^t2^%Jr7gq!%O>kSTjUFB2n3q_7( zXisuUE=;-Lo-(gWAH?6nZQ6ST`!wr~a@^>n9qs>XW{!eK_>?cdgdmv5{pltLV$*}u z9XS9|KC6=<8ZoS@$Mu5+>p(frO1*zP^~l>w8EYNXWS$iul3<6U)Ymc@3#8Ngc_Bp; zm1+d&WKD5>55SGoXwn0uY>Ro0_8B#lg+)p~=Gn*%gX=XlRdKYHL~Z`?ST`=2PjZ)- zFCgsZr1x$UUIs|2G-3S?zLe?Z4XU%BeEIUU+?rGHVGSN>S04+Yv(C@!W%4bHS4+yP z4@w?Siw4FD>J+@Lr5&(Y+ECvv$`{r#`7o_(^3EnVv!6kVDHOQ*fIDj3_Y96NPU#bs-zF%7G9G`#GcxNXa+ZWpk}62p(}lP> z7Hp3}jy5zx>f3)APN|4a1$0_$t~8%N%bL>)@#^-7PWyPf-nzX|t$PLy+p3$a zDBJ5Rs4mg-Bq8Rd00%gYgD%Lt#yp@S`%kEu&%<22+$|@0e&|XXYnw1u+d+$aF2CTj z5PG1hW~nScKQCVXV?$liM2?9S-stO_)8lCLRD-0zSwRa@evZ0%>2(B6pTHe8il$0M z3-ce}r+1A4EC+tg&-(y}J(%4?Xa%#@wG-SI#Q4+qGr( zY~ZRl5r;pF%F$M@>-F8Z6rqn^idrB}0X`>|1`ro~In``g$Y6l{JhkNhc*PTly>DC2 zxG~3r*e^KZSFxqeTCJxPsLU#YTM8}7Rkc)5jS7cZ3!=jbXJDd95UEAGIvpM6-WB!< zC+iM);z4`XrbF79lmTdFLd=*TAjeZe5bz#u*+pHw0?m-5I!P-*@*8z=Huy)w-wW##T5y`cef~AJoheH_2(AI0?48Bg zf@i97P3E|RiDgZ4GAHrs{@#{g^T%{O&ldqojQcz1tIN1Y;k?@AabZTa8rs?Yo?`(1B8>g;)L zd2@MFJqJU=wc$?X7ve~1ccHOZIqT5+eBMRs-4D48%8aTO9NgX?jyuBL#tm*fXlADU zGBr=V5FG3@*>V2M&NJkACFHn(x8sp`!Vm!;^f)(hu`VB_In&X0(d~b!3zt6CBQdn^ zl4D1fx188JtG(*Zeeby$^4&7DK6&CrzVgO4_M@i{cP#Uj6}p1Jl)eNvHj4u;qeHKA zH1pUKp;5|~XhWI^ILZ(h2yY(&iED^gftacID^39WJwcG-Ke+zx8QZ7s>7f)l%Ia2 zU#P(G_q39D?<#eZjn7^GkyreM+1WVsXG4ld2>8xEgRB@$YRdW0_a0^HBgsnywU=I& zL7I=^ryOHUOq{MnMd3Z%+PKAbY#KsB!!yP;emRH`Kx*b;O`%C|3%!IE#4%HdxHu|v z3LYOqAWpY8i0^#-oTE7R`gDo6J`5j(RrIk>x;E|E9|EpXWB&pbgai7|( ztC^);C^6o*bG4K)jy*9`I-Lesn~jccoo;POLblg1@pZprGDNfLST&Q;SbWO-XyaZ_ zVD6Jwu9orv{85Z-xswK{0cX16A+1nAnpfZBU8Y)vGNir|)y+8RD*2(6)tiL-xnV~* z$=Xi-wtJH#ubSt;KdFWuJ}f_;iUK>a=3<9dQG__wCUx}jtILLC6j6r>(GsK{d+{I; zox>SnsMouYhQy`4$FNe}v>_Bg>rI=~{rFV-nuoO-jI5n`m>yISZMmC>S-s&|=AKdY z5!eQk(vhUTlX=Q}cVR~0DIN-2E)W|$NyboC1V6ZZ+@^TK%yK&e_|zq7Rf`^`^}mu{ zS&`H~3=Q@2v3b9BMU1^&Ajd3LoKygrD$oWb1gQd^iDi`hh_LhW)rFL8Z9~R@Puuk@ zhpXDFg@lo}H6^+D4=08Z&)*RN#s9MkPnhtV{RHDXbX*&Zha3m7Rp$jmVq`%Dfv8J-f4MwWo| z!<9&VwfXEZ++eJBh@S5>9(qi}LHn+I<_9WK6Zi;Vgx%-}%aLL2kvkX-kaG_mTv)7EJH5R)<{?UC8f`SI z{JDNfwEl;Z5%mE>t@@hslD>oa2Y&_3eb&;UMfk0ye5mqjpn&J_W_y0r(2Nk#$=zJ+O|Im7~HOREdRwjwDl;du-}wO-0ZeDj;PwL*>2{L`4wJKa!dH&Q;UdiN1fO|=t_$*N7Ac7cRX@@U z_<1>3sSF8`codkRZs9Rv~r&Ur6Tm2Mez@LaX^w&>`J0G$WVKhk^rOWdxLDq$(1BZ=J&NfS;O?^qz?38pob&4>$dG?|amNfSjKulp0JAM~z%r^l z7Ictf(P7Wrojk5Q_jV&?S54idpbVhSb2r5`=>?3xn?EYSgFQ5`Uss;@P4!iu6AUJ~ zc{T~6Kvoub0G;AqeytJN$4dOp>jL_FEnhV!PgJT(U##~Nfc)*~q9TU#T7ZaAzVY6N zLH`q&A9TZC3Snaa6*WN|=Dj0&6<_sq$cJUo`owWM}2K(? z9mPbuU#X(w;#Bi6`Gk+5Qkw-{jI)#GcSB#Qenz(^1Nku(%DGq;(8+GHbguAbpqU^$ zqD=Tj;>*nUTQgFpLZeSS7A+A<``xyF8&#^kgJ~)5{`@r0D>0gsH(Ly1pjnn7da45V zT?j&tzbSx6vR$7rt1xSzjupEUR^Zo`NXTG|#p*YSIN3vX6UD+tBM+))!R=YRT0e;n zz2L!x;DC*>rY?l<2aRuJYq~js^d6jsF*{#_3-EJ0gVXLXmPkAu?)P=e9l}w{5;-y8_XJN%G;JCuixip0E{0XwTRGMp z40cIQAmFz)NikjOee6?!VVegmtyY^YdDi%vIFbUZ$R&%)ZB-%6;nGzoPSk*tFVSL< z;bgVF;idt?w_zYJdIz`ZN0omLbJ_)X7^nHoJ#ZRFOj=%CMgtfBECZp1AtaXu`!ZkX zp5@e|q=$jd`;J`~6S<#|gA4IF@ZP8&0As>Q$-x&hKPP$Z*!~m5&{~6$^PN0P4e&DM z4a|a|>vh%cDQz3}nS2sFP^*HJVVeF}Q*fMWCiKeY<@T|i`93p~vfSxVx!6Y1Q={nrgngp9U6;j*3 z3~JRmbSK_^22JvPxxJY7r_2PtX=|C4u(FZFfXx1opX6ij2(_#e7?W4wMZrxEE)+Ss zy-fJa?B98Usx!++MH_qZ8&#Xq1E)Y1aCo)_zgZjEUE>1mH4Xr(hKp(98~ z6(@B_?;n0&W|i_@YEV)3rLU`AAi^GV4?V34g+eCmy?z4Tr{;f`sWm&)V-02f~a zy6zws-a4kO@}De`xFo;7 zfTY*Z^{%h@+PBnToC>wbMF6$s>*q(CK&V;Dup`*|2c~=26#^wJHV#y~DNr?kq|(Bp zyK_R&8su>Ye1#rx$pOI(%QPkbi@d9s>|bm`a-j`Bj70+6Voc1FG2`+}aS8)tH* z(fwj^D?asy>6fe=L_E4Qr7N(2V2_76?ZrLIAskTk*OT^@8&??^Ie@8DI4deSlX9B&%E|C$^oA& zjIe(6)t@L6uja37KT)Rt`rbl_Rxw#+-s-<4Yh-;Gkf=FVCupqbdy;}}fGtFRD-WFh zSW896km!*?HJzjA_>LqX4C6F`fA?At`R9JA|I4JMb*R&q-Nnk;2oH8|tTypIIK0ZA zJ=x1PDU2#zR)M8%npAr_kqRi7H+=@8rrJl?fC48*15K2X$#`8*;pG1I46qF$Xd#;0z>wyF4^;oLX4med|0$D3@&cJOS7<%m8b)!V4)TGO{GQ*JkSERo zhaZ1xkc0pA*;L~{lGE2ieB~qWNRf0xVcSv+GjfP#K;axnTEBwzMbcuwP3Q1WtFn+W zJRircR))y)lYIKuq{7e6{q^Wu9ORcO57zq4CtQ87p5 zhXSW(k7-J>K0VDx%$6_QE|!iWzaMt?eevc_x`T0R z-Qh+%pc`_%t|)(Y;5XE=ra)#%JfElm6^Tte=kK`1tO?^_Q^@gQlYj4LKB2}`sK&&W$c|Gwx){dIU7b5UuodX%Xw=2hVkEW^V@%*g?DzrTv%{bQ zy4#Us;{~nPR&HsD8C=B8c?%z;-kG<2yH&=H4;%eNYL*lWX!7l#z4x)Ti@aKEny>j) z?1-ITj+8it$9}3cuJwE+Y|~h)x)!YssH*?-%$6bbLn)Vmr#CLK(yfB1HUbeI?P1DM z&7gsS7@r?QZ|KJr2xe>88yl9mPH-m15p=?-y7oUx>nNAL{c6=OH%gG%z2}{ZCw$8E<}mLT{jjVD#x}bp2-3k31au&>5rouNoc&as$?-q{fMY zn!_>@Lf13PpEuu+ro=GGn0ltJ*b=kIwU2msHb3oU=-lP@Dww0vy`5J6*<88zq_Hs`m=OUy`ChR7jV(K<3?gxvllZ znooHY&ck51Txjh(AgcV0tm1*!yM$KBwq%~nSyroB*h?;Z3PxP&;RN)2!v1P~-aa)Z z%)p^;#~CuYyQ|xv30bFh`z+v>%>l1Pc+V4rPDcAiS|Hn0A>?IQ`}b?3_1s$X6a}KA zLcO|cf}+^}D{^uq9REqeDpt>LaqOK{qtx%bQ@q# zLlM;DMv4q13`sc>M~ySiG;@WfTnuS6$X}b3y}LFkYvV_VM-|=)2m(yWq?S;(LLt;J zX(-_F0R&or{3nf4(ewhu7grEUK|Pl)*J6;qHMtp>tHf$9Zs)~rV{W+B7gIoTLS{fh z^h5d4);;h_R!5GTRJcelP8aMeYWqvho|6HwbFO<unc{zJ;oVI$89vehDniZwAYfpF3R=7y)@TeOB5p@)W?@tVPgW zI_#g}JF;g9>X9bNnri*=l{MS+cy)qnN+aN#;bRI*S|^e(bwH|X=?aK^#0$lw*yvL% zW8{bj`uaFWFH1SC^B#Zyb{BSYsTx6NK-3D2rOu>As=JS>#3#5ILYNC>wWy#C`-U0H z9kBxO@?t!~nc8@loep*}dj{b^uJH2^X1%O8zJj|Ol|;QG?!Bs+yUZ7#F@RpmcK@id z{XEThWbfE3j4Yu#q28XI#9iTD8iA2+#rF#2l+tp}NKQzy1?A-tb@a{@@X^#?Y#g z{Lc0NPM!YWu`R#(Oh5CrpV$2V$Cvt*&|Oz0KOgts%IU9_8P4DEorBASOg~cp$}U1N zt$)_7UzEs*7F>RDE>E4fJqBA~)EkcLM!TBH66R+ZpHjV0UAjS_wtB9Vfm&K3nHkRK zxwhJ%2YLMpBYjx1Q=DrDfoOxd`3@DD)V)%&{Lyb;>Xq`&S1#V_vwCHMWLoyGrHjqImk=d=>@r<>4ik zKKW?Dn_zvz*YDZYMsqglIvR?JkZb}MvM7yC80_~E!0KmG#6Pv|X%b!SGJA=En}%Ak zQ>L8o=Ke>){Q(_}g{tBw?TI%mrPbcg@SonIyrR-FA#R@f!`*j-;(#u)2fh&>-#3dHVb!$>dp z1D_q=s64`2d_8Q#o}%Nhdn=#tN(+B>4)jh_H<)+V-t*pQ9JdpM^69GFm}8!Z+(VoT zks{IA(g7C-IuO)xU>+_syJlr$Uz$-mK-Y8)`<*bmwRh*_Y-s5iR-81K0NoG z@lEnc+^3^+Q|aN}A*jWB^cvI^NpE_#w#hrldcPIe9qZYFovT^;=cn@AaB({=_=oUp zn(dxA0@c-BMuj=}xOM9+?CF_>R7ysF?$pqvzZ?XB1p!yq^$}iiaB5&0!Ak2qbGTeJ zt&%f?Cy1>(pC1(j>`PbfC2#UNiZ?!oh#S_9j|kLx(Ikv%Abc_v`5^XW6(%jJwJpgW z)5fXA_C0bnujr*&;a6+e7a{j9*Q7OVPNj{dkFh%TZJa2bzFRJuK+l6;_|x!Jk{ze_ ztA_&A?*9EHWd&d4?Djd8!lWsI z1un;3liFheA#8$=O)RCe#DWyJSn5z!Oo?~1S`|^Rd0U@~bN~^dYFK?(wyi_AX($H# zp$%2R2HyB}qA$-wyyWFJWqmj0VlUFhoL_icCx=`qSFGa)vmT@}CX<`{d@~8}%0Vw| zU*6OtlefNQ6itV}Q<Jz@CpQOUb1f^M6vE)UP+gCG{?i|dS7M^=mLVaI*r&N znuNktfw~@+)_{C$TUQlZUhEvk_dO;)A#8b_QTkkyCJ@61OI(7@i5(k*L)8NcF>6`4 zs^t4zYPKgw@B5%?=d)atCcEFZyN81G7n|q(rIzu&t!6KA<23SwzUq=usFFs9JfUWx zz?htv&%$o8C#aYewC#QNfNy)5wO-XPCY-X=5scJXfNL^ajCVX>a zoyIqr$S&0x!CY|caW-~I@mNL9vBx=dl3+aF9k)`Mi8b&_Pu7QVeCP(saXEYqkdY5B z5=t$86KN=BdL$lUs0dj)S*w4BqD-UqBa@a^C_ca1Wh`#vf1Gh^uxxPXF7AIqG|D11mI+G4NitvMz*CN2K)X zlwFzV^|_%tzx47c_&i3FBWIg><@u<^8BAKX;tBU{$k2c;4t|^eC0pn*Rx9~p0U(Sg6QG}68bqSs=!}vav<`QYF9cZFQ-8e| zzLXetpzA^eyU(eAsz76k8IniCF}>fM-aXG4J>qDd#GVXES(hsaB+xK3kQZKRyC*uY zhb_;f&$HETd+nkXJ;s-=epvjt-8I9gzWGpFB?MT9f8qu8o8C1$voTa8^- zJC0N?SA9@1R}1wptd1>!55z)4QV?)kYqA{E(>`nx9=a4TjI%3E%UJj<@kn*Uo{i6! z1#UXJ($>0bX1vhhmkO$kM`URj(g4$SR`qYO7r|Enlq?bW&D}5w`H4QG9SzFbhL-SL z`SnG7sJoIId&2y}S_2W2af|p@PmLs;NXJ0`i(Lw5Ap=Wz2N(UX+dMG)TC3m3XY!my z>m%4J7BC!(Aix*t*oG3I3j&#mnP;92&tEGTphZ6AU$q!|w_v0KRAZC?HoSR5r}2QMjrs+9m9Z&&L~R1fM{1P>3o4ZQr0)2U0=9*+5N5xsyN6_q>dI& zY%1fj2}6(fR}gf57Y$0%Qi1%bqgZ#F4m}UK6+|EB>)_AZ5F_Hopb=pk39oc zD8QEq(PuffEbOx+p#~`&2thox7m*pAhYHRIZtghFx7mg>&A!1+Jr@wKD5nO4J-6Bx zT5(|v*YJwuM`&*Z9ai#!*WqAOfEmt2^p_qRc^4(5g)g+fmX-W!M;0p~f;e9XZ8wI>gR$5U+B)?JI|F!wYScq^M2I zQELhhU9UEnvrdUH_S;N^B6F4r4_s=!oZSsV7$VYxx;$HerL15ILiExc3-uxEBuADA zI$UYSD8T&9^e4d=wa7?2jDF;$I!Dho(eqMYg%qi+0uv*{sTpTdfHo<9v!r~Ix`B4`of zbyu%V#X+D43b1ACRo|H2aib!m2heevMp@R6iu?Y8RlPhjV1oCZskj8ULT|tq06|JG zkEF2Ykix1udwm{Kq^geJwRuVgOIMM7taOUE>I%qry62TL1un+RebQ>Cj$9Kn49kWg{5i=O?=c{b9SO+DSN^L?}RCUb?((c3#E>n3Vj= zteD}m>1Smif>~rQ3zF`aP<#rT|A&8s;^FSZ&PMkH^Avc`I46{!+PFG^--#T#*_lQF zr6x}t0W(}m_63$XU^P^43}tc|m?{Q`(!)BSuA&YqP)b5{ysgrM23CZ9rQ&OV7@-L+ z?%Z0-8{^IXLv@wGk4otEsUhn-KZ5WlNkf;sg%8BF3s=PG630<1lrGF_3@YQt`ENN= zrqP1cg+13(CXinV zioz{d5pw*+^uJC$3~)b|>T~+2V?|PxRk(RSy+W;wR*cW~NH}N)oz_^bDiOeX+#tpH z#|H@%prZX0|wmXo4(3yX9 zMkJ}}JbO#oUMaaDUJp8)*Asn}$$2_%G%shV%>>to835Yi8gGL}wAxrj;dY9G@B1sx zI#Z`tLauS!zg_2dMmrzgsXwrWB7<+}XcrG>i$; zi~OizfB24FY)tm~5Gj|nZ$h_!Xi#^N+;*6G)YAOUX;Cfq!s{4&1t@}0_$@=RXpNrT zz&5Pur#5et3fa4r3|eqhKpAfV00Ic@xd1u_Y6(&P7i+Veo-^HOctE?g&~3+V+%*4- z1C@ceBOPtW7tu%QMJS9%c8Nkel!n5<>_o>2THe6k%TSaHxzND+9qMIc-**LSQQmt_ zcd{`gJxF3mu7C*7T~=dDY33r3|AuKiv5<-qhyf~|=2B*j1 z8y*$&s9Ef;;t{L7i@#d(ZCc)nLpN*FBe!~A>rBjPuT)Mw^h%xgS!lz)5He%E0e!09 zATU#R@-U#THPvCq3wB{qWjRdzPI8x>ItOt`ujL|F3i3;w;y-gv-n4xfFkW2j{F^b}N{y;jSv!fF==W~cJKWusKe*gI zM?1VZKDis|31>x2_Xl2qmDy-04~{l=cXxf?&0qNzP(N$!5rCfz1!CBWUhkY`{><8E6TP>G|%)6q{>TFwoMBET#7u%3s(2&>e5U8Pbp(qDP{F02C z7i&O``;t3dh9dj*qR^J!Bm+N4$I$cNJ>N^Ekosa!uO9JXI~_UlQX2awwbHh9wi-SR zI}5ZPJ+ML{^;$Et3vK@AXQGAGG^opq-O)+sg;q%^G~9;76nhHURc)2jiLFL((U`nm z!_6Ho%73&U0k|xRCZMALIKt1t4RVqUywLWIkj^2%Zqiv5(pUt(*9B-H|ACKQa&Bps z`EoI*Guu{k|Ju|ip%`jpo&VW zm{&;wKX%UJ4i*Dek_enDdY#T*Q6>_ic|8&tH6ftd=KHgu2Gp+iV1Bb@+ortm=~qpg zTRI2XZ17VgRp7&B9jU7X$@-*}?WgGHzSVlWk4Dei;~1weaaIuLuU4$f*W-#D%|01?H{2BAfR&#lL>~nMN8smXLnr79bKq*AeJU|CL@||NtW;}FECJ~rhKc1< zcRPt6!G>k*&GUyumc*F~hF!{Ks;ascmX}nhe1yK+i?B)Ca3#Od2(47?Q)B>i#O6m4 zbcN)QgYDz)K&ftq{jb$8qz_kLr+#l4}ut zi-0#|OK-Er0qjfQ)ThA16TL={lnLEtmz(lB0hA;Q?aqZ-`<$ptfaYN;YkIZMW1wkL za8-5I-@Il2u9ZJ~rDSL~_@OfkcSEEB>hQF8$aE=bp)-JSJT^X;V3X)XRym($ze~+D zcxW$j&GWzn4_){p6~P6&-Nw21#dP9>70$sud!JJ-t%Ho5PSoNMQ;w25aNd6g7AgF~ zXL~X@W4H4$nqr?+j|@mBYKvUsD>u?P%b>QUthvsFtsE_{>c5)bXne2)T=w-I`lq2( z-K7t(NK&csmjz$!^4wyc*y2EiIh9Qr;@_qkTu}<^@g=F=d3WhofR*;w%X-fHJbqsV zf54i*e25Wy%6oAnV7ea>fah{KxU#k{9ii{PviTye4ZrY=`yiS*W3}3lCVi|h&X->r z9UuK3a9%9J_0UUWKU55lF49E#uZn!o%}p9tX|IFVb6q@(ktJWYd|*)W&d{K0pX(w# zw+Vo`UJ<6(m^P``mTkCuPm_5WR*fW%!ZB7p;#_ceid0~<I>HVJhk+6HR?#-51zC#1wU1&!~< zJ`7ADM6X#Bg3!KAHZB)+qeYcpN@o%;GaLD3hiIC3XUUIA{yxct6=hXap^00Z=S)0N z>rs4rX{D?AWE3m2-1r9Jtyvy+{Gw*X)n<231!4w1ZEDii(UOM_-pDjqG&6j~GsE|8 zPd&#)0`)@SSQc?E3I2Yh*xothOVf2JC(XF>t`N;A?Qa<2C`Df=7?Lfu_t)a_)MMKb$%Rozs6*H zIxtrR7nCn$>U*f#VNEV3NBc{Ks#hbJEETQ-aFms81vA*~q|Ww4+H|M|L`A-h_pVH^ z9DtciUZy;M(cQ8}Cc1e&qm1G}2)ks(>Z zQ{V5sw$9RFgSXxyebJ)0;MF~QJH#uLp+`cpsgVU?#F2t~z2w)NPHW}i2x~%R0j@zy zg9$Bp2-n4u`&wk?$|D|*Kjtg62w;5kWLQmPW0$1bq}fXghXn(%n#!UBKmUWkHN)d9%3vqOsGRNvd&B_ z%D`p0s<(ALUBnrK7|Jq>VQ-bj`vhnnPRCh#UeL-VbBuq@S}YLqb}l3ZA8#rxs*!@# zB=i^V?YBrB8IOBW=%D7^TYFMonETd^=T`0%)b8s04D5b-C^l_{*fhFhazGUkSZ~Dx z_h_Q1A{Uoqi@-bbA!091%J>_^ral z#>H|_oXJ0^RlVaYMvsGbT482K#}zcERQ~$W5)h?8aEq$}ox-ug{zJwMlH zj?+|6?(*1>?VWb#gw{Vz(JV;%DV_IoMD4GJ5O-I?f%bv02kW6ztOi40v&iDnq{4>jUKl>3^|6+DnrB@?*F6I5dgt=Hc7`!h`llK(Gcm@B6RM)zx0Mu zHZRqSz_9N?<_xE?tG8XMBqW73bkiuej0GQbZjM)v|!0_7JLHc6fiGR4@8PWo@F5pqcG) z@=ZkZqF)Std>}Gon3$_AmK1Et;|}ZiG@tn_o^0I!AEsuWxv_Dz(PX42X>7c;8T+X% z%u9j3<;`V3D~z|D9IV+?!3%a2fQ-(pA~fTT#C~4qKgFy#n*=dMm9NB1X!Y&?(vYj- zC|0@|W$d+gYhqgm&v1I1N*xc)uxgVbGw`q}{+&pb|8V8UzUOHmOVMmkZu9l4D;1TL zu)i=qON(bSILaqCY}oaHZ?Jl;j*lVi>mazgFr{EXMZ3eC)2`WscG+9W{Md0hia8S# zt77`cTd0nBSZ&8_R%JU|M#uOIO(sb$lnJ#7E$?o5w^Hl8N*kKC2>o!QS#V0pp#tCf z4o4K~h^fn9igG4fTur^-Aecnok8(;!kEQzP(L5&+&7iI8(Hj)8(&fwOyq*>q{^LojK4e z&V>pr#|rxn*tZ%94m{U=a*^mc+QM>(T2V2btVM9?M3wJn>w6K1O->i#<|#l&-$dz; zCXX$6L~T{KpH_s3*r#<=NWrIhXImQ0onXrQ(@1>-KYTNg&50OD3Fx6GdX*WYP+8%QT<_rGd8iAqFEB_A$DAPrXhz2- zbx9s32~h4Wn9bSZ{4OFVWh)i{jD(nk-yBe{B~NFqifg#?4B~%#t@Bo1l-ZR>llI$ zdVikL>d^|EEz9cWR8{qpvGd6@!h&0|^4mN?Beu zj5q}J@L2SYMi%d+V82jzlgb&tuE6DIa&f=6YlH|gePE54C=#JpuqtVSm1$ZxC zl>Y;nLmc{T!O0IcAzmW|`?Rw1VUtszi$)4d>D<2>nvVP!;TRDnQ7xV7Z^E+Zs^?4V z-RYwToOAknAJ<~yKdG+@s#?{nHs9plLpcZ`>|xcjC-w7R2sf8htiR&7-d795sj*H~ zf9#tC^5RqAf%kdX9_wc8;4_iTJy;SW&vo2fW!+QAPNnqxh~u<$%L_fLV>eVY;&tD{ z{o!8g?E?5mA+g+4v@$U}oKSHsv?u=fzz_Juh}lFU8*h@1p28nPHsRWgOpLO{={L}Z z!XFom_4niit@fRiK<;37@ZEh;5K%IfY;YKgYMYIn)4-1~O&7v7f^-@cCziAeKoQ+b z{p^eLk6w}6r`i8O+IvSuwRC@<*NA|Cl7qkn1SCt&ppqmDNNi{%XIgSY6Rt$bk~4@T zkW$n73NRKTYt9^m03N ziMt{i-PjO9FC@cSWH>KZpZTeW-64v(#V%>8wR?>(AgM{zFC4-rsmR2%Dc>?0YIEzFP1#vde}HWzZR^z^V>S zlT-6);*qh#uUT&5tqM#U)t=C@|C+&;l{|d^3Yh>?3*?J3d*ib1SO>rH+d{nq%>|`$ zm-@ac(+T5yc5FRP4yZ)W2tDQi-$yOo_HgbDRv8VIf(xC!wsgziM=^jF@;A=8o~Hhh zru;uppzF23Rgl>K3Ecp{U8A6@{{@T}hm0rREO!O>)+W6Vf z*Xaps+VKO2_Xi100_#tTh`!-mW;zn&%<*gW;{RUxpZ^i)G4O@N5N=!S5RQNM#J1AU zIT||q^Ytv;)p^l|!T!QAz`hJ7I%DK=q1c2N6!kyo-5C{Zgxj0PkNWkOKJUBh+caXe zc|V|66;@H_X;Ytta`qiS&CJZiQdBh7$t6jOWv}qeGJ(uVo+Jqw-8D7S)zuwW;GYcO z7V^9$;6B%H4D0gU7&xlZ4)^L;5eAz0N-c4;j}KvLExpCjw}&WaaSivKG!Sn=rolB3 zFNGm`?L%R{+Zr)jce@i*nN}`HM;9+1-h(8Rz|Vp*EzFhkI(R2D7G29G)K;P5HbVAX zocCE)D8>rT*7AT8?`ZT*6Q|L$zEk9oIm`q-ge&Ps(G^_6joq3wd~0$S(b#t3<7-C_ z8#wC@z%@DXvA0LgiEU|yLW_=~N-I4gZ0Ov9rOWj}LLmj}c}FLgZqcaD&!OQGoup94 z?U%S8EC_(LQsM|tRfNj%x-LPHthkWGCCoLD`@~psgoG z)^tem^mo{)jg5_>@V?3;AU|#qFAmzska*zn{*b5X;YQJ7Gl+j807dV!_=_i1{@e!- zf~}3pszB@Rz7197|EJYn<3onaM*6)&WI*Ll*LJOFIuyxK^%@Zaq{dr+Nj_qiPL0dd zj$nF-s?ZSM%^>%EFC0;vkd}mvdSB|GW@Gc?WS#O86C#P6{8VAvk;df#DlfDmA^i0M z&Psa{Q7z8Gqn#)3k4qK`9)4EBOPUbayYl7-y0v;WcC0nr;A9C-Z7XxAW|e;IKNk9h zV6)ntv7$!<uZ*Lvzxij350UhHyw@=?oMmmaYth8;iF<3FnS3g}i(3g6lrTibf9zw^a2oTt1~in3JiKquyx zJ*s@rHnCU+MbZK;(UGpg3UPW!lg^U87HT6w`HS(Sq&b3WdN6e+u(ArH9)n-*DbGVU z9~TWAg1_i&&>28!bn0|j#2G<*gsLWbUHatHrm&PmixrxB&(N>StJI_EjjGlHdsN-) z$3#x8Kc@PG;7`#GmG2GjVak4h^O%>dm+n_ev45~#dHx38X8*OZ>EKc5fUWwcom)o<79qE1P- z(VM|nas?|Jv?peh(#YarlqM{yV%&~e@09!NYjwFwqPf28scrh3EO)XmdCh$967Fi` zvt*HhANW)ZQhibbYqL(094sQI@$f;)a!vH>+v`?50~B04X7W+@W5V+-QHrgP?c&`W zHO*PSRmc&_^1S;x;THJ6CO*TMEn7ps zM26Ofc1BZg51rhxbY|M^&ub4F9nE9Tv?$f002@4@{;FnYKtYZS^hm?SXvPY^2(iC6 z%W)?SqB<+!yg0F>&?2)rJ*~>vA?oa3(d;X)kJ@_jo2zz%8DXd|~Q(M!$4 zH>BNBeTkC|GLm7wXuth(i%ylDG#og=fgVDbV@UqMe`q2 z73hFZF|_Io2+wZ9WGBA&iV=eDnYWksJ4q2= z@J}A-%J#Y>WH16+h6oD8jI`6&L0?`*Yv`wV?Jb!2JFKHkphp+iYcPdz($Sm8My=-6a`SMigD3L%5bOx9 z-yYkZ(EVM5T)ZZUHLKMImAy|I&2Ih>QjWT|{1jkPyV^bCqY0)yxEL$Ohyu*jQtA$hR$w&8Ayzo%YMBPpq-b(mPVD+V@Di`I}@jB`rrUu*Kc9_-9 z3|i}Xz=nux&r>w64|O0O{KT~KsDZXdFvW<$)o7~&3Tv?03BK8lDgno0Py4pMp`vCu zHdLTIC-nlwUP1Q}Ujd`b%3C{9@*ebH>zhUdIqGL2$;GnPvcmw0<;#+!%@6g5a$2~M zNj*i*a+~G9J!xM+ZwU!J<*R`oyenuT@e?mgCxIHYc=99nf)fYF??KeudxB#u>Yr9< z%~k1ir=*;kFC!b!_DwJg2b$&1vp?!OhY%*GX=6(I{NuP3C?h8luRiUvd{E7kdGq|t z3(r0I>B*1fId6i>(#F27#lCv`bKj=ufyqNbgc*qad6!m9;Seo~m#@B&xNA&|*0M#B z$J2V&SnrV*n)Y5ZXl2otTcXhaYuimizcXDag>X27325TddpWBIKO#I23pdpny?~*HPZv zBJ&=64fIHw$rmsFoz^LkG-cVrF>JhHj?g88fGo1_l&P^;u|3BI45wjsui{5%mxGQpbKUG%51Y9FeD$>U6Mf`%F!QcQtRa%3vOY6=@pU?3sCbf`EfU zi@RYCn^==6;rSIegFA+v;7E(*Jw-3M>n!1$Bd3{-of-u0r*X8WGmw@)x8fWY1sWwb z{$a_41!wGA7ug0PtOOAG(;U&*q}1&dcMoD(f$VRK=@qx^M&YMMmdDGCmgrgsL0&=6 zSKQw~ScB~o`G-<9hssj0nG!^?MegaBr_rXlSX;FWY|iJN={HdhgVG44Ps5p)K(D~$ zYUzkC$SK;Vdj1_E&uVDx@8SQG7F7dVd31`yO=NRX4I8TF*qLbgSB;|Oy43pwMG zof4YMtAT-n6s4Gk%7w&UkQN4cn2A!PMmdVyVW>fW4Jmj-cGT(?ZksL!Q4q5~&_i#f z>^oLJq7acHR%ltpLpzXLOZ!LUk)VEp6@kMYnXrew1otq^d=obnMf>}8pds6$JxeI< zF^hVL01Xo^=4}cp&(hKjxglLk#Ec*@sze{`r-44vmllg!1v!&41?jr1%L-_ISRuFv z!Cv+F)}Gg6#7h5NHC1F9Mr48)xsfO^B8Z$;O~j66aO|sX-Hhq97x$qDJ6HNZmXXT) zLz4tXk=WP*4mnfV6Y!}NqEUsL8@*MxM6!d+ljdQa>R{z_R*qCA)Jhn85+Q*up&?tz z7i4Nily8vVc!H#v;piekwL6472QZ7OopMpy^umEBD?)H((|F7=qPDiniZDg9M9_9U zuvWY~aC|P$1m*&wwPIq}RR8Wj@#5e~@I6d2E_`_e_Y(g_$~X@ql|q#nA(s>Pm0S3q z1r)FY`xboKg06WHl;r(wk~r!7BQ{n{0cKM|bK39pxUeMqo;R#`**)z?2K44ARND&84hVT+QZv$dGsHz>B@iBK>ICq{koP`-$2!3@=g_gPa`V3*q(Jrf?M=B%|&-y=gM0JWxt zE6d1uyBp#4ft>dRjUTO%sz|jJujzD8@)|?=(>N=#x!gZJO!RQ0}{#*N%O_ew+eqTE~$oY1uhC z0NyJ#KqHmKk5pM_e9Rna; z3_gY$q)^*3MMxVSPSE$00?aogA3*B8-xyeHoq8Y>T_yi`Y=*M3-NRoyuUkIxBIcFg zWb&U)o*?q+>5_3Z_rl*^LjvLPz3sx3k^QmhFj9+>x&y#UPh z%(UVW-eht1x8(&$G0{ttR#QDWnJxjExPhC~5hO3pqCQ={f` zhpMZ3=xkXX$vD>vQTe)sL{}}RCB^Ss;4gB_$cMO67HQVJB1I}M1~f%HZNQ_|OP(Qy z2o_L6KP}&>j6qKKlyeEM`EC5tPb`6`b>gmNsWxzK^u%2Re zuu-h4Q=%EpEXXMzq^mNWslIdCtjv&CFaI80wI;>5(H)Z5Ndw@|-T3o_rD;kxhzA!F zh*5irtOB&5#zWl7IA?^PIo;Bj;R=U3bS0yvl{fn&D@p>&s0nf&4)XV`v8{@SaiGLA zeILsNCPt8JRCPZ4767az&X?m>4#u%xc&INytgrav4WUdc1k$vBGnN7nbPv@yN_ELk zH>y+EzjKOk3YxWTcC zIy%f{Ccr;l`)qV8=P6itnFsovEHgI*xsiR|A7$FkyuHh?Y$ocVjds9BR!*XMTygI3 zlaPYl;JL(L&7Nm8yaNwM{f(%FQkG(FP?4X!C*@wT8QCb$(1fz8*0c6}s??>{u5p_e z&=TsXtrZ{X#;A0g3%kkh1Ul4Ze{!tF$!4sWat&EI6 z2;5VNg0NqHZ^Qt@y&m3iIkrHJL^2CHR$++M<8dCC*){W(~+ z*u7vdky}zcvUJmXp>&t8)e*VMDU10pK%LLK6j*IZGhDOWr%*PFb1>Ix1 zQ-2w@5;`c4*}1>q8NcOh-eIyAdp@b=oec@TjCtdcY7d#pVLMbJT~G#1XNMdQksp-| z3Mg~S{%Rj~s5#YC57GdE&p$^p;3P+L^Qpac?2l*}Teg)w>8MD-szghLEjH{%#@VQ4 zeD*X`%UI>-<2l#pMLo@Vg^o-SUU&W5kMad{LBH>-tDd$^{urHmV(=Y9yF{bE_cJj zv(H~30= zH^mOdcbzsVppCNInGe@aXkYQe3KXHNMJwYnkg+f7YD_dKDy3C42bqezkfDF<2tHah zy(ivz@B?A`TYCKsgZ8Dmo{a(xPWXZPpf3l@FS7#8&2%hRiDfV}t>?dLeeLsp zjc0(r{;$;0@aSLB+Z9;+|L9qNtxvnhLwNs+00V#ie`)E&dC;^D_5!e>Jts4>_mx2T z{~5*d(6hVQ61z=hmZWd4>hhaiN(v&yITLn+%Nc$0Y)QY1&|eqe+WdyuLO0~qyo9)) zTwJN~{x-@(LBQguX1~fVRWkj-zmJhKqUHKGhbV)$d0yfSftpMi`_r2^VVoC8i%Di?`i6*7X9Z2Fi@01ojYIWFB){X zYu|bSulSpB%HqR~g!oTNhr%eVZeO{${)TDMST!&0?hnp0WLM4m&#!UVZS!8|5{x9A z(jxugzoiHApPP=bShxMICqPa|@F0V)KwHa^g8%2s(zJ0hSE+UA|NB*2FYU;37A4tI zEN>M6X|VozR}8REbpC#q4}1H+D`Eikh=}-AWlIX2pZ{BFYV=kjX{$q8O6IRE3zxtC zyQ#FHXZbdimM)A3i`669fi9GRfEVFE&7ue8PqEk7ops9leCqi9^TH-jrN6N%F1>+> zzpdr_%72@^K=*$izxy}!zfw#7e#RA_y(Z?rlcxPoK>l|px?=YKe86ky|92bw4`b%{ z^ZrL5|NDdfuVaK~x=zugH*Kdi%%>S`vi{QnD3EEHvtBNA;nf=lUS`5;GZq00#Xmmk zu<63)6^*+e8w4NTK}0sA-Yb&pTE|ha~_GZV=6HPB}cAh0w@5hGqR2*5=vw zfhnD~evB~z)jD^&G3nVUG%BZ(gN_gr2(k+grOC10hU&7X$?3*=S?wEy6y&joGV7wQm+|uEdd8r`jZzk8J47gz#|IBhyUpT>B8BB{PuXtKN*$ z{b~v)$zCH=YWLX;j^Y5k9g`y4G$~65-g#3=vK*iq7|(|(`WYKrbw!n z_?m%9w}D)45Mp!*PN0W16<3Ln*FKX_{@ixdiXC|Xy|tRakJ&$wKyLLtUVi?thDMsH!zI*-Ylw+c@d_| zUYr3si}yWZT0!N`RY3T1C^MJ_vL3IpbK)>-w%CwO&1~MQB8~eNrXQkhfJ*U@+N4YD z@^I0f{;^A+r(U_V1#D9kY>A3r=$^3&W=8E`?d#Jqq(CH47B(Pa1I_LwS6)JY3O~ zUidXoF|p+ec9vQVs@2Ms)~8|->2+6p=x;&}I~`Ur`hZlbS$xFiHKMFvj=CdB~ zD+^WMZES4%iYlnSqddP)3m-C_W@bstk-Oz=0$yMEk=A9xj7pLArh9{f&Z_#79rEy`Z9*rJ89*o7NEjJD`Fo351glRiD3 znRLmjfcUDoCH0(5L(y9#R$UKp%*YaQINv4TJEzyiN&6g}&`-%C3_cZ5UWPlvD)56- zxGN?0Sj$s>DocKXxZ*csbp>DK5Nt{Oku!umwoC5QPj_#i z4b^jMn*!7Q}6v2~3nxC@ti9TSj z_wscL)!X*;C5-i-+8Y5C?nGH@ zNQ?q(ap%O68UFCb-)BTxeddTwvR>*h0=zSvzZZ`N`99dbBV)B3s|nw|D$ zR9Xpdb{*GR^>4QUSVwQ;-SffDsDLcNao|uUH9`rw$1b1PGo3Tvxy7RXsL+`7F#l;! z!)sTh-6E{VKk>j$E=M|>h_+jgq2jAa3eAkco_S8as4qw}9(yXBue@j?K&4AiNkfWa zbm)I7;gYWqMhy^`PIpy+BpcKJ3q013$U*eT|LQd*V4$@o@bVe=*pZXh6_lsqE`GzJhy?RaZp+NTe*61D9uaO)! zK#UY!{a5A;WqYnJCWDqhbmTvhdVS;D8n> zBA0=6UNgjR@a)}HIrjgmQQWc8OHF__42VZ=v{m+fpAExS5Tn>bJw5u;sRHj|!V29= z5iyfXMdq%ws$DSUpQ8^PS|@OOiY5aRcUhkSYPCZp>=QLMMAH&pYi*sw6jc+Tf`&(a zS`B*JGHs|197H^dJC3r6GF7X*(Yz2rx>(_}B;M}ofEy+_|9E?3OVS*Q{bG!uY_yYc>_PK6syG1Nhnh{gT#3M z9?^hD!gs5n%uyNv4A3B~7KToKutQx#+GGOtRIC1SWvulhzu~Eh_y5#&@EW)d3Qc{caLC9P}z0c8_=H$=s!&Q5#}G5bVU9bP^^CeAvFf zr5Ihm{j(>9wh^l%Q{PixLbIzzt-D`by^47G&POXlw-SeIDLUjW`d};Jr$)Labacs) zhN`J@%1*W4_4|BuRB=mnh3<6OEda^_sbnQYewnkIUVro=yPb)vNAt#_jeg^QXxhj z=B0H9)|Avt)g=i$_-AzaM7t#NLba(M2W3DDiEjny|CE<|qd^QbUim$9w~{h3?0 z0d-UX7foL#Xq(wuc`V;!Ds3?nnh`2sqkNmmtPnYE$)dUch1_|M1Qm6}F7d2nxapx~ zcBTQ;ri8Om>&wjWJ;<6$Nw)!32x$vVYPEeio22I+ERGHISQQFfqOBb96ofs^#@;rOJ=LN7DE}W$1(RRp#dRt5v#`6vJb7uU@^ybWR{z~}A`Ax34})MO-~rA&ms zyl(9_gzj|(B_Y6DH+M?y#h)NX`4jjyzJbKG#_%D7diW%$R5Muj4lY~*Zb`&K3efx= z`gVZN*3NwUgMniaKR33vU6*AdM^z1K*XQrPpvJH14=NVIA&J9BZ2y<&Ruif~oQG5u*gOUZ&LX8qskJ~^CB2p!jUqO9faxSC= z#c1uMX)*^YmR>w#$2kFy3?H>VywbHsB{#|kU}F=H5t}h$$)S1)^g)JYJ)Tq0&UPs$ zs&y7cifq^dLM;g*9wHn1LP!sf(9B1jM)OEJo*~{RK;^DC^lGy7eD3;?vf%qQ*55YV zZC(X>=)XP|qUB;iHarxg+}xF|-$QBh|EM{B26&DNH@{hYKR-c+;t88rCxoP>64j_x zh;xgFkf37Uwna)f9M#+H(&Qh9Y%DTCrPv+WRG^KK*^=MV)5iUg%Ij2puX=5<5654e zVuSBNYIvx5T>)!C#xun$mvq+?+)MX5sCNB~bdCfdX4X;jfK>-^!!4ZZ1t&je7w0M}YsedUb|7-mt69`v+jYTx`AG_DMM(whai; zk{7f`@{hL`Qm-%LJXy$9^1Bvj=&#z|vzY1ty8c#u|sr6qFJ+J`!s5$uCU z2Dgfk4Kg~@mUEo8%LLocwSjrZUY!Tg)JQB5HiVb|5cSQOe-RVjQn9i77}YCMG$F7C zB^9Dl${{BO51E}HKUClAjxPL$b% zgTR8w)d8e(;tL89@QOpfA=-$TsU-9=5EsIR?)YbmZbM~LqHMt9ExYdQw?vrVktxLT z9G%x%mT}%m8xqO!l-5RdxUI?fBU4lCyJEv?MpNr0=Q_b<9?K?`;7?pM-m55vI?uT> zcBGa~&WHqUu$_amHQK@R$U)G>^-0D36CU+_q0V|T>jTz??^zL(-?GSMH3~I8ld7Q1 zJea@xj(oh_xGNMKMQyp<^%q!2iwPlVF#N3eNJUr{N?;K$Xe0X<;(18ipJ(p~+@HSH z&0cnG=_KtGJ{cfhM>I*U&b<{&=BexFNGf^{iG>Uo)Oo#u-;VxN>%Ylb=?x#Tsl*HG z%GB}qWBlCBEZ)^g)`=&UYHLMs0>S6wsVgjQ6Wj6<&*CagW1vy1Egdm@nIXhNZilFI4@@k-mWDI7kkkbCV=En+nm|)O3 z$BRxeqvw^3I%Nvex>Qt74VPb)W)uot1hoY3$8jjRRllzX zBFQ%!h70Lp33tMn6L8_>H~fpDti`Y{dA&`Vn{8Q^_B_c;&&93C1q)K@KYHTA8|znv zI+yIZ2jRCv$mzJDZFrd6{=|l_QaXViqhw$=i{HlRcpxZgCTMI^DQlfj?1$E+cHJly zvymfwlEBW&!Xve(Z0jNIqM+7MLgFE)clLySWW5ktB0gGbE1`fg~FfPIYu>N}?T zVf$=|cw}%q>uK`#5?~zj z9iPS~letFW(~`=%Tp1MB;Av1&hl`%0pPdU#V5y%w?bffpD;J+X5%kH}CP-qWN{Qqq zXIcTHJA1f9MPdKPgk&K#Xk4uHB+PNdAwe^mZ}(l6WeAgQ`ae#-lA6KHj_=mO-J_YR z85PbnJhi+l3DFsyl8%avFNg{zV+MKGNr2~HqdEnZ#`tb>cCPeb;sjGG?mapg_prPK zZnessoKz}P*6TIX|KwnNC9wQov#M(zcICDT0JLi~3=q{TZ1iVm1})k zoPrpcI!qV7+mqlvYw zp4UgPeQ5+cuo^3Wk}b-?*AfMci>Qm)JGYG;lhw_tq)u_H3Qn zX)*j`u~RNQ>paV#)7_hmeEU1elsY#bZV7{8s5MqX~id02{u}*z&Y`Nz|vmz z6)b;rU3Mv4%-m%ky*=>&q|tk4I6UdQDs(F&>X+i$XA&~|gh*Rw^wwsu-|gu=a6B%i zFX|Vg()kNvKIBGqo*U&5YfbH)hOOsAkts`r4$=9)G%U=1-Je>InVeLVf{+FrZhPyL z%~7e>`b(j=s@*r&%rzxzLoyunp?Sl_UiqDugAy(sC+`wt6m5srVI8$m=QZ|)?zJ>K z%X@Jeb8p&D(#wDj3cxb8$;61qi2laFBflsOB&hse!j|b+h3zkcEZzu}!7e>v=X{gJ zLFdEqh;lC0RH)*g>!Kf+A{!Dz&ncz7|pkF<}*`W1UK|+f<*Qlj} z+0`kzI`tg|m%)}!pONDxo|5K|evW{P=;l`$oZmZ3SIwQjMca(AbyXiTFMqR3KuLKwYy9cm7EgUWs#D=s!pY~N zpN#4<;yES+WN&z6fRax?$(gnHkcKB}l*JW)Bu(6HH6OSfJ)WP`APxD!ig4u~jhWFq?t<+7YqX=TuYV6&q+a}k#$7)(qRBDV(rKOn!{KpQ*QK|`H&`7)w zKK|ZNltuA_?5VOI0(OMCphvGgss`V+-7Z+4UR9o1AH>~b1hos66S7PaNPOuk^Qf2i zEH#p$yrv6}K%Qz@q!ppTxaa2l>y@6odn9Jrae&olPacowWIAUeYa+7PEA5Rx*(0kU z2-#%!F}TXw{Kw)?cm7S4FryYlYeku10o_jjb@FJCATvP&%E+2S-ti@7i`}NrVOKgf z*O6l8uE)i2#M&hlJUD5yTDAl`auiV?MLYa?e^RlE}P>Yk~%E8)rh$N-wu?yUSAO;&r0fFH4^ zrFKtg%zBNTEaVQ;CjT5hQs36~gvs)u=P6SA^uS+#nI1;d$V3Wugp!CS6;F&1pLI3! zy2|LZ6-)@7+5IUzf7c>vB3e7}kI?|BwX`HJ!@5Tmc^uw5i&n+HKgbM)CPEG+;}mN# za^c9b$(Z-XEpO3W@41*ceyDeOCujl5e4S?bGF%==)P83?+_K7;47gLia7tD9>D>&c z&Hef4j~K}uJjiIzw0FR|w^@36YH0E4a+>wD0I7raUyYStfKxv#?9o-giSLim7Hiv= z@7YlcvDo@dUO?jLVqxJCv?tp|r%DKTAir>Od5$(B&$1w*T?3PhpBt39SESSe-c9?< z`8BUd>{Nnk)iXZHCqy{*PLT5pMguXHGH9p3b}S^Qe0Q@Mq7hGDCBpWw%1VRH@6@rN z6Yn8m$YW+JRJ9k+5+3pJ25e&urcpk%*tt@m_goRm-w~zdG_8AzB^N-7PxexBBwBwg z%A7V@(H~8beD!IXLA5K)8Hg;Mq3ExM_XF0E^&;FB>YhK@HwUH#yqtxz2pjAzca8GM zczoS%T@8a|X2d5@fMzR)y0mC?QdRy@0ezGjw6af{W|5FuKE|)aT#sU`-t6dyWFyw{ z5lwbvf;V!y=B3&=}Y2a+XG#^3JA#*Ap5Rxslr;-KnX2Otdc~RYW zg&T1I_)b2^ni+JwubeO5=U13Pb}U@E3BS4Wz3Rpn2uiV@t}|5k146C$9DWIWQ5Mi9 zQDzm#DlVqRuF`Y)_%XWVt*sc^qFR7#wr-0qIhelz&Nf^2Vty8glz5=X`1(MS zbTuE_bO~0DJA$gHAdaslg2nX51?WqjZPGg(EaSHVXLp3M1J>dH| zIKjl&wt*lo1$#Q@P3>M`SvQtsR3BkHdp*0~5JV92xE&y*KX`$6MTP=}=bU~XihkC$ zj(%57#f*^DkwPCsS{vULH)=jUDqVqzp}Ed-Ek!q%9}OinZx#DU|A}a0y@EEM`VJ;o z5$hdg83|-$)DjAAO?5Qv2s74a+RGW*NE*GC8|Rr!u}u^J&ln=x53B`1P)?A?fKOyRZ(A;Z%!7cDoE-Kb%PfXMi?NtsA6Cv8>G?^4sA1 z>p(879O(0|EbPTTAf;~dVmkfHqn%#oD_qP|(o zJr4@&9nj-ooom}B0h>~A%!9u&k)le!;@S@tkFXR5>dsQq=?KAC`qjI>lzx_G!N&~z zWUTJ?sYo}yJr!&Ay1P50ilcL%gY`?O56>4o$Q0RYK+%{O1wFTmzzV4rWsvcdWKPo- z1eJhVfoa(+7E=?z>J-Zx?t`InqYa$Av+vO$@pNf3w2l*

(Ia4Z=wWcDenQ1`0SHJO(exqe_IM5*QX!T@LbnIo$zMhSDVPi1|H*!+%#(=o@nUF{^>!B#yv=+ z8*BCWSF%_TT3LKEws*daoW3gCHt-%#9bLBu?b=z^Uf?*O6%;9HP3tNxi)r{;9}5?< zA7fBT!?MrHGbtF@>9ZKU;E*9}WkoQdfS54x_;6-oRIE)fQFM)Is&h{|uZ48HPsu9 zB2bjhM))Y5?`~`<1h(?gCivIr60HAeN$=rI(#HljS#Z_j{h%18S`G3F6)3ROXp64W ziQ#Bt>es#6f&F#DiimF87d|`&>$VmxED=fn`bKZ><@POKKe{T>>{j-&v*!x6?ec1` z(Ts`pVLZpz1%nuk!muUp{2!bF5pU$bKh2Q_z1@ns4^HTIyV*+fK|P@BN%LYow-hgH z$svA%KbwKxfz8q7P5tQNn&6~B%Q~lu>>%MzzSW{doEvCnF}vk%&u(@a`)3P`M(6iI zbN=pT?-OM2!M*$v@@6b^BQ{>;!#=!r9YZwZy}*-BwI}1-CX5%hL`r{i-_;Tdl*xZ) zg}JRv{ho)q&UujW)+nL>o_uuG7{e`}a*A1kKAHyqDn&ho24EAQTIa9o?E692h~y~K zVhus2igUZ(-<(YKbWRNaRiRfDLj6ImOIn1y>GIkWt9(IRz-)YK$=k@BxpVU9{&{lC zQ6@uyM{vo*%g#W1;S)NeIBxp9v|ns`kATCA#uL*ZkIz++?o1 zwkFxOUIX?rd(SHHc0`f6RMFJKu{XM_$3R$a_}0+V@=?w9?1ywQV{85@VyW8CpeM6? zLE9hSSl%pxPbO30^1uK$g=7GD1UKN7eCrVLxhv6VSE0gL5q=sdyoKjjHvA!rP|&@UGa7KgVmJ`}tXgj>Ae2fW9I)cv zY(11fZxDr5Dws_9h&^m8ds2?vfc2LJH`&`w(&b$K5M(7A1UvHC3kL5W9|%C2{t(~p zqI&)IHw;Dj5nytfJ-sh|UUtxYUOIoCB8ybc4+zk`^pb3dy-R=Pc--wHlQwj$*$Bu1 z+xhfC!Qje;6ja%$W^l>6V1xT=vx ztXBId7|u3$H>`0OcfQUAi3&ob5*!tIXKGT`dKbK}H^YG*K)|O9$Xpyd`1H;2kp#wP zC%te>`S8uJea(_J$+!8poV!z#4u-0Zj4O-Lk~f7Ser5YMnfz$<*bvaIT5cMuI}td* zq;NnRXw^rCd*)tE>R?pu=r0al7Ru*|P83=Y&k&9a+x$5j58E{;$q_LIwo+HjL)e0V zCo9wUa{q*1NYal^zwa#IcHt89JXJ&QQTZ95Pp<|<-q zNd&1~utl_gkfPl(l_LO$*XbirVQd}KWeY*Vab4uhbF{i)B}}6Kd5tIXtWgTB{ay)5 zv>15wvyB;1G7q>WGJQ!w8zzEeA9(CiSy~Ral&Wsu=uO)Ae&YR4zzrE-bDS3_{CMrW zWorlU|JES>@t0W= z_99Xm!A)RWan@tpx1kR8ObXWh{QKc|{&>{=j+O2NClk62M-z7^KikZjC&@m>d5s5kJ}u zR~Z^Wa#Dx!cJPe(t^B(AN0bflykulBxurgQ?}IILX)Pp4I#$<{na+Hodi>wpSE{5kJKUcBbBGwU(e<%S?_0wPNOCS-ptBx9vwiBXsgSK%7v0EzWfcrXR-Z#eeH z&xuiNJuc5e3d@?Cm=NN4J4hPsMjrl;Q0=Wm(9y$`i$ek$sK3sR)F>gx=E!a={l50j z1@s%M6t>OozQmPJ`V~duMxM>tJ2xKLe0Vl=mJ#r1XE#)6(Siu^PoAUi!e}3MW`wD= zNuE|~coLwlx}gl!X#HCvC{klYjlB05!Gk10=|UF(k=>QLKk7`?ZgD5Vys>|zZCtqO zDSX9eXF=V2UJwBXvy!7`BO}KiC{O|g01A8$GZT39F1g7hIz*lRB)?$0HPX{f5aCY` z4rN=TX?COx)^240(l%Y6UBlXN;c1(v^+JJeHpxP0ha@G@R%*eym;sgHoOP=g zcoOQU$AIzZ|7AoC#!{o=ae4CWO3fBg8Ov@B)2ISMbYRJGN zN@hgAKQ2a{6Mb&;Gfy~Oj>C$FUNU2EBP`F zd$=o49tq^}_~Vfo`dm1W;xE9Ldwfp`ic!YJ)DGnqtuU9K>4DnL3>`*4Y)8(q(R{WA zF24Q_;z@x?sNzEc*sCU=broJgL9tVdCcm{fM{pr5;r}+QH3^D!euwJ> zZa54q@Uz5;+&ZfTAin@tlK+&aHZX}m!fB2QI^R;Oe!RaAI)zfd^v(*3lwg>vl4psy z%2apV-2uNmKB7DQbke>(^!<%%nB3s;6ipU{1Mm@mOlnLBzhLZ5Z1xBib=jc|Rjg2^ zo0B?F$0Y%$ZZ|2VU`wgw{{0{r9<H9s{8OF2k?AM*F>r!4D z8$iuW(v(jG1aDFYOTu-B(mn>6{7fta?HA2N-!bB1f z|IP>e=tj7*hm9nB=)+MOgwBT~6DuWu^}T+6y@#QijGS#a@`i?DZb|I~CYd8{{yn(> zSE#*27OA^ugv`Vpp@$(iapCdXj92sK+Xw)5%Rp~DLvB1qM63~mjXPi}Bq$9lvz+kC zH5qdcvmC)T$G=ZjZjpnfuz`?O+}Up=>#BBh5*9>>JF$3R8?j7eLk#cz9I?6a)#8M3 z4hNW;GGyco$}ci;;MG{3_I6oJbYF)+oZ$Kl_%9+rOQ8BGQ~1^J20L6_(yNn2bVV`| zIb9iHUpSJyVaG`m@#~FLct154g6h#-SM{_dbN*W8y!3aCSNTnl_}@ant+161tgG&0 zg!;_)VaUu{Oe$8&uVdZQiUrYIN#ASDsuTH1a%I7_<*9Q*LaZRqf}{>|x@s45aG)@1 zTWwA4hT*8OkW1i-kL2@B`0W*d%^t^!5hcM~V~34|(FeP;kfxo;I(d426=<53pI}ag zp3w4njJxrwZg;BIQd>DODmcdPk|X)mmCmHuoUEJS?TJ*nE?OwmdRDM4fceAxZidhrQ zz8HLT`8{lph!3J*P&~W!nPD%gBG<&~vE)WIGpw?9O`U}t>}lrBlj>?Vgoh~`)-c`D zfc@|?gDIda;>zp&N&Flf8OpKlQ32Vv{y>FbF96@NKLT})TZ>dY{*R`vJP@k2|Laz| zDhWwhQq~ZYN+ZJU+7d%WO(~L4rQH~ z`O*3EdveOauVpiuRD15vS8qS>DDZE_gzPx3yD;})_uTaHeB3uHkznIf{?6h6db(+B z@!lIzhk{7QkjsrHJ2jJ*gW}o%og7eHdr81CnAx-4OF7dp)(4w-`fz9dPmiU|>ra(m zOd!Wt&TmP}D89#TF#f4g=3^SN}G+i|zf zbiUXUq`EE?^8|kiQ_C(m)ppEII2YWSB=Ru2`dx8(?Y^cL`-0Wq=bgLV+A`Zif$ekyx^UGR2Ml_}z z2E3{?Qg2mND_X=HH(%~)SjUz?)PD{r6tBRGb5 zA*KW4>E{=PAsy{eS+@o`m;Cf#T7^H1u)exAfcD##W@2up%+yN4kY-zX=$?ph&1aqKf-*`(*Qz zm**Z#HlJ}C|-d%lyxveC}xeN^auI^GB1hS9^9Ih8AjP zbma-pOV2W7Qcsp|k#{)0c9kuou=<#%?3Ty%T=}5y%2rh9j`IRZm$26cy!6P z=KoO6e+{TyE9M47vVDc~x#Qn%^1$;xf0*nLWFnft6zKe*9VhcGcIQ`oOb@E(Y=Ynf!I^qd*rwO z(x_zF>D7MQXHsu1BwWsU)}VH|^L^4f^3>$X_$3vSnQ-a63S*|YVMj}r&(zN3nDzGt zJ?i59-)<8V8}3=ZD81*+$8RbR3%oU%8vhE=d!cSGCN=1^!g6B6Ef;JD+n}kjSjTtC zw;#(ZKCblAI(WP0UC-u{(sV>AN(phyzj$Q&(jWiWrDdC8EScpL(9_MOs`MOSk5};a z_uv%?x$)RbtkLD54%f3uM-g%T#p-Tfj@AXZ%snv^{zxJJRf?gK zta9?HDKM||tev9cr-HWp+(r9%y_bz#TYHNQ;mX^5!rkz49%K2@TY0=^iOv$Ku%|YA z?*wC0zhwk;tUY!J+i}VN63!Sl^{(yo`08D|^5y=lTl}3LozKcv;Xup=+LiudsfO+5 zznyy$s+U*cjoSy&EW*Z}BWO!9QjQ44R^&il3))}Ir#=6uUSotMddilRwp#aPt6dOq%lPOreK-j3G`RPTBGwAK^wg){#XC$plRjM+x_RLw+^a zY41-En^Yynl?FVphhprtzRKg_I_YlKy2|WJZA-Nrt|pewoHBlO`iKQAudJH&XiLtW zkZZmEs-L$V^;6YNBSj4|OizZEff>IFKIQi?@lUMq=~izX!|`3~79=YFNGc)U^%xa!di_YtEh9 z4m^6fjaVZ&Tk&asV5DE9#D2`}%A9zisQ*4%&5sdck|M&-c9x zM-77BPEX^9VT%FjEoqTYiye<923u7r8p1{~*N|ME@%^I?rdQ%tN$H8Wrk{es;sjN| zrgLT6KKeWKOtwdE+39L%veyE!LTl5;g!!76FQuI`zQ=Fx*sMO4I_-P2bZeeNmG_I- z%6E3DKbA503Z8@%ZFP^=XHsQ9vJ4 zag+wsfBO7ZQ$pr0&7ERHA>aPabTn0@)tn*fp@&e%AKzizYwy^4F~gR1Y`HR$e)i1r zfw~eEwE3(AveqO`Y)?^XIdJ9ahgBroF4j(0za`t*Z>jEQ{I;2=w5_4i--o?-%PYG0 z>v=FCwsfa1>4lQhuGt7@9T(^pFJYC(nYfO>R$ZJnIoOc;Ne>_oh=j16>oNlz!n2o} zFZYQ5^yPE&(tFCtx5iDX8Cr%H15bhcLxSC1OWXNw`Oy>Kda^l=X{!>Pv3VO`br~f8 zT#x*^2r3!xm)Mkyy1U=KJP>el?t9mVy1SNt0-v5$q=-&Ner+kScy@NE+4-a z1f>r(S(oFBuuL@Fc0gE<{-*gvTQ@8FzGr17m3hD)NM{1Bd~`;+V6Rd2d`GOxV})I4$R zf*u_p%?SStDRs+{GKU?xpT6ptoHgw58Q*7Z1&aJyTKyQi?&myfQ(5}WdB=;|*WDK= zD^y;k&ekiAMN6&gSMXD3=e!O4%SWdfTDEf3*L~oMQ(X8R=4I#Vk`LElAiG*gmt(c zvleIz5F=Wx=E@dv4=H$g)Q%n&1dRXmK$Zn%?%utJ`0KDq*XNPk&gJ@D zkVR#j{{dVj*Eq*zG)QN@b|kvG>3QLZds!4O#>r0w->G2|5J7@6Y*pl1KESb5l6L}ww|0=ZlOZGnyD##jQ zd5Q$n{<)w9V{%XL_cHijR>7Z}{~_qCT7j0%Ws5 zuwYH|vOL|rQCyuiF5k-d?vCw~U=Dp>!G>aR6}4OZrc%e7VEW2M79~mt4z37U7@ZCm zE&4CkVIoh^pkNbqU@s?*%D)gqf3=kV#RyTdvcShlPjSymTXDE}OR z2k?Lt4`>05zV7?F99;oI{p&xa$xvd+Lu_^=n};x#HHH7@bNL?!?jUaNy&`EKh@i*K z)hgkf>>Ouna_#>86cUstfsfp8@jTqvI6@}sx4$e;5GG5?EH3uRBupXSi=A;2O&t$lH2x(4Koi?sOH*A{B1 z|Hb1^>%sHkc(>2LQTFPFt%!BbxYM;ixm1zMP6C*L@Bm2f$BkTBpwL%QW{iB#Bpj!; z3y@6-l!bB2g4;CL|Diqh5Si7OKicJij2;YmK}{8o+r9E$EssH_!C@r1Sy0kre(AlR zE)F_c(U?c63ICTG;A2%k$3euQ3R7EcSeuut_+MVSycS8rmh?ueLYm_xWt6|6qq4sn z*Q>=_kqMSq4-hcl9rBtEXLIfM0<~jgGB(EP>b;WReKCRaFK1)^;q0@l#+DvcEb&5u z=bLDdctJYz8;rA#7=d{Ku8V)4(WQ*fq~x!|lu)ETIzn>i?(>l^&ihz~05EZTm`vL} z4*h$X_?UmO29b1)iKot((k&t+k9rb?oU%x)6@Xl|u!!}?(@#t#$NL+a>)C(Ms~{3z zFvz)52xWL6-D1+8;L`tqS^{T?_+AE$J0pWK0mD}QFW>PNET;JY)@wh^!*&$ZJpFb^ zkr1Ss2H^Yp-#jOfM;0tGT2Bx$mk;E)3|$<% z)8_NjW95Dcj!(ZaKIP4Im)kW_zQ0lw^#2xc?Fk+6m5XW83_kNF&=uM&%GTO&Hfn>#^}7{_Q#GV}p%`}?ocBcDeAg|v~I1YXYsd&C?e(NPv<+3zEs0eexNv&5@_ z(|zwxwC17$;>%uagX`Jv6QmAwaff0nGi2x%HE>AgcTPx+!Jj`L#GO+FYQqf!vv*7@ zc+utQcPyt)sH+Yb5X|55J^%UPV@<>w=heDe3q}D?tJ!d=k6a;}iXA=vT7=B;@t5@= zG8m@}m+XbmjlZGCpm7h$=j@NbJ{XT|7rt=EkAK}bIl!sJ=@tCTcoN~z0;}s3WiU$J zs%#tG5P1|=o=o#LZXk)ihU$TTmy&X+{2yH`xN(0M^yelr<&Rrv(a9MqeyG;(lVpcujr&1Yg+x2K1h5PPeZT0!el%$vu1-_so&Tyi zfQ+E$%2b&T|SID zAM7x+gSEMw-hUXhKw39zUoICi(q7*MHcc{y0R> zi-w5zV)2RNEgpzvnQN{3Z$;&Dn_sumcqQQTffdB})rtW|bRfS8x(DkkzuSBjwmi}s z|HnpM?J1K6zgnXW;}ewy1W}vNCkFCX`X}|7P5@fX_yYWTe9=}4Ft!dX3g;;pjWn^3 zs*+(8Ed4Z#l8A1!;%EniE)-HTG^@#V;BE_Slb;^1ZkNuX-xlMh6+^Yq)Y0M z$<3sl`}gD6*Qpx9+&b0O2npR$7c;s+YP&LW^QbP2r|)Vl^TjLL!3yO=HvbVjFiSoQ z5IFrBx6Nr>*2{?Aa*O?Rkkk6xGpK%E# z!_~OU%wNKhk$n5M9nJ|d=viPX%+#jdHC|C7crh)`vM4dY520Jgqxs5F|NNH8@1iXe zFva8QK)tFZaNoJ+^Eqq4{Dz@hX#^dN>h-WQmF%1A(XsBin5x=Pko@!)iW6ipa*2PU zQfy19RrRRxyr2Cd;t|%UyvJvX|Nu*E9 zuIXuZC`$nlLF&D|c@a5;nnjd4c3V=~Em2_EGuKNXu$qsd6jP4H9-3SiK0n zsUM6j;1gtGprlgv`cp?zHAl#tXyrC%a429ET@JN=`M!v#$<>jUSW)M^r+w;8^z6_! zKH>5*<@n+D)jM;Z9c&!E=JT35r`YpsIq)mBSD<`hK0R>-S|eej2hN?@Twx4(Iq^7) z@+ph2JN&h8r_XCMmOK~$2K^lI8d9<3Tj;XHQKf)9Jt0MZ64Ozp82kHX!(aHrqbW<_N30?o z1gb)x%g~QCHYy^FqO86QiN72jL9(}l=NhxDprUoeVm`Byv>v>!MLa$@$NpJ-VQ(s* z(5eTsc?t-_+6$i6x8eYH^ZymWJ`aazGbwYIJU{~b%}EJAw``rC=zr%+zhev0ht}ZT zK2hd^Dr)qmrmVyR{b$|zKw8XBvV21d0fcVLbcz#g182-RVT){gIlWhA_gX5)fv zS`gJj{y5dKRNd19d<{5+i#zbv0uFw&&^LCh4N{art57bWw6>k~if9jm!>+fG&+Cha_ar(}@v$R5toK=o`9K|63!{eMKzROpH5auUHHmX><GDI?V%IsWlcEAiNiy^z|5ubVG+X7FDqI|<&dSTMz z^A9JmWLSK*D;%$M;?sLy&3?w4{5+UKsnVFTo?EgEB+IK!)*y{pQ&Bu$>nd5j4D{f< zPt3*@Qhj@@W}hw0&Q9(Q#yUfa|tn97)=h(+W3S}mvg zda4$xxsUqfGlF+tpO_xrZaxDU<1m>q`r#Vs`eAI~Xc1mIY_U!p2G!ZuokDKC@XA3u zZn`eywJtd5f=fgVUfQydC5={EyMaJvxZU>X`oR6CrCd5FxO!FEUQ%id9|SZ0@07gA z6)G9igcYNoMtATS#ACYz|6JwpU6!7=Amj9PNI~TESbI-$d&D_?G16z5|j$ zleBYJy40yAjr$Zq-Y*REs6>T^lC^O|RxR4_9Z>o3%ROz}>W(Xk6OONSn!2lp?Zm~V zk28PjRBqwukaqUrfRH$lW#T6}o4HgAn_gKH!d$UgMc=@v-@)Dtr|L!p0=AzKq;u2= zHTA6AmK)D5=sz0>*LV>0c^u_dPB%$37%s}x9iUEE)5e9{mI`_aOZSMfC5&k`PWIBgYS!giDLT(Wl&mxJn@4E z;;WKlK**10X9-6>KtvQp>(>froyZzwMLI7|e~{|3;h;K7dRa1HxiJZLYZr`ITm4+V z5io<=tb!Wggi(6i&(%n|ez@|76)vUY%X= zW-_QH&XS&Y>}J({HmKe)LQh|+6aVs;L7i|FV&R|@mXk}_ZOjd<-0`{$ZfF6yXb=%> zEpqZNMn__4gd8wlVBRjo1?}BW@K3!edJ>Ga;?5bEb8(!4P`p5BPRQiX9wdZRG>(!* zsP3QSG8t6sz<9MUIm@n1$b{Cm6`Y*CE7Ea-~k#86A?CL=A!OPcw)QkP@ z^XpVl)u-ru`WJ|Y*Kklv|En7}Uiou56v4lp8ab^H>Dvsp56NJvh?g(}uS`Aao${kS z2+7k3p6C(tbdahR9YigIFRQEOJsrdytT)tQc>9nK)PomnuUrx}H2C>IT_e2}6e^YL zM@T-{!|@MHi=rE%tt?ght4$Q#9sIk-{4^|;N+w3N2>=}w-GzYma^x?n>_m~>Rad08 zY#^?XM^*QzSM4oZgqi`>GN5FJkRFF)>mW`iqU(pI9fr7YUwEhA^4^SN)uS@R7H-7j z$Td?+0`o&~s5zmTCfb?SKLSxV5%=oT*-t~I;U;YX=Oud1qn@($k~-S`#T+3$;VlJ~ z(_Udbs_6V&+pIq;?Jbl@ToP|>wyVNIxi`ZDs?|i6C=|;P(BDV z0Zdhq3CposJiYfXU&y!^piaE#ig*Vgiw$Z6)X~xKK-h6skR1X1X zX0hKNJY1!|nR4~>a?Y+9zpfi>C4$FS{$SGHgLuJ*_4MP7jfqHyIij5e%V~~6DN;@s zSjdn$qTKquYMDtOOwS*$U-5mZRG&id1s+w^2(})@u%Fjip}Cj;jQ19`rWG!sV|hZ3%`#X< z5uum71u?}zdjL8T&(t;A5JJFawn6IjMqTcqZODl()&0F23$_#THPA(_q>wKnUXtB( zoF+?1bQ+WOgEan-@}IMe<=4%Qf8N9%4QGkJUFu&|^+;va=u*7}#!hT6PMu%3g1B{< zu{NF6LeT3!L_G4ikkV=`6@hQ0U`vznGGwK;LstkP>Oi);#GKQbFYnkG(JUuyR=4`C zs_{S;mnUN{wTSDoCWNKRa{vrIF{RvBesbxuO?6-%Q~7hISod<2mmOK|jgFaX^>Ye6 zSHO8A4ckK2V&Mv1_)JB=Gyd;Ua;rV8$zvD;GGoxE?_=3d2ROa1-S@F~C#>QJD|bB6 zRAb)}Wx1%+naS84!*Ruf?~W-*-B`ij4Y+x1sfBJo_3?IODE|CQ>F+DdT+lM|jNj}H zN%FNK!5=yqLW}$>Khn3xMV1+kKUPmU?^QU+$VVH+eb>WBW(&z>f$--{Zz3UPFNqom zW7^CSn)fKg7|yWjw6g|rn3+On9N)9vxpydBbg3BKS1112tb)l=R?8A~HP8B`^RItX zL1}oVf}8Coi4(&&M}|z;P#uNF7TPBZeJDb!mWhG5jkd8G;?dwhO|_j%o`1a~ihAab z-N+*Dm*^7*ZbdWG0?VD7x$tV``PC4Lmbo)6fb#~iQ`3cn6^Dhh(i!{~f=)kUeZs`- z2!!&P@O+6ZsZ3V2l(({R4_&KtwnX-%jhqEXjg^2zn1vE@r(}oI6MhH5THh=R|N}M9>!yJ$EfP<#Wel`EQ7jBNtG~%={1g2 zEI`^E4PXavm`~u(Bfj3jBxDgCsAOB%hh;&{kGu;&vZg1#p&m%(Egy2=E_&L8)mb_7 zckMz08M?(U|1iK^Z<4X+-j;P-rMdW380x@7Ux5jHCwfNf%V9b(CO)ODsVmA7d_R2> zUhT!-fcX9ta`Yoa+uQR)ulh`ntiW<}AD2Y53G?Eh#ThF10ch!`j>*vUCC{z@Ek#?u z25ESYs3ow42H01OyZH~IMb$+ExRmk2_2`0ID<`YB8ElJ`k}_r%NNyxL{}hc}PQTvt zI`8~yFaO)UzV+`(R2kxgtZx@Lg6>^UaBCst$Ks6!CKHgqa5h2@L@bx!NH-qSaSJQO zS`AOK1ZE~=OA{)je0dKu;j&xkb<}``UpAWch^g$8C%C(+hio@doUH|miI?G^i z>4{Yp6nB=>AA|$%#1VV1kt@W9E*PP0`X8Vqb7XWR+Lz6VgyoZ9vF6|;UMT!KN=#Bb zN(_4|>U=y@V=(dfsof-RuEy!w@IX$*^+hfjg87w;q@`|nmq<7-P7wKV#{9W}Nxu1b z2~e(Lzrt|f>BXr9_m3!fn$)&|-c#RzI#tj5N*XgBKhm}O8{G124WUcyo|-BDNoN=O z*gJthRVRMP!8%{fy|3&D==5<&;g@a!YQF*n69eO-xBRLr+Id&1?<&kbhgP~t!`YFv zLxO|zLS;g|c+l&9DSqse>IOmNTC?zEK~Nw}DUKH%cHcw?dKKR|cQ*`KL&gkuiTT{q z=Uc8_`m=ziq`BKp9o@8z5NrTSe!Vd@&CiQ|R5oZK*hj3iuMm~@a*;ncw!>hhOt{F& z>#eFa{47;q-zNA_25a`qIzeTC*S`u8*@D5rL@RD!l*V;U-GXG%CMOclhpadST+7jV zi%aTsYcADLPl7hCx-8@Jqw*w6bt~fEOP#xt{a({d+eAtuY&>t0&vdOpE_$-^w{ZArGSd+{#cewP@znUV$s- zy0FC)XM`C6R-te2Z^C#Vu(7R9`vUb=LyLk*@ry7(L!T%wrhc3B?mK=jKZo?xuBW^X zIIdqP?Bg}Ex{Orhj6^>iG@|EGYHvmt<6VMme92k|ktaFWFK$6>z`WMuzEsxk9^0prJD_q=H3bW&#sz-IiN8a!9$~vn>ORX9F$+edk1Pi zrCN@MCC>V7<53ljVEXB(t=Eg>?k+MLte{+7gel_AvDmjoMX&v2=UrskXBrr5P5V=s z@z{>1p^e6_*Jkb)#^V!F^WkwtPjyuBaJ_g(VZ10}H{xMi*qG>V6j8w+#kC=fhpA>I#-Aj+640hZ336( zJJ@~Uf@_PVZmgm8y=A6>_6|_khvA`KAX`Oy~E$=DDknX9^XX?V5m%8^+Y!qGH`4 zPaZY#FNo*6`61kA)5=Mi@dFub_Xmzb3;lH7S#Qkfd+}h~1K=fg)ocd7EuE4C z6Pi>TJaxXyj&^MvA*0Pv2CRlr$j06)W*ymR$Jkk|XEVC&;QYnwfvkoTLQUDgMyM(a zm^cM~oj$RnvF}Kj8=sJtf^N|5ORCrrT;oH24C=WPv|)C(0s&y3AJ(ya$ZcTVbi2?h z31~G}EwSKWrbXf%+K)ZDm`)sRTo-gBnj_fvB;e*0I{BaKjf(+%wgzFl#RY`&WLyfy zo0>?9%hB`9Xqpau@Pq1)Mv7f*#kE5gAD_K4B!c#_1C10zZ&#$UDQEc0>f%A!+x|y% zP%RUn%;MH^pLr0@K3KkUe?)IcelgFE4%EQj>oP7Ql_qs*9VD$-tT4&nxyJh|=kXLr zd0{l>v(>_n6;@Q^Lg-D;^>-U8O0hLmU-?~_=HsB2d4aRCU{H3-_s_8g3brB{t2>-@ zH<8eO2b-OYH5jJu$)in}*!?4%C))9SSnnXq$ho?VI6gD;)e4pPEoRMVS?Bcl$q3QQ z6Y?0eeiS&gqvVWOeCcMfVVc4n`^%PV4>YF1dUUtOqJr;j+6>a1W_oG7=y{$7-Fhs^ z4!UiQXsmLp7pq7p0xUMWZ-A+)B*+tRw(@X%4-l3wsba_9L?sDRKXp{uizXN0xDi{r0NUH*V={%dZ55PzTxtLBqz^*8?ASsS8=6 z$>i(Ax`U$|vW=F+o0vUE%TD)I?qe0%!XdYc2Lmlk-yW8DV!A~-jaiV^@7F*wF2$AG0l{Am ztyokoL!qk^NML_(mRmDG5wcpj5!MR{f6_I}D{`=V))Ob*`vRpOd9a@1)}07s;$$JX zMQW(t{p+xgI{j{!gR2eX;*Nb0Px^2jPUvHPjc>?v4Z0`%{VIy&Mg?)$wygqsD=AW{ z?+gP#C};wx5I8d%YndL+*5|dg3vZhf^6|AaIG*-~c*cv6^-K2&FHn~rPr`u5dI4V- zQxY%QlVDCD2F(uLvmU1AJmqEpU1T*JH=7%a)dv1Y-x(U9jD-ysm%7Dai+a6!da0FP;8^2Uke@0G+29RfSH3wF(FnlsQ`I{YgDIEM^=p{N%%Il08^Q z(W&9H@HXbcfY!JtgR<8y_BD;R3&&d>3O$g$nRkbenOM$!8@`#}o3LQ7!?-e3PgzZy zkOa0M)Ywu|eJc?EJ#%4}z3K3#=f1z+!zWn8jyFAg7`hzQSeUN=JpVp`uybh<1dP=B z&>Ru{c^Ry4E|j+Ss#MDOiA))g(K@!!YCkYxGm+ZWemZnOk+&m|MwIM9f#(v;K*MJ_ z1A6*!Tam_m0oRlQ&+8$NrEbUxXVd1Fr}vOEZ8KH-fyRUI`gj~4}9&6n2aa`FS=fhy9FZIDptLD&Xh%oFM;m3%5( zuQH%QJXYR&-KK>@eB8o0zt7~RYrt@hV)r_N;FjaqqM6U3I~aMbdu%HtDQkWxftnBh z0g^g5Nb`nop*wG1aT$H#fP&o0mzyt~kfA@Y&5!(Sqe*y^Orx0}Zw5xf(Y^oSC+P7g z6d{Fvmw=>D8{Y>Q zr<~!2G+@Gm_I@eC1$CBcc-E(t4%B$ntFrHqfXplJkw5GUwdG)oBb7lEc0-QWMG1c~ zy1mKkx{L|(_`cr*jF|~qc2hJ~8EPzB8qbacRTknyL+^d{k0p4?e`S*|D8;kb& zLoD&9#rMX2e94bTpxQp%r@Ug`p%zasbqvxfb;Ir2yNu^Q?BhLB{)QGN2`htlidTQv z1Po0=Taha`Q!BWb|wQB7`nAahSjX*!Gp5?qPk)nai-o%nh{ z;S<$3@3lE$(;Jtr(RRUnA_$Zu!BL<4ar~XF9dWApmMz;uW^~>{y>5NMJNmZNQ^wv0 zlCCjFb>MAT3&U4D8pI)058WUmx?5e*6c5*$DC+uZNv8X*AS=lu-K}~I&9TWqKmIL$ z_twY)vB3Tw_{_A4`R&>9BH+%YTb+A+dzssE)VGtgxK2E4d1Lz@>EWU-%9N)8%)Clt z3uettqpylU_DfbEgOkxx~+tH3sd7J^9@rKzMk0Cc0&{<_l>dhST9b4FRe(>tq###PqfXKb_{pK zB6qK1sXAyGfYt6j{m^rj=32hEp~S7hNiX?FUJ>u?!C!oCt=@pCLv4+N3)0`h2&y)`Vge27*(PNg8KrY|e%)dVu5-T%BH6;A zvvBLw0PfI-(W*z6&~KYYAkpA;I5Y>?KlY}(Q&uPC9K$_j&S|Q(6=Jh5r7$CDxA@kk zfv}&%b$mT-?|IWrJYKY)ml1&5&s|{^E9&|YOu8Kwd4eUb{}PR7)7b2SlhT%CMhP6> zr&}@zEHdTRD1^Qf@g{RC?}dXu06H}%cv=$*;(wP7u@QYt%`g@F5z6;c?&+4cl2H7o zrz2!zZVIg@UIi5h0#MCCz_~S0j5Im2z*5+qfdPI#cEXxKk7ol&3YiO+CmydTQsllr ze6|;duQ$|k5>yf9MwMYYP+&t#v0NQ9209XleOkWZ#fv`_R=V_1#u&3D25?q`H}UO| z;_l%|3DPnG$t6w@Xuf266k9m56#FWfjR(fNP=h{|SEipp2*F0V2f_#Ir9Iiw0jIvy z*Hq;Uf2!&L`O^HkmZ0}e{58x`WyC9QHBy^=_^&tt!QwJnwti;ZeW|Rx46seMGe5Jc z9_mXj)f11+Nu~u3%oPnarsX7yJg%zK6DE+`-VKIq0WiL3gF3l&f`@bGIg#IP@I#UM z12FVU4va>#emfCn`3DEey^l2?rUJRy*#99FAqCc@wR^~|^7LF(?On!6nJqaCwfV`; zMzga(F^phCp&mvai9SW}R41lhhc5;ItB^O?d^2i5Fci9dW5nY1k<-oF&j)=3i=9+0 zx;!?vB_(jGF}U+UYF3kEGFhaXb!pd*M!BXfGApaFkn7c9i7DG6Y~h9Pt_xA$E3e)z z~t;V&%_2C2|ywskMnR1Z)}-V zwGJd*S2X|P5LMJxbpJz;ztrH;FB~mCpucH!x@aLBFEG%025`XhEzdW7dC8rfd@n`dA}(OO^G3&+B|;DL6f~PHd1X zXwtqc-M6F5uM~Ar=UXj!g-p+(AsWd-p#h;unV^F%#Cg{j74dTA@*}aA)rsyV^qs@F z!}Y42cd!{t9Bx0O$K&tyeNjQayU5ak-qQN9d49CFQES1W4CY}FLnZTc4 Z=y+1uL0^;n9;h8DM>`kWlD|)c{U0+Isu2JH literal 0 HcmV?d00001 diff --git a/packages/cli/assets/hero.html b/packages/cli/assets/hero.html new file mode 100644 index 000000000..0bbae0240 --- /dev/null +++ b/packages/cli/assets/hero.html @@ -0,0 +1,56 @@ + + + + +

+
+
+

AnythingMCP · CLI

+

amcp
from the terminal.

+

Call MCP tools, run code-mode programs and manage your whole instance — by hand, in scripts or from an agent.

+

$npm i -g @anythingmcp/cli

+
+
zsh — ~/work
+
$ amcp login --browser --url https://cloud.anythingmcp.com
+Logged in to https://cloud.anythingmcp.com (management, profile: default).
+$ amcp tools ls --filter order
+shopify_search_orders   read-only   Search orders with Shopify search syntax…
+shopify_get_order       read-only   Get one order: status, totals, items…
+$ amcp tools call shopify_search_orders \
+    --args '{"query":"fulfillment_status:unfulfilled"}' \
+  | jq -r '.orders.nodes[] | [.name, .customer.displayName] | @tsv'
+#1038   Kellerhaus GmbH
+#1035   Studio Lumen
+#1031   Bäckerei Hofmann
+$ amcp api --list | grep -c /api/
+204
+
diff --git a/packages/cli/assets/hero.png b/packages/cli/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..73368c1c0730c1f54d3fce2fe344a0b017972670 GIT binary patch literal 128832 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 literal 0 HcmV?d00001 diff --git a/packages/cli/package.json b/packages/cli/package.json index 801278c3c..1f5946c4c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@anythingmcp/cli", "version": "0.1.4", - "description": "Command-line client for AnythingMCP, the enterprise agent harness and MCP gateway: call MCP tools and fully manage your instance — connectors, MCP servers, users, roles and settings — from the terminal.", + "description": "Command-line client for AnythingMCP, the open-source agent harness and MCP gateway: call MCP tools from your shell, scripts and CI, run code-mode programs that chain many tool calls in one step, and manage your instance — connectors, MCP servers, users, roles, audit — from the terminal.", "license": "AGPL-3.0-only", "keywords": [ "anythingmcp", @@ -18,7 +18,15 @@ "claude", "anthropic", "chatgpt", - "cursor" + "cursor", + "code-mode", + "code-execution", + "mcp-tools", + "openapi", + "api-gateway", + "automation", + "devops", + "terminal" ], "homepage": "https://github.com/HelpCode-ai/anythingmcp/tree/main/packages/cli#readme", "repository": { From f55aaf2ea98b9cccb4c73985aae12d6b88646267 Mon Sep 17 00:00:00 2001 From: "helpcode.ai" Date: Thu, 5 Nov 2026 10:36:24 +0100 Subject: [PATCH 3/5] Rewrite the amcp CLI guide with worked examples (en/de/it) --- content/guides/de/anythingmcp-cli.mdx | 320 +++++++++++++++++++++++--- content/guides/en/anythingmcp-cli.mdx | 318 ++++++++++++++++++++++--- content/guides/it/anythingmcp-cli.mdx | 320 +++++++++++++++++++++++--- 3 files changed, 854 insertions(+), 104 deletions(-) diff --git a/content/guides/de/anythingmcp-cli.mdx b/content/guides/de/anythingmcp-cli.mdx index b8380dc8b..e29a8a882 100644 --- a/content/guides/de/anythingmcp-cli.mdx +++ b/content/guides/de/anythingmcp-cli.mdx @@ -1,83 +1,333 @@ --- title: "Die AnythingMCP CLI — Ihre MCP-Instanz vollständig im Terminal verwalten" -description: "amcp ist der offizielle AnythingMCP-Kommandozeilen-Client. Rufen Sie MCP-Tools in der Shell auf und verwalten Sie Ihre Instanz komplett — Connectors, MCP-Server, Benutzer, Rollen, SSO und Einstellungen — mit einem Management-API-Schlüssel. Per npm installieren, im Browser anmelden, alles skripten. Für Menschen und für verbundene KI-Agenten." +description: "amcp ist der offizielle AnythingMCP-Kommandozeilen-Client. Rufen Sie MCP-Tools mit echten Argumenten auf, leiten Sie Ergebnisse an jq und cron weiter, führen Sie Code-Mode-Programme aus, die Dutzende Tool-Aufrufe in einem Schritt bündeln, und skripten Sie die ganze Instanz — Connectors, MCP-Server, Rollen, Audit — mit einem Management-Schlüssel. Konkrete Beispiele mit Shopify, HubSpot und Slack." category: "announcements" -keyword: "AnythingMCP CLI, amcp CLI, MCP CLI, Model Context Protocol CLI, MCP Kommandozeile, MCP Server im Terminal verwalten, MCP Gateway CLI, npm @anythingmcp/cli, MCP Tools im Terminal, KI-Agent CLI" +keyword: "AnythingMCP CLI, amcp CLI, MCP CLI, Model Context Protocol CLI, MCP Kommandozeile, MCP Code-Mode, code_execute, MCP Server im Terminal verwalten, MCP Gateway CLI, npm @anythingmcp/cli, MCP Tools im Terminal, KI-Agent CLI" publishedAt: "2026-11-04" +updatedAt: "2026-11-05" lang: "de" featured: true --- ## Ihre ganze MCP-Instanz, aus dem Terminal -Das ist **`amcp`**, der offizielle AnythingMCP-Kommandozeilen-Client. Er kann zweierlei: +**`amcp`** ist der offizielle AnythingMCP-Kommandozeilen-Client. Ein Binary, zwei Aufgaben: -1. **MCP-Tools aufrufen** aus Ihrer Shell — entdecken, ihr Schema lesen, ausführen. -2. **Die Management-API steuern** (`/api/*`) mit einem **Management-API-Schlüssel** — damit ein Mensch oder ein verbundener KI-Agent die gesamte Instanz konfigurieren kann (Connectors, MCP-Server, Benutzer, Rollen, SSO, Memory, Skills, den Knowledge Graph und Einstellungen), ohne das Terminal zu verlassen. +1. **MCP-Tools aufrufen** — dieselben Tools, die Ihre KI-Clients nutzen (Shopify, HubSpot, SAP, Ihre SQL-Datenbank, ein Dateishare…). Von Hand, in Shell-Skripten, per cron und CI oder als **Code-Mode-Programm**, das Dutzende Aufrufe in einem Schritt verkettet. +2. **Die Management-API steuern** (`/api/*`) mit einem **Management-Schlüssel**. Alles, was das Dashboard kann — Connectors, MCP-Server, Benutzer, Rollen, SSO, Memory, Skills, Audit — wird zum Befehl, für Sie oder einen verbundenen Agenten. -Er ist Open Source (AGPL-3.0), funktioniert mit **AnythingMCP Cloud** und **selbst gehosteten** Instanzen und wird per npm installiert: +Die CLI ist Open Source (AGPL-3.0), funktioniert mit **AnythingMCP Cloud** und **selbst gehosteten** Instanzen, braucht Node 22+ und wird über npm installiert: ```bash npm i -g @anythingmcp/cli amcp --help ``` -## Anmelden +Alle Beispiele unten verwenden echte Befehle, Flags, Endpunkte und Tool-Namen. Die Shopify-, HubSpot- und Slack-Tools stammen aus den Katalog-Connectors. Nur die Daten in der Ausgabe sind erfunden. -Erstellen Sie einen **Management-API-Schlüssel** im Dashboard (Einstellungen → Management-API-Schlüssel, nur Lesen oder Admin), oder lassen Sie es die CLI über Ihren Browser erledigen: +## Anmelden: zwei Arten von Schlüsseln + +`amcp` arbeitet mit zwei Arten von Schlüsseln und hält sie in getrennten Profilen: + +| Sie möchten… | Schlüssel | Anmelden mit | +|---|---|---| +| Die Tools eines MCP-Servers aufrufen | einen **MCP-Schlüssel** für diesen Server | `amcp login --url … --server SERVER_ID` | +| Die Instanz verwalten (`amcp api`) | einen **Management-Schlüssel** (nur lesend oder Admin) | `amcp login --browser` | + +Für einen Management-Schlüssel übernimmt der Browser die Arbeit: ```bash -amcp login --browser --url https://cloud.anythingmcp.com # nur Lesen -amcp login --browser --scope admin --url https://cloud.anythingmcp.com +amcp login --browser --url https://cloud.anythingmcp.com # read-only +amcp login --browser --scope admin --url https://cloud.anythingmcp.com # read + write ``` -`--browser` öffnet die Autorisierungsseite der Instanz, Sie bestätigen unter Ihrer bestehenden Dashboard-Sitzung (inkl. SSO), und der Schlüssel kommt über einen einmaligen `127.0.0.1`-Loopback zur CLI zurück — er taucht nie in einer URL, einem Log oder der Shell-Historie auf. Um sich stattdessen mit einem MCP-Server für Tool-Aufrufe zu verbinden, nutzen Sie `amcp login --url … --server …` mit einem MCP-Schlüssel. +Die CLI öffnet die Autorisierungsseite der Instanz und zeigt einen kurzen Code an. Sie prüfen, dass er mit der Seite übereinstimmt, und bestätigen mit Ihrer normalen Dashboard-Sitzung (inklusive SSO). Der Schlüssel kommt über einen einmaligen `127.0.0.1`-Loopback zurück und taucht nie in einer URL, einem Log oder der Shell-Historie auf. -## MCP-Tools aufrufen +Für Tool-Aufrufe fügen Sie auf Nachfrage einen MCP-Schlüssel ein. Die CLI zeigt ihn nicht an und prüft ihn vor dem Speichern mit einem echten `tools/list`: ```bash -amcp tools ls # Tools auflisten, mit Lese-/Schreib-Hinweisen -amcp tools describe YOUR_TOOL # volle Beschreibung + Eingabe-JSON-Schema -amcp tools call YOUR_TOOL --args '{"id":"123"}' +amcp login --url https://cloud.anythingmcp.com --server cmob60dvv00c01zrpeujwmnep --profile shop +amcp whoami --profile shop +``` + +## 1. Tools erkunden und aufrufen + +Fragen Sie den Server zuerst, was er kann. `tools ls` zeigt für jedes Tool den Namen, den Hinweis nur lesend/destruktiv und die erste Zeile der Beschreibung: + +```console +$ amcp tools ls --filter order +shopify_search_orders read-only Search orders with Shopify search syntax (for example `financial_status:paid … +shopify_get_order read-only Get one order: status, totals (subtotal, shipping, tax, discounts, refunds) … +``` + +`tools describe` zeigt die vollständige Beschreibung und das JSON-Eingabeschema, damit Sie genau wissen, welche Argumente ein Tool erwartet. Dann rufen Sie es mit echten Argumenten auf: + +```console +$ amcp tools call shopify_search_orders \ + --args '{"query":"financial_status:paid created_at:>=2026-11-01","first":2}' +{ + "orders": { + "pageInfo": { "hasNextPage": true, "endCursor": "eyJsYXN0X2lkIjo2…" }, + "nodes": [ + { + "name": "#1043", + "createdAt": "2026-11-04T16:12:09Z", + "displayFinancialStatus": "PAID", + "displayFulfillmentStatus": "UNFULFILLED", + "currentTotalPriceSet": { "shopMoney": { "amount": "412.80", "currencyCode": "EUR" } }, + "customer": { "displayName": "Kellerhaus GmbH" } + }, + … +``` + +Argumente können auch aus einer Datei (`--args @args.json`) oder von stdin (`--args -`) kommen. Ein als destruktiv markiertes Tool fragt im Terminal nach einer Bestätigung. In einem Skript müssen Sie `--yes` ausdrücklich angeben. + +## 2. In Ihre Skripte einbauen + +Die Textausgabe eines Tools ist sein JSON auf stdout. Fehler gehen nach stderr, mit eigenem Exit-Code. Damit verhält sich `amcp` wie jedes andere Unix-Werkzeug: + +```console +$ amcp tools call shopify_search_orders \ + --args '{"query":"fulfillment_status:unfulfilled created_at:<2026-11-03"}' \ + | jq -r '.orders.nodes[] | [.name, .customer.displayName, .createdAt[:10]] | @tsv' +#1038 Kellerhaus GmbH 2026-10-30 +#1035 Studio Lumen 2026-10-29 +#1031 Bäckerei Hofmann 2026-10-28 ``` -## Die Instanz verwalten +Exit-Codes: `0` Erfolg, `1` das Tool hat einen Fehler gemeldet, `2` ungültige Verwendung oder ungültiges JSON, `3` Authentifizierung, `4` Verbindung, Serverfehler oder Timeout. -Alles, was das Dashboard kann, kann `amcp api` mit einem Management-Schlüssel — es ist `gh api` für AnythingMCP: +Kombiniert ergibt das einen täglichen Job. Dieser postet jeden Morgen verspätete Bestellungen in einen Slack-Kanal (der Slack-Connector liegt auf demselben Server): ```bash -amcp api GET /api/connectors -amcp api GET /api/mcp-servers -amcp api POST /api/mcp-servers --data '{"name":"ops","description":"Ops-Server"}' -amcp api PUT /api/mcp-servers/SERVER_ID --data '{"codeMode":"tools"}' +#!/usr/bin/env bash +# late-orders.sh — run from cron: 0 8 * * 1-5 +set -euo pipefail +SINCE=$(date -d '-2 days' +%F) # GNU date; on macOS: date -v-2d +%F +LATE=$(amcp tools call shopify_search_orders \ + --args "{\"query\":\"fulfillment_status:unfulfilled created_at:<$SINCE\"}" \ + | jq -r '.orders.nodes[] | "• \(.name) — \(.customer.displayName)"') +[ -z "$LATE" ] && exit 0 +jq -n --arg text "Orders waiting more than 2 days: +$LATE" '{channel: "#fulfilment", text: $text}' \ + | amcp tools call slack_post_message --args - --yes ``` -Nicht sicher, was verfügbar ist? Die CLI bringt einen Katalog aller Management-Operationen mit — ohne Schlüssel, ohne Netzwerk: +In der CI brauchen Sie kein Profil: `AMCP_URL`, `AMCP_SERVER` und `AMCP_API_KEY` liefern die Verbindung, und mit `--json` gibt jeder Befehl genau ein JSON-Objekt aus. + +## 3. Code-Mode: ein Programm, viele Tool-Aufrufe + +Skripte wie das obige machen einen Aufruf nach dem anderen von Ihrem Rechner aus. Der **Code-Mode** schickt stattdessen ein ganzes Programm an den Server. Steht der Code-Mode eines MCP-Servers auf `inline`, bietet der Server ein Tool namens `code_execute` an. Sie senden ihm ein kurzes JavaScript-Programm, und eine Sandbox neben Ihren Tools führt es aus, mit drei Hilfsfunktionen: + +- `await amcp.search("query")` findet Tools nach Name oder Beschreibung; +- `await amcp.describe("tool")` liefert das Eingabeschema eines Tools; +- `await amcp.run("tool", args)` ruft ein Tool auf und gibt das Ergebnis als JavaScript-Wert zurück. + +Einmal pro Server einschalten (Admin-Management-Schlüssel nötig): ```bash -amcp api --list # alle Operationen, nach Ressource gruppiert -amcp api --list mcp-servers # nur eine Ressource +amcp api PUT /api/mcp-servers/$SRV --yes --data '{"codeMode":"inline"}' +``` + +Jetzt eine Frage, die Dutzende Hin- und Rückwege bräuchte: *Wer sind unsere fünf größten Shopify-Kunden seit Oktober, und wo steht jeder davon in der HubSpot-Pipeline?* Als Programm: + +```js +// top-customers.js — runs inside the AnythingMCP sandbox: read-only, your own permissions +const byEmail = new Map(); +let after = null, pages = 0; + +// 1. Page through every paid Shopify order since October +do { + const r = await amcp.run("shopify_search_orders", { + query: "financial_status:paid created_at:>=2026-10-01", + first: 250, after, + }); + for (const o of r.orders.nodes) { + if (!o.email) continue; + const c = byEmail.get(o.email) + ?? { name: o.customer?.displayName, orders: 0, revenue: 0 }; + c.orders += 1; + c.revenue += Number(o.currentTotalPriceSet.shopMoney.amount); + byEmail.set(o.email, c); + } + const { hasNextPage, endCursor } = r.orders.pageInfo; + after = hasNextPage ? endCursor : null; + pages++; +} while (after); + +// 2. Keep the five biggest customers +const top = [...byEmail] + .sort((a, b) => b[1].revenue - a[1].revenue) + .slice(0, 5); + +// 3. Join each one with its HubSpot contact +const result = []; +for (const [email, c] of top) { + const h = await amcp.run("hubspot_search_objects", { + object_type: "contacts", + filter_groups: [{ filters: [ + { propertyName: "email", operator: "EQ", value: email }, + ] }], + properties: ["lifecyclestage"], + limit: 1, + }); + const stage = h.results[0]?.properties.lifecyclestage ?? "not in CRM"; + result.push({ email, ...c, revenue: c.revenue.toFixed(2), stage }); +} +return { pagesScanned: pages, top: result }; +``` + +`code_execute` erwartet `{"code": ""}`. `jq -Rs` verpackt die Datei für Sie: + +```console +$ jq -Rs '{code: .}' top-customers.js | amcp tools call code_execute --args - +{ + "pagesScanned": 3, + "top": [ + { + "email": "einkauf@kellerhaus.de", + "name": "Kellerhaus GmbH", + "orders": 14, + "revenue": "4820.50", + "stage": "customer" + }, + { + "email": "m.weber@example.com", + "name": "Martin Weber", + "orders": 6, + "revenue": "2475.90", + "stage": "not in CRM" + }, + … + ] +} +``` + +Das sind **8 Tool-Aufrufe** (3 Seiten Bestellungen und 5 CRM-Abfragen) für **einen** einzigen Aufruf aus Ihrem Terminal. Zurück kommen die fünf Kunden, nach denen Sie gefragt haben, keine 750 rohen Bestellungen. Dasselbe gilt, wenn statt Ihnen ein KI-Agent aufruft: Er liest eine kurze Antwort statt 750 Bestellungen, spart Tokens und macht weniger Fehler. + +Sie kennen die Tool-Namen noch nicht? Lassen Sie das Programm sie finden: + +```js +// discover.js +const tools = await amcp.search("invoice"); // [{ tool, description, readOnly }, …] +const schema = await amcp.describe(tools[0].tool); // { name, description, inputSchema, readOnly } +return { tools: tools.map(t => t.tool), firstSchema: schema.inputSchema }; ``` -Ein Management-Schlüssel trägt die Identität und Rolle des Besitzers: er verleiht nie zusätzliche Rechte, Admin-Routen brauchen also weiterhin einen Admin-Besitzer, und Nur-Lese-Schlüssel können nur lesen. Die API wendet ein Rate-Limit pro Schlüssel an, sodass ein außer Kontrolle geratener Agent abgewiesen wird, statt Ihre Instanz zu überlasten. +**Die Schutzmechanismen sind Teil des Designs:** -## Auch für Agenten gebaut +- **Nur lesend.** Ein Programm darf nur Tools aufrufen, die keine Daten ändern, und nur mit den Rechten des Schlüssels, der es ausführt. Schreibzugriffe bleiben ausdrückliche direkte Aufrufe, wie `slack_post_message --yes` oben. +- **Isoliert.** Das Programm läuft in einem separaten Sandbox-Prozess ohne Dateisystem, Netzwerk oder Umgebungsvariablen, mit Zeitlimit und begrenzter Zahl von Tool-Aufrufen pro Lauf. +- **Auditiert.** Jeder innere Tool-Aufruf wird wie ein direkter protokolliert, zusammen mit dem Code-Lauf, der ihn ausgelöst hat. +- **Opt-in.** Inline-Code ist aus, solange der `codeMode` des Servers nicht `inline` ist *und* Ihre Rolle die Inline-Code-Berechtigung hat. Verfügbar ab dem Team-Plan. -Dieselbe Management-API ist genau das, was ein verbundener KI-Agent braucht, um einen **Workspace von Anfang bis Ende einzurichten und zu betreiben** — einen Connector hinzufügen, einen MCP-Server erstellen, Rollen zuweisen, SSO einrichten, Memory und Skills umschalten — sicher, innerhalb des Umfangs, den Sie ihm gewähren. Agenten sind standardmäßig nur lesend. +### Die guten behalten: als Tool vorschlagen -## Skripte und CI +Wenn ein Programm eine Frage beantwortet, die immer wieder kommt, speichert `code_propose_tool` es als Vorschlag für einen Admin. Ausgeführt wird dabei nichts. Sobald ein Admin den Vorschlag freigibt, bekommt jeder KI-Client auf diesem Server ihn als normales, benanntes Tool: + +```console +$ jq -Rs '{ + name: "top_customers_with_crm_stage", + description: "Top 5 Shopify customers since October, with their HubSpot lifecycle stage", + rationale: "Sales asks for this every Monday", + code: . + }' top-customers.js | amcp tools call code_propose_tool --args - +{"ok":true,"proposalId":"cmh4k2…","message":"Proposal recorded for admin review. It will not run or become a tool until an admin approves it."} +``` + +Mehr dazu in [Code-Mode für KI-Agenten](/de/guides/code-mode). + +## 4. Die Instanz verwalten + +Mit einem Management-Schlüssel ruft `amcp api METHODE PFAD` jede `/api/*`-Route auf. Es funktioniert wie `gh api`, nur für AnythingMCP. Die Textausgabe ist der geparste JSON-Body, also funktioniert auch hier `jq`. + +### Einen Workspace in einem Skript aufsetzen + +Einen Katalog-Connector mit seinem Token installieren, dem Vertrieb einen eigenen MCP-Server geben, den Connector zuweisen, Code-Mode einschalten und die Verbindung prüfen: ```bash -AMCP_URL=https://cloud.anythingmcp.com AMCP_API_KEY=mcp_… amcp api GET /api/users --json -amcp completion zsh > "${fpath[1]}/_amcp" # Shell-Vervollständigung für bash, zsh, fish +#!/usr/bin/env bash +# bootstrap.sh — needs: amcp login --browser --scope admin +set -euo pipefail + +CONN=$(jq -n --arg t "$HUBSPOT_TOKEN" '{credentials: {HUBSPOT_ACCESS_TOKEN: $t}}' \ + | amcp api POST /api/adapters/hubspot/import --data - --yes | jq -r .connectorId) + +SRV=$(amcp api POST /api/mcp-servers --yes \ + --data '{"name":"Sales","description":"CRM tools for the sales team"}' | jq -r .id) + +amcp api PUT /api/mcp-servers/$SRV/connectors --yes --data "{\"connectorIds\":[\"$CONN\"]}" +amcp api PUT /api/mcp-servers/$SRV --yes --data '{"codeMode":"inline"}' +amcp api POST /api/connectors/$CONN/test --yes +# → { "ok": true, "kind": "ok", "message": "Connection successful" } ``` -Schlüssel werden mit Modus `0600` gespeichert, HTTPS ist Pflicht (außer Loopback für lokale Entwicklung), Weiterleitungen werden abgelehnt, damit ein Schlüssel keiner Anfrage zu einem anderen Origin folgt, und der Schlüssel wird nie als Kommandozeilen-Argument akzeptiert. +Das Token erreicht die API über `jq --arg` und stdin und erscheint daher nie in `ps` oder der Shell-Historie. In einem Skript braucht jeder Aufruf außer GET ein `--yes`. Das ist Absicht: Ein Skript kann nichts versehentlich ändern. + +### Die eigene API zu Tools machen + +Nicht im Katalog? Legen Sie einen REST-Connector an und importieren Sie seine OpenAPI-Spezifikation. WSDL, GraphQL, Postman, cURL und HAR funktionieren genauso, über das Feld `source`: + +```bash +ID=$(amcp api POST /api/connectors --yes --data '{ + "name": "Acme Billing", "type": "REST", + "baseUrl": "https://api.acme.example/v1", + "authType": "BEARER_TOKEN", "authConfig": { "token": "'"$ACME_TOKEN"'" } +}' | jq -r .id) + +amcp api POST /api/connectors/$ID/import --yes \ + --data '{"source":"openapi","url":"https://api.acme.example/v1/openapi.json"}' +``` + +### Sehen, was Ihre Agenten getan haben + +Jeder Tool-Aufruf, ob von Menschen oder Agenten, landet im Audit-Log: + +```console +$ amcp api GET "/api/audit/invocations?status=ERROR&limit=3" \ + | jq -r '.[] | [.createdAt[11:16], .tool.name, .user.email, .error[:40]] | @tsv' +08:41 hubspot_search_objects lea@acme.io HTTP 429: retry after 1s +07:02 shopify_get_order ops-agent@acme.io Order not found +06:55 zendesk_get_ticket marco@acme.io HTTP 404: RecordNotFound +``` + +`GET /api/audit/breakdowns?days=30` liefert Nutzung und Kosten nach Connector, MCP-Server und Benutzer aufgeschlüsselt. Das passt gut für einen Monatsbericht. + +### Die ganze API offline entdecken + +Sie brauchen die Doku nicht geöffnet zu haben. Der Katalog der Management-Operationen wird mit der CLI ausgeliefert: + +```console +$ amcp api --list mcp-servers +mcp-servers + GET /api/mcp-servers — List MCP servers for current organization + POST /api/mcp-servers [body] — Create a new MCP server + DELETE /api/mcp-servers/:id — Delete MCP server + GET /api/mcp-servers/:id — Get MCP server detail + PUT /api/mcp-servers/:id [body] — Update MCP server + … +``` + +`[admin]` markiert Routen, die einen Admin als Besitzer brauchen, `[body]` Routen mit Request-Body. Der Katalog wird aus den Backend-Controllern neu erzeugt, und die CI schlägt fehl, wenn eine Route fehlt. Er passt also immer zu Ihrer Instanz. Die interaktive Referenz mit Request-Beispielen finden Sie unter [/developers/api](/de/developers/api). + +## 5. Einem Agenten übergeben + +Ein Coding-Agent wie Claude Code, Codex oder der Agent von Cursor kann `amcp` genauso bedienen wie Sie. Mit einem **nur lesenden** Management-Schlüssel prüft er einen Workspace: welche Server welche Connectors anbieten und welche Aufrufe fehlschlagen. Mit einem **Admin**-Schlüssel richtet er mit den Befehlen aus Abschnitt 4 ein neues Team komplett ein. + +Der Umfang des Schlüssels ist das Sicherheitsnetz. Ein Management-Schlüssel trägt Identität und Rolle seines Besitzers und verleiht nie mehr. Ein nur lesender Schlüssel kann nur `GET`. Jeder Aufruf ist pro Schlüssel rate-limitiert (HTTP 429 statt einer überlasteten Instanz) und wird auditiert. + +## Sicher von Haus aus + +- Der Schlüssel wird nie als Befehlsargument akzeptiert und nie ausgegeben. `whoami` zeigt nur ein Präfix. +- Profile liegen in `~/.config/amcp/config.json` mit Dateimodus `0600`. +- HTTPS ist Pflicht, außer Loopback für die lokale Entwicklung. +- Weiterleitungen werden abgelehnt, damit ein Schlüssel keiner Anfrage zu einem anderen Origin folgt. ## Loslegen -- **Installieren:** `npm i -g @anythingmcp/cli` -- **Doku:** die vollständige Befehlsreferenz steht im [CLI-README auf GitHub](https://github.com/HelpCode-ai/anythingmcp/tree/main/packages/cli#readme). -- **Quellcode:** [github.com/HelpCode-ai/anythingmcp](https://github.com/HelpCode-ai/anythingmcp). +- **Installieren:** `npm i -g @anythingmcp/cli`, dazu Shell-Vervollständigung mit `amcp completion zsh` (auch bash und fish) +- **Überblick:** [anythingmcp.com/developers/cli](/de/developers/cli) +- **Vollständige Befehlsreferenz:** das [CLI-README auf GitHub](https://github.com/HelpCode-ai/anythingmcp/tree/main/packages/cli#readme) +- **Quellcode:** [github.com/HelpCode-ai/anythingmcp](https://github.com/HelpCode-ai/anythingmcp) -Noch kein AnythingMCP? Kostenlos starten auf [cloud.anythingmcp.com](https://cloud.anythingmcp.com), oder selbst hosten. +Noch kein AnythingMCP? Starten Sie kostenlos auf [cloud.anythingmcp.com](https://cloud.anythingmcp.com) oder hosten Sie es selbst. diff --git a/content/guides/en/anythingmcp-cli.mdx b/content/guides/en/anythingmcp-cli.mdx index 0073ebc35..bfa7c528e 100644 --- a/content/guides/en/anythingmcp-cli.mdx +++ b/content/guides/en/anythingmcp-cli.mdx @@ -1,83 +1,333 @@ --- title: "The AnythingMCP CLI — Run and Manage Your MCP Instance From the Terminal" -description: "amcp is the official AnythingMCP command-line client. Call MCP tools from your shell and fully manage your instance — connectors, MCP servers, users, roles, SSO and settings — with a management-scoped API key. Install with npm, log in through the browser, script everything. Works for people and for connected AI agents." +description: "amcp is the official AnythingMCP command-line client. Call MCP tools with real arguments, pipe results into jq and cron, run code-mode programs that loop over dozens of tool calls in one step, and script your whole instance — connectors, MCP servers, roles, audit — with a management key. Worked examples with Shopify, HubSpot and Slack." category: "announcements" -keyword: "AnythingMCP CLI, amcp CLI, MCP CLI, Model Context Protocol CLI, MCP command line, manage MCP server terminal, MCP gateway CLI, npm @anythingmcp/cli, MCP tools from terminal, AI agent CLI" +keyword: "AnythingMCP CLI, amcp CLI, MCP CLI, Model Context Protocol CLI, MCP command line, MCP code mode, code_execute, manage MCP server terminal, MCP gateway CLI, npm @anythingmcp/cli, MCP tools from terminal, AI agent CLI" publishedAt: "2026-11-04" +updatedAt: "2026-11-05" lang: "en" featured: true --- ## Your whole MCP instance, from the terminal -Meet **`amcp`**, the official AnythingMCP command-line client. It does two things: +**`amcp`** is the official AnythingMCP command-line client. It does two things with one binary: -1. **Call MCP tools** from your shell — discover them, read their schema, run them. -2. **Drive the management API** (`/api/*`) with a **management-scoped API key** — so a person, or a connected AI agent, can configure the entire instance (connectors, MCP servers, users, roles, SSO, memory, skills, the knowledge graph and settings) without leaving the terminal. +1. **Calls MCP tools** — the same tools your AI clients use (Shopify, HubSpot, SAP, your SQL database, a file share…). You can run them by hand, in shell scripts, from cron and CI, or as a **code-mode program** that chains dozens of calls in one step. +2. **Drives the management API** (`/api/*`) with a **management-scoped key**. Everything the dashboard does — connectors, MCP servers, users, roles, SSO, memory, skills, audit — becomes a command, for you or for a connected agent. -It is open source (AGPL-3.0), works against **AnythingMCP Cloud** and **self-hosted** instances, and installs from npm: +It is open source (AGPL-3.0), works against **AnythingMCP Cloud** and **self-hosted** instances, needs Node 22+, and installs from npm: ```bash npm i -g @anythingmcp/cli amcp --help ``` -## Log in +Every example below uses real commands, flags, endpoints and tool names. The Shopify, HubSpot and Slack tools come from the built-in catalogue connectors. Only the data in the output is invented. -Mint a **management API key** in the dashboard (Settings → Management API keys, read-only or admin), or let the CLI do it through your browser: +## Log in: two kinds of key + +`amcp` uses two kinds of key, and keeps them in separate profiles: + +| You want to… | Key | Log in with | +|---|---|---| +| Call the tools of one MCP server | an **MCP key** for that server | `amcp login --url … --server SERVER_ID` | +| Manage the instance (`amcp api`) | a **management key** (read-only or admin) | `amcp login --browser` | + +For a management key, let the browser do the work: ```bash -amcp login --browser --url https://cloud.anythingmcp.com # read-only -amcp login --browser --scope admin --url https://cloud.anythingmcp.com +amcp login --browser --url https://cloud.anythingmcp.com # read-only +amcp login --browser --scope admin --url https://cloud.anythingmcp.com # read + write ``` -`--browser` opens the instance's authorization page, you approve it under your existing dashboard session (SSO included), and the key comes back to the CLI over a one-shot `127.0.0.1` loopback — it never appears in a URL, log or shell history. To connect to one MCP server for tool calls instead, use `amcp login --url … --server …` with an MCP key. +The CLI opens the instance's authorization page and prints a short code. You check it matches the page and approve under your normal dashboard session (SSO included). The key comes back over a one-shot `127.0.0.1` loopback, so it never appears in a URL, a log or your shell history. -## Call MCP tools +For tool calls, paste an MCP key when prompted. The CLI doesn't echo it, and it checks the key with a real `tools/list` before saving it: ```bash -amcp tools ls # list tools, with read-only/destructive hints -amcp tools describe YOUR_TOOL # full description + input JSON schema -amcp tools call YOUR_TOOL --args '{"id":"123"}' +amcp login --url https://cloud.anythingmcp.com --server cmob60dvv00c01zrpeujwmnep --profile shop +amcp whoami --profile shop +``` + +## 1. Explore and call tools + +Start by asking the server what it can do. `tools ls` prints each tool's name, its read-only/destructive hint and the first line of its description: + +```console +$ amcp tools ls --filter order +shopify_search_orders read-only Search orders with Shopify search syntax (for example `financial_status:paid … +shopify_get_order read-only Get one order: status, totals (subtotal, shipping, tax, discounts, refunds) … +``` + +`tools describe` shows the full description and the input JSON schema, so you know exactly which arguments a tool takes. Then call it with real arguments: + +```console +$ amcp tools call shopify_search_orders \ + --args '{"query":"financial_status:paid created_at:>=2026-11-01","first":2}' +{ + "orders": { + "pageInfo": { "hasNextPage": true, "endCursor": "eyJsYXN0X2lkIjo2…" }, + "nodes": [ + { + "name": "#1043", + "createdAt": "2026-11-04T16:12:09Z", + "displayFinancialStatus": "PAID", + "displayFulfillmentStatus": "UNFULFILLED", + "currentTotalPriceSet": { "shopMoney": { "amount": "412.80", "currencyCode": "EUR" } }, + "customer": { "displayName": "Kellerhaus GmbH" } + }, + … +``` + +Arguments can also come from a file (`--args @args.json`) or from stdin (`--args -`). A tool marked destructive asks for confirmation in a terminal. In a script, you must pass `--yes` explicitly. + +## 2. Pipe it into your scripts + +A tool's text output is its JSON on stdout. Errors go to stderr with their own exit code. That makes `amcp` a normal Unix citizen: + +```console +$ amcp tools call shopify_search_orders \ + --args '{"query":"fulfillment_status:unfulfilled created_at:<2026-11-03"}' \ + | jq -r '.orders.nodes[] | [.name, .customer.displayName, .createdAt[:10]] | @tsv' +#1038 Kellerhaus GmbH 2026-10-30 +#1035 Studio Lumen 2026-10-29 +#1031 Bäckerei Hofmann 2026-10-28 ``` -## Manage the instance +Exit codes: `0` success, `1` the tool returned an error, `2` invalid usage or JSON, `3` authentication, `4` connection, server error or timeout. -Everything the dashboard can do, `amcp api` can do with a management key — it is `gh api` for AnythingMCP: +Put the two together and you get a daily job. This one posts late orders to a Slack channel every morning (the Slack connector sits on the same server): ```bash -amcp api GET /api/connectors -amcp api GET /api/mcp-servers -amcp api POST /api/mcp-servers --data '{"name":"ops","description":"Ops server"}' -amcp api PUT /api/mcp-servers/SERVER_ID --data '{"codeMode":"tools"}' +#!/usr/bin/env bash +# late-orders.sh — run from cron: 0 8 * * 1-5 +set -euo pipefail +SINCE=$(date -d '-2 days' +%F) # GNU date; on macOS: date -v-2d +%F +LATE=$(amcp tools call shopify_search_orders \ + --args "{\"query\":\"fulfillment_status:unfulfilled created_at:<$SINCE\"}" \ + | jq -r '.orders.nodes[] | "• \(.name) — \(.customer.displayName)"') +[ -z "$LATE" ] && exit 0 +jq -n --arg text "Orders waiting more than 2 days: +$LATE" '{channel: "#fulfilment", text: $text}' \ + | amcp tools call slack_post_message --args - --yes ``` -Not sure what's available? The CLI ships a catalogue of every management operation — no key, no network: +In CI, skip the profile: `AMCP_URL`, `AMCP_SERVER` and `AMCP_API_KEY` supply the connection, and `--json` makes every command print one JSON object. + +## 3. Code mode: one program, many tool calls + +Scripts like the one above make one call at a time from your machine. **Code mode** sends a whole program to the server instead. With code mode set to `inline` on an MCP server, the server offers a tool called `code_execute`. You send it a short JavaScript program, and a sandbox next to your tools runs it, with three helpers: + +- `await amcp.search("query")` finds tools by name or description; +- `await amcp.describe("tool")` returns a tool's input schema; +- `await amcp.run("tool", args)` calls a tool and returns its result as a JavaScript value. + +Turn it on once per server (needs an admin management key): ```bash -amcp api --list # every operation, grouped by resource -amcp api --list mcp-servers # just one resource +amcp api PUT /api/mcp-servers/$SRV --yes --data '{"codeMode":"inline"}' +``` + +Now a question that would take dozens of round trips: *who are our five biggest Shopify customers since October, and where is each one in the HubSpot pipeline?* Write it as a program: + +```js +// top-customers.js — runs inside the AnythingMCP sandbox: read-only, your own permissions +const byEmail = new Map(); +let after = null, pages = 0; + +// 1. Page through every paid Shopify order since October +do { + const r = await amcp.run("shopify_search_orders", { + query: "financial_status:paid created_at:>=2026-10-01", + first: 250, after, + }); + for (const o of r.orders.nodes) { + if (!o.email) continue; + const c = byEmail.get(o.email) + ?? { name: o.customer?.displayName, orders: 0, revenue: 0 }; + c.orders += 1; + c.revenue += Number(o.currentTotalPriceSet.shopMoney.amount); + byEmail.set(o.email, c); + } + const { hasNextPage, endCursor } = r.orders.pageInfo; + after = hasNextPage ? endCursor : null; + pages++; +} while (after); + +// 2. Keep the five biggest customers +const top = [...byEmail] + .sort((a, b) => b[1].revenue - a[1].revenue) + .slice(0, 5); + +// 3. Join each one with its HubSpot contact +const result = []; +for (const [email, c] of top) { + const h = await amcp.run("hubspot_search_objects", { + object_type: "contacts", + filter_groups: [{ filters: [ + { propertyName: "email", operator: "EQ", value: email }, + ] }], + properties: ["lifecyclestage"], + limit: 1, + }); + const stage = h.results[0]?.properties.lifecyclestage ?? "not in CRM"; + result.push({ email, ...c, revenue: c.revenue.toFixed(2), stage }); +} +return { pagesScanned: pages, top: result }; +``` + +`code_execute` takes `{"code": ""}`. `jq -Rs` wraps the file for you: + +```console +$ jq -Rs '{code: .}' top-customers.js | amcp tools call code_execute --args - +{ + "pagesScanned": 3, + "top": [ + { + "email": "einkauf@kellerhaus.de", + "name": "Kellerhaus GmbH", + "orders": 14, + "revenue": "4820.50", + "stage": "customer" + }, + { + "email": "m.weber@example.com", + "name": "Martin Weber", + "orders": 6, + "revenue": "2475.90", + "stage": "not in CRM" + }, + … + ] +} +``` + +That is **8 tool calls** (3 pages of orders and 5 CRM lookups) for **one** call from your terminal. What comes back is the five customers you asked about, not 750 raw orders. The same holds when the caller is an AI agent instead of you: it reads one short answer instead of 750 orders, which saves tokens and avoids mistakes. + +Don't know the tool names yet? Let the program find them: + +```js +// discover.js +const tools = await amcp.search("invoice"); // [{ tool, description, readOnly }, …] +const schema = await amcp.describe(tools[0].tool); // { name, description, inputSchema, readOnly } +return { tools: tools.map(t => t.tool), firstSchema: schema.inputSchema }; ``` -A management key carries the owner's identity and role: it never grants privilege, so admin-only routes still need an admin owner, and read-only keys can only read. The API applies a per-key rate limit, so a runaway agent is refused rather than hammering your instance. +**The guardrails are part of the design:** -## Built for agents, too +- **Read-only.** A program can only call tools that don't change data, and only with the permissions of the key that runs it. Writes stay explicit direct calls, like `slack_post_message --yes` above. +- **Isolated.** The program runs in a separate sandbox process with no filesystem, network or environment access, a deadline, and a cap on tool calls per run. +- **Audited.** Every inner tool call is logged like a direct one, together with the code run that made it. +- **Opt-in.** Inline code is off unless a server's `codeMode` is `inline` *and* your role has the inline-code capability. It's available on the Team plan and above. -The same management API is exactly what a connected AI agent needs to **onboard and run a workspace end to end** — add a connector, create an MCP server, assign roles, wire SSO, toggle memory and skills — safely, within the scope you grant it. Agents default to read-only. +### Keep the good ones: propose them as tools -## Scripting and CI +When a program answers a question people keep asking, `code_propose_tool` records it as a proposal for an admin. It doesn't run anything. Once an admin approves it, every AI client on that server gets it as a normal named tool: + +```console +$ jq -Rs '{ + name: "top_customers_with_crm_stage", + description: "Top 5 Shopify customers since October, with their HubSpot lifecycle stage", + rationale: "Sales asks for this every Monday", + code: . + }' top-customers.js | amcp tools call code_propose_tool --args - +{"ok":true,"proposalId":"cmh4k2…","message":"Proposal recorded for admin review. It will not run or become a tool until an admin approves it."} +``` + +Read more in [Code mode for AI agents](/guides/code-mode). + +## 4. Manage the instance + +With a management key, `amcp api METHOD PATH` calls any `/api/*` route. It works like `gh api`, but for AnythingMCP. Text output is the parsed JSON body, so `jq` works here too. + +### Stand up a workspace in one script + +Install a catalogue connector with its token, give the sales team their own MCP server, attach the connector, turn on code mode and check the connection: ```bash -AMCP_URL=https://cloud.anythingmcp.com AMCP_API_KEY=mcp_… amcp api GET /api/users --json -amcp completion zsh > "${fpath[1]}/_amcp" # shell completion for bash, zsh, fish +#!/usr/bin/env bash +# bootstrap.sh — needs: amcp login --browser --scope admin +set -euo pipefail + +CONN=$(jq -n --arg t "$HUBSPOT_TOKEN" '{credentials: {HUBSPOT_ACCESS_TOKEN: $t}}' \ + | amcp api POST /api/adapters/hubspot/import --data - --yes | jq -r .connectorId) + +SRV=$(amcp api POST /api/mcp-servers --yes \ + --data '{"name":"Sales","description":"CRM tools for the sales team"}' | jq -r .id) + +amcp api PUT /api/mcp-servers/$SRV/connectors --yes --data "{\"connectorIds\":[\"$CONN\"]}" +amcp api PUT /api/mcp-servers/$SRV --yes --data '{"codeMode":"inline"}' +amcp api POST /api/connectors/$CONN/test --yes +# → { "ok": true, "kind": "ok", "message": "Connection successful" } ``` -Keys are stored with mode `0600`, HTTPS is required (except loopback for local dev), redirects are refused so a key can't follow a request to another origin, and the key is never accepted as a command argument. +The token reaches the API through `jq --arg` and stdin, so it never shows up in `ps` or your shell history. Every non-GET call in a script needs `--yes`. That is deliberate: a script can't change anything by accident. + +### Turn your own API into tools + +Not in the catalogue? Create a REST connector and import its OpenAPI spec. WSDL, GraphQL, Postman, cURL and HAR work the same way, through the `source` field: + +```bash +ID=$(amcp api POST /api/connectors --yes --data '{ + "name": "Acme Billing", "type": "REST", + "baseUrl": "https://api.acme.example/v1", + "authType": "BEARER_TOKEN", "authConfig": { "token": "'"$ACME_TOKEN"'" } +}' | jq -r .id) + +amcp api POST /api/connectors/$ID/import --yes \ + --data '{"source":"openapi","url":"https://api.acme.example/v1/openapi.json"}' +``` + +### See what your agents did + +Every tool call, from people or agents, lands in the audit log: + +```console +$ amcp api GET "/api/audit/invocations?status=ERROR&limit=3" \ + | jq -r '.[] | [.createdAt[11:16], .tool.name, .user.email, .error[:40]] | @tsv' +08:41 hubspot_search_objects lea@acme.io HTTP 429: retry after 1s +07:02 shopify_get_order ops-agent@acme.io Order not found +06:55 zendesk_get_ticket marco@acme.io HTTP 404: RecordNotFound +``` + +`GET /api/audit/breakdowns?days=30` returns usage and cost broken down by connector, MCP server and user. It's a good fit for a monthly report. + +### Discover the whole API offline + +You don't need the docs open. The catalogue of management operations ships with the CLI: + +```console +$ amcp api --list mcp-servers +mcp-servers + GET /api/mcp-servers — List MCP servers for current organization + POST /api/mcp-servers [body] — Create a new MCP server + DELETE /api/mcp-servers/:id — Delete MCP server + GET /api/mcp-servers/:id — Get MCP server detail + PUT /api/mcp-servers/:id [body] — Update MCP server + … +``` + +`[admin]` marks routes that need an admin owner, and `[body]` marks routes that take a request body. The catalogue is regenerated from the backend controllers, and CI fails when a route is missing, so it always matches your instance. The interactive reference with request examples is at [/developers/api](/developers/api). + +## 5. Give it to an agent + +A coding agent such as Claude Code, Codex or Cursor's agent can drive `amcp` like you do. Give it a **read-only** management key and it can audit a workspace: which servers expose which connectors, and which calls fail. Give it an **admin** key and it can onboard a new team end to end with the commands from section 4. + +The scope is the safety net. A management key carries its owner's identity and role and never grants more. A read-only key can only `GET`. Every call is rate-limited per key (HTTP 429 instead of a hammered instance) and audited. + +## Secure by default + +- The API key is never accepted as a command argument and never printed. `whoami` shows only a prefix. +- Profiles are stored in `~/.config/amcp/config.json` with file mode `0600`. +- HTTPS is required, except on loopback for local development. +- Redirects are refused, so a key can't follow a request to another origin. ## Get it -- **Install:** `npm i -g @anythingmcp/cli` -- **Docs:** the full command reference lives in the [CLI README on GitHub](https://github.com/HelpCode-ai/anythingmcp/tree/main/packages/cli#readme). -- **Source:** [github.com/HelpCode-ai/anythingmcp](https://github.com/HelpCode-ai/anythingmcp). +- **Install:** `npm i -g @anythingmcp/cli`, plus shell completion with `amcp completion zsh` (also bash and fish) +- **Overview:** [anythingmcp.com/developers/cli](/developers/cli) +- **Full command reference:** the [CLI README on GitHub](https://github.com/HelpCode-ai/anythingmcp/tree/main/packages/cli#readme) +- **Source:** [github.com/HelpCode-ai/anythingmcp](https://github.com/HelpCode-ai/anythingmcp) No AnythingMCP yet? Start free on [cloud.anythingmcp.com](https://cloud.anythingmcp.com), or self-host it. diff --git a/content/guides/it/anythingmcp-cli.mdx b/content/guides/it/anythingmcp-cli.mdx index 7a5ac0f2e..564a73514 100644 --- a/content/guides/it/anythingmcp-cli.mdx +++ b/content/guides/it/anythingmcp-cli.mdx @@ -1,83 +1,333 @@ --- title: "La CLI di AnythingMCP — Gestisci tutta la tua istanza MCP dal terminale" -description: "amcp è il client a riga di comando ufficiale di AnythingMCP. Chiama i tool MCP dalla shell e gestisci l'intera istanza — connettori, server MCP, utenti, ruoli, SSO e impostazioni — con una chiave API di gestione. Installa con npm, accedi dal browser, scrivi script per tutto. Per le persone e per gli agenti AI connessi." +description: "amcp è il client a riga di comando ufficiale di AnythingMCP. Chiama i tool MCP con argomenti reali, passa i risultati a jq e cron, esegui programmi in code mode che fanno decine di chiamate in un solo passo e automatizza l'intera istanza — connettori, server MCP, ruoli, audit — con una chiave di gestione. Esempi concreti con Shopify, HubSpot e Slack." category: "announcements" -keyword: "AnythingMCP CLI, amcp CLI, MCP CLI, Model Context Protocol CLI, MCP riga di comando, gestire server MCP da terminale, MCP gateway CLI, npm @anythingmcp/cli, tool MCP da terminale, CLI agente AI" +keyword: "AnythingMCP CLI, amcp CLI, MCP CLI, Model Context Protocol CLI, MCP riga di comando, MCP code mode, code_execute, gestire server MCP da terminale, MCP gateway CLI, npm @anythingmcp/cli, tool MCP da terminale, CLI agente AI" publishedAt: "2026-11-04" +updatedAt: "2026-11-05" lang: "it" featured: true --- ## Tutta la tua istanza MCP, dal terminale -Ecco **`amcp`**, il client a riga di comando ufficiale di AnythingMCP. Fa due cose: +**`amcp`** è il client a riga di comando ufficiale di AnythingMCP. Con un solo binario fa due cose: -1. **Chiama i tool MCP** dalla shell — scoprirli, leggerne lo schema, eseguirli. -2. **Guida l'API di gestione** (`/api/*`) con una **chiave API di gestione** — così una persona, o un agente AI connesso, può configurare l'intera istanza (connettori, server MCP, utenti, ruoli, SSO, memory, skill, knowledge graph e impostazioni) senza lasciare il terminale. +1. **Chiama i tool MCP** — gli stessi tool che usano i tuoi client AI (Shopify, HubSpot, SAP, il tuo database SQL, una cartella condivisa…). Puoi eseguirli a mano, negli script di shell, da cron e CI, oppure come **programma in code mode** che concatena decine di chiamate in un solo passo. +2. **Guida l'API di gestione** (`/api/*`) con una **chiave di gestione**. Tutto ciò che fa la dashboard — connettori, server MCP, utenti, ruoli, SSO, memory, skill, audit — diventa un comando, per te o per un agente connesso. -È open source (AGPL-3.0), funziona con **AnythingMCP Cloud** e con le istanze **self-hosted**, e si installa da npm: +È open source (AGPL-3.0), funziona con **AnythingMCP Cloud** e con le istanze **self-hosted**, richiede Node 22+ e si installa da npm: ```bash npm i -g @anythingmcp/cli amcp --help ``` -## Accedi +Ogni esempio qui sotto usa comandi, flag, endpoint e nomi di tool reali. I tool Shopify, HubSpot e Slack sono quelli dei connettori del catalogo. Solo i dati nell'output sono inventati. -Crea una **chiave API di gestione** nella dashboard (Impostazioni → Chiavi API di gestione, sola lettura o admin), oppure lascia che lo faccia la CLI tramite il browser: +## Accedi: due tipi di chiave + +`amcp` usa due tipi di chiave e li tiene in profili separati: + +| Vuoi… | Chiave | Accedi con | +|---|---|---| +| Chiamare i tool di un server MCP | una **chiave MCP** per quel server | `amcp login --url … --server SERVER_ID` | +| Gestire l'istanza (`amcp api`) | una **chiave di gestione** (sola lettura o admin) | `amcp login --browser` | + +Per una chiave di gestione, lascia fare al browser: ```bash -amcp login --browser --url https://cloud.anythingmcp.com # sola lettura -amcp login --browser --scope admin --url https://cloud.anythingmcp.com +amcp login --browser --url https://cloud.anythingmcp.com # read-only +amcp login --browser --scope admin --url https://cloud.anythingmcp.com # read + write ``` -`--browser` apre la pagina di autorizzazione dell'istanza, tu la approvi con la tua sessione della dashboard (SSO incluso), e la chiave torna alla CLI tramite un loopback `127.0.0.1` una tantum — non compare mai in un URL, in un log o nella cronologia della shell. Per collegarti invece a un singolo server MCP per le chiamate ai tool, usa `amcp login --url … --server …` con una chiave MCP. +La CLI apre la pagina di autorizzazione dell'istanza e stampa un breve codice. Controlli che corrisponda a quello della pagina e approvi con la tua normale sessione della dashboard (SSO incluso). La chiave torna alla CLI tramite un loopback `127.0.0.1` usa e getta, quindi non finisce mai in un URL, in un log o nella cronologia della shell. -## Chiama i tool MCP +Per chiamare i tool, incolla una chiave MCP quando richiesto. La CLI non la mostra a schermo e la verifica con una vera `tools/list` prima di salvarla: ```bash -amcp tools ls # elenca i tool, con indicazioni lettura/scrittura -amcp tools describe YOUR_TOOL # descrizione completa + schema JSON di input -amcp tools call YOUR_TOOL --args '{"id":"123"}' +amcp login --url https://cloud.anythingmcp.com --server cmob60dvv00c01zrpeujwmnep --profile shop +amcp whoami --profile shop +``` + +## 1. Esplora e chiama i tool + +Comincia chiedendo al server cosa sa fare. `tools ls` stampa per ogni tool il nome, l'indicazione sola lettura/distruttivo e la prima riga della descrizione: + +```console +$ amcp tools ls --filter order +shopify_search_orders read-only Search orders with Shopify search syntax (for example `financial_status:paid … +shopify_get_order read-only Get one order: status, totals (subtotal, shipping, tax, discounts, refunds) … +``` + +`tools describe` mostra la descrizione completa e lo schema JSON di input, così sai esattamente quali argomenti accetta un tool. Poi lo chiami con argomenti reali: + +```console +$ amcp tools call shopify_search_orders \ + --args '{"query":"financial_status:paid created_at:>=2026-11-01","first":2}' +{ + "orders": { + "pageInfo": { "hasNextPage": true, "endCursor": "eyJsYXN0X2lkIjo2…" }, + "nodes": [ + { + "name": "#1043", + "createdAt": "2026-11-04T16:12:09Z", + "displayFinancialStatus": "PAID", + "displayFulfillmentStatus": "UNFULFILLED", + "currentTotalPriceSet": { "shopMoney": { "amount": "412.80", "currencyCode": "EUR" } }, + "customer": { "displayName": "Kellerhaus GmbH" } + }, + … +``` + +Gli argomenti possono arrivare anche da un file (`--args @args.json`) o da stdin (`--args -`). Un tool marcato come distruttivo chiede conferma nel terminale. In uno script devi passare `--yes` esplicitamente. + +## 2. Usalo nei tuoi script + +L'output testuale di un tool è il suo JSON su stdout. Gli errori vanno su stderr con un exit code proprio. Così `amcp` si comporta come qualsiasi comando Unix: + +```console +$ amcp tools call shopify_search_orders \ + --args '{"query":"fulfillment_status:unfulfilled created_at:<2026-11-03"}' \ + | jq -r '.orders.nodes[] | [.name, .customer.displayName, .createdAt[:10]] | @tsv' +#1038 Kellerhaus GmbH 2026-10-30 +#1035 Studio Lumen 2026-10-29 +#1031 Bäckerei Hofmann 2026-10-28 ``` -## Gestisci l'istanza +Exit code: `0` successo, `1` il tool ha restituito un errore, `2` uso o JSON non validi, `3` autenticazione, `4` connessione, errore del server o timeout. -Tutto ciò che fa la dashboard lo fa `amcp api` con una chiave di gestione — è il `gh api` di AnythingMCP: +Mettendo insieme le due cose ottieni un job quotidiano. Questo pubblica ogni mattina in un canale Slack gli ordini in ritardo (il connettore Slack è sullo stesso server): ```bash -amcp api GET /api/connectors -amcp api GET /api/mcp-servers -amcp api POST /api/mcp-servers --data '{"name":"ops","description":"Server ops"}' -amcp api PUT /api/mcp-servers/SERVER_ID --data '{"codeMode":"tools"}' +#!/usr/bin/env bash +# late-orders.sh — run from cron: 0 8 * * 1-5 +set -euo pipefail +SINCE=$(date -d '-2 days' +%F) # GNU date; on macOS: date -v-2d +%F +LATE=$(amcp tools call shopify_search_orders \ + --args "{\"query\":\"fulfillment_status:unfulfilled created_at:<$SINCE\"}" \ + | jq -r '.orders.nodes[] | "• \(.name) — \(.customer.displayName)"') +[ -z "$LATE" ] && exit 0 +jq -n --arg text "Orders waiting more than 2 days: +$LATE" '{channel: "#fulfilment", text: $text}' \ + | amcp tools call slack_post_message --args - --yes ``` -Non sai cosa è disponibile? La CLI include un catalogo di tutte le operazioni di gestione — senza chiave, senza rete: +In CI puoi fare a meno del profilo: `AMCP_URL`, `AMCP_SERVER` e `AMCP_API_KEY` forniscono la connessione, e `--json` fa stampare a ogni comando un unico oggetto JSON. + +## 3. Code mode: un programma, tante chiamate + +Script come quello sopra fanno una chiamata alla volta dalla tua macchina. Il **code mode** invece manda al server un programma intero. Con il code mode impostato su `inline` per un server MCP, il server offre un tool chiamato `code_execute`. Gli mandi un breve programma JavaScript e una sandbox accanto ai tuoi tool lo esegue, con tre funzioni a disposizione: + +- `await amcp.search("query")` cerca i tool per nome o descrizione; +- `await amcp.describe("tool")` restituisce lo schema di input di un tool; +- `await amcp.run("tool", args)` chiama un tool e restituisce il risultato come valore JavaScript. + +Si attiva una volta per server (serve una chiave di gestione admin): ```bash -amcp api --list # tutte le operazioni, raggruppate per risorsa -amcp api --list mcp-servers # solo una risorsa +amcp api PUT /api/mcp-servers/$SRV --yes --data '{"codeMode":"inline"}' +``` + +Ora una domanda che richiederebbe decine di passaggi: *quali sono i nostri cinque clienti Shopify più grandi da ottobre, e a che punto è ognuno nella pipeline di HubSpot?* Scrivila come programma: + +```js +// top-customers.js — runs inside the AnythingMCP sandbox: read-only, your own permissions +const byEmail = new Map(); +let after = null, pages = 0; + +// 1. Page through every paid Shopify order since October +do { + const r = await amcp.run("shopify_search_orders", { + query: "financial_status:paid created_at:>=2026-10-01", + first: 250, after, + }); + for (const o of r.orders.nodes) { + if (!o.email) continue; + const c = byEmail.get(o.email) + ?? { name: o.customer?.displayName, orders: 0, revenue: 0 }; + c.orders += 1; + c.revenue += Number(o.currentTotalPriceSet.shopMoney.amount); + byEmail.set(o.email, c); + } + const { hasNextPage, endCursor } = r.orders.pageInfo; + after = hasNextPage ? endCursor : null; + pages++; +} while (after); + +// 2. Keep the five biggest customers +const top = [...byEmail] + .sort((a, b) => b[1].revenue - a[1].revenue) + .slice(0, 5); + +// 3. Join each one with its HubSpot contact +const result = []; +for (const [email, c] of top) { + const h = await amcp.run("hubspot_search_objects", { + object_type: "contacts", + filter_groups: [{ filters: [ + { propertyName: "email", operator: "EQ", value: email }, + ] }], + properties: ["lifecyclestage"], + limit: 1, + }); + const stage = h.results[0]?.properties.lifecyclestage ?? "not in CRM"; + result.push({ email, ...c, revenue: c.revenue.toFixed(2), stage }); +} +return { pagesScanned: pages, top: result }; +``` + +`code_execute` accetta `{"code": ""}`. `jq -Rs` impacchetta il file per te: + +```console +$ jq -Rs '{code: .}' top-customers.js | amcp tools call code_execute --args - +{ + "pagesScanned": 3, + "top": [ + { + "email": "einkauf@kellerhaus.de", + "name": "Kellerhaus GmbH", + "orders": 14, + "revenue": "4820.50", + "stage": "customer" + }, + { + "email": "m.weber@example.com", + "name": "Martin Weber", + "orders": 6, + "revenue": "2475.90", + "stage": "not in CRM" + }, + … + ] +} +``` + +Sono **8 chiamate ai tool** (3 pagine di ordini e 5 ricerche nel CRM) per **una** sola chiamata dal tuo terminale. In risposta arrivano i cinque clienti che hai chiesto, non 750 ordini grezzi. Lo stesso vale quando a chiamare è un agente AI invece di te: legge una risposta breve invece di 750 ordini, così risparmia token e sbaglia meno. + +Non conosci ancora i nomi dei tool? Lascia che li trovi il programma: + +```js +// discover.js +const tools = await amcp.search("invoice"); // [{ tool, description, readOnly }, …] +const schema = await amcp.describe(tools[0].tool); // { name, description, inputSchema, readOnly } +return { tools: tools.map(t => t.tool), firstSchema: schema.inputSchema }; ``` -Una chiave di gestione porta con sé identità e ruolo del proprietario: non concede mai privilegi, quindi le rotte solo-admin richiedono comunque un proprietario admin, e le chiavi in sola lettura possono solo leggere. L'API applica un rate limit per chiave, così un agente impazzito viene respinto invece di martellare la tua istanza. +**Le protezioni fanno parte del progetto:** -## Pensato anche per gli agenti +- **Sola lettura.** Un programma può chiamare solo tool che non modificano dati, e solo con i permessi della chiave che lo esegue. Le scritture restano chiamate dirette ed esplicite, come `slack_post_message --yes` sopra. +- **Isolato.** Il programma gira in un processo sandbox separato, senza filesystem, rete né variabili d'ambiente, con un tempo massimo e un limite di chiamate per esecuzione. +- **Tracciato.** Ogni chiamata interna finisce nel log come una diretta, insieme all'esecuzione che l'ha fatta. +- **Su richiesta.** Il codice inline è spento finché il `codeMode` del server non è `inline` *e* il tuo ruolo non ha la capacità di codice inline. È disponibile dal piano Team in su. -La stessa API di gestione è esattamente ciò che serve a un agente AI connesso per **configurare e far funzionare un workspace end-to-end** — aggiungere un connettore, creare un server MCP, assegnare ruoli, impostare l'SSO, attivare memory e skill — in sicurezza, nei limiti dell'ambito che gli concedi. Gli agenti sono in sola lettura per impostazione predefinita. +### Tieni quelli buoni: proponili come tool -## Script e CI +Quando un programma risponde a una domanda che torna spesso, `code_propose_tool` lo registra come proposta per un admin. Non esegue nulla. Quando un admin la approva, tutti i client AI di quel server lo ricevono come un normale tool con un nome: + +```console +$ jq -Rs '{ + name: "top_customers_with_crm_stage", + description: "Top 5 Shopify customers since October, with their HubSpot lifecycle stage", + rationale: "Sales asks for this every Monday", + code: . + }' top-customers.js | amcp tools call code_propose_tool --args - +{"ok":true,"proposalId":"cmh4k2…","message":"Proposal recorded for admin review. It will not run or become a tool until an admin approves it."} +``` + +Approfondisci in [Code mode per agenti AI](/it/guides/code-mode). + +## 4. Gestisci l'istanza + +Con una chiave di gestione, `amcp api METODO PERCORSO` chiama qualsiasi rotta `/api/*`. Funziona come `gh api`, ma per AnythingMCP. L'output testuale è il body JSON già interpretato, quindi anche qui funziona `jq`. + +### Configura un workspace in uno script + +Installa un connettore del catalogo con il suo token, dai al team vendite un proprio server MCP, collega il connettore, attiva il code mode e verifica la connessione: ```bash -AMCP_URL=https://cloud.anythingmcp.com AMCP_API_KEY=mcp_… amcp api GET /api/users --json -amcp completion zsh > "${fpath[1]}/_amcp" # completamento shell per bash, zsh, fish +#!/usr/bin/env bash +# bootstrap.sh — needs: amcp login --browser --scope admin +set -euo pipefail + +CONN=$(jq -n --arg t "$HUBSPOT_TOKEN" '{credentials: {HUBSPOT_ACCESS_TOKEN: $t}}' \ + | amcp api POST /api/adapters/hubspot/import --data - --yes | jq -r .connectorId) + +SRV=$(amcp api POST /api/mcp-servers --yes \ + --data '{"name":"Sales","description":"CRM tools for the sales team"}' | jq -r .id) + +amcp api PUT /api/mcp-servers/$SRV/connectors --yes --data "{\"connectorIds\":[\"$CONN\"]}" +amcp api PUT /api/mcp-servers/$SRV --yes --data '{"codeMode":"inline"}' +amcp api POST /api/connectors/$CONN/test --yes +# → { "ok": true, "kind": "ok", "message": "Connection successful" } ``` -Le chiavi sono salvate con modalità `0600`, l'HTTPS è obbligatorio (tranne il loopback per lo sviluppo locale), i redirect vengono rifiutati così una chiave non può seguire una richiesta verso un'altra origine, e la chiave non è mai accettata come argomento del comando. +Il token arriva all'API tramite `jq --arg` e stdin, quindi non compare mai in `ps` né nella cronologia della shell. In uno script ogni chiamata che non sia GET richiede `--yes`. È voluto: uno script non può cambiare niente per sbaglio. + +### Trasforma la tua API in tool + +Non è nel catalogo? Crea un connettore REST e importa la sua specifica OpenAPI. WSDL, GraphQL, Postman, cURL e HAR funzionano allo stesso modo, tramite il campo `source`: + +```bash +ID=$(amcp api POST /api/connectors --yes --data '{ + "name": "Acme Billing", "type": "REST", + "baseUrl": "https://api.acme.example/v1", + "authType": "BEARER_TOKEN", "authConfig": { "token": "'"$ACME_TOKEN"'" } +}' | jq -r .id) + +amcp api POST /api/connectors/$ID/import --yes \ + --data '{"source":"openapi","url":"https://api.acme.example/v1/openapi.json"}' +``` + +### Guarda cosa hanno fatto i tuoi agenti + +Ogni chiamata ai tool, di persone o di agenti, finisce nel log di audit: + +```console +$ amcp api GET "/api/audit/invocations?status=ERROR&limit=3" \ + | jq -r '.[] | [.createdAt[11:16], .tool.name, .user.email, .error[:40]] | @tsv' +08:41 hubspot_search_objects lea@acme.io HTTP 429: retry after 1s +07:02 shopify_get_order ops-agent@acme.io Order not found +06:55 zendesk_get_ticket marco@acme.io HTTP 404: RecordNotFound +``` + +`GET /api/audit/breakdowns?days=30` restituisce utilizzo e costi suddivisi per connettore, server MCP e utente. È adatto per un report mensile. + +### Scopri tutta l'API offline + +Non serve avere la documentazione aperta. Il catalogo delle operazioni di gestione è incluso nella CLI: + +```console +$ amcp api --list mcp-servers +mcp-servers + GET /api/mcp-servers — List MCP servers for current organization + POST /api/mcp-servers [body] — Create a new MCP server + DELETE /api/mcp-servers/:id — Delete MCP server + GET /api/mcp-servers/:id — Get MCP server detail + PUT /api/mcp-servers/:id [body] — Update MCP server + … +``` + +`[admin]` indica le rotte che richiedono un proprietario admin, `[body]` quelle che accettano un body. Il catalogo viene rigenerato dai controller del backend e la CI fallisce se manca una rotta, quindi corrisponde sempre alla tua istanza. Il riferimento interattivo con esempi di richiesta è su [/developers/api](/it/developers/api). + +## 5. Affidala a un agente + +Un agente di coding come Claude Code, Codex o l'agente di Cursor può usare `amcp` come fai tu. Con una chiave di gestione **in sola lettura** può controllare un workspace: quali server espongono quali connettori, quali chiamate falliscono. Con una chiave **admin** può configurare un nuovo team da capo a fondo con i comandi della sezione 4. + +L'ambito della chiave è la rete di sicurezza. Una chiave di gestione porta identità e ruolo del suo proprietario e non concede mai di più. Una chiave in sola lettura può solo fare `GET`. Ogni chiamata ha un rate limit per chiave (HTTP 429 invece di un'istanza sovraccarica) ed è tracciata. + +## Sicura per default + +- La chiave non è mai accettata come argomento del comando né stampata. `whoami` ne mostra solo il prefisso. +- I profili sono salvati in `~/.config/amcp/config.json` con modalità `0600`. +- L'HTTPS è obbligatorio, tranne il loopback per lo sviluppo locale. +- I redirect vengono rifiutati, così una chiave non può seguire una richiesta verso un'altra origine. ## Dove prenderla -- **Installa:** `npm i -g @anythingmcp/cli` -- **Doc:** il riferimento completo dei comandi è nel [README della CLI su GitHub](https://github.com/HelpCode-ai/anythingmcp/tree/main/packages/cli#readme). -- **Sorgente:** [github.com/HelpCode-ai/anythingmcp](https://github.com/HelpCode-ai/anythingmcp). +- **Installa:** `npm i -g @anythingmcp/cli`, più il completamento della shell con `amcp completion zsh` (anche bash e fish) +- **Panoramica:** [anythingmcp.com/developers/cli](/it/developers/cli) +- **Riferimento completo dei comandi:** il [README della CLI su GitHub](https://github.com/HelpCode-ai/anythingmcp/tree/main/packages/cli#readme) +- **Sorgente:** [github.com/HelpCode-ai/anythingmcp](https://github.com/HelpCode-ai/anythingmcp) -Non hai ancora AnythingMCP? Inizia gratis su [cloud.anythingmcp.com](https://cloud.anythingmcp.com), o fai self-hosting. +Non hai ancora AnythingMCP? Inizia gratis su [cloud.anythingmcp.com](https://cloud.anythingmcp.com), oppure fai self-hosting. From 1b1c90c4b0b67808c50e07234805482dda5909fc Mon Sep 17 00:00:00 2001 From: "helpcode.ai" Date: Thu, 5 Nov 2026 10:41:43 +0100 Subject: [PATCH 4/5] Keep a drifting operation count out of the CLI banner --- packages/cli/README.md | 2 +- packages/cli/assets/hero.html | 4 ++-- packages/cli/assets/hero.png | Bin 128832 -> 132037 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cli/README.md b/packages/cli/README.md index 19686a190..6aa27db94 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -1,6 +1,6 @@

- amcp, the AnythingMCP CLI: log in through the browser, list and call MCP tools such as shopify_search_orders, pipe the JSON into jq, and discover the 200+ operations of the management API. + amcp, the AnythingMCP CLI: log in through the browser, list and call MCP tools such as shopify_search_orders, pipe the JSON into jq, and test a connector through the management API.

diff --git a/packages/cli/assets/hero.html b/packages/cli/assets/hero.html index 0bbae0240..a2bf160c0 100644 --- a/packages/cli/assets/hero.html +++ b/packages/cli/assets/hero.html @@ -51,6 +51,6 @@

amcp
from the terminal.< #1038 Kellerhaus GmbH #1035 Studio Lumen #1031 Bäckerei Hofmann -$ amcp api --list | grep -c /api/ -204 +$ amcp api POST /api/connectors/$CONN/test --yes +{ "ok": true, "kind": "ok", "message": "Connection successful" } diff --git a/packages/cli/assets/hero.png b/packages/cli/assets/hero.png index 73368c1c0730c1f54d3fce2fe344a0b017972670..2e77348695274d93129682b1a4c1cae43d65ccc2 100644 GIT binary patch literal 132037 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 z z6uNijCBRuL@SMvsrjJH6T;z=$v>&us$}bsaomp54OMQs)VHP`Q$M*nJfyzgluVVP7 zK&oGIUE(cLMlntk#}CR@T=8wTdguGTy?3W7S7kK75#Xkm!WT7dok2T3rK5>b&EJu{ z!lP7M@=vS5ig%@d#D>f&biW%o!Pe)6D{y1T8r;~<%+y(u6A{Wx(H^)`h0X))YciL& zJ3om$7z^}P@G@S}S{@OQp;DU<|`Ot~&Of-?Z`{bJzXC z5qNl{Tw^*CElij~rfYLc>BJ;z=rc5w-P&NV__?FS3?&rZZqY880PJ8A>>d7M2q>H0 zOa}b0IG3k3d_DpOns!@$s^8Kr(&u-a*(iY6yMf#BhrR=NjR)t!-)NRN?7Mw+H94K$PY3+$=&DyA)4r+v_^l5qA85F_VA5y#2P|>e~77okB^V`0e~y`r7IA z2gLGr%JKTdwJkxVT(!-cLif}U4ga6{eTo71&xQ|x1~+p9LaqSAG9tM#a{Ek~q!K*> z+H`HW_WpB)9(!ZpC4qR+c|LGuBaKA1S)b?cB^M6|m)5EK;3*k=>ijlo-u_``iUVT0 zh@(9e+?NY*Ej6e^s%=W^k8Y=Rez|Q)Y*G#aQV7v z;FFx}D|^bE_Qd{iNTgxRfm5xLAN_Z;AGu~NY>_yvu+~hiLbvM1lbLPIUcGkaKH%f| zfYqk-xFA{%DZ_*4xC=7l-Xb+wtB6{m#d&@q;Ac4% zFUg&OOw#9Ky<*|)d=|O5ZB|3k0&12KUhbR~t>usv{muG6Z;9b1q9~7F-FOI9u-l~C zTud5wsyJWT2A)(lpSoKvP3#i#RoJZhE1l%kIs;e2bmrj|a$B9Tjx{GCqP%Gyj4W~z z5ISYCU6ufMHlPcW_9x$0|elq2pw@aPc8sHMN{F-6Ly$wL?BlEz1e_P?=8Kl z=GiKJ9u^Hp7yWGJNlid)B^L07g;Fa>i?j7S_|jfY6H3$7-?XvX@_rBX(Akz&lS~b2 zl^U39i-UGJLYZm86SBu#@exRrD_}o@BkYNz;;UTH5!jBCt1SHh}*d02NOUEHr?zezL z_~g&vs(!p*7OJ>ZltkU-QJ)@C5l}HdcwLb(t6(&?iBe<}Xgh>V0%FWa zZnOmvz&(~4v<+t=BqW-s_wdci!Nzq=?A1!*kf&`vOT5??Bc9{2|RyQ{#ZfmO~_Ik~v3q;eT8Hk#L4R7<3%k}er9XV)5r>n6(F;$f9nCq&e`@|@_D=lwh~Y`%9{-)Ad6#bX%5T1LMlxP5%Ys< z$1Jrj`u$4u4D)v%@pn9gTRZH$46n4xiFc=(w%#}JU6`aY6jVRwCw*l^mKyap))3Og z#%qrhc^vM`@z{GEFy^sXWiD?ke$3%5de(3<7JgXSZu*rA*X_c4q3~8bhtHS#Uyp^$ zt~esUKttdTfrbEHu^r?BVAIvwie1(!b~9|n=XXJ^A(jx$xCYMTVhvqH)l!=anS`t? zl}bit4Wq;VRZrEeqF5#Vbm%SCM7fD=h0D0GIS^h(yWWBvirJ?~)b5kjV7cyeNU?upHI+R3vW&oLZJO49Vv~ocutTN16Z+vyF9%aK? zB3B$R11|~?73IpfRYj`Ys(`W5d4K)L{&6_;PH+5Cq_@Xd;VG}3H&I?>H(8z<_QFy9 zqY-as#gqQBY;QfU@QRmPDl0(9_kX(@a1{q=8ZC`_+O9Nl@%%*zp6#oJw<}S6 zT~B{iyD2hCQUvWGDyA<;tawu2+o>N-1KvLO(9h>rUsVSi;z=RT&Vo-h&*2Zpp-o%e z_Sz4cF4vOh`P>L)mDIqS$O<_K9vogX=mn_DV>wHcA1f|;I;xx32XC0~LObCt8fLlv zyKDV<>nA#rzC?-t#Mm~%2+Zj0-TAkot%kFZRZi;fqo>XS z{^*s)Pxp1mPEPjsK#2S|uuB@PR(FH=Z$maCeNMXO`J(g zVGX?e3Rk>ILp~HL8w!bVQE+2GIw5;F?oJ-R+xC<5_f!2dwA?U_n`iw_)lE3krP`yB z8%6z;!^+@|O5xY?p+9V~R}6qXP#N-T`CxBnTL<;%3>2sF!n+Cu?Glz9#^Z8byTl1d z53BGLlWx~BZ%O@WY3x;IYcB7FU~N`(y;IhsPN|6zs3f9MxzvAQJMda+VGwnyUx**u zr)1><_kxxAFAtdLhjje`XFP3ZC+1~Q4GOls^N2qeCQcm#+%cF)@kspEVHN74sQTN8 zg3Druh7p>=34YsN?C;&lyz9wDPWB5apFA&8_lC{db7jWH(~eDBYJ~{Ai)%?sK0ZXy!LgQ-^|l(W_GO|W4Y3FJ80z&CP) zr~Hk8c(vUY-mMAzQ+~DaQ1C5}$^NO;$Yp>wwaB$yt!>N>PZ9*cn{7MOQM!4`8@Wq< zSE_VMo2sSWA) ze%G{t1t6IPM^A4iz(2g*{Ff5!v^XcswLl>Hw#%&as~kbEZHk8TlG*L#BOSo7>jl12 z#RxOORve_*IUudW0E-tnh!k%~Z5|FW17xV`k#%EeLb#sOGvx9r{}g9>CPL`7do$zT z?x(7>YOMpgsJcqqigmvu4+HF0kxXsNalTP>o7FZ#nN7jGV_Di^mIH~=fTUon@#D4* z&hnLQ3_DEmYUFK%5iLjRbf+uFOaBcTtOv5Xhnm{W`a|2z0zSR+x##o`lgcnsxD-nB zq>e~ULn{w-B9Jr731b0El1Lo8)eebt*&#t~83I|QIM|4@(a1Wi%Eb4m7Wk zaLq#_dkGa!UcC(~Q+>F$c<;!Ep9%LU$3_To<^O=XM5>`z@VOPd_^E4&(+%#t*{Csd z70AQZawkQZDJ55#GNAGbhS04zJkSygV`E|S^Da;xFy6CM!}? z-SG$HZOna@6R2$rECY>pAppz=&N}8t-|@Wwyi}T~kC!!kRuT`H%NO_l!+>go=EBf& zfSjWsQK5k98!p~-+(l#taGc#zc~_`d<9g#I5`)owgm%2w%FWgAA>DEE*5$)xjc@cz zXC*B^?-4>y5>*?>Suy3yrmbAJy&6i`|HkG2i=>bproz+?)3s-A54u1=0E(eAIIJoq zH3App?LosQ|5EZ&N`{yp*Ys0fJV*zN4??ec|1kHRZI${jZI}8FxcyOrvZUBbU|x&N zbvV8bIs!3#U@jyo=?=D5cqs#B>6gfP3Fn@il-Bal)2`BXIF!x4eVK8~MDbd^ArkG0 zS@J8uX4JE_7CRiMVq1~Aq@NHce*J_3658UV=-ZN@`b?CbdQ4bJzfWEUkTUg9zst8J zP4y>1+)EB299f}93jg>veTk`ijuT`*y`5P=zAE!%n?wx0v8p}5(jm*u~zAg zrED?cG5DtD90+M2>@1`wBW+NOtX&f6Y!`1jrSvlwg3 zjURqp{{b%!MPWC6nn2%k{ zeODgJ#ORH2_ZZNC>3Dmmk=EEj+sy6ESrl{*prHPXA>`sL$*eU10KS)UfEO78vPpAN zfL(Sp!&pnOhj;-yhr;pw_Oy!1sYs`bkI3R6F;_f3 z!&4rKKfI|px-tL~_3kPu7cF0k>ugCR`X`?VOjX{8wDN_S-B#(UyXB4kj)y5d)v?0? zDm7)sU6W7ewbV_72i0d3)+c&wi&`^^_f!=WmNhT_qmceo?+N6Y;N*oPog}C;I1_?^ zX5|=69?WH3ty%h|%hcsY7x*#pWaD?ivQE=b-PsIVugWMBghNL_nepZRA}LnW$%+em z@qjLn-S8lWoI8o>2|zA18I)|ZINd2Tu(ZvrWQSN90dy>XALOA)H0pXiIFU~Gk^9@k%99e zq6qX_kUhx-&GZwey|a^Xoio5UkA7qN zCr|o(&{O&x1P%AinLrf;XDv=zE`MrmzR%uRIOALiAO(i2@-rf7dHmtFraUB!MM#k) zj&-~XKz5uBfX+0h=lkh9SJtz%wll2ObqB$)1&UH}q2&E-&^;%Kr4;J?|rwgCKD)t&JrB@on*Iw3Co5b?RO~ zQWy!PZ}5u!YxvbYZ_qn8fDk8;0&$~_BVc)ht!d}a4Cm~0nAg_q8Lyj~hA_b`n_TF)d;(>> zvMWFuyQss~lBlsHY{+oOol3iMu;5}PAt#>D7}!^(%2cK+m+@jNo(xeyw#MQ@*#lq4 z*}4dPV#`=E)21UZ8omzXT66Go9sx6k5w5Kqzz;J&+B+a0nRrfB8#93fg&QfXfKq!! zA1{wZO(tet^&p zZ(+dMiP~LVj0=njmlFdg7y%UX_!4sU&pwL7EyI@j2{HW|cS^DQ$oXpt6SI01_0VUR zZxcg2cSA5`SsF@aCUePyi_EmfqD}eLdj`>UdK9U*j1H>2Lm#sZ*t)tAU$s;E1aj#x>eswJhPfsVM!voT>LDg!-_}wiPnm}c6t$OO4u9-vuOU?gFiz8T-wH<$aYwEgi zK$h8{Df1>!Q7IR*m|xx0$m}>5gKBHfUKRq_Pn-*9o$y9H{@LpG?TA}SQ=*rLY~CN= zyE6(o#YhobiyqEin;VrX2}7Zlj{c8+1f{b7z27dL7q6CD08RCobse@C2T_>zz!T%W zr!w*H$Ax)GCF0ps;JG}6(-z@ z1?#_C0cA_q3aHSa-{&g9g&{_(?sq=ktbk(kscp@H z&r`g*$J~mS?HNfbD1Dqn{-dS8^c+U_+v3NrU6j@u$eA^PP$#p{)&a=^-IghoIu$r- zQBF#4#>f7#h=IiN{LO&Rvm*&GUfXLFB_^ASt~pxG`T@F-VznrZ>conl| zIyu{NhFE8|nd>$Wu`px-Y75TByHiI~49=+xh0Gj=Ht#GM3U&Q!XvV@C$Ev#24+;7V zkkP#*V|_z!gNNS+KioVu{m;LyI5xv|?C5O+&J=R78eFmH(rS%OTR2j_>135^a=$RT ze6=!N@$N#+#Bfl|bo!ISG0Hb)Zo1gvEmB)Y=s$0_^RuBe4L0)xp0?pbF!lTNqDU_0 z<58YZGeF&_yQ z&ua|fkNXMIrz&%s=1hR0D3yxEMZ~Xs5`NEzIO#-smiECid@3)aOaiRHH>)R<1gWsw zdc5_;=ELfs8cSB`_2;+|#Wu|q;T!UmpR%dPtBwKchjs0ndG*dpiO7^J`XWsXN>FF@fPfG zPL7!!lCG*E4ZZ`(*2n(|O&?UdoDEy(+TevZ2oT@PiESZXRtiODC>%m%OAhc${Y*mP5~>4xZgJ~l=^nu>sU@Y zQ{HhxxUO55iLQVr{OnwtM%p>tHR?ay^%nim6#ya|4eO;_s93W`AH&~sViKEkF7}Ee z*|-GmFOZj&0RvF>n=VHQJ+kWA!37W5^l<7kppO>nF~u+jgOUCL&yx0}}g{_Vf`+oL9O|WdjE@i#d8pF|}%;*g(#rPWZu~G2oc|H9h`V+%Wa1GMCMTo9zBmiu(-z!kY!6x-D#r8Rc5I z!@!3lFC**VoVU@AjQiOYMA0rLYmLzOc$M7WL3P-eW6_7(y!2fmC||Fv$l#uBxuBM; zaKO*cLcHEA5p3M1m$T;{<34mZAT2)WTd>kZe(8&x1{VnBgps}{+lM4{%y%YZw=slsHXaYeua7oOC>r41y#c9?i+J+3Of zXVZxPPSq!B{kaD27-e(8&^Ajx+5Z@3r0ksQE9Z^dqli%@euCp#*ay3KTSh&K0?#Ip z)_;%Fuj7*j_{m}8+}ow|zrOcNnDLU_&@I?=f-oSmIpjmegJCNQ$p%pWpx8_m-AG-= zximrKzHP!0Yy2=J8G#KRaP}fJ|#6PoR zt<)mZ75by0b=3UxaLbzcYOD*yP;-?7_{#`DK_2LZN;3)q8+sk}O1W<);>^+V!hUJT zZd@vK%9IIQR$Cb|{JpR|Lcs<@4qZ*F$=q!0c}IM+7rg>^>*~K<=AT~B^~){(U?iw` zwWku#JnOJ~fG5g_A4;tEo{j8!y7KX^zyF?Wb*&xw2jxbmZMY^)nkcag3*t}Ct(TJC zD0_w7pA1&&rdm0$V=ef5<}s0d<|_VEpE{VSQUs}V4J+Urg|`rAZbW~2yb;}O&1KUa z5h2=>Qk1;I5!knmc!LgCe0swHFj(MuuWAJ$&PdrnU&?P7hD0OQh>aH`SENXrQ|j>u zmhPXQCJ~cK@f&#$g%A!#q6UKg(9BUBvmQGKFjLDl|oCdS5yJ;wy_Kwf+kZ+Lvr^R=>4zPU9Re2mNq7^fX>aeOV#vY>-L(ej@HX`0Y3OxuxDMFsNs_PH(yPA zIZ>&BUSSlOeT{7tC;qx|o4INjC`7Q%z7Z`+Hj+`Tc{(4T*$^*j7JTpr}T_=6FSX`?Z5-MGk4d2}}`_8*nE{j<$fP(Zp1 z&P^pmQy@Wt9lH?<{oOnOOQ(4!+l%jp5O&Z-lu4bk5gI*2yxoD9d5Pffx${7;&}$lu z%IYEUMHIbTjn3Pt7x&%|K~T+hc>Qix0YSW5*8uxwmSGMnRN5Ug*?Jt0Gz1d zK}MXKoB#2j{4+DQ`i6ifb`<8j!ol`6L-SR4U@BU@5M=&rb&SXiWIBH}Z61Lk??8$x z{;17>>2Y(SE4%#XVG-sna9Mzl<)jfdUrtl67QdcO$%?_?Vnq|fG<8d()#WBr%M=QH6VIBKqoTJz$QHPA>*Zzffrr)3&DCte%=b#}PGL#L~$~ z7&aK+J1M&9gkqtx{X9(VDbrE9;reif<26r=ypD8V_v-X9M?<|ZalbdT ze$ksoH}A3{Ml;1voKoNPpR_;dzymP5;EL8rXpNg)PF7(VIjPW!#4X9SSeZg|> zahHkwdoQH`dr${@C!G)*D$t2Jsr3;c)Atr|w1QT6O^Q@o&3M<+WcldA;+_=G>pdD4 zVR>7FAe>HHq|fjH(R(H6thr${Z@GeI;i_tY`C*Z(Dt8#Id$!L(^;VRnuH61TNk&g) zNiKS(JQMx(i~7yvT;Wu8?Y1jZu7`e|-bMU1J)_<8oK;PqXvDfG;(T;k)cMaRn1QQO zHYR;0&SDYl+(ug!Ri^Zz!1UqXuEQ>q@9DdSxvxut7L6=xuVDtQx|*%?u4M+Wyzp9d zjO~c$v(;*mO%n^bG$f|M_a$? z9u~fp3i71AsTymm`;mYAF4tG87Mo!L7tCeHt_icDnz3V7E8bYE>^={?m;Ipssym!-r0Zvr010N>2^k~^Y(Cqu=e^n zafTQG7t5OKbrlv01-1BRQ0&Xi_y{L=gQ5HihaiuVV5?Z-eoMSDBPmP9bRnBeh_{-{ zbF=6}^dpmcyDsfJar;aeaDjx0!F=TPzkO3*qWVSLGekh zF*SyQ9U~(7exb}T`Gk|<26c-uV3}y_5ZQdU#2>|iNx~V_AFc~MPas>(RRbFr%13EV zAm7N=<_Oqey@e==DTT~`gemsb=Y-R&*-mJoh*Q3uCBBfAMhF~$=oUWmY*L3C^X&x% zKZt3L)VRkNN|4gSEM21=3M(_CC`q2Z-U94s>Jl5=M|JJWORmK<^sp-8#9Wm}cu6L_ z(>!5fZ`Zo4YDwnHTQ6{3<%1)A3}9w6U##S4w8&PCUUhmPq8ZW6+wzRhqh^t z9?oR%cz<;Vby@Tfbs6@rdEjbGnEh=GX5OvZj9b9#&5uSH7VPrID2)dgz!fJ%&r4hG zk{eazmb*dOAh;4rQ^LW0?u#B-Wr(}{;opa?Fx6*qjB@rLmLUC+Xx)T(g)#0)s8*T8 zOiE524kv6&YqF(`pf|y#p)jIcv7g(QK)R(MCzmLMq##>n7f8vPgPfS9zS?>wn$FZ0 zSkx`-!ZwRgAD&z`0c51Nz9(ILsr-T~e#0V9kXG)V5Up4)2dNKG7r_oUYH3mfu_oo_ zuV;K@a+SS!mVsy6I$x$Z(O&no6ycYN`&*SE_XfRGqpOa$w1+xLBzYHA^Uk!J+OE3r zETYzwYHi)^Q4#B7W6f&w6T}lds?FnOaOcg84W7eXS>WssT-Pj(czz$4!7kQU%0Rvi zz?2R<_MIsl;rH>7Su;w(v$@06WjaIDMGJ*XSUTS@D;F{ta3ZomN;v;CG2HOCpWCq% zK9nzm!wytmtjbJN5VF$(kh@4OtArORs9C!sPb5!#3j)uI<%>AG*GW z_6PfFK-&|~STnbaA6|dd!!G-iZUZ%S*x(!>IyYS7udrkD$`EZ%7Q6h8$Q8A2v~f?a z2YYysHY5FAaBc z-Ew(ts1{SQov0ceFgf?c=2y4QsL*5IA}VB2sifc5GH!=w2cLhG+0>lR(h3bUQTX}x zb3;Z}xa_iXMAASQ8noxD$G^ruY5b3^&p(!fJ$6(1M*Nl3*ga~ITYCdF-_{J>o>w1n z#u496siQFwE%@lB;5T>!L2f8 zWae`$fEoSYDYdgBNBO9B8&lVWeUQ<^rhCzq9@kVGa{F4#zx*X1@Gs2k`ZSb~G)-K; zu4zwfDJ@4>QH>ixYojsogtqoTGN0rS4*_X2I89>FUt`Z@m1FXlKLnZzCf`HdGZ$AU zgRGF)r>*tQPlpl^U$_#UP`9ykYUQau`tkwVy)~)>ja2JE>Y6GSKxoW(?1oGqRb)_E z$ZjTOE>6gQhf{Jg97H1;H2KeKmS7Vh=BVa)hr?oloLh-g=GT=ra@uDoyO%7r1u~t2EtblD!V!)m~?Pnk(AQ zQPXtv!BYfMYDh=1*I8gZ8a(cb{_sjbUP+2716VqnhDJ0lHg!jnzv-sjeaZ&F<^c(2 zed$T*1QAR}-yOaWCU5+h6WNrb{w)3?I@fK08SM&oAYMwuJFdpHDRtY{$4JPl*^ic` z@5{H^#GtDKWa9=G+bSo918WSj6MzCSsN&@FebCf2>MCv<1L9<*ZH808EVh;sOQE%4!QM2iZHA}24VXo_4MfH|++es-DZmBZ`jnq$Xy0y`7ksCR z9cEPIsye(j!-$(@A;s@~W7Kpw-PgoA)~Jp#Tk2PDSmF_QpFvnPn!IWKe?U`#?kvyN z5maHON9lnH6D43w&QE|&6sy%UBiFyW_hRjYa!vJOm#j~&FpK!`_q>gRafG+KzQYL* zw0TGGQC*x1yZq6M1f;GW(ys9Op0T2fVCAm=(cIk70g|cU)3e&(e-K6kWAZ+%$_v~= zf;0=J_=6X|J+bcfvARdG7=}SJ%^UFeM3(NMG-cxjWs_BdOgD<0q_om6=!*21Ko6)| z4-GD<_C0e-Jyf!DS}G(hzL!9%Rp63qfgJgO$Bx)(zCNpKb(O`1)U)Ogner|Hi8IB# z5!tYv@O#ZwI=S`Ei|n&SdnQG3{xCpYcSV&E=9sG=j_t+9D6kZ*cB~f}{YHYEnFv?a zO-L3g$&d+_W?e7>?T03~U{|=y{CLdU<3 zb)OeipYA=`mmdzSYi85f0_zd0gDS3D_$TWVZPzoZ1g}ArkdUlg36P3tWg=-QoO1Gr z=yjtwzN%*CK0mytD7MT@SO?0m~ecBDtaqm-;WH_*82aN)N%chC2oIlIX5^CfP!bb=l@Jqe(6 zL^Y@=!h^t2J#)g1nyG!h9lf=uQCPiQG zn-NdLRU!lp)L8(ig=W0YS`bKI79oln-B8H!Q6+L@x*xH=2rAtGTmdf)l<;8Jb#*14 z*frqzwDv-{r2j;Hc9v0d>l_nn+$Nm%t*)Dy3$Erf)bd9ii10-oF1`FhTb1di+Lpi_ z;Xx*obNwbfz+u%EHUli8>vuyw0h?Y#g{lFNMP4g)hnjj;69Bl3IAUP_)dlg+0c5mq z&s&ygu_h_2!mTsX9e{IPAXU$f2TSe5FzsDUQ&YvmYbJHVN5DU=rg=k@LT{Pwq5SJ! zIK|}*queVXX}o1uiC_u{cDrpYkE!%tOBjx#pnYydTeSN}^cF>O>s#zzf5lfDU1kw< zUlP85d#Y#LTE&bal~#r=5V&X`G=@OSAWh8X4FLl?U<7O_Wy3;wulEVv)_UDaB&inM zY(BcUgXS=4?HHlTqLJJ=W~!50;8DSz!JG@`fu}I?88XCeRBPtgy1YAHYoB-YjU-L# ztOk9kz3vVNo{XmUPS}f}zd+1tsAUIBvh!Cm`S`l=^em>3|Mc=d#(eoE zqzx?kFh#4ZWJR~t)p$a!IOJ(lkWyDf`ZB*LeCC5|wTQ(Iq(f4kiM`HoD|>*MV_TZ* z>?ok}17xcVfPsQca2T4JYE%d8*t-=PM2;vJy_Q=466V?B&wzaHHXO z_{Hua1vk9Fb0R1np?T-JDPuskM1!{<8ZzadnL!BhZZa*{wA^z*Oyi^TDZJr`gwb*f5fyUoz26sx`PGrQ$%PhGOBbXq;nPZ9&O}_L%I|AnVDnS zRU;@Ye&SWf;U&|*lfv5zAY`Cd<0b04PE@&~nxMy1&?{VJbNTfz-wudWSh%jeG#Mdj z$S-UoZW_RddMmUUk6(+zUYha7gO$N})qEEtM#NdX>XkkQi0)Mq@d-E8iFh~Sxr_MY zK14{PE6jFX;0rOt+ZuHb*WJv=#W!}XGiIrCY;&SW=aLdgVZ+?oAa4-(_Y?d6hp}`r z5mM(ykgID>?r4mcxvFJY^G>tbg<`~oyo#6SUGdX3uVym-l*7P}r;&ACQCO7+z*Z&! zHW+zZga6KB>Azl3MYCw5YD&b_(np}Lv)QB138S7K@9})A7PT!g!{o4IJ3s-5+@Wi?1o&}^O*%^hQp*2T_aJ5ck8ym)hmk=%#7XTuQd|ZOT3}h%ss;`7pThiH$Xq_Ya+NW+cAL{LP&|46k z&@+&k1i_7<=5TML73+r4iihy33y`9^q`6^LvFfidEH6tY81aw^ZhgeYw5@y262CoZ zJS0{Grp!&(G{s}<=6|$OG=<)aROOx|@(A@nSIu(6g=G(TK4~iQFHLqLin6B8t?%~8 zwa9tC)T7bwTpq5yq&9k+HV%jp5vlA^yUMRtCYmt;yp&K71#pnGQ-FX&!``T!?xgDc-7% zDo$+q;BcJqa=6&li8Oq%7EK@-<|U9GD}?b|$E~78i)WBcNq8l|e~?K6qTRNqS_c3V zj+IC!L>KC)sS~2Rxo{PG&t)6Mh>1;YST6(&hUHh8h}?AzFEg!t-IRFMh+!KcA9ZJn z`&m%8=91C)n697W1zWyvCrk$?uyr=hb%&JC@@@-lW|A zEv2^d#Mr8WJ>R7elaWBjt~`1-QsbF7g+9V(BbX!IKq+0icA-Xjxj6}nS`@NW0+TWY zg0UL>kA>1w_u%99JQeI+vI001El2XxMEB!18aFh_ffp)1U_R=X-(F3fvEUY0Jh;v`IHK0j1OsTywJ;q0^$=F| z7g&*O3!)x7!|%A;fNQrVP*D|WZ_K#gLbd2YK3#M_Fa&ZRjLG!f-C>mHma-uV-ZMlQV|u_0`0Gx^fo9_Vei46RV$ z(rY@V!D2Db3_f-d=6PY- zIJk3m`RL=U3^@<|X0gj>fj@vL4r>^qd9Qag#wlpv)O4sAH3ND{z#E;ifntCn4chl5QFw%X_ij&$%i^^R!^`IZg!IZs&wHUpFB9v&{Rx25 zN8?o49C$1jz{k2~8t%$@sEuQ>&=APQIk>qc#ifyF!r8uGtU=O8U zX5fXbj{t?~4vWAsHV%47%xUC6lj$6Q6l#3Zq!+#_s$YX`_` z+_QB86G&++f|J{%$4SzA^2|AC{TOVkJ6bdx99Xst-MDZx@tQ0C)gP^w*|Bw8b}U6% z@4Q4&pJX>*_!%;>pCa5On~Wa`02cP9 z6bIkan!~E=Z9(1xxXhZHdK!+NTlfd$e4+PJx=rBalFU`)fnX;~kk}jLvAedLsp1y0 z%e~?GemJ4&8`$OB=pt37B-{|vDOYprf6Rk6P#^jzeN~c$F1vgQRvgw!K@(DkXi@}! zywW8nz3>x~^?{sP$)Sg@xMxDP!H#l+eTZH}UJJeD1G@E}nuq=eCTtz^g;&cCkcG33 zYlTx%StUJ#02Edq?(%VJ1Np%KKnEv zEzS@u@K7Vbn7UdI;;9O2d1PIRjFzo++C}$BK>6I(27ed;WFv;ZE%Avz6d6Xdz7!&! zBSoCkEpqU@bQyx*{BASD0rMopWE$zQlSJC!T3Q58n36eUGBHTy7{^!U=T3#~H!H>7 z&E{s9?|SbYUcwD6eh?{Kaol2hQ+l}_vxH`|=*L9K1zDhY)y>EF87$^ja;)}iQIZST zToNFtwreN>S!)N?HEM_|HN$i3nb1ao^-c=GzI;TN?H7fGEYsO|OuUG9L?6@Mz$`<= zQe@Kin+N~kJP&7N7q#QRepdwPv#gpCE;F}x6)0SjPxQmpnnXbssr_E~BpC0WM%n=B@>H0ah zoGB%>RSO?2(^oD2eV98C>^(!)8MVkNk4ljhsj-9`qBe-@@SQ8XHzBHH=`7q{1$I^t zYCZ5m^C3{4Js5fvl!?<}hVCx9B#4DrY2X<~(^)Gg6zr4B{6mLn%Jobe%oBLb;l<8b z{q{p4PAAYLKKg;eTfId%W$VxLEOhkSrt+xtvpQ~+gIn^*^A|;B>$P}@D)`9%&{Z|~ zcXG4vo5FC32B+dG>+Qg=?e&cTGjNnxq6S-9->pfJ4}fV@eNTD)%a3Z&*PSC^Ph?aT zK&Qz*LP2k&%ppZh*E zV@fH<%VZuu43C!;9yVBi=k~YHFV~D;sBTrA5TmB;#Lz{@hy4bgJjZSzWfm9-lea=ih> zq(PJK0QNN<>xHA2XFPacjX`ApFo21ac){|Jmml)I-zppY-$0v8r_&%V(R1p66Ke4? z(VZg`9E!5R(8ZLSY2?m5VX7}Z%+G?>(anWnX#$UG?aCsNQ8fAU(Ob;{KKf)9gv+t@f?wKT#?Iw%@xOM4@78AA z9}iBTpMtQW!b*gPEmS{e9Pz$gHnu8HNaALEJ@7?0z`v%BIQx>{4P3?*^&pxgC5Aor z6GW@m#Xi2idc;alHPLSRg&s8fLsv{=(4M=$Xbwyl5CZ`DNMVHXIXNMM$TVYitb&jm zRhrz;YL^?8?VtexUE)&g#SWHyBp2u}ySBBIB2cv;`1BV4A-PQV6T(_$R@}pS{UyF7 zLMhnHsX)qNc5zV4YXTHoi>uQA^I@`Q{y<@ZnRV(Lj}s-I4ToAOZ`7uDZ2S!y)7yO~ zzPA2zu{%3(z)Se3zqO7mb0!A2aWkZ?S@B$^20r#nvdT-=(4(#68gJM3O=%ppyuR`> zKyQ&*(75PCBif)zXrsh~MXj$9ehu|6jR3^h0r5+D=mKX>xtp7z9FiQp@Dkn}yvhKA zLew*#5qfv1+ z|9w7Jf4jRv!Hpumcdh+QY~(6davpDABBRvQR|s3kQsEJ7yv+U;^4rpYosy-R5(}qc z)W?k7We1gYSpxDt(%pWcMv}FyOlPIGUY_^cD3K$l{9q>Hf;W(di5)bJ)-5}+Y8D?U z=}WmP`w=B$+hBy>Aw1KZQIgvv*c_l1hv}I!1e_*8;R)p6gThJV;Po7B#@{}Rq-fgB z{W(v*tmrvDS(ug|*$(ydH#%xA$i#4rATZDxh0vcNE$kw^9tSlG%LWAqe_6T=~k zN|U6>!Ic*oT)-$$o#dZYtV46j#6^Jo`x5W6_jf zqfcz}3srIRHFnaXIUl+G?ZOIM{8_jDye&`%+&qId|x)O!I&Q7q%a;aj%-};G!lcAlG^zB-Wg_jRrx3y}1zd zdJHZHI0;k{velwZ)woQe^{Qe~WUWI^_AlMZ-Y@PG^x@w_arfm( zkg0a8UY01tSy% zk6X$u!$t^$z3t?3^6c!d9V-?7S+|`I+{nZIcd<6A-{>_(sZ}A2c|Ke%)yO#S(xQ+@ zOW3iUGO7_E$`@T0;;7@Wb zH+d@C=1i9LULqNa1FpDoo35B1N54pYe$G;@UcU(2)OYzu#E$U5)ZzI);&?qQpEQ>R z9-!8q3z{n=V$c<3fb>fpC8~ykoScB%PmbLe3M{p-qD%+2gh`M9C=T!ZEjWj^d)X|P zoYRXDIn2^mnSxxw)(j7s4L*P4B)%BVXXMGTy26G(B!|)4pZ!0)77vFHiHE-@;EzLY z)u~-KB*G}&3Og_=*{ELGR_UD`79RHD{n^JX#Xh@j=KXxll}(Kqg@ZxwYh*6%qXM2@`#!mh&yJkGI3ludi4sh2{2jw9Bz1W8D5*M z=6g5Wi!b)1oWz18Y+tPC;oLr)Kks?t`(2UywQ)m1ux8)}o>(hI_SmUhzv)BPBlE+$ zJi(^ra+gPro*B=+XF;gLUmDSTGf5=tbFGb`E3TgqSox$fV z%xT0S9fYy&Wx975Cgg)XgiYiHLuoEl~-$4Hh09a2WNZh%#2*R3r&DrbRHX|+yzB2sR8fh zXQj*R&-^h#4|GpYJZ7ho7aJ&h>dwA%F|aWuMYYqwQ0i|%m1r{5}5D!5r4^iI$kh~Be`p9&Ki@D7aXVK_c1v2aHXGBaKT0REB% zisI1i=BgWpO?72D8Dks>yJ>W+=*8QQon9N@5`WxcJBEBei~dZL_u59&ieEfT7sEm( zo{1C*wLYOt;VdjHiAkN1fI{}-PyL5jiHU@!lM9-KC#{#539gj3 zHu~?FB>Ip%9@kw__|*j#@=0ZHDuhm~X(t!<0-Gky4OQObirPmfAPa7LVdTyAbL_>J z_48Wz zfu8_ME>C&$$@UhwGDD>mXv+orHv?rIAJCSp3nghz#Qjs3_(#+uCf zpy2mk{3F*P*Pit8T{U<3(6r_Oy~iU;S^{U7_zU-zDzC9)u^MBY#TS@*!N_wh%<87t z4#D#>)i1UkcGT?L5aW3QPWeu6S*x5zj}l?a9I;s?+u$w7P6D2X@ z5tn3v_flu>n0Ky#oB-kn6ho{XfI<}rFSq=^oCS3s*}2812Le;$JV5gj7huL~p}|zu zc;@Y0Url~nq!c*@FIaZdM@8#vxey}WXwJA480!F0U21visQ0|}F!(7=V_ZlRk^lQX zZ%A9=UF}iUSN_tbk>>(AzIh?A`-sb@`jeZ=3KsVzS5WW+p?rH?`_K^ObBWks%Zi^kU0;r2nnSfFBxicj-V);9g|&(M zPVHZBEZFGZd~eP&;Rl7$x_^J{jc1ZN?G>hZxEI2NOyj&Jl~?ul^X@nN1I$&aW(i1w z6W(uEvvVTA+PBA?qrW=_+}1CQJ#RC3*g~28SI5c^!A4ip$~{+$A7c54%X41{$X>ad z<}_khvT4LHtVITYap1-vt0m9ZaV=cMX1TIKS5=JtYI$}Rp-V<{s=#aKs!R4b+~P9* zkME6GcG86^e6EfvnWN8(LtQ)UONt^Cu#82}8g!`Uh0_yBNnI~DxrRAr=4FOoHB&=E z_B*2PAfay26fe^z#~rY1Y@xVBeUfD{*nM(UlCNvEWn+`Y2>VGT4J+qb2^^48O+t7IA+s3cjJ> zzLE(_SQ-%O-L-0=bk?aIkXSd#@zmoybhnMXSursbrc5GR=XWRNSg)<} zYdGoB?CaEH<Gxp$!3|T*%~IV?$J2syiLWQ0IH+5DY!} zd+%0|bKf9%#?Ao&woOK3=|bkr0hS^X-H^p~4C+1on&SQVB6`9G7yAhNmt9$sP4}8t z10I1Tj{<7dwU4Omh|E9vCzrY!v_uQc!ipu%#CrjSi?=KsN*D+)0b{4Wvf2ac%RK3= zeRqdPM0E*BHwvmRu)mJX*OwoA@S#XJaBxm7!>$EiOWQy4{^uuD3s+3ED9Kj;Y4F=0 zr)?*74$kzEvoWyv7=XYeGWyme^|KVw$tYKZiYF$J{zNpv4LaP*6UT-_y;H-Di^jW7 z5sADl>*cLVJ4snlD67Ps?hq`1e)QCRnJ06>6T znr)`pwDo~rKJ9!;WjwTEy_ucy=+#%UOcOE)reK-d2DaK%zhy@px*XFuZXX5jG z!OEcD|Ea!i^txob37^z2Pnr3iiJ+DCR@O_vuRM~qBZil)ijtb4dtu+^(2QqN#HkkmyFQ1;faFu^5<=h9j2uh z@x&F&am^w3_I!M*a3^F#|ezo{@$)HAndZCiU*)#L{Oatr|;+{|~m5Z(SMTEp& zJwe))0L|Vrh>(r_et5PS4A(QD%e)@w^m5>~S?gslR$>{S-mD?*dgE+QhBhmL-&2(gRS1rFr_Wy0<^eA7F%&W!@J0G(V0_gj&rX_lOQ-? zVE?eL%1qt|z~+0C*fJMqKwUifRA^8HHL1)4@VXvxyew!o_-^bHy1+m($SIjGi0 zV|J6(nHF6p`J?Su_6Xhk)I$HbntXY{$;<5T_k+JG98<8eZh zhZk!DskRz-zRJJ)@aMn38LtoWGM<42U)1=4`l<-3-<1(+U}etRx*hT^S{tvu#cnCC zg(}uqJcPA0v5&da5fO4NG`Tqv|&4svz%k$ZT%VfvcC6{k_KejuogKMv61@&s^#|^Efksq{AXKg+Yy+ z$sz5^)8|1_q({TeO857x0*p&9H;!KLryZcy(el;V3zhjPKH3nQ=XUh42mza^F8Bbr zUiiWR=OspcmscAy?s&<7JvwQ_tIUcjSUL#*Zf zknjR*q|5v9z0T*w#(xsZ z-VBVOj*LP&Q03g8T(s$%QQi8!o_Ba7Q#ziY$MJ zCl)!S+Gyi4ID~`ivriH1$hys?aS$HS4}^pp%*P zzb6v3%!L|Gd%Tk`{^~{t6jG`V|-$@*)V^x2bQ6CtKmt5O& zYMSyy<_vk4wKl5HS(eEVHERKoXL>!5vvsdem3X0jkEKD^T9 zb!f5t8pi@b)vZ4+ckAvweb@SiYYs1TtmWG$(5Kr!+`)H0CkIN~qwRc$i zs}1j3y2XRM?81c!PUQ_H6jznk#Lgxs^!hEj9ofE1R*kO>jW!2xKIhg{Jqn9KNVpF% z+oI>og6{_AC5Wj96t>38>K|do!gfF`HF>=4dNYJ!^*WH~{Nl zE0QgifTST%?1<`x)+T7unHs65-^WAji~cCoS?AC&+Su_*FZ4%W92Qfs_bv+w7^C1} z@@`w(TW#A~J267*!K-$?&#U9cnb=_7BJY&OERh@jT(Z_AGC6FEWdxaHJn51X-rZ7I zfxsIK^|mLv-kJ(Bv?D?)>IsFST=4anD!jBPo!mn-3DawgCeheOIyTVXl;FQ!c<4J5 zkGjvh^H3kCa=Np2d~w;|P;2J|pHYV+S|&Ebd=~ngvJ+q0$wJt%`a&H$@q6G5^46#t zx8ARk=I$G&6|2k5@5bI%-5(7J@>(vIF{Yau{`ldTn_RvfxLc7?6U|!HCtPRFD0=96 zfi9Vd5b(>4-ktH*%C0I}w>-p{(s?z5Nsp3DxR5$K-ZW$^CEO1-W<=yjFHlQ|8`Xg= z_vSo2WnqT5nrVr_HT*1=!+jT`qwh%-m-yoW)aEL%)gPA4U$!Y%H2a$OI^9sQzB?ZF zUeRe?$$X^B2*U_ptO;yCs>tM&U&37PdN9X-kBT|5x6+MLlZ0QN0m;KqA(Fg^i=_D7 zojrmvq?4P0hA}vWt#aBPnJY`Mb|FWCJUV814O86E4QzooY;H}8H*CHAt*k%hoBgNA zy3SRGqn#;DKsL|A07HX7yA*T?+NGTsPdK}oY#Hrnm;X@BB6m^mjrRJqAca+8neC_N;S-9D;?|4@jv`q=}=-q`?vR_xj7o!!FBRfHSI z36cIK%4I)gpe6ezPTsx!E8+JxSGPZz|0W6-O@jNi0#`nR!7KS}x(lf=1_iuR~Bn_Fl8EVYFq>VapC?bgN_K4L2)8VSjVO%X|p}2l+Cm zoUf+wUpCEs&scKLvYtOj^(Pcw#uJL{+&HP zZoK!IZe^BG2-bfHjbiR^Y-;uU5t4rQD(N6gwxV%?uT8&458>_69M{=5xAu3p z_K9qX(H73*Bd12~MM!^N%KO*hyF%zktONEGhs(c;95c$}irqsB@x&`9@To1W<}SJ$ z$Q;*kzm2&&2&>7#%FB$C{{4LR(N-lBx_TD(V}j{8>HVC#9X%ENEiscs)+$!XaGJ&1 zfYv?PRxBeR7@ZNlnPJ5Ge!zpp#`1PeXc(z9$3~M*4jQhcT39O%TfpAIqJ=%NHY*`S z(oU@35K5D2RG4)~tKy%PGhW$LR+k^0EK$a&nc~~Q%jILCz>dDB?+_u^%d})J$mPE? zBad|_MjzSFi+V6T68k`cmF?{&URGX+eiFHMeh}+T-`eu$O@$?267KpuS72AZq#WzY z%Y#_xvW;6j`?))VEISGRQ^DO^-?7SEWnC|WIxuR==E`KwALGT(ds22{F%8s3bD=Bk zX&Kjo`Zbk_w0WUNtE*qGy70h{Z?mw&Gl|h-aEzBMTeVT;4@`V}Tc(40tgVZJiU z)2)CL)X3k{kC~<&Qzbs^r8`rC?l5+~=%J0PzVJIagONROcHeah(4td0_b&=oGVdRL z7E+s$#t!!^YrdLjH?hCnCfB5$(n82^A^tz6-aH=4_xm4jc|{SeM%gM^ia{xqqEgBp zGBfv#ePo-VvX?bU$|PB4?1_?P1~VA@(qQb8WyW4n$X>E!?R$-S|31GzdeozI-`9OD z=bY=D=XpL8%i?#bn7Xvaj$_(?>Awow+zjI5;qpowMt6%J2YJZWTAP=X?65n|Q+{!{ zZKxj{MA+$4AuOwN&<#*fSi4;fRC^C(#X+n2_Sk7&HwZA|Sme4v1%=a3M9H^zIRggT zMyerf(#F|OZ!Ifa4#t}?;#wj^OWVg6`=>f}{}T0(XYN5kyt?Tx8#DOK?bd?^?3M@q zQo8Kjv~zEWWp*lzrg10j4>Eptyjv0KGK3>%yw`@6?&dToy3L9t9{6gJN%a=5VY-f( z%h}yIIhND)H@%Zusq>w1z0r#1>I&(I0bx(o1mH88&d@-eiBEi=Y`0T2NRcf9w1*F% z;dmKD*F4!_vK7vL2d*zS>pEO%bAVj5orD{oOFJS%kIsHCay9FZ-luO3n6+fVPNwbx z%x*5ejbwg?u5{)_WBlPEvvDUN5{a-^OjPGY0^AR@5sBDmR8rZaI~_x1m;%9)f)A`7;!x3xG^q zLtWFvZAmyx%cdl))QsGNp|2b-JQOo>^P%Oge6%j|An3iihbHLB%MLonhP5>@9hj%g z6fNiE&SOn01dJ6XV)%9MOX0TCRk_C&_9;x@(5|hgOwieBQ+cmv zaKQtVy-`Y+tn)?*=bywCQ%=1}qhj{?!pLBgs5_S4E)1Qyr>{_XHSHck#!|q$Zk(nq za`k@6f##|1nhz!M(r!5yTLil9oka0O&0f`yEx*>Fvu`uh&lHkP1{;1*_rC5i+GTD~ zG(B&3zyjcs8!W2V@^{@_)dGz)sX)sHD++-0{}CiT9-<6=9`y2)>TCL5DO>myPP@z= z?Rr3IjbnJ-64uJT*=*pa;`+Hea^dvP+y<;3`-XS6xE?IdX6G4nEx`AgoQ|b9nIV;x zo5ydrE{xb;nPQvmDOAv{5M%M0HuilTF?a_9|dd0WFYI-jaX_LvC_N;VQfHD+4%_& za~>cMHMG~<(14Sstwb+IXVdy(*y!>Jw$31MHYL9R(}->HU#h2fce2;yk?Q=Dk6Nwc zB-jrCob0^c-U33+%E3`;dH$|F7wkAX?&l5v=U#1Xr8AC1KO2MatiMV z5Z!r-!EC4o0X&jry8M$T+GE@Fw3D0H>xF!0@CvJQ$0Epzs z)mdMGvz1Q>HnZ+KzeqGMJ_d#{2PqSn_bCWiINj_kO=KA=7~%N^F>Uj%X>$;mwssDH z%F!pf@Y}^i!_08tX!x=hSiLW2d(1_ z_lGj$5?M@b6?W5Hw<3NuG}Ls6f_`t%l3{L#HD42TqlSWn4{7m;c5oCmt1cSsb)-pVtQ6S1D%7&pck(Vow4A&fdYM zT2%q?ivfWQc~8gW(Od}*m3V#pD`rzXA+6NZ)H8US&R`i|_awmHo+9j!d{176uy=-< zMr14WNM4>pk;T2i`(BU~Ywn%?LfpbHNc}8#;EipW+0i0fMYEI5wmBtrH}3DiS*Uw8 zl?i|J%ox4;Bzi)&shgQL?+H|fcAR`Y)4#6)H=dVv)NNrS^l_OuzL$q1k$qw+C!SW( zVRr!3u1tU2)-Y~#s>WZ>yKouHN!sQ?$=f85@z019Ez$oHDTbzLRH)sEuYV!bzz>y3 zaR!}Ou6eiTR=JEof^__bI!xEjF0B`WACc9rcl`zR{-W_<^STn@GY)ZR^sleIaIZT^ zGk@gSGGhO(1a!uBrQD;>6CM)E9fX zWdU>b){l%n;SsBo`rUU5qx2|GjG>+Nb3q#&5&~DFwV+nfQUy zHAKB=4n93YY-5VscWwKOPAlCsvOQ+>SOUvo`b0~;wfWCBDG3qwgUv?yGh88>9z0G( zPD$rR?5PJ~py!GIdKn~t1aPc>yjL`#?JV63VSCj{($i`e;i~b>zJpO=2rYGhau$e> z5*W8DIg_t31Jn!J8-(8%l?DZFAnI<`4nB4x6Vi z7TF=bNi#Z{1zIo^ilb~>B>^w(B;e9$oW;6u_@O+wgyP)h3(RgX>LzyP9!C#?N|tDg z26nuRhY=V2MZE@+1|Tx$Fnikly_t~&Vln!a6NT=njI_?@x%!JoK#aUo4`A32KR{dC z%huX6PoveZ<3F_w<1Fmznv!jZ!TEXj$#IEv>>ZZxDAa0VA^Zb(Y#?#jOqNiBZFYZ0 zlJ{^!86Qan@tCz2i${c_aPApUb^@i#F>AC4%#FIAOLy0?uvhvH_aO^W>&e>8Qz1K) zFhApWnmxte{0hinb7i!_v5&(6kGhG_*I9dlq-+)$4yu<{c;c?};>|4zDTVvWvz+HU^IIzHuuAKuFRlfEJ$wn|8; z5Ra}AD^ZY16K(2(rtM`j*H;~`@Uzt)*7ga1(ssz_AUs^)Y%ZXd`j9CjaRh%J00GbN z)|^N4L=j2S3V0){Cn=Xy@Ea{J(v}$`o-`P_g?PB|M{<~WZgMeHtff7*X9YUyMYkH? z){ugk_>#k^dQi)7VG^(eeIT5D!C?Pn{P~2Bw`qVUJesLmPr8xr*sIRYJh8tSOLLL} z>8Ig~AdS^5w7)_@UKU?;q7FN~>m!7bCrvmoYErEgWdBgA4b@2v4NcXzM?N&>iDWyV zcs&aT5=ozb#&eJ180Srcvo%j$wLOD4mebUTLK`3??CFpP`Cxr$m4%(0#aaqwUdc;} zdLd5MSauv!IJcb!WkV@OsOM$IoBn7Tp*v>1kAIRE6k&NKXbn!)2~NsGNqgp zN9M<3QP9p%B9po28o=FWkCdxJ8(TRct0yYEo`IEMXGb$#XC=!csgNKDR2A%<3O?9M zf>KO#8No0Qayl8aH{arVOAS_Y1Uv0Hf)zL}j1TH$%sqf2mLbFIY#nFdefA`Q%RtKE zC+$uohCSMVy>=hj+;~qjdpR(CgRZq4n<8Ss9u~RqpWh5|1{8kS!?kH9Z#M=MbM3x@UDurzU{WI5_+J}bW9DEhjb7P9NARBOT)3aqymdD5PK*_QGRQ~f}eI;7|a z|Ka(9LVoG9ur;c}&G4T^w4iT00yteYL`WJ~7xN0wg^4lLxGQ^XEa%ngMZh)VRstEp z*_pSbHAT;R%t@F^*Sr95ln@>sDFFjyARteJlV0qzr5TqaioBl0%q5k84&Q!`^ce! z^2aosj$A`~v8L8abj}m_lM-Nqb+<2BTei$3UZY@nby@EaOd0?iSM~B%rX28TL!kYDM zoWBrDQPqt7@@(%OW=FrwxW!5O6S>Re9_)x?7BUA@*n~@Tkh75uB1O_47Z_qI+F<0R zsG%y}$dT-eA6VN)-V~1F@&5Zz-c`I`($sTa64G)C+_&L=ZVQh}yG@K>{%U?SgBaF3 zFPx{f1j-FYd+{aHR(=mT#j|O|g}6u5`;1G#PfSU9pPM*~0xzS0Uy96(MEKxtO;Xz$(O59|95&f3K(3ZHRxbm2p9 zy@9v=p?JKiOG~&w04rxYbmCGnYxi?x!of?*1!nw+Sh}ksGS%#vLtb|<2LV9u9V)bnp; z(fVYGHK~(zf}m>#u%2{DHeus97!nV8dnuS%9!)0+K8#IjVqirZTd<-}Z9!uVHm(s` zegN+^L0@D`T?!xR5Gstsa9_ZXQwQL^hFfE{yIn9vE9`4(#_`ssRqim7wJzS+YWC-4 z(n!;H)vf%|E5*LLew8V@p@u@}gLtAU@`zNN$@RlOe1zEhW-)U1_+{=RC+Rvzx(m!K zG@M>>k@HN8?o{ch3tv;8y!j_B%e07hN|ruYil7A??$0*8xlA+(&r?tnuhg8KuKF1; z88>jvm*5{f*!gC#l-2aPJA9C0|EF$VnK(81jl5ply-^Z5sBb%Wf?T_fl!wnZntG|d zHZ2lbmr@#c%Vvs!IRVmV%0r@<_&c4h-#e!9PJaHYZcmw|JX9#o{rW-2iVwBtAbuF{ zCr#kjA9x*j;z~O!NVbT+N83G}I?}~o7}>`_UiZVI3fNI}dGw?@x`u?nBmIW&7K5(E z6UwrrHVx@!_nd1k-3o}O`8uL-1w4K2YDBP9{E?m^%rV!ThZORj*eK=$**dfAm7V9p zE(3umA<8Sv*kxggPBx?TQ@&}NCE-)1WeOki<{QRD`e%Lbgr)+<3b8!>Rna^b!PnN% zx^1u$55krni}B2vKcBQ>C;??}x~Bu8!n!<+V(!$RhlB_MKvVfrqn1OvUfeI9wpcy( z$vSJmcoXps?C)9{blnEgMsiAuan;sMVBEpij&XH2)Jv%%tw#vptE;gZ*FrQ8Sv}*?*)4mc55VCvM(<@;!9uG zJ6X^4*G;B=vG6j|1v3f|FaJqV|0qHUKR6SrV@Frg4PsR#IAun1k^3)Y^1-Il9ol|= zjxxy1Aw6}!Oq~CEsZmO&5VAZruN)NJKUX$|UY*?9 z@n<+Z`(0sSsItwU3d5xj#rQIYP_%ll>eK;4QF6tc3xqbK;GNn_brLBVdK9-IJ$Qek zYLa!#kT%%!5hV~cD(yTbx@PWe*^%dfWB)Wza;3#a(Yfyw58PqD5HChwa4kc>WK)T3 znL?z|4e|*+qZRUo^I;A?A#@q9oEsBR}N2O2Wa?GZaxi`jA_NDU1XPDyoT&NjShY^ zqf5D%y_A0nqq*^WkI{2tiMa47^735MEEL!xVCt%ow*U7Ya~*ek^Q{8{aWX#wMHHx^ zaPQ>^O%>m0Wcp}{#_yda1}c{wsrRdh%1}W?MjEQqTN&186*0>O8)13lrm&LNbKl@a zv+&40sf-C}(^myGQGDzjET86MUvfaHz&b$StCdnUKU?%EBT@vGy(NSxB)>Xm{e3^S z&wU@iY&ByTR5VahBpYSxd+OGwU1^J1GavyuU5KU(0(QQ1|C27#<`+Ec%ni;aD704e z?Q6qk-;AYroCfi;lx%}-c2@}nu!QO*8L;#Chs}b`-~{jEfi(3|TnPqtztU`p_PCiI zzqUFtLSF9fNR)l$0j?4-pApsMw*;05A3H#tkD1#cd%J*@)>o>z35W}TaHm6euR#JWU)|sq{@4ZI7%Wv+t{)EZ7*8KAJAR+lQ6u) zzX~wuxaX|>$ED#zl;<|7M{<7zD&>*QT3D`iW^$HUWvD^|QQ7v0@7^}^ae1Vo^sRFk zccmLa2wk7uX?s%nkOI!8(Od-3e;-K9XH47-Tn3x>Mt`7q(RibnQOCy!pK@E3>o%Gy zCWtR1M!)_pDq`m|kNT?|d{QJ}5T5%5jparbPG;@X@m7yys`8yfrw_o9if?{=duAw4 zQhjskH~}!D*-CP>FJk8H^t=kNL%*>zr=DBqor|H%gaV+xUG`oZ@5liPQLNMn&O-a$ zHp;iJa)aklg?OgMow)BKjvnu}2m^ulO!QvLD~k1Uu1?Ux&4O`bVR+?nYH|@{f*qBa zP{j}@D?3xg=w*jTU0G(*=zVj7@k!==R%(5>uIYTMx`-Q80#^~IT=C2B4rsk!l)zM! z=d&0#U{8aXKZ`e2>$pc?^fA5zF&B&;xL zmQ$a-rUa{c?7Kc$POX<1`7Es^QlU#X6XC6`k8Z1)UFg-}aWBw_*{RZZVfW!EfiJW! zonneo@;9qIMKf_TSdHC?dy&X#{^^nZLwPMRJN6Mx98!;f8lM^2MY{!7X59D4q zx{gcwcT7~53^hK5QTpNH+pQ_on13|E+KVPqXE;v_GoiMK3mJCYqGaT1dT7{IF{?BodMg#Fv)l{ie)*nHHa0yq^cHW5Ud1! z)A+O_8=PnMn?Npdav^x(hFDx=#$*WW$&tUcc@9yt&?W zN(P(&aWl%%1bW_~8KU$J*=2__rYZEd4M&c%71gS6+NaIP6a!eojziNHjjksimFNt} z$`9evG^@HZ(HcUv!4;D_L7EER#`$0+<~BC_4#A(~O7kHv-MR9!j$%;qyeGf^&HDOo z*m6YHjQ|z|1p%l`Rz(rYQou5cuwXxm?KME|24uN?lBGHAOx_>#ok0sF->9iqwaw$8 zJNtRv^B(P&M;1ga@P4d!<#jFgmkK?H@c}MZy01}2hCrw7x=+ELLZdx}OMm639+qQ` zW40D+7=1up!3>$X5YJwlJDAkj{t3e>SJh*D(!2vWi;&7ktO zU^*&&3UNjeQVYB0*>1%$K9K1sL{aTH*T_YdFR4SNDMMXcs~!P(!J$KQub-Pg-pZ$Q z)nL7BXJ;9pl40@pk#pmTqRv9!-Vt^9Nv|i57ztA_xQh!YS8A374Uv$|2ra&h`vikA8U7>DCIsNdCZ)2qOrkmc-%hj$w;95VF4&H>CBjcVPw1=4KB{?Se;`s1kWc`G+kORENuZ;26re|#)=4`&_rKaI0)OBLx?=%n<+PN02}*i5 zKlmj6Q2J+i-POgK2k3>9VXSL#(xAyWSf8u>BzM|#U%2Ekd{7jVXAT-*;#QvUIHkJc zN`C&lT8KPbgNcKGcd4Dft?5BKaaj6L3Gs6Hh+U4^{vzuQ){SyKfL2WQk-P~1wVD(^ z#ADqj$janHnh)_Io%Q*i!Kbx1&}1cO!hJkI>W{^;gLxQNNoT;kt}tBv)Q{xV$^4!5 zFup6Dv+-x4`D3>l3GcpHIv&?j{{q)AnZ)N-;&!d~0v>Vx=4R~RLBLUo?^dKjs3@8$ zXxO?%0~r?xHhE17#vAJXlEyDD&D-aE;y%0@OB0~ye~b!aa^Dy`RP;3#9oyX7RBfm2 zMab65?jS!L-R<PWf_U)6=m>^a| zh#`S%5;gbA+d{!J$oBKX!?Sl%68TqNWRlTwf`b;2eZiS@%jMna80JHy z;#G1Fm+DMT5XtV1rM|%?hRJCQy@yNHSEuqjFDDHnOkmBD4TC)A(5J!|2=~Q!bpncj z?9Z4@@H2Q+qj3)f%C;dOqLKMTles4!Vu~O)s;fsrx!$4vmw{oigZCcDg9NAhGea*v zzZXRJOm-6{-?O#;NPwQau>YD%sk%;_Oc6fKv4Z_X>8jpU=Z-UGG0rcYs4Gh5z}e%- za~V(b=gvZ5e~cT2U-5=9?@*^U_aqlE8W>CfAbb`A`H!|4JKa)@N@uCI2t0$;aV;UI z*->-+OvUcBFw%_0`eKoEfG!Fn?VyZ&UIocrj&fmN3Jih};H$%G#{ zMm?7Fnol}|`X>bLQSZ2LPkzwX@3z{b>yn$Zm*byq@9PeQBa<6JPjjbJAe`N(1)Kb@ z0sBCN@^wqsj6LnS6UAHUFsRY!m{A6Ue?o!2l;3f|JP9M6-d2Sv{f(P8U$f|YGhL>s z0z+55f0F8a9xc|5vwbJeJ4!*;DVeWmqKkqS_WjIeOUw{6!hxnBEtP(FfUNXr8IR<2 zjM7sUC&^lA7kAn;wufxV9nJ8iH2h^$c*p(OZob9D6Vh30eaK?i;RIKMXNNPE$} z%Ur{q1{umDUot!LXp3BVv{(XSHW^WzpK%d+xEmnatI zI4Pu)=d{@ab(sF-^OeVC+GNrCT1Puc3h_%eptA9zvD0Jjpm;}d*@Oz?xRWs)MJy}qC;u!}| zMRii242S@oA3qPlCXYIj`L6>UvuFvlI+q9CQ)b^0BJGM?>z&x6dy%ow3a450}Wdwt2`~Gy^7?aqDA?u4(Tavtxby9khF5a_^`B7XmzpXTyvpZ z;*AUU1tMDK+Af*xk*b?){23e_)QdapIeEbOeCVaowFT|DeV!TW+Q?JP&$e2bFNg>4 z<~jcCcZ#Gp4th`K5NU5Te2;+WGi&=2%K0^M#Re1bmi#k(%QM!_sS|HSkk_QxtZGHt zeRY7ZDuTH)mT%75l0a-@x!%L{NmlQEfXRM~oYZ4Yu()o&svafh zi%6U*W*z6#iusC<+^3B1rgYvX)1T8Yce_+yv+?CDA-vr~meUZ>8q5k>LRr$$?Vh^l zpbyspop-bzrGM0*8h~q;y$)#Lj#eUT>|07wWA+9#!%n_ru1r6R>Zp-{3(EQ%q}-$J zcM+SkmkFnH57Vx(@UmG$O=DKmT7%@&QUJGEXq0w$Q3j>Wkv_-b56nB+25j6CCjFbU zpSV!s&4WuPzZqmJ`@aa#n-w%0w>cx0zvAl}?S0nVfUUY{CAO2^%(uk|R!gO9gz+8$N)FOoacFM%d7 zE(_qR8}&+{`YS+nC5)a+b)u}vgAl~|78^F#Cg**6iN`80(FxX%I8g%EluDqhA5S29 z#iTShVr)kpvrXxx`b6KBre6&sW@tX6+x#rm`W$s8a~u5=6z{`qZZzA)jprLD`@iKd z>}R~_v!E}&n!uX|q}YCME=Zl{HtMb{U*tB{k9_8FJ|s$W8IbgXoB>r$?{5u2tBvnPVwI>mV7)Qqdg0`8ICl7A9cjYjWjUo)P&1 zZm>j?-Kuc6Lm=vz2VX;NX=GXifTX^Te8En4(v~LNhtfrTc!UAm{@N8dNkNeJHEj_P z@xE1b+>?84!RhCIzOFlkt{O931dzcy90!+`2C($R2WX=*{%(OK~sAFT}VyGT386cvCpSLwmR>0h|eOqA`;@498 zTmlvXy7>bgjNj-)(t-8$!fg#5$} zU*}YOHdj^1o5PX1k2kfbrzuq{;q$XQJy9osP~#%hRUe=A6PXZ6Y_8RblYOmxm&1{X zvtJjW<*wNHfM*)o5j4#xTUEzi6{8-%*1<(l=sM1Q1?<~EWRSz7msPQds*?B?^gkD^-aw;`29y@F!2MijfFqsV{&|M&S>-Z8MBBY|k#s^?-)tJq5X7K6sRA z4ap6EQm@N9tr%6CW#YFx<|{wW*`L+E`y~hX-G>NZ1;97>G=X9oWYcI{{b#>t?&UoM zWpfOhXk@B zrOP2ZEW`(}0awo<6SmHT3e=r_Z8)7#CC&wt0)GOJE2eN+TTgEhlIat1w$Y7tO>l1c ztWzS3h^)YFu-Hka9GG?A)qsT?XE}nGGM}pZXc2`d`2)I+g$=F`AkYFMLJ8xjNKU7L zouu`5j1D~bx)An_R!U=9SO>jeb{EJ?}?csx290OCHq1V0B3lvh!;GH%5M?U5_ zM;5uBgEpBV`mTVZcWLFs29xu1P{cF9C%Zf#J8tcKOI#$@4fLFw+HS5j0bCzc2d;t^ zYeU{MQ^!RL@X};JOgSoJotrq~n(f(6ck5;kUhv{D>e7QYCSK^rN2vb-(+}#UL9fFfuFIi7a~=?My)y<7O% zlJik1hC9wd2W$H@JrCk$5FeSYe~0E=!dRJ*1wRM&LvB!-&QIz&H%VNXaYsoXQ}Aac z^hscOJgIE!ziE*vWq8xN1FR+%utP;cCjI0*e0P%t{SX5@zYiNkza@9L&#Da3Z|m%3 z3U$!?a&~e;km)59jgRDz2>tq2iO}>W^DJfK%A~U7>MYAjOHVV`zM?%XHAlH08VLe} z=s`WWhu1yVeGk50?7MQ=0tZ*Zk`kum=BYq_8$s{Xg9ow#5GYN=I`3@mOj#~!-ycu@ z;@L{|!vSxHD?@&&aR*Nr^0PlA`HqXRbDU3lfqJu(a|j&xZH}}Z?#MdAB*@m?;Kiqt zGstz>GF;Zw=O!Ua*3{ts&G^lo>My0U&+YBv)H{55spo93CT`EN7Aeykt--MvVCF+{ z)QzCDwW6#ETt*gA3EJ}+wF!RVISXA#AwT}lA|{6@M`(8C;9#?+l_1Lz2dZ~(_ALd4 zfRQ08t_;)EXdQN1h$8L+`OTK)=H?S?IBOZfHEAE}vyks?{3M8J1}}WxcO2Pdy1C6e zH)K*7-ajvG@jm@Io6BRzL0Sy8TrW#ywcKmDW=YM=0%U^x#2$PJynzdK3#L9dpN+0^ z9IB4b%iCJ;OD5n)C3jQSa(B{4B5@*-n07@<_ESozIR52K1&X+$a`>;6Ok#mlq9=Ep={T6j^4XSWW& zSnxAkCi3=HEn=&boT)N1&E z79+1j_T+L&=ilw-#>Ylwzh+GE$W&HkMJgXCGwvyB+v4)f(3e$uy$8j*+*~DY(6jxU zx{u_i?jG(DA|q>6>}~h1BN@W0Th@)^?xo`*qbYe^r{3@(XSru&Yl@8yX4#yDLfz8N zYBPUOIUun<-2m1TANF-p^4y8MlG9kfeT5T4tC6>#d|FaF z+IOl$o5dPfdhh4A(oyN$vVB-;J5xymlqOO+o2Yn}5%{|4NWmgvyDny(7f5S_IQ?kNW-O^?oA|6M0b0bb8=3*QT|RnEt4? zTccT@Hho`VrN>*QqB?NyINE}@Hvc-1{EY6c4%~*1B_W|za3^jg1{9WVI zVt-?@@40+0TCa^dNzlDj%t zsGXA&mE00V7Uf*zl}heGh04mX#mEA&6B!mALY)3K3v)+}idJD2i4K6^8v7`ov4% zY_%7q$CgpIukrWlofyvP$@P7mdM72Hk*a^_Llao5;-Iu*DAR|YRD$ZyCOqEdLyu9I z^DEs98T|tmJoJKW7Y+P)N)Q39HCYqMziyhD&#E&$30zyW(?aVOrw6&;di(7-9Wp2Wq4Yi&88zB>zK09dUj2YH$R`Uh*!7^^;Y{N69^N z7Jw3Yf`|EF&QZpv)I9PQX?@M2@E5lNVI&^L8&2rbwy`O`9^BMpW%Nb|Zn~|;*qpq5 zb#eN_(Pr18YbQ5DumwIO^87dVAT5Wb`{`l|j2s_zrWCy(lhYQeG#N>tz9HL7ac%W;eSv$>qvH_QMu z;LfBT$;(&Fx5} z7=dnetDT zKFrV)r;8Rvsk|?H&8DR{H}3WSd!IcuBQ}J&z-zn9p5Oz??~MlJa7H~%h2mxA0QURZ?2>ei0%IFEh!J`eg+_i zv=@DR`>gpunQ8-vO~RyKh5Gm3MRv1YjHP=nISP@C9Gz;mxwHY-6@B0cG) zD9r~CG!eP+RbhWDliRbzAcW=jH{4MgJ2exn;V|0lSsm5NTe7gn`aC6W71J5i!iU)D$U( zQ1C7zTd2*9ca7(SM1StrEeR>pnaQmTH0M%={_X(01NBAnISIDQckv;Yui`^j>NPc5 zdvR!Pa`#nlH%SC$$ScM>=2>#tSPbq!mu6K=r0b-`3TeEGs_RkvX3a%&+rFW2a=|wdc`ThSaRiBlp@#ODgH1bPD6t{MQBy2UlvqshZ$7_ZiJvInoF4IpI z8;<-k>wPl2#eB~dDR!7p4bOhR9);%FK+~i2o8&DQ((*0~#;$!-OIwOTMH5K_BcAX5 z(SB7M=b#`~e{Tvg^;z)0v&D)Rp&ZDx_Yg-@UPyYZHKZK4(W6=|n0=PQ0e12K#Id<1 zW7PITI^#wba75W2a!ppDLcz}?Go4IU^+3`OvrFHHil4RBlp2xx^s6HHF@p6syL6wY0rW(FuUv^dBPCBaJ?b6{&2aQ%o zr-?dzQBBiwgP(WZq52QJiMqM;t2szrxRIWco9i3vwbW5%wAIXJYWtu^Zk61~<<&jk z%s<_=vRX2+sR`smp5}vZGL#wiD(n;6$LmDZ<0bfa4a)XZs}}q*JaYlMbkgOx;e=*& z8MnjPE;Xwl$>-UTAx%CDGPCVW+}j!P*Jad*(wBS5p&?TV^R9;2Il)f|*7pa|Nx!}B z4(yq~w|iBleev4j$uQ-QhCNoc|8pac4#E4Zw|YFvHreGv?7A}Y`M^@v15t|NO}EZw z&*Vs6Pe1Ra9Ob?!9DB#$Eq1@(v7ae*$%f&RIjcSibtYJA#yZRV2SU$|;dnvJ7Fm1O ze+`=(d8*OEZq0K*_vt#KkZY0yjRXWuCxziaLyPOBSWF>nU*Y}CcD}Cm$Rfu=E^^x- zfSwkO&aA!nta49&`sB>O!pqRmKOZFWX2i4-^5iQz6CgnW{Lzi9S{H#%EVF=%($bga zVENGZgpKikJbau00K5P#3=b!Gn5ja>(iD$jEy6h{t+Lte62EzQzDSn*s8XTKQGtRr zm6?z&H%Wp)kWa=6IbLa|xnV@Z0S*ir2?7_}SJpIQQhK%uyWG zds$AVBGCIZDk#nCycf5&PyW7Aqx~y<6&KDAONa}@YpP{x>VVl7Km5-O*Kti2r5hx5 zkf>CD*~zyjLP9(uv!iZAzc()BZzeozWm)l+_Y(}q`MMs0k-BXCQ6C7GC%4@yee2`D zYvW0kTcA}0_Aak#p&(|2~%UMf$!SK-RGZLhVb)x-~tnktp1pRe83Uz z!|={;D@o0tTMo+P#~7Qo|w>keg@^n@4bljoaM1BC*OOlU8@ZFsSYWD5Gy|Q{{qE_ z5>F)K$WfH%AKM=Wv!?iAaT=X(bhWj|uO96i)Z=4^l@0P6YhG(v3F{h>S?(9%LmrnNd~2y6=CKKkf8*tYCy3*q&>U{Z%d_P6+;03L(Gc(_y29uOW}ySYMfS z7x|Fk27woO4hlgJ{^yMFK^`6Q{t+*WkvyAT%`Y)Vw+sI}eZ+H6y8q-n)!#?s@=ufJ6{?bx*W$nVPyDycUo{xP z&$b%O-4o_HWTX_ffP=LyDp1Jt~}s9H=L=Cbz65cu(7C>e{zkd{Nm?%|t1T zta}=xw!vrB+xd_lEhY{iGW_e-Z>d0h+EHDvHI*Lr^Ag2l{%G*S8og#6_>pwCM1%0B zmWKC(Si)m!HbJa|sDI%Z7JS&*B^}aloncd##fi62dL%1Cl%oFOR7Zz~Q1W*!vI0o< z2Cxot{oNhJdIrvF261%)+dGQbe)9NFH3w_a@%y{kHxqZ8IHo@pp*#|%907??KIE-K z|Hj47J$Z%>Fck;!1^#$J0b%G63}5eXi@l$Zy$2^FCL<@A`DQ6P+Wn+oM(R?S9iIBU zf8KTNN!~jgRcIC*J7J2{seeZ})lB>%GyXU-6mClBF}b0gge6QyL*INt#&I)TlU}Sn z<7)i816?XhO142PCiAl6CEtKsO3;%av}pmg1`A* z?onRym2*%FQ`P(6TWWkhW5p#do@9YRwy)j|P=W-?^6vT8te=_{>g$4As8gf{i zvvoV+X=|6&0^ocx2;z6@6~R^sy8)eO~^pS zR|l4P^Jc)xVRSmHhs)M;$g%z2=`o!NhwWrL993sKpBDIty0DJK$CeXGsKz}S4gN86 zz{JFCb5aCG!eCwC?*rLZ`|2mo{>=Ve+Cu8Cjx6JuZVpZ7lP3o%Ika|KjW2$@D%Wd8 zEVc4n7ycO31?7|hU5!GMFwd|%tPVARfh;eQsvlbi4WqCEXTOZ$IJeRWur-}5$z z(qRG8ieivTOA3e}ArcEqFCr}OOWZy+=@sR-Hh3v2F zeXdwmOZQi7h?9ZyF#Ok6_7$}H;X%;NavfkwkW%j;WS`#5$Dy7acMrd)#%P7C?_Ni# znSb=n7u5d*GJ#=L>WDt%kdyZWkaqFqv;XWp0Erq=HC`5sfwpm`xdzAW#0@uPLW9pl zpjBT6mBqQlBLR2tFxaRRBkTlPB>%;d1v>MvhUsIr(iakblEcI1B@W-7y#lt-KM$Pz z7A5Gg38Ik(Hw-ArY;9g!@lGnotj*Eu5>ud2UuDKZhE*o3G|r;UB7Ty0yJ+~#E;lqJ1G=iMuRWcI&RowJtofA(5d||4=#T2i)Jre6W}z@$ga6?R$}T7! z8r-|maJA$|4@Mka%=v>ME(3ERCm$U3U~uPM>DoxyVLA5 z6n*^RSpY;*$s>V}ice@c0@PulsoT6G`A~iINH=egwCf@`m!DAzO~*E z!D!Oeqm{usVLB%}kae8;u>JH)>HUuBwPxPUFDpoUMJ=T6^C0_Igi^&Cxld;RSRybA z*@v%>6d7-%=blZ1)b`$P@yicnm7^&e4u21tIc{#%62YL@c!>?<)^v5)^3bW!eQo4m zNZ2VPBTM_c2nF^E3&Qnd(}mb~2JcAe{Ak6R|f2TONC)V$`k@yWvJ zkq=x=6>DqQ1HXH-qzuV2zIbZhHEzYc&&md?GkXashg|T|pR*6^2lFx~cI~X=pn|); zNyJMz8!wj!x!Jk)sU}piz&7;M9EffM#%s7zgJoZ-p&okuc`Y^B;LEECh3|#Ry5Gnb z|7hr*e(8~0`9LWCkYpk=`ozahb|k`#fz$(PkPxyLyn65Oe&8}zvfxQ-*HrDFlZjM z4D3xEI`|m%C%|BCFKSS3xz*?U;YQo!v=0>D=8fWQ{z^);s<*cExR`Rb}3A=_Qxs(lXIfvmjt z4E1T?y1R9=dl!6iu9jr|NeFJ`dGg2J10EASx5*awqm0vcAYCZ_F&(P;*{miqI=UK||II|jiH)`u!?64;rkDD>hI4p|$Cb!cx3C`H>)3C z7q30}-C46ScrD^pqoTx=Zf3n}LPA{Li{>%2#YHhori0>K`I(xef-Oa_K1=3<;`_+r z?s3Te-AJ7&=9*Eu`FBfY66 zuWt=g{!-%!T8We!tNzF#bfSBr{3tD|C`3A;Mh;}|M5M8oQ8>%0OQDPRPGS-AaQ0$2 zo$a}o&lU0OTUM%dP-z{^y*w|)7Q1CW#uk1Kguz)i9ZE3*b!L^X>L3w z`Xb`sCzComFQJOM1k-Q!CvI0RpGKT;6#bOV>BUTpr(!AM(bA7&L_=XV$f$_2#wmqx-)kI4Ng9oaUNGLXD+q~K&M`*Kc zME~K$rJle8Mt8O%0}S?G7OWp{@~-L_ZNFN$+o^N>+Q;odHD6Ghw`Df~qUf@KOX!#$ z72C@^qGMd3n`5(DD9Vxun7l8rHBg<6Q1N=ce9~HDZD$yHb(`twjJ&kRgOg{>J7QV`%RrvP{LloU=>S#Bhh;}UTX}GGhG@631tJ4v`WQ#)g&+75cyzi7v zaNE?@(eWk{KugUl)72vTV)qqf17)pt$e-7%qYHJ;m;wTpqffe5`XWg;3%`=n{NOW( zDfj1vhH{?PC3Eub$h}|~lUUd4Wp4F-w$Kst0+Q}OjvU@DID2WMyBtnpB&{CWmoGkl{;1}XVU(Pj>G#$-Tvigm=?)C>&DQSBfrql4lCn^;CueR3Y0wzOe?wGGDacu;eTR+cu*{mKgUWG0+ zfNn9DOgEktiiv`+zuTIb25#32&J32`Z{w>)JT9w|M;~?zuGb~hg++T5>68>9Oni-) z-=OLTs@0vH@=;ZtoGI$7(hxc?oQC+P{g*R$$7{f*3G4b-Dn!ScA85JP?yr59d$M5> zZsokVKCb5>$kNO&FyW&I=&^NHXWZCvcF!W;1EdPOG!=)$%u(d3?38hmcYA7w+gt>S z`)mD1_=4?o)exu-1T7*zNGaxEhI)Lf7kBy9{q=27Jz2jWyY3Ak(s##y08QMzKF=x) zDRA#x*b%Nap97SKsb(p|ICnvz6c@2Q29#NB2=pd@c7{9c*yXs=!`sJlT{Cg@3bU7v znZ4coUmDTWjaMB{n$1T4#Ac8?g!_hUwMu?UDDIDgtY=osjtoP>wf)|jQl z07DI%A*KpceqT=oPT6*fQfvgE&z+{MGN1;^wkW({_!|^De4q{}Hs#daZxhM9_e5D) zIb~!cmNrmc%*<&E@G_WpE-f8d_vuotm%69JB!Vo}qxH3%&!v)c4L_I4u%Tr8uT;Pw z^h4CoFdh#6y0I6EomM=X*l|~4Ot~IW*R{l`2S~JOfXk%|kZW5zqn`HLR;9+xEIhY< z=e9W&BHVX}w^V4}9Q~;Z9#nTyisRm)L#Zt9yo4#AIU;;%)-`8yS|sp5xtI5N^U}1V z(1VqsJI~Wi%n;g}t)4d+uBE|zKc70V_{Co*YA2?F$U5r?|eGzfKN+ZSe+% zRjTKGL>GUMxzb0e6F1Yso5m_sb$IR<2s=6JzbBRNzYy77)rmSz_QH>+ah$O*0;7 zF-dpMh?C#(3-%R4(yxElnvEQ)QayO_-QVbf1X!#|;J(WX-?W61ujE;W)Cr|7N{Fkpn#J$AY!astF1ko}xr^;i9MreeXHY{${SKR51jNcp7 zL=244*&^o*d%WuojQ8a@$8m~K7(BX@6`|&B_jQANeWpnIkCS?(_WoMUTmCT!ooIf> z&mE3GY=TU(e)7dSXJHMYewN{fS2Lp&>j0E(LD0vu>Em zSA@z`G>IcXDhJ;;C}tV81zx_SFOYbgw&byZp!NygZK;T03yyI&N3{7_B$P;j*b zrSja_KPJh{*Of?E*ZrW%fU1mMbV7Bta@GNDHRa680ndJs;TG}3p49}Q{IiQOOgY!_ zb$?g6M^#|@Vurk1vX@#aZJ&)zi;E56z6fbG0x$Qa5oHWN)Txaem$?DEmyW4$UKC7N zp;gR-?bEsZ&SG~$)!&*~=3S_&p%r!iR&B|u)>32en5gr(O3#+vYJiR3Kaxy69p~NF zd^1-1SkY_w4zVl*?_)LeQky&T*{%fmm4vzJb8X<95^Uh*k#m zeC}0afZhT9onm{?PjTNTKq3 zrkg(3^wJ(OwY^HvA+iXSmB=V7=7o<#hlz~0ZV!vmQ{M;C_Irsm#n zt%!t4;)gY@w@;W^UF71IwBjbt{zP*oT zvp|oNyjoRRkSvGCncFGPL;4Gy`pH?;aCS>KDONcRe- z^-YuvIwR!I&+!`=^t~i_c~wV!oma-;p~1+e;;PxBjK7;MMR;?&h7!l?gLXyX`$-*m ztjK&s+}r#oSCnU8sdKX5?}?VP`pIE$)x}g>>K1GKe0*#nTAPle)0n$f*zuPMkN`Q0 z&m+~5LHHFpXy$j{8z0|oH65{b{z&i`NY#GauuXDQT$=Cvz(<3zi(k>IHq{Gp0ic-F z&#q+3(J$)alpm!=&4})exVA@VRU}C70mgfIY727yPb^O3uIL=53+IAiL{uK13+63S zI1LWKk3lMgC~&+kh^JJhbxm_@;XQ|a&qbb%EW4S?wy(MBPzy$$!}0mz;}F6=^4O9U z&G638`3cl{#9{dH-KM>Q%@nhUHTBv0%&cCDgS)p&vw5_2qH2Od|Aciov$AbJ^rd)G zo^{4%V_#A(?Zite)J1YABsj!|7KS(Inr;4y8czEK-sycrvzuxS@p zR4gIeKk4*n#KCTjyK((uO?Mbp z;W~P*wf9Z;HmFRc4xQ-wES}6J2^L2bXnLOex2%cJFldC{958Z>1CcFf6Lw_amLjj^ zBLq-wfM|Y>!k<+TjM11^Z!TjAE2QNBT$8uw-)elXvkY_5`u0NP4NB@247#{> zsgjl%c(w&Xfh%2veIrwE#XL)i=fW*VzCk6F~Mk$}u{mhZo=3(8WI(!=S$cdpmC6@nG{`TuYDb z4eIRgq$WkiVaRlS8;;@CbBZugBZC%n;a9^-2sN&W@gH7vo(3sq{JEO(Cb#$r6H|o! zWpxwr)6)<4Ws7fZ1M|*#gS#ro;WV6=^+e2Xwfz0Durwg`w0@`rc=QKM8OLgDMuB5} z;D$=l$uWXKM`wRu!H~nf{wp~0!eN&>sVquNgA$PUNqpxZrX=hLniUA6(m9F~;~#-y z;Jp4nNPJ`p;`iJHF64XHzTY!{V*vxDua7Hn%vygU+vkCYM`P<>WUQVyf_Q@IUm7m&^0>9z< zUD4+}#3SGEZiD-8Gr&KjFvJbzbana#(=W(#W;rdL5^p*Zs`C0Ye7*n{SNm&#bwxLpr&y$9I|eJs9PxACAA! znk+aXRw3jdOE;p0^AB?F`6hZWFp*TKmYbx~{%gCDoNuW?X=}sm)I)9A)V;3i?tvNJ zpk4e@+@ahYar~&}9pQsoU!KmP@IK!}N!QJDpzZdMh4UlqjL%k}{$V<`tg8$GWZ+*v zJb~0MzV_gtw$vY~d(iywOIu)~k6jsk{L2nZ=@@?qOqm6N%QjMi?MGI`$@;iwtsSfO zLVZ2xar(qUHUAc!eT46I291#Er(DaEkT|k_hl1c(_6BO*a@pJoO4bweX29Cr<3#m9@lV zN*dsD2?FWoF!hd2bahQUqB+6Re~=S%no9E{C%SAIbl=JNGBHuI7t-nX*l9AwBryE~ zR~#0yk1R&8TqGd84EE9%9_ukg%bTifR_8VlFN3P(aU_2~Qm4wcS&y}{)3;xL zH%OgzV3)#O2XT>miW=D%n3#}tBZ*8<^)NFd3J?_H|Ll`52ECT0(xY zzh}7Aoey!qz^UPs4Cd)p^XW6%@s)`N>2`r|EnG_kZoy9*)I=Qbb55#_aIf=tnG+*+ zrON69C!h;ZiL(Kjyu%E(?r_9~TG{05+9=3}dhaoGtJqYYWoUoq?2Fd1$jd;BeLwAh zp6N?h`04I$l^AuTX^pb3fTKKs0V2Au(Y-I*s^ zH9oMfqwMs`As~)@B9v@WGbfr!BA=Q1WTAkt?mlPodB+fZp$V;N0-ww*b|q|jt4o7n z>>Ev&e8b4GT93_SeLhei?{V_HK?#e3EjzddH{A- z%W}tkFz)PrPo$olVs`yd%&ZAWc@r-0YrGTk{jBA7V^(R}g*y1=DY9<6Y{@iAf@|k~ zr|U1rtA5DELm7RiFWlxV`3;929==9A{^EWK+B3`%?Qd#*jw2bX=Zhoz+s7Cr^yBG!VFLO7uG)#=?jdW)&q)YI zWj@M>Z_*I9pCDvq6*~}9pvG2aEU*TldprJ6)j>jo$=7b?7O4 z!L(Z14S~LQ7wqvBBODpLjKT@sKY70MX3h5XhjU%n{Fa)C*w1sGDPyJ+c3PKbUGk{Q z%Rhd&w{>CpwG7OP>pN?!TdCHs&Aau(06fRSFgOYMwj4(&>q3?=q~u{fL_V{Md1NoJ z3K0ucbL)4bPfGW7w>s6_D{E+ z`N-|7 zZ`ChNm7TmA9}^fzU?#GLoQ;28yE;`7@AS(NRX7}?19iS1SNE(zXmMx(v!^az$M+Jo zow)CTOtfsJ-+l569PvAiZ!CHS0;LcX#)M3JDj2FX>eS=I&XjyUv}L$j8KV9Pnl4`e zI^(DxV%ojAzu5+Nu*vODnD7o7deLt>9xm5v39?40k}`kChk-^+pQd&gMUS zl~%Y$A=pBBu|PA80tCl`Pha7Cd5(*Xab$v5v)HT?jPOMuf@tD7?xs2GyekgI0+^2PhouZx8P}Cn3O0Vi)eL`2;y`}`o0M{e zk9fT?1TYVK4(7st)^Tw(i?dBHN&^K%xInhA-h!g^9&kjv<<-|>Rpo`3*1C<~Omo*^ zi-fisW2I}JdYTSL7)uxxV$iA)38{9u`S!1FJ$rrdGSU-P9BVnc%fwl9Fase}e4^8j z*h!lZTX(b#e}`#3imhe9K9A6zxgE9%VTmkkB!{=%@Khr5&7{b_%&8IU%7ZpKq4(%I zeS30Yi_-dcu(f=>ORTt^H~9=Y@bo31elveb49~DjH4*Z{W(Z%Sl?{RAC~cynmSkDm zJP3LDSOxo80Tf1<;maU|^xj)Hn3Y^dAW+6JXzb%{Xp=!vR_D==r0q(AsaXSzH>wt( ztpE_iw~!9w?FQWf-+kR(Vr;b(-hUrz{oivI@WD}udTYeg^_Y2oGux) z*BwISF1G}DDT@~%YUv4$?9Fd~ApoB z-{%B4Ue1~J(dW*g6VEas_O{yY!wV3rhiQMn(BatN+DCLdIv;+x@vy=RUk}wB6ih)u z(-pY%y)EcQow6Nj7|zg^MJ*0)i=!bFqq{uf{MRi2E>-k{$idNo4S`>DB{#kFRSU?_CFLFXpDOJ^SlFwy3^aF=rgytYc`FL9VBP{3HBUhIOyo zq7XD6y!-P{ewAyI^JN9K5=V&N+^hm#s2$jNI9+iLD`K)o*>fac+NMr`={G+BZc2=B zz>=b0i9y9nThXAo$cGVcYO88U{P(mR#){g8cN#htLdmEKIn}cU!UiA(93PMK6@f`* zvO*?=*d2W`Fn3h=AcEUj7HXGP5JC%DC4MgUQ`FB<*2VX^q=-@!L1+9)p*>tcZwBh+W7FdF71HvevW>2V63#M?;mvkSM0- z#X_Bza$`>K}=@%)7--+gLydt)7-}Yy3d;;Rg?ZbH=Q*a4$?N8#KR-dpgLK-4OSvj}K=PH|xMDMYvwU8SE#z=g_*5jo}T2 zLGQVsY@4y3>ch+t=5F>1y4JVq8Er10`TwQMmM$bEq+tmnlzNuzbrt+J*s#i42TDVx+rdst4xvxCps z#D<>PuEgcIIUx;A3tFs8W>lORfvHDB3=`_;UR)iTzI>^FeCxmH^*FaZ%jY?_Vt^xaoE5eFL6 zz4*~pHD_IKQM8Alop+FD(frMrS41bcF3l2s`t4?@OZcua^RR-X=W|BaXURV>+}|%{ zKx*8PtTX`=2g7wI>F$3PbyG8c@_pQxt5v*0j*HB!A7slGO6lG~ z=~3Wj+3W~sVcAj@3s%Sg%;76x^1Q(z`w_QhzH{=w4NUm~{Z?LnW$~k<@JyjF?C;gV zdN%$YW>5(Vm7~)9bfti(gKy-ySJ^ALIj6`t0NX zVu?~uVaj8Ch5={l^J##qG&^o5-C861v zvPL#k1pt};A$p$l`fC3W8V%md;il(m^8Sh`2un5 zLM3*zwEm10PcuW!iU@d$${*;sToeHijBnBXZ#Bvhc1QBrG5AokofEuJI5HDIYaSEe zThu0&xS!C_FaJAYuL**)M-8ufJ9YWJY)C3hnot-Sb;j<)3%&NzY8!r!Mvjb(=v@T? z-TS!2kUev*qN2jp<)o*(NJ6KF!-;hCbyi#lg8}w{m~ct}RRw(90?WSa2eqJ899EjY zggYN;5ylm6wO=IL``a3L-wov(@aEQXXpKS97^aX`0!-k|@fy-?2$obmd#jbO4}}NB zS)aP$3|AXyz2M^2ep-_}XtQLQSf{vyjz;rC-TD+OytNu&c2Nt|8G{RQtX-bqTy)mqL30-5cN&I1I~;u*f(3N;D+p;c zDu9>I6sKyq;O`bVqH>2$qxaG%?D$?C2V89Hh4ToWg;_dcmWe*)MoV~w+PqT@D5sDB zeR>bCCHCyv>c%bPVOgYFAL$r*1^mW8g8~@(Vi`)OomvkL409-{3@%XHdTt+tCm485 zciYN&pG^ceaa>^_U=F%$Jh4d2QB!kdNm^Qa zbKwTn8D}{5A0qt~^D3xO@dbvgI8!9BvedEJw8+xcS~*4dEQ{`I0)ppm%|G zC`ir2XGn78%CATIQi8vf+q|*QM8Ta%&*3YBe{8kPjjg?`SBtm`5ZXl|Q}O>e=^3!N zGe0XFvLIwp+X3ipA(swI{ZbhuVMgZNB>y#C&!}v;EVS+2Sz+3aQY1Lxdi&m9xrEqe z`wHGLlei>LNfhwCKKP4TGCQMqkl5%(Q1`}l1?X6-XZ>vm4^q4Z+b7y=IeSb>4mJez zKUaPK_GwH>+lpRX-X+$eT``redZ#j&8KchjU0uy(g*K z-sLkUZWCVVH$ooOjGww!rJ`#J(fH2{S9$yzK3)~8saY$uPud><8JP0ab*y3b_KDf@ zL?rRhloVlid$d>koBF*+8J&hK{F)6CkkO+P?|L&9n&)zrL*Q9u}r8Ra3G{@%AKNYV#~;-dXW}(A#vy+~mmGOrz!I(u4ME zhcDCmv(k56lJ1U4@n5!lJ1uupz&1&6-BjP@<-?vvH80Y637$*0e-bP%jO=Y+pDnt4 zkrdTI-E=|*PGVRxBn|RJ^n;;)GXi!aRt#OzR}*$10v% zkZ*G^^d-qi9LIi1@kWo+LOGFtsqoheRmNIvX?jiL1N#>65EGVigW4&>XqE9qT(p=M=_4A*X zwU6Y4pQ*|E&*WcA6-&IuZ?fx-xSK4GFjHQMNAG>%wEXf`f)qEJOv)ecaq#E(h2Oyb zr)R&a+{Z46y4yKv}p=FVG~Fv@1p4@<8h1vhL;LNuXQ)k>aOWG?UANx15`Z+Xj9 zZ(r}5-cO4*j`lUZDOZ8MYAM1|Dwq263O$v;905o|^@7;D<<{UO*T^HATbT-58s+0ktQr`r2GO}Fc!?{2Tfl?ABK z6+h>&QTP_7o|nJOXjY+&OZT-s9D<0EBZNBJ_a2=*p2CkBxSD;MAKQW+RK0ZpAdu19 zJZ-ys5imk}d8WX%%Yf#cZUDPUj&$Tl=TBi9;m7Q}B}SGU@wsBxKC&uA@I^Vl(*!}TdLT!i(cMbd?%5wOTJ2?Lc#htWa1!_7twtQMGZ_>!EHJkGY{MusE zGlV3pHxhbK>E@D?>V{ZiBt_k%46J|$?w3S0s2s2kr0iX|-4|}obdNI9-axRvfOa7B zn(L5O&b4s)@O`Nz#>64p2aDwxF-x;vmujK6CiD>jBVqnd;rI|va-d(hI8$L$g(v3Y zXNO6%rhr32j&sy;X-DOdSLs;EcSwASnRn&lo!obdvxgxm#acWw)Ni`!clgSit;SZ> zZr+fLXG^Hc!nQ6B!CHPeEkCz@-QmA$X{j8{6!c=|qPuhX_e*;XcRM!(Of*i!VoBhj z&hyhC%9$koP32BQq&zEW7~XXz0w)pv81eKWPwcAU099_wq!!I?QV3T4crEWa1DnZw zsaRwPV|}BY-HnrSJWDuCKJXLgRfwi;qtTc4_nje4+|g)G=@mEAcaZjlI>CmqxjZr# z@0plleJpNa?qT!nDi!+>y_hxi;n?`S-MfJxAD05(UR8^7M?`*q=CPb}6TiG;bvaB! z@KHq_zExb>E+-IM_?q$q30QMn(Zw}Ftgjc$6JiGw)eDJBxc^W>e;z67(Kp}BjnbIx zyIgOue(VP;(2K{L(j<86rk<#GT1p|im4gkNC@z67*26+Y>F6;zWMSbex9;Vq*3GUO zort^aQqr#&o|wMZdtJM=Zb;#iQj95i#l_Bk`Hp1zs~(`ze^_*H`h~NTk1wz9h~d*|QF}~LovoYK!fGo5?!JgIubG~SxmRpqukVO-FX6*O zwMc+TbhjukKp3lkTXia{@Io{rHkrxQG8x~dn8S{kY*Upu9 zxAHNf1x?WTW%3$^ZZ=N6gstLeUrw}&!lt>uAvsutUdQG{rZhQ&{1%MmR-i0XXrWij=yqKFRd7A*>>g%U{ev*4%5o8w(qL=$s%lyV%^vO|l2MlVMi1 z3CD4&#Mr%$8FhoL773u|g!gqLJW7`@Hf9=$Q)33_MzA+CZQfADj$M0fI~Pt>So~bn zdEDYsfOb9JuhngGzG|b+bLj3kf7_a7lWYFW-2zzka?@PwBvl z1ThPt_Vj4ghe|#zVMvES4~_9@7aVegj! zzMjj4y?j(*1~+Z(Z6{84SQL5qiI$6Z2j?FMN63jbUj6*6vkaLeg>$nGPyck=YWP;C zkR_9Q`REl3<6G+X{m%!UDqp?*rRz{jxi4Gj0Wg&K-4wlun46bD8C*Ja% zX_c-t9fsnF1_U*0A09&mXKa7pW+SilVoZ$RE#7ia|xk3K`Jj7+<@?m zdp4L@(+e(1cP$@xk?;{KRNg<6=Klza`cdpRsl`gF-`i>rLHqxZf*hx8avF>#b`d%0m+%BfDV?@`0e2wYNagiT9vOir# zZ_{QNPo!(9==L*`gl#EH-b=d#W8m{w{9Rb%d=YUo?<$7ZLaMdGoC2)x-YF-bCC#6% zA^f_V(Z?bN^byOvl_$(uOb`B2p5I^4eDi!6We@bt{->PiNQv*aPIZ;czq&}RqrXz? zks<8F+P`D}j82Gr)QlEQT$1Cnri|O^%eF0BmCS?NG^SHfgLS3EI`psjA0Kt+SWG6$ zc84X<+=ld)KS_VF=K1*kbFQ1eKk-$+oodP;wX&|q;*vz3l-GM!N8CW9mq}J+ue#{m6MUu=h%M3IY2U17?5 z8CM>(6ginJq_JxUqDfaUUZxu?!ft;*#);&Ho^pglgQsgCPgVZCVplZxEn7x%#z|afSp<87Z;4>p zf1ZE2_s5kWO=NNiglFTChHOWXZ#v zWR*!B>?bz9h3^e}D8>YbkT-H4C(&DXiy)J8JJ;6l@mCG?n=s!(KH;5MRF)2IZfa_z zpANKfe~Hd47^UA=4=g2BxC9guTGFE4VAjRy!zn>Po&V?Vd(h7#r`GrC8@mt z@wCl(p5&%NBhx8*)YxF1pm~b{Le)9yc2Z+igIBa^jc7=9ckiemy>f$^VAIlHuV`PX z^|L%Gx%=1hHxr4m#Aj3|Ba%D?O;55WK5awWYGPf^Gwxb*b;#-x}jU;TSLU{$Mv8@{< z@T@lyV1%keRB!TETVuu~oOTk@yypZg?`w~-?pJSyzOlz!+?j{LaP)9cV>?i2iW zqGN$;qUZ7pS~oHJdWwA#RQ$W_lZ3wRpFI8@5;Xkd-*|SK*;VEi`Twxx-AD^EljM`- z7s-w?GOc~w3r~JI?hB%MxAO)Icr)*nz&O!uO=3%8(!wIT4z^(omEi%|!(ggeeK)E{nKv&t?1LBF-uXj1Kc&oik3u z*edwtV*8<{hMdzpxlh&*mc^4I5Y%7RY(v6-9_SCrQEi%;qwQh?D%EDi*FT6k%b7|b zUA`6xD~(+gCh9TQ5R0dF-A{i!PFG}LLWyUa31JLG&p&8P!O!?fZRb*tI@utO>B#GE^}7C zn8G>*qZlD|RP>}uhh(TTw!ljYm&>Ukgu^;O4<`%diMNJHaR`iC@?0L?mF@{PNd2!w zUC~nQ-zRcC;1@lBNmYJkyZVE;-FoVQKi6$)3yglO43bw<~QZ#Tr>h zNs%jUL+HaCgIJvj*Zvx)B2E{paa4kmEuV zNYx|6iS_Rj9Hywp!wraLt`I+dIGn)RWFzKVDg2tVIMu4065LmqVwZU9;{Pp(qau|f zxpIdhf=vT+_A@LKWZ;N19c8j-B{MS8x@tv@bVHxZGRcf2Y7`x+@kZ2aCm z&ne#GRRldx`KK)pKC)=1*)L$PD++Al$3N+#1`Cf*v{kiplyrRy*BMt zo+1g;MTN^GI5`si{+qHf=*XUVE~K%Qtfv_zoXgTZ$5W5LM+MLw?WG|#QyRww?M&la38t+3^1S4HN&OJm16q9h*_ zUzLd__$AGL(a(PRhbyw=is;`RfW8-ql?(DJyPRRSs@9mL_Q4yZ3wqh?os`x=*lQ0o zlJ_6?Oo}z}Jzc_^3WNM?E9{usq-1213z?Zrz}fpM+$$U7qBVXy=qT5XWl`Rm z0sbcQzokUAyR+MdZLEIG$Ghpd02R^2;Fm?|@kms=$bV;pfdoFl2~!4+X-sz-&%zC@ z$iC=iJ6VmDL}BE!43`Zz>lni-EuJ5)dS;tH?siPCXGj;e!Cfwp|L-UQJC_Q>dtqcj zH>+v(1$?RLtXxf|?&o6+wC?sQ%1YvffUmxEoDJmy?@}3n+%)oK+mJvMUVdYu!jq(s zHKLUQ_Y0!T)zaLP>+Oxs%7j~z{AVelZQhh4-A1#qPU}B9ogO>4L7D0YeljKC83!L~ zXjV@U!6UaV4>?FE19>{Drs6%u^zU=@noM$sI_(&j)b%O{#h1Zm58+^C?|`|M31shBLwJ`bKdY`nks2$QT1XM<^(Xz~NfaFp!8DyFpqM01@f%u@# zNycT_5$EYDnUedNvTeS^_?k`Z(&U{R)@qdd_DL$xxY$1?52rn494*!Xu3Mb%UZv+* zyPW`S9Ybj-gS`HTSc_p5jcDaYR*A8DA$>eQBO_yuyRi=5$uh~r{y!7T zeM`>Wef4Qv9DNSaF7slL*cOo>H7GLj0eLqt&-5cK--wpnZP<81e(k_ug99N}B zH)oqP*hth3`neo|R-P?amBb+~LCy{lds?vfU-5z9N`{aJ93BM_FeS*qyB)5ur}&?m zz7mO6c}jizgYp$hJL)UwdP%k*jky_?V`zWXxUpN?O%1a5JF{K5oE)#>WTK`#&D2!r zCj*gtL}ukHY;|wVtjq3JQw3#S?c2As`xD=L-vlu^Wzu?Aue{0@q#V}tR-v1^FS`rh ztT>w>6V!D@7c#-0j7CrP-KTP$9B3(}`uMGD`1phq_HYK6^Mf@ykw;`LkN~I3CwK zwcI|K5aiiIWQe}#`Xmg~Qb~5^IGZN9FsERPGK?9ySdt$n_z%2qr@A}8Gr!`q5p z@8zk607-jgG-xgF#g7+`@PmP(>q^%p|R*f^N389;f3?1Ukjez zikwoVZ>gW`v&GDO?@zsHNod+5)we_yI*v#!*Atotcn1-@{%hIAe2JJYZa$uA9ukLc zofsQ#ZIX+PMl2|QV=mP9J)fbgVHwYCyb?uOqAqOr_OxZyAJJ=O|AxDLzj@d%bkN!% zNtS_??&8hde|C*;;K{A8XWz9Ns+2fw5fditdU1F2m8<8Nc1F?v*6VetQEg8Q-*&L3 z52~`gkJ#BEeX&|qnD=toJ?on4Z3!pHZi?qKCW0q@0mf{mj4=>oQ8x4VaFgqcS(G(s zTle1oBke7tqWq$_;Th>x2>}I^j-k61q`QWp2aqo54g*j^q?HC~1{gqELb{uw1XQ{u zh6djo_4j|CXRYVU`@WyJ*W8Oa`<#8w*?V96+Iu`rMhSniGgKQziW9_w0I#m@X|0L{aVeb3Oof5GcHHz?|>bq5ltz2%R{>P6hxi3 z@2|G!3N%BdL&XLqC`^{p=3{K0etZFYY>ks105-vb>rEp(hpsNdKb_>>NNWR=`;hu% zeOjG`5DXI*l6^zz4fuK`A#$q}*rdW~b{w^&6o?cY1EcLdl%t@*%qe3GsX)go6Z@$t zmF5}+V>|N0*7T9bGr1ppA8K{oonIZRzJhMvejm{nC)u!FnM2iQc4BB&8Y_|A00>F% zYfJqYQOg>7_ib^mSxKf$JjomJpD%_^zEf#o|LRrTizg{w1R>cS0sUWJwX+@N+5<8c z+=7lq1udH0Le>z$q@}RofQOh4Myw226TD@P{UJUz*t}GK|Aid(nputD66RUENOtgP z7#e*(#?ELc)22?$(&b7&cKyBV0m~7fY%6}DfIdZG*-R;|3wxs0V&`&e@(mQQdXpe1 zTE{jgv_I+#&M+(UJ+Z6z(|nr>sUQTxeRokhO-7>_s)qp`CFBzoQv|_`a1gS9``0@A zs5NKC?i=3OIYGo?{fnb;pVqFoS)Fu0AAz*Nzcsn zTF3q_&2g@U9uu5u;KNaP38WbdZc-kb`(u9ztIG_~Ut|dRf$B?saT6G0@EWrnC9VNQ z0@Af@GT)888*kI?xpJjk2|Dh;rce0y^D<7|WSmitG25@+_ly1tC2IGInVJ8{ue#X~ z16e#*VxTvkBi35%hcEcHS;1Fi=*mYPDow4L6#s-V-Gm7Fd8j`4_wxwJBA6Z?Opf37 z@s#b_y*mpStz*Xz6IhJN#~4NY-3UMZfvRt6can@dF9h9$&tli*Fd!vV@Qrl$-`79L{Io0jFk#Sz!4xXU9VlyM+>lLG z)rzB#QO2OPI|wC@zOq#783zFe)05nMkzsMbeLuZ0aLw-ud=;6x?0@_eS*_+xNu>lt zdP|sBGTd|I8YRMT^7Pmz6F(-$D)=dvmtrNt z?c$U~VNYqM_-BForr11TY~TFK2PKs0d2ZkJx4pet;w*1kXxs#gn;No$Z7Ta z6b7#ZaMc#;mt97(1yyZC6gxQ1jM9t;yuZLplCiHIU1hqa;Z|{qZEoh7ts&@F6CXx4 z;MAyLL-`^`UA$9KGs7j1+IvGx(gbjsv{JLk$=}9}*|KyJURlhq3XK79fa!d3A4QRD zdbfT;Maq}i0?n%H7ZN)!1gUeC`uDE+>1i4H^5knsmII-eAnu-ZX)=XLA&0+O@Yk*> z#)WB5ZCHz>Auw&g$TAmJ0*c8;^6;CT`ec`D&TSxKFu1zWqZB=2^2U`uU)+s->Xn+QY zlDOc4P;reO2wvX26n1^h1(UBO`8-jP2DpK|^pFIHjuC{~q($r-MYZ0P znz-ou;CmAzy$)j~Uz3bAMSi9J9Rj8VzV1$IB|>QFwZn|*%dhC9&;lez1Ih2_v~4&W zLl{7ZXq-m?@PKs#jDS!>%+y4TdwRd{KXGIJ2Qi?gek3ru)5R2oyAw76(7+AC@h6`9 z`*0J_{E3PFKKy@s`v+|S{YeYs0^b0F{0*`J7~ zI(B%k_z~9M7!5#hP^g0TjZ@cR*I(F@xBkYUU}RSH(a_*V1Otj!4C{a9;IIyB=TL^Z zdk}yK{3yj#MsWU2)#=H2H+J+W_X!0upx?f^3@1956|WOccPIILe5m*Ps|*NnQEW55f4c7@A=zvcfIi*lkZ8QXhdHJwLf(SA$@ zUBiBh346PTUA678UT=EN;-VOYXEJrq=F@wnZ{iFs#OFf(k?K;f?XncFQ**G`*d!Q2 zbMt(cMYyMTNyc&r<4Pmy?zkTWn`-^64}t(*RBvabi(;prRf*yrR@t{LKT`G-x-bGm zijBT6mDk9T6W6U{>?^6vw-Gpj!Gkus0@_a3PLgJ4?PiX#mzqaav8Uf`u8J?ki?1NI zCM?ypvxGZmHO2ZDI1W6rn@R_!>v6pu9iB$Qw}I_9TiRP|;$hBPjE{f#5!bE7EQCA; zrW-D)0q&<8vE_`16l55Sc|QqUU2^7+d}GeKnS>nzECW95wnOODoc}36c% zcP2q4Fx|uN1s47#gYPq4=KQLIk(E^T8kNDD6w%E~cg%J;Zo$DwFJ`|0VJE_}Y8t%x zcALy!m%F5J(G8H}+gKNmr0`KLYzrmt5jtdxedm-bePDmmEsFYZV)sZbvH8M|=3J)J z2S|AXxlglSjcOxeihRjtSg*zx45?L!XT{xxuwZYSp&3TxYKW)QB7Y=j&B#jj{vZI- zmkL$pJiltKYYtBQPxzC8ldCFux}a*gS=k~m!a^$=+&{8l&%eAlhcW`gZX{2R+WdJ9 z&x-(VVT6fNFwepuE@as;7(|QE%JE@4UF^M7NeqbP)^?HaX!dAoOZH%cbB1jbh%YmI zp><9r2J)NqnP{8)}K9O>GnmNqf?Z zR0ruITzLn~<)}kAGG#n3g%!+P9t#>CQWeQ33H8PNW^&R$PXViJDajW_6~_tW^L=HP0Zg5yYuIzYrbrdsJA>CC3#7cjG`&f0a_IH} z_oPHm3JHq=wiXM?FdG(xdN}X3a*1qeqT16?$4fd_E4>7gg$BK17RLTh>y`b4OfJr` z7k#~?5zs*lZ<$vg<1I*^y7dZB7`Oz9v8#M4+ukYk!=I!^hHq3vC^$$lOe)H1)gA;? zlLTkW9sD1wn?Q+3LMLG)q2k5h)#ZQ%Y@H=Hn*qT{;N(9BtRpL#W5LL8j<6az zV|hr-tYC=T7dRd|>vbXqPb$Yz9+sNv{P$9$ymv)2+e|hhvc2LUSc4v(KW;l7-P3C3 z_s(io_CZ8&J;_ijwfEu#Ui2S1Kdv}P{*~!4V3MQ-MUT#&06{AXyF#pNU8<@24xJ2K zMB#RlMHtYFKgy>0NT0ULigA5scoWP>ogTjX>@n2p9+>0(bqz5k9E(!|w#*!JX_7V+ zY)eY}(@9EB(VB3rh{E$#t#hJSzF~bdY7BNj3`(*lH_#S!Q;f*Qx)E(cpamOQoFOx> z=-BV7@t;WOfEAJ!A*+0;1hH0jvPnuL;ZCWLY+&=wCMOQ0lm)O=4fKF9a!{y*H_ZzY z#Kcx!y#PUbbZ~~YJ=Bs2VM^5XvKC|U9#*k@$y#{8uL6EgSoWfexcdMbmV0Ti^k5u7 zNIq=l3aP^)37Pgla64!{y0*y_I56ne0p9C{w?Q^pWjeMJD!_B-Q zY$S3ndrzkyCD~C#0=Qh*F*Nm&^kU8bsk{c7!1AFx?|vgoa78++8umgGogFCh38tU5 z_CYuOFClL`m0GqxVTZ`Y@yN9Y>GFkl@Ub*l*x0HN>RAnc65p_pSNWURn-Skn5^sJ^LKa(Rw@$9X4necghyKA zy%x?Y*^jG~X>^o$cAv=~|DcMHQ0k2H1|xM#6kn}>pd|E3y}5o`h>`4>ZIynOea*EG zAEDYGH3t8$tCNo;>EMUHQLZFeQH(h4BLx*q- zn~m?(d+jF2NbpeufKINi0}pKHgImw{HApN*0+Y^=U5#}_KLWg8wS!=(SdbdYFgXfh zA{h+$D6f|ykK(11ii|NHMQo&kV~2&xyFUTb9b{VsksXCV7iAMuGklNnI#UfgE^?`Zh!(+eB&nmIAt~Uoh-=JI3@K*Xxv4 z3NXm{Esn&Dxdi1sD{;eUTJbuePuS8!L~wfX#B^SB`;iu>lvhS_NRrm}>J&0Ujz5Q+ zLjq(C$?dXC^<<4bCXH!*K*It`$igJ+YT~X;YsM`S(>0F!3S@^<})h8uVNL4wsF&F0BG@%t6(WO7a61PU}ucd$PEw zSXEd?673;`OYoBjR}YlD3B#3=J9jA}&PA(OZqPw6Hb1T*_=%}d<_sy9)1w)-@3r89rA)4SdP|A)E|Od zXGQ)e)FLv(uCFU`{4N*SK__Iem_JWYdP$a*s^i$R@0q!U1>X?@)DROpf8f_`@oQfI z1S|$XRTV#-KkI9-#j`?LYu17?-O1D0wxXp zN+g~)nuoqDqzY&QK}@)->NbTb<6I0B_~0+R|789^2q35B!rz<%f4WeV9`Ijy1VnX+ zlX%C+Bs}zHd#Z8RIhIE_|FTyApEQ1%|LZEGw)E)?>%PAS?!Ol-;H~-3PKF_i(&B{q z<3;{HmzC#j!rjYl?Mw7bm(K&%X{ChM*n)pwvObh+VP|t!AEr%w@jZ2!^#iuTVKLcy zd7P}U2txViwStAIreSwlnkPwS^|$t4<9wp@O+Vs_N#ccx#_AZ7LuJXZ>RW zS$(Wsk7=|5y2(I-U;wT99oC+T5nA$#fC6YtT6%PPKeP z=d*0nHxg<-5^Ntd8<`(t2$?7d(wq>7{Fe-U)S4m$LbQ+7ck~LppXb9$II{%Hby;D? zD^Stg(_+l5B~VSPoH#kt%4__d5#7(RM%=*u<|4kLKgf&*S?0IgMfA|?CDs4rqy3Rx z%8uv#Y2^9A)<2e)w8<{qV;Q^hjJ=J29>!fM9J*HjX5q=mK=~9L$;J1(%26>bG_v1A z8JkMpmiTSUr>jsX921N6FT8JP_=3VWwb1r>b!n z+jp>ooOP8L&(0B7~^+-w&Auguelkv@m z6}b`-#_Hvo;_bqmE#G~8$(OL}J2R54>iJZ8-rbiZxq%u0DC6efRk$@5_s{~w@!h1N zO?GO!=8s!ccRsW`oPXLaqqZp&Qj@~Q^79o|a;JXKkbfrl<0HLJN~f`o-}b4%nFmZr z&gYpxs+xBG*L@v}w%k#&?Ct%OFC1u1@_Do2gtknKnEzM~09ztuKvAtfEMWY>k4D$c zkD|JPg2V2~gGNoLhwew~y3937X;Q+z9~W#86akQ3K8D&g9+hc9UT%SBZ`LS2WnHJy zfAeV&I9rPfVdBA^(2y^>J;r0ulhm+-4?qK z*dAj%eiSYK@2rx59E>x`z83~`Xb=k1S*xtRBTxF!N4`$U8zgb{74$Gugjh{QHsM+X z>WvVEU?BFF_V+l})`|JI-suHdu(5P0SXCG*Opb`1>E1aMD#d#%OYQxiGH;`OcC!jMW8W(%kU0Zw~7nB(Z~RkSUbOF;l<6^4Z;Nm8<-& zA~{cmCs<7xH1{q=VhBtt_A?E4_zx?EA_9ti>R{x-tkF5t`rdZhRF1HF-M8Pty*$2M}-s2npa-bN8tAE zFeWc@`6u4U@-*^A0Q{WgXWW^035Yq8o` z)-&PEDbNdfLN~+-Z1BwEnR;8%PRBhm9j87YfpoIf)79$3VEcyS1}YiDP9M`d%z2GF zLDFRlxU;3lnvay)Utu8R&Ie+gTT6bN5|wXjdJ6N&ILKAA&ul*U+=Z|IvxKXpbZK#! za&*BOBiGaKKC-lj}7Zs+Z>~W zR8o!qDGtzaa(<19us1$PK^`m%rHM4&g7urSw7$8SBnfh8GwxQ82p?C*?^gkShJuO5 zKE|-o6K8{3SB+TS{K@;Azni_nG?gCx_R&&+W8)X6JPI(a-P2TiO<|2o2M{g(Zv_Hu zNT5JKwB~;+5ReZK+q-C2pDMWPf>mRsVu|!pG=6A;hl$bcw&W(9_$yR(e2;9#NWXy4ur}{rQa^8K({S$|d_uE>*Bs zjg?GJ1)r%k4&VkDUukX+;WFH8AIVmH`v+2y#fL7$EO$+qCKoEg4o$)*=SBj?tZ6dM zYSSM%)`pEN%NIY73q*KksikuBK8*{*0mH`0kV#7wy+6Jqd2-6SiN#EkA58Q5miKel zoNhc$%Q(p`@eG#d8X~+*&j5jUG~2VD$D{{p^UdUc$e#Un7YJW)5x?4u4SMDz>^%h-RBOg@dv>-R&3LIt^GOIPfvChNu)B00YkOwdYj1M(`s-F1vGgZXL zV)H%Uhebq09?Bkq$?rG%r|&kSbLTb&iNdL|@8mMr^x7^OeF$W#q$(cV0jZSqY`%Za z**$abR}NKCb#l$GhZuKE^Y%5ovlPd{^6;sW23X+80`WXJ`K9C2XfU~I_M?9LMCQ&rtjsL^4Ci-GY zG|x+&Km*lSj5gC7fTe)fhR>yj1o>YtZCV!BJUJ2Qx$5Wc2RU>- z*>ucQ2<7*C$Z!-D)!`3GDq0#T@e7ck*uC#3QckoZy1pIyjlc~qGQrc6?RmFcb4uh{ ziM6dzEe52NUgg(V^QfYZ|B2P_38^ZMtEECI_WBFGf{b!U^PnbiC@-Z zh6YHVdYH-PcMl9w4J2xl_U!YY@yecpzz)|;zj^N4xVM>dC%t*i^gtx5T_V`hEGi3p zQu@aHV}sD8SgV*yxK)fAqg}WdHchUF#lU`UO7;xE68;?VCVVr>Xp&>r(b0ts?)yN2 z!epaq%2&y*yC9i#x(Dbz5uLX8V zghyG=EUgTxmz()5pFVj&%|PAwpsF>e$s--s!*|C++iQAn+A~BB{zMhxNkv{1E=Phg zHBR(b=9R6kFU3(Q>bWcR>Aj%7@YuwHb}PN@QsoGQ!J`n(%-9g=e_K4gW13#W{sk&v za<%OhsXV~#-naSlCdvd4qJ9=ROIS>wMj7(lqI#3Cdc^CjzVhs%;|hASqBF`JrVup`t`d1 zt|DKna>5TYk-B0&EX9z--?N{{a%dXn+e}IAD7s+^%umH$B#_}FrrK`JHarf|p96wntY(>`GO*p=n5U~7H z_cfNv{M_Hg9JZEh{FsC89}@8s7rt?WO3F^NOZ4f!=%F#@V@IsZr_34=!yaK}S5<~E<(VoNzF4O;Vtny#;ZnJk4_I1Vp~+sl1m`fRJs4W^ zDXy9D*Q^^GfrZ>0t8<{rt{lm0#~w=5k8u#j`r<6!>3!rg&xkXr;}Ocfn)tTmGgVvr ztmvr5BzCh|UVm0&M*a(RqDsBjW>VKoEhIJ)D51c{qP2W8L%MWVVv=xh)hi@VFSjkiIk%{ZJVegOEG)ym>9CA%%f>dA zP;6GG5ECLRts-ZILaSP@0~o<9T3Dncz%I zN!hC?2&@|o+>YE1nL}k~4?rJx6m+LKH>gS%GFUq|#vWvbQTQsi5v;K3-b%{OloaK8 zx0K9{QYii_Ti%=P7+!l>fT|8ch&}WL$nP`g2&x)l{a=Mxg2Y*!4g9aWt9?17CI@ay zIS9*sKr~_BZ3yRuc{Hj3H8A7O!_PYMqzF^Khzo!yeuTc7IT+Z=x2qJp!0WHjjr;xP zz2Zaior4^jc5`!b^KfTHesLab@1mRQ)D#`t+! zns=7O4+LaaOgE=_MFe_$8+g<@&VKoqTI~Z>8B>3%GQxf`rM3r>@e8C@=N!eMAG21| z(?E4otB)(uUM9^4L%6V@=2&&LCWyDVgO;}A=z$XImh7Pe2>4k@s4lB=T$)8a)j44C z#d5RdF>r60LvV*Ez>=I%wH$!mkyEa0=p z`gexTHjUkB5pQ;-r>dNuPtF z<3pPC^(rmG?5m)<70)EM9m_q)vz@C@3-6lea)@D(rUj&lp3$hssrm_&hKx>Iwl^63 zU)o~5d7oSaRj6MHT?FoJ0$xX8cihK8d};s(Hi*HS%&c^pT&r;kh8AY2YGRhe?v0wO zz47lPG(V^_@s{c$d<1g%sL&96_GR1nXLvwWYaC}FgY`DR715xHVEkHL7%p3en1RSJ=P)NO02nU4ah zccBA%z^Ufl?KbR+TuWT2!Yf>V0!D>RY)K-%%H`3>Wd>u zhn?W!^hcMnCivKiqxMs`ne~(m9O%ChrH}C_wHI`rfSCVAzz#Oxl7*#D7)eIZiOep; z50|b^pT|A7ZkJHwOl3M8%6#^4#oAF8Daiok%4u+j=RJuF+k3^^WG~^hh>`LSTu8@6 z;KN1JhSbIlt(?g-Ozn-8tuuuH*Qbp6?Gw%Wm1ZhDhYcMidQ3ors^X9x0o}>uVSDg? z>4fYO=EOgUW``c0*y!*wf%ZCA&4C7*t)&U|s)E4w?Cr%6y;+)#*e<3jJc34Q4)d-s zEJe%q-e-n-U;1*(2_vN@)dR5{|0`)AL0)Ta-obY>9Mf-Z;wL)_GJF_j6EoLcM~50< zN4;hZ6rI$Y)An(Ww{yt_&s(kYah%Dz(2*^;Kuw~=ahZkrK9CoP}< z4=8Zx25%t;vPl(bb2gS{wXQUlEJjY*jkZ-wgu{dM+Z~5h7xI=WmTma%P`_w*?PWA` z${*Pt+*fFazOH<=!9w}hF zYpiaY4X;wfLMbUEo=QcO{%I6l?s`I3)6q#To-aojOAjE1w`q!mv zQ@$W_{2~5UcZ#@&1pD$=K5F@IPp!Br>3h_+ge-}R@Bgl7^%H_z3wfhG~8L9*E`AuQf zOkuWJIMSn8UXe81?%8)0Ojiqr1mbcP{+r9}lh*TRZ7*Em)62VOb+^h1d*`L~{Nhr; zD04yS=<=<#y{`V^!4Hv%Q4ZP9jhDU{z2msE9fL)1Pfxe_S;XmUflvR+!P2MM*Xmy+ zNl}+yS{h&;PX|stga-yp&r;Sh7j;z0fcLuf7TDrr6uF;i-~V9tp?iYiE5(vBXi^`) zxty_MqFYH9sr7@~>S_qteI}#4k*_E^

*?09MF5aLk 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 S>Vt625B&WC{#(WjOZ$Jg`d9z} literal 128832 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 From 96547d7f32a9fc497ce95bf98ea94f6b094e60a4 Mon Sep 17 00:00:00 2001 From: "helpcode.ai" Date: Thu, 5 Nov 2026 10:47:32 +0100 Subject: [PATCH 5/5] Document CLI 0.1.4 in the README: --version, shared profiles, read-key exports --- packages/cli/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/cli/README.md b/packages/cli/README.md index 6aa27db94..47431f4b7 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -298,6 +298,7 @@ $ amcp api GET "/api/audit/invocations?status=ERROR&limit=3" \ | `amcp api METHOD PATH [--data JSON\|@file\|-] [--yes]` | Call the management API | | `amcp api --list [RESOURCE]` | List management operations offline | | `amcp completion bash\|zsh\|fish` | Print a shell completion script | +| `amcp --version` | Print the CLI version | Every command accepts `--profile NAME` and `--json`. @@ -321,6 +322,8 @@ For CI, `AMCP_URL`, `AMCP_SERVER` and `AMCP_API_KEY` provide the connection with Profiles live in `$XDG_CONFIG_HOME/amcp/config.json` or `~/.config/amcp/config.json`, with file mode `0600` on Unix. Relative `XDG_CONFIG_HOME` values are ignored. `whoami` shows only a key prefix. +One profile can hold both an MCP key (for `tools`) and a management key (for `api`). Logging in with one keeps the other when both point at the same instance. + ### Tool calls `tools ls` shows each tool's name, its read-only/destructive hint and the first line of its description. `tools describe` shows the full description and input JSON schema. @@ -357,7 +360,7 @@ CLI usage and connection errors go to stderr, also as JSON when `--json` is set, `amcp api` calls the instance's management API (`/api/*`) with a **management-scoped** key. That covers connectors, MCP servers, roles, users, SSO, settings, memory, skills, the knowledge graph and more. It works like `gh api`, but for AnythingMCP. -A management key is an ordinary MCP API key minted with a management scope: `MANAGEMENT_READ` or `MANAGEMENT_ADMIN`. You can mint one from the dashboard or with `POST /api/mcp-keys`. The key carries its owner's identity and role, and it never grants privilege, so admin-only routes still need an admin owner. `MANAGEMENT_READ` keys can only call safe methods (GET/HEAD). +A management key is an ordinary MCP API key minted with a management scope: `MANAGEMENT_READ` or `MANAGEMENT_ADMIN`. You can mint one from the dashboard or with `POST /api/mcp-keys`. The key carries its owner's identity and role, and it never grants privilege, so admin-only routes still need an admin owner. `MANAGEMENT_READ` keys can only call safe methods (GET/HEAD), and connector exports made with them never include secrets, even for an admin owner. ### Getting a management key