Files
raptor-trading/invest-python-master/examples/strategies/param-search.ipynb

1547 lines
174 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Образец работы стратегии\n",
"В этом файле представлен образец простешей стратегии.\n",
"\n",
"Формат самого файла - notebook, записная книжка. Это специальный формат файлов, в котором каждый кусочек кода можно исполнять отдельно.\n",
"\n",
"Для того, чтобы исполнить ячейку - нужно нажать Shift+Enter. После одиночного нажатия активной ячейкой ставится следующая. Для работы достаточно поочередно понажимать эту комбинацию до последней ячейки, где и запустится основная программа."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Добавляем директорию основной папки в PATH\n",
"## Посмотрите как это можно пофиксить. Возможно на проде такого не будет\n",
"Здесь Python понимает, что ему нужно обращать внимание на главную папку с библиотекой. Ничего дополнительно нажимать не надо, только исполнить ячейку."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"import os\n",
"\n",
"path = os.getcwd()\n",
"repo_folder = os.path.dirname(os.path.dirname(path))\n",
"sys.path.append(repo_folder)\n",
"!set PATH=%PATH%;%APPDATA%\\Python\\Scripts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Загружаем все необходимые библиотеки для запуска скрипта\n",
"Здесь загружаются основные библиотеки для работы программы.\n",
"Загрузки представлены в виде \"from ... import ...\". Это значит, что из библиотеки decimal (from decimal) мы загружаем функционад Decimal (import Decimal). Это может как отдельные спецфункции, так и сложные алгоритмы."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"pycharm": {
"is_executing": true
}
},
"outputs": [],
"source": [
"import logging\n",
"\n",
"from t_tech.invest.mock_services import MockedClient\n",
"from decimal import Decimal\n",
"from t_tech.invest.strategies.moving_average.strategy_settings import (\n",
" MovingAverageStrategySettings,\n",
")\n",
"from t_tech.invest import CandleInterval, MoneyValue\n",
"from t_tech.invest.strategies.moving_average.signal_executor import (\n",
" MovingAverageSignalExecutor,\n",
")\n",
"from t_tech.invest.strategies.moving_average.supervisor import (\n",
" MovingAverageStrategySupervisor,\n",
")\n",
"from t_tech.invest.strategies.moving_average.strategy_state import (\n",
" MovingAverageStrategyState,\n",
")\n",
"from t_tech.invest.strategies.moving_average.strategy import MovingAverageStrategy\n",
"from t_tech.invest.strategies.moving_average.trader import MovingAverageStrategyTrader\n",
"from datetime import timedelta, datetime, timezone\n",
"from t_tech.invest.typedefs import ShareId, AccountId\n",
"from t_tech.invest.strategies.base.account_manager import AccountManager\n",
"from t_tech.invest.strategies.moving_average.plotter import (\n",
" MovingAverageStrategyPlotter,\n",
")\n",
"\n",
"\n",
"logging.basicConfig(format=\"%(asctime)s %(levelname)s:%(message)s\", level=logging.INFO)\n",
"logger = logging.getLogger(__name__)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Загружаем токен\n",
"Здесь мы указываем токен для работы с программой.\n",
"Токен - этой такой ключ-идентификатор, который позволяет программе понять что вы это вы.\n",
"Инструкция здесь: https://www.tbank.ru/invest/open-api/\n",
"\n",
"Для работы нам нужен sandbox токен.\n",
"\n",
"Sandbox - это такая внутрення виртуальная площадка, на которой ценовые и потоковые данные полностью совпадают с реальным рынком, но портфель и заявки могут быть заданы самим пользователем. Эдакая песочница (что и отражено в названии) для того, чтобы испытать интерфейс и инфраструктуру без угрозы настоящему аккаунту с настоящими деньгами.\n",
"\n",
"При получении sandbox токена вы не рискуете ничем, кроме виртуальных денег на вашем счете :)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"pycharm": {
"is_executing": true
}
},
"outputs": [],
"source": [
"# sandbox token\n",
"token = \"\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Раздел с настройками\n",
"Здесь вводятся основные настройки стратегии, по которой будут определяться сигналы.\n",
"\n",
"Стратегия основана на том, что цена время от времени возвращается к своей длинной средней. Если в это время зайти по направлению этой средней, то можно совершить достаточно эффективную сделку с точки зрения прибыль/убытка.\n",
"\n",
"Для запуска стратегии необходимо задать следующие параметры:\n",
"\n",
" - long_ma - количество периодов для расчета длинной скользяшки\n",
" - short_ma - количество периодов для расчета короткой скользяшки\n",
" - std_period - количество периодов для расчета волатильности инструмента\n",
" - timeframe - выбранная размерность свечей для расчета\n",
" \n",
" В переменную stocks записываются акции, на которых будет тестироваться стратегия."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"long_ma = 240\n",
"short_ma = 60\n",
"std_period = 30\n",
"timaframe = CandleInterval.CANDLE_INTERVAL_1_MIN\n",
"n, m, s, tf = long_ma, short_ma, std_period, timaframe\n",
"period = 1 # сюда добавить переход от tf к числу или отрекдактировать код снизу\n",
"\n",
"stocks = {\n",
" \"AAPL\": {\"figi\": \"BBG000B9XRY4\"},\n",
" \"MSFT\": {\"figi\": \"BBG000BPH459\"},\n",
" # \"GOOG\":{\"figi\":\"BBG009S3NB30\"}, гугл не работает\n",
" \"AMZN\": {\"figi\": \"BBG000BVPV84\"},\n",
" \"TSLA\": {\"figi\": \"BBG000N9MNX3\"},\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Блок с определением дат для бектестинга\n",
"Здесь задаются временные пределы для даты, на котором будет производиться бектестинг (проверка на исторических данных).\n",
"\n",
"По умолчанию задаются как зависимости от количества периодов."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def start_datetime() -> datetime:\n",
" return datetime(year=2022, month=2, day=1, hour=17, tzinfo=timezone.utc)\n",
"\n",
"\n",
"# тут надо проставлять сдвиг даты в зависимости от выбранного тф\n",
"# что-то вроде CandleInterval.CANDLE_INTERVAL_1_MIN.seconds * (m+n) для real_market_data_test_from\n",
"real_market_data_test_from = start_datetime() - timedelta(\n",
" minutes=(n + m) * 2\n",
") # с какой даты начинают считаться индикаторы\n",
"real_market_data_test_start = (\n",
" start_datetime()\n",
") # с какой даты начинает работать стратегия\n",
"real_market_data_test_end = start_datetime() + timedelta(\n",
" days=2\n",
") # когда все заканчивается"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Запуск бектестинга\n",
"В этой ячейке основной исполняемый код для проверки стратегии. В конце определяется инструмент, для которого наилучшим образом подходит данная стратегия\n",
"\n",
"По завершении стратегии можно вызывать картинку с графиком цены акции и сделками (если были).\n",
"\n",
"## Обеспечить такой выбор через обращение к полю events в виде events(best_stock)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-02-01 20:00:00,000 INFO:5f7a771f14f01b5b76ac68ea714f344a GetCandles\n",
"2022-02-01 20:00:00,000 INFO:5635e1dbaa249a58e111c29dae684006 GetCandles\n",
"2022-02-01 20:00:00,000 INFO:fb56d92d981e55d59805908a21abce24 GetCandles\n",
"2022-02-01 20:00:00,000 INFO:Loading candles for period 5:00:00 from 2022-02-01 17:00:00+00:00\n",
"2022-02-01 20:00:00,000 INFO:Marginal trade is active\n",
"2022-02-01 20:00:00,000 INFO:Got enough data for strategy\n",
"2022-02-01 20:00:00,000 INFO:Trade 0\n",
"2022-02-01 20:00:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:00:00,000 INFO:Refreshing data\n",
"2022-02-01 20:00:00,000 INFO:Data refreshed\n",
"2022-02-01 20:00:00,000 INFO:Strategy predict\n",
"2022-02-01 20:00:00,000 INFO:Got signals [OpenLongMarketOrder(lots=115, direction=<SignalDirection.LONG: 'LONG'>)]\n",
"2022-02-01 20:00:00,000 INFO:Trying to execute signal OpenLongMarketOrder(lots=115, direction=<SignalDirection.LONG: 'LONG'>)\n",
"2022-02-01 20:00:00,000 WARNING:Operation: OrderDirection.ORDER_DIRECTION_BUY, -20026.10000000\n",
"2022-02-01 20:00:00,000 INFO:Signal executed OpenLongMarketOrder(lots=115, direction=<SignalDirection.LONG: 'LONG'>)\n",
"2022-02-01 20:00:00,000 INFO:Trade 1\n",
"2022-02-01 20:00:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:00:00,000 INFO:Refreshing data\n",
"2022-02-01 20:01:00,000 INFO:Data refreshed\n",
"2022-02-01 20:01:00,000 INFO:Strategy predict\n",
"2022-02-01 20:01:00,000 INFO:Trade 2\n",
"2022-02-01 20:01:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:01:00,000 INFO:Refreshing data\n",
"2022-02-01 20:02:00,000 INFO:Data refreshed\n",
"2022-02-01 20:02:00,000 INFO:Strategy predict\n",
"2022-02-01 20:02:00,000 INFO:Trade 3\n",
"2022-02-01 20:02:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:02:00,000 INFO:Refreshing data\n",
"2022-02-01 20:03:00,000 INFO:Data refreshed\n",
"2022-02-01 20:03:00,000 INFO:Strategy predict\n",
"2022-02-01 20:03:00,000 INFO:Trade 4\n",
"2022-02-01 20:03:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:03:00,000 INFO:Refreshing data\n",
"2022-02-01 20:04:00,000 INFO:Data refreshed\n",
"2022-02-01 20:04:00,000 INFO:Strategy predict\n",
"2022-02-01 20:04:00,000 INFO:Trade 5\n",
"2022-02-01 20:04:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:04:00,000 INFO:Refreshing data\n",
"2022-02-01 20:05:00,000 INFO:Data refreshed\n",
"2022-02-01 20:05:00,000 INFO:Strategy predict\n",
"2022-02-01 20:05:00,000 INFO:Trade 6\n",
"2022-02-01 20:05:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:05:00,000 INFO:Refreshing data\n",
"2022-02-01 20:06:00,000 INFO:Data refreshed\n",
"2022-02-01 20:06:00,000 INFO:Strategy predict\n",
"2022-02-01 20:06:00,000 INFO:Trade 7\n",
"2022-02-01 20:06:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:06:00,000 INFO:Refreshing data\n",
"2022-02-01 20:07:00,000 INFO:Data refreshed\n",
"2022-02-01 20:07:00,000 INFO:Strategy predict\n",
"2022-02-01 20:07:00,000 INFO:Trade 8\n",
"2022-02-01 20:07:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:07:00,000 INFO:Refreshing data\n",
"2022-02-01 20:08:00,000 INFO:Data refreshed\n",
"2022-02-01 20:08:00,000 INFO:Strategy predict\n",
"2022-02-01 20:08:00,000 INFO:Trade 9\n",
"2022-02-01 20:08:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:08:00,000 INFO:Refreshing data\n",
"2022-02-01 20:09:00,000 INFO:Data refreshed\n",
"2022-02-01 20:09:00,000 INFO:Strategy predict\n",
"2022-02-01 20:09:00,000 INFO:Trade 10\n",
"2022-02-01 20:09:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:09:00,000 INFO:Refreshing data\n",
"2022-02-01 20:10:00,000 INFO:Data refreshed\n",
"2022-02-01 20:10:00,000 INFO:Strategy predict\n",
"2022-02-01 20:10:00,000 INFO:Trade 11\n",
"2022-02-01 20:10:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:10:00,000 INFO:Refreshing data\n",
"2022-02-01 20:11:00,000 INFO:Data refreshed\n",
"2022-02-01 20:11:00,000 INFO:Strategy predict\n",
"2022-02-01 20:11:00,000 INFO:Trade 12\n",
"2022-02-01 20:11:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:11:00,000 INFO:Refreshing data\n",
"2022-02-01 20:12:00,000 INFO:Data refreshed\n",
"2022-02-01 20:12:00,000 INFO:Strategy predict\n",
"2022-02-01 20:12:00,000 INFO:Trade 13\n",
"2022-02-01 20:12:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:12:00,000 INFO:Refreshing data\n",
"2022-02-01 20:13:00,000 INFO:Data refreshed\n",
"2022-02-01 20:13:00,000 INFO:Strategy predict\n",
"2022-02-01 20:13:00,000 INFO:Trade 14\n",
"2022-02-01 20:13:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:13:00,000 INFO:Refreshing data\n",
"2022-02-01 20:14:00,000 INFO:Data refreshed\n",
"2022-02-01 20:14:00,000 INFO:Strategy predict\n",
"2022-02-01 20:14:00,000 INFO:Trade 15\n",
"2022-02-01 20:14:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:14:00,000 INFO:Refreshing data\n",
"2022-02-01 20:15:00,000 INFO:Data refreshed\n",
"2022-02-01 20:15:00,000 INFO:Strategy predict\n",
"2022-02-01 20:15:00,000 INFO:Trade 16\n",
"2022-02-01 20:15:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:15:00,000 INFO:Refreshing data\n",
"2022-02-01 20:16:00,000 INFO:Data refreshed\n",
"2022-02-01 20:16:00,000 INFO:Strategy predict\n",
"2022-02-01 20:16:00,000 INFO:Trade 17\n",
"2022-02-01 20:16:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:16:00,000 INFO:Refreshing data\n",
"2022-02-01 20:17:00,000 INFO:Data refreshed\n",
"2022-02-01 20:17:00,000 INFO:Strategy predict\n",
"2022-02-01 20:17:00,000 INFO:Trade 18\n",
"2022-02-01 20:17:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:17:00,000 INFO:Refreshing data\n",
"2022-02-01 20:18:00,000 INFO:Data refreshed\n",
"2022-02-01 20:18:00,000 INFO:Strategy predict\n",
"2022-02-01 20:18:00,000 INFO:Trade 19\n",
"2022-02-01 20:18:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:18:00,000 INFO:Refreshing data\n",
"2022-02-01 20:19:00,000 INFO:Data refreshed\n",
"2022-02-01 20:19:00,000 INFO:Strategy predict\n",
"2022-02-01 20:19:00,000 INFO:Trade 20\n",
"2022-02-01 20:19:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:19:00,000 INFO:Refreshing data\n",
"2022-02-01 20:20:00,000 INFO:Data refreshed\n",
"2022-02-01 20:20:00,000 INFO:Strategy predict\n",
"2022-02-01 20:20:00,000 INFO:Trade 21\n",
"2022-02-01 20:20:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:20:00,000 INFO:Refreshing data\n",
"2022-02-01 20:21:00,000 INFO:Data refreshed\n",
"2022-02-01 20:21:00,000 INFO:Strategy predict\n",
"2022-02-01 20:21:00,000 INFO:Trade 22\n",
"2022-02-01 20:21:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:21:00,000 INFO:Refreshing data\n",
"2022-02-01 20:22:00,000 INFO:Data refreshed\n",
"2022-02-01 20:22:00,000 INFO:Strategy predict\n",
"2022-02-01 20:22:00,000 INFO:Trade 23\n",
"2022-02-01 20:22:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:22:00,000 INFO:Refreshing data\n",
"2022-02-01 20:23:00,000 INFO:Data refreshed\n",
"2022-02-01 20:23:00,000 INFO:Strategy predict\n",
"2022-02-01 20:23:00,000 INFO:Trade 24\n",
"2022-02-01 20:23:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:23:00,000 INFO:Refreshing data\n",
"2022-02-01 20:24:00,000 INFO:Data refreshed\n",
"2022-02-01 20:24:00,000 INFO:Strategy predict\n",
"2022-02-01 20:24:00,000 INFO:Trade 25\n",
"2022-02-01 20:24:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:24:00,000 INFO:Refreshing data\n",
"2022-02-01 20:25:00,000 INFO:Data refreshed\n",
"2022-02-01 20:25:00,000 INFO:Strategy predict\n",
"2022-02-01 20:25:00,000 INFO:Trade 26\n",
"2022-02-01 20:25:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:25:00,000 INFO:Refreshing data\n",
"2022-02-01 20:26:00,000 INFO:Data refreshed\n",
"2022-02-01 20:26:00,000 INFO:Strategy predict\n",
"2022-02-01 20:26:00,000 INFO:Trade 27\n",
"2022-02-01 20:26:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:26:00,000 INFO:Refreshing data\n",
"2022-02-01 20:27:00,000 INFO:Data refreshed\n",
"2022-02-01 20:27:00,000 INFO:Strategy predict\n",
"2022-02-01 20:27:00,000 INFO:Trade 28\n",
"2022-02-01 20:27:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:27:00,000 INFO:Refreshing data\n",
"2022-02-01 20:28:00,000 INFO:Data refreshed\n",
"2022-02-01 20:28:00,000 INFO:Strategy predict\n",
"2022-02-01 20:28:00,000 INFO:Trade 29\n",
"2022-02-01 20:28:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:28:00,000 INFO:Refreshing data\n",
"2022-02-01 20:29:00,000 INFO:Data refreshed\n",
"2022-02-01 20:29:00,000 INFO:Strategy predict\n",
"2022-02-01 20:29:00,000 INFO:Trade 30\n",
"2022-02-01 20:29:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:29:00,000 INFO:Refreshing data\n",
"2022-02-01 20:30:00,000 INFO:Data refreshed\n",
"2022-02-01 20:30:00,000 INFO:Strategy predict\n",
"2022-02-01 20:30:00,000 INFO:Trade 31\n",
"2022-02-01 20:30:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:30:00,000 INFO:Refreshing data\n",
"2022-02-01 20:31:00,000 INFO:Data refreshed\n",
"2022-02-01 20:31:00,000 INFO:Strategy predict\n",
"2022-02-01 20:31:00,000 INFO:Trade 32\n",
"2022-02-01 20:31:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:31:00,000 INFO:Refreshing data\n",
"2022-02-01 20:32:00,000 INFO:Data refreshed\n",
"2022-02-01 20:32:00,000 INFO:Strategy predict\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-02-01 20:32:00,000 INFO:Trade 33\n",
"2022-02-01 20:32:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:32:00,000 INFO:Refreshing data\n",
"2022-02-01 20:33:00,000 INFO:Data refreshed\n",
"2022-02-01 20:33:00,000 INFO:Strategy predict\n",
"2022-02-01 20:33:00,000 INFO:Trade 34\n",
"2022-02-01 20:33:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:33:00,000 INFO:Refreshing data\n",
"2022-02-01 20:34:00,000 INFO:Data refreshed\n",
"2022-02-01 20:34:00,000 INFO:Strategy predict\n",
"2022-02-01 20:34:00,000 INFO:Trade 35\n",
"2022-02-01 20:34:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:34:00,000 INFO:Refreshing data\n",
"2022-02-01 20:35:00,000 INFO:Data refreshed\n",
"2022-02-01 20:35:00,000 INFO:Strategy predict\n",
"2022-02-01 20:35:00,000 INFO:Trade 36\n",
"2022-02-01 20:35:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:35:00,000 INFO:Refreshing data\n",
"2022-02-01 20:36:00,000 INFO:Data refreshed\n",
"2022-02-01 20:36:00,000 INFO:Strategy predict\n",
"2022-02-01 20:36:00,000 INFO:Trade 37\n",
"2022-02-01 20:36:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:36:00,000 INFO:Refreshing data\n",
"2022-02-01 20:37:00,000 INFO:Data refreshed\n",
"2022-02-01 20:37:00,000 INFO:Strategy predict\n",
"2022-02-01 20:37:00,000 INFO:Trade 38\n",
"2022-02-01 20:37:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:37:00,000 INFO:Refreshing data\n",
"2022-02-01 20:38:00,000 INFO:Data refreshed\n",
"2022-02-01 20:38:00,000 INFO:Strategy predict\n",
"2022-02-01 20:38:00,000 INFO:Trade 39\n",
"2022-02-01 20:38:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:38:00,000 INFO:Refreshing data\n",
"2022-02-01 20:39:00,000 INFO:Data refreshed\n",
"2022-02-01 20:39:00,000 INFO:Strategy predict\n",
"2022-02-01 20:39:00,000 INFO:Trade 40\n",
"2022-02-01 20:39:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:39:00,000 INFO:Refreshing data\n",
"2022-02-01 20:40:00,000 INFO:Data refreshed\n",
"2022-02-01 20:40:00,000 INFO:Strategy predict\n",
"2022-02-01 20:40:00,000 INFO:Trade 41\n",
"2022-02-01 20:40:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:40:00,000 INFO:Refreshing data\n",
"2022-02-01 20:41:00,000 INFO:Data refreshed\n",
"2022-02-01 20:41:00,000 INFO:Strategy predict\n",
"2022-02-01 20:41:00,000 INFO:Trade 42\n",
"2022-02-01 20:41:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:41:00,000 INFO:Refreshing data\n",
"2022-02-01 20:42:00,000 INFO:Data refreshed\n",
"2022-02-01 20:42:00,000 INFO:Strategy predict\n",
"2022-02-01 20:42:00,000 INFO:Trade 43\n",
"2022-02-01 20:42:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:42:00,000 INFO:Refreshing data\n",
"2022-02-01 20:43:00,000 INFO:Data refreshed\n",
"2022-02-01 20:43:00,000 INFO:Strategy predict\n",
"2022-02-01 20:43:00,000 INFO:Trade 44\n",
"2022-02-01 20:43:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:43:00,000 INFO:Refreshing data\n",
"2022-02-01 20:44:00,000 INFO:Data refreshed\n",
"2022-02-01 20:44:00,000 INFO:Strategy predict\n",
"2022-02-01 20:44:00,000 INFO:Trade 45\n",
"2022-02-01 20:44:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:44:00,000 INFO:Refreshing data\n",
"2022-02-01 20:45:00,000 INFO:Data refreshed\n",
"2022-02-01 20:45:00,000 INFO:Strategy predict\n",
"2022-02-01 20:45:00,000 INFO:Trade 46\n",
"2022-02-01 20:45:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:45:00,000 INFO:Refreshing data\n",
"2022-02-01 20:46:00,000 INFO:Data refreshed\n",
"2022-02-01 20:46:00,000 INFO:Strategy predict\n",
"2022-02-01 20:46:00,000 INFO:Trade 47\n",
"2022-02-01 20:46:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:46:00,000 INFO:Refreshing data\n",
"2022-02-01 20:47:00,000 INFO:Data refreshed\n",
"2022-02-01 20:47:00,000 INFO:Strategy predict\n",
"2022-02-01 20:47:00,000 INFO:Trade 48\n",
"2022-02-01 20:47:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:47:00,000 INFO:Refreshing data\n",
"2022-02-01 20:48:00,000 INFO:Data refreshed\n",
"2022-02-01 20:48:00,000 INFO:Strategy predict\n",
"2022-02-01 20:48:00,000 INFO:Trade 49\n",
"2022-02-01 20:48:00,000 INFO:Balance: 24.59000000\n",
"2022-02-01 20:48:00,000 INFO:Refreshing data\n",
"2022-02-01 20:49:00,000 INFO:Data refreshed\n",
"2022-02-01 20:49:00,000 INFO:Strategy predict\n",
"2022-02-01 20:00:00,000 INFO:cb36fb2b70b07bfe4e18102e815e5251 GetCandles\n",
"2022-02-01 20:00:00,000 INFO:de985340a1531dc91e108ff0eff51feb GetCandles\n",
"2022-02-01 20:00:00,000 INFO:213c3c87452019436e51a8cdafd1b00e GetCandles\n",
"2022-02-01 20:00:00,000 INFO:Loading candles for period 5:00:00 from 2022-02-01 17:00:00+00:00\n",
"2022-02-01 20:00:00,000 INFO:Marginal trade is active\n",
"2022-02-01 20:00:00,000 INFO:Got enough data for strategy\n",
"2022-02-01 20:00:00,000 INFO:Trade 0\n",
"2022-02-01 20:00:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:00:00,000 INFO:Refreshing data\n",
"2022-02-01 20:00:00,000 INFO:Data refreshed\n",
"2022-02-01 20:00:00,000 INFO:Strategy predict\n",
"2022-02-01 20:00:00,000 INFO:Trade try complete\n",
"2022-02-01 20:00:00,000 INFO:Trade 1\n",
"2022-02-01 20:00:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:00:00,000 INFO:Refreshing data\n",
"2022-02-01 20:01:00,000 INFO:Data refreshed\n",
"2022-02-01 20:01:00,000 INFO:Strategy predict\n",
"2022-02-01 20:01:00,000 INFO:Trade try complete\n",
"2022-02-01 20:01:00,000 INFO:Trade 2\n",
"2022-02-01 20:01:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:01:00,000 INFO:Refreshing data\n",
"2022-02-01 20:02:00,000 INFO:Data refreshed\n",
"2022-02-01 20:02:00,000 INFO:Strategy predict\n",
"2022-02-01 20:02:00,000 INFO:Trade try complete\n",
"2022-02-01 20:02:00,000 INFO:Trade 3\n",
"2022-02-01 20:02:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:02:00,000 INFO:Refreshing data\n",
"2022-02-01 20:03:00,000 INFO:Data refreshed\n",
"2022-02-01 20:03:00,000 INFO:Strategy predict\n",
"2022-02-01 20:03:00,000 INFO:Trade try complete\n",
"2022-02-01 20:03:00,000 INFO:Trade 4\n",
"2022-02-01 20:03:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:03:00,000 INFO:Refreshing data\n",
"2022-02-01 20:04:00,000 INFO:Data refreshed\n",
"2022-02-01 20:04:00,000 INFO:Strategy predict\n",
"2022-02-01 20:04:00,000 INFO:Trade try complete\n",
"2022-02-01 20:04:00,000 INFO:Trade 5\n",
"2022-02-01 20:04:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:04:00,000 INFO:Refreshing data\n",
"2022-02-01 20:05:00,000 INFO:Data refreshed\n",
"2022-02-01 20:05:00,000 INFO:Strategy predict\n",
"2022-02-01 20:05:00,000 INFO:Trade try complete\n",
"2022-02-01 20:05:00,000 INFO:Trade 6\n",
"2022-02-01 20:05:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:05:00,000 INFO:Refreshing data\n",
"2022-02-01 20:06:00,000 INFO:Data refreshed\n",
"2022-02-01 20:06:00,000 INFO:Strategy predict\n",
"2022-02-01 20:06:00,000 INFO:Trade try complete\n",
"2022-02-01 20:06:00,000 INFO:Trade 7\n",
"2022-02-01 20:06:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:06:00,000 INFO:Refreshing data\n",
"2022-02-01 20:07:00,000 INFO:Data refreshed\n",
"2022-02-01 20:07:00,000 INFO:Strategy predict\n",
"2022-02-01 20:07:00,000 INFO:Trade try complete\n",
"2022-02-01 20:07:00,000 INFO:Trade 8\n",
"2022-02-01 20:07:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:07:00,000 INFO:Refreshing data\n",
"2022-02-01 20:08:00,000 INFO:Data refreshed\n",
"2022-02-01 20:08:00,000 INFO:Strategy predict\n",
"2022-02-01 20:08:00,000 INFO:Trade try complete\n",
"2022-02-01 20:08:00,000 INFO:Trade 9\n",
"2022-02-01 20:08:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:08:00,000 INFO:Refreshing data\n",
"2022-02-01 20:09:00,000 INFO:Data refreshed\n",
"2022-02-01 20:09:00,000 INFO:Strategy predict\n",
"2022-02-01 20:09:00,000 INFO:Trade try complete\n",
"2022-02-01 20:09:00,000 INFO:Trade 10\n",
"2022-02-01 20:09:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:09:00,000 INFO:Refreshing data\n",
"2022-02-01 20:10:00,000 INFO:Data refreshed\n",
"2022-02-01 20:10:00,000 INFO:Strategy predict\n",
"2022-02-01 20:10:00,000 INFO:Trade try complete\n",
"2022-02-01 20:10:00,000 INFO:Trade 11\n",
"2022-02-01 20:10:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:10:00,000 INFO:Refreshing data\n",
"2022-02-01 20:11:00,000 INFO:Data refreshed\n",
"2022-02-01 20:11:00,000 INFO:Strategy predict\n",
"2022-02-01 20:11:00,000 INFO:Trade try complete\n",
"2022-02-01 20:11:00,000 INFO:Trade 12\n",
"2022-02-01 20:11:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:11:00,000 INFO:Refreshing data\n",
"2022-02-01 20:12:00,000 INFO:Data refreshed\n",
"2022-02-01 20:12:00,000 INFO:Strategy predict\n",
"2022-02-01 20:12:00,000 INFO:Trade try complete\n",
"2022-02-01 20:12:00,000 INFO:Trade 13\n",
"2022-02-01 20:12:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:12:00,000 INFO:Refreshing data\n",
"2022-02-01 20:13:00,000 INFO:Data refreshed\n",
"2022-02-01 20:13:00,000 INFO:Strategy predict\n",
"2022-02-01 20:13:00,000 INFO:Trade try complete\n",
"2022-02-01 20:13:00,000 INFO:Trade 14\n",
"2022-02-01 20:13:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:13:00,000 INFO:Refreshing data\n",
"2022-02-01 20:14:00,000 INFO:Data refreshed\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-02-01 20:14:00,000 INFO:Strategy predict\n",
"2022-02-01 20:14:00,000 INFO:Trade try complete\n",
"2022-02-01 20:14:00,000 INFO:Trade 15\n",
"2022-02-01 20:14:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:14:00,000 INFO:Refreshing data\n",
"2022-02-01 20:15:00,000 INFO:Data refreshed\n",
"2022-02-01 20:15:00,000 INFO:Strategy predict\n",
"2022-02-01 20:15:00,000 INFO:Trade try complete\n",
"2022-02-01 20:15:00,000 INFO:Trade 16\n",
"2022-02-01 20:15:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:15:00,000 INFO:Refreshing data\n",
"2022-02-01 20:16:00,000 INFO:Data refreshed\n",
"2022-02-01 20:16:00,000 INFO:Strategy predict\n",
"2022-02-01 20:16:00,000 INFO:Trade try complete\n",
"2022-02-01 20:16:00,000 INFO:Trade 17\n",
"2022-02-01 20:16:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:16:00,000 INFO:Refreshing data\n",
"2022-02-01 20:17:00,000 INFO:Data refreshed\n",
"2022-02-01 20:17:00,000 INFO:Strategy predict\n",
"2022-02-01 20:17:00,000 INFO:Trade try complete\n",
"2022-02-01 20:17:00,000 INFO:Trade 18\n",
"2022-02-01 20:17:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:17:00,000 INFO:Refreshing data\n",
"2022-02-01 20:18:00,000 INFO:Data refreshed\n",
"2022-02-01 20:18:00,000 INFO:Strategy predict\n",
"2022-02-01 20:18:00,000 INFO:Trade try complete\n",
"2022-02-01 20:18:00,000 INFO:Trade 19\n",
"2022-02-01 20:18:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:18:00,000 INFO:Refreshing data\n",
"2022-02-01 20:19:00,000 INFO:Data refreshed\n",
"2022-02-01 20:19:00,000 INFO:Strategy predict\n",
"2022-02-01 20:19:00,000 INFO:Trade try complete\n",
"2022-02-01 20:19:00,000 INFO:Trade 20\n",
"2022-02-01 20:19:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:19:00,000 INFO:Refreshing data\n",
"2022-02-01 20:20:00,000 INFO:Data refreshed\n",
"2022-02-01 20:20:00,000 INFO:Strategy predict\n",
"2022-02-01 20:20:00,000 INFO:Trade try complete\n",
"2022-02-01 20:20:00,000 INFO:Trade 21\n",
"2022-02-01 20:20:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:20:00,000 INFO:Refreshing data\n",
"2022-02-01 20:21:00,000 INFO:Data refreshed\n",
"2022-02-01 20:21:00,000 INFO:Strategy predict\n",
"2022-02-01 20:21:00,000 INFO:Trade try complete\n",
"2022-02-01 20:21:00,000 INFO:Trade 22\n",
"2022-02-01 20:21:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:21:00,000 INFO:Refreshing data\n",
"2022-02-01 20:22:00,000 INFO:Data refreshed\n",
"2022-02-01 20:22:00,000 INFO:Strategy predict\n",
"2022-02-01 20:22:00,000 INFO:Trade try complete\n",
"2022-02-01 20:22:00,000 INFO:Trade 23\n",
"2022-02-01 20:22:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:22:00,000 INFO:Refreshing data\n",
"2022-02-01 20:23:00,000 INFO:Data refreshed\n",
"2022-02-01 20:23:00,000 INFO:Strategy predict\n",
"2022-02-01 20:23:00,000 INFO:Trade try complete\n",
"2022-02-01 20:23:00,000 INFO:Trade 24\n",
"2022-02-01 20:23:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:23:00,000 INFO:Refreshing data\n",
"2022-02-01 20:24:00,000 INFO:Data refreshed\n",
"2022-02-01 20:24:00,000 INFO:Strategy predict\n",
"2022-02-01 20:24:00,000 INFO:Trade try complete\n",
"2022-02-01 20:24:00,000 INFO:Trade 25\n",
"2022-02-01 20:24:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:24:00,000 INFO:Refreshing data\n",
"2022-02-01 20:25:00,000 INFO:Data refreshed\n",
"2022-02-01 20:25:00,000 INFO:Strategy predict\n",
"2022-02-01 20:25:00,000 INFO:Trade try complete\n",
"2022-02-01 20:25:00,000 INFO:Trade 26\n",
"2022-02-01 20:25:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:25:00,000 INFO:Refreshing data\n",
"2022-02-01 20:26:00,000 INFO:Data refreshed\n",
"2022-02-01 20:26:00,000 INFO:Strategy predict\n",
"2022-02-01 20:26:00,000 INFO:Trade try complete\n",
"2022-02-01 20:26:00,000 INFO:Trade 27\n",
"2022-02-01 20:26:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:26:00,000 INFO:Refreshing data\n",
"2022-02-01 20:27:00,000 INFO:Data refreshed\n",
"2022-02-01 20:27:00,000 INFO:Strategy predict\n",
"2022-02-01 20:27:00,000 INFO:Trade try complete\n",
"2022-02-01 20:27:00,000 INFO:Trade 28\n",
"2022-02-01 20:27:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:27:00,000 INFO:Refreshing data\n",
"2022-02-01 20:28:00,000 INFO:Data refreshed\n",
"2022-02-01 20:28:00,000 INFO:Strategy predict\n",
"2022-02-01 20:28:00,000 INFO:Trade try complete\n",
"2022-02-01 20:28:00,000 INFO:Trade 29\n",
"2022-02-01 20:28:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:28:00,000 INFO:Refreshing data\n",
"2022-02-01 20:29:00,000 INFO:Data refreshed\n",
"2022-02-01 20:29:00,000 INFO:Strategy predict\n",
"2022-02-01 20:29:00,000 INFO:Trade try complete\n",
"2022-02-01 20:29:00,000 INFO:Trade 30\n",
"2022-02-01 20:29:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:29:00,000 INFO:Refreshing data\n",
"2022-02-01 20:30:00,000 INFO:Data refreshed\n",
"2022-02-01 20:30:00,000 INFO:Strategy predict\n",
"2022-02-01 20:30:00,000 INFO:Trade try complete\n",
"2022-02-01 20:30:00,000 INFO:Trade 31\n",
"2022-02-01 20:30:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:30:00,000 INFO:Refreshing data\n",
"2022-02-01 20:31:00,000 INFO:Data refreshed\n",
"2022-02-01 20:31:00,000 INFO:Strategy predict\n",
"2022-02-01 20:31:00,000 INFO:Trade try complete\n",
"2022-02-01 20:31:00,000 INFO:Trade 32\n",
"2022-02-01 20:31:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:31:00,000 INFO:Refreshing data\n",
"2022-02-01 20:32:00,000 INFO:Data refreshed\n",
"2022-02-01 20:32:00,000 INFO:Strategy predict\n",
"2022-02-01 20:32:00,000 INFO:Trade try complete\n",
"2022-02-01 20:32:00,000 INFO:Trade 33\n",
"2022-02-01 20:32:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:32:00,000 INFO:Refreshing data\n",
"2022-02-01 20:33:00,000 INFO:Data refreshed\n",
"2022-02-01 20:33:00,000 INFO:Strategy predict\n",
"2022-02-01 20:33:00,000 INFO:Trade try complete\n",
"2022-02-01 20:33:00,000 INFO:Trade 34\n",
"2022-02-01 20:33:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:33:00,000 INFO:Refreshing data\n",
"2022-02-01 20:34:00,000 INFO:Data refreshed\n",
"2022-02-01 20:34:00,000 INFO:Strategy predict\n",
"2022-02-01 20:34:00,000 INFO:Trade try complete\n",
"2022-02-01 20:34:00,000 INFO:Trade 35\n",
"2022-02-01 20:34:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:34:00,000 INFO:Refreshing data\n",
"2022-02-01 20:35:00,000 INFO:Data refreshed\n",
"2022-02-01 20:35:00,000 INFO:Strategy predict\n",
"2022-02-01 20:35:00,000 INFO:Trade try complete\n",
"2022-02-01 20:35:00,000 INFO:Trade 36\n",
"2022-02-01 20:35:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:35:00,000 INFO:Refreshing data\n",
"2022-02-01 20:36:00,000 INFO:Data refreshed\n",
"2022-02-01 20:36:00,000 INFO:Strategy predict\n",
"2022-02-01 20:36:00,000 INFO:Trade try complete\n",
"2022-02-01 20:36:00,000 INFO:Trade 37\n",
"2022-02-01 20:36:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:36:00,000 INFO:Refreshing data\n",
"2022-02-01 20:37:00,000 INFO:Data refreshed\n",
"2022-02-01 20:37:00,000 INFO:Strategy predict\n",
"2022-02-01 20:37:00,000 INFO:Trade try complete\n",
"2022-02-01 20:37:00,000 INFO:Trade 38\n",
"2022-02-01 20:37:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:37:00,000 INFO:Refreshing data\n",
"2022-02-01 20:38:00,000 INFO:Data refreshed\n",
"2022-02-01 20:38:00,000 INFO:Strategy predict\n",
"2022-02-01 20:38:00,000 INFO:Trade try complete\n",
"2022-02-01 20:38:00,000 INFO:Trade 39\n",
"2022-02-01 20:38:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:38:00,000 INFO:Refreshing data\n",
"2022-02-01 20:39:00,000 INFO:Data refreshed\n",
"2022-02-01 20:39:00,000 INFO:Strategy predict\n",
"2022-02-01 20:39:00,000 INFO:Trade try complete\n",
"2022-02-01 20:39:00,000 INFO:Trade 40\n",
"2022-02-01 20:39:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:39:00,000 INFO:Refreshing data\n",
"2022-02-01 20:40:00,000 INFO:Data refreshed\n",
"2022-02-01 20:40:00,000 INFO:Strategy predict\n",
"2022-02-01 20:40:00,000 INFO:Trade try complete\n",
"2022-02-01 20:40:00,000 INFO:Trade 41\n",
"2022-02-01 20:40:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:40:00,000 INFO:Refreshing data\n",
"2022-02-01 20:41:00,000 INFO:Data refreshed\n",
"2022-02-01 20:41:00,000 INFO:Strategy predict\n",
"2022-02-01 20:41:00,000 INFO:Trade try complete\n",
"2022-02-01 20:41:00,000 INFO:Trade 42\n",
"2022-02-01 20:41:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:41:00,000 INFO:Refreshing data\n",
"2022-02-01 20:42:00,000 INFO:Data refreshed\n",
"2022-02-01 20:42:00,000 INFO:Strategy predict\n",
"2022-02-01 20:42:00,000 INFO:Trade try complete\n",
"2022-02-01 20:42:00,000 INFO:Trade 43\n",
"2022-02-01 20:42:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:42:00,000 INFO:Refreshing data\n",
"2022-02-01 20:43:00,000 INFO:Data refreshed\n",
"2022-02-01 20:43:00,000 INFO:Strategy predict\n",
"2022-02-01 20:43:00,000 INFO:Trade try complete\n",
"2022-02-01 20:43:00,000 INFO:Trade 44\n",
"2022-02-01 20:43:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:43:00,000 INFO:Refreshing data\n",
"2022-02-01 20:44:00,000 INFO:Data refreshed\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-02-01 20:44:00,000 INFO:Strategy predict\n",
"2022-02-01 20:44:00,000 INFO:Trade try complete\n",
"2022-02-01 20:44:00,000 INFO:Trade 45\n",
"2022-02-01 20:44:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:44:00,000 INFO:Refreshing data\n",
"2022-02-01 20:45:00,000 INFO:Data refreshed\n",
"2022-02-01 20:45:00,000 INFO:Strategy predict\n",
"2022-02-01 20:45:00,000 INFO:Got signals [OpenShortMarketOrder(lots=65, direction=<SignalDirection.SHORT: 'SHORT'>)]\n",
"2022-02-01 20:45:00,000 INFO:Trying to execute signal OpenShortMarketOrder(lots=65, direction=<SignalDirection.SHORT: 'SHORT'>)\n",
"2022-02-01 20:45:00,000 WARNING:Operation: OrderDirection.ORDER_DIRECTION_SELL, 19919.25000000\n",
"2022-02-01 20:45:00,000 INFO:Signal executed OpenShortMarketOrder(lots=65, direction=<SignalDirection.SHORT: 'SHORT'>)\n",
"2022-02-01 20:45:00,000 INFO:Trade 46\n",
"2022-02-01 20:45:00,000 INFO:Balance: 39969.94000000\n",
"2022-02-01 20:45:00,000 INFO:Refreshing data\n",
"2022-02-01 20:46:00,000 INFO:Data refreshed\n",
"2022-02-01 20:46:00,000 INFO:Strategy predict\n",
"2022-02-01 20:46:00,000 INFO:Trade 47\n",
"2022-02-01 20:46:00,000 INFO:Balance: 39969.94000000\n",
"2022-02-01 20:46:00,000 INFO:Refreshing data\n",
"2022-02-01 20:47:00,000 INFO:Data refreshed\n",
"2022-02-01 20:47:00,000 INFO:Strategy predict\n",
"2022-02-01 20:47:00,000 INFO:Trade 48\n",
"2022-02-01 20:47:00,000 INFO:Balance: 39969.94000000\n",
"2022-02-01 20:47:00,000 INFO:Refreshing data\n",
"2022-02-01 20:48:00,000 INFO:Data refreshed\n",
"2022-02-01 20:48:00,000 INFO:Strategy predict\n",
"2022-02-01 20:48:00,000 INFO:Trade 49\n",
"2022-02-01 20:48:00,000 INFO:Balance: 39969.94000000\n",
"2022-02-01 20:48:00,000 INFO:Refreshing data\n",
"2022-02-01 20:49:00,000 INFO:Data refreshed\n",
"2022-02-01 20:49:00,000 INFO:Strategy predict\n",
"2022-02-01 20:00:00,000 INFO:73b4915626a6f9fae3d6b1faadd2b3f0 GetCandles\n",
"2022-02-01 20:00:00,000 INFO:4943406ce66bed9baba9031e69d8f5a3 GetCandles\n",
"2022-02-01 20:00:00,000 INFO:c782d925a41d3def35dd4269ce2f13f4 GetCandles\n",
"2022-02-01 20:00:00,000 INFO:Loading candles for period 5:00:00 from 2022-02-01 17:00:00+00:00\n",
"2022-02-01 20:00:00,000 INFO:Marginal trade is active\n",
"2022-02-01 20:00:00,000 INFO:Got enough data for strategy\n",
"2022-02-01 20:00:00,000 INFO:Trade 0\n",
"2022-02-01 20:00:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:00:00,000 INFO:Refreshing data\n",
"2022-02-01 20:00:00,000 INFO:Data refreshed\n",
"2022-02-01 20:00:00,000 INFO:Strategy predict\n",
"2022-02-01 20:00:00,000 INFO:Trade try complete\n",
"2022-02-01 20:00:00,000 INFO:Trade 1\n",
"2022-02-01 20:00:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:00:00,000 INFO:Refreshing data\n",
"2022-02-01 20:01:00,000 INFO:Data refreshed\n",
"2022-02-01 20:01:00,000 INFO:Strategy predict\n",
"2022-02-01 20:01:00,000 INFO:Trade try complete\n",
"2022-02-01 20:01:00,000 INFO:Trade 2\n",
"2022-02-01 20:01:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:01:00,000 INFO:Refreshing data\n",
"2022-02-01 20:02:00,000 INFO:Data refreshed\n",
"2022-02-01 20:02:00,000 INFO:Strategy predict\n",
"2022-02-01 20:02:00,000 INFO:Trade try complete\n",
"2022-02-01 20:02:00,000 INFO:Trade 3\n",
"2022-02-01 20:02:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:02:00,000 INFO:Refreshing data\n",
"2022-02-01 20:03:00,000 INFO:Data refreshed\n",
"2022-02-01 20:03:00,000 INFO:Strategy predict\n",
"2022-02-01 20:03:00,000 INFO:Trade try complete\n",
"2022-02-01 20:03:00,000 INFO:Trade 4\n",
"2022-02-01 20:03:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:03:00,000 INFO:Refreshing data\n",
"2022-02-01 20:04:00,000 INFO:Data refreshed\n",
"2022-02-01 20:04:00,000 INFO:Strategy predict\n",
"2022-02-01 20:04:00,000 INFO:Trade try complete\n",
"2022-02-01 20:04:00,000 INFO:Trade 5\n",
"2022-02-01 20:04:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:04:00,000 INFO:Refreshing data\n",
"2022-02-01 20:05:00,000 INFO:Data refreshed\n",
"2022-02-01 20:05:00,000 INFO:Strategy predict\n",
"2022-02-01 20:05:00,000 INFO:Trade try complete\n",
"2022-02-01 20:05:00,000 INFO:Trade 6\n",
"2022-02-01 20:05:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:05:00,000 INFO:Refreshing data\n",
"2022-02-01 20:06:00,000 INFO:Data refreshed\n",
"2022-02-01 20:06:00,000 INFO:Strategy predict\n",
"2022-02-01 20:06:00,000 INFO:Trade try complete\n",
"2022-02-01 20:06:00,000 INFO:Trade 7\n",
"2022-02-01 20:06:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:06:00,000 INFO:Refreshing data\n",
"2022-02-01 20:07:00,000 INFO:Data refreshed\n",
"2022-02-01 20:07:00,000 INFO:Strategy predict\n",
"2022-02-01 20:07:00,000 INFO:Trade try complete\n",
"2022-02-01 20:07:00,000 INFO:Trade 8\n",
"2022-02-01 20:07:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:07:00,000 INFO:Refreshing data\n",
"2022-02-01 20:08:00,000 INFO:Data refreshed\n",
"2022-02-01 20:08:00,000 INFO:Strategy predict\n",
"2022-02-01 20:08:00,000 INFO:Trade try complete\n",
"2022-02-01 20:08:00,000 INFO:Trade 9\n",
"2022-02-01 20:08:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:08:00,000 INFO:Refreshing data\n",
"2022-02-01 20:09:00,000 INFO:Data refreshed\n",
"2022-02-01 20:09:00,000 INFO:Strategy predict\n",
"2022-02-01 20:09:00,000 INFO:Trade try complete\n",
"2022-02-01 20:09:00,000 INFO:Trade 10\n",
"2022-02-01 20:09:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:09:00,000 INFO:Refreshing data\n",
"2022-02-01 20:10:00,000 INFO:Data refreshed\n",
"2022-02-01 20:10:00,000 INFO:Strategy predict\n",
"2022-02-01 20:10:00,000 INFO:Trade try complete\n",
"2022-02-01 20:10:00,000 INFO:Trade 11\n",
"2022-02-01 20:10:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:10:00,000 INFO:Refreshing data\n",
"2022-02-01 20:11:00,000 INFO:Data refreshed\n",
"2022-02-01 20:11:00,000 INFO:Strategy predict\n",
"2022-02-01 20:11:00,000 INFO:Trade try complete\n",
"2022-02-01 20:11:00,000 INFO:Trade 12\n",
"2022-02-01 20:11:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:11:00,000 INFO:Refreshing data\n",
"2022-02-01 20:12:00,000 INFO:Data refreshed\n",
"2022-02-01 20:12:00,000 INFO:Strategy predict\n",
"2022-02-01 20:12:00,000 INFO:Trade try complete\n",
"2022-02-01 20:12:00,000 INFO:Trade 13\n",
"2022-02-01 20:12:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:12:00,000 INFO:Refreshing data\n",
"2022-02-01 20:13:00,000 INFO:Data refreshed\n",
"2022-02-01 20:13:00,000 INFO:Strategy predict\n",
"2022-02-01 20:13:00,000 INFO:Trade try complete\n",
"2022-02-01 20:13:00,000 INFO:Trade 14\n",
"2022-02-01 20:13:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:13:00,000 INFO:Refreshing data\n",
"2022-02-01 20:14:00,000 INFO:Data refreshed\n",
"2022-02-01 20:14:00,000 INFO:Strategy predict\n",
"2022-02-01 20:14:00,000 INFO:Got signals [OpenShortMarketOrder(lots=6, direction=<SignalDirection.SHORT: 'SHORT'>)]\n",
"2022-02-01 20:14:00,000 INFO:Trying to execute signal OpenShortMarketOrder(lots=6, direction=<SignalDirection.SHORT: 'SHORT'>)\n",
"2022-02-01 20:14:00,000 WARNING:Operation: OrderDirection.ORDER_DIRECTION_SELL, 17938.92000000\n",
"2022-02-01 20:14:00,000 INFO:Signal executed OpenShortMarketOrder(lots=6, direction=<SignalDirection.SHORT: 'SHORT'>)\n",
"2022-02-01 20:14:00,000 INFO:Trade 15\n",
"2022-02-01 20:14:00,000 INFO:Balance: 37989.61000000\n",
"2022-02-01 20:14:00,000 INFO:Refreshing data\n",
"2022-02-01 20:15:00,000 INFO:Data refreshed\n",
"2022-02-01 20:15:00,000 INFO:Strategy predict\n",
"2022-02-01 20:15:00,000 INFO:Trade 16\n",
"2022-02-01 20:15:00,000 INFO:Balance: 37989.61000000\n",
"2022-02-01 20:15:00,000 INFO:Refreshing data\n",
"2022-02-01 20:16:00,000 INFO:Data refreshed\n",
"2022-02-01 20:16:00,000 INFO:Strategy predict\n",
"2022-02-01 20:16:00,000 INFO:Trade 17\n",
"2022-02-01 20:16:00,000 INFO:Balance: 37989.61000000\n",
"2022-02-01 20:16:00,000 INFO:Refreshing data\n",
"2022-02-01 20:17:00,000 INFO:Data refreshed\n",
"2022-02-01 20:17:00,000 INFO:Strategy predict\n",
"2022-02-01 20:17:00,000 INFO:Trade 18\n",
"2022-02-01 20:17:00,000 INFO:Balance: 37989.61000000\n",
"2022-02-01 20:17:00,000 INFO:Refreshing data\n",
"2022-02-01 20:18:00,000 INFO:Data refreshed\n",
"2022-02-01 20:18:00,000 INFO:Strategy predict\n",
"2022-02-01 20:18:00,000 INFO:Trade 19\n",
"2022-02-01 20:18:00,000 INFO:Balance: 37989.61000000\n",
"2022-02-01 20:18:00,000 INFO:Refreshing data\n",
"2022-02-01 20:19:00,000 INFO:Data refreshed\n",
"2022-02-01 20:19:00,000 INFO:Strategy predict\n",
"2022-02-01 20:19:00,000 INFO:Trade 20\n",
"2022-02-01 20:19:00,000 INFO:Balance: 37989.61000000\n",
"2022-02-01 20:19:00,000 INFO:Refreshing data\n",
"2022-02-01 20:20:00,000 INFO:Data refreshed\n",
"2022-02-01 20:20:00,000 INFO:Strategy predict\n",
"2022-02-01 20:20:00,000 INFO:Got signals [CloseShortMarketOrder(lots=6, direction=<SignalDirection.SHORT: 'SHORT'>), OpenLongMarketOrder(lots=12, direction=<SignalDirection.LONG: 'LONG'>)]\n",
"2022-02-01 20:20:00,000 INFO:Trying to execute signal CloseShortMarketOrder(lots=6, direction=<SignalDirection.SHORT: 'SHORT'>)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-02-01 20:20:00,000 WARNING:Operation: OrderDirection.ORDER_DIRECTION_BUY, -17977.44000000\n",
"2022-02-01 20:20:00,000 INFO:Signal executed CloseShortMarketOrder(lots=6, direction=<SignalDirection.SHORT: 'SHORT'>)\n",
"2022-02-01 20:20:00,000 INFO:Trying to execute signal OpenLongMarketOrder(lots=12, direction=<SignalDirection.LONG: 'LONG'>)\n",
"2022-02-01 20:20:00,000 WARNING:Operation: OrderDirection.ORDER_DIRECTION_BUY, -35954.88000000\n",
"2022-02-01 20:20:00,000 INFO:Signal executed OpenLongMarketOrder(lots=12, direction=<SignalDirection.LONG: 'LONG'>)\n",
"2022-02-01 20:20:00,000 INFO:Trade 21\n",
"2022-02-01 20:20:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:20:00,000 INFO:Refreshing data\n",
"2022-02-01 20:21:00,000 INFO:Data refreshed\n",
"2022-02-01 20:21:00,000 INFO:Strategy predict\n",
"2022-02-01 20:21:00,000 INFO:Trade 22\n",
"2022-02-01 20:21:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:21:00,000 INFO:Refreshing data\n",
"2022-02-01 20:22:00,000 INFO:Data refreshed\n",
"2022-02-01 20:22:00,000 INFO:Strategy predict\n",
"2022-02-01 20:22:00,000 INFO:Trade 23\n",
"2022-02-01 20:22:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:22:00,000 INFO:Refreshing data\n",
"2022-02-01 20:23:00,000 INFO:Data refreshed\n",
"2022-02-01 20:23:00,000 INFO:Strategy predict\n",
"2022-02-01 20:23:00,000 INFO:Trade 24\n",
"2022-02-01 20:23:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:23:00,000 INFO:Refreshing data\n",
"2022-02-01 20:24:00,000 INFO:Data refreshed\n",
"2022-02-01 20:24:00,000 INFO:Strategy predict\n",
"2022-02-01 20:24:00,000 INFO:Trade 25\n",
"2022-02-01 20:24:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:24:00,000 INFO:Refreshing data\n",
"2022-02-01 20:25:00,000 INFO:Data refreshed\n",
"2022-02-01 20:25:00,000 INFO:Strategy predict\n",
"2022-02-01 20:25:00,000 INFO:Trade 26\n",
"2022-02-01 20:25:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:25:00,000 INFO:Refreshing data\n",
"2022-02-01 20:26:00,000 INFO:Data refreshed\n",
"2022-02-01 20:26:00,000 INFO:Strategy predict\n",
"2022-02-01 20:26:00,000 INFO:Trade 27\n",
"2022-02-01 20:26:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:26:00,000 INFO:Refreshing data\n",
"2022-02-01 20:27:00,000 INFO:Data refreshed\n",
"2022-02-01 20:27:00,000 INFO:Strategy predict\n",
"2022-02-01 20:27:00,000 INFO:Trade 28\n",
"2022-02-01 20:27:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:27:00,000 INFO:Refreshing data\n",
"2022-02-01 20:28:00,000 INFO:Data refreshed\n",
"2022-02-01 20:28:00,000 INFO:Strategy predict\n",
"2022-02-01 20:28:00,000 INFO:Trade 29\n",
"2022-02-01 20:28:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:28:00,000 INFO:Refreshing data\n",
"2022-02-01 20:29:00,000 INFO:Data refreshed\n",
"2022-02-01 20:29:00,000 INFO:Strategy predict\n",
"2022-02-01 20:29:00,000 INFO:Trade 30\n",
"2022-02-01 20:29:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:29:00,000 INFO:Refreshing data\n",
"2022-02-01 20:30:00,000 INFO:Data refreshed\n",
"2022-02-01 20:30:00,000 INFO:Strategy predict\n",
"2022-02-01 20:30:00,000 INFO:Trade 31\n",
"2022-02-01 20:30:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:30:00,000 INFO:Refreshing data\n",
"2022-02-01 20:31:00,000 INFO:Data refreshed\n",
"2022-02-01 20:31:00,000 INFO:Strategy predict\n",
"2022-02-01 20:31:00,000 INFO:Trade 32\n",
"2022-02-01 20:31:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:31:00,000 INFO:Refreshing data\n",
"2022-02-01 20:32:00,000 INFO:Data refreshed\n",
"2022-02-01 20:32:00,000 INFO:Strategy predict\n",
"2022-02-01 20:32:00,000 INFO:Trade 33\n",
"2022-02-01 20:32:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:32:00,000 INFO:Refreshing data\n",
"2022-02-01 20:33:00,000 INFO:Data refreshed\n",
"2022-02-01 20:33:00,000 INFO:Strategy predict\n",
"2022-02-01 20:33:00,000 INFO:Trade 34\n",
"2022-02-01 20:33:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:33:00,000 INFO:Refreshing data\n",
"2022-02-01 20:34:00,000 INFO:Data refreshed\n",
"2022-02-01 20:34:00,000 INFO:Strategy predict\n",
"2022-02-01 20:34:00,000 INFO:Trade 35\n",
"2022-02-01 20:34:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:34:00,000 INFO:Refreshing data\n",
"2022-02-01 20:35:00,000 INFO:Data refreshed\n",
"2022-02-01 20:35:00,000 INFO:Strategy predict\n",
"2022-02-01 20:35:00,000 INFO:Trade 36\n",
"2022-02-01 20:35:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:35:00,000 INFO:Refreshing data\n",
"2022-02-01 20:36:00,000 INFO:Data refreshed\n",
"2022-02-01 20:36:00,000 INFO:Strategy predict\n",
"2022-02-01 20:36:00,000 INFO:Trade 37\n",
"2022-02-01 20:36:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:36:00,000 INFO:Refreshing data\n",
"2022-02-01 20:37:00,000 INFO:Data refreshed\n",
"2022-02-01 20:37:00,000 INFO:Strategy predict\n",
"2022-02-01 20:37:00,000 INFO:Trade 38\n",
"2022-02-01 20:37:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:37:00,000 INFO:Refreshing data\n",
"2022-02-01 20:38:00,000 INFO:Data refreshed\n",
"2022-02-01 20:38:00,000 INFO:Strategy predict\n",
"2022-02-01 20:38:00,000 INFO:Trade 39\n",
"2022-02-01 20:38:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:38:00,000 INFO:Refreshing data\n",
"2022-02-01 20:39:00,000 INFO:Data refreshed\n",
"2022-02-01 20:39:00,000 INFO:Strategy predict\n",
"2022-02-01 20:39:00,000 INFO:Trade 40\n",
"2022-02-01 20:39:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:39:00,000 INFO:Refreshing data\n",
"2022-02-01 20:40:00,000 INFO:Data refreshed\n",
"2022-02-01 20:40:00,000 INFO:Strategy predict\n",
"2022-02-01 20:40:00,000 INFO:Trade 41\n",
"2022-02-01 20:40:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:40:00,000 INFO:Refreshing data\n",
"2022-02-01 20:41:00,000 INFO:Data refreshed\n",
"2022-02-01 20:41:00,000 INFO:Strategy predict\n",
"2022-02-01 20:41:00,000 INFO:Trade 42\n",
"2022-02-01 20:41:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:41:00,000 INFO:Refreshing data\n",
"2022-02-01 20:42:00,000 INFO:Data refreshed\n",
"2022-02-01 20:42:00,000 INFO:Strategy predict\n",
"2022-02-01 20:42:00,000 INFO:Trade 43\n",
"2022-02-01 20:42:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:42:00,000 INFO:Refreshing data\n",
"2022-02-01 20:43:00,000 INFO:Data refreshed\n",
"2022-02-01 20:43:00,000 INFO:Strategy predict\n",
"2022-02-01 20:43:00,000 INFO:Trade 44\n",
"2022-02-01 20:43:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:43:00,000 INFO:Refreshing data\n",
"2022-02-01 20:44:00,000 INFO:Data refreshed\n",
"2022-02-01 20:44:00,000 INFO:Strategy predict\n",
"2022-02-01 20:44:00,000 INFO:Trade 45\n",
"2022-02-01 20:44:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:44:00,000 INFO:Refreshing data\n",
"2022-02-01 20:45:00,000 INFO:Data refreshed\n",
"2022-02-01 20:45:00,000 INFO:Strategy predict\n",
"2022-02-01 20:45:00,000 INFO:Trade 46\n",
"2022-02-01 20:45:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:45:00,000 INFO:Refreshing data\n",
"2022-02-01 20:46:00,000 INFO:Data refreshed\n",
"2022-02-01 20:46:00,000 INFO:Strategy predict\n",
"2022-02-01 20:46:00,000 INFO:Trade 47\n",
"2022-02-01 20:46:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:46:00,000 INFO:Refreshing data\n",
"2022-02-01 20:47:00,000 INFO:Data refreshed\n",
"2022-02-01 20:47:00,000 INFO:Strategy predict\n",
"2022-02-01 20:47:00,000 INFO:Trade 48\n",
"2022-02-01 20:47:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:47:00,000 INFO:Refreshing data\n",
"2022-02-01 20:48:00,000 INFO:Data refreshed\n",
"2022-02-01 20:48:00,000 INFO:Strategy predict\n",
"2022-02-01 20:48:00,000 INFO:Trade 49\n",
"2022-02-01 20:48:00,000 INFO:Balance: -15942.71000000\n",
"2022-02-01 20:48:00,000 INFO:Refreshing data\n",
"2022-02-01 20:49:00,000 INFO:Data refreshed\n",
"2022-02-01 20:49:00,000 INFO:Strategy predict\n",
"2022-02-01 20:00:00,000 INFO:25bf6d098f590bda1b9d184a554c0001 GetCandles\n",
"2022-02-01 20:00:00,000 INFO:fee88ad1df39149c099a9f286c6af805 GetCandles\n",
"2022-02-01 20:00:00,000 INFO:ad1bc7bd9ca8fdbd1e4b8e706627a2bc GetCandles\n",
"2022-02-01 20:00:00,000 INFO:Loading candles for period 5:00:00 from 2022-02-01 17:00:00+00:00\n",
"2022-02-01 20:00:00,000 INFO:Marginal trade is active\n",
"2022-02-01 20:00:00,000 INFO:Got enough data for strategy\n",
"2022-02-01 20:00:00,000 INFO:Trade 0\n",
"2022-02-01 20:00:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:00:00,000 INFO:Refreshing data\n",
"2022-02-01 20:00:00,000 INFO:Data refreshed\n",
"2022-02-01 20:00:00,000 INFO:Strategy predict\n",
"2022-02-01 20:00:00,000 INFO:Trade try complete\n",
"2022-02-01 20:00:00,000 INFO:Trade 1\n",
"2022-02-01 20:00:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:00:00,000 INFO:Refreshing data\n",
"2022-02-01 20:01:00,000 INFO:Data refreshed\n",
"2022-02-01 20:01:00,000 INFO:Strategy predict\n",
"2022-02-01 20:01:00,000 INFO:Trade try complete\n",
"2022-02-01 20:01:00,000 INFO:Trade 2\n",
"2022-02-01 20:01:00,000 INFO:Balance: 20050.69000000\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-02-01 20:01:00,000 INFO:Refreshing data\n",
"2022-02-01 20:02:00,000 INFO:Data refreshed\n",
"2022-02-01 20:02:00,000 INFO:Strategy predict\n",
"2022-02-01 20:02:00,000 INFO:Trade try complete\n",
"2022-02-01 20:02:00,000 INFO:Trade 3\n",
"2022-02-01 20:02:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:02:00,000 INFO:Refreshing data\n",
"2022-02-01 20:03:00,000 INFO:Data refreshed\n",
"2022-02-01 20:03:00,000 INFO:Strategy predict\n",
"2022-02-01 20:03:00,000 INFO:Trade try complete\n",
"2022-02-01 20:03:00,000 INFO:Trade 4\n",
"2022-02-01 20:03:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:03:00,000 INFO:Refreshing data\n",
"2022-02-01 20:04:00,000 INFO:Data refreshed\n",
"2022-02-01 20:04:00,000 INFO:Strategy predict\n",
"2022-02-01 20:04:00,000 INFO:Trade try complete\n",
"2022-02-01 20:04:00,000 INFO:Trade 5\n",
"2022-02-01 20:04:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:04:00,000 INFO:Refreshing data\n",
"2022-02-01 20:05:00,000 INFO:Data refreshed\n",
"2022-02-01 20:05:00,000 INFO:Strategy predict\n",
"2022-02-01 20:05:00,000 INFO:Trade try complete\n",
"2022-02-01 20:05:00,000 INFO:Trade 6\n",
"2022-02-01 20:05:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:05:00,000 INFO:Refreshing data\n",
"2022-02-01 20:06:00,000 INFO:Data refreshed\n",
"2022-02-01 20:06:00,000 INFO:Strategy predict\n",
"2022-02-01 20:06:00,000 INFO:Trade try complete\n",
"2022-02-01 20:06:00,000 INFO:Trade 7\n",
"2022-02-01 20:06:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:06:00,000 INFO:Refreshing data\n",
"2022-02-01 20:07:00,000 INFO:Data refreshed\n",
"2022-02-01 20:07:00,000 INFO:Strategy predict\n",
"2022-02-01 20:07:00,000 INFO:Trade try complete\n",
"2022-02-01 20:07:00,000 INFO:Trade 8\n",
"2022-02-01 20:07:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:07:00,000 INFO:Refreshing data\n",
"2022-02-01 20:08:00,000 INFO:Data refreshed\n",
"2022-02-01 20:08:00,000 INFO:Strategy predict\n",
"2022-02-01 20:08:00,000 INFO:Trade try complete\n",
"2022-02-01 20:08:00,000 INFO:Trade 9\n",
"2022-02-01 20:08:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:08:00,000 INFO:Refreshing data\n",
"2022-02-01 20:09:00,000 INFO:Data refreshed\n",
"2022-02-01 20:09:00,000 INFO:Strategy predict\n",
"2022-02-01 20:09:00,000 INFO:Trade try complete\n",
"2022-02-01 20:09:00,000 INFO:Trade 10\n",
"2022-02-01 20:09:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:09:00,000 INFO:Refreshing data\n",
"2022-02-01 20:10:00,000 INFO:Data refreshed\n",
"2022-02-01 20:10:00,000 INFO:Strategy predict\n",
"2022-02-01 20:10:00,000 INFO:Trade try complete\n",
"2022-02-01 20:10:00,000 INFO:Trade 11\n",
"2022-02-01 20:10:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:10:00,000 INFO:Refreshing data\n",
"2022-02-01 20:11:00,000 INFO:Data refreshed\n",
"2022-02-01 20:11:00,000 INFO:Strategy predict\n",
"2022-02-01 20:11:00,000 INFO:Trade try complete\n",
"2022-02-01 20:11:00,000 INFO:Trade 12\n",
"2022-02-01 20:11:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:11:00,000 INFO:Refreshing data\n",
"2022-02-01 20:12:00,000 INFO:Data refreshed\n",
"2022-02-01 20:12:00,000 INFO:Strategy predict\n",
"2022-02-01 20:12:00,000 INFO:Trade try complete\n",
"2022-02-01 20:12:00,000 INFO:Trade 13\n",
"2022-02-01 20:12:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:12:00,000 INFO:Refreshing data\n",
"2022-02-01 20:13:00,000 INFO:Data refreshed\n",
"2022-02-01 20:13:00,000 INFO:Strategy predict\n",
"2022-02-01 20:13:00,000 INFO:Trade try complete\n",
"2022-02-01 20:13:00,000 INFO:Trade 14\n",
"2022-02-01 20:13:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:13:00,000 INFO:Refreshing data\n",
"2022-02-01 20:14:00,000 INFO:Data refreshed\n",
"2022-02-01 20:14:00,000 INFO:Strategy predict\n",
"2022-02-01 20:14:00,000 INFO:Trade try complete\n",
"2022-02-01 20:14:00,000 INFO:Trade 15\n",
"2022-02-01 20:14:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:14:00,000 INFO:Refreshing data\n",
"2022-02-01 20:15:00,000 INFO:Data refreshed\n",
"2022-02-01 20:15:00,000 INFO:Strategy predict\n",
"2022-02-01 20:15:00,000 INFO:Trade try complete\n",
"2022-02-01 20:15:00,000 INFO:Trade 16\n",
"2022-02-01 20:15:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:15:00,000 INFO:Refreshing data\n",
"2022-02-01 20:16:00,000 INFO:Data refreshed\n",
"2022-02-01 20:16:00,000 INFO:Strategy predict\n",
"2022-02-01 20:16:00,000 INFO:Trade try complete\n",
"2022-02-01 20:16:00,000 INFO:Trade 17\n",
"2022-02-01 20:16:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:16:00,000 INFO:Refreshing data\n",
"2022-02-01 20:17:00,000 INFO:Data refreshed\n",
"2022-02-01 20:17:00,000 INFO:Strategy predict\n",
"2022-02-01 20:17:00,000 INFO:Trade try complete\n",
"2022-02-01 20:17:00,000 INFO:Trade 18\n",
"2022-02-01 20:17:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:17:00,000 INFO:Refreshing data\n",
"2022-02-01 20:18:00,000 INFO:Data refreshed\n",
"2022-02-01 20:18:00,000 INFO:Strategy predict\n",
"2022-02-01 20:18:00,000 INFO:Trade try complete\n",
"2022-02-01 20:18:00,000 INFO:Trade 19\n",
"2022-02-01 20:18:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:18:00,000 INFO:Refreshing data\n",
"2022-02-01 20:19:00,000 INFO:Data refreshed\n",
"2022-02-01 20:19:00,000 INFO:Strategy predict\n",
"2022-02-01 20:19:00,000 INFO:Trade try complete\n",
"2022-02-01 20:19:00,000 INFO:Trade 20\n",
"2022-02-01 20:19:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:19:00,000 INFO:Refreshing data\n",
"2022-02-01 20:20:00,000 INFO:Data refreshed\n",
"2022-02-01 20:20:00,000 INFO:Strategy predict\n",
"2022-02-01 20:20:00,000 INFO:Trade try complete\n",
"2022-02-01 20:20:00,000 INFO:Trade 21\n",
"2022-02-01 20:20:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:20:00,000 INFO:Refreshing data\n",
"2022-02-01 20:21:00,000 INFO:Data refreshed\n",
"2022-02-01 20:21:00,000 INFO:Strategy predict\n",
"2022-02-01 20:21:00,000 INFO:Trade try complete\n",
"2022-02-01 20:21:00,000 INFO:Trade 22\n",
"2022-02-01 20:21:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:21:00,000 INFO:Refreshing data\n",
"2022-02-01 20:22:00,000 INFO:Data refreshed\n",
"2022-02-01 20:22:00,000 INFO:Strategy predict\n",
"2022-02-01 20:22:00,000 INFO:Trade try complete\n",
"2022-02-01 20:22:00,000 INFO:Trade 23\n",
"2022-02-01 20:22:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:22:00,000 INFO:Refreshing data\n",
"2022-02-01 20:23:00,000 INFO:Data refreshed\n",
"2022-02-01 20:23:00,000 INFO:Strategy predict\n",
"2022-02-01 20:23:00,000 INFO:Trade try complete\n",
"2022-02-01 20:23:00,000 INFO:Trade 24\n",
"2022-02-01 20:23:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:23:00,000 INFO:Refreshing data\n",
"2022-02-01 20:24:00,000 INFO:Data refreshed\n",
"2022-02-01 20:24:00,000 INFO:Strategy predict\n",
"2022-02-01 20:24:00,000 INFO:Trade try complete\n",
"2022-02-01 20:24:00,000 INFO:Trade 25\n",
"2022-02-01 20:24:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:24:00,000 INFO:Refreshing data\n",
"2022-02-01 20:25:00,000 INFO:Data refreshed\n",
"2022-02-01 20:25:00,000 INFO:Strategy predict\n",
"2022-02-01 20:25:00,000 INFO:Trade try complete\n",
"2022-02-01 20:25:00,000 INFO:Trade 26\n",
"2022-02-01 20:25:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:25:00,000 INFO:Refreshing data\n",
"2022-02-01 20:26:00,000 INFO:Data refreshed\n",
"2022-02-01 20:26:00,000 INFO:Strategy predict\n",
"2022-02-01 20:26:00,000 INFO:Trade try complete\n",
"2022-02-01 20:26:00,000 INFO:Trade 27\n",
"2022-02-01 20:26:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:26:00,000 INFO:Refreshing data\n",
"2022-02-01 20:27:00,000 INFO:Data refreshed\n",
"2022-02-01 20:27:00,000 INFO:Strategy predict\n",
"2022-02-01 20:27:00,000 INFO:Trade try complete\n",
"2022-02-01 20:27:00,000 INFO:Trade 28\n",
"2022-02-01 20:27:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:27:00,000 INFO:Refreshing data\n",
"2022-02-01 20:28:00,000 INFO:Data refreshed\n",
"2022-02-01 20:28:00,000 INFO:Strategy predict\n",
"2022-02-01 20:28:00,000 INFO:Trade try complete\n",
"2022-02-01 20:28:00,000 INFO:Trade 29\n",
"2022-02-01 20:28:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:28:00,000 INFO:Refreshing data\n",
"2022-02-01 20:29:00,000 INFO:Data refreshed\n",
"2022-02-01 20:29:00,000 INFO:Strategy predict\n",
"2022-02-01 20:29:00,000 INFO:Trade try complete\n",
"2022-02-01 20:29:00,000 INFO:Trade 30\n",
"2022-02-01 20:29:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:29:00,000 INFO:Refreshing data\n",
"2022-02-01 20:30:00,000 INFO:Data refreshed\n",
"2022-02-01 20:30:00,000 INFO:Strategy predict\n",
"2022-02-01 20:30:00,000 INFO:Trade try complete\n",
"2022-02-01 20:30:00,000 INFO:Trade 31\n",
"2022-02-01 20:30:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:30:00,000 INFO:Refreshing data\n",
"2022-02-01 20:31:00,000 INFO:Data refreshed\n",
"2022-02-01 20:31:00,000 INFO:Strategy predict\n",
"2022-02-01 20:31:00,000 INFO:Trade try complete\n",
"2022-02-01 20:31:00,000 INFO:Trade 32\n",
"2022-02-01 20:31:00,000 INFO:Balance: 20050.69000000\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-02-01 20:31:00,000 INFO:Refreshing data\n",
"2022-02-01 20:32:00,000 INFO:Data refreshed\n",
"2022-02-01 20:32:00,000 INFO:Strategy predict\n",
"2022-02-01 20:32:00,000 INFO:Trade try complete\n",
"2022-02-01 20:32:00,000 INFO:Trade 33\n",
"2022-02-01 20:32:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:32:00,000 INFO:Refreshing data\n",
"2022-02-01 20:33:00,000 INFO:Data refreshed\n",
"2022-02-01 20:33:00,000 INFO:Strategy predict\n",
"2022-02-01 20:33:00,000 INFO:Trade try complete\n",
"2022-02-01 20:33:00,000 INFO:Trade 34\n",
"2022-02-01 20:33:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:33:00,000 INFO:Refreshing data\n",
"2022-02-01 20:34:00,000 INFO:Data refreshed\n",
"2022-02-01 20:34:00,000 INFO:Strategy predict\n",
"2022-02-01 20:34:00,000 INFO:Trade try complete\n",
"2022-02-01 20:34:00,000 INFO:Trade 35\n",
"2022-02-01 20:34:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:34:00,000 INFO:Refreshing data\n",
"2022-02-01 20:35:00,000 INFO:Data refreshed\n",
"2022-02-01 20:35:00,000 INFO:Strategy predict\n",
"2022-02-01 20:35:00,000 INFO:Trade try complete\n",
"2022-02-01 20:35:00,000 INFO:Trade 36\n",
"2022-02-01 20:35:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:35:00,000 INFO:Refreshing data\n",
"2022-02-01 20:36:00,000 INFO:Data refreshed\n",
"2022-02-01 20:36:00,000 INFO:Strategy predict\n",
"2022-02-01 20:36:00,000 INFO:Trade try complete\n",
"2022-02-01 20:36:00,000 INFO:Trade 37\n",
"2022-02-01 20:36:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:36:00,000 INFO:Refreshing data\n",
"2022-02-01 20:37:00,000 INFO:Data refreshed\n",
"2022-02-01 20:37:00,000 INFO:Strategy predict\n",
"2022-02-01 20:37:00,000 INFO:Trade try complete\n",
"2022-02-01 20:37:00,000 INFO:Trade 38\n",
"2022-02-01 20:37:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:37:00,000 INFO:Refreshing data\n",
"2022-02-01 20:38:00,000 INFO:Data refreshed\n",
"2022-02-01 20:38:00,000 INFO:Strategy predict\n",
"2022-02-01 20:38:00,000 INFO:Trade try complete\n",
"2022-02-01 20:38:00,000 INFO:Trade 39\n",
"2022-02-01 20:38:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:38:00,000 INFO:Refreshing data\n",
"2022-02-01 20:39:00,000 INFO:Data refreshed\n",
"2022-02-01 20:39:00,000 INFO:Strategy predict\n",
"2022-02-01 20:39:00,000 INFO:Trade try complete\n",
"2022-02-01 20:39:00,000 INFO:Trade 40\n",
"2022-02-01 20:39:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:39:00,000 INFO:Refreshing data\n",
"2022-02-01 20:40:00,000 INFO:Data refreshed\n",
"2022-02-01 20:40:00,000 INFO:Strategy predict\n",
"2022-02-01 20:40:00,000 INFO:Trade try complete\n",
"2022-02-01 20:40:00,000 INFO:Trade 41\n",
"2022-02-01 20:40:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:40:00,000 INFO:Refreshing data\n",
"2022-02-01 20:41:00,000 INFO:Data refreshed\n",
"2022-02-01 20:41:00,000 INFO:Strategy predict\n",
"2022-02-01 20:41:00,000 INFO:Trade try complete\n",
"2022-02-01 20:41:00,000 INFO:Trade 42\n",
"2022-02-01 20:41:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:41:00,000 INFO:Refreshing data\n",
"2022-02-01 20:42:00,000 INFO:Data refreshed\n",
"2022-02-01 20:42:00,000 INFO:Strategy predict\n",
"2022-02-01 20:42:00,000 INFO:Trade try complete\n",
"2022-02-01 20:42:00,000 INFO:Trade 43\n",
"2022-02-01 20:42:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:42:00,000 INFO:Refreshing data\n",
"2022-02-01 20:43:00,000 INFO:Data refreshed\n",
"2022-02-01 20:43:00,000 INFO:Strategy predict\n",
"2022-02-01 20:43:00,000 INFO:Trade try complete\n",
"2022-02-01 20:43:00,000 INFO:Trade 44\n",
"2022-02-01 20:43:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:43:00,000 INFO:Refreshing data\n",
"2022-02-01 20:44:00,000 INFO:Data refreshed\n",
"2022-02-01 20:44:00,000 INFO:Strategy predict\n",
"2022-02-01 20:44:00,000 INFO:Trade try complete\n",
"2022-02-01 20:44:00,000 INFO:Trade 45\n",
"2022-02-01 20:44:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:44:00,000 INFO:Refreshing data\n",
"2022-02-01 20:45:00,000 INFO:Data refreshed\n",
"2022-02-01 20:45:00,000 INFO:Strategy predict\n",
"2022-02-01 20:45:00,000 INFO:Trade try complete\n",
"2022-02-01 20:45:00,000 INFO:Trade 46\n",
"2022-02-01 20:45:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:45:00,000 INFO:Refreshing data\n",
"2022-02-01 20:46:00,000 INFO:Data refreshed\n",
"2022-02-01 20:46:00,000 INFO:Strategy predict\n",
"2022-02-01 20:46:00,000 INFO:Trade try complete\n",
"2022-02-01 20:46:00,000 INFO:Trade 47\n",
"2022-02-01 20:46:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:46:00,000 INFO:Refreshing data\n",
"2022-02-01 20:47:00,000 INFO:Data refreshed\n",
"2022-02-01 20:47:00,000 INFO:Strategy predict\n",
"2022-02-01 20:47:00,000 INFO:Trade try complete\n",
"2022-02-01 20:47:00,000 INFO:Trade 48\n",
"2022-02-01 20:47:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:47:00,000 INFO:Refreshing data\n",
"2022-02-01 20:48:00,000 INFO:Data refreshed\n",
"2022-02-01 20:48:00,000 INFO:Strategy predict\n",
"2022-02-01 20:48:00,000 INFO:Trade try complete\n",
"2022-02-01 20:48:00,000 INFO:Trade 49\n",
"2022-02-01 20:48:00,000 INFO:Balance: 20050.69000000\n",
"2022-02-01 20:48:00,000 INFO:Refreshing data\n",
"2022-02-01 20:49:00,000 INFO:Data refreshed\n",
"2022-02-01 20:49:00,000 INFO:Strategy predict\n",
"2022-02-01 20:49:00,000 INFO:Trade try complete\n"
]
},
{
"data": {
"text/plain": [
"'MSFT'"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"balances = {}\n",
"\n",
"for stock in stocks:\n",
" figi = ShareId(stocks[stock][\"figi\"])\n",
"\n",
" balance = MoneyValue(currency=\"rub\", units=20050, nano=690000000)\n",
"\n",
" account_id = AccountId(\"1337007228\")\n",
" settings = MovingAverageStrategySettings(\n",
" share_id=figi, # figi конкретной ценной бумаги\n",
" account_id=account_id, # неважно для sandbox\n",
" max_transaction_price=Decimal(\n",
" 10000\n",
" ), # максимальный объем сделки - зависит от размера портфеля. сейчас фиксировано\n",
" candle_interval=tf, # тф - таймфрейм\n",
" long_period=timedelta(minutes=n * period), # длинная скользяшка\n",
" short_period=timedelta(minutes=m * period), # короткая скользяшка\n",
" std_period=timedelta(minutes=s * period), # количество периодов для стд\n",
" )\n",
"\n",
" with MockedClient(\n",
" token=token,\n",
" settings=settings,\n",
" real_market_data_test_from=real_market_data_test_from,\n",
" real_market_data_test_start=real_market_data_test_start,\n",
" real_market_data_test_end=real_market_data_test_end,\n",
" balance=balance,\n",
" ) as mocked_services:\n",
" account_manager = AccountManager(\n",
" services=mocked_services, strategy_settings=settings\n",
" )\n",
" state = MovingAverageStrategyState()\n",
" strategy = MovingAverageStrategy(\n",
" settings=settings,\n",
" account_manager=account_manager,\n",
" state=state,\n",
" )\n",
" supervisor = MovingAverageStrategySupervisor()\n",
" signal_executor = MovingAverageSignalExecutor(\n",
" services=mocked_services,\n",
" state=state,\n",
" settings=settings,\n",
" )\n",
" moving_average_strategy_trader = MovingAverageStrategyTrader(\n",
" strategy=strategy,\n",
" settings=settings,\n",
" services=mocked_services,\n",
" state=state,\n",
" signal_executor=signal_executor,\n",
" account_manager=account_manager,\n",
" supervisor=supervisor,\n",
" )\n",
" plotter = MovingAverageStrategyPlotter(settings=settings)\n",
"\n",
" initial_balance = account_manager.get_current_balance()\n",
"\n",
" for i in range(50):\n",
" logger.info(\"Trade %s\", i)\n",
" moving_average_strategy_trader.trade()\n",
"\n",
" balances[stock] = balance.units\n",
"\n",
"best_stock = max(balances, key=balances.get)\n",
"best_stock"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Вывод картинки"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABM0AAARwCAYAAAD5fqNTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde3xUhZ3///eZa7iTQAiQAIkho45BEkUhdqWt7bqKbrVSq9RKW1d0t7Zrvy7bLd1v+W35dksvbLtul7Zb7A27tWppvVR0a712NVHRRA0j5kJCTDAQSCQRyMyZyfn9MUwIIQm5zORMZl7Px4OHkpk555MLmZnP+VwMy7IEAAAAAAAA4CSH3QEAAAAAAAAAyYakGQAAAAAAANAPSTMAAAAAAACgH5JmAAAAAAAAQD8kzQAAAAAAAIB+SJoBAAAAAAAA/bjsDiBZzJ4928rPz7c7DAAAAAAAgJTx6quvHrIsK9vuOEaDpNkJ+fn52rVrl91hAAAAAAAApAzDMPbZHcNo0Z4JAAAAAAAA9EPSDAAAAAAAAOiHpBkAAAAAAADQD0kzAAAAAAAAoB+SZgAAAAAAAEA/JM0AAAAAAACAfkiaAQAAAAAAAP2QNAMAAAAAAAD6IWkGAAAAAAAA9EPSDAAAAAAAAOiHpBkAAAAAAADQD0kzAAAAAAAAoB+SZgAAAAAAAEA/JM0AAAAAAACAfkiaAQAAAAAAAP2QNAMAAAAAAAD6IWkGAAAAAAAA9EPSDAAAAAAAAOiHpBkAAAAAAADQD0kzAAAAAAAAoB+SZgAAAAAAAEA/JM0AAAAAAACAfkiaAQAAAAAAAP2QNAMAAAAAAAD6IWkGAAAAAAAA9EPSDAAAAAAAAOiHpBkAAAAAAADQD0kzAAAAAAAAoB+SZgAAAAAAALCNYRh3GoZRbRjGbsMwvnTiY/9iGEaLYRhVJ/6s6nP/DYZh1BmG8bZhGH+VqLhciTowAAAAAAAAMBTDMIolrZN0saSQpCcMw3jsxM3ftyxrS7/7+yXdKOk8SfMl/ckwDJ9lWZF4x0alGQAAAAAAAOxyrqQKy7KOWZYVlvScpI8Pcf9rJP3GsqygZVkNkuoUTbjFHUkzAOMiaIZUUR9Q0AwpEgyprbJKkWDI7rAAAAAAAPaqlrTSMIxZhmFMlrRK0oITt33BMIw3DMP4mWEYmSc+livpnT6Pbz7xsbgjaQb0U1EfUEV9wO4wUk5lU53KNt+hF5/YqfqHHtbO1WvUHuDrDAAAAAApbrZhGLv6/Lmt742WZb0l6duSnpT0hKTXJYUl/UhSoaQSSe9K+rcTDzEGOIeViMCZaQZgXE3y+5TZSYUZAAAAAKSJQ5ZlLRvqDpZl/VTSTyXJMIxvSmq2LOtA7HbDMLZJ+sOJvzbrZCWaJOVJ2h/XiE+g0gxAwlXUB1Td0mB3GAAAAACAJGQYxpwT/10o6TpJ9xmGMa/PXT6uaBunJD0i6UbDMLyGYRRIKpL0ciLiotIMAAAAAAAAdtphGMYsSaakOyzL6jAM417DMEoUbb1slHS7JFmWtdswjAckBRRt47wjEZszJZJmAAAAAAAAsJFlWZcO8LGbh7j/v0r614QGJdozgUG1VVaprbLK7jAmtNjGzFDYlC8nT+Ubtqp04WK7wwIAAAAA4IxImiEhYsmSoMnA93QW25jpcbm18uylWlHol9ftsTssAAAAAADOiKQZEiKWLKlsqrM7FIwA1XUAAAAAAESRNAMAAAAAAAD6IWmGhDoeqKFyCafJ8vu1asd9ioTC/HwAAAAAAJISSTOgn1DYVHVLg0LhsN2hpCyn16Ps0hI5PSzwBQAAAAAkJ5JmQD8el1vrtm9RTWuz3aGMm5NbLkkUAgAAAAAgkTQDThMKm9q2dr18c/PsDmXcxBY3pFOiEAAAAACAoZA0A/rxuNwqzi2Qx0XrIAAAAAAA6YqkGWwXaw0MmiG7QzlNxDTVVlmlSDD5YksVfI0BAAAAAMmIUhrY4vm3X1fNgWZdOSlHbxxq1qodd+vpa+5UcV6+sktLTrlvRX2g9/+rWxpUnFugFYX+uMbT9xySeo/fVlmlnavXqGzzJmX6ik6LLVFiGyXH63x2yS4t6f0ar9pxX8p/vgAAAACAiYNKMyTcQJVEfYftnz87T9vWrleXEVHENFVz/4NqfWnXkMesqA+cluiSpNaXdqnm/gepWppAsvx+rdpxn7L88U2EAgAAAAAwFiTNkHCdDY3auXqN2gPRJFdFfUDVLQ29t3tcLhXnFsjtdKqzoVHlGzbK6RleEWTf5FlbZZU6GxtUvmFj77kGMlA7aChsqrqlQaGwOZpPEWPg9HqUXVoip9djdygAAAAAAPQiaYYJr7qlYcCqs4FU1Ad0b/mTKtt8h+4tf7L3cb2VbwfYHmmXtsqq3rZUAAAAAADsxkwzpKRdrY3KrPf0ziYLmiHdW/6kzEhYbufJH/tQ2FRFfYAKMwAAAAAAcAoqzZAWKpvqtG77llMSZpJUc6BZZZvvoMIMAAAAAACcgqQZJhQzEk7p2WOxeWvdx4+ro6Y2rRYaRELhtPucAQAAAADJi6QZbDXJ71N2aYlWFPp15ZXXKtNXdNp9+g7pdztdo5o9VrpwsbatXS8zEh7R42KbHafnF4zocaNV2VSnss13qO7wgTMuNIiX/osZRiMe88icHte4fc4AAAAAAJwJSTMkvbEO6a+oD6iyqe7Ehs6RjfHr3ew4zG2eE5UZCWvb2vXyzc0b8n59t5UCAAAAAJDKSJrBFr6cPJVv2KrShYvtDkVSn6RRztBJo2QXa+8MmiNrcXQ7XSrOLZDHNXByMHbcUNjsXZ4QNEN9Pj6yCj4AAAAAAJIdSTOMq6AZ6m0FXFHol9ftGdPx+rYVdtTUjvo4pQuLdOvKq7Ty7KW9Gzcnolh7Z2VTXe/H+rZOjjapFjtuzYHm3uUJ95Y/qXvLn4x+vJVFCgAAAACA1JLaPWdIOrEtluUbtsbleMW5Bb1Jrppdu0+5LWKaaqusUmSSIafbHZfzTWRtlVWqbm7UZQ/frfINW8ecHCzOLeitFOzq7I5HiAAAAAAAJA2SZphQ+rZ19q9Sy/QVKRIKa9WO+1QzyVCotkE779ygOVs3K9Pnsyni5BJrQ+3fFhtLPo50mL/X7dGtK68a8xIAAAAAAACSDUkzTBh9q8oG4/S4lF1aovphDKs3I2E1tR+MV3gTQmx22ZnaYmPD/kdTjTaWxwIAAAAAkCyYaYZxEzFNddTUDPv+zbt29Q6fTwS306VvPf5rfeXKTyXsHGO1q7VRL+x5PdpmGhzZHLLB9LatDuN4fRcASFJ92/7B7xsJn7YsYDRf146a2rh9rgAAAAAAjBaVZoi7WLJk29r1cubkqTD/XEnSezX1enHLN6VlswZ9bJbfr7LNm3R49x7VdB7UNa/9XtvWrh/WebNLS3r/f0WhX22dITX1uT1W+RSLrWBWzqCtnkN9bscDNSrOyz/lfPEQ+7qVb9iqBe3HemPvbGjQzjs2aNWO+wY9Z9AM6d7yJ2VGolssjwdq9Miet3RwWoaunJQjp2Wps6FRPV5jWMeTpI6aGj1dU6NVO+7Wc//47yrfsFWhsKnlZ517yjyzmNp3m3XZj+/u/X6t276l93HD2ZIa+96Xb9ioTF+RJMX9awwAAAAAwHBRaYaE8LjcKs4tkMflltPrUaavSA6384yP63vfaQsWJjS2KRmT47LBM548LrdWFPrlcZ3MZ2eEz/y42IIFSdq2dr18c/Pkdji1bvsWvZM1WU63W+UbNirkHV2ePBbXyrOXyuv2DPvrFnvccO7r9HpUeO01Ktu8SZFQ9JPuu/lzOEZ6fwAAAAAABkOlGZBCYjPLPJ2ntjdm+f1ateM+Zfmj1Xb1m011HzveW93mcZ3cLhqMhFXd0qI5kYjczjMnOuMpljSVolVmJMAAAAAAAHah0gxIQpFQWGWbN2l6QYG6B0htR3osdRwN6fD7QR16P6hguOeU27NLS07ZGOr0epRdWiKn19ObmKprP6CyzXeo5kDzKY99s61Z67Zv0TRrfBNmAAAAAAAkEyrNkLR8c/NOmz02kcSqpEYzl8vpcSnTV6R2d7QCzJJUf8TUb5+t1/M1beoKmsqc7JHTYciQ1PJep3Jm3KjfV0oVew/pmZq31HT4sGZNvUI/e+GQdu2rVWH2VJ2VPVWLZk2OJtAmG9FWzpw8SdLRYFiWZcXr0x+UZVlqPxpS+9GQDMOQ1+WQ1+VQ1hSPXE7y+AAAAACA5EDSDEnL44q2Gkonh/jHy2iOF2tbXBDqVkdNrbL8fjm9iZmHFku0eY6b+unLh/XgR7+k83Z3aVXZPG296QJlTTn1vBX1AV3yre9o3aXfVeGcfHV1m7IWZ+nDZ0/TolnzdfhoRPVt7+vJwAE1Hj6qUKRH07xuzZw8V7+rPKRjoR7NmXZEXUe6dNR0KmfGjXqw0aHcGZYy3Au1ty2o+TOPafoklwzDUKTHUjjSo3CPpXDE0sEuUy3HJLdzto6FpEknuz3VbUb0TvsxvVh/WE/vOai2rqCyp3k1a6pHliWFwj06bkZ0+P2gwj2WJoWDMgwpXP6CjOPHlDfVpUvMJs2Y5FYw3KMDnd2aN3OSzs6ZprOyp8hNog0AAAAAkAAkzZBWxpJ8e7OtWet23K2nr7lT5f+4QZm+ooRtd3yn/Zh+9kKDXmls16ocQ7c880Nd+3e/VHZp3qCPsSxTc2e4tSRvRp+P5gxyX0tdwbCOHDOVOcWjKR6nDMNQW2WVdrU26qodO+SbfocajxvKcC/S03u69OLePTpy3JRlSS6nIZfDkMvhkNNpKHKkS4amac3yL+h/dod06GhQHzx7gzb94ZAy3B1akDVZy/Kz9K3VSzRvxqQhP/e9L70mQ9KCZSXa/1qVGjvD2hfp0d5DR+V1OTRv5iTtf++4ntlzUHsPHZUkLcyaLIchdbd3SJK8eyplnfg8JcnrcmrejAzNnZGhvMxJKs6dodlTvcP+fgAAAAAA0g9JM6SsvsPv41ERdv7sPJVv2KoF7cfU1O+2ivqAJKmwM6SOmtreYfYjdbDT1N/fV6m2rqBu+YsCfe0qvyzTVHvRLxUJhdVWWRWXRJ1hGJqe4db0DPcpH88uLdFlpl8/meLWnM5une106u5X/qxbL71xyIRj31bUivqAyjbfoRe/8p8qW3zeiGOb5olWjrmcDk1yOXRulkcrS/MHvX8wHFFLx3FZkjreekuGDGX5fTIkGYZkyNAxM6zWI9060Nmtlxra9ePn6pU1xaP/e5Vf82cOncQDAAAAAKQnkmZIWbHh9/Hicbm0otCvts5ogqijplbS6GaW9bf/veP6xYuHVd8W1KZrSlVWOOvkjSc+j/HaJOl1e1ScW6COozVjOo5hGHGKaGhel1NnZU+VJLU1R5OA2bOnnHa/c+ZOP+XvL9Yd0rrtu/T/ri3WBQszEx8oAAAAAGBCIWmGcdNjRnTjl7+qKy44d8ih/tmlJb2JqOzxCu4MRpsYaz0a1q+erFH53sM6HopIilY/xRiSwj2WsqZ4dNGiDK0tyzo1YWazJdnRZQyhsGlrHGNZqjCYSxbP1k8/c5Fuv3eX1q08S1ctmTduiT4AAAAAQPIjaYZx43A7NctXpPPOWWp3KAkV6pFeeLdbz7xzXA2dYa27fL5u+UCBZkx2n3bfSI8lhxGtyoq1eI5G6cLFcd8wmunzKa/Qr+JhxJWo2W6JNndGhrbfslybH39LD1W26F8+dp7yMifbHRYAAAAAIAmQNAPipK3L1D0vtmvfIa+WLwxqVf5klWZ7NGfp/EEf43TEp7LJ6/bEfcNoupgx2a1vrT5fL+09rM//92u6tiRXn70kX444fW8AAAAAABOTw+4AgIkmtmBgen5B78derH9f3//TQd1QNEVbzwnqzpIZumCOt7fdr62yatxmkqWaSCisjppaRULhIe9XUR9QdXPjqM+z/KxZevBvy3SwK6jP/Pxl1RzoGvWxAACpo6I+MKZqcAAAMHGRNANGKLZgwOmJFmpue36v/rfufW28ep5Ksr02RxcfKwr9o65ci3eraGdjg8o3bOz9eifyzYvX5dRXrjxH/3D52fp/fwjorgeq1NYVTMi5AAAAAADJjaQZxkV2aYkyfUV2hxF3x7tD6ninRV/6UJYy3OP/zymWPEqmK+CxVlGv2zPmY9n1c1OyYKbu/Zvluvr8efrcL17W1mfq1NVt7zIEAMD4CpohVdQHbF+GAwAA7EPSDAnTv1qp71bMVJBdWqJJGR7lfO02Hd3XKEnqqKmVNPyWwr6GW9013m0iY6k6G42hfk6CZkjVLQ3q7j6mtsoqRYKhhMZy2Tk52vF3l2jGJLdu+K8K/efTtWo/mthzAgCSQ2VTnco236GaA812hwIAAGxC0gxxE0vmjHeSJZlk+oqU6Ss6raUwUWJf53T5elc21Wnd9i2y9jZr5+o1ag8kPnnodTn16RWL9Ps7LlHmFI/+9t5XdcsvXlHrke6EnxsAAAAAYB+SZkAcpVIlXTKKzUvzzc0b8PaeyIkKvwRUoHldTt20fJEe+Nsyff5DhbrlF6/ouZq2uJ8HAJB8qlsakmoUAgAAGB8kzRA3obCp6pYGBU3a10YiNjOFr9vQdrU2qrKpTisK/fK4Bq7gC3ldKt+wMeEVaMvys/Tzz12khypb9De/eIWWTQBIcWYkzGscAADSEEkzxI3H5da67VtU2VRndyi2Gunw+tjMlOF83YInXrQzlNh+OdMz9P0bSvSZS/L1mZ+9rHfaj9kdEgAgQdxOF69xAABIQyTNgAnkzbZmrdu+RTUHmmkTSRIrfdnafN0S3X7vq6puOWJ3OAAAAACAOCFpBsTBsrn54zKMP2P4yzhTWiQUVtnmTcryJ8cChOLcGfqvmy/UV3//pv639pDd4QAA4syMhLVt7XqVLlxsdygAAGAckTQDxklHTa3aKqvsDiMlOD0uZfqK5PR67A6l14KsyfrF5y7WfzxVq4cqW+wOBwAQR26nS8W5BfK6k+d5BwAAJB5JM2AC8c3N07a162VGKDlLRllTPPrFLRfpD2/s1389Vy/LsuwOCQDSXkV9IG4jDeJ5LAAAkPxImgEJVL6/Xj956mG1Bfaox4yM+XgeV/RKd+nConFpB01mkVBYbZVVigSTa5PZZI9LP/70hapve1//9scaEmcAkILaKquoHgcAIA2QNAMSyO1w6js//o5e+drX5XA77Q4npXQ2Nmjn6jVqD5y84t9jRlS2eVNvQs0uLqdD37rufB16P6h//1OtbXEAAEanoj6g6pYGu8MAAAA2I2kGIGU43M7orDOPy+5Q5HAY+ubHl2j/e8f1H0+ROAMAAACAiYakGTAGdmxxXFHoT/vWzLEar5k0Doehb60+X42Hj2rrM3UJPx8AIP6KcwtUnFtgdxgAAMAGJM2AMZi7fJl8N1yfVFsckVycDkPf/cRS1R7o0o+fq7c7HABIO6GwqeqWBgXN5JqBCQAAkh9JMwATTnZpiTJ9RXaHMWxOh6Et1y/VC3WH9Ebze3aHAwBpxeNya932LapsGl7Fb9AMqbqlYdBN1RHTVEdNrSIhNlkDAJDqSJohLirqA6psqtW2tetVunCx3eHYLsvvV9nmTQp1B/Xlv/2yPnr/vZqeP7bWjuzSEmWXlsQpwtSU6fMl7dfI5XRo49V+fXPnW2zUBIAkVtlUp3Xbt0jSgK9rOhsaVL5hY+/8zIr6gJ559CG2aQIAkILsn5aNlOF2ulScWyCvm1ZFp9ejTF+RPK2NOj+/SLmFfl5MQ0U503R2zjQ99ua7uvr8+XaHAwBppbqlQccDNSrOy1f99Ohrlb4zQtsqq7SrtVEtU9ySpNKFRafNEF1R6FdbZ0g7xy9sAABgIyrNABtV1AcUCpvatna9QmHT7nAwDr74kSJt+3MD1WYAYIOeSDjaWmlGn3PbKqtOuahlRiKqb9tvV3gAACDJkDQDbOZxuVWcWyCPy213KBNSxDTVVlnV+wYo2c2e6tWS3Ol69u02u0MBgLQT8rpUvmGjOhsaBrx9muXUtx7/tb5y5adOuZh1ps3Vvcm4IMsGAABIJSTN0CtohlRRH9Cxo+9HkxC88EMSiM2HK83KO+UNS5bfr1U77pMsQztXrxn0DVAyuu3SQv3k+b12hwEAaafHjKhs8yZNLxh6zmhh9vwRXcyKJePaA4GxhpgUKuoDqqhPjc8FAICxIGmGXpVNdSrbfIdeevpP2rl6jeofepg5XLBdbD5cbOBy349nl5ac9vH+kvGF/8JZkzVvRoaer6HaDAASqaI+oOqWkxdVHG5n9DnFHZ/q7pObNiNxOR4AAEguJM2AcRIJ0boxWqPZHBoJhVVz/4M6vPutgW+PtXXa9P34xyvO1pY/vi0z0mPL+QEg3fWEzOjzcig86mPENm1Os5xxjAwAACQLkmY4jXdxgVbtuE/T84duXcDIOD2p1bqRLCKhsMo2b9Lll606pX2zs7FB5Rs2yuEe+I1MqLZBO1evse37MW/GJH303Bz9qmKfLecHgHSU0Sc/FqyLPk+cqWIZAACkL5JmOI3D4x5W21t/xbkFQw7JBRLB6XFFW228HrtDGbHbVp6lB3c1q/0o1YcAEE8jac3f1dqoF/a8ro6aWvVERl91FtN/IycAAJi4SJoBCbRsbj6JRAwqw+3UHR9erO89+bbdoQBAWutsiFadhbzDv2C4q7VRobCpbWvXq8tgphkAAKmIpBmAtJGMSwFWLZmrvW1HVXugy+5QAAAnDLd63uNyqzi3QG4nM80AAEhFJM0wbJFgyNbB6cBYhcKmqlsaFAqbdofSyzAM/f1HivSj5+rtDgUAUpIvJ0/lG7bKl5M36H2mF5yY51rAPFcAAHASSTMMS1tlleofetjWwenAcGWXlijTV3Taxz0ut9Zt3xKtDMjLH//ABrG8IEvN7cfV3HHM7lAAIOV4XG6tKPRr5dlLB/3d73RH57lGDGnb2vUqXbh4fIMEAABJiaQZANjMMAzdemmB7vlzg92hAEDKGE11cazd0uueeMtlAABA/JE0gyQpaIZU3TLwG/aBZkDFtkIFzZAq6gNJ1e6WLLJLS5RdWjKs+64o9LMwYIJ4/u3Xdc/zjyloxrdN+aPn5uiVxnYdC419cxsAQKo50NxbXTxcY30+3tXaqDf21amjpnbCj7M4+mZANfc/OOE/DwAAxmL4K4IwYVXUB1Td0jDoUNvY7eu2bzmtJWFXa6NautwqnJar6fkFKtu8SYd375HDHR14W93cqMsevlvlG7aS9BmB3lX007mSPdHEWjyHOyR6uBwOQ6uWzNMf3nhXn1y2IG7HBYB05cvJ07a160+5sBe7mJUtKZK3WPWbTdWa8d18GfK6VH7XBmX6ioZ98SwZjfbziF1s5XUhACAVUGmGUwzUklCcGx2K6/S4lOkrksPtHHBeFIZnV2ujqpsb7Q4DcRA0Q7rn+cf0/Nuvx+V411+Yp9++2hyXYwFAuou1Wg5Waeb0enpf1yD+knFjNQAAI0XSDLBBTyQcbd0waWu1W0dN7cnKvxGqbKobcevPUOZMz9DMSW7VHOiKy/EAAAAAAKNH0gxjYkbCbJkahZDXpfING9XZwOD38RAxTbVVVk2IJOWaixfqvpeb7A4DAAAAANIeSTOMidvpYssUkl5nQ4N2rl6TsCTl8UDNqKvV+lvpy1bF3nZ1x3nGDgCkIxbtJAatlwCAdEHSLM3FtmaaETb2ASNxPFCjjpqauB/X6TB0uT9HT1S3xv3YAIDTLZubP6LEWpbfr7LNm1SalZeWCbnYa0c2pwMA0gFJszQXm8nkdo58kWpHTW0CIgLwyYsW6P5X3rE7DADAAGILBJye1F5CnzHA9dSK+oDuLX9S67ZvUaSmIW5V1gAAJKvUfrbHmGSXluhKnb5ivO/acd8EXqUOJKvcmZM0Y5Jbr7/znpYumGl3OACQsrLj8DpmRaFfbZ0h7YxDPBNJTzi61CjL75fTe3JMRyhsquZAs3w5eXL1SG2VVafdBwCAiYJKszQVj1kU8XihCYyHga6WJ7vPf7hQP3y2zu4wAAADyC4tSfvXQQ5XdKlRe+DU15Mel1vrtm9RzYFmBeuiM0X73wcAgImCpFkaYhaF/XrMiMo2b9L0ggK7Q0GSOj9vpo6bPao90GV3KAAADMg0pF2tjQqaIUnRqrLjgfjP+wQAwC4kzdJQbI6Zx+W2O5S0Neu8c+W74Xo53XwPEiXL79eqHfdpekGBugdoRI+EwtHEZX7yJi4//6FC/ei5ervDAADYYCJsqNw3za1VO+7Wi0/sZL4ZACAlkTRLY4na/gckA6fXo+zSkkETk06Pa1SDnEsXLlb5hq3yzc2LR5hDWl6QpeaO43qn/VjCzwUAAAAAOBVJszS3JDtP29aulxmZgEOfUsCKQn9arqsfTysK/Vo2N19S9Oe9fMNWlS5cPOrjed0erSj0y+NK/B4VwzB0+8qz9JPn9yb8XACA+JiIczSlaGXbM48+1FsxFqvS7qipPWMVWWwpQCR06ic/UKU3AAATCUmzNOd1ulScWyC3k1c1SH1ep0srCv3yuifOBq/Lzpmj6v1H9O6R43aHAgBIYxX1AVW3NMiXE73g2mVEem+LLQXobGywMUIAAOKPpFmaMCNhVbc09A5qBXBSMBJWRX1Az7/9etLNjzEMQ39/WZH+/clau0MBACRQ0Aypoj6goBlKyqVN1S3RhJjH5T5xwdVpc0QAACQe5UVpwu10ad32LSo8YlIqb5PYYPosv19O78SpdEpV2aUlkqKbvt5sa9aqH9+tbWvXqzh38MUAsYTaeLfUfujsbG37817VHuhSUc60cT03AGB8VDbVqWzzHdq2dr0kad32LXr6mjvVdszqfc5KhL4Xi3oiJ9osl/rkCQ6+MGdFoV+th45p4Ze/qry5k9R17PSe1OLcAl2Ut1j1m83T2jYBAJgoSJ+kCV9OdJbTgvZjeuNQs93hpKXYYHpgpAzD0D9cfrbufqpW//mpC+wOBwCQYLEWSLM98a35obCp3fsbJUm5LkPld31Nq3bcJy06df5ncW6BqlsaZFmWXt3XoYfeOqqqtlnqapEiwaByLrhO3R1O5fR5d+H0epTpK+wt7fgAACAASURBVEr45wAAQKKQNEsTHpdbKwr9autkHTgwmOLcgqRdzHDhokx9+4k9evfIcc2bMcnucAAACRRrgTx+JPFbzj0utz7/3/8uSXr6mjvVMcj93jsW0WtN0oOvvqvz5ptaOcer286bppasDLXtqVHVw6+qNbhMD9c4NXfGp/UfTx9U9f4MLe0xtSDDUFtlFdX2AIAJh5lmAFJelt+vss2bJnx7yM0rFune8n12hwEASS02sD6VVNQHxn3m5pFgj8rf7da23Z26/ek2/eCZgwpHpDs/Mkffu6FEH5iXoQxX9K2EyyEtPLxPa+aG9Y/FEbUe+bVWXzBT0zPcurvqiP7h6Rb94nNfUntg4M/Bjs8PAIDhoNIMQMobSXtIJBhSeyCQlFfDryieqx8+W68vXlakSR4GMANAMuoJR2eBZfmTs3J5KF3dYbXd9U3d/uL7cgS75c9y67xZHn2icIra50xSdUuDsqYM/fYhOju3R7kzPVpRuECfvGiBnnryJX0nsEoVz7Tp02rWlcXzlOHmeQypo60y2s3DKBYg9VBpBkknZ56VLlx85jsDKaw9ENDO1Wv0x6d3Jt1Vb7fToY+Xztf9rzTZHQoAYBAOl0uZvqIhL7wEzZDuef4xPf/264PeZ0WhX8V5+QmI8HQe5xx98OzP63t7vPJmZ+unn71YP/rwbH1x6QxdljdJmRmDJ7hWFPq1bO7QcZ4/26tPvfBzfX15lpoOH9d1P3xRX390t95pPxbnzwQAgPii0iyNTfL7lF3oV7bdgQAYtk8tX6Trf1yuTy1fJI+L6x4AMNHE2kfXbd+i8g1bz3j/YCSs6pYWLWw/rrbOUNwqWbrNiJ7ec1Bbn35X0yev0MqiyfqQw9SSBVOVOcWjtgEeM9bZnzmTnbrzA0X6wmWL9VzNQd35m0pduChTFywMK3Myb0sAAMmHd1xpaEk2VWXASATNkCrqAwqFTbtD0VSvS5f7c/RQZYvdoQAARiEUNlXftl+S1BMy1VZZpUgw1Ht7/8TUm23NWrd9i9zOsSeVguGI/hQ4oE/f86yu+PenVd1yRLevnK1DXY9oYZZkGMM/VnZpyagTeE6HocvOydGPVkxWfvg9fe/Jg/p95XuyLOuU+zHrDABgNy7ppCGv05W0GwKBZGH2RFTd0qDShYtV2VSnss13qHzD1qT4t/O5D+Tr5p++rE9cmCeHYwTvcAAAtvO43PrW47+WJAXrGrTzzg1ateM+afro5mhalqXd+zv1yOv7tXv/kRMfi/6RJEtW78e6usNa6cvWVUtmKH+WR2WLz7E1KeUwDF2+cLIK/DO0vaJdG373pr5xbbFcTq7rAwCSA0kzABiA2+HUuu1bVHjE/uqy/mZO9mjpghn6c90hfdBHgzWA9MLA7aj6tvf1SNV+PbXngAqzp8o3J6LPXTJFF591jmKXUwzD6PP/0iS3U4Zh9CbK2iqrdLy5cVjnS+RFI4fD0GfKslS9f5Juu/dV/WBNqaZ4eZsCALAfz0YAMIBYG/OC9mOqaW22O5zTfPaSAn3jsQBJMwDoI2iGVN3SIDMStjuUhAhGLG0vb9TvK1s0e6pXH1s6X7d/8CxN9rh6E2HTM9zjHlckFN0YOj2/QBkHB3/O3NXaqMx6z4AJOMMwtG7lWcqZkaHP/Oxl/ejTFyoUNlVzoFmlCxfL606ujdYAgPRA0gwABhBrY27rrJIZCWvb2vVJNQdw8ZypMiTVHezS4jnT7A4HAJJCZVNd74D98WynjyWN2goKFKptSMAZnHr6XYe+ubtN162Yrl989mLNmDyy5FhsAUFxbsGg94ktiRpxdJ7oxlBJ6jIiY3rO/NjS+ZozzavP/vxlXVmcoS/+esuYFxAAo9H33ww/f0D6ImkGIC0Mt40ny+9X2eZNioTCigRD6qipldNrqDi34LSr3H2r0ezwuQ8U6OcvNOpfP77ElvMDAKLmLl+mucuXySep7Xh0hli82kjrjxiaO2ONjoWlbZfNVv7FhWMN9xSxC0O+nLxRHyP2ObZVVsntdA74nDkSK86apW1rl+lfHnlFc2d8Wo+8/p6W5IVp2YRtaAsH0hdTNgGgD6fXo0xfkZwel9oDAZVv2KjQIC/SY9VoHpc9L+IvLZqtN1uO6L1joTPfGQAwobQe6dY3X+nQY/scaut6RKvmhRRqqD9l0+ZYddTUyu10qTi3QB7X+Ld19tV/k+j8mZN0ywdm60DnAzLaDunm/3xGnd3JN2cUqc2MhFXd0qBQODVbvgGcGUmzFBQJhk5bXw4g9RiGoRsuWqD7Xn7H7lAAAHHSY1m6t2Kf1m3fpUtzM/TFJRFFejrlcLlUvmGj2gPx3XbZnSTFW8G6Bu1cvea0z88ZCerSUKPWFE7Wbdt3KRzpsSlCpCO306V127ck5XxbAOODpFkKag8EBnzRAWBgS7LztG3teoXCA1/BXjY3/7RZFtmlJcMu0W+rrOot64+360rz9Mjr+xUMRxJyfABIFkEzpBffel1tgT2KhJK36mO4zw9fufJT6jKiv7t3tTaqsqlW3/3Eem19plPvtB/Tg39bpkvnT5JhnPq4jpraIZ9TKuoDvUsB+jtZNRN9vsv0FfU+x8X+jEV2aYmuvPLaYR2noj6g6j6bOwdL3i3qMnXg+z/ShxZN0aVF2fqv5/eOKUYgnob69wYgNZA0A5D2vEnSmjIakzxOXX3+PD24iyugACaO0VTFVzbVae3Gz+uVr31dTk+SlEeNQWH2fLmdzt6/7z3k0mPVHt11+dn66qpzleF2DvHo0emtmjlg33NGdUvDqJMMt688S8++fVCB/Z1xjgoAgIGRNEthwUhYFfWBU6pnRlIdA6S7vksBktnaskX69UtNCoVpWQGQnPpW3FbUB/THp3dSFX/C+96pur/Oocom6f+umqsLF2WN+ZjHAzUDVqPFY+i/XQ4H3tLe3+7Q5r8+V1/53Rs6Gkzu52YAQGogaZbC3mxrVtnmO2y9mghMZH2XAiSzaRlu/aU/R4+8vt/uUAAAw9R+VLqv1qFf/8UtWjzD0g3LpCne06vLMoaRG6qoD6i6peGM90uWof+jEZvpNuPgPt3ygQJ97eFqu0MCAKSB5H4nCAAJFqu8zB7jcYKRsO55/jEtnpWj80IuZfn9cno9Yw9wmD61fKG+eF+lPnHhxKseAIB0YVmW9rR2K3vaNXq8Wlo1z9KHn/qB5l73TbUYZ358vIx1dlm89ITD6qipVWSpb0SPu7Y0V7+vbFHdwfe1eM7UBEUHAACVZgAQF2+2NWvd9i2y9jbb0nKUMz1D0zPcqjvYNa7nBQAM7N2jYb3U2q2Hq1p0959qdedvKnX1D/5Xf3qrU+8dK9dNy6XiWZYcsoY8jm9udFlNbGnAWBTnFiRNwkw6WT3W2XDmKrn+1pYt0n+/tC8BUQEAcBJJMwBIETdetED3v/KO3WEAQK+gGToxX/XUHsPhtBwOR7Jtrus2I7q3vFF//YP/1XdeO6JXDgZ1oLNb58ybpi9etli///wH9IUPz5EZOTjsY3pc0ZbKvksDRuLk92DgDdHjxTSkPYfflRmJzzf/Q2fP0Ut723UsyeeOAgAmNpJmANBP34UZE2l5xofOztb/1h1mIQCApFHZVBedr9qa+vNVX93Xoet/XK6uYFj33bZC3790lr5w/gzdtrJQf3XeXC2eM00e16kvvT3BsMo2b9L0goIzVoFNLyjQqh33aXp+waD3CYVNVbc0KBTqjrY9BkMnvwcjnHEb7+e/fdPcuuvZByRFN2j2TeItm5uvZXPzR3Q8p8PQ1Uvn6aFK5nnCHm2VVeqoqbE7DAAJRtIMABJgV2ujnnn0oQG3lyWKy+nQZedk609vHRi3cwKA3XpCptoqqxQJhmw5f9PhY/qHB17X3U/V6kefvkCf/9BiTfUOb2yww+mKLpxxn3kwv9PtVnZpyZDLaWoOREcFeDwZKt+wMS6jAuKRPIuEwrrxy1/Vjz/1JUnSuu1bhp3E2zfNrZz/83fqMU9vT73p4kX6VcU+BcNjb10FRiMjHP0d1FFTm/Tb1gGMDkkzAIiD82fHb+bMWHxyGS2aANJLsK5BO1ev0R+f3qlQ2NS2tevHrRXxj7tb9YX7XtPqC3L1y89dpLzMySN6/CS/b9yqme2cZ+b0uDTn3HO0dFGRJGnb2vXy5eSpJxyttMvynx5XbCNo2GHIm79QDvfp7akzJrt11fnzeN5D3AXNkKpbGnQ81B39eZ07+KKlYF2DyjdsTPpt6wBGh3/ZABAHsZkzHUftLdNfNGuKIj2WmjuOjfjNGwAkWiwR4l9coLLNm3R49x5JilviyONyqzh38PbFeLEsS1ufqdOr+zp0798s14xJZ64Ui4kl9nw5w992PFSyK/bm3peTp+VnnStJ6ursHvaxx5vb6er9HkVcLmXm559x2/Qkv0+ZnQNXEn72knx94sfluuGiBfK6Rjf3DeivsqlO67Zv0ba161WcWyDPID9/AFIflWYAkGKuX5anB3el/vwgABNLKBxWdUuDzEhYDo9bmb6iAauHBn+8qf9z9aclRVvg7VoAEAr36Ev3V+m9Y6bu+cxFI0qYVdQHVHOgOfom3DX8xw0l9ube43LL6/aMaWnARDTF69JHzpmjPwWGv1wBAIDhImkGYEKbSIP6x8tfnTdXTwYOKNJj2R0KAPSqaY3O23I7R9fo4HG5ddaceZIksydy2jD5mBWF/oS1IR4PRXT7vbt04aJM/d+r/XI6jCHvHzFPzluLVYTFa3tkKohXe+onLszTb1+lRRMAEH8kzdKAnTMsgHSQbIm7DLdTFxdk6c+1bXaHAgBxEWvrjHE7nCMaJh8PlmVp/YOva9WSeVpblj+sx3Q2NGrn6jVqDwR6K8JGkjQ80/NL/69LsltR6O9tzYxncjN/9hQdNyNqPZK8bakAgImJpFkKyvL7VbZ5k0LdQW1bu16lCxfbHRKQlnrC4d5tSn2rDcbDDRexEABA8usxI9Hfk0P8bkyWCq2fv9Co7GleXb9sga1xDJdpSL/aXa7Kplq7QzlFoioBV1+Qpx2vMZoA9hnv13oAxgdJsxTk9Hrku+F65Zy/RMW5BfK6hx6uCiB+phcUaNWO+3T5Zat0fv5ilW/YqM7GhlOqDcbDufOmq60rqEPvB8flfABwJt0DFFg53E6Vb9g45O/GWIVW6cIiXX7ZqlMuDPpy8gY8bry9uq9DT1S36qurzh3zsWIdAH2TRyNNJJW31Oue5x8btD112dx87Zvm1l3PPjDqdth4Go+K7KvOn6fH3nhX4UhPQs8DVNQHBpypON6v9QCMD5JmABBHTrdb2aUlZ9wENh5WX5in33HVHUAK6X9hMF7D9IfSfjSkrz1Ure/fWCKPa/gvnbNLS5TpK0pITNOs8W9PTXaTPS5dWjRbTwYO2B0KUtThwFuquf9BRczTk9X9tVVWqa2yahyiApBoJM0AIEX99dL5evT1d2VZLAQAMDHZPbOrp8fSXQ9U6ctXnK3cmZNsi2MszEg4bcZ13Fy2SNvL99kdBlKUw+WKdhA0TJw5ggDGjqQZACRIJBRW2eZNmp5fYMv5p3pdOnfeNO3a12HL+QFgPHiCJ37XFsT/d+1/PlOn83Nn6ENnz4n7sceL2+lKm3EdeZmTlTXVo5f2HrY7FABAiiBpBgAJ4vS4lOkrktNj3zyZGy5aoAdYCAAgCSzJztO2tevjOtB/RaFf5y9aHP1d645vq+b/1h7SK43tuvOjvrgeF4n11VXn6l93vqVuM2J3KEgT3sUFKtu8ST38zAEpiaQZAKSwCxZmavf+ToXCDEYGYC/viYqngQbT72pt1DOPPjTgDCBfTjTZNtDQ+0RpPdKtb+58S9+/oUROhzFu50XUWDam5s6cpOtKc7X1mboERAaczuFxK9NXJIfbaXcoABKApFkKS9RKbwAj03cYdEdN7bgOhjUMQ5cUzlI5rSoAkkRse+SZxOaZeVzuIYf+x3sz4/vBsL7w69f09WvO0+yp3rgdF8PTUVOrF5/YqXXbt+i8+fkq37B1xPPYbi7L10t727WntTNBUQKnSuTiDwD2ImkGACnuyiXztPONd+0OA0Aam+T3jSmxNZwLgfG4WNhtRnT7vbt066UFuig/a0zH6mtXa6NCYTMhFXO+nLxRJZYmAo/LrRWF/hHPY3M6DH3j48X62kPVivSwDAcYbxX1AVXUB+wOA4gLkmYAkOJKF8zUGy1HZEZo0QRwUqLf1FTUB1TZVDvszY09kbA6amoVCYbOeN9EVdN//dHdurJ4nq4onhf3Y5+pYm4kuoyItq1dL19O3qgTS8kmy++P61woX840XbAoUzvf5KIRAGD07JtODQBpJMvv16od9ykSit8A7OFyOAwtL8jSS3vb9RdFs8f9/Bijd16RpsySss6yOxJgxPpvbuyb6OpfeRbyulR+1wZl+oo0vdg/6plWo/W715oVNHt00/KF43bO0XI7nSrOHXxbaJbfr9vv+ZmumOrWssJzJ0RCzen1KNNXpI6a2rgd8/oLF+i7/7NHf710ftyOCQBIL1SaAUCc9K986Dtnx+n1KLu0xLZNmquWzNNjXG2fmIKd0uNfkX5xtbTnMamHikHERyhsqrqlQUHzzJVdiWQa0p7D78qMnKwwqmyq07rtWwZcGpAItQe69MsXG/WNjxfLMCb+4H+n16O8Zcv0gXOWToiEWaIsnjNVrUe69X5w/C9YAQBSA0kzAEgDyxZlquqd9xSmRXPiWfwR6aYHpGt/KDU8L93zEanqPikyfpsEkZo8LrfWbd+iF5/YOa4LSvrbN82tu559QNOs6Oa5jppaHQ/UjNv5j4XCWv/g69py/VJNtunCxmix9OnMPnJujp5664DdYQAAJiiSZgCQBhwOQxflZ+rlxna7Q8FozVwoXflt6aYHpfa90rYPSy/9lxQ6ZndkSEJtlVW2JsImkm8/vkc3LV+kopxpdocyLNEtfT67w0iI2AbC7jjmLlctmcdcMwDAqJE0A4A0cWXxPD3+ZqvdYWCspsyWLvtn6XOPS5GQ9NPLpee+Kx3vsDsyYMJ5dV+7Gg8f0/XL8hJy/P7D7akMG57zZ8dvIygtmsDocQEGIGkGAGnj4oIsvdLYrkiPZXcoiAfvNOmSL0rrnpKm5Ujbr5X+55+l9w/aHRnQqzi3YFRJIt/cvN7tkIlKMpmRHm16NKBvXJu4OWax4fYOtzMhx09VHpcrrhtBadHEeDENaVdro7qPHx/2NmAAyY2kGQCkCafD0AWLMrWLFs3U4vJKF6yV1j0t5V4o/ff10jPflLo77Y4MOKNIKKyLbrtVktQTDqts8yZNzy+QxxXduulxuRN27l+/1KSPnJujBVmTE3YOJAdaNBFvPSFTHTW16um34XffNLdW7bhbdYcPqHzDRtU/9PCErdSqqA+ournR7jAA25E0A4A0ctWSeXq8mhbNlORwSsXXSbc+JU3PlX6xSir/oWR22x0ZkkhFfUAV9QG7w+jl9Lg0bcFCSZLD5VKmr2hctgwfOWbq/lfe0bpLz0r4uWA/WjQxVrF5ezHBugaVb9iokHdiLQ8Zb7R3IhWQNAOANLK8IEsVew+rhxbN1OV0SRd+RvqbJ0/MPPtL6e0n7I4KSaCiPqDqloYBb4uYptoqq2xtJZrk9ym7tGRczvWDp2u1bmWBJnlom0wXtGgCAEaDpBkApBGX06GSBTP1ahND41Oee5L0F1+SPr1D2v076f6bpSMtdkeFcTbcq/ydDY3auXrNhG4lGq6GQ0dV9c57umZprt2hYBxdUzJfD1XyOxAYjqAZUnVLg8zI6KozQ2FT1S0NCoWp7sTER9IMANIMs13SzNQ50nU/kZbdIv1mjVTxI6knYndUGEfVzY29LZlmJKzqlgY9//brg1adpbpvPf6W/unKc+RwJGb4f3/Rti7fuJwLg1s0a4qOhSI62EnLOsbOu7jglM24qaayqU7rtm+R2zm69lOPy61127eoprU5zpEB44+kGQCkmbLCWSqvp0Uz7RR+WLrlj9LxDulnV0gtr9kdERIgaIZUUR8Y9Oq+2+mKvpE5kPxvZFYU+uO+ObO8/rBcDocuys+K63HHWyK+Nung2tJcPVRFtRmGb7ANwA6Pm824QJogaQYAacbtdGhp3ky9Rotm+nFnSB/+qnTtD6Wnvi7t/DJbNlNMZVOdyjbfoZrWZkXMk9vdYq0yfVttzEhY29aul29unqbnp3bVhCT19Fj67v/s0T9dcc64n5skV3K46vx5euwNKq0RP8vm5vNvG0hxJM0AIA1ddf48PUaLZvqaXSTd/JCUe0F0y+a+crsjQgJ0NjT2bnerOdCsddu3SFI0UZaTJ7fTpeLcAnlcLjk9LluqJrJLS3TJFau0be16hcJm78cSsRBgx2vNuqggSwtnTY77sRE/ifr+S9L0DLfmz5yk2gNdCTk+kGp6wmF11NTauiQGsBtJMwBIQ7RoQoYhLb1RWnO/9Oxm6dlvSaMc+IuJ42SizG13KL28bk/CYzoWCuvnLzTqjg8vTtg5MDFcuWSeHq9utTsM2KSiPqBnHn0o5ReexIvD5VL5ho1qDwTsDgWwDUkzAEhD7hNbNGnRhGbkSjf/XnI4pXuvld5rsjsi2CximmqrrEqpyoIfP7dXn1q+UNMzkidZCHtcds4cPbXnoN1hAAAmCJJmAJCmVi2hRRMnOJzSyn+UPrJR+s1N0u7f2x0RxlH/drjOhkbtXL0mZSoL3j1yXM+9fVA3XrTA7lCQBKZ6Xcqe6lHjoaN2h4IU1hMOq2zzJk3PL7A7FABjRNIMANIULZo4zYKLpc/+QdrzmPTwFyTzuN0RIYEG2wqXar77xNu66/Kz5XLyshdRVxTToonEcriicyKdHpfdoQAThmEYdxqGUW0Yxm7DML7U77b1hmFYhmHM7vOxDYZh1BmG8bZhGH+VqLh49QAAaYoWTQwoY4Z03bZoAu2XH5M6Gu2OCBi11995Tx3HQvqgL9vuUJBELjtnjp55mxZNJM4kvy9hCy2SUUV9QBX1qVGdDHsYhlEsaZ2kiyUtlXS1YRhFJ25bIOkvJTX1ub9f0o2SzpN0haQfGoaRkG1GJM0AII399dL5erhqv91hINkYhnTBWunKb0v33yzV/cnuiDBCk/w+ZfqKRvSY7NKSET8mmVmWpc2Pv6WvrjrX7lCQZLKmeCRJ7UdTZ24fAExw50qqsCzrmGVZYUnPSfr4idu+L+nLkvq2x1wj6TeWZQUty2qQVKdowi3uSJoBQBpbcdYs7drXoWA4YncoSEa5F0g3PySV/1B67rtST4/dEWGUfDl52rZ2vcxRbkgNmiFV1AcUNBOTZFhR6I97q+jj1a0qmjNNRTnT4npcpIYPnz1Hz1JtllaCZkjVLQ0KhbrVUVObUstO7NJWWcUmUsRLtaSVhmHMMgxjsqRVkhYYhvExSS2WZb3e7/65kt7p8/fmEx+LO5JmAJDGnA5Dl52Traff4o0DBjFllnTTg1L4uHT/TdLx9+yOCMOU5ferbPMm9ZgReVxuFecWqHRh0bCTU323aFY21als8x2qbKpLcNTxEQxHtPWZOn3po6lTOYf4+si5bNFMN5VNdVq3fYs8ngyVb9g46LKTivqAqlsa4nbejppaEkuANNswjF19/tzW90bLst6S9G1JT0p6QtLrksKS/lnSxgGOZwzwsYQMaiZpBgBp7roL8rTjtWa7w0AyczijmzVLbpK2f0w6sNvuiDAMTq9Hmb4iOdzDH/HRt0VztFs0k2G2zff+WKNPXJinWVO9tsaB5FU0Z6oa2o4qFKaCFqPTf/MwgCEdsixrWZ8/P+l/B8uyfmpZ1gWWZa2U1C6pUVKBpNcNw2iUlCfpNcMw5ipaWdZ3LXaepITMnCFpBgBprjB7qjqPh9XWFbQ7FCS7c6+WVv80ulnzzd/aHQ1GaCwtkKGwqW1r12tB+7Gkr5h4Zs9B1be9r89ekm93KEhihmGodOFMvdFM9SziIxIK66LbbrU7DGDCMgxjzon/LpR0naTtlmXNsSwr37KsfEUTZRdYltUq6RFJNxqG4TUMo0BSkaSXExEXSTMAgK4pna+Hq1rsDgMTwewi6TOPSnv+ID3+T1LEtDsinFBRH1BlU622rV2v0oWL43JM05B+tbtcu/c3qji3QB6Xa8D7JXrm2XDVHezSlj++re98YqkMY6DODeCk5WfN0ksN7XaHgRTh9Lg0bcHC0z7eEw6n1Qy1eLe3Iq3sMAwjIOlRSXdYltUx2B0ty9ot6QFJAUXbOe+wLCshQ5pJmgEAdPX58/XoG+/aHQYmCu9U6RM/l2YskO79uNTVandEOMHtdKk4t0Bet2fUx+g7C23fNLfuevYBuZ0DJ8tiYjPP7i1/UqFwNJGaiOH+QznQ2a07f1Olu28s6d2OCAxlRUEWSTMknMPlGnKG2kRVUR9QdXOj3WEghViWdallWX7LspZalvXUALfnW5Z1qM/f/9WyrELLss62LOvxRMVF0gwAoBmT3FqQOUm79x+xOxRMFIYhXfIF6YP/JP33J6SmCrsjwgCiM8p8I3rMmWahDTXUet32Ldq9v1HVLQ3jWnV2oLNb67bv0tc/dp4Wz2FbJoZnzvQMdRwNyYww1wwYrr5zK3siJ6roTKrOkbpImgEAJEmrL8zTb19lIQBGqOBSac390p++Lu36md3RYACJqvhqq6w6LXn2lSs/JSmaPBuvTZutR7p16y93aePVfi3LzxqXcyJ1FOdOV3ULF4yAoQx2sSTkjVbRdTbQjonURdIMACBJunTxbFXsbeeKO0ZuRq609iFp34vSk/+f1MPPUDwFzZDuef4xPfKHHUkxhL/HjEQrC0Lh024rzJ5/xlbOeNr/3nHduv0Vff2a80iYYVRWnDVLFXtp0cTYZZeW6JIrVmnb2vW9beqpZFdr45CbkSOmqbbKKqrOkHJImgEAJEkup0Mri2br2bfb7A4FrrtbEQAAIABJREFUE5HLK338J5LDKf3uVsnstjuilFHZVKd127domjVwu2QiRNs6iwa8zeF2RisLGgeuLDAj4bguIxhMtxnRHb9+TZuuKdYFCzMTei6krosLsvRKI0kzxIfX7TmxNMVtdyhx0RMOq2zzJk3PLzjl46GwqeqWBpmRk3PXOxsatHP1GqrOkHJImgEAekVbNN+xOwxMVA6H9JGNUsHK6JyzY7wRTbS+s2UkqTi3YFyH70dC4dMqC+KxjGA4/uWR3frksgUkzDAm82ZMUuuRblmWZXcoQNJxuFzK9BXJ6Tm1grjmQPO4X8wB7ELSDADQy5czTYffD6n9aHqsRUeCXPhZ6QNfkn51nXS43u5oMICRzjmLJeP6V6B1NtpTWfDbV5sVivToxosWjOt5kZoWZk1WU/sxu8MAJgxfTp62rV2vLiMy4O2ximPf3LxxjgyIP5JmAIBTXFMyXw9XtdgdBia6oo9K12yVHvysVHfa1nBMEIu6TH3vQ588ZT5PJDRwu8542dPaqXsr9ukb1xbLMAxbYkBqKVk4U1XvvGd3GEhyvb/7Cob+3Zeo5SvJxONyqzi3QG7nwJVmpQuLdOvKq+RxRSvUBlocA0wUJM0AAKf42NJcPVy1n1YVjF3OedLND0kv3C2Vb5X4mZpw3JZ0zqx5p8zncXoGbteRohVpt668KmFvGLvNiP7pt2/o365fqskDnB8YjZIFM1XZRNIMQ5u7fJl8N1wvpzs15pXFi2lIew6/e8p8MyCVkDQDAJxixmS3FmRN1u7/n737Dq+qMB84/r0ze0/IICEkQAiQMAOKOBAFBQciIooTa7Wt1toqraUttaWD/lzFhRNRXLgFVERcJCgaRgiQQQYJJCQkJCEhd//+OIYyAmTce8+9yft5njxqcu85b5CbnPued+xvUjsU0RsERMANq6G+FFbfBqZmtSMSXuxf6/Ywe0wCg6ID1Q5F9CLD40LYUdWodhiiFzrTUpXeojzIwH0b35T5ZqLXkqSZEEKIU1w7Jp43t8hCAOEkOgNcthTSpsFLl0PNTrUj8lo2i0UZvG8yY7KYya8qpXHrdgrfeOuEYfzOEJ6ezvTVq87YihSclMyEJYsxmqxOPXdHtpTVU1p3hHnjE11+LtG3BPjosdodmKxSKSNEV7W38bfPNxsTm9Tr21NF3yJJMyGEEKeYmBLJlrIG2izyBkI40YjZcPVy+OCX8OMKadfshqbSMtbMmkt9QQF5FcUsWLEUo9GXnIWLnD6MX+djJCor85RWpKisTKKyMpXH/NSqqdW5tlXSZnfw9zW7+PPMYTLHTLhEer9gqbAWLtVQWOSyuV4nb1J2p/Y2/tPNNxPC20nSTAghVODpA1F1Wg1T0mP4rKBG7VBEbxOVBjd9BFU/KO2abdIS1VN2a+eGUzvb8cmzZo2N5fPvJytxkEvO9fYP+xg/MIIBEQEuOb7wfO1D2MPTXVPBMjI+hHxp0RTitCx2G/lVpScshhGiL5CkmRBCiA7NHh3PWz9Uqh2G6I2M/jDjMRg6Q2nXrNyidkReTav/aTC/i4ZTd2YT3IS4FG4/7zJ8DEann7+hxczLm8q5+wLXJOSEdzi2gMLH+X/HAIbHh7C9UpJmQhzPLz3t2M0Rg1bHghVLKazp+NrQaHJtYlsItUjSTAghRIcSwv2x2e1UHT6qdiiitxp2FVz3Knz2J/j6/8BuVzsi4YEe/ngX90xJJdBHtmUK10mLCaKwRhaVCEVaTDw5C5e5rHq2N8hOSWdMbNKx/9bqOk5s28xWGgqLsJldP/tSCFeQpJkQQojTumZ0PO9ItZlwpdBEmP8+mFvg1WugWVqCxf98U1RHi8nKJcNi1Q5F9HIGnRaDTkurvLEXgFFvIDsl3SXVs31NU1kpOQsXoTPKjQ/hnSRpJoQQ4rQuHdaPdTursdtlYLtwIZ0eLvojnHMPvDoLitarHZHwAEfNNpasVYb/C+EOw/oHUyDLAIQQQhxHkmZCCCFOy8+oY0R8KJtL69UORfQFAyfDje/D98/BJ38Aq1ntiLzC8TNnepNHPy/kunGJxIb4qh2K6COGx8lcMyGEECeSpJkQQogzunZMPG9t2ad2GKKvCIiAuasgJAFengGHK9SOyCM1FBaRUN96wsydzgzs9xY/lNezo7KReeMS1Q5FeBhXbp8eER/KDtmgKUSHfKVzWfRRkjQTQghxRpkJoZTUHqG5TVaMCzfRaCD7Trjk7/D6PGnX7IDdaqVlbylj4wepPnMnKivTqZVuTW0WFr2/k3/PHolWq3HacYU4m5SoAIoPHlE7DCGEEB5EkmZCCCHOSKPRcNmIfny0/YDaoYi+Jn403PgebH4KNv5DtmsCwUnJTF+9itBBqeQsXER9QYHaITndkjW7uOO8gcSF+qkdivAgzk7OdkSv0+Jn0MlNIiE6KTw9nemrVxGcnKx2KEK4jCTNhBBCnNVVWfG886Ns0RQqCIiA698Ehx1WzYHWvjtfzy89jdjxY44lDiYsWUx4eu9ox2z3Y0UDBxrbmDmyv9qhiD4qIy6EnbIMQJxBb2qFP1luSQFffPgeRwsKO/V4nY+RqKxMdAaDiyMTQj2SNBNCCHFWUUE+hPobKT7YrHYooi/S6uCC38PYBbDiCqj6Qe2IVKcz6glLS0Xno25rpjNZbXb++lEBf5oxDI1G2jKFOkbEh7C98rDaYQjRLa6c+ZcWG0/OwmWkxcS75PhCeCpJmgkhhOiU68clsiKnXO0wRF+WNhXmrIR1C2HLC+BwqB2RcKKVueVMSo0iOTJA7VBEHzY8XjZoCtERo15Pdko65w0eeUqlXXZKOhnxSeoEJoSLSdJMCCFEp0xOi2LrvsM0tJjVDkX0ZWEDYP4HcGAbvHcXmFvVjsilcksKyK8qPeXz7pjv5E4Hm9t464dK7jo/Re1QRB+XHBFAaV2L2mEIIYTwEJI0E0II0SlarYYbxg/glVypNhMqM/jCjMcg6VxYMRMOlagdkeihJWt2c//UwfgadGqHIvo4rVZDkK+exlZZBiCEEEKSZkIIIbrgiqz+rM2vxmS1qR2KEJA1Dy77P3j7Ftj9sdrRuExajDJHJitxkNqhuEROySFazVYuGBKtdihCADAiPpTtVTLXTDiHzWxlwpLFBCfJhkkhvJEkzYQQQnSaj17HxUOjWZdfrXYoQij6jVDaNfNWwmd/AptV7Yiczqg3kJ2Sjo+h9wz9b2ex2fnH2l0smjFM7VCEOGZkfCjb9knSTDjHscUtRr3LzmG2WsivKsVs7f7vQJPFTH5VKZZe+HtUiJ6QpJkQQoguuW5cIqu+q1A7DCH+xy8U5rwKviHw6iw4clDtiEQnrfqugilDY4gL9VM7FCGOyUoMJa9CkmbCexj1BhasWEphdWW3j5FXUcyCFUsx6Hqe3MuraOCOFVv4z4+HebbKwFvZ83h+ZxOf7qxmU3Edr+SWs2TNLp75soTqxrYen08IV5KkmRBCiC7pH+pHkK+B3dVNaocixP9otTDpPjj317DyaqjIVTsicRYtJiuvf7eP2yZJy5LwLP1D/TjQ2IZDNvT2aluqy8gtKVA7jF7FbHPwz3W7+fcne/j1xWmcH+/H2GAb5+/8lMgjdWzJK2RjYS06jYbz0qKIDPThtpe/57OCGrVDF+K0XFcjKoQQote6IXsAr+ZW8NcrM9QORYgTDTwf5r4B7yyAoTNg/J2g0agdlejAc1+XMnd8Iv4ubFkSorsGRPhTfqiVpMgAtUMRLnS0oJDaJrNbtxHX5m0F8NgNyHarlZYD+7v8vOqoZB56P58rM0NZedt4tFoNQ/uNpzbPhzXNtUwIsxGWFkxU1tATnjclPYYFK7YQ5Ksne2CEs74NIZxGKs2EEEJ02aRBkfxY0cARk8y9EB4oJA5ufA8aypQlAaZmtSMSJ2kxWVm3s5rrxiaoHYoQHRqVGMaPFQ1qhyHcpDZv67FkVl+n1ev5/tnnOv14h8PBUxtLePjjAh65diS3nJOMVnvmm1W5JQXHqvxC/Az8d24Wiz8soLKhtUexC+EKkjQTQgjRZVqthpkj+/NeXpXaoQjRMb0Rpv0ThlwOL8+A2j1qRySO89aWfcwaFYdBJ5eiwjPJXDPhCjaLhYbCImxm9W46OjNB6HA4eGR9EaV1R3htQTYDowK7FUt0sC9Lrh7OL1fl0arin40QHZErFSGEcDOb2XrCBZO33t2cPSaBt36olJkvwrMNvwaufBre/Rnkv6N2NAKw2uy8uaWSOVJlJjxYRlwIO6oa1Q5D9DJNpWXkLFx01k2ax1dinU1uSQH5VaU9iqs7xzBb7Tz0Xj61zSb+cfUIdGepLjvZyQnEkQmh3Jg9gN++tR2bXa4theeQpJkQQrhZU1lppy6YPF14gJGUyABpXxGeL3oIzP8ACt6DtQ+CzaJ2RH3aJztrmJQaSZCvQe1QhDgtX4MOjQbaLDa1QxG9RFRWJmFpqWqHcVppMfEsn38/zZqz/5232R0sWLGF1OhA/n5VxlnbMU9mtlrYunnTKdfDV4+KZ3BsEA+u3o5dEmfCQ0jSTAghRLfNyx7AytwKtcMQ4ux8g2H2yxASDyuugIZytSPqkxwOBy9+W8rN5ySpHYoQZ5XeL5iCA7Ipui9xRtWWtzLqDWTEJWPQ6c762Be+KWVkQig3n5OMphvLdox6A498tLLDr/3qolTiw/z55ao8mZ0rPIIkzYQQQnTbqMRQSutaqG8xqx2KEGen0cDEX8DFi+HNG2Hnu2pH1Od8X9ZAYoQ//UL81A5FiLMaER/Cjkpp0ewN+nIy7Hi5JQXkV5b16BgltUdYk3+AX1wwyDlBdeCeKalckhHLvOW5NLVJdbhQlyTNhBBCdJtGo2H2mHje+H6f2qEI0XnxY+CmD2HXR/DBL8HconZEfcazX+1lwaSBaochvJXdhvboQQx1W2HH21D8Oez7Dso3QWu90083Ij6UbZWyDKA3MFstlNTuP+XzdqvV5YP5o7IyicrKdNnxnSk7JZ0xsUlnfMwjnxXy0GVDMepdm0qYObI/87IHsGxDsUvPI8TZePdAHSGE8DLectHUFVdlxXHNUznMGZtAeIBR7XCE6BzfEJj1HGxbBS9dBjOfgNjhakfVq5XUHsFsszO0X7DaoQhv0nIItq6Eos/A1ESgIwhbQH8IGAE1O8F8BDQ6qPk7mJohNgP8I/73/KghkDoVAiK7fOrU6ECKao448ZsRajHqDfxj7WunfF6r15Pzm4VMWLLYI+eNtS+K6sr1o81spTZvK+Hp6eh8un5dZjNbGXvH7fDjqdXYRTXNNB61MHpAeJeP2x3XjIpn9jM5lNW1kBQZ4JZzCnEySZoJIYToEX+jnnumpLJkzS7+PXuk2uEI0XkaDWReD/Hj4L2fK5s2x92hfF443XNfl7JgUrLaYQhv0bQfvnkEKrfAqPnKTMKACJp+SiL4d5REsFmURJrppzlkDjsc2AZv3Qx2G6ROgcGXKctBOkGv0+Kj19JishLgI2+bhHdoXzg1ffWqbt2s1Rn1jB47keUZKZitJ7ZG/veLYn55ofuSi1qthoXThvD3Nbt4dv4Yt51XiONJe6YQQqjEZLOSW1JAbcHuTj3eZjJTm7cVm8nz5odNTY+hodXM5r2H1A5FiK6LHAQ3fwSHK+D166GlTu2Iep26IyZ2HWji3EFdr/YRfczBXfDeXfDmTZA8GRZsgDG3QEDE2Z+rM0D/TEg+T/kYeD6cc4/y+r7uVQiOhw1/hRemwdZVYGk76yEz4kLYuV+WAfQWD067vlPbIXuz9pbU6s1bjlWyncyo15MRl4xRr2w5jsrKpL5fCvUtZsYlu6fKrN2YpHB8DDq+LZbfzUIdkjQTQgiV7KitZMKSu6moP0hDYdFpL1xAGdz61adrWDNrLvUFBW6MsnM0Gg1/mjGMv63ZhdlqVzscIbpO7wOX/A3G3AavXKnMS3Kot+4+t6SA3BLPe61314vflnLTxAHd2rIm+oh938Gr18Jnf4KR18Ftn8LQy51X+ekfDiPnKMmz2S9C4z54bgrkPg2208+zGh4XwrZ9Mtest0iJ6t+p7ZBqOf5nv91sccm8Na1eT87CRTSVdW0xwr8/2cNvpg7u8vnC09OZsGQxdkv3k5UPThvCvz7Zg9Um15jC/SRpJoQQKgudPsUj52h0VUK4P9My+rH8671qhyJE96VOgZs/hrJvYNVcaKxUOyKv19hqYeOeWmaM6K92KMITlW+CV66C3CfhokUw702lSsyVCdagWJj8O7j9M2hrhJemw6GSDh86ekAYP5Q3uC4WIU7DVFx6LLl1phur7vBDeT16rYbMhNAuP1fnYyQsLRWtQUlWdmeTaVyoHxMGRrAmv7rL5xeipyRpJoQQwmlun5TM57tq2HVAWlmEF/MNgRmPwsRfwOvz4LvlyjwkNzJbLeRXlZ4yT8YbvbiplJsmJKHXyWWn+InDAaVfwcszYcsLcMkSmP2SMsTfnQx+cP4DMH0pvH0r7P74lIcMiPCnvL4Vh4qVp0KoITslneyUdBwOB0s/KeT+S9JUjefmiUms2FQmr0XhdnL1IoQQwmkMOi3/umYkD67ezlFz354ZInqBpHPh1nXQXA3PXwx71rqtZdOoN7BgxVIKa7y70q25zcKnO2u4alSc2qEIT+BwQMkGeHkGbH0NLvuPssW2k4P5XabfCLjpA9jyInz9fye8zjUaDUkR/pQfalUxQCG6bkt1mTI7N28ra9e+1+2W/42FtSSE+zEoOsjJEXZNbIgvCeH+Uvkp3E6SZkIIIZxqUHQgs8ck8Oj6QrVDEaLnDH5w0R9hzkooXKe82S/PUTsqr7Eip5x52YkYpMqsb3M4oOgzeHE65K+GGY/BVU9DpAeNJvANgbmvw5GD8O6dJywJGJMUzvdl9SoGJwTU5m09bZumxWZl+fz7SYuNd+o57XYHj39exD1T1K0ya3fbuckyBkS4nVzBCCGEcLrrxyWSV3GYwppmtUMRwjmC+ytv9C9/BDY/Da9dBzU71Y7Ko7WYrHy8/QDXjHbumzjhRRwOpULzhUtg90dw1VNwxTKISFE7so7p9DDtH5CYDSuuUDbqAmOTwthSJtUtwnMZdO3bLvVOPe7XxXWk9wsmLtTPqcftroy4EMxWOzv3N6odiuhDJGkmhBDC6bRaDX+amc6fP9gpsydE7xKZCte+DJN/C58+BG/dDFU/nvIwm8lMbd5WbCaz+2P0ECtzy5kzNgEfveduqhMuYrfDrg+Vtubi9TDreSXpHJakdmSdM+YWZZvu6/OgeD3p/YIpkFmdvUJGXDJjYpOO/bfdamXCksUEJyWrF9Rp+AxK7vHWyY505Xt+eVMZN09Mcur5e+rXF6fxyGdFaoch+hBJmgkhhHCJYf1DGBwbxLt5VWqHIoTzxY2GG9+FCb+Abx9V2jYLPwG7ndySAj7dsIY1s+ZSX9C9GTLtMuKSyU5Jd1LQ7nPUbOO9rfuZMzZB7VCEO9ntsPNdeH6KsoH22hXK3LJQ5/89OFOrmlPEj4Eb34Pcp9B//S9CfLUcOmJy3fmEKrR6PWFpqeiMzq3Qcgat0XDC1skzOd3vCpvFQkNh0QmJt85+z6V1LVhsdlJj1J1ldrIR8aFoNfBdqbRMC/eQpJkQQngAm9lKQ2FRr6tKue/iNJ77upTGVu/fAChEh+LHKImBGY8pFTXPXURU8Ydo7crfeZPNSm5JASZL73ptn81r31Uwa1Qcvp14syd6gdZ62PRfeHYy7PsernsNpv1TaWv2ZgERcP2b4LCzuPVhtu/eo3ZEQnRJU2kpOQsXdSrxdrKVueXMn5Dk/KCc4E8zh/GXD3fK9aVwC0maCSGEB9AZ9eQsXNTjqhRPE+RrYF6Sjr++9q3aoQjhWuEDYfq/4YbVGFvrmLBzMcMzmtl1YA8TltzNKzmfdXtzmbdps9h4+4dK5o0foHYowtX258H7d8PKWaD3gVvWwKV/h6BYtSNzHq0OLvg9LVk/Y+iG25QNm3bZDt0bmWxW8qtKsdisaoeiOpvdwbfFdVwwOMopx4vKyiQszXmLP+JC/fjVRak8+M52GQMiXE6SZkIIIVzq4gQ/Ko9Y2V55WO1QhHA9/3CqRtxCzrA/0mbSMm73v3g0ZB+BRw+qHZnbPLmxhOvGJuBnlCqzXsl0BLa+Bi9cCt8+BiOvhwUbYNwC8PGsNi5nSh5/Gb8J/KeyHOCFS5T2U9Gr7KitZMGKpRh0nteq6U5RWZkUBycwPjkcvQdvPr5kWCyh/gY+3H5A7VBEL+e5rwIhhBC9gkaj4TdZIfzlwwJsdrkbKPoGu9ZIUVEAm4b9ifWmIM7b9SwDNz0Mh/epHZpLVRxq5euiWuaNT1Q7FOFMdjvs/RLevRNemg5N+2H2S8pH0jmg0agdocsF+uhpxYej5z0Es56Dzc/AGzdCQ5naoQknGR4Vz/L596taaWa2WsivKsVsVbft8P2tVczMjHP6cdur+ZIjYlg+/7c9Pt7C6UN5emOJzBsULiVJMyGEEC6XFGxgwsAIXvuuQu1QhHAvjZaP2kJZk/UHDiVdDG/fAp/8AVoOqR2ZSyz+qIA/TB/q0dUJogvq98KGv8Gz5ykD/sfcBnd8Cefd37taMDtpZHwoW/cdVraAznkFxv8MVt8OG/8J1r41t7A38tHpyYhLVrXSzKg3sGDFUox6g1OWwPh2I//XZrGxc38ToxJDe3z+k7VX8wX4+pMRn9Tj4wX7GvjtpYP53dvbscuNWeEickUjhBDCLe6+YBCvf1dBbbPcDRR9kEZDY//xcOun0D8LXp0Fa34HDeVqR+Y0G3bXEOyrZ0xSuNqhiJ5wOCD/HXjpclj7AEQPhdvWw4xHIWGsR1SVHVueY3ZvRdDYpHC+LztuY1/SuXDLOjD4KS2bReuVPz/h0WxmKxOWLCY4OVntUDzSB9v2c8mwWDQe8FrvjAsGRzMoOpDnvtmrdiiil5KkmRBCCLfwM+r49ZQ0/rF2t9qhCOFSZquFvQdPnbFiN1uo3bYdW9pMuH0DpFwA792lVKoc3KVCpM7TZrHxf58V8uD0IWqHIrrL4YC9G+HF6bBvM1z9LMx7CzKuBoOv2tGdoKlM2QioM7q3Imhccji5e0+qEtXp4ZxfKZVn+avhzflwtMGtcYmuiR0/hrQ5s9EZDB1+PSMu2SlVXs5ks1h6lCi22G2davt0OByszC3nxgmuWeTS3gLr7PbT+y8ZzPpdB/mhXF57wvkkaSaEEG4Wnp7OhCWLMZqcf4e8Nm8rtXlbnX5cZ7loaDR1R0zsqGxUOxQhXMaoN/DIRytP+FxGXDKpbQ7WzJqrbMnVamHwNLjlYxhzK3z6ELw+T9lG6IWWf7WXKzPjiA7yrOSK6ASHA0o2wMszYNsbcMV/Ydo/Ibi/2pF5nKggH1rNNlo6+v0dEg9XPQUjr4MVV0DlFvcHKHqtptKyHiWKDVodC1YspbCm8oyP27inlhHxIYQHGLt1nrNpb4E16jtOWALklhSwdu17XbqeNei0PDInk0Xv53O4VVqlhXNJ0kwIIdxM52MkLC0VbSdnZuSWFJBfVeriqNxDo9GwcPoQlqzdJSvCRZ+XW1JAbkkBDJgIN6yGSffBV0th5TUEH9gCeMdrZF99K+t3H+TmiUlqhyK6wuGA4vVKZVn+apj5uJL0iUhROzKPlj0wgs2lZ5hJOOQymLMSPlsEm/4r7ZpeJjsl3eOqzNzphW9Luf3cgWqH0S1xoX7cP3Uwd6z4QUaBCKeSpJkQQniJtl6yAX1IbDADIgL4tKBG7VCEcJnyIAMxv/455jYTy+ffT1bioLM/KW40XPcqXLyYiLLP2By9h+jC98Dc4vqAe2DxRwX8ftoQGf7vTUq/UmaW7XxXSZRdsQzCvfONsrudlxbJV4V1Z35QaCLMfx+OVMPr18ORWvcEJ0QPVDdZ0Gg0JEUGuPW8DYVFp60q62oHxQVDorn34lRufvE79lQ3OytE0cfJ1Y0QQgi3u+/iNJ7YUITZalc7FCFcwqrV4JOUiNHXh4y4ZHwMXWh1iUmndMJCptUNQm9uViqB3r4Vdq/xuA19G3bXEOijZ/zACLVDEZ1Rkau0Dua9qlSWXbFM2QQpOm30gDC2lNef/YE6A0x9WNk4uvIq2P6WVJ2JM8otKSCvoqjzN1pOIzgp+bRjQDLikk+7tfKL3c1cNzah2+ftqvZxJXaLzanHnZgSyRNzs7j/rW28v7VKrjVFj0nSTAghhNtFBfkwfXg/XsntPZsDhejImNikbrf61Nv17M+4Ee7YCOfcC/ty4bkLYc1vldlnKr8Bb7PY+M+nhSyU4f+eryIXVs6CzU/DtH/B1c9IG2Y3+eh1RAf5UtnQ2rknpE6Bmz+G8m+UqrNetDFXOJ/hp5lfXbrRchKdUU9YWipmHz3G1FMTaFFZmURlZZ7wHKvdwdZ9R5kyNKbb5+1ynO3jSgy6Dr/ek+UHA6MCeeW2cezc38QVy77l4Y8KqG5s62nIoo+SpJkQQngwk8VMflUpaTHxjIlNUjscp7r1nGTe+bFSBrYKcTYaDfQbARcvhju+VBYI5CyD5RfCt49Dszqtzk9tLGHWqHgZ/u+pHA6lDXPFlfDds3DxX2H2SxA1WO3IvN55qZF8XXSWFs3j+YbAjMcg+y54ZwGs+z1YZeaSJ/BLTzslgaSmjjZ3hqWlEpaW2qnnn5wQ0xkMnZqj+2N5KyPi/TDq1U0PtF/3Wmy2Hi8/CPU38vvpQ/nol+eSlRjGXa/+wMJ3tlN+yLNHHgjPI0kzIYRQSbPGdtYS/LyKYhasWHrGLUOe6NiA8zPwNej42eQUHvu8yE1RCeE52t8YmK2Wrj1Rq4OUC2HWczD/PfANhrdvgZXXwI8roKULb+R7oKT2CF8X1TJ/wgC3nE90gc2itAI+PxW2va5swrzmBYjpu8PNnW1SWhRfFXZjTlnyJLj1EwhPhleuhiMHnR+c6DNMFjMgfE33AAAgAElEQVS5JQVd/z3SgS/2NHPhkCAnRNUz7de9QY6Oq8+6Q6fVcNmIfqz++USmZfTjgdXb+c2b26hpksoz0TmSNBNCCJUYdLoel+Afz2Yyd7uMXS0zRvRjZ1UTe2uPqB2KEE53pgqG9jcGtsLSU4Ycd3pjrm8IjL4ZblkDly2FtiZ4c74y4D33KTi8zwnfxakcDgeL3s/nLzMzZPi/J7HbYOsqpQKxdhfMeQWufFIqy1xgYGQA5Ydasdq6MStJo4FxC+D8B+DV2S57nYreL6+imAlL7qawpvKsjz3TjdrKhlYsNgf9Qtxzg/bkDaV2i025fjW5tvNAo9FwXloUqxZkM2NkP25/eQvv/Hj2Pzsh5EpHCCF6gdySAr76dE2PytjVoNFouG9qGo9LtZkQPROWBBN/oSTQZj0Pel/46F547mL46t9wcJfTZqCt/rGKtJgghseHOOV4ooccDmVJxHNToG4P3PQBXLQIgmLVjqzX0mg0jEwIZVtlY/cPknweXP6IMuesrth5wYlepaP5Y91xuhu1JpuVRz7LY1Kqf4/P0V1ag46chYuoLzhzh4KzaDQazh8czVt3TuCj7Qd4dbPMGRRnJkkzIYQQqsoeGEHdETPFB6XaTAinCIqBMbfADath3lsQmgRf/hOengQf/Rr2rAVz92a61LeYef6bUn4zVaqXVGe3Q/F6eOkyKPoUrnsNpvwZ/MLUjqxPOC81snstmseLGwVXPQNv3wzV+U6JS3Te8RVPzkpOqaGjOWidlVdTyarvCgnx7cRG2F7G16DjqRtG8cnOmp6/lkWvJkkzIYQQblGbt/WUNrR2v7xwEE9skGozIdqlxcSTs3DZGWcedopfKIyYrQyAv2MjDL8W9n0HL8+AV676qY2zotOH++fa3dxz0SACfbynorXXObwPvv4PLD8fdn8MM5+AGY9CcD+1I+tTJg6KJKfkUM8PFJMOs1+G934OlVt6fjwhOnC6Tc5bDmpoNRejd94IMa/io9fxn9kj+cfa3bKYSpyWXPEIIYRwmfYkmc1spamslOCk5A4fN35gBP/9opjig80MilZ/EK0QajPqDd2uHDgtnR4GTFA+AJr2Q+EnSvVZWxMMvhSGzoTIjre0bdt3mANNbVwyTNr+3M7UDAUfwPY3lJlYw6+Fmz8GH/l5qZYQPwMmm502iw1fQw8zDhEpMHcVvD5PWdyQmO2cIEWfNiY2iaiU9NPesHQ4HHy5X0vz0Txgosvj6aiSzxOq+6KCfLh3SioPrN7OU/NGo9Vq1A5JeBipNBNCCC9jslnJLSnAZPH8O2INhUU0FBbRVFZ61nlrv7wwlcc/l7kuQrhNcP8T2ziD42H9n+HZ82HDw0q72E9z0Ox2Bw9/XMCiy9PRaOQNhVvYrFC0HlbfrlQGHqlRBvvPfx+y5knCDOV3zOkSAu6QGR/C9p7MNTteSDzMfR3WPiAVZ07W6eUqbrSluuysW8ZdLafaREKgA7vjqKpxeIKpw2IZGBXIExvkOlScSpJmQgihgqisTMLS0rr13B21lUxYcjd5FZ7/iz0sreOKlY6MSw6nodVMUU2zCyMSQnTILxRGzoHrXlUqmGIy4OulPyXQ/sb6jZ+TGR/CoOhAtSPt/Q6V/C95WbweJtwNC76ASfcpiZU+Tvn92fnfLa40Jimc78ucOAsquJ/yGvz4Ptif57zjCo91ptEVrvbaniNMiVc2wPZkLlpvcf/UwWyrPMwnO6vVDkV4GEmaCSGE8Bi/uiiVxzx0k2ZuSYHqd4WFcAtjAAy7UpmDdssaWsMHY8x5jAcrfw45y+Bog9oR9j7mVtj2Brx0Oax7EPqPggUbYNo/oH+W0pIpuszVP7fHOjtpBkpidM5K+OBXUL3DuccWHsVmsdBQWITNbHX7ufOrGvE3aIhWb2nmKbZUl6laEajTanj0ukyWfVHMnmq5gSv+R5JmQgjhpY4WFKraltIZUVmZpM2Z3emqgLFJ4TQetVAo1WZCeAZjAP+pTOfQpU+hu/kj0BmVBQIf/BIObFc7Ou/WXAM/vAyr5sKL06ChFK58SmmVTZ8JeqPaEXqs8PR0pq9eddo5me4SG+JLbbMJm93h3AOHJsK1K+C9u6BGbtZ0V25JAV/t2UZ+VSkWm/sTU2fTVHr20RWu8sxXe7lhsFQOnyzY18AjczK5942tvL+1CofDya9t4ZUkaSaEEB7KGTM43Fn276w7+vd4cLWZEK5kspjJLSnAbLWoHcoxRTXN7Khq5KqsOPANhnELlFbB4bPhq3/Di9OVCilLm9qhej6HA2p2Kn9uz18C79wO5iMw9WH42Zdw/oMQmqB2lF5B52MkKitTlWTDyQbHBLmmKiU8Wan2fPdnUPat84/fRxTWVLJgxVIAls+/v+cbiZ3IV6U83r76Vg42tTEi0kedADxcSlQgr9+RTe7eQzywejtWm13tkITKJGkmhBAexpvbAPOrSnsc+5ikcJrbrFIaL/qU2rytbFq3hglL7qawplLtcABls9pfP97FosvTT9wmptFA8nkw5xWY9ZxSIfXcFPj0ITi4S72APZHDocym+uQP8PQk+Po/EJoE178ON32ozCuLSFE7StED4weGk7v3kGsOHpGiVB5+vhi2rnLNOfoIg05PRlwyPgap4Hz+m1JuO1fdKs2z8UtPU3V2YYifgSVXj2BgVCC/eC2PNotNtViE+iRpJoQQwuPcc9EgHpdqM9FLqT23pbM+LaghLtSXjLiQ0z8ouL9SIXXHF5A4Udm6+dzFyuyz6h1g74N36O022Pedkuh4drLyZ5F8njKj7JoXYMRs8AtTO0rhJBNTItlUUue6EwTFwo3vQuE65e9UX3xNCac53Grmh/IGpgyNAWBEZDzL59/vURXOnuTOySmcPziK21/eQnOb/Bn1VerXNAshhOg1LDYr+VWlpMXEY9Qbun2c0QPCefzzYnZXNzEkNtiJEQrhelmJg8hZuMyj2oC6ymS18cSGIl66ZVznnqAzwJDpykdLHexZA5v+Cwd3QnA8DJgIidkQOxwMfq4NXg1tjVD8ORR+AjX5EDcK0i6FSb9RFiuIXish3J8DjW1YbXb0OhfVIxj94ZoX4YuH4e1blNl3Rg+a4O7B0mKUpJAnzjRTw8rccq4fn3isetioVyrwxOldNy4Rfx89D6zezrLrR6GRxSx9jlSaCSGEB2koLKKhsFDtMLrNoNOzYMVSp7SX/eLCQTzz5V4nRCWEe7TPJAPITknvVBuQX3oaUVmZrg6ty178toyZI/sTGdiNmTcBkTBqPlz9DNz5DUz/FwREwbZV8PJMeGYyvDZHaefMXw2NntGO2ml2GxzeB+WbIOdJ5XtaeQ3UFUL2nfCzr2HmEzDkMkmY9REj4kPZXtXo2pNotXDRIki7BFZeDc3Vrj1fL2HUG8iIS8ag67u1IlFZmURlZdJmsfHxjmplRqWHSouJ98ibTjNH9ifQR89H2w+oHYpQQd/96SGEECrLTkl32bFNFjN5FcUkWK0Y9d75o37MgDAe/ngXDS1mwgJkBonwfHkVxUxYcjc5C5d16fVtM5lpKCzC7uMZd69rm018tH0/7/z8HOccMDQRMhMhc67y3w6H8oa/bg9U/QDb34TGKmUIfsywnz4yIHwgaHXOiaE7HA4loVeTr3xU5yvz2zQ6pS01JAGih8JVz0BwP/XiFKo7Z1AE3xbVMSrRDW23mddD6AB4dTbMfBz6Z7n+nMKlTDbrsSUwPanSP5t386q4bHgsvgYVf66ehVFvcOn1cU88dHk6c57J5cIh0QT4eOe1tege+b8thBAe7Pg7bk35nR+w3/7mfcMV95ARn+S6AF1Io9Fwzeh4Vv9Yye2TBqodjhBn1NVtt8e/tuvzC8hZuIjoZUtcGGHn/efTPfzqwlSMehc1JGg0SpIpuB8MPF/5nMMBTVXKdsmafNj1IdTvBa0eIgcryamgWGUWmH/4T/+MBJ/Azp/X4YCjDUrC7ki18u/mVrC0grnlp3+2QushqC8Bm1lpLY0ZBrEZMOxqCEtSN5EnPNKEgRG8trmCX17kpsHlSecoizhW3w6Z82DUTUolmvBKO2ormf70Yyyff/9ZWyW3VJcRVqLcSOzK7xy73cFrmyt45bZOttx7kEMFu2goLCLlyivQ+ah3EzXY18DVWXG882MlN05IUi0O4X6SNBNCCA/myXfc3OHKzP5cv3wzt52bLDMkRK/iqa/t/KpGqg4f5eL0GPeeWKOBkHjlI+2S/33eaoLaPcpWzuZqOFgArfVKwqulDiwtyuP8IyA4DoyBYG1TnmczgeWo8jhrm/I4vzAI6gdBMeAXrsyF8gmCwBilldLgryTlwgeCvhutqaJPigj0odVs46jZhp/RTUnVsCSY/z5sXAIvXw6X/gP6jXDPuYXX+XD7fsYnhxPq73mV+zazlQlLFlObfGLCMDw9nQlLFmO32MhZuIiwtFTVxxlcOyaBG1/YzA3ZA+S6tA+RpJkQQnixhsKfNkwGd3wRZLdaaSgsIjw9XdW7c90V5GtgRHwIXxXVMTktSu1wOnT8DCshvJnD4eDva3axaEa657wZ0PsoiYAzJQMcDiUx1lSpVIoZfEHnA3pf5fkBkb1z+YDwKGOTwthSXs+kVDf+rjIGwNSHlaTy2t9BeApMuBsi3VTxJnqkzU3vxM1WO89+tZdXbhvvnhN2kc6oJywtlXrDia2pOh8jYWmp/7vW9QAh/gaG9Q/h2+JDnJsaqXY4wk2kjlcIIXoxrV5PzsJFlLz3PjaT2W3nzYhLdloS6dZzk3n+m863IAghumddfjXJkQHet7FWo4HAKGW2U9I5EDdaaaeMHKTMSZOEmXCDiYMi+aa4Tp2TRw+F+R/A4Omw7kFlMUXRZ2C3qxOPinJLCo7dzDqeM69LvM3r31dw6bBYwk+aD9u+IEB0zc0Tk3hpU5naYQg3kqSZEEL0ATkLF1Ff0PmZaJ4kJSoQo07LrgNNaoeCzWKhNm8rG/O38NxXH2OyuC8RKYQrtVls/PeLYu67OE3tUITwSuOSwvm+tF69ADQaSJsKN6yGS/4OhZ/A8vMh92loU//3p1Ac33LoDjVNbbzx/T5um3TmWWmi8wbHBtFmsVFxqFXtUISbSNJMCCE8QPs8h+Ak77yoMVnM5FeVYrFZXXL8BZOSWf71XpccuyvMRaWsmTWXo/sqWbBiKXkVxZitFvKrSiWBJrotPD2d6atXMXnSFHIWLuPGCRe7vSLi+W9KuSorjohAmeMlRHcE+Ogx6LQcbvWA3wVRaXDZUrjpQ3DY4aXpsOZ3UFesdmR9XnvLodbFGyyjsjKJzBzJH97dwR+mD8XfKFOZnOmG7AG8klumdhjCTeTVI4QQHqB9nsOZtL+x3mmwsnz+/aT5xdBcWERDYRG2kepWh+RVFLNgxVKenHcvy+ffT1bioA4f116p1dUZa+OSw/n3J3uoaWojJtjXWWE7hVFvYMGKpaQ0WsiIT5JWB3Fa7a/hQr8T54XpfIzH/t5kB7q/fehgUxvr8qtZ/fOJbj+3EL1J9sAIckoOMW14P7VDUfiGwIS7YPydUPyZMvdMo4VBUyB2OAT3VxZjGDzr92qvYLcpi0v2bYaGcmhrVD4M/vhZgoiy+tPsHw84unxos9VCYU3lWW9UrsuvJirIl4mDZPaWs00ZGs3jnxfRYrIS4CMpld5O/g8LIYQHaH/DXJu39bSPaX9j7VtSQEZcMsYm87GZZdHLlhAyKPnYG3Kb1cLy+ffT3NTmrm8BAINOT0ZcMj6GExNi7e0IhwtL2LzoL0xfvapLySWNRsP8n2ZIPHDpEGeHLYRTpMXEk7Nw2WmTxu2vYU9bafHvT/Zw75RUjHppQBCiJ8Ynh7Nh90HPSZq102qVrbRpl0D9XijfBLs+hOb9ylZaq0lp7/SPUJJowf2VfzcGgk+gsnDAGATB/SCoP+jkLeQpmvbDge1wYBvsy4XWQxCdDgnjlSSlbwj4hYLpCPbvPyH0wFbia79kxGV1aAr+xtOh9Ywo+4Aw81AwNENoorLVV3vqz+XCmsqz3qi02Ows21jMS7eMc8d37xQdVVh76o1IvU7LrNHxrPqugtsnDVQ7HOFi8hNPCCG8TPtFxckJNq3RQNTQdEpKCtChDL1taClUIcJTOWMD0vSMWJ7aWMIvLhgkd/WERzLqDV43aHpHZSMHm01cOCRa7VCE8HrD40N49HPP2fTXofCBysfJ7HYl0dN8QPloPQTmFjhSA+YjYGr+6WvVShUVAA5le61WD/0zIeVCSJ6sJNp6O6tZqSQrXAfF65WkWNxoiMmA0TdDUMxpn2qKt1KkTwHg4GML6ff4fTxX/AhL/GOIOVoH+W/D4X3Kn73DBr6hBBDBgMSjtJkaKGlVKsxOd6MS4PXvKpiaHkuktNy7zNxxCcx6Kocbsgfg6+J2W6EuedchhBC9VHZKOrVNZtaoHYiT6HVarhubwEubyrj7go4redwaj93B4TXrMST0VzsUIbrF4XDwtzUFLL4iA41Gc/YnCCHOKMjXQJvFhsVmx6DzsspNrVbZQhsYBf1GdO25lqOwPw+KP4dvHlEq1FIvVhJokamg9/LETXM1VORCzU6o26O0W2p1EDlY+T6z7wLf7m8dtun82GIJoCx6PIFxyQw4+ebL0cOYv3mPkJDPyNi7nMi6UgaE+jOwehPGUD+wDzmhIq3xqIXXvtvH6p9P6NT5ve1mj6fwN+q5fEQ/3v6hkhuyB6gdjnAhSZoJIYRwC2eU2M8dl8hVT37L3HGJp6xOdwefn1pgdxqsPDp5DjV/eZzoZUuOfb29ku747zW3RNlaKhelwtN8vOMAaTFBpMUEqR2KEC5ztKCQ2iaz29q80mKCKKxpZlj/ELeczyMY/GDAROWDPypJpuL1kPNfOFQMNovSbhg9FKKGKG2LESmgM6gd+ek1lMHO92D3x0p76oCJSiVZ5lwIHaAkzZzEYrcps2pj4jt+gF8olshMtu8IovrO33HF6kcYbWzlDR8biTuXQ85flPba0EQIT2HjPn8ezBiCv+UwGCKUrwmXmD9hAHOeyeXqUXGybKEXk/+zQgghvIZRr+Vnk1N4YkMRf5oxzC3ntJnM1BcUYPPToPupBda3pICB0f04CAyP+t8cq6b8ArfEJERPtVlsPPlFCa/ePl7tUIToVUYmhLJ13+G+lTQ7WVAsZN2gfIDS+nm4HGp3Ky2Ne9YqyTSHXUmeJU9WKraCXVO5fcabVnY7NJRCTT5U5yvVZI37lHliw66EeW+CX5hL4gpOTiZlyWKKbMpIjc6yoOX8i+6gbMg4EgePVD5ps0LjPqpKdnBo+yZmRn8J77ygtNnqjBCWDBGDlD/viBQIT+lRdZxQBPkauH58Ik9vLOG+qYPVDke4iCTNhBBCeJXLh/fj+W9KqW02ERXk+paP+oIC1syaS/SyJYSlKVtKj2999dHpz1pFZjd3b2uoEK7y7Fd7uWZ0PGEqVGwK0ZtlJYSyIqeMeeOlXesYrRbCk5WPwdP+93mbVUme7f0C3r8b2ppg4GRInQrxY51azXVMY6XSaln1A+zfCpYWCEuCmOEQNwpGzYeQeJdWZ0VlZRJWovzsDUtLRVtd1uVjpET1x6g/rlJPp8cRlsSD2w/yu2sXook/LmlrNSmVc4eKlY/Sr+BQCZibwRAAEQOVhFpIgjKbzTcUjP7K7Dr7Txs6/ULBL1z5ulSuneC6sQnMejqHa8cmEB/mr3Y4wgUkaSaEEMKraLUabpmYxEubSvntJa7dpJlbUoDdV8OEJYsJDo8ntpstlqbiUtbcs7DLW0OFcIWyuhY27D7IW3d2bt6NEKLzBscGsbu6We0wvINOD9FDlI/snyuLB0q/gm2r4OP7lXbO1IshfoxSKdWFZE1t3laOVpYRkBqvbAst/xaKNyitpMnnKcm78xf2qmqrT3bWEB/mx/D4k6oc9T4QNVj5OJmpWdmoeqgEmqqUasCjh8HSqiQttXqlIrCtEVrrwdSkLH8wBkBwnJJgPPnDt29VWep1Wn4/bQh//mAny+ePkRmhvZAkzYQQwkt1JvkSnp7OhCWLyVm4yA0Ruc/lI/ox8797uXNyCkG+rp2JojUaCEtL7dRjbWYrTWWlp60os1mUirNCPw06g/dtWhTez+FwsOiDnSyake59g8qF8AIGnRYfvZYjJiuBsum5a4wBSjJr8DQlMVO9Q5mNtusDpVLKP1KpBosaqrSABsUqbZQ+QUpCzdxC4MFtBB7aQ1D1TkbXF8G+YEjKhsRsmHMLBESq/V12S/v13D6TtcOvW2x2nthQxIpbx3XtwD5B0G+k8tEV5hZorFJaWRsrlcq9gveV/25r+l+CU+8HIXEQO1z56JcJ/uFdO5cXGD8wgtU/VvLJzmouzeindjjCyeQnuRBC9GI6H2OnEz7eRK/TMndcAityyt2ySbOz1WE6o56chYsIS0vt8DlNpWXkLFx0QqunEO70wbb9JIT5MSrRNTN6hBAwPC6UHZWNTEiJUDsU76XRKFs8j9/keeSgsqWzrhAObIUjNcrSAfMRQAN6HyL9+tMSPoTW1OvY3gi+w4Z6zQ2qM8XZfj23u6qkw6UBH27bz4VDookIdNOmUmMARKUpH6fjcIC1DQ5XKAnQvV8q21XbmiA2AxLGQ0K28rheUJ21cNpQ5j23mXHJEaosqxKuI0kzIYQQXunasQlctWwTN2QPIMTPgzdwCeEhGlrMPP3lXt74WbbaoQjRq41MCGFb5WFJmjlbYDSkXaJ8nEbZTxurg5vMOJrK3BSY+xh0ulOWBjgcDl7OKef5m8aoFNVpaDRKO2x7a+jwa5TP26xQswMqNsPGvxO2bweW8HTwv15ZCmF0/lyw2rytgHM2uZ9OWICR30xN4w/v7uDJeaOkTbMXkbp8IYQQqrCZzNTmbcVmMnfr+T56HTefk8Tyr/Y6OTL3aF8O0N3vX4iu+tuaXdxz0SCCXdzSLERfl5kQytaKw2qH0WfZzRYaCouw2zpuZextvthzkBFxIUS6q8qsp3R66J8F2XfC7JdomPwMbfEXw77N8NJlsPIayH0a6oqVKjQvctHQGMICjHywbb/aoQgnkqSZEEJ4sfD0dKavXkVwcudXlXuCLdVlx7ZS1hcUdPs4V2fF8WVhLXVHTE6Mzj1MxaU9/v6F6KxNxXU0HbXIrBUh3CAx3J+K+la1w+izTMWl5CxchLmPzJR7aVM5t53rXdeBx4saPYawKfNhyp/hji/g8kfA4Auf/wWeOQ/fsg/RaLwnefbApUN45su9tJr7RtK2L5CkmRBCeDGdj5GorEx0Bu+qHNl96ABbflqx3lBYdKxsvqv0Oi0/mzyQpzaWdPj13JICcktck5RqT1iGp3vHrBTRd7VZbCxZu5vFV2SoHYoQfYJGoyE62Ieapja1QxEeLiors0czTvfWHkGrgaTIACdGpbLQBBh9M8x5BW5Zg/boQaZPq8NYk+sVlWchfgbmjkvgWS/thBCnkqSZEEIItxsS0Q+jycqEJYsJTurZ3dHpGf34saKBA41HnRRd5xxLWHawJdPZTBYzuSUFmCzSyulp2v/fZCUO8thh089+tZerR8URG+KrdihC9Bkj40PZuk9aNIVrvZJbzo3ZA9QOw3V8gmgdehtfbAzHp/JzeHO+shDCw80dl8gXuw+6/dpUuIYkzYQQwsNY7Dbyq0oxWy2dfk52SrrHvmE/ns38U6IsORmtTk9YWio6Y8/aJ7RaDb+4YBCPf17spCg9T15FMROW3M2mdWu6XZUnXKP9/01ehWf+/TvQeJTPd9VwQ29+UyWEB8pMDGWbJM2EC7Wa7WzeW8/5g6PVDsXlWlt1NI/+A4y6CVZeDdvf9OiqM71Oy2+mDuZf6/aoHYpwAkmaCSGEhzFodSxYsZTCmkq1Q3G62PFjSJszm3OGjCQjPslpx71wSDQltUcoP9TitGP2xPEtp9kp6Zw3dTrTV68iafo0pq9exdQLp5/1+3dGdZkr21OFd/jXuj38ZupgDDq55BPCnUbGh7KtUpJmwjWyU9LZVmnkxgkD0Gn70JbG1Clw8xoo3wSvXAkHtqkd0WmdlxZF41ELeRUNaociekiuoIQQQng9jUbDvVNSeXR90QmfN1st5FeVdjnx5OxkU3srpzEo8LQtnSefz9MrmITnK6xppu6IifPSotQORYg+JzzAyOFWC3a751bDCO9Vd8TE57trmD06Xu1Q3M83GGY8ClMfhvV/hnd/Do1VakfVod9PH8I/1+3G4cFVceLsJGkmhBCiV5iYEkl9i5ntx93ZN+oNLFixtNttje5se82vKj0lcaa3OzhaUIjN0vlWXSHaPba+iHsuSlU7DCFczlOralOiAtlbd0TtMPocn0HJTFiyGKPJO7YXduda4/HPi7hzcgr6vlxFHDscbngHMmbBGzfA538FU7PaUZ1gUHQQA6MC+aygRu1QRA/04VeZEEIINUVlZRKVlenUYy6akc5fPizA1sM7+92tUOuJjLhTFyIMaLZQcc9CmkpLO3yOzWSmNm8rNpMsCBAn2l3dRLPJypikcLVDEaLPGpkQSl6FtGi6m9ZoICwtFbNPz2ameqo91W2UHWrlsuH91A5FfRqN0rJ522fK1s0XpsH3z7G5cBtffPieR8yBvfeiVJ7YUIzFZlc7FNFNkjQTQgjRa6REBXLOoEhe3lR2ytdsFkunE0ztFWqe3hpZX1DAmllzqS/ouMJCjeSf8AyPrS/i3ilSZSaEmjITQmSumYrGxCZ5xZKkrjDb4OWcQ/z9qgw0mj40y+xsdHoYfTPcug7rkVpSPphPZM0XNOzZQ/XmLTQUFp31EK4SHezLZSP68eQXJarFIHpGkmZCCCFUd/zg/J666/wU3t+2n721J7bENJWWnTHB5Azh6elMX72K4KRTq8ZO1r5JNDzddRf03pL88wbOWMzgLgX7m2iz2BiVGKZ2KEKozm610lBYpNFpEbgAACAASURBVEpF7rD+Iezc3+T284reyWRz8HpxIPdMSSc+zF/tcDyTTyBbEq8gbU8wwdY6wr+5G/v2t8ChbpXX7ecm801xLQXy88ArSdJMCCFEr+Jr0PG3KzN4YPV2rG4ewNw+8D92/Jiztp7qjHrC0lKpLyg4ljBsKCz0iFYCcaqOFjPklhSQX9Vx66yaHvu8kHumpKkdhhAeQavXk7NwkUtvmJyOr0EHQJvF5vZzi96lxWTld98eYkqCH1dkxqkdjsdrcOjZGzebzzeE49daTEL5vzAcUm/Tpl6nZcnVw3novR3SpumFJGkmhBCi10mN9iMzQcvfPj6AThOgSgxdrUzKTklnTGzSWR9XecTKh9v2U9PU1sMIRW+0c38jFpuDzIRQtUMRQgAZ/UPIr2pUOwzhxQ4dMTH/he+4PMmfmQPVuabxVm1tOmpjr6O6/y34Fb8B798NrfWqxDIoOoipw2KlTdMLSdJMCCE8VEZccq+bxeEueRXFPPTuQq7KCubctHuosETS2W3ftXlbOVpQ6JQYTq5M6iy73cHeWhP2oEw2pU3iyR06+oXeyF+26Xgkr5Gyuhbue3Mrd+e2UP3rv9PU4vktg73F0QLPrgaUjZlCeNY2zTFJYWwpb1A7DOHF/rF2N3ecN5CLE6Uls7ssxhiaxv0NUqfCipmw4206fWHoRAsmDeTb4jqKajxry6c4M0maCSGE6LVGxAfy/i/O58daC/8qN2LRee4mLbvdwebqNh7+roHpj3/Nup1NoNHgb2rlmhQbBw6/wp9G2vjPpAh+eVEqr96ezZM3jiEgOoo7vznM01+W0Gq2qv1tCBXlVzVidzgYKVVmQniMUYlh/CBJM9FNO/c3Ut3UxtT0GLVD8Wp2q5WGomKqm+OoG7UEyr+FV6+B+r1ujUOn1fD7y4byz3V73Hpe0TOSNBNCiF4mOyVdKtSOE+Jn4KFxYYwMsrHivDs4bHLPbJmsxEEsn38/ZqvljI+rabXx/M4mLn/iGzZWtTFzoD8f/2oSd50fhbYpj8zyH4g+7uayyWY91vYZGejDnLRAXpwShVGnZdZTOaz6rgKbm2e5Cc/w6Poi7rlIZpkJ4Uniw/yobDiKQ4WqFuHdHA4H/1i7m4XThsqmzB5qn23YVFaKwxAElz8Ckx+A1bfDV/8Gq/sq9jMTQvHRa9m895Dbzil6RpJmQgjhYYZHxZOzcBlZiYPUDqVD7mp7cfZ5Lo2wcf7Oz7j3q0MUVh8+Yd5Ybd5WbCaz8k8nVWv5GIxkxCVj1BtO+ZrVZme7bz8Wbrfw8E4zqUMHsvrnE3lgdCiDw3R8X7qLlrZWfn35Dac8d0dt5Sltnz46Dbeem8zbd05gX30rVz/5Le/8WMnBZgsaTj2/6H12VDai0cDw+BC1QxFCHEej0ZAc6U/ZoVa1QxFeZuOeWmKDfUnvH6x2KF7h5OtGu1XZUn7ajeYJ4+DWTzhSXYtl2WQ4sN1NkcJvLxnM0k/3SDLdS3hun4oQQvRRPjq9VIq5SMrBIkZFNnPfiq/5oeYgIyJKiAzwIy5Az8W1eVTdeTMTlywGf9ckmg63mnnx2zI+LahhYkoED04bwqDooGNfP4KSFJv+9GPkLFzGtSMmsIbHz3rcLdVlhJUYyU5J5zcXDGRmSAtrDzaTW15PTMgcln9dR//QVhIjZB6KMzQUFin/EmxUN5DjPPZ5IffKxkwhPFJ7i2ZypAxxF51jtdl5dH0hz9w45tjnzraVW5xIq9cTlpR05gfpDBxNvR5z7DmEr30AkifBpPtB79rf70mRAQztF8za/GqmD+/n0nOJnpNKMyGEEH1KeoCdu4fbqG58jV+n23hobBhXXzicd4qO8M6t/2RfcLzTz2mx2Xnx21KuX76ZhHB/3r1rIn+8PP2EhFlHwtPTmb56FcHJp7lL2oH6ggI2z7uBG2JM/HpKDNWNKxmb5M9v397Gva/n8cWeg7RZ3NOi2lvZLTYaCouwWc7ceusu2/YdRqfVkBEnVWZCeKIxSeH8UK7Oxr6+Kior06uTTG9s2cfkwdHEhviqHYpXOVpQ2K1lTragAXDzR+ATDC9eClU/uiC6E/3qolSe3FiMxWZ3+blEz0jSTAghRKeZLGbyq0rPOqerq+xWq5KEMPV8pkR7jJ04Kz46iPTTkT0wgsUTI/jjpH48t6eFV0q0TmtrLKpp4+onN9FisvLOXRO5ZnQ8vgZdp56r8zESlZWJznDmWHx/6ig93VbHzAR/Xr8jm/kTk9hUXMecZ3K49ukcPty2H7vMP+syrUGnzEYpLf1/9u48rOr7zPv458vZQDZBERRUCHLUE1SIJtG0TTPpJG1NuqRpM0nb2C22mUmfK52OzzPjtJOndZqxM2M70z5Nl9h0JnZJupjuSffplkASE4giMQcQVFAJCgIqcLbf8wdiNKJs55zfWd6v6/IKwjm/38eoCPe5v/ctb7H9x6m/8FtmmQGJzDc/T3sPD9gdA0licDiob9Uf1EeuvczuKCkjr7xi9EXIix3VlKQMh3TNR6VbHpR+9xnpsQ9L/V0xyzQ3x6MbfSV69JmDMbsHooPjmQCQQBL9VdGGg63auGOb6jY/MO7Hq0srpny0dOzX/Pitd6jAWzXj/wdjGV99j0KfTwXeqtGZZb2d4+YokvSday396xPPqKTzDn3iR13yLRjRqrJ8WZY0OBLScDCs8jnZ8i3I06LCWcp0ZSjDmAsKYYdPDOnxPf16uv2UvvGB16h0dta0f021i5aobvMDWth7WruPnZ+9qLZGWZM4JmiM0RWLCnTFogJJ0rGTI3rgf1r1X0+2629v8Op1VUXTzpdOsnxe5R07rXVbt6inokIOp8vW49QNB/vkdmQw8wZIYG5nhrJcDvUPBZWfxZxJ6JL/bnztD/v1vnWLle3hW/VocbidKqqtOe/FxbH5Z5WvfvDcJdKdj0mtv5UevUOqeY905V2jRbUou+t1Fbr1K3W65Yoy5fD7nbD4nQEATNlQs189A4GELvL9w5vffV5H3FjX1sW6scYYY3Td0lxtfmyHfnD3l1SUu0i7O/vlcmZoiccpjzNDbT0n9d1nD6mz77RGQhGFI5ZGQmG5HRkqmOXW4f5hLcjPVHGepU+sL5lRwUwaXSqwttKnnoFLZ5/Mr2/M3ByP/u9bLteh3tP63K9e0sNPHdCn3upTWQFzzybicDtV4K2Sd9kqu6Poi79t0f950zK7YwC2GQmH1NTVJW9x9I/WR9MViwv0/ME+/cXSeXZHQQI7fGJIf2o9psf++hq7oySVsVMG80xYLkeUiltL3iAtvkb64zbpv2+S1m+TSqqjc+0zZrmdunPtYj34x/36+A10jCcqimYAgJRUWbRg3M2VkzHW2VW7aIk8Lreqis+fPXbNkrnjPm84GFbvqYDm52fKGBOXLaPSpV+xli5d5FxYOEv/eXutnt5/XPd8+3m9sbpEd732MrmdTHBIdM8d6FOW26Hl8+kyQ/ra09OpjTu/cNEO6ESxelGBnj9A0QyXtu1XL+njN3jlyDB2R0kqY6cMfve2ezUczQu7sqQ3/JPU3Sw9vml04+Z1myWnJ2q3uG1Nmd72wJPa+LoK5WbSiZqI+IoYAJC2snzecQtJY51dHtfUtidluhxaMDtLxkzvi92i2hoVeO15pfHqy+bo+3dfowxj9I6vPKmf7z7CKvQE90VmmQFnRQJB9TQ0RmU2ZiyMdZoBF9PU1a/jJwN6vZdxCbFW39Y8yfm3ZxT7pPf9TMopGe0663kpalmcjgy944oy7XzuwtEhSAwUzQAAgKTRuTt3v75SD3/gKj3b0avbvlanXzQd0elAyO5oeJWn2o4pN9OppSWX3sAKpIuR1nY9fusd6m2OT4fvVBVmuzUwFFKITXkYRygc0ad/ulf/uH653VGSzsUKYBd7YXTaMjKktXdLN/+n9MO7pef+W4rSi4vvWlOmnc93sZwpQXE8EwCQsMY6Bwp9Pjk8U+v6SlbnHg21y5wcjz711svVceyUfvBcpx78434Fw6NfyOV4nLqyvEA3+EpUXZo37a46TF8wHNG/PrFPX37varujAJiCZSW5evHIoFaU5dsdBQnmy79v03VL5/FCSDIoqZY+8Lj0q09K39sgveUL0qzCGV0yL9OlVQvz9afWY3QaJiCKZgCAhDXS2q7H792s9TsfSeilAxczna2KY0dDE0H53GxteuNSSUslSZZlaWAopLr9x/RfT7Vr35FB3bRyvj74mgpluac3eHdscUEy/v7a5b+ebNeNl898wQSA+LqqolBPtx+naIbz7Oro1ZOtx/Ttu662Owomy5Ul3fQ5ad/PpR1vld70Wan8tTO65PvWleuzT+yjaJaAOJ4JAEgo4ZHA6FyaYHDiByOujDHKn+XSm6rn6/O31ehH97xGs9wOvfOrT6mpq9/ueGnhSP+QfvrCEd31ugq7owAJKxAKqqmr/bwNyolg7WVzVL+/1+4YSCBdJ4Z034/36ot31Mrp4FvzqRgJBlTf1qxAKChvcZm2b9ikYDikzAkmSoxu3G1XMByF0RPLbpLe/b3RDZu/+4wUnv7nnKriXAXCER04fmrmuRBV/M0EAEza2NFBb0mZRsIh1bc1ayQY3aHLvc3NevzWO+QdslRdVj7t61SXViRMx1aqcjsz9IHXVOgr71mtT/6oSb9oOjql59e3NWvX0Y7YhIuhotoa2zrj7v/5i/rfb1wqj3N6nX1AOnA7Xdq4Y5v83Yk1WHth4SwdPjHE3CJIGp1j9rePNur+W6pVnJdpd5yk03CwVeu23iN/d6fcTpeqSyvkckx8kG5PT6c27tg2qcdOSt4C6b2PSe4c6eG3SD3+aV/qzrWLtaPuQHRyIWoomgEAJm3s6KDb6dSenk6t23qPGg622h0L5wgHQlq3dYsKffErGC6aM0vf/NBV+saT7frl3qkVzjB5T7YeU8SydC1HN4CktWx+rl48OmB3DCSAr/6hTa9fWqTaRQV2R0kp3pKySc+GjQSC6vO3KDzThUcZGdJrPya9+d+kH/+N9Of/kKbRyfaG5cWqazuukyMsYEokFM0AAJJGZ0uNzZdKZPVtzapvS8ztaInA4XaqwFsV98UJuZkuff19a/TfT3booT+3y4rSRimMCoQi+uwT+/TJm+ieBJLZ2oo5epojmmlv7+F+/cHfo49ce5ndUVKO2+nU2kqfPK6Jvw7q72hX3eb75HBHqets/krpA0+MHtN8+Gbp2NReWHZkGN22pkzfeZpus0RC0QwAMCkUq+xXVFuj6/9y/SVfQR07OtjT0Kg+//SPCExHXqZLD3/wKnX2ndZHH2lI+ldKE+nP/DeebNf6FfO1gOH/QFIbnWt23O4YsNFIKKxP/LBJW9+xkjlmUbS20jejsR5R43BJr/8/o11nj90lPfewNIUXEv/qykX6YcNhjYTCMQyJqeBvKQCkiVjNIEN8jR2RncwrqCvnlp2dQRcvbmeG/u9bLtebLi/Ru7fXa3fnibjdO1X1DI7oZ7sP60OvZfg/kOwWFmaps2/I7hiw0X/+pkVvWbVAS+bl2B0lLdg2h3T+Sun9j0tHXpC+d6d0enIdplluh25aUaKdz3XFOCAmi6IZAKSJZJhBtutoR1IOhk9UY0cU3M4oHTuYgresWqAv3F6rzz6xT599Yp+Gg+e/YjoSDJzZXsUrqRP5wm/9+uhfVMnt5Ms2YKqG4//p75KMMSrO86h7YNjuKLDBjxu75D86qA9cU253FMSDe5Z08+elVe+WdrxV2v+HST3tznXlWrUwP8bhMFl89QUAKa7Q59O6rVvkvshRuVdWdk/vKN2p3c16+Ze/mUnEs8Pr8yom7qQJhIJq6mpX17O7pj2DbaJ15IiOirnZ+taHrlbp7Ey966t1+lNLz9mPNRxs1cYd25RrJd4WyHPX2EcCQfU0NCocnP4a+Zlo6zmplu6TeuPlxbbcH0D0VZfma09nv90xEGfPH+zTjroD+uIdtcrIMHbHQTwtWy+95wfSk1+QfvVPUujSpz7ys1y6fAFFs0RB0QwAUpzD41aBt0oZF1mtPbaye19nx+gGoZHJHd9cUVSm7Rs26ZTL6OXPfUWP33rvpDYVjZtxbHi9yzXhY91Olzbu2Cb/0c5p3QvxlZFhdOe6cn3tztV67Pku3fnQ0/rJC4d1aiRxO8zOXWPf39Gux2+9QwPt7XHPEQpHtPmxPfrETctlDN9gAamiujRfTYcpmqWTSMTSZ37WrM/ftkrZngRrf0wSff6WpFhYdVG5JaOFs9wS6b9vknriO3cW00fRDADSQFFtjbJ83rM/H2/AeYbTqbrN96m3eXKDzz0Op6pLK+RyOOSypDUl5ZOasxVL9W3NauqKf3EDE1swO0v/8Vc12vK2au3vOanP/fpllcy+U1/e59DO1lM6cZpZe6/2hd+26LqlRVpZNtvuKACiaEVpvpq6KJqlk5+8cFhXLCrQ4jnZdkeBnTIypHX3jB7Z/NHd0lP/T4ok7ouIGEXRDADSRCAU1PYNm7Sw93TctypGy9iRuXgPt0f0VMzN1sf+0qv7bp6voye+qXcsDisQsbThG8/oXx5/Uf1D9hyDTDS/f+llvdDZr7uvrbQ7CoAom5+fqcMnmGmWLoLhiB7843599PrpdeMjusZOSniLy7SmpNyeECUrpA/8Qho5Odp19vKL9uTApFA0A4A04Xa6VF1aMeWh8D0NjXFth88vr9D6nY+o0Ocb9+Nup2vGw+29JaNfMAVC6VWgiffv5WSUZEl3eHP0o795jZYW5+qOB+u1o65D4cjk17PHQzAS1vYNm6Z9BHkq2o+d0r//8iV94a9qmHsDpCBjjObmetQzOGJ3FMTBL/ce1XVLizR7lr3d+Bg1dlLC7Zx4JEhMOd3SX2yW1m+Tfnqv9Id/l8Lp9XVpsqBoBgBIKBlul4pqa+TwTO2Ly1e2MU485d/tdOqua2/StUtXTTcmoiwjw+jW1WXa+dfXqHtgWB96+NmEOrLpynCourQi5keQj/YP63898rz+/Z2rVJDNN1hAqlpRmscRzSgab+xEovhm3QG9d+1iu2OkrOrSCq2tHP+F1qRQUi29/3HJ4ZS+8SbpcGK9uAmKZgCAGVhb6bOvtf1VxrYxXr6gXHWbH4hLRxCiL8vt0P9+4zLduXax3vvQ09p3dMDuSHHTeyqgD39zlz791mr5FuTZHQdADC2fn6cX0+jzW7ra09mvuTkeLZidZXcUaHTGb1FtzQXvt33JgMMpvfZvpVu+Kv3yE9JvPi0FOcKdKCiaAQCm7GJfdCSCseObdi8lwORk+bzj/ll6w/JifeH2Wv39D3br8T1HbEgWX4FQRB/9zvPadONSrV5cYHccADG2tDhX/qODdsdAjD3W0Knbr1pod4y0kchfn07K3CrpfT+RcoqlXQ/ZnQZnUDQDAJwVNNKuox0aCSbOsThERzgYVJ+/Rcf37ku4uWaSxs1UWZSjb911tX7U0KV//cU+BcORuGaqLq3Qjdev17qtWxQJxna71ad+ulc3+Ip1rbcopvcBkBjK52ar/fhpu2Mgxp4/0KcrywvtjoFkkuGQ1t49umUTCYGiGQDgrAO5Lq3f+QV9489P6Ot//Pl5xbO1lb5xZ0YU+nyXHNyPxDDQ3qG6zfcpw+WQlHhLAfr8LXriiR9dMJMmN9Olr753tfKzXLr9wXq19ZyMay6Hx60Cb5WuWlgZs5kpO5/r1HAgrPdfUx6T6wNIPC5HhmRZCsX5xQDET8/giHIzXco88+8ugORE0QwAcAGXw6mNO7bpqV88rj5/i/r8LRd9rMPjntbgfuBcBd4qBcNhNXW1X9DpmJFhdPfrK/WZt1fr3kcb9D/7Xo5Zjvq2ZjV1tZ/3vlge9/B3D2pHXYc+c0u1jGFTJpBOyudmq4Nus5RVt/+41lXOsTsGgBmiaAYAABJCruXQxh3b1HCwddyPL5+fp2996Gp9q/6ANj+2J6G2a07HqZGQNn3/BX3utlWa5XbaHQdAnHmLc+XvZq5ZqqprO6ZrKJoBSY+iGQBgQgXeqpheP+kHtyIqBk1Y2zdsuuTm09mz3Pr6+9boNUvm6I7tT+uHDZ2yLCuOKaPDsiz94w/36IOvqdCSebl2xwFgg6XFuXqJZQApa3dnv1aU5tsdI+mFAyFd/c/3KRIMx2wuayQUUp+/ReGR5H4xLtkZY+41xjQZY/YaYz525n3/bIzZbYxpNMb8yhiz4JzHbzbGtBpjXjLGvDFWuSiaAQASxsXmpkVTuhTozv11FtXWqPLtb9P6nY8or7zC5mQX53I4VF1aMeHmU2OMbl65QN/9yFrt7uzX27/8lH62+3BSFc8e/ON+Fcxy6+21pXZHAWCTpSUUzaIlEAqqqatdgVDQ7iiSpEO9p1WSlymng2+3Z8rhdirD6dTT93367FzWaMtwOlW3+T71NjdP/GDEhDGmWtJGSVdJWiXpZmNMlaR/tyxrpWVZNZJ+Jum+M4/3Sbpd0uWS3iTpy8aYmPwB4W8xACAl1C5aou0bNiXMF8yJ5uzsObfz7CbNcCBkW57aRUtUt/mBS3aVTSQv06X/+5bLtX3Dau3q6NNtX6vTvqMDUUwZG79p7tafW4/pkzcttzsKABuVzs5S54nEm2lW39Z8wVKWROd2urRxxza5na6Yv/g2GXX7j+uaJXPtjoEJFPp8cdmQjUlZLqnesqzTlmWFJP1B0i2WZZ37hV22pLFXSN8m6VHLskYsy2qX1KrRglvUUTQDACStkXBI9W3NGgkG5HG5dde1N+napavsjpXwxjZpDnS027ZB0+Nya22l74KuskAoqPq2Zh16qk7+735/Ukcl5uVm6lNvvVxb37FCf79zj76/61DCdp0929GrL/1Pq7707ivoQADSXEaGkcfp0DDfsKecp1qZZxYL0T5GObYhO1YdbJiSJknXGmPmGGNmSVovaaEkGWPuN8YckvQenek0k1Qq6dA5z+88876o46s1AEgTkzn6uHgwqM9fd5uGAsPavmGTvCVlcUp3aX3+lnGLO3t6OrVu6z0XHRyPxDReF0NRbY3e/Oa3y+10ad3We9R6vHvKRyWWzMvVIxuv1gudJ/T+/3pWB46finb0Gdl3dECf/ulePXjnauVnueyOAyABLCnKUevLJ+2OgSiyLEsvdZ/U0mLmVUZDUW3N2dm6Y8cof/W7xy/YdB1tydhxmeDmGmN2nfPjw+d+0LKsFyX9q6RfS/qFpBckhc587BOWZS2U9G1JHz3zlPFWjsfkFVOKZgCAs1yWtGzOfF1ZsVx3XXuT3E42+iG5zHI79Zm3r9C9f1mlex9t1AP/06pAKGJ3LB3qPa2Pf/cF/b87rtC8vEy74wBIEN4SNmimmraeU7qsKFsZGeN9T4/p4BhlSjhmWdaac348+OoHWJb1kGVZV1iWda2kXkktr3rIdyTdeubtTp3pRDujTNLhWASnaAYAkDTa8r5u6xblVSTuoHikn4t1GU7kikUF+v7d6+TIMHrX1+q0q6M3Bukm59jJEf3Nt5/Xv71zpSrmZtuWA0DiWVqcq5comqWUp9o4mhltdh2jPLWnedKjIjBzxph5Z/67SNI7JD1yZhnAmLdK2nfm7Z9Iut0Y4zHGVEiqkvRMLHJRNAOANNbT0KihZr+k0Zb3Am+VHK7EOzZ2doZFkCH/GDWZYxMuR4bufn2lvnRHrb78+zZtfmy3jvQPTXhtb3FZ1JZK9A8F9ZFvPqd/XL9c1aX5M74egNTiLcmRnw2aKeWp1uO6ppIlAKkg4GGrZpztNMY0S/qppHssy+qT9FljTJMxZrekGyXdK0mWZe2V9D1JzRo9znmPZVkxaUXk3A0AIGEV+nxav/MRhQMh/fKOO7V+5yMqWmb/Vqxkl1dekbDHHMa2ai7sPa2DU3heT0Ojimprxv3YwsJZeuh9a/Tr5m599DvPKz8rrK23rFZx/vhdX26nS9WlM++4PH5yRBt37NJHr1+idXQdABhHUY5HPSdH7I6BKIlELB3oPa3yObPsjgIkHcuyXjfO+24d77FnPna/pPtjGkp0mgEAEpjD41ZRbY0cbl7jiSaH25mw26LGtmpOdp5eT0Pj2eObPQ2N8n/3++Me5zTG6MbLS7Tphtn67jPf0l89+JR21HVoJBSbwmH3wLA++N/P6u9uXKrrlxXH5B4Akp8xRtlupwaH6aROBc1HBuSbnydjmGeWCjJDdidAIqBoBgBIeGMdZ4U+usyiKRIMR3V1u50u1mV2rp6GRg2/2KLTgRZ96i3zdXIkpHd8+Sn9urk7qlk6+07rQw8/q3+62afXLOGIDoBLW1qSK383GzRTAfPMgNRD0QwA0lAwElZTV7sCoeR4Ce1sx5nHbXeUlFFUW6M5ly+b0qyOkWBA9W3NGgnaW2Srb2u+6Kr5s/PvJigEZroy9DfXLdHDH7xKv2g6qo07dulQ7+kZZ2s/dkof+eZz2nrLSq0pL5zx9QCkvqUluXopyeaaTWauZDp6qu24rllC0QxIJZx3AYA05MpwaOOObfrd2+49+74sn1dFlT4VnfO4otqaSXXw2KGotkbXB32q83pVu2iJ3XGSxnR/P8cKVRt3bFPd5ge0tjIxu/4ynKNDewu8Vef9WsMjAfX5WxTxnH9kZm6OR5+7bZWe3n9cH/tuo7LdQb1hWa7uXFerjIzJHa8JhSP6+Z4jeuz5Lg0OB/X522q0tCQ3qr8uAKlraXGufrb7iN0xMEPBcETHTo5ofn6W3VEwBYn6dS4SB0UzAEDSGpt/hfgaavarZyCQVF9o9jY3q27zfZr3wNaz7wuPBNTb3KxCn09XXzZHP7h7nR5+qkF/8A/q0V1/lsthlONx6jVL5srjzNBQIKxMl0OZrgy5nRkaDka07+igGg726S+WzdP9t1SrrIDhz0CiqC6tUOVAQI/bHWQCVcW5eumo3+4YmKHdnSe0qmy23THSRjAc0vYNm3jhFDFH0QwAAKSlbTNjbgAAIABJREFU3uZmPX7rHaNbWWtrZIzRspJMLSvJPFuMPX5yRE+2HZdlWcp0OTQSimg4ENZIOKJZbofeubpM//y2y+V0MPECsMOKojJt37BJgwPDdkeZtvwslwZHWASQ7J5sPa5rKpljGS8uh1PVpRXyuKIzuiNopG/trdPlB1pVu3iJlMdIEIyiaAYAAHARc3I8euuqBXbHAHARnjPfOPedSu5OrTnZHh07OaK5OR67o0zJ2LbiZOo8jpW6tuN679rFdsdIG9WlFdM+bTDe8w7kuvSZ33/vvNElgMQiAAAAcAljw/8DoaC8xaMdHYHAcMps3Rxz7q8TAOJtaUmu/Em2DACvGA6GdToYVmE23UmxUlRbowJvVczvc3ahUJCvBzCKohkAALiohoOtWrf1Hu093CF/d6e8xWWKzMqc0tbN6Sj0+bR+5yPKK6+Q9Eo3w2TtOtpx0c1uzoiloWa/woFXtseO/Tr93Z3TDw0A0+QtztVL3RTNktVzB/q0ZnGB3TEQBWMLhQbax9/SjfRD0QwAAEzI5XBq445tcjtdWlNSHvP7OTxuFdXWqOTqNZKkPn+Lehoa1dPQqKauV76Q7fO3nPe8SCikdVu3KK/i/GLbWBHu9a/7S/3qlo/p4L2bNdDBF8QAEsPS4lz5KZolrSdbj+k1S+bYHQNADDDTDADSUDAS1vYNm+TNKpYk1W1+gO1DSFhFtTUqqq05WwA7d46Jf9feCx4nSd4z7xt7zlgRTpKuvXG9eneWn9dpBiA9jHWgJtrm5ariHLV0n7Q7Bqbp2Y5e/fV1lXbHABADdJoBQBpyZThUXVoht9Mpt9OptZW+qG0fAmLt3G92J5pvMt5w6rECmsM9+tphn79Fff7RIeIzGSwMANM1tp3Xsiy7o2CKTgdCCkcs5Wa67I4CIAboNAMAAAnbfXGu8QpgbGwDkCrm52eq68SQygpm2R0FU9Bw8ISuWMQ8MyBV0WkGAAAAADarKs5R68sc0Uw2T7f36qqKQrtjAIgRimYAAAAAYDNvcS5FsyS0q6NXV5ZTNANSFcczAQDAtOw62qGO/zkgl8OpO9fdMOFcvJFgQA0HWxUIBeV22j/7ZWyjZjgQkno77Y4DIM0tmZejJ1uP2R0DUxAIRXRyJKSCbObCAqmKTjMAADChYDik7Rs2XbBl1eVwauOObWo42DrhNRoOtmrd1nvk706MAtWrFwIAgJ0qi3LU1nPK7hiYgj1dJ7SyLN/uGIixPn/L2W3cSD98lQgAACZUu6gqoZcEAECyG92gGZZlWTLG2B0HkzA6z2yO3THSRjgQ0rqtW1R5/Xo5PHT3IT4omgFAmimqrdGbNbpxkFfNgNG/EwVtfPENwH4leZnqHhhRSX6m3VEwCc+09+odtWV2x0gbDrdTBd6quBXMIqHRIl1eeUVc7ofExPFMAAAAAEgAS+blquXlwbjdr76tWfVtzXG7XyoJRyz1DFLgTGUZzjNFOsY4pDWKZgAAYMaGmv0Tdi4GQkFt37BJ3mJelQeA8XiLc+TvZoNmMnjxyICWz8+zOwaAGKNoBgAAps1bXKa6zQ/IW3LxQthIMHC2k6G6tCIhNme+Wu2iJarb/MAFiw4AIJ6q5uWqNY6dZpi+0XlmhXbHQAxl+bwqqq2xOwZsRtEMAABMydgg3huvX69rl67S2kqf3M6LH11ItK2Z4/G43Fpb6ZPHxWwzAPapnJet1pcTv9MsEAqqqatdgVDI7ii2eab9uK6maJYyFg8G9fnrbtOgCdsdBQmGohkAAJiSkqvXyPtX72JzFQBE2Sy3U0PB0Q2aicztdGnjjm3yHx19MaSnodG25UL1bc1q6mqP6z0ty9LB3iEtKpwV1/siNsKBkK79ly26as01cjkcdsdBjBhjvMaY3xpjms78fKUx5pMTPY+iGQCksaLaGtrOIemVroGuZ3exVRUAbFSU41HP4IjdMSYtHAyqz9+icCB9us7aek7psqJsGWPsjoIoOLuV0+VSXkWF1u98RHkV52/MDAeD8n/3+zr69C6bUiIKtkvaLCkoSZZl7ZZ0+0RPomgGAECa6/O3KOxvP69rIBoutpVtbaVPayt9UbsPAEyHnd1Rl1JVnKuWJDiiOWagvUN1m+9Lqw2Dz3b06qpyjmamIofLpaLaGjlc589fTcc/5ylolmVZz7zqfRNW+ymaAQCAuKguraBYBgATqJqXo5ZulgEksmc7enUlRTMg2RwzxlRKsiTJGPNOSUcmehJlUgAAAAApYdfRDnUNJt6G3qmoKs7V93cdsjsGLuGlo4NaWpJrdwxEydiokrZzuuN5kS8l3SPpQUnLjDFdktolvXeiJ1E0AwAAAIAEsWReTlIdz5yqsWP7yVqUONo/rKJcjxwZzDOLt1jP4U3WP5OYHMuy9kv6S2NMtqQMy7Im1dLL8UwAANLc4MFDioTTZ4AzACSyHI9Tp0ZCCb9BM11xNBNITsaYfzHGzLYs65RlWYPGmAJjzGcmeh5FMwAA0lShz6d1W7eo6SvbFfDQfA4AiWJOjkfHTwXsjpGwLrZoJh52UTQDktWbLcs6MfYTy7L6JK2f6EkUzQAASFMOj1sF3iq7YwAAXqVqXo78cVwGkKibRBNRY2e/Vpbl2x0DwNQ5jDGesZ8YY7IkeS7xeEkUzQAAwEXUtzWrqat90o8PB4PqaWhUeCSgkWBATV3tGh4+rT6/P4YpASD1eItz1JbCc82S1cBwUB5nhjJdDrujIEHZ2QWJCX1L0m+NMR8yxnxQ0q8lPTzRkyiaAQCAqBho79Djt96h3uZmNRxs1cYd22Tt79RTm++zOxoAJJUl83Ll706tolkqFBOeO9Cn1YsL7I4BYBosy/o3SfdLWi7pckn/fOZ9l8QAEwAAoGAkrO0bNsmbVXze+73FZdq+YZMCoeAlnx/rjVYAkE5GN2jG73hmrMRyU+ZUOqGj5dn2Xl1ZTtEMSFaWZT0h6YmpPIdOMwAAoHULKnXXtTfJ7Tz/9TS306Xq0gq5nS6bkgFA+snPcmlwODG3Gk/16H4qee5An1YvYgkAkEyMMX8+899BY8zAOT8GjTEDEz2fTjMAANJYoc+n9TsfUaEv+l0AAIDpK5jlVu+pgAqz3TG7RyAUlL+7Uwuzii940QTnC4QiGg6GlT+LF5GAZGJZ1mvP/Dd3Os+n0wwAgDTm8LhVVFsjhye635TVLlqius0PyFtSFtXrAkC6qCrOUWuMlwG4nS5t3LFN/qOdF3yMjZrn23d0QL4FeXbHQJLg709iMcZkGGOapvNcimYAAOCS1lb6pjyPxuNya22lj84FAJimqnm58ncn/1yzWAmGQ2rqap9w5ma0vHDohFaVzY7LvZBaKKDZz7KsiKQXjDGLpvpcimYAAAAAkGDi0WmWjEaCgbMz1Tbu2CZ/94VdcrHQeKhfKymaAclsvqS9xpjfGmN+MvZjoifx8i8AAIiqXUc7VNA22mlW6PPpI1//hsoGuuLWDQAAqaBqXk5MO80mM9C/z98iaXIbkqfy2JloONiqjTu2afuGTTG9z6v5uwflLc6J6z2RGNgQnjI+PZ0nUTQDAAAx4/C4VbZmjVa1zbI7CoAUFzTSvuNHlJm5wO4oUTF7llv9Q7zYkAgGhoPKcjvkdHBQCzNT39YsSVMee4HpM8ZkSrpb0hJJeyQ9ZFnWpNcT87ceAAAAQNI7kOvSx3//PbkcqdMXMDfHo57BEbtjzMhQsz8m85yC4ZC2b9gkb3HZ2bdrFy2J+n0kqamzXytL82NybaSeSCCoPn+LwoFL12Xq25rPFtEQUw9LWqPRgtmbJX1uKk9OnX9RAAAAACCFLCvJ1b6jAyrKLYrrfce+6Y8Ew9O+xtjssUXhSTd0TInL4VR1acV5b3tc0d0EPaax84RWLWSeGS7u3OLXSGu76jbfp/U7Hxn3sUPNfvUMBKS82Px5xQV8lmWtkCRjzEOSnpnKk+k0AwAAAJC01lb6tKak3O4YMbG0JFcvHY3/Bs2xb/ozXI5pX2Ns9pjDGp13Fg4m71HT3Yf6VUPRDEhWZz/5TOVY5hiKZgAAICoKfT6t27pF7pHYdBUAQLpZVpKnfTYUzcbT09A4rWOWGU6n6jbfp4H2Sy8dSGSH+k6rrCDL7hhIA9P9e4ZLWmWMGTjzY1DSyrG3jTEDEz2Z45kAACAqHB63CrxVajvaoWy7wwBACqicl63Wl0/aHSOtdQ8Ma16uR8YYu6MgyYxtE6+cxGMplMWOZVnTb5kVRTMAABAHbIkCEC/e4jLVbX5AtYuWaKApuYdse5wORSxLoXCEzY2XUF1aEbN/Z144xDwzIJ3xmRcAAERNUW2NCrxeu2MASGNup0trK33nDYXfdbQjabfULZ6TrY7jp+N6T8+SCq3buuWiiwDGCpPekrIpXTcQCqqpq10vv/hi0nTWvMASAEzB2kqfqsvKL/mYSDiU9HP+0glFMwAAcJ6RcEj1bc0KhPhiDkDqGWr2J03BRhrdoBntZQBjmy2HAsPavmHTBcWvDLdLBd6qiy4CGCtMup1TO7jk7+7Uxh3blDuz01Jx9cKhfq0qo2iG6Al4kn/OXzqhaAYAAM6zp6dT67beI39357Sev7bSx3FMAHG3eDCoz193W8oV/JeV5Grf0QlnVU/J2GbLLHemqksrplz8SiSx/DcnErF0Yiigwmz3xA9GShtbdhQOjL/saKyLciQYmNJ1k62In44omgEAAABIei5LWjZnvtxOl91RomrZfPs2aEaC4dFjZCNTKwTEQyznmI050Htai+ew2gavLDtyuMcvMLudLm3csU0NB1unfY9w4MyxzYsU5mCP5H1JAQAAxEQwHNb2DZt057obzpsJBACJpKi2xu4IcbEgP1OHTwzF/D59/pbRN/Je+byf4XKobvN9KvBWjfucVP89aD48oMsX5NkdAyli7Fh00ciI1m3dop6KCgVaXjmiOdDRrrrN92neA1tV0DaLrv0EQacZAAA4j8vhUHVpBQUzAEgAxhhlu506OUL3Sbw1H+nX8vkUzfCKPn/LtI9Tjh2LznN4RrvWXKnVFZuqKJoBAAAAQALzluTI323PEc2gGd0+GgilX9HuxSOD8lE0Qwyd3aTJkcyERdEMAAAAABLY0pI87TsS/aLZZOaCHch1af3OL8h/dHrLYZJZ98Cw5uV67I6BJBYJBC9ZFDu7SbODTZqJiqIZAAAAgJQ3tt0uGE6+jo7lJbl6KcobNHFpvacCKpjlljHG7ihIYiOto3PKLrZAAImPohkAAACApBYOhLRu6xblVVRc9DH+7k5t3LFNLkfyffPqLcm1bYNmunrxyICWz8+1OwZSnHvkzOeu8ot/7oK9ku9fDAAAAAA4h8PtVIG3Sr0pOlg7L9OlkyMhWZZlW+dTJHRm9tIqb1oMMH/xyIB8bM5ElPT5WzQ06/y/N2srfeoZCNiUCJNFpxkAAACAlOctLtP2DZs0aMJ2R5mWkrxMHR0Ytu3+Gc4zs5fa02P2UvORATZnAqBoBgAAACD1uZ0uVZdWyOVw2B1lWpbN54hmPLX1nFJlUY7dMZAiIqGQBg8dlCRl+bwqqq2xOREmi6IZAAA4q6i2RgVer90xAACvEqsNmrhQIBSRkeRy8O0yoiPD6dSzD37d7hiYBj4LAAAAAECCi/UGzUgwPDqzLBiM2T2SRcvLg1oyjy4znG/0hcUqu2MgziiaAQAAAECCK5+brfZjp2J2/QyXI+FnltW3NaupK/b5XjwyKB/zzDBNhT6f1m3dIvdI6Oz7IqGQrvzwXRd9DgW5xMX2TAAAAABIcC5HhmSMguFIQh8b7GloHH0jz21vkBloPjygG3zFdsdAknJ43CrwVqngzM8PavR4Zu7CRdLzdibDdCTuZ1sAAAAAwFmVc7O1vyd23WbJYGwLaiAUu2OkLx4ZoNMMgCSKZgAAAACQFJaW5GpfDOeaJYOxLahupysm17csSwPDQeXPis31kXoudWy40OfT+p2PKK+8Is6pEC0UzQAAwHnWVvq0ttJndwwAwKv4FuSp+XByFc0ioZDWbd2ivIrkKBoc6R/W/PxMu2MgRTg8bhXV1sjhdspbEvsuSUQfM80AAAAAIAlUL8jXV37fZneMKclwOlVQXq5eV/Q6t2L5wk5TV798C/Jjdn2kL7fTqerS84vHRbU1NqXBZNFpBgAAAABJoCDbrROng7Isy+4oKeuFzhOqWUjRDPE33tZN2I+iGQAAAICUFA4k19HAyVg8Z5YOHD8d9etGguG4/7/qaWh8Zdtmgmg8dEKrymbbHQNJJhgOafuGTapdtGTa1xjbupnh4EBgIqFoBgAAACAlOdxOFXir5Iji0UC7VZfma09Xf9Svm+FyXPD/KhIM68oP3xX1eyWqSMTSidNBzcnx2B0FScblGD166XG57Y6CKKOECQAAACAtrK30qWcgYHeMGVlRmq8nW4/pLasWxPxeGS6Hchcukp6P+a0Swv5jJ3VZUY7dMZAk6tuaz75dXVpx3qw9ZpWlDjrNAAAAACBJrCjNV9Ph6HeaxYO3eHR74KAJT/m5PQ2NGmr2xyDVKxoP9WtVGfPMYK9hWpsSCkUzAAAAACmpqLYm5To+YrEMoKi2RgXeqnE/5i2ZfqHr1dxOl6pLK+RyOGZ8rVhoPNSn2kXMMwPwCopmAAAAANJSn78l4QbRT8aiwlk62Bv9ZQDjcTudUy501XW16ceNT8YwVWw0dQ3o8gV0miH6plLAX1NSft5RT9iLohkAAAAAJJFYLQOYjkKfT+u2blEk+EonWq7l0Gef+I7+4c3vVjAcsjHd5A0Hw7IkZboSswsOgD04LQsAAAAASWRFab6ebDumm1dGbxnAWBdM0RSf5/C4VeCtUp+/5YKPVRYtkKs/eN77EnUZw4tHBuSbn2t3DAAJhk4zAAAAAEgiK0rz1ZQgnWapYndnv1aWMc8MkxcIBdXU1a5AKDjxgycpFecwJjuKZgAAAACQRAqy3eo7Fd1lALFQXVqh6rLycT8WDoTU529ROJAYxzdf6DyhlWzOxBS4nS5t3LFN/u5Ou6MghiiaAQAAAECSiecyAElyj4S0busW3Xj9+qgMKR/oaFfd5vvkcF96YlB9W7Pq25pnfL+JtHSflLeY45kAzkfRDAAAAACSzIqy+C4DyHA4VeCtksPjjts94+XkSEgeZ4ZcDr49BnA+PisAAAAAQJJJpA2ayW5PZ7+qSzmaidhbW+mLSqcm4oeiGQAAAAAkmVRZBhAOBtXT0KjwiH0bNXd3ntCqhRTNAFyIohkAAAAAJJnCbLdOnE6MZQBFtTUq8FZd8jEX67AZaO/Q47feod7m2M8tuxg2ZwK4mEtPXQQAAACAJJFux54WFszSod4hLZozy+4okka7xgbaOxTxmCk/t8/fImm0ABdv7cdOqWJOdtzvCyDx0WkGAAAAAEko3ssAJjLQ3qG6zfcp4Ilub0Y4GFSfv0WRcCiq15Wk4ydHNHuWSxkZUy/0AUh9FM0AAAAAIAnFcxlAls9rSxeYJA20t8ekGCdJu7s4mgng4jieCQAAAABJaEVpvrb/cb/dMS7JrkLbZO3p7NeqMpYAYPqqSyvS7mh4OqHTDAAAAACSUGG2W72nAlNaBjASDKipqz2GqZLL7s4TWrmQTjMA46NoBgAAAABJamFhlg71Dk368Q0HW7Vxxzb9w5vfrUAoGMNkl5ZXXqF1W7coEgxP+NjM6I8ykyRZlqXDJ4a1ID8zNjcAkPQ4ngkAAAAASWrFmblmU92gWVm0QG6nK0apLm3syKbD7Ty7NdMORweGVZKfKWNYAgBgfHSaAQAAAECSiuUygKLamoSfSTYTLxzq10rmmQG4BDrNAAAAACBJrSjN19f/FNsZZak65Hx35wldWV5odwwACYxOMwAAAABpx85jgdE0J8cz5WUAGLW7k04zTE99WzMLNdIERTMAAAAAaSkSDKvP36LwSMDuKDOysDBLnX2TXwaQ6HoaGtXT0BjTe1iWpd5TAc3J8cT0Pkg9I+GQmrraFQzHaEMFEgpFMwAAAABpp8BbpQyXQ3Wb71Nvc7PdcWZkRQznmqWqjuOnVT53assTAEna09OpjTu26fIF5arb/IBqFy2xOxJiiKIZAAAAACSxWC4DSASeJRVat3WLIsFw1K65u/OEVpbNjtr1kH7cTpfWVvrkcbntjoIYomgGAAAAAElsZdls7e48YXeMmMlwu852BkYLmzMBTAZFMwAAAABIYoXZbg0MhRQKR+yOEjW7jnaovi12x2abuvq1opSiGYBLc9odAAAAAACSyVgxZ22lz+Ykr1hWkqsXjwxqRRJ1TxXV1thy31A4oqFgWLmZLlvuDyB50GkGAAAAAEluTXmBdh3otTtGUmh5+aSq5uXYHQNAEqBoBgAAACDtFNXWqMBbZXeMqFlTXqhdB/rsjhFTa0rKo9LdN7oEIHk68gDYh+OZAAAAANKGXUcCY+2yudlq7zkly7JkjIn7/ZPp/+sLnf165+oyu2MASAJ0mgEAAABAkjPGaMHsLHX2DdkdZdpiPfx/TPPhAfnm58X8PkhNK4rKtH3DJgVCQbujIA4omgEAAABAClhTXqDnUvyI5kwNB8OSpEyXw+YkSFYeh1PVpRVyO1kkkQ4omgEAAABACriSZQAT2tPVrxWlzDMDMDkUzQAAAAAgBVSX5mtP14DdMaYtGA6rqatdgVAoZvfY1dGnNeUFMbs+gNRC0QwAAAAAUoDH6ZDHmaGB4eSctZRrObRxxzb5j3bG7B7PHejV6sUUzQBMDkUzAAAAAEgRtYtm6/kknGs2ePCQIuGLd5gV1dbMeEOnZVnqOjGs0tlZM7oOgPRB0QwAAAAAUsSaxYVJuQyg6SvbFfA4Y3qPtp5TuqwoW8aYmN4HqSsaxVskF4pmAAAAAJAiVi9mg+bFPHegV6sXcTQTwORRNAMAAACAFFGY7dbgcEjBcCT+9/b5tG7rFgWGR7R9wybVLloy4XPCgZCq/3pjHNJJzx1gCQCAqaFoBgAAAAAppLo0T3sPx3+LpsPjVoG3Su5Mj6pLK+RxuSd+jtup3EUL45BOeunooJaV5MXlXkhtayt9WlvpszsG4oCiGQAAAACkkDWLC7Wro/eSj6kurYjJN/1FtTUq8HpnfJ1gJKymrnYFQtHZBDocDMsYI7eTb4EBTB6fMQAAAAAghVxZXqhn2i9dNEt0rgyHNu7YJn93Z1Su5+8e1LKS3KhcC0D6oGgGAAAAAClkYWGWDvUNybIsu6NMWzAc1vYNm+QtLovK9Zq6BnR5aX5UrgUgfVA0AwAAAIAUYozRZUXZ2n/slN1Rps3lcKi6tEJupysq12s63K/qBcwzAzA1FM0AAAAApLR0HNp95eKCCeeaJZpg5Ex3WUl0usvOte/IgJbPp2gGYGoomgEAAABAillTXqhnO/rsjjElroyx7jJnVK8bDEcUiljKdDmiel0AqY+iGQAAAACkmOXz87Tv6IDdMRJCS/dJLZmXY3cMAEmIohkAAAAApBhHhlFhtkcvDwzbHcV2T7cf11XlhXbHAJCEKJoBAAAAQAq6cnGBdh1IriOasVC//7jWVc6xOwaAJETRDAAAAABS0Ohcs8RfBpBXXqF1W7coEgxf8LGZLnGIRCwd7B3SosJZM4kIIE1RNAMAAACAFFSzcLYaD52wO8aEHG6nCrxVyojBoP59Rwe1vCRXxpioXxtA6ovuWhIAAAAAQELIcjvkMEYnR0LK8STXt35rSspVNIMOszF1+49r7WUczQQwPXSaAQAAAECKumJxgRoOJu5cs6LaGhXV1sTs+nVtx5hnBmDaKJoBAAAAwCTVtzWrqavd7hiTtmZxgZ7tSNyiWSz1DwXVczKghcwzAzBNFM0AAAAAIEWtKS/UcwcSfxlALDyx54huWlFidwwASSy5DrYDAAAAwKvE8nhfsivMdmtwOKRgOCKXI3F7Jopqa1TQ5o7qNX/ceFj/eTt/NgBMX+J+1gQAAAAAzNjlC/K09/CA3THi6lDvaTkdRsV5mXZHAZDEKJoBAAAAQApbs7hQuzrS64jmT144rLfXlNodA0CSo2gGAAAAACnsyvJCPZtGRTPLsvTLvUf1pmrmmQGYGYpmAAAAAJDCFhZm6VDvkCzLsjtKXOzp6tdlc7OV7WGEN4CZoWgGAAAAACnMGKOKomztP3bK7ihx8djzXXp7LUczAcwcRTMAAAAASHFXLi5Ii7lmwXBE9fuP67VL5todBUAKoGgGAAAAAFMQDIfU1NWukWDA7iiTtqa8UM929NkdI+b+3HJMr1kyV04H3+oCmDkOeQMAAADAFLgcTm3csU3VpRVaW+mzO86kLJ+fp31HByTNsTvKRUXj/+VjDV36yLWXRSENANBpBgAAAADTMtTsV09Do90xJsWRYTQ3x6NjJ0N2R4mZweGgDhw/pcsX5NkdBUCKoNMMAAAAANLAG5YXa1fH4Zjfx67uu1/u7dabqktkjLHl/gBSD51mAAAAAJAGbvQVa9eB03bHiJlfNB3V+ur5dscAkEIomgEAAABAGijOy1QwbCnDZNodJepOB0LqGRxW+dxsu6MAmAZjzL3GmCZjzF5jzMfOvO/fjTH7jDG7jTE/NMbMPufxm40xrcaYl4wxb4xVLopmAAAAAJAmVi+epSx3pd0xou5PLcf02qq5dscAMA3GmGpJGyVdJWmVpJuNMVWSfi2p2rKslZL8kjafebxP0u2SLpf0JklfNsY4YpGNohkAAAAApImrKrKV7Vlqd4yo+3Vzt270ldgdA8D0LJdUb1nWacuyQpL+IOkWy7J+debnklQvqezM22+T9KhlWSOWZbVLatVowS3qKJoBAAAAwCSMBANq6mpXMJy8GyhL8lySMvTyQNDuKFETDEe09/CAVpTm2x0FwPQ0SbrWGDPHGDNL0npJC1/1mA9KeuLM26WSDp3zsc4z74s6imYAAAAAMAkNB1u1ccc2uRzOCz4p9zs9AAAgAElEQVRW39as+rZmG1JN3cnh3frNvkG7Y0TN7/a9rNdVzVVGBlszgQQ11xiz65wfHz73g5ZlvSjpXzV6HPMXkl6QdPbVCWPMJ878/Ntj7xrnHlYsgl/42R4AAAAAEDM9DY2SpKLaGlvufzrQqhcODWkkFJbHGZMxQHH16DMH9U83++yOAeDijlmWteZSD7As6yFJD0mSMeZfNNo9JmPM+yTdLOkNlmWNFcY6dX4nWpmkw9EOLdFpBgAAAABxkTjdaBGtKZ+ln71wxO4gM9Z1YkgjoYguK8qxOwqAGTDGzDvz30WS3iHpEWPMmyT9vaS3WpZ1+pyH/0TS7cYYjzGmQlKVpGdikYtOMwAAAACYpl1HO1TQ5rY7xpTdsDxPX/vTAb3jilIZk7zHGr/77CHdtubVo48AJKGdxpg5koKS7rEsq88Y8yVJHkm/PvN5qt6yrLsty9prjPmepGaNHtu8x7KscCxCUTQDAAAAgCkIhkPavmGTvFnF2n2s0+440zJ7lkNV83JUt/+4rqmca3ecaRkOhvXr5m796J5r7I4CYIYsy3rdOO9bconH3y/p/piGEsczAQAAAKS5Pn/L2Tljk+FyOFVdWiG3M7l7ED702sv0jT932B1j2n7c2KWbVpSkxFw2AImJohkAAAAApKGlJbkaHA6qe2DY7ihTZlmWvv30Qb3n6sV2RwGQwiiaAQAAAECaunV1mXY+n3xHTHfUHdDay+aoIDv55skBSB4UzQAAAAAgTd20Yr4e33NElmXZHWXSGg+d0M92H9bf3ei1OwqAFEfRDAAAAADSVLbHKd/8PO060Gd3lEkZCoT1yR/t0edvq2GWGYCYo2gGAAAAAGns7TWl+knjYbtjTMp//sav269cpIWFs+yOAiANUDQDAAAAgDR2VUWhnu3oVTiS2Ec0d3ee0O7Ofr37qkV2RwGQJiiaAQAAAMAUVJdWaG2lz+4YUeN0ZOjK8kI93X7c7igXdToQ0id+2KTP3rpCGRnG7jgA0gRFMwAAAABIczetnK+f7T5id4xx9Q8F9YkfNunOdYu1eE623XEApBGKZgAAAAAQJT0NjeppaBz3Y4FQUE1d7QqEQnFONbErywv1/IE+jYTCdkc569RISJ99Yp/e8/V6rSkv0LtWl9kdCUCaoWgGAAAAIC2FAyGt27pFeeUVcbmf2+nSxh3b5D/aGZf7SZcu4p3LkWF0g69Yv9rbHYdUE2s+PKB3fbVO5XNm6Sf3vFbvuXqxjOFYJoD4omgGAAAAIC053E4VeKvkcDvtjpIQbluzUN999pDdMfRMe6/+fuduffW9q3X7VYuYYQbANhTNAAAAACAKIoGg+vwtCgcS7/jlZCwsnCWnw6j92CnbMrS+fFJbfrZXD71/jRbNmWVbDgCQKJoBAAAAQFSMtLarbvN9Sd259t6rF+u/nmy35d6Dw0H97Xcb9R+31WhebqYtGQDgXBTNAAAAAACSpDcsn6emrn51nRiK+72/9LtW3blusaqKc+N+bwAYD0UzAAAAAIAkyRij/3V9lb70u5a43rf92Ck9d6BP77yCDZkAEgdFMwAAAADAWdctLVJbzyl1xGm22UgorE/8cI82r1/G0H8ACYWiGQAAAACksD5/i3oaGif9eGOMPvaGKn3xt7HvNotELG36/m6tXzFfqxcXxvx+ADAVFM0AAAAAAOe5ZslcdQ8Oq/XlwZje5yt/aFNZQZbeu3ZxTO8DANNB0QwAAAAAcIGP3+DV/T9/UZZlxeT6zx3o059aevR3N3hjcn0AmCmKZgAAAACAC6xeXKjFc7L16LOHon7tYDiiT/1krz53W42cDr4tBZCY+OwEAAAAABjX379pmR555qCeP9gX1ev+4LlOXb9snkpnZ0X1ugAQTRTNAAAAAADjynI79NX3rtb9P39R39sVnY6z4WBY36w7oLteVxGV6wFArDjtDgAAAAAASFwLZmfp23ddrY892qiewRGtWVygXzV362Dvaa1fUaJbasumdL2v/qFNt64uU26mK0aJASA66DQDAAAAAFxSpsuhL727Vr2nAvpRY5euXzZP993s0w+e69RvmrsnfZ09nf2qazuu919THruwABAldJoBAAAAACbkdGTon272nfe+L79nte586GldVpSty4pyLvn8kyMhfeJHe/TF22vlyDCxjAoAUUGnGQAAAABgWvKzXPqXW1boH3buUSgcuejjwhFLH3u0UR+5tlLlc7PjmBAApo9OMwAAAADAtFWX5uta71x9/Hsv6G9v8KpibrYsy9KxkwHt6Tqh5w70qa7tuF7vnaebVs63Oy4ATBpFMwAAAADAjNzzF0v0B3+P/vlnzeoZHJElS4XZHlUvyNOa8gLd9drLVJDttjsmAEwJRTMAAAAAwIwYY3Td0nm6buk8u6MAQNQw0wwAAAAAAAB4FYpmAAAAANJSUW2Nimpr7I4RVT0NjeppaLQ7BgCkBIpmAAAAAAAAwKtQNAMAAACAaQpGwmrqalcgFNQwE6MBIKVQNAMAAACAaXJlOLRxxzb5uzvtjjKhnoZGDTX77Y4BAEmDohkAAAAAxEh9W7Pq25rtjgEAmAaKZgAAAAAAAMCrUDQDAAAAAAAAXoWiGQAAAACkgPq2ZjV1dtgdAwBSBkUzAAAAAAAA4FVYigwAAAAAMVbf1qyGgy3avmGTvFnFdscBAEwCnWYAAAAAMIH6tmY1dbXP6Bouh1PVpRVyO+ldAIBkwGdrAAAAAEgRkXBIff4W+bOMHC6XKu0OBABJjE4zAAAAAEgRAY9TdZvv00D7+V1x4cBoMS0SDtmUDACSD0UzAAAAAEgRmefUxCKB4GihLBjWQEe76jbfp4CHw0YAMFkUzfD/2bv3aMvOsk7Uvzd1A9RgBUrAhJiYVCEF2impDknbImJLaEAFpDVgSE6LoAz0YB9QjLahO7RE7CCKCkoOShAQUERRBDqieDsJWCGRXJBcTJAECMVIJOGS1O09f6xZsDOpG1V771l71/OMscZe61tzrv3u5Btrrvqt7wIAAByADQ86Lhed/aJs27F96lIOyD03zIKyo1atmLoUgCVJaAYAAHAAVq9cNSzkv+qgzn/ksSfmtJM2znNVACwUoRkAAMB+bNuxPVffetOSGWWWJHebiQlwSIRmAAAA+7F65ao85w0X5rrbbpm6FAAWie8eAAAABpfdeG2SLNlplLt27MjpF5yfrSeemCQ56YLzs2v7TuuaARwEI80AAAAO0Hhdsrm7VR4Ojlq5Mms3rM+KVauyYtWqrN2wXmAGcJCEZgAAACOX3Xjtl0adfbW2fOrmAzp36xVXZusVVx7U7wBg4ZmeCQAAHPHuuO762Z2jV09bCACHDSPNAAAADtJdtTMXnf2ibHjQcVOXskfrNp2StRvWT10GwJJkpBkAAMBBWrViRR557GzR/c9PXAsA88tIMwAAAAAYEZoBAAAAwIjpmQAAAMvYuk2nfOn+9l2zNdg2HX/yhBUBLA1GmgEAACxzx2zcmNMvOD8rdiaPPPbErFlll1CA/RGaAQAAHKTNDz4hp520ca/Pb9uxPVffelO27di+iFV9pRVrVmfthvU5atWKSesAWEqEZgAAwBFv144dueO667Nz+/yGW6tXrspz3nBhrrvtlnl9XQAWntAMAAA44h21cmUuPfe83HnTTVOXAsBhwkYAAAAAS9hlN147dQkAy5LQDAAA4AiwbtMpWXujDQAADpTpmQAAAAdh3aZTsm7TKVOXca/NBu67ccNhURPAciA0AwAAWMJsNgCwMIRmAAAAADAiNAMAAACAEaEZAADAPlx247W5+tabpi4DgEVm90wAAIAjxGknbZy6BIAlw0gzAAAAABgRmgEAAADAiNAMAAAAAEasaQYAALAHX7z2umy9c1ty9OqDOn/rFVfmi7fcPL9FAbBohGYAAAB7sW3Hjlx9663ZvnPH1KUAsMhMzwQAAJhj247tufrWm7J9545c96lb8pw3XJgkuejsF2XT8SdPXB0Ai0VoBgAAMMd1t82CslUrvjwxZ9Px6/Njj3lS1qw6uKmaC+WyG6/N1bfeNHUZAMuS0AwAAOAQnXbSxmx+8AlTlwHAPLKmGQAAcERbt+mUeX/NXdu2547rrs+uNTXvrw3A4jDSDAAAYC/uPshhBvfccFMuPfe8bFuzcOMU7tm+7UtrrwEw/4RmAAAAS9AV/3rDV6y9BsD8EZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAWMK279yRi85+UTY86LipSwFYVqwYCQAAsIStWrEyjzz2xKnLAFh2jDQDAAAAgBEjzQAAAJaZ007aOHUJAEue0AwAAGAJuezGa6cuAeCIYHomAAAAAIwIzQAAABbYI4890ZRJgCVGaAYAADDHhgcdl4vOflHuqp0H/RprTj4xp19wflbfs2MeKwNgMQnNAAAA5li9clUeeeyJWbVixUG/xlGrV2XthvU5aoVlpAGWKu/gAAAAy4DpnwDzy0gzAACARbZz+/bccd312bnN9E2Aw5XQDAAAYJHdedPNufTc87Jitck/AIcroRkAAMASZmdOgIUhNAMAAJgHx2zc+BU7Zt5VO3PR2S/KpuNPnrAyAA6GscAAAADzYMWa1Vm7YX1uveXmL7WdfuxJWbfplOmKAuCgGWkGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAjp520MZsffMJBnXu37dYAlgVv5wAAAPNk3aZTsvbG1fs9BoDDn9AMAABgHp120sYkydYrrlyw3/HFa69bsNcGYMb0TAAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAWCLu2b4tV996U7bv3DF1KQDLntAMAABgibjiX2/Ic95wYVatWJm7V05dDcDyJjQDAAAAgBGhGQAAAACMCM0AAAAAYERoBgAAAAAjlo4EAACOeDu37cjpF5yfkx73xKxYs3rqcgA4DBhpBgAAHPFWrF6ZtRvWC8wA+BKhGQAAwF7cZ8fUFQAwFaEZAAAAAIwIzQAAAABgRGgGAACwFxsefFwuOvtF2bZj+9SlALDI7J4JAACwF6tXrswjjz1x6jIAmICRZgAAAAAwIjQDAAAAgBGhGQAAwMS2XnFltl5x5dRlADCHNc0AAIAj3rpNpyyJ1wRg8RhpBgAAcBgzCg1gGkaaAQAA7MHukWI33njtxJXMXHbjtbn61pumLgPgiGGkGQAAAACMCM0AAAAAYERoBgAAAAAjQjMAAAAAGBGaAQAAAMCI0AwAAAAARoRmAAAAh6nLbrw2V99y85ceb3jQcbn03N/KhgcfN11RAEcIoRkAAMBEtnzq5lx247UHfPzqlaty2kkbs3rlygWsCoBEaAYAAAAAX0FoBgAAAAAjQjMAAIAl6FvXzdY323T8yVOXArAsmQgPAACwD6edtHHqEvZozYqVh21tAMuBkWYAAAAATKaqXlBVV1fVNVX100Pbfxke76qqzaPjz62qG6rqo1V1xkLVZaQZAAAAAJOoqkcmeU6SU5NsS/KeqnpXkquTPC3J74yO35jkzCSPSPKNSf6yqjZ09875rs1IMwAAAACm8vAkl3X3F7p7R5K/SfLU7v5Id390D8f/QJK3dPc93X1TkhsyC9zmndAMAAAAgKlcneQxVfWAqrpfkicmeeg+jj82ycfnPL5laJt3pmcCAAAAsFAeWFVb5jx+bXe/dveD7v5IVb08ySVJPpfkn5Ls2Mfr1R7ael4qHRGaAQAAALBQPtPdm/d1QHe/LsnrkqSqXpbZ6LG9uSX3Hol2XJJPHGqRe2J6JgAAAACTqapvGH4en9ni/3+wj8PfmeTMqlpTVScmWZ/kgwtRl5FmAAAAAEzp7VX1gCTbkzy/u++oqqcm+Y0k65K8q6qu7O4zuvuaqnpbkmszm8b5/IXYOTMRmgEAAAAwoe7+zj20vSPJO/Zy/C8l+aWFrsv0TAAAgMPYrh07csd112fn9u1TlwJwRBGaAQAAHAbuuO76bL3iyq9oP2rlylx67nm586abJqgK4MglNAMAAACAEaEZAADAhHZu3547rrs+u7YvyDrWABwkoRkAAMCEtl1/Uy4997wctWrF1KUAMIfQDAAAAABGhGYAAAAAMLJy6gIAAAD46qzbdMrUJQAse0aaAQAAAMCI0AwAAAAARoRmAAAAADAiNAMAAACAEaEZAADAYWTrFVdm6xVXTl0GwBFPaAYAAAAAI0IzAACACd29cuoKANgToRkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAACARXbMxo05/YLzs2v7zqlLAWAvhGYAAACLbMWa1Vm7YX2OWrVi6lIA2AuhGQAAAACMCM0AAAAAYERoBgAAAAAjQjMAAAAAGBGaAQAAAMCI0AwAAOAwtmvHjpx+wfk5+sQTpy4F4IgiNAMAADiMHbVyZdZuWJ8Vq1ZNXQrAEWXl1AUAAABwb1s+dXPW3rh66jIAjmhGmgEAAADAiNAMAADgMHbfjRuybtMpU5cBcMQRmgEAAADAiNAMAAAAAEaEZgAAAAAwIjQDAAAAgBGhGQAAwGFg144dueO667Nz246pSwEgQjMAAIDDwlErV+bSc8/LnTfflO07d+bqW2/Kth3bpy4L4IglNAMAADjMfF2vyHPecGGuu+2WqUsBOGKtnLoAAACAI9XmB5+QYzZuzI0XbM+u7Tv3eexpJ21cpKoASIRmAAAAk1i36ZQv3V+7YX3uuO76CasBYMz0TAAAgMPAru07c/oF5+foE06cuhQAIjQDAAA4LBy1akWOPuHE3HnzTdm10w6aAFMTmgEAABwm7rz5plx67nnZtsZKOgBTE5oBAAAAwIjQDAAA4DD1yGNPtGsmwESM+QUAADgMrN2wfuoSAJjDSDMAAAAAGBGaAQAATGzdplOybtMpU5cBwBxCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAABxmtu/amYvOflE2HX/y1KUAHLGEZgAAAIeZVUetyCOPPTFrVq2euhSAI5bQDAAAAABGhGYAAACHiWM2bszpF5yfXdt3Tl0KwBFPaAYAAHCYWLFmddZuWJ+jVq2YuhSAI57QDAAAAABGhGYAAAAAMCI0AwAAAICRlVMXAAAAwJet23RK1t64euoyAI54RpoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjNg9EwAA4DBz2kkbpy4B4IhnpBkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAAADAiNAMAAAAAEaEZgAAAAAwIjQDAAAAgBGhGQAAAACMCM0AAAAAYERoBgAAAAAjQjMAAAAAGBGaAQAAAMCI0AwAAAAARoRmAAAAADAiNAMAAACAEaEZAAAAAIwIzQAAAABgRGgGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAAADAiNAMAAAAAEaEZgAAAAAwIjQDAAAAgJHq7qlrOCxU1dYkH5u6jnn2wCSfmboIjhj6G4tJf2Ox6XMsJv2NxaS/sdj0uSPPN3X3uqmLOBhCs2WsqrZ09+ap6+DIoL+xmPQ3Fps+x2LS31hM+huLTZ9jKTE9EwAAAABGhGYAAAAAMCI0W95eO3UBHFH0NxaT/sZi0+dYTPobi0l/Y7HpcywZ1jQDAAAAgBEjzQAAAABgRGgGAAAAACNCsyNUVdXUNXBk0ecAAABYSqxpdoSoqtOTfE2Sz3f3pUPbUd29a9rKWK70OQAAAJYyodkRoKqekOQ3krwvybokX+zus4bnhBjMO32OxVRVZyR5cpJrk1zV3X9fVdUucCyQqvruJP85yb8muay7t0xcEsuY/sZi0t9YbPochzvTM5e5qjoqyVlJXtbdP5HkWUkeUlV/liTdvcu0OeaTPsdiqqrvzCyg/WiS+yW5uKrO7O7Wz1gIVfWkJK9KckeSByX5qap6yLRVsVzpbywm/Y3Fps+xFAjNlrlhRM8/Zfh/3d1f6O7vSXLfqnr90GY0BvNm6HNXJqnhsT7HQvrGJO/u7t/s7lckeXaSV1fVD+tnzLeqOi7JTyX5ie6+IMnFmU1D/7pJC2NZ0t9YTPobi02fY6kQmi1TVfW1cx5em+Rnq2rDnLanJ7lfVX3r4lbGclVVJ855+LEkP1NV6+e06XMshNuTPHD3g+5+f5KnJTm/qk6bqiiWp+6+Jclrknx4eHxDks8l+c4p62J5Gvrbb2f25af+xoIa+tur4/2NReKaylIhNFuGqur7k7yuqt5aVU9M8t4kFyb5u6p6WJJ0978l2Znk/tNVynJRVf8+s/51QZJ09x8meUOSv9kd1upzzJeqOq6qTkqS7r4kyQOq6o27nx+CszckOWmaClluquqbqurhSdLdf9rdd1XVquHpf0uyZjjuP1XVt0xVJ8tDVZ1aVY9Lku7+k+7+3LD0QaK/Mc+Ga+r6JOnudw7vbyuGp/U35p1rKkuN0GyZGQKK12Q2N/z/S/KYzAKzNyX5hSTvqKqfqqpfTHJKkk9MVSvLytbMRjQeW1W/mSTDMOsLk/yJPsd8qarvS/L2JG+uql+vqq/r7ickeXhVvWnOh66vSfLvJiuUZaOqnp7kT5L8XlW9sqrOSpLu3j4cclOST1TVf07y0iR3T1MpS13NPCiz97iXD1987rZy+Km/MW/mXFPfWFWvqKrjh6d2/xtRf2NeuaayFK3c/yEsMWuS/H13/0OSf6iqb0/yfUn+V5KfyWxXkm9OclySp3f3v0xWKcvC8O33FzNbwPN1SZ5ZVf8ryVsyC3CvTfJN0ec4RFX1XUl+JcmZSXZPW/pvSc7v7kdV1bsy+xDWSR6V2ZRgOGhV9TVJnpfkOZm9lz0jyWlV9YDu/vXhsHuSvDbJzUl+tLtvnqBUloFhHcbbqurNST6b5LlVtaa739Hd24bD9DfmxV6uqT+S5II5AcYXo78xT1xTWaqEZsvPPyf55qp6Xne/prs/NOwg98wk39Xd/2fi+lhmhoX/b6uqa5JsT/KSzBbyfF6SJ3f3e6asj2XlAUku7O5/SpKq+pUkL6yq+3T33d39pKo6NcmDk/zPYW0MOBSVZFWSFd39hap6W5JPJ/neYbOJt2b2vtdJnqnPcSiqqobg7Kgku5K8OclZw3T0bd39qqFdf2M+7O2auiKzDHdXZu9vFf2N+eGaypJkeuYSNwRiu++vHL4Z+u9JTq+qH0qS7r48s+lzZ09TJctZVe0O39dkFlY8NMnGJJfHSB/m13uS/FHypX63K8nuqSSpqq/p7g8Oa7L4oMUh6+7PZTZq9meq6qTuvivJ32T2BdWpwzGvS3KqPsehmrPj7x8mub2735bko0nOT/L1wzGvjf7G/NjbNXVVd+8avpD6vSSP0t+YD66pLFVCs6Vv90KJK7p7xxCcvTfJXyZ5UlX938Nxtw7HrZmoTpaZOYvErh5+vjGzYPbPkvx0kh9LsmZYnwUOyTAC4wvd/dnh/o7M3tfu6O67q+pZSV5cVfeZuFSWiTlfCLw9yTVJXjB8yL8zye9nNqXk5CTp7o9NVCbLxJyF/pPZ5/PNVfW0JD+U2VIH3zls9KS/cUiGtfMO5Jp63vDvin+duGSWuKpa4ZrKUiY0W8Kq6owkf1FVD+runVV13yRvqarjkrwrsyly51TVH2W2ptkru/ueCUtmiauqh1fVxqp68NDn7pfkDcPUkbsyW3/grO5+e2YL/r+ou2+bsGSWie7uqlo3fPO9ezTGZ5PcXlUvTvKiJG/rbgvGMi+GL6IekOT2zKbJbU3yyqr6jiRPzmyKye0TlsgyMozsWVdV9+3uyzJb/Pq3kvw/3f3CJBcluXLSIlnShn8npAcHcE198xCmwUGpL+/KutM1laWsvvw+yVIyBGa/ntm3Qi/t7vcP7Sd1941zjluZ5IQkd3b3pycolWVi6HOvymwY9bcm+f7u3lpVJ+8eQj3sZHjXMPJx55T1srRV1aOT3CfJF7r7H4e285Jc091vH0ZlrE1yXZLbkjylu6+brGCWvGHjnPtltnbUB4e2X0zy4e7+06pal+RpmW2uU0l+sbs/NFnBLGlVdXqS+yfZ2d2XDG0/n+Sfu/uPq+opST7Z3R8YnnNd5aANn+G+Lclv7P5yaehvH3VNZSFU1fdmFo69uLt/d2j7hSRXu6ay1AjNlqDhwndBkhckOS3JY7r7+4bndi8im6r6ZjsVMh+q6mFJ/jjJT3b3X1fVr2U2evGL3f35Yfj+jqo6wS43HKphm/FXJfnrJOsyW9vn2Xs59vwkf9jdVy1iiSwzVfXkzLa2vyqzsPZ93f07VXXUsBj23GO/NrNgbdseXgr2q6qemNnnuPcmeUSS3+nud879DDfn2FX95Z0M4as2XFN/OckLdn/Jvo9jXVM5ZFX1hMz63IeTfKS7LxjavyL8d01lKTA9c4kZ1pF6YpL/1t1/l+TXkhxdVT+afHkR2WGK5iur6ui5mwXAQbo7yd8OgdkJSc7KbJvyf6iqRw6B2Tcl+fWq+jp9joM1vMedk+T87n7ucP9hwzTzucc9vqrWdPd5PtxzKKpqU5KXJfm/uvvszBZhf/jwdM857oxhKtPnfLjnYA0jGs9P8hPd/bNJrhjav2FuYDa8x91HYMahqKqNSV6d5Le6+/1V9YCqelhVfdvoONdU5kVVPTazLwWeneSFma1d9vhkNk1zznGuqSwZQrMlpKq+JcnDkvx8d//N0LwryVuTfPNwTCVJd9+S2dpSd46/tYQDNXywenSSbUn+fVW9MskHMwvMfiyzdfP+rKrWDYt2ntXdd+lzHKzhA9UVcx7f2d3/McmDqup35hx6epKHLHZ9LEv3TfLq7v6n4fEVSRh7n6sAACAASURBVP5DVT10dNzpme0QDIdiZWajti+tqmOS/GiS5yR5RVX9xpzjTov+xqG7b5J3J9k1jP55a2ah7bi/uaYyX+6X2ZcCl3f31sxmppxZVffffcDw79VT4z2OJcL0zCWiZjsovSyzxdU/keQfk1zc3f82fEv+riQ/2t3vmbBMlpE5fe5TmfW3bZltTf79Sf53d39hOO7iJL8wBLVwUKpqw+71U6rqrCQ/l+SJu3ftqqoHJvntJC/p7mumq5TlYtTn1g1rNK7IbFfqtyb5ke6+s6rWd/f1kxbLkjfqbysyG8X4vCSf6+6LhxkCv5/kf+5vCh3sz6i/fUeSp2f4/Jbkd5Icl+T3MutvfzdZoSwbVfWw7v7onMdHDRucnJrkvyf5qe7+2J6WPYDDnZFmS0BVrUryw0me3d2PS/InmV3sfqaq1nb3FUnOS/Ijw64kcEhGfe6xSbZk9u34MzP7NvLZw3E/kuSUJKaPcNCG9aSurKq3JEl3vzHJOzKb/nv80PaZJDuSfO1khbJs7KHPbR0+yO/MbDr6iuG4ZyX51apaO121LHVz+tsfJF/aSW5Xkv+3uy8e2m5J8i9xPeUQ7eH97R+S/EFmO5r/9mzvzP54klsyu67CIRn63BW73+MGRyXJsLHO1iS/OTwWmLHkCM2WjqOTrB/u/3GSP89sa95nDENcb8zsg5Y54cyXuX3uDzMb3v+ZJNcm+e/Dh7GfS/KM7r5tmhJZ6qrqa5L8ZJKfTnL3nH9U/mKS12c2/ffHhx2X/l0SuwBzSPbQ596YzD7IDyOAjkry+SS/mtmGOy/u7jumqpelbdTf7tnd3wZz1/d5Wma7Gxq1zUHbw/vbm5MvBRfvmXPcD2a2CcUnpqiT5WNv73HDesdrhsNenGR7Vf3HicqEQ2J65hJRs217fyqzaXF/N3yw/+EkT+ruHxmOOaa7b5+yTpaPvfS5szL7kHVhZjvMbevuT01YJstAVX1jkjsz61O/nWR7dz9jeO6pma158agkv9bdV09WKMvGHvrc3d191pzn/yTJhiRPnTvdBA7GvvrbMLL7uZmtbXaO9zgO1R762z27/60wPH9OZiHHf9XfmA8HcE29X5KXJHmlfzewFAnNloiquk9mC69/W5I3dvffDu1/leRnuvvyKetj+dlHn/vbzBYx/vCU9bE8DVPMX5tZIPuMqnpEZmv+fGzi0lim5vS5L3b3WVW1Psl/zex979ppq2O52UN/+5YkZyR5V3ffMG11LDd76G8PT/LdSd7T3f8ybXUsR3voc5szG0H7aVMzWaqEZkvIsKbKM5M8ObP1fu5J8rNJHmd6HAtBn2MKw6L//zvJf8hsbanH2miChTSnz33H0PSd3uNYKKP3uEryGKMvWCh76G/f1d2fnLYqlrM5fe70zNZE9jmOJc2aZkvIsKbKRUl+JcnjMvum6Cwf7Fko+hxTGBb9/3CS+2c2Pc4HLRbUnD53dJIf9B7HQhq9x/2gwIyFtIf+JjBjQc3pc18fn+NYBlZOXQBfne7eluSvhylybZgrC02fY7ENIxyfmOTx3X3V1PWw/OlzLCb9jcWkv7HY9DmWG9MzATjsVNV9uvvuqevgyKHPsZj0NxaT/sZi0+dYToRmAAAAADBiTTMAAAAAGBGaAQAAAMCI0AwAAAAARoRmAAAAADAiNAMAAACAEaEZAAAAAIwIzQAAAABgRGgGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAAADAiNAMAAAAAEaEZgAAAAAwIjQDAAAAgBGhGQAAAACMCM0AAAAAYERoBgAAAAAjQjMAAAAAGBGaAQAAAMCI0AwAAAAARoRmAAAAADAiNAMAAACAEaEZAAAAAIwIzQAAAABgRGgGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAAADAiNAMAAAAAEaEZgAAAAAwIjQDAAAAgBGhGQAAAACMCM0AAAAAYERoBgAAAAAjQjMAAAAAGBGaAQAAAMCI0AwAAAAARoRmAAAAADAiNAMAAACAEaEZAAAAAIwIzQAAAABgRGgGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAIyunLuBw8cAHPrBPOOGEqcsAAAAAWDYuv/zyz3T3uqnrOBhCs8EJJ5yQLVu2TF0GAAAAwLJRVR+buoaDZXomAAAAAIwIzQAAAABgRGgGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAAADAiNAMAAAAAEaEZgAAAAAwIjQDAAAAgBGhGQAAAACMCM0AAAAAYERoBgAAAAAjQjMAAAAAGBGaAQAAAMCI0AwAAFiSrvmhZ+WaH3rW1GUAsEytnLoAAACAg7HtYx+fugQAljEjzQAAAABgRGgGAAAAACNCMwAAAAAYWbDQrKoeWlV/XVUfqaprquoFQ/v/qKpbq+rK4fbEOeecW1U3VNVHq+qMOe2PqqqrhudeVVU1tK+pqrcO7R+oqhPmnHNOVV0/3M5ZqL8TAAAAgOVnITcC2JHkhd39oar6uiSXV9Ulw3Ov7O4L5x5cVRuTnJnkEUm+MclfVtWG7t6Z5DVJnpvksiR/keQJSd6d5NlJ7ujuk6vqzCQvT/LDVXVMkpck2Zykh9/9zu6+YwH/XgAAAACWiQUbadbdn+zuDw3370rykSTH7uOUH0jylu6+p7tvSnJDklOr6iFJju7uS7u7k7whyVPmnHPxcP+PknzPMArtjCSXdPftQ1B2SWZBGwAAAADs16KsaTZMm9yU5AND009W1Yer6nerau3QdmySuXtG3zK0HTvcH7ff65zu3pHks0kesI/XAgAAAID9WvDQrKq+Nsnbk/x0d9+Z2VTLk5KckuSTSV6x+9A9nN77aD/Yc+bW9tyq2lJVW7Zu3brPvwMAAACAI8eChmZVtSqzwOxN3f3HSdLdt3X3zu7eleSiJKcOh9+S5KFzTj8uySeG9uP20H6vc6pqZZL7J7l9H691L9392u7e3N2b161bdyh/KgAAAADLyELunllJXpfkI939q3PaHzLnsKcmuXq4/84kZw47Yp6YZH2SD3b3J5PcVVWnDa95dpI/nXPO7p0xn57kr4Z1z96b5PFVtXaY/vn4oQ0AAAAA9mshd8/8jiTPSnJVVV05tP18kmdU1SmZTZe8OcmPJ0l3X1NVb0tybWY7bz5/2DkzSZ6X5PVJ7pvZrpnvHtpfl+T3q+qGzEaYnTm81u1V9dIk/zgcd353375AfycAAAAAy0zNBmaxefPm3rJly9RlAAAAB+iKRz82SbLpA++ftA4A9q6qLu/uzVPXcTAWZfdMAAAAAFhKhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAAADAiNAMAAAAAEaEZgAAAAAwIjQDAAAAgBGhGQAAAACMCM0AAAAAYERoBgAAAAAjQjMAAAAAGBGaAQAAAMCI0AwAAAAARoRmAAAAADAiNAMAAACAEaEZAAAAAIwIzQAAAABgRGgGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAAADAiNAMAAAAAEaEZgAAAAAwsmChWVU9tKr+uqo+UlXXVNULhvZjquqSqrp++Ll2zjnnVtUNVfXRqjpjTvujquqq4blXVVUN7Wuq6q1D+weq6oQ555wz/I7rq+qchfo7AQAAAFh+FnKk2Y4kL+zuhyc5Lcnzq2pjkp9L8r7uXp/kfcPjDM+dmeQRSZ6Q5NVVtWJ4rdckeW6S9cPtCUP7s5Pc0d0nJ3llkpcPr3VMkpckeXSSU5O8ZG44BwAAAAD7smChWXd/srs/NNy/K8lHkhyb5AeSXDwcdnGSpwz3fyDJW7r7nu6+KckNSU6tqockObq7L+3uTvKG0Tm7X+uPknzPMArtjCSXdPft3X1Hkkvy5aANAAAAAPZpUdY0G6ZNbkrygSQP6u5PJrNgLck3DIcdm+Tjc067ZWg7drg/br/XOd29I8lnkzxgH68FAAAAAPu14KFZVX1tkrcn+enuvnNfh+6hrffRfrDnzK3tuVW1paq2bN26dR+lAQAAAHAkWdDQrKpWZRaYvam7/3hovm2Ycpnh56eH9luSPHTO6ccl+cTQftwe2u91TlWtTHL/JLfv47Xupbtf292bu3vzunXrDvbPBAAAAGCZWcjdMyvJ65J8pLt/dc5T70yyezfLc5L86Zz2M4cdMU/MbMH/Dw5TOO+qqtOG1zx7dM7u13p6kr8a1j17b5LHV9XaYQOAxw9tAAAAALBfKxfwtb8jybOSXFVVVw5tP5/kl5O8raqeneRfk/yXJOnua6rqbUmuzWznzed3987hvOcleX2S+yZ593BLZqHc71fVDZmNMDtzeK3bq+qlSf5xOO787r59of5QAAAAAJaXmg3MYvPmzb1ly5apywAAAA7QFY9+bJJk0wfeP2kdAOxdVV3e3ZunruNgLMrumQAAAACwlAjNAAAAAGBEaAYAAAAAI0IzAAAAABgRmgEAAADAiNAMAAAAAEaEZgAAAAAwIjQDAAAAgBGhGQAAAACMCM0AAAAAYERoBgAAAAAjQjMAAAAAGBGaAQAAAMCI0AwAAAAARoRmAAAAADAiNAMAAACAEaEZAAAAAIwIzQAAAABgRGgGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAI/sNzWrmrKo6b3h8fFWduvClAQAAAMA0DmSk2auTnJ7kGcPju5L81oJVBAAAAAATW3kAxzy6u7+9qq5Iku6+o6pWL3BdAAAAADCZAxlptr2qViTpJKmqdUl2LWhVAAAAADChAwnNXpXkHUm+oap+KcnfJ3nZglYFAAAAABPa7/TM7n5TVV2e5HuSVJKndPdHFrwyAAAAAJjIgaxpliS3Jfm74fj7VtW3d/eHFq4sAAAAAJjOfqdnVtVLk3w4s2marxhuFx7Aeb9bVZ+uqqvntP2Pqrq1qq4cbk+c89y5VXVDVX20qs6Y0/6oqrpqeO5VVVVD+5qqeuvQ/oGqOmHOOedU1fXD7ZwD+i8BAAAAAIMDGWn2Q0lO6u5tX+Vrvz7JbyZ5w6j9ld19r9CtqjYmOTPJI5J8Y5K/rKoN3b0zyWuSPDfJZUn+IskTkrw7ybOT3NHdJ1fVmUlenuSHq+qYJC9JsjmzzQsur6p3dvcdX2X9AAAAAByhDmQjgKuTfP1X+8Ld/bdJbj/Aw38gyVu6+57uvinJDUlOraqHJDm6uy/t7s4sgHvKnHMuHu7/UZLvGUahnZHkku6+fQjKLsksaAMAAACAA3IgI80uSHLFMM3ynt2N3f39B/k7f7Kqzk6yJckLh2Dr2MxGku12y9C2fbg/bs/w8+NDLTuq6rNJHjC3fQ/nAAAAAMB+HUhodnFmUx+vSrLrEH/fa5K8NLNpky/NbH20H81sV86x3kd7DvKce6mq52Y29TPHH3/8vuoGAAAA4AhyIKHZZ7r7VfPxy7r7tt33q+qiJH8+PLwlyUPnHHpckk8M7cftoX3uObdU1cok989sOugtSR47Ouf9e6nntUlemySbN2/eY7AGAAAAwJHnQNY0u7yqLqiq06vq23ffDuaXDWuU7fbUzNZLS5J3Jjlz2BHzxCTrk3ywuz+Z5K6qOm1Yr+zsJH8655zdO2M+PclfDeuevTfJ46tqbVWtTfL4oQ0AAAAADsiBjDTbNPw8bU5bJ3ncvk6qqj/IbMTXA6vqlsx2tHxsVZ0ynH9zkh9Pku6+pqreluTaJDuSPH/YOTNJnpfZTpz3zWzXzHcP7a9L8vtVdUNmI8zOHF7r9qp6aZJ/HI47v7sPdEMCAAAAAEjNBmexefPm3rJly9RlAAAAB+iKRz82SbLpA++ftA4A9q6qLu/uzVPXcTD2O9Ksqs7bU3t3nz//5QAAAADA9A5keubn59y/T5InJ/nIwpQDAAAAANPbb2jW3a+Y+7iqLsxsEX4AAAAAWJYOZPfMsfsl+eb5LgQAAAAADhcHsqbZVZntdpkkK5KsS2I9MwAAAACWrQNZ0+zJc+7vSHJbd+9YoHoAAAAAYHJ7Dc2q6pjh7l2jp46uqnT37QtXFgAAAABMZ18jzS7PbFpm7eG5jnXNAAAAAFim9hqadfeJi1kIAAAAABwuDmRNs1TV9yd5zPDw/d395wtXEgAAAABM66j9HVBVv5zkBUmuHW4vqKoLFrowAAAAAJjKgYw0e2KSU7p7V5JU1cVJrkhy7kIWBgAAAABT2e9Is8HXz7l//4UoBAAAAAAOF3sdaVZVv5nkD5K8LMmHqur9me2k+ZgYZQYAAADAMrav6ZnXJ7kwyUOS/J8kH0/yT0le3N2fWoTaAAAAAGASe52e2d2/3t2nJ/muJDcmeVqSlyd5TlWtX6T6AAAAAGDR7XdNs+7+WHe/vLs3JXlmZuHZPy94ZQAAAAAwkf2GZlW1qqq+r6relOTdSa5L8oMLXhkAAAAATGRfGwF8b5JnJHlSkg8meUuS53b35xepNgAAAACYxL42Avj5JG9O8qLuvn2R6gEAAACAye01NOvu717MQgAAAADgcLHfNc0AAAAA4EgjNAMAAACAEaEZAAAAAIwIzQAAAABgRGgGAAAAACNCMwAAAAAYEZoBAAAAwIjQDAAAAABGhGYAAAAAMCI0AwAAAIARoRkAAAAAjAjNAAAAAGBEaAYAAAAAIwsWmlXV71bVp6vq6jltx1TVJVV1/fBz7Zznzq2qG6rqo1V1xpz2R1XVVcNzr6qqGtrXVNVbh/YPVNUJc845Z/gd11fVOQv1NwIAAACwPC3kSLPXJ3nCqO3nkryvu9cned/wOFW1McmZSR4xnPPqqloxnPOaJM9Nsn647X7NZye5o7tPTvLKJC8fXuuYJC9J8ugkpyZ5ydxwDgD+//buPkzus673+PvbFpIWofYhjZU+RLA2gBE8pCmIaAXleRUB1wJdeqTSYy7kRA8iHLV42apoRSuoFIgcKUUshcpDDwL2IJWKKBRTSLZQbXE2W4NtYZM0FTa73XzPH7970slk9iH7ML+Zyft1Xbl29p7fzN4z+V7zm/nM/SBJkiRJ81mx0CwzPwNMtDX/FHBNuXwN8MKW9usyc39m/jtwJ7ApIk4HHpWZn8vMBN7TdpvmfX0QeGYZhfZs4KbMnMjM3cBNHB7eSZIkSZIkSbPq9ppmazPz6wDl52ml/dHAeMtxd5e2R5fL7e2H3CYzHwT2AqfMcV+SJEmSJEnSgvTKRgDRoS3naF/sbQ79oxGXRsStEXHrfffdt6COSpIkSZIkafB1OzS7p0y5pPy8t7TfDZzZctwZwK7SfkaH9kNuExHHASdSTQed7b4Ok5nvzMyNmblxzZo1S3hYkiRJkiRJGiTdDs0+CjR3s7wY+EhL+4VlR8zvoVrw//NlCue+iHhKWa/sFW23ad7XS4C/K+uefRJ4VkScVDYAeFZpkyRJkiRJkhbkuJW644j4K+AC4NSIuJtqR8vfA66PiEuAncDPAGTmaERcD9wOPAi8OjNnyl1tptqJ83jg4+UfwLuAayPiTqoRZheW+5qIiCuAL5TjLs/M9g0JJEmSJEmSpFlFNThLGzduzFtvvbXubkiSJElaoG3nXwDAD/7zzbX2Q5I0u4j4YmZurLsfi9ErGwFIkiRJkiRJPcPQTJIkSZIkSWpjaCZJkiRJkiS1MTSTJEmSJEmS2hiaSZIkSZIkSW0MzSRJkiRJkqQ2hmaSJEmSJElSG0MzSZIkSZIkqY2hmSRJkiRJktTG0EySJEmSJElqY2gmSZIkSZIktTE0kyRJkiRJktoYmkmSJEmSJEltDM0kSZIkSZKkNoZmkiRJkiRJUhtDM0mSJEmSJKmNoZkkSZIkSZLUxtBMkiRJkiRJamNoJkmSJEmSJLUxNJMkSZIkSZLaGJpJkiRJkiRJbQzNJEmSJEmSpDaGZpIkSZIkSVIbQzNJkiRJkiSpjaGZJEmSJEmS1MbQTJIkSdJRa3R4hNHhkbq7IUnqQcfV3QFJkiRJqsvU2HjdXZAk9ShHmkmSJEmSJEltDM0kSZIk9T2nWUqSlpvTMyVJkiT1veWYZtkM3Z5w/bVLvi9JUv8zNJMkSZIkXN9MknQop2dKkiRJkiRJbQzNJEmSJEmSpDaGZpIkSZIkSVKbWkKziGhExPaIuC0ibi1tJ0fETRHxb+XnSS3H/++IuDMi7oiIZ7e0P7ncz50R8daIiNK+KiLeX9r/OSLWdfsxSpIkSdJcRodH2Hb+Be76KUk9qs6RZj+WmU/KzI3l9zcAn8rMc4BPld+JiMcDFwJPAJ4DvC0iji23uRq4FDin/HtOab8E2J2Z3wtcBfx+Fx6PJEmSpB4zOjzSs6HU1Ng4q75yhxsQSFKP6qXpmT8FXFMuXwO8sKX9uszcn5n/DtwJbIqI04FHZebnMjOB97TdpnlfHwSe2RyFJkmSJOnoMTU2biglSVqUukKzBP42Ir4YEZeWtrWZ+XWA8vO00v5ooPUsd3dpe3S53N5+yG0y80FgL3DKCjwOSZIkSZIkDaDjavq7T8vMXRFxGnBTRHx1jmM7jRDLOdrnus2hd1wFdpcCnHXWWXP3WJIkSZIGyNDWIQBufNWNNfdEknpTLSPNMnNX+Xkv8CFgE3BPmXJJ+XlvOfxu4MyWm58B7CrtZ3RoP+Q2EXEccCIw0aEf78zMjZm5cc2aNcvz4CRJkiSpDzR2N2jsbtTdDUnqWV0PzSLiERHxyOZl4FnADuCjwMXlsIuBj5TLHwUuLDtifg/Vgv+fL1M490XEU8p6Za9ou03zvl4C/F1Z90ySJEmSJEmaVx3TM9cCHyrr8h8HvC8zPxERXwCuj4hLgJ3AzwBk5mhEXA/cDjwIvDozZ8p9bQbeDRwPfLz8A3gXcG1E3Ek1wuzCbjwwSZIkSb1jaOsQl0w0OPvkdXV3RZLUh7oemmXm14Andmj/JvDMWW7zO8DvdGi/Ffj+Du2TlNBNkiRJ0tGpsbvB1MxU3d2QJPWpunbPlCRJkiRJknqWoZkkSZKkvrVl/XY2XLmBsYnGku5ndHiE/TvHl6dTkqSBYGgmSZIkqW/tWj3Jjr07ljwNc2psnAPT00C1FtrQ1qHl6J4kqY/VsRGAJEmSJPWsxu7GnNc3A7UbX3VjF3pzZHq5b5LUbwzNJEmSJGkOQ1uHaOxusO6kddz4qhvnDdXqtJC+OYpOkhbG0EySJEmS5tDY3WDH3h11d2PZ9HLoJ0m9xDXNJEmSJKkHubaaJNXLkWaSJEmSBsqgBE2OCJOkehmaSZIkSRooncImF8iXJB0pQzNJkiRJA89RW4OtfbMGSVoOhmaSJEmS1GWjwyPs3znOqpbfp8bGefjZZ/KE66895FhHyc1v0DZrkNQbDM0kSZIkDYQt67ez+8oNNCYarDt53Yr+rcZEg6GtQ/zeTd8JcFjQNZ+psXEOTE8f8vuqr9zB/k5/q8uj5AzppNnNFXBr8BiaSZIkSRoIu1ZPctfeHayaWTXvsc0Pvvt3jrPqrDOP+G9Nz0zT2N1gauyUxXS1pzmVVZrdXAG3Bs8xdXdAkiRJkrqt+cG3dbRXJ6PDI0zuHO9Sr+r/u5KkhxiaSZIkSTqqNNcTW4ipsXFynmBtqbas387YRGPOv7v5uj1sO/8CRodHVrQvg25o69DB6afqD6PDI9a+auP0TEmSJElHlfb1xOq2a/UkU/NMKT11zwyrvrGwKWGbr9vDthsucM2lFs2gzKmn/cfpkKqTI80kSZIkHRUaEw02XLnhsFFdg+bUPTOs+sodTI05vbOpsbtxMDBb6Kg9R6VJMjSTJEmSdFSYnplmx94dTM1M1d2VWU3uHHca2hI0dzWdy0JDxdagbTmNDo/4fyz1CadnSpIkSVKPyOlpR4gtQXNX017m/6/UPxxpJkmSJElHqeaU1eWYhugIKkmDxtBMkiRJkpZB6xpYK7Ue1pb121l72dpDgq6hrUOsvWztov5ec8rqc6++bcmB19TYuKOotGKcuqw6OD1TkiRJkto0R2BdMbFv4bdpmRa4UlMEd62eZO/kDPceuJfN1+1h9KYRGhsb7J3c2/Fvjg6PMDU2Pu9OmqfumTHwKlz8vzc5dVl1cKSZJEmSJLXptGnAQhaZb7XQXRoXayFB19TY+KJ20lxK3/t9muZKbQAgqf840kySJEmSFmC2Rea3rN/O7is30JhosO7kdQfbT90zw6pv3MH+lmObodvlK9vVJevU94VyNNBgaNbqja+6seae9KYt67dz4tYhn58B50gzSZIkSVqCXasn2bF3B9Mz0/MeOwijmBayXtuW9dtrn+Z4JOvKLXV0XL+PrutkEGp1Je1aPenzcxQwNJMkSZKkAbRl/XbGJhoHLy8mxOq0+PpCwpReCBSa/RzaOkRjYu6+NDcxWMixc92+k9HhkRWdpitp5RiaSZIkSdIyaa4FNrnz8ABlsYHMYu1aPXlwTbbFhlhLXXx9pXYRPRKN3Y2OowA7BYmzHbsUi11XToeb3DluAKmuMjSTJEmSpGVy6p4ZVn3lDnL6oeClGc6sRCBzpEaHRzoGevNZbPi1kFFpdU1tXGyQuBxBYC9MX+2m5fo/zulpA0h1lRsBSJIkSdIK2rV6kt09svbR1Ng4edKRJWogMQAAE7VJREFUB3ezhUujwyM8cOu/8PA1a9i/c5xVZ525qD7NpdOC9K1to8MjTJ42DidW122+bg/bbriAyfPGWb2I/sxnOaadNmuiGSQ94fprl3yfvbxwvyHXwi1nTWjpDM0kSZIkSUekMdFgw5UbuGLbPk67/wCrvjHBtx/+sAXfvnXUUaewrTU46BRStba1B4HNnT/zSUsf1dd8nK+9YYrzzt50WJDRuhtqc+rgw88+c8GBR3uY1ByRuO6kdYeFX/OFKXWvIdeuPcSb6/nplaCotc91hZAGjL3F0EySJElS3+iVD9eDqBlqTJ43Dpww57HTM9Ps2LuDqZnTWejHytHhEV598qf55mNO4opt+zj75HUAHJg+PNzqleCg+ThPuO907t/5jwefn9Vnncno8AhfPe2WMprtlINTB/e33H50eKQKBRfwt4a2DnHzXTfzwLEPdLy+V56TVqPDI0yNjXcMwtpDvE7PT1OvPLbWPrdebn2cOroYmkmSJEnqG73y4XoQNUON2UZobb5uD6O3jsDGxd3/1Ng4d5+0m7v2/kcJ247ccq8D1pzKuZCppe3Pz0Kmuk6NjXcMBVttWb+d3VduoDFR1rw79sgeQ6fnZCHhcvOYN/zEHqDziKrm8zPb6LnmJgedgrCFWOw6Z1vWb+fErUPLNgqsGYrNNqX3SB5nL0+T1ZEzNJMkSZIkzevUPTNVaHmEoVlrMMWTZj9uIUHPISOBJhoMbR3i8iPrziGaUzmPZGrpctu1epK79u5g1cxD49Gaj20hwUvrc9IMNucLl0eHR9h3yz+y6qwzaez+5sH29sCn+fwsNhQ7GLTOYiH97DRSr9M6gUcSVrUf2wzFFjOlt/2+mv8f7fU819Rb9S53z5QkSZIkrZjmjqLzjbiaGhtn8/F/w4YrNzA20WDL+u1sKCOwOpmeme65dbygGgX17vPPZdv5JSgsJneOL3hk1WyPrfmczDbi7mCwOY/2EXDNkK6xu8Fzr76tmoa6yL7P158j2Tl0ISP1mubbqbV1B8+F7OrayeTO8UP+T9vva2jr0MF6nRobP+SxN3Y32LF3R0/WrGZnaCZJkiRJ6gm7Vk+WtdKmDl6enqlCk9HhkUOCnF61a/UkJ9y377CgMKenj3h6cWvQ07zvHXt3cPNdN7P2srVzhopHojWka4acOUvfh7YOMbR16OAosCO1a/XkrIHgkU6/bfZlIdpDrLnMVms5PT1niNfY3ThYr7PdXzOgbL++9f95vnBU3eP0TEmSJEk9r/UDZXPB+vmm+2mwLGQNsUEzW8gzPTPN3pm93Hvg3kOmdc6mOYrs3n33sumsTUua0toMvKbGTjkkQJprU4CFaJ1y2ezvFRP7OG2evnQKoVqnTM42Qq65M+q6k9Yd9nwcaa116sNs99dpFOHU2PjBte2umNh3cMqu6udIM0mSJA2coa1DrL1sbe3f0rePHtDitY4SaS7IvtBpW1I/W+zUyKbR4RG++qVb2LF3B3sn9y5pemDr9MNWW9Zv59+23cKqr9zB5uP/Zt7X3mZgNdbhvpq7iDZHHM6nNYTafN0etp1/AV/90i0t4d5Drx2tz2VzZ9TnXn3bnCPmFjKibr7ptLM9ztbnqXWUpXqHI80k9TW3nZekQw1tHeLFf/6vPJHTF/1t/0pr9vG8szcB8OqTP803H3PSrIsjt3/4mmsB5eaxjd2Ngx8OF7uT2UJu1xwN8dobpjjv7E2HPd8LmQq0lMWhR4dHePXJn+aRT/7BQ2473/lxrsc232NaLBfBlhZnMdM64aFdOa/Yto98xvIEzLNNP9y1epKpMuKt0yL97ZqBVaddVA/+jSPcRRQe2rggnzTdcWfUg8/lxkNvM1cAfyTrqrVrjhib7XFuvm4Pozf5xUovi8ysuw89ISLuA8bq7scyOhX4Rt2d0FHDelO3WXPqNmtO3WS9qdusOXWT9Xb0OTsz19TdicUwNBtQEXFrZh7hZtDS4lhv6jZrTt1mzambrDd1mzWnbrLe1E9c00ySJEmSJElqY2gmSZIkSZIktTE0G1zvrLsDOqpYb+o2a07dZs2pm6w3dZs1p26y3tQ3XNNMkiRJkiRJauNIM0mSJEmSJKmNoZkkSZIkSZLUxtDsKBQRUXcfdHSx5iRJkiRJ/cY1zY4CEfFU4BHAf2Xm50rbMZl5oN6eaVBZc5IkSZKkfmdoNuAi4jnAnwCfAtYA387Mi8p1hhhadtacui0ing28ALgd2J6Z/xARkZ7gtEIi4seA5wI7gX/KzFtr7pIGmPWmbrPm1G3WnHqZ0zMHWEQcA1wE/G5m/gIwApweETcCZOYBp81pOVlz6raIeDpVSHsHcAJwTURcmJlprWklRMTzgbcCu4G1wGsi4vR6e6VBZb2p26w5dZs1p15naDbAyoieL1H+nzPzW5n5TOD4iHh3aXMkhpZNqbnbgCi/W3Naad8NfDwz/zQz/xC4BHhbRPystablFhFnAK8BfiEz3wRcQzUV/ZG1dkwDyXpTt1lz6jZrTv3A0GwARcR3tPx6O/CrEfF9LW0vAU6IiA3d7ZkGVUR8T8uvY8DrIuKcljZrTitlAji1+Utm3gy8CLg8Ip5SV6c0mDLzbuBq4Mvl9zuBB4Cn19kvDaZSb2+n+gLUetOKKzX3NnyNU5d4XlU/MDQbMBHxk8C7IuL9EfE84JPAm4FbIuJcgMzcA8wAJ9bXUw2KiDiPqr7eBJCZHwDeA/x9M6y15rScIuKMiHgsQGbeBJwSEe9tXl+Cs/cAj62nhxo0EXF2RDwOIDM/kpn7IuJh5eo9wKpy3I9HxPq6+qnBEBGbIuIZAJn54cx8oCx/ANabVkA5r54DkJkfLa9xx5arrTktO8+r6ieGZgOkBBRXU80J/0fgR6gCs78Efh34UES8JiIuA54E7Kqrrxoo91GNaHx0RPwpQBle/Wbgw9acllNEDAE3AO+LiLdExCMz8znA4yLiL1vecD0CeGJtHdXAiIiXAB8G/iIiroqIiwAyc7oc8u/Aroh4LnAFMFlPT9XvorKW6jXu98uXn03HlZ/Wm5ZVy3n1vRHxhxFxVrmq+TnRmtOy8ryqfnPc/Ieoj6wC/iEzPwt8NiL+GzAE/DbwOqrdSB4DnAG8JDO/VltPNRDKN9/fplq4813AyyLit4HrqALc24Gzsea0DCLiR4ErgQuB5rSlXwYuz8wnR8THqN6AJfBkqmnB0qJFxCOAzcCrqF7PXgo8JSJOycy3lMP2A+8EGsArM7NRQ1c1AMo6jPdExPuAvcClEbEqMz+UmVPlMOtNy2aW8+rLgTe1BBjfxprTMvG8qn5kaDZYvgo8JiI2Z+bVmfkvZfe4lwE/mpl/W3P/NGDKwv/3RMQoMA38JtUCnpuBF2TmJ+rsnwbOKcCbM/NLABFxJfDaiFidmZOZ+fyI2AR8F/BbZV0MaSkCeBhwbGZ+KyKuB+4FfqJsNvF+qte+BF5mzWkpIiJKcHYMcAB4H3BRmY4+lZlvLe3Wm5bLbOfVY6ly3ANUr3GBNafl4XlVfcfpmX2sBGLNy8eVb4R+A3hqRAwDZOYXqabPvaKeXmqQRUQzeF9FFVScCTwe+CKO8tHy+wTwQThYeweA5jQSIuIRmfn5sh6Lb7K0ZJn5ANXI2ddFxGMzcx/w91RfUm0qx7wL2GTNaaladvz9ADCRmdcDdwCXA99Zjnkn1puWz2zn1Ydl5oHypdRfAE+25rQcPK+qHxma9bfmAonHZuaDJTj7JPD/gOdHxP8sx/1HOW5VTf3UgGlZHPbh5ed7qYLZG4FfAn4eWFXWZpGWrIzA+FZm7i2XH6R6bdudmZMRMQK8PiJW19xVDYiWLwVuAEaBLeUN/v3AtVTTSb4XIDPHauqmBkTLQv9QvT/fGBEvAoapljt4etnsyXrTkpX18xZyXn1j+Xyxs+Yuq89FxLGeV9WvDM36VEQ8G/ibiFibmTMRcTxwXUScAXyMaorcxRHxQao1za7KzP01dll9LiIeFxGPj4jvKjV3AvCeMm1kH9W6Axdl5g1UC/7/SmbeU2OXNUAyMyNiTfnWuzkaYy8wERGvB34FuD4zXSxWy6J8GXUKMEE1Te4+4KqIeBrwAqrpJRM1dlEDpIzqWRMRx2fmP1EtfP1nwP/KzNcCW4Hbau2k+l75vEAWCzivvq+EadKixEO7ss54XlW/iodeI9UvSmD2Fqpvg67IzJtL+2Mz866W444D1gH3Z+a9NXRVA6LU3Fuphk9vAH4yM++LiO9tDp0uuxjuKyMfZ+rsr/pfRJwPrAa+lZlfKG1vBEYz84YyKuMk4F+Be4AXZua/1tZh9b2yec4JVGtHfb60XQZ8OTM/EhFrgBdRbbATwGWZ+S+1dVh9LSKeCpwIzGTmTaXt14CvZuZfR8QLga9n5j+X6zy3aknKe7kfAP6k+QVTqbk7PK9qJUTET1CFY6/PzP9T2n4d2OF5Vf3E0KzPlBPem4AtwFOAH8nMoXJdcwFZIuIx7lSo5RAR5wJ/DfxiZn46Iv6YavTitzPzv8qw/QcjYp2722g5lC3G3wp8GlhDtbbPJbMceznwgczc3sUuasBExAuotrXfThXWfioz3xERx5SFsFuP/Q6qYG2qw11J84qI51G9l/sk8ATgHZn50db3cS3HPiwf2sVQWpRyXv09YEvzy/Y5jvW8qiWLiOdQ1dyXga9k5ptK+2FfAHheVa9zemYfKetIPQ/45cy8Bfhj4FER8Up4aAHZMkXzqoh4VOtmAdIiTQKfKYHZOuAiqu3JPxsR318Cs7OBt0TEI605LUV5nbsYuDwzLy2Xzy1TzVuPe1ZErMrMN/rGXksRET8I/C7w3zPzFVSLsD+uXJ0txz27TGN6wDf2WqwyovFy4Bcy81eBbaX9tNbArLzGrTYw01JFxOOBtwF/lpk3R8QpEXFuRPxA23GeV7UsIuICqi8GLgFeS7V22bOgmqbZcpznVfUFQ7M+ERHrgXOBX8vMvy/NB4D3A48pxwRAZt5NtbbU/e3fWEoLVd5QnQ9MAedFxFXA56kCs5+nWjfvxohYUxbrvCgz91lzWoryZmpby+/3Z+YPA2sj4h0thz4VOL3b/dNAOh54W2Z+qfy+DfihiDiz7binUu0SLC3FcVQjtz8XEScDrwReBfxhRPxJy3FPwXrT8jge+DhwoIz+eT9VcNtec55XtVxOoPpi4IuZeR/VDJULI+LE5gHlc+smfJ1TH3B6Zh+Iavek36VaXH0X8AXgmszcU74h/xjwysz8RI3d1ABpqbn/pKq3KaotyX8S+IPM/FY57hrg10tQKy1aRHxfc+2UiLgIeAPwvOaOXRFxKvB24Dczc7S+nmpQtNXcmrJO47FUO1O/H3h5Zt4fEedk5r/V2ln1vbZ6O5ZqFONm4IHMvKbMErgW+K35ps9JC9FWc08DXkJ5Hwe8AzgD+Auqmrulto5qYETEuZl5R8vvx5RNTjYBvwG8JjPHOi19IPUyR5r1uIh4GPCzwCWZ+Qzgw1QnuddFxEmZuQ14I/DyshuJtCRtNXcBcCvVN+Mvo/oW8pJy3MuBJwFOHdGSlPWkbouI6wAy873Ah6imAJ9V2r4BPAh8R20d1cDoUHP3lTfxM1RT0o8tx40AfxQRJ9XXW/W7lnr7Kzi4i9wB4M8z85rSdjfwNTynahl0eI37LPBXVDubv73aOzPHgbupzq3SkpSa29Z8nSuOASib69wH/Gn53cBMfcXQrD88CjinXP5r4P9Sbcn70jK09S6qN1nOBddyaa25D1AN6/8GcDvwG+VN2BuAl2bmPfV0UYMgIh4B/CLwS8Bky4fKy4B3U00B/h9lt6UnAu4ErCXpUHPvhepNfBkBdAzwX8AfUW268/rM3F1Xf9Xf2uptf7Peita1fV5EtbOhI7e1JB1e494HB4OLT7Qc92KqjSh21dFPDY7ZXufKuserymGvB6Yj4odr6qa0aE7P7ANRbdf7GqppcbeUN/U/Czw/M19ejjk5Myfq7KcGxyw1dxHVm6s3U+0uN5WZ/1ljNzUgIuK7gfup6urtwHRmvrRc99NU6108GfjjzNxRW0c1MDrU3GRmXtRy/YeB7wN+unWqibQYc9VbGd19KdXaZhf7Gqfl0KHm9jc/M5TrL6YKOX7OmtNyWMB59QTgN4Gr/PygfmNo1gciYjXVwus/ALw3Mz9T2v8OeF1mfrHO/mnwzFFzn6FawPjLdfZPg6tMM38nVSj70oh4AtWaP2M1d00DqqXmvp2ZF0XEOcDPUb323V5v7zRoOtTbeuDZwMcy8856e6dB1KHmHgf8GPCJzPxavb3TIOpQcxupRtHe69RM9SNDsz5R1lN5GfACqrV+9gO/CjzD6XFaCdac6lIW/f8D4Ieo1pa6wM0mtJJaau5ppenpvs5ppbS9xgXwI4680ErqUHM/mplfr7dXGmQtNfdUqrWRfS+nvuWaZn2irKeyFbgSeAbVN0QX+aZeK8WaU13Kov9fBk6kmh7nmyytqJaaexTwYl/ntJLaXuNebGCmldah5gzMtKJaau478b2c+txxdXdAC5eZU8CnyxS5dHirVpo1pzqUUY7PA56Vmdvr7o8GnzWnbrLe1G3WnLrNmtMgcXqmJKnnRMTqzJysux86elhz6ibrTd1mzanbrDkNCkMzSZIkSZIkqY1rmkmSJEmSJEltDM0kSZIkSZKkNoZmkiRJkiRJUhtDM0mSJEmSJKmNoZkkSZIkSZLUxtBMkiRJkiRJamNoJkmSJEmSJLX5/xDRN7FZLWYqAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 1440x1440 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"events = supervisor.get_events()\n",
"plotter.plot(events)\n",
"\n",
"current_balance = account_manager.get_current_balance()\n",
"# assert initial_balance != current_balance\n",
"# logger.info(\"Initial balance %s\", initial_balance)\n",
"# logger.info(\"Current balance %s\", current_balance)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": ".venv"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 1
}