From 66c2a4cfda032849639ee7c1db5034da5c92362c Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Mon, 18 May 2026 18:58:40 +0300 Subject: [PATCH 01/12] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=201:=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D1=8B=D1=85=20=D0=B4=D0=B2=D1=83=D1=85?= =?UTF-8?q?=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sorokinfi/427.md | 92 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/sorokinfi/427.md b/sorokinfi/427.md index e69de29b..64259e8d 100644 --- a/sorokinfi/427.md +++ b/sorokinfi/427.md @@ -0,0 +1,92 @@ +import csv +import random +import sys +import time +from collections import defaultdict + +# увеличиваем лимит рекурсии +sys.setrecursionlimit(25000) + + +# 1. связный список, узел: {'name': 'Имя', 'phone': '123', 'next': None} + +# проходит до конца и добавляет в конец +def ll_insert(head, name, phone): + new_node = {'name': name, 'phone': phone, 'next': None} + if head is None: + return new_node + current = head + while current['next'] is not None: + current = current['next'] + current['next'] = new_node + return head + +# ищет узел, возвращает телефон или None +def ll_find(head, name): + current = head + while current is not None: + if current['name'] == name: + return current['phone'] + current = current['next'] + return None + +# удаляет узел, возвращает новую голову +def ll_delete(head, name): + if head is None: + return None + if head['name'] == name: + return head['next'] + + current = head + while current['next'] is not None: + if current['next']['name'] == name: + current['next'] = current['next']['next'] + return head + current = current['next'] + return head + +# собирает все записи в список и сортирует +def ll_list_all(head): + records = [] + current = head + while current is not None: + records.append((current['name'], current['phone'])) + current = current['next'] + records.sort(key=lambda x: x[0]) + return records + + +# 2. хеш-таблица + +# хеш-функция для вычисления бекета +def ht_hash(name, size): + return hash(name) % size + +# вычисляет индекс, вызывает ll_insert для соответствующего бакета +def ht_insert(buckets, name, phone): + size = len(buckets) + idx = ht_hash(name, size) + buckets[idx] = ll_insert(buckets[idx], name, phone) + +# поиск по хеш-таблице +def ht_find(buckets, name): + size = len(buckets) + idx = ht_hash(name, size) + return ll_find(buckets[idx], name) + +# удаление из хеш-таблицы +def ht_delete(buckets, name): + size = len(buckets) + idx = ht_hash(name, size) + buckets[idx] = ll_delete(buckets[idx], name) + +# собирает все записи из всех бакетов и сортирует +def ht_list_all(buckets): + all_records = [] + for head in buckets: + current = head + while current is not None: + all_records.append((current['name'], current['phone'])) + current = current['next'] + all_records.sort(key=lambda x: x[0]) + return all_records \ No newline at end of file From dd054c4034e53c664b15f5b467df738584533918 Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Tue, 19 May 2026 18:26:19 +0300 Subject: [PATCH 02/12] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=201:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B4=D0=B2=D0=BE=D0=B8=D1=87=D0=BD=D0=BE=D0=B5=20=D0=B4=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B2=D0=BE=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sorokinfi/427.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/sorokinfi/427.md b/sorokinfi/427.md index 64259e8d..04adbd14 100644 --- a/sorokinfi/427.md +++ b/sorokinfi/427.md @@ -89,4 +89,69 @@ def ht_list_all(buckets): all_records.append((current['name'], current['phone'])) current = current['next'] all_records.sort(key=lambda x: x[0]) - return all_records \ No newline at end of file + return all_records + + +# 3. двоичное дерево поиска +# узел — словарь: {'name': 'Имя', 'phone': '123', 'left': None, 'right': None} + +# рекурсивно или итеративно вставляет, возвращает новый корень (если корень меняется) +def bst_insert(root, name, phone): + if root is None: + return {'name': name, 'phone': phone, 'left': None, 'right': None} + + if name < root['name']: + root['left'] = bst_insert(root['left'], name, phone) + elif name > root['name']: + root['right'] = bst_insert(root['right'], name, phone) + else: + root['phone'] = phone + return root + +# поиск +def bst_find(root, name): + if root is None: + return None + if name == root['name']: + return root['phone'] + elif name < root['name']: + return bst_find(root['left'], name) + else: + return bst_find(root['right'], name) + +# удаление, возвращает новый корень +def bst_delete(root, name): + if root is None: + return None + + if name < root['name']: + root['left'] = bst_delete(root['left'], name) + elif name > root['name']: + root['right'] = bst_delete(root['right'], name) + else: + # одна ветвь или её отсутствие + if root['left'] is None: + return root['right'] + if root['right'] is None: + return root['left'] + # две ветви + successor = root['right'] + while successor['left'] is not None: + successor = successor['left'] + + root['name'] = successor['name'] + root['phone'] = successor['phone'] + root['right'] = bst_delete(root['right'], successor['name']) + + return root + +# центрированный обход (рекурсивно собирает записи в отсортированном порядке) +def bst_list_all(root): + records = [] + def _inorder(node): + if node is not None: + _inorder(node['left']) + records.append((node['name'], node['phone'])) + _inorder(node['right']) + _inorder(root) + return records \ No newline at end of file From 098e0f3a32a1d0cea93f6cdef89e31c5b312357f Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Wed, 20 May 2026 15:20:37 +0300 Subject: [PATCH 03/12] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=201:=20=D1=8D=D0=BA=D1=81=D0=BF=D0=B5=D1=80=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D1=87?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D1=8C,=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- results.csv | 91 ++++++++++++++++++++++++++++++++++ sorokinfi/427.md | 124 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 results.csv diff --git a/results.csv b/results.csv new file mode 100644 index 00000000..cd5145e4 --- /dev/null +++ b/results.csv @@ -0,0 +1,91 @@ +структура,режим,операция,повторение,время (сек) +LinkedList,случайный,вставка,1,0.128959799999393 +LinkedList,случайный,поиск,1,0.006587400000171328 +LinkedList,случайный,удаление,1,0.0037955999996484024 +LinkedList,случайный,вставка,2,0.1274652000001879 +LinkedList,случайный,поиск,2,0.006692099999781931 +LinkedList,случайный,удаление,2,0.0038293999996312778 +LinkedList,случайный,вставка,3,0.13063139999940176 +LinkedList,случайный,поиск,3,0.006624399999964226 +LinkedList,случайный,удаление,3,0.004125400000702939 +LinkedList,случайный,вставка,4,0.13235040000017761 +LinkedList,случайный,поиск,4,0.007224200000564451 +LinkedList,случайный,удаление,4,0.0038412000003518187 +LinkedList,случайный,вставка,5,0.1376228999997693 +LinkedList,случайный,поиск,5,0.007752999999866006 +LinkedList,случайный,удаление,5,0.004621699999916018 +LinkedList,отсортированный,вставка,1,0.14293330000054993 +LinkedList,отсортированный,поиск,1,0.006024299999808136 +LinkedList,отсортированный,удаление,1,0.004954899999574991 +LinkedList,отсортированный,вставка,2,0.1474125999993703 +LinkedList,отсортированный,поиск,2,0.00762140000006184 +LinkedList,отсортированный,удаление,2,0.0051066999994873186 +LinkedList,отсортированный,вставка,3,0.13767009999992297 +LinkedList,отсортированный,поиск,3,0.0064199999997072155 +LinkedList,отсортированный,удаление,3,0.005227899999226793 +LinkedList,отсортированный,вставка,4,0.13925280000057683 +LinkedList,отсортированный,поиск,4,0.006386400000337744 +LinkedList,отсортированный,удаление,4,0.0049518000005264184 +LinkedList,отсортированный,вставка,5,0.13541350000014063 +LinkedList,отсортированный,поиск,5,0.006607199999962177 +LinkedList,отсортированный,удаление,5,0.005551099999138387 +HashTable,случайный,вставка,1,0.00123639999947045 +HashTable,случайный,поиск,1,3.639999977167463e-05 +HashTable,случайный,удаление,1,1.9799999790848233e-05 +HashTable,случайный,вставка,2,0.000970699999925273 +HashTable,случайный,поиск,2,3.259999994043028e-05 +HashTable,случайный,удаление,2,1.7100000150094274e-05 +HashTable,случайный,вставка,3,0.0009898999996948987 +HashTable,случайный,поиск,3,3.20999997711624e-05 +HashTable,случайный,удаление,3,1.7100000150094274e-05 +HashTable,случайный,вставка,4,0.001140299999860872 +HashTable,случайный,поиск,4,0.00010819999988598283 +HashTable,случайный,удаление,4,4.2800000301213004e-05 +HashTable,случайный,вставка,5,0.001704299999801151 +HashTable,случайный,поиск,5,3.510000078676967e-05 +HashTable,случайный,удаление,5,1.83000001925393e-05 +HashTable,отсортированный,вставка,1,0.0009811999998419196 +HashTable,отсортированный,поиск,1,3.110000034212135e-05 +HashTable,отсортированный,удаление,1,1.9400000383029692e-05 +HashTable,отсортированный,вставка,2,0.0009785000002011657 +HashTable,отсортированный,поиск,2,3.1599999601894524e-05 +HashTable,отсортированный,удаление,2,1.9800000700342935e-05 +HashTable,отсортированный,вставка,3,0.0009659999996074475 +HashTable,отсортированный,поиск,3,3.0500000320898835e-05 +HashTable,отсортированный,удаление,3,1.9299999621580355e-05 +HashTable,отсортированный,вставка,4,0.0009494000005361158 +HashTable,отсортированный,поиск,4,2.989999939018162e-05 +HashTable,отсортированный,удаление,4,1.8900000213761814e-05 +HashTable,отсортированный,вставка,5,0.0012150000002293382 +HashTable,отсортированный,поиск,5,3.480000032141106e-05 +HashTable,отсортированный,удаление,5,2.0899999981338624e-05 +BST,случайный,вставка,1,0.004831499999454536 +BST,случайный,поиск,1,0.00013619999936054228 +BST,случайный,удаление,1,9.070000032807002e-05 +BST,случайный,вставка,2,0.005335699999704957 +BST,случайный,поиск,2,0.00012989999959245324 +BST,случайный,удаление,2,8.600000001024455e-05 +BST,случайный,вставка,3,0.005207599999266677 +BST,случайный,поиск,3,0.00013050000052317046 +BST,случайный,удаление,3,8.580000030633528e-05 +BST,случайный,вставка,4,0.005297200000313751 +BST,случайный,поиск,4,0.00013440000020636944 +BST,случайный,удаление,4,8.789999992586672e-05 +BST,случайный,вставка,5,0.005037799999627168 +BST,случайный,поиск,5,0.000649399999929301 +BST,случайный,удаление,5,0.0001084000004993868 +BST,отсортированный,вставка,1,0.8110883999997895 +BST,отсортированный,поиск,1,0.019361399999979767 +BST,отсортированный,удаление,1,0.014678200000162178 +BST,отсортированный,вставка,2,0.7911546999994243 +BST,отсортированный,поиск,2,0.019212399999560148 +BST,отсортированный,удаление,2,0.013222700000369514 +BST,отсортированный,вставка,3,0.7786938999997801 +BST,отсортированный,поиск,3,0.01864480000040203 +BST,отсортированный,удаление,3,0.013478699999723176 +BST,отсортированный,вставка,4,0.7826362000005247 +BST,отсортированный,поиск,4,0.01973920000000362 +BST,отсортированный,удаление,4,0.013336900000467722 +BST,отсортированный,вставка,5,0.7718632000005528 +BST,отсортированный,поиск,5,0.02021930000046268 +BST,отсортированный,удаление,5,0.013186899999709567 diff --git a/sorokinfi/427.md b/sorokinfi/427.md index 04adbd14..a84d3d92 100644 --- a/sorokinfi/427.md +++ b/sorokinfi/427.md @@ -154,4 +154,126 @@ def bst_list_all(root): records.append((node['name'], node['phone'])) _inorder(node['right']) _inorder(root) - return records \ No newline at end of file + return records + + +# ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ + +def run_experiments(): + N = 3000 + HASH_SIZE = 1007 + + print(f"генерация тестовых данных для N = {N}...") + records_sorted = [(f"User_{i:05d}", f"+7999123{i:04d}") for i in range(N)] + records_shuffled = records_sorted.copy() + random.seed(42) + random.shuffle(records_shuffled) + + # подготовка выборок + existing_sample = [r[0] for r in random.sample(records_sorted, min(100, N))] + non_existing_sample = [f"None_{i}" for i in range(10)] + search_names = existing_sample + non_existing_sample + + delete_names = [r[0] for r in random.sample(records_sorted, min(50, N))] + csv_rows = [["структура", "режим", "операция", "повторение", "время (сек)"]] + modes = [("случайный", records_shuffled), ("отсортированный", records_sorted)] + + print("запуск экспериментов (5 повторений для каждого режима)") + +# ТЕСТ: СВЯЗНЫЙ СПИСОК + + for mode_name, data in modes: + for rep in range(1, 6): + head = None + t_start = time.perf_counter() + for name, phone in data: + head = ll_insert(head, name, phone) + t_end = time.perf_counter() + csv_rows.append(["LinkedList", mode_name, "вставка", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in search_names: + ll_find(head, name) + t_end = time.perf_counter() + csv_rows.append(["LinkedList", mode_name, "поиск", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in delete_names: + head = ll_delete(head, name) + t_end = time.perf_counter() + csv_rows.append(["LinkedList", mode_name, "удаление", rep, t_end - t_start]) + +# ТЕСТ: ХЕШ-ТАБЛИЦА + + for mode_name, data in modes: + for rep in range(1, 6): + buckets = [None] * HASH_SIZE + t_start = time.perf_counter() + for name, phone in data: + ht_insert(buckets, name, phone) + t_end = time.perf_counter() + csv_rows.append(["HashTable", mode_name, "вставка", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in search_names: + ht_find(buckets, name) + t_end = time.perf_counter() + csv_rows.append(["HashTable", mode_name, "поиск", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in delete_names: + ht_delete(buckets, name) + t_end = time.perf_counter() + csv_rows.append(["HashTable", mode_name, "удаление", rep, t_end - t_start]) + +# ТЕСТ: ДЕРЕВО ПОИСКА (BST) + + for mode_name, data in modes: + for rep in range(1, 6): + root = None + t_start = time.perf_counter() + for name, phone in data: + root = bst_insert(root, name, phone) + t_end = time.perf_counter() + csv_rows.append(["BST", mode_name, "вставка", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in search_names: + bst_find(root, name) + t_end = time.perf_counter() + csv_rows.append(["BST", mode_name, "поиск", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in delete_names: + root = bst_delete(root, name) + t_end = time.perf_counter() + csv_rows.append(["BST", mode_name, "удаление", rep, t_end - t_start]) + +# сохранение в csv + with open("results.csv", "w", newline="", encoding="utf-8") as f: + writer = csv.writer(f) + writer.writerows(csv_rows) + print("\nвсе замеры сохранены в файл 'results.csv'.") + + show_summary(csv_rows) + +# функция для подсчета и вывода среднего времени +def show_summary(rows): + summary = defaultdict(list) + for row in rows[1:]: + struct, mode, op, rep, elapsed = row + summary[(struct, mode, op)].append(elapsed) + + print("\nСВОДНЫЕ РЕЗУЛЬТАТЫ (СРЕДНЕЕ ВРЕМЯ ИЗ 5 ЗАПУСКОВ)") + print(f"{'структура':<12} | {'режим данных':<15} | {'операция':<10} | {'время (сек)':<12}") + print("-" * 59) + for (struct, mode, op), times in sorted(summary.items()): + avg_time = sum(times) / len(times) + print(f"{struct:<12} | {mode:<15} | {op:<10} | {avg_time:.6f}") + + +if __name__ == "__main__": + run_experiments() + + + From 032b22c79f36bc4f295aa4ace187854af833e8d8 Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Thu, 21 May 2026 15:59:26 +0300 Subject: [PATCH 04/12] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=201:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0=D0=BB=D0=B8=D0=B7=20=D1=80=D0=B5=D0=B7=D1=83?= =?UTF-8?q?=D0=BB=D1=8C=D1=82=D0=B0=D1=82=D0=BE=D0=B2=20(=D0=B3=D1=80?= =?UTF-8?q?=D0=B0=D1=84=D0=B8=D0=BA,=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4?= =?UTF-8?q?=D1=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- benchmark_chart.png | Bin 0 -> 30671 bytes results.csv | 178 ++++++++++++++++++++++---------------------- sorokinfi/427.md | 73 +++++++++++++++++- 3 files changed, 160 insertions(+), 91 deletions(-) create mode 100644 benchmark_chart.png diff --git a/benchmark_chart.png b/benchmark_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..84c386e10f4c481abb3587e1873118d77bd55851 GIT binary patch literal 30671 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 literal 0 HcmV?d00001 diff --git a/results.csv b/results.csv index cd5145e4..4891afca 100644 --- a/results.csv +++ b/results.csv @@ -1,91 +1,91 @@ структура,режим,операция,повторение,время (сек) -LinkedList,случайный,вставка,1,0.128959799999393 -LinkedList,случайный,поиск,1,0.006587400000171328 -LinkedList,случайный,удаление,1,0.0037955999996484024 -LinkedList,случайный,вставка,2,0.1274652000001879 -LinkedList,случайный,поиск,2,0.006692099999781931 -LinkedList,случайный,удаление,2,0.0038293999996312778 -LinkedList,случайный,вставка,3,0.13063139999940176 -LinkedList,случайный,поиск,3,0.006624399999964226 -LinkedList,случайный,удаление,3,0.004125400000702939 -LinkedList,случайный,вставка,4,0.13235040000017761 -LinkedList,случайный,поиск,4,0.007224200000564451 -LinkedList,случайный,удаление,4,0.0038412000003518187 -LinkedList,случайный,вставка,5,0.1376228999997693 -LinkedList,случайный,поиск,5,0.007752999999866006 -LinkedList,случайный,удаление,5,0.004621699999916018 -LinkedList,отсортированный,вставка,1,0.14293330000054993 -LinkedList,отсортированный,поиск,1,0.006024299999808136 -LinkedList,отсортированный,удаление,1,0.004954899999574991 -LinkedList,отсортированный,вставка,2,0.1474125999993703 -LinkedList,отсортированный,поиск,2,0.00762140000006184 -LinkedList,отсортированный,удаление,2,0.0051066999994873186 -LinkedList,отсортированный,вставка,3,0.13767009999992297 -LinkedList,отсортированный,поиск,3,0.0064199999997072155 -LinkedList,отсортированный,удаление,3,0.005227899999226793 -LinkedList,отсортированный,вставка,4,0.13925280000057683 -LinkedList,отсортированный,поиск,4,0.006386400000337744 -LinkedList,отсортированный,удаление,4,0.0049518000005264184 -LinkedList,отсортированный,вставка,5,0.13541350000014063 -LinkedList,отсортированный,поиск,5,0.006607199999962177 -LinkedList,отсортированный,удаление,5,0.005551099999138387 -HashTable,случайный,вставка,1,0.00123639999947045 -HashTable,случайный,поиск,1,3.639999977167463e-05 -HashTable,случайный,удаление,1,1.9799999790848233e-05 -HashTable,случайный,вставка,2,0.000970699999925273 -HashTable,случайный,поиск,2,3.259999994043028e-05 -HashTable,случайный,удаление,2,1.7100000150094274e-05 -HashTable,случайный,вставка,3,0.0009898999996948987 -HashTable,случайный,поиск,3,3.20999997711624e-05 -HashTable,случайный,удаление,3,1.7100000150094274e-05 -HashTable,случайный,вставка,4,0.001140299999860872 -HashTable,случайный,поиск,4,0.00010819999988598283 -HashTable,случайный,удаление,4,4.2800000301213004e-05 -HashTable,случайный,вставка,5,0.001704299999801151 -HashTable,случайный,поиск,5,3.510000078676967e-05 -HashTable,случайный,удаление,5,1.83000001925393e-05 -HashTable,отсортированный,вставка,1,0.0009811999998419196 -HashTable,отсортированный,поиск,1,3.110000034212135e-05 -HashTable,отсортированный,удаление,1,1.9400000383029692e-05 -HashTable,отсортированный,вставка,2,0.0009785000002011657 -HashTable,отсортированный,поиск,2,3.1599999601894524e-05 -HashTable,отсортированный,удаление,2,1.9800000700342935e-05 -HashTable,отсортированный,вставка,3,0.0009659999996074475 +LinkedList,случайный,вставка,1,0.13309969999954774 +LinkedList,случайный,поиск,1,0.009379099999932805 +LinkedList,случайный,удаление,1,0.004902000000583939 +LinkedList,случайный,вставка,2,0.11298999999962689 +LinkedList,случайный,поиск,2,0.00728259999959846 +LinkedList,случайный,удаление,2,0.003859800000100222 +LinkedList,случайный,вставка,3,0.12435430000004999 +LinkedList,случайный,поиск,3,0.006995800000368035 +LinkedList,случайный,удаление,3,0.0038894999997864943 +LinkedList,случайный,вставка,4,0.11281289999988076 +LinkedList,случайный,поиск,4,0.0073154000001522945 +LinkedList,случайный,удаление,4,0.004016099999716971 +LinkedList,случайный,вставка,5,0.12206900000001042 +LinkedList,случайный,поиск,5,0.007770400000481459 +LinkedList,случайный,удаление,5,0.0039008999992802273 +LinkedList,отсортированный,вставка,1,0.12199670000063634 +LinkedList,отсортированный,поиск,1,0.006072700000004261 +LinkedList,отсортированный,удаление,1,0.004619700000148441 +LinkedList,отсортированный,вставка,2,0.11778119999962655 +LinkedList,отсортированный,поиск,2,0.005873400000382389 +LinkedList,отсортированный,удаление,2,0.004716499999631196 +LinkedList,отсортированный,вставка,3,0.11716749999959575 +LinkedList,отсортированный,поиск,3,0.006211500000063097 +LinkedList,отсортированный,удаление,3,0.004824199999347911 +LinkedList,отсортированный,вставка,4,0.1168800999994346 +LinkedList,отсортированный,поиск,4,0.00615879999986646 +LinkedList,отсортированный,удаление,4,0.004850500000429747 +LinkedList,отсортированный,вставка,5,0.12217359999976907 +LinkedList,отсортированный,поиск,5,0.0060359999997672276 +LinkedList,отсортированный,удаление,5,0.0046704000005775015 +HashTable,случайный,вставка,1,0.001177799999823037 +HashTable,случайный,поиск,1,3.729999934876105e-05 +HashTable,случайный,удаление,1,2.009999934671214e-05 +HashTable,случайный,вставка,2,0.001008700000056706 +HashTable,случайный,поиск,2,3.290000040578889e-05 +HashTable,случайный,удаление,2,1.6900000446185004e-05 +HashTable,случайный,вставка,3,0.0010118999998667277 +HashTable,случайный,поиск,3,3.500000002532033e-05 +HashTable,случайный,удаление,3,2.0599999515980016e-05 +HashTable,случайный,вставка,4,0.0010044999999081483 +HashTable,случайный,поиск,4,3.1800000215298496e-05 +HashTable,случайный,удаление,4,1.700000029813964e-05 +HashTable,случайный,вставка,5,0.001006999999844993 +HashTable,случайный,поиск,5,3.1599999601894524e-05 +HashTable,случайный,удаление,5,1.649999921937706e-05 +HashTable,отсортированный,вставка,1,0.0009728999993967591 +HashTable,отсортированный,поиск,1,3.0100000003585592e-05 +HashTable,отсортированный,удаление,1,1.9299999621580355e-05 +HashTable,отсортированный,вставка,2,0.0009723000002850313 +HashTable,отсортированный,поиск,2,2.9599999834317714e-05 +HashTable,отсортированный,удаление,2,1.919999976962572e-05 +HashTable,отсортированный,вставка,3,0.0009663999999247608 HashTable,отсортированный,поиск,3,3.0500000320898835e-05 -HashTable,отсортированный,удаление,3,1.9299999621580355e-05 -HashTable,отсортированный,вставка,4,0.0009494000005361158 -HashTable,отсортированный,поиск,4,2.989999939018162e-05 -HashTable,отсортированный,удаление,4,1.8900000213761814e-05 -HashTable,отсортированный,вставка,5,0.0012150000002293382 -HashTable,отсортированный,поиск,5,3.480000032141106e-05 -HashTable,отсортированный,удаление,5,2.0899999981338624e-05 -BST,случайный,вставка,1,0.004831499999454536 -BST,случайный,поиск,1,0.00013619999936054228 -BST,случайный,удаление,1,9.070000032807002e-05 -BST,случайный,вставка,2,0.005335699999704957 -BST,случайный,поиск,2,0.00012989999959245324 -BST,случайный,удаление,2,8.600000001024455e-05 -BST,случайный,вставка,3,0.005207599999266677 -BST,случайный,поиск,3,0.00013050000052317046 -BST,случайный,удаление,3,8.580000030633528e-05 -BST,случайный,вставка,4,0.005297200000313751 -BST,случайный,поиск,4,0.00013440000020636944 -BST,случайный,удаление,4,8.789999992586672e-05 -BST,случайный,вставка,5,0.005037799999627168 -BST,случайный,поиск,5,0.000649399999929301 -BST,случайный,удаление,5,0.0001084000004993868 -BST,отсортированный,вставка,1,0.8110883999997895 -BST,отсортированный,поиск,1,0.019361399999979767 -BST,отсортированный,удаление,1,0.014678200000162178 -BST,отсортированный,вставка,2,0.7911546999994243 -BST,отсортированный,поиск,2,0.019212399999560148 -BST,отсортированный,удаление,2,0.013222700000369514 -BST,отсортированный,вставка,3,0.7786938999997801 -BST,отсортированный,поиск,3,0.01864480000040203 -BST,отсортированный,удаление,3,0.013478699999723176 -BST,отсортированный,вставка,4,0.7826362000005247 -BST,отсортированный,поиск,4,0.01973920000000362 -BST,отсортированный,удаление,4,0.013336900000467722 -BST,отсортированный,вставка,5,0.7718632000005528 -BST,отсортированный,поиск,5,0.02021930000046268 -BST,отсортированный,удаление,5,0.013186899999709567 +HashTable,отсортированный,удаление,3,1.9699999938893598e-05 +HashTable,отсортированный,вставка,4,0.0011242000000493135 +HashTable,отсортированный,поиск,4,3.400000059627928e-05 +HashTable,отсортированный,удаление,4,2.080000012938399e-05 +HashTable,отсортированный,вставка,5,0.0009773000001587206 +HashTable,отсортированный,поиск,5,3.100000049016671e-05 +HashTable,отсортированный,удаление,5,1.9699999938893598e-05 +BST,случайный,вставка,1,0.004384899999422487 +BST,случайный,поиск,1,0.0001329000006080605 +BST,случайный,удаление,1,8.230000003095483e-05 +BST,случайный,вставка,2,0.004304400000364694 +BST,случайный,поиск,2,0.00014240000018617138 +BST,случайный,удаление,2,8.129999969241908e-05 +BST,случайный,вставка,3,0.004376699999738776 +BST,случайный,поиск,3,0.00014179999925545417 +BST,случайный,удаление,3,8.269999943877338e-05 +BST,случайный,вставка,4,0.004673599999478029 +BST,случайный,поиск,4,0.0001511999998911051 +BST,случайный,удаление,4,0.00012150000020483276 +BST,случайный,вставка,5,0.004335399999945366 +BST,случайный,поиск,5,0.00013080000007903436 +BST,случайный,удаление,5,7.93999997767969e-05 +BST,отсортированный,вставка,1,0.7882552000000942 +BST,отсортированный,поиск,1,0.01960369999960676 +BST,отсортированный,удаление,1,0.013939499999651161 +BST,отсортированный,вставка,2,0.7601769000002605 +BST,отсортированный,поиск,2,0.019820599999547994 +BST,отсортированный,удаление,2,0.01359989999946265 +BST,отсортированный,вставка,3,0.741146899999876 +BST,отсортированный,поиск,3,0.018209700000625162 +BST,отсортированный,удаление,3,0.012622499999451975 +BST,отсортированный,вставка,4,0.7348717000004399 +BST,отсортированный,поиск,4,0.01830170000084763 +BST,отсортированный,удаление,4,0.012606900000719179 +BST,отсортированный,вставка,5,0.7420961000007082 +BST,отсортированный,поиск,5,0.018224400000690366 +BST,отсортированный,удаление,5,0.012539400000605383 diff --git a/sorokinfi/427.md b/sorokinfi/427.md index a84d3d92..f2b1dc80 100644 --- a/sorokinfi/427.md +++ b/sorokinfi/427.md @@ -3,6 +3,8 @@ import random import sys import time from collections import defaultdict +import pandas as pd +import matplotlib.pyplot as plt # увеличиваем лимит рекурсии sys.setrecursionlimit(25000) @@ -157,7 +159,7 @@ def bst_list_all(root): return records -# ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ +# 4. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ def run_experiments(): N = 3000 @@ -272,8 +274,75 @@ def show_summary(rows): print(f"{struct:<12} | {mode:<15} | {op:<10} | {avg_time:.6f}") + +# 5. АНАЛИЗ РЕЗУЛЬТАТОВ + +def plot_results(csv_filename="results.csv"): + print("построение графика") + try: + df = pd.read_csv(csv_filename) + + df_insert = df[df["операция"] == "вставка"] + + pivot_df = df_insert.pivot_table( + index="структура", + columns="режим", + values="время (сек)", + aggfunc="mean" + ) + + pivot_df.plot(kind="bar", figsize=(10, 6), color=['#1f77b4', '#ff7f0e']) + + plt.title("сравнение времени вставки (N=3000)") + plt.ylabel("среднее время выполнения (сек)") + plt.xlabel("структура данных") + plt.xticks(rotation=0) + plt.grid(axis='y', linestyle='--', alpha=0.7) + plt.savefig("benchmark_chart.png") + print("график сохранен как benchmark_chart.png") + plt.show() + + except FileNotFoundError: + print(f"файл {csv_filename} не найден. сначала запустите тесты.") + + +def print_report(): + report = """ + + 5. АНАЛИЗ РЕЗУЛЬТАТОВ ЭКСПЕРИМЕНТОВ + +1. Влияние порядка входных данных на скорость вставки в BST: + - На случайных данных BST строится сбалансированным. Высота дерева составляет + примерно O(log N), поэтому вставка происходит почти мгновенно. + - На отсортированных данных происходит ДЕГРАДАЦИЯ дерева. Каждый элемент больше + предыдущего и вставляется строго вправо. Дерево вырождается в связный список. + Сложность возрастает до O(N), что отчетливо видно по гигантскому пику на графике. + +2. Чувствительность Хеш-таблицы к порядку: + - Хеш-таблица НЕ ЧУВСТВИТЕЛЬНА к порядку данных. Математическая хеш-функция + превращает любое имя в хаотичный индекс и равномерно распределяет записи + по бакетам. В обоих режимах операции выполняются за константное время O(1). + +3. Почему связный список всегда медленен при поиске: + - У связного списка нет индексов для прямого доступа. Поиск всегда линейный O(N) + — алгоритм вынужден последовательно перебирать элементы от головы к хвосту. + +4. Как удаление работает в каждой структуре: + - Связный список: O(N) затрачивается на линейный поиск узла, само удаление — O(1). + - Хеш-таблица: O(1) нахождение бакета по хешу, удаление из цепочки коллизий мгновенно. + - BST: В среднем O(log N), в худшем O(N). Требует поиска узла и перестройки связей + (замена удаляемого узла на его потомка или минимальный элемент правого поддерева). + +ВЫВОД: + - ДЛЯ ЧАСТЫХ ВСТАВОК И ПОИСКА: Идеально подходит Хеш-таблица благодаря скорости O(1). + - ДЛЯ ПОЛУЧЕНИЯ ДАННЫХ В ПОРЯДКЕ (АЛФАВИТНОМ): Стоит выбирать Двоичное дерево поиска + (BST), так как обход дерева (In-order traversal) сразу выдает отсортированные данные. + """ + print(report) + if __name__ == "__main__": run_experiments() - + plot_results() + print_report() From 188077da5662ec450c82d8d81e44f7ff59beb85c Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Sat, 23 May 2026 15:09:51 +0300 Subject: [PATCH 05/12] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=202:=20=D1=81=D1=82=D1=80=D0=B0=D1=82=D0=B5=D0=B3=D0=B8?= =?UTF-8?q?=D1=8F=201:=20BFS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sorokinfi/427.py | 379 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 379 insertions(+) create mode 100644 sorokinfi/427.py diff --git a/sorokinfi/427.py b/sorokinfi/427.py new file mode 100644 index 00000000..e46818fa --- /dev/null +++ b/sorokinfi/427.py @@ -0,0 +1,379 @@ +import csv +import random +import sys +import time +from collections import defaultdict, deque +import pandas as pd +import matplotlib.pyplot as plt +from abc import ABC, abstractmethod + +# увеличиваем лимит рекурсии +sys.setrecursionlimit(25000) + +# ЗАДАНИЕ 1: СТРУКТУРЫ ДАННЫХ + +# 1. связный список, узел: {'name': 'Имя', 'phone': '123', 'next': None} + +# проходит до конца и добавляет в конец +def ll_insert(head, name, phone): + new_node = {'name': name, 'phone': phone, 'next': None} + if head is None: + return new_node + current = head + while current['next'] is not None: + current = current['next'] + current['next'] = new_node + return head + +# ищет узел, возвращает телефон или None +def ll_find(head, name): + current = head + while current is not None: + if current['name'] == name: + return current['phone'] + current = current['next'] + return None + +# удаляет узел, возвращает новую голову +def ll_delete(head, name): + if head is None: + return None + if head['name'] == name: + return head['next'] + + current = head + while current['next'] is not None: + if current['next']['name'] == name: + current['next'] = current['next']['next'] + return head + current = current['next'] + return head + +# собирает все записи в список и сортирует +def ll_list_all(head): + records = [] + current = head + while current is not None: + records.append((current['name'], current['phone'])) + current = current['next'] + records.sort(key=lambda x: x[0]) + return records + + +# 2. хеш-таблица + +# хеш-функция для вычисления бекета +def ht_hash(name, size): + return hash(name) % size + +# вычисляет индекс, вызывает ll_insert для соответствующего бакета +def ht_insert(buckets, name, phone): + size = len(buckets) + idx = ht_hash(name, size) + buckets[idx] = ll_insert(buckets[idx], name, phone) + +# поиск по хеш-таблице +def ht_find(buckets, name): + size = len(buckets) + idx = ht_hash(name, size) + return ll_find(buckets[idx], name) + +# удаление из хеш-таблицы +def ht_delete(buckets, name): + size = len(buckets) + idx = ht_hash(name, size) + buckets[idx] = ll_delete(buckets[idx], name) + +# собирает все записи из всех бакетов и сортирует +def ht_list_all(buckets): + all_records = [] + for head in buckets: + current = head + while current is not None: + all_records.append((current['name'], current['phone'])) + current = current['next'] + all_records.sort(key=lambda x: x[0]) + return all_records + + +# 3. двоичное дерево поиска +# узел — словарь: {'name': 'Имя', 'phone': '123', 'left': None, 'right': None} + +# рекурсивно или итеративно вставляет, возвращает новый корень (если корень меняется) +def bst_insert(root, name, phone): + if root is None: + return {'name': name, 'phone': phone, 'left': None, 'right': None} + + if name < root['name']: + root['left'] = bst_insert(root['left'], name, phone) + elif name > root['name']: + root['right'] = bst_insert(root['right'], name, phone) + else: + root['phone'] = phone + return root + +# поиск +def bst_find(root, name): + if root is None: + return None + if name == root['name']: + return root['phone'] + elif name < root['name']: + return bst_find(root['left'], name) + else: + return bst_find(root['right'], name) + +# удаление, возвращает новый корень +def bst_delete(root, name): + if root is None: + return None + + if name < root['name']: + root['left'] = bst_delete(root['left'], name) + elif name > root['name']: + root['right'] = bst_delete(root['right'], name) + else: + # одна ветвь или её отсутствие + if root['left'] is None: + return root['right'] + if root['right'] is None: + return root['left'] + # две ветви + successor = root['right'] + while successor['left'] is not None: + successor = successor['left'] + + root['name'] = successor['name'] + root['phone'] = successor['phone'] + root['right'] = bst_delete(root['right'], successor['name']) + + return root + +# центрированный обход (рекурсивно собирает записи в отсортированном порядке) +def bst_list_all(root): + records = [] + def _inorder(node): + if node is not None: + _inorder(node['left']) + records.append((node['name'], node['phone'])) + _inorder(node['right']) + _inorder(root) + return records + + +# 4. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ + +def run_experiments(): + N = 3000 + HASH_SIZE = 1007 + + print(f"генерация тестовых данных для N = {N}...") + records_sorted = [(f"User_{i:05d}", f"+7999123{i:04d}") for i in range(N)] + records_shuffled = records_sorted.copy() + random.seed(42) + random.shuffle(records_shuffled) + + # подготовка выборок + existing_sample = [r[0] for r in random.sample(records_sorted, min(100, N))] + non_existing_sample = [f"None_{i}" for i in range(10)] + search_names = existing_sample + non_existing_sample + + delete_names = [r[0] for r in random.sample(records_sorted, min(50, N))] + csv_rows = [["структура", "режим", "операция", "повторение", "время (сек)"]] + modes = [("случайный", records_shuffled), ("отсортированный", records_sorted)] + + print("запуск экспериментов (5 повторений для каждого режима)") + +# ТЕСТ: СВЯЗНЫЙ СПИСОК + + for mode_name, data in modes: + for rep in range(1, 6): + head = None + t_start = time.perf_counter() + for name, phone in data: + head = ll_insert(head, name, phone) + t_end = time.perf_counter() + csv_rows.append(["LinkedList", mode_name, "вставка", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in search_names: + ll_find(head, name) + t_end = time.perf_counter() + csv_rows.append(["LinkedList", mode_name, "поиск", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in delete_names: + head = ll_delete(head, name) + t_end = time.perf_counter() + csv_rows.append(["LinkedList", mode_name, "удаление", rep, t_end - t_start]) + +# ТЕСТ: ХЕШ-ТАБЛИЦА + + for mode_name, data in modes: + for rep in range(1, 6): + buckets = [None] * HASH_SIZE + t_start = time.perf_counter() + for name, phone in data: + ht_insert(buckets, name, phone) + t_end = time.perf_counter() + csv_rows.append(["HashTable", mode_name, "вставка", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in search_names: + ht_find(buckets, name) + t_end = time.perf_counter() + csv_rows.append(["HashTable", mode_name, "поиск", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in delete_names: + ht_delete(buckets, name) + t_end = time.perf_counter() + csv_rows.append(["HashTable", mode_name, "удаление", rep, t_end - t_start]) + +# ТЕСТ: ДЕРЕВО ПОИСКА (BST) + + for mode_name, data in modes: + for rep in range(1, 6): + root = None + t_start = time.perf_counter() + for name, phone in data: + root = bst_insert(root, name, phone) + t_end = time.perf_counter() + csv_rows.append(["BST", mode_name, "вставка", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in search_names: + bst_find(root, name) + t_end = time.perf_counter() + csv_rows.append(["BST", mode_name, "поиск", rep, t_end - t_start]) + + t_start = time.perf_counter() + for name in delete_names: + root = bst_delete(root, name) + t_end = time.perf_counter() + csv_rows.append(["BST", mode_name, "удаление", rep, t_end - t_start]) + +# сохранение в csv + with open("results.csv", "w", newline="", encoding="utf-8") as f: + writer = csv.writer(f) + writer.writerows(csv_rows) + print("\nвсе замеры сохранены в файл 'results.csv'.") + + show_summary(csv_rows) + +# функция для подсчета и вывода среднего времени +def show_summary(rows): + summary = defaultdict(list) + for row in rows[1:]: + struct, mode, op, rep, elapsed = row + summary[(struct, mode, op)].append(elapsed) + + print("\nСВОДНЫЕ РЕЗУЛЬТАТЫ (СРЕДНЕЕ ВРЕМЯ ИЗ 5 ЗАПУСКОВ)") + print(f"{'структура':<12} | {'режим данных':<15} | {'операция':<10} | {'время (сек)':<12}") + print("-" * 59) + for (struct, mode, op), times in sorted(summary.items()): + avg_time = sum(times) / len(times) + print(f"{struct:<12} | {mode:<15} | {op:<10} | {avg_time:.6f}") + + + +# 5. АНАЛИЗ РЕЗУЛЬТАТОВ + +def plot_results(csv_filename="results.csv"): + print("построение графика") + try: + df = pd.read_csv(csv_filename) + + df_insert = df[df["операция"] == "вставка"] + + pivot_df = df_insert.pivot_table( + index="структура", + columns="режим", + values="время (сек)", + aggfunc="mean" + ) + + pivot_df.plot(kind="bar", figsize=(10, 6), color=['#1f77b4', '#ff7f0e']) + + plt.title("сравнение времени вставки (N=3000)") + plt.ylabel("среднее время выполнения (сек)") + plt.xlabel("структура данных") + plt.xticks(rotation=0) + plt.grid(axis='y', linestyle='--', alpha=0.7) + plt.savefig("benchmark_chart.png") + print("график сохранен как benchmark_chart.png") + plt.show() + + except FileNotFoundError: + print(f"файл {csv_filename} не найден. сначала запустите тесты.") + + +def print_report(): + report = """ + + 5. АНАЛИЗ РЕЗУЛЬТАТОВ ЭКСПЕРИМЕНТОВ + +1. Влияние порядка входных данных на скорость вставки в BST: + - На случайных данных BST строится сбалансированным. Высота дерева составляет + примерно O(log N), поэтому вставка происходит почти мгновенно. + - На отсортированных данных происходит ДЕГРАДАЦИЯ дерева. Каждый элемент больше + предыдущего и вставляется строго вправо. Дерево вырождается в связный список. + Сложность возрастает до O(N), что отчетливо видно по гигантскому пику на графике. + +2. Чувствительность Хеш-таблицы к порядку: + - Хеш-таблица НЕ ЧУВСТВИТЕЛЬНА к порядку данных. Математическая хеш-функция + превращает любое имя в хаотичный индекс и равномерно распределяет записи + по бакетам. В обоих режимах операции выполняются за константное время O(1). + +3. Почему связный список всегда медленен при поиске: + - У связного списка нет индексов для прямого доступа. Поиск всегда линейный O(N) + — алгоритм вынужден последовательно перебирать элементы от головы к хвосту. + +4. Как удаление работает в каждой структуре: + - Связный список: O(N) затрачивается на линейный поиск узла, само удаление — O(1). + - Хеш-таблица: O(1) нахождение бакета по хешу, удаление из цепочки коллизий мгновенно. + - BST: В среднем O(log N), в худшем O(N). Требует поиска узла и перестройки связей + (замена удаляемого узла на его потомка или минимальный элемент правого поддерева). + +ВЫВОД: + - ДЛЯ ЧАСТЫХ ВСТАВОК И ПОИСКА: Идеально подходит Хеш-таблица благодаря скорости O(1). + - ДЛЯ ПОЛУЧЕНИЯ ДАННЫХ В ПОРЯДКЕ (АЛФАВИТНОМ): Стоит выбирать Двоичное дерево поиска + (BST), так как обход дерева (In-order traversal) сразу выдает отсортированные данные. + """ + print(report) + +if __name__ == "__main__": + run_experiments() + plot_results() + print_report() + + +# ЗАДАНИЕ 2: ПОИСК ВЫХОДА ИЗ ЛАБИРИНТА + +# стратегия №1: BFS +class BFSStrategy(PathfindingStrategy): + def solve(self, maze: Maze): + + # проверка входных данных + if not maze.start or not maze.end: + return None + + # инициализация структур данных + queue = deque([(maze.start, [maze.start])]) + visited = set([maze.start]) + + # направление для шагов + directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] + + # основной цикл обхода лабиринта + while queue: + current, path = queue.popleft() + if current == maze.end: + return path + r, c = current + for dr, dc in directions: + nr, nc = r + dr, c + dc + if maze.is_walkable(nr, nc) and (nr, nc) not in visited: + visited.add((nr, nc)) + queue.append(((nr, nc), path + [(nr, nc)])) + return None From f04f36c12e40d6497285fbe7f123ea1d76a349db Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Sun, 24 May 2026 16:20:35 +0300 Subject: [PATCH 06/12] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=202:=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=20=D0=B2=D1=8B?= =?UTF-8?q?=D1=85=D0=BE=D0=B4=D0=B0=20=D0=B8=D0=B7=20=D0=BB=D0=B0=D0=B1?= =?UTF-8?q?=D0=B8=D1=80=D0=B8=D0=BD=D1=82=D0=B0,=20DFS,=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BA=D0=B0=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D1=85=20=D0=BB=D0=B0=D0=B1=D0=B8?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 + benchmark_chart.png | Bin 30671 -> 30806 bytes results.csv | 180 +++++++++++----------- sorokinfi/427.md | 348 ------------------------------------------ sorokinfi/427.py | 94 +++++++++++- 5 files changed, 186 insertions(+), 439 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 sorokinfi/427.md diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..c9ebf2d2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python-envs.defaultEnvManager": "ms-python.python:system" +} \ No newline at end of file diff --git a/benchmark_chart.png b/benchmark_chart.png index 84c386e10f4c481abb3587e1873118d77bd55851..19c11bab205be152221dde948b32ceafc4d02367 100644 GIT binary patch literal 30806 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 diff --git a/results.csv b/results.csv index 4891afca..fedd4230 100644 --- a/results.csv +++ b/results.csv @@ -1,91 +1,91 @@ структура,режим,операция,повторение,время (сек) -LinkedList,случайный,вставка,1,0.13309969999954774 -LinkedList,случайный,поиск,1,0.009379099999932805 -LinkedList,случайный,удаление,1,0.004902000000583939 -LinkedList,случайный,вставка,2,0.11298999999962689 -LinkedList,случайный,поиск,2,0.00728259999959846 -LinkedList,случайный,удаление,2,0.003859800000100222 -LinkedList,случайный,вставка,3,0.12435430000004999 -LinkedList,случайный,поиск,3,0.006995800000368035 -LinkedList,случайный,удаление,3,0.0038894999997864943 -LinkedList,случайный,вставка,4,0.11281289999988076 -LinkedList,случайный,поиск,4,0.0073154000001522945 -LinkedList,случайный,удаление,4,0.004016099999716971 -LinkedList,случайный,вставка,5,0.12206900000001042 -LinkedList,случайный,поиск,5,0.007770400000481459 -LinkedList,случайный,удаление,5,0.0039008999992802273 -LinkedList,отсортированный,вставка,1,0.12199670000063634 -LinkedList,отсортированный,поиск,1,0.006072700000004261 -LinkedList,отсортированный,удаление,1,0.004619700000148441 -LinkedList,отсортированный,вставка,2,0.11778119999962655 -LinkedList,отсортированный,поиск,2,0.005873400000382389 -LinkedList,отсортированный,удаление,2,0.004716499999631196 -LinkedList,отсортированный,вставка,3,0.11716749999959575 -LinkedList,отсортированный,поиск,3,0.006211500000063097 -LinkedList,отсортированный,удаление,3,0.004824199999347911 -LinkedList,отсортированный,вставка,4,0.1168800999994346 -LinkedList,отсортированный,поиск,4,0.00615879999986646 -LinkedList,отсортированный,удаление,4,0.004850500000429747 -LinkedList,отсортированный,вставка,5,0.12217359999976907 -LinkedList,отсортированный,поиск,5,0.0060359999997672276 -LinkedList,отсортированный,удаление,5,0.0046704000005775015 -HashTable,случайный,вставка,1,0.001177799999823037 -HashTable,случайный,поиск,1,3.729999934876105e-05 -HashTable,случайный,удаление,1,2.009999934671214e-05 -HashTable,случайный,вставка,2,0.001008700000056706 -HashTable,случайный,поиск,2,3.290000040578889e-05 -HashTable,случайный,удаление,2,1.6900000446185004e-05 -HashTable,случайный,вставка,3,0.0010118999998667277 -HashTable,случайный,поиск,3,3.500000002532033e-05 -HashTable,случайный,удаление,3,2.0599999515980016e-05 -HashTable,случайный,вставка,4,0.0010044999999081483 -HashTable,случайный,поиск,4,3.1800000215298496e-05 -HashTable,случайный,удаление,4,1.700000029813964e-05 -HashTable,случайный,вставка,5,0.001006999999844993 -HashTable,случайный,поиск,5,3.1599999601894524e-05 -HashTable,случайный,удаление,5,1.649999921937706e-05 -HashTable,отсортированный,вставка,1,0.0009728999993967591 -HashTable,отсортированный,поиск,1,3.0100000003585592e-05 -HashTable,отсортированный,удаление,1,1.9299999621580355e-05 -HashTable,отсортированный,вставка,2,0.0009723000002850313 -HashTable,отсортированный,поиск,2,2.9599999834317714e-05 -HashTable,отсортированный,удаление,2,1.919999976962572e-05 -HashTable,отсортированный,вставка,3,0.0009663999999247608 -HashTable,отсортированный,поиск,3,3.0500000320898835e-05 -HashTable,отсортированный,удаление,3,1.9699999938893598e-05 -HashTable,отсортированный,вставка,4,0.0011242000000493135 -HashTable,отсортированный,поиск,4,3.400000059627928e-05 -HashTable,отсортированный,удаление,4,2.080000012938399e-05 -HashTable,отсортированный,вставка,5,0.0009773000001587206 -HashTable,отсортированный,поиск,5,3.100000049016671e-05 -HashTable,отсортированный,удаление,5,1.9699999938893598e-05 -BST,случайный,вставка,1,0.004384899999422487 -BST,случайный,поиск,1,0.0001329000006080605 -BST,случайный,удаление,1,8.230000003095483e-05 -BST,случайный,вставка,2,0.004304400000364694 -BST,случайный,поиск,2,0.00014240000018617138 -BST,случайный,удаление,2,8.129999969241908e-05 -BST,случайный,вставка,3,0.004376699999738776 -BST,случайный,поиск,3,0.00014179999925545417 -BST,случайный,удаление,3,8.269999943877338e-05 -BST,случайный,вставка,4,0.004673599999478029 -BST,случайный,поиск,4,0.0001511999998911051 -BST,случайный,удаление,4,0.00012150000020483276 -BST,случайный,вставка,5,0.004335399999945366 -BST,случайный,поиск,5,0.00013080000007903436 -BST,случайный,удаление,5,7.93999997767969e-05 -BST,отсортированный,вставка,1,0.7882552000000942 -BST,отсортированный,поиск,1,0.01960369999960676 -BST,отсортированный,удаление,1,0.013939499999651161 -BST,отсортированный,вставка,2,0.7601769000002605 -BST,отсортированный,поиск,2,0.019820599999547994 -BST,отсортированный,удаление,2,0.01359989999946265 -BST,отсортированный,вставка,3,0.741146899999876 -BST,отсортированный,поиск,3,0.018209700000625162 -BST,отсортированный,удаление,3,0.012622499999451975 -BST,отсортированный,вставка,4,0.7348717000004399 -BST,отсортированный,поиск,4,0.01830170000084763 -BST,отсортированный,удаление,4,0.012606900000719179 -BST,отсортированный,вставка,5,0.7420961000007082 -BST,отсортированный,поиск,5,0.018224400000690366 -BST,отсортированный,удаление,5,0.012539400000605383 +LinkedList,случайный,вставка,1,0.11277499999999918 +LinkedList,случайный,поиск,1,0.006451900000001842 +LinkedList,случайный,удаление,1,0.003666800000019066 +LinkedList,случайный,вставка,2,0.10957519999999477 +LinkedList,случайный,поиск,2,0.0064522000000124535 +LinkedList,случайный,удаление,2,0.003728399999999965 +LinkedList,случайный,вставка,3,0.109341000000029 +LinkedList,случайный,поиск,3,0.006500899999991816 +LinkedList,случайный,удаление,3,0.0038011999999980617 +LinkedList,случайный,вставка,4,0.1110247999999956 +LinkedList,случайный,поиск,4,0.006476099999986218 +LinkedList,случайный,удаление,4,0.0036711999999852196 +LinkedList,случайный,вставка,5,0.11070879999999761 +LinkedList,случайный,поиск,5,0.0064365000000066175 +LinkedList,случайный,удаление,5,0.003677400000015041 +LinkedList,отсортированный,вставка,1,0.11145989999999983 +LinkedList,отсортированный,поиск,1,0.005919100000028266 +LinkedList,отсортированный,удаление,1,0.004607999999961976 +LinkedList,отсортированный,вставка,2,0.11035959999998113 +LinkedList,отсортированный,поиск,2,0.005787800000007337 +LinkedList,отсортированный,удаление,2,0.004521399999987352 +LinkedList,отсортированный,вставка,3,0.11167460000001483 +LinkedList,отсортированный,поиск,3,0.006033900000034009 +LinkedList,отсортированный,удаление,3,0.004642099999955462 +LinkedList,отсортированный,вставка,4,0.11137540000004265 +LinkedList,отсортированный,поиск,4,0.0057623999999805164 +LinkedList,отсортированный,удаление,4,0.004488399999956982 +LinkedList,отсортированный,вставка,5,0.11472939999998744 +LinkedList,отсортированный,поиск,5,0.005918899999983296 +LinkedList,отсортированный,удаление,5,0.004527400000029047 +HashTable,случайный,вставка,1,0.0012038000000416105 +HashTable,случайный,поиск,1,3.46000000490676e-05 +HashTable,случайный,удаление,1,2.0000000006348273e-05 +HashTable,случайный,вставка,2,0.0010017999999831773 +HashTable,случайный,поиск,2,3.1499999977313564e-05 +HashTable,случайный,удаление,2,1.720000000204891e-05 +HashTable,случайный,вставка,3,0.0010786999999936597 +HashTable,случайный,поиск,3,3.4999999968476914e-05 +HashTable,случайный,удаление,3,1.9199999996999395e-05 +HashTable,случайный,вставка,4,0.0009729999999876782 +HashTable,случайный,поиск,4,3.090000001293447e-05 +HashTable,случайный,удаление,4,1.7399999990175274e-05 +HashTable,случайный,вставка,5,0.0009918999999740663 +HashTable,случайный,поиск,5,3.049999997983832e-05 +HashTable,случайный,удаление,5,1.6399999992700032e-05 +HashTable,отсортированный,вставка,1,0.0009690999999634187 +HashTable,отсортированный,поиск,1,3.5900000000310683e-05 +HashTable,отсортированный,удаление,1,1.8599999975776882e-05 +HashTable,отсортированный,вставка,2,0.0009684999999990396 +HashTable,отсортированный,поиск,2,3.0100000003585592e-05 +HashTable,отсортированный,удаление,2,1.759999997830164e-05 +HashTable,отсортированный,вставка,3,0.001049399999999423 +HashTable,отсортированный,поиск,3,3.1100000001060835e-05 +HashTable,отсортированный,удаление,3,1.8299999965165625e-05 +HashTable,отсортированный,вставка,4,0.000957400000004327 +HashTable,отсортированный,поиск,4,2.9900000015459227e-05 +HashTable,отсортированный,удаление,4,1.7500000012660166e-05 +HashTable,отсортированный,вставка,5,0.0009610000000179753 +HashTable,отсортированный,поиск,5,2.9500000039206498e-05 +HashTable,отсортированный,удаление,5,1.770000000078653e-05 +BST,случайный,вставка,1,0.004438699999980145 +BST,случайный,поиск,1,0.00013129999996408515 +BST,случайный,удаление,1,8.220000000846994e-05 +BST,случайный,вставка,2,0.004387300000018968 +BST,случайный,поиск,2,0.00012960000003658934 +BST,случайный,удаление,2,7.93000000385291e-05 +BST,случайный,вставка,3,0.004303200000038032 +BST,случайный,поиск,3,0.0001283999999941443 +BST,случайный,удаление,3,8.050000002413071e-05 +BST,случайный,вставка,4,0.004263700000024073 +BST,случайный,поиск,4,0.00012770000000728032 +BST,случайный,удаление,4,7.650000003422974e-05 +BST,случайный,вставка,5,0.004260499999986678 +BST,случайный,поиск,5,0.00012939999999161955 +BST,случайный,удаление,5,7.969999995793842e-05 +BST,отсортированный,вставка,1,0.7347394000000236 +BST,отсортированный,поиск,1,0.018492599999945014 +BST,отсортированный,удаление,1,0.013188500000012482 +BST,отсортированный,вставка,2,0.7407673999999815 +BST,отсортированный,поиск,2,0.018303899999978057 +BST,отсортированный,удаление,2,0.012820200000021487 +BST,отсортированный,вставка,3,0.7382302000000323 +BST,отсортированный,поиск,3,0.01834120000000894 +BST,отсортированный,удаление,3,0.012760500000013053 +BST,отсортированный,вставка,4,0.7377933000000212 +BST,отсортированный,поиск,4,0.01829400000002579 +BST,отсортированный,удаление,4,0.012722399999972822 +BST,отсортированный,вставка,5,0.7360582999999679 +BST,отсортированный,поиск,5,0.01833809999999403 +BST,отсортированный,удаление,5,0.012751900000012029 diff --git a/sorokinfi/427.md b/sorokinfi/427.md deleted file mode 100644 index f2b1dc80..00000000 --- a/sorokinfi/427.md +++ /dev/null @@ -1,348 +0,0 @@ -import csv -import random -import sys -import time -from collections import defaultdict -import pandas as pd -import matplotlib.pyplot as plt - -# увеличиваем лимит рекурсии -sys.setrecursionlimit(25000) - - -# 1. связный список, узел: {'name': 'Имя', 'phone': '123', 'next': None} - -# проходит до конца и добавляет в конец -def ll_insert(head, name, phone): - new_node = {'name': name, 'phone': phone, 'next': None} - if head is None: - return new_node - current = head - while current['next'] is not None: - current = current['next'] - current['next'] = new_node - return head - -# ищет узел, возвращает телефон или None -def ll_find(head, name): - current = head - while current is not None: - if current['name'] == name: - return current['phone'] - current = current['next'] - return None - -# удаляет узел, возвращает новую голову -def ll_delete(head, name): - if head is None: - return None - if head['name'] == name: - return head['next'] - - current = head - while current['next'] is not None: - if current['next']['name'] == name: - current['next'] = current['next']['next'] - return head - current = current['next'] - return head - -# собирает все записи в список и сортирует -def ll_list_all(head): - records = [] - current = head - while current is not None: - records.append((current['name'], current['phone'])) - current = current['next'] - records.sort(key=lambda x: x[0]) - return records - - -# 2. хеш-таблица - -# хеш-функция для вычисления бекета -def ht_hash(name, size): - return hash(name) % size - -# вычисляет индекс, вызывает ll_insert для соответствующего бакета -def ht_insert(buckets, name, phone): - size = len(buckets) - idx = ht_hash(name, size) - buckets[idx] = ll_insert(buckets[idx], name, phone) - -# поиск по хеш-таблице -def ht_find(buckets, name): - size = len(buckets) - idx = ht_hash(name, size) - return ll_find(buckets[idx], name) - -# удаление из хеш-таблицы -def ht_delete(buckets, name): - size = len(buckets) - idx = ht_hash(name, size) - buckets[idx] = ll_delete(buckets[idx], name) - -# собирает все записи из всех бакетов и сортирует -def ht_list_all(buckets): - all_records = [] - for head in buckets: - current = head - while current is not None: - all_records.append((current['name'], current['phone'])) - current = current['next'] - all_records.sort(key=lambda x: x[0]) - return all_records - - -# 3. двоичное дерево поиска -# узел — словарь: {'name': 'Имя', 'phone': '123', 'left': None, 'right': None} - -# рекурсивно или итеративно вставляет, возвращает новый корень (если корень меняется) -def bst_insert(root, name, phone): - if root is None: - return {'name': name, 'phone': phone, 'left': None, 'right': None} - - if name < root['name']: - root['left'] = bst_insert(root['left'], name, phone) - elif name > root['name']: - root['right'] = bst_insert(root['right'], name, phone) - else: - root['phone'] = phone - return root - -# поиск -def bst_find(root, name): - if root is None: - return None - if name == root['name']: - return root['phone'] - elif name < root['name']: - return bst_find(root['left'], name) - else: - return bst_find(root['right'], name) - -# удаление, возвращает новый корень -def bst_delete(root, name): - if root is None: - return None - - if name < root['name']: - root['left'] = bst_delete(root['left'], name) - elif name > root['name']: - root['right'] = bst_delete(root['right'], name) - else: - # одна ветвь или её отсутствие - if root['left'] is None: - return root['right'] - if root['right'] is None: - return root['left'] - # две ветви - successor = root['right'] - while successor['left'] is not None: - successor = successor['left'] - - root['name'] = successor['name'] - root['phone'] = successor['phone'] - root['right'] = bst_delete(root['right'], successor['name']) - - return root - -# центрированный обход (рекурсивно собирает записи в отсортированном порядке) -def bst_list_all(root): - records = [] - def _inorder(node): - if node is not None: - _inorder(node['left']) - records.append((node['name'], node['phone'])) - _inorder(node['right']) - _inorder(root) - return records - - -# 4. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ - -def run_experiments(): - N = 3000 - HASH_SIZE = 1007 - - print(f"генерация тестовых данных для N = {N}...") - records_sorted = [(f"User_{i:05d}", f"+7999123{i:04d}") for i in range(N)] - records_shuffled = records_sorted.copy() - random.seed(42) - random.shuffle(records_shuffled) - - # подготовка выборок - existing_sample = [r[0] for r in random.sample(records_sorted, min(100, N))] - non_existing_sample = [f"None_{i}" for i in range(10)] - search_names = existing_sample + non_existing_sample - - delete_names = [r[0] for r in random.sample(records_sorted, min(50, N))] - csv_rows = [["структура", "режим", "операция", "повторение", "время (сек)"]] - modes = [("случайный", records_shuffled), ("отсортированный", records_sorted)] - - print("запуск экспериментов (5 повторений для каждого режима)") - -# ТЕСТ: СВЯЗНЫЙ СПИСОК - - for mode_name, data in modes: - for rep in range(1, 6): - head = None - t_start = time.perf_counter() - for name, phone in data: - head = ll_insert(head, name, phone) - t_end = time.perf_counter() - csv_rows.append(["LinkedList", mode_name, "вставка", rep, t_end - t_start]) - - t_start = time.perf_counter() - for name in search_names: - ll_find(head, name) - t_end = time.perf_counter() - csv_rows.append(["LinkedList", mode_name, "поиск", rep, t_end - t_start]) - - t_start = time.perf_counter() - for name in delete_names: - head = ll_delete(head, name) - t_end = time.perf_counter() - csv_rows.append(["LinkedList", mode_name, "удаление", rep, t_end - t_start]) - -# ТЕСТ: ХЕШ-ТАБЛИЦА - - for mode_name, data in modes: - for rep in range(1, 6): - buckets = [None] * HASH_SIZE - t_start = time.perf_counter() - for name, phone in data: - ht_insert(buckets, name, phone) - t_end = time.perf_counter() - csv_rows.append(["HashTable", mode_name, "вставка", rep, t_end - t_start]) - - t_start = time.perf_counter() - for name in search_names: - ht_find(buckets, name) - t_end = time.perf_counter() - csv_rows.append(["HashTable", mode_name, "поиск", rep, t_end - t_start]) - - t_start = time.perf_counter() - for name in delete_names: - ht_delete(buckets, name) - t_end = time.perf_counter() - csv_rows.append(["HashTable", mode_name, "удаление", rep, t_end - t_start]) - -# ТЕСТ: ДЕРЕВО ПОИСКА (BST) - - for mode_name, data in modes: - for rep in range(1, 6): - root = None - t_start = time.perf_counter() - for name, phone in data: - root = bst_insert(root, name, phone) - t_end = time.perf_counter() - csv_rows.append(["BST", mode_name, "вставка", rep, t_end - t_start]) - - t_start = time.perf_counter() - for name in search_names: - bst_find(root, name) - t_end = time.perf_counter() - csv_rows.append(["BST", mode_name, "поиск", rep, t_end - t_start]) - - t_start = time.perf_counter() - for name in delete_names: - root = bst_delete(root, name) - t_end = time.perf_counter() - csv_rows.append(["BST", mode_name, "удаление", rep, t_end - t_start]) - -# сохранение в csv - with open("results.csv", "w", newline="", encoding="utf-8") as f: - writer = csv.writer(f) - writer.writerows(csv_rows) - print("\nвсе замеры сохранены в файл 'results.csv'.") - - show_summary(csv_rows) - -# функция для подсчета и вывода среднего времени -def show_summary(rows): - summary = defaultdict(list) - for row in rows[1:]: - struct, mode, op, rep, elapsed = row - summary[(struct, mode, op)].append(elapsed) - - print("\nСВОДНЫЕ РЕЗУЛЬТАТЫ (СРЕДНЕЕ ВРЕМЯ ИЗ 5 ЗАПУСКОВ)") - print(f"{'структура':<12} | {'режим данных':<15} | {'операция':<10} | {'время (сек)':<12}") - print("-" * 59) - for (struct, mode, op), times in sorted(summary.items()): - avg_time = sum(times) / len(times) - print(f"{struct:<12} | {mode:<15} | {op:<10} | {avg_time:.6f}") - - - -# 5. АНАЛИЗ РЕЗУЛЬТАТОВ - -def plot_results(csv_filename="results.csv"): - print("построение графика") - try: - df = pd.read_csv(csv_filename) - - df_insert = df[df["операция"] == "вставка"] - - pivot_df = df_insert.pivot_table( - index="структура", - columns="режим", - values="время (сек)", - aggfunc="mean" - ) - - pivot_df.plot(kind="bar", figsize=(10, 6), color=['#1f77b4', '#ff7f0e']) - - plt.title("сравнение времени вставки (N=3000)") - plt.ylabel("среднее время выполнения (сек)") - plt.xlabel("структура данных") - plt.xticks(rotation=0) - plt.grid(axis='y', linestyle='--', alpha=0.7) - plt.savefig("benchmark_chart.png") - print("график сохранен как benchmark_chart.png") - plt.show() - - except FileNotFoundError: - print(f"файл {csv_filename} не найден. сначала запустите тесты.") - - -def print_report(): - report = """ - - 5. АНАЛИЗ РЕЗУЛЬТАТОВ ЭКСПЕРИМЕНТОВ - -1. Влияние порядка входных данных на скорость вставки в BST: - - На случайных данных BST строится сбалансированным. Высота дерева составляет - примерно O(log N), поэтому вставка происходит почти мгновенно. - - На отсортированных данных происходит ДЕГРАДАЦИЯ дерева. Каждый элемент больше - предыдущего и вставляется строго вправо. Дерево вырождается в связный список. - Сложность возрастает до O(N), что отчетливо видно по гигантскому пику на графике. - -2. Чувствительность Хеш-таблицы к порядку: - - Хеш-таблица НЕ ЧУВСТВИТЕЛЬНА к порядку данных. Математическая хеш-функция - превращает любое имя в хаотичный индекс и равномерно распределяет записи - по бакетам. В обоих режимах операции выполняются за константное время O(1). - -3. Почему связный список всегда медленен при поиске: - - У связного списка нет индексов для прямого доступа. Поиск всегда линейный O(N) - — алгоритм вынужден последовательно перебирать элементы от головы к хвосту. - -4. Как удаление работает в каждой структуре: - - Связный список: O(N) затрачивается на линейный поиск узла, само удаление — O(1). - - Хеш-таблица: O(1) нахождение бакета по хешу, удаление из цепочки коллизий мгновенно. - - BST: В среднем O(log N), в худшем O(N). Требует поиска узла и перестройки связей - (замена удаляемого узла на его потомка или минимальный элемент правого поддерева). - -ВЫВОД: - - ДЛЯ ЧАСТЫХ ВСТАВОК И ПОИСКА: Идеально подходит Хеш-таблица благодаря скорости O(1). - - ДЛЯ ПОЛУЧЕНИЯ ДАННЫХ В ПОРЯДКЕ (АЛФАВИТНОМ): Стоит выбирать Двоичное дерево поиска - (BST), так как обход дерева (In-order traversal) сразу выдает отсортированные данные. - """ - print(report) - -if __name__ == "__main__": - run_experiments() - plot_results() - print_report() - - diff --git a/sorokinfi/427.py b/sorokinfi/427.py index e46818fa..9048545b 100644 --- a/sorokinfi/427.py +++ b/sorokinfi/427.py @@ -350,6 +350,29 @@ if __name__ == "__main__": # ЗАДАНИЕ 2: ПОИСК ВЫХОДА ИЗ ЛАБИРИНТА +# поиск выхода из лабиринта +class Maze: + def __init__(self, grid): + self.grid = grid + self.rows = len(grid) + self.cols = len(grid[0]) if self.rows > 0 else 0 + self.start = self._find_point('S') + self.end = self._find_point('E') + + def _find_point(self, char): + for r in range(self.rows): + for c in range(self.cols): + if self.grid[r][c] == char: return (r, c) + return None + + def is_walkable(self, r, c): + return 0 <= r < self.rows and 0 <= c < self.cols and self.grid[r][c] != '#' + +class PathfindingStrategy(ABC): + @abstractmethod + def solve(self, maze: Maze): pass + + # стратегия №1: BFS class BFSStrategy(PathfindingStrategy): def solve(self, maze: Maze): @@ -369,11 +392,80 @@ class BFSStrategy(PathfindingStrategy): while queue: current, path = queue.popleft() if current == maze.end: - return path + return path, len(visited) # возвращаем путь и размер посещенных клеток r, c = current for dr, dc in directions: nr, nc = r + dr, c + dc if maze.is_walkable(nr, nc) and (nr, nc) not in visited: visited.add((nr, nc)) queue.append(((nr, nc), path + [(nr, nc)])) + return None, len(visited) + + +# стратегия №2: DFS +class DFSStrategy(PathfindingStrategy): + def solve(self, maze: Maze): + if not maze.start or not maze.end: + return None, 0 + + # инициализация структур данных + stack = [(maze.start, [maze.start])] + visited = set() + directions = [(-1, 0), (1, 0), (0, -1), (0, 1)] + + # основной цикл обхода лабиринта + while stack: + current, path = stack.pop() + if current in visited: + continue + visited.add(current) + if current == maze.end: + return path, len(visited) + r, c = current + for dr, dc in directions: + nr, nc = r + dr, c + dc + if maze.is_walkable(nr, nc): + stack.append(((nr, nc), path + [(nr, nc)])) + return None, len(visited) + +class MazeSolver: + def __init__(self, strategy: PathfindingStrategy): self._strategy = strategy + def set_strategy(self, strategy: PathfindingStrategy): self._strategy = strategy + def solve_maze(self, maze: Maze): return self._strategy.solve(maze) + +# подготовка тестовых лабиринтов +class MazeFactory: + @staticmethod + def _generate_random_grid(width, height, wall_chance=0.25, has_exit=True): + # вспомогательный метод генерации сетки лабиринта заданной сложности + grid = [[" " for _ in range(width)] for _ in range(height)] + for r in range(height): + for c in range(width): + if random.random() < wall_chance: grid[r][c] = "#" + grid[0][0] = "S" + if has_exit: grid[height-1][width-1] = "E" + else: grid[height-1][width-1] = "#" + return grid + + @staticmethod + def create_maze(maze_type): + random.seed(42) + if maze_type == "маленький (10x10)": + return Maze(MazeFactory._generate_random_grid(10, 10, wall_chance=0.15)) + elif maze_type == "средний (50x50)": + return Maze(MazeFactory._generate_random_grid(50, 50, wall_chance=0.25)) + elif maze_type == "большой (100x100)": + return Maze(MazeFactory._generate_random_grid(100, 100, wall_chance=0.3)) + elif maze_type == "пустой": + grid = [[" " for _ in range(30)] for _ in range(30)] + grid[0][0], grid[29][29] = "S", "E" + return Maze(grid) + elif maze_type == "без выхода": + return Maze(MazeFactory._generate_random_grid(20, 20, wall_chance=0.2, has_exit=False)) return None + +# экспериментальная часть лабиринтов +def run_maze_experiments(): + maze_types = ["маленький (10x10)", "средний (50x50)", "большой (100x100)", "пустой", "без выхода"] + strategies = [("BFS", BFSStrategy()), ("DFS", DFSStrategy())] + From 2ff3ae7e2a634800e1d9fe945bfaa1c5b5b47845 Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Mon, 25 May 2026 02:57:25 +0300 Subject: [PATCH 07/12] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=202:=20=D1=8D=D0=BA=D1=81=D0=BF=D0=B5=D1=80=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D1=87?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D1=8C,=20=D0=B2=D0=B8=D0=B7=D1=83=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F,=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D1=8B=20=D0=B8=20=D0=B3=D0=BB=D0=B0=D0=B2?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D0=BC=D0=B5=D0=BD=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sorokinfi/427.py | 111 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 106 insertions(+), 5 deletions(-) diff --git a/sorokinfi/427.py b/sorokinfi/427.py index 9048545b..8a00d895 100644 --- a/sorokinfi/427.py +++ b/sorokinfi/427.py @@ -6,6 +6,10 @@ from collections import defaultdict, deque import pandas as pd import matplotlib.pyplot as plt from abc import ABC, abstractmethod +import os + +current_dir = os.path.dirname(os.path.abspath(__file__)) +os.chdir(current_dir) # увеличиваем лимит рекурсии sys.setrecursionlimit(25000) @@ -342,12 +346,11 @@ def print_report(): """ print(report) -if __name__ == "__main__": +def run_task_1(): run_experiments() plot_results() print_report() - # ЗАДАНИЕ 2: ПОИСК ВЫХОДА ИЗ ЛАБИРИНТА # поиск выхода из лабиринта @@ -379,7 +382,7 @@ class BFSStrategy(PathfindingStrategy): # проверка входных данных if not maze.start or not maze.end: - return None + return None, 0 # инициализация структур данных queue = deque([(maze.start, [maze.start])]) @@ -443,8 +446,12 @@ class MazeFactory: for c in range(width): if random.random() < wall_chance: grid[r][c] = "#" grid[0][0] = "S" - if has_exit: grid[height-1][width-1] = "E" - else: grid[height-1][width-1] = "#" + if has_exit: + grid[height-1][width-1] = "E" + else: + grid[height-1][width-1] = "E" + if height > 1: grid[height-1][width-2] = "#" + if width > 1: grid[height-2][width-1] = "#" return grid @staticmethod @@ -468,4 +475,98 @@ class MazeFactory: def run_maze_experiments(): maze_types = ["маленький (10x10)", "средний (50x50)", "большой (100x100)", "пустой", "без выхода"] strategies = [("BFS", BFSStrategy()), ("DFS", DFSStrategy())] + csv_rows = [["лабиринт", "стратегия", "время_мс", "посещено_клеток", "длина_пути"]] + + print("\nзапуск экспериментов(5 повторений)") + + for m_type in maze_types: + maze_obj = MazeFactory.create_maze(m_type) + for strat_name, strategy in strategies: + solver = MazeSolver(strategy) + + times = [] + visited_cells = 0 + path_len = 0 + + # запускаем по 5 раз для усреднения времени + for rep in range(5): + t_start = time.perf_counter() + path, visited = solver.solve_maze(maze_obj) + t_end = time.perf_counter() + + times.append((t_end - t_start) * 1000) # переводим в миллисекунды + visited_cells = visited + path_len = len(path) if path else 0 + + avg_time_ms = sum(times) / len(times) + csv_rows.append([m_type, strat_name, round(avg_time_ms, 4), visited_cells, path_len]) + # сохраняем в CSV + with open("maze_results.csv", "w", newline="", encoding="utf-8") as f: + writer = csv.writer(f) + writer.writerows(csv_rows) + print("Результаты сохранены в 'maze_results.csv'") + + df = pd.DataFrame(csv_rows[1:], columns=csv_rows[0]) + print("\nТАБЛИЦА СРАВНЕНИЯ АЛГОРИТМОВ ПОИСКА:") + print(df.to_string(index=False)) + + # визуализация графиков + print("\nпостроение графиков эффективности") + for m_type in maze_types: + sub_df = df[df["лабиринт"] == m_type] + + fig, ax1 = plt.subplots(figsize=(7, 4)) + ax2 = ax1.twinx() + + sub_df.plot(kind="bar", x="стратегия", y="время_мс", ax=ax1, position=0, width=0.2, color="blue", legend=False) + sub_df.plot(kind="bar", x="стратегия", y="посещено_клеток", ax=ax2, position=1, width=0.2, color="orange", legend=False) + + ax1.set_ylabel("время выполнения (мс)", color="blue") + ax2.set_ylabel("посещено клеток (ед)", color="orange") + plt.title(f"эффективность на лабиринте: {m_type}") + ax1.set_xticklabels(sub_df["стратегия"], rotation=0) + + lines1, labels1 = ax1.get_legend_handles_labels() + lines2, labels2 = ax2.get_legend_handles_labels() + ax1.legend(lines1 + lines2, ["время (мс)", "посещено клеток"], loc="upper center") + + plt.tight_layout() + filename = f"maze_chart_{m_type.replace(' ', '_').replace('(', '').replace(')', '')}.png" + plt.savefig(filename) + plt.close() + print("графики для каждого типа лабиринта сохранены в текущую папку") + +def print_maze_report(): + print(""" + ВЫВОДЫ ПО ИТОГАМ АНАЛИЗА ЛАБИРИНТОВ: + 1. Маленький и Пустой лабиринты: Оба алгоритма работают мгновенно. Однако в пустом + пространстве BFS проверяет почти все клетки «волной» до достижения цели, в то время + как DFS может случайно угадать прямую траекторию быстрее, но выдать неоптимальный путь. + 2. Средний и Большой лабиринты (с тупиками): BFS стабильно находит самый КОРОТКИЙ путь, + однако тратит много памяти и времени на посещение клеток. DFS работает непредсказуемо, + его путь часто длиннее в разы, так как он «плутает» по тупикам. + 3. Лабиринт без выхода: Оба алгоритма вынуждены совершить полный перебор графа. + Количество посещенных клеток у них совпадает и равняется общему числу доступных клеток. + """) + +def run_task_2(): + run_maze_experiments() + print_maze_report() + +# главное меню + +def main(): + while True: + print("МЕНЮ ЛАБОРАТОРНЫХ РАБОТ") + print("1. Задание 1: структуры данных") + print("2. Задание 2: эксперименты с Лабиринтами") + print("0. Выход") + choice = input("Введите номер задания: ") + if choice == '1': run_task_1() + elif choice == '2': run_task_2() + elif choice == '0': break + else: print("Ошибка ввода.") + +if __name__ == "__main__": + main() \ No newline at end of file From 6333b7a65c753a833438f169406fef34024a0d78 Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Fri, 26 Jun 2026 16:44:31 +0300 Subject: [PATCH 08/12] Update lab --- benchmark_chart.png | Bin 30806 -> 30654 bytes results.csv | 180 +++++++++++------------ sorokinfi/benchmark_chart.png | Bin 0 -> 31669 bytes sorokinfi/maze_chart_без_выхода.png | Bin 0 -> 24828 bytes sorokinfi/maze_chart_большой_100x100.png | Bin 0 -> 28219 bytes sorokinfi/maze_chart_маленький_10x10.png | Bin 0 -> 25452 bytes sorokinfi/maze_chart_пустой.png | Bin 0 -> 22270 bytes sorokinfi/maze_chart_средний_50x50.png | Bin 0 -> 28587 bytes sorokinfi/maze_results.csv | 11 ++ sorokinfi/results.csv | 91 ++++++++++++ 10 files changed, 192 insertions(+), 90 deletions(-) create mode 100644 sorokinfi/benchmark_chart.png create mode 100644 sorokinfi/maze_chart_без_выхода.png create mode 100644 sorokinfi/maze_chart_большой_100x100.png create mode 100644 sorokinfi/maze_chart_маленький_10x10.png create mode 100644 sorokinfi/maze_chart_пустой.png create mode 100644 sorokinfi/maze_chart_средний_50x50.png create mode 100644 sorokinfi/maze_results.csv create mode 100644 sorokinfi/results.csv diff --git a/benchmark_chart.png b/benchmark_chart.png index 19c11bab205be152221dde948b32ceafc4d02367..2672ac911e36b49d139ed7877a9d43e4dcb026d9 100644 GIT binary patch literal 30654 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 literal 30806 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 literal 0 HcmV?d00001 diff --git a/sorokinfi/maze_chart_большой_100x100.png b/sorokinfi/maze_chart_большой_100x100.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4facf17d80e9eb02d46939f1fe110b3add6e96 GIT binary patch literal 28219 zcmb@uby(A3`!~!;Q9?pOQdCg7q)SDSR#8H_LAqn4h=`OZG8zoPpt~8}AxOiB0h5lw z#>n>?-uLf)-shk9`Q!08JUp1=yY2d3*Li;GT;yXd70QcOFA@+CP^vyseo8<3^Of=;CfG#QkvC09=LK^^t)G0Rgo+{x9UaVy-;_fm5!k^4({?X&WU-PT40*wi_y ze0R90SfxUGU_xuY@7`+Pn!7?1nVl->V)5tulUt?@azo!#!}twKvh<5B^lLnS#9FhC zJ4$F|$T5%n(o;FyTZzA|!%ffo?1E|F{__%M+3z7caisM?Z{XcgpBcB;<-*I^18g z8_a@`Qn9}E-(NM~oUYcd^A$-HFnn|M&da|skzuF|C{I(m`R7id6;RC2&x)GmP+2)ots=ZDVkLQ_T9Qf9y|d4}II^Ws3} ztm9YXT5l1P{J(#G(3M#C*t~+1aRgjuk#yc0$AEVZKf%t%mDvxccu}*0M$m~-(8vx^2|m!Egx{`};aGvO)9t623$)GQZpM`Nvdw9<;K`_m>ye?I4fRZy^kP3RKD!+&ywl??qG%O>ks>~*+jKNWt7 zv2JyG+k2|mPkz*PC!Epb?S6y$P*wtIBsz=Mgpl`fR!En5Z>nTr^$ow{gPmJWetreM zI}4pjBG*lVPrN=Bs_^ONDaCU=&}cA;W0$|o%)GK&N68|QWzqJIJGb!pFWoBdjTD0h zrzwd9KD~aUjF-bXlm$lB3%hkwl`fXxZ?DXX6TbX|q2?s&IH3W~{7uYE;w>0xzQ zhq`G16}InXi@L+_nFFbvA(ky!)GUpVc8%#hD;AX3_WmaU!%?Gmp6#gZr0S#PRF__K zUSQewkbkz?r}u)!GOxqK=W(daj`-^;U*v+p>GZ`+*!JC2s1SJah4>J=<-!hb?4#(y zF~8cnG}9an=GF(E1N#XTyI@;>RsG1_nJ!z2%i9q{W2RhGaCNOWYOud?O#Y>8Cf-Y^ zTQ_bHd##P$*)q1XyTuM&7eQBh+OVnH!UT=)^`}XHb)1r6Kkh|;5S(RPF49U7?^?nI z#O7i%j{26SbB-|D=`u@0-Y19qf|<{Q`ZqBdvW@sHBgXDK2SFcoAmL6fvkmfUv0{q0 zDsk*FJAw0A;_Q_HxZULaZ6o;puCH%RLZi#9f``3=!)V^}xEKnXn;EoQwfWZsh8B6Z z>C-!mirCtjd0LwErpfve1OMCoEpBX^Oy+i}UjBfye87Fwe8;b1DeQ<-pmkUv19YyYsBTM5EK6NuGv!fX; zFpgTED3v``0wxq>{gv6JBq`Ik7<3foKM1O@-?->0X*&PA!fsYz1DS}5L72C zElf)UwWL#f9LLtd{g%1I@nTCG=Ba?gmE71sOV=L7<&CLINr(h`l3OFmY_!;YN$s0f z`Xti9f@<70Gw==me9(!DxZ1qGC+oc~To{UT>%H?W=~RC=Nh4YG=41yh1=kT*=rvhp z|98CjD=rMRLOnX8UswrBA(OQGH{8O`d;~|zSkG9xw1>@b>=tv_6?UT2ra8FSuG+>7$!*_w4Zrn9i^4ATXj<_R78l)fC{rTbIzk+Yymu{TOH zzPVf|@8!r(o5%B;Gqrs%kBYC|pZIFakgx~dLHcp%t&mTO$G=rLlCd#tv=p1n(?Q2O z9d45!4wbDhg ze&jzv|5_Fu21S~6!`JUN6tiC8FjkO!WZ4mW2bSx-IlW?s-W%3VMeT@w$_A&&Cbc7$ zO$-Y*C-rc zqP}jf78^R~_-Lz9aIH+xr^Z9!;pXaSz5^eqcmjf7par?=$$AAwkwcqHFw=@`?M%du zUv;XS-|qNir3(iVy3*&JhuRq`-cPPTG=lazl_Ke~sW0KXZ3Z*)GErM94&M8%^3^f5 zBdn)Ani;7Ns)^Ufo=$AymYe61F*xKMGS!;cjZ8Vep`||fhZV_5cr)%eH8o~wQ2z3HLZb++RKgIaTf56@-D{f}-<7xW&t`*;^8KRqb0X!% z*JG}kyjrNVTQjT(uUD-*wl-#1MmM*#^euT`658?eXBSf6anJBtc@InSv+wqst-AIK<(prd? zUzYO@pj>Aw-KKTx`f!sC7NDIWXYWrmVc7YkuYcj`oiN|(*~vlxa$0fKqkZ!7;p1U0 z^A5JMn9&jep;TztQM-6}Qmc*ZdU2`3a4W(DBffj_q2~_c0pbWWWNtcY3=Rx3>Sk_%d21E~JD#lfrx$vpfm0~CS0*|M6eTH#9QS$ZCLYAvD zUZZ99Ivy11P@9QMonub>Z%Y|d8;{mCE4F=7>M?cG13lBlfdc}g4m%Z+BZi1mXaDA3 z7uM6Qw!TY_8}{$|?zru*K9B3@o%B)IJQk~|7)3Iem?Le^zzLD~ba{NZA1haI^mn78 zK2V-v?VvgrqH6Y7Ev$8-DU3`r<1>$(`L_G$=lc=8*@)V%k34a>E)0bhZurIW2HI{Q zLw=dM=F`*p*x-OPCq&(Zk&MmzW;k3AU|q{sHZHuz1RpKndxW+K zQWr;`N+V5|3d=x|IXABk^@HOQ+d!O0d)d{TneE*Ik2z$JYNB6Ef8O2&QqNvJul51{ zVTTu$&Q9)=Uy&;wG>peHUn1E3JCVrV#+dwCHtn@?wC}EmbKuJUpV&Cr;0oq6=*P^p zQ`z=_g$#M<7sE>Dw?Zz#k~417!_fzAnJ5F7Hc4!P>ESf`Mb{yhS>Wxmpoe3lxSp?{ zGJE#KNVfun^7qQBHosO*VKDnu9F0}p1aE@@4{>Wxlf@iLSqiS6onjR`PR21w`m(j4fu1T177ojCFHH zN%v8_Nh7P;Q8?R{Mw(@qx4dcMDB>CD*0G_cJ9}S@&2gP?enME5l;L1rDCM!17RG?_ z7fV`jSTBp0dr7MQ~(0h zQ1G&tvyJr|I(DCT5|S>Is-o_V5ooZ{CZf!@K7MLbUYdx$^a^T-72324)T)k4GrOKM zy;QsLZ^`uYkR5y!w7&G)YH2&v;YS2~q;ki|m+8X3&A6?`v&|Yoht?7_`5nOl%dBRz zkM-S%W09p05>f-lp3FMA?oi|3`^__y&U*M`5Z)vpjU_Zc>mOfzMi2JJweIA(xn%9C zHi~L(7QaN5gv{QpCGiT7??0j+QwnP|Y!ymyW7c0G$41o`{btifjrET)>&T*za9$c# z@$S$LZR!;?hu|rD*Y?{j3&aCf|CE}S^MSULnvZK+ig50XX%z( zWKcovUb1p;PNWDwbrm~F$J3W*h0hY}JxgO;-&Y9S1O}?#}<|n5V zvH9-qSVAZ(&N^{Kfa!6KWvs7b&xajs?A_bwzv+!e+W}3My_Qbd5v~CQ!PxY|v~8yC zcLZS;%g2UQ3a1JWU_mr=YhrUz14UrHH|=>f$V&)iUEC5CH=&+51i~yPzFt{4E}P56hjfL}P^ z(yupMueM-jp;ACDJ;>l>mZF>5iTnCIG0(auF&3e2lDMqIL7HZ?bv;hbLd{j=>^+Y( z>BW8?W!v5}WVSLD!GerscT_YLR05Y$*Oh8j)Q_~z7BAv?Rd}c3;81@wlIX|5q4f7o z-oRF+knA>oITMOwroW{;ujLadcBOsW>wQL8_$S&CEPRjV533b7gFBJ$tiMaWe=UEH zb-hi|uI}5WW=KCa4cDqsJa5aL!#X_fXbTY3vPT<1Sa4^4iB%mhe8@RNfsX&Kmt>t< z6E=Q}44QEOZNa_{9-mQPaZ8_0M8m6Jw<9~UUft$9KHm0u-6S%h(6E#}wTM$H*&iEgFa@{7PQt!61Cp~IK~LtP-Pjdp zCUJvI^BnO20N%OZFEjdJLl7@jMqv+8)|-v@i*YkIFpqb842-&acMf*Ya6Y5WPz4={ zqz3Ci=6RTVBJ@TOO=-WEoaAmd1s10F&^KtIcu{2G3W+WMNC#?{30(?rgan-7Wap>v zcN^K6$j=Aus1rBN6;W0WggPwsz$7;gg3xK&qg$88I{0Yoq~pT>@$go9dD7O3FmomTHdp=ZI8lucsn(dMU)-!)(nXFL#_6k_b3(MavZwf~!<`t_&r+OHMQTq&a`M88iMS zJ8QhbXA4mQ^c11?4~G1T&r7USbr8#=`G&=U>g^kB((bKGBG?Um>#jVOI8y+eH6yuD zqK1gXo25kwT5a#HXeLW&UGFZ@03ucFZa|`}|85tLX5?-5DcYNA<3MX-$~N}w=&Vmj z^g;K6*vlkNgP ze<90KHZ8^OvF?gwQESngzbc$(R)^YoF9EPKTtKzI+13A+SoI$b7Mb7Ic^7@uHM;>MrsTjlCj-%*_868v8JwRj4o@Vi6F5qb0Zh%2 z`@BDq|Dyb-G>86ypDnXeqA(te8k@3U2XJD&9=`$Ka!D1jeA9zIFp;XPo$BLNXGopZ zbTE~YFA~$Xruf=|<{P-VIc=JY?mO{tUG8NzjG$uEh!ksJJa*g_Lw5Ph2HL8jcD$DQ zQpb9CZ9WZt1r19nn2%6mp~i2nY5mAzuJxQ2KN5Jb|(RYk{j)o{Hl7F z&s5j53_mai>Db2UJ1Y98g+~$fjDJOD4Bz^YuygT(Q2C)~ zxo1KM^Y;b(U-?GX?Fc>auQFlE|2zQ1Od6W_kerbJ{Krr6Y0ET)1f6a78Vyu+J^t4M zB8Tfeyc^$L;p2M#bCGTL=9XUO1*Ua(EjRqHLd`cO%fADTQKB$@(RWJ(v;Kmk!Km7O zX00y@h_a$?dw-t{cO@dvEaMh6AY1Y_*&@Q@eW{XL^@uv4+TIYmopA5RU59fecU=6X z+Q0WlXacTHLvGhSe}yKqXu>gP-Nef3TkQ86xA7?cX6ma~uV|rq$~QuR8XNCh>xO*8 zOc}7$eT7X^^}|rEwhJj885tQ5rr_-(!pA@r-Vt$y3ND>&+O0_VD4rBEN-mK!_94FMCa#_PU&q{AU8;`XobA}|ob9|9S5 zXGmQLuP2Aj7UPnCKL0go0^PXNanjlO$PfsbPS;gp_r^~rY%|O6*blW@10Fcy2x>$L z?hHshPSPIBWq1)dwqqb&)>i!^cg#lc*^z0&ejupn6@!C=cGxW-QCE!Q8;*gZ_mqWt z7HB}0`-fC)GFBNKnOvcBfU{S;eR~0|vsr&rJ#kzuk>9@7Yb{ZG>2Bpt`io>HX=iS3+% zE6XcH^rTPGL0$4O#~8QuaS@mVpxfNfxoW%~@^Enxw!EQi0iS(kf2j}@FeK3KW2f4p z7%j^+ScO3Ai;EvWr>~9~V&rif64rCk$KeOXcZ2 z1lqanP?L%8d^oW|qwnqHOzd{rSvvMZ3J}L(M;a__KvS(7V=<;^&pHHaU^AW2xc!UW zBzUya#WaEU`9*NGfV@nf(__DmnEF<(4+r2$wxrhE?H}EN#871Sn+s+ZhlCu2-!ZIk z>`b^#XX3YX#p7mo^D6!EQ^W6%ua#0QHw2>lBn88ytAem;XP|r{_)!Y_KvuV^=u%`D z4cck1tNPoUa_17Y;&GAsbI2(T5{;LuVHGZQJ8uj&k5yvBoK1sp)}@*SUxDHB+};7JVBC-TeKCo( zJ*$Zl>zu2^w#fN>pxws?E=y+rb^XJ2_V`8R`}da%D{pg={{niHO)~|RyLHhRkmO(; zKp}p|ChMI9-v^tO11u`az3oktpiY_;r}q(NgZuj;Yys#Reb(~eus4|opDb13={FaU z83dgWekiu%!?nUBG27UQ+}h{4pA}CJh`?csElGp$W5=#0^<-*jx^70A7oGn78fUT8 z{pn!!S79$lE9g68H}AaCD?MO!R#E;?0N&rf-J{GH=EidRr*_Q;B6Mj~@8`3w<9IiP z+vuQ}t9Rticku8+TNK;I1iD$WwVJYa(jfm@jhFxKM&;}RSbK?jfjZ4}nGt>z$Ez_D zsK999b7fkNp3A$(kF%5@Rs$I`i`d%Ck2#vDZ-%nfQ{y{(=TSF3Y#BB2c z3C)Q}ga{G6umzeXSB^%q#cA;N++8u<`AD7&SNj%pw`H9C8=#4%1X>jC&J;QG_mEX1 z(SAWln5RXd$NuVwal@jJK}jp|2*tvLdhZDe!%QrTJgjD;i63t_J8dl_G_g<>JvBdA zh!WBmxY+Z$SmPmB={_VV%x)|1wnp<)t0|;ydYL|=dV0L-h{v+k8PQTg^TitN+w(0u zE!2u;Yoqx#Y;uuk_w4ZC*9T+~ipeUDBo%eNj~=|E7m-&QjR_SO=?e|M1vU>3sNeA- zmJf&NL@e7WJP>Z}^dzV*abH@L^gQsW#(|@gtd`uwHD*3Dj$F$iglAZemM+4af(&dP zuPcNL4BTE6>pw#YiBr~4rH$PdAFlk)*^v~C)e(@J#N=+7r!_U zmNoXEel`fe?O{hMrm4Hpr9_eZ!3ahT01#H{}X=+S*L>1U5!q5Z+@yt;XI zL4u|Y(>DjSlnGV9lKgHA4)*BEY&^?r>r+3fWA%|7h0OzT@3xx%tD~jnqs`iZJwh=i zn>b;pUNY%?G%5?Q|5VO|^5%`_p%(24KTB-~`~#xp%L^M0f37qwapVI~W;q8BjqRwf zpYHUeaPdzCD{2VN<&Ph0)8zJn_Ndpi8kHrlOxL1h20|%Z6_2;?dz>!7{4=(WV`fR} zS`h}nB1YMuO4B=W^e(^6g@lA2>@u)5#1|*Cy}nx{8T?+kHCQA(RE&tmV+S}ZPJ(Dd zYwx7?MY*9QzpC}NCGl?1>+XaKXrF4_uVSI1LUIZRMWTA&Zysc4=;cYxQ`tsYT@I=g znmV>%pHb3ZUU2`wnq#od3xiIGQhk#RI4B}7`MS2Wq)=2jxk_+39o;^q5 zT$o<0)M0WMeEj~p0zvFu5wf}mu&MT*R{>PePy?Q{sah7ym#SRzDzXWR?sTEMGF!k} z^3qT(Ew=1P8S7L3u+C{lX~G8wmW>F9w(<=L;CeqQY1<*J6Uj_md7NkUxXA2o2Qsg{ zd5MA||HX8_bv+{J$jPHRbL1*hkqz(=dv6cy@oInRaj+B;CDP8}bagdyd@7n$QtmJ& zm~iU}S2vRN+i0$KCKDM_)DE>~G07NaqWiL_Xo#qCKCOeF>jOQBTTOW@B69IH?6RM9 zLYPU?8dq^b@1>$6R4d(>u>DZb>u@*DTomM4!`$aX-B%X81Rkf--0;kL+;Xaoa2nM5 zf~f{^D`$#y;3(&eQu`j|vJATXq2y)Z-#5_c4DO7#vTdwEM%j0jmFqh0`tbj1FS}@J zp+=%mnrr%agn^s2J*2jQG2%CLJh9BG5i!`~RVxK!iuV3FEFryPLQ<5c`}&Y|xA zj%@!6DKGvP3;*v=SOp9E>POvFgwB`Eh92YqZnmt4i)(@74<2lTD8m1mJNUp4%zf&+ zcke!N2D*%ES#{u%#2ZSMH+6n!F3lA2yC4Kns=tomBy}f^>8C0J>7_5nio7vXOS33$ZWtL)&zec%b^{vtcIp zDjX-?gE)cQ-r)TM(Er)usF_7um%Ii6IPdj8FzTtC4T{27=P_Nd8-VS^-EO(ufQVs{ z!qplP}8Ty-6Z1)*NYZ zzxr(Mr%E_IE-;c#lZQ&QkKN)5RR!sb8-}3owF1b=RtZ$o8o5)voyO_9_xJaBiS?zc z5{_?qGJFYvks}gkTH{F$?A12l-EM>Wo0OFg2rBpE9MJ7rh+hCJ|Gu&^vBJro4&7i3 zlL(i|(Mhk^z+7u2-2q^h#pW%fbdSdhO*udZ-SKA&K$H$BM1hQh1*lovNo-QCSrdvb z>(kZ4tZ@(`(xkZ&W}@DQF;}Hy9YD{kL!2=PypYO}be@(%Tes9SI?u?UkGC3*`dM`v z@U~h@k5FSYW@E|{0A_aVJ}{*^0CL?15-b-m@l80c(~z@XE#v0u(#5AZ#B8-XPQa4Z z$n`5>^D7aecdylB5m4^$7Mv1p3(CD|(sVr98RDT#P~RVRzrVzyN+m0`GZpNnD)Orb z*b(5)OcA$*kx|DEE1ZGPreEuwPtG(U=CHv76>G#Tvv{ul>H4)F%_ciaoJ`^V1Gw|t zw}OGos7dXlffvu^j<;KE4D0>(-|Zd%{?u1o7ApWXw=6wd8Oj#xxqttDyr{Jr4BPo~ zATVHmM6d6JUEY5VBo0J-I0Clsg782mGp9%G<{C}>;(dIAh79B$;NS%!UX;JA=0^pt z?aB^QfY$K$g7-}E4DkAl{XMT=zwWj%c?ZzBHsa~xHm?#}T*J|(hd~f97w{}Q_GrD_ zi)yag*cRAOO2avtU+W}D(T+Vz!*n^<#q9>+-`tBLBx@`gLDr%0B#s$K(fpCxo84YM#B+2S>3tpeHQ;TK6` z-Qt%nq2FZ&pZc{jLVbW*?=-p(ut3T)YAih6ls-v_CG!MJg1I4NR5iFqDwh8G2Q}9R zx!d5R?}UW?a7Xn!`P(JuI?SJd`r5n8zQr8f8RI`_70yxng+}$q#qsTql zVEBV;v>_rQqPEP^W&dlO!aLxjjV~VTp5f4_xM7J0H|&SA?$E^B)q#r0?c#%3pWt@2 zRuCL!k}`XzpC0P>87RAAkTGy+jioS9Vp2QED6hT-OlfFu*Lk*KhWJ&fO`oV=_NH{9 zhR0mY3Nh=R%}is^NsYY+vYk?lDH=RN-0tLlnck{@gGvtwezm-`dzCO zrDBUV*81-hlLt~nyooH9EL3*am#YNzi{J?omUC$`UM~S#7FC;Tdr9u24*RZ~e-*Pe z>*D{wFF6Ck1r?CCi@oau8sK{nC@C~$fxbZXCR@I8C#}~In+rlX!BfOAt{#d>lkjOH zUH>@|eIRrtKtlSLnip!%C=w@r_1=AXy!!;O47@BTxHLU2l4MI>0jw;je33Q)J?~?T zN!jf25XkwSfv+P93=42=U@V3>`Sd!LtyDV@=Jd&0+m_H&k-9 za{&-Lp8eE{xDqdgd^XTJ-7?{A`y+?t|Ig0|h}0_qHbz}SN(VEFa> zl{^8P^j$CR5cXKs(81sGm|HqI(e`35|J;h^P(;w{+IA&}5|O2NJycef>K-Wiek3*^ zXL<2UFbL*6sVD_yyYvJ=!EWOEX+Z~R_lI8qr<)GDetjWR&{QjuBd9Z4H(v{WY8*e@ zd)SZyFLzKd&3?Ob*}SMnre}Tqt$m_2jcUzt0hLhLH1G4DNnG=-%n?jxpmUA%x-S-h z-f9EXI-kmCg(fq9@~j4XVI3=X4VVxq;Su4B26Jg*`(;2WwGK2It%v%g$@**-936tZ zTXOP8&^wm**K{=NeASlsZ=DoV36YRY3^tsI$nCUB6O*AEwkn@wg=~%8wgB&iT==+T z&rnox>j#w!xV_uM>?W9!5}px1Dh&PYr%Ck04nMVgjQZKlZP)9qL%l7ox%E%=d+Fc1 ze_zwA4^=}}SKI`jNU0H(Nn`kvay3EFq>c%-5qZFuDsW*qXQ?^QV1kChTkI|&B3(AH zQHzEz=B|7#S7=`$AwnltE7@;xCKt9C*#CQzJj_6Qqk7tZ`UQh=YL%H9(Xdbu$jUHH ziHukPr7XlPVrj@<`S8bOz1Ns(}R2W(wryb60{u>kbf z1fAndk|aMK({zc?QC_+v2KyAtp}1L+hD|nHB8PSSK^!utdbPiXH~?$1FQgo_R^K~p zc7V{a0yg|!-$mzKq`NUkNk#P#)JA+E?+~SWfeh5u-hK^~l7BqY;8SR5zDMdMM!_U| znXiVno)s>$v3SV{Bth<2_u{Y7dWL&WCFDkMm8csuoUcGi%i(AKC0yn*i;zR)XtFGJ zee76le_H80^SIL47&Ko}0Ir(y3`&bYRRa;r3Auin%Dft3po!D->GnQJjQ+%;-_Yw0 zSSLOib!^4H18P>^?w1EqT$b(8+%fZ?BiKcW7OLWOPlcf0N`bL*LFHU>{9py|5w*lO zaJmP=->v-c08W}TU4+wmiS!arl-Y)H4&&b1*Z^^P-k{mYTs8bbhJtDWK4-Qm&j$aX=IW>g*#ngi>yb z?@mJR+LJ>EHU#vpEw5_D2b`a_moHLFBqDS9Jk$F2Am#rTw*Gs92)9<+TadR)8Ok5| z`Md>WglOpcVUGcr`=$<~0syCl#icG3 zC_|U~r0WY@ymj%nhPEB3ihYYO{#A%D1Fb4NPXIE2yc)DWY%o`wLnBq9uQ#d)ighk? z80*(KyyLw-4*xqpQ$+(BKl}J8j^}ay)xmn%ZOjxLJuu~9gV~~9?5C{5vb&ztxcC_1 zUnRhHeY_YS(n_9@kdvDxZde)4m4xK;{L;<82h{uRX^(+qlX(?(KVtAxjYFa9ht+xO zfsIrb!r1^KtA5tN+L2$O)QZII(U8OasI^i2HE(lAk&Qfh}mk7+>ZScTiC!a<5~$Rw=EFO+3w~m%*y1zxVB4Y zH>H|MDr}tV?x!HWLUZ-%YE=xY^bk*k7Z7rNQRzP0K;N|lwKYl7g&iDdp1QtcU6%(Y zWLn2m>zR;s9KDn{byXQhkfdFVNif^37k^HN0d9gL>RFpmQTh0N^vDrhpA!g5u}7Qr zwe$=OZxU|nEFA101$+Dy0cK_&lXaa_`q;1y)Y;@Cu-n^!nezLG4$t1!?CdvX<+VjM zv#|(xJV)r1WayvIO5L9D7%}+9n$nwQrQcdg#d;xsuAM$fT%U3YeNp~Ju+U&Q19?t{ zBCmtkB=B(Dr{zfMnwpxvKl?$OC}_N@50oz_k491t9r-Fyk`l5K?}~}EU3<|e4>_J7 z?0kILcUx~RISM|U8_GjXBv3#Qw*~2@Acz$r3F4<>HKu6%J1-x2^#Wx~jhqhm^6LYO zOZYPN;l2Of-%y}ie*p~2=JM5^55*mc&sn}}rb^`Gj;lrbg6Ns1bp#+mDWWz|?B<>N z1|w&Z2KFUqLb+{$_gpCfW6|LomCa6}Xd3v)*HfBp(RB0QTv_UjV@rx>6!e1YQ3CkY zbf>3(Z6%Ns`_$Co_ZJea47td=VWjgQo%sFnXF|Xw7MVJ|L1}@p&*0fcO6{@VVkeDN zPhuZ&?e&MzZ~gAKnP7r)@3m}H`d%z)8%M3PCE8jR^@v(i%UhYYv%4j7S)Mv~#O@#l zLfj6v&Bf@tfPM2`(go3qNdIPQv#Wq6DQ}3dZLkU$V%*`A*}5hjHBc?2+QC{`Kp^{Y z>MWD@`s1G}3)t<3gD-&=o{F`&_bs8s<#mIx;GP z-tgr=T@y2ep7`I6w^La<8R=IL7VzTcw7kY?$j15Y*0JE+Oda#Vo{rhBRhEf-mJZL{ zd_-We&A*ompF$*C9PHkmJGf}pqjdC*USaWL@@V%bB5p0KK#43jORYP$g?+VBr*xL* z+du2)Y4wS&1NZiz5S$Jgl5<9geO{^9u%$jXXLNSKS0Jzdai!q)To{IVl!^nhG zLe4Kl+ zO}ACmh6lO!6oKJlI=cyJ{pp{U z+Tcc^QT!9Qy1EPELVoIm1oVZx_1WSdc)>jWr>Bt+K}Zr%jK704s=9((WF`KO$R5R$ zR(Va>rbc?GwU`F`&0@N*m>prNoK??n($hEh;1hjMU>wH8R=l4MAVRj!9mX#w$ud^4 zY7(&1K=#(i=x-A`j?bOcfV?@ri*Nx!6%WZlzL&-F2$)k}thzqr1Okz~*meFMtiwry z1w3)Daet%P?8|DULfG^Pc-J)*t zo-Y|j4MQ+mPkJnyO2gv%QlQ9*c-zM`>zT_9e|V2sg(@8gfradtuMA-(M%aT{zZ&TAf397tE^!L*OISsR^LthEZ^WBy34sIVl+=pid z6P}%3GOB+`?QM`AO83~R?`o}Au?jwWoFr`isyY}H$i*HQH5jOPkf{*(rOXAC8X(3- z12<7B@p+*M8$Rd*5i~UczS-|mTkXA7YwaL~;8QvG#ZGg=(L@1bYHpa<7J>}~;XMpa z0SiYKcd)krCU2XeZgghoQXl@2N1IDZYW&xj52!L|f8dh62EtVP=G+Bgv0DZl;aQ_Q zr(T*R3&ATX%o<~J%=pW(8HDGjcd%>l@-$2+7uKvH!(?+&`YI_lk zxNzU9a0Vjzo_{KS{UNq~*XI%#N2r}mh`A6%-r9R{C04ZcKwHA&U>Rlna}v&&=i-)? zRv&W?AmM?ZLOrWP6YN7-Z1JVPOEL6}fv`H2;L5Cu(mvi0x@O&-AQg061^W3wvRG~h z%GFO}BR{j)z}B$>Sx2djkFC4E$u}fcIf?`o=Z4+`83OHfA~kF&S*3#vB#MK8;W;Ex zk{F`}8A6d=Eg*V1Kq|UOofiTlY6Q&Xb+$T8Cedy1>ed(tH6T5zrmN)zOzOseH$47) zkDJrWx#bU`uESgB^xsalK++N%;i^gpKGrokIk`zxHUJ%E#m?8RT{AgH+&4J0HHhf_ z*}r42Z}%F^t(3w)o!ivp58VrIl_`;#(zuY46igw&I_e`X z$KMHBm8Q@9d?BwFK894P#3gZX$c`R)756gr1Qa(2gsCMmf{}xG%Md1_r@GEXt|f1i z#cWgNN=+MsxWA_>1}k(Y+(z0B*ZR27iTeO)EP(~UtO^4jo}Wdo(7b$yADuNXdw-cU zumami><0sXV7pBH`i8ZDDd{q>W6`H=`1{o8ei_VZ4MDtEn($_;fvDsxctt$tM}HbQKnTCe z&yo9$g{<;FKcwwj(~l$p2n||`x^w>c!CkoF_shZ#i6>_ip3DT=$%JJuNx*!}Ik0&9 z2wv@`aM*#-+Aja<~>fI`v)nY^YI&eDP-%Asf&+q7{?FVy(La)Q5+9O=w0dDxm;92@_6Mw z=fPQ6Po4IGHoS+Il1FQNnDOPvZrjy=?e+x0zgp5bITc(oR`&ec8F8JgHvvZ=aWoUe zagsRtsx|eib1d;?f7Jp#-+WOoq)+P*)AxIZ1;cHXy@7y5Z1g*P2^&8DTG zLR+CkO25Bgj_@0ei=FL^Qh!Hk`~H)ojY^&nx?ngg;KR`4;xF=j&4KXA{WVMmVsj?2 z7%#xkkl#9LEJ3Z8P#8pxZS-gr5GRh1{nRGAsDM(0xQJ2X+Rra3GO0lLUFza3Tzk4T zMSxEGN4cE)(@kYN-nG)m=;V^*G#A zE8V7aT|dyS+s--FjjV)Kaz|e_saobvU9=X}R>KO0{MPa9xpH0+*Q^()emKAhnDqwz z((`4`vq%pulMYR{3<>jC@42TADYqr^OFh(sPgQKBpZRQD6nCM*W7qQ?_(-V-`|Tt# zYKHF*lQ$$2llxkBqs~9Nh#&`nWBemK1yy_B)gQ8Fjoy^LOIJAWzme@( z?nD3QJ#G`X@j;Kp z?oXG%$lhHrIsgDd^SG1e6Km+pu-sI|{q3OB>i^)GNbCRfY%pkG^=byxrq3YCJYMd= zSOUG(=mi8!yvDs;?9zb4SE{DQv(qR5BRU$y4OU-oT-#TLs{^3Mr%P~lOeBY8y-Z7Z zjO765;l0S$!iw{|MsEI(PF@F-7cQG(+b6(p7j~Ky2lJLZYEVH%k7Wwo{1@S%>!ez* zv&HVi3kd~6%O*|~v*%}nLrbhfb2LN8Oo+5H%7lWqa z{J<+-{+A0uf$2vj;5BHd-3Mun$6)rX4&5*NHafbEQ(SAomHObu+{P&7cOzygD8nPz zX8$fvCUK&Fl7JQ-1Z~DdF$yi5r$s;k{#qvOwVFWwjJZk%c>=Nqenwk(8JL$Sv!iYX zh;0_Ym0?l{sKUzXouG-eZMO~JM;#pS5Qvg%(V9EvC5QBXi;dCih=}W;1-r3;VJB^> zMNs}VPd9;<^5nH<0WUA)jFsSObd)4>c0dUZdrrWV{1(;oW>j0$rgVCSS;gTN8@Weo3lc8m)_ z_!LBY9r84%zEsY~a&B>J`wHM9mhA+5dL=#63OmHV#PwGwSgZc+;(TBgCy82L#1EB% ztwNM8>(dS>G23$%Ff0}Z)>~#0?WSx07bFSDJq><`hK)+S?Q^glC3;{QTO$|9KKBzf zJ+FMp7rjh!ddl*5jM^7TnPu@{ZpJ56GnIhadMdzV&ldo`j4NcZ($MA6T|( za05zAf3(zescoD(OM^L(3nXR(^c4&4M^II@I=|#;Jl?(ZQ?Jmu;Wi-Zl)&QYz~A*V zLVR^R)`(&d5cc1*qZ51n{V@cDuG)d7#Y!|m#V+^ut4f^AB&r8C(E1R7i2EQdx($*g zsdHmGm^XOt!#w?A>Re7&p4=ilpcx&J{N^Wa0hy`=Kl)jvNhX^S|( z@FU*E0)uAk63)|h-IkZP&~8DNx1W7~&-?)Rle!;=n>mx&1NWYwx$y#I6&QELN$3Et zq*P(DF}SfyeZG=|v;{Sg*#X2R^M?xVh6ov8q~k(ZWjrtV;WY1B*xEE}EB+k-68lKu zn*5TfEpI&Z5vtzm#O<8vwz4{y5Ef*Tz8ruwbX^oj5E5q-2f2`16%svj?@rcS55Y!o zSOgtM^3<6!h8dBj&~a-BW0M)1C4T{Bi@i}~d+I{%6eGX>oPN8Bevp_sP=;Y3@wc}= zL05m;cuP3!d5~eULZHlx3P<~z4e3|$vyXX88?M?`8t zLi{gB4JpnU--&7ZuPe9a)71Ud?6)G{CUf~Uki{8u>vSYQD zaYgt(L2!YJg#86Y+5w$ZB}tVRd8fbPd$iW{vZQn!YntuMP%ar}v))5d;-gb*_Fs{6 zdDpK}VsnKS41?YS**`X?q>DSi^!x&#myPFjBC8;e6kv8n7e@Y|?=RmP|9CDHYn6RuMi>-wht{Y|Ot%=3>tey2a9Ftz#q48l%^j!qyuR3y!-lsnzkWI4Zz zUVhmfg=uBi`z5bK!&D|yX+GG+Ir6e46A&gbTuUN2UCB;jV=(;qGE<&Su?>TpVAc6& zEPjlV&1%~HUU}Fv$EUC|-#cXafz@~)&a<%-(-b}$Il#t}{Z~rEIS6h&$Q{oQjdIHK?53I#j z-)0?@a&E;$zfuiZS0VrP>ERcpHkvwoKA;zH6Ieg)xk#x?X#xU=mE;#MPkLNUov2(IPwIeB@3C?^7pl2xo^@f+m@oVO|jN(Ez{1kNAsy_6og~ zenw+xt@zawv$@_MJ>h)rPrTkr7b>Xwrxk7cQzddy4X<1OI}KjGdX=STb%DbQ$jOnj zkV~>5bNul8>LG(qPlsF9dLntwiGT8U5&6{;Ls;mi{18nS!u?GR{$)Kn?W!mzs&mcd zhUE`Yz|Y7ksCEi@DLwbTuMyL`CHvmP|1xp18o`JnwlQQZ-vW02CVNklm;G>EpWw~A zpzdqRiCABJfAiA&YeaB0leFP${JnY(jQGA1Qd-OdV)Ku8DUVJ%9pK9fa735VO3>+* z?d1XLqVU921hA|> zePxAs^O|6Pjff+d;`q?v-amvvc+XCCZeB4o`ay^~G?a5TB3Gejet)rvEHvE#8;LRzBzdxs)Kbgvkt1GlWo_m`(&KrfAs$K(~u96 zZ@O3mI(Z;lhxd>+Bu*#=5|10IGO*EI6O`Flp46xMd-s>R8^&Lq--YP|D<;;pbr3)H!hODv zdH3(TJ5*)noPIYeC^=yqq3?U9@(eHuZ*=nmib?QSidWXKXOh2q;UeK=Sutw!>FOUP z0Do(@{!4@g9VL#mNk5%3ZIhA_aRgn6W+gvH#|0Y1b15C}HR#vkUza#9(3DUXK_<9a zJUj4=_0~T3$K*mnUoZ@-KN$t8%)m)P4uvPaV>N-oS%>$}vI%zC%;EtQRi; zxTp@3;2FL1yAU7pp`7+H`WNxcYrxKqaiO<$btqPr;osEZFi3xqF6YA*~(0~_mg&LU9$l)BE#XnB? z*!@pE`YbC!N#Bdp()^6VcOYZG?FIfkD$iv?wtQx*5shA#q|Ht`xi=S?ndJ=ObP0gdCqj*T+OaT85rq|1y|pc>r?YMZnf&ngYRZMiAT<-{?sc zhyq_{Q6uMEIw5Q~$cd*GAmMT!@8Q@Eu)`#Pt#KE?9Q?PcSoNndv&neEfy(kF&lbdw zZkg0c;lGXr3}2f8EwVT`6u$=ukBw*!a6v}`yS&>|NS{sgav{X!>=gbrj?l1@aAS(7 z9@?>q0})2>^(ykhU@qHnx{3y%LKPq+xGl7j$8CVGS_lWkA(_AnWL)e<^OCE9#?trO z224LODF(@bvi}-<0RkXW6gKJL`$Ig+%!|PHd3fX7A($hFgSc0$R=P~JBj^*(_!Jho zzt840@WBrtpq0dIT%*MwiS8+i&Z$2^d}5b7&wA63>Tr+V$IK)uw3^J^R1X2%1b8Nd zBm|YQLrnh%a-!p_XX-#1dGh%l3EkZ8(o%mq3z$GqE;Om{MFM~ZTC=op;Grk*$!YP? z9baE5FeDTKOxRQjfHdy`R|@Y?paUvy>lLH{4>92u4GP(^zq5Z1<bhC zuK&33a%0$Z>_%H90CP8#QSvuzccihmmmk5|5qx?f6wK>qs9p!XLjSXAFq~ip)|7h* zUK|Dt^dm6liUA>PA7}0Vr@QYC=eq6t$5%#3ahF6Iw61J2GAo55DoI9GMn*)kSEVQ# z$jEFdWh5(`2H8TgeeE(L${x?_!&Ue7T+i>ikLRD~pWk&H9akNPzVZ2-=lguWU+Wyo zOK%?ODA)vNzx_GZ4I3<|EMG8r3I`OeyyQ2WWj#Sx2O*6wMx}_tYyvv#?SdLkIDR$p zdRY|3t0-NcQbo*CeO{DH+MBxOwH-Btvet7>pD8Wto{|g=Cl*VJ<4-(AtjReS{iyG< zC+MUN1qb70LUnHIlp9$D$+%t$EkPse15kKx^H57BGu#NtrECjhFVcdJ*nE6 zWnYhbuF{GSdh5{KDPLH>k|v4qlB9Wn?Cg+;#&ZpN2=Z=-RT?hq_rJ)r6MOtFkAX3B ztgTdR*G_|@AEJ7*I7ly|$CHDv&CeR=JMZS@WrPjp-S_Siy^wK_qlap_mSIar%Wm17 z-|!;0>lInNUCBK3GySq2V94NU=R12EAAW>#KS;!?4bLoBf`xc=rG?=R@*hJV@vFtq zzP2bR`xYvh8}dOy#hsIr)5=8!3ipB9)Uw$<7WJdc?i$BPWEW9j;_%!o=J0b}93 zWnhdU2lKaECcA#Z*$&y*le=T>&1MrU)ufB$nGMXogz%;4upJ3h4HsTPsFvdWYqIRk zPWU{Kv5cfNuZs)#y2pWkZSjqj1d{2TkL_0k%=jar`gT%RU!CnZa;x+0^$1}jY`Z;! z2E8jn1X5irIQCdv1x$Vae!=cjNut$eD`+!PX;Rt%pgVnk&!##pLQ?|4l`xmblws%@ zed29AwlL!D-~SR$gz|T~npVB(xoQ+G*C;b>78WmWcK!CPFB2S1=PAmO-N_UHw|L!W zYYrr2P`EA1sAr3!2OMg6FKnD(U+%Y6OWO)+s_n7qkQTU;!C%~(K;a;i+d{}5I*~ew z438oV2FHLTC`J$>gIA^rFUkYWBGoSs_C%bU#$Z?3vzF-KdOuh!wRMK?X*4Yinh%1V zt^w7;x^tX~AcvF(OiS$esmn1#s(k%S%jL9rf+JA^G!gxjSdM#_-!=#DO*g6H4|t7n z&%Ib>W4?2=WYfg`oYSdPgAJ6E9n3?`@3XTDv+VPmn&e}lRCw$Xtdyj2{Zt@d)a0GW zw(`BXpNu5gs8TG}N>Mqln8WrI-1TtC$v>Udld34BqH`O%LbT73ocJ>{0?_2SpqK0Pk+IQ{OTAjht$+U%co0=T&A6E27pszY zWZF;^Xp)3OGnuU{*SpuatC89>tViY+O`Z<0>??KMu0_06g|%E<-|S)}vpIVqn6dH6lqeL+sRcDYZy>t#1ZTU~C`@#CwhTSzT{>pOfAG9P-$ zxjqcuR3A0&6IjohqLB#}bFOLI31N`V)8nM3)Q+ZtA79rlr@1jk=ZL3~rncPI zJxhGHa$m-6iU~E^Km4hVQ+J$>&SHG&_#Duf=?65dWL-v;>sCGWp$m zs&p3m$$9NRpKitMK{^}%MW0gOsb*CK8!~$~J6Px^93vVosxwXd3I{SKqR+Hg6M)(q ze%I#*+E!qW@tE8w=qx;1DPG7RK(SGZ>ix}Gqe`O2v%DM=TQRUeXT?GDxQxPzo%(EE zM?UZ8xA;3^))oaRhu_x6PaI}Cc!Odjk5(gb;7`UvzHEVFw5E$_GHDZg%V~3`w~sdH z6cz^*4t&bjUGBew>ju3}SU%+Me^oa)FF-b_YzsX@g?Jg-Y`F!xi-Ud3oQYE5>B$YY zz3TP76<_rh?|VKG)p$k`DM`wmdMGoRHzGSb#=tftCt@=83nbU|ec3;hZR~Sxe9gkA zw>c&Zwo`(FR_oQ%cHY@`b3Q~eb^a;Qh%5bTS1rY<+lqP~KXmN((n8_P7#nvu~w1tL8pAfVR^8> z#X8=M({nGbPqx?$vmQ-5Z!MsBX+GP18uOsk2n7S%%%5$v?Qs)|8lnc5pD2(02f3o8n9>z(CQb?LE6ur zcD`)`^f>zwEcNlh0a{(8%ymypd~3T2dsy8P+T8V}ORjJxsj!x2qGblm#~dHIEuG=n zi5&xDHR|Nntj1)U{{^Ma8haiqnouccq6L<0_TR8)C2)k2$I3x3O)EE?{cxu!VI1nS zTVjltGNJb)Y>-8lS4_cf4c$?_4JXttqAjjuZy=jp#EO3Rtw7%^=8boqrFTW|P-dN_ zSIl9OqPzI4HYB<+-!)zf3Oc`XKiqj|HF>09xIBN3#c5J+^VSfP`o>2(fF4!C1dCb= zV80maEx!&C_d{szk2Plk#9zkFv!FKam^kA2zZ|$4P+Ir{37WGcO&%F_| z6pEfJxB`ry%kTd&dTGc!=A?DyhRr+arcmJqlPQZsqNGaB>%p~9_$SrAV~J{46gedn zDwVloqFsA_;C%Q7D}7XNhvy?|I#4;56@}5D%OS`m)gBQ z2s6uoxjj+`q54~eOv`(v<3Ef4-4jO>V>ioattqL>nnrl7yif`uN0VZjJ6cW zjrK)wR;;j%Jmn;DM~Iv1FgpJ4Q29N$_4I15xj&~Q3*d0ont5U(QVzUvk-Fg`75^~l zjYV^4lrFtOE^Y8or>BF{E{VqIw-LKfwO(oaO-SS%6)E|vuXFsobt~goB$%vVq7qtfF>J zpB7EH#YzP8DMGogLLm*|;0b5%-f~F$j+@s%yQ{2YU_u+hHCX%PW<1&8q`3iySt|`~ z`aR6y?Ir5O!#jN>$~NjU`X#d}YST(85Cv7Q?0UW2roA*1jW&(Gs%V7%zEWWgr(p4z z5$_sProB>5qp|d&e7{;?h<=tew%D7F^a|K$)|X8iKAEVUU-BuDx+9331A&htrzKT!Uf1IO# zMa|$OZcQb@<*(0G7Mdy0ZDlEbzR_}A_Gf)mM#ayi_ABd@8_TF^6{D!lw`~9E9O9(e zDm1RQ=NdJWQ+U~uMvui(hlXlbovTMeZDV7yzyqo?j*;iAhqYtPk8So`xVj9g@i;dP zQm|ce_NeF>7+n}+s7Z>FNjIFiNdEfNn_JPVK7M#xd28K9qJ%2c7`&H}q>~Llm#DTW zb{`2kIkMjlul{Hf{~6?C(q3Ej^ZmM|FJuuSYW{jLMyC-O^3ds6Yn{ypXlAQrTz{i- zj84gVBwT1{ai@#<3p19vGXpOO#V0}p z{7@9TU=bsNeLFU)E`LC2>z{0JP>6x@-K{=Z)$KYq(88_2*`@&af6Yr)HR6H!E@mM+ z7@ME`ItG~y_V$+s>USv|I-X z{HOiVK=~B}xbSL#{9iAAo)eNatLI|skk_fGrQBor-tIbLSQEQ1Owv9szReXG38~VU z%KQ4%{v2cATJ|R9lFcDSyUPPo`WrSZX=zVn6~TKL6E?6)O>RD|{G;*4jx7hSO?_H( zayiWT5HN@ezHGnkk#PG_DErv`lY8@@bn<}Ew_B{lPMqRLj-yg2|Hj{e9f%2FB=Y1;x0FUoitN4k#S2-?S;5^)tf1mG zMs^kVY=TrNNnVn(Q^}H}WLz`Chp+hD!~yP$p5zfE4iXo-u9i#?ns)qB@yb3|w_Vh- zp`sNJv`_eF+rI^g#ncJ9{m|KSTCX31-D@NC0mYDG5@8^Z;0fVx>E!%~NC7?&%SNVL zoeA7l%Y*5z55-Apa&NiX0QMLl;P_TnBqB_HwL@HHG@bR1Ro-R*1XY=NNxJ#(U@CfK zRvrBXQB=-zz#B~a?m&6}2-FzV&a~JSDKJZx=+;E)J^tMU?ZD9_G#D;seg9N)z+al5 zr`}f7NiVjo6PpRU=gGzuSzz$4C6N z&9LqGW>YYKtz?rYC)hl1_Ox|DqUUPEo-;S_@$mHUE6Nk!Hr3u=`|h`K<{$coFtzel zUErY6QjS$U%sMbHnPyb#>i5^4<$N}Q4VR^1yEI8J2Cww+-ByagYfG9tClj^T0=^YF zxjsSn^u+T%!a`H>7Yj`>^&>pdH|S&u$my>@*&`&FZ>Qjbt2REjaLfeY!b-Q#k?#`)kB6&((dqOOL23Gsj^-Y( zKrxG9Lu@K+ulEP&LlE(5gaKu}paBK`d9%ySFbop89k;~tTqni$iMX0H1?eo=X^v_b zcJi<=+96KGrlC4EB;A#d2(ZQEV?<@WyKy^B%h2@Fal6fl5Qx9EBwG;nNdR&Ds< zWq=BnEw5i5n!tam4Zl;5{{Q*{4~|jDpow@Q1*lq%{pX^`xIvT-ijn=`p;5j`F#VJ~ zse}}>CfmXCY*{cpetQVPSGHekw}px!$)$+IENzexB%m*g(XZ@!GC>6K*mencc8311 zf{3=ux22t9#Y!-RcEB1;iNRivIVY9-qV&kW-iL}>u{T*Sr_cPYfg_?lh)nx+yjorz zo{Jj+aN0?GbiP?3J@$cnr+O@fm{p?}T=bg=+!vHM>lCpBeR=Yx%Jr$68h?H@n+kaN zSJ`!41P0SnOIom5xH&+Jly6r`hl%i)1Aa10X_nub--RT*QR zfVlS6xl{z)h@NjcyTQwHjn-a7tZbgc~M~Y0?Zn{zf>2{#&UW4C=m@Q1Q>D zG9^Ir`Lx8s*ba}+Z(SjWt8*<2CLKXWT*W+k8Q0~(!h<`7ph`NZYOz%{S z6VfW;Pm#&2zb zfb-&5Nq?)^`wd{2#JhudAqf=9yn3r(&JT$m-loeGhk0->NH5jk`MZz#HwC_ME1i6D zlgGYvHnfASKOZ^!uUpM-@t17gw!?$%KPa?yi~nG%vJNvdO2431mXGX&_*QZ*ms-n( z_G>wiaowl3?ROB?50ezi)!5vXh%@89^f>aNfWdw#^iwLtH|r60#T90r@ysiy68Yes zqF?Jd&04_V6uwCZGC5wo?0WwnsqKR8BN%u}`oZ+Ql?EQ~SR$;cO|~=IK*cQEqD9HS zn_o~o6Wzou2lz~@dXjBtL8%F+TKCOpTT7S^!+od}wKv^ZYTM!9(Xgu3Z6;TsE_y#J zp*;4snzt9VxwkghS1GpESzuudPtE*$sD8@y19W>$;4zIOWZkm?R=sI}WlIN@)0#-W zzFh#lb%w0_j6`#?ZdPr`A1D840h3@29`7X+mvmzYywxorfi_yVyHDz+-U9pBo?%kH zP6r*XHIe?Tm*?{7V;mGV8E{NBqhU2BLb9yUIj5q#EBihL!-timU5{W(M}~DoQ#E!> z3nCioTrXMiOz(vgp=98G49FwzDpzH>g)ue{_R(6!P3~vQW8@0>;5#6u&lV!@$SDD% zW(K;P?6er<93>*tAkH0RuC?6!kD&5y;6oWqoDwzE32q`pp+_QB=#dEQw+ISx^o|)g z8JY+oXO7eNhesly25njLTHXS?8z!&abEd{mUm=hKkyRdZy#jNupdV3qZ?TD!x-{2T zZTb|r|3m#U-`6hp>?}1J+m}z@|CgguSpfs)0bDZCeW}BJ@&O(Vf-G)63K;KhNCZ87 ztK_Ll_+^v}ZhTuG&80NLXOJU9iHJzKZ7$4nCUkst+u9ohPuk*8!@$cIOP#=3Hhzyxs$?1X<_ za*;^TeC%}L;mS3{T*4#Vmn5_pBHs6K4+8dY%g#JIk~|EDGTHns2dxugPqJRR{ItM@ zBcFN-geDUKcy5Eso!V(T384u_ zCu0arh}(H4GK}7@gvYyZ&J!i|8DWEiRGxUPc$xMIQo_P4(5lEk*zZGt_Xu2~!d8FK z{T<`3LQVisYRP7t+-r%fkrv2@d1M!+j7y9gJYIL80W#p~cLAOK&Ab36Y+Q!1fk+){ zsz$^M;r>+u2w}VtpxNjCLkfZZ8h&{sDE6P@t^`8sEIUOe)x*dKIN&|91S{2!U}29U z_3eIP2$4(#sYCVLB6je**B8211A0KK(}k5#vM@h;0p&2CYw8EG>(zY%hoMKS$)+2|>C8Xr2=M;yYBNniOM2a08UsLJmXS zf!mI#qZpRV%7Ce$eMz%ogl7<$Zsho<(RK;kAa$W#jXzRY?$unkAgPn@mPP+u-{tGJaZlJH zB2)#d4fGUv;)(00x{5%m+TwnOdR&oIRq_;BLyku?;*UQde93tseylr;&~ZyRjc&%j zdjoQp*N<7>^I016+hGQpNh>#Ie270-yC4{M z3zD{$BWs+~>HVhjRCElO`AFR$a&qyihybZm)dd&722Pg-6HbgQ=@2Y3t>JPcP@bbQ zk5d;^Y$D=>Zvc~z2&U^35<#FAPyEO5BMR@X;5wi1SVx>B7i48|`&8(W>OqhU6%-=c zS$0p9*BZ!|&grc3H@=;i3Adp)iU5%=*_Tx%K2hc}2zAhxjsiIho-#qEowue7Rf-I> zSJ?Z8cWvGpSpN*!vhPT%P(qd?`!UnqZI>tko z5W-7Jsv{+@;EtRPNODSQy5_5N{4p49o(&}0Rias$30Dit7!r;eoIE;8b48)Oad%nt zXF_KMe5@}8PpC=bB)n@ryT$=D?yhSg8Xwm@k5z(4Vr27_eGGh7OcZ0xZg^53CN7h! z^1_!ta}r@q;-sH@9ls6z+3hMFD@4qh`3 z4sH?&5qL*Su__h(lJ~x6hqtSf^>tr6FQ}7;yM(ZqsIZ*i zbw_V+PpG_zh}-`>LfFI0LFDHBF=KERQcn$IC=L#_74`@BlgdXY92{%p1GU>v{c|^G ziT$sRPZFVJRPRu}#moiK6otKu!Q;GFv7>(b-qWjBbaj)2U%iw3KuU&8dKZq=RlWVk ztPAJ)^(*q>IZq;g(~MA&??$#{Qf3$N!rHx;j5U`B>pHDQwyjs6Ubu zqe1pI+)$01%CO9|J%)x$x5in&NT+~(s>(tA&-V{7+df()585m5-n|nIIrg613_Cv} zE(kjhXs+Ek-5XiX58Aq2ag3P{OO}J$2Vb0F`a<|pw63BbrmX#}5x8^b&QeI5-+ajA zOd_v)@-MGH-+3h6XBhE`DByX1bFp&JRm*Sh?j0VX3Le+Fo3)72UhyvrUW{TuFDI&G zL+uNcL(tP6ZAT#&Ns-gABP-_^*(y{h2U^#n# za!t_aN}ht>{juUlLz|~Zdp6*;=6cerE%O%+Bl-7AO=>)UkG?h94m&&c zk@T2jZM!&E2*hl?Hf`{->UcrADp6(CNd&#e-I`)OKca+ToeSDl+Ka4t{Qmxq^34ZR z*r#_0XPp(Z=~?)YVXjvpfSb5I?mpYNc(}9t>FMVbr$2vX?4tirQxLTXL23ubJF~MFt4rGXUcv`Fqh)3arp^A}2Im`n1in1|Y^^=VChrYD+C$l#Hlku% zt-D|KCf&f_T^)*ZCsp-f1lEJF!Nirqv8S5M%HsdHU7k7 zzI8VDG~jdMdb$vVzP#li+gREky&%g`eiAxm(joHdMa*Vv>vx0J^JAAWlP86$xO?Wy zL96?d7KuBdv6`;s?@yq=M?!r!kXCc*i;Ihn$cncCn_xM4g1MT5`Jk}g;O)0HBlio8 zU{7l)DsuZMaDOdpGOE-i_2#49dX??v^%~SOs50hHOBj*D)v2;of%ip5dE?_wb9+ER57qR`P-Ux+{ zL1m8c?sYUg`pQ*QzVBbQ+%S4F(~0^aPv4s8GFkSTj#oPqlcwTi1#UxTo27Wme_3w6 z;EiPdNB=FivEtV*>?3lD7<84rQhD(3SkVJIu8Ta>QbmR6*u$KsC$*wFM>!s?&q8D# zti7c-Z{W{YtaF{Rer_HbQ57xUmdhY)8UtoWwg~6XmLM6EI(N5LwYlKEM^(8N^#-E7 z6VZ=yq^v&S>XLN{MxJCEd=z%l7@n&gdb{DHDrip9K7RPHD-t}-q4qsV0{8m)Dk9<;I4 zW`Pj$l^GBz^FAroiuIA>kidVUJON@^_CVrk%I-c7RAOSe`?{nC&O#^laj`F-JF~Lr?vGlv{ADPn1fiY*|Zy zbJ|?rhGGvpeWr+p z9uNY(j;W&+3JU0)rDhTU5>u zJA?0E9IuNE7N~I4^`D=e3^kO4n6;_|M=-FovMXwbp<7&~m}e*;>P$wBZS*_cle@Lk z?h@@K3dLOLBh+3$$MM+-MyA~2qjuh)&0->-bP9T=k0W=3F&oUCinrnAQuC3dXEY-G zZ|-vA*1FHGX%r~8EPwu(?=`eO*V4qLs5tZN^za$jE*oqKR?+<93O@rtuRzkU0`Y*M%b%de^xt{1yHM; zR=n5y@GzkxioEIIu4(l8u5x zY!>_)3^6P*TFgdFi!`I}#GipIIAfDD0fl3{O=m`kd9`yrpMKJ9e_ZQooQTQ51a@I; zlR591mbaX&|2aGKcVAtun((;@KH5dvB+7ZM4*scUY88gH^q8)mn^_)hHEj=yp>ti2 zK<;O?va(9}SP=U2+3v3gdjX}!RmDfG8fzhAU*7CL&0~jny9iSDZq1!R!=I@zhPd! z3`Aw#!`6vkdHHu-+w0IUs8a2OmzlXVhB)zc#^+_)g0l*#*+3mSNYK=sUI9kf2a}4L zSKE)web7+_l(n@c$jX7~V7H^tT{}?W6zdCGGk`>pZo`zVLB z(nb)IRHOwyj-52Or|WHFgvVrq7f+%Gjsg0K7Wd7vaaGt^tLw=gx;_LRvrlA~} zoPn1VdW?+7m2pE0sdic@+M4{`5uxp3UzQWYR=eUob@e7;UWEPjT+3=0hJ%50l<3YbdeC(;t}M0ucl_Lm;2?D(lnP~$6? z&oPSbAoBN@N7%-kGkrTXcUpzN(LtkI6s{Tnp&4u_dGavQf`kkuM;a&R+ILb`R1 zfwX;uzIy@|-EbJ&&f!SmSz_uODxCEYK5#IX`K1#x^+o@y^{K{^%L+TUgvQ5u^Dt%U z;)bq+(7(zaqWiI_GOL+^%g;=1^IHTdhiRqlmg&Jc9)C3~mtLQ7#i3KaU;In-tmmX< z^>sm5F+~MUyVC1rd)l0leh!|whDzHH`t=u%H>70;bLGa0x^`f&_GN?3>A(`wvqcg9 z3_SB4a;V?b+Hyj}CyU^nsP)=5IUD-*48J?uh;%!mCfGG2%=sOg=ok=c7Qxb!<~8;G z`_T3C=Yr5<(l`bYX^Wm`M;lcmgBjO21R@1j*>?wqTOwIJ_6GXdT%4%b8KxjN5_`Stiy%;^sj)6e>+c{{CxbJNXQlRBpgvv)TVGd0fRw|c0J&y6Y%RubgeU5!_$uM&-KX!V9t&as^xn%h*2Z0;&6@^-yE8as{X zgQlk$va_^?O*!|YzR%P9DP!jHf|uj$MuUA!s#kZ2^A*mo*M&Yk%E@q@Y%N9fD_=`# z%-- z157Vc{G=kfEaQq!c3}EBrCSuo9tVdl+b%WrL6`~@gS^PBgj7#U_YaHY)MbQzbqnqzq}&Hz^?<+*WmOz9lWAoj<_vs-bp~lmCUGiul z`&cI>JIl`SEQ|X)-3HDU8H?^ON0=h781#9zsaTNL^6l)3?r0W_2tXEFMBIMrCm;eX zx~?I+qifhO%Qh}TalHtXlok1P0a9*Xm0+r)V2QTT7Q*<_1PZu+4g3VQM|>r0Ml>^) ze7<07{C<7d+^TYEvmZG=I}yS_t^pF!&Wuk>#MQd1pB0pyRB5|q6cCY^cH7zYz2i|} zDPtzg4#@(AP3;C%9e+{uKqIQkzuY=C-EFAVbSC)!y~Tm9o`($g4K@SI=B$&LhB_I?OzoX{i-B6 z1m18&yk$_}ApWHc&;xHbfWUh5G`;(W=0oDkn(De&~3dm7JjM&x*4-@x~c-<{#9 z(=7n741LfuzqQ<#5b<0;W`+d{2{=k*3$Gul-{rLFOn;<&Gi>)JQ_0>@r5-bqvmL=~ z5ggpy)yJx;9O`?kvOfi8m-L}qFu0ZRP;At}MH(W=^sCAy$8Y_Mic#fjHrE&x=lT%# z#A~*^^lgX8w=YUVHa5B^WXzWicvVp@!!r+xk!U44!vv?`0}1OclD$@IU3g`%fw8#x zHA^QMi*3@?+&PMJJ+#lS^>%u`Q1`=ZQ4+N92ZWoKh0HqAmRC7!@V0$F*}TeWyeK28 zA$*&IXn*joj)t+g->D!v8j`>&7c7i|j&O)lm>wFVf|5||=f9!U6HX=F17*Uo^kbv0yE_>!Rg+!ptb`= zi(R=G&8JV_2#j;J`X?*|#TgDXhY40h&3<`3z#)AaG4egRi^FFkAQfe7zOon)n>fw9 z89yRm!9X7N2I^>W4qtS67(61Xfx?8JEY}6i(-*Hko9|zI6qVAX^@2b-ozI$yGriSH zE^DR%ssP%S9mbWil3gP}CL}*t8x?N=awEfInJ#SR+)rZHm(u-)YghPoRp7p}dfF|0 zRwi*j?Z;>KZMIf~@ymghQ!7`y zrkD@&^=z$FrxbQ0`LnrqUs5nF$pQ-Z9NaeDz;nP6dN-!epntw<-3U3|LD(yEd_4&i z)JL6%9_Z61pDZ*pSOkBw$$@PSFywy?FyGyuX;2Zy^qnYmi@W5>`-t-l8_gwdLt8Hd z6%o6p1E`fBpP#T}R!|d7Pc!pQYF(#mhi1Zdmbzs^w7CyopbLIcHS+kwo)AI0mQJLX zW9~H%A|}kXbMGg=i8oaB?;9UJbx!VDNRwUN-TlG}&568L{$*$F#u)RDj+|q@XhStM z?rS#Lj0!{D`pa@3Y@$^TW-U!#JfHpXKn_bdKeIw>BboNzl)hc&@zEpy7k;k%M@9d8 z@Tu7s)z}6-#}{1T-|| zL|5$>J(lo>HUuA4{#gtaTRC-vG-J+cOt7YxMrI@mV;&U`-c- z-mKQJ*Qnm}2AJ9QdIoB0&(pwB53U;cH>N#t9{;Gr@ppTE-kY`h3BaX~%+~?&a$ono zr-m0RU;1D-Gx-%4gUpRhHVx8O^n^Db;k|pGdZMBCab+N5dAsf6{&cNds_lu6;tl~8 zjw*u1_MkF^Cizz}y*aoHzqx>q{BL_=TmA+dqoRl66c)wY|qWw%wjRnk*T|!&)QXN%U-49jwJ<$2h$#A z1CVORi2e1+oI(>dZbs}-7fv=n9V8rkz_mT9n1tCN7>{7!z9b^n!D@>DUzv@A?6Ab7 z>L|B^ju{OGD7$bMhG6f+_SCh|r7lu1Er0r)0GO)^*1yt3z}}F|4(PM305Mw4oG3F3 z8e6^qh+4PGeu#083BKzuV&3fNz86+})3Y_GVy?tkqQnS>R}gZ*#L30AGXe1kD7t@@ zU$1K>`UE`9`wyM2Bo`unwjb@TNOW?d`cjF(LuMb4OX>m3dngcqwyx2)cfU3Hc{HCN zuh)C6ydu?O5HXK$^jXi|*L=fg^__xoRN56eT9fxNKadR2w%Z_BRCvrQyCN&vi*AVa zR#)&~0BG@>9U(JV?r4OuqB~hQ=px4fLCN$csFjDD)S~N|o=OyoJSmP}KWuq+GLsmi zA&Ono1TCa=H?M1^3*KZ~1ozyH;0W7*=^$}CCqE8M*OzW?#Und<=+@rXulka-Idf__c zi@<3DE4Iv1MmpGC(zQBRJUsB)0ItkBor-1;>?QbcZn>a2AA-r7dMO1P zpHNE709+#W=A-OP%S@r3xprPkR@p1};^?Jr^Wi(x^37|NnKpO=CQ&euSq4uxF1GUQ zojKWR61jhUox0dYG}`#TS%SFw63n5j)7jgRL|GI1n3<{hu#4I1cP5$91D0>@@*95A z#r-q(QN{^x=H*G(${bRz#G)Fl_x)L_FTyEadsBZE? zVRgxO?MENMF2JX@@s)NP8VuL2MFEf{FtI67`n+`fpP{A#L#<@~MJ4!96hsQ!?@U;N zh-W}9ATH`?n>P(q90Wl(2v1U-qc5YQmx0D0%{Gq2Edf^xGEDU!f}U4Yb8HKlIRjK4 z2Ce0FKr+ZVskl}T(35?bOs9d(wj{;&^_<%QAXHilF7M0$GIle=|Hr4ttIx2^{;8KG zrMUncb!MYrPm}yc8^kjLC1394uHc{GN^%|&b-%g>6>0-RHxx|tlH%1gAc2o3;_@c_ z8w$pm87u4u(kbg^eRG`p_M_TiBChxB7mk45^gdv3b?0H<0-R34cSCim(k{f;JZOL1 z(5B_W&?3a{xvz5B@86Dee=GGOqte*xsWFP++bwCAJZ1InubkNSXg+Ta?$Z_=Y)Mu7 z4yWUHU5Jg#lysu@TDe69_d|W|LO*`Co^EvuXZ=TImGO0(agtTGD)AS22^=c!&mAWg z?V=kk5q~LH<@aDc6EwQqM)y7}8QsTbFMha7d5gV#lUQkow$^9MYjHoWY`oG~`|yT{ zCi!Z((^c39U2Y=cYP8g+D6kS9g9PyT=ifhLsV7%JR*dEUa2uO=tikXy6Hzc)>g5}a zHQDy16w{RlVMNY{j+a1ol3B+}X9|8>YK7R(gO^w{z}=a$&p3NtvpBruMQze>-CqER z+pn~9dbH}6zBi{~GL-~ggQGNVD6X)MTw4gGwTxm*K`Cis{N zAHTs&vEr9({7;Jx4P6FGH1MS;W(GPhjNK?y(9@llD&mL`yk24j*YG+wi& zd4VuvuK~4=RiRqzlqA9=3(0*N22uHn#*Yr{MW(#MBEe;8^$c$gS40P{8{-vdrZ*L2 zICoBF&cBo5>0JunSfR!(|7jC?zJF3_5hv(g`2a6nmyV{#*nzNUZ`%)~u0kL=A)5mv z0{{Mwz#}B2E(UG){cQ!x)8ZfvUUnO^O_LN=!{Hg7*<;CE z>RM?;?zC$Xf+5QxJqK+0$@HlUhF?9GxjYA2{#?;G?F=Qey{?WkWtF{YJT7vf0ZIPcUO@t z1&cHVV7Ah@qU#6ZD{p<)CrG%lNfwMF(ZsYJ&IwjJ{r&Cz&7_cnDTg6dx^(4`2491t>k5Rn9B3V+}lU$&5`wi?A~(_ohv0Xo|?=cLbnxd=AJ`V>+~;MAOOYD@o$e z?ug1orVo<8t3xCapjKv(x}=YMUo%UI+eHX&=x^rn)_MQYt74m*+y(3{Yl2Bxdg2@S z3ftU~ER3&=`%H}MROKRw$bXHtV|nvqcA9se9YIf7zfVoBcf=wbt-b{%Y+a?Ne+d%b z5{UKtvP2kEn$&Ft@899K^uH_sG3=T0eVQGS$qXOgth%7Z4#HC~d5fho3e+(p*GCFU z`r++2=|N@^x9h(?3LwirxtCSmyH~2^?{`i10RaA8p2GomWq{PWioGYOah>`urML?2 zWVFKSE~~634j>hxw^<-kC5pB4p(jHGCZMo?_vh>s$WWQ#2^n~F%WtFE#Y=CgoTBkT z&a=c@YuavQ0VEq8#L_$uZq8Lc50us%H#6a64I8~soD?`-) z4L6kIf-6yRsga{i_sFKRvBiB>9(n;{RTk<^`6RYd82Anff>;2VyHPM-P;^}Fzxea9 zAW136x2=GShBWjtX=m_1xoPNO-Jik}hwvh5EN|X@^_5pVdc;<@Th;aSaHp7i1k@W^ z*L&#A!2rHlKX)Cn)3N`mMGf(nn^TOmo~Y9zq4z^M-lt$JO}VY8U26}7kc`#cw8`0d@+&`f5XUJ_KXH5tg80(-U8IXMcla z`JCB!eUC9fE)DcpQ9v2aIr5wJ$v`wx^fFzCw#`k0f}@w-JhUC1LN7w;RZZnW(u4%^ zAL8o0)nmb|9q>GZ1Rd73Cdlx92-XjZ72H!pzCT=OkNjlO){01NpJr9a&$QQV z3G^|nSbr_l+FXQK7|AX%usiV5CUH+imF3Do16?z?SavGkMU~cW4V2O(2?kTNva>+S zjn$N;wbU1WKhRpSB=>Ly>{fvmdipGO6InXhEe?dmvFzbD#29Z9n&fb|#XKpO^rLGd z;cwc7Ax8d{voITC(1p_3gqXKlo3pue%!XZ@74y7Q!q0*leAeTsqN>9HscE@tL|KCO zuKAXA9ByiPz?7aEx3Gbxtt%rEmR1K!39)pZ>Sdz3zQ**yzWttH6Y@yKVq>FB!&9Jg z+<+k)2fn?j7dq&*|3VDupWTVZ+q0vCp88t8Ct;CCG7oyw7Apgjhc~&1NE^)VMSzKc zrl3yclaJc_4a(5%%)32Hy`XxQ$)L&N?XfuBx-BLmRT)WwZ*KnZt4Yn;BS^wM?n9Ww zwXoANBUp!xvInHoL;RDCfQM^Cl_CnQE;q*7%)8B;e!e6>K0Yl-*KrJp$ zi&f=7+MVX#>oBpJ2qyxVl?l;autm_O)E?{p=JceET##MWhcu!2Sh@51F5iv0&Ucko zFNCJ)Zfc3n69SoW&*g+OC6M4LJm_fGZVVQY@lEiwa$!^dtHDt-HL9sx$Cbv{qRqS| zu$b@#n>MoVc|$CaeOXm37`AfKm@}WZ6D5Nv(j)6DFkS@Ix%%za6Kn4>IvUbXZ(c4V5_3c% zngjL%2T^YMmLXQ;&&&7a=35e2AwF511F15RzxkgOFC-{z#q1j$uGoa&egkeAx}9FN z=aa|cu^dMw_K&y)4z^T4p+!nH)%Qv$<}`Wm&YFS1tw?EM2i0yb8`J1B$`Xz#5VA`9 zmhBc;nVFrBulW<3m!x}Ed6O1dhmEmDy64w5j|4ok(p=w|s(Pe5 zT$tfRq&S@8V+2LeyR#ENVF88QL+W5EqtM`fIt@T z2D;Z{na_g+Mf8RrLKy_58&uLf1SG4GJ6^01+?j#tijRBPCdS#^J$bFPk-u@A zkPz!YmVc#f_`pRRz0fO=cE(NfZ4%A5C#=YIe$TwD1KM#8+?dwsC1vL~qKKpe+`XN+ zC*R&Nh&g>{|JARbYy7#^L!|+KPPOB>uEe%**ziGQ>7Ucv?F(|FWXo~fHJ?85T@^N! z)$b9<9q$-u7G8a09PuTp&PG6@^XOUW$eq5k<9&&CH_+!P?d~w*An4KJ*XHZyRu!QNxnX`Xy@Vv@|#v`R+OB3^QPJ8OvlmI`q;aBai;4)_f7Rf&=5@+ zd^<$8dLtiqW@nDv$B5THahE+MEX(KI*`6`OJ2gt;J+a>RU_E*@L z{XO<9Mc=huA_S#)19?e(Of( zJ9fHCUF7);Glj2>0Fe|$a?gW7|~?bAIGE|VT{^`2|DBvH-At0HYs z7jc^p7wE)=oNTnPmf)6yvF86gc8Oa4@4atWh<1gRmewW^xW@)}fq<3W2Fl)8LF39o zuzqE|ev#lM|69CS%{KbTdjC#xF{yS;&bk=AOPzHQbg&WY(RxG#KGP27xF>qyHqd&B zA~bydDcfEG{uwkAx?Wm`wM2*G-=3W3MV{sy zKfWYZ8n?U-HjF_E>yZM{_fIhfa368ylMM;Q{U1+mmI5$J30iP6W*PSllaHYHU-eI!`9uOb>HHFI@)v$Fb|Kw0?-I7gFfDWDVBF|6L=!H1O+KTAGBvA;xX53 zZ(R8JVI-Iz8npU;USRLO1I6)UM&LXvcDp9>;G};q*zs9%sFvH;Mf!GT_?3mggrkI1)sUaJ-;!*^Fy z&yH0$f5P#pahN3Vc(rjLb$I11MBeMGrse9?(pl3%XzY1Yys;P$Z!UpNfzzy!#fl3W zrr@*o0wk0h>ItmH-Sv<<_nSz{YBI`LGXLpX!axjB>nSa|-|zsQ5NLzI<5I^vJLd8B zz@E$NtB`p!vifJGd}JL^khmUYOWMOp4FVm%7m?o7%Dj>!q8HP-=*j&n!LSVH?b`=+ zp@p%pUflsTI4tZU^y;mrd=1pRD>*bNGwN5a-1*7-dzrzT)|Z}^CiyVtVK+?cImCaN zrMdW*CHA4IrNC=6;cYJAzgytrd#W#IR1elv)0ZL)KfDd{D}2h2y4dP@jqkgO*Aox3 z5y4&_?bU=*9N&0Cs$hIm2WC}*Bxx?sBLdGe+N1^o-8H7dzfe_2e@hC*opHnA1edwB zap>wH)-4*tIADS|z=12yfWLK2>i=61z0d~7e+=hBMbIlmJUolw(hT?L$BCxDaoxoK z;w+O73*OwGi@KK8Xz@I&#g5Fq zutQwF#~leu*uyn+`OaK7+RN%<$W&XK@ZU$(8HyCT7%m{iP&ik+FdT8+#cj(OOuT)B~$<&s+AU1EiUOYiG#hr5Ci8#R0I z`6uCP@58;b=vr7Hc;;*0yX9bM8ShK&`m86@FS{qcO-B4*U&xC{_j1F|D)%nDM1EGX zOyikrZq4|5JjM?F^9i=SaEbs$l$k8WportNuq&y*$Ap+0#$Dk6JJOuDd0udpA2WxH z&(RpWk@{a85igMVB&tyT+94aoeutVh8zgj}ZaBf|t#KY#$x16eiAWTP*)kqP%7-|a zicIx;+6!3@;Xzw4n*rUk?cc4~OeM&Y$nN4#PN*+8K=iECZm4wHo;dAAX?vmwjPQUv>2z z{6K7&$~DTQovOA-(zAlJScHO&Y$jAew?$sJG#k1!kG)w=v5j03*A2p}_0;vjWS*u? z-#P{gWs*$%F&i+OODK`@Wy7E2lN2G}40BBIde14VRKz0@Vgop&`V$)j`@P9ec><}E zI@RS>v;V@!9jAR$7v8)a|9WPDISp7CQK4((#U4faFe?t9R|b(A=6EBiCU}>)nN`2^ z0iESA>vj2b97S>3-;>mQ##HZBs$FUEtdF;}DYJFp1;v>c|hI<|z;>qH)k;I;t!EwQNbPQe|Jqi^WsD}Dlk4)D`0nY039AFFaOvPjGbjFN7X zuUm;p&8-7`z9~}229{6A5vG~403xHmVepRW2#ai-red6|S2&L*a4GF^v*Ngq#lHSa zwLo@#j@Sg$(+a4MViVKA-+EI!HwNUGw*bc)0e@Vh-*y5p%6e}gzY#Qb(VO`-y9veV z|NN`EgUF>bQ>HX+!YLXdEh3GY{a@*o@A2P1A!UBRECUZtOwL31Al*6Aa(?f?HdKOH%Zk4N#=0vYx&?jHZfmt z$a!^@xGZiukAETjL2joBSFoqhtrNaNzuG*M-7MvdO{h0+)!hQ4lCp#~sDccP&csYw zguQkA_O6V|l_D@h(0GZ=GmCD}nG#eax39y5K3L5uULOhjFxJr-!6Xq*%d_#b5qm8& z4}tAo4ZuFFhn)b0!~+koHE5Xa-z6no0d`+}P`lg(X8A`rik5Jkt9-gRrI0$RPYeU; zw~utKbv2cmqsZ-4_ekS*#a(vfai3r0i%W zjpwkZsNp=N^r|#J;O#HIg+FQB>@U{;hJX2j$|&!Kbd$20Dq(YZGhXxYEx6_RVsu^@ z^oJZ#Q;l=C2Lu#U;wvIXoHk&y!6%cNFHA5j(^H17Cn+4pk&l*tYoNGt5Zv603zlY&L`W558t zgNw&dw#;hVe!2wC0RzN)>R29-4Z{Z%3A^p9yM`gIzmwJ3Z+m-7ww@h8CYyo5HuINL z`q1@+zwK5#%4dJa2vk}@69r{G!ECDoYDnA6b~HkaVC5z(y4UN>B zuN&B=W7u-HTa{t=kR}DVdsri6_M}_^SCr_d)g(Xc(@%+C3&H#4fhYKd`ZPGPO22Mc zvhbW@`nlOO-kgNPQvRtAFbJDA`3jkH`Fe(ecI?`7(jOiz`}En;Zm+PGG-?p0L75o| zOwZkcf~@u%=~${1Vb$-tXvaN)c&@el&OUAyn=8^C7IG3U;7P4j4C&=$wE|+cKug_0m3YvV~H-dx%QH`!2A9Q z*vTPUTAq&e2V9k92T7sUV?F^WqBbC1u;Y3GH|3)S33oq$?TYcbWafh-fs8qq5Peyz z;ttl{qI|q!2sVh8&aAK zc^qg-*c?eT1;gqIU_}mZ5|P!$$Q7*ghHf)tUK$iQIYS4YGRih{uby_s#r*JM+2XH!rk6z7#HnSbd+iVc4tABcMMCGjS*L9iZ$ zeh^!pKP+Y+tp6Ku9qLs zvvaD{t(zF*w$y}c8kXZ}X5fWgP@Zmwsrt)$qOT`O2_*5vnFV3*Ke^DkRpgj2>4we% zadQv`?@^b!96+qwXRXX$}XyG$#;{9j9xBfIdpwmiHqo{nsCg zTEgbGGoruS)Gwj}hD8i0fMw{Prlq&k0A_vfQZ*2=Xq~Ak0lT>lK{^(77-kiO)KU;r zv#YUSzMGx%eWR)O#YOJlsAv%J{PO~O9{U=8gddUi-SbS|b4Z=E<`bWT^JUvqqzKa9 z-PYhE>p=kVB$bbUa{=uPAFG}06+g;(xw|r8v%fa}33!IX6l5C+4;x@rX&F)hnm$C| zQ8))9gzqr8`^u!b^uPu|*b~1qsG{sg#VAQqzpealOXMpXbRYvA5;TK;Sik`1+AUe)e9JT!q$(WR(Lo*x__OLNFLj&2itzh!OCS)n^5Oe`ec-D!|zJ_FV^$vdHilmSB01 z=gH0s`SS*;f8oRIJ{B39p@E$jum+5_Y zMH-G}hk%lDy*I-(2Yo@Bgcz#eh`cvR0lkJU*8KQ*0=o+E%&^6gSK$kPYZvz{aXaib z#u?~{5-5_yLAG7_)<1BIvehfpM*kB}g%97T_X816AmLw8;jDGINABJ)$v;)v z(x=}5ME`%rfRwwy=tt@fsvC=6!+9*&Z9+VVLz&m?O3Y5*i^PPQOa6|6tzBA~qBpD* z2FBoWJT%i@|KKbCL0hTkvLM~z0(dR+|2lsN$-8_qUA%Ov zKPOXiig33@+CbRF#)Aj?tW=i!bgGSls*QuHJ$P6O5@D~}s1qu$HK4&K6HW9 zqkr-8YudzW-X1H!IU=nxBz@gLx&iI(TgtxlEvf{bWGdn>J8Zimk;pMyC#GJy#@k%RcTM)WpG8 z4I|7_BVL{12`mWd5nxGxSGU}Pns;?ocU=H&O?BBKVs@X&^$7Cj#0Oe&wX|33%8c4eP>|n609j zf5McJ%F{NnYEj|>xy$=_{4;MF!nAy+U zOAsQSP$o8&r+Tx_B#Y~jBmGRIKw&bW1$(H5R{#LRqhOm_^Wjn)qlA5Ymfz0Oy=I_M zXUaiu0t3zqV8yTmn}mCFWXi)>&elT~4q{bfsbp5KIg_eAB{*kvg}_}jKh_-WJLqFUk=D5@MM8~a2$nTgDCsn|A|pI7;AoNB99KA0bp-Lf22WhRF8Qsh`KiwQC4~x za<9w!ZLtE|QzDS0ERhvfWk>%jxSsp}g6oE(o=#2N6MOt?CjrCrGUOy8Z2y)&v`DbM zEDlsx^;oDprv(cDtbMdO01A95NUnw13M+izj-L!$z%!0bQJ_92At%3E z>pG>lDiM}3aH>}%G-^wkq|9(dYF=(<`=(1o2le#@6MvP{E4?Y*n98l$&7c3Y(D!X^ zxyk4Se>bv0*0+G8>=AJd@N3)v{@DkZBGf0`A18u;YCR0$kRlRMyI0$GC2S@Cz;@9W z(a~Hk6D2ZciTvd1iR|5Ob+fD4pcI!n1j5}-S>5e+s9moW>Lhd@QC;?dkNjWLy3FoA0$urs4E;2x1BIsFWjI&x92k`$vnFE7)vQYZXMpAQb-EmGHnA} z01ttU&c+PWfXctCp%L@7=p}YK`8NVv6!08`SprR~>@!G`#rQe7aFQ905EW z>&E+03SkJ%N~Js$4;t*t<`~SI07pgva$)to=)p~-on?QcdobkYvp0J%jEE{ zj2W!LU1te)tv(ul0D5r6i98vP{6BI=g{l#d!x-$6)ic-hwKk6g%$q&B>X1_9+O8A1jxWAKc0X^Aukm=%>wK&@_t+KyamDE zXY3bFX8q=^fVtTp>(nX%n-+~E-F{we3BpL%0lCm8)uUt8cW%;a0gk(Or-C%Uh4Qio zSiGOe{u*qH#p*Zg_&SF|9-S;<(M5z_dH5i8BI%4E3(0&FI9f4=nUn!wy&*~53wyhIjnfTfj^Eo9dCV_EvigRGbR z{7E3%4dcb#)%|TYJiaA&V{{m=s3f)s_Y( zw&<6YF5s_S^7}`yAi1GIR*OQHnUYq!{&C%3spxREZCR$`7N}*E*o=^C*(h11 zt`%*nW0qih?z4^^?XH_3MAQ5-Z^99D!7UZs*flo{&$um~+9+QPD-;uuF#@{>9Gtfgw&yuOS9=Mn zqKLMC{?l8iYP;ixx>LNkkMr#U=YzZg{@fWf;&+H@3owH}x>SOExw_*JExBA}AG{ww ze#~cDU%_P92t1{IA+r4Q@kM{4vcA8l*7=JN;p09R7o8uH2EQFUe*42X0Qh zZpO(mYf69mZ;zOCQ^~Viou@=14427kx{gIbx-v*+w2W=^LtNFlFxXrF&M-?H6xzNU zmj=S;+Hce06K~=B0vAIh&sMkGLji`DuE3i^<>S}7;n%toGD|I?;qXZdeAf2KQoT&< z6zQcLSI09P!L?XfAc0E!==#a#OV>XPhhlQeaJF>)arz+)8dtt)Za*QTc zKc8s0kL?Ld{FUoaD}pXK9XW$M{@nUx1dnF!AIgu~Q#C%=<4F7En_ErWC{CZU^csv$ z!AkpX5vakZVau=EfbY3y{$Iq&*?Ouw#3XopOLXvPNV;_)OrMgrL$Vq;>itV}$OenfegXX#pJ8Ir_ zeCQ1+AG4;D)a4kuMv-0XfOxb-fnWu+%>@t&?}HAp!fEX0(-I>Zz;?R;sfz}#ZJ@&8 z0Wu$0Ozuh*7L|~SXP&0-1#qq!qrae;CTXM97slxN^Wi17^D3pSfinYaP z!6C(3OwBtzEX6#2py>tn;md|No>__vG{kqnk0|)#7bT_*-vxE9_&z276<+7`WZ|27 z1elb}Qh3ZVM8!J9>_HTaipYN&_87MR>WpH|40q)(Q-C{*LRYoa)YWr-0C@LL+dEje ztpffm%3ZL-yaH_Tyr5n^mRd-hj0hl%m@*EBUaWMSE8`rVaDl|65UM!(7QZ5_O#*qg zAyF6rwcIqZye-(!i!HLe*7bowwdlGLR$vFY7}$hFOB;bT8vz>2Xsn0tghM%)5o}1u zZmdTfgLk9`P7hElU}v#v4UKAc1R87zC9vB z1BEC`kr_g1N710Hij!lHDA~Iq-H}v82-V%RL$)JI)-ft05|KkjGD6n#`chrj@40@@ zbKTc-{r-6RTjw0#^ZC5TYdLU>PCq$=%uT$3+2uEHG?z*l*1AL&+uK(}NM9vv%}WDi zil%vm)LcukPWO9>{_tjacZahpZ>8aQYsh5tQwFQ7M==5GQ^LtQKvj zPx#I@{~lO#eP?pZCoP6nf*XSIBl4_y2Dyx@zvV?u*The0JLdKt$L(iQ>P@B!nbHlo z6aC$Kbt97LjI)?_?iy&iN0g1Vk3j6-GkR|MaE+i^ZZ+T!0@udVvp)OpX!;~zA#-X^ z)R!2(uWPRF%jW8jhrz#KvMwk1_s{jz z(i5H>`c13}q*O1Y>qLIJzb|y}9Yq^$4w>UV(TXnxCv=vWJWGQMLkZT~LXelP0nBTrN!(j2T$Z8*W-^Kqs7mt~~Ry{orbG|ktM z@JTlzCvTmq$(ZqPKPg}>oX2|~1$=%L8!)K+iB6`_y0Kw?s_9AeqE{)>==Sa&P4*K_ zJ?sAL7~{bhy1Skg0ux9?i1F(V9`V!IXi7X{P1~~)^-<6JLY4_0+{dEN@hw8Sii19o zi`nq0w3jQbG~IsMbpFi)6?+3X_L)(OoY>gX9JASuXN^|M{08vCr^mr%G7nA&vR!qe z=6NrgD2PisCJ0`9rBcRk&i1I^3PW$!A(y(9j5;x`oaR*=?`9N-RFh_YtOWhIy}*+a zz)1Co^IarmdiwXKXug51^#$|eZ45z=>AEmg^K-P0vtG|}B4rNwj)gl@uKXB?{qknh z$+J`qA3^sKo%X430}CVrL&NsjaOON+Kg zNV(cCQ2V;&RLUJIf9Je_6Js$WP=bJUtr$ypQ2r6p%(7aFla1T$;3Al;(5?=Kv(P1U zfR3Sb7g9Y0IOxJz87=bG#51%#GYAmfrMtwzIPhUXZ_gv*o4xpqZI+x9gNeTRP;&8sS69_WJm&#pGt%b3VHx_~8(H-M z()5mv$&|hn#q^|Ce6tTJJ7-`VtWdr`f;v zsR8STV+_Mx^xLMY1g5!Gu?4SU_ns6_wcyarU(iAF6C|GK59-a*sIbvVRmmNiQ@j19 z&+q(PgHpBsPpP^RY=Je=(%4gg?GvmyL{mOXqlQ4N*1jXlm7%H7N3G(vOenOv2>?#n zmO}E8>f+UNxP9P7z|D05*M#UKf%U=)g%MUJd<2wx*WY%p$|KW0DMga zcFnN%4k6?ra&mf)E>vbj#Rjmh-Be604G-i27%0ur-h`D*7a=8$kGvU>K_(YD4KP8Z zzw&j^;3oNO=H(0z4$u-yqUG*8`v!7S>&?Hz%pf)T^*sl|abCjZas=sgSP7Z1n~&wp z0%xd0O4+%u@7OW9$ZwH|LHLkuM4X0So4pmqpT2vJu;Z<|1+rD*>lp$Yc%TUI{}sdz zC*F#4-F4!_hKQHidKiY_qn|B&=zb&Ia*y8YwB>tLr*Fp$EVG!O&b*?F)9LbJMlmsd zYYF?~0E>5mIR4&s^U$3Z=qBVRMIqUK1qMryJOhpXJqT)hKIXm1nE`G<26+eUASOq~ zdB1y$&~3mX9FR{d6cLwmx9){S%Qm>TS~7M*65pB6?d;Kf9eDQH2fH!Ny0vy_+r@j1 zVO-pL`&Ai~;5vLBp9+0Wj$p?p->D?q3Ddl@*z(9%had&%w2$CsXTS3O8S%PnBlqmx zdyiCnKDnhg>C{zwGiBm`~;uml5U@I316kT`3HIq7b@+w#-L$iJmh$h z%8tS?ga3uG)k`Yn$bA;VhKdM5y=%dd@)gf$aKh|4{7~`1Qtf2liH^(FS5?k@E>*Fs zSu7ym6(JmrZ%8wqn0K|A1Cf{YfvH@7mzdrj1WvvyOJ)v4|FI@1RO5JogNVa1IW_M+j_ERS5 z2{tLVA>`{F;wO&k5&)qGZ_?Ani3yeFb`OPWA&3aVTx-_#Cd|4me~TqG<_avQWJoQN zNw=B9jBW&LHCFLt-TBhYRI_@1T{y1?{3BF-I7pzH+)fFQkWJE05?sFNM9xS@vu=EX4)=e2r-`LXLQ4!Th)AqZw7Z2 zo=`n+*(ULzD%x?wlbfEd&m#X(mTl`1mTlT``HjqfGS&g$@K~L&Q z^9mu++TZ3qc5d!{xVtCyb~3c#Zbrwu&C7GOZ;~|1a`dsWNrq#KPwE1wm(p51q1djoQKj>-x<$Vm&TLHEf5RI&$;zC@qpml zhxktIq&BO&9xT8RccO%+I(6(MNT@&m(TNu8cE>X>t)s^dmbT4$@p=mc_y6k?_CF`H zay0p)f)aS|zqU&aP|deC8c-7<4YDBQNy3#vT&ye$0=_jcTY@xVK%3z{qz2}6R2)=hD)D*qw1Qy!4!-im$hz6oPvDrP0W_(&D}V@jvZ?V7)EQ0 z*fda7P|A&qUN9OdVdRu zmisW#i#~uHcKXJi_Sj3i87@-81F7LZVr1^~E~zY4#s{Krd`WnT=6&X?42c$ZI>k7% zg65<0$;an&3b)-12B~)J>B0nf8o5F)%Ym2%A6VYzTXK{6={YvpvQUvSzy;cU&(zx5 z3Vrfwreq_>GPlu=S0;I+C3Ow}3b9O2-4lrbt6TA9nC9;`Dtuo0_qvxEsy#MKzVD&! zzj}~2*-DJ((5r+wGyd0#Sa4mc@%t4-^#_$R9HTJj2bh5-$M>rlJc(?n{SlpEq+=>M z+^bhFZFsv{>`a{a=ya2NVImS;%N)9CT*B%qkK;NaAa-8pRK#>CJmR5dTIjv)8{uGa zgnlQnzP*rZ#M`I0*LRp5hF^!=WoKEDt8t{9Lj%oE2UirnqnZJg%YBF;yAI;7H8KvBF!X^d7 z+FBd!<&V)K#j_HTL%~CMO(mIdfaQ+y-}N5WdY+GKETKvIKwkhR3}LIHd#|m!(p?=* z#u#i^crlXX{x1b(gR-GaJW*FmWh4$rGRU`EL}84&78M}Y^dvYbonytO zbK*MBx3q0diU-4iip%nI{9CB+%+IKJ*V*Yw;Vm0{evZn?)GE}dU%(`m07a)|wA4K* zV)*|aTCV$-e`3kT8-l5e*iv+5P1UoeC3(W$9i;6~yRcviVYl6&yr4z@cd^S&JutY+ zS_~yhLWXPoAwv?Z)Mw)|pPbEUwn2#QkR+N1u|2>Mn*gU|GOsrT$*#$qix+R+I{Ph$ zCafK+`u?3q=F*M&Qm-e|iD-f^sIR*q2>>H{ie=~t@+0@@`0`xE$BCAsd~yF0V;B>C zznLIxg!{Ckm8vtj9^u=FoK$ZfG5=WL0BwA`(N{t2TP2Letvy6Q8YKDp;so0cwEbE$4~n#u6#oohfZrRiaFQ;Gf^?#D%yT7 z36~a!7f}r#2;VGsX$qRq@c@pwx2S5m)r3 zG=e?r1NF}4O7b}h+Eq?NM`;+nO>O*+hhw)r?68S#_Bf4O^W%*TEPIy3s$#g-4fdcd-ZE+Y1=l(vzRhN&w^>Z+QUEeeHG zgKGUBGC7C<)#9N8G6ff*MeM-%Sw6wGb_urWG=W1ewNJH|He5y^(Gtud4}YGY`dh_L z=wNEjc-a7E7&*5>U~Ur@!2zJ z_u3w6ID~>Fz@>@)uIC(MQJ$D_DVtMRz3IWGRzS?_jWgC`%d{BwGK#3$&&QVrFE@Vg z4^^+kU5&}C!9bwfsjwyY`m9twZLfM#8~NUIvr{QKx5~EP9+Q}PGQ3*sMm;q=@fea? zT=ilD=r>MDXS)rD=->>?A&Hl7l>(_-N#$_OA&nVx)tSGtInKzcoj{9#ZBLR29)f`G z&hLx<3(0@H0A+;5<6QmUe<1AW0D30BoEa0ot4m09xQ|Q#;#v`Aw7v`&=wbEO=!Tre z>K+OgVd#f-`yx(gPL>aNWnyH9pUrMK?>WxE;R7$7W{qBD=EQ1K=SSo#QAuH8z6P#vnLne6V; z*K(`;u~v-N|L2c^tAr8&@@?zdczU$Kix6N(&q>2qRz^fLjDoNrr)`Q~(RvBds+1f) zWM}cfJIB3kg0iOFV*5bfL@Oa#m3Zt+#K?b&Ai#Ul-Qrv#(1wWdXux|p!Gqk2~-%|*1vmds!g4PgQq09Fo^nVAR{UK6`|6Ye>oJJT^{I_@HEkYYk0XZhFO zf}}w-ygdCVvgP~If_IF}&G zgv%TrXVhHOSwdzIY61Kqq%qBVxO|<2zvUuk=UX4Q&P|V?0~csrAqgw!3E~y6P;JF- z*oJR9`GKhbf=aC+CH)kWfx6*bAT)1_gY^>)Pw6uAAC{ks5bA6)>r26ecMnliP4H&t zq)e6S8~Md*_z5GEU9in}%HgJEN5~{ayO?Cm>>L#Jd9@g?Hjx1GWVxDS!EnV!i6-)_ zJ$TqNNUxg4VUP%+h-e#;+N)OI7W#zT>MO_^s*vjR&PpUA*d(??wtgrL1;(BESrz>t zQlzy`q47S^Dkj-Ujh9p`n#Bwd*c;rC>tYvIi9ZMsz$)Us1cLF1=F35vsS5!s{`8F6 zgVGyCQ->Lz@fn8mO&6~Y<2$~mc{rC;%+OU4UMb~;_zj(7m-Y#Jl-`=OZA^}}8JNM1 zn{L~t7D+^MJ=mH0lHoXcqd{{25!yT zZw*Bj2c#K|{nQe!KM?T7*idWGP9Op(H|{=`$|dQ6#`)}qx?IOBa>|lf#}#N%Rkog zN?jg5TdTT#+_p}_tm^L62{2{eiP=(o5zCBHljn9w%zCYo7@L!&5U~^R?lLj^j()7v zElDP;cR5RBm*ePO&j6e5v7dFRi#=&%A8GcsPp&(GMiEvtFx?(EG#TMpaYyL zR?4dCkFcJ{%Cpe)fq?_)Sq6H@fzziP^S)ydiOX zusQBeK4A$CeH+9A5x&#)8xu71Takl%NP#MmAndzi4>hRh9!KjGCYM_O>`Z#{O z=J%EH8u!&Y(n9zBUN@5stIqh}Cm9}nZaCWKZ>q*$^5_wty<<}Ew=h;!_V@4KkUa+` zejTk~D(Zd=LYGa-M`X#FmPJtOXYzvto@eYB`(cgK^w(c)E=Rw^e4hT9qU$hH{=43v z{GHu%Y3LqHe5xnGyEB0w8Nnh{L|$z$8O1s=7_1hQ_27&=$C*S|>&Yvw(d!#)_H3}P zN_M5hR-C}n5jc>eqK=+TqH^yGxy1bm)~pu|M$U)4jBRE|M3=ZSPk?7J!_Jb-|8fbp zufSrIHCE-CuM~6BZoC>J>M#;Nxt_06h%3Yr@-h|PSG)I0kqo8wrsEv-Go<}v{p-Jw zF?cm{Xn=66kG;7qze&IzD)|B8n+8gyij-VulkPo}bZQkjeQR4HEWJ5?$!2?DV8uUP zCNSW^%U_Lk9wj9u)jK1I(8p12lE^PROT%9;ajV=K!g@+CNd?ZMkkx}Izr78g&7We; z>`u|jOBn1_#a>14F8LVTSu@_K*!1y`?*PGu$LFVUX_`VEwLn zG&!!=0{`ytY)k4eA2zt34) zZ8)~;h~*ZX!^lkH<;IU5K1&u+-kj~#EirEy^Fa(2X@hB}ovXnuMH+K;tU7Gk4rx+P zlbFxW2*7m-H7rpTr%U-(Th(|h;|6q1mXFqC$V+98X}Tu<4?dl=Z`w|T8jL+Mm<3Pa z9D52icBk!NrDoOR#15G8Tl3bdn8w1Zq5B}!b{SoLY40E>lV57 zHXRLti?{rQ32<%?iC?{EE+5;qEN)fRaS-;qPwlUQp3VTLqpAh9Xeq)Mv>jQcL2Zb)qChx zGHX3M9B_HKkk~1GxYf5(TetR|mX{DE<+SSUg|@OIZT89>R~q<3}=6-$2 z(?zET9IPvnrUZF~>b5j8WzI!X;|2{~Bgyy7W!6ALno_%yp`9^Y;VV_M>9?@r7Om&~ z54Q&;^mn|^`uC1|&!$zcx3V@1wv5{J`EC7Hv>UA`Oct^It0B46HdAcY>^5wLtRf|` z3=K0teKUrt*8@-8Zl&tjmDyb~^vUpEt=!*UoR!YlVVe|poBK$nYt3~pe4)+GAFY)X1R)rGf4 zvLdHlOJ#@2H_lqBILpSvE9~_Rds4-xDE*(T?MahtBlc#|8HFVQwXK8+?%BqXm z^EjL%;MJnv!Frono2V@=>(plNqs{Kh3Ww3^cu2RpA`z#hZ59DdT=QpUZeHRSW|uLhpUVp z*Td=ATxNTAFoDNMlRk{MRbMSifv4Q$y}dZ-iEiTvJh)i#)1obkdp}jK_k|yb`EMmx zYd8O@Kh=o#|MQ0BQfi7nd52qX6-1@zt~j1&Ylkj3L6DBBA+OZL`9n2JIaZw&A}*h; z&#oI3^4(c-hQiCw^em3oU=0S#+!u8`S17k&I^iL0Pk;&4T~75}n{2AQ_Q0-k5N|w{ z6;%V4RFlJq^weq~Sl(v6^Po?vYsPd;fs*OtHJ)uu0(y6gKo`t5m&;gKSy@FV$d7Jq z6V4{!NL9H8*dpKhFRf8*tQCYPHpwyXitQ&d49a!AjN~OBW+CIH#Btx%IZtR@vWHtLJ;P;|Iyy8V^WE*8WR&}j>^H?5fa?nTM@P!7U$T!Q*+W9)}$WbZxg?{BNXAj%oohQ7J+sl_W6LgKQ zde~PyLtwyt!$W4xkfnuU?pVk1@9-$~H%7@77A1+F1@udA4QJZ4Sr<;?M-a#-%a`o^ zzVtTVhVh)Wg3frXEQxzT4O;~t=oT63oA_@h)HoqS3LpG}*MnTbQV|)Kn{2k^(%@-` z$9a@SZ-3jJ=WT_rN$rd|NFm;pxi6P`s|=Os^P9V9lyM-`NQAytxG%cl$Y(I*lUCjv zBW5h=n~}TH2Y=B5%zy>7#$&?Rz*mO5RWQi_HV0OF#?rv2U#_*Tv+8N*^X1L9!wR>> z-F$cIF}>DvHeGNZsE4}pqNAPOxj0Pmi1yiD@WcvAt-5GrBt24h_P6JLb1iMY5?*yh z6UX3(a{4gzy0pRiux~5;>oWP)kquqDfRe3jzg|N?UDtip4~I9(%W3#KERa6WvfSoz zD|kG1vfr`Jo7X=TJR_4a4mTmxO=(*8Cs5JY-ZzNypvg~V&- z$Vko2p=rH7*&4c+`O2NTktG zG{}~N#i=2% z;~pv1Zu5Ub3}Ip=gI3>PpB3b8@^z>+9f~GZ`B&7E-0#4qN=44Dma$9#m}HdqzD{~Q z)QYo=b5fzdSjZotcGjvYC&O<;c`e{2Pi*{9L*Oy5R1Z86I)ssV`|cfw>EXdUmFEMV7zArJyNDMu4Y|OVw>LwHDF&SOX;0!T9(%pKTW$UG z8p#+2UA?Zy?qoiTgXi=m)2*4w+^h>4bn#q17wzxZr(p*VTRt64^fOp__2tPM+*W0f z($mKGIc6swAJFSCuMKhNE`G35NfgMH0od>L=tkaIJ^sPmM?F+bw4#OD;@nN|v=xgv zyYLu;#Y%IwnpnFxk{4?}APQ^n^Rx0NGT6QjcC;P6HK6^9l6_56>rwUaNW5ZFAYQw3 zjql74C;u{Uf(z{vwF5hYC zTYm%-zxvRyAd0+R^m52st)OKjJ&r^m>DlDI`1*AIy->YUg?vKYM4^IAdBR|bCSwD# z!AKZO@0!^9x2|5fWR}rK)%bL4e`#-G2}e9nUkR?aJdD+`vI*s)H;G6vEO3P%OqG+o z4-$v_OI;Dc^%%$S`oMyzFaGq5k|cZwo=@)4!CG^6xfADCu5gwYH%by8keeM*K?QuF zNUU9;J=Ccm#!}o>Y%HCr?YgFS*YvSXAsiDDT?Y9@4s{an6e?-EiuS~8zryL=-`x2J9Ow(2h)7VO7O>3yx1<##AN~oNbv|)a&m+;|N+bF_JssoA~ zM2uH#+7+%PMqTRUXPO-(e@BmeC3rjmV~3dVnu^q_yPe2@NI0eLF5^MJ>}P;J{3Yz^ zan=7|cYVd~@xiR4OwdwWBysn48zJM%z*GBUkBOamVx4aRRXBB9cGX<8MWi@=zpo!4!W+%{DCyQ zF+>VS73wKh#?@Ve$kW2TE;0$2mI{##9IIL|bNYw~qx1?H`7gwDcHgBE(_s$_6%;~li6m2kg<`01Oq3;+WztNg4A zT`D@>Rvk-uK?xqPB`GuFAN3za8bgaO(c#3Ek=a&bM%emW6P4ZyTk^T(he-U=f&N_^ zUjChrkMYL5v$kAm(9s zVMiGqjZVAy5!d3uMwo92$5;g&*(?x5@$f>Y6O~d`Qva;#l{s%zfavkXuo>tMbv`qUz~d(>Yf zZsYc-G3dXHHMpMQRIj{&S@YZI;3?7?R@ zAByFMwJwj>h}rAIk=(RWVYk(iD>W=ZHXg2DEUFnR$#&Nl?mgJs952l;s^;rhj^dD! zUcteH=<1(h5Q848@A~7p@9)(0W1S`{H;7#|I9DC(U!6Bvh2Ghqkq$OvmCk3=IjlN9 zUTqnYNs?Yr{AR69Tc99-;h<)H(B8dDv`v7!NEv z&gPEf2l@O>ml+x32;o$mAs5%ElEwg4EO(xI+S1a3B7K4Ia6e0bRK(~KbzS^nDCCkt zBdz5|q7khJ)btL#{7#`|`|~BmkuP%LB~}%)B5_94hTTqgUeL1PeCs@Pvoz;No02~fTc1>!9^;Fz4?WFw1;;g zUU%?d+wZniX6=x;_uEh&be_ zi_rVWbCJ;tA8o^#jUiXno5Sdg6eUv%ko89O*sk3#O~!y@4`7{4bb~WxgQO=~yRya3Nv&@zCO4AAg?V@@V!1D}_idCV81Kdxn#hF4Yd$NFWt=C$m zJ-pV-IkwlVKj%gDMkjxB-np&$zBZ{MFid8P(i`nuj`dK|(ol&U(4-nhvmL&|F?Pv! z&7Qp4b00Lyrlw`C{Co`}EJ+1=sR6h(#(UG6A|FxvI*eARedMTdA*!%c27uKHM1%s` zASvdhfZadg6p;htx97s5RpB@ep9nnmAM!XlB$@n7lN9qh2Gm~zEZ%0kHz1K)%h-v9 zzGpJ-Z6bk32aN2;3^E6wK_|FBIh`nATMa&Wdd$BD(|;<3<6423!-!Uy^-o;j(I!Ws zUda={!2R^>oF!K{(|~n}k*3?|k7>jLHGjGa@pQ&cN}jV;vx7j&++o zlFttJw>1Ir*aAvd<$g1BRsd<-GY?QEg9Z>!1%EbDjnL3tJB4)x^3cm4Z!cC)$HK}3 z4t=18mA_Co^ghm)B#r?RD!ThnNKY+lAQGybrxmidlPaLccHjB~OtDzU#%Y3G(vda~ z`dMZ+)itDzBg0{0=OiSF4O$Bk&JrVd$$_BlI)8@4e=9~B$N|N~#7xtsqBbf6nAA|Q zS!lrFw(jyMwik7INVK*C?l+YU(d$|V(%~1Q8jpD}ULJ*w>*2+i@-ql!Lb~W-YSYMWp3xY%xHqTqk>pu!z_8vC-7;z?A6ry zk~|9Yzf_e0lv;*R*w$k&qW)^tm8cCUd%}Gib>wZ+(KBiG-hO!TrFT5(uWU~y@aw7< zkGWWJ1ninI@oBXa=>vgM!t>||1hFub!s}AQF~B~nWRHM;r2f33TLR}WR`~*fFHm+N zC+e6L4peYJ+Lzk@P=CBJjM@jYb`J0e!L%Dd9uPF$)>ELNy;j(>41|l7kiUQ>SDU>A zDi^wq-M8CatBl?hY2=aQu`)I<5v;EezRNZ#AT}sb>%CXMUT9QgJzi=or;sNhP11m@j79t zgpcXI-IXl`q%kAz(6Sy0{>oYaj~(l&!pIjaY@)&gVQ&HOIX7t4 zyOPO=_wW(+!Lt-q*!pKOijTXQCS9-22h#)eIC)7lg=coO1%iMe_!2vd@mw`#*@B~J zqP2aB{a?@AJ1J|;#K?l&>%2aSlC80~P16;arO$pF%p<(i$mlUV>LOp*r>()3BYYEp zClu(?9F-F0V9-S~% z!Yhtvt}n$y+m_>j~`z5sz-y!Drgz*qtc6y5(wtVdJqTU{> zgtRclGa%+GU2^87;}L!}DXSZh0|Fs$z=!Sc70GD?%LflZD*PyJnG-bFS{z7B&>bVH zEEXhcNcrx#JrJ$q%{5=8q+98$e3OTN!a2%;kOO9E4`yS;ve`*`f9|WLoy7)&@{c#EDQlxdAeY28*%R7Z+kD>Kqeaj?+ZFgv+$j ztE%NqK;_O5R&l8Jk`=$=`3>462tFQ5LtlWhq^t0r+1=_Ay7KQi3JGr_`tNU@^<}r- z-!yj%&Sn|?qb*eVFX21uB!9obarSoeK^ zV@!DhQ>14VRi&5?02~;GPen`b-&wlyq&FW`iLvc_3RA_^W?X&b<*UPaIUqmnDhfgXn3}H5#3-6#uHY2Qx&j*a@)S!ksLAvYKLf&>LxdV&yM{$F(9W+Ty|<^_gpN* zE&yp^5Ql;p-5mvZ_p;}b5ymb-lH-}wc08@IoPLn^_JHo`Uc`8{yQbd(P(KXToaMsK zJIjdHk^xBh>U&V>JT)ec8AJ@1T2&t(k&W~_Z2P`(`xJ=g%>b2uo02C#-0x9Z7pDq( zyHZXA;f(=Si*D?%I3bhzVj}Y#nBe2oZwSTH%v$=KqHc4~f%vZh#6#EMPnfl2l>|O& z4yVE@DW9!ZOy(ajYtozD_XY0&+lQoFr*z+@ryl@eqsEueGJ-Q4F$190H;^%f6h^Ot zI7TZBZGQlASrl!jiPsQuS zZ+>FQ1fnPGevW>b_1&S!UVO>}gpS_(mET_#-6tDQP%=r7d|D6XMNsl-k*XsvQu%}s@fRNOjGTa;9Q zsZ*OHbmNP0;Gw%(l5h)3^_E!dZAjLs6GB0%9f)_T5!4>|PG8`xaqC%&*YPx008Ffm zjAP9p_W1~)2XF$95_QL_-4SVgh;fI3yo6Cah{01DQh!gc?8r53SUn@|9-2Zsz$(We z=qlVU!TcdXaR9jo69@mKDJjAXUUZ4>e>%LZ!r-# zL+;RG{DwbYTSjVD)VQzFBRqT@K!rMBE-c^+Q}Ae$jLhYeN=aW8qpQnvDCC9)vZ!Qd zYw*S5#?Uc92eu@+L3|0nys^xgX#emL23xXv2}k|%2*y<=ii-}6P>$u}SmJUNyVMAE zQDQXWM3MU^VV$(5jVCE$PAgPJfIwAuo(A@3K@{Dz4E<6rk}pmtFA$ey4}uHGaLzwk-B0R$MsgXkUM87 z59Wx6{|Nx2W>!W?eLNX{e{t_V94cY?p*vg?i}y_!z?!MM(toi|uor7u>VQd3mpW02dgGRwDm# z0t4Pm%F8cu(KRX+Km3jq zBjhMOrWJx@-6LCA6n=$##Q&XbHn`d%?Z1CZuNPNa!1vy$s&p(6)=`=#!n|~?Yfx+* zO&IcbN*ZV8*AcL53)>eIikGkK$Sa3$YkI0( zE^-Qez_l~ECS$Xvo0Q83H-Af*9u&d-Sx^kp{@ID zdJ)Zl7B1$E>Ot(?eWApryh1N`47z^b4&yXINDwR&js(=!t*|vl>q`@ey-Al@{yoU!80|?12Z)Vw{l)C(9GZx&&*w z6K>EJhM9XeGEa-z^|xcL7%bc8kF(m|fj!kP)l~FOJ8zKK4R5tS#ZT6DH1Xh(47u{r zc-4f~V>uc__vvD?&6V|C!ud>rqz0>wJ5|XK;a?uUkT#>3KIYK zfA1@UJi$V)Ua4LjyPGX~t{?ELi-y+C86b@s4dma7q}-WdJBhbyW_`57|=@mCS_x zhp#4sy5=2*OHt=8-}yN018h{cI2&L!WY3?Wz|}t|2?_kD7hkhD0zLw@W5XVmsQ?NW zP`A~xn4wvz;zY^CMh^f`_yh$hLIccW9Jt~XAa}%Z3S2u=3}yEFX0G#;tf{2yH?8cb ze$;!wjWrhW8iuJ`({UQP8o0(_eCI-7F_~f?r4pv$o@%}6Qbr4*Vt|EzZwRII)vW^P zMh;jH~xM#BtouVQw!tK(P*?3Xn>P1-tP9{#H>c*tqr41?K7%O zBPx=*N@Ov`r?hC)ebwanS4ThIX}mcXumqkEmUron`NyIYt5T#>G>LN)GI!Tri!Tav z(8wbCTL10Df`IDHk5bjo_8nepxfaJmS9w=kkwJrxc1=x7bqHfspy=gbL>RQ1iCeg# z5mT*^=w-osUGj2e;X$!b%{p{)`!aNa#0+|P0kaSt=fXsrfen1WrC>YZ@dwuEn;B(` z7~C&m0S(9}e7ZvBDWR@k0T&>VCQ!mwS(2;q5iPX8z}Z3a!$Ib*tLNNQyNo&Seuw|w z*Emv%0IPi6e7+Ey^{3e(OJu&DoW+mcvgiV>y@fN4uydGut@_NP=W(&d!H;?UreSP^ z&0b^}eF7ehEUJ3CFu?yj#d9N<;REFYFWozQgL4T=^AS#2i-9qYyK;Pf%BFiG45)33 zn_QFIdhTH~bXi?O3?GUsoWEumoCeFHzf1FJwO5W-ePp?Na=C+tWtPZw@tcustV*_e z7?tY9BH857fxndLpuw%!B-@34=6BW$hD>ysIe%XE-ph~i(3ElnvfQ#`Jsva%;S6@? zP;RK@T{hw|dZ5_p`>otg>GMg0B-ZKECK}i5i_gML<_4ct@0#aYtK~k8Y_vS4oONl} z>Qi}6zShFE`Cs(BD|742#WeOVU4xr)(5b#ZlKP?kH77?A6nnNE8m_F?|Bx1jWTdpP8zh ztfz;93;?->7#YA#@a6=(^1_yze=fJqxtaNfGB=fCT(C+qUd<5ML7{Jslr7j_Cn@{GQ_(rOfh0JGRtvs#Uq~8})5g2Z!nQ#^Y>t zwQ-M~mGOL9!Ae=V@Y}{A=D$8a_5loc8|X21Aa!=8h@nBl?@}9*L+Jv20 znYiEv8hA@zU%r+oBouj#X}5v8ni&#(_D!jBH$hC zPKw|xC10Ji8@vtmZ2BjhNGlrA?7>=L22OMbflVQ@#RfGMeiltdCCuZ`JthniKZTxV zup2BgYO)2%^@!~JU$htEAk&BNOH(vo)Pd}|bRo4Op5^fimB))`=JPkHw!KoIo6CExKlFFmzZ9r619hRl z*4x!H5Ky>0y^_p;{dpdW7F1~rn9tauuCX_F2eWa?lfd74ziP~yX%cufXG9*w-4PSM zT^G&iGIp_qg9j4xdiCe$Pda{1K0xpTR^QjoL}<$2p>K-O?0`)qQlx)*q=DB9Hl;!isJ>l=_ib^vj9h;{Sn*m~=PmslSH2F* zZLGpYp>QouN>)y>8Gg2Z#xeYR9YWxib>Cg$76EmsAN^Nd8YCzrc6tib;LazH)bRr6 z;6Kmne!zhjOBO}f=F=(oWQQ-vy@)@-&vf{02@i0i>EO^l;PB2R`Vj*@YJ3w<_Yrw+ z9jEJ0*VJp0W=&4yue+x!MrhW8^5V$%_Ww z8jPv9R)zhrVRxe8MBZK2w$qNZgNYF)H-1*DRnIZ;wjGCb2@mp{QyJ&uiro>P%iwiB z*%eS&V*SBJS14)u&0UX;!n23Kj`GC#KxHi3qS&gJO1lg z`hsZ6uzVc7uuk=%80mmk`WYwUqfJg@i7Pr~TY1LK%5y?iaR+1-Op zlp;rh$I_a`B4w?fUCh2b;>4R9gasZkxMlaDTHy4~0i#CMnKEek%b>{ke9?XP1+76J z`>OhwAJ{K%)V@5yeY_E@LzoCe@@bzN1Gg_b?KK^vC<4?bB+k@7`)Snm+&|6X`Eud( zP5cYS4ZMq!6>jqyKsUTyFcFVA14_vT>?Z2#W_mML^Q7IDhJI_mQgVJnvpGn@Z7pW4 zCs6f~24Mz_X!e*QUb+Ve8l1oreVq_(sgF{o4V%to7CMBHd z>JG-m253_FBdrT7s6xuSU;gs<_kk6)68Gb?(@SuxFjvXbGY%=-Y7V!IHtOB*Y%!YQ zz-*pIg38{vu_JKzhbI=4*%jH0A-qi_>kIB)ecAL*KR!KI$aBlk+KXA+<39~+i2PV& zbX6Q$8^inymGg>6RHpYhm4+cDx z{oT?Kx3vtB3AN-?wH?Gwin!fFm_Sv2RYBBeiHy1Rtsiqd3bGjLlyr6IbJO4LPa1EHZAzUuiN8M9i`#r>EBM6P#L>U zzZLPX-Wqknv3V-(ZNdVNc$w~S61!#xDH-y@19S7N`%Xv~ruPRyq-dF}d~_m!eDv(` zMYX~g*66QasXU%Z30R^4vlrZgE9FbANIp6S8G(U3Zifj$VvoPyQKXoP=B2ApV39+9 zaj&AhB|^dCk~!e~nGPkkUz9#BD9chyIiT=TNT&Lm3fvbqTy=DoRD-g1wX!&^^08p7 z3lnl9J}NbcG<0wNQOEOHqTq1IS$mV4Y7W<55;4iO2_vVe2y_;xxFMm5YflSOpJagFMi;t)5M2k3;>_#!Q%?3S+w#5#pv-&?4K5f87y*v@kc)rPf$*rd z8UB*atR_Q`nsP&yF5>1W{@XAE8x_e!B>>Id2*#_3?6`~7Cvb1-T@~({EqvY-4F%)N zxxiE-a2IuP!o`b%)3x-69_$fW=n^@A)dqs0v<}1B=|$^zVuolW%Oax*6~UuL&Cv`@jnCIhUiprU!JlJ}?|H~|SHIYx%zE;e;3q?=VE{EN8o;%spd;-9 zy%(S=`NQ8QzMY_X&W#p5{-Qu=mF>uPNrzeSy2aOippeFS zAmSmwehdj9+i!vD9>h#{(zQnq=Z*dTs~;S(0k;gIu0Bp;?2#`&M z^4;zMyH_Si>j2jvflg6SpkG#UYW!L@$i&(FUGbE&nC*h+Vgb!k5tcY!Z3Aom5=e56>G$MONeBY^Iz z@DDX`Li?mSKTNkL{+npx&H-P`?!-L-H7es?A`*re{6=I4M|?C>EAaMvX~ybjKCXzX z7}nT12=-QEQP63uu?XMlk;HW-1e3M%Y2cm~7KbDM1Td8(OB&a;7@-rZA=Daiw>4JA zG?qt#y@eVCz$O|_Bq{U#zj-iIWt(u7XVQN4fUtT8K__rd4b(G$fD${V+VGSKfWZgcDfD|hatNCY2zJfl8_(MCd^*#}$ULb- z^1SsBG$Ws%5Q^fi%W{=aQCOq~sham^psd6$79`*HvtCZsynDp|=Bb1SXk`|LIKFam zX>|9t#*#M`z!1^1v#lqlV9?)FS<>3Z>J|ElfdkTVd0`JS?!*op&BA7N22=L`w zpFMt%Qxkf8Z~7hW|JFDv^r+pf#=rO${g|8U8yXcuUf z-zLb&FxG}Ml#Ki!Nr)-$s`rW2Q772m26ugdt4+hdaZY3I<~;5=YhDnj3|$FvPd_O6 zB@NKu{>LV!3issIAEv!y9>#oh=xIA%{UaNL_;;*vogjjsKYhC5K9A#mxY`(ea^csP zP)d~u*wK^=++I*`*YKSk3(90bz*6vaE};mHFKdlu3>3BTK8xZGQqbSu5V&bRbDfMTm$XBT2&g1@m70r?;{ z&DE^dYp(xo(FO%!Qot`=Ak@_W6ZrvP^-_C4 z+JMAl1F%_?P~kk)YPQKDXqeL+&Jg|+ZCF(bwkl+cyUtXSJq!TAWm)o}uw+ozV+*oN z#4SK^qgYu2CN#tV8tF_-D77J3Fo5v<1U_zSP|Zb&r!d>MP5{jpy{Ry5 z3NhP+R${CO5?`8%uww=uF6Qyfe!YLvqztN$_GP;q?d?s6{_Jlb5-4c(Z$7938af10 zcFk7EuBiRcXRz-^4{T%60hOb;ReALS??>%Y)h7E#61*@aKKVX{n5%2jds+SEx&39? zln5~u4Rf8{ucKhgA2#9`6pUkaD?w{<<@+0245*4Q^7`|p$s2#x0Z8mVplWCPr`QA# z%;iQ(EEM(l(b~4f>UOP;v%R2b%?KS4itRa@V9UO7%!*s0-jXP3wJ+3IPA9}!H~y0vwUh*YDXluwgVOzd4l z@%R_dAho(&GU=B;;sb9l@2TbC)H?N*_B~_b^DE=C-KI~~;xk!C%$5&HsGAB@6j@HT zb#tRjh#!_HQ1pfbN|TDHnpvG{FB*b9OFC+w?mlLa-u+Db8fxkYwt#_MUC52Je^8-- zRdmA6k)XC6KsRC^5_XD^f``A5vzI8_V?Fa&c}=AEh@yYtw}t^dN918&FAH0BW|96_ z`f>GrQ?v?mYvT<}g;>)3*T@J%G~oY9?u>$m)qO{!;RW!VT0WvF3K zC9wl`ad)q{YdS+I2NnNnAtMiJK#k?-K#)PPY4EWmz)!LxdnCnN+~L_-1HR^?IH-fi zwQy!>pZ?_P!-2y3j2b%SI zIU+JXKPRwe-GU1-r~)-mVUWI((|~aIg6i(2x@K|1rt<-|s=n>ZN+<%AUwkI@wXkHc zy)3ig-%jwk)|D4zxGk+6TmJwVfyEQqNs}ihui8j%JPA@7uGA`)4(m7f5r{81?^$J| z>ULe=2IzuX7q>1bw(`;y5WC!_WGH|#GB}3315BoX#F)SJsOl2Iqpg>Uj1}s zQU9gpTrp*eDcSrlP*KD?(vD2@4T>wwFWZS-CG zBx0q)S!dQpzgJ}05qtLOY7QuHl?GcxZgKRL**qJ(c^yu?(ZUr3n&5QMV79)P1E@bVPCPEk}(9H;$Fk zhwQ;0*Md#&mE8Ox+Ax39#A6E9h$yVi?&6AmlnHjX^`k__!0x1uN|&^y7acK^Nyy5mFSH&eMmef`oKa$%I1J@5Y#9IX^tt8Dm1#;0~j z_S<={pO``8MM@)_d?zVnPCj^5@L6rMZfe6`=|7sO5{FH{l3&2sMcYw^`sFaN4I042 zsZ30Z^jPP%`KxsT?>SgYWIcZ-Hy$4!XpYqA+Kp%>i*!U6{=;3^q%I7fSRK%XVJ8Fu z`E_ey(wJ(+kyl}b1~C8q{~>o4iYQdC(v%7;VeNy%gHDdXugkdZi3 zPFKFw$`&X3A;F`NK1)L6(*^w#tCh~UwLcX1(38N6aS}>%jpCpfY_k18TBZnQ)CyC!U5r-fnQ`pM3dNrRC^ZwYdvmbc5;$ zt1gxCYUS}7*n4JW*O}cachD30gusCKqjcn}`k!Q*$J5lcI<6#wFKUB$GI%BMm|yCk z*yLXWXRjo*+)3{HUSeO(XF0I^`*Us_lF@FxQo)VbSAQB0jB2Q`)aU+%w(-ulP()e%Yzwzw2WIOdV*F**s>&$<+Po>!u5^Ml2&KV4d^kE=(YC~Yz=DF44QIzv$O*TY0@<&;%GA!66)z1veR9)tB|hC(eSaVEA8H&2MQhF1i;TY!g4Xs*^VjWt6ET71|*7#tw8UnuWm6YJ3*#2Wa&h|QGq4QLZ zyOHP8IX)dF@%X!^mwUT_0gbvG($NlRH7IA(l_7V7OCxf&c~)rU z26Sb`07V0|j8QDZhdfcI^vjG~hkMyu>uorTXk`ZJxqnf=yGKzxUpeey!*{6|u{HT< zc8dBFc}>}O=M;|B{?i}wDpJB-BiRR($1*W8eibyT&RUKFmzzWb%a`pv5J7O3RS^n0 zDxsJK3f?I+;KVeA5c0Hviy8loB3##jUC5M|EcAIOg7el)T6S=?L!wgBIOlc zxudbo_rqP>e7|#A?^e+m0=rMe5Ywg05Wsgsh3zs*84W zoNZUJedr=jaUK(zB#MSDj{_HY=hw_o?|^ecDTxCwjBp-V0u4ZHyKtup`bHvIQ3f6~ zx5E% zfSOoHb}QVc?=7Hr?J>-+Rn$`0Gi+>uxel`MKI@v}Q1N5n$Q0iO1yF`S!k@eMKN(1p za&Bt%JC@rGwey*P5`hau~xaM9WpIU70gPzTAty-RBzOLwF;KWq_vgC_^|XdWLQ1zQDx z+lWaNG`c3b3MzqgKrPh(C@w$MRMe4lKRe|SC?(t=eFiPPa>;Ys#GKMkrmmGayrq_O zGl7@O=+$FWLaz)goSxcllK>P)cjzEVYq~eX4R+^kudTuP5yomtRZ#=fLFF&7}9Aj%DBh*|u6)&R>5k6Tj7HSS(ubUT7 zc)O%!kpf(oDrPwCYf4capniETe`j73cgb?BusanCJUkT8Twa0=!IYgIBF=y1jeM6e z`+)FjgRL{z9A{%JjCnPT6(82ApmY6zm!78a}=;H2?;$xv!pBrejv0zSl>v1Ksj z-N8#@9#rI=I@YXmu>!@Yf>+i?9KgFmLYs=f8x7vE`>j2On$#Ntu&Jd*1RK5}oQI&^ zdH}`Y6-Qi1Z!fWEqxeh|2N29j*G*s({e{1zh5sDBz&ti0?3DJ)bkJZ0`u>)!@EWCf zMqQ?>3Hpy8qXPGobesDOHdWXHu`fcWoYJ`b+5GC~pJjt5-7MK>*zu#KrOMP3#G7OZ_dKxeh@;|wvTbmH z8NBc2QmTzrSHXFGP|rN>Ujwe63%2@PGqeE{MetWee}vK#6@YGJZ})wXJFOf12fP`? zt?;{XPa*ODspVY5p-%faKBIIg)uzH~3u!50DwQ0fliDOC5i+Du7Lherr#xz{=pd|m z!fp{o45`5~rtqW~gmDNnLu-W`hNp2#HT%8ozIm?a?XEZf7v`G7|9{{2@AUnAKfOiq zASm)`w?x&;Sks{$GXkESO~Ugf`sc@b_TZDC1(abD$?(mkuC_|r%Zfgf7cJ$27(ZupRb2eV|2VT*;C0SfzxiFTKb%{Qv>v;RcG{-I0q8z~{wR|A;3 z+o73@R`QnZzCtHdtd^oGe7D_~YW=7p3`_IzXwE`MP5gkCs+i;gP&@=xuZ3tIxvTSQ zvle?a-!pT?D<$FW&1HUX_O|A`>=Ilf=hO|&Drxrk2>(}}Ktb!+h8o6F<(&f>uORid z;y%I|qx#9cBq{m`rh+y%X>^E^jFD*Tbg;W$zkc0A2GP8bRJ_f>T}p;MEGHpZPY4_} z%yv>XEFZSmXqT(+^8zP-r1&RSn^nZ!=r38U7I>q=AuK+g#m{)UY0>MjLU(`t(vRxv zw$^|g{Y9jQ|)jx z_stqSdTtf=`(2RkN~s5~D}(YwdKf8_wAO}9AR-_5kSP=8=*78o-}>r5aM2;&OUo=y zoob$yQTxWpDMST#lRCG}RC54V;nx1W7x&kZL1>#8qW_wd0%Nj_h9!QwCPz*tA)mJ1?! zfPu2<#Rj9`|QrOv1HguV~h0JDce&+*gQoS{G?1-0*Oc_Rto)if9rQ`4rkP-N42rt{bryn34r4V8nkW0R`)eDCwU=-{W{A5*P+fh9U4)f!%3(o!R$Yo<_KKr|tSAPE7IbX4&aJ zL<5@i78KBD#e`~T>`m3+bZ-0&_m_t3XM=9))ofRVks|bwKRlJp?mAvpfcSro!{Te` zt;~?-0P%T_(>F zARXb?qA92!v;~Zj3VHtCF%k3G&lVoOwYj3NyVEUCuI*c+5b;^}8vl>IJXpuzE|G!R zxd@1k=|lN_IccGzztW0FFm+nOJv}e7E*)4Ft-gYX{I@{VfDU?Vy$HdSIDet%CJ4VE zjF=sv?XO!fO|@J=-Q*{g9O^Mstmi;;NYt=sfwrl@t_#XsgOY0&ZF{Pcv>lE@IMqZT zrq8$gm@J>Jw!UIHvD8a%Z@=S1sc#=8{m>|CfRkFu3?MPMdxd9WpV`hKPSK!Qty`J& z6QG36Uz`CD9jT~Ko&AlqazRS&bJXbFZDh4i{Lskt6&mVwoZgF|WATNtINtonTL^L~ z9LeX<24hGOk5 zFwGMzd?mQ}g$deYhkk8XW#`gdJGv7BA7<%3yK^$wG?nb|_~j5dF`>C#8L7QqM;}Y&c1MIN>TYGM17A7MV!RY5GNx z9YwAeC&OTO$DFr0-f_$M- zMOpBtASt~-QpOm{BE3a;kgWpQMx>C$N`UD5Dgt0@K&q3V3z#pJ!iA7Od9HlIj_BA3 zg3k|h4jbQJ90pu|Gy=hdKSC^?0OvT8qLygQz)hKfPb2I=D-QCWErcyMgmGBZ)GPho zE2h8XugRBgxQjD#4NN$k;9hi@Ryv@jDDK=MwcEoKP6Ii^!tyRwiR0!$>FXFk1^ml5 zOyPG_Mrsuw!6@h8q#Kn$#7|rboG3HXz1PcUEyx(463j>x9>8X}D0v0FAMRXV(U6j1zylHu@?4%e&rXTjVarh2yfEQ0fa6af zA!$05jtt{(uC2EA_V&)XwiWCFkj)3OcO;nj6}T&)HDlb#@;*^JpW^0$rfqs`Uu%{+ zSHyZE?RA&+OdpEA5csSS2z8}#1fK9{+ff>v%2pIGkmjIb_Fcp1I=xC%EtC z+&WuuCk}%7Je?C|%cYX&XYN{pfJ|Q$&8qH<$SvG^=*nt?X2t<8tfO=;_LYku?0r3H zS_w=js#_81moY#}_WAqfEswHwE_gTJx$ja^fohY6mpm)EeZ2PtalJg(K{Nz8TKvE+ zA7=Ztz0v!k2Y6&dCHshO`?wLWVD2Wva?}Z zP-5)1oS&?hq4-Vs=4G}?btVPwokuY>`QJ0=AUt3}-(<{5q5qN8`_FVf)AS|6rmq-anF1cXP4brtpO09y@v9!{# zbl$UmzrX*T|J<0lGuN5V#}PK(?>*zJR9B`Ty+w+HgG2F5MM(<>2d^0i z2lvA@BJdMc+3G~_m$ds6eRpjqYj-aTS1TMf3wLLGCwF^WOEym{S2tTHM-hG@L4GM- zwm0tX&Ti5I0uKM{5&TZBHUgYaM-0HLkT|OtxZ&VXSz!OeEl|j}#ldl+f2Q63HxSk4O6Y`kC8DTTR>PXS-w% zmpmK%PK4Kf6^343oPE|UHB1$;p`_zCj>rzYWc*$9YJ`l#<(u1Nzd+l2*1+?hnNvOo zYhiN%XMCeab2U(UP7TESF;ic@Vb2RSr?v~vFAldQopChePwom^4@8hN3g4VU`isDWbRhANU@X)8Y~AT9LljuhHyR$+1Pf<+a#Nfg#kYdj0In^JLPAY8#1C z{CxGSJ;QRvU_992giXuJE4 zf&aziuDsunpZ{(b{YpS8OyGy z`GYYtiGDClw3~}H+wjtibFKGr1zYO^4$JH1ZBM~y#`Ea$V@wx)R|X~K-tPxQs_T@0 zzL0u97*Ojp=QyiuZ(&KsU?x+mE_eFp^NPQ%jU3$5zP&G=L-~up5sG*Y^SfA2qMXcV zlT$tOk4NBa&m0uBxZ<}p;&ny-X=Aj+VDZ3o`HVMjZ2HpYe5Zq|{_65e5qe@02?yzhm4h($gL7KU0rMkB2ah&iFI#&;+-9CVw$#7 zXIBqbv$EyP&flM&`AubuAQE9idveM<0i#lHx9c9fDnc)PPh6>oB(@%$ZMS8N!MVjX z8(_Pi=2m;Z^>iwZk$M)wb{7gvn#8S9h|RRIJT)da$JeAGCNqs5YLsW~p~M^x8SNX% zJbIs|kKkqjw(>H%6)*gF&s!_DGpelmtr3p{)SsMdl9k^jMI=c$PQM8;4G69dmu}0P zXb9pXl$D~!Ak)Pi?Doo!p@{yIFeqW@c~@(|g^wFajG3qZ*`Zkf5JC>hzq{M1@VfVU z_0V`FL{17xUPi?#Z@=P_MWt~5!_A)D@g#S+*1?FzT%^Zgy57Z_sXv8J1io?3DCx{5 ze|ZcUNEhoL@##UPJtW;#LiHf~1CFNM;?hmmAKqN=c>z_$~&&CP@9Pm@%T|POuGeMonxq4FAj~!nWbst3_|RqQ}c_pEa3-+-5v^D>Y0Lp zC-PQYVy326f;i=@?s#Ff>kT)w)PyGlC>3CmVH1#4an-N6=K$b4QYW$}&RSAk|nGpYm~ zqww`ue!j6)0nfi{AMth3tz+3QuH3j`*zfYBSuIC(E0Z7U34P8apIPfPL3gVyDV_Y0eY+J0zFAzr#p!%uK4Oow z^W^-@H?T7IAU``mIELxmq60&sK;x&TSE3*Mn>@PvO-_N^wvINl&EAzhj&}(flpNzhd27(hQ~hfMfM9GrG_*(LGt@(y6vI!ZcD z;j+GAuEd~P7IS*I2|e^a-m!2ytD6fDS@#3A#k8l^ygft(gIPsw+l}PKoLq&o2E0jW z1M5&zzV+UVlvI!7F|gj62C53R^LkOv~r&}?5zy0Pf)oqmx0Q3d3oj};&i+- zkMM5RnEYzXu?Zc@lrrscS?;@unRYRw7cku~kqEr>tDX(Q#h1mfz|goDpN)y?9%u$w zB0FcPo2dA5uzxf@PvQL=1uBq?WoLv6Y7o>%_R^zs4614P%dlQ zDzD%Rb}my)DeAG#HgnT>GgoQPaJ>tp+{4u8?>&(#uzQKtd2P>bK2H}dg#P*Q(RBR+ z)YY=r-xHpsqgIoTwtp3BCuIwqVTP<)j~QdOFoQ?xt$ru6<{F z7`v3(S^b-z?K$HyW)c8@Rc<;X=Cl8149xz`bU}*{DFx>YR==HK8|GFCNv9ojd;FFH zSVYwW0hE`!J*4*@Nooa!c4g zb3Wbw8-F-cZKF{=aD=%SHF8QjQI5SGdFUPg<4Y3JGf{hH^s*?_at+6*0G1ZjA7Pa~ zUS;Xwr;@^(c9QIP5mi?q7TI=K+W)QDEb_*^fm}5*fuoZqR^LI)Fv7zi8=g902~iN= zN-Xt!k-{6fFA0l$Z{ID zZT)yuj9Uhui9N+@Xzaxe_O5(8qFvWE596OEjqm@qjxJ>& z9@)3o?NqwS)n0QoFO7eDfBex#%eWy_{Q_>MP16`q=gEkKvfPU;M`HnTJS=x>vq(bCjjV)}5( z*}C59QKp`qcG75cuEFX}@@S4bie*$!&}RvHoyRPeljP+ug$9F5+AigpM%^q+AKQOi z_H_lLyE5JHv7t8>QO+?kUXOYjb1MyE-Y;E#L-1(k#+ZNNfj$J&{Nj)1^U%BLExt$T zvX28{k1P%GF)Oe_330jP$aN9PWizO${kHOkU%P-iPwqGRP-2%;9_u zRvKO*1->G-bTfN8#D1Em1=ULFZOL_4SDnL+3CQJS;B9?|9YY1865+?YgG~qF!8sm& zRwLun64C=y%enfd>Q+9%CibBcW%MSe&+LyNgcg3L{<{f6fg1)2mm8_N z9mpW~)o0Q&*t7Av>V#yLcH^ObcR$N*%g1wWs4k^amJ}!qIfB1Altg=@Ztuvr3O}E_4BD z-5HU7;N?mF-}nK_TlVu-%H?lU(k<1efPzp(7`cyEzB3E)DgG3WA5^=R6f-?atoCt>p2oo+C2J+Hu_IhYT3jMJ2A5$??F!z5jFF+Sq9C{#p7x3A*Cwd2}W7er0w!}}+?G%D9>RVL%&+Hs6#825YjkNvk_ z*o##`wqZo1%{qg>7<{8`?Hwkn?sX4&R?ftEJPAb=x6wi6Ip+i*MAvxhQA6UFA%bLc z+x9=}>h^>s59mJ#4TfZeq;^}jv}(>TRtt^A~QPie-E?ix97>Lrg0 zB|R)_8OBuzHRfs@3Z*N?FKvs}*31&{WA)W3=Qh*u++VOs&uaZd20NKWQ@y@KMvxp(pVzuD2-0(CfP2E9SDx35%%(;qc>o?W@V9JFRe4h_8WY?RNAZyr%k! zT8M&t?P%4ix3MXW>Cp1M>9}1YcW`NN1O@0q~PK-Lc+)F)?6iff8^n|ZD;XZ5_!q$~|Be1YK>>WJcTet@9yU;7C znO| zX5K;do8*!WCZ1L1vn)pM#zXoQgSlXVsmi@H(wKqz!9RQKpTDK3$>)tPsR`?^VytpS zceEr}p~kzryTjZ@rpL$Lkv|{2=oYw}LRY7FV_>IBXOE zG19S#ft9eyd>oJJjD2vfWo08^TDEfUV4UEO-(Z@?04-Ci&8L2$nErtAqOPNxZ7_qw zKJc=|c&%1nOO6O+u7e$n`&fGKzcV`6Z=Zv!*)B67kNoku5OEqekKfgf z$hV;6RlL?fhF>C7a%EQE7xoZKs|bbL`c)tJKBSWT&4fOcZi{l5wZrjGP^ENC0XqL}9J zn~SX48as|SPy(uTXb75$YF(LdZtM`U(2%m~7+`%ez0=Zdp3>gflE{eCJjd-tCH=lK z2OMT)dPvyWPd@T72Zoq!r1KcDvW{eRJP+=6OJK(LN5G|qnPlpA{l47@viDdy8Hlx| zwO5VMkdA#DF=fK}D1_z(Z6!JNi?uH*@!yigpt@rsC|R1quh%PS)#ks2shzN-a92Mk z;WKIc^{U|I9qq|?R>AsJ1CGmm$z=d9)q}2i+3x43Fz&F9GZ)|77jVy9^{mMxk;Tg6 zbWr?@ABB-xGpEQdoVNHJxH8Ma1Sb=Wctf?DVJ>=rV;F-bJlf4bcxxLOjBncScLYi1 ztKyUo1Y}2Oxnsi$W@(f%@Xgg>xgRcJH7RT}v;hP{GW6>5B7O@stbBD8cxCfkb+>^} zwHk1y9sZF<)KXlC^kpsn*V*14+JSS6XeaXh`!m)zeRtLuF?usm!T z?1K`ysbJ%zDcneJ8x!U~GiZiYdY2eWJbp)B_Kt!neOS*^m%EfxExoheY5hdM+B&A# zu*Po1W8O`{aaywNXfRDAfBpOfW7>bCi8t+nVQsV&`aFJD@?;_a=#at6o_t;d``N@% z2oN&S+#0R-h4X<7KqomM-| z$zz)LS_Uw?pX21$CMzM~HYWhS44&;`8Ie08U^!V&^?M~yXQ@*n)&qjME5}(#Eoa{O zo-xnO$r{bpLs{{Zt3{W+W~=11uaGp6vJMFKF4z03>8%{2&RDsy2|VhtI!<5WY7DUv z)N<;((vmt-S6G+aS-4F))%lB9-nAXq1{&s+@wEYmrxFQ_W;81!XR+N3Z^jJ=lgLfw zAjNhS3+P*ZYWm+aJ6V^pxRii9&-g32@JYh~FX=orp(o#OMQZ=|cjJO%@ZW@=Ixg{b zt)dirrq|57GaaB2UhxI@(Ko57D=l8p&-paAI$9BuQ$LgZ_i|YJO8NgpUGr;<-gkt$ zMwrBEK`6?xjP}OZ$4MzWPUv;67kSS7oIdXyg@~E}32FV^1l}N?t@BO=&#NN$CMpgz zH@c;3yb9X#&~0VFyVy$r3wY5#K0eOF9gO0+>q82265@#oZg)h;dOIF$JppJq;=Y`) zXOhwbEc^Yxvf!i+9`;?=i&GEd7N1ur#I#ESr59?z$^ZGPLQ6`!dqK%@>>iWdFok)*!MebRYS;1VY}jxIh{f+@UA!FmGab~ z>^B7Z0+VFY?BLG}7{%>V8RPlw&dNxvk^?sI(Gp@pm|P_u^>I zm(K>j7bs!XsOy2MqlMbUfL1EzX#NA?H(_5^y$5LVo3c?kKno;+d`>zt zX!VoAlGVe_Dagg?0jJ8!SKARzlypZpRSy6~LM{tRC5APm09`);z{&*xM}iwzp6>Ob zE1G^0;kzZ&@JrpW!W_3RnJ1h{!cnr(gqnn$jE)ysjgpT}xcA}{;Nhv_4z~`sW}<7L zV^6)ag&^HIrY$~yCaUwLwwq5@GU|_JeTBf1)>z*HVD=}_*rK+>1Xg`X?fZX6Tz1e8 z2Qnn6g0Uka8FCZhxJ+9FxVBZRvA$vdvvVzo>AFp}|H>cFCwE-{&84(KAr4gG0%ozl zF90)uTv~(w_j%}+=v!#fZjAf%pLE7%hf}d08gj|X-o{Gy5}NzJY}K}Ii#!tPBZ1!3 z&u!aVCFWEo_|!nk8My=~QIEpad8qYZ`n|rxiPMf3i6~i&>L+_M%j=(3B^L{k(x{nd z&y()Yd-$S}!3?5rUVc4la9Jb*Tl71Ckf}hajdGPEss^RtD7|MY(}}Nc<9>$sC_T$%=A*oVsoGbyy7Ue~F=a!2X zK))~4Z1I#gTdqvC9jj-{$E;=t&Tb@5q3LHp36<+-60>_N1|3b!F;v$N4Dy(&v{^G`Du$I9cZ`cviuugsqup z_Llo?wmL2%db5IG(I4Z_qyxIexOobE6JZ5+IIls7toNQ$lVj{{Dd(kL>T>Vq!IM!} zsHx660V#Ir3QOt}X?(*1cq{KzsCAEK9oQc%r9DK!2N+6BB@RDk5dLVI_&Qeq+uO4|*&UV_RS|6#YCn3WBXIZo#J5eMtH5`P^io*Rf=9(DOfct%p}0I<7pSJV zbheJtXTuhyJD*<_>vHZu(5KPH-|%jBA2abv(={jR zu%|wxkdF+ToERQpO9~b-N``=V<-g|B`?Y9{9)e))1G^Ub)w43)MH zbn!C%Z%JrWV+GD`IDfbX1t2iRhS@aUGAcP2Of*i#mAE&>D7?UdDVfGfS5@HU4aPZA z+PAyi3tduVYJd6ameSqVf?*$3;@J_1f$i3_vW5YtZvS8b5LKdrno_LT|$ylwW=!PnLIfFXKEXIZi@47>Ehsz`Zvsr@iOF?>g*F0ly zbyruNJ)_L<=3E;qR$V8RHp>##>bfbg-|*w65So9*WoFNSroCCaCwvjD&4#rz?}WnF zyh-9t>Q!y9#Ec7vQ}?y`k6!7zCa-Prhe84~E)0gIczy@J_0*KbR`y2$vHqG;LBk*u zb?g}gc{xDoq`6#q0sM&-d3!?Z!RK27oc3aeY8^WiRg6iPgiiu2D10he^XKU?x5WBn z9Zf$i!EZu$3~}YRS>H5xv9pupf*tG;kxYV%rM$z>PfyhDh2jyC!cxGf@B&q>^ClM*^i4u-#hPWCkG(zQr*7MN+ zce|O-9Df#AjTs?3C2_r)5t8RN?kfXnkayclr=WKif9x??IW5>zwp#!5ws_Lx$gT0p zj^evi%KDbiSoj5u>nj+oA~^&m#^wu@T4|KIZcu{`2}%0_cN?JiA1%IKG|sM>C%`aD zzatjMBDdys0UGy=_)vxl;2N?3b}I&a!VKAUa#s1G$S!62Y~fnh~PI=@A&wVZ)%GDo`*$3zX#@ z{j?#VgZSh$*NX6dmT*^y`x=jK$&N4UkWF+2vyoHjokvoBOTdC36z2teowH)a|1&9! zk=6z@0K@0qF-#eW%b>(Kbl0pp#J|+r-Bvn&xaTF>zfZ^w`WZW9|L%0TS(~Gw*(NN* zmiSUI^`K6E)u_MJTeEZ#3Tg!G>f&e@ltiBuFkFEX`a~LCh_$8E2ND5 zxFFW6u3M@Htt*&^f4+9-2!no8(se0f%x`umo+Etj%sIe)-6#-JtwvM<9BH;9z4BOK z*muF2Rin+J&N`{-?Z2);C#$Spyq}__UIlr8ey8M{zVh;CWaKQe48UW42&}omDnc?k zrM?UZmqDIPB?bz%TQz0^@0by2RL7?{3=X6?hdF9tnfW@P2hlX(q>WyN*d z=WiDOId+6+MF7zg0la-?bpY#Y z&4c`KHTgo^u+A|Cs9iMhJbubQr6!@krQg|m-CaZ+O)qeGdShV|$kLM*s@18neBkc* zjM^xR5Y--fU_H;)FB?;@`}x~o^;f`aO8**`y7MA3cj(hM0XhV_lpFNbLXO%>H;Bu} z$9YOBIErUdg&?Zedv)>v-cN7EY4(963%-wtPy{~EV8a5|@p#CDIrfhI1Tqza1coL} zo?;4)1_xodGhmg_xKB4vc0LeOINu5VyNC<|vT;(v5bgS^ic*N4VxFj=Lk?K)dCOm1m-|-k z_C6q&ZKrN~3A!$aVZsQmM*$?e(M1*=@31W*)-bpISYycaj+`+Bz~*$ER4yM~M{~+D zx$(hlg|?F_pd?aPVI{g~EPo?d!qR{`>;&i5&Qr46ydIBC0#StWV(EeYx<#8dEM1N* z0YQ*hk|G$TrNa)`2vXhf@r8;XLqRk{_Q(dx&+~of{E7X%KW0!u?d5=Q^zJU!IG0`` zXE?#1lvb~`4gh(BKR|qx)QSL}M)P`aT6x30KPQvh!2V+l7+2pNVC-l38zeh!fY6N{ z;>CKyvbQjQ4{CB%*T&Lx9@Dbdec=6Gpk+T{RVL&BC6%qWw88K}L~$kHbK`^i>>s(< z@J%llR^gs6nA|Fs9X9MjTrRRuIXwT631Mt@EU*9ZVC-lOyMl%duLV{h+L z;FwrvG;h4Axh5hOOk>2bv5`D=yxf%-2u#BPMfwuPb6`Esh1fh%x$F8vf!&<9g?If@zm7hbpU+vZk%Q^uXPPC%~ChKup=! z)DZ7Xm(Prr8vO*0uS#4@yX=@%&R;4Nyu`Ufhq89(>A|!RGvA#aR%VtaCvz0UCc2sV zg~8r)7H!Urzt`E>aT#|&Oe1SxiOOxnZ#RK4zn~%+-r${iZn6GQwe+@qO{Jlu(%pT1 zzIaUw^B&#V9u{BTVd3>24`Y`M)r>u_S%`dTn0Kjab%mhSI&cu5KH4P?0KUpV?PLwq zMoZ2Q-|O(k7k8=uH~C)x1NVE_JAM zo}kdtFEbtiH*KIQwvtyqyqxANci%12axYC$<*3+(^Hq6b69wM9p3Q^5-W3>nm3}4X zLBW~##;M0HM@bVo2N>My|tLAQSu4PCKh#p6*BXK_4z z&`Brbx9h4fQiXM_N4SEyaV}k5H^+abv_Ie?YPFZLT9qy4V9KVc{Uuz#-xImGy8g|- zS_@z1x-e^+|9!u>nN#ZF5(5#@H$T|4R;8&)Ozh@wQY)7^W`cCnM7P@A;rL; zRW7kSG1#1=e&PN=sHgl`w5b@-wer+jjHB|DwZ6yfDfD|3G(%xc@)NE)v@FH%AVRMmd@&#VPWe5k1AmzgWVyjn1a zN(a6agvB}q)GR*QzisoTU`JA0mRbVaXpt!L&UcM!Qd4uCgJ$f_uY&l$#b_CvScOZX zr1?%BE;`fYU6Y|=!(bHv1XOS=lL8V|?LQWHlgGqH&Q=h(OEwBMPh*M*>j-3wQ z{LH5$m^lK=d;oM>S{o~8wOZ8*l)O&PMP~F?N~ccjT51@x;r82yroX;nALAM>?X{K3 zc;1y>@?1du3@mH4-#6!YG)gkRiISuUz8-X>q@;@gc|w)Uij3l>VyL-C9!(_K!B~oU z`*R^(C~rQfuTrgXKt?Wr_(Oz_%e&vN^@Trhj8)mQ$%M>;wx9DFl_tk$8i^|++vsE?miHj(!K(+u;!@2L z&@Hd7|9-nvOZr>$>*q*?E{mdnGw1&XBZ3RVHpTznGp98KRD8`I zJUv=O0cRBB)x_uz{RY)|%l-Hs>v)6dxZK*(ZWUN^$zE3y<~1Xoqt5JQes;F4nEXJo z&Jmg6gr}jf$-;ViFcxgw5aczB%WoFDjlf1?l^h?F2^cy09ul-3#o zeHu#uqMxn4U=*mS8@h0}=K}G+C-yX(*4SiS*529ku%Xgg@g+J6@fBA*u6oZoJ%K#ALn>K-VnbmVs(Bkw6i&b{1|pEf^L?ED`;n@7bEf- zCzjRA66`u)S<||T5o}%EP`UA>725b{tMDZgdVmhS@DcfD-b%V7gfM>fY6t&i!3P@O z|8(Xr_fHB!P0Z%+1>LT}{~T85>y@L;g&r3|e+-|-&%T$1jf=I!&6|@A#3>BYzvOlZZr;aHO~v`@xY@~qy^FhlN@CbQv;^QDuX5y^-)A$J zB-rkb4}zQe{gkUrmhiA+Gm*}(<;7m`L))`AY%j#vo{?^!NR-uI(QU8wI^HIO@flQ0 zw>-gqnk0r)euQ88R^+x9EX++Edpze=kWAV=Ujwf^EU^Hb{f5rBZ^v7!@0fO{1 zNQJ5-Ke$<>Qy2o$l|7qCV}A4H>aE7+VriU=IlS1*AwuT_4!&k4aU9lwYpUr4zlsRm zH?GN^SI`*IVMqO~bl|0IUkYC|7L8T*utXnRfHY?;`EC7qg^8*eRk>6#C|#r1b}U$j z>E_q~Zh=umm1T+7(x!ub$mq(a3?cEi@coz2bQ& zo|)6x(Y7)+%?8X05V-6q%$FA(a6a7Y&SEb~u5NSPzB`narL=`}$0wF-8Dsot$b}@5 z>)W?)JAkTv1oZl6?T-90I#kkQjTVHR|9CMIH6%ZH^{w7zabOc*>r}|vbb|;8F@?gK zDp>XBn8syj3WRT}q}=K~>fF?@t*DTGJeZCQrE0{Vy*OKJE3FrgN2Q4n0|+j$4x)6o zK;Exq%(eRfpNL!$=*@U(4?7@OupEAecdo@(VzSODE`*RQeHmz!ZeX~9BwJt$!Bw@( z;?rrc8(1s&X#yzCazzZZD0>19=&(BgFqRv!8jbXL+2FdYy0H(MUaXacIC&p8T4n-W z;C_*C_u0TE@RRP^=iBb#BzNNz8sRI$ae7j??0wYy-EC)@OfTR8ds*wgu3TDqO=l|mXkgN8@GDFj6^hyoGz)#X0 zOhFcqcdphU3j%wk=(TLUcF*nJ{tH>FcDpV9rGH6m{|{K-pp8K z65tlbdzIgqPr6O`^f^8&v@dB3_x>#jqJ)#zL~w4Jy3MYd$Yv1g<&?0xJU>Br1Ewg} z_Wam#_m1$hCU9pkAe#pF0CPyCw*nc$H^3>KTQpac0mR|_%q)%M@(QdD34zy9v|Bzd zvMihdBIdCaxuSO!BTTo*e!uVsxiu2*|IDXM8g2>z#UE}>OZ0o?s-_LAlBn74C08LZ>tw^a15 z_l^*#JAVm-hpGwsTkM$UXx+>4^A-suIypRuEUg4VUa)cC8?!3 zvq`l~=)ypni0|fVFfq#xLDOhJYUbc=`aqa%dq80@{9gge{2=e|Gg3H^Zb|A%^9cw* zfP(W+0s(ROAZn|1TgtT)%8bPc${P}m5WI>qnGeOd&dZ|c#(?TD_`~wYw@F}Ln~hSH zLP?1ip2nT|k(rp!Msuf3aECoYe=Gn23Z^-SJxcR1ui3tvDETOy}zf$Lzd#T*e6 zc=Le{5&&hne(xuUx=p@Tp~*}6mnR%Kzt$D?hchrDdIUq~H}$Q)@2x7olyXMnfXse4 z7XpR{Yz37cwb(@IUi{{i?hkAmR;Q(;^fupPwDEKhCq=I+Ee{C`6Y2w|(4cDy14Q`} zkl^%7^+Ya>ZlH_b12f@!HAT0C!{pb8SgNruu-!pBQtR@!vrF{dK)^6=!WV+FtR4p{ zm|odyg#E^7i*x(Tq*2xDf%WeHxzB#@Q30BDag5()YT`HH+n^lA{bJ-Rx)?v2@0WnT zv!%e6-MV1_lvVv8mA4idDykGlfE!ZbwQX8Xt9|Hic|8;8;UsQtBG5(eO%k2G1V=gs zblMk^9lLdaEf(P}CTnO*hLWF_1)bLtO zHi+Th(auw?^bPuVvHGCJQRNDli)`oL6@YF}%4AnQIR+yn>9Rlorp3a|4MS;G<-9`RB2S_$RPasS`;0h9UdBsMfxaosh;qRTYawtIqtD@%S!#yIt{r4+F95l zh4y6$pbL2$6Ie(?B7)r@BR{jFaGz=82Oi>=nc$=-5PlgV)M3D<-7$NzoxPFL}UDI>GA06|DM`TqJC>eryv%YH2j zVA<`R=6=g*0H9RT|5Oy46sY}3dnK@l0CgnF`5IH{<)+tBzwozJ2Wd z`7sRJi7I`n`NHDtchA!O;C96_GkSaXT13@r>;SS?CTx?S>#P;`oY}lM&}C6u%`;yL zgLv|TM2vzUZTQ4(#Gv!(i&K2WjkV>0cb)I-n}Zxd&Pr{qk;`!5>Y?i4VPUw8&vB&I z@jR|@zGZQ%<$-P;TbN6~a0iEIG;uY$64eJ#t9a9YxZAMU^xqRyb$U_GqaDw`4$9ov znS45Q0R45J>+s(txn|(a{`@RO%BcLzZO&S4mh@)Oufmx^hJU}Ti-vGhnE4aFJ}XxT zxnSgbM#Ybh)E!K)Z@45rI=@^1)hnBB_CI*AvkX_a2PQk{n{e=ELkNS@L}spRa{6(O zKgR{7@CB36XO8~|s%PLl1YLP30$oy=)VqM(wHpr z%^I2r>Lm&h6Ch>e`)?H43y*^)v12G~L-aJxvu)fY+&m55mFUwSHADJ?vZ45|@^J|fq?ti=h1q@( z>_Uit0@Y-9U}uiG=@~ zka#F?jw=d)wmW)d#@EQmI=}}1$s}-Vx&d}PA07`h-0R*CxL}j*0LKvi)C}c33>~Q5 z&<2O>7Cp^v_wd5$l@Wokcwd7Y3fcLL4yf1Om;Wl0V~}_F-+I(nK?6ZYrFFB9Kn6+3 zV@-!fup9&(mM6T|6#!lB1Ta*#F7aM8*n*kt|y9sV4+nOlGrm+B$=aU?(O+{7&||92UK=P;&R!{}aEN{>bna@X=8b6Kl0`r5#{afX^Ba zklQadrl8#wbeI(7)vv&z;Z#L}6By25KhJ$E{naKZ}?2@0AB5z!y zqB>HwxA2$*mhVnClao0JtMpp;8(2kw#NBrh5!cF7^j4-E$1B?1A3?aP zTm8=#Krfyu@88H3^ARv}1`+G`-+#;b9ap4fgAP7X`eAwNX%Y9U6otS5(BWMNL_!H1 z90A>Oe?6S@g(Fl>jUbkw*?sd?g**2SN&%^@u}e?vyu*fMW&S%XRYQ+m3X#PiSb+wf z{r>dUY)jJ#K+DW1N@nS|AY|{8qLD620&LU{fGg}dqif`WD?CR~hdtSZuk*inMVxj| z`8i*Z&IFzUdZwDVK#vNI=^P5CQrMt`&3X6u`z|Q`w=(Z)f_A!I()`O){x!Q5;xG{V22tfDf{-P;iM}vez+k{0;GCv8Go_BD>IS*KEpD#vSGe;`| z`=0CY-!a~YHZwemA8mrWWrDsGIu4yBrKip9FKS>yjIzAUyA zL_E1`b48@p^|5)Pw5TJ4H|?nbmW{+q_Kq-&i!u}lowYGqY)#Klv;;Q~UVn+ZEitFm z*6afL?+5)b_gn>i)DtXFjXNfQ7j1_Jr^GiX!nFz~(nU^vE%XW(^QEwuJ=AOew=X?1 zj&eqS3`72$3m#z#2HnAmZ}4r8+cRo6^7|4Dw9`d#!tH7ud$`8IaV%L<+WSEu5|*}` zp;vCoym<;DZx2C*8^qeg-5`&&U6aWXP0k>Q1D1^_L~#tOGslaEtbw^$VA>)LCTJ*F zvZpf|;Pmj9@9~;Xu{Zt5p!ODWMgaGoj}*&>bb7~nl0mg~+HMw@X>USietuT|3>Ncv ztG^5gOUe%I0Zlk4IRwsYc7Ui$6mW5JfQZ(wb7Th2uhl4{yq{!uEORudECg6P5rjeq z#p~=REJI#5x-OFLzZNC?t|A{u{=)?fC7Uc4d!(PyZw2+- z@p*diiPO!y-aQIi@Cy9jRXH1QqyPLzm($o@fH=`2$SS2O1h(3kf-OL^%vg#>6f+Ov zuw-&R`^e(*R=bpJDK{eQiPy!a;0)(CsBh+2sgXpcyub8t>-Z;Z#3n6Bx)o&loLEp` z^?wLo=DT}n{Wff=`sV1`=z9^C2*;n-*V%*bD4|?F`XOHQO7Xv0h-7>=ebV^M@7;RM zo+b3^wj?)&4Qe*C@a+E8h6Bq)@hQ1`(9woLvPYXTU?p-4pxTwL#Q@&`u2Zt*s zgWwHaPQZ!glYWF<3o;S?ge87-Dk+pIDRe4XWW72py{}kRQaCH{X4A#8#!183heCiu zwE&uXQ;fF^*x~}VJ5GLe^P6cgW7YH8<=8)~T(bGY}q(8Ji84=V#>Gih;z?j{sILcT>`=&JPju@Pyu`)Yz3$|Ye6iWB zUxkTtXB9?zfO%ftNG+wO6B~27|0hL7pNMOEaF3;Mt)`%v_jZA*CPxM?Cfjrrd+9DNfZo4DJCN zjsqMM6aV=$Mvtj@kp*;hN)Ehe8x)Wfn!KAZ<*sPX`$cUrOH)pViMr+1QMILT~ zMoCr-RtPEv=Nk|m`OGb$`}rwFwOTQefJ

