From 2c7d9c8424e813a8725068466cde3391cd0ce35f Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 26 Aug 2026 08:53:51 -0700 Subject: [PATCH 01/17] Another commit --- .../hosting/core/app/attachment_downloader.py | 78 +++++++++++++++++++ .../hosting/core/app/input_file.py | 6 +- 2 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py new file mode 100644 index 000000000..391f75f37 --- /dev/null +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py @@ -0,0 +1,78 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +from typing import Callable + +import aiohttp + +from microsoft_agents.activity import ( + Attachment, + Channels, +) + +from microsoft_agents.hosting.core.turn_context import TurnContext +from microsoft_agents.hosting.core.outbound_host_validator import OutboundHostValidator + +from .input_file import InputFileDownloader, InputFile + +class AttachmentDownloader(InputFileDownloader): + + + def __init__( + self, + client_factory: Callable[[], aiohttp.ClientSession] | None = None, + host_validator: OutboundHostValidator | None = None + ): + """Constructor for AttachmentDownloader. + + :param client_factory: A callable that returns an aiohttp.ClientSession instance. + :param host_validator: An optional OutboundHostValidator instance. + """ + + self._client_factory = client_factory or (lambda: aiohttp.ClientSession()) + self._host_validator = host_validator + + async def download_files(self, context: TurnContext) -> list[InputFile]: + """Downloads files for the given turn context. + + :param context: The TurnContext instance for the current turn. + """ + if context.activity.channel_id.get_channel() == Channels.ms_teams: + return [] + + if not context.activity.attachments: + return [] + + files: list[InputFile] = [] + for attachment in context.activity.attachments: + file = await self._download_file(attachment) + if file: + files.append(file) + + return files + + async def _download_file(self, attachment) -> InputFile | None: + """Downloads a single file from the given attachment. + + :param attachment: The attachment to download. + :return: An InputFile instance if the download is successful, None otherwise. + """ + + name = attachment.name + + if attachment.content_url and attachment.content_url.startswith("https://") || attachment.content_url.startswith("http://localhost"): + remote_file_url = attachment.content_url + + if self._host_validator and self._host_validator.enabled and not self._host_validator.is_allowed(remote_file_url): + return None + + async with self._client_factory() as client: + async with client.get(remote_file_url) as response: + + + client = self._client_factory() + + + # Implement the actual download logic here. + # For now, just return an InputFile instance with the attachment. + return InputFile(attachment) \ No newline at end of file diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py index 1a6589d93..02c05941e 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py @@ -1,7 +1,5 @@ -""" -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the MIT License. -""" +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. from __future__ import annotations From 13bf2013011ed07d3609578628c0d04bef5ecc0f Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 26 Aug 2026 15:26:14 -0700 Subject: [PATCH 02/17] Update InputFile and AttachmentDownloader definitions --- .../microsoft_agents/activity/attachment.py | 4 +- .../hosting/core/app/attachment_downloader.py | 73 ++++++++++++++----- .../hosting/core/app/input_file.py | 4 +- 3 files changed, 59 insertions(+), 22 deletions(-) diff --git a/libraries/microsoft-agents-activity/microsoft_agents/activity/attachment.py b/libraries/microsoft-agents-activity/microsoft_agents/activity/attachment.py index af702f5af..51cfa7091 100644 --- a/libraries/microsoft-agents-activity/microsoft_agents/activity/attachment.py +++ b/libraries/microsoft-agents-activity/microsoft_agents/activity/attachment.py @@ -21,7 +21,7 @@ class Attachment(AgentsModel): """ content_type: NonEmptyString - content_url: NonEmptyString = None + content_url: NonEmptyString | None = None content: object = None - name: NonEmptyString = None + name: NonEmptyString | None = None thumbnail_url: NonEmptyString = None diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py index 391f75f37..fa581eee3 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py @@ -2,6 +2,7 @@ # Licensed under the MIT License. from typing import Callable +from email.message import Message import aiohttp @@ -15,16 +16,18 @@ from .input_file import InputFileDownloader, InputFile +_CONTENT_TYPE = "Content-Type" + + class AttachmentDownloader(InputFileDownloader): - def __init__( - self, - client_factory: Callable[[], aiohttp.ClientSession] | None = None, - host_validator: OutboundHostValidator | None = None + self, + client_factory: Callable[[], aiohttp.ClientSession] | None = None, + host_validator: OutboundHostValidator | None = None, ): """Constructor for AttachmentDownloader. - + :param client_factory: A callable that returns an aiohttp.ClientSession instance. :param host_validator: An optional OutboundHostValidator instance. """ @@ -51,28 +54,62 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: return files - async def _download_file(self, attachment) -> InputFile | None: + @staticmethod + def _parse_content_type(content_type: str) -> tuple[str, dict[str, str]] | None: + email = Message() + email[_CONTENT_TYPE] = content_type + params = email.get_params() + if params is None: + return None + # the first param is the mime-type + # the later ones are the attribtues like "charset" + return params[0][0], dict(params[1:]) + + async def _download_file(self, attachment: Attachment) -> InputFile | None: """Downloads a single file from the given attachment. :param attachment: The attachment to download. :return: An InputFile instance if the download is successful, None otherwise. """ - - name = attachment.name - - if attachment.content_url and attachment.content_url.startswith("https://") || attachment.content_url.startswith("http://localhost"): + if attachment.content_url and ( + attachment.content_url.startswith("https://") + or attachment.content_url.startswith("http://localhost") + ): remote_file_url = attachment.content_url - if self._host_validator and self._host_validator.enabled and not self._host_validator.is_allowed(remote_file_url): + if ( + self._host_validator + and self._host_validator.enabled + and not self._host_validator.is_allowed(remote_file_url) + ): return None async with self._client_factory() as client: async with client.get(remote_file_url) as response: - - - client = self._client_factory() - - # Implement the actual download logic here. - # For now, just return an InputFile instance with the attachment. - return InputFile(attachment) \ No newline at end of file + if not response.status == 200: + return None + + content_type_val = response.headers.get("Content-Type", "") + result = AttachmentDownloader._parse_content_type(content_type_val) + if result is None: + return None + content_type, _ = result + if content_type.startswith("image/"): + content_type = "image/png" + + res = await response.read() + + return InputFile( + content=res, + content_type=content_type, + content_url=attachment.content_url, + filename=attachment.name, + ) + else: + return InputFile( + attachment.content, + attachment.content_type, + content_url=attachment.content_url, + filename=attachment.name, + ) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py index 02c05941e..a8fc4e14c 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py @@ -5,7 +5,6 @@ from abc import ABC, abstractmethod from dataclasses import dataclass -from typing import Optional from microsoft_agents.hosting.core import TurnContext @@ -24,7 +23,8 @@ class InputFile: content: bytes content_type: str - content_url: Optional[str] + content_url: str | None = None + filename: str | None = None class InputFileDownloader(ABC): From c593f0e82c863079c628354fd71ebcf5659355e2 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 26 Aug 2026 15:27:03 -0700 Subject: [PATCH 03/17] Utilizing kwarg name --- .../hosting/core/app/attachment_downloader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py index fa581eee3..926735a32 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py @@ -108,8 +108,8 @@ async def _download_file(self, attachment: Attachment) -> InputFile | None: ) else: return InputFile( - attachment.content, - attachment.content_type, + content=attachment.content, + content_type=attachment.content_type, content_url=attachment.content_url, filename=attachment.name, ) From 23d030e32e77285ccc6050caca730b139d0dfd4b Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 26 Aug 2026 15:41:20 -0700 Subject: [PATCH 04/17] Initial of M365AttachmentDownloader implementation --- .../core/app/m365_attachment_downloader.py | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py new file mode 100644 index 000000000..0c1b63202 --- /dev/null +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py @@ -0,0 +1,94 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +from typing import Callable +from email.message import Message + +import aiohttp + +from microsoft_agents.activity import ( + Attachment, + Channels, +) + +from microsoft_agents.hosting.core.authorization import ( + AccessTokenProviderBase, + Connections, +) +from microsoft_agents.hosting.core.turn_context import TurnContext +from microsoft_agents.hosting.core.outbound_host_validator import OutboundHostValidator + +from .input_file import InputFileDownloader, InputFile + + +class M365AttachmentDownloader(InputFileDownloader): + + def __init__( + self, + connections: Connections, + client_factory: Callable[[], aiohttp.ClientSession] | None = None, + host_validator: OutboundHostValidator | None = None, + *, + token_provider_name: str = "", + use_anonymous: bool = False, + scopes: list[str] | None = None, + ): + """Constructor for M365AttachmentDownloader. + + :param connections: A Connections instance. + :param client_factory: A callable that returns an aiohttp.ClientSession instance. + :param host_validator: An optional OutboundHostValidator instance. + :param token_provider_name: The name of the token provider. + :param use_anonymous: Whether to use anonymous access. + :param scopes: A list of scopes for the access token. + :param connections: A Connections instance. + """ + + self._connections = connections + self._client_factory = client_factory or (lambda: aiohttp.ClientSession()) + self._host_validator = host_validator + + self._token_provider_name = token_provider_name + self._use_anonymous = use_anonymous + self._scopes = scopes or [] + + async def download_files(self, context: TurnContext) -> list[InputFile]: + """Download files from the given context. + + :param context: The TurnContext instance. + :return: A list of InputFile instances. + """ + attachments: list[Attachment] + if not context.activity.attachments: + return [] + attachments = [ + att + for att in context.activity.attachments + if not att.content_type.startswith("text/html") + ] + if not attachments: + return [] + + access_token = "" + + if not self._use_anonymous: + token_provider: AccessTokenProviderBase + if not self._token_provider_name: + token_provider = self._connections.get_token_provider_from_activity( + context.identity, context.activity + ) + else: + try: + token_provider = self._connections.get_connection( + self._token_provider_name + ) + except ValueError: + token_provider = self._connections.get_token_provider_from_activity( + context.identity, context.activity + ) + + access_token = await token_provider.get_access_token( + context.identity.get_outgoing_audience(), self._scopes + ) + + files: list[InputFile] = [] From 7da440fa6f94c646f8c674cccf157fff8f284b22 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 9 Sep 2026 08:36:55 -0700 Subject: [PATCH 05/17] AttachmentDownloader implementation --- .../hosting/core/app/attachment_downloader.py | 9 ++- .../core/app/m365_attachment_downloader.py | 66 +++++++++++++++---- .../core/authorization/claims_identity.py | 14 ++++ 3 files changed, 72 insertions(+), 17 deletions(-) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py index 926735a32..a1959017b 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py @@ -1,6 +1,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. +import json from typing import Callable from email.message import Message @@ -9,6 +10,7 @@ from microsoft_agents.activity import ( Attachment, Channels, + ChannelId, ) from microsoft_agents.hosting.core.turn_context import TurnContext @@ -32,7 +34,7 @@ def __init__( :param host_validator: An optional OutboundHostValidator instance. """ - self._client_factory = client_factory or (lambda: aiohttp.ClientSession()) + self._client_factory = client_factory or aiohttp.ClientSession self._host_validator = host_validator async def download_files(self, context: TurnContext) -> list[InputFile]: @@ -40,7 +42,7 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: :param context: The TurnContext instance for the current turn. """ - if context.activity.channel_id.get_channel() == Channels.ms_teams: + if ChannelId.get_channel(context.activity.channel_id) == Channels.ms_teams: return [] if not context.activity.attachments: @@ -107,8 +109,9 @@ async def _download_file(self, attachment: Attachment) -> InputFile | None: filename=attachment.name, ) else: + content = bytes(json.dumps(attachment.content), "utf-8") return InputFile( - content=attachment.content, + content=content, content_type=attachment.content_type, content_url=attachment.content_url, filename=attachment.name, diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py index 0c1b63202..7ec55b90d 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py @@ -45,7 +45,7 @@ def __init__( """ self._connections = connections - self._client_factory = client_factory or (lambda: aiohttp.ClientSession()) + self._client_factory = client_factory or aiohttp.ClientSession self._host_validator = host_validator self._token_provider_name = token_provider_name @@ -58,6 +58,14 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: :param context: The TurnContext instance. :return: A list of InputFile instances. """ + + if not context.identity: + raise ValueError("No valid context identity found.") + + outgoing_app_id = context.identity.get_outgoing_app_id() + if not outgoing_app_id: + raise ValueError("No valid outgoing App ID found.") + attachments: list[Attachment] if not context.activity.attachments: return [] @@ -72,23 +80,53 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: access_token = "" if not self._use_anonymous: - token_provider: AccessTokenProviderBase - if not self._token_provider_name: + token_provider: AccessTokenProviderBase | None = None + if self._token_provider_name: + try: + token_provider = self._connections.get_connection(self._token_provider_name) + except ValueError: + pass + if not token_provider: token_provider = self._connections.get_token_provider_from_activity( context.identity, context.activity ) - else: - try: - token_provider = self._connections.get_connection( - self._token_provider_name - ) - except ValueError: - token_provider = self._connections.get_token_provider_from_activity( - context.identity, context.activity - ) - + if not token_provider: + raise RuntimeError("No valid token provider found.") + access_token = await token_provider.get_access_token( - context.identity.get_outgoing_audience(), self._scopes + outgoing_app_id, self._scopes ) files: list[InputFile] = [] + for att in attachments: + file = await self._download_file(att, access_token) + if file: + files.append(file) + + return files + + async def _download_file(self, attachment: Attachment, access_token: str) -> InputFile | None: + """Download a single file from the given attachment. + + :param attachment: The Attachment instance. + :param access_token: The access token for authentication. + :return: An InputFile instance or None if the download fails. + """ + if not attachment.content_url: + return None + + headers = {} + if access_token: + headers["Authorization"] = f"Bearer {access_token}" + + async with self._client_factory() as client: + async with client.get(attachment.content_url, headers=headers) as response: + if response.status != 200: + return None + content = await response.read() + + return InputFile( + content=content, + filename=attachment.name or "unknown", + content_type=attachment.content_type, + ) \ No newline at end of file diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/authorization/claims_identity.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/authorization/claims_identity.py index 65b529d94..5ed1b33af 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/authorization/claims_identity.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/authorization/claims_identity.py @@ -1,6 +1,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. +import re import warnings from typing import Any @@ -109,6 +110,14 @@ def get_outgoing_app_id(self) -> str | None: return app_id + def get_outgoing_audience_claim(self) -> str | None: + """Retrieves the audience for an outgoing token from the given incoming activity.""" + if self.is_agent_claim(): + return f"api://{self.get_outgoing_app_id()}" + if self.is_gov_botframework_claim(): + return AuthenticationConstants.GOV_AGENTS_SDK_TOKEN_ISSUER + return AuthenticationConstants.AGENTS_SDK_SCOPE + def is_agent_claim(self) -> bool: """ Checks if the current claims represents an agent claim (not coming from ABS/SMBA). @@ -146,6 +155,11 @@ def get_token_audience(self) -> str: else AuthenticationConstants.AGENTS_SDK_SCOPE ) + def is_gov_botframework_claim(self) -> bool: + """Determines whether the specified incoming identity represents a government Bot Framework claim.""" + aud = self.claims.get(AuthenticationConstants.AUDIENCE_CLAIM, None) + return aud.lower() == AuthenticationConstants.GOV_AGENTS_SDK_TOKEN_ISSUER.lower() if aud else False + def get_token_scope(self) -> list[str]: """ Gets the token scope from current claims. From d1bb59f5d53aad7d0b07869736fc6c4338ef0133 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 9 Sep 2026 10:06:27 -0700 Subject: [PATCH 06/17] M365AttachmentDownloader implementation --- .../hosting/core/app/_utils.py | 22 ++++++ .../hosting/core/app/attachment_downloader.py | 17 +---- .../core/app/m365_attachment_downloader.py | 72 +++++++++++++------ 3 files changed, 75 insertions(+), 36 deletions(-) create mode 100644 libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py new file mode 100644 index 000000000..91fa8ea1b --- /dev/null +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py @@ -0,0 +1,22 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +from email.message import Message + +_CONTENT_TYPE = "Content-Type" + +def _parse_content_type(content_type: str) -> tuple[str, dict[str, str]] | None: + """Parses the given content type string into its main type and parameters. + + :param content_type: The content type string to parse. + :return: A tuple containing the main content type and a dictionary of parameters, + or None if parsing fails. + """ + email = Message() + email[_CONTENT_TYPE] = content_type + params = email.get_params() + if params is None: + return None + # the first param is the mime-type + # the later ones are the attribtues like "charset" + return params[0][0], dict(params[1:]) \ No newline at end of file diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py index a1959017b..a8c8c1eac 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py @@ -3,7 +3,6 @@ import json from typing import Callable -from email.message import Message import aiohttp @@ -17,8 +16,7 @@ from microsoft_agents.hosting.core.outbound_host_validator import OutboundHostValidator from .input_file import InputFileDownloader, InputFile - -_CONTENT_TYPE = "Content-Type" +from ._utils import _parse_content_type class AttachmentDownloader(InputFileDownloader): @@ -56,17 +54,6 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: return files - @staticmethod - def _parse_content_type(content_type: str) -> tuple[str, dict[str, str]] | None: - email = Message() - email[_CONTENT_TYPE] = content_type - params = email.get_params() - if params is None: - return None - # the first param is the mime-type - # the later ones are the attribtues like "charset" - return params[0][0], dict(params[1:]) - async def _download_file(self, attachment: Attachment) -> InputFile | None: """Downloads a single file from the given attachment. @@ -93,7 +80,7 @@ async def _download_file(self, attachment: Attachment) -> InputFile | None: return None content_type_val = response.headers.get("Content-Type", "") - result = AttachmentDownloader._parse_content_type(content_type_val) + result = _parse_content_type(content_type_val) if result is None: return None content_type, _ = result diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py index 7ec55b90d..c0bdb62bf 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py @@ -1,14 +1,13 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. -from typing import Callable -from email.message import Message +import json +from typing import Callable, cast, Any import aiohttp from microsoft_agents.activity import ( Attachment, - Channels, ) from microsoft_agents.hosting.core.authorization import ( @@ -19,6 +18,7 @@ from microsoft_agents.hosting.core.outbound_host_validator import OutboundHostValidator from .input_file import InputFileDownloader, InputFile +from ._utils import _parse_content_type class M365AttachmentDownloader(InputFileDownloader): @@ -112,21 +112,51 @@ async def _download_file(self, attachment: Attachment, access_token: str) -> Inp :param access_token: The access token for authentication. :return: An InputFile instance or None if the download fails. """ - if not attachment.content_url: - return None - - headers = {} - if access_token: - headers["Authorization"] = f"Bearer {access_token}" - - async with self._client_factory() as client: - async with client.get(attachment.content_url, headers=headers) as response: - if response.status != 200: - return None - content = await response.read() - - return InputFile( - content=content, - filename=attachment.name or "unknown", - content_type=attachment.content_type, - ) \ No newline at end of file + name = attachment.name + + if attachment.content_url and ( + attachment.content_url.startswith("https://") + or attachment.content_url.startswith("http://localhost") + ): + download_url: str + if isinstance(attachment.content, dict): + content_dict = cast(dict[str, Any], attachment.content) + val = content_dict.get("downloadUrl", None) + if val is not None: + download_url = val + else: + download_url = attachment.content_url + + if ( + self._host_validator is not None + and self._host_validator.enabled + and not self._host_validator.is_allowed(download_url) + ): + return None + + async with self._client_factory() as client: + async with client.get(download_url, headers={"Authorization": f"Bearer {access_token}"}) as response: + if response.status >= 300: + return None + content = await response.read() + result = _parse_content_type(response.headers.get("Content-Type", "")) + if result is None: + return None + content_type, _ = result + if content_type.startswith("image/"): + content_type = "image/png" + + return InputFile( + content=content, + content_type=content_type, + content_url=attachment.content_url, + filename=name, + ) + else: + content = bytes(json.dumps(attachment.content), "utf-8") + return InputFile( + content=content, + content_type=attachment.content_type, + content_url=attachment.content_url, + filename=attachment.name, + ) \ No newline at end of file From 59e9fe40283eee9c581eae7e33b137f8b4f11c50 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 9 Sep 2026 14:28:54 -0700 Subject: [PATCH 07/17] Another commit --- .../microsoft_agents/activity/channels.py | 3 + .../core/app/m365_attachment_downloader.py | 16 +- test_samples/handling_attachments/README.md | 0 .../handling_attachments/env.TEMPLATE | 0 .../handling_attachments/requirements.txt | 5 + .../handling_attachments/src/__init__.py | 0 .../handling_attachments/src/agent.py | 180 ++++++++ test_samples/handling_attachments/src/main.py | 36 ++ .../app/test_attachment_downloader.py | 216 ++++++++++ .../app/test_m365_attachment_downloader.py | 389 ++++++++++++++++++ 10 files changed, 839 insertions(+), 6 deletions(-) create mode 100644 test_samples/handling_attachments/README.md create mode 100644 test_samples/handling_attachments/env.TEMPLATE create mode 100644 test_samples/handling_attachments/requirements.txt create mode 100644 test_samples/handling_attachments/src/__init__.py create mode 100644 test_samples/handling_attachments/src/agent.py create mode 100644 test_samples/handling_attachments/src/main.py create mode 100644 tests/hosting_core/app/test_attachment_downloader.py create mode 100644 tests/hosting_core/app/test_m365_attachment_downloader.py diff --git a/libraries/microsoft-agents-activity/microsoft_agents/activity/channels.py b/libraries/microsoft-agents-activity/microsoft_agents/activity/channels.py index f94e7fe12..51dd50dfe 100644 --- a/libraries/microsoft-agents-activity/microsoft_agents/activity/channels.py +++ b/libraries/microsoft-agents-activity/microsoft_agents/activity/channels.py @@ -70,6 +70,9 @@ class Channels(str, Enum): copilot_studio = "pva-studio" """Microsoft Copilot Studio channel.""" + m365_copilot = f"msteams:COPILOT" + """Microsoft 365 Copilot channel.""" + # TODO: validate the need of Self annotations in the following methods @staticmethod def supports_suggested_actions(channel_id: Self, button_cnt: int = 100) -> bool: diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py index c0bdb62bf..31aef4661 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py @@ -8,6 +8,8 @@ from microsoft_agents.activity import ( Attachment, + Channels, + ChannelId, ) from microsoft_agents.hosting.core.authorization import ( @@ -22,6 +24,7 @@ class M365AttachmentDownloader(InputFileDownloader): + """Downloads attachments from M365/Teams using the configured Token Provider (from Connections).""" def __init__( self, @@ -62,10 +65,13 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: if not context.identity: raise ValueError("No valid context identity found.") - outgoing_app_id = context.identity.get_outgoing_app_id() - if not outgoing_app_id: + outgoing_audience_claim = context.identity.get_outgoing_audience_claim() + if not outgoing_audience_claim: raise ValueError("No valid outgoing App ID found.") + if context.activity.channel_id not in (Channels.ms_teams, Channels.m365_copilot): + return [] + attachments: list[Attachment] if not context.activity.attachments: return [] @@ -94,7 +100,7 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: raise RuntimeError("No valid token provider found.") access_token = await token_provider.get_access_token( - outgoing_app_id, self._scopes + outgoing_audience_claim, self._scopes ) files: list[InputFile] = [] @@ -121,9 +127,7 @@ async def _download_file(self, attachment: Attachment, access_token: str) -> Inp download_url: str if isinstance(attachment.content, dict): content_dict = cast(dict[str, Any], attachment.content) - val = content_dict.get("downloadUrl", None) - if val is not None: - download_url = val + download_url = content_dict.get("downloadUrl", attachment.content_url) else: download_url = attachment.content_url diff --git a/test_samples/handling_attachments/README.md b/test_samples/handling_attachments/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/test_samples/handling_attachments/env.TEMPLATE b/test_samples/handling_attachments/env.TEMPLATE new file mode 100644 index 000000000..e69de29bb diff --git a/test_samples/handling_attachments/requirements.txt b/test_samples/handling_attachments/requirements.txt new file mode 100644 index 000000000..0fc6c7849 --- /dev/null +++ b/test_samples/handling_attachments/requirements.txt @@ -0,0 +1,5 @@ +uvicorn +python-dotenv +microsoft-agents-hosting-core +microsoft-agents-hosting-fastapi +microsoft-agents-authentication-msal \ No newline at end of file diff --git a/test_samples/handling_attachments/src/__init__.py b/test_samples/handling_attachments/src/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/test_samples/handling_attachments/src/agent.py b/test_samples/handling_attachments/src/agent.py new file mode 100644 index 000000000..008ab5888 --- /dev/null +++ b/test_samples/handling_attachments/src/agent.py @@ -0,0 +1,180 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +from dotenv import load_dotenv + +from pathlib import Path + +import os +import base64 + +from microsoft_agents.activity import ( + Activity, + ActionTypes, + Attachment, + AttachmentData, + CardAction, + Channels, + HeroCard, +) + +from microsoft_agents.hosting.core import ( + Authorization, + AgentApplication, + TurnState, + TurnContext, + MemoryStorage, + MessageFactory, + ConnectorClientBase, +) +from microsoft_agents.activity import load_configuration_from_env +from microsoft_agents.hosting.fastapi import CloudAdapter +from microsoft_agents.authentication.msal import MsalConnectionManager + +# Create the agent application + +load_dotenv() + +agents_sdk_config = load_configuration_from_env(os.environ) + +STORAGE = MemoryStorage() +CONNECTION_MANAGER = MsalConnectionManager(**agents_sdk_config) +ADAPTER = CloudAdapter(connection_manager=CONNECTION_MANAGER) +AUTHORIZATION = Authorization(STORAGE, CONNECTION_MANAGER, **agents_sdk_config) + +AGENT_APP = AgentApplication[TurnState]( + storage=STORAGE, adapter=ADAPTER, authorization=AUTHORIZATION, **agents_sdk_config +) + + +# Agent handlers +async def _help(context: TurnContext, _state: TurnState): + for member in context.activity.members_added: + if member.id != context.activity.recipient.id: + await context.send_activity( + "Welcome to the HandlingAttachments Agent." + + "This agent will introduce you to attachments." + + "Please select an option." + ) + await display_options(context) + +AGENT_APP.conversation_update("membersAdded")(_help) +AGENT_APP.message("/help")(_help) + + +@AGENT_APP.activity("message") +async def on_message(context: TurnContext, state: TurnState): + reply = await process_input(context, state) + if reply is not None: + await context.send_activity(reply) + await display_options(context) + +async def display_options(context: TurnContext) -> None: + card = HeroCard( + text="You can upload an image or select one of the following choices", + buttons=[ + CardAction( + type=ActionTypes.im_back, + title="1. Inline Attachment", + value="1" + ), + CardAction( + type=ActionTypes.im_back, + title="2. Internet Attachment", + value="2" + ) + ] + ) + + if context.activity.channel_id == Channels.ms_teams: + card.buttons.append( + CardAction( + type=ActionTypes.im_back, + title="3. Upload Attachment", + value="3" + ) + ) + + reply = MessageFactory.attachment(card.to_attachment()) + await context.send_activity(reply) + +async def process_input(context: TurnContext, state: TurnState) -> Activity | None: + + reply: Activity | None = None + + if state.temp.input_files: + reply = MessageFactory.text(f"There are {len(state.temp.input_files)} attachments.") + image_data = base64.b64encode(state.temp.input_files[0].content) + reply.attachments = [ + Attachment( + name=state.temp.input_files[0].filename, + content_type="image/png", + content_url=f"data:image/png;base64,{image_data}" + ) + ] + else: + reply = await handle_outgoing_attachment(context, context.activity) + + return reply + +async def handle_outgoing_attachment(context: TurnContext, activity: Activity) -> Activity | None: + if not activity.text: + return None + + reply: Activity | None = None + + if activity.text.startswith("1"): + reply = MessageFactory.text("This is an inline attachment.") + reply.attachments = [get_inline_attachment()] + elif activity.text.startswith("2"): + reply = MessageFactory.text("This is an attachment from an HTTP URL.") + reply.attachments = [get_internet_attachment()] + elif activity.text.startswith("3"): + reply = MessageFactory.text("This is an uploaded attachment.") + uploaded_attachment = await upload_attachment(context, activity.service_url, activity.conversation.id) + reply.attachments = [uploaded_attachment] + return reply + +def get_inline_attachment() -> Attachment: + image_path = Path(__file__) / "resources" / "build-agents.png" + image_data = base64.b64encode(image_path.read_bytes()) + + return Attachment( + name="resources\\build-agents.png", + content_type="image/png", + content_url=f"data:image/png;base64,{image_data}" + ) + +async def upload_attachment(context: TurnContext, service_url: str, conversation_id: str) -> Attachment: + if not service_url: + raise ValueError("Service URL is required.") + if not conversation_id: + raise ValueError("Conversation ID is required.") + + image_path = Path(__file__) / "resources" / "agents-sdk.png" + + connector = context.services.get(ConnectorClientBase) + + response = await connector.conversations.upload_attachment( + conversation_id, + AttachmentData( + name="resources\\agents-sdk.png", + type="image/png", + original_base64=image_path.read_bytes() + ) + ) + + attachment_uri = connector.attachments.get_attachment_uri(response.id) + + return Attachment( + name="resources\\agents-sdk.png", + content_type="image/png", + content_url=attachment_uri, + ) + +def get_internet_attachment() -> Attachment: + return Attachment( + name="resources\\introducing-agents-sdk.png", + content_type="image/png", + content_url="https://devblogs.microsoft.com/microsoft365dev/wp-content/uploads/sites/73/2024/11/word-image-23435-1.png" + ) \ No newline at end of file diff --git a/test_samples/handling_attachments/src/main.py b/test_samples/handling_attachments/src/main.py new file mode 100644 index 000000000..14fcdab9b --- /dev/null +++ b/test_samples/handling_attachments/src/main.py @@ -0,0 +1,36 @@ +import os + +import uvicorn +from fastapi import FastAPI, Request + +from microsoft_agents.hosting.fastapi import ( + start_agent_process, + jwt_authorization_decorator, +) + +from .agent import AGENT_APP, CONNECTION_MANAGER + + +if __name__ == "__main__": + + app = FastAPI(title="Empty Agent Sample", version="1.0.0") + app.state.agent_configuration = ( + CONNECTION_MANAGER.get_default_connection_configuration() + ) + + + @app.post("/api/messages") + @jwt_authorization_decorator + async def messages_handler( + request: Request, + ): + """Main endpoint for processing bot messages.""" + + return await start_agent_process( + request, + AGENT_APP, + AGENT_APP.adapter, + ) + + port = int(os.environ.get("PORT", 3978)) + uvicorn.run(app, host="127.0.0.1", port=port) diff --git a/tests/hosting_core/app/test_attachment_downloader.py b/tests/hosting_core/app/test_attachment_downloader.py new file mode 100644 index 000000000..b06e6fbf6 --- /dev/null +++ b/tests/hosting_core/app/test_attachment_downloader.py @@ -0,0 +1,216 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import json +from unittest.mock import MagicMock + +import pytest + +from microsoft_agents.activity import ( + Activity, + Attachment, + ChannelAccount, + ConversationAccount, +) +from microsoft_agents.hosting.core import TurnContext +from microsoft_agents.hosting.core.app.attachment_downloader import AttachmentDownloader +from microsoft_agents.hosting.core.outbound_host_validator import OutboundHostValidator + + +def _make_context( + channel_id: str = "test", attachments: list[Attachment] | None = None +) -> TurnContext: + kwargs = {} + if attachments is not None: + kwargs["attachments"] = attachments + activity = Activity( + type="message", + id="1234", + channel_id=channel_id, + from_property=ChannelAccount(id="user", name="User Name"), + recipient=ChannelAccount(id="bot", name="Bot Name"), + conversation=ConversationAccount(id="convo", name="Convo Name"), + service_url="https://example.org", + **kwargs, + ) + return TurnContext(MagicMock(), activity) + + +class _FakeResponse: + def __init__(self, status: int, content: bytes, content_type: str): + self.status = status + self._content = content + self.headers = {"Content-Type": content_type} + + async def read(self) -> bytes: + return self._content + + async def __aenter__(self) -> "_FakeResponse": + return self + + async def __aexit__(self, *args) -> bool: + return False + + +class _FakeSession: + def __init__(self, response: _FakeResponse): + self._response = response + self.requested_urls: list[str] = [] + + def get(self, url: str, **kwargs) -> _FakeResponse: + self.requested_urls.append(url) + return self._response + + async def __aenter__(self) -> "_FakeSession": + return self + + async def __aexit__(self, *args) -> bool: + return False + + +class TestAttachmentDownloaderChannelAndEmptyCases: + @pytest.mark.asyncio + async def test_returns_empty_list_for_teams_channel(self): + downloader = AttachmentDownloader() + context = _make_context( + channel_id="msteams", + attachments=[ + Attachment( + content_type="image/png", content_url="https://example.org/a.png" + ) + ], + ) + + assert await downloader.download_files(context) == [] + + @pytest.mark.asyncio + async def test_returns_empty_list_when_no_attachments(self): + downloader = AttachmentDownloader() + context = _make_context(channel_id="test", attachments=None) + + assert await downloader.download_files(context) == [] + + +class TestAttachmentDownloaderInlineContent: + @pytest.mark.asyncio + async def test_downloads_inline_content_as_json_bytes(self): + downloader = AttachmentDownloader() + attachment = Attachment( + content_type="application/vnd.custom", + content={"foo": "bar"}, + name="data.json", + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert len(files) == 1 + assert files[0].content == bytes(json.dumps({"foo": "bar"}), "utf-8") + assert files[0].content_type == "application/vnd.custom" + assert files[0].filename == "data.json" + + +class TestAttachmentDownloaderRemoteContent: + @pytest.mark.asyncio + async def test_downloads_remote_file_and_returns_input_file(self): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + downloader = AttachmentDownloader(client_factory=lambda: session) + attachment = Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + name="file.txt", + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert len(files) == 1 + assert files[0].content == b"file-bytes" + assert files[0].content_type == "text/plain" + assert files[0].content_url == "https://example.org/file.txt" + assert files[0].filename == "file.txt" + assert session.requested_urls == ["https://example.org/file.txt"] + + @pytest.mark.asyncio + async def test_allows_http_localhost_urls(self): + response = _FakeResponse( + status=200, content=b"local-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + downloader = AttachmentDownloader(client_factory=lambda: session) + attachment = Attachment( + content_type="text/plain", content_url="http://localhost:3000/file.txt" + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert len(files) == 1 + + @pytest.mark.asyncio + async def test_normalizes_image_content_type_to_png(self): + response = _FakeResponse( + status=200, content=b"\x89PNG", content_type="image/jpeg" + ) + session = _FakeSession(response) + downloader = AttachmentDownloader(client_factory=lambda: session) + attachment = Attachment( + content_type="image/jpeg", content_url="https://example.org/pic.jpg" + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert files[0].content_type == "image/png" + + @pytest.mark.asyncio + async def test_returns_none_for_non_success_status(self): + response = _FakeResponse(status=404, content=b"", content_type="text/plain") + session = _FakeSession(response) + downloader = AttachmentDownloader(client_factory=lambda: session) + attachment = Attachment( + content_type="text/plain", content_url="https://example.org/missing.txt" + ) + context = _make_context(attachments=[attachment]) + + assert await downloader.download_files(context) == [] + + @pytest.mark.asyncio + async def test_skips_disallowed_hosts_when_host_validator_enabled(self): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + host_validator = OutboundHostValidator(enabled=True, hosts=["contoso.com"]) + downloader = AttachmentDownloader( + client_factory=lambda: session, host_validator=host_validator + ) + attachment = Attachment( + content_type="text/plain", content_url="https://evil.example.com/file.txt" + ) + context = _make_context(attachments=[attachment]) + + assert await downloader.download_files(context) == [] + assert session.requested_urls == [] + + @pytest.mark.asyncio + async def test_allows_permitted_hosts_when_host_validator_enabled(self): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + host_validator = OutboundHostValidator(enabled=True, hosts=["contoso.com"]) + downloader = AttachmentDownloader( + client_factory=lambda: session, host_validator=host_validator + ) + attachment = Attachment( + content_type="text/plain", content_url="https://contoso.com/file.txt" + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert len(files) == 1 diff --git a/tests/hosting_core/app/test_m365_attachment_downloader.py b/tests/hosting_core/app/test_m365_attachment_downloader.py new file mode 100644 index 000000000..f9b3396f3 --- /dev/null +++ b/tests/hosting_core/app/test_m365_attachment_downloader.py @@ -0,0 +1,389 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import json +from unittest.mock import MagicMock + +import pytest + +from microsoft_agents.activity import ( + Activity, + Attachment, + ChannelAccount, + ConversationAccount, +) +from microsoft_agents.hosting.core import ( + AccessTokenProviderBase, + ClaimsIdentity, + Connections, + TurnContext, +) +from microsoft_agents.hosting.core.app.m365_attachment_downloader import ( + M365AttachmentDownloader, +) +from microsoft_agents.hosting.core.outbound_host_validator import OutboundHostValidator + + +class _FakeTokenProvider(AccessTokenProviderBase): + def __init__(self, name: str): + self.name = name + self.requested: tuple[str, list[str]] | None = None + + @property + def configuration(self): + return None + + async def get_access_token( + self, resource_url: str, scopes: list[str], force_refresh: bool = False + ) -> str: + self.requested = (resource_url, scopes) + return f"{self.name}-token" + + async def acquire_token_on_behalf_of( + self, scopes: list[str], user_assertion: str + ) -> str: + return f"{self.name}-obo-token" + + +class _FakeConnections(Connections): + def __init__(self, provider: AccessTokenProviderBase | None): + self._provider = provider + + def get_connection(self, connection_name: str) -> AccessTokenProviderBase: + if self._provider is None: + raise ValueError("no connection configured") + return self._provider + + def get_default_connection(self) -> AccessTokenProviderBase: + return self._provider + + def get_token_provider( + self, claims_identity, service_url + ) -> AccessTokenProviderBase: + return self._provider + + def get_token_provider_from_activity( + self, claims_identity, activity + ) -> AccessTokenProviderBase: + return self._provider + + def get_default_connection_configuration(self): + return None + + +def _make_claims_identity() -> ClaimsIdentity: + return ClaimsIdentity(claims={"aud": "test-audience"}, authentication_type="test") + + +def _make_context( + channel_id: str = "msteams", + attachments: list[Attachment] | None = None, + identity: ClaimsIdentity | None = None, +) -> TurnContext: + kwargs = {} + if attachments is not None: + kwargs["attachments"] = attachments + activity = Activity( + type="message", + id="1234", + channel_id=channel_id, + from_property=ChannelAccount(id="user", name="User Name"), + recipient=ChannelAccount(id="bot", name="Bot Name"), + conversation=ConversationAccount(id="convo", name="Convo Name"), + service_url="https://example.org", + **kwargs, + ) + return TurnContext( + MagicMock(), + activity, + identity=identity if identity is not None else _make_claims_identity(), + ) + + +class _FakeResponse: + def __init__(self, status: int, content: bytes, content_type: str): + self.status = status + self._content = content + self.headers = {"Content-Type": content_type} + self.request_headers: dict | None = None + + async def read(self) -> bytes: + return self._content + + async def __aenter__(self) -> "_FakeResponse": + return self + + async def __aexit__(self, *args) -> bool: + return False + + +class _FakeSession: + def __init__(self, response: _FakeResponse): + self._response = response + self.requested_urls: list[str] = [] + + def get(self, url: str, headers=None, **kwargs) -> _FakeResponse: + self.requested_urls.append(url) + self._response.request_headers = headers + return self._response + + async def __aenter__(self) -> "_FakeSession": + return self + + async def __aexit__(self, *args) -> bool: + return False + + +class TestM365AttachmentDownloaderChannelAndValidation: + @pytest.mark.asyncio + async def test_raises_when_context_has_no_identity(self): + downloader = M365AttachmentDownloader(connections=_FakeConnections(None)) + activity = Activity( + type="message", + id="1234", + channel_id="msteams", + from_property=ChannelAccount(id="user", name="User Name"), + recipient=ChannelAccount(id="bot", name="Bot Name"), + conversation=ConversationAccount(id="convo", name="Convo Name"), + service_url="https://example.org", + ) + context = TurnContext(MagicMock(), activity, identity=None) + + with pytest.raises(ValueError): + await downloader.download_files(context) + + @pytest.mark.asyncio + async def test_returns_empty_list_for_non_teams_channel(self): + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")) + ) + context = _make_context( + channel_id="webchat", + attachments=[ + Attachment( + content_type="image/png", content_url="https://example.org/a.png" + ) + ], + ) + + assert await downloader.download_files(context) == [] + + @pytest.mark.asyncio + async def test_allows_m365_copilot_channel(self): + response = _FakeResponse( + status=200, content=b"bytes", content_type="text/plain" + ) + session = _FakeSession(response) + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")), + client_factory=lambda: session, + ) + context = _make_context( + channel_id="msteams:COPILOT", + attachments=[ + Attachment( + content_type="text/plain", content_url="https://example.org/a.txt" + ) + ], + ) + + files = await downloader.download_files(context) + + assert len(files) == 1 + + @pytest.mark.asyncio + async def test_returns_empty_list_when_no_attachments(self): + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")) + ) + context = _make_context(attachments=None) + + assert await downloader.download_files(context) == [] + + @pytest.mark.asyncio + async def test_filters_out_html_attachments(self): + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")) + ) + context = _make_context( + attachments=[Attachment(content_type="text/html", content="

