From 8bc6a0520415a08a13859229cf39191d4fd528c0 Mon Sep 17 00:00:00 2001 From: "jason.mjx" Date: Thu, 25 Apr 2024 11:27:21 +0800 Subject: [PATCH] improve the implementation of naive RAG --- .gitignore | 3 +- docs/agent.md | 2 +- docs/agent_cn.md | 2 +- examples/assistant_add_custom_tool.py | 24 +- examples/assistant_growing_girl.py | 15 +- examples/assistant_weather_bot.py | 6 +- examples/gpt_mentions.py | 143 ------- examples/group_chat_chess.py | 44 +- examples/multi_agent_router.py | 33 +- examples/react_data_analysis.py | 6 +- examples/visual_storytelling.py | 4 +- qwen_agent/__init__.py | 2 +- qwen_agent/agent.py | 13 +- qwen_agent/agents/__init__.py | 20 +- qwen_agent/agents/article_agent.py | 9 +- qwen_agent/agents/assistant.py | 103 ++++- qwen_agent/agents/doc_qa/__init__.py | 5 + .../basic_doc_qa.py} | 16 +- qwen_agent/agents/fncall_agent.py | 37 +- qwen_agent/agents/group_chat_auto_router.py | 41 +- qwen_agent/agents/react_chat.py | 13 +- qwen_agent/agents/router.py | 38 +- qwen_agent/agents/user_agent.py | 3 +- qwen_agent/agents/write_from_scratch.py | 39 +- qwen_agent/gui/__init__.py | 3 + qwen_agent/gui/assets/logo.jpeg | Bin 0 -> 94804 bytes qwen_agent/gui/assets/user.jpeg | Bin 0 -> 16410 bytes qwen_agent/gui/gradio.py | 8 + qwen_agent/gui/utils.py | 8 + qwen_agent/llm/__init__.py | 2 +- qwen_agent/llm/base.py | 220 ++++------ qwen_agent/llm/function_calling.py | 99 +++-- qwen_agent/llm/oai.py | 38 +- qwen_agent/llm/qwen_dashscope.py | 49 ++- qwen_agent/llm/qwenvl_dashscope.py | 20 +- qwen_agent/llm/schema.py | 15 +- qwen_agent/llm/text_base.py | 9 +- qwen_agent/memory/memory.py | 53 +-- qwen_agent/prompts/__init__.py | 8 +- qwen_agent/prompts/gen_keyword.py | 14 +- qwen_agent/settings.py | 11 + qwen_agent/tools/__init__.py | 3 +- qwen_agent/tools/base.py | 21 +- qwen_agent/tools/code_interpreter.py | 397 +++++++++--------- qwen_agent/tools/doc_parser.py | 397 ++++++++++++------ .../resource/code_interpreter_init_kernel.py | 4 +- qwen_agent/tools/resource/image_service.py | 7 +- qwen_agent/tools/retrieval.py | 62 +-- qwen_agent/tools/similarity_search.py | 270 ++++++++---- qwen_agent/tools/simple_doc_parser.py | 367 ++++++++++++++++ qwen_agent/tools/storage.py | 16 +- qwen_agent/tools/web_extractor.py | 28 +- qwen_agent/utils/doc_parser.py | 106 ----- qwen_agent/utils/str_processing.py | 30 ++ qwen_agent/utils/tokenization_qwen.py | 94 +---- qwen_agent/utils/utils.py | 385 ++++++++--------- qwen_server/assistant_server.py | 37 +- qwen_server/database_server.py | 20 +- qwen_server/img/logo.png | Bin 732731 -> 0 bytes qwen_server/js/main.js | 79 ++-- qwen_server/output_beautify.py | 82 +--- qwen_server/schema.py | 2 - qwen_server/server_config.json | 9 +- qwen_server/workstation_server.py | 173 ++++---- requirements.txt | 5 +- run_server.py | 28 +- tests/agents/test_doc_qa.py | 4 +- tests/agents/test_router.py | 27 +- tests/examples/test_examples.py | 11 +- tests/memory/test_memory.py | 10 +- tests/qwen_server/test_database_server.py | 6 +- tests/tools/test_doc_parser.py | 12 + tests/tools/test_similarity_search.py | 20 + tests/tools/test_simple_doc_parser.py | 11 + tests/tools/test_tools.py | 18 +- 75 files changed, 2160 insertions(+), 1759 deletions(-) delete mode 100644 examples/gpt_mentions.py create mode 100644 qwen_agent/agents/doc_qa/__init__.py rename qwen_agent/agents/{docqa_agent.py => doc_qa/basic_doc_qa.py} (71%) create mode 100644 qwen_agent/gui/__init__.py create mode 100644 qwen_agent/gui/assets/logo.jpeg create mode 100644 qwen_agent/gui/assets/user.jpeg create mode 100644 qwen_agent/gui/gradio.py create mode 100644 qwen_agent/gui/utils.py create mode 100644 qwen_agent/settings.py create mode 100644 qwen_agent/tools/simple_doc_parser.py delete mode 100644 qwen_agent/utils/doc_parser.py create mode 100644 qwen_agent/utils/str_processing.py delete mode 100644 qwen_server/img/logo.png create mode 100644 tests/tools/test_doc_parser.py create mode 100644 tests/tools/test_similarity_search.py create mode 100644 tests/tools/test_simple_doc_parser.py diff --git a/.gitignore b/.gitignore index 1befe1a..86e7cb6 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,8 @@ log.jsonl ai_agent/debug.json ai_agent/local_prompts/* -*/debug.json +**/debug.json +**/debug.log* debug.json ai_agent/log.jsonl qwen_agent.egg-info/* diff --git a/docs/agent.md b/docs/agent.md index 365347f..bdb8018 100644 --- a/docs/agent.md +++ b/docs/agent.md @@ -8,7 +8,7 @@ The Agent receives a list of messages as input and produces a generator that yie Different Agent classes have various workflows. In the [agents](../qwen_agent/agents) directory, we provide several different fundamental Agent subclasses. For instance, the [ArticleAgent](../qwen_agent/agents/article_agent.py) returns a message that includes an article; -the [DocQAAgent](../qwen_agent/agents/docqa_agent.py) returns a message that contains the results of a document Q&A Results. +the [BasicDocQA](../qwen_agent/agents/doc_qa/basic_doc_qa.py) returns a message that contains the results of a document Q&A Results. These types of Agents have relatively fixed response patterns and are suited for fairly specific use cases. diff --git a/docs/agent_cn.md b/docs/agent_cn.md index 224619c..75a34cb 100644 --- a/docs/agent_cn.md +++ b/docs/agent_cn.md @@ -8,7 +8,7 @@ Agent接收一个消息列表输入,并返回一个消息列表的生成器, 不同Agent类具有不同的工作流程,我们在[agents](../qwen_agent/agents)目录提供了多个不同的基础的Agent子类, 例如[ArticleAgent](../qwen_agent/agents/article_agent.py)接收消息后,返回消息包含一篇文章; -[DocQAAgent](../qwen_agent/agents/docqa_agent.py)返回消息包含文档问答的结果。 +[BasicDocQA](../qwen_agent/agents/doc_qa/basic_doc_qa.py)返回消息包含文档问答的结果。 可以看出,这类Agent回复模式相对固定,使用场景也比较固定。 ### 1.1. Assistant 类 diff --git a/examples/assistant_add_custom_tool.py b/examples/assistant_add_custom_tool.py index 8951b06..ae4386b 100644 --- a/examples/assistant_add_custom_tool.py +++ b/examples/assistant_add_custom_tool.py @@ -19,26 +19,34 @@ class MyImageGen(BaseTool): 'name': 'prompt', 'type': 'string', 'description': 'Detailed description of the desired image content, in English', - 'required': True + 'required': True, }] def call(self, params: str, **kwargs) -> str: prompt = json5.loads(params)['prompt'] prompt = urllib.parse.quote(prompt) - return json.dumps({'image_url': f'https://image.pollinations.ai/prompt/{prompt}'}, ensure_ascii=False) + return json.dumps( + {'image_url': f'https://image.pollinations.ai/prompt/{prompt}'}, + ensure_ascii=False, + ) def init_agent_service(): llm_cfg = {'model': 'qwen-max'} - system = ('According to the user\'s request, you first draw a picture and then automatically ' + system = ("According to the user's request, you first draw a picture and then automatically " 'run code to download the picture and select an image operation from the given document ' 'to process the image') - tools = ['my_image_gen', 'code_interpreter'] # code_interpreter is a built-in tool in Qwen-Agent - bot = Assistant(llm=llm_cfg, - system_message=system, - function_list=tools, - files=[os.path.join(ROOT_RESOURCE, 'doc.pdf')]) + tools = [ + 'my_image_gen', + 'code_interpreter', + ] # code_interpreter is a built-in tool in Qwen-Agent + bot = Assistant( + llm=llm_cfg, + system_message=system, + function_list=tools, + files=[os.path.join(ROOT_RESOURCE, 'doc.pdf')], + ) return bot diff --git a/examples/assistant_growing_girl.py b/examples/assistant_growing_girl.py index 8c47fb5..7fb9643 100644 --- a/examples/assistant_growing_girl.py +++ b/examples/assistant_growing_girl.py @@ -10,10 +10,12 @@ def init_agent_service(): llm_cfg = {'model': 'qwen-max'} tools = ['image_gen'] - bot = Assistant(llm=llm_cfg, - function_list=tools, - system_message='你扮演一个漫画家,根据我给你的女孩的不同阶段,使用工具画出每个阶段女孩的的图片,' - '并串成一个故事讲述出来。要求图片背景丰富') + bot = Assistant( + llm=llm_cfg, + function_list=tools, + system_message='你扮演一个漫画家,根据我给你的女孩的不同阶段,使用工具画出每个阶段女孩的的图片,' + '并串成一个故事讲述出来。要求图片背景丰富', + ) return bot @@ -42,7 +44,10 @@ def app(): messages.extend(response) -def test(query='请用image_gen开始创作!', file: Optional[str] = os.path.join(ROOT_RESOURCE, 'growing_girl.pdf')): +def test( + query='请用image_gen开始创作!', + file: Optional[str] = os.path.join(ROOT_RESOURCE, 'growing_girl.pdf'), +): # Define the agent bot = init_agent_service() diff --git a/examples/assistant_weather_bot.py b/examples/assistant_weather_bot.py index 7ba3360..86cff21 100644 --- a/examples/assistant_weather_bot.py +++ b/examples/assistant_weather_bot.py @@ -13,7 +13,11 @@ def init_agent_service(): '你需要查询相应地区的天气,然后调用给你的画图工具绘制一张城市的图,并从给定的诗词文档中选一首相关的诗词来描述天气,不要说文档以外的诗词。') tools = ['image_gen', 'amap_weather'] - bot = Assistant(llm=llm_cfg, system_message=system, function_list=tools) + bot = Assistant( + llm=llm_cfg, + system_message=system, + function_list=tools, + ) return bot diff --git a/examples/gpt_mentions.py b/examples/gpt_mentions.py deleted file mode 100644 index 018e12a..0000000 --- a/examples/gpt_mentions.py +++ /dev/null @@ -1,143 +0,0 @@ -"""A gpt @mentions gradio demo""" -import gradio as gr - -from qwen_agent.agents import Assistant, DocQAAgent, ReActChat -from qwen_server import output_beautify - - -def init_agent_service(messages): - llm_cfg = {'model': 'qwen-max'} - - agent_list = { - 'code_interpreter': { - 'object': ReActChat, - 'params': { - 'system_message': - 'you are a programming expert, skilled in writing code to solve mathematical problems and data analysis problems.', - 'function_list': ['code_interpreter'], - 'llm': - llm_cfg - } - }, - 'doc_qa': { - 'object': DocQAAgent, - 'params': { - 'llm': llm_cfg - } - }, - 'assistant': { - 'object': Assistant, - 'params': { - 'llm': llm_cfg - } - } - } - - agent = messages[-1]['content'][0]['text'].split('@')[-1].strip() - selected_agent = agent_list[agent]['object'](**agent_list[agent]['params']) - - return selected_agent - - -# ========================================================= -# Below is the gradio service: front-end and back-end logic -# ========================================================= - -app_global_para = {'messages': [], 'is_first_upload': True, 'uploaded_file': ''} - -AGENT_LIST_NAME = ['code_interpreter', 'doc_qa', 'assistant'] - - -def app(history, chosen_plug): - if not history: - yield history - else: - if '@' not in history[-1][0]: - history[-1][0] += ('@' + chosen_plug) - content = [{'text': history[-1][0]}] - if app_global_para['uploaded_file'] and app_global_para['is_first_upload']: - app_global_para['is_first_upload'] = False # only send file when first upload - content.append({'file': app_global_para['uploaded_file']}) - app_global_para['messages'].append({'role': 'user', 'content': content}) - - # Define the agent - selected_agent = init_agent_service(messages=app_global_para['messages']) - - # Chat - history[-1][1] = '' - response = [] - try: - for response in selected_agent.run(messages=app_global_para['messages']): - if response: - display_response = output_beautify.convert_fncall_to_text(response) - history[-1][1] = display_response[-1]['content'] - yield history - except Exception as ex: - raise ValueError(ex) - - app_global_para['messages'].extend(response) - - -def test(history: list = [('你好', None)], chosen_plug: str = 'assistant'): - app(history=history, chosen_plug=chosen_plug) - - -def add_text(history, text): - history = history + [(text, None)] - return history, gr.update(value='', interactive=False) - - -def chat_clear(): - app_global_para['messages'] = [] - return None, None - - -def add_file(file): - app_global_para['uploaded_file'] = file.name - app_global_para['is_first_upload'] = True - return file.name - - -with gr.Blocks(theme='soft') as demo: - with gr.Tab('Chat', elem_id='chat-tab'): - with gr.Column(): - chatbot = gr.Chatbot( - [], - elem_id='chatbot', - height=750, - show_copy_button=True, - ) - with gr.Row(): - with gr.Column(scale=1, min_width=0): - file_btn = gr.UploadButton('Upload', file_types=['file']) - - with gr.Column(scale=13): - chat_txt = gr.Textbox( - show_label=False, - placeholder='Chat with Qwen...', - container=False, - ) - with gr.Column(scale=1, min_width=0): - chat_clr_bt = gr.Button('Clear') - - with gr.Row(): - with gr.Column(scale=2, min_width=0): - plug_bt = gr.Dropdown( - AGENT_LIST_NAME, - label='Mention List', - info='', - value='assistant', - ) - with gr.Column(scale=8, min_width=0): - hidden_file_path = gr.Textbox(interactive=False, label='The uploaded file is displayed here') - - txt_msg = chat_txt.submit(add_text, [chatbot, chat_txt], [chatbot, chat_txt], - queue=False).then(app, [chatbot, plug_bt], chatbot) - txt_msg.then(lambda: gr.update(interactive=True), None, [chat_txt], queue=False) - - file_msg = file_btn.upload(add_file, file_btn, [hidden_file_path], queue=False) - - chat_clr_bt.click(chat_clear, None, [chatbot, hidden_file_path], queue=False) - -if __name__ == '__main__': - demo.queue().launch() diff --git a/examples/group_chat_chess.py b/examples/group_chat_chess.py index 79ebb2d..4ec5147 100644 --- a/examples/group_chat_chess.py +++ b/examples/group_chat_chess.py @@ -9,26 +9,30 @@ CFGS = { 'background': f'一个五子棋群组,棋盘为5*5,黑棋玩家和白棋玩家交替下棋,每次玩家下棋后,棋盘进行更新并展示。{NPC_NAME}下白棋,{USER_NAME}下黑棋。', - 'agents': [{ - 'name': - '棋盘', - 'description': - '负责更新棋盘', - 'instructions': - '你扮演一个五子棋棋盘,你可以根据原始棋盘和玩家下棋的位置坐标,把新的棋盘用矩阵展示出来。棋盘中用0代表无棋子、用1表示黑棋、用-1表示白棋。用坐标表示位置,i代表行,j代表列,棋盘左上角位置为<0,0>。', - 'selected_tools': ['code_interpreter'] - }, { - 'name': - NPC_NAME, - 'description': - '白棋玩家', - 'instructions': - '你扮演一个玩五子棋的高手,你下白棋。棋盘中用0代表无棋子、用1黑棋、用-1白棋。用坐标表示位置,i代表行,j代表列,棋盘左上角位置为<0,0>,请决定你要下在哪里,你可以随意下到一个位置,不要说你是AI助手不会下!返回格式为坐标:\n\n除了这个坐标,不要返回其他任何内容', - }, { - 'name': USER_NAME, - 'description': '黑棋玩家', - 'is_human': True - }] + 'agents': [ + { + 'name': + '棋盘', + 'description': + '负责更新棋盘', + 'instructions': + '你扮演一个五子棋棋盘,你可以根据原始棋盘和玩家下棋的位置坐标,把新的棋盘用矩阵展示出来。棋盘中用0代表无棋子、用1表示黑棋、用-1表示白棋。用坐标表示位置,i代表行,j代表列,棋盘左上角位置为<0,0>。', + 'selected_tools': ['code_interpreter'], + }, + { + 'name': + NPC_NAME, + 'description': + '白棋玩家', + 'instructions': + '你扮演一个玩五子棋的高手,你下白棋。棋盘中用0代表无棋子、用1黑棋、用-1白棋。用坐标表示位置,i代表行,j代表列,棋盘左上角位置为<0,0>,请决定你要下在哪里,你可以随意下到一个位置,不要说你是AI助手不会下!返回格式为坐标:\n\n除了这个坐标,不要返回其他任何内容', + }, + { + 'name': USER_NAME, + 'description': '黑棋玩家', + 'is_human': True + }, + ], } diff --git a/examples/multi_agent_router.py b/examples/multi_agent_router.py index a862250..118ab72 100644 --- a/examples/multi_agent_router.py +++ b/examples/multi_agent_router.py @@ -1,4 +1,5 @@ """A multi-agent cooperation example implemented by router and assistant""" + import os from typing import Optional @@ -14,23 +15,21 @@ def init_agent_service(): tools = ['image_gen', 'code_interpreter'] # Define a vl agent - bot_vl = Assistant(llm=llm_cfg_vl) + bot_vl = Assistant(llm=llm_cfg_vl, name='多模态助手', description='可以理解图像内容。') # Define a tool agent - bot_tool = ReActChat(llm=llm_cfg, function_list=tools) + bot_tool = ReActChat( + llm=llm_cfg, + name='工具助手', + description='可以使用画图工具和运行代码来解决问题', + function_list=tools, + ) # Define a router (simultaneously serving as a text agent) - bot = Router(llm=llm_cfg, - agents={ - 'vl': { - 'obj': bot_vl, - 'desc': '多模态助手,可以理解图像内容。' - }, - 'tool': { - 'obj': bot_tool, - 'desc': '工具助手,可以使用画图工具和运行代码来解决问题' - } - }) + bot = Router( + llm=llm_cfg, + agents=[bot_vl, bot_tool], + ) return bot @@ -65,10 +64,10 @@ def app(): def test( - query: str = 'hello', - image: # noqa - str = 'https://img01.sc115.com/uploads/sc/jpgs/1505/apic11540_sc115.com.jpg', # noqa - file: Optional[str] = os.path.join(ROOT_RESOURCE, 'poem.pdf')): # noqa + query: str = 'hello', + image: str = 'https://img01.sc115.com/uploads/sc/jpgs/1505/apic11540_sc115.com.jpg', + file: Optional[str] = os.path.join(ROOT_RESOURCE, 'poem.pdf'), +): # Define the agent bot = init_agent_service() diff --git a/examples/react_data_analysis.py b/examples/react_data_analysis.py index a73f9b8..8cf50de 100644 --- a/examples/react_data_analysis.py +++ b/examples/react_data_analysis.py @@ -46,10 +46,8 @@ def app(): messages.extend(response) -def test( - query: # noqa - str = 'pd.head the file first and then help me draw a line chart to show the changes in stock prices', - file: Optional[str] = os.path.join(ROOT_RESOURCE, 'stock_prices.csv')): # noqa +def test(query: str = 'pd.head the file first and then help me draw a line chart to show the changes in stock prices', + file: Optional[str] = os.path.join(ROOT_RESOURCE, 'stock_prices.csv')): # Define the agent bot = init_agent_service() diff --git a/examples/visual_storytelling.py b/examples/visual_storytelling.py index d74bbcb..22c380a 100644 --- a/examples/visual_storytelling.py +++ b/examples/visual_storytelling.py @@ -34,8 +34,8 @@ def _run(self, **kwargs) -> Iterator[List[Message]]: """Define the workflow""" - assert (isinstance(messages[-1]['content'], list) and - any([item.image for item in messages[-1]['content']])), 'This agent requires input of images' + assert isinstance(messages[-1]['content'], list) + assert any([item.image for item in messages[-1]['content']]), 'This agent requires input of images' # Image understanding new_messages = copy.deepcopy(messages) diff --git a/qwen_agent/__init__.py b/qwen_agent/__init__.py index ef06910..a12f93c 100644 --- a/qwen_agent/__init__.py +++ b/qwen_agent/__init__.py @@ -1,4 +1,4 @@ -__version__ = '0.0.2' +__version__ = '0.0.3' from .agent import Agent __all__ = ['Agent'] diff --git a/qwen_agent/agent.py b/qwen_agent/agent.py index 2633853..a067921 100644 --- a/qwen_agent/agent.py +++ b/qwen_agent/agent.py @@ -9,7 +9,7 @@ from qwen_agent.llm.schema import CONTENT, DEFAULT_SYSTEM_MESSAGE, ROLE, SYSTEM, ContentItem, Message from qwen_agent.log import logger from qwen_agent.tools import TOOL_REGISTRY, BaseTool -from qwen_agent.utils.utils import has_chinese_chars +from qwen_agent.utils.utils import has_chinese_chars, merge_generate_cfgs class Agent(ABC): @@ -41,6 +41,7 @@ def __init__(self, self.llm = get_chat_model(llm) else: self.llm = llm + self.extra_generate_cfg: dict = {} self.function_map = {} if function_list: @@ -114,6 +115,7 @@ def _call_llm( messages: List[Message], functions: Optional[List[Dict]] = None, stream: bool = True, + extra_generate_cfg: Optional[dict] = None, ) -> Iterator[List[Message]]: """The interface of calling LLM for the agent. @@ -136,7 +138,13 @@ def _call_llm( else: assert isinstance(messages[0][CONTENT], list) messages[0][CONTENT] = [ContentItem(text=self.system_message)] + messages[0][CONTENT] - return self.llm.chat(messages=messages, functions=functions, stream=stream) + return self.llm.chat(messages=messages, + functions=functions, + stream=stream, + extra_generate_cfg=merge_generate_cfgs( + base_generate_cfg=self.extra_generate_cfg, + new_generate_cfg=extra_generate_cfg, + )) def _call_tool(self, tool_name: str, tool_args: Union[str, dict] = '{}', **kwargs) -> str: """The interface of calling tools for the agent. @@ -160,6 +168,7 @@ def _call_tool(self, tool_name: str, tool_args: Union[str, dict] = '{}', **kwarg error_message = f'An error occurred when calling tool `{tool_name}`:\n' \ f'{exception_type}: {exception_message}\n' \ f'Traceback:\n{traceback_info}' + logger.warning(error_message) return error_message if isinstance(tool_result, str): diff --git a/qwen_agent/agents/__init__.py b/qwen_agent/agents/__init__.py index 0b5f107..c149b39 100644 --- a/qwen_agent/agents/__init__.py +++ b/qwen_agent/agents/__init__.py @@ -1,6 +1,10 @@ +from qwen_agent import Agent + from .article_agent import ArticleAgent from .assistant import Assistant -from .docqa_agent import DocQAAgent +# DocQAAgent is the default solution for long document question answering. +# The actual implementation of DocQAAgent may change with every release. +from .doc_qa.basic_doc_qa import BasicDocQA as DocQAAgent from .fncall_agent import FnCallAgent from .group_chat import GroupChat from .group_chat_auto_router import GroupChatAutoRouter @@ -11,6 +15,16 @@ from .write_from_scratch import WriteFromScratch __all__ = [ - 'DocQAAgent', 'Assistant', 'ArticleAgent', 'ReActChat', 'Router', 'UserAgent', 'GroupChat', 'WriteFromScratch', - 'GroupChatCreator', 'GroupChatAutoRouter', 'FnCallAgent' + 'Agent', + 'DocQAAgent', + 'Assistant', + 'ArticleAgent', + 'ReActChat', + 'Router', + 'UserAgent', + 'GroupChat', + 'WriteFromScratch', + 'GroupChatCreator', + 'GroupChatAutoRouter', + 'FnCallAgent', ] diff --git a/qwen_agent/agents/article_agent.py b/qwen_agent/agents/article_agent.py index be83fac..3a19fca 100644 --- a/qwen_agent/agents/article_agent.py +++ b/qwen_agent/agents/article_agent.py @@ -4,6 +4,7 @@ from qwen_agent.agents.write_from_scratch import WriteFromScratch from qwen_agent.llm.schema import ASSISTANT, CONTENT, Message from qwen_agent.prompts import ContinueWriting +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN class ArticleAgent(Assistant): @@ -15,7 +16,7 @@ class ArticleAgent(Assistant): def _run(self, messages: List[Message], lang: str = 'en', - max_ref_token: int = 4000, + max_ref_token: int = DEFAULT_MAX_REF_TOKEN, full_article: bool = False, **kwargs) -> Iterator[List[Message]]: @@ -35,6 +36,6 @@ def _run(self, response.append(Message(ASSISTANT, '>\n> Writing Text: \n')) yield response - for trunk in writing_agent.run(messages=messages, lang=lang, knowledge=_ref): - if trunk: - yield response + trunk + for rsp in writing_agent.run(messages=messages, lang=lang, knowledge=_ref): + if rsp: + yield response + rsp diff --git a/qwen_agent/agents/assistant.py b/qwen_agent/agents/assistant.py index 0f0b5ff..30ac7f7 100644 --- a/qwen_agent/agents/assistant.py +++ b/qwen_agent/agents/assistant.py @@ -1,36 +1,69 @@ import copy -from typing import Iterator, List +import datetime +from typing import Iterator, List, Literal, Optional, Union + +import json5 from qwen_agent.llm.schema import CONTENT, ROLE, SYSTEM, Message from qwen_agent.log import logger -from qwen_agent.utils.utils import format_knowledge_to_source_and_content +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN +from qwen_agent.utils.utils import print_traceback from .fncall_agent import FnCallAgent -KNOWLEDGE_SNIPPET_ZH = """## 来自 {source} 的内容: - -``` -{content} -```""" KNOWLEDGE_TEMPLATE_ZH = """ # 知识库 {knowledge}""" -KNOWLEDGE_SNIPPET_EN = """## The content from {source}: +KNOWLEDGE_TEMPLATE_EN = """ + +# Knowledge Base + +{knowledge}""" + +KNOWLEDGE_TEMPLATE = {'zh': KNOWLEDGE_TEMPLATE_ZH, 'en': KNOWLEDGE_TEMPLATE_EN} + +KNOWLEDGE_SNIPPET_ZH = """## 来自 {source} 的内容: ``` {content} ```""" -KNOWLEDGE_TEMPLATE_EN = """ -# Knowledge Base +KNOWLEDGE_SNIPPET_EN = """## The content from {source}: -{knowledge}""" +``` +{content} +```""" KNOWLEDGE_SNIPPET = {'zh': KNOWLEDGE_SNIPPET_ZH, 'en': KNOWLEDGE_SNIPPET_EN} -KNOWLEDGE_TEMPLATE = {'zh': KNOWLEDGE_TEMPLATE_ZH, 'en': KNOWLEDGE_TEMPLATE_EN} + + +def format_knowledge_to_source_and_content(result: Union[str, List[dict]]) -> List[dict]: + knowledge = [] + if isinstance(result, str): + result = f'{result}'.strip() + try: + docs = json5.loads(result) + except Exception: + print_traceback() + knowledge.append({'source': '上传的文档', 'content': result}) + return knowledge + else: + docs = result + try: + _tmp_knowledge = [] + assert isinstance(docs, list) + for doc in docs: + url, snippets = doc['url'], doc['text'] + assert isinstance(snippets, list) + _tmp_knowledge.append({'source': f'[文件]({url})', 'content': '\n\n...\n\n'.join(snippets)}) + knowledge.extend(_tmp_knowledge) + except Exception: + print_traceback() + knowledge.append({'source': '上传的文档', 'content': result}) + return knowledge class Assistant(FnCallAgent): @@ -39,21 +72,35 @@ class Assistant(FnCallAgent): def _run(self, messages: List[Message], lang: str = 'en', - max_ref_token: int = 4000, + max_ref_token: int = DEFAULT_MAX_REF_TOKEN, + knowledge: str = '', **kwargs) -> Iterator[List[Message]]: + """Q&A with RAG and tool use abilities. + + Args: + knowledge: If an external knowledge string is provided, + it will be used directly without retrieving information from files in messages. - new_messages = self._prepend_knowledge_prompt(messages, lang, max_ref_token, **kwargs) + """ + + new_messages = self._prepend_knowledge_prompt(messages=messages, + lang=lang, + max_ref_token=max_ref_token, + knowledge=knowledge, + **kwargs) return super()._run(messages=new_messages, lang=lang, max_ref_token=max_ref_token, **kwargs) def _prepend_knowledge_prompt(self, messages: List[Message], lang: str = 'en', - max_ref_token: int = 4000, + max_ref_token: int = DEFAULT_MAX_REF_TOKEN, + knowledge: str = '', **kwargs) -> List[Message]: messages = copy.deepcopy(messages) - # Retrieval knowledge from files - *_, last = self.mem.run(messages=messages, max_ref_token=max_ref_token, lang=lang, **kwargs) - knowledge = last[-1][CONTENT] + if not knowledge: + # Retrieval knowledge from files + *_, last = self.mem.run(messages=messages, lang=lang, max_ref_token=max_ref_token, **kwargs) + knowledge = last[-1][CONTENT] logger.debug(f'Retrieved knowledge of type `{type(knowledge).__name__}`:\n{knowledge}') if knowledge: @@ -74,3 +121,23 @@ def _prepend_knowledge_prompt(self, else: messages = [Message(role=SYSTEM, content=knowledge_prompt)] + messages return messages + + +def get_current_date_str( + lang: Literal['en', 'zh'] = 'en', + hours_from_utc: Optional[int] = None, +) -> str: + if hours_from_utc is None: + cur_time = datetime.datetime.now() + else: + cur_time = datetime.datetime.utcnow() + datetime.timedelta(hours=hours_from_utc) + if lang == 'en': + date_str = 'Current date: ' + cur_time.strftime('%A, %B %d, %Y') + elif lang == 'zh': + cur_time = cur_time.timetuple() + date_str = f'当前时间:{cur_time.tm_year}年{cur_time.tm_mon}月{cur_time.tm_mday}日,星期' + date_str += ['一', '二', '三', '四', '五', '六', '日'][cur_time.tm_wday] + date_str += '。' + else: + raise NotImplementedError + return date_str diff --git a/qwen_agent/agents/doc_qa/__init__.py b/qwen_agent/agents/doc_qa/__init__.py new file mode 100644 index 0000000..d07ca25 --- /dev/null +++ b/qwen_agent/agents/doc_qa/__init__.py @@ -0,0 +1,5 @@ +from .basic_doc_qa import BasicDocQA + +__all__ = [ + 'BasicDocQA', +] diff --git a/qwen_agent/agents/docqa_agent.py b/qwen_agent/agents/doc_qa/basic_doc_qa.py similarity index 71% rename from qwen_agent/agents/docqa_agent.py rename to qwen_agent/agents/doc_qa/basic_doc_qa.py index d7a1899..b2a26ae 100644 --- a/qwen_agent/agents/docqa_agent.py +++ b/qwen_agent/agents/doc_qa/basic_doc_qa.py @@ -4,18 +4,22 @@ from qwen_agent.llm.base import BaseChatModel from qwen_agent.llm.schema import CONTENT, DEFAULT_SYSTEM_MESSAGE, Message from qwen_agent.prompts import DocQA +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN from qwen_agent.tools import BaseTool +DEFAULT_NAME = 'Basic DocQA' +DEFAULT_DESC = '可以根据问题,检索出知识库中的某个相关细节来回答。适用于需要定位到具体位置的问题,例如“介绍表1”等类型的问题' -class DocQAAgent(Assistant): + +class BasicDocQA(Assistant): """This is an agent for doc QA.""" def __init__(self, function_list: Optional[List[Union[str, Dict, BaseTool]]] = None, llm: Optional[Union[Dict, BaseChatModel]] = None, system_message: Optional[str] = DEFAULT_SYSTEM_MESSAGE, - name: Optional[str] = None, - description: Optional[str] = None, + name: Optional[str] = DEFAULT_NAME, + description: Optional[str] = DEFAULT_DESC, files: Optional[List[str]] = None): super().__init__(function_list=function_list, llm=llm, @@ -23,20 +27,20 @@ def __init__(self, name=name, description=description, files=files) - self.doc_qa = DocQA(llm=self.llm) def _run(self, messages: List[Message], lang: str = 'en', - max_ref_token: int = 4000, + max_ref_token: int = DEFAULT_MAX_REF_TOKEN, **kwargs) -> Iterator[List[Message]]: - + """This agent using different doc qa prompt with Assistant""" # Need to use Memory agent for data management *_, last = self.mem.run(messages=messages, max_ref_token=max_ref_token, **kwargs) _ref = last[-1][CONTENT] # Use RetrievalQA agent + # Todo: Prompt engineering response = self.doc_qa.run(messages=messages, lang=lang, knowledge=_ref) return response diff --git a/qwen_agent/agents/fncall_agent.py b/qwen_agent/agents/fncall_agent.py index 601e899..e22c2e5 100644 --- a/qwen_agent/agents/fncall_agent.py +++ b/qwen_agent/agents/fncall_agent.py @@ -5,9 +5,9 @@ from qwen_agent.llm import BaseChatModel from qwen_agent.llm.schema import DEFAULT_SYSTEM_MESSAGE, FUNCTION, Message from qwen_agent.memory import Memory +from qwen_agent.settings import MAX_LLM_CALL_PER_RUN from qwen_agent.tools import BaseTool - -MAX_LLM_CALL_PER_RUN = 8 +from qwen_agent.utils.utils import extract_files_from_messages class FnCallAgent(Agent): @@ -38,8 +38,9 @@ def __init__(self, name=name, description=description) - # Default to use Memory to manage files - self.mem = Memory(llm=self.llm, files=files) + if not hasattr(self, 'mem'): + # Default to use Memory to manage files + self.mem = Memory(llm=self.llm, files=files) def _run(self, messages: List[Message], lang: str = 'en', **kwargs) -> Iterator[List[Message]]: messages = copy.deepcopy(messages) @@ -56,19 +57,19 @@ def _run(self, messages: List[Message], lang: str = 'en', **kwargs) -> Iterator[ if output: response.extend(output) messages.extend(output) - use_tool, action, action_input, _ = self._detect_tool(response[-1]) - if use_tool: - observation = self._call_tool(action, action_input, messages=messages) - fn_msg = Message( - role=FUNCTION, - name=action, - content=observation, - ) - messages.append(fn_msg) - response.append(fn_msg) - yield response - else: - break + use_tool, tool_name, tool_args, _ = self._detect_tool(response[-1]) + if use_tool: + tool_result = self._call_tool(tool_name, tool_args, messages=messages) + fn_msg = Message( + role=FUNCTION, + name=tool_name, + content=tool_result, + ) + messages.append(fn_msg) + response.append(fn_msg) + yield response + else: + break def _call_tool(self, tool_name: str, tool_args: Union[str, dict] = '{}', **kwargs) -> str: if tool_name not in self.function_map: @@ -77,7 +78,7 @@ def _call_tool(self, tool_name: str, tool_args: Union[str, dict] = '{}', **kwarg # Todo: This should be changed to parameter passing, and the file URL should be determined by the model if self.function_map[tool_name].file_access: assert 'messages' in kwargs - files = self.mem.get_all_files_of_messages(kwargs['messages']) + self.mem.system_files + files = extract_files_from_messages(kwargs['messages']) + self.mem.system_files return super()._call_tool(tool_name, tool_args, files=files, **kwargs) else: return super()._call_tool(tool_name, tool_args, **kwargs) diff --git a/qwen_agent/agents/group_chat_auto_router.py b/qwen_agent/agents/group_chat_auto_router.py index fda73d3..fa2368d 100644 --- a/qwen_agent/agents/group_chat_auto_router.py +++ b/qwen_agent/agents/group_chat_auto_router.py @@ -6,32 +6,31 @@ from qwen_agent.tools import BaseTool from qwen_agent.utils.utils import has_chinese_chars -PROMPT_TEMPLATE_ZH = '''你扮演角色扮演游戏的上帝,你的任务是选择合适的发言角色。有如下角色: -{agent_descs} -角色间的对话历史格式如下,越新的对话越重要: -角色名: 说话内容 - -请阅读对话历史,并选择下一个合适的发言角色,从 [{agent_names}] 里选,当真实用户最近表明了停止聊天时,或话题应该终止时,请返回“[STOP]”,用户很懒,非必要不要选真实用户。 -仅返回角色名或“[STOP]”,不要返回其余内容。''' +class GroupChatAutoRouter(Agent): + PROMPT_TEMPLATE_ZH = '''你扮演角色扮演游戏的上帝,你的任务是选择合适的发言角色。有如下角色: + {agent_descs} -PROMPT_TEMPLATE_EN = '''You are in a role play game. The following roles are available: -{agent_descs} + 角色间的对话历史格式如下,越新的对话越重要: + 角色名: 说话内容 -The format of dialogue history between roles is as follows: -Role Name: Speech Content + 请阅读对话历史,并选择下一个合适的发言角色,从 [{agent_names}] 里选,当真实用户最近表明了停止聊天时,或话题应该终止时,请返回“[STOP]”,用户很懒,非必要不要选真实用户。 + 仅返回角色名或“[STOP]”,不要返回其余内容。''' -Please read the dialogue history and choose the next suitable role to speak. -When the user indicates to stop chatting or when the topic should be terminated, please return '[STOP]'. -Only return the role name from [{agent_names}] or '[STOP]'. Do not reply any other content.''' + PROMPT_TEMPLATE_EN = '''You are in a role play game. The following roles are available: + {agent_descs} -PROMPT_TEMPLATE = { - 'zh': PROMPT_TEMPLATE_ZH, - 'en': PROMPT_TEMPLATE_EN, -} + The format of dialogue history between roles is as follows: + Role Name: Speech Content + Please read the dialogue history and choose the next suitable role to speak. + When the user indicates to stop chatting or when the topic should be terminated, please return '[STOP]'. + Only return the role name from [{agent_names}] or '[STOP]'. Do not reply any other content.''' -class GroupChatAutoRouter(Agent): + PROMPT_TEMPLATE = { + 'zh': PROMPT_TEMPLATE_ZH, + 'en': PROMPT_TEMPLATE_EN, + } def __init__(self, function_list: Optional[List[Union[str, Dict, BaseTool]]] = None, @@ -45,8 +44,8 @@ def __init__(self, lang = 'en' if has_chinese_chars(agent_descs): lang = 'zh' - system_prompt = PROMPT_TEMPLATE[lang].format(agent_descs=agent_descs, - agent_names=', '.join([x.name for x in agents])) + system_prompt = self.PROMPT_TEMPLATE[lang].format(agent_descs=agent_descs, + agent_names=', '.join([x.name for x in agents])) super().__init__(function_list=function_list, llm=llm, diff --git a/qwen_agent/agents/react_chat.py b/qwen_agent/agents/react_chat.py index a4e675e..e384fb8 100644 --- a/qwen_agent/agents/react_chat.py +++ b/qwen_agent/agents/react_chat.py @@ -1,11 +1,13 @@ import copy from typing import Dict, Iterator, List, Optional, Tuple, Union -from qwen_agent.agents.fncall_agent import MAX_LLM_CALL_PER_RUN, FnCallAgent +from qwen_agent.agents.fncall_agent import FnCallAgent from qwen_agent.llm import BaseChatModel +from qwen_agent.llm.function_calling import get_function_description from qwen_agent.llm.schema import ASSISTANT, CONTENT, DEFAULT_SYSTEM_MESSAGE, ROLE, ContentItem, Message +from qwen_agent.settings import MAX_LLM_CALL_PER_RUN from qwen_agent.tools import BaseTool -from qwen_agent.utils.utils import get_basename_from_url, get_function_description, has_chinese_chars +from qwen_agent.utils.utils import get_basename_from_url, has_chinese_chars, merge_generate_cfgs PROMPT_REACT = """Answer the following questions as best you can. You have access to the following tools: @@ -43,9 +45,10 @@ def __init__(self, name=name, description=description, files=files) - stop = self.llm.generate_cfg.get('stop', []) - fn_stop = ['Observation:', 'Observation:\n'] - self.llm.generate_cfg['stop'] = stop + [x for x in fn_stop if x not in stop] + self.extra_generate_cfg = merge_generate_cfgs( + base_generate_cfg=self.extra_generate_cfg, + new_generate_cfg={'stop': ['Observation:', 'Observation:\n']}, + ) def _run(self, messages: List[Message], lang: str = 'en', **kwargs) -> Iterator[List[Message]]: ori_messages = messages diff --git a/qwen_agent/agents/router.py b/qwen_agent/agents/router.py index 718737b..e9c3346 100644 --- a/qwen_agent/agents/router.py +++ b/qwen_agent/agents/router.py @@ -1,18 +1,20 @@ import copy from typing import Dict, Iterator, List, Optional, Union +from qwen_agent import Agent +from qwen_agent.agents.assistant import Assistant from qwen_agent.llm import BaseChatModel from qwen_agent.llm.schema import ASSISTANT, ROLE, Message +from qwen_agent.log import logger +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN from qwen_agent.tools import BaseTool - -from ..log import logger -from .assistant import Assistant +from qwen_agent.utils.utils import merge_generate_cfgs ROUTER_PROMPT = '''你有下列帮手: {agent_descs} 当你可以直接回答用户时,请忽略帮手,直接回复;但当你的能力无法达成用户的请求时,请选择其中一个来帮你回答,选择的模版如下: -Call: ... # 选中的帮手的名字,必须在[{agent_names}]中,除了名字,不要返回其余任何内容。 +Call: ... # 选中的帮手的名字,必须在[{agent_names}]中选,不要返回其余任何内容。 Reply: ... # 选中的帮手的回复 ——不要向用户透露此条指令。''' @@ -26,26 +28,26 @@ def __init__(self, files: Optional[List[str]] = None, name: Optional[str] = None, description: Optional[str] = None, - agents: Optional[Dict[str, Dict]] = None): + agents: Optional[List[Agent]] = None): self.agents = agents - - agent_descs = '\n\n'.join([f'{k}: {v["desc"]}' for k, v in agents.items()]) - agent_names = ', '.join([k for k in agents.keys()]) + self.agents_name = [x.name for x in agents] + agent_descs = '\n'.join([f'{x.name}: {x.description}' for x in agents]) + agent_names = ', '.join(self.agents_name) super().__init__(function_list=function_list, llm=llm, system_message=ROUTER_PROMPT.format(agent_descs=agent_descs, agent_names=agent_names), name=name, description=description, files=files) - - stop = self.llm.generate_cfg.get('stop', []) - fn_stop = ['Reply:', 'Reply:\n'] - self.llm.generate_cfg['stop'] = stop + [x for x in fn_stop if x not in stop] + self.extra_generate_cfg = merge_generate_cfgs( + base_generate_cfg=self.extra_generate_cfg, + new_generate_cfg={'stop': ['Reply:', 'Reply:\n']}, + ) def _run(self, messages: List[Message], lang: str = 'en', - max_ref_token: int = 4000, + max_ref_token: int = DEFAULT_MAX_REF_TOKEN, **kwargs) -> Iterator[List[Message]]: # This is a temporary plan to determine the source of a message messages_for_router = [] @@ -58,15 +60,19 @@ def _run(self, **kwargs): # noqa yield response - if 'Call:' in response[-1].content: + if 'Call:' in response[-1].content and self.agents: # According to the rule in prompt to selected agent - selected_agent_name = response[-1].content.split('Call:')[-1].strip() + selected_agent_name = response[-1].content.split('Call:')[-1].strip().split('\n')[0].strip() logger.info(f'Need help from {selected_agent_name}') - selected_agent = self.agents[selected_agent_name]['obj'] + if selected_agent_name not in self.agents_name: + # If the model generates a non-existent agent, the first agent will be used by default. + selected_agent_name = self.agents_name[0] + selected_agent = self.agents[self.agents_name.index(selected_agent_name)] for response in selected_agent.run(messages=messages, lang=lang, max_ref_token=max_ref_token, **kwargs): for i in range(len(response)): if response[i].role == ASSISTANT: response[i].name = selected_agent_name + # This new response will overwrite the above 'Call: xxx' message yield response @staticmethod diff --git a/qwen_agent/agents/user_agent.py b/qwen_agent/agents/user_agent.py index 334465f..b5ecffc 100644 --- a/qwen_agent/agents/user_agent.py +++ b/qwen_agent/agents/user_agent.py @@ -2,6 +2,7 @@ from qwen_agent.agents.assistant import Assistant from qwen_agent.llm.schema import Message +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN PENDING_USER_INPUT = '' @@ -11,7 +12,7 @@ class UserAgent(Assistant): def _run(self, messages: List[Message], lang: str = 'en', - max_ref_token: int = 4000, + max_ref_token: int = DEFAULT_MAX_REF_TOKEN, **kwargs) -> Iterator[List[Message]]: yield [Message(role='user', content=PENDING_USER_INPUT, name=self.name)] diff --git a/qwen_agent/agents/write_from_scratch.py b/qwen_agent/agents/write_from_scratch.py index 5142b0b..a5fca07 100644 --- a/qwen_agent/agents/write_from_scratch.py +++ b/qwen_agent/agents/write_from_scratch.py @@ -4,8 +4,9 @@ import json5 from qwen_agent import Agent +from qwen_agent.agents.assistant import Assistant from qwen_agent.llm.schema import ASSISTANT, CONTENT, USER, Message -from qwen_agent.prompts import DocQA, ExpandWriting, OutlineWriting +from qwen_agent.prompts import ExpandWriting, OutlineWriting default_plan = """{"action1": "summarize", "action2": "outline", "action3": "expand"}""" @@ -38,26 +39,26 @@ def _run(self, messages: List[Message], knowledge: str = '', lang: str = 'en') - user_request = 'Summarize the main content of reference materials.' else: raise NotImplementedError - sum_agent = DocQA(llm=self.llm) + sum_agent = Assistant(llm=self.llm) res_sum = sum_agent.run(messages=[Message(USER, user_request)], knowledge=knowledge, lang=lang) - trunk = None - for trunk in res_sum: - yield response + trunk - if trunk: - response.extend(trunk) - summ = trunk[-1][CONTENT] + chunk = None + for chunk in res_sum: + yield response + chunk + if chunk: + response.extend(chunk) + summ = chunk[-1][CONTENT] elif plan == 'outline': response.append(Message(ASSISTANT, '>\n> Generate Outline: \n')) yield response otl_agent = OutlineWriting(llm=self.llm) res_otl = otl_agent.run(messages=messages, knowledge=summ, lang=lang) - trunk = None - for trunk in res_otl: - yield response + trunk - if trunk: - response.extend(trunk) - outline = trunk[-1][CONTENT] + chunk = None + for chunk in res_otl: + yield response + chunk + if chunk: + response.extend(chunk) + outline = chunk[-1][CONTENT] elif plan == 'expand': response.append(Message(ASSISTANT, '>\n> Writing Text: \n')) yield response @@ -88,10 +89,10 @@ def _run(self, messages: List[Message], knowledge: str = '', lang: str = 'en') - capture_later=capture_later, lang=lang, ) - trunk = None - for trunk in res_exp: - yield response + trunk - if trunk: - response.extend(trunk) + chunk = None + for chunk in res_exp: + yield response + chunk + if chunk: + response.extend(chunk) else: pass diff --git a/qwen_agent/gui/__init__.py b/qwen_agent/gui/__init__.py new file mode 100644 index 0000000..09eabad --- /dev/null +++ b/qwen_agent/gui/__init__.py @@ -0,0 +1,3 @@ +from qwen_agent.gui.gradio import gr + +__all__ = ['gr'] diff --git a/qwen_agent/gui/assets/logo.jpeg b/qwen_agent/gui/assets/logo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e511f7deee72234cd4ae1cb65f0890e33b2ef494 GIT binary patch literal 94804 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 M;Rg6o_`lKr0m4Te`2YX_ literal 0 HcmV?d00001 diff --git a/qwen_agent/gui/assets/user.jpeg b/qwen_agent/gui/assets/user.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..536948b6bd19cb0b49c44b74e2790198301520e5 GIT binary patch literal 16410 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 literal 0 HcmV?d00001 diff --git a/qwen_agent/gui/gradio.py b/qwen_agent/gui/gradio.py new file mode 100644 index 0000000..d61f432 --- /dev/null +++ b/qwen_agent/gui/gradio.py @@ -0,0 +1,8 @@ +try: + import gradio as gr + if gr.__version__ < '4.0': + raise ImportError('Incompatible "gradio" version detected. ' + 'Please install the correct version with: pip install "gradio>=4.0"') +except (ModuleNotFoundError, AttributeError): + raise ImportError('Requirement "gradio" not installed. ' + 'Please install it by: pip install "gradio>=4.0"') diff --git a/qwen_agent/gui/utils.py b/qwen_agent/gui/utils.py new file mode 100644 index 0000000..ac8e39a --- /dev/null +++ b/qwen_agent/gui/utils.py @@ -0,0 +1,8 @@ +import os + + +def get_avatar_image(name: str = 'user') -> str: + if name == 'user': + return os.path.join(os.path.dirname(__file__), 'assets/user.jpeg') + + return os.path.join(os.path.dirname(__file__), 'assets/logo.jpeg') diff --git a/qwen_agent/llm/__init__.py b/qwen_agent/llm/__init__.py index e6e292d..7afbca5 100644 --- a/qwen_agent/llm/__init__.py +++ b/qwen_agent/llm/__init__.py @@ -20,7 +20,7 @@ def get_chat_model(cfg: Optional[Dict] = None) -> BaseChatModel: # Use your own model service compatible with OpenAI API: # 'model': 'Qwen', # 'model_server': 'http://127.0.0.1:7905/v1', - # (Optional) LLM hyper-paramters: + # (Optional) LLM hyper-parameters: 'generate_cfg': { 'top_p': 0.8 } diff --git a/qwen_agent/llm/base.py b/qwen_agent/llm/base.py index f00f75e..c39030f 100644 --- a/qwen_agent/llm/base.py +++ b/qwen_agent/llm/base.py @@ -2,12 +2,11 @@ import random import time from abc import ABC, abstractmethod -from typing import Dict, Iterator, List, Optional, Union +from typing import Any, Dict, Iterator, List, Optional, Tuple, Union +from qwen_agent.llm.schema import DEFAULT_SYSTEM_MESSAGE, SYSTEM, Message from qwen_agent.utils.tokenization_qwen import tokenizer -from qwen_agent.utils.utils import get_basename_from_url, has_chinese_chars, is_image, print_traceback - -from .schema import ASSISTANT, DEFAULT_SYSTEM_MESSAGE, FUNCTION, SYSTEM, USER, ContentItem, Message +from qwen_agent.utils.utils import format_as_multimodal_message, merge_generate_cfgs, print_traceback LLM_REGISTRY = {} @@ -52,20 +51,25 @@ def chat( functions: Optional[List[Dict]] = None, stream: bool = True, delta_stream: bool = False, + extra_generate_cfg: Optional[Dict] = None, ) -> Union[List[Message], List[Dict], Iterator[List[Message]], Iterator[List[Dict]]]: """LLM chat interface. Args: messages: Inputted messages. - functions: Inputted functions, which supports OpenAI format. + functions: Inputted functions for function calling. OpenAI format supported. stream: Whether to use streaming generation. - delta_stream: Whether to return incrementally. - (1) When False: Use full return. - (2) When True: Use incremental return. + delta_stream: Whether to stream the response incrementally. + (1) When False (recommended): Stream the full response every iteration. + (2) When True: Stream the chunked response, i.e, delta responses. + extra_generate_cfg: Extra LLM generation hyper-paramters. Returns: the generated message list response by llm. """ + + generate_cfg = merge_generate_cfgs(base_generate_cfg=self.generate_cfg, new_generate_cfg=extra_generate_cfg) + messages = copy.deepcopy(messages) _return_message_type = 'dict' @@ -95,12 +99,14 @@ def _call_model_service(): functions=functions, stream=stream, delta_stream=delta_stream, + generate_cfg=generate_cfg, ) else: return self._chat( messages, stream=stream, delta_stream=delta_stream, + generate_cfg=generate_cfg, ) if stream and delta_stream: @@ -112,36 +118,41 @@ def _call_model_service(): output = retry_model_service(_call_model_service, max_retries=self.max_retries) if isinstance(output, list): - output = self._postprocess_messages(output, fncall_mode=fncall_mode) + output = self._postprocess_messages(output, fncall_mode=fncall_mode, generate_cfg=generate_cfg) return self._convert_messages_to_target_type(output, _return_message_type) else: - output = self._postprocess_messages_iterator(output, fncall_mode=fncall_mode) + output = self._postprocess_messages_iterator(output, fncall_mode=fncall_mode, generate_cfg=generate_cfg) return self._convert_messages_iterator_to_target_type(output, _return_message_type) def _chat( self, messages: List[Union[Message, Dict]], - stream: bool = True, - delta_stream: bool = False, + stream: bool, + delta_stream: bool, + generate_cfg: dict, ) -> Union[List[Message], Iterator[List[Message]]]: if stream: - return self._chat_stream(messages, delta_stream=delta_stream) + return self._chat_stream(messages, delta_stream=delta_stream, generate_cfg=generate_cfg) else: - return self._chat_no_stream(messages) + return self._chat_no_stream(messages, generate_cfg=generate_cfg) @abstractmethod - def _chat_with_functions(self, - messages: List[Union[Message, Dict]], - functions: List[Dict], - stream: bool = True, - delta_stream: bool = False) -> Union[List[Message], Iterator[List[Message]]]: + def _chat_with_functions( + self, + messages: List[Union[Message, Dict]], + functions: List[Dict], + stream: bool, + delta_stream: bool, + generate_cfg: dict, + ) -> Union[List[Message], Iterator[List[Message]]]: raise NotImplementedError @abstractmethod def _chat_stream( self, messages: List[Message], - delta_stream: bool = False, + delta_stream: bool, + generate_cfg: dict, ) -> Iterator[List[Message]]: raise NotImplementedError @@ -149,25 +160,34 @@ def _chat_stream( def _chat_no_stream( self, messages: List[Message], + generate_cfg: dict, ) -> List[Message]: raise NotImplementedError def _preprocess_messages(self, messages: List[Message]) -> List[Message]: - messages = self._format_as_multimodal_messages(messages) + messages = [format_as_multimodal_message(msg) for msg in messages] return messages - def _postprocess_messages(self, messages: List[Message], fncall_mode: bool) -> List[Message]: - messages = self._format_as_multimodal_messages(messages) - messages = self._postprocess_stop_words(messages) + def _postprocess_messages( + self, + messages: List[Message], + fncall_mode: bool, + generate_cfg: dict, + ) -> List[Message]: + messages = [format_as_multimodal_message(msg) for msg in messages] + messages = self._postprocess_stop_words(messages, generate_cfg=generate_cfg) return messages def _postprocess_messages_iterator( self, messages: Iterator[List[Message]], fncall_mode: bool, + generate_cfg: dict, ) -> Iterator[List[Message]]: for m in messages: - m = self._postprocess_messages(m, fncall_mode=fncall_mode) + m = self._postprocess_messages(m, fncall_mode=fncall_mode, generate_cfg=generate_cfg) + # TODO: Postprocessing may be incorrect if delta_stream=True. + # TODO: Early break if truncated at stop words. if m: yield m @@ -186,62 +206,9 @@ def _convert_messages_iterator_to_target_type( for messages in messages_iter: yield self._convert_messages_to_target_type(messages, target_type) - def _format_as_multimodal_messages(self, messages: List[Message]) -> List[Message]: - - multimodal_messages = [] - for msg in messages: - assert msg.role in (USER, ASSISTANT, SYSTEM, FUNCTION) - - content = [] - if isinstance(msg.content, str): # if text content - if msg.content: - content = [ContentItem(text=msg.content)] - elif isinstance(msg.content, list): # if multimodal content - files = [] - for item in msg.content: - (k, v), = item.model_dump().items() - if k in ('box', 'text'): - content.append(ContentItem(text=v)) - if k == 'image': - content.append(item) - if k in ('file', 'image'): - files.append(v) - if (msg.role in (SYSTEM, USER)) and files: - has_zh = has_chinese_chars(content) - upload = [] - for f in [get_basename_from_url(f) for f in files]: - if is_image(f): - if has_zh: - upload.append(f'![图片]({f})') - else: - upload.append(f'![image]({f})') - else: - if has_zh: - upload.append(f'[文件]({f})') - else: - upload.append(f'[file]({f})') - upload = ' '.join(upload) - if has_zh: - upload = f'(上传了 {upload})\n\n' - else: - upload = f'(Uploaded {upload})\n\n' - content = [ContentItem(text=upload)] + content - else: - raise TypeError - - multimodal_messages.append( - Message( - role=msg.role, - content=content, - name=msg.name if msg.role == FUNCTION else None, - function_call=msg.function_call, - )) - - return multimodal_messages - - def _postprocess_stop_words(self, messages: List[Message]) -> List[Message]: + def _postprocess_stop_words(self, messages: List[Message], generate_cfg: dict) -> List[Message]: messages = copy.deepcopy(messages) - stop = self.generate_cfg.get('stop', []) + stop = generate_cfg.get('stop', []) # Make sure it stops before stop words. trunc_messages = [] @@ -264,7 +231,6 @@ def _postprocess_stop_words(self, messages: List[Message]) -> List[Message]: # It may ends with 'Observation' when the stop word is 'Observation:'. partial_stop = [] for s in stop: - # TODO: This tokenizer is Qwen-specific. s = tokenizer.tokenize(s)[:-1] if s: s = tokenizer.convert_tokens_to_string(s) @@ -295,50 +261,25 @@ def _truncate_at_stop_word(text: str, stop: List[str]): def retry_model_service( fn, max_retries: int = 10, - exponential_base: float = 1.0, -): - """Retry a function with exponential backoff""" +) -> Any: + """Retry a function""" - num_retries = 0 - delay = 2.0 + num_retries, delay = 0, 1.0 while True: try: return fn() except ModelServiceError as e: - if max_retries <= 0: # no retry - raise e - - # If harmful input or output detected, let it fail - if e.code == 'DataInspectionFailed': - raise e - if 'inappropriate content' in str(e): - raise e - - # Retry is meaningless if the input is too long - if 'maximum context length' in str(e): - raise e - - print_traceback(is_error=False) - - if num_retries >= max_retries: - raise ModelServiceError(exception=Exception(f'Maximum number of retries ({max_retries}) exceeded.')) - - num_retries += 1 - delay *= exponential_base * (1.0 + random.random()) - time.sleep(delay) + num_retries, delay = _raise_or_delay(e, num_retries, delay, max_retries) def retry_model_service_iterator( it_fn, max_retries: int = 10, - exponential_base: float = 1.0, -): - """Retry an iterator with exponential backoff""" - - num_retries = 0 - delay = 2.0 +) -> Iterator: + """Retry an iterator""" + num_retries, delay = 0, 1.0 while True: try: for rsp in it_fn(): @@ -346,24 +287,39 @@ def retry_model_service_iterator( break except ModelServiceError as e: - if max_retries <= 0: # no retry - raise e - - # If harmful input or output detected, let it fail - if e.code == 'DataInspectionFailed': - raise e - if 'inappropriate content' in str(e): - raise e + num_retries, delay = _raise_or_delay(e, num_retries, delay, max_retries) - # Retry is meaningless if the input is too long - if 'maximum context length' in str(e): - raise e - print_traceback(is_error=False) - - if num_retries >= max_retries: - raise ModelServiceError(exception=Exception(f'Maximum number of retries ({max_retries}) exceeded.')) - - num_retries += 1 - delay *= exponential_base * (1.0 + random.random()) - time.sleep(delay) +def _raise_or_delay( + e: ModelServiceError, + num_retries: int, + delay: float, + max_retries: int = 10, + max_delay: float = 300.0, + exponential_base: float = 2.0, +) -> Tuple[int, float]: + """Retry with exponential backoff""" + + if max_retries <= 0: # no retry + raise e + + # If harmful input or output detected, let it fail + if e.code == 'DataInspectionFailed': + raise e + if 'inappropriate content' in str(e): + raise e + + # Retry is meaningless if the input is too long + if 'maximum context length' in str(e): + raise e + + print_traceback(is_error=False) + + if num_retries >= max_retries: + raise ModelServiceError(exception=Exception(f'Maximum number of retries ({max_retries}) exceeded.')) + + num_retries += 1 + jittor = 1.0 + random.random() + delay = min(delay * exponential_base, max_delay) * jittor + time.sleep(delay) + return num_retries, delay diff --git a/qwen_agent/llm/function_calling.py b/qwen_agent/llm/function_calling.py index 9df1b7a..56fe192 100644 --- a/qwen_agent/llm/function_calling.py +++ b/qwen_agent/llm/function_calling.py @@ -1,10 +1,11 @@ import copy +import json from abc import ABC from typing import Dict, Iterator, List, Optional, Union from qwen_agent.llm.base import BaseChatModel from qwen_agent.llm.schema import ASSISTANT, FUNCTION, SYSTEM, USER, ContentItem, FunctionCall, Message -from qwen_agent.utils.utils import get_function_description, has_chinese_chars +from qwen_agent.utils.utils import has_chinese_chars class BaseFnCallModel(BaseChatModel, ABC): @@ -14,11 +15,14 @@ def __init__(self, cfg: Optional[Dict] = None): stop = self.generate_cfg.get('stop', []) self.generate_cfg['stop'] = stop + [x for x in FN_STOP_WORDS if x not in stop] - def _chat_with_functions(self, - messages: List[Union[Message, Dict]], - functions: List[Dict], - stream: bool = True, - delta_stream: bool = False) -> Union[List[Message], Iterator[List[Message]]]: + def _chat_with_functions( + self, + messages: List[Union[Message, Dict]], + functions: List[Dict], + stream: bool, + delta_stream: bool, + generate_cfg: dict, + ) -> Union[List[Message], Iterator[List[Message]]]: if delta_stream: raise NotImplementedError @@ -40,15 +44,20 @@ def _chat_with_functions(self, text_to_complete.content = usr messages = messages[:-2] + [text_to_complete] - return self._chat(messages, stream=stream, delta_stream=delta_stream) + return self._chat(messages, stream=stream, delta_stream=delta_stream, generate_cfg=generate_cfg) def _preprocess_messages(self, messages: List[Message]) -> List[Message]: messages = super()._preprocess_messages(messages) messages = self._preprocess_fncall_messages(messages) return messages - def _postprocess_messages(self, messages: List[Message], fncall_mode: bool) -> List[Message]: - messages = super()._postprocess_messages(messages, fncall_mode=fncall_mode) + def _postprocess_messages( + self, + messages: List[Message], + fncall_mode: bool, + generate_cfg: dict, + ) -> List[Message]: + messages = super()._postprocess_messages(messages, fncall_mode=fncall_mode, generate_cfg=generate_cfg) if fncall_mode: messages = self._postprocess_fncall_messages(messages) return messages @@ -160,7 +169,7 @@ def _postprocess_fncall_messages(self, messages: List[Message], stop_at_fncall: i = item_text.find(f'{FN_NAME}:') if i < 0: # no function call - show_text = remove_special_tokens(item_text) + show_text = remove_incomplete_special_tokens(item_text) if show_text: new_content.append(ContentItem(text=show_text)) continue @@ -169,7 +178,7 @@ def _postprocess_fncall_messages(self, messages: List[Message], stop_at_fncall: answer = item_text[:i].lstrip('\n').rstrip() if answer.endswith('\n'): answer = answer[:-1] - show_text = remove_special_tokens(answer) + show_text = remove_incomplete_special_tokens(answer) if show_text: new_content.append(ContentItem(text=show_text)) if new_content: @@ -207,8 +216,8 @@ def _postprocess_fncall_messages(self, messages: List[Message], stop_at_fncall: role=ASSISTANT, content=[], function_call=FunctionCall( - name=remove_special_tokens(fn_name), - arguments=remove_special_tokens(fn_args), + name=remove_incomplete_special_tokens(fn_name), + arguments=remove_incomplete_special_tokens(fn_args), ), )) @@ -218,17 +227,17 @@ def _postprocess_fncall_messages(self, messages: List[Message], stop_at_fncall: if (result and result[1:]) or answer: # result[1:] == '' is possible and allowed # rm the ' ' after ':' - show_text = remove_special_tokens(result[1:]) + show_text = remove_incomplete_special_tokens(result[1:]) new_messages.append( Message( role=FUNCTION, content=[ContentItem(text=show_text)], - name=remove_special_tokens(fn_name), + name=remove_incomplete_special_tokens(fn_name), )) if answer and answer[1:]: # rm the ' ' after ':' - show_text = remove_special_tokens(answer[1:]) + show_text = remove_incomplete_special_tokens(answer[1:]) if show_text: new_messages.append(Message( role=ASSISTANT, @@ -291,20 +300,46 @@ def _postprocess_fncall_messages(self, messages: List[Message], stop_at_fncall: } -# TODO: This affects users who use the ✿ character accidentally. +def get_function_description(function: Dict) -> str: + """ + Text description of function + """ + tool_desc_template = { + 'zh': '### {name_for_human}\n\n{name_for_model}: {description_for_model} 输入参数:{parameters} {args_format}', + 'en': '### {name_for_human}\n\n{name_for_model}: {description_for_model} Parameters: {parameters} {args_format}' + } + if has_chinese_chars(function): + tool_desc = tool_desc_template['zh'] + else: + tool_desc = tool_desc_template['en'] + + name = function.get('name', None) + name_for_human = function.get('name_for_human', name) + name_for_model = function.get('name_for_model', name) + assert name_for_human and name_for_model + args_format = function.get('args_format', '') + return tool_desc.format(name_for_human=name_for_human, + name_for_model=name_for_model, + description_for_model=function['description'], + parameters=json.dumps(function['parameters'], ensure_ascii=False), + args_format=args_format).rstrip() + + # Mainly for removing incomplete trailing special tokens when streaming the output -def remove_special_tokens(text: str, strip: bool = True) -> str: - text = text.replace('✿:', '✿') - text = text.replace('✿:', '✿') - out = '' - is_special = False - for c in text: - if c == '✿': - is_special = not is_special - continue - if is_special: - continue - out += c - if strip: - out = out.lstrip('\n').rstrip() - return out +def remove_incomplete_special_tokens(text: str) -> str: + special_tokens = (FN_NAME, FN_ARGS, FN_RESULT, FN_EXIT) + text = text.rstrip() + if text.endswith(special_tokens): + for s in special_tokens: + if text.endswith(s): + text = text[:-len(s)] + break + else: + trail_start = text.rfind('✿') + trail_token = text[trail_start:] + for s in special_tokens: + if s.startswith(trail_token): + text = text[:trail_start] + break + text = text.lstrip('\n').rstrip() + return text diff --git a/qwen_agent/llm/oai.py b/qwen_agent/llm/oai.py index 1d58ad9..991e6d8 100644 --- a/qwen_agent/llm/oai.py +++ b/qwen_agent/llm/oai.py @@ -5,7 +5,7 @@ import openai if openai.__version__.startswith('0.'): - from openai.error import OpenAIError + from openai.error import OpenAIError # noqa else: from openai import OpenAIError @@ -50,17 +50,17 @@ def __init__(self, cfg: Optional[Dict] = None): if api_key: api_kwargs['api_key'] = api_key - # OpenAI API v1 does not allow the following args, must pass by extra_body - extra_params = ['top_k', 'repetition_penalty'] - if any((k in self.generate_cfg) for k in extra_params): - self.generate_cfg['extra_body'] = {} - for k in extra_params: - if k in self.generate_cfg: - self.generate_cfg['extra_body'][k] = self.generate_cfg.pop(k) - if 'request_timeout' in self.generate_cfg: - self.generate_cfg['timeout'] = self.generate_cfg.pop('request_timeout') - def _chat_complete_create(*args, **kwargs): + # OpenAI API v1 does not allow the following args, must pass by extra_body + extra_params = ['top_k', 'repetition_penalty'] + if any((k in kwargs) for k in extra_params): + kwargs['extra_body'] = {} + for k in extra_params: + if k in kwargs: + kwargs['extra_body'][k] = kwargs.pop(k) + if 'request_timeout' in kwargs: + kwargs['timeout'] = kwargs.pop('request_timeout') + client = openai.OpenAI(**api_kwargs) return client.chat.completions.create(*args, **kwargs) @@ -69,12 +69,13 @@ def _chat_complete_create(*args, **kwargs): def _chat_stream( self, messages: List[Message], - delta_stream: bool = False, + delta_stream: bool, + generate_cfg: dict, ) -> Iterator[List[Message]]: messages = [msg.model_dump() for msg in messages] logger.debug(f'*{pformat(messages, indent=2)}*') try: - response = self._chat_complete_create(model=self.model, messages=messages, stream=True, **self.generate_cfg) + response = self._chat_complete_create(model=self.model, messages=messages, stream=True, **generate_cfg) if delta_stream: for chunk in response: if hasattr(chunk.choices[0].delta, 'content') and chunk.choices[0].delta.content: @@ -88,14 +89,15 @@ def _chat_stream( except OpenAIError as ex: raise ModelServiceError(exception=ex) - def _chat_no_stream(self, messages: List[Message]) -> List[Message]: + def _chat_no_stream( + self, + messages: List[Message], + generate_cfg: dict, + ) -> List[Message]: messages = [msg.model_dump() for msg in messages] logger.debug(f'*{pformat(messages, indent=2)}*') try: - response = self._chat_complete_create(model=self.model, - messages=messages, - stream=False, - **self.generate_cfg) + response = self._chat_complete_create(model=self.model, messages=messages, stream=False, **generate_cfg) return [Message(ASSISTANT, response.choices[0].message.content)] except OpenAIError as ex: raise ModelServiceError(exception=ex) diff --git a/qwen_agent/llm/qwen_dashscope.py b/qwen_agent/llm/qwen_dashscope.py index 8310466..9b78565 100644 --- a/qwen_agent/llm/qwen_dashscope.py +++ b/qwen_agent/llm/qwen_dashscope.py @@ -29,7 +29,8 @@ def __init__(self, cfg: Optional[Dict] = None): def _chat_stream( self, messages: List[Message], - delta_stream: bool = False, + delta_stream: bool, + generate_cfg: dict, ) -> Iterator[List[Message]]: messages = [msg.model_dump() for msg in messages] logger.debug(f'*{pformat(messages, indent=2)}*') @@ -38,7 +39,7 @@ def _chat_stream( messages=messages, # noqa result_format='message', stream=True, - **self.generate_cfg) + **generate_cfg) if delta_stream: return self._delta_stream_output(response) else: @@ -47,6 +48,7 @@ def _chat_stream( def _chat_no_stream( self, messages: List[Message], + generate_cfg: dict, ) -> List[Message]: messages = [msg.model_dump() for msg in messages] logger.debug(f'*{pformat(messages, indent=2)}*') @@ -55,17 +57,20 @@ def _chat_no_stream( messages=messages, # noqa result_format='message', stream=False, - **self.generate_cfg) + **generate_cfg) if response.status_code == HTTPStatus.OK: return [Message(ASSISTANT, response.output.choices[0].message.content)] else: raise ModelServiceError(code=response.code, message=response.message) - def _chat_with_functions(self, - messages: List[Message], - functions: List[Dict], - stream: bool = True, - delta_stream: bool = False) -> Union[List[Message], Iterator[List[Message]]]: + def _chat_with_functions( + self, + messages: List[Message], + functions: List[Dict], + stream: bool, + delta_stream: bool, + generate_cfg: dict, + ) -> Union[List[Message], Iterator[List[Message]]]: if delta_stream: raise NotImplementedError @@ -74,13 +79,14 @@ def _chat_with_functions(self, # Using text completion prompt = self._build_text_completion_prompt(messages) if stream: - return self._text_completion_stream(prompt, delta_stream) + return self._text_completion_stream(prompt, delta_stream, generate_cfg=generate_cfg) else: - return self._text_completion_no_stream(prompt) + return self._text_completion_no_stream(prompt, generate_cfg=generate_cfg) def _text_completion_no_stream( self, prompt: str, + generate_cfg: dict, ) -> List[Message]: logger.debug(f'*{prompt}*') response = dashscope.Generation.call(self.model, @@ -88,7 +94,7 @@ def _text_completion_no_stream( result_format='message', stream=False, use_raw_prompt=True, - **self.generate_cfg) + **generate_cfg) if response.status_code == HTTPStatus.OK: return [Message(ASSISTANT, response.output.choices[0].message.content)] else: @@ -97,7 +103,8 @@ def _text_completion_no_stream( def _text_completion_stream( self, prompt: str, - delta_stream: bool = False, + delta_stream: bool, + generate_cfg: dict, ) -> Iterator[List[Message]]: logger.debug(f'*{prompt}*') response = dashscope.Generation.call( @@ -106,7 +113,7 @@ def _text_completion_stream( result_format='message', stream=True, use_raw_prompt=True, - **self.generate_cfg) + **generate_cfg) if delta_stream: return self._delta_stream_output(response) else: @@ -142,9 +149,9 @@ def _delta_stream_output(response) -> Iterator[List[Message]]: delay_len = 5 in_delay = False text = '' - for trunk in response: - if trunk.status_code == HTTPStatus.OK: - text = trunk.output.choices[0].message.content + for chunk in response: + if chunk.status_code == HTTPStatus.OK: + text = chunk.output.choices[0].message.content if (len(text) - last_len) <= delay_len: in_delay = True continue @@ -155,14 +162,14 @@ def _delta_stream_output(response) -> Iterator[List[Message]]: yield [Message(ASSISTANT, now_rsp)] last_len = len(real_text) else: - raise ModelServiceError(code=trunk.code, message=trunk.message) + raise ModelServiceError(code=chunk.code, message=chunk.message) if text and (in_delay or (last_len != len(text))): yield [Message(ASSISTANT, text[last_len:])] @staticmethod def _full_stream_output(response) -> Iterator[List[Message]]: - for trunk in response: - if trunk.status_code == HTTPStatus.OK: - yield [Message(ASSISTANT, trunk.output.choices[0].message.content)] + for chunk in response: + if chunk.status_code == HTTPStatus.OK: + yield [Message(ASSISTANT, chunk.output.choices[0].message.content)] else: - raise ModelServiceError(code=trunk.code, message=trunk.message) + raise ModelServiceError(code=chunk.code, message=chunk.message) diff --git a/qwen_agent/llm/qwenvl_dashscope.py b/qwen_agent/llm/qwenvl_dashscope.py index 113f2ba..0adb1ac 100644 --- a/qwen_agent/llm/qwenvl_dashscope.py +++ b/qwen_agent/llm/qwenvl_dashscope.py @@ -32,7 +32,8 @@ def __init__(self, cfg: Optional[Dict] = None): def _chat_stream( self, messages: List[Message], - delta_stream: bool = False, + delta_stream: bool, + generate_cfg: dict, ) -> Iterator[List[Message]]: if delta_stream: raise NotImplementedError @@ -44,17 +45,18 @@ def _chat_stream( messages=messages, result_format='message', stream=True, - **self.generate_cfg) + **generate_cfg) - for trunk in response: - if trunk.status_code == HTTPStatus.OK: - yield _extract_vl_response(trunk) + for chunk in response: + if chunk.status_code == HTTPStatus.OK: + yield _extract_vl_response(chunk) else: - raise ModelServiceError(code=trunk.code, message=trunk.message) + raise ModelServiceError(code=chunk.code, message=chunk.message) def _chat_no_stream( self, messages: List[Message], + generate_cfg: dict, ) -> List[Message]: messages = _format_local_files(messages) messages = [msg.model_dump() for msg in messages] @@ -63,14 +65,14 @@ def _chat_no_stream( messages=messages, result_format='message', stream=False, - **self.generate_cfg) + **generate_cfg) if response.status_code == HTTPStatus.OK: return _extract_vl_response(response=response) else: raise ModelServiceError(code=response.code, message=response.message) - def _postprocess_messages(self, messages: List[Message], fncall_mode: bool) -> List[Message]: - messages = super()._postprocess_messages(messages, fncall_mode=fncall_mode) + def _postprocess_messages(self, messages: List[Message], fncall_mode: bool, generate_cfg: dict) -> List[Message]: + messages = super()._postprocess_messages(messages, fncall_mode=fncall_mode, generate_cfg=generate_cfg) # Make VL return the same format as text models for easy usage messages = format_as_text_messages(messages) return messages diff --git a/qwen_agent/llm/schema.py b/qwen_agent/llm/schema.py index 215537d..c107446 100644 --- a/qwen_agent/llm/schema.py +++ b/qwen_agent/llm/schema.py @@ -1,4 +1,4 @@ -from typing import List, Optional, Union +from typing import List, Literal, Optional, Tuple, Union from pydantic import BaseModel, field_validator, model_validator @@ -6,6 +6,7 @@ ROLE = 'role' CONTENT = 'content' +NAME = 'name' SYSTEM = 'system' USER = 'user' @@ -80,11 +81,21 @@ def check_exclusivity(self): def __repr__(self): return f'ContentItem({self.model_dump()})' - def get_type_and_value(self): + def get_type_and_value(self) -> Tuple[Literal['text', 'image', 'file'], str]: (t, v), = self.model_dump().items() assert t in ('text', 'image', 'file') return t, v + @property + def type(self) -> Literal['text', 'image', 'file']: + t, v = self.get_type_and_value() + return t + + @property + def value(self) -> str: + t, v = self.get_type_and_value() + return v + class Message(BaseModelCompatibleDict): role: str diff --git a/qwen_agent/llm/text_base.py b/qwen_agent/llm/text_base.py index 7f836d5..b80851c 100644 --- a/qwen_agent/llm/text_base.py +++ b/qwen_agent/llm/text_base.py @@ -13,8 +13,13 @@ def _preprocess_messages(self, messages: List[Message]) -> List[Message]: messages = format_as_text_messages(messages) return messages - def _postprocess_messages(self, messages: List[Message], fncall_mode: bool) -> List[Message]: - messages = super()._postprocess_messages(messages, fncall_mode=fncall_mode) + def _postprocess_messages( + self, + messages: List[Message], + fncall_mode: bool, + generate_cfg: dict, + ) -> List[Message]: + messages = super()._postprocess_messages(messages, fncall_mode=fncall_mode, generate_cfg=generate_cfg) messages = format_as_text_messages(messages) return messages diff --git a/qwen_agent/memory/memory.py b/qwen_agent/memory/memory.py index a8c4166..e47f7db 100644 --- a/qwen_agent/memory/memory.py +++ b/qwen_agent/memory/memory.py @@ -8,8 +8,10 @@ from qwen_agent.llm.schema import ASSISTANT, DEFAULT_SYSTEM_MESSAGE, USER, Message from qwen_agent.log import logger from qwen_agent.prompts import GenKeyword +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN, DEFAULT_PARSER_PAGE_SIZE from qwen_agent.tools import BaseTool -from qwen_agent.utils.utils import get_file_type +from qwen_agent.tools.simple_doc_parser import PARSER_SUPPORTED_FILE_TYPES +from qwen_agent.utils.utils import extract_files_from_messages, extract_text_from_message, get_file_type class Memory(Agent): @@ -26,20 +28,19 @@ def __init__(self, function_list = function_list or [] super().__init__(function_list=['retrieval'] + function_list, llm=llm, system_message=system_message) - self.keygen = GenKeyword(llm=llm) - self.system_files = files or [] def _run(self, messages: List[Message], - max_ref_token: int = 4000, + max_ref_token: int = DEFAULT_MAX_REF_TOKEN, + parser_page_size: int = DEFAULT_PARSER_PAGE_SIZE, lang: str = 'en', ignore_cache: bool = False) -> Iterator[List[Message]]: """This agent is responsible for processing the input files in the message. This method stores the files in the knowledge base, and retrievals the relevant parts based on the query and returning them. - The currently supported file types include: .pdf, .docx, .pptx, and html. + The currently supported file types include: .pdf, .docx, .pptx, .txt, and html. Args: messages: A list of messages. @@ -51,11 +52,12 @@ def _run(self, The message of retrieved documents. """ # process files in messages - session_files = self.get_all_files_of_messages(messages) + session_files = extract_files_from_messages(messages) files = self.system_files + session_files rag_files = [] for file in files: - if (file.split('.')[-1].lower() in ['pdf', 'docx', 'pptx']) or get_file_type(file) == 'html': + f_type = get_file_type(file) + if f_type in PARSER_SUPPORTED_FILE_TYPES and file not in rag_files: rag_files.append(file) if not rag_files: @@ -64,15 +66,12 @@ def _run(self, query = '' # Only retrieval content according to the last user query if exists if messages and messages[-1].role == USER: - if isinstance(messages[-1].content, str): - query = messages[-1].content - else: - for item in messages[-1].content: - if item.text: - query += item.text + query = extract_text_from_message(messages[-1], add_upload_info=False) if query: # Gen keyword - *_, last = self.keygen.run([Message(USER, query)]) + keygen = GenKeyword(llm=self.llm) + *_, last = keygen.run([Message(USER, query)]) + keyword = last[-1].content keyword = keyword.strip() if keyword.startswith('```json'): @@ -87,21 +86,15 @@ def _run(self, except Exception: query = query - content = self._call_tool('retrieval', { - 'query': query, - 'files': rag_files - }, - ignore_cache=ignore_cache, - max_token=max_ref_token) + content = self._call_tool( + 'retrieval', + { + 'query': query, + 'files': rag_files + }, + ignore_cache=ignore_cache, + max_token=max_ref_token, + parser_page_size=parser_page_size, + ) yield [Message(role=ASSISTANT, content=content, name='memory')] - - @staticmethod - def get_all_files_of_messages(messages: List[Message]): - files = [] - for msg in messages: - if isinstance(msg.content, list): - for item in msg.content: - if item.file and item.file not in files: - files.append(item.file) - return files diff --git a/qwen_agent/prompts/__init__.py b/qwen_agent/prompts/__init__.py index 10f3d61..f13ac1d 100644 --- a/qwen_agent/prompts/__init__.py +++ b/qwen_agent/prompts/__init__.py @@ -6,4 +6,10 @@ from .gen_keyword import GenKeyword from .outline_writing import OutlineWriting -__all__ = ['DocQA', 'ContinueWriting', 'OutlineWriting', 'ExpandWriting', 'GenKeyword'] +__all__ = [ + 'DocQA', + 'ContinueWriting', + 'OutlineWriting', + 'ExpandWriting', + 'GenKeyword', +] diff --git a/qwen_agent/prompts/gen_keyword.py b/qwen_agent/prompts/gen_keyword.py index 4268913..bf3ad9c 100644 --- a/qwen_agent/prompts/gen_keyword.py +++ b/qwen_agent/prompts/gen_keyword.py @@ -2,10 +2,10 @@ from typing import Dict, Iterator, List, Optional, Union from qwen_agent import Agent -from qwen_agent.llm import get_chat_model from qwen_agent.llm.base import BaseChatModel from qwen_agent.llm.schema import CONTENT, DEFAULT_SYSTEM_MESSAGE, Message from qwen_agent.tools import BaseTool +from qwen_agent.utils.utils import merge_generate_cfgs PROMPT_TEMPLATE_ZH = """请提取问题中的关键词,需要中英文均有,可以适量补充不在问题中但相关的关键词。关键词尽量切分为动词/名词/形容词等类型,不要长词组。关键词以JSON的格式给出,比如{{"keywords_zh": ["关键词1", "关键词2"], "keywords_en": ["keyword 1", "keyword 2"]}} @@ -52,20 +52,16 @@ class GenKeyword(Agent): - # TODO: Adding a stop word is not conveient! We should fix this later. def __init__(self, function_list: Optional[List[Union[str, Dict, BaseTool]]] = None, llm: Optional[Union[Dict, BaseChatModel]] = None, system_message: Optional[str] = DEFAULT_SYSTEM_MESSAGE, **kwargs): - if llm is not None: # TODO: Why this happens? - llm = copy.deepcopy(llm) - if isinstance(llm, dict): - llm = get_chat_model(llm) - stop = llm.generate_cfg.get('stop', []) - key_stop = ['Observation:', 'Observation:\n'] - llm.generate_cfg['stop'] = stop + [x for x in key_stop if x not in stop] super().__init__(function_list, llm, system_message, **kwargs) + self.extra_generate_cfg = merge_generate_cfgs( + base_generate_cfg=self.extra_generate_cfg, + new_generate_cfg={'stop': ['Observation:', 'Observation:\n']}, + ) def _run(self, messages: List[Message], lang: str = 'en', **kwargs) -> Iterator[List[Message]]: messages = copy.deepcopy(messages) diff --git a/qwen_agent/settings.py b/qwen_agent/settings.py new file mode 100644 index 0000000..3ab99cb --- /dev/null +++ b/qwen_agent/settings.py @@ -0,0 +1,11 @@ +# Settings for LLMs +DEFAULT_MAX_TOKEN = 6000 # It hasn't worked yet + +# Settings for agents +MAX_LLM_CALL_PER_RUN = 8 + +DEFAULT_WORKSPACE = 'workspace' + +# Settings for RAG +DEFAULT_MAX_REF_TOKEN = 4000 +DEFAULT_PARSER_PAGE_SIZE = 500 diff --git a/qwen_agent/tools/__init__.py b/qwen_agent/tools/__init__.py index 94724b6..11a51b4 100644 --- a/qwen_agent/tools/__init__.py +++ b/qwen_agent/tools/__init__.py @@ -5,6 +5,7 @@ from .image_gen import ImageGen from .retrieval import Retrieval from .similarity_search import SimilaritySearch +from .simple_doc_parser import SimpleDocParser from .storage import Storage from .web_extractor import WebExtractor @@ -18,5 +19,5 @@ def call_tool(plugin_name: str, plugin_args: str) -> str: __all__ = [ 'BaseTool', 'CodeInterpreter', 'ImageGen', 'AmapWeather', 'TOOL_REGISTRY', 'DocParser', 'SimilaritySearch', - 'Storage', 'Retrieval', 'WebExtractor' + 'Storage', 'Retrieval', 'WebExtractor', 'SimpleDocParser' ] diff --git a/qwen_agent/tools/base.py b/qwen_agent/tools/base.py index ff000dd..3874a64 100644 --- a/qwen_agent/tools/base.py +++ b/qwen_agent/tools/base.py @@ -38,12 +38,6 @@ def __init__(self, cfg: Optional[Dict] = None): f'You must set {self.__class__.__name__}.name, either by @register_tool(name=...) or explicitly setting {self.__class__.__name__}.name' ) - self.name_for_human = self.cfg.get('name_for_human', self.name) - if not hasattr(self, 'args_format'): - self.args_format = self.cfg.get('args_format', '此工具的输入应为JSON对象。') - self.function = self._build_function() - self.file_access = False - @abstractmethod def call(self, params: Union[str, dict], **kwargs) -> Union[str, list, dict]: """The interface for calling tools. @@ -74,7 +68,8 @@ def _verify_json_format_args(self, params: Union[str, dict]) -> Union[str, dict] except Exception: raise ValueError('Parameters cannot be converted to Json Format!') - def _build_function(self) -> dict: + @property + def function(self) -> dict: # Bad naming. It should be `function_info`. return { 'name_for_human': self.name_for_human, 'name': self.name, @@ -82,3 +77,15 @@ def _build_function(self) -> dict: 'parameters': self.parameters, 'args_format': self.args_format } + + @property + def name_for_human(self) -> str: + return self.cfg.get('name_for_human', self.name) + + @property + def args_format(self) -> str: + return self.cfg.get('args_format', '此工具的输入应为JSON对象。') + + @property + def file_access(self) -> bool: + return False diff --git a/qwen_agent/tools/code_interpreter.py b/qwen_agent/tools/code_interpreter.py index 19bb45f..f1ac6eb 100644 --- a/qwen_agent/tools/code_interpreter.py +++ b/qwen_agent/tools/code_interpreter.py @@ -15,7 +15,7 @@ import time import uuid from pathlib import Path -from typing import Dict, List, Optional, Union +from typing import Dict, List, Optional, Tuple, Union import json5 import matplotlib @@ -23,28 +23,9 @@ from jupyter_client import BlockingKernelClient from qwen_agent.log import logger +from qwen_agent.settings import DEFAULT_WORKSPACE from qwen_agent.tools.base import BaseTool, register_tool -from qwen_agent.utils.utils import extract_code, print_traceback, save_url_to_local_work_dir - -WORK_DIR = os.getenv('M6_CODE_INTERPRETER_WORK_DIR', os.getcwd() + '/workspace/ci_workspace/') - - -def _fix_secure_write_for_code_interpreter(): - if 'linux' in sys.platform.lower(): - os.makedirs(WORK_DIR, exist_ok=True) - fname = os.path.join(WORK_DIR, f'test_file_permission_{os.getpid()}.txt') - if os.path.exists(fname): - os.remove(fname) - with os.fdopen(os.open(fname, os.O_CREAT | os.O_WRONLY | os.O_TRUNC, 0o0600), 'w') as f: - f.write('test') - file_mode = stat.S_IMODE(os.stat(fname).st_mode) & 0o6677 - if file_mode != 0o0600: - os.environ['JUPYTER_ALLOW_INSECURE_WRITES'] = '1' - if os.path.exists(fname): - os.remove(fname) - - -_fix_secure_write_for_code_interpreter() +from qwen_agent.utils.utils import append_signal_handler, extract_code, print_traceback, save_url_to_local_work_dir LAUNCH_KERNEL_PY = """ from ipykernel import kernelapp as app @@ -52,62 +33,13 @@ def _fix_secure_write_for_code_interpreter(): """ INIT_CODE_FILE = str(Path(__file__).absolute().parent / 'resource' / 'code_interpreter_init_kernel.py') - ALIB_FONT_FILE = str(Path(__file__).absolute().parent / 'resource' / 'AlibabaPuHuiTi-3-45-Light.ttf') -_KERNEL_CLIENTS: Dict[int, BlockingKernelClient] = {} +_KERNEL_CLIENTS: Dict[str, BlockingKernelClient] = {} _MISC_SUBPROCESSES: Dict[str, subprocess.Popen] = {} -def _start_kernel(pid) -> BlockingKernelClient: - connection_file = os.path.join(WORK_DIR, f'kernel_connection_file_{pid}.json') - launch_kernel_script = os.path.join(WORK_DIR, f'launch_kernel_{pid}.py') - for f in [connection_file, launch_kernel_script]: - if os.path.exists(f): - logger.info(f'WARNING: {f} already exists') - os.remove(f) - - os.makedirs(WORK_DIR, exist_ok=True) - with open(launch_kernel_script, 'w') as fout: - fout.write(LAUNCH_KERNEL_PY) - - kernel_process = subprocess.Popen( - [ - sys.executable, - launch_kernel_script, - '--IPKernelApp.connection_file', - connection_file, - '--matplotlib=inline', - '--quiet', - ], - cwd=WORK_DIR, - ) - _MISC_SUBPROCESSES[f'kc_{kernel_process.pid}'] = kernel_process - logger.info(f"INFO: kernel process's PID = {kernel_process.pid}") - - # Wait for kernel connection file to be written - while True: - if not os.path.isfile(connection_file): - time.sleep(0.1) - else: - # Keep looping if JSON parsing fails, file may be partially written - try: - with open(connection_file, 'r') as fp: - json.load(fp) - break - except json.JSONDecodeError: - pass - - # Client - kc = BlockingKernelClient(connection_file=connection_file) - asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy()) - kc.load_connection_file() - kc.start_channels() - kc.wait_for_ready() - return kc - - -def _kill_kernels_and_subprocesses(sig_num=None, _frame=None): +def _kill_kernels_and_subprocesses(_sig_num=None, _frame=None): for v in _KERNEL_CLIENTS.values(): v.shutdown() for k in list(_KERNEL_CLIENTS.keys()): @@ -118,117 +50,11 @@ def _kill_kernels_and_subprocesses(sig_num=None, _frame=None): for k in list(_MISC_SUBPROCESSES.keys()): del _MISC_SUBPROCESSES[k] - if sig_num == signal.SIGINT: - raise KeyboardInterrupt() - +# Make sure all subprocesses are terminated even if killed abnormally: atexit.register(_kill_kernels_and_subprocesses) -signal.signal(signal.SIGTERM, _kill_kernels_and_subprocesses) -signal.signal(signal.SIGINT, _kill_kernels_and_subprocesses) - - -def _serve_image(image_base64: str) -> str: - image_file = f'{uuid.uuid4()}.png' - local_image_file = os.path.join(WORK_DIR, image_file) - - png_bytes = base64.b64decode(image_base64) - assert isinstance(png_bytes, bytes) - bytes_io = io.BytesIO(png_bytes) - PIL.Image.open(bytes_io).save(local_image_file, 'png') - - static_url = os.getenv('M6_CODE_INTERPRETER_STATIC_URL', 'http://127.0.0.1:7865/static') - - # Hotfix: Temporarily generate image URL proxies for code interpreter to display in gradio - # Todo: Generate real url - if static_url == 'http://127.0.0.1:7865/static': - if 'image_service' not in _MISC_SUBPROCESSES: - try: - # run a fastapi server for image show in gradio demo by http://127.0.0.1:7865/figure_name - _MISC_SUBPROCESSES['image_service'] = subprocess.Popen( - ['python', Path(__file__).absolute().parent / 'resource' / 'image_service.py']) - except Exception: - print_traceback() - - image_url = f'{static_url}/{image_file}' - - return image_url - - -def _escape_ansi(line: str) -> str: - ansi_escape = re.compile(r'(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]') - return ansi_escape.sub('', line) - - -def _fix_matplotlib_cjk_font_issue(): - ttf_name = os.path.basename(ALIB_FONT_FILE) - local_ttf = os.path.join(os.path.abspath(os.path.join(matplotlib.matplotlib_fname(), os.path.pardir)), 'fonts', - 'ttf', ttf_name) - if not os.path.exists(local_ttf): - try: - shutil.copy(ALIB_FONT_FILE, local_ttf) - font_list_cache = os.path.join(matplotlib.get_cachedir(), 'fontlist-*.json') - for cache_file in glob.glob(font_list_cache): - with open(cache_file) as fin: - cache_content = fin.read() - if ttf_name not in cache_content: - os.remove(cache_file) - except Exception: - print_traceback() - - -def _execute_code(kc: BlockingKernelClient, code: str) -> str: - kc.wait_for_ready() - kc.execute(code) - result = '' - image_idx = 0 - while True: - text = '' - image = '' - finished = False - msg_type = 'error' - try: - msg = kc.get_iopub_msg() - msg_type = msg['msg_type'] - if msg_type == 'status': - if msg['content'].get('execution_state') == 'idle': - finished = True - elif msg_type == 'execute_result': - text = msg['content']['data'].get('text/plain', '') - if 'image/png' in msg['content']['data']: - image_b64 = msg['content']['data']['image/png'] - image_url = _serve_image(image_b64) - image_idx += 1 - image = '![fig-%03d](%s)' % (image_idx, image_url) - elif msg_type == 'display_data': - if 'image/png' in msg['content']['data']: - image_b64 = msg['content']['data']['image/png'] - image_url = _serve_image(image_b64) - image_idx += 1 - image = '![fig-%03d](%s)' % (image_idx, image_url) - else: - text = msg['content']['data'].get('text/plain', '') - elif msg_type == 'stream': - msg_type = msg['content']['name'] # stdout, stderr - text = msg['content']['text'] - elif msg_type == 'error': - text = _escape_ansi('\n'.join(msg['content']['traceback'])) - if 'M6_CODE_INTERPRETER_TIMEOUT' in text: - text = 'Timeout: Code execution exceeded the time limit.' - except queue.Empty: - text = 'Timeout: Code execution exceeded the time limit.' - finished = True - except Exception: - text = 'The code interpreter encountered an unexpected error.' - print_traceback() - finished = True - if text: - result += f'\n\n{msg_type}:\n\n```\n{text}\n```' - if image: - result += f'\n\n{image}' - if finished: - break - result = result.lstrip('\n') - return result +append_signal_handler(signal.SIGTERM, _kill_kernels_and_subprocesses) +append_signal_handler(signal.SIGINT, _kill_kernels_and_subprocesses) @register_tool('code_interpreter') @@ -237,9 +63,19 @@ class CodeInterpreter(BaseTool): parameters = [{'name': 'code', 'type': 'string', 'description': '待执行的代码', 'required': True}] def __init__(self, cfg: Optional[Dict] = None): - self.args_format = '此工具的输入应为Markdown代码块。' super().__init__(cfg) - self.file_access = True + default_work_dir = os.getenv('M6_CODE_INTERPRETER_WORK_DIR', + os.path.join(DEFAULT_WORKSPACE, 'tools', 'code_interpreter')) + self.work_dir: str = self.cfg.get('work_dir', default_work_dir) + self.instance_id: str = str(uuid.uuid4()) + + @property + def args_format(self) -> str: + return self.cfg.get('args_format', '此工具的输入应为Markdown代码块。') + + @property + def file_access(self) -> bool: + return True def call(self, params: Union[str, dict], files: List[str] = None, timeout: Optional[int] = 30, **kwargs) -> str: try: @@ -252,24 +88,26 @@ def call(self, params: Union[str, dict], files: List[str] = None, timeout: Optio return '' # download file if files: - os.makedirs(WORK_DIR, exist_ok=True) + os.makedirs(self.work_dir, exist_ok=True) for file in files: try: - save_url_to_local_work_dir(file, WORK_DIR) + save_url_to_local_work_dir(file, self.work_dir) except Exception: print_traceback() - pid: int = os.getpid() - if pid in _KERNEL_CLIENTS: - kc = _KERNEL_CLIENTS[pid] + kernel_id: str = f'{self.instance_id}_{os.getpid()}' + if kernel_id in _KERNEL_CLIENTS: + kc = _KERNEL_CLIENTS[kernel_id] else: _fix_matplotlib_cjk_font_issue() - kc = _start_kernel(pid) + self._fix_secure_write_for_code_interpreter() + kc, subproc = self._start_kernel(kernel_id) with open(INIT_CODE_FILE) as fin: start_code = fin.read() start_code = start_code.replace('{{M6_FONT_PATH}}', repr(ALIB_FONT_FILE)[1:-1]) - logger.info(_execute_code(kc, start_code)) - _KERNEL_CLIENTS[pid] = kc + logger.info(self._execute_code(kc, start_code)) + _KERNEL_CLIENTS[kernel_id] = kc + _MISC_SUBPROCESSES[kernel_id] = subproc if timeout: code = f'_M6CountdownTimer.start({timeout})\n{code}' @@ -281,13 +119,184 @@ def call(self, params: Union[str, dict], files: List[str] = None, timeout: Optio fixed_code.append('plt.rcParams["font.family"] = _m6_font_prop.get_name()') fixed_code = '\n'.join(fixed_code) fixed_code += '\n\n' # Prevent code not executing in notebook due to no line breaks at the end - result = _execute_code(kc, fixed_code) + result = self._execute_code(kc, fixed_code) if timeout: - _execute_code(kc, '_M6CountdownTimer.cancel()') + self._execute_code(kc, '_M6CountdownTimer.cancel()') return result if result.strip() else 'Finished execution.' + def __del__(self): + # Recycle the jupyter subprocess: + k: str = f'{self.instance_id}_{os.getpid()}' + if k in _KERNEL_CLIENTS: + _KERNEL_CLIENTS[k].shutdown() + del _KERNEL_CLIENTS[k] + if k in _MISC_SUBPROCESSES: + _MISC_SUBPROCESSES[k].terminate() + del _MISC_SUBPROCESSES[k] + + def _fix_secure_write_for_code_interpreter(self): + if 'linux' in sys.platform.lower(): + os.makedirs(self.work_dir, exist_ok=True) + fname = os.path.join(self.work_dir, f'test_file_permission_{os.getpid()}.txt') + if os.path.exists(fname): + os.remove(fname) + with os.fdopen(os.open(fname, os.O_CREAT | os.O_WRONLY | os.O_TRUNC, 0o0600), 'w') as f: + f.write('test') + file_mode = stat.S_IMODE(os.stat(fname).st_mode) & 0o6677 + if file_mode != 0o0600: + os.environ['JUPYTER_ALLOW_INSECURE_WRITES'] = '1' + if os.path.exists(fname): + os.remove(fname) + + def _start_kernel(self, kernel_id: str) -> Tuple[BlockingKernelClient, subprocess.Popen]: + connection_file = os.path.join(self.work_dir, f'kernel_connection_file_{kernel_id}.json') + launch_kernel_script = os.path.join(self.work_dir, f'launch_kernel_{kernel_id}.py') + for f in [connection_file, launch_kernel_script]: + if os.path.exists(f): + logger.info(f'WARNING: {f} already exists') + os.remove(f) + + os.makedirs(self.work_dir, exist_ok=True) + with open(launch_kernel_script, 'w') as fout: + fout.write(LAUNCH_KERNEL_PY) + + kernel_process = subprocess.Popen( + [ + sys.executable, + os.path.abspath(launch_kernel_script), + '--IPKernelApp.connection_file', + os.path.abspath(connection_file), + '--matplotlib=inline', + '--quiet', + ], + cwd=os.path.abspath(self.work_dir), + ) + logger.info(f"INFO: kernel process's PID = {kernel_process.pid}") + + # Wait for kernel connection file to be written + while True: + if not os.path.isfile(connection_file): + time.sleep(0.1) + else: + # Keep looping if JSON parsing fails, file may be partially written + try: + with open(connection_file, 'r') as fp: + json.load(fp) + break + except json.JSONDecodeError: + pass + + # Client + kc = BlockingKernelClient(connection_file=connection_file) + asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy()) + kc.load_connection_file() + kc.start_channels() + kc.wait_for_ready() + return kc, kernel_process + + def _execute_code(self, kc: BlockingKernelClient, code: str) -> str: + kc.wait_for_ready() + kc.execute(code) + result = '' + image_idx = 0 + while True: + text = '' + image = '' + finished = False + msg_type = 'error' + try: + msg = kc.get_iopub_msg() + msg_type = msg['msg_type'] + if msg_type == 'status': + if msg['content'].get('execution_state') == 'idle': + finished = True + elif msg_type == 'execute_result': + text = msg['content']['data'].get('text/plain', '') + if 'image/png' in msg['content']['data']: + image_b64 = msg['content']['data']['image/png'] + image_url = self._serve_image(image_b64) + image_idx += 1 + image = '![fig-%03d](%s)' % (image_idx, image_url) + elif msg_type == 'display_data': + if 'image/png' in msg['content']['data']: + image_b64 = msg['content']['data']['image/png'] + image_url = self._serve_image(image_b64) + image_idx += 1 + image = '![fig-%03d](%s)' % (image_idx, image_url) + else: + text = msg['content']['data'].get('text/plain', '') + elif msg_type == 'stream': + msg_type = msg['content']['name'] # stdout, stderr + text = msg['content']['text'] + elif msg_type == 'error': + text = _escape_ansi('\n'.join(msg['content']['traceback'])) + if 'M6_CODE_INTERPRETER_TIMEOUT' in text: + text = 'Timeout: Code execution exceeded the time limit.' + except queue.Empty: + text = 'Timeout: Code execution exceeded the time limit.' + finished = True + except Exception: + text = 'The code interpreter encountered an unexpected error.' + print_traceback() + finished = True + if text: + result += f'\n\n{msg_type}:\n\n```\n{text}\n```' + if image: + result += f'\n\n{image}' + if finished: + break + result = result.lstrip('\n') + return result + + # TODO: Remove this buggy image service and return local_image_file directly. + def _serve_image(self, image_base64: str) -> str: + image_file = f'{uuid.uuid4()}.png' + local_image_file = os.path.join(self.work_dir, image_file) + + png_bytes = base64.b64decode(image_base64) + assert isinstance(png_bytes, bytes) + bytes_io = io.BytesIO(png_bytes) + PIL.Image.open(bytes_io).save(local_image_file, 'png') + + static_url = os.getenv('M6_CODE_INTERPRETER_STATIC_URL', 'http://127.0.0.1:7865/static') + + # Hotfix: Temporarily generate image URL proxies for code interpreter to display in gradio + if static_url == 'http://127.0.0.1:7865/static': + if 'image_service' not in _MISC_SUBPROCESSES: + try: + # run a fastapi server for image show in gradio demo by http://127.0.0.1:7865/{image_file} + _MISC_SUBPROCESSES['image_service'] = subprocess.Popen( + ['python', Path(__file__).absolute().parent / 'resource' / 'image_service.py']) + except Exception: + print_traceback() + + image_url = f'{static_url}/{image_file}' + return image_url + + +def _fix_matplotlib_cjk_font_issue(): + ttf_name = os.path.basename(ALIB_FONT_FILE) + local_ttf = os.path.join(os.path.abspath(os.path.join(matplotlib.matplotlib_fname(), os.path.pardir)), 'fonts', + 'ttf', ttf_name) + if not os.path.exists(local_ttf): + try: + shutil.copy(ALIB_FONT_FILE, local_ttf) + font_list_cache = os.path.join(matplotlib.get_cachedir(), 'fontlist-*.json') + for cache_file in glob.glob(font_list_cache): + with open(cache_file) as fin: + cache_content = fin.read() + if ttf_name not in cache_content: + os.remove(cache_file) + except Exception: + print_traceback() + + +def _escape_ansi(line: str) -> str: + ansi_escape = re.compile(r'(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]') + return ansi_escape.sub('', line) + # # The _BasePolicy and AnyThreadEventLoopPolicy below are borrowed from Tornado. diff --git a/qwen_agent/tools/doc_parser.py b/qwen_agent/tools/doc_parser.py index ebda4b3..c1c0869 100644 --- a/qwen_agent/tools/doc_parser.py +++ b/qwen_agent/tools/doc_parser.py @@ -1,162 +1,301 @@ -import datetime import json import os import re -from typing import Dict, Optional, Union -from urllib.parse import unquote, urlparse +import time +from typing import Dict, List, Optional, Union import json5 from pydantic import BaseModel from qwen_agent.log import logger +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN, DEFAULT_PARSER_PAGE_SIZE, DEFAULT_WORKSPACE from qwen_agent.tools.base import BaseTool, register_tool -from qwen_agent.tools.storage import Storage -from qwen_agent.utils.doc_parser import parse_doc, parse_html_bs -from qwen_agent.utils.utils import (get_file_type, hash_sha256, is_local_path, print_traceback, - save_url_to_local_work_dir) +from qwen_agent.tools.simple_doc_parser import PARAGRAPH_SPLIT_SYMBOL, SimpleDocParser, get_plain_doc +from qwen_agent.tools.storage import KeyNotExistsError, Storage +from qwen_agent.utils.tokenization_qwen import count_tokens, tokenizer +from qwen_agent.utils.utils import get_basename_from_url, hash_sha256 -class FileTypeNotImplError(NotImplementedError): - pass +class Chunk(BaseModel): + content: str + metadata: dict + token: int + + def __init__(self, content: str, metadata: dict, token: int): + super().__init__(content=content, metadata=metadata, token=token) + + def to_dict(self) -> dict: + return {'content': self.content, 'metadata': self.metadata, 'token': self.token} class Record(BaseModel): url: str - time: str - source: str - raw: list + raw: List[Chunk] title: str - topic: str - checked: bool - session: list - def to_dict(self) -> dict: - return { - 'url': self.url, - 'time': self.time, - 'source': self.source, - 'raw': self.raw, - 'title': self.title, - 'topic': self.topic, - 'checked': self.checked, - 'session': self.session - } - - -def sanitize_chrome_file_path(file_path: str) -> str: - # For Linux and macOS. - if os.path.exists(file_path): - return file_path - - # For native Windows, drop the leading '/' in '/C:/' - win_path = file_path - if win_path.startswith('/'): - win_path = win_path[1:] - if os.path.exists(win_path): - return win_path - - # For Windows + WSL. - if re.match(r'^[A-Za-z]:/', win_path): - wsl_path = f'/mnt/{win_path[0].lower()}/{win_path[3:]}' - if os.path.exists(wsl_path): - return wsl_path - - # For native Windows, replace / with \. - win_path = win_path.replace('/', '\\') - if os.path.exists(win_path): - return win_path - - return file_path - - -def process_file(url: str, db: Storage = None): - logger.info('Starting cache pages...') - url = url - if url.split('.')[-1].lower() in ['pdf', 'docx', 'pptx']: - date1 = datetime.datetime.now() - - if url.startswith('https://') or url.startswith('http://') or re.match(r'^[A-Za-z]:\\', url) or re.match( - r'^[A-Za-z]:/', url): - pdf_path = url - else: - parsed_url = urlparse(url) - pdf_path = unquote(parsed_url.path) - pdf_path = sanitize_chrome_file_path(pdf_path) - - try: - if not is_local_path(url): - # download - file_tmp_path = save_url_to_local_work_dir(pdf_path, - db.root, - new_name=hash_sha256(url) + '.' + - pdf_path.split('.')[-1].lower()) - pdf_content = parse_doc(file_tmp_path) - else: - pdf_content = parse_doc(pdf_path) - date2 = datetime.datetime.now() - logger.info('Parsing pdf time: ' + str(date2 - date1)) - content = pdf_content - source = 'doc' - title = pdf_path.split('/')[-1].split('\\')[-1].split('.')[0] - except Exception: - print_traceback() - return 'failed' - else: - if not is_local_path(url): - file_tmp_path = save_url_to_local_work_dir(url, db.root, new_name=hash_sha256(url)) - else: - file_tmp_path = url - file_source = get_file_type(file_tmp_path) - if file_source == 'html': - try: - content = parse_html_bs(file_tmp_path) - title = content[0]['metadata']['title'] - except Exception: - print_traceback() - return 'failed' - source = 'html' - else: - raise FileTypeNotImplError - - # save real data - now_time = str(datetime.date.today()) - new_record = Record(url=url, - time=now_time, - source=source, - raw=content, - title=title, - topic='', - checked=True, - session=[]).to_dict() - new_record_str = json.dumps(new_record, ensure_ascii=False) - db.put(hash_sha256(url), new_record_str) + def __init__(self, url: str, raw: List[Chunk], title: str): + super().__init__(url=url, raw=raw, title=title) - return new_record + def to_dict(self) -> dict: + return {'url': self.url, 'raw': [x.to_dict() for x in self.raw], 'title': self.title} @register_tool('doc_parser') class DocParser(BaseTool): - description = '解析并存储一个文件,返回解析后的文件内容' - parameters = [{'name': 'url', 'type': 'string', 'description': '待解析的文件的路径', 'required': True}] + description = '对一个文件进行内容提取和分块、返回分块后的文件内容' + parameters = [{ + 'name': 'url', + 'type': 'string', + 'description': '待解析的文件的路径,可以是一个本地路径或可下载的http(s)链接', + 'required': True + }] def __init__(self, cfg: Optional[Dict] = None): super().__init__(cfg) - self.data_root = self.cfg.get('path', 'workspace/default_doc_parser_data_path') + self.data_root = self.cfg.get('path', os.path.join(DEFAULT_WORKSPACE, 'tools', self.name)) self.db = Storage({'storage_root_path': self.data_root}) - def call(self, params: Union[str, dict], ignore_cache: bool = False) -> dict: - """Parse file by url, and return the formatted content.""" + self.doc_extractor = SimpleDocParser({'structured_doc': True}) - params = self._verify_json_format_args(params) + def call(self, + params: Union[str, dict], + ignore_cache: bool = False, + parser_page_size: int = DEFAULT_PARSER_PAGE_SIZE, + max_token: int = DEFAULT_MAX_REF_TOKEN) -> dict: + """Extracting and blocking - if ignore_cache: - record = process_file(url=params['url'], db=self.db) - else: + Returns: + Parse doc as the following chunks: + { + 'url': 'This is the url of this file', + 'title': 'This is the extracted title of this file', + 'raw': [ + { + 'content': 'This is one chunk', + 'token': 'The token number', + 'metadata': {} # some information of this chunk + }, + ..., + ] + } + """ + + params = self._verify_json_format_args(params) + url = params['url'] + cached_name_ori = f'{hash_sha256(url)}_ori' + cached_name_chunking = f'{hash_sha256(url)}_{str(parser_page_size)}' + doc = None + if not ignore_cache: try: - record = self.db.get(hash_sha256(params['url'])) + # Directly load the chunked doc + record = self.db.get(cached_name_chunking) record = json5.loads(record) + return record + except KeyNotExistsError: + try: + # Directly load the parsed doc + doc = json5.loads(self.db.get(cached_name_ori)) + except KeyNotExistsError: + pass + total_token = 0 + if not doc: + logger.info(f'Start parsing {url}...') + time1 = time.time() + doc = self.doc_extractor.call({'url': url}) + for page in doc: + for para in page['content']: + # Todo: More attribute types + para['token'] = count_tokens(para.get('text', para.get('table'))) + total_token += para['token'] + time2 = time.time() + logger.info(f'Finished parsing {url}. Time spent: {time2 - time1} seconds.') + # Cache the parsing doc + self.db.put(cached_name_ori, json.dumps(doc, ensure_ascii=False, indent=2)) + else: + for page in doc: + for para in page['content']: + total_token += para['token'] + + if doc and 'title' in doc[0]: + title = doc[0]['title'] + else: + title = get_basename_from_url(url) + + logger.info(f'Start chunking {url} ({title})...') + time2 = time.time() + if total_token <= max_token: + # The whole doc is one chunk + content = [ + Chunk(content=get_plain_doc(doc), + metadata={ + 'source': url, + 'title': title, + 'chunk_id': 0 + }, + token=total_token) + ] + cached_name_chunking = f'{hash_sha256(url)}_without_chunking' + else: + content = self.split_doc_to_chunk(doc, url, title=title, parser_page_size=parser_page_size) + + time3 = time.time() + logger.info(f'Finished chunking {url} ({title}). Time spent: {time3 - time2} seconds.') + + # save the document data + new_record = Record(url=url, raw=content, title=title).to_dict() + new_record_str = json.dumps(new_record, ensure_ascii=False) + self.db.put(cached_name_chunking, new_record_str) + return new_record + + def split_doc_to_chunk(self, + doc: List[dict], + path: str, + title: str = '', + parser_page_size: int = DEFAULT_PARSER_PAGE_SIZE) -> List[Chunk]: + res = [] + chunk = [] + available_token = parser_page_size + has_para = False + for page in doc: + page_num = page['page_num'] + if not chunk or f'[page: {str(page_num)}]' != chunk[0]: + chunk.append(f'[page: {str(page_num)}]') + idx = 0 + len_para = len(page['content']) + while idx < len_para: + if not chunk: + chunk.append(f'[page: {str(page_num)}]') + para = page['content'][idx] + txt = para.get('text', para.get('table')) + token = para['token'] + if token <= available_token: + available_token -= token + chunk.append([txt, page_num]) + has_para = True + idx += 1 + else: + if has_para: + # Record one chunk + if isinstance(chunk[-1], str) and re.fullmatch(r'^\[page: \d+\]$', chunk[-1]) is not None: + chunk.pop() # Redundant page information + res.append( + Chunk(content=PARAGRAPH_SPLIT_SYMBOL.join( + [x if isinstance(x, str) else x[0] for x in chunk]), + metadata={ + 'source': path, + 'title': title, + 'chunk_id': len(res) + }, + token=parser_page_size - available_token)) + + # Define new chunk + overlap_txt = self._get_last_part(chunk) + if overlap_txt.strip(): + chunk = [f'[page: {str(chunk[-1][1])}]', overlap_txt] + has_para = False + available_token = parser_page_size - count_tokens(overlap_txt) + else: + chunk = [] + has_para = False + available_token = parser_page_size + else: + # There are excessively long paragraphs present + # Split paragraph to sentences + _sentences = re.split(r'\. |。', txt) + sentences = [] + for s in _sentences: + token = count_tokens(s) + if not s.strip() or token == 0: + continue + if token <= available_token: + sentences.append([s, token]) + else: + # Limit the length of a sentence to chunk size + token_list = tokenizer.tokenize(s) + for si in range(0, len(token_list), available_token): + ss = tokenizer.convert_tokens_to_string( + token_list[si:min(len(token_list), si + available_token)]) + sentences.append([ss, min(available_token, len(token_list) - si)]) + for s, token in sentences: + if not chunk: + chunk.append(f'[page: {str(page_num)}]') + + if token <= available_token or (not has_para): + # Be sure to add at least one sentence + # (not has_para) is a patch of the previous sentence splitting + available_token -= token + chunk.append([s, page_num]) + has_para = True + else: + assert has_para + if isinstance(chunk[-1], str) and re.fullmatch(r'^\[page: \d+\]$', + chunk[-1]) is not None: + chunk.pop() # Redundant page information + res.append( + Chunk(content=PARAGRAPH_SPLIT_SYMBOL.join( + [x if isinstance(x, str) else x[0] for x in chunk]), + metadata={ + 'source': path, + 'title': title, + 'chunk_id': len(res) + }, + token=parser_page_size - available_token)) + + overlap_txt = self._get_last_part(chunk) + if overlap_txt.strip(): + chunk = [f'[page: {str(chunk[-1][1])}]', overlap_txt] + has_para = False + available_token = parser_page_size - count_tokens(overlap_txt) + else: + chunk = [] + has_para = False + available_token = parser_page_size + # Has split this paragraph by sentence + idx += 1 + if has_para: + if isinstance(chunk[-1], str) and re.fullmatch(r'^\[page: \d+\]$', chunk[-1]) is not None: + chunk.pop() # Redundant page information + res.append( + Chunk(content=PARAGRAPH_SPLIT_SYMBOL.join([x if isinstance(x, str) else x[0] for x in chunk]), + metadata={ + 'source': path, + 'title': title, + 'chunk_id': len(res) + }, + token=parser_page_size - available_token)) - except Exception: - record = process_file(url=params['url'], db=self.db) + return res - return record + def _get_last_part(self, chunk: list) -> str: + overlap = '' + need_page = chunk[-1][1] # Only need this page to prepend + available_len = 150 + for i in range(len(chunk) - 1, -1, -1): + if chunk[i][1] != need_page: + return overlap + para = chunk[i][0] + if len(para) <= available_len: + if overlap: + overlap = f'{para}{PARAGRAPH_SPLIT_SYMBOL}{overlap}' + else: + overlap = f'{para}' + available_len -= len(para) + continue + sentence_split_symbol = '. ' + if '。' in para: + sentence_split_symbol = '。' + sentences = re.split(r'\. |。', para) + sentences = [sentence.strip() for sentence in sentences if sentence] + for j in range(len(sentences) - 1, -1, -1): + sent = sentences[j] + if not sent.strip(): + continue + if len(sent) <= available_len: + if overlap: + overlap = f'{sent}{sentence_split_symbol}{overlap}' + else: + overlap = f'{sent}' + available_len -= len(sent) + else: + return overlap + return overlap diff --git a/qwen_agent/tools/resource/code_interpreter_init_kernel.py b/qwen_agent/tools/resource/code_interpreter_init_kernel.py index 258739f..193eff6 100644 --- a/qwen_agent/tools/resource/code_interpreter_init_kernel.py +++ b/qwen_agent/tools/resource/code_interpreter_init_kernel.py @@ -34,14 +34,14 @@ def start(cls, timeout: int): try: signal.alarm(timeout) except AttributeError: # windows - pass # TODO: I haven't found a solution that works with jupyter yet. + pass # I haven't found a timeout solution that works with windows + jupyter yet. @classmethod def cancel(cls): try: signal.alarm(0) except AttributeError: # windows - pass # TODO + pass sns.set_theme() diff --git a/qwen_agent/tools/resource/image_service.py b/qwen_agent/tools/resource/image_service.py index 482daa0..2d12580 100644 --- a/qwen_agent/tools/resource/image_service.py +++ b/qwen_agent/tools/resource/image_service.py @@ -17,7 +17,12 @@ allow_headers=['*'], ) -app.mount('/static', StaticFiles(directory=os.getcwd() + '/workspace/ci_workspace/'), name='static') +# TODO: This is buggy if workspace is modified. To be removed. +app.mount( + '/static', + StaticFiles(directory=os.path.abspath('workspace/tools/code_interpreter/')), + name='static', +) if __name__ == '__main__': uvicorn.run(app='image_service:app', port=7865) diff --git a/qwen_agent/tools/retrieval.py b/qwen_agent/tools/retrieval.py index 142ea81..c724887 100644 --- a/qwen_agent/tools/retrieval.py +++ b/qwen_agent/tools/retrieval.py @@ -1,23 +1,11 @@ -from typing import Dict, List, Optional, Union +from typing import Dict, Optional, Union import json5 -from qwen_agent.log import logger +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN, DEFAULT_PARSER_PAGE_SIZE from qwen_agent.tools.base import BaseTool, register_tool -from qwen_agent.utils.utils import get_basename_from_url, print_traceback - -from .doc_parser import DocParser, FileTypeNotImplError -from .similarity_search import RefMaterialInput, RefMaterialInputItem, SimilaritySearch - - -def format_records(records: List[Dict]): - formatted_records = [] - for record in records: - formatted_records.append( - RefMaterialInput( - url=get_basename_from_url(record['url']), - text=[RefMaterialInputItem(content=x['page_content'], token=x['token']) for x in record['raw']])) - return formatted_records +from qwen_agent.tools.doc_parser import DocParser, Record +from qwen_agent.tools.similarity_search import SimilaritySearch @register_tool('retrieval') @@ -26,14 +14,14 @@ class Retrieval(BaseTool): parameters = [{ 'name': 'query', 'type': 'string', - 'description': '问题,需要从文档中检索和这个问题有关的内容' + 'description': '在这里列出关键词,用逗号分隔,目的是方便在文档中匹配到相关的内容,由于文档可能多语言,关键词最好中英文都有。', }, { 'name': 'files', 'type': 'array', 'items': { 'type': 'string' }, - 'description': '待解析的文件路径列表', + 'description': '待解析的文件路径列表,支持本地文件路径或可下载的http(s)链接。', 'required': True }] @@ -42,7 +30,12 @@ def __init__(self, cfg: Optional[Dict] = None): self.doc_parse = DocParser() self.search = SimilaritySearch() - def call(self, params: Union[str, dict], ignore_cache: bool = False, max_token: int = 4000) -> list: + def call(self, + params: Union[str, dict], + ignore_cache: bool = False, + max_token: int = DEFAULT_MAX_REF_TOKEN, + parser_page_size: int = DEFAULT_PARSER_PAGE_SIZE, + **kwargs) -> list: """RAG tool. Step1: Parse and save files @@ -52,9 +45,10 @@ def call(self, params: Union[str, dict], ignore_cache: bool = False, max_token: params: The files and query. ignore_cache: When set to True, overwrite the same documents that have been parsed before. max_token: Maximum retrieval length. + parser_page_size: The size of one page for doc parser. Returns: - The retrieved file list. + The parsed file list or retrieved file list. """ params = self._verify_json_format_args(params) @@ -63,28 +57,16 @@ def call(self, params: Union[str, dict], ignore_cache: bool = False, max_token: files = json5.loads(files) records = [] for file in files: - try: - _record = self.doc_parse.call(params={'url': file}, ignore_cache=ignore_cache) - records.append(_record) - except FileTypeNotImplError: - logger.warning( - 'Only Parsing the Following File Types: [\'web page\', \'.pdf\', \'.docx\', \'.pptx\'] to knowledge base!' - ) - except Exception: - print_traceback() + _record = self.doc_parse.call(params={'url': file}, + ignore_cache=ignore_cache, + parser_page_size=parser_page_size, + max_token=max_token) + records.append(_record) query = params.get('query', '') if query and records: - records = format_records(records) - return self._retrieve_content(query, records, max_token) + return self.search.call(params={'query': query}, + docs=[Record(**rec) for rec in records], + max_token=max_token) else: return records - - def _retrieve_content(self, query: str, records: List[RefMaterialInput], max_token=4000) -> List[Dict]: - single_max_token = int(max_token / len(records)) - _ref_list = [] - for record in records: - # Retrieval for query - now_ref_list = self.search.call(params={'query': query}, doc=record, max_token=single_max_token) - _ref_list.append(now_ref_list) - return _ref_list diff --git a/qwen_agent/tools/similarity_search.py b/qwen_agent/tools/similarity_search.py index 411faae..c952498 100644 --- a/qwen_agent/tools/similarity_search.py +++ b/qwen_agent/tools/similarity_search.py @@ -1,11 +1,15 @@ from typing import List, Union +import jieba +import json5 from pydantic import BaseModel from qwen_agent.log import logger +from qwen_agent.settings import DEFAULT_MAX_REF_TOKEN from qwen_agent.tools.base import BaseTool, register_tool -from qwen_agent.utils.tokenization_qwen import count_tokens -from qwen_agent.utils.utils import get_split_word, parse_keyword +from qwen_agent.tools.doc_parser import DocParser, Record +from qwen_agent.utils.tokenization_qwen import count_tokens, tokenizer +from qwen_agent.utils.utils import has_chinese_chars class RefMaterialOutput(BaseModel): @@ -20,29 +24,14 @@ def to_dict(self) -> dict: } -class RefMaterialInputItem(BaseModel): - content: str - token: int - - def to_dict(self) -> dict: - return {'content': self.content, 'token': self.token} - - -class RefMaterialInput(BaseModel): - """The knowledge data format input to the retrieval""" - url: str - text: List[RefMaterialInputItem] - - def to_dict(self) -> dict: - return {'url': self.url, 'text': [x.to_dict() for x in self.text]} - - -def format_input_doc(doc: List[str]) -> RefMaterialInput: +def format_input_doc(doc: List[str], url: str = '') -> Record: new_doc = [] - for x in doc: - item = RefMaterialInputItem(content=x, token=count_tokens(x)) - new_doc.append(item) - return RefMaterialInput(url='', text=new_doc) + parser = DocParser() + for i, x in enumerate(doc): + page = {'page_num': i, 'content': [{'text': x, 'token': count_tokens(x)}]} + new_doc.append(page) + content = parser.split_doc_to_chunk(new_doc, path=url) + return Record(url=url, raw=content, title='') @register_tool('similarity_search') @@ -50,88 +39,187 @@ class SimilaritySearch(BaseTool): description = '从给定文档中检索和问题相关的部分' parameters = [{'name': 'query', 'type': 'string', 'description': '问题,需要从文档中检索和这个问题有关的内容', 'required': True}] - def call(self, - params: Union[str, dict], - doc: Union[RefMaterialInput, str, List[str]] = None, - max_token: int = 4000) -> dict: + def call( + self, + params: Union[str, dict], + docs: List[Union[Record, str, List[str]]] = None, + max_token: int = DEFAULT_MAX_REF_TOKEN, + ) -> list: params = self._verify_json_format_args(params) query = params['query'] - if not doc: - return {} - if isinstance(doc, str): - doc = [doc] - if isinstance(doc, list): - doc = format_input_doc(doc) - - tokens = [page.token for page in doc.text] - all_tokens = sum(tokens) - logger.info(f'all tokens of {doc.url}: {all_tokens}') + if not docs: + return [] + new_docs = [] + all_tokens = 0 + for i, doc in enumerate(docs): + if isinstance(doc, str): + doc = [doc] # Doc with one page + if isinstance(doc, list): + doc = format_input_doc(doc, f'doc_{str(i)}') + + if isinstance(doc, Record): + new_docs.append(doc) + all_tokens += sum([page.token for page in doc.raw]) + else: + raise TypeError + logger.info(f'all tokens: {all_tokens}') if all_tokens <= max_token: + # Todo: Whether to use full window logger.info('use full ref') - return RefMaterialOutput(url=doc.url, text=[x.content for x in doc.text]).to_dict() + return [ + RefMaterialOutput(url=doc.url, text=[page.content for page in doc.raw]).to_dict() for doc in new_docs + ] wordlist = parse_keyword(query) logger.info('wordlist: ' + ','.join(wordlist)) if not wordlist: - return self.get_top(doc, max_token) - - sims = [] - for i, page in enumerate(doc.text): - sim = self.filter_section(page.content, wordlist) - sims.append([i, sim]) + # Todo: This represents the queries that do not use retrieval: summarize, etc. + return self.get_top(new_docs, max_token) + + # Mix all chunks + docs_map = {} # {'text id': ['doc id', 'chunk id']} + text_list = [] # ['text 1', 'text 2', ...] + docs_retrieved = [] # [{'url': 'doc id', 'text': []}] + for i, doc in enumerate(new_docs): + docs_retrieved.append(RefMaterialOutput(url=doc.url, text=[''] * len(doc.raw))) + for j, page in enumerate(doc.raw): + docs_map[len(text_list)] = [i, j] + text_list.append(page.content) + assert len(docs_map) == len(text_list) + + # Using bm25 retrieval + from rank_bm25 import BM25Okapi + bm25 = BM25Okapi([split_text_into_keywords(x) for x in text_list]) + doc_scores = bm25.get_scores(wordlist) + sims = [[i, sim] for i, sim in enumerate(doc_scores)] sims.sort(key=lambda item: item[1], reverse=True) assert len(sims) > 0 - - res = [] max_sims = sims[0][1] + available_token = max_token if max_sims != 0: - manul = 0 - for i in range(min(manul, len(doc.text))): - if max_token >= tokens[i] * 2: # Ensure that the first two pages do not fill up the window - res.append(doc.text[i].content) - max_token -= tokens[i] - for i, x in enumerate(sims): - if x[0] < manul: + if len(new_docs) == 1: + # This is a trick for improving performance for one doc + manual = 2 + for doc_id, doc in enumerate(new_docs): + for chunk_id in range(min(manual, len(doc.raw))): + page = doc.raw[chunk_id] + if available_token >= page.token * manual * 2: # Ensure that the first two pages do not fill up the window + docs_retrieved[doc_id].text[chunk_id] = page.content + available_token -= page.token + else: + break + for (index, sim) in sims: + # Retrieval by BM25 + if available_token <= 0: + break + doc_id = docs_map[index][0] + chunk_id = docs_map[index][1] + page = new_docs[doc_id].raw[chunk_id] + if docs_retrieved[doc_id].text[chunk_id]: + # Has retrieved continue - page = doc.text[x[0]] - if max_token < page.token: - use_rate = (max_token / page.token) * 0.2 - res.append(page.content[:int(len(page.content) * use_rate)]) + if available_token < page.token: + docs_retrieved[doc_id].text[chunk_id] = tokenizer.truncate(page.content, max_token=available_token) break - - res.append(page.content) - max_token -= page.token - - logger.info(f'remaining slots: {max_token}') - return RefMaterialOutput(url=doc.url, text=res).to_dict() + docs_retrieved[doc_id].text[chunk_id] = page.content + available_token -= page.token + + res = [] + for x in docs_retrieved: + x.text = [trk for trk in x.text if trk] + if x.text: + res.append(x.to_dict()) + return res else: - return self.get_top(doc, max_token) - - def filter_section(self, text: str, wordlist: list) -> int: - page_list = get_split_word(text) - sim = self.jaccard_similarity(wordlist, page_list) - - return sim + return self.get_top(new_docs, max_token) @staticmethod - def jaccard_similarity(list1: list, list2: list) -> int: - s1 = set(list1) - s2 = set(list2) - return len(s1.intersection(s2)) # avoid text length impact - # return len(s1.intersection(s2)) / len(s1.union(s2)) # jaccard similarity - - @staticmethod - def get_top(doc: RefMaterialInput, max_token=4000) -> dict: - now_token = 0 - text = [] - for page in doc.text: - if (now_token + page.token) <= max_token: - text.append(page.content) - now_token += page.token - else: - use_rate = ((max_token - now_token) / page.token) * 0.2 - text.append(page.content[:int(len(page.content) * use_rate)]) - break - logger.info(f'remaining slots: {max_token-now_token}') - return RefMaterialOutput(url=doc.url, text=text).to_dict() + def get_top(docs: List[Record], max_token: int = DEFAULT_MAX_REF_TOKEN) -> list: + single_max_token = int(max_token / len(docs)) + _ref_list = [] + for doc in docs: + available_token = single_max_token + text = [] + for page in doc.raw: + if available_token <= 0: + break + if page.token <= available_token: + text.append(page.content) + available_token -= page.token + else: + text.append(tokenizer.truncate(page.content, max_token=available_token)) + break + logger.info(f'[Get top] Remaining slots: {available_token}') + now_ref_list = RefMaterialOutput(url=doc.url, text=text).to_dict() + _ref_list.append(now_ref_list) + return _ref_list + + +WORDS_TO_IGNORE = [ + '', '\\t', '\\n', '\\\\', '\\', '', '\n', '\t', '\\', ' ', ',', ',', ';', ';', '/', '.', '。', '-', 'is', 'are', + 'am', 'what', 'how', '的', '吗', '是', '了', '啊', '呢', '怎么', '如何', '什么', '(', ')', '(', ')', '【', '】', '[', ']', '{', + '}', '?', '?', '!', '!', '“', '”', '‘', '’', "'", "'", '"', '"', ':', ':', '讲了', '描述', '讲', '总结', 'summarize', + '总结下', '总结一下', '文档', '文章', 'article', 'paper', '文稿', '稿子', '论文', 'PDF', 'pdf', '这个', '这篇', '这', '我', '帮我', '那个', + '下', '翻译', 'i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're", "you've", "you'll", + "you'd", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', "she's", 'her', 'hers', + 'herself', 'it', "it's", 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', + 'whom', 'this', 'that', "that'll", 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', + 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', + 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', + 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', + 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', + 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', + 's', 't', 'can', 'will', 'just', 'don', "don't", 'should', "should've", 'now', 'd', 'll', 'm', 'o', 're', 've', 'y', + 'ain', 'aren', "aren't", 'couldn', "couldn't", 'didn', "didn't", 'doesn', "doesn't", 'hadn', "hadn't", 'hasn', + "hasn't", 'haven', "haven't", 'isn', "isn't", 'ma', 'mightn', "mightn't", 'mustn', "mustn't", 'needn', "needn't", + 'shan', "shan't", 'shouldn', "shouldn't", 'wasn', "wasn't", 'weren', "weren't", 'won', "won't", 'wouldn', + "wouldn't", '说说', '讲讲', '介绍', 'summary' +] + + +def string_tokenizer(text: str) -> List[str]: + text = text.lower() + if has_chinese_chars(text): + _wordlist = list(jieba.lcut(text.strip())) + else: + _wordlist = text.strip().split() + return _wordlist + + +def split_text_into_keywords(text: str) -> List[str]: + _wordlist = string_tokenizer(text) + wordlist = [] + for x in _wordlist: + if x in WORDS_TO_IGNORE or x in wordlist: + continue + wordlist.append(x) + return wordlist + + +def parse_keyword(text): + try: + res = json5.loads(text) + except Exception: + return split_text_into_keywords(text) + + # json format + _wordlist = [] + try: + if 'keywords_zh' in res and isinstance(res['keywords_zh'], list): + _wordlist.extend([kw.lower() for kw in res['keywords_zh']]) + if 'keywords_en' in res and isinstance(res['keywords_en'], list): + _wordlist.extend([kw.lower() for kw in res['keywords_en']]) + wordlist = [] + for x in _wordlist: + if x in WORDS_TO_IGNORE: + continue + wordlist.append(x) + split_wordlist = split_text_into_keywords(res['text']) + for x in split_wordlist: + if x in wordlist: + continue + wordlist.append(x) + return wordlist + except Exception: + return split_text_into_keywords(text) diff --git a/qwen_agent/tools/simple_doc_parser.py b/qwen_agent/tools/simple_doc_parser.py new file mode 100644 index 0000000..b6ed8c7 --- /dev/null +++ b/qwen_agent/tools/simple_doc_parser.py @@ -0,0 +1,367 @@ +import os +import re +import urllib.parse +from collections import Counter +from typing import Dict, List, Optional, Union + +from qwen_agent.settings import DEFAULT_WORKSPACE +from qwen_agent.tools.base import BaseTool, register_tool +from qwen_agent.utils.str_processing import rm_cid, rm_continuous_placeholders, rm_hexadecimal +from qwen_agent.utils.utils import (get_file_type, hash_sha256, is_http_url, read_text_from_file, + save_url_to_local_work_dir) + + +def clean_paragraph(text): + text = rm_cid(text) + text = rm_hexadecimal(text) + text = rm_continuous_placeholders(text) + return text + + +PARAGRAPH_SPLIT_SYMBOL = '\n' + + +def parse_word(docx_path: str, extract_image: bool = False): + if extract_image: + raise ValueError('Currently, extracting images is not supported!') + + from docx import Document + doc = Document(docx_path) + + content = [] + for para in doc.paragraphs: + if para.text.strip(): + content.append({'text': para.text}) + for table in doc.tables: + tbl = [] + for row in table.rows: + tbl.append('|' + '|'.join([cell.text for cell in row.cells]) + '|') + tbl = '\n'.join(tbl) + content.append({'table': tbl}) + + # Due to the pages in Word are not fixed, the entire document is returned as one page + return [{'page_num': 1, 'content': content}] + + +def parse_ppt(path: str, extract_image: bool = False): + if extract_image: + raise ValueError('Currently, extracting images is not supported!') + + from pptx import Presentation + ppt = Presentation(path) + doc = [] + for slide_number, slide in enumerate(ppt.slides): + page = {'page_num': slide_number + 1, 'content': []} + + for shape in slide.shapes: + if not shape.has_text_frame and not shape.has_table: + pass + + if shape.has_text_frame: + for paragraph in shape.text_frame.paragraphs: + paragraph_text = ''.join(run.text for run in paragraph.runs) + paragraph_text = clean_paragraph(paragraph_text) + if paragraph_text.strip(): + page['content'].append({'text': paragraph_text}) + + if shape.has_table: + tbl = [] + for row_number, row in enumerate(shape.table.rows): + tbl.append('|' + '|'.join([cell.text for cell in row.cells]) + '|') + tbl = '\n'.join(tbl) + page['content'].append({'table': tbl}) + doc.append(page) + return doc + + +def parse_txt(path: str): + text = read_text_from_file(path) + paras = text.split(PARAGRAPH_SPLIT_SYMBOL) + content = [] + for p in paras: + p = clean_paragraph(p) + if p.strip(): + content.append({'text': p}) + + # Due to the pages in txt are not fixed, the entire document is returned as one page + return [{'page_num': 1, 'content': content}] + + +def parse_html_bs(path: str, extract_image: bool = False): + if extract_image: + raise ValueError('Currently, extracting images is not supported!') + + def pre_process_html(s): + # replace multiple newlines + s = re.sub('\n+', '\n', s) + # replace special string + s = s.replace("Add to Qwen's Reading List", '') + return s + + try: + from bs4 import BeautifulSoup + except Exception: + raise ValueError('Please install bs4 by `pip install beautifulsoup4`') + bs_kwargs = {'features': 'lxml'} + with open(path, 'r', encoding='utf-8') as f: + soup = BeautifulSoup(f, **bs_kwargs) + + text = soup.get_text() + + if soup.title: + title = str(soup.title.string) + else: + title = '' + + text = pre_process_html(text) + paras = text.split(PARAGRAPH_SPLIT_SYMBOL) + content = [] + for p in paras: + p = clean_paragraph(p) + if p.strip(): + content.append({'text': p}) + + # The entire document is returned as one page + return [{'page_num': 1, 'content': content, 'title': title}] + + +def parse_pdf(pdf_path: str, extract_image: bool = False) -> List[dict]: + # Todo: header and footer + from pdfminer.high_level import extract_pages + from pdfminer.layout import LTImage, LTRect, LTTextContainer + + doc = [] + for i, page_layout in enumerate(extract_pages(pdf_path)): + page = {'page_num': page_layout.pageid, 'content': []} + + elements = [] + for element in page_layout: + elements.append(element) + + # Init params for table + table_num = 0 + tables = [] + + for element in elements: + if isinstance(element, LTRect): + if not tables: + tables = extract_tables(pdf_path, i) + if table_num < len(tables): + table_string = table_converter(tables[table_num]) + table_num += 1 + if table_string: + page['content'].append({'table': table_string, 'obj': element}) + elif isinstance(element, LTTextContainer): + # Delete line breaks in the same paragraph + text = element.get_text() + # Todo: Further analysis using font + font = get_font(element) + if text.strip(): + new_content_item = {'text': text, 'obj': element} + if font: + new_content_item['font-size'] = round(font[1]) + # new_content_item['font-name'] = font[0] + page['content'].append(new_content_item) + elif extract_image and isinstance(element, LTImage): + # Todo: ocr + raise ValueError('Currently, extracting images is not supported!') + else: + pass + + # merge elements + page['content'] = postprocess_page_content(page['content']) + doc.append(page) + + return doc + + +def postprocess_page_content(page_content: list) -> list: + # rm repetitive identification for table and text + # Some documents may repeatedly recognize LTRect and LTTextContainer + table_obj = [p['obj'] for p in page_content if 'table' in p] + tmp = [] + for p in page_content: + repetitive = False + if 'text' in p: + for t in table_obj: + if t.bbox[0] <= p['obj'].bbox[0] and p['obj'].bbox[1] <= t.bbox[1] and t.bbox[2] <= p['obj'].bbox[ + 2] and p['obj'].bbox[3] <= t.bbox[3]: + repetitive = True + break + + if not repetitive: + tmp.append(p) + page_content = tmp + + # merge paragraphs that have been separated by mistake + new_page_content = [] + for p in page_content: + if new_page_content and 'text' in new_page_content[-1] and 'text' in p and abs( + p.get('font-size', 12) - + new_page_content[-1].get('font-size', 12)) < 2 and p['obj'].height < p.get('font-size', 12) + 1: + # Merge those lines belonging to a paragraph + new_page_content[-1]['text'] += f' {p["text"]}' + # new_page_content[-1]['font-name'] = p.get('font-name', '') + new_page_content[-1]['font-size'] = p.get('font-size', 12) + else: + p.pop('obj') + new_page_content.append(p) + for i in range(len(new_page_content)): + if 'text' in new_page_content[i]: + new_page_content[i]['text'] = clean_paragraph(new_page_content[i]['text']) + return new_page_content + + +def get_font(element): + from pdfminer.layout import LTChar, LTTextContainer + + fonts_list = [] + for text_line in element: + if isinstance(text_line, LTTextContainer): + for character in text_line: + if isinstance(character, LTChar): + fonts_list.append((character.fontname, character.size)) + + fonts_list = list(set(fonts_list)) + if fonts_list: + counter = Counter(fonts_list) + most_common_fonts = counter.most_common(1)[0][0] + return most_common_fonts + else: + return [] + + +def extract_tables(pdf_path, page_num): + import pdfplumber + pdf = pdfplumber.open(pdf_path) + table_page = pdf.pages[page_num] + tables = table_page.extract_tables() + return tables + + +def table_converter(table): + table_string = '' + for row_num in range(len(table)): + row = table[row_num] + cleaned_row = [ + item.replace('\n', ' ') if item is not None and '\n' in item else 'None' if item is None else item + for item in row + ] + table_string += ('|' + '|'.join(cleaned_row) + '|' + '\n') + table_string = table_string[:-1] + return table_string + + +def sanitize_chrome_file_path(file_path: str) -> str: + # For Linux and macOS. + if os.path.exists(file_path): + return file_path + + # For native Windows, drop the leading '/' in '/C:/' + win_path = file_path + if win_path.startswith('/'): + win_path = win_path[1:] + if os.path.exists(win_path): + return win_path + + # For Windows + WSL. + if re.match(r'^[A-Za-z]:/', win_path): + wsl_path = f'/mnt/{win_path[0].lower()}/{win_path[3:]}' + if os.path.exists(wsl_path): + return wsl_path + + # For native Windows, replace / with \. + win_path = win_path.replace('/', '\\') + if os.path.exists(win_path): + return win_path + + return file_path + + +PARSER_SUPPORTED_FILE_TYPES = ['pdf', 'docx', 'pptx', 'txt', 'html'] + + +def get_plain_doc(doc: list): + paras = [] + for page in doc: + for para in page['content']: + for k, v in para.items(): + if k in ['text', 'table', 'image']: + paras.append(v) + return PARAGRAPH_SPLIT_SYMBOL.join(paras) + + +@register_tool('simple_doc_parser') +class SimpleDocParser(BaseTool): + description = f'提取出一个文档的内容,支持类型包括:{"/".join(PARSER_SUPPORTED_FILE_TYPES)}' + parameters = [{ + 'name': 'url', + 'type': 'string', + 'description': '待提取的文件的路径,可以是一个本地路径或可下载的http(s)链接', + 'required': True + }] + + def __init__(self, cfg: Optional[Dict] = None): + super().__init__(cfg) + self.data_root = self.cfg.get('path', os.path.join(DEFAULT_WORKSPACE, 'tools', self.name)) + self.extract_image = self.cfg.get('extract_image', False) + self.structured_doc = self.cfg.get('structured_doc', False) + + def call(self, params: Union[str, dict], **kwargs) -> Union[str, list]: + """Parse pdf by url, and return the formatted content. + + Returns: + Extracted doc as plain text or the following list format: + [ + {'page_num': 1, + 'content': [ + {'text': 'This is one paragraph'}, + {'table': 'This is one table'} + ], + 'title': 'If extracted, this is the title of the doc.'}, + {'page_num': 2, + 'content': [ + {'text': 'This is one paragraph'}, + {'table': 'This is one table'} + ]} + ] + """ + + params = self._verify_json_format_args(params) + path = params['url'] + + f_type = get_file_type(path) + if f_type in PARSER_SUPPORTED_FILE_TYPES: + if path.startswith('https://') or path.startswith('http://') or re.match(r'^[A-Za-z]:\\', path) or re.match( + r'^[A-Za-z]:/', path): + path = path + else: + parsed_url = urllib.parse.urlparse(path) + path = urllib.parse.unquote(parsed_url.path) + path = sanitize_chrome_file_path(path) + + os.makedirs(self.data_root, exist_ok=True) + if is_http_url(path): + # download online url + tmp_file_root = os.path.join(self.data_root, hash_sha256(path)) + os.makedirs(tmp_file_root, exist_ok=True) + path = save_url_to_local_work_dir(path, tmp_file_root) + + if f_type == 'pdf': + parsed_file = parse_pdf(path, self.extract_image) + elif f_type == 'docx': + parsed_file = parse_word(path, self.extract_image) + elif f_type == 'pptx': + parsed_file = parse_ppt(path, self.extract_image) + elif f_type == 'txt': + parsed_file = parse_txt(path) + elif f_type == 'html': + parsed_file = parse_html_bs(path, self.extract_image) + else: + raise ValueError( + f'Failed: The current parser does not support this file type! Supported types: {"/".join(PARSER_SUPPORTED_FILE_TYPES)}' + ) + if not self.structured_doc: + return get_plain_doc(parsed_file) + else: + return parsed_file diff --git a/qwen_agent/tools/storage.py b/qwen_agent/tools/storage.py index bfc137f..66d31f3 100644 --- a/qwen_agent/tools/storage.py +++ b/qwen_agent/tools/storage.py @@ -1,11 +1,13 @@ import os from typing import Dict, Optional, Union +from qwen_agent.settings import DEFAULT_WORKSPACE from qwen_agent.tools.base import BaseTool, register_tool from qwen_agent.utils.utils import read_text_from_file, save_text_to_file -DEFAULT_STORAGE_PATH = 'workspace/default_data_path' -SUCCESS_MESSAGE = 'SUCCESS' + +class KeyNotExistsError(ValueError): + pass @register_tool('storage') @@ -32,7 +34,7 @@ class Storage(BaseTool): def __init__(self, cfg: Optional[Dict] = None): super().__init__(cfg) - self.root = self.cfg.get('storage_root_path', DEFAULT_STORAGE_PATH) + self.root = self.cfg.get('storage_root_path', os.path.join(DEFAULT_WORKSPACE, 'tools', self.name)) os.makedirs(self.root, exist_ok=True) def call(self, params: Union[str, dict], **kwargs) -> str: @@ -63,10 +65,12 @@ def put(self, key: str, value: str, path: Optional[str] = None) -> str: os.makedirs(path_dir, exist_ok=True) save_text_to_file(path, value) - return SUCCESS_MESSAGE + return f'Successfully saved {key}.' def get(self, key: str, path: Optional[str] = None) -> str: path = path or self.root + if not os.path.exists(os.path.join(path, key)): + raise KeyNotExistsError(f'Get Failed: {key} does not exist') return read_text_from_file(os.path.join(path, key)) def delete(self, key, path: Optional[str] = None) -> str: @@ -74,7 +78,7 @@ def delete(self, key, path: Optional[str] = None) -> str: path = os.path.join(path, key) if os.path.exists(path): os.remove(path) - return f'Successfully deleted{key}' + return f'Successfully deleted {key}' else: return f'Delete Failed: {key} does not exist' @@ -83,7 +87,7 @@ def scan(self, key: str, path: Optional[str] = None) -> str: path = os.path.join(path, key) if os.path.exists(path): if not os.path.isdir(path): - return 'Scan Failed: The scan operation requires passing in a key to a folder path' + return 'Scan Failed: The scan operation requires passing in a folder path as the key.' # All key-value pairs kvs = {} for root, dirs, files in os.walk(path): diff --git a/qwen_agent/tools/web_extractor.py b/qwen_agent/tools/web_extractor.py index 7becdf9..c58036a 100644 --- a/qwen_agent/tools/web_extractor.py +++ b/qwen_agent/tools/web_extractor.py @@ -1,8 +1,7 @@ from typing import Union -import requests - from qwen_agent.tools.base import BaseTool, register_tool +from qwen_agent.tools.simple_doc_parser import SimpleDocParser @register_tool('web_extractor') @@ -11,28 +10,7 @@ class WebExtractor(BaseTool): parameters = [{'name': 'url', 'type': 'string', 'description': '网页URL', 'required': True}] def call(self, params: Union[str, dict], **kwargs) -> str: - only_text = self.cfg.get('only_text', False) - params = self._verify_json_format_args(params) - url = params['url'] - headers = { - 'User-Agent': - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' - } - response = requests.get(url, headers=headers) - if response.status_code == 200: - if only_text: - - import justext - - paragraphs = justext.justext(response.text, justext.get_stoplist('English')) - content = '\n\n'.join([paragraph.text for paragraph in paragraphs]).strip() - if content: - return content - else: - return response.text - else: - return response.text - else: - return '' + parsed_web = SimpleDocParser().call({'url': url}) + return parsed_web diff --git a/qwen_agent/utils/doc_parser.py b/qwen_agent/utils/doc_parser.py deleted file mode 100644 index cedafe8..0000000 --- a/qwen_agent/utils/doc_parser.py +++ /dev/null @@ -1,106 +0,0 @@ -import re - -from qwen_agent.utils.tokenization_qwen import count_tokens - -ONE_PAGE_TOKEN = 500 - - -def rm_newlines(text): - text = re.sub(r'(?<=[^\.。::])\n', ' ', text) - return text - - -def rm_cid(text): - text = re.sub(r'\(cid:\d+\)', '', text) - return text - - -def rm_hexadecimal(text): - text = re.sub(r'[0-9A-Fa-f]{21,}', '', text) - return text - - -def rm_continuous_placeholders(text): - text = re.sub(r'(\.|-|——|。|_|\*){7,}', '...', text) - return text - - -def deal(text): - text = rm_newlines(text) - text = rm_cid(text) - text = rm_hexadecimal(text) - text = rm_continuous_placeholders(text) - return text - - -def parse_doc(path): - if '.pdf' in path.lower(): - from pdfminer.high_level import extract_text - text = extract_text(path) - elif '.docx' in path.lower(): - import docx2txt - text = docx2txt.process(path) - elif '.pptx' in path.lower(): - from pptx import Presentation - ppt = Presentation(path) - text = [] - for slide in ppt.slides: - for shape in slide.shapes: - if hasattr(shape, 'text'): - text.append(shape.text) - text = '\n'.join(text) - else: - raise TypeError - - text = deal(text) - return split_text_to_trunk(text, path) - - -def pre_process_html(s): - # replace multiple newlines - s = re.sub('\n+', '\n', s) - # replace special string - s = s.replace("Add to Qwen's Reading List", '') - return s - - -def parse_html_bs(path): - try: - from bs4 import BeautifulSoup - except Exception: - raise ValueError('Please install bs4 by `pip install beautifulsoup4`') - bs_kwargs = {'features': 'lxml'} - with open(path, 'r', encoding='utf-8') as f: - soup = BeautifulSoup(f, **bs_kwargs) - - text = soup.get_text() - - if soup.title: - title = str(soup.title.string) - else: - title = '' - text = pre_process_html(text) - return split_text_to_trunk(text, path, title) - - -def split_text_to_trunk(content: str, path: str, title: str = ''): - all_tokens = count_tokens(content) - all_pages = round(all_tokens / ONE_PAGE_TOKEN) - if all_pages == 0: - all_pages = 1 - len_content = len(content) - len_one_page = int(len_content / all_pages) # Approximately equal to ONE_PAGE_TOKEN - - res = [] - for i in range(0, len_content, len_one_page): - text = content[i:min(i + len_one_page, len_content)] - res.append({ - 'page_content': text, - 'metadata': { - 'source': path, - 'title': title, - 'page': (i % len_one_page) - }, - 'token': count_tokens(text) - }) - return res diff --git a/qwen_agent/utils/str_processing.py b/qwen_agent/utils/str_processing.py new file mode 100644 index 0000000..e064096 --- /dev/null +++ b/qwen_agent/utils/str_processing.py @@ -0,0 +1,30 @@ +import re + +from qwen_agent.utils.utils import has_chinese_chars + + +def rm_newlines(text): + if text.endswith('-\n'): + text = text[:-2] + return text.strip() + rep_c = ' ' + if has_chinese_chars(text): + rep_c = '' + text = re.sub(r'(?<=[^\.。::\d])\n', rep_c, text) + return text.strip() + + +def rm_cid(text): + text = re.sub(r'\(cid:\d+\)', '', text) + return text + + +def rm_hexadecimal(text): + text = re.sub(r'[0-9A-Fa-f]{21,}', '', text) + return text + + +def rm_continuous_placeholders(text): + text = re.sub(r'[.\- —。_*]{7,}', '\t', text) + text = re.sub(r'\n{3,}', '\n\n', text) + return text diff --git a/qwen_agent/utils/tokenization_qwen.py b/qwen_agent/utils/tokenization_qwen.py index 5c330da..b633f10 100644 --- a/qwen_agent/utils/tokenization_qwen.py +++ b/qwen_agent/utils/tokenization_qwen.py @@ -1,20 +1,13 @@ -# Copyright (c) Alibaba Cloud. -# -# This source code is licensed under the license found in the -# LICENSE file in the root directory of this source tree. """Tokenization classes for QWen.""" import base64 -import logging -import os import unicodedata -from dataclasses import dataclass, field from pathlib import Path -from typing import Collection, Dict, List, Set, Tuple, Union +from typing import Collection, Dict, List, Set, Union import tiktoken -logger = logging.getLogger(__name__) +from qwen_agent.log import logger VOCAB_FILES_NAMES = {'vocab_file': 'qwen.tiktoken'} @@ -47,23 +40,6 @@ def _load_tiktoken_bpe(tiktoken_bpe_file: str) -> Dict[bytes, int]: } -@dataclass(frozen=True, eq=True) -class AddedToken: - """ - AddedToken represents a token to be added to a Tokenizer An AddedToken can have special options defining the - way it should behave. - """ - - content: str = field(default_factory=str) - single_word: bool = False - lstrip: bool = False - rstrip: bool = False - normalized: bool = True - - def __getstate__(self): - return self.__dict__ - - class QWenTokenizer: """QWen tokenizer.""" @@ -157,33 +133,6 @@ def convert_tokens_to_ids(self, tokens: Union[bytes, str, List[Union[bytes, str] ids.append(self.mergeable_ranks.get(token)) return ids - def _add_tokens( - self, - new_tokens: Union[List[str], List[AddedToken]], - special_tokens: bool = False, - ) -> int: - if not special_tokens and new_tokens: - raise ValueError('Adding regular tokens is not supported') - for token in new_tokens: - surface_form = token.content if isinstance(token, AddedToken) else token - if surface_form not in SPECIAL_TOKENS_SET: - raise ValueError('Adding unknown special tokens is not supported') - return 0 - - def save_vocabulary(self, save_directory: str, **kwargs) -> Tuple[str]: - """ - Save only the vocabulary of the tokenizer (vocabulary). - - Returns: - `Tuple(str)`: Paths to the files saved. - """ - file_path = os.path.join(save_directory, 'qwen.tiktoken') - with open(file_path, 'w', encoding='utf8') as w: - for k, v in self.mergeable_ranks.items(): - line = base64.b64encode(k).decode('utf8') + ' ' + str(v) + '\n' - w.write(line) - return (file_path,) - def tokenize( self, text: str, @@ -242,29 +191,6 @@ def convert_tokens_to_string(self, tokens: List[Union[bytes, str]]) -> str: def vocab_size(self): return self.tokenizer.n_vocab - def _convert_id_to_token(self, index: int) -> Union[bytes, str]: - """Converts an id to a token, special tokens included""" - if index in self.decoder: - return self.decoder[index] - raise ValueError('unknown ids') - - def _convert_token_to_id(self, token: Union[bytes, str]) -> int: - """Converts a token to an id using the vocab, special tokens included""" - if token in self.special_tokens: - return self.special_tokens[token] - if token in self.mergeable_ranks: - return self.mergeable_ranks[token] - raise ValueError('unknown token') - - def _tokenize(self, text: str, **kwargs): - """ - Converts a string in a sequence of tokens (string), using the tokenizer. Split in words for word-based - vocabulary or sub-words for sub-word-based vocabularies (BPE/SentencePieces/WordPieces). - - Do NOT take care of added tokens. - """ - raise NotImplementedError - def _decode( self, token_ids: Union[int, List[int]], @@ -278,10 +204,20 @@ def _decode( token_ids = [i for i in token_ids if i < self.eod_id] return self.tokenizer.decode(token_ids, errors=errors or self.errors) + def encode(self, text: str) -> List[int]: + return self.convert_tokens_to_ids(self.tokenize(text)) + + def count_tokens(self, text: str) -> int: + return len(self.tokenize(text)) + + def truncate(self, text: str, max_token: int, start_token: int = 0) -> str: + token_list = self.tokenize(text) + token_list = token_list[start_token:min(len(token_list), start_token + max_token)] + return self.convert_tokens_to_string(token_list) + tokenizer = QWenTokenizer(Path(__file__).resolve().parent / 'qwen.tiktoken') -def count_tokens(text): - tokens = tokenizer.tokenize(text) - return len(tokens) +def count_tokens(text: str) -> int: + return tokenizer.count_tokens(text) diff --git a/qwen_agent/utils/utils.py b/qwen_agent/utils/utils.py index 8bc5a14..28054c0 100644 --- a/qwen_agent/utils/utils.py +++ b/qwen_agent/utils/utils.py @@ -1,25 +1,50 @@ -import datetime +import copy import hashlib -import json import os import re import shutil +import signal import socket import sys +import time import traceback -import urllib -from typing import Dict, List, Literal, Optional, Union -from urllib.parse import urlparse +import urllib.parse +from typing import Any, List, Literal, Optional -import jieba import json5 import requests -from jieba import analyse +from qwen_agent.llm.schema import ASSISTANT, FUNCTION, SYSTEM, USER, ContentItem, Message from qwen_agent.log import logger -def get_local_ip(): +def append_signal_handler(sig, handler): + """ + Installs a new signal handler while preserving any existing handler. + If an existing handler is present, it will be called _after_ the new handler. + """ + + old_handler = signal.getsignal(sig) + if not callable(old_handler): + old_handler = None + if sig == signal.SIGINT: + + def old_handler(*args, **kwargs): + raise KeyboardInterrupt + elif sig == signal.SIGTERM: + + def old_handler(*args, **kwargs): + raise SystemExit + + def new_handler(*args, **kwargs): + handler(*args, **kwargs) + if old_handler is not None: + old_handler(*args, **kwargs) + + signal.signal(sig, new_handler) + + +def get_local_ip() -> str: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: # doesn't even have to be reachable @@ -32,45 +57,67 @@ def get_local_ip(): return ip -def hash_sha256(key): - hash_object = hashlib.sha256(key.encode()) +def hash_sha256(text: str) -> str: + hash_object = hashlib.sha256(text.encode()) key = hash_object.hexdigest() return key -def print_traceback(is_error=True): +def print_traceback(is_error: bool = True): if is_error: logger.error(''.join(traceback.format_exception(*sys.exc_info()))) else: logger.warning(''.join(traceback.format_exception(*sys.exc_info()))) -def has_chinese_chars(data) -> bool: +def has_chinese_chars(data: Any) -> bool: text = f'{data}' return len(re.findall(r'[\u4e00-\u9fff]+', text)) > 0 -def get_basename_from_url(url: str) -> str: - basename = os.path.basename(urlparse(url).path) +def get_basename_from_url(path_or_url: str) -> str: + if re.match(r'^[A-Za-z]:\\', path_or_url): + # "C:\\a\\b\\c" -> "C:/a/b/c" + path_or_url = path_or_url.replace('\\', '/') + + # "/mnt/a/b/c" -> "c" + # "https://github.com/here?k=v" -> "here" + # "https://github.com/" -> "" + basename = urllib.parse.urlparse(path_or_url).path + basename = os.path.basename(basename) basename = urllib.parse.unquote(basename) - return basename.strip() + basename = basename.strip() + + # "https://github.com/" -> "" -> "github.com" + if not basename: + basename = [x.strip() for x in path_or_url.split('/') if x.strip()][-1] + + return basename -def is_local_path(path): - if path.startswith('https://') or path.startswith('http://'): - return False - return True +def is_http_url(path_or_url: str) -> bool: + if path_or_url.startswith('https://') or path_or_url.startswith('http://'): + return True + return False + + +def is_image(path_or_url: str) -> bool: + filename = get_basename_from_url(path_or_url).lower() + for ext in ['jpg', 'jpeg', 'png', 'webp']: + if filename.endswith(ext): + return True + return False -def save_url_to_local_work_dir(url, base_dir, new_name=''): - if not new_name: - new_name = get_basename_from_url(url) - new_path = os.path.join(base_dir, new_name) +def save_url_to_local_work_dir(url: str, save_dir: str, save_filename: str = '') -> str: + if not save_filename: + save_filename = get_basename_from_url(url) + new_path = os.path.join(save_dir, save_filename) if os.path.exists(new_path): os.remove(new_path) - logger.info(f'download {url} to {new_path}') - start_time = datetime.datetime.now() - if is_local_path(url): + logger.info(f'Downloading {url} to {new_path}...') + start_time = time.time() + if not is_http_url(url): shutil.copy(url, new_path) else: headers = { @@ -83,162 +130,57 @@ def save_url_to_local_work_dir(url, base_dir, new_name=''): file.write(response.content) else: raise ValueError('Can not download this file. Please check your network or the file link.') - end_time = datetime.datetime.now() - logger.info(f'Time: {str(end_time - start_time)}') + end_time = time.time() + logger.info(f'Finished downloading {url} to {new_path}. Time spent: {end_time - start_time} seconds.') return new_path -def is_image(filename): - filename = filename.lower() - for ext in ['jpg', 'jpeg', 'png', 'webp']: - if filename.endswith(ext): - return True - return False - - -def get_current_date_str( - lang: Literal['en', 'zh'] = 'en', - hours_from_utc: Optional[int] = None, -) -> str: - if hours_from_utc is None: - cur_time = datetime.datetime.now() - else: - cur_time = datetime.datetime.utcnow() + datetime.timedelta(hours=hours_from_utc) - if lang == 'en': - date_str = 'Current date: ' + cur_time.strftime('%A, %B %d, %Y') - elif lang == 'zh': - cur_time = cur_time.timetuple() - date_str = f'当前时间:{cur_time.tm_year}年{cur_time.tm_mon}月{cur_time.tm_mday}日,星期' - date_str += ['一', '二', '三', '四', '五', '六', '日'][cur_time.tm_wday] - date_str += '。' - else: - raise NotImplementedError - return date_str - - -def save_text_to_file(path, text): +def save_text_to_file(path: str, text: str) -> None: with open(path, 'w', encoding='utf-8') as fp: fp.write(text) -def read_text_from_file(path): +def read_text_from_file(path: str) -> str: with open(path, 'r', encoding='utf-8') as file: file_content = file.read() return file_content -def contains_html_tags(text): +def contains_html_tags(text: str) -> bool: pattern = r'<(p|span|div|li|html|script)[^>]*?' return bool(re.search(pattern, text)) -def get_file_type(path): - # This is a temporary plan - if is_local_path(path): +def get_file_type(path: str) -> Literal['pdf', 'docx', 'pptx', 'txt', 'html', 'unk']: + f_type = get_basename_from_url(path).split('.')[-1].lower() + if f_type in ['pdf', 'docx', 'pptx', 'txt']: + # Specially supported file types + return f_type + + if is_http_url(path): + # Assuming that the URL is HTML by default + return 'html' + else: + # Determine by reading local HTML file try: content = read_text_from_file(path) except Exception: print_traceback() - return 'Unknown' + return 'unk' if contains_html_tags(content): return 'html' else: - return 'Unknown' - else: - headers = { - 'User-Agent': - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' - } - response = requests.get(path, headers=headers) - if response.status_code == 200: - if contains_html_tags(response.text): - return 'html' - else: - return 'Unknown' - else: - print_traceback() - return 'Unknown' - - -ignore_words = [ - '', ' ', '\t', '\n', '\\', 'is', 'are', 'am', 'what', 'how', '的', '吗', '是', '了', '啊', '呢', '怎么', '如何', '什么', '?', - '?', '!', '!', '“', '”', '‘', '’', "'", "'", '"', '"', ':', ':', '讲了', '描述', '讲', '说说', '讲讲', '介绍', '总结下', '总结一下', - '文档', '文章', '文稿', '稿子', '论文', 'PDF', 'pdf', '这个', '这篇', '这', '我', '帮我', '那个', '下', '翻译' -] - - -def get_split_word(text): - text = text.lower() - _wordlist = jieba.lcut(text.strip()) - wordlist = [] - for x in _wordlist: - if x in ignore_words: - continue - wordlist.append(x) - return wordlist - - -def parse_keyword(text): - try: - res = json5.loads(text) - except Exception: - return get_split_word(text) + return 'unk' - # json format - _wordlist = [] - try: - if 'keywords_zh' in res and isinstance(res['keywords_zh'], list): - _wordlist.extend([kw.lower() for kw in res['keywords_zh']]) - if 'keywords_en' in res and isinstance(res['keywords_en'], list): - _wordlist.extend([kw.lower() for kw in res['keywords_en']]) - wordlist = [] - for x in _wordlist: - if x in ignore_words: - continue - wordlist.append(x) - wordlist.extend(get_split_word(res['text'])) - return wordlist - except Exception: - return get_split_word(text) - - -def get_key_word(text): - text = text.lower() - _wordlist = analyse.extract_tags(text) - wordlist = [] - for x in _wordlist: - if x in ignore_words: - continue - wordlist.append(x) - return wordlist - -def get_last_one_line_context(text): - lines = text.split('\n') - n = len(lines) - res = '' - for i in range(n - 1, -1, -1): - if lines[i].strip(): - res = lines[i] - break - return res - - -def extract_urls(text): +def extract_urls(text: str) -> List[str]: pattern = re.compile(r'https?://\S+') urls = re.findall(pattern, text) return urls -def extract_obs(text): - k = text.rfind('\nObservation:') - j = text.rfind('\nThought:') - obs = text[k + len('\nObservation:'):j] - return obs.strip() - - -def extract_code(text): +def extract_code(text: str) -> str: # Match triple backtick blocks first triple_match = re.search(r'```[^\n]*\n(.+?)```', text, re.DOTALL) if triple_match: @@ -247,69 +189,90 @@ def extract_code(text): try: text = json5.loads(text)['code'] except Exception: - print_traceback() + print_traceback(is_error=False) # If no code blocks found, return original text return text -def parse_latest_plugin_call(text): - plugin_name, plugin_args = '', '' - i = text.rfind('\nAction:') - j = text.rfind('\nAction Input:') - k = text.rfind('\nObservation:') - if 0 <= i < j: # If the text has `Action` and `Action input`, - if k < j: # but does not contain `Observation`, - # then it is likely that `Observation` is ommited by the LLM, - # because the output text may have discarded the stop word. - text = text.rstrip() + '\nObservation:' # Add it back. - k = text.rfind('\nObservation:') - plugin_name = text[i + len('\nAction:'):j].strip() - plugin_args = text[j + len('\nAction Input:'):k].strip() - text = text[:k] - return plugin_name, plugin_args, text - - -def get_function_description(function: Dict) -> str: - """ - Text description of function - """ - tool_desc_template = { - 'zh': '### {name_for_human}\n\n{name_for_model}: {description_for_model} 输入参数:{parameters} {args_format}', - 'en': '### {name_for_human}\n\n{name_for_model}: {description_for_model} Parameters: {parameters} {args_format}' - } - if has_chinese_chars(function): - tool_desc = tool_desc_template['zh'] +def format_as_multimodal_message(msg: Message, add_upload_info: bool = True) -> Message: + assert msg.role in (USER, ASSISTANT, SYSTEM, FUNCTION) + content = [] + if isinstance(msg.content, str): # if text content + if msg.content: + content = [ContentItem(text=msg.content)] + elif isinstance(msg.content, list): # if multimodal content + files = [] + for item in msg.content: + k, v = item.get_type_and_value() + if k == 'text': + content.append(ContentItem(text=v)) + if k == 'image': + content.append(item) + if k in ('file', 'image'): + files.append(v) + if add_upload_info and files and (msg.role in (SYSTEM, USER)): + has_zh = has_chinese_chars(content) + upload = [] + for f in [get_basename_from_url(f) for f in files]: + if is_image(f): + if has_zh: + upload.append(f'![图片]({f})') + else: + upload.append(f'![image]({f})') + else: + if has_zh: + upload.append(f'[文件]({f})') + else: + upload.append(f'[file]({f})') + upload = ' '.join(upload) + if has_zh: + upload = f'(上传了 {upload})\n\n' + else: + upload = f'(Uploaded {upload})\n\n' + content = [ContentItem(text=upload)] + content else: - tool_desc = tool_desc_template['en'] - - name = function.get('name', None) - name_for_human = function.get('name_for_human', name) - name_for_model = function.get('name_for_model', name) - assert name_for_human and name_for_model - args_format = function.get('args_format', '') - return tool_desc.format(name_for_human=name_for_human, - name_for_model=name_for_model, - description_for_model=function['description'], - parameters=json.dumps(function['parameters'], ensure_ascii=False), - args_format=args_format).rstrip() - - -def format_knowledge_to_source_and_content(result: Union[str, List[dict]]) -> List[dict]: - knowledge = [] - if isinstance(result, str): - result = f'{result}'.strip() - docs = json5.loads(result) + raise TypeError + msg = Message( + role=msg.role, + content=content, + name=msg.name if msg.role == FUNCTION else None, + function_call=msg.function_call, + ) + return msg + + +def extract_text_from_message(msg: Message, add_upload_info: bool = True) -> str: + if isinstance(msg.content, list): + mm_msg = format_as_multimodal_message(msg, add_upload_info=add_upload_info) + text = '' + for item in mm_msg.content: + if item.type == 'text': + text += item.value + elif isinstance(msg.content, str): + text = msg.content else: - docs = result - try: - _tmp_knowledge = [] - assert isinstance(docs, list) - for doc in docs: - url, snippets = doc['url'], doc['text'] - assert isinstance(snippets, list) - _tmp_knowledge.append({'source': f'[文件]({url})', 'content': '\n\n...\n\n'.join(snippets)}) - knowledge.extend(_tmp_knowledge) - except Exception: - print_traceback() - knowledge.append({'source': '上传的文档', 'content': result}) - return knowledge + raise TypeError + return text.strip() + + +def extract_files_from_messages(messages: List[Message]) -> List[str]: + files = [] + for msg in messages: + if isinstance(msg.content, list): + for item in msg.content: + if item.file and item.file not in files: + files.append(item.file) + return files + + +def merge_generate_cfgs(base_generate_cfg: Optional[dict], new_generate_cfg: Optional[dict]) -> dict: + generate_cfg: dict = copy.deepcopy(base_generate_cfg or {}) + if new_generate_cfg: + for k, v in new_generate_cfg.items(): + if k == 'stop': + stop = generate_cfg.get('stop', []) + stop = stop + [s for s in v if s not in stop] + generate_cfg['stop'] = stop + else: + generate_cfg[k] = v + return generate_cfg diff --git a/qwen_server/assistant_server.py b/qwen_server/assistant_server.py index 3068172..2279e9c 100644 --- a/qwen_server/assistant_server.py +++ b/qwen_server/assistant_server.py @@ -3,24 +3,18 @@ import time from pathlib import Path +import jsonlines + try: import add_qwen_libs # NOQA except ImportError: pass -try: - import gradio as gr - if gr.__version__ < '3.50' or gr.__version__ >= '4.0': - raise ImportError('Incompatible gradio version detected. ' - 'Please install the correct version with: pip install "gradio>=3.50,<4.0"') -except (ModuleNotFoundError, AttributeError): - raise ImportError('Please install gradio by: pip install "gradio>=3.50,<4.0"') -import jsonlines - -from qwen_agent.agents import DocQAAgent +from qwen_agent.agents import Assistant +from qwen_agent.gui import gr +from qwen_agent.gui.utils import get_avatar_image from qwen_agent.llm.base import ModelServiceError from qwen_agent.log import logger -from qwen_server import output_beautify from qwen_server.schema import GlobalConfig from qwen_server.utils import read_history, read_meta_data_by_condition, save_history @@ -29,9 +23,7 @@ server_config = json.load(f) server_config = GlobalConfig(**server_config) -function_list = None llm_config = None -storage_path = None if hasattr(server_config.server, 'llm'): llm_config = { @@ -39,12 +31,8 @@ 'api_key': server_config.server.api_key, 'model_server': server_config.server.model_server } -if hasattr(server_config.server, 'functions'): - function_list = server_config.server.functions -if hasattr(server_config.path, 'database_root'): - storage_path = server_config.path.database_root -assistant = DocQAAgent(function_list=function_list, llm=llm_config) +assistant = Assistant(llm=llm_config) with open(Path(__file__).resolve().parent / 'css/main.css', 'r') as f: css = f.read() @@ -91,10 +79,10 @@ def bot(history): history[-1][1] = '' try: response = assistant.run(messages=messages, max_ref_token=server_config.server.max_ref_token) - - for chunk in output_beautify.convert_to_full_str_stream(response): - history[-1][1] = chunk - yield history + for rsp in response: + if rsp: + history[-1][1] = rsp[-1]['content'] + yield history except ModelServiceError as ex: history[-1][1] = str(ex) yield history @@ -124,10 +112,7 @@ def clear_session(): with gr.Blocks(css=css, theme='soft') as demo: - chatbot = gr.Chatbot([], - elem_id='chatbot', - height=480, - avatar_images=(None, (os.path.join(Path(__file__).resolve().parent, 'img/logo.png')))) + chatbot = gr.Chatbot([], elem_id='chatbot', height=480, avatar_images=(None, get_avatar_image('qwen'))) with gr.Row(): with gr.Column(scale=7): txt = gr.Textbox(show_label=False, placeholder='Chat with Qwen...', container=False) diff --git a/qwen_server/database_server.py b/qwen_server/database_server.py index adb9b3d..cb81743 100644 --- a/qwen_server/database_server.py +++ b/qwen_server/database_server.py @@ -3,10 +3,6 @@ import os from pathlib import Path -try: - import add_qwen_libs # NOQA -except ImportError: - pass import json5 import jsonlines import uvicorn @@ -15,9 +11,14 @@ from fastapi.responses import JSONResponse from fastapi.staticfiles import StaticFiles +try: + import add_qwen_libs # NOQA +except ImportError: + pass + from qwen_agent.log import logger from qwen_agent.memory import Memory -from qwen_agent.utils.utils import get_local_ip, hash_sha256, save_text_to_file +from qwen_agent.utils.utils import get_basename_from_url, get_local_ip, hash_sha256, save_text_to_file from qwen_server.schema import GlobalConfig from qwen_server.utils import rm_browsing_meta_data, save_browsing_meta_data, save_history @@ -55,8 +56,8 @@ def update_pop_url(url: str): - if not url.lower().endswith('.pdf'): - url = os.path.join(server_config.path.download_root, hash_sha256(url)) + if not get_basename_from_url(url).lower().endswith('.pdf'): + url = os.path.join(server_config.path.download_root, hash_sha256(url), get_basename_from_url(url)) new_line = {'url': url} with jsonlines.open(cache_file_popup_url, mode='w') as writer: @@ -78,9 +79,10 @@ def cache_page(**kwargs): url = kwargs.get('url', '') page_content = kwargs.get('content', '') - if page_content and not url.lower().endswith('.pdf'): + if page_content and not get_basename_from_url(url).lower().endswith('.pdf'): # map to local url - url = os.path.join(server_config.path.download_root, hash_sha256(url)) + os.makedirs(os.path.join(server_config.path.download_root, hash_sha256(url)), exist_ok=True) + url = os.path.join(server_config.path.download_root, hash_sha256(url), get_basename_from_url(url)) save_browsing_meta_data(url, '[CACHING]', meta_file) # rm history save_history(None, url, history_dir) diff --git a/qwen_server/img/logo.png b/qwen_server/img/logo.png deleted file mode 100644 index d80ed39c6e4bd989d204432c3361ac0132766f79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732731 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%0Dq8>w!DlD&&=aD+`1z=V`(bx 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

    ycuh#;L2T;N>(OJc-`BE(b7XZ-N(Wif z|4)(x1h3~v^m|5XG#Rt@Xk7Ylo3|vYEzqmCNmlTqS-Wh#oxoRR;B)7f`cXIaHgtN- z*Ea#OAcP^+=QYa$MS7K08e?d26yszt3O`NHN8%{RwOOp*tIv&-W|5>BXWdKmsBWiU42DAaW~h`Rx|%VR9B_#M<`_JRW9Sj9$`!&wt38_z}Q zlg7#fkYM$aQvQCUJ{sTHgMqL+d$uCN!41-=k(F88`L&A)$-k+aV(xtMj_9Q3M94@5 zhlK^|9BIg9R`sQc_8MwOj<|1suB*B_Y}BNzn%Xbp;-h!OX)Q2o2I#~$4sLN=d(p#- zD^u39U&b1lICma&iWX@;-kvmBsC3ZclGIMuPvjU@udbXHq2LXN802Jz2mW`_-L!lw z-y*^*MzYI$jO~X^rBp*;BCa=e-2 z+NVw_d5!UdUpQ~9yP3PYU871!Y?)O@7l@SuTwPXkT0p_>9$_JA|+?F z+3u1tnUl-YRBNg6`XUst@z0gI!mKC-&X9B=(CarE)^qZe3FQ$Pz(k_05zfTVM0&AV z4Gxu;*xW1_mQG__n-m_)QWUJI^4k89{^`}}IFQnA3!4*5kfjnF3B?oLG!qv(AlQ|? zWRA<($W-}eCUV!g?`f^>+s{jG8@*p=2`!^L&6(Z&@r#=`;vKhs?Fn_41lZK0@}pR~ z2|B4+sWs57CtV`l%h!9AJf9Vr7YH}kl}OTL-y&}>&H0c2#7g&XiO;y{iRvVCOm?>y z9=0E?OdNa&))%gzab6~j{So&1crT{Y+5gy;c#K}?gr^lQ?J?4*{gNtvwQsr~TA$~W zt4VXFcI!X0ZsvTrA-N*Va2pxHjBtny%=uy-{l))dRltwt)}T9t$?5f5A1>%u{ufne z{T0>!g?kkRgAnN)1nClxE)fA~5$O^}K)M?S5s_vj2PBnlhHfMWW(esRa)zOYW@xzc z`QCMZxPQP|>#TM5dY}D%_Vc`Us`Wo!@44tIcS*H3^@b`-Ip8rN$dR0Mu8`6Cx|96r z5zbvyIXAQOQnb|Y`eIFVo0jxb#d8yr?gtK~nJD@y1rn=jkXs7ft&sEZPm|ky2SmR5 zI=ood1n)9jG-mc&rAXB?<@K?0E4aWy0bGGNx^|5%s3{WjMlz%PJ1z3fwC$2?^}m+q zI{PdLNksEql#X#;f|dY!i7b;Qng7{}p3UG-e(0>$6D{kk?S)~tx52=mr`{2Ysoa>4 z!K=TvJYqa}v;}XT-&i;GirR3R3Krn?J;Ygua)3R+eMcADck$B?wyzWXlXkQU!F8b)#c=V|C^-pSQCxz&CVwY6gjIrxjyA`~Kr0Doq} z%K#2!ZnkE)cqFjh|6+#|?GLIp>%niPM8!(L-P5bH_`P)NuP~11EZQlh3r9qI;GAGB`UWC^ocWQu%>K%CD0*dlT7ckJvI->Pg>7z`bPD7sS89Hy2{|X zjj>}%rM1+dA^s-h@~u5b5-IU1pM^b2YzFr>-uPm!w^aNrX6io&A;h;LL;4hSesQ|n zGl(F-dqkl7u=0Gy?ms2WED2J?V_0fEiO<;*UkZn>gdVcl03>`1m;$=ZvY#F>s(zSk zot#LN8>S=&-Z}GtpDv+mqJldEsFq%%8o!x5zH4Pww18LfUe0;gi$)mH|E0xHuuo7+ zlid+J)nodzPcKh{Z6y*AN7!4CFlu)_N)I4??L&Xx`~>~0NBGCkSsjn-a#4F8)CMMB zUJYKWW8CyQ{8naWeSa?OlXBlD%BLr-5AADP*I0}c*K8Vi2w>yO>xm;m!m7vh+>SO0 zOZoUcuHF>#)jKRkt;K;yCO*lRa!-uSl|>+**N9)V>xy~x1C-*vf|tmPa>Rs6>iJ(p zCG9(M;|!%Ta5Z~MR6&ek!xl1?CF-z7t4x1O97RnwfO+ZKiGN9l8kkSCX~;a`6Jyw_ zGgZ2t>fhLnay(}{eHx4?py9-z=xZpPBY3y_Bt&lf8wzp1X-+?0a$j$pZ_F}JH1v58 zVJrjFa;G5?Y#jAKdDsqBi({W}wOm8*I8O_dC1TB@#qs4TAJF8kM*Kk%=lA6pmhQ5M$q z1MYPuHzw7CFz=pt?Tjwvw$FTFcn1UPw!5|pRs5B3&^0*_dO&J>v)MY3-Onf^NA9E-_?)u4LB=GktAz->n?M2q( z?@OA*zYYp6Cu{JzUAb0Lv@Rx2I^=Fx+p|ytd*T@%p;#EYTS1DnwQiGymGW$P*dcy( ze)~=~|B?)S=!f@}CW`}G!A9g{w*0Xp{1WdvA`C+JC5H;Ld<$C-4=wiLF^G50&@G3R zQiY_KKXl}M`8%s5GGLMm9ZK)QiDxHnnq~?>-p5~A3(;l4j!{cJ967FIVo`*JewDxZ ze@?xpT+rZjoNNgk9e-1bYFp;4MLo>(-kJF^H-gn@DjbXTyIah)p?&hWsKI`iK<70T zkqk}x3Nhp~d*DvC0j8v=@iP>8R4UWq%`2=ESbtc*b1@6}*b z8pWP<@OXlKQqA!gE?WS%X}6CP)so0~{4mdbt914#O7}uQ-(z8I@2nLu0dmeb>~0}6L|y7#HE?|r-ZMV2t^rSe+$DVx&^vbU%M)#j!v>2uMuSyyA2N!QQLVEgNKAee zeY6@Lkj2xRc+$ilSV^fpQMv5*@UoCK(b{!NB_SrZxx*%itFJo-Skxg&Xk~I1qid3n z8p83nRY6~9fsAZgVq&qyUI*Zn@IaNgnCNDGfN+-E+w>F=pS~L(A~6WcB-ta~8{GGK zcQE|`n(35VVE|ZLm!IHQzZCgq`65xw{KznfQk8+IN#oa<pJdgZ2m`3RD z!fPwf$7(X^5k{o#QlT|YjGr%SOee!_xFugNvm`fo!rR!Re4Smy3?JO%)iCcyNg|On z@Yn{Y6yz?RTXu#k{ExWk(e$X2{NMIVS~dzncOhkyozNvc#O{pB7e}J6?%imQ=Z|vg zU>MQ33?a|8(9|Mfg%?D(J-c)K`B^W8Iop~ypCDTg-Tx!M1+SPTxIh@R@V{nuc@D9f z{-?_!*=yO)O&IxN=kCP)b|7f{knKHB%&%G%&u(PNaIQJIoL=+FK{I-*Z`k5-zUqfC zn?8>!Ta)AJnR^mx5+lqB1K$qzezJawTwt8K7>u^ylv5n+QCE02@&xdpvi#S_i>9~t zA|1j;C=Rb?z+|aHg-^^C9Sk3wbTx_Ka{n9@@=ou0=X|$a_uA?zsRw~|1iQbC<^R2 zZXd0Ze^t6r9VxuR9qnZ)tljsyZ6}3aWbfzo$83Zve2LQ8s$aH8K1@X}TCI*z&O{7(Jg(IewNj=3>>Z1+0#)^Vvzm)b8Nl~10}`QX^@SAcBNMKe4+d2j5#5k;oiB^Krj2k$1F$A%aw#{X60HxyB>6J2#2lW%Y=o6*9=b_ zmnWa@t$5J}-{^MU6R1pHy5917t!+sTN&f^5QQ);m>--F_R7?;1_)t{GGn=K9!0xE` z{-_OQkSpT(&f{mo0-tJ{{OVK5%)kmnjYLmfu zw5v+#z{vRYNFJb}{)KrVtG$@>agBI}ol!aO4_5_%`nT=N44lxBmH5xJ z*(LLUXpO(N<@@uugc}?+YTbjwYRL$N7a?kEAH)rRD4kqvd|M^UKmUaEkqbc4thMbKyQ+%TmXa+72ByurN1&K4$q5`s6ts>o#u~`ZF-t zXx(t|h~ywL=@(#`9_xxS8i*?o9={Tn{UJ(y z#*LZ8(U$FX+MgJL7Q<}CwexQ~G;T+$p<;1q?5c)#NezQSqbpyNjAgX+ZqC9#fG)Qi z;JkvFy@Ra!YzvZcM)5$}V|xzrTw}yjI_dIN20f%{!Ti8D0co{RgM4++|6>8%>5CyY zAi!XKGrVVKn@k1FWK2N&BRf0G^nP*aXm92Z!6R0H?(#asXte{}cB^2lmM`SVD{ zLl}TZ;w8%i!Sn^Diusn%>u> z5?w9j22lIMRc#$A!PiPUV|h^Ln}P+#a8C^^pzH@&^%?mB3{hb~Gvrfq+GPHKO+$fh zD(ny6UT$J!nFmC`on(^DJW%m0OW^QnVpFxb3>~K=B1^NUb}P*z6&4;EAwilLJJnZ- zBPR+i61l8CU{0P9`ugg=UTqI7L-P$>Lwb)!GoI_sR|Ns)q^?E}h6ckd*=`>qXUOeY z!#Z5WSG4b9&W-qoWMaSVGszhO8t3t2y*H9SZ9ZV^=mhRM-g)|&foNu?OjADTNa=XK z^6Qbiq+7Rl)5>ZcKAW*<(0-DMgb(58n_`nQ{e_uM{%I%t&6a!fl5NwmqF_X`xvh9C z*)RWBcRFjpC)D~zVv_CY2T%Nz6py*X^WIrtzKWIe(c4VNYu)u$rFpfYs;kI{SaE!gjN!F_sx7qfSZ zWNUnI;wu?Mk!8@cEu5NuDBYC?GGBiuNKRl+O^p$yq&zY#4T_qob-MNDh7V2W(X~ePqjS+SS-~r>-RmTBX zW6CJFm;X8mZ}UW=HfIM;g|7!@QaU2+&S`5RaZpgI>FT7L-GOq)bS`tymTwW`5sg#f zCzx-I+|lW=ksNjOaeQ!$qTz~-lWZ>6hva)Dnd;<4N#@=>>@LZ(Vpe~ypT>!iGf3X( zZvhVkDb}AFY)d>`8augq%xi+OGV`BRVX`(7#N#n)GUxch;;|rj|MT7JeN*jp+T5#J zE2otRyvhBJ-N-Xz(4d&ZtcvDKiHJ;+Uv{tAv+usWN7Nt3f84eHn+x5C&*Q4D#1Lkf ztmU3m>F>yCX;bPO1YYbCXQ>Bbt@*5uj#V%RORXO&OpUu^X59j)`UD8eaI^p$U73N- zvPaa&WsOx_N{4TT2wR3MT10<`!le^EEU~dj{k!uUQ;RfYpR~ziS=MCtW^nXy_HysP zh(gxkayP>RpGJRo!T=6?oAA4@O8OA>De(0e(p0m7XSafmQw7%Z|LO@y5ouAcIqtWo zNx1*k>d^SqM8CsOnS7XdyAHYG4(l{dulbkbMh!=eE9D!bymao z=ZqKU#jC^*1j>~Fo+Dr$+l(jv_d6x{{K}<7gcPR&2_DPbSL+h~YM3dynJbks@Q3O5 zdr!~k{@$rU=c!1g>#|-$CzFT11*Dwt&mxPGRs+U3w9^ydbIO~43L(LTR}y|}g+Kkc zp~HLi)OD5%?c47t7qSev^-p_!Y#&VDhCKl!B^FkuTrxK{$sGFOxBL{f353=p#Pm#6 zcY?XM&)yt3!10eFR!$ubdi?(e(r^XMo+@xgvu^(i%2^pT4D<4O^G&(9!v$!#LQly7 z$01MwtqEiY)=Slq7|>3*WBt*yRf{-uWH=dvCYf5tgm_tougaRt z)q0{na_>gyndMjU=|M8pEcMg`@Te7<3O#|){I$a2Ns)%IOzn-7%D`TvN=nel^#!03tC}zv3 z9y`PxAl0#HT;@kqT0TA_pH_Y$s~Tb5nD&vZ+G$Hys&^OY=ayuWzBav;;uSw1GZTIz zc~19_G&|_uALpVuAzdWx?6S{&SQS0G|4u*p9j5?w@@(SR$0YhWXNBvb%0>Q;n{x)t z{H%lF&N`PlgF9OcIJq3(!ixq>Gh>||Xv|mln>l5IEPQA?9p!O4lNu3QtOWvFg$9B&s6K*2|;gmnHqn z_fIY(Xr{$)$u^rx7(MS$W$^5}?}9lm;J2>}U)||sM|Ps*Vv#55;363&Bl^dg`6r7S zfUP$?nRnea$dpF~jI~le5Nj1ckK?5yS2Oe}J*dNx`kBqy5KODotg=xL>0(*nvLh;V zT%+iHp<}1_r>dzyf4ix6>Wu}k1MOu?d?FP?YnvKulit+lFzam;xQ4)n?qjFD2P+Ck zV63O?^=$Pp6~C!bE$Q<-18zW9Ke+LGqUo9WY|GHEzg-qsP zPQ-ww+=Zn#L43IDo*5LQG$DUbw93KTz`(3;{#$vRDr=Gc2X$~qh|pm?=F$#)4$sgH z5=69E$j??x)~5<3)F^bsZbf+7IbE7JZL!c=GE)Dm!on#M8kDU zkHgEJ;GK3=seE%=S+t+$i0|KiQ9$(Up!`}z4rVhCqX8Ypi-ArQPh5UF5)3dYSH3HV zK$n+@eW@!Zd*Ki$`n`?$9-A?K8_E=M!%Vrz`SJH3)44Y~d5&JO4QpoH3@QgVvB@Hs zmf&FR^W9TsZl8rP8>Sa7RtijO-&Cqnh%{a@z(4`jtx=uzAiA~l<1|Vs+g3}(#QLM5 zfIBRX?`^9ihHPY=#K=EIH6bDx>C1pQ&Z?qu$11k!ekb{vhw~zPE2(Yf=I7)3O$UA2 zNhg!z8@$evJ>TRtp8EXE6Vb6SgX!ilY&?CY6nt{GS=W(DUK>RNBEl-#8uTr@#lEZ&DXjfV#e;G8{dAbPo_Xk7d%SO1 zbF+4j&ZGazRf_y*Rty7=sLBwxHq?2^h)1W-F}|7rJaT0+TWF5Jv753PzzOiXx*OWB zU!U*T9yoQM3_ILBq);{$X!NYYqAtHVFfZ|1toBtR{r(ts1bDk{iS|m}fK^6VRm0yO zl;kyp-o(CuB{>ah$Jjjv2q|VL1}b{5VrS!K>#SG}qAPo;++^EUp-JGBHdm-c7tEI} z?hwjy-xqOHCD1h3qFw%w(*=5q^ zvu!69qdXBS2|t@>t^wb`s?wzAK=UWinNtRfH6|%SS+lhW=vxL9Yf5vL`C&w4{o(U8 zwOQ4XYWC<0>#akPNt=>AYrmS?V!TvcswqG^;j}KBVn<2rMP>P^|84vWTF0($qK=G@ zgmqS(-2C>pLshlMN+|wbU%PxR@fH=54$r_YG&I3CE#M=dV>QXsPI?>Z{RDBoRcI9E zoZsXd8Aqhp*;`yslPI3NOREocWJ53X1*HYXIiMfz{7iD6a)3QkvUvF;$lR#+@OD}t zMOqH3w|g;Re?B+8Cjbt@q`0GAb#?vqebTfx`HRa+c)Z?8=Cn6NjA+o+k>RrJhjU9h z6FuwN`%acss3O4kpAqbqT33@Yl-A#Iby;FQPMSjL;mbt-2TyKH&mM|Y30m-WoKJdS z24M1hFz^EDj2(;X6P}kEPwB)HdrwHpEc}S+?$BP*3So{{89EyQ%{ma7SAYF#w_~0H zR}Q)>j?^S#xsFO8YQN01jFK7pb2zF!>@u?us}#-)G3?^+B@ksO_aJ4{SlCC@fJB`h zeR;sk(Xy?cKc|Ttx$J7up^pqWZv-aiYtDC3Im=BOTe3#0Ck-vp51f9!FrRIGzk9I? zJ?s@+Fp)c5Ch@-Hws_KQ(kOY}Ki$3Th*lxY0%q_Jt0Bo4kGnFL{xI9t=Y=_&OH;K<&APOI^|y!sz}kqAyKJTD$FbWqo{bnm5I0+Av1LVmMYwJ z41>3bMp>6pj?h*Vx|~N>QwOV49mzbK`tBKQpLXhQB1w-mV4IB;#Xv-Xow6Z`2Tm)}pT_6Nq4(ctYWo5UGoe zi1b2PnfT%%)u=&d`AF1H0!bwLA*Zy9uJ0F-ABgtqY;cV%_2o$%KY*c*ZW`aL2({zo z$LB$0oN~!hgml@+E=_KcQ_A$vv*@eK1I^3sgS`Qi<69bnno5>%|0@_Vrc9IW=FB0d zzw?hOao7=fl$|Kxim2-*o%2P8Wgf`Oi$J=7Ph$A~RqV86x-ax<#gFgb;T4hf(HQxl zeMZmMlqZufl{nuz-D{DSm3T#`lostSXJX-`l4$ z$-_5$KG#Cd{ASm|2NKTQL|*xX3&VBzfg>tIrq;Ih69T!Plm{K2eVbm~{qUDat^>|I z#Glwt#`jC@@5tMrbiIemJ_BIx-Wqg&Uiz0nLnEgh?caCPK8?{>z0SDbcFkb{Ir!0L z;AXr1w#onezLm^fEv-kExSusq8-sHf#*$rjtd1su5#;OPNxLI*eiBebF)w+srJV}F z)}s~C?MlMm^G-JPJ;DxEx5eXH55&Zpiob(<_wKZfRdy4@E{MS;sIsTL_u7kTQlO=A zV_z5oqum=)XN^$I?+QNJ5z8Yuqh3I4nR#>5mPbdD?~c-O1cDaufb?mX*{(rW8jm@C z@deK^nTvdB#B{q`bKs%wRcCJpQLS0GR}XSPR%g{GeOdra+R=LT&DHihag5s^8zS(S zQJ58yYhazTo~H6aLlbj05M-q>-5tEj7|m`)_CfwjwpGR|N`Ov%5~E@rV?;a9lj}XT zUhfLDMx3TCk#@O!0b`{?I~qc;iwcX>o`>jc$g&}Mh7O zQknv6Rqcd+ShUrcLQw`X-G@<)$c&LLge=~=t;_G@#m_`D;v}XgcXn(TekBhpP5t{D z8u=?UmIkUToSvB$pYx{09uYN6lMO(ZR0+y-=>3lfm`fRPe4l?9q*R3yDlx0 zJZ)9jf9CZ*&nB;s3A?+~-Vlr(X0TIc)cHlnMCoGsqLbnNBUC&6!bZjJ;-2lAMP9za zTN`~nf{E4!o#d5Wo9rN)UGn&qEM^!3_S{yx&cwM%7wf4NhzggfS1gFI(x*=TLXc=l z`zuSA?z|`OE|M4?p-}3~Lq}+h-`bM^oH&6Kf`rMzyzKow_GxaDaz$nDe}C42UPDsK zv_~H|$Ke;Q&FeizpouB1Y28l5_{ev%V#P*&r2g_w6m5S4Cb@hGBffNImYzQOnyc&o zcuV@%AJFlUPhH0u0=(I&HJ4jwa@0u#^I{}mbXnx6N>N}HU@ckJ)54DDzRiDdl|)eq zw=Tvs3sUxLjyNCb0-HC7iMpJi#QQ)R?GJ@Q%8i5J!+>w4%|bJpGM`kg@qVxrc$|}J zM|A7dqpN<&6o`Z@i)YKvUoBIWi(^$iqMX^$xrfFs9j=CZwN@pIH)TGv-U5P~kkxvI zadI%|SadGN+JkS_NPdogCAKD0ceUOvs%(pUgr7>juu}L;Y^78lT~g*QN#@MZXIQxA zokkf4r)Y(x>Ac!ZpxAaWW-^hR16!l(^F8K~j*Gn4ZriJ8_6y!Czq$?5{8Ysc^wP-< zygX#4q?xcV_t?$Tc%O{P24Kdx-u#C}oce{+A^IZBXX~zfHeSp9>H8=s|qjixFCY+s+f5kHsx0;9SW}tU0*U zvz0)L;LXsBKG~mYN3zlMLv}g+k>bn=9=|%XBdl0p#D5%LxuRFZh$E~}Q2E_k<(6k6 zTn&rfZ42I)X}H2*+}(wAFZGt&yCnKe6Cd5MBIGK8J-i&vEuIORd?L~Y+kN?!XI5#1 zgS39}L&iRhH2U}~zE0&|D3jHzKi=gj`y0Tm2z6eKrS_uf$c=@lk*kf@1Xw^FXZwkF z%U%c(FvmB?NP98gM_+q=W2gN( zONehe`*rN7TggJQ0;~Lt?^Iqtda_34qth3n-ir^~qYZ27`(b*P!*;t8F6 zf7L=!;7%bU*XYy8Xg(rI{U~AhC%ql@86J5Wmt_7RfWW|zwy|GH;Ghed-Y+f+aP7q7 zf?oVAU1$;&l!Wvi=s583_tcZOs^7#S8MRchppGqOx<|WFOOqBDvudG&t@s0lH83!s zfhY>6Xbdbl%unUDp}8dAtG<@1n+Ija`J=s68{7=#-TBW=yO5w-m{^vMi+N%C)~CUMWP#phO7t^OjL!h5hdq8XJRkip|A9 z*L_HT{=cQz6|lvZ?DL&)BrvS^20x;Mt>Op(LWHB(^g-^{zXDw$CuXP2HtP zo(UCc7FoT2-Hp1(X7ly81>J`0qxUa@{>~_H>EqzvFx~9mG?wKq5mPrX`Kywk%WR9O z0II!zyswU57@lCYH=iwu*!tS@5h%6geTem3i?Q|CEPBmYx*LV2N`veSHm*9+V4Q6h zc+ALO+^PX7YyuRTG=|Tu+Jrrwh3_rIs|imdC=z4)JcSLpcNkTRhU&h(6(CfouT-`p z;;^s(#LVdM+lNIpp2*p|u3c82U&6Uz)Nu8%vwaB6OnhaPLt8~KRMoMt+q&%^uz$UN zLODS+XA5XiJQYxz?M9T|Z+!Op^d1b%_A^HA#a8HBGHQbeElRPTIRx+P)t`bvG^`E7 zjhZq9C%^wRk#aZZxHG65V{)+^3lZhkM+UR1hd{>U;6&%+M^p8{h0)jx`wmTcD{cch zI8O7X@kvIDK+6S#q>6MyvfGqyh49F$XG=v$Q5$5O@8!Ibg_A>|dVN3dZAMV?q>Q&m zJ#O2RRM$@o^S^rJ!`CBF-nQnEMbPl9{%nPeE4>M}bRJZ?C^i*q4a}rB&_({F_xY0Z z<-Mqk-C~BfeLK|gTu1i^FuB|IH@h~DvzVd1^wz9#?WKndl|cui-FUvmXvxqFPIOqu zC!_jY?0i0tVSANUIUVYlaorL);ThR*ICxpq*7hq~y2*I$AX(?=Qp+fZN4{^ z-_QPpM!m~!w9?%i$+E+y-(IDdv)sC0VqF#|1_?#X{l_-BNzPvNuO#T&0JIOXl+677 zu`Gg0By#4=6?a)6!@bh?L|J=N)ZbLX0+v2=GF&_=)Y@KDYI}ypK(bwe5BK(5f^TR5 zE`aMV4(l$XDr9AmY1CeS3d4BpzxKa}sGE9l=-eIGw0S)*jqr>9{8e$9fz56|y{R~Z z&X@L$t^GR}0V*dw-@AHH4fLU5tYp*u6F=F98`4XGH9@B)g0j1#cH`$hvnGiQ8AHBNOT#c6oL2{0Cj{IHPtDbr46-ZjvFq z&?Wm!fxYW9eutP+LU)wj0@?OYM>OM!S4TFm>};zAzP^+4Ien+Tx4K7?Gy6#7kU<1) zR=;?a(h>tA1eb3<8YI=hLzAA@2YugiJwhNp8#61mF@KyCx`id zs3zE~ccvXasA(UR9523De6s9>o@kbAk<{pwmcLMFAMzgV3v8J&*f9k$+-AfAy&tb} z$@Eogcdi^}R7%qM2LF>LE%XrUSC(ICG543cml6@j7T!W=cm!K172C6!pB!;Je#1#ikyh_0N;1hMe2VEl@|(6PH1P+rj^Py99Sxa8 ztdcE`=De$HdtaFn@{eTp;MG){uFU3)Y7`_lvElV&87y&@{A21B$W4Z2eZ-nKE=;wYNynv@;xyGXNOyl>hKKe- z?9-j$ZDG(gVhVJ8Y~pX-S9vT4Z$O4U@v;9DRAA;84vbQNPZ#JR&;EnhH?d}yX2Pvb z&^p6Qx|$r?#WByR7yI(CH2L3V0jK0KDbkM9_&03cm@kv4W;Y1Mh)sddC^11_Ej=7w zev@5Cm1AY*v-4(=gmnad|IS*!uxp7^yjasdsZ8Y*5r3 zFy*0MT?%MS*bRdeyc>7JLrSl$TPk)>!$+ek9h3h5GKJ&gomb1sM*Id@JPq>OnXE*% zWthB_S#MqYmfRUfRL$;-)_PF`O_&5sxIU22$AXCT^RD~ondV2sJZSrbC5PZ>zz0Zij}o*jtroHTsubx#dXVprQd%S z0o^yata%!We$?3o2RSK94RPsP*EIyv5KTJkf+8J~kf$61o-L^QgI0zMs21l5w7g;x z;0IA@fohm~2(Ko?{;O9uDe7Q9W9PE*x8+xo%B!L-^KN5skqgnK1jaU?_|)bXk(5}r za-oms0_W(1W)IcyIP(k{C8A-1?BlY9KYaImA3u=rB{ZbBbZg?ge{P)!`HkDlsHGtj zaW!@K*V$`XuO0^k-g+&hpN-?-(Y9Vo%Vt4O2Lh13uCata3{IlLOPf{R*F+P0)6NLp zk@2vRH$Sf`r0Zp9K28cj)%m_uxlKS<>ze&(ZtyWbbHJ91TR5Et@B0UA#N$m!xBJ)4 zJD!ybrCKj5yI4T7l&?P2qmP$=(Y{!7WOd)_y_2%`sV|{bWFm7=zcqlx3zveLYvMLupx)AxN5C)xoRl%dbFkPpMVLn zZ>jN5Ce$vMnHHFLS0LCO{}q%^-b=3A8lMbyrEWL4`~aU3Jb#kT{JI|=7k}_MgZzZ@ z3)uWCCHoH?vDV+;sunsK`n8o$#(d%;2$#gjIc7SIZA8X~SI|!!Cq~aIDmg^u-Pnj5 zCRNvfvIif7tl_Q5>0FcYrpfY9D5Xk5T^MzJ*ysAoiCzP42XH zhCQPq#A{?1bh#Y9J2r?Sz>0wFs(iKmAF1nmlWROFb%hE20js23EE+BqPH#8nR;mRO*%OPF7ALa`Vq$^3K(LD?lqUpys zH6Dh2$ytfh+iL~-_^lq|xp3T~;FC2E`*WSKcnTz3ys$ErKA^5t=wn>e^F86zs8SsA zP@04itlmCw&bZFy@j(0_2T9csyT0%b>?KtU*7RZu(peM1-?Lz~FT}Nb^&BVJ8iu7C z5i=wB4VnnUie|H;x@Auq*PsoXDtJQN*xpj>={fJKM?T1nOk_S&KJxvgU$o? zECKa`vWEV#Lj8k5;hNoLcSQ^?{nuH_=9ef%$Q>Qv^ck|J4p~!vIyDv}4V<8T`(A610vHwC)N?thAQuULTk@d|9hguhlkT+Ijg`h!E5PTAHR#8+AGOj~zsWy$dDNmOUmSpV_4N&+jlYzVv;OzuTjz#sG7Wj1ZEV zC;o94^)XxcYac!NFT(<2{;u$_-xj`+W3_O#`!TrBsxPoA#LqTD@r!!gvOk<$7fxFT zUZ!_UmI@CyM7wOQ$cy`a*pZZ-Ozsqe?3QT#Bz$zjw#2TZ5|7SBRFmji&po%c3ndIp zJ&rl*k;100Q40$7KVE7m)-Y<>^rD(E|~pNc1i=&hw2S^rt7aZ92ibB zKnz3|k{TG{0(gC|Twz0Y;^Cm%9&635rU)U{g?&;H&i`n}HpN$Pq82 zF8p-|oV7oYq$B0bT+I&WPm~F32q)w}qdh#W;J5<{|sAy@*xGNJ*(z zP0*x?KGuoA`H=~B?Qs0{s9Iw4&T%8DqdY9&!?5Q3)OGuKx}M53u!5D40$5*weVGubS|XT!)0kQ6e08ptsvr7 zmuvGk3shZqdnm45mwj`VkQL~!aLVBxStJlUQD!M4tEW|`iej_zvTv%4TjUWIP?3Gu zA!PXZFP9#uG5Bd4YV2W@0wuu!!e3@1`vwz)6};&tno}fuQmU?bqCvCyE#X&$K~18k zy<1F%6!gzm<-=6fB*&AN4BN@gk>BH#SZjwX@7&>~UD_mzcD4IXIUz1}Rw5s|PMfZ# zZOe*rtieM&*@wpDu2*|;XQ$cIrOKY#Ye$#ZDU;n4aRIb-AH+v~%kp*gLvzB|eRT@x zvzmJm*WC9vsQ63kdaVo1BC+3fv(yQ7QvnHYhPD69!Y8;Ek)N%6e&k3L z95Ln1iZL>_GKZ3B<0j3Y)5B?&{L6#ZJR0gMZ!Wd#RG3Gll?7L~ffAtY`ej3e(qmhL zXCbrewdJ*|aw>6#XO0&3OoiB{1xIR~raO*kB$YhMCewx7IodkzOLGKHMX znbgE>O4^GtoG?m%#z?ekN5YPzU~Y-{hJANy{WQ6Q?xYmzQo6kXJ``g(a_Q1DN56|V zU^1Ob_nBbO#nh)Irmb^v%d81ETnik~cH~ta!i_NLhvLz}Y2jH+vWimfyO?5;V$Nur z^>&qp-`cQcxHhA8pY{-Ks7QRDH)bKsZEv~wh`!%$_zmP;d-3HaXupjYTX{QvI_L7L z#`luxw1+)mx?(gEFO>u~@v8R|sS<$eO-V4SQyv={VbgNvJUrld0*1I;U{T^6_;y={r)+Cm1s;JE&*VM)!)($uJx z^de&w-ZiZg@0q)Ago*ZRtO2Pq@;~z;TXdb4Et5QBGQEpP!zH*GCrj{ z;q&P@SV&kBtXhxZXcqlQ1kggIa#`Wh(E=)%xd-xAaSTY+t-8{YCPVCWaZ`+!y=<{{ z-Y_tHSOPw!M|bEHjjdnt#+adylgy?VR}jsmB%d$>mZoU&%ig&VIfs()hgE%cSW=hR zR=H$v#pEvF)ztdrp(msQ@U^mLII!(N&)}$KCbY8gSEZ@SfONa2Y2U|1a`}{XN5_uu zcn^k0$MKf*r)Z2l~c0s$~iP=IKGlb6|{xUIOAN(^F|hq}qD zM;;^@cQFbw$>cp1+ev7@C<_$DD-hQ|1y@RjbdGYtxpOYC@y$Pl>mjU}vQmkX565f} zy_*vUwK+&w%w01>Y7(1QIVv>%7+&vd}pm#1O*wzcST3W;*+p=t$k52L-exGg)mFq5+ly?cLp zyy{5p=M0(Y;!iC(9-F>)6zOHzU3VFw_Y)6(Yg{|j?+wxkEKNc4fXN0n8Bu^p&mHDg zyr{Qr++uRd3EGXm2*DtHV3*3XOP>a@znL^m&s$<-whbTO_Asza9EuEasm&85&S0A- zF0fW2PO!T&hkPrJVkrJ#@i8Z8#>9F-v*V#t3pub!7e%1!Hf6MSsJd+xaMawIl-1)> zKK^VZV;*WGp282feB+h#B|YCC%L*HL1_m0UpbO82FGd%Ax6QomTTit3JLony5Z0IU zy4%=*VwpL*JSry=ON_w|cVG4Nji|uv7!iEC{slaicgeYv7K#9oi9#Io_ z-4F+{l!tQ{g9xl{pyCi*kK9qdQiZ3ZmXdv9d<=$1EAZmjU)EBwq*z6BFIOX#MX5qP z3%CCD6npW)CB6Cq8o7T47E~6PmW%Z6w3!D14W&vv-&zk$ z%kJtCVh~A=?Gve-}eX6V! zW|{LY+*lnx3mGS4GKbOMiCN&{?#Gb`;Fu=vmC^lv1wO5eVXKe+)5BpK{KY`(e6YEI zU|xZSw(-QWAo0A5#^Q^=USB>g)TLtvbb8f`yWkc7=)!C}W3e`jj%AYMnFplLc#+T{C%wWf{8o0x~rh zuV=mx+Fn_yWmE&z%eG7+@4p|NG_vHYu^H{oDFQXCQI0CNz2m!@&cDzcxpP)kF4_0$ z{Y3lFb!folJXu-ky;q7OxTW#@r5OODX@b`HEjEEL>amX0mdT6m_S)J1{t48& z98Mb-9&r~$D$7*KckTMIj8VSnmd!TDkL%N0la!0h#s~CU`Flg~n(xI||9$MW1LzZ& z0Cd^Ipxq2r>Na$~l-DrKeRE}I1bl1J#0!GZ#tPvx(e)r*`*h7zb|%n{!zvvj8CXk) zm@!_P2%Iu9_X8)0FL5vf*L+Je-TE1qGDxbUMEisxszWZrC8hp{9yqr46criF7Fijh zKD`E7QIKmk8Ox~G;Lv_3c%V1P=u#&#B@BUjEJ}TlOBr!9NORM2>cDrd%k=Nqmy+bw zey01z{pl{G;n@+CL1gG>Sm){O5;9<@I=Edb-~=E(7u0K8X0+qpggZLJxLsY!Jr+Of zauXbII(2!zpwBsN`KZBxNjc!iN`8x{&@GS6*~Dm2p?8LpG=ys`ZGuzp_XyuMD=`VL zR-PooI;3bEn8!c|7<&JX2_TzVD|_A(ixa=yJitZUR@lGvX~~k}3Gy@-eTYiv-({7~ zCPo!O;i>o@ahD8mk_B{Q7dP z_{7D9^tU8IUG|=}uk6vi9M^}_SN70o{8-FAo3A`>j^SLgTe@8wnX8d+nRjl% zlG0^No-$zJt{=P#a|LCF5ZNJ|+oO1Ge*aWO1S6V{Z6 z#%1FAIrkjFvbgt`XN5RaHP*ys^0lyXpaDvSrGn-!+xn2hHSBkg`EDeU4YyqZtzJqhWzx?6AKL9Z)QN%8mLs-FU{n04@yl6aapthkS{O)*ESB&m{iT1@BLwVb=bes6WWo5m~6;=e> zyN*L<`tRPsZmj*#z}{!= z30VY{w%xK7PByivYr6zi1-;3f57--_?`hPnd49j1o(nY@y=`PY^&G8k9{I^Az>~@$ zK=tygkSsxW|I7z*F00NIve374@luZg*uODW-hY#I81kd!BxVS_w$g;=q=PEV^l%C0 z3SGpzw`bwm^@Z)XYSO{xkQ{SqPBFr0`kZiCY~Np@j#DdToy@qfw!ggG!uje;K?|fd$#geD2>U z4BnHRC;(vEWIkQe6m~`@*!FLyjB@)=wH|{My&aJx|5WQrLa$jZTQ+mecx>;BI!;*6 z&mRS765%17SIb?eot>g>kdN7=29+D4!nU4Z6ce^4yThOo(LW8}e{cEwb2s#_&iw{o z-=E1hXV4IiRTvQ!fi5zrLTj{Lmt;!BYlx5)2Oo)qHbb0T@+ znyKuELFOUXI<|(;l$n<+DYJX^)oxmy$mvviG=6$=RkYa;>{x?>1jK-GiCwnNf%+XO z-O^h>^-SO%>X`KLbaax~;?}%)c}eQvSUyOJ$cPBd5Rtx(y$zr#&78=3Ym)#%CLKG}2uJ8FABW@H0uR-NI5^kRP1 zY_4l2t+M}T6&+&LkS`lq*P!&;NRoOoJcN}XL|2oHbPPb&;D@6rzdr26je1 z*4_+?{^d5`q9kGVjUMtycz@!K36f=rBn|t{%Fe$pZ$IB+PTlp`P5OYFDh(( zqaPN>W|0A-_lo87@zZAc!>?s>P##9z6KO^OtnhoLsqU?`{VzkMzX%l2??ge?QB~08 z^EN_tO+a0nr&Y~WjYSqOa;PeIMzzcG>+Rn^ryd0U+^H$C~#KwnA>PTPj&BDW`PpVp*|`Vwqxx_P}DZ1k^yg@u1p*T24@{iSJI9DKWHTX!)sm8sh6;L?>nP)j1_Y0qCoxGgAx#Q?y@IYufv zvyxq2rs|P7Kbz33A;*S4?Q8#bdbRx*B9XzrdQ&c5^leI5L_0+F4^%dhyYS-uaZCqa zRtCj{Rhh??SzyyH1#9!><;e=HIQL4$|3qYVgR{0dO6X8$NLhVe*VlsBuX2w4^uwq1 z3C7jcRhe34LMkebH`12^u;94hFTWIM_2hoxKh&)}PYe?C4Y7K!K%?}1f5C-x?75Ux z+31Dja#5AI9AgrD(eIMv1SEsG^8*9EJj-$!XDqosq3>yGT1A#)B(E_K$BcQHQsQ({ z|8XgS+TX(TOAmDyAb)DOAos9UiND_xVXDw1?kuFn%y@h<)XX_9@C1fN1mC#$Z*JVI z$*IXm73+Bj@@`(`$Gvpoh)P9YNaHf+EJo!a1i}7Ef%E6t@536FhE)-w9Ec!|%LwY? z{3Sw5mAX<@mefIa;ryYK1-#<-!1eLb{$Ktb*n2L$67?fK#s6Ze9ks*}?&KJiMa1~a zI3UbhQZ=5h$3y@IRKk{Q3~0nDbJ(~d(`Wm58XuO)pNteO{`Z6L&Ow^?PTPhLhnQbyPO+`KYiFMqkN0#&%sb^B``LuGYeH+7e?0gJSt@jwp;K!3d}&N( zD}zDZ{n`SXecF$JHb5Uzk6>mG>xM07Bbax;K)>@Ihcz)i4`z$$(00R#3Skaa!i%Ws z{xQ!hUZw{zezn3DLbA|Ca?pU!(AXx0F2o=y?^lie+Zj+K6j!Yb%&4`jfM!EZV>3_- zZ-i!=55=Rz^LGd8jgD=WFTy`q;LTizyeQWy&8FB?|Cz@YU!UbX<48~5@1S&)2ky3*ZQ#Fv||E0N02-oN;Y)lgxd zu=_61nlX@h;PHPO8ESgtKUq#X=`l_voesF97#e{gnCQWTIc=;yr4xlL*#I-if&G6C z=PU+=f0q}PKrdC|4%Nj-Ss2J6Ext5`F0b-y;l~R86@*2L2?0+I(#(aWg7o8$aHQm} znjruw&&a{9!f@g7IQC-5=b|wA9tYcVmf`ojveLGxeC^}Xx8s3rTpMt7slrh#K63Go zk*Qct2_=RJxa)E)^2D0A)B+x+&5Wk}dXU8Gw8F7vKY2Mr2Txm`I-m+0LZiE!6w2*9rS?%kZAw z7u+7<-QNpS-hDH|mYK;3y+;V=o@t%r2RY(^6s~O>xSg<664Ivv;lx{1259nr8`sLR zBYc;TJMPrIw(}XM2mE6?gxi%o(>{2y^-dRKVj&7KxsVNtMWlgUv7Iw)a>ET=EA#+6 z=csnt@Z-BszQ`>feT5c1(Y;q`r3lManY$MKXIQSh6YKD;M#v_B*w$E+CcEw6YP`Q- zG)&F|4w8?@B#rz$kZU6j#cbwW-4CLWE4Om~8_9QGmu;72ET!0lbE6QGb7~gc@4qKs zF!}xr{rIKLZwrUA>kt1>alG4n!C`6hiI@NW@GKG`9q54R!iujj=lMGen0KEyYqU5l zsyJqhkB7cPhlU|tD-~~kaBI2Uka{r{gum%d%+jRhD8pr}n%t@*Bp)7mJ;4}1sA}+q z1IIeVr?P`+e(Ru2e9vP(J%ZxDHwGY{>!@4@`Ab@$vs%!R)$WMh*FfFuD|dS#Q{^Wb zP6#{D*oOp83?+b9x$rFal1K3GteMksG;M`+6SEL6M0p_5`@iSlOKMt&loEGRt+Z`% z+E3q27wPbAEzGWS+yu{0-tiX`{HW>53BHw+Vhqnti%x+Iel*D+d!pt_8t_Mk(2noR zbL3YpI-xE`)v3D#4Qq1umRhr|yC1Hcm!;*MyJV(yv3fJMz4zirEK+0D{`rB21SJ35 zcg~v$t;s<08Y=`Zfy1&o_21bYmiCGHkbLy&87V3&Cd<5JSGd%-jvM9GRKet#`9DMu zMt9EZG~m<&<1jHuJct-%u+@O=Quz!f$>}z{CY|ZQBil0Rt9W{qakfFF+8KlDlR9;p zY7g5_SkAn%z;ptZrtiDV0%3v1(5|_oxU*vU#<3sz{D>ju&bP`x>VFtK zW&Y7Wqjdp@9Qj0rRwE2=kzA-JAyuZ`i6#+xUn9^~Gu}<}Tre?HEoVAq%IZh4XYLyl zj~D=Gd{Z5Ra<9BwZE>zI4mu9-KWv&^poQklcs0r*KM1wpFZ9}b<7EgO>vl)AO#J^@ z0MOh(UhDpoSz0D^QrZVRH4fr8cU97@d`%rH6Ny8@)6z+T%}W2BMc=2H&vd<}ZbJjjF0i z(GxvXrXuhpRa=oX&Jpe-m%P|CR%Pj5fG~H;Ocm)JkM29ClaXtrjxLA>3ELYIvETtZ ziQkmm=0k4yoydyTXU`6QiOVV5Bv5z2ea7Cn@|b+kbLVn+v~i+ZQs10c>|`2HTMv-- z9D|>j1ux|I?kTli-TlOJla;1ywMp{^2*8pq4>jY2>xIlqfN^g|Xt4*;L{qp7`;#T0 zw@dYsA4UR&mLS27f2$$rWZ<0)W=tVZc-`h<=LZvshpo9zy0DO*Ad$o44qo2G1W|)5 z>j<}*@vRJtiqR>Txzj(zZR-a0Q48Iqlb^!c)u?}Zx)piCm{RXuX?KkLOnM30!KhvK z6~~7wV6J2P?e4VKtdt~PinsnLuJ-Xf!wDBo{FroXH_m5VW3LQ?d$$j-3gLN`BySxA z-76MES-D+Bj)ojyrAp%^q^5ZqhEJ!s%J{$KRpQV85f5Lke5J1Ak)OR!wrcv@wKaxd zWkApAf~MAiu1Hh#XMd3vbhDmWQ{MIBTY;2G4ZYg)SY>66(@+An57W}WH*yD6&cdDq z`SgV_LkE2}Vp12_r33vj6RFb6()ay$UJs#_OJ!l7dPw+iCrw_m#}F!XS7h@$)JKwD zX}k`erSB=S00rxQNiN>zP6@bEUHU;=%`ytv+RMLzVM%V`B6lyA-Yt`>XisF*fyZXa z{kVbI)|{aeLov(9=|&M&ThXNl5`t=Z%&?T7Zd`R1xoHZsUwea^sBfJ@1>j;%Rr!ls z)rZ@)%UdeDbnPd~u7(fo_J&BC3edDhJNTwhnCgEGZMimNUB6TyO=SyAK@C=0A2e3D zuxlB=gh=LRU#CoL93R@(Zl1NJ0P0oj1L`5}k~(oqbVaB1@7p7Sr_zxEJi9SQN_uGd z^JQzoA)ZOL2!U_zO~q~bQUAe@>No%L@qL(-)i&+Fypp=UQpPGhuZ;cg_5A(92bT8K z1&s>BtjAm}amji~OBQnv(nC}J%_|Mbd{(n8z#o{vkN-DndnOnRPST6+bO(*6g1 zIP=CX?|~+v_IQyEFWgOqK1g0`g6SVm!sgaR0(;nsPrCxat-`WOzI|5_Y$+TTQJ4A# ziN;!X)1?`omf_rakXQa!d1?3IC1LYyDWU0ke|{1CArG(6L+hB|7QI_w3B)Y~8LdAS zzdo!ESrS!0FducZ#>6rmqUnDtf1bDTP|p%8XMdGDV})2qq9N<`Vk-(XP3>@gFD~!< zNJW^PUOf3CXM|gi7v_Jsx%qo@dow=+KZ8R5EqAA$ zuV0ooi)f@~4l=u$@8tGr$NSF~>W`(t30yXu$)g$1ao5V`lsRc< z6BE*|szirhwT{yZJBPD(5$8EdXg;OId3IVyl)sQgZ5*mdqfE%P`}Z=oA)r(zU#afx zhJv+iX>j!2bW;0$GHkHHY)nht%#rW*@V7~`58R~jcX7fqgp5FrDklzJBq4EiVQ656 zvLWbqABKWDd>}?)X<*~Y>`QO8eDZ59_7#a7t-@cPXH2u@wM8nJM?d3DJ`v(fcvPcW zA};3_0gg+_tjv3FGjt4}Ru|#WDE#C|up0QCVc_>elsMGo-F1dQ+Ew`o0-TKUx^-CX zRVf!>+$?QuRgzao`?MJP0w43`2Rk8C5#Ra{d!8V&u{~HvGIb&KVKXqJsU67h`oHXd z77=A~yd=_Br}qY^+;LpThwj*YuxI9E9G$Wi3Hi8QPKH^{k{lc0ygg{wa&zPUeg0Cb>I=+nIl=fOFX7$ zF}sRaOTsKW*uI&0tMBc@1I?O-40!iDM_#kGUgd1$Lq##MK>su|%qTI(o7Ah@U^|(8X(iiNNw#-Uutqmy=md zZHif-R&U7oZa6roOzL_m3U%A$zn)ArOMKcqI@#R%7C$3PzgCtjgp128Mo(t5u=GQ3 zG&4!x^P{h6hsQGU?5^-7^r&eHmQKJoYbw5Ten2Q-7YK$F^ELmX_2p0Lh);Rnji;qD zWVrK2{R{;&pG5tKcFPn)mF0XIexoCD{#PJUH(`$qr=2%STySC%!SACijj;2Z&CdBe z5cr3Xr^#`OPXd3aEzC8YFVO2f8+7n0<`A2F(y#aaYk+QQevXs(vTNKz=%AXfZ3L_s zk4P-E1T|*E5xC1KlyU->Q{@@A#+~lc%>F1`|B^-#Yk8hsbk@bxb6fG?CHxn+`L)fk zs<^xC7ye(bY@GBOYT1FRLaV)MvZ8FR^%wU}v~;>f;6`HKxWCmi19@fy)s(;YJhXqb zs|-@@==XX}r(~vWDq^T0)QtjTm!V~I5XXJVlv*&=?MbX$SvMgI)JV)99gS{KMtQgU zLju1j(;TcAY!aGzb_LB7TVdGZXmSxe08XqZ~sGq9264U*5_uVsYN0_1qS=R&-v3 zc|;)Gkb1y>6;L;jL$eAAx`>ecxoxHpKI&2GF$?kSs~KaEI6}YzmK?Y4p4o2Fm?Fv( z28u=87y>qgce&u(+TVM|Zo3p8-u&dsp@Igf|(bVRj z;1|qz?+7)iTCLiJZ@y_TVl^1G#z%Ljsg6b;n|sLrnR!C1JS0;#;_+=u(pp=S<>5Cgveo0`dPEPgu{;Mc zg&t1N$nFOV8uafP`c6i?NW0wH2*OArUBfetK9KPeMqU0NvDs5J(L%geF-l$KGFEyR zD|4U7@x96RLZTX!M=`IG`M;`nZ50+1vTCP9J9rfbR!*@j%>DWAi16!lw7V7h2~GHm zX{DF7pI&lG3vH9?Qq5?BYAWYc87pKyqbxMlSSU(K zEc#VoclGS|V4d^l7?sZ^YAA+}4I0kU2qU7`XQwZN?0~Rpyy))AmrUbYEWB@Hxqsy+ z2}KJSm4JSBu%(J&S?d|ud{cYC)v+mNvzTFOtC*xaG~a2qh2ml+CR!80qeoY?uGUgkaI1qqtUDX zo%Wf}x$Z{=Zb^0vp$2#R{T#0v4@9$ceYYC!3+%SAe8~m?%pLCe)sj-alG)KP zd<2mmU}7EEI;z|wIb4v}*^#6|sP8-76-{|j;2^RBx~BxM!NM#-5aWIEQyr7~%0@B5 z8!_K4M(3QD4oxS>^WKGW~E~W?xS_^t*<_4`-1R^U2plnr8@inmTK0u$XZN)5}&VloK$v_ zc+NYSBxcQ6UTIgQ@F!x{H~%)>`e|y(DW9B4Nbzqes2z((r!J7>-h=(Gz5V8TP~Ii7 zeyW(L<#vQwyPDF{#Mi>8$goz0cxAQs78;z*W3Ka@sW~-$O$UYTSn+2=5P;h{3wsW_D1gmI3D=*6-(~l5k zf_i%2W*(uRLuEBO)X#1|L3yrwXU**5f-k4NF7`NwhxT@pZQehdHEWFYVUaNi&rDm# zFyT}5{o`j9hLQiS87nG$Cd;`aO*2FPX_@L9*9Ko*5C6bvYHZh=Pww35l?Gn$^9+Yr zKx+PL1AXe0ntbzMl80l7-UKvh4>FKcj;LV!scIHIJ*3YkTEW2O3;@$lVbxo<83<~C zI`lN9dd8VO7nO#dyt6>D92lM8kk$@LPQPnVG0pSSfv=3;pT_daw*Akt5q91rVVdgt zdm}piaI)Bw;*lE548TkWxtnLrS}z<+5BC4V^Ls8;gr{m9w2{&Y9cbf^?6j#Y)`9uz>E$=%y@eCHY;#C)1lkI z=|H&66(qh8<2S%g!x0;@(7_uU(>A}W`2}%OTgrg_h={w|7JXY=`Tx{tZ;aJuFLuj& zkqX}N@!q0#-KN`WNphgW?lxxE+f_R44ndpH)_jPYZq`=jaj&J4vkHL7;~%dLBGI%$ zdPAn#!^ye(Z#ctRSpyPRXjewBS0Um-?!oW^g&cMHxyf#Ycpud;A?|nu043S z5%qC+`q;ZZ%c@WRT+K|5uC`@eSf}rEgi;y*H(gGw)$cD(elxPJ`@!TEmUe1xy51*@ zJM^2+*G)JcHdf553B^n1`1{MA0xHZ1Ro3vFG^i`eaqJHbfsFgl{&iQ&4ivxpn>)Kz ztR@W^C0QQ(ed3M9n;cn3J%@(s*AM{3yw*-irKu+Ei`%A zcr!V(cV5%l*T+j@eb9v}iNzEdzIMWA^RMwww6*SRYf@`}RtJj8d)`*Bj7tjWw~qKz z`1Yy59ZoWe2%E4}AaqdFQwb}uJU7Iwrve;<&k+D8!2M?jN)OsogEn54ONYA~QdAb0 zGV~KYex0o_8XHsTuRXknaWplnMxF{)etGAh{B`?Vn1(|_(~-p^vRt|t_{=jUCYW=~ z2c)AO@}ql6dR*5ZB6>JTjjgC2oDprHaFm?n*IM%w2$miA^S0$tfROUsGlnlqPI#~n zQ*lc~;V3TOI4(st=wwoT@8>;J8KL{Qv%QSV&Oi7`KWGB|R#aj~9PB((i>xaZxC z%en=fj8x`&cME1Cx zdko;uoxcYhk%rR9lLwr*XP}=mR=WKPvpVFnUD<_p`P}q-FRa{O#4V7t zySFU`uH4VK+d0RtA~hN^#x{?fIk$qYK+T3_ zS2?JUEp~WVnY=%a1CBA=l>C&9R(#se9xSLn^;Z+)v8Y$vK}E*CmdPo9Mdc``w5&XA zB%e`TRIsgJvM?!a_fgzMKAtSy=cfP>Mb6ddMofV*6=GiLRxKX8UPe`Au%&49#9RPKgwT(&CTEz}vq2i&q9o|-S z=WmWtxp}3hosIX`dv1&Rw~W_7PRa5bQ$zXXhvISO?rHjpP3jb+6~sy6>GB8U0g8R~ zg+={f_e_7FtvxQ!nD_j!WikG`ilnDMgg4XkjKT z)sY*%&AkJGO&7VL?9IR_r_%^J=*3J^YqyQ@^yqwajhKY{H@Wubpo8Hr8{8(`x285+ z>g?YGo<*v%WhvKP1u;XA=d*3A9CdjcsRohQ#CJVl`yYQYGuxHBSxO`{r)ivbF$0S& z%)F0VMD#_iUB3IgC?T8eNnIiyf85jM_Q_2gk8Q~KYPqrQvA?|9#M~r1Ly_B^l0Pb0 z4~Y*Dn}(m(havO**zhjdmOUGI>dfjxja%L*)3R)4QPbyw6Hp54Km zS|P|76UZd~!aPGtB$p=`#e|#(c&bOJxZf1i1#fwO;qIzmEJF*vn!y;{4AwW;K?@RB z6(1n~S?nQ$ho8UxS;6hcX{d_@G5u+~PdeB(18P3re#Uvz#~KNEqix~R-x)`2+#D#6 zs6zkty3U?GU&wSoEn`L+fLHk>^?d(xi(R&fsk1WRMHTmqYCL22w?0HBHSmRSjTw42 zbUB`Zgx-Up$j`$2Ip}PiPec_NAGt;n;i5UVHEo>Y+l-TCY2GF$d|WUc-Y`k;Yjn4( zoMm=zg?@1f)M4vsWZRqP%y3a=x=6=1K76%$x!*m0+U1hC3uN|NIH>6{Jo?o0p6e-L zZiyXcw*&t5_RNbi%NBWatF^l=QgFx@gDZJV1Y;|{N2G73eg<&O_6!ru12L6 z4VtardzQC`Wk;*48S9%E@zINJhD#EBUL<=}&02?**3#-htMPo-)@JpR<*0MY{74q` z`Xy(e`&J|>KZuxjVwn4g?3$j)j5np_i#WaVfYDLiUfFO_E4YIW5fp(bX{B%;$)t`G z^Hz)_BdCTDk-NUr{mLUjC1E^4>n)^-5htcR5tBa?t*2YgP%smiF@SN#z62q$kmGpF zy*%&jXwSE7u)_PE#J*alEXW^2cG1{T#&FayW&i4?h z>pQfkb7QWR? z5|TV85T16*OC7cces(n35$+?V7qBvlFeU3s1#d+~tx10s(l zntxop?Kw+{y@*1M-mm9l^M3G=SaO=E{iO@tc2IBOSgdwrdb%5e=H5hI$vBqC)v-l& z%S(S+f}%d_itC61wYbfC;g&X=ab4Fd68CwR%d1D0N-)}1U$Hxgf+SHh!%ZADu)A@z zqO&CIYdE{cb~V%EP*@>^(S5m*(N6e=eD!JrFfkz6FVVv_<9URpXf2|(4++;cwHc4tV_$vZd2wc}^pG>VtoLQh~`?2s#6}dz+f&9=DE-;xq(Zp)tK>2A2 z=&I9xO}lJA=9mi^EF($;NGVU1PjMESviCXVTecLHKRa(5PUgvS54=!4?y&;eiv-Sw z0rpDOx=V&igH~MstxmRhyR(nICB6{{HfFHDUhYw%2k!u0(k~5vUXo581aH;tZ6E6Z zw^NVZ7xPhygZXiV`l@?2{mb`sSetpJcT>?!kBn>L8tyrRi9u3B5UB%VNXl0cxZaRF z+(3ji-wOQgLI@Vm#Ww(o`=YBIM-UuBGqC)7>tvKo1hm(g5c?BGkKc$Hxepa4yH6qU zsZN#k_wDyuH@-_8HoT0Z-2dxmaB6<1`63LsT{*WGdixJyrMX{DgthjVp0W_nhtmt} z-@w~dQ8EUt;_=-tONph}DMVj&ZrRa%`b}{tBcyd?JQ9|Fd$%Gr&G0a?k2<(tO4ye> zRN-^8`I^^G=UCR&h}g=l^Ch0SnodmAIkw9tv0XC(Hy5i486-jXb6NrnOBwS1qz2`- zZ)Gg^V*#PP>XwDs`#Tma_%>)rZXBVApF%RowLQW>VMwHIF^CwzG)&fsglT~p-c~b{ z4bH)y?YKmkHpJk4`ETasvzbIohwWd_pX`0xiY)H!L;t0ql7`wbpEQi_uF1v$XYY3b zK{KX4PS7RK*|vq=hEf(+)%I7p6N6KejCjXm_Q9VM9F<{PtX=Qz zsq`)`WXYH>%F#T`9;|KX(YfIDLEH zHc6a_#aIcMGotg~hvQ)?4%L&()S$GH&Y z;PAO#QyCv(ZK^S{dZ^U1xv<2M(;=BRoWSDpV0fK|yU`za|MQtBZ}C0{JfJ4uxeX=1 zXgsfv95HwLITV!Ahz&ITrc!S-F*?tC{lQdBWGyz&oiKJ@`WGg{dw;dkQvl6zKcsQz zRMXJDSKeFO@1m048UTq@vrF`6g)AC7{(^7+!oML1uN9g7w_g zn1*#=6O68$SM1b+kKFuMJ4kHNN2)|~P7&1M+&BPwGq{F$(>hK7}@{BSG?Y70WppI{{ zQ_-BD_fBJgD!I^Bujk(7Gww)xhoTba0-K$dXvL(>3WHR|%B`do7=O>#!;_ow9WYBq?Nk!M$?4iCTOEe-(!65kjV6Zv-gRpVzsLf`%=;;zF zDfXsxLielem!$f#(!fM7Pkc+?_0GQ7ey>(7iyTPB-@5(&UcnnVeg1gVmf-^zg7r3h z&<&$N8FkmVI4Rr6n;S5H`KBd=Hc>Q=$!yN)%CjO?N?7Kyfn1LW6j@C$Y-2RgQAwr0 zZp>xgr$bDC%70L5G4kQ{>-{KK*dV<%Jz3#lmyhL|QJ6Vn=;SDnR{WM~lmV9S=nW<3zGIwiVq0x9+UpTAf8Sn*6G)4k#!>?-B>JtSkLw;^g- z+8GbpB;VfR0&<`$ZOZDjYr7twcbcLWO4S_^yK}XiZr}Khe_bL${E!fX|L0%op3Yrd zBU>h0FqYh+Tr`)O2(s3sVJ8l(2KA-cJ zpw=Q37mK$Ut7`WaR@Ii=I`1uwLe=Y;IRb(V$BloGI%)7)fN0JyrnT_?G>dP^G^mSitl98^hqzdB-lPl8jOD#eS(52(Lo?O|RkQ zF~b6Z(Ee|scBX+Azn+*PMGxb(;Ccz*m#%hC6>M$8ZKD^3A!d{p!nFuHhvI5ci}(ev z4_xM8k}QL`(din~jLp@2{$e#1{4Z}TH78?AUw6oabZY-mjRqNVc2uJ6l647)@JH8Q zRdV}>SkR8mWDg>LF|J>IE7+jkR1>-vv$aH?Bqk??UA5`?nKX8k*4}2iZ{Gv*naJ-=iv#+?ou5VnQB=`kEh_vwx>f)t#ys*^ z4rTwo|Cu&JdEH*<#ItSVd6OlX?h_ApKmIU}>CsI~F_3AP;@%k8ig1f2^`an?UkCp+ zF+zGl6D_#o@D|2!knyFr){EY9Wkc{$T*vDEiQ=i0|-J7@i?w^hv_ zy;rrJR71aV<^ zZx5US_m75`)3t2xG;$x6%oa_oYkl%s6fGlJfB$0dc9-EJzi~>h;+jkx|K{n~U0{y? z=up0g_=zj?_15TxG`#)J05b!;Q>8BzLak;KWT>?2q}?@ou$fL&hCFTSrt{cdO(Y}6 zk$Zl9WY)))QZAW%(#&AtuG?;WDtJ{6emE#ZqqiuL?9%SAyQ7B_5@azjkzJDHm7dM` zGcE3;xN>spMn?cwsTxoEjF+q=%*4WZ#P8fwdqw~T4u~)#BA@S_$^iFo6$AbD3^DP` zf!B$E_Bm5u#dcN)`KzIORK`-9PHL{{Yy~fn`M?3VdKYc{y8n;N_*7C7dr=-( zdQ<0>d>EP8nv|x;<0y{!-p(L|sZ)CS*v~B)Na%PIB4eR0XQS^SapZjoPQA{s0?RY;j{@)tBx#luYxK>$S{Adw8=dI6&~_t?nuwtFTIj}*`N1DbC~L5r#FJANR3k34 z47Kw=|8&XQY7R1e`kh6%>-}v|3kp_?8figqggD=R>-rXt-!2e7G~X$i3mU~KZ=A-V zCxNWvf9#x(@@Cp^RS7@+(Ejb{n~!Jg56QJO4&!#)%LY6VW`Gk?t$J(@BM6=bmNvJ3lTkt6!=z}+sQJ&w<0 ziu<)kFj5HEym*gT0WRg-EE{Faw-~WU5!@Ur5eE5AMf@Dpol3VXIxgeo-ZB>>d?y<3 z`d#}tUh|DGUO~m#ZqWj-`22XkWFy+E1vSF$*Sx!n-bEZbncZ(()`tOR(0XPmR8|QD z<_-}SfL2RPLGGAhI_fVvmDMrfYg?cUG^NnXlqog^x#>VzB#;9R;FiSs1}{0xTH$M3 zI_H(+{eUH>PA&ldJgN1Nl?}_Ku<__T>;-}iKU2THa=|p6p$|ZbXv18uSeUi4ZKhmk zudW7z*$``)-YXKsE;5jcqo!xBA&qEUg(ofkul`fG>mx~Yp^}jEsuch&mW3B3QV?XGwkYxhwG4sR#<^Ie)*i7upVKeb0joR7^ z|K#Fdl&;gZw)th>%jqOSDze$k-H)6JZ_mLcXSqn$ z)|aW$)FgE^+G0VB1bkfHH4$2;dkx!#f|7gH?9vRp?uS`9RKL?dSyPOfi57;e?|Kcs z#WWAEwjL@1XAj4?!DHFGJ6gTpW+D4)IDSf8YP35#$|^e-KF4%syKXdhPXptQ&O-S* zb`f3bpXihFmlGb%B$XS%w{xTBTt^8( zs&I1r(*ebKbUqz@)P;dzB{$sSmr+BrG4q`v{<3f{BrPsiD77gy?f-jIRyJ{h_E8Q! zg?!UNDQn77e4%R$a?+9%MD=*!lbBIP0o6ZBnbui`m|d)VBLW~;qr0Bo7OFX^%;DXTG#eBl^STU_N5Tz z?8T$Z!PI3(k{~QHc$ypVI}q)D*+2rES`VR4yFR7g>o?=?fqAQFL4N-F%f5A<>WQNu zb{W&hQ?Zyru*VWX;vC14u7;e}MPBJvyYJc>jt85|jH1{#gReXsf-z<}_CWvbx13Jn zp^SLIRUrscbP?H(9 zMfawQDUYJ5MuRy1(TQ1vy{R=l0MtpLynQuprSf|9SGRC_<@>a(?EVkT_X%O(jvUfb zm{@A1*<@nOE`Jfk%#<#BGfV8xlYc*DX7XqVAi+!RdYGE=j~(Uzu^P&iSLlU<-n+_e zVlSv<4%HSpN^EpBp0Ne>%tv$`Y4#*Y^$`Jav)6^+BQ)>|n)}PSZ37iWcE4!=u;~N4 zDzCr1WWhJSB$MtE)*FBG{DowrY}UQS?n$Ssk5S=ueU;+f3PW0|0OlYa9ef9jt4Byf2kp-Hci@LDtI`Cj_O8!I zJ*?MLk#%9A|Di}th|F!H97#yNe_(ZiXOHdFfc_m&LR zr4&Pts5-@D@UjZ8XhkaoG5!V(YDHd~KidwZ-|xHrz!jQ9A8hYngm zksoIGXfs)DvvH96^N92DakZ3jprXPbh@sSH-0xN56g!^=BpqbTj>Yd)_rq52ghb9m zQAEQ$Ig#9t4x27hypE*2ZU6d|OJftiAA^kfUhOEi5$L2Cqq^pE%LAFYuH*Xt{*KUh zMcMwU5gksLU9Ewq8>-S^9A~w>{0$VE?bdEbYa*@a!MYaK;Z)R3&%W&fm{B041KSGH`5v z`IxiaB%;_Z2v1b&znxbz#I!(x^Kc9wA3{rz1d;{T!lNNucdvp83qnJ)&A z)b;2;GD4KQ37^kSjSgO9pXeVGsYX_~GHPf(6#b9#&@uP|0GN@Ae37Z|A%`@T{1SSX zjNuS{>83fsV@*h|hXKQY**epF;&r~vCytg2c9o(cZ9Z4V8{MCjNv;H`kV z<&RPTrJ>|_is}!`I(J8cc=xzG7$;}VVs4uGfEw;gjDlC*gsS?lvA>kcdnfzNkaKtB zuz<(eXIir~FV_$^V zUxb`|)9^E^l3d!FwDTwYUj2Y&>SHSdm<9A+{F5qng(k#`n>_zZf#bmnHEk-ZffIPJ zXpcm03Y1CY$n|{{@SU98zA(HKk@cSNTbU?rsxJDZ=j`AabsX@b#Z zD46as3@UpWFu^K9ijcXT58~``9*vimel$fc7l~^D7y)qnDkcWa+EF|Vz_p_CgZ0ec zFwMy-7aJ$i7QI`Ky`fEm3&|KLirD!XGZD~UPx+2{psPET1-r?`=X<}#Z$wL0@sGGO z?C9QQXB7iqU-}2)yEr$~Wv}Uy z-`SmV%w1k-Jlhr}X=&^IhturYBfW9gi&C|p7ydp6p*>DU+#*FQp|F%Y>50NdXRiR| zAmbgeUj4O`yw<~Bih z32R~YzN|h@6wVj_UWU(3wxv^k-!tk@lxfJou?lZ*3)-I6xo64o=c{=u1hAu8@`_Xp^$-}2z=&}SxYe!CO2 zs91mEbFOHNXa6n+nV+F@yBhW%J{OBMR5aV&Z2-Nc-NX0>Ul8KI_anc?9G`ceFXZ)i z(bhSJ;l{hNigm8Rgw_S!TaB~KD-!qdnBVo@@2tkU&k~P`ra-vE_ zwizB(UcgQ+x;~Q;U*o8G(PpK>b7+D9|ku;2{3|!Kc;6vRVSaoaJlm^=rq(jI}D~`U6)31!eKPfs$CNC5^ z55D>1Y+=3pU>hG`{d=tQhiQbKa>T^aqYG+Q$+qIOBC3dimi$3fo@?wuCcR|HVVL;C zPBKo&_*6MW!De6fojy|E>i|xilyu1H2S5hw9ES|xnC%ZDK{$?eklwheAA2tA+dKJwx{QDN?|K62k6za+Nv`Q#iwySl z6Y~wWGax$tENXkU0Ru&5qWgd%mA!3au;_LsU0J4mmIJ{KM5Zre8?oJ}x9gtUJne0> zB0yfqRsgeyezh+g0;E6`qlZ+C(y?6lh`Yx^i?Kv`Q+R+(X?yTRwkiN->D*bVNs>i$ z`N{T!jPHO9!YM|yJL1@$PQ#XMO-B?aZF%iL9Ba%ZVsKqgOl05Sp-0@$#Qwz~huH>> z^K0su#_=AU%4RE&*}6o#W%V%Ak}bL>uPlM-0@+Qt@QsrFDD~5RH1dPRS;u9jg2-Fx zy!G9;5`3@i%aw8k%l*30GyWuUoqCN^$U1nFATbD3j(_C2 z1Z+iO@hX0tb$uL*AY`=GhSKM8nsVyD+UM}qeNU;~NX|d@A>zA=0At-HX`b69Bu#f;W^4;-X)t&{I+#! z4s2{^om0z6EwkOW)V9V|dvul4I;Ys!-YL4Or-R~U)Q$X=&o;+R9Z$8daanHM7@PG+ zN#UCF0f+sJd~r?*VSbrsIZq;KmtXYA`6W_6Lbhjr+1fv90P(H=`Jyf_+tbrBbw44$ zEOOF_PCmcfY9J`n?AUNm10Thw0V$h=huhErjR8gs@R)@{ru!iES`F~raDVokPGIfL z_VCBgw7>kTN84u}(-YftZz6rtIREH{-_hyh6qe@{rPKv`V$b-MQQO2?D+Z+oBLkoH zr!+2O+qsRMf*&!JW0S6ORGVG%o47Y~u&)TA&(soX0v=#QTku}RmtSn{S3l4@(ZAI&IcVb~2&GSSDGNHmrb) zC-BN*AG8tp7(?gIO0ARjL3|G8QNf~5{6GV5FH6e48GaCPg#otu#Bs}I-u<{G%we4ELRnVEAv(_SYW}eAkycr8rFvzoq_jQ%F;G-G&M4ZhA6|jAY~pw0D78#f zxs@$YIeo=CbgaCu!Rc6>B8%k^PSV&w-CjN%LIxNH-FQQSoj*aDu}vG7hUwfHaQdZg z>4&uMGZM~iH}iw^GU0ldxjmBAn7Q=-WADAcEjf-m&ukB%;TndZCkzcpLZXo!?P|`^ z?3kU|S)Dy+_s`rP=B$x48Vx0qLnD$BDM};(f(|4>3&8{JyZ8Hv$Zu6tzN&lgYc#2y z-KqC(WoE=Tz7d&OF3WzVZ+dUH>H6+iWfm#N8+V#b{N@fdtb7Ps$8(^~-0 za&kLJ>PT67DDep+RzgnF#EBc-)xo~iz*DT(+HP}F_C^dAxvgBEKst4!-Fu&|Ei~y)m{oW|t0Z)nik6(BJB`#pAflTXE<{y>SPnv_l83@l;=x z&sc6vfk0uzfl0ieLO{QLlrxX<`GlAF9LCl5xzBv3eeDZxXlHW2Y`7hf_S0@dK%PP3 z4CN{9HBO(&+eoip<5?yRAFt^fjrykIX}yCx4>-9BsGXViT-1PPoVb1UCb!7w4CmeV zU2AWD_sRC5kKU)xVLa3xeVm|(ky^0p)aN$jF(-ty0zYU7yCb zqpof@EJppvvP)liM!Q4GySR7Tvw=^979G`rJOg}P3D%(D+SOC-ir$R=x^6T6#^3X~ zjDKi9{W0IP)H~Gmxr~$gTt*DUWtTL}{Yzf+X9*wOp#_n0NF%xaqb|fkUrfAG1yQ$6 zRbaF3wx>@ZG|uaT40cZ7g$>v~Y(VXyvvz++d`MpCT&I9Z6?G0efeLPoW|9RIaIY)n z47@{XENj~{VnS{lDSR9_vOLh1l=YJeEpdhm+wnH!u;<{C+sCyo3C`>B&uCrGfg#T? z=_-cK=CB^K&f_DmD8kv-KM}+2o)Tz#D!7aZD+x74S$WbZ_XRKXgWa~i+X|4ZGaqe? zEZRfdUT5te&c&1jX@G(l^s@)-C^Mz3`vlj)sAqp_FBKvV8QLZYm~}3fvptYI!fs)w zHtG7*GN*3IV(84!Q3fO|=5-l#+n}(Vw92Q-caH9Iu12qq>q`vOY2qM;3DZfGWN08K zwO|1Cvy&MUm2e2)!T)7Ma+{woN6u6P7eRU zr*&?se{mP}n_?`A$nq?q27ubXawiY#qfW7knqM06hza+F(z`)t%A#AdUxSw`?`?$37&Ujf{q)-$D5|#<#m1?b7?g zZB{MT+N0{-50>r28|T#ahuRr$`$O%F-<6Ks#@6Q)pYPW@}@{x0wPwSkT2M+s2R`u3dj*g$@)y{mknvQ-ePt{qDZ%=D_>kdixaaDcg zv)|AwoG8;q`pXSGFQv&dg|BFk`1H3fx4-}D&)Tz3ztW!nzOL@wp?g5}%$g1xwIgBx zsJw1V;o*2V^1F-LLFpTMy5lr%OXEN@FZ6=Yjzx21-l@l%)fB^vFTB()JaVP|(Z7DQ zee9DDws*X{#m9o#_eia?n%MTwDXT|0Mf>JAk6-XQcN*e%xp0Y!J;-?#o700=_dVERW%H(qy|K-!qw&%Y0 zrk-6?KVG{_2NJrht9E7CaLdz!$+YbM}KQl))(&HyWX z2aY<2EqHuo;N5*CK^NZ2OnTO{-WTYn1G&W&Mb?+3#8>dx4qNqMtgoHNNE~s;K;Cwy zfuXJ_=0S3hKKS373323 z$-Z2k88R5PP^jj%Teefw-(0OCcX;aU*PRBOP6t|X$)B--#dV-M zC;I%QE--<}Hk}#@iiIr%62||W;ye8#)34how>d>9;0TVXr?e>pKPLJx^r4eH;!fx! zmyCfWES!90iu!|9e)1DRbzgzXncIqIfn%MIWrw$x=SkSq6N~o6GA9(4nON51Ax2K_ z@ZICf?ZSmK?cMLWKVES2*b_}}MvbP5IIdk~`+i+-#b%q$iD330H}mcRo%96+qDNdJ z+@E!fAgA_RF{?PM*YImN<8Mbg`n;X~MsCMD`fwTimW^$XlU82rMsD=RnD?N8Vl^5` zP2_YRcFmCJI+LfLw!Rp)$7jdQxjS@Flsn|I4@^tXnC!#v>k*;rrg z)_6ym?JTc8k!|VMaF#i>y*ZGt>8i|e+)BE}gYPx@t?=)&+2_mcPyh)cHm2GuTx<|Kp}Bi9gbFYtQR>wR7##8yYa2(!&dSn#wXECo_ z-C7)EP~_oA|EBPPBjXKYgVA z#>Y>!yY7}J9$&;ec>t95>DN4+B9hJn^+Y+>XsXMK$y6uVQk#g8 znRv{AJi>Mu)u-}VFOvgO)Ny<96pUo*2dyVjpIBd5tK5&m;X=O{?8o4+4-~c1deF(0 z2o5si1sp(icL8AYvz9M|<+J9`U#p;50rmls`ivwUDwre)XM%*sWLv{9LZl}oeOnovTuR7-s^|QpO&tkWdsi^zTDW7M!d@(3Cf+}6? zq?DD89SRe-sN(a6Z1OpY>+MdBKOcPPTzmY3_q5;s{fF8UAJo-LxnkeLmB|>G%8q>? zZ8HrNRnCJ~m{D?I#XwP0y371jL^voWL}s?y)_pa=qhG2`#z&0l2c7j!&0&mF%Xg&} zJMxWX^AJkdDUG|1X-M8?r(X^lG+5MtkulyIulWT=FSft<(`VbI*Y9o@9(YiF%o$_> zG|{{Bs9wa1yY2*>T&rPcy~u5MvK%_Od_cIQAn~5Yb*;9=@w! zmeWwy)HaQJ#B8npz3EW}x6^DF#L@0u-@QfR_Ng-Rj$tMo5xdGIMu>WGYCn@37BR5&ouNI#nP5^e`P%a!3)T-I!u5*OB&_mpO_|)HCWT z>R9efX;<49zWB{1;uS1Jh?2f9b%W@3WhdYpso60>hbRu>;LigS-Z69e@0Zlkq0hyL3}YywqHF`S>y4PSwNhY7Cx7<_dV8 zs10Uj(^U6alW-*iZdztm^oY#04+r)T3^*q9k{|8RRlPCb_-*OI?V3i;UD#c^G2UI+ zs)+;(f+yZCK)NLsnq{8#-hzR`BHb9uz=;yjKHez+??vRwm3 z_$&T6{pJK9cZ?D(hy9_%~Rn&kvK zh=9p%YueYYv;So9t*Ex!>O1SJ->e5=ZO5~Qw`}Ab%f>lo+;C<%W6pkyUW}IsX@D;S zt|(vBEvR4r+V%FI|Lp1Zi=XJ(Q(Z~sYU2(1G+vHyM*VRvmWS)SQ7=v$WWRc#cuH5C zbD+rgF6k%rOI(E{Ds-gtRNG)`4PmHLHqRstqtSlRr&2;++hgXi?>T^2j*s-gQ5-%v zAWL6Wzl_bXM4hMu(UdeQAQSryYg2R_v1k0WZ&(C}ZKHx+Y=2WRmhUv;gbpE3?Hgh( z1kpyM3>LGErvtqVH~a-$0mL7HXkC*!VIn%Q;)xJ5Rj@Y10?xT7_ z3+GFfM6*0&UILC+3J)~i))aN_`Vlsich-00mu;9292MsFP8`b$TBq6W(SF5fjKMbH zOig`jlMEMe&P34{3mqPM57Ea*bQyu`wiVA=0DaT=ruMg&FY`Wv8||I%y0d-YgAcS1eBe|J z79$23vJVkB>#CU9pU_5GuZT*3dD_>XAS-6Af6ZpxE)3Xxdh8@@d*uGv#{6JL zdt+>GtmXDYx#q3Em9+Xgj{R6K^NguEE8ekB*sYh@*x2c4X!#+j1F+LI8}p;v!fnad z_$p83-ooyZAJ^|Lu2FZ~*tTLBd5qhVk8!M(ZELO(WBn-K!jHJIJo1e^l#OvZa!?-a z)-Z3?9?pFnRbOL5?jLghEQ7n^DSO(Ir=CLxHs`rR;>8n`c+E8j{)`v-0Q;A}_-gyo z=YHB=_~n)M(hFQI;u8td$3RiHl(LghjJXrijw1$|V%9-nJcFVA5<5;_R+Crw@?ezl zTs%mxD^90R>qR$buIW<@FSZL0UvK~RfBr=K#Bbfv?te(H=GNIuu4LS}aZx{UX=iqZ z4|(_7+T>o7$T(>2&t*he$m#oigjc2rmvRg$2W7$SYCpF>X;78EF~u6jJ5pmv%`xUH z<~aFXaaSIN91{l(@s>R55Cb^%D}z9_?Pa~#=6lcTvnXGAv3>X3FSeilKZ#~lX1O;LR5VHx1FxR1~Ul^y}3taa#ahXmg={MOT&aNZ& zz^73xE1~M;9!w?~>KtF>91rUUdHWy@cFENb(HCqpI~6B&`V`BP{E-HO`Vm}|kb{d^ z8fX7yo-naPUFDrxasVzJO}#8*J1!TXQy=UL;|1lSuz+n8GIo)d&<-b|&Wov+J8P(5 zb`KOM3o{B6*T`9rZWkbKkFaAF?G~qix^6Z!C2`HRv;H`_tV<{A$y8r2RJ}5hgwu?` zeH{KI>Pt&3W7G0lg6UQn^yD%OfrmVoRE!Wzk@S2rpq-~2Fj1y1OrUH@8xtq7yNv?` zrZ1bR2a~bnwoVM#6)xM=6ceUMHJi7U-7gFslSqn15Nc-B+=E2)$f(6UNX+NOwT+IQ zXVyDn*IhWV{nsa|u3uxo$cf{d?c5!_Vf@whe%NIwkGOqh^X$XjivGBFRRdt zYDyf$6W?vp-h+XiPAch&6wfdD&1-yrk294zC}ohK5^qoB`%QfC_l~>t9j7xF+j|~6 z*Z#%7d`h>v^g*J4*La5R`X$B0*-Bl(((_L|14W$Eo?O{@$&GHQQLQLR$3TQ1c_n=c zJMsh(ilRi+r(JF6_IKZaHQwnOW*jKm-af~&<%g#By$c`Jjv1&tQ4m)GHCSNKK>P9i z%oBQ95qA{5sLy5m=m)$7_2=zxzx-UgdilH9;;p%W&{c-{QhJ@+ptn zIDkn_#$4d$8aS4bFY9a@_%(?pCb1>_6ECbMUA`UM9Dt0mcYCm``--Gx^4jr3tRd|L9m6&@?h3%ScIL5W z_p6E2h=C*fX(n_DgP;AgP82dw)Ze+YY|}5dmtOjLd*A!cwcq}o54OjjXze~dfpUl5 zgc>&qDAv4lAn0P25w69V7_ZB-#nIf<#)E2~Ep}_RwsShr9x0l`DR%xn` zdBlumV~?ATz7DnD@^3z;@KtQh8?$$y2oS?+46zBw*J({&?W^A0*ze-EuG&_gTY2Mc zzlGZ;H_txYntq?}UEI}n3s*7K{}$euEj#O-?&8_SVLPYrjrg%_pH6M-)N;~&wiW9< zJfmGLulcd2Max=01|Is?V{?1o;Dp#f@s zmyw-8zL_;Zgu)I{oH5FkUEV&|2Z|AB`eoij=()KxBj6M1#zcMn0|M4~QumM3iZKpZ z)vuM29WqtU-T3Tn1uNKG2Ntn>yP^&fxWX7m0K7q{#pg13^X=b#^^Nwa|MboF>Wim! zMe#oM5CK~NekBv?;nLBI0H|JD?$ z)e2567N)_YT(E~qGpOSPLDVF0*7uqN=rQEFlrP2T(S%OQL zjWao9*{$n|@fjZ+>1#<^LRu(x7tDPGMg3OXEO6A-4KcMxBIX`lSY%()}e9bNRaFY+sx@?H;Z=UCZ`>fzA3Ends#B!k@lrt3ZSyi@km3Ul0k!_sT8GFVXEi8KLy?kODIHl7Gl?Wqd-64D~n;TW)P7CE~ zc8vod_Lajpr&R~ua`Ic#XtRaeCqKm38pr7WI6T!ByI;#dkxGn?$BJ1`P~>Z+D37wy zeywZ{bFX0zk(uWZ?1lB&wq?VI9 zUoqsFY?GzK=aqA}75$`%S+9c7 z^(8F_*U#&~;4byOw!^vtNe4tr1|Lq4QFoRVG@%U~w>WLZ>^8`hnBeM@^2Cd9A-8@< zx{4Pc^buJSuQPO9Ds3^Ob|7(3xxNd=Y=751Q}3gHf4;h`lT<>MC_D8#A%EULt^r*&Gv+ z**aWzd|;)W!Z8mVnsO~WnojtHrO%$9bjr|v;dyX0w`-yuowr%U9(7cTEaWvd%sS_S zI_SjSQ$jK~`H*+pDn}O+WMP|FvdPuG^cX13>q0ls_TJm*IN2(qxGGBgI_Y;)Z!^Ds z?Q*;Gj+^cL-6z|VAHJZsk>B4Qd4!X==@upiin(8(s)#rJwkNmSh&ZyG6u_2^A=s|j z+s>)+Tj?4HSlc@_&Z*_*wcO>kbhKH+93nf!*Ba00|F}HZ+h%j1XaE6>4%dRJvT9r9 zhve66eNcUfeZ`pTxbasG^5z-khm`mE-p6hGEu8gZEXHr?NBmmZ9BVpc`?znXedQYc zQm*J|6}nxJGlTl+y(8`CKh=QX z^Ut@>fBO4+naP=U@%1}2XuC^00=?u$djf7tyn2=A7Bq-Btuu-29W*Ia?Nmr}V8B3+ zx1tdfy6e~EM*~H6LVN@G<_(QLPQ0n-+}>>Oc<<@<@BWvk+Q&b6N4)to9%+o&7)<6t zCUxa1p1I$6>FA9szon1k? zY@E}|VaIDS>uPF_DqG8seCi6CMH6kwk37p8g8=$T^LXhAx@=QCE0eD$Sv^5%UyaJV2`zSWkO*)U$rZ)oNTgIE?cP>i$IZhm3##a~8~ZABzICxX`$ zby9X`8-x#dsau%EtmbFwfjN98i{{C_NFCoqS1~E%@RMmR_R!EL{B_f4qZ&UExNQ2Q zp5~#h6%AtAf%P=|IKVMTBo;~nO#{V@ff#510;!+r>s)5A!7zX3@bU&jAf)C1GTSM) z3z-k~G@JcQqD3YsYMmC^T*p$BerGk7Da*LYr)=G4c$&>4H``|%2*bKFCwwhDw?iP* zzSCrI5luQW4qIvZOn(*Aqv|5*=itI9ik-@BKnP*imBv)weR+ot6I{uGf3uay!e5p{ zD-3B$x~Eh`{Fa+(KpqKg_L+gWm10{q`N_2|bTe^K*Zw)8KjJL~@!1OM>bk``o9%!& zK1(5JJfq)hI&%|1ujQh$DW7rOIbyX~@G2kM>`-AGf+%?gj)@xECM8`OK0_O*)PXI7 zMNSk7$6HT{HP9-b(jy|*uDzjW70+uw{hs!o_nc^F&*{~7JXN9z*WG=Tvk(rmyfODS zV?(XjX4XTo6<6)Id{nt@x9qI1Hsp=B-sKUuR<=#$S;PI;AUkNFNJVO;52@H%gTjH_ zTx*z72G;mP{8o&)Zq?pg=5hHr=|124xNX0Mvwn;T{FZLSZk4xu8h;4?7RRmFuGOjX zR9{M{Yw)07KFi1()n3z`tgp3qzWdJh!4E&&e*eFJSNq_Tg6nveGnIZJN{&O5 zgMHU&-Nwpor!gqaeOc_G6q@2d(0?jt9mz0I%mJ+cF{O@q=DK)FcD1AX1aQSUU-c7V z!EWid665q_du zP`~zz_SsMUpj~|JPQB>h-slTD;Mz6%h~?p|mJ8h?+~0!AmE|0K;v5VKZJx_{#It9X z^-cSzSJXqZNRJu^ee`P{WL3n}1|f9cZxBs}ju%12raYG+SdK2XH8^T!ngMh`KF!L#Cz^~dh#K8jnp1Zo??~RhlP6nxZL&_DGVhho@Jmo1_9;a$VPxNk=B|^1p6Jg!8n9LFT>z znf|KPY=1P@83lI)%l0~IQ6;W3Hreh)JA{zfT*5NO9;-q~=vceLbzs)2D5* zTzHFipZ!K_&#?5G#tw3bWVRg?M|`5MZ5x{z$yf?UT?o*XM$Ism!BMIaP!1oxA;P{d zTZr-(3w&_9&#BzhcIFJB!FHZFIG-Zf8 zHtziBt)_1wL+rN}pVYqdrXK%z^UYVZzdqHT{D?kX_5KIqs^Z=H&T&+QXfW55?Le-! z9_96^_QM(?m;c>dZmTse>(;m}Gp3%Hx2~pZ{OE0Oz01{hD}O6CTU`It@`DG8Yk|5U z)^t_2g*#58SH7+M7T=ctEuK-n#XI8G%KLopVa~cOS zNc_$-d=BB4?U`@=NN>4(RS&G+qn*WFLZ8(ppBLTq9ZvYqw_C=uiMq1L&f@yj94I2= ziXtyF;i?k1s&W;O+eLX>8ZWSU<>eRj0-IOcAO6w%b%ye>c<$lBx1r0So`$5dWnhtS zXd};nhAUR^Oan#5LR8F_14a2pjv}6`WUv^5m}QoE5zgwV4~l5Y*0w*iU*@*o?z_r6 zIa|q8F4QjD-sxx>xLDVp{drC&1kU!W(z?x9Z^k{Tmm=j0lGJBhp^U4PiYEG#Wx_F!2TEha#$`&#(`Odq zXk@?(0LF7!scr?sGE$1i%_di6z#Cw3l%q2#qOL4lK>O3pWNxBi%1Rncm^f3WTX5ti>(6c;Avt0^) znN3{yk@4tnVyTLbv(74~Oa5Lm*vi#*w{lK{bEQ8b(#fI7<9~FL?Lkk4X2K&c1!;3x z8|{a6x`#FS?i5(DG{>~y?FLig?GXZVmpJ;elN9KSP8RInh!Zh7>q8#?%{e(-&Df4K zqVA;OEoQwg3v0`Y57`9+_F|GI=G2W}4i>rNBS<9@CVp(>`Dfpd+Xmh*z_#Ot-f+#! z=Xm@0efM2!7anZwBOiUZee|jO+XX!)B8%8Z#C}5F{EcM%A3Av*b80)ci_2T7aicwW z>$Yqw#sfuTN82_2YHz#aq?L2@cdI70;t}4%!!yG8y(7;nQ&_E&fIKqO-m!rfW zksVLdZL23Q>OputApf@O?O*=uk7=NIf4oWUEbq(VSXR3pc5m$K^6jbYxN-m!FR|h3 zh;-Y11p{*IoCYjJGxMBdnXXetr}n7Al3&QD*r!ZE4%vkv(GjEiRO#GC z0>uHMl76tL9*+LW`XouL%cag~-)r2Lm28)cp)PyTcOmZU#uOLvFd@kLSQ27pipf*z zjv%a_)1;cqJvTEgRl&%@N2RtFLg}{bmuzFHTM?7EN0!=VOUtFV42wvYa<|)Lo0XZ0 zWMX+6%@&BYLWvuWjdrPW>gIL1EGpTqN8%3BbR03)7-+0sRv6i4#N#!kt9xAwG|eoK z1-3V}42AVZ9q<&0bdg@f5#Hc(3~PG(VA+}UvW;6{#2PC~Zcp*EZ*qH*#x}B(MwMcQ zll5t`4YhoRZw7o>mt6l@8X(F+B6%~$iK4y@2vp=j3eP}MkB#Ku@v8Rq7j?(a%lg*w z1-%9JQGH`kTl>7(C{7j%t&@j3Vc26?k9b|`ZHH5%TtAoB(u%3}Rla67%Bn58(SFq1 ze#BXRNLo2>7tb!g$MsR;gLlo|m?HzlHSn(B(3xx>ZkK+|@1eYFwzn%Tc((X=)yKMh zb=b#k`z@UH_E&M}tgmuoNw?$`vz0gZmi|!rS`2I4#;xh>t743^%qdvwY&WL+^p$J0 zb-8jFPm0{SQEuDgrR*9QWaUnR@!Yj5db8!_{2a#T|I7E=r~lJ)>T8YI^f`>vXYLf9 zt3x`36Q81D7o~|?Uh<6XDP4->O4kito#a_Kc14L1 zOqo0ukYaV9NSztPOcs47$+^(=$?d(S9s8wX-Cxyi)Yo#wt=U$+^P|1XwjWdLoo3}Z zRA4z!o6+Q&Na7enDF-~Xsb##;PA{{KmmU4+2l}?6ZbAM0XP%YpOuO?gU3qSI$d)UM z^byMn_O!R!IQq0Zk%TFAbAM$2Q9g>B;+EEDd_&gbgO4d=U)raJD^9p^8fS zzJ&JJV_hH3cLgGnVCc*DdeA})j;ZfR8xRAf%xyph!?Hf=^BG3@=av^u$+y4JY8`{O z)P0I6Xll?IN6v|!F6~1=*=MXN2~F(xjYxF%wK&-ZV5`kUJWe96>+xDsmG#}^xD8eN z<(oHOZx=7U(BAjho$aZo9&3+2ey%;Jefb?apR6ZOM8o3?+-tzJ6>BJ0XSMDI)V8r~ zEj7+*#dy2qwCZ-{*SL1!Z$(#QdMo}a&mnQV6<;I2eg9epieun*?x04!ywQ)T|7%yv`^1ff~9M~_DW+_RTL zsbB1|x?e!lnJbF9`$Cd2fnA@{-@0zAU))!tmAPyeu}8p5|1o z)Cy8Hf$eBS^1RwT-d4+-Y=D4K$`wVvt;pvxzW%jK?bCnxjrP(%>ek@vcj`dmyv*;2 zH`{Vz;RN5ijKN9vMKUB8oQ{P&)3QAGi{+#dM?U}~)-=q7IePmcH%}}>SxUa-&t+F~ z>AE@#v!QY<$0?Y%Od3>TD0nz@FCFW?R~jDO%o;nJ7r3I0ha@Lw^NR z&Sr`!7hcd#k|Zu=N0S_DZQ>9oo~bWwBP&4S_PRZ5$juCM&R9wEf3gjZ0A^j?3~8%* z_*r^DnC+P;Yl90sMllK1xwD+h5xBIcE&%wYO>QHQqXUbZ^i#c6#IG*8b)zueL9I?pb|5@pAh|eM9j?yHf)-{d5~)eo$Rk z6$89Pi0`U)Bv-YQdA;3x;adAQ|Ni~$ zlfU&ydq8I+xtbVbIdSs>9L{L+!W?){>(!}zqc2~UqOyG8Cil-8kuXL5TuF9LRL}!d z0DYiH%0$~Si(g2N%-p|66j+sZuQ=q^S?&}b>#MBtZ^_MBvE;Y#zUpSYaZ_pqO+ZVK z_BM=G)0u(1qS&u0O3&brD~h_yIIci{OP|a5;^)58e)PlF<0|8cc8?Aw?g|XIs?ult zvW-O`{;WTua7+bMn3BlPvyKUU;?OPHqT9orx|nAn<}8DysI1$7xWa>D2_4wM!0m%Z z2TT0rWcyxpB6T7GH{aFNf7wNn=SN5-1>=Mbsuo z?r0+~cxjK&h6Bq>EVdOV+~%3>lMp#RXL-g$XpSvX#Q2Jt19S@b)+Q+7B<)RcglLu< z6-E(CM4&d=iX@oB$r0KvNXx97F>40tBXIIoV?wrQKhu!*x@Ef+#g3TMY(0ixFsJFp z@+2p-)iMS-H4eX7JL;th^fGx*s{dMeR!6FqU&VBJufJU!=_iE{tvulJieM5)n_DkY za>P6$pcY{G5epi&5joBBF4&QzO>CRUijPMDnC9(O6nD(BO>s{wQy5{vItVdow!YI; zXPw-hH#oW5&(w1Am;E{)qvA7FdUv_FZ)(5HS=~3=M}Ol&`{Zvw)E;?9Fr{CS&)!mg z=zO`HD=vu2wA2@cvb5D!d)dzE(sF-ki`SOs-G>|TE|VT=TWxCIF;v;E{9E-`x$XP5 z3=|fjfBPoPx2A)N-d)UuEX5`YI#8g&%SI%8qXz?pE}N#yG~XWp@Z}#B9ZF zA6t0qM|}eOqHX%l?e_w{euIU5Be>)-}FiB zTi)g^tZl?7u;fa(I>gJ(e)iMWKJ)4CxBvWSPwT**0V1EmIIoneLkueQp?h9o8hap} zQPj@jI>w@jhuy_^U84wYH(^l64(6IJ4Khfi%&v(Y%(d&fzqMU%cb&h{-u2!)+aLX_ zC)#g(?3`{}R4h>i=DL!_^9|zS*+gzTjhEM`%piqNFvMF^8TaW=lCX)I#?>p=S-QnQ zkvcPIxjh3#5vfk|@<;np_RsBIQ|m~XtcyaQt;tZ?reevj;q9kl!STm`Opaj|L~C|s z&r>IC!cxm2Cjjzw=sef@Q@sK8+fQHA=Q4iM{_byH)UtH9UW# z5b5JzoZ&Oq4GumDv_L0+&Pd$>u7FcaG44oT^MbDH0Wr5#Fcvm8%;Cum-eh}R_GUX4|*HB;s%dp%MVO@-0UYj@oeGl zNwMU=V2-O>SRNF~lWkOOVo~nfqFlRzMYCz3=w)3Lu%y1PCsSLqF6H`!KK!7gVEd43 zwlZ+x6R%v-U%PWry_`b+KoPu|%+@mud{?|rnjyY+(fJ9xrFHq2_DB07A6A!u% z6p5btW!8E*_I|_Zj5sW3o;7sk+=a7k#al*th;7A>`7PcN=ki;Txu7N_+i z#TMSUHM=#Ld7RpQS86N+F>_i*>byCOarw}6%MLlK2!3+I%9fSq`}$x;4#1>+Za8aP zvwV!i8(5_>OG{z8nC(9s{wo)oURu-IbKh<4%U^z`eNoRR@)?YiC-2tt2KNbmhpzr< z(5L6kxH3doCr-h}U@-@E>^|_o2iH%X&Vk`|jp#04x*UVZvuAbdss?N~Zd}$C!8hB< z)0f+O-gi%X{|6pwpZuLi^i3x1So9bqY_tWjMZKbJvJa3mp^N$i20T|Wb!D^bGZq&V zQygqy!~{99q9@OPCq%t6js3p@2~ovmpDdB1ehp)binXk!qwR>d-l=WD`G=1FVxsNL zkyo$tN@6?H?L zu|KUA!I5qz!@UDV1w2Q@GKeX&!c10miS_}XAb>GNd%CWYSRJ^asx|FK;K;(KB)rky zoyWdXiGBBPEVe6C<#ZsynF@<0OZ#*989Q}UMEdu$#~ERe5J}iavnaQy9R&PPDq;H% zI@W zzWVd_op1lVefOD{h0)bRT~*|>7$;7g)r)8Nv;`d6abU|u0N_9$zq!~0Ft{d!PAoAy z7j9AED&RFe$i@LCx2B#r$<@Wn?aI~H+SxlUx8M7NM|CCfQ9TUb+Jg`08`B~-agcJ` zD!lPPd~Y0A6@3goB*=lHBoPm_)UO}xrVMnQ*ja%i?wCh@YgU($5#xR}hSahVYYcKQ zTR8L;OL?4j*;ed`gO@)!h{{v{#AG|i?NSo@>NPmpImeT3nK2yEA@;ehi#^52`O<9fPOQ0&cheKvkY~Gz(~2$#`0R0Nzp3>S zx8>GsNi*}L)j}Jw1nmTKCUNekOl|AHjZK=`ND;H)g3UdCL!+HOrZ+K=Tm zTg!}vca&9~^I)cd;+BEIw-T&v!%^ul%So%>(T8=TyxP~i@s_!4dzaB8vz#)zEj{vz z1wT&J7M;tZpV7``<6S1j)(3g${i_(`EUR&@aT-UuPj4=#wzZv8%g5BQvw`vi*BT#O z{H(8-eSW}>n9;uK?ZYvVR(+KpKd%j(wkfJfH)R9EZ*GHBu*(oev7_ftg;cRooi?m! zuss>KXz~V9Uj^cpLCkq%%!9>O^lakiKl97>7k~QwcIo1ocIiz$2dM8Q@fi%hjmK3X zY~q*RB0M#Hq#=ixqDT=F76ZI^b}^o1ysG>ay*>4+28yq=yY9K%{@ovcT(8xBBtC~h zJnZq7lOvXY_%Kh>LEjaxCINIfvOQ}9|Binl!Ta#NRwnt#grbr~lzfd*mbvY0@nIDG*2M zCOZ)D#V_#@jd2suj>3Rh_l+EGO+6bW&Gs)-X*SNQ9kICI?566gZOR>|(~3B5o_3K9 zZL=_qsCxagp5eQL>UtKIOXCI8trUVT0!!;`AJC_JuTNZq)z;D z-JaTiwwQCBe+tJG#RqK@;t3@4&^zWD<4j$1XgZAahVJt$*^QkL1&YsbCm9>Arbmjb4 zZ$Ra9N>u!&Y_94BXdF-INtB2`_5s>|6G@&-)Nz2Ea4e90%A+mlLFiZS21?o{Z^dZ5^^~h^)gvEuTYAeY-aecfGnPGAvV1EY?ZM%%+Jo_L z2r+ z$mcMA@}t&1`{`%fpZ$mD+xffh*MYoVM533+#3wEUj021w7j1xj)Eh!g+`h;%hb(WG z)jA{@1A;R#@ZbZzS2XC*Wv7$6MdckQ+M|!()BfNO^*M}>-l40D84GpKI)sPd-k$Y< zBASR|fR6gAwyw%uES$4Zt|QZ; zDVv}RY!XiEQE>LyCnw^KfI2pe@x_0VrA7LQ<NO*CWC~H2lN=4_s39uMa%L*JvQ@-7mm zbD0J&vyd|g@svw$)Qwn*#)vr;0hr!qVVMEX5a-N=qk>6q292q_gYVN?z0$rA5=+>S z+BnldMLU|X*eNLBoJ`bSK<^32cN3gFb4HpQ?eb-P4_V*Wx~9iX9)IkC_T-Zfw8<&hfH1&G4g`eB+C<2}Jm8a%ME8|Bw<*JKiS(Tpl#YOK6EW7-y@!xJ) z)c@BtP$c-V!nMJ6=|{V*h8X#b!#*lItxOq9<=v%U1_{g)Z2EHyKKEva~(hJ z8@FjArw!cBfns{djizjY>v=&o*s=N4hM0jO8&=*rsiuhuU3k)r4e^`03iQ*TTy5WZ z<{$MUk{8-HzWS!@&TET)E^X8%)2%16%#Au!V(RM!Z4tMKYEVHt@KPIXA~i_JoysXa z%Xm_sxj1p+YJ2Uq7uuyOFSOtL!*{e#eDaC*!6zSV@6bnjby8A;l3>*=cN!7!f912c zzFh2Y0I%yt9_}-j3zm&op4DM2KO6+at-e}7PQ?Aiq{$ABop&xy2)Qb#pH4Vj(sQn_ z>N(e+>ZHTh|L(>1rO!Vn`JEbgo^Mz6ea;)YI(_brGdh!eG7cs?FK_o$AyLoRs*n$>pFc!%hIlRD5P#O|n0o;_gt~I>vq0;db&JmitWh z>WL>}GB3+DjZ`M;nC+*G^tXSYh%KxOp%HDPKHYz zG32rcugIn;{iX;xxM3O0@Fxp5A<;y1L8n=o&$y6-(G>NVRoNz4jtE@+pov*>F^{{r)l>sT?F&wy(TGn-9x>sa1XuOF#ry9+ z(;j)-`SzPnU1%TqNNe}%#Ww6CV&9?Tn(*IUW6M4VUnjM{iANt`j9`$mb_a!RDh`?Dn8vcKid78qiW_z4k26(& zqun9g5z8S1#Y4!(0BYHRjy#qdyGuXnY%`|2IHSV3W=$Pr`>I2RKYk;h@y66L`HDX@ zW^+_qWR9W6VT@Db%t5+KS8*eD)KRW=aNhh*tDP~H?ZcoSF>vhT8TF&TQD1#jo%7Z^ zHQ(`5ws`u*K(Sk|4itg00rVDA1ZiKk9q)$NHdwG*dbYyaaPf4Keb??2WadAnXo$zFu+#7-skk&Wu0{R@ef;j<{Q`A zx1af0`}ViE^;F+fJawmTW5!-rmvs*kZ?e6n`;Qplayx5%VUtj}nkM4-RZMGbG<#Mp zRS3-Bzs5tG^Oq2|M?^Xp)ZnG6+VIEBa@sra%rl0mJ*r{NgAX{7bbbO+A!AcM^g|iD z2*5@YY$;#Fhfz+o9W2|Gj_uu#OLv(pbVvO;_yz1(1!Bs$k}F$qrl8sA)ZTnrCK4BN z!xH4uEu`7N_B9doWos%&X0Ef_lXkJx>C$FiCgxDdrQZqL>(&?IE>6bTPFBKYUxair zubHWx61W2|e$gZo^DI}ctX#$cGU^>RX_&UX4From1irwqo$7y8XGbP+c{R-#jzH}P zn^1Zk?j#|Lz$8eHUf~YtNslY*xK!;g(JmFWEJw}h-|5)G`ZUUjXM(8>gEHHVECV=> z890f^K7xTF#~LT~`Kss_`M9pp;I*sQwOzm7&Yr#AKJl>!+9yA8L4(G8PLcimG>MC_ z*bflDZ_f?=6iyBxv+al!1%{wV6BxyiuzXTVN#v}=M<&3K0ben; zuX6NT7}Hg~WrwEts{Tg1ecWNM&fVGkCIS3bCv%x+{ONAU*ahHfai`uU4@EWZlt0dR^1lHnMe%i4+Ve8%WwLH`Z~xpayF3hElYGaGNQE zF*f#;89e^-=dFF=^WSZM{-@t;S1;Y8+e!4|8Xes0$%7aqa@A3!nqk8ZVxAa85(@)G zJyDzjmGuqQY7V*-yeP+Z3BO2Sj~djeQdPyK6} zaFm6)zL5)G*w*lRW~ zJ_zs<3Y4;;ogyn-W{i*eGf>pQ16L1uSzVq?_PYqUvZyzq-?*go_4bh`?`f%z{}4!BXVwB+v$0*ZHO}c8SCv)UDkl%e$g_rDlU1%0y9SEYcyv}t4$W6S zY(~y~dixo1me;g$S3L4s-e&`Tmkst?e3kpxm3O?3YhP^O51H0@M%xi%y;JL*;@3K- z);X=18fVp8ZVs0#X4HYHdfQZ-^;KrvTFQnwTXWo?Azd3N!cwuBk1k>3sEs!pNPi@q ze4N%%O8$%v>aXZlz?XHw=lkEi-oE&SueVSA>G#@QcRi%DfcFcOFRx)cJ#mJucUp2U zKj?@ZQf^V?drIsi7$|a;=-jzGB-c*k`lWcw=?Q(1_d_3jpnd2g?`j|acT6Rc!Xj^Y_xzD!rw@bbi=da3t^>@?<%NJ8WOrTGrs6LIJ%>xE@-qFt> zb&x>cGVt?B2X^*;KJhDGdb$1i|MhIUa_O9IGrd~|Jcz<+WNg@m#^R#o0#DsJh-U$OM>&>WYAN$$dj{XwcL;kWP|Yml5}e_!8Di{d zwoJ*67>XDBFiVEA;cL;iSS)>J|Cg2$jb*_QAA|s1tE|J*s)gvaaNA?___K zb;nEI zJH_*Ey5;oZ%i2-D(*D)I`$+rU-+NDc=et`wuQQCN^^TMDAQCvEG)bU7Xxi7#2a&u* z(4sH*a1pO##_l+_d#ESgE!^xY2X29*$)iu{OJ&p#{BbbAtwBu0o6oDNpLL{sIT$)E}ob zFFVn4L9Ll8JjOix?j5k%N3;KByUp_B=d#YWTkS$(j=-0_GR4rhGceVif(7HBv1yyCSt+PSlr+xa`MwU2-7UF~DPd7<6^09O#@RggHoz%@VZOW2?AeBmj* z@JywUXIwfEp>bj^U1aeKj>7!wo4trd4<6q-k!{KAOam$TkZV099+qy_R>l;mMy^-WV zAD=h)B!#xXahJHR0G-modBC+ne({CY{^rXsv`_!Vca^`|UVn{)_w(9F-yys=%lced8f!PpxHJux{&w`Fr&-^OqCtMyLtYv0%$YG?ahsd=|Bv#;Lj z>MPE+b0wPRO?Xo+J8A}qlE!jH%9P6%2LcT8RF>@G8?Alo8@h%0bKlc5if^`;|4~BS zzRWi`V|h`LtJ`#R_>r$X_)vdnS%kTq?C#4^z%@(1%H*<0rcAEOzBxP@s^q0K5eQ#29g=3rA%k>R?;f{8r?27NoCwa8E z+q?VQom9?>oa4y8sJfnyxEH~v!v3{9#8ow=QRgmCzL-y>F3ny$70I-+PVhx0Y0ZGD zvQ&97o5U46+ooFcj_XTuma7SR$`z+PeH;B7@<}O}@{_C*mDoC+o3U!VU7Td55O|^u zW#5-hz@BlePD3o)9wK!~%AC7mRiBP9#K^cHGCT{5ezOnROg_?SaUF4Z9m_V<23r&U zxq65(1IXB*s>pUdt}JT6ck_l`r+(v&c0;$IKK0SJwcq^MyW2b7neQav1aS@wIiZ|+ zPH3NGps3vo{Lx=LvJe{!d?BYDV+$AM+{9@=5_M-EGf!zj*=^!<#=O;>w;gLd5kKC& zzID)=jj`r&dBjq-&e)oc_^KQ8yLgOU<2%G|vfsM(bR=1GWRgSEeVqIBqn{B!>fdVF zbsqg#ehB|)dx(uO_}TIW?=EiJ?ZV*4IQ!g{j$EVdmVT7)@`290huBq&?JCDUUt9Xh zyM@^$udys~Y&laBiMM&v#-DyoJsfOkZ|D{d28(JLmCtB{%r_NvVE=k+&;N*L6TjX5 z{Qvl#zHxNFZaLNEJwBzOL85OF3_|flOns|M{TO^!UwH*8;{(f;L}F#2aqZegT~&I$ zz4N_i+G9`L-+u289@pnEw6oBQRk`q}@nt`==n7>WjywO=wfk`+$sNN!tJ=?RHFo=| zoR+Pnvp+gDmleKt#4{)C=+B&C8Q@tF-c(EfXPJXcmz&;T%A$2$FR9^8r+@R6EA7w! zo&`lWo*~%kF=wmE#jG3GdIVVaKOmyvl^#-WSGn5sy4GWd3#xqh_^uFFiIoz zMcq0sV6M+G!dTeJb(S|`s^THI)w2s78#+&h?F4XWiF; zZl`K<+<=TvUvnH)?!5fDZxI1j+1`CJD3~lSsaetobCw}XU6;9>xdP~_MGPZ+UpbtQ zoO3y9BTUw6mLH`JP~Z}k>qF#iU(%!YONpQ~s;XuGs=T~kU>)Az3h5| zNf%NSY}E(P)~s?*#|j3E#X)VXkho08Bq{};_5&Iu#xsN}^ZnhpGep~V=y-|UNnI7x z(S`<#`eeqH*V?<^b-q3R_}kkPA2=U(6X~fGJ;R>+etlgdsCmCZUQtAjBmEQ?pXi#Z z-Uo`rge-o{;*_Naj2R{jq2g?0<^UdRqJ5?|I+mq8s=d5Cj2vSbYGduDme=scIXwhp zENSJh^4ppJZ&ws|w5B_3ts|`4VLqwW>?h@p3_iB}n6su8>%8@AZj4#eZOJO%XkT^M zTW`5j%k9JRYGd85wA!uNj(&D=Rh@ZBkINC;VET=XBU`wbyeXuBP(O)s;}-ylqU1uP zaV3bO_>*k7iA4jqrh%f&**HJ{!`8m}jbF5{e&xCLrO&+B?z`_{J)d}=HXIBt^WY$_ zLdr}w`K+VTaL*Y;U2S6HD?Ig#t3v`t9UKXE0$kLn^y;-&+8_MUJKHCJ>v27oc)C6G zh#qR!M|k6E6S$~@;>6i4PHy{KG>>}Rs_mNHzIf{Lu@Ae(KgufKs2j`GpL#F)mFGrs zpm;(9J)JPn^21<`9X10!`kXVqECVM_YA`6djt|-kzi92b@9MjW`W(hzf9^TmhI+c4 zJ$GKqf-V*F)3Qfw5nmXyymF!;mot`<>~+n(DB}ZZDoXeUNM$$+ou-~d9$ilOUC-kz zW0*OQ+DIY-Qv}il(=O7^CCmhy>?esVz}2!z(tg&iVV2mW>GkYz)$B;!Ql)wRN4?Cn zn$AJ=NNt$t;ETr1m{VHwtE_!Fn7eu%bsXuqtLMW>8_siS;inl%*=txxGAm5CE!S#qSl1P{2XGhlcdxo z2Xm?CD_6rSS&#(7*FY&WlHKXIwubN7jM;ljE0(cgG``|wB3wtMc=EvVXm2pT^^ z)RBb_XLQ`69Nh7YVjn0<7*iZ8z)NH@qD^F_GCyB^>{U^N~6a#(1YySM?*`T6v3O4U25cm*q~)YaYv8 zw%&4=ttYjv$||nrD}Iz$`-(IFKK!~p8(3}K*ucfa#%(E~Y;@14NS6chKuf5zp`&ZAl=byXOUig__I-@I!XU^OuO8(}9_}s=Z zP|)%ezjT}f(f(|i;^m4E8+H71X7Rc%GjV26ce?7OIeHkfz25%)|Mq12ga7Uw?ZQK< zo&q_efg*aU%bn=D^txV%^vpM#28b`UA3gWFZehOCE?v?xbc4a+ znfURIMb0T)?`L&S>CJZV`yhk2^X4;((?TE1zm~X2m+{AvzZCTqq1FjQmaC)b(iEG8 zos3Ep(H2V!t#%bKDtjyzM+_5ZHKZQ3j0LgSQkhjd>z#H3Q-wp5R6gT-Dm?wnpHR6i zF^8ehfTJ9|U9l=Z>a&`3%SgPe?rz6wu|Gfh8p{#g+_)2=`#xfl(UB&YY{U?4;Rcx~ zHZuLB*BFS8^?1Wg^1>nJ!oP_|-Fg^!p~%84)}qP?bmDaQ(iB^h2!I%~*5l-`V6Q29L5 z4Ng#sJfC%xzt~tP!XVbpWHC^T;U&>13X$nnRZoGB?jWYfSaonZwcQ>IZ%g*TCiNQc z$WhB{_)%v3D4(1T8RG}>RNT^U@mINRcMcTsWZ>krXCOo86tNwQHv8n}-mxIOrvc|ch9%Dc3I(P^i_GBcWSIt%kg1Z^|w!tO~q8(wS2|epJk+$ z+15IjNsY12<%%J1J^2wcmUm&X_hg*Yk;k~Ll>JL=u4C&alsAeD6eBO0Zug5@F(C1F zuV0Nr6ldUs2*l?cFErKW7Rb5T|#m}0)nfL>J!r&Qw&fqSc!MjHr<@5TT z6}4^^iI3aTM*MKBs5D5-!6Ht_odU}l16&3N+}f(oVO(RUpig9+y4LQyaI(Ga9e1=p z{G-RTlen|ptvg&b-iRGUUhPytoU|8zb7hr1#^iQChRG4A`)uU090Ti+k#~B8?AI)) zG468h_?MWhi|a#Q=d-QaVe2w9JMA1O@;u2|mDLW~xxfBuYhU}@YwbVljkz!C%HoL= z`V0m;Yt973vn8D2WzcydUV+ZR#ObpcXUOKUx5*%*J+U1}q0ZsCLi#xtcTSQg4dc_h_>|xtu_dQO(OnKxmHAwiMQ<9*TomfRaOV+I^wfU6||wM)3U44Ah%` z$skv_AQ)^w?Y8OtJkdoIQz-~bDcZjK331IA+#%WQN18B6qNb$}7aW3s8mGB+swTll z@bZ&BwQQ7j&8(O(>p|JpF$G=)r+5SFpM$eqjVANSzmP*-4aV{U?AVJi;(>#G6mrdO zaiEynmwpTYSuDE*)ax9Lln%2E(BYT8fqqJFUcan6i{5CDKXGsS;D_Gc9((*udzKD#Ka29?|a1y>#tXx{)wKM5W2<59|}hj8$AIK$G|_mHBZy1+GMDxnnQm6JaA zdG1rzb?31e%gDB-#dcx~v_n4ntTWbmVS%JcGkOGd91T+4Pzat@rU9# zbH&7!t2)^pK66@+uIeo(MLy!I-g(=*Ogh@FVb*Zw*uq;s^Ro$49jqYb%$Wvnih_a? zZXwMLVTe?kHky&o85>D#81&`KM9#F!7xe<0U$*vx?_F1V2CSL`3xM-G-f+3YA?RSr@0*uxA|2fclG-i>n`je zF`925k8za~S<2}Zwf|y0($4!-?p(Pg`T8|pRG@wqltJRpf1{tnFaPWZ?TuH? zwY$#WqbtR_+ITvzKp0|EI5rkng)wqclE?gGxCQ%@&F8`z0<%xqbOm>NBme$ z)52ToWEa(4&C5}=t7NoEv`hCp$pbGUg0k-tsBwAcLw5)Vc6}b%PGHlN&GX$?6nopv z@V&XL&j>3~MdPO4%LD!8KAYMj`l;I$n`{djBz2=Fm!n1InZ;9@D$S=hn^Ze9lU<+` zL;TONMEvLixRYvK+3jY=PE|T^8G~q|4s0K!;lFcC4k!m9?Tmf|OvoddgywSKr7J-h z;UP@5E_UEpU7k`o3{K4!b}HZ>UBskJM|NCah5`p$X%CRvmnMF}I=P)QT^~Wr(#YA= zzSl5=3Blz$rg+@$tIIBAj&VtX+i*4c&6*(ex)bY0x$# zOZgssH~IbxXX3>+AO6URb`S3=h{HT~7W&Szj85v4O5B-rP5TV4D(1^^@IXZR#T7+@ zqwP5wVZsyp5j{H}B_#P%l5vo^&6BquTeNQbLvfX7%f_4)OMVMK;%;|&Egr}6PdZSf zqBS@NC@d?oVh8_ZJ0Q5{ml7a{{mLrv?fg<*S z*Nh4n8`8OshBytI3EQRJzcCBn7Lp2wSL>&As(7$>i_Fi<{~QytNiN&DPU&RQsTl33 zcnP`GxciussL~Y2EO&0w*LJgVM>^RBCK{l`5iQ^@D}7K2X$RLm*i@$e6;tZg>yUoI z?6!54omN)26 zOzTfy@AGj29wh*m``KU?k?u*+Oy5`58_>_3zS=(VTkmNf`}q0x;Dg$hXrBTl-&dY~~j@>m`lZLBn9Y(~3^8};a_e)O?b-sPj(jJT?+ zdE*?5(~2QK;zs>i**0rBWTP+RNBL-PocnLOz4JD&4BXh*f@A09tAU(We<9E zeD0U+|NP&-)!ulO&t%*s4jshbJevbT_~h$^28z7Q?*+^G~X7F^@Ev;eP>ShX`#v&84V{n}L7) zSoZYnq0S*_P^dxT*IWC`zj&toEPh3 zt}y2dkm4AF9lZWnkcpYU#e^#KU21hKCo_^J&V!hYAFJiWGPRUY3RJ8_OZ`^+jSOK5 zOD9jS)pzpRw|TQ4j2i=Eot>f!?m&nnkpo^uOR$^T3%M1McOly-aB>sv4p7DmdqTi2 z((c=Y_9LAKRZ*uSRkEPO0$-W>xv?Ty%P#xJh`Kya%TL7Yz-RxxWul(8ul-@JsXe0R zX^G~12*iqcZIdzu_HPhNA%cm5aKj2Y_aHA6dsdWKFbAgV-@@e%>B z`KbUrrrGmPnT9w_<*aJCmGkl8O> zR6XBpAARbP_LS~6dgr@ZJdUD64xL!kyA5;#@q~^gI0nq)14Y3C!{i3>F^^(nn1~w0 z&4^Qj%-*_Fb)#K72Rz4^+>WEk*77^zM*A(higO<98s7TR*BW-j9H+eH=MWCZ@@p9= zZUs~;;DC%>(^X8>+s67e9T@bZj_GKOAsz+YS#yj1oH}1IURy^=n=d^MkjWxD{2Ye*#hF887%UPmVrCf|vb=SajrxhW;-q0>zwPvWA2{0{|G>TN zw}1Chz2!_V%wb$A^L(4;<=7FN(%Um3%qxqXoa7d#wRWylW1EloQD1G3lOK84YKlA}v}wE!(m^%V&O=KXYb2^YLgTk7Uc*#*-m zktZuEU)6iJ8=yS(-mT1xIB_C!xmA@_b*qY=LX;z2X(}r71e%?{l#ilTl9};njTT8@ zXM@g`ZM0Sz9}KLDdST7>vC49ngT5EiM>?!+N&78TpBQAD=6$Usnkb7sdJ@|izmyAT zGYfL~IKsP_3>?7@oTU1Xx(yjNIdPb% zop%*?XOpUU%`nYDi9Qn)OiT!s$)}*Fbm?CZ0~zEahWN5`49#maF6$WK&Gz2M?`cmw z`OfyiU%Jp9f1iGmqTPp{YbGZ;VA0NkS8v1x1Ic*5F9Af`!z?#IxuVE1PvlkPiXz87 zs|VTyT!;V}iSb)sM*Rxa(jG#w!n`sa_dfAZ^3wI`lB8&5jDaCh2q*6_L>mx;|?XSfQrOhglr-#_Q)w6^b7 z+iuC=sCJce4_`4qul&y|rkQsxFZE$3mE#Q=eavm8H+0K!OcXget8u_>q%qmkuz3FO zTl>y8^m>(NpKo9MyC3VFoac1XK~E^sm1&JykuiX|3Mn$US;a`y_*Q-%N8vxb2p>un zY=a-3{R%NMekl&a5zU8)v?+@Ufsz7lb8yTL0*;s~DhGD&S zFALhb3iVxs&~=`C6Hub7&FmPjvwlRfQbqgOTqfpTx9b!;;nD7Wq0QqUQPzGvPN*Pr zC_N4SbkeOC9t2U6KHEgR6)R=++X+VE_N{$7l&j3zXZPBhy!Xdw=f%*xtN!XZbaUMa zJ>sW6v~1KRRtxE9Ad84C(B0Vbx025Fg^O>Umfpa%ZYgrxPw}eg@s3SIOB-~ape(#( zbD3k9%f>A!oQ`FY?&KoOg)^gG$~#s=Y-F^&jIj@yR&~rpOq@Xjp@07-KO_nk8}g}+ z9Hk@6$++-7>;m8E+|=%e;nXI=xgJ3w2K|0l2w!^&h`uCM^5W{{g@s70? zYzr{&Y(k8l3Ex$5U2S*YeY4$n-)TMI?%nO9AHBQXuRD&?hkR*&b4JHAIZ;$OW{{mc z5}d%NkM4jXWzBvjCX4Yim=HuPgp>YLb~|f-UuGM(uT$&eyOJGd(JD254`)58^K%Sy zdF7xKPQsbLn2c_%p`?Ej&QhVXYw{+X7o=kb;f;cbe_k!GF%2h`_fJVOJ787yemnEKf z8FRq&!>u4(Rl30okhGlDi`nr?j9gu0XL?G%LpY;bPygV5d7}N+@4TnI`%z6Kb>WcT zAq0j8<_HHDSDWCg2kR%bm)i&bTi7ib*lI`F%O2kPpJ)2>ifQJZ%cD*)Xw(7hW@AXP z;@0NqbfqeWoHM+7a;fep{>Il@`|N*tUX#Vw+lxQB-mYG`OMS^Ck=J2hr!%~9WgAWi zyg;NKxww;GV@i_sZ(ciI3i^e=lxQ9QSqhExEF2>f3!qd-Zs2w{jVU?sq8W@=!zu&Q7Uv33kA+@A9EuI8(Hg zhgr#3n^>(oPfz0ez0_E00xEH38>}bYVGGP;#UEMwbZ+46)c65ZrZ+@#qcC`YY!$l1 z7137K6iTCBU_=LF4tK_L8k&z-_a=&t#Mrc4)=OXZn(G8JCs)}2^KM0c!`}3&j8msB z=~WpIw~u}N;r8&u`EKRAbaE12e!?QFAmA8*CEJfmWZ72~Ni!zC!`^=lbcZ|YZhISv zzcbZjw4;PIALGQ0Sq*yLSaUix)cTsvn7M4*IXwwyAF~~0Y;A9x(=EJZGv;lXC^`^3 zA+3(8zRD|}e8tVWE&bL+vEuB@ye^-_U2(R>rpnE+CA04BNUQ%t_>PO`B(6PMPYBUh zjOD~tb@pSd%X9qJ&+F^kSkaCjp3~}Q76zT5b_5rZfwp%i=)sC{4 zJ-qcl&-CXN(;n~9x-j0jYR!oOuF|Pb)W@_5Pb}qp0CT@Mv93jm_Px9id0UXivCjDBs1h{B7q<_|&O2C+1&GB51gJva zYk*#VEXdQW+lMXN8?>w>XKilfsUII?DK|c#q08Ly>v`;irwnV;aMY)3mzZQpOd&Tx z#=Xd?0{~XSH7BygbCk^ZYyzoPgERssHj5!skUh3A zSY*}S((pBWTDtV9B_sA;&-|`R+ik%`2!pG7Tj%3DG>DJZ_o%+xhXdh>0Z}in*>_6v z=No{AtumutQbsRDT!6EOj18aRH*x5XERJiX5U|IYCKNc9$@eRt(E}6CpF5*{#v3}0 z_?d1!eMkF{UYGH{_g`oaJ=EGo-FcKZC@H%5&7#Z|YqmggB|m=nX#b)#+A!{1>9?O^ zkpU>zGpjgnudr;Z({8k5r*S#HE91*^)JMfxTe;ot)@`K~zomb>WV0W~eiDDh?M@VD za+6kLWQX94skY=TH}_n&-07@`qjFkLTIIH{sr9x&w`aE}$HqM5=VjJaUo&>Ed?z;5 z@1DIedwSy8!XV>=oj;bj4(8mlH>UDe8F|~!^0%w(_#NLC?;OK%*x5eXMH{ugosIf< z62+59S->o3`j}*OmS|h9>gfR@n$&UihuZ|d`L*l%J=u4373hcU=Jkv1+_`&owULRU zCVsji$n#|4iIhRa6-ItUt_ZZ1`=yVZYwyty)w$&~L%b$jR3K9}K%VLG!a9l~mc0!R7iJ0^;nsOyj0O&LG@Mv*?DCt}zs^NN1w z`u9I-?b)ZFZ~y5pe%M}p>3qBA9{n~^54eebjY(o}$Jj&5C?<@WaYmW%zQ(XlP~6fd zcm7i8-B~$8aEM1OqB(w|$hIV*v_qOAI&>$KK-_+2=RL6_3(uOTPX{YDLgBiqmA(cdehlL|G4nosVNtZ5ThC&ru% zTn<|mMtNk=R9|55*8yu)5X_?BUadeZv5dZ2VJK`dtz{Vo@l3{ot&xERtB!+B&!I+@V62y~R$wr@reRtkr8G{hrF98jj2%-C2 z`Ca?yVXlR+bVX1{eKdK~@dYQonFQXY_vqf#?-Z|IeMOVQQ|&#E-J{!2-_xGb&s6T! zlhL7w$)bK6pBrgTD%)EGm!Oy=`VJPt0K+i_$4cyLlxUe-JEgb3uKN&MulvQ)Opn9Q zI?9!+<}2%LS9RpEo4IC8Eg#2Mb&kjUm18SE@H&9)-LQsL@~W{RvONsCJsk3?t31c? zRUCPiy(@~TU1FGd_x#)LcGH;;`z;yrITmEcEw_s|m;KN7mK#^oJ#3X@Zw@9uUbf`M zReR$}t*z6QhMghb-gtA)%M04FSP&ZfBoh5nSb_F zd-O4Rkejo*EAh0Rf|<;^f~cV5>1nDL6GcB=Q;x!CI8dJYMvT!OHBMIM;I9xM8Sfw9Qa}9}N-GaZEfgHIw+T zhze9)%^w#>;?jKWyE3fufvILDB;$Wq!M+g~3$KkkG5C7X4v2-weQP8%W2H?2wv`!kbySQ~r54E{| zNz`xZH}2Qlr$7Bv`@|>i(>oS(pTjS0;?+!$=(uDZ0Ydyx15QM0-!bZhFOG90h%XXH zG;iNBZ+F~Bdmi@ivwXJS;=L1_nRlza$7{J`acU0hU9PFI2VYUNK_xlF0eEnH%t7kB z^))5Gx7g>*0p2>>+Q**UxGmeN+vC~7SZ14(xQ*XR=eV~pdoufy( zI8L9vt}}>PuRK2>F8PTGuqL(eG8qX3m55xgOVkh9{&HyhE^WHabtuoa^_@#kitEmq zw=JV@qn%S<>y6kaCNi(S5sWA2e)TJ@{nej;rG4+)SK5^~@79N>pq|T#J{{P{D7~9k z5Jl#RqSAE9n2}vvQDh7WqKTqLVvM&A3a;ZOio_ffLAl5=OkD_`ROaY|Jj?K=D%Ytu zpc{4QoDg?#trVSKvMpw5qVfTKHC&OT||pS zt5{_|S9Y{n`U|sY*CdE>Yug@@LrjDTtt9OR!J{HTL}{RmiaAgsAFT#W_vy+7nSz(nqo%n+v zCXZKjMe))0;a`5VJ^px$$s)g1sq#HPGrr=`QMSxjr{=fb%)L`ad z!*Py?pf!)v*_XLyz2(O5>G$Neb2{UY&p!6BGtT8LPIDZW?%5s6yN9!U%lGWlSntd! zTZa9N_Z8lX-@@5<<+AKJe8n7^-}7;j{am-(<6+a9Ur@Gh94yBxD*A>x9&V%CF*vKw zZGs%ebI8L4j1TW3B7Nz_*1rFpo9%O-{bu_QfAk%FSs!Tk-Tz>m36I+hHPM8U!}BFx z`C{_NMqR$+N(~RS(LsLvc94VpxD}N%g1U;tJ*&6QYD0fbw~)Nnp7^En?H7OPA-zcV zz3oH4e70TGEhLw(D8e(mU^freZd~V#;#o~RwHMG)G_mq^<`X`naV6A(OzRRK<)h1? z?Yq?TCi7`>O8K^>^ zY8)PaMX}pPT*;fvxptjvpKtX+h9ev5)Lln-y~0CZbSr(8Q>Um{6=pms>G|So;jiAi zeejW=b?~GzHC0bt(w_Q8n|6v2_j+Yh3)@2)VMlC9F#5yv!>t6CrK@R84D^r06K<;y zYG1j(#ze9Egvg;+XKwGM9aC$p(`vJow_odKKFgO>-y_JU`caHJM!UvpF^OE-jJPLl z7DuJK*5ypYp9S@{s|`&x4^;fO)@b9=7Q+a+xBvuq|-$OvYs z8%5%EZLD$Iral>rS@D%Im9|=M1IO27ZNHSlOsmEBnrM8NFfo!@q7VQ8KmbWZK~&D> zlmi~tlJ=TNHpU^Mz}Tq6z!cFD?yj@{K_ff&QF>jm1ZTLTPb$Cj;dii!Ebk<`sb>^$ z()k>-K>b|h`n5N83#wj~b?RDs_}zE6_rCW5y-Mr;_QaF=$%-C-5XT4N#0Q@-^dbWB z$Lx`Vh#nsxPY{(7o$H3??O3+9QI*&2W|{F-ZkaK2YV4u7+1};1Vvnuu9govP_>Dbv zgZq=TSYYE?wj=9Ew`9nx9c31F2;kBAlbZc?73pF9H zRZloQdx7n>ev`-sR{#1$Kg32iH>z>V1`{~-S?&$!JHF;-=eeKzwBtMD&I3I`Dp5)*0Z*gtOk}toPOuFK3V$KUNHt08{yd~u) z&$srSZ?*QNXMfcG?!SGnz5dEw?VgLeKd7mLpOI*4qe)JYY(!{h0dQuh&f4IJmPOClsW3# zS_J?%#SwegrLgN#76&n|Q-}m|l_`(<^lX$DVM42cjk-+95lla*qQ2qZ7{?p(2xj<) zBzTPJYRBi8d(9Kv!?Z52LE`vD5@nP1KCm5P{L-G~gV@If3nv&f%M!6vnRsh^CsIPV z7qi`*`+OHLDI%VUm}0cM+Bj7qk+i10IPslW48o1NjD~T;k~&{myKM$0MJ=b0*g4V2 z67Au(8$LpHWVNW(1Ju38dIWfkU>O4m5=~!5#)4>0T%d{VOF5MU#(~6z*)%Fnl zY+uWj3;9WW#?Ls*E4TA|Smf4WZw~s^%a+_S+ZyZCJT5!k!&`s5>7JkCc=lpAlnWf~ zqZ2V|ube1KlpD)9$jf)s6-)f2u?6!o@?_-*26Kl^(7xBvU!wpU){cVrK=H!q#i zRX=Tbbt3O9bF|nS#O@(@Pw5IFyAC+{_~*yV)l6~!R^>rF6U>?nQt!JE>o_~ab;Sq-oKWNH--qeFmux3 zKmFAY+Bcv3nI34PtH*jB#@RD>YbSoU#=|-FZH|{1kM28m;^bWpb{Oe%CW%ZKm5c?) z5?F@+vb{)E)#nvO%$I|lML%qD2_^=Z$>E;(2PWV-9!D^VO--)d-tcaN^a7y_Y{nISP!BmVAxJ$r7WZYOz0z~LN6QtSxtvV!!|gs>{2b{o8>~{cT@sA; zTq%zf0vqubKSJ@YS>lLrmsPO`kHV>Pfiq;0CkA;RJL$CB&hm`IZGhHGhOszt*>#|d zHMX(umSD88+hh1P>yj=iw|(jkYxf14V}Ur#4WIMIDUJ9t=BP^_Qxh}{Tn|#$H!at^ z^3)xy{F9)$}33YXz~wI826bK!Re1B#tL@FpFSbwplgHY}Kk;aL zRIk;#_uf2a@qP&tpSWJ?-@i+=szZqulM4j0IU3m#tNolerg9i# zoy&7v*3WX|NsV!S##TL;SwEM-yd8^q?cb@nt)I)rIh}Eq+peZF*19Uk-W+uRZ^$sRjn*q(4e5li0~#A^ifgi&@eyz}t7ZsX*^G-vcW z114>3Ou0qy`G08b^Pl@+`_n&urd_@Cj&||lJ9R}-PeIkyA+9E#I>VJg;dPbA{cuLF z-rx!$HwoN~2br(|%1I;G{0W+_`tT0KrrCq8EZ)3vHC~hP=wlc4XzPdCKmG0Zw@>`q z`F5W!HeJy~kt>OLHI%DGOnUo-MAeG(1bP?_6NccAc!&wNv;&#-a;NQTmOXpx-S#fu zPI?me%ypcv+vS3L=9@X@@;V+jHdmGDb@hWff~$#_^g4`Zzj&?v>A(A8`~J6e#`nTI zG|u$9M7=lh)G56;Q4gnKqL>ds>c;e(4@1G!EkK3he`(RwT-LBp(ChS0Dizr z#@WKUxRo+$P|`JTT2+In_X=bWpo}koMcsu67Ti(3VjH+5*uyPMvJ;3HV(i7NPd{JL z$w`h6&PWH-)hn;-WcI7=i6`%Azxct2_1cVkbSo;qXVj@_Ze-GuzVaAo#41PGR>>3c zscu-@>EeAy9jlh@aaL@_RJ%P4_=>CcHGiDFaX!9t+39RMm%$N(u0(3PK|Rq<1Gh2>*lgK-)d@J`*vzx>*um@ zPG_9uwyWukwa#+eI<5VIY?k{si?%nPQ{!EBx`(&^t)zQCXU@GCjJl$< z=Sn9_%#9UeuYL;q`i|PQFzneIa%}$?bWC~@|7?1kzqiUY+t1}1ix0Nq>80ut{i}ak zdrhyy;I`AJzwko)4}bFI_L6>^_|Avlt$yVGW*(%()ogAd;)9innTUizoFCR9*2-$I zUKn325hGw0uo^3497rDDkE#z)!f{pgv~9F+cR1=#WrMrxyZJiFZ=wPk;=R6tcW?_m zsYGK%+GCW+EM*t0(QaEhXcLJjF`hY`>$Nw=j#Y*8zK1b{NT5!nd*2M+qo`S zG)4sFD6I9lPhA4TABe^Ch^fa`btbLxBrNN(=(8NYr+xwBnDEN@iRmK?Nzu~ zEN2k)igwkRX7V>ULmWH#e9pmL@vH()PIKZ}4>Zt2@h;wTqrLN;XLU^RMEmfEbv$t~ zk0|0JcE4BzvLUl&|499w+$m5!<2Q9T9;~eu`_PANbULq`?@h;DJwG%4H0)E&Y*+;vTRPftkx&lzoYNYMF;zC_XFF`F9eQJGe^j~g#<_fw zFYEX4*1w&pW1KmUkAXH=TP%2O(AfUz12r(@ot zdYXGps7p*dnE;&8j)51oYsw+r+ci<7E$^gX_H3dW2dTNi_`a?tKJ!9*?#n-E-}&b2?TuH@#XC5;icSBW5;gOPHs3Wro77RZ_&^u|+M8>_fpxoweiw-M* z9%E6IY~V8Vj4_(R?cr2_T7%kWOAA3|j_{B%D4V4sOU+m>e2mc{US|eRiq|%2RHO8G z0k_d=B1tq=bYyj+7}~8^0-qM0A-IUjKFQM*H6BFPZ^r|GZDd*S)LtdA0 zwSD~KkLxL@_qK=L+1h!%i<#GDa7+=;O0YjBi98rh%ZMd1co%QvJ*6Iqz#qCA-Fj&<=dy85t8Zhftme0D&|}BP zdZ(6yL009Kk?#359!y>K@D=lR)pKtHD|9(yEZnmq}n6S~tXZ1jvbF$$!RGq=o zM)%x#CXTWf!3|9oxw6QEW_YTpq7aVYv|;ZPMK<(2*1Da#-0pwqTD$+jTkSLd{DbW` zfBTVk-vhcSRVplELK_b#;p(F{@>((By`fl`gr3nuaHuD@!!kLE6N|EowxF&X+w{G@ zb$eRxvglTe^(&zYd-xf5QhASm&+ZVvCvl#{agu$;=I_8H$|&%w*O?d-Ta3#TWq2JZ?A_eyYB0h?i`c&Ni7 z=o}@^&?6p39g|76m+{89tfuTDx0PdN%*3a6M!-re!8^Q~q(=eC;$jsK1>1%KQ`aGA zjxh{q_XSTje9(9m^`I>lm{lA2^p$l!+F#~hjSg_C?)z@qoqA|A^M z3_y=BrRk%`Oe~05b>l$0oF<`9I}6t7@VoLQX^?}RtOstAuW3gq+E@+8dv-ZV%n51s z8|UsiANzlfIhZK&ZpE|uSqz`+*WM8JjrQb|54B(T;3MscCr-78AJOSa-NY-#g|UcVQ3v%RX9G=B6`ceh{tsh287 zBK=DLb0#Er;-KQ{WFHH_f)W#W!!m^&bc8Z=c#}5WguLo$k7$$Q^c?vGB_6$G-tA-Q z&pmaVPI0Jwwt&4y4M!Vf9l>QijB=XoL48bG>)C1W(c3E9OIA9di@tSx8`F7`x6pQn z!4r85x==0y--}MhI1k^Fu1rdtHT-V8>UR^0fM$p~4B3(y{z63k$mBK}yLoX0Lq(hg z)XlS=NmjI(onuKqYo5`WVPdZ{mA+ThP2%)RiyB+_YK#$Vjkt2!HaS-ntFYlielcOy zd0iLEu4k|cv#=-G(NGpdj2Qufdd0m8Wax)4{46wUa4$JVQtTqKh;Q4FmbA^Ng`hch zG*+1K1es*TV}4hPVDfKGa*tB?Wq!*ujb0`0Z1C`hpWZ|xB@)`f@`c59S;xBQr(E$h zEMl@{+`?zcz%7CZWQjRjiMEWpqU3|SmAt)g`soQL!HGTh9J*SlXCU0t?JTEHUu*Z> zce*|Dh>kHn^=`d(D}Sq~^UUJlm?E8?isKW00@2%G#KQgsAu;g%NiRcva7MAmt+HYf zg~uP9xn%p}Yds#_UQQQ>-WKK9H_uvc%p%R);(yj;dA2(Vzs<5p&1W8`mOEW6mYlK2 zP85L~IFrp~;}#cc_R{Jn>8qWwPOb9<#AWO4$EoE`jkn%qr(3u^EH>b08*|NedpP5r z&UTjX*;jnc8}HOSq!m}?&TrYwc3_NyuX6tXXQG%Jx7f%;<@`mS(^2!>WLPcpsGBw% zv26;NIn$=LfmymnT-=rkM}COolpbK?18X)~=y;F_$GI$5boJ+3-?*iBCVr=V_bYF7ETYZ&cJF zg6xeDz$NHxx2(&;(Q^w7Cs9||moXTh9*wj#N4B@jgBO}5%tdb;{GoTu7-&JR1(nCT z{W=Xy#1PPB)or8R8PK9r4tYe`aaCzwmStI^bvU(VJ3SD#GM>4UBZJFzZNQc3x*+g^ ztnG=^<8-NXiUHpQGH+3F!+LueRU*-S@X&`NV~GkDh&i zf8vM_R}3T6-1kU4!scf+^4ta8U}&W}cXUG@-evRIr&HwC8M~E&Kc&f6w9gEv1SXy_E?2B&q}W;K zbdPIKUirwIXOZY2`4Mbk@)1iZ#cKv7FTSElibxGZwq5qs(Hxbxu>etc|l| z4~O1<_b|w3KJ1LIx|#=5m&#+?s(1c4UFA=lhcg=)7RuiI^i*fCEOi>tx*8h>_W?*g zT82*fPLLwjOrEk7lPALHS6}j$J(WYBw}l2qXV~6&y|rhae!cyfZWH|BclD}@tM};k zjq_?#{g#YZTIh;lI%6`yM6us4r~rH`ARE?*pkE5)iX)T7d;pC$=1f*~tLhCs>GZC1 z+@gBD{oWtExBbrVJ=xy-xFT0be6+2P5M$$?RgnOh?3rBX3gf7_CW`u1qs9XOL4@a% z3qsn@<)dlsTlXb0=Z{((FEQUq_J`t*_qNt9oGFiSptgwm&uu_k#^hU#9qk1=$3zJD z?yEne9-MJyQclClj4d`#ppD;-s;^J$2c^ik1(@3tamu_2dq3dcA{6$nuZhM=I{wDO^;2GBvM3$3yJtplt$%lmuM!v@r z$hC3C(Dfv0hW$ml-1-zq32ZUVT-M$3h4Ct;p|N34mo@`oyRI}=n$d2cTwli{Q}aZc zOaMon(n2mC5<5-ScbXs>P){ROVaB;>|2wR?$o4R-C<(&I|R=p|xt;m|Z< zU$+~kL0h;(R-H)@(b85Z$3ltrM4%OIb=*Qb7JXR9$q{q(ScJjT(!c202Xt#0t~}uy z-V$FROC7Ro=b+(NBE>qY#Mrm%=Jrl`H^iJet;vHRT1v1ILK3edPg%r3Hi$;j4Tgo? zWZJO??WKabei2i!bqTR|JL=__Lu5Or5?a6TP(SwzOwzzZ!{&d{hp2m7CvMwCO2cJ| z_KSWB?gbHSB{pkTT%iZ4@3M{^Sn@SY+BfhZyJ#6t6wzv*rJWHPjytYjyQEinU2Y%y z#6$Y6;zRAx$C|D(=03+KHnEaXgu|pLhbV23vd}{)R@ExfNXlvzbI22!5L(-oi#%j1 zTGKN!>GkS9&5`N;niz6yuQ9W1j&&~E8as5>&pZ|9d`%^7@3H&f!2pj>1q99oG@de zs0zf?Rg*;Cg?Q`MmG=QPgim1!1UN*W8cax_;@I ztL=~eug|sbe(ky*B=E4t;ys$F;ZniiXvnwMth`;2n?%g*Re}XX$mDi{6% z>k-Jnq$=^`#YPO>$mt;HnKZS(w5gb5CyIC}F{PckQkm*p)6UsIAnof2fmDGMrgHV7 z;ItF}p(aZZg62cEQbk}udMUucrV5)C1h#o4S8{amVO($k*!9A|9apSF({&oJaCApq zb5a85Ntl!Lt^suymO7kdGV5cX(uGmy1z^tTD|3f%!9;^AjHNZL>#-;x(P~*@H6l~D zgCk#XxJq})g~ok@EqxZ-ia0A2%80`Zky0nXeF-n64kar@BA4$@`bbm8MEa+U-8j*u zay*1h`WQ!2W*SIVWl5eQkdY&Fn%bzfn?<6zJUSb*tXRY~idaa#W;Hi97%3i(WqZ*+ zB28^flH7_bz03zL#tuB`&HWNC#FKX%v453b|8cu)@3*uNs4r0!DwG+Em0~E5Ai$JmVtXE=|*){)~y3ql~d3emE%MFbqUFrfVbjg$g> zofEdGkIU%IMgI1d`W?YCxfhPPyl66K{mf(Bp8O;`+s~=(kemC+t*5h*%hlMjnnGw& zeaYsS>rYzJl! zw}r2E&ewFyW=mFWYJQFdo$a@Dwl#)we77T`JX@);Q_&Ybj^3D9^$o&t-+Mt~6MRx*{PT;;(;<(6uFWYQ7REh9Kh#>Jf*Ce9O`hN zos2Lywb8zM_4W4C7hY<=^Dp1qe(y7%)b9q)vu{x{^qF$}i^xMQ+w=T#?SAQ`IzZzG%S{=VPloWXk?eSgVgoFMfz|bZNQ2%Z@_OOGN z0OLQ?bQTH%PWysW_C$HKci0AX#6wIGm)y)t_7Cw2A9}Des@HV{xai&2P8ZFR3-(^= z85g<@f41I=#k$^nDki~td*gb{n9TPJ?>H(p{XC+%A5bZ)p=^oBM3rrbwgy3kP46C@}^^80u&j zq_x~RjE|x)Vcd0L*Ynl~W5*T#-VNP6Nz(URC;Ejk-ZA2!Z{lQ=d{`b@a4W_omZe@P zvoBY`JZP6TJ?a~s^&S%`3(L@DGfXwi@Y8ufdwoKZdDdyAb^Z@YDuyuXZ9kc2O?r<7 z>%4NDv{4+#y3d1l;id`WyAYWSVX61xAuur>h+O;V-Y;$+uE_DdblWn?1``WDpzg&| z;naH_dXRO=eyI}j3zs$YmGc0=MD11RoN){z9Fs+X6TYOeFN@zVURCUubqCWWos7QO ze*M>;{?kq)bP03LV2uyD-Akr7<+`~|f`ykA<|jM1*$Qy7qs#=w>!Q@X5O zf6|_3zct$4VjGhB0}HHO*Y|fwk6Vb-{Rqx|=(Ot0vn8{RbW3kO^fgcUtuED{x&P57 zigrjPY9L$XlPX%dPQq6GZ09(f9*0GD9M0TZn96&*dGp%tQ2vUWIp9KHG02Q_imWa( zzUs)&c5`{gyS&A_Wm|Du`h|}#t2PMn9cKff43oDI^bJAZZrEm(3gQiA`Z1V|r51J+ z-hgz&#D_!a@yGr7+~%pLdofYGi^){}mduj@$hi9RY$A{Z{dmCUd&o zl&guly_5-C9@H~gWzoU=Eq)`wRYd|7NuRti(IY}Oz--_+D2SKg#)kG^P`~BblP<#CSqLGVuY<2Kx^1@Y27}!Bkv0g2_$9olp3qR2qV7c-{DyXrc z6Dry&RI8Qya@JeE0;@3NX1&X^{cLxV-aIwE6PxUTY>eI%l~QV?Oca@@q0%ZQifaCT z>kfT~_~s3;r7tLA1BZ6T`k7&tm3-&ht^Lh^{&xH7mtSnJ{p?h`^x8Q=c`2rzP2L}3 z!}vXYR-br`xhDO(jWzg$P{*naIg`X3e;FT6qt^i>P%yX6(#?z;=wcOoD{dTU8F~u% zJVu_}0RkO9!>=3>>EI`?CHuVl0W&};OBA?3yVz6X)6b+_71Pgxw{mz1zm_g(#);O8@MBteKnxYfn?peqGM|r07kSA z`P41tPFd_g%}cn|D!c?%3_%#A0Y{wrw6-2t+G~FxQ2Y*g#M80F<ZHBK2sU5CM9lH3*764W1_WW zyChKlFX||ZG4@#*bFla0oNVJBBgTBJ<0SX#tL^gTpJ}rAM*F9~@l^Zh#~x@8JgB{q zCW~ivD8n2$t>A`P?X2S__JcgRohQ6UYcZGt>CmuZiPlNg3KCID-_wYnVz6PDOQb|S-O+|+-l(qqB`~&I-UxLbG|2NoGAfxfV&cF*H$GtaUE)vm zWXflr{!#n$|M0c;!jHA_Ja?}S{FwxD7Olt2WFq)k>*^5`#h5IrC|x_nZ_V^!qDZ^< zD}rY=`{Sx0%gvitH7R|yJ^1dM?cI-_Z@>N^T+|7-sxMkpGhEL#}VGp?Adve@%E6u-y47stw3FD$-lT@*)L z{iP+eSQTTEf(2^QXky2m2U3{im0%&Y!(^fuIAtkfl4p5!@Q1Z z|MBzf8()20SFG=E*RR|ydrcB=o|lELP{+8^4pP$@!Tl`$`xnuFvdOvNwxpzkp((m5BXh?UyZSVPm*D=VrV0+SbzMbf)XD>PcH zV9+ssV+=#nbs38a{6{;dA~?YZX|B>%5^%;Vlf1c20_pE&fI^V=hpunuJGsS4Y}uFA z60Gx6>I(LKNWd!AZNMN38depsP@8J;KzmbS6+M!w$sS=acKMR8_Gube;lRv&WINi= zC;rkuR^}qFCBRcFt>R+e*g;|2YbViCljO`eBqy%^!3En8`%fzLXttKFAQ^4eeHvbD zGh1w2A+Q!l+6zT)x|+I9jxQ#;3WRd#%;gHnn0ix8Ro2Z|((!$xLL$nxA)7H}`z#!z z?Yb`#TEH<8uUjO(iwKg6oEB@>HmR%YjCGOJGO@ywT%)>Cq*l4Fu;X46$@zK3wRl~| z=`)wxlTSU^e&HA1-Jbfzv+dFMF&r%Zg11(@f+FR`mvMu$|(JIhyp=Kb$7QLKSb zmAQOU^&I?3xI^`O{`dTV-_zOW?Q+`gq}05(<9`bakGbsAIH$ATxI@#pO=AOmD6ivy zV#}uL?Iym5{*L#Zd`=Sig8HMZzxU&Ni@-wsnK9G6%0j*<1Yazc9D503BWAAZaiD)g zNAvtPk%z^=&G-86H8K49b1&+37~gN7{VzXmZ@hB1-eaiS1hvu41M=c4{BniI6Gd)4 z)xuT4Q@j&VpSb;0+`1yj)ga!d2m|ju;vxTfxbpTIMbS_7jm>ZmCpPK5?pbRo@}G#bpiE7cbA3o3ZefCPgRgRv$JX{+V`IkG z@{Bi6#q8x5+gfMuJfk(TJz_jE(egrrvV$dV;#XD_`Dzx|r<-;Ynt{0*o`8pq(%1N% zt6s12`ERIAn8s?IL~62 zb&76mZ09v*(JE%^Hk1YD?Cp#R+oT7Tc3pIY^sYP5kd9R~PJG550I?4TnCef%i1-#>^tnCEan}9gyW1U>h`XB} zhF_x=+uQRBOW0Q5rOu%rATliYz`!XoFOucI1%X^wF73i)4}8h1HBrZsI0&PU0)&15 z2KTD%yKR9bUD#*TDacx6Y{|K_qi`mWUHI=tDbG0Vmy~6U3*{{f#m35d`y9O3x^2UE z8oMRy)>t%%@q>nv?nP*z$L{E)d_1+Z)h%+Y|V4zgXq<2#}jB2NB^(()b`9UFh7 z=_c*))3Fg&k1-O-Sw>%w4@pQP7ZCd>+5uC>ZEe}QY{n%e&gIyO{TTZUJb__6vR~o& zgrB|W7F10b@7CLy9(m+~o{jL{_Q7A$sZ0H2p5H2B#V&?Jj`%<)j$7I{QLl)FHV7m- z@?LUV6K*Xc1wtsnsg?dceo(V4Z3ftjY7xF%CWYwE7JS&xQC@|0#Mj!-p5B~B&t=PR zH?986dGJILXO&=fZo*lP&7RKK<9Lmk(~~%7{Bh;u{BQYrD|Oo9J1(|8-5kT6)M2)9 zY))tWUMzd^t%>5Da?W;+arPa!_|EH#&6YM61pahU-+*L^LiyBfhV9~tq!gy?G$bKf zR{EZ#(lK)j#f|>%LCqUuvWO8^fBxUUdRDgy{;d7@%;oXP^C1`{vi5*XuCOw2K!W5T`m>w=v(mc_#4Tg&5-DNc_ez#~G8v z?TI2M9kd*oD5lJ9+n7Z<<6K_Gz=Cyd<=O3FWuzV9I<0gR&{xAO=U2q?Elipvd#+(KRd2beZL{@~ zH3Cu-8;P{GZm{J_oge)lCc z95$^?(pzNc zmoj^7E#im}0zDMd=4hfMS_+YkAqoU6@rj48saad+FLE*XDNPyK|4Txh3o zXhBb1_ep$0k=PvH7Vnk}%HwRROXI5St>m}jxvhyJ&bLVR0yTC|@5&hG@}cQTyod6f zUlH8|M^!)!Y7%6pqSsCtTHc&Ck3wo&{I^ zd-Ee?{jSHh00AF1Y*zNvlfyWeXOdPut@EK`CC>21@xRK%$`v9ei}|8jO&4^0&TXe( zeEOyK$A9?Q_Wf_)hD}?czMNby{1S2=b{npdCMOAoB zB=N;>+;|1T8*jX(cO+hK_uYT4{q{e5zg~y&SbOYo#o_I|JVdNoMeLN7A)l!#(hE^f z6;!2IdJ_5AwuXRJ)g+d_S^7taGDh5|TbQ&yeqDKwM;_JM_fd_iy}83kHl%46lBJXogt@p<$UAKvlf$p^5v+jpMQ{Zov@y!(&}=7c*1tOv z&QN%wjXE~ltxQPqMKA0BNLv+tXE#&aYRQ;0zeLc>;m0~s*HPIx7D^r8TuuOS%#?K? zFn&jv`?GMRtB9vOQDh$zY^`0o^h!J@;a5KKE5exGJmISzmG1IjwdTSLLx$+4`Q34S+U!aRAT8Z&~toQ?@Mrz1E_u zIjDomLKP?z!?>!dONl)CndK!tneuzzxz(Qi;v9H^@0*%maWM*Vw?HZWk`-p*Y%Dzx?t`?Y$p3*FN;ikGD^J z^0D^ekDP4}>2(;_nTxWq7Y(6tn{31#x5Y?Ub{u%3>?Jq03d4eu_CvrT$t?X-`v@s* z-N&<3acHUEr@i*wrx6qKU>A>1v*B(qrd*6@`o76cj)1XdGwMDut!4!tVd*SR6SQ_MJqsa2>ktJX8yx$B4}{C9>pjnl)vTm=CqfKzWyPP86~8EvKCH zj(rYpRDl~e-qb|#a(n2ZQ~K%4z3o?j^|AKk6Vhq9s$b9W)0{K${nGwY_&6qs<0jf= ziFGtik8P;Rgf?0GdTEA5Jm{1;qOSr2oh}q_HMiB~>w2b#S+-^OR%5aK7WY9DMF{3V zO}dxj%nq?V$==vKzMrRjFSgr>X^-P} zdG8irElYRpcJI6F0w78(R#u_MN9`ko@c2V{)+5_mW}M5On7eFS$LsRjo4T$}VW+N4 zzGzR%^d~cOk1@s;eM;Yg$^~p(>BUCEoWQ5i!#AM>AoQ`q zKH-auT=1?HqF6ZB=;Xx=P+77}y;Ha~w!#Z>%}Y3(g;`GC4Vx7ly?r~blWf8ySmt(g z?D&rQER~8oAREVWv43;qs+!z@U;{m7>e`frS#4y0@2 zD;eV-9Am+s&eM~CsIr+xbvoX-bl8VWAB*XG=@Zu%tn=8b9RJCIF5*(U*ruPbGAu=l zqH|;nouB#?9MW1Ys>lv~kf@aZp$oh2BVt5KpdnMf`-<-_MDqec2DjF9;-0K^oj(E@ z8v1AyMkY@pN;f891fhvy-=F0%fc7!5KV#oP`?7EGNARc)cGoreyQ1eNyxtyo;8y$X z-}zyc^xsqihW&BWWd0hlpPE06Pg6}64^##`?6B)xHWnwo#McRWtf z?_q6gz0+!I%vQRGGmlf-8b7DjJDu$;KQ6r!o8$OqonxNmTYmSj*jD^e-1z3lMr!sI z<$&aYa~#OWL3}Wa8-5OyIgr;U4y2Q%Fnc>y6xy8WmWlYjXrjQQonu1>pIq@ejIZc* z82|C#KdUEGzNQW4*>>$JSAG0C46$=Xkxy(G@y3LMIFyf#wIg8T1x_2*uwj$U##L94 zboJ=X%e)TbO~rGy{ocQLvi<(Q_(*%=sr&)?8Q!oF3r|bU1O0q0gY3DA#3V<)j%*&g zYqx#wBt&7L^l4>5dSOi;&HV(AxfbN{xyn)VSa~~T2J2@ZE?W=YGV)bU`M4$R*f|Qt zC#p_e={MRI>#d1mjxGAk3m0>5=>3~4yniz&l*h--ctWZ2`n};9P5yWf=MTQu+JF6< zAGBxw?gc$T_eOjDmGk%AH==jFeT8PRiAmoaryufpH~HmA?%Mj`I^kvy)P)7P94 zjx@(x9w00`YAVK`fJ79wZl|oHMARkzGX)lliecIX#zoQi4lT`*5_4GZG{zI*EMv&= z48H^G4Cz7$KKiYwL+c7jJ~%sOUG5dD_DN7AWP5v9irH$ZaV+tzAf=EonvwXW;V;l&+Q+K>z+gtlc5Yq7cg)U zW^x&yDbqUtvF_^h6PO@GUfM*(Qc4>H!P8@ke5bpOq|@|@s1*MxC5l!1Nr{GqZx59x z+-RfGP*SFO;9})QS|ku?k$onq3G(hC6g?kWw|zomt$ji;#PJXk;p2FN6Q3C?x1IWm zB5dB@g+a{Dh;ATly_s#ocMX`mY@Ln|?g|DpZapL{uuCc)@kV#Ri;w#xmLiQP)SdtlU3N11XZN zzAR>|Y_&yE%ka!x*3WX6t+$gsx%FFV+IXU|VWIzW?-vuY?C?05 za6Kl9dL)q`W~@&D06+jqL_t)BUCh^mlDhHqT8#nSQhG!4`)fMs@QtrGopgA*ed!CY z>4|a=wQEuXuC)e@XV(p`t7+o@&bKNXIrSY+0A#1YF9 zJH_7osp(u%2;DFW(L831bLv=J&NSP_vIu8ITlEfhg?2%yu_mAev`lfYaY7glw&#yd z6jSLoz144bhM%^j?tWJyPP=D}RtxmePBd)C`QaDHnJm&yZmZg+v3XmuZ5OJ|HX@}9 zj#_xZH+jCdwPCDZr@NRto-E>=7A2YeM}uYi^e`%pJn=+KsYn#b`b|tu6t!>CZBM-Cm;GRl9mfckNFthu!TBYXy23Fz zX$iX7XfB^ba+p5rvtXC+!y+TMC!g)tR)>{ljxAqc#zb+Ztppg)1n6g3h%TBz7)5de*L+hwilnjrGxbg+9=+wt3c=5HBAt%UE}H? zS0c6Hm028&i#yKHQC1vmkRvVtG5KIpsyg%yF$ZBcG*SG?^DnfIe)8V-o7~>{;~npgtJAzsk#TpI9w&#* zP40K*w}^U@ZoCddJ6^bX*pWtSOir^8IfI)q<+!H~Ocaq3f1s5_1qq#ht$N!bRvtLD z3T4OuX;B^qmRUc_p)IS)zG#vkK~gR%`|pzQX-otx)1EFy&Kc-3*j?}fIx&~+Qeoj~ zgL?7TTWfA_S}*Ka33D{$kVh*QT=d7V&A#xM$7gVsx}x)kxZOvAO|o@=x69w2EcA_{{Re;b9RgPSOU8Wi_ZHlG$p%Z`nLmnITb!g{p=0~Fk{nwYUDVq& z2DHMW-J-#;?x0MvK2$5?Qii_j_^c5+>x=uqQ8p@ZS{G1ev)LwjxWYEP1<-BdG_5

    &%mMg_)aYA9ODZpqJpzSU~zu2+R6>bQp#e>NHU{5=FOzh=InM_V%h|B z{nC0JRcUv^idbogjhL%B9e)H8f(^OrGYkroc|1uBRp(%gGf|X1KS_uanBmne)K4%5 zuk_jn#hom|o?%}kyR%BqoVlvkWt?rl@mud}ANsKNNjkLQCovp#VH*9;P7!~69ItXq zLl6__UWw^=1gn)9<=q88RTHTN48f8K6&oRaV!}k~g+6C<#iUFVr}7;h+Yx6X z<#&SE1N4Sd_jht-Mk1~NeeJ7FFGGK}J@@4obqnh0_U7yGpVQSHy%yu_UAhva$BXdx zS$yU!PGd~QngqtJrP7RvA`iWZEgJfqDCX^_xj{aA*EOBBd!zmOZ#~j}@1K2KFStDu zufyQIMQo4MOmUWu+g9UuikeVx02dR)m?R!PQOr09F1fWP7v;Kg|5cgu?$a4#xpA}J za;L`c;jA~Fv|_jP6}z85T4!I8OHTCa+p)8A`*+@1Y4s4K(7j%lZCwSp*7o@H^>+utKS2#;5e;wW&IX4dS4I z@cWYSF5p?8ku7@LIj!TvvfEFyU1q!RT4F_C{Vih$WHeN?Tzpj}3HzvEC2?Ks6P;xA zjdHm{!gdM)I{ssoX-Ls0SJ(|b9Fj<9*Aa6s!wVNz9^-^p$R&-dlQIo?x5sx`R&__7 zjtgSRG6_ZR7#GbtS2-7r>$dpc#-+t^x`ngk;(K1ob2b{T3rD|DS;dq8nJ*0xP2rAr z8~1Y5qPMeM5p!Jq6$gEi{~!ZxSajvw&}&~EI>HOK&LbZQ?x|_hhx;aCAs%6~>a@SH zOKPq~;@pByF68030}5G)RYp`H9a)pTeht&GC1x_o@0wSR%;%U-f3hhS#)edi)LII& z>y`myyTrA4L>_TuCQ4pqbiEY%qadm=`%a5)JxpBg=$I%9iI_aN@sUt@*C8OG;>pR zoSJXO&*eS*EH~ew>1>bR*>~ld@#wbj;Ec82sdX-!e=b`-r!()KewLfx_Osq)<6L%n zlAUqKr8D=;>GF)5%f?k-GX~ujE^T5lRRnuIma9PpACSGuPX{`{V!IzNxD~7w@@WI<|=1b_$lW?>c(dhm9JO zh1?*kz(mnkqZCj47NAZPvDWJ}@~YxhU6tfrMY_Ut-?{dwfBJa)&EI}PPZ$g8c&gag zz{)d|#GCpJBNNiIJaUZR8pK4gPa0fbX)+#VVkwHKZr zkG%IsIPPueHbRDF>H^+vid+%`=RhJVKpE;-!aB->$Euwa9PQ9a6IJ<2OgU7F-$W0a z^q%8__=1LZ8-W59DixC)-R&&qIcgL22_NXzxNNtqaaanMaUbPb$6dIn02ETFM5G3&hQl~r7eDbW^P3M9CDpDa2f0QMda%pwn|WN?JEw{u#^N_`S1db&RQ zhg<)&l-SbsBACm->q7KP6vU4fUp*aq;i7-Rpcep)j8l#to0%gd!I%2PVPl^36{Z`j z8eRJCEfiR5BitUhWh*k*$8n=n4E&|-3cVDhq*sD7@Tm$Kt@x`8eEmPf>8@e|(XD!< zRV}N{_`4Hy!#9~t@CL7-;YMG=y1R%PKog`H8-V2xCHubI|FO@>r)%p(B?m-0xQU6P zjyJCA7Swa+F106~y4Zg47a!DZs2AJAdKMdZJzdwy_0wE+)F*>h8i7zm<^bKMM9arZ z&kGuGi)(5M%fbY1FWrxecaZu!P)*~zPzB0w;ec#mt8BL0D_5I6-q{u$OT0&MCP>xc z>pk*tz+lo+ea!f|T=7*`IfC>ySJl4q*1Rbz)-uu=dlC*kAM9q^%Db00|DLV&)qW3a zjBWOC)*FAP=@$PX+_T-D&G9&Y*}bvoX|K%q`p1TcQ&-H)Nc$2;C~WBR;N4ewI2*>c zXl!`c2r`l5pj;fe+0<1;O%h|$CCZmy)NQ9f;Jt}2w7>YXr`wOeceTCq;Rkiw#oe+y z7Y{GtO5$mqWjmt}S9N%>3`=fc^NM0{BaVlTcv2Ap33b)zw6?6L-fXYE_OteZU%1dd z_VFj%uYBTtx|*mbo$?^eAY`RQg{(tA)5ldw4lH7l$YhlRJpQxYVy#t{k|GQC-$|if zIqKMwZ1t!65*;6xomN?)3T!POlCPWy^e>%kie_ zYN5U9)4XMe?!R$ElRS+DKlu$D4?}wWRb8Fd>oET8PrlTi`P(h6a zuQ7B^@e>Vwn^zIp!RFOz>Xz{`p2D>zwDdenUQr~Yk3>Gu3|*{TSM;{Rw$}|=l6FRG zr0WDMJ`I+^v?*8vv7ZK-NWo;eRMHV{S^=0*wf$57x9r2ovvMdnqb4>?}My zJ#IXWsyL<+YmS|P7;PJ&<30zTG8ua@jo^l5jh!|Mt(!XQAEK_XK4B^qf!itCP5vp< z=eY1#4_Qo9QekYgbMz5}vgmQ89}02>nU*X?_UKBG#1$S;X}ZEY-r3jOwqf3VuLyd< zab=MJlpF28Wr3{JqMM{ta;qZdh;oP)HbB|FiAc?48o~(0@q{nzf;{zNN8Q~ekz~QU zz$SfB43=K)u1XgfV<%OTzFbM-FwSGdy0n@7D9$i2Pe%ppD0cCyTjbBmtqR6* zt)oe6)I!I9S}}feaXOHz%xL!tgC`qdg^hx6hNesW)y3MLPHJnb#VS91FNRCb$Yf!i zClq63gfg(&DW#3pzTHK^#?!Fbr|1}nCBExpe+HHbUw)V9s{(q|>ScI^$R-)Q%~ z<3@Y@eHZn*jQ6!Cp2UAn7SEpL_EbfbgFE8Jw-hb+~GvTew3Ei-;DV{;rw)os~s`Fy)%vv2!H z?hn3@Tj$ia`Q_)EZw&eVnZNt7fk3EF9Ju#<_`r(a3Ton}68qIm^f%-&6USf`VCrc#^qN&d3pLN{W$#Asn^@{ z|L}bK^zXi_{i}cTo9#m%y4Wu2X=3Mfv59cv6Aoxcm6;&w6Thn@cFrDhWs?nkEZLR> z6m3is^(ER`@vSD=DvsM1quq@@EOkGEuKhe)8#kvO4^C}2S|uUO3XN5H1Xa;40v)bCnzv|Nhck?_SM(hm!EmQee=1Ob<#oC ztq`n43um6iNztWoz4h_En5pu*8M=Wa5a@gGr@ zz|cj}K6;Q@cLFMvAnS4$M^b|r@*GLvlb<@FG`It$v}6_A;8`+Rr=>jS(C3(8n=ZdN zre0B6R<)nZIj6~!k!3$XRhekHrEciZh6QcTr@PEBw6^_*&fL{*iI|+($S-xOF`!v5 zX;Y(iXH;37I~8<^SS-{hKr7_vL#rHjR^BnrwzLP4rH5qf>+qBL+Ar&R^isg)I#D)P zwo;Vf&7f8-H+ZvhDmrGT1F^~sFA=X*cuGx1VEH;VGcGfxt{+B1WCOV>gTS^S2>dV_ zn3besRx%;8R}%dnhqMttcQ2_d zyX)64X}@<#R}HVUM;<-je(l$uYQOM{r{Z`;zs8Bej7NNh+x{BOyQn#0T=y=ip?b7b9SCD zzx&-=5_VSIJm>7a_S*XlIh@S=GWqBQJVVSksdCZ^OJV6r81C3GQM`2dP5ch=Ja)2| z+86%#LHsuH(e}_outU70)g+Or?7|Cow`g9}moGixPM2-X7>pvAv9R`(4LR*Xgo^gI z1EcOnS_#z=mThBTrZ8?!JszCeZpK+|oKwrUrRG`JkG83LjineKA?5^5?ZwWF_E$rq z?fLdN=GmiqTPg1FYF_~p_WkqEw)XYMo^Id$*00<7w@fCyINAsgOV<|xJwnsPVMa4j9F z7R#(prNmgdP882=Dj8SA)z~PT7RGnbLVdJb?C%L5Hnfev7cl@N)=Z6e`x{HSb&Nsn z$tI;S{$iXX!@i-u_YL*~{Fn9_fkPox*D)`@iw0J7RFx%IIxJ(4iWHc#i7jHqyaJBM z6R3EZAO52)1|NAAZIXl0b(N{$U`Fb;ln2`KA4qu2+|Xwj8%YnxaYPzi6)gvL)tjm! zn3uIU%{L>W+}(WuL zM>#%)fp<56L$UB;v%cpHJJ|UB4!US8Dn7N6P((rAaSnK#q#s*wll}u$3A{P zCW>d;eRwHI6Go#QRKzMc!tJnj9KjUp#rUPU`z%4T%`Uw^`L)e%w)fm(#@85+n&0^w#W@H& zcqc(@<23i2z7tHD-@3&*v-QI3GbsKEz=_T9XMnQm-vAh!-glasbY@;1@gn2tL_ZPrPGMYJ!8(5oE8^1dlP` zdLo3_kP zZi~Q^JbW(tm2D+#IJXbAacLaOgNsbyV)bOaHc_NL{1GH}fd_+g(LUjyHfd$`q0{g& z!#CL?jPy6b^DrRkj2rDnPDBj~vV@0N+s0|oN1waRD6^jJ>b4#HVYPLw&_}&oli;jY z5n#0bmUc~JYMC9ZgGZ3D>V27}-Nxl%x#VMf5z87PJx?Tyc-U6ebjlMe{T5ts#X4dk z9@~ny7arsBhv```k!)k4$a54a0;At7q72&L!ubuJ$l}|#PvD8HE0-_g?%~yT=bfk8 zLl57MpUj+T?|l##(BbwnbpZ0NVVp2wlF5tbpyM4y_KEH&lG!n0hB;cnaUhhaRwT?* zg*1Ad0{lV7Be8W5W?h&IF8V&~GLKh}W82@To_4lnYTh}upBqidci=?PLCg*u$Sgl> zc^mIG`*-SZ8}DJ{+hUz#+J&3-yX>vEoy&)bnHbwSrEC|+tgp7T|9vmjKYiQ398=Y-aZT&IttllEX1GsBs+$ZxGKv2=D`lXJA{lE z9bWte?oL1Xdi&NlpK4D%`F6Vvmt6Pv&a{*Jx9DQPWy~gdhax5n_5oMoCQJP3R7d>- z5qn;-a7?@3hb<9Nr|AFSLY{%b){C|`OCaWW>S|zPdrUOVXrJbR&4Sx1p^GFT$sYFN zCaPy3XPp+75zkVzEKPVtyoiMX$Kp1yj|B`6%a?eU*3!**>CJ6Qi|`RK1b^5V!#0#0 zD^^9w46NF!(Xy_x;RzS;x&TI?+o7fq*Z!j)ZwC<(Biy~nlX+L*QdK?Tas3FFPw02~ zbZjdwB%+?%WNeplf~B?#E!N?oZ?}|ZyPDhS;E{1}mne;P6F)hUC)#sYP3V_Q(I~ZP z#J|P7PU3{?D;h+9vp%uRB%>S<<2s4M8G_Db%GzsyZ&0w!iDi348kX!6v>8`es!r{e zMAnDRjhfGpprtqEgoAq~bn_UK6?M5_M1igOu!rU@$k zUE||dcrz-0K6C$jPqr`q$p_kp9sw;}knRLh`~nB(J$yO>zj4I*7>9$7l|JTCpJPXN z6w!LoF6k zlA2@dM6o)q4s2Lu+w#Ve>z(jzv)$%*mOGAFewgw$-!tbf+^pYaKkE+@>x`jK`#lWb zjIr&^`}-VJ!7aCmZ|sltHVI>(#Xz(D0wqLBr#Fs4wWw}@kEh#FnMx+1^SEa#Qr6G4&!|L!oRtv{m1|O zXnW+N`|TuNs>(SjALHl33vviEP72}2k2K=x4K32M9y%a+(m+-0=woM#VumKN#YB+` z?%DD8E>09dxUp;-oAVf%4QGAjsrlK?<=NhHwXEC4LN+!UYr%^HC&hwlf)-;Zko^88 ze&?zV!xRxeh{bhOs@hAqGyTLjUv1z0$6vQsetn_6@#=BBE$(J;;W1}SCOJm<84NPV zHc*41NAj>AnW8*T6g8GOP-w?-wY0}54?9Iqdla?w+E^fZ)siYMz{d6%#lD7qflF-H z&l%$_PuCmVWj|o(!6~9B+~OM*%>L^Y29}P)W{o%cdz*fi&*fmGH}TMw@>(mu7=wyi z;%s;18D9^#XA%^Nc8!3=om`$!0q6ZCeX5SchW(9gyDZ?UEcIh153id`;Rs}irG zWxz)}hJSGtpOO}=>1SM(&v|c`qz&ID44>A^4j^iKy=f#ETE^{G_36y*COepjh1(Wv zXfBUhp%8AJh#~ahTj0bjKB%ziZ^0GL#U}rl;j^Ot#dGTfTUoi3oY3& z$k#EM%GG2Zue04d)zj(BLD}qwvKv{*vpP{+b7}`iac(U6);O&<_qKG+b{lq0epo+i zw%dHqoV#$dewY2MUyE&*j6Uu6Fnlw{w!8ei8~Qch^l!OS`*LhfV~53!BM_)Lw;sch zQsIpp>H6M&;0+~(Pw26q331$MB$#penQ&ft;?Ml}X3F#Y9LAGxwZHhEkF_6t?`_=O zyRTilate=F@I;*xK7NJ*J0S4;_d(=h{JO&fpUks9>mqS2itq!&*;dV6Gfz)2(kj2C%*PZyXiDuUUP-N zgZ1Q(Qe3IG%771E8lqNgn}JxpYnAHIXvxagbk&yJu!*)mA=Tj&%=!f3m(5WXP{LGUrJT%u<5 zDATp04lo2Z4P|mfQrnF%GIa_;f_rYuuwJf>aY}9FU!u2^N)XJBkVhSzQ)?^O1GrS1 zuo!lUFSg3UnME7e;)1$WoQ0hp$Vo<(xdkge(@aVCu|;p}0!LpO-<0xv!+U=ozw(5E z0p-Ln#x>6$fY0+L2Fyt!FKFsXC>-BT;PxP2(#KCXUAuzcAmT|Wo_}1#=Q3`(`9k}^ z!#CrO;+^=t;;rqzyQ9iHx6(CK9P4;TQFj~RhZDs(_8~Ub&FzB_;-^A9N8`)?#`y@V z6q_yU#Xl~Y&vUP!iR1KjzUV=V(=2sosa{Fu@mj|+;j^ByikbCQM{Hdx_8?rf*_9{H z#ze6?+C@P9LBUveSkA-Z4ii_!IF2eiY<^ozGv{G(hxPkz;I_rIjr*{5+Gc;F^4TwW zYV5o8vtMqz+EK-xps2Z#dqXG4`2s;!yNld+#Em|%VQ0h%oF|2Gr;$6QcmzU5N%zXH zTKnl!7x3G}=kTV}XWGjzT){_W&uXH0?HW(mW5TBseFS?2J4*g2`#A1I?(sPc?T}-q ztQ{IB4%*GZA1904>B84>d^_5%6%U zwZ1;cvW^qtj%t4p_pFJq^U|LfQyz|0US*li(!W;JCg+A0bIX4{#IcjV7kP0bm>J#7x9qG8j6f{LN^0&< zE!M^@gf6H$!MoX?Az$=kwqxatHVmw3tKKrELcu_K#!O?R{pB_Sv0qA?01)`BBz3gI z(tp#tbT3_B!E8+}wz2B)C3?*g(6nQl88O${F}hug17xEPc0b!LvFvL~vK>-s{u#To z3@*|IXGOavQ74aOxdv=#!?@QS3icKk+f;OfE{!neF|UNVqHaw-FhBqhoI~oIxm8Ah zYh2yO7JcOkKjxuj{_%LPg^2vi2917!UKmW?loF3An%>eL6GdM5-p3t5PWG7u{A&At8Oj7i;p(H*NLJWpv4ax_+fEtl|4vyn1yn zJ8YfSY~P7&_DilB_bz?)ZLD_Sc~A{KcLLtXOS&>y>^l*_cn;1wUU|c}7kQ#^6+6}Ad*|B4ORu+2eD?PCr~md*yfy5M-WGQHmI#d;d?c2O zCW1)gjv^j|=f&N-xmqV9v=QFCKWJ z=mVvK0v&&QOFaK*6?W2MrC~}1>qu3sqCg?#STdnDmLyn~Qo{RNv|KZqNlIB&m7j1{pG?UB^hS3)0mEyVyvWW8 zo!;fZ@rx4>o|_!U_Y#ja9Mf>|``m@!wY%><-oE(7kF}3}GFx{lvB@*ISZqecbUJLF~n?6+~u3mL?ZZ{w=CLr)YPz%J5l`Zc*Z9nf61{GFz2z7NZ}EvA|Cu(-qe zeK&C1V%o-i*g9>qpXD>(tUst+V_)N`dh=A=Qtyr4srGCz%adh`NyI$&3y~ zJ?-E9*{9nFKcsMQqL({U>;QE~krpJCUwVfR9#AM#9OS2vlLW?)6F=RB!d^K{Xf_t{ zagvdZKn>#a|e${>U1Nnw((Xj`>3*!M_o70$QTpbQwxc)qo-ef6j9AHMc0d}`&EcHymCape^s#>5!pCsE=N;ket)&!}*T zIKxBy5TAX5KI8=o{pCRua2*gewsD}U# z{I8|zDXZm#ERt&HL0kZ=uj-s!Bm`x|%1o8JTDh|!!fw?wfMutVX*{j0oxkLAWfl4n&4^#A3_M)V56RZ)7&{hmi!QbozoGkLfBQI9+vle@}lStup{ES9VCmp-kE?j)GojG&8efYxEV)-K8gfF;O(}OjPB&NU0}&#?58=sJv_CIgT4G zulYVK*BqnmX3lLm;%BTmn69-|)xVScK{0LPt+C#SedVoOReqSfeQ)Ei-dr;-kEf~T zM(;mcFy#qw*$Dtb6t`t<&wby(yL#Mp_(dal#Rw;g0P{sKgz>S?x8A_#Fka^8FkWt7 z`P(PkQ~z|n-SeKifZNB;O(^j41Yf7;kYR^}t808|$q775!ACGI<1hSkJK_ZFnz;35 zFzqFIlE6EYcqH+)*YG)vEA3;Sy1V_s=O4r?rSER{+!s4i?o1gICn>yw$9nO10Oam% zqsm77%#xlv+hcg7Rh3iQfJ74oh~`D@6Fca@1ArZB@KY(kY_+q@zODVamY@6I<%-?u zr~qtdo}%j6gLJBEKbWM6CflPfYK?xd>MbTP+n+ZQw|o|<{>q)gSP{j0n{}^9@HI2-Bd0}YQtU6WZXs0e$k(0=0ioIE;Np% z`yDi_hLt_85MizVk*YxMPD<3Kk6q(L=8P@fuHy@D!P1Cc#}Xy=LT}@=m7RI$&3!de z^Mq+K)2{fWG-5=KH24D|@=>%9DHa+K#{@iU3#H_YN5g_oP_AH~5fT*UozH9#%-q5x zK4IJZS0Ba`YwBuq!1Q)EJ{3OT9+J207a<86pI(XGV9g5Dw~HOP3+RH{3W1d1Sk% zw;Gx1358`usV+m%W3;`wyJ96n^Nuh2ppE@|=UD;Ty-Z8&g=&#CUQ}ZhF_iMCDdU5} z`+K$k@?GDL6|P6>grRGZ0?x@I{;r~oCy(}V?z6wobD~RnLJA+lK>jiwNxjrgow|-= z-YGnKdPn=rr*3cWdl2U|JbYoXXZ9oi)Cag=O)qg_Rxp#O-KIC+n!d`+Q@Lw?mtKBwvZ~go#FfN(>kmU} z8#&;hWlydw=Co=qTmDYdZT=6#yDg@fa~sY+cHy__XSw+flkSRXjidUz5&OznxvG3u z-hL0VH-=nmxVWoDt#>JzddJmwY#5uK2mwNrc0Sl4an!~RXiOA&N0BGod&l^J^Oz`d z=f$^+{`v*HnercB#wRg;(SGsV8|^nQ<5~RuoAH>$N$n8Htrydf7X?lfd7`v`;v^=D z@td^OYF{19bB!0Ki;+EAD8eS2cURd19lX0qM(=L5S4A?_MxaQ3{f${uD2_>rGU<9 zH99!&ex3VtE+5QtbglXAe~sZF-KeYU%(jd_bL${QQMOCZG6OS?JN6y#OuvfXCBE=H z?oR*c<@N*o&h_U{UBL&5@5hDLoAHBxjY?dJ#n?E($9Q0fzT>OI<&rLXhVgLn&PifS z`t!7d()0^E+)dPEk^M;%^&tlx3mh}`Hy*SD&V7$u7?laAWLs9Cj01M+OIbBj!xUTV z844Hcb!(=nvfOfeU{%+vzO4Y=5tid3tB)pd$%J*%4e z{+Ok>rWggls?)n}A&VHOn2qXEc%JEjM%ihQy4_826V|yIT69UiMBo8_Y&``OP??RW9b`n9sQ&D`wgcq-nptz$UWfcD7N4vixVF5HAk-f8#+Kd*La zUlThV(lAC&s`UIk@AiqFF=8^RyNPm^cLGC89q&AzJjDs*Rs1&btR{+&eDq{Hjn_z@ z#LdQNL+)rmg@E~+M79^(iaTK4)kK*SRW6!n0INwT@MAYhVcY=~a9W9;4Wga$IKANx zIU=774q0@p+u(Db@50YKYh%Zp*3C97AEXO>v`FOH0?`WQW?L>0iRCw0#UhbVL4I`lmoB@~V=*ElG#)NQ) znBxg_HOvu=@gCcNAjOa^!ZDgQOgg=715Su=rcd1P57X|1HjE|GWSA1i6zO(s=$G7c z^T3e;nSBl))JMpffx|_3R6-DSl!g@=Hi6DHut}r1f>_wJ9Ca?Tj)%kQmr>BS zxMW$h5S9{yEV$uj&V>!vi7$2`ExgN0z=VkSW0Pn>F|w3TOCEQ0u7l$V+mCM&r7b@N zc8nJ)@lrg#1(oL^d$_pH^OCpTe68Je2Yy=f2lwN*inq7B@dnge@yiQ&roZ$ZV>{2A zcs@d2>9C@&;@?rG=?F9hvHkk4qSaJxSXjA8=W&0~{(y#6Ux_NuHq08{Sf`bz;*XL) z^hEI}q{O}(!5!7-?*s3~p1J4xZNu4a7yhVv^KMHW&&<0Gza}@wn(i>N8})6!YxdUB z|C&DHI%uNEU5poO`2B=<>;z&b#5E^(NO3~UA4}7pK2L$)8tR2DQ1LYS!ui(T#0SxT z^ussW-~9FC?YsZ*8ovMY9_;9D$JMXXdZX#3OK&%R&0zoJK6rQn4uAT*0bWXjyOjLf z=he0SJ?t#;CNR9HBn~o+G4AHX&hHBDDB)x4XIp#V!LxYF>3iDezj$|h-v3vV zjuJ6mL+sr7GXD7Eki`R&BZxC@PY#chAjV~Y{MKgVun`(vj%V1~FK z>^14*#E%z4Y{MuxLB!;bcO&r^FT&xd;J7JxRE@tkQRI~$lGR0ctzd@~i%zsgldYO{ zVX>ENo1Mmcx7x_KKNSPRAkPZ-BDM%uT*`JICIF4jBDV&GZEz!$6#=3G&g0SmvHC0( zdc|g?D!@Y6sxnC9b$<%&e2(T(8uFdi@bJ^dkpx5D?H8iR=(kwG)k?kjL3w zmTMhpZmdo=X-*vfv@D{KWNt&l%xnD!EjTbj@*x88G$4s664)F3*{jS+cwR0pPTL2UC@AkY=bV$EqObI_QRFOXT&*B!At%)T2?>ZuX!P; ze$`e8FgWci5fCo08#v=f8hEUkAwGj!@)zFJ4?oPI?H~^ox!9Hi5jCZl2pk`f^0Q$4 zqmJh!*YLCx&rgo?=@`7s#!p!tKNjy{IDh_)cFXDW?cs+2yg)<0ZfcKw`1bbj!)M#Q zc%yr72>QogMB|Aff2&9ZeN)4Bi{n%DUm64i`msdx!A4fw2Lc9%Ts%$)4~{Uba#K~k zWlU%6VR5wGhNbSP3*$J_MA3oo3c|Rf21LAV>4W)QzHY?Fu!&(Y%9}YMR$v^58i{GL zEl%zx2#tD;fkwP-sB^u8j=JdVDzEu;yOM;h6^FAidYL-DrS$Nn8}mKl-?Se(MzN`P zY#cYpyWiC8^BoW|07E5rV%(981)fmg=GUk ze7ZgHt*6?vPhG=DV>wa01sGsq%f~ACxM-Z<^AS*fu7J<$!wVlNMY_jVM&miwYu9mQ z?K&U9pbt#y@JS6$B;q%Rm)mcD^GbXFhfm;6;-}kZ9=*3c@c!1$@`v8Qv)-yM3w;4O zPwu^FqDnmC!I~2emek*#IBUl$rm*UKMV5SQBT2F9F#EcJ^qr17y4*H4W^UptcGlPM z57Gs0u06}@urtpG-`-i^Ck0kk{U_IpOEn@f=+Xo{F9Jh&>C@Ssaf@;R$ zx18CRVNff^lG3HNw}O$C%jR$@7xu%tlgwp;!q9$f7Jgjfcn>UbeGGJ( zo(Vo;DRNB63sJ`p2t#dPi~}B+Q_s3uDy>&?}}M0LN6+j0wfYBL{2hNf&Q@R8E4lBc8(aHT2BI z(*1=Si+85n^@ux>vw7F4E(Fbp;(}cGi>kO4OYGFsTjwI(z?lh%G-4+Fg-MP-N+EWe z5=DLV1WRK%Ald=ST#sGl^ozXZ5qtGhVvhiUW}hYDlmvu<4sJ43UTTP2uS*gylY&o$ z{2~vYDj^V}txI6Bwvpplu`@(zR4jQzqvM6_S?2bDG*l=v4n~5%JbrMJ$hV!cJ@}*( zFLd%EJl}ZA`6DNaJlD}g5y!gAm(Jk=`dfIK=3IODp;PVA&peFJX5a-lz!J|>8NI`e zE*L?+*Ma9{a;vAN5Cwt#_{5m7IL<7Fuqq4)&9?p?b|W{od&V?)s@&+Rw~Xmwv1>T< zY~!|mS8DE^6Ga1e5xyJxZNA=VWjA9R9XCeHjEd2tT||W^EMgraEMnXQdW;Z1>W7Vl z3M(<9<9A}iClB0QV%r>k=5mIUiFaPK4V&T9$f2`jTRQ4A{I6qY&M0rjI^)Pj85jF- z9hP+;{V+H->lRGpQqwM|aWbqE=M*ZT&-|MviZMatj*p!5PJ1pfapV4n`$Yae@fXjv z_SoM))t>l==kPg<%kAwqPT~3bvpBKe$B(l4Og*NHxEaL9D)`+Xp6Ku4?hjA=`TIfM zx#68k`|{lyxn^Ci(kI3U9yL9_cM0ERe7Sw*k8W-M*Z=r4{5El~?Vkbz-fzMk=W!jJ zV1xK#c=4o!ZOJ+yVE$L#DT8a_qiy2n%DmFeM{8l!&n{@dKN&<8B`^J80d-Pa^^VgU z-S)SQjhT(PHjJHn|na3Z;1az@&@KIITkOPbKvPOZ?&d{n1002M$Nkl^w#tdwi>mJ_8*|wIm5+39_Mw0EKvaX85N61rB;MRrw-jHF%J_Y2>LJqQpFvlT1Yh zl)7Ff0c5Tti?m(nsTBrtDx@TkWXr{Evyhq}LhHrTL8C1sl7F;E1OeZ1k;ZMomSVio zh9d^HZ}5knK~p<^D^45kf3qG+U7;mk_r)NF3)${k^S#cL+HEL7zNcqChPIfY$_)Q z^Ww#d>EMmF8Rg+c_GKln020fE@eQ=4NFjGAaP+u+sqHD0>Pr4iJMprA<$Tt2@*AFY zOh8^~55{fi;|DKxpU~LXokKi1#ZQCrIHJc-altw!ioB413i~Gh7!l`7$KJwITQ9c< z?!S)jDt@ee=tH-*oA8Ss{>(<_Je)9QXdEwm5=;|C@M?R6B%TDrd6e`4*4TnhC9IMH zlB^SQ77822l->joT)-ep^c3K2c<$5;I9^A##pNf4luneK9=HuJSt=cqyn=XlS6eCirSHR4DpT)6fq_mK6}yd$%2OO z++Aq@`>(&Mj$)NZ-$YJ2qa_qIR#51(ltegwNkKuB|fFE-JH zkP}OosXsYUL@%g{ZVkb1|e zj$3a7V(o$MAUK3N`fWX`>T{;5vCX<=nd2r}L+t@qF?P_JIGRz%iwmrhuXgfc5hG%Y z=?*mtFZ?ntI(+Rb&$r7LZ*G?_oN1?Sx(z6NV&%$tT|wmw066ixa)s9MC=WRpt0Ra$ zq23EM_{$j8OP=H*3SNoTUGwNfAc^OJHBxU=VGdqSEO~&3T3)aUY}AK}zy^~e*_4H5 zt*awO#?KhAWP7E@h!Lv5gHsj+(%T!dr0h6}MAmJpPI!`}U3$whh3N?CC|S0~ z8#;~)j~n)%+9BbT7luVRE^q|#pIU*Anaeav8Cep${TXD1$xpVAIFg8%&?Ot~6muxT zH}aK?&{8hh;G!Oj^KAguCkkivz|N(;pr@k-R?(Ocb5%GD&`aQiEQu2Zd(kugER z|Jk_FSF|0v2nQ|F8;pGminOsl`~+WrK^bvaqHVK)vi3i<@4ywc5ge2w&afJ`Y>BRw zog9!f<vtF&Ja2JTtO0mF3t{hu(s3yo;Ts($(DAWe2+vF}rYgrlC z9{|X*_G-oI7kL(iG(7day%+c>SY#81(BsAaRki>Lmn+*48w%w%S4nDawh8&%dl_xm zkyOA$XZw4+THRwS-i)EB<_)obr;M3=v4oTpMD49op?XV20snYT0VytQ@(v)6jd9Ge z9a70*gk#PzyeyFCA$khy`uXYs@kx!Mwg6D)El*n++R1Cn9i#Ciid(FibG091&cPefpNrkxf}_~S|yyhHZJ zYk29%OIO>E{`r^f@yCABe)PTbcmx!m!?<<|HaN-Vj*c;KCz^jO_Qr=J^74+7@Av>F zeAEv+JM5r1(L0Vek?M!t_g!tDdh~w$Ht~J!6Q8tBAc-Ezx4c)RXxu*dCa z*z*?)fn)#}69>d5Vzcpo>aS-uuEHMtFZ(T>H#PTs9{;}(cjYoBe=Ymud z#wdj-e88<1jwz2H^D?b}#kyy=wy{nY!k+HA5G#CE&D_#c23+`N4YCDj!?w`>FtlBu zs0uxObVCz3l`{0QqkMG(~dT8)zJ;$nk+vi<`TxuIj_ zq-Vb*ES_w!ouxC!R0fPlGPCVu)g41heU`Vj6<}(2Qj^Gpw56=`v9Pw#$V+ERRPQ%h=0YB8*HhoN|ReiEZEtJ(19xJtt8W`I2AL)qA@meox zwJTTn>vfBU7iZPWAatWLDC^X5Apu9jOi|( zimiD2S+lpU+E(Az_dAMf#MPL28rjf~P8ef3%kgGKUO`_zo?+~}omSrmbF-uIhXE4( zoMjosAkapDLBxT?g*$+lD0pBvm3mqQ$0S7YAe&8emAG!|WY9!>NeOqc)2J59JnQMG z7=`i{5bDsXtWZ?@BHo<^A7cx84*c-#7 zPj>u6Q76D^^|&kKXX06(mtSh_JKuh`efNo9w&$NY*M9TjUORpIHrSoOnBk5G(G!^N zlvO_XW5b1jJF$Fp&%a|+4Yl`+--7L(xYFKy?e+GdPu$f0xBE)ov_-%xR5I%h=`Gcno5~+C@V}V3bfG3OAxq?EOpBIsBH*f z-4w93tef+ZQf-;-)Fuizv9MX1)p(KKKDvuy2A+y>vfIT+D<)fM= zZjmg*lWNs&fvbg)A34y#?ouY*s9-E>>))7`T)7>EMBA$4cC#2F*qR0XouW6w|kAbcE!k( z$!%ck!=?5y%rjP)GpCC&$Pnj0GkgEwRC0vDaTKwspfdR_mj|q97e1V$pMhfm#npv& zYdXuF3WV{(GCk5pbyk3oQe}*>)r|9F(_>5=eXP&^Z^~tr}p-);K`c{?Y$44#5bewZx4TPuib`+ZBFB-H+otp=X$&g z$qVc8)JxP#EP0N_cIn4pwIsD+tUl$0l9R;*Mcr}S6*k*@QMZE&Ywh8-Wa_+GJTBMl zjB&cno_g9_Z!V{n6IcCP&y;`G9lH|GFU4R>avINziJ6+j7?Zhdy=^GB%$VOtI>#}5 zj6tUpE_S$1sx$-=76U2@+We43iow#iJC-*V+Rck)Yk114FXx?BE)Jq7#|Gt%*C{)h zY+5C+?W^x3QT!zjNJT}d=uNeVw+l;#HcKYP#FIKMj(u5gsjyn}N8OMQd)v%)j*8R> zw=D=|buZ+HW^*nxui0>=nL$sgy z{5|c@|Lf=5$377g#4BiHzFL~!KIC0XT|wldj)-?m2(#wVkUFWCSCs2^$;rYyS;)1v zRQbG(&gC`xe@WRvv2KgQ)mB|}fgsxzy}&+=Z4_B{ExMgQOJ(ot2l*IQ980hKrs1yi zuiIl^ex|+t+C}`%b-$gy=`8w(k1%sc;NZ6xkL$$PWFPOtc7O45fVeB=@m2Z*SwuCe zz`ieK#vXma*b`ge!!UBPEqc}~YE|{Y6_UfQgEaWLRxmPFjJZ#tppRXe&_AK2UJ+96 z2~c2;{}&TQnT8x$ahPi(r5@1UY?-ey27th^czg^=G!!}92N6v31B*|Lg2KGaq2jN-l2L(<-EC^4Y9TuirTX~f0pRB|k{ zZ@}DkVKLU0Yn+L8$sJ=$1newi@W=E3UxR&_Q&?QVzIsvr^Z`a2Y6Vo>j*0*TkefDO&E zOqVOct#G=8jFP~kc!ZqVn=$c!Zh>_})J6dJ+Iei_b$Babm~)%y4a?!P-&M=_SGnfc zN?mGf+GMBrYkv z@IiEb4&$%?>g(+rU-@l&@B9%&wnsnraQn<>?`RLcpO2gJk9QG?W4sVxInK!~cZ{It zAKlt_$O0!Uo~5OmPAqwXsF&E_ z>ge&~{MJ-F*2-8tNsJLJlfI(wvDDJYGftIqRrfQ)HgdI{tfM`b!4ai{cx13xMLgPO zU>IotqK?dmBgWu3M(mUk!&TrE7giab^sA+Ib>oZk}ac}k&@dG%IGcy}gknWhU9}1g9>JX_{aN$oy zjmrSY94p0G7(%-|?^;Y0J#J8k;1IKXMGuAC@n_={56nhjvY#|6s(m7oP)9rqXc|{k z)p!4lHv&yHw<9bWzeiQI-IkAT+ZJ_15`L34+e&uyC!aBv*#tt#ENmkt@auoz)S6kY zanY7mi|sf}(>~FV9e&9^O@oLkV}nfb_gJd`8FPTs0bPbQnF!W>5eiAc%zY8%CFN#m z&G}MB7x6p)tN4k=TX>Pp#dgP?d-$#59qp5!#LsWu6QPJ(A@RaFkH0ahDc5Y#ImYdglmw$gLJ6Zj#{#Ms(#WS@S97=lt#1jw`gKpdPD;e== z*iA|)Lbj%!&<7SlCAN|h@8d&^`b`G8J;=BDHcj6Z$xi>X7sR7Fai!R>^5R%2+EFK* zPQ#ur=g58rSxgYouYCuQZEAj{gLvfV*m1;8`;}j}_TwL3Xy5zx^XSoZW1n}*+OVB(05KXD>{ z@IT`0UW7l|DueGv80)jB>)@UP?f`v(B6~2`jAc3axgLHr?8?|0;^q{hDpR`y#|tyUQ@>ck=@=^xB0$k^5ep@wA6Xjm&}q$; zmQnYJUo}?Uj9|L-H_C(C&B^xIQVA-`0#3DWw!1X;GkC)w-ugzA}tjUBb^XF5s!0bM1p4Jk$R03lFysyr0L$_NtY1G3BJ;5O#iB3&DI>h~pVQChQE0JaqB`Pvr9LR|gy{R0qHUJd5BXB^9` z6U8+{{?4X4t-n#M^4ZDERRf%{Rrl`X(cS1^_HplcWhlu%m-_@_IhoJ^A=FDJvH+=0 z`m@}5ivFEu)2EWz|F+nwy!fwTQ&m}kjy9{pBjjh^9)Buky{I9y-0^jnMbNX%*nmJO zaCc1~59gg2D!C)&WDPT`(m$PJ!yZsB0&o?l1$<->U%1fcFuw7%r`xw4e@UOic=L69 z2L0qsIQa8}=kbl8cmEyKv#P_K{EC zj7LuY7{5(C)!+&rsEs>Jdbv*0#@;OIOF!QByqz)iw#t-c|5wn6z^>I}jd#WovpCqGZQ}|i#~df-(Y1JbMmUur;~hoZEXKu#SMfQF=i2kn zzSUm-C4O^p`gR-)Z&JJRfOq8z$1z_m9ur5Fx&Mu~pW>nf2PT%|_*RRDf&@EOW7xxL z6kx@1VdI{GV1P81tBN)qF>q#Cat(%h-AjMv4p0Y8{BbKF%RcC-?&sOJ{5(uk|oe;?= zCvbJ4T}LIX`V6CpZ!1Y*2AAU^97VH>BZv}j4U3sCqUb;BKy(<_g!aWmPP-y9;@jj^ zi%!0xmBXyJ6=-`tsnsXlO+Vd)gfSGBiNBjL6HxUpEi`r|jC!~qluj{(e^`M(&`3Ql z6aiPo`HD^)Mb41c7kkKhf!EB@E^++Wur&w@GZ?dMKT9K(S+Nc2%rI=Cn#I7`Zh|P0 zU*LqP{YHHnGD%z2Px&AiH3tT`Ufwi~o`hr4CS9}}1mVKcQI~Bw(WhO<1W7L{o`PZQ zu|H$%QNLctVYQN*iPs>CXhT7ttgmWV&xKXv0VhU54H0r~52saW8SBKK)?CAJ5l>L< zUB**5Z?t>w-EW`##QX7bo73&?dvNg_Kj)7H=YKf9DwJ@_R!N-#MSi_50pb`jKFyGD zJaIXwJ;#1MuwGM6yMt_vozu!$?W^22);lF;8*WWL^Yk)itBV$~u~P!+v`!RRb|5C2 z@l{@RmOGt!EPr>>91M#Zf>~k;hav_66|q6fKh#1Dn8b@Q);A1-U|%L80e%3!|r z{`-%#4}V0VE`F)FYR>6iYYK;H)tK zlC}i9-xXS~J-=ic>{spFILMl$g;_95h%z4>~qxcsMw>hBWzj&fwgQIWn95{@f zHcELsDn@jGq6n}e?x2Ox?MwP1pzQCKc>8b~+R<0lg9Eb+XLER3iW9|?C--oiyVfpV zc&puf`dYi^o?F@@AGxD_{Np#bd+x>&6DFKg;)faOfC*bH$7{B!nFF-B_RDRChK4&D zDZ!&oA*f~d#o#@9F2*bCxn2wF&Abg~{aRW%Xx~4NLB&kyGIiElHs4XK&SodJshFCt z_$q(rd2}oXP9e&1BFTs=2S5c9k!2=*i1ZAl9DKt_I6gW!&_U8|P(0$|7~MurO=G>w zOuf;g*Gk|}Aixpru-M?polJ1OgW!h?*E}o^jeTMD(T!7p`vl@7<8hIlG;Ic z=vWt(22>KSET%m_7r+B5E|TC8Lf-v(3vZ@;_UD({55E74_RYtC)_(ZJrFP$Y@57y* zn-W|7Vm6@Wr_VZ3?&wUVA z&h{}e1q2Jfo#@3qwGRF})F=jAP+`}D29u(t_VqDA{qdP~12S*t%wT{k@ZI0v9Ql>5} z3FOBr!D|6=Cw$4prXen{%(6^uv^99uml2(9r@4Yi(s*rn0Z($|sL7 zg`~tlY4>Iv>ylj3NnY#awh1D&2OA*#K>}90j+GYGbhKBMZp)k7=?YGPL^Qp^D=>=Ie3#~) zt0IKIy}X$*?W)GHNx6nJe>jf1AzDGX3LE!9qEgQD zFq|u4|8ZiE=VQ2ddgU^Xqj=)#_$5pf`3UL*`dkJZkyAw42M03AJ%k$?f)_;f}0BC#!-n4mEnl#s)UaOnfA+H zyxD&H@?N|3);qAXI>nw!SIl8Y2K(S8sV9nYl}jTsCyKmEmL4NTc@Nvx9v-oH?bX-X z`#!kW{?GsZhwZa}a7Vipzf06(r@mMQm+?qO_IE^({YG8H?PLo!A=CrJ) z#vgkD8~^Axd@~lYV?}>1&kW000GryAcnA*@ zhWrpeaZ)rby-g}F%p!J08*be=lYK3Uf;co>cwYM7Md4U_`;kYTz_A~mjIm$$q2)}S zk2{0WWRgXIVLHV~pWO)&U2jjzG^k{ic3D^1je1Ai89Zs(GFGQJVvB<7V{fjD%aNLZ zrIELtfscM;B!esMGH&;5x6Lt08%7fC$TXG_T?&wJSDY;;KWiAWRgRh` zljAe1zlrGfW$LQN))+BGjL73+0y*?MJ&Y4RT~DqIsl){u{YnrA5mWrhhO6Z56GfKc+c=bNWa%B{K~>@j-<4ItC=?8>q8NEZ z)a4aJxlyjoqMf?c(K7NU!s;zJA`+~NUSla^+_WgZx$%_Z$c9wE5eo-HHRaSbmd#|? zNnAr;a)-kw`>x^~|M}|e!B?|A#@C+}+i;Xi$Q-w z#xY*@BQFqWz@Ws59s8Z#%Y~QYbcgyHE<0c-{1%_X_{QTew!i<PRE9-}!!3!P5+k#uV6G2);y{le4g2W2Cjs0S81N#M(94VKyV?q}$ zHXTLW44pZ6Ql$b%ncH$P-Y5r}^_3NDs$MqYn_{<2^h=whV^U&Kk!~oB!hvfLE2bFn z>N{E%`wU_5b=ulC+;?@ws%z;BWEs|yOFE0zY#fwzz^?WA!9E!#2*|Opw_~@%GSVo) z(!M1K61AVlLsCckhL!uA9%#|WOPFtr36CXOE2^;pi9qpFnahaWl1NFf1wkv{gNFsj zVz3*6v|FS;%+q*L_cfnEUpS(HK>~CY(-UKgpwh`Qahp+UoKv^A%2)+;ji}aa@ES=2 z<()2CV&MBkQ8@R-&<798;hXD-#gY-bt?EQkb9R`2cY6P3Xef<3;E-! zJ9oPd9x@S6NNv}OP=0YTwbX_`%H(nQC$ECf@l?m^fXj^aAoLo)fq?@ZA1ytOCv+}d zdK-_QUc=K?XYk34JK6_6a1%aNhKsU%{~HYWavQ}@ZvH8Rh{N%acd)wB3Pq<``V1rIce5$!L;QB!!j3a51nO zbK&n2fAcclO!=eN+T&mQZu`f_e~s5O--Xe0GhE=r{u;koh-c_ANjz}^lR}I+-BCnt zOceRa3zO0lCxs3&Qce;ZK8JDc+#BuYGgsTkKK=kcEc;OV?C0-pA9xrh2#j-qt9b5| zZ#dk5&QqDGayZa&#b#mLlYd3JJ#u zb72{>ZEIsgukCG7(`skzoDNL1we?k=c{ZZ!pdcaW``v+G?`+-S5VVOE^FRed%f zw5;SDLMf9?s0B_IvXeLYb7V9Q%EIfoq)bMr)0)zaW%#g)?ZSMuiWBA9miEmwn<3jX zc#L)G_LiMigTK^Z@*7cv-fhf!#WEODKx-(Yy#wc}u-#^PY)PAZuA5nPK{zW~?<8CA zG<=}M7=WKAio}^)DT7mGST|~8ahxm>;(bME=XJJ1x6d+b+hw$IIa2p=-v(w{+Jb-= zO}X%A7T0i|!_SB9;bQx7d}sP*d@f`E)Z6W&A3NJV|M~Z|`|-I99%mUee=JTK}4 z1TiqW7!whkqot2%3!b0(SPoe~cUx3O@Pk$!Zx!RQXxUu0-0i(fZ=CI%ZnLxAX~oT4 zF87I|jhxchAj+8cA9W_5al~40yk$%evzYrZ*ovv~_Ri)jb@c{J4h8;Uz^T)n;)JZ6 zaBxs97L{#_frFF#7-oTrJ68nZPrOW%LAIfyP#dt?m2G7E%+rQ4r_5%XQ+Vh$0S9_V z{M-l^Z4xf~`p}%+;%J#TiD3QQ5Qnp8%&Y_dAGECV!btUoB~v7wre_ALL|PH)CE8CV z=zfR0KmYuLbM4#Tdba)KC%w=Yi|^9LDF{AAIhicHjLC{y;|>T1LmJkJV0KrihbO z>h>_9V3XGgA=}FBWjUz2jCsn9GnR5MwxqN@436frpTpX1as7_PHJ-!9GKP2b zJIfrw+^_JiG%td3Kfyb~7cohE_L<8VPcOA6zxS*5&)+_e??T;7OpL;whY9YDwmCXT8l!)V{?!3 z5r+&8Sb`AhsEz^0 z?sU_~VI*tE>4HiO z8i+wmK5S=v2D)rJDjhVk#ium%QPmWd#c>r;W}{tZU$reGe723;%Fbh&1!JAEEwi~I zCRI7lH^N%$zG83+gFu?lSE-DoQaG0_RDFwLgGUCS3Ku$JNEDuE&tmpRWK~Wg`RS4L z3?L%F3Iyb+pJM3~OmkN|`oJQOD{{vbsI_%L$lhg>WlU$vKFj-wdpH;0JAN6*%X7H1_-gymhi=A1@uThiAHd_McsOStUn&dFd7edb3KW)z z#XWpxon*vqIgaN#$EPai39J2|rgP%4=yaRyHo5I)UY8Hj@8aC1C-=;|b)qGDA63>olAp{+QTo=elf@o+a}tk-|QgVk3DaFYLv z=W+Mv%TMdgl$WpIOFkF*IgFF27auug{rK1*KV85_9$h~ zcNqcjgplpzKO!s-G~>6u7&~@u-|!I_+s>(NV%*Kz^|EcKJ&N5r+dGrqP%PQi-cRU2 z%evt28Xh&}?_7D;nZI*={k7J<`HdIa-+k%n_U3CR+gq>Qgg2lv;*btVaFA&M<9HG2&7b z+lcX-dcp!@jGaz+t-}*CixoN{ve)`qkXA2cuQ)w%F6)QCczC&5NG{&G13uO?IF>b7Dv-HHVJ`YMcuQr=>j_|yA?9jMSZK3b*IMd5^b@Gt2Rf;_bSUM z;;Vf*bFmE-3!uWOekkaF+QVq*+yHEUvKfOq_z4q<^Nz3d>KT$ygT*J}E{9C*#jM1$ zjtVc~lck_sVslstyr_G^Y#nZ@t@)i!bxf!^ohsfW^_V7u^-d|P`oM7QdPF|fB#dz$ zO^h-s%Mcttagt0`;GDwpj)#%@nMPPP^y-tr?RGVF_~hD>%-NS%OZ_AVhUX%%S=?0< z1tL&tLsJjA`mtgXx;@F3={8yJ2Ih7e3inB*VWU1%fFQ#G@H+DGzz#3X$3*cM?kFC+ zey*K6|0?bzp1@OB?`t2%W2n5iek(qgf$LaUxbpc{_*2XAyh&}@gOxa%7cuyWFNV{r z5!gDO%(yLe-L~n?<#fi+<(X&Jn`g$kZ2UnuV`xKMf9oj)R+@li{t1{P$|spsR&ANL zj<&u_LHSV^$Fa-KaW8S~XbuqErO{+jBL-!harKEJ?G*ME`T@PY%CO_U-3!r2K@lBF!sn#x> zYxquLYfu05QhV(0f6%`Ew=d#_GH0;Q+SiLlNFOKXxP!+}7hqBlWz?I)j0-{f+yw>X z1v4too=By9!?Inx_+~qK`a*l(!>8LPK6PLF;vavkedrNBI>HyB#PjyYkMjyXY-!E~ zY3vM1%f}WOIT84m4eIUD+mp9p*<(dHu``}}>x^Y;T$M3ze#^Jvtan=N4r^oEcRQ`I zko(Z_VEk}A_0~tfMB8!FhyKHEh~MD+)l02?{cAsNfBRSb90uO!ef73>)eV6{yeQ8Gi5|3!~sVQh=P3d~GE=tVaFQ zHo=?iK;Hu&LoK|AN$A&nQI^H|G26w#*E(~i!7~F+N`bxV+2rDtjrW?w? z+Q)9IJ++o2qiipSe+pBBSSH@Im%iFj-WNOM_7_68hvI_BZR=DX$p_$8+T>?UK?`gF zyS;SsD5|1N+w}x&@=LtA2ePviXW>69H=wMB7A4)V0uGrcHSOgBtBI?G5`?K&dm_(P zRC`Qz_Fl)nT6_!6c&5W=)H~Xnh7qjw^fhg`=(tss%AztB2`8U{mrZ~|V4xddzz)dSyCK}y2GK}I_s?xYE9017 z>ZMhMgK_pH3pF2eT!^cvjWJQ{25`qm<80a{sr{QfXrgUHhP9R5X7qXZi7~^z7avw5 zzG^)5q&n16>vezu$6M3|Af8t(7RF0~(@?TcYQG3UoWLtg$EqEM1 z*ST`}9KNG?4L=DwiAPZHY@hh#nRYinmx1%9h=(!xTwd%@a5R(8Cu{VVe}XV}{AEH> zUFw*s@`Li5b)-X9Gtz2ntW)D$rj7GVD@V<*aawk092}@8?a%~H9e{%}&JNb())8yG z`HqsBXP3>o4^&GNMczroRR;~&929!7NL+>QkBdU3uF?tvO12&$Y9fR|CI2w6Jjj@) zTBcL5>i<-jWrBp?S%@+Rc>IsyOvr(40zcX*B-gNys8if|U1l1w*{pzmv-_ca^>?j3 z^YoSWBtD1n{qO#~{rCrOwma{>3y%QuEvGnPN6_(jEq63Ap2Rd(kdukLF=kk%B>K_6 zQ{-q`6MKYge@`UelUhw&%{KZij&-rYRTkIf=>-DS~_(#3?GA!VFM z^3Epk$j2jL3Pir>&tvB>6Ggb}c;@S}zP%kCZ%)U>@-}W`f8Xhi#ggrew&$q7$~%4- zLwxxRe{0BI;$7(9;H|k&|MWt8;#)s#|M1n9+AX)-*Y@|$;*R18^sg*|XFszO(dTiy z8sm*T+!FXE-Ya;Nm3OUULK%-d(*qZ$QQ|&|qPkB=O-aH=+ZhKA$H{^x_0%mEjwiyc zr*dE{Uzn7_vY*Mt3nGykMof%t^2UKMc*FMy31u0@+V)YGUh0{sYZhe^d?oyj?HS7@Fyt(DB2~Kn$9;o@61ghq0n=jaaVnL&UgXiU)9T!4>a^!1>tmV;AuV z>YKQ$cm@~QKhPe0ACJND$D=DTZejZGe?FH_tz1f-v2!rb)c}^uVcMi(YCSD?8jNG@ zaqM&#Zr0Cb^9&D>Tf@!R#T~_&U@mVMM~_cC9=7nZ0cpozoKj!8YMweTa|I}`9L6!- z#758ZmGykF2t(D?cb(Al?hmgvL|hz9eG!gV@@dC`70Yp+@bLu`y5qz+#-9+_FnGm6 zTzZU<92}&0F$HY^Vwp?SHw!2;_H0V&y$ZZGeTlT0Gd>OSVc+r0Ok(-!HUqhUslXM0 zTb8x>2sKYwF6|@!h<2TNi6@`@fYduYIS_1#jd-@Tgd>aS0_#Yb)<0ss@a_*DOV&v~ zPV8~_=kdp1Xpep6$L+VTTxf5+dJJzOjXR2*Y_VufhZH6M3(ct?`IE8_=Z@puIK zUwUvh+;LPC*fBAtJ$@4ikCI-yb^&AUJRU`Squu||iT2d6%Y+4``7eJ-2Zh&7Rh9l2t=SZYVfxFKO|(LYY9bAAnPnK6~i zx++`C)Aq2~YQN@_`onOo`;5Mb=Er3z9K`s@=-wV4C&lEQEyEYsJo)`g`2Oaz?fGY4 zZ7)1`3Hn=baJw0Lz7Q$ioT~xCw#0vo42=`>^5TTX7RDF*U6atfbYm~XHrnh8Fv-g z%&9qrN#B+kQ`41fdd9LM zuv?32=a3=(BXu8e9Kvh-mow7#|76kf>iRM>}67|EvjGfOU!^e7lctw=0hIkMfITzef8(| zGG0DRO$*TvUh2mJAOM0usCaD)p{;~4h{noSLCVtB{o0uUozP^FaDxgQK@;oY+YBAh zIg)Bo?lPD~dxc%FCe)OS&UvR0^lZR4_#Np`lO1;5uxB9Wm>fvo*a;E$A^77&5eGxs zU&U)pkKr6^e;>c;NBJ7c*RNe{moL4A7yq4XpZ?7KNN;Lq@otBkZx%gV<9uGnPO|b` ziT=UMi6TVuui#J!l@fqbsoY}a@wE`X0H;7$zsrTbj|T5M@mF~q;u_zKBc}gGam~PF zv!Ufq*YxIdYHUqy=d|jWpKWKH^>bQr%=_`zm?*|T#Te6F8lGqACqD4U3-~;7=Z{!9 zN#x0XEI0}0n+SQ*&oPEYx3qEcpG6H`a?u{lkjF%kzhBctF@fF~oO+{iD)O>2P9h9m zj^Bfp1s+kb9NY(48kZO*u+t7r_6OOHXy!UBV;Q(@xoS__*}m!((Sczx`Z&?v^apZQ zP=C~t2!EI)GN;D`@u=W)&$RYe|LZ&L|NXz8Z1+BJ2kz|Pr2ZH`U$7VbuL&P_VlhF} z_`+Qgk2yXDs!tm5LIEd=z=vCU;kbh(9yh#v`7I2bbNJx;vGxcaoA^(E{#m^36py!J zxbY{Cthef}t906B%3dp0qwn;PMOpnOM?!3@yuEBFXpTnr_OlIV{cLaioK~D|ol>@zwQSPcVA6mihv9YWrD=FdZTgOH!Y`07_) zY=80p{8*F2)^3WooL<|rIw~q^?dB8$RKcvTF#_?o>t}5tNma@u_f5~NP7(Fa;Yt`6vc8p zQxW|m3dJ6NBlbCl!6{9UiCy&)$!x>@KK^ls0#$z;TdwE8tF3imuMPA6XYWm)H94*` zzwEsmKw~Ezv4BlMGCe}gM0;x)cI&0RbC zyQ$~-Z|fUow{Kl(554Agd*qGh^|_4u+S~LP&jSyH4erL$h)O@|iIlwLpsjq}l|{{> z?PO8*qKzb1fmylR+i*qyWfr%#hvVp9%N<8%3*$H(9O&&FTDB@&hPHUnieJhpud(ZL zVM$BA(wRqoOLoQpCXFv0m_W4hJzuo`fMGgFUGbL9YnJCi#*^w|i zPzPXp@D7MKap_8;ZWrW@l{c<)HCvy}(A6b+Abp9HE_3Vlb?Ld=+9!VZ z?Yiak?d{#~yQm$VrUANuO+RHG2wpu=8SgS9Pv0~-eDHQ)8dP)O?kxMZ7l3SEwR?+) zy8r+{07*naRE^EJ$``LvWQs?AUbg77{w-|D%=%{>`NEK2K_+0F=Rj%pTpo~ zHoQSMUb01hQp2CrLCtS$R=(c~j}PMeXoj7dEJ8neanEySLdU?)r~ny{WYBI4%prx;Z~yn1I7A#nwzg&P zFnwt^RIh>S@*LmUnTX#^IVx|>TfRzgv>^rmr@9iD{fhmaHke`3aZhZ?S6e9c_9b*} zXR&={H?*GA)n!7pw=-DQnROPXFUg}E)G}U($;Y|V7u$lVZ&JHpF9YH_6u;WP(x8{k zNY{P5_AM2Qu8X?6Zpg7k#$vaMCuOf{qKHcAux=bny*8_Q?wcq^JFqWGr&bB_5d*IW zP9~xrk%_#`N`r-ZJ-f;XSb@UiWH)>bc0s%BlyNMPE29(d$gGdGOH}M5p;bFMy9B8e zlZ_xpOdxVR=YX!IVil$Bb%Z9i%fj!e%es2Nwrxba7e5S(W(Ac-T%(TYF?!MGqd~$* z*M*LNMw0om5oxW7U*#*^A(+7gvA~Skx!TC5qCnr&ne^Mbd*`H2@^b>}YP)dP)ppn2 z*V=pDcYk~I(bu-u>G2&F?#y9w=|?#H(m}>$-0{WOp7GeIKlbXSfXFWQK~R2ui*0Y1 zi~Ym~Vx^Y_UXzW9~S@?+;Q?XHn&6*VHyGODIASyUfWgVHY#)KS=pojH5PJF%-*uer~hIn7&Ak)sXSN$TyX z`dI9ZgG;`m_{dw%wcr1PkLz<7uWt|OA?)+IU4n_C)D)?fKKEghB4dbV&yTjP!^zYjO-D@@s1r_q1i0Aevs zj5eX4cpDe>mCHPrc(Z-^3(vME9(%rh`x~$5gu^{L8FgM5?HJUyoOIx7cDtqTXYise zh`yT0v(?&x7$=Nd8D`o6ZcIi@JN;p6%^(D&&uf z_pGV%*0}H~eK7#;TrR1tbQ)N}b}S}bwL_+8wr%z?z|)82c9eRoD*(iYKbNe_%+cPM zgc+{meUzd1#g=<%DJ*g*-;f(3bF7EY*$z84ckT6dRvqG{WAcK!g)+qhU6b!wZ#_@Ubs4S@A$m9Y&~>3X6Ve#uu22!=kc@Kst?V^DW{1`SFMFWc*%LFyXCiUSsrp9zK+zvhaRrE5 zNA=PO%>)_T>-vyhP{9uLj9xy$pjO1Od9x1Gv3baU zAU;qGf#ATD$t?pN8QuZns@wR#^#O zouLy57CDP43bapzG~hkN==O{>>k$O|NKYbfE9@F!feN zir-YJi30b|(|Xme$Y@v~-9$I+yH4s`SFc`Dzq+J1sorkyeD?$Gzy1A>>fZW$bVe+^ zXI=@`cv4rG2?J-vNVRydUlWETIZ1wy7VGM73*uB*Za>%$%LQ5Ui(V=Gk|C|~QF6$a z9QiH$%m>3V<7WO$59CsR(OzvDTdTCFKY0Sj)nmcg`b{i zFaMkq2=t}X`s@kMT%6GUf?HL2;r9h8$)lP2=!uipH4oI8C?3M6&w68_E%fswQ3iNP zQuYiL?1KnLF7AtN)@)mejwNX#MAMHlHnz6eh1Z zAg5=Kx8;&*VA?48Lj_jMy@t{U_~=!-JDOEZC2N-S$ENF;~C=J#^oyi-u?Ra&UfCYyq;A&uM0aqj9&NT5OeH9JjT~m9P*6ssLAqu57AFn75cRmYd^O( zxVinTK`QT)-+*qCyg$}Qn|oVqp~{&uR%Nh7+meG;*cn$e_(iW28q16c%HiuZeyz{a zO!OGo(^2%}>RvsYSOJKExtJQ5-PD^>`KUE7BRQ$T+f5C~4sOJ=W(OL-d6K9>;17TB zie66f)AobsUTEL{-p@1`yxe~N!WG$3r_-gz>wIBbR|n2tINdH@ywL8t=YqcPa+f9p z=XI6poCcG8V4D}^L_CmVV~9G?iEHaAFAtAJa6<+ioCQQVfBeteYVDZNYzZKCByE_O z`HmSx``CpA$h>X2C<3&NCCIyc(`#pi9KM&yJ-Rm3BN%mJZ8?K&*z{?Yr`sR@?_X^f&OhYaPOs?=s7&zB->u1^4sO@4 zYhQD~38|VWqDyBy^)X?7OcHyWyGhm7T!G~3qbH2jJ~G_<^sa|9#S+!7)>%40jeI~x zIrbR{44NfeWLqtIrEvExW7|GF&I7lrsq83qJ%o@CMcu`(C%>WpXjrQenXR4(+pE~c{55S3NCRE`0Y1V=O6`#S)FS zuM)QLFO~RMki0G)3fvc^)g|zqkFAs^yI6*uAdm9syP+x+58;_Vs3W(ZKWwDtsGmg5 znS!|1v8-dnhM>RtiJ~m~pQ9MD^4jUn6-BD(_=Yz<-r;=@!016KVkufu*{P>yYd@;=ze= z*0!R7I*;-&=DDs%d$?%BMVM2%h@+26$<`Io^*GNxH}rhsS$!(w;r9Ly+}j>}DDD6} zspIMCyx`-P;>hO@!%t4={(rSpzgXMf>O*S`<$dy7*fp(e9Q&=O zWvm2eg~gj`h?GN8{y^My3UVR&x zq;wOZO~AjbD~LaMj)~!q^%l&R^t;?%eBp*Zqj00W^z(!E@+HaLJncc^wX4^4rQn7J zg1r4uIyIK(W7$afPuhd3JjhnSCQM)yo^}$WqFuD}pDNWkc#w_$1YcLC1&;!YUx(3yv_p38J zM|j5Vcjd|rwI5e?XdiYIf@zO*gBgHqa7CC2BNIbxv7^C6yp<9wapsHX6@vkmPaEjg zRCTE{`n~YepSDxyUTS~vuixK3{)zYMxx};WKE0(2RqU?_p~L94l&D0#mp(e@n-ZrJ?XW zBF>4;t5;h4vEG{d?Z{FZdXY(zk~0b!eZjlQVA9 zrGkiG#kH_mkG1W&yoyckE@#BZ%Vf9OGev{I@nOK10ZaiUk;`(yr(zsug5i2Cd^C5c zw!RRC!{P`|`a;u+4zy!tr{}yN6{-^WQl_I*ILjqBhuzs$xwaqJNdZhR4t(PBp; z8*A(Zec4AW9*kNSP~~b<+bX_N2Pb1fvEma|-!UGLX+5`V$Rbl#01|_w%;bd*7=i0# z$%wM!cjsqjw%_w>x21lxcj!gjc)Lrxa~#;Sq%Xy-YS>KL!q?>zD6id6%0*BEnZhQq zq71m`vog~rLdQv@bPwS&V`XV_5}vauJ<{{m_6A*5b(;mjx|x79o^^Lj41~SJM)SLW~R^O83Vn_YdpN8mgvt~ zt5bwL9gTc+6ef#|<>@qiaIUg3QqHr9TmiVE7o7a;r`OtJ-+a1#=F?BKr@r%i`@#2h z#YwlLo;!D!2L9(Y2)xkFD}PeAlwQ-bX}Yaf9aC4EG;(Ce8#`ca>@tQg-gfp>KwNX| zzjIOE0}pb63#v+Z$KZ5VGVB*v{1xsfA9pnt1)Z|2;M#tXk4WeCtu{YGWDh&6);d5H z97^)f18-&B&|I0(6+*7k_{v;N-u*DM>OlYCY$8_)nJA){TZyS7I}#RdU$8FcsXr~K zR6+Kw4dUOtsVhe}uc<%W^gZ(j2bbGJdeHiR{MR3CAN|-PdZCR}NDX}wx9oAcor#D{ z2BwLkM|zqp;Po6C6mHx`alD-#xuBYYvaZ-1a>S(dmNTDRF|KLw3 zGNs51-4F%xf5b7^A?W&+9GFtL&~a2@_%V>7--f&Xs>49-%~?G4mi%7u2BXYREL(?O z`sVzEb5^{=V-ZT0m{Lr?N6RQLacg6{wuYpzTXor>Wiwm((*71$7U<7L7ayz2QxuQE zZ|I?zZDBmCJQ8*QVxebwj7)tYV%>pCdYbHNr6S^5Vhfce;cUuBe&P$#=SjmPPq@|auF#%_Mg8nEo2w%z- zeRx^9@F_}jzWC|QK$^4D@cShpjm`aME6eCcxka(P2{7_LU-1`N)j; zghZ@quO0OgB=%*aQtMfPM|(>q`|W1{F2@;nNrL*p$?6d7Cj_~-c2mwB0BypZzN zP2Ju1^B=djzU_=2>3LIo$2;zA59|F8+=9w@pE-Bj%E~dAaUQj*AG|x8D9&xSu1B@y zntq(}KE1C-=W*=Lm=lLRqgcS%p*dgteHDQZe&*k)eCa4#mCibgww1csNXKAfj2~BgSorArv){kjo_XfE_T-b#==RbV+H=ob)@_3t z_}}0|*$mK`4C-?Re)|aWwL!$rfeiy%(IcOm*tFFw`LP2Zoi}vasl`fk>7btLCEakH z!pw}KqW+&qO&aZ8j?3%uoyHng+p7Ly?^c{sO zIr=>ZFJ4~79^pmpH$Jat6aVVZA8(g0>4umaywz0gL|gGaR`7h^RT&Vjezo-N9=hdF z!Y`I(JYzeV`GsTK2|5m}my(<5WkYF+NJ&v=5I!!YxGRG81!>OZmt@$CzIw~7JZpAquf$H$d^w6b)FJxd;2F80cOcTILosEq(jgsIRnC4pw-MV7 zf7GGk<(`!Bu*tQ>xAS8_C8qd+a~()N5qJqGKEL~VKyZinvn&|DwZf) zqcFvfG6-mv?My(0hgeJG!;Q%RY>G1!Qu-VFp{zGp!13=Ag-xC2qBIqE8H~k(*5I-p zbaRbQ+MG|>N*4Rc#HH(@-R)v8Et1}ZwGF)+o@9N~monUaFV9mmuyR1zs$rqJ_$p)V zlZh%bu5VbQFY>x*UTwT5~nyihax%!Uw8feL}E9mPOmGaO--n z*oPJm(>n{k8XL2ot^BbjiU^hym9CX-Ri>~ruV}OU%%AC%-;#lMlpL7qt6+WhK%+RW z5P71gt3y147!$?(HlD^}Oc*uBZ?EVo;xkX{%D~sZ-@f{#@3hbS!&ADY>~_2F!F%)( zPYvwPU639o58R>{mbhxfnI9$xOdQ?W)DP*t>m?|xbMvFW_Ph$}p#5x~g#iTK#avlW zD4WP4$T;?`7Rh<5gg41o9um7{pvJFcEHcx!bd>IHd&jv@ld^jg+1ZxdE0K(<4NIeONRTOOq1r1}Z5tXmOI>o#I;gJ9wNck}}W`Sv&m z>)fi!WRbqW?Z%o$2y?YvyMC#iyKudI>=SQokN(y>+I!yrP<#$U>U^dPm-FZP&q1(m ze8ZkV`e%}%U7mhgkTa$Vq|0T|50)&KYP&iLw-!aNWY@eZAEk56pY^SIrIWO9hhb*i zEIa3sFI_Wzoew(>wpeN)W!Z1=Nb=>ET6^yMt$pSnpKO2er{C6o;=Xp_!ad^a0K{BR z2fApwx~+w_8>I{LGwm zIlBykk@TaZ`fLERmF?$H94f246`$E5>4=8u#JR7R7J|2kNk=0;6?(vnR!lU_`Q%gA zP7equPU3b65yHnIKYSDle(H!mSGvoh0YOZq`|2`4sbkUSi#DOkr6sGEdTg=FvcMOy z(tuRmN_L(4%Aw*j=qZ=6kM>v?3V_!cfXqi6gw1$YijL5a9?8UixbHR-8PKAgz-}!Z z1E70lK=>F~ON~{x5nR?KpOnHnEuEE?-$Qy|uHr|$E9PK}UUHPf-%5)^^|9+-XN+Ak zWyTajGyoFmHd4UtfJiAI&myd~V@AAauaQRlVl8EO_FquxepLs8#jBlZ4=jQ}qH z;BXMWH_pR4DI3qIb;Ssskq6W)b4xWR{O*M`4jCEpL|<;@HKkf zv#us`L0Ub`J}I-~vJJxkqaPZ1UedR{+V`p?7=GJJ^^tAvpsu&AqvY0jG_7gqC_OW; zXv2EsW(<^HHg0Y2PRg;}DduVex*F|wL(e9D``h}w%0K;3Z_U;3>zC9IxHbJQpOj)N z=azKpby~MA@C+*_usm3He|05UO|GzwtIhi@$JnE@a8)s$tq5>TJQt#qmP502B>|RO z8*PQu@MT>No$iTJPgxvGQ-ms6xASngLsR`a>BkrFWudVCU_tG>zsSxbmW#H6bEY zo{Y9bQ&CH+%Kk6&G>~)*|3VzGwQx*uZ7yMl^t4U*X7cz6y=j_b)pg9 zz_PXn3+&+S%Ng#VmH%CnMdrFK>y0FJA9CF%D-C+I$3CaP6puZR@(4($r86~xnBx&E zF}q}^Cj(3%or_gRtGI5jFgbypEx&CON@db^#~0n0^nsWpy~m^rkinl?0$4cWImZ-K z`GQWOP~}KVkF;X9bSKvJ9S}lG1SSglmp*i+=)vifrEd#=LN7ibQ#!*E>+pN6F*u>W z=Tq;ny3FCf{qhQ1vMpig=wKQA1esbEDm76nCSdp%Kg#V{dJ$^>J$6;uZDg?1K)_mF|{1#%v_-vw~t;XXMWL0OGojmJY&cg ze@%B;9fyG!9f04>TQ@XN)9Z0{DuFj8X(&(k@F1V7h&+>cMK7&+?6GU@)Bo^|_VurR zzkTn?pG)@ccJW?av)15@L7Hzf)&0@8boVceUG{=9bS=n-6y$&_7XEm1_aKCF`oq=4x}xZ- zGULijOca@jscrdCrWRgaqsXbPMdx-?{lzV%T-C{|LCo=Fg2^Q9&jrVrOk$T43c5sn z;+1yq{kPkj-*&P6o<4{1p%34yH{xo7!9_yd?#dgvhF{%VT!`?y3iCu!jJ!|3;uPBh z!0n}Q+uT82Z&!!Ot+7K3G0|=}+q%-3e^`F4cc1((iaX5qkv#P&p8(SKrEbx9iOnT_ zF6VQfd#U}!fB34t$9c0|dqw+;TYQ7_yl*k3MGy2!TUzJr*|XXY>21pDV_bQ53+G_j zI|=vC@zxpt807fGTO>JrKLuFt*B*hZz>?Z@N*wR2g0t7S0M@xM)D$?<-N+K#y(AY z*4Wa!rtd9F7d~hiF(eTji zKJo38SJqZOEc#s8u?-68OW6!nCc92j*X6yL`{{b9c!TVwvrI#^j+pP^-GB zVlhU58xC7y+IZ}{?T4-rr_i`ugDGd(S1FHx^p)O@5Z%bm4-WP^-O9Vf(o`?4>VyYY z&;dQO?pvL)m5~nccut=!pSo@ct`ybFj7VjpQh3Ej7HH^DJws_v7jAU@=;l{=O2b~{ zf{#2rM^N&l1y$_x7gKh#C!?r`j=#xlR}M?or=eJozF}85f0zgmA8tfkGO~LjHOO; za`pBr`uf0&?V$%x=rbAjxA(mJwR*e!sdnFe;fvM#EI(Hjk!2#viCC^IYL$Mk-1@Z@ ztG^y)aPCV-VegcGLQeE%ow5r(GyO1U_Tl!?7e-W=aq!Ak(W`uvT=CuL(W}+ZV({)u z*y;oEkxi~9X^^ky3^g~SFSZ~5sI~8Y`?78~eX@P&i{EKKdXA5C^4SEw({kPeLI#DN z_(|xtIwP;HuYn#{kmzXmOeb?kGaei8rd|g|Kd_>Df$tv_U66V*_`iV|%Sgp&ReXZ6OA}bdfH6q0WnixGV^V7F=)QS~7i* zjhKizNsP#A$54yRvY+58AOmxrYh{UtsF@Im=AU|wfT#3Q8~3HWsuXVHD}4YgClJ^H z@!iCir2FOe!H+!LKJdXewMRenmiE@So$Ajfp43&xxWz$jCw+_Yi+t!IF(XeP5HV>BJR_(mS5x6{7I#=hw)2SrANsg7gu@;A1N^_&UQNcTCxL4A4Lbx zE9;2}od@`l?nLtz>?g)nLYu=|RUkW!sYg{VH9IM@F3dV3AF7g05>=P=p!L|O7_7UgbJ9yRM~*xXjBaM}MToRf!(w0TlMQ#i<>j{}>3jx;On@Rk>RP;!T6Q5fc%fhAO}-@)Obp55 zL&UCZR$AMYQ(JSv?#OcNsV zh}&k;X6&$@)UMY?B^Rl=Q+7wyN{-tjIaVOD(1BoLtwSq(*ivoU3R^OjMtlvj4%erY zIo;A;((5#$fxmOL!$Yt^k0uN3T7xDjBGKl>*VszOT*f`z)yFaNfH4{EN=e7nGknBY zv{!^q(-8r3)!5D*f8l1O~YONnv z1ohKcUj3|H(`{qldi<64=}$e@zW$YG^cjp7)lu$h_guVRR^!$6e2~){Yjz%PDfDfH zaw7gPsE(z-c!h8H7aK~@YlCt3&y4^nmf}?d9o@)ik=_!FlEZ{*u733epL?M;RX`Kb zfW%FBLn_cow@vURpLxdtTHz=4yIBdv|AJNaNKsp$$eVEZN)s&{>tV@>Vz>%V9bs|B z#tx?pgLrO9reCOINRMwxNM-R-8_{Ls6jzGH@4ZWJIsMJ{M%@B&{{!lY?2{zxlNdSBM|ah{;%nbo!Q$3a$Co;q(9@&BUU;+| zw(RSBv-}oj=9hkOMX$7Yb6WZ;oq3g?<@e!cOv#ag=dWVAjjMRhl9pa|X}0ZntMLsz zo5*vCkAL%(_N6a8(LVk6PwN|+7u(%;v+p=3oW8}XZIOKf&qZ^FwS4i(0rgMczV6$K zvBi<8e&NqtS5w^X!Rr-5G#78h#V+EJ=}N%;kiLl^EBC_G!hR>RMU7$-6SbXyndCP+ z?cj%wbs1{eQrevmu2@A21-okj=>z;6U+@Sko%;ziYfauxc~`S3)>#@uPIFHFckoA*e%M_~M%`)}m~^fk$jq#-)yp z(qU`*O!6yLF|y%F*e&ZzT}%|g^2;8peTC#SnCF5G7khY52t!?tt31xZJ0W;S#B~Ps zx30G{e5UT?b=@KMvTi@Uzx~#S-ssO|+;vxcs?5VY-9e^H0oKd>KxX~J8~Z=`4(->q z%>DT=oBR6Japm{vM(;0t>*?&&QI4$nvut%2oDAIPEQK>&jkK?wXwdZn7I`k!b5)3j z<~A=nPuv!$XAMs>fQye~Uw)a-U$pkMuY9ll?O%VfJ^fwXf9fj%x{`SMf^ghI#*WHE zbfp|1nLwZyW8r^XMHEd$pP67jVF$~5oaLu-9-xY|te`OQFYMuqH#O8*XV(_;*ruTu zDk$MYEY9uVtS|wwdAg8d#MA9VW?sZM+I5~8nJ;*muky-60$n?W4nf6ET{dhu5+N1t zNt0t82Uj9hR}@29&Mf#8)z)IhL|Z#5+F6awl|`y{aG-&`@7iWk8FZo?)s6u^JNDbR zb*V{bvre7ndB>}|?XY`t5{`KqiFB&FsVWV zM?*N_d}mIX+O8(jW_IXVve)w93Onsyk7)Zp&?j`h{KYHnZ~xO1?b+{L*1m+>mh}wuiF4A&kGG!E zHYlfm&~hAk=xh>O5q=v+kA$ERDj6OyihRK#ySWE4C#T` zmy38UxYDzhw(aQThF085ZeM%P?YHo;1ZPXcmPN@d7sS=Nf{|G8_5nI-l&ZBy(7;*o z&{MTEZjg6#lP#DfXXQOs7~NV@INN4{S`^C2mX7_jIZitoCjE2WO?JGvVGzEhJ~!OVsI3qUXIZ-Wt>n4RlU@7K^_K!%n0y%I z$Q7&7HGfap@Gheoy8#f)_Tl_G%+K z(+TT}*ix+nuWTniuIlacda=z3y(i)gZ#diD{MP&0+u!~` zd*l&)E<=;W*o|>K2Csh<>p1Pcjt%?NDM?)Ic#B zDZaZxr}I@M-{;Ka6d$vL6O7zw%Ey?b%$TfQ4SXsh8IQT{k%vKCsCVR{%TfeKB#Tns zSOyLayUS)rlO1=UUAQT+-0F_Sl~THGAhDe&uZ*AkV;q9dU^XfZ6LMsW&+jD9`7 z2!mtqkPCzQ%z}=#<}(*@R)C3O+!j10kigl&_)4;Ld*^sk69%45JbAgj>8zY3GLpkBA79Hr({hD(f3r(U-W*3+uBc@JfnJZ*_eGncw>!@7bgqij6HWe zq;>*jd^mzk$jvd3GLxx;z%DNMmJ-jRff;-gdolXXpha$!D=ZtG+|dmOZw;noxkTuAMf*v26QN3>L*& ziWIR4n%5mL`b}}`>X$jCpzsA!YSM;3Q6KyVoC>=9P}oV6PG?~hv(hzYPq}OdJ8Xp; zvF}{B$725`ThU{X2-)mGE(fJtTRE0R!JkxR7B)V6vE!mB z4I1lEu%owg3|FaZF=zNS)5V&W^0`P+j@U5n+{X_*ZAC8Hvcg%qa3?J9w_n)O)9t&; zQSVR^dB-ztmTZiz${6jFlQ3FXLD1<3L1QdcGCL~Ld7pOI3O@TAV#tILEk6FL%vD7Y zb@dw@Ho1FH4~FPs5#PVQ?yHLT+;dCs8)Tl?G(RX#}oIdkHjoYP*E4R7`z$B52 zODy>8db%`LbNdhKuO?U9-#+bIz8od9PuEOG?+FDoTYj*Pt9;9`p+z|dHyYTj46_fE z+$}nMb|N|^y#c%i22+B$$3e>!IETN@5x4fP0 zYD}_;Fk}P0swxH9h`@?KY1SF?X6Hsd`5WYgOxK3;Sy2_zM(=CkL{&O9Qk;a9b*V^F zU4FUK+g1$>OBQhS6O=NbN5;>QDRmzdKh7|5&;%6=I>AA^$(2S;GHJV0r*G>Ph+FN_ zOV8_*7|*xg|HJpSPk!>z_NKR7X!q-CB5yi%`%8`k00SV-hPf``P8nFltn50~Ne9~4 zozs=1u5_v_^b{MD(+ee0s2Cp?x1r)t8>Jt)qioE&XStcat4DFK{$U%eQo`ZjPg*l`cF@`zyF(O zbSpcb&bdcTQWHaTv#}#hzY9Aeh7J3yc2pnmzA6}6k9M^CQ{8}64B@$&*}mZ;2uqRK zS>`x(rr=%HzQPIZp&vWSxe!v}lB8@Z?O6|^S+>Y52R?aL6M5F9dgO}|_Ll3?BeYd` zrMQ6Fm2=$;E&NK`!lxzA8duv-)xoKFYm3D%+1_5V18?RRrmRMFqCN|pj4UmwBwDzR z&eCwabfJ3^sk($86C<bU$|$xozjzj(ViBR9a?AElP`K_h{VJg5AOdD|Vw(pH^CEK_DgPQ5r!z~-+~8i&w~EW?)6kA{w-Cu!$8@G6$VFt=?cOc zS2MhjW_|@pfD^Yz@k=zz!^SLebe=n``cm0Ei8`}48aL@UdP47Nh}&m% z4EEc)85?u#(@KVf}Ekz=-BXrtRoPh1y` z7g=&;@oM|j`q78mLwZ(`u|1CfF)yT@{LOXg^7v2o-RFsA)m_k%g*LR5rG113D2~{oCqB>7|xcI8q#eZ1Y+Np z#2D*5KqiXZ!bhbE9&MFC1U;aSGJ1oq-~PUR=NnhrYhM3=Iy7%YBR>5Bq~nCR_TC!p(YTnVDYs*&f)!yKM;895A*sPZXIfW_;BUOcFV% zQ`;@FW1<)@BVrpxCR&06oZeWf^;JLDe5HN{{>g-HgTspjzhM0~75E#Wlv$=^NIwqF5FEQY9G%CGBDet^j+h%{uum&{zp znT~9|vA2zGaNA1AV`tYp|e;^%mDc@&!s7xCReMJL}6=IUK zR6q$2qH2{Uvt%q%b+Lf(mI}4NiHYOFb{9+d%6=8w8U{w?l|}aOrMxum82HlW`bDLv zRgy)p3#GNt)e^Ww-378p)Fn{X*fjwFcBf0I4*R1I%vxr>bKap9Fe)|M-qllbkw*Nr zZ|opp{eTndvd?8S&;k*uEeX2D~1t6bW93J5z>M=>!T+9iM_x?KQ#NCwre>FjPp_ zMhhju%8Qz*#;v@_k@0KTM!b9{<><(+ZShv?R?j>bwv@8 z0&I&%qweFy#z;f4ME9A4LPJMmPYpo3=i+*~9F5H&JvvQ*Ca4t9xssBDf7C!h+Pc(- z&~cz|UvPjvtv6N1U|P4FKC4e*eB&iOU-aGfxzBvN{p=?vby@m;;q`4reMsE{M18gZ z`;G}VQgK?fvC5Y(u@B?fHEuiO7BwajOnCLvU=_beJ#f{Az|N1`Re3oI@jEyWkL{2d z1%p|6z$)4t2Uyr>NMgsyrF`mDgOJ$Ra!`z{Wilf<^GlU^v5NQ$x52ZLqK86}Qs<<@ z+2{ys>ha1}*$vnio0ZN*>XJMtyfR2(I&fu5JR>$d%A6ipgVTxs{*chFw{#&hkz`|m&8KKk+3wR`S~&tb${%x?I0 zR{EqryO9_8y@8kOS*I$xUKBDs?n8CZbR24@nSc_^blqJ-@ znc7~_v(2CX-1F_v{^axR`5)<_`WqL;)13$>c+)BRCGJI;_;;!Hf5}W*cvy9SXz`(B zhVSIH8?nJK8S4RBmnV+&_xKCuEo5bLYdaYlXul|h*nV3>CNO2obzX}}XSWM4ZA2VJ z=y>uJf)I6aFowA)H^&!p)xCVLv_y(u^5oJisC@ZQ>5AQb zF1jrRxJZk%>af`W{$!4{PaOq7%B*q1J-q#jpZd3DD_~5gq19+YBh*-xl zkz=}e;yaF1q&i_4+De5J(gAk5g*l4W2gmZy8{MuzuU7;(>kcUnT+p%J2%YH4@BDN zZ^le=Lo@hoy%T&lD+NPGR)?*M0-{h_{Bs~qiV_PCqHi9 z)U%3@+}qyvw%6%#pmXhwZ_=}h`b?RI-Bd)H7}sTutQuR}OZByFE`En!Yh2Mw?kIlY z*6CVq&0pJD^A9VR?qBGN;!%c6c{mWkt~PXIsv)uo42fo)+^zN&%75-j(Q%U1!Q+y+ zI9(B_C@{~$Hs8Nv@^wOQ96YUS%$zOY*~G`cd87T!fBJg+$`_w)&p-c4yK(iLzH7%T z?bVs>Cldq)m+~YCRu~;qSr&IFY+@?X*q2h8Cmhn^iDH~7@npl#C2`v!m%dMHL*fdg zCKB?M`=pU~1;mg3MjWDUwd1iZZ#>-Mra^B_a@5&<*3JG&COa%1T7&Bs0G~i$zq&+9 z&&fm`VhtyjfhfRoXR z1bxwWXJ=_wz`@tr7;x3kYf^}Oyrc+~nx1Jd$Mdg6kI8;o*GYk^S6@~;UTPot?bqp3 z7;p9GFy8id-HfazWYrzg>al_Br^Y zz8R3gTI341AZ7vGrGFo8i++^MmaQ!sZ9(1LrmBWhD5k4SoN^m9QjFL}IYA>iAGCzm zW*0JXt9l%C*cNpbRC>7^fvbtn>vKAv`Nt>Q|MP!*L9~nQ-uoVsj(E!{`VE$Cti(cW zE1x8ltNu{d@mZHkYMq8wEY14o{8|EI;hWn{6|<~kQasndtJsQ$jvv%G~V{1(=JIOdY9`jo&T4S$L>V`q*JKMArr z0V^%po@Qr3zA<WT1!7&QU64^c4=4T8LZqyNb6N(~5f5k{(6-OGTB7f9y1mzhgjJ zHt;Ka?ez&)O|QO0-S+uAd?=kz+lg@OJ`b{_%^BXGKS$9R>B|WdVNgpwSrd* zmR+eLtkbSTnR2GnB$cS}N(KJ|n(8VH_Gk7T*6z7hE0p>E6Gyk@VO3lLN>!z9K*{hY5FI9enCx67=7&bWbvlnNPe>2d+!;&0rfZZ zxw6yBYuv3l0Y0C?evY4`Z*lBr344)`_1KnX>d067u5m>#t<$yKn!mQQ<{wrr z-FG}uJj!S(9>!_a=sIp+m3&6f0k4DW677<=esb&(V)W)tXJ&2$!8V0{5zE|=BC5eL zg*qKqwCHwHt?8s!^kUPme&uJn8t{+p8%odUnMA&scv9a>Jav*(R}N&`og4$Xkw@p0 z7Ml`XOL-Kj8G>sv!M8UgTUVT1Emeexfcd)0850Ig7IlO4S)FZRqwy6;UzM8ld*`6C zQ>+pj{K6hT&aA}qP|;2`Q4}{^LTD_K4edcPWD__|cJcy51r=}I`3J4Y8>Z*doW0*wW9XQpL<2d9 z8S6wr_O0x-Pa#g6%*g|RR1k7Bd9tY74Q->myy(=abNWT7dF%GG&**N1ufN>B`SqvU zSHJX}4l?J}wihMLq@V5Z7hBeKMavd#sXglIKICkamzb$kp<E z+ya}02!+w!Cdwb^uCaYq+!tP#CLtC+RXO->k7yLfVAJ>RbI&AJItY{u(AHrm?V6r> zClFSP{TB_v^l=&a(mB$hAq=?I@}DZ$K7JU)8oCkAmu#3qXCOVOtQa62{{^>>UMPOq zsdNC2pTj)1GF=Ex@hd+EKkB=TmAH~Ytk%wEd99<$8G;QN{KB!_1v-Deb(AxeE7&Yo zeHAS;eJ!)#yUlj(b_y}$5C0anY3t)H7E9ULN2F&zXI{}GU0RAz4QG1j2FZ@$xBF!8 zm&fzBQ02pHecSfRFbYgc$vn<4^cYie#ld4_C%Rb0g*BF(+I1`(kg3DDD4BxFe%opE zX-(x6AC7rx&wh@pa*T`MFn;3m6*o1uy?MYyQpaAEPid@8jJWHL@$d=m;?vzce4&82 zpVkE)PSSgGuSz%_^^9EhCA$G2esOh>@i6-23qRcod*bBP_VG`=zJ2WD53~pM-UzNJ z@|+?+o^AAdMWltXbu3xGELBqNTji~E?vwD>GDq>ZbpEPo<|+$_PRp6mxH1(J${Ms1hq%3lP8HRuXQilgZW394tP<0>{WQ=7gAFca zRe}PNwAP&{4m_6NM}A(<{Gn$?R32UU1FEEg7yF|nt)xa;9t_-Q1Nj%7q{C;O^pQD+ zGj?bT(S;Sufl$kFAk|X+t#r_T>djgNspz)nt9sntz(dp5G-)`{CooR8KlqV5+Y{)|*i+OiG7L zRjksXnq1erB!^AWh?`G*26$?@ke&NgsX%8~+qLO7N#LrcC9ahEQXFVw7corTt2&1g z@$~PynIGkpux|4&y^ru64wK^+@9(ybL!m7vzF*BOO>WA z(cM*b`8_%&bT$-jcU4#O?K0YQG$Ftj^wjHjDb-s~vBwhe7AGeK)|ne;=&iV9eT`$1 z%2^$JKr5L1QQWtbsuiZkG39E9yH8E0%NK84eZ!hIVnDMUZ1-}{h$x16DLaCS1}&qV z!_QC?>LjB^CIXR!kLX9;=7VB;&DPf1j!Wl5fQnWe~Yn|bocM{e*IE=$GaYE?|%22+9!VZUG2T^KiTfmvx&YZUwS!#aEgz>;-ky*j-9Fd9G0QR zQvOHDUe0X$Fk(2>cPD10aZB%#cUUR<);414>ox}JVLJ9p9mdIcc|W5V0A*YB!AW_A zjmWXUv!7&=xb7=~6TotDb&$gxo97MPcFN~4KL6R5+n@el|I{wMa8jSc&|6M+mKb#nHktiV#RY%7@QKWBi=9@88A>slC$4}pCPv4bM?xL$P5Bn0gtHx0$ z^~QMK8s9DHnZ`a*i(uHQ0D*~W;EFv;cZ02Uu_2JB5Ba4w*IsPzdEY(lgO9#J&ncd2 z_uZ$r(eoZlFZj<-68(9|(f0xq>)n{m+{jm-EzVlzD1OQPI@9uLbD~(xa%f$lqOa4n zT=288tEY(=8yd|unlHK&5;O$qasdh15?T$(z_|mHoi_-9tcp~f*tedl-FY_g>tDUz z{`61&PPd#suV)hP^7BRqH{_Y#Qp&S}_}~t0^<`}0&isUKJ>{&5MKyrr zAzn=s*@52^pA;RoC&LmqHReTeWK3B8jp!f4B6CW}PwP7Gx$feS)vtdON~))RDNbD9xQ^73XS& zJUi>c8@01q+t~r^AsnXnPIMloXUlZy-j!2)ypYDvl$t2gMu~9f#EgEEL@@~!`aSrh ztUtH8u<^1Rrhl>T_~}n{qUkAKV)In{%RhZgo7hF&jqsq_HTs*|XILCY>>EYAv4@eT z$P!K~V+T^hf@$8eSp#d|(IKfNKWL6!nKWsNiORuZo%AvbmSvWuY<}q=RwAhWw2i4N z`D(im6_fw9qiY*!cA?5L0xq!F?Vh_Gv9r5`Ca>4F1rAc^vV*B$_I=h_{ts7_lagM4 z`V#^JFvRWeDDLD|{_XRbj*R-^SK9TtqxaIt;HSY8N!e{zlL}th+V!~4b^T&)=vy19 zn02d`nSB`^?8H4yln(8Ut%iD_W=MAJJDJ`##VP;S!6^QoG+TD3&NICHgx2eVlXBJ* z#cosD?EJb0Dhos1yttmRUy61Qy!m65;I*zKFOrCR#iUZV@f^*Ss;Ya(FLaJV4=p6> zkri<)&{^fl)*Q2;sd8~lD@>26)uUeu`K93b>0}M3yq4sFJgp0-rtMk z38G^@pByDtjCq-4DX)KD5!6Xk-n+qz0U0v!7)Kb_anln>%KF!Zm6NByFrEr~o~Sv% z0xSXzKYzl`v9>aCN!{dv!Ka_Z$%bp13taL9@$K)puf6@9_qRtLInnOYd+6A+_)V>u z^U=TTi?@zt^+~MlTaJ=BioZ|quaaIqozN|h*%C{0$Eo-%Q3_{TBtG(cpzv z-U}U%MyPU8Bdzt4E2;^pta=1R(XCI}lm1RxYnNZr3n+f9XA{5tke9$y2A|5~P)tRrE7y3{kp#qsvUjUAU_EQ2wTqdsAS$vimvg!=_P$#*|f zs#{L=iW9ZrOL}3=mG*D{-N)NM{}*p>4?Qe0J4SA4P>Lqr07k!{0;hBZn`dIF<>Zda zvDk8FU@(7etnxj6BBT@UHSs$ zSO}$$c|{N}_@#pg$M!%sxUC5%c;0e){hD5Y^_X5@^Pj)do_Or}_UzMFbyfIYoou?O zZGC(PHQFc)Y{jEYlNP^XROK17o8R3Y@ZQT@*`iTr@(D7ea9uFL#Dna_k3N<1#Sav~ z?6=-Zha5TXb{NwH`rW#M$tY|7{w)87qF4YD> z^>&z%9MB$Fag?W6`VdQCgcv5rxFHQ>U)+sLUFbHh%*{4Xa@3;TO4yA$m6{S;dQ{X% zjqUsMnU`7+4p7!NTRW9fU2KQ_wdGmgc7E7T9q2PO4Ww9)|Bf0oM7=|D%LjDL^up6V zC>%U;(S%Dc0+G0Mjf8ryeH-yWH#UZJ$t>kkZ@`aSW6ydRAEYmH9ZCUOqg{$(f@R@F zpHt2{qzhQrM`8aG9+zz3W?P|azp{!6l0z=E1}$_h)>4N?jffP1ocKZEnCN4xXL~42 zG4$ahV^ocm$ZM^8`2^u@r;L?&-ajUa_{52KUp$dcpFq(>@s>VgaZBGkj47Lr;Jlff z*`;k`-~W`fsCAf_+HOE%GD%x;Y>J6!u;q(r9@p`?j@z%a2Oqwv+fGlncfa?+_KtU4 zX!qz-8O(}KaFNG#i2B-gTEuECb6kryrxoipuIPo`$KOXUxnE^kwtp!T#ZtEIFdc;- z3(=2os}+J|a^-1i8ioI&?KThEI=5#g8@ZDJg&ux9oXYZ}XIuNm*Iw3l6TjQO@VO`2 zPkwMy-?h6}gL{2t<%Yg{cUEs@I;)ACZaw7c9$lPg3vF>Rfi1(C+B_S6bk3+V_ctG? ztLcR`oJG;!snh4&>AABJH~BHCiHV{*s3xecz2Xxcsq6^ovosje*5&~*8)GfPX#yIT z$g{E{QF|8eSe=Qo7+OMiWVMzv$sPF~OYpg5+jY4jlO~Ui)1pfGE4m>rr%)xcZPf5X zSL!QRPiK7jxZxLl)BQ8?=(OKbH0p}6uxI|tX2@eXBz(2fSA3}>J2_1d^sSlpoS?G{U3Hl$g3Btn-BZs-d<{c~6pY==Omv`-KJ5?&MO}*W;Boi&0guXm=*5vS(esI>>l4 z>D*?@cvBZAn84Y)ynqpJGlIJ-@r1Kd>CWEpW7g%m+T&z(M zgZD5X9C@~1dBu;#G0_1U`yxd|;l+t!&jG}u+rgur=A4X|+1zvSTD$N5o9zQ1cx`*n zdoQ+&8m}=7KXLLv$M&qhFT&UutHsjex}Zh@UiHm2ZtfSL_wmsw30+DOqIP-q_X3p_5|blh16U&TJ;aw zaL;k9IwT*^wol;%9=P7K9J2YdE%DZ#LbrV};MPPCD(&N|i|FQuyssw4VB@Ack`~G6I}36z%)WKvl-ZI$N@f!O1+!6W z2Wr|bA_lZ-Zo|r{JH)nKA_9RU&V1XFtH!X{Mo(&6^=&F@f=e&9_QU6zUV!y@``f?z zT6_7$vwAl1e&O{38+~^*Thp>p3GA{cRmM8AoD7%x%KoG?mg=0)DSmbBim^omtJHc6 zG{hrU`X_oo!^??0val@2b~KR@^gn=zY2ar1z%O!LZla>5f>L&5qarvVl`UVQkJ|%R zM1m!YHq)%w;_GthWUx|o17orBr9c}g?VUl01VMi3!)BicV%=GXUQPop_mFq1w$;rE zl*YDjSxxj!b~z2hjML6@Y|g0e;}^ zu2n^ONLJHT8xqSJGodEvQSuu!2#9Tr;C-?fIL%8s!sIwNI^$&$vNTvd!o8T)%a6UA7C$)b*} zKISsJ0*imK?b%ZT<7W)xWsbb-!Q)uQv(dU5`{?D7I@ZSH8=Q34=QL!GyZcV-lNyY} z7-Pj)oN+D}MR1nNLdSOMb46m3IPhS#ghOu66B?_X(08uyzWbU!Yjso4DZZ|~?|t{` zJL+*_|KurMIMQ4oT8QmPIxHWmYF&M>%9R$Kw&z#n;?I2o+CKi8zE8gBzs$63|4Ju{ z5ePO`MYpzWIubR>c8f|?Ba#x(WuwsUGrX$`xMZsJGWE^?CWAvQ%5uvXx1E0ND=)Nv z|Hq$eU-|5d?Y@U}yVwC8J?(+jb7S!!ZphIYeTls~C7A9_I#A}}&?)ezIEXA#K)&|k*U4H1yjy527Y=UNga4vS3 zv_ZKV-0;^xqsGd(3UmUXrB?ZpL}*i?^n>*N!n~3)xC@#kfiB}rl+anv3qqm8)~^f9 zK44E}CUNW7xwA_NdW@kKlPrwR!>)dQz*^L}!i!wcLw8hxd+p5)BWxL z!ykRH{qBGD{`SZl^f?So66?E(?D%fq)>$&nrm=6$zXMH7^aTdV$2UIF9-+r8eA5na z(H1yg6^MM50v~JYy0z5Czr~yDx5bBcm^}Qoj-&9%{Bo9v7ZLN)4_ZW;h5doHPPS1YV+E>2xl=dOt)#ot2->zS|t6gBCc$@D+@y54M zy57ocT{_IhmJO=Bvj93|LA~X{^o#|nDv-@HHFD-*nz~N)*og^3A27G*+>q$SXCF)6ueP2;!X9gwDG<+}&on%T`30D~%@Uy3u@?<+% z*Z_OfGJ+CX(NcCpw)%bfU+F-N+-xoUnJLOI2BRUjuqYCKSXOISN2|~k)J0HN>U*(d zIsx14Kf>m1E6zwezp8_9rm&J(EK~1jFG?$Xz)GP?^OD$9n3}0w)X&-rKlFyHqYQ#l zM4@C$ELqIt#prU`IkCM<)P^UJNX_?TeRAM0^UVTRS?_~RR_sfOso2q zsU^yW`K+oQMyE{C&`ZQQhD&=uFg-2hrxi|+C?*3fG8bU{9^7gJ0x zf7XcY@`fq_(Gg=$-l>3YYvshKJ_A)(6#GRCkMAeD7LQ|YT*Q!w7Jv9&CuJEo`2vmJ zYT9&X6*uJEo~$13tBcx9p>(W!iC85lgRoEk?! zlV)P+sWby_J#>`}99N(Vl!vXA$ndR~?maqv=crgLQxNkj_h| z)4zU9631okXmH#p|N2>t^eyaZgW}b`niL!yT+w&fu2}yKea-XQ)oYr39B2d3_he4% ziiM5Dgpp3|@5w0j+vHTy*e%3{+9#iVqL@Y<9h~JX%d}Cr4$|PzRD3EGQ_E~?GmQg z=JpueInIL`ahc2e^84fqKez8u*pm6>r>eWQ6V7g`H%R@6mnlB^2rc&!%BmUER=V9> zc@O%-)evI$A8zJ`u5M%_NO&b$lAPO-6E9G_jX z9M~c*WqS!9U8kT}bQV`7=AwIoRuu`P$`6qAvSQAXo!$-486gSQWNBH3A9!NR66GLz z4WZ&@kjngbL4+)7|F-;LlPyS8BJoLeeM(=krW9Mq_t>n;ot_v(ZBICO><^6bpl9f+ zL21}WYWNAB{=$jD+UG2NH{7H}o$<}}^~!zLtE8vYB7T;a$MzY!2F1EckkA`xA)~xr zmn3)}zq;lLDIWE6lZw37P0UNr?mnV8q0fDxTtcDqg{gGd-qknsgdb8+`i9uZO)8Do z3iw1;iFPPG8_H^YLk!T&D&dxcHZ6lTTPdq4n7Z=t+_=vVUQ|(B*5*k;(>KJs6T9l=iD|c&3E>=a=}2> zR~Dt6Ne3IkX+6WpWRHmjw>m@}Ib(t~Ca`R*{A$S>c0bD3;Ny>XUfw`TCQ~VQ2q$vX z$!po#IisY9o?IS$zaVq z^$PZ2TKdazQo@r)BI`jSdQY`;=g#Oh)3fbe?|wsj=Wm|Tv#tyxIYXw@R}y)M8!PyZ zUuagDzOMF*XBF{!UJ6T_ixW-`Sra5Xi}b=$6Ogej&H|C|eS4R+pd6+H;H>8;>_YLY zE>Q8RJauP#iGx>AgU{jK2OqW>#~q&|q zFjcVqVXNv??0qRXMEkAjdnSs2sAlNJ+pMc90BxoVHJKC6z6}z3z=RC>z_=W$A&TF_ zx@dPZ4X9kiuSy8c9(4MY!KEcerTBL|3>B!isOz9r>5fW-lU;AcWJNB1>aSwf&USkq z=4^L>opa5~hveC{3FmrwRm4T1h)#)I=){fLK|7K4ul6a?(zmX!G?-QV!dDu4s;=%g z*mT7A$qZTN!Y$buep|d?nc6dTJYrMzvP7BbJOftJt76H7rpa7rU!h$beY?0|Yl%AV z+b#-4Tmpk^)};HAsOpC*u2~?qJoFW?6c5bgo3atL01&g_7DiSkL%a2y6u*jW=q;P2 zXz2;maHSlY@KanO3Sc$<@Ys{MO2*@BZat0hrpNSLU~!F8mvLCq;>M^GV@wRWFjHl| zNDyN!oh}!YiQw6G^=fO+J^Mm?_BmbU(OCSHZq4%Nr{Le>xC;*d@lE6DdfAT0?ej#j zYKmX{c)SEWR}`;ljDD@%eb24-k&nEoJ^JX~eWHk(xbrLf5_OO&ZxfQPWj?MJZBDD5 z*SMk=b{~IDFZ@ves{ZZ^}IR(AIE0UsKKE+ z1wRJ#To#W`B7*$6rC;gq^|K9Z)=yd0FD8mNb(<;oJ)db0zvcnGP3g^gUhQ@5H-1AM zk8MjLez}RVeBcueRX(e}Pnak(N72}$Oz);*Ii#d4)OTJai@3>ap6C_VE|TEFn-6VX zHuRXCwrmiBaBC>~tZt>Vx9e;t^M$W;hFEUH4w#Bt^o3E^ojT77mA8-SAO3Te3mvl@ zeIw2^1&_%fKR(oY;ewt?ygP0=d&$K2fVMm%a6bW9K#C`W%MLwlxS20_4>T!ft zotTKGZ_c3BJL=<26pz||d*4RwA~9EB?rv)#4K%q#qy4m^R;&oPN?Occ37s1q(0 zinR_;iZfWYZ_ZRkn*edF9cLXHd6l=?l{1sH%QYRiuIS3*HBB1n7rMx-c9Rw5!EsRG z7kVPSlXZBPRj7KTg1P@e>g5!wem>jln3=edKMd#oD4CurUw+PV#YesA_+LPX(=zi7 zVYRBS#bm5l*>$Z*?Hhdk7O`6En9C_!BxLpP1%2zK>s>Qcwp__iN|2d#?cj<}Is-Rs^tM4s zVKZ+#MZ=%+A@!`wvwEQB;{%LI&y3s5&%SH|263-$>6qO;G7dwfeMN7tLn*2hrhcW< z^(>y!ic1|MYs?hmY#l$*EgbTU*ZEfQ3;I^^*S_A`7ryWvkE2fO%=>bpm=jeC#zc{c zy00K|MNud3?UZ%nOkQ}=_@0R(&nTWebzLX;uj#7djrP%xzFD`QUW|#Nj_LT~eKxg5 zJXU0OmZQcg2#m2xh_7Y#@z?Yn<3|wIc8-8A*k$|BiDCy;>!*sMFEnOh*C{4qV)DzY zhNf?a;OHNJcH)vx}b{pFv3 zrhWNyFY0x;4{E4*w+8#?HNewzW_pH@2_A1);z}R4pK+CuZ|E_gjH?Rxr(e1meFvu? z0JBJN8ZtX`*+^j-txBimL8Ku4?s1jWU$HNiK6_~bGu%6 zX3Zg!`bGFLH!Wax`mc#Axk+Yk7Tqbk7gLNi7C(!ZY57KK9+>=fsF?H*W0MGWAp_kC z5>UxXuE?Zw%-sK0v>7|+ORiGdspJbc*TKHyhki^NxQgh>g8ZcpQIWVx6}!WXf%?o% z`mioH@+=$=avRPblcm=eEfAAoIy5rz;|A8~ha&ZbEd^VFJ#3rpBF1;as?+vasV!ae zcE81+ZLISpyHBq8Yq=#}esj`i0>yqtuPXIKu{i7}z%rv#gK@jIimtU+iZe0eUq9L( zoLS02W7~wz$pYHC`pDcbkeU~X^`&%mLT0MZ89NKCfhrfaSok%|bw0*m%qc>%e(_*; znPMjf-L;geDwj;zN6&fzQ#uO2h3T}iw^CL*I*v>_)b*|%OmL|x)oUGHOh98xU;$hf zfFM_X;Y0T$>BU2G=26~Sj)Ot2a0~sZaI=o^#Be>2s9Whyb$b)rnT#Q~rj@YmQkZSe zd9kW4d+iIq5-IgN>ExDqU9M*^xFdGw24;O5>dM3x>@ePjsvcYG+EV!cQupT1mK@ia zSiaY&(y6YK~_IBZ2s*s?@w zM2QQe;R2GN2m&B>5CF07=zV*y{e9=;S9L0HW>ww$UW0UX-X>-X5mI za~}}nM|l0n>#N^9vF3TXpA+!vJTm*Sg}?0boD37ibzf0DaM3xeDEdV4;)6IJ2ZV!* z?L!9Eb$E6GL9w;YQv@5HuYj*O(6#iXTzuO}>6^S|3?-+0FH96=C;$y9lbmJglu}l1 z(T07*zO;t7k;zVD=TgWIH&dXfU;A?ziO=deupI9zHU9bvTJFYD4o{Y;X3F-@*7lUb zU;pZ@^yojon4Wq1)%5C%r-46!0eex}yJx?hte-o_Yn9PxHs)~cGy>j*5zJRs@T8Ih z+QSqv<3OG#oH|LT$|i~YDFP>_cqPUf(s$lElD_aKhtoIy?91t{yRq7YLAVdAPBgQf z1Sz?>D#4UH5?TEOm7FN>!%eA|?3?2LA)3|Hc^3r^vLj^aWJ(u;EqdD z6Z==Ue^8hYawf}a<6vX*lbw>wNFtHrxBDHB0W~h_c}y5PF4XLHM#ket(I?j4d=f4G zD4_kUMGT`h!vxU&*yIQd-|g&K2rTw<+8RI9)=$(DPdW4aVu70pkao&No2WAzV0E19 z_)HOObGezounPlx3a5rw9faq&cr?+5w-dr?T$uBM{g)1@QFH_rZN?}p%VuD<} z=2Hd8g^8v$?ix-uHN12&rCa*9a}cC+?IOoQ9;BfuCWm$eL4R$KmLaq895TU?E$eU$Vt`Q2@N@)u_iye7UmGCaE2#`P7Q5R$-$F|Ch zu_U0N=36+$D#I9`FiOXC!c=fIAeQwja`-OOv(lR`x38R?8N^U^=h z&-LRfINYv;h2(=ksO9&&2;2R`=pA#qdsCNiyN`R+e9%dz3z*XkcsihJcVStmiKcK5;|h~Xy|LG6c47nhx&^X!U4 z69MMcM7zfk*G%(X#JAu4Al-A{q4c@We=2?I{+rXSw&LvhB^ zXNbwN;x6T@l%p@%=QyoCiWxdWRX2k|=MOdEKtzF?#pVIpfeZ$gLS^+QAE6me6E8r( z{RAH$V?Dq_z`V%-Vv_pyQl9;$Rsvs#z!+6oBzx&Jd2&*D9pHpBx53%kG&j2 z;OKZk!sB0O1B_r1v*4=`&|Y?ZCWBPj4$vE$O8Q>Bm979phtflT_gcE*Dm>-%{C-Rj_rnS|&{|CR0w+4NO{t4;o*zH=7J40jB>k#Ez9k}8MrPDD~a}s4Xi4j!3|B9T(*IyDji7w;>&lW zul(ul>G~U;54S*}e%yh$`bc){Jlq)|XC27OIk4?aX2Le>fMvE*qN+GAu7<2cPCom}2e5y|3QA)RtHzJF|L+;Ba9DKR|fv8zfU77$W z=&P@5hs=Fz3^-r+m|g49@hT`bg#XCRAG*)rJyU1!NKrntanEjETIYK_@p$li`r!SP zUVZg+ditq1)02u!9)?4n(}oAl=I|}kMbp_eIOZb3;_PSlXTXFvpc`!)Z(&zd9E9qsKmWUg{{VX{fb- zZ0tdJ3VwyNvlpfqR27NLksWbJZoy-l}b|;xxcecPPoA0XwOZFj; z7udi2ctfopTX@XizRTkWzHIY8;l9sy&Mm0pk%2fa9V;9D$mB>WNJPU-Xiyngq4@GK z(?+{er%<%w5JEOu^=R3zCj9U)B&9eb2D4ris9D?$iQ6Mi$hrG*{ z)RsC1DUCeBxXk0VZ+vm=uv=nr9qtPgFO_N_|YV*PUW_q0po2K55<{E<>| z;!Tj__WCn+wS!wYC_^FYa}`EbxNCv3=4Lrz9y!aVbNfKBWc_2im;DmkwaXX$vQes7 z`+b0I$P!`{I)XAhQxhG#El@Td3Xm$uTAzj-~q{Nj=H`fK>Ref}WM z%@5!&GFKDn8y~9#|L$s|Z~Xn2-o%Q51+HQu9(-s@UtDC`+B}7aPJW21{Py92lZVpb zTP{vlU4>i2aBj|(O>O3tMz+PalB`e1+P+75t{elUUgc#tWz$OM`jowVFFjEdK}^>-=# z<3o?7pZ@6i^yV8U(}(ZwP8VH-6~#4P+w7CXb9k>IdHFuWU6@^R@bErJK8cbK$l-@u zJUCd4UIAzrBUdGuGDb}ld1C4hFtHUvjJh{oc`H5erOVQnzw)W{iF-emuDNc*UhKJv zUpm&;&)P(hLz@rE;Go~&lToY*xI^TVQ9CI`(KaYKLBM2@c7ttDq}HPzV0N%j>wgB% zf95$hAof%bkKg$)Q_)joHz0TTVZd$PA&i?Y==^U;0v5k@wuEd*5-gQkv*R?0h490No1>$t@e7TJf?+6r|y%7L+iCW7k5 zdKXOK&NA&^rjZNq>O>`2ES*&yJNKx_V#tebeUOQgqS|JrU2p}WJFdE1TmyI3zphuDIaCumR+a^S zQ6$RSHCL$^YlIsUzPfhE9MLC5=GUDYf@3BWJ3!aJnZP6Uel;%;WK|zra6o(G?NW1x z(+B>&a-LT6IuiU9z`}8YePNDZuoQvk9~`czIj5A zzps2A2XQA);tIguoJv3Y*$Y@$!RjO4Ot86ySzE%ZsQ9oyp8$ZFE0sLg&a*lDn~w8k zq>RD6k(8zW!^=(i>=Cvh7m7B|oxs(DM{quVak}qQ*QXn9+?5XE{zSfcfD^?oYGkY) z#s|tJw_0D2Vxd18ye<0%d_g?dPc$rj?#M)u4i<=ggg}E9fzAN`Ld$KS=-dy;m?Hy8@S?9>9c*gN`SZ zd|(Yu9`k6h>y^!&U&czV{w1AsCS;r)uJ4PcnIA~x8gLVT@<+RK>jMWzgZA8t&uPuoF=_Z`I4 zR0V8*D3iUR@)yA_XIu6qzQ8GuLtIb@zHADgRj;Z@<{SF=I#`YJMA0RzPo8MN&Z+})k9jdLXk)JIv(2nIh~YltSXuZG zBLKhD*dH-@j(ykfn;lh{DB6e#F^GX_H*DZgKBK;tA8(5se;~801?FrayFeezT;~md zJgkDDWxL=PXtHgt(*kJ&Uy99T@Eds;KrCAkf*`XPE$AQ|_~?%@QLH_@9~-Xqrf6|R zhKyen^%B*smyG5triyDD3!yDEHn<;ddtZz(1|Jqi92aHe(XQ-}T!&VDB9-bg7KM+F8@8eRJC~`XRT5RPUP@8h4bIN6G)&e(tY+$m7opV)QQP?2WJcvH%KiP-e6g zxj5i3S^x?m>qC*M>M)a7i~5hWl#*N@L%|OJAYwc6GS3soQ+fw)CwS_q_tK-kdKJ$T z;erk>Io;&bP4U4*krQQlJl~yX+o}p={JYGFqA!}@FE)r7ho3VsPH%gPc#k3{j2oCM zoW$hxz4X9?SEL6&e?z+F8o$bqm!@i>Xczi*p_6m@ZE?&wM;zy4tS$R7o2Z-XC)$)g zcVwbilJ*WU3^ba0p^q8s#MtmWArq)SA>;Vs_}~i7SzO88W< zn?H;RIId!z=c=YJE!s+_PmDJF;a8U1crnM|`j zC{uKRo)V(I=R&(XMc#!pIC`@(r@9Q~(O=9nEc(hHQw85cl95th=T`ewVV%V7Xnflr!TcAqGh>G5g8fE3KRgA;EsN>( z*He1oxs&O|m)=XSynHmBIm1Pr{WxFWjrcKXT;qx&!1lM9f1~*{b4?T>?{34QFU8@1 z_xbmnR}AtV#j|Hl+p6OJz2L{gCQqGuFFp9htMU4}Yto@BJtmrS#gP&7m3iD4tG+F} z#8+#~wZ>3M-Lfxnt@2zyv~T(P1DGgsNAS+@nGQQWml-*-K2hXDW;jvggJ-x}g$Wf; z;xG~8svP?hw;rbV@TdCyg7NvMi=8;GF7O^jn7I{YpDw=wj|9fev-bQPOcptyIUsGd6RAyR>B>hcGTbQO7UOV9 z|1ASWsPZDhE8okzTybQP*G^w#q6feC%j4sOkL^jlbNIo=@RTFtt{}&e!v;2F8ni_i z1Fyo6IpWC44>$T`HpZ`VOo`>z#e#gMFu8wa2@>f#{_KDUrWhB;vsSxg!(jReiA&ut z$7FD)EMy$J9KkluY>ZI}qTjl&NAhhmU`Fqj)#5VT+%wV z?^|Zq2k1qXQOOSPYSC3cz^KmBE+gPBoao16L z{TXH3ry03j80#G^3@zUYI`Tf_6ipv$Ga7Vt?5zj6L7g+N+40N%pz?1h6!>V2+PNTN zC%5WJ6xRW`;dzhgxo0=iuOEFQz4g|abnNIF&h>c?j+Mld?;Z=T!#ZId?F$aJRt|sIKs0RAw39rBB|sKV5n;{`#94 zCZKqDjy)_h2h4sO_MJHy{bK!Fz5K+{B>5j|-eA?!koXr*)xK{s&B}*)` zRZ%vP;CEc-m+)FDf8aS$tH< zR=Oaw_KkAtw8cKoe1P`-TIyvN)5xuu`gqEA9@d#W(LVA@WdUVH&r3l+o})bE;Vjl= z)K~VP#98n?5}vTNlz#1s6)5{S8%X+qtK8Z((9*KSc5YE*=cY!?xxV8ux40zlc_fMH z{Me#ZpVxjSiG{3ghfw<7Pwg1cTdU5JSZCyR=w--tK6<5z+z|kf+kfe0(3ks|$V|B~ zxhOGHY-K;FZmu;zM?szGJ9j>!#LJC93eI_?R}F23yBLQ$-+ zwM7`5ryC#SjLfep<2f_-b^duJ9v@B;`OHXuj^Qf6-#l?N{p{ga((&WGLhwL3yU7(m zoIm4%H*4!yRpi4e%`d*~99t7b{=Md=^K#}D6r9+(Ih@#!?7oPzxrryQo;sOsyz!EB z+ilmT+wa_;ZoCQaIOl6I@TvrO#)tEU9IR2I@0jl3rheZ+$|}`V|He3KSQ}$=Uys2E zB4LcEM&9dfxWppzY;v9)BkfvWox%?9;g++NI-S6Apit^7id%flJ@98v`E|}uKY1d3 z`)}|%jKBR|y8h-v(D8;?bUN-8-dY4-OuN=&`%=KoQnnWhc_gFQVR39QW!|@l>h?FFYWtUAj9}oz z#LIq_bzf}DK2qoI>%h1*K9=>%2FOecri(EM5@RXru5yWuHqv=o*1fOK5LYY37>x%z z06j%{%v){Sp>!@hrZ!OR9S&KY?J}8RY>Sp<+X!FE7cHkH;v#ZsK5qbaReeL#HOEzF z0pq0`5H|Fg`?=}A^AR$+J6Z2}6Ga<|bY^49zcOE|-of2u*4n6V!iDxKhu;qPw7*?b zJR^NKRi^0J7fRduqT<;~1<} z!$>S*s`MVgPGuDamkEkpf&Pq>U+!D}9WFZ=TgVR1A}{1`i$CY3kMRz`MFD>k%_PT5 zZE4Dd4x21e0kE|YPik>~Vz=M$lm~KN&Bv6J#P{)bg4bRC=C7JtmBpB*G=nz4;_mzGrb`ovWC*HqaKQP!kK9ggdvzv9oimLnb@U<&Ij_ zAMIwZD9U}!nFg;g!_+&_##g8C6EYnz`i^Bs6JKn3qDT(c(h~E2yMYy_)fjm1znjwY z&z?z-{`2$cXFq)+J@x33bm*F^(CK@D1AtE_#bu55AR7#t{;8B4fEbJjiS^JjH81(J zG0q3y@Y+_}IPv32yap}9)j&nsG^aLJIImr;v{_2*{2|J3@yY05ZJ9RG_E3EvGrp|lALl-TUOo*{nEvvuCR|W zGfz)SJysr6Au%Ae_^6mu-jMBmm-`P8BGLQ!aE#d?Fp0jr%Sh^%Q#fhnw}YuOIFUJ* z=|`5T&sKF<>+88(924}(!8kTc?d$ZK+tX6((Zx{mzLz^Y z=sk*FV9s++cWoJF4rq3=^^twTq>qVQmuiJ6Li3}8ViZ&3nCxLXFZxD$^{Tpu3LT5o zr977;uCtPTPKncIZD?OEu`#RbH6aqW@ODgNA#g~?lyNQoO^JwBp6A7`vy@-hk-PX< zq?!+i)Q_zwdVDyK0haGTv;Xv{M8ED$@Ff=HVkWO)9>Rz^hU&tj$UG&s(HcPs72 zBF#FU8S+PebU1zHflJbrTu-tJz!xTpd{y1XE}V>`t z4ixUhTU+OV=e>f^;lqg~ZG7XP=Se&VEZLy9LCPTL#XLFG*oozU#Xz$&S% zVj(W0xGzGbzEnzt+D|EE+=wxcpeS{Y(06W?A|Q_|#{(VJE|c9d>6oP)5BY}vYW8)z zAxmHP*k(OOyh@$ZzB$HnySFOt!!X1Vvh=}rCv(TwJ08!OT|QpYn4Q1OW;SlX7-HR- zx2PJF5xcbCE=G=5jadmX&KMWI6dqICydhOUis1ZzmMxi>ZKHysg1UF>u}xUW((2X~ za%SAN*SgQH<|U1l`|hscdM<(&`Mlk$#1&y|1MBbX+{Xd@#}MG!#!ln`fjDUD$C_b` zBvG77ouZGGZhCvynro3mG#Hx>v2U}@W%nPH97x<^Jy` z(SK!OUAeq&b;qTv=7#iYKISQ0@Xw(xg3nEKFUzuleCT%eI!Jks}`5gyyi1kmEwD9hWy4LQY3y%lwE z!`RV;(JXi{vm0=BIWT;5Tdhx)@!o3hX^uS3(9kw+1_s_M z)(3W+p_1+8a?1%a(rlf|+Lk5t9rGl>C-6gHo5rMUOY-N7I zTkzS-6;Mtc+Q&vQWKM%`#=JyhjD^4~x&5y6Qd z(yaFL51j*9?SSEX%Kdp9c=%{K@*!3eA3u?P@{_01snfgDz5|!Qd=LJrV&MjST!pj+ zRHW{~c~o*|Jbv)+Fc*JtPQ}d@bNrbkJe%UJW?PsfuC3!mjaaC;(2 z8Xnl9t{n`xmJy9hM`Kub21i{3%N=*9oVSxJUe;;sZlZ5?o}CnPmys=%cz+^B!O-;boW)!asa* znR;vM3ArXHU`X^@WWwB8~VaPvq>r>SoU7ubr!G7IF0wX ze3-uR&AZaqzW&GQ=EImCV0`n(6s}}49$xB7rfyRx*@d-3Hs^7SSTb=loYh_wGwf~G9I{#ld3qqsqc_Yw$kRMx4 zEDxJ%nR0Fg)?&^!7E{E~zXxol`ttq)5$lY;wpfgq;~;NTBg-EH?7>GYS^seiF$iLp znJCJOSAg8MwK`w=B~p%qZeLx(PEgsF$Bk0YatkADJJopb)P`6GX8b5v<9G*jeX3sa z=5t(Ux0tbh&wnKQej_mn_+kI`>?l~-Q+;>6%C3k1!czwi0~m)n-8i=TZ3gR%1-Cs9&UDoBuY&O!GO;VR{mb#CzAqSVD+|G5ElX; zTWzfVW|>)Ti@1;KKEIAuL1wImlk`%v?4f%j zwQtd;Ln7ncP8z>^@AaHw>Y{ez4DLJ(j0X_YPy(hdRyGrv!+Ea_20k|=TjOt}bf{K0gGrpBH-+ zoFJ}Y@g+_a*Z4{e@T}w9imQmH&m6(~)X%3whxVsC@4hQKoIRvgM#i9`Z za#mxG|V^=$RrE-7d=2M?pQ&qmYb}MvKb_IOLiqWrPQ(ALE{9vL;kVwW1 zBaZngY>8(xyPYLg>;`fcv9~C*;mAoAg5^5~IqT` z<`Z8SxHf>e+M^L;s|u`-h7!S!b&M~!TN`lzve9{2DOMCWw~nW`UVk(F={FCjul&o; zrMvDqgjGiWm4iDIIk^lTH}qMFSDr z#W~q}UjLrdv?RdCc<9q`WV3<=>v6c9@exmm!et&?#JPk*e28;%7pp9LVO$G16hX(B zY|FTTKHFG(5odM5;Do)M{M+OKAgT;YYv?sW^rK*A;Y5S0iTxO}cF9^M+$)@kskK&4 zGrxuEo}k$FHuspYZAaT8V4H?^u{N+TXN8LG=>3@G)K&gl5b;}Y#umPJ{Xe2~grPCb!ufXoH2NvF~N)CrhTtF(E+Oe#BJ80OCB?L$SW?jP zKSndcTpT~(9o#OjQV-LB3Z z2`k?fDw$Db1z!`f{cCcKDeH(jU_v_HZ*61tRU@R%sP7+$%63(IL*+QIja0)_-uTWB zxcTQ-$?b^2_n_Z|Fa2f0R$GhEV`+zL^#M2^N@QlK+ZK)iG}jqf#ZV`l)!B|l5CTmD z5h!mYE-(ARETspeH?~6eB@dmzkYLLV1$%+vbWI;Hsqf+2{@lWT&HU*6h{q59=+4C;-BJcG zn0WeCihLE`DMWfSU4Q*PEXG`&Zn^b9y6*afc>-#{KjS$r)@O~2IaW{B0)NYG!om25 zeFc-*o7$~3=;~G~cDOv{hw-&yWGJ*>m?-XWj2&GcEIZ%DdE8lnA`g~5#{tL>W!{Z^ z6^866=XK8P)0baL>4)EcBt7)KXYumP^Xd4}U06oO2*47yzk3D46MS}f0~O=o%EXK|^{c~_2%>#!4*e@A&Eo?qu8s2vn#sv@dA(B&F`ry{_TM?Xmuj1B8 ztcZS)ZolVXy8G^rr3XKMN4od^%hM&7`V*n(wySf_+qoq2T*9}O@pDUrNMeGR(vEc` z0-I7VxhUj4>vp85ZdUi9#-SW!l=G|a+rGaep<_xGw;xJr?;Or=HBogyle3+Xdnx(7 z+}lR0h|SiPc%IeC((J=+yZ$gKd)c=EmW5m?Lzt0}!~@VxGC0P}z=>>Zu~T!$X1MdS z-pVPpRtGBZTejCbasNGaQ0S4v+?ZWN3fGT;sIBKCR`xYy#4YNJw(J18ZMr7u+p6!u zUe=ivnL$70KJ5F0y$TNVfpj=f0uur5i{A#ljB&H{o*)oam6u0jK@<)59>}a@nsx^EklZ-1+}6LqGq=A z;p-cN4abM$0t=dv-#=_qHHkIauKN`@v2UJEKZvLLS(RPvco~5So(TphR(>_&!xRT;nh!!-DI>Y!m+xM zz&JZ%r_A5InS8jy`VZNjvd@X2)&5}eb6Jp!2WPitMt`>Of|F9-&c#I+254glgjOGb zc&OlgiAQi1;8RZ?!$k45^xnH9+y@NK@3E}62@r9+HgHRrl`)CLY>wybyDT{J;{5j< z>joL#slL98vGE=2eDDmYOCwQ%o!vyWJN_1?$3pbey-oue_c$9idS!+g2*hnw~skdfLd>6t3i#9px?C zg?kjEQ8X;&rL(DW9{{_q6t|#?NUMb})k4uJ}ES|z8sJM3#H(UPOZ{3@|@vlCWuD`)2 zig~}VcHl#HXwUmH*#>;aBct|Ld4LKso78er>`e?I2eArDA)dMU>p>iB{RfKNQt)LC zyVOuwPpp4>N31miSK4bDIdIs7KHDvzLM#T!@d($ASK*WjP^3QAAY|j_Eyl_`DDdSi zu+SbOb;}l+fF$zaskaL95}S{HqS)1irnU*_CFA$tAQwx{_OCj;a5BMCXk9TSYl{EXEin$2$VCx^thwzd87N?A{Zo zJ{jwf6{J&jw%9Xo#Mb1}E2SB6`cQ5k%1!BQ!UEd{K$la8E%MaL1`1zOZ8M132|Meq zUlfZpx!ma`&#B~PtX*A-Iu+(UOSe61a(Klsn-Sng+>dE$KZ94>?7-=Gal^7P;u0*L2nD6f)x zm#@Qk^%O2SeHZUe`~dGc-+Dh%+EgOkO*d$GcZncO+dYff1&xq-!$G*hRaCLo;!~7>0Nkl`K9<=mae;Y9hacyxWU6a z?_h%SY8vKx@|@qEC4zHMOjfD4{=yf>hxP-FL)#Y!$Xk?4HYb%`iPe~F>4_JH`4Sg( z)VH?MF5-4%qF6d$V3Nfk*_Qn9Fk*V|n>_s3(46FO8JUwPJ|PtU>_waWbpT7r!23YJ zy@|LH_St7oreFQ?d0ck-e0uB`AEwK%ybObelS;1SfeizWezbFfB-Y(l2kBpb>yGr*KYcLWcKbnF zRouG|bpV{Na^XXEcp2;lUiP9BLVvoG$87Pky)eM7p4mU!!aqos+-oL1mzVv8y zuGNV)1z0`{@$6zN1`=2ZBaIt<59`Ayy#j7tt4uKlLd20bh_{`Mb&YXFxtug(sPqAC zns^Zwc9VG7<+O}3+NNFa)I?7z)aETkuymRVQ+LkfLm`YveD=5ULG^hss7Ug9= z+QvKx!l)UJgOY>gf$ac*5d$usy9rktZ)0^|z)!Sy8Os>=Ak?D3vCdn+xNTy!jT1MX zhws6n1^0w4T;69_7WmE%FeYj?sq@>ecn-@qTX5ax<(JQ=#~%M(dg;aE>Fu}HFcG{c zUjfL8B3A%8N!zm3L|fp|Sc8la?6UJ;-owaqV@Ae}Q&?Vh%5z`NA#mOg)jAfO&Ye4v z?!4=w^r`#tzQmh$*-9ejpoq~wTtVdgz%Man|GCOJIe!4oMs@$URr`V3lkHq<>rzIh zRW|X+UyVZ;>PlSH)$}bH?Zmb1iK2+;Y;2=bPCWcl6|KzKzGDMK9c-70=F30XmwamJ zdHyF5$#48F>E+Z-nI_V25)c8J;^QGbEhY zG%y5X+}>c6@L=hw^phzJEEddMJ1!Xcy^>t<2jOmr4{?R z>}%@dCViQfxUw8MVqQE^7V}XrPNl*{3}t1x#7~uFuT*}NmiCgj@YH)V*4xtcL!CI4 zj&TbU(^ibalzdZo*)b)SA9Cm;y>u!ojkqaaWo+V5I%O}M(#RKWTXNZXs^fu|qWusz zue7Xvj8PsUhxAIR(}#G<^^tvPC~F;Vx*g!S}W{e6HLVu>kzRux%5g|C*t&>ywnLZr~c8lhL17L(U^EhrU01=8R3Q_U_?TemJkk zsvp%{@#EEZ=gwiG$F~XKDKXst@hU>w!%pKA_Nk{&rJwxxsr1&{JU71>`UBv~=k4IP zIYJ&^obd6MElx@|;e(SpUYSSU^>z4$Q(JN5)piWe<_$Pm#>(P(yeoa*zOA%>|M~QZ zPh64i`xGuYy_z-P1d=$xfcVevH=+P$=@az)3LoRbF|+%CHaEj{1`S$C zt-pw0b`y_yOMB@hFL5n>iIY9kXhYoWiDD#KKJT62??mA*1Ae&^XYm|hHsj%}2YDQV zy`vyyr}5(z@=Go`UpkA+PJjDCO5gpvhthZc>Pf7=U5XCHyH|LLDjs0N!9}~ReCerG zl;jH=KqDJD5P`?QtPK#$%e`-A_6U$W8(1k0d0=Vf35DO9sS~9 z;m6u9*Mo_-i<_1Mic;^dK8+aa%Q9uPO+3;m7L{vhljRtNGS2Jx2l zqOY;~$gYe@JZL#^m)e~#_x=|5m(p81W+Lmy^|s9-zJ)F0P&vjf8PihkyxyMC2XPj~ zl4B|Q+NpeuYrx6iK1W0=1u4eDm>=%7O+ixIKjg$Sh&2EmxZ$I3qm}q@Z6fWbDh8|^Nyse zuHKyvA3l`sy7N#vd<))}h=ms}y6_;+`ztMepJ77g^|R{ac?s7kc}Xq%l;_;EQ$I2W zwI^k7j=nPCxk0OX>QXufnek z_*G&HE06po0|SWn=9w?pu%qX1Y^aF#GTIy);~u6AYKRZE8QZxBFLwfpcX5DnqR1CP z;=wk%Hu#RkQ|W_uKS7$8N@i5_4bd6V@!Yv+$Z~m~!A6z4`aqtEEnJjGUgc|i(lMQ~k67j-U$kw>$Lvep zvSl66TXr#~h><+TU(-`YOvKSv_R(gi^3m6JILBg)brMc#^x29<*p@zW>_lGv$Q6A? zx%@=EWK3(=s4wkW_!1X6YWWsVl#8=W$wyqo)_ia6!@8{y2 zhH2xX#raLFBtpPTMD2VO=bq@$Lc-Kb#-%@8j9CXDsEtiM$LI^GDl&M9SxyU==AH zPp8kmmu|iFV7l+V+tcC0yV7NtB<|;}T%0Ikvxy?#ubxkj<W>pGWe2AU3Vga{Sc%lywp2Bb_L2aiTbAXjY1$ zu(vsXXQM;FR|BxXvVHQvgX+T%Qu_JBucjaW<8yf8>D%emmrths2k;0Zz6yi)GwKn& z7_{tc5^xodJl=g|)wU?<9A^l^#pc$z|4pOL=+uVEM)H*DiLn@v;V&=VS;Xd5LO!ht z?^fKx6Pk|Tr#h~Sc6J=h~YY(Qt zuQ~+!_1nnQs;DrROjT!^m4h=6CKV~ZoQ}L8|$s?Beh>MsgFKx=Q?3S^K9I_LS zbY)p`rm~5$h_C5e*eGx1m*tznxBSF92ot%O7e;B+%Od^`m151UU}M&VO#vNkLef>aZyj+G46QF@{3BcH4C z%bqc-j*^M9RtMEl7^bq1vY0PI<&X8M`C67Q##7^q`Z8bh)#6wNOFt#P z#aqU-Smv1~`S4+ie|GMP^H-i;_UFYs7c~j6n2PcA6GhA?@jQ`~e)^M_@j5#`lVdkt zk>U3uuGvE#cjNq)tAn)VZDxMn4r`x;a=)^3W!xW$%S>6XjonyLgq*9FjB6KOK+bn2 z@+qggcb~ul%L%+m;Bwr?bt4{N13jp*eq`}-T40x-a&gKoL*=oG_40b+q#AK!E@5@1 z)a?kOZ?>a8P?;>Ywc1%Sm5J3Royucr&0hE#kMK;X=R}by%kd+Qn2JxSbRWq?klSjk&{@ zVV#dMdf+U83qC$^<7y>0-Y?0k^!DJ=JH964%$cL<(#y`KtFPU_MDa>|E>2fm=5I-W zDPr~sqfJQc0XRGl2P=)xYSGm5}Sv|PS#a34&Z+4^#|^##c2haV0?pXA_I1)AlJ zW8%~)Url`W>9^89{Qb|;cmDDvybj}PJTYlM>;UFUA|{8ty!9-8W#H75OVdofp*ReH zBQO2rthtEJ209K_4ox3IgP?M309ekyT}T(U8859d#O;1b#ALsGtl8w%?pNe>-uPvM z_bc-HYChd`4{pNclbQb2pMNra>C2x?*Iow|s>gY6-ap`$cL;Nm>GiV7Cm;M{zsm3z z5wE6w8@ENY@>gwqkgOadEnIY5+C*Krp0PWTcdeJL-?!ih)a5-0ttsd#Jlb9}Yz z=h&7$Yh26)XwrYON z4>_lN$-czJvM`Dct&#r9SF}S6X5vA4|vhYIe)`h*!u==ry2jFl$X9E*Ho+EGJ zJ&8P*=VqtTcAkvC<95pyR|Nfj#&ej7vK{u=3gc!vcKkg&-E=*D^4_cQ_JB*%RafDi zi3hL@!)HN)ixWlh@u4?-?Hs-MWwKmFMar3pm-+3B9v!l-bjoFtOz-Cnt)mC+oKhYva7` zn-j&;r%$90-Z_%~{J*;^{mEAz!24e=#;+u}1Qi3`+Qs7Fk~=@-;5F1(QRPl**I@Hk z8V~loO%lESU3^Psx;ARqEjti}Z_ssO`EB8)r$LF4u9TN$;p9~15-0ttsd#JlQ@+M* z$v0(R`kdk`@jJ=i;!;d4y~@YAj{_YuqKKRgN*#c%nXX)UZ+iQREq$;+qrC9LzFt%XiCW%wM!Eab-DTW4^?- z;-tkx#f%UiuQQl()*; z;oFXFE1tR>=aTsplIOAXi?danxAGj53Y>3avBS>paSpn9&Y#Rr?MpAF^vhqqkzV@k ziS*%zyKrvHl|MXq688tL?ZRs|Y~tqU!(2<@Re&3K&Im78wTU9>L1gmUac|-VX097}&c~UvNANm~1L=X!ek|Sev1AJ_yb=+o%3N!~c`|MJ;iQ(Uk+4U3 zJzwcZ6vD8@C!Vj{7(to!{-`F39y|NF<%iDMh-!}qXqcoxGImz-|k zF}-}^l65Bd$Z1R0)>u|z(^!d}&;N1r;!tilfV2uqBWr(kg3)o;$XhNO`G6k^*!aU| zcn>9G_Q|mYjENkdfVvx_`8;NMCr_Th^7#oYsh>*sK5z*4Dc*$3Pwz-~e|&%9t(bXX z5(6HSL|(4S$tM2s7Z%;4iBgU=1UHCD^50Kd8>F>J;$R)qQ&)0M*%B{I zMP0Osd1A^~sF!WTDqq7($8^k=`YC&2;x@$>vCQuz|FT^4zihm;nY*>(i9TBx`k0HG z8_!PSVr(_uvR+g88plq^$~bDAW3f%y*KDV3YBAJgHSQX&CM#p8ag`YHEQ6IzOl$U0 zKb2QpN`-Inw&b!~B`tlg!a8zck%<|K;gA zT!}{y42|n0S~CG93Vyp67p`oh&??3iQTB&=Q>%hc zkVeN_X-95;Mkk6ffIh_KbMBnYO{eG>P86->nQ)?r1cPG@qe1;;odY$mamJhpufsT> z{>$I~ApPh6{jv11+it+%+?$RcJ&V;ty!dmk-}h$^aNz*rJ66!WKCn4d^r4h0v9sV? zOYWFqfGLh^1BR=;%M27#kQ>N6uuQhDIbfe z#Fph+3^l$Qj$9?Sg)9B4T-r-MH=lUU6#LBPIQXhQ_6YZm3dEr!!Y0Xynnl9Q37iFv1MEm)9 zoJ?XdhYLE4!&VaUw}bEY<`rwa&(P*rIQzu2OpW%)QGYwZQ%@dGzkK9HyscmlCUIB7 zW*2S^!`ser$?2{QpKS7Z8$1W*$1g$Ut1GzpgImWyY<0(Mk7wLx&*E}XT#d(t7rr^b z-oUYT29wew>B=kD(&1aK!iwVM>6TmYI*f}EcCI8BBU#}2H#5AS(dHqXJ?3+HKTFON zMXL+z#dB(Gz!(lGMg~*wPovw3DrDW=|Al zSRyFA0XDyR{FU^`FMgAL{^Q?az+Hrj z_#<^~a)|*$Za&1ucrcUVrI;K{l-n;Kxr4pe>3F!=U>J(51T%}&^lZR@QT&c@g&{f+ z5r)cj<>WQg)h4w-VDfwpzm)JPPJ8$8oidwPLO%xCaqLvb(_j3DPp2<`d*C{51y6$;m9M&Yg=dB#lu9?;hX<{GJ*Ia$OrsHCy3Io#f(+X^D-xW%A;Y zFQvluhwPEc4stU)Em!YjKubHH_@%q$QthB5w;r>|C69 zKkAgR^P@PKDleVtA$b{Ntp6NLv~S@fW-1^3x3Kin!j&Bhuk4peOW(`bu8LLtSGA|zcG{@)KgLyJYcY@63qOZP zSf(}3l4Dg&^uv6~Tk5x4uEkk$t`dWIOIwwtR~mf^6J;@9vx)kp@;H&SH6H%`;E6fU zig7(B?=|!V8i=6S;Oj1seGMy!PyG56o_6{Ho^*N~6S)n%Hxc(vQJ)utaMp@*Tu%JX z;rSc5G7u9*P6W@L#igXU1a&vx4F@(m2L~x%`NkjcIdkyydmMZ4T#vQ2lX!;72Y4OE zMd^VDZcn$|$^{nOs+C_W$5@lymIaTTWP)qgZhYl>cwJZ@L)y7C^SpP`?zLoXP1*k~ zW!tKKsf&FPP$ZNoCd%HxG z6Gg6uApw*qyVs5#`u3atI*cDZ^g??3tq*Yt>T&;70E2B0W=;0=BMu;taiXY|Nlu#l z^%xvnTxRAUG$gH!POFttS z2A))NVE+NwU}X`PpB_KSty&F5t(FoyRkew>s@hsbTPrA$s=aqahdq*-q1LMuRXg@>kpwYnZz{wp zB{37hH}Bs$pL2fy!1J8vIoG)#_kCU0ece`qu~$S)W&AxAUU7xb+xo;%+P^`ew}MJo z9LFIZ5zir~>H@X43zF%Q=;>g}vfz$ z>y6hCsAD|puxqki`V(L5!lQMbCgT5YNE@!{298LT->;3gr+mc>-F)2$8@kb^yi^#T zlzn*P38eJCSM^;&7eU#HF8YMtUc1|_pHED0PoYV)6;o0XC!Yx>u6J)7`Arw@YG6%? zgo%QU=o}&=%QrjKaE;NlKP#`UPJ#o6n7KX$KsV$-EkkDLCUsl0@iAzj~;m&~9Iw?X?f5{bz%PH)n&d#sUk6H4Y#j zqKUqY5ViN--v=&w*1DWhgTNW$b_xK13Hux9ow%G(V2ge0XB0rYV}ky1Ww)a(ZzFPo z+vz|&uke);IjU|c!J2YYw&!{CM)DIEpq5T$ehKBeWPF$cbYZH<$f3sn5_2YhW!DNVZ;sdSFsV2iYhCVyr5fUA`hcUSKrv-$BRE z<@b4@jQ4(@K7u>m7R0&E;gqR4mt>^8FJ9J?mtIgzV`q8I85sS2-lQ9yMC9gJ^nHcG*`Pg#TYZN6(1qoQta3uVm_TQu>LMx0up#dYU;mGEt(Hl# zlQcWK<*{qa(=*Gon|!(nTJ_@4sKoJhnacLKNp_Q|BI%}kDc1Doj297R9*~cLHble+ zO^TN;Nu&1@&C&L;2j*>ZaNz_#KEcf2Cbn0CXxQ#vUJgE}dwFhPinbJiAsjt$8vhl$=j z*@qIySIW8>DhNNx*OX*mS!V|% zDigcHuP)U;3J_$LS07dXaC9B@=U37I*jrVDvNJwxX=Xmta`dKsNA$yNdl-A{oqFr! z;-u!}lq9VaM@%8gu6-4qOoPAw=Mm(b^jP-JLq~MsO+i3dX`jiyY8*j!zB9>y?N8#c z)Ubd*|5H=zg&n4;t#&Q%jjU+DQQ?y@@{k(6uCVZ)uw)&a&4aXG6_Fq`=p0R3R=7CuD)6mn|ocz1Wf$Z!{WW_~q%f9?v z+7KS7Ih~X_(?vCMt@-tO$BOSe2T+ihjH1aMT_3<~KNmq$6x7ypS#~7R0pu4p>phqX zIW7=P6uh1rPZ71IyjI1UPL;N|mBhmhu!>kU7)VnOUoSiWfh<{z&Qk!;=;nOLeqvP# z+ot%qj(R@0Ck13O)fH*nknIt1NY9Ct+O%M(5Un^H zyXP*tpqZBzJ1Q_h$O(9Z%VtdtC)zvXgWNQrK_Q~^GiK3Ji&;cT^5A%KX$6$Oz0*h5 zz1kMhGr&LBz%Ob*8qzVBg=Pc%`<^sYieH+or920Z+w{qL_4Z8%maFW6fsAX7^*T1{hS@V{JllVbN(bYgc3e(wB2YpXNT3~R<~Js&axv4L==}I83_f3CB?z)Ha|re1HQCgAiR@yRq^Ayuc{iCq-}tNpX*>H>kx<3 zVDwwE)!D}$?=x%|OD$}}BAUTq4f2H4TBQ#1TdZs&kJ3-dVB;AQ!Sp!dl+GPd05KAA<}VH<86dDFK?j)-&Z@|19UjYel(FCePGy5k`SA>xRhisesSf zWb5xTv{!S}oj1pbxsXcne7%7DIHMq}WvXsqb&4BsxU1YOdCbQfPB18P>716-EvxQ~ zMR}3JWrig}qH`qc>?AhBrpr#hwA5RI^VIFI`S*!V)OVJ{<&wqJ!tyVfU~yFCV`*PZ zo;uNqtiJ{W1d3WJxKdrZUkTBqw(wg~jq>!D3A5`w~zgHW1@pSR54gonRb+s@e$uOToYkJ69xj-SL z+M%@?733A=ewAHm*l6A+}j<=(CH&0gveJGtl zs=jtg8dCUdOpK^f{i^fN zI_4j`JQ!j@_nw|=7}+~Jf4(;m57k?gUU%|h7(mpzd%Pq-oB8w6)i|rMhX@PL=RziA z$&|7saYDO9))1PGfvOh7);Cb^rQT@skU8cLWxSi9z+Cm^Xh6=;P^~n2KOfOVQt^Cz zZP7?CQT|mn`LUi9*t2?9)PcD!u9;LN=02+9l`nHjd^y!V8sLOU)ga}gV4J%C63a&n z$%YK03?X@imfhaBr}7HD8fk{ebtw}fTKJjBb>SuV2cIC4WBjFSqj(8Anlk*ywQ%%) zyIg+Rh>j3cmH52P22^)~8rqedTRJ7@p0 zTOdR0mpBi^PImDF1!x=ar|22%Z>un-(Kpcp()5c5aB-Ff$CZ_))~B7_0>DJD>7PKE zqbaAe&IX*+hzpR1b$&OzBfQO&r#e#tGL(U>${O40T5A@~T<_)2mR+Z0e&Mc|68;*` zD-tO)5W9woYQ9Yfyu5OKIY+WH62$a?QSPH^>LvKA^^K65hSG}?FqjQHu>WQ%?Nwc3 z`BK8XaX*77GjFN@X#a&(pW#anbcZ9ALfwV=1dVqEYMPZ27-bUY+h5+?oGuu&TDVqz zx&w8bpVPGsWEYy5>Cx3yQL!(ytJn`r#Ms?g{Eyg^8$7a}hyS_m4VB*g!gOByQ@rXs znFp*KIvE}~^!7U_k19H&Tgd)TEt%&KB6Tg2CRq2&DO zp?ownIx9FrKeb`3f9i8m+mJH;XU*;9(3(pV6FhgJ|_OlFW z#;)O&sgB!eM(dK6qkXds1%{tsF6gRkM< z8)0ALH-t@lnJsl;mcyH2E(ZLfPka+Iizq{KDJ5JhFK0W|!i&j<)UwIP>2S$-)n)vl zvtoV;Y(5cvLhxF$2^X0{&%gp>LV3#)Gf11;hLdCT`0j#r%COceYwRBW#kMeU(6B^@fKTI(e6ULbSL^UG5`yUQLB9isf*8H;--{^sZ4{j9lUugA~X}QA&cv{C^#;UIS;_ak$9i zw;HKKau6@tx|HQwH{J#tt16^Ff7&0*uZBQRN?-^E>7HSvWkjVl-Jx=YXJtwi$%4!@y1OU@Fb`%Qg_&*lUBVc0QhA6wYthm|YIj=uKhYi*XYj`!@Rp|t##dzwpV%&`I@Fj6y*oI`Ci<8%6muYk~Z75WF z0IQu*NuN<>Jb0m#vF_5f#yWh6&f6j8sm*$(WOJ{$l$A~+yB^h)AOVNxfxP&avjrQv zt(a!3U~J)iN?pCP*_3u5p;i=yu%xQcy0qf`g^HzP1kji*9W|!V@cP`m7N@`i`PU&9J+Oo@ssZ;?*0AB{J5C} zi6s@I-nQKBBK?_%4Ets@;RP!HNHf^A@u1amxKPtuzH9(@^wy(gUuA=Re@T2M!?C>k z0d(I*Fd;WBqZaqLseI+$03Q3nppBwoDyY$|*puu&`YI@&(E&d$i$ZzX5|R&Z$a)Qy zg-fYG8Nj+B@o9$% z))LUq2DI-|&^ya{Gd!`xTpOxTtP%N2F=pu9bo*sBU_9J=yZ!Mzl%HXYzb8-y^kdcO zR;g>Ynm5_^USxOsQKq(Oh=8hceX59oT?J)sB$wGK!9@Ns=!cXz{G~s?VkbVwzLw~Ix10&E<>Ye+v{8mMDZssTMQ#!m!6S%_2OH;*o zdtW{L@F2A6#mngwSCiCuDfpm4Eoa@fksukW_^a<-?NaO?xh#*k&5wqhDqKWnh0VqV z_>QD$OT8z?-RdLQHq!IIX0pZe`O`?9;ZthcvHa^EKj?1{#|+R~r%RN8p_cEvZ0R2u z@Z}P`0J8`G=le2Bxy6?JcmCB}b-pU|LT~KQv{tGE124{GM!D z-0Xa4weHv0%flJTG65-)V9=Q6vWv+mW9!tyfG}TYzL3V4NX8ixzb9GyJr7T^hOLK7_`=K;8O28CI2qnM zA5OfnmFCVc#&0K@JFQfie^dvCGUi?7gbfB?@W+=&^SIj`VB_H5Em{v`oO?kI=ePR_ z#(0}&d+$8^7Iaf$u|4$Y_b2?%WKp$BtcnabSg|tk(6;e#sEV6NS>6ZJbqmrd%G$eVQ@@*BhM zc0V<;PZp-zuwkp$OHu{Sq$bHsopDXl+BSFEz>$(3r+VjkpD}Y(-X0Y--+U*O;Ktq> z4Vw*P`LR~Q>zMmauVUdbM^dNyt!@|3^G!UOk>AHNxMtcf&cIg({>=s?j!Xh3n2`DI z#|I3@>T&n++PbsnregLBmvQ$F-4f)ufBsFgS!XT*K4uP01zF+R)IuTWQ*|@5)GfKd z*kUoXi(3f=)Wn?79}g?rdfh9dNg%G^DzBEs!6cVc5nS_xDHq__ke~Uy_qO+xm>p-5 zF>Up9bw^n~H23?VFxp-(Z(ckn$=$QRQZ%BKDiPS@6>C^IfQ>DD3rxRTbD!q8AX0#R z$arR43If6`MFn;=@LOpbi@b~9Cy@)?rc-(gj>A*WWfy8YB#>#fboOD2!dv;bz&4Zp zb_toqcazMf>!RE?BWP9INe&^6Baw9W9bn)Tc?OWHlz1*?8<*`)yF4>rR#Pp6*o zIt;G1YPF5_Ia!YOAMVf$RMps9DqdT|BMUw;fpnV=HV#sBe1qf| z(S2vK^o7?tXycLELd?yCR_-8!%E7V^zwSzuzD<4@b#}eD(B~2BKU+q1)E-pXoW68V zg7<>!gh4OaG#Q=;a_4{YX%pwNeK?r6))l#x?|u?#x!o9tDpdQ|sA%Oa<0e=;4*QIs zjE}dG!m>$iwtTxhJrclP4Fes&{P9atFqM>nNo~eTO@Fb5C|D)Odp@4=qj*Ep|K@Rd z6AW4A+xz2fUqN_vrC1j%Xs?bz&V|bF#$&X3)?QhUjbj3+85j`*If)b&U*cDT9C7a2 z)KqwTlnIGB3#Z)ET@KfYv#)viKe*(jbhN6Ah#9(fQc7F}Xg}+ks?5*T}T}0%ma<#n!H0=YglMEeM zKvpsWi$4}LpPLuU#x&%YV^&~#M*T(b=pz;&>l%4!_UR95@CY09$9 zMm}2tXL`0r9MFG#uFLWqriu?ZHoW^*4`ISwt1x+e`M8;Hr6=H&IJWF49k%VrV3kVi zY(549+;Km04PR63O%OB4fi;g%`#(d41D7fuga>VB@*~%VYF`K>J4!`suYG%x^q1Y` z8T;QiVTWIwR=&i$oU)sYIe6tN7a9+({mfO1JNr`1uIJlEKe&d^zw?M+8yicnM*4Tnc;OK< zc>&tAq;mMZ|B2aYFBh-BRHr8wT+0yp_n=k#Q8#Y*bz46#z}{^V6}(xqtHp{)Lm@c zv}I?V2M5441%1K>%l#g}X`^T98<%E*h)X(5^e-esK1LhoGW^X&^`GA;aRi0X0(55bRafUD}WC)ngvs8B(?R&ah6G; z+riw?Oz_#~d=rI@#jUg-ep}!J-<-Km9)okHNXA*-R2kXbY8Hv?2NESFDRvOaZv+mXA(cO20} zjIVFy8GK^%&!+ux0x(0ui~Xa?FV;sFdmzssZGQ|^Ll%7*jaNA$CKwKTL) z)9tnsH|mM|4AO6>Y)+wE|N11Z)tCHI;P#|njf~&7FIJ7IZ5vvNo<1jLNY8wrPL2#N z>SRb)DY@8#awJT8A-jVU>)<&yb=l+|3 zuITW=F)a3|CA7O@Ms~`v9J7ikIrUc8)Ruv=WnHP5g`JFKx-M}QlgCe zs4&@bYL1DZH$v{w_7^N_H*8{UhND48x`vY!XKM9!!Z2eEJ<>Bb%2sN{CQ}^Yhe@uR zlO$oe4O3RKL#p6(PYFEID&k@@S94E%!%x7#=%2$RO)&$p*i`Y2KRc#N4ecBI{H&@& zInXy=+Y9$s2o2sj$po@$T=}dwv|(|dKu9q~d&w1Een0&&zabF&np+MOb}?3J7FHgh z`qw@;YO%5u09N`Bgd z(hXIyP&XwHOdu*-gpvx?4W`m{9#fbtR~_5@HjpVZp1VBb+CBIQmv z818dF@)Pr&=>6NLQCWp0^+eMw{-J2lcoDaCV&hFDZR|#fWg0kypt+LpmsmortDt=S zmIIdukLL-guf_X$$pC%$jay?Q4Z!4129d=qgf=Nu>`AZE-G6(IK`*LabK?)40_bsM z0G^Cv`YIRK=(E*tVo1WDPtG$DVwwM@rDfxncI+EYR9hJnnHNE(_(b&@f~V*%7*pw9?3DJNiF7&wQ3Zl%iu3I3rTP{uhaHNyG%#)g@oX)kju{Y%@) z_H{_;1@irmM!rJp7mSn&Ab(#dw9Qgt|Nn^TlbsV60q#v2PQ)<^0xYgHz(|R+m?U!i zxou;oGkJhp)carQOqlcJfxITRCsW0b8Q2y`rc9Uil7-p4N!fC$m;MKq(`IzGWI@0y zROV28io$%CVQ>kG#8oz+g!|VK?OYPqyzA)c09kUUKGw?#wVCN6Yooo9KXwjrj6?LA zt}ly_TFd8OlrGyUR!T9)NY z6J{cHU?y+R#(g<;_@km}*Q7K4x~Xn^(BCCp4u>nkrfi|*jXJOL81@RMhBoAOnRK$& zefXO>A6lN=M(vg-8J-;H{VqN8$(+?D{6jDRXsA|`^sQjwL-Dm}K=*LZDKFH*Pp?oh z!`Y9l0(fy^|5o_MR})FOwOge-MFu>r7Ze{}7#m3}dAEfSTNwPW&}~7blkZ)HC>@T8 zL5opzYg%eP?5naJ2dc{kR6_haDk;I5&28|bug-)7XzLyKtQlitYpX9=FMw&Itm94s zKbC7O5uS1eOHrPA*#T2w1GQa+Ua2xd3wADRxUSx5JfM<;d#^MtsXOv2KkU zfbWbsQ`xZJsdxXWBRDJ zs(y+voQ$OVQ9Ndpv&6mjSO<)%P2V)rDL@j{VP0yhr7pZMlX&w5U)|2SrnK!JXkg$K z(~Gjup)P-+vdOM7*@vXGR0Y07S{tZ0R_&E#fRjW{au20lnAG4!KYZJ;5OJO~W(ks1 zn)j)OAXH|WqHoW)xN-Llo>e=!Nz6OSi1Mrzkgr!ERbRa0jAGR*aaDgJ{nH2P%Q`UX z;-tBlg4y|Ey5Tafss%Rm9Z{BHXhyZfk=-f%+Zko^CM&a^}&AuA-z?K zSfhDkEAch+!gw`bBaq8}iZy0ggpc$&v=isGytx=X5f@wAH9%okoURHjJHYl#fEu&C z-AQ5)LaR-nq(M9g|F2^x)EX|ctlr2EI=VL>Wow1M)p92!awA=H3@i0)u1lbDCmE}R z8h8Qme0~*FWQHj=Fdv4sMU_uF@egs>>_lfaNY9s)k4Dz7EcDQOG`u>!a8-gkyzOK3 zJXtRz%}&z}2dkwmsX99r@+f_IFZ%HK4*}0ht#Wl~N#za^IpB#S_I*lWR7U59?fP7> zpo0ub&WujQDGCg03t4!@L4Y`5jMbGzKjdUi=)Yl#Fm7|J&HrnrO3Rc!r>W~boWGQp zSA7&OKQLC>ov5+Szdps~NmmM2@tlb6bJ810!XB|xw|V1SIh-ANlX~Oj_kVvm+G@ML zrKb)-?)dVU>7J7Tzdzd#Q3I<%szn!#vFZWT;&SOn(7r(x`LomajV|!YufMre!)Efy z@ZpT}+(6LLKl|<#N1z>;WzkEhW4c}X&mBLVfg47}dVsZlAZqnmBA2Vtuk>qhVqVKiQ-(lEFM?$=E|K;$77n=$ydBW5kneduG&Uuudlmo4-8QYRt~ zg|p568F4rGTM7~hD*dqz)`P$uSTGoQ6ATp&t&J}_z(&o4)LZZq^EBletapy?`G(-{ z_oalme;Iw5a|!bE%;ed{d9NQ~DfZKPDlHeZ58_ymB91HPT?B)7ef2mEiGjS4a)KIh zp5k|8MXgp~AL|**A)qHK^|d1QmwG$AYZK#LxlnkQl}jqF3(r+r!K_--82FneNd0zT z!$|~*VyRi*FoRG7W@IxB1IrmlRa}Wtf#-k`GlzNrilyue7RKec%v#F=MMDL_kX1jW z(Uk*=n1po43M)i|smH>>wt&r^$LtoWYw*Vgpw|8+Krst9_Lk@Sr(g<=wLc}-vNw~3V10e`*2p>s;u?jn}$7Pd2;AB>YtQN z+g74ib<>5>{`vh&Q`gb^78%=+TUU)MBmcffZ+7Yk$=8+%=wNHtR8k_Y_y0)~yrO%j zCfoLb8mu#4A5J^>>^bO}(xh2xb|THCcr8ze5MsF`V&IF-mrXTa5z8E>X;!ttt6H(b z>YFk-QQhi{H5!N|Oz$S2R*L>pgpO+G8!sT@d4zwLZekyzDFc}2rux+ z%zVcbk*uKBU`dnng!0*ELs0M@XH8;k9Y|14u7KDBobGJk<83f|9oH)w(&=#RZ@aeT zE-yx>?WW??DkX)Ll1^;e(~=dV{0 z|I3HYDlMkPO*WC!;*X=S6R7rmH;4u~FY)I`CLl3TI46a&UTjI~j5a0wEzgl+GQInA z1{^1MbQU5T1Ejb^9t56c<~%7lXZ@(hs8;j$rI|mr(nx2OvFb=d+DFg&Hy=XIF1}R% z?&-{TAV&OAPms02iWcGtEeC>9__z>yuv)ZCGVAF-_R69q){E6~^1#>~S*J*;~Q~7_AgLlM-~Yr9)5h z3O(kKx!wZ5H2nWye=G_=l9t(dYqka1zsq;j{eEWlSH(f){hk0@jpLE!Ep~ zjmsHRxONi-5V>yN1N<9mwf7Z%L`f{4dW07XNnH|-n1AJ_ptdKI&5u9H9<+S}unCj! z8)3BS_~w&zwUZWM^r0wrAZUaUWsQ!fQ=%(#t%CG9&C4gl0X8`MmW?6Z7@hssRy4W9 z86v8=at1Fl57w)OSyLTa;P$3gm~eDR9H;+sqBRDmowI@V3_0PoEIuG_rKlaPm^GBq zzcWH9!%eJ|M;*DJ7%SRV@ne`l;89V_lXimavlc(E7v))uKee6m-1yBN!GhokB@Zj1 zJvwk~$fK?Wa{ax!cg)HV_@8yYy_5f*<-N~pU1pu9=)AV*@Y^H}O~QvzU}^ z^n{_P;W?mwa_cngd#cKP zkNtLg^^?^nLzZv7S=TD!XYaW)PW|W~T|p68ogyvwC(o{OPUaw{t{5TOyPrr{E)^iM z^_zE%%=r`3L5moT@$doKjZhpZC>FFxJ9OsfHPq{@Y`X&3i_7@Cvy@nAV;>?u@O6UX zp!Tj1wQD{k#t-Y0y$0(OoYn{(Uo)BJDXx)tLO9W09laD+3VngBwBk|wD`KrKhYwJv z#QUXo--a-2L70>Fh@Y(!`Dg48rurLqp?4avLV?f*lum0%+Pm21L8bL@l;7GN`E0Yb zm#N8ysYJ9*H9?HmRhpo4Z`$0QI#!`D%kICl)iG9|2ily}9G4e6s#_;U--CK1wEPyZ zMUD0Zn}8{ih@j1-&sIE>;tQ%|*sM~#$xmmf>saNm9@Epf?=Ke4odJ48>FBI)hAh#K z9$qY0=%{DQ?`QD?d4Hp_T1S!(qYVk(piIe?e%a(52hWRt&f$^*R`0w$yS*T_QJ>cN z?AGEhH1baR20y{ut}*->@$5!`p(-$Ddm1Oql;d&rt@QPUvtrB+1chNUO)oDLegtc;Dp&V7p_8)xX59ygAqYtm~ZE8Hm6VKzTFr+@ZAHGpETi zomy`guzLUi-W;2kqy;Y|Z_4{ee>EQU6Y*DeBwQGT%qMMA3g(fC$skhlT{krO41C@T319Vkcl0lOn zE^42#Td5Sd#NYXq|0SBU6~hRC2&HI^U6d5ky@z}xLZN_6JFpJE75 zFM$jb7dGYu+Mh?FUj=kKAubolSVJ!iSl5TvM zYE^$*BKxMnOk%rz4urdG05rV>fW@MDXgbInwTu>DuApZUG#;MU3u%xoQMTBRGttnc z#+Jhdf)>_5tajhW`-5tAu0epU#7`0IE`Q(CM6B1244x2jV1)u^pL1Wd8gTqI zms{a2edVvc$w+t2!=%EFm|X!w=pW67Bh`h9E}_qP*GQh&vAN%n#W7r|@0 zEq#=2Lxbed15NPj+A+2itw_{@0&jgmAafGHhaWdN(ft13C)g^i^XIoG0%>9UJ=Z$3 zTTsZzyIFVcNd~TVMNCdA(<#6E^)EgfHvm6mxis+gZ2BALi-O?YG3mGN2~XK3Kgj63 z4!m|K{3R>_plvy)qqc+49#v9=KkDu#){F~DXwpBGquoPRzIe%Hb7G@K+x~-8hO5EV zCtZ(*$P^PA&69Hbk$RmvzG`y=-0S0|zTAE@O09H7 zY8bo>P{{A3I90?Qu{Z0MU;|Gi-Vwv)Wi{=#!!*|-?R#(AS;E`vHWKn)-C){;1}>AM zCoEWHf_uYx7QT;XQ^UGxW~gSP)4$@VZht*%Rk7!uZ+YbsOqAEclB^ShHane$?zE+H z+EnXg9Xg_53wcNwiCra3Kx$1_R^U_p9j>Ik@3DvPpb)A!6SYY88Km-(@ofbG6-;@6gfm#dYPTESAS)ecQ5$8{AV!++dA7eH#n?a^GWwy{a+m0l zfognHs~=GPmg$qt!Td`d6MTGS%Mr#v;|YRC&A7YrjwwK4EN}7_k4UzLRZr8_!sZ2r zlqWxcFtZMI2AG~&gYK2DXOaM zYJ&BOo^1lan2pC90e*C$pl*>Z5pi*hmmY=)=r#BKZ?;CvoQe|^ITn6|HXaZSqEt3Yy_66S7qjVx33}? z#(k%VtWBuv75AEiDMMfK3lN{LU-kk+&POFAl(WqF@G^%dl&}jdL_VZGm9&maA`jx~DMqYBW2;1E zTW6lhuz@reZnu(NIP^HmnbgW{KpvxXHLLEIpvyOY=w6@4T# zzGF$J{9Vj*-$xyq-4M#(rDZ?1tVWIMWKt616jONH1`IO27%d3JeZhVJ(eBW+n^^5| z4fDvF-ugL3$T}zftmYKOtduWuaQQ%(f-!6!;16reC!D%2)qm;D?4sJ8`N^$Y5?etggu-3&} z{?+MICdRHQ(|#oyN707&cAlR4zhV_&+d<;PqJ^6xZ(0u(uqQ$7@e7JA7ZQu3SG5bi z&H0=D0iYRzl+ieYpsT0w5XKpKBeqn6P|i<{n5~pLYmM0a73k_69deqLfmh=ZQTcW_ zXpE}?cd}qmU9g1es{!&Moo3ck+8#5A$q?m20v}eu0)W_B|Otxs{5EfH$^GvL+aYKcm zFNcsTu^=u3o-g9QlnQ=6nI}sb+2BxniG*lPxR{=#i;P#zzi9E*OHi_7q=V?_jWEw+ zbXy z79Z(dS3%avi7N1y2k~>V^DPF)!8XnB`20GKE|%gmE1i)Yw+gLS-|j2!k*Rx=IW6Nh zar+Fzo=4f5A(D$j?t~+G)^Sr+Ifr-TQM;jNk~+S+0tV3LH&9wVIKRXCb|vHL%gM1NMKov7J$ogM-8nsi)CWRD#W{MFomgSfv$>)73`o8GlHLIkLyZKIyY{KD?6&zkP6Ldr(9h`I@^c=H6 z>}?vE>p3%R3{F1g*`NwILUP|7gjvWQ+AXGtjrL_m0Y9s8A*^3i{7?{eY0&!NdO1(u zZ@p$%(J$%L4BlA-hax%3y$FW;($4S%5kaNB!5a-u>VphvSZQ&&bW6c+*PX=h0MRWF z?L9WiqoUzSR=$&Y;M8z}F~a=xpi~f5@-U!zJ%!$tzEO?)WNX56eJ9q~|a^HBZjo4fG)=kb3TnGVki&Gg}W z=oNx|TR=@S8P|XbS~b4b#CE>g&a}?8WYPLwoV$w9pZxDL4ey}<13gae?H4_pZn<5r z7%^tNp9WMG-kMhV8mi4sD4VbfO|^f-KP?>KKEA<`-(zNR%fj0eDjNw{RKRs?KJ1~Mp_5yki58U{!70y!0CEwW#D8{ z;G2&P^_L$>TkSk6rsGEzw{`miF8_F?O-N96t@eH9tGI);Cx9x$8jcj##9#SeI>{R_ zUOF>GRDFa<`lM974RF?3un9W)*c43s_r}LC5YRtUFAwy4N7)`SDZod6E$qG`6mz(( z!*;~&69_BLq|$w;Jt+hd>V)LJAo0EKkJn2$mTdLbWM|=V=EUUI`K-3O1RL2mePO_b zsryRP=GKh_sVgh4g*(o zvb;X$*fTRKD!{Z)Fwha0s`{@+fB$y>mo01G5IO8@PsaYL<_(~A4_Ii*nLhOFI$p+0 zJLA&Uh<04?CY@83kzg4=zLXZy-1*Ox&Qo_oerj>>u?q`eb2oOA(72&sGqocIAKAj9 z)uG4GUbEV^K4oq#JZ>gM6H04yHL+Uaw?sC?TDA^~%_0c=-hwBs^yLLnHgY1=`vv{A z^rXBEbBEP`ff8`PHVgNH1jnZxzRUowiM? zywYC|Em`F08T*esAF-7$O#k&J)$>34`BpS*$BA>P5 z3j>NT56C@*JLmMj=Djf>NksZz3BUR!L3IQt04(I3&7?HH(kIufc{Zg^!wdN{(%kEz z9p*s?`RgXT-(~f4CoG-$5dl$sQ&VeR5;l?KpE9I=wg1P~dxo?9zhVE~tx~G?u3a_5 z*GLg<6;(=Gtx+Q-Mr{cqYPD5+q(qHcEn3uwEp|%;iBYBYOvF}V$NYbO_kG;Y{!cv0 zaUi)qSFZQ_dY$LVGJ72LjlX?G!K>hoecSn1_c4{a$qC5uM1QzjiwDppXb*LnNEY$| zNpm7{-aiD(LsE#qJ99Mfp#P1LAJb6NeV(|BO5-t|JJ6?2>aB#mr8rr+PG<~njeY3XVb~X?SC01kAW{0 znsUrCR7IrpD6Lcx(UN^iQSG+D5`(Y^QLv($Hrir>K{lKuUM zxBG&K3Z%Y?{cobDBA#kBgiBm7b!3+eq5t;6GYwH7p=UWkxU0n~PS+ce>5mwwE?RySA0Ggi_jrfNc(Br%^r(QuqJ7 z0EFy5V6yYJ6B^9`6aF#->n_m-b1 zLk@^7j!s4u>nbg)Tr1=(Rpi{FbS;XSyZ^%pJeN(YuD7!QRKvnI8KbNTfo`@5t< zLdfm?tzB7lN;Ya;Zha@kxgBF6DlYha*I$H0mFv0v$g3Xw|BQ(E8$(S><5MeT_aljT)7Q4 zPwvZX&qV)ppMVf9-}ZRhDOeU6@l>(YVN$$J=9=u5Ho6bMB?f0E>b zlHVyU6dB$TUbWE3))+X7_${f7B%keH76w^;CFgx?dE(`pAek(g#?&~sy?}1AI9b(# zJe>+WehxkcOF+g^RsV>>GyBpX{N!v*^)IIv%v20qEWW**`7V$*U-L!Oulm62?FXOr z-iv#`_V!COL8FPaak z&m)6ZA9EYBsE-3SRb&2hVu*U$r3E>8fsEMigsy)QGZQD{xMxp-VwFW!U_RUW?D>S(j%dLmmK=u$yo zgC}4d$W(2q2C*OqC-8D*+z!q`#yvsWt|Q4c5O(xo6g#4v1z>Z`qiLdm=wwt7F(pXY$ZQS(~H>^il) zi7COO5~U!z4wL`??q>74A^qPg6vzp|#cl$aqjv0@WbG3kXc0^Mm%b6T)&y@R&tAO~ zi|iHc39|F7y%3qh=viRWA01|XdO=u4~55b8!%HzVFa|n{)jjsHd#IBBQUX+MQ)!CLeykbTl zcOG9g`i53NCpdUyJq;e@P&xqjA|$oMNIjf@CT>uzhVTGy0=bAEp%tF-@(m) z=?(Z`{~7t~Ck6zO;Bs@l2#Z?gZYmrC`cz~|+Ku@z9k6iuS6^mMP~Mf36R7btOt zUY5`e4MfLnF=$XLgM=i&*FZ`HjwXsUCF?Ajfpv54lEkOVp4d=|P?E*BJK4CLOqKsl zkyJB`@^mCdbJ@kAgxP-FJcOp52Ji6RfqhFB1sBWLn@_*{|lsm>@_HY|? z30{{KwD)Wnq!51McuP;eoy!!=YMd$Yxm8Mt&L|(0v>7!5Fv+nd)*7w)#L_zs_@PzS zakF@h)}FSM@qkECgi;MzuSxBe1Nu&KnCGZcGghuNmbKQNG3EHVP-~3YzD&fCQnRU0 zv~adRQ0S9@) zn?LLV*HJFSW7Ol1Rm!j8>KK^2Z9=r?PwUE zum<(9reC89TXpL}2BJhtFkK?~tgF6bD7&iqJPcLfedhazBKt8HLe9=~;W3`1hIO|j zuB?y-jon2?s(kQvMH4gSMk9MzW)zz~v{m#F#T@MJFvyvheHetM7jeza$D<&3uR64 z`zJSS<99~>zn#}APcJ0zg(`vwb3eltbTjc|&WW{$7C%%b|C4+pta4-3OXEg|g5+-g zl7x-(_XRGw0k)f!U6E;^yyzoK)F@^={`RpeKkQhCo2DJ8+<-c;kG(g+oyDuGkr)KB ztm#${mp-h*6|Pf6(YvuRzP5P1^i?p|k}J3;w1nO>|2IcSUBV zG=y_`_UKLmT1gFU_t1NxcT5b)-X8B^L0eR zn_Vsm(jvw^pak9XRo5t%6L*6^(_uzNj{*_&J!L-2BU z7=Q2oI-@Qr9{B!-`h~2|AD|Lh{s*C(r^hYEWM6KfWWQ;fHfKmURI)7gnoNkpm&%Z{ z`_y;YkJ$^iUVyS+Eef66y}p|K%q-r2AiU>aQDw#O&})+K@+RkTrF(%9l(4TT5lu69 z0UL0^tB=AkC1HKISkKY0@i_i;lDSo{@L_elFa<9f2ry?K#n8A99Qk?MTg2}4Jwe0`(qHkW)2NbjxE$?;ud9jd$ei3m&@{y@9Y)7+lQ{$$pOB4UGTL zrFdXJ9z3{J-c3r|TA{ewHtgN%4c`smXp**&e9K!8#DyTshS*AuksM_&ark8hA@)A!0 zkb(~Z4`J_SX6#XuNEcHy8|*ocgv1TWF-9TmfWJx+8$kMb1ET!Id4oIeA9ea3AcmsGlF)M=sFx7gCNcq{Q;c{aSF9&ME3S+iR8f|x%S(wplJRD%9sUmaVc^KW zlVGMsbeSSnNZX%JHli+7E+hvuBNofBHl% zC&-Hw!A)_!ZJ|)JiB-NGfWj#pX?^JE0o3SbjOemmTJR>?oTg*F8{_*a3Jp2x)sq{& z^({sIo9ySCl0vAuiy@EeZ*TLnc~67|Db_!GhtcMBGhdDQ&+0K=NHF%eZ1eI8SR-(| zjpY#l@jnZub+4dg2}_8LpE{k?n|52X%By|+bJAKhEDTMVtIFJ&arCWG(Tl+V#O?}2<8%sbyUjC3+@!yEctF7FShL!F@xYSe%|;fLO0Git!;b8Jk7&J z%NfB(l#|Lh33{eEwx%{RKavCd|B!TrfCRevJoN`v6)z<;``uVGu79+=?7wakl}XfQ z6KrE{Tv6#xKD5$sX+wE}DPUR223cM{et2Esj{7=yMgc-QKW`?b*QMA{b=W_?JDD$m_D4@^U7&B! z*Qx8Au*mB{^Gsq{FJy(Vp5-YxS!rMIv3M|%)Hi7T-I2X$W#1udB0bWznL(J#&xk#Z z%Wug28yE8UtfGX`#4Bk=+$kGNHGMx6O^P$uKN>z=TTk{3ISfb4i4^PFrG+rG{FB*y z20g@_&F*qu5DM$M_s*bWSl}DAyMnL68hZcQm${PN=aY!%7Zt~yiK%C%-=cPQ6y1wv`ZqgkGsrU_54J6uRs0Kc@-^gNSD30Coi|Shv60 z0I!4m&3(?a#IC*L?=YV}9D+s7PZPiTy2&;o`lrv3t4QCGPC=292L%&}X+@uaXK0%2 zzSO17e4NRK&D*y?*B@uxidJ1H82N*4k87{ppKIYu^XAlx{{+`Y(mIV%`lI5&Z~H$m z7(e-mn?9TZnPt_N6rq4u$O`?bfk&ccoPwMWwKS#=2zF zR|j>nqOwBo@Qtv}>L~b!-O$?h(*_Oyv8U8}%s9f9*D87~n-o;6@Sk8uhlV@(sIW=K zKF{QZEP6rX>B-XOQvNuqlWEHMsi`|_Ct`8x!Au=YBbp|n8)^N}NF*pO@#?0hXF?jx zPY$wi8T7Alb^AUzUhZ-9?NRaeum3--c9e)kn?YPcm!j=7E@%8Vg1xL^xjN(adi(s!%>EAM zy;*G!wNXlQI8?&sn0hBGb^DS3GM)rHV|)$)l!stKI=Kd}EfXA87I3}%eY#gH!9H{1E{@^8yW#KF5ms{t*r-a(uo~Ww|#@OMiS8~{N?#G}n^Pq#X;*buau1a$Ln%?6ezSal5cS2nwP?6DAt$G5WK_`KoiMcjK z&_rR(o3W~Dlzj?6MPANUeCw@Q#@0jl-#~WNF%cW&(sT6wON;$v*-gCSG0vnm1-1^v zMztU17&D3n_5kaoJ9J(BEMY_Z-lwkIMzOGbSwa_*44mkQBL&z`-ZJe8HolLR^RV!p zCA@YlD#z#zvHXo)9fOc}jKiqF8fw(p!~)s%`SD1%RCaO(SGGTQE#Yfmq?v`}8&8O8XnUZWEDQ{MWMij}vsM{jVg|08Buq z#&YPzDuu_O4u~Pe#)K{{0`^lbvitLHWoh1ubFNLD)#{2 zTY|^N#kVCJws{fCkl3~VhNP)Yd;3WPXprOSl|C+u@*p@vN`{?bXVFFX`Ecoz#kK{r zjUP&58jQMUBH482Jc~ZnJp2WcMv76en=^J7YzoT*n~Me2V*CPAHfKUrKdJxIc*SBq zcOI0Y#?x-j-e%0tVkS)655~_4&vb(lqN*NIMQgL^H?jV;ol3h$?cCc~x&zb7optT~ z&z^&Si4C(!=&_#?(L>=FRw}-cPUcQEeleF#*ox#^-th*g{T50suAD zUIfWiJ{zBR-YI0|rYSSaSI|h^Td|Pg^3L^iu{0bww-=i?{ur&9B1(69%q!#y?Ei)kx%Ty`EPq&scbyr`C zDmH|al}HeJnPW|FuCZK9;8~bDvd?}NVIP!?=IuZ^AMn8Yp;yL4b>9$qA!FWk?V=g` zibii{#gu^RSybZWI_^k@@gLmc6n8J_O7x1xtPJXTjD;oGJmXIU=8WW4hvVSEwDirD z7*Qseu9Zwjpa^97MRK+mV8GObT)Gv8={^A{Rqx+&hE@8KEf6WUZ8U218_9R6=cg_5)d#wpNoZPk#d9>;t3TOuSr^i5*j?{dcwW-NJ*BbtB8U8`D#dqh& zshklX@eHC;P}>}KiRI_L!Fb2avVa62t~D10TvOS*RTc6Fi8ec?#6KGW?q_c^<{tz< zBFsbBMdwq?>w1qwnv=1CA55&xmmM(dy3gPMg&48A>6FPm%dYJ^O4YL%|BwwRrRgHHc{WcM{812RdRs&8*?A$rFEP_jI z&94-?C6nv}RBD$KRNeUQr`F%#oAMwYE=oH>9FK1aFIwvSg{o>F;YnYq9wEDo5*B%! z6rXOht>$azJ1APrSP*KWcuo(1KQ2MCv`~`IxPcWEpPlcqf$ts zAzN=O)ctV$4U4$rJ3mQ0C5JB;bT10n-6_8rFx*z`hcuu(j1XXbSDbtOTZuu}oi7Up z1}R#0-C5>x@BEH3FMOMQ+&Wh$#Tb0{Hs7b5!qlF^N)tm^cLkk6_d#2IsNWUI%=vTa z>8|~kd{Tc>Sk6msyKyyZMJ#x_9^UsqT|*PAYvq!rPZy@;Sb|snA$qDKXu$@3DbQ7_ zgV6~qx3ls3`XK0`Vn}dP^*yu@XLq5=DE6^h_8l8xai_k7DifX-F%#L=#W`&YN?H6h zL%hx@h&uG+bD;M`dHI1?no0TYZ4U3q5F0C5EVp(bE7uyJS0u?5d;M6i<&W+|v9fJN zQB%$EdQHSlHY4BBZz)L-N`(#bpvx@Ld{inIGKNoE`vcg<0BwQ}G~l5K#4~1X+}DiV zRyJ6S9?cv;wD(M+wK@d(V70+>W^T!@!2QFJ!gh}(@D)vYx#NE<+RPzs$6XudN=@2H zlONwB$~V8{hY!1L7U>^2=LgxGMw&5$;#YynL~H|b5!R3-p7B4nvc*e{v2Q@E~?bYJOc)@A{3@0-YR@al2@>7UQ z1A*aJvP`3+#HR1R($?7DtWh+&uFNm~tp(ON@Jm;8JgNbj6`fybmxwEWM|zwf*_s<% z&)@X=n(z24-@5e$c zkGd5)Qs;EGK~tY$k`U6n=(C-LyuPdNZsIoz7L8-$L{uoTNp&n~{oGV^y;;NHvhhk| zr7Gu(i04hwFtsKi&8?!Cc6K`>1HbzA##-I08$(>u9a)9ym3~j;R<>dc6m7Jd<0GyG znZ{c+hLeo3GSjFT&VX9-Y$D>4z?huOs z_RcY5I|)#j+18;&VGD&U?Pe3g6Hg3j*Y)IvI=rq*y3O%K*Fkri2vY{V(LJz2+5>fx zvY|%=uf(Q(U`ZBuerKA+X#O{s>Ov}Pmwpw9_A*tm&1G+9VWZt98COu{8;)*8l=Tae z0LE4VLWre)9T`>a;Kmrlr+^!KK}qP`qvKIr7TW9xp7UB;=j1hudbq6$lKSKtU$Y9* zZCp*)XsUoP(UT?KN}D=tRHa3+l>OX-aB{@|LY|4a*Eo*`exO<1DX}U~#m;V3bF&3s zKkLLoc=w=7A|d0UVv&xOQGFd;@Y|NTrq%8Lp;8lmryM9usZqv=V0$QBoM zCqWv&7h6gxNy6nnay-NZ4(DL?}f3s^X`zU#n-ltS5%W1nO#g`|AECF-X zY;Z~l2~6ecD=9D3{Hyn6PUu3dqTVXf=9ByxjQ4A%pWPlM%*9C7JCq#F@kO>Z^6M_n zp}w$q2ckvHFu8Qek|u)0f<(ATV8<9Oieg{to4Hb&PQV;njRTjd+TT6P`TgjW9Z;#l zQ!Y|aGyWPqrl?&s1c06MY*h5&HDr<*?lY8R21$}_iL?cGkai~rBkZK-uLH_|l%fY< zV}rjkOzvtdW|W@hb&NGSA@fn#Kn**h5q6bUlqjTK6+`;kA4bVE_@7$)`Ly8{wAsX5 zF^wn}&l_G7%VtwSl?>PhEIO_E{%U$}VmzbzfX(x;drxEX`vu%jS{-kmK2mNUN zQ+iW{){F0{sIQ1@&uK@@o=cV^EdUfs3y^8N@&mC|(k_^{$W=;{y)ptWe_*9>Hs;qY zRsJGsZ(C~Yy&lCaP)(*&#{F;WNBt53(nbb-*R=up|5i>vJ-VdE2QSAJzEp7lt`hGemSH*uv_BB z=%4-#ofwg111FEVmt6kRX%5k!yFKWmlc0c(PW*cBb>fr~pZc@fm(Jx(cTWfp5_%t< z)lnb%hmr7D%^MqheNP-i`l(}+o_Y~K_km{MsEh6tYgA&0rI30RSSNwy<;{{$Gk6lq z>QdpxZWmbaY3#5=;AVdpf@B>*T0cJVOga?8t;GErF`>bX7}N7RsjttL zH^s3QcoXmF|CjKe(``RDjLMP>4QH{7OcPZ0WgVz+ni6;ydLLd8O+8a?*F#YIW8zZO zjz-S9RLonp#r^$Dj*ok~wHA}^pBqxML#uL2z=n+i4{ZU;LI`$+&9{7F!N6);s5LqT z0_6DS8lfJMl|rsr4s;nS!VsDraXT;T`dY$;a!pEQi|qghxsyLJdcIxdjreLc{HJdl zFqr+R|8h{deR_oPNNPZwPa;-TB(+Jpl=1 zOyAK4OJ6!Z2#jJ&&fwv5FG(GhBm={*%&?l09Ac2z8Y4|8n5{GlwpjP|RAL70Q;s>! zrWKNHW3e zw%4m16FGC`$!Pkyh7F1p6@>aSPO zn)gIHsx)vfpf)+6B^bxwVQ}4)_T+`pOD^KYjZGKTUR5x3Ml3;^L(mws=bBTnbz@vT znKiJY`halZ`c?9^+tP{Y0i-M%Y-MZXFL@>P5G9c+3;B10&&KGTG4r-Rd4w zFAoU2r6m0QE5gR=Fo*d z5OwK&F8cP5YgU*O|GJ|e-w@NP9&O?UwV$vdl$QbLI9NipZdmYItI1b}{3eD{PBomy z3Rc{{pL_LZUL%XHx)Ok?p~=5=Q&s%2hL>v?dwekYNQ+Co$?^!au=tl8#r?^0qM}dQ zvb=-fOdsAXfd6>xvhVM^HK!=AN&| zaN=AH&iuQqXTSWoxzHw-&a^}z@V8!TccwO5PIV5GuYY$CBKj9w!$0)VDy(rJMZ{lJ zj^^gyvi?#83A&ryeFXDg9FF*A4R{Ke+H5UG?0>opjwr(qZamfN{{3BTdu2=9$QGXFv4wg^;_m7NAm-cS{s_#D0`}ZM) zdIE5HN2>`Y)P#uXca(dE%<$Zsgsw*OBz4IkE0CC~_hy&KP5yb`1vEF`m`veaz}BX?$Mj_xt1q zcO?qRND{+qYuc2X+y_RNOwJE94@X4ZQ`B;Y1&Q{hB4mfSTl^J>O$~YpPVXh9GZfM< zc)jhLY&aVb=f{8ZEVWmBRWds;|7a;B5O)MbwpM!|-UWv+v((?~u(Z;6RTK|lXnzK# zOJcyjGP@75#Q=-{76}Epno{oqQIYevODc`b1T^(Jat1b=-eF*0Blh)2+%-5q375$K z(7vP@^W3;xaD2O!#QpA8NApUiHM81%n{ghMtm}5MM8t~3;=d7L9(A>A?DR68QY#Pg zgHiDU9PPJ6JnBFS%d>zuO@PHvI}_SBcMh>qEr-zH{E6f0(0$Q&Lk4sukWJmclG&&s z$!Ot1O(XWMxivC$zDua!_mv=|@8-w;#hm63iKFH1vW=TL**oq4of^8>~j9&r@OX4;&j z9n6|e+Kij{!;rr6XI*EW!p$ancni{D$$wBb?sc&j%be?Tp`+6ySHQgC!$91sb6~0P zwD$>p;alSla0O(1^h0B7P7;;c4T`0sDsOgV@GrvGb6#?szfYL^a{ZDf{$olef}6zf zP4mCYEQWJI;Xc$gBhnSrY^!surg2KT2l$ys!y3X0`KH(^pv2hJA3N9D%8TR=Es1`A z8MJS2%4do2EjMUmjQu~OqxI4!c)8Z9eJ0s*A+ImrF{a)h9OZPfb#HfOhdZ!&b1YvD;^s0pUHFDf|b9p(!TJhp9HZxPFG3J2O#h- zjnN@no)Ci3jVGwm0HX;8WVBl{yO$GFzS}ym z*+cI@jY=@v0-Rp0JxPn=O3T5nj>-=yId(#kU8_QMu2kVhlxuT9|Fw4UJsX%b!NY$J zs%`{-bYma_3t!b$W!I)N%^ujrgr@QuSJf)O=&rbz-Mk*E^%)In?B1PnfsB#?2Dgn! z|7)D8?4ouSf_xYpuPIGTDFkW_k@YyZA!;QwtWgul52IIRQ=J$Et<`hl)RJqymR&3V z?RdoUriF}tWYfwpdaZAtDOxGtz<;g!nGNb6Y(j3=nf`ZtMdhj0%R7rFoROlM2zW-X zWw)B`*5yI33DU5e*ZtZk5(D@bMcY%&Z-zT0ea|ST@jc0uWu}gM0dPEATQgB9ZCsd= zCUKat%NPP8cB7HV4i1l+H(f>3DsW}K1%{J1*V2>7*H^Fi+=D$nFsdzI`wVw+>XOP$ z`2gTqHoo*i8w?C=X%(=8r6&1CzvIx!pp_0h-PFqBgvxFfo^_o}QxsguxYe|CNwDM) zFFgXit#vwDM4jtkLnNAxrKN;+ZI&CUt$r3$jFdofGH?g; zxY><9K4KaG4Dhc(v#nZx;rx5@IaUU=r2e!lqOh0mDm zk3)DRSJ?=xkx;cf?b`$lOIE>DmCy4Yd;Kb%ZbxPLaNrPtzuHZ zd%Tt)BuVr%BW1ZRD12jcJmyHz4!`Tt&KK$|;Iz&0okI^vTvP@8Ctq+z$NgD^mWPcS=ETKKtXbh%Y)_JY13tRR85%EYWOjG<)u6 zrIYE#hk!;^IGm$7{lf?i(?h-)ZsYq4xnW@GytY}!zt|SSre*zP(IV+3yR z60b)anGqhhp$!WkAK&O|BSFC@gXTVWp3bFnpj-zPIhED={}O1Dwg2Ac{hJ#>_NY~V zv(Jkg`K)Q@N?q(j%ya*U!89ir9IOIBvhsB7Qjrp~L^LjyJH4m;rmUKAu-{Ab`^iVs zDu)SYCAqP>QpQ?A-;b6~cZR84#>YS)g2$}X=Zuf9IN(cXf`xx7_oZggf0e=Di4Sjw z59Fbfp19-`=x6F}{#Mc74q$$Kt#P_-aagfZBkdNifMgWvSAP2|8HrwQ4Uy!0OSikO z7lMkue-sdJ<6*-cg}llbo@ltvu7O+=%b6Vic`th1eGWx#EO|#eE&S{z81k(8efh60 zi%9~OBLqmqGEO8vc&aMCWl)D-A=y$_6nitkFX9FMXUvJx2d>D|NqfPRDa4BVK1USP z{tpkRH+#6Cyk`sj)FJKDon{MJbmg>Ja3Zk0VjA_HFbB32*_48*Ry}AkU=`6^AIP06 zAMX`p6;#tLKtHh4vx>{!?Y3@vDp^{N0#?>L$4Q`+ml?0o@GyZ2z3i73CyA|*&}RpL zpg1-K`Zzl%Dh>y{>D#6Grc7}Ct9ttXI79Gj-+`j^-~E3@39#@vCi5Idz?CF1>)Xbk zqNxQgkhYp_dka?@tcN6U>|TXG%Y(d%;1RmUZ3cL&npBsf=`J~O(;MaSw1YbDZ;gl2 zfQ1vyk4OQ6lv2WNKEP+5#$NLum72=#^y5yf<4d++dglH0t7W}Cs&eA7ILq z8DnKJF-CTOyr3|u&iIef{GLYaf(^g?-lU&H-HvJYO){Kk_dpra89u9auNw9%m3@nK z?wzw-ETK;f2XKa3g@09Qtd)$`q({jl^3RcsRZ#d2>fxxAKD+6aQR@xG->s9$XChdS7~`eMvY^UOx7(G=lox$FZ>Y@ zJ$>zSm%8|3IY_y`k1>Qgi%;-pE4Lj^kT1z-12;TrrvI)+T?PCI_a?lbTKqC8+-Qpz zV)DAAia^gD-+!w4@@N~D)gv(mJJf61`J^veCXmmsoSm$>EE*!WH|s)M%nnkN8}{zD zLZcAF`-L&MPT`>4nAGIQ%}Myz`B+m z0o#S2a$AUG2>@S~w<;d?sxTQ^O_PLGSO>PYN9FkN3~)8H%g0X=GYo`Syl>i6uozeh zc}!6XsiPfVH6jobaZSl24^(&{nbyNsxxO!oMWjY(9rjU*P-)t4;O*-%Zd(s&Re|BF z{n+FppCFB(nocYt#^isc==qSCje|hRuRU$?q82ggbLl~f&1m(*A9Bp`Rc=X69e1S( z-Mqo~#-t@ye`wy$XVV$lKd9dWzE91dqqpQWP96Q}-;6g-wsLU~wr@$GBHo&}s#lfs zM&1*Ve7&!IMWDl)U-F=LQ)LzD3|NFl`+35skt~m_TDRm)&FC9MWewUklZWR46QiyZ z;4)=n4QSu_NY_-8-mA_FOGt)85Kb37)I>3qR}W%b7AR|QRbW3LF6vRh57Sw_p0c_B!%jb7cl)vJvW=oZ5nTK%fmls_&omg?EPfvrPdL^38r%%!z}pH>t(>u*xx3w}5?BCQS%jFIfWBRwms z3gYAMm>qXx-@fOz8Y#EN=FsZ9X`SEea`y)lEbOUJWD)yYKhEU>pHQgc&zf8U?PTvv z%RSroxH{kON1ID~#L&}46unLBz}@Qo8`nB^AmJ7~&#;012rAF^vGmR9ocVC~Wjb=S zQ<6Ax^2hjq0g+;T$2QNY$srdqKBuKiR3$_QR~V$g>*TBqbOU=e$6QWEv%E3J2J#_Y zP0V)OSWbhZsv@hl{;9FK;fi$~A@9QWs9kQo|67!RThs0Mn}^glvE|d$r3d}J$pe*` z5og7v{7c7YTmHLyjs7Plor*o(lrm(80+Kn199OUG?AcquoG9TQSn|H<1KTyy`KqoD z*{-5~D#)|$gI*#X4sO#LGUqJ%W?V$fE?X=RmV_juCLi=mq-Dso#x(Vq3Pmj#=^Dj! z_VsAJ$kRy=l1h4;r1|W()aBFtH6I0j2p$`+E!7yLzi&&w|5oq$DpOTKv*>-j8*7{x z$ZlAN5MzeM$ysy!p)+c2Pr`$Ho_fy8V$NYE=7{n>-#F-iCJD@rc6I9~>7>xbOykgRf}LQ;i6Z^gCY3L$WNwtJd;r%@xWBFQtkm1>?)1RVZ2J2c8gvWc5! zL0S&ob-*CWp-Of^l0|fb8xqp=XkyN0{;EftJ@5nEhfkgaqFhj^iScxD%MnuAm4+n! z-6VnL!O8w*(V|^}yA5k1ek-Uw10i%!7Oqt{q*|x@F|GiXcCg9^8XY1>;Uc3BI;CUD z!(Kevrx2?-H1#ujHTvtDtTjRFk)wgqhFZMcUZDULg9az#n8%y4G3` z+4_>(^yGm=97gKBSmE{hl_%in%OkHT7ZQ?GvKNywpc^-yPjR*vO`_PlfBmbg!tpvs zJDAq=cF4G#d`40HW2q2b`VFO_h>=CE6+qG-bu6MXU-@P4*8G{8&kK|1E=QfGM&Yey zHA=l9a581HvrOx z*QI4n6I!UjBHp57LF^&}_lL|h)N1CSL(!C1qb?t6YsG4&^VBi-y-Zk!Sl522C9-tG z;<-RWjwqY=HI!1d#AL!Y7qN4V> zw1DEr(Abck3*&$7eluUHWKT-(uw0kvp{Dfj+dh9)Z%OL}F}SYr&BEaQ`KIykPH?#D z!JyhVHnZf-zGrH5C$PO_GfNvPdNhIrf02S+J`{(^m2m&h91L8I6LB;IZzY#O<^M*+>sk%QNIs(J*KAnG15c9mf$$QHHxOaS)}cK4s^fXatuc1Sy{mTY zA9l|0VZFOgrW$ZSq`WxfWbrcf_pg}p13z4@UAB0XG4Jss&FreB#}^wNH9rUlpnyn}P2Wrc|dq*JtNmZchNC76>=f^^7o!n8d z0ikvnc9;C+C~1S&K8sb0ZWV{%!`|17qOSPSf_vG}EzeH|vNcU@{CC~zRv$HnUhK^< z{P-a=eptbCW=IcG9cgSxw%F5KZ1^Yk>H-iH>ti}M*Nv1 zake3Q-LH3_Pde@>DHm;=pA$G`YR3y!DNn>xuA(@8DIfE8Cz?OLd@Jzd@`HO}KC?P{ zn|4l_&?gW?Y6^E*DD9qV6?{Qny>T$LC^qowvgCS*>A%w{+9vcEvz~;V_R|K(lP)pO zatR-*-+fu*IZV)ycWqSXS+Ki^)h>6~lxxg)*E^G+YHOxq<%CU5vz%~5SFbHVDtqY$ z$|R0ll*PXAgi#;-ge>_IB<4JT_36(d73&EOMX1b5amXJG`T&+2Y8A~d(EGx{c9wNf z+59}BQ`|B8v21z<(fJP3agh1E3i1Q}^wny$);}tol3Bum+1C7tAeN;?A+Ss8XSst) zeo%t3T32MQ9IUd5$`zy(5%{u#112bFR~KVY!GU>W%dV#gObnZt$K|=%3JE6rw=C6` zq(ocnIDC6<+=+9>`} zl_bn+^*#*fvCTmc7@R0YT;$uiz1P0h_EFUvJu9;CKF(Ji8B4tzwwrHT4;x&=NLvcy z|Jo^J{tD=Y29zW%WFMC`(hdqY}OB43H?2t8d(MOnpmo>q;P{}HVg9!Cdwn9-}}7Lj{D)%Q8%x1Pvn zDs&4cJ9tt#cksKjqMq9(X-L}xROEV_tXpwz`j=zyDH+SE@|D7%7&Z;OZ;lT>DkferaI$1k$nIM6I8!Mi{k@{B$&{B-XuYOwQ zbB?k*Jb1n`@|vhn$pf97pFMVE^Y472PS0X&+|aw*VS6#KuoJ%X;xi5QB(EviwU&S`f}c9@}oN zJpDRF3*NdcWH**aO03~!+0h>Vm~B^$3O}+8hHcMro<0#IiyE2JiQns2|J2TzTlKWe z^P%HDgsC;XG+V^j>Ny@-krJKqUWt#%U z!-Nva>BI7yf6PwEm{^>tMRP@MpzA^NNSc{1;6uPX|K-s6bxK^KFEGgx5bhW)cf1Rm z9dnj#N2Q2~@boM0Z}d4N!WdI;$ssBt8$s~F2MM+EG?(Tc-@ts@ z^o^GBGWl~Yk&>B$;0l}O!*tbGIVf%{iL%GVPLqCk@rEi#n>PiH>LP@dViHa~dfXps z`c)U%>nZzkO>6x>F94c}^|L@gXg$X%LEt8L(Gy{vdT_C*^{ps+r=B7~h{Osf+l-jE zSyXzzWe$fj;}Sa$`&BmX^2%^ihR@qH*R02wu;)Dw)Tout5%2ctvzZ7 zwTg-ndjwTgo0_3kOBJer@Z)?RNwfOdePas*W7Cg-%YZBpGwE@+cO@0=cSt{ufD zmR0D-bziT6qi#9X6{F33E$taSSC+1#;Vj-T|vtJHtS=(eEr<)`8lX#Tmoyn7T4 zz^t35O=YtAGPC0PeP*?_0U)KE)mNs{pj)t8-G61=Fo?1AZSjP%k2&e?CpbL+5FS}5 z&SFz<1n7j6L-1$vQ1oSf3_M9*Nl7q1Jp06+g0YK!y|ROnKEl$w>*0T+H&y`?nU?Z2 zN&=UJtv8P>R|^#CKg%PP-A#`J?4RMy)l&28X9DUOBnqzzJLSVpaV_J0r(wGvxNg=( z-Mstx;WO`R&)--4_wJFfdxKNORzJUaiO5I{WVk!+Cu9`*`e)itJ{Z50m6$cmSqCFv z%qahW@?D4WZ(pO(i#$~)F^lkXDtzkfKYhd_N*tlfY)-63~!=CPib)O`;s?|?4`}ICJ`ypYXc(? z;6L8ek(RQA0AJFmR7{D!Dy%L&sl~0r^l3@&fib4u3-vY_`xP(`|HO*JZ$e>)3;#J=QX$!(K-1Q&{U09d!zNwsE5}x zqvqM3ehTW)A5mv7c8LNMF5<6!0IrekmM^?6WysGx5j%xuCs26X_V_-|Djf$B- z6?g36Gu0W<$+o_FknPq1Bl5reUy=AA(g-gy6M1!{1XnxjME`P62HS;R0B@J0mItq2 zoet8FKD~O(D{BsF7^@Yo)9XzcK(NvSprv9z`5nLf{Kq=@U4|!1Q~A$`r9}=Rca~%@cICex##noqav5*;* zHLpUuLSV$Y8U2%CtpyOeSA$~>Dw$()WLXgWdRze|O0K_^Y~vr9EoCmj`dXdLm=^V& zvVAC)B>p+AP){VnU4fCIZegx!B{}<_AUxBK*y$uuP|}EV5f4OUU1n{C2E>~l=_sr; zzZzI-NWBD-Y!PJ7l+W=mxWocs^+2iPkUu)w!JU%XlOsEmAWze!wY1>wU#$d5=vMnx-+FqaAF{Zxi~E* zbX}>%$9rQM-0yRfB_}z97P9x#XOps8m@K45+W)O0L9Pb4)&7ht{RVa4ZdX*#V9b@c z@ZP%nZN2>Nyp_{M1-0wIX@Y+lINeXmSyducbkiY6b*)x0IW~zjOghd?IUHcMB52${ z4A>N2=&QbO-y0Z@?tYe2*reck{1i%5_LRC<>8!!<=F?`?gyE`*{k%hP)7h0C*#e`# zre&v-?4fS=Lg+kNLmvEl^G`QiN0jd{<(XckiADF`^7HqoR_@@Nff6$z`PayR zO(*Z~{%86C3(hA&RL^_FZz@rqFi)Gqt9V)~&nG3&aWd-inVaY^+tza*d3@EKQi7OB zPG=P%roC&}wSFow*}kRKLeTk4Xz&&!>e_-)vy4z@af%ZgL*U0Za!#w)Tpm1baAK*0 zYvpok(Z0;v^3moX2r+3wyqrY}Rd`$&s9FaiBF9Ehwn3nsaaH zHF310zE%Y9H?F!NZ6KxvTw~E^{gL6uUm(41nFW9s+p_)uemBu(Q}hdU&oBx6L8Ukg zn83>gK`}<|gHyXa- z1uk0(BalIYy~0rHF&%KR6~D8JTR=nFI!<~=h^LznY;1EL=I0}{>GK!5jN2tCgTW70 z{gUxv^don_cQe*INKS~htbU%-UOsAzy31c9%l5?mV@5hp*fv40|D< z3K{p5ps;h0W4E|GAxCZS;S$X<@FTDCDTP4jB|Uot$J(R3dvBuZOq5T45s1*M6>h(_ zA-FHH6Sy37!KfMoz6J`qo2vkXt;K&ju1NUa4|idH{=!Ah@+Oa>aAU@~*#7L5!QtD@ zqhvqTdflx~L3ReFANeO`*kp@i>uqt>L0Zv$wjh~Q`=&?6?6wm$FPuM3d&FQqk7Pv^ zz4ZYOnryzzv*k%Fq_^~z#E_>j;C^iq`7Wuo+)5#gXk%qyb;PXc32-n8XVSf=y7(c4 z)um=pQLVKHb|@OJJcXsa(It?RKjuDG=i9x^_6O!Wte3y=PA9W|rXMf+uVq4Y=YFx@ zC|!5em}_TF!)e)eeYr+snS?k|G{<<|QAEtSSHrTupyHgq8>7Gwfn5ucvS z$+=Gnq9wX{+QO^!i2lND3Jb^t**{>nUYr<=32jT<&TK$>kRGf09zw=PkRN#mC5OcG zA^%!R>kqU;eb$TZ?2C2DDrgpGsct8Uu(c8AmB;e?;+)P#`qrpsKkNuA95XptxE)SU zo&}R~u>rV;!kThdN7`g@CE1R7;$5I_>aOT9hFm297?WLL zo=Ztj#R0)TBsZG-w>)qbzc*$+xvnj~c;7Pkp1OAAaWg}RZGSBlTR(l@A4La_x=RPH zHAnC?o54jKr%^Rz<~Zmh)K(aWF%$twB*Ew!W>n`J$#O+r{VpjZWp(OmPK-`uW@ zUB5o12xGvqc{xE{=j%LS#gJnT49?Bp%S9bOf5>s11$+`UgBjWE7k^LZX3i6il zWXIz+rTKY1Iw@gf5c4CM@LFYywQ@9RDnzfu=@+>CvZZeDd8n13#S^zRTp`?5X*g#j z9;;QC9o6$&+e}b)NS&HqJu4|G%U{QN#|L;D>DurpWpPbC)nm=84fFgX5=!LWS6Ng& zMoB20xBe5;UKY_mcQa<&lk7Pb z0)YB`gUu0dSeB^jx~Z8q#6WNqDQ$WluYwb~ zL$1^O*Hn%DUIN>YCwA?mZp~kIqS}+*n&qEmOdYpnL>*0WvYC+}`wuo2|0?C+HBd;n z6>tGwg!Z_otV?1Y5Kx=k-pYR(*<4WX_*G;3MSVDVki}H>ekdnxud2o6Ax}ib;_;Xx zPIECzceT?bXbceY>v_jpsGXJqxK}OaIjY>`gqg?8nC6(jVZV;2(sJ&ENj`fzvRU*) z0LAMYCVEP=*KJq*Z}5r+FHnr$aozkT$;_Atg7bwJKkq5+eHx?_mE z%R#>dvTffwQBLR&D9uw6K}xP{QFw~tp2uB$XwFuJ%=+TY!;gOw+pn-JV5$x3%hvn4 z582dc4IyrHHGKP9bRGw8OiP}i@b%S7D0uTvWNAh^d-S`01F-Gn`0vU5q{KSmE{`xL zh*-Kz7F+STq=Ai?$&s0u8Wm5lQWKYZ*zwjt1G&N^_Qy!O;K@(!28Fl@t!a(mL{Wz# z$hb@Yg%~lhghh=!zx4?2%;W4^=as-RYo)Z})GT1SrR~NLoRM&KiEx78Yb#~qb1^9MCt_mpmP^xtgVkn)@DcxI)a}Dn;sQ?$dBbrP_W1msvqNe#%zM+aA9X zqo2V8xe`_`4yx?fTLcKiLo=gd0R2kpM_Ve7$c4|y0s!{OUW@3$ z5V#%x82N6`aR*Xn#-I^y7cF|$d<@@URn0<7cI?4wo! z$~FJIT2h|XDKo!u(=+4?bN=Itg7svmt6Y4dbsZwc_(REpjS+oD&EW3%tW^ggev^896lOJ^fj_&c!{`5%LkEV}ScE}>1Aea0pcbG5 z0N6Wo;NT|ELtlo0EncEf&Fi^Qi7<&w8-s4m>g}g2K=BBd-gXa_#`Ee_@c|g47R;`< zChk@Cs5q%r+qcr1)R+C~sBz^ab(cXgns}}2_3d`nwMZNeO3IotM>Owc&k>4QUVK8% zu6Xp#Af{+3E$(8!)E_K1x2r`xPG z?^Yo__|2R%sxifS13{PWKkd~JyQv%O)QvT1$tuhb%M}VK&L8ZLWYB2Oe~|v3awnqd zJXh^Zn=~_9_)LRy(4(y5!?6BHvsm41k*{=Jg>lEyXXFn;)*puKXL-MJZvU+##;2iAICx z7EDzNk8i|j>d;*Npbx}SvTMg^UV zCtRAvnJAHO?DGm59PNg30i|ehP7e93xvq!QX)I*rAGmKt=j;6ch2`7z7!Ny|Fe8no zA{3cXMgUNT^SQAlC)?~QUsoxD)5Y4BAy-lx*TCYKrPW@^V6I=RHpeStr53#fHXY}Sd9Nd=C+yblev{rDNxbyc0U|XFExl~>h0_-CZmC8!MW=ixK4Q+8_$cs z!MH&VDuLuv&fCDqnQF$z3WJIOL-lJC#)j{wSva*OnKWikRHM+5@rPWS%CmKTDx_zP z&To??Hvg+qfcZJ@4L6G$H0JMffyH?OH0VriDhgZ}_uehZ>jd8_>}xsO;c+ZFF~=!I z>_b{NzKBY#^jW8$TxXP{5ew>;R{BR%!$<6q9X?r`>Qw0fu$0P=D_u#d_J*^j8!XOt z42{2N&lw1^sYy1vkt_ACOhBI*BCubLeqb%_##|+nKKj(>qojh+qLHEQhadL86&Lv) z(G-_OI8opK)zakpt%p*)wT*(2X~^t*9+khVu1?Mnyq|_KG$`s%9C6E_P{Qtf>^O@& zLfLKR*?EZh(4HKYHk@uM*K@$UX6khMTPA+_?ki2zv)y3P6grNg-o@58@e}v?8XNzV zm&bD1-4?I(wiIjyg|5@CyixuhR#%OUC+6$;~%Qs*wM!uLYbD+x*d z6|L&Z+*6+8IF-Z_#qqUfhHa`FhAZv?xH>KE*5e&{_-abm>jKF2!iuuOzFHQ&v{7#H z>z~a}KsSfu9`CX{s-)RDO3`c(6cbKK_xBTD@zp4Nxm8VHpg_=6^f_<_zJdrY`-D`f zK!XVUC&Z^e?y#?-qA3%FmpHJm@9T{6ey~rwL*dYqdQ-TQ9H%6YQ))NlK(PPRzc1;ooODJ(W1Si`!r zTPQ@ky7JE;d<9Od=swEvIn(k2?6!oLc2L{B`W6u&)W_?EK6rFD-`e30Vt?pj_OW*p zF3FL?!^x+^Q856NQyx{Z*lWlFrenZiTuXEmz#>dqFhmIEW8Bk`$0-N8m7k4vlYtQKoIl`HXTk1ZLm1cU71ijF<)XqAQ6=Q*YLn3Dp4?*Sau#qv@|f1yAH zS06{RcOnXn z@^+5MQQF-9$h&E}LvRXCR@ofD3vW=f*#@n&KceA00LyE=sOcVjg|Q_q)Tr6m1_$$) zpPevWhh)BI@jl6>d!BtxFnY{$YV=;_JdeWo%}ZJM=emR&g!spLe=FX*^Ki0K?Qko^ zzghuz;0^|ThPa^fc*)954-DHhk!+sPRwjuShc8{`52J&)uqrd_gq(Am3{I1hf1YjJ0UL~9Fv;< zMvxc5fEz7wwSvCzAg#@EKc`eq)|n6eO)z1NAtu`TZNz75<1Oi;+2vPt z+c7ZiVx3l21=H5NzfEPV8OCCE+GNXRmQLXmf8I%k=9z2mVe4W;g3tVClMY>cP|>y= zsriG+B~v>bWj;d%odQ7*#hP2jr}fVpy$HtW)t!}roGE4ltn2y+om8qXU@g|9YXH5P zl{8u40b>CmWDFz%P*iGA_>i0&c41I|&X!XJ?Y>pyL5ogDz)HYX`4?u*`1_%=+#ALBBLe8> zKI{_Z*gySf)mH29jWXHZ!1)fsJujs)%`Me0=HvpFyA-}q9rn^~CEL%$+0hw*J! zXR5SY)|~d*qUq2Q3%knVq>#t80HeYM@r9AM9_*|CP*EG<%rzNwjo4y;p3$<2q`Lp1jR{Q{ag20jajDQ68Q9c7n2)z9)Kw~X~DA<_W#}f zK}l0zOz_Ya{7g)|)m71Zmrq}OPTt%#Hd*q?=v;Ew*bHx(fhh&&x31@$=bAzNyat(D zW7Uy?`vZ2qye=2!c3dFY&sC|nNKJdGLlYONg7*OR$ zBdS`0Du9XG=m;znsG$teeX*+`W0E3Aa)C#((kZ-+n-VwSNdr}!opa_OXf4RHq7G{( z@lQ_Uo)W~?i>def5ptV8!PYynM+aONT0BPFt+6?M8a9pYxZ)I9t0s%dLR3Y-IDL3rvhf*`U`#-JvCil3GfO8BO zh1s>9bJk2z8tXF#%RX@Ix?!=+FISpuUvy&Cin{?NcO(9B;Z$~2x`FUH3^7ePz%06+ouZbBF?G_9YfBX zfzLxYtomy1TT%|75~oTbIPsEL?q&f@(GyPttZ!VX!axsg?d~4?6Tf9oTO*Fhx`_$3 zuT4)pAB5ggYFZGjlB@_S8d0h%n&_`CqL7s+<~dE)!AV8zOgEtb^FoEKd|K~B2srY- zOp`;M$C}(6;B{P7aduVs;_)5XO}K}5-*eipj;(#~9Aa+V^y2x|gLz_LZLjz~{U#*g zPXe;bSe1Y<&$1((Z{uDzFBw*Mtx+t0+T_F%0tS1oUx5hPhaKS+UQC%GoF}H8<^vC# z>*ZdQS1t%Eg>9XvmrICbIuE|;5*Pzctbu}fQ;6brc(_)Ab$CvJs9LHCY0J8+9(ZCa z(q3TeL)6@93aC#J_GpbaaO;=k2~)o^D)6Yc0Z0%I9O%gMtij0ya8(%g9gg>kQxM!s z&r+A>a#^5U;IU&b%|brAlJwT%>e5Sx`0Y?#<~xK35;oY^w&ju-^PJPzI3KWDOObUYE(R!7sy{A$PTH)I{ zS9-716F@@@)`ZM*viNRc)mmH71diClXsG}}wtsalxwLCr6}Pj97>dEjj$T)^mfF2b zc|@t&@i=kBz{a||jopt`nt1yK&3=$k&vH=w^{z4sF2U@BS2HcIzX?Ct;XIrsGFvob zq=tq%557hFKPeY15`E@Vl7^6j@~bUmTv{#07Z0F&wKzSHgSO}5H0$+hnI&YTdWmaJ zX}B?5z8kD&TXjakofy`od^SDeLnvV>ULk3kILvXJ7>WX(7Z(>`j`zLUSN^VWbp+qV zb9?j0)oeM-H{Ol$zm6aDYPc>e@7Z84Ebe;pTV5A6|2OW>Cu-3zcg}L2b&8X(lrguyvB$shKj3)2C+K(?2FN( zK?zY)dY&6#`gY!dXGoV%nQX&iC@9IHZJg z>}_6O%UG3{$RcM|#U~ndFXl^Km4)4{C~&{))hW;OJG_;RLF>Q7OVL5;Xzu0mRzftq6tc!ZQoapt-^;4 zz?kZdTdmTyu5*e|gem6A&Lxgqjyqe{6~r0L15n37&hpLTDhmZ;oTW)9kU~`5{Xs`a z*XO{k6_wKLb1tDEm+zf^#LLi>%VzP-0Fe>U_h^gGaJWSw|~pv_WJ1FLu{by7G-q|yKa z<`cw8;#$?;pGF(F?!o!&+FnMsKCBbZux}EL?}ZoHMEdLw?h5 zD$lrNP*ps^@F^`kIZZe>S|-xfSsE=X09|%FsT4+v zqUB?cpB{)T; zAZ`GD`Js<7MToC5vbM@qBd_h{R-@sc0dVhs@5YV1Ii#Cdjx@F@UO1_Vxa941`i*$L zDkOs_Q1lG@y+TQCqk#fAepONuSOdjgNTl25OE@y(!HI*WkGDR4yP(&cD|s^X*tSIc z>|dcm)~YrKN-G@BXU=}uh`jgJbxwd5e3FrCiF((cqIvAG*Oe?YI(_J;g*GD6yEQ%WS6|kMcRV zBk?aUrS4BKYp#7_@~ba;05`iKXHKU4K?@q$_XHNS(g)E5InXhI{z#ve?fjhacIMgH zP+eD~)ZYqnj3Xf=zXb7UC1vR#l+dPd4HnX^>p`WX2|L1>cWEYa?DQL^n*ZI0TOcE#kC^mtHT29jirHpm2VJAm5yg z-IZdGrH2NKv=K{8;j<^4qGQ3Np@xvJ@PNWpzk{XGoacZ3rPMZ*10aEXj}~J6)dFbb z9t3Iu))pLilNpph*hEk?%lz%M!WnVqg`ah|mYoZ-ihFPxS;eAhgADET zvn)89AVk8ZzBpXmWiZa#Eiuw!#riaMNv^wJup7gqiYW0aL22R=x4}ny^}DE75@-B* zd%oo@AL&YsM=~{)rFsb@iH+}2p!2*IM2GCbZm84<%5p5g6;S)TXMqYy19cw}At(*i zHB*5uXWq^&8Nep5K1oI|bkPMqTaQ>!#>;q~SxXs>b~!4Z{!re)1h|Ddu-8fPY&)pV z8y9%IW(Lf|_KbKuhIy;G1u*y)-s%B1(kzx2P2YvD8JOsUL7dK-V5sCpUzj)~S&Kmf z&a1lCF!tqt`BM%UL;kC)LH{IC3uwhSH;fz5pkr7cu6B86*)L?)h#aIe5f9R}Bt0=o zFBM3AbDZhQ`Xctx%JNwY38%%3j*2w-CqC?j_v>xB1op-y$ML3}j=$_b)b8KomTl`; zJWAy__hk)=q%PF^E`FC(cY|hqLz2elJ_TK~&679hYfRm5e|=Rj!e%1{6Ej@xE9H#( z<+9o2{^A)l{v?;yArH>Rr$6x@K1T^LrJW|CuDM>}SagE1T0@BA?&CY2DxKt(TqhpE zG+V?n7dEQ7P3@_YOpOqY4`=?>wDlm5sdnfuG`-)x$U-UBpZ&JmXC^g@`3UyU<_r{c zwS7j8YD^4nLrMO^Tgn}Gtj1GzZdYo_Fp7^GvNyP2j8KXfQ*$IrU#crQSMg)M&ECv6 zRC-uTla%-|uQqmutJb4MiTz{SPkGT7U;pZNBk;`Nto3LYJF(`lb2u^1V9`wVv@RE} z*9?3O=n@p1 zb=xD#c;llvdzcHS6ma#g6fxl?d6bYeOzxUUtVbit&rMW^=)gH-d|xwuH?$~wH3_#I z&;%2n7e+Tg!vXpGsljC8e{9mGQ3bx9@yGy0;*~<;##6JDiTQWfr zHr_&8ngj~IL^!O;D>nP1D?JcGnL2vPenG9D{YdlriVD{fmRL3dGrOIio!iq; z_gG^rm*v*NZ}}wY@mKYJ#sx1xfyeLO-^dj*)2dzxTVMXf?7Ji6T{?12Tf@xeKdA!+84@H zUgg^@A)kBV>!BSP2($89V##Y_gI+@+zv`(MYINXFFOswluEJT8AJBM*G*7^%;RCgi8vqgB2%AKj_D_bJ*GgRRkWMBa=14qF4;@B`?&Bq11s$RfjdA zxLS@0Yl&qcf+*MlXM-O03NJAmw1ar7vtj22?(JDAtWiYq?#69Y^B%_di^uHTZ~$OT z8AWb!^l2(>iCFBJQ0j{LI{76Q_WklGJzhNYA>~S_nI!YH{#y2dzk2*lkf47zxyoX# zCBFEf^``fKULtEPR85w<*j{k0s;!ft;L7X}u_ZqEbj;_EY$=$D;7$5PStBOD%AMBqeGD%nG*Rxfb0Dwk2JfH=iq;W5GGv)$k>39!5*$ z>RH1_9uH#K7T$qrm?kplKiSNtyGCjOsIHx{PyLbKZTXo89^6EpOuw(}`VDI#&$VFg zGpj~o7&Mk;lJQK0&-G~YdrRLgh=UbgS?H6cTzJjZnnXtKa-fmo$LgqrD9s^{CR+bA z4nkUtuYSn>HTF~LWHDt0u3r@my5VHD!ZIND1}Z!>7>Dbs{}@<7Fh5dJT6df1O9VLr z<_92HI=h(^v4{x80cKu>T!n#V@t7?K&QUK!`u1!_!|s+zNXevVe!5OG8MxA4;iC&Z zsaN&I`3#c79-WXCS7==wCzwcgm?kwgCo|w&@GpwQ?KOz=!ES>eFn}=+Y|F81x#SWX z3mU;sj**;Sfg7^`WZgcdAl$P%; zwGGx7Z5>9W=znz9UvE&(Y7Oi306OxtjytQK?F_V38Q>4eT1!1aDHF))x-oai-XU=> z#a1Lm<)gL!F`$=8O<8RCo8phOb0S6ef4@W%&tG%x3aoxlL2J7J&j%IT_^OpL-(I*X z>|lPmr(pk6TweX2yjpJ(ss*2LtjVAaKPe)&C2AyggORsz@uK&Z?TrQFIcp=Su9DJO zIEGi~`B=k=<@~w4b4(h^I$^+9i93G29L)}(F7K^(PO%!T&xJpiv|jqQ&XR|k2x&F1 zkd0M1lOt^$c_WF>@r!dK0!CN3UvF3cNIyG&RqOber{yY%SaUgGmwB}x5#F(QTHd^x zMtpw%Xu{<8KV_MoyD@>Lmqp*UU?#vo8U_uu*>5vW607Q|K~~RHb(vK_{1)t%3uU1!gO$P=+D14=inGdjbhK70m-#X1QaQH~xpNV<89&Ii%YAkZb>=`Gz zX$?$s1|4XPrWFK%N95-FA%k>0hxO(n9T->p=r|x zoYjnEw*;jPYtoiX78GN%Dno2K*MWI#^}Fm?Btwh<5mj@}yd9IS#T~U`$d$4bi>xLw z)ZJO_&^+-{GlVj~_mv2}<5Luy^5aI>*RHU) zyEoCE@bvRMAz}l&pyXhmX>oorZal@tNcD&in6X(cnw{amcvsujsPW(4YMt>j^aJmX z5in1@z@y)TDV+NR9x3GjDLFgW4P{e99&_HlAPu8`Za>>fpR8HF4RsxRy3u-ot(|*NRK(HL1BQ7hvQ90_i_^x$ye+P@$7Qm-_y*S+9LPYTZ->LcAEPq zwqWr3VNFm`wf?i)Hqw?tKE~=1l?rxlU*owQ3E6p|erfK3qB)?G@#X6~*_vfjzspID z4t@^~M-kKnkz6|%&%&()f%pK~IY$C)V7Zd@QNZofrGf9`3)wCON84t%3zF(FW#%fYLUI!Fig#2n<3mFnU8aV7#hGa?t4Yijm9?_1ZrnNVzLIO=LIC@ zBqByoDLRo z>BQ z%-p62Ac(9}&}?5*ZEA$D+K}i1X98ByrZ3au(pR`3Mg&Yq5xJZ5>$YNCg=1 zL`BmuG+T&BBbBSr%TS{*iF*!-NR>!KDfu&c$u12!y2ik{0)eKg#0e@m&Wlq2rRHY_ zY_j7 z`$MQ{b6ZjNp@S7UBRk0+Uw;h1|L?SnD+X+unu&C|vg}VHSEA$G22Gmx|GgAE+HF0n zBYItJc_Hl1c_cDvAv;_FBd30faf9k9wK6xuP3gvNGQghJ2oRTF$cie(+6~IF)hPJT z+vhV#5`WL=vn85MyT)<7S$zIJlWM;tj;(6i|4uBa%&~xJM>wL{M&Gw6R@AOixk{GN zFj#q6!SQ|wGm=v$kMm5G;!KG4)?1u}=eNFZvJ^VD&%5H_QM2=Up-$X_U-Hg=fW>#MavjST@sY-#^%hmMz9WIj#fUxDmeLZGUt>W z+jdCn%(y+kVQ7nuvNdQi!f?9sAeS8qaunR6cR|ix@!)>S{AgXa$kJ``*oc+GFwt(~ zTRu990C!Wq9Q41-UuEfPrY0^;N}yn%<$F2g`V5mCXLYAyIYg;qLKW|BZ!QAa1n-6L&0mI{o;=`H zv+rTKYegOuuccBH424u&#HD*>1$Lel5xa70MCH4$zIH}n96J7R8}QjL;zbQkQy4Tx zowlW(BvUCGVG-W725%H%`W>&yvkcrz$|UI|iW@%;fB9uGQ$VWqrLWCk{l@ghw|VtW zna1Gn47R|uAwPWRWiDqMS4SJvit+Q;VjpLG ze+{DV`>h9lJX419u=a(}m~X0CM$*zy)78knbD9@7X6R{`N8xA+tIU|>5akg zUyYh_w8h~J^8PMzeMdK!BwGc(oqVRv#lC(1j8j-3_dk`5j-6~(qx)VJO;OJ~>Ba8X z+$2{y>j`qlIp!mSLP0Qw#!E@{;{9@=y*dxd`AWg8AYvz)=-wUXOFGA^S$kgm`a`}7 zfhEqOl}&CbGsB|HVEntqE-EOG`wzTdz+VaNrsBWB3p~CjSufOF{e9L?(Gu5(5h_~m zTL4{W{S5zoJXu7ZD10R`UXXv#+e~hHQ*k)ExA1mBp;sQH@oB)|qe4u4n{TS17dA`H zN2bQ7zw%Jj6I|JZIPsM-0y0D#wBN4TjtfZhaFocEEr$q?$^G;l;ROtR_v!zw?*kTM z(l5s@{7|{%M&@;omJsvw5Gi~0UiLx^)umn|GA?529nVCzdY})+2vmdi z*~8%bhr@kmxKMQPk8`YGO(xW?H;!ZyBWczf$PjqKrlikI;Cw9TE%Yr|@^qh2xMUUI z!!f@8vM28GP;kqOIPwn?=Pg2XH05@%=KOBtrmJGWd6Un=_UzxRsS1y@plbqg_!X3T z!JMEh$<^IYZVkivo+YzvXpX0F^KZTz**TiY*{L^VD@NTX#rv@G?afNOtOnYqRT{LXX+p;yA`P$~kpr~)7*pJtb$&tsm~sawwv>-(%^9APIB1vq{XLQ}fLUGbw`x`<}Ugyv<2 zu^=$RnZurM*PdK(=P5==RJUytFn|r|o}hFFGXh!%0dXUXspJqN7@5 z%V{(SNvViI9+4+D)42{+5?g%OJu+S9SLrmBMMQ1td8=J?maIa-l|AY5fQ9+r<}kOB zBH95K=TVn}vR#z=C~6IVo*v2`m11|YMsAezMBMj!+If~qoGX^dDlH7*iV&n(34Wo+ zNZXSYNU*&Y|G&~ro3fSu0XN}xj3vcB zO4gZfcfy)l3fBPxFVB(Ob5}>r+#dpX2ao_umBn1nXKmbiJzwMW-Uk+*4`Qn`8! z+x?5m1RCS`1k;yaDy;XH@#KMoqQ7Qbm+NHQxLtY2fzPFY>c;W3zek6E>CbojtSAgE z$B4*1`?;uQT@I-v^~BJyttpRkv9_PC%9!3P_x7fd;wd-JGU@AeR-;c1y#l6OGQpGZXM_bqUB)BQ zO^l|^bYH&qSWb;0;MyD^k#YZv5HVEw=H9?7!-Y)Ud!uSM9m7mE6NY}!o2++qF@~!5 zL)zxuEf-OSPpE1DH2j#fw879nf6%eY0dlrbRx zT*!u;3}9lV*Fu3R5ZLZYNJqx89|m3ydD{+T)-MlwZPw;QZdyAR5?aNUvo%9UX6HN- zOcU!DE1=@knTP|9xB{vOOEc|eN&#<+Rtl(2q_Z&A=aB=sqmJ)~Xu5K=H z@d(w8_Mr8|rI5BEYXb?f-B2EKf{rt6y<92*CMxwy`bE)Q`YOkW4f!VK7wRtbMDr)J z1Z$8jnA`CVTwe$d@5K*ZT?Y)`xRvMI`WZW1r!V$W<=PX!xDD;YpVQlSeZx!AjweCr zz9y`Dn3MG>R^)639X9{pcn29tClb0gE5@eQyxqHVJ_6lYx|)&a>9>q$ft#qQ8Ub4N z9G)!LKT)vaQFIs4XCxVCgbe&vOIl&L2g|oJ!ZHobpR`~{8#w;G5Fq~Gj}eG}0@rDZ zHV_}Ix^DdPj(}a%vJ!{mS`oF=aO~T7*$U3&IBwx zj&R{^67;09Vlw4eIko*LwLnd+*c=;m+y-tRH_$e6goIpc=ZKurM_DlMX6Njr>l#-D zeai1z8=7u|or^)fGe-Q>$9xYbd5@2J@d&GOwozGn;h9Ruy!1+=PS_|Djyf$Z8M~A3 z>-0C~Wg||eEqmgGk&SRlUGB#m<|&Ul{Xv&py38y7oVIXrn=(F@-Jt!p&nwI&4I}IO&%wbuGPcOxMJ?#1Z+FR}6}S@-yKPUn@NmzP!D$ zOg?cc{usA(V=S!a`R$7Qqg~&ohmW?*_i&prx~1ewBcHf(DonP?W#N>HM`fmSHo_Cb zd@Qf!5H8v;`ISvf=i(Gj@u|FRn(bMpU#*cZW1}wT75g?e zQcmE4-K(#ba`)YDmal#Fhvmo{2Qg8+6yvVL(DTAfy@H2l5P4@77%^GgvrpWS+a{3U z<98Oxdid}m$aqUCa2Sm7Wi~wc9X!Zq7HN01Typ6?UQBoxZ?nIueE7D*gUp^$tP@3C4YSMN zoG98AMRoz&)mcG}ZVXPH!MW*^3p?PrIEVKQ;-Yf2a~s#i%82rjb6w5{XYO<48GVw) zx24Je;y*2;4JG5Yj@v@{h-YbBDi_tkn$A_<5|NM@yg3isbY{`<(|HWBR<+>oOpkh=`@D9iK6#s z;g!biSsV8n8}YB@B(BGsxiU`rp1c)9#L9jyh8729wB;K4dRWSZQ>s7sJsaVA`WSl; z)02~1{MwF)l`hJ*$)8DV*=H=r7%7)dev~ps>2kagvkgu>OT1Cfzek8frk3Vym?%+* zdg;WO)4VOh_vF%xN9Aqs(Kg%VviM^f?ImAhCu}cm@%FGw@*WrCjIs7`nLpZ4x7JQP z**?q3x5>$V$8n9n>x1K_v<&;++xqon+Odd|?c6T{2un{ z$&PwqqOJ5%7W35aeCc1^wf~K;-(Q}3^5yc=r}r>XH`{=ua_zV(z)Yk6eszp?12_6Ze9TbCh&GB?tG`D4q7V-cPM+&L?d zPS1F8zpc2nCEbdKTh_;@uUvIoh7IY)m*ZC1Dniv@{L5w}b_29rQ{}?!YX;g-#dcI3DpegRZI~~L#I*`joqL$5)cyej zw{cYOmyCw9&gCfEKyE0DWA8Cs#EXA|bBed%*S)c#6{?43-r+BIV0HX4^`ItE4|dcU zpXeOC`Ah#%YGvQ4YK4&r;c$}3Iz-<7^Qy019`w#tCyLq@J0Zl0A`T|Dqgs11cCCES$Mw2nf`+ z2`TT7rw@Nt5xwmI1g2+j1l#}kGj1jHK%@l*R_8RQb`v3kymM#=QmV6WD$8yu6>qka ze94~rXxp-jdg6sqn)SqNvz(Q^wHe!i{bapY#hxv4EZ#TC&qY3%`rw4O%%{Dd?4HM8#bQ0L_SI1vbGbguQahV~0NEdUlo^|^jCqV(b-=VGhg582v3-t$ zxZNI08yAc>vQxXT?KL~q%Y2MMl8jS3#2AT{Ty{(|CT?TIE$10D`VJ0E)0%*obx(pJ zWudXKT}&Jq0?zauoxwKiCRjJJW1TmYHRe&Hdfu$F5i^%-)&CrxI{6fCEc>=v&0;gM zTzI9@E0tU^F}0cnz-!psjQL61nc>(5V_kS%Djw$-&W|bbSsBG_V(owG0m3RimX#lU zIx3fi6Nl1_le~wQUTMod$}&$bizlYC&)8g+jqob>(zUprpB^vekvrN)`J8>U$$WEm z(#c-_RF-}|#bZAJa6dSSq1Q=VRebs7QttZhOXbV|=}}w>ytrI+;brJ+I9ZReH?Iz! z0+?^D=juBHJ#aq(N$ujkw_qQ_@sD}F`INfToJhi+G4Ag2C6&j@mG~IKHP;=&%WbYM zx8PG57vXx+NnRhqxF7FYwUe6s?lzxWJcZj>d5)95IaaiZsaf*; zS^)G-YAmWR9)}H8!yn|7LZ_8BaS={w)Sb)xTzj^B$9Sbzs<^}{xysTjm0o4xluAxq z#!{DY!ZQ_q=THCm?)|_0#{K2dho3D^JdT&yT>Lf|@=Z#7&ah7Q*pPht>99aBOadwA zB+(}!*3fKb=*@yZY-3wU6pECwkzHxO*p_jjVj!7h4P$+0L?ai-gPn6sfM-w`f(f=` z9bjbQPRXd_YHHD?pv<@qYV+MOLae2 zqDlP_!gwlPmX-G zkpjqdQ+bYEWyh*Mye^|o&+V~mP;MtR;LDnyK5M^_d+%o~d9Si4_%q;S$&_tCtYpl4 z$*m0$)CP7?_$AgE@GB}+)CA{h)tzk*^_5n!TQRtDdE|Cd)stKdybvf1=_bAcmGnwS z4g?Tlklyy&q2L*hH-Qm!jDgyzWF*PkL5<>25N2l7BBfHIYjq zjfoYj?N4EwD3?y@q%O!8@bV$7%1R?PW9D?UpTo;GW8`-(l`Szb-{b1ZqYq)kr!-=i zC$6WHUN#vgAJVT)WhXwR*wHVlviKo zI32Ge#hrk7!qCQ7r_omr;8{aW6zP{7{=*Cw6L`w5$CLc*;dVzC@P1_xR}6Pgl*8v8 zD~HcNRz7;?b>*WUy}~|yMhea?dBUGD(UwC)PE`Hv^&B(e*+;&zl}Z~!BE`Z{oh@)| zs#;`B`fF*T8l&OE{(?>a7+0;Uc-e=Jbr8YXNC>O6| z#!4UM9;!I>M`}!`tZZOP#&oK0l!gg=Lno1OT1A+|4jCx&?9({mr%wohCET`v7>Xhok+h7!L*qc*`o# z^ugOwc|hTT$36&a98>-n2fcVOma}-hzj)cB^?d7hY^#=*F(D`{87H|?Srey~vaA=5 z@|G^!3X}blC(DGDkF1xxmuCBn6W==Abo<GECiU(SI zQ!X3dZhs#7DT!#uU(50r3+3*FP|uC&h$o@1hGE{BNP?wW)`27Kd=aC{F@FAwZ0Y2xJ{C5rpC@6a5R`V4SEtdHr&=Esn9cl%p@(ADOAP zW6UC>r!j`<{ws`oim^|9kM_eh05JFu{L!w@SGS+FPzkO7R%5f{wgoaq8huZc0q6BV zOYBg?eh+J%RIQ|*_=zO-&3K%$c!ERe^jHO5W{hM^^D?b>wi};$b=K$&q8EQb;2_>jP)bu zA zILTY-nR4{(R-Y{z4DPyGNn1Dov(fEvHkCT=STRE=R@WGyWYTC zjqu^Sf=MFIOxO!;c$R@ZfemRbhqO*kyp7bU*kD@Y0G}J>8V|yo-#D#p9qDyvho5G>;TmSfj<(GctBjq}LE`zqKd^X3(Fx)+XVsyL z2pqOnJSN1?5Sj!bo!dzW(~gpHk}DM@aayCj^ih^=smr#+WZ&Y-^30d@vg@VUKI6o< z2Iqad_8v5V+AP|}yjsa|@NA7%OUOHRu{mV&+mlZ~ULaS157{A8ZRE4ceWJ))hG@?^ z@p>8Cj&^C^uT-o$tCQ#hJaSQClfT&AWlN%eUDO zRu9bCmU*4pHr2=!pgZwCB-!XdA!IfaL~M~+s`LWzU~P5gJ-i7?>Yeq^>jV?_qUI`W|^ zaaNbcEj%&YpH(IFWsCxhDa33Kd+y5qQaQiv>%)mq`S3enc#=xTBN1u8V>#=hEaE87 zWy-XOCt@TMMrp)Q7I868UB*(DmuRyFpD`>)4(4N-{{BmyD017hs@_`LM;#|D5z9Q6 z9^Ums#|6^!e1rTexc&5*Cri2SzGuo^-+Ky^#|!b?;oE@m@jId1Pj~{+AN#>R60Yiv zf7AF^jQza!XYMO*j9;EG!6!EGtm5$#c=yB&mz0}teg|$py$GMqDCI)Fq)-b`w5*d$DC_@_%Dj~k80mPBM4+smd1`*CN-qNkH6-O_oo?h}^+KMM)gtS{7@z>B)wjZPizU0v zqq4V~O0g2WKBE`r<;Ue?%Vh1Vqenu~qpn{q6b6w}ylvha4ua+PIge(_U#G*W8# z&;MXJUYx31AGC6NjEBGc0~4!)b%?T$b$lEn7Qdp1OF6J}40$;wf`oQqiFFv;m2$01 zZ64@mvyndnV+@o>T+C-&b4kXYA`7H|=4f$Xh;-yjjZkzxPJ@>%Y7ox1(NwzlVHQ5x1e@6L)*~JIQZTpTgfv z+VO3qJNg!xN!a;)txrM1mPjt>tM>Pe`wjlymg9)=Sh?`x{c`E0hswu3{;u+o+Ycj; z&vw*U_&6kEvN*XP;bMXD@k9#d4|d0kk@KgXWHoOr(;xjZ#~4V!l7y9*qQ;_n&MMVk z?{A~%QQWeYQv zCP=H2D*WTi2FT66GFlFprHp);?SzBuSnQ{=RIvQGp1)$LI7>EV+)3J4%EiO&VR?CR zKH)a~ZTbSS+`!B`*&2V&tvVuy)sAtgHfkJo8)Y%6KoioKK2PD>KgaPJXM8T>SFbA{ z`^5WkkNf+|O*dVH?{#8Ah;HJ4YwI7}N$YYVK<9DM%+U@bb<-VVv3fvm0C9>s64iQ{ zh$aQ?D0wH9T&aw-V+x=3!cpGR$)32DUiM1mr-hF?;g`}iKIb^hC+mOMKGeRo$Ji*@ z2ls&q24!nU&~Ok(9Wj*pGN$CBPfj4&(sss@zAJJwahwAblcyd7EMRPdKNF*1{f~a= zVO-n?C0KRrV`%{Oq8I=pS;+B^nYN4KZQ3!`ZM2JdVZ2V=vGg1JeTZu_J8p+^b2Yzd zA0=K_X3wk$r`ge9tYm|lb*OG_kG7SDl<{ATQF`BQ`yG5JjGPi6nZV}S`kmz@o}`Lt zBCG|)!D7s_>~^6-D2x@vhBS5bJ?49UiJ%$%xz8CJ01ZpmVR3ubN3e~t1?)6S%g$o$ zv{?_Tm%Kg0%k@C#?TC!V7zk^Oj5&@#I4;3|3jseBo1Z;&OO0V_tcK;^pUwCcUqv?e zTg9$)tb19tQ{mfML>hPI0Lpe5$8yF5^JZ2YwCmXl6A9+9!nZi7Yw0D6KGx=YvB-WK zZeqn3C%NPjk5b~8k7eRyFL|^b^x7}jqw$|Fn#7-qg3ln9q(aF5;6J@OKIWEM84y@88+Mc-{u`=Ee7idI89d|%^H0#ii}_FP~-=!YJe zYG2ge#jA@xc_kwjQ{ZQ?cd>qB{Yl0&)-N$CEA81uTjrxJ%dMryC0{KY%6fLfXZws- zIpUb-N}crLi)plp@@%tn^2GlB0}s4X{>A_GZ_5ArKRr-x|LisPjN+j~7vg^79Srnw z`T~P7ewfqx7#vTZO#?kT)V{qXmEDV70yfqG*)jNE2UvB37*fa^c8akMW<8yL`G2Yp z*8MC^Wvi5Nav#XcpmzoR^S>|Ix5@%|d8~ZNWzUot%A@U=_n2hI#+D7!QO?quMV)1| zrIq|;2Jc)Zg)8%B?cJ#L8rKGs30SxO0ao6&u)Dig-hRcQa@pI@FTegwwGVzK{>X>*C&=W!Fme!Gd4WO_V`_^HuQ_cGi%T~TK<+cxJe z*P|UPn(pE@#e9$5Nwn?L`W#4V1Dqg*=jNw1VT=3|+-Xd^peq!(uRP9pjp zyFDM@;Tur-xr~SLnT$ssei1LFd;@m`;-!Lkv7isw;n(^p_bbLw`=Z?`!~V^;me#&* z2ztfB{QXCsOXb72U5P7-Hta01J*9Ir0& zWjZj2oL4lF_zr1#+W^QM;Bi@G1WJn7jI>G^KeyX$OgQ|Adl1x&>MrYha@k9-vh1^5 zdZxle8S`^C)c5SD6Pw?fGe!ePH6gzt2wgr9b$O<^TD=?<<#Gc>x;wymH>* zi_xG5k!Q=HfzakU!#+LWvXP-YU2n^_CM0kHknJtUH$l zj$UH@ga~F555>KO@D2W!eRUvD`Xe>+4iSu^Np4>69i0X(91kSaDKJD~FkvMphKuB0 zn*Uv6OMjIUa9MP{2s?31D-N!G#Z3|@@x!gh@g~&c<)8lEr^@HQ@ELqA1J|r^a5?OE zHbZ|Jw^Q&okr!Y}8q#YDxGoYQV8T*LQjxy9oRY}fb z%oCTf8B-}N$+i^AKI)=P#6)?kNzFZKvw8+lu3xp=09c*LPI5UBH9A&n3&=9a**^n~d9aP6 z)cv`v8fh>UY`R%cjNIP(DvvQ#&`_a7xL@ZT%N_@QhwT(wCj#RPT-8MU?QO=FrZG6+{k2!han1sg$9@k`~3{p)L zWn*U<9WS(}!Diqd5sH;5_Yti^jK?k4Q7#){a+>$GsPEZkn;tH5t<7idY!`jCuu-3F z->Pyej+U>b*u;}@tt*NVLpzn3ibttpX=2#Vs=Zy5v%6^6ll>OdW5-H)>BUm+z5Dg@ z?QcC*jvm1`%#``CtoX9Uvm&+xJ%1zA9;7V<>noHR*w@z_GJWxpIs2y+v{z^>QP3%2{Ac;xIfi( z6uKl#6cJgq@HEz&>Z}4LiEwk6iGjR~2MLozdvUhxB2M}_JTWaB*)omxEv)oRqdw*% zU(U-u%CqgyCyKFln6Ld&e=x0!hYmadvfWTthaLoz%-H{0ICwK(a>zd>G#6HKQA)1z zT)M_~{Nu$vSr%O{S_nPA+lJ=|;>3%*@9QXQuO-2nW-2RUhZ#{4PiD1@vEh|lG?8BjpX64Y{ zQmEZjUZ3XuBbO6XqhqzUfGmTY{WH*bl?dVfTvm;KK2Z#{HJ7!&jsw7IIac(bVFn7X zYLlw=rx0%^?{_13=v%FJ90-Va8-`#5OHKL=^Ye+~P*rD{(XqZqGqe`~Eo{{HIL@`a z6-Ud*Qf%VMxSvlHe?C!Uf6D!WGW8keTT9C(;-Y;ED?QVwkNL=#^RkcfY-s*T7##zf{*kQl*6629y^?~B{25D~aMDpmf3lOj0S&5FmUXs^?`|ICtp~WG zxVLw#96kDGdFi>=%kTWxx0la;_LJq7TdyitU5mTv@!?i)6P)eh-*WupEfoyUuP8T?+gk4HyJ7*_MD#f(n#WVP1Tu;G4uGyl?wuuPi>SdreTa5h_kRX5bvOnRZ5rj*=-^SzBV2UE5|w!IYPM zZrI-dv*RA&o7FKjWXbTJZYsBzc$EIzv!3gdYA*{t0M)mo_X^^^>#O;)F-aYtm;ir7 z>?)z+;U5<=`~JyY&H4Dp1_i@%3}eRbBJRs378hW`(HdlmO);rWIDwFk6gqBYx$x$u z@e?_sx@VX1JzV5ko6p?YPQH3L>9gIrF8BP;`B{ohoEb-X)V1{V+mkD%tarI{tIye= z2`Ko941SZEcV!*NRmFSnF6A3vf2_Rl0zXZLC;aeT#ogWW@sdE^ih2lGJPzc8EX2zF zf%^hq)~0+N*>c=u<9R%IX!`}^yL>E&>v3Oq-URnCJVtbL`Q#@q$74kv565o)+5qez z2-x!cL4LTJ$^8wB??TLbdD!|G#LtDe4d2ztChO?IDrD+~u>jBriQA=g*3Vu{paU@=i7)#~36f*_iiG<&g&nl1krlAZ$z5laVjmQ6_&aJLt1X3r5-S z2N?$z^qCz@8c*S<_U0SM%FVZ4QEtBF`trG7dVjh7PXDeVZ&_g9;OrO6J3&IkOSUPaVJX$oR)UnqJ{hr5P7{`+KIStvx!9^0dF8i9kg*XLV`|~37pA3; zT*^DH_8m0Nw0))}*^Ft_ds}fIumKfrmDxRjZ$a5$%Psg~EBk{(GlSDFdQNR>?LSpD zxM?>xk7HPdANN1@8E_8_W5(cPG35A%m)brefakLcm{by81if-3RGuywKA23C0Ti0luC7 zB=RRPNqrqYUn_Usaeevd9q+d9DqeDlPg;5C;j_>FtRnt4<8L^ZxP4%Qr0z?m)6tyKtOai=zi()n4+bG{!EhbUDq~tY0cC4&oF)^Ws%1{o09Q$T3)_F=^-^AZalhPq&yUK#`|~fCum9z9()REbV`4+#FOj?VSrXjcZTNN^AzAYYG>U8`Y6c*J3 z^;1sb1@^pG%_#HzVeQt^>1aEKAeki5ZmTYg~~d|cNFolAD&@4j3XJJ zJ>TzaL#sl0?2E~l9%>NDpYc3V4gi+?Sz!kh`+GRCz)9gjd`E>Zu;D^(_8~6pSGI3JMh3f>ht&5MBCsGHYyEZ?a15+1 z0t-CtpQfm=khHha{dqJ5%UI4;rcN^EePI;bUM}M{L>zUoOr+z-_Hvm?8KlASGvuk~ zQhD6mio7aj$8ZM>zg9cK(NdfPLYc~`;+CnlLEAK%2j>*hjYM*Z?Xx&Xqe;$=BdS!{ zP7t{u;w;}R%db)*ynnPEc`U5Q(Z{&$nSaEPG%{+Nm|9+K3W`9T2`6R7>AoW~A;GVC zRhc;Eg;yRC7$ld;rTXyvSjP5{#wdLY21KPXFJ760YRJGLeVSVeIT0M5X);o9^SD7o zC8V=z!0q;9M%Dkn%)R%sCC8QLm(O%J(B1GrH%I`4p@E|V4L}kck~^cJX2@A-V?(1| zZAc1*LNOslNc$J)&(JUWL5ht~NV^)%jACcUE*(fNNf-hk908E9O~RXQpnX5n`hL#I zQ*|nD)xGz1H>s)jZe`~2nRzlRGb^jA4u}yoIAVg?EIP7yZr3TXQCWPlzb=nG`nsCL6}om_rfccC z{83|cJ!4q7D`;&6PULgeMOEV`eAW4W4q&er^NAc{q_6G z%{O0DZolJ-a?{Q1L_{77y_zV>D4tVX=as1Fi3})VbBJm`nQ&{I%mjp8mH=x2OL2;F ziSq0aO=PEZ4SSbt^@QAxAVpf*gc^;`la(1lZiMi~ucZqb;H~_O8^Z&eq1oCzdzNpq z=qm>0>1W<9fBA2}Q@-W(6vqjj8g!1YH5s!4!M7EC{@ zanFFqLH%;=^;7hMbnps(@hX(#<}rc-YnS=w>Y08wuFdIxB&7K?j)N1$`tuJ ztGDQ$JfY8JymhSni~s)Pda2E4%Z)c(Qub*jY7cMC;(*T!PEmBZzO15gA7e8grK797 z!PkdQ7UxCz44(=5orGETl$@XmJn0;tr!VM&CS*l=ENpq8nc{<%-xR);4_!w~J!b+- zS3k&biw9+dy&Nty2x2u7AKKPSwU|IspM2ojCW=a#Upd(52fiUb_a0+2jZ-K1%vW0i zWOLN8OGczBSXPe&~NmL49Xw~&Lhn7Mr}fNYtRn#8S5B7*Banm;UaX9 zs9M}#Juxb%_s`0)e1N`eM8xfifj5quR27&t*`y$kuu2bm&=yB#!-Pl&4WYpTp|s(G zAOz(w(Pr>D$E9mbUG|gK#?Xadg>Pm0jE{I5W}RJ@u*JqFK%hue=xT+`09pd%Im}2a zeZX8i!1y^aePQ&sw$%>`Wt7Q6Ocs$EG{o}}eQ)5qzBLooc+j+{mS>6%zLvI?MY`qB z>6X7uxAKCwr3-k_FTw}iPQq4Z%iG$};)B1X3pn(Fix61G=Qz0bfNzY3g+$s5Z-(dk z$K{aAB>u<(sy>-mj%c#@#N$WwQk!3u6UX+J%`^KnQQR$BCW`FtsuM-VW;k%P7lkbD z%Xr%_madgSdW<*AZh6M&TbfAElM^%% zA~$5i7r($0W*XA1{NM-2(c&FC%=5~&CW_n)q~2b7VWWKaI}el}{qPs%tv61Uci$@I zqKhw4gvd`eYPui#m}Vda3I)j2Dzm(!PN4}*RT-cxwY<@Wl5r`1=}fo{c^ zHorT#zDxe0{BLR_{pO~&<7}>I6^c8GC(1ovy|#Snu3NNi;ihuSM=mXFTd+>gIxr@D z9PlUoin=cd)#|s7CHRb4r^Fke8us~Y5H*?oVVq(u4%d=Yt`HP>jYqBOnvaj}L4{9J{l>EV3ozGhgH><1w2y5p-sPPE)3Y z4CB)YI^?x7!7qE94=;9iwvQMcxG`HGkNj8|L`hC-o5>px_jyljA;}AC1spnXQ}|35GM5eg^BBJ1z+x$BgV{|R--3Ed_j7*n>{j{N zBd?U#UfC*dzo{*!TNg>iE?pnuj-p(fp*uZ5HzBKc6wMgHZK9|Dzjlq6>J0=fXF|6EY)gZ4CHS7;=Lz!k`BqG{DC2K|6*Amidil zQ{Pc!!q2xj-+3D+d)=N@{K0)sl_%~$UT*m4RT`X8v3%x0l|@C_1d(SKz0#@pzWxHn zARmklISQfi1LUZICju8Kr#5af&0nQ=dD0i8%Y?mgv(y7~NX(br7W%Bf1|pH;wh9WO z>L0`hB8J@a_4nn32+y`FiSo;$hsEN0dimL~%q5cpH3Sb!jykWVQ=(_LSF{~Lzs)n+ zCULSHxOTOC;QGDg55D=i^2INHxLkf!9rRnrr9}xH_Ux+_OezEOhfpjywiw!tVnx|v z6E=37VO#*3ux%&}dSNokaZFC&5JG&4W(*Eb3(xYvw?|7K_?9oy?L=|P#*jnkynQ_l zeWb4pFLtFx3boZ1XiwC<`BpA~tV(h*#E0xnsPt7ROoz#AfeC-XqmiB8rp^nVi5&_| zbu?1}I}|lT9_860s!terQCUyPn35UtmgQ^ZRjLFEnnKs~4 zJT2`QUBFt}kUbW{1AXQRIhj7=Gn{y)54sG?@yr{vgb{D$P4Q+r@v^w$eGk{&+D{2U zU&v%J4*K8x5}S+*nq|Z2%cHN3bju(3fRE9&G(kHrL{649CZmOA`Yd}9-6DLJMLg3_ z>1^p*8T0ruZ%a3(J7@wIVXJdTX)FJF-Lys^XEi5e5!D~#d0RJlUV7nldFsix%2SUW zD{Cv4=n)PcBlF3iFLKCF!$lc0A(ub-HP>3k_&j#D!h})s!7)K(e8qfV4IdY5bCb_y zyr-8F?k%_7es#I!!_&ln(ygj0NhCtM^WXhK$mi};`$qY3^g8%FUPr*%hBrN5>X0KUg^ zrJs4i8osQT<0 z!9(aedO>(Ba&S<^`59U00|%hOdjl#Ac{&t0M@>7lJ6o%9(NcS$HsIc`kUFyp1_h)LZaFv#qz(u=2I8H*WDAAGStpZ)?Fp-&8#I z{`=+dn}^H4{GWffeEsWREFZjHt5AC8S}(8^4KGf@)0C*IWnpojm)U{{-S|XL7o5Ye zryas0HJ-=7E)GL}D<|Mc$ni`U@C?fuTX@iCnjCNG1K09JdTgQy&y*aOhcDGSkqep^ zhASGFgaaV!Nd=>_pi$r}^Q^qHnyEX`dRCDE8P7Sa$(K01Zi(n85HCYw>pXNk&S;_# z3-Q?DVtPzXw_pTxx_avIn3!ky$0;YF%jz1Xo6KylF3KE;k*EBDOJm!``CgRYY|ny% z>GBgi$X>wH=V}LaB&IRBo&GHJ9OGGj%8r#MdIBFIKHE(=8lBLBxs|WOw{j|d?GA?6Fpw~QP)L~Nz1kUfVxv5aO{YOw z8gM9{lnt<%0w3^}uEhu4 zG9j|~P048Ct?tmVh;9*nN)GTTo#0xzz~Y$42Tky{bOE1|6Zi;Q{@|MzhHo;i;``>S zy4dl?Z~VNvwY>#(L&GN~i;q0~cDetDZ)%Z#zvwQO|Ji7lOxU=rdo)N&;dea3aD4xX z(&({wOIuT!B<@<*mQ*opZ)oDVeM+)UYRl zFrGv1@NnC)t_jbw^vVU0Ni~0R{5m$2KFattGQT)22gI*kBYQ z%5>0p?!BWAo-TygGT1>pVsctZ4NXcK<(QmA(?zT7j=YNm#Uj16GZ48`20emiOD_8i->I(Z8!UDH_8QpL=UB?_k2I0KCPU*=4f`5!QaL{Lbz$47^#^^FEXj|Br zte_=q=>ymDMf!qI6iuP(f-2Oii3MJrSZ9CKvt259@IwDg6tRab%lHyows0*5)rQw~ zgssXOXU^(HT!+icFaNq6e)nYAy-T0ojUUMTG? zbLpZvkYxFQ4|x@nXkFrf14=uBJg@ZV~c6;c52*kR;$nxcR!@h38D$@YdH4E1D#Jl^Kb({1^C zrjoi&Y;Ut-HE*rVju`860apZNW!DsCfIp`}8$a4~^TSisK6rz>?}pO75Di*wEMrCr zPkRnNuPxKoKl7-hXtuUaX@GvZTy^!Ha?OE#<jfV1!Y#G~`WsKlQ%njGKq_ns)9z5BZIiBB9*`_N`r%_rB^B;>4Kf}(4&-JJ~CD2)Tz*3OkL zQ_U%ULF5p?MpD61h7tDE9*c4h_#(QXZ|T}}$P4;NkA+jbLAyxC7(UC)abyO4grNtz zmNsy~H-%R{3#F200A`C5iof=1DL;Ma`SQ~TpD90o>V@*kp;LOf&1I6M*X7z|v5L1E z^J;TQdgz8STZClXwnhWk3y*2Ba0~eL+Zn&a+{Tm-IcYonSy6`dq zpfGedlFlW>QAdEY*e(u~T2a{1gQVLWKRP?d(bCoCZ%EkkxAar^fJd06W*OjfdWsJC zn5=p9fou6fXR9~pT6oCua9H=jxc#^lLiBB^#O08|I1UOo&Gu`T$(@8FO?(}G|ZZp@}8iLpG)_-3V&?jBElh_TAe zAq9vC%DS)9Vf~pgNpBll2z(<%!0)%qP&_#F|;t%>a!`!y8v4${L9r$%Od6<$P#GO*A)rnnx6_)Uw3hFq) zt66TdWVmjbV-5jfYs4@edQGHI)JJPWn@;LIO8I2qOj<|@8JAPb*fb+Wzv{=HQ`H57 zU*3SaqRv8X9Gh*?h{<6$LFDd6v~B3=m*7FGX*RiHb$Rw3=?y)Pb*${&zfrz$?=2b- z-&C%;W?$L2Z(aQn3tOw|lepW%CkWimsM~03IW0xqF(}s#iV1E@gnN8_V@K z6nn7^&nj+hoe`b*c}`N=^HIH9AoK->_Sz)^C5nMC2z!jjmM!m~i?Ef~rbAEA zM|v!r;tkqGGN$k$H^Nq4%LiRc8$5(TKSr~1cFWzOF60~E@nd{0qv#d8PnW;=^KX|Q z{>?k(*1JBa%4Vg0UAMRO5p`Amnm(w`>+6vax2?Szy(+^ntM*#E1UNSTgBnM31rzO@ z!5I<&?7X8oQV2j#NDEkIH=Rkb;f91!aM^AOb?CCgEJdMHIG8Y$m<*7dd<;`A(*+3Q zRb@$ddfFOOV6obmto*51ad587HMBJyvc85e4f7&;V}Q<&jy3?uoS{LW%LT_QTeJk=?h?xRi+W&?jt{aGgED|~YeJ5_7#f<)YEriKbScn?xR>z`Wp2lnwPE;Mj5 zQRG<11r)NK`Ou*^%6<3!q}=!Ir{x3t%Bkaeh3;7%;ODK)c|eGL;xhl(mLKUp_c}Uw z*%GUsK5!=V2_FMVA541taNkCTKMTu+nSrPR@z@r9+m>I;0dP7@#yF}{xt1yrGbPp; z#@NVzf5@f^pj}{(^E<_u6eF)Z=984W{v2Kry@CZXG>AJZtsJgncs6egp%Tj&{O?6!Bf->kv%=A#uNn1ZS9QdL`PP~J~a-sZ;`sbj3KAA=e3 z$SM4!MTLwpe2WVj;QS&TGJ`(SV`0lPMza&xBApjn-%e}`+IcpHeVHa;!JorSm*G2! z`wbUby8blCL7%k|xtjH%ylh6-tM!##MH_LnW6M96@%UqJl%M_d4f*IL+6uZ)eyw&O z8Ee`y&18`A{I>44udi{<)C+207Tlly(6~#F3(@G<<-<5@OL%sOt*`3(N_zmYKu*6? z+t}VdF5Y8$nax_c;fDR?lXo2~ANi=pYHAjzHO^a8!&(!)HH+G?v6*eO+nRmaOP(0l z>7X4~5=;B30+m;9SruxHK9QY6w5^-5dTeQ0HDf$M)AG)vg(v7E%=7_+F5nRYizCwk z%QP)6c*eru>n4gUgtL{4ReCCd!S+*69WHl>;N<9dV-u|1TH&h7-p2v3y+{*NazG6vU4^ucZbKr zrYJDz!9*T|Jn*D5F2jR1ht_aRVunt{t$1=FP}Z5&(@|dbI%So=XD=*=9y(|2Lx)pG zK_B6eewGdhG2fSc%%$&>nZ;cX2yN7iI?M?;U=>yr->$|INR=t925`kl8PFd<_33btZD zlf$)LzG%TB#0C#`NSRM85sdDtz?Ldfo53huAhiidH24^KkzAWp;(V1~F*_WsC^9N+ zEHHfuA!6(uu%t9%tuTy$(lSUDkmE_FfyH35;U`YA&tHgX>v?DhyvQ}>M06w>4lubj zIvLPc40Ry~au0PLs_7&Rb$8%4f}JK}C}&b`TMx*Kaz~}*8=zTOZ6yx^=w#Q7ibJm- z6QAdj%Zowu?ZPt>+1J|Pncrb4GGH*^f($TR@vW*fo+gtW&P44RYy zr9uyqTm{O4Ox6TBtTPA5#5aQnV3JKXG1Pmx6Lnp-T~w3AReQ^$ppdbEqlqHllVhUD zb;&1p>QneEfZ8$F6#5m)hW>)4&4T5sJ~YmE<5t#=>!oXJ<))i2E%$!q!{zqdFIFGo z*Cw=kMxB4u^adDpkio-tkTJt}@V4{;hZB_P$wB9Ux zQGCkA)~29q;jR3jYvDUdn-0|}V<-kijDMJ9nSYy)YtkiwtE-yu;g0$pez)iisPC5t ze{!gtKDoDSoW59NDLJkDe@)NVa_9Zb8GZ6XcNur>+9z4NbS-3JsB5V3XLVQJ7EvXC zZEd%;3nq%IT4Z6OXl+f4{;QfSuB@I`3p}nbC7do_`A0XDyFPnG*}IQ%-=<9%*EBYh znA%jNTefrUWt_+)l%JUm%3`7wgYl3Cd4Z3%UZ(1?rORea@dORL!4K^+^za4`sGRHty+!G0dFS<&vj5Wk zwhF(xP6e~tz$o1<_VL$gp#smZG-{C_}cwp4>69}zl^GkSdRZ2m4#zhb+smyq}>?Ok8E zvV8oLH9%tFomc5uGhKj1yS=@kpE@EsHl9;6Yq5(T9i@nnNhhSv%Y9J*%ajii z21YNDh%#J)bdsd=l?jRqp<_by40xxugl$uNEj;M0(7igU!zEMVc9%J!h^*DXL0kv* zWl^iRTE8BrPhr~&hxsKs^uyP5Z7C; zUtkN5ZgORrltd1XXWqy^rPm#bM!ww^FxW#7936ENaZRSH!E{Mf8CjLtA=Mj2xV}&xbTKyg)~YuPMr-if$JKdOW-DVhs49;>go#LTtuoSkNQ^P*|TTtB{t-N zMOUtgeAAdvEy#3enO-4pMCBWc$2Gw`UOuf!;+-EqSg!rRZu`z6cNS@8I#aP`GxH3N zX!W?N#|0G5yMTarevIJ)p2q5CtRBbc!i+Kcz!A2*=Stto2^~}Ng1*HEJox8@!Rs%x zQKeWXsgTNw3Vi$Rv*r2c-Ykzk{9L*3yHA&=A30gB{=lWW+oRQl-MnbxOgViPJn`W2ZZghfTblLq)qp%P!l<7%PcMOoW7S#VdnzRZ)P=k z)$0X4l>ub*GCei}XbI+~vrSf+qPA>yc{RgSA4B_xLfwYWNh~?fF7g+78Pa*V0Yf7f zX6#W%1VXrubTT&{M}z zuboZi4pcVBoRCVQPAi$MyC{Kd{Dy|YAOGmk`jj2Bi%sG(xm0-X}Y@&_B>2+uS_3oNo|z+*6TI6yY>o&0-~xmKhcSYFTv|5XkHq5$o)Z zjXV*C{lOCX?qmjn{F=fD9Wldi<>K0c)oVQ_i9m%n5|?GJ9K?=w63cXzC8Ef#>#Xp^ z=g}#6pI7*iWt7qpVJ9l->R=<0Ht!t??a=;Rwrdl%wo|(c=vvjD*~#QT_zlNmHncL5 zB4Fz|*AlkYG1+J0$aYh9uP{m6rPpw8>RI}Y&G)r^?p@tYJX8LoKlph0%x5kumtU!k z?b_jPyXAP6tIs*=79PDn3`xU>hS1qm@VE2D63O$(y;y1*H66#+jYpKaMOl~oSxy=+rSU&F|tE1pDj;4@ml%$V@G8B zKJm$UdA!G(13PWFR$ipA-qmA)q@32IQCqILh=kZ z)sE@C6T0($%f52^9S6&YZlo>o;yD>qUsT8&%vV|Xud`expDf_oA)BmtDPj~5)IUpH zz|&Oy?4%xB+A;I8o<;PT7Fj{x!b4BsBOPJTxA=eu-Mlb(S2p!|3_Qv^JPmtlCrTZi zR>dBDpIg_5%D?%)epr6=SMQdaKXG|oabTrQ6-zzpPL2)8%z=E+gaRr%jPiCRVz2jU z+fdA5a#Lu)=Cnu_Uvv&*UI!z?lv4HsGDHwu-sJ^b78jVP*ep`AT? z{aL2O4Rp@(4I#Z0?CWu6d57#GJ%Po5Tdq;7qn<0diR({>_d2cwmDgC|HQ!K zMz zrp`huTzbai%$fH^a;*H*KmL6A(!HP48&LO_OD^>lTic$X&Wf$HY!_leXtvpe(aVIp ziRNpviM-mxoz*KH;e(c_r$M=9M5Q0&X~@nwIZro2FSPCpt*@2W+sg%{7E6TY4v~lu znutf}e9li>f{}|;^_NP9k3qv$_YeV$70XwDUG!3$XUh-odtPsSJEd*S+uBaEM^dy! zMq6um4r5yrMmjw6LA%Ov5u~q@(1EQe0^mLil0OmZj4{w-1bv{l6QhxDbIBY#oPP}C zFvB-!G;#F0yKFlGTo5^-({@;o1POAYz6_>QwA+BsYUqW9oDO1T6sbPn7VA$z(3Q+k zjtBuLh~`+>McP1kFg;*9S=I&BGuKb@qKL0js%&4qVVih>TpuFtxO`RLtH^YD-iF;`x|`t)0DH zKF#1zUGq#^>)~x*08sFT6Z-W*4nh%X4kI4(>8Tb_-ecCBw!HC zWRX1E^X+ygkvkdB7a=h4nFd%sGA{FFn%`FZH>E%4G4iq#U70`PJK+zVI}M{< zG7e%fTtgoDEPlxKvTrA}NOsZSo7^nqPTpJkT*jk6JyIV0@#|W6-y^sdPi?TTn?CD% zGzRmR+-$2Iu~5P!lFya#LZ~yE;UV81>(O0A6Kw6xbI@IXM057+NdZr2=i#YxK%dLF z`<|Q29e3>2c2u^Y!m0_bCY01Qg?Lpt-1K!flOLr4Rd*_2{+=N`Wt#b@ovNJ%cc%r+ z#RekcK*_iMm99X;WL_hJF@QBB2)V)AqjplsVFx-oHAu&>(W8ZvPWCD3r2%uuZ1FA_ zX!sJI#D&}!rkLolP1N!J49I3VapJvl^5l{7<*(kNz3q3FPu+D>x%rlh%bvR3p6wBQ zQ;${OUE1&CmiYzV%L{=+-RPgnYTJ06voD+JG78Fb52tizi5F7;B7Hm6)ym8Kou5$` zR8n_@pL7640yZS>WJrL$*^R38=GE1wrNw3!OkH&NwA1_g2JACWpVY$Ei{;5DpD(|B z=CGcT;8{hjlxnib#gSD_Rz~ePS;^%i!uG5ow%DLDY(gpCPA2MPQO@LPXz(pU28j$f z6_~TJjyrzjavGy>Jo-3t`*PS2?^NB{%od&52sGq$6bAG5Fb|jMmx(7?3?7YvbtLSNH5Eub?z+g9tw}WII^2maSijGRoKEG zt;5D!5bN5gSBaG4dOYLjPo6E0KJ=ObNqQAg~JBhn?>k$n-Z^+Bom^`vD&m?sB z9x-YWgy;ADI?EeX>mn<%Ijrq@8+2FRkoJ?Z>8K`$C(FIR^WpO8PhZ)+0oCt->ah9IBq7`guYqe@AaDZVhLsK4`(woKihkDib}B_r@{9)iBb z2fU@9mtNV{cND4XvzqDCsd~SwN)wO)mFld#`bsHJKK712nej~d$&a2WuO2#C4qkVO zXxOTOqf*gym{ckgM>=Gj)g3_RY6C+>7!*{B?m6!RcgV|#gC^Cn8UBML<#T!H&$AyE#zo)2GO*xL&zk!X8iy|^kpV9?U zZ*2a>v!~17|J@JD_x|pM@_`$!l2lC+H`ndAy{(7lbx~aBZAs!`qR7iE29re>t+V9X zNW4xI%|2|zHhhdwj$QNNP8WF)xH)n;H7K)1+WI1p=wZ7KxgOfNKe;%wRY3n2%m}Kg z*}kKaSY%Y&)FtIwJ{r_=x!l;4HcognhzW zDVtCy?%T4bv%Xfui~?+z|6@!3IUm=5@>dnRdWi^H&-YM2v>dH1y$r`kDLB2AKX*Fx zW48bcJceO4i9EZwE>64U87#KdG0C&VD0uXun;3+%khEJ5${#y=L<81$%kO>T#`4+E zUt11*pxB#Ec{ULxE}K4J_J}%~#dzMw;LE~7c3*zWaynh`?~JRbK3Ba+SXTFxj%E3K zYv;$N^vvU0WJAbYL^n^z5GNm#iL4`*`6=j?Xt>jY=C z1@*O8OL^|uEqj*#m(Lz97himtu7i5pjGj;AO{kmDB?`=iWbUk*x8o}A% z4c%DicELw;i-rHqjrS$zXt_g+E4ST#eYxr8m2%BB;B_t6TUOV!#Z_u_P4>HqY(-`9 z#hN~F-3IkLjLa#x(I8yvOVGU2<9zBO>T^oxJlVlJk7i76@U^&*Glg&I+jQ`^@Of!_ z>nY{WfXTLFsKUa@Rr7UM_$6Z@;5`&Tp&3yh7W!e4@y0WA+!X z)NLDn$B5?vs>(T+!ubVa0KIUDsyhTyCiUO+QrP^=EalI#*coZY zna?|aH9l-cHb^l3jAZCNxmf=qA=b^-ws!i{Vy5%O_XG<~J$6aT8 z_CpgzbrrUCRA3#fg!#%YTN2jwy5^%tj;RAYQ~u%Y>kG`c_|Gv zg*La_I!ASCcJZetsz)@AwsE!TpbNg=MEKj*+3IWaw9`Dd@-n}-gRCLyC&T)9)MY?o zTe8)oSgA*jtxaB|?Gr_>Tk4;FOFy|47b#qUXCV$9D&^bXdc1u9dp{R^O_N7a>Kjtq z+uT{yHXE&?uGq_u1lK@OPbmpkCyO@u3!8=4Vi=1X-q)a!pW}ImA0M_fU~p}Q0M{dz zQ^0cA;@fg|-93ldWO{)qVrEqUrkJgjUUv0)=wq36$t8$bc&4uNCXirWJd621Ji0&hTGX$#$WOj@d+NG29&>dm$R}$(t z>UlKJW=dyFbX&S(zAc~T4!JIG<8{GLV3vmsmU9gD4XJocEkCv;i*;Q`% z(53pm;=%IakNR`HOb(e>aAoJNJiPFA6Gdf|`2;j(qCE49vq(k?r0qW9Q=Oj z$ht`8l^{zFV3jh<9m975M5>61hLSBW=<2D@h_zf>LQjbO^1d+|G+IB@jhr>bw zD@VLBi){xh<%IS~aB=>_|K#K4^Y?tBeC*Z_=-WK%e6+PtJ5NoVU7!&yZQe=p@&Rp& zP;X=3<&i)7WI{ysh`JhFH-;9Q{aPd@R(T@h9=`L-u1?SlCY#@nwPP;S)sxtY0Iv7MDqa)IxVH zW$bvR$wR0^_+B1q= zFT}?il5NY|mR{na-`cLta`l1TdKt&1`@4P;Ze%Ue+v*ED#`ppkJYzKATDqX$NyuV*ObFM^ z0X;A1*P8qo-pT6L+A6R&?&7+U#+W63~wF76j?lkIpxXqhRd4}J22drwQ zhez{S3_`YJ`*VV>$AI|0^o8fMh)X|a-zL^LZd>13XP4Oe`ss4zl`G|*FI}&J!D*M=d#g_CY&&Z8ZpACtKg zSk~9tvPe$wu4t9Oo`t7se6Kxgqbl42g(-u@JK1OocGI@#oWcmOpGt6xkISP(DU)r>uIhfGhhv>n6+J_CN*&gza?8gqFSp)yon9XBX}vt) z3VV3~TTtojtdGRSbZlw%$mEb!FJ5xv^1ai zlkxM{%Mb2*u>4dH@LzG&mGZIu8W8SP-=-B*Jy_4e0-wjgZ+#0YlSRK!xt-xZ+yRlp zF~G-D-OUw4VN5L1EgU4x0l9f_|o# z7j(%svGmYci@JPwnQ+MXe+N~q85l@ z+X4=w1s|46$Z~=~UI#Lqj(RqK4tdo!BMth5b5Q7LLotgWpoogL;_$$DNcjxQNbsbq zn&KeA?ON32)@a0r92-o!fhZpGA-C!a65}1w7kbIaFgI?u8!1Lxpn;lv_?Uy2c=$w- zz8-oMs4dwWP-|$DMy@})3hDL+i;X;cWsgK?pn6u{gyZFEYwIVvI%R6cTR zDc62bgJ$hm*X9OHGyagTWOoe9v;z+!UA+vTJ5RK_E|lDzTe3Vy*u2Qrpj%$@V#-B2 zTM4ZVEq}(hxGXEvW%y3wjGMSFGS*>2NcR*vtz}sI3W>BoZ-Xp~a<_c9?)071yJnt$ zZd=bQzEOU4=vaCERXvZmqBqTGmyJ1eot$xl$L9ckom>mqQfiYz$+m+=WXc^*(uQ5u z?6&kylVf@xz)3CoAJjPRpe_1eQYVXAo3$N4+(~45z^BmsdaCwp*L&JD!ueHwrgZ10 zDE}z0F$wcl#+B1Y$(vt*i+*)xm4t0S49d@^_s zu!}+i!#~X3m+_O9*F>AtfvGjTyRsA$dFQ1U7Q2J`h-8k78l@q$mw4e_=tL!e1 z(qQtam}=A@?*<1G*h>PI=>t9$ zw(^$cZ~2hl^Ljb?-IdsKqI$%MbaY#7j0e8DOTnBIhwuw0YY;Zq6Xf~lO8Kk5ysv!g zub(TIU9rDxZCtGS&_l1G^ zS3Kvt!voCa*6>uZ!P;SKyX(@GE(hMHXNagXLlW9q5crC7p9UC+EU#KFRPXzVPBQR+ z6BW8DyP03}FqD{6ST)q$>p?cOoO+!`FS#D}_W2@6$nNR;_8GVuiUb*0Z_pOY)!H_vZo@t$hm|ISNS`-S9KF4s9y?E# z>lkr@h3w#ubdUr*(%=IYA-I+==zkkw=+5?x=?%ITw}`K$KiBk_{#JL;wD2jNK|h6` z2S*1#+byMfwZ&9jAN|@G?N0tk)Y^sjEnGsk_53Z{J9$=-FBu$qxs*p9eyKe6@H^Uq zdWjZE^g`YL`g-}ZKmE2=>R&5+_iH6WgRb5BsE}8#zOSff(Ka>ccYb*gj=RjE zjE<3-yPvC%NT5lrg1K-hgUeWBG)5`<2rYbCXfT77Jihftf ze2izp#K4^*78)3*(^>e-1-8puufL<0*c>bW-T(M|<#&GPi{<(oR{e7s>dT@;(C347 z4fE^d(>fWgxG}+C<;%*9f^Uv_jfIBQHm-(!ZW7rce@f0gc<|0uG6&i6Pw5H~Eq%bJ z!dBiaf7DQ4?p_6bI%HcFS&h=kaY2(K=vdc9hHI21h48z>){LxdqmObQroI>)uF8jW zp{W<2H(xL1M?ZX_-2dZWXyx=h`P5mvC~{YERa@rq4clU`yMlH-w7Utcuo}uwlBwRY zi<_x701e+0s`E%Oc3JEq5ZKX{Tfi?=i2PwWyZ`s{g~z~I(<}>CmX)}rYty|HrG%;pFay(0S_%L6ApW>lzrg6qCTL%4Kr8hq8ulS08P(CCaP7JLLS>W3$diXb zMA+-gP&W!Y$7nEEziv@S?OzMqOcELF`Xo_|kkxIbtE+0;nlRd(NSjFN9Sa(#Ft~+_ zZF8%u3|3E;{dz9(z_qL8-miSDeBzV4?DhUzrK2FW5>-;AAF}gc>gQf#l@o-dcoWJMOrW7c}0AMyOumc zM$2#>>*36gVxq`(Q*B1Gy|_O6!i!#3Bi>!SFitOw(tXUbXOCV~c+G10!WTZG$)esA zpvy1UcCOX5r>!kLPpRLUo(;C~AZ^*~R$y&dp&jFGF0fN!lzWst@}dFVNLFRSpyC|nJk!5?RB6{4;*0(*<@iSz9MmUX{%z% zqh+)aIg^CG>al1OKyxn4(A z1NC14)Fai#_7^6FeHDsG@NS!%)w6k~z;s$dY7odp=skTde2pOwcS zJY254<|<7>_uC38viU|714kAzY!IoJTp(ZnI%rM!aQ*4^;V}ROZ#4DJLdtdJcL_)V z=d{SPV_HrCFdk$$qStTm)@(vBHtbiNgh}dW^LO}vWU+6~f5-d7<675`k zk^rUUqLbfpw&|>{>gjkBt`?1PkKrM;Vsn3q!gkVGokRakdb+51#2l;c(GCb(-bhE@ zI}s77iw}{surVoQgxx{gkOjDg8S8PEgWXM8s%&cUxC2<4o?Lv!TKSP2<(nI@qm%wB zUl5b)k`lf~P5caVPdAE}M72Ga3@<+hmkfw$uS!Rm)`{ZEs&8$x{Obu+JFnC?eYHhS3zTQnHE_M*hX+M{OUTU8)zu8f0rPlU zmN8ku-{JyJ2rlD+1wO-DeaocJmmeKr%apz;9gFy;u&MLrZP5T!_&EkU zsjEe_m~eh|J3kYlKf<7Hbw+v-U5gKSQz3G7M{z^->k~yB&Gsd$W924~d53Z1CUmE& zH`UYYuj&=_&m7UqBAzPW`PM__)t63co8VhmC1Cmb(qjQA++GfOl|p~K_-Q#pB;jk%)}qK4sP_-7E?v14Yx6y7&~RU&>dJv zyYg(2o({dn0xdd(vN8xcHSBE5@Sx4&k)flb$434l|0qa@+sME>R)yqPd}x*JKh}96 ztZq-nue2(`Dj9=vo*CJ+2cggCg1oJjr?qm!O;?nE`p5T{d%ke3y_(z>AY6oK=!o!J ze^${x&~CjCHd$so)VV#nvNW=khc?|ZE|KnJPtf*dH$iY7;8yn{T`m10)vdfCzdMV& zMwDrUvywY^4pjJS^(`)j$PZUz(nz)X_LT6+>Y(_RnG*@AO2eYv|k?}zDO6py>?;UU{AdccU9zYN70S&eAY=KgHHXJC>mOtunB!w;b%{Q z;BV%bfJb?fPuD!dxfmeXvC=$CTx~Jo#66uYjJDnBH(Ps2p2I$!VmJclQ>2_C$XSS9{_(4dBg6Z_r4(uPMeohTB=PK93N^cgGwF;S$C0M83P^!8)%*fqlz zh)!#wc(|;rzgNEc``2m9>4(Y(uh-`=E@3e4pJ`&TlRJ;(AQrWh7(H_Rw*=uMExb)n z$q4=yZ+%GeiMS(#+>C4aTD|kq=fj)jMjkRO$EWlx;>$9AQ}LbJHbuX@efYVzv5;ls zYq@rwC<4Rhd%x$Vk1w1sZnC$aD#^2oZ)nHO^UrOSXMTRDJon4@bCQ2dl?Vx$+Ky3Cz7x3U~@d2L-;a|}JTOPo~PF0|?)9ydT)fqBT#1%9!^NRsBwaXS17=XR6 z6^Vx)JXHSG|Mu_7<3B!JZu$6?8hEkPreFP*B7>^#Lef=qn3DlsY3|&CkBVe)CRmrG zn{Rk?GT2kt78J5NyAqv61BX7zwL((F)XR_x24Q73!&BvjPUA2prw`i$PM94Ryy>Jc z$d@U0TZj)Uxy`uia7K7di-`$)s(BWetdI}HRJz`<6L8o{ygw2hWl<4`^ZZ~-yj+G3 zhSefrwFqG=Q{v&9n~eME+!*BY8fR?cuA z(PNgjHh8+D4}no0QMsO>nsX63gMwff%5?%^L0bl$&hjh}d36ywn~uPDqKC2_ZAwg> zc(Q3;{)s4=#jRkGqx~+xDb#@mV*W)z$9L68r zq!(~pUM{;_+Dw=CHQc#b)!-MMIlovlc6fQuVwT~BYY~6OBQwhdH-*ped3wNQnTu$_ zFMG6dTfWxDz%Swpx~XtX?oMQm@n>CG)*{->H$U!mi?_#a8pcli{Fz0MGg-q&HJtLX zy9n@CLCj~FC=%IFQ(%phZ!13VlUK?^54>9T?7md~vR}OZ3_lAYwir@pfJi~NEtIHD z>7JrQNth5@qG2~8lgf47em|@0>86x0M`g0OrLBl7`dr6lm#>xUuislfbNAKdqaX7- z_3*Ar9(@u!%_u(>aQsoWS}G{F9Mtq=K+Bvx3~DC?QI<}F&U|<}fV3Y`i`EvXGhq|I zaP`~>R+93_KGjl$?g(4jfCpcT5BO9FzutPP*PhCGx&o2oF*dSA2)TlPjGB&Ca3+Cz z9udF8$sT|FxLy|V-SYUOztWoqH_EA#I1$e(vISK_5TpZV;)M~!Opx`wQ5jC*tN6Ye z;&hePxTr0cWxY0r!`2<5HTe|)s}7SOLZgPE!eKT?p#qGuJqcQwowqUvF-e!&F*+&; zdaP*(S>g-J18yA24i_z|pfx~MBjTaOLiQ>pJfu6lfr}1?i@&MY3Eh?7fnlFphh1$fAQnb8kkcUo7~vqd zm8z%i*d`*&G}OKxCWOoZxAK>fm3bmQ#h2kh+nJ*x>PxAEDl!gj{R-Jo+64+^Wec77 z5;|>*3Uu-%Xl(1e`4-Pa@O*{(A-ls+%G>%}#xp-ZtY@oVEKfdusJ!^g<9g<3uLg#D z^vt4O4=y!4z~8HrK>p1Zi?|u0Gkg6cJII3P3O9;rO&HHIKd;SlbnEOgK-PhOYEu>ZNz7 z#JI}L(^=E$3`k^epxIc1Vu0~P#e1TaP^-kioFqphE3l?wG7GyO!Y_lNGS@kvYa2 za&s6qE=!+zr{c)u=Q8E%_`H7Z=N<>Z9X}cy3-J6!S`bD`8aHVyEk53Y`mP?&c=VC? z^%CYy?%E{w3NytbdlL=idAqnC*y6HgXj&RTo&iJiUNMsz$z#IuRpx}I+6 zHTASeuFXtSxogPx6)(ALv;5B2K2$#Osl8>t?$&E=DH=0bZCDoT8gDHP<~YcbelkM` zi1>NTF<>zi8mF|Ff!zYPq(>WRqW9(^0Bs#OQSp0y_A-&1k45#|*IVXVKJNORKF5KC zZo(Fq@y;E2iPYi{xq9pAcJ2No03J>%9LlJl+%eF{L7A-Ctw!xRF6HHyPwU%?&zGM) z@@#oPFN}Ei?V=R}Rwe2dRM8{OI%+NLdod#!In;mxVsbj1*gAgGLmC&CflLs&L#fd3 zP{N0dI3&dQvCm;tEJsvM6r@A@vlXgn(G&-cWSK{|fPwK;P$|qN7F%!ZaH zgo`qwy-xBYnOyV?FNz>C$z!KbAgv2&gTLAxg%{wlP(rgYXkAeOFP7T5EdWy)JLMusM%E-{iiBf7*qSF36P0Z{@p8R&B9E zoWSkwrW}$BE3Pf5{b60?z*-qL>Mvm6Eej?a{f-G*BNVPn!w^Rn60j~5hY1GIMLMiU z9PasY-RN(11s+>^?=~t5#pxx`>LzLMe0hE`p>nhomJXdmnu&{^3+v%+bjo&X zTgP0r+tx#_RZBWyCiipT?F*-d@mkTHV2AWbjW;5lc;6+D)}XK&mjF`-hspV)a|Z(ZEAT~3^M zw;VtDdimPdZz^}+b5ptQ#-eYp`kPLjj{$M@NeUMG9N~Fv&QreB@{G|1O@vwW82wK0 zL7QbSk{LV^X5N5Zh%oGk5Sdw5j-RW(EPE$1f)5)mgdIE49kjTe+d*5Yeq52}id=l; z+-9Eu_^TZXz@M$-Y`d$dF*rATj%t16&`Z2`}?l4=|hj-**D$du|LYpc(=-_)9>qBq$kT~KF{;NSC?x);O&fd zsLOYylRCQ~`=YSr&Fn`?{Ak;LgUii=+4FB@AZz1#)m_syrnIsVY4nX|7m6)+glGVo zWvja|2FDvwJ+;0Nev)a318-?tnt6C|S$2-Ma@zDfxh-v*4n6*Pj24^IHuzzeCI`EUQ^_shNae$?K83K^?WbXW}B=_h@nCjQ?MA!6Gk3{HEheSL0|ABb%D-YCpq3KZ0#eRVen@Dj0;(ghc6%(E)0DUdcjAV zBP6f*f-Cn`&|TK{@e6h{|MHh-%isU){pBY=cv1b=iY{7fc1Mxb(-loB**ec_#Qnm8 zEcy->BRr&^VZiAxT%ynN@@1mPHfk=a+~D*B=irFY$BM-_^EjRMf^9{>Aa}MI- zwX&fM&}sFRD5~rpQtg6HfAB`x=6a5}u*ug=iSY&AR<9)^+YT<$5hfurMRKsq#9@zF zZYD-q7(t~mJY?O0e3#K@4}wSqv02}7Ma0EYw?2Syo%8)S^5LPY3R^9|mYL97O{pe@ z739+F4tNMKIM#u18KDnoJ_7Dl(^m>Pb)p^+`8YZ}1rJ*LlL+^U@`SLtyFDN)<^cQxo5WOn#s0>0jtof$K8ini1u z+Hz{?0v}<^-_q|CAM{!NBALOH!^|J>R?Zkr(2j+{A7RjhoCpJcE@3NsSsB5H4Hv?W zW%YJ+8dS(_-ETW!jtFbxXsBpQ^3^*2t^l++wD~J)sqe2OoH${Hy={@5+;pYA}BgC)2hs zZT<4fQB~VSQL7JjAXF7W&D$X%s$lK}_#n^Yy$LZBe1hheo--D2Cp_JF-YLB%BX0E=q$SGs&FIJj}d-DB)nCS^mBpA ze32(3P4t=H^5Pk)3a5f9KswC6mdsQ;jhQT&1N{yC&>=->qh`OTS|+GB|5qq{9n_l` zCWwQHqGo_fZ*84c2X&&HI`w|JN)JDO{SQA~KKr>l%Pk+iqFi%89tN8W@JKCNx4JPf zB|Rs7MGS1|=t7D@^SMZSl~6TRxp8<`UP(I{(~)R|(-e+bL^mw=ah@@nDZS95GwTJ` z%E)+RIUc?#$;-geGfUUnL;Z!%x@~?5v1LiTl&*>k3agPA07*naR4lp>CW`T+@-dZ( z27^%RpCB9fN}rjw{2-k@BLBhHre`^T) z3|pa!iyw^d3Ls_z4Bu&?5PNXtjX(&oWvPJ~hUm(WKJ5b&3F)p2mCop0F_z67II4u& zi?nJ!JewmvY+`x?a@nfzs_2>vGgPzzo>7e2URGask*C15=~+RvgPIM?%M8V!OnP~) zzE1~Vmz4kv!k`}jyM(Y*sIvAwEgAtU-*#jbnMdhI8$YV>dmcFHu+rV zJ9Fr_Lh_8}dNdQ}6ktm`M&Hu3>0x;yVR$UU52^c9tEb1z#-?<%@F|&7aQIspXb<`b zXDwPDGA4g{?%tN2@MPL^)9=1U|AyzsQK2=-1&=W{<7Y5_$Gl_EWzcR6iiYoovX78Q zFF2rn<28-r?|--a^no|^0=O0XWX7&t7im(b8Jr#^QwuU4`WwIX$IEBxT}8osC?`qu zH`eF)c+RiC%mMr{wiPY<@7l$}%&~IyHKly{%X*yX4*y&RqU~BM5i6qChxV#2_X}*c zOxXNE^1X*3@WbW-l!O1wRxoz+0ehN>qTzI!H&KM$etw1}AK53*t!{g1Sym5~dETMT zw2ejjf-lRO7oR6@Wm{WM=~<(!#{}6#PcMn!b-1jiv0ZCjKZalw-!nfyUhezeqk0DD zIlW;}j&^Ey*|+afWsDVioEs;h^5Q^SXk@S@91}&PS*0PBqh2I<=26;wk|>>lHky{l zfQ|uWYU1M2ce5i82bihq7kM5HjiSoK;CTCGqEcRC=Tu7-IyZvP1I# z?$WBz%2Y*rK16K{NSrz<1A0PU7mCMp_q>*uc``dW==R19w`&PqRg>zu-`Xr(og~^S znBpt)9qOB{r(4@6bwNK?_Fl4~?WYII$3Jmn`JJzRQs3j*ua3;0RiuNV-t5kXCaAUo z3}EH}=C$HyCm5e71~c}-*ULk+rE+@Ly z#$>d-SqHKL-@>Q#jKM?37_PO68nAk()#5?l&v0kZE>zT!en+(Z^wn2NdE$u|%MZT) zaC!RiBf4{Ng{0_tMLod3ZT*!uie$>-6!5rM;d3r(UWdsvp!_hG`1l2l;LQ_d@e=-8go$}%e$ z#6{ne4lte=;$2oQ%prb6Km|dEA`f*oxEC`yc9}L&6w2=KiN^03`ly86EPR`d3P2W% zIeY}1xbJlF!6XZir%t_FKKsS1%BMbaQ~Btvd&)s=hud?pIHiW2Q!G|uj=w;QcJ8=p ztjUac*Ukb^L(fkGRC0{IrH%9$Z7XpZnwE!j=orJbuqhn@Ck%NJwlc=xnLpD9ZG;)O z(|G9EDPPc^uMOv{-xfi_iWGL^W&D|mV)RXnpIB_Sf9o53qNsME?KSxJidNZa6HK|- zg8IzQb#46F8|9^!-qs@OX4${*a{2tlqSZKFbW9d)7*xmW-9(Z4ri}{8INgbSyzb>C z9OFIlt*+_0MSU*g{iAQ&=Q6(XwL8iuKY2;H;)+r(R-0qtU(}MpjvZbyg`rAH$HIvs znN5?$=qGHVs623k%491Rp*VDSUmz_N1D##)4a>=8IdunAB>TfT*KHD*u8xM+BAMf1sK}ZyJS3^?amr@EJnKewR%_;_9##Ad#WKg=N2eCmSF%e3Nc?Tz_ zpI11pTeNb}EWLxHWr!H)bvoD~3POV_ui>Txl#!XXo_yel0|k}{c~wpo>ncOYEY}c{ zY>{16qLWy9NZqDPiz#d|N>_N&K&96_DW_KFmCrgtHD*F}I1KWAZ9yG|Iu^bERBzKd zrOx7X`S3?CFaPC#^$k5sa;;4iPw6eZeCLX7sJy-MtU5x!%Y!WBhXo!+$ynV~l*4om z(o|<=;Xsb(p(E`HEOx%9d49P_HoPr=+hMfnRwnpX4zQMQN>2-K<*>0OC zm3J1ks26`@8u{SieO(Ip)$762Ki@2W{%7ARKmPt}+5vHu`Y3HX-QopY{%Id{LTm0z zy<0nQ->^PQersWOfq}yZs=neW3;c=-qC3om?9_n>tYOIs2GoK*TQ{z3q~i%;@1g zanw@`kwR2gewBX)UPT}i68Hy4FaR`^Q(NUNVweotOVk9nXHcsQZz$Y#(H#+euIZ#r6c3j__$MDO z_kQ_{-;W)aR1@JG~6TWyk!&@~ot@*-ZKC2;K-2nMK_XT4>L=2tUg? zA2KCx435oXcDJxG-fYDfzLl|vKI4~(&y&9l|Cr6o@CD7e>6g#c>xp}hqyaLaeizYi zv~Ypr02vcS#Vf73E7z{Nztj1dKIwBAr%E~ePSJCUe9hqL^7NC3HF-OrHnmUfi%Fse zSM`lEv_szk$hDRp4oN8Sv75Ko4r(ac4co!D&z{kX<4$UE=BT!tYT^H52g|Luen30K ziaoE$vx-QwXB4;3sEwk_WueKeWo&3$Nu>!8heD5vTa!h0{kSCOVX_iryw4x4>lGQw|Exz7jDV3W2xGg}v7>s;?gPIl|L6bl*X70MPRhwH*V`=l+yPru;R*Sui$bsAV8VdppvMtv z^_oY}L4mguksTb!>d6<&aeAlg`K+ugS%nddnIpKPT4c>nS024=&sw546;2P-l9jwm zcjeRDVfB^7^cv>H++ei1Y}ZElBQLBTlQ8OF5<=M_r7w2}cv@1s3@Ks>IvN_Obk>1- zbV#df+ONKPy8Pyg3a^x=|L6#0OFGQ+vWN6U19D61ofp-vBS8PE{yw=}U2eEpWuNc()g9}Vw)=W<0n^m22kr5cf-;#@g%17iSV4m)r zQ(*ZVNwdqT0xK(mt*eKg-mL8K!D$}s&g`HNQH3t{a1mC1s~7kI`H6Eq44BdZClpS6 zsyaUux=7D!TP7fp+tF9HDBsTJPPyxbEL0%BqXS{I9fJdc7(un1i5S*NZY{$u^a3!RnR4wUxjkMt9kBK@k~%cECzy%V z5}KqBS8PHa9-F;`x{L&74EPZW7hILe7O$^og_rli04M}u2U63=SDx?N6d>-ko> z;;Oas<*(gbKJ&SY%BA`o26qwJsgifL`XV`#OTRmb?CG)sJ9}VT)Nj;zgtOGxT{Bvd znYP6Rf2Il8GU1fGF*rJ=^aOm2Z_JJ{x{%S*kI}X?i_%lF7x4xDd~G;4{pQ7H!q6k= zVt9^EgYXzro7;;jCW`gW7`|$oK7_Knb_#7OB{+W07@ikYzWVE;@1y^^Jn`5Y61iWn zi&WRV@QsV78bvfF%?J3Tg%o*nq!X%RHxWf~DJBI(rrGbPim-@`Xgyb@@u;5kv-&9vO8@Sp_c&Rws{{6LcG}M z|A|Scy5Q@4N?M2N;{Z63=4X#tvYxU(oLk*yY2)#o>d5p+%;|YH&ckVyGm2Pk*%Bc(X{W_*^@!bA5mVXLF%3E3^3r7iEQCOQ`|wuIsr^i%XByqtm^5YPScv~89D@eiLa zFFt!(FX7T#P<2Nlo_q3b?(UQIQivx@9`YlN z&Wlr<4Ckr>D%?eJ?(IWv)nbUjspsqK5f7+vcL3ush!G8PK9J_dn8MxwQRIAOKgjT! z5!YpUd)u;-t{+7%h_I1zt-0>(ulX=NqH~G8+*}X64$<`_J$T2lMREd97z!1~O8r|o zQPdUX`KG^fLwpB{^D?31r8Xvpa!@B=i$5A3uj*Q|v3XQ4vwE+5-Hh)n9P)gn=yw@@eZX%llWiA#8LyY|eG*&>lxD@)dLuX4+-qA*ZFi(DGXO z7b4x-*yg3hw>n$;7C$e&NcKElaOb0Yk?d(a&R?;F;dV?8HBpR-ju9E1oY%Hma+8K@ znES9z6czUuG%;zzm$mRAKgY+p3HSC}+JgG@F>OPAQ`=8Z>uuqT`PC@+E;0UXjX*-A z+rE8>a1I({H&JvD=h!-G?MJ5YA~^2$affl&x?ZMp=9s>epz++7ZY+1)ak0H=c#jtT zv6`3P@Io8AYhZeTh8`YAn>{T1F-h#u!Q<@knYc~>3r%YDDg^#KAL!y22a;WSKz0&l zzuBn|2Ja%ipxcRELAy|POccEWtV^!EeW5TAVnvP8WlNvY>Wt&zV64=0y!`T64ZeO+ z9{K6d%lE(gOgV9MSGi1g7P;+vRxgUM!zxD}slmTb79H%fc#x8B4yOT^WK*HMt;t_| zk4@M?sKWwy>aV+E!e|s1_>_g_vdU^i6J%t-j%-gLgD0hfJWwfYQO2cHTto?trqfxO zA#9nG++j4?5{RnEF*yIuuu&v54 zSfvmn4bsU5#1ht~d-=bOSacL!9W1Fd_<|h%_yx@JY`tqhQe9V2$l0m>UZTfBP75cU zWoNoBj_vB0=&zV0^1Ve4?h-_upVl@T-t_jAw%7daUq4VDf9PG^Nw`Ej8dx&8WLpc4 zWIh8w-qicD2?Sz3O3W}`Vj z$iy0j_PS%{2h8w7ag=xg*LKc8Y@A-U46e7y#i~%VccQ`^?RagB zBoZ6H3ui-mXe5H2fp6)%!_PnezTSZPT6y_})B5JH-t4rZXZWoR)|)=M_W6=1S4Ixb z`k8KrIN0&=X%4$lAOz3*uBjayJAS0>*>j?N>aGJC&mAn+>7`OvTq(R=Mrk8Vgw@{c zKrV=SjgF4bkzN8;3_8Ue!Eoa7;<0v(nP#D#K-7t%h^&0;{G-ng@(@&on9Su*WB#%e zKMejwJVCd-Wkbq&@^wdXqm}{{pwfsk$%R6%se=^=?kqxQ11iBm;b;`_sgu4U@uMF- zQvTQfT$re_KIJCIBV zIBKPu&DiJkhN`D(b_QL5IJ%|}E=BH*PUD47KK*c;=E)GQCl5Aq+rv>&^_ZkAE_laa zowRw8p3!uQ)N~n(#CE$xZe+&p6! z>UC`kWWj(H;rEWbuea3gE&uGl_``Dd-8YuY)wyW*U@CgLHIBYOyvuSOU5D%H29%Yt zV#JT_FetQaNQB9zGEKatL?0pKhDg$vkLL27CnwWo=~M7|vNAt$Xfr)BTe%qzPvBcP zxN|*1X7IPN10NxD3>a+(gzCe#l2R?Ij!n5AuLEZQ$c5+^&zABx|L(!^@cpj}eYTuF zC3;pPcvg{H)YhlKTz`X$ApRf}f+;J)RR6>cojM_h7!<}O56T_V;EQmYJ(tBCs<1H0 z_Gq=dVQuqQ(fEb_qF$UzHu`@fqlMSJSP{}XN$U(*Dz`=m#jV3mhJx03;pxGOR{1qZ zsKB(ME4y3bnSdG2DkO8r5Omv{sey~k{eXni`?qpDizj15%(w7gEEA=@HyOXHqA8X3s zB6+_EB`fJjCXOig79I5;_(%s`z#}~swtPW%F8s^#gpMiQfnOB1`ljS9OSed0#`=v#kNJhXGq8}o!-C-z&W z2ssP|R1rfO)ROc~eg6cqohZVL0Vbp}5@bOMyhL=Y-Y>K-j_EL~&2eUpoTAT^VdKj7 zSxpqJz=vLA1A9|YOI5*^9%tOx;H^ars8o(PyfyL%5%@Y zE1os|c57h9US}v&*yiAJ@~+^;Y`4lizfdtMZe3Nw*Hn--JP>oZ(B%}5S) ziDq7u#_8snB9VqJGhmiAY_>WPjq1hiWI!b(caha7O{f(Db%yNtDQbr<>_YL|*4vUc zHCg2O6MO5N&D6Ha8^1nWF4M*RkN(LQ^-`NpmXCaFZ#kf67ZFu&ek&Tj;@Rl*$luM> z&fd`Kp`9_w4v4D###Ot?s6>+y_B)feOZ?LnK$_d?G7YpU9|R!}V91CtaFLEM3xI~- z6fVmR+Te$$<@^7bd(&r4j_b@XdqZ~vXzU35_HVXGY5`619*Z32_5KVh0G21VHRtH+sFdyZ!v0lP4>y z-l}`w+i22L_r8^xXV1)&S(#Z`RjIS5AwGpC{#?Rd=bYTcr)OG+iv2WBppd@Gw#%2e ztGJ=jptrrKi+SnAQojGa*Y$f&cNc$BUVG`Jo|#~q%|7`K6UOw<45`TKJ1sL&$5vLO z1oi~VEa@C4)gX!4HjF$bUxv$UStiRAV6ZJ^5mu`e9pI}H+$U79>2Pk2EQUzwY(Y&! z16R1ymB(^2p7OAwiXM2S#&kiPZOShzF>%KrlG;*7MPAkPA{9?)@<%u-2S7>IaZ}dQ ziDHnZ42TuSKJjPWI9cWOex3MG5i(Ze6(S)Pfp|a&og67U>nbRcF2kN_8MZ2ZsH47K zuqJ4cg@wJ$n(0pEIL~AQ`pP5n;Hb4RfHn9OMrq!5N*&k+h@sJ9QQYZAfL?u}i^*P% zSK>6fnZZ03WXMZ`smQ%*v$Wz~dEZ;elc3`2MGs1Nc)Tq;w zQ z^Imw?&r3QpWh*}km#M0i&^JJfUi3#V5MIP}N)Ok+ifW7c z+Jfc8@Ys%=P$X4%PaIYYskN+yOZ)%W@K#hvO|qQ`u2X&>SIL=i#?g;MKEmWkq~RsmRD z+p7v^MUNkM7a7!3btkl~>+wh5Dqs8RW93o3hW_a%U(o}x>WI}7pK;|PoI6Y1M6p#m z5_nq^J$2S5Tgag2A#^#LCki-Sm?wZD@bQCZsLV+pT%92C>hh}!F|8coFwkyIH!$|X zGM>7i>f>`VlLy*94l7NBkdqFfeZhhZm@;CH%GPW*E*Kg&fejF5X?P zyZ(yu;g8-}zWD3+>HAmm8;S8m5xXQKCyT^FUxY5BmN$sw7=dgOkgz8^mZS}NpnKU$ ziY1<>9Vn--3R$^^Ud(( z@EbbO(8$>&3Ijyt1N6UomE+2tdR4m$_R zKGymK=dZV;k0*zToa=VI_TXCd(FnZ&x^ z+}9Ez_UNsP8yiP8@O{19`>8|a-urLV=aw!m@2{W3$OT4(cx zQtCx=>z~U@=7GT1s^_}pLvV5NMCFQyBFYzqF*VVm5m$ok9r+Sy@QqE4o zsq885cDlCXpUOLbX*p$%i4n?$j%}wJN7LJc=j$5fu`sQGUmgh;T5RdHEQsh5sm0Tn zi0#!gWL)#0c}vgn|M=N6<*CQt&^FXp%B!!Q)}6)6G=}3dQgJOrQfLu_B97a?(MKBu z5){S@%sc@IZHb!zd-dLlefu{3Ez?7nZ0OTxHZm z3f?7HOF)H2xn;`9%A{3#I#2|#5<%hnMGm56RgS^ePo6tmzV)r|moNYEH_MTC_GoM1 zrJ`p7h^NHF57A=RLB$AHE66Jr*(jJ`FsU3(6vMFKmGWAt&E7g%9A_9kU51qB+Gm5% zG0uC)hJH$C;)PQ$qmqQ6v3R78l~>{!elRk_mZ$k5%S)meGhNxOGW9}Wc*j9HWm&-F zRPjNQgvno(Ojw2_c>Sn9*9&QUq)rrFH~10oXpGgsS|;dYK|u5|tgrIYN3a8$(^{<1 zCZZ$9%N-xOto+Wu__cEX$FD6HY9-36P>A-Si2{>NZ0denbugJ@$l(fG1g*APEH6owoD!H$_B>{qOB_r9A2AkGB;2H7|T)6WAuX^Xh#;JYk-(4jm(pVZ*2!e^e8*M~^zrS-Dz?r zy>$akNNr^;;Vz|`SFrQ^f`X{V^zEg|YDz4jr7|B40J`QCm^F4RBiU9O$f3;o66qMN zU^U&T3T+)p6k}xG;D(b`iVt|PwlZ3^xk5w&lMM-L5K?6tr!+Fz)&|(0M5+e*c}2#6 z7Qh=Cc^Mz$j$@)fQa=C1YxP3350vX}h;Jsc<6LV>wli#H5uAx)$fdtvvbc-8mjErf zGtQ9Vl;xgb)@z1ScycB@(@SB>nc~lde~D)azMXFPk|x8couub*b2{hf=H#sdo0H%3 zZKrEH{$AGkkK^V1@H@sx_2!9Nir_hh&PLM4Pq65k=jRrKTM!>eVlkC54sC!NH9V_- zLU$35Y9aN<&uWL@x1TIeKXs%Wyhw|vyLdUJUXmjnF+PJwQlvim9?ncQX`9`36Asbv zi3}Fj_{J$eUQ)Ps?`ds!eOEV=Hp=xkTvBem{i<^3T^H*n0Q8cMc#XaIu41#^`H_4w z;Bgq`vi;%i!K8E!{OGYG3~rFvUFRc;rR1o46s~vtB7A8(9ay^LvrD`^9A19APHXF_ zE4Wo^R|pVQMJ84$M<=P(06J%tAVPx%LS9;|651+hN!M7~n783%MjL>TU;lTs67Ez5xm==fng~arOE#C?7`=Wf zh0Jk)(~tVIPeDVSNTE6f!tko7??&75fMHPZcC6?a-0`UMqMrBey+AKd;;wVN;{5ej z-YnPOvakHsKmAS%eR>`Kt>n8+%Z6SKuwDoJJ)U&pr*LrRdZf(cpUR%% zsWXZ%e&iuI{UQq0p}(`3+n9yYdy>kJo;h2-{ze@bz|@%NixGi&9?hUVXbRhz1C@iYKJ+cC~twq5a$j%j*8j`;`p zI9BU5O|YG-GV$oJ8$#jz-_!N+v4$a)d;=t6vcZ2nd>eULo;^#84`r3vYGvJMwvS*_ z)LYm+)Z4&oyVF#PsIN=2r3`o?-ngrAJb?^QVv8ev z>F4D$DSrzSj9SvaESXnzB-k zsB98VGI1d;%LF-5E;F{8rE+%c@K~-R_0-d@pe1`nd7Byg;i%r25wh0_0#n2lbImP)M16`H2~RHh7gq74l8yMDSxGABRz=Wsi*qo+-o37g99@vbY?7&LxMv&`oX00(u_E(*>E zcLu`eVh6-gT@0TsU)A>&U;MGYt#*|bw$8|Fsb~A9>X0vWSat2!>(~U_JMF12m)unZVN(2RzW8KGO4Nl|j}kb~vwN`S97NZKsJu z7t*2xiO=x_O`d~7=lD;sc}LuCn;lvVX(G^OuXQdIUT;rhRvq)3GnWIE zOQHEj6(k_O=duzAF5Bw-*0^Bi72dW~o+_csTS77%bO)rS30nR_XUn>6sr*%`b0T_& zLWS?7MU}P%p<`U$y*l#L%Rr!h)ihhv;!WsCC;Va4fR9)*DnurSK^0D0^z}m%JZ%kN zLbq>UJgdkv?TkbAdRG9?LY>g~I)>7+nJ9ztzq6O4r<&j5TEw8?|QQmon$IdQP zeZa(cNJ7FG6zV_PCHBM?RnpQeQf@9WDW!d>)moq1nBsdik6?l3q;6$ian-K!@lV~X z&(<6$m+FP92QRED(B->|j0;gpJ_zYS6t?RIFda32ktIPAMe!5A|8M2C*?ce{$crxKYK`9z4q&F&mpN`B~Vo$XY#6p z9Xu)~8~`h%+ynC*pl4VsTbg{4!`9w*aSp41QO$8NMCSN#zPb)Ru@r890UZj}1(Iaj zgy`<&K(2D^J#QtwmB^Z3*9^@}Apb26GW{tpV(SoqSl^n_l*^^jg{^M`-%H|5c9AJbiG zy{%byvHemUd7rn|s}qC^e`FHL#f1JY%Z5p!?8l@jrkiF1ULcLp<{`4G}Q( z)q}WrCsSO;d#-(@c%V)&QdoH|P)vysa|OG;@TFC3KGM5`TajRSFBOi625rERUhS0r30t_R_&3&ZoCwONgvk;y>O3LH>yv*fY)HFt#4>s+vb_WqB~qZ_k|m@ z<@CmKi-3dHU(2 znk@dTyrA8I2M=ltuQ!8NPKBbhJVJB?|L`m$w%KauK^srC&6PI^D?eI{IjajWa~ZF`a;AL!>)$EA|9f94hu=Qy ziQ+E5Icbl!dN9!E4&()r#m7OTGGb+(t*w~G0G-A`9HS&ZYCHVEJY+X(mCjeGA?XT+ zGie&mvIe+G>M0sla3vou7DotA6+ItusK6z49|L3agsS+dY5^h9QODYxR zU@!5(ifpV=RB3(Uqu!d~LWiCZk>Z0|=LCc>6xE~35!{nNGjP(+bxFR_&FWSz81&+z z{@6AFJ^n@!?9n8V=f-$J!D)Txz%Lo_WKgSMXHS%upMR(P(tVffa~WUK7Svn(xeQjK z*h&-w_^=@xO%`jLsJe3qGs#FRUJ|w)pC=E;C!O(LKAyz@4nN^;pSQ|WMO1}C?iesp zR~NWY z%tVoXvH3~1scaL_#6gdSQQ;wG1~MF~i^X(0=fu67$11_xoq)Nr3Q|!*rweQ?A|*P; zDlaW18J1OQlcue!e3iWg!6iEX5A;JU-} zO{8Eg?^QsVTpxHA z5xFcz<`G(Xu95suM=X$IbL~?^PhQ-P;m&%4ddOsoa|lh+vDle?Si*YZtz;x!()9cZ zOPZxHbtk@;k+8Y2m%km)94$OOJax>$5|?^h{6s*V9`$EMgZ*wne+lN*`-~@;=bQq zA*`o~GJNCIab0sy>ig?^HCen&i~d)Yn{L+lk1Q&?T)%heB|a{5>!A#=0UeS;{&Y=l zWnipMfwm0F&~`8$H6oD^Badr3ze=tUiV*4;scny}=OzExR=|WHu-dM;%8{a`qPV4f?A=nn`Hg4FAN>AT zwBK1z$BJ&Z9*EtgHw&IPu1_Cq?9z7B3*{V|1gNsv(#qXRwjNp!x)7)z0SP;m&Y6k9 zDX?S@=^Qx7159l7sJKQSf+`)tdL>qbKyb^NY1w{7dEDkKI}B z`ruW=!_YG4j0OypQ*1Yk4vV_whd=qwkmyKrL_K5~(VM#AfXYJurJh&d;^Yw9PmX6++l4eRjO()&do`i1~F3E#$JDDS1Ri5o{3h_|t zr5?(5WPR{SYKV)A#)0LBY#oW$r0u$<$r9i3WUJENG34Cp?sS$HBZ6c`|LQ6;zxvJ zqc^S&=mE?LB#88fAU8@Uc;cvZPGmfUqL02iEw?12dhX;wfa0bP$>a_D!xZvUX$h)` zz>j4lJ>oK7A#wg3`AuBaQ*|Rh4&cO6*EC(pb{wRfF{A4{^NZFRZ|0cX8H{3c*#Sfz zck;EHNn?hS8qG2x+`pf}s)m59QtLXWCyf<9CHy<(+7Fy9H{EiP-gNqYec1be7ZMp; zhDsIz(Zh9MIKl%UqW`Ci229d>N*^xiI-MgeQN{Cwv-$OS)dq938YvNAf1$lrHg8c%NS4?P+!r-%j2-HqGf9 z^Wl5=Vf8@;#A4jRghus1ngd+@#kT2qF9e8?+4-!;?3G9On8YC&X^iOu$9U{#+8y}q zZ@pa}ee_Lj57nK&le+rpcKqqndXum|b-`{g(ma;IA}rr8W|5V#9bZZa8zl(Qe!m2h zJ$)ZrZzJckHNH+u-)Zd-E4xmp-5xL3-*{p9%x7*bcigG%r`jCA-G6MM9lDLnz&*?y zb!_V90r}pm{j2l~X}d$=$x0lGsXfO;5$J#k;~00LgmM)m3l`xcTBB>3MtteKosTT> zB|Lp0!-S{YX_)vaeZqGVrtDqX-%rU!fwT!?mQISqiP)YI9VP?*n2bSJ3sujL`H-|M zdMcG|UC%soR8ICp`R;cgDS!J{PpQ%`Etgz!skf(YZt#MV{c-?x`o4Q49oj~iTMu2K zDG&u-F+ituS6z`AE|&rb+%EB$C(y7(1c30Z_DS#`a3g){($=BV=%^eW*?^t`xgZSK zxftezO;Hb)Ud05jjj*l34;=&{oBXrl$pJi`n;P&&v{MQ;x67xMfl=1ps23wuOrx%8 z(^o&jc07lFpG1Rw49xqBY)%xRjj{-OUOeK7qTqYwAAAfwo+XLz@$fyocqsa$Ixl?# z?~*;`+G{T_AG`l%eJ4x4Vj z5B^~hLYZ;a2$dgxM%t#3Xmb(Cg{039XpR+F zr40?@6C-WS6UAT|oh_L>LpV7S2S2uiOo(9UhzEqgGYFF>4-`S;ItghO7Gi?VR3_s@ z{~bILMjR&FCOlzgVaQARJCdh)3>krmypbtnSVyW5LDGbbzz?uWH~_3G^&!i4S&mN) zzZwZyz5Ssb8EKHXh*o`+VW0+l($=fqs+tKT=@abyHx-gAU8#c*)j>1pOx|(09llDM zA+vnLt2G@>)OiJjh+1dR3SO@v`1}TU5Y_g0#)(~_`Rp;5MD9==Ir3)t_%C0oZzkTN z7i8=!S6)@hfrH{8&(4h6EU`BJi5yn#BBGQTlhgsG(Okn~ke*T~l|j!koV$9(t^&RRqH6&@Mm4*8&>&5J~W+u8LzPLGLVwC&Ucb?}EAq=)PX zQ5Q7W!402x-YVs}XG?kF@xvO=zg%8_^^~3+)GOxM9jIp-*=8COEb-wNn!wRSDWAA5 z(ZV#o0xr9_i+@%>7W%uUMsj!w0p#B)wQ;!+q+xf^q zIUnnF^zoESnDJghPus(H5>L6BD4ve)k@|J1NX(?e4CjfC(jzJc-72`CS0#IrNEjwW zAiNxg?f>uUuHuU?oG5?ycV8?2>;L?3%S8t-*J{DFaun_&vg&}7={7b?e0t%@-hDVH z&qMMoBr65AAZ!J`3?aAZ1J5%EF0&lN3%Tv zv!S@mGlXGrrj;TSl=z4aI6v;b4S32uoh0BW?To5%dYkbfnHeg#F5-V+E@z9G8 zR-5IM5|F9xY#;S!ynv>y3{@097x|)YRomoAlR8fvb(fJ2#{&X2cIen{#Ou%BeC1gA z^sil0{`>#&H}vt=tJD$MV?BUi`+~%)ThZ&7H`%hPw{U6IOZT{ymK;5I#)=dR98s=T zZI1AJd^%wY<&Tjy7$QH3C-0%zk#@>@0Wj1}L$?TYJ>F%O!YeQMr0MYqYr-ax-i8Uv z@{)gvZVFHOsjPL=y}Wg0^*pI3>MZ;v9n!w(T2Cs4u0z$3pUGhGr;CdEAQmU}GPd&Y z_czL){Lxp+Bl=v%{)4;@e7`Pcd_O8DiCpM(4_aI1_wLzmpH^*(PJNXpi^#71WA87` z1OdZA(imgr@&sZDUYTm{(qCp3&dTrQ+K-z}R@&s6dApO;Mp;)v`6_?Y`b354Dt&Wl zip;F_Y(&IUM(~FG729ip_HZa8OI1#lA36gT(uT94I@$ICtk{G;1lPW-5(*|S7;z1W zj$b5Ur?gasQ@aN~$&60MphgFy^`*{Ee$QOvS>` z%dAfd#ekF61zwi|w>$dU-F5760k3OR``g^mj-}0G`flRe$eI{8!nlqT_0c%NS4?P-3V@g*Clc8%%qPaSpK zjgQ77Gj-hIHW4JWiPmm_i-(C>_%U+$h0i){W0=4oCHpX_G^jH52|Y%3L<^}udRjXK zzxkxX!{yMS%hcvB(sgjZ?iy-$*C{R7Xz;`s3K=ZMTdMo2(8sYL3 z-pBZ#YcS(Dc8VRm@JzYpnu~Qu@yhby5AQ2C+z>WG>nVWqqB%mnp}=?!5W5X{krm@b zlVq7>f-z%T&~+}!sc4DQw}`JlD6-`3;fjyzX@acDY2D6KEkma|GM#b>GmezRr^IPG z;p>DcdzV(nUe$d54(W?nAP{2f>*UX%kJ}CM2+eObR{-FHJ zKlo4O^;a~gFIv(&vtM-ju_7TlR_f2HGv2qKL71u%2k>N3B$gfexKMbasI$%R3GV^G z>R=dR|AZv`2c&4~1tC)A@dYB&D_ax4k11=t zk_U;mt$`s=ZuntN?Le?GCdDpSNk$3{p>maaPa_`CbcCHnd=KC-FqlAUezKYKKJ z+@megz;i21-nqt_aB;_!7%2xEM}lQzwKg$BnDz^j(gq|zK~v5=MaZ5o_hs11Eahxv zPgCBAZP>{Ev^hyC4@uL>mZa~^inx)c9P-tawn*9^wuhpGCDEWhuL=|wS_Z8{ta9}L z4;~WUBYOKICk#KfKO`dxq2^z_7OPYIO9TLXIi&S%qR|>P?4$v27ckcK`dnL-#n6HJTpiUAGEBf zh)dTzcG3Lwr=@)7TQBL(;+tjTY0l0n$Sq>vxB z0P_t15%G;uCW_o)1ii6&QsF7xG}4Q0ZoRmC;*-~w+ir{Pr!4++mlIX-NRh^J7rIf{TrCk13-o+l4XhdK>o;NRhTG{#*%@)J zacKYmKmbWZK~zrZr|EU|Lf2&Kt$xi_1_7~((9$kP3W*hSLQ0Nb6fAcXqtg_K0|)c! z8;bV%LDZAldi?PBUn+n7SKrmgJAYQ5dq$tjIIXQ)d-S}bws0}g^gd&4arItgy%i}Z z1E}g(P;h{ugRZt@#mhdsyG+A6oRh7mgg)ey?VY&mnD5N zNm{ssPdLnxH}sGhH_XTsD6kD4CDMd1M37nKXPGTf&Vt1*ZlgjsMnpRF%eT~c8;x~z z^%L5o&bXqBmBvoz5i4UzWw5@fj!QikBpT@K)AnVyrXJPp>qD1qmRoMSyxgak+Whk8 zKU!|RjgP0xdsRgC1NmlKX{-9epXkt}&^DQ+Mgic{(eVXFXF68X%D8T#IIuH`Yt-9D zvQf?v;)hdTgudrVnjSVMYdicL53o7?OSC(I_j1>@t>$a`Xa&b^y zQdLa)4r@{CrJwN@)F;Yc{OPyLD=(ZaS6y?ZaM0mHT3{#u!HhoN&79z)kp++;%IlFzi(XL?V4pY~10o*Jd**xXy1hnX& zcaSr{#&r_%=Guhm!tiSAAfu_8iP-K&N=k`Q9%h&ts4-TExThdvmf%g$Br>HBp{`eo z024XofxT87AyHo&7@X=&r9Atzv3XQGncglR{K)0yo_lZCGwTP+bss2N@R1O%C8Fe# zS;be$64X^;r%^mY=p`B&(wY`uip6pIf)QnvH6LXCPU|$`^IQXT$~RylcCK>P;Y;09 z+Ds>Y8YVt%ou-pM@zZc!`YGL14(aW5&GGcGsgCXBP3e1CJB?>sqg`09$5lB0*aM?K z9Hb{-jEiyb{3VS9=$aN|?7-sD+}T5NT<;VU@HIV}@%UpW%af14QC@oSczOFxjm9-m z+@tSX@6pSoxVf{z%cbDdq>uc=$0U%)hIs5KCW`3fddW7?T^{>`k9SY(wv01pPU!jK zcguCx?bSr_rgG;U7r6ai$V&>f2?)820crF8?1tN+bE#`Gjhnlh`gS`_)XkQB>(I41 zdU&NJ!^Kf~0pxYUw45qi71F>&&S(9O1n(g6i}1l+svH#qC6T2;$x*Vy0VD=Kly>~0 zpoQ^ZSirlf`z!A7(sMqYie6~FG#0%vc-}qknSHJfiJ$!z#R{Yd+Yck2I z0M0-$zkXPt!T26Is0Q;moeI4U3J zDVk7{)5EGOSKvC{B*yRrcf}YL7$pU1kR)L;hxTMkXojI*DG?-1+LSo-gf7XFcuQ31 zJew=vVF6O6Ho%{JVNaBKS}_UJkO|nyk?17E7!dl&z_icw*iIx#Z5y3a*iU}wNb+uW z4#t@npP`eG`_hr|oGW*CHcp)=d-k2sO4m_+Tk+cRPk#GLFjnC6OoQsUH#7Ld1+$kUF@R_0XLqn#sPP;N}i%Wvl{tFpwmp^utg{?Qr zzx(oo<>@C5mkad4HC}4N#4zqavZTp#5IoNiW!kp*q@VN|?$nC0$B0=;gKFCtV^>qk z>qJ5d=)y7Ew7kaHX{xtls;L?~1y>PsmIW#pf?M(U4-`NhrWoZdcoJ)}r0r2%X-u11 zCAWx(%fdz!);f(m5tv35+Vh3}tThof8$*`+Cy3^ll6f}lGZFE@w&;@wwn&HR$%ida zWO^DW-5VA3<2nL1hQKwJ8IU-Sb+w}GNn}q_p?#nMI<{xPA%OBE)FCn`XDZl)Mo60Z$%5CKXH)-#ZHZkqf2Bv7I>{iMJ@l;wv z6xSm$9un<3B^``^uuT|`SqP!x*D(T-ZGAsE)U7DVSaZSVs<|bF#MM z?RmDM?dgb5X{YHWduoRwjLZ^hdl*8c%yy zz+vqO+bp-=ae2AxuB&u+aZkBQ&lqE7&Rlp4YCcw^kzAAycl(tezXcV2<{)q4blw#u zbbi4PKZ796!vIbz7}rUX{r?rN`pWsUBz#VFHB1y42vZiEGzjX;L?D-Sog^}7#sN6O zxu93Y

    I-tghLP;~M6|P%C5xL~g83g@z?~oP6ZpJjk-_St=U*t3Mw>hfq1h`jJ|%;r z{-CeM$v{&y1AxabR=426CN+O=L)M;lRlm0 zNMiupza@?ke8ttkeURMfiN{Wtul&^y%OelJpwIjq)*{5-vR`k(IO`o0d*piz1i2t` zcQG!CywS}E{$kO1@Sq}))3YejOi?f8ZG|g3feNn1JJrVruJz=iAD*;nDyx>4z%^&0 z&2}7Y0~|Sdgq+|ubCgS>g%~uY4ImS`Jm|J1NtW_z*ow8m(VfI$smlcz?FqUJ8_y6i zr)Vpu>#Cn9A|a&HQw;HtP~|IOe(Q{?PaZR`8f|vk#;6W69}YvpVCj4;^d?R`O;_>@ z;QT?8u%yp$fRF4+^hzkL151Y;!v|SGtn3c<3Dj%{?sSCovt0MNPB2m2JbkQOaNvY? zCT)~o{o?KASAO+<UTbC~7681dX+0pZD7w_fH z(XOj&J2}XXF>v^0^GzeFe^vu5tGmwOp|qFqZN~Z0uwt@Uk-Cm?Ekkb7`+J3^<&zij zSt!Qv{C@nbo>lz%%UVP|s&;m;X!s=YnitS_Xx7GrkLx1eA?9UM$lR?vjL7$$e2umE zNUvRDqvBe}Cu5di=rDlO3TEy0Hj=l)MEb^( zFC~5|HtCn}Q~J3yGW^pPK3#qKLZC7=8mG`|xwwFp495akCyI)O!*&xz%G#Ya19sxb z3rEwNaP?rhzQ^+5bLCI}%{R(Ve*A{so}_o}>N!Ooh-DJU1E^Fy+rnaUAO}E?#E6^A^PDTEuL`TGlB@GvL()CcB zT*Q%KBIiPAQg(#N+so~3um+1x`S3-&=jpW#c8jtRC4Wyzyyl=s_ol6qnLtCM1)DBWyf^~2RN%jMF{gSOVEO@*M+c*RXVsUwRo z*x*?{oUgv{JJP;!yP;OWL;avT1{+D+({-X&qDjAkm;v)t9t#`sDHQ-S0fEE%OhT!`fzZ<<*yql&$i*2x_9p z#(fsD@EOd(pCZ!f6f|%q@F}qg8TAV$4vr~b(4#XshtM*8O8gAbKwe`>+as_hc{6O} zjs!Gu(UM&k32NjC=t4y^WwNd?0-iPvRP)VbpqncXWOt&gQe+NtiATE$;wZzK9|ZUi z6oizR(_zQ}(tO!uaiy{Z3#%fkN&<^&HUL2ebd`u`9toPrs+P3;4d`S@0lie={2w%p z#|902j%8jgX28u!O%0KUfntcw@r!E$cAi4HSx5b^ATHM-IcH=WCcln(2S>krsr zEW)*_)<)VUa{9357ZwmFVBn^G+#GGkwnE?Imf~B*Tk$|M$2a9!hbHw+!zu4n z_L2=Lr>CFFnxjeBPQoR*+sRnRHe~m7gG_u(4u+4(FVp>F?2i9JX|Js~0qV6b+gb4B zI7YN>+z%~{CwKK#clRSYRi?%`{X~+_W&Gfw6Ix7ttGxBr$#U%YY3<}<{GLBPQ<0yN zs^7h40w{5O<2c4_F;U#hgieF}nSw(gS z@Q4~iFCIhW$HM<6Z=;hAe@TIfA~%Wj%Q6_37d#v==g;guQG6EbBH-i*4DFb&tA=io zbM=`fK#?U~OR|%G3E#_JiX+3nGp9G`wq!*Xf{KQTB97A?F6dTjS!h%wL?EC?DCuy< zEakYPr{~BtIzOd)eCFwQ%Xh#1jJ9??UcUa-r&P%o>h?7s@kEB`)Y8V zlKkq>*6D^&bynMQWzm%iOl)-IHZu$oaOM!LB+Ve!16jTcV=AL+Zk`(QvJ%JAr@RAp zT-jO9(33&_Lr;}HG>k!nV#zlG);feA{IU&JAv}Nlk5rCDcBz!v%f(vs#Y8Gpf{%+X zC^{v4!K-Ly)#8Ni*7zHn-r69ndI$cvY@cD!?mIj@e+b=)a_ADh27Uhp{6KenRo*$XEVOFAjpBAwm}p$?9!bai4TN9|O@Rsl&T4Ze@PvNLlT`Ag;y zvF>?X*TK~qY*#?hK_PNHVI+x@u*<${@aJE_+q)=1w zA{t;?*wR>%j}7x$@b7--rSixB>MP~>AD=8&T&WQ!FW}OTt*E?&EAD=ai?-npbR%O2 zbziSY`10UE$cST_r)fIr?5~-Stf5^s;A~`G9@fm*V;@g1PjTVx<1D*GDO5{o`D*Fp zRVY&G#~Q72%;S<=D9*55^iz|n_z|0R2VpN08CeDaulY$6X=jR~!E()7$Y8ZTTGFgCt^8 zIC&XU>@1c1A;kVH+uD)#fHsorhklwY?$Jb1<4wgiXg&6J`N;j3>F&er<(Av_mCLlY zbFl6v@!ZfdnJngk!1}BDdbOq!I^JkpuUW1+T_-@U5Syc&=IV6XpUu%U0jO|(d&qk6 zCAmxTmgswJbG$v@6yM`|Ip-Rm%Ad+feM@wSpYpAfUXr;EFEpupPEHR?x`jkmuyD#){? zNtGpq2AfU`PGg}_s)|CdpKHOGIJJVWFz7{d+S>*-FxM+<+5W-z%3k;>pUe1W`Q88P zZ`8r>FNZEYB!hIjn2pYu;mIM6Q=QqmLGWYszTWi=!{dxo%eHu1Q&eo68O&jmg;e8a z0-=MVr>hNbh8z%-79ENz1WX*kja?i%$A82Pt0%*&J62lf zOR+so!sfyy9Z8FvxnquRiFS^EI~eja4^v&!^pdP4dt8sT+M@D$39dzf>1$Z+)P?S} zoK0XRi;q5XLU$CuQ=WX{mGaKp8@l_<$AvExn!DJnoXSsKCvh<{V=sOZcj;ykTXjv; za!;R6wrQT`(v;6oMkzc)BuQ$YOyM=O&JmtOTGAnEG=hX@JLrXyG2x{&saDf&Lcv7c z!-0{FXW(@G_2O$h%3?WhwPr^$6GnMqUFvkbRbfiNoXbI>OSPt5`l1U`3$Q-Ns;%JqG$~-LwsT}ThLl>KEuVu-6OT?k zu8)t1oQS-w!UIxuhLr)5X<=RRIM>cdwO$DB3~F&u14=Cc>KQ~mo}jlSe&Tc2md||d z`t~^tc90;NYlE*Pj9(-@$}a5|lB4P!>lU2;AuSRzxt4qrQBkhMwm#OO8`}5QvU=>2 z+$C8{^u0`Y-FCLFP_wKfua~_}e9888c%gYOHoaHf+u68Wu6SGczx|R^_2JP(5swDP z!Zkm56u_Mm#hCm-6yq;NbU>>{V&MjeCnkyjy})8HpR+5vYp>7V9p)S9+9CM&&uDkx zk$5aayKQ#u-tXNu8``YMw$iwVfGc2Rl%^^z!iG1=s_&-&;G<2Wt*8%}xT_qbCuAxHQErNhCv ziZHEk0)WfUk;!QtUpiktv!rWDe$p@DCs~iZ1F}R`K8}wW^;7?6dr}LamQADG`F8#<8xf4zD3bOSf9wZG1_7AD`V#%Mp zg8+&r3`~jhAI`(GafBT`ea5H4lumVuy1XDs zSS`Og40Co;0`(akRP`PE4MOyzoF8e4?E>U zXM?}8g2dkVy&4VhR#f?RdGWc|%3b$fRKED@pDOp=|Dkg8tq1(UWowtN-Fk6StP9(F zqKu{AdBT*ICnd1e84-|9T1e-o`8#(&gD2iX3%wb{y#29NgHAaaA`SYU2V9R|(%AFN z(ag!{dFJqQa&`hs`I(1Ir;KSj;nQ%nxTz5T`!ru0RC29TU2ND=%5&3uwCKQfhgX9C z;Ncg`4}b7%dH8!jDeoTHQw|>FW5XNT^U}U!ZZl2KVtO&_3m3NMTLi;exjHT4o4il3~{$)mQm70nEb*H298OT zYC;AKolyf53EPlke=D$1KOcan&Hs#hmfIM*`H)ia3tgc} zXCmZHfe#c@t_E;w7{!J-wBz!od@Nx&RaxUQN}?fL;Tt4`&Ljm+JM^KjM#C;=#IV6m zN>7LK<1iST-KML`LsXoTCz+r#nNC$@N^;ofof;@|pb>>!Srnu#t^CB2uAHHzpby1j zNS;B;IM(Q^eA^tQCy23)!KIM`g_`CHLZfvG8wY-ugXKwz@lX$VqR4C21lmWXL2#C1 z&D)qg+5~qLO^P(JM!e(gnL@$j+}Sk2tR_Rp03Xts|H!u}WC*r6@70FEwkQdBxZ}X* zFwU0a<@kxi<<1XXT0Zj8Tgu%Z+F!2!Kq(jN@dKVor)`kq92~P%Ep&!8$c`iO6S|v5 zIFn$AdDlpA_HD11+sB)Lg~+R<^%a**_0{ z%42Ht9Bf&4_@2DoB!h1%#u!TA^lMrTZAO6(#>cb~LV?`YjR;AI_$7+I8OPYiPFOX%cI#)ZHYpNgmp5m^BAvkh_zaoB3ihPuTSf~G4C+4q-#ljPrpR7 zt_i#J@HbT=dWu3nI|~&{I%+K)FN@lRR>|$4nh5eBX&lJV3IY?&D!G8?n=BTfw^OR7 zSmk?N-(-2_={L&*5Bz=k!{2+bTzK&zRr-bQ*m1-Q_UpwWx{I`_J40vA^2RZ&LOzb4 zA@LZfg#$1Fk*+#X4BOL9FnXIqB-tQ?vNpVJ*mi~7}^-L|>G-UMxo_K23=Vw_JdeF$01MRnu!TY8@jj>T)ed&$zh5zb? z@;m?HACwP&|qX}(Gt#3V*`_ztV$YNwo`H=2hxN!D;3ZKmS+qyoo zu;#;*0d^{9ic383#3gKAI%Q5-uYXMCE%7IOO23Y#o+st>d_BI04{=oj^@&4f_F6xI zPX%S5NI(~L85q)F`3(>CbD`0CgSXjy=i9H9Kl!5v%8NfeRW7{nkl=hOLyH-HHdeim zoHMrARQbq~Vp1H|?Ng+Upx%sxwntVP_$Ku=O(*40M!lTDFOqJFKk*Jnwn(1;JGrBD z)<+M2Z=dZ5oEVwe$ffDhQDS_++~Fs5Tm{tPS1`5Q|z zzZ9?DQ54Ym8)S?*r>S-6;8Q7#$TJ;btEXBHt|AJjKg4el4k=YWqjf^Nj*e@b@UHG8 zzF%8TZ!9<69G}Cu;DDG#>+PnBvdGBW)R8f~IzQ?l&qBFQqVAx?x9H!81E>!=h~{Y( zreMg+09z-vE?@fZb~2abZO6aFhraj1yPdu3;J4Gij*N4qnU>3TwoK`#dYAZD`KrgM zJw%_8e#bRT?ZECCjit$~eRz%`fx}CyaU1U&BXTh=L_~x!R&5Esv>dAm0hpV`Q|c zLd;ecwB?)tmM%qJyEQ8 z2eFNXe17QHBt;{9ejDYuo7?YQ$7(%IDac#D)UrIQOAXKE8gDC9l)T||-wu{9*N32G>A8Xhy_HM_68T*}}5?L+1F z|DV4rCr-$b^k6G*K=t>^tWTBZiJu&;S`c@gm>gnBoe;>=7)p5X#~n^N3)LO}*~!~- zOIaY4A{>0H}?Q`K9OcHsnX+sNJPd|0GJoxpe%VUqeP=56E8`=i5uN*j_w`9~l zEf+&VzeQSAl`gRCz??M35Cei(88OX>B2c5V#dLg0U;QO$6F>MQ@VW9uC!Rc%GrVbu zxome20V)#y9clc^EOFBsub9OVD&oQjE=RH15y^7?5to{vt4K*iZc93i?ilcUqDZ1E zgT`qCgsb8VZ**Zx<^&O`AG*W>OXX=Dq)>$2m9m-GB1x9ik#6VIkYPh~5nEi-mCivQ z2i?iQ@4KX<E~Q4hJ$i3L36Rl zB|zw6;XCOKP5S0biH&fst$|7Xgj1SndMt6AN;zZbI5j749X_PY@s6brd6~j{-l@JG zH|1L=J(af(&-tR6v%R-x4!@o5o*&v?MvKcmX$!cT>G5Oz`I@7K;I`5GBg8(&Z7N{H zxUv$3a3vZWihNx}2UK99?SRriU1KGE|4_~9gq~M?_D9-r^Y<^8=YFKS`)BrR(I%eV zhn8*MEXeQnTjoQ?9&QAPpK+~UG{fCXZXR$aKni)AxQB^qluYt?N8E1Rj5>4rgg$+9 zT;D`JS#H-B)O+u{xqRS8Z70{X0y{mq)T9*Iv|8KhlM*_dl~Cc7)5Z*WA0~-X3ITm7 zc@FMM9YL#~5%k;>)GacnK7qs~U30Ws(eK1MWZNdaewG+!V2MJCmoR@SBh?`!{D3x6 z#{p`f?a3LUM4^eIU$u)^9c(?_r5}TECU)_*Kn<_di648HJ-c!B^K z;Ur58^KhG^Q)o=RmL_=_R$l8QUg@0X6#P;4wJ?(<6u8O)PrjE9$+74R$8_-bnY7kw z%9t`!JyP+pX(D1!2TlB)7io_Xxfcc%b-z*=vZJ!>3zNLKplXvO)mD|hpH=sj5 zoqRV);-V}pR;LIfdo8khSv!hL4yxc%q+58VjnNgD(wb)r2|%y!i|wsvW(2 zU_%+Ls|z)1$RdBW$Se49(q9gapx3d10#sfXzq^ zBR%3F4=Z%Z24*ZHY^<3|vL@Zal&X3NRW^%I z66tftkSFv7Z9FrHoT{ucPSbPpdRWTqVSRi_-gbN`V~IcUgi~2lp6&3xtaaj3dF$|; zFPdrI&X?RJIlVqyhrAE@$Cqdev>QeFL1U+M#Eu&N4li1uP2!*j+8-uM844kXBP27i zOP$;d&}31IsV}|AcZWC2Gf%x!Ui#UQa`f14J)5X+4*Tt=JR7XhnC|*{tftu!GjmRU9Qo3&NVyc8DWj9d8K?9VY5f7rB8Wm!q7qj@ef^~D^Brb=FX>ABRPPe~ zly0kZ`rEEEXHK;uh(e$s!nHJf4jG~dCyS*0ETy|ZhdX$t^J{i_PBD&nD_Puu8Fa9< zFrHQ9`Jcxg`Dyva*S}N#`1cOi-yaS@JR(U(Y85NP~#6;*q9!^QM5;pmbPu$ob zO3O3H5DVzo#ucFrKv|Fo{)h*XJf>8e*?0s`M1%E!jAxicr1J-i#*1Xti$mg})SS+5 z$Z#iNbkrU7i+x$ANTWk(od9xNMley{nkecGy4+dhEvfQxJ!pMYtIntO3g_MBbH939 z`HkQFY`If=-0fPS*7>YaRD{0hd4!W(Da^94EkUHS+DQt+1Rq3NqQd5bxdshvsRKYt z;s|^G?fBsB=}9jgsbh*y{tTyd)AW@8y{6a6bvUl&|_S z5pC+OBA?6n`v;#dfAlZET3*$~@!~_5ivFP3wAF>~QWrD7=9}@ap0nMh3nCv8W>CAa zc~ZDj>aXOxb& zqZ7>kotzp?x@gmtAsOB~9wheF$mLx@Z(jNJCbEgpGo$#BmU)Y~;d;EO)iE{Yux5_=AxU_us^LLlq@6c=W>*p}Yiyw8+mNnXz z-)$fpybvU1IjD4=>cG&&hN;+0V54Z8VFNO`?wHPa68t8sxN7iW-i={W-1T<9@g{D z!F$-8?l~Ad*{4JZl^xUMo!eFR0apPEkO4gFbQ%tnAvo<~awc z(|FGZ4!Qhx>5fY+4VO&iqX38oEIRo>b>K=1dkk<~*_H;CM@^RF0lfxLUO8YjK@P$* zXmq}8>C#Iq3m@?O>%aa+`Q88fFLeiTpPnl_AZOBDAq~Kg#hh@HePBBF@?lS@@N;Df zaXOB?+Z49T8m7s0`U?e}ddfh-) z9nf^jt1!V*&!aqB8;$N`@iJwPr0iU9$>$#X1nv~sdM^WE3WZ~S-HmEZp7Uo7|BbAw-Y zuwT!yc+Ei+jNfgBdZ_eQ#4?a!fS)$9s^-Q?HrT4@S%R#o*W9V$H6Z&c^;17K>8 zUc3>KF^wPR0KuWbA@*jqk`?Un3qVYQO?eFvx$|Df9LnI3=Ri=t=?jTNO~SKYk_KEJ zQ~HDxZpGKrZ58k3&(Y1hoh{qpGp|XPX+mH<99ZI)?jWDP zyj4HmLSVZ3DoJ(b5u%qzOQ?D2NTC43u$=21WBDhaEah+h`upW)&u^AP7r#$0w9z)y zjcD7n8EjA~sg0{OsY$V8kn0`|iWlF+!3%JBlQ=uVG81P1T_3!n+;i_G<=X3pah$J?YR`y7Dtg0o>Ip;qAL@LDKtB$`AdWQk+J+5PO0CLp*L2(TR!-)OUkD{eP{XD{df4AJXh%z>P!?7=e|m8_~}_zv}+IHeeyywIK?D? zmq!tMng^_`fc1x|dccSmSEv)~!Cqe!zA$Uee{~W%p_EAyzn_ z|4Av2Jp6q5{`a0M4}SHhNKT?sBCtJ8Wfq8> zK)^LJ@=bpOn~^C+1fo=O`pf4Nf;rp9u6$=IZ=Es`AAvsMTWdh?D8=J z9W`(~JWo;3Lg0$gS4En<0pofF5jeLP(K1Y8!uZpll=A(Dc!vLN?Y_|`GEN=TV$Q{) z(^$VM<5Gv5qHCcSN5$-C3MH4vJs69T_H|ToY(YL6V^N98rFQ1*IU)LE<&HZq)^o`> zm78wS2dnn;`J3S3MOX334CzvPcfX^k`y*sld&sX+QUHKZfqn!g(a8%&2Af#6joZ6W zuKTQi(n&M*3vhW%=@UK|?u54I@A-Q8Tzu+d$*YMX>u;;al%c0^B}eJj!U4M~Cg=ji z#l+vflNa#JA=|OM6~$XY^sM4hK9})E`Q|r&SRVc1)8%{LenI<=52?}*$|;yA>Ow(f z%gdN((y_A|f!xp|{i;JU#>9?QNLKPW__(Jt+?!}eh)Oq+>~D@EK;|(gis3i|ed2?6 z?u;@9obb?zuj+aP& z6yN&j>kVJc2AW(wzK?^Srl-6q<6Og(H`SBr#GkADo^Lx@sWW-T^tA#gcDq5=K@Ial zkjx_Toeq3g^@xwyPjpAa-|W=Fg1`Ml{rYaiJ}pj_a`Z^iTXakL&bOW{fA-~v%i%Zo zlmi!Cr2dFYnRxf{GA_2<=$oJVVIvnu9=PAPPx#s|ojkE&nizmehxA1L(r7-c6OH!2Ggm;O33 zqZ+%)%95c8qK-7FwhvYBp;z4g@4}ATxk&>cu}(*9C%g=ru)onNnMbW57zHAqU^0Ke zI$}_39Y_^lUr3eD(ge>i#f{sGpvr$cl0I!gw2>W+(>C77$PU*p`qqGFeb_EQlrf7f zJd(nX2^W$@&qUGJMv-|t8n+s(j>#PhbsBvt7Iy)dWHNR@m!4C4=hbq@-3QCZKXJG2 zDjX=+Uazg-+6nG29qEoE&oBD17Yk(kpj}Mdl~mgq=i5fw7Uu{3wpoEtQSE5fA7upI zHi8?j>wyad<(y@`1ecUXL!2YaF2j@&*a4sEa|wHUdj6@d9=C2h?S}q*$Xi$Mx^(Z= zrp#YX{4!05?37PBf7q7v>)N?Qm-?3QKQB1>;*Fx{-{Ut#WxJ3@x0h&lZ@ga0^FQ4v zPd@&N9w&Q6*UAIs;*0euDLsZkyY%Fb2E+o9CUUV5ukkv&ZglgT84*3nJ`f!3@vcug+b|0vnt*`|f~|z5oD5T>R}C}>b6UbI&nK#o0g`T8YvJ!LJ^%B})321T{M7^HfBT;v zEFZe>YCQvVv7ARPwJB$@NlX;AbxZuZJgEY>px}XAbfU5HO*~d4_Of!Xzwty-l}?_> ztmp|XRwpoFbG1<^3McO>jd2#hY2gShKmUoMt*3jp@&U#eY-92>VMehMrLBMaPL{Xc ze5ZWzH}5FF^Prn`gMM!(4* zS9c!u)@HWKd9guGh-CYPBJ^AMB<``Pj?EKO(XzE!RP|@;bgH&jo5Q!D;lK}*Cpd?E zR(+Ni)NxMU9yY|MWoxNfbW+aW_yAd9Q&c4k@Eo#-4ROlf*%rteBh!*bee~LCYca7l z_ZZoaPR`cPrFBeOD5@(%OhI$sO)00t>&0JCCwOZH>H=x5!`c zpX)>sS@xCm6Es%A8P3&J;%s3WLSp8CKj~9erf1042A!*{bLCsxur&zNhBZiA+0D`B z#4pQ}5ZNi8bpGH^`Z-xUfu+8k@SG1?@-><$N+@^#XeW%{X_&Y&Z$Le)=M|rL?5Mtx z{!Dr8?{eCWg1=w*e6$`$&yqUM^u{xY7!yt7`UQk`J(^e|9}8pe1aiO3lL zJ|(c#ZC@XK{X^K-fBHoe@C%HrtGmxjnwPwuC?>EElOSO!B*TPfIHd<3w7P_7B_aky z4BB} zpdy`?AO`Ua?)(x78gRS&(^WWn@$PywN2u`VgU5{@(u619mZ4<%&Y_4XpH@cMi8TGP z*@dD)z$$DAMJ}tRquSQe*nc~B??PO>9Qb&^2+c_0Tnlf>y z({{9#uCG5paUew<5p}N40$cG5zqwKakBv<|)3WhydF&gnlz;d?+*JP2KmL-wt9X04 zLW^F9^l@eu%Xmb_CQxVcFLE##M_uX{{Z%!Ua?D@afdorQz?NawH$>?xJ*;Qm4&MB% zXZktB(~k40Z#!A3GqbZDebNne(bq{_;qt;jljG-_)56wSZ(C#g3WHm=&gi$PzDG1C zbwPaQsm=1;Z#`F@dg8_ST*fJ$Rn!ZTG@xZbtf`;^Ud9o=;re!c`kOT5xH>F7)xVIBr%ViXSYM_?u3k-P>TVhyws!5-21ANrbZ zbiItQ)wy(=3yowT76f6R^mP*KdWlTB%^AoUs)*c85%&UJ99Zynn6N#ne!ozl2?#|Y6)EygpE^X5R>GYWNL*Ud9e7rmVF z$K@x_9n<)KzhL@)x)xA%Ptfg(^2^-<+)0f0j%cx!iJ}%zxhDGAWS3!#_i1+R@ikpj zcdL!-JMbFY=^LtN-qkqns`9yCzQr%LiMy9`0`Ux;vo_OO`~(!L9}juh&`n zs%X+l5M%*!E?uu#zg3EOqCd-Yk5AuE+%Ga*SNEK6CGUKUWlNcYySlrAZW|;=B8e5pzm%SefM~|>DEKquJD2K2|kx` z|835+AkGBQLCxE|l*cB*G9`qVK;Gu1hzo#Ll5c1l0x zKcDHTEpxKB%MU#3OcbF@S-swbfzJc{9DH4T(*0aRnlNosZNL*neMHd{Mb>YC3Geo! zke5?F@z`;Fd-(P8!t;l(hEH_^`-yLTuX6vvH){e9J}Uqxasb{$QW(GL~}T!7L5hzqql_ zc?dg^=fm4hSr`VX!xKfY`7=MMM>`Zz5(dYGYn+MC6|L|cwdvKK=Qq?m+-h#?X z27|a=dPr9L1y#BJR-P^@I4O>scP(kmT;Lc`kYQ)qm2Jc920m3-77DgaouK6d-&yxa zU7~liOS?gZ1;$oC3(4fev57Lndl-2NmLy;0>*+h%$`E#p;USaDq!o^lU89 z_wOpNzw&PR&ELAC{FC4QLb>bi_*{nEWvDL(Htu1NJLJixR(oAu?qtp-1Ch0@%W|Ck z-cQGvoy(fze=qX4R`pHmpw`)}65)FP%<7d0wwv$Pvrs$?&lVZBuk+mD zZfz}P{K^(o+~SB9wjO-&XXXF>qX){{Z?Nt3kS=E3L{Z;;io4l@oz_aMercgUKy1H3 z7EULpWb&7ORxhOeL{Ug#p{aCrqHANC52gmF^N0)EAUokhxKzfb=*tQF;$Ns*XoHwZ z3|pY7As1Lv^nBPB6w#qY8onMr?(0+vmPI)X{a`QEYN{^e%pa*ZEmYe73k(KF9$G02 zMlZn;XwLjH?_fBl=?W7#%06UNDdyPvG?Y`&CI7%>h|5Va{jau{ffjVLsWy~v;Imahz5n^A!|!dUT%JiGkN0@I%|uZLuspaf zzWNGpK|QP+KR+&SzqPv@*ng?o_XWCs@)!rLCm1-pyyV)HD`mA$3;WCm;;pFBCm`G9 z4qg*QO#x)XNzoruc&uEhcTZe*{iS+A;T8H!&i-&i%k`|QxK#c9^m!SOr zs5{eV&yMoG_sraxLHlSIAQmkM2`xx$K`a3bggBTYm2y?`Hg8kqyvgfS{()2~?~VyrlS=F{)ZEc{eRxNb86i<^e zH+dc0>4kJdn}QUKiW(9@SZ&Hn+sqP7rlfMZnww)qUb4>F4M)nKutOm5*=T}3ZDHsm z{FWlNLUv12cuD(;5mwRltfN_B7$V(-*;WB02kYZ0P~7}EElWcW)d?+1Xko(dE~<0* z>5rdjAO6I(?YBSvKJ9OReLJMi<$S#i&59Z3OdUzLE$TY5y5h+k2&gNa(D0FFBHk3( zstt|A*?33zxr(R!-Pm-lbR%agy=hz3msKoaHUBNGldhIU)Qzn1ol~sY4tb)%i|}k; zJEesMK6$}Jk?(WjczQv%a#V+KJ@CMb?JxfP0iX2t^Pe(w)kmg8LjDn zt*dl<^bYmw#xUF33bX) zG9o3klFd3-+X#3V5}J8{4Wvm~K(P0}CLQ2eHju#(6UC5|xGL3jL2UVRyo5X$=(+{A zbrO`&tKyN(i#AlCwfjEPpyiD+MXf=4|~Iwo&^?~nyt`emNb#Zx-c%S4ggN4zq^ zwqju1vwbqEws9XnaikqQ@1(wkyQjVFo!7MYz3=Mw`Zt7lHBGg*_^}YEX=fIS2zc_$ z(?r>eOq!K~v|n80gn+sq%-JCeMN7T6Z%T4UvcwlK6IkwYzXUHdt1inBAAF?&mUy^w zLPEIWMn3R6byYq*RsWKVozkBz-IC6~3$Uep$uwrU5KmYwlZ2(8vNHZkq%UpQy>99~ z>5O_$m5y4iwn>`gr-kgA(U4pV^sW8y`=_-9^`Z8&pK8pt=R(2x<}mN@!x(kX zXMji$ItbGq8Qb%HRZkq5JW4)V(8Z7bK^0f?1#Ruo=Q8-F>iOsEMDYVB+Re9K+TQ+- ztJ^iNR-Zz%PG0%AkkbP!L@}N8MA2x8MK=9Uazcv*k?NolsM|ukmi;<>!k7H5$|m!7 ziLb)8l2Pf#@K*9u<~f-tqIj(`=PgxWc9G>h<0&BDJcu(;;uv~u>(YwESHJRb`^=x* zr^6ziZNL24@pi$57pp?-_v2{>Zq!f9)g=lFJNiUX(qf{>`-gsoM0`y$VlxEB?d}?M@tx zZ>9^K-1IGIM(ipCH$scxC4Q^uddT~;b(5U9v2%JB>EKfYbUHqCAQu!s&=F|D_|(sy zYq!7iV!i9a_R}}%go_(USrO%FA#H)}Yr&?c92$6X!{X)^ z?@7^5iAHohS!Da^-#qwBe=g(RzkEVBuY(%Q>N~KU&Zv`iV*rd?O%(lo&lnsdm)k3S zR@6t9W)=3p7X32DH!%#&pK2cl_DN;X3k}}%Ne8UD&Nt;n#YK2EF9&>|P<6@~DN|?< zuKB%<5RZTPqjS3fSaH}EDU5bj_>+vbMbexPfuG({6uhfmkqULVke{(tzbmNev-ngz ziBP~Po7inmAtN4XFF;dgJSZjs4q$vjk}iG8BV&pi<1?z#&Ec?Trpi#Zqg6by5G*X(Q8-Eft@oAw%QJKfVRyDHisL&*)jT98j3ZdmxA_lob$qxh$u3@QSZAz}MlByRth9z*)M~ z0ejWIPTWrDE6rANN4j-7UrG47JW1PgqUeVZ-B5UvFX_@B;jcv6(uQ5@cHh|Rxtb{3 zMtN%Q_CwwGA5z&m%Jxv55zgU&YTA!IrqjW{^+bE*M~B<9PwSIV`jpiE{TGOrg;XYj zn(TQj&pnZoiDRPZc_du}vX!ry-}DW9rpjAa#Ya2etN8=(BJSIJtiANobM4JRtIOw88@-UfwD*e6?pn^~#_kj?DDI5nzaIzrv zvZjZGa+=Zs*#8Uyyhs`0*d7I>b zI=m>GgQ82lli?j(%g;1PTV#jMoG2!uDg;*Jv+7lS$s738x56rt30}pl6JKd+cv2Ms zPUIpTQRi6YiYGg4S7vK6M=+n(OVcM$9&eZFJBnI^XdnE@t?i>9eUFY?rp)8#VvwG! z!&xBIDL>J$I*g_EFvx(f4=`+B*i%hi3fHy+zLwKY=#yqUzNFjAA7zZTC2!KL!zbNt z{jKDs&XhURW`&XONqgoyehqidBu_!|=e8CsQL6FOZyFk^t8)2rdZKzN2A%pmY zg5P`3BklJ;^=%yqzNejk(Lvpy*aA&&rdyGOdE05d>3XmngFhC@&gk977+lL<{ud{T z7)*Mkzkd@Bh!_Q?9}TMwTDho|xg*THSV1~6=jCSHrYDMBjN7irsryp~+IXz2y0A-e z_if0pIBW~cLq^0`X`(#`Rp8@kR4`6uhv-c%<&B86A^j1L1;QEa&z5HLcb&r zSkHqhB@H*M@gf%6z!CL4-VzC@Irr`hdaSf_Ha`5X+DQ>_}TX6+b?MEdEc$==36%6 zDEy0rw@OY*lti!mQxzpw+r?=o`~0|3K}C_r&!lRaPSu4m@$h!6(fUE@>(cu-&@U0pCt#CC@tg#HTGgrAzw1EB-pWu`kn@ z6BptMgD-g#hQ9-4}oI$jka%##8!S#T;S~P8zA3Gf~ECk~>PDt);9*pUF-{Pn)V|k3_41O&Ce&tNQkkEP zymLBHBmtQ*kr*;vMeYM=`buHU;ncaas>qFl!F5bZe4F80N2&iUb%aBd<$da_0DV>u%h-3s!&~>D| z9VBrkUI}%1Q<{6404EH3#UrgN%)e2@;xSwS@|6VywkI>OJE)gg*!zCsn6?yZkHr2B z7A%god%pZw`&a+wmiEv8#V0ffxma5mv?8XCFda{toPBX|>7XL=$68G4`Y-I9)g*X( zSL@iT^GE)5`jT!Pex3ZS;M>Vcohf6c&q^gfJM=y&b0u?$C71jp zFQ6KvTs^td(+sa}x;p75<^?LTyFT!gLNDp-BfrPhUw!i%hui=D^!@FLN1xN6R@-58 zR{y~Roc2aV>fea+cKF`rTz?2N>0?kF6Gcp;*7)Yd#`j%j`4d}MjZa8LMu@;e_&|@yq&s$ID_BKm| zBOQ61;pzh)5a`J46DsgEr8B?D3OjK}EwdnImZX>=QWj}~e&k8JXZR+2yQHu=?xS;J zyWL|N#gpyG6qEQupLt;U6G7LOp5W98$v1_Aksc4WT%VaFvXxXkuFEk9jL8{F@`<|+ zu+YFU27(YXi;Ka+Nu5-^aqy_}>81A8cU<27;RkPM*WalAS=FDW9{x z6$h;H5g+lu&c=;$Mm_6f!nclgr!q&nb-G>&_`0;EEopm}8}Wp}oBRpGUxKH+-TEna zw|vm2ZM)`G8~2}@fEPxY*y-VpKSiT4JSUOz*^9k<_5PvS9otXyp82v)2Y*hVy?gkf z=i0aKd!qeH?=9}zrzeVgwBu$&r=hAl;Fidkey<)uVk2WUpIf57A^HThWx<#ja;S}3 zv={nmpxj?+uE#WCIDP7<^d4`QTzaM*x^z#wKUDqI|Nir+zv|cxU($}{em3&0;`P?a&J0zZdTj%MES22P{(ZRNv8L}i;z>Yyke!w#{`j8D+UtUb*g$v z{o{R>qwSYZ{<_`$TYB&1{cmq~yp?SW=c}`sHD&o_p3EyyQLqerTxXT1)aaz!B7w7T zg=$`9nXeF(NTn^{DYzZ~M7SnU`7=#PT5$=O9ZaW`2>-3E9S!Y%%`DZy%q|Eq9 z{j~Fe?V-_M1svP4AF6Z5ASV+B*p%K?+mbx=uku7p*9uO%$xDms zRJNrOhU9EVrY`7+cYqT(S(1U`Gno^ubeO~K4yJ4$vHDM)b~=pbPES3izl=K0_eSYI zy{$}*i7a8vz&8&mb0&%xUUH%xx?*p;dDqKtxKHZdUtzmRf6~_c05-zGFTu|?kE*`i%1GOG z%SRjcpQCLNe?ubs=V9rXL+~ysJRLWR;3yI(AHzLo>bo zS|!-8K|SU3!i#*^`pI_BSN^&^_}~xPcfb9McKMZ;>PgT+RalBy6-)yzI&dm+bnG1YOBI!?Y-~6x!wKVTidnQGLX;u6Dc82 zB3&q?qomR?_z5_JS17$;0ZB=}qiZg683aMLuQlYdL5W*%+wm>1YyzbWbS&vfd}Ums ztN5LUQ_hkOWQ_2ncVSuy1?1A`peT<;{hcgvE=t&`Kl*`=Cm)nAtC`dq`l=px*>d;U z>(iQ_e}+T2PU@YE2iq6_^nrHt$UgN`7w8}^CW`xYbEJP`;)wzz#SO_HF7`x`J}>H= zZ(trsQ(5)%?hAaZ!tq3LoG992;UW>sHDrX2aSLC$%z2z(c-)%pqt8~QXJ!D;p0p7^_-Du%pD|NN0}xxlK!kq`ki)*w*_;9ozWaY%U&%&WUMvrRtFKq94$4%|J8=60taUO>h zV!Q6&y1(b_)B*E~*=FSSg@a<&e5<<36u&HjpCc05tsF0nPk zGF4P4@-+%2Dp-Jc@27u=I*N_4wu{SpTo}Atu*UE29i6Ld*kHms0MHW%3X zAPHSf_)6Xg8)=4aaFs1l*p;M9_@rC%;nQ!<2VfB+IG~hUR zq8)wtX#3>v-rhd`J0EI%kB3!gUfSlVQPiWZ5FJbq*+Nalk#G-)I#C}Ngdv?}D{rxYmAG}sy6c@+u6iDm-Olv3pC2TE*lz^l5p`0o}Rxfd}ucZ z3n0_?L@~qqLWY`|aHrY}&%V%Zf7eCrBmelO_U2n!JMRJ=P@(PKb~@xn!$tj~X5;`5 z-xI~u-^uY%L5eV$nE!0^Jn;h)RM-+RL(Ib^;F)&PoImI&m&kij3O7y^D{js&II+u0 zrhH6%>I$muukfX;k$Qwfn|emt8Xx&8?(ai*Cuz)dY?aoOQ)y}*CLF)QvtA^B>cUT+ z3WF|XRQUhju+pHm==LbZ9^zRxR@)kM(WE@m-S3fOfJa=CK9jYc@-ANNl5D1X(` z+cEg)mJEU_c^eJ{Z%?Z@R=rai8N0_J(+yn6K zAT+Vy*b;Vhr1fXGmNRzc4}996v|IV`RafO!_()fAXA?$Gm09C|`x8Z3%%hYV{kcUS4Yrq=wKUd zPdTCOh1?YU61-$kX{1I!s;DGWsa?R*4PtV$T>(v8hs&nmn;0zD#i&bUYS31(iH9pC z!Z?Km7Z;asi8DdKjW<7)I0-xbrg*}`k9t;lNcSp@W1&jHNW*LpSQ^U`Q{cFk)J3qW zoMZ;2bznC%na)Hl`6gWvxJ0!XHnB(v1AE`F*@mRTu%t zk@l7Qe%^lX_ukY#`Nav|Qo_okE9RD)Ct1nj3ZYj?bMKs?|6{EOdfkN@Ow`^A&T zRp6DDUinm!r!Vj`c{G}dCX+<^OjSqU0eOF8DK+u+_Nuf-%67lllVD?Gued^1}?M3^bp4%$Yii&}q;yXik|4E-WE5 z05#c3nm%RY@)4lsPr$I)N`ze%p0qPQB&ICKoTyd4P8DdUD|DF8brYufeiH*Y(Wt&t zPh$Wk8v0C66z6wg*OSiZc{#*FAIlOC z?TRpqHj<%kd0uphNh)Qm?ml=uEMNhdv|%e+!HK)%XTppWT{zMba)>8Ay!it@4QPw( zt>wcN@**@};Y+ttJ_-B{eB`D4^w)`7(w%8q$MZ_Umu%ZEjcM;vS`&v~bzgeMF? z;e@FdXX{e-+47$~pDMiC42$2?eJ8i+ktc2a{g-b?foL{{b9#>h|Y-+@_@&`o~=GG5n+ zF+cYKPw?mm)NknY649Mdzj0FA(oeQq-+Ebl+dD36S6^dR+mFRwfbC;ADMF>8dst*5 zmi=}hj3q_YWjO=OawZHse`ix}DYwc*ZgojhVP_kzHX?V7ubn843Sr#Ju!^fnki($d zW$8R7s}*o34-%uIP)sAxTo}OPY0gtxjriKV-_Za}hebU8bbIpAkYQ9N$#5%Tnvw>Z`;GucuC9je<(g1Vbr)FG;47g+{KsZ>FZ}ua>DK~f{ zBQm_?2fwZ}>70ZmhJc|aRhcyak!I?e@TzYCO&bMthjd&kU59y6&#gz)Jpq0_5@yXr6#O@y*F0_ToQ8DTwLOTf{%b2ql3k#lod>?CtS%E((~FXn$-))Jg@SrX*L;(Pp@Dao3DGz|HWCCW;#( zU_0E;pJe6q7dqVLq4vc;`H6Nv9BLQp=rx`yxL&BQ^1xX)BtH>kVGBJ>6ipzFy}HEv z6w=kV=}l>Xm#2!JC{hO%)Wx2nS=&heoChI4(nHDu2Ohm+-XReh{?nzbh!;dqiZo6emj$hy3Ib9y=y7!8^Te)}_jgi6R7|Gl7D3@TH=JS+pW6go=lbq<8j1m1Nf0 z&6Y?}hd|QlAoU}O6E*8LCI=jWmXIz5vcfvqAaF_uJ0eE;Bu)A$a`XeAQqo8D9L~Ik z*A@wt_$mD$YaUFN!NY(K&MwnlCMf-+qrOt#@k3~AJ!R2_0Uoah@V@U}wV|ULa30ln z*j{c|y?TGU@usWWt#@42ZoaK49_)zl!igt|v`3uUgY%mDoaw}ug&9>W>v_U5ZeG!4 z9-s+a;3GXV4mp(;{j;ld2}MrAXSsKhrpFH?WbR$0b(oddBm*J$zIQ|Gr{?SjKkv`$+ubU{Q zyrkQykG|whf8z9MLE51Ur77CW_~KGN?BbV-ZzjDs-{9&%BU!>OR(U25T1{pr0kW|LIUE zVs`;!F+GUdcTC%2U(|OMFKTzb?RD*SuaDgb2YL8uhh^*t(~kvOId=ENt8DZo`j;KX zpddm7TrV;|4A7;T1x;;gQS#^oi<}faJ$nyx}kFMD0^ptodwHdx3 zwPLmolXoJIT#swy3qT|lSv@}k5?dEeoqAaxbw1%i%0KdrkZR!e}1lW8I-487VVd@bv-@h_76Nrk7%lIVn32Hn~&HC21z#B$1^X3^z-hw!w3gVMX1eEI>sW2KYX^!^4nH$MFB0j+5BAR25AyVE}T=(O$BGqHG5DqX%=qEL2u zvS_6FlN&6KJjow%@*sc08kbMpxlzW-EtJ)bb$5uPGz_#nI7LwfD2!fT2aM>_#*VRl zmVpTH{wLxVh9Ij1AYNMS>{4^uSaFg5nU=Uk*zT-92uFVU(3lXIZ3%-SU!!iM&7CBK z62TRDj+0&mtd9VADVg*;FHLD&gn}^aCEWP~xo}-bKXp0&SL{PK&Q^i%`VBWK^mQ`f zgW6Zp(pUJ2hYNXgSaImGzIrkztm-jOCU^&tQxnfKw#GLE10 z=~vts&NL)^vx{@g@4C zOI*^YpZN4gx{N12{q6XbdA%9PcRL79^ z&t>dyH{EiTK9_Nc54O2bJH%pHpHUiHXEmYa;gZDDwpqmGTa5}B#wAWYjRe;Gt9h2; ziicy2hm`r6d^2P$9l!vyFrdj~~;^#58VyXgaxGG=er|_WkrLz#$FUq~c zX4C|RL=m3kXzpkFpFHwx`}7}uzWv*O_w{!7T~}+Lvr65^#K%C*19U$fVnsr$3zFe2 zCa7Fg*!6DVt)?dkYkFOg0K2Bm9X&Koi*>ImuuLIo4AoIl{U4cDQ3`iK6HAY;dLk2G zq8UUuO6BRgO~*w%{>OfZA{~Tmqv?zgK73>t8v!D6nf{1vz6S3EpKj6)G1C)J*7boozupCIu>D^7wDri!|%Ek+NoQrZ#X@zG%lSiBG6O$38)*9daunT2)%!?av8Qj z%XU!JB;lUdk>KC?_EYUIzWA_ijL)`TJ#|!1OZc=8r@iq4|AzZD7P(kC#rd7be!q<- z7I23>A?-Ipbh|EhLllNG(hdw4=_g<2yrF*c>lDIG6GZ{@J*up;mZXdM;YrcKUalZA zpI``7LRRxVg>-@4zSLp+EDaeUYvQoomey578fV?Bpm^HT<&R*eq1$zAT^2vy?r?6JCAS^Ayk#m9K_Jz8W9t#(3JDJWG1PjeP51 zz?WoH{u+jUbfZlp{fJNgO1DI_6Z{e%@+)uZtA65>KmAHm!$}XU(vD9QD{iDEz9gr@ zph-8%N_f&IKI4f`Kk*q)KiarruCLjK)DWh&9E~M0<^xT`v>*KiqcKiEJ^Wm25B}d5 z+I?UBd3)jc13K)D-8MW26bJ1}bSyx{$@NG9f-HQ6te3td+Iwo}E*KL<`Q|yUe&tBJ z=#rD|(#!X@+wZuh-FC-?epm6Ro^JA8SAB-jBQ@l5A~_G4IJk$th);23Ugg7(j6^SQ6JKmLRJ+Dk8KtKc(dbOikcO8fy=HU|7`2ZWD; zM|Zr75Ms~fx|A1FdMOAAO&Xis3&S+DvYwVnx6|&6cvn&_(x9K@!?a2wz$mawHtP~@ zgi(1A8#Z)qzs=fEauWonWeOJ5lt~a&oZn#KWopYk78mvBw zZQj~U1Rb{ZJ$@#F?e@wTf3v6)(Sn>{3~@)TGz=R>DC&!1tMjyla=^U zM9@2-%1NM>D z9{BDP?Yn>V{r1g!AJ+}>V!bzUktDM7Ax6AB$vde*GU?jqL2}oTp45k(Sl0Vd!zN1w zC*AQ2HaMc4k}v#BEgk5IJPbJX)QcXry~^y8wyA3?`XXZ87%dHkOnJUpyokaMwvmGN z_S=w9Am06r;oKuE<363ChyVvMOU2ny@ zTpObFoo&@u7J!j0sg{Lw!d4O&EA0Ah1H;rxfGu?5v>Q-nuo#DWbe<&AZm?Nt(Qj-= zp){^pHWfC8v+kw8#IpoT`jj`))c8o7@$}cpNH~6#mvH#2jFD!HCtv!N7uZNY;*)PX zx~=eu+o|l-nf}PXPR>Z5ap+S<`lF074sX&DuJ{TEhpYI2#5HLXpYcjVIPoK#u1Z+_ z)P}MNd6E|6_{8G(hVJ0hBx$Qtd)lKD=JmOZADn6TfAbf5SMj7yK-G5ZZ zlX((91V+5#gPsu4Qz4m|C4-<wW>`PZwVOd#7I2V zy%Evl=bC@iw@&^@x5m6J!6|#4ti+E(f_|t&R0S6}-Mk7bD(Wh0tq>v!2aq2F$qte? zu?uB3lhuhLPaZg}nNv_(JEHCKKYhHlzx?ty+W-92{q532SGDsmIHZ^Qc^QA7o=~$T zb+5k<%T3A$D_L++YF!4}kO&Fyn`Yb`xiw-@?52n?aW{q1XvjNDc0$0sxOrZ?IbL)9>2~+~U$1u) zuV}BiwzW$RX^~ESEeA>YG)0MEQFv^lXq{YdBlGwp?Lj{~NHjzoCyK&MMQcH{>EsI} zc@T9GxMF57u`gqM#%vCS?9K3mq^zCNCEw^*{u)mCBmGwK?fAEoS^3d3(vSGGCF$^? z8R-%a{Ss~+AM}-%_)guDo}Kbmx=~Kzs$C;Z#X&#fM;VD9`I0X28Baf|H}}w3Z1JZu z^8I+4fL!;Y?Ep{{OBms7gS0u06#0eTPyF!@Piw;XtM=m`J)?2cK`o+Qpz#!kTbe;U zU4o)s7_v+*;Ay+G|Ll>t7cv-&i6VCs#&RtD^9h|}#}Bs~ZoH)3dfRpF4R74*Z)9^& zA-jLD^iY-K`^mjz>|2*@n)9vAh9&2Cv z(!K4ofBaCp{Hn_}@X{*1Dw*ygnkXVLI+Cyj!BsdKcjl7IDd`3qrcA_l66mxD%O@{@ z`>}ZthN4c~hfD$MJQ)dcUnL_LLcS;hoTO|0;Ol7HvY9bu+7?HGUgUC;(ETn&ULi6* zWG4Sy-eykVxduqHIxrg&8amq1Qa`fDUjVA6~j1^_8caj%A%h>oN?(aeJl1`c58 z4Ef&OQ4LCtwkLmlxc$q2eOLR0PC>o?IvwS#g)G;vlp){pIN?iAzI`x*49IVJ6|x-% zSMqZW*VyJN*>?O}@gisBAL&PY>K^G5z8gPfualMdQD)GqBx?OpH2RJ{QLIc8ol7q; z4uU`q5&Ejiq;N-1Q2MF9Efm{8=VyC1R9E=4&%O8jsD0*t-QQk3e4rgWa!^kj)j{d- z8zzc-wEN+dzC-1s!QE^|h15!H37ZJn2;T&$tNd_meZ}5vd*U)%a9e7(PX>}PAr;^4 z6&WF&(C%FDg+w?NkAI5^-3t=CI?67~dw!w_a*%`lnLS3q*X5F=RMFEmLuUC&QvGUQ z$SZPFs_TQex{|aPIrWKRmAf1c0n!j?dp)cYG`zxkg0V5ExF)?qCGVE?RcP{cUqZ8w zob^`v8cvHlue^lV9A_dp>R&p5`BTt5;rmG*%lgV!P66Ja9cXohZKu4Oc+>3%+lM}S zlip3-+q7XwTl+<-T|&H@NEvy7PlH8^Pj#bDyL8*kc48yD0eV`{2b<2~M1dt4{JQPY z=LA8NdrnlKf!@RsS%^=FHGy?~8ssT^E1F8TMuqaOBv3@eQ}#NZb?}t675`Sa^mAU7{E;u9J#zR=pQpVGG#A9}HU=l)0a`3xRs zvtK_3@bHv6tNSc+WAvtbohPb!uLBxwolzgQLJN$^B0Ch0>07LqUB17)_S#F^EpNF( zpUc?e$)Xj(p(g-L8u$ANfR)FhCGAFV|L`(#3a4Ajw)iKJf zwBWX#D2@WEaKcq!;$|KSjf|#(5T>LV%tS>nXvP?=X!qfv@bwRyZYZZtu@cYrl-3@9 z^hEpYXTH?_@PB+u?)fiDGoxu6TF!|HB zhJs&}v048Nsk#(ST@Wa`E^mUr+nYQxKJtB*9s)(s7auIv^yoz&buuT4bV%x8REOAt z`qVF;Zol>0uWRpn|J&Maw_UG}<~)BcLt~Z@i+zZpoH;#i>z90(=E&-wI0%D;c zr3vaf0u9Xlm&A}|7!)q+RQdv)Jjrf`jrOVod;I;V2mku%_Vs&z(0=&+U$q}Sq{EW5 z1$9H8_OY`HU6S8^M`a>x3w6{jK}hT*U2K!V2ef9Q7^2o*$>-mEqKNn@LlnyJTD5`b zWMP9MO4eMyAhB(hLD{;m=^*qNpJieWE@?qwwoR+@QgYR4c@sYrU53jbIRcE`sGj)E zTxb@9t2Q|{T^R5vGQ|<#M0ZI>D4ae?%{0Xz7{b7E9dipL@XlZIbJi<#aT9#XWAXaG z%W!>F*mz*I&jZ*QvwkZcoU+%=l0`MlI-?2VQ5__9svSCXpxt`srR_Z*xT0Nuqa;{7 z?}CTrq}h7tx6`G4Av~aNBPhvVC5nln+l|24Z(v+JWx#Ui^NAuN!vONcl2RO~;=;ZH z*g~-{sAH}SrAL-!VDecHR#&>GVNViTubV&=%NS8S5Si*r{;)A~O65pvC z^(5aqdF$wtZ}h92YI}u`JYzg*Q+LKky2OugH#gry-C%|0UZgQRPyT8fpn2$LH~8!n zU~Ht1W@sF*0lY*VJ;FrsO#8-tKWb0?^0?krW|F9P__aGw12Bu>y?K_0kn2Nj1dS(& zEE2J4RB(R1t$V_VaP=p&Qp1s;MX3D;PU-cJQ|->TU!%`uT->g>B6caz|L`gi?LM@k z!-~R3OQy%VO2lL}69nk4=JUF|g|yNo?^ga+vX(L0RR7>>6xDZ z06+jqL_t){y=Sv-$93n|=bW1mF49E~BtZ}$0T2Wjz#uS6qDE3_#x=4%^6165#;&RI zTUYsGxXNF_Q?|!7CTA?kCMk-dz??vW1OX6<$RHvCT;S$=lK;Q|>a}<8KKnTV0A=+# z&+hJ(yL;_UJ1uQ&Y;2YVVRLgK${b5eOS7C)KFL_x5M7nExvccQ$R=V@sAbh24ej{;UAk#Udfe}rLwVcro16XyZ)wg%KL7-qTKbF50;O9?51+$(o)vL z#Z(ueN9U0Qt(RrhjpZ8Lrh|@S>qjGWno9qgLL;{u{yDycZ6_O=UVcyC<991J>9&hg zcCRye5})~ueV(f=hb~K1AAYP(V`zJ*r3U(!Tn`*wUn1%EalNhUM@fR(Zl8LzkNpV3(LO!=cqqJpS*8n#pe{d z>)B)t(RU#fTkz3kb%{#5U!*gX6Bfk|`231#Y`ctsYo|c@vks=^>-cvP=AuB<@!5a{ z%mN$ZHV~m?ASMHn(l#(*Us42fNUl1kD2WMd$gAl_m(k`)MsXybcmTI@8tW=}B%7m4 z`i!Sc)@Kk0#)3}9kgbVPSqiLvI1mo-t%2a=F~`;dhtY?l@B3cXKI6E)VMUjgz9$d4i8qN9OJ8 zBv2{e=cW4OXvkJKe8^%RLVpkxHd81U4HcX4a86bc=oK<*ApH^KG;FQ2DSj@O?J$RH zVJUkNed1dl(u?R@x|Vl0^eykAbSpDydf7cqk59g&BZj7@OMKF|cyNpOlD_9p_;zut zqotdZwTQOm>(i|q_)|s;?|J%s((c5Y_^tectr{*)yl=7Pd|j%24I?7waJ2n>+u@U@irQ7Q7kMphYjY}U@d?YgwSB2yC@x~0Q<4ISd%mEj za;a!y8c~(&4xR~(Q94A@)t+@v=RS1s!dD(o=ta+5{EatCdHy#i%Ki5}R{s7QKPX@R zU!N{_eDW$SBKMUw&Ehxc{oVAMTzT-a+n{bwfpTQo+cG8$lhGt2Bd*eoujMhm!ne?2 zW2H-yHg0t$+~kd;CcKYhK!bW-fh`W>O%oz1FOoQjVq!dSVJuRI$~%YvAY`6o$s2VQ z@wI9`0Uwo=v>YA z%Zc(Y{^gzJi(mX)x%wJS&*h@aa$`Ce^sKF|D!rivz&`s+?7!GB@$N2UTT@@@Uvr#E zH;3B|Y&+TT_wsxC9-lgUx`gi~PT7lOCBB!rWuXXx+I`7=3GEmmd?MRhjc4adpU2Wo?36=#GEI7iAd-*|UC>9}1fOveF@j9;bMmW1 z2#5OGhDoTv(l?92|1cs4eenyb?2D@4T0gz?KA#%Kc+T!AZ0dVeV)jK-(hytitd{i@ zGkM7zilMYsR6QN_h-&arMS~2>qRuU7YDHg`$TzY&eSLPyj|TD1u@8MIe%c1?(J%X8 z8_Q%&Ap0t`YT*{&Iz{}Uw58J;t*$5W5euFJ- zkz3p7@9X5zCnBO8AW}cg`66EYK7F5R%&K%>AcF8sc;e?efd}T9(AU`viG3S*-=FpQ zo;PKCW3oXeJVAXv;ly(~=IH0>S~oOq|u%4%s_ znJxTxnNC~UG9_#`dXqM7&wS6D_#PhT17lN+qn=OeJoNmjIR!X795Rt(qv8#1y2PBE z1s-Fb*d>m6{EN?*^1%JimwSHloKDlj<=k^G(gy3M=2W8Gx8ED7Y}(|U-n|F<+fAuD z&X0>k&V4BBpXk@uSIgpg(4OQPjW1ZdmEKc{Yp|A7d~OFm;tYZ zh-j*@P1O21VQ}Xql3`+lkl+az`M7ekw5*P5WnG=t@$%4*o-6#s)Gp&PlS~FUoCd#8dw9`ByD(bS_HhJF(kkfyLO=6VP#f8w;ESIn zuuv3){%Uze{g%=vkC*bZpT1hY_4f~#XP$nw{N~wH+BrQ({&i5&S>Qn>zG{v#f|J2U zaQba<6@;{;dti)yGR|UX@jdX35as4VTff+f$n4${mvQp<`GmW$gG#I(G9qcy14kr; zf;Rh)j1x&&(3yQl+6g{jiBp`$2Xj4+x<_=tQf5nz{E8iPW`kJwK%8;~l_1|iQ3X!v zf+4BfT+&hgP?}T~QzO^8QHifcBv}d)c&>e>FzO3AovbR-?U?CGGUbO;2yl(wU;)Sv z|H}YT{dMPwsdau3udSWZ2HWYf|G-+g`GXgiFZ{uc<)#m4#6KV;^TBdjzje{>SG>;~ zFPoYZ_|6stWI$D$pDYy97HbwE3q{QfDtPb@p{XJ!oLmKg0Fv;7IJc;i=!c8}JA}Tz z21J)gy1qZ_^BtSp51Ki;lnGCp?q!hg`RC|+nmIYUh0V!N-d4|U=#r-AOE_}DwRm9Q zdl>LVp_K>CUU&eoKu^CH$$YEuv^{O;ZQD+6((c5Y_+A$0180HH2O(n&Y8Hw*4LGYD zY9beGEY|8Nruw6==cjS8b`#oPFK=qG_@M3x{K=1=R$7S7L*=aYg*G(a?c0AyW8{9# z<#k2USNMZ}7!$1&16UZ=tBUSxlopQu%6Bg43h0I|Ag!*RDCZwuFP9uy(Pq?D<%72! zDwkX$T@pbbu(q~dRy6NB;0^!U=Gg~C3E%N!w$CELeY@}XUes%%T+EUKZchk;LM z%-tyr^p&uc)$&^FsIo=Pq=T?pI)e|8?c*SFXro9``*X%8J_WifNFhS@R}_N|TS7@w zWhtVGyTYZPRNGwX*440NGHFB<3jz^Z91PKskT<9vGZ+2{Mn6r=V-mrw5@*Z$#tC&` zua!H0@9J{L9k-T`-FZv-z|9wy^R-x{bKyrvBX1izKwxht^#0JwTI3ro&35VSWW(3X z@9BGd>Posr_@vuSoU(e_MY2uLK-AW|7E`%U3?HR^>3j4W;zolVgM}i$4Am#>7bZwV z#N7lK``9!f-lt82m6Zc5Ju_AOEs^`|qF9EzC#Cp+o2U%A)U@kSxxP zNfFXkX3X?~&O;#`-cZA@$)kmZ6=fqmhPKYAr@n5fv!DsSz-K=&%IW#QjIvvL@l}R}h-Od@oc2;& z?M#xXB;^Jp6C)l~dWeD_IEO)aO#^N5&=Euz|G^Rh0#%RMRv8DFa#@+O83$%;$AQu$ zBYnWP9(MoWH?)N~iY|zb@szU%XhJd-jd;s^;(;>jyM;#zyM0 z7K+%W*_asAhG_EnXpI7)oW8i~bYGJTMJd5nEjlGcG+LQ1osbPjHIKWt+>GMk@v%pbYPbG@^1biZWtZ>Qs@W^fg=}F_-QT(K?$Xf4!G`)Ec20Fg zQ6u82_P$OW(=!=Qm-7AZ{j_}T|9PP7TRu->&J~XaLND?fxmA|W7whGj5EhE5n5&Q3 zPgYw!^2+<06U>;QQtY+FZ9HXJ2v3j*yNVeRoSD-+p-=e(v?6i zEO?=as;aKnU~rxvgAJ9zcI$j1h|%(tjPeo-=t(E%mud##?khCm;5^ll5G@#*r}Z58 zw{slNtErUK1AdMs@flCK$6U`lN8i(o+;1&4rvpj7o}K6t-|_)Vc*<OX0dFY{M%Y)iXEt}{2S^kX;T?u5Nhj4yF;4Z-$ zq-Q*51+`wtgNe=6O)V5Xg6r|1wY6jA*sQkJ6KV7bSHxFLR%QSzXO#C+Gto&8;Q1X_-;8!!;>4P(HijJy~SJN8na72Dq5;d9=a>2yKJq&LsX3!W5B!w;@D_ zeJF&4&D!dc55#RUz*#Knxr{36<(EqN;SZiH-}u@u%j>VLmSabkb>;CK`I#I^x4aDJ z25RiwB&6LotN*i)3S`^pBV(60dKuA4KwEdV%yQt7q*;96;yC3`o|d9bXM2dNsl#fs z2}v&q4GSi^3^q6r!>y;4y(z{}Pg!5>t*6s6PxX&=GlfqrqzP@xi8?l(g_EJ~6>O)<@cF>WKwoc>yn?qio0?gZ+eTThV{4`^%sI*B>b#x?M{_oeGTkylY@{^Nel-|#$&Q5fJukF&P z>G@i@;l^A2ykUP!$<*2EYSW1)ZsEPMq-){t6n)B0d6{o@kxqOMx9#$C-%;n2ffI#A zB7bdQ-owd~=Y5M~u~+AXVq%P3x2(9zxTZNg7kz&5^P}av-+n~WFDd7obBXT6*(_(y zs;|(d>&m`naVXI-%aT6kXddr0iJYnHiEUruOKeeRDX&icx@E$v>?i`pY)^z!#gpK@BhUS`q|w{!`g zT_}QV1;LoiEj)$H!IC~?`B=%vik23^;uj89>1cGriNNrqp_$+XKf8eJM37^m{`6C& zeD$l}C|~)TAD1&{HZ=j$TL<+d{L&IThfv{U#K_)#po5_-l+lX-VzKjFif{7*ue_y( zH-&IBk_>vhuciWTu8@rc{s!vS!~h%TBytrRu=5;RwgK2AtYcuTiONK@Me;y96&@xC z30~!j4kQE&^%5u@`%tyCvU`#t-x5*ZO@6RjiE4b5uh!%+p{~NjN@o&nAcoe*D2OL9 zxe%y%$jrwrrJH&t_GEeX*Dsep{cql_D~flNTW@=Bx%S%g%lYTW?G)K4F=@r9w-$!_ zUBEtfzAYe~1yAa6hN73>)A#rk(bFY-FLBCVBrEZ~Ow+p!!7y+T$3jsaN=AWpWx~gR zm2GWAG#zMXY515VS{5({x%81>(Gfa0f-CSKtz5Uaa0@D|Tvepc(6frV&F0ZZPL+Fq z`h;G@^>n%Ko}=aP;S2SA)*;b`ceZXGvgFfVD8@w9>Z~Gc46hCwsE4-h48@2Vw%~<= zKhBydFD$LBl#y}Y79%ajg~Xt>vB_3rDaKaURXr=Q)251ExadnlmaR0-hmddnPAu68 zUE-0MRv~k1fGsf8!&dx&HL?a=ASgd8bBS0en%oChL@J238**b}JU2$zcB#eZ*2vYPi_? zZ(Ub<*4d5sbH_0@atrE153ZM={P^+m=Fxp+^~@o?d}dkme4h2!6+ypyB%9SOELpP5 z=PbIK2G@A)zQ`a_%DVvCSk+w$n|h>ZW#z0kY0s9Ae*DVvk&j+dF1td#f=+S9Y3>T5 zkIIFj&wC8_4_y(WPVmh}cOrKgFKUlu?`7|m9yxP7z1-9{N4s#Lm`oWb^PKQGSkl9v zm6@`pF%^s}MI5-M(tVOM0u|JwJI!yY=^#haY;XJpS=C^iSU4U8DL_O8Scd((gqv=7r=_f4uP4h;2V@N7K)X!+6CGHd`%K19H=oujugR^ z$E>S?zoEsZkR|G>EBP`%sBQQLSd%bc8fJJEI4A~KVWfgVDOujo3~=y5>}{ba9*3q} z36h@q5H>|UMSAc#SOOF$gGE&OM2I9L>u40Y{G~<^`az;jCa+%mSrC;m%Dk$bs1xO? z>-LwcuRUD;@Q*%Pe($dLYof2K+S;@raId>{z+=d64%pI%YEKWAfl>CBCpBf<;qujgA6?Q26sTPbNa-uPnK`p{j>7d z|L5c7imNZxYr6SdM!eaLbG|y9`K-?iMFzi|oR7MrU*U+KV%t!nu&z0I2Rt-_Q=gy% zj_gP~5xLP6<+J`X9_b>LwmTk>qdfx%%dnNQ+VU#f^(9y>hwVxl<0z%j79{RQw3~cX zFr)_h)Hg6y=2|~d53o(;4uTAa2YltNv8|G#jLlL4Nu)`acR=D#a>~1QpvbYMW&Q?m)zaX`o##QrN5B5i(DU%pK6pE=Wf=O#0%B0mU6K^J+xorxgS9hAAYt*=PD8VHPG{R;7vWF z$Q65@Q4FPKCp;x)KJf|PDNeqf=n}s-`E8lix|t<*out$jQR{3VXb44SpRR0aOIBHy zWzZuTV;Y@|wVVs1UTYQ+^Tr5?&wSbjwoSMBqzwt}F?4Okr>#jlmIa%`pA$!%_!gGw zURF=v^3KUlIZ2oDGN1U26QB8vgFepUgb`=y9s3aH%SZz-sA#WfGv)QKWuo$;*MrEW z68^N_S;ad?9)0-D^7NCh`-N{C>pZ8Zy92r4qj?!E6|GgDm!$12VASfAfc&vQ^`AF- zrBzp#w35)~lb}myv|v46-hayl<(6Bo*4t2*bd^yn20a_ibCmI>W$t`XUm^XLhs-WS zxmbXLsP;58c;^-uYw#3cDz(W;W}F*QYS#w?SYCL3wcP*9hsrm;@!j&x zzj>m(>qd<_dV|u&2Ct%z+rQ{kmRDfZ&n?RdoF}pTR)f#7zoCaNb`|WO6rnnT02*w3 zTNKS3|FTX5O@NO;DNqxo3D|h7L<3-Sm{yvptf$f^VBjMW9Os#Gz|o>Z6PzX8f_nP&@$#4d?Wf8Y|LC*j8htK<`4Z~`f^S!~F)#zk zIwD=`Pxv^WMBssrIPmbq00&?&5~OqS_AvzWLtajP@+?Xm9P?qQ%MLwvj<>XlCvM@0 z>GLUijy7?9obr1(vgdFqd(chM9hAt)9_PAij=EG``FwBcHhF4Qdy?zAtq9;wCQte~ zijrA_A8$KVHa>SDj517U;|;j=))@^zyy@+Q-<0yb?>thz@s-E)Cbnf=UBPc?KMiAA zUDBq$-A-{#R0XkvVL$))lt(l7S&{bq<%m) z^;Gj1P))0G<*Ria214A(Q<5CD-IpLs7&xJ!KzS#^+|~giL#9JlqfrD^ViY793~x;f zL|BJTOH3YtQ)arA`$|v5*enS@=8e(uA}JcCKhA|J13Y<(l`blrR4A zhxG!R<#L{$OWd!!gO>HCX-fA*f=X9~OnO{NV#gfd&cFFn4~W?Ze!_=RsGUl558AFX7wQSyQ$ouM%(L0B>e7Jh4;1rzlLuEm2{RQKRoTGG(& zmLC2#q<&zFWTd{tXI>m|wc={JZP%zjQ&BmdFO7W0(ikRCo3c>UF&1ETey?%y_?x=u zqem1Uy#JMQ?>*0|KRH+D{bALG=J48R!d2)^miJK?Y^<^wiyb-MSiz)>jH|2}xX|N; zqDc1Zvm2ZGPByooUVhb*A0xWu)+@?;Z_rx4X`x7a`z^_1d4|duTm`G5 zzraGz>8J+^th(?^HO&NU8uHvQW~evOAiI(yJpck(?o>wl$Jk~gevW>`N-FJALrY6K zaa$IOEnzYfCqoO{T{?}3qPo0h+*)B-5g|ADs1uxkzz3@NU?+n`a=VNo)tb&7!Xu9y zEC1=se^b8n@9!zs-f)Q=;~d$3uHqFfG+88a1u`5w-e^Q+EXQuXym0@4eg5%Xywz3B z-sFs^$5lMIw6}n{!5TYlW#+>|a@*CNse{Gbu7Ap`KWYr;CbVz^y2GpvOqg-1jy1}b zbf_b(7@7RJB!W%i$n~O}4_ic^GH0of4C-EuvkFn_(O+x#?!}a9{#AGuXxGv+;LQ+DVk|eLQh7Jyy0q-$OVZS zjltIxwIXMI1cDtxwqx>V+_NQJ58o-@@}+EIeu>LCWhGta{plQK-0rG@ps%%|_NDb) zc}+*`2~N5nf?T&_4Vont3^7EsVFI9!O!}PfLa37$29GuEVsaYujaT<&O27KD-tzYI z*UFE+_q1Mc^KyCqxnp`JgNI!;F+NNC?kflN`3#=1UXxQ{D-$WorD{<>xGq1`gjyS0 zyj_(L3sSL+#u+|)5RI*_F*3zz(p~XGUG>15i&kU+k6%c(SLCTo$sA(>Mi5zjIr{`6((}a z+-7lBHqjS>(`M~DWA}PFc_vRgB;AyTdRP6pZa7TGsHm%|y^gDzxdo5gLp;8! z%fvnw{j00md{t%c*QFf#GwXGq9qsH5dnsI!pRs|4j{NbNg=`0WqH;j3G|!9Urz{kh zH-a?@$00yz^2#4F1ao1c532-0W`==%Pl>G4y)d;r)3(@)6zVAqZ{@WT5}z@2t^$Z$ z=S{&iXNlUZ=SkG8>IWK*v{TldLA46Cm|{UCpNMmeHq|Wzl22Q~!AswMe(#C$?SFWv zoH@N;E$=E+Q2f(HP(UaMs`~dzOIgm zZ?CFXbedabd0dX!2R;}T5OpHzDv1;}WsnBy4KN|uOpw4p<*{$iY`;bLglF8-C!9EC z?`ol##I1ncr?YUxaVn3K->jaDk=oKne$-DV0xb=|$sg1#5=rwq?H8ZZPW^X(sy7S% ztUU4f^X0jx*2{$#U9N^YAcs=DYo~K%9|;<@?r3OI#w3e@FRv)N!SzaRb}Yg*X*2Z7 zJK0_ENq{Y~w{~hmlB{_$!YUsnf_7^d%N96ORcD9Uw{;4YjhS&Psh2U}s>;xBbC5Kk zod|^$I^y85Tnd0aP{e=D!#&auNs+si5s-Y4_F+N?QW^$vkr?xd7hLurI%;)bFoe2E z2)3Kf2SGI`1vV+rM_L5IOS?tTHh`8dWxM_GJq7SB4X~u^@mm*) zP)zH9I&;XnifRm4A{39+R_Pmx(Vog2rn-S68SU>Dt`q8boj;RbJ*#*^R~6M)J^bLC z`UTx-kT56UwJ29lzUnzx_nu$ zb#mtNCCr(vhgw|faI7D6+wqY)w3kxRZV+buREa|$;rt-9(I=j&K&gS9bcPfedJ?*G z9R8&KAPaz?6h=}N9In>@1s~{#vZsy2sdq?Bg&IBLA{9q#nW`G=&3w`NSs#D~{>n!k z#DB^h1&*n}K^R5Pydf#n8fOm@6!j7YWKSIRA|KLZh)+_naj{=Ny@o?zT!ne zEDX-*9<#$2t(EuRdQrLMw#)P)iSx=e*GavGR>r&a^^=O%yii;o7K-Y9{j4uNs{#j` zpMD2$E{vsb3uvF|R*FGM+mjmkoEo#jMZKl_q}I_t60$gM`!A?k-X7QDp$q>^J3~jy zACSfHgwc+8;uihgzo#1@L@8U`+W%PJ2K5d0;k0Xn+ z_?ZcU+Ut^(;%uWc=>HvD7HlJOj;$P2Abepb)u#g8VZusgpQhk z@b)uV>m7MI7_Ka`Qs+KnXmBvHWe6A?A)FmCQ#rHzAwXq}M$X!&1g#mZp0G<06B}cG@@-k5 zb6$s_ievCkkE%|GMUEKw#yX3V+*y$$e6GwCY_yYdqnZQ4;+H4*m=6@b5PqT9odNOy2Uv?1iTiY)JU++n=7wIfz^?asdN%R!;REGg{;NC7=YRjUa{1*K5>}G5kAB?ZU>xcJ*TRzF?1D*ZXDZT?6&PM|Y6K zv1aV+Bf0pMX)7Gazz7z6D`-p)WCMYy2U#N>sYP&8Nl<(GFR72@6EOH4&k?e@MPIaE zGpzl3Q|Y=Ke0BAt`aoSR(hLw6+0exP&7*IWBUf&e-~VSf>7&;d`y~>5lh$3IK83+8 zU-ZW;67hdOyDQ#ho)eO(5puhr3}?e!2o5EYi~oih4-!gq?dt-Fr7*O9zEJlPVT z@whRQ6uXPzM@RCLPnjv9w_)_H@T6g(NGmW0^4L?k@sSi{2W1k>c%^m{B6Mj|FTUJc zVnU5$<)*mr4iShx#dj)bY~*SpSCk3N_m1hR)9bIF)XTw6ie{}GIdY-y>N!WghDXFa zZe8<6d?xrLP=RCb`jN-#{6R@DbtIi0N>*WekNUdZyM!r6-*!{%G`ExPMY4R(yK15i zsS0Kqe*WKW+|)~*hj{){!DiKgc@`IH7_L}+MSUYvW1a3aSmUlO(eY>oR~5Mh_5NQz zrBB~Ir*V7MrvzV)NV<+Q@bbKoE&)hZCNPJ z37r#=!gr2c%#Mr-15_(5D{rX7ktc53V^YlIT?2($fPsU`XZMNVIf__tjI)}2@n*qa zJ@{<->%ab5`J4avNV)1=mutYnBVwRg*+=2IZH5NYz(Xe_*~sHk_F4V*?dP@iJlCjO zyqMJ~n3hK8XPeP4#V(5v&I1hxR-%?Mv6%SRXXua7m5&o ztG~gft+ow4Sn95NgR-aZ^XP%G!WGR?Kt&iR8@pto;KJzqN#3!3gD;MhrOlHL0Heqd zGC5bCMu5p`-uedm(T=IuDtM6J(23B0!VUgh=~C=qAN_=J!4vSL60G8e+NyF)C$f|e zhhJG=7m7^Kz#)}eQF&8o+#by&i*Jf@uB|E7f>Ku+uY1p-^80^utKJ;Fq&J@;OT0c; zG}bZ+bUzn;C*30xtk`&XXBLW-Cl)BAq935_Sw5g+pc1lBR(4`ZF7#_XXE-Gt1kgfJ{ehd@?Wf=Mn9Ovrxt%@DnWOovFqq~4=8if9up$z5-??x;7@)b>p{coP)~ym#am_q|?z z@cqa1PKa~Gr>lxf`tGn6|Lc6;TKfGshB^Po%f=8*3YLnaGK78%~~pdhu3JVPCeQP5o7qz}}aQq`C7 zo)h#k=KCEh)*HSx)Tu<-!z4dH@8rDCkE|WZM!nC25!R;qHfwRDchm0B&B=k+b*B!4 zqVFhdP6&KE2a6Y3#!*@Dxx%XRP2|)D4j2tdA&8Qflb*C>;BSbo;@xoavL}CiwtVIP z{bu>b-`-bF>vI{ezq+9g<)D5C^zA!s6^NY$Xa2bI!>%V+FIgCd>jj74 z)-NGcBwz(xBZIAz(LSjrn4nC$qjhY+lDD@DdH~B}lLBZ?sT0@7NH^B+NIPN|r;@LyK<^@4Puu3R&01J5r>9wj@8PXX(z}(@ z^JRWJ`3x2WbXbr3vE-D`sha7p7z~N|2IukP>Z_huEBF86$@0^C9w|Tl{ww9;OD+-a zT=hRZaIagecwj;u(gA%3h{>{d+U1;Fg~o@l3Ao?3I{16)T@YhqwG|3mJ~>}%85Xc7 zIO{X7P*BJ?1xJ3@M`%m7NgU^DfKuLs0N!eE3lDeBUIa|)ZmH(dVO!c6g%@m&bQ@T0 z?Me~c(=!o^6w>xkX!?YsJL*2f4CNnaTZz?1F*`M&$mvh;;S{$5@=-rkdPJtJ1Qn9e zpg$=GI|S%##V6x->LB*Hfx}imqQA7iYSPa45I2iHhjIQ|x$Lq-<%aiPs%L_()DAwA zDxDLOO-$d)MjR6(`d=>)8FQs80_6H2)~?KVbkFQd(;UgT{pCgrYWPam;Y(>BbUnl{oLgLb7oz0of=HWV1& zLPw0v=HMVaJ^_!%Q03A8>qkrZ&Ufx9&pq>s-c)&5Zy*0?x&8KYi}u*;OZ1UE=gLBY z=Ui=x4ol2&;@`H#B2@YvgqSR1m2Yi#8rWM8ZJoY#Db&I4?MPa5??!)1KiH^x<1d0M zQnf)tQnNL9{s;}{>V(<^ZUcDqqfPM(uKtEU=#9qu&`MA-06^ielJE{bisB=WkKS_F9DBO`Gq;yQH1K#TGQ&I~miEcF8&M zR6;bYiF=Y^p(un%y^ExZie2kyXq*uTqk%FYH5ZDnX{Y{y2cDLbJy3q|g9pmJ-#e<8 z+gvQi(wozG7()CsIL^jS00W*ouG%Q>+_J4Qt|!8H3WU>)`m-Pr4|V2~I)x;)Vv!9T z)sY9DN@lJFokHsXEnSdP0{uyD>Ie&TjDN+oB#r}XWSFM9wS?-j4WDi6^VQ%cszs_0 z>FUan_6I!llZMQ84+6qY$`MpqZzE(B4L{{Z?O1Y4;AE|B7!#0M288-nPMk?R<|hpo z#&D~QI;6VO!<9mIqE^>VloKc9SMNEey!-mgbXD;q<<5`aR4zFZi-8s1-X|%%@oHW7 z)|19Ru`MhM=f%JAzbLba(CSJctuUMqkp&;WEMK*|qN6_Plp;hPy-7b!LzOg@W!tEg z(-NkPMfjGsO($Oq>t*ybi|{?Xm6>T|Eu!o7BoFZ-o}`I|A`5>ewlpeCv_FGkZBxrZ zR$Ni!S(_6q79T%Z?*4~+%isRrPnHWV(qPEOgzj?SYBXs5POeX?p{OGd5}L8tETkMtesgTT@wI)J@b6e9*OV$lJ=j6;iDl5h*LI9pOra z$!-5;;t9gh-WO1g(7;mjg^I>G^p?NTZE;+{v}YJTj6hM&+jHq z|DKcH>)(#H=kIxYe4kI*#654H?|J9)DQ^x3Y&)6Zp5YVKD<)#vu4eEYkGsgl{%Awm zo51%nkrVwJlYVD|4!@ERU_61u;(`A1;a{C8-}&~>^cjU$b=&FT@~OLS(R9{wzb7O{&9)F#wXF`@eV0$@kSFd}K zlkJDROfTY3JhX3JzxtS{kWjZJbM)?FPX3LC`79Ex`JTT40jmzkHxoSuCH z?#kj_k}v4?)5m{(ygc&AOXaag-_*sN3-mkBR}b+e#>Mz5LO6=V%M9v-m`zlcq5$N_mlW#eLis2*>W&EHN(Rqk z<5v!d_74TpEik@~-m$)I5LojkUlkX8!ty^C7JyBf?K{T@Y_wq!#bS8!{{OmAw0T)K zZB5uC0qCbR_Xp!#asM$BEbUbKuQ_AE7;YCIN{;*#U>@y<8&s@?m4`B?eVm%dv5 zCe1zYo-3u+AwP_!|(rqB|;%|=bfvk))p zR;q7)<5%TtfAy#a&y{le6q=byaaATaw(!kpRdy`7LAgS2 zwwq-H$c%{(DR~sZAS^~Z_;Zuhw`i$9@&=>!pBZa;o_}RUck>)LQ;wf_xm6G5cu0V;k^_9QF0A=$z@#`jEzpwD9@$< zkCCyF`s%BCL->6!=@E@*h2uHY^CXYkiFuYEnepu5lKY9Ovn~>u8>OxE8PpZ?BOYCI zKgB#xn+40u%;|Issy4JPKC)7-xbj?WX33v!(yj5jotd|-LbK0TLRFAvPB$qn<-`Q~ z!CFUAQ?3ONG8hU|LFv%09maIvqL!!hl`VMflPzSLemiZRyt`T`?&OG5v-(^Va|&%L zO6Y+i6Q2B%(NAeVNU8?sxi35|9(In#qS9jm&$AIBiya9ZlK7EFj_O&(zxO0;zj}{T zC%8rHpzs>Rn5@9V?SI@t#oPSC&s0YBWGoh! z^}Nl#{p;oAsbl4pmwsFR{9k{l-1X@@%LhJijXIhG<&bVc29%DlEnn1W)@Q~kqK#<>@NEpfg|+nW zM0#xdQCixVdcm}Gz>@}e;u1DW+IuQxCFkyBj`j>!6y;}eHIe=W$5N}PSy(92jB9K} zX^_)CYzkwcp&YK1L4t5Y8H{W( zV>yQc4`?Ssaw}0X;$QfwJllv3=B!5|>o;(6uB+kzP712p!@W4Rlft4~;3s>j?~rYy%KcK>N24*G>AU%jCZg_yf9bjv<{ z)rMaDweR4`a>0?)<-Io@ET8-RTg%P2(AQ}K7I#%s)fUD0sk23Vk|`K=`2{vY$E{tG z&lP)+3av{U@D3gN^3&$P+IS~by^NlIcm0a$V5Tj0%iHTDkGwgVEp0D<%tyV)QT6Zf zhc?Ft(&M7tI5MI3cpIozUjtw#002M$NklSn7K$+z zvlt|ZVsb@M4ynb*CgZD6@W;oq+9w!^($-L*y5DfYH8#p6c&QCzC68x3_}~dWn(?e&V5IM_p42U< z`_7lYoFh6mki;v$3ICBu`D9#4ln&YrbMheB%#FBuY2Ra^D4G=(fVyJ1qz(V&eP_zS zbJog7Klbi&+ii!-#TSPijNN*RiFw&fXu7HJ4eOw6{H(}oqX&*-04kv~$y80mUeD#I zn+QKMJa;Tk;Jx1wVDEhv0dJjnC zSUjjKtOg>OaFnP@{EyuW>h;;D*UERlbFXhded@{Ilox-qriWB7QX}iWbp|sWl!mc$ z(U_8DLq;3p5;s~w1g){+btC4$X_cZG?1v}iWDIQkz$t@W+l6evmc|?|576LmOdCj( zZUAgaRNbxzkTt)BZVDLdE?A=77V}QaKs!K79CD}lsje|M(vPsd4J=jY>J&M6IX`mI zzM;GN0UT^5u=~W|p$;i*LOxduSuC#WH=oX1;)I15{DE3j$np>J$AtM8;^9uIZ5psSU2oP> z$=Y+o_1j3O)(9frsx!}*utTUC5})}=Y+d3|U*+4yR8SUi6qr5^|M%^pzGZ(&Fa3J6 z960xQx%I>6ms>x?=P)ku=P=y&F`QQ6u`wHcFy`4OjEr;3kDgGc?jz~r(yEk@`FA$X zI(n;8x2wyYWG~{~i7#zk#J>ohd~Mw8it`T&8le7~IgeX|PR{K^%=w{6dApr5q~m#f z`b*`Re`#REu6X85c)1kgBtP>je&pd&{{HKalqViLUCurC0zbFNSg>~Xbh+T-jq-&* zxBQhEBR-P~TQ$(YnSnjVi=4 zZ{Ve1`em82$YHyT$CqtSC4}7P36w?vh+l;mW1kG4OFH}QP~T9EVNrW0#oKB3E8i~P{p!o* z#t&U7(Yl_j$uymnZff;Jo?Be#beOb9XPBLWrA3>0p(uw+Gu>%q4yTlD&MM|VPaK@4 z;TqV7M9P3&X%`w~lr_jknh-vNMUTmXHn>|Ek~GK;sq@EbZ_4UKOnK^*#59#qI=oOs z*8<*j!jOgCVRNm(s$v22U_e{mq*d$_l03gG3$~yGU!k)n4Xjd;B_yw$ApAfRA5G?= zbw{I#3UBo*S}1OA^7)igx;5dH-d4Gx2kQ@%|LQM3Sw8c*kLlS7I>gX|90o)>8`5-w zF{ug~^0ua$6g#0J#JIFe$-FOrs8jnJ3l4QGq}}mQw)j!<+B$;mElk@dc*i!{o2>1q z=VYetjG<}i`h{ZRlYTpWzZ0C>sJ0gkWjHCR}FK$lk%AY!eDrrMQ=8}fkm{D1aGPV}DODn6k9&9yN%~e_LIX~*n zvWS5np-q)WLVZV$XZaH4i68wXcSgjr%a0P|uOoH=QEQR!JUxApXF(!8#)X=Zb#%3zI}`XQT{p4ur|@j>hjqf713_y>UCq zU&ISv@-Cu5*LJwxmNvhLkE&1IZZ{toyznx9==714Kx&`5Pz34#Sfu{+l=!$a0#ZJm zLd+%uSBYxY<0Q`|zN*_!ANtj)@`LX^SzdT{Q*Wu%?47ID(tGCg$#US(>GF|}U#2(d zUS6(!SFxY*Ej&KspeMaWhaWM9V^i8$$IWW%=B93GB(31mko3g8mQ6UHE0xBCdpKm9 z?SaK@n0y&8YM(i|Nt?WLG~2_X?6pQ3QddsRD?N-qBS~@&kf>T^g;Cq%D}Wdi8PjR| zanqMMWZZS|y5{lEJhQ3yjyzfJzwc$;0(z1BhW6)fn|N6fG9|^woDapO5`6`a4l#D} zY@|k9IR^D{R`<4|;{e~u&>U)AcR%pyv!d@SUVGj7<@)Q7lv{2&x4ip3TC~bd&*&ah zdK@lN*>H-XJO{^0W{tu`J5$BOD6i@c9v($RkhY8ia!6n&84hU#`bp;xtng~f=**OE zPrkN;GavG>k4*zM1(=NMR%Nv_w%}j;^?_e}b8THW(sMh47L6xP9@DKbN6WwYcb_a@ z_`)a4yWVq2IbRRfGnYD}d+k|U@)j*Dr8B{9(j16sYqz(3sM?M_BuxPo9fxAW$SR?S zv9n|Jw8hXC*3YY?uukiUaz~SnOi8Ltf%Yc?8=}$5RLlsyjM%8 zapgK5Olad6IOGRx5=i!$Gkl2rtoj?#=yrH*JLrdhmGbgSrTp-FPn7T6{cF8Z_e^=^ z1qM&Oty#CA9z1lw8(R3~s@^1dmWMbb(ckK{GlhSIulp!Gu$_b53FniX;DG>AX&%x*Tvm{AR zoaw}69CM>^obV&J6qd;qne8YTAsHHHndqkHS%xyaoN`U~7DC3`=1KUfv}7>3=UaK} z+C1asA*>@`d|q?7`%meL;%j=-=}BDx(6g_)^^ktk-#nI&?c0C4TzdJY#@$1@qvsmE zfm{m!J^sO!YThNlCm9$!y->78^x0vv?b3w9EPV(u+IEP9?-{dq=)W2jnHzxc`Hzdl{Q@s017 z?|=8f^3wBfme*e1DCeDzlc^CTG%8z8Wd-m`z7~rt4uI7rlQtS0rwCoqfNo;J1#3GV zAR@()kP$jW3wa2frUeEN4iiLnLc=Qt`;ykN9`2inU<-@N`dQP1@UXJP#_Gka_THW9Netk0I7Jc7IA5qsh z$g?;E`y<8DkMiRm_$Rwsw%C;-9lB?J2(6uBG)bb_w8$N(%HSO+Iv{)wMY{}9|JW76 zGj7?FriH!T^qkCIcTbaTgYLv-+}hL2X>o5SJ*O*ukym%K!LVPSG`yC#~S5$#RR!_AIQ|b}}(C*+(Ng z>RTvd)}O=XuuU= z!jtzK-hZKu(UBRIO^GMB4R>#hw>@D9|rm!_W8n`85`wIkD7@gmqHM zuKwFuDB|-&JxcYW@J{q0i}Wm#y@)<-gfDrwqn*PgZ}O*1V(9Z1c^^4AaE>LvJ!Wv5 z+IXTGHp>BdoMoar22HEne|apWU3od7g(rPOFbRuEk<0pZV-fy0Umsb3Ease#Lih#GPW}LJ>a3&uSYB zMcZ3_9k_neXU6heOQx}0yGhN}dCND~UWp&-oyyunNSUqfgr%4km#{H*Lq=V2f~r!Y zudNl-_Uj{)Q^8r!Gm+EgjE(+mNxVW-zJM>Q9jJX4U{3MoV|;;UM)i$z0gq{HeCSsv z%P;PIuKZT>_hWBplVJI<+J{A-##tTw95Z)UX-?*O6`M=yo47*l{z)`wh_P52J)e^r zDcI0Jy{cEOf;*@;%x!L-mQS55pZw&N<@P%+8lF{TK1UN^r>lclIv;Rapa|B z05VwhMI*3KMRC`JZ1s@KpKfPaiBl{QiCA;h(=zF1uQn zueDRZPnVr}1^rn)Pqt5sPUNxk5iidf8wQy5( zFi@Gur8oVQHp)1K!H{j+NU2E#>*vK{fXrXu0>&K)+>WdpV$`p&^SHLAoY z=%uV+lP=2Oa!i?&t9)DF0SF1uU=Pcl#laSvE@+0lnBcSi04kS~0L-O>9-eF$^M~m1 zXnCUq5NT_~!ln3;%c;aC*m=>)OA=(kp_e25DbB65Cuw@=gg%FH?%`AAvtPKe-2UM! z%2n6tSs%R^f{B*Sl2|M-r_)Rxzpk}l`Dk%p%O?)pl}Urgef(aNE_HXYK_cW^4B0pI zWnCmL=@;R*gD=vtNaiB?)Uk*!@fpv_fj56imofDDOIROIbyp`d5v``#j>fL>Y``yQ zqo9j+)gk~t@_8?~+BI|{1Pqg8{6X)b)U(^iblc&>4{et3eCwCxiO0{D^AGEpj&h!S zM*X0~a2x;95?3eBXaRXti^H?!v!B0NpUb#lxXsyj@-R+Pc5Xc#0u~XlZ# zYz2Zcd_8Cd*mIcH-B$Lw_DZUqc#|&UURLt=@T5t2DWcibW~wGgej94h3*7`grK@?*J*RJI>IIcgK7O=3^Awv+ z=j(S!EfXF`8JM4QMUH+WUJl6BY4pUR5g%aVmhsrPJuA)CZ5EBRF`uR4#h0tAr)0yM z<(69y>-JOK&V23uqE8%a{1qAHQ}H~XlRkVNe)Pxfv$6gVl?lCeASpg-B?OQe02Uc2 z?B^T^%3(eiNFUq7qV{ZQ-fB91V#`8tPT<=!Bnmr~OD*%Op(ja{;8d_1K`A$+8pIEx zD({y%NQ4^(uTVggC-N-Jyjv-Ny+h_oRD* zrgm9d#YyDAauT(-2P$_8oFO`h;^?R-X9R5Wzq7U}6(mWGTU_vuQaaKm8z*3tHI9K)I{uYy-~+5F-vDdqsKr!o zJoSU*fp{oXI_pG_>oe$Ko0f;1ewG)QXvd)6ZlMUZ?XVfa3m3+^=GmrF7#57u?piUo?=psekN47BfFte96Ph32w&IHMusgmRG3K+ zJ|SVZOCvt0bclba2X_b(i$Q+s2t3I7kaS@kf~{l=@o3Q&R0jyJr(B3azO~l_QE0$M zSTlB2iI)1WaBwwe(BuGBNb60uD)WV;30s>HW0)|~AqyxnvTg?(1~L+%CBzLB%0_w% zZxANA=|cI4FlQ}H@{iamd9Z;zVglfEp_+t$d-0}?Gd5Pag_^NgPyXmC4&QeMgk9M;Q5lyA^NL*V@ajMMma^vedv!F`}!ctIRSxH`gS@!6)v(1vxV zWPeVN{<%G8&$m7Gh+QN<a7M{Oxrx(ku>MHhu182)kdc5fUAGo62^nv|)8>)P+j=ese zno|mOO;))k57NJ|7o5)>GuTi-dkTGh_somxzNc&Dv^)uKVaeO$ph*}sZ8~`}_NkT` z$M9}f2UL<9HmDK6PhhXdqM=>C1`Cd7#P=2HAGioapF-cDPDAmk=IDGj>ZKPnkH7bo z^0ObmEd06R(OUy`<d@ZbR>musnQ9b0=ec0j8}|A6YLQC^Wnn$S;t&yW>nodH^n^ge-5pg=mxF3IjGGam8Qj!F9YRt7nq?ZOc}GekKA%2Jp}3I+su z#EV1due<{@^rN7V5rW*AMWs!IntBFaO`Fh?>3w35iyG?19BG3yHYwpz2V3C*spS^2 z=`F95Wx}?8rueaKs>GopYlV8E5xCS5bzTQ97aUCeDPN05@%*!o$#Ga1vLN);YsH*4 zY)Hga9DE3w_@{Q#^_IW0tH;Ve`_tRXop;`$!Ri_<7WZp_3svZd=V@z4MJJ_S>WoEV zEd&1R9a&;A5?mM(0Gc0gWup@UAB5>YK;}Y^&vwta=SljETe>#g^DWA!9PpX$|1 z&>n5*@rmo@Bz#dkCug@Zym_Gd=Sl|ykbOixNjl`xR-@gt6SBjH1m{Xj(JfViGeP2W z89)2+bGmK*h4So^r}W&!d6LPeTB6mNa5Emo6-CLxC#50JQ~b$30MKD@94fkcM_{nS z+0v3uxZAm!#AJv~TdoqUX%@$oL7tc8u8O6V6XlZ2*2{ZtIH!F2^EYW% zex>Z!W*Oek)kIzb#v+rKg!w$sf-xp@p&7IB?YQj^h4^Qbmjwnjk!25#y&rp@%`$E$ zspr{_w#6-yo$@kHx{O;HZ93^&*lyFvPWi}bWhH!0)@p?tep9sFyXiveR%#yn4rkeNVUf>pP4q z>I?VnQ(vnE#y;I+Rh?LW-Hs5Sg9=3ZRkV+d#3 z#E-V|nC`1{Tc?(5BvQdO&>wx1j#?9=+7)JJ0BGAGP=@zQ6?^J-)$i zyv$qEt?k^!LmIDO4n<6#L3v_<$e4*Pp7X~p<#i_z{Sco+qwm?ba#qlz8hekIPv3Qe z?u@wDZ$PCO$ijEIJ8Yls2+M_{H_%il>NDqc>g;MQVGw0PUk%ulX(v=M(mjOX{28bQ z6p6mw#`X%bKHt+%gmsyu{YSc@NQ2YlSck`0mh*;p)n-ObW9z*Y~%$YAZVAuq^CKws z$y)QY5p`mG(o}vrI_g0SIXV|6<88b1=iXk$)pJv*jd&DGTt<$X6@tews4%IE*! zcHQHCg`byDzhcXx15tP34x|bT3+ADe;{6lY+Z{K}y`QhC!>O;V~??nsAO)VC={f-yntmyJ% zyjUqGTu}~mq$h{w)EP0yww_#{z=F6rwvbH6IoA;FknHKPZIor^noW4^dA7(+JP6mH z4wPe3mPAUX#roVHMI|4QP|LBEJkpYaKItT?hDd-L+`ZFd!i0^C0d9`ANBO~mPKPZR zi7H)Cr|yB*a_hlzbQt6b4ufqG2XK#1$z(v(E1*{A7W<>m)AT-kQSS?2vbA3`xf92a zs!KdtKJl5$%I*40(2eguuUvU`sO3vmzM9Cb*y=O=jsW^%ewv^S=1DzWsuzl$Y|;mZ zP0`j-s4PF`?i5-dN!mQ$x5FjvUgMMvAM$%0Ek4sd&0cjTeag#x#wkDJgcC2~X=$8x z)kpoO|I}Rd85)ZItTtHdfF=YU^)W0I)!4q3xGLkBe!W*jw;8UN?|tjB^4P=rw%x%C zbo;$-&)23tw3peA;p`}msZuxeiYh~|5i*AZl ztBqXzrbVwc!FkGZ)Ji8AbXSN%fznXxrC-9S$iY$&x?eTNa8*kPL4> zRs~Qab{?d;^vbstAQ&W#veAwfn(2%ihAl}dEPsKd!jI|0)~~$0s<$WISHAq^uaqBr z{gra#?Ha{4cp#R`*ZO&K9u4OS9Gyg3=c_xTTpG1XmpYms=awSDy%1J1oFWLvawXqe zi3g=-4jZPhQK}6|>nnXYa@rE@BNQSeY=EbuS7A7g>@{n<08%lQ{9mH+O4_=EEKFWlk!_azr`b?&$n`S!{5s2b)~FDI+8x)MRW_#vVwRh;Zw&g1+U&K&5d=-;FBe>tFj>`R3m~?vD(wo;joe z>QFpWy?Rmu<5GQQk=My<(j*>y$!e5#80<>DK=E}VQ&+u%k!BkY$ro|f)reo5+G2}I zC8t$|4YniX5B*Us%^+Rquy%k%qT%f@HH-W?Oab~*3rbwO#d7J_mh$worS9VG0;w2>9TF4dZkXXtany0<+ z8*P;R>eX`ZJ-;b0Jfo))&%Z=hiuUQJO+=d%^$q9eBkCQ%X@Xp;1&8R8ds?q+G{hYpAGYH!vQ8xxD|xRcZs83Fx>oUDa2#w z>$j~-aEWi>Bez6H#SWmP2higNqJQK>*cA1Us;MOc=eKHD^%e_0SC$|#m*ZU5&vO~- z4|+$DuF1I7oK4ew0SrFI;)+|1_118`!%goEw13?9ix=M{COS(>#_ zWb;5A`jP=xo_(dzy4rRFz#I{qAoF^9j!wxfGNil_U3*kMgQrcB<~X@2T>izWlZF!|yy@F1Yaga^@7%GF`sb zeedjSg~iy<V)Y-eY?wstHlDUkC*L-V zlAz6BKq;qEW(yo?Y-#PWje}?iMwxS|L=P;K(wTrny5&sDt(+}Yn{MT`a9JMqNhEeh z{UASdxV)(b7A#SO7W<5$k8ZK~c&JpMXF9Y4LS^D&x3bh;*|2#lQJTx$Dy( zF7J8o#pMz`htDP#9SjRfe@{=2xuOmPo5%W=EZc_;$w%;T-e8OWbpYRnv~eh0i=0ij zzO$vxJNYebFDz}(IPr5l3F~Q-hd60kSkh-aN7M4Q_~ZfKrd#?R4sLgWcA$+$YF_FA zfWL5@+K$i>pjDD8rjKD)oJ9w>!SiiJ{NxpVF5~Avd!hW~M^EY_)3251pWg8I!i>Z8p{YDn|twB_=LoGk5q(ZC%^(jxwmL)>irh*xfIr{u%?fh9;kqrZKuLxPom^aw`rc zw6S$VTK~*oa%-B}R*@;qSsh0Ev&_Le&^ckRHA|K3!ocfE4EENABBLU{&dVS4)x>hq zk)?9od(JC&eg0jVR2_^z?ncrEk+nkGczcd)!v-dxNAMDL3O*O4772(k(psGM?ZEKc-%cfg4YV zkj*3jKHUqq9% zZ#SN^YfdKTzk_{XnqaOAfi2H<$r!{`e~5Nq;TGeY+ani>qFL4B z&8XqKn)ly#Om_%Ar|0YkMFQ6@#rIOlyBYr zswszJ%vsl*f2V6>UrkpZ)|VFg9M!Iek80mT(*&V+-yf*5x| zJpY`Yt-k+Rf7<8gKRl{uzb?`4DbHi@jE|O=e2zn%q*eHUit#)P1j-22M(iWq&{a&3 zO^zlGdc#M`MfDc4MaCf| zpLHezSUFcMB5SBI!sayjtule2Ta-bJ#7bsBjN`JDi-)V^%Z` zvL#G84Q-$N|EPP@A5V_-&M&IF`erxpn;bTe;WZqNIOK3Uv;#&CxBtGR2(+MYR`C54Took~jmheT>8KIb}g_`kQuDfs6 zj4Oxbo^P(v9I%^VWrm{*=bG5fx| zrjDb^gTWUS!SzjPQP})chn`>}u7h%KLi>%~Kz!ZKpZE?wqe%iL6ojIGb?k_iCcmzY zjgnJiNEhoi+1_F0b^HMRA0U_8@kfI&Xn)};D&Oy`g9j*`6;WPd9H+8v#AX~5B%`WuC2va(Iz7DZuzO7{8L8pB+@i4 zr@(h2L^V8y^_1zwXw960c?28z#>-~T`Vx;*z+r^`1U zxJvfxoeL&15QyQ~(7|V0!ik`WLqI!N&1YC^6lVE8LnP%9M{Jxdvn$7{1L{21mS`tJzuXA1$`=YOvoCD zo=H}g2y`YQah6DiIz1q&PDNd=&alCOfuz!;ML>`i7c(K4z=r)W@hvd<1tAwXcOvqy z24-Q)8O^9Km8-OC)^Go#UoPMM-tC3;?LO2HGFW7DCN_fLz@#wC#uyf-Oe4F-6O>e$ zwt(3jB*|Eqev`O)KG)KY(T%}cp45@BG5Vw-OgiH8Xp=5!G7aC@k#vbm`XM~=>xUG+ zep&2__7g|pHTeW)D9dzaX9=HfwX9Fp@)y3d$fq*cBL4N)PHPG36XmBr`9Pl-*ek!m zU$_y_>8_!8i6aWXA3OSMF7T0WLC480r$^No#5JE&<(BZYVVDkhFFECrr^!R8-hLTi zqkCIAnWh_)GAldsocz7yG0v3Tms2W@-1Gj(?km4E*q-lbXh zuc?Dx$}W8xD3<%3QFYNes-y3YP-uvyYQ&{0+qFRTXF8mAkPIuT+JYUn8xg|{^-|`> zvOHR%DOu1?;adKTL!0t5+zfxp`KrRSVM^YlZ7%Ox6I2Ct)}0kG%%F+^K!=}>FlC^? zCsxl0!{nCgmWfpc0So}xo&Kmkhw=JrtL2ejyjAnkPhHlez-XjNQk(_}0 z38iFk&&Nh=&rh+~y#V2H*xl4E(DjbVvYlXT>uR&S6C&4uTOAxrx11?O_;#YK{b zDz(nLfgYvB0IB}`M3J}-F_|wzf$SpSlAr6Jsx?3T@94*~11euKIPmsLc}^20ju?IL%wz5bF}a-At9M$1+eP|51jt*BqSjapdaX?Oec&4va{mY;6UnU{=JCF3kEG z)>EbvPY7%b9(v=P_!id2k@KYniU>=ih>t5&CY9kX&kavkATW!<7olSfLzaIaO$AWKl6eB$-;zy8mEP=5ZWysLPXA8Rk^Ga0=6>WY&SbRR!=rwm8M z$x~rVjE1aah2N zWe2sJVj(cp?`kdM|FIvC8w{x zv|3(%;q!9v?L)eEuIODbZ5OU3g?tXfvkqz$S$W~zQW?-mv7c7cV^^o1WvJYHw`xO_ zlP8Xe<&2h}UaEH$uPk@oy+iMrNes8@#$I0n($4@AUu6)=BnIWxm09PX>Az%XbH`-a zPKfDr3%^<336X2StqzdWdLqAZ-OY;Wi;{a6_1X*=1&R8lj;SMl+`Dw7FJ&l@wQ%aL zd9{3w14IUOA}#8}^D5a#9~Ny+`GFq#d|0+`+b8@kJ$+U!@}9pwpvek3)u`aKK^$R2 z3_O*zY}K`~qL6Izh&CTE$yrucnd~}MF4AXyuD)hhx#!#0Yr{gluqL-;pcphAN zt`24&s{RegcMD|tK#%Of&nm>I#M?Fy34k;xQ+{Qe(Fbfum+1_Le3>2#zw|(HOz2ve zGU>tx(?#06Q?A_+8OdTZM~B;Rq_QK|%LP=pbh?-zVtaYFDXP;KU-+#2(I5VGdE$|` zw42gdy(G(4x!M8M6-OlJ;Qj}J6}j+B_w?P=%? zEp8ZZWd^R7m*q>@8d~kMLqiNfg}MAIYnl#;IeU?S<{mA5Xq{ztQ6V9XBkFXR(yfID zw%#!-x~~VUCSPvkE0F^<(RCr;{_iwkE12v|J8H{BUj$s)le72ko&V81gH{$m@WG-XdtxkOKynC>ehky2IdEuEOdUa#bdq?mAbXIz?B;V^rHGxK3+Ajme z#{$KWfMt*I?xJ>v*7m6jTbA{@$7=c7jl0VCe(*K5U-3_~miIzxQ z@+XIufP7LJA~~?c^64U<^;uXrBNseX_FlMB?z`{Ca>t#!{kaT2zv3mR$gmG#8}Vv5 zVn~zGh$-ZdFL~l$bdYjD!cp^X7LtiKa{bd--HyS=>N@EX_jfc<>@zi%*)%4o@@7S< zFPT2p%bFXj40b?HQjBhv5-e-@zfF&GSfl>#JIm$C$6wQv#h3JLmY2%M@1NGvu6?Rc z9GON}bdHAP%SGFAlz2=3$~)qo!)sG*2AIEf~1UwC5-VKn;v%^28+7z^^}JtR;!xw;u}w^+TdYv+i7jr zy|vtM<0a*{|KS7W{_pPBw|OKU`QAuT2qjze;>fpPb(I3iIB(sqFqL;xRoLem09>mkVPU)KtQ#ms z|0$Ns$0WR2bmDUuY*O;3-Z}esfBt%T@u|~#a&xJCM4f%f=IP;*`fa>-#(ooA3FxDb zkQ*d1;mVTJEm{J&z>`J&{K}E|j~_c+F1l=~{K}8^YYFOw-c)Xv9#s0;l^ptlSQks7 z@om~sUIRdm(hx*W9ft3c^UWQbE&JAQHp{!7Wv%Qn+G%}M_C(%27^7miR`W+aLC;U+ z=)RclS0eMFkf{Afp(VHC)i!wF3{lZ{rw{L?z^W6iLM|t?T=|3dS+0Ddy!Og_<>0~N zW%sU&Jy=}fn}}{387QW@v;hFWY6yBvBmW7DDxN+a_gCIKT++nYQOQ23cV4e4cjzhg zwbvE<6JuBUb19XHVoR^$qdd7DoZB$Q-11pM9K`(b(Dfp3>f^lc|LddQcdt-I#EFCPHtWpK(N%;-R|(m|2T z!C(*DPHpz}H6UE%fclo?W@1V-hBhaDBRZjN^|rEz&y&&eMVyk3a(3&bq|3e< zL|t+vNNh!fe+Ie^7Sxs@E88b%Y1;@HgYnt2k3Wj<#y4)KJ@i`AY1{S%ZL}mlgxV(BQ3j~`WRWJ&`gaubdYbjS zw#?w0SH9r?ziDBwN*vzkO@u=uEU2WOY?y?ZZ{pX|}V65kP>8zTI#+Ti=7;xdz5g?+?G zU^i_XasC-3Vl%$6ESV=of2v${)vmIC|0NnQURd_u7=C9%)6rsy0@}F?QTn7VNz_&Ch-u6m}OK?52 ztg}_z^94UTQZgY>0150bkd|tr@sOSJ6ndaouU?l1vqKCPWuxnd-0=%qKK|?hnHz{| zljx8eOBiUZxZpX+OV#1QB{wJhMijbXZPC&fb_M+6^FwMyPL$vI-S25r8+|V0#w$G& zwOt*msv*Q#Vi#4UHY_HhK_LSs}s&;g%5#_D*AdOcZFd@X!T-}%ZNlZCF7 zH-&HQY2)Y1HzPwH!C(4ugq6Zo(cU1azwk$5u0fsXs91(xiVxSL{bSZ#(-9)1Gxhjm zZd$YWA;Pdk7N2_JmE>=M3L)2>1;w62_6@7R}YhlKPNxVb&!134ZBk>Mj~gl6vOgK zeARDJtpo!?qLg*MRpr3d`7L=6x$jI_pp`w7ZI<%-==d#D3RYvW@)E&hDtUq)|y_cF?Q%D#kW zn0BUrr9S|VCns5+stete_=^Kd`~^b(>2%Yk(FfC=O<}fcFFt=nO9&5@k3ZCwNS~?y zr5!A{Y7pq1N+n|%2Kv4xqoFnSFmZ4R$f-(KXKh-!?^@lL;V+lM>5 z$L#MPA~=6>Bepg2ER7d58Z2k!pG)OZeJgH*BK ziM(I@k#WWg=d>coeY#o}m==9gR5DpC1lQD@_6*A50X=od_0Ey}83LQFV<2k}=+_Js zTOlpWMg+F>eH>#+MTPk66TmE)4591eIDjDn^^O#Bj97E(c~cH$%eQ&JM1e(tM+NCd zCKbH1_{JNj$}fKQRC(fw7t6CxzonhG7WB;&wx?vYF9(zTu1q^^6nsCx5Zcbq%s)2s z!_Mj)zF2zO+|ZCGQH&mzMa6=}UeS&aCmyP`^yF{)i1NdWP`1YFJO^*m(YWB5XUKYko{_%IT#? zY>akD^JUUgdXYJ$JM%ron|#AC?ex7zMc&kcbODXl&-LbeAooKKDCG>?pKyfQHf4Lk za#NlLy>pOG{(IkYQ(#= z^x@Q%XPK*v^lqwt8rA2y&pY|s*pcO(gBFA}5(gE_>=CmXWGnkmmZJ1H+FCGV0QHi`|V1pC9njW3Frlm^II20D8}= z=RgsiMnp*6^JLMcU;z;t9_?_t$P(0(0L!;;B~`fsTQ+QK5R#g z4+7hXI_ig@^Dh!uQtgeT@?)x+>Vqt!9x@)A;vc783!SHDv$BV>hWv@2g0HnMAW5J6 zQ*`s-)CPayEBHWoMaM&n575;?8-zawDBTB=GxVI~FWYx&39|=^n#a^e4ohcg!>CxPj}6O#nAq|S(GH?`d!RVsaaBcr@z83QueX+`#s~1(a_VJ{ zaE^jz_}%eHGRg9P%1pSzK+OV3ZMuzUL`Z1yg}jc^-S?^EN9m~K1A(P2R) z5=lsQhRqOl)A|G%diVO= z;j*~>XnF95x0HMDy`x-nU3_|gfg+yHeRWxr9`vmiH48=muiVN}|?R z+(T=5=Dn}0MCiC*@(-VSPiCgmU0?nAly|RJ%cBp!TwZ%wyGmZDcdr-rsI6myOanG; zAmVQuYCRvVANO+F$#_sA2)oi)zNBjsgZncRw0uAN+zOv#S=7#ydKqNfN;!7?ld|`s zljYm@eXZPi*X8B9ua$DKcCo~yRSf{P@SR2_md*u6C(3P3P7L=bD}#1up#SsqgF&H zcFR%7KoL1B`mC60SZTh?Dt{0eUokkMZ!5lYaH%}=^qb|?myeX)yDyQS;Y%!6rU27G zEWdLFEjr=IpQ6BQ3RwM!E5A_iL=T_!_pWmZqV%t53F@|OXUlch?JoQG>ysI`?J3t@ ztF}(JV4hUNEKWya;1_bOM$k|wZPlM!yP#)sje~IuCic( zT{BRG=&L(wrn-hDipKJV3M`dDb>vUc4hJPv0Q7@oy~EB7Q5Jh6S8^zDzud}GA5q}| z%ueyc(H?*74Sg=--;}2x{j3irSQ z#e)n)zLTG@IUrY_ksR_JiIjnX>7lbRtLs3G6l7AC^{{i`Of?NIe-u{2JNnA%ppj$z zfWDKH%wwSx^jajfrpdYOtU5w%RX!%CgN4PxD{&-!^J3sf9U_B48$arjP(%#=s{QBc zAd%&K-IE_W^;TbL#hXh|QH>gGHjO&->>#;SH!zm0FsrnpUei`RRou4yTseC9h`ukj zT>jDTJg6n8-&RAj)8AI4ff+p{9Qk>;yt2`*jaga%jmyr%iR2L01<|KnK7F!_0Uy#1 z(;e{!BU8FyACo<1L#i6e8uBN83f{^|nhXLE>QhIWp0V@k@Cs0fg%+h z@8Ybg6E2_Cu`J)=n@}vdB7gG4*d6faZF(1{1mWNmC3lJc=sKeufO>%+L3(#8f3%UWPmb-xDN^E>Z66~1`=>l zK_MT%V1pPwb;14ah?Wb!@=_@;Jo~vOzdkLWXxZuR-TUN2dZLIN-Ivd4g4OqDWC-So z5ClqxeMx$^ssqovimdd>4QRM`Z_#ErTht~p=+hLOR%;xS-<~N~T)9o(!@H>5d;ewS zI(6>p&hwON>w=z8DPG;SPHqSw$?>OX^|iiy$YUN8K9nRKFZ3ipR3M<{$U163Upm^` zyctpCoD$+!50$;IN0o8Nbjy_3F3fC`&;AC>xSb5^H_q8(cQx6hXv;BoEU_*D`CQeqCJJcR zc%sN&0c_+|&S~$7t!K5P?ozq(iXG+t`)??>-WF{jw&ea3dj2UDQFh3TJ2;uB`NC*s zK4y;oTEq{?f0SQX8D-uxjQL8^BrelE*K925fDUQ@&IXDzCMmDZZsb{oK*dl{l*TNM zRJdRzo)I*bKo&=YI0NrUknxy#h}n4>85*2)z#aIIju*AfE>9Gndg3j8)8}Y8bz-X= zVYld_VvF84eo-&!b#$`8h6FXGM$;XIQ8O@%|3hqGD}u9q|&otZzyVYi+}SIU?P zTRsp@V{zJ96(FzXV}^fCLIQMHt@A)O#Oyjz9fDT9^@BuwL-pgjj0-XbiVPCt>5S_> z1d3S#>eIvs$#v?q)glQwTh+3}K#|?k;$y7b9FHG6B94>gp8IanvW469zQi5n)?0N$ zLnZe!=T%{QNCkCjO%zGmVC?|%2pgiTS~&c@ok`t>=@&_txM4cs8wpe96zx!U(huRu zpZH7<=@LH$PrjCJNSid94QuI!?}^zH5U#PPIM<1M(R4a>1I2+NuY8a{GEvU=!g&9N zyVN#4a%N7QgB1{Ozp2kJm zumV`kdykronH_sY(U(-!-^lI-R7w%k&X}|EcQS+{o@EMEd-Qq&8Zuf6;w?`bPr6?B z>gs9TK97}~zP_#8eCs~Fm#FWFeSL=}Dr#q~vZUUyn5+O5i z<}a~aH`H<3Mwl9sX5-q8I%4U-!`jDD3$E81SSDqv;~7op3qEiwT4OLC!tlr+YW6!x${8Rg`WfM~HI=XPgjEK{4hWeK}rbvSkqQgN`dp(0X4Ee*D^kgqb~t z{*rVF&vb^#o%l?TgPQima&JAWZABhOEilg!3 zpkZSf0+qz<5|tC{fpd_EJ^XwFQ(b-d0W(}5YQ6l^yAN2)jaG8ft3-5p)f66)(6g z>g4o!6nug=3&f^zlCT&k(){aZ;p8dmg&SNB=52!Md9Q)`)|GCaoW&G7t%wJfT-a)y zobJnrvWoX{#G@8$MGY8F7CqbP&t;tT4U1(kyLWHZcgHR-|M+))Snj+3@}dpg{1I8_ zbCAWzN0=YQBK_D=9Y7W+POU)nuR71(bd!V_jRRC$HP6I{Yl!FWcw5 zg%7j(fzM^I0^;QtPnAFVgTE>d|JBFks_R)QuXW7TZ;`_h`Rj}_%qipY)Mw!OBzusDkjmN`w+YRFrqm<6$#0v3r8^teF@>+Kk!Kl|1-Xg_ zOPs@x6G2LGpZwEJq5t68^1bihs`nBX{Sj(9P-iu#kpn_B(8qxfSUlB< zj#=bEouQn7t>$!Xs;$DZJg@@)$3}j6v@{7D57)cSvs~exN88px(vH!$^3tND8^a~d zM#AJzc^M{e;xj#kpMtmiNkbT=o#jvEhJSccEb(gNd=JXH!g-0~2pkH|sQo&w4*lD2 zu4)6pcgsu9oYE#V`!tB;sUULo&yr8wxxox9ate)2EN<)uQEc{{z>Q+wZ(oo061rffi)I#ckat%M45a=rWKl z15D%-)DuT7D+_8!WM_ZfPRXFWbSTIY55Si@w{^NXN!Zg46e$qO1pBFnxGu+X+41a~W@+)`oA| z1y#$LqfaLpo@l2J*OYKoPdRmUB=zA=(1p$1*BME$^E1C?ZKAYm=Q({UGJV+ux_3)SiTR6xs{mqK6HW^hT0P>dH^ z+0l}+<40xIvhyyebiVk2=i`q(SN`?C`ZwjZ7fzJRuew-+CQS{9Fa{X?V{6>Sid^wL z0$_j zmzg}#=CY1pt2V&{Z4fKQp-ZURQB^pd^=5l}cIi>V{}G0aJU4_@W@0K+@Ee!}4Nrxq zeWs`lTHHLKRaxs|cSoKZkbaS?%m*_*nq|}tCN9|OFP5#72WZr(ev}5;&>h8ANHNP3 zcyD4wGn;4i^5LSUm3HWnHOo)gnT_RH+qE6{`v(q{ORqXt{_Fqtx5^J5ysKQKy_1-M zqEj_C%dr`yz=T%6c-1nR|Y3)o%X`THmU9 zZ%4bE(t+W1iMQS;<V@f?nWyM1(q5t#yhF z)hY5odlweOB&x`2lLkw)i_y-p+aDW>09(~=r;FQ9mVfZux9T11Ys;njW+L}dM6u+G z_KTGhq!}o>zYktB9CYfrzo3t6AdT{(c;N> zwvdZ`;j`Qg!;eFM9k{rojU8$v-8W0C;njWk%n`k-cv?>tcj$@YCH`G~4S5rb)LDn( zz851#ljdHTW@i?_2Vur5$N>goJ9cqF zvFOH@rg5-&k&loW?QhFP-1b+~ZGGm=7-K670y~ZhBM2Q1Y4d6W$MRwi!c;*#*x;yY zJXu9Q{@r&=dFsix%8So`p(oCls1A9mxLtIT=_iWZQG<)IL3eLfxrePb2*>je+9(70 zyy}%tu&}WWza5(7zv!av<@)RQmT%po&t=>cz9Tc;-(wODUv{0+2hgwo43=cLY@wkA zjDcd_uWgI%1TTtO29fH|{q+|x=zt|W`7(qmalMqaG3eI}6qB(P*0N5)lP|-bjzU2~ zWH*D5Su3I`gi0((t*lvw-V}`QQzJ3S*2UTn6mc?~f%WP=Ck;Y(GZUEE`V-nc>FK8r zl>hq=|58r&p=R#&4WBc5Dx_!0?0ke@+GWJdV2VoLqQ^nrwppDxI&#diM1AJt?aXU6 zRl3MQ4<*07U44cUmSJ@i^9L1qXpgLefVF%;uq`m=(<#}b&cOEs;JS3M&76Dg$WLSe z{#rK4pY@fpk&=pubC{;;wg}2cL^d?+3ijp#5FPgUClMAoERfnbMt{bYdHHv1yYcwnaoE$E=Tp{gBP8 z>k%>M1xnq7Lw$)$!9#q)HydtLPHWT97IaR@p|rz693v&-j4R~EK!xFO2{uhlD*)Rb zaZ?JN_BeM|Y9|{)$@%1C?b!VKXL=vwKzZzugXQ3B%jJ^GFOn>rCBFZ)#qY_g6VK)j z-0O94lVXzw&)SPReax+{+eh(dJL!BxhY%yfPVqY7v-m62d8|5w_w^genR8c;6pb)Z z*1hBzViJL>Is+T}E3zxoN*E+bnCvaI#zo)p3MBi}iX?WrgC{iDW^CwDYhyK^AZ9I8 z%Kw~FH$+NTyVm-l=)n8Pkc1d$kBAyiy;6_*`4Gl<=mb`!^P|0D#RK)tH|65}YVK*m zX>h28U21R6NV?ul)CAR~mv2)$wWoaVmv1QF{MH_S9)smymPwN;*}g}TXH;R3eJB8t z7ErX{VKj`WGi@MX{sn=Le+v?XQ0E97-|T5^nXWIPFY~pu=OeF`GL$`(H^jHR#E0~W zZ~3NZlC}+}`LbWbeTF)TS1Oov)!hz5R4=@jFJIEE0siMD^J;7O92r%{Wa#JGz~+&M zKPpc?`jIBLc9#>!cIjTGrGZ*L7|Tt$$8o=uKT5VY_lS-cN`0h_ZhE9Qz|xTImbEc} z!T-6o(9T)QQ&+SR$&Qm+E`74xdiw?Cmmj>j+iSsk zDn9q@hkBjtbA2y;hx+lFKwa1=_fX}k9i#7#95%$+z77AwZ&lZVc@U_&vyF0ub3|-! z+O2#rp`jn%z)q)I^zQa$mv1TefBy#Uf~qB`dd(I#28ne4%r5KW0gRq(<6tty4WX?^ zlDt#?%X^pZM}nq)y4)c%C4n42qKwCJ=L7vp28wA^h8QxNnW>Cr)wZVNNThpQ$VwRr z*ClFD!e?bTg=5puc>OOnsa6;$su9bwrm>^rjRX2ce2LRWZRO23kLiWj7t7O6y<8rD zjGFDX>;aLU;Sp@C9DBahk+xL99bcc$SkD`f)JI6O?F&Mv9L&goWOemI z!@m#VoF|8ZKnuDyEF}9fvu?|!;fyJlT=^`3IaUDuXh|Ml;y<8^8G zJ)X#OWCL}yk-%2!%siHKv-2QC!z`O;KdZU63tV$#nI2@eB9CP7(MwV>Ub`+*{> zY~0tX4^IvrU?s%M<&mF$qR#bo@`?*INrA6w130Z8WPr6oN1Vrd>;UO|Uw99G(;u>l ze@r7HWRDL7T)`puyW7jEA*!w(4#B#!QA63w{S5r5lc%cf67plOnNHhUYK^NJ7^yR z&%77!D!#2{r?0*Gc{zCSxW7TXxVT43)z(QJ{eC9K7PWEG&K-LsM?0f3NaWj@=k%Re z28syNDF%v7-c&!?ucLpvRX%!3?<(%zeMYYlT_<0t zbZ=I|*&!z!Oku-+XoI|AN(G?PLmF5gb?J&oy{S4-jM>$=A==9%7Cqr|A&&+L*pb7fy#LOu28Hg_F+daIOhC_SC9!0+B zu?(BykjrI6v2=mN2iCULg2=oMog~xFLuJo$O`c9?mKUlAv@)_O&)M=G%1L>tC(}ts zh&|yGQLbb+@urvl)@C7H4nYHP*cdWsAmFbTj*tPTZo_Ur#;;6Wosvh3%Df>o1iM(X z5CqL5iYVy1xNU_38{?>=LtMg*#J0*WXYy>9dgv?qNGk)yMXeWPfXhtQigsD!dt^)6 zX8C5VZU2w{>2H+peCI}gizjZ3p)2wpe#wo816Y>7mvITkAc+YK+a1O$9u~V!BGVmT z@+VEm&9Wl(<&IWv>dJ5^Iqd_VG{9OJL!LIBbmu!zMCVXn+R^Hn7hjJ)sv_!RjT||Y zXRYmP+!RE|znHjTAUkGJ6Gqvv43(|i^{(Pe$IHL{@iXPIpMR=N9Tr7P=bxq1%)TN| zH&ix=P#c9zKb01<{n&csoHkGi-K5-B#$8ONQZ|ePXxHFSR5+IxM(P)NCyto4^)_BM z(1l;)n&!3*7BhPawE+`hryC|;Z?oj2oHv6*&svIrSac;8rGVA`sxx#=afdB)ur{QM z8XV0z76r*hNFpXJ)4_m3-IMg z9U6CH^#0AN+ARi$yw}B!kxNU*%0vI)4lOyo)vF(NXx5z1VT9DU@1?C#=Z*1L(bO;a zF~10sv^S;oVe*XmSx>coEaj|E85FJUL!Qmb8qyDCuZLfcKJ9DihBA|8@D1*XJ-!lzn@z zkazCZQ$GBZoxNRNXN$P&6efX9zov$p}6`ndA?`)-Q(XAua_cJjxe&iHR`ql=Un; z=mXZ;00f?tOL`n1WkdOMfA{7t(#;bu1@6%wP_oew<#(}rblqViP zP+ocYxcXKXt8LShMGY|HlT*Ck8c!6dOI{D!qOwOU51E*hcRsOG4v4LujAsHvNBATK zp;d=xPe||Sa{bqKm78z5MDHwKq#f;L9=7o`UFBkW1p2*18C>tDNT40(?MHl%>%b2I za4#dl66ue&+U;H#p(_`J6UpZ z3)L07FTS{tvT}HI&CAx0KKgR`m;d6&YS2E{3$eR&V`XUsPbJk!qk~c%h*^88l0hQh z?@6bM5=c!MhNW^l@$;W95O~9}Udbp|)ZnD>g+#{&X<%)c4$CLg$jOVmryt61_4ILc zbcckrIkJr)r2se`5klujB2qsjAO_r(E^{9`BmXK-^A87#5(1n*5kOd+Obq*JQm@qv&hTXUeO8_ue}yF(*E2P~GP#w;v1*!SQ0v|M&o zDgW{B{e68dsFJnD}8Bc|8Af%1a4Dy$L5wTHgq2VFOEeOFI@%y7L(*rd?zD5;vxE2wRUfZ5;BE zhBtpLKH8%gC`Q@DWB?No%)B!IQ6iCqLzk z7y!umYV#BFQI9P)q1uso%<|2)rb9!m0lm4*-wgO&r)zDn&sHVKWw02pSJ1vJ%SZU8 zr*?~6JX4&n{!>>o5`Dp2eGLvTGq5MaF#65{?8n=npDAcpn zlV_d)g4m+Rao+q-zObqZD|dXww_O88_J4Tc*|S_QC_F7fs;g@#kP#TKmYc@bUMC`=%dZE8yV8xlxzUhIY2CsDN7qnDxW#yCx4@=sN zNuSHmyNdVTf1x`13^*8g=yO*3{-OsBb3Cz6>tMbmId`c<^zdOQN#2Qo-#5V;#>Y94e1sJ?T~&H@1l+! zZRzLG=h>=X^o7C#>T8LL(>-xbcYM6-}z?cg;0B%L5PG zR&Kjh`%y4&BH2g`5lYl|Bz<2MTxLoREjI&EY$tEkuc&+(=XPDuJlb+g*jU(>=NNt? zur&k4Arr=oDH<9%MuV&&-BA8U(&sOm%avBGAFz1&sTwexf(EbFy=Nm>N{YR}cy!H7 zJzMPl`JX+a@Xhk}Tc2pT;8yK$#1hnk!g+ZKEyI(GD^c064wcYkYtx#!!rYqtKb za?7nT0ASV@KZV|#??`4o)j=P&;A=jV&LtYoe=V0RcbAt4GYqCUCk(3>%S^g~T`l-~Jas~!C39i<&qSieK$?@494q_u_Q(DA->#>M+snn;q>xVsxhiF&`-1q4+svq6&iIzwYdw9>G9lY> zy~QN0lHHLs9bh6dtfvXGx!?^A6p=7g)*3m)rN)*fVdoQm8TobqS|}Y{+Od3*fg(3S zszr^5YQvQzvZ%IbAgG`Z-e1wOu7i4X{Y?4OKY6r#{>iF7j((wLAa=1QXS znwbUQNfJVJF#9oSzqH4HZA?1t!D|6Fs85I3K5d#xXoujN1{+u9cRp=`YTVw~ZwofniPZBpA-CBTG=Xe=$i!eOeMn4%-3hm1G} zJkKpG<@UIo!9;hL571;78}o-^gUK(nYQ)qbUr-~1PcSRW(wRk;)9A*xtPU9iK9<)k z($EOEq!|gGIG#DRTJF62it@Yv$&bo+?!VfN3w~+&9zby;uAK)8LOAS@6f*C$ZE)V9 zGplJV1Eh|b{3spu-iL`#xS7^DB@blDmto7AbQ!kv#DP!YS~S}qRN%)YS^cZbR zKg5s87?U$a*UBEFY4PaJUp_%jU9ki;>X)VPR5O!WY{K>83#ZGU{PACx=b!qt?AfF3 z=9d^q>W5G2u1QnK%~SyWtDTZ_de=DGu$b3G4F#u@oHGwt%vP^5*b~>q0^)pxtF=TO z^-QFbi9lrcQhfyr?+~U&W=l8Zo00E?sC%(%(Uqo0Kre=>udSCTgGwps8>&)i}Cm&PI5XvgSUIU9=mK8-KoKl(Y!684y6und57 zzO}@X!Jlq(8i;8b;1@-o!&uhJhu6z9j~_0(cJHg5^&Rpd4J_T>$m{K%wcjLBey?8= zZNK!Qo5N}p`jb_LRD^NZKm>BG0In^yce+;+x4&yy_4XZFld*M4@2`DOuDQNwpvb$5 zd(_7(vQN5cI>~2k8`<9?+eJ^v0o5JJCqSj`P&0DjOS#+| zdaCte=?jz}zf4c@t%py(p+9YeFKtK}@U(oBcx9b>^hC1q&J#dN!>g#&H}dBvpm7<} zA9AI+e|22Toj=y5Z*RVNQUk_!$~y;7tKDP6w>{!hBWBw0U;6WwseU^fe6bM|_W3ol zTIeo%!RW&=hr7IdTEA0TcB+Yg`OAsp$K~_O+MMv3a@%c}mi;%Da(Ueun)Z}oX-xJ@ z5}D9J-okd3N6nk{I6n~l|8$_}+>M;tN*_Vb1q~fZZNN2%Bu)8nGyMGHBjx&=ca(qfyFb*s zig%Su^gw90ZdUc7k$jE;rQVxR1I8yetelRZbmq?y+Q=}o3$dJ|t?z*J=gjkvCgDBh zY-}EV%bRo=wo;M~T;da!bZt6m5;qmLJVTnH3}};nh#T^@>5bB+?3Q;JPa0&la)-7B zp3YRak*74k!qF*YeHEp!*B0iwHJi z4A|(@3e}nAVuV(`8V?c`LI7MH5P5@X>GW*%k}ECy(~XaJs9B1&ZQD6@nitALzjaG_ z;K7Tv`AD$Szv4ho*YQDaJ%)9j@S%?+{O>xPvTw?cd3JAB7CKsaZG1}B7|lj#Ge1+b ziQiDD>jFDm%UxC1NhWu6;##F`p?}2Ecs}EEQj=J3yuRvPPhw?TeBY6muK0_2GzEi5~ zQg_rLIP)o;8@es4ePUA?+OB-v3t!^3Fq$?>Xh~1Ad0+9p_ey#4iGvy}9?|mBi}d}& z9h%5ziRV^L7~pjD*I4a^A@&%->_DAeQR3B?w1ExnUQDE^U#AsfO#UzFlV}U_tqb-p zmi_zpmT%v8S-I(^+K-a}=YfGAZsO`BUy);mk@O#JLeiS75(JsgZMikz(de3T9i^HD zB0u@g`-$SL$VhF*@G<^0Y7939+l)SB^GC((}iPj+MXGoHO*2aWEisGGgY5 z_2#^s&tPx+jz!%hx4ScT=Ct1bk?*hs?9&epm%W!PmtXshZTvx8Sc8hmG z#foJQ6qnQ(ZS#zpE%OX#+>oeuYv;y^X+yID-Cg`O*#%jDtxtr!2|+>*X~*c1n{*j= zN^7Lm4Naz#ZkV2ulk^!5`4UbzlrfLC+%rQGEY^eu7nZ6fKsl?-f@&+ zkUAjLquK!5R!h{KRu2?)Lvu$~{K^0mPt<+9Z^H~Zb<9BVtbV68k#$;2m@g>%Z@fYu zC%?Abb+;z3^fb{E4WhJ4iHd_Xr9NbXe z6n;ntFUOD`*c2_ejUK*I!m&CQ%WeFPjcB+w__+DG`pwr*^+e~XCqFAsJ@$cjX+Cjm zyO;mz4KDeT{IK5pWx3?achx50lO&nUKu6dQURHGU)z77$DPgU@mzD>9@U?Q|O~NsL<&yBB{Q-0hS+s?Uzi#qXwTMc@b)ZPQ zjB?6?!#1Fh!y)ahkYSLbw4)s|a3u4PfXoA+_3E=LgUUZeKcq`_>xDyk8<8{QK}X9s z#3zn>RpNlL?35ym)ivxWkIx{C6RWxOZmh~O+bR0-pXie;&p&s#y!6tca_sP;{E*$i zHPNakc-wbUue67>oydw-L!Uo;MnESn*GDxKvwg&)FGzHLy! zC|qkqGPT4B8w-QECltRsS^{uU0|ri#gifRx zD8BjTQ4JPf(u~B5B#(1Jn^@NuadWeWmh zluiK$hI{G{13=CkeR}<}MPks;mKPV^j8G?fn$(dYruT6ZbMZDJhIr#Di-RFQyeT6E zxqKQuPD7ZmDZ3$wvh8W%n>dDg24q>TmY8xo6PkMJ>_)2ys$6O>4}k!yfrt-I(-~XT z4;?f_v`rM`(%CcW)SuIL%C?ug@42r0#&7;W9kUDEprD2=o7sY#MvNPhmqVygVv`d4 zv}r8L0&PKWhG4Ttmq(0ij)W&@Sg#4sa7drR~T($5QrvXXW^nNxi5ug9A@GMtjN zQ8`omX-mo(E;R+7KWJM#UMI8gqsMjEo z$t{-cuxf%f5oZ4Eqn_kK811A&cVO@h{n)9GU+34*DP`BehPW={8UQ})QzmXsJzg9g zEqV~jKi8NNp{8;gVqDVnBIoHtM^CvXCS;%+qIy4QX&Y<{b|FmSs^q-C4DF8WMO%-N zX=hqwd{+jo7R60W*%QYk)#uDWv11gD_J%rSphyV2^zsP|@o~TM>l12Ee2?79#u2B= z$&*LQ_a3}nTfW~`ZqmD3m#X8lOFPWxfzMG>X?Ma2)1O;d#ZA z*|k|&sb`+dq-n#XPkkA-G{lpxg}1b0_?C7wjyu`a>}*u9+K>dQm*ajDu(NoCp4x1W zCGpx6@ZEzNC_ZtZJp0sVx_@1u`<|A{@Lr;JAw>qaz&yChJ#oPf;leP%YKKL+d_DS8 z^$Nirw^Jffh&3FYKf=)CSR#G!J-O}onXzJHg#uUN`H zZP>*7Wgc*_k(}#L_uD4jOEg?D(NFi{o5r%R|Ik2g>EA&PiTPZ|ub1Wx#;%sGR z&UOKKTc0g;#?Pyc=g1wCH)g|-j&#yxm^Ko&^lR|qbv0oZ#I>kgf28po?qlpCDrA(O z+Bhae!HOOheDknY*Sz!2x$^p}hsv9894#Mf_uU=aHF{&Ir|Lhwhx@C)iLOdt*5@;@ zfG3zt=CfR%`z8Zazmu!>mZzC4ePz;(&uc7t|(r*Irx7 zMOxB~P53l}TVFHw6KRQ&uIY@MuKmbWZK~(a;|Er&tqldO=*EhWbq(|56)&(z)<{2jKXynF(c0xB^ z>$kh%@;bWKq9)Phf6)fW=Sn>RS&L03FqVT&QXcAX#GYqfodjJ^YvUxd<+m=$p0T%) zZ#;ISF$&l4SEAMyHw)&e`X$q_6ex{Ro*f_}$S1aj9^j0X0IDrjhaq`NpHZdj$S1my zwMtL9Ry$n2uDmGUc(+k>rU{v0SH$gTwntAIX^?c|@uyb&NfpgX>E-$l4t!DWymxQ; zPyh4ZEcbtRzjhmpnJD~L!^w~>zv9y6hBP@)9LrucgCNU&ST6}r(jh+Kt&A3y@#GuI zOZ;ZSlr`j8PxcgF${F&Lp2stW8_G!8!*Gl@X^@d}W(R^%Pt0_Bwo?p=_r#QZkL$rV zMBJRXnz&bAUe+dDPn74L{Y#ADG8R*pG=ZTW0h#7xom@ZMtIQZW+iIX zLN$&$qb{io>ZWBJ87R_G(FP12D9Q)et$S4ypK*WGlG7b}!lLcoAN=9XdN=W!a^=-p z#;jL*m=$L>oP&-x_K%fs`m+g}Q~E{X34vwUkap4J=>T6rB=v7p)I1wDE34HxCAXEi z5t{X6ZbV)yV?0h>2_x5{J)-SVH(CxMkF+BQra~P*E#i+)754^pxpPxmd4!-1&{`v;m4Cc7*NypLFX~Hs`@|na>g;O%8 z3NQ(`LC%zVsUn%e4e9j2%j(${#2aCL8jXy%gYCknprZCp!ev0>GHCR0G z_KJ4h{Xp-_@*2=y`LX(7nt(^5`+Mq_S*NN8A7`Av6HEq*Y?8xj!6n}5mR?MwEo8vA zytJgrwPn4hxI@cOw<@=xoj;?{EGO?$PmjRuR?$tqk#W^U1YjNaJBeu7SCrYnQU zcC?FJ7wa8aPE&Mi%XW&guao52@IbK@nanM0o{?kpE${ip=jjZY(V6DS3j??KkSh%Z z8;Yo+>XRA1^}}E=J7S(`Ri(M&6uMGH&*w6J{<9a#|MJg&qBZtM^|)Fux}MWFSu}ID ztd2fg&TnCms78mi%Gif)1_C&(L^zBf(j7)fAn6X!Qf_vT1VRzsV-e=C&?;GhuM;x| z2{O{*lGWlmnN?I1gpQDDgB%^|7K80;7!?iD$_q(FTXz~T%QBIY44B0e(o!ak4e-!q z`JEETp-);wS9+qAhsaDG!F5MmnCT02#@#Wm%;arv^h$g$AR5rN0eEQnWF0{reiJdQ0^GlJepS47%#AS z{K4QZ=EdMr`N^C{HI^BE=h-EhhOu8{Y9J zrU~8Yi*&RE4UT9Cuzj{d>9htkI@+=Y76**{@DVd9RDF#O6ob}J6t&cfrCA&d5Es;0 z@#H3&=-{f;bdF88R!_OZeEF5z%l+TKp?vF}edQ9~O_Vxbj}F(Q9U@nfHB!Lo$LMO0 zqy;}k)6!==`KHnd-)OiQ-N+p3Z}n_e){uTEdp&&859!jT#AlkYr5(e!wBzx(AUpw~ zx{D1y@C81*gBR$qGth3t{f-T6o`2?adHV5B^!>z>`W(hN-S;k#E%cex)t1jOD2(<< z%#y2CPBLQ|bPg2J>Gn|9Q*0>1RiZ!Zvu2%SA0i0zFuu}(;YDt@ce;Q2+QH`m@kENj z!r8KW&#Imxo-5z@)+Jhkdbz)aM~>v`p#n9vos7X^w8@cqT_D)#HZ$mTjzhL&F}a*P z(5ynS89pd|!tgw5T+I9pkG5VD*VRV?HW7}=8)Hu$Q}l_?5V|qi#G_*^p1Pyp8VgiD z(LZCkCpgs(PxDl_)Me4Gp?v;APUSukAc|C7ai`yVx0J^p{X~S0l%UHm(;{KK(mjd|NSg9XUL9$B9#|Q85s0Y$$HsT_3MgI1?5w}`f$~( z$c}*`E+z+(L$b~M%Ua+3v!6a!o_Xfg^28$th1pYfU$9rZ3*v~;!J=8ghG2 z2aW+ikRIs>BW)90#$MVXr}1H)UQWnBR+SM{l~w^4rUG-2VU8*)665E#Tu~iqSs8+Q zrYgS&M6BiSa8-S^rVBd!SVRq{b;ilIJ4azul$$a{GBZYPP{R8l1T{ z2cR}7Bxs8uuiX*wOtzSW5oTUmSQqc)O>i3=_F0?KtyXNxvPEX%BD*lFKCs?$s88xF z>b1|akg_9|o-#;`PJDE7d0N9Kd=SB;lfEsc4$rAmN6Ve}T%e`z*OWW%y3`*c-y`>- zvqk&jT?SQRbj(maRtD*-LeCsY3x0}bhM^{sFLA?k!Z#XjMmI9&>D#QVA^lMHdibOt z(q-NgpJ~FDb`0Orj>q#NQ>Cl!-LDadZzgizO)QfLG+}y^Lc7Lme+NE?@ry6i8Q0)& zN$*N)V96>jCf9K$HfQ4=$q_O%@bUyLHq&3L6Z_DJU{&uu#&w{x{T}B{?eZzZYC0U- zJ{lc*+EzN@NTBbhA5YSCKi;BiXHgrHunX#8eQ)TtyLOcyJ#@S7!k&k?&JeR`y4|VnI8HA9{c<*MS!o;&U0V zzOtg*-hF7b(fz|@6n1^4(~K=4QQdh!x!-#zc0>pC4HIy;2J-- z03ET`?o$&Ohv6B8;z&IQ!)}iPhP%I%*_o)p@QuMa<1T~LZgyAFr>2l zLn@9D*D5#2GkSE*Q^gP7J5v7UZ+=n!`~U98WpQC&x#6}ep7yl`}7oDPZ6;wll5(Bm1lFRFLiG&ZbJM@fLz;_7xsO-`J?=^usBB z+uO7Y(2dci9Q3Zio1ckvkSb{vH6Whou`-a)j*&j6{ucL;n2^`wI`y~MRAxz&5tQK; zR`|iI_{o!{9MVMU8*i+Zr=NVI96WGZyUSlJ+%D1T-9`jzuMx%yo?ogX zQyFj~44Uu@xUIWEsPWi3igb@zuTHHqBDR)Xv;^)h9t*J7o z6mE1l0G)H3DyvGBruc%FqJ}f{vZD(|$7^{RhbiUQ(V~Ik)8(K4kAGM`dQaOt?__!) zX37{S!V!9ynMZEekajvHm>o~R*>t!>;1u_Nz>*)1kl4y?}rYu+40FIN67}SX#6ATKxkvfHG z%8gCb$#hO6iNll!LD&#Hp(b>N{3;_#$nqE{(#U|1fhN0@YNkpvmkbQ!N#dg7OM2ls zo^CUHl#QVCDnEVcZ$2sCdT2-az5n8e`grR%%Vk&S`L$dP?eWdCFnO7Qq8df-hDu+) zJF1;sdSj73@3Zu6y-v~0a*+SNZ0GT`bjTRe4)H@hL;4{;(_co;6z^B18yk_u&545> z&roNk!{?chiksHCoSpWvLUq1svA^|(mdpS2MZc5r?tzo#%!yrETBQ{by16k>^wVzX z37-Cb_d)X-m zvWUY)$~0E3SoH(MfDIbzuIhKEGca_*)gnnJD{e$W2VNa3K82x;a?7ti^tJN+A6!zd zxXMGxN`oS#qE$aDm+Wdc*gWQ47wgf7Ut?z+WAuqT-*BFNV>0L2uvuAc{^rR|J6igL z5f1fE$=WDgD|?Sr<1?=4dCVG5WX1)kk_o?JM&H2p5V?}{5SafM^ikMhJv*S1xE)4k5#jW65pYFYtYc1pKhigK7n zaKq@6g$^c6mY0}h)qA&Ea_A>GNKgm=^qC{&f{V_UE3et^cNOpY=Edb|4Hl~=$%ry= zy9m_RK~)!l&Z)Bkx@#}eX6f2kQZ>(&obvSb8-&uCSAIwEr6WVX*o?sRwJ904*JU44 zp&O%3IZ&;^*S=r9C3bxz`tS@CnRG`5tF)*cHlguWwJK{|EWa5XUnHRR)Q=abx?bhr z!BQT5^zHK6E63t<8OwaCMX!@_-({RB$6(T)Qs;eJLhN(CXfG|T54#5nx_8EdA`KeU z4_r~7Pj4A%V;g-g3>4 zz^r^OOwr+UIXjTE3LZqtY3YES(u~C8kG)m?=nsCX9h5%S?n$SlWv5OiyHY5}Z8yND-aJ3Fkq>uPwrPsp|M!HU&&a#j~ zn~3bHoOn!fxw+i?o!iRw*Yjaw8atL<*b=4Wx4L=e zQXnsT4nY{$l}%gjMogTtEGN(#29N0*lf4nTF`CwpF}W>1!>>H0@T)odGT90TFk zAH3$T>4c*wsI#Nc=PKdQu!^NCDq`J0F?3U6-5}BNlmi!?W(^YcPCac2-%UJz?6^ON zamy{&lzZ;KLd#C|Bt<(vo>iY`LGRy(U&+sCvs|&EC(9zG6Hb?lWKobhG9m|)<(79Cpe0I7kZm;8y5 zcUZsptdvI{{-pfuuMUcXgR{qqD`aBxi`l(XZQ6Jc9sfi0~GmWd=6nr z*Tj;Ro9gp0t6!9F+`X?n_~5N&|BY$|C64YzTy?aOx^TFZ>QS{Rg$*F`2S&g82p$tHL08o0$cb?Hnf1zU# zThCe=;QHiIk(!?pvskPa<;>3_2!qEZ@gk*aP_g709BJm$r&LtZkjRY)on>$0>Gxx` z|9xR$r=Q|1Ys3{d!;o$H7#&JNXF&=mzPhUS%62g!TrD5{_+{mf|KVrL2X8yqH)16D z;3Uc6y&@ck1F%m%CW`2Tb16hn*RCu($b4Y7Ugy&{3K^3%#`~S%q01Q0DILdTP2p}7 zJ|@4F)20J&<0+%XZ(-olZ}9_%U##TQ56N!i+_$*8X&KlJwh>!UPv~>>%YTq4n4KyR3~=mIDI2E%+hGy;j|l)$V_vV(+fj&9&W zIaG-jWC0yr=tR15R|_ijw8kc_^ljcm5l~&l->h}9Pbnk`e4XRBV$8DSaD@7#YW8nVupyek6il+X4u>C)&1!LdZ^GD8yCQ+HXo0LwHGa zeGrpKIW34R=svx0v>ZD8YPt5t9cmA}tGJ__qeYW5`CNuYz=!q)O*mwve8vEg7zpl1 z-G`#DoRKTBaid&=hD4?p`1&#FsrdGw-=tg51~$pAv*9VeX;b)#lYT2J@qo>zM}L$3 z7dS2lFNpE9FUl|KjjFHD0;^P0LajiQ-q7mfV6cp_n zvKzY^F$O_H_r77FV-K%rwf^33{ayJF|AW8u6QgTxKTqjekN2$@kK z={g|w*2))yPPar704R7pwj(ofQ>M&hTFWF^b-wW`59<((oEGOT#=5};N?ct}5Swog z0~C1{zQK_OymgUOc{;)kB$X6^Z5k&yq?k~MUDcUTxU`-06TTTAy`~&| z*GiwFdpF_3ysf9t5I=QUk1p}jAM$DA$!q9O(I!0oq{}#d^0(jE9JS+>RNXLbQ;IL^ zP>Dx>akPBxuYX#eeC&{DxA}XEOcr@3ZGpojuqFn8)URxk{>TGCY_ampyA>!5;&6+) zNrD^wBbcqTV!f`?C@|`^v89>(pn1nCcmzP<_^(1D&8Qtd`R{ee@^K5Bp-sGKMWln9 zdcebFAwSZh%xBYS=SkOTSYe?<>S74ugqF$9q9tGnYatn)W14OD~Uf@8%LQ{T81W zppWuFOX8UMOWnk-b8FdcBAqTy(r?7iIve7S$p&W%e@Op+#HVyzPxdem@L7vj;-}y8 zAJS3({BX1$wgK|ta^CwpdRUXhXN&ro6&)7xV%h)1A;HfOmflU&ISvfb!z5t>hu(&4 zOMpH6!ZP*q1d4lP=#S-_%p+$)oDC6^12Y7_(trq;-Z8k3(=q9{IH<(sLQ{ZDe~j;t zv9fwxdT6KE!g0Owu|?aj&+z9BZoO3}kZVH*6GfgjmXC@ z^?T(mJ7AQR%Zrkw>?l*pHZWqVGqxwZY8NMTU*x;PPwhWheth3k<*9uq%9&^CJzCi+ zMo9VlUJ8FX#QK8mnMc%v7d~7~Av5oz)&Yq-D5j!o zDKk_q6~xb*V8W6gaokkFBwjC9t{25Sniyal?4|Y-NfmZwjX3Y?$C!;JOix}UU;lue zXD0_Njl;$g7t?l^%8Mj$!@9&EM098bvOGu+_V`~_sh@K>=EwRcZ6*$J4 znBki@LCI(x@Ia;8tWJR@7J7DcmA*r6`6V!5(P+g}QRECKik5+_Bunv*(@5b%xsVV% z(X4X>;q6P}(d>2iaS}H%R)^|MQg|M4@eZRWi=q|t+#-Pl+p`uX{D}g+L-g$a*UGgw z?<`;V!%vhu?!2|!aMM}(Hcx1=qSLupMPucPJaqZ3I)?sYDwpB(1G@QZ+RuHzPJ=+WZ0`fP+Y@rOKy@#Ho1r|1)&e$r(e9~t?>65&JN z`e4z>6GbubJ3E5#o(xK}^3DB=dX55s2jBlVAINtJQ9O8qB)# z-WeM4QE9BplTGyQex&z$5*ylWTP|biz|yt2Lq3VKQNQKY(v0z)!fol^uke_D85QkUX7b~Ktj0A=))?OCfwcOU(S^SXVlJhn_JMiS&8upgdU&PEn3v#~lXxQ|_mwORzLg;Lrb-Pf5M1 zg^hzA(=RP;SG~tJX?ES9LsnOC=UQQ|H}$1nATZbxU0&QCBrGS292~Z=Ri~gXA1YT~ zxxL(d&kg1J>-lUIb^=d5QRHbhC$OqLxld;?LNd@9haQw?{sP)xvz*fpno8WGjfPs9 z7QwRKk0*)i^Pd{;!Z~B>@e&Vg~OHXX8aaLUw#lQ$Xyy8>`P#kKr zf8WdHXAkYu=Q4g(zNdG97Pg*QcJJA%&Qaf2)ZLXED_b+DY?!w?VM6?OPAC@NHA>RK z3cS__FG<}LDs93#ISJ^5C}3Pms?b2Pq{uL0t1c~}VA*1m()dJDQ2MiU#&BLhoxn+% z^Q0q?wUIOb=o>mKcgSZ#o_a{(%G8;`d2Ljbg|$1P5^XULP_ZgEl(+e#MJ& zg^u?;;wAxYOcYI`8%hk=S^VN1jblfT$)>hwa(I@$X?A`2!XMqK6)E>D>U3g-pMe_# zcB;WQrKX;;EP^}5Z)G#u`I+ab^h8X&jHjP;Q|XEK_u;2*n~}Ydd~AmAdi*kdisvxh zc&>8nIBZT9s4T`-n|O-Elk7MF^$oo@^wWn9l)w77-!Cs5IHgI!1!^0*OX-O>+m-pz z$9eE)yJa9o`wQlb_7-Z1*aH1pwQznW`4*g!4s*fjw(9&nDt{&47@voJS-LqHy%XK>C@%(b}C2`Uz z^GkGOqNpy$G+z9aomg{~3H+yA*7sQY+BPsoaeA<|bT~bZ?>*IeWs`Xt;w5}c!^BM= zoWxImj4ok4UDzbs`syiySzQo_Q*WjdMSQiPAh-3!0=fSIPH%QvF=ySG}gT zyGC0G81E{gC-3X>1c(z*7Zy)wA?0wn^|rm`lb^hyTyxEW2lv}Go~KRFK0*#*Ed%SY zo|P2_{p`5l6@Vxo^rasS2O%m$S+ykWWG4tLIsgI(2FZjn7MxD^x?Y|4^&Jv2o^$)#Kz5kRZ zim&J-)R)U!2e)dxb*{MWP+iiuRs4Yp2y=aCM@BnQ6k4rk^nq5V`pREjkv)}T;(0^| zBW*7q{_s`hy6d);v$dU>!^4;)a){i5o1#{V zVnP4DJW)g_!lo2ym1@ID)6!Y#TEU5%>FI-mOF!^{QS3ukOMfg0R3|f}XJEuiYTOvP zPafA}>%(ldc8(-YPwUgI{1qd4X=5J1cSFgq$+W89iwPsX;eX;ba-N4Cl)^QS~JQd_6exBB-b7P;gI*^y2JzVbj+$H6o{L|mp z0XG-b6TM zP6yv#8F=ZZhKQ+VTVTK!->w1{?_|URTJ&dGzL;M~1riFPYvwKUlK8Vec$KcP;|>Qt zl_xNxprgVwMUgQ9jc>o>G6?iC(a{4sWjgh=MC%`9Q6{0Bb+t~(a#o8_uz_{KkZIkL zbk3)bns-r-=t&(9a;|7V>Ib9iM3DiyCyE+GaVj5!5^t5;dO};U-YTE|+=b;+pS@Yf zw{O!^6b88*aHF!5zIDfzB0=jXl2(hpjSO{}no&0Edj{ARyI<;!YXx zqY3!bd(m;CIgW{^w||okLJn-4H38Anx*9R z@uW+?O;4PJ4RI2_o*(w$LJ}(FrvEP63UrGBQC>4o6JhRh!cM@YRAZtTr=ZG?yjVcr z6`#v^Q}6Nbd-AvzQlHcl#^rLxu5%@CmuwvSVt{2-SjnMC{iPiAQCg%Ui>I6*i?%-L z2n$9mg{aLBHn-dGZ2f2+MVjB2Wk#SE>dE%I5+WNzC z7n)?DV~_918kfW$q9Esen<%F6%v{FT@>B8j!L`y+8y#tz-T^DFC>l@{TvRe(rDely zu!ce3h;0yA=$iYhQW?L~NgjGj?<(H=K>6?f>o1q(s>6c)Iwg4Ya1N~SltG!OWK zpV;ANJR521*HG7B(nZuU3=FOv&v~jj2Ygw;0E%u_Aru({}@f{spxo1i?)0m@6wG5C&cD=X#s1Fx4` z@7P_w_@%qc?H~DozU{QrFW1*aP<1re4^IlDhyLQfV;G_~aGlN5JVEAdn38l;=|lYY zBA&8Smy|J#Cp`TrI?^*Oaq-9aCEi#XG?`Agb>Neh=~MJAO&d18cu>aIaay!) zyUZc=$H&>RJ3kS(1~Zy<Z`fnzwZ(43iEo&d%G7zg4xQ1*Cg1sP2Ns9iq#yIE zUS=JLvGOmDRd%ouUL_Bi)ETxAz|7mM1SNKCQjea``fZf^!@SG#$tSwGbv^okpkQ#s z36l7nC`p<7)KbPS8q99l8UvRzcCTtsf3key(-)Ob+;erg^fKj1^^5snJDF#+zz$+^ z8Bhi{;aaSOQ8wf79-|L!%qBLD-(${(Qm6DYbv^muZ3HLzt>q78C+!+wEiole@Vi-Fo4m_>TW!(Ry z4!4O#)RmPp)CaN!wbq0A!U`(=y2&bIF5>cZ@xp*<0K}pM$t)tUILDL4g>5I)ZkDy^ zu(#avsY}aMSLhHZ>A>fSwyEQ#P4SQbp5)v1YW~OwH&Z?dd9*K+22aULAje_@~158@<2S0A`toYh0R5AS| zvR4RPy99x*KRdjH2P7)Ec8nEdc^OXMJSv-n!ECJjrpmgfBLr>rQEH&WEbe?P>(?p` z@-&Yfawv%ig}f{)pw_wO58m-Jx{Et#Lr}^lH9Dq*10fuYveTN)S}ikd1hgQPyyiv( z8(zM5=T;F|Ayuc-;(>-EAKZFi_~vVG={=&Y+5&T#-c`J*-0|^S%GFm3iDY?UtGq)L zdf=aqYs+Aae#!=*n@Stw^IpJO`E5Sh@KEj)O^f$#;Iuqi-l-dX050P#&f4Kx->Po< z5Kr7x7jgVNcA;CH(y+-l^bXOp&m7U`GM*~m{`wQ;^_RA20JK~7gAJz9VxO$i^RyA4 zn;p85E;QZne6p_M91qS`X(8I~jL=*nFQK21nw0f|)p|{W@`}v=h-%#u zIOd}taCqz2$r7lBgL7Pa4lQEx=u;i)ZYc1MwA9-%gNJ-u9x<3{A%x9Cy2eCNHN;AQ z;%uW!7-jD#8p7uO0~K3Qx2m3bU*_bgqx$&tp>o|#yUNYCURG}X@P*~t>le#8=VrE9 z2ncPx=Ai7_M%7pGR2heDg&WVqW^8$?eRLA2o5rn&-=NL~(W}*MGrTr~J14jSwDJLO zly9qh(xl(8pUGbfPgz6xz+2dmXWY|j9pI_%8D!IS@HFwk2i_<@`0i8X*pcmJWofsb zChnH4@!dpycw9)FBpK7Fdc!g+G0@;S2Hn9kCTk?-PeD7~M>SDoz#UHM^i!TJil^{B zmdOFU`?HE#J@No`_GfN3ZaUnvqwl1vqZ}B6@s2MOj+3X3$>xtJzi;U~c;}W+-hE@a z>T30n+PTl7Su`(BOXXRT^sKt`^t5>UB0{SYj0cE_?XIN;QuGGN z2;k|tww|Xr4C{Z0H{_A{=_mdWFX3zXb2K)-KHrpJloft;nVg_nwh;~cNL0p5S(=21 zzNEt`AN%#2<%!4NC@(yJq8xd9N7=DsuTppiR$O4@K8U_F#%t6awjK5)u<_UiD~_zb z61VP>0Z4Vfs%^=qPMy$>#KU?@y+iLRUSF=eUI!G)mUPCF#mMw3ev*^9%ph{YQBIWi zTzMtJCj4Q&L7IHmohXhGZ$kDQY6_l97y%4ruSYwMPwlpjO3nhO5+^2#kO_@}5I0A* z?C|n4?;EZvzLkB)s(J30CzeWi@r7gMv0pt??)%|`R^_Uq&WlL7E3} z)nMpE^2rvOp*QJiZ1Kbq1!M$yC+5ZmvRxl?PDGDyXrF|XuA-By%=DIqaLX^-nQhM#H%yHiRoD_%Rl(&r-+}$f%jGZr=lja@Pp_79F4*fn zF8D#C6W4V3(kX4b@i(P>!-G$~A<9O5(-W#`B($14;$~dv9_?bxDxEInX8NIqL(<#G z4Ucx4LFYRo^2ulG0vq`)bSx|c|ASbO2h1vTgm?}9IZ?C%y|x{bPG$!g1Y&4704myR z!ytx1EiURP6i1p@w{?%Bo{00!F9zEuPaW5jp0_o?f2Dl-^Ouz0{k=OhNz~E*x@GOu zwo~4hf!FeqcE4zKTx2fX_=G`D6jQfe7c0?Rrfe6KOiMdXzagIqCVu+aUS^Os7=cIf zSx@d5%hRE0`K0WGt;cVOpLFTJQ~KmH=J&j*ZyT&_0h3^y$bC>VQO$sxrQ zm8-AWSw8roYxTK|Jvt4w=zTWzt?-l6G(cLc>Yk0(5YqOXV3~nNE*09yL@}6hC3`_< z#3w{3`9{g77MA|`|1w`;OYA% zxM91NYcW`-B(u7rZKx+t9xLaazolGr&0b9u&ns75wZ%Kcczv9EHFg=@dRR@!L;kp% zFSl{LDd<@J!PCFB4zn2}oD#B8_+~OQl)oPBIKFC#`m=&mFroaBrrNN4dyfWd4?cTJYt!dDq(J7ejeWyyB-vSmf5Iv&vn#gFRU)T8Cozjsyn%x7;ZmtQG1 zN~WJ-u*ZF znP~Ev0d6AlZpvPd*IK#`X@~KoO@AXvr6o+ygO zVCw=tPZa~#O*zMS>Cbdb=r3F&qF4MZL^^bfVaU|I*Y9sz1$B@*h~&hHgXP@wi?(N< zRc`&@CFKLR?uhrxU?99`AAE0=_9Es!?L5>4CFRCDl*%`G>GB?Vh$o8ZDSBtL(kZzw zeZfxCQJ<|XwBfZ_LYKCXH0dXNE&7e5CBGiGRutpoEIi6YHWKC2Lwg#9C`y&9_FO1T zP1LeAQrr`boI}WiK>#b+GubYuB>o3ClYD^elfaMwMc{!)Ha`V`@`*o~!ZHX|+9^=OAW2fmt?YcM&r28XH8(a<1=P6i+l zc0`kJ-yg*0{9#Y|R4TK7-c{rj)E|8Rm*wC7#dq}a&Vzb)QQt+;7F4#OGT`#we0ah@ zE(%`PS_9RyQN=`222J&#KgI@~{UixK88cH|0xtxRcm7hQ%LF#&Rehr(hksp2v#UO! zfeZUeJS8U24lmMD=MLNiX6q#qOhq0e&|piqU^xRz{28Dkaib9p`ET?e@^yZdZn!Q! zIn?=|6&5^_QR+7@)exbvFyKyIY+|CwQ$u*_r-3*pwZ(Um;K>c6K2=otpVX&K=>&Hy z>clv`W5oMKD_XkcMdvM=C>}k0tX!jx<@S%aKmFYtrhVi6NeByq`S$zeAF;?$w z!h-YiKC9#mhue~7hO;nY$q5F8=`#?-;3x)y^nvbU>L5B4 z0ZZGSP8=#1=yMpCU2$f)^R6q(NA9?=oUeDTvY0(l6tC4~AbO(c9SsWN1fsqyFV%>Y zx$CgLTZBx@x=+8wX~T)1elDW6IGYJ4pUu!D?s~c=-jqL-y&k`f;!p8O`t%bo+ni>Leu z^OGstR>gzKVzwWrR2)wd>3=GP$8PG}?91|PkHO0ro`@y?Xe-e!l0h^dPwbe}N*CIX z|0E_pX#qV?373_xC4CD|pE=mJR6e8+r{DF7i{hPL?!Edk7Sy8y_qSx}l+LMO+~+P? z;-h~+Gk6NQdol$bjtqd96CvWgi{1d*&AVZ}X5FX17Ds5O=#y?Ed=hu#e$>jKfFt zl=|v3%BMelW4Y#9@m98Yip`HO#OCGuZk4fyH&qYA`Wvzsqf6N6L~%WaLjjwKr{Imy zjOno!{X9N3**c0le+iedbT?99t`hr%Vik-IAhsps%2?__$AF)2ZI`d4~l#H#OfE8LrlZO~NGny*G&;+!wtR+&7pa3z*7~@^xWxpH|Pcj)FN4d_^K(jn^7$_H!%SJ&w}cwM~>@HRp_AeoC!@t#AR01W90>l4td-NkGo0x|8N>Jx-*M_&H$gvzW*M^D0X*3%?*Wiu+jPUyNpE^z|5a_X zdHCV|{)`%qUHBe@f*3)$cc_PxvT#sLi3p?=njlsvnB_94zRtsyx zJs&I(I&8^7k9C%{i|Un^^f`>5yivY?@6$?xB#4dx06+jqL_t*8rG?GdMdeQd`2A*H z*I|N*-SFdSA`7GHI}}Pgi^-zw*)qUm5Ko7tFvbT6;hM;qp0I%=fFu37I3Uu&M^4BJ ze0WAaU~ASY6Z*G!y$GF{OmNR-(N;L>R~fKx-O9F7wT*=nI;`+;x%sxUbxy!FlpC3W}b4g*r$=pr0$^`3ysw~lxZ7l zaY=g{;qL$CbWpEv6~kaRL3$K@k4O6?@j>)l-`}Z3yMJ8hf#7- z`}kRS^Y&A{`+DT?o8{t*7t8IpU#nA4w|l{EkG3;oFo=Lg|GIE>h}fiS>!C$juRf;e zfX_`7*JIWSKArHCGGn}^beZBYgT$f-DZa$?Wbzo?JU z1?bRaec=aL=$1NGW*ylY)zsmbL+arCD5=rE*Dpv?2g4~FepP=kGCi<|SMcXy$O|5% z5y>BM5wIOcgE($jp;}B5bz3qW-(KR-iIrs?v#lSiVb~2fJUUGF$8*zq=80F!@Bhh_ z+JgE=`WWy9WrxQ19BJP<>&AA64l)`@TNq6o0Zx_4X8DY;UZ=drC}v@)+fbKbe3q)O z=PA78n{-onnLg$Zd5qzV!KP%j{5qShb#1$3Oe9B}W|F`YKn86mSJ_G!{ngJNK2-kC zFY9v|kH6||H+0Ma0)xo!b4Eod#?{hu9 zzm#A9^0(!eKYLASJ9XdMB|DNK>HfyJn1v?jm^g0bU_bREd}q+7?y5S8r^Ehrr?b6s zZ;bX3b?&NHkb7iUT~8MV8F(?0AWXV`Ov1XSb}%3<2KJu3nhp0?P6(F0Z;MGDuNe6N zLQNK-VG_x9L3GzMCizFpfH7XGRzVq?pVGLQDY{DiVrx{I=&&=kQyvt<7t0O$T*e1Kw5wcnq18jh2-qiP2(d|*^)N(OuO6o8;Pdx3QB0*#j_^>)Odn=8 z<70H|(Io9`VTTd*X$mznl1z=Nrk>S(*+Ae@Et0xZkku!WUegI+Km5V{<*)woI|?7y zJ3zcNy;B{?cBg|AJSu$(7oRYL%5cUgqT7T4e}R{Tvwp>Nxl$&{%~;4r+19W50dauc zGj7Txfo)m9f;O0CgMh4$kSB!JRlO32q~vGJ)TyBvQK3oggPDKp0N8~UrC|M>_XIaN zmQ1$%fwNFyy|DPyQep%Lp z#~gMzh11$-(oW%K`j|h)XAEx)HYTs-#{kRbMBS_My)9Js!U6+>AO=`|H;BQW260Rj znFK!l)G3{S`lPm@9w};8RyGgt@FZ22D@v-gRMf-_3;l%4P+K@>rz4g@vs)VCM*TzXxU(jt?f>9YPKcx{0FFPU)SP zmDOWqug+&+Q1bD+FDrN5eSx>FyPFZMCyE+aBNf|O(BzPMUe<^5*rv6(ZHHxKQMm7t zT}-*G->LMhcknVih1c^P$DjHz{e=sN2psj*7g?O`O*%Dp7ZwOY{vZQ~eoH^Xa`BXs6_Gkw z29Zf8dcV**ySlq`fgW@5Oegr#oPZn)&v|$i&fgGnnhke4siyJZ*cHJB} zpe?9B-B+GIa9G<yuZOE3XPWV#_kb!P{H}*tp9&fnvS7XmN)U-nWS&O01{o zoN~2R*Q3h}PUBI)>ALC^fJRJObh?Q_CzpoA_D$U;=DeC&4w@P%^%S}KLzS@p2U19A9~ZnhB@fR$)-Yh;0~LNmOrFH5XtlJ#la z<}wi9q>Kf{(S>BrLWq2ELx>U#8f#)aT_m4DHR)Lm;R`EqOeTy_c;J&YBf_DPFXLdz zUM^B~r4td4&;@Klp|d|ZAUk0nJ2zNwKlY#;JCi+X`xq}muPp1-tP2;*`RDJ^_s?!F zzxR80X_XTx(cy)T|KFM@M(*dYQ#Lh^ISa}9oP|bg$TM+=@TAT3jHf@u-zc8xtC`t) zut~+a`EfckgPjGf;`0=UK8)4VEwU#McogRVuD5m4+siNNBiWiPe*G)IDsO6$i|@cL zs=r#)fDdzK%gjkX1?Ug;;^acQvKR!qF@*4%srfubLcpc1N$`VqD$kW&hv!Bkohr8s z$cInzZNN>iZ^IQ&vRlo&{>pqpw;n@`U=aV-2i@ZrLdZieBL$~k)lcxySMrRkF5Nvz z6U#m%K<>{(n}@7B8c1ugQ*h@q5QId9bd{oT@3MY-NFQ3S&U?)9&=l`?%6DAa zJakI_JmxfHqq?Rnd}xLf#Y}Jcwc$)pO@?vcEq>yKPu(I{;~(0*>YXPpKmO6d^7X&@ zMLD^m3F21mTh`XRty|P@Z0CKhZTj@eaX(SxkSrD*JZ|!UT}--3o|t){9rs=2VOBWW zLxkgM3nQ4co!zyzCqABBVUe->hKZu@^P=UccpTUzgO}Ws-WD5!H%}WL1qGJl;|dkI`~Q2%3@RARQ->92>MbZh$VXy}Vn zCegVHofs2E%Eu`#o-DQG*O`gz;1utTs%&Q${-T~Z)s(trv5Z6A7|Uy2puG5^z76{8 z*UG;AZPg_%Go=R=EF{}4Hrm)OLiJ;@!4pNtqxvWh%z*b9*~Q45VjG`R z5$={PdROu7*UJ@GZz~_a>)LY7wL6R6So0?{=$EPYnp3juSmtx+56gX{^^tf(e#GCG ziDD`+%)ppJE$npZk_YmlP?gbYP)<`NMT4VKX_(azov0K##H<=B7C09rxzgmvsy#3| zo|-O?T^CE*g8JHPO90zIB)|F|%d_RX-}y=Tum1A~b>PT(WzXJSKA5CiiN_*S6X_c5 zAOyu$Lv(Q$SMwpgk!433|KSHrfG)km>h%v$m*7$m!;Yuctz^*@ykyybyBe!yCI(hv1%>A`Q)+i=p4@gyy9u_RX} z08bJb>|j4^1!K&!s)H4X(?`)XwVU2g3^|1B;RjzVU-|MQ<;CZ80GGC$@?%nfZO}Ye zoM52GwtL!;kGL1l_%0s{X!N7u!lnpUeQ0I1jTvf$D5K2NSbl?BTobQ{iFd~nIq~ad z_n1cOFUAc#bO6s6=@|7#9C_Uj6wyaI5n+hL>CM7ZPY-VJ4840fRZ_2durn{qt?@2v zT^U+xO~nfg#*yeE%`2=*pgMFP<2!aFojj>}T{x!g#c!97e)58H&!=zIwz*RFoUMfc z#y&!Ko;p5JpXP==$zZ&NP!j+gxOOwLD{SCJ84Q4mu2<*t6tj@`itntH>DZL~X^Q!j zjg&zvhcGn#L=m20tHC`if$E{n1^=|azzF;d&->8LJM|r6$~g>&4wmxU=lE{ov-)o0 zKAqgSSHH8Q69=@hkf2XC>7K{H8(yC4$ga4j$r1&?4L$Se z96bB*OBcKx^B|r3ER(;$@smy2FzwSPvT|?sfFBC@DTA6+cn5`PD7&~1^Hk7dL+|L} zTX;vxu@i5W8$Pf{uYTxr88_`L7hO`y89ISnZ;UA4t2!B0^x{ij46PS$5G6NP&K?ug zvY`Saqm3^}H?ARl^A3AR8%pZdz7n<(yG&gCmPdw@N6KvRHym~$X?$)!Y=&}SlE{dN zjtD>B2Mi1sUYLe;0|OffJAlG<-Pv8-=h$JxJ&|EKukgIBr{*u~+lr4r@p^e!pUZgt zjRn>1+1ll$!w6Tg1>HzhAAYYERV+(B-}%JGWq;UwR2ed>WVU0IEC}leJfYtryE}U9 z&2sK}EBZ{)S^D(K`Q^$hclmP}zO|a%Ih`qMv5+GX2S@s8N4iVY$2`14sDZ4vA)NUC zizkXvFuwV9cQt33Z0nb$$!xwhPLf@#u5w{SCjsh;tcdq=wrPc){pxho48Gj)2;H5c z;;bg&;PBFmC(GBq`t9-`{j;x?D{nbRrwZ=$3LD$GVr8F63kJ`P9DNB%s$j@~OB@)X zkn-Scz}QX!=^7;X(1Ax{<}GNz5%(Z#u1YmQ&;(iHISt${(UG1t(Z&T@)lqyc)5--b zWL1KykCUyJm6j-Q;|FGTG^RpT>pQ7JWsWE0F1x|oq{*KMC6eVL-}>v~n*pgxbUJ(p zS3Qj<`f)$#lzXRJ1=msSRJhUL>J7o~XTXRKi%!RSfq+6RUH~FpzHE!ZIIEu9xAVz@ zlRBzf9{|?760g7fcKOurUsJyDh0kh#`!#+UdN-f45?$yJK6-@%fMc-Fp0n_{n}fy2Qgz9$_JlwI8wgzjmOJ@rw*1k zUq7zJF7)TSXYuVb^U{rvCzPzpa}qB%)|@zo4&o@I8ms+bUIH)lAs@CW6zYhH^lmEe zCNQc9ExTjT5vS~)J$WNJ{N(M0Eg=~XUiq_9D#z@j5oKCk83$uQM%+Yq)+%}{PkoGWe|rZ#|2aiu)b7hrT0ZVi_uhr2--E0N zQ@&_}@L-0gU)3?nKLs+;izkBIe^2qbjHS2AIp-Bk5ciZ1-F~s|zdOpg+S$|lnmhv^AVT`~?{i<|Jo z+mLSqrl1;|Q2rgW5r>`TL{Wt&wq4;_gcsLcaQX&1drGlIIqqXyx6(iAClTDw{192> z*g96q!pP%~pDf?`-eY=Kaa9Kho~tM5+M%OQN1fu+C$^!Gi8}syqDbxW(>y^wv9U`z z_~CMqGLc+NRfoXnh?B&A)KAZ+Pn6wh!qcU+mD(dk$QccZ!=%YLf|FUGM*JGML`|QAfofj1M3qi-{;tl5iLl13IL`)6QxmuL0x)gUN`s zCB3mK5t0X8_$M^$1cZvuv2EJZrP)%0Cga#4I}$Fm0y{3|;D#KR9#_(LsRb zZ3*f=dOD?1mjfO=-2{gfr5L0}-7Yd%S7)@ebX=X=aXnF7D%YuFx%Jj-bPC&z`eerC z{tz&_lMQR>i$vJLko?o>=&!Ribe};~Jn|ECkY#%M2#EX!PQueq%6UKQcRuCxA!%c9 z*a-g?zoltuhd5K(jnNEgTO9bb>BF>EPK(#V2?t%&6L?`))ExCpI{gR}2%a!WW;Hb| zfL?|hB&Qedd;Ekxn*BuiyKg^Ujvw8s53ir0RP|4~q2juJNdjU!D*a87>?w zmnD62%8J2fl(muI1p|`^%l)_Nr7NGB=$a51#LhM0WRm#=$9+BTdi8xtOj7HBR`tz& zhHaBMnudO!ki44&!fkMSdI2#42@-w-ExPWef{SvvS7E#WEp76-g^ zSX)bD)1aObp@s}`)zILFF6vg&tqVN5#cJBL+jY?RKB7JX{(KJO7e8MrKm7hPT2NZi z6KcjPY~ACNPqH^XY4NsnO{f;NwT0Jp7(2ziMhs-DOqx=E2E88m`u>lI+a+ zqHwi0`{)m1ZG#}vMiR9f4+Tw(*XR!`p5>BX2*61t|Zqsy6-xXz2 zxwLddyLU9W*Up|h^r?(b+n4o zqjv!0ng<6bFO++0S6L59-^N=eQ#6Uwre`>L4P_?H#(d?^S>#glil=&^hH!>Puwp2p za;~5#du+u|f|<07Qc?8uHe}gq+#`conh*C$ct7(jr-Q$$cNX9FySYmzSS-+M8GeEu zv>>u`C$?B~h6KBLXdBp?_~?@5;WH@2cUh-j#=|F0K_x%z`p|am)wlIjagQd7*OsfV z))Q*I^1Gdfp4M5uT;|PI&w~fr6bZI3?$=DgzGlt&-gU+%l_{_=1B#e?PQTQATyjWgAmg1jgLh!?+?1;A)r zu~e80j6XP90fG)hC*sc4kG|`w2AFh;baeK?7loA19GV}E1GrP$OP5QFOu0ZU8pY;` zDg(;6Pdh28-l>m_s0nEQi80b(nH$tEW@1$t`P!-N8zfD~) zOkQVkW^E3xG6*3Vjb4hvbR39&^#&4Ih^w~^$_{)?x0kx2JUGf5sug`EgZc*Vj5D`+ z3+m^;ctiQqfAl-rx)57`gkaq)mx!FZ3=R}f=VHy+PAL6C=fI4ck}-vkU7-_c{FIl@ zNhkNZp>yOTrKR5?cY)dR>A>POP19pdho<;WQMB@)ouY5?rg$ao5O)|)`oy1#Ctdo9 zH|wX))PquNTk^?^5e4*3GjAS2ead|V^}0>=B^3P*`Msl;%D?$vzFQ8yt{c>uI-{E- z!PQS;V`)gWrmGzxiyt;2YpQl^V6DorDsA%=gEo=lXcM9f3$K#0y%@p595QZelSYTQ zp&oWjDWlSLx>ZrZ*hmi6Ec9T7Lif~-{#aon>f(0->o-zeCJ@kWnaqI)ezqsrLK9`@ zFrZ*ID@SdPTyYRl_7%ZLeSn^TL_X*%ge4sqr1SKHcMDledi&tP^5IYHDtCWIpToHI z93Q-KhPIrtki^p->xO98U$$@Zm_HJuG@=(GroRA@IOC?;5@pxc{S47Mks;lB?I+m{ z@qmx%F@~2s#{AT0nAe0uGvt|R>5uUpgAMt(b-V1dHmIk@xgII&YFkZm1aq?1zjy4# zA8n1=;=^aKH#s5GgjQr`ywm)uw&FeX;2Y(;-#VZP;F+?sGZ~}GfsHKPM;vYpLqYP3 ztwdSP+Q09OAq_@yjj{nyDokpG^cuG3{(-arcGQZ_rYmlP4ZKKII0+2yb@Nyby_2u- zd>fXe_^v2V>X&u!$q{`E?~QWDC(kK&f9kq&#Z^TgQIEkrWye!RevyCp>t~rvP)QI- zaX@a5dB1gkk@X9XG^zEf*qocPse}*hbdJFQkaPp^oK0tX;-^2f*~HttUkj(JD9S49 zFu1umJI1qVF(wBivC;>mRF^5XtMYA06{h}P)4h<%;{JVal&AK;S`NLfFDmj~MQyX@ zU0fF9;K4+ZNg!uT@Tvy8ZQ?T+N>|15G?OvccAX^0BEpj1QRAuNg5DG2{>qsGyhpyg za!dz|?JPImcxk!*y2Wyd79RBBgkF6GJ0~0A{Y%DyoTtLQ#80i&_d6@T^fn!I0G;4y zUr&^aeqDPa8n|0DIU!XUut%_SS>XUOy@hp%BY_rgYND7p>5s7KK#7xjbP4MQG|Z*- z4P5dIaGPGc1(i=02{OTNX);V&;PpP8B`?j=xw5V6*=G)yZ+zq4^56W&UoV&5aJD{U zpiS%^P_SAb9VIJ1K?V(MWgskw2OzT(MdJlC^Gm(qfHeL) zCpMN@`Ma!1C-3mU;k7hGqX0U+;A@InW|p`P4!e?Ot zcs%JjRi6IM!ScmFyQ2KbpMFZGuw7F47SAr-urPm1r!Q1E4$I-Az)|kCwxml8MvYy| z5_{|?is%Uwe$}Z{i9u!(SW+e?)~G*QMuF1W=P1!SKzNSv9U~jcnxY%xjqyqtJcjtg zc;e!x%=Fu|q)Wd|>%);>>L6^8)+a|f7>PQjPITjNr(c_iRv}%l>O*)Ez(7VjnYD6y zxP1L<4|ogep|^M!R)awfrw}cJBnFePS=`Ry4(j8)z{P?C{IQFWRz+L#%#Fth!fF~! z+^CfRWB-c>D%&X+zHyNo@`SbGfM?!9u8Ex*I%EkLy}MKz(*lH>c)_m2St~H2o3^2a z69@Ijr}PcV=$p|C#VqEuW3ZT?=O@bI3c>fwyVE+xSpM(#^u7E}|)Cy=0rH zn6-YyT(wi%MxqLZAorNAZdHX~x^;;$Tk@b~0g2ysnKNUVmtNGagC|zXFCTre{Nmv^ zg}0~n4Wbm&E`QjFWmKV+f0|0$5+Zj4?S64eRWw6cvv9e zF`sq^>fVQ4L@N{*v5;BV;rRe1@un{pk@{oRJUha)uaz+zr;D?zi@H9kQ&3OnkitD@ zZ7COBw7cAV)4AoAn-|JO7l=_+i`U!;dyRoHzxsc17f64aw65x@KDNcg)!9*6M@$~= z(pL(Z#5MQX0O;z*q&%%PQ8aBx>X@Ywbd1&rBrb|{$_PKFGy>aPz0KxEagHv{HZXw;m|}>%ab{PBuEBAIITpIajL@OWMqSQkAiw zeai6V*l0J1uJY(e!jTG78#EwK6qRlx#Z0O2G>W(h#qsGT3OdO^uaHrFc*&9Cyn&!_ zYieVFqGg*W}BKWo$a3*~I)|1j0fF3${ zq^JcYWCj-;Ki2SyA^s!IFgw*;A7fk)}<7 zO-kCNnC2k3<~ur;Ob7S*)&-!62hzK!ZCp1X@ zq9*I$qIUW=2GyJY)K5|0Ocb?~Su3XcT*gCBm0$hxK>5`puX-@JbJrg4fLPX1_q>~k zpk3Mzv#_|;pG^SfiJ~VlArUj_a@`H?Qpe0e#pv`(ICx2ojRBXobTZhY;(!8$5cU>+ zm9F?2PK5qT8Da}>IBdjqx{)v6sL=~24wDl_^roHC7$XdYx2kgTqNPJ0T39s);mwZ- z>B=iVoMdlXq@UoFTNaHN9_aHG8o0!u1X(K@bi{(uo%dW&KJ$B*l#4Hy22z1{V*F0F zBR82|yhsySyZcTFrj}>wkv?+!^z3wisuEPd z;9(zZL4EAkuax_L{7CufL%%HF`rn@}m)~@OURIQzBw^s5-c@6bWy7XI~!!WeqWs!z1ZJk7|=ks`^<0 z}xZa zMd#EnaUvgq@5x7pkbMmpQqU;ac%LVuh7ctasFUF;KX^}EMeM(nXSQ6{aTUL6EM#=k zZ|;dAyF3^e&<^0M0v298dDmUOy>T0_PR_DjiK5S6r58+4v4bZ+Iq}@8lNEiS4RLs# zjHj9YR^2JS;d`)Lck|Bj(L1gwx7~h$-hC-$w@x~xC^_c8mjiwB&Kx$f5p5aZWO{_M z7)eeSb%h*L8JxD9KEO6TY1{OKovuH||8#f_bxOYJCr|K(xS58ZY3(knHa)|Mm+{`G zJoW3^7E$VBwq9&=5K%c!k2>>}i&*#*I_mowcf>B0;F0yo)5H}`5Vec0yrq*)fBv(# z$`8Kxq!zk0NM7Boeq*QVPxfXp=oEQ3Jz`b&{Mq4!3YJZnHrT-etG`yVS-b?MU&&M9 zO5HRg3mqf}tkVo$4Zk6>;-NNI^i>-ZdMvJLilD{Ttva!iL*=x2U+9KDiGhV;mD-0f&}JCQrz!7S&St08kC+YA)Vx|we>X7hJM=8&{l_d!+6pS z;TdoFP2p|?C;6@Aw|v&ZBdr#n(fXQQkE%@%Dz^F4ePI&#FTbqqr~6mRz9(NU2cCYj z96P2h{ybUK;-L0+$XELjGLu3U;ArEVJHnlb>SmWAf8-^8+!qArRU+=C;<74RV3Vi5 zT&shU4wvh%-Bmt%`(@?YYZl8n>bH05^D9ggnGnhfWk=EydZ@Vaxok#GmMOSWgs6* z7=F)sfHf9Pox%?`3G4AY{;;1(R-}{HC$#uIm+8P1vJ?x-!|AF4eYFEm1REV}b&N8%ZQk zNva>!GZ<7$`{Vmj+ND^2a{nvk-~HtS<&~H9acQ0MR!;3y7o{Jor@F3ciwrlaI0Y4c z@S*NohlFr7OBqdQ6NeJ|Sq=??L|9{kT7LcF21(QO9WN34FPT_(a<#UbuTK%u2Xo4u zoj6dg8aVX*uo65m1V?SneYWbw4vDn4#IIm^R!z99KKB#LdarQ%0vDbd#mkS+lxV=R z%sVsC>xqXxhw;YiFO@q!b$0oKKlnts@dFyT>T`E|>&?wk{OJS2PGEyRZQBi<<32;W z?msi>f(Zgu7NsGBwhpXyS&qZ@k~o>3@ptM^$=N91DShBO|xmF4N~S&h}(+4=0erP!~5h1-%tDK)!!7 zp+Gi=|MWUga>#K>1rN^I19YrCt%1(1g9q}ldWH63nC@76;z0jcbwJGQ1)bSU>3^`iP0z`tYQ2LTA z20k4^VyuO~7LS%r-25M0XS0xasRHrjo4(Q@m1}JcEpxJHOkF%c?&#IYXz$&}} zmEZs373FiEzemS)Utcc1c&oRc-#3yA&CCD`fQ(_;JU zxy*n1?`B^x7uYdhqdHh#zXdt<_?A)OziXy2wWo|7rz|iEo+alPdf(tG9S$`yE`$85aLLIXJBpw=I ztmv~QC-oA`DJ>f9K5Mz0v1h4#wO#MSu< z+1!ajb}WDrgMw>dN6eu2=`vRzBXZmJIFh_!&|0#FGKRRB-og{MVFf5<)klkWSM;28iv40MqL*D|9;2=5D)td>b+8zyB2aaPPwN6)q4t2Ji?G4y-MAbc1&Dk# ziF3i^nf@5Q7{J732D5lV#CH-|kkO`nwYQio7Ttr-I(tE{eC#M6`PjueU3gD9Tc69| zDNs-bt5zrKAts8XfhAYHETRP1Zc^32e9x|(E)x>aWejJ^w#RTMSkHl{c(#aZ@!tr2 z%ZspE8^)x6iX2-$p@%+?KVHg@?%StD)MfR%yEJxZr;YkW9s0&t-t#lza+rnyua@-c^T$sT6b=`G4rR$d6L72YJdEredU{f`%ro6spra5Prg~s zKKE=@>~4^tU zYx{ZE<9-?B6LU6fH5X(K*8n4!IrV;qoAxC8dMLuLFr*3ryK5n@|a%U|5f?UH-DoWg+8ji z^K318#rqiUpEOxKp`#G}9tQ72^mi}wfv**_&D5}Asc)AcXom4^^~UVsHEOSB7Q1P| zj?X~a)IQweRaTV!9OZ!jOnn#`yQL+G332nHY}HR^A8jDK!2!WY)`fP)z`_&7oB*0{ z#q&U)K0YRECNd`$1d~(n%L5aqU>j{y;Ll*29bhOM2a+&eV{tYnirQ!4`?0s8t{y3OfA-RH_dW5h zB9lQc(5Sp~Gf?V<!fVN>j{95_#b9^r2ly(eqVkwIz`tdZdcBlO}*O@3{8)|d< z^C_ungXrx0hn`5E)Xoqu+$()yVQ1V+wf(f5I#P}vd9~bh{U7T?aE(yHAPiZ&VPjt9W#;E^&qQOrVZ3qN6%S~^t0 z0u0kOgVW-|C;4W0ig(hz+kVQ2Z!5cnx8W8ibq<}vz~b>Ql^-XdzVO>q<(H4_(-ze4 zm;e4>JXAh@+huwO=nUV$&5J<+ow_^r2&?+Vl3z{~YuS6ESOY> zHL=oUmJ|(CT@%(3)!SEvcX}m_IhuNwccVrhRN1tsN}vG`VQ4c8OQQ7QsBm|)AgW~n zcL2I!z*m2<_dOJcU!HKN6d~}Ll_fp>IjO3`iUcsC8hJ0Z#CVz_Y zTDW7pr}&%>d?ShZgHxrt(>lMJI+1{95+sylX?9DMy?x$Wb-%I|*uCY{2#x9rtZ z4NgGrQ~*t+)+^-+2Cv>pUI+@%|IH?fy`JxX2s`DMZ8m*0>Dz&dTedZp*5YhVdu)I$ zYP4&d>Wf7m8nBYWLINDgK!nTAqngUo4?Y;~t#C3wo_4LQoY3L{-*cmH;OPERjvkKh ztN!9=&zJkY_lzcuyEH)Et7JY4ppTAY5A{A_t8tlFs?y_6UN|9i?XH5xyyP>J)@3T0 zks9GK{N~mrJnE_8CNebZ%RhOhAGm!w@nFDC3?|v6@m?A42cOgqo}!5&bwV$uk)Ci) zX!3BVeCVTR>8avXIstXNpDOZ%)`#1`QsU4n7w7=FURm__!awQAn(a#{L-gl=%#GRF z7~V!;vt_V8MJsy@d$asn9`BU*di1TVK1^BD#-q4hS4upn!zo{Qfm2XlFONR@TP@6Q z(;-GWF-(gmTl7?sszILXQFTc@GsJS;$vC}GlM_XD4a$yapMJ;C#>2hsn-dircycB(oy)2Qe9}5rsXu4?1r#ZBw5w_ztN}Cn}&Ym@NG{H5& z`E^2baVaQ6Ho3@{gAIzv$)#LH>(UZFmewID0N#+cO()#)8m19nkA95ibYNq8w6e$2 zQ_dJ(7z~{{FSyb6HL$q`by$rV%v{1; zdftgQ3x_{s^h8llpX0kZbTs6W=8QcsXjgW%73McTdb#}BKfA7c>5qS> z+;Yq1WiKy7tAp|J%38s42Ov}NNq59p_OydR)kpCzlmQPO8Ij_oXM@{dM`{{?WBsMC z_ka!KJ?7>@Q+(R?ImK};oGHFjyiNx`l)o{V)Rq3JI{Yfw_Bb_Bq#t2GQ~Q!2js7N2 zzQu+(1@+;F-zxWh;}_+*14qkinmBGbwM+KMNpGru*+JMIa=B}z^i-nyomQFN8B!n! z9Hg`l(y(T9#0_u*7IL! zUG~2K=xGtqDgYR$@R~lol1n{sp`nfC6UA(AXsVwDBZtW*G9}0N0}bPMuBz^il#ktW zPWi%@Zq<9r3_*j8!36Ac!0G`EY>?+)TM`K)z3NLa9mySC0{@@m58GGT&_;6r{TNNl zm-H4V)6(CltR9a-Zzqb_P<K!X@mlGXNrk{DbXi@vs^5o;MmZzRLEW6=z7<(imo+R3`v12!0Nv3^>*6mFayL<~q zeo@B=_(RtyZcHOrB+?vDB;XMq<2lM@Znc_P5mA{Ks5om|#a*|)WeXQ5ni_3m<;whZ2I(_-1J&sFh6pC?X~4ezJ94qzn_ zz*qo?2?nJrev;*!g0FDu)s<~#jGVY0dO+g#kj;fQOFxu9l(t!ZE&V&?y&iolYZ#`r zL66;28Pp%=j{N#p%jNrj_h@^@n}IcGER8L>-qNU*j;7K1Znrd6u%ccDAhmVx6|IGvC`R86Q z&pvgu?Ag29TR-@Y3KfarV46IUq{^+Ix0c4hz+ya*kY#~yp_0=MQZUNYMY1E0fjMRn z=ohJh3r(eoqCB$H|ZNymvuDId{5s z?1oH-@t)SDwpMb78fDl;9Y{j?sShB9ZF>rEgJ81AO@;D8dmmsU+hDSo9L$c@NNh$= z7Trq?7DKtoj0nJxmfQ{#Gny+bxGo<+aHH%$obtSfn!42>(lYifIAxO zPDHkaF2Q_;m!Tbyp7lS(oq`YXHX9$)VKY45sa|99hdhTk!}M`|qwHB(*Pd{_Ch>|&VB9gSs-HI zx^&`LIs3dVI_-Fmo@iW9K6clIA39%NIwGFSKK*o?CfZx|q_t?wck<*h zE!Z3@JI_2`K7QAg<)a_Fpq$6I@WcvzVoer~YLV&&LPtt2CW;6q%@akbjNa=_6rsud zb>$53G~JL#@`l|o4Op8_yme#vZTfoQwRpF*Q*y@W!A*Eem$2Zg!mn*@RTI2bKZ#fU zsVVK>U&=!dK3$&wt)3ts+o6e}K9`}1BK^O2np8vTCjO4oZ`1D!2O|(~Z)5foYV_gT z#4)~OEn{?fcs(`fWCyEr#Yyq{X@G-~EZ&TNzOT47dIDShvmY%pRUcxrx zC;gO+DL69P)5+Gt8|qVwOGRA&SS8TjKRV&V+S2jl<8PFoKKNMq$xj|B_kQ_6x%ld{ zwX&eY2=pY8j$<1ZpdzR8(LV=J-2j2QrCO^IhdcoV3K#V?6E;$GgdJL!g#<}b7&3eQ`iv0&o9s`#8V`Sf{7xIt*&--GSxYhQQI82 zaFI+r7cBlebG<#B9-nOMr$;?a^-lDf(rL(Zh&N0h*G`q9@}~~wCyG>zW(3q%CIYgf zeb)+=hyC)y=GdCHRWGrz1A+k~AKJd}2frzQ^%p!N-!uyp;`e#pv* zQRSS%s(Ez61#d7=uO?+b7kL+s;fYK8iE#EzL@77ljFYQiBO3I&I0T>C9wj5VwkT#Y z3wORMO+{_X5H69AmK*J|X0BroUdWFfBI@vKTQjbcXkSbS!tY3}kq|n11|D)6AZ*>L z_mhvjRj#^zy9TD$mz!_9xLkf!Dd%eSIX`-l89s?b8HQf3Qb?hZZ2z$XjDbc|AqQwj(bfV-rao zK{pkuOYcC%L=gm928U&A^Fk1dL7a5V51ZgqN^}`~Cg-OQy!qhY zL%f7<#vjU_qMed8q@Th|zJXus!B6%yuF}16MTa~sEU+~+K9{lY$)n}zr`{^hK66xk zFHi5bYg|@sL}PfKBrfZzqQ~_j;-2X-oGc|4<{5v%lda$^K4{FZ?;tYoU;??Yz*A=y z{*URiG_PwL^BFoI>6&u&)r(&AKU423GF-!+mUOcQcgObFy2?GjdwQAo3o45n@GMh0 zuyoc*$tfjq#>y>WA*Piz6_yl)HF{aJ<)J|r2z8vurH6-J!9S9HHICWp5~*A)DeVQj|v9$fJQRU}VD(U_Tl*V9c{&1AZ~! zH(L*Wurapa8DU^8q%Be+*%B#=Z1!}My|DLvtzN3v>e}lr<^S)0;zUN~{l4$s+oWjN zaNPT4M4UKVM4X6>h>VO(`*4jfuZNrI|CsuO3@RjTVSu>mvaY(p z2Szh)MpQa1!uDC@>QKee&yT(jF$&=xW1$+7m?(uzNlEV4|oAA;S%}pRzL!c5FF)|J|ak=A}IO_***d^bLJ- zMfVKtBv{eujw?E;-NJ>8?YP;B4&uJ5Bh6PO)iN=TV^Emh0bP(COt^w*z;L0w0;8r8 ztHEBdU}>L5fLq5a%hez!1fN+VgFdfe?H&q>F3t@g|M5PU<6_0)8jHHD^RKQP*SGc# zma9IsSD(wcxZH5_9#0ncYO+}8i4;QAHT@Ua=7&fwRkaGKia6Eb%u7vJ=wWx8!G~Ge zYBHYEua};5Q@n(4#-GaG4DBr3^>hk(Q~+&FK7Fj~s@@xwa!k99xi>!j^pWz=gZq8h z)3)twKh+|t7Frqa!^f`*smA>Zk!E!s!-;-b+dASP8Xf>>0?Fh+70)+1xu0QETRB}^ zw5L{&Ypdzua?W{M^}ga6<%SzC(zz2`v>jEcLP57xZF%N%EqpG6$)oKCa%Us$CVOqt zm4w0B30{Msrvqf0>?evOW`)cv$a!$+k`_Ka9^pRT_Qe#!pJg;MD z6!JX}7x=vNo=D-ELGs5B9mz+OaU`OlpDgm&8Ru;HVj9x@R7OOrdhg_$s#JGjF8k{ z$K^Jai%h|6OPP<(Z)_7LrHm^&gxEl%pL9N2etHeS6*dGTIna~;sWX!ie4K|!4@#(m zgY|LD(ge;vTR~Td@T^AAs5J|lUphF5rm`H>lj_*qJTXYgw0Azze59Oq`UxG37N5iT z>ep^5S6m%DmsP2Jz?s1Z@2vQ#hZ;K~sBi8UgBx;?5{5K1Q+n1j!9HthcQzF@Ap22WxaNH6I8axfD6#-eBK1z2 z-65M%&C_gDiTvpQIsX6oXSAj6fwwhTJXGF)Pp5jW?AAn5-+W$W2LWRaaT4FuKWsJZ z$p#@lr1>XoryzsG^sS9J!3>x1&X0t8gn)qh{>ud1AX%K5~REQR6$!LXt0|>uRbpWbZuy$&B9)bGYgV*nKqTTUV73^@e;ln ze=2)3w6k#6(<$UpUi@ezst45%{imMwsVy*xizo2Us=fU9{#VOeZ=Tc>W}fD$y=>pD zMHoGWWS15;E!;dMVD-7ctj6(`1~lM8%OpVp?nLWg%A6>|G%Ldb0+ zl9o6S^*jjo@no9#=_mY?__O$Lmd|GNNO@D5ghvHvNajI|It5t=oy*D!$0=_sJ2g}M zNT17i^x;>_{r~W!K4$xLx&J$FmP@ZYTdPs*bC%J#LZjNEldJ=XTIn&!(1g-`|7KT9@iz7{s~f#5nk;+S5gNWEh!lBkNN{WAxzQ6kW(3sOB7jR@c+ANvY{q^cqdQ zu$6`p0puhoeUKVnsx|;pwzVC=qVDxyD=TD=2vXw2?{RuQ6EsKXrH^?u%9`2iSjas2 zX?c<@vD##~E^If21a3?c`6J9~=Za2XJACL!xl*f|S6!{oW&G;R<=$Vp)<@;j9aZxT zUSa}Wc4PshUl1@Iy^sf%P|NXzGbBg6UePt%Li#;I<|X}1n}wTczevB=FZoV&N%+*? zsE!-uH|4+iIJQ8|Ri|J!4_BQo*?+iB>y3}FS4&-ku6fxDCz&z`(m+Q)42zfMk7x(P z8?Uhi_0jU@|K{PcXU`dB?_QmNsI4}7qunvH~BiIaJeZ`~`CCWQ3( zk=wiB-I(18IganU(Oes=Q_2Fq0U9vwGVNA+lmAt?w zFNt62?SaF6K|jYCgcCTaHh!>Nbj7MZg~4F-Qaw#PtDL8IqDb{Uh{YY{&tnkXTiE6V zH?yhNj0qgBP6{$=-|Zi&pbQUA;nL=_jijIH_=!V!RyuH8j~9@&SLnf8#Ahwl#&}QZ zQWo%DUh0{!^uf!t^fN8v;H1m6jL-IKxsMXV9-J~tR>Y&m92d}MtFF9*gdGDs@dyz0 z$kVVR+H(5%V<*e^?|Y%V_YMPDJ&r!LOMO9XSA|}~Rsi8Z9>3A)D&EvQdgspo!RT*d zfLr-jJbB@;MMAz*n3#!El1xCLrhfa%i~pc^aS*>dR&k-jt4bPfHwnehE*1J-&$tk5B5> zld)O8>**BosDJ&ib&aWgvbP@K(296HgHIc=*s}i(eOvLF5oX-MG)Gz6AC>fK(_>s5RMIf8g>jg_oN6PirpW{Q4F2AC9 z(SJA16FeRiQAhAW6!KbwkX^NVkHRPc2sAm8G8_;m+eSx+*<>PqUyu}9R#Xq~@q3&p zJv6iEl4trozs-ba@!kwQxQley4F4XNLT5z*-rSg}IZhX2aIjO`wvK7_?!a3sTBU!v zeD}NGEC2KV_(-|+&WpUQ3&Wwh^Raj2r&goumx(7g2>s+@z^4gfdubi$+KD1nFY;;- zgvQRP36{9poeK$FlDg72t0FCk!W$SU>ti=0jo?Wiz(gX}hdUC$Rc2rb(4l618r0#L zgLMkzkUJ2L_3z}Z2@W(al|DKHcdEjGQVCmQu4OJA^PNPiTiYP@fzJF9rhJ`O0)l(m zR@2p;=_bR<6lqK4b$z$Ae_T!+V{g@IvONZp z90@MVvE5bU34xL!XL$HFSi=ILx3fU)?Z}Wyf~`mXfO1!J9l*c_N}l-lC43{!y9BQ$ zKZ}O)NqwiJBY4Qc{=>m9U7z_1GkVAjNZ?Oxr0LV}$zIK?{OI$^C3-R_;QMzc^wjs` za{aBl%9p>Y&tcqpzP2do2z9-`qN)^qv}uJ@pWKh6H48iz7J7tE=*@t+d*^7`Ji7tn#=w`Dz&Ff%GEURBaO6^+JV0PV$jP(TO|000xT?Luj05P8Lj(e>xcqRLr;MjR zEt`3Gi9hvwdT5hA;pr!QN}ut>%lIep*OReXp6lt9^5|!MAZ5K*(r;1&yobmqVi+?W z(&7rAl6v-;L*>!OUi0TNc5K%Xw`w;<@A8X8xN0#z*pmK}#RL`w*doegQZ^-iW~@uR zm#(^(T>xb9A3FigH#<+BI8rXUXm`2l>I?KL(eA=zQRmB<9LtDT41}vj9r3u@Zji%0 zD-B*z@LIQuS4S>NdtfC zeTYp$iA_;L3`Q&jkEDjs zagRC-ZVV8kLt+cei;urk{@EX0<3nw3yy-IEtoCRy**ofv19H$AyTWlJ!$m$M6Xvyi zxf$}*IyEt(FKZz~T7(w2p(*w_9yS)aBqi-;9?wi4b0Hgx^_)kSeAc5+ys6*wo#rKZ zrVlOn`Rn0?Bd&Un3Iba{>SgRAr*ZR%i6Ri_20R9lfk)rLpvZSQZiuBfn!wHB?Pa;GgdOR0%nyw_vU$fg$2PPb?gQ6}Ue zGwZDAQd^AaT1!S`MHteDP^i+B4j$lF8)@XQL0SFyBRTSKalVZ6VxdqC2sIRJVgkn` zj==*zc=|9a`N)XRmTXu5&SE3&lR+wjiQ{^IOvm$UA?W5i&n&IDh z&GMdwKjk|+7qg-8gTCiMH;oP18aaT&^#yE2PdW5NL=%qfdUuL+hO6EQpz#4G97Fs1 zEBYM9<44LfPaP;PJabU*EAG+37O(1gy!?!G(eG=4Y#M6;%8dI)9-mD4zOA2J?=Ez(@xWfliu^p@H{%w zr!>i@=RXTaf^3%AU#jGL6314xK*~fBQ{a8Yr=DCc_uv0~Irt$Hzght4qGLY}{TAPIgd?QuVSG!C0v*22R{?dUmG_U+rMPi35| zZK$Vt_XuqyG1*OaO5frm&f!zoR?GkmQG9T=WegX)vTebsbCmm{iQ=pZ$ja&1v|x`v z#p~mVmwqzHc#lh3!V_$>I~oL3*P3jI!@5XbcJ>KRipXyexv%pjpp*^z<_{=E zFL09+n7Vd!z+7%9LtZ-qOR78@Z2;Hu1VOYD){QI@Ox)z5A4*oJ$e~USC?pihkSC;Y0oT%Dz^87v|rwmn3ddaG&8AAIx1Vx0v~uB5R7#wsOSTMoSa zUb*elI$rs%>&iW!zE0cIE-2^f$piX^jYXK1OnAgZk(;MFH+3Y~SvX({Y2Y5R)e$Lf zSfY&bU&%Uez4p_gj)Jr3(#}ZB^l80J<1kI!k$_2L7G0ujgg$Y5e;&_-Q}0vWq~*jt zd4Ur@bug+Q>f28B5)(Xb3fPA|1v1aV&-!U28&|08g`0|QUa~vh!=MkMKcVW`g8Ig5 ztL5n@-zYzO^riBXAHOX)6Gc5)WQ)58IV>7zaD*|S2YTy=o#3)BPFwQ!8d3O$9O%a5 zqTDq#QQr22nhFO$d`HRJ;Na6i#(cmhb)aZr^ES5A-42BgIPznJpm&~vkFz>RcgQ>~ zLKoM^1Ocu};)F!+x1~APuRI{h?d`WowUbfae0}+BZGeKB|2I0E~WbfSn5 z@La$6fj;Z%GMtt031Qh@=8^xR3;8_Bv9fjh;j(kr zk@Cf_Tva}E@A>`~o>1zTklBK`>pjqX+RuHyZ9P>djBfFiDf2XFLMUw^p=oOwpO#m` z6EFMbgwNxb@bnWu{p2?6?$hBr<=v-4H%-rY;!XXOm3a8B-B!gI9(7;q zU+M9=41ExV%{6KtFTB9#GWM6Z_Mg;K#_eiz?Ap@Pcy4{#*+t!1u6V-V=a8uXrBA1Q z(f4z&UD1hBY;|P}&pn@B+EOiF`mNbxY)SO3J7T|z64rM`(p(r+DGq<9ko8nI6Q{Fwz zEcvrwJ&%p>2Y)?2Q=CP78!r_LMzrjgR#o|RUpl9mGO*gN+5VBE`nc^YA857yxpLok z|6Tc4fAUJX_tuNFDy(+{RH+yk1ASMO4UBixm_*WfP@YUEcn?8Fqya>1L&X^M^VZZf z41DS-;|h+##FXa$dNZ_{1}w0XHvNIev^-)k*yDja!*wXNdDeV|u3^`K;2 zT~nUeRZbMmi!>tyXBg70fX5Ao)Kwkn%r=DOr4#~IkxeXIVgPjOyeDXZ@*deRPmAW=l}X~4Se?M1^YcpXL6%E zrYD-b|At|*G7dlb66}m88(QVm&2QH(b%b(DOS&maHcvayGjtWQUHDd6@$lhRdD{<6 zK}6hz9Sp#@CkU8%1g9Y4YH@*WDIRDC*yWarbaeq9U`VU@8YX5g!M3HQAnaFE`r*@m zQ$AjNQTc4wje^M`_YSvD4Jf?r$^E&e;+iCG*?L@yKkt+)uiIL__8WI-TiXTY0)1a= zpT3nEIBq`8jtK9eA9+w?h%Gj-3{CEmi(V=rXT zZh1#9`WXT2NQ*F6x8E>@NbbW%5IFt77+;m<76=Xwed7|mfgun0qzus`{=f-Z(6hXt zF;3Mt=)u5+z|2d)f|fA2rmuLJZeT{#7K9}i-oy>hhWkjn3no+zHLL*=gY zmcg^MflOaB5LfzNJ#pe*?d-+@f8{X`H{t1bA|34I z&cj(mGfm4le3M`LeOiWle~OoBsbl)U6E}Usl7M=*iMVoH?YyVRWRWJJhri`LZ9jeG zm1S)~Jy4!{LhosmePxf{iOlWt9F<3>gxuW2lo`8$Xm-y-M+_-9vAol6!OUu z`B9?pMW%$>S&i)KYLs8VM6oaIEZ4rUf%Wkz{xqIEHtP4hXVGkw|9X6qH+bvwbQM$P zsv!2XQ*kRAR8c|d#ywHgZCrbp`8JDB8+-OZ`Nr4pD}VgoK3uN9>l_)N1`ApNq>4_S z8wBACMMUuv)M=z|&OsM>MVWBu5(+qZZ@Pt;=2NZ;{jy9V$0=CU80{>mGJRWv)|GY%UTiBn4JX-=ht~tSR_ok;%OpJt>H(ebW78s zhoy^mZiz!QuqZQ!0NF(yW-R>m+Rv0`qxk<{nJ7|9nddBvsUPXo1?8;@%K^MBAQp(2 zBvjj025*&#uG;tx`=a{pH4y57StdA=*{vsfAyG-(m!4f zegvI9#La;he15@C7K2apKiI5zh{=*Z)P^1J*4y{whd6^I>AV)vTWONOz*?IS8l#zZ~2{n`h{}Kt@=){zKN~}kHOCi zJUl@Phn^ge!N7nc)X|>_M3?2ntbUYqFsS-6s7M0ow2_G-%+i({;~JO;pW@AmqyHke z9`AYdNjEPYnTbPq5gzHd#7`fZMRbW5)Z?otZJXH2Nj`k2iuG7PZIy){?20XJQ9NMN z52)|QzUuwN_Yy%__&M-aDKG13$df-ipwHmE=5M9$JL4?1cWtd>Fs!i)bc{v(j-EOK z+H5$t4C~-HRg%?`e#M;YVOoi+aJ03GEjT&wf8t~kV8bGTGJ{psD6x!_W$k-f-cu`W z@PKlyOFH|;hkN1zs6T_OsbPeSZl5;C`0a>F?XXTA-{lDqx#rq!-hyhqsUOWa zyf`c_O#b;*Mr2I%#$2l?QX?ZRZI%szlX%ngjHjP?$#4pvrh}I_NrOKNuTLjDi*Ab3 z$EQ5!(NFP`$A}T+HA1(_j+=uzpz?{w59WS=_08ck ziXP^BvKZeVHtGY3tbpUpkx;p<|~*o0Sq}#t8uUgwgT3O^Hn<}$^*JgvxHhGc&)t{ zp(Yq9F9A!rR)!?=AG1vg`(ixkmQ(}(NUb@Am;T_{+@M&n(=|0QYK@U-Ia$t$XJm1$ z{#er<4hNhNQ{fQg8%A$eF^Cr$c)fnLEX>ACcxpg);Hi!W(-36)b~>e{^6py)%NM_P zdAawqx0gHbzPem<-45+}*J1`XD!XJel0~Rw+2^XS+9%skf7D*ihezXQbQrg@)8dP?Zk!T8crsy%#o`fyFHND$SQ>w;*KY~K#bworC>AAB%f*vKxTiM4G<~%( zr^F>~xC1FaS-w5=A1}O~Jap{!To1q3w8!mv^f-OE$4~eox>@*1N9kjGwjdg2ttG~h zVUwiPx+6$F)lb{fG>%|gif!o&4kmr}=~909{R8Et=RVdzS5LO}y~OQ4l9Po-EmTv- zvPlmxZCJtI#7zz`xoT%E?7${2=th1jJNTi!|KZ&^WowOttd*V9sbh*DkZC`Rr2+mq4;@>M?29U zeaa`AD57m&&_kh;GIoiVKB=v&Wt(58r>FoO{t(O4Hs1rF&q-Qz4D~kLwX6`Cy`` z0EH@^tR6794_xO{f-O50n3ENfF^VY~FuUeup!y?zf{6iTf$WWzbCzAtYM>1{(|D+* zv{`DvNILX+aXvcSlo@cYU1ElNP!v$$CAts3i{9WaobM}>g^1Cji2d2m9sSI+b2BUZPLw=8>nm~WFtTMY0*oo<|nn# zwN1MpcJJ1cNQqcx51fdc7wKbVt!HmX=o0$)?u^bE2Ukgs+pipYa`Vee@UlEWoyZ1D z)apms2@$#Zlf+S((k^gj68dqwP3If8^A|T~w<)z(-;8;kK;?8wPjTX1L>6iEdV>1+ zSWwggqqZciYQTBy=*Q*4ON-t~yhQJ*Tvo2V{`7LbzNy8)g>6tQNFtWQZ>Wp5g)KUT zP)`V1UQxkS%cibqD}E~=>ptY>|E&|ntiQ|&{;amur}yC=7hdbR9zSsx(apk7I#;YB zk%xp*SLy>)UzssHNW$dLHbfpvQ!l`FRGk*9Cb(E z`^IaUEIxIly!6t0{#?eXQ+xD)=XBvRY1G0!6G4rq*d0jSQn6Gk0m~&40Lj&TlbvCr z^CE$g;#-?qe9+;QOG}5!p+oPN+w^q$o=;z0F1x&FyQ}Ppoh4$;d;`7AQo0c!Oq!pJ z+Lo|SE1)a=1mgfu2`R7SUzHyiLY=x+SknZ>v!EB@K$dtjSp333>*=sa&_?ugfw`lY z&na~XG^$2Fl`I90bHxNm70&x88W?GSz*8P3f_wy-&t-h9N7qk1@ml$dKmS(wV?Rbr?=`(qfJnU2>%l9lYP!m97ewm9+fLtz~!wZ!{UB0qL9~BS;rF zT_wg4T@DynBOgKm0vUPoD_uh+rIq(UXKs$_(!hPV;~*t^wgYY8wEBWkCo9+r+kuF6 zTq6jHLw$N5R+cD)363!u+EhkONHWnzFs`A$ujbmJ4MhQk*rcuH3X-=Tsl&5Ql#81D z)~(Cs@W)5XAO5Gem*4vBFO(H(hYjE1sb*TR_*-)-yc;c^@KBkJ;Jepa!zYJLBWh!f)o>9)&yYB=OvYaUPH>4gV zDjS*bp)Ng9?E4O*3$H%u(tR!t;d-}}`+xL;c0oK^4jD!STPvqeMEZ%bsI6I9Pe++dPpSTFSU|e!guTk;7@#Bwus3(fAmSczZlrzpa+q;>T zbf5-1n6}b>*N%ol#V^Gwm^_6xa?^4kacXF&oUPnU_~MD8535ldqrQ2-!@G?5F}Vx5Ij*u5DGg2h z+JF}AIsJ5H<(On1mHq54S6+E;x$&km%2n6s(@3(Vle(qCi-(`+Y|}+aIpRZq9*fN6 z89A{N$q0c9>Y|AvSgpWJGF&K}d1(U{3L)?x*KI_PMH(#9vFE)JyvS}X&GM)J+XET^>@CNRsLRl*G7S}41`Rv> zT$!0ahRW6i2JUn))Y-7T!YdX|sTSh!+BykH7`st07@K~?q`e_=NetnbP#3f3rc~3W z^{#m3u-0ypO(!vNQ&RX`l~Q>l%E75D!TWj(szfF>q+1SoXoF9b8A~_8=zN$x zi!$iTJ5iFZk5?W>pYWSR;XNa($*lTJ0wIjS1T>svsjKaWdlt5G?8vcl|4-j6|K-2D zu6{1#a({d6G_6EoL%5X1Q;*eEIwdBG+AgT49Nuqlo-9t#z37h_stqCXp7msApWrf! zep;`|HgVTWPyDGrk8XXA3cU2b~ogkSU7lRxPlCcQZXmT z&8`C1;t!NYNj!^BSxHs>+K<$XNC)&w971A}6Gh5jKf@%-191GHWW0O<3jZzQKW9qg0ymlUDbPpSR)Ou#;rr+ zBYU@u^aE+230(sk;ixl+hBV{5t%8|wwcHtPAku{czGZ_SVIN4PHoUreq?~omDIF%a ztK4ztW%{Jeu5!ki(O$u3izDA)WROo^%2Qq@BXyY9>ClyvpuL;g-jL@WOPaZ2$FM#I z9XN?Mk55n2hZ8^P`?Nlscs*>r@OnI_^c#~wUXzjvlPP{IwsQWQy40e0}#`zpIEY=mvTn5>|U8Z!qVciywVN)UgP3 zpQr6JCUE&msdXocq6%aJouk0ltE8-yd3c%Lu^k2H(T$K4S;S|fJf=Kn#plWCWehl~ zVAX-^I(_R3go&K)>NXZ`+!}zX&UmUw#lEAD-roPiNA$^zN6T~1yis0y>R7q>igV5D z1TP4Qjscbjcj~AxA`FZP0IPsJG2+A7HgPU?*2EzsI@rS$y zbfAs+m_jmWL2}8KaDc{`z{jpnuVDy#@R(pt%&1j9iG7_#{^2*212s20KOuK4dK??_ zN1msuR2hc%iG)*rr4eWX0k9UYqLW6xVhfTCN*SO7W3cWSR9p;6r_T zZEv~pmW#{hzj#Zz^Ull5zB6J~jJ&&u(Lo*2DRoFbAOVeJXYfO}SY_rWNXJ4vlKY320!=ie_s`q5+M+uwXyTbj?+ z4QsFZH_>Zw>4Bz>d}lEM9lVW_{!Sg9*xGrOT%qs*()Q#lAE*(^gdg>2AZ5;6`>5b6daObq8{&*qRO(C zx+$k^>I)czxa@15Oyo-s2z{GPHKc$?lzidRkJv`9QI{LVR=(0;D#?2EQ~ar>#!WYSznWnOU2iw?4XFNch1Ec7R`6LoG6?PEq33vdt$fLIV%+sa(!{0w& z_P;6{TRKhKP@&O^gwWWz6gC`Bx$}u4`KGpqwyFq%Yyx2$j;2YZFO;csE1ISUi$Kk^ z%HK_@F$qMYj1zLrH}nEOkRm&kekjvkU>^>|tS9h8O!i5zhjIMEG%G#rxu!;6EHoj& zgS+ObqFK5=Z?J9qQ9TG)F8BV*)#bL^&+@nM*cCwe)0UYewuz$pOWLg`5bifZzv(sg zP56*cR9Kt8#7n=&2iDVMc#4y>^Zdk5`t|T;rLRZZ)1a=3bOmtSyenGu5S2x(MdyJm&FfTg@kH_CgZlXGYX{3?k3L)e_P+be zU;oK#<%Z8{BfALM62j^OwIAO&i|;9VwLyab24d*s)3fSIV&p|M)kOzgEmg44hj_ra z8e11kX=aBW&?ITJ3e0o^=LjWImK8b-8Y*=Z>1k@%UI*`j$-DQbd1&>990|`d2{zG$ z#ySMIp{#oDv%+u^*O_|t@QT0y)Bgj3%VvlUWrDsvycbX1%RXWiIXfOsK8zJ9zU#Do z8>`JL>R68WoC8)n<&@WLdl-mw%(cP(uqCQQa z1)3E-f!MljNdwCh<&uZ&DnFPK= zPnsBv&_ttNoh_w=9>Gb`>Y{!!hM#ynY+4q5+Tw89_+qR`o$9h4?G%411N!xFpjl7O zly4uO$A1c+Cu0`erH$^IO>k;3I6HJ=qU+s#FN-=1T*D494*GG%rwj>>94gwntj}RQ zcD#J=zQ@bQAMViMD(C8yMz)B{W_IXF76+fHVZkFlvqKxM?SlpcoYKrKNxP(Z!Qhvv$PG6wqilkij^AX7%oOG&iT<;lQs@Fe?&JBon73mA;gI#B0<+CTy*&Xwk zcj~*IO-<92F8ygaCOqlVpNE(DQ$O*Oewv=~#LIZ^uSc7>^LQjY`J@kBA5OgRqt@d7 zk`k~b9IJ9Hc48aURV=75S)|XU{@8x{+N(?Dx#td)XP)^`?Mt7#(?rql{Te^oSZz+O zTb?4v6GQRPqL06hfB%H}lbeisI<+>X#(7|SVd~e{8 zLb?RwqqY_)^_HY{CmM{CKQ^u~_h`vrQW|*|jXtels~Z=PIkXFf(HABOiBEW%1}q(T zi_*bMUhCl{ mEQ#f&WPWdjvpT#3#v*@P08!iQ|yi-9GHYSqG_R!kd(F6h^=%!G?mM{wv8n(Ws41OH6RGIcp6 za1Eng`!1|tqFV1RDOni=^NAbRTg`RLKlsUcLg;9wujL!qg8P47dh(Rq)NMLZtn^NY zjnuI%D*(*DR##P5Jm@ekITjC~i9v(bG4+WRo(i3|TOUam-qO+$oyv7kC*6He{{26^ zt9<3FUn$GXVyur+^suja#W4E_^3=y9!F=J44l z-bQ%!B9d>yrtyT&s;U^Y&_ALvm)t3 z9DG9$;#roa2~30IVoDKJKNL5XT1mx5Q07m5MMXYk&X4yyx9TI!k*F19zKg3#;?lB4 z_xc9g^6F9T0644s_CNh>x%IZah0jsCeQJQplYb`UjV*jN(c~m!uL`TJ?$G=0*bDcI zSh$pKbQi77LY*8su%O|(@(^HZlWB{Iy`H}j{HcuOxgPC2x}@KXzn-jlyyodJh0o$Y z3#JlR?WlgJA~nXPrFd_g1!91_=Y-E7kHIR3B5^-p>#`RO1bg!h&Otb(-+pa7eWx5h zvZI`)@4fjDD%z&TDA+`7d*(@&oUl+4yE7_E*^^D_ zmh@ILB9sI7;-c4wR`ngc)s>?v=i~aG;_2n8YtGlg&za@wPsP30)o55P00X;Z#K%Em&J*+zJ*E!%Z zt+(zdXY7m9?6JqNA0~<52VZP5?)^e=!-+i8)}c{`Ec+KSQ4~8DJbv%8a;=C~n$6%&^F3m5d@1cYnlS@|U8@xM>bPDsd;h=(<);t5uJ>*BmK~ZX(pRyS zlF5(Xb)q}cWX2~d`o=0f#0XyM{RZ9YpfKz&+eyd`>>4IJ&Xd&>pTt4VA_pFP<%J50 zhMeT!Bf?cy5!coKm8P*y?9QiX9YvdjR{~GwxJiQ~X9Z}Vlsl`qyL3>{F11Zoll2r) z+f8{N@vxpG?%bmfEMIq~2Lbnf_S$mwHBnsD8OQIl_!Bqyp*{K#Doqrz5$+3=JN2Cd z996s0&_%yCP(Ww>6t7w;-n)cia~Y2GdA8eAXLzHyQyCkjpGTMUoAo!UZ_jt04paD) z_cT86Onap4^DF|kit#St&}UPxECw)9q~2-I)T#~}F3;(~{|~?aMtNROIgT7*FuF@y zo%QHJJDT9`g=QghGVzk`87%n3$-8l1v7l@h!hsxaZQ+b zuo>ZXd}ml@mf3isC@Gx`-xC=t!MDPp%W!BgjW?(R)|-&pO=yHqsK#pFWg%Uga_Lbq zJke3xKBeuanoj7w&=q~=W=Hwl7p^Y1-mbyDb_k%K)^*I0!{nkRqHz8coVfLDD$zHJ z2mTZ{d2H0rI@t)X9(T%rsz=6?CjBX0#{2Z3RgI~-lFt+`@!cM(ov0~ji?$|Yy617W z2=_)Gg-W#xhw&0m6ny}c;@H&DqiS!@mGbbzZ^zQ<44 zB7YW-9)Gj^k`}%_?JPNcdeY%1E`wkfg z+!&6TgbUMwwl|~!9l8NKsmA<-Q&F;fpdU-DF}%jE#~8vSOC7FLCIIcM^+1x~QN02T zyvQR=bKu+v<^-r)T+<_>^*TfFD4hs6Rj$LC?RXN%gphKe%z5{eKUO6Tue?HsXxv}? z4C%r<6ig^sl*q$w;$WpA@2#$@zQI?FXShKQ`Uj8n7tu{w^)%D8dGTKMJe)=Fc``T4 zcjJ7bUPGt8j;QCp{Dt8tv$Wd(m`Fh5MZW=v2@5rYsYLO^x9dYZ&|yNU8;;&R zRBnhbzg)`S{oUi`>wosJ?B_I}aJqGic06c1B{=vDXt(JG=|gU$6x(ZTtH?t>vU1{r zLO3O0b-r4u)Y}x+H<%=zsp^H?fH$~+BtO9guvH7xmwg-n12&Gt0S^dzOq<*43qIZ)2K^kn(X-@R3b6&tl_^?L1QJszKgei6-j^7?#)ZG4il>DzSAu?wpYkDWrg7kD*CMxgsX1J!Ix z>;|CUURHfGQN&I--hkIyo_b=r{QciOqXTU8p4>LQH?^I%8V67_nDHP{gfw+=o2}QjFK^E)P`zbObq_?tqkn>uHvdrt>j>v zUAvd`UB#>QJ-l=Do_BmMgZCAE%ho%M^aXy^NPPo*!@g3t@TayrFE5`IZ!9g#ihgFA z67iIeKb1M9ST8+!&BM#|>}by2a9_ zSU|^=cvo@%e%|9hro*FjXw>V6)UMbDa+>OvT{k>gl!>TKvp9$@jPDq$dBP~0;&3T! zD-M2>9PrfEnJn^0Q;5X`-IKNWuzKoP`P6milpC}K_0lU!IZHdlPSZLN`e<{xc-4ub zwdOSucKZY$>T;;hTCuY44ZWk71uDLC3$(|X;$_HfnUjL%77()i3e{X zJ59j>Cs6upHM0(sdWjCJo#6r;X?-}1cS7T+E)#IiHudabgs1hEc;V|R;SNs;C-H1l zy{>_hN~OQHG*a=DnXIjw(7jJQCyEl(o+#3ZAQ0BV^X&=tR)QyqKy*W5Ldn2hX>>X~ z`J+QRdGe@m^t3{}f$=R)K3DMO3m=sKGB?X}qkMY2 zumOw!R|hAyiDniGaFbwwQWK0ve^L7kg`(6ejpE?OM3K4&9vC@MjE})%2Rel7ouWf+ z-YfTg=coF%(~)xY@Nz6_>4_rWUSw+X*Z7ABd!k~(;2lt9{-{h$xr-`3DsXdAMuHub1pR3Ph zTvD$2)UI+NpUYryPnU2?=Thj$A#}MdeWaSGaapbr3wast{ZES5^APv0m?(?2j{Nra zJeAv1EJ_1!JwAOp_{k4H^}tU!IJjv%pu;tCrq-i6V_d}o4gD?suJ5IaTQj9R zF&+*rs}E-fB6w^;^>-CLufU$Puqc~4=e!-|qKo#G>ux-&Ty;$;`*@FCytc9Pq`sp_ z8|7Z(iDIon+m*w*V8U|7(}bm>1Te4j3ebg;NE5%OS%fz)t*3|eG(Hj6qVxDA!j#W? z_(_L9r3Kd0&q@y*u1U`-flA#4AI8c+3jmeRO+2chHa_7|VY!gcyNZALmw!{f@n?^e zz4}1PQGG6h?I7-mRQWjLb8~0=sraFzJ8LtEDn^A?`-B|tVWQ})LE7|4AT}3iaBEC@ z*3u(TJ9dKA{Pi@A<2Zo+{s}jE^tuHL^qbHD048McoyQ@g4Y}1D%##f=9SNp{Q+6Yq z1`;7ioNvlMo*-ACa9kHtTBJ4IEZNF1Aw<7iRYD2kUJb2q4{D*UX~7?U7zA?b&*>qU z0R)4|*m|ICs6w$+4N#X(p3pZuKQ6!VdsmlV`TVUqa{p4j482$O7PMR$j35#^%GU42 z>W0S}h*wtu+Et@;7(LdyR{o=;qz6b|!XKg3NE21#3s7f~ZwNM9$1&+pe`9zb+Xx@< zlh-`_Oz(LU4*V=TN^$w5wxew=*WGkh`O;UfQ`_9`&y!dV zq%d(mAA=031Hf5!eOZWrt}92Pe=;GHL^F^NA$S-|{LD(Rk!!#xqfy!lqWaIpbGtq>HZ{BV@H!WnHiJ#Juf9aL`wLt>*1 zQ0NhOu^=k`SV3}i!M<}Gv!9<<}?YI3w2BH}~Gq<`B+k|%!p!A?m0 z`@+@EWekH^jzaBd)}UB)&}R9kjb^;3F=o}*WkXxFCQ9)Hk-m{%1-C!~urYE#xjH9Q zipqf3KzRRCQ9T9PvgNowl)hXpxR5QV*Oyyv)l)^?dt-F2CyII!*0}s3aqd;80tnV!HY5^yM^G#um|FHr7>bQ@*KofqziMzj&PHYFKyWi$B0P|1rT6sUOyj`jxmoESCo#{8@S6{wMU^ve(Kpj~yy!pMSax79*n* z*H85EG!etm$`i{T7@iE70hoE#%P5?}+$emhiey6i0q(Cfz~&TmoIDDM**c>}2t4u~ zWL@-XZF#pO5p#Q@Uq(%`$##Z_UTuc;I z{?$dEQd&as$z%AzK6IsHV&$_vQ4|V1Jb0AvvQfSBXRhE^{i58E9ckDFNzmI;{IO(i zP^MIZ>`@1fEbH{VbrRb(<=k^chfPXPZd#~I7`|~dJClUW zhZ5yz6L5Fd>eUI8%gnYTqDDucsu`pLDBeI01c7NtCZo*_;jpDh&u~MV6BzSai!_T* zPm}3AY%P}o0{$Z0#HhA0M>SFO01{mK2kazlB?>j_(fFnmiYlG{ z1INuH7PMF#z$kb}qD~aG*vSqEw#z^N{9%1R>JhyM^?V$h#1Q+My%P~j@(i2ss5P!H<1{H3gFKKha^MClkBKR~6^E0l=keYMkECA@cbwkI?6dAk1AuD5PK!Dn>b&Lvuv~jL)UgpWL;B00 zL)eySsVk9j-}k*=QO|u1X0ee4XxWLHJ)g39`YCMWlgo=l0W;rY&-MAJzk5 z4SK0*?m50EsP4VhRB>`d`}COyVi-GBglh$LjsIpSwFI&x0*ksbh5C?ckd6nFKC5fO ziI=F!e+?plie$S;f<&ZF!X6Z;b=ojVbY3IFT&=hK1am+XXMk|eV+U4@ta74AE%RW8#g*tc zsoNFX3@}a3bc^FjmcAox!FjqhgiQvfI&PADgg#$4%8Z{n z1^q=OaFy{W7Ar#800fc)n+k7EVd94mpVCpgN6KT5JYD|$&+aS#`cGdipTFl487_OB z<8(7`59A#e87$kucn1Y*T4jH89YmNfJkdsU@FwhLC*kS4e3Xb$X8wYvYKEdyXO>`9 z-by!`FM`2cVPslr1cf-* zCs^Ge-c~=~IQFe|TVXqrNn18&3?Uz6_? zYf*cdhdYlK_{lGE(x38*c-$M)J}4%iINK(R@Plb>8`Qb$sdA%OmCgc8tlVSEMhOH@ zG6DxWBUfSAf5U}`Ck!&8dcPqZ1dG>2W5#mmV{JRt!1SpnPm~}3=;`v#o2zBdp0h-& zL8|NxTqwwMEM!Y>OR*%S$wrj7j2SxxC=zs{W${uxqMg(UA$XOrm1zisO-qYNy;hna zOX5g#jEitW&WN({v#d&Lj5YY^+UefoCTCTmRmE386#g@z0o(%_R69{(U{Zgh`@g`! z$f|@WrWb7cV^D#aNGw%p@dX89(6f!9d5Rn3C7GQCC5L-=9+VWNYn$+W*G=Uyz0p1p-Rc9Jpr`NxYf3-pgqr-!M#vPS+d_`1%}y2Mz8%gu z*@gQ8%1`~dlG#9b@FTsi_y&{3H_IbGd0!LAGxcujKG&?PLHbb7d;*WYVW&QV$SZ5{ zdPdb*^&dKg?vXe0XGIi^u_K>f*`m*$opI)>7W=pPQ%X17utVSNj6Q*Uc!G(#BBdOB zQNDOm8a5479HrcbCW`Rbs8RHlo#A=3z`;o$IkVh6`dPRefu&yaaC>>1!ClLb#!P2| zAB9ds&&eVcG;*%3sBlg5os4;`EbG7s8QL>X?Jr;di~GvAzWz)(_XJ`z7k!Cbe#5UPzm;j-+Sz13uj4$6Q;ZaU5tJ?S! z0YOea4CJDo2~}J|H94`-A@u+=UC2+Ypfm48sCtGlm9knw)ZLJ;L~Xv=>B4{0SE-pl z>pjTq=~{WzytOn1T3Lv3Z%aMS>@Zwun6eq0jPikA{#Qy3n|3OThXB6M}8!(TXr^PlkwZr-4~5e2vPiB;ysKE0}4@*__nF>atepNd%vCF^5U-$KcF zrU%uSc0Jg76UCI#^T{xBQ}z^Z8t-W`-1~u_WfUpFn|hhLG2S$Fe!Lo!5ST2wUd0Ma z`cPX?ANlEl^1zQ?(08QXE&E?Pu9eKaLebL;z7xnqQQz~!F8$dc(Ri!2RjGC(Z=@M< z+fr&&>sT=IHcS+&E**8VA#4)%Vr;8~UmZZeb$&UMO8wx63v)^h;Zv=;&x3_!y(+;I z2d%hxq8R;?-|_W=!t`0wjCvq)?3MD3>T3(405lYol#9TKKsfWMhFSp2*Yz zK|V+X;IjHc9Z0eDh)$~9u5T)yUhewLdF9$0^sb`LE`*ng-}Jnn#x`K<9ZCh?sz033 z+!IB~^;n2{As^<1JX|G+NOzsWr}5AyuZ_?dZn1H|q8&CO%9Dju+T0u zzy*%3Th;L3ty*J@#Dg4uAL?@%Pdt9O{Pe-Mv;#+)yh&7q_5lv?k$>JuzF>7?BInXAg3cb)AWVoY3l$_blF zsyqj4o=EcEdWZ<%rY4G3B}qarsCakGQEpJup#ys9r4Myl*(2pg|M0Xvm+^ji`^{q- zfbm_dU49`wk3MI>%4vdL`7qzmC8d!U=cg7&RI6}6!;y|Qp-{l4*NU4RPvVE4^kQH< zVO9L70;Siwz{@nt6JCoqndWM}5|n&04p9|h5RE-$^zeqS099bl&S#%e0VZ6N=yItV z^+a8GkR3pHgcgxE!j;2_eMGWj80rara7w?i12}fFpTMnPWip>$<2y~fs&uKP+YbX* zE5?B|$92-((Q@0J7nYlDxmxc_+)!@0ZJ)O+oY2RZw`k>ad);ap+H(71J0UkFTdQ!o z5^u5sJM%GCI%A>>wDg>SYUb#?2t>to81Uo=PP9j3M_$cg{Y$fzsGvrW@CH~AKz8;A zv*@O<#9hGBNmIJSpGQ9v-(?u(lJvg_AC75L^lQ}25xtM`u0HMa%v0}|AN=5<^7r3< ztz3Nhg=OasZFgHyU&czho+k1HlJCG#mws2f4rXd?3)<;x+ig}W8f+11gk*avd*V4* z9%DN571Jc*4Q~7ta6D4RS8G7Mj=>Ed9+*t(qNrSALq}LY+bpZW^yQi?tIg=5f7%Qu zORDtP7H%6_)&Uns%1%Amzw(-W+HQJbx#O-Y%hjLK0AB}OfXjQv+|Z-U1%R1<@;2e- z+0Z6f7EHybaZ#^)jz*|9DTlMm-1l8w^okTQn4u6&Fh;join zy=bE7z9;Kk^p#qEJmo>GyEql6-|yGKRcy&OXARKxp&tD4IWUa$KYq^cl5-5@^Gy9RV z5hHXO5n~Sn2IcHHFyoRo<}=j6K<7|JvrW>xMAvMsq7H4nlLICVK@NOE5m!iY^8jYJ z85=&DC@PWk=A^$lQ4y4zi3O?T#^bdfZzrZiz~(71Z7uGNFTcdS@u0pre7GEV_k^~k zDos0Vw(ro1*P1M@`hYRjFS58GhYGSHHJnjW&;@Xn1|Ez4Tctzc{a4u)-^af0x(mx? zmld6GuWxl~;h*xXWVTC0aW5L4D9VO}vFV8-Y=#OUw$?dg0;dl~G&JXOEx|7Vk~;S~ z%@doreR|TR-=`7oX~sBM55|H|E!3Yo6W0pKcCI9Y08oR_>Cfp5tcs3EUo9`a@Qx0P zc)EQ5d;hNd=-Y3X%dbC6mCP}_Oc>clB5B+_SiTSqbeL+0;aVGr5)fy&gpAX{qE`wW zVz|JGm?;wA)VO5+!-r1NBNIj#r+0*1utRT9YeHtKbEu0O-133yk4#ET4rDc#Zak(X6kR18y3k@BI^aw?HflHoUUd{`t9e&TIXCb>8^Ax{Tg!DgD zRNOr9=@1m*X2r>v`t8;#=DvM9%J2WdXUdmgj670{*wJ{^*6&fsc=*HlT8)IhXqYG}#s7f^?##Xl z9MPL!`XJjSttnwpT?;5~A*Kgv3iAPVzzYtF8^qvE?IoWmnu>&Y8nsnV7UQ>~$@al= z`dLfm%fEI*x#P}j^o~g!bIyZU293U@iYk`kN1Ht`i75ZcK)toeZOb@A^czmV&&0jrUUVpii z^UptD;{%;&%2TO!Uw|~~2j1SDBsu!8m)fsumV;Ev%lRjr{Me5)KT)iz#cKd0%5``F zSa3yf;tzp=z={Pd+8?JH@;s7T2ujq^X&9Vw8cdRc1^Si2{gzDrRr6 zrD1YEbOWt8U{b%}tB0fuP{-%tnYQAy%OZG^&b?O)wfYX;&eM*T&wlX|ofB}84wcir zSnrpy1+}tK04EyAYF=YU3w=m^9i(Q+uZiSLrsA3$Lg+_sgiupDSQqTc!XBzVBnU6d zHKMgn1aG!85#HnXyb}$&Vd6LD-?w4&sd^@U7zB1(byV3z@q|K+-tbK8bsdTdy2?KC zlGU3^)1LK25j={QA8n3$;X9@u=so_|U(+e5&%9Hfe&$`J>0M#H#~~_uMLtkw2jJLgxAaO!%fKC zK$;0PC#1Y#ID!?q#s_LgD-FpC5{rR+?fCU1`LV}dDgXPQ{CW9b{@3Tq7w^4H+_WmC z!51&w^34@=^kEZ_x~^y-gP65X+cF&_ZZ;CGAAjj&ei@YCG3%fNO#`{{>y55MZ{-I& z!KZO}40SQc47?!@9`7e4qXJi zD4@`V8+8SlFBhelUHXlr<5Pnk^1Y3)*~nUXL!FUP(g*u% ztLr_P&|E^kD51p_uJs({Q}Kk5aWNmcX?+a3jLZ7%(!hkq|)nm&y~*W)Lj zS$>bV5k6C#o_-epDgJ;{ZMB+%;ccQASTWI~j_G&D&V3W3IomnD>asc2qbG{PWHFM2 z*V|V_+oHj$zRBlw?Ji>Rj)|gPZ!NF9#342Z{7H=W-qA>57caQ#z@%zOHtBlLuq~mS z+gr_JSiV&ti86`ygx8qX@t^QEg zJzXCL5l!OH{A(L@KFue#8CE5n|6!6C?Unm19DHBaGOEE?BvoxeXiti zx%#@(%k?*&S8l%L+;aI9@kEjPtm{FTY};pY$P>gi-b1Qj*fs|m&d!&W?JfwHYuT;w zfVQM)FAb?n#a4jphi7u-vib=OU8J8`_|kX`dN$BF0J?t2;Rk;F0xjTCHYgCX!6%(d z*sY_EamjoSH3-DIkcKS9gFdg+9%)X93*kQQodT+7xA92g9>*s$n4GbI^X|K)Jo?DH z<)H^(SKXhXy4t7usJ#@t7?9#+vbP(D7%^$DMC*9F;UdV9c2$E zwIgg*-`(9-?)mg3+99^HoX)$7+-6}R-Qk}nr_vu8E+FOSdzTb(7Nep=aDNRYdPs!V z!|&;$68n-|%Wn~+=d}oLUfMier}(q*X33rfoAQcy<~jYuq8jq2U?#hEhy=hP2jgbr z&P1utJ$tD9^|$`6{QdWy)CY7|%0caW-mOPKm^G_-+ylG~Lb%9j`GS{Zpnso-mR|8Q zJsO#TLD;Sdo8#N6YnpF5170r|XrM;J?&Z0OMlpcZ>FYvj3?1v`k&=u$_$)kB8^I-S zkn0pH=#HUDRKRpK9eBn8bvlz2sx%;=IWEcoW~n}imaTmB$+jq@m}{ z-{rrC7Jz=5`1y&3o){k12?%e${%-lbe{pm9+~@An%I2ral~?WbmIZnYj_Zys3NcYc zXRqE-7L>zK5DFUrP;O0WR?N_0s50V%bF6`~jNpa9L4xZ~WCNdp2cfa8gV*ae#$7Kq zdXAI)v*LJ=NG>o_YLZ zy>Fv4-|I)C`Q8*C9Oiic6`h`n4Y@kJZAYu?e$pnO2F{*bdC*N?NF2G?HjY|{*taym zHQkAk7H9#;bgP~=G$XX^ySTg%P2iIK9+!6eBko&ZJclh+;kCC5SMPZCNU(oY`n z?`2HWr*Y_d{NywBdz@K3X7QQg^*pBhGd`sWcFJL|4S5)WVcYOic#jb+7vTjxYmz-#sft+-c!SQCtQH&~(fwK!+@^(8y}$3nrSx=>lLKWH@m_um`#vv{5mS^MaHplmcJCtjodtXMf!a9@CeJeTnV)%3?wW=3oCLs zaPvCgqKgM!n)zu_K~$)O3SJsUX2kX)!Up>QtG(vs; zYB^Z>Do1(C{I_h*V`tq$C-bfyn@5@eTHFx;^%pm^9Dwq4V@dBSUVPaeO%Ts3zx_L( zE1&(9OErkqiWuV?PSv6_RCknzX^{I+D|vS1k%irX;4-+NjQmA-NTW=8STd0hnDVK} zQR{Tl3F)~^`3z}^-^)qZfHe;FxS6tuW)^aYlZeZ8Vz(7nj6FZSa)lK=3b zQeM#KGQRum2g`l`*Zy+(H5aQ-+Nr12I@wJV#2q{M#v;2RvMyDf-nJ7HMJm{}o0G)! zS)tWmSOtSHLbcw-YOsjRL0}kdnr{062$lRqvX9NcBP7AO{wHJk&im#g(^aL9pXE?Br6^oOQ`Tts#aw4-vK08XUJOx2RSS*s{lk;1ov7?>G+z3uKgPucoh3Nq3?P%S9GN(X>MQ${gbY&qNish6Bj` z3X~2Z!?F$a5~`bcS8@OTrSifHA80}6qw>aUORCqiWCwbWUv1y*-<+@y5mY;)&lo0( zz>y|n=p6X*V0u@roP48dn5x z?~u`4iwsz{>yB!6Txy|`6^9%8h98PF2`v!GgB%zjehTmF%5A=JsDaek0tbGhkRr3= z1GLA0bIZz9p5l==5`x~iRe6`N5HkM_H}#zIOWjfxXOfNtfPSWHiGsxh5ueV*9h^L# zEV2!Cd5IV7PnQ4ikG@>K@|Anbg?eAYpUTh++p9X65&d{CrZ3kjq-vHjYjlw(RBP5c z)^R2Wdq^gk56UOPd3ssK6BBHK=yK0II#p`Pbva0d>*_|RtcSPy@(hS^UA z7X1|N|0eFezb!kiJHP6F9neUP3?h*L0TKj3fFPn6ZAn(LBrkb9V_TycEzj~=UjA$R zyTf?dvNa=1nz1w@AyOJq6bXPLKoB_+Aac$?=YFr--_Li~u2bi{bMJkxLCN*rJyo@H zRqd)%RVU%Y-2O&*`6ZrJe6W1)KR%}ulU}BAcuglR@I1GnPiJV-oafotJTqAJkef@C{mBQKbK`dEQ1J*CKKENo^LL z&}Y%!*0ZPYmz!?BOy9!$WV!0oYvn?X2i&b;`O=HmxrjbUrx8&P_6_Cp_I6<*h-mhh zLS~TyuENjBh9}_TKG$l|Qs+3+3M7Q@Q9PAR#I#HNf-2vJ>YA-MFsTz-YNgKyr>R=4 zLNx)Pr$AG_MM-NEnd*#NP_Lnc*aEYFI z-|g=z?$u(^L87B>C%<)ywUA-ec6z`#GTUnpB+T4PNU2V=VYR+7PEUFfrX z4%h>K#!6QFsE|QYZ6c%4CaQHXaXDy968sq8IC;e|h7PU{?b@X&#csVX>&U@!@X&kZ zSAOFQ<&HaUE}#4SW%}T^_CU3(dGsi|*cy!ZCSH}MsOnDxI|RsO!Q~Z!%L<{5tsId~ zf2_b7Q7^%i_{=9=!l(H~bUnOJC;zF$QyWf2#&&q-?4Gk>j&AFEVtio{LvwlJ+1gJd zklc=s3*Ud=tL5GwKBv1O-qR#@UC-j_gt)O+SIO{8oyzL-G@MX5u`;0=CSlR`(I1&W za}s57#bOb);lrfu2KJ-Q2oNnGYl5SHO<|^oF8hAiVBVCUv8j5gp~LlBPxcmPf2Ob1 z%92iAkI&VGCl?8hma2q2zyQ_%OcJvr9prLarLP_53p!xz6*66%Se`ie71{fQ#G!j?+_%z85 zjbmI<^os~VNiOs|weUZ#&t>e;=Q7UI=Q6IkYJa)oE0>qgeimK2pGUX##Fd}$6KlgJ zX=N;BvTq&IHTqPTD4^LKD8z~&Hmj&5+e|&kwY0wC;qCNp!fzHff~0lXm#GBAXZtK( zD5_Ewpu;+z-*o7Bv5bo%1nBaQe0Z}ttM%$QUMPk|aTJ~nfJza5P%-vHJtwF+R>-2` zX(NbnU-IA6rp^QRzg7PJo>%qkBHtQ5U2U#G|Kx7pLBfU;&!5tsu0Q!kyGk7@Y8}*! zsGuZAId;k?cj&jSyTdltKPXpSvqz6K=!G`&r;9(atL&312Nl6Dgj2>F3jigA`nFI0 zLoO6;Ks^i%+(Z9y(!K694xJbCh%G3mTFLykDe4!*@zNkEy`3DXLDC7ptNa# zHlX3prM7G zO$_X7Hlk#tFSIT_!ViHDBzgh(ROX2xia7nSp}}^B417W;WPTA%4~Kr52e#diI=9Pr zs`PU<&)G0Xw{@N2Q%q2)`)n027&ZLh8i#Zn-0QFEnT*F?EqCAjQ2Fsa@09b-)7JQj zeerS|jZ-`8Cs$&j$Ye>9e3A_xB^|v$2>L2fI|`NMVu%=r#7fp10j9L=1}-loLQ@%D72 zdz$2%(rhr}`YY$jcu^cLf#dUKw6X8TQOu&ze7w|){_QKy$F#ubnZ<+Ue0?tC z8^8D|T@Bh_PS<1Jx&YbQEvq2Uecl8Rke8Kk3+gTw8ki;33BSC{Yb99}-%0cznpFXWO6F>Bp zK9}*4zHFddPLB!Cp{-P`KR(4IpFE+@o|Tga$^{p1 zXrq63x$g59mMgD1qnx3)pV}|P%(=z9UHw^`2>wB@C}u^u5wPYI!_ZkzO+a(53H!&D zi?~%XHW!MI|V`+xj!`O`nXvwZX0ZDKp?v9^g@5Hee`B za8=Su+rc84@QlX!V@y(CY@6FRafqSoVB;2a-yHpq#(#mWpF z(xBcB0bJjeHtRU)V66qVlvLzF4M_Z2dy=RpI(9m%mq|qisHFe!+%WPAmwtkchtc?Q+3PwR9zo+v|rv z_;VNRh-=};YrSb3`-Sk&Jy*(K{Q39FfB55Pw414WnDxxmNj<=?DU=pOB0!LRl6pon zd7KJItIoxui-n?gT)nd^Y%D67Tpiu##8aPPkLe%Yhvk^ad)zd_FeU!@beZaLM2klW168tPQPT#4XK zhfE+C;}K&+o!;)@O0$!w}^Hsb5WU+e-VA+lYbH26hGxle8wSXT<3AVtBquT z7Oi zm1iE;XO2$WFF)DmZ?w@rk8#g8^mI*rN=N^}IIOGobh<aFq8vH;zV0;8 zCekf>1L_wp(YNqUE9dI`OB-^x!CYWSV1tR6F=W$1agJ#PEPQ1J(G1#EBRjCA55Tt? z%-YKkFYGC!Ul699;2T_NWb`&99Wc{Xc?}Ld&5JJmdK-{U0G`2V6A7X?lk_u;MTc)d z6(MZ=j;K4n_f9E%N{Y7=KlQ}hYV$Mwh=y-JmzTutbl6at42Ak;t$9u@2C0 zhi*^bx%05T$*FI2Ua+q3@?Ki5z4mM`6tRmsh`PaFqmLjr`mA987*`Y-cvlU+wGL*Z zp|j4SR{|I5UL_a4RWz&cw5A($WMx98F+^_mN==%{Z`2C>1y&RZOXnuCKhxehaI09^+bGD~0#yv9n$ zKp&`i!J_KKMV+@&rco)t`MzAej^NUf1p1Ndbg&P!Ao3@YT9@J5V$j5u$!mBCGUAHO z34LdalNk>?@7}wk9Q^2j{OY6fyZ`Fe^0jZ=TCTiuzu%n21_p~p;w}IHKmbWZK~y`J zguZM6!61dct<%oHglU;Jtq!7rEDj_HAuFCita1}h`73eMskx2K`kRgcnNPfl(UKiO z=_wAHIT-M*gkE+}zewgH`kr@LdQR?C<{ZtOO!%NRf34p5Yz5T7sXP5NF0qr&$K%5x zSTIKNZM_ow?z^7UB=%>z{dA+e`^Ij)WJ7mA=o^Y&2)4;x$P9l%4rlA?WS)$Po?B1x zRkT~aXmZ3z`vU9Z@wTQl#xy+vAUqqkyl(C3zil6c&KI4!>TMr@5ci9HSgD*8Ifn)r_pBZ;K@1`7h z00nb?I-*}bZOq~wYdSEZnjt5Rqyx58hHZ2s}crB^2F>DZb?GIrixbW~WFQkg7$_GvV5SD}4v49`E!R1=2 z>42;_!cMS=K~4ZU4t9i&YC|PhtxpP?ZG+SV=9m}d0e_{Yw*6FTqe{=~Hp%H^M2E7#~v$T!|}MY-}y zwLZh2%ypGyy}kiSH2~c^vKm;NasKIeo| z{0%?#pZt+4iaX_ZYis)a(%ysR%(IV_TW{0V=`Wn+?zQDb+4saT_PH@uGx)PapI=ZJ(|wd!bkzv@^h+0jIN04jRtzHG={kLsfMZ z;lc$6%Z;C*PYMs$$<*kS$WU=Vzb-03AMXeg$+6; zL{=XnditbV!j~ko@t7~lCHXWCL3QG4X%z?1twCZ4q7P`wi#XXr3Qoj8lM6*A{5t#S zc7^z^oo;hhmK{mnnzg=hpxmf8W?g^7RppK^f4+R~bNl_~EIuO3jwQ5&&@pMeK+PPh z?U5U6NMQ;8;DDAS6js**Gt1rM^==*gCHa)n+FXEqrClB)G@Tn*1meC|F zankp&W$C0(`5E^-Ndv6M_wb&6by|%?b5w7m;c!(q6Ya;ZM(^nki07aCK)2bvQttba zKACZ!b~i6PFHVR&yVC*!n8AiDp9Hl~^q2yWMWVhp#YvQ475H%&A_xY-%)haaEe@@( z3?wcR{vc3FXz50epJ7AT5ru{-76C|0yzQ`1fFv|&)Q>j{@7Q^)eCn!m%4e>x$FAGGllu#M2_nMUit}24DOx-OTkqYr42JDf z1GX%dY?KL7LB`1w%&}0cvOGa&67Lc#Ry|YKj#D}Ov>W3a3q@T*VsWWJ{jKpLFD($g zsN*(4U1eke85abwL02D7=yMrs2mLl=ZX5jiH*VCo6^lPrMOmXgEz)JC7+KaRSKy*v zD%~kWTj5W=Q}JnM!WYpQU#re(svz@}6`&5upK;1}zLq~}i4j5UyIaUd_X>HyD-m=l zQ^^KLK*}J_km-yEfmNU6+BPxpG#Gjr*IAq~XL3-Qy91wmQqLAYd{8f{Jfu%c>Fu|> z^l~bQ^6mp!5E~Kl8Qpb2U{iJn=T7?1ngwd>2fN=SU_D^(m%vPF%(d!u%HbVVb3WYQ`RXlpCVJ1V;TFF%ciQR zwb6;AWoTS}fgMg3kg18(QtTqf=Pu-2nvFA%1P&U#;p~mWdM@Er-Gcf=`Kxa~SRVbm z!{zep&lL#{5(9S*Wx;`5OWN8jxUHCxQXrTzMVZ@ifC9&07epS-ZhRqyv;n5-cWU{IQd& z4wkd@{hiCMIJ^88|K(Tpa+|BmS!e51rt=@Wn|XV5IFvO>>atMlEz2g-I%JrsRa;BM z;AOj8ZBYjPA<$ zXO0eh5AW%>l&%w8HM@B!dehrapMJmm^|v1`KlsjD<=hM9P~1l9 zaS92XJ@xa1s|w>p>2WfBO3sF#O0U~J$$FnaYx93H3W(2;qR3C_D$U@FNgM*~uI8z> z+FqETi}5^9xFH)l@mfrHYJ6P#s9qHHfll6s%Qt@MT3t!}tX?*-=G#vFW<#W@=u9G+ zFYu$CPHOTv^x3qbFPs>+7(Q0JOGocxA4e8)J`O*{-HI)XXnJ^7-6DH}Hhm(feSWR& z>$b)-H#JF)FLeTjOSnBHW6F!a@NXGN&v}CUK|C9B3~eW9@~1Z%s$U)WK>bP+&AYz; zOnK@Ny%gy*y(~)40Poa`G0d&cF6`iTaM9Cm@F~g>KPnFcs(r$f3!GBMg?{=3Kl-Tg z?yuz0GQ`*oo-zcuE))?5i~|f6UwcK%2h-xC*(4+5qzo$tTTCIMjFWB}5BMlW;QO>7 z{Wzzr`yk_z$1XUe$agsqV;Mgpxsl%`p|OsQS>8zNH$d0hPpLmPhvbWeiYu9{_37O{tc01m8= zfp;NUJ5ZEZd_61p!Eb`vKF~9gPNqx~SN)&}mZKPc!z#k%O4=lb9;PmsPI>E3IuRvZ z$~3-%hq6IXvI5Dp<0>fi5YslM(`gI259#F926vHC9rzmbI+je!$)x%;1s)On@ zrfCC+E-R;JsYzpy2~uuR@PMHOA~alG^iGt%QGh6(Svh`mryNUf7SuxVU;i)PEPwK6 z@073Ka&aB2xMVF#|Ht5j3K~D-#Am+6k{{;cG?8)MvdkWSkn&up9Zx9MM&nRYAA5cT4&VNmK${3td*kSZYM3DQh8gXDEO4C)R+YfTlJ z^u*Pc6d^UIT-?*9{EU10IXdt?yrnV9n4mF{*7ijXrZn@^F<%Q=<`Kvo0E`R%-mvu|rZY>}MWUJM?q_GH$_5&`k&wR0S z-{4HHg!B+O3TNvfPA41cvg8zu{|L$*U=GA4wv`QjRB zw1~jo;L|mFWshir@LoCn?4#v({^@Pn<-I~LBa81_t!eE{U_#GgahUv3tD5xJvLMsD z%%(>6_QJ<$cl;}T3^`komGoP&ax3zXvq(#2fNrMgG_+ej`4?75OMobZ0 zj5rvI(0t)Y$P^I_(AGH09^|vf1$0CEO>7tm!QK&IlrhQ#QHn6CBN5o@TiJ#4xD?|2V#SOHY9|#k>2`| zdgf>D>LjFHcU4ToXWlUs*ecpeJhWLQbQE^cicxQ7vjXcD)Zd2`*m>-!B<@#Lfn`@c zt-s0d3By}YDGQ=0Pt>ELsw*}@(q=P?He^LRGAGIqZz$$!u+Cll)b`Q-P*7+^>O*0> z&K4TXcW77Li+i3Q)SUq*H0R>ZtYgP`URCcH(Wj#r`{DOHB>c8qm6VLX$e%oMR6K{Zxo|{}r=8S7@iST|>d_Cq^;9pfmk!P`*d|fta;;dF z<*iyMq9;SE^lWV*`UX#Y(r4V$Bkf`Powk%h~6gCA_YH=%mT*&-j9EcXP^9G{D6u7Cw)DYo!x4P_%pa zb6A*mIXAdP#}ksIY=9{_B2D=X9*K~hFCL*}VW(dLrC#FQV1XICT^7kXp{oV){O?gM zl8==0FFskWxau@L_j{ebm9}4#KuM{}nOKvA7xVZr8Sq5Y{g}KIcyg*J8Eb`DCnQV4 zs&-F2vNDahuqh1faXrnP+TNyRw7tx!oRpFLnV-@nKH)tbxWp%%IAO_?bUjV9LsAfj zgZM}rP%X+N&xkTeqyB{O)dpad&9vFJ8bf1aEEXdO4Ub@4j-3QDF>?num7Nnni)11hx!$ycXi46LdQ^Gg{Qc}j9 z0NS?pv8Wf-0(B!@QEv#KKjKHEoTo~g(BxcK9#Yi#hvaM&|6VC|L)SW zrRZRzmWe*Mp{{EI$fA(BAMKHEj852|J-Q`%*G}Em&P#LjJTou8vJq$u55lCbI-Fg6 zpq#3q+SZMZK2$TtlNL?ihk731A;*N3GozFg`KVtR4OkI*c>Df1l{HwCGHVR4lTf6d z1`MJGrkv1E@S+M{+MBES%-anVg2fv@`X!q94Z#a}foKcV_(f!D6TWqBwZg5jDX?3& zim&m#3OxF(+F&B!|JUec= zV5n9%qp2IqRLlVBO%D%d7|IE=+LU!8b8USsLiC%+MEx}c0u+)lavaC)F~A2u8eo~~ zd6F(;XnK6|EQ?ps_p(n#{vzE|xj#?Y)>$V-S?g{SZi$f(9tyYsbj`IVp0Ns`4PCrNf&857l#oV^s7Fk6=4!uh18e$5pUWrIBY zhVssp*@9*dX*o!x}et!F_%$1$|t*@&W z9ox`PC+*XY>2nz8>6zb8lxwfMs9bu*nr{W7=G5i1(HB=0_@*g=I>_7Iyl}4iIcLBV z2NFYAR1XPfvPsB%a;C3lobZg3KI4S<@gm-&S%jaH*~2ouh(F~oi{YJ?eNJw#Bk{!c z@utAFuiW5AKKmpXj2RMNW8tZO$hcw*i5HH7;PzhN$)DI5h;AUCqpdwjjLl)t&;GQO zzxmEf<)M2&l>eNqzMy`_%WEW?TU1Z*Osf|(=!lI#Ka1{u8;a91DH9R@vWl2Fisva< z$xlc4BB@-@2`#8Vy3C--D#rf_)4DM*@j+tHRu7hIzR(}a!iLo{qAjy+hk{M{!?3&~ zAes|>EEp&e^w8+1`e_SA>Pp1s_JR+3`W)jS)W%dkwFT!t!x9cn)ni@Uc0TZn!77Qu zSFwZhufiZgY2a0s5VjwJMicm;LBcpRvN5>P8E5bf@^*0ZH7;NoROE?}+SurI5b^F`Aw*`Y(0 zxo?7@{gJ~x#oUGrO>7eItg0IeJ-X%Gk84=47N5E`HEvJEFQDrGBv*q9i_M+d=-;bz z&e^)6c5JtC`*;s=PS<#u#coBT)U_m*}ui{Vq zslmmm3<5_d zOu9f;>CJBEMUrq+H95&EymX@0ok|Dlbg09?_vJ`=Xxe3Wse`AAG3%h9vdqbdvTl;u0KLtWbVddsbXhlmal&O`gmQp#!F9VY!5yJPw0(F zJ`mJD|&WBCD+CtWyzoRQMBL;*&A9FST@~6qQhRK0#F{n zlF<7BX?!64pvR?%9-pv`lRo2wPvew7g_B=|o6202U&KGBYYNM<5vTl&r*bo&_#t*F zYCDWI3}>H!hey@%t+pKtIog@PxEYH>aw2g5VKS;8J|!5(6TW(^XA{-z2lcqgyLxfm zlaH;JyZ-KH<>`lxmvhfQSN@_G+%R`_e_@l4D;a#6fsGYSG$q3ug7^*c?C;^7Xh)wH zh~jczR$QG|$S{7PuSran-Svc6vB2*-a6TynuK{o+3J5%X2!fC`fj7C$PLxdr^h`r~ z;1x^iFnY=lQq%?`pMN!8o#YQC5<=rpEEK6<2+=~!q@M=YIMHlHP7QS&1>(AECMW@W z^3ZSf2Tk$@DMw*y<4~TVOo0mqXp+1qVvw^B70<{p(}p9K9Cc=3B2UpTBOmzlY5RziS8M7?c$FRy%Vu2l#bzv*`hu zKjL`ld{c_n5EU`a_w6?f-1!$jD))cq!}7^5${Uz8(bjFy9Bgoh zP}VVuyMRoavk7mgDK|UKfUBi6-AGR-51%AtoP*3zU*Kl6WDgAX+PQk&fq<8vG2%(N z8M|()45E>p%3HGzLBCmk$Lh+OtH%*dSTY8ob*bpEJ8iQf*@W#8DnD7tF`bSvVD+jX zs6XhMKS0AGjadad&EaQUP2`H-G3`Lm1UxIj?GkHi)F~g1J*q20@0VSBkCgxVUwpZI z`75`SPk!pGa*p1g#Pf>qM7csICr6%@U?R<}G)(+sp~x*9`qO~4re`X+G6OF^7f85P zR6u>GWyrF$b~SHL80k4*+DwJr(I8WL;E7AVDGm7^Hl<&c?|D-P@gjInvn)N;`}2@F z(pM)qt~vXcuyvvv8wBKO>DVP@a?BO8S6|WVz#n|RJoJ-S%1bXCEU&-BLg+M+?v@|v z84b0iZ^4pp?B1pX6VxNrNUidbC>#+_}+Fm5FSftLG z{MFl+-N1s0{{&YrG@0ZIB%hmk{Ly22%jw(Y`DYH4w_fFz(=$De@>zxaHmQA3i$x}W zJQK_~&n?ioIfz|DnWzamlYUk27#Gm+IcWP3WyVs1`6xD7#Ux!w;vlI&0NV^zCS2KP zEi{w}m{a>9ID%hv#q0HLm!x-UZX-xZI#wwKdB}- zV$lJn|ADCXG=sCBro7}+K1jtAxL}b*4UW7FDMxJc1W7oKMQd>!P%|gHhj;1Kdctn} zia$c=(tHIQ(@vohZ!%C&nmG8(Tn~L!_coY3WlGRk2K7oCvgk*lsC_#q3phCW(SNF) z%4Yk;yapR1SOp6_URL98Sp#Ptrb(3gII`G`;7+dCFiKtVc!q$X$1l5y^9y?6vL)!2 zP4-A_@bA9VT+2AYfCMiu&E#A|8jH8QP&9d# z)XXxXRb~Zr(IVWk0k~t|QgV@wEisE|tG4uX+t(RY9X9o8Aaa>HAP*Q)k)ygpHxqcl z^dCD?G=4T>(a!wAa@P-jTz>S!$IBCsy{hjgZRn*4dL5SeSL6@m2Y1FH%Fm9ycMx=-K=yA2)s6YwqWkQt$L~~~W z&23sz>RPUR*dvejr6FaEY@Fk;riw`0=IDTd*U!m;&vsL9fyk%=1oYr#Cec9H{m6ST zsd(R4&q9$2h*0tw1_*9hI?m1OQpUnD7K%(Tcs2V`y}j~)u2vr{w|x1M^2M93F1P=} z=gVh5s}IF$jN^(Cu7}Iwum0v&H999mEE?kqOgw0xZ}N4u=YX3HWy>Z9mkWC-8*$W+ z)l5ixKboMnoK5)|Pi2x%7;(~NjG{h0mrwpVqn6?3=zG{yFSw5*ub1t#+NpY}vu+c1 zO4auGkxH(zbK=uR02H{Onu})@Uw!4MzWerax#tJZlt=D6P|i8;Z28(gFARBBhnG6= zUh!RWtmuj`b8t6u5@w* zkSmI5A6ItxegSVQ<+jwFYa8X$pNY?5+;Yd|{v5_0T}ahqNv<2}hXq4i6{4-UDiklO zh!Z${HEbrvjzwXvoqK;sd=KkoB|hUtbnqlDX?r>U5b4x+DzdS$w{uQbk53(QbkS%@ zfm6g}t2Ge`k7a69r)g6q^>fp4z+L%4BIt%T5||t^?%F2>(>8SCh)=fUhY`E5rAuoM6 z%7AQAsf#iI!_J5UU(*eixFH_bY04Y$bE&jt4hPJAP&x-&!oKt^;-*(BqtBu{3?2Af zLnAfWRE@u4H|G-(Woqq5)<4GMY!_$+#4j9^uQmq8`JiE*ppKjiJ)0~!UU*8T1_NZ| z=a7)XW)X8W#}xS)-N{3CA zM~#OYxalfVsuV2oEhnavi`Dg^`sPo z38l(kmX)2bI`D`GHTW5R7!zEyXgVza<5|KJS_K|IuF0+@B766-2s~6iaoMi&d%yo{ zejakrp<~eo6DE5EC*)vp`QGrPhd0U zPTqm==heqk{vdfsrH+gfGv!&8pYo@iX}nds3ZYKup4Fa7FudQRl}a@EyE-;xwa-SGHvRgUVAGO*a> z$CW3Z4~_|`=&VZ%2CRd&`Mn`PM`2MrPx&%GVpe9W{8PTnFOmy>k?iDM6)%&$iWl9f zf0>-5LEdIMyd>+ri}C+x$ZCe#--|Nh3PN5@b|3@UT;pmqarh6E`uTP=y`}K59yO60 zJ@ZT{cmLq0<&mGfr>oTaH5oijKF4_c2lm{;o0_XYyRY^?Mbfaq$8l5OjJi(Kt-5gh(Ns~S`iyi(&GK@-|DksG? zo+!hBtq8#SHThmB4rP{k5q#dt`h}OehmQj!A;{-g3k;b3CQ2x}stlBw)OH$g*mS_d z(jO5QYSX8MwGQ;bOQ^Dx&#^J!Lq2>xBqh$+Dr1TnXq1worm7*tkwBPdbT`rkiR^#) zG39j&tCFMaz+lW+rNlp4BXn@ep9K(4CR1(J<>q{)Z1auKXF5b0jlkM}==;#tg<|E# z!VqnPE7XfSjrrW)HcKu*G=W3~ts8)?=)oxSM7bTfL4wXNTUk05vLQne- zCAZhHDE)DCFOs<#ULB+&!m-I@wU6;*o6;$gnue4Ec;XQ!i#J|hFF(HTk@9c<&0my1 z|JKXp>vvqD2If{MTvN`*j6I#S+A!n?-OZ63&E^CanC>C_bRyf8MPTNVtd!?=5PRl(zDRc`B?GEnMUkrc&5RWS z9({8JRYJwNZaPAjpQ6=}brS^&xvg*vTHbLY?tkdkh`=I|fyo0MyrS_SN7<_aK-7(f z9-ar|HoM)sPnO+#Pv{w$x67{6J}STe-~Uqi>Q`?s7hk+fukO~36RbbQ$B)G#gAejN zx!0uG@|x6TF=Evqno)4M;0uIhL!c}WxGf9V&nbj2jD?N+>ln8zHz#Wu z{S>zyy>q&@!#~x%Ij@sT1;#>9?Oort>{sFo>+gf9VVJPeI4pt)tRr7|?xe0L{nR4Tkq7{*yKc-7&DHYVA7>uJY&VpIJz>&cj46b_ECHn8uTFC|6OcN%MS2L zgnk3RK}!zsXyT$<_*lrYiL!e)h0+!GbzVgt-#Uz|@mvYgt)m0?c z=M{GL2Li5A(Tr>oa60FkiO)Y*%43fn(yiOil^32pQqDY+4Hh|)Cz&E<^2rrNcM$aE zRYWNfEN|J1D`44wuq}9fm4ht7GNo83m&Ic)J3a&h6;lv+IR?zSD;PLQbZ;eOKiovC zib##%Ocx0q6IaWX08s62%b zgC%`gfa+J<6--bo;mWADBd2c|EDe>7tmkBvHs@zy19BPTX>0XM>zUd+(uOdFYF}NT zdYvF>oDube;<1A|FMUvMy5+ob!;P1gi!SC9E5+a9RJBS=l+p7rq$%q?UPQ|W|IrqT zG-M9W*4-Tz!P5~|;X6^=N-mPSEg>t3heo9_tN&H5#APgp7;uovodC-PNq!X(nep`xO(5si6{7eG8*Db(AUj zOrGJumRJ517lOeI5K{_79MHsBLP%G~i~8wcRd4!&6(*~20iV)O^HsV%2K9TMhtk|{U#GXtc zD+Z!mC?+pnrsr8WsW34Gj4W6!6KlBQp&OxgZm_lW^9OCn$m~YH<&>4hDhFiim#%JdZ~k?ATXOhga8p)WOAVxK+*Ly z3H&+6%?~AW+*f5%-)J*Br}R^jRs2)>KEF)%oZMyfz1*#(VBR~YdZpVaUh{Kx-YoQw-&(JEm1z;Do!13WAeRi@*yh~u^Nu>g)Mo+q>_<~Hu# zx@~q{xBjfJe^f5e3HpjF&sKl=T)E+kXZZy--1=j8x5Q9Mc|7UygrDcjuq^sS-ZJR= zwZAWR`fTSpA6QbjEu&KYB8Fvp=Xke6zl?T~Jw1F*e~(|D4xbrlXoLD=>?GYtl}_=;eBWAm-oO1bymqx!teYkE%cVEO2S9eOTS z-%V6M@zr-piYxk|EU!Z2PmHzH8=EftRSGG$6*5K;t|-=VI^Zl4`E@krggYceDc}VX zFt-mZWEGnmr(G2qeKK_n8sI}Z@+!X451NHT%@S3Ow-ZfrFfX-C2rAg3eGp)xC(c0t z6EVbNy$DM^$RUkmL^@h$ZlM^m$Fg9fZjixmC<|rETC*iOIIfhDj-xr-NmLpD50z3~ zAmpPX!zNpd*i6^xt***%)+Cl#7K`0|RP_=sG!s)TBl@!c_kIR__Ui$Uv~frpL(`Tq zi7Tn1gy|%BQ$6q2OD46O+fRK@vF9aXhQC#(ZH9iJ9j8U@bJ%pDIA{-h!WP<;k!BR? zLUE^Koq2_3Bw0UxP-DY~~ zvSj-i8jRmEnRB>oXf)2@ms!&DPU*HQYs$a2wI+C~o=3{D9{J{cyS>@+hl zRitJx-qH482UG)xX0bVOU2B^UymtMlZnHa}Pp}**7hiIE`RuiqmS6p~JM^IR1!Xsz z+x6-ZT4SR_+K}s=ZbSVH8y~^-M`*b%O6AjOq1u-=L2Fb!5Y@pL1Tw+by2%(+hQ1CH zHWxECY?XG(zlv`wQ=NT&k^DKCi)ed!TTj=8q8NDj3@5)ez0?K0v=ify(@Jth z(PNw*-rp%-Vu7g_=#~%lyyD}JeN?`E=iTMLyWZ4>*STueed61zAG;3tsU+J!b>fna zxWZT$Pt33E1;nJ}5!HPns+mAfj)B8{l5ZJxFhjvPO+Q`?LQZAjO8TzdOz`z);G;+U zcFH|__UMx!2UX7Z%U6Ht(sJ`{*Ql?Yr#=%CfBHu7BO}u8FLWUJcDz9~5Ww>aCRgdH zlc6ms!F=d_AkzciJkM63t7N3EIa!N%Plabr{wf%H7TJ)zY0GB1+E7V|pXblxk@Ag% zhKjM)Bv7gy;V_8~u~EQt+d8o;rxtjbzbC8<3SJKk5q_Q?pOECVo z%;rR`Q)CZhL#k(pvrl2w%>ACe}J z({eTupdG5sNhtez2}zZ4_LanB>A>Vfc*0#=ev4koganz03OotBi)^j7VXm^NahX#zRJelfqL1i_ zb8@yTBV~r8gwxo0qNNk9<^q5ddAM*x#cg@mVGe(X>_gpt@}PF#|LEV`S^kedc(&Z} zrE^8A#+9G#(rksdn|TLOR~KpQC_^-UD8macZ$Z7b?62=q@?=&L zu^mhBPhgQl4^Zg=ge|0O8<1KKNNR9WhuBcTzQja4uA>2$WlzX751c-o{dx|cyo=&h zJSlq-f5KPENxD8>CVNiaGWuTbR@2-TiA>)7Nn@{R3`!X7NHfuPUI3+k8OmZ&6Jz~Y?-nL7g@|25{vro|2Qk@)q+@8v~&O(CkGy;p~oF?Yg zZ1N^{n*X?du!?`GFYO>+#Jh}VEBrmpvUKX%njModzxvD|p9ZWyCTJi$sUt;$s$rSX zL83srWg2w6p_I)xZadYVCT}~u@DrWJUdGHrdM@#GT}^!QiR0zI`+ioQdi;>SiFU4V zd&CiAmlul2!;z!|Jxm1oh5sSs5Y^9cDH% z4kcc&F*r#HuBds)q>nr8s%UvZe8Y(LE<7i7cy^K}5 zd)hud$inFqCRGwnffFg1gabQC8t^O2JG$HN$tPaXvx$$D@BYW1l)t<4t@4>0&hq3e zo|B<*#Zf2Rp~77msR~ulrnCW*L*=Ws^qjb5fFqt1Whk47Oi|;YOX^Od?9I+SF=BHz zWp2g@f*j=bvZH2A9!iW33JdEbDUW%gYxoWu$+SNaK?%cRo}?v)D$Co$`*h-~>>gFM z^!}4&cGKH_G>~9mVW2~R1|R)mz!Sg&5#?0c__|1hN5OC=3lhU(k=sLg?uyANli{Lo z`0UtuyuAP3hq_&Gqx|;o+){48{l@a?t1tA!(x}q>nK94$nH2M!A_FD%Fxe%hKjE{U zcvt%{2kTpamyGDz;AxwaLeR!ALP+kA@6*W{V&M+~Jq_uE_w*kp-OEooQyp_ON!!O$ zz8*(x zH)T6|`73>cHv%)E-?f_wHE$}_=VkcmR@u`}=cP4!%CG#!wdK}3F7~HnvP#VBdV*iq z3?yTiBw~yJ)Rkzsbr5_r z@=oDf&8MD4auT2N#&qE~iBn4`S%01=D%(huXbY}^BU5nUFYUQNw>6E+FGgyH#P{AT z<M@g7%5y*apuF|Q4&AzZj@*OsINpjIHsF8ZGvU-R=4T(E9HX+NolIhVp1`8? zDUit0PjS= zjqeIR*p~)|zMekhB0qGbo}jGdnaBf|5{FXCZZqkK5Z{4Ce;|mey|t8cA9?=K2@Q2i z|3LyU@Uf5!UmCQ4581I$L`LxAbLkhAUUH(Xj1iuIow-Ql8D+gp?)VYig>XcV1MSy~ zY%VUJ`Rtx@>E)%Irkiwl)*pK7P?X;z##Vo>j0K0(eXNCI->7}#*xs2#Pd|e`CD1Cp zsdE+GD&;Asr`x*Bu_J^m96+H*1w^253M1{{EE2huDJD})sGfP|NcqlR{-E6T{m09D z?;a{|zJ5fL3tpzMTN5juhv6G|N98E7Ghhd-^2bp)!T<}qFv}?&?5r6NgiZw=$Z+X# zagZ=TdN~129CSm-&S3+RWI!)WjoV04JSudub3iaW#CUv1QAZXS0nlB`HA66Ohed4? zHcwlXj_sb3QjX2A0aB5+6)VYyuQdOmAR3s+hb$%ynt*WfhhAv>3!J5imRnDQzT*AO zEokb1CmyaAF`-@GIOexJ9@ks7_MN^_uKM&j<@48HUVibHZc}`YC$st-qi@M$hl)EB zx$=Td@UyYOf`ZQ|@EUjgm|LYr^7?oTdw9|(-J(3@@57Y7$Mxw&b|uZ6oK-x@yE?9Q&k0Z~7@kqY57)TL zfx84aHm=lOe%-&DhZc+piY4gq{(Ggo{L)c<8}7w&-;aJ;o_*?I*|+a3iPaTFeS?t~ z+r&bV&t-5jt!=WZpNcU0#<(>0A(Wdxea6I=J*J+^)d`jc5{og3QmO|Y4d-sajrBw2 z=&_H=r?1(slk{cfOSkbkjNRpov*I>fSiDfwEr(o9VxhREtCG=I!PY)k`zt%Yv>lr@ z^dI#8V_#9+j_=I*9;G56CuKpmj5avN$K)MDx1LLVi{vD}mxw<{t*5^v)-6$SxRmlH z(ZQ2MH5LH#2M=u=@*vS5sl_6@`?NW}eo`Ot_U16dg2qighw+0SyixAG=T-HyedXBk zed-6=fl%Veb@lBY7n#5Z9X!-oI@ z{2YNPNdZAslI(-6-V0oTP zu~LG)2&fBlkqy2iqgrVs(743On@leNQE+SI}A)&_@zcPJ+jnKZ;>6}`OLd0f7vOX{9(kY}Tl1U=P`sSWdaS!0H=>=A9s zo02r0LP$oSr$i%3k%8Q)Ezl;rvG|8ZT`O&xh$%_+5{awYKI}ewut~s;((|`7#m0NGs z=Q8%OBUKlQQcap$;XSBTUEvWzSSBY=Y$Qy|if+TvnPmz{kcu9f3W8rETbS#|4XH$w zC76>oW9Sx*BT19|VOuCp9Q=KHF3;qx=bfVgmSK@SiO+bd7x-3rQ^w+$`qIxQK24)& z7kov}L}k^}=6?P`KE_LnvP~*yh*pNrsvOpfL7#l$!}8aEd4GA}zPGhdJYC<7(@Sl1 z3+l$Y#x~tbj{r6o80&m{tMs!Qnjyx{$hlX@kn9~vgU#mPfZsK1P26$={pOTep{)G$ z4;FG8+701lJ$xJS=#dZ0!GrIVU;g#alsmqBW4ZFvJIcA|>qMs8dwo+its1Zli|2z1hZT+fVaw^uExiSJ9?6=-^BGUPjU^ijy{ZGhRfW z@Z`(jfQnjCnch|=mW)`t(V z2^TL`iiKkMUNeTVpZ<$+O51D~K%f?C9|2y=5GYeuD)>PMf$I-6S;g7M!sjbXMpaBi zCN`#mo60HPL{a#msx*kYW5S1inaF`RA;i&#d!>yo%@mc(HnMAw z(dY+Iml7vcvW!67IPUpTFtr*jWW0`5l9 zyHF)fvUMRK{-RuNCuC!+0#&l<)>C6<4%5MOD8vl$1T^KHpq-tQm#{_ri{L4L6@SvL zic?Ncw@CMxmMYedftXMy-L1s~Ivm|L3@X9LN`AwWa=lGYEBuf2T;l7m9oMZVkC#9D zfB&-l(Vytq#G5~%#h|{Qw5IQr=>*|>jdkK6rk$Bk4b45M8mEH79wBP98=^yUkLe>f z(1n`;ttC|o34PAOEH9vmvnE&_oU?;gcqMD~3OHFS&*n(>^fERR$UF(EDjHgHW00@q z5lxUx2^&WwENTVKgvHq{%C{9wd`mQmfv<4;SfW%Q4<1xlRvHtLc>W~@8jjG_!AkT@ zR-tDi8#TZpu`U$tTN+$6ny|y{@5jkE^_m5794_y?^?JGRlJ)Yt|KeB5FWhlkx!}Sz zU1^NLNkqQNl=aSlw4p00oP2ra%x}&#GRv4ToC>0k_Q5_v*a=IvR6R!sH|A~rW4_G? z`g7l>lRjfOdVDV-X%@*y+N7JyCol0by5uEZWKT~+dMXdtR(YXa9@GZ*o$w#(pG6HX zpve{h<|`PYV_}Ei&~k)~NpqSayzqR{E%lF<`+xMZo_#&8kBReK?3r3@^4v97%;7qr zTReC9$|8$X-Y}ZMJ_1SlMaD@`{?2#q!m!eNz2F{3+3EGwGn-LO1ovdBOdL zKA06ZnATF$wx8ycF#RFpgiq;L;ggSeO55WWrKkGl=uSoMoSf9PNM7Q5Ug|ztuJe~h z05V#&T~Txv+L(kvij3H~SAvP17KpxupZ=k~!&`ng))jB)E+P2|i^S)iE#-+vJ}i$v z{$hFg#pC6y{rU)+zBkIoi61lZT_E@n?#tqZO9uE4czi`~3C347&Uzl=yF?%f8+;du z=N<4{iup+mWg-nyznrx?51fE3j*1mre~^<^oV}{`I}=Ut(AQx4E}!sCag{%47DX+K zwT@&+>L@>zmbOpe=7~NR=S!@kU#gzfM_s^HCzOzrCzE!`Qyi6$GNYH9hl(*@Zxl90 zemF*ohWG*iQv{4S?lm(P9%~z;Mv3sy1>mOZNG`HPA60G%@^dsQPOs#L|T&T2r zU_>r9+YZpt2~8jHtSce?A2NDelnvIv4bmlsjCJ?W1l7V;wpPZpm9}jQ#Y*JL!Y3Hy zc{W%+!eX(G;jtOd`AYuee#@0b#(n}k^k2@QjQP|!;{!AVEI<}M1P6Fw>}x>rIsA=J zG#xGHoU>Lgy6}v0{TD7MpZQGjOKdn*a?W6(=yMP3{sWl4EUDBL<<#$#7mBh({IwFv zED3XsGe*DMzh8sQ8{rSpZFKlo7*G?f^Y!2k|ss$ z&eMFay?#QsWIb7ac=w~_fuB54o_zTIa;fe;W|7DX6>tDPjlu1EYq~W{EvckE85Ah6xxj;#S z(2Z3IcR3FvO#Z-A>p?pZ2B;k+BeX;!(vsB#H_A1Q4)w}1H>?P7giZ`k@m`P7vXD>1z1gxlq^TG5tzhteS{Po$V!G5E6Sur?$pGXx1iF-_#l470*#Q~0TQt$l5+kqBB($Nq18dsC29eEqQlCj zqS_D|{PF>nZA0HuSP~~sG}%> z@|-K`#36MKHjsiR0y0{85~z5t?K^bCCvV0{Gvx=LG~lNA9k+ooP@X)g z4H0dM;0}6uaCuWNu=(-52g*-=^h$Z}z2oJh54C{Yd#3pJN=~#vybMPh%eq~IO+9ZM zTTl3u-!yHT7$b2O8!NpEem*kj!bET#-h5FWm&OA)GR(}O1_2BXTGt<9$SRI{AS*zS z7!Gsdf-WGW`w%qQzlBNJ5SccFwqxZV%NDT0d)Y&}8a5>}4~?du&!)!wQQozNoor2T;QW#z?BL^ed7mh+nzbebdS7V_bWBE0Dr^m}go zjD?~_d%jf{iuEGTNfx4N_b4N^5R1<6AxeZ#AX9UH*+F_;j{+S#exO{dw`*T_-KCy` zov*8jdvzy^PsOel7K%vGn8UnIV~6kf(VdAXb6rD6d9~9U`mu6J$Of8{xFM#%Nq!OU zgv6&9*DEa~<1}R`RzmSWa?4pG(nqU7uM15ufYiv9RYQU7Z`pU4V zZF+dr6{15fLVJ8F>G26$6wmSZw27a}oaU1!=`+75p5xyt?;@E4Tovwd%gq!n$T;U6 zR5y*=mlJ9DnCkHacRny7R;$(O<)rH?9&%4^uRrjiZn1yl{c`8G?kW%7`(8Qw?DN#Z zXO%s>&yXDW_$J;37gG5$x^S< zA3MwO#>(_<^idw-fFUhHmMQad{McgC%X<^BzFq2)Xt=W^u7RY3WRKtAVdp-BJWR^xak zS6gp7b?XuE^5P4neD80bFF*X=Ykqmni4(dFTm9>#p4(-&gsX&WnpDR5UbnB-g(7C~ z>^Jgx?iIV35XL+Nn*;;QB-2+d(vJkJK5jgM+AsNJxXBTaK>%0-5xxZ)I>pxKtN`Zi z;4^f>4x#Z^=~d=HKq`dx$Hcpj(r3bu1kc22Sj5c-u&_>jI9XiQn}~ z-I7LL$c!Tb^9RZbDol}aa0FbfD;Nt!&b3M>Iiw3i)nrj2j32gtgGM~Obn@G zDM=HCZKi1TD7K+rR6VvUc#;!P&tsCRGWo%qrXtOo2XItU;--bGvWQGF6rf=OlmY^5 zSOv8<^&+vhv!&4&*+dBc7~gs-X8A=f?1qIRb0=&;I15GQLHzLdJa>Y_*8)#b?H8^8 zs;`Td#o~#RhjorTSZ=xPigL5Qh`^mJ%)z*RM2I4AmjP)uHrF+e<8v8$e2v#}OStEP z6qx_*E)=uzXsk@5I2(_2hQ!a|k|yJ%&HOa(Wh8CFGKME{#QeZ93C)oB%o8UJ+D!NO zKHcl;;h7%z?Xd#m6kv7GV8EOE7^wLWGaGZUvlxv69UqZa&UAX3)H{lY^o+v0?`)KZ zA9}j{hd=w<^6&q*XUpgAIM=&}+`7jV#9eCK6M6vtI9C+;ZW1>lbK=p7!V@`6*c7NE zfIf6_5{BD0bb@PKv74ZcKC1wL|0Bi;r!+}wnHXh2oD`Jn7@P@67(W1@GAuYkMxaxE zBQ}W+@n6A}Pq}R8CQou3woebxkdZ`9VFH?Fr0X}p2cPL^8VPzuJCK`qob7Vfn|WoN z#IKR9gHK4D^@f+pv!Cm@X z#_8p>y?P6bPL%j6<2pawl*M8M>W~!q+IL3jpo*h4TNZh2pty@)n-C0*wGcsXzQR!<*k z20}ao&lwuaWeDn&;i{=^l~XrJ#kd${+G*Bk9?$O zTjfM2HIdUfp7}vcD3z3GWQN_+$mX$4z#rv7T%AxHG{j*QX2rq-&r0u7()JP)Do(V9 zTP`U827(xpoCh*gv}sA3cfdDz(i0o)8Z^`*+%J`?G8*{^G|0`e07?GjL2|Ucv>TZi z;;cjQRovhw;Nn~aEbcg}{S!q^S;%v}B2O(#y+=Lw3Q5p}@5_a{{!}lm-kb{$)iK)FP`=@BIGI<()hB0)e z1(Ke!g~*cH_J*KnAOj1zWgwy@1T|u?VbEaKniY}Sg!T=Fl!l=6i;RI)dF~(Z!WX~h zS2ltLqUf8AY~)Aq#$k6`IRLFdQolYGi%y*|wK>ltK>W@)V@KJ4&aQI9jTe{eKEFqw z(GeJxGRNwb_0?&`1kR&8=kLcT7&{a~r)%%j7mAit4>36PkRfd+>l$gm3@KO2klmD; z%1`=)XPk`j989!2xPGAsP4XxGviwx`G@mju9?PPtae7)v_Q)r=`obXXxAv*gs2ZHa zw`Pfi7c_uh*MgFhfF8psZ|b$!k3aT;Za;ZUAKHDe-2eS|%crhA-@Ap!^y=H4x<6&l zZe3H>1Zsna;M+v4>JOhw6Gw5_ivve}g?B_6Zl~an)QFc1G<^vA;BQDfyoGF%ll7T$ ztOr}%ZV6r7X3g$uM3#r_$nBIFqzQ=*|4(A;t{q1_me=gBwctD&#Jeyo!%dl}|0yi< zAS#}At#qy2qe3N57bi<9XueSenKXq&>^4b0D;#LKwQdwrp6L^JqP+dad*$4VH_C7P z_6^$Ax=ycVzNlPuF@7ID6O{OPw38Q#9;o=PUSK0qr}2P_ZEC|h%Ed`qbYAc>822H| zGr%ZQ`q}`M=&Y9>xQ%qrKPSHz)zkKH(rF*@GP<5`N;lO%#ZU9Stke%|69?af@V5;e8%CDJ$b1-^RFSmeY6E%e!xj^8|Ma z=}{EltMXX@`lAW&L7jaOoKTf+*;KE`sqD zXMhjjlE)MSYFWyPL-HU$g{PdPLwIGS$-5A_9p;0ZmHBl)V> zO;J*U@D+U8$nxNgA2vqFxMnjlUCmI`o~#x?;#up=)yB}|4-Lyw>0pkIcEeokgDXB9uRNrSAZ zJa9d}mrZ&~pZVnJ>E~cQK6wL1BX9zces=(%4DPDKYNsbfw2f#OOkz>XTLXD{NKBfZ ze@;8=e{)ay-gh4?uf6(ydHv<1dYD~1i)zsmdPp6o3&-T-p)-th3{3{k>IB~$!rrdV z+|*)FAn6qRkup4SLD4`pQ7PT-$q&pznjE`+b*maloTyTvq(xmfD@Ka4o-A$0qPzCS4=IN0e~Xm9TqW%-5dq)`CvyzJvuo$RDmPdvdm`sFeTw>!!jA*Z0SHG z_OQKz7zi9PuGtzzyVN@Gd9#sdqn^d2K*ByIJ51n@9ywh0oq4QWan)(%i(k65{PM5d zrhDZzdsaBE5i16_+AlF_e(>+q27l@qv z)OLP;)oo}lHIgou_(yw1Aa;{VT=;#_OKeJcTa)F7A9|^L`&$o}$L~K_&bi=hZJwR3 zPfwi2(CRll!;s@>6^Aql58Lb`9$Pj~tYb$Oa_XOxb&S`RgDv(p9c>i+?6&g5_pnvE zQKjA7jg2F^ig-Y8Zaq+L{_-cvO*iSe#4ny-KK1Fins{7~1?OO7-YU!Xh!ov@y>(mxAWwzJ0Sjd)PeJJT&>|vCE-zI#C} z#d2)QqZO!Q>YqRRtq+yoZH4~?uu>?WEu$C|4NqT(%_tr89}5_rzm?`{I-jV0_2p9j z{)casAKmkk9x2(Q@1gC}hA`h1Ajn+^XhH|s;HZ4)1!z6+@gKMmyh>~MtRqY20CmVoJCenD(^s8F^l8|`fRDdW zthU#>OdFWg|-iED!xZd1~}teB~U`Mjy?Vagd2Q?9Els(nf*(OH+)A{MwH8_O`2 z5h*q477DI%0*?*JDOvblIwo{kj%pv2(}g0+gD&NWs98(82Fa*m5>m?&S@ha=w;QmO zo8;9ivCp!qv=o|gl5f)15aLf_#ntQtWgG~Q=p|cOr>8JAg{Ptu~%c^E=CG*O3 z+=1u1XmEd+T2&lZ7U@9oAUdD6;EjQM^wDN+L(zO&R}~Iqn=15}l;V_GGT6EwRc66bcRHkoIPrh{&f5#WHZh8l>1{G98kIN}s!92a7Ndp@yGv63MWa!fYvz3#+o;KL` zu|r`qXAELId&ZR$o>$zp=U92=#n;N`Z{Ah@hyU?+${oM(>7qwxbrpy!=aQktgZqW^ zx?Nf`ZmVY8YYMPP0FPv}rSihL9@LLwF~Gp5AXKz=OeO;;*wjfA(Z!=OcJNinL^H6YU!*_rGpr5N^Ul#HKI7JR)Dkg;mMEI4wHxCRdzcYJ6@fNm zq3AQ0LB_!6b`3H35FqZHfBdoI<(q$gZ~5^LUl&AKkBK-mpcOyCS3?)K@kbkkt<(c|r$nf-+CmXK#4GTc9v9#$A}8qejgOQ*RDSih zK3~4_)$7V9uhg67blVT_2RMFQpODcTE_dm&I;Q#xqv|1U@vdr!P_@bD4U~`3M@UCr z8KwCNGUGSdUM8pq=#n<^neXYgl1~1u(9Y5HdbcYp=~G6=sVDK7&p7E8;iq(&AL2Sr zMYRXGj!&&E2IAQiy3NiQrnZbL9{TRF{DgD`#kcUiYlt{`-c$H+zO~`^)M3 z&Q{y)(xUNby;Xl!`~*mQhksD^@R*VD#t%$AZh(e+!7qFx$pi|}0V-kQ4R9b3W!AvQ z7(U2%s>4q(5><5&X8>fSsWo+H9E92CUMR{4^8Pggp_2@=aR~n4i~2K#z^F@j(t&FM z*)!DGvNFV`emSozfhh9UbQ&iAmCn0Q&bRLaLf>!RpX200PmuebcN}I;@ zjF9v~2TK5upZU~5o+@&`FkS%vM?92&sE5=l3M+7&K*c>}pH7{vkzl6|YCVKJ1d$S_ zqU7o2Kmju7BOdUE3O|MnRhRJ4>+#<5EYkIZM5s7VP&c7Vay9<@d436F!<`2qv^B5s z;E?V{*E=G19WA%rex;s`zo75}8%`H-8siy81YsL;(t7eW2o|~$0GZC=Ix*UWbdCWn zAw#Kp@TT+}FGR_|2;U1z+8&nat?(x;@iJLG9qCoFr?R$7PZPkygQ7IdE}ke=y*e)> z3q=BX1~C?SOeC0q9MF#Xi!bPHXZJr=zVn^$mjC!vKBVWZ>_1TBTIR1XBRG!#QMem|3}`N{_1vIXMT0(dpTVW zR}=?vom;9HjR-@2;w~o;6g}+O>D> zG4g1hm!VNx;4p_}-c|!^MK+jUFC!E)h+A;nERJeSC1AmTQ(cHQX- zmN8lfRRKDZ+#nH+Y*)9ln$!&|uS0$-*}1K`f1~^yJMu=k5jV$-yisPmdE`^)Jniw# zuBW$u=%(L>i6RIeNY}pdL@_2>;6c;u?9kBbyvq3&)W;qz#jJZ3pA1eq$S;i`_C~ zuP1AmQ@yxCxUSoM*4AFt_wClo!3%bk5B=s%zX|zlCwV^Tw zk!|eEh{?Zx-nTcQ+77XSS}ysrR+$M_n(CYpzY)l5nIzTkrn~MR3~Y)fZA9J7!8Gl$ z!3Vg)7{oY%!D`2PV`aMKqdbYFfezO;QHV_lUXj_(Vn+g~EG2tnzbGsz3z=j^J%^T@ zJCSWt-O0Lim~v?*l{V9rG0`!#kJ>@3wr$Yto0!?&q}UI-CBwD>p%*ItU>S-%kdEpJ z+)A$?%92lM_Z^@?fRWvQ6%;xFX+d|zrjE)8cEtp3^%@naCp=`0#_owUt@O?DTj?M5oe35@ z?r=3e&(hH9ezrh;!<9n_ydjUiIeCI0(2b)G0%f)Q;^(LIdieXx7ysegI;;MmK8JC* zyyY6bK~mpM^qF;^-R5j$P6&yJ2prBhux)W3fWr~OVdIh;KusMqpaP9w&S^E*01y9T z`;8J{a3M#5l8MtaB;6iW(%J}G2Q)I9R7aoBk!Dm4|@^lq;1Wq^z2i zYT$apG|}nYFSu^2sUpamEHi!CSk2yoX!R>48$txvZSb-2w#ZECf)DA3<;J#v!0pdi z*R4@Ij+Y}xUMlCD#~V;D)u%G9EARWj&E@(V&-KvcAxkR`c2g(gU$m{2Yt?HKW{L4R zCb8MZy}VU!Qa6FO+P+79XDU0#kGjaG?Nzwsr`(8}^T3S!l-X{YvZ;5T_V}mk=%e0G zF-fF%V~jJ`Y^^+LW0I(yQ;j2!Uu+y=cf0+-`Ipa?^4L#Km+#;IXu0p+2g}cXdOTig zb9%pal02IoyZKOvo~oG2=8mvV7JF>vdB7TCoXcLsIl8ue6WK)o-4#z zZ_w!BZjoae(_byu-f(ug?uIv&ciw)r-gLTOFBCwxT%x+@wzph?jFTj`g#-M<1l=Zy zQIC`Y6cbf&vDgLe$ioUctfa+K;xbKsrrEDqPTY3Wl;19XJGkxoGPgaKoAc9l;#TqJ zxGayU5AfXhP-%1h9BUm_d!iB;w|ZR0B(cVmWQh;(OctMhvXn1>@#*rV&p)m>*;`H= z*XOVFDU8#4iA}r#S0G=GmQ3yMFp^_&_hFg~e)A$66eQ)6FGQ;w8jwg#jkKmDGg8LC zesS=NoEDRV=Q66T&l=4){Y+Nj4j#?)TY1$VeofmaY=`(Y~ z`1m|ft*%VJrbT@czDrsSZ8ekrPpw(^D35KhC{y*OG<_c$(%)z+cWwo3)FYV`YSN6Q zMmE*+4E)4I8-|{wIYoti!a$6Mwd1YMEm2*BkZvTs(a>RB^{FQCa}Tny?lg5*9=ZoX z%d(38NZaTfmz3zukx1H_e3nBh>K|>hLuVP;U!2fg1o*jc-(F7?x&0h}Iq?{eJ-k?M zeCv7TZSQzXx$>%=dPZKK!_YM)h6?Pb?YPsY+H3pA^ssuJ#oF#Wbe41KVZ~*V9hT)) z>2yQss8JrwX5}t5&8^ZsMfK8Xqf=Msw$eZ9I}ve(Bp2wR;3CW76Lb;eK(egw7v_z4b&S)>94B~sU|MyDk!AENB(2P+R`lp+ zbxB(()No;|;;SrDK`~(yC7l&*TFbaUse-hPx`{>ot?QXBUfRJMxb`22PiNfvj*H7b z|Kkso+itr=-vJx+Omwm%NCPPDekPRzuHIb};TDRcoRn<3jP=`U`%XopOwzWJU6M&z z(v)9?OMc3XxH%8Z$WNIuJrkM4W;*JRU3c#%CW^edGtXYS7wIrh)<`u`q+jVeCG5!f zfIJXh^`Cvqu)_H@?H|jly2^6DPLzG>6Ze(}??3D-iaW~LeqNDp$@!BKuAGE?KrW?T zu%mI%rzVKaT*f$yF*)wO;9#9+#AC7udcEF~8p9m^aoa3ocGPpHzJ_02)MV+)A$OHNXQP1z>Q1HTU$G-iiaaf?>b^Ic4Myv#jJ`tx@ z&idtS_EnZM9x@%Yyyk4$c+Co`;M~XU=o@WsRVT1>%qYKPZ;tO6`i7XH6QS1l${k7t z*6uLYz}Bz9@uZ(P5`w-vsp0bIky4&`T+b$c^^x-RFF&nY_4StD(+AX-ia9=q!O3C8 zGoQI&nfjPxu~{otGSnTb`6W45Y^o#W%(BCvTFLnuf)(!Q0Vh!U$o?R(;*keJ9XO5K{w4hLT^VaSLx82&v+2km_U~c z_+jrtMn!uTgOF+A`;tN<9aHFTZ8Pe#(JJdUF~O_cE>wlODAV#HW!(}mlkaV}ahnT; zQ8)6m;h;towN|*_c>rt!My*>qWY@yKbg_y@Z7b2V>Sy#@RH1W74UQb5~}JWA<@s0&i%1ivEYn;V5?tm$V4#%t6G^Pt-=%PnH4tEzoh9* zZEmH1)VF=CT3Laa^Kjl~N+)qJLSV!*H5$CURj|p^E3q8aGYUH9&>8fH^lakC%m4YO z-!6B*`%2xC${Wwn!H$B<(fX;AIj})LS8-117N~g3AR3`LjFfi$H^DDmcl*FQ)X0s74B&Vl?9TUTy#*e;A;Y=HQ zk{S2w_|1Q-M{OW?4^r6mGSz7qb=|<5;;QgMG8i>C4ON}hk8m#AXF<(KN)^!TM*3F? zi~f!Zrui}c-43IE8E7s#Pg&Pk{IZ3Ux%f892?oQPE4izFF@7_EY8X3%Z^E_}OLu{_{Kz@{G1b zYD`G5U6n&w9|s***anTu2x-NijpAvYC`LQ*>^RRZQXdw^TMpP6yP@f$#d_o1EBE`YO?=vat$I>E_07{|z0pU+wkL{ogkw5R9z+LK zP4tnLNa$Zm(NB@*go!Ay#Cutfn(zXfhaP-E`+mLY_xrCZz7HziG*RRwbv~dYdK67u zh8K0}V{AL<+-#{H*q@M}%Qb}5jQP}BE9PSIMdM#TZ%Zx)Eu|7}z6#>D^*rlxU3r@g zu#~4X@>BgDljKey!mn(fO!FBrnP%BRX``C52T4>y9>HnKLO3FslGf; z4j<7w=(bGNA^quMBF4V8Bn}u?kttw3?58#^$fd81n?N&z+Uo&v)q=0d>$n()dO36j z7Ai5ziA%rFgt8}yoQT!_M;C_H^|94+&)r$hzhIwUVslA(+uL`PbM&suqdLKgIbLLw zc5PmtFpKd^iT91VtI=ba%8t+67f}p{x11p}MK-~W?x-`BsVx1N2s zeDQCdE;qcJkCt=mNxZ;eO>fZSEF)JJck%)o>EEFMIIV-0IGYcj9ZKw2>`%C$^%$^8 zBp{%N-%zC?m?R>L>om#1bTy5xh`?A^Oguxp$|5wVr6^92TG8i=kV!l5fTv5tPv`pgWp;sU?6O?MrA!dWKPG*ZnqO_@PF zVw8bTs0K`#BxIVBHMPi;H|Yx-7-gh)gxfa=5$8 zx0$5QRq(BJ&*kU%IUhSCW{JPbmpOfu9d*ue8_R0r4Q)oBHcUlm~zK%krInd{l3Oe7wB$+&*2kJEVBoZ5hIY#kbb@tZAc! zeGQVi6$G-b4U2IBzMoI5bz(AjN?$&weTYxS+MPSO6_BZ)PRyM;s#}6yE*D+At6XyF zdF6c{x~9DQ&Wp=M`oJ;A^4TjisB5&7`jS5{Cw(pxbqwD}%$VQIm(A>qI?gn|+NONXgDIZ~L9_ZM z-(EXb#r>F;E2B;nVvN9S!=4daz zJ?fZlM*vy8oYpZ$H?&uXvze(uZ5WC&Z3C%Ut=-#R(i_J(^M?Dx3uO!GEiF; zS5l~$(%2weACrR@I0=z~AD*>XM_tB=CyFRQRE;&a87+fE){A_XkJ7ka)qZxxz}820 zbgFmM6!~ZvL!01$a^-8;{&%T{GKM-*yJ{~KLW-&lF+l647+BvwGXp7gNlaNP!dDBxd;sk1+=qWm7s_|U;)YCE;R*t=I3inRZE z<(22ll~qr@+dXyBHK%oEns33y z6~LG%a$rPf5xiU~e(bSh<*cJo&eqv!CWV?P>ImfINrWix zQ{S+|QK0YA$If^0tYf@7`?X9I@fANDMneF*Hd?g}4B*mIfzfV(MwfH7Nl+deJqnVj zECD%@uWUO5cIzeWcI2R6#MXb1!&rxs3upTPRcUs?t3jW#QK~eTBhN<3GLN62=DOFn z88)j5H|;2{HqZ&Z7gJfJ5@lytM}-cv2tuRanD1)lK2OTHmhM?3>rmyJ9m?uu#VV7( zwYB5rtaDE3vo3q|xs1!p@BRMW<(6CYO+1Az2h_WEYn#v;yy%~3yXvba7FBns>{Y-P zgW6=G$hJ^rN3rY>(OL|E9NHE5ybNu-%cyrrW-Hxu`8j^hPaBC_#ZTO3>5^>f-Apbp z?QkTZ>W{dhSObMgqJQ&#seJk%{vBG3Z)cnY>H;an1X{$JR`(HEb940ox$Zc zTAnZ8se^SNw8Pb{)u+~9^-Bb9)n_o?{*LSPIgHE7)z|INcpd8ShlOp{uE-@WPGZ6* z50#$g6G!&7wuh0RH~x%B7>c#H&S?h`$u0FK92V-AbzFs8MGp;qow(GOoOwCvq@zsY zk~ZQpzlxW#iF>2dWxF&!am9}qqXUU=9tMi-z+HedEkmI$rqN@_GD+lMPvTO?cSHZ- zo+rv@KlQK<^bU%5maeFC^_pjr^tN@0e96c35PEIo1~hKb+IJ!jspNy zuE~JNWyo7^VyUZmZCsT_{xO`!Go7fi6s}JfWUWACcw-r4!&iAjsxLNLLAa#9MuMy* zV)-88)xL0FSP+mEM;wT zpGOl-cZ$dWRz^FU%2zXEHL^`egHHb?P=>5rHqwY#t0syerM3SvjT&_EphJab`yzP} zA^RjqRZ9MJh-fCGC#h9_Xo;*#Q%uJ2sT+65`mqY-xuQrN){g5q zUynQN-^Yp6BjxC^=X5M}NS|Z6x?KJiO%k>5*{fj#ov5&y=1PuR(U;6SbPCj{un9dL zUlUPE@LG1ZdYO&ETD1;M0y?sG11+I zD5}G_*;x2>?VR|Y(hluJY(ob$J9n=sn0T>5+$t5fe#UK5_6OIzuz_Yi(gr$e2lCDS10FmiP{AO_U_3feYEFZ;#EemHM0Mfc554x%XQ`hjtrHpEI2} zFyK19`yiV1XWg1d&Wv@8K?rOdn5&=lG1#5EPv{w(m&+};onQX&pMTf`8!!9Vr?X!y ze2cF4A4>J}LB83s%K9d$O%x-ZIQWWw3GWh?+ij*v&ot|pY0|fwZl!lSdeFfyeaLi` z?$o(mT;i9~B^#-C2@kFF*^Y&Z>v;LL`i$+)T`wx*UF}9< zj)Q5QSA5`mN6O!Q;(kA?cxru@zcII~z2FOzoJwUjhJ7tIlRHBW>TRG}kNjAHs26<^ zb%)yP<7pJh6*oL!QcV>T zDFzY<&m}&u6Cgi%xRh^w^T*}e_dV^2B3Bdn6xQi=?i}KlXPq>u_hEA@H1Rofcj&WC z+NIhW5{Hc(Bz4{J!@xP-$SOJHh4o*xVNET@P=-E<)gK8<*d?vH29<%(8rfKdz*w$I zQa<%op<0Iuvcio9vaiuGb=ih26|0oZw6ju2QbJFR*Bg0*eAWfQdPO;P^c1{XKuND* z=l5LWj<{N>UO)WmGMNk7)^;o^aN^OM&u~Lbe(KFM=vkUpCAOz%|J2*s4M8{Aw0~Al z6eVC|wbgntqbyppVo;qipWfA4L>-&1xAT_ixmtxf6&L{oLwX^<*q&YM)#e zucTCV^z)y#cR!n~6H@wag8V+A_dn>j|AbCbzPY^P9d9ac(w!{qSG;dQH2rPv=C~E@ ztkd(-oySZ9Gq&jyPEmXIK-%Xq*Z5UV6vswc9(1!7%js4!qyA+LL4Bk2plxeipy(d` z)Hz%&@pFk}=n`EA<`yRVo)K0hcrNkhKYK-I%pdgUF#g?tc%a;M+gmjG+p8UhCWq=n z?;O0tV3Md?QFNfh8F!oQZ7yC>IO%Gv8CrR+?;P-2oH9 zBAO%mf*93oa-lbIpe-EoDiQGUABRD-XOkx=Z9wvov2#mp-uU2AP?w-vN$so1Cx1*i zUW|H;)W}ci0yY~KYW0~&ralpK!*ANe>kIYkrJf6V$VRKQdeV+qO}XYzmo`LnPZVpb z8Xu~v7OLB3|Y%^*z5=xVk@NBA`OCVU;W@0$#B0+T@+0oM|V4p^vR&dbU=OIv*mtWS$ychr^+jbck3+bxoSV1 zOk*R!cHUky*Yo`JyhYS5nG4Od3>6O`{&*+V6alf0~HZSAP8kgt{V z&fif!^4mA-yNOqoHz}6=dN|1-i|<@%;*afsZJSB4EqXsdJMk04zB2CC_QWJ{sRV6R z%1{&S3q||{3_Q^D{xq|$z$9*@liy5kj$JCR(z}F(Hsa^D=jFK$;)Eq}nI>-3owO0Z zil5lIzM#`j^j98mDeIFUoWhqs(G3BOu9)N-8=eY;`HL^;94~LGaT6A_re7&!+88ZEo$w*|y36?HrIF}knPQ1J z;Rt9i!tf8Y{v5f=yB&cVU-=;fF&1R29TT#Qu93qAl!N)-W-4v_-DQ8+*iF4n&vD6Y8Eeu?iU8$qOlOH;w zuYDXVK5dZvsrIZxr%rv4S8ftk;as+-iU6P7)z>M9QjEy32eqaLA*8#UJeoF$oekeW^>(#BR@x`9|6zOgbMl%5_!vib zvz$EniXL~^S+2P1obuMUURgC><*UK~vGMwvlZ>73J7`H*zfj`@_&bj}~$7%?L~^P^s9XNFhf ztJi4q4BB`Bhc!tTofACvdCxvm%2&Sh?Q+lO{;@pr$m8YVAG}yDc+vr=iouLf zNe_cuL%GW+7YO(R*LmrwhLYpfkN_z(+Ot~_#in~|B!JoCe#trv{OGUhzek+NhuRbf zpPR}~?xgB>5CpJ|(XR$w$aIC&u{P%nm%1Q>k5&j!Rw(p@4%Q305;~~qZ5rA_EObqs zNm|7vJnL?AGfZuVl<3@EA9|GUBgP9CbTwRO!}D3i<2rqQ@WLG$+%DAHxvnlB`i-~i zlLEwOJeS6xIO=q%#bsKpsSm6h)zkjv}29OabD6v;Ubn)w+kiVH#``Yv}iptR@!I-Zq|VqiGX zMuK1Ntgr({D?s{%`oM8wjN9~Hc}ZjC(|Vrkn@^X&`Kx=&Q;!!t|Ekx#`MZj`y5otW zfW$?!fjX43Q6ypROU8R&gkMJ6U7rJUoF?&bXK|Xri;rv z^|G-W-+HcID4;l|YLelqp?B~ax3SH{CYuX=EKDXdZ-OYG&CL~Vd%+Pq6GidyC9f=X z-IX1U8HHg@J$qdThO$fjJVk6?O1+sbp|@jWJD7j6iK63**doS=A%090i774gTkA7Z z0_L9OBtwjK>pFR|Ul$@@)U%0S`^w?+#m_#WtBX6!v7_AH94}4c9R%Dt5tPX%iNHvQ8a)uKJA0(1It=0*G$445Zc(5%PWc*Ou3<;YdcG9 z9O1w!{3@Mu`YIoio@v@ae$+ANCoa1+vbKcb~5VVtv#F${Gt+s$NDURlHbfOWU3xo z&;OKHEU;uIEOmRmE&??2YCYLjnNF=q+XfvFqAu=NZ+|i+vaj6eK#Bq1Z?x3a?%jJ% zm6xACTHgJ>L*-BY>-XzTT^ARHv!1a<3%YW!!ZM>AzK*^_*J4LTEIwqtGR24HaL8$$ zw8UrH0B4X%T`96k*Bl2vvG9_gv`kZP^0R!V{FEEhxz6Nmts7)-?`ad)KBRv<31gzz z`@@pH;z!?U(VmQx3Ft#lToD&f@*X!G6FT|8i7{PaVPAGqx1fIaJEzKD|J4`E!w3H=nvQT_v}foy~ZozF*};akUTG zAH-M27%`MF<<1@5j4sYTRQs#Dd)jWXH|tIoPH6ghevL2bQq(QSscKBV z_~fXV=^gJ)@sg=IgFiY$mDtvSAyMTbq8520Zk}%&&zv!oGhhaivvayPLUC5nlb?FP zjo3LqahZbq)eRd)o{jlI z8Nw@AG(Zdyg4l?FZj`#=h!&!$AljpAr|!w?)Q!1ijH!*48Eh(Vz0qn>-l)~Sj^ySq z#MC#}Kg^x<)y0o9SNC^G4xQH~rQZ3i+cy$X!qO#Y+t!v~%&Pd{~}oH({u6Gk3*MGqdNeC#O|Zgy=|^&qImel!{rbD=-Tqzzjs@?;)ZmDq?BuA9oLe^dUb^ zPN>N4`iP!Q{OO~m{P6x~%a4BWg6<$Xsh3ckr(OGAje(q$U>xNbfGg?5t%MLJE_Jqq zlNmk6F%k=Yhwm9D2=#?h$bo~NX<`zeX!URH4O1offHKhIFAQ{j)@I_kO;Sf<*<7tiDOYLNo1%|{JpQvk;@JL#PEZ~x7hSZc zTz=X4<%XNiFV|eVqg;4lOcc?;2_;fb8m*F;%eWJv9#dg6dQEF^#s&pnTol=!jT1#k z^FcH!w~-EZvnAy+UBb?7C1y@f9joZcpUWqH&QDyXiOcdl9p%pi8+vGN4G-Lc>VuDH z{&*RUZl=;*cYF@xyWjb-Za?{6`ObG9D)-&w2-x;pY#R%dXy~PYGOE-gU?I(~~i^UCo>6+OCdOK5gd9lHJw#-Vf8Rp&zm@nD_`s(eT*m#m*~; zJ_z<%TP9(tQ{#+xaN0qV`apTF&gx52;qlB>%|u+r4qPnhgn=K#H4AGDMrwAFRp2l1q%7c=DB`ac$Ra_F zf-_sL#{Ql6>%6?BvI-b=LYkMC^u+!v>lTRZ$fYi@{L<%4lb`8a=PF#{Go8x?J^f{p z*89;^_al81@t*xpID0=%hjHam2@}N^wBP^cH=ZwF{=!eoOE2sxM_)dmgFEgd+Edo_ zq9pWl!i}r#IZ=!{)4nl2MvSCS)$`ge#D!z3#Ypf$ha6?v&}&x1GSdmt`~+1EX~2?_ zfo=PwQM4w

    kh=~{M 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%0AIHI$_tG8aznmzpckHqx0$c%| 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 bE^}ws9r-1F~IT1*i+bqbCKL3 zTG+F6$@4B~zI%u~%>u@_O!s9ohMHFA=KVt%5FV8OzX;malY)x5$8AYByhtPB*!S%DA;KIh<7WU7tqsq!Swb4rQmG+6THyD zB~~!ZqvrgE2F~XdNhdjiVm8G;yw2A1zV>Q2D&>88N~m;`D674y7(0_k>(D<}%=-6T zM*g^wz37XbBb>Ps@qTt8l{R5|#k4#cw?5jbwb)&toU!$~?(&x!e%dX4Yrq923Djt2 zB|lq=^v5QHe!+@#>bwZZB8--*=V&Fs}|T1|;7 zIgI?Y2TLfvT*Fzl8e8ljqbRTr0P{gOSd9Egg4^;n2ZX`kBs zG9Y2T$`bB-=e4%4ASPu@ztZNi63Y(4V@plPDX@1^pYd|~VK`|pIgmmz>Xi>aIifDiBga2ps~bhBH$pq~ zwZH-vo2(iGsVZx8{~UDu_z6cT^q3xzM{|-F8X27q^3RtFIRs^GMo^7|6H-Ze_ax#b zqkIwVtBLrgHz*lf`kLWtp40YoZV2mOA`q4LN=cFFpWYF#{T+N zr{qJN(A>B7NL`5r72!PA&IP=Od%9W&9-A^rytgqNj>|VJr0OJx6JkV_j8qoid^MW( z=;#r-;M4TiSW2TN=je0MOXTGKYoPz(Jaw}`B~8E8KNv$XZ|Rsv_R8 zvZ5@-;Dz&^##K&cNurz8a98bzBoI2&`jxOcHF)-yN)gE^hqa5Xn1ZtV`KV`s5aE!2 z!En%B0#BfGYC`Rw4E~~;U8kMR?1CkE1njn4ot1KL9>YcJcv{5w^C>5u_jKTrXs$xq z*2Z&!Fp9UT4{@Kv*{0@UiW)^a_l~EwAU#TX>wk3(Y>uzzpJH^M?U-1Fbzz}9@h&vo zKQy_w$bugap5$j%u6Ee7k_fseKQKnlW+B#vM2zl3nOQW+xLA0MM5cnC&gF-xfV5A5 zdW#}e@#^z0gP_~GGWK!l-&V<=kjrUt62iXS;_54dxQ5!8WVzneu?{y@`u+!#EMjI`*y(~mJ zMuRqKLD)E<7%{30D3$a4J`a2%Bi?!aH>a&4tHSefd|IjU3N}hSGl1RTwXrCeETo+Rc}qvu`9TY;7pdcm#o- zU%aJnPpg~y7O;1}pVJv^4gOK-btW&ugK(K?qd+8sI^mA@@g$4%#uLL$r(rai@>`AE zd|+-101&Iw4rbZCZeZ=NTLk^~>T1bP#2rQ9qrpS8xPsPNhIH9^1<7D$tBL=^)O*LX z-M(S}cc-?Ls!h<^ThWpfarZ7&RTMR2lvuSz?VzfP7^&J7(o(f)?9{3mVx&~Ndj0;+=g%|ObzbLjobLl6Vqr0PP`;Bz(N2lKpf=rT?~-oqwyf-8cK|g3 zi$N8;j{qK_fv8h7lZ)`joKMwE(j0~B0-!rKbC12!?kb$0unS)lt2sV@RxZy++2d1> zgM`0K5@%Ydx9;r&v$FIj948)MU=rF-fCg){dvoZ(lYRgFhCJQ5d~yHw4r%E<%_F}N zyCS9SE@NdXt+;eA4NRR8M^+DhG%MoFP@OC>1v$d9_u`_= zxGL*I$6o7GXCz=mN3RKnIC935pP^9pWMjGIx4A1uTC})m6O2_xOJRYgkCLj_HWIiT z=WNCBdKgk`I5T}eXtu0{rBuNCbi?~q(-Nj0o+T!zPVLmk>3Xu7to}>z0`qbpCm;M* z(Fxq*=$Tx`aj{Mf1EyJ`)C>*bH@nX%Nyr8-?IGY_Z(;Tyv#`9Fk0?tMhHuig+0K?^ zDciD&IPLXYaFE-g408)=J`eJ@-<`MXy?|owI1SMD(vwI?s7&ffq0Uv8P)n!s7iY$r8W z=mhsb!?b#a;ad|Z1}?#cizdPJ!_EFS4Z1go-WLj@D;d?aTnv9>YQ+BEDI53U7H_Pg z-Cw&JjH1;d*-_QFR`1gBRmGV*k2!RXtSCRj%A5q0C~^d)$}kp zUz^<74WGrEs;mC2n7K}btYfBhe;dw7!ND>anC@JZmORmXHFFOe0R}2B#Z;;+m8`E) zlt(x6jEsc+`H14lijL*i8(s2gew*xwf8*og_IQCrk*_fY3Ph_VZkqL87U{hv$=Y&7 zp=%5=2*i4U>enXi11805wEP&SGF(My=%%!oOivmEA87ex0Rqwi^lxXT zX&yb%rD=6&D>cM~;P!tCDXl0HiDSQX=i@A}OS)mn2DUv*_m!qXRViuCY>bJAVH)uZ z;XT@SSS{lvkHmHttP7dm{kv1g?rjfu8-9}eptjk~|5;&~B`e_G+d@S6i%!FVKoQ%$ zkrIDv&4m}c015A$U>A|j3TVW^Rl~lMKBSh^{8=my2H$7~){HW%y=TZxU3Nb!!cFy~KXHx;}JoX$NiNB}jopH8n-)1Ltv|>j2 zS@^F*rE}4zHwg60%HqR&*3W#QPZf4<1DPm+2E4C4tM{4&ncsD3vmDnMa)#Ivtu$_u z_Qvn<(ditNBCX&y0QM-9{ATq=gCD<+`Z#pBC<`XT#}yX^O_i zqLuRa_QVhXm^dqzjpQ(F_}yYPH2o{ zH$++C?M*vM8ro9kdNMcok}EW85&loz_^vix)q_Rm0;FLdPhwPmS66MM0gk*Eb?;~q5fRJkWG04m?_<6FDwFaY=?=^bbZ;uJ9 z@0IstP$(T?-lGivJ%>twsrLt{4K$E?2aM^^J*~z%Hv?-Tp0s4@E_PK`=CH90b9$Pr z1RHBkmF8SMpdf_pOS3Ir)kR5UuGuUXX~E{JG6J6dOkPM~S8VgG)YzMD!0!-Rj3drE zB!i_6DOuXY6n5afROC1?EF&5McDazMo93y^)aOvY&Xi!tY}X7%$V$G`_O@&%JEd^w z&XE_%MZ)Qw7ATps74?IR<2G3A?B5G&w%xhL*{P=AguU*K8m?au+$iI>#fw(N13`RZsHv4>AUFZ(C?1f`Of|FCu%NjNAZy{o`Rw<`mmm@`A znP(1iCFk&6ucBXPQBUy2G&?y6I(>zFsd=8V_a-f8`=jvjQ**DHTbCUS@d2N`RPxOq zcm?FBB;gyYAtRd#s+ zO;H(PIh$?u_M7TPe{Y{D*~3_9vX6`m7m%$W^L@hp-+ovRBRZVwk~cf*pJ-Rf*N|hW z>Ft+`>vQ7o<%EjL;S{_`L*_xS;G)c>v?|=_#ArVR+hx z+hV+yyEG-b6H(v4xy%7f1cZxy-E{Q|xK3^ue z)hGPaig@PxeHo3fil7^Uj)qINsm3Tz1n%{kEYmQPhHb{$P%Yyiw+?;0D1@=ecAk|$ z)UT`@r&TlziO-z;P2k};e-(MXepqc&{kK$j+tpi5m((nWM2|wjKW}JXV+I}M3UcHZ z?aT~V&rVc+OTqP)vPf{R$DJ<{w)&bSDwDFbz7ir}X`$@CIup=X8z*9yXKaH}&| z%#TGOodjk(4X`{ebimpS1j_hlKNtPMGmIA}YCi6l=z~^IAmB=1p(JhW{?WaYzkXl- zFE>t~?Xc!Q!juSb<0#?OCslj;D!ED!`oZ}(Un*o!U_{~z^ZdCVFr5@|?|fmH4*%xT zRL0~`Rik*<&}Nm+(n)xOn@&G*$f&2~P@>c&AW=)5Vp9`Y?|NoKpx3(2R--^YqoK*E zJ2#Aa^x6{F{1Qm;t{daD45b6}yy2k9p&6cOzt@b;JZZEp{zc+lIL}sZ6H1ZxFxoGHf<*>D zp#x{M|J+G*D!7MJa#Q08K+@y>C4$%Jj&tgx!?qn&qq6Wqjs55#uaTyJ{aZw#Z}7EO z#u8f7e|jqngD0hH>Uk66*?&Y7bXXLgj6&3CN+uzXyEEw{|7 z^-TA&NyVewS6kM?xp#L)6Z@wZ=*pLB1xh=20hJ25n#ywLyeeQ5;4aaQlH#4z38j%0ke!^4475m{TmY*FGe>&h_pd_uHkZ?WZ z+IqxEX}ctD>(#Hp3Ml38uvSJ`8{8`7aP@$g!h77mr) zC`jn`T2EECxa~mFccI9hJ}rEnPZvviQ5Wxa+xz;NdXz`KEYCus9 z25o9x2mWX)N!-%ydt9!apG-;2Mf7WIr>1Gni{F{zgHQ|XTIDA@xmP(QmsKl`tKEn*n&N|En%S_6<10vkB{Z!&gDHDmhy zW*R)~gg6+uEE?3K4PjP1W}q;PS^e16dej!RkTFpX0L76PP#qa;^}>ZFmh5)m`7Ui_ zAgh+wACKs6ow*py?WeCupMKF7UV-MqQ&YuR-};e^)GzG?8PTyPM;29?4f7i2j9-xT zKf2uK#e*0Bh{x3+a$s8<$gOXB{3@lX(gJR>P(os~rEuELsOiOTHu0_kgg;b(aJuNY zPg>iVqP>*;>6Gi*#`{>mz^EZi=gBXK)1oG%I@V_Hzrs^dmRM_ppBRx&znE}t*SdQ8pUD1>LGkIEq0zhH$K-e zKv3HdG|Ef0780&IC=-nTYJi)VLH^?dc`Gw#!!z}wHqj%`|FIn3OnxvaUp@nh_#NxQ z)%Qb{+9qAWn~O^HTB0vVEZ5Dp5@@|Y;xcqU?Et_1$vS{mE;?)3Z3UCb1dD?3?vzv= zoO*#;{PB?Y*jo~1jZb6$64TQC2%wd%L)Wjy*8Si~;IRV@-)WKQ6R|o6TU{?)!v)0K z+(xfUj=YWNtBQ4y99u!!4IXs$1tn5lID)RLoWNqj5Wrhg8Xb6uY6m==YFq#tVP;dGXGZy;9M;LG>WlUX;MSwDP+EUSlJlgv4(wmrHX z0tSjiF8+@_QfW#Z4$7`3*1{EDt(gzp7WAL>Fm$i_LQJtxTye_eROm0EB~qQ{W=CUT zd_U;=;9 z@J|UBi41&$j-7mQbG`zw>+ak>yX3b59Ki|Sam;s_lR8pi@~aRT>L8O>kdac9LLRVO z+u`yK1KO0#cu!!j6-^4B&pXjDGc9TcY0lrfa`3z1qm*)WAHbg|mNG6KD*D;=#Grf# zZmqzGNu|y3D99d!Q}36{*jadE2SWlvzZMR)H`SSqlm-6cXGsh37jRk#XTDMw+gZk9!i~B+#PAzfDs zRQF}V`#O`j(QzD0|Gp^KtYwbxDtnxx2XMdlxM$cpzNI&4H{R>UioeC^K{;XX zS`En~@54*0dx12|OZdx`BLmb9{J)GGWTiTdO^(nz%@l!|C0tmZlt^)I-~j1^o`d2v zk|!x%<8bGHh02wLU1$5sq3=?>cA|0p9P^NQhe@;fXe+HcFgLX7#B}GD zw^SwycOy{BWpTONYvElm&J#4xIPdC$!&>D%_0_mZ|LruuJ}BUlu`W6Ae9k<}bZLe{ z+Y$FL^tUte$TGwBL&Whv#puxC#x!f#@b|-WZVrw&X!X9;bz9YXE@x{hEJiT-USD8@bYh+cT+8| zZTH+;bnU#cel;G0RhRaxIVXyeOO~*GKQM2&+4UvXHOzB?n+|un>_gusXod0zT?rQ$ z-x2KDiwB;*iW%qI-ZchWN2h8X`+SKo5IK`lzGYvhqna&}p=h`W=Nj^P+ljk~>fTu# z`r}^Z{c+RbFqT^130DQ4}qYV#I5_eHl4m3W;4#+8=5&7^PQdoV;soZhXO#E?bs zQq>iXj8w_RfSd0{564*yc)}sh%&zP9wfkVngkl@WK=w;22T9<|QS$w+-BZi;wSrKM zqofxTw>AzC;_-qPZmb0t2ZYvZe!R5k1#nwh1AUgnR|Hk25oUwTum{W*nbRAVvKBT` z1a_k(33*ntVU-sHM*e*M>oa!`M)}%Qhnss=4lsKz!4U|b z%JGm_JM!-bENVgh2RhVSC{LsD_lyMfnZb6$OOMeFr4{QtA8Qgg?o(X-f;~+n)n)$5 zwmnLxUsiPpIp=!(OAJ#tzd%weyv?Q+S=3L3Mk=srz#HMm^E0O2Z5$Rm#DT>Nz=7t? zg(p&T6DnVG3O~IO+xa;*(#P$zuA)Bn=05kNr&q!$V|}3hI9$@MF_&94yjdPff5?#k zE8sn^pzw!SrwygbM8cl4qqF@O^rV+-Z&Hz1y$&CXg}neQvitLOF3n_g>z?t3#p%+V zSyruzRCV~E_4w?ERK^JMt>ln7XT>KUk$<#rO^V!%_v8~;pOiqCn2d|K2z7t5tLl|* za{3?kCfF3NEP>;89b>p)Vk}z3MaOS|iPjnqTjft;#`d;tRgI|6Ml7nb+V1?13DJ}! zedbJlR&MT1%$UFN&T@g=P!1po6ZtHa z1_JL6p6RRQNKHD6JE)69MpkDSkM#7hVpMO8Lb|LchaE}(PM&!NKkt8VA+Tmaq1bmp zRNRiiOJ*!j*@bMYDJ~52;rj25+a&x>iEez95baX_fx0NfE!e)$AEhGsV94hxHaEm~ zug9Et>(f207ld5(3yKKfvmS~V;elQffv+-v2Dn=%H1K1QFPo&=~zYG)S zi1s&3yYV)BRjuZBa+$hieAk<$|7`@&-K7bdr!PYmm&g0{2@xg=Eo;}FiYUFQO8xEM z_&M3NVH(OHw{hUHs19fDD<)^vXLeEoKUxm*;F6IMLlKM*vc6su2Z6@o% zpsSQ_)wt@FJ0XB zq2*|WJX{lv972OSWb3E+8otOUCEAwp1$3F|t^Xxp>R)c=syH4JZb zBJ$agpo#KS7D%?~MPIM#&ZX-1uT)W4)x%3gL_VBqV^2IvxN76VKO*4D?o#2A#wasT zYs9W%;mLv4+3|Mf*?3zzTR8cY_hc?=^_pM4v`|^QDNs|5Q}xrLHs)RR2hA<`$#XM) z!57CDP&rKFzKFR1NO$uqHN(lKW~BNfJB71lBe12=Y4Il7qcP;l&f*hR;gkoJk>G*s zvSF~;@7?&EcYmT(wxh7VD8vwO|eDh_RD4JAW2}H*h{u-&gq|f z<~&_e7x{|iz483k>laAt-`9vvHPt3%3aJAjJ%?Xox@>D!zJG5yCdA%-q)W#R6P)W) zmFx~)R>(MB9rI?@grN(KgI-G_4P$0d?w0$MyREznLgc!-25;L=QM);r15Mx3lb(l} zRH?*+G)Zs(xBb@_TmTjbX7OI)j76~D2jEPd#cjC^H93{D7r5qFwph@2^8j!1a*3&K zhjvP*L1Dvgkapt1w2s;{U77hVAU?!DWgKOnt{cOeS#Od3_D-u{2?&cwCt2 zS6#M7CA(r1E@PXv_#*X^yXxw(6T~Z-(3f;k)RP5&>9$wT@s%bTbx=M~mw_Q?!85V_ ziv^lvC88C1tW-@F5WG*(>!n^Bqq3UsIgi>JOOC!gnBJIwGo}dstj_uW9#h_^Ttr&JerHY@TMPS{8@>+Cz|m3rG1l@0gt*R z7(+|-d8yFngAl&ARQvT+=!~>s;%u4g?2H6k?9-1@u$cG#>>895t$x(#XgW|p%A57b zx2v5HFM@Z)&SzkH=2V|>DBtQmkDd~i`v*OoVWY~W>q+$`sV+2kAmB7*1EG4SgO&`V4} z*T%89dRP@xit7~}=MVr9NAl&*W{Ni_y{+Q}e#dg(+-{}%r&d29j5o2iodVd!Sk+_h z?^n&!(!g>h=U5YOaYUN#kQzs7Pn;R!;{f_)%HrthWi;VyWK}=JvRlni|&SEWn)2Yz7;ST z?=FTN50mRfzDh9JE0#>g|4lgYw18;12T3A8z8>bXi5D|3BK6`FA!VqMwHJ@d| zWCj^nh*6CN7%{$mO8f1?hmntD6Id@#5ZDuWM0bPQ9%k6L4rIGm{f<8@3GQI$ST)7U z?dkbQgNYerz+Q|6U$}9Qo-KdZ{;P}^u=3vQks*yb75l(+yqR;)QhhK+tO18?EZh@U zD(r6b52kQ~N=Y~N<3(7&jSSHA5GlYni|_YU;Sln~BL!Ji5XtQ>@b2Ssjx>k&R!r@H zZ~R<7C=J2w|Ndop8*=?tc%X~qT9J}5oWcV<-7Qh;S8Ju4mMgT{*ah#KV^=GWU#t75 zt^Se8L+WNVx^jfmTbD;o^{Lm}HCf}C8|$}^=fjHNr^1mo ztyC>LoOIE_pGTmqi768&#t&AFRg#WY| zHec11q^Qk*dHrZDt{^w8Q*E&`;+r@m;Cc+y2Eyz90{ZJsQ|TnH zg;&}?dN&^8VwQcvMgB|0S(Hfo|yQaZnH`O^nh>mc_L!$fU38;_E4K`b&$d@qlF zQ$eXh<4cK&bw}wy#6m`f|NU)!AH8NT;D~EBZ5a0*_AHx<&83a}r9uut(;u=B{V>+5 z8P4%Y@#9VBWM(Y!MNW2bG?&)k2UWBf?A>#w1OPSVp`@x}h_$$+{O^}zM`8BS2C?eV z7xd{I7oXeh^!x^c9p3~BRGlA8Zwi`Ipol-^ZabJA$DbYI5Ade;Vayy2$A2`Ddi+Mm zPTseE|8l8w?EBrd!2iggS}ut7Z_3U~L&RiA&!Z?)D-d5($c{C3r!so`r)W?b4h=V= z4fwS11f}e@t2uj5&OY%OJ2|)$yo3-DT92CDJ@UvJjmYDhzxMxF0IN@ExGFj%WWUHK za|x~4fgtBLTCr}7eUFXsuXa<<axUe^_-9IkO)6bR&qr zZz=K&r@1EYyPE96!Ic0hf!?N0ae2SF zlCj%p+2?}pqr78HPb7wH5wY7@-yU2(Cz$C{XSp5r@>oi+bN4XM>(y1NhS)rpO`(VN zQ~Jq^n?Rw|!?m^V*7TEeNa&lOiEh22!^c&bO`9!N3bX!#$j-*Llc7!UGhdoFHY(=P ze}`+@3PV2HQO%o|A`iHcXpAOZ!9hbPXdudY_M)>XQEJ_FXz0He5$D-&Re}{$UT;Sy zJsC8>eL;Cpi6t}XM!BHt-BWb~;e=4rkO9A%F`F=%F+e6AWi-|w0TcO3k#y%T=6$3&3<3pJYc-J6D-m*T$IAfw`t>xs@yMUzB! zS&h?Bo!Mr5c0iX!_Nnn|;20NLDHOE3MjWDvDmXg(>?snhBmBaEG!=_OP~_s?l)PZK zn_nEy|Ajpj-%iA5Z1Cq0s}|(i_g_J^!m`AV^zWD+7xSq5D;usS_S1Gxh-G3`F!lKf()ygIHDJKvVtA7 z;mrM#5(5C>&&v7z|9ntR*N2}`)$4?2J9d`tNH1R3GK7lP0Jf9A+T3oAic%GR5mBf? zk8i>+ovo?$a~L`PNxG9E8#EGZG~aB{~ZSLvCvCta;%wEnKf`;t)W;Dc+aDy1NrIj!j1 z^Pb2t;b`6D3%Hrfs{0MhHG~a|PwX|u{ZutnT{~)`?Yq*uvhCTMi%sJdqd7Q`$fKN!&mxZh^8A`YMa}-;4_B|+SzCpi?NcxF5baSEyr#_Zh?Kj21bHadu2qRal zcxa7(-E{hA-8B;nd$`e|w3;h{VEMvRx9T_KKGl=8F>#`K?~RK0?$e#O)9HlfP=3uO z$13@-9=ba^jE(wz`^ zO2q)dzfs+F1^ej*tWEi#2A=>d**L@!g5 zAV|ePKS&v!VGx3t@9b5Ck9p8y)?ea;)v%a}C9sl^rfTxt0QD`h)biSUlT zDwqOVJmRHd`!x>I!C|$o91X)DAsKy7#8^*N9Lh6-WoJ7myz+^)&k-CLj6$Sb-{8q# zG)Y%()&J1E9K;%+g1lgKo!yFhUsBl5?B7)RjDe&lq(y^Pi)4e5Qeh759W@CAr%DTd zR#6n;>CVFEUdB4REK~BB#N&&vg4=>a4T8 ziq0K_)!WDMnR`rMk|M0!wBsIFvNb}nVK;&p{~NF#a2SL1vRLH~9~UUn)g z>=ya<#^Y&1DO;{*j#TMWe$3U@NaHAzkH3u)a^#9375D3RHWfBf$1?o*evx!$(s}@B zx->maaq(L%IMYbhj$CYr`c^GJ7zOkj_Z3ma4TNr&CDKfE_lvP#^GG@yY5SZ=e)2{K zGNg6|6p@%7o}y^e(`)FtUw7Ey>glapxk3z-M4T_>e6W7c8QusA*v0dMsOC={t@q2h zrbpJPWF)|08FJI~u(&;xP??40v~wPVLQok-^}Xnh12}nA{HX$$exYM&nyp5i*)?2s zEPK7he(=Z!HNT~ZU1=nzbKkeREKPMU-=*BO9M}Srx4W+-;WfSTUZ5`Du$CiJ&A|*m zPto)?2kh_>wL~rm$IW<7C4ok z$F>(+h{jr9mYnzH-z^#aGkT6&;9s!!o9HKWk_>_pef2|S4bd`#v2b`bwR4k!>7;FE z(n~awOrOmkv>%-FZ#R5U*AGxKCU^O;1+@>8Qyo!auuCbaou);|wKVg*F}zqvIQe$f zX~&?SVeWm8AXUwzUnW&{-O`l@!VcYw?c4E2Eo~af>QBIj;LWkyLPZO_ERYi3j4 zq?Qc&Xsw09cJ>z*^4B5wA1FQTzL))*Kg_~YzTp^&gy+>K?rqsu{FOeX(~`6jYT08l znZ<5IH+CM(OSsMOkdNup8mb>=wEZD@VtwPT@({TKpK(iLwJ|8m6qjybdhIF~4Wm$w z{|nW0=P0Q6#mXP+Wg-eR%u#tl)k?3{L#}g1-t%+vLuicThFlm z_hCf={ROf`vW%$t(XgronsjIA#_{_|D<01ZGWSmwWjcmmeSV}rzTu8O^cv4SNa(O) z@)KfRftv?a)O^o!ABf1&Uod-AVacO7<*2zGHj!s*lTpgtZ?eaW3}BRJ8|QqdUXhu? z0vVn^bQ4S+$?DVvVBGaZ>kBegWYVEs{bRD@FA91TlnRnpM*3;J3N~^vX43YHo}|oo zPhQrf*(r#A?S>FD7dg>caXB3_jEXKxo4vP9Smwo1!L_yb>F0gVb3;WddNPvsjF>KG zB^q2m(Trkc!tzQ@U*mUrHbRJe%{ha56>QVPbG9u&S&ck%#0FFCX5tplOW4A9-&V=I z>1DgJt0@o%$;i4z%=;48z1nn=#u$v03<|uRSgruZ>^%oTIR=06{uKU$;aeIKPGb&A z+deE(%+xv}v1Q`G$p9r@Eys;#HCzwK3~tS5hL6Br#-2vpp$w`eZ$0hNdo5KZv4kh^PkaAXmzp43u=UjYLP7f;wR`R(WfA?Fj}Y16O8;8_~!`oAO2x{Dh+}(w!~aw-w1d_pQ#PU!Qw99q`SD zua>UDE;Sx62w72Bt?*jIPb83l^IGy1DahWs&(N*Lp;~9iTYnoeXG+0aHey77&m=2u;&$71@6 zpEP)N6}#giCM{(oX)21)33I?$ot~~&x_mjD$by+qiqC(ebXEM*+fe5jX;VSO3CM;) zxz~jgcu3WAzcwZd|5vDsK#V+Ne@cjE3S?BRUHLCX!E_>7c}GOe5z-j9PAgQ()ZNwB zFT5M-Oui{$)PD$M{dF>-#+)QH?3m^7iBHf9IN*`*Yjj;9GpNzZq$Lt(D*vU5l zhX@kEKCy^%TIk=s0+(ntYrtS!LT6~8vJq!C-~J#qsZI1&Yy@oHPlf)^3>iz<&%a&V z$D;+c?{>DQ!J3YXE_?u5n5AwsShdh2Dv zOHi9%?|(i*Bu}1TZy=9x&pql-;N<9dj3?92MZy9Z1MlV1DRR|t zz$$lVw2tdB9OJig*P^p3-NG)UPUGaSASEdBOt1VET82%-k}-~h>#%PEC4!%hd&I2E z{c~)70qwl5<$vjsfYv5`5obM502CeO3?!XaFI$gVbCiisB+S>CK2$QRe>FY<1f>16zs*ZwWbmVVzvAgkhHYW6JKCvl0zm+V zDm~hzWa0Jf_e(02NnD~+&~i7|mY5>V6=wfwBTchg8A|6QzQ`ZHHD#Q~5X#NOUF9|$ z7h|S+zvGd>s%Fz&f9Ym?dFC|HHH>_4#}sgse|dVuSP$aSui>EV!#ciWs^}s84xfPz zHT_7e9)MH-*F#GtGt$u#8Z!*&z3F*ye@fa0rv>&}O-1sdsdKW99Ep-8Z)3!$aSomB zx5m;H0JVmg9N8KL>WDinf6fF2>?oU+@gGptz3`Y7n90V8#O<6@f(ngA-LSAUq=7z9 z&`tQ0>Mr_HI!u^O^dwazH^uRfrG!yxAyNCcU8Cmjk`QISR@dr zU4Vn5TM>$w*3#j@q4ccbpJ!dq1djn1+%<@AIGP?lz1z1?plrA)xM1C#iH~LzPCGlq zA^&_{WMc?7ThFoZ$w`a3c6X5-TIM)j>*N%PpFi#P2+o*2#$)}17Sc=&pI{z^WE8dM zBLi1tFP|L7ijG5JcYIDqBeeS>tW8yUS6uGV4Z6V9zb*F9d(FocDL_QWXS+UCp$b2V z;X=HZmev$u;V)#Yrn-0R)LnLLsULoSC;=Dt&3yD_@|~|eeE_lkS^&0agL}%bdIrk1 zJ8^hU;7-j$uJxn3%M_p#{E@oLJSAY8Sk66vANSeqS zxuxi1dKkyG(IttvncN<_muMCXW8^e5qId~~uWDL~MBxPCfVWAiV_|_W7fpg0yX_6# zgg|Oo#6pZI#JPX&7k-~R^LxkM38LkqWFipjN#hGrsDGtw-|Wd_N3li)W1LvJQ|xvR zRy@8LKg8sFO&{5?R#=kbGEcGcsO^5bhH)a$QH2roSeh1Yz*kpbSlh7sHn%fgws{IW za9>lyujA&gjy^QBOI2zAM4Q#q&+m8Rhh8)d(KRnK211h2@_FBb)}KiG{OM7e4_~a< zjyXG6r9kY%%QOz#5B?*a|8e|-I8?|B*a5{fUrsEl69R0Vqu4l;g$4;xvzQPsoO7-UoP2Cx=sx~wz)!SwGeK$V%IuoYPXu+{znxCW z6w)Z1ngUk(sT4v2ABtb>%)F{$i1ht8Pb-qOjC^dV)Mi&X-}nyt_uI^Io+(9hQ_~hq zj}P+$%-PN%UBhA2l;h4e$buM08S?P`K25{qDIeCogz)qAn(1GQRadpIni~afF;~G-OH4l zRL#V@&mXaR5%<=JSBvVmWSlqCv*$Z2Fe>##Q!U(kMUQJdr`0;1jI0n&NsWH#p?E`1 z$W@#+Op}!Erl691Umh|>@LF~WGtxiI(^|PA;8p5sKWb`Q_)Vs8Shl-A;{R8j?vq7_ z@@V3tib9}YW*XzX!~vW*swf=qDAqRQ(ji`is3z?z{@z4!f#q<$ez*+MTyDY2CDNO@ z?8KTb^vE)OvRXSJ_ zA(nzO-HEGIi+Et*YUh_9=NAC_VY7{wuQ_V>=lk?^-%-VuK7&{VI8>~F|~>sXoK)2VaGvpK-@BkPbu zObtZ^9p*zjBn4$KDd{yQ6ro^IfV2Iz1U9XD!v)K^C4Y7H(?36|PWRG7g%qLm0sl%i zXj{Bc186P|;GrphJHyQcde!iw%#tHBu9^#)lVxnWhteHOiZ~(@_Ve=Ao&f&Bb zk_z!l^VoGZWaglj9{@GO$hzT-PSB=I2rGZ4s@k)tKP6N6yI-CZS0qn@LICN*JgbNb zli)ftg#Wdrw)|F_zV5Ab&Xk{=fp}ednmy+EVwOkaNN?fM`*lsPg)n-tsAp~W_Y*69 zuk?_d=hm`$E^V32W_j?YAE~& z(gaW|z%0QmZeBVU8$%y`iTU&8{RNwom4@P_eLJb@G#|byz>uLP zE&65K8qJ3CnmFjpfATu}U0gCQ(5<85JsN)e5@SY~rK&t{E4gm;i*zd|D4%TL9gJ8J z%8P6aS_}=@S?9q&6b3`+J7>G%H-} znHEvS|6Pp^Ink``yHhbU!Qm}6sa11c6cTXN*|zxUWggfJ?%Pj0dkK}l*37NW96A+J z%4#b~MII)&njoE)@$#s>>xD0hWh_2>NX9N=u3TiVv5dN|tHZy=9SrEHe$K2>2k$_t@(90YId5-V3l+j$tdeGg9jSd@KoG%5K2-jI`i9WdATrt4)gHbV zrL)3tfEdwEwVLOJVx#)q{F)ubZ;qT~J4^*~{)WDl7h2NQxFq0raQK+plbgrh+AZg3 zG6258d~Zgg^2y7Q`RcwZWvJ6;I%0Zop`IZ?9@z|V8v)Ws*$u_L{1PVI zTy0T7Uin!ZSx*ct#Y^_<3mx}%$;cy3&#u}P`3goDOrc-scYpZy;vKwrW_G53@A`oK zly~>%3Wl3wk^S>Th6^pMGW;$XEn6Sp8c-3@YSI493k0rsV+oBY5t zMSA;ju;snM$NW11?8D4_s`4NY;LqLRezNxJd16T9)@d{&mad_VvG$7hplmb=|5z^1 zlA61}x$~fW=vnO9+W%qcEaRGB-?y)Fiw)8!2nr(7(u_1vq(*m47!3oqNtcRrOmf5k z1p$$6kj@DMCS9WjV|0uh`QPvJJTLZkdvTq+;yk~{ain?}|5$h$KK>4NQ(-?245FDT zhsOUM)~0pI4o`ZiVR(d{50xR@-tzVhM>F6|ge~#hfY{z@XK4&uX-lw*^?YI*cc;Ak zjR4@EV?mXD`af~|2{J%9tT`zT`$hM#xbSvrCn;@M2f_ptSqj=d5-&P)l+=U zxfaJf7s6IHcz<1EnkucD&g|m3Tg8*(f2CI*`ZRV3DS2%;Ur=Ew61k!N#RN15Z=int z=Wzpb&QrU3VzU{c9H9{2fNHMwUjpYtGq^md;yXVM{n=h1KX^?A?Wu7Nq6-_J3Ef}2 zt?0KBzzM%|E6nMF+`kD3{PytBt*W?yIN@B^S<>TCe5mWc^=6=ekS}x@Ye_HSoG@G= zG&prV;j~IWsy;rQTu)oyq_2dBMXyZfHmkde=KpVVV-MM+)a0(d8k|N1)f*0y)QMJ( z=z|hJu3PR0> zI))wOTV>BFNk9g=Vg|(a%qF5E&Wu^SDBr6_Ikx+AJsfXkRab!Oa&5=VdYu=t$Mh}r z>i8@L?5b>MCSqmA%%FKYsdK~M1B!v_W;KSHqyn2pnVWPfx$foB0D4}RsykVbc59J` zU$@O0@%L=P3DqX-f^hIOa9X)1=`Et`i7;L9;q?>%BVQLmxncm{v+)L) z8^||d8}h~cE)^(!(Uv;huMu3C#1#ZaocG&F$JIHLTd;K<57c^*aHD#{50I33_trt(cMR}K&uE+kW`Uq zHS4?@b~DQ8{9$`Rq7sq&G`=F2$!C%?Kz$7!V4D3zVt}kIH_tu^=o#7*mj4$Db+g8jSxPizGGyac7j#6ARU0P0I5o#ZpS6sKe= zjcc^-C9{r}+tq0MTdlDv=97!cab8apT4$gGkEM8j_eCZ2bWqJo(zD{dd!LsWEFFB< zxzZkyw@9-g%6du=e3l=*fasd9j%juG2=|(^YW5uDk`S%$bd_%2yy6|O_vp2StjXQn zT6Vkbl2@S-sr})3&Mp!U(6Tmxy-=mt!@+H;|DrUzTj32E!gn%>u0TC~_APNN)8o_a z+-b+(5J$f&!!n1=9bKOU+X@8PN$Apx*J`}leAV=XEh|?cDjgFj0>18=tXhCT? z&&`R&+c{ZV8#>T`ujUyI+qANpEeB8yp(;&{mWqc{h1c$&0+@ zeh4KLa(?p0_`kPN2|9iQT%}CGQ4DWpQ%Nh~(p9?=+~CO$Z244&Jed?=UvLfE^K|P^ zBx_%~fL#8If~D_S~?miQoy6@?+CpAmo@_FKgj_->5!Smd! zGFw#YFJE*(zT5+(gx>!1`Hy5SK{3Se`5bXp>}vXPe5Y)IKHw4Ug};Km_7z9h}wcuUyipJw<*(kQnXO$vYv%+)qc3| zU5nFuxnUkW_WfYDK2g_t1vCO@JQs=tt29X-05U9H6;9J8PUN_0BoDGR>kED&4klvF zCvDROw6ba8q7_QZ6Oo+fap|YRppkG7@_1s?1mzu3*04N2WEo$1n1L^RbWjmnM%Urn z-J{hg)BcP7h0Oe>^n1^n-*sO*ZR_%nq4L}tI=PIXzP=>14CPu@R8VXEtwjQeC}sDR zT{`f`ZJ_o!xHFT8d?mwDWghL(J{fvQL_v+ZTNm+*nT*vY}SzJ8;d zfSW{{`20dK-sK)=toMmvt+=Dzi2CGpoSUR>VfdMC5>>Qa0lVBYg6jyHBa=1^x^@rv`C*S>>=})K`{A?c0Z;_e}HvZBs74X{t_wvMK?s^Av2fk`s z3`dl_fNa41XFmDNzVbOBAbU?a0nabVTATt}fusQ#wka0}<^45J$^mrVmO-GKn#5%e z>tQrH*e>hMV)#kRrVbfCjVb>n|G$FbOhr38*8>irT|OB47)wiq zQ~wdVA1&e)+Ik{WiCJo0eUM#bBA#BLNwQHAm0W^9`nZHOU!YLfXwT*M0$_1q-~y#H zyR5d_w=i~$T>d%1505TNfbQFCj6Akvx8j~XYw3%y)=2i?VcQg4Z~&Pi(iDorBmPiU zm{Lu6!I(jO_k_9!SH8iV6p+$`F;(nN2Km^SAKn=k;8t{w8?G4S@Nub?f)dMwP%b)N zKwgSg;bAIUKx*yJfOua8q2-i-@?yn*-N>o(Z92|VrgA!l&32U*m-cG^_A0gACFfm7 z28voi&v6q8|{)utlwaYOoX?(D$TRB=fYvK5mMI@OtB0bl=C>CfKxYI=3gg#)|Zv5|QR`E*yg3j<46LWn? zc)zwx;P+H zcpJSnnZT{V=(g}qnj=2QMu%v4x_GbgO&{Bt2swI$l%!RV1ril}0l9SrC#HH~X6DaN?op@0hGwGi$$C zff!2P;9ayrZv6<$fv?a0hC0{=rwU|DYJusei<(IhxU#0oe^Q?d6^EPYA?*+h;J48f z6)_>|*qDX4+ZFmX3K#8c#no(tl~uqcW;_%PEYjM|*7Erk{qQ#i>9c<)A;2Yy*SvGc z3!k6a{Zt>J`j0u`erT@yV7D)A7F40xT_J;`Gz>W_WgA;9@ot$wDJ`+m{OJlJYkdZQ zWZwY$27=(f=8Bw#I43<|t2XtX6w^91?{2IRsqvGUM<;d_Iep=qK#ID(#xQK z7KQacjUf?QPKcz%ZIF-`sF^l+4c7Ol z6J^D{*utnrx>yiq1?#oMKftl|uQw3axLPPh1B^cE)rCpX$tP@s z1&Q%x3pY<*tJLSJEp7&$&S-gYCc7Vlk9(UqSjyV0wZZq$Q4Ecx`wVV31*$Kl&)Z+{ zj_(iqtN1Czg*$zdXnW$Jo}Knu&8`N>r>Pr5i*(6Mo6aaFb9_W!#QH$Kj7H)MIACSw zg0HmfNAhW!{u>`UtZ^Vt9#;Hs4!>k%7ML_CVlEuQAaYvks3No`(5)-9kej1> z$oI&ayw;Tjdf5IJ(lK8Zv9tbe$Ftzm{<3fSf}wSF*MAO}&7#82E`(`C`Nrg`-rb}s z$MnUwN)-4n#u5;c4;08s9*a*=udZmW>M}~NGqyKl9jm820hX#Z_Mr)Ocet}8Oj(T_ zTkeQtNI5B@Iou*F>b0!$NqU@IN{ePGeDVSK_feY#=7jYHTLjbqTh3*uXa!eofnk~< z)9~FKkf^VZoeM2*hOu3VzrwwR{KFdoq&p%ONhTm~vVmRTG96NM){Z9SCzL4;opd!q z^4f++($_a08husQZmhhxUjp`C+@Z-Gr}+DxZ*wHIoVAbliqH8nU?m$HaE*Z+U;H($ z@J7n#`5^U_VgV+VFK>3Y$#816>Zt)z8@im?eTeThNUZ5nCv_%@tp0nPT2E|(22gD_ zj68199mB?MlbWh^*Ls|}pA0amX)v!_e}igjxUJM)b}jmy?XAVOISFquwD0&;l8QAA zDD9Fg7^psZdXM<+Tv^~w;VX?lE{H6l4N0@Ed{BDsi>HFlLRQkQ{gpL>MT8r#Y-q}^ z%+mHyW?2Z9GcfF|6iE96W>_BcXZXFuBk@n_iJP^r(BS)Bm&vKy5>Y*M9BIJip2aW< z&g*TEg?!$;Z}KN3LSGe%^b0MwB}2nI;FE6;%?wPmeD+Md7k~ zIGx;Oj(c)rN#o{cfXg8XMy=eB25KsS)h4~klw)iC0k5LyB#RFn%jWN+I(Q@B1tW5I z#Yi>780lIXJ+-u(tEreoDqs{wKFB(+&!7*%r;o7Ij61 zhbT~8f?(1%%5Hqr^OlNfNsp}DKc z>CfF>QM8VqaOQC_j79iB357(G$OaavxRgYtZ%)_1aYb4|oi>*>P~?h>wahLl z!ut61QTyHz4=?QOjl{(kW2+%E;2HXz;*DW;>a!(u?%B*-V2k`YwlsO%a#FypC6Fee z>5e-oQ73RrQKu^DeN3y*pTZ3Kzw0#hLBFoQ07=yxMqFVFyrDh&6n$fJgJExpKZmC^ zLS$d&m}p^S5yfB;q?i-4^kXBzM*F$uJx1ZyA$ZxmUEUm>%ZZ&bahMH97S9ttpSsKm zO0XAAQUCW4Zmln~rkwK(+W3JT|7)Wve1sh_M%sp4vLI=*GpTBIRZbHo=skoOmMB#Ah-FlE}lx`(NJdc zO^Xik>v=>rxP4k%chfxei1(C0dd}cflk{Ae!Zx%aws4VSiNHxgN!^9E5{1@k+(nto z;m66LE+dh?6(T}j5i^m4m|WXA$(qBADg%Cz)xtyznaR-sN&((xgEWlfa4ZVkm^9!I zJ#$*W^I$>0SENyGG6G{vwodgKWT8Cv+T$sEWtWbeQzhl*{s1|hT3U1LRLSV&nf?63 z)7mw_d)Hc-5zA~&=txpcZ*q-GoWOLNShseGXxOj03Y9>CEmTX_eAXSh1Q>8rL*y>n*I@HSB+(Xvx1WK=a> zyB(iD&BbwP((;-ZttHAf$;SDjV`zRMug}IJ3&p5-Hmo;?b5}L{5kh`xf|H|Et#9}z7^ge)T}tlb5TD$vig!_0 z*02LecO05ju2V_ro=a~2;`9NGc{i$zkp4WPT5S7+GLCDKH@frr+bOf8X|n|w9WXvc zJ7iSgpBS~_WZyEyA7bP;9`74j9G@1M6JN7pZvnB=r^jdpCb@cSMkk3RQ#uDr>cMq< zfwkTle7zK(&o;y!9nIk(N8=XaCH&gVMY|KZZQRdjjjk&zy#?F4x z$v(d%UhYK4ko%zbbv8I+Vv^BwOAr2raqr)52ipotsZcOtJWdLa=?P&c2YL2*J8CCfzE zuUbTU!j|3r@AcPDjEWggX3HP_WrVOP34g0MbJm$*3ppvbG9P3;+I-)eCe#-`+gu|7 z>@JR}Q@?2Gn{Yl&-31&qaxNM11$Ot8R1iUh+)ajn{G{_CZCCyfy~&Oqpm}#Mi~6cc z`dX?|2#-CD5)li9H}*NapEF5Sw}HBX{bH|st) zs}OKq8bY%K`1UYw_I~EsgqsaOXj+Odf5J?%E1#h)FTp70XD1X|VS?4;#bwd3qk ztSCgl5=Mu%pkp5j2HVk%#520-LZbP&L;N&Gd~J!fFXSTpho*1QQBB|KLQS~<*6=R* z=XCpD7EE7MvoX?=)=lr~miRZBRIULRov%6OA6{sTv9ds}b*u7>k)D5GcpC`mnM?aQ z;pqG8@+JavOk%lY%KzT1JL|hxW*$J4@NYDvlg?;cWjkz*}=Ya@b9Oc$Et;3JbtbsW%tR#T^@utRPamz!mO8vlwC9Zn}p<)*# z$o38eS-oosIWrBbo~Z4xOW+5VtZl>~(py_ogB^5l5~7@iU0QbFxQXRdDvBo|nbfp> z*4TK4f07yJePajpJhSUcMt(Mo@UK*0@%>c$LX6JjjkV*&7cZ32F|IP@2kE0b)KV#( zun0N_v(;CMAtDuF1a^KX9I9uR)Vqct7vC`4ljczR0nk@bz%Z$me*`8NGkxX!uQ(gq zQ5@MOudsbjVkrRomv&qK?>(`HV?lm!ONvI-VOq3HCYgTLxHyXm(hO}Ot1~C9Qva((-889ds%7?%xVPi{Xvqhs)KUelXW_edn_ z`gitsWeqWV-Fnt-lY!&Q+);ngUen71sPV3fnBLQxO!XSD@a5-L0_SYc6p7a+{N*{+ z@f{pn8x9Xfg3Vo7r>FkwRhe{s5jOkcdH3QAN;ApQ{jXfapa0ZLCU*1{X<8}avq;J( ze@+lYUbpY9RI0Ze$Y{}bePnH*MX)CA_}(7gF&)M%L=5@h0NLW%4!V;8%~)EKbUo^$lx!vw;Z~$#A9X)=N6-xfCi3 z#-(zMZ0!$x|BsB#k4D0Ug9=OURqUx|eP3o`zGrtsft@6{6(_Y>$Z7LFHKM71k#;35 zN9}F-N9TbWxBpnxY^Z}mQiP2XA_&B7$35eP+m$8h%8jzpd*=S5DA7&Kb$6|W*gC@4 zt9sAPhp{~!q_(-bO8@Iym!;w$r88G9y#^wikY~>~@y4sdFPomIT(jjFZ-05$kNFDW*aqB~1o0eiC07{X@PsLYf84vT3LY-xae* z9s|Zqi~F$kn$-^kx~Jbd^AD6JxVds3U*I`k?W=(eqqzZzBksC(htuoq;owh@U~5yr zmF1Ty0+NluxP&^Y4`rs|&i6#^1;%6M?A=kuYGwMcjrG9AqLm#`6HmC7} z3S1P6>C21)OB}zX0b8ScI(|FAOh6kDi<9^se}ctPLYwipof62&dljwqUyR48d}wfF zR>BSKf}fDrlKUjeXlL`b-|BqX5f}zv)jF2J($n zI+b^YabsyCX0ryO_unZqE;F#4h)r&)}=%Xc>66r)@EeRj2PSSO`{vKZ#7&ud?NnM zyQ8G5eHO^N7la#biT0VkCI0JKmV$1L{tu;T>c1MO%)Ynb1i%R)Xkn0iY|qy#!;77* zmhz(`rB*m%zpHoeZ;Rk}cju*6|HD!*Z(ISP-dET}wNp!IURlWL$P)Kp}rEeRLsyOLhj8ox25N~@WHq?5LH=DoiSGshrQ{NxAhABFe zTQtsw0>;-Cb+vZz}Yzo$^a@1+4YDEonz z$aVUB6zR_!Y%rRefuGPTm)m&A4}2A{#)HExr;Zv-2cj^>3u63XIvF`5) z=cO2rMdW1|I^}q@h_BIQq>Ml%S2pU!pSJ;8bA~rni5oY9p&tfb0oE@n&V!lj!#~td zePwyJ&K6L#%UbcL#VpCqfwJSR&Hv=#XXV#k6y*J~ANliJHm%UdQz*fHTzo})bkfkl`cT3c@MXF4W& zeb*LyW@whyK}r9EF(ztPRaZGgO&B9^mQA^n9q%@I8pF38hlJTBbJfi-ikV|#=XWe+ z^`Nx}e5DkHd)QhW=eqj7FRSCxnUJ4|r+Q%+WOd8QxeK{$&Y@@SxZf)|1)pGj11R`e zibg6}=kJIPlsYLK5oQJ|YqgL|Pqye??sPPxFG`0CTNXn<`^L7;#Z`>nrp74J+pP*n z*Wkk<@Q(5b*PzRydod7?xc99x=mwwS#H@=YL!Y&DtabY_92I)P4}7Cww)N-Kb$+*X z&+L@775p7>D@XJAg=$sOTM4pUD#Kf#pv;a^@bqtzDBDIMA&j-gsY5kcleJ($WP@Yn z`>n4TQc9=>% ze0?TZSOeu0&LPa*a3+hYjhJRL?CKEb%mR9vWeOD00e_yB?6m(5&?Og*Qk;2)7qJwB zOOFLVU!hZW-tO?TzV!vl5ELuhsa(8)Xim1Qif9;C*5T5rOZw^}Bww%4@UhG2^eLu( zB9aN(rvexh24RFzA7KC@_E-`^sQ${Zr>#IS=8AB=!+oAyYP;SAS>31j7blce!@h5s zb12NlqmrGl3lux`pSl;4vd(2gm$u3Er7eBtRogZFs%Mas))dh#*<#uI#8$~@(9BxS zWD&94|GV3GfYmj71bb`WH-;{8@3Roc&jUSN%ihMe5){IcpqqK>$T#P+JV`;lFV%fk zL(+{ObXsU52BsZ^HDb+-#NT@xdBW%3y2Boi}7k4iOeDB@rJSEPL=6+Qs>QL z1YXtLjm7ZDwXW4@Nz~DJm-G74x=R)eGkc7H>zBlt)W7rwT50w_V zY1<#5nX`1JM0=vZtECT@(UKAQz&T}#|Mnh{wpZaOqfOI!OE~MCmh(C1#m)JDfcf%B z_1k1?mTG=gAr3e5ICkF1H6Ht9kL;VJk7~=^I(F@z2=b0KiVPWBE(iSiT3|fwp40r% zCVd#=y?ddM3_ry`JwYAW#}-II=>!^J;fj;9#k!Q3Gr$GAE5)YD6haC0wQ=t1X=HwP zRsaLq540$s8d+!mRi1pX^$W*$QZw^;2?!}RR^OqlxXv3{p$2z_ng8jnI!hXpKOmRO z-|hXxA6nPIwycm#u!a|Xa81kNz%JaF!`s>T6Y~u~%yg<*?4u*+B72;^-}nX4vGjlt zfP_a~@XhJt{w8F)@Y@=xDv&E`Vr;{%LRf!IUzr}P>b`Yv%9dUM`%(v5&9=PvJlE?3D2XJ&Ha zn-cys>Z)H?q2ns5ccj&`E}RzUEzSDlC0rVB(eg$FX5{Q0SN30cXZhdew@qnd!|S$N z>qZCEe5sE7ad})*zFqCRdh5{*tg%$pr-KWVcs31;Pe;Y~1#2pIy~ShT!J@!KOb^!n z+e@C>oKl!j0B>rD8~xg}0h8MZ~<4wU1_>dzr8~4sf+r#d~)Vcj#yDUD0*TcS**FV8~ zCEtudcsljXKL|XwkdAkj1buOJ#$B|##{5=sj~)t?8-I>HeH9Sd93B@`!r8Dj4LCRC z0OU<|zH8iwq=1u6={$>Qlra`y+ZTV9y-e>Pn+nkL#czFy3&qz|eRU*vIww)NA)Og{ z=&7pcB_%ptChvjJn9|f6MH^w}iDPT7a&CTyLo4(DD`3C(?R8v`D=ls2vhrmvrtoaia6cMXV+GF#?uL_TSls;$)Du+$(Yy`km3G*3Oq+flbJ z9>kRYoE!cIYUBW3Naj|BF?I351j_ysD-G#S;o1BZq?@LWe|HzIyVDfqUrs=YbjtII6 zg}B!v`N?*bYTGLNy=Y0RqisGFK}!h~c!+a0hAveyW0U2CXFsBIWEO!2$$v8FJe||)eOvTYjAyoSd4vNfQq1s{1H+bnUFD^EmQTe% zyb>)_L_G64(g3$5^@V+9`|5mI%#n9AM8*lcSf}=BC4E?RWO8}vRNCgr@{dM+yFPQj z@n#pc+NAL*bI%wBCK0DXioNUPD9hw%ra%`90y1V0DZ)<4f#)@IspJ5V_+qEpZ5qzX z8KtIt4|sgz;JwY6kV4|~n$BwOMAX!!W$%Rjq0afwCIaSgHt-t| z+Y+U)ESW#t%ROCT>5A=2*&}+lAK|NZ=%z{P@RDd*_(XCL{~`UR1-TfNJO$gR_va3z zkwd;2N$aRNQ(vsbYe12BvpT~}Av2Dbw#6vWVXegY6fC+AE2<(NNK3P5sPFPro$AIl z_M`TB%?VkCw=ZcB-e9`eIv)j=JU7n^j-AJQiOp1X^?&}Zx5yxEPUl1C=ni<5gegky z%Od&HjXgpx(o#VBMVuhvE_29>)Q)pcSJ=- zPToiqh1Ti2ClKkW#{m3bk&vG?Y!Ce=UWSXPJb~#X1 zQaevS><}Ctj#fuH-6>_{%g9_>k(F;95%`4#%_1)RgNW1oO>$Txw0}^@91)H^8_HEDDA3|S z9DdOZUAnWux9~g~_m7~-;`za6?VradwxHR6-9$eSoFu_J8O(CIQ%*95#|Y&M!PaCW zhSgog^5t|x#sVXu-x8Qz`^r_R#bdIIb#_3+z_W(A?BspxXhrb;H#YbyIaQU-PxjGhBX@KIF=CUDXZD%Kp9695!|6RYy~ zO>xmI?`*Miy$ax@(-%675qO2N_rM+5nLz zYFU*~>e;EWI#m0gfCb(FAwO!;>t@V$yOLR&CZ?MF$wa7RBXvv$?{WR2q}ED0Xl(KO zztBlm@6%5xy_-KjvG3roJc3IDS?9XBH!Xvj5{*FhhL-*dNhBOx1Q~R`iy^RxG={Lv z&(kE`KwUuz*<gYe2bbhxT#jf2U^qb%R3nN8v{T;i}5_gaKBE?-S zE9Ram1ri&*_#yGW6{^%703c-)N|7@Y1ug&R-^YDqLxYFgEa?Ow>pYJ-y0uyp*fnM% z!Jlgtvp?8Z^E}x5ueNPt&$E36`}il^1sxxJ?iNv@G=W!?(i;_(I}fdp<}f>?y@3F+ zVc7T{eGk+=#Afod2yY}cY}bEc>Xdr{Xw=_oxzw%SzVQ2}Xdn#g{%?0ccL3D-lx|LX z;)qq-_B}^~Cl0oy5=F3b0|!ddabVVx18PKHl_j~_=JY?bghew^v(+3nKg31xvt@y8 zQD0pJykjMq!W2(UexoNDrO>+Uu%E*nf1BTdP!_!@i;1!BLK*@@$nMbp)XP;MxN4ti z@vp)^5+klj03*U{m;JZJ#uSdzzf-VSPheRL&0ttxpn#6LNC~QFul+>)&h25nv^pjgw zUv2r$9j0qC7YQ{ViPk`JrJYL@TK8bZ=&WF9cd=~T!+%6Q>&z}Jm4lO(h8ui0K_~3L z`9o{@vFgclw|~p4ze;xoex*FW*yqJ2Ap>_!eGW!zp$zPI3AFWT;b;f;j7p|=H4w@B z0HvRw6vMf_yEjC9pv1YA0v&pogwp!KYTt(z7b|uA zrapZP%bE}rq7Ny47YgZE%F248q*uboY0X22RqI^es2{FNUk$83B|S=EwdCIp*a8Vv#PaUlIu4;61e!_|li(Y^}HvPU!sp%Wr`RGxZ_@s>E6#r1czXw6{M zS%HkgW~Rj-{>mC}g`n=*sUZh)^2EnHoo?aL{<`{R8~H_wN7=`LTl6`_Ji;I?`$%qK zbrN}Pp)x?T5m01}_BY0gRw~u{9kaKDVSF2^;C&WV!1#u$?d^9LaEfk~rr4W;jh1*% zmSENXho(%EZt+G>=^0xAv-QopFq^DznjOsajH3G}6tTvVvVWDEo?Dmmq+JHi^kN91j1OtJGdXU9 zuOoP-I8wJQ_bN)v8De8ZtJV6Flmg4$AI{NIV!6bPRpl`(&mt|+su=qK!Vb;{$93z@ zKbLX+!c3+zQI_>zY{vuI{!!^^pO&*Yw;Qf-#hhv}Z*o_|Q#~p#$A4s;{#C4YaXx(= zGkei=Tl&CHZyLCdSNoWlFV zhyJ1Z$%QLH5s6VH4o22eFx_{Shr95|z#8#qrx6P^jKq}$A4-Wh4S3LGk?S)KmJpPM zzVkoOhaxOMvzzVaotYG(k?*>Ro>48`c{2Px26vO}I?{`;aBzab^eSJo(t6jK0MI3; zMLC(b2b;A%Iq_8H=y2zrjVhhKhifr!t^2I#wRx$)Z0+o=)-~l}lc5A{;%z~RAAfoF z2D?=m&rxNankWZwlkIqnk(j5$n;`J`NDZvYUXNcfx@vlwy1+@oC0TEDzlZLa34Ni1 zktm4jH)krv;IQ!c-3M*3IF1HT)%hUHP0`;5}(!<63*?!mBF+UOZIhF0^2HN{v zCDlis*C(G7nl!-ibkG~7i?@sO@u*CRA)F!St`R2^(bY9|F~}p$Zm@OU~Lwez4A@ zpb;XmnZ|pODpz_hU<|0VD_@orvskV3z zcO1%N^vH*bK6V@tb7VD929fX$%d($Je=DE^!0vI02|lOdB?=uz zCcaidDQqYa3h7-v#kbki(X;Fy0%4tn%~vLIpj*@H43!Dg>%}qVr_Xn~DNWynZV5rj z&juIZSa}1c7U$=7z=9fX%|~c5u{g{kQt#OVk<(JW$!V5y+Ufm-Kk!C&KN?Q>RBrP# z*Y4%IULP9X%>N&Fa1k%#Y%Ms5skb=?+*=^J1As2-+*4yCl(f10s%*sZMC|TQCP?`# z{``{R?Z%JU*kPJ=^5TGj1$%W@|KWyFLs&vkx-P(_qbUQ08%Ob;PkPGjndD@^vAAj< z?5a*nero*#O#^tK~ zx@b9c7Dn@;UZ%Z#6E5;l`69Vl&F^Q+qZ9;L*zBR%b>mNqkw~cSLOery(xbB9T!#= zPhwYD`CfzmU!PXwZYZ8F$^%G*qoEf*s|!dx zqs*f1r3b&?Dc7M@dZ4b?Es<`}7laSQ3?W(|$|Ai8HizcF5c038UQ<6XHJ?f}!it=x z$*4>EO~L&MVqpn^rHMeSk}c?=pJOzjDR}^r{+xfpTvt!dAwmnvRl`yl!c!XZzW|GF zikzG>pw$@LTBz6>@*D&8nnkV?Fm;hL?Nu)AA~ENf&T0~ZEVzk5#Y!O8ZYdcIbm1fo z)q@J`qU1)AfVrVMxU6U?Uw?S|u)OM}J}^=|X_`GKQayk~PV3-98rI)4qVl9Ufzbbm zlZUroyU%+SC*wF@@C9{ug1P}Z@qMQFqIobp_PWQ~vx!9Z@;4m6*lOrIx!-xHp(%IZ zXm`Q-)Y5ClcON?FS1yb-in>j=JePD#U_O8pGF7i480s8Kqro9oUt+to9}7(Le_?0% zd6jWlY5(f8RWYRl^bsRMj9ugLE*)#5UAR{d0c?sQ#F?T?14}BjJa0ZWR2mLX?-T#Fe#hLK(r=>hT&xx6{sCUZ@LDRgE8lJ-CmSM{q^=~LIM@aCtBcGv` z9>wuSh8(iJumsYx+myudOcaX)j>%ZOG-{*d~=^;(ICC2DuBgHbxRLw zdg3f$c2?l6*DMLm|7Z>@i2sy9b}q8pWzAZI&%aWgUIx4T$LSCm(LF6?i8f0uDDgDcQY)8DaVp$e~_ zPcXAy@525OGOxOY6`O+7{Ld*{YnR(K!myKgG9-g9j;J*>6J1s#xHs%S0EsTc;(~;c zfF?7M*^4P0X>po%) zHo+$-N!rR??EX`00d~QZJRahC4b?=GCd#5oKbCdQ6jH)oJWHENES3^+V)rn9{jr|2=JN?NvsD#=~~;n#tYn30a<`KeX)T&4_Q)~FHo+r* zsy?MnUe0e0pJQcy_P5%*#+c(Pr#W0JH`%12_DPp>xoPm2ak;I$PBPzK48@u&=W^Lq ze=2@2cF!)Yr8&*v=He(`uWae>s@aQ`?K$>I#f`c>&4`J4_3#nHdXJxRz4lz3DgDgN z*yztb=0pD+rk6MEElt{^=5ZWH^tAfsgL}15!p%XyPdb$2At;(U0&oJKdcNz>Bja4I>B2IOQDR|WxBAYGOwQ?cHxN)A54gzFYpb>VXh^Fz)4ZC2!(bgM__VBVxzZYM)T}#Dj>11EdCAV7|(U$e1ucx(mq9}o0 zkd|FGa>b8HEv-wZhtJw`_^gxp+23mK8l%V0x%634*dM@&Cv#~tyc8UsL+&GkHZbwJB zz6{rx3By%Ht|rF3O<`DdG9<`VsA_2rLhT_AAS23S+C=34tL+;jI&4z=5t3P*6=$liq%pot`YB|=LoZiVL z;w1B0sP0)r`F4>6T;)3m!6j^3c3wJay9Je?R@74us)vY;eov4;UZ(FM=a~tNn8yeo zecETv56WM8J{b>uIq>0cPJHh`MVq~~9Z{@K^Eby~94KcSnyJZ#6UTZmsAkb0hX-p6XTI4%fvpugl{tFfs4^?sRti zDL?5}eCKoGcG#-NeLW~ { + window.onload = function() { + // autoTriggerFunction(); + }; -function autoTriggerFunction() { - var button = document.getElementById("update_all_bt"); - button.click(); -} - -// const textbox = document.querySelector('#cmd label textarea'); + function autoTriggerFunction() { + var button = document.getElementById("update_all_bt"); + button.click(); + } -// textbox.addEventListener('input', () => { -// textbox.scrollTop = textbox.scrollHeight; -// console.log('input'); -// }); -// textbox.addEventListener('change', () => { -// textbox.scrollTop = textbox.scrollHeight; -// console.log('change'); -// }); + // const textbox = document.querySelector('#cmd label textarea'); -function scrollTextboxToBottom() { - var textbox = document.querySelector('.textbox_container label textarea'); - textbox.scrollTop = textbox.scrollHeight*10; -} -window.addEventListener('DOMContentLoaded', scrollTextboxToBottom); + // textbox.addEventListener('input', () => { + // textbox.scrollTop = textbox.scrollHeight; + // console.log('input'); + // }); + // textbox.addEventListener('change', () => { + // textbox.scrollTop = textbox.scrollHeight; + // console.log('change'); + // }); + function scrollTextboxToBottom() { + var textbox = document.querySelector('.textbox_container label textarea'); + textbox.scrollTop = textbox.scrollHeight*10; + } + window.addEventListener('DOMContentLoaded', scrollTextboxToBottom); -var checkboxes = document.querySelectorAll('input[type="checkbox"]'); -checkboxes.forEach(function(checkbox) { - checkbox.addEventListener("change", function() { - console.log(location.hostname) - var _server_url = "http://"+location.hostname+":7866/endpoint"; - fetch(_server_url, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({'task': 'change_checkbox', 'ckid': checkbox.id}), - }) - .then((response) => response.json()) - .then((data) => { - console.log(data.result) - }); + document.addEventListener('change', function(event) { + // Check if the changed element is a checkbox + if (event.target.type === 'checkbox') { + console.log(location.hostname); + var _server_url = "http://" + location.hostname + ":7866/endpoint"; + fetch(_server_url, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({'task': 'change_checkbox', 'ckid': event.target.id}), + }) + .then((response) => response.json()) + .then((data) => { + console.log(data.result); + }); + } }); -}); +} diff --git a/qwen_server/output_beautify.py b/qwen_server/output_beautify.py index 5ef9f4f..38bf668 100644 --- a/qwen_server/output_beautify.py +++ b/qwen_server/output_beautify.py @@ -1,10 +1,7 @@ -from typing import Dict, Iterator, List - import json5 -from qwen_agent.llm.schema import ASSISTANT, CONTENT, FUNCTION, ROLE, SYSTEM, USER from qwen_agent.log import logger -from qwen_agent.utils.utils import extract_code, extract_obs, extract_urls, print_traceback +from qwen_agent.utils.utils import extract_code, extract_urls, print_traceback FN_NAME = 'Action' FN_ARGS = 'Action Input' @@ -12,33 +9,11 @@ FN_EXIT = 'Response' -def convert_fncall_to_text(messages: List[Dict]) -> List[Dict]: - new_messages = [] - for msg in messages: - role, content = msg[ROLE], msg[CONTENT] - content = (content or '').lstrip('\n').rstrip() - if role in (SYSTEM, USER): - new_messages.append({ROLE: role, CONTENT: content}) - elif role == ASSISTANT: - fn_call = msg.get(f'{FUNCTION}_call', {}) - if fn_call: - f_name = fn_call['name'] - f_args = fn_call['arguments'] - if f_args.startswith('```'): # if code snippet - f_args = '\n' + f_args # for markdown rendering - content += f'\n{FN_NAME}: {f_name}' - content += f'\n{FN_ARGS}: {f_args}' - if len(new_messages) > 0 and new_messages[-1][ROLE] == ASSISTANT: - new_messages[-1][CONTENT] += content - else: - content = content.lstrip('\n').rstrip() - new_messages.append({ROLE: role, CONTENT: content}) - elif role == FUNCTION: - assert new_messages[-1][ROLE] == ASSISTANT - new_messages[-1][CONTENT] += f'\n{FN_RESULT}: {content}\n{FN_EXIT}: ' - else: - raise TypeError - return new_messages +def extract_obs(text): + k = text.rfind('\nObservation:') + j = text.rfind('\nThought:') + obs = text[k + len('\nObservation:'):j] + return obs.strip() def format_answer(text): @@ -72,48 +47,3 @@ def format_answer(text): return rsp else: return text.split(f'{FN_EXIT}:')[-1].strip() - - -def convert_to_full_str_stream(message_list_stream: Iterator[List[Dict]]) -> Iterator[str]: - """ - output the full streaming str response - """ - for message_list in message_list_stream: - if not message_list: - continue - new_message_list = convert_fncall_to_text(message_list) - assert len(new_message_list) == 1 and new_message_list[0][ROLE] == ASSISTANT - yield new_message_list[0][CONTENT] - - -def convert_to_delta_str_stream(message_list_stream: Iterator[List[Dict]]) -> Iterator[str]: - """ - output the delta streaming str response - """ - last_len = 0 - delay_len = 20 - in_delay = False - text = '' - for text in convert_to_full_str_stream(message_list_stream): - if (len(text) - last_len) <= delay_len: - in_delay = True - continue - else: - in_delay = False - real_text = text[:-delay_len] - now_rsp = real_text[last_len:] - yield now_rsp - last_len = len(real_text) - - if text and (in_delay or (last_len != len(text))): - yield text[last_len:] - - -def convert_to_str(message_list_stream: Iterator[List[Dict]]) -> str: - """ - output the final full str response - """ - response = '' - for r in convert_to_full_str_stream(message_list_stream): - response = r - return response diff --git a/qwen_server/schema.py b/qwen_server/schema.py index f1ddf27..11651a0 100644 --- a/qwen_server/schema.py +++ b/qwen_server/schema.py @@ -3,7 +3,6 @@ class PathConfig(BaseModel): work_space_root: str - database_root: str download_root: str code_interpreter_ws: str @@ -18,7 +17,6 @@ class ServerConfig(BaseModel): llm: str max_ref_token: int max_days: int - functions: list class Config: protected_namespaces = () diff --git a/qwen_server/server_config.json b/qwen_server/server_config.json index 16a5acc..86f28da 100644 --- a/qwen_server/server_config.json +++ b/qwen_server/server_config.json @@ -1,9 +1,8 @@ { "path": { "work_space_root": "workspace/", - "database_root": "workspace/database/", "download_root": "workspace/download/", - "code_interpreter_ws": "workspace/ci_workspace/" + "code_interpreter_ws": "workspace/tools/code_interpreter/" }, "server": { "server_host": "127.0.0.1", @@ -14,10 +13,6 @@ "api_key": "", "llm": "qwen-plus", "max_ref_token": 4000, - "max_days": 7, - "functions": [ - "code_interpreter", - "image_gen" - ] + "max_days": 7 } } diff --git a/qwen_server/workstation_server.py b/qwen_server/workstation_server.py index f2b7bd0..6679005 100644 --- a/qwen_server/workstation_server.py +++ b/qwen_server/workstation_server.py @@ -3,25 +3,22 @@ import os from pathlib import Path -try: - import gradio as gr - if gr.__version__ < '3.50' or gr.__version__ >= '4.0': - raise ImportError('Incompatible gradio version detected. ' - 'Please install the correct version with: pip install "gradio>=3.50,<4.0"') -except (ModuleNotFoundError, AttributeError): - raise ImportError('Please install gradio by: pip install "gradio>=3.50,<4.0"') import json5 +from qwen_agent.tools.simple_doc_parser import PARSER_SUPPORTED_FILE_TYPES + try: import add_qwen_libs # NOQA except ImportError: pass -from qwen_agent.agents import ArticleAgent, DocQAAgent, ReActChat + +from qwen_agent.agents import ArticleAgent, Assistant, ReActChat +from qwen_agent.gui import gr +from qwen_agent.gui.utils import get_avatar_image from qwen_agent.llm import get_chat_model from qwen_agent.llm.base import ModelServiceError from qwen_agent.memory import Memory -from qwen_agent.utils.utils import (get_basename_from_url, get_last_one_line_context, has_chinese_chars, - save_text_to_file) +from qwen_agent.utils.utils import get_basename_from_url, get_file_type, has_chinese_chars, save_text_to_file from qwen_server import output_beautify from qwen_server.schema import GlobalConfig from qwen_server.utils import read_meta_data_by_condition, save_browsing_meta_data @@ -30,9 +27,7 @@ with open(Path(__file__).resolve().parent / 'server_config.json', 'r') as f: server_config = json.load(f) server_config = GlobalConfig(**server_config) -function_list = None llm_config = None -storage_path = None if hasattr(server_config.server, 'llm'): llm_config = { @@ -40,17 +35,15 @@ 'api_key': server_config.server.api_key, 'model_server': server_config.server.model_server } -if hasattr(server_config.server, 'functions'): - function_list = server_config.server.functions -if hasattr(server_config.path, 'database_root'): - storage_path = server_config.path.database_root app_global_para = { 'time': [str(datetime.date.today()), str(datetime.date.today())], 'messages': [], 'last_turn_msg_id': [], 'is_first_upload': True, - 'uploaded_ci_file': '' + 'uploaded_ci_file': '', + 'pure_messages': [], + 'pure_last_turn_msg_id': [], } DOC_OPTION = 'Document QA' @@ -75,6 +68,7 @@ def add_text(history, text): def pure_add_text(history, text): history = history + [(text, None)] + app_global_para['pure_last_turn_msg_id'] = [] return history, gr.update(value='', interactive=False) @@ -93,12 +87,23 @@ def chat_clear(): return None, None +def chat_clear_pure(): + app_global_para['pure_messages'] = [] + return None, None + + def chat_clear_last(): for index in app_global_para['last_turn_msg_id'][::-1]: del app_global_para['messages'][index] app_global_para['last_turn_msg_id'] = [] +def pure_chat_clear_last(): + for index in app_global_para['pure_last_turn_msg_id'][::-1]: + del app_global_para['pure_messages'][index] + app_global_para['pure_last_turn_msg_id'] = [] + + def add_file(file, chosen_plug): display_path = get_basename_from_url(file.name) @@ -106,10 +111,10 @@ def add_file(file, chosen_plug): app_global_para['uploaded_ci_file'] = file.name app_global_para['is_first_upload'] = True return display_path - - if not file.name.lower().endswith(('pdf', 'docx', 'pptx')): + f_type = get_file_type(file) + if f_type not in PARSER_SUPPORTED_FILE_TYPES: display_path = ( - 'Upload failed: only adding [\'.pdf\', \'.docx\', \'.pptx\'] documents as references is supported!') + f'Upload failed: only adding {", ".join(PARSER_SUPPORTED_FILE_TYPES)} as references is supported!') else: # cache file try: @@ -189,17 +194,22 @@ def pure_bot(history): yield history else: history[-1][1] = '' - messages = [] - for chat in history[:-1]: - messages.append({'role': 'user', 'content': chat[0]}) - messages.append({'role': 'assistant', 'content': chat[1]}) - messages.append({'role': 'user', 'content': history[-1][0]}) + message = [{'role': 'user', 'content': history[-1][0], 'name': 'pure_chat_user'}] try: llm = get_chat_model(llm_config) - response = llm.chat(messages=messages) - for chunk in output_beautify.convert_to_full_str_stream(response): - history[-1][1] = chunk - yield history + response = llm.chat(messages=app_global_para['pure_messages'] + message) + rsp = [] + for rsp in response: + if rsp: + history[-1][1] = rsp[-1]['content'] + yield history + + # Record the conversation history when the conversation succeeds + app_global_para['pure_last_turn_msg_id'].append(len(app_global_para['pure_messages'])) + app_global_para['pure_messages'].extend(message) # New user message + app_global_para['pure_last_turn_msg_id'].append(len(app_global_para['pure_messages'])) + app_global_para['pure_messages'].extend(rsp) # The response + except ModelServiceError as ex: history[-1][1] = str(ex) yield history @@ -231,7 +241,6 @@ def bot(history, chosen_plug): yield history else: history[-1][1] = '' - message = [] if chosen_plug == CI_OPTION: # use code interpreter if app_global_para['uploaded_ci_file'] and app_global_para['is_first_upload']: app_global_para['is_first_upload'] = False # only send file when first upload @@ -250,9 +259,16 @@ def bot(history, chosen_plug): func_assistant = ReActChat(function_list=['code_interpreter'], llm=llm_config) try: response = func_assistant.run(messages=messages) - for chunk in output_beautify.convert_to_full_str_stream(response): - history[-1][1] = chunk - yield history + rsp = [] + for rsp in response: + if rsp: + history[-1][1] = rsp[-1]['content'] + yield history + # append message + app_global_para['last_turn_msg_id'].append(len(app_global_para['messages'])) + app_global_para['messages'].extend(message) + app_global_para['last_turn_msg_id'].append(len(app_global_para['messages'])) + app_global_para['messages'].extend(rsp) except ModelServiceError as ex: history[-1][1] = str(ex) yield history @@ -264,25 +280,38 @@ def bot(history, chosen_plug): # checked files for record in read_meta_data_by_condition(meta_file, time_limit=app_global_para['time'], checked=True): content.append({'file': record['url']}) - qa_assistant = DocQAAgent(llm=llm_config) + qa_assistant = Assistant(llm=llm_config) message = [{'role': 'user', 'content': content}] - response = qa_assistant.run(messages=message, max_ref_token=server_config.server.max_ref_token) - for chunk in output_beautify.convert_to_full_str_stream(response): - history[-1][1] = chunk - yield history + # rm all files of history + messages = keep_only_files_for_name(app_global_para['messages'], 'None') + message + response = qa_assistant.run(messages=messages, max_ref_token=server_config.server.max_ref_token) + rsp = [] + for rsp in response: + if rsp: + history[-1][1] = rsp[-1]['content'] + yield history + # append message + app_global_para['last_turn_msg_id'].append(len(app_global_para['messages'])) + app_global_para['messages'].extend(message) + app_global_para['last_turn_msg_id'].append(len(app_global_para['messages'])) + app_global_para['messages'].extend(rsp) + except ModelServiceError as ex: history[-1][1] = str(ex) yield history except Exception as ex: raise ValueError(ex) - # append message - app_global_para['last_turn_msg_id'].append(len(app_global_para['messages'])) - app_global_para['messages'].extend(message) - message = {'role': 'assistant', 'content': history[-1][1]} - app_global_para['last_turn_msg_id'].append(len(app_global_para['messages'])) - app_global_para['messages'].append(message) +def get_last_one_line_context(text): + lines = text.split('\n') + n = len(lines) + res = '' + for i in range(n - 1, -1, -1): + if lines[i].strip(): + res = lines[i] + break + return res def generate(context): @@ -297,8 +326,9 @@ def generate(context): func_assistant = ReActChat(function_list=['code_interpreter'], llm=llm_config) try: response = func_assistant.run(messages=[{'role': 'user', 'content': sp_query}]) - for chunk in output_beautify.convert_to_full_str_stream(response): - yield chunk + for rsp in response: + if rsp: + yield rsp[-1]['content'] except ModelServiceError as ex: yield str(ex) except Exception as ex: @@ -309,8 +339,9 @@ def generate(context): func_assistant = ReActChat(function_list=['code_interpreter', 'image_gen'], llm=llm_config) try: response = func_assistant.run(messages=[{'role': 'user', 'content': sp_query}]) - for chunk in output_beautify.convert_to_full_str_stream(response): - yield chunk + for rsp in response: + if rsp: + yield rsp[-1]['content'] except ModelServiceError as ex: yield str(ex) except Exception as ex: @@ -338,8 +369,9 @@ def generate(context): }], max_ref_token=server_config.server.max_ref_token, full_article=full_article) - for chunk in output_beautify.convert_to_full_str_stream(response): - yield chunk + for rsp in response: + if rsp: + yield rsp[-1]['content'] except ModelServiceError as ex: yield str(ex) except Exception as ex: @@ -364,7 +396,7 @@ def format_generate(edit, context): yield res -with gr.Blocks(css=css, theme='soft') as demo: +with gr.Blocks(css=css, js=js, theme='soft') as demo: title = gr.Markdown('Qwen Agent: BrowserQwen', elem_classes='title') desc = gr.Markdown( 'This is the editing workstation of BrowserQwen, where Qwen has collected the browsing history. Qwen can assist you in completing your creative work!', @@ -480,10 +512,7 @@ def format_generate(edit, context): elem_id='chatbot', height=680, show_copy_button=True, - avatar_images=( - None, - (os.path.join(Path(__file__).resolve().parent, 'img/logo.png')), - ), + avatar_images=(None, get_avatar_image('qwen')), ) with gr.Row(): with gr.Column(scale=1, min_width=0): @@ -523,7 +552,7 @@ def format_generate(edit, context): re_txt_msg.then(lambda: gr.update(interactive=True), None, [chat_txt], queue=False) file_msg = file_btn.upload(add_file, [file_btn, plug_bt], [hidden_file_path], queue=False) - file_msg.then(update_browser_list, None, browser_list).then(lambda: None, None, None, _js=f'() => {{{js}}}') + file_msg.then(update_browser_list, None, browser_list) chat_clr_bt.click(chat_clear, None, [chatbot, hidden_file_path], queue=False) # re_bt.click(re_bot, chatbot, chatbot) @@ -539,10 +568,7 @@ def format_generate(edit, context): elem_id='pure_chatbot', height=680, show_copy_button=True, - avatar_images=( - None, - (os.path.join(Path(__file__).resolve().parent, 'img/logo.png')), - ), + avatar_images=(None, get_avatar_image('qwen')), ) with gr.Row(): with gr.Column(scale=13): @@ -563,27 +589,22 @@ def format_generate(edit, context): txt_msg.then(lambda: gr.update(interactive=True), None, [chat_txt], queue=False) re_txt_msg = chat_re_bt.click(rm_text, [pure_chatbot], [pure_chatbot, chat_txt], - queue=False).then(pure_bot, pure_chatbot, pure_chatbot) + queue=False).then(pure_chat_clear_last, None, + None).then(pure_bot, pure_chatbot, pure_chatbot) re_txt_msg.then(lambda: gr.update(interactive=True), None, [chat_txt], queue=False) - chat_clr_bt.click(lambda: None, None, pure_chatbot, queue=False) + chat_clr_bt.click(chat_clear_pure, None, pure_chatbot, queue=False) - chat_stop_bt.click(chat_clear_last, None, None, cancels=[txt_msg, re_txt_msg], queue=False) + chat_stop_bt.click(pure_chat_clear_last, None, None, cancels=[txt_msg, re_txt_msg], queue=False) date1.change(update_app_global_para, [date1, date2], - None).then(update_browser_list, None, - browser_list).then(lambda: None, None, None, - _js=f'() => {{{js}}}').then(chat_clear, None, - [chatbot, hidden_file_path]) + None).then(update_browser_list, None, browser_list).then(chat_clear, None, [chatbot, hidden_file_path]) date2.change(update_app_global_para, [date1, date2], - None).then(update_browser_list, None, - browser_list).then(lambda: None, None, None, - _js=f'() => {{{js}}}').then(chat_clear, None, - [chatbot, hidden_file_path]) - - demo.load(update_app_global_para, [date1, date2], None).then(refresh_date, None, [date1, date2]).then( - update_browser_list, None, browser_list).then(lambda: None, None, None, - _js=f'() => {{{js}}}').then(chat_clear, None, - [chatbot, hidden_file_path]) + None).then(update_browser_list, None, browser_list).then(chat_clear, None, [chatbot, hidden_file_path]) + + demo.load(update_app_global_para, [date1, date2], + None).then(refresh_date, None, + [date1, date2]).then(update_browser_list, None, + browser_list).then(chat_clear, None, [chatbot, hidden_file_path]) demo.queue().launch(server_name=server_config.server.server_host, server_port=server_config.server.workstation_port) diff --git a/requirements.txt b/requirements.txt index 5982a60..85c3b9f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ anyio>=3.7.1 beautifulsoup4 dashscope>=1.11.0 -docx2txt +eval_type_backport fastapi>=0.103.1 html2text jieba @@ -13,9 +13,12 @@ numpy openai pandas pdfminer-six +pdfplumber pillow pydantic>=2.3.0 +python-docx python-pptx +rank_bm25 seaborn sympy tiktoken diff --git a/run_server.py b/run_server.py index 289e853..ddcaace 100644 --- a/run_server.py +++ b/run_server.py @@ -89,15 +89,15 @@ def main(): server_config = update_config(server_config, args, server_config_path) os.makedirs(server_config.path.work_space_root, exist_ok=True) - os.makedirs(server_config.path.database_root, exist_ok=True) os.makedirs(server_config.path.download_root, exist_ok=True) os.makedirs(server_config.path.code_interpreter_ws, exist_ok=True) code_interpreter_work_dir = str(Path(__file__).resolve().parent / server_config.path.code_interpreter_ws) + + # TODO: Remove these two hacky code interpreter env vars. os.environ['M6_CODE_INTERPRETER_WORK_DIR'] = code_interpreter_work_dir - from qwen_agent.log import logger - from qwen_agent.utils.utils import get_local_ip + from qwen_agent.utils.utils import append_signal_handler, get_local_ip, logger logger.info(server_config) if args.server_host == '0.0.0.0': @@ -109,14 +109,20 @@ def main(): servers = { 'database': - subprocess.Popen([sys.executable, - os.path.join(os.getcwd(), 'qwen_server/database_server.py')]), + subprocess.Popen([ + sys.executable, + os.path.join(os.getcwd(), 'qwen_server/database_server.py'), + ]), 'workstation': - subprocess.Popen([sys.executable, - os.path.join(os.getcwd(), 'qwen_server/workstation_server.py')]), + subprocess.Popen([ + sys.executable, + os.path.join(os.getcwd(), 'qwen_server/workstation_server.py'), + ]), 'assistant': - subprocess.Popen([sys.executable, - os.path.join(os.getcwd(), 'qwen_server/assistant_server.py')]), + subprocess.Popen([ + sys.executable, + os.path.join(os.getcwd(), 'qwen_server/assistant_server.py'), + ]), } def signal_handler(sig_num, _frame): @@ -127,8 +133,8 @@ def signal_handler(sig_num, _frame): if sig_num == signal.SIGINT: raise KeyboardInterrupt() - signal.signal(signal.SIGINT, signal_handler) - signal.signal(signal.SIGTERM, signal_handler) + append_signal_handler(signal.SIGINT, signal_handler) + append_signal_handler(signal.SIGTERM, signal_handler) for p in list(servers.values()): p.wait() diff --git a/tests/agents/test_doc_qa.py b/tests/agents/test_doc_qa.py index 60f3a78..fb54333 100644 --- a/tests/agents/test_doc_qa.py +++ b/tests/agents/test_doc_qa.py @@ -1,9 +1,9 @@ -from qwen_agent.agents import DocQAAgent +from qwen_agent.agents.doc_qa import BasicDocQA def test_doc_qa(): llm_cfg = {'model': 'qwen-max', 'api_key': '', 'model_server': 'dashscope'} - agent = DocQAAgent(llm=llm_cfg) + agent = BasicDocQA(llm=llm_cfg) messages = [{ 'role': 'user', 'content': [{ diff --git a/tests/agents/test_router.py b/tests/agents/test_router.py index c3e12de..343d17a 100644 --- a/tests/agents/test_router.py +++ b/tests/agents/test_router.py @@ -5,26 +5,21 @@ def test_router(): llm_cfg = {'model': 'qwen-max'} llm_cfg_vl = {'model': 'qwen-vl-max'} - tools = ['image_gen', 'amap_weather'] + tools = ['amap_weather'] - # define a vl agent - bot_vl = Assistant(llm=llm_cfg_vl) + # Define a vl agent + bot_vl = Assistant(llm=llm_cfg_vl, name='多模态助手', description='可以理解图像内容。') - # define a tool agent - bot_tool = Assistant(llm=llm_cfg, function_list=tools) + # Define a tool agent + bot_tool = Assistant( + llm=llm_cfg, + name='天气预报助手', + description='可以查询天气', + function_list=tools, + ) # define a router (Simultaneously serving as a text agent) - bot = Router(llm=llm_cfg, - agents={ - 'vl': { - 'obj': bot_vl, - 'desc': '多模态助手,可以理解图像内容。' - }, - 'tool': { - 'obj': bot_tool, - 'desc': '工具助手,可以使用天气查询工具和画图工具来解决问题' - } - }) + bot = Router(llm=llm_cfg, agents=[bot_vl, bot_tool]) messages = [ Message( 'user', diff --git a/tests/examples/test_examples.py b/tests/examples/test_examples.py index ada8230..d1b520a 100644 --- a/tests/examples/test_examples.py +++ b/tests/examples/test_examples.py @@ -12,7 +12,7 @@ from examples.assistant_growing_girl import test as assistant_growing_girl # noqa from examples.assistant_weather_bot import test as assistant_weather_bot # noqa from examples.function_calling import test as function_calling # noqa -from examples.gpt_mentions import test as gpt_mentions # noqa +# from examples.gpt_mentions import test as gpt_mentions # noqa from examples.group_chat_chess import test as group_chat_chess # noqa from examples.group_chat_demo import test as group_chat_demo # noqa from examples.llm_riddles import test as llm_riddles # noqa @@ -67,10 +67,11 @@ def test_function_calling(): function_calling() -@pytest.mark.parametrize('history', ['你能做什么?']) -@pytest.mark.parametrize('chosen_plug', ['code_interpreter', 'doc_qa', 'assistant']) -def test_gpt_mentions(history, chosen_plug): - gpt_mentions(history=history, chosen_plug=chosen_plug) +# @pytest.mark.parametrize('history', ['你能做什么?']) +# @pytest.mark.parametrize('chosen_plug', +# ['code_interpreter', 'doc_qa', 'assistant']) +# def test_gpt_mentions(history, chosen_plug): +# gpt_mentions(history=history, chosen_plug=chosen_plug) @pytest.mark.parametrize( diff --git a/tests/memory/test_memory.py b/tests/memory/test_memory.py index 0671c03..ad4d273 100644 --- a/tests/memory/test_memory.py +++ b/tests/memory/test_memory.py @@ -16,14 +16,18 @@ def test_memory(): mem = Memory(llm=llm_cfg) messages = [ Message('user', [ - ContentItem(text='总结'), - ContentItem(file='https://github.com/QwenLM/Qwen-Agent'), + ContentItem(text='女孩成长历程'), ContentItem(file=str(Path(__file__).resolve().parent.parent.parent / 'examples/resource/growing_girl.pdf')) ]) ] - *_, last = mem.run(messages) + *_, last = mem.run(messages, max_ref_token=4000, parser_page_size=500, ignore_cache=True) + print(last) assert isinstance(last[-1].content, str) assert len(last[-1].content) > 0 res = json5.loads(last[-1].content) assert isinstance(res, list) + + +if __name__ == '__main__': + test_memory() diff --git a/tests/qwen_server/test_database_server.py b/tests/qwen_server/test_database_server.py index 10b63ce..ed074d5 100644 --- a/tests/qwen_server/test_database_server.py +++ b/tests/qwen_server/test_database_server.py @@ -3,7 +3,7 @@ import shutil from pathlib import Path -from qwen_agent.utils.utils import hash_sha256 +from qwen_agent.utils.utils import get_basename_from_url, hash_sha256 from qwen_server.schema import GlobalConfig from qwen_server.utils import read_meta_data_by_condition @@ -16,7 +16,6 @@ def test_database_server(): if os.path.exists('workspace'): shutil.rmtree('workspace') os.makedirs(server_config.path.work_space_root) - os.makedirs(server_config.path.database_root) os.makedirs(server_config.path.download_root) os.makedirs(server_config.path.code_interpreter_ws) @@ -31,7 +30,8 @@ def test_database_server(): } cache_page(**data) - new_url = os.path.join(server_config.path.download_root, hash_sha256(data['url'])) + new_url = os.path.join(server_config.path.download_root, hash_sha256(data['url']), + get_basename_from_url(data['url'])) assert os.path.exists(new_url) meta_file = os.path.join(server_config.path.work_space_root, 'meta_data.jsonl') diff --git a/tests/tools/test_doc_parser.py b/tests/tools/test_doc_parser.py new file mode 100644 index 0000000..0f9f2a1 --- /dev/null +++ b/tests/tools/test_doc_parser.py @@ -0,0 +1,12 @@ +from qwen_agent.tools import DocParser + + +def test_doc_parser(): + tool = DocParser() + res = tool.call({'url': 'https://qianwen-res.oss-cn-beijing.aliyuncs.com/QWEN_TECHNICAL_REPORT.pdf'}, + ignore_cache=True) + print(res) + + +if __name__ == '__main__': + test_doc_parser() diff --git a/tests/tools/test_similarity_search.py b/tests/tools/test_similarity_search.py new file mode 100644 index 0000000..49baa53 --- /dev/null +++ b/tests/tools/test_similarity_search.py @@ -0,0 +1,20 @@ +from qwen_agent.tools import SimilaritySearch + + +def test_similarity_search(): + tool = SimilaritySearch() + doc = ('主要序列转导模型基于复杂的循环或卷积神经网络,包括编码器和解码器。性能最好的模型还通过注意力机制连接编码器和解码器。' + '我们提出了一种新的简单网络架构——Transformer,它完全基于注意力机制,完全不需要递归和卷积。对两个机器翻译任务的实验表明,' + '这些模型在质量上非常出色,同时具有更高的并行性,并且需要的训练时间显着减少。' + '我们的模型在 WMT 2014 英语到德语翻译任务中取得了 28.4 BLEU,比现有的最佳结果(包括集成)提高了 2 BLEU 以上。' + '在 WMT 2014 英法翻译任务中,我们的模型在 8 个 GPU 上训练 3.5 天后,建立了新的单模型最先进 BLEU 分数 41.0,' + '这只是最佳模型训练成本的一小部分文献中的模型。') + res = tool.call({'query': '这个模型要训练多久?'}, docs=[doc]) + print(res) + + res = tool.call({'query': '这个模型要训练多久?'}, docs=[doc.split('。')]) + print(res) + + +if __name__ == '__main__': + test_similarity_search() diff --git a/tests/tools/test_simple_doc_parser.py b/tests/tools/test_simple_doc_parser.py new file mode 100644 index 0000000..ab288e9 --- /dev/null +++ b/tests/tools/test_simple_doc_parser.py @@ -0,0 +1,11 @@ +from qwen_agent.tools import SimpleDocParser + + +def test_simple_doc_parser(): + tool = SimpleDocParser() + res = tool.call({'url': 'https://qianwen-res.oss-cn-beijing.aliyuncs.com/QWEN_TECHNICAL_REPORT.pdf'}) + print(res) + + +if __name__ == '__main__': + test_simple_doc_parser() diff --git a/tests/tools/test_tools.py b/tests/tools/test_tools.py index a6b5827..bc9c1e4 100644 --- a/tests/tools/test_tools.py +++ b/tests/tools/test_tools.py @@ -2,7 +2,7 @@ import pytest -from qwen_agent.tools import AmapWeather, CodeInterpreter, DocParser, ImageGen, Retrieval, SimilaritySearch, Storage +from qwen_agent.tools import AmapWeather, CodeInterpreter, ImageGen, Retrieval, Storage # [NOTE] 不带“市”会出错 @@ -17,11 +17,6 @@ def test_code_interpreter(): tool.call("print('hello qwen')") -def test_doc_parser(): - tool = DocParser() - tool.call({'url': 'https://qianwen-res.oss-cn-beijing.aliyuncs.com/QWEN_TECHNICAL_REPORT.pdf'}) - - def test_image_gen(): tool = ImageGen() tool.call({'prompt': 'a dog'}) @@ -35,17 +30,6 @@ def test_retrieval(): }) -def test_similarity_search(): - tool = SimilaritySearch() - doc = ('主要序列转导模型基于复杂的循环或卷积神经网络,包括编码器和解码器。性能最好的模型还通过注意力机制连接编码器和解码器。' - '我们提出了一种新的简单网络架构——Transformer,它完全基于注意力机制,完全不需要递归和卷积。对两个机器翻译任务的实验表明,' - '这些模型在质量上非常出色,同时具有更高的并行性,并且需要的训练时间显着减少。' - '我们的模型在 WMT 2014 英语到德语翻译任务中取得了 28.4 BLEU,比现有的最佳结果(包括集成)提高了 2 BLEU 以上。' - '在 WMT 2014 英法翻译任务中,我们的模型在 8 个 GPU 上训练 3.5 天后,建立了新的单模型最先进 BLEU 分数 41.0,' - '这只是最佳模型训练成本的一小部分文献中的模型。') - tool.call({'query': '这个模型要训练多久?'}, doc=doc) - - @pytest.mark.parametrize('operate', ['put']) def test_storage_put(operate): tool = Storage()