2o&`*7qm4w;C#LcLbieN`eL%4sZcT_ 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≀kt2VBBw0ngKkzbi!tePT-RGVVg8=7 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 G(0>6EqO^|y literal 0 HcmV?d00001 diff --git a/sorokinfi/maze_results.csv b/sorokinfi/maze_results.csv new file mode 100644 index 00000000..55f6aa44 --- /dev/null +++ b/sorokinfi/maze_results.csv @@ -0,0 +1,11 @@ +лабиринт,стратегия,время_мс,посещено_клеток,длина_пути +маленький (10x10),BFS,0.0895,85,19 +маленький (10x10),DFS,0.0553,42,41 +средний (50x50),BFS,0.0027,2,0 +средний (50x50),DFS,0.0023,2,0 +большой (100x100),BFS,0.0014,1,0 +большой (100x100),DFS,0.0011,1,0 +пустой,BFS,0.9422,900,59 +пустой,DFS,14.7181,871,871 +без выхода,BFS,0.3453,325,0 +без выхода,DFS,0.5775,325,0 diff --git a/sorokinfi/results.csv b/sorokinfi/results.csv new file mode 100644 index 00000000..b716cb4e --- /dev/null +++ b/sorokinfi/results.csv @@ -0,0 +1,91 @@ +структура,режим,операция,повторение,время (сек) +LinkedList,случайный,вставка,1,0.1129304999994929 +LinkedList,случайный,поиск,1,0.006587000003491994 +LinkedList,случайный,удаление,1,0.00433809999958612 +LinkedList,случайный,вставка,2,0.11600629999884404 +LinkedList,случайный,поиск,2,0.0070252999939839356 +LinkedList,случайный,удаление,2,0.0037247000000206754 +LinkedList,случайный,вставка,3,0.11695830000098795 +LinkedList,случайный,поиск,3,0.006697200005874038 +LinkedList,случайный,удаление,3,0.0038005000023986213 +LinkedList,случайный,вставка,4,0.11354900000151247 +LinkedList,случайный,поиск,4,0.007001000005402602 +LinkedList,случайный,удаление,4,0.003736999999091495 +LinkedList,случайный,вставка,5,0.11800010000297334 +LinkedList,случайный,поиск,5,0.006789500002923887 +LinkedList,случайный,удаление,5,0.003871599998092279 +LinkedList,отсортированный,вставка,1,0.11360589999821968 +LinkedList,отсортированный,поиск,1,0.005773999997472856 +LinkedList,отсортированный,удаление,1,0.004597200000716839 +LinkedList,отсортированный,вставка,2,0.11909130000276491 +LinkedList,отсортированный,поиск,2,0.006270099998801015 +LinkedList,отсортированный,удаление,2,0.00467449999996461 +LinkedList,отсортированный,вставка,3,0.11582009999983711 +LinkedList,отсортированный,поиск,3,0.006280699999479111 +LinkedList,отсортированный,удаление,3,0.004889000003458932 +LinkedList,отсортированный,вставка,4,0.11719879999873228 +LinkedList,отсортированный,поиск,4,0.006236399996851105 +LinkedList,отсортированный,удаление,4,0.004462299999431707 +LinkedList,отсортированный,вставка,5,0.12187409999751253 +LinkedList,отсортированный,поиск,5,0.006323499997961335 +LinkedList,отсортированный,удаление,5,0.004649099995731376 +HashTable,случайный,вставка,1,0.0012417999969329685 +HashTable,случайный,поиск,1,3.5099998058285564e-05 +HashTable,случайный,удаление,1,2.1699997887481004e-05 +HashTable,случайный,вставка,2,0.00101379999978235 +HashTable,случайный,поиск,2,3.1400006264448166e-05 +HashTable,случайный,удаление,2,1.799999881768599e-05 +HashTable,случайный,вставка,3,0.0009945999991032295 +HashTable,случайный,поиск,3,3.0999995942693204e-05 +HashTable,случайный,удаление,3,1.750000228639692e-05 +HashTable,случайный,вставка,4,0.0009932999964803457 +HashTable,случайный,поиск,4,2.9999995604157448e-05 +HashTable,случайный,удаление,4,1.7099999240599573e-05 +HashTable,случайный,вставка,5,0.0009849999987636693 +HashTable,случайный,поиск,5,3.089999518124387e-05 +HashTable,случайный,удаление,5,1.7300000763498247e-05 +HashTable,отсортированный,вставка,1,0.0010356999991927296 +HashTable,отсортированный,поиск,1,4.599999374477193e-05 +HashTable,отсортированный,удаление,1,2.2100000933278352e-05 +HashTable,отсортированный,вставка,2,0.0009875999967334792 +HashTable,отсортированный,поиск,2,3.090000245720148e-05 +HashTable,отсортированный,удаление,2,1.8399994587525725e-05 +HashTable,отсортированный,вставка,3,0.0009702000024844892 +HashTable,отсортированный,поиск,3,3.0300005164463073e-05 +HashTable,отсортированный,удаление,3,1.870000414783135e-05 +HashTable,отсортированный,вставка,4,0.001106600000639446 +HashTable,отсортированный,поиск,4,3.139999898849055e-05 +HashTable,отсортированный,удаление,4,1.8799997633323073e-05 +HashTable,отсортированный,вставка,5,0.0009694999971543439 +HashTable,отсортированный,поиск,5,3.060000017285347e-05 +HashTable,отсортированный,удаление,5,1.8200000340584666e-05 +BST,случайный,вставка,1,0.004694000002928078 +BST,случайный,поиск,1,0.00013359999866224825 +BST,случайный,удаление,1,8.38999985717237e-05 +BST,случайный,вставка,2,0.004346499998064246 +BST,случайный,поиск,2,0.0002164999968954362 +BST,случайный,удаление,2,0.00016500000492669642 +BST,случайный,вставка,3,0.004590399999869987 +BST,случайный,поиск,3,0.0001371000034851022 +BST,случайный,удаление,3,8.090000483207405e-05 +BST,случайный,вставка,4,0.004372099996544421 +BST,случайный,поиск,4,0.00012819999392377213 +BST,случайный,удаление,4,7.929999992484227e-05 +BST,случайный,вставка,5,0.004390299996885005 +BST,случайный,поиск,5,0.00013029999536229298 +BST,случайный,удаление,5,7.74000000092201e-05 +BST,отсортированный,вставка,1,0.7734344999989844 +BST,отсортированный,поиск,1,0.018798999997670762 +BST,отсортированный,удаление,1,0.01326369999878807 +BST,отсортированный,вставка,2,0.7684502999982215 +BST,отсортированный,поиск,2,0.019605599998612888 +BST,отсортированный,удаление,2,0.013238500003353693 +BST,отсортированный,вставка,3,0.7711517999996431 +BST,отсортированный,поиск,3,0.018355100000917446 +BST,отсортированный,удаление,3,0.012963099994522054 +BST,отсортированный,вставка,4,0.787827299995115 +BST,отсортированный,поиск,4,0.019717699993634596 +BST,отсортированный,удаление,4,0.013514999998733401 +BST,отсортированный,вставка,5,0.7936753000030876 +BST,отсортированный,поиск,5,0.019170500003383495 +BST,отсортированный,удаление,5,0.01344999999855645 From 2ec77378a620d15acc526e56765e943688642b71 Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Fri, 26 Jun 2026 17:09:13 +0300 Subject: [PATCH 09/12] [1]Update lab --- benchmark_chart.png | Bin 30654 -> 0 bytes results.csv | 91 -------------------------------------------- 2 files changed, 91 deletions(-) delete mode 100644 benchmark_chart.png delete mode 100644 results.csv diff --git a/benchmark_chart.png b/benchmark_chart.png deleted file mode 100644 index 2672ac911e36b49d139ed7877a9d43e4dcb026d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30654 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 diff --git a/results.csv b/results.csv deleted file mode 100644 index 0f8e68ed..00000000 --- a/results.csv +++ /dev/null @@ -1,91 +0,0 @@ -структура,режим,операция,повторение,время (сек) -LinkedList,случайный,вставка,1,0.13615459999709856 -LinkedList,случайный,поиск,1,0.006726700004946906 -LinkedList,случайный,удаление,1,0.003947999997762963 -LinkedList,случайный,вставка,2,0.13509799999883398 -LinkedList,случайный,поиск,2,0.006748599997081328 -LinkedList,случайный,удаление,2,0.004003500005637761 -LinkedList,случайный,вставка,3,0.13533170000300743 -LinkedList,случайный,поиск,3,0.0068476000014925376 -LinkedList,случайный,удаление,3,0.004211399995256215 -LinkedList,случайный,вставка,4,0.13345160000608303 -LinkedList,случайный,поиск,4,0.006965599997784011 -LinkedList,случайный,удаление,4,0.004027800001495052 -LinkedList,случайный,вставка,5,0.13250580000021728 -LinkedList,случайный,поиск,5,0.006779299998015631 -LinkedList,случайный,удаление,5,0.004002599998784717 -LinkedList,отсортированный,вставка,1,0.13812139999936335 -LinkedList,отсортированный,поиск,1,0.006146300002001226 -LinkedList,отсортированный,удаление,1,0.005113899998832494 -LinkedList,отсортированный,вставка,2,0.1347641999964253 -LinkedList,отсортированный,поиск,2,0.006072899996070191 -LinkedList,отсортированный,удаление,2,0.005277500000374857 -LinkedList,отсортированный,вставка,3,0.1330089000039152 -LinkedList,отсортированный,поиск,3,0.00612130000081379 -LinkedList,отсортированный,удаление,3,0.00506370000221068 -LinkedList,отсортированный,вставка,4,0.13340999999491032 -LinkedList,отсортированный,поиск,4,0.00613119999616174 -LinkedList,отсортированный,удаление,4,0.005012200002965983 -LinkedList,отсортированный,вставка,5,0.1341069999980391 -LinkedList,отсортированный,поиск,5,0.006139500001154374 -LinkedList,отсортированный,удаление,5,0.005085100005089771 -HashTable,случайный,вставка,1,0.001215199998114258 -HashTable,случайный,поиск,1,3.590000414988026e-05 -HashTable,случайный,удаление,1,2.0899999071843922e-05 -HashTable,случайный,вставка,2,0.0010803999975905754 -HashTable,случайный,поиск,2,3.2800002372823656e-05 -HashTable,случайный,удаление,2,1.809999957913533e-05 -HashTable,случайный,вставка,3,0.0010428000023239292 -HashTable,случайный,поиск,3,3.229999856557697e-05 -HashTable,случайный,удаление,3,1.7799997294787318e-05 -HashTable,случайный,вставка,4,0.0010352000026614405 -HashTable,случайный,поиск,4,3.170000127283856e-05 -HashTable,случайный,удаление,4,1.7899998056236655e-05 -HashTable,случайный,вставка,5,0.0010490999993635342 -HashTable,случайный,поиск,5,3.090000245720148e-05 -HashTable,случайный,удаление,5,1.7799997294787318e-05 -HashTable,отсортированный,вставка,1,0.0010198999952990562 -HashTable,отсортированный,поиск,1,3.0000002880115062e-05 -HashTable,отсортированный,удаление,1,2.0200001017656177e-05 -HashTable,отсортированный,вставка,2,0.0010401999970781617 -HashTable,отсортированный,поиск,2,3.0499999411404133e-05 -HashTable,отсортированный,удаление,2,2.0200001017656177e-05 -HashTable,отсортированный,вставка,3,0.0010304000024916604 -HashTable,отсортированный,поиск,3,3.0500006687361747e-05 -HashTable,отсортированный,удаление,3,2.010000025620684e-05 -HashTable,отсортированный,вставка,4,0.0011105999947176315 -HashTable,отсортированный,поиск,4,3.149999974993989e-05 -HashTable,отсортированный,удаление,4,2.0899999071843922e-05 -HashTable,отсортированный,вставка,5,0.0010292999941157177 -HashTable,отсортированный,поиск,5,3.070000093430281e-05 -HashTable,отсортированный,удаление,5,2.0500003302004188e-05 -BST,случайный,вставка,1,0.004756200003612321 -BST,случайный,поиск,1,0.00013439999747788534 -BST,случайный,удаление,1,8.910000178730115e-05 -BST,случайный,вставка,2,0.004817700006242376 -BST,случайный,поиск,2,0.00012989999959245324 -BST,случайный,удаление,2,8.579999848734587e-05 -BST,случайный,вставка,3,0.004626200003258418 -BST,случайный,поиск,3,0.00013269999908516183 -BST,случайный,удаление,3,8.779999916441739e-05 -BST,случайный,вставка,4,0.004597700004524086 -BST,случайный,поиск,4,0.00013299999409355223 -BST,случайный,удаление,4,8.710000111022964e-05 -BST,случайный,вставка,5,0.004632800002582371 -BST,случайный,поиск,5,0.00012929999502375722 -BST,случайный,удаление,5,8.270000398624688e-05 -BST,отсортированный,вставка,1,0.723239699997066 -BST,отсортированный,поиск,1,0.017950699999346398 -BST,отсортированный,удаление,1,0.012610500001756009 -BST,отсортированный,вставка,2,0.7237534999949276 -BST,отсортированный,поиск,2,0.017931799993675668 -BST,отсортированный,удаление,2,0.012546999998448882 -BST,отсортированный,вставка,3,0.7349261999988812 -BST,отсортированный,поиск,3,0.01860349999333266 -BST,отсортированный,удаление,3,0.016040200003772043 -BST,отсортированный,вставка,4,0.7482872000036878 -BST,отсортированный,поиск,4,0.018364200004725717 -BST,отсортированный,удаление,4,0.012785200000507757 -BST,отсортированный,вставка,5,0.7382638999988558 -BST,отсортированный,поиск,5,0.01817359999404289 -BST,отсортированный,удаление,5,0.012721600003715139 From 06a9bd3bc436e2903697e16463e585d846a74807 Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Fri, 26 Jun 2026 17:10:27 +0300 Subject: [PATCH 10/12] [1]Update lab --- .vscode/settings.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index c9ebf2d2..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "python-envs.defaultEnvManager": "ms-python.python:system" -} \ No newline at end of file From 6ae50d6a452d0b01d1aed7805a3409929c9436b2 Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Fri, 26 Jun 2026 17:12:39 +0300 Subject: [PATCH 11/12] [1]Update lab --- sorokinfi/1.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sorokinfi/1.txt diff --git a/sorokinfi/1.txt b/sorokinfi/1.txt new file mode 100644 index 00000000..e69de29b From 4f99a56cb12fe80bfe93f0baea9e1ef7eb76e155 Mon Sep 17 00:00:00 2001 From: Sorokin Fedor Date: Fri, 26 Jun 2026 17:12:50 +0300 Subject: [PATCH 12/12] [1]Update lab --- sorokinfi/1.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 sorokinfi/1.txt diff --git a/sorokinfi/1.txt b/sorokinfi/1.txt deleted file mode 100644 index e69de29b..00000000