hi

")] + ) + + assert await downloader.download_files(context) == [] + + +class TestM365AttachmentDownloaderInlineContent: + @pytest.mark.asyncio + async def test_downloads_inline_content_as_json_bytes(self): + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")) + ) + attachment = Attachment( + content_type="application/vnd.custom", + content={"foo": "bar"}, + name="data.json", + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert len(files) == 1 + assert files[0].content == bytes(json.dumps({"foo": "bar"}), "utf-8") + assert files[0].filename == "data.json" + + +class TestM365AttachmentDownloaderRemoteContent: + @pytest.mark.asyncio + async def test_downloads_remote_file_using_download_url_from_content(self): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + token_provider = _FakeTokenProvider("p") + downloader = M365AttachmentDownloader( + connections=_FakeConnections(token_provider), client_factory=lambda: session + ) + attachment = Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + content={"downloadUrl": "https://example.org/real-download"}, + name="file.txt", + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert len(files) == 1 + assert files[0].content == b"file-bytes" + assert files[0].content_url == "https://example.org/file.txt" + assert session.requested_urls == ["https://example.org/real-download"] + + @pytest.mark.asyncio + async def test_falls_back_to_content_url_when_download_url_missing(self): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")), + client_factory=lambda: session, + ) + attachment = Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + content={"someOtherKey": "value"}, + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert len(files) == 1 + assert session.requested_urls == ["https://example.org/file.txt"] + + @pytest.mark.asyncio + async def test_normalizes_image_content_type_to_png(self): + response = _FakeResponse( + status=200, content=b"\x89PNG", content_type="image/jpeg" + ) + session = _FakeSession(response) + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")), + client_factory=lambda: session, + ) + attachment = Attachment( + content_type="image/jpeg", content_url="https://example.org/pic.jpg" + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert files[0].content_type == "image/png" + + @pytest.mark.asyncio + async def test_returns_none_entry_for_failed_status(self): + response = _FakeResponse(status=404, content=b"", content_type="text/plain") + session = _FakeSession(response) + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")), + client_factory=lambda: session, + ) + attachment = Attachment( + content_type="text/plain", content_url="https://example.org/missing.txt" + ) + context = _make_context(attachments=[attachment]) + + assert await downloader.download_files(context) == [] + + @pytest.mark.asyncio + async def test_skips_disallowed_hosts_when_host_validator_enabled(self): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + host_validator = OutboundHostValidator(enabled=True, hosts=["contoso.com"]) + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")), + client_factory=lambda: session, + host_validator=host_validator, + ) + attachment = Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + content={"downloadUrl": "https://evil.example.com/relay"}, + ) + context = _make_context(attachments=[attachment]) + + assert await downloader.download_files(context) == [] + assert session.requested_urls == [] + + @pytest.mark.asyncio + async def test_uses_anonymous_mode_without_requesting_token(self): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + token_provider = _FakeTokenProvider("p") + downloader = M365AttachmentDownloader( + connections=_FakeConnections(token_provider), + client_factory=lambda: session, + use_anonymous=True, + ) + attachment = Attachment( + content_type="text/plain", content_url="https://example.org/file.txt" + ) + context = _make_context(attachments=[attachment]) + + files = await downloader.download_files(context) + + assert len(files) == 1 + assert token_provider.requested is None + + @pytest.mark.asyncio + async def test_uses_named_token_provider_when_configured(self): + named_provider = _FakeTokenProvider("named") + downloader = M365AttachmentDownloader( + connections=_FakeConnections(named_provider), + client_factory=lambda: _FakeSession( + _FakeResponse(status=200, content=b"bytes", content_type="text/plain") + ), + token_provider_name="named-connection", + ) + attachment = Attachment( + content_type="text/plain", content_url="https://example.org/file.txt" + ) + context = _make_context(attachments=[attachment]) + + await downloader.download_files(context) + + assert named_provider.requested is not None + + @pytest.mark.asyncio + async def test_raises_when_no_token_provider_can_be_resolved(self): + downloader = M365AttachmentDownloader(connections=_FakeConnections(None)) + attachment = Attachment( + content_type="text/plain", content_url="https://example.org/file.txt" + ) + context = _make_context(attachments=[attachment]) + + with pytest.raises(RuntimeError): + await downloader.download_files(context) From 9388c0bb1ce3321320b86993ef9834953d73caed Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Wed, 9 Sep 2026 14:37:07 -0700 Subject: [PATCH 08/17] Adding AttachmentsBase.get_attachment_uri method --- .../core/connector/attachments_base.py | 4 +++ .../core/connector/client/connector_client.py | 29 +++++++++++++++++++ .../connector/mcs/mcs_connector_client.py | 8 +++++ .../connector/test_connector_client.py | 28 ++++++++++++++++++ 4 files changed, 69 insertions(+) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py index ea9d2b9c8..ea7ad2eb9 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py @@ -15,3 +15,7 @@ async def get_attachment_info(self, attachment_id: str) -> AttachmentInfo: @abstractmethod async def get_attachment(self) -> Optional[AsyncIterator[bytes]]: pass + + @abstractmethod + async def get_attachment_uri(self, attachment_id: str, view_id: str = "original") -> str: + return \ No newline at end of file diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/client/connector_client.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/client/connector_client.py index 484077553..3b19b1827 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/client/connector_client.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/client/connector_client.py @@ -146,6 +146,35 @@ async def get_attachment(self, attachment_id: str, view_id: str) -> BytesIO: data = await response.read() return BytesIO(data) + async def get_attachment_uri( + self, attachment_id: str, view_id: str = "original" + ) -> str: + """ + Gets the URI of an attachment view. + + :param attachment_id: The ID of the attachment. + :param view_id: The ID of the view, defaults to "original". + :return: The URI of the attachment view. + """ + if attachment_id is None: + logger.error( + "AttachmentsOperations.get_attachment_uri(): attachmentId is required", + stack_info=True, + ) + raise ValueError("attachmentId is required") + if view_id is None: + logger.error( + "AttachmentsOperations.get_attachment_uri(): viewId is required", + stack_info=True, + ) + raise ValueError("viewId is required") + + base_url = str(self._client._base_url) + if not base_url.endswith("/"): + base_url += "/" + + return f"{base_url}v3/attachments/{attachment_id}/views/{view_id}" + class ConversationsOperations(ConversationsBase, _BaseClient): diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py index 95ddd4d54..5c659755c 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py @@ -194,6 +194,14 @@ async def get_attachment(self, attachment_id: str, *args, **kwargs) -> bytes: "GetAttachment is not supported for Microsoft Copilot Studio Connector" ) + async def get_attachment_uri( + self, attachment_id: str, view_id: str = "original", **kwargs + ) -> str: + """Not supported for MCS Connector.""" + raise NotImplementedError( + "GetAttachmentUri is not supported for Microsoft Copilot Studio Connector" + ) + class MCSConnectorClient(ConnectorClientBase): """ diff --git a/tests/hosting_core/connector/test_connector_client.py b/tests/hosting_core/connector/test_connector_client.py index 013b3d59d..ff3d4c86e 100644 --- a/tests/hosting_core/connector/test_connector_client.py +++ b/tests/hosting_core/connector/test_connector_client.py @@ -439,6 +439,34 @@ async def content_handler(request): assert info.views == [{"viewId": "original"}] assert content.read() == b"attachment bytes" + @pytest.mark.asyncio + async def test_get_attachment_uri_builds_view_url(self): + client = ConnectorClient("https://example.org/", token="") + try: + uri = await client.attachments.get_attachment_uri("attachment-1") + uri_with_view = await client.attachments.get_attachment_uri( + "attachment-1", "thumbnail" + ) + finally: + await client.close() + + assert uri == "https://example.org/v3/attachments/attachment-1/views/original" + assert ( + uri_with_view + == "https://example.org/v3/attachments/attachment-1/views/thumbnail" + ) + + @pytest.mark.asyncio + async def test_get_attachment_uri_requires_attachment_id_and_view_id(self): + client = ConnectorClient("https://example.org/", token="") + try: + with pytest.raises(ValueError): + await client.attachments.get_attachment_uri(None) + with pytest.raises(ValueError): + await client.attachments.get_attachment_uri("attachment-1", None) + finally: + await client.close() + @pytest.mark.asyncio @pytest.mark.parametrize("status", [302, 400, 500]) async def test_unexpected_response_status_raises_client_response_error( From 9e1c66eebb92fd8c4978aedf5e264eb98d1c2b27 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Thu, 10 Sep 2026 06:02:04 -0700 Subject: [PATCH 09/17] Adding AttachmentsBase.get_attachment_uri method --- .../hosting/core/connector/attachments_base.py | 4 ++-- .../core/connector/client/connector_client.py | 15 +++++++++------ .../core/connector/mcs/mcs_connector_client.py | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py index ea7ad2eb9..b85a35123 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py @@ -17,5 +17,5 @@ async def get_attachment(self) -> Optional[AsyncIterator[bytes]]: pass @abstractmethod - async def get_attachment_uri(self, attachment_id: str, view_id: str = "original") -> str: - return \ No newline at end of file + def get_attachment_uri(self, attachment_id: str, view_id: str = "original") -> str: + pass \ No newline at end of file diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/client/connector_client.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/client/connector_client.py index 3b19b1827..825da3bc5 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/client/connector_client.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/client/connector_client.py @@ -8,6 +8,7 @@ from typing import Any, Optional from aiohttp import ClientSession from io import BytesIO +from urllib.parse import quote from microsoft_agents.activity import ( Activity, @@ -146,9 +147,7 @@ async def get_attachment(self, attachment_id: str, view_id: str) -> BytesIO: data = await response.read() return BytesIO(data) - async def get_attachment_uri( - self, attachment_id: str, view_id: str = "original" - ) -> str: + def get_attachment_uri(self, attachment_id: str, view_id: str = "original") -> str: """ Gets the URI of an attachment view. @@ -156,13 +155,14 @@ async def get_attachment_uri( :param view_id: The ID of the view, defaults to "original". :return: The URI of the attachment view. """ - if attachment_id is None: + if not attachment_id: logger.error( "AttachmentsOperations.get_attachment_uri(): attachmentId is required", stack_info=True, ) raise ValueError("attachmentId is required") - if view_id is None: + + if not view_id: logger.error( "AttachmentsOperations.get_attachment_uri(): viewId is required", stack_info=True, @@ -173,7 +173,10 @@ async def get_attachment_uri( if not base_url.endswith("/"): base_url += "/" - return f"{base_url}v3/attachments/{attachment_id}/views/{view_id}" + return ( + f"{base_url}v3/attachments/{quote(attachment_id, safe='')}" + f"/views/{quote(view_id, safe='')}" + ) class ConversationsOperations(ConversationsBase, _BaseClient): diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py index 5c659755c..707bc5c29 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/mcs/mcs_connector_client.py @@ -194,7 +194,7 @@ async def get_attachment(self, attachment_id: str, *args, **kwargs) -> bytes: "GetAttachment is not supported for Microsoft Copilot Studio Connector" ) - async def get_attachment_uri( + def get_attachment_uri( self, attachment_id: str, view_id: str = "original", **kwargs ) -> str: """Not supported for MCS Connector.""" From af08cec057a2e53cba79af92cc242388fff5584c Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Thu, 10 Sep 2026 06:25:40 -0700 Subject: [PATCH 10/17] Sample and formatting --- .../hosting/core/app/_utils.py | 3 ++- .../core/app/m365_attachment_downloader.py | 25 +++++++++++++----- .../core/authorization/claims_identity.py | 6 ++++- .../core/connector/attachments_base.py | 2 +- .../handling_attachments/env.TEMPLATE | 5 ++++ .../resources/agents-sdk.png | Bin 0 -> 109500 bytes .../resources/build-agents.png | Bin 0 -> 157092 bytes .../resources/introducing-agents-sdk.png | Bin 0 -> 136985 bytes .../handling_attachments/src/agent.py | 5 +++- test_samples/handling_attachments/src/main.py | 1 - .../app/streaming/test_streaming_response.py | 4 +-- .../connector/test_connector_client.py | 24 ++++++++++++++--- 12 files changed, 56 insertions(+), 19 deletions(-) create mode 100644 test_samples/handling_attachments/resources/agents-sdk.png create mode 100644 test_samples/handling_attachments/resources/build-agents.png create mode 100644 test_samples/handling_attachments/resources/introducing-agents-sdk.png diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py index 91fa8ea1b..2bd859082 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py @@ -5,6 +5,7 @@ _CONTENT_TYPE = "Content-Type" + def _parse_content_type(content_type: str) -> tuple[str, dict[str, str]] | None: """Parses the given content type string into its main type and parameters. @@ -19,4 +20,4 @@ def _parse_content_type(content_type: str) -> tuple[str, dict[str, str]] | None: return None # the first param is the mime-type # the later ones are the attribtues like "charset" - return params[0][0], dict(params[1:]) \ No newline at end of file + return params[0][0], dict(params[1:]) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py index 31aef4661..80f47d1fa 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py @@ -69,7 +69,10 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: if not outgoing_audience_claim: raise ValueError("No valid outgoing App ID found.") - if context.activity.channel_id not in (Channels.ms_teams, Channels.m365_copilot): + if context.activity.channel_id not in ( + Channels.ms_teams, + Channels.m365_copilot, + ): return [] attachments: list[Attachment] @@ -89,7 +92,9 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: token_provider: AccessTokenProviderBase | None = None if self._token_provider_name: try: - token_provider = self._connections.get_connection(self._token_provider_name) + token_provider = self._connections.get_connection( + self._token_provider_name + ) except ValueError: pass if not token_provider: @@ -98,7 +103,7 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: ) if not token_provider: raise RuntimeError("No valid token provider found.") - + access_token = await token_provider.get_access_token( outgoing_audience_claim, self._scopes ) @@ -111,7 +116,9 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: return files - async def _download_file(self, attachment: Attachment, access_token: str) -> InputFile | None: + async def _download_file( + self, attachment: Attachment, access_token: str + ) -> InputFile | None: """Download a single file from the given attachment. :param attachment: The Attachment instance. @@ -139,11 +146,15 @@ async def _download_file(self, attachment: Attachment, access_token: str) -> Inp return None async with self._client_factory() as client: - async with client.get(download_url, headers={"Authorization": f"Bearer {access_token}"}) as response: + async with client.get( + download_url, headers={"Authorization": f"Bearer {access_token}"} + ) as response: if response.status >= 300: return None content = await response.read() - result = _parse_content_type(response.headers.get("Content-Type", "")) + result = _parse_content_type( + response.headers.get("Content-Type", "") + ) if result is None: return None content_type, _ = result @@ -163,4 +174,4 @@ async def _download_file(self, attachment: Attachment, access_token: str) -> Inp content_type=attachment.content_type, content_url=attachment.content_url, filename=attachment.name, - ) \ No newline at end of file + ) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/authorization/claims_identity.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/authorization/claims_identity.py index 5ed1b33af..9f76414eb 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/authorization/claims_identity.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/authorization/claims_identity.py @@ -158,7 +158,11 @@ def get_token_audience(self) -> str: def is_gov_botframework_claim(self) -> bool: """Determines whether the specified incoming identity represents a government Bot Framework claim.""" aud = self.claims.get(AuthenticationConstants.AUDIENCE_CLAIM, None) - return aud.lower() == AuthenticationConstants.GOV_AGENTS_SDK_TOKEN_ISSUER.lower() if aud else False + return ( + aud.lower() == AuthenticationConstants.GOV_AGENTS_SDK_TOKEN_ISSUER.lower() + if aud + else False + ) def get_token_scope(self) -> list[str]: """ diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py index b85a35123..c26410289 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/connector/attachments_base.py @@ -18,4 +18,4 @@ async def get_attachment(self) -> Optional[AsyncIterator[bytes]]: @abstractmethod def get_attachment_uri(self, attachment_id: str, view_id: str = "original") -> str: - pass \ No newline at end of file + pass diff --git a/test_samples/handling_attachments/env.TEMPLATE b/test_samples/handling_attachments/env.TEMPLATE index e69de29bb..df82361bd 100644 --- a/test_samples/handling_attachments/env.TEMPLATE +++ b/test_samples/handling_attachments/env.TEMPLATE @@ -0,0 +1,5 @@ +CONNECTIONS__SERVICE_CONNECTION__SETTINGS__CLIENTID= +CONNECTIONS__SERVICE_CONNECTION__SETTINGS__CLIENTSECRET= +CONNECTIONS__SERVICE_CONNECTION__SETTINGS__TENANTID= + +LOGGING__LOGLEVEL__microsoft_agents.hosting.core=INFO \ No newline at end of file diff --git a/test_samples/handling_attachments/resources/agents-sdk.png b/test_samples/handling_attachments/resources/agents-sdk.png new file mode 100644 index 0000000000000000000000000000000000000000..363d24ee0651e2cabf8c550c2771babd07ae80ff GIT binary patch literal 109500 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

?M0IJ}1$K9|k^_+JyegjcsWrc5zWo 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 v6>x#ZRlUxqLQ;7&Lv2^mqiV;E!1` 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≺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

|sflqt_Q!)_y0g-TTPaVhZ|SF9_Jkgxv3&AUbEm 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∋+p0|cW#18gekemDbUGqbj1mLwoRSx_vPX?SO z^PVR~T1WWyXvO*ATSN4QYt#uKi1JQqtEEh5eZz^u;bs%f4tTw$g4FE=2w0y;+7ni! zqml^^!QMc3LAyKgZws_|K8$VpfZQ*}OjSQ_IWx{U2fzbglJ5LKd^TP9{E&teNn<7Y zVxNv0?ZZQWg|ovanR9@P8vyF_C${tbqxm1aj-;WAeKs+` zFTPR!=kq`C!Ap9o;!pfvO#iE|4#@0jQU^sU!xXp a&*)FG*C2u63NQa@t|yuXkKpRh-uwp$u+LKf literal 0 HcmV?d00001 diff --git a/test_samples/handling_attachments/resources/introducing-agents-sdk.png b/test_samples/handling_attachments/resources/introducing-agents-sdk.png new file mode 100644 index 0000000000000000000000000000000000000000..9e6e46f807d9bbb404a78eef0082019c8d0bc0e2 GIT binary patch literal 136985 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�T*n`ev7y=4X@eM?4qyz;AoW_Ff~GK4iF7SM1;?d< zSyxIb?yF-}q}vgqGxdQTDGrMFcuwy6hKkxpat^(jD2?LBB^aECb=UXNTmKf$r}y|k zr<{`i{EyS=f)bN;!ulW~#bGIXhLU5`<;-XiDax(Zj9|Lar6jmZCRrwIFAj*d_wm~B zUkan6@X53VxrG{8^SHOyk(=aTWJMOWJy!%keU!iyc+1(B+g}vQ$XXDrHTye9&^r`2 zoy6FeVXVW6uN#G{Twm6kks0q&5nuej1o_bHT@dp8SJk zr`Oh^nhsOE?+#Ny9|tLMEHeP50L&0%$1u7@i1>Coi>1~*LKh5Bx_z2myO zIWF`pZ+7YlED4dwzQIiw`KyE0@MT6(pPe+Fdx%@q$YR9ItCV%g;==Hg3?`#ccCjq7NwYDL~C(oIu?-_U4ryp(y~}uo?hE)Iiw41h*C^@l$Q1nUhV5i6pV^Z3e>8b0Hv{~87vk40 zEKU81sc4KktYnADc0{*#4Zk~Y$B>?MxeqthlG*+KQ4E&~Ajr%e(}bJWCW|bqF2}k-{HuroDE9uEP z@h11-@&OJt-SWLpQEk`J+)5BgT$J}Q5pJ9w;D(A#CM@|+EYF!_Ts#0G zfZM0Ycg$>E$>=fgMMH|5auh|MP%WHEXA8_FqV zed~gNF-vU+P}M72dbGtZOAK*tRPc-N7`@H)R{*<9cB}uFfo65!Mnrtd0k{dcIK*N) zZ4jP)LM5a(tmq0uOMcJSTn@$D@VPZ%1~8LNghWB&!$+I9Aace!tL1_5tl1%hUS zf2AQEc)&-g%6Z^XJIlN87vAAwZ&c9|6UAx-<6l;PB*+E}jso*acQWpal-T1et~P1_8xP;^?*HLz@Z)h7*i44YP6qu)oH(_ zi>P|6&GQe$fPhAL!_}_{bs$FzJ+Qk+@yW%%4H}*FgNp9-nGkigc_e5ACP{h!Q#!H| ztSM?U^i~N;Y3mfioOhDd5IK(Rj4C}{RgE&H`^Z9cv##d-1%8g*IxT4glePe@PR-SN zfgrbS9wFBKvqlSAdi4~<#aBYiG^wGC{G7Ov6DMG42k9|OYbJp85uxir-2)!Z;=|=( z01Zz$PsB_8_$;TzU%mJk?s!5SZ!DZC&N9R2FBdY(0dn>*iQmo(Ss7i|a~iq;jm>le z1~~M8GT++-`}T%!t&9f-YprPQQBHwZfWaU%%YoeE$5{_#%R|T`kzOcRIwy8Z4x08} zdiHPW6pH(mQ02kwlI`K|&%+^7<7@9{m|W~0FS(e4+U*$#I4K!pxCw0@z} z23IP2YhQP=3Nbv(wIDzw_TjMA3uNY?Orkm?xks!EI8ByY}+EI=X zD}aq%-FIDctaj!AYRvGaN({s2$X?snC%M z&&=)BRvucc&}v&fPMj-2+xd93w5|k?u-uZoOyshJVIsq6ArUY&=osw2&L_` z4080NsIH=pZAar#Rq0hG^}fxzd~}Z%#I%MDP4aR2x3-p*6!kH zVQF7sa=?e%qSAd|^yKNed9T!@STULBf%PMS)I zj?z#FMHn7*X+|p-e`xJWDhhoGcJWRQB{rDEq)4VO@IHdYqUX$nb@*MrRu_apFrW#D zvM9CgI%@vCizK>Tf(M?BLJXhrSG%`lp9VU_5>PWKXbwf{zi+wKK42N(rrka=@viMt zjgcZpI<)@FF@v0zUv1Bw)3@tjDMOB4yC`9s^%CQiO~wKlA*0BN!5{FO(M!^3xxv1V z{E0==PZT#6-J;XA5Eb1P*>`h!_E$Aja{JmeAB)HhV8)t;{Zg>jA-WR}!o>`*Op` zv~RB_+k-)C(2hAq!|Dj(u1OGd>5Rd_b;a1uyPKt=R?yv_HZW@uuMZB!GrcfI?>_1?!1Hvyj;94Br~Puw(ZYzH8#KDNY) zV${NfiLhxN)WmB*GSC}jQZ5SVHi zMeJIR;n!8Fdq5Ug7TY*Pr&o@p+32oV&gJ5LEEaPaKg`=PT~3bHiOq~I@~E?7Vz+hF z6~~n&O&xEGlm{+Yq}6S0vaw1CN4nX*7M_yj4LqSGt2u!G2yyPTyB8g`u2k|U`rZiz zC{hN~7T1QX!?br5%k#-;u2;uNxo;@rm9i!uRA&V7g}O}&H=hB6qDo>AmY9UVjg}II z!qx}jUhvBreA0mnWqnigMk+MO%SZsHqM#zNTnZep9_F#dQC}|Tmv_1DV~Zc#5DNnC zLmORy`yBBYsa=w%UbEIUnauwC=LcpX{YR8C@A0MYJPUS=iMibZFn-eP3CLj#`a-gW zZb&_t0ZWSiAZCF*{A8viCdr^jmTslTyqw#QJO&tb72t;pd7s5XBO3_a{ zj1h1BP;=}`=%0evZ9qC|elA4K_tCIJ5y&#i1n2U{md+Dl*k3SMe^OgC^gj{TioOi; z;0C(FW{N;fd(gELjoiFF-R@%lv89`6o71{*-yv3fY2dy8;k|8lyqa!&st<(P$fWl7 zaS(Bvr5$2dGcG9@Uiu-P7sa8N(8@BGg-!)xeG}mHhgx2H*F4Y!t0UO=F8G6R1>{hGcxLUU zbcA~BkLFv+I-%Ggf0HTIx3+#SQpQ75_o$#=eaeM>z8myl+HJil0IRgBw?%{-iKYoY zefy#*gwGfalI3y7I&??iMWncGL2EbB(-{9v9L8ZRlEa63;0$1_^==|-vQv-dluExt zL2^+;Lpf_Mw~{EmM>tpXPV%X>yTG|#)#my^!K})XV^eUIPa65?8bvO-qq|#d42R?R zgWy!BjWO7JXbmcapboY-euay^iTp9G01g{?%9=YmGXu?+ZpM_ZJf}o`hYBezpZ@UM z?+7N?73l$-j_QSpUN4Vtzy^h^IUfbPx>ln9nI-l7}7G3eTmYvGg zczy=>ti7-I$Nu+}$`xYk@Wp@E{~%}4N$R7}0grEu&X;l9xveFIbU)8{d8Bf5erxB& z-@)Q43|cB7{*IP@qhSl6Tuc1L%yUP<7B3B*A!&x=rCT_ZUeoJGYu|{avpICQZ)D%IFmhy!qK7^U|fAVfJ`&;ZfmhLzJW@=ijf+_iM%FIm(qfGAZ z8ta-6x5ae~YeDG#L2}i%SBl4c>yh>TYWtQN9lu$m&yuQ_4wFIroaQ1ni_79?5F4fO zlC{GeV*&wh8#Qf|N18d5413KZyrC)U62L0sg0~-{mN3sga@{QQZ0O-oItz(Q@;+w8 zbPyITt}ouow_S-m67v0H0A-H=#;FPs& zCKsuXYLdo0K-;wJ@h8yM|Rgm+WD+ z>u~Qz4G%pENKv|~jb;`tJd-NiX-*6(nQGu!l0djdq`?81>V-Y!q5n=>qYb;wWSFJEafN)fM_ z}9GGglmQ@02&WQ84!hv!JD>ojyc*beS#G~r^T%F`z&EKH^ zch&xezi`yylwdZO3+^{{1ALn!E1?>mqNZ^+am9RKBw+j{&3jF$gyU$rSo$i@!K3Mz z?;WR5x4B$FmP9*hLD)|1-nnN=|K!Q`Ix~;Q%KDHEzl-)EX9ELVhFZvs&i8&!*HpF_ z39d*s@1&!*#~5PDXd!$*roOm9i8q$pj>REIFktacCuA-~T<3vK*8QZWX~m|u(@j;L zQE9*|XFYQC{|yz3ltgg9qiuJEqoFySV3 z7)Q^U+}yY%E)~Dd-yKUkcZ}x$V`Yk4#}zf;aNuKP;Z_Hs2dcAsRLHnQ(CXlGU6gdA8mU6U(aYpRQxS;7$TjDLrn!MgOwT!U{kiM4Q`ZAE{y%lA0tpW{QzI|+i|^x zTMt?ZL9*SRZafuVT*mln)WJc&cCWzD;n`A}HMtYR`C^>ky1P-Vz&5~}(vmaZG zfQ7R$a_xIlJ8=;5WB8rx9YsU^sc>Vuz_n(;12@ULUZ2R*Xks=ZyDm9c=d@_qhSbT! zRV=vJtfY^0#8n^{3&DPr*>2`yJ^59#oU1GftLV`O`|)#rhbjiJ0e|xuHj$=DGj~#r zM~L=RelmC6H{GM*37IX%RTX371FH8p?x7W&8DkiJ~qr;g+~-PA>$t*YE+J!($T5Z6R(I zCeJHodY`ox;LRVOI&P z*tU)Vx0148pc2=(5-i6eLMqGpP@Nh9Piahe+>0;VLSAFe7<<lHqL>3aFU5AOSb)XsL?x&?9r(rqP>j@+zifjDBEhafM2=+%!rgvkTy5dR*aHpBKCfGSY9 zVTxSeO_Ttxs@4(T>Xz=~;9s1}A)kLE3FFxlG#+=?83-)fUfoE_jjZmyaY3deSfjR` z;T(pgbpa&OV@MBNK#myrZ8%&EC*G9qb4#YeV^UDXU<%mWVyi&){b`(RK63)Bw`E}V z0z%Q-G*7G;t{*p{pMb?)u?3!2FHHTus)|oxF|^@3$A~|K0q&X%uCNUtQ1VGHqTjDU@hAL~l@P2-hb71TVJO6r8n@m*~Ras=^0d?9I0SYzG--jhCS>)r&<-Lu?K?-=VY zb;iFmX@9*2iR)i9yRSkgwx;jE;rp7AKXTXS{?o3gN;$3FVd~;d)03c8P3E?tDQz@g z=SYHDxy>^|6MWH#w|fKl)z%4&=~$kd9pEOD&X8mb-Sz-LtIr?SYcx?E_HtQrzRM9v z2z54-7kB#r3L@vf@02)*(r6 zlctcw1iCzzX_TDrFZR9iNp)0}{m>kFQ%1$H@O5UIeO@PUuFM0Fc@DLs=$>WA(}+dbSl%Z(XJy2HMgG%|!=yW9@>u~Ywu z9+*WAh-ra|G_do{4_1`YLt_%5R5W~suDk;&YN+191vlmSM#x$yTXsbe29+%d*)z6I9hD{f5@U%h2_w59wAc-@WU@{%#ul;+#`?QoI-hsF zKi}(fUB5rzbY15$TnEx9d3CH+rc;$H$Fc93iEP4C9MW#8G=T9Lfn+QUg}@{CoB|)kjW> zqvnxwyzia>f|P*H7;}n0JX&m_gpSPqd$zAVk_}8V=Zj{cSccG&@mC(gS7ZDtds)u4Ae9o|-6;_<3>JuX`i*Nw ze^{dmoGgUi%s^+i9k;hC|KK6;6yE^VZDDJn-itf!zN23-#wJ?^T=0CV#BSNDLdHBE#fZ z<1G|3Q_PLi8k)p0tSG!JDS9lwkTd&AO}J#DmobE;CclTJ#!nB=_|0VvUhU2@J2$WW z9l-7hk=%RxIW}5Z+5kZQwnppMq<%^{yrh1ww+sN3&PfO%%0T$Dfb(xk@>$J+(7pDx z1d?59rR3GO7N29kf41z#R!yQJ-|BtDNVo6RtN-X6KxGBfC9--OipxsvXYdtz07#}) zA#!Hj3M-cbhIju6a=a(rnMe3DwZ1hS5a8DyqE}PBQMA;_=De{|-m62WTq%Nv^`ZVT zAOkm=u{ts->Cge_c@ZJwTKvtK;Pwi((=dLwAWOlFm z-VLj@ls9^}ZhLj?_ahQj11KBB)svR-i^hvm8bjsZR5?*^K?pMbO^J6(>M$C#-kQyN zX1JKv=&MzW26k&_o!tseogJvyoY_vrn6emt_v!>ulNooR-4#4vAt=myvL|uNjX{^Y zN7rymU%d>IR#2g8U_sFu7o!$nar_j18+ABTVM5y~5zz{Q&I-3753wo06Dh~fEC{cc z{H?*JX-0V|F5*#WX~}8b^~I@s^>{5pmgiF(iN47V56%+N;>9Y}UgLBaiFd<{U2Y$S zdW3BXW9`C;W8lV+>Jgv^3KU%Kxf>_MR&n_W+8>`k{o8z5%a?as1Sh z=3!?Vg$LDyKdDJ5e@f^|sdq=HlC!i7W?xRtP=s0_Eee28WmeANdgsSi)bN8Uh|vak zP7F`%vI0K5u>~`iQPZ=(LwyxqE(2^W=lu#%sz9!7nW4$-1Ue2epBQ%8t2&iD3hX!3 zBeE6I%^{Gy-3wQgmRbfK|09csAgq{(ojD8YrH)?74ozQvw2DD``|zcUoH#W^46PX$ zl@^i=$<*O3Zok_h8um2=7E-?j7U`9Y#3~bxN_-ATEHdh!;qQ&_S?4{flfbVDUxxib zy9zf3{HymYeaNN-V4u}9tf1G@6tRN&v~99g%JcqH_rkr=A=*jjza!zJKav1-Td<%rs1C707E4ZJtHy;!=Teh1TC#Ww?yd`S4R zH0*tc8-isAA~l#+;YJ1vU;JA?&#HboUSWy=H8PUdE8e%veU`PwRvxp8-2M__<#YiL zXOEMErd6%&f-!5g(gd0v91t` zv$jtzt!tG+NYEmJdi&XBE$v@&A(lVvr?0xt48-=v$pfn~$J2@Be0Rss;$!AzN6b+c zqlqpR050FL^!ZmO&RF-jcy^eECJN#P=i}WX@c~H&b4$c)I@wKgk2(BS@V+LBnff!n zlsW876T=R3Ka&~Xw6$+JLAgtkd*kd|uO&@{h4Atf$I|cXtYDGF0S+-K*`f5LX}QrH zma#0vuSHS&UZNF*j_+}zeWQ4>(r2rdX(g(L8ueY29q`@cUa4o6bf81fh-LAEi6fI})4!1dZw%*bCKZ{8B0ZLUggxWkGuani8k z)B$&n#KFG{8!A~U<>(rJk8`1*c#!%~88*d79hahNOj&@c^eme-^pH`xX6OtzvwxYR z2l#@tL<16GFk?2R=4k+f_GpkT-9zT8q{HByXNhf=?t2Y)i+4WuW-kwnQd(HH6$6)< z%H|Zr3k2wxaMud{zMa{O2;pJf;y@yJ1QgeKq+5i>QYnfmO|zKqX{K&{K1d-rCcoW+ znZ>a1n@*xkJxj%>^Sv2czZ3*@-OIL87Sr3;#T0E;LlV1}Z=R6#zJ7p1Hn!_6RN7-L z<8H;m;cz&+8%O;3L<6A#Sul(3af(yoL{&EsQdbu_J~?W?^4|EYW#^q1neB2ALA{KJ zFI{=+Usj#u=lNr)!Hvwah?KSLMRdR%BVa>munYL@K$k5j*?IE#?{hAlk%)x*JvjxC zUv+|8#(J_~0*`|lNX}Ga8l9sR@wRY+#%ARHeL2*8Z~-SQ+9l|^DAg4h_IUE==YY?dHBQO8SW>7K`+-@U0FuVYo5($ zAgC6W;i$mmM1JHV0`!#r6GSisG>d72A(YWDbNngs^vSb#2YW$E9k0--ULCCFbWI*R z@)e`yWQLjAXSasNjP8&+pnIeq(x8p1a^8BEINTm@(v0tN%{5mK6XqvGPF2dSl5!if55z>;+X8P{OSjwW1&&a zMw#svuqdZn>9HVqKdo2r*}_mc?=Pi=%PHb>>!GNTl}tR$T^61MU#!i(0s11ducrJgIJ#cHzSXj7zKHBF@fiyvIc;+~Ai6&LPP7;g=IB{a=}( zP?1GS%HdWxEQix28`pj9&(*O?$^clc5i32Tf&W1j?ZMs#Bc*gH zX>5JVD1aQ;Y{b)1k`tkcLLF0$>-B?_3RCteJnk_$BXLj_x7Yh)%OU+k0@Z-l%~djb ze80YcH4}Tx&b)CCuRJ6N?8V^5(D31n&@L z8$ww>VOKaGO5;#1zH~eiCc2`-22c!idC)SQT;bwSg_C8|%u1pGhyJKgs_4D$Zi$ zH^?>3lj88gy}Cy14FyR~kPb?@qE-JyxpCjDKa6G7I(?3lOAEC#5fQsXWvy&u9p|bo zY{y!)+O+5<40Z+P@o^>2Jv{Z#pYQ)4vR!J z|2s6**pY%$H%>(0Z?uG-Lj*pe|*=R-vQGO!Ms)c!k!z>{7tqFe=tTaOa6 z`fJ8|{9h*E_xG9%%IPdgDOHOT{3J;iWN{MWeUGA<#Y$b7yv=w!R)Yy1@xSP@MdHjvFw zcQf-@kRqCm*$e%p%rkrNvzqOO7QY=URMQ=BT)ICdW_`Gt->bH~xiVuiY|w>lEd>X7 z=Mh83DIWXwf}^nQUuwF8@g{nU)HLo*MCmouVgpa3YzKNznra@4&2Yin!xgjuchqr6Mv=u7hSRQFV< zobn$~l_zHB$#^fHs|;$5d>kzbFM6z`6J_P(Psi~JR+W^{zmxkdqoo-Y)7S5qxVfQ4Oh( z7e6~=fHSj0@W;vO(TMM%K@ED_FyHSkut+N(I4%R^enPK~9-4FkhXjd|==n;FbQ!xelZ+hYski;=Rp>Q%j` zk#Eo6eon1UuSM*q9975*-xV5qbyA$-w(!toN3dy0H8)68+otBoZBi{qRdj*;TF#YR zCOeq-3MwC;D!!g|Ix>WA(~4ZImH~|H*!Rqh8QikL)5&(nu)*TXFrQ=dMtA95S6`XA zrt*DF60_TuM$CqhkH}&)Wb-_u!hWos6v;Hl7&1w3%e!?58(ghAGDKcdG5D%>T3w#) zS`6$g0kY57JF)IDML8d~F9-iBbeX}r`Fj#Om(Dw$H6>7kM+`DCE;=0r77nqx!c~pJ z%(B!?CK&Ss!rPR3?HzcTL=ooFruo!I>9QJiBU%cz)k=EGpEpf#4f~ETXCY=u-|sfe zJ*-$NPvo6`!r^-c;f(eg^drg4V6>X2+p?M+tJ9B4Mk#RIghA)3wPqIYU)B;C#^0G* zY4GD7`g(^iGD6+CgnSF}x2!lQ;KbZ(<*8^Gu17$K-}ck879&8?kZh$Uz6aW4O<|0xK)H2)IhE5gTcNHQ1KiVPN5~>`QjmBjG zz$+x6%yenPKEY(2Z_+M;hq>Q!k1w;#=4)*3Y~fL&7)d?aWkj`MHQ5{d6$IuyF2yu_ z>I-}XK?Fcx=^hfUmIm5#^1dkyPPGW`|NgGh%48&;lyPQTT%Jdpx^wZ}?)qe3oCmKS z!qc|rK20Og?tS2?%u*ZgUb<#?4izO-bJPZOyfUjarpTTjLmIs{cQif_?YhTHd0oBB zvqWmWW1XDtnpQ5#VXlK6Y~G#jXQjd1;%|5miPtRzOvvE6WUUbX#A2bu`Qk?Fbf4eX zvh_~$;Xn`nGB6(6+MUY0<)lubYSbwrW=uzJFA#ZhNnzjWD>-fsdyT*3@-G`g1WL=S zP6&%&m`4RyQN8+&A45z~@pW8~G;N4g?C&w`+RGjjZE;UVH^gGGFHqUw%cs>CO&Wl? zxVA=3zUg887h%5#b@jlxw^|trK}U7>Jv;0#T{@KT*auRY_jm0vSX`n(v1*+aItF*$ z%E$f~AWKgU_}M(e@}V~BtOA9eF^vW@IN!VhNG_%@yc3)nx=T{OR5)%r4L9qTh`c@f zX>DrlPB)S7{pWqc_`h=M_uKU}UBlex4?pzyJRVm%8i?)>87?dVht_To<9cznQtyhD zN@}?q5xn(`IdRg?@2jUj>Ru-?OU3>5HTvf4(SvZhIoOK}I7KNTe3-(vOoVr65}zXt zN8}z2cZ>1gY!ceN_Y=n5>UdKgU;`g|P*yB8} zv#)sL3`sA}tSycmXc;wc*^6TxA9BOZ)iqf1OTBsu21|{53!Tl58tRPLJ?iN@2Z1_27gaVBxaWNu@ z|0u-N-DS4UNNgUPsA{b&jo37~19hR2pmY2ZSR~omi@YB2TAXP4Bb@)@NY*EW8L*Nh zjS$myNK&zdP5r$m`&EVlGupEAu!!N0y;KfV{ImP#biXuc#bUgiAXHsKl0`#q6_o2^ zpWM)5&(?(#Y;A{UZ7;X`9Y*~Ath?@sezY_q*S!|@rUe=RENn`zq~LpFSSTIr|;7*z~4h(#2<{e%RjKGh6*i;>kwU6_QrvF=G_Ht!nf z=cIbBg|MkF&H5h0mXw(SvcU29JmX;-#F1r-tl?fr1*YrH13f&6z{XXKaS0N9sgN{A z_R0HGCN|27f5ceRsGT$#=m^5V>d~K1{-i$g#%9ML3Y{?hGZBq8)G_{|h;Gce zUd(qYrgZIv;wmFcz$DiZ4%d}=sLI4^|p>YMWww(eR@Pc_c_13#_&)|^;uujUo z^7v?k&~JL#AB_Em1&`QqPKVldB>J9UtIw z8bdQOL`o5TSFVviB%B}c0di69jGKx^7A{6zIAoF^Z`J))nmhei+`+HYb)odhp_tW? za8e&gMcv8?A+0z^kNU+LS6d_sY`I1ZueK@ZYK8)IQAupTcO@qy0(Ebc?ICO01jrcw z5D!ulFmPxZ6D{OSH>90At?Aw@l&`KVe~#+QqaA|{n&j(74!j2`jyr2T1%k%GixCj$ zKSpmcXr8n<_(7=ILiOHkIk_j348dE;Lex)BweoPsK*dw)4|!!`jV{; z9TYupcR8>0gyF_uxgMcJTs^2TJw1%UXo+IPi8627*Mw|0zSY$Uldzt7cZYw5Rfibmj+Vah0Y5k4G2Eq+U z7z9fh*)Cajk3lM2i}6EeHMo^3hMa#TT+O}WqZtH4y4x^$CN84cXndRb@0&OgHt{U{ zaG;QAN-49{9;aF0dq#v1zVb0!Sh9HH$Ap;!a216&@9Dp(J3)Q4S&b${vWkKqC;_uF z3$e%bJn_B!{$(#Ot8*;> z>tmfpKP(cBdaE{&q-9jYj<-aF94VrDg$ZuOWXzfdI3wn@si-)ik>@u*jOw@Kcrvs= z!Ezy1Hk9pfvh%D&x1EQ;1StqCZ{ne5dXSBT5VH{X@nxTA3u75vILU;D4mZ*qAvH61 zTJI8XTUY@EZYbup|oT!%#QLUZsDnbyv}KZlE6OArtQ=10DYb(k;6 zAiqAp(rPkezhZeoW0!E!)S)9!()S8UVLvK2dFVX_tP3!EGe5oXHfEW+2n)eDC*2uM zTk^MaGS*=apR(0A6Etq7*1Oey-Zu~QU$S_M3ZND$>p3DKR!OYE7=;D=MU_2Hyxe|< z$H}^cAa+$( zz!O;tg1H6A|92KrkKD3!7hCr&J7mST6MqGz`$Ged*G&G40v_1$kOk9^(8pORCH;tE z{Vq2A7omX1N><=eo!mz)sxcLe?H&?BVuEgIvP5LZWxxsu=$U68A80Wmlkx`@%xm&p zZH&3a9Udo6NuqGpx7F<;oXbc%Hmw-5b6AWt2*KzcC_bH4;uQ5@~*=Ih#8lwBun%)se5{i_y~h ze-?h+y~l~~KI4^Y5m50qvl;Pn+K=YOEkpig#Auk;_rjymD9tjrboWWN-?K^d)5Cx& z<$CZtJG%{I717?7yQ6k$#!Q+v^p(Z`^-hIz`b$0sH0mymsEWbbF-KU1)YG=1cpGlHQ&aMj}`SRaVGog338}eZF>!?nrEIXo-=IA-aF- z6qpq@jBlM!`0#y@B z0=eD-H32|O)}4vyOhB~nlG`kyCBuJQFJb+YQwy6L^oKC4>fs}2O;wP(9goq|!=t92 z`rVq584?A-vA#aYan=~QiRnLEQKIwcMjTO5?GW>5x4mn%r7aF=A23O+{now9-=+ON zQs$o2)dLsD)~eKu!GQ#om@8eYqd|W;27eMERy5=!BGxI?-p--CQF8}~m9jj}3$W=Xs6@Cl&<=6bTymZG~zug{($L!PR2f2ikL z?h?=bBSXFcggr}0e}S1R@gRjfT%hHSM&Jm@w+eojy1~uyCzz>#Aqd&odK>Ki70Zv$ z5rE~qfFqltk0!z~H1zfbJ2O6ibaiJs7`ob3PD_*LpOr_1vp!ds4>+ayfgP$BGmj0` z3&yU*E1s$eC=wcti^0Y^g~jdnX$6h+EfZ94dXvN*`ub3L<(O^6JP{pv=Aly`PqdBX z_aIb{S)XByM>e~%SaD3H+eMZQV3hV zS)L$d@8}boyzo$I?x6cCT8%*bO)BM+8w-m3pUW^XVUf5JqcAkIN^K5QW)E)4H2S82 zU^8e_yXGj*pqT4@JHk%#9@bmC7mYACSQG?eNm`t!-3UwDT4uSj%?cqbk2%f1 z=arZ_WA1f1gb>9O`)VQO#_7%d&R6b7r0?>ME7s$mPPY+k`m9opUh}n7Y8tdvQ*p$M zyo@#TQmRHfa%nat0|$IkA~QPb$lSW)=o^o^>v@6>RZK(dcJm2TV}>5Y)|`~87Cw?n zmGqv!jSX3`y3_lAD0SPp z)s`xvH#r@*^fxe3+#Nopw_SjV5(i=hqr4Umu?p9ekwTG7a2kpv5bo9P!84ZL`pnXa z6qdarbiIXYb{km<;2J(2!FbVu4E;aLDhcp?M4trJhK6S@a_$kY2b@a>(?7LaRDgpP zEM>fav^%7|nx2QD+TNi3Q6!_KON2i!azW(_7*TdtgcF7JlbiOt?!3ozBZe?_o&kfZSGA2xh*&i%@|qd@@~73Ai6yad2yu+o zi1z(y9=v&nM+u=YdD6a4aH%s7Da$9ao+nj+4cc4H?9mF7yllpX2?qbDZF$x9mGtUB zvF?wjvTD!U$QsS4$j>1~Nh>D`g3;S=|1ZW4%AsZyD8i8Krh5oZs^#m1VnI#PI0>Fc zl_s7CVMu^g`^s0{lQ}L+8>KoyWRfx}IcY8qSdh!jXT9BaO*`>#;%AJ?Tva9lE&O50 za%d;yc*wP1UC1z$pFmg!*h2qm=Jl zYyiq7Nf)i^PzA87#B`y^LUZVmIMGXv+^<(cOZLW;YuQ;+?Bk*}W=ik3x8q}ku(|a* zAJn69XE-RcA6;cDmcAF8y%ZcgI>eUvas;rIxsm=Yys?y`4W!t+?04I{G1~q^;1{r9 zGGqnRYr#_z8=`^soB9>v=86>5hw8Z2`WtdF#GjkI9$S5+Yo+i7weB%gQ80 zuEK{a>_)OQkog(q$*IH9WGPt&@aLJ)tJUq8Dfu6GMt(BpMnZevj?41DZAO4&A~uMX zCPqKSYFaG*W&IIWEWT^AmnyMYL4>_uUlWu#r|(yvd#Pb293rie6|~H zvq@&awe6rT;}Fos8f>#*?3j%9U&GaotqV1NE{FtEl5`384)XJR9bMxXq8^9mk8D8o zyCSd(h4?dXR=D^U)=rgiMBhASKzKMVwiMaJ=-ih=|3|~ux7Vsxwy8} zF%9d<#S;{eJT_N;3j>B(TqCK-Lt#z1n$V@Ju}@66a&QKHud?PUaBphx*YzZYj1;}@ z2F6-PSUi!oiM^N32$ry?p;4G5cKQ81EtDWsdkei|Qt@LVLHa3A)X9TCh?Ov$51mS%3LBO6=r6c>b>H@yKP+J?RJWy}a_s3<~-)5*hXk`Qz&miWob~)%jD>ma&x7_}( zKNWOG5^Y`SI!`gfb|ItLVoyk3K~@CX>k{OYFJJO$K{{ReHp&DXN$ZfV2t_YPVL3n| z(OHo&uXd1J@_5{N z9)*J@7`qhwJkPX$cB_{bx0rr-gQ*3e#8!;3Z5V`g0@Xenp9xiy;ep-#qOY=rxhl`vopR4-;+_*u$$%5d zdO?B}xHVAHiGydDyIC+r{HF1%nix1z*cGh;oN~Y>ecDt5hZa~B8FDB z{f)>MdsW#ikAH@`=GkV0x>DC7wo47O#o$KUK-20%R00wX@oL{}p~Q)8=_{Eu)#aHh zH-o%B zM(@Ffk8i{dzsSkqJaDA}{{!mje-O3j#=TDo`0G7AjM!~^^w`eXjvP1{`|H`#IjdN| z$GlN7nQwY?(0Y)|LsO@*#l`5uoiFDs2>K`HGMBG5OvtbOJ>KJY`JT%q)P8&u__nuz z0njdHMixm&`z>?DKALjVpU&U(t$QMatblT#V(v_CP{AVx@;>wj4kVr01om;x`j2OC z^MG3_cE8skkR4^SGyFql)N!l3o(j6F2}^ehPDgV1K~Y;QI)egb_zcj@aB4ne{BPj*5;`Pw`PVW>Z#_lGudI3t>kzJcK59CE0>phPSqVMl{#V!~lH zQS+G{mk-jM9ZuHo)+d#O@EtdkQsZ_%=GdAl#O5 zqa=LU1EwKL>~!J0VOEWO2pN2J2i*hR-=0s0VxW{*b~2%thuLXYwZ!Q%8Clzjg%@2s zh5ld(!nIsIBB18!>;PKZhpa~u&Dj{EwD0$J9dH(%3881-mvk$JEBt(;P~jepd^J=~ zD->n!Kh(3{h{Q5GyC|b5P0sGl@2^!!eedj~QFKSINX~b`J0i(iMgbP zXHuTYmL<9Z?TxFaW-^bcj@VUDeI%Y2=OYMR&zXf~e~mrI0j^@uD4sjJ0fj9V!gqtU zbEm5P=DbdAmaa+BNaXbxu9P)sm|5Uo6|BNpK2hTJC=)+o>q9dQ^Rp5Am>T6XLK;H) zJEf!IP834xq6}z(K>=&gT_eZkm^AqPmNYh4qpK~Pl~gyT8>?0D+j#2tLd&_mF{zQ8 zh8pV5YbO=xWqiZ@h|b)XlTdk3a=s{P;7EUzU+M$<{kP9Nzoq~6epN8JWll;jMmh@X zge`Rt2MzCTU)0>pO{jTk*RzYz&-kT8m6EOBMD>o;rL479f%)^-$}o~P{C-tMqy6d* zVoe`Uh(#*T3LO$-D0=%uEa>lk%UF_IoSb44cFxmff|n*Wd@3xI{QfbLSc!|G?TU9Khz1Ere}rui*T(B5_pQy64+g^j!( zd9K-N17kLSk+v3_{1;k0%)*UE2)Cf7PSWc?j0+iY%#6xQx8$j}-wJf(ziL#0BU`Wq z0ytczbJ)ovHW4}v80@Td#9Q-JW9M9AZzZm^MA1i*Z(8H6 zqZVfP=;&;JwKAgn`KMzF^uL`0C6~ifAF;C{uiZQUpM(6LYr-7Fc0_`AUlQgn^2)o} z-zNOlB^SyYos&^pp49*6720bb&AR2C^ z!jp(ey@Vw4Pw##)i~qT@W3uW}QU~02oSa|y|9w%Uy1r|v@KvPB{(oLH-ajEVZe}vJ z9$N*@nE@@Qa@C^CG&mdZag= zyh+-Y)8E!W(WU>gB=~vNyGwE_`wBKpdXaRh2bsJ@DjMJ(X56>+sZqa@_%!msV}8EzL1@}u!-Tkbrubc<=^hzH z5PxzQTDnA2+FXHGid=Jw^*^+=pKqa)@AdooV){v(zoy|IBjW4D_&KPL#eoq>rbnmx zR#EW)a^-Ky&p&VUF7hDx4jf#SK?Dg~&f67pe3PpY_rQoz3z(rNq=FJB&))8C>O~>% z_&v+~`3cLnmy#;Wxno3uL~NJjnNpgCaJcpo5jCLrSj&}srf)n@o4aklwInW!{_n@Q ze0vl(P|k1Q5R;3xTG@Bp!NKlJ*V;?4q)h9(k02t^gaTaLrXMqWR29Y{~xp!!m^MHK@H1@>W zO`bgiC*NH-&`)@41F5;?39#Tm);{*_P{8*mzFXh&yKB|YZ+Q?};y_BNxHXsw#Z!}+ z9muOEf9t;c^Qz_B^WFC4A`~~IvPEUzdhs_@@aIJjLM89^rk=AHw1zw{m$>zm{)FWD zADH#$MRXiUWVTfImOwwOAkLp)(1Te={^h~F|Gj_wXorm2)q_xhbe@=W+q$#g4E%n6 z+`CH%>wR4`Z%Z?1w+ney`4?RI^P&f#Af+?*Xn5NIY6}8VsjW0a{^bGd|N8_%2;>$k zG&4UWsFX|Gja+pP2tEJnCul>peyMRzQfbhaxMgE(_Xl!i+5hv!d61}4ZWt6J@nne6 zgbTUhpg8DTG9b7&&SOB{!^rW!H`YBD6IELXKtB^F`7BjVC#9ceh{c@|KIbmsC%>dO zDS^C;Zs>o1)rAy%iOvpW|9}oGA}xbHt8VAkd+|yA zU@m0V*3goeK+X~;tUSZI*|Zoz*~&)M@9cZm@3RF^=@OlXBPM^59(hyP|1&|}xdY`F zu`+#>Zjdg7)Y>zk4H5<9U4$PV3TKd2gBb85cE<1@|8lhg5GoK3?ACA~b$dV?<3M^S ziuk`F#l0vJ@=YfX{POTY{{BCI0{?w^tAXqPj0f`nf5+r!Q`>*X~b-_-yk@b6ae?^f{dR`CCSD|iqnJ;S^iJT{uYfPgA!r~BWzG(v3b zA&EN~SQcWk;10l!`*QHE%U^yavKRQO6Ud3CQ;*+SL0@Dr_B#3FUi0E#6|7R5wCcob zQ!DSx+bRfaOA2km-`);e%5Nj{Fhc%1+nnF5fXZQKt4Q!0(N^Hd?C)D>{Q4!m{jk07 zh9k5VHM#fQ8S|ONioGJrcP(`Z^12sXzA_FnFDHuMJ2lr5NgMN`8o=$|RWIzkrng2y z{D8lfjm$8cy?25e&ZmutuS5mm_RGH%B)(doA9ea@o%^uuHq9?+v(I1R&d%g^eskBO z$?bG+e_58%wTf3O6b5FQWjoyCBHF#XF^@DXgr2H#GgYgDe>Xyftpz$AVc$DeSr{u2 z2f94Jwx?oSHl<4&ocJHB@IQ&u-6g{bd9rc4=))s}h=0xb&h%JMAM$O)n!a$dZ(!w3 znxf3TA1{oG?)rOz_ERfXeuvh_dgC}vyKd2H8QS&`QyAnwRO;#V?pNfEM^b2J>x2r9 z5UF`4;e8^n(V&$9jnOodH3f)%s`%E)w zf_thpBBb*CKE9vQ5%2N0^uZ!?7}_7CJYD=dwCAK8CBQuq(XU~7o2$E@9M88Lj>)Aw z(v{zbvLt!8J)-1|ni)6EGSmYW^`arb#{3ZBSSQF^kluSOKp>%VstOt5G4}U%R9V&I zC~y-J{0YVZ!%TE^8esw3fMENV?Yg(ed@DT%7U@mGk(qBvE#HUOt7K?rvQx@s_Yr2= zUJ-20K6v{J-@TBs3^-KFOMBUP-Ar#QqX-bkxOM1Q^I9xnvV z)#R_LU9+s)Fx#;Ui=DBx+*qASH+A_|wv+Db6NE&RWx9D2F?f0ouKyFEwO6eg=b|Yi zP_8WP_WQC%F|Qqw#tGA@{pyASUjZ)jfAD)Djn+pEJ;R}CiKK@@7p!km8)}nFSXXr$ zUDy&iU<#?ikGoJNKR$fhK*{ZUcx%(VE!VhC+ZvhQKmH=@B9`kf-RNHRCZwh}w?slo zo|MR^`8vj>GZCKu1$G!XGgu-U%gsRz`G{ffQ6E(o`)wEY`~pS3Mk0716z()z3T|By zA8#JdFv5mV(il)8FWKrNuh7wvv!R-dD*LhuDz=p~Cq)YHOv!>TiyatVOrPE4tw*J! z-%-Boq4uSvG*Ao%!{e(0DL?Wf&z= zc&~BpYf1$}9$v-NDB>B5Kz!=V#QXn^i?YdwEP1)#;dW*DlQ3pJPOTYf*0w(O5Q){dD#V>fMRiqV3o zqe8t!xWwy@4!BnLRE@VHcNcgq*QnkVq{3Uy8nYA?OZ7#Z$iB0&Xg`zV2L@)3?>i~~ z3j`#Kd&<&AE`B5+{-*edSlU|l@r*0;-IVGLUjrJmtqg4k-AOlJ57ndd_bXc82lM!c zA*5}T$fCH7LGBe*(U2e_9bH;`R&3Xq6JCoFNO6;6)=V|fN!M-cmd^P?4H^+G?XZoG z{D~xz^;M;h)Hiztx1qAtI#a2m`;j9f84F8P7&ysMgD6!X=p zp8U>*?@RIcuT8AY(hlF^8R$;RAU+ohC(aX~-+`{*-J@46i(ddiascgWFD(CZTg|U> z#RG57!Vkrhy%k>_`6e48n~8%?=IxCfwbFESdg(eZt*wDev@%@r0+|i-Uph|^{1RRH znDe&Lsf8np5@9@tPCsmog}#dA2PB4JGYHd1bfSd#(#w8YM_sL3O>eNAU*UnlxTW$R zulx)0VVTK@P$+pmEVSsH#*cHuICT6yZduwo1p%KTpPB8H;+~&_8OJORzg*sX z6uCK=Z3RvvaG-?G_~j^ss67roCfAL2nooqeeebsicGe51K8Q)1kFQcw!(0EL76n05 zhmFXdA(+iuJ?4?auwGn%n|?q0Sq}+J&Dtobwc+x_D6%(|HFQi9q$5o&7fH>IZ`U)2 zndF*<>xJp)q~L%|0q4KWjbmI^ma9_dw4U`%IN5J|p#N*Nr?qpmmVZG^u#rYKK4wa% z!?MI}u)Rz24UHUhbh}@JLbvdC&z|*st4|9IY*r+rljy2yR_`2V+^{~=el>#7oOFI)y3PBi^#8j{GU3)gCd$uw4gR( zR*&D?D8>*YB)%ly-@i6$-gZjVB%vyQt@G-)gtcvSjOv{RZShDEC)6TBg?#ZT&SwP< z1I&g9bDlWCwK*R`j&|3vjR>TOw{eQk$a1p8Q7gzM2?9)FXJ|D=@9lY3BASkl6KaPa zzxPvfH@ILkNYTbCf_F zMe*DM8++>sxvuY-dg#VTg_x7D{hs#3V9VN`ht^@u6J4#(bmmt6ecIm_mckea+t$N1 z+0th0@;LljM$+^g%C^290=?P4A+iJOy8mga6}AhhydB?|reE>)mu?D4tk57FiTy^- zBWpRGKe&_bf`0?yo{$uixtZs>@O-AYV4wKF1Ot(+0_u)9#Fi@5c<9WDiptv?^CFqi z=9E#`DPF)^c&c0{#UH?TrTq3?c1Ybu{KvC{E9b!xpclx&>wKY`&U2ZX|9ls;eIC3! z&?=VYl)3bPNZ33&X?U$3{nY)Nr#s#v0Y!}^&RAV_}3!C(P zHNUqJ#|kWnrIhfPwkX)6AD^Rp;fhEqwh3-+l ztmbK@dcxb5CoNtL*$18%lYH~4<=lEUTK2ot)f&zz zAAvaxmQj7*SKLcC?rUq4%Tz)xk;{}rOf}9qgl`I)hnVuT7?+8s2#ksq}(jzlL8L<-BtOC%kijw<$jeofkgL zeEd?#la44n15@0D6zNKH>2!0X z%LK9MDht1hzEl@I%q^p%p`;pe+-?J75Zw`K^3V>&R!Vmvg$CAzEwA#27wT1q1d@(j zkUuxPa+j%ggnHK0B&>0}4*rKToby-z{Iyr9Yc{KsMq#4V-;)2p)B1dv-kj zp#^i}q+_Lpjx;U78HLs#qo+GkBA-`LV z@j_o?+s1~rg1k?^9)y}PPIsjWT}ExDOp%Qdec#%5BZ9TK}?GfAUt_Bn)j{&@7+`eV|}f&*U!axkuP*k2hcORstK z^!?BI7lw2w>#6ie-Y8S!an@DF39s=zAu?^0#xS&Ow!7o9&ff?)UiE{uGAMu&+qk`~ zgzk4LHcyuIfGR>HURmP~7wYkD=og28KaT?Mr7nK}r~Hj!@E9YCXo=<#T3WQ-8*}jU zEq5(N&v0bPw8m{U|EdU<0r+EWY?%&XrJfqOf+2I?hWWv76uC zP|y`>>QR}D@GslEUp4l{swN^A6MMM1{bhY%j83rwD%q!BsPw(R-JW&22iv(c)2Dl4 zv8+=OPC<*$U1U+>o3qP`^M3OAr=UxO-=y@w8p*WktUZ68BOB%iP!#?5GBMNJ6iNoI%o4>yh!`-4*l+5~LQGUMiVwGzgQ z{pGxt;vxl2nY>j^h)i%+{{WfHKbGip5zgQZ6R)nHIXNHlrEmtO^UVcomphZS6sZClrhn>rcYP3i2{@Z za{O_VgGmmOQ|Hpm6}gU|_pT91ZbzHYg>Cz7FY$!lCq7jNy%Tj*Hpu6qldVG04QP{({OT_ zhA&*=pZa@#d~=2&gv4rj9Qbl#;P2GMaUef^Iq50deV-D2nVIA!i#`;;JYKiJd7$holg*}7$_%W+Jj=MuZSXLL`hpfP@vYNb)=3e!kD`_j&#P>FcF7=X1_=uJOL! z*LBV@Nrxtx`_0{ULQd~C=Hx8JCXIln5mDj1?e^XI{_%w`se3okW7CQ?mJlTqsl;Wd#{9#Iv$c79GvRO zo5j&GGQi}dPyU##-($?hcV-lhSxN^_Vydx@y*_}Wf`5A*9;wawJC9_jcCnF&}_(1zASsU@|30UFNmXI@=Aa}L0^UpRT- zHh@|1w6k#PeT)%pXP0x5ZEH=u0IK{gMHSrr;CU+Uby4;*^67T@9oa-I;zz(k==~S0 zw#|cQ(sCRR+YbO4O}~HPU9j|?Jo_w>`TSavNHmyiPc)3ov^2Ar*UgF_-;vpq*jokv z6{FYYxiX>dyPkbW2=%soP>@=ZXe4Q;qAuNsL|3 zJ9pzxGVKwRGXHE5dcTjUUE1s)@^Ad;QObTecb3{35@Oe9`C}JmftL-!re2kb8dc3b zkBWTCHsl%}cb5Ya`l{5aBD=w7e(jOle$#ZVSX5Eb#&Yfzg;3WhsK07Riu7UWv3aZD zU@)0LtKC6XwCb~HsGi_Dl@EjeT2lDpk?+GP|08mL5*-M00kWsv#4B?r!l<87?~Adi zP$S@N1Di*hEWK<-+#~DT<$mbDil+sFyH-GV zUB|NlY_Ks|on%m@!t2e{FKQU|GD;?nh8XO%s2Ms-P4`a779D_}6lPc!H~r0Uv%%+kyQsuIY9vn9XY%v!okb zG*T1Kqv(I8tJ)I0nunc>QR0;?WbwmSP1m7&!NaarxI3ElMVlVdtFx>`U(B^6#Fv^H z-;hg&-Ku``DahHTGdped+sONPkFu(L>cRTLfD_#4wbJ+bMAWGPkJ>o#W?GnuVZ zzfI06W+nZF@WAnmCh5FM_>y(iCH=O%!GNbRI_>8rj72f~ZOk2N6WBfqay>iddUww3 zmjTW?{&e4l)aG(Vjm@|RNZWu(=_OX8uL zQJ(lmr-f!iFhO$u2uY9Dd=Z_q)?^$TH1H71Ju$Rmnx1uNhuoL6tv9LwsVwv!@Hf)H zgL}RrVndv~JSq$vRw`}%N6y}id27~lj3n(7#T}+Qg9F3RQ_2i5|Ksa3OdIRc+ zfSGv<`6 zft>;3;Qp%U`LOWeL*%8IKEdPfeo*}{dI}YQi|Ub9lNMUY1~PT^i{3&<*h&|DZqGdW zth)_dkG|6K8Vs#exZ{L5VZ4Oc7h}*+>^twM2h~BzD6UnQ>`rQ}Ls|t=pnP;KGv|InZ{!uw zKb@SNmG?^r3XTjj>M3e;xC6UYN>%IfND4d_@sB(D7YSvbd7K_>O^+dN*%aKg+}iq8F_SBoLE@{%TVs0 z^NZ~8n3KkGuZ0J^=`m6hZt2rgBFv4Z=k^ol^9^}rO=Ep?1Ctu{zFxPa#;P8pD#KLY z{I2Jw7^G)_Hk*CaFuT5ykwf#_^uy+$MN^O=#S>Y;p#dB?okqvTJk2seOrKS;kWkM*Sm`Qu?w8tRYAIW4$itP%rsPjZ8 zr|q+h?e&OSpt<+{<}C%y?4OykdzK-B{&zQ8TfU5)1$Kx(+`g8Te%FYmb`;!rhJ1=4 zYQ6%Chd1)>UGe(|l(dd~6?f|*!LtUvLs{YLW`7MfS>9|eLP#G!HqC(T+a-PGanWbt z-u8mokstQ}EAWdvsjl3Pcs9;oaUoh%dc--IMc>SN(+L=s`H?jr@$or5L$0Sk8+F~c zV=BWTq|{hsS^q+B6g`b_Vx|qqhVZ>>JQ!&(L}#4fpq8Hs@Q_Vf_M!g#;CKZJDAt_} z8WIT)eDa^|6AceFqAzrurA9dRn(CTr4AGxa<}DD{z~3MT8*@@@j)WcP?E9(H@5JS=TKMmjIlQvr3LXshV(~pg#I1RV^D<&1oZOAjowZ;;f-~C8 zchcYTAd2u`7j!a`3*`OgkIVh3<#1~0tZ~Ez3m*w%D#I@RlvXPAAXHiNNR0|5?u=vA zg2)o6jt@AfF$;>b{fvunSs_C3ChWz91yf zMJgSeqd0Z9@2R-u+i})oDkiVDH$-g?h#lN4e;nfxo@Qz5k?^Lou1FC$rO9SdcY`{S;MA#4VQ&aP7g)(S`+tSbyR*pO9oAn?l+i{8Bg& z#M?7<%2Tr#z3IHEZwZ1H`qt`IDg^_Gp&> z_%Qh6N%!TZn80w0o*}}?0K1MX0U8i?GS~NHC9Pl%EZT^*6ft{mYrY+huLNMm}3vm55IhUq=P?ElR8LGC}TV_&Y637>Fd9t_^~Cm!?GF272e5!yEQy!3G!Za0v5W^B)=U(VQf zY86=&U#G23ABM5@5|y<~m@uzaVAy*=#W;pt8ep2K(MTX`A^TS+#us|6l?s7c=&win zjz62XK*s?ETRTMR2pdEWJoA}_NY`;!{AT^?qvSp+>s)R4P&!_5QJR&y?`R2R;4au) zYPi^S-jHWBuDk@?GUDzZHpVx5c8h2F-$jbQTkCY{p9D_s&VQp_-4N)T5jM5BtM<`+ zvQ099dg0&xX3$Hhxb6W)GuAbqH;l-LP&dim>1c_WZ`mg2)xb{}?~9_>!@Q=`j;q_H z{nV*{NFg*njJiJt!7Y6pU#F8%n>+)UCe7&T^Bp?%QrrA#-vp@KZ}|;{7Zt=$nR;|K zzu$tqHQf?U&?gu>c*j050pMcu@rgkg`yd(qw#;{yR6#WdMXq1SjO-)7mFrtjuQyyx zYHS?!sPdgU1C(g?&6_l^C1d4tL6M!&!7pYtc>B=7+Jh`J>Gaq)UyT1tt5MBJam!tP z!rT^jA)(?R*i>67j*E%S*=|FWNhwTV?8_$90~?&_IL-5ID%xkKEQuT8<&rQzz;Ik%LyNsqJW(;vM36F_`m9M+xxZnt zJ9d{sR&#weGnHnaem7WpmMViYOXftd#0a5*NDs_IT+Hm7)Y`FNn3~%O#p{Z*6^z%m z|K>F}(kec;Em2wXWLZux&?R-}-+UsvLV4%G6Cl_00{yIL+#>L0e@ao{(GuqJ9;Khb z%QpW*B6`TGkbU6z9@p$aTF~g7_a|@=eQ#~}%A*fiKIcE9+uOiGC?>>W;*k4T6kBGg ze=#}VZMA`1PPWK5Nq z8-o;Xbt1+W+|DOFK)MJ#^qT&xOfb6_Py&24699LxLHXAPhV90UucBk76}48_p`H4% z7fnQU=cRBtxv&Kb{no z7QA*X<_`LfO&D@9=3P%;+1StM;z*~)FAcma3P^w&T-z>pg$+)XX44Q;M~4mb8hb3f z(6V4`8WY{>S>9MWuCc`T`O^Im_#8`i`xx2~*eKCHGpGyJT zQ^3i4NgTSkW8W#hleR(YLoFF%i(!FA!eOnLrw5Ens}a$%FlPnSVK&$*2o%PCJryZ{ z1@uKGY=U(1Bo)lLlGRoms>oJ!<4-w0r!!spSciTy0YYRe(l^GmlhyX#T2u*WG6R2cvDRW%|89>yQ_gSnry0?Oa( zz^jr|-{iOj)!= zJsIuT9sU?WUCUm(7(3#PZHh^8f#h`WQ#uxKtnG=GV(0;R>wR*HtqCk+d2~B&*LP3# zB@_JnuPA#MUK`mvi`7F|yqX&Su4nIR=R`0swD7Ps6^$5QA*&O43b5+mZM;GgPPA#< zoskgct~W?qr9NWo8R3Tznzawz1~jnFCSQ!B4HGI>6VxQpdD`qZ3P0mBdlh-25b=D$ zNV{UFlrx@MvSGDx1q|j&3(GsvwiG8(FAmgMzC2pJz}ET%X6u*(j$wbZIvce#S=eyq zmainLiRI>>WRAMmyE%X8T(YNxLctPlCW+9IRxcWu@{X(LlWSTpiY{4Gk5iPTMvQRS z1}nl06H8r%xG+@1KriIl$G{1TO~*)0ah~lPZMHpUw?vnh_B?Cy3S4^+Ll3{qt-@`b zPrmzs%mkyr)!2*4I|^Kz*-v^0Q)|T!>6w&ZU6Je$YqU{w5iQ&H&n!Ya}4;O z^AUy}Io%P)xu$J2ku~k7s*RXCK1twe%8)X+fM!qN{}Ma91}i|DMD%?~P3)GFt2ni| zTpJ~tFUMOoQrthQM7=+w#(x=J(y*srosoa%{T@Per5Ad&6U_6u`r)0{s0{^}mo$F- z3$rr`bn;!F80G!h6(^W3)ba9M`agRo$(~Z{=!KcK##mE1#5EmqJS9>zO2K*Etp?i_ zM_x8OK!~95hQbU~@ujmK>|17P3{|;5V`jx#G?MZ{bHo=fzl+vX%#I~VM2&w5JYg-N z&JVp31Z(G6cn%#oWdnuZGuwOJ{XMwy3uxFr z#Zb9p|3ag9B3Cuf&r8YL_V46-x>ce+TwIeDyxW={c=cxd18Kd($*Q(rg}0&L1*wdu zt4E>=qu&N8Kr}&F`~A&#JRRlbLC=up5Yf)p;Ks#olc07JicFZ*Z#lHZVI8J@HQE+{2hatU!?i6JwnBB-|5d03=7)sTMDi0ir5!{Xv4fyzH__z zwZ*lFrGlfVyknUgBa(mlC*|DWWeRRmt)@n#!ngbMFYV7(sf zUvG^y6f+7b<0m2!~RK#?9}D?v<#!z(hM{QK@Y;u44eq)c=x0^bRxz~`h z(Q6h-O7$iXPovb8E`)j77`#Mv+3a*>3?MtmTDR>803cIp>=RK(oG zKxi{VtWQ;_8PmWw>LHEi_c9{uqeTzJ(;~5!#7&&W(S-!Rd&B=w#?b*ztje#)#^OZ- zx3(*Dfld^E4~F`;q4uxFxla{C$I+sftg##sd0fIoTZ27soV)|8#uzlsF<8nWXnaj* zkA~}1hW!Q9mVHeb@X*l_eKj=LJ||&Ul)=-4I%R|R6zBot+#3mX5E}P6n3fQE2JH>M z(X0(mm5HbiS6&8}MnR9;Y}Y%wo6(`1Q1|o!*f?R;i!tGokhO)s&fHSY0P9Z^iK%LN z>NCA}I<(kvzTBdnjp#iFU8<;V6`rJL0=Tf33I?urv_hO z_8n3Rg-OUdz|tC8Ejjq3aKQs&ZQZvAAad`U!s#{^1IorxB-nuH+e^krUT?(Bx ztg4TP#E$PFyQ0T9=Nn&B@>V4g33Z-^C|a9WZ6nw>5Y#GOUr$np>}Fipk#I_Gj+7A4 z=^4oj{Oio!Uc4cYG>J6-VCJxKuKvGy<^;O><%nkX5D#bEwiMYFNf`O1VYL|MLgZnh zKEvGIPqtMqgZp*PPr{|kM<8Ub%cW}wYieprJ{`L+(5Q8kP6+F`6Viwl-VXuuT-lEH zIW+HX7#+h;X(>OWam~=zx%_J~}*)$9*3WKyO?H64%0g-^iZk4Q${~ch|x@SCY z$%yFgm$zAhweM4j;>cTi>=rEDK-`*!(OrRSZ?IS`BCWK>glJT6MFz&jR!i62*X(^y ziN?DyJN#V6xuuT4m%a9?MSS$mKR7!_?TK6v{UE1z_$x(;t!hsQpjbi}lz%_?sHvxG zO|>wPTfQ95o(poJ%{|<0dM-=;@yie)>Fq- zC(n>KuWL-(`n;((e?8uc6s%A7-YGEj*hB)4!J^Pt&&v-a<0r~D(m2pk)MTXh=hzt? zI;Y_f*b1O#Ce9?3pceH={hW?gOgxD4czO(B&g1Pz#i+SEKrig^wEaq<2rtQDST$ag z|F+Y6T3*iWh>5dfY`?Ae&ID8|ng$Hd6bJG1x|v`;|13xB+g$w&s*+H5u{nr0Qn-m| z-DeNqcD?j#73fn{FIJA*bV5Bjmb7DHp%7^B@Tgd;KR>Lik6f5S^qskJ2iEsN(NDPk zEew-Tr;9>V0zWBXzM!k=uyPlz9RgXq|yE|UJt|5P9Eo(Xy^)yUZnZd8?%yYN1Nb(|D;4?7zh zcqO6E$*{gih?V_R%RJXbjKe{ig$uNPcKYSoy4Oc+ruENmN@c3z}Dwb zgR8U+fbZ3yNTx-5t@lBKzX1`YGa+C+FLK3+`pfCf9yMTOJOYK}=Bqr86%;8HOT!Zf zi>1LQ2^I3Qp5*6I#}D5~upOIR=am_^HH+Q_mq1abR7YZ#gzHYCT#yJ`H|#?d%s_#D zwCY9dKw#85FskMy0pwXi9pUtsy1-%xZbmf-USn2U5(MY1g=+M8D&BbHDipr4k=Yl) zN=n5vUn30+^h8dp%3aw06$G3Js(c}&Vu-WAyygZQ^Q`K?<9&fBCovh?|5k$2a2UUp zWV~oURU2@r+u^gK-y_9PNTc8c?5+xpr=9w<0&&j%$g?UCuL{9Hu`C6z`NH~%SP~0L zolv3h^x5*9PzNqL1U**pI^xmshD?U9e}b|7xC(w;6LD4MudW3qH9jzH8&!i}1nJ-V z+;_m-3!^ymg>`4v^GNxIN}&+pKsw>JZu7!8##I_D8XVrucx+HmSJ0Gv{GxHL|1|*a zi2PljKWbS8=`g>MI|i*Cxg5M!5Cyaf11GGw_$Q68DCr1ZmfiB@juU4dN7R37To!S> zy$>wsnn2ie45-Ay8ji~5hNT?F%N>(JzyC=t)_nnRYDtW1#r^o*AGeYg)~*ZQhNC^j z6AKQWeo4k-nT+gb@6t?Kvli{&`tN11QPRX8tUV5!^?U#c@$6H5-~wVK>x!XBt_Wuy z;raP=``%!?&_fU(BQW)OKML&FRcmT_BgfsijTUhzQn1}GX&iXrHh}W~BT=3_WEP0x z#8HsCEbnS>Y(tYzLXmwUgzvOR%yGQ>;Kn(B|C zRFE8$9EC#>*sN(lLlQG+(=$E~r z#;A>*do^sh`FsC2a_?WtMxQqv8*>bA-nEAzY|}45u){L!t`%m!YWvw0c(=tS^-bRg zfny1EQAFtjG8*Qc1QmBhC3~`ORVIt48`}-k(W`l&GhJ>rWltQiSjPgw%HOuu*13P& ze58B4b!nZZyXm`gpc>>?g3qoeQKPD|=($iU{%Gz0(Lk@jmR&uUv(ey32i$axd|9?G zv^G#u3cb+(v#B9)5`~6*p|etG)Hv%Na4&M#S4MAIb4SqV7yrja93Y7!GOHabZTe-a z?Fojwc6m1ZL50`1V6^}+3chKL7N{6XM2l{1?c~-NY%oR*4I0G-{vi9gcE2V_HbtcG zWgqP|aReW&Mj3I7NT`<6*85=K&ZkUopu)|!8chX2g%A5A8Ef33o@@?RK;@hsG-}O4 z-DwYXI@x9^-8Fv7I(J6Zg*kW9a2z14$4ZK!Q}Wi-k1Z&CJ;9818JA8g)~k%r~}*|!vqnBAqxrzWHS#E;rU15DjJd*1>n;E zwl-Kj5ACrFRo}4CInlPKd&oDm%OY#i4vKwOa-vPC3@xGfwJDDuZ`&rJ5M06k32SANd-H zr#=B{i2QOu7DE?^p@ZFjYE=c^_~jobSBXsxLJoSx^#AHaP5XAO834D94iJsnl=k5F0i?aaP)SYClKpN_ zEe>Q5htsPiscOyN0A5B;&qTJD+!#ZiEDSFERRR{*+=!h|j&yOdY9E>X)H4e_@M)1y z0sKQ1SgG1lnaE;pQVE8Y>F+UDSwxv0%%4hJo48~+4)VFnhT~a;IAO%X?C9yPpG{MJ zPo*J`{I-XIid^#txoYg3cfRxOq!Om;IqbGSXEhEJRo5WELZ=w_7o4Dj4sKvzYf>Pz*)DD!0K|Cc+qqjsdi$Wck( zcokqzS9$(uWy2-AP%~ej1mkAGdMb$Rub&O)OfWjYoaK_c0ch*ATsSWSi>CBwpx?n& zeJh09hUuA%FvtqLcR%N*P%_gA?9Q}YoC`EAiog@gG)3*Fw(t{qkuq3 zh#T!6GQ}U$m2FHRN47EinSFyaj`T8^o9z!@1#(mnKvxSsxD~Lox4PVYlE!1dOqUiV zAB6+xlh*vER529R;0pnPTO+dVk1>@f8`T3F6eVMU*@@!KxE?~hSC7|%behLd&?*{i!Y>ihrlv_uIg>f zvB&KZUB%r>#bzWQj<3O zL3jo>nOcYX5zwRU++ z_PmUmh(yj*g55NX>pD(;V!DI)CBXYpPQ;ZB1V#g33ObRk0z`pi49b^-u>E+8O32w| zO-*2#LoB)-qndABKmi#FPqwNH?1Ohws!p_K^*69Tuy*ON0o8-&?Bei1(qM=q6bO?W zX(bP|9oE5VlRv>(#c64Kyqc&8u7aE{D+KC+mzVtTq^RsDd^kpJFvmgs7Wh1I#P};z zT<@j+Z-J$}|EBV^4R&L&N?b8vJMUv2l7t}dn^Bc%n0T&u5Qy>55-SD>E>4b+1DUUY zvgmF9e=;PNA)EW2^|=SP9vFXSy^H1m@__>>gl^#14*_TYdpC-oivx4{baC`GzRBD4 zKbq~L6sk3j=3^UT=^Hww#%=D@)xj#<8d%pw47JI?;g8-i;AmOrZGgv9E0;V6jyA=7 z<#oixg_?v@&xV2e$dy_JK{n^SH=RwB2;9-NH`;KlI6?dj?)e|!zl&rs?P<_7+0F9l zBtrKxwn)TiLnI&(@4#m8iA!i1i*r5SJ?|B9BTtKeqZ#wLCvrlCcOSFQn6KuMcF8`p z3cxF?xPDh42L#1o)_PlFoEW+grU1e$AT(cn_m!E4xTv9Qw4z?ZbQNEQpf=+ClSKT& z!^s6Ei)9jyj%2OgU5 zojJTMWA|54zuDcBkKC|L6xMwBrD5^DI*7kMII|Wt4d?EkO_c%E01s9{oB1QWa^p7S z;^)bcT%3YqQ-Akxu|ux6t;g9E2{6!zuVf zyU?}ejoSJ9>gAQf!43H%=MMGa~s!n>&26`+IRvz_Tny zkVAea^@Du>Y3IEREA&hua-d~>xzqC7!PD=50yO`B)8rCansn2g=(5`mCZ!qzy;wqQ z4ykE))Q(i0|I(xHHazgv}{&B3bk}BAU7L%K3mC(;7vuDyQ44;xocV3=o(+`JF z?&_2w8A$VrA}mhD6V;whrq#w?x3KAf_1{SOZuidrnDK|AW&@A7>hW%;64mRt1mgt?CIEJQFgSVEWfn5R{LC->)%6~~!3!^x>BdA*Jm z<7#mFJ8me5S)|y}O7a<4z6>DF@)#(4&3-&*rH`E4^fs|l3kCRBvYAKjBj!8~TyK{jB#N2ICI*`( z;%PU1vq0tN@!BbdrJ%^=QI%ai0Wb92tTs)W5D0gISdhg~9aO?g3SwJVuplCBH!%OC zre%lST=zTw`Se;iNB2Kr1n@xp^>O?(?26OG_0!YgL|~81VDoy9)+W{$tQORg`LP+` zfQd+U`Of2OoVqoGK11!*t0+KE-m21O)3i1-fed;S7XVk>i_w50QC*4)rqozl?#p$L zHo(@Pxjf`b3n}ph-Q@*E|f)-=2 zlGugut!>FT3O|lqy6;qimQE%D%VV0_v;DlhxDBSyWNPrVLU2Q5TT2^ojCn9$pdON* zP**5Zy(-)FPvS>8svt~k>ht`^qA7EO= zfLLYeH@*||EB?->n9g97!4*Id-`#+daVU{4Ebf@4*vzoEcR+{<&wRD51K_CtTMCo} zdGWU3Tt_YFB5&HoIC=~6$jg6>I> z=TLxW=6KbsH_!w; zEfUK8$Hvkit$Mb_2&4=@<%AocrE@y26i;a&gsW7r9kR73!A$2>jA55G&oNg##o7bm zSAZBE+v7us4$0$Ig%?8_2Wgac{Xnm?O-}1S?FTpbybl_+u#wUpXnJ~vjqXBaa>`23 zF~E0P&VZpB`ulE%pyZbM4 zJRLT%pj8Zo3!cEt6$`vkcV)`50!FmKTGX4~n>`b9dSih+NaQ^Q8lypq3yByEP7|EY zonLBPGC+mt?O{+sK&jbC^WI9U%11ZXys_fXFHl1Db96rIJgCknh9>)y22ACm%%y52z9?+9K}^M>2;8~*e&1!|RqWld?taaskqKIBXw{mY?qpdL_QVxtw&yMoHpI)@cZ#{iZ3%XOb?-fGnX_+?jq zvPGH1;}%(k*I^umGpLV=u8RG9!)9O2QG5j(6HeV?sGI(mK*m0BoUqcDKo-TO&65WK z-eE=RT*Y`=ni)^%anrHbKP=~=A{hoQKSc!s-pa1$bS#l;+h@M$bh;>p&g*n;@k(ba z0+PlVDDqnE#DwF$2OkMPVHm0a2#?9eOFaSXhxZ}8SO*oT1?W89eM3IuK>*%zqc}^j zc5&f}a>jqiL#Lkl|3HqA%g9*b8Zfm`+^KTmXJrFkyUi<@biP@+t{8);@3qxQP~=#&_f{9ZwL4Qe)az$hBI#>FPa9 zFN8gJJw)S(QfP>oH|HTrgS|kn#o9JcH5isIr-3^wD)>PrZM4vmM3+u%TsHPQ`GEmQ z!p+r}c$bi>n3kYA{Bk=*-(bm)jhZyNO zY_i9l$@65SCf_kW{6s;-pU1xfA=h`C7;Z{tQOYF_r)KUF6LvdmjfwogY?55_E-!K0 zljBz6)0ezKx9*A90`StWR z%{ug)H&zAG?h9G#w@m_2wROxaR!Ty5Df1rqgOahHQfLPB)LezGYyxNl2EZS6j8n1| zaE!6E=g_yLfw&`b*9Bi?t;crP#M4C^6BL~GcOX-paA{sVsq<03M;S@}o=icl+7i1y z%u|ShU~YkyhP&lz4;EAd9~fBlh8VpyXy89%5tLEqTKrnXYA##2`~GE-f11u_XL2!p z)7J=cBOuiFR#H{n%)$ZCcc9w1$bWU9#HO^v03=zpgI1ojyW{$(sxu%KwfjmSzxzte zv$C+S!42AayK8cLhC@b1fjKU0M@a2}mtVQ6<4mG06%zO#SZjV*Pw}9dGC+5(8oU>* z#RbFl9L0h{N#|OX8D`TqX{)qut&d;6|Ggx(-`x+UwwIx~TD-Hk)iH~zcB}AckABcv zD+d>2aK*F@3G!2+{dbgbugz{U^=xp;4y&Jk0~Imq*Z$`5wXltc8jt8!w^Opjd;+L_#7{b223_|R{04lBJZrcE)NHT|Gznd+o9mU4bpNDIMKGsb0 zfbjJ^HZPU@u+V``3Ey#Q?*1ng{2b|=-F*GWR%-auTS*Ao_t;E+_|u&Zr{6TtXl(s3 z1^*O+Xw0lZ@%%*+CvRoHrFSG&G% zQX{>@vD9j}}AB@yHld0v3$1(z626oAQ_nyG2kNOMX9A zH*-Lw@ul!XOT_FbB|f2!hz47jY!#hCzjfp8M>93&)KhbxSZA>2zXKc!&RYoVza#H3 zZ$>)xpC|mqH!U&Leipt>&P{H(e}FTw@Cr4e#Z{jc4%_tFPWI}Z5@W@~rOd?|FeLB7X-C5ja6 zP;6E6n=&SN0N=+;DXATk>b?LCJSF{WIZEX?mPxx&l{GOO7-eE>Y(K! z{E~iTy$B!=4FsbLb#0&XuW*1A5y9bCxGf=GEYqw&_r+BfN5hrIbAo{?0M?3kggE-8 zK_Y~?I`Z*;YMBBG#O*LRHu-1!_2B-QSMSi*Nw1sWTQ0Yt-1AB7~3GTG? z?HMx@YCA?>;I6^!*gE)-ruo`{M$i6#D}jUic5Qc8xTaSP`5gl#r1RC<>>M?F6PWi_ z`lTGr_jYC8?$Q5O_n# z4|FJ=SV_0t^bIdG#x)RP`S&2D?0U`%Ak;v$T!v{*lGi(K?Rf~MVKsgiLZMjVen-{| zQ*pUe{9y??!L@?u@A!2Weh5??MA>P@e#qOaAr{In(nn_gd{PO#+&E{kOFZP}iIq@W za=g`g0he&h#bn0Aq(fgzy3X8ue(Fc$b?KV5HI;@pD;f*v94t0AAasS8L^ZH8pe0d~ zxl$He3*37*gMtANj?om1vbuA0MB(9_IFjayYj6(g(Gzg4{<>9Y_`19m0jnjEPoGiE zucti(x)-L9ylmIDo|cR&(yW}V{}^jcML|SQ=|TI)rmVGsd-XT}0L~EN5~cuXEAOvp ztM?V9$hS>g^~jCDM-M-${z*di6akThcp<{LnKZPEXEZltvmpG%gZ{eG22v;5jkffP zuBa3$%IEGRj-Fd@Zry>CEILFf)1Bd)_0C%&yFH{RhFWc|kdGEhha6KMbTcws7h`>I zCp8WRI+klTib%zShFNs^9#L-eK(;JKZdfcOu@ay-PI$yK{KD=+uwq3b7^ z@Al#?=FJR?P!Y5UR6uUh27g@uW>}81tZ!%q<3&n`eSj7Y%)3e&gcy>h6U~Pck_Z@w zIHoa~gp&{J0MTS{z0rk6I$BB#@ z1)@2e`-!#uDs?3=`Qh9uY~o7uw5MN!jO;^P;xfncu4qJ4Pof61=ErhEK$4zrTr$42 z(#i_4;x~U%;Z+)^aC02&pdr$ZS<`e%)3-j#&lg~BH)OP!!UeHCyKw>^%hc3b9h~}N zs(-tvtQJDz`~dA?+gyR*2^3-#c!C!n;EI$Bq0%j5G0Y07{sWGJy!eNnOw z3b%s+W@c z^SCb}AbK;p_)5e?gsZ4eo`QfZ-}n*V2CJd*XZFY%L>2Dkyn<{Lk%a!&@8m@dJR$GI zL(ERJz46=Mh(x@bZK^%Zy1!6tvxvUQb>%=x8wL{z>U$Xl0*_l9ncX`$ZT{g;#`iVESFLXXZ(hS;|sYe~oGS;Px3V%x#pfI+UTV zhSY_*P3j*3(z)z%6Vvx_fmly(Ee^!xEIRsRU7*U5{}~3m+|x9ZAb~r^Sv3qhfP2H$=ii?$%T+Jn9lR z5ocaAHu<-039NTycT}5z;;KBstY$e*Af35t9CHg$$m5IXr3SO_}LHapMmx4Q8(RDqkGuA#(z9s7m&V_Cv zWunw}4suYuMpipCM0eu;Bf9gfOu)P4Bdnzzru9*AOoZ6k?07Q@yC(Y(TK1u4u|L@b zk?#bWL+20U^dn>XCy%;K%We!mCo|j>4-rv-NkZ&7*s#^dc)QNG@8Z z8-=p|XQ4Psaxf5-Ka_Wrpezp^kd8-oyKYUwk}G0M{C5PsRFQF00-<}8Ilq`}Q=qHh7`{Sh6L4|;q57oN=L zDiHk$(F?3%n1iHHhcza)RWk+C zw3f1Rs8LNE>tbu77#yK24@r!_jXt(Qh#`3c41T0hbo<+x$Wb7_kU$&(Xs-Ne%o0*3%HktB)#}ic_sWjUb89 zft5WNM`C#_8*~61EJiK@j{-W5yKo`vjk$G^C4pc;srN0Nz#l>F!Bi`B zbqJfBSvw(lLYuuErXXj#?JGyzRe_p}lG;G(PtX39CXV%HG)RCaUVc0O}5uxt3ZNhf1Jka@qO_f#%Kf9}m2CasiPf?=!#F$m3LIOK|0KlWTK7&a9xo*r2{>Y`Gs> zYtp9l1RRF&!D+d2L@NSv1fI%rjQRDnC^x(WQs1h&pn0SRL(Y8wxm&xYNuHw}I$PY?r!(~2dQU`+GuP`9hXLpn91J9cP@rRFPQht-X`pjuNe9YM`j+8 z=!Qno-i@tlX}Kar@`)mD=TOAQdCFD8Q+!5*Le<5!M02cr^O8K~s@i5iWJs`1b12hu z7;;$^`>#~ZBWvM+$~$)Ya}KozS2jZVBWiTY8nrjC*r9%Umi4W?r$yRpt_B?$$*tA$ zxaNsi3;Kx{fn50;cQvYklJLG)tGT7wXGsYzE3_Zme~!A!L?ei-GLMh0YF`9klV z1+60?aZWJ+>P5g3*Mh;xjf#&Tp!GpSs6>4&4T!%|0X68xwx6W*>BNiK;LBZN)S}(i#g|Qi~0R z1WKz@8eHEk@Kq;WRF=Bgb+dh0%bfGw($HRPW4=R47!e@|%A;OJFG&;5F6pf`Zo2$K z6y#u9j(N^s89EhwX0F}$M*t6Ts)V;LPe--g>Pm;&4}H7pT9pR7dx!$~|37wNy4qD;aXwBsY7}K z;08-!F%3i5H62i#m6esWgjQKkehrfb1#Y-5S#O`o4`dyQ{i>jdjX)wIQU6rJ#ZW1S z;&j7bo8AQX4ZQqaq=ve0o$=m(0)R=Enc{2bj?b_<5LljzIB{c!az`w}!z1Apl4s(t zM7Izf`UB=bTZ8UsvE8}j>&xAaIPsyXY5K02=>X-y&ys7OwWL9M)BpLaf}sUGyQD?j zOEZk?SF`JObwXg!5>7*t@F)E!-<924P{Gt|az*((6dkTTX-S(P2SvLgUq67e)Ou`6 z2O}FQZ&&|(u%Lt0qc2@}^;r?npC{#luWc?$L-fe=Gc~sA1Lr8NGDqTc=cl&g7@Gqx zeTUQ6+FunSjm=*fJqG7G+bs`D`wsg?nAV$k9>U2J^hW^l-?E-y*qaDA&ZB~|L>kXG{+5Limo=po!?3d@;t z_2TxamqTl)u#vW!3iB3v&-Z(;_wwqH@91|tw z*XK1n;n@q$ZpVBVW?7JvGiSZND(q+*j)>6HD|x+*)nOii1;t&1fo6U;W{%aW5?)X6 zpjh+%Et`%hpUqnsS1GwOfB%`io)##it9`ihD?Aa6nlmA;C9vcT|=#@AcX zjWadf4ia@@?M6~m7>fprV3ayq81}Un&aPBBV>d$*j`*?mp(`dCsTm#}0A&5yxE91j z_Oof8t>Y3jmn=M*;o`BJP`zoSsY)<0mPaov^ zs#X8K4B1ABYupUpvQ`{}SV#3x!X)^p~g2su9s#I2!qtkw{Bqfa9Y z)M`l3B(L$>==hFpF|nvNY?;sEuP@#&_{dRb&7bzbbtTr7^7#~)Qe?m;)6Y@&&y=@zdW(^z2_SpZ z{tAR-liAHEWCVrX)Lu;9JjvzAiB?k0)Q6mEM+WA)T%Yo{-1RkEn<};n{kos;tv0&< zysfAt}`oFN6%(Gl*5cTZP=hfFUcurRN_+vrL+I7Gq`?;dO3Tzs?ch715d$sz)>o4fWdp^ALGlu+c)0P z^M1aBwnN1EN3n+unjQJ=6Ad{uCh*7~ZUIuEmAS zlI`J(t?Jw<(ZiFm3Z>ZK-l>^a*(OV`YyE}^+5EiZ_`<3$J8cxt7oq_sE+!3kWkaxxhRn}*V=w8)j;^8%D^AfB;qpI<*a z_gMvq&*#F7x>v)UanX=;KQ4+e|87nRJ_GNuH4ks&7aM*_%QkTv9ugwFX(S#X04>=E zYX7DuCMU?lm9%~8gOkO_Q#xp$^WASP?3F@RN49k3IwPjO z!Z_YXcZ(xh{Ap3-QQNWI(}&OY>wr23Zh49Nr-L;>mhPNN59|Z8OQ-8fv61(vN$Wxh zkM{#A71y9Mb8Xt?!VkZvJOk-)wP}2^SchFi3yHj2jZA$0l|YGdV2yg}5N;&;xjzNX zw)YdZ?z$4OZs@jk{|IuvpZOdX(NG%r6{}1d?PQw4hAKHJT6d1O+!YgvXxwYR)%wOIgk-Tas{S`g;&)!P`hS$N#H-V3}J0b{cK4|$C>q*b==VU zY)E9-CEH3X70Hbi8Em-jw;THcgYtfD|5i1=ow(WAgsK}tbY~22EN^Vu%*=mJvR5Cx zm*UD+tOQ%tL8ItxN=*w#OiM~nQ1&)#_W;{()g;&h86w|dsN2ZohGinj>DSYp{S8>% z&O^XV=gcX`uT9~qfbrEl+Yj6<8TV>cy*@GPW_sF69RZN5AI_wJxG`&ZV@a8f4~}T? z`$vsti@Lo%H!8x$f?*EGz!;YcPVCp>04wn6kB(1P5}(Y3gn7c-+S}P(RI6#viClXq zw>}5b-f@Ps{O8#pO9(h})Mv}c^>;xeX1aap`@HwG%Mw$< z5igF+!t7h`vOn7JY0aak~OpZSDIacShbBdsfU@#B7hwAv%H zWZ#y%3IOTx1k3AVcJp=X>{j9?=ZA=$tM=%0d#`pTck7KnE!p{{?T>|(7Ww`iF(J#{-_QN`t7@3F%9V6qD-$ZydK(B?iu#bxu zudmRAqe2qQKz`+Z)SJQ8K^@$pO7+*$CoeCpK5Nuft(m_8`reC>Mrm=nzeLUAg7+{- zLSgYIzf0wNR3w+w1Y94OA5k;tJCMbgk&rLlJkvjpJUc%Fl1_YCKQ+=%`w_!g6OMPT zLD}O3dzswwY*(Vr@T8=@%3v5{zef6a>HHy}gutY zlxfI$yD-+RS3QsuKFXs{UxOz7|F*m=K2oovMd`xVhuekEBykCwZ}zW!OkXE?RcNx} z&*El=7OFs@bXfb3hwV|<#sq$N*3aHcVkX%MBiPEPe}$}kvL_*ReG$Hk_*ROTnSV$r zPhcHt*LCJfBRAss*Usq~58N9`paJeBiuF7y@*_uuj#4MYNyzsM4!*p7o=5B7*MB5dlVApXxfW{0CsR{Wm)`WxU8R(r221d&m(b4b_1W~WGra`Ti zr+xApUvf}*k{N2F<__x{^Ak4``w#h`cT}9y3bPl87#+FwqjN3~9RKPvI7&V<-HH5` zHHf<2imExDyugCl5(dMvkh6xzYw+z68{e2Nn?I8h{F^h8uJ5uNp{Su?E-4cpf+kRYA2{Qng z4^c^)LS?Pdy^q72raVF77s_Tv3LtELj$3zqy0z(%wsh8==S2CQdLV|cXAMK5rn<+c zpKUZ-W7&~zbIc!sZLAv~E-~$UTpVXYK1^Vv5Z!@dDKy`NHCC?&?F($)<@wuR^xxM< zsBDu11nrF@?IpTZL!Q`Xe0AqDK7I^nL`QQz80xy{49}a(MLQ}^3{%dZ3{XDd*O&b( zgMWYLV>$dO!q0YdgdHm{DXN_GbJ%1pi17SZ^wyjo! z>5Y-!l#?di|K=HXzRF$?smQWkDRvPf0T#qqLvX|UOT&6V%OxmrdnLdxd`UR))xp_8 zGZ^$4%#U08(ZIE`?w3#4EAJNrNMOoWSRmWED$IiQ9kJ}Vnz?=g*fdw`86vxZhuY>A zHAL7_8|MK#DiY`Tg$OP=aity`$mZ3zKzfw&6{}XhHt2TvB`P=a0_O{cTfMQ$3pr(% zwUP+=_b&?vewuGu&Ajc>!oniwcF~k5ps>!hHSI_9X%N#FV?DLmbu{Eg>kx5QBk*y) zls`nIJO;#?08W~{vC#Cfy+;QebkOBfcz&=ki>s~!>yf}g2TcQ-Bm&O?eHg2EZ{UO0 zSrm{_;SjLU;Ct4sfAmOQbKbuM(RDx3aipz^}l<->$t5l_3QNN6j6H1nbsKvjG}ms&b1 z`#+*IG`}eIkC6qiF6FJuG|-)z_A7ngHS9FS!(+Oeb)}#vWE>6(k|X#6&+)Y!-m1yS zwPD!$qcM(%Jw%xg>R&N-S>jr4c)NhDCo(+OHL%rGz5lK|d{Uia4GPO0OC$H;$zO3Q z%by>bANfvYm}{Ip2D<?B-!IzE9r+mBC(^X^0#qRHq+=CQ_Oak`A>~;x)E1 zxdE91;ova%g-_@K&5hl#Hj#a`8`pjPx z?Rc$}DX}ss^X7fs`}U1pHZs`}#w^!OmTROL$Kd9jw6GuKxT#*EUYkVbT> zIt5t;yJ&?B5D`J0Er_{N+>@Cudu zae?6oD@oMY`0N9+p*WZKtSZ{N1V{E@O{z4`WT@YTYjNZx;BP(@0!0xfPy<0R@=1C> zOyv~$TUu#}?n;@tjp6!A2D4raws5>&KWKo}W3Q*ZU`UgYT>Fb9sS*~-3K5g&KR`G) z>h#-oJ)Yp0CiNc^pAgR1;J64xtTfqA4Q+l;vVA5A4}!0kM$Hs=#Y}>yy-C#O$SCMt z+vraxV@VU+B{V-AtKH}c0B+FDYm0^{?%xqdp*vbKWpvhl`^on6>@OlUY~LsY!w6h# zYr*6kJJ%Iv9w;u#CM~e4bbrNCa~t1&GA~PV^(zMwVI>mlg;BVT(Znd6Na)7#1yWt^ z%86|ACVXhdo59GNya@3$+-_oU&EEdut`@j^cHOqD;q)4t%|$;po<}#mabcr!aKFN? zwGc_(pSS zb->u)95PqZqBgQP#Kt_TEe^|o`Xlf3cS=u`*Z!8U`_>OhIe*1H^j<*W+5=+|mL1=3mQf(NbXn$_g$@N!hql z+CBR^pI>D4`xshXkMr!}eP)??c=w*ojfd&BJoZlE2Z@`j;LxeI&TvO^<`lGlS|;(w z!zv91GoO8#775RiIE7QezB&7`?_s-exZ(9bv&FJnZBI}!3gZxfb6o^z^O@d;+@YKT^$FoKx8WeJ6y4gh6le5yg>fq$G`>r) z+Mo0cxwvrehSqBMbvNKTssQ7Gb5EHkP>OsM*u&7DHnh75z^ zAYOeL#tF!dc6}P-%p51A7Pd)Y#Ux~lSER&h4ghACujQpM!17;fRsCLFY4d>gm&;9n zF|TSGBAW|0jQWSC0iEQQJUTJSBJRj4V2lcndnLC00)%dRwqPfRhz0%+EF*fWK>E5^ zOP271faBF9(f*1*ooZxT-gU23t!`VOKN&=|N0y%b8|w7KBjN5;o~A$w@EpQ?9`SL> zJ+Gd%OwG(1)hSQ6z;uHT#xUt(3}0|7;Vrc?V6r|$yl5x3*!Cw^NuKhP3tfF)4T!hf zy93Vwe`b1g3n(ASBl88hI`!R(x8}d#nTS*RP5tO7_2%8h{L^KFlXi~O(9R8r(gH+f zsc?5&l;x8hlHlQgd}&bjP3frw+hyX`)3VMg9jc0UKI)!vI@mvknWoZ*Qm@KNrma2Z zmBJ67Ual^Zo45p6Cced{-d`l$X{{{=F+Pd&n?>!B$_<>q&%x@xKkd~Up)LpfAk8%4 zr@p-_gjN`YCVUTQ_p;&bqc(Re!Vln&oNgvq;>D+zZPh;*NLQQ1=?F)F#Ye83Dn+c7H}+B>4{AI5 zDY`KOTEW*uD21S6Yh@93=U0Fjzxzd?T)boVxKp$v_{`HMfd6ol-TMB>{!e3W2PgLi zOiP?Ay(YA$s~;6rs`3M(JX^S`D6#h2>BXm1 z(i69eKi??r?fKq}-jVA%nx?qq@DqrcqJUXhT#~Ewftu8M6;@!%d>jP=9xp0l=HDz7 zpjdBFL4UQnHO?4 z%1jt5QqYtHSEnDBz}!SWzRRDLbd|mHP5Q0$40!>U!+zj3`RH55L-55{N)wkZgv?xe zL;mxQ!!gbdXK{-8=FfYrm)ems;1Ty#>v|39Rm9vgSpQUy^WFQk-{XgPZ@!iB_%I^u zHZA<<=0yinw@CLq;4b-c4*J)*m6=FK9tUNeeD}MfGam93#%=$BMH!$m|EnkI^<(!;x7Jrk3)}seM}d0u-zZqQbWl5wXJ{dY)Rp5{W_F4t-ni2`10>v#eGHy;eU z&Q|BW7nm*fKmAPLUm23Ta(FPY&`8v3HU)hUf(S!(AdVCSOEHu zcx^d+ulH?{HLzCX2VU(nU)*oJc0W+I_v^tI#I|S{SZD1&>+JZo&fCBKc`#&)LV$Hv z|Fh1XU+cKN_~*gUE$A04u(HqsixwC88CHPfZWg3XUVR$m@(aG*KjC&MYb52AA zub_U)SZlVNO9}w{>T>$?-wtKxn{aXxkNl}wIi+<&(s2z+%4`olH-C_sa8Z=Z8*Sbf zW2LN8K6WzKK|E@~JFAKQel;H&;$-ia9Df79lP_cIAh7?OgZaH>lL)^61LE)h4CmS* zI_&o5=i6$rI2RcA*xl!P>xU1H{1y*(XT;;+UVr#mr{q^}TV*Gjuf`f6aohM%`~E8> zjuAF|zM3n~VR!|{OBHwjl-&t7LtAvXDS8;0eMihhw~cErkxFb$JzI@|28=zsAeX)Z zE>xX=a9p{5@9fL;vfh)ij>^Qf*fdI?w(i_~BbYW8|K8y&_$JIXv$&vre9t}m_W46S zT$@bGnkp!_x?fHbU#fs@BEJ8tupe@{U|e%tgYW*oSctHq|A4Gy7ttqZb3uECU;|F) z<>9^l9_V{T35r!yoP`gCmg5lXwr{Aa#x%*_ioB)$LB+|kTeM?R>l5dZ)U$26o&y_h z5Hw`;hX2;@vFoyvUf+3*(&>#!jaR?E0VgJvaodaP)S$hK@4&xJI`t3s+%#LpM7cr? zE4=>vb7yaSEivkIQqs&F%^iGS9vsKV%PxB>Fxub0+9*JpwjNmlGOD<9D$eqD*o}l8 z?tGW~Z!6|n=slucNy)9rJ9gOjjGy|uNtW>XEv9zV;h1Bzo0spLN1Xn=?_^x)8rjoq z=}vRHm|&5Ui+)`!B+~q>O66pr8sCSCf0I`uf9_dkNME+O(AM*v4Y3-6sBBi)49*MkcoYU?%z(p`D>szu$WWjJqpJSf(mzus|+9og0Ir6Pk;d14wi`!qn5P;;@? z?3q{p{Fqzhcb8YLTAgo!`ax8vN&f(pr8_Xt!>v z&|^c_XO2syMSOef6osjLZ?oN^6)x9lO9{LHJKC7;{C};_8M|c7Kpr%yKfgJ5TI`>t zck#}F-2~2o;39=+H-){B^K&5!s>hXCdJit1hzIa$3q>$;Vh<-vuuT4eFaI&u{chJ{ zW|ds`^SxF9s%x?Pz18*%diQ9v63>>8i>b~2{JO244>XwwP;|9aTumPMo%RcP6qdDr z6fG<{o7M-0$<-Qja}nAXL9YfaJ!i)|QL(gf9hHwO+xfok|F5@D*R{FeTTVzoTzgdd zY1_H8aXZxb6hTDTWHEmgv&|IhyD;|4#VjTq4f#j#vU3Gwbas6jz0p6rlLZm~VyUFt zuka3>U|8i;xbfn`jVIUQ6O0#gMQ(smgZdK4xBbQ9cPF)c4zM1ROh{nxYA>1Jq zMyX1%g**HlzQ+;1UVw1A28Lcx2vMjBDM(qc%`XJK!O zG3$(X#8N}m2t7k1W}4mO)x_%gqf&ARwFhU2Gq1V5c}PR<<-29C@R`MXu6>o)wNRw; zO;(w|9Ft>A3liV0rG9u01;1>>mCn~>c`(c3S-YZ;a;wv2i{-cO!UZ9Zi;`ys+U*()) z=3WiE@J=#~NT(F7r@MsI>aAAik?Yy+QQ~lA^57jwV`x->`AqRCPx=X1}izi0W zR@uHYKPE0S4Abwm9~uzw#+R^5s;0Bhi4m_*4yeRR$Jj^f8d+Agsh|JAB2%#ygEAU2 z@c_+Ck2SnGMvjtN4Y2I%bT?oJ%|=F7&5w0D6xNff*fCbK#~6vwT<=yIVxr`@=ovld zhn0>t1eX6fECUr*8CbFDIu}A7Jek?nx-rmR0L3(HBM(dyk&v>@uVwNd-u#P6M)Y@x zN=rKQZnC$f%B4Ry5s0OKNwm!Dm3OYzNBhFA+n}LVr+xmW2=JMiaTV+E_TqXnTFB&E zaSgw93-+xRlJip?skAag#gsyDBsodm22r$JJ~Q1|@>jP^AY7F7NpK%cJ=0>neCCk| zO(tLhDeULd{{>S4-B;A9Tb#T{+7<7eWwVR8G0L`nm{4LY1s_Q{hf2OhA?+$qB~P#9 zI{tyvz1=hrCBdMiixUb5g@NPuKokE|kEB_$Q&8fTopaZv*oS5M_6jE%JPn3Zzglw1_U}FQ*%XZ<1DVe zTu7piVp9S%1_%lyai6$#rHA0^)G_D!2#UZ-`%-75YOn^OYB9(=tA`dODIkvft>xe7 zUj1tRx1n9~@_g+_6czb=4}H0J%`L@b|7hDldYr`rPwNXsRb`~IK-&jcj5ksWO}J)4 zOI5_B)Fl38r)z9AE)3tTMNmdaiTBKvUQJ)NYNFks3YeVJACf(O#=a7;EIVv(y_7d| zyHXA<;NS~vIw$t3p zvd2jqt-a9muVhYtPRkpAm^`n3bSQ8nUh`!V<^<_jyG0W;MXWiXB1g*%615z2kbbkl z3TlDnJgPiq>DV`vuc6-g+?}de-%-_QQJNfR4b{YP1c>2hiuJUJ;zS5m?&l{VGB?Z7AInpsMiVmh^wbhkjAV0gJ&gT+i?2CWmtHk z5iyVzbmZL~F}133ycGEDz@LHPF%ML&l#4MOBg~pcccZi8RjI&_pj(sR;**^i%_&zA zNmJ6X3o@UWedZ;`b@Xc$!Hnu!Hs!c8%33qJod!IvesT5{kxoO}1ts82BVC`;?X7FC zK!+y!O^ZU`;@iXXxz*F5hAh6*D*ugTs^{~6OIqUV+VI=N32(D}O@%+0Ni*3mN_=9n zn@P(0O};W=2i)gDGPR;zFo3J_f>tzCd}2>^mXOqgOkquD;S9K%vpvFqT{e;$7N za6;eHu)hurxSI7aPWdt>zds^*7KEGUaa^qRuHWJvI>)waMJ&O?jQv{EE_H2QpKaGw zjY?%mA8n4%NFr4U8ZgG%%J_+&Z#a(Co1FAfP;-5Wp1KFMVCi7|&xKtWurr&FCZVnk z*fX7yjoTYj7@jHl(~}H{#`Z{?V$1ihM%!&MajS|Yjy2kA-XwL>V3+hSmG>fdt}~}IBZ^FS<#IyI0qYfoL4`etZ^gR9iE>3OfGhJ;B<@hDniP5S}8Nccti#c zrqZ7-j&5sC#~pGGOka-W+zxV)iltLv**VSIPSKA#Pg}7>oZ}ACEW1Q!CW2|XP@#l( zh~?>aRn;kt8(?~{ql(&9Ls^4G3X@&b5IZ|H8Tkd;b#DJCb*bolQNIS(K|#F=vx>Kg zbd5nfQ>z(;UV}_y>eC|mS6T7oz}G{_gEXAa;wjoPqP+y~c7+YSXCa@N#2SG4*G7Ua8RN z^B>L@aOAD1#l_kjcfYo#1T9NPntS{?2+DnYxbAoZ);pm9%6UA~gV#&H(5jS zt!CTO=%~n6-9JnPuB=7UZ$5Cp{$Z5a@zxy+X_n$wvan@j*nFi2y(vV`#4GO>o(^#d zUPE8C36~n<+^VQ>kBS&^9INKFb@H<#;)V(Rm2 z0C^HazQ?Q3t%keiiiL3QMd+cU@Kw#q#l^8hO%cWP-oFryvnftBM}zV5{%#ZF&8UTq z_hwSClQ?d0^n6I}-v{ik_$kX;W=5??9%eceF|LdR{jzvh5165ZV$f)a_EG4!TXt=r0evGx5``ZH>y=a06UOWW$+m_Q}o@DT%-cDdxB zOY$Mcvb2ean#8cIYudJg)@ffS!V0R&M3t~ZUiiesBQ$R;^4x8d=-3ky=>9Gi8cQ??9ct8!$2=PaHj^B^+S(v3H@ZM#@P5rqY2sgZ2I6dymA0? zR7McmFk_TNV`^GOwx^f4uV1d?mltqf7$M2DayNz!L78TCrKn`zh1l+VXw3L!S9~IA z{1gs18D^7}nK^sBpgFWVX7~rXBz`hCY5YoB(&=l+cGf$ziz#tl0h>})7B7Bs?7^C< zb_c>n&>kI`g4@*W$~;sL=4rCzr@}k3Jz~2}5uDHVC)WOAbJMej6Cew4?blJmWjo zvYU;H7OmhnVmaxVhQ{>Hwogbx-gt&C0NUFBPBX7JtN6phXg7bx+VT~l#|96OGJE<9 zzR7EPx+-7Vk!$%iogs}`(yVdYcDL&{RH6?d`-t?OS(D#d`cItRLoWFJ?Vjg4*nRn< zDe}ItoV((OC)JgbM4_z@begNC+j9?L4CQ?T0v8m@y*|HT5wnsjC;H$)w$BgOZXCS-PO62IFTBstJguv{{P22w;;`OZ-oC z1o!7IISedEWLlKDDF-VSwT8;OXJNdr+OaQN?=KXhNr1p2k#yVITJo$7rLBZ<$hqxZ zB1tA+8!AqN*$f!6bJiWtZBS!|o17#Qn4hWAFUvM)K||e^zWZ%uBxtbw@VbK8ZPs0C zS7xk08u&L5*{iW?`#INJuf^!DYmi_JV7JX2R)V_Smxe+mldkHo%UAa#^#*ZvVqW`fwjB)tis48tEMkT1HX~Y<1IU^N|iXge4vg zaIQoRjHXk13!!~ogl4%I?0u(nwiLpKC-Pt;Q#P%CnyG0j#i%+WBZ%Es;2(a}y;2hi zS*$Ru3y^~MJ=SbT5AO9ib%)82V$sr+5!apHVQ%@wa4J_5XdbX%PRN98pIG_L@hhKF7bbU!WGdx(5j_^QS8AviBmf_9y zl4hrXYlLPljKcFXj%RxELeASQ79KKc_F2ZmFVT?^MDKi|$_HVIH|1y2HS)uhS}P3# zJ+lJiX1As7vi1p7Od@TdVcQjt{!6>9f%~+aE!_mAST=lVC-;ooxE;+YRT1fs`f0_; zFc#j{b;?J;RoTAEjA6jFn7NI9Z0dcWB=NA4oo%>*fTND(W-K1#t>x+`jDB1wcO5N; zEunriO;aeDe(d9DO;u0Lq|4+9?f}|xE35O?O%ZB_D9u-=4=LEXAz?9rH9c@S$r~Fr zN;lT2{vzdKn_M*d;Cud~sSn_Ru*H^|8eC(oW))nYT zvjG}nIS)cDOKpj~!eJrvptWQuZN+n8EMC^HDqKNC>oU02N>uDJO}j94dKxj|q?S0E z*zdprS_i#Hakc1eAnxAimcDH}l9^OQRW*fjUeXO`wF@-8#hNP&1~!R{ zroe;L*b6cxPOGtAJ=Ppb_75@zK>4Z}qRLlKJwIF%+%XCb@V#x$K*)}@S=OEE$jBT2 zs|$de{(eW9GpVZqUHYvimSX7aCX2<#So@TusT0)qo<59jtgeluHQbU@o_KT8;jmlo zzno0-MWJ{pgKam3f(*w_=GT$-Jk2+F2ADy-?T!dDMg|b78!Qi&8~tEQ`DWOrNAp@9cGp=zx2K)pDrNB3sz!Cuq;{U=p)8v zGbt8EJ5qotFq=}XIY29M{l+OfTbZKgnRdrM&VsTjct;G!@A#hKKjZSQDsFIpD=o`7 z6CG&2;+`t)DJ=erhxt%{bh>!Ybd8UqaXDFZ;3R-1?l;awjm{pvEJsL?6fx~MuVoWa zObwPiD6cBwY@R5aH`#o|(s6ZH#6c`FNMqty%27jF_6-mPS_t%-VqMXk%sPZxkeESG ztqTnTZM&ARk6CS*gDuxcHC{d_PC0c%5<1;1Wz(O1D@s8_`p(YFPG=zyY-p>(^{y+6 zRbZQDUqD8pRrM23{DX|~Dw^%y@iZTCWa`atof%T!M;@QzhD;|p$A5$}mGat7`q&@l zH;{g!yq9L5&+R)TUMh!*sahNp^3nG3DbQqwt*>IwKxcPf9uOfS^x>W3^nl)Vw}!Xt zM}n2H%4R$f(UjNd3C%df+mcV{TiMg}_I)&av&i>TH3^sGG+{;k^YlchPvW_KI`$K7 zc~@;3pzhDB_JXK9HaD-rfQD-X_C3(pyM`*)`UsOD-`G~i)ND$Tmp%vxnSWE`ej3rg z*;*^3t+tUG(-kfnDV@p>WR0D$`Sz-&9?#etv*V%gJ=~(~iy@?{4MPsI!+`3C7)x?T zhgl(v4(1e-P{}h9#A|tiH#-<+^4Cg}TRYU$X=#@#uLUK^rAfRqq0E)H9zYx5VY^_8 zf5B2QRrCBdl+ElL`H3?P!k>wSm#z}4V&m`osJ`JWS?rDt1$n0<(E2pZU`YdnR;CHH zEWca=PRab&Fd)$7z|H_qp;2`aQ_(hELF`7C0Mt!0&xcGl71np;wdr6l(^ROcCXDJ< ze_+og-l;g3+CzKnnbpqI)B>CGB;AIjD%O}_Fhzgyf>qdu!dWE;{-@OeZ%QEpU4R1_ zFW2=sIwJF;;4fJgv4?wSnitOC>)X+HTruvL%J=qR_ooQ9XotTQbUrLixBg)(!o1Ez zPshd!N9Op->ktH`2kf;w<}*3)iX4^VjK^!M@@d^hml6=fG6n3RD8HiK;BEn1q_5Si z_916(0ydp2uQ8+wQe{Yb#6>Ky0Hpq|4hW#XjXOdWfc_7BB8K0+9#|QB@vx=%1fIyB z^2OY6!iA2^vS4NUIwo0B=K|2Ww}Ev_)@XBiY{|k{sOH#b0sVK`qW_Qfd@&`uq0D|# zA1Cjb%>O_I^3l^LbPo&7A7wmuaFeVp>$nn0skeX@7jjI&F&7C3U~2&c)StlMF}HyA ze~DI+#1KA55GQ?A|9i}?!1se=wrA+y{&?K7fz`N6PnRm$6t-GdW8bKA(}Q&C2-C+$ zA<9geb%i2d%vluWMIBlGb?yiw7Mx26eHD@#z(A`?VFheK5=JdARjUCao7Nqg1L-+h znFdskV?^DFuo!V4@()4>CNV8o{P31eh+kl~rg4|?=ipkGN@v&Ad!M426(z?_F&O9g z$rS`RUS@CYH}~PcL`N3fqJ5KCeNLN;>$;iE9NDmIx05wuA17088w8cI`?}L{1@%K- z{dOK);{@83#z$9DSY^o?%IxyLobBrIu60dt8)tpi%b%`S)G^vmhfa=|WC1jSD4m+WXxEfeKzf!{A0L{5JM`aLX6VQER?<~m<| zeH7q+8}z-%6$=kugmi`;uMjJHaYS-lzaew!eL*S%)#`w1%H+K_z&1OJIyFnX#;+Gt z0cUHY7ejw7z|^LR_T4@v&g`cVU)fMB8Wf=;kOoWvwW8GmSa5LOn5qOOHQo0TrZBN! zgm;FEy`VAc!;pfp-P2pOzb(74a|(OTJ5x6k*?B}{=d)pcvP)1+4PW4gf~eg zHG+7oBhK15SQ+Ai3zrGWjlr*9p*0^^XgC78zPlA#rzFHeW(IvS4Ns7k15W~MKjL1I zpwjc$Drk^LSg`LlW~d4TRvx7J&t@{djvt-Tq=QQ>5wi#;&BEs$;u1?0c+rM#5>_HD z-_r>GG|_h3?JcDU5~SZRIakG4SZ#9_%HRYXl>h3(%d1eq0coNdljVqYsALuQy|iFs zpBD!z9gR~%43q|K2GXkRgL0Xf#=sZdjtO(5>#f=Cd_D>7o6O8&8t2hlHd@oqrWz;p z6%FB_`GI0b)4a^07N2TRdY1&YGodr3n5noBazye>*T!vDDJRCKCmGy3|ATX{IC8(+ zD~U_)Ad$M^VO;wEX<`VHPBd!B}K&;P$`_>nN)ffs1ntX~p;SCPOtR-9-ADX>KcTu*c9{3q7?j?IHkP`h&L#1i%J!J@D$?0OH>b(k&C;xqr!+@ z%8Tq^$FVwoDf{ zFA>;hD`HtoEA#Jd?s*_toYhTq&Iody*KhD;_H+c3voFaV;U^7`m;#|SLYK8Cjx|eh zs4)i<8kb?g$UZe}uw_GQj_1dwduc%JMN(iXRVyR$M?mh)wv$bALp0--9GHV=Fx~D$_J}0pw{c7p?%=&XSkzvUbe&|Kn68p=T*5w$q1VZCUNyxg% zim~pMI8jZz9U1?&0QiMY3jPuL$sqZR+}PW~hsm7KV%gKSG4@XYoeGpcOZo5Ha?GPj zvUjjOyyu+sfmM1%M<*5w?;d=gQrNUyWFC$osjKC90(YhEYcoJ)^sBrKj7vb9(GZNs z=1y5_=>merMFNrqk#o&zfF8cR_et2a63akugQJV3%Os?bB}aAJC8Q9DOOAPT8nXBj zEp+`J*2Q?@zUqAd^M~5aptA#BPWFp2ns(j`GMZPrYV!fkAF#Is?i>YCefZ1jqy6PF z)dOTtR?jff&*uNv9H?OTapMc*zaODl@Avq879(m;>v=z5e>op-pP(*5gQQH_Tjp>A z%w*H3{y}TH3{HSl;Vx63y=TlmMwCsuMNdCFT587f?<(a_UL$i}&lZ3L?7!9kT0i5R zK-0Lh-)Efdv`V4Re-NUD=X98MICWpe-Y_A-%)QfbeQu&7pQe(U;{R2_Q`UwZ+9rF=5Hsa+ z#s-OID?~Y4{^kkN3JRB7cl>kYBW6f<47Z;eR4O}G<$d-ghC4_-CzJZ)WJn^^0xps8 zM8n2OwAI}b`E%?9Rl^YaH9fDvk``quZ`YnT{v9|dYEQ*1?zm+Su3jw3CkuU*`<1XM zlWNR7uNlcR=aAm*d@Q#*n}Dm$pdBg_9o}y<=V>Vk)4DPNl4mFKYyw;j8kp}&RP2je zt4rwqg6{C$9mlR|HiW%Fu2!FDOjn~*vkdDFVvq`lEEv1Wq)bVr_wq;7Skqowu2=Kg z)MJxs^2fhcp#mzCob+a`Wjf{qh^dcBn}HLrEM_b^VfoX?K++Vn)^+0w=inDvi^<$i z(c|y>S40OSiBN4HvZ?_)!)o@Pb3^>Gu58>hwEL4LRkIU%B~-%3Ap}#6PBzi*lNPXh z7~5_N#g|+Sf(g*}^QC|~q!m!p1gI+|0r_6YYJkLHQ-aw|w3{;BaOtW4tz1mOUOg1b z%{a%k=RW>1zQMQaDf1!*gHdLp7ta~+@3AEZeec`}&rar?B`MSM0Zb45F!TFZ9j51i>|acKUg zW^AjE$ePABYpDyy$zK6|1HBIHsd>Lx=2BzcZb*n8C@!<+4B6wCCszOF_z&^>U0ELr}b7 zt8e#>OKM0qrbAzSIM5?dxvaXn;*9zH*3P&`)woWQN6A?s!)tl&AO`{$oQaw&BMGTB z0C-_#bLWN?d#7(EuXbF_TPLihlGINxGsN-=XQ7nj!aMkNx3yQK8QZs^0%W3!E3H|RD! z9ipBK9$8h*IYVF3JBmu#lM)MTOb&sPi}IZxGpSOgBD{P^>4FzYO3UXQ@$nuTCPCb0%$R_a{kpIp(3byRQ3Un37Uu8F}>zzCCD_kmFc; zo-0h&OiUc|bach@8y8I{dVo!;XT`-zW=3=HVUtHoUKo#m7Nm;Os692KvU~pv=AhI1 zw7ReEa5;Hpu#rXjtYRh^S{oXneG`s$8TX16AqhI;fbO@e88%qM9m|~?9SY;0p(YL9 zE9*}`Np`XlYRC#GgWJdeFk#gb{3XZp5-Y2-_ipF^oVdH4BdT_Mn&f;UQ!ntTby0sA zRn@pYUOL~`ej>jf*{S<={5*8>x(f5UX~(MmV%GuHEY0-JFtyt+b}1M*I~sBI(aS)4 z`4)fsZ@reI1Zn4ym!_66Iw?xjz`t#T+#ow{bbQoJ7mb$q_$u?^*~4EeciS=YfiMOc z{(UD|1sP56Pj$R^W#*-jl5D{4`7d8b$`HMwh7G4V74|&_jup;R{>3rI!Z`BRpw<}l zTpwj3xkTfW(QL0}`Kk2tQ06;wgt)CbFyYVj8%h}>Icm+G}P<< zK;Uuvn!Z8HMVGfvRPY20zjv|JQPI{T$bq1t40x5*^AIBR}8)@C| zJMN(tBrNq{nTMu(?;WhujNEr4Q$O*eg*@>odOzn^kUkRZcQpqv_^C3O0(w__W4C>v zs%ws{-_qFsVeh@8noPU5QPfdKMHx^LsiP8_RB3_;Dop|b0-+N@ia;PTlz@N%E4?U1 zI!NfDBLo2{7C=BiAfY6bkrE&j2QeU_ojXj?`MvM?zVpXfXRWi&`OoFb;(4CE_r2?N z?K_e{r@~zWY-(~>oKEHSnn9xni37bpxosvhZm5oxfeJ#n-8<_*=|qYPx7A&>(&MBs zPgbw;)=qv?>N*j1 zdgY>-HYTl}%7I&nVT7?ypV6ybS@w(1$y2p6w=t}!>&?G$y#K?)Vayc62Rn}M-V6)@ z>HQBw#=oMvDDEE7;q{aKD9#1J;#Y@R;!*+?u0fh(-I`X{7!`;sre?;{x!t6L-s&8r z{QV{LpX&B+nkv-%EVsTT?0HBe4&UkjJ1@yqvOKD^%VFb16J>RddoifLV*dVbOI%oT z=W0>>rHrgdZ5{fyJH3!oQ|!Ha9UJ5KQ&$=V;sYgGLt{?~QOb~I$cVCs*WnM;o)*pf z3qae9wqAD%WJh!JfNJ#&oNnb_mPY{IWM`-L-Bs_qap@097)vh7jwN=Zahl{UMOu!y zJ8l4j99gLVJq}jPXR95(Np-&Zo|2|%Mj5@yI%s9hG!|`^dC*PeL)3j8*jl*J?Noxj z1%>N%Obr}6)mc9My&_!=++)~S$D$@qdKW5}; zaHH9qYHz>x3il&!IqXo^Y8Pxn`?toH(DgHJX?jBqcxrfEam>1E^82V>y5FUQn#QzN znm_B*nybeAH;_;U{~d$)NT#)~-sZH?yj5451`eRood!?Sk5lq)D6~ZTjLh!I<5O=* z%6oskpD?Ck8grwusW7e6P%pbIp4XsSJKcILM^O9Z^d3F>#bW+W(pn-}&^H}EE~8m- zqoIVfbz)RtZWC0Vp|fKZL1iDi!DP zT!$8TU1RbJ(kF6c<(INN6#{c0ImGpsg%)?09PNGOu;nld(#@kfVr!o=k?UA)kd*YE zFgTWcP#3!PsAqhrc4#}hZna`|x7YA}`1mYDM0yqU$2kQdmA`jjh}?fg*JI?-vdmd4+RG2JT?Qofq-W9#5=; zQMRPlgT(4&XrMoJ3z&<-TB>sXnWe|pL9>*d<4~GE=;ATkf72b$@ZJ*jphw@o)mTK! zJJMrlUo~DP)5ZJvAGOPuDVAglE14Fph$e(TL@b!&M^wtXUlfk1)XJ9@=5*CxC~55T zeiiE~&c}vRCCMKvDw1QT%jE#2|&(R~bkwJwi-6w4az9Vv`&m4Y^1zikPD2ck~8l}0X!;-^n|BYVU*(|~w zM=>D_{V{zk$>__*YSrauqSXmT{SV$49?DYa;L8RrBTUkz8#p5WwXw>lEs!S6VK zsoiL6S~h-w47!~OLwR)}IRbnFd%339Y_!pnl;8TMmJ&zQWzP8qB@XyemIuhK1Y@8? zTET`=VON@r5I|r(oxg;3XzdlznQb2}g4Wj7&)tA`p!+f6ol$3=GFpE|SFE~R5+<6Y zm`9L1K>re3nRAqZi%umv@>bV{j}1w{C6`N+W;RgH&AEHZ9Q*6s?G+qDw2$C*H{GOKhy;;G-lK_0ObaPfpV=_R4FUR(wG|;6AbmZ9L(0)!6@!ylx3ggdkA?`H-X#FO<>uHqrU@r?sMTL6{EGGMVw< zYN5l`o8A@(bHAbu>*g_LiRk79gMHb8q5B;?xgUrO{~}=tE#J6Eb{8DahgPUQCzCrF zdiWm6$ux3n&8M7pNF~<7U}^penqlG6_nNFWnh8ZyEJp=|E}gRRv0x5=+rK?AZoiuy zI;Kj8t{4saX#v*!`4W1FM3JA$ZlLK`b znn<6Zs)qbXzlO5lysue~OKEOnpY6=68j~pQe>R9}CxvjkZ9!RLgcuBkuXhB6c&pOO z#XHGF2!B}QSy-i)+Xbk$SGZXwIK%CiIr)m1VSrD*ERo75Bx71L3cP7}ppc@l)e(j1 zRR+;2eKrGioPxPY#zK^D5ZP29Yi`CWs5Y@MgI7?-!<*Q0xfnzYgmf|SPjw4HyQ^<2 zxCCTif^4zjik3Y{ZI>{$cnbEAJ4-Y8Z ziXSMl19iW`hP-?ik9r%PW##+24=a8|Ir_^qwBmQ-s>}ThwhZx$l|ePX7m2b+z1}Nv zq=42|u|o)2xterXCHq%-AY0q&qo!(v_g`jg53z5o`EO|+Io8zk^ASl3F*gfQ_x$=$ zAo?jTRs}S%7EQ-nCk{?DCKgbmf_k`Vvj^U1XmrU!k3 zteTd?Q1z;==ZdlwY(m4z8CA+(+jQ*pu)P5DZcLGjI<0O$_#A<{@f9mmxcH#2!z!KO zahXN|P1Hky$7F_=@797mpIJpZ$D-}Aovp74Yuf3~{LZqzin~u76kVY z&-X8#?_Gv6FlWQFaG1M~5{%aZ$%$L_TMbn~e#JZZ6@-06uMhS(DObwu!J=-7;=(so zQ`dlu@H2LAb-E7O10tq>LbL@oto6M7F%8f&(u*K0JK|JckRA#|q!==RxH9%*R9Zo_ z*Wk!Ai>ds1nbglbxjo7oMAv8?>TB9MzuG}k=5qW}0CNWX!wiV!7xvTmXO}(tI0ZJ@ z==bUlRbNSecAD+^39C)U{u-C$HqfX9gvVAmOA-WdVQe`>-d>qIVlREHxS?TopY%_i zw|BXZfO5p6#xgb;7!x)Z;)MEc(7zc9Hc9@lzW_9?>?G-WQb zIPaSjVfnxT{CPO<6r`@cTXdh|bOi<Ck{3_#;!*c7)i(YnLaYD>?-^qGkrF$ZC)du^KK8Ln@Y%T3hYSw&vA|5@Gr4kU_#gpkT~RerM=| zm44y*|M8OVPfsj38LeL!nOJ$`)Z~yWQU9KCP-^B)&VLekC)@PUt8w|ao>%6?Vm04& zvLaR$0}4=%GH<%nZrxdF*K}3i2t$zBsQUw+d}`y}*ijfTe=w5Br1O?@e*XsX=n54? z>{iXz<|V1sD7FYk2?Ix)fEQ^d4Wn`5gzD8A&!jUq`~Jh|fF}N5PBQ*~9~(Q^iOGwO zR$H&4#dekz&?Yt%yh6; zJJl0#7g;z3SUn8i)CB&f!Cb*u_U@;_O`7GGv(k#@cNZMDNQpct!YUgO((91BUen*^ z#-xXXGCfw6<~#N^{|0Pe=zVcU?FTV4(gDa9OO{T6e)yXR&vop`NW-CSSMIRt3Ynso z(=5&6z+~0o2GT;q>I%B5j7oK!#>6iywt%$xP-s=@_g@7#i$jN4sP`?nCfs&lUnng9 z^9gol_ony%)6U+*`Y`zu%^jna;%$eH{DAT}z#@GFkiQKzQoK0~T>9F0IX1*XVjI5x z-udPWd&`FQ=C>h?BjuNt`UvmO&7Kd=97{0_K6kv9J?S7~C(U6TA;bb{0%7D}@Wp#k z8m@*mx1G;+^^?t9GP>DV@_zWT*_bWj)vv#OaE%3@cH#S{vAgu?sO0Jhc!`MTb-IiN zw(iT*{hDwtu4Mn+bp?&(CEUoR@>k4{jsNssl5g632h)42Co<>;V6HDBzvyVOBJifQyK4Jo0R=YfS=Ezz)^A)t7I^qROniYN)hR@-#pCH|GjO#=c{&m zEV6OrLcehP5XR%c$CHr1#8zCfKI{tO(Q0lA2YnrgNfKtmrblC3(*qBG10D_nG1rma ziwm8vU(UuAp&o{pQSQPHvIH|(*IIS0s>m8E!Fco3ed2%{{P!;2=K{ThXMcV&*eBfn zk~Km+Nh1dul2VH2a8FMVxmL0GUq z!ySTE;yQ(rl>$}-yD$Low%u*6{hxfKvVQ6} z?*HvK?!Cw2Cn2_OmhvA@6^S!QJ?H~nQ3X`5hF5*^=d-N`%kI6l!!^?E*1|4yBrhE4 z3lxBXv+`>E5({`wagE7xse_X^gHrra+C}t)D+?DOMziqDac_8!-hOImhd#zUQh#TW z_X0JJuH* z<%;>$UX2r-7nO5;4fP*tuPo|l`M}z+=sMqp9ZFMvS?xFU#{17ln9Ov}BRszG&{loA z$pxM=z(0%fy`iwW;hEd2U{Z>p-Oq~6d?DWW#|j?#5G*8He=dPng%uvnzL?Wx)*Kw` z-ZVS1xqJ@siW>6?zSZJxk2cR-*&08&@{7AD5o@WafoF)+#$1M5>CdMKpDq)Hp^onD zKd8q&11FbY23WQx4`c+$-?4uexKsjJ6Ik&)9UfgSg51vK&D!>Y*EHV>n)B@RNM|-Z_PiOuC$b& z-2x;q>#pInSKGc#1%{O^+QvpB_Jd_K&GypTt~dCj(83J2ib3zK-iMl2cjQIMgs`u_ zy@*;ce|Cbt(Q&iQg))9uVE$Z?Dhn2j0nIgT;bT2yxzD9iIUGM$V8Pr;M++!LOy3YX zd3!DieMryIHshxbqO**8Lu85*)jIbYFY zb>g`%?5Agfg=g1WG!ZkaijIfhi=y_$NJK(8s&Bw_)=EVz8qD9+MA6usC^u|U=f!k> zqdF`iDlabj^NzPM-e(@aVgttD{9=17FDMoP>aLA~A@yW6%q13{a6TdYcznvlQOJ3# z3#YznRzEB=I9W986KKP(-o9339f^1lK8O$~%x374wdh@fO#=2~6A}gvJ}d1g%+ZdV zlykch*BQJhRw#GF7{z^@IJ9@=Q1C_Pv)tq0yHSCa9$Aa8o~BCSR>a`9OU30EH7dPU zJ>DA@B(gvgiaM2{F#AR$D`RWP17Qv`xnxwR(sicg*9N_R*=Z<)=2rCfVKM*_6v5H#0j;SUr(qETb<_jy?{GsemCGdcVVnliC! zfsg(YbOic%x^C=vk4mc*zay{V8bQqI%VNSgyc)3VmZ}MPbr&PoUy@Y0CZ2~m-(8ue z6)eAQecV?TL_AqypACd8XSSM7p`kjgysvhBLg!Gg#PsD%HkS@MRy;zLouU3p3eh#m z+#pqB!s;VkrUkOSTwVEPFfzr0^6A3NsQoO)S=^*HO=!50oZ=mqLiNe*qd%|H0$@5} z?lRrZABBpf9yE@-3NI{_V6@)vfA7I^Me+NJrYo1k%d3A^WWUVvBB(4;cGHSq?3+QQ zL)O-1v}@QotDNcBP?#DrC;rkw<3Ww*NY^bg$*wupxG|b_$FOS~R(RtS!MRe?k*t0D zDi7q{ari_ZCzP&GwGyf40*iP_5Fy35VqCEAN=Lgz>kh;jJRl4c=3WO8O@%JmxF&jw zzhxxScywx8T)Z=UE^ps>vE#m`O_TL;3mU`36E82Wfp!dt5dfPXo!LXvSbiv~Xiz9+ zs_7M-GHGH#al%@!tUPLOMX7C{7PH7lWWHEznzzSq)uiag5oLm}Azi=zq1R#yw}>gL z;q84jJ42|lfdG6)S1vw=7{*8-n;`?$;OiDZha@WPOfaAV;@vce&sIM-y4m3DlY^rN zSs|nt8m;cY{W(x6r-Zih0w6}pInN4>e$bp~%dO>8GvGn#M|WRp-=_8qPy8(31kr4p zgJKt8lMU&*mv41-)eD&m%r6Co`Rf3*ISQA(nfP=GX8(0)%()gj5dk^mi1^e zXaQO25mla~s$(a*&-;JN|KQs@Gze)Qa;n$R?^TISRmaWq>@`_~*B92}MORS~C>vwM zL3rd8Ah>)hE-W$G`9o-bgp^T(xy`CaJYE;rxD)rXX}U;sB-sjET~H`FuYp$jN}pb; z&YG-#)K@j|tF)i=yQ{~0zfl3EeZ|=5c5(PX1*{dhOMq;>o?7o|pVJlBA?}EhjfuBi zDNc{saz})OIgg?7ooTo`tzh-!L+4ZtqS=B!Bva!>3k-`S;bJ8t9B zzSfRu3wI|@BtsC0A#6}6AR3fOa>+0Niru|uSty$s1by_y1 z`f@imJTpou5Mr%DSD2D~*LpASQ&|zQY4X|deOqbP!ZhL9NtS>4JZ6#%yYCu*_dIMs zL#NRC!ukBZNgqwfj^~jF%5c8al+`Rw^SoJq(%Br*Pdt3W{JoFQ@0~M@Y_6EF1+&U4 z%0o_XxFv=Xt74qpq|&v?I4WQ21^`1iv__Nh61_d8Q(z~9EI3Gj*0;<`Qj5hM+{=$i zM>Vb$*c;%33d}G0M&s3zJ=s)fKr`N(GF^8hp7tBAv3&sf@kb50MkbYL)1jk8`#9=o zTI%>N!!U(%c3+I}S~)_0PW zpK2$m-lD3L>yc=gp9Gz;J$XDCw`ot5%(J#WPQRZsLgLY8ZA}^2%-)cRvc&<gD}i3|Lx12p&NZ262r7mD*{7djuovBA|V52lYy&$Z$` zDw)+??eZ!b5vwhYGncsFdtMXGzF0psf)GeWMDJs%`_A)ZVX#ZE;8=!3A54w#TniUj zpXmgW`Dq3VZ*LmeTMkGPkM<=|tY%@h2Pg}bx!S8jXSs6)t8LdpP zlrB_+>-NYf>(41E0CehY_-KNlS~eQsvi*M>S!HBDs;@J3Ou1g!lwfWD$cW;)XBKcM zS~R=Pp~UgR^?j+Cs1I~DILW+dHFGxBVc`YxnoiW@Va$S&I-G~tqxFne_(EU8jm&G+ z4TV#mJgQ0nj>#@Dk6?;+5K9*(Vf*s7iAst5^(Ri+7Yy}gFTsu5*EP`=m1t2cxDPP( zPM0By=2U+1d*#u}i1oPW`zo(Oa##4ZC7l=Z`3pc%kX7L^S~@;)j;9mNk3c_}swvAx z*xkB-<9eGY8ywzF#1KZc5790{u!8uwyzR6k&25>wM1+NbcS9gD$B^=jD6?z+Z1SoA z75SLENw;edMH%7EMqKdWMwZHOmw^t@;35ajIYW6Qwil?(I>M$7(s3+Kd#R7=Namj8YF}%cva)%wDA2k zQ9@Z~W@cyi1h@#8R_KIZ%O0VY?%^Aq%w8_8E41r1U5k;Y<$viHt_ZGA5bJo=lI7Me;8GefrSP9L@0 z{*00Y3@mCMn&FlRDo%A$1*rT5+?J9a)onV|To_D-uH`b)0G;s|LA9X|;H~TVv$U-x&p_p*)zUY$8^Y`Un*> z`x4r_3=F^vWSXF7|3jv^=a>EOwNih-q)o9uujv?~h4i|;$6UBhA2>=rE7F=E!aoX- z8mf>8UnZZ8wfc$tx+g?rn${c3SoNiAa!Q>y{=#BfnA6P?4AA0s*{wK6V&khl_-#e^ zcgwew%knZq4DDZ}?5H4XbVU-PvuHyAEX_vK4NxzbI&X`)8z3xS?VA3Vm1dI*TvC*J_1=$@q5$czq~A*ZXp5J`Ahv z2xu*JH{!r9K#EVTDHoV3KZ{YFRL}H4pi@%;b?#!3;h-~M<$Lp$)!$AuoFOCfp}Cki z!$o#JGg0L+!T5P$7HO~@Gzv)e9Oz$NQN!)Oa^hDW^n=g5=$Mid34Gj`uH5@r?{t9s zQYPTtApt7`9X`2ppPWRY5cDY$5^xBV)Fm8%$sK}1uq_;$rsEKu?Yx@ee|&(#*dNrk zn7W(YJY&Sf&e)s!QSC6B2E>0#wxjCeBWUB^XXOObnVVZ}iCtNY$G~jMeds8ZD@hAR zA;MD<@92&`1jPqB`(MHZ4WBb*M{a@E_+O0&1ww$PeWWn(1TT;O;0da!NEfn)nw#!Y4|i2OlX%Z>37jz%fRZNZkJ|)*DZSfL7bv?=-`| z^9)0_PKt^KEU8dil#wg}wi_G^+yCW8?S9+zf@qL*Vca$pZS*fENnUQ#0n6BY{&Ekv zvJnle%o~nBpy%AM-$lMH42QW$F5lvjZ~NwP{`4K}n{pRkV@eWn zb7qd2XLz%kv;kB#GR!VN3lUot+4#{8UB<656H2A^ZN;}<#~^s*(Z+3S9&vT2Zh=8P ze^R_`h1RZ{kS@9d`wvTo&VUf zok0QDTd;6|mZAr#Fi%&-mVov)WH}BW7rV&u;=LMk_rO1H0)~A31&C~YR#w%UuPGbt z_0su)V38GKk!{C$w1d~`nI;)#7ANwxjr+LS!t*Y{1_Uh-rXy{JHTY;V&sv0xsLUZj4 zlnL#L^WkMSaV`2jBLtCzcSmVAYYMBPX&Ni;bB!O&=Sai>8ab6vIJr?-m@}4lAL?Mm z`-#$c=wx=Prw4qTAbv(!Yw6Vq^yH7m9l-3Wm6k7)5&<>PmD?8(Q%x zyDPgD1A!v}*MsfOUx36l_S~VoOZRt9q=W#fc8G=qEA*5%oDaa;X+x-|xt#WSePzXZ z9J#TC2wEu}+gRq<|vl zxdikVPnH09ZJ>)#uYzRwL}_0@emr3&*O{kG^e7g|yv5+}@_th9_LiyVt2_^3X5#kk zn?zw3F9%;!m+INN0Vg@94Npvb3axQ|IsX1fYHeTAS>+o#qg9&KS9LaXx+@&&!Azw( zEQkVXmd1turBQc461a5g#}5^?F}>!%70EgQg{x$jf{tYjSa|*)g^E%Z z=f%7}2d5M7W}=JY&#MWd_HaRZRQ{3iNyuT{QyFm@g*l73x_Q75NHla$PlZyH8071c za6^C-Z-VBo3GKFrRZ%KmZ>2ilhT9|=PgacUXT^E~2^TDS-Z~Xy)c(r8;7=j573qF> z9PT_8{=s>GAf_`a6jo%oA?_k|QXn~n5sJ#rL(@LEzB+lDw_d0s+x#;0Wzoh60%RAs zR^fg@V98m)O@mSM-~Hj}jwo5kpLXo2wWi@-@&3YD7V3?rY2D45s%;y4fDV)kN6w`^8-O`-ld&GkfOup-e@ z2HN{du}taM?$qsj!XffJdhgVuAn6-s#=iqXu{((Oi7q+nM(d;K*2dx!sGlKD4CFHY! zPHo6*xVQ_7b`BqvLRc=Sla_Bef(eeSVJ0AhC*Z{b)e+o^dbw-*qWzJB98h(eQ$My# zRGtRhv;Nc0OTWH+`e~^3{Yb?**|fs1Lol$UVIskKp*uaUJ+Ul1zJ6QzFC~aBRTo6&4kQH5}df4^!=+a_fH}TX*0iQ=*ZRUA6e~}w^Rz!2S>tQqhP;I z)%y+zq9j_P5H(|5=DM-tbJSxzF8=@dAN8UqKml@elhLK;clL^dtxBiNT&= zbS`kiuaQc#_)~|rNwp#gA1(zeJArEFnR8&w2c2AviZsPq&B26;45Q7!sDcK)fie2U zPIBj(a9N%zt~A$$$AHM6XYtMoz8S0gB=Psp0mdgD4$(!2n>H%3VWop|4zHdWro6+v z27`>h6ZI&iT>C(J0DuSTHTDRh3 zbX;9hGfUjO^>qNl05~(%EIU@v1J$M{2)f4jFQ71EC!A8D8z7zcd-iAExuPLcWJd9}&Vg`*xBQt5>`6UFfts$k8zEz-1YHv9ksQ+T!YH=J8T|lT-_RWCE7$>d* zm};iyYHym2nQ>Zfe1sEKf|(cna7_#7zwmnQ@x;xQP>d{^i}|1U$3wfle)e?F@m~kq z-G&6tU6VNG6;V9$aN6i-!yWh+dQRwW>_`)?8FI@WQJ^go*&A>&2!F2oCAkjy;# z@7S?oJeMTESLQGhM%`EDJl2VQoD=0~^I-1U()@EJ&E>f9Aimt#I>p@pP4jM0h~q0W zuyK8;tWS)g6)1}icguGDZ-m^>+wYiu%igOheLN^#brLg|hNIzi14J}Epm8aYqhNi? zM6zFp2TODLzuSu;c`QmdbqYt+SA-G-vq7RVqx4hm5yOQ#d4n-nb=n_0Hk`KOGOr};3WQTHRv&G(bPD#lC&zG;8ofacla&A%4a0$Z`c z$yF3kFXhJiwHeNU1yE#M>(^ObB)WaEe$G_}4P;9>_=o785r~!%npg$XSW*>zN((}V zjZH1Bcoia7`C1f!r#gkOBEXHA7Cwb}?fqjZx@+OF9{FE28%JI_*$25Ssk=DKTH_Ye zQX3s`Q)@`=!kncj=Nn(9RnU{a8Z+!*nT-R0$7`(yWlC0GrexDTF)+?>5VS5%peUu7 z{gc4^{^OSvx@3^7A2^$svyZL8IoTU)Vadc=JP7s+o1{ihvGmS(=tMGM`I(vV4$Hma zf9LeP(7jX2oZ>ZDThyTrg)pOB!pv|;-~M#9{DSDM?Q_J57cNg7hdgw<2Rk{6VD6`@ ze{eeNga-UZTJc?-QBAfauS#s9weJ=eLlazw!&9BrXP`uU=F;pngu&d5axkKF%WVuSXGU^Ta(*gL$@glLW@hzq z_5;hN4%_1L0rKqCVKJYw8;$%wdppL0#au3ZgZujdlIQQfp=4o_Iy+yP_lT(9lVQ2f z!(8q&R+Slgm6Z@FcY4+oS#M4SSN9c^{|L*q-MDZ#0*z=|uJkWmgMjh!u0b2CU0}xN zMEkz=Hpwlazrz7`{&4FdCUl|a+egf1G(jTS-tCnM#eX>MS)*!cX)n-Ye$O3r{JWF* z(m%y-bQk``>vNvMym@Zlom&IU=*<7GcEBe??q37k*zLo>4!(*jJN#P01qCMr1@;{c%6wOisnCTw0N#pB^=?`s~H>#|c~?mNZx#Xd_gwzdQRQ~(sP+kKJhKh zsHL=5g*yKlK^_E9A7c)+LU24vAL&dB)PGHV^jBBmn2DLRMtPvar13&z4_X>&g zLz(bz07v^9O$C1V-w?g!cSLT6?z`vmoxlfv`2W8okn;bRZ)o~|2t0jnTV(NN=hA$~ zo~mgpwTo|jOK7ibtY4P$it`Ud-xwHciwF+4vs4XV_yG-y2w* z@0do zj(R)|9p6I+zzFge0RPWnLVr!2(y-Ci$CDSv7e5nJEmzC5H8Js4m+;`Cs6@Vvi40N< zDHVIar<2ucRZ-T)VXdOLYSHy6czz0)5J*1BK4?Hu`h|s)nYjQ$+j}67j{=Zb zCF!4jd^`&f*CgYUJh-nrS!%D$^8t``9JYMq!Y z@vT;piT`>iuKrCKj@^0u929#^Ng@cJOP zKig-aZO$Ed=*ObY>wTa1@*Q&beU|c<-<=pR70ql{=!=k2 zCLkQf_IB~Ayjsu!CV1nCdWlm#D%nf?7N>6BwT+G&#z^rF%NK#je&wF`wnL_Ho}s1< zsWZ_^A^n6h_J^;*zO-X?&+SrVVm^P=`%i)9iYOiUcz}~K`B+m{17PLv`PqH|k7puS zf5~e6>0~>r20``0tE*yRyt+yel>=$3eq=LxN+YY&j01MC`)&D->C9<*n`7svg1Te} zp1rJlf-la#sf_ykk=5(hW@bwe3}twffD{?oC%`w7o9zN#l{*Lj3_4HJY|IC8NWZ&} zYiD)JQ`}HCUvg6O1u*Y~Ex~=qm7aNWI+iFct{~cEEd*XnDr~vsW08`J=V&pV&)&i@ z%Iyk2F&j=FA3O4lXPu^Axi|gefJ|Ey8oj6L{*P*88Y~1nGsg0*Q1bG7JA?s+{JIrtCTB(vcCdRisX+M~-__lKTx4dC6%>b8j)s?$V zUXpvu`!lnn_jhaqW^pt0;hBF~1(VBj2%P$8%gLk@;-z`^S}PX=7I}oyA78I0BNj!AnlpMCIsf`oR6^kXA3@=lRvC$xQ8SU^TLNTDw}zRZh-RCFEyfi+Yad+6SE~?k-*;`sKbH?kMnkm9yP4*cP43? zH#SwkL|;@JQ3jghYC%bL?|A61qHQJz2Ges_8kEb768O(ut4?jFB5VjpdjoZ+C^@=T zgK+x%#;rqfA6yF6Ml8hj&*f4cJgUJb6yXw z#<-~I>sXj123Cxo!sr(^7E6gfe3(eGN^MLl->PxZtv^VX+?(&gYSqke2#+NhbMtu8 z`ESnTw%$)mSv|A@x`RmyPd_zw?YqX48Gly=k>7du_N4QiU)Mwyjw}@QR>44vZDBKz z@ey(iG4l}-w7M2s+cObLSi!f1LN-c^U~U77jokR?%V@h6g|)rSg22y*IqPSx`a2AG zg|?VLRvxC?OX@@Ay4nuQCsw(HNGiRIop-74sY_WM)c`Ey6|Z9?0q8VEP+2?Z!_Ov7 z=u&rXzoRBL=x&d``Ge-iKt6m5NtKhIk&CiX=#Kxe0~REF_N(#Z&x-jE4ePnmP-*-vAb;cZ<37OOt3Lc#0$ z1@Geb&o)}8-XnK%9t;f10ML`Ji8sUnfK{ruwkgf1uWBfS?NqMZK7VP(8p)eX0U~r>zg9eM1M6QoHBdRx5fe>C?iIP&_1j`Ol885I5Px=>R z>x>|edTQ&Og$e>ek?SgiZMdlq)?Q0jFWp82%;c<=mHQiE%*E!7Ar+39-%#(BOZy4> zaZo$odpcl{$pIC0n&{Mj;FqLc7dZ`U`_R?Kj^~FCK1SO#e=$NS>P^u)*Z(pt@ORJ_;3jYwy);0dDZ`vo#%Y1`ZpuC zYq~u>4}2kXPA?mItesVL7)gDwC8h3wX5y5mQ59GF<>!)5B??ly)u5@et zOaX{9c%>s*faZ;i6iOIT?7tXXcM1xC$qZy^rjOsZ+u^`K!IUv+fA5_Exi$zfjU5}7 z)pHlLgdbc;2?8@ac{PQu*C?JMN0HNLZWEViv7g z)|*e5F?L*OWlwVs(2bUy(^nbp>YM!3C$katkdDhQqiJBZ>hYFyjcNId`?jvb>x)*z z5;`iXHLH=a^i0XN_lqxd8ew%+7(SDx+HdE2>D*+hJkCBL&3@cmw9sXXrE?D`u%Gv& z~OVqYc$$rs1eGEKz%wP@x=4U^GE*KqK7-?EAI_= z4-15IxnjO-oNaX+-;|6~ zNFR{FIaG^|?i*m6-;z1yb=(1`)@7it>FAW zK66;9R@3UQ0E>_12jzjnQuCIZz>Qhv$eHMy81on>>?qzVlvc)nF6W}`qH#-+4s1CW zUoW_k8lx#5+<|-%gPkw%Ga+3~*CAH0lV0$3mcD4DwzqsH2sF9ha{&nwt9)rn%0RHX z%)HXORt95x6WjynHN!RS6X~1*5LX5E@+C(|7_dGwsi#JykgJbYt!jYh>LKUd5R!Qm zR`~9s3uf?^e)YHKff-_J2_Jm;1Pr$+Qbj79)ZqWy( zXXIjlr&5e^+J_p8>d^K|MrPZrQGy0D^X0q183QT(-`Ic;mpC;n|3K|f;#nfb81EsM zQXbgbGzJ!1KhTs&!yRlDgU`Z`+;hHZF9w?^bVx5m@4eVg6SRCXv@T|`wNZ)jL_4%~ zrn@Sa;)~utA0jT%tZ{YGH2mDF>_t6wsRzUfiFSsz_qZlj*th94{KBtzb#*$QYslxM{ zGB_p5iKs>Rn_d92q4&xiEJELnt-0+$Ft-i$u;d$bSV>aU4=BzcZXPGu#DKpqSN8QD*?s&GO`vug zk-rx=i;TC z%lMYz?eRUfb>H*ABwuk+E(wtnV(hN3bEOhPIb|XDZ!PJv!+$Gzux$OMEi^U`-pspy z>@XPJN-m!wC6hFlKBZ?p0GA0wWls)25Wzp>Kv3i*IFDjfX(f`E6fu#p{udB73i9+s zLP1Mv;k%!*IO1yeV~L5WoE5>!1|)-gk4TYPBO@oRs-&1DWUh1M{T9&3`fxa5Q&zsq zLW}^ncZ&bn)T`jEa+C8?bSsL9ra#2Yy_i?9P&klIlA<=(s%(tqY#@kY2cxYwp%b~W zD?O0*>_yW0G+6;3(dQKzx)hd&)snf@-*8y^5K~WGL5(AVhLbnvzNrv-V-b~F5v|*2 zCQp<2Yiq4qJoB8Hm*QmP$={)@@E&&c#kfH_{o<=!uhCw%%r_lX|_>3S6R5m@e|)+6qw*c58mY#NSE$;k{k{WK*bY*^{Md{og>A&*xs zDmR zk0fT}af}PNpL|QZQ$opSEJFw2Lf0JkMnuCazd_sJgBiMtG$(K0cYuYBAAaow*AyyX>kE<;I2FeW!95r2J-6_61EI7QD+&$Bqmb=OxRn3I< znD+A)6J)BxBq$u0-$^F7d1=tiF63+JxXSx#E`#d}*wbC(t<5UjO3}h5ZL|!LsAUsY zQ*QgctRSbA#;x}NzO-Mmx?b*NO;+oUNMLw(4t8)e9uTle)^y^dBDKCEWS$f8Y!Z%OV!pINK5J|yO?4(m>o+Q zw{HrxoW~Bvg*mING6Ad6WgWkaBHEyF${8u+&@WtCa{$ZOCDqGY&_ONT!$Ljsy~ejc z2c@oi)>gtNjM*2@S$@eHUL;#zB;? zv3OLV08n5UR%4gTnj6ku8IXeg7RD3G>=G}tx65b}sDPNdL86_HX`4vNixE}a3gSo* zk9IKc!QC$73yowq+*D>3N4;3I(PWWMLRVI_lhKO4oHp3Tg9>y@0o#M}8a;F$T@Xxx z#(seTaii*tmP=D+5XJVW<5H(lH=@Y8EtT+L9g>H)K|y1&;o7xvuf4P2j>8}1tt#;3 z9698|Svc7Jl z&%((-=tP4P=V6|ICJW2BFQ@Yqyu5))>%mqYu%D&}bBExT`+zDD%8go>Pn}(~JLs7_ zWxOPbDed}R4_xEvgoF3i0p$O$ZL6{J{Uw-gk#J zm34c^kr`x^>WuUvh*&6s^g2|B4g!jF3`hqd(xu3#^h7BFQZj%dAVpfJA^K7x(gvi3 zP?Sh95RjGtfpB+J#<$%2eb00MypQY8z0W!O?6p_h=d8Vcg$sPYlvZxbU&Y38M6eTg z@XLivff7$yEer3KR~{7!`?Ktg-kIKR>G2Ig@C&*YvEZgu?dZq0fSFE``tm258)xjNxDZcYMn6C866{^LufjVYgdL*FMN40nFYGgGTkI z?loVc-w<=?W!pkOI_rTxUdD6I-wzRZWOhysDH)hA8&A+(x6N+U?#hq`I7u+WG_Q*| zm>k~s2;nru=%;U@o*47v-LCdw-N-1tY$s)4yI;dolv{K1fjM^~Rq5W7ND_W)Ytjht zClWcVe+K!grRZ4e*Ctx6z3ByuNei~4qQ%ORYW-)N7Z-)EqAKTRxrmQpwdKK^FRA?{GY<19kTr$Y?8EsW<$`!oIp|iIUHI7{X_(JgQKaQH z@B=#rq#HR;(Cr5}aCg#6D_P&1rky_|%VIneYQ22hU>;({c^aVcU=!!+Ti3ACmdzi= zE!F1N4WwED>(W z?_Iv7TKB>oRu-rKx*mD?RxW$QViSWE_USyggpAcb;tknq@6LueBELfE5OTgOvn+B3K9)brFI*z$DZmJ=~=2Js~156H;7K>K5r*Bt!neRsvXqcmTHI& z=NZ?Q9JRWVYikM8gzH4d{RHbmg$`f%g=^+zTxabWNv@xthCbF7E>OBs{=T4^ejJ(c z(q_RM6k0$;*)-6YDR5~)^;vQ`2F6+epj6&!6ew>1yahjiQ4rW-~qPWCe-O{loRd zrX`#}ry^Yi|F#LL&^tvt2JtEBHA1z<(Gx}9EKiG~9e%{n?v(7L1-#WVRLi+itzhHh z7}SG$)m&O%v|d^WEJ3bqHdNP0i^h|7JL~k$NFY-w+_3+mjY}y_FrD;#r|L%NvA|xX zrjh1J!qfYs`BO1>KZ0H9jpPnT;&U$bL&cGj!x{R;+dcHOX1eOP&~yF1s6MFk-|=9R zn000EY+y-^d|>{YQdlA#QvszzC7qAri`EAppOf7CGHcC2C5*WTamB4ek7Ym>^RPMW zrlnM=H-1qXnEcT+Gc3FhcI88WH}RPTbpuh%0v62*IZ#yyogFvKhi7@U$!`|YAIt%A z4w>k`nnTQahz?hwmt`Z*rVTY3?|c!-=uq{~Y*Zda!JPK^hEWDrB;V8=db#mWUkv(n z?&PaQ*C`}RgjgQR2k->7OhvFWB|?pGnPyzud>D7LUgbpgN%NO}bKDm@$2fZojt4cq zvrk91|L~Vt#Gk!Y!f9oB-qZH0K83&7yXj0fNxmY_TZQGBBQ5qc&Sjriu`i)~ye6P+ z4`absUiCop25FqXn7~=o&;fo5_W=BY4?7uV6126oPMY$+%c%(-vmIcJFNX0ZoLn5f zSiWOHyzJ&f)cT_H+W|iDN!Mbd$jt;D>^f}#zV*9Y? zOF6Ajq)o1Y&{8jhV(6uLC4i}s4SoSvKi%a1ca^t7pBn#vNb2SJqE4%~WI5S=yG!C%=fW5imwSuo->gc;QeqsA}~0Ug!L|kh*tfKOzGQbjqaMbY9(hYnlRb zQGN*9M49gG>`s$*hGWF?V?Ir^eZ0G4V=ozUb@K)mh*w$xp~P#g^Oa=rJ-u5j_U7k2 z5XxUIL16x}MJjRs4TI-p*JhbysLtpT^F!l}5{k0?Y1s(53R31zH9yk%>{<4_-L7k_mb8pt`GD-#?qsyQVNL#V*>8C0uo7MQHJl0sr9TF}`85 zHXBeJQCqUe0nlYg@8g&2izCwRn`oV54ozBc=$=I8xeGqs6v%H~a3MB3W`bW%P7a^+ z@H=hh`=4q(A`|BlQG^SvE?t z&Hxy&c%v`kZjKE?33CY_GT8!?r-_xv}Hn==a}hH(aQ^#e4?O@cPZI8=l9V zO4nu688(PpAMaGlbkCA;uJ55^F=lA1+~;0aSRbO%S!IWfE2i0mvqN&3_pOD*EVahc zys*mV*<^GOg4kvr9#Q~HsxasGTIi27C2*Y^m^l54V-qtN)-TO`T-4~qG5-rv#n$Z( z3}&ntgOu8HQ|>Z@p+j7PB< zUC>kD%KW2DOaAle6NdE4jEcpDowO$@+w~IbGO?Kfj&I5f*M2K{9nG1Gq=#18zaVs^ zO>LoRkI!e52j*1W^f!dd9@kjyzwY1)EaGqO6Rylhb>$WkubM9j=I>m?N4#tRhSQ;- zK}bO|eK2Tu?acQ2WkR}Cq1ikDdLo|D-M-!5B4|2H0AIzAfg=B8Pc3c{<5oV15$m^T zYTY0sTE^fXS+{X_4Io(sAKY>ml9??$eyf~1hSGV2p%u9pXPhcw2Q|e5%Te56;P8oO zVagLHoiy>Jl)vobc48%7KITXw2fKR9)B!=g?Rar^ywGH5rGO?VdU~h!sT&VAt_N<+ z6xFulAZwC763#N5r%mC`6sHTT8SAWfj>UTRPP~+9+R%A!73M%Y3*RM6f{%rfYjM@k zkZfKlDPUfKVIXHnp(uVX1ZkgPU%12m44!;B4r0N z+DNLxIv5Hdur-ffv)NoGTYO?VlIu5@$)LsY`u8mkhTr2L>>`@~;3#iPobnhhRou(l zc^lyuJZ#(lP@p`xsQGzwX*1Ds({I^cB_pCVFejI>-FmIb`8;xEISn~3cFu5 zmVu2_QNd2Ukv^r@BNayB?uH|z!!##Fu>@~!i}i=z{O#5O_Tn4xRGd6-ci#M9=zAM~ zHK&h@9{c*AE2ML##uwm5sMyQ{kc17$W)14Mi-S3 zh(h6cFj%u8GhSjOu*L1sUG}Qwnt8>frLF1kC?hl{7AzThGcfrU(r$>$gkgq3)EA%qfu%5F_tg-ClAe(~G*sG|d3Bo5<+~#M z*C3OxIEEh=ZxobY4sw$Ti4kr0X1%Yg381^e!Cq&?=uM4uUCV=9r(+@xl$)9nV5WRi8|j`h@w)*7sU%c3V2!S&e8KB68>o%;w4@C|qco#c&XhPEWV-y3sy(1r5xL$itqh)hM1 zXii&pZd5oI?j9e?kPZ9D#qj}ZJy~3NB@3@nkL_sK8=?gfyEp!#3XAKhU=v+ksdKBD zDnGgP*VX$)8Ck3+bNPGoVn)~~+;CppVglZ!5N&UYlB}M+s|YtPr;@i>*IUSF#iS5> zl1yjy=5V;L1%(?yR+7Aib@nt-k3_K4Bb0ulj!BPW@7c1qKlJF2DAHTnhejzZB(JvK z^gfDxuo{O=#wQ^d!HJua?H;<;s`d3=DuQ3CGU=SJZ}TsvJig9fJ71PHMRjRdRuDh$ zJBp_ny5c4B+{&JZ>~2vtcdxC~F&EaWhr{}==Z%XO1gK4VuTgCi zu$Im3!<$Sqp4rq2F}z>x=uQo^Pn23&#LD{JKGbb@ocQW(mJx6j6Jn&NNvu-{xW{D^CA4P;1o8lP8>1ac(pg*)-O0YeOLX=Erq- zU>K>%;W~*7lHv9=D0z-D%jhISin;Xly^3oqqe<4RBtn%>j3VkZwZMz3N{~-dNOF^l zI?rXO-BL0?&5Pb1n2=U%HuamPja6K$#4Qr}33&Xb%c8JtpA+$_UpaRbX>KYtqpwmR zoIloUzM;)skkeO}?UE^~5`DucH{0huSHQ>C+e9({dxmf223&OA;++T64A9R5SQcY?It?_HfkE{$@*>^DFDm|e$tAvUTm+xT@j*7-LLP*`zK zUq{n2mGU6>t}29m6**)Aig1dDOOBd|kI*8cF`pm^z=1-oXt9(|nf;@MF5Go0EV z%}euj=FYHl;{KsdZgFq0O18+=7MMiiAaS0~rvs!Rs3f=Hyq+_uHOw_hp z#=WU~pBf*cE2gAdzp6n}2g*jpjR*0RGogkuJptoYol_RDley}BiJE!ye2ijId)0@O z1~Fd4zTOI4hC}$VcxpwKU%RyoqUl3O4*wq+J(p(WHX>!ZQmRhh=M|s40mDa`pe7}` zt9s|A#0=+uM*9SGH!g~HC;E2*OXm|S+FunsEeGx0K3vB%13yXj$>`IphMJ&QZJPFf z#=RzIcwwG3Y*1f#yHu*Aeld29Ew3yh6<*A7Wljcl#f1*0Ae)Y=N@&_e#5Bx+DNhcj zM!(1YTKZy80yRnjX5e!!lJ^k~?-Bn$a^y zw?*;AbsIb*gI>qfq%qB>$%%nYb4uckw2O7dzH-6*Qc}%PDiw_t>_zGth7)VMcbXXd zvFzB)rw`XIT%XP+U96alaxJXKv;c>LvkuGY9??xA2T|;%#w;Qf9`GZ=@V7{OE?sMP z@a*lwVsYn9*suca`oHJ2)TZ_{d^#SbuCCwsfx$`qbe6O}T%Q)Cb37Zudtov_{KEG86EqML9jcHG%5X2hWrb<#1GrjF^&l3H>uGb6O2oyz7_H zCqzbEcSCn0$m-U@k}{op_@k|D;f>5kE9^%NT`B`Vk{2STMq2k{eQ*^ST&r%Yd<3QP z$-H_yy$LA+4BDL^!OMAOJn^j8Xt*lv)0DUA3}K&jrPmOtfj=1sO{`7~uEKcv1;;Cr zJ7`jP3^R7hTO%yKQE6%mg^LVZ=E|9L^PHxob;2G8p*#I66)O3sHF!UV4$}3s&ihKC zD`WhKz%Dx})e(>%7?=}}@1&x0v8*DGevRU+%+FQ$huV=DYv}Eseln>o)OcySQi(iG z<&sgDwuad?eAXbTEJPA0I_>|_ze3E`P5L@+)gdIw^=?Rx^|LDV>!CR5-KweBs+=Vr z%^-;yF1tHH|Ov z9V|4fr18DzG;=Nfbmx#fzhLt?!8^%$dDR+r{@v=4ug2>zWQ+wkg*5vG+nrQnNHOrZ z11^qlDz>%wqNyC9Dz(?YUHO)pUJ^O;10+Tft_Ny-`o(}0X66IUgh1#__L{jWUn>$h z{Cl_x1bzuT@W>2=Yzz{?%1(X_GFc!_DnO6Bo=@+R-?M7$PeiUzKfQI_C*gb!DGF%v zT@nE$WEC{|ATRCc)pcEKV8>;2;N2 zOv4U?e+LsNLygjA!(Q3#o!*O}MyzDNf7W*B0$aPkY>Z-b#PR=}6Xg?fe{-63{}W<= z;}c;eGHe~Q+TkltBTerUmRccvK*tN&+Yc>e3$Z|~wGSLA0-aIb zv0%z$N9hY8_MZ!V7(&(ptGX2bpM3c~)c*kn`ume-k$WB47b^BtAkh-r8=J`1ta{b` zR1FO(XejsZ{qdjmfu8OUDCe8O_|g!4{F{0B(sEPyZ#(d%0b=q^=DxJNjQ?Blzh0tv z;C>jtHbBI_Dg2kFcRGJ7=hth#zsz^e&_kC0h0IU}u2%M|j~xixO&vj1&UPyh07Zh;G(IN?tib!6?x@=b`n)@B{B3=M|htKpbuHdN$mB*94 z{Z~p~jo-hFFfdpf!CZG_CLx?!!|5jI{q+`zVu8EIc=We6=h?WWOB)_f+ouuT>UnJ=$7@v41An`}V`qWDb3k~~@N zuH%vS$H8zLQ}ffgq=PQVpDFGx?IYDDePo7(Na}Y`y}dEK zSd)9u3t74*D?QLzi#~=Gic@(JoENbu)^X5j)`@l8|5Oz3p~4N6`yHon7(w2&Wfis`J#T& zkdcW*1T?oD^hQf0jC54$yBe`!_t$|S399c9H*tLj>kL7i;>n;d@S>xlye6O96m6-a zE!HtI3U&P8eWNAfP@+5;sPIFYd?oej+jH;tq#SZdMh7Fj%Pa7RM?EFk3muus{6*Af zNoR&4QLn;z(BE*+{c3^ps>SylcEg?jmQ96UdlT5;PZ|8n))Gw}Ra+?A z!K|3w;mZCX^@9g|;wmtXM;_rUH^5iE{6&+GGjUCRrhyf+kxDqYq`|IMY~W9w#F=NW z{FycR5Hsbbt)Vp+!{%}Itbo7UH|BrQs8}nkbU2vzOF><5Qg2U!C)M4!Kq;R5gk=7X z1B5OIWI&IAzLHrC2wc8WGzW-(4k%5C4xRFa{$%*3ZxB%sA05yc&2LuaH>U4Hd}kB{ z@?D}Jknef{fqXY05Xg5+3;FIZ!13RIajc)BqD)_ZP+nzarMppmT@#%OEvK0O0$n~< AQUCw| literal 0 HcmV?d00001 diff --git a/test_samples/handling_attachments/src/agent.py b/test_samples/handling_attachments/src/agent.py index 008ab5888..4876bd501 100644 --- a/test_samples/handling_attachments/src/agent.py +++ b/test_samples/handling_attachments/src/agent.py @@ -28,8 +28,9 @@ ConnectorClientBase, ) from microsoft_agents.activity import load_configuration_from_env -from microsoft_agents.hosting.fastapi import CloudAdapter from microsoft_agents.authentication.msal import MsalConnectionManager +from microsoft_agents.hosting.fastapi import CloudAdapter + # Create the agent application @@ -154,6 +155,8 @@ async def upload_attachment(context: TurnContext, service_url: str, conversation image_path = Path(__file__) / "resources" / "agents-sdk.png" connector = context.services.get(ConnectorClientBase) + if not connector: + raise RuntimeError("Connector client is required.") response = await connector.conversations.upload_attachment( conversation_id, diff --git a/test_samples/handling_attachments/src/main.py b/test_samples/handling_attachments/src/main.py index 14fcdab9b..16f5d95b6 100644 --- a/test_samples/handling_attachments/src/main.py +++ b/test_samples/handling_attachments/src/main.py @@ -18,7 +18,6 @@ CONNECTION_MANAGER.get_default_connection_configuration() ) - @app.post("/api/messages") @jwt_authorization_decorator async def messages_handler( diff --git a/tests/hosting_core/app/streaming/test_streaming_response.py b/tests/hosting_core/app/streaming/test_streaming_response.py index 97b79e940..732331bb0 100644 --- a/tests/hosting_core/app/streaming/test_streaming_response.py +++ b/tests/hosting_core/app/streaming/test_streaming_response.py @@ -719,9 +719,7 @@ async def send_activity(_activity): release_timeout_send.set() await asyncio.gather(timeout_task, end_task) - sent_activities = [ - call.args[0] for call in context.send_activity.await_args_list - ] + sent_activities = [call.args[0] for call in context.send_activity.await_args_list] assert sent_activities[1].entities[0].stream_type == "final" assert sent_activities[2].text == "Completed response text." assert sent_activities[2].entities == [] diff --git a/tests/hosting_core/connector/test_connector_client.py b/tests/hosting_core/connector/test_connector_client.py index ff3d4c86e..4ae22e199 100644 --- a/tests/hosting_core/connector/test_connector_client.py +++ b/tests/hosting_core/connector/test_connector_client.py @@ -443,8 +443,8 @@ async def content_handler(request): async def test_get_attachment_uri_builds_view_url(self): client = ConnectorClient("https://example.org/", token="") try: - uri = await client.attachments.get_attachment_uri("attachment-1") - uri_with_view = await client.attachments.get_attachment_uri( + uri = client.attachments.get_attachment_uri("attachment-1") + uri_with_view = client.attachments.get_attachment_uri( "attachment-1", "thumbnail" ) finally: @@ -456,14 +456,30 @@ async def test_get_attachment_uri_builds_view_url(self): == "https://example.org/v3/attachments/attachment-1/views/thumbnail" ) + @pytest.mark.asyncio + async def test_get_attachment_uri_escapes_special_characters(self): + client = ConnectorClient("https://example.org/", token="") + try: + uri = client.attachments.get_attachment_uri( + "id with space/and#hash?q=1", "a view/with#special?chars" + ) + finally: + await client.close() + + assert ( + uri == "https://example.org/v3/attachments/" + "id%20with%20space%2Fand%23hash%3Fq%3D1" + "/views/a%20view%2Fwith%23special%3Fchars" + ) + @pytest.mark.asyncio async def test_get_attachment_uri_requires_attachment_id_and_view_id(self): client = ConnectorClient("https://example.org/", token="") try: with pytest.raises(ValueError): - await client.attachments.get_attachment_uri(None) + client.attachments.get_attachment_uri(None) with pytest.raises(ValueError): - await client.attachments.get_attachment_uri("attachment-1", None) + client.attachments.get_attachment_uri("attachment-1", None) finally: await client.close() From 8e23974649d72d70d291d525831e923850aa5320 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Thu, 10 Sep 2026 08:22:53 -0700 Subject: [PATCH 11/17] Tweaks to image loading --- test_samples/handling_attachments/README.md | 39 +++++++++++++++++++ .../handling_attachments/src/agent.py | 25 +++++++++--- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/test_samples/handling_attachments/README.md b/test_samples/handling_attachments/README.md index e69de29bb..8c9b4a867 100644 --- a/test_samples/handling_attachments/README.md +++ b/test_samples/handling_attachments/README.md @@ -0,0 +1,39 @@ +# Handling Attachments + +This sample agent demonstrates how to send and receive attachments: + +- **Inline attachments** - an image embedded directly in the activity as a base64 data URI. +- **Internet attachments** - an image referenced by an external HTTP(S) URL. +- **Uploaded attachments** (Microsoft Teams only) - an image uploaded to the channel via the connector client and referenced by its attachment URI. +- **Incoming attachments** - files sent by the user are automatically downloaded (via `AttachmentDownloader` and `M365AttachmentDownloader`) and echoed back as an inline attachment. + +## Setup + +1. **Install dependencies:** + ```bash + pip install -r requirements.txt + ``` + +2. **Install Microsoft Agents libraries** (from the root of the repository): + ```bash + pip install -e libraries/microsoft-agents-activity + pip install -e libraries/microsoft-agents-hosting-core + pip install -e libraries/microsoft-agents-authentication-msal + pip install -e libraries/microsoft-agents-hosting-fastapi + ``` + +3. **Configure environment variables:** + - Copy `env.TEMPLATE` to `.env` + - Fill in the required configuration values (`CLIENTID`, `CLIENTSECRET`, `TENANTID`) + +## Running the sample + +Run from the `handling_attachments` sample directory (not from `src/`), so that the `resources/` folder used by the "Inline Attachment" and "Upload Attachment" options can be resolved relative to the current working directory: + +```bash +python -m src.main +``` + +The agent will start on `http://localhost:3978` by default. You can change the port by setting the `PORT` environment variable. + +Connect to the agent with the [M365 Agents Playground](https://github.com/OfficeDev/microsoft-365-agents-toolkit) or Microsoft Teams and select one of the options presented by the agent. diff --git a/test_samples/handling_attachments/src/agent.py b/test_samples/handling_attachments/src/agent.py index 4876bd501..18b8ecf7e 100644 --- a/test_samples/handling_attachments/src/agent.py +++ b/test_samples/handling_attachments/src/agent.py @@ -27,6 +27,12 @@ MessageFactory, ConnectorClientBase, ) +from microsoft_agents.hosting.core.app.attachment_downloader import ( + AttachmentDownloader, +) +from microsoft_agents.hosting.core.app.m365_attachment_downloader import ( + M365AttachmentDownloader, +) from microsoft_agents.activity import load_configuration_from_env from microsoft_agents.authentication.msal import MsalConnectionManager from microsoft_agents.hosting.fastapi import CloudAdapter @@ -44,7 +50,14 @@ AUTHORIZATION = Authorization(STORAGE, CONNECTION_MANAGER, **agents_sdk_config) AGENT_APP = AgentApplication[TurnState]( - storage=STORAGE, adapter=ADAPTER, authorization=AUTHORIZATION, **agents_sdk_config + storage=STORAGE, + adapter=ADAPTER, + authorization=AUTHORIZATION, + file_downloaders=[ + AttachmentDownloader(), + M365AttachmentDownloader(connections=CONNECTION_MANAGER), + ], + **agents_sdk_config, ) @@ -105,7 +118,9 @@ async def process_input(context: TurnContext, state: TurnState) -> Activity | No if state.temp.input_files: reply = MessageFactory.text(f"There are {len(state.temp.input_files)} attachments.") - image_data = base64.b64encode(state.temp.input_files[0].content) + image_data = base64.b64encode(state.temp.input_files[0].content).decode( + "utf-8" + ) reply.attachments = [ Attachment( name=state.temp.input_files[0].filename, @@ -137,8 +152,8 @@ async def handle_outgoing_attachment(context: TurnContext, activity: Activity) - return reply def get_inline_attachment() -> Attachment: - image_path = Path(__file__) / "resources" / "build-agents.png" - image_data = base64.b64encode(image_path.read_bytes()) + image_path = Path(os.getcwd()) / "resources" / "build-agents.png" + image_data = base64.b64encode(image_path.read_bytes()).decode("utf-8") return Attachment( name="resources\\build-agents.png", @@ -152,7 +167,7 @@ async def upload_attachment(context: TurnContext, service_url: str, conversation if not conversation_id: raise ValueError("Conversation ID is required.") - image_path = Path(__file__) / "resources" / "agents-sdk.png" + image_path = Path(os.getcwd()) / "resources" / "agents-sdk.png" connector = context.services.get(ConnectorClientBase) if not connector: From 259db75e88f014eb3e3c123158fa0ba59bc3eaed Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Thu, 10 Sep 2026 08:48:10 -0700 Subject: [PATCH 12/17] Adding changelog entry --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index e20fdd34f..f9953e0de 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,7 @@ ## New Models & APIs - **MSAL Token Credential**: Added `MsalTokenCredential`, an Azure Core-compatible asynchronous token credential backed by MSAL, for authenticating Azure SDK clients that accept an `AsyncTokenCredential`. +- **Attachment Downloading**: Added `AttachmentDownloader` and `M365AttachmentDownloader` to download attachments from generic and M365/Teams channels, plus `ConnectorClient.get_attachment_uri` for constructing attachment view URIs (#574) --- From f61ea889272c294e10b87df04a343e08c2d94548 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Thu, 10 Sep 2026 08:49:24 -0700 Subject: [PATCH 13/17] Adding another changelog entry --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index f9953e0de..6e15f9587 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,7 @@ - **MSAL Token Credential**: Added `MsalTokenCredential`, an Azure Core-compatible asynchronous token credential backed by MSAL, for authenticating Azure SDK clients that accept an `AsyncTokenCredential`. - **Attachment Downloading**: Added `AttachmentDownloader` and `M365AttachmentDownloader` to download attachments from generic and M365/Teams channels, plus `ConnectorClient.get_attachment_uri` for constructing attachment view URIs (#574) +- **Sample**: Added `test_samples/handling_attachments` demonstrating attachment downloading with `AttachmentDownloader`/`M365AttachmentDownloader` (#574) --- From d74722dc81367f1245fec0e5a2e468864880f055 Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Fri, 25 Sep 2026 12:12:40 -0700 Subject: [PATCH 14/17] Another commit --- test_samples/handling_attachments/src/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test_samples/handling_attachments/src/main.py b/test_samples/handling_attachments/src/main.py index 16f5d95b6..a999a06e4 100644 --- a/test_samples/handling_attachments/src/main.py +++ b/test_samples/handling_attachments/src/main.py @@ -8,7 +8,7 @@ jwt_authorization_decorator, ) -from .agent import AGENT_APP, CONNECTION_MANAGER +from .agent import AGENT_APP, ADAPTER, CONNECTION_MANAGER if __name__ == "__main__": @@ -28,7 +28,7 @@ async def messages_handler( return await start_agent_process( request, AGENT_APP, - AGENT_APP.adapter, + ADAPTER, ) port = int(os.environ.get("PORT", 3978)) From f2d8bd1496ed038e460f47de0e6ef234a8201d9f Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Fri, 25 Sep 2026 14:34:19 -0700 Subject: [PATCH 15/17] Addressing usage feedback and potential issue --- dev/integration/tests/downloader/__init__.py | 0 dev/integration/tests/downloader/conftest.py | 46 +++ dev/integration/tests/downloader/scenario.py | 69 +++++ .../downloader/test_attachment_downloader.py | 259 +++++++++++++++++ .../test_m365_attachment_downloader.py | 269 ++++++++++++++++++ .../hosting/core/app/_utils.py | 13 + .../hosting/core/app/attachment_downloader.py | 11 +- .../core/app/m365_attachment_downloader.py | 35 ++- ...test_agent_application_file_downloaders.py | 145 ++++++++++ .../app/test_attachment_downloader.py | 43 +++ .../app/test_m365_attachment_downloader.py | 86 ++++++ 11 files changed, 951 insertions(+), 25 deletions(-) create mode 100644 dev/integration/tests/downloader/__init__.py create mode 100644 dev/integration/tests/downloader/conftest.py create mode 100644 dev/integration/tests/downloader/scenario.py create mode 100644 dev/integration/tests/downloader/test_attachment_downloader.py create mode 100644 dev/integration/tests/downloader/test_m365_attachment_downloader.py create mode 100644 tests/hosting_core/app/test_agent_application_file_downloaders.py diff --git a/dev/integration/tests/downloader/__init__.py b/dev/integration/tests/downloader/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/dev/integration/tests/downloader/conftest.py b/dev/integration/tests/downloader/conftest.py new file mode 100644 index 000000000..606bf47d6 --- /dev/null +++ b/dev/integration/tests/downloader/conftest.py @@ -0,0 +1,46 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +from dataclasses import dataclass, field + +import pytest +from aiohttp import web +from aiohttp.test_utils import TestServer + + +@dataclass +class DownloadServer: + server: TestServer + requested_paths: list[str] = field(default_factory=list) + + def url(self, path: str) -> str: + return str(self.server.make_url(path)) + + +@pytest.fixture +async def download_server(): + requested_paths: list[str] = [] + + async def download(request: web.Request) -> web.Response: + requested_paths.append(request.path) + + if request.match_info["filename"] == "missing.txt": + raise web.HTTPNotFound() + if request.match_info["filename"] == "photo.jpg": + return web.Response(body=b"image-content", content_type="image/jpeg") + if request.match_info["filename"] == "empty-content-type.txt": + return web.Response( + body=b"untyped-content", + headers={"Content-Type": ""}, + ) + return web.Response(body=b"document-content", content_type="text/plain") + + app = web.Application() + app.router.add_get("/files/{filename}", download) + server = TestServer(app, host="localhost") + await server.start_server() + + try: + yield DownloadServer(server=server, requested_paths=requested_paths) + finally: + await server.close() diff --git a/dev/integration/tests/downloader/scenario.py b/dev/integration/tests/downloader/scenario.py new file mode 100644 index 000000000..e920b9fd7 --- /dev/null +++ b/dev/integration/tests/downloader/scenario.py @@ -0,0 +1,69 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import json + +from microsoft_agents.activity import Activity, ActivityTypes, Attachment +from microsoft_agents.hosting.core import TurnContext, TurnState +from microsoft_agents.hosting.core.app.input_file import InputFileDownloader +from microsoft_agents.hosting.testing import ( + AgentClient, + AgentEnvironment, + AiohttpScenario, +) + + +def _configure_agent(env: AgentEnvironment) -> None: + @env.agent_application.message("Download the attached files.") + async def report_downloaded_files(context: TurnContext, state: TurnState) -> None: + files = [ + { + "content": file.content.decode("utf-8"), + "content_type": file.content_type, + "content_url": file.content_url, + "filename": file.filename, + } + for file in state.temp.input_files + ] + await context.send_activity(json.dumps(files)) + + +DOWNLOADER_SCENARIO = AiohttpScenario.create( + _configure_agent, + use_jwt_middleware=False, +) + + +async def download_attachments( + agent_client: AgentClient, + agent_environment: AgentEnvironment, + downloaders: InputFileDownloader | list[InputFileDownloader], + *, + channel_id: str, + attachments: list[Attachment], +) -> list[dict]: + if isinstance(downloaders, InputFileDownloader): + downloaders = [downloaders] + agent_environment.agent_application.options.file_downloaders = downloaders + activity = Activity( + type="message", + text="Download the attached files.", + channel_id=channel_id, + attachments=attachments, + ) + + exchanges = await agent_client.ex_send_expect_replies(activity) + + assert len(exchanges) == 1 + assert exchanges[0].error is None + replies = [ + response + for response in exchanges[0].responses + if response.type == ActivityTypes.message + ] + assert len(replies) == 1, ( + f"Expected one agent reply, got {len(replies)} " + f"(status={exchanges[0].status_code}, body={exchanges[0].body!r})" + ) + assert replies[0].text is not None + return json.loads(replies[0].text) diff --git a/dev/integration/tests/downloader/test_attachment_downloader.py b/dev/integration/tests/downloader/test_attachment_downloader.py new file mode 100644 index 000000000..9c34659bc --- /dev/null +++ b/dev/integration/tests/downloader/test_attachment_downloader.py @@ -0,0 +1,259 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import json + +import pytest + +from microsoft_agents.activity import Attachment, Channels +from microsoft_agents.hosting.core import OutboundHostValidator +from microsoft_agents.hosting.core.app.attachment_downloader import ( + AttachmentDownloader, +) +from microsoft_agents.hosting.testing import AgentClient, AgentEnvironment + +from .conftest import DownloadServer +from .scenario import DOWNLOADER_SCENARIO, download_attachments + + +@pytest.mark.agent_test(DOWNLOADER_SCENARIO) +class TestAttachmentDownloader: + async def test_downloads_file_from_local_http_server( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + content_url = download_server.url("/files/document.txt") + attachment = Attachment( + content_type="text/plain", + content_url=content_url, + name="document.txt", + ) + + files = await download_attachments( + agent_client, + agent_environment, + AttachmentDownloader(), + channel_id=Channels.webchat, + attachments=[attachment], + ) + + assert files == [ + { + "content": "document-content", + "content_type": "text/plain", + "content_url": content_url, + "filename": "document.txt", + } + ] + assert download_server.requested_paths == ["/files/document.txt"] + + async def test_ignores_remote_file_when_server_returns_not_found( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + attachment = Attachment( + content_type="text/plain", + content_url=download_server.url("/files/missing.txt"), + name="missing.txt", + ) + + files = await download_attachments( + agent_client, + agent_environment, + AttachmentDownloader(), + channel_id=Channels.webchat, + attachments=[attachment], + ) + + assert files == [] + assert download_server.requested_paths == ["/files/missing.txt"] + + async def test_leaves_teams_attachments_for_the_m365_downloader( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + attachment = Attachment( + content_type="text/plain", + content_url=download_server.url("/files/document.txt"), + name="document.txt", + ) + + files = await download_attachments( + agent_client, + agent_environment, + AttachmentDownloader(), + channel_id=Channels.ms_teams, + attachments=[attachment], + ) + + assert files == [] + assert download_server.requested_paths == [] + + async def test_downloads_mixed_attachment_batch_in_original_order( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + remote_url = download_server.url("/files/document.txt") + attachments = [ + Attachment( + content_type="text/plain", + content_url=remote_url, + name="remote.txt", + ), + Attachment( + content_type="text/plain", + content_url=download_server.url("/files/missing.txt"), + name="missing.txt", + ), + Attachment( + content_type="application/json", + content={"source": "inline"}, + name="inline.json", + ), + ] + + files = await download_attachments( + agent_client, + agent_environment, + AttachmentDownloader(), + channel_id=Channels.webchat, + attachments=attachments, + ) + + assert files == [ + { + "content": "document-content", + "content_type": "text/plain", + "content_url": remote_url, + "filename": "remote.txt", + }, + { + "content": json.dumps({"source": "inline"}), + "content_type": "application/json", + "content_url": None, + "filename": "inline.json", + }, + ] + assert download_server.requested_paths == [ + "/files/document.txt", + "/files/missing.txt", + ] + + async def test_normalizes_downloaded_image_content_type_to_png( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + content_url = download_server.url("/files/photo.jpg") + + files = await download_attachments( + agent_client, + agent_environment, + AttachmentDownloader(), + channel_id=Channels.webchat, + attachments=[ + Attachment( + content_type="image/jpeg", + content_url=content_url, + name="photo.jpg", + ) + ], + ) + + assert files[0]["content_type"] == "image/png" + assert download_server.requested_paths == ["/files/photo.jpg"] + + async def test_serializes_inline_attachment_content_as_json( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + ): + files = await download_attachments( + agent_client, + agent_environment, + AttachmentDownloader(), + channel_id=Channels.webchat, + attachments=[ + Attachment( + content_type="application/vnd.example", + content={"message": "hello"}, + name="payload.json", + ) + ], + ) + + assert files == [ + { + "content": json.dumps({"message": "hello"}), + "content_type": "application/vnd.example", + "content_url": None, + "filename": "payload.json", + } + ] + + async def test_blocks_remote_file_rejected_by_host_validator( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + downloader = AttachmentDownloader( + host_validator=OutboundHostValidator( + enabled=True, + hosts=["allowed.example"], + include_default_microsoft_hosts=False, + ) + ) + + files = await download_attachments( + agent_client, + agent_environment, + downloader, + channel_id=Channels.webchat, + attachments=[ + Attachment( + content_type="text/plain", + content_url=download_server.url("/files/document.txt"), + name="document.txt", + ) + ], + ) + + assert files == [] + assert download_server.requested_paths == [] + + async def test_reports_empty_response_content_type( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + files = await download_attachments( + agent_client, + agent_environment, + AttachmentDownloader(), + channel_id=Channels.webchat, + attachments=[ + Attachment( + content_type="text/plain", + content_url=download_server.url( + "/files/empty-content-type.txt" + ), + name="empty-content-type.txt", + ) + ], + ) + + assert files[0]["content_type"] == "" + assert download_server.requested_paths == [ + "/files/empty-content-type.txt" + ] diff --git a/dev/integration/tests/downloader/test_m365_attachment_downloader.py b/dev/integration/tests/downloader/test_m365_attachment_downloader.py new file mode 100644 index 000000000..b8721590a --- /dev/null +++ b/dev/integration/tests/downloader/test_m365_attachment_downloader.py @@ -0,0 +1,269 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import pytest + +from microsoft_agents.activity import Attachment, Channels +from microsoft_agents.hosting.core import OutboundHostValidator +from microsoft_agents.hosting.core.app.attachment_downloader import ( + AttachmentDownloader, +) +from microsoft_agents.hosting.core.app.m365_attachment_downloader import ( + M365AttachmentDownloader, +) +from microsoft_agents.hosting.testing import AgentClient, AgentEnvironment + +from .conftest import DownloadServer +from .scenario import DOWNLOADER_SCENARIO, download_attachments + + +@pytest.mark.agent_test(DOWNLOADER_SCENARIO) +class TestM365AttachmentDownloader: + async def test_downloads_file_using_m365_download_url( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + original_content_url = "https://attachments.example/document.txt" + attachment = Attachment( + content_type="text/plain", + content_url=original_content_url, + content={ + "downloadUrl": download_server.url("/files/document.txt"), + }, + name="document.txt", + ) + downloader = M365AttachmentDownloader( + connections=agent_environment.connections, + ) + + files = await download_attachments( + agent_client, + agent_environment, + downloader, + channel_id=Channels.ms_teams, + attachments=[attachment], + ) + + assert files == [ + { + "content": "document-content", + "content_type": "text/plain", + "content_url": original_content_url, + "filename": "document.txt", + } + ] + assert download_server.requested_paths == ["/files/document.txt"] + + async def test_filters_html_attachments_without_downloading_them( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + attachment = Attachment( + content_type="text/html", + content_url="https://attachments.example/card.html", + content={ + "downloadUrl": download_server.url("/files/document.txt"), + }, + name="card.html", + ) + downloader = M365AttachmentDownloader( + connections=agent_environment.connections, + ) + + files = await download_attachments( + agent_client, + agent_environment, + downloader, + channel_id=Channels.ms_teams, + attachments=[attachment], + ) + + assert files == [] + assert download_server.requested_paths == [] + + async def test_blocks_download_url_rejected_by_host_validator( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + attachment = Attachment( + content_type="text/plain", + content_url="https://attachments.example/document.txt", + content={ + "downloadUrl": download_server.url("/files/document.txt"), + }, + name="document.txt", + ) + downloader = M365AttachmentDownloader( + connections=agent_environment.connections, + host_validator=OutboundHostValidator( + enabled=True, + hosts=["allowed.example"], + include_default_microsoft_hosts=False, + ), + ) + + files = await download_attachments( + agent_client, + agent_environment, + downloader, + channel_id=Channels.ms_teams, + attachments=[attachment], + ) + + assert files == [] + assert download_server.requested_paths == [] + + async def test_normalizes_downloaded_image_content_type_to_png( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + attachment = Attachment( + content_type="image/jpeg", + content_url="https://attachments.example/photo.jpg", + content={ + "downloadUrl": download_server.url("/files/photo.jpg"), + }, + name="photo.jpg", + ) + downloader = M365AttachmentDownloader( + connections=agent_environment.connections, + ) + + files = await download_attachments( + agent_client, + agent_environment, + downloader, + channel_id=Channels.ms_teams, + attachments=[attachment], + ) + + assert files[0]["content_type"] == "image/png" + assert download_server.requested_paths == ["/files/photo.jpg"] + + async def test_falls_back_to_attachment_content_url( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + content_url = download_server.url("/files/document.txt") + attachment = Attachment( + content_type="text/plain", + content_url=content_url, + content={"source": "m365"}, + name="document.txt", + ) + downloader = M365AttachmentDownloader( + connections=agent_environment.connections, + ) + + files = await download_attachments( + agent_client, + agent_environment, + downloader, + channel_id=Channels.ms_teams, + attachments=[attachment], + ) + + assert files[0]["content"] == "document-content" + assert files[0]["content_url"] == content_url + assert download_server.requested_paths == ["/files/document.txt"] + + async def test_downloads_file_for_m365_copilot_channel( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + attachment = Attachment( + content_type="text/plain", + content_url="https://attachments.example/document.txt", + content={ + "downloadUrl": download_server.url("/files/document.txt"), + }, + name="document.txt", + ) + downloader = M365AttachmentDownloader( + connections=agent_environment.connections, + ) + + files = await download_attachments( + agent_client, + agent_environment, + downloader, + channel_id=Channels.m365_copilot, + attachments=[attachment], + ) + + assert len(files) == 1 + assert download_server.requested_paths == ["/files/document.txt"] + + async def test_ignores_attachments_from_non_m365_channel( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + attachment = Attachment( + content_type="text/plain", + content_url="https://attachments.example/document.txt", + content={ + "downloadUrl": download_server.url("/files/document.txt"), + }, + name="document.txt", + ) + downloader = M365AttachmentDownloader( + connections=agent_environment.connections, + ) + + files = await download_attachments( + agent_client, + agent_environment, + downloader, + channel_id=Channels.webchat, + attachments=[attachment], + ) + + assert files == [] + assert download_server.requested_paths == [] + + async def test_composes_with_generic_downloader_without_duplicate_files( + self, + agent_client: AgentClient, + agent_environment: AgentEnvironment, + download_server: DownloadServer, + ): + attachment = Attachment( + content_type="text/plain", + content_url="https://attachments.example/document.txt", + content={ + "downloadUrl": download_server.url("/files/document.txt"), + }, + name="document.txt", + ) + downloaders = [ + AttachmentDownloader(), + M365AttachmentDownloader( + connections=agent_environment.connections, + ), + ] + + files = await download_attachments( + agent_client, + agent_environment, + downloaders, + channel_id=Channels.ms_teams, + attachments=[attachment], + ) + + assert len(files) == 1 + assert files[0]["filename"] == "document.txt" + assert download_server.requested_paths == ["/files/document.txt"] diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py index 2bd859082..d6ba36ac0 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py @@ -2,6 +2,7 @@ # Licensed under the MIT License. from email.message import Message +from urllib.parse import urlparse _CONTENT_TYPE = "Content-Type" @@ -21,3 +22,15 @@ def _parse_content_type(content_type: str) -> tuple[str, dict[str, str]] | None: # the first param is the mime-type # the later ones are the attribtues like "charset" return params[0][0], dict(params[1:]) + + +def _basic_url_check(url: str) -> bool: + """Performs a basic check to see if the given string is a valid URL. + + :param url: The URL string to check. + :return: True if the URL has a valid scheme and netloc, False otherwise. + """ + parsed = urlparse(url) + return parsed.scheme == "https" or ( + parsed.scheme == "http" and parsed.hostname == "localhost" + ) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py index a8c8c1eac..7f6a71965 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/attachment_downloader.py @@ -16,10 +16,11 @@ from microsoft_agents.hosting.core.outbound_host_validator import OutboundHostValidator from .input_file import InputFileDownloader, InputFile -from ._utils import _parse_content_type +from ._utils import _parse_content_type, _basic_url_check class AttachmentDownloader(InputFileDownloader): + """Downloads attachments from a given turn context.""" def __init__( self, @@ -39,6 +40,7 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: """Downloads files for the given turn context. :param context: The TurnContext instance for the current turn. + :return: A list of InputFile instances representing the downloaded files. """ if ChannelId.get_channel(context.activity.channel_id) == Channels.ms_teams: return [] @@ -60,10 +62,7 @@ async def _download_file(self, attachment: Attachment) -> InputFile | None: :param attachment: The attachment to download. :return: An InputFile instance if the download is successful, None otherwise. """ - if attachment.content_url and ( - attachment.content_url.startswith("https://") - or attachment.content_url.startswith("http://localhost") - ): + if attachment.content_url and _basic_url_check(attachment.content_url): remote_file_url = attachment.content_url if ( @@ -76,7 +75,7 @@ async def _download_file(self, attachment: Attachment) -> InputFile | None: async with self._client_factory() as client: async with client.get(remote_file_url) as response: - if not response.status == 200: + if not (200 <= response.status < 300): return None content_type_val = response.headers.get("Content-Type", "") diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py index 80f47d1fa..662c48c92 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py @@ -20,7 +20,7 @@ from microsoft_agents.hosting.core.outbound_host_validator import OutboundHostValidator from .input_file import InputFileDownloader, InputFile -from ._utils import _parse_content_type +from ._utils import _parse_content_type, _basic_url_check class M365AttachmentDownloader(InputFileDownloader): @@ -62,13 +62,6 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: :return: A list of InputFile instances. """ - if not context.identity: - raise ValueError("No valid context identity found.") - - outgoing_audience_claim = context.identity.get_outgoing_audience_claim() - if not outgoing_audience_claim: - raise ValueError("No valid outgoing App ID found.") - if context.activity.channel_id not in ( Channels.ms_teams, Channels.m365_copilot, @@ -86,6 +79,13 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: if not attachments: return [] + if not context.identity: + raise ValueError("No valid context identity found.") + + outgoing_audience_claim = context.identity.get_outgoing_audience_claim() + if not outgoing_audience_claim: + raise ValueError("No valid outgoing App ID found.") + access_token = "" if not self._use_anonymous: @@ -127,17 +127,14 @@ async def _download_file( """ name = attachment.name - if attachment.content_url and ( - attachment.content_url.startswith("https://") - or attachment.content_url.startswith("http://localhost") - ): - download_url: str - if isinstance(attachment.content, dict): - content_dict = cast(dict[str, Any], attachment.content) - download_url = content_dict.get("downloadUrl", attachment.content_url) - else: - download_url = attachment.content_url + download_url: str | None = None + if isinstance(attachment.content, dict): + content_dict = cast(dict[str, Any], attachment.content) + download_url = content_dict.get("downloadUrl", attachment.content_url) + else: + download_url = attachment.content_url + if download_url and _basic_url_check(download_url): if ( self._host_validator is not None and self._host_validator.enabled @@ -149,7 +146,7 @@ async def _download_file( async with client.get( download_url, headers={"Authorization": f"Bearer {access_token}"} ) as response: - if response.status >= 300: + if not (200 <= response.status < 300): return None content = await response.read() result = _parse_content_type( diff --git a/tests/hosting_core/app/test_agent_application_file_downloaders.py b/tests/hosting_core/app/test_agent_application_file_downloaders.py new file mode 100644 index 000000000..8fe356874 --- /dev/null +++ b/tests/hosting_core/app/test_agent_application_file_downloaders.py @@ -0,0 +1,145 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import pytest + +from microsoft_agents.activity import Activity, ActivityTypes +from microsoft_agents.hosting.core import MemoryStorage, TurnContext +from microsoft_agents.hosting.core.app import ( + AgentApplication, + ApplicationOptions, + InputFile, + InputFileDownloader, + TurnState, +) +from microsoft_agents.hosting.core.app.oauth import Authorization +from tests._common.testing_objects import ( + TestingConnectionManager as _ConnectionManager, +) + + +class DummyFileDownloader(InputFileDownloader): + def __init__( + self, + files: list[InputFile], + calls: list[str] | None = None, + name: str = "downloader", + ): + self.files = files + self.calls = calls if calls is not None else [] + self.name = name + self.contexts: list[TurnContext] = [] + + async def download_files(self, context: TurnContext) -> list[InputFile]: + self.calls.append(self.name) + self.contexts.append(context) + return self.files + + +class StubAdapter: + pass + + +def _make_activity() -> Activity: + return Activity( + type=ActivityTypes.event, + channel_id="test", + conversation={"id": "conversation-id"}, + from_property={"id": "user-id"}, + ) + + +def _make_app( + file_downloaders: list[InputFileDownloader] | None = None, +) -> AgentApplication[TurnState]: + storage = MemoryStorage() + return AgentApplication[TurnState]( + options=ApplicationOptions( + storage=storage, + start_typing_timer=False, + remove_recipient_mention=False, + file_downloaders=file_downloaders or [], + ), + authorization=Authorization( + storage=storage, + connection_manager=_ConnectionManager(), + ), + ) + + +@pytest.mark.asyncio +async def test_file_downloader_runs_after_before_turn_and_before_route(): + calls: list[str] = [] + downloaded_file = InputFile( + content=b"file-content", + content_type="text/plain", + filename="document.txt", + ) + downloader = DummyFileDownloader([downloaded_file], calls) + app = _make_app([downloader]) + context = TurnContext(StubAdapter(), _make_activity()) + files_seen_by_route: list[InputFile] = [] + + async def before_turn(_context: TurnContext, state: TurnState): + calls.append("before") + assert state.temp.input_files == [] + return True + + app.before_turn(before_turn) + + @app.activity(ActivityTypes.event) + async def on_event(_context: TurnContext, state: TurnState): + calls.append("route") + files_seen_by_route.extend(state.temp.input_files) + + await app.on_turn(context) + + assert calls == ["before", "downloader", "route"] + assert downloader.contexts == [context] + assert files_seen_by_route == [downloaded_file] + + +@pytest.mark.asyncio +async def test_multiple_file_downloaders_combine_results_in_registration_order(): + first_file = InputFile( + content=b"first", + content_type="text/plain", + filename="first.txt", + ) + second_file = InputFile( + content=b"second", + content_type="text/plain", + filename="second.txt", + ) + calls: list[str] = [] + app = _make_app( + [ + DummyFileDownloader([first_file], calls, "first"), + DummyFileDownloader([second_file], calls, "second"), + ] + ) + files_seen_by_route: list[InputFile] = [] + + @app.activity(ActivityTypes.event) + async def on_event(_context: TurnContext, state: TurnState): + files_seen_by_route.extend(state.temp.input_files) + + await app.on_turn(TurnContext(StubAdapter(), _make_activity())) + + assert calls == ["first", "second"] + assert files_seen_by_route == [first_file, second_file] + + +@pytest.mark.asyncio +async def test_route_receives_empty_input_files_when_no_downloaders_are_configured(): + app = _make_app() + files_seen_by_route: list[InputFile] | None = None + + @app.activity(ActivityTypes.event) + async def on_event(_context: TurnContext, state: TurnState): + nonlocal files_seen_by_route + files_seen_by_route = state.temp.input_files + + await app.on_turn(TurnContext(StubAdapter(), _make_activity())) + + assert files_seen_by_route == [] diff --git a/tests/hosting_core/app/test_attachment_downloader.py b/tests/hosting_core/app/test_attachment_downloader.py index b06e6fbf6..799b3478f 100644 --- a/tests/hosting_core/app/test_attachment_downloader.py +++ b/tests/hosting_core/app/test_attachment_downloader.py @@ -150,6 +150,49 @@ async def test_allows_http_localhost_urls(self): assert len(files) == 1 + @pytest.mark.asyncio + @pytest.mark.parametrize( + "content_url", + [ + "http://localhost.evil.example/file.txt", + "http://localhost@evil.example/file.txt", + ], + ) + async def test_does_not_request_spoofed_localhost_urls(self, content_url): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + downloader = AttachmentDownloader(client_factory=lambda: session) + context = _make_context( + attachments=[Attachment(content_type="text/plain", content_url=content_url)] + ) + + await downloader.download_files(context) + + assert session.requested_urls == [] + + @pytest.mark.asyncio + async def test_accepts_partial_content_response(self): + response = _FakeResponse( + status=206, content=b"partial-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + downloader = AttachmentDownloader(client_factory=lambda: session) + context = _make_context( + attachments=[ + Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + ) + ] + ) + + files = await downloader.download_files(context) + + assert len(files) == 1 + assert files[0].content == b"partial-bytes" + @pytest.mark.asyncio async def test_normalizes_image_content_type_to_png(self): response = _FakeResponse( diff --git a/tests/hosting_core/app/test_m365_attachment_downloader.py b/tests/hosting_core/app/test_m365_attachment_downloader.py index f9b3396f3..f7abc6d78 100644 --- a/tests/hosting_core/app/test_m365_attachment_downloader.py +++ b/tests/hosting_core/app/test_m365_attachment_downloader.py @@ -39,6 +39,9 @@ async def get_access_token( self.requested = (resource_url, scopes) return f"{self.name}-token" + def get_token_credential(self): + raise NotImplementedError() + async def acquire_token_on_behalf_of( self, scopes: list[str], user_assertion: str ) -> str: @@ -146,12 +149,43 @@ async def test_raises_when_context_has_no_identity(self): recipient=ChannelAccount(id="bot", name="Bot Name"), conversation=ConversationAccount(id="convo", name="Convo Name"), service_url="https://example.org", + attachments=[ + Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + ) + ], ) context = TurnContext(MagicMock(), activity, identity=None) with pytest.raises(ValueError): await downloader.download_files(context) + @pytest.mark.asyncio + async def test_returns_empty_list_for_non_m365_channel_without_identity(self): + downloader = M365AttachmentDownloader(connections=_FakeConnections(None)) + activity = Activity( + type="message", + channel_id="webchat", + attachments=[ + Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + ) + ], + ) + context = TurnContext(MagicMock(), activity, identity=None) + + assert await downloader.download_files(context) == [] + + @pytest.mark.asyncio + async def test_returns_empty_list_for_no_attachments_without_identity(self): + downloader = M365AttachmentDownloader(connections=_FakeConnections(None)) + activity = Activity(type="message", channel_id="msteams") + context = TurnContext(MagicMock(), activity, identity=None) + + assert await downloader.download_files(context) == [] + @pytest.mark.asyncio async def test_returns_empty_list_for_non_teams_channel(self): downloader = M365AttachmentDownloader( @@ -280,6 +314,58 @@ async def test_falls_back_to_content_url_when_download_url_missing(self): assert len(files) == 1 assert session.requested_urls == ["https://example.org/file.txt"] + @pytest.mark.asyncio + @pytest.mark.parametrize( + "download_url", + [ + "http://localhost.evil.example/file.txt", + "http://localhost@evil.example/file.txt", + ], + ) + async def test_does_not_request_spoofed_localhost_download_urls(self, download_url): + response = _FakeResponse( + status=200, content=b"file-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")), + client_factory=lambda: session, + ) + attachment = Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + content={"downloadUrl": download_url}, + ) + context = _make_context(attachments=[attachment]) + + await downloader.download_files(context) + + assert session.requested_urls == [] + + @pytest.mark.asyncio + async def test_accepts_partial_content_response(self): + response = _FakeResponse( + status=206, content=b"partial-bytes", content_type="text/plain" + ) + session = _FakeSession(response) + downloader = M365AttachmentDownloader( + connections=_FakeConnections(_FakeTokenProvider("p")), + client_factory=lambda: session, + ) + context = _make_context( + attachments=[ + Attachment( + content_type="text/plain", + content_url="https://example.org/file.txt", + ) + ] + ) + + files = await downloader.download_files(context) + + assert len(files) == 1 + assert files[0].content == b"partial-bytes" + @pytest.mark.asyncio async def test_normalizes_image_content_type_to_png(self): response = _FakeResponse( From 803ad5060ea9ed0ab4e149298418ea80fe17c80b Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Fri, 25 Sep 2026 14:47:45 -0700 Subject: [PATCH 16/17] Updating changelog --- changelog.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/changelog.md b/changelog.md index 13ce7c86e..89ad433ac 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,18 @@ +# Microsoft 365 Agents SDK for Python - Release Notes v1.8.0 (Unreleased) + +**Release Date:** Unreleased +**Previous Version:** 1.7.0 (Released 2026-09-17) + +## Major Features & Enhancements + +- **Attachment Downloaders**: Added `AttachmentDownloader` and `M365AttachmentDownloader` for downloading standard, Microsoft Teams, and Microsoft 365 Copilot attachments into `TurnState.temp.input_files`. + +## Samples + +- **Handling Attachments Sample**: Added a sample demonstrating incoming attachment downloads, inline and internet-hosted attachments, and Teams attachment uploads. + +--- + # Microsoft 365 Agents SDK for Python - Release Notes v1.7.0 **Release Date:** 2026-09-17 From 7073ccb5601be3ef5a70cc393a00d3ee026e822c Mon Sep 17 00:00:00 2001 From: Rodrigo Brandao Date: Fri, 25 Sep 2026 15:15:03 -0700 Subject: [PATCH 17/17] Addressing PR feedback --- .../microsoft_agents/hosting/core/app/_utils.py | 2 +- .../hosting/core/app/input_file.py | 4 +++- .../core/app/m365_attachment_downloader.py | 15 ++++++++------- test_samples/handling_attachments/src/main.py | 2 +- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py index d6ba36ac0..f6715087e 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/_utils.py @@ -20,7 +20,7 @@ def _parse_content_type(content_type: str) -> tuple[str, dict[str, str]] | None: if params is None: return None # the first param is the mime-type - # the later ones are the attribtues like "charset" + # the later ones are the attributes like "charset" return params[0][0], dict(params[1:]) diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py index a8fc4e14c..a9015be55 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/input_file.py @@ -18,7 +18,9 @@ class InputFile: :param content_type: The content type of the file. :type content_type: str :param content_url: Optional. URL to the content of the file. - :type content_url: Optional[str] + :type content_url: str | None + :param filename: Optional. The name of the file. + :type filename: str | None """ content: bytes diff --git a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py index 662c48c92..736f4d577 100644 --- a/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py +++ b/libraries/microsoft-agents-hosting-core/microsoft_agents/hosting/core/app/m365_attachment_downloader.py @@ -79,16 +79,17 @@ async def download_files(self, context: TurnContext) -> list[InputFile]: if not attachments: return [] - if not context.identity: - raise ValueError("No valid context identity found.") - - outgoing_audience_claim = context.identity.get_outgoing_audience_claim() - if not outgoing_audience_claim: - raise ValueError("No valid outgoing App ID found.") - access_token = "" if not self._use_anonymous: + + if not context.identity: + raise ValueError("No valid context identity found.") + + outgoing_audience_claim = context.identity.get_outgoing_audience_claim() + if not outgoing_audience_claim: + raise ValueError("No valid outgoing App ID found.") + token_provider: AccessTokenProviderBase | None = None if self._token_provider_name: try: diff --git a/test_samples/handling_attachments/src/main.py b/test_samples/handling_attachments/src/main.py index a999a06e4..af6fb7115 100644 --- a/test_samples/handling_attachments/src/main.py +++ b/test_samples/handling_attachments/src/main.py @@ -13,7 +13,7 @@ if __name__ == "__main__": - app = FastAPI(title="Empty Agent Sample", version="1.0.0") + app = FastAPI(title="Handling Attachments Agent", version="1.0.0") app.state.agent_configuration = ( CONNECTION_MANAGER.get_default_connection_configuration